77#endif
88
99# define PLUGIN " Map Manager: Nomination"
10- # define VERSION " 0.0.4 "
10+ # define VERSION " 0.0.5 "
1111# define AUTHOR " Mistrick"
1212
1313#pragma semicolon 1
@@ -35,7 +35,8 @@ enum Cvars {
3535 MAPS_PER_PLAYER,
3636 DONT_CLOSE_MENU,
3737 DENOMINATE_TIME,
38- RANDOM_SORT
38+ RANDOM_SORT,
39+ REMOVE_MAPS
3940};
4041
4142new g_pCvars[Cvars];
@@ -58,6 +59,7 @@ public plugin_init()
5859 g_pCvars[DONT_CLOSE_MENU] = register_cvar (" mapm_nom_dont_close_menu" , " 1" ); // 0 - disable, 1 - enable
5960 g_pCvars[DENOMINATE_TIME] = register_cvar (" mapm_nom_denominate_time" , " 5" ); // seconds
6061 g_pCvars[RANDOM_SORT] = register_cvar (" mapm_nom_random_sort" , " 0" ); // 0 - disable, 1 - enable
62+ g_pCvars[REMOVE_MAPS] = register_cvar (" mapm_nom_remove_maps" , " 1" ); // 0 - disable, 1 - enable
6163
6264 register_clcmd (" say" , " clcmd_say" );
6365 register_clcmd (" say_team" , " clcmd_say" );
@@ -92,7 +94,15 @@ public callback_disable_item()
9294public mapm_maplist_loaded (Array: maplist)
9395{
9496 g_aMapsList = maplist;
95- g_aNomList = ArrayCreate (NomStruct, 1 );
97+
98+ if (! g_aNomList) {
99+ g_aNomList = ArrayCreate (NomStruct, 1 );
100+ }
101+
102+ if (get_num (REMOVE_MAPS)) {
103+ remove_maps ();
104+ }
105+
96106 mapm_get_prefix (g_sPrefix, charsmax (g_sPrefix));
97107}
98108public client_disconnected (id)
@@ -394,3 +404,14 @@ find_similar_map(map_index, string[MAPNAME_LENGTH])
394404 }
395405 return INVALID_MAP_INDEX;
396406}
407+ remove_maps ()
408+ {
409+ new nom_info[NomStruct];
410+ for (new i; i < ArraySize (g_aNomList); i++ ) {
411+ ArrayGetArray (g_aNomList, i, nom_info);
412+ if (mapm_get_map_index (nom_info[NomMapName]) == INVALID_MAP_INDEX) {
413+ g_iNomMaps[nom_info[NomPlayer]]-- ;
414+ ArrayDeleteItem (g_aNomList, i-- );
415+ }
416+ }
417+ }
0 commit comments