IL-GSC/BO2/PC/MP/maps/mp/animscripts/dog_move.gsc
2023-10-28 00:17:17 -04:00

205 lines
4.9 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\mp\animscripts\dog_move.gsc
* Game: Call of Duty: Black Ops 2
* Platform: PC
* Function Count: 6
* Decompile Time: 1 ms
* Timestamp: 10/28/2023 12:10:24 AM
*******************************************************************/
#include maps/mp/animscripts/dog_stop;
#include maps/mp/animscripts/shared;
#include maps/mp/animscripts/utility;
//Function Number: 1
setup_sound_variables()
{
level.dog_sounds["far"] = spawnstruct();
level.dog_sounds["close"] = spawnstruct();
level.dog_sounds["close"].minrange = 0;
level.dog_sounds["close"].maxrange = 500;
level.dog_sounds["close"].sound = "aml_dog_bark_close";
level.dog_sounds["close"].soundlengthplaceholder = 0.2;
level.dog_sounds["close"].aftersoundwaitmin = 0.1;
level.dog_sounds["close"].aftersoundwaitmax = 0.3;
level.dog_sounds["close"].minrangesqr = level.dog_sounds["close"].minrange * level.dog_sounds["close"].minrange;
level.dog_sounds["close"].maxrangesqr = level.dog_sounds["close"].maxrange * level.dog_sounds["close"].maxrange;
level.dog_sounds["far"].minrange = 500;
level.dog_sounds["far"].maxrange = 0;
level.dog_sounds["far"].sound = "aml_dog_bark";
level.dog_sounds["far"].soundlengthplaceholder = 0.2;
level.dog_sounds["far"].aftersoundwaitmin = 0.1;
level.dog_sounds["far"].aftersoundwaitmax = 0.3;
level.dog_sounds["far"].minrangesqr = level.dog_sounds["far"].minrange * level.dog_sounds["far"].minrange;
level.dog_sounds["far"].maxrangesqr = level.dog_sounds["far"].maxrange * level.dog_sounds["far"].maxrange;
}
//Function Number: 2
main()
{
self endon("killanimscript");
debug_anim_print("dog_move::main()");
self setaimanimweights(0,0);
do_movement = 1;
/#
if(!(debug_allow_movement()))
{
do_movement = 0;
}
#/
if(IsDefined(level.hostmigrationtimer))
{
do_movement = 0;
}
if(!IsDefined(self.traversecomplete) && !IsDefined(self.skipstartmove) && self.a.movement == "run" && do_movement)
{
self startmove();
blendtime = 0;
}
else
{
blendtime = 0.2;
}
self.traversecomplete = undefined;
self.skipstartmove = undefined;
if(do_movement)
{
if(shouldrun())
{
debug_anim_print("dog_move::main() - Setting move_run");
self setanimstate("move_run");
maps/mp/animscripts/shared::donotetracksfortime(0.1,"done");
debug_anim_print("dog_move::main() - move_run wait 0.1 done ");
}
else
{
debug_anim_print("dog_move::main() - Setting move_start ");
self setanimstate("move_walk");
maps/mp/animscripts/shared::donotetracksfortime(0.1,"done");
}
}
self thread maps/mp/animscripts/dog_stop::lookattarget("normal");
while(1)
{
self moveloop();
if(self.a.movement == "run")
{
if(self.disablearrivals == 0)
{
self thread stopmove();
}
self waittill("run");
}
}
}
//Function Number: 3
moveloop()
{
self endon("killanimscript");
self endon("stop_soon");
while(1)
{
do_movement = 1;
/#
if(!(debug_allow_movement()))
{
do_movement = 0;
}
#/
if(IsDefined(level.hostmigrationtimer))
{
do_movement = 0;
}
if(!(do_movement))
{
self setaimanimweights(0,0);
self setanimstate("stop_idle");
maps/mp/animscripts/shared::donotetracks("done");
continue;
}
if(self.disablearrivals)
{
self.stopanimdistsq = 0;
}
else
{
self.stopanimdistsq = level.dogstoppingdistsq;
}
if(shouldrun())
{
debug_anim_print("dog_move::moveLoop() - Setting move_run");
self setanimstate("move_run");
maps/mp/animscripts/shared::donotetracksfortime(0.2,"done");
debug_anim_print("dog_move::moveLoop() - move_run wait 0.2 done ");
continue;
}
debug_anim_print("dog_move::moveLoop() - Setting move_walk ");
self setanimstate("move_walk");
maps/mp/animscripts/shared::donotetracksfortime(0.2,"done");
debug_anim_print("dog_move::moveLoop() - move_walk wait 0.2 done ");
}
}
//Function Number: 4
startmove()
{
debug_anim_print("dog_move::startMove() - Setting move_start ");
self setanimstate("move_start");
maps/mp/animscripts/shared::donotetracks("done");
debug_anim_print("dog_move::startMove() - move_start notify done.");
self animmode("none",0);
self set_orient_mode("face motion");
}
//Function Number: 5
stopmove()
{
self endon("killanimscript");
self endon("run");
debug_anim_print("dog_move::stopMove() - Setting move_stop");
self setanimstate("move_stop");
maps/mp/animscripts/shared::donotetracks("done");
debug_anim_print("dog_move::stopMove() - move_stop notify done.");
}
//Function Number: 6
shouldrun()
{
/#
if(GetDvarInt(#"DFB12081") != 0)
{
return 1;
}
else if(GetDvarInt(#"D5D7999B") != 0)
{
return 0;
}
#/
if(IsDefined(self.enemy))
{
return 1;
}
if(self.lookaheaddist <= 90)
{
return 0;
}
angles = VectorToAngles(self.lookaheaddir);
yaw_desired = absangleclamp180(angles[1]);
yaw = absangleclamp180(self.angles[1]);
if(Abs(yaw_desired - yaw) >= 8)
{
return 0;
}
}