77#endif
88
99# define PLUGIN " Map Manager: Nomination"
10- # define VERSION " 0.0.3 "
10+ # define VERSION " 0.0.4 "
1111# define AUTHOR " Mistrick"
1212
1313#pragma semicolon 1
@@ -111,7 +111,7 @@ public clcmd_say(id)
111111 new map_index = mapm_get_map_index (text);
112112
113113 if (map_index != INVALID_MAP_INDEX) {
114- nominate_map (id, text, map_index );
114+ nominate_map (id, text);
115115 } else if (strlen (text) >= 4 ) {
116116 new Array: nominate_list = ArrayCreate (1 , 1 ), array_size;
117117
@@ -125,7 +125,7 @@ public clcmd_say(id)
125125 if (array_size == 1 ) {
126126 map_index = ArrayGetCell (nominate_list, 0 );
127127 new map_info[MapStruct]; ArrayGetArray (g_aMapsList, map_index, map_info);
128- nominate_map (id, map_info[MapName], map_index );
128+ nominate_map (id, map_info[MapName]);
129129 } else if (array_size > 1 ) {
130130 show_nomlist (id, nominate_list, array_size);
131131 }
@@ -135,10 +135,8 @@ public clcmd_say(id)
135135
136136 return PLUGIN_CONTINUE;
137137}
138- nominate_map (id, map[], index )
138+ nominate_map (id, map[])
139139{
140- new map_info[MapStruct]; ArrayGetArray (g_aMapsList, index, map_info);
141-
142140 if (mapm_get_blocked_count (map)) {
143141 client_print_color (id, print_team_default, " %s ^1 % L" , g_sPrefix, id, " MAPM_NOM_NOT_AVAILABLE_MAP" );
144142 return NOMINATION_FAIL;
@@ -152,7 +150,7 @@ nominate_map(id, map[], index)
152150 new nom_info[NomStruct], name[32 ];
153151 get_user_name (id, name, charsmax (name));
154152
155- new nom_index = map_nominated (index );
153+ new nom_index = map_nominated (map );
156154 if (nom_index != INVALID_MAP_INDEX) {
157155 ArrayGetArray (g_aNomList, nom_index, nom_info);
158156 if (id != nom_info[NomPlayer]) {
@@ -179,8 +177,8 @@ nominate_map(id, map[], index)
179177 return NOMINATION_FAIL;
180178 }
181179
180+ copy (nom_info[NomMapName], charsmax (nom_info[NomMapName]), map);
182181 nom_info[NomPlayer] = id;
183- nom_info[NomMapIndex] = index;
184182 ArrayPushArray (g_aNomList, nom_info);
185183
186184 g_iNomMaps[id]++ ;
@@ -200,23 +198,23 @@ show_nomlist(id, Array: array, size)
200198 ArrayGetArray (g_aMapsList, map_index, map_info);
201199
202200 num_to_str (map_index, str_num, charsmax (str_num));
203- nom_index = map_nominated (map_index );
201+ nom_index = map_nominated (map_info[MapName] );
204202 block_count = mapm_get_blocked_count (map_info[MapName]);
205203
206204 if (block_count) {
207205 formatex (item_info, charsmax (item_info), " %s [\r %d \d ]" , map_info[MapName], block_count);
208- menu_additem (menu, item_info, str_num, _, g_hCallbackDisabled);
206+ menu_additem (menu, item_info, .callback = g_hCallbackDisabled);
209207 } else if (nom_index != INVALID_MAP_INDEX) {
210208 new nom_info[NomStruct]; ArrayGetArray (g_aNomList, nom_index, nom_info);
211209 if (id == nom_info[NomPlayer]) {
212210 formatex (item_info, charsmax (item_info), " %s [\y *\w ]" , map_info[MapName]);
213- menu_additem (menu, item_info, str_num );
211+ menu_additem (menu, item_info);
214212 } else {
215213 formatex (item_info, charsmax (item_info), " %s [\y *\d ]" , map_info[MapName]);
216- menu_additem (menu, item_info, str_num, _, g_hCallbackDisabled);
214+ menu_additem (menu, item_info, .callback = g_hCallbackDisabled);
217215 }
218216 } else {
219- menu_additem (menu, map_info[MapName], str_num );
217+ menu_additem (menu, map_info[MapName]);
220218 }
221219 }
222220
@@ -238,16 +236,15 @@ public nomlist_handler(id, menu, item)
238236
239237 new item_info[8 ], item_name[MAPNAME_LENGTH + 16 ], access, callback;
240238 menu_item_getinfo (menu, item, access, item_info, charsmax (item_info), item_name, charsmax (item_name), callback);
241-
242- new map_index = str_to_num (item_info);
239+
243240 trim_bracket (item_name);
244- new map_nominated = nominate_map (id, item_name, map_index );
241+ new nominated = nominate_map (id, item_name);
245242
246- if (map_nominated == NOMINATION_REMOVED || get_num (DONT_CLOSE_MENU)) {
247- if (map_nominated == NOMINATION_SUCCESS) {
243+ if (nominated == NOMINATION_REMOVED || get_num (DONT_CLOSE_MENU)) {
244+ if (nominated == NOMINATION_SUCCESS) {
248245 format (item_name, charsmax (item_name), " %s [\y *\w ]" , item_name);
249246 menu_item_setname (menu, item, item_name);
250- } else if (map_nominated == NOMINATION_REMOVED) {
247+ } else if (nominated == NOMINATION_REMOVED) {
251248 menu_item_setname (menu, item, item_name);
252249 }
253250 menu_display (id, menu);
@@ -265,7 +262,7 @@ public clcmd_mapslist(id)
265262 new map_info[MapStruct], item_info[48 ], block_count, size = ArraySize (g_aMapsList);
266263 new random_sort = get_num (RANDOM_SORT), Array: array = ArrayCreate (1 , 1 );
267264
268- for (new i = 0 , index, nom_index, num[ 8 ] ; i < size; i++ ) {
265+ for (new i = 0 , index, nom_index; i < size; i++ ) {
269266 if (random_sort) {
270267 do {
271268 index = random (size);
@@ -275,25 +272,24 @@ public clcmd_mapslist(id)
275272 index = i;
276273 }
277274
278- num_to_str (index, num, charsmax (num));
279275 ArrayGetArray (g_aMapsList, index, map_info);
280- nom_index = map_nominated (index );
276+ nom_index = map_nominated (map_info[MapName] );
281277 block_count = mapm_get_blocked_count (map_info[MapName]);
282278
283279 if (block_count) {
284280 formatex (item_info, charsmax (item_info), " %s [\r %d \d ]" , map_info[MapName], block_count);
285- menu_additem (menu, item_info, _, _, g_hCallbackDisabled);
281+ menu_additem (menu, item_info, .callback = g_hCallbackDisabled);
286282 } else if (nom_index != INVALID_MAP_INDEX) {
287283 new nom_info[NomStruct]; ArrayGetArray (g_aNomList, nom_index, nom_info);
288284 if (id == nom_info[NomPlayer]) {
289285 formatex (item_info, charsmax (item_info), " %s [\y *\w ]" , map_info[MapName]);
290- menu_additem (menu, item_info, num );
286+ menu_additem (menu, item_info);
291287 } else {
292288 formatex (item_info, charsmax (item_info), " %s [\y *\d ]" , map_info[MapName]);
293- menu_additem (menu, item_info, num, _, g_hCallbackDisabled);
289+ menu_additem (menu, item_info, .callback = g_hCallbackDisabled);
294290 }
295291 } else {
296- menu_additem (menu, map_info[MapName], num );
292+ menu_additem (menu, map_info[MapName]);
297293 }
298294 }
299295
@@ -327,15 +323,14 @@ public mapslist_handler(id, menu, item)
327323 new item_info[8 ], item_name[MAPNAME_LENGTH + 16 ], access, callback;
328324 menu_item_getinfo (menu, item, access, item_info, charsmax (item_info), item_name, charsmax (item_name), callback);
329325
330- new map_index = str_to_num (item_info);
331326 trim_bracket (item_name);
332- new map_nominated = nominate_map (id, item_name, map_index );
327+ new nominated = nominate_map (id, item_name);
333328
334329 if (g_iNomMaps[id] < get_num (MAPS_PER_PLAYER) || get_num (DONT_CLOSE_MENU)) {
335- if (map_nominated == NOMINATION_SUCCESS) {
330+ if (nominated == NOMINATION_SUCCESS) {
336331 format (item_name, charsmax (item_name), " %s [\y *\w ]" , item_name);
337332 menu_item_setname (menu, item, item_name);
338- } else if (map_nominated == NOMINATION_REMOVED) {
333+ } else if (nominated == NOMINATION_REMOVED) {
339334 menu_item_setname (menu, item, item_name);
340335 }
341336 menu_display (id, menu, item / 7 );
@@ -351,26 +346,25 @@ public mapm_prepare_votelist(type)
351346 if (type == VOTE_BY_SCHEDULER_SECOND) {
352347 return ;
353348 }
354- new nom_info[NomStruct], map_info[MapStruct] ;
349+ new nom_info[NomStruct];
355350 for (new i, index; i < get_num (MAPS_IN_VOTE) && ArraySize (g_aNomList); i++ ) {
356351 index = random (ArraySize (g_aNomList));
357352 ArrayGetArray (g_aNomList, index, nom_info);
358- ArrayGetArray (g_aMapsList, nom_info[NomMapIndex], map_info);
359353 ArrayDeleteItem (g_aNomList, index);
360354 g_iNomMaps[nom_info[NomPlayer]]-- ;
361355
362- if (mapm_push_map_to_votelist (map_info[MapName ], PUSH_BY_NOMINATION) == PUSH_BLOCKED) {
356+ if (mapm_push_map_to_votelist (nom_info[NomMapName ], PUSH_BY_NOMINATION) == PUSH_BLOCKED) {
363357 i-- ;
364358 }
365359 }
366360}
367361
368- map_nominated (index )
362+ map_nominated (map[] )
369363{
370364 new nom_info[NomStruct], size = ArraySize (g_aNomList);
371365 for (new i; i < size; i++ ) {
372366 ArrayGetArray (g_aNomList, i, nom_info);
373- if (index == nom_info[NomMapIndex] ) {
367+ if (equali (map, nom_info[NomMapName]) ) {
374368 return i;
375369 }
376370 }
0 commit comments