diff options
| author | fusion32 <marcopuzziello@gmail.com> | 2026-02-15 18:46:14 -0300 |
|---|---|---|
| committer | fusion32 <marcopuzziello@gmail.com> | 2026-02-15 18:48:20 -0300 |
| commit | 3b42c6116613681abe24c4482ba51b9a3d971c04 (patch) | |
| tree | 8e5768f8daec28d42e29d917118906334ee8ea6c /src | |
| parent | 38a06a06d6988009eb022f1a5ee0f31f8b93ac4e (diff) | |
| download | game-3b42c6116613681abe24c4482ba51b9a3d971c04.tar.gz game-3b42c6116613681abe24c4482ba51b9a3d971c04.zip | |
rename CHANNEL_PRIVATE to FIRST_PRIVATE_CHANNEL for readability
Also make it dependent on the number of public channels to avoid
de-sync problems between them, when adding new public channels.
Diffstat (limited to 'src')
| -rw-r--r-- | src/map.cc | 4 | ||||
| -rw-r--r-- | src/operate.cc | 24 | ||||
| -rw-r--r-- | src/operate.hh | 3 |
3 files changed, 16 insertions, 15 deletions
@@ -1307,8 +1307,8 @@ void SaveMap(void){ } void RefreshSector(int SectorX, int SectorY, int SectorZ, TReadStream *Stream){ - // TODO(fusion): `matrix3d::at` will return the first entry if the coordinates - // are out of bounds which that is problematic, specially here. + // NOTE(fusion): `matrix3d::at` would return the first entry if coordinates + // are out of bounds which could be a problem here. if(SectorX < SectorXMin || SectorXMax < SectorX || SectorY < SectorYMin || SectorYMax < SectorY || SectorZ < SectorZMin || SectorZMax < SectorZ){ diff --git a/src/operate.cc b/src/operate.cc index 6419051..96aa0c1 100644 --- a/src/operate.cc +++ b/src/operate.cc @@ -11,7 +11,7 @@ static fifo<TStatement> Statements(1024); static fifo<TListener> Listeners(1024); -static vector<TChannel> Channel(0, 18, 10); +static vector<TChannel> Channel(0, PUBLIC_CHANNELS + 10, 10); static int Channels = PUBLIC_CHANNELS; static int CurrentChannelID; static int CurrentSubscriberNumber; @@ -2213,7 +2213,7 @@ void Talk(uint32 CreatureID, int Mode, const char *Addressee, const char *Text, || ((Mode == TALK_CHANNEL_CALL || Mode == TALK_HIGHLIGHT_CHANNELCALL) && Channel != CHANNEL_GUILD - && Channel < CHANNEL_PRIVATE); + && Channel < FIRST_PRIVATE_CHANNEL); int Muting = 0; if(CheckSpamming){ @@ -3384,7 +3384,7 @@ bool ChannelActive(int ChannelID){ return false; } - return ChannelID < CHANNEL_PRIVATE || Channel.at(ChannelID)->Moderator != 0; + return ChannelID < FIRST_PRIVATE_CHANNEL || Channel.at(ChannelID)->Moderator != 0; } bool ChannelAvailable(int ChannelID, uint32 CharacterID){ @@ -3408,7 +3408,7 @@ bool ChannelAvailable(int ChannelID, uint32 CharacterID){ case CHANNEL_RLCHAT: return true; case CHANNEL_HELP: return true; default:{ - if(ChannelID >= CHANNEL_PRIVATE){ + if(ChannelID >= FIRST_PRIVATE_CHANNEL){ TChannel *Chan = Channel.at(ChannelID); if(Chan->Moderator == CharacterID){ return true; @@ -3448,7 +3448,7 @@ const char *GetChannelName(int ChannelID, uint32 CharacterID){ case CHANNEL_RLCHAT: return "RL-Chat"; case CHANNEL_HELP: return "Help"; default:{ - if(ChannelID >= CHANNEL_PRIVATE){ + if(ChannelID >= FIRST_PRIVATE_CHANNEL){ snprintf(ChannelName, sizeof(ChannelName), "%s's Channel", Channel.at(ChannelID)->ModeratorName); return ChannelName; @@ -3507,7 +3507,7 @@ bool MayOpenChannel(uint32 CharacterID){ } // NOTE(fusion): Check if character is already moderator of any non-public channel. - for(int ChannelID = CHANNEL_PRIVATE; ChannelID < Channels; ChannelID += 1){ + for(int ChannelID = FIRST_PRIVATE_CHANNEL; ChannelID < Channels; ChannelID += 1){ if(Channel.at(ChannelID)->Moderator == CharacterID){ return false; } @@ -3534,7 +3534,7 @@ void OpenChannel(uint32 CharacterID){ } // NOTE(fusion): Check if character already has an open channel. - for(int ChannelID = CHANNEL_PRIVATE; ChannelID < Channels; ChannelID += 1){ + for(int ChannelID = FIRST_PRIVATE_CHANNEL; ChannelID < Channels; ChannelID += 1){ if(Channel.at(ChannelID)->Moderator == CharacterID){ SendOpenOwnChannel(Player->Connection, ChannelID); return; @@ -3542,7 +3542,7 @@ void OpenChannel(uint32 CharacterID){ } // NOTE(fusion): Assign free channel to character. - int ChannelID = CHANNEL_PRIVATE; + int ChannelID = FIRST_PRIVATE_CHANNEL; while(ChannelID < Channels){ if(Channel.at(ChannelID)->Moderator == 0){ break; @@ -3564,7 +3564,7 @@ void OpenChannel(uint32 CharacterID){ } void CloseChannel(int ChannelID){ - if(ChannelID < CHANNEL_PRIVATE || ChannelID >= Channels){ + if(ChannelID < FIRST_PRIVATE_CHANNEL || ChannelID >= Channels){ error("CloseChannel: Ungültige ChannelID %d.\n", ChannelID); return; } @@ -3585,7 +3585,7 @@ void InviteToChannel(uint32 CharacterID, const char *Name){ return; } - int ChannelID = CHANNEL_PRIVATE; + int ChannelID = FIRST_PRIVATE_CHANNEL; while(ChannelID < Channels){ if(Channel.at(ChannelID)->Moderator == CharacterID){ break; @@ -3667,7 +3667,7 @@ void ExcludeFromChannel(uint32 CharacterID, const char *Name){ return; } - int ChannelID = CHANNEL_PRIVATE; + int ChannelID = FIRST_PRIVATE_CHANNEL; while(ChannelID < Channels){ if(Channel.at(ChannelID)->Moderator == CharacterID){ break; @@ -3794,7 +3794,7 @@ void LeaveChannel(int ChannelID, uint32 CharacterID, bool Close){ Chan->Subscribers = 0; } - if(ChannelID >= CHANNEL_PRIVATE && Chan->Subscribers == 0){ + if(ChannelID >= FIRST_PRIVATE_CHANNEL && Chan->Subscribers == 0){ CloseChannel(ChannelID); } } diff --git a/src/operate.hh b/src/operate.hh index 9dacc78..5e91bb5 100644 --- a/src/operate.hh +++ b/src/operate.hh @@ -31,8 +31,9 @@ enum : int { CHANNEL_TRADE = 5, CHANNEL_RLCHAT = 6, CHANNEL_HELP = 7, - CHANNEL_PRIVATE = 8, + PUBLIC_CHANNELS = 8, + FIRST_PRIVATE_CHANNEL = PUBLIC_CHANNELS, MAX_CHANNELS = 0xFFFF, }; |
