mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-29 04:50:42 +00:00
- spawn function transitioned.
This commit is contained in:
parent
cd55c21a5e
commit
26f3bc1857
26 changed files with 3850 additions and 3145 deletions
|
@ -16,6 +16,9 @@ set( PCH_SOURCES
|
|||
src/sectors_d.cpp
|
||||
src/sectors_r.cpp
|
||||
src/sounds.cpp
|
||||
src/spawn.cpp
|
||||
src/spawn_d.cpp
|
||||
src/spawn_r.cpp
|
||||
src/zz_actors.cpp
|
||||
src/zz_anim.cpp
|
||||
src/zz_cheats.cpp
|
||||
|
|
|
@ -549,7 +549,7 @@ void movefx(void)
|
|||
case RESPAWN:
|
||||
if (sprite[i].extra == 66)
|
||||
{
|
||||
j = spawn(i, sprite[i].hitag);
|
||||
j = fi.spawn(i, sprite[i].hitag);
|
||||
if (isRRRA())
|
||||
{
|
||||
respawn_rrra(i, j);
|
||||
|
@ -869,7 +869,7 @@ void moveflammable(int i, int tire, int box, int pool)
|
|||
if (!isRR() && s->picnum == tire && hittype[i].temp_data[1] == 32)
|
||||
{
|
||||
s->cstat = 0;
|
||||
j = spawn(i, pool);
|
||||
j = fi.spawn(i, pool);
|
||||
sprite[j].shade = 127;
|
||||
}
|
||||
else
|
||||
|
@ -946,7 +946,7 @@ void detonate(int i, int explosion)
|
|||
if ((t[3] == 1 && s->xrepeat) || s->lotag == -99)
|
||||
{
|
||||
int x = s->extra;
|
||||
spawn(i, explosion);
|
||||
fi.spawn(i, explosion);
|
||||
fi.hitradius(i, seenineblastradius, x >> 2, x - (x >> 1), x - (x >> 2), x);
|
||||
spritesound(PIPEBOMB_EXPLODE, i);
|
||||
}
|
||||
|
@ -1271,7 +1271,7 @@ void movecanwithsomething(int i)
|
|||
for (j = 0; j < 10; j++)
|
||||
RANDOMSCRAP(s, i);
|
||||
|
||||
if (s->lotag) spawn(i, s->lotag);
|
||||
if (s->lotag) fi.spawn(i, s->lotag);
|
||||
|
||||
deletesprite(i);
|
||||
}
|
||||
|
@ -1547,7 +1547,7 @@ void forcesphere(int i, int forcesphere)
|
|||
for (int l = 512; l < (2048 - 512); l += 128)
|
||||
for (int j = 0; j < 2048; j += 128)
|
||||
{
|
||||
int k = spawn(i, forcesphere);
|
||||
int k = fi.spawn(i, forcesphere);
|
||||
sprite[k].cstat = 257 + 128;
|
||||
sprite[k].clipdist = 64;
|
||||
sprite[k].ang = j;
|
||||
|
@ -1630,7 +1630,7 @@ void recon(int i, int explosion, int firelaser, int attacksnd, int painsnd, int
|
|||
{
|
||||
s->z += 1024;
|
||||
t[2]++;
|
||||
if ((t[2] & 3) == 0) spawn(i, explosion);
|
||||
if ((t[2] & 3) == 0) fi.spawn(i, explosion);
|
||||
getglobalz(i);
|
||||
s->ang += 96;
|
||||
s->xvel = 128;
|
||||
|
@ -1641,7 +1641,7 @@ void recon(int i, int explosion, int firelaser, int attacksnd, int painsnd, int
|
|||
RANDOMSCRAP(s, i);
|
||||
spritesound(LASERTRIP_EXPLODE, i);
|
||||
int sp = getspawn(i);
|
||||
if (sp >= 0) spawn(i, sp);
|
||||
if (sp >= 0) fi.spawn(i, sp);
|
||||
ps[myconnectindex].actors_killed++;
|
||||
deletesprite(i);
|
||||
}
|
||||
|
@ -2514,7 +2514,7 @@ void scrap(int i, int SCRAP1, int SCRAP6)
|
|||
{
|
||||
if (s->picnum == SCRAP1 && s->yvel > 0)
|
||||
{
|
||||
int j = spawn(i, s->yvel);
|
||||
int j = fi.spawn(i, s->yvel);
|
||||
setsprite(j, s->x, s->y, s->z);
|
||||
getglobalz(j);
|
||||
sprite[j].hitag = sprite[j].lotag = 0;
|
||||
|
@ -4537,12 +4537,12 @@ void handle_se35(int i, int SMALLSMOKE, int EXPLOSION2)
|
|||
for (int j = 0; j < 8; j++)
|
||||
{
|
||||
s->ang += krand() & 511;
|
||||
int k = spawn(i, SMALLSMOKE);
|
||||
int k = fi.spawn(i, SMALLSMOKE);
|
||||
sprite[k].xvel = 96 + (krand() & 127);
|
||||
ssp(k, CLIPMASK0);
|
||||
setsprite(k, sprite[k].x, sprite[k].y, sprite[k].z);
|
||||
if (rnd(16))
|
||||
spawn(i, EXPLOSION2);
|
||||
fi.spawn(i, EXPLOSION2);
|
||||
}
|
||||
|
||||
switch (t[0])
|
||||
|
@ -4628,7 +4628,7 @@ void handle_se130(int i, int countmax, int EXPLOSION2)
|
|||
|
||||
if (rnd(64))
|
||||
{
|
||||
int k = spawn(i, EXPLOSION2);
|
||||
int k = fi.spawn(i, EXPLOSION2);
|
||||
sprite[k].xrepeat = sprite[k].yrepeat = 2 + (krand() & 7);
|
||||
sprite[k].z = sc->floorz - (krand() % x);
|
||||
sprite[k].ang += 256 - (krand() % 511);
|
||||
|
@ -5021,7 +5021,7 @@ void fall_common(int g_i, int g_p, int JIBS6, int DRONE, int BLOODPOOL, int SHOT
|
|||
{
|
||||
fi.guts(g_sp, JIBS6, 15, g_p);
|
||||
spritesound(squished, g_i);
|
||||
spawn(g_i, BLOODPOOL);
|
||||
fi.spawn(g_i, BLOODPOOL);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1005,7 +1005,7 @@ static void movetripbomb(int i)
|
|||
x = s->extra;
|
||||
fi.hitradius(i, tripbombblastradius, x >> 2, x >> 1, x - (x >> 2), x);
|
||||
|
||||
j = spawn(i, EXPLOSION2);
|
||||
j = fi.spawn(i, EXPLOSION2);
|
||||
sprite[j].ang = s->ang;
|
||||
sprite[j].xvel = 348;
|
||||
ssp(j, CLIPMASK0);
|
||||
|
@ -1066,7 +1066,7 @@ static void movetripbomb(int i)
|
|||
// we're on a trip wire
|
||||
while (x > 0)
|
||||
{
|
||||
j = spawn(i, LASERLINE);
|
||||
j = fi.spawn(i, LASERLINE);
|
||||
setsprite(j, sprite[j].x, sprite[j].y, sprite[j].z);
|
||||
sprite[j].hitag = s->hitag;
|
||||
hittype[j].temp_data[1] = sprite[j].z;
|
||||
|
@ -1177,7 +1177,7 @@ static void movefireext(int i)
|
|||
sprite[j].pal = 2;
|
||||
}
|
||||
|
||||
spawn(i, EXPLOSION2);
|
||||
fi.spawn(i, EXPLOSION2);
|
||||
spritesound(PIPEBOMB_EXPLODE, i);
|
||||
spritesound(GLASS_HEAVYBREAK, i);
|
||||
|
||||
|
@ -1193,7 +1193,7 @@ static void movefireext(int i)
|
|||
}
|
||||
|
||||
int x = s->extra;
|
||||
spawn(i, EXPLOSION2);
|
||||
fi.spawn(i, EXPLOSION2);
|
||||
fi.hitradius(i, pipebombblastradius, x >> 2, x - (x >> 1), x - (x >> 2), x);
|
||||
spritesound(PIPEBOMB_EXPLODE, i);
|
||||
detonate(i, EXPLOSION2);
|
||||
|
@ -1520,7 +1520,7 @@ void moveweapons_d(void)
|
|||
case FREEZEBLAST:
|
||||
if (s->yvel < 1 || s->extra < 2 || (s->xvel|s->zvel) == 0)
|
||||
{
|
||||
j = spawn(i,TRANSPORTERSTAR);
|
||||
j = fi.spawn(i,TRANSPORTERSTAR);
|
||||
sprite[j].pal = 1;
|
||||
sprite[j].xrepeat = 32;
|
||||
sprite[j].yrepeat = 32;
|
||||
|
@ -1564,7 +1564,7 @@ void moveweapons_d(void)
|
|||
case RPG:
|
||||
if (hittype[i].picnum != BOSS2 && s->xrepeat >= 10 && sector[s->sectnum].lotag != 2)
|
||||
{
|
||||
j = spawn(i,SMALLSMOKE);
|
||||
j = fi.spawn(i,SMALLSMOKE);
|
||||
sprite[j].z += (1 << 8);
|
||||
}
|
||||
break;
|
||||
|
@ -1584,7 +1584,7 @@ void moveweapons_d(void)
|
|||
{
|
||||
float siz = 1.0f - (hittype[i].temp_data[0] * 0.2f);
|
||||
int trail = hittype[i].temp_data[1];
|
||||
j = hittype[i].temp_data[1] = spawn(i, FIREBALL);
|
||||
j = hittype[i].temp_data[1] = fi.spawn(i, FIREBALL);
|
||||
|
||||
auto spr = &sprite[j];
|
||||
spr->xvel = sprite[i].xvel;
|
||||
|
@ -1688,7 +1688,7 @@ void moveweapons_d(void)
|
|||
if (s->picnum == FREEZEBLAST && sprite[j].pal == 1)
|
||||
if (badguy(&sprite[j]) || sprite[j].picnum == APLAYER)
|
||||
{
|
||||
j = spawn(i,TRANSPORTERSTAR);
|
||||
j = fi.spawn(i,TRANSPORTERSTAR);
|
||||
sprite[j].pal = 1;
|
||||
sprite[j].xrepeat = 32;
|
||||
sprite[j].yrepeat = 32;
|
||||
|
@ -1746,7 +1746,7 @@ void moveweapons_d(void)
|
|||
wall[wall[j].point2].y-wall[j].y);
|
||||
s->ang = ((k << 1) - s->ang)&2047;
|
||||
s->owner = i;
|
||||
spawn(i,TRANSPORTERSTAR);
|
||||
fi.spawn(i,TRANSPORTERSTAR);
|
||||
continue;
|
||||
}
|
||||
else
|
||||
|
@ -1787,7 +1787,7 @@ void moveweapons_d(void)
|
|||
}
|
||||
else if (fireball)
|
||||
{
|
||||
j = spawn(i, LAVAPOOL);
|
||||
j = fi.spawn(i, LAVAPOOL);
|
||||
sprite[j].owner = sprite[i].owner;
|
||||
sprite[j].yvel = sprite[i].yvel;
|
||||
actor[j].owner = sprite[i].owner;
|
||||
|
@ -1815,7 +1815,7 @@ void moveweapons_d(void)
|
|||
{
|
||||
if (s->picnum == RPG)
|
||||
{
|
||||
k = spawn(i,EXPLOSION2);
|
||||
k = fi.spawn(i,EXPLOSION2);
|
||||
sprite[k].x = dax;
|
||||
sprite[k].y = day;
|
||||
sprite[k].z = daz;
|
||||
|
@ -1828,19 +1828,19 @@ void moveweapons_d(void)
|
|||
else if ((j&49152) == 16384)
|
||||
{
|
||||
if (s->zvel > 0)
|
||||
spawn(i,EXPLOSION2BOT);
|
||||
fi.spawn(i,EXPLOSION2BOT);
|
||||
else { sprite[k].cstat |= 8; sprite[k].z += (48 << 8); }
|
||||
}
|
||||
}
|
||||
else if (s->picnum == SHRINKSPARK)
|
||||
{
|
||||
spawn(i,SHRINKEREXPLOSION);
|
||||
fi.spawn(i,SHRINKEREXPLOSION);
|
||||
spritesound(SHRINKER_HIT,i);
|
||||
fi.hitradius(i,shrinkerblastradius,0,0,0,0);
|
||||
}
|
||||
else if (s->picnum != COOLEXPLOSION1 && s->picnum != FREEZEBLAST && s->picnum != FIRELASER && (!isWorldTour() || s->picnum != FIREBALL))
|
||||
{
|
||||
k = spawn(i,EXPLOSION2);
|
||||
k = fi.spawn(i,EXPLOSION2);
|
||||
sprite[k].xrepeat = sprite[k].yrepeat = s->xrepeat>>1;
|
||||
if ((j&49152) == 16384)
|
||||
{
|
||||
|
@ -1867,7 +1867,7 @@ void moveweapons_d(void)
|
|||
}
|
||||
if (fireball)
|
||||
{
|
||||
j = spawn(i, EXPLOSION2);
|
||||
j = fi.spawn(i, EXPLOSION2);
|
||||
sprite[j].xrepeat = sprite[j].yrepeat = (short)(s->xrepeat >> 1);
|
||||
}
|
||||
}
|
||||
|
@ -1887,7 +1887,7 @@ void moveweapons_d(void)
|
|||
}
|
||||
}
|
||||
else if (s->picnum == RPG && sector[s->sectnum].lotag == 2 && s->xrepeat >= 10 && rnd(140))
|
||||
spawn(i,WATERBUBBLE);
|
||||
fi.spawn(i,WATERBUBBLE);
|
||||
break;
|
||||
|
||||
case SHOTSPARK1:
|
||||
|
@ -1948,7 +1948,7 @@ void movetransports_d(void)
|
|||
{
|
||||
if (sprite[i].pal == 0)
|
||||
{
|
||||
spawn(i, TRANSPORTERBEAM);
|
||||
fi.spawn(i, TRANSPORTERBEAM);
|
||||
spritesound(TELEPORTER, i);
|
||||
}
|
||||
|
||||
|
@ -1977,7 +1977,7 @@ void movetransports_d(void)
|
|||
|
||||
if (sprite[i].pal == 0)
|
||||
{
|
||||
k = spawn(sprite[i].owner, TRANSPORTERBEAM);
|
||||
k = fi.spawn(sprite[i].owner, TRANSPORTERBEAM);
|
||||
spritesound(TELEPORTER, k);
|
||||
}
|
||||
|
||||
|
@ -2060,12 +2060,12 @@ void movetransports_d(void)
|
|||
setpal(&ps[p]);
|
||||
|
||||
if ((krand() & 255) < 32)
|
||||
spawn(j, WATERSPLASH2);
|
||||
fi.spawn(j, WATERSPLASH2);
|
||||
|
||||
if (sectlotag == 1)
|
||||
for (l = 0; l < 9; l++)
|
||||
{
|
||||
q = spawn(ps[p].i, WATERBUBBLE);
|
||||
q = fi.spawn(ps[p].i, WATERBUBBLE);
|
||||
sprite[q].z += krand() & 16383;
|
||||
}
|
||||
}
|
||||
|
@ -2144,7 +2144,7 @@ void movetransports_d(void)
|
|||
|
||||
if (sectlotag > 0)
|
||||
{
|
||||
k = spawn(j, WATERSPLASH2);
|
||||
k = fi.spawn(j, WATERSPLASH2);
|
||||
if (sectlotag == 1 && sprite[j].statnum == 4)
|
||||
{
|
||||
sprite[k].xvel = sprite[j].xvel >> 1;
|
||||
|
@ -2171,10 +2171,10 @@ void movetransports_d(void)
|
|||
|
||||
if (sprite[i].pal == 0)
|
||||
{
|
||||
k = spawn(i, TRANSPORTERBEAM);
|
||||
k = fi.spawn(i, TRANSPORTERBEAM);
|
||||
spritesound(TELEPORTER, k);
|
||||
|
||||
k = spawn(sprite[i].owner, TRANSPORTERBEAM);
|
||||
k = fi.spawn(sprite[i].owner, TRANSPORTERBEAM);
|
||||
spritesound(TELEPORTER, k);
|
||||
}
|
||||
|
||||
|
@ -2351,7 +2351,7 @@ static void greenslime(int i)
|
|||
spritesound(SQUISHED, i);
|
||||
if ((krand() & 255) < 32)
|
||||
{
|
||||
j = spawn(i, BLOODPOOL);
|
||||
j = fi.spawn(i, BLOODPOOL);
|
||||
sprite[j].pal = 0;
|
||||
}
|
||||
ps[p].actors_killed++;
|
||||
|
@ -2451,7 +2451,7 @@ static void greenslime(int i)
|
|||
|
||||
if ((krand() & 255) < 32)
|
||||
{
|
||||
j = spawn(i, BLOODPOOL);
|
||||
j = fi.spawn(i, BLOODPOOL);
|
||||
sprite[j].pal = 0;
|
||||
}
|
||||
|
||||
|
@ -2663,7 +2663,7 @@ static void flamethrowerflame(int i)
|
|||
t[0]++;
|
||||
if (sector[sect].lotag == 2)
|
||||
{
|
||||
sprite[spawn(i, EXPLOSION2)].shade = 127;
|
||||
sprite[fi.spawn(i, EXPLOSION2)].shade = 127;
|
||||
deletesprite(i);
|
||||
return;
|
||||
}
|
||||
|
@ -2682,7 +2682,7 @@ static void flamethrowerflame(int i)
|
|||
t[3] = krand() % 10;
|
||||
if (t[0] > 30)
|
||||
{
|
||||
sprite[spawn(i, EXPLOSION2)].shade = 127;
|
||||
sprite[fi.spawn(i, EXPLOSION2)].shade = 127;
|
||||
deletesprite(i);
|
||||
return;
|
||||
}
|
||||
|
@ -2766,7 +2766,7 @@ static void heavyhbomb(int i)
|
|||
if (t[2] <= 0)
|
||||
{
|
||||
spritesound(TELEPORTER, i);
|
||||
spawn(i, TRANSPORTERSTAR);
|
||||
fi.spawn(i, TRANSPORTERSTAR);
|
||||
s->cstat = 257;
|
||||
}
|
||||
return;
|
||||
|
@ -2821,7 +2821,7 @@ static void heavyhbomb(int i)
|
|||
if (t[5] == 0)
|
||||
{
|
||||
t[5] = 1;
|
||||
spawn(i, WATERSPLASH2);
|
||||
fi.spawn(i, WATERSPLASH2);
|
||||
}
|
||||
}
|
||||
else t[5] = 0;
|
||||
|
@ -2891,9 +2891,9 @@ DETONATEB:
|
|||
}
|
||||
|
||||
fi.hitradius(i, m, x >> 2, x >> 1, x - (x >> 2), x);
|
||||
spawn(i, EXPLOSION2);
|
||||
fi.spawn(i, EXPLOSION2);
|
||||
if (s->zvel == 0)
|
||||
spawn(i, EXPLOSION2BOT);
|
||||
fi.spawn(i, EXPLOSION2BOT);
|
||||
spritesound(PIPEBOMB_EXPLODE, i);
|
||||
for (x = 0; x < 8; x++)
|
||||
RANDOMSCRAP(s, i);
|
||||
|
@ -2915,7 +2915,7 @@ DETONATEB:
|
|||
else
|
||||
{
|
||||
t[2] = respawnitemtime;
|
||||
spawn(i, RESPAWNMARKERRED);
|
||||
fi.spawn(i, RESPAWNMARKERRED);
|
||||
s->cstat = (short)32768;
|
||||
s->yrepeat = 9;
|
||||
return;
|
||||
|
@ -2958,7 +2958,7 @@ DETONATEB:
|
|||
else
|
||||
{
|
||||
t[2] = respawnitemtime;
|
||||
spawn(i, RESPAWNMARKERRED);
|
||||
fi.spawn(i, RESPAWNMARKERRED);
|
||||
s->cstat = (short)32768;
|
||||
}
|
||||
}
|
||||
|
@ -3079,7 +3079,7 @@ void moveactors_d(void)
|
|||
continue;
|
||||
}
|
||||
else if ((t[0] & 3) == 0)
|
||||
spawn(i, EXPLOSION2);
|
||||
fi.spawn(i, EXPLOSION2);
|
||||
ssp(i, CLIPMASK0);
|
||||
break;
|
||||
case RAT:
|
||||
|
@ -3115,7 +3115,7 @@ void moveactors_d(void)
|
|||
|
||||
case BOUNCEMINE:
|
||||
case MORTER:
|
||||
j = spawn(i, FRAMEEFFECT1);
|
||||
j = fi.spawn(i, FRAMEEFFECT1);
|
||||
hittype[j].temp_data[0] = 3;
|
||||
|
||||
case HEAVYHBOMB:
|
||||
|
@ -3743,7 +3743,7 @@ void moveeffectors_d(void) //STATNUM 3
|
|||
if (rnd(32) && (hittype[i].temp_data[2] & 1))
|
||||
{
|
||||
sprite[j].cstat &= 32767;
|
||||
spawn(j, SMALLSMOKE);
|
||||
fi.spawn(j, SMALLSMOKE);
|
||||
|
||||
p = findplayer(s, &x);
|
||||
x = ldist(&sprite[ps[p].i], &sprite[j]);
|
||||
|
|
|
@ -1178,7 +1178,7 @@ void moveweapons_r(void)
|
|||
case FREEZEBLAST:
|
||||
if (s->yvel < 1 || s->extra < 2 || (s->xvel | s->zvel) == 0)
|
||||
{
|
||||
j = spawn(i, TRANSPORTERSTAR);
|
||||
j = fi.spawn(i, TRANSPORTERSTAR);
|
||||
sprite[j].pal = 1;
|
||||
sprite[j].xrepeat = 32;
|
||||
sprite[j].yrepeat = 32;
|
||||
|
@ -1223,7 +1223,7 @@ void moveweapons_r(void)
|
|||
case RPG:
|
||||
if (hittype[i].picnum != BOSS2 && s->xrepeat >= 10 && sector[s->sectnum].lotag != 2)
|
||||
{
|
||||
j = spawn(i, SMALLSMOKE);
|
||||
j = fi.spawn(i, SMALLSMOKE);
|
||||
sprite[j].z += (1 << 8);
|
||||
}
|
||||
break;
|
||||
|
@ -1232,11 +1232,11 @@ void moveweapons_r(void)
|
|||
s->hitag++;
|
||||
if (hittype[i].picnum != BOSS2 && s->xrepeat >= 10 && sector[s->sectnum].lotag != 2)
|
||||
{
|
||||
j = spawn(i, SMALLSMOKE);
|
||||
j = fi.spawn(i, SMALLSMOKE);
|
||||
sprite[j].z += (1 << 8);
|
||||
if ((krand() & 15) == 2)
|
||||
{
|
||||
j = spawn(i, 1310);
|
||||
j = fi.spawn(i, 1310);
|
||||
}
|
||||
}
|
||||
if (sprite[s->lotag].extra <= 0)
|
||||
|
@ -1282,7 +1282,7 @@ void moveweapons_r(void)
|
|||
makeitfall(i);
|
||||
if (s->xrepeat >= 10 && sector[s->sectnum].lotag != 2)
|
||||
{
|
||||
j = spawn(i, SMALLSMOKE);
|
||||
j = fi.spawn(i, SMALLSMOKE);
|
||||
sprite[j].z += (1 << 8);
|
||||
}
|
||||
break;
|
||||
|
@ -1350,7 +1350,7 @@ void moveweapons_r(void)
|
|||
&& sprite[j].pal == 19)
|
||||
{
|
||||
spritesound(RPG_EXPLODE, i);
|
||||
k = spawn(i, EXPLOSION2);
|
||||
k = fi.spawn(i, EXPLOSION2);
|
||||
sprite[k].x = dax;
|
||||
sprite[k].y = day;
|
||||
sprite[k].z = daz;
|
||||
|
@ -1360,7 +1360,7 @@ void moveweapons_r(void)
|
|||
else if (s->picnum == FREEZEBLAST && sprite[j].pal == 1)
|
||||
if (badguy(&sprite[j]) || sprite[j].picnum == APLAYER)
|
||||
{
|
||||
j = spawn(i,TRANSPORTERSTAR);
|
||||
j = fi.spawn(i,TRANSPORTERSTAR);
|
||||
sprite[j].pal = 1;
|
||||
sprite[j].xrepeat = 32;
|
||||
sprite[j].yrepeat = 32;
|
||||
|
@ -1422,7 +1422,7 @@ void moveweapons_r(void)
|
|||
wall[wall[j].point2].y - wall[j].y);
|
||||
s->ang = ((k << 1) - s->ang) & 2047;
|
||||
s->owner = i;
|
||||
spawn(i, TRANSPORTERSTAR);
|
||||
fi.spawn(i, TRANSPORTERSTAR);
|
||||
continue;
|
||||
}
|
||||
else
|
||||
|
@ -1460,7 +1460,7 @@ void moveweapons_r(void)
|
|||
s->y += sintable[s->ang & 2047] >> 7;
|
||||
if (!isRRRA() || (sprite[s->owner].picnum != CHEER && sprite[s->owner].picnum != CHEERSTAYPUT))
|
||||
{
|
||||
j = spawn(i, CIRCLESTUCK);
|
||||
j = fi.spawn(i, CIRCLESTUCK);
|
||||
sprite[j].xrepeat = 8;
|
||||
sprite[j].yrepeat = 8;
|
||||
sprite[j].cstat = 16;
|
||||
|
@ -1525,7 +1525,7 @@ void moveweapons_r(void)
|
|||
{
|
||||
if (s->picnum == RPG)
|
||||
{
|
||||
k = spawn(i, EXPLOSION2);
|
||||
k = fi.spawn(i, EXPLOSION2);
|
||||
sprite[k].x = dax;
|
||||
sprite[k].y = day;
|
||||
sprite[k].z = daz;
|
||||
|
@ -1543,7 +1543,7 @@ void moveweapons_r(void)
|
|||
}
|
||||
else if (isRRRA() && s->picnum == RPG2)
|
||||
{
|
||||
k = spawn(i, EXPLOSION2);
|
||||
k = fi.spawn(i, EXPLOSION2);
|
||||
sprite[k].x = dax;
|
||||
sprite[k].y = day;
|
||||
sprite[k].z = daz;
|
||||
|
@ -1562,7 +1562,7 @@ void moveweapons_r(void)
|
|||
else if (isRRRA() && s->picnum == RRTILE1790)
|
||||
{
|
||||
s->extra = 160;
|
||||
k = spawn(i, EXPLOSION2);
|
||||
k = fi.spawn(i, EXPLOSION2);
|
||||
sprite[k].x = dax;
|
||||
sprite[k].y = day;
|
||||
sprite[k].z = daz;
|
||||
|
@ -1580,7 +1580,7 @@ void moveweapons_r(void)
|
|||
}
|
||||
else if (s->picnum != FREEZEBLAST && s->picnum != FIRELASER && s->picnum != SHRINKSPARK)
|
||||
{
|
||||
k = spawn(i, 1441);
|
||||
k = fi.spawn(i, 1441);
|
||||
sprite[k].xrepeat = sprite[k].yrepeat = s->xrepeat >> 1;
|
||||
if ((j & 49152) == 16384)
|
||||
{
|
||||
|
@ -1642,7 +1642,7 @@ void moveweapons_r(void)
|
|||
continue;
|
||||
}
|
||||
if ((s->picnum == RPG || (isRRRA() && s->picnum == RPG2)) && sector[s->sectnum].lotag == 2 && s->xrepeat >= 10 && rnd(184))
|
||||
spawn(i, WATERBUBBLE);
|
||||
fi.spawn(i, WATERBUBBLE);
|
||||
|
||||
continue;
|
||||
|
||||
|
@ -1707,7 +1707,7 @@ void movetransports_r(void)
|
|||
{
|
||||
if (ps[p].on_ground && sectlotag == 0 && onfloorz && ps[p].jetpack_on == 0)
|
||||
{
|
||||
spawn(i, TRANSPORTERBEAM);
|
||||
fi.spawn(i, TRANSPORTERBEAM);
|
||||
spritesound(TELEPORTER, i);
|
||||
|
||||
for (k = connecthead; k >= 0; k = connectpoint2[k])// connectpoinhittype[i].temp_data[1][k])
|
||||
|
@ -1733,7 +1733,7 @@ void movetransports_r(void)
|
|||
changespritesect(j, sprite[OW].sectnum);
|
||||
ps[p].cursectnum = sprite[j].sectnum;
|
||||
|
||||
k = spawn(OW, TRANSPORTERBEAM);
|
||||
k = fi.spawn(OW, TRANSPORTERBEAM);
|
||||
spritesound(TELEPORTER, k);
|
||||
|
||||
break;
|
||||
|
@ -1823,7 +1823,7 @@ void movetransports_r(void)
|
|||
setpal(&ps[p]);
|
||||
|
||||
if ((krand() & 255) < 32)
|
||||
spawn(ps[p].i, WATERSPLASH2);
|
||||
fi.spawn(ps[p].i, WATERSPLASH2);
|
||||
}
|
||||
else if (isRRRA() && k == 2)
|
||||
{
|
||||
|
@ -1925,7 +1925,7 @@ void movetransports_r(void)
|
|||
|
||||
if (sectlotag > 0)
|
||||
{
|
||||
k = spawn(j, WATERSPLASH2);
|
||||
k = fi.spawn(j, WATERSPLASH2);
|
||||
if (sectlotag == 1 && sprite[j].statnum == 4)
|
||||
{
|
||||
sprite[k].xvel = sprite[j].xvel >> 1;
|
||||
|
@ -1950,10 +1950,10 @@ void movetransports_r(void)
|
|||
hittype[j].bposy = sprite[j].y;
|
||||
hittype[j].bposz = sprite[j].z;
|
||||
|
||||
k = spawn(i, TRANSPORTERBEAM);
|
||||
k = fi.spawn(i, TRANSPORTERBEAM);
|
||||
spritesound(TELEPORTER, k);
|
||||
|
||||
k = spawn(OW, TRANSPORTERBEAM);
|
||||
k = fi.spawn(OW, TRANSPORTERBEAM);
|
||||
spritesound(TELEPORTER, k);
|
||||
|
||||
if (sprite[OW].owner != OW)
|
||||
|
@ -2088,7 +2088,7 @@ static void rrra_specialstats()
|
|||
sprite[i].extra--;
|
||||
if (sprite[i].extra <= -104)
|
||||
{
|
||||
spawn(i, sprite[i].lotag);
|
||||
fi.spawn(i, sprite[i].lotag);
|
||||
deletesprite(i);
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,7 @@ static void rrra_specialstats()
|
|||
setsprite(i, sprite[i].x, sprite[i].y, sector[sprite[i].sectnum].floorz - 10);
|
||||
sprite[i].extra = 1;
|
||||
sprite[i].picnum = PIG + 11;
|
||||
spawn(i, TRANSPORTERSTAR);
|
||||
fi.spawn(i, TRANSPORTERSTAR);
|
||||
}
|
||||
i = nexti;
|
||||
}
|
||||
|
@ -2236,7 +2236,7 @@ static void rrra_specialstats()
|
|||
{
|
||||
sprite[i].hitag--;
|
||||
sprite[i].extra = 150;
|
||||
spawn(i, RABBIT);
|
||||
fi.spawn(i, RABBIT);
|
||||
}
|
||||
else
|
||||
sprite[i].extra--;
|
||||
|
@ -2298,7 +2298,7 @@ static void rrra_specialstats()
|
|||
else
|
||||
{
|
||||
sprite[i].picnum = RRTILE8162 + 2;
|
||||
spawn(i, BATTERYAMMO);
|
||||
fi.spawn(i, BATTERYAMMO);
|
||||
ps[screenpeek].SlotWin |= 1;
|
||||
spritesound(52, i);
|
||||
}
|
||||
|
@ -2312,7 +2312,7 @@ static void rrra_specialstats()
|
|||
else
|
||||
{
|
||||
sprite[i].picnum = RRTILE8162 + 6;
|
||||
spawn(i, HEAVYHBOMB);
|
||||
fi.spawn(i, HEAVYHBOMB);
|
||||
ps[screenpeek].SlotWin |= 2;
|
||||
spritesound(52, i);
|
||||
}
|
||||
|
@ -2326,7 +2326,7 @@ static void rrra_specialstats()
|
|||
else
|
||||
{
|
||||
sprite[i].picnum = RRTILE8162 + 5;
|
||||
spawn(i, SIXPAK);
|
||||
fi.spawn(i, SIXPAK);
|
||||
ps[screenpeek].SlotWin |= 4;
|
||||
spritesound(52, i);
|
||||
}
|
||||
|
@ -2340,7 +2340,7 @@ static void rrra_specialstats()
|
|||
else
|
||||
{
|
||||
sprite[i].picnum = RRTILE8162 + 4;
|
||||
spawn(i, ATOMICHEALTH);
|
||||
fi.spawn(i, ATOMICHEALTH);
|
||||
ps[screenpeek].SlotWin |= 8;
|
||||
spritesound(52, i);
|
||||
}
|
||||
|
@ -2376,7 +2376,7 @@ static void rrra_specialstats()
|
|||
else
|
||||
{
|
||||
sprite[i].picnum = RRTILE8589 + 5;
|
||||
spawn(i, BATTERYAMMO);
|
||||
fi.spawn(i, BATTERYAMMO);
|
||||
ps[screenpeek].SlotWin |= 1;
|
||||
spritesound(342, i);
|
||||
}
|
||||
|
@ -2390,7 +2390,7 @@ static void rrra_specialstats()
|
|||
else
|
||||
{
|
||||
sprite[i].picnum = RRTILE8589 + 6;
|
||||
spawn(i, HEAVYHBOMB);
|
||||
fi.spawn(i, HEAVYHBOMB);
|
||||
ps[screenpeek].SlotWin |= 2;
|
||||
spritesound(342, i);
|
||||
}
|
||||
|
@ -2404,7 +2404,7 @@ static void rrra_specialstats()
|
|||
else
|
||||
{
|
||||
sprite[i].picnum = RRTILE8589 + 2;
|
||||
spawn(i, SIXPAK);
|
||||
fi.spawn(i, SIXPAK);
|
||||
ps[screenpeek].SlotWin |= 4;
|
||||
spritesound(342, i);
|
||||
}
|
||||
|
@ -2418,7 +2418,7 @@ static void rrra_specialstats()
|
|||
else
|
||||
{
|
||||
sprite[i].picnum = RRTILE8589 + 3;
|
||||
spawn(i, ATOMICHEALTH);
|
||||
fi.spawn(i, ATOMICHEALTH);
|
||||
ps[screenpeek].SlotWin |= 8;
|
||||
spritesound(342, i);
|
||||
}
|
||||
|
@ -2499,7 +2499,7 @@ void rr_specialstats()
|
|||
sprite[i].lotag--;
|
||||
if (sprite[i].lotag < 0)
|
||||
{
|
||||
j = spawn(i, RRTILE3190);
|
||||
j = fi.spawn(i, RRTILE3190);
|
||||
sprite[j].ang = sprite[i].ang;
|
||||
sprite[i].lotag = 128;
|
||||
}
|
||||
|
@ -2508,7 +2508,7 @@ void rr_specialstats()
|
|||
sprite[i].lotag--;
|
||||
if (sprite[i].lotag < 0)
|
||||
{
|
||||
j = spawn(i, RRTILE3192);
|
||||
j = fi.spawn(i, RRTILE3192);
|
||||
sprite[j].ang = sprite[i].ang;
|
||||
sprite[i].lotag = 256;
|
||||
}
|
||||
|
@ -2525,7 +2525,7 @@ void rr_specialstats()
|
|||
sprite[i].lotag--;
|
||||
if (sprite[i].lotag < 0)
|
||||
{
|
||||
j = spawn(i, RRTILE3132);
|
||||
j = fi.spawn(i, RRTILE3132);
|
||||
sprite[i].lotag = 96;
|
||||
if (!isRRRA()) spritesound(472, j);
|
||||
}
|
||||
|
@ -2534,7 +2534,7 @@ void rr_specialstats()
|
|||
sprite[i].lotag--;
|
||||
if (sprite[i].lotag < 0)
|
||||
{
|
||||
j = spawn(i, RRTILE3120);
|
||||
j = fi.spawn(i, RRTILE3120);
|
||||
sprite[j].ang = sprite[i].ang;
|
||||
sprite[i].lotag = 448;
|
||||
}
|
||||
|
@ -2543,7 +2543,7 @@ void rr_specialstats()
|
|||
sprite[i].lotag--;
|
||||
if (sprite[i].lotag < 0)
|
||||
{
|
||||
j = spawn(i, RRTILE3122);
|
||||
j = fi.spawn(i, RRTILE3122);
|
||||
sprite[j].ang = sprite[i].ang;
|
||||
sprite[i].lotag = 64;
|
||||
}
|
||||
|
@ -2552,7 +2552,7 @@ void rr_specialstats()
|
|||
sprite[i].lotag--;
|
||||
if (sprite[i].lotag < 0)
|
||||
{
|
||||
j = spawn(i, RRTILE3123);
|
||||
j = fi.spawn(i, RRTILE3123);
|
||||
sprite[j].ang = sprite[i].ang;
|
||||
sprite[i].lotag = 512;
|
||||
}
|
||||
|
@ -2561,7 +2561,7 @@ void rr_specialstats()
|
|||
sprite[i].lotag--;
|
||||
if (sprite[i].lotag < 0)
|
||||
{
|
||||
j = spawn(i, RRTILE3124);
|
||||
j = fi.spawn(i, RRTILE3124);
|
||||
sprite[j].ang = sprite[i].ang;
|
||||
sprite[i].lotag = 224;
|
||||
}
|
||||
|
@ -2665,7 +2665,7 @@ static void heavyhbomb(int i)
|
|||
if (t[2] <= 0)
|
||||
{
|
||||
spritesound(TELEPORTER, i);
|
||||
spawn(i, TRANSPORTERSTAR);
|
||||
fi.spawn(i, TRANSPORTERSTAR);
|
||||
s->cstat = 257;
|
||||
}
|
||||
return;
|
||||
|
@ -2727,7 +2727,7 @@ static void heavyhbomb(int i)
|
|||
if (t[5] == 0)
|
||||
{
|
||||
t[5] = 1;
|
||||
spawn(i, WATERSPLASH2);
|
||||
fi.spawn(i, WATERSPLASH2);
|
||||
if (isRRRA() && s->picnum == MORTER)
|
||||
s->xvel = 0;
|
||||
}
|
||||
|
@ -2811,9 +2811,9 @@ DETONATEB:
|
|||
if (sector[s->sectnum].lotag != 800)
|
||||
{
|
||||
fi.hitradius(i, m, x >> 2, x >> 1, x - (x >> 2), x);
|
||||
spawn(i, EXPLOSION2);
|
||||
fi.spawn(i, EXPLOSION2);
|
||||
if (s->picnum == CHEERBOMB)
|
||||
spawn(i, BURNING);
|
||||
fi.spawn(i, BURNING);
|
||||
spritesound(PIPEBOMB_EXPLODE, i);
|
||||
for (x = 0; x < 8; x++)
|
||||
RANDOMSCRAP(s, i);
|
||||
|
@ -2833,7 +2833,7 @@ DETONATEB:
|
|||
}
|
||||
if (s->picnum == CHEERBOMB)
|
||||
{
|
||||
spawn(i, BURNING);
|
||||
fi.spawn(i, BURNING);
|
||||
deletesprite(i);
|
||||
return;
|
||||
}
|
||||
|
@ -2876,7 +2876,7 @@ DETONATEB:
|
|||
else
|
||||
{
|
||||
t[2] = respawnitemtime;
|
||||
spawn(i, RESPAWNMARKERRED);
|
||||
fi.spawn(i, RESPAWNMARKERRED);
|
||||
s->cstat = (short)32768;
|
||||
}
|
||||
}
|
||||
|
@ -2902,7 +2902,7 @@ static int henstand(int i)
|
|||
s->lotag--;
|
||||
if (s->lotag == 0)
|
||||
{
|
||||
spawn(i, HEN);
|
||||
fi.spawn(i, HEN);
|
||||
deletesprite(i);
|
||||
return 1;
|
||||
}
|
||||
|
@ -2932,7 +2932,7 @@ static int henstand(int i)
|
|||
fi.checkhitsprite(i, j);
|
||||
if (sprite[j].picnum == HEN)
|
||||
{
|
||||
int ns = spawn(j, HENSTAND);
|
||||
int ns = fi.spawn(j, HENSTAND);
|
||||
deletesprite(j);
|
||||
sprite[ns].xvel = 32;
|
||||
sprite[ns].lotag = 40;
|
||||
|
@ -3117,7 +3117,7 @@ void moveactors_r(void)
|
|||
{
|
||||
if (sector[s->sectnum].lotag == 1)
|
||||
{
|
||||
j = spawn(i,WATERSPLASH2);
|
||||
j = fi.spawn(i,WATERSPLASH2);
|
||||
sprite[j].z = sector[sprite[j].sectnum].floorz;
|
||||
}
|
||||
deletesprite(i);
|
||||
|
@ -3132,7 +3132,7 @@ void moveactors_r(void)
|
|||
}
|
||||
else
|
||||
{
|
||||
spawn(i,BOWLINGBALLSPRITE);
|
||||
fi.spawn(i,BOWLINGBALLSPRITE);
|
||||
deletesprite(i);
|
||||
continue;
|
||||
}
|
||||
|
@ -3555,7 +3555,7 @@ void moveeffectors_r(void) //STATNUM 3
|
|||
if ((!isRRRA() || lastlevel) && hulkspawn)
|
||||
{
|
||||
hulkspawn--;
|
||||
ns = spawn(i, HULK);
|
||||
ns = fi.spawn(i, HULK);
|
||||
sprite[ns].z = sector[sprite[ns].sectnum].ceilingz;
|
||||
sprite[ns].pal = 33;
|
||||
if (!hulkspawn)
|
||||
|
@ -3565,7 +3565,7 @@ void moveeffectors_r(void) //STATNUM 3
|
|||
sprite[ns].pal = 7;
|
||||
sprite[ns].xrepeat = 80;
|
||||
sprite[ns].yrepeat = 255;
|
||||
ns = spawn(i, 296);
|
||||
ns = fi.spawn(i, 296);
|
||||
sprite[ns].cstat = 0;
|
||||
sprite[ns].cstat |= 32768;
|
||||
sprite[ns].z = sector[s->sectnum].floorz - 6144;
|
||||
|
@ -3608,7 +3608,7 @@ void moveeffectors_r(void) //STATNUM 3
|
|||
}
|
||||
}
|
||||
else pn = UFO1_RRRA;
|
||||
ns = spawn(i, pn);
|
||||
ns = fi.spawn(i, pn);
|
||||
sprite[ns].z = sector[sprite[ns].sectnum].ceilingz;
|
||||
}
|
||||
j = nextj;
|
||||
|
@ -4360,16 +4360,16 @@ void fakebubbaspawn(int g_i, int g_p)
|
|||
default:
|
||||
break;
|
||||
case 1:
|
||||
spawn(g_i, PIG);
|
||||
fi.spawn(g_i, PIG);
|
||||
break;
|
||||
case 2:
|
||||
spawn(g_i, MINION);
|
||||
fi.spawn(g_i, MINION);
|
||||
break;
|
||||
case 3:
|
||||
spawn(g_i, CHEER);
|
||||
fi.spawn(g_i, CHEER);
|
||||
break;
|
||||
case 4:
|
||||
spawn(g_i, VIXEN);
|
||||
fi.spawn(g_i, VIXEN);
|
||||
operateactivators(666, ps[g_p].i);
|
||||
break;
|
||||
}
|
||||
|
@ -4391,8 +4391,8 @@ static int fallspecial(int g_i, int g_p)
|
|||
{
|
||||
if (g_sp->picnum == ROCK)
|
||||
{
|
||||
spawn(g_i, ROCK2);
|
||||
spawn(g_i, ROCK2);
|
||||
fi.spawn(g_i, ROCK2);
|
||||
fi.spawn(g_i, ROCK2);
|
||||
addspritetodelete(g_i);
|
||||
}
|
||||
return 0;
|
||||
|
@ -4613,7 +4613,7 @@ void mamaspawn(int g_i)
|
|||
if (mamaspawn_count)
|
||||
{
|
||||
mamaspawn_count--;
|
||||
spawn(g_i, RABBIT);
|
||||
fi.spawn(g_i, RABBIT);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -52,7 +52,7 @@ void ballreturn(short spr)
|
|||
nextj = nextspritestat[j];
|
||||
if (sprite[j].picnum == RRTILE282)
|
||||
if (sprite[i].hitag == sprite[j].hitag)
|
||||
spawn(j, BOWLINGBALLSPRITE);
|
||||
fi.spawn(j, BOWLINGBALLSPRITE);
|
||||
if (sprite[j].picnum == RRTILE280)
|
||||
if (sprite[i].hitag == sprite[j].hitag)
|
||||
if (sprite[j].lotag == 0)
|
||||
|
@ -207,7 +207,7 @@ void resetpins(short sect)
|
|||
nexti = nextspritesect[i];
|
||||
if (sprite[i].picnum == 283)
|
||||
{
|
||||
j = spawn(i,3440);
|
||||
j = fi.spawn(i,3440);
|
||||
sprite[j].lotag = sprite[i].lotag;
|
||||
if (sprite[j].lotag == 3 || sprite[j].lotag == 5)
|
||||
{
|
||||
|
|
|
@ -86,6 +86,8 @@ void checktimetosleep_d(int g_i);
|
|||
void checktimetosleep_r(int g_i);
|
||||
void move_d(int g_i, int g_p, int g_x);
|
||||
void move_r(int g_i, int g_p, int g_x);
|
||||
int spawn_d(int j, int pn);
|
||||
int spawn_r(int j, int pn);
|
||||
|
||||
Dispatcher fi;
|
||||
|
||||
|
@ -122,7 +124,8 @@ void SetDispatcher()
|
|||
spawnweapondebris_d,
|
||||
respawnhitag_d,
|
||||
checktimetosleep_d,
|
||||
move_d
|
||||
move_d,
|
||||
spawn_d,
|
||||
};
|
||||
}
|
||||
else
|
||||
|
@ -157,6 +160,7 @@ void SetDispatcher()
|
|||
respawnhitag_r,
|
||||
checktimetosleep_r,
|
||||
move_r,
|
||||
spawn_r,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
@ -230,11 +230,6 @@ inline int inventory(spritetype* S)
|
|||
int32_t A_InsertSprite(int16_t whatsect, int32_t s_x, int32_t s_y, int32_t s_z, int16_t s_pn, int8_t s_s, uint8_t s_xr,
|
||||
uint8_t s_yr, int16_t s_a, int16_t s_ve, int16_t s_zv, int16_t s_ow, int16_t s_ss);
|
||||
#define EGS A_InsertSprite
|
||||
int A_Spawn(int spriteNum,int tileNum);
|
||||
inline int spawn(int s, int t)
|
||||
{
|
||||
return A_Spawn(s, t);
|
||||
}
|
||||
int G_DoMoveThings(void);
|
||||
//int32_t G_EndOfLevel(void);
|
||||
|
||||
|
@ -291,7 +286,7 @@ void OnBoat(DukePlayer_t *pPlayer, int spriteNum);
|
|||
void OffBoat(DukePlayer_t *pPlayer);
|
||||
|
||||
// Cstat protection mask for (currently) spawned MASKWALL* sprites.
|
||||
// TODO: look at more cases of cstat=(cstat&PROTECTED)|ADDED in A_Spawn()?
|
||||
// TODO: look at more cases of cstat=(cstat&PROTECTED)|ADDED in fi.spawn()?
|
||||
// 2048+(32+16)+8+4
|
||||
#define SPAWN_PROTECT_CSTAT_MASK (CSTAT_SPRITE_NOSHADE|CSTAT_SPRITE_ALIGNMENT_SLAB|CSTAT_SPRITE_XFLIP|CSTAT_SPRITE_YFLIP);
|
||||
|
||||
|
@ -452,6 +447,17 @@ extern void G_PrintCurrentMusic(void);
|
|||
|
||||
void addspritetodelete(int spnum);
|
||||
|
||||
int initspriteforspawn(int j, int pn, const std::initializer_list<int> &excludes);
|
||||
void spawninitdefault(int j, int i);
|
||||
void spawntransporter(int j, int i, bool beam);
|
||||
int spawnbloodpoolpart1(int j, int i);
|
||||
void initfootprint(int j, int i);
|
||||
void initshell(int j, int i, bool isshell);
|
||||
void initcrane(int j, int i, int CRANEPOLE);
|
||||
void initwaterdrip(int j, int i);
|
||||
int initreactor(int j, int i, bool isrecon);
|
||||
void spawneffector(int i);
|
||||
|
||||
struct Dispatcher
|
||||
{
|
||||
// sectors_?.cpp
|
||||
|
@ -484,6 +490,7 @@ struct Dispatcher
|
|||
void (*respawnhitag)(spritetype* g_sp);
|
||||
void (*checktimetosleep)(int g_i);
|
||||
void (*move)(int g_i, int g_p, int g_x);
|
||||
int (*spawn)(int j, int pn);
|
||||
|
||||
|
||||
};
|
||||
|
|
|
@ -106,7 +106,6 @@ void SortCommands()
|
|||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
#if 0
|
||||
enum
|
||||
{
|
||||
ERROR_ISAKEYWORD = 1,
|
||||
|
@ -118,13 +117,7 @@ enum
|
|||
ERROR_NOTAGAMEVAR,
|
||||
ERROR_OPENBRACKET,
|
||||
ERROR_CLOSEBRACKET,
|
||||
ERROR_NOENDSWITCH
|
||||
};
|
||||
#endif
|
||||
|
||||
enum
|
||||
{
|
||||
ERROR_PARMUNDEFINED = 20,
|
||||
ERROR_NOENDSWITCH,
|
||||
};
|
||||
|
||||
void ReportError(int iError)
|
||||
|
@ -1607,7 +1600,7 @@ int parsecommand()
|
|||
max_ammo_amount[8] = parseone();
|
||||
max_ammo_amount[9] = parseone();
|
||||
max_ammo_amount[11] = parseone();
|
||||
if (isRR()) max_ammo_amount[12] = parseone();
|
||||
if (isRR() || isWorldTour()) max_ammo_amount[12] = parseone();
|
||||
camerashitable = parseone();
|
||||
numfreezebounces = parseone();
|
||||
freezerhurtowner = parseone();
|
||||
|
|
|
@ -75,37 +75,9 @@ typedef struct {
|
|||
|
||||
extern char const * VM_GetKeywordForID(int32_t id);
|
||||
|
||||
enum ScriptError_t
|
||||
{
|
||||
ERROR_CLOSEBRACKET,
|
||||
ERROR_EXCEEDSMAXTILES,
|
||||
ERROR_EXPECTEDKEYWORD,
|
||||
ERROR_FOUNDWITHIN,
|
||||
ERROR_ISAKEYWORD,
|
||||
ERROR_OPENBRACKET,
|
||||
ERROR_NOTAGAMEVAR,
|
||||
ERROR_PARAMUNDEFINED,
|
||||
ERROR_SYNTAXERROR,
|
||||
ERROR_VARREADONLY,
|
||||
ERROR_VARTYPEMISMATCH,
|
||||
WARNING_BADGAMEVAR,
|
||||
WARNING_DUPLICATEDEFINITION,
|
||||
WARNING_LABELSONLY,
|
||||
WARNING_VARMASKSKEYWORD,
|
||||
|
||||
ERROR_COULDNOTFIND,
|
||||
ERROR_NOTAGAMEDEF,
|
||||
ERROR_NOENDSWITCH
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
};
|
||||
|
||||
|
||||
#include "concmd.h"
|
||||
|
||||
// KEEPINSYNC with the keyword list in lunatic/con_lang.lua
|
||||
|
||||
END_DUKE_NS
|
||||
|
||||
|
|
|
@ -848,7 +848,7 @@ int parse(void)
|
|||
case concmd_spawn:
|
||||
insptr++;
|
||||
if(g_sp->sectnum >= 0 && g_sp->sectnum < MAXSECTORS)
|
||||
spawn(g_i,*insptr);
|
||||
fi.spawn(g_i,*insptr);
|
||||
insptr++;
|
||||
break;
|
||||
case concmd_ifwasweapon:
|
||||
|
|
|
@ -217,11 +217,11 @@ inline int32_t G_DefaultActorHealth(int spriteNum) // rename!
|
|||
G_EXTERN vec2_t g_origins[MAXANIMPOINTS];
|
||||
struct msx_
|
||||
{
|
||||
int operator[](int v) { return g_origins[v].x; }
|
||||
int &operator[](int v) { return g_origins[v].x; }
|
||||
};
|
||||
struct msy_
|
||||
{
|
||||
int operator[](int v) { return g_origins[v].y; }
|
||||
int &operator[](int v) { return g_origins[v].y; }
|
||||
};
|
||||
G_EXTERN msx_ msx;
|
||||
G_EXTERN msy_ msy;
|
||||
|
@ -231,7 +231,7 @@ G_EXTERN int16_t fakebubba_spawn, mamaspawn_count, banjosound, g_bellTime, g_bel
|
|||
#define BellTime g_bellTime
|
||||
#define word_119BE0 g_bellSprite
|
||||
G_EXTERN uint8_t g_spriteExtra[MAXSPRITES], g_sectorExtra[MAXSECTORS]; // move these back into the base structs!
|
||||
G_EXTERN uint8_t enemysizecheat, ufospawnsminion, pistonsound, g_chickenWeaponTimer, RRRA_ExitedLevel, RRRA_EndEpisode, g_fogType;
|
||||
G_EXTERN uint8_t enemysizecheat, ufospawnsminion, pistonsound, g_chickenWeaponTimer, RRRA_ExitedLevel, RRRA_EndEpisode, fogactive;
|
||||
G_EXTERN int32_t g_cdTrack;
|
||||
#define raat607 enemysizecheat // only as a reminder
|
||||
|
||||
|
|
|
@ -764,6 +764,7 @@ enum
|
|||
DEVELOPERCOMMENTARY = 5294,
|
||||
BOSS5 = 5310,
|
||||
BOSS5STAYPUT = 5311,
|
||||
SERIOUSSAM = 5846
|
||||
};
|
||||
|
||||
END_DUKE_NS
|
||||
|
|
|
@ -3585,6 +3585,7 @@ enum dukeweapon_t_alt
|
|||
FREEZE_WEAPON,
|
||||
HANDREMOTE_WEAPON, // 10
|
||||
GROW_WEAPON,
|
||||
FLAMETHROWER_WEAPON, // World Tour
|
||||
|
||||
MIN_WEAPON = 0,
|
||||
MAX_WEAPON = 9
|
||||
|
|
|
@ -43,7 +43,7 @@ void P_ResetWeapons(int playerNum);
|
|||
void G_ClearFIFO(void);
|
||||
void G_ResetInterpolations(void);
|
||||
extern int32_t fragbarheight(void);
|
||||
void G_SetFog(int fogtype);
|
||||
void setmapfog(int fogtype);
|
||||
void G_InitRRRASkies(void);
|
||||
|
||||
END_DUKE_NS
|
||||
|
|
|
@ -196,7 +196,7 @@ void operaterespawns_d(int low)
|
|||
case RESPAWN:
|
||||
if (badguypic(sprite[i].hitag) && ud.monsters_off) break;
|
||||
|
||||
j = spawn(i, TRANSPORTERSTAR);
|
||||
j = fi.spawn(i, TRANSPORTERSTAR);
|
||||
sprite[j].z -= (32 << 8);
|
||||
|
||||
sprite[i].extra = 66 - 12; // Just a way to killit
|
||||
|
@ -1053,7 +1053,7 @@ void checkhitsprite_d(int i, int sn)
|
|||
case OCEANSPRITE3:
|
||||
case OCEANSPRITE4:
|
||||
case OCEANSPRITE5:
|
||||
spawn(i, SMALLSMOKE);
|
||||
fi.spawn(i, SMALLSMOKE);
|
||||
deletesprite(i);
|
||||
break;
|
||||
case QUEBALL:
|
||||
|
@ -1096,7 +1096,7 @@ void checkhitsprite_d(int i, int sn)
|
|||
{
|
||||
sprite[i].cstat &= ~257;
|
||||
hittype[i].temp_data[0] = 1;
|
||||
spawn(i, BURNING);
|
||||
fi.spawn(i, BURNING);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -1149,7 +1149,7 @@ void checkhitsprite_d(int i, int sn)
|
|||
case WATERFOUNTAIN + 2:
|
||||
case WATERFOUNTAIN + 3:
|
||||
sprite[i].picnum = WATERFOUNTAINBROKE;
|
||||
spawn(i, TOILETWATER);
|
||||
fi.spawn(i, TOILETWATER);
|
||||
break;
|
||||
case SATELITE:
|
||||
case FUELPOD:
|
||||
|
@ -1160,7 +1160,7 @@ void checkhitsprite_d(int i, int sn)
|
|||
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,
|
||||
krand() & 2047, (krand() & 127) + 64, -(krand() & 511) - 256, i, 5);
|
||||
spawn(i, EXPLOSION2);
|
||||
fi.spawn(i, EXPLOSION2);
|
||||
deletesprite(i);
|
||||
}
|
||||
break;
|
||||
|
@ -1236,7 +1236,7 @@ void checkhitsprite_d(int i, int sn)
|
|||
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] ++;
|
||||
spawn(i, EXPLOSION2);
|
||||
fi.spawn(i, EXPLOSION2);
|
||||
break;
|
||||
|
||||
case BROKEHYDROPLANT:
|
||||
|
@ -1253,7 +1253,7 @@ void checkhitsprite_d(int i, int sn)
|
|||
sprite[i].picnum = TOILETBROKE;
|
||||
sprite[i].cstat |= (krand() & 1) << 2;
|
||||
sprite[i].cstat &= ~257;
|
||||
spawn(i, TOILETWATER);
|
||||
fi.spawn(i, TOILETWATER);
|
||||
spritesound(GLASS_BREAKING, i);
|
||||
break;
|
||||
|
||||
|
@ -1261,13 +1261,13 @@ void checkhitsprite_d(int i, int sn)
|
|||
sprite[i].picnum = STALLBROKE;
|
||||
sprite[i].cstat |= (krand() & 1) << 2;
|
||||
sprite[i].cstat &= ~257;
|
||||
spawn(i, TOILETWATER);
|
||||
fi.spawn(i, TOILETWATER);
|
||||
spritesound(GLASS_HEAVYBREAK, i);
|
||||
break;
|
||||
|
||||
case HYDRENT:
|
||||
sprite[i].picnum = BROKEFIREHYDRENT;
|
||||
spawn(i, TOILETWATER);
|
||||
fi.spawn(i, TOILETWATER);
|
||||
|
||||
// for(k=0;k<5;k++)
|
||||
// {
|
||||
|
@ -1315,7 +1315,7 @@ void checkhitsprite_d(int i, int sn)
|
|||
case PIPE6:sprite[i].picnum = PIPE6B; break;
|
||||
}
|
||||
|
||||
j = spawn(i, STEAM);
|
||||
j = fi.spawn(i, STEAM);
|
||||
sprite[j].z = sector[sprite[i].sectnum].floorz - (32 << 8);
|
||||
break;
|
||||
|
||||
|
@ -1324,7 +1324,7 @@ void checkhitsprite_d(int i, int sn)
|
|||
case INDY:
|
||||
case JURYGUY:
|
||||
spritesound(sprite[i].lotag, i);
|
||||
spawn(i, sprite[i].hitag);
|
||||
fi.spawn(i, sprite[i].hitag);
|
||||
case SPACEMARINE:
|
||||
sprite[i].extra -= sprite[sn].extra;
|
||||
if (sprite[i].extra > 0) break;
|
||||
|
@ -1389,7 +1389,7 @@ void checkhitsprite_d(int i, int sn)
|
|||
if (sprite[sn].picnum != FREEZEBLAST)
|
||||
//if (actortype[sprite[i].picnum] == 0) //TRANSITIONAL. Cannot be done right with EDuke mess backing the engine.
|
||||
{
|
||||
j = spawn(sn, JIBS6);
|
||||
j = fi.spawn(sn, JIBS6);
|
||||
if (sprite[sn].pal == 6)
|
||||
sprite[j].pal = 6;
|
||||
sprite[j].z += (4 << 8);
|
||||
|
|
|
@ -311,7 +311,7 @@ void operaterespawns_r(int low)
|
|||
case RESPAWN:
|
||||
if (badguypic(sprite[i].hitag) && ud.monsters_off) break;
|
||||
|
||||
j = spawn(i, TRANSPORTERSTAR);
|
||||
j = fi.spawn(i, TRANSPORTERSTAR);
|
||||
sprite[j].z -= (32 << 8);
|
||||
|
||||
sprite[i].extra = 66 - 12; // Just a way to killit
|
||||
|
@ -2096,7 +2096,7 @@ void checkhitsprite_r(int i, int sn)
|
|||
{
|
||||
sprite[i].cstat &= ~257;
|
||||
hittype[i].temp_data[0] = 1;
|
||||
spawn(i, BURNING);
|
||||
fi.spawn(i, BURNING);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -2144,7 +2144,7 @@ void checkhitsprite_r(int i, int sn)
|
|||
case WATERFOUNTAIN + 1:
|
||||
case WATERFOUNTAIN + 2:
|
||||
case WATERFOUNTAIN + 3:
|
||||
spawn(i, TOILETWATER);
|
||||
fi.spawn(i, TOILETWATER);
|
||||
break;
|
||||
case SATELITE:
|
||||
case FUELPOD:
|
||||
|
@ -2155,7 +2155,7 @@ void checkhitsprite_r(int i, int sn)
|
|||
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,
|
||||
krand() & 2047, (krand() & 127) + 64, -(krand() & 511) - 256, i, 5);
|
||||
spawn(i, EXPLOSION2);
|
||||
fi.spawn(i, EXPLOSION2);
|
||||
deletesprite(i);
|
||||
}
|
||||
break;
|
||||
|
@ -2217,13 +2217,13 @@ void checkhitsprite_r(int i, int sn)
|
|||
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] ++;
|
||||
spawn(i, EXPLOSION2);
|
||||
fi.spawn(i, EXPLOSION2);
|
||||
break;
|
||||
case TOILET:
|
||||
sprite[i].picnum = TOILETBROKE;
|
||||
sprite[i].cstat |= (krand() & 1) << 2;
|
||||
sprite[i].cstat &= ~257;
|
||||
spawn(i, TOILETWATER);
|
||||
fi.spawn(i, TOILETWATER);
|
||||
spritesound(GLASS_BREAKING, i);
|
||||
break;
|
||||
|
||||
|
@ -2231,13 +2231,13 @@ void checkhitsprite_r(int i, int sn)
|
|||
sprite[i].picnum = STALLBROKE;
|
||||
sprite[i].cstat |= (krand() & 1) << 2;
|
||||
sprite[i].cstat &= ~257;
|
||||
spawn(i, TOILETWATER);
|
||||
fi.spawn(i, TOILETWATER);
|
||||
spritesound(GLASS_HEAVYBREAK, i);
|
||||
break;
|
||||
|
||||
case HYDRENT:
|
||||
sprite[i].picnum = BROKEFIREHYDRENT;
|
||||
spawn(i, TOILETWATER);
|
||||
fi.spawn(i, TOILETWATER);
|
||||
|
||||
// for(k=0;k<5;k++)
|
||||
// {
|
||||
|
@ -2275,7 +2275,7 @@ void checkhitsprite_r(int i, int sn)
|
|||
case PIPE6:sprite[i].picnum = PIPE6B; break;
|
||||
}
|
||||
|
||||
j = spawn(i, STEAM);
|
||||
j = fi.spawn(i, STEAM);
|
||||
sprite[j].z = sector[sprite[i].sectnum].floorz - (32 << 8);
|
||||
break;
|
||||
|
||||
|
@ -2315,7 +2315,7 @@ void checkhitsprite_r(int i, int sn)
|
|||
if (sprite[sn].picnum != FREEZEBLAST)
|
||||
//if (actortype[sprite[i].picnum] == 0) //TRANSITIONAL. Cannot be done right with EDuke mess backing the engine.
|
||||
{
|
||||
j = spawn(sn, JIBS6);
|
||||
j = fi.spawn(sn, JIBS6);
|
||||
if (sprite[sn].pal == 6)
|
||||
sprite[j].pal = 6;
|
||||
sprite[j].z += (4 << 8);
|
||||
|
|
1000
source/games/duke/src/spawn.cpp
Normal file
1000
source/games/duke/src/spawn.cpp
Normal file
File diff suppressed because it is too large
Load diff
1155
source/games/duke/src/spawn_d.cpp
Normal file
1155
source/games/duke/src/spawn_d.cpp
Normal file
File diff suppressed because it is too large
Load diff
1492
source/games/duke/src/spawn_r.cpp
Normal file
1492
source/games/duke/src/spawn_r.cpp
Normal file
File diff suppressed because it is too large
Load diff
|
@ -96,7 +96,7 @@ void A_SpawnMultiple(int spriteNum, int tileNum, int spawnCnt)
|
|||
int32_t const r1 = krand2(), r2 = krand2();
|
||||
int const j = A_InsertSprite(pSprite->sectnum, pSprite->x, pSprite->y, pSprite->z - (r2 % (47 << 8)), tileNum, -32, 8,
|
||||
8, r1 & 2047, 0, 0, spriteNum, 5);
|
||||
//A_Spawn(-1, j);
|
||||
//fi.spawn(-1, j);
|
||||
sprite[j].cstat = krand2()&12;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -824,7 +824,7 @@ void G_DoCheats(void)
|
|||
case CHEAT_RAKFC:
|
||||
for (int i = 0; i < 7; i++)
|
||||
{
|
||||
int const newSprite = A_Spawn(pPlayer->i, TILE_HEN);
|
||||
int const newSprite = fi.spawn(pPlayer->i, TILE_HEN);
|
||||
sprite[newSprite].pal = 1;
|
||||
sprite[newSprite].xrepeat <<= 2;
|
||||
sprite[newSprite].yrepeat <<= 2;
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -302,7 +302,7 @@ static int osdcmd_spawn(CCmdFuncPtr parm)
|
|||
return OSDCMD_SHOWHELP;
|
||||
}
|
||||
|
||||
idx = A_Spawn(g_player[myconnectindex].ps->i, picnum);
|
||||
idx = fi.spawn(g_player[myconnectindex].ps->i, picnum);
|
||||
if (set & 1) sprite[idx].pal = (uint8_t)pal;
|
||||
if (set & 2) sprite[idx].cstat = (int16_t)cstat;
|
||||
if (set & 4) sprite[idx].ang = ang;
|
||||
|
|
|
@ -628,7 +628,7 @@ growspark_rr:
|
|||
|
||||
if (hitwal->hitag == 0)
|
||||
{
|
||||
int const spawnedSprite = A_Spawn(spriteNum, projecTile);
|
||||
int const spawnedSprite = fi.spawn(spriteNum, projecTile);
|
||||
sprite[spawnedSprite].xvel = -12;
|
||||
sprite[spawnedSprite].ang
|
||||
= (getangle(hitwal->x - wall[hitwal->point2].x, hitwal->y - wall[hitwal->point2].y) + 512) & 2047;
|
||||
|
@ -657,7 +657,7 @@ growspark_rr:
|
|||
|
||||
if (playerNum >= 0)
|
||||
{
|
||||
int k = A_Spawn(kneeSprite, TILE_SMALLSMOKE);
|
||||
int k = fi.spawn(kneeSprite, TILE_SMALLSMOKE);
|
||||
sprite[k].z -= ZOFFSET3;
|
||||
if (!RR || projecTile == TILE_KNEE)
|
||||
A_PlaySound(KICK_HIT, kneeSprite);
|
||||
|
@ -688,7 +688,7 @@ growspark_rr:
|
|||
}
|
||||
else if(playerNum >= 0 && hitData.pos.z > 0 && sector[hitData.sect].lotag == 1)
|
||||
{
|
||||
int splashSprite = A_Spawn(pPlayer->i, TILE_WATERSPLASH2);
|
||||
int splashSprite = fi.spawn(pPlayer->i, TILE_WATERSPLASH2);
|
||||
sprite[splashSprite].x = hitData.pos.x;
|
||||
sprite[splashSprite].y = hitData.pos.y;
|
||||
sprite[splashSprite].ang = fix16_to_int(pPlayer->q16ang); // Total tweek
|
||||
|
@ -745,7 +745,7 @@ growspark_rr:
|
|||
}
|
||||
|
||||
if (!RR || sector[hitData.sect].lotag != ST_1_ABOVE_WATER)
|
||||
A_Spawn(spawnedSprite, TILE_SMALLSMOKE);
|
||||
fi.spawn(spawnedSprite, TILE_SMALLSMOKE);
|
||||
}
|
||||
|
||||
if (hitData.sprite >= 0)
|
||||
|
@ -758,7 +758,7 @@ growspark_rr:
|
|||
(ud.ffire == 1 || (!GTFLAGS(GAMETYPE_PLAYERSFRIENDLY) && GTFLAGS(GAMETYPE_TDM) &&
|
||||
g_player[P_Get(hitData.sprite)].ps->team != g_player[P_Get(spriteNum)].ps->team)))
|
||||
{
|
||||
int jibSprite = A_Spawn(spawnedSprite, TILE_JIBS6);
|
||||
int jibSprite = fi.spawn(spawnedSprite, TILE_JIBS6);
|
||||
|
||||
sprite[spawnedSprite].xrepeat = sprite[spawnedSprite].yrepeat = 0;
|
||||
sprite[jibSprite].z += ZOFFSET6;
|
||||
|
@ -768,7 +768,7 @@ growspark_rr:
|
|||
}
|
||||
else
|
||||
{
|
||||
A_Spawn(spawnedSprite, TILE_SMALLSMOKE);
|
||||
fi.spawn(spawnedSprite, TILE_SMALLSMOKE);
|
||||
}
|
||||
|
||||
if (playerNum >= 0 && CheckShootSwitchTile(sprite[hitData.sprite].picnum))
|
||||
|
@ -781,7 +781,7 @@ growspark_rr:
|
|||
{
|
||||
uwalltype const * const hitWall = (uwalltype *)&wall[hitData.wall];
|
||||
|
||||
A_Spawn(spawnedSprite, TILE_SMALLSMOKE);
|
||||
fi.spawn(spawnedSprite, TILE_SMALLSMOKE);
|
||||
|
||||
if (fi.isadoorwall(hitWall->picnum) == 1)
|
||||
goto SKIPBULLETHOLE;
|
||||
|
@ -811,7 +811,7 @@ growspark_rr:
|
|||
if (sprite[decalSprite].picnum == TILE_BULLETHOLE && dist(&sprite[decalSprite], &sprite[spawnedSprite]) < (12 + (krand2() & 7)))
|
||||
goto SKIPBULLETHOLE;
|
||||
|
||||
decalSprite = A_Spawn(spawnedSprite, TILE_BULLETHOLE);
|
||||
decalSprite = fi.spawn(spawnedSprite, TILE_BULLETHOLE);
|
||||
|
||||
sprite[decalSprite].xvel = -1;
|
||||
sprite[decalSprite].ang
|
||||
|
@ -835,7 +835,7 @@ growspark_rr:
|
|||
{
|
||||
fi.checkhitsprite(hitData.sprite, spawnedSprite);
|
||||
if (sprite[hitData.sprite].picnum != TILE_APLAYER)
|
||||
A_Spawn(spawnedSprite, TILE_SMALLSMOKE);
|
||||
fi.spawn(spawnedSprite, TILE_SMALLSMOKE);
|
||||
else
|
||||
{
|
||||
sprite[spawnedSprite].xrepeat = 0;
|
||||
|
@ -855,7 +855,7 @@ growspark_rr:
|
|||
case TRIPBOMBSPRITE__STATIC:
|
||||
{
|
||||
if (!RR) break;
|
||||
int const newSprite = A_Spawn(spriteNum, projecTile);
|
||||
int const newSprite = fi.spawn(spriteNum, projecTile);
|
||||
sprite[newSprite].xvel = 32;
|
||||
sprite[newSprite].ang = sprite[spriteNum].ang;
|
||||
sprite[newSprite].z -= (5<<8);
|
||||
|
@ -864,7 +864,7 @@ growspark_rr:
|
|||
|
||||
case BOWLINGBALL__STATICRR:
|
||||
{
|
||||
int const newSprite = A_Spawn(spriteNum, projecTile);
|
||||
int const newSprite = fi.spawn(spriteNum, projecTile);
|
||||
sprite[newSprite].xvel = 250;
|
||||
sprite[newSprite].ang = sprite[spriteNum].ang;
|
||||
sprite[newSprite].z -= (15<<8);
|
||||
|
@ -1717,7 +1717,7 @@ static void P_DoWeaponSpawn(int playerNum)
|
|||
if (PWEAPON(playerNum, pPlayer->curr_weapon, Spawn) <= 0) // <=0 : AMC TC beta/RC2 has WEAPONx_SPAWN -1
|
||||
return;
|
||||
|
||||
int newSprite = A_Spawn(pPlayer->i, PWEAPON(playerNum, pPlayer->curr_weapon, Spawn));
|
||||
int newSprite = fi.spawn(pPlayer->i, PWEAPON(playerNum, pPlayer->curr_weapon, Spawn));
|
||||
|
||||
if ((PWEAPON(playerNum, pPlayer->curr_weapon, Flags) & WEAPON_SPAWNTYPE2))
|
||||
{
|
||||
|
@ -4602,7 +4602,7 @@ void checkweapons(DukePlayer_t* const pPlayer)
|
|||
{
|
||||
if (pPlayer->OnMotorcycle)
|
||||
{
|
||||
int const newSprite = A_Spawn(pPlayer->i, TILE_EMPTYBIKE);
|
||||
int const newSprite = fi.spawn(pPlayer->i, TILE_EMPTYBIKE);
|
||||
sprite[newSprite].ang = fix16_to_int(pPlayer->q16ang);
|
||||
sprite[newSprite].owner = pPlayer->ammo_amount[MOTORCYCLE_WEAPON];
|
||||
pPlayer->OnMotorcycle = 0;
|
||||
|
@ -4618,7 +4618,7 @@ void checkweapons(DukePlayer_t* const pPlayer)
|
|||
}
|
||||
else if (pPlayer->OnBoat)
|
||||
{
|
||||
int const newSprite = A_Spawn(pPlayer->i, TILE_EMPTYBOAT);
|
||||
int const newSprite = fi.spawn(pPlayer->i, TILE_EMPTYBOAT);
|
||||
sprite[newSprite].ang = fix16_to_int(pPlayer->q16ang);
|
||||
sprite[newSprite].owner = pPlayer->ammo_amount[BOAT_WEAPON];
|
||||
pPlayer->OnBoat = 0;
|
||||
|
@ -4638,7 +4638,7 @@ void checkweapons(DukePlayer_t* const pPlayer)
|
|||
return;
|
||||
|
||||
if (krand2() & 1)
|
||||
A_Spawn(pPlayer->i, WeaponPickupSprites[currentWeapon]);
|
||||
fi.spawn(pPlayer->i, WeaponPickupSprites[currentWeapon]);
|
||||
else
|
||||
switch (DYNAMICWEAPONMAP(currentWeapon))
|
||||
{
|
||||
|
@ -4646,7 +4646,7 @@ void checkweapons(DukePlayer_t* const pPlayer)
|
|||
if (!RRRA) break;
|
||||
fallthrough__;
|
||||
case RPG_WEAPON__STATIC:
|
||||
case HANDBOMB_WEAPON__STATIC: A_Spawn(pPlayer->i, TILE_EXPLOSION2); break;
|
||||
case HANDBOMB_WEAPON__STATIC: fi.spawn(pPlayer->i, TILE_EXPLOSION2); break;
|
||||
}
|
||||
|
||||
if (RR)
|
||||
|
@ -4655,7 +4655,7 @@ void checkweapons(DukePlayer_t* const pPlayer)
|
|||
{
|
||||
if (pPlayer->keys[key] == 1)
|
||||
{
|
||||
int const newSprite = A_Spawn(pPlayer->i, TILE_ACCESSCARD);
|
||||
int const newSprite = fi.spawn(pPlayer->i, TILE_ACCESSCARD);
|
||||
switch (key)
|
||||
{
|
||||
case 1:
|
||||
|
@ -5526,7 +5526,7 @@ static void P_ProcessWeapon(int playerNum)
|
|||
|
||||
if (((*weaponFrame) % 3) == 0)
|
||||
{
|
||||
spriteNum = A_Spawn(pPlayer->i, TILE_SHELL);
|
||||
spriteNum = fi.spawn(pPlayer->i, TILE_SHELL);
|
||||
|
||||
sprite[spriteNum].ang += 1024;
|
||||
sprite[spriteNum].ang &= 2047;
|
||||
|
@ -6131,7 +6131,7 @@ static void P_ProcessWeapon(int playerNum)
|
|||
}
|
||||
else if ((*weaponFrame) == 2)
|
||||
{
|
||||
A_Spawn(pPlayer->i, TILE_SHELL);
|
||||
fi.spawn(pPlayer->i, TILE_SHELL);
|
||||
}
|
||||
|
||||
if (++(*weaponFrame) >= 5)
|
||||
|
@ -6195,7 +6195,7 @@ static void P_ProcessWeapon(int playerNum)
|
|||
pPlayer->kickback_pic++;
|
||||
break;
|
||||
case 24:
|
||||
spriteNum = A_Spawn(pPlayer->i, TILE_SHOTGUNSHELL);
|
||||
spriteNum = fi.spawn(pPlayer->i, TILE_SHOTGUNSHELL);
|
||||
sprite[spriteNum].ang += 1024;
|
||||
A_SetSprite(spriteNum, CLIPMASK0);
|
||||
sprite[spriteNum].ang += 1024;
|
||||
|
@ -6216,7 +6216,7 @@ static void P_ProcessWeapon(int playerNum)
|
|||
|
||||
if (((*weaponFrame) % 3) == 0)
|
||||
{
|
||||
spriteNum = A_Spawn(pPlayer->i, TILE_SHELL);
|
||||
spriteNum = fi.spawn(pPlayer->i, TILE_SHELL);
|
||||
|
||||
sprite[spriteNum].ang += 1024;
|
||||
sprite[spriteNum].ang &= 2047;
|
||||
|
@ -6620,7 +6620,7 @@ static void P_DoWater(int const playerNum, int const playerBits, int const floor
|
|||
|
||||
if (pPlayer->scuba_on && (krand2()&255) < 8)
|
||||
{
|
||||
int const spriteNum = A_Spawn(pPlayer->i, TILE_WATERBUBBLE);
|
||||
int const spriteNum = fi.spawn(pPlayer->i, TILE_WATERBUBBLE);
|
||||
int const q16ang = fix16_to_int(pPlayer->q16ang);
|
||||
|
||||
sprite[spriteNum].x += sintable[(q16ang + 512 + 64 - (g_globalRandom & 128)+(RR ? 128 : 0)) & 2047] >> 6;
|
||||
|
@ -7705,7 +7705,7 @@ check_enemy_sprite:
|
|||
if (pPlayer->on_ground == 1)
|
||||
{
|
||||
if (pPlayer->dummyplayersprite < 0)
|
||||
pPlayer->dummyplayersprite = A_Spawn(pPlayer->i,TILE_PLAYERONWATER);
|
||||
pPlayer->dummyplayersprite = fi.spawn(pPlayer->i,TILE_PLAYERONWATER);
|
||||
|
||||
pPlayer->footprintcount = 6;
|
||||
//sprite[pPlayer->dummyplayersprite].cstat |= 32768;
|
||||
|
@ -7753,10 +7753,10 @@ check_enemy_sprite:
|
|||
{
|
||||
switch (krand2() & 3)
|
||||
{
|
||||
case 0: spriteNum = A_Spawn(pPlayer->i, TILE_FOOTPRINTS); break;
|
||||
case 1: spriteNum = A_Spawn(pPlayer->i, TILE_FOOTPRINTS2); break;
|
||||
case 2: spriteNum = A_Spawn(pPlayer->i, TILE_FOOTPRINTS3); break;
|
||||
default: spriteNum = A_Spawn(pPlayer->i, TILE_FOOTPRINTS4); break;
|
||||
case 0: spriteNum = fi.spawn(pPlayer->i, TILE_FOOTPRINTS); break;
|
||||
case 1: spriteNum = fi.spawn(pPlayer->i, TILE_FOOTPRINTS2); break;
|
||||
case 2: spriteNum = fi.spawn(pPlayer->i, TILE_FOOTPRINTS3); break;
|
||||
default: spriteNum = fi.spawn(pPlayer->i, TILE_FOOTPRINTS4); break;
|
||||
}
|
||||
sprite[spriteNum].pal = pPlayer->footprintpal;
|
||||
sprite[spriteNum].shade = pPlayer->footprintshade;
|
||||
|
@ -8598,7 +8598,7 @@ HORIZONLY:;
|
|||
dist(&sprite[pPlayer->i], &sprite[pPlayer->actorsqu]) < 1400)
|
||||
{
|
||||
A_DoGuts(pPlayer->actorsqu, TILE_JIBS6, 7);
|
||||
A_Spawn(pPlayer->actorsqu, TILE_BLOODPOOL);
|
||||
fi.spawn(pPlayer->actorsqu, TILE_BLOODPOOL);
|
||||
A_PlaySound(SQUISHED, pPlayer->actorsqu);
|
||||
switch (DYNAMICTILEMAP(sprite[pPlayer->actorsqu].picnum))
|
||||
{
|
||||
|
|
|
@ -1261,8 +1261,8 @@ static void prelevel(char g)
|
|||
|
||||
if (RRRA)
|
||||
{
|
||||
G_SetFog(0);
|
||||
g_fogType = 0;
|
||||
setmapfog(0);
|
||||
fogactive = 0;
|
||||
ufospawnsminion = 0;
|
||||
pistonsound = 0;
|
||||
enemysizecheat = 0;
|
||||
|
@ -1578,14 +1578,14 @@ static void prelevel(char g)
|
|||
for (size_t i = 0; i < MAXSPRITES; i++)
|
||||
{
|
||||
if (sprite[i].statnum < MAXSTATUS && (DEER || PN(i) != TILE_SECTOREFFECTOR || SLT(i) != SE_14_SUBWAY_CAR))
|
||||
A_Spawn(-1, i);
|
||||
fi.spawn(-1, i);
|
||||
}
|
||||
|
||||
if (!DEER)
|
||||
for (size_t i = 0; i < MAXSPRITES; i++)
|
||||
{
|
||||
if (sprite[i].statnum < MAXSTATUS && PN(i) == TILE_SECTOREFFECTOR && SLT(i) == SE_14_SUBWAY_CAR)
|
||||
A_Spawn(-1, i);
|
||||
fi.spawn(-1, i);
|
||||
if (RR && sprite[i].picnum == TILE_RRTILE19)
|
||||
A_DeleteSprite(i);
|
||||
if (RR && sprite[i].picnum == TILE_RRTILE34)
|
||||
|
@ -2460,7 +2460,7 @@ int G_EnterLevel(int gameMode)
|
|||
return 0;
|
||||
}
|
||||
|
||||
void G_SetFog(int fogtype)
|
||||
void setmapfog(int fogtype)
|
||||
{
|
||||
GLInterface.SetMapFog(fogtype != 0);
|
||||
}
|
||||
|
|
|
@ -906,7 +906,7 @@ static const dataspec_t svgm_anmisc[] =
|
|||
{ 0, &g_chickenWeaponTimer, sizeof(g_chickenWeaponTimer), 1 },
|
||||
{ 0, &RRRA_ExitedLevel, sizeof(RRRA_ExitedLevel), 1 },
|
||||
{ 0, &RRRA_EndEpisode, sizeof(RRRA_EndEpisode), 1 },
|
||||
{ 0, &g_fogType, sizeof(g_fogType), 1 },
|
||||
{ 0, &fogactive, sizeof(fogactive), 1 },
|
||||
{ DS_LOADFN, (void *)sv_rrrafog, 0, 1 },
|
||||
|
||||
{ DS_SAVEFN, (void *)&sv_restsave, 0, 1 },
|
||||
|
@ -1403,7 +1403,7 @@ int32_t sv_updatestate(int32_t frominit)
|
|||
|
||||
static void sv_rrrafog()
|
||||
{
|
||||
G_SetFog(g_fogType ? 2 : 0);
|
||||
setmapfog(fogactive ? 2 : 0);
|
||||
}
|
||||
|
||||
static void postloadplayer(int32_t savegamep)
|
||||
|
|
Loading…
Reference in a new issue