mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-07-09 23:17:55 -05:00
286 lines
6.4 KiB
Plaintext
286 lines
6.4 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: maps\mp\animscripts\zm_dog_move.gsc
|
|
* Game: Call of Duty: Black Ops 2
|
|
* Platform: PC
|
|
* Function Count: 9
|
|
* Decompile Time: 6 ms
|
|
* Timestamp: 10/28/2023 12:11:29 AM
|
|
*******************************************************************/
|
|
|
|
#include maps/mp/animscripts/dog_stop;
|
|
#include maps/mp/animscripts/shared;
|
|
#include maps/mp/animscripts/utility;
|
|
#include maps/mp/animscripts/zm_shared;
|
|
#include maps/mp/animscripts/zm_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(self.a.movement == "run")
|
|
{
|
|
debug_anim_print("dog_move::main() - Setting move_run");
|
|
self setanimstatefromasd("zm_move_run");
|
|
maps/mp/animscripts/zm_shared::donotetracksfortime(0.1,"move_run");
|
|
debug_anim_print("dog_move::main() - move_run wait 0.1 done ");
|
|
}
|
|
else
|
|
{
|
|
debug_anim_print("dog_move::main() - Setting move_start ");
|
|
self setanimstatefromasd("zm_move_walk");
|
|
maps/mp/animscripts/zm_shared::donotetracks("move_walk");
|
|
}
|
|
}
|
|
|
|
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 setanimstatefromasd("zm_stop_idle");
|
|
maps/mp/animscripts/zm_shared::donotetracks("stop_idle");
|
|
continue;
|
|
}
|
|
|
|
if(self.disablearrivals)
|
|
{
|
|
self.stopanimdistsq = 0;
|
|
}
|
|
else
|
|
{
|
|
self.stopanimdistsq = level.dogstoppingdistsq;
|
|
}
|
|
|
|
if(self.a.movement == "run")
|
|
{
|
|
debug_anim_print("dog_move::moveLoop() - Setting move_run");
|
|
self setanimstatefromasd("zm_move_run");
|
|
maps/mp/animscripts/zm_shared::donotetracksfortime(0.2,"move_run");
|
|
debug_anim_print("dog_move::moveLoop() - move_run wait 0.2 done ");
|
|
continue;
|
|
}
|
|
|
|
/#
|
|
assert(self.a.movement == "walk");
|
|
#/
|
|
debug_anim_print("dog_move::moveLoop() - Setting move_walk ");
|
|
self setanimstatefromasd("zm_move_walk");
|
|
maps/mp/animscripts/zm_shared::donotetracksfortime(0.1,"move_walk");
|
|
if(self need_to_run())
|
|
{
|
|
self.a.movement = "run";
|
|
self notify("dog_running");
|
|
}
|
|
|
|
debug_anim_print("dog_move::moveLoop() - move_walk wait 0.2 done ");
|
|
}
|
|
}
|
|
|
|
//Function Number: 4
|
|
startmovetracklookahead()
|
|
{
|
|
self endon("killanimscript");
|
|
for(i = 0;i < 2;i++)
|
|
{
|
|
lookaheadangle = VectorToAngles(self.lookaheaddir);
|
|
self set_orient_mode("face angle",lookaheadangle);
|
|
}
|
|
}
|
|
|
|
//Function Number: 5
|
|
startmove()
|
|
{
|
|
debug_anim_print("dog_move::startMove() - Setting move_start ");
|
|
self setanimstatefromasd("zm_move_start");
|
|
maps/mp/animscripts/zm_shared::donotetracks("move_start");
|
|
debug_anim_print("dog_move::startMove() - move_start notify done.");
|
|
self animmode("none");
|
|
self set_orient_mode("face motion");
|
|
}
|
|
|
|
//Function Number: 6
|
|
stopmove()
|
|
{
|
|
self endon("killanimscript");
|
|
self endon("run");
|
|
debug_anim_print("dog_move::stopMove() - Setting move_stop");
|
|
self setanimstatefromasd("zm_move_stop");
|
|
maps/mp/animscripts/zm_shared::donotetracks("move_stop");
|
|
debug_anim_print("dog_move::stopMove() - move_stop notify done.");
|
|
}
|
|
|
|
//Function Number: 7
|
|
getenemydistancesqr()
|
|
{
|
|
if(IsDefined(self.enemy))
|
|
{
|
|
return distancesquared(self.origin,self.enemy.origin);
|
|
}
|
|
|
|
return 100000000;
|
|
}
|
|
|
|
//Function Number: 8
|
|
getsoundkey(distancesqr)
|
|
{
|
|
keys = getarraykeys(level.dog_sounds);
|
|
for(i = 0;i < keys.size;i++)
|
|
{
|
|
sound_set = level.dog_sounds[keys[i]];
|
|
if(sound_set.minrangesqr > distancesqr)
|
|
{
|
|
}
|
|
else if(sound_set.maxrangesqr && sound_set.maxrangesqr < distancesqr)
|
|
{
|
|
}
|
|
else
|
|
{
|
|
return keys[i];
|
|
}
|
|
}
|
|
|
|
return keys[keys.size - 1];
|
|
}
|
|
|
|
//Function Number: 9
|
|
need_to_run()
|
|
{
|
|
run_dist_squared = 147456;
|
|
if(GetDvar(#"C7E63BA4") != "")
|
|
{
|
|
dist = GetDvarInt(#"C7E63BA4");
|
|
run_dist_squared = dist * dist;
|
|
}
|
|
|
|
run_yaw = 20;
|
|
run_pitch = 30;
|
|
run_height = 64;
|
|
if(self.a.movement != "walk")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(self.health < self.maxhealth)
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
if(!IsDefined(self.enemy) || !isalive(self.enemy))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!(self cansee(self.enemy)))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
dist = distancesquared(self.origin,self.enemy.origin);
|
|
if(dist > run_dist_squared)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
height = self.origin[2] - self.enemy.origin[2];
|
|
if(Abs(height) > run_height)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
yaw = self maps/mp/animscripts/zm_utility::absyawtoenemy();
|
|
if(yaw > run_yaw)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
pitch = AngleClamp180(VectorToAngles(self.origin - self.enemy.origin)[0]);
|
|
if(Abs(pitch) > run_pitch)
|
|
{
|
|
return 0;
|
|
}
|
|
} |