- processfluid

This commit is contained in:
Christoph Oelckers 2021-11-13 23:44:37 +01:00
parent 290d539200
commit fc90343673
24 changed files with 86 additions and 86 deletions

View file

@ -539,7 +539,7 @@ void aisearch(PLAYER& plr, short i, boolean fly) {
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(actor);
processfluid(i, zr_florhit, fly);
processfluid(actor, zr_florhit, fly);
SetActorPos(actor, &spr.pos);
}
@ -579,22 +579,21 @@ int checkfluid(int i, int zr_florhit) {
return TYPENONE;
}
void processfluid(int i, int zr_florhit, boolean fly) {
auto actor = &whActors[i];
void processfluid(DWHActor* actor, int zr_florhit, boolean fly) {
SPRITE& spr = actor->s();
switch (checkfluid(i, zr_florhit)) {
switch (checkfluid(actor->GetSpriteIndex(), zr_florhit)) {
case TYPELAVA:
if (!fly) {
spr.z += tileHeight(spr.picnum) << 5;
trailingsmoke(actor,true);
makemonstersplash(LAVASPLASH, i);
makemonstersplash(LAVASPLASH, actor->GetSpriteIndex());
}
break;
case TYPEWATER:
if (!fly) {
spr.z += tileHeight(spr.picnum) << 5;
if (krand() % 100 > 60)
makemonstersplash(SPLASHAROO, i);
makemonstersplash(SPLASHAROO, actor->GetSpriteIndex());
}
break;
}

View file

@ -125,7 +125,7 @@ int aifly(short i);
void aisearch(PLAYER& plr, short i, boolean fly);
boolean checksector6(DWHActor* i);
int checkfluid(int i, int zr_florhit);
void processfluid(int i, int zr_florhit, boolean fly);
void processfluid(DWHActor* i, int zr_florhit, boolean fly);
void castspell(PLAYER& plr, int i);
void skullycastspell(PLAYER& plr, int i);
void attack(PLAYER& plr, int i);

View file

@ -55,7 +55,7 @@ static void chasedemon(PLAYER& plr, DWHActor* actor)
checksector6(actor);
processfluid(i, zr_florhit, true);
processfluid(actor, zr_florhit, true);
if (sector[osectnum].lotag == KILLSECTOR && spr.z + (8 << 8) >= sector[osectnum].floorz) {
spr.hitag--;
@ -186,7 +186,7 @@ static void fleedemon(PLAYER& plr, DWHActor* actor)
if (checksector6(actor))
return;
processfluid(i, zr_florhit, true);
processfluid(actor, zr_florhit, true);
SetActorPos(actor, &spr.pos);
}

View file

@ -51,7 +51,7 @@ static void chasedevil(PLAYER& plr, DWHActor* actor)
if (checksector6(actor))
return;
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
if (sector[osectnum].lotag == KILLSECTOR) {
spr.hitag--;
@ -96,7 +96,7 @@ static void paindevil(PLAYER& plr, DWHActor* actor)
}
aimove(i);
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);
}
@ -161,7 +161,7 @@ static void fleedevil(PLAYER& plr, DWHActor* actor)
if (checksector6(actor))
return;
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);
}

View file

@ -59,7 +59,7 @@ static void chasedragon(PLAYER& plr, DWHActor* actor)
if (checksector6(actor))
return;
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
if (sector[osectnum].lotag == KILLSECTOR) {
spr.hitag--;
@ -100,7 +100,7 @@ static void fleedragon(PLAYER& plr, DWHActor* actor)
if (checksector6(actor))
return;
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);
}
@ -271,7 +271,7 @@ static void paindragon(PLAYER& plr, DWHActor* actor)
spr.lotag -= TICSPERFRAME;
aimove(i);
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);
}

View file

@ -51,7 +51,7 @@ static void chasefatwitch(PLAYER& plr, DWHActor* actor)
if (checksector6(actor))
return;
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
if (sector[osectnum].lotag == KILLSECTOR) {
spr.hitag--;
@ -113,7 +113,7 @@ static void painfatwitch(PLAYER& plr, DWHActor* actor)
}
aimove(i);
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);
}
@ -206,7 +206,7 @@ static void fleefatwitch(PLAYER& plr, DWHActor* actor)
if (checksector6(actor))
return;
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);
}

View file

@ -61,7 +61,7 @@ static void chasefish(PLAYER& plr, DWHActor* actor)
if (checksector6(actor))
return;
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
if (sector[osectnum].lotag == KILLSECTOR) {
spr.hitag--;
@ -139,7 +139,7 @@ static void skirmishfish(PLAYER& plr, DWHActor* actor)
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(actor);
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);

View file

@ -63,7 +63,7 @@ static void chasefred(PLAYER& plr, DWHActor* actor)
if (checksector6(actor))
return;
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
if (sector[osectnum].lotag == KILLSECTOR) {
spr.hitag--;
@ -100,7 +100,7 @@ static void skirmishfred(PLAYER& plr, DWHActor* actor)
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(actor);
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);
@ -257,7 +257,7 @@ static void fleefred(PLAYER& plr, DWHActor* actor)
if (checksector6(actor))
return;
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);
@ -277,7 +277,7 @@ static void painfred(PLAYER& plr, DWHActor* actor)
}
aimove(i);
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);
checkexplfred(plr, actor);

View file

@ -69,7 +69,7 @@ static void chasegoblin(PLAYER& plr, DWHActor* actor)
if (checksector6(actor))
return;
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
if (sector[osectnum].lotag == KILLSECTOR) {
spr.hitag--;
@ -123,7 +123,7 @@ static void paingoblin(PLAYER& plr, DWHActor* actor)
}
aimove(i);
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);
checkexplgoblin(plr, actor);
@ -193,7 +193,7 @@ static void fleegoblin(PLAYER& plr, DWHActor* actor)
if (checksector6(actor))
return;
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);
@ -341,7 +341,7 @@ static void skirmishgoblin(PLAYER& plr, DWHActor* actor)
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(actor);
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);
@ -438,7 +438,7 @@ static void goblinWar(PLAYER& plr, DWHActor* actor)
else spr.ang = getangle(ownerspr.x - spr.x, ownerspr.y - spr.y);
}
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);
if (checkdist(i, ownerspr.x, ownerspr.y, ownerspr.z)) {
@ -490,7 +490,7 @@ static void goblinWar(PLAYER& plr, DWHActor* actor)
spr.extra = 1;
}
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);
@ -504,7 +504,7 @@ static void goblinWar(PLAYER& plr, DWHActor* actor)
if (aimove(i) != 0)
spr.ang = (short)(krand() & 2047);
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);

View file

@ -169,7 +169,7 @@ static void chasegonzo(PLAYER& plr, DWHActor* actor)
if (checksector6(actor))
return;
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
if (sector[osectnum].lotag == KILLSECTOR) {
spr.hitag--;
@ -239,7 +239,7 @@ static void skirmishgonzo(PLAYER& plr, DWHActor* actor)
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(actor);
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);
@ -320,7 +320,7 @@ static void paingonzo(PLAYER& plr, DWHActor* actor)
}
aimove(i);
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);
checkexplgonzo(plr, actor);
@ -480,7 +480,7 @@ static void fleegonzo(PLAYER& plr, DWHActor* actor)
if (checksector6(actor))
return;
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);

View file

@ -101,7 +101,7 @@ static void chasegron(PLAYER& plr, DWHActor* actor)
if (checksector6(actor))
return;
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
if (sector[osectnum].lotag == KILLSECTOR) {
spr.hitag--;
@ -169,7 +169,7 @@ static void skirmishgron(PLAYER& plr, DWHActor* actor)
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(actor);
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);
@ -247,7 +247,7 @@ static void paingron(PLAYER& plr, DWHActor* actor)
}
aimove(i);
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);
checkexplgron(plr, actor);
@ -371,7 +371,7 @@ static void fleegron(PLAYER& plr, DWHActor* actor)
if (checksector6(actor))
return;
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);

View file

@ -52,7 +52,7 @@ static void chaseguardian(PLAYER& plr, DWHActor* actor)
if (checksector6(actor))
return;
processfluid(i, zr_florhit, true);
processfluid(actor, zr_florhit, true);
if (sector[osectnum].lotag == KILLSECTOR) {
spr.hitag--;
@ -193,7 +193,7 @@ static void fleeguardian(PLAYER& plr, DWHActor* actor)
if (checksector6(actor))
return;
processfluid(i, zr_florhit, true);
processfluid(actor, zr_florhit, true);
SetActorPos(actor, &spr.pos);
}

View file

@ -70,7 +70,7 @@ static void chaseimp(PLAYER& plr, DWHActor* actor)
if (checksector6(actor))
return;
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
if (sector[osectnum].lotag == KILLSECTOR) {
spr.hitag--;
@ -115,7 +115,7 @@ static void painimp(PLAYER& plr, DWHActor* actor)
}
aimove(i);
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);
}
@ -229,7 +229,7 @@ static void fleeimp(PLAYER& plr, DWHActor* actor)
if (checksector6(actor))
return;
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);
@ -302,7 +302,7 @@ static void skirmishimp(PLAYER& plr, DWHActor* actor)
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(actor);
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);

View file

@ -61,7 +61,7 @@ static void chasejudy(PLAYER& plr, DWHActor* actor)
if (checksector6(actor))
return;
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
if (sector[osectnum].lotag == KILLSECTOR) {
spr.hitag--;
@ -124,7 +124,7 @@ static void painjudy(PLAYER& plr, DWHActor* actor)
}
aimove(i);
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);
}
@ -220,7 +220,7 @@ static void fleejudy(PLAYER& plr, DWHActor* actor)
if (checksector6(actor))
return;
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);
}

View file

@ -51,7 +51,7 @@ static void chasekatie(PLAYER& plr, DWHActor* actor)
if (checksector6(actor))
return;
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
if (sector[osectnum].lotag == KILLSECTOR) {
spr.hitag--;
@ -98,7 +98,7 @@ static void painkatie(PLAYER& plr, DWHActor* actor)
}
aimove(i);
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);
}
@ -198,7 +198,7 @@ static void fleekatie(PLAYER& plr, DWHActor* actor)
if (checksector6(actor))
return;
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);
}

View file

@ -73,7 +73,7 @@ static void chasekobold(PLAYER& plr, DWHActor* actor)
if (checksector6(actor))
return;
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
if (sector[osectnum].lotag == KILLSECTOR) {
spr.hitag--;
@ -128,7 +128,7 @@ static void painkobold(PLAYER& plr, DWHActor* actor)
}
aimove(i);
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);
checkexplkobold(plr, actor);
@ -198,7 +198,7 @@ static void fleekobold(PLAYER& plr, DWHActor* actor)
if (checksector6(actor))
return;
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);
@ -321,7 +321,7 @@ static void skirmishkobold(PLAYER& plr, DWHActor* actor)
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(actor);
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);

View file

@ -70,7 +70,7 @@ static void chaseminotaur(PLAYER& plr, DWHActor* actor)
if (checksector6(actor))
return;
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
if (sector[osectnum].lotag == KILLSECTOR) {
spr.hitag--;
@ -122,7 +122,7 @@ static void skirmishminotaur(PLAYER& plr, DWHActor* actor)
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(actor);
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);
@ -168,7 +168,7 @@ static void painminotaur(PLAYER& plr, DWHActor* actor)
}
aimove(i);
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);
checkexplminotaur(plr, actor);
@ -299,7 +299,7 @@ static void fleeminotaur(PLAYER& plr, DWHActor* actor)
if (checksector6(actor))
return;
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);

View file

@ -87,7 +87,7 @@ static void chasenewguy(PLAYER& plr, DWHActor* actor)
if (checksector6(actor))
return;
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
if (sector[osectnum].lotag == KILLSECTOR) {
spr.hitag--;
@ -155,7 +155,7 @@ static void skirmishnewguy(PLAYER& plr, DWHActor* actor)
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(actor);
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);
@ -193,7 +193,7 @@ static void painnewguy(PLAYER& plr, DWHActor* actor)
}
aimove(i);
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);
}
@ -260,7 +260,7 @@ static void fleenewguy(PLAYER& plr, DWHActor* actor)
if (checksector6(actor))
return;
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);
}

View file

@ -72,7 +72,7 @@ static void fleerat(PLAYER& plr, DWHActor* actor)
if (checksector6(actor))
return;
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
// switch (checkfluid(i, zr_florhit)) {
// case TYPELAVA:

View file

@ -70,7 +70,7 @@ static void chaseskeleton(PLAYER& plr, DWHActor* actor)
if (checksector6(actor))
return;
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
if (sector[osectnum].lotag == KILLSECTOR) {
spr.hitag--;
@ -179,7 +179,7 @@ static void fleeskeleton(PLAYER& plr, DWHActor* actor)
if (checksector6(actor))
return;
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);
@ -328,7 +328,7 @@ static void skirmishskeleton(PLAYER& plr, DWHActor* actor)
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(actor);
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);

View file

@ -48,7 +48,7 @@ static void chaseskully(PLAYER& plr, DWHActor* actor)
if (checksector6(actor))
return;
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
if (sector[osectnum].lotag == KILLSECTOR) {
spr.hitag--;
@ -110,7 +110,7 @@ static void painskully(PLAYER& plr, DWHActor* actor)
}
aimove(i);
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);
}
@ -205,7 +205,7 @@ static void fleeskully(PLAYER& plr, DWHActor* actor)
if (checksector6(actor))
return;
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);
}

View file

@ -70,7 +70,7 @@ static void chasespider(PLAYER& plr, DWHActor* actor)
if (checksector6(actor))
return;
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
if (sector[osectnum].lotag == KILLSECTOR) {
spr.hitag--;
@ -122,7 +122,7 @@ static void skirmishspider(PLAYER& plr, DWHActor* actor)
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(actor);
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);
@ -264,7 +264,7 @@ static void fleespider(PLAYER& plr, DWHActor* actor)
if (checksector6(actor))
return;
processfluid(i, zr_florhit, false);
processfluid(actor, zr_florhit, false);
SetActorPos(actor, &spr.pos);

View file

@ -52,7 +52,7 @@ static void chasewillow(PLAYER& plr, DWHActor* actor)
if (checksector6(actor))
return;
processfluid(i, zr_florhit, true);
processfluid(actor, zr_florhit, true);
if (sector[osectnum].lotag == KILLSECTOR) {
spr.hitag--;
@ -213,7 +213,7 @@ static void fleewillow(PLAYER& plr, DWHActor* actor)
if (checksector6(actor))
return;
processfluid(i, zr_florhit, true);
processfluid(actor, zr_florhit, true);
SetActorPos(actor, &spr.pos);
}

View file

@ -141,19 +141,20 @@ void randompotion(int i) {
return;
int j = insertsprite(sprite[i].sectnum, (short)0);
auto& spawned = sprite[j];
sprite[j].x = sprite[i].x;
sprite[j].y = sprite[i].y;
sprite[j].z = sprite[i].z - (12 << 8);
sprite[j].shade = -12;
sprite[j].pal = 0;
sprite[j].cstat = 0;
sprite[j].cstat &= ~3;
sprite[j].xrepeat = 64;
sprite[j].yrepeat = 64;
spawned.x = sprite[i].x;
spawned.y = sprite[i].y;
spawned.z = sprite[i].z - (12 << 8);
spawned.shade = -12;
spawned.pal = 0;
spawned.cstat = 0;
spawned.cstat &= ~3;
spawned.xrepeat = 64;
spawned.yrepeat = 64;
int type = krand() % 4;
sprite[j].picnum = (short)(FLASKBLUE + type);
sprite[j].detail = (short)(FLASKBLUETYPE + type);
spawned.picnum = (short)(FLASKBLUE + type);
spawned.detail = (short)(FLASKBLUETYPE + type);
}
END_WH_NS