1
0
mirror of https://github.com/JezuzLizard/BO2-Reimagined.git synced 2025-06-10 23:27:57 -05:00

Grief: random map rotation gets maps from sv_mapRotation dvar

This commit is contained in:
Jbleezy
2021-12-30 17:23:16 -08:00
parent 1c87a713c8
commit 0765c551fe

View File

@ -1717,18 +1717,28 @@ random_map_rotation()
}
initial_map = 0;
rotation_data = spawnStruct();
rotation_data.location = array("town", "farm", "transit", "cellblock", "street");
rotation_data.mapname = array("zm_transit", "zm_transit", "zm_transit", "zm_prison", "zm_buried");
rotation_array = [];
rotation_string = getDvar("sv_mapRotation");
tokens = strTok(rotation_string, " ");
for(i = 0; i < tokens.size; i += 4)
{
rotation_array[rotation_array.size] = tokens[i] + " " + tokens[i+1] + " " + tokens[i+2] + " " + tokens[i+3];
}
if(rotation_array.size < 2)
{
return;
}
if(getDvar("sv_mapRotationNum") == "")
{
initial_map = 1;
setDvar("sv_mapRotationNum", rotation_data.location.size);
setDvar("sv_mapRotationNum", rotation_array.size);
}
num = getDvarInt("sv_mapRotationNum");
if(num < rotation_data.location.size - 1)
if(num < rotation_array.size - 1)
{
num++;
setDvar("sv_mapRotationNum", num);
@ -1739,31 +1749,35 @@ random_map_rotation()
setDvar("sv_mapRotationNum", num);
// randomize maps
for(i = 0; i < rotation_data.location.size; i++)
{
num = randomInt(rotation_data.location.size);
rotation_data.location = array_swap(rotation_data.location, i, num);
rotation_data.mapname = array_swap(rotation_data.mapname, i, num);
}
rotation_array = array_randomize(rotation_array);
// make sure current map isn't first
// except for initially since map hasn't been played
if(!initial_map)
{
if(level.scr_zm_map_start_location == rotation_data.location[0] && level.script == rotation_data.mapname[0])
tokens = strTok(rotation_array[0], " ");
location = tokens[1]; // zm_gamemode_location.cfg
location = strTok(location, ".");
location = location[0]; // zm_gamemode_location
location = strTok(location, "_");
location = location[2]; // location
mapname = tokens[3];
if(level.scr_zm_map_start_location == location && level.script == mapname)
{
num = randomIntRange(1, rotation_data.location.size);
rotation_data.location = array_swap(rotation_data.location, 0, num);
rotation_data.mapname = array_swap(rotation_data.mapname, 0, num);
num = randomIntRange(1, rotation_array.size);
rotation_array = array_swap(rotation_array, 0, num);
}
}
rotation_string = "";
for(i = 0; i < rotation_data.location.size; i++)
for(i = 0; i < rotation_array.size; i++)
{
rotation_string += "exec zm_grief_" + rotation_data.location[i] + ".cfg map " + rotation_data.mapname[i];
rotation_string += rotation_array[i];
if(i < rotation_data.location.size - 1)
if(i < rotation_array.size - 1)
{
rotation_string += " ";
}