Moderator cleanup

This commit is contained in:
MysterD 2022-05-09 23:20:07 -07:00
parent 2ecb0bd08b
commit 4b7b6926d1
5 changed files with 25 additions and 4 deletions

View File

@ -9,7 +9,7 @@
#include "level_table.h" #include "level_table.h"
extern int gIsModerator; extern u8 gIsModerator;
static enum ChatConfirmCommand sConfirming = CCC_NONE; static enum ChatConfirmCommand sConfirming = CCC_NONE;
static u8 sConfirmPlayerIndex = 0; static u8 sConfirmPlayerIndex = 0;

View File

@ -8,6 +8,23 @@ char** gModeratorAddresses = NULL;
bool* gModerator = NULL; bool* gModerator = NULL;
u16 gModeratorCount = 0; u16 gModeratorCount = 0;
void moderator_list_clear(void) {
for (u16 i = 0; i < gModeratorCount; i++) {
if (gModeratorAddresses[i] == NULL) { continue; }
free(gModeratorAddresses[i]);
}
gModeratorCount = 0;
if (gModeratorAddresses != NULL) {
free(gModeratorAddresses);
gModeratorAddresses = NULL;
}
if (gModerator != NULL) {
free(gModerator);
gModerator = NULL;
}
}
void moderator_list_add(char* address, bool perm) { void moderator_list_add(char* address, bool perm) {
u16 index = gModeratorCount++; u16 index = gModeratorCount++;
if (gModeratorAddresses == NULL) { if (gModeratorAddresses == NULL) {

View File

@ -7,6 +7,7 @@ extern char** gModeratorAddresses;
extern bool* gModerator; extern bool* gModerator;
extern u16 gModeratorCount; extern u16 gModeratorCount;
void moderator_list_clear(void);
void moderator_list_add(char* address, bool perm); void moderator_list_add(char* address, bool perm);
bool moderator_list_contains(char* address); bool moderator_list_contains(char* address);

View File

@ -456,6 +456,9 @@ void network_shutdown(bool sendLeaving, bool exiting) {
extern s16 gMenuMode; extern s16 gMenuMode;
gMenuMode = -1; gMenuMode = -1;
extern u8 gIsModerator;
gIsModerator = 0;
djui_panel_shutdown(); djui_panel_shutdown();
extern bool gDjuiInMainMenu; extern bool gDjuiInMainMenu;
if (!gDjuiInMainMenu) { if (!gDjuiInMainMenu) {

View File

@ -4,7 +4,7 @@
#include "pc/network/ban_list.h" #include "pc/network/ban_list.h"
#include "pc/network/moderator_list.h" #include "pc/network/moderator_list.h"
int gIsModerator; u8 gIsModerator = 0;
void network_send_chat_command(u8 globalIndex, enum ChatConfirmCommand ccc) { void network_send_chat_command(u8 globalIndex, enum ChatConfirmCommand ccc) {
if (gIsModerator == 1) { if (gIsModerator == 1) {