mirror of
https://github.com/JezuzLizard/BO2-Reimagined.git
synced 2025-06-24 14:10:30 -05:00
Optimize move perk machine code
Directly change the structs instead of removing and adding the machines
This commit is contained in:
@ -69,9 +69,6 @@ main()
|
||||
deleteslothbarricades();
|
||||
|
||||
disable_tunnels();
|
||||
move_quickrevive_machine();
|
||||
move_speedcola_machine();
|
||||
move_staminup_machine();
|
||||
|
||||
powerswitchstate( 1 );
|
||||
level.enemy_location_override_func = ::enemy_location_override;
|
||||
@ -309,286 +306,4 @@ disable_tunnels()
|
||||
spawn_point.locked = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
move_quickrevive_machine()
|
||||
{
|
||||
if (level.scr_zm_map_start_location != "street")
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
perk_struct = undefined;
|
||||
perk_location_struct = undefined;
|
||||
structs = getstructarray("zm_perk_machine", "targetname");
|
||||
foreach (struct in structs)
|
||||
{
|
||||
if (IsDefined(struct.script_noteworthy) && IsDefined(struct.script_string))
|
||||
{
|
||||
if (struct.script_noteworthy == "specialty_quickrevive" && IsSubStr(struct.script_string, "zgrief"))
|
||||
{
|
||||
perk_struct = struct;
|
||||
}
|
||||
else if (struct.script_noteworthy == "specialty_fastreload" && IsSubStr(struct.script_string, "zgrief"))
|
||||
{
|
||||
perk_location_struct = struct;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!IsDefined(perk_struct) || !IsDefined(perk_location_struct))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// delete old machine
|
||||
vending_triggers = getentarray( "zombie_vending", "targetname" );
|
||||
for (i = 0; i < vending_trigger.size; i++)
|
||||
{
|
||||
trig = vending_triggers[i];
|
||||
if (IsDefined(trig.script_noteworthy) && trig.script_noteworthy == "specialty_quickrevive")
|
||||
{
|
||||
trig.clip delete();
|
||||
trig.machine delete();
|
||||
trig.bump delete();
|
||||
trig delete();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// spawn new machine
|
||||
perk_location_struct.origin += (0, -32, 0); // fix for location being off
|
||||
use_trigger = spawn( "trigger_radius_use", perk_location_struct.origin + vectorScale( ( 0, 0, 1 ), 30 ), 0, 40, 70 );
|
||||
use_trigger.targetname = "zombie_vending";
|
||||
use_trigger.script_noteworthy = perk_struct.script_noteworthy;
|
||||
use_trigger triggerignoreteam();
|
||||
perk_machine = spawn( "script_model", perk_location_struct.origin );
|
||||
perk_machine.angles = perk_location_struct.angles;
|
||||
perk_machine setmodel( perk_struct.model );
|
||||
bump_trigger = spawn( "trigger_radius", perk_location_struct.origin + AnglesToRight(perk_location_struct.angles) * 32, 0, 35, 32 );
|
||||
bump_trigger.script_activated = 1;
|
||||
bump_trigger.script_sound = "zmb_perks_bump_bottle";
|
||||
bump_trigger.targetname = "audio_bump_trigger";
|
||||
bump_trigger thread maps/mp/zombies/_zm_perks::thread_bump_trigger();
|
||||
collision = spawn( "script_model", perk_location_struct.origin, 1 );
|
||||
collision.angles = perk_location_struct.angles;
|
||||
collision setmodel( "zm_collision_perks1" );
|
||||
collision.script_noteworthy = "clip";
|
||||
collision disconnectpaths();
|
||||
use_trigger.clip = collision;
|
||||
use_trigger.machine = perk_machine;
|
||||
use_trigger.bump = bump_trigger;
|
||||
if ( isDefined( perk_struct.blocker_model ) )
|
||||
{
|
||||
use_trigger.blocker_model = perk_struct.blocker_model;
|
||||
}
|
||||
if ( isDefined( perk_struct.script_int ) )
|
||||
{
|
||||
perk_machine.script_int = perk_struct.script_int;
|
||||
}
|
||||
if ( isDefined( perk_struct.turn_on_notify ) )
|
||||
{
|
||||
perk_machine.turn_on_notify = perk_struct.turn_on_notify;
|
||||
}
|
||||
|
||||
use_trigger.script_sound = "mus_perks_revive_jingle";
|
||||
use_trigger.script_string = "revive_perk";
|
||||
use_trigger.script_label = "mus_perks_revive_sting";
|
||||
use_trigger.target = "vending_revive";
|
||||
perk_machine.script_string = "revive_perk";
|
||||
perk_machine.targetname = "vending_revive";
|
||||
bump_trigger.script_string = "revive_perk";
|
||||
|
||||
level thread maps/mp/zombies/_zm_perks::turn_revive_on();
|
||||
use_trigger thread maps/mp/zombies/_zm_perks::vending_trigger_think();
|
||||
use_trigger thread maps/mp/zombies/_zm_perks::electric_perks_dialog();
|
||||
|
||||
powered_on = maps/mp/zombies/_zm_perks::get_perk_machine_start_state( use_trigger.script_noteworthy );
|
||||
maps/mp/zombies/_zm_power::add_powered_item( maps/mp/zombies/_zm_power::perk_power_on, maps/mp/zombies/_zm_power::perk_power_off, maps/mp/zombies/_zm_power::perk_range, maps/mp/zombies/_zm_power::cost_low_if_local, 0, powered_on, use_trigger );
|
||||
}
|
||||
|
||||
move_speedcola_machine()
|
||||
{
|
||||
if (level.scr_zm_map_start_location != "street")
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
perk_struct = undefined;
|
||||
structs = getstructarray("zm_perk_machine", "targetname");
|
||||
foreach (struct in structs)
|
||||
{
|
||||
if (IsDefined(struct.script_noteworthy) && IsDefined(struct.script_string))
|
||||
{
|
||||
if (struct.script_noteworthy == "specialty_fastreload" && IsSubStr(struct.script_string, "zclassic"))
|
||||
{
|
||||
perk_struct = struct;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!IsDefined(perk_struct))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// delete old machine
|
||||
vending_triggers = getentarray( "zombie_vending", "targetname" );
|
||||
for (i = 0; i < vending_trigger.size; i++)
|
||||
{
|
||||
trig = vending_triggers[i];
|
||||
if (IsDefined(trig.script_noteworthy) && trig.script_noteworthy == "specialty_fastreload")
|
||||
{
|
||||
trig.clip delete();
|
||||
trig.machine delete();
|
||||
trig.bump delete();
|
||||
trig delete();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// spawn new machine
|
||||
use_trigger = spawn( "trigger_radius_use", perk_struct.origin + vectorScale( ( 0, 0, 1 ), 30 ), 0, 40, 70 );
|
||||
use_trigger.targetname = "zombie_vending";
|
||||
use_trigger.script_noteworthy = perk_struct.script_noteworthy;
|
||||
use_trigger triggerignoreteam();
|
||||
perk_machine = spawn( "script_model", perk_struct.origin );
|
||||
perk_machine.angles = perk_struct.angles;
|
||||
perk_machine setmodel( perk_struct.model );
|
||||
bump_trigger = spawn( "trigger_radius", perk_struct.origin + AnglesToRight(perk_struct.angles) * 32, 0, 35, 32 );
|
||||
bump_trigger.script_activated = 1;
|
||||
bump_trigger.script_sound = "zmb_perks_bump_bottle";
|
||||
bump_trigger.targetname = "audio_bump_trigger";
|
||||
bump_trigger thread maps/mp/zombies/_zm_perks::thread_bump_trigger();
|
||||
collision = spawn( "script_model", perk_struct.origin, 1 );
|
||||
collision.angles = perk_struct.angles;
|
||||
collision setmodel( "zm_collision_perks1" );
|
||||
collision.script_noteworthy = "clip";
|
||||
collision disconnectpaths();
|
||||
use_trigger.clip = collision;
|
||||
use_trigger.machine = perk_machine;
|
||||
use_trigger.bump = bump_trigger;
|
||||
if ( isDefined( perk_struct.blocker_model ) )
|
||||
{
|
||||
use_trigger.blocker_model = perk_struct.blocker_model;
|
||||
}
|
||||
if ( isDefined( perk_struct.script_int ) )
|
||||
{
|
||||
perk_machine.script_int = perk_struct.script_int;
|
||||
}
|
||||
if ( isDefined( perk_struct.turn_on_notify ) )
|
||||
{
|
||||
perk_machine.turn_on_notify = perk_struct.turn_on_notify;
|
||||
}
|
||||
|
||||
use_trigger.script_sound = "mus_perks_speed_jingle";
|
||||
use_trigger.script_string = "speedcola_perk";
|
||||
use_trigger.script_label = "mus_perks_speed_sting";
|
||||
use_trigger.target = "vending_sleight";
|
||||
perk_machine.script_string = "speedcola_perk";
|
||||
perk_machine.targetname = "vending_sleight";
|
||||
bump_trigger.script_string = "speedcola_perk";
|
||||
|
||||
level thread maps/mp/zombies/_zm_perks::turn_sleight_on();
|
||||
use_trigger thread maps/mp/zombies/_zm_perks::vending_trigger_think();
|
||||
use_trigger thread maps/mp/zombies/_zm_perks::electric_perks_dialog();
|
||||
|
||||
powered_on = maps/mp/zombies/_zm_perks::get_perk_machine_start_state( use_trigger.script_noteworthy );
|
||||
maps/mp/zombies/_zm_power::add_powered_item( maps/mp/zombies/_zm_power::perk_power_on, maps/mp/zombies/_zm_power::perk_power_off, maps/mp/zombies/_zm_power::perk_range, maps/mp/zombies/_zm_power::cost_low_if_local, 0, powered_on, use_trigger );
|
||||
}
|
||||
|
||||
move_staminup_machine()
|
||||
{
|
||||
if (level.scr_zm_map_start_location != "street")
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
perk_struct = undefined;
|
||||
perk_location_struct = undefined;
|
||||
structs = getstructarray("zm_perk_machine", "targetname");
|
||||
foreach (struct in structs)
|
||||
{
|
||||
if (IsDefined(struct.script_noteworthy) && IsDefined(struct.script_string))
|
||||
{
|
||||
if (struct.script_noteworthy == "specialty_longersprint" && IsSubStr(struct.script_string, "zgrief"))
|
||||
{
|
||||
perk_struct = struct;
|
||||
}
|
||||
else if (struct.script_noteworthy == "specialty_quickrevive" && IsSubStr(struct.script_string, "zgrief"))
|
||||
{
|
||||
perk_location_struct = struct;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!IsDefined(perk_struct) || !IsDefined(perk_location_struct))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// delete old machine
|
||||
vending_triggers = getentarray( "zombie_vending", "targetname" );
|
||||
for (i = 0; i < vending_trigger.size; i++)
|
||||
{
|
||||
trig = vending_triggers[i];
|
||||
if (IsDefined(trig.script_noteworthy) && trig.script_noteworthy == "specialty_longersprint")
|
||||
{
|
||||
trig.clip delete();
|
||||
trig.machine delete();
|
||||
trig.bump delete();
|
||||
trig delete();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// spawn new machine
|
||||
use_trigger = spawn( "trigger_radius_use", perk_location_struct.origin + vectorScale( ( 0, 0, 1 ), 30 ), 0, 40, 70 );
|
||||
use_trigger.targetname = "zombie_vending";
|
||||
use_trigger.script_noteworthy = perk_struct.script_noteworthy;
|
||||
use_trigger triggerignoreteam();
|
||||
perk_machine = spawn( "script_model", perk_location_struct.origin );
|
||||
perk_machine.angles = perk_location_struct.angles;
|
||||
perk_machine setmodel( perk_struct.model );
|
||||
bump_trigger = spawn( "trigger_radius", perk_location_struct.origin + AnglesToRight(perk_location_struct.angles) * 32, 0, 35, 32 );
|
||||
bump_trigger.script_activated = 1;
|
||||
bump_trigger.script_sound = "zmb_perks_bump_bottle";
|
||||
bump_trigger.targetname = "audio_bump_trigger";
|
||||
bump_trigger thread maps/mp/zombies/_zm_perks::thread_bump_trigger();
|
||||
collision = spawn( "script_model", perk_location_struct.origin, 1 );
|
||||
collision.angles = perk_location_struct.angles;
|
||||
collision setmodel( "zm_collision_perks1" );
|
||||
collision.script_noteworthy = "clip";
|
||||
collision disconnectpaths();
|
||||
use_trigger.clip = collision;
|
||||
use_trigger.machine = perk_machine;
|
||||
use_trigger.bump = bump_trigger;
|
||||
if ( isDefined( perk_struct.blocker_model ) )
|
||||
{
|
||||
use_trigger.blocker_model = perk_struct.blocker_model;
|
||||
}
|
||||
if ( isDefined( perk_struct.script_int ) )
|
||||
{
|
||||
perk_machine.script_int = perk_struct.script_int;
|
||||
}
|
||||
if ( isDefined( perk_struct.turn_on_notify ) )
|
||||
{
|
||||
perk_machine.turn_on_notify = perk_struct.turn_on_notify;
|
||||
}
|
||||
|
||||
use_trigger.script_sound = "mus_perks_stamin_jingle";
|
||||
use_trigger.script_string = "marathon_perk";
|
||||
use_trigger.script_label = "mus_perks_stamin_sting";
|
||||
use_trigger.target = "vending_marathon";
|
||||
perk_machine.script_string = "marathon_perk";
|
||||
perk_machine.targetname = "vending_marathon";
|
||||
bump_trigger.script_string = "marathon_perk";
|
||||
|
||||
level thread maps/mp/zombies/_zm_perks::turn_marathon_on();
|
||||
use_trigger thread maps/mp/zombies/_zm_perks::vending_trigger_think();
|
||||
use_trigger thread maps/mp/zombies/_zm_perks::electric_perks_dialog();
|
||||
|
||||
powered_on = maps/mp/zombies/_zm_perks::get_perk_machine_start_state( use_trigger.script_noteworthy );
|
||||
maps/mp/zombies/_zm_power::add_powered_item( maps/mp/zombies/_zm_power::perk_power_on, maps/mp/zombies/_zm_power::perk_power_off, maps/mp/zombies/_zm_power::perk_range, maps/mp/zombies/_zm_power::cost_low_if_local, 0, powered_on, use_trigger );
|
||||
}
|
Reference in New Issue
Block a user