- sprite[]in nukespell.

This commit is contained in:
Christoph Oelckers 2021-11-21 11:56:19 +01:00
parent 2c67b74dab
commit ff3f274963

View file

@ -240,123 +240,126 @@ void speelbookprocess(PLAYER& plr) {
} }
} }
void nukespell(PLAYER& plr, short j) { void nukespell(PLAYER& plr, short const j) {
if(sprite[j].detail != WILLOWTYPE && sprite[j].pal == 6) //don't nuke freezed enemies auto& spr = sprite[j];
if(spr.detail != WILLOWTYPE && spr.pal == 6) //don't nuke freezed enemies
return; return;
if (isWh2()) { if (isWh2()) {
// dont nuke a shade // dont nuke a shade
if (sprite[j].shade > 30) if (spr.shade > 30)
return; return;
newstatus(j, NUKED); newstatus(j, NUKED);
sprite[j].pal = 0; spr.pal = 0;
sprite[j].cstat |= 1; spr.cstat |= 1;
sprite[j].cstat &= ~3; spr.cstat &= ~3;
sprite[j].shade = 6; spr.shade = 6;
sprite[j].lotag = 360; spr.lotag = 360;
sprite[j].ang = plr.angle.ang.asbuild(); spr.ang = plr.angle.ang.asbuild();
sprite[j].hitag = 0; spr.hitag = 0;
addscore(&plr, 150); addscore(&plr, 150);
int k = insertsprite(sprite[j].sectnum, NUKED); int k = insertsprite(spr.sectnum, NUKED);
sprite[k].lotag = 360; auto& spawned = sprite[k];
sprite[k].xrepeat = 30; spawned.lotag = 360;
sprite[k].yrepeat = 12; spawned.xrepeat = 30;
sprite[k].picnum = ZFIRE; spawned.yrepeat = 12;
sprite[k].pal = 0; spawned.picnum = ZFIRE;
sprite[k].ang = sprite[j].ang; spawned.pal = 0;
sprite[k].x = sprite[j].x; spawned.ang = spr.ang;
sprite[k].y = sprite[j].y; spawned.x = spr.x;
sprite[k].z = sprite[j].z; spawned.y = spr.y;
sprite[k].cstat = sprite[j].cstat; spawned.z = spr.z;
spawned.cstat = spr.cstat;
return; return;
} }
switch (sprite[j].detail) { switch (spr.detail) {
case WILLOWTYPE: case WILLOWTYPE:
case SPIDERTYPE: case SPIDERTYPE:
deletesprite((short) j); deletesprite((short) j);
addscore(&plr, 10); addscore(&plr, 10);
break; break;
case KOBOLDTYPE: case KOBOLDTYPE:
sprite[j].picnum = KOBOLDCHAR; spr.picnum = KOBOLDCHAR;
newstatus(j, NUKED); newstatus(j, NUKED);
sprite[j].pal = 0; spr.pal = 0;
sprite[j].cstat |= 1; spr.cstat |= 1;
addscore(&plr, 150); addscore(&plr, 150);
break; break;
case DEVILTYPE: case DEVILTYPE:
sprite[j].picnum = DEVILCHAR; spr.picnum = DEVILCHAR;
newstatus(j, NUKED); newstatus(j, NUKED);
sprite[j].pal = 0; spr.pal = 0;
sprite[j].cstat |= 1; spr.cstat |= 1;
addscore(&plr, 150); addscore(&plr, 150);
break; break;
case GOBLINTYPE: case GOBLINTYPE:
case IMPTYPE: case IMPTYPE:
sprite[j].picnum = GOBLINCHAR; spr.picnum = GOBLINCHAR;
newstatus(j, NUKED); newstatus(j, NUKED);
sprite[j].pal = 0; spr.pal = 0;
sprite[j].cstat |= 1; spr.cstat |= 1;
addscore(&plr, 150); addscore(&plr, 150);
break; break;
case MINOTAURTYPE: case MINOTAURTYPE:
sprite[j].picnum = MINOTAURCHAR; spr.picnum = MINOTAURCHAR;
newstatus(j, NUKED); newstatus(j, NUKED);
sprite[j].pal = 0; spr.pal = 0;
sprite[j].cstat |= 1; spr.cstat |= 1;
addscore(&plr, 150); addscore(&plr, 150);
break; break;
case SKELETONTYPE: case SKELETONTYPE:
sprite[j].picnum = SKELETONCHAR; spr.picnum = SKELETONCHAR;
newstatus(j, NUKED); newstatus(j, NUKED);
sprite[j].pal = 0; spr.pal = 0;
sprite[j].cstat |= 1; spr.cstat |= 1;
addscore(&plr, 150); addscore(&plr, 150);
break; break;
case GRONTYPE: case GRONTYPE:
sprite[j].picnum = GRONCHAR; spr.picnum = GRONCHAR;
newstatus(j, NUKED); newstatus(j, NUKED);
sprite[j].pal = 0; spr.pal = 0;
sprite[j].cstat |= 1; spr.cstat |= 1;
addscore(&plr, 150); addscore(&plr, 150);
break; break;
case DRAGONTYPE: case DRAGONTYPE:
sprite[j].picnum = DRAGONCHAR; spr.picnum = DRAGONCHAR;
newstatus(j, NUKED); newstatus(j, NUKED);
sprite[j].pal = 0; spr.pal = 0;
sprite[j].cstat |= 1; spr.cstat |= 1;
addscore(&plr, 150); addscore(&plr, 150);
break; break;
case GUARDIANTYPE: case GUARDIANTYPE:
sprite[j].picnum = GUARDIANCHAR; spr.picnum = GUARDIANCHAR;
newstatus(j, NUKED); newstatus(j, NUKED);
sprite[j].pal = 0; spr.pal = 0;
sprite[j].cstat |= 1; spr.cstat |= 1;
addscore(&plr, 150); addscore(&plr, 150);
break; break;
case FATWITCHTYPE: case FATWITCHTYPE:
sprite[j].picnum = FATWITCHCHAR; spr.picnum = FATWITCHCHAR;
newstatus(j, NUKED); newstatus(j, NUKED);
sprite[j].pal = 0; spr.pal = 0;
sprite[j].cstat |= 1; spr.cstat |= 1;
addscore(&plr, 150); addscore(&plr, 150);
break; break;
case SKULLYTYPE: case SKULLYTYPE:
sprite[j].picnum = SKULLYCHAR; spr.picnum = SKULLYCHAR;
newstatus(j, NUKED); newstatus(j, NUKED);
sprite[j].pal = 0; spr.pal = 0;
sprite[j].cstat |= 1; spr.cstat |= 1;
addscore(&plr, 150); addscore(&plr, 150);
break; break;
case JUDYTYPE: case JUDYTYPE:
if (mapon < 24) { if (mapon < 24) {
sprite[j].picnum = JUDYCHAR; spr.picnum = JUDYCHAR;
newstatus(j, NUKED); newstatus(j, NUKED);
sprite[j].pal = 0; spr.pal = 0;
sprite[j].cstat |= 1; spr.cstat |= 1;
addscore(&plr, 150); addscore(&plr, 150);
} }
break; break;
@ -364,65 +367,67 @@ void nukespell(PLAYER& plr, short j) {
} }
void medusa(PLAYER& plr, short j) { void medusa(PLAYER& plr, short j) {
if(sprite[j].hitag <= 0) //don't freeze dead enemies auto& spr = sprite[j];
if(spr.hitag <= 0) //don't freeze dead enemies
return; return;
newstatus(j, FROZEN); newstatus(j, FROZEN);
int pic = sprite[j].picnum; int pic = spr.picnum;
switch (sprite[j].detail) { switch (spr.detail) {
case NEWGUYTYPE: case NEWGUYTYPE:
sprite[j].picnum = NEWGUYPAIN; spr.picnum = NEWGUYPAIN;
break; break;
case KURTTYPE: case KURTTYPE:
sprite[j].picnum = GONZOCSWPAIN; spr.picnum = GONZOCSWPAIN;
break; break;
case GONZOTYPE: case GONZOTYPE:
if(pic == GONZOCSW || pic == GONZOCSWAT) if(pic == GONZOCSW || pic == GONZOCSWAT)
sprite[j].picnum = GONZOCSWPAIN; spr.picnum = GONZOCSWPAIN;
else if(pic == GONZOGSW || pic == GONZOGSWAT) else if(pic == GONZOGSW || pic == GONZOGSWAT)
sprite[j].picnum = GONZOGSWPAIN; spr.picnum = GONZOGSWPAIN;
else if(pic == GONZOGHM || pic == GONZOGHMAT else if(pic == GONZOGHM || pic == GONZOGHMAT
|| pic == GONZOGSH || pic == GONZOGSHAT) || pic == GONZOGSH || pic == GONZOGSHAT)
sprite[j].picnum = GONZOGHMPAIN; spr.picnum = GONZOGHMPAIN;
break; break;
case KATIETYPE: case KATIETYPE:
sprite[j].picnum = KATIEPAIN; spr.picnum = KATIEPAIN;
break; break;
case KOBOLDTYPE: case KOBOLDTYPE:
sprite[j].picnum = KOBOLDDIE; spr.picnum = KOBOLDDIE;
break; break;
case DEVILTYPE: case DEVILTYPE:
sprite[j].picnum = DEVILDIE; spr.picnum = DEVILDIE;
break; break;
case FREDTYPE: case FREDTYPE:
sprite[j].picnum = FREDDIE; spr.picnum = FREDDIE;
break; break;
case GOBLINTYPE: case GOBLINTYPE:
case IMPTYPE: case IMPTYPE:
if(isWh2()) sprite[j].picnum = IMPDIE; if(isWh2()) spr.picnum = IMPDIE;
else sprite[j].picnum = GOBLINDIE; else spr.picnum = GOBLINDIE;
break; break;
case MINOTAURTYPE: case MINOTAURTYPE:
sprite[j].picnum = MINOTAURDIE; spr.picnum = MINOTAURDIE;
break; break;
case SPIDERTYPE: case SPIDERTYPE:
sprite[j].picnum = SPIDERDIE; spr.picnum = SPIDERDIE;
break; break;
case SKELETONTYPE: case SKELETONTYPE:
sprite[j].picnum = SKELETONDIE; spr.picnum = SKELETONDIE;
break; break;
case GRONTYPE: case GRONTYPE:
if(pic == GRONHAL || pic == GRONHALATTACK) if(pic == GRONHAL || pic == GRONHALATTACK)
sprite[j].picnum = (short) GRONHALDIE; spr.picnum = (short) GRONHALDIE;
else if(pic == GRONMU || pic == GRONMUATTACK) else if(pic == GRONMU || pic == GRONMUATTACK)
sprite[j].picnum = (short) GRONMUDIE; spr.picnum = (short) GRONMUDIE;
else if(pic == GRONSW || pic == GRONSWATTACK) else if(pic == GRONSW || pic == GRONSWATTACK)
sprite[j].picnum = (short) GRONSWDIE; spr.picnum = (short) GRONSWDIE;
break; break;
} }
sprite[j].pal = 6; spr.pal = 6;
sprite[j].cstat |= 1; spr.cstat |= 1;
addscore(&plr, 100); addscore(&plr, 100);
} }