1 #using scripts\codescripts\struct;
3 #using scripts\shared\animation_shared;
4 #using scripts\shared\array_shared;
5 #using scripts\shared\clientfield_shared;
6 #using scripts\shared\flag_shared;
7 #using scripts\shared\flagsys_shared;
8 #using scripts\shared\system_shared;
9 #using scripts\shared\trigger_shared;
10 #using scripts\shared\util_shared;
12 #insert scripts\shared\shared.gsh;
13 #insert scripts\shared\version.gsh;
15 #using_animtree( "generic" );
23 a_registered_fields = [];
26 foreach (
object in bundle.objects )
28 if ( IsString(
object.VehicleEnterAnim ) )
30 array::add( a_registered_fields,
object.position +
"_enter",
false );
33 if ( IsString(
object.VehicleExitAnim ) )
35 array::add( a_registered_fields,
object.position +
"_exit",
false );
38 if ( IsString(
object.VehicleRiderDeathAnim ) )
40 array::add( a_registered_fields,
object.position +
"_death",
false );
45 foreach ( str_clientfield
in a_registered_fields )
51 function play_vehicle_anim( localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump )
58 if ( StrEndsWith( fieldName,
"_enter" ) )
60 str_pos = GetSubStr( fieldName, 0, fieldName.size - 6 );
63 else if ( StrEndsWith( fieldName,
"_exit" ) )
65 str_pos = GetSubStr( fieldName, 0, fieldName.size - 5 );
68 else if ( StrEndsWith( fieldName,
"_death" ) )
70 str_pos = GetSubStr( fieldName, 0, fieldName.size - 6 );
74 str_vh_anim = undefined;
75 foreach ( s_rider
in s_bundle.objects )
77 if ( s_rider.position == str_pos )
83 str_vh_anim = s_rider.VehicleEnterAnim;
88 str_vh_anim = s_rider.VehicleExitAnim;
93 str_vh_anim = s_rider.VehicleRiderDeathAnim;
101 if ( isdefined( str_vh_anim ) )
103 self SetAnimRestart( str_vh_anim );