@@ -109,7 +109,7 @@ public plugin_init()
109109 g_hForwards[VOTE_STARTED] = CreateMultiForward (" mapm_vote_started" , ET_IGNORE, FP_CELL);
110110 g_hForwards[ANALYSIS_OF_RESULTS] = CreateMultiForward (" mapm_analysis_of_results" , ET_CONTINUE, FP_CELL, FP_CELL);
111111 g_hForwards[VOTE_FINISHED] = CreateMultiForward (" mapm_vote_finished" , ET_IGNORE, FP_STRING, FP_CELL, FP_CELL);
112- g_hForwards[CAN_BE_IN_VOTELIST] = CreateMultiForward (" mapm_can_be_in_votelist" , ET_CONTINUE, FP_STRING);
112+ g_hForwards[CAN_BE_IN_VOTELIST] = CreateMultiForward (" mapm_can_be_in_votelist" , ET_CONTINUE, FP_STRING, FP_CELL, FP_CELL );
113113 g_hForwards[CAN_BE_EXTENDED] = CreateMultiForward (" mapm_can_be_extended" , ET_CONTINUE, FP_CELL);
114114 g_hForwards[COUNTDOWN] = CreateMultiForward (" mapm_countdown" , ET_IGNORE, FP_CELL, FP_CELL);
115115
@@ -170,6 +170,7 @@ public native_push_map_to_votelist(plugin, params)
170170{
171171 enum {
172172 arg_map = 1 ,
173+ arg_type,
173174 arg_ignore_check
174175 };
175176
@@ -185,7 +186,7 @@ public native_push_map_to_votelist(plugin, params)
185186 return PUSH_CANCELED;
186187 }
187188
188- if (! (ignore_checks & CHECK_IGNORE_MAP_ALLOWED) && ! is_map_allowed (map)) {
189+ if (! (ignore_checks & CHECK_IGNORE_MAP_ALLOWED) && ! is_map_allowed (map, get_param (arg_type), get_map_index (map) )) {
189190 return PUSH_BLOCKED;
190191 }
191192
@@ -336,7 +337,7 @@ prepare_vote(type)
336337 do {
337338 random_map = random (g_iMapsListSize);
338339 ArrayGetArray (g_aMapsList, random_map, map_info);
339- } while (is_map_in_vote (map_info[MapName]) || ! is_map_allowed (map_info[MapName]));
340+ } while (is_map_in_vote (map_info[MapName]) || ! is_map_allowed (map_info[MapName], PUSH_BY_CORE, random_map ));
340341
341342 copy (g_sVoteList[g_iVoteItems], charsmax (g_sVoteList[]), map_info[MapName]);
342343 }
@@ -383,10 +384,10 @@ prepare_vote(type)
383384
384385 return 1 ;
385386}
386- is_map_allowed (map[])
387+ is_map_allowed (map[], type, index )
387388{
388389 new ret;
389- ExecuteForward (g_hForwards[CAN_BE_IN_VOTELIST], ret, map);
390+ ExecuteForward (g_hForwards[CAN_BE_IN_VOTELIST], ret, map, type, index );
390391 return ret == MAP_ALLOWED;
391392}
392393in_array (index, num)
0 commit comments