import "std.zh"
const int WPS_LINK_BOMBBLAST = 88;
const int WPS_LINK_SBOMBBLAST = 89;
const int WPS_ENEMY_BOMBBLAST = 90;
const int WPS_ENEMY_SBOMBBLAST = 91;
//BE SURE TO SET THE DEFAULT EXPLOSION TILES TO BLANK TILES!
global script slot2_CoolExplosions
{
void run()
{
while(true)
{
Waitdraw();
CoolExplosions();
Waitframe();
}
}
}
void CoolExplosions()
{
bool skiplweapons=false;
int sprite;
// lweapon dummy = LoadLWeaponOf(LW_BOMBBLAST);
// if(!dummy->isValid())
// {
// dummy = LoadLWeaponOf(LW_SBOMBBLAST);
// if(!dummy->isValid())
// skiplweapons=true;
// }
for(int i = Screen->NumLWeapons(); i>0 && !skiplweapons; i--)
{
lweapon w=Screen->LoadLWeapon(i);
if(w->ID!=LW_BOMBBLAST && w->ID!=LW_SBOMBBLAST) continue;
if(w->Misc[0]!=0) continue;
w->Misc[0]=1;
lweapon blast=CreateLWeaponAt(LW_SPARKLE,w->X,w->Y);
blast->Extend=3;
blast->CollDetection=false;
blast->DrawXOffset=Cond(w->ID==LW_BOMBBLAST, -8, -16);
blast->DrawYOffset= blast->DrawYOffset;
blast->TileWidth = Cond(w->ID==LW_BOMBBLAST, 2, 3);
blast->TileHeight = blast->TileWidth;
sprite=Cond(w->ID==LW_BOMBBLAST,WPS_LINK_BOMBBLAST, WPS_LINK_SBOMBBLAST);
blast->UseSprite(sprite);
blast->DeadState=blast->NumFrames*blast->ASpeed;
}
// eweapon dummy2 = LoadFirstEWeaponOf(EW_BOMBBLAST);
// if(!dummy->isValid())
// {
// dummy2 = LoadFirstEWeaponOf(EW_SBOMBBLAST);
// if(!dummy->isValid())
// return;
// }
for(int i = Screen->NumEWeapons(); i>0; i--)
{
eweapon w=Screen->LoadEWeapon(i);
if(w->ID!=EW_BOMBBLAST && w->ID!=EW_SBOMBBLAST) continue;
if(w->Misc[0]!=0) continue;
w->Misc[0]=1;
lweapon blast=CreateLWeaponAt(LW_SPARKLE,w->X,w->Y);
blast->Extend=3;
blast->CollDetection=false;
blast->DrawXOffset=Cond(w->ID==EW_BOMBBLAST, -8, -16);
blast->DrawYOffset=blast->DrawXOffset;
blast->TileWidth = Cond(w->ID==EW_BOMBBLAST, 2, 3);
blast->TileHeight = blast->TileWidth;
sprite=Cond(w->ID==EW_BOMBBLAST,WPS_ENEMY_BOMBBLAST, WPS_ENEMY_SBOMBBLAST);
blast->UseSprite(sprite);
blast->DeadState=blast->NumFrames*blast->ASpeed;
}
}