From 5bdedeecea69a5892e3ce8854e85f78537cf7ca4 Mon Sep 17 00:00:00 2001 From: fusion32 Date: Sun, 15 Jun 2025 22:25:12 -0300 Subject: channel functions --- src/operate.hh | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) (limited to 'src/operate.hh') diff --git a/src/operate.hh b/src/operate.hh index 0c370a2..4942569 100644 --- a/src/operate.hh +++ b/src/operate.hh @@ -22,6 +22,23 @@ enum : int { OBJECT_MOVED = 3, }; +// TODO(fusion): Use these? +enum : int { + CHANNEL_GUILD = 0, + CHANNEL_GAMEMASTER = 1, + CHANNEL_TUTOR = 2, + CHANNEL_RULEVIOLATIONS = 3, + CHANNEL_GAMECHAT = 4, + CHANNEL_TRADE = 5, + CHANNEL_RLCHAT = 6, + CHANNEL_HELP = 7, + + CHANNEL_PUBLIC_FIRST = 0, + CHANNEL_PUBLIC_LAST = 7, + CHANNEL_PRIVATE_FIRST = 8, + CHANNEL_PRIVATE_LAST = 0xFFFF, +}; + struct TChannel { TChannel(void); @@ -155,7 +172,20 @@ void ProcessCommunicationControl(void); int GetCommunicationContext(uint32 CharacterID, uint32 StatementID, int *NumberOfStatements, vector **ReportedStatements); -uint32 GetFirstSubscriber(int Channel); +int GetNumberOfChannels(void); +bool ChannelActive(int ChannelID); +bool ChannelAvailable(int ChannelID, uint32 CharacterID); +const char *GetChannelName(int ChannelID, uint32 CharacterID); +bool ChannelSubscribed(int ChannelID, uint32 CharacterID); +uint32 GetFirstSubscriber(int ChannelID); uint32 GetNextSubscriber(void); +bool MayOpenChannel(uint32 CharacterID); +void OpenChannel(uint32 CharacterID); +void CloseChannel(int ChannelID); +void InviteToChannel(uint32 CharacterID, const char *Name); +void ExcludeFromChannel(uint32 CharacterID, const char *Name); +bool JoinChannel(int ChannelID, uint32 CharacterID); +void LeaveChannel(int ChannelID, uint32 CharacterID, bool Close); +void LeaveAllChannels(uint32 CharacterID); #endif //TIBIA_OPERATE_HH_ -- cgit v1.2.3