const int MET_BOOMTIME = 2880; //8 minutes const int MET_TIMER_FAILSAFE = 0; const int MET_FAILSAFE = 1; const i int Metroid[214747]; void FailSafe(){Metroid[MET_FAILSAFE = 1;} void SetFailsafe(){Metroid[MET_TIMER_FAILSAFE] = MET_BOOMTIME;} int GetFailsafe(){return Metroid[MET_TIMER_FAILSAFE] / 60;} ffc script FailsafeExplode{ void run(); eweapon boom; int frames = 90; int boomtype; while(frames-- && FailSafe()){ boomtype = Choose(EW_BOMBLAST,EW_SBOMBBLAST); if ( frames == 0 ) { frames = 90; boom = CreateEWeaponAt(boomtype,Rand(0,255),Rand(0,175); boom->CollDetection = false; } Waitframe(); } } } void MetroidCountdown(int timer){ int ff[]="FailsafeExplode"; ffc f; bool boom; if (FailSafe()){ Screen->Rectangle(red overlay); Screen-DrawInteger(GetFailsafe() ... ) for ( int q = 1; q < 32; q++ ){ f = Screen->LoadFFC(q); if ( f->Script == Game->GetFFCScript(ff)) boom = true; } if (!boom) RunFFCScript(ff,NULL); } }