diff --git a/source/games/duke/src/sectors_d.cpp b/source/games/duke/src/sectors_d.cpp index 904a358cf..55f449b35 100644 --- a/source/games/duke/src/sectors_d.cpp +++ b/source/games/duke/src/sectors_d.cpp @@ -1023,11 +1023,11 @@ bool checkhitceiling_d(int sn) void checkhitsprite_d(int i, int sn) { int j, k, p; - spritetype* s; i &= (MAXSPRITES - 1); + spritetype* s = &sprite[i]; - switch (sprite[i].picnum) + switch (s->picnum) { case WTGLASS1: case WTGLASS2: @@ -1050,9 +1050,9 @@ void checkhitsprite_d(int i, int sn) case STRIPEBALL: if (sprite[sn].picnum == QUEBALL || sprite[sn].picnum == STRIPEBALL) { - sprite[sn].xvel = (sprite[i].xvel >> 1) + (sprite[i].xvel >> 2); - sprite[sn].ang -= (sprite[i].ang << 1) + 1024; - sprite[i].ang = getangle(sprite[i].x - sprite[sn].x, sprite[i].y - sprite[sn].y) - 512; + sprite[sn].xvel = (s->xvel >> 1) + (s->xvel >> 2); + sprite[sn].ang -= (s->ang << 1) + 1024; + s->ang = getangle(s->x - sprite[sn].x, s->y - sprite[sn].y) - 512; if (S_CheckSoundPlaying(POOLBALLHIT) < 2) S_PlayActorSound(POOLBALLHIT, i); } @@ -1060,8 +1060,8 @@ void checkhitsprite_d(int i, int sn) { if (krand() & 3) { - sprite[i].xvel = 164; - sprite[i].ang = sprite[sn].ang; + s->xvel = 164; + s->ang = sprite[sn].ang; } else { @@ -1084,7 +1084,7 @@ void checkhitsprite_d(int i, int sn) case HEAVYHBOMB: if (hittype[i].temp_data[0] == 0) { - sprite[i].cstat &= ~257; + s->cstat &= ~257; hittype[i].temp_data[0] = 1; fi.spawn(i, BURNING); } @@ -1102,13 +1102,13 @@ void checkhitsprite_d(int i, int sn) case HEAVYHBOMB: 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; } - if (sprite[i].picnum == CACTUS) - sprite[i].picnum = CACTUSBROKE; - sprite[i].cstat &= ~257; + if (s->picnum == CACTUS) + s->picnum = CACTUSBROKE; + s->cstat &= ~257; // else deletesprite(i); break; } @@ -1117,20 +1117,19 @@ void checkhitsprite_d(int i, int sn) case HANGLIGHT: case GENERICPOLE2: 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); deletesprite(i); break; case FANSPRITE: - sprite[i].picnum = FANSPRITEBROKE; - sprite[i].cstat &= (65535 - 257); - if (sector[sprite[i].sectnum].floorpicnum == FANSHADOW) - sector[sprite[i].sectnum].floorpicnum = FANSHADOWBROKE; + s->picnum = FANSPRITEBROKE; + s->cstat &= (65535 - 257); + if (sector[s->sectnum].floorpicnum == FANSHADOW) + sector[s->sectnum].floorpicnum = FANSHADOWBROKE; S_PlayActorSound(GLASS_HEAVYBREAK, i); - s = &sprite[i]; for (j = 0; j < 16; j++) RANDOMSCRAP(s, i); break; @@ -1138,7 +1137,7 @@ void checkhitsprite_d(int i, int sn) case WATERFOUNTAIN + 1: case WATERFOUNTAIN + 2: case WATERFOUNTAIN + 3: - sprite[i].picnum = WATERFOUNTAINBROKE; + s->picnum = WATERFOUNTAINBROKE; fi.spawn(i, TOILETWATER); break; case SATELITE: @@ -1148,7 +1147,7 @@ void checkhitsprite_d(int i, int sn) if (actorinfo[SHOTSPARK1].scriptaddress && sprite[sn].extra != ScriptCode[actorinfo[SHOTSPARK1].scriptaddress]) { 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); fi.spawn(i, EXPLOSION2); deletesprite(i); @@ -1182,23 +1181,23 @@ void checkhitsprite_d(int i, int sn) case VASE: case STATUEFLASH: case STATUE: - if (sprite[i].picnum == BOTTLE10) + if (s->picnum == BOTTLE10) 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); S_PlayActorSound(GLASS_HEAVYBREAK, i); } - else if (sprite[i].picnum == VASE) + else if (s->picnum == VASE) lotsofglass(i, -1, 40); S_PlayActorSound(GLASS_BREAKING, i); - sprite[i].ang = krand() & 2047; + s->ang = krand() & 2047; lotsofglass(i, -1, 8); deletesprite(i); break; case FETUS: - sprite[i].picnum = FETUSBROKE; + s->picnum = FETUSBROKE; S_PlayActorSound(GLASS_BREAKING, i); lotsofglass(i, -1, 10); break; @@ -1206,7 +1205,7 @@ void checkhitsprite_d(int i, int sn) for (j = 0; j < 48; j++) { fi.shoot(i, BLOODSPLAT1); - sprite[i].ang += 333; + s->ang += 333; } S_PlayActorSound(GLASS_HEAVYBREAK, i); S_PlayActorSound(SQUISHED, i); @@ -1216,77 +1215,77 @@ void checkhitsprite_d(int i, int sn) deletesprite(i); break; case HYDROPLANT: - sprite[i].picnum = BROKEHYDROPLANT; + s->picnum = BROKEHYDROPLANT; S_PlayActorSound(GLASS_BREAKING, i); lotsofglass(i, -1, 10); break; case FORCESPHERE: - sprite[i].xrepeat = 0; - hittype[sprite[i].owner].temp_data[0] = 32; - hittype[sprite[i].owner].temp_data[1] = !hittype[sprite[i].owner].temp_data[1]; - hittype[sprite[i].owner].temp_data[2] ++; + s->xrepeat = 0; + hittype[s->owner].temp_data[0] = 32; + hittype[s->owner].temp_data[1] = !hittype[s->owner].temp_data[1]; + hittype[s->owner].temp_data[2] ++; fi.spawn(i, EXPLOSION2); break; case BROKEHYDROPLANT: - if (sprite[i].cstat & 1) + if (s->cstat & 1) { S_PlayActorSound(GLASS_BREAKING, i); - sprite[i].z += 16 << 8; - sprite[i].cstat = 0; + s->z += 16 << 8; + s->cstat = 0; lotsofglass(i, -1, 5); } break; case TOILET: - sprite[i].picnum = TOILETBROKE; - sprite[i].cstat |= (krand() & 1) << 2; - sprite[i].cstat &= ~257; + s->picnum = TOILETBROKE; + s->cstat |= (krand() & 1) << 2; + s->cstat &= ~257; fi.spawn(i, TOILETWATER); S_PlayActorSound(GLASS_BREAKING, i); break; case STALL: - sprite[i].picnum = STALLBROKE; - sprite[i].cstat |= (krand() & 1) << 2; - sprite[i].cstat &= ~257; + s->picnum = STALLBROKE; + s->cstat |= (krand() & 1) << 2; + s->cstat &= ~257; fi.spawn(i, TOILETWATER); S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case HYDRENT: - sprite[i].picnum = BROKEFIREHYDRENT; + s->picnum = BROKEFIREHYDRENT; fi.spawn(i, TOILETWATER); // 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; // } S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case GRATE1: - sprite[i].picnum = BGRATE1; - sprite[i].cstat &= (65535 - 256 - 1); + s->picnum = BGRATE1; + s->cstat &= (65535 - 256 - 1); S_PlayActorSound(VENT_BUST, i); break; case CIRCLEPANNEL: - sprite[i].picnum = CIRCLEPANNELBROKE; - sprite[i].cstat &= (65535 - 256 - 1); + s->picnum = CIRCLEPANNELBROKE; + s->cstat &= (65535 - 256 - 1); S_PlayActorSound(VENT_BUST, i); break; case PANNEL1: case PANNEL2: - sprite[i].picnum = BPANNEL1; - sprite[i].cstat &= (65535 - 256 - 1); + s->picnum = BPANNEL1; + s->cstat &= (65535 - 256 - 1); S_PlayActorSound(VENT_BUST, i); break; case PANNEL3: - sprite[i].picnum = BPANNEL3; - sprite[i].cstat &= (65535 - 256 - 1); + s->picnum = BPANNEL3; + s->cstat &= (65535 - 256 - 1); S_PlayActorSound(VENT_BUST, i); break; case PIPE1: @@ -1295,44 +1294,44 @@ void checkhitsprite_d(int i, int sn) case PIPE4: case PIPE5: case PIPE6: - switch (sprite[i].picnum) + switch (s->picnum) { - case PIPE1:sprite[i].picnum = PIPE1B; break; - case PIPE2:sprite[i].picnum = PIPE2B; break; - case PIPE3:sprite[i].picnum = PIPE3B; break; - case PIPE4:sprite[i].picnum = PIPE4B; break; - case PIPE5:sprite[i].picnum = PIPE5B; break; - case PIPE6:sprite[i].picnum = PIPE6B; break; + case PIPE1:s->picnum = PIPE1B; break; + case PIPE2:s->picnum = PIPE2B; break; + case PIPE3:s->picnum = PIPE3B; break; + case PIPE4:s->picnum = PIPE4B; break; + case PIPE5:s->picnum = PIPE5B; break; + case PIPE6:s->picnum = PIPE6B; break; } 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; case MONK: case LUKE: case INDY: case JURYGUY: - S_PlayActorSound(sprite[i].lotag, i); - fi.spawn(i, sprite[i].hitag); + S_PlayActorSound(s->lotag, i); + fi.spawn(i, s->hitag); case SPACEMARINE: - sprite[i].extra -= sprite[sn].extra; - if (sprite[i].extra > 0) break; - sprite[i].ang = krand() & 2047; + s->extra -= sprite[sn].extra; + if (s->extra > 0) break; + s->ang = krand() & 2047; fi.shoot(i, BLOODSPLAT1); - sprite[i].ang = krand() & 2047; + s->ang = krand() & 2047; fi.shoot(i, BLOODSPLAT2); - sprite[i].ang = krand() & 2047; + s->ang = krand() & 2047; fi.shoot(i, BLOODSPLAT3); - sprite[i].ang = krand() & 2047; + s->ang = krand() & 2047; fi.shoot(i, BLOODSPLAT4); - sprite[i].ang = krand() & 2047; + s->ang = krand() & 2047; fi.shoot(i, BLOODSPLAT1); - sprite[i].ang = krand() & 2047; + s->ang = krand() & 2047; fi.shoot(i, BLOODSPLAT2); - sprite[i].ang = krand() & 2047; + s->ang = krand() & 2047; fi.shoot(i, BLOODSPLAT3); - sprite[i].ang = krand() & 2047; + s->ang = krand() & 2047; fi.shoot(i, BLOODSPLAT4); fi.guts(&sprite[i], JIBS1, 1, myconnectindex); fi.guts(&sprite[i], JIBS2, 2, myconnectindex); @@ -1345,8 +1344,8 @@ void checkhitsprite_d(int i, int sn) break; case CHAIR1: case CHAIR2: - sprite[i].picnum = BROKENCHAIR; - sprite[i].cstat = 0; + s->picnum = BROKENCHAIR; + s->cstat = 0; break; case CHAIR3: case MOVIECAMERA: @@ -1359,28 +1358,28 @@ void checkhitsprite_d(int i, int sn) case POT3: case TRIPODCAMERA: S_PlayActorSound(GLASS_HEAVYBREAK, i); - s = &sprite[i]; for (j = 0; j < 16; j++) RANDOMSCRAP(s, i); deletesprite(i); break; case PLAYERONWATER: - i = sprite[i].owner; + i = s->owner; + s = &sprite[i]; 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; - 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 (isWorldTour() && sprite[i].picnum == FIREFLY && sprite[i].xrepeat < 48) + if (isWorldTour() && s->picnum == FIREFLY && s->xrepeat < 48) break; 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 (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); if (sprite[sn].pal == 6) @@ -1393,7 +1392,7 @@ void checkhitsprite_d(int i, int sn) 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) { fi.shoot(i, BLOODSPLAT3); @@ -1402,38 +1401,38 @@ void checkhitsprite_d(int i, int sn) 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) - sprite[i].ang = (sprite[sn].ang + 1024) & 2047; - sprite[i].xvel = -(sprite[sn].extra << 2); - short j = sprite[i].sectnum; - pushmove(&sprite[i].x, &sprite[i].y, &sprite[i].z, &j, 128L, (4L << 8), (4L << 8), CLIPMASK0); - if (j != sprite[i].sectnum && j >= 0 && j < MAXSECTORS) + if ((s->cstat & 48) == 0) + s->ang = (sprite[sn].ang + 1024) & 2047; + s->xvel = -(sprite[sn].extra << 2); + short j = s->sectnum; + pushmove(&s->x, &s->y, &s->z, &j, 128L, (4L << 8), (4L << 8), CLIPMASK0); + if (j != s->sectnum && j >= 0 && j < MAXSECTORS) changespritesect(i, j); } - if (sprite[i].statnum == 2) + if (s->statnum == 2) { changespritestat(i, 1); 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; int hitpic = sprite[sn].picnum; 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; - if (isWorldTour() && hitpic == FIREBALL && sprite[sprite[i].owner].picnum != FIREBALL) + if (isWorldTour() && hitpic == FIREBALL && sprite[s->owner].picnum != FIREBALL) hitpic = FLAMETHROWERFLAME; } @@ -1443,9 +1442,9 @@ void checkhitsprite_d(int i, int sn) 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) { 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; if (sprite[hittype[i].owner].picnum != APLAYER) diff --git a/source/games/duke/src/sectors_r.cpp b/source/games/duke/src/sectors_r.cpp index 0c8371d4e..ad3c5e710 100644 --- a/source/games/duke/src/sectors_r.cpp +++ b/source/games/duke/src/sectors_r.cpp @@ -1527,18 +1527,18 @@ bool checkhitceiling_r(int sn) void checkhitsprite_r(int i, int sn) { int j, k, p; - spritetype* s; i &= (MAXSPRITES - 1); + spritetype* s = &sprite[i]; - if (isRRRA()) switch (sprite[i].picnum) + if (isRRRA()) switch (s->picnum) { case RRTILE8464: break; case RRTILE8487: case RRTILE8489: S_PlayActorSound(471, i); - sprite[i].picnum++; + s->picnum++; break; case RRTILE7638: case RRTILE7644: @@ -1550,11 +1550,11 @@ void checkhitsprite_r(int i, int sn) case RRTILE7876: case RRTILE7881: case RRTILE7883: - sprite[i].picnum++; + s->picnum++; S_PlayActorSound(VENT_BUST, i); break; case RRTILE7879: - sprite[i].picnum++; + s->picnum++; S_PlayActorSound(495, i); fi.hitradius(i, 10, 0, 0, 1, 1); break; @@ -1563,120 +1563,120 @@ void checkhitsprite_r(int i, int sn) case RRTILE7700: case RRTILE7702: case RRTILE7711: - sprite[i].picnum++; + s->picnum++; S_PlayActorSound(47, i); break; case RRTILE7636: - sprite[i].picnum += 3; + s->picnum += 3; S_PlayActorSound(VENT_BUST, i); break; case RRTILE7875: - sprite[i].picnum += 3; + s->picnum += 3; S_PlayActorSound(VENT_BUST, i); break; case RRTILE7640: - sprite[i].picnum += 2; + s->picnum += 2; S_PlayActorSound(VENT_BUST, i); break; case RRTILE7595: case RRTILE7704: - sprite[i].picnum = RRTILE7705; + s->picnum = RRTILE7705; S_PlayActorSound(495, i); break; case RRTILE8579: - sprite[i].picnum = RRTILE5014; + s->picnum = RRTILE5014; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE7441: - sprite[i].picnum = RRTILE5016; + s->picnum = RRTILE5016; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE7534: - sprite[i].picnum = RRTILE5029; + s->picnum = RRTILE5029; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE7545: - sprite[i].picnum = RRTILE5030; + s->picnum = RRTILE5030; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE7547: - sprite[i].picnum = RRTILE5031; + s->picnum = RRTILE5031; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE7574: - sprite[i].picnum = RRTILE5032; + s->picnum = RRTILE5032; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE7575: - sprite[i].picnum = RRTILE5033; + s->picnum = RRTILE5033; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE7578: - sprite[i].picnum = RRTILE5034; + s->picnum = RRTILE5034; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE7478: - sprite[i].picnum = RRTILE5035; + s->picnum = RRTILE5035; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8525: - sprite[i].picnum = RRTILE5036; + s->picnum = RRTILE5036; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8537: - sprite[i].picnum = RRTILE5062; + s->picnum = RRTILE5062; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8215: - sprite[i].picnum = RRTILE5064; + s->picnum = RRTILE5064; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8216: - sprite[i].picnum = RRTILE5065; + s->picnum = RRTILE5065; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8217: - sprite[i].picnum = RRTILE5066; + s->picnum = RRTILE5066; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8218: - sprite[i].picnum = RRTILE5067; + s->picnum = RRTILE5067; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8220: - sprite[i].picnum = RRTILE5068; + s->picnum = RRTILE5068; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8221: - sprite[i].picnum = RRTILE5069; + s->picnum = RRTILE5069; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8312: - sprite[i].picnum = RRTILE5071; + s->picnum = RRTILE5071; S_PlayActorSound(472, i); break; case RRTILE8395: - sprite[i].picnum = RRTILE5072; + s->picnum = RRTILE5072; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8423: - sprite[i].picnum = RRTILE5073; + s->picnum = RRTILE5073; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE3462: - sprite[i].picnum = RRTILE5074; + s->picnum = RRTILE5074; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case UWHIP: - sprite[i].picnum = RRTILE5075; + s->picnum = RRTILE5075; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8608: - sprite[i].picnum = RRTILE5083; + s->picnum = RRTILE5083; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8609: - sprite[i].picnum = RRTILE5084; + s->picnum = RRTILE5084; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8567: @@ -1684,23 +1684,23 @@ void checkhitsprite_r(int i, int sn) case RRTILE8569: case RRTILE8570: case RRTILE8571: - sprite[i].picnum = RRTILE5082; + s->picnum = RRTILE5082; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8640: - sprite[i].picnum = RRTILE5085; + s->picnum = RRTILE5085; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8611: - sprite[i].picnum = RRTILE5086; + s->picnum = RRTILE5086; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case TECHLIGHTBUST2: - sprite[i].picnum = TECHLIGHTBUST4; + s->picnum = TECHLIGHTBUST4; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8497: - sprite[i].picnum = RRTILE5076; + s->picnum = RRTILE5076; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8162: @@ -1711,7 +1711,7 @@ void checkhitsprite_r(int i, int sn) case RRTILE8167: case RRTILE8168: changespritestat(i, STAT_MISC); - sprite[i].picnum = RRTILE5063; + s->picnum = RRTILE5063; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8589: @@ -1722,218 +1722,218 @@ void checkhitsprite_r(int i, int sn) case RRTILE8594: case RRTILE8595: changespritestat(i, STAT_MISC); - sprite[i].picnum = RRTILE8588; + s->picnum = RRTILE8588; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE3497: - sprite[i].picnum = RRTILE5076; + s->picnum = RRTILE5076; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE3498: - sprite[i].picnum = RRTILE5077; + s->picnum = RRTILE5077; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE3499: - sprite[i].picnum = RRTILE5078; + s->picnum = RRTILE5078; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8503: - sprite[i].picnum = RRTILE5079; + s->picnum = RRTILE5079; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE7901: - sprite[i].picnum = RRTILE5080; + s->picnum = RRTILE5080; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE7696: - sprite[i].picnum = RRTILE7697; + s->picnum = RRTILE7697; S_PlayActorSound(DUKE_SHUCKS, i); break; case RRTILE7806: - sprite[i].picnum = RRTILE5043; + s->picnum = RRTILE5043; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE7885: case RRTILE7890: - sprite[i].picnum = RRTILE5045; + s->picnum = RRTILE5045; S_PlayActorSound(495, i); fi.hitradius(i, 10, 0, 0, 1, 1); break; case RRTILE7886: - sprite[i].picnum = RRTILE5046; + s->picnum = RRTILE5046; S_PlayActorSound(495, i); fi.hitradius(i, 10, 0, 0, 1, 1); break; case RRTILE7887: - sprite[i].picnum = RRTILE5044; + s->picnum = RRTILE5044; S_PlayActorSound(GLASS_HEAVYBREAK, i); fi.hitradius(i, 10, 0, 0, 1, 1); break; case RRTILE7900: - sprite[i].picnum = RRTILE5047; + s->picnum = RRTILE5047; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE7906: - sprite[i].picnum = RRTILE5048; + s->picnum = RRTILE5048; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE7912: case RRTILE7913: - sprite[i].picnum = RRTILE5049; + s->picnum = RRTILE5049; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8047: - sprite[i].picnum = RRTILE5050; + s->picnum = RRTILE5050; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8596: - sprite[i].picnum = RRTILE8598; + s->picnum = RRTILE8598; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8059: - sprite[i].picnum = RRTILE5051; + s->picnum = RRTILE5051; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8060: - sprite[i].picnum = RRTILE5052; + s->picnum = RRTILE5052; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8222: - sprite[i].picnum = RRTILE5053; + s->picnum = RRTILE5053; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8223: - sprite[i].picnum = RRTILE5054; + s->picnum = RRTILE5054; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8224: - sprite[i].picnum = RRTILE5055; + s->picnum = RRTILE5055; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8370: - sprite[i].picnum = RRTILE5056; + s->picnum = RRTILE5056; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8371: - sprite[i].picnum = RRTILE5057; + s->picnum = RRTILE5057; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8372: - sprite[i].picnum = RRTILE5058; + s->picnum = RRTILE5058; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8373: - sprite[i].picnum = RRTILE5059; + s->picnum = RRTILE5059; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8396: - sprite[i].picnum = RRTILE5038; + s->picnum = RRTILE5038; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8397: - sprite[i].picnum = RRTILE5039; + s->picnum = RRTILE5039; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8398: - sprite[i].picnum = RRTILE5040; + s->picnum = RRTILE5040; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8399: - sprite[i].picnum = RRTILE5041; + s->picnum = RRTILE5041; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8385: - sprite[i].picnum = RRTILE8386; + s->picnum = RRTILE8386; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8387: - sprite[i].picnum = RRTILE8388; + s->picnum = RRTILE8388; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8389: - sprite[i].picnum = RRTILE8390; + s->picnum = RRTILE8390; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8391: - sprite[i].picnum = RRTILE8392; + s->picnum = RRTILE8392; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE7553: - sprite[i].picnum = RRTILE5035; + s->picnum = RRTILE5035; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8475: - sprite[i].picnum = RRTILE5075; + s->picnum = RRTILE5075; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8498: - sprite[i].picnum = RRTILE5077; + s->picnum = RRTILE5077; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8499: - sprite[i].picnum = RRTILE5078; + s->picnum = RRTILE5078; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE2445: - sprite[i].picnum = RRTILE2450; + s->picnum = RRTILE2450; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE2123: - sprite[i].picnum = RRTILE2124; + s->picnum = RRTILE2124; S_PlayActorSound(GLASS_BREAKING, i); lotsofglass(i, -1, 10); break; case RRTILE3773: - sprite[i].picnum = RRTILE8651; + s->picnum = RRTILE8651; S_PlayActorSound(GLASS_BREAKING, i); lotsofglass(i, -1, 10); break; case RRTILE7533: - sprite[i].picnum = RRTILE5035; + s->picnum = RRTILE5035; S_PlayActorSound(495, i); fi.hitradius(i, 10, 0, 0, 1, 1); break; case RRTILE8394: - sprite[i].picnum = RRTILE5072; + s->picnum = RRTILE5072; S_PlayActorSound(495, i); break; case RRTILE8461: case RRTILE8462: - sprite[i].picnum = RRTILE5074; + s->picnum = RRTILE5074; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8679: - sprite[i].picnum = RRTILE8680; + s->picnum = RRTILE8680; S_PlayActorSound(DUKE_SHUCKS, i); fi.hitradius(i, 10, 0, 0, 1, 1); - if (sprite[i].lotag != 0) + if (s->lotag != 0) { short j; for (j = 0; j < MAXSPRITES; j++) { 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; } } } break; case RRTILE3584: - sprite[i].picnum = RRTILE8681; + s->picnum = RRTILE8681; S_PlayActorSound(495, i); fi.hitradius(i, 250, 0, 0, 1, 1); break; case RRTILE8682: - sprite[i].picnum = RRTILE8683; + s->picnum = RRTILE8683; S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case RRTILE8099: - if (sprite[i].lotag == 5) + if (s->lotag == 5) { short j; - sprite[i].lotag = 0; - sprite[i].picnum = RRTILE5087; + s->lotag = 0; + s->picnum = RRTILE5087; S_PlayActorSound(340, i); for (j = 0; j < MAXSPRITES; j++) { @@ -1943,17 +1943,17 @@ void checkhitsprite_r(int i, int sn) } break; case RRTILE2431: - if (sprite[i].pal != 4) + if (s->pal != 4) { - sprite[i].picnum = RRTILE2451; - if (sprite[i].lotag != 0) + s->picnum = RRTILE2451; + if (s->lotag != 0) { short j; for (j = 0; j < MAXSPRITES; j++) { 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; } } @@ -1961,8 +1961,8 @@ void checkhitsprite_r(int i, int sn) } break; case RRTILE2443: - if (sprite[i].pal != 19) - sprite[i].picnum = RRTILE2455; + if (s->pal != 19) + s->picnum = RRTILE2455; break; case RRTILE2455: S_PlayActorSound(SQUISHED, i); @@ -1970,24 +1970,24 @@ void checkhitsprite_r(int i, int sn) deletesprite(i); break; case RRTILE2451: - if (sprite[i].pal != 4) + if (s->pal != 4) { S_PlayActorSound(SQUISHED, i); - if (sprite[i].lotag != 0) + if (s->lotag != 0) { short j; for (j = 0; j < MAXSPRITES; j++) { 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], RRTILE2465, 3, myconnectindex); sprite[j].xrepeat = 0; sprite[j].yrepeat = 0; - sprite[i].xrepeat = 0; - sprite[i].yrepeat = 0; + s->xrepeat = 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], RRTILE2465, 3, myconnectindex); - sprite[i].xrepeat = 0; - sprite[i].yrepeat = 0; + s->xrepeat = 0; + s->yrepeat = 0; } } break; @@ -2006,22 +2006,22 @@ void checkhitsprite_r(int i, int sn) break; } - switch (sprite[i].picnum) + switch (s->picnum) { case RRTILE3114: - sprite[i].picnum = RRTILE3117; + s->picnum = RRTILE3117; break; case RRTILE2876: - sprite[i].picnum = RRTILE2990; + s->picnum = RRTILE2990; break; case RRTILE3152: - sprite[i].picnum = RRTILE3218; + s->picnum = RRTILE3218; break; case RRTILE3153: - sprite[i].picnum = RRTILE3219; + s->picnum = RRTILE3219; break; case RRTILE2030: - sprite[i].picnum = RRTILE2034; + s->picnum = RRTILE2034; S_PlayActorSound(GLASS_BREAKING, i); lotsofglass(i, -1, 10); break; @@ -2029,19 +2029,19 @@ void checkhitsprite_r(int i, int sn) case RRTILE2915: case RRTILE3115: case RRTILE3171: - switch (sprite[i].picnum) + switch (s->picnum) { case RRTILE2915: - sprite[i].picnum = RRTILE2977; + s->picnum = RRTILE2977; break; case RRTILE2893: - sprite[i].picnum = RRTILE2978; + s->picnum = RRTILE2978; break; case RRTILE3115: - sprite[i].picnum = RRTILE3116; + s->picnum = RRTILE3116; break; case RRTILE3171: - sprite[i].picnum = RRTILE3216; + s->picnum = RRTILE3216; break; } S_PlayActorSound(GLASS_BREAKING, i); @@ -2051,7 +2051,7 @@ void checkhitsprite_r(int i, int sn) case RRTILE2158: case RRTILE2160: case RRTILE2175: - sprite[i].picnum++; + s->picnum++; S_PlayActorSound(GLASS_BREAKING, i); lotsofglass(i, -1, 10); break; @@ -2060,12 +2060,12 @@ void checkhitsprite_r(int i, int sn) case RRTILE2152: S_PlayActorSound(GLASS_BREAKING, i); lotsofglass(i, -1, 10); - sprite[i].picnum++; + s->picnum++; 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; 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); S_PlayActorSound(355, i); break; @@ -2078,32 +2078,32 @@ void checkhitsprite_r(int i, int sn) case HENSTAND + 1: if (sprite[sn].picnum == QUEBALL || sprite[sn].picnum == STRIPEBALL) { - sprite[sn].xvel = (sprite[i].xvel >> 1) + (sprite[i].xvel >> 2); - sprite[sn].ang -= (sprite[i].ang << 1) + 1024; - sprite[i].ang = getangle(sprite[i].x - sprite[sn].x, sprite[i].y - sprite[sn].y) - 512; + sprite[sn].xvel = (s->xvel >> 1) + (s->xvel >> 2); + sprite[sn].ang -= (s->ang << 1) + 1024; + s->ang = getangle(s->x - sprite[sn].x, s->y - sprite[sn].y) - 512; if (S_CheckSoundPlaying(POOLBALLHIT) < 2) S_PlayActorSound(POOLBALLHIT, i); } else if (sprite[sn].picnum == RRTILE3440 || sprite[sn].picnum == RRTILE3440 + 1) { - sprite[sn].xvel = (sprite[i].xvel >> 1) + (sprite[i].xvel >> 2); - sprite[sn].ang -= ((sprite[i].ang << 1) + krand()) & 64; - sprite[i].ang = (sprite[i].ang + krand()) & 16; + sprite[sn].xvel = (s->xvel >> 1) + (s->xvel >> 2); + sprite[sn].ang -= ((s->ang << 1) + krand()) & 64; + s->ang = (s->ang + krand()) & 16; S_PlayActorSound(355, i); } else if (sprite[sn].picnum == HENSTAND || sprite[sn].picnum == HENSTAND + 1) { - sprite[sn].xvel = (sprite[i].xvel >> 1) + (sprite[i].xvel >> 2); - sprite[sn].ang -= ((sprite[i].ang << 1) + krand()) & 16; - sprite[i].ang = (sprite[i].ang + krand()) & 16; + sprite[sn].xvel = (s->xvel >> 1) + (s->xvel >> 2); + sprite[sn].ang -= ((s->ang << 1) + krand()) & 16; + s->ang = (s->ang + krand()) & 16; S_PlayActorSound(355, i); } else { if (krand() & 3) { - sprite[i].xvel = 164; - sprite[i].ang = sprite[sn].ang; + s->xvel = 164; + s->ang = sprite[sn].ang; } } break; @@ -2127,7 +2127,7 @@ void checkhitsprite_r(int i, int sn) case UWHIP: if (hittype[i].temp_data[0] == 0) { - sprite[i].cstat &= ~257; + s->cstat &= ~257; hittype[i].temp_data[0] = 1; fi.spawn(i, BURNING); } @@ -2152,13 +2152,13 @@ void checkhitsprite_r(int i, int sn) case UWHIP: 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; } - if (sprite[i].picnum == CACTUS) - sprite[i].picnum = CACTUSBROKE; - sprite[i].cstat &= ~257; + if (s->picnum == CACTUS) + s->picnum = CACTUSBROKE; + s->cstat &= ~257; // else deletesprite(i); break; } @@ -2166,10 +2166,9 @@ void checkhitsprite_r(int i, int sn) case FANSPRITE: - sprite[i].picnum = FANSPRITEBROKE; - sprite[i].cstat &= (65535 - 257); + s->picnum = FANSPRITEBROKE; + s->cstat &= (65535 - 257); S_PlayActorSound(GLASS_HEAVYBREAK, i); - s = &sprite[i]; for (j = 0; j < 16; j++) RANDOMSCRAP(s, i); break; @@ -2186,7 +2185,7 @@ void checkhitsprite_r(int i, int sn) if (actorinfo[SHOTSPARK1].scriptaddress && sprite[sn].extra != ScriptCode[actorinfo[SHOTSPARK1].scriptaddress]) { 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); fi.spawn(i, EXPLOSION2); deletesprite(i); @@ -2221,18 +2220,18 @@ void checkhitsprite_r(int i, int sn) case VASE: case STATUEFLASH: case STATUE: - if (sprite[i].picnum == BOTTLE10) + if (s->picnum == BOTTLE10) 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); S_PlayActorSound(GLASS_HEAVYBREAK, i); } - else if (sprite[i].picnum == VASE) + else if (s->picnum == VASE) lotsofglass(i, -1, 40); S_PlayActorSound(GLASS_BREAKING, i); - sprite[i].ang = krand() & 2047; + s->ang = krand() & 2047; lotsofglass(i, -1, 8); deletesprite(i); break; @@ -2246,49 +2245,49 @@ void checkhitsprite_r(int i, int sn) deletesprite(i); break; case FORCESPHERE: - sprite[i].xrepeat = 0; - hittype[sprite[i].owner].temp_data[0] = 32; - hittype[sprite[i].owner].temp_data[1] = !hittype[sprite[i].owner].temp_data[1]; - hittype[sprite[i].owner].temp_data[2] ++; + s->xrepeat = 0; + hittype[s->owner].temp_data[0] = 32; + hittype[s->owner].temp_data[1] = !hittype[s->owner].temp_data[1]; + hittype[s->owner].temp_data[2] ++; fi.spawn(i, EXPLOSION2); break; case TOILET: - sprite[i].picnum = TOILETBROKE; - sprite[i].cstat |= (krand() & 1) << 2; - sprite[i].cstat &= ~257; + s->picnum = TOILETBROKE; + s->cstat |= (krand() & 1) << 2; + s->cstat &= ~257; fi.spawn(i, TOILETWATER); S_PlayActorSound(GLASS_BREAKING, i); break; case STALL: - sprite[i].picnum = STALLBROKE; - sprite[i].cstat |= (krand() & 1) << 2; - sprite[i].cstat &= ~257; + s->picnum = STALLBROKE; + s->cstat |= (krand() & 1) << 2; + s->cstat &= ~257; fi.spawn(i, TOILETWATER); S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case HYDRENT: - sprite[i].picnum = BROKEFIREHYDRENT; + s->picnum = BROKEFIREHYDRENT; fi.spawn(i, TOILETWATER); // 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; // } S_PlayActorSound(GLASS_HEAVYBREAK, i); break; case GRATE1: - sprite[i].picnum = BGRATE1; - sprite[i].cstat &= (65535 - 256 - 1); + s->picnum = BGRATE1; + s->cstat &= (65535 - 256 - 1); S_PlayActorSound(VENT_BUST, i); break; case CIRCLEPANNEL: - sprite[i].picnum = CIRCLEPANNELBROKE; - sprite[i].cstat &= (65535 - 256 - 1); + s->picnum = CIRCLEPANNELBROKE; + s->cstat &= (65535 - 256 - 1); S_PlayActorSound(VENT_BUST, i); break; @@ -2298,24 +2297,24 @@ void checkhitsprite_r(int i, int sn) case PIPE4: case PIPE5: case PIPE6: - switch (sprite[i].picnum) + switch (s->picnum) { - case PIPE1:sprite[i].picnum = PIPE1B; break; - case PIPE2:sprite[i].picnum = PIPE2B; break; - case PIPE3:sprite[i].picnum = PIPE3B; break; - case PIPE4:sprite[i].picnum = PIPE4B; break; - case PIPE5:sprite[i].picnum = PIPE5B; break; - case PIPE6:sprite[i].picnum = PIPE6B; break; + case PIPE1:s->picnum = PIPE1B; break; + case PIPE2:s->picnum = PIPE2B; break; + case PIPE3:s->picnum = PIPE3B; break; + case PIPE4:s->picnum = PIPE4B; break; + case PIPE5:s->picnum = PIPE5B; break; + case PIPE6:s->picnum = PIPE6B; break; } 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; case CHAIR1: case CHAIR2: - sprite[i].picnum = BROKENCHAIR; - sprite[i].cstat = 0; + s->picnum = BROKENCHAIR; + s->cstat = 0; break; case CHAIR3: case MOVIECAMERA: @@ -2327,26 +2326,26 @@ void checkhitsprite_r(int i, int sn) case POT2: case POT3: S_PlayActorSound(GLASS_HEAVYBREAK, i); - s = &sprite[i]; for (j = 0; j < 16; j++) RANDOMSCRAP(s, i); deletesprite(i); break; case PLAYERONWATER: - i = sprite[i].owner; + i = s->owner; + s = &sprite[i]; 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; - 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 (sprite[sn].picnum == RPG) 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 (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); if (sprite[sn].pal == 6) @@ -2359,7 +2358,7 @@ void checkhitsprite_r(int i, int sn) 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) { fi.shoot(i, BLOODSPLAT3); @@ -2368,28 +2367,28 @@ void checkhitsprite_r(int i, int sn) fi.shoot(i, BLOODSPLAT4); } - if (sprite[i].statnum == 2) + if (s->statnum == 2) { changespritestat(i, 1); 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; hittype[i].picnum = sprite[sn].picnum; hittype[i].extra += sprite[sn].extra; - if (sprite[i].picnum != COW) + if (s->picnum != COW) hittype[i].ang = sprite[sn].ang; 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) { ps[p].newowner = -1;