1537,65 → 1537,10 |
#endif |
switch (DYNAMICTILEMAP(pSprite->picnum)) |
{ |
default: |
if (G_HaveActor(pSprite->picnum)) |
{ |
if (spriteNum == -1 && pSprite->lotag > ud.player_skill) |
{ |
pSprite->xrepeat = pSprite->yrepeat = 0; |
changespritestat(newSprite, STAT_MISC); |
break; |
} |
|
// Init the size |
if (pSprite->xrepeat == 0 || pSprite->yrepeat == 0) |
pSprite->xrepeat = pSprite->yrepeat = 1; |
|
if (A_CheckSpriteFlags(newSprite, SFLAG_BADGUY)) |
{ |
if (ud.monsters_off == 1) |
{ |
pSprite->xrepeat = pSprite->yrepeat = 0; |
changespritestat(newSprite, STAT_MISC); |
break; |
} |
|
A_Fall(newSprite); |
|
if (A_CheckSpriteFlags(newSprite, SFLAG_BADGUYSTAYPUT)) |
pActor->stayput = pSprite->sectnum; |
|
g_player[myconnectindex].ps->max_actors_killed++; |
pSprite->clipdist = 80; |
|
if (spriteNum >= 0) |
{ |
if (sprite[spriteNum].picnum == RESPAWN) |
pActor->tempang = sprite[newSprite].pal = sprite[spriteNum].pal; |
|
A_PlayAlertSound(newSprite); |
changespritestat(newSprite, STAT_ACTOR); |
} |
else |
changespritestat(newSprite, STAT_ZOMBIEACTOR); |
} |
else |
{ |
pSprite->clipdist = 40; |
pSprite->owner = newSprite; |
changespritestat(newSprite, STAT_ACTOR); |
} |
|
pActor->timetosleep = 0; |
|
if (spriteNum >= 0) |
pSprite->ang = sprite[spriteNum].ang; |
} |
break; |
case FOF__STATIC: |
pSprite->xrepeat = pSprite->yrepeat = 0; |
changespritestat(newSprite, STAT_MISC); |
break; |
goto SPAWN_END; |
case CAMERA1__STATIC: |
pSprite->extra = 1; |
pSprite->cstat &= 32768; |
1613,7 → 1558,7 |
pSprite->pal = 0; |
changespritestat(newSprite, STAT_ACTOR); |
} |
break; |
goto SPAWN_END; |
#ifndef EDUKE32_STANDALONE |
case CAMERAPOLE__STATIC: |
pSprite->extra = 1; |
1630,7 → 1575,7 |
} |
else |
pSprite->pal = 0; |
break; |
goto SPAWN_END; |
|
case BOLT1__STATIC: |
case SIDEBOLT1__STATIC: |
1639,7 → 1584,7 |
pSprite->yvel = 0; |
|
changespritestat(newSprite, STAT_STANDABLE); |
break; |
goto SPAWN_END; |
|
case WATERSPLASH2__STATIC: |
if (spriteNum >= 0) |
1696,7 → 1641,7 |
case DUKEGUN__STATIC: |
case DUKELEG__STATIC: |
changespritestat(newSprite, STAT_MISC); |
break; |
goto SPAWN_END; |
case TONGUE__STATIC: |
if (spriteNum >= 0) |
pSprite->ang = sprite[spriteNum].ang; |
1704,14 → 1649,15 |
pSprite->zvel = 256-(krand()&511); |
pSprite->xvel = 64-(krand()&127); |
changespritestat(newSprite, STAT_PROJECTILE); |
break; |
goto SPAWN_END; |
case NATURALLIGHTNING__STATIC: |
pSprite->cstat &= ~257; |
pSprite->cstat |= 32768; |
break; |
goto SPAWN_END; |
case TRANSPORTERSTAR__STATIC: |
case TRANSPORTERBEAM__STATIC: |
if (spriteNum == -1) break; |
if (spriteNum == -1) |
goto SPAWN_END; |
if (pSprite->picnum == TRANSPORTERBEAM) |
{ |
pSprite->xrepeat = 31; |
1739,12 → 1685,12 |
changespritestat(newSprite, STAT_MISC); |
A_SetSprite(newSprite,CLIPMASK0); |
setsprite(newSprite,&pSprite->pos); |
break; |
goto SPAWN_END; |
case FEMMAG1__STATIC: |
case FEMMAG2__STATIC: |
pSprite->cstat &= ~257; |
changespritestat(newSprite, STAT_DEFAULT); |
break; |
goto SPAWN_END; |
case DUKETAG__STATIC: |
case SIGN1__STATIC: |
case SIGN2__STATIC: |
1754,7 → 1700,7 |
changespritestat(newSprite, STAT_MISC); |
} |
else pSprite->pal = 0; |
break; |
goto SPAWN_END; |
|
case MASKWALL1__STATIC: |
case MASKWALL2__STATIC: |
1775,7 → 1721,7 |
int const j = pSprite->cstat & SPAWN_PROTECT_CSTAT_MASK; |
pSprite->cstat = j | CSTAT_SPRITE_BLOCK; |
changespritestat(newSprite, STAT_DEFAULT); |
break; |
goto SPAWN_END; |
} |
|
case PODFEM1__STATIC: |
1801,7 → 1747,7 |
pSprite->cstat |= 257; |
pSprite->clipdist = 32; |
changespritestat(newSprite, STAT_ZOMBIEACTOR); |
break; |
goto SPAWN_END; |
|
case QUEBALL__STATIC: |
case STRIPEBALL__STATIC: |
1808,7 → 1754,7 |
pSprite->cstat = 256; |
pSprite->clipdist = 8; |
changespritestat(newSprite, STAT_ZOMBIEACTOR); |
break; |
goto SPAWN_END; |
|
case DUKELYINGDEAD__STATIC: |
if (spriteNum >= 0 && sprite[spriteNum].picnum == APLAYER) |
1831,7 → 1777,7 |
pSprite->cstat |= 257; |
pSprite->clipdist = 128; |
changespritestat(newSprite, STAT_ACTOR); |
break; |
goto SPAWN_END; |
|
case RESPAWNMARKERRED__STATIC: |
pSprite->xrepeat = pSprite->yrepeat = 24; |
1838,21 → 1784,21 |
if (spriteNum >= 0) |
pSprite->z = actor[spriteNum].floorz; // -(1<<4); |
changespritestat(newSprite, STAT_ACTOR); |
break; |
goto SPAWN_END; |
|
case MIKE__STATIC: |
pSprite->yvel = pSprite->hitag; |
pSprite->hitag = 0; |
changespritestat(newSprite, STAT_ACTOR); |
break; |
goto SPAWN_END; |
case WEATHERWARN__STATIC: |
changespritestat(newSprite, STAT_ACTOR); |
break; |
goto SPAWN_END; |
|
case SPOTLITE__STATIC: |
T1(newSprite) = pSprite->x; |
T2(newSprite) = pSprite->y; |
break; |
goto SPAWN_END; |
case BULLETHOLE__STATIC: |
pSprite->xrepeat = 3; |
pSprite->yrepeat = 3; |
1860,7 → 1806,7 |
|
A_AddToDeleteQueue(newSprite); |
changespritestat(newSprite, STAT_MISC); |
break; |
goto SPAWN_END; |
|
case MONEY__STATIC: |
case MAIL__STATIC: |
1873,7 → 1819,7 |
pSprite->ang = krand() & 2047; |
|
changespritestat(newSprite, STAT_MISC); |
break; |
goto SPAWN_END; |
|
case SHELL__STATIC: //From the player |
case SHOTGUNSHELL__STATIC: |
1922,7 → 1868,7 |
|
changespritestat(newSprite, STAT_MISC); |
} |
break; |
goto SPAWN_END; |
|
case WATERBUBBLE__STATIC: |
if (spriteNum >= 0) |
1935,7 → 1881,7 |
|
pSprite->xrepeat = pSprite->yrepeat = 4; |
changespritestat(newSprite, STAT_MISC); |
break; |
goto SPAWN_END; |
|
case CRANE__STATIC: |
|
1979,13 → 1925,13 |
pSprite->owner = -1; |
pSprite->extra = 8; |
changespritestat(newSprite, STAT_STANDABLE); |
break; |
goto SPAWN_END; |
|
case TRASH__STATIC: |
pSprite->ang = krand()&2047; |
pSprite->xrepeat = pSprite->yrepeat = 24; |
changespritestat(newSprite, STAT_STANDABLE); |
break; |
goto SPAWN_END; |
|
case WATERDRIP__STATIC: |
if (spriteNum >= 0 && (sprite[spriteNum].statnum == STAT_PLAYER || sprite[spriteNum].statnum == STAT_ACTOR)) |
2013,12 → 1959,12 |
case WATERDRIPSPLASH__STATIC: |
pSprite->xrepeat = pSprite->yrepeat = 24; |
changespritestat(newSprite, STAT_STANDABLE); |
break; |
goto SPAWN_END; |
|
case PLUG__STATIC: |
pSprite->lotag = 9999; |
changespritestat(newSprite, STAT_STANDABLE); |
break; |
goto SPAWN_END; |
case TARGET__STATIC: |
case DUCK__STATIC: |
case LETTER__STATIC: |
2025,7 → 1971,7 |
pSprite->extra = 1; |
pSprite->cstat |= 257; |
changespritestat(newSprite, STAT_ACTOR); |
break; |
goto SPAWN_END; |
|
case OCTABRAINSTAYPUT__STATIC: |
case LIZTROOPSTAYPUT__STATIC: |
2125,7 → 2071,7 |
{ |
pSprite->xrepeat=pSprite->yrepeat=0; |
changespritestat(newSprite, STAT_MISC); |
break; |
goto SPAWN_END; |
} |
else |
{ |
2159,7 → 2105,7 |
if (pSprite->picnum == ROTATEGUN) |
pSprite->zvel = 0; |
|
break; |
goto SPAWN_END; |
|
case REACTOR2__STATIC: |
case REACTOR__STATIC: |
2169,7 → 2115,7 |
{ |
pSprite->xrepeat = pSprite->yrepeat = 0; |
changespritestat(newSprite, STAT_MISC); |
break; |
goto SPAWN_END; |
} |
|
pSprite->pal = 0; |
2176,7 → 2122,7 |
pSprite->shade = -17; |
|
changespritestat(newSprite, STAT_ZOMBIEACTOR); |
break; |
goto SPAWN_END; |
|
case HEAVYHBOMB__STATIC: |
if (spriteNum >= 0) |
2191,13 → 2137,13 |
{ |
pSprite->xrepeat = pSprite->yrepeat = 0; |
changespritestat(newSprite, STAT_MISC); |
break; |
goto SPAWN_END; |
} |
pSprite->pal = 0; |
pSprite->shade = -17; |
|
changespritestat(newSprite, STAT_ZOMBIEACTOR); |
break; |
goto SPAWN_END; |
|
case RECON__STATIC: |
if (pSprite->lotag > ud.player_skill) |
2212,7 → 2158,7 |
{ |
pSprite->xrepeat = pSprite->yrepeat = 0; |
changespritestat(newSprite, STAT_MISC); |
break; |
goto SPAWN_END; |
} |
pSprite->extra = 130; |
pSprite->cstat |= 256; // Make it hitable |
2221,13 → 2167,13 |
{ |
pSprite->xrepeat = pSprite->yrepeat = 0; |
changespritestat(newSprite, STAT_MISC); |
break; |
goto SPAWN_END; |
} |
pSprite->pal = 0; |
pSprite->shade = -17; |
|
changespritestat(newSprite, STAT_ZOMBIEACTOR); |
break; |
goto SPAWN_END; |
|
case ATOMICHEALTH__STATIC: |
case STEROIDS__STATIC: |
2279,7 → 2225,7 |
{ |
pSprite->xrepeat = pSprite->yrepeat = 0; |
changespritestat(newSprite, STAT_MISC); |
break; |
goto SPAWN_END; |
} |
|
pSprite->pal = 0; |
2293,7 → 2239,7 |
{ |
pSprite->xrepeat = pSprite->yrepeat = 0; |
changespritestat(newSprite, STAT_MISC); |
break; |
goto SPAWN_END; |
} |
else |
{ |
2313,7 → 2259,7 |
changespritestat(newSprite, STAT_ZOMBIEACTOR); |
A_Fall(newSprite); |
} |
break; |
goto SPAWN_END; |
|
case WATERFOUNTAIN__STATIC: |
SLT(newSprite) = 1; |
2326,12 → 2272,12 |
pSprite->cstat = 257; // Make it hitable |
sprite[newSprite].extra = 1; |
changespritestat(newSprite, STAT_STANDABLE); |
break; |
goto SPAWN_END; |
|
case FLOORFLAME__STATIC: |
pSprite->shade = -127; |
changespritestat(newSprite, STAT_STANDABLE); |
break; |
goto SPAWN_END; |
|
case BOUNCEMINE__STATIC: |
pSprite->owner = newSprite; |
2340,7 → 2286,7 |
pSprite->shade = -127; |
pSprite->extra = g_impactDamage<<2; |
changespritestat(newSprite, STAT_ZOMBIEACTOR); |
break; |
goto SPAWN_END; |
|
case STEAM__STATIC: |
if (spriteNum >= 0) |
2354,7 → 2300,7 |
fallthrough__; |
case CEILINGSTEAM__STATIC: |
changespritestat(newSprite, STAT_STANDABLE); |
break; |
goto SPAWN_END; |
|
case TOILET__STATIC: |
case STALL__STATIC: |
2362,7 → 2308,7 |
pSprite->cstat |= 257; |
pSprite->clipdist = 8; |
pSprite->owner = newSprite; |
break; |
goto SPAWN_END; |
|
case CANWITHSOMETHING__STATIC: |
case CANWITHSOMETHING2__STATIC: |
2400,12 → 2346,12 |
pSprite->cstat = 257|(krand()&4); |
changespritestat(newSprite, STAT_ZOMBIEACTOR); |
} |
break; |
goto SPAWN_END; |
|
case TOILETWATER__STATIC: |
pSprite->shade = -16; |
changespritestat(newSprite, STAT_STANDABLE); |
break; |
goto SPAWN_END; |
|
case LASERLINE__STATIC: |
pSprite->yrepeat = 6; |
2423,7 → 2369,7 |
|
if (spriteNum >= 0) pSprite->ang = actor[spriteNum].t_data[5]+512; |
changespritestat(newSprite, STAT_MISC); |
break; |
goto SPAWN_END; |
|
case FORCESPHERE__STATIC: |
if (spriteNum == -1) |
2436,7 → 2382,7 |
pSprite->xrepeat = pSprite->yrepeat = 1; |
changespritestat(newSprite, STAT_MISC); |
} |
break; |
goto SPAWN_END; |
|
case BLOOD__STATIC: |
pSprite->xrepeat = pSprite->yrepeat = 16; |
2444,7 → 2390,8 |
if (spriteNum >= 0 && sprite[spriteNum].pal == 6) |
pSprite->pal = 6; |
changespritestat(newSprite, STAT_MISC); |
break; |
goto SPAWN_END; |
|
case BLOODPOOL__STATIC: |
case PUKE__STATIC: |
{ |
2472,13 → 2419,13 |
zero_puke: |
pSprite->xrepeat = pSprite->yrepeat = 0; |
changespritestat(newSprite, STAT_MISC); |
break; |
goto SPAWN_END; |
} |
|
if (sector[sectNum].lotag == ST_1_ABOVE_WATER) |
{ |
changespritestat(newSprite, STAT_MISC); |
break; |
goto SPAWN_END; |
} |
|
if (spriteNum >= 0 && pSprite->picnum != PUKE) |
2500,7 → 2447,7 |
if (spriteNum >= 0) |
pSprite->xrepeat = pSprite->yrepeat = 1; |
changespritestat(newSprite, STAT_MISC); |
break; |
goto SPAWN_END; |
|
case BLOODSPLAT1__STATIC: |
case BLOODSPLAT2__STATIC: |
2516,7 → 2463,7 |
|
A_AddToDeleteQueue(newSprite); |
changespritestat(newSprite, STAT_MISC); |
break; |
goto SPAWN_END; |
|
case TRIPBOMB__STATIC: |
if (pSprite->lotag > ud.player_skill) |
2523,7 → 2470,7 |
{ |
pSprite->xrepeat = pSprite->yrepeat = 0; |
changespritestat(newSprite, STAT_MISC); |
break; |
goto SPAWN_END; |
} |
|
pSprite->xrepeat = 4; |
2539,18 → 2486,18 |
pActor->t_data[5] = pSprite->ang; |
|
changespritestat(newSprite, STAT_ZOMBIEACTOR); |
break; |
goto SPAWN_END; |
|
case SPACEMARINE__STATIC: |
pSprite->extra = 20; |
pSprite->cstat |= 257; |
changespritestat(newSprite, STAT_ZOMBIEACTOR); |
break; |
goto SPAWN_END; |
case DOORSHOCK__STATIC: |
pSprite->cstat |= 1+256; |
pSprite->shade = -12; |
changespritestat(newSprite, STAT_STANDABLE); |
break; |
goto SPAWN_END; |
case HYDRENT__STATIC: |
case PANNEL1__STATIC: |
case PANNEL2__STATIC: |
2622,10 → 2569,11 |
fallthrough__; |
case OCEANSPRITE4__STATIC: |
changespritestat(newSprite, STAT_DEFAULT); |
break; |
goto SPAWN_END; |
|
case FRAMEEFFECT1_13__STATIC: |
if (PLUTOPAK) break; |
if (PLUTOPAK) |
break; |
fallthrough__; |
case FRAMEEFFECT1__STATIC: |
if (spriteNum >= 0) |
2638,7 → 2586,7 |
|
changespritestat(newSprite, STAT_MISC); |
|
break; |
goto SPAWN_END; |
case FOOTPRINTS__STATIC: |
case FOOTPRINTS2__STATIC: |
case FOOTPRINTS3__STATIC: |
2661,7 → 2609,7 |
{ |
pSprite->xrepeat = pSprite->yrepeat = 0; |
changespritestat(newSprite, STAT_MISC); |
break; |
goto SPAWN_END; |
} |
} |
else goto zero_footprint; |
2672,7 → 2620,7 |
{ |
zero_footprint: |
pSprite->xrepeat = pSprite->yrepeat = 0; |
break; |
goto SPAWN_END; |
} |
|
pSprite->cstat = 32 + ((g_player[P_Get(spriteNum)].ps->footprintcount & 1) << 2); |
2686,7 → 2634,7 |
|
A_AddToDeleteQueue(newSprite); |
changespritestat(newSprite, STAT_MISC); |
break; |
goto SPAWN_END; |
|
case VIEWSCREEN__STATIC: |
case VIEWSCREEN2__STATIC: |
2693,7 → 2641,7 |
pSprite->owner = newSprite; |
pSprite->lotag = pSprite->extra = 1; |
changespritestat(newSprite, STAT_STANDABLE); |
break; |
goto SPAWN_END; |
case RESPAWN__STATIC: |
pSprite->extra = 66-13; |
fallthrough__; |
2702,11 → 2650,11 |
{ |
pSprite->xrepeat = pSprite->yrepeat = 0; |
changespritestat(newSprite, STAT_MISC); |
break; |
goto SPAWN_END; |
} |
pSprite->cstat = 32768; |
changespritestat(newSprite, STAT_FX); |
break; |
goto SPAWN_END; |
|
case EXPLOSION2__STATIC: |
#ifdef POLYMER |
2760,7 → 2708,7 |
|
changespritestat(newSprite, STAT_MISC); |
|
break; |
goto SPAWN_END; |
|
case PLAYERONWATER__STATIC: |
if (spriteNum >= 0) |
2772,7 → 2720,7 |
pSprite->cstat |= 32768; |
} |
changespritestat(newSprite, STAT_DUMMYPLAYER); |
break; |
goto SPAWN_END; |
|
case APLAYER__STATIC: |
pSprite->xrepeat = 0; |
2783,7 → 2731,7 |
|| ((g_gametypeFlags[ud.coop] & GAMETYPE_COOPSPAWN) / GAMETYPE_COOPSPAWN) != pSprite->lotag) |
? STAT_MISC |
: STAT_PLAYER); |
break; |
goto SPAWN_END; |
case TOUCHPLATE__STATIC: |
T3(newSprite) = sector[sectNum].floorz; |
|
2794,7 → 2742,7 |
{ |
pSprite->xrepeat=pSprite->yrepeat=0; |
changespritestat(newSprite, STAT_MISC); |
break; |
goto SPAWN_END; |
} |
#ifndef EDUKE32_STANDALONE |
fallthrough__; |
2809,7 → 2757,7 |
#endif |
pSprite->cstat |= 32768; |
changespritestat(newSprite, STAT_STANDABLE); |
break; |
goto SPAWN_END; |
|
case MASTERSWITCH__STATIC: |
if (pSprite->picnum == MASTERSWITCH) |
2816,11 → 2764,11 |
pSprite->cstat |= 32768; |
pSprite->yvel = 0; |
changespritestat(newSprite, STAT_STANDABLE); |
break; |
goto SPAWN_END; |
case LOCATORS__STATIC: |
pSprite->cstat |= 32768; |
changespritestat(newSprite, STAT_LOCATOR); |
break; |
goto SPAWN_END; |
|
case ACTIVATORLOCKED__STATIC: |
case ACTIVATOR__STATIC: |
2828,7 → 2776,7 |
if (pSprite->picnum == ACTIVATORLOCKED) |
sector[pSprite->sectnum].lotag |= 16384; |
changespritestat(newSprite, STAT_ACTIVATOR); |
break; |
goto SPAWN_END; |
|
case OOZ__STATIC: |
case OOZ2__STATIC: |
2852,7 → 2800,7 |
pSprite->xrepeat = 25 - (oozSize >> 1); |
pSprite->cstat |= (krand() & 4); |
|
break; |
goto SPAWN_END; |
} |
|
case SECTOREFFECTOR__STATIC: |
3418,7 → 3366,7 |
} |
|
changespritestat(newSprite, STAT_EFFECTOR); |
break; |
goto SPAWN_END; |
|
case SEENINE__STATIC: |
case OOZFILTER__STATIC: |
3435,7 → 3383,7 |
pSprite->owner = newSprite; |
|
changespritestat(newSprite, STAT_STANDABLE); |
break; |
goto SPAWN_END; |
|
case CRACK1__STATIC: |
case CRACK2__STATIC: |
3457,7 → 3405,7 |
{ |
pSprite->xrepeat = pSprite->yrepeat = 0; |
changespritestat(newSprite, STAT_MISC); |
break; |
goto SPAWN_END; |
} |
|
pSprite->pal = 0; |
3466,9 → 3414,67 |
|
changespritestat(newSprite, STAT_STANDABLE); |
A_SetSprite(newSprite,CLIPMASK0); |
break; |
goto SPAWN_END; |
|
default: |
break; // NOT goto |
} |
|
// implementation of the default case |
if (G_HaveActor(pSprite->picnum)) |
{ |
if (spriteNum == -1 && pSprite->lotag > ud.player_skill) |
{ |
pSprite->xrepeat = pSprite->yrepeat = 0; |
changespritestat(newSprite, STAT_MISC); |
goto SPAWN_END; |
} |
|
// Init the size |
if (pSprite->xrepeat == 0 || pSprite->yrepeat == 0) |
pSprite->xrepeat = pSprite->yrepeat = 1; |
|
if (A_CheckSpriteFlags(newSprite, SFLAG_BADGUY)) |
{ |
if (ud.monsters_off == 1) |
{ |
pSprite->xrepeat = pSprite->yrepeat = 0; |
changespritestat(newSprite, STAT_MISC); |
goto SPAWN_END; |
} |
|
A_Fall(newSprite); |
|
if (A_CheckSpriteFlags(newSprite, SFLAG_BADGUYSTAYPUT)) |
pActor->stayput = pSprite->sectnum; |
|
g_player[myconnectindex].ps->max_actors_killed++; |
pSprite->clipdist = 80; |
|
if (spriteNum >= 0) |
{ |
if (sprite[spriteNum].picnum == RESPAWN) |
pActor->tempang = sprite[newSprite].pal = sprite[spriteNum].pal; |
|
A_PlayAlertSound(newSprite); |
changespritestat(newSprite, STAT_ACTOR); |
} |
else |
changespritestat(newSprite, STAT_ZOMBIEACTOR); |
} |
else |
{ |
pSprite->clipdist = 40; |
pSprite->owner = newSprite; |
changespritestat(newSprite, STAT_ACTOR); |
} |
|
pActor->timetosleep = 0; |
|
if (spriteNum >= 0) |
pSprite->ang = sprite[spriteNum].ang; |
} |
|
SPAWN_END: |
if (VM_HaveEvent(EVENT_SPAWN)) |
{ |