- more simple pointer replacements - lots of them...

This commit is contained in:
Christoph Oelckers 2020-10-15 00:23:51 +02:00
parent 0c95aee8f5
commit 76e4661eea
2 changed files with 276 additions and 278 deletions

View file

@ -1023,11 +1023,11 @@ bool checkhitceiling_d(int sn)
void checkhitsprite_d(int i, int sn) void checkhitsprite_d(int i, int sn)
{ {
int j, k, p; int j, k, p;
spritetype* s;
i &= (MAXSPRITES - 1); i &= (MAXSPRITES - 1);
spritetype* s = &sprite[i];
switch (sprite[i].picnum) switch (s->picnum)
{ {
case WTGLASS1: case WTGLASS1:
case WTGLASS2: case WTGLASS2:
@ -1050,9 +1050,9 @@ void checkhitsprite_d(int i, int sn)
case STRIPEBALL: case STRIPEBALL:
if (sprite[sn].picnum == QUEBALL || sprite[sn].picnum == STRIPEBALL) if (sprite[sn].picnum == QUEBALL || sprite[sn].picnum == STRIPEBALL)
{ {
sprite[sn].xvel = (sprite[i].xvel >> 1) + (sprite[i].xvel >> 2); sprite[sn].xvel = (s->xvel >> 1) + (s->xvel >> 2);
sprite[sn].ang -= (sprite[i].ang << 1) + 1024; sprite[sn].ang -= (s->ang << 1) + 1024;
sprite[i].ang = getangle(sprite[i].x - sprite[sn].x, sprite[i].y - sprite[sn].y) - 512; s->ang = getangle(s->x - sprite[sn].x, s->y - sprite[sn].y) - 512;
if (S_CheckSoundPlaying(POOLBALLHIT) < 2) if (S_CheckSoundPlaying(POOLBALLHIT) < 2)
S_PlayActorSound(POOLBALLHIT, i); S_PlayActorSound(POOLBALLHIT, i);
} }
@ -1060,8 +1060,8 @@ void checkhitsprite_d(int i, int sn)
{ {
if (krand() & 3) if (krand() & 3)
{ {
sprite[i].xvel = 164; s->xvel = 164;
sprite[i].ang = sprite[sn].ang; s->ang = sprite[sn].ang;
} }
else else
{ {
@ -1084,7 +1084,7 @@ void checkhitsprite_d(int i, int sn)
case HEAVYHBOMB: case HEAVYHBOMB:
if (hittype[i].temp_data[0] == 0) if (hittype[i].temp_data[0] == 0)
{ {
sprite[i].cstat &= ~257; s->cstat &= ~257;
hittype[i].temp_data[0] = 1; hittype[i].temp_data[0] = 1;
fi.spawn(i, BURNING); fi.spawn(i, BURNING);
} }
@ -1102,13 +1102,13 @@ void checkhitsprite_d(int i, int sn)
case HEAVYHBOMB: case HEAVYHBOMB:
for (k = 0; k < 64; k++) for (k = 0; k < 64; k++)
{ {
j = EGS(sprite[i].sectnum, sprite[i].x, sprite[i].y, sprite[i].z - (krand() % (48 << 8)), SCRAP3 + (krand() & 3), -8, 48, 48, krand() & 2047, (krand() & 63) + 64, -(krand() & 4095) - (sprite[i].zvel >> 2), i, 5); j = EGS(s->sectnum, s->x, s->y, s->z - (krand() % (48 << 8)), SCRAP3 + (krand() & 3), -8, 48, 48, krand() & 2047, (krand() & 63) + 64, -(krand() & 4095) - (s->zvel >> 2), i, 5);
sprite[j].pal = 8; sprite[j].pal = 8;
} }
if (sprite[i].picnum == CACTUS) if (s->picnum == CACTUS)
sprite[i].picnum = CACTUSBROKE; s->picnum = CACTUSBROKE;
sprite[i].cstat &= ~257; s->cstat &= ~257;
// else deletesprite(i); // else deletesprite(i);
break; break;
} }
@ -1117,20 +1117,19 @@ void checkhitsprite_d(int i, int sn)
case HANGLIGHT: case HANGLIGHT:
case GENERICPOLE2: case GENERICPOLE2:
for (k = 0; k < 6; k++) for (k = 0; k < 6; k++)
EGS(sprite[i].sectnum, sprite[i].x, sprite[i].y, sprite[i].z - (8 << 8), SCRAP1 + (krand() & 15), -8, 48, 48, krand() & 2047, (krand() & 63) + 64, -(krand() & 4095) - (sprite[i].zvel >> 2), i, 5); EGS(s->sectnum, s->x, s->y, s->z - (8 << 8), SCRAP1 + (krand() & 15), -8, 48, 48, krand() & 2047, (krand() & 63) + 64, -(krand() & 4095) - (s->zvel >> 2), i, 5);
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
deletesprite(i); deletesprite(i);
break; break;
case FANSPRITE: case FANSPRITE:
sprite[i].picnum = FANSPRITEBROKE; s->picnum = FANSPRITEBROKE;
sprite[i].cstat &= (65535 - 257); s->cstat &= (65535 - 257);
if (sector[sprite[i].sectnum].floorpicnum == FANSHADOW) if (sector[s->sectnum].floorpicnum == FANSHADOW)
sector[sprite[i].sectnum].floorpicnum = FANSHADOWBROKE; sector[s->sectnum].floorpicnum = FANSHADOWBROKE;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
s = &sprite[i];
for (j = 0; j < 16; j++) RANDOMSCRAP(s, i); for (j = 0; j < 16; j++) RANDOMSCRAP(s, i);
break; break;
@ -1138,7 +1137,7 @@ void checkhitsprite_d(int i, int sn)
case WATERFOUNTAIN + 1: case WATERFOUNTAIN + 1:
case WATERFOUNTAIN + 2: case WATERFOUNTAIN + 2:
case WATERFOUNTAIN + 3: case WATERFOUNTAIN + 3:
sprite[i].picnum = WATERFOUNTAINBROKE; s->picnum = WATERFOUNTAINBROKE;
fi.spawn(i, TOILETWATER); fi.spawn(i, TOILETWATER);
break; break;
case SATELITE: case SATELITE:
@ -1148,7 +1147,7 @@ void checkhitsprite_d(int i, int sn)
if (actorinfo[SHOTSPARK1].scriptaddress && sprite[sn].extra != ScriptCode[actorinfo[SHOTSPARK1].scriptaddress]) if (actorinfo[SHOTSPARK1].scriptaddress && sprite[sn].extra != ScriptCode[actorinfo[SHOTSPARK1].scriptaddress])
{ {
for (j = 0; j < 15; j++) for (j = 0; j < 15; j++)
EGS(sprite[i].sectnum, sprite[i].x, sprite[i].y, sector[sprite[i].sectnum].floorz - (12 << 8) - (j << 9), SCRAP1 + (krand() & 15), -8, 64, 64, EGS(s->sectnum, s->x, s->y, sector[s->sectnum].floorz - (12 << 8) - (j << 9), SCRAP1 + (krand() & 15), -8, 64, 64,
krand() & 2047, (krand() & 127) + 64, -(krand() & 511) - 256, i, 5); krand() & 2047, (krand() & 127) + 64, -(krand() & 511) - 256, i, 5);
fi.spawn(i, EXPLOSION2); fi.spawn(i, EXPLOSION2);
deletesprite(i); deletesprite(i);
@ -1182,23 +1181,23 @@ void checkhitsprite_d(int i, int sn)
case VASE: case VASE:
case STATUEFLASH: case STATUEFLASH:
case STATUE: case STATUE:
if (sprite[i].picnum == BOTTLE10) if (s->picnum == BOTTLE10)
fi.lotsofmoney(&sprite[i], 4 + (krand() & 3)); fi.lotsofmoney(&sprite[i], 4 + (krand() & 3));
else if (sprite[i].picnum == STATUE || sprite[i].picnum == STATUEFLASH) else if (s->picnum == STATUE || s->picnum == STATUEFLASH)
{ {
lotsofcolourglass(i, -1, 40); lotsofcolourglass(i, -1, 40);
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
} }
else if (sprite[i].picnum == VASE) else if (s->picnum == VASE)
lotsofglass(i, -1, 40); lotsofglass(i, -1, 40);
S_PlayActorSound(GLASS_BREAKING, i); S_PlayActorSound(GLASS_BREAKING, i);
sprite[i].ang = krand() & 2047; s->ang = krand() & 2047;
lotsofglass(i, -1, 8); lotsofglass(i, -1, 8);
deletesprite(i); deletesprite(i);
break; break;
case FETUS: case FETUS:
sprite[i].picnum = FETUSBROKE; s->picnum = FETUSBROKE;
S_PlayActorSound(GLASS_BREAKING, i); S_PlayActorSound(GLASS_BREAKING, i);
lotsofglass(i, -1, 10); lotsofglass(i, -1, 10);
break; break;
@ -1206,7 +1205,7 @@ void checkhitsprite_d(int i, int sn)
for (j = 0; j < 48; j++) for (j = 0; j < 48; j++)
{ {
fi.shoot(i, BLOODSPLAT1); fi.shoot(i, BLOODSPLAT1);
sprite[i].ang += 333; s->ang += 333;
} }
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
S_PlayActorSound(SQUISHED, i); S_PlayActorSound(SQUISHED, i);
@ -1216,77 +1215,77 @@ void checkhitsprite_d(int i, int sn)
deletesprite(i); deletesprite(i);
break; break;
case HYDROPLANT: case HYDROPLANT:
sprite[i].picnum = BROKEHYDROPLANT; s->picnum = BROKEHYDROPLANT;
S_PlayActorSound(GLASS_BREAKING, i); S_PlayActorSound(GLASS_BREAKING, i);
lotsofglass(i, -1, 10); lotsofglass(i, -1, 10);
break; break;
case FORCESPHERE: case FORCESPHERE:
sprite[i].xrepeat = 0; s->xrepeat = 0;
hittype[sprite[i].owner].temp_data[0] = 32; hittype[s->owner].temp_data[0] = 32;
hittype[sprite[i].owner].temp_data[1] = !hittype[sprite[i].owner].temp_data[1]; hittype[s->owner].temp_data[1] = !hittype[s->owner].temp_data[1];
hittype[sprite[i].owner].temp_data[2] ++; hittype[s->owner].temp_data[2] ++;
fi.spawn(i, EXPLOSION2); fi.spawn(i, EXPLOSION2);
break; break;
case BROKEHYDROPLANT: case BROKEHYDROPLANT:
if (sprite[i].cstat & 1) if (s->cstat & 1)
{ {
S_PlayActorSound(GLASS_BREAKING, i); S_PlayActorSound(GLASS_BREAKING, i);
sprite[i].z += 16 << 8; s->z += 16 << 8;
sprite[i].cstat = 0; s->cstat = 0;
lotsofglass(i, -1, 5); lotsofglass(i, -1, 5);
} }
break; break;
case TOILET: case TOILET:
sprite[i].picnum = TOILETBROKE; s->picnum = TOILETBROKE;
sprite[i].cstat |= (krand() & 1) << 2; s->cstat |= (krand() & 1) << 2;
sprite[i].cstat &= ~257; s->cstat &= ~257;
fi.spawn(i, TOILETWATER); fi.spawn(i, TOILETWATER);
S_PlayActorSound(GLASS_BREAKING, i); S_PlayActorSound(GLASS_BREAKING, i);
break; break;
case STALL: case STALL:
sprite[i].picnum = STALLBROKE; s->picnum = STALLBROKE;
sprite[i].cstat |= (krand() & 1) << 2; s->cstat |= (krand() & 1) << 2;
sprite[i].cstat &= ~257; s->cstat &= ~257;
fi.spawn(i, TOILETWATER); fi.spawn(i, TOILETWATER);
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case HYDRENT: case HYDRENT:
sprite[i].picnum = BROKEFIREHYDRENT; s->picnum = BROKEFIREHYDRENT;
fi.spawn(i, TOILETWATER); fi.spawn(i, TOILETWATER);
// for(k=0;k<5;k++) // for(k=0;k<5;k++)
// { // {
// j = EGS(sprite[i].sectnum,sprite[i].x,sprite[i].y,sprite[i].z-(krand()%(48<<8)),SCRAP3+(krand()&3),-8,48,48,krand()&2047,(krand()&63)+64,-(krand()&4095)-(sprite[i].zvel>>2),i,5); // j = EGS(s->sectnum,s->x,s->y,s->z-(krand()%(48<<8)),SCRAP3+(krand()&3),-8,48,48,krand()&2047,(krand()&63)+64,-(krand()&4095)-(s->zvel>>2),i,5);
// sprite[j].pal = 2; // sprite[j].pal = 2;
// } // }
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case GRATE1: case GRATE1:
sprite[i].picnum = BGRATE1; s->picnum = BGRATE1;
sprite[i].cstat &= (65535 - 256 - 1); s->cstat &= (65535 - 256 - 1);
S_PlayActorSound(VENT_BUST, i); S_PlayActorSound(VENT_BUST, i);
break; break;
case CIRCLEPANNEL: case CIRCLEPANNEL:
sprite[i].picnum = CIRCLEPANNELBROKE; s->picnum = CIRCLEPANNELBROKE;
sprite[i].cstat &= (65535 - 256 - 1); s->cstat &= (65535 - 256 - 1);
S_PlayActorSound(VENT_BUST, i); S_PlayActorSound(VENT_BUST, i);
break; break;
case PANNEL1: case PANNEL1:
case PANNEL2: case PANNEL2:
sprite[i].picnum = BPANNEL1; s->picnum = BPANNEL1;
sprite[i].cstat &= (65535 - 256 - 1); s->cstat &= (65535 - 256 - 1);
S_PlayActorSound(VENT_BUST, i); S_PlayActorSound(VENT_BUST, i);
break; break;
case PANNEL3: case PANNEL3:
sprite[i].picnum = BPANNEL3; s->picnum = BPANNEL3;
sprite[i].cstat &= (65535 - 256 - 1); s->cstat &= (65535 - 256 - 1);
S_PlayActorSound(VENT_BUST, i); S_PlayActorSound(VENT_BUST, i);
break; break;
case PIPE1: case PIPE1:
@ -1295,44 +1294,44 @@ void checkhitsprite_d(int i, int sn)
case PIPE4: case PIPE4:
case PIPE5: case PIPE5:
case PIPE6: case PIPE6:
switch (sprite[i].picnum) switch (s->picnum)
{ {
case PIPE1:sprite[i].picnum = PIPE1B; break; case PIPE1:s->picnum = PIPE1B; break;
case PIPE2:sprite[i].picnum = PIPE2B; break; case PIPE2:s->picnum = PIPE2B; break;
case PIPE3:sprite[i].picnum = PIPE3B; break; case PIPE3:s->picnum = PIPE3B; break;
case PIPE4:sprite[i].picnum = PIPE4B; break; case PIPE4:s->picnum = PIPE4B; break;
case PIPE5:sprite[i].picnum = PIPE5B; break; case PIPE5:s->picnum = PIPE5B; break;
case PIPE6:sprite[i].picnum = PIPE6B; break; case PIPE6:s->picnum = PIPE6B; break;
} }
j = fi.spawn(i, STEAM); j = fi.spawn(i, STEAM);
sprite[j].z = sector[sprite[i].sectnum].floorz - (32 << 8); sprite[j].z = sector[s->sectnum].floorz - (32 << 8);
break; break;
case MONK: case MONK:
case LUKE: case LUKE:
case INDY: case INDY:
case JURYGUY: case JURYGUY:
S_PlayActorSound(sprite[i].lotag, i); S_PlayActorSound(s->lotag, i);
fi.spawn(i, sprite[i].hitag); fi.spawn(i, s->hitag);
case SPACEMARINE: case SPACEMARINE:
sprite[i].extra -= sprite[sn].extra; s->extra -= sprite[sn].extra;
if (sprite[i].extra > 0) break; if (s->extra > 0) break;
sprite[i].ang = krand() & 2047; s->ang = krand() & 2047;
fi.shoot(i, BLOODSPLAT1); fi.shoot(i, BLOODSPLAT1);
sprite[i].ang = krand() & 2047; s->ang = krand() & 2047;
fi.shoot(i, BLOODSPLAT2); fi.shoot(i, BLOODSPLAT2);
sprite[i].ang = krand() & 2047; s->ang = krand() & 2047;
fi.shoot(i, BLOODSPLAT3); fi.shoot(i, BLOODSPLAT3);
sprite[i].ang = krand() & 2047; s->ang = krand() & 2047;
fi.shoot(i, BLOODSPLAT4); fi.shoot(i, BLOODSPLAT4);
sprite[i].ang = krand() & 2047; s->ang = krand() & 2047;
fi.shoot(i, BLOODSPLAT1); fi.shoot(i, BLOODSPLAT1);
sprite[i].ang = krand() & 2047; s->ang = krand() & 2047;
fi.shoot(i, BLOODSPLAT2); fi.shoot(i, BLOODSPLAT2);
sprite[i].ang = krand() & 2047; s->ang = krand() & 2047;
fi.shoot(i, BLOODSPLAT3); fi.shoot(i, BLOODSPLAT3);
sprite[i].ang = krand() & 2047; s->ang = krand() & 2047;
fi.shoot(i, BLOODSPLAT4); fi.shoot(i, BLOODSPLAT4);
fi.guts(&sprite[i], JIBS1, 1, myconnectindex); fi.guts(&sprite[i], JIBS1, 1, myconnectindex);
fi.guts(&sprite[i], JIBS2, 2, myconnectindex); fi.guts(&sprite[i], JIBS2, 2, myconnectindex);
@ -1345,8 +1344,8 @@ void checkhitsprite_d(int i, int sn)
break; break;
case CHAIR1: case CHAIR1:
case CHAIR2: case CHAIR2:
sprite[i].picnum = BROKENCHAIR; s->picnum = BROKENCHAIR;
sprite[i].cstat = 0; s->cstat = 0;
break; break;
case CHAIR3: case CHAIR3:
case MOVIECAMERA: case MOVIECAMERA:
@ -1359,28 +1358,28 @@ void checkhitsprite_d(int i, int sn)
case POT3: case POT3:
case TRIPODCAMERA: case TRIPODCAMERA:
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
s = &sprite[i];
for (j = 0; j < 16; j++) RANDOMSCRAP(s, i); for (j = 0; j < 16; j++) RANDOMSCRAP(s, i);
deletesprite(i); deletesprite(i);
break; break;
case PLAYERONWATER: case PLAYERONWATER:
i = sprite[i].owner; i = s->owner;
s = &sprite[i];
default: default:
if ((sprite[i].cstat & 16) && sprite[i].hitag == 0 && sprite[i].lotag == 0 && sprite[i].statnum == 0) if ((s->cstat & 16) && s->hitag == 0 && s->lotag == 0 && s->statnum == 0)
break; break;
if ((sprite[sn].picnum == FREEZEBLAST || sprite[sn].owner != i) && sprite[i].statnum != 4) if ((sprite[sn].picnum == FREEZEBLAST || sprite[sn].owner != i) && s->statnum != 4)
{ {
if (badguy(&sprite[i]) == 1) if (badguy(&sprite[i]) == 1)
{ {
if (isWorldTour() && sprite[i].picnum == FIREFLY && sprite[i].xrepeat < 48) if (isWorldTour() && s->picnum == FIREFLY && s->xrepeat < 48)
break; break;
if (sprite[sn].picnum == RPG) sprite[sn].extra <<= 1; if (sprite[sn].picnum == RPG) sprite[sn].extra <<= 1;
if ((sprite[i].picnum != DRONE) && (sprite[i].picnum != ROTATEGUN) && (sprite[i].picnum != COMMANDER) && (sprite[i].picnum < GREENSLIME || sprite[i].picnum > GREENSLIME + 7)) if ((s->picnum != DRONE) && (s->picnum != ROTATEGUN) && (s->picnum != COMMANDER) && (s->picnum < GREENSLIME || s->picnum > GREENSLIME + 7))
if (sprite[sn].picnum != FREEZEBLAST) if (sprite[sn].picnum != FREEZEBLAST)
//if (actortype[sprite[i].picnum] == 0) //TRANSITIONAL. Cannot be done right with EDuke mess backing the engine. //if (actortype[s->picnum] == 0) //TRANSITIONAL. Cannot be done right with EDuke mess backing the engine.
{ {
j = fi.spawn(sn, JIBS6); j = fi.spawn(sn, JIBS6);
if (sprite[sn].pal == 6) if (sprite[sn].pal == 6)
@ -1393,7 +1392,7 @@ void checkhitsprite_d(int i, int sn)
j = sprite[sn].owner; j = sprite[sn].owner;
if (j >= 0 && sprite[j].picnum == APLAYER && sprite[i].picnum != ROTATEGUN && sprite[i].picnum != DRONE) if (j >= 0 && sprite[j].picnum == APLAYER && s->picnum != ROTATEGUN && s->picnum != DRONE)
if (ps[sprite[j].yvel].curr_weapon == SHOTGUN_WEAPON) if (ps[sprite[j].yvel].curr_weapon == SHOTGUN_WEAPON)
{ {
fi.shoot(i, BLOODSPLAT3); fi.shoot(i, BLOODSPLAT3);
@ -1402,38 +1401,38 @@ void checkhitsprite_d(int i, int sn)
fi.shoot(i, BLOODSPLAT4); fi.shoot(i, BLOODSPLAT4);
} }
if (sprite[i].picnum != TANK && !bossguy(&sprite[i]) && sprite[i].picnum != RECON && sprite[i].picnum != ROTATEGUN) if (s->picnum != TANK && !bossguy(&sprite[i]) && s->picnum != RECON && s->picnum != ROTATEGUN)
{ {
if ((sprite[i].cstat & 48) == 0) if ((s->cstat & 48) == 0)
sprite[i].ang = (sprite[sn].ang + 1024) & 2047; s->ang = (sprite[sn].ang + 1024) & 2047;
sprite[i].xvel = -(sprite[sn].extra << 2); s->xvel = -(sprite[sn].extra << 2);
short j = sprite[i].sectnum; short j = s->sectnum;
pushmove(&sprite[i].x, &sprite[i].y, &sprite[i].z, &j, 128L, (4L << 8), (4L << 8), CLIPMASK0); pushmove(&s->x, &s->y, &s->z, &j, 128L, (4L << 8), (4L << 8), CLIPMASK0);
if (j != sprite[i].sectnum && j >= 0 && j < MAXSECTORS) if (j != s->sectnum && j >= 0 && j < MAXSECTORS)
changespritesect(i, j); changespritesect(i, j);
} }
if (sprite[i].statnum == 2) if (s->statnum == 2)
{ {
changespritestat(i, 1); changespritestat(i, 1);
hittype[i].timetosleep = SLEEPTIME; hittype[i].timetosleep = SLEEPTIME;
} }
if ((sprite[i].xrepeat < 24 || sprite[i].picnum == SHARK) && sprite[sn].picnum == SHRINKSPARK) return; if ((s->xrepeat < 24 || s->picnum == SHARK) && sprite[sn].picnum == SHRINKSPARK) return;
} }
if (sprite[i].statnum != 2) if (s->statnum != 2)
{ {
if (sprite[sn].picnum == FREEZEBLAST && ((sprite[i].picnum == APLAYER && sprite[i].pal == 1) || (freezerhurtowner == 0 && sprite[sn].owner == i))) if (sprite[sn].picnum == FREEZEBLAST && ((s->picnum == APLAYER && s->pal == 1) || (freezerhurtowner == 0 && sprite[sn].owner == i)))
return; return;
int hitpic = sprite[sn].picnum; int hitpic = sprite[sn].picnum;
if (sprite[sprite[sn].owner].picnum == APLAYER) if (sprite[sprite[sn].owner].picnum == APLAYER)
{ {
if (sprite[i].picnum == APLAYER && ud.coop != 0 && ud.ffire == 0) if (s->picnum == APLAYER && ud.coop != 0 && ud.ffire == 0)
return; return;
if (isWorldTour() && hitpic == FIREBALL && sprite[sprite[i].owner].picnum != FIREBALL) if (isWorldTour() && hitpic == FIREBALL && sprite[s->owner].picnum != FIREBALL)
hitpic = FLAMETHROWERFLAME; hitpic = FLAMETHROWERFLAME;
} }
@ -1443,9 +1442,9 @@ void checkhitsprite_d(int i, int sn)
hittype[i].owner = sprite[sn].owner; hittype[i].owner = sprite[sn].owner;
} }
if (sprite[i].statnum == 10) if (s->statnum == 10)
{ {
p = sprite[i].yvel; p = s->yvel;
if (ps[p].newowner >= 0) if (ps[p].newowner >= 0)
{ {
ps[p].newowner = -1; ps[p].newowner = -1;
@ -1464,7 +1463,7 @@ void checkhitsprite_d(int i, int sn)
} }
} }
if (sprite[i].xrepeat < 24 && sprite[sn].picnum == SHRINKSPARK) if (s->xrepeat < 24 && sprite[sn].picnum == SHRINKSPARK)
return; return;
if (sprite[hittype[i].owner].picnum != APLAYER) if (sprite[hittype[i].owner].picnum != APLAYER)

View file

@ -1527,18 +1527,18 @@ bool checkhitceiling_r(int sn)
void checkhitsprite_r(int i, int sn) void checkhitsprite_r(int i, int sn)
{ {
int j, k, p; int j, k, p;
spritetype* s;
i &= (MAXSPRITES - 1); i &= (MAXSPRITES - 1);
spritetype* s = &sprite[i];
if (isRRRA()) switch (sprite[i].picnum) if (isRRRA()) switch (s->picnum)
{ {
case RRTILE8464: case RRTILE8464:
break; break;
case RRTILE8487: case RRTILE8487:
case RRTILE8489: case RRTILE8489:
S_PlayActorSound(471, i); S_PlayActorSound(471, i);
sprite[i].picnum++; s->picnum++;
break; break;
case RRTILE7638: case RRTILE7638:
case RRTILE7644: case RRTILE7644:
@ -1550,11 +1550,11 @@ void checkhitsprite_r(int i, int sn)
case RRTILE7876: case RRTILE7876:
case RRTILE7881: case RRTILE7881:
case RRTILE7883: case RRTILE7883:
sprite[i].picnum++; s->picnum++;
S_PlayActorSound(VENT_BUST, i); S_PlayActorSound(VENT_BUST, i);
break; break;
case RRTILE7879: case RRTILE7879:
sprite[i].picnum++; s->picnum++;
S_PlayActorSound(495, i); S_PlayActorSound(495, i);
fi.hitradius(i, 10, 0, 0, 1, 1); fi.hitradius(i, 10, 0, 0, 1, 1);
break; break;
@ -1563,120 +1563,120 @@ void checkhitsprite_r(int i, int sn)
case RRTILE7700: case RRTILE7700:
case RRTILE7702: case RRTILE7702:
case RRTILE7711: case RRTILE7711:
sprite[i].picnum++; s->picnum++;
S_PlayActorSound(47, i); S_PlayActorSound(47, i);
break; break;
case RRTILE7636: case RRTILE7636:
sprite[i].picnum += 3; s->picnum += 3;
S_PlayActorSound(VENT_BUST, i); S_PlayActorSound(VENT_BUST, i);
break; break;
case RRTILE7875: case RRTILE7875:
sprite[i].picnum += 3; s->picnum += 3;
S_PlayActorSound(VENT_BUST, i); S_PlayActorSound(VENT_BUST, i);
break; break;
case RRTILE7640: case RRTILE7640:
sprite[i].picnum += 2; s->picnum += 2;
S_PlayActorSound(VENT_BUST, i); S_PlayActorSound(VENT_BUST, i);
break; break;
case RRTILE7595: case RRTILE7595:
case RRTILE7704: case RRTILE7704:
sprite[i].picnum = RRTILE7705; s->picnum = RRTILE7705;
S_PlayActorSound(495, i); S_PlayActorSound(495, i);
break; break;
case RRTILE8579: case RRTILE8579:
sprite[i].picnum = RRTILE5014; s->picnum = RRTILE5014;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE7441: case RRTILE7441:
sprite[i].picnum = RRTILE5016; s->picnum = RRTILE5016;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE7534: case RRTILE7534:
sprite[i].picnum = RRTILE5029; s->picnum = RRTILE5029;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE7545: case RRTILE7545:
sprite[i].picnum = RRTILE5030; s->picnum = RRTILE5030;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE7547: case RRTILE7547:
sprite[i].picnum = RRTILE5031; s->picnum = RRTILE5031;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE7574: case RRTILE7574:
sprite[i].picnum = RRTILE5032; s->picnum = RRTILE5032;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE7575: case RRTILE7575:
sprite[i].picnum = RRTILE5033; s->picnum = RRTILE5033;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE7578: case RRTILE7578:
sprite[i].picnum = RRTILE5034; s->picnum = RRTILE5034;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE7478: case RRTILE7478:
sprite[i].picnum = RRTILE5035; s->picnum = RRTILE5035;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8525: case RRTILE8525:
sprite[i].picnum = RRTILE5036; s->picnum = RRTILE5036;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8537: case RRTILE8537:
sprite[i].picnum = RRTILE5062; s->picnum = RRTILE5062;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8215: case RRTILE8215:
sprite[i].picnum = RRTILE5064; s->picnum = RRTILE5064;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8216: case RRTILE8216:
sprite[i].picnum = RRTILE5065; s->picnum = RRTILE5065;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8217: case RRTILE8217:
sprite[i].picnum = RRTILE5066; s->picnum = RRTILE5066;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8218: case RRTILE8218:
sprite[i].picnum = RRTILE5067; s->picnum = RRTILE5067;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8220: case RRTILE8220:
sprite[i].picnum = RRTILE5068; s->picnum = RRTILE5068;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8221: case RRTILE8221:
sprite[i].picnum = RRTILE5069; s->picnum = RRTILE5069;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8312: case RRTILE8312:
sprite[i].picnum = RRTILE5071; s->picnum = RRTILE5071;
S_PlayActorSound(472, i); S_PlayActorSound(472, i);
break; break;
case RRTILE8395: case RRTILE8395:
sprite[i].picnum = RRTILE5072; s->picnum = RRTILE5072;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8423: case RRTILE8423:
sprite[i].picnum = RRTILE5073; s->picnum = RRTILE5073;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE3462: case RRTILE3462:
sprite[i].picnum = RRTILE5074; s->picnum = RRTILE5074;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case UWHIP: case UWHIP:
sprite[i].picnum = RRTILE5075; s->picnum = RRTILE5075;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8608: case RRTILE8608:
sprite[i].picnum = RRTILE5083; s->picnum = RRTILE5083;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8609: case RRTILE8609:
sprite[i].picnum = RRTILE5084; s->picnum = RRTILE5084;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8567: case RRTILE8567:
@ -1684,23 +1684,23 @@ void checkhitsprite_r(int i, int sn)
case RRTILE8569: case RRTILE8569:
case RRTILE8570: case RRTILE8570:
case RRTILE8571: case RRTILE8571:
sprite[i].picnum = RRTILE5082; s->picnum = RRTILE5082;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8640: case RRTILE8640:
sprite[i].picnum = RRTILE5085; s->picnum = RRTILE5085;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8611: case RRTILE8611:
sprite[i].picnum = RRTILE5086; s->picnum = RRTILE5086;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case TECHLIGHTBUST2: case TECHLIGHTBUST2:
sprite[i].picnum = TECHLIGHTBUST4; s->picnum = TECHLIGHTBUST4;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8497: case RRTILE8497:
sprite[i].picnum = RRTILE5076; s->picnum = RRTILE5076;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8162: case RRTILE8162:
@ -1711,7 +1711,7 @@ void checkhitsprite_r(int i, int sn)
case RRTILE8167: case RRTILE8167:
case RRTILE8168: case RRTILE8168:
changespritestat(i, STAT_MISC); changespritestat(i, STAT_MISC);
sprite[i].picnum = RRTILE5063; s->picnum = RRTILE5063;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8589: case RRTILE8589:
@ -1722,218 +1722,218 @@ void checkhitsprite_r(int i, int sn)
case RRTILE8594: case RRTILE8594:
case RRTILE8595: case RRTILE8595:
changespritestat(i, STAT_MISC); changespritestat(i, STAT_MISC);
sprite[i].picnum = RRTILE8588; s->picnum = RRTILE8588;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE3497: case RRTILE3497:
sprite[i].picnum = RRTILE5076; s->picnum = RRTILE5076;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE3498: case RRTILE3498:
sprite[i].picnum = RRTILE5077; s->picnum = RRTILE5077;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE3499: case RRTILE3499:
sprite[i].picnum = RRTILE5078; s->picnum = RRTILE5078;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8503: case RRTILE8503:
sprite[i].picnum = RRTILE5079; s->picnum = RRTILE5079;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE7901: case RRTILE7901:
sprite[i].picnum = RRTILE5080; s->picnum = RRTILE5080;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE7696: case RRTILE7696:
sprite[i].picnum = RRTILE7697; s->picnum = RRTILE7697;
S_PlayActorSound(DUKE_SHUCKS, i); S_PlayActorSound(DUKE_SHUCKS, i);
break; break;
case RRTILE7806: case RRTILE7806:
sprite[i].picnum = RRTILE5043; s->picnum = RRTILE5043;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE7885: case RRTILE7885:
case RRTILE7890: case RRTILE7890:
sprite[i].picnum = RRTILE5045; s->picnum = RRTILE5045;
S_PlayActorSound(495, i); S_PlayActorSound(495, i);
fi.hitradius(i, 10, 0, 0, 1, 1); fi.hitradius(i, 10, 0, 0, 1, 1);
break; break;
case RRTILE7886: case RRTILE7886:
sprite[i].picnum = RRTILE5046; s->picnum = RRTILE5046;
S_PlayActorSound(495, i); S_PlayActorSound(495, i);
fi.hitradius(i, 10, 0, 0, 1, 1); fi.hitradius(i, 10, 0, 0, 1, 1);
break; break;
case RRTILE7887: case RRTILE7887:
sprite[i].picnum = RRTILE5044; s->picnum = RRTILE5044;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
fi.hitradius(i, 10, 0, 0, 1, 1); fi.hitradius(i, 10, 0, 0, 1, 1);
break; break;
case RRTILE7900: case RRTILE7900:
sprite[i].picnum = RRTILE5047; s->picnum = RRTILE5047;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE7906: case RRTILE7906:
sprite[i].picnum = RRTILE5048; s->picnum = RRTILE5048;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE7912: case RRTILE7912:
case RRTILE7913: case RRTILE7913:
sprite[i].picnum = RRTILE5049; s->picnum = RRTILE5049;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8047: case RRTILE8047:
sprite[i].picnum = RRTILE5050; s->picnum = RRTILE5050;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8596: case RRTILE8596:
sprite[i].picnum = RRTILE8598; s->picnum = RRTILE8598;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8059: case RRTILE8059:
sprite[i].picnum = RRTILE5051; s->picnum = RRTILE5051;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8060: case RRTILE8060:
sprite[i].picnum = RRTILE5052; s->picnum = RRTILE5052;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8222: case RRTILE8222:
sprite[i].picnum = RRTILE5053; s->picnum = RRTILE5053;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8223: case RRTILE8223:
sprite[i].picnum = RRTILE5054; s->picnum = RRTILE5054;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8224: case RRTILE8224:
sprite[i].picnum = RRTILE5055; s->picnum = RRTILE5055;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8370: case RRTILE8370:
sprite[i].picnum = RRTILE5056; s->picnum = RRTILE5056;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8371: case RRTILE8371:
sprite[i].picnum = RRTILE5057; s->picnum = RRTILE5057;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8372: case RRTILE8372:
sprite[i].picnum = RRTILE5058; s->picnum = RRTILE5058;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8373: case RRTILE8373:
sprite[i].picnum = RRTILE5059; s->picnum = RRTILE5059;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8396: case RRTILE8396:
sprite[i].picnum = RRTILE5038; s->picnum = RRTILE5038;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8397: case RRTILE8397:
sprite[i].picnum = RRTILE5039; s->picnum = RRTILE5039;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8398: case RRTILE8398:
sprite[i].picnum = RRTILE5040; s->picnum = RRTILE5040;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8399: case RRTILE8399:
sprite[i].picnum = RRTILE5041; s->picnum = RRTILE5041;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8385: case RRTILE8385:
sprite[i].picnum = RRTILE8386; s->picnum = RRTILE8386;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8387: case RRTILE8387:
sprite[i].picnum = RRTILE8388; s->picnum = RRTILE8388;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8389: case RRTILE8389:
sprite[i].picnum = RRTILE8390; s->picnum = RRTILE8390;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8391: case RRTILE8391:
sprite[i].picnum = RRTILE8392; s->picnum = RRTILE8392;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE7553: case RRTILE7553:
sprite[i].picnum = RRTILE5035; s->picnum = RRTILE5035;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8475: case RRTILE8475:
sprite[i].picnum = RRTILE5075; s->picnum = RRTILE5075;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8498: case RRTILE8498:
sprite[i].picnum = RRTILE5077; s->picnum = RRTILE5077;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8499: case RRTILE8499:
sprite[i].picnum = RRTILE5078; s->picnum = RRTILE5078;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE2445: case RRTILE2445:
sprite[i].picnum = RRTILE2450; s->picnum = RRTILE2450;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE2123: case RRTILE2123:
sprite[i].picnum = RRTILE2124; s->picnum = RRTILE2124;
S_PlayActorSound(GLASS_BREAKING, i); S_PlayActorSound(GLASS_BREAKING, i);
lotsofglass(i, -1, 10); lotsofglass(i, -1, 10);
break; break;
case RRTILE3773: case RRTILE3773:
sprite[i].picnum = RRTILE8651; s->picnum = RRTILE8651;
S_PlayActorSound(GLASS_BREAKING, i); S_PlayActorSound(GLASS_BREAKING, i);
lotsofglass(i, -1, 10); lotsofglass(i, -1, 10);
break; break;
case RRTILE7533: case RRTILE7533:
sprite[i].picnum = RRTILE5035; s->picnum = RRTILE5035;
S_PlayActorSound(495, i); S_PlayActorSound(495, i);
fi.hitradius(i, 10, 0, 0, 1, 1); fi.hitradius(i, 10, 0, 0, 1, 1);
break; break;
case RRTILE8394: case RRTILE8394:
sprite[i].picnum = RRTILE5072; s->picnum = RRTILE5072;
S_PlayActorSound(495, i); S_PlayActorSound(495, i);
break; break;
case RRTILE8461: case RRTILE8461:
case RRTILE8462: case RRTILE8462:
sprite[i].picnum = RRTILE5074; s->picnum = RRTILE5074;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8679: case RRTILE8679:
sprite[i].picnum = RRTILE8680; s->picnum = RRTILE8680;
S_PlayActorSound(DUKE_SHUCKS, i); S_PlayActorSound(DUKE_SHUCKS, i);
fi.hitradius(i, 10, 0, 0, 1, 1); fi.hitradius(i, 10, 0, 0, 1, 1);
if (sprite[i].lotag != 0) if (s->lotag != 0)
{ {
short j; short j;
for (j = 0; j < MAXSPRITES; j++) for (j = 0; j < MAXSPRITES; j++)
{ {
if (sprite[j].picnum == RRTILE8679 && sprite[j].pal == 4) if (sprite[j].picnum == RRTILE8679 && sprite[j].pal == 4)
{ {
if (sprite[j].lotag == sprite[i].lotag) if (sprite[j].lotag == s->lotag)
sprite[j].picnum = RRTILE8680; sprite[j].picnum = RRTILE8680;
} }
} }
} }
break; break;
case RRTILE3584: case RRTILE3584:
sprite[i].picnum = RRTILE8681; s->picnum = RRTILE8681;
S_PlayActorSound(495, i); S_PlayActorSound(495, i);
fi.hitradius(i, 250, 0, 0, 1, 1); fi.hitradius(i, 250, 0, 0, 1, 1);
break; break;
case RRTILE8682: case RRTILE8682:
sprite[i].picnum = RRTILE8683; s->picnum = RRTILE8683;
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case RRTILE8099: case RRTILE8099:
if (sprite[i].lotag == 5) if (s->lotag == 5)
{ {
short j; short j;
sprite[i].lotag = 0; s->lotag = 0;
sprite[i].picnum = RRTILE5087; s->picnum = RRTILE5087;
S_PlayActorSound(340, i); S_PlayActorSound(340, i);
for (j = 0; j < MAXSPRITES; j++) for (j = 0; j < MAXSPRITES; j++)
{ {
@ -1943,17 +1943,17 @@ void checkhitsprite_r(int i, int sn)
} }
break; break;
case RRTILE2431: case RRTILE2431:
if (sprite[i].pal != 4) if (s->pal != 4)
{ {
sprite[i].picnum = RRTILE2451; s->picnum = RRTILE2451;
if (sprite[i].lotag != 0) if (s->lotag != 0)
{ {
short j; short j;
for (j = 0; j < MAXSPRITES; j++) for (j = 0; j < MAXSPRITES; j++)
{ {
if (sprite[j].picnum == RRTILE2431 && sprite[j].pal == 4) if (sprite[j].picnum == RRTILE2431 && sprite[j].pal == 4)
{ {
if (sprite[i].lotag == sprite[j].lotag) if (s->lotag == sprite[j].lotag)
sprite[j].picnum = RRTILE2451; sprite[j].picnum = RRTILE2451;
} }
} }
@ -1961,8 +1961,8 @@ void checkhitsprite_r(int i, int sn)
} }
break; break;
case RRTILE2443: case RRTILE2443:
if (sprite[i].pal != 19) if (s->pal != 19)
sprite[i].picnum = RRTILE2455; s->picnum = RRTILE2455;
break; break;
case RRTILE2455: case RRTILE2455:
S_PlayActorSound(SQUISHED, i); S_PlayActorSound(SQUISHED, i);
@ -1970,24 +1970,24 @@ void checkhitsprite_r(int i, int sn)
deletesprite(i); deletesprite(i);
break; break;
case RRTILE2451: case RRTILE2451:
if (sprite[i].pal != 4) if (s->pal != 4)
{ {
S_PlayActorSound(SQUISHED, i); S_PlayActorSound(SQUISHED, i);
if (sprite[i].lotag != 0) if (s->lotag != 0)
{ {
short j; short j;
for (j = 0; j < MAXSPRITES; j++) for (j = 0; j < MAXSPRITES; j++)
{ {
if (sprite[j].picnum == RRTILE2451 && sprite[j].pal == 4) if (sprite[j].picnum == RRTILE2451 && sprite[j].pal == 4)
{ {
if (sprite[i].lotag == sprite[j].lotag) if (s->lotag == sprite[j].lotag)
{ {
fi.guts(&sprite[i], RRTILE2460, 12, myconnectindex); fi.guts(&sprite[i], RRTILE2460, 12, myconnectindex);
fi.guts(&sprite[i], RRTILE2465, 3, myconnectindex); fi.guts(&sprite[i], RRTILE2465, 3, myconnectindex);
sprite[j].xrepeat = 0; sprite[j].xrepeat = 0;
sprite[j].yrepeat = 0; sprite[j].yrepeat = 0;
sprite[i].xrepeat = 0; s->xrepeat = 0;
sprite[i].yrepeat = 0; s->yrepeat = 0;
} }
} }
} }
@ -1996,8 +1996,8 @@ void checkhitsprite_r(int i, int sn)
{ {
fi.guts(&sprite[i], RRTILE2460, 12, myconnectindex); fi.guts(&sprite[i], RRTILE2460, 12, myconnectindex);
fi.guts(&sprite[i], RRTILE2465, 3, myconnectindex); fi.guts(&sprite[i], RRTILE2465, 3, myconnectindex);
sprite[i].xrepeat = 0; s->xrepeat = 0;
sprite[i].yrepeat = 0; s->yrepeat = 0;
} }
} }
break; break;
@ -2006,22 +2006,22 @@ void checkhitsprite_r(int i, int sn)
break; break;
} }
switch (sprite[i].picnum) switch (s->picnum)
{ {
case RRTILE3114: case RRTILE3114:
sprite[i].picnum = RRTILE3117; s->picnum = RRTILE3117;
break; break;
case RRTILE2876: case RRTILE2876:
sprite[i].picnum = RRTILE2990; s->picnum = RRTILE2990;
break; break;
case RRTILE3152: case RRTILE3152:
sprite[i].picnum = RRTILE3218; s->picnum = RRTILE3218;
break; break;
case RRTILE3153: case RRTILE3153:
sprite[i].picnum = RRTILE3219; s->picnum = RRTILE3219;
break; break;
case RRTILE2030: case RRTILE2030:
sprite[i].picnum = RRTILE2034; s->picnum = RRTILE2034;
S_PlayActorSound(GLASS_BREAKING, i); S_PlayActorSound(GLASS_BREAKING, i);
lotsofglass(i, -1, 10); lotsofglass(i, -1, 10);
break; break;
@ -2029,19 +2029,19 @@ void checkhitsprite_r(int i, int sn)
case RRTILE2915: case RRTILE2915:
case RRTILE3115: case RRTILE3115:
case RRTILE3171: case RRTILE3171:
switch (sprite[i].picnum) switch (s->picnum)
{ {
case RRTILE2915: case RRTILE2915:
sprite[i].picnum = RRTILE2977; s->picnum = RRTILE2977;
break; break;
case RRTILE2893: case RRTILE2893:
sprite[i].picnum = RRTILE2978; s->picnum = RRTILE2978;
break; break;
case RRTILE3115: case RRTILE3115:
sprite[i].picnum = RRTILE3116; s->picnum = RRTILE3116;
break; break;
case RRTILE3171: case RRTILE3171:
sprite[i].picnum = RRTILE3216; s->picnum = RRTILE3216;
break; break;
} }
S_PlayActorSound(GLASS_BREAKING, i); S_PlayActorSound(GLASS_BREAKING, i);
@ -2051,7 +2051,7 @@ void checkhitsprite_r(int i, int sn)
case RRTILE2158: case RRTILE2158:
case RRTILE2160: case RRTILE2160:
case RRTILE2175: case RRTILE2175:
sprite[i].picnum++; s->picnum++;
S_PlayActorSound(GLASS_BREAKING, i); S_PlayActorSound(GLASS_BREAKING, i);
lotsofglass(i, -1, 10); lotsofglass(i, -1, 10);
break; break;
@ -2060,12 +2060,12 @@ void checkhitsprite_r(int i, int sn)
case RRTILE2152: case RRTILE2152:
S_PlayActorSound(GLASS_BREAKING, i); S_PlayActorSound(GLASS_BREAKING, i);
lotsofglass(i, -1, 10); lotsofglass(i, -1, 10);
sprite[i].picnum++; s->picnum++;
for (k = 0; k < 6; k++) for (k = 0; k < 6; k++)
EGS(sprite[i].sectnum, sprite[i].x, sprite[i].y, sprite[i].z - (8 << 8), SCRAP6 + (krand() & 15), -8, 48, 48, krand() & 2047, (krand() & 63) + 64, -(krand() & 4095) - (sprite[i].zvel >> 2), i, 5); EGS(s->sectnum, s->x, s->y, s->z - (8 << 8), SCRAP6 + (krand() & 15), -8, 48, 48, krand() & 2047, (krand() & 63) + 64, -(krand() & 4095) - (s->zvel >> 2), i, 5);
break; break;
case BOWLINGBALL: case BOWLINGBALL:
sprite[sn].xvel = (sprite[i].xvel >> 1) + (sprite[i].xvel >> 2); sprite[sn].xvel = (s->xvel >> 1) + (s->xvel >> 2);
sprite[sn].ang -= (krand() & 16); sprite[sn].ang -= (krand() & 16);
S_PlayActorSound(355, i); S_PlayActorSound(355, i);
break; break;
@ -2078,32 +2078,32 @@ void checkhitsprite_r(int i, int sn)
case HENSTAND + 1: case HENSTAND + 1:
if (sprite[sn].picnum == QUEBALL || sprite[sn].picnum == STRIPEBALL) if (sprite[sn].picnum == QUEBALL || sprite[sn].picnum == STRIPEBALL)
{ {
sprite[sn].xvel = (sprite[i].xvel >> 1) + (sprite[i].xvel >> 2); sprite[sn].xvel = (s->xvel >> 1) + (s->xvel >> 2);
sprite[sn].ang -= (sprite[i].ang << 1) + 1024; sprite[sn].ang -= (s->ang << 1) + 1024;
sprite[i].ang = getangle(sprite[i].x - sprite[sn].x, sprite[i].y - sprite[sn].y) - 512; s->ang = getangle(s->x - sprite[sn].x, s->y - sprite[sn].y) - 512;
if (S_CheckSoundPlaying(POOLBALLHIT) < 2) if (S_CheckSoundPlaying(POOLBALLHIT) < 2)
S_PlayActorSound(POOLBALLHIT, i); S_PlayActorSound(POOLBALLHIT, i);
} }
else if (sprite[sn].picnum == RRTILE3440 || sprite[sn].picnum == RRTILE3440 + 1) else if (sprite[sn].picnum == RRTILE3440 || sprite[sn].picnum == RRTILE3440 + 1)
{ {
sprite[sn].xvel = (sprite[i].xvel >> 1) + (sprite[i].xvel >> 2); sprite[sn].xvel = (s->xvel >> 1) + (s->xvel >> 2);
sprite[sn].ang -= ((sprite[i].ang << 1) + krand()) & 64; sprite[sn].ang -= ((s->ang << 1) + krand()) & 64;
sprite[i].ang = (sprite[i].ang + krand()) & 16; s->ang = (s->ang + krand()) & 16;
S_PlayActorSound(355, i); S_PlayActorSound(355, i);
} }
else if (sprite[sn].picnum == HENSTAND || sprite[sn].picnum == HENSTAND + 1) else if (sprite[sn].picnum == HENSTAND || sprite[sn].picnum == HENSTAND + 1)
{ {
sprite[sn].xvel = (sprite[i].xvel >> 1) + (sprite[i].xvel >> 2); sprite[sn].xvel = (s->xvel >> 1) + (s->xvel >> 2);
sprite[sn].ang -= ((sprite[i].ang << 1) + krand()) & 16; sprite[sn].ang -= ((s->ang << 1) + krand()) & 16;
sprite[i].ang = (sprite[i].ang + krand()) & 16; s->ang = (s->ang + krand()) & 16;
S_PlayActorSound(355, i); S_PlayActorSound(355, i);
} }
else else
{ {
if (krand() & 3) if (krand() & 3)
{ {
sprite[i].xvel = 164; s->xvel = 164;
sprite[i].ang = sprite[sn].ang; s->ang = sprite[sn].ang;
} }
} }
break; break;
@ -2127,7 +2127,7 @@ void checkhitsprite_r(int i, int sn)
case UWHIP: case UWHIP:
if (hittype[i].temp_data[0] == 0) if (hittype[i].temp_data[0] == 0)
{ {
sprite[i].cstat &= ~257; s->cstat &= ~257;
hittype[i].temp_data[0] = 1; hittype[i].temp_data[0] = 1;
fi.spawn(i, BURNING); fi.spawn(i, BURNING);
} }
@ -2152,13 +2152,13 @@ void checkhitsprite_r(int i, int sn)
case UWHIP: case UWHIP:
for (k = 0; k < 64; k++) for (k = 0; k < 64; k++)
{ {
j = EGS(sprite[i].sectnum, sprite[i].x, sprite[i].y, sprite[i].z - (krand() % (48 << 8)), SCRAP6 + (krand() & 3), -8, 48, 48, krand() & 2047, (krand() & 63) + 64, -(krand() & 4095) - (sprite[i].zvel >> 2), i, 5); j = EGS(s->sectnum, s->x, s->y, s->z - (krand() % (48 << 8)), SCRAP6 + (krand() & 3), -8, 48, 48, krand() & 2047, (krand() & 63) + 64, -(krand() & 4095) - (s->zvel >> 2), i, 5);
sprite[j].pal = 8; sprite[j].pal = 8;
} }
if (sprite[i].picnum == CACTUS) if (s->picnum == CACTUS)
sprite[i].picnum = CACTUSBROKE; s->picnum = CACTUSBROKE;
sprite[i].cstat &= ~257; s->cstat &= ~257;
// else deletesprite(i); // else deletesprite(i);
break; break;
} }
@ -2166,10 +2166,9 @@ void checkhitsprite_r(int i, int sn)
case FANSPRITE: case FANSPRITE:
sprite[i].picnum = FANSPRITEBROKE; s->picnum = FANSPRITEBROKE;
sprite[i].cstat &= (65535 - 257); s->cstat &= (65535 - 257);
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
s = &sprite[i];
for (j = 0; j < 16; j++) RANDOMSCRAP(s, i); for (j = 0; j < 16; j++) RANDOMSCRAP(s, i);
break; break;
@ -2186,7 +2185,7 @@ void checkhitsprite_r(int i, int sn)
if (actorinfo[SHOTSPARK1].scriptaddress && sprite[sn].extra != ScriptCode[actorinfo[SHOTSPARK1].scriptaddress]) if (actorinfo[SHOTSPARK1].scriptaddress && sprite[sn].extra != ScriptCode[actorinfo[SHOTSPARK1].scriptaddress])
{ {
for (j = 0; j < 15; j++) for (j = 0; j < 15; j++)
EGS(sprite[i].sectnum, sprite[i].x, sprite[i].y, sector[sprite[i].sectnum].floorz - (12 << 8) - (j << 9), SCRAP1 + (krand() & 15), -8, 64, 64, EGS(s->sectnum, s->x, s->y, sector[s->sectnum].floorz - (12 << 8) - (j << 9), SCRAP1 + (krand() & 15), -8, 64, 64,
krand() & 2047, (krand() & 127) + 64, -(krand() & 511) - 256, i, 5); krand() & 2047, (krand() & 127) + 64, -(krand() & 511) - 256, i, 5);
fi.spawn(i, EXPLOSION2); fi.spawn(i, EXPLOSION2);
deletesprite(i); deletesprite(i);
@ -2221,18 +2220,18 @@ void checkhitsprite_r(int i, int sn)
case VASE: case VASE:
case STATUEFLASH: case STATUEFLASH:
case STATUE: case STATUE:
if (sprite[i].picnum == BOTTLE10) if (s->picnum == BOTTLE10)
fi.lotsofmoney(&sprite[i], 4 + (krand() & 3)); fi.lotsofmoney(&sprite[i], 4 + (krand() & 3));
else if (sprite[i].picnum == STATUE || sprite[i].picnum == STATUEFLASH) else if (s->picnum == STATUE || s->picnum == STATUEFLASH)
{ {
lotsofcolourglass(i, -1, 40); lotsofcolourglass(i, -1, 40);
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
} }
else if (sprite[i].picnum == VASE) else if (s->picnum == VASE)
lotsofglass(i, -1, 40); lotsofglass(i, -1, 40);
S_PlayActorSound(GLASS_BREAKING, i); S_PlayActorSound(GLASS_BREAKING, i);
sprite[i].ang = krand() & 2047; s->ang = krand() & 2047;
lotsofglass(i, -1, 8); lotsofglass(i, -1, 8);
deletesprite(i); deletesprite(i);
break; break;
@ -2246,49 +2245,49 @@ void checkhitsprite_r(int i, int sn)
deletesprite(i); deletesprite(i);
break; break;
case FORCESPHERE: case FORCESPHERE:
sprite[i].xrepeat = 0; s->xrepeat = 0;
hittype[sprite[i].owner].temp_data[0] = 32; hittype[s->owner].temp_data[0] = 32;
hittype[sprite[i].owner].temp_data[1] = !hittype[sprite[i].owner].temp_data[1]; hittype[s->owner].temp_data[1] = !hittype[s->owner].temp_data[1];
hittype[sprite[i].owner].temp_data[2] ++; hittype[s->owner].temp_data[2] ++;
fi.spawn(i, EXPLOSION2); fi.spawn(i, EXPLOSION2);
break; break;
case TOILET: case TOILET:
sprite[i].picnum = TOILETBROKE; s->picnum = TOILETBROKE;
sprite[i].cstat |= (krand() & 1) << 2; s->cstat |= (krand() & 1) << 2;
sprite[i].cstat &= ~257; s->cstat &= ~257;
fi.spawn(i, TOILETWATER); fi.spawn(i, TOILETWATER);
S_PlayActorSound(GLASS_BREAKING, i); S_PlayActorSound(GLASS_BREAKING, i);
break; break;
case STALL: case STALL:
sprite[i].picnum = STALLBROKE; s->picnum = STALLBROKE;
sprite[i].cstat |= (krand() & 1) << 2; s->cstat |= (krand() & 1) << 2;
sprite[i].cstat &= ~257; s->cstat &= ~257;
fi.spawn(i, TOILETWATER); fi.spawn(i, TOILETWATER);
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case HYDRENT: case HYDRENT:
sprite[i].picnum = BROKEFIREHYDRENT; s->picnum = BROKEFIREHYDRENT;
fi.spawn(i, TOILETWATER); fi.spawn(i, TOILETWATER);
// for(k=0;k<5;k++) // for(k=0;k<5;k++)
// { // {
// j = EGS(sprite[i].sectnum,sprite[i].x,sprite[i].y,sprite[i].z-(krand()%(48<<8)),SCRAP3+(krand()&3),-8,48,48,krand()&2047,(krand()&63)+64,-(krand()&4095)-(sprite[i].zvel>>2),i,5); // j = EGS(s->sectnum,s->x,s->y,s->z-(krand()%(48<<8)),SCRAP3+(krand()&3),-8,48,48,krand()&2047,(krand()&63)+64,-(krand()&4095)-(s->zvel>>2),i,5);
// sprite[j].pal = 2; // sprite[j].pal = 2;
// } // }
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
break; break;
case GRATE1: case GRATE1:
sprite[i].picnum = BGRATE1; s->picnum = BGRATE1;
sprite[i].cstat &= (65535 - 256 - 1); s->cstat &= (65535 - 256 - 1);
S_PlayActorSound(VENT_BUST, i); S_PlayActorSound(VENT_BUST, i);
break; break;
case CIRCLEPANNEL: case CIRCLEPANNEL:
sprite[i].picnum = CIRCLEPANNELBROKE; s->picnum = CIRCLEPANNELBROKE;
sprite[i].cstat &= (65535 - 256 - 1); s->cstat &= (65535 - 256 - 1);
S_PlayActorSound(VENT_BUST, i); S_PlayActorSound(VENT_BUST, i);
break; break;
@ -2298,24 +2297,24 @@ void checkhitsprite_r(int i, int sn)
case PIPE4: case PIPE4:
case PIPE5: case PIPE5:
case PIPE6: case PIPE6:
switch (sprite[i].picnum) switch (s->picnum)
{ {
case PIPE1:sprite[i].picnum = PIPE1B; break; case PIPE1:s->picnum = PIPE1B; break;
case PIPE2:sprite[i].picnum = PIPE2B; break; case PIPE2:s->picnum = PIPE2B; break;
case PIPE3:sprite[i].picnum = PIPE3B; break; case PIPE3:s->picnum = PIPE3B; break;
case PIPE4:sprite[i].picnum = PIPE4B; break; case PIPE4:s->picnum = PIPE4B; break;
case PIPE5:sprite[i].picnum = PIPE5B; break; case PIPE5:s->picnum = PIPE5B; break;
case PIPE6:sprite[i].picnum = PIPE6B; break; case PIPE6:s->picnum = PIPE6B; break;
} }
j = fi.spawn(i, STEAM); j = fi.spawn(i, STEAM);
sprite[j].z = sector[sprite[i].sectnum].floorz - (32 << 8); sprite[j].z = sector[s->sectnum].floorz - (32 << 8);
break; break;
case CHAIR1: case CHAIR1:
case CHAIR2: case CHAIR2:
sprite[i].picnum = BROKENCHAIR; s->picnum = BROKENCHAIR;
sprite[i].cstat = 0; s->cstat = 0;
break; break;
case CHAIR3: case CHAIR3:
case MOVIECAMERA: case MOVIECAMERA:
@ -2327,26 +2326,26 @@ void checkhitsprite_r(int i, int sn)
case POT2: case POT2:
case POT3: case POT3:
S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(GLASS_HEAVYBREAK, i);
s = &sprite[i];
for (j = 0; j < 16; j++) RANDOMSCRAP(s, i); for (j = 0; j < 16; j++) RANDOMSCRAP(s, i);
deletesprite(i); deletesprite(i);
break; break;
case PLAYERONWATER: case PLAYERONWATER:
i = sprite[i].owner; i = s->owner;
s = &sprite[i];
default: default:
if ((sprite[i].cstat & 16) && sprite[i].hitag == 0 && sprite[i].lotag == 0 && sprite[i].statnum == 0) if ((s->cstat & 16) && s->hitag == 0 && s->lotag == 0 && s->statnum == 0)
break; break;
if ((sprite[sn].picnum == SHRINKSPARK || sprite[sn].picnum == FREEZEBLAST || sprite[sn].owner != i) && sprite[i].statnum != 4) if ((sprite[sn].picnum == SHRINKSPARK || sprite[sn].picnum == FREEZEBLAST || sprite[sn].owner != i) && s->statnum != 4)
{ {
if (badguy(&sprite[i]) == 1) if (badguy(&sprite[i]) == 1)
{ {
if (sprite[sn].picnum == RPG) sprite[sn].extra <<= 1; if (sprite[sn].picnum == RPG) sprite[sn].extra <<= 1;
else if (isRRRA() && sprite[sn].picnum == RPG2) sprite[sn].extra <<= 1; else if (isRRRA() && sprite[sn].picnum == RPG2) sprite[sn].extra <<= 1;
if ((sprite[i].picnum != DRONE)) if ((s->picnum != DRONE))
if (sprite[sn].picnum != FREEZEBLAST) if (sprite[sn].picnum != FREEZEBLAST)
//if (actortype[sprite[i].picnum] == 0) //TRANSITIONAL. Cannot be done right with EDuke mess backing the engine. //if (actortype[s->picnum] == 0) //TRANSITIONAL. Cannot be done right with EDuke mess backing the engine.
{ {
j = fi.spawn(sn, JIBS6); j = fi.spawn(sn, JIBS6);
if (sprite[sn].pal == 6) if (sprite[sn].pal == 6)
@ -2359,7 +2358,7 @@ void checkhitsprite_r(int i, int sn)
j = sprite[sn].owner; j = sprite[sn].owner;
if (j >= 0 && sprite[j].picnum == APLAYER && sprite[i].picnum != DRONE) if (j >= 0 && sprite[j].picnum == APLAYER && s->picnum != DRONE)
if (ps[sprite[j].yvel].curr_weapon == SHOTGUN_WEAPON) if (ps[sprite[j].yvel].curr_weapon == SHOTGUN_WEAPON)
{ {
fi.shoot(i, BLOODSPLAT3); fi.shoot(i, BLOODSPLAT3);
@ -2368,28 +2367,28 @@ void checkhitsprite_r(int i, int sn)
fi.shoot(i, BLOODSPLAT4); fi.shoot(i, BLOODSPLAT4);
} }
if (sprite[i].statnum == 2) if (s->statnum == 2)
{ {
changespritestat(i, 1); changespritestat(i, 1);
hittype[i].timetosleep = SLEEPTIME; hittype[i].timetosleep = SLEEPTIME;
} }
} }
if (sprite[i].statnum != 2) if (s->statnum != 2)
{ {
if (sprite[sn].picnum == FREEZEBLAST && ((sprite[i].picnum == APLAYER && sprite[i].pal == 1) || (freezerhurtowner == 0 && sprite[sn].owner == i))) if (sprite[sn].picnum == FREEZEBLAST && ((s->picnum == APLAYER && s->pal == 1) || (freezerhurtowner == 0 && sprite[sn].owner == i)))
return; return;
hittype[i].picnum = sprite[sn].picnum; hittype[i].picnum = sprite[sn].picnum;
hittype[i].extra += sprite[sn].extra; hittype[i].extra += sprite[sn].extra;
if (sprite[i].picnum != COW) if (s->picnum != COW)
hittype[i].ang = sprite[sn].ang; hittype[i].ang = sprite[sn].ang;
hittype[i].owner = sprite[sn].owner; hittype[i].owner = sprite[sn].owner;
} }
if (sprite[i].statnum == 10) if (s->statnum == 10)
{ {
p = sprite[i].yvel; p = s->yvel;
if (ps[p].newowner >= 0) if (ps[p].newowner >= 0)
{ {
ps[p].newowner = -1; ps[p].newowner = -1;