dynamite.cf mc dynamite.chdB@LLLPTEXTCWIEf mc2#include #include #include #include #include "dynamite.h" #include "map.h" #include "sprite.h" #include "global.h" #include "addrs.h" #include "assert.h" extern u_char screen; static long dynx, dyny, dynspeed; static char dynframe, dynframedel; void DropDynamite(long x, long y) { if (dynx==-1) { dynx = x; dyny = y; dynspeed = 0; dynframe = -1; dynframedel = 0; } } void Dynamite(GsOT* OT) { GsSPRITE dynspr; if (dynx!=-1) { // Let dynamite fall if ((dynspeed+=16384) > (8<<16)) dynspeed = (8<<16); dyny+=dynspeed; if (Solid(dynx>>16, dyny>>16)) { dyny>>=20; dyny<<=20; // Let it bounce slightly dynspeed = -(dynspeed>>2); if (ABS(dynspeed)<=16384) dynspeed = 0; } // Plot dynamite InitSpr(&dynspr); dynspr.x = dynx>>16; dynspr.y = dyny>>16; dynspr.w = dynspr.h = 16; CalcSprPos(dynspr, (384*2) + (dynframe*16), 128); GsSortFastSprite(&dynspr, OT, 10); // Animate dynamite if ((dynframedel--) == 0) { dynframedel = 12; if ((++dynframe) == 8) { // Boom!!! Explosion(dynx>>16, dyny>>16); dynx=-1; } } if (dyny>>16 > 216) dynx = -1; } } void WipeDynamite() { dynx = -1; }ZZRcckc dynamite.cumentsx.harozentallerTEXTCWIEf .pxeCodeWarrior IDE 2.0.3cֳckdPSX CWCTH MonacoX|FX|Fo--jZZRtX3jRMPSRMWBB*LR