etqw-sdk/base/script/maps/generic/towers.script

56 lines
1.2 KiB
Text
Raw Normal View History

2008-05-29 00:00:00 +00:00
// Island Beacons
#define BEACON_IDLE 1
#define BEACON_RAISE 2
object island_generator_beacon {
void preinit();
void init();
void vOnDeploy();
void RaiseAnim();
void syncFields();
void OnAnimStateChanged();
float AnimState( float state );
float currentAnimState;
boolean deployed;
}
void island_generator_beacon::preinit() {
}
void island_generator_beacon::init() {
}
void island_generator_beacon::vOnDeploy() {
deployed = true;
thread RaiseAnim();
}
void island_generator_beacon::syncFields() {
syncBroadcast( "deployed" );
syncCallback( "deployed", "vOnDeploy" );
syncBroadcast( "currentAnimState" );
syncCallback( "currentAnimState", "OnAnimStateChanged" );
}
float island_generator_beacon::AnimState( float state ) {
currentAnimState = state;
if( currentAnimState == BEACON_IDLE ) {
return playAnim( ANIMCHANNEL_ALL, "raise" );
}
if( currentAnimState == BEACON_RAISE ) {
return playCycle( ANIMCHANNEL_ALL, "idle_loop" );
}
return 0.f;
}
void island_generator_beacon::OnAnimStateChanged() {
AnimState( currentAnimState );
}
void island_generator_beacon::RaiseAnim() {
sys.wait( AnimState( BEACON_IDLE ));
AnimState( BEACON_RAISE );
}