- handle all newstatus calls in AI code.

Again done by search/replace.
This commit is contained in:
Christoph Oelckers 2021-11-13 22:07:26 +01:00
parent abd19f4e1d
commit 2193597c3e
25 changed files with 536 additions and 530 deletions

View file

@ -22,7 +22,7 @@ static void chasedemon(PLAYER& plr, DWHActor* actor)
if (krand() % 63 == 0) {
if (cansee(plr.x, plr.y, plr.z, plr.sector, sprite[i].x, sprite[i].y,
sprite[i].z - (tileHeight(sprite[i].picnum) << 7), sprite[i].sectnum) && plr.invisibletime < 0)
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
return;
}
else {
@ -40,10 +40,10 @@ static void chasedemon(PLAYER& plr, DWHActor* actor)
else {
if (plr.invisibletime < 0) {
if (krand() % 8 == 0) // NEW
newstatus(i, ATTACK); // NEW
SetNewStatus(actor, ATTACK); // NEW
else { // NEW
sprite[i].ang = (short)(((krand() & 512 - 256) + sprite[i].ang + 1024) & 2047); // NEW
newstatus(i, CHASE); // NEW
SetNewStatus(actor, CHASE); // NEW
}
}
}
@ -60,7 +60,7 @@ static void chasedemon(PLAYER& plr, DWHActor* actor)
if (sector[osectnum].lotag == KILLSECTOR && spr.z + (8 << 8) >= sector[osectnum].floorz) {
spr.hitag--;
if (spr.hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
setsprite(i, spr.x, spr.y, spr.z);
@ -70,7 +70,7 @@ static void chasedemon(PLAYER& plr, DWHActor* actor)
if (spr.z + (8 << 8) >= sector[osectnum].floorz) {
spr.hitag--;
if (spr.hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
}
}
@ -93,7 +93,7 @@ static void paindemon(PLAYER& plr, DWHActor* actor)
if (spr.lotag < 0) {
spr.picnum = DEMON;
spr.ang = plr.angle.ang.asbuild();
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
aifly(i);
@ -111,23 +111,23 @@ static void facedemon(PLAYER& plr, DWHActor* actor)
spr.ang = (short)(getangle(plr.x - spr.x, plr.y - spr.y) & 2047);
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else {
spr.owner = plr.spritenum;
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
}
else { // get off the wall
if (spr.owner == plr.spritenum) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang) & 2047);
newstatus(i, FINDME);
SetNewStatus(actor, FINDME);
}
else if (cansee) newstatus(i, FLEE);
else if (cansee) SetNewStatus(actor, FLEE);
}
if (checkdist(plr, i))
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
}
@ -147,9 +147,9 @@ static void attackdemon(PLAYER& plr, DWHActor* actor)
if (spr.lotag < 0) {
if (cansee(plr.x, plr.y, plr.z, plr.sector, spr.x, spr.y, spr.z - (tileHeight(spr.picnum) << 7),
spr.sectnum))
newstatus(i, CAST);
SetNewStatus(actor, CAST);
else
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
else
spr.ang = getangle(plr.x - spr.x, plr.y - spr.y);
@ -174,11 +174,11 @@ static void fleedemon(PLAYER& plr, DWHActor* actor)
}
else {
spr.ang = getangle(plr.x - spr.x, plr.y - spr.y);
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
}
if (spr.lotag < 0)
newstatus(i, FACE);
SetNewStatus(actor, FACE);
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(i);
@ -207,7 +207,7 @@ static void castdemon(PLAYER& plr, DWHActor* actor)
if (spr.lotag < 0) {
castspell(plr, i);
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
}
@ -218,7 +218,7 @@ static void nukeddemon(PLAYER& plr, DWHActor* actor)
chunksofmeat(plr, i, spr.x, spr.y, spr.z, spr.sectnum, spr.ang);
trailingsmoke(i, false);
newstatus((short)i, DIE);
SetNewStatus(actor, DIE);
}

View file

@ -18,7 +18,7 @@ static void chasedevil(PLAYER& plr, DWHActor* actor)
if (krand() % 63 == 0) {
if (cansee(plr.x, plr.y, plr.z, plr.sector, sprite[i].x, sprite[i].y,
sprite[i].z - (tileHeight(sprite[i].picnum) << 7), sprite[i].sectnum) && plr.invisibletime < 0)
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
}
else {
checksight(plr, i);
@ -26,17 +26,17 @@ static void chasedevil(PLAYER& plr, DWHActor* actor)
if ((aimove(i) & kHitTypeMask) == kHitFloor)
{
spr.ang = (short)((spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
return;
}
}
else {
if (plr.invisibletime < 0) {
if (krand() % 8 == 0) // NEW
newstatus(i, ATTACK); // NEW
SetNewStatus(actor, ATTACK); // NEW
else { // NEW
sprite[i].ang = (short)(((krand() & 512 - 256) + sprite[i].ang + 1024) & 2047); // NEW
newstatus(i, FLEE); // NEW
SetNewStatus(actor, FLEE); // NEW
}
}
}
@ -56,7 +56,7 @@ static void chasedevil(PLAYER& plr, DWHActor* actor)
if (sector[osectnum].lotag == KILLSECTOR) {
spr.hitag--;
if (spr.hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
setsprite(i, spr.x, spr.y, spr.z);
@ -75,10 +75,10 @@ static void diedevil(PLAYER& plr, DWHActor* actor)
if (spr.picnum == DEVILDEAD) {
if (difficulty == 4)
newstatus(i, RESURECT);
SetNewStatus(actor, RESURECT);
else {
kills++;
newstatus(i, DEAD);
SetNewStatus(actor, DEAD);
}
}
}
@ -93,7 +93,7 @@ static void paindevil(PLAYER& plr, DWHActor* actor)
if (spr.lotag < 0) {
spr.picnum = DEVIL;
spr.ang = plr.angle.ang.asbuild();
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
aimove(i);
@ -113,23 +113,23 @@ static void facedevil(PLAYER& plr, DWHActor* actor)
spr.ang = getangle(plr.x - spr.x, plr.y - spr.y);
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else {
spr.owner = plr.spritenum;
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
}
else { // get off the wall
if (spr.owner == plr.spritenum) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang) & 2047);
newstatus(i, FINDME);
SetNewStatus(actor, FINDME);
}
else if (cansee) newstatus(i, FLEE);
else if (cansee) SetNewStatus(actor, FLEE);
}
if (checkdist(plr, i))
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
}
static void fleedevil(PLAYER& plr, DWHActor* actor)
@ -150,11 +150,11 @@ static void fleedevil(PLAYER& plr, DWHActor* actor)
}
else {
spr.ang = getangle(plr.x - spr.x, plr.y - spr.y);
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
}
if (spr.lotag < 0)
newstatus(i, FACE);
SetNewStatus(actor, FACE);
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(i);
@ -189,9 +189,9 @@ static void attackdevil(PLAYER& plr, DWHActor* actor)
if (sprite[i].lotag < 0) {
if (cansee(plr.x, plr.y, plr.z, plr.sector, sprite[i].x, sprite[i].y,
sprite[i].z - (tileHeight(sprite[i].picnum) << 7), sprite[i].sectnum))
newstatus(i, CAST);
SetNewStatus(actor, CAST);
else
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
else
sprite[i].ang = getangle(plr.x - sprite[i].x, plr.y - sprite[i].y);
@ -204,7 +204,7 @@ static void resurectdevil(PLAYER& plr, DWHActor* actor)
spr.lotag -= TICSPERFRAME;
if (spr.lotag < 0) {
newstatus(i, FACE);
SetNewStatus(actor, FACE);
spr.picnum = DEVIL;
spr.hitag = (short)adjusthp(60);
spr.lotag = 100;
@ -229,7 +229,7 @@ static void frozendevil(PLAYER& plr, DWHActor* actor)
if (spr.lotag < 0) {
spr.pal = 0;
spr.picnum = DEVIL;
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
}
@ -241,7 +241,7 @@ static void nukeddevil(PLAYER& plr, DWHActor* actor)
if (isWh2()) {
chunksofmeat(plr, i, spr.x, spr.y, spr.z, spr.sectnum, spr.ang);
trailingsmoke(i, false);
newstatus((short)i, DIE);
SetNewStatus(actor, DIE);
return;
}
@ -271,7 +271,7 @@ static void castdevil(PLAYER& plr, DWHActor* actor)
spr.picnum = DEVIL;
spritesound(S_FIREBALL, &sprite[i]);
castspell(plr, i);
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
checksector6(i);
}

View file

@ -24,9 +24,9 @@ static void chasedragon(PLAYER& plr, DWHActor* actor)
if (cansee(plr.x, plr.y, plr.z, plr.sector, spr.x, spr.y, spr.z - (tileHeight(spr.picnum) << 7),
spr.sectnum) && plr.invisibletime < 0)
if (plr.z < spr.z)
newstatus(i, ATTACK2);
SetNewStatus(actor, ATTACK2);
else
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
return;
}
else {
@ -42,12 +42,12 @@ static void chasedragon(PLAYER& plr, DWHActor* actor)
if (plr.invisibletime < 0) {
if (krand() % 8 == 0) { // NEW
if (plr.z < spr.z)
newstatus(i, ATTACK2);
SetNewStatus(actor, ATTACK2);
else
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
}
else { // NEW
newstatus(i, FACE); // NEW
SetNewStatus(actor, FACE); // NEW
}
}
}
@ -67,7 +67,7 @@ static void chasedragon(PLAYER& plr, DWHActor* actor)
if (sector[osectnum].lotag == KILLSECTOR) {
spr.hitag--;
if (spr.hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
setsprite(i, spr.x, spr.y, spr.z);
@ -91,11 +91,11 @@ static void fleedragon(PLAYER& plr, DWHActor* actor)
}
else {
spr.ang = getangle(plr.x - spr.x, plr.y - spr.y);
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
}
if (spr.lotag < 0)
newstatus(i, FACE);
SetNewStatus(actor, FACE);
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(i);
@ -120,10 +120,10 @@ static void diedragon(PLAYER& plr, DWHActor* actor)
spr.lotag = 20;
if (spr.picnum == DRAGONDEAD) {
if (difficulty == 4)
newstatus(i, RESURECT);
SetNewStatus(actor, RESURECT);
else {
kills++;
newstatus(i, DEAD);
SetNewStatus(actor, DEAD);
}
}
}
@ -191,11 +191,11 @@ static void castdragon(PLAYER& plr, DWHActor* actor)
case DRAGONATTACK2 + 5:
spr.picnum = DRAGON;
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
break;
case DRAGONATTACK + 22:
spr.picnum = DRAGONATTACK;
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
break;
}
@ -211,9 +211,9 @@ static void attackdragon(PLAYER& plr, DWHActor* actor)
if (spr.lotag < 0) {
if (cansee(plr.x, plr.y, plr.z, plr.sector, spr.x, spr.y, spr.z - (tileHeight(spr.picnum) << 7),
spr.sectnum))
newstatus(i, CAST);
SetNewStatus(actor, CAST);
else
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
else
spr.ang = getangle(plr.x - spr.x, plr.y - spr.y);
@ -226,7 +226,7 @@ static void resurectdragon(PLAYER& plr, DWHActor* actor)
spr.lotag -= TICSPERFRAME;
if (spr.lotag < 0) {
newstatus(i, FACE);
SetNewStatus(actor, FACE);
spr.picnum = DRAGON;
spr.hitag = (short)adjusthp(900);
spr.lotag = 100;
@ -251,7 +251,7 @@ static void frozendragon(PLAYER& plr, DWHActor* actor)
if (spr.lotag < 0) {
spr.pal = 0;
spr.picnum = DRAGON;
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
}
@ -294,23 +294,23 @@ static void facedragon(PLAYER& plr, DWHActor* actor)
spr.ang = getangle(plr.x - spr.x, plr.y - spr.y);
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else {
spr.owner = plr.spritenum;
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
}
else { // get off the wall
if (spr.owner == plr.spritenum) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang) & 2047);
newstatus(i, FINDME);
SetNewStatus(actor, FINDME);
}
else if (cansee) newstatus(i, FLEE);
else if (cansee) SetNewStatus(actor, FLEE);
}
if (checkdist(plr, i))
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
}
@ -338,9 +338,9 @@ static void dragonAttack2(PLAYER& plr, DWHActor* actor)
if (spr.lotag < 0) {
if (cansee(plr.x, plr.y, plr.z, plr.sector, spr.x, spr.y, spr.z - (tileHeight(spr.picnum) << 7),
spr.sectnum) && plr.invisibletime < 0)
newstatus(i, CAST);
SetNewStatus(actor, CAST);
else
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
return;
}
else

View file

@ -19,7 +19,7 @@ static void chasefatwitch(PLAYER& plr, DWHActor* actor)
if (krand() % 63 == 0) {
if (cansee(plr.x, plr.y, plr.z, plr.sector, sprite[i].x, sprite[i].y,
sprite[i].z - (tileHeight(sprite[i].picnum) << 7), sprite[i].sectnum))// && invisibletime < 0)
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
}
else {
checksight(plr, i);
@ -28,16 +28,16 @@ static void chasefatwitch(PLAYER& plr, DWHActor* actor)
if ((movestat & kHitTypeMask) == kHitFloor)
{
spr.ang = (short)((spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
return;
}
}
else {
if (krand() % 8 == 0) // NEW
newstatus(i, ATTACK); // NEW
SetNewStatus(actor, ATTACK); // NEW
else { // NEW
sprite[i].ang = (short)(((krand() & 512 - 256) + sprite[i].ang + 1024) & 2047); // NEW
newstatus(i, FLEE); // NEW
SetNewStatus(actor, FLEE); // NEW
}
}
}
@ -56,7 +56,7 @@ static void chasefatwitch(PLAYER& plr, DWHActor* actor)
if (sector[osectnum].lotag == KILLSECTOR) {
spr.hitag--;
if (spr.hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
setsprite(i, spr.x, spr.y, spr.z);
@ -69,7 +69,7 @@ static void resurectfatwitch(PLAYER& plr, DWHActor* actor)
spr.lotag -= TICSPERFRAME;
if (spr.lotag < 0) {
newstatus(i, FACE);
SetNewStatus(actor, FACE);
spr.picnum = FATWITCH;
spr.hitag = (short)adjusthp(90);
spr.lotag = 100;
@ -110,7 +110,7 @@ static void painfatwitch(PLAYER& plr, DWHActor* actor)
if (spr.lotag < 0) {
spr.picnum = FATWITCH;
spr.ang = plr.angle.ang.asbuild();
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
aimove(i);
@ -129,23 +129,23 @@ static void facefatwitch(PLAYER& plr, DWHActor* actor)
spr.ang = getangle(plr.x - spr.x, plr.y - spr.y);
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else {
spr.owner = plr.spritenum;
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
}
else { // get off the wall
if (spr.owner == plr.spritenum) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang) & 2047);
newstatus(i, FINDME);
SetNewStatus(actor, FINDME);
}
else if (cansee) newstatus(i, FLEE);
else if (cansee) SetNewStatus(actor, FLEE);
}
if (checkdist(i, plr.x, plr.y, plr.z))
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
}
static void attackfatwitch(PLAYER& plr, DWHActor* actor)
@ -169,9 +169,9 @@ static void attackfatwitch(PLAYER& plr, DWHActor* actor)
if (sprite[i].lotag < 0) {
if (cansee(plr.x, plr.y, plr.z, plr.sector, sprite[i].x, sprite[i].y,
sprite[i].z - (tileHeight(sprite[i].picnum) << 7), sprite[i].sectnum))
newstatus(i, CAST);
SetNewStatus(actor, CAST);
else
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
else
sprite[i].ang = getangle(plr.x - sprite[i].x, plr.y - sprite[i].y);
@ -195,11 +195,11 @@ static void fleefatwitch(PLAYER& plr, DWHActor* actor)
}
else {
spr.ang = getangle(plr.x - spr.x, plr.y - spr.y);
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
}
if (spr.lotag < 0)
newstatus(i, FACE);
SetNewStatus(actor, FACE);
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(i);
@ -226,7 +226,7 @@ static void castfatwitch(PLAYER& plr, DWHActor* actor)
if (spr.picnum == FATWITCHATTACK + 3) {
sprite[i].picnum = FATWITCH;
throwspank(plr, actor);
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
checksector6(i);
}
@ -244,10 +244,10 @@ static void diefatwitch(PLAYER& plr, DWHActor* actor)
if (spr.picnum == FATWITCHDEAD) {
if (difficulty == 4)
newstatus(i, RESURECT);
SetNewStatus(actor, RESURECT);
else {
kills++;
newstatus(i, DEAD);
SetNewStatus(actor, DEAD);
}
}
}

View file

@ -19,14 +19,14 @@ static void chasefish(PLAYER& plr, DWHActor* actor)
if (checkdist(plr, i)) {
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
}
else if (krand() % 63 > 60) {
spr.ang = (short)(((krand() & 128 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else {
int movestat = aimove(i);
@ -37,21 +37,21 @@ static void chasefish(PLAYER& plr, DWHActor* actor)
spr.ang = daang;
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else
newstatus(i, SKIRMISH);
SetNewStatus(actor, SKIRMISH);
}
else {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, SKIRMISH);
SetNewStatus(actor, SKIRMISH);
}
}
}
}
else {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
getzrange(spr.x, spr.y, spr.z - 1, spr.sectnum, (spr.clipdist) << 2, CLIPMASK0);
@ -66,7 +66,7 @@ static void chasefish(PLAYER& plr, DWHActor* actor)
if (sector[osectnum].lotag == KILLSECTOR) {
spr.hitag--;
if (spr.hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
setsprite(i, spr.x, spr.y, spr.z);
@ -75,7 +75,7 @@ static void chasefish(PLAYER& plr, DWHActor* actor)
|| sector[spr.sectnum].floorpicnum == LAVA1 || sector[spr.sectnum].floorpicnum == ANILAVA)) {
spr.hitag--;
if (spr.hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
}
@ -96,7 +96,7 @@ static void attackfish(PLAYER& plr, DWHActor* actor)
case TYPELAVA:
sprite[i].hitag--;
if (sprite[i].hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
break;
}
@ -112,10 +112,10 @@ static void attackfish(PLAYER& plr, DWHActor* actor)
else if (spr.lotag < 0) {
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047); // NEW
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
spr.lotag -= TICSPERFRAME;
@ -130,11 +130,11 @@ static void skirmishfish(PLAYER& plr, DWHActor* actor)
spr.lotag -= TICSPERFRAME;
if (spr.lotag < 0)
newstatus(i, FACE);
SetNewStatus(actor, FACE);
short osectnum = spr.sectnum;
if (aimove(i) != 0) {
spr.ang = getangle(plr.x - spr.x, plr.y - spr.y);
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(i);
@ -168,23 +168,23 @@ static void facefish(PLAYER& plr, DWHActor* actor)
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else {
spr.owner = plr.spritenum;
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
}
else { // get off the wall
if (spr.owner == plr.spritenum) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang) & 2047);
newstatus(i, FINDME);
SetNewStatus(actor, FINDME);
}
else if (cansee) newstatus(i, FLEE);
else if (cansee) SetNewStatus(actor, FLEE);
}
if (checkdist(plr, i))
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
}
void createFishAI() {

View file

@ -21,14 +21,14 @@ static void chasefred(PLAYER& plr, DWHActor* actor)
if (checkdist(plr, i)) {
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
}
else if (krand() % 63 > 60) {
spr.ang = (short)(((krand() & 128 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else {
int movestat = aimove(i);
@ -39,21 +39,21 @@ static void chasefred(PLAYER& plr, DWHActor* actor)
spr.ang = daang;
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else
newstatus(i, SKIRMISH);
SetNewStatus(actor, SKIRMISH);
}
else {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, SKIRMISH);
SetNewStatus(actor, SKIRMISH);
}
}
}
}
else {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
getzrange(spr.x, spr.y, spr.z - 1, spr.sectnum, (spr.clipdist) << 2, CLIPMASK0);
@ -68,7 +68,7 @@ static void chasefred(PLAYER& plr, DWHActor* actor)
if (sector[osectnum].lotag == KILLSECTOR) {
spr.hitag--;
if (spr.hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
setsprite(i, spr.x, spr.y, spr.z);
@ -77,7 +77,7 @@ static void chasefred(PLAYER& plr, DWHActor* actor)
|| sector[spr.sectnum].floorpicnum == LAVA1 || sector[spr.sectnum].floorpicnum == ANILAVA)) {
spr.hitag--;
if (spr.hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
checkexplfred(plr, actor);
@ -91,11 +91,11 @@ static void skirmishfred(PLAYER& plr, DWHActor* actor)
spr.lotag -= TICSPERFRAME;
if (spr.lotag < 0)
newstatus(i, FACE);
SetNewStatus(actor, FACE);
short osectnum = spr.sectnum;
if (aimove(i) != 0) {
spr.ang = getangle(plr.x - spr.x, plr.y - spr.y);
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(i);
@ -123,10 +123,10 @@ static void diefred(PLAYER& plr, DWHActor* actor)
if (spr.picnum == FREDDEAD) {
if (difficulty == 4)
newstatus(i, RESURECT);
SetNewStatus(actor, RESURECT);
else {
kills++;
newstatus(i, DEAD);
SetNewStatus(actor, DEAD);
}
}
}
@ -150,7 +150,7 @@ static void frozenfred(PLAYER& plr, DWHActor* actor)
if (spr.lotag < 0) {
spr.pal = 0;
spr.picnum = FRED;
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
}
@ -167,23 +167,23 @@ static void facefred(PLAYER& plr, DWHActor* actor)
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else {
spr.owner = plr.spritenum;
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
}
else { // get off the wall
if (spr.owner == plr.spritenum) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang) & 2047);
newstatus(i, FINDME);
SetNewStatus(actor, FINDME);
}
else if (cansee) newstatus(i, FLEE);
else if (cansee) SetNewStatus(actor, FLEE);
}
if (checkdist(plr, i))
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
checkexplfred(plr, actor);
}
@ -200,7 +200,7 @@ static void attackfred(PLAYER& plr, DWHActor* actor)
case TYPELAVA:
sprite[i].hitag--;
if (sprite[i].hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
case TYPEWATER:
spr.z += tileHeight(spr.picnum) << 5;
break;
@ -218,10 +218,10 @@ static void attackfred(PLAYER& plr, DWHActor* actor)
else if (spr.lotag < 0) {
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047); // NEW
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
spr.lotag -= TICSPERFRAME;
@ -247,11 +247,11 @@ static void fleefred(PLAYER& plr, DWHActor* actor)
}
else {
spr.ang = getangle(plr.x - spr.x, plr.y - spr.y);
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
}
if (spr.lotag < 0)
newstatus(i, FACE);
SetNewStatus(actor, FACE);
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(i);
@ -275,7 +275,7 @@ static void painfred(PLAYER& plr, DWHActor* actor)
if (spr.lotag < 0) {
spr.picnum = FRED;
spr.ang = plr.angle.ang.asbuild();
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
aimove(i);
@ -292,7 +292,7 @@ static void resurectfred(PLAYER& plr, DWHActor* actor)
spr.lotag -= TICSPERFRAME;
if (spr.lotag < 0) {
newstatus(i, FACE);
SetNewStatus(actor, FACE);
spr.picnum = FRED;
spr.hitag = (short)adjusthp(40);
spr.lotag = 100;
@ -320,7 +320,7 @@ static void checkexplfred(PLAYER& plr, DWHActor* actor)
|| tspr.picnum == MONSTERBALL) {
spr.hitag -= TICSPERFRAME << 2;
if (spr.hitag < 0) {
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
}
}

View file

@ -21,21 +21,21 @@ static void chasegoblin(PLAYER& plr, DWHActor* actor)
if (checkdist(plr, i)) {
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
}
else if (krand() % 63 > 60) {
spr.ang = (short)(((krand() & 128 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else {
int movestat = aimove(i);
if ((movestat & kHitTypeMask) == kHitFloor)
{
spr.ang = (short)((spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
return;
}
@ -45,21 +45,21 @@ static void chasegoblin(PLAYER& plr, DWHActor* actor)
spr.ang = daang;
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else
newstatus(i, SKIRMISH);
SetNewStatus(actor, SKIRMISH);
}
else {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, SKIRMISH);
SetNewStatus(actor, SKIRMISH);
}
}
}
}
else {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
getzrange(spr.x, spr.y, spr.z - 1, spr.sectnum, (spr.clipdist) << 2, CLIPMASK0);
@ -74,7 +74,7 @@ static void chasegoblin(PLAYER& plr, DWHActor* actor)
if (sector[osectnum].lotag == KILLSECTOR) {
spr.hitag--;
if (spr.hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
setsprite(i, spr.x, spr.y, spr.z);
@ -83,7 +83,7 @@ static void chasegoblin(PLAYER& plr, DWHActor* actor)
|| sector[spr.sectnum].floorpicnum == LAVA1 || sector[spr.sectnum].floorpicnum == ANILAVA)) {
spr.hitag--;
if (spr.hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
checkexplgoblin(plr, actor);
@ -102,10 +102,10 @@ static void diegoblin(PLAYER& plr, DWHActor* actor)
if (spr.picnum == GOBLINDEAD) {
if (difficulty == 4)
newstatus(i, RESURECT);
SetNewStatus(actor, RESURECT);
else {
kills++;
newstatus(i, DEAD);
SetNewStatus(actor, DEAD);
}
}
}
@ -120,7 +120,7 @@ static void paingoblin(PLAYER& plr, DWHActor* actor)
if (spr.lotag < 0) {
spr.picnum = GOBLIN;
spr.ang = plr.angle.ang.asbuild();
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
aimove(i);
@ -143,23 +143,23 @@ static void facegoblin(PLAYER& plr, DWHActor* actor)
spr.picnum = GOBLIN;
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else {
spr.owner = plr.spritenum;
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
}
else { // get off the wall
if (spr.owner == plr.spritenum) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang) & 2047);
newstatus(i, FINDME);
SetNewStatus(actor, FINDME);
}
else if (cansee) newstatus(i, FLEE);
else if (cansee) SetNewStatus(actor, FLEE);
}
if (checkdist(plr, i))
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
checkexplgoblin(plr, actor);
}
@ -182,11 +182,11 @@ static void fleegoblin(PLAYER& plr, DWHActor* actor)
}
else {
spr.ang = getangle(plr.x - spr.x, plr.y - spr.y);
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
}
if (spr.lotag < 0)
newstatus(i, FACE);
SetNewStatus(actor, FACE);
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(i);
@ -214,16 +214,16 @@ static void standgoblin(PLAYER& plr, DWHActor* actor)
case GOBLINCHILL:
spr.picnum = GOBLINSURPRISE;
spritesound(S_GOBPAIN1 + (krand() % 2), &spr);
newstatus(i, CHILL);
SetNewStatus(actor, CHILL);
break;
default:
spr.picnum = GOBLIN;
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047); // NEW
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
break;
}
}
@ -244,7 +244,7 @@ static void attackgoblin(PLAYER& plr, DWHActor* actor)
case TYPELAVA:
sprite[i].hitag--;
if (sprite[i].hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
case TYPEWATER:
spr.z += tileHeight(spr.picnum) << 5;
break;
@ -263,10 +263,10 @@ static void attackgoblin(PLAYER& plr, DWHActor* actor)
spr.picnum = GOBLIN;
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047); // NEW
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
spr.lotag -= TICSPERFRAME;
@ -280,7 +280,7 @@ static void resurectgoblin(PLAYER& plr, DWHActor* actor)
spr.lotag -= TICSPERFRAME;
if (spr.lotag < 0) {
newstatus(i, FACE);
SetNewStatus(actor, FACE);
spr.picnum = GOBLIN;
spr.hitag = (short)adjusthp(35);
spr.lotag = 100;
@ -306,7 +306,7 @@ static void frozengoblin(PLAYER& plr, DWHActor* actor)
if (spr.lotag < 0) {
spr.pal = 0;
spr.picnum = GOBLIN;
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
}
@ -334,12 +334,12 @@ static void skirmishgoblin(PLAYER& plr, DWHActor* actor)
spr.lotag -= TICSPERFRAME;
if (spr.lotag < 0)
newstatus(i, FACE);
SetNewStatus(actor, FACE);
short osectnum = spr.sectnum;
int movestat = aimove(i);
if ((movestat & kHitTypeMask) != kHitFloor && movestat != 0) {
spr.ang = getangle(plr.x - spr.x, plr.y - spr.y);
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(i);
@ -365,7 +365,7 @@ void goblinChill(PLAYER& plr, DWHActor* actor)
spr.lotag = 18;
if (spr.picnum == GOBLINSURPRISE + 5) {
spr.picnum = GOBLIN;
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
}
}
@ -408,10 +408,10 @@ static void goblinWar(PLAYER& plr, DWHActor* actor)
spr.hitag = (short)adjusthp(15);
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047); // NEW
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
break;
}
@ -561,7 +561,7 @@ static void checkexplgoblin(PLAYER& plr, DWHActor* actor)
|| spri.picnum == MONSTERBALL) {
spr.hitag -= TICSPERFRAME << 2;
if (spr.hitag < 0) {
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
}
}

View file

@ -26,20 +26,20 @@ static void chasegonzo(PLAYER& plr, DWHActor* actor)
if (checkdist(plr, i)) {
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else {
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
}
break;
}
else if ((krand() & 0) == 1) {
spr.ang = (short)(((krand() & 128 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
if (krand() % 63 > 60) {
spr.ang = (short)(((krand() & 128 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
break;
}
@ -52,7 +52,7 @@ static void chasegonzo(PLAYER& plr, DWHActor* actor)
if ((movestat & kHitTypeMask) == kHitFloor)
{
spr.ang = (short)((spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
return;
}
@ -64,7 +64,7 @@ static void chasegonzo(PLAYER& plr, DWHActor* actor)
movestat = 1;
if (rand() % 100 > 80 && sector[plr.sector].lotag == 25) {
newstatus(i, AMBUSH);
SetNewStatus(actor, AMBUSH);
spr.z -= (getPlayerHeight() << 6);
spr.lotag = 60;
spr.extra = 1;
@ -76,7 +76,7 @@ static void chasegonzo(PLAYER& plr, DWHActor* actor)
}
if ((movestat & 0xc000) == 32768 && sector[plr.sector].lotag == 25) {
newstatus(i, AMBUSH);
SetNewStatus(actor, AMBUSH);
spr.z -= (getPlayerHeight() << 6);
spr.lotag = 90;
spr.extra = 3;
@ -94,22 +94,22 @@ static void chasegonzo(PLAYER& plr, DWHActor* actor)
spr.ang = (short)daang;
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else {
newstatus(i, SKIRMISH);
SetNewStatus(actor, SKIRMISH);
}
}
else {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, SKIRMISH);
SetNewStatus(actor, SKIRMISH);
}
}
break;
}
else {
if (!patrolprocess(plr, actor))
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
break;
case GONZOCSW:
@ -119,21 +119,21 @@ static void chasegonzo(PLAYER& plr, DWHActor* actor)
if (checkdist(plr, i)) {
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
}
else if (krand() % 63 > 60) {
spr.ang = (short)(((krand() & 128 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else {
int movestat = aimove(i);
if ((movestat & kHitTypeMask) == kHitFloor)
{
spr.ang = (short)((spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
return;
}
@ -143,21 +143,21 @@ static void chasegonzo(PLAYER& plr, DWHActor* actor)
spr.ang = daang;
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else
newstatus(i, SKIRMISH);
SetNewStatus(actor, SKIRMISH);
}
else {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, SKIRMISH);
SetNewStatus(actor, SKIRMISH);
}
}
}
}
else {
if (!patrolprocess(plr, actor))
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
getzrange(spr.x, spr.y, spr.z - 1, spr.sectnum, (spr.clipdist) << 2, CLIPMASK0);
@ -174,7 +174,7 @@ static void chasegonzo(PLAYER& plr, DWHActor* actor)
if (sector[osectnum].lotag == KILLSECTOR) {
spr.hitag--;
if (spr.hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
setsprite(i, spr.x, spr.y, spr.z);
@ -183,7 +183,7 @@ static void chasegonzo(PLAYER& plr, DWHActor* actor)
|| sector[spr.sectnum].floorpicnum == LAVA1 || sector[spr.sectnum].floorpicnum == ANILAVA)) {
spr.hitag--;
if (spr.hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
}
@ -197,7 +197,7 @@ static void resurectgonzo(PLAYER& plr, DWHActor* actor)
spr.lotag -= TICSPERFRAME;
if (spr.lotag < 0) {
newstatus(i, FACE);
SetNewStatus(actor, FACE);
switch (spr.picnum) {
case GONZOCSWDEAD:
spr.picnum = GONZOCSW;
@ -229,13 +229,13 @@ static void skirmishgonzo(PLAYER& plr, DWHActor* actor)
spr.lotag -= TICSPERFRAME;
if (spr.lotag < 0)
newstatus(i, FACE);
SetNewStatus(actor, FACE);
short osectnum = spr.sectnum;
int movestat = aimove(i);
if ((movestat & kHitTypeMask) != kHitFloor && movestat != 0) {
spr.ang = getangle(plr.x - spr.x, plr.y - spr.y);
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(i);
@ -266,7 +266,7 @@ static void nukedgonzo(PLAYER& plr, DWHActor* actor)
chunksofmeat(plr, i, spr.x, spr.y, spr.z, spr.sectnum, spr.ang);
trailingsmoke(i, false);
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
static void frozengonzo(PLAYER& plr, DWHActor* actor)
@ -291,7 +291,7 @@ static void frozengonzo(PLAYER& plr, DWHActor* actor)
spr.picnum = GONZOGSH;
break;
}
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
}
@ -317,7 +317,7 @@ static void paingonzo(PLAYER& plr, DWHActor* actor)
break;
}
spr.ang = plr.angle.ang.asbuild();
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
aimove(i);
@ -340,23 +340,23 @@ static void facegonzo(PLAYER& plr, DWHActor* actor)
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else {
spr.owner = plr.spritenum;
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
}
else { // get off the wall
if (spr.owner == plr.spritenum) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang) & 2047);
newstatus(i, FINDME);
SetNewStatus(actor, FINDME);
}
else if (cansee) newstatus(i, FLEE);
else if (cansee) SetNewStatus(actor, FLEE);
}
if (plr.invisibletime < 0 && checkdist(plr, i))
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
checkexplgonzo(plr, actor);
}
@ -404,10 +404,10 @@ static void attackgonzo(PLAYER& plr, DWHActor* actor)
else if (spr.lotag < 0) {
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047); // NEW
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
spr.lotag -= TICSPERFRAME;
break;
@ -416,9 +416,9 @@ static void attackgonzo(PLAYER& plr, DWHActor* actor)
if (sprite[i].lotag < 0) {
if (cansee(plr.x, plr.y, plr.z, plr.sector, sprite[i].x, sprite[i].y,
sprite[i].z - (tileHeight(sprite[i].picnum) << 7), sprite[i].sectnum))
newstatus(i, CAST);
SetNewStatus(actor, CAST);
else
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
else
sprite[i].ang = getangle(plr.x - sprite[i].x, plr.y - sprite[i].y);
@ -436,10 +436,10 @@ static void attackgonzo(PLAYER& plr, DWHActor* actor)
else if (spr.lotag < 0) {
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047); // NEW
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
spr.lotag -= TICSPERFRAME;
break;
@ -468,12 +468,12 @@ static void fleegonzo(PLAYER& plr, DWHActor* actor)
else {
if (plr.invisibletime < 0) {
spr.ang = getangle(plr.x - spr.x, plr.y - spr.y);
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
}
}
if (spr.lotag < 0)
newstatus(i, FACE);
SetNewStatus(actor, FACE);
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(i);
@ -503,7 +503,7 @@ static void castgonzo(PLAYER& plr, DWHActor* actor)
spr.extra--;
spritesound(S_GENTHROW, &spr);
gonzopike(i, plr);
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
}
@ -525,10 +525,10 @@ static void diegonzo(PLAYER& plr, DWHActor* actor)
case GONZOGHMDEAD:
case GONZOGSHDEAD:
if (difficulty == 4)
newstatus(i, RESURECT);
SetNewStatus(actor, RESURECT);
else {
kills++;
newstatus(i, DEAD);
SetNewStatus(actor, DEAD);
}
break;
}
@ -555,14 +555,14 @@ void gonzoProcess(PLAYER& plr)
spr.detail = GONZOTYPE;
enemy[GONZOTYPE].info.set(spr);
sprite[i].hitag = adjusthp(100);
newstatus(i, FACE);
SetNewStatus(actor, FACE);
break;
case GONZOSHJUMPEND:
spr.picnum = GONZOGSH;
spr.detail = GONZOTYPE;
enemy[GONZOTYPE].info.set(spr);
sprite[i].hitag = adjusthp(100);
newstatus(i, FACE);
SetNewStatus(actor, FACE);
break;
}
}
@ -663,7 +663,7 @@ static boolean patrolprocess(PLAYER& plr, DWHActor* actor)
if (cansee(tspr.x, tspr.y, tspr.z, tspr.sectnum, spr.x, spr.y, spr.z - (tileHeight(spr.picnum) << 7),
spr.sectnum)) {
spr.ang = getangle(tspr.x - spr.x, tspr.y - spr.y);
newstatus(i, PATROL);
SetNewStatus(actor, PATROL);
}
}
@ -724,7 +724,7 @@ static void checkexplgonzo(PLAYER& plr, DWHActor* actor)
|| tspr.picnum == MONSTERBALL) {
spr.hitag -= TICSPERFRAME << 2;
if (spr.hitag < 0) {
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
}
}

View file

@ -24,21 +24,21 @@ static void chasegron(PLAYER& plr, DWHActor* actor)
if (checkdist(plr, i)) {
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
}
else if (krand() % 63 > 60) {
spr.ang = (short)(((krand() & 128 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else {
int movestat = aimove(i);
if ((movestat & kHitTypeMask) == kHitFloor)
{
spr.ang = (short)((spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
return;
}
@ -48,28 +48,28 @@ static void chasegron(PLAYER& plr, DWHActor* actor)
spr.ang = daang;
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else
newstatus(i, SKIRMISH);
SetNewStatus(actor, SKIRMISH);
}
else {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, SKIRMISH);
SetNewStatus(actor, SKIRMISH);
}
}
}
}
else {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
}
else {
if (krand() % 63 == 0) {
if (cansee(plr.x, plr.y, plr.z, plr.sector, sprite[i].x, sprite[i].y,
sprite[i].z - (tileHeight(sprite[i].picnum) << 7), sprite[i].sectnum))// && invisibletime < 0)
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
}
else {
checksight(plr, i);
@ -77,16 +77,16 @@ static void chasegron(PLAYER& plr, DWHActor* actor)
if ((aimove(i) & kHitTypeMask) == kHitFloor)
{
spr.ang = (short)((spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
return;
}
}
else {
if (krand() % 8 == 0) // NEW
newstatus(i, ATTACK); // NEW
SetNewStatus(actor, ATTACK); // NEW
else { // NEW
sprite[i].ang = (short)(((krand() & 512 - 256) + sprite[i].ang + 1024) & 2047); // NEW
newstatus(i, FLEE); // NEW
SetNewStatus(actor, FLEE); // NEW
}
}
}
@ -106,7 +106,7 @@ static void chasegron(PLAYER& plr, DWHActor* actor)
if (sector[osectnum].lotag == KILLSECTOR) {
spr.hitag--;
if (spr.hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
setsprite(i, spr.x, spr.y, spr.z);
@ -115,7 +115,7 @@ static void chasegron(PLAYER& plr, DWHActor* actor)
|| sector[spr.sectnum].floorpicnum == LAVA1 || sector[spr.sectnum].floorpicnum == ANILAVA)) {
spr.hitag--;
if (spr.hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
checkexplgron(plr, actor);
@ -128,7 +128,7 @@ static void resurectgron(PLAYER& plr, DWHActor* actor)
spr.lotag -= TICSPERFRAME;
if (spr.lotag < 0) {
newstatus(i, FACE);
SetNewStatus(actor, FACE);
switch (krand() % 3) {
case 0:
sprite[i].picnum = GRONHAL;
@ -159,12 +159,12 @@ static void skirmishgron(PLAYER& plr, DWHActor* actor)
spr.lotag -= TICSPERFRAME;
if (spr.lotag < 0)
newstatus(i, FACE);
SetNewStatus(actor, FACE);
short osectnum = spr.sectnum;
int movestat = aimove(i);
if ((movestat & kHitTypeMask) != kHitFloor && movestat != 0) {
spr.ang = getangle(plr.x - spr.x, plr.y - spr.y);
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(i);
@ -196,7 +196,7 @@ static void nukedgron(PLAYER& plr, DWHActor* actor)
if (isWh2()) {
chunksofmeat(plr, i, spr.x, spr.y, spr.z, spr.sectnum, spr.ang);
trailingsmoke(i, false);
newstatus((short)i, DIE);
SetNewStatus(actor, DIE);
return;
}
@ -225,7 +225,7 @@ static void frozengron(PLAYER& plr, DWHActor* actor)
spr.picnum = GRONSW;
else if (spr.picnum == GRONMUDIE)
spr.picnum = GRONMU;
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
}
@ -244,7 +244,7 @@ static void paingron(PLAYER& plr, DWHActor* actor)
spr.picnum = GRONMU;
spr.ang = plr.angle.ang.asbuild();
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
aimove(i);
@ -267,23 +267,23 @@ static void facegron(PLAYER& plr, DWHActor* actor)
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else {
spr.owner = plr.spritenum;
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
}
else { // get off the wall
if (spr.owner == plr.spritenum) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang) & 2047);
newstatus(i, FINDME);
SetNewStatus(actor, FINDME);
}
else if (cansee) newstatus(i, FLEE);
else if (cansee) SetNewStatus(actor, FLEE);
}
if (checkdist(plr, i))
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
checkexplgron(plr, actor);
}
@ -301,7 +301,7 @@ static void attackgron(PLAYER& plr, DWHActor* actor)
case TYPELAVA:
spr.hitag--;
if (spr.hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
case TYPEWATER:
spr.z += tileHeight(spr.picnum) << 5;
break;
@ -319,10 +319,10 @@ static void attackgron(PLAYER& plr, DWHActor* actor)
else if (spr.lotag < 0) {
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047); // NEW
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
spr.lotag -= TICSPERFRAME;
}
@ -331,9 +331,9 @@ static void attackgron(PLAYER& plr, DWHActor* actor)
if (spr.lotag < 0) {
if (cansee(plr.x, plr.y, plr.z, plr.sector, spr.x, spr.y,
spr.z - (tileHeight(spr.picnum) << 7), spr.sectnum))
newstatus(i, CAST);
SetNewStatus(actor, CAST);
else
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
else
spr.ang = getangle(plr.x - spr.x, plr.y - spr.y);
@ -360,11 +360,11 @@ static void fleegron(PLAYER& plr, DWHActor* actor)
}
else {
spr.ang = getangle(plr.x - spr.x, plr.y - spr.y);
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
}
if (spr.lotag < 0)
newstatus(i, FACE);
SetNewStatus(actor, FACE);
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(i);
@ -390,13 +390,13 @@ static void castgron(PLAYER& plr, DWHActor* actor)
spr.extra--;
spritesound(S_THROWPIKE, &sprite[i]);
throwhalberd(i);
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
else if (spr.picnum == GRONMUATTACK) {
spr.extra--;
spritesound(S_SPELL2, &sprite[i]);
castspell(plr, i);
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
}
@ -426,10 +426,10 @@ static void diegron(PLAYER& plr, DWHActor* actor)
if (spr.picnum == GRONDEAD) {
if (difficulty == 4)
newstatus(i, RESURECT);
SetNewStatus(actor, RESURECT);
else {
kills++;
newstatus(i, DEAD);
SetNewStatus(actor, DEAD);
}
}
}
@ -455,7 +455,7 @@ static void checkexplgron(PLAYER& plr, DWHActor* actor)
|| spri.picnum == MONSTERBALL) {
spr.hitag -= TICSPERFRAME << 2;
if (spr.hitag < 0) {
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
}
}

View file

@ -21,7 +21,7 @@ static void chaseguardian(PLAYER& plr, DWHActor* actor)
if (krand() % 63 == 0) {
if (cansee(plr.x, plr.y, plr.z, plr.sector, sprite[i].x, sprite[i].y,
sprite[i].z - (tileHeight(sprite[i].picnum) << 7), sprite[i].sectnum) && plr.invisibletime < 0)
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
return;
}
else {
@ -37,10 +37,10 @@ static void chaseguardian(PLAYER& plr, DWHActor* actor)
}
else {
if (krand() % 8 == 0) // NEW
newstatus(i, ATTACK); // NEW
SetNewStatus(actor, ATTACK); // NEW
else { // NEW
sprite[i].ang = (short)(((krand() & 512 - 256) + sprite[i].ang + 1024) & 2047); // NEW
newstatus(i, CHASE); // NEW
SetNewStatus(actor, CHASE); // NEW
}
}
}
@ -57,7 +57,7 @@ static void chaseguardian(PLAYER& plr, DWHActor* actor)
if (sector[osectnum].lotag == KILLSECTOR) {
spr.hitag--;
if (spr.hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
setsprite(i, spr.x, spr.y, spr.z);
@ -69,7 +69,7 @@ static void chaseguardian(PLAYER& plr, DWHActor* actor)
|| sector[spr.sectnum].floorpicnum == LAVA1 || sector[spr.sectnum].floorpicnum == ANILAVA)) {
spr.hitag--;
if (spr.hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
}
@ -81,7 +81,7 @@ static void nukedguardian(PLAYER& plr, DWHActor* actor)
if (isWh2()) {
chunksofmeat(plr, i, spr.x, spr.y, spr.z, spr.sectnum, spr.ang);
trailingsmoke(i, false);
newstatus((short)i, DIE);
SetNewStatus(actor, DIE);
return;
}
@ -112,9 +112,9 @@ static void attackguardian(PLAYER& plr, DWHActor* actor)
if (spr.lotag < 0) {
if (cansee(plr.x, plr.y, plr.z, plr.sector, spr.x, spr.y, spr.z - (tileHeight(spr.picnum) << 7),
spr.sectnum))
newstatus(i, CAST);
SetNewStatus(actor, CAST);
else
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
else
spr.ang = getangle(plr.x - spr.x, plr.y - spr.y);
@ -133,23 +133,23 @@ static void faceguardian(PLAYER& plr, DWHActor* actor)
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else {
spr.owner = plr.spritenum;
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
}
else { // get off the wall
if (spr.owner == plr.spritenum) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang) & 2047);
newstatus(i, FINDME);
SetNewStatus(actor, FINDME);
}
else if (cansee) newstatus(i, FLEE);
else if (cansee) SetNewStatus(actor, FLEE);
}
if (checkdist(plr, i))
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
}
static void searchguardian(PLAYER& plr, DWHActor* actor)
@ -182,11 +182,11 @@ static void fleeguardian(PLAYER& plr, DWHActor* actor)
}
else {
spr.ang = getangle(plr.x - spr.x, plr.y - spr.y);
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
}
if (spr.lotag < 0)
newstatus(i, FACE);
SetNewStatus(actor, FACE);
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(i);
@ -208,7 +208,7 @@ static void painguardian(PLAYER& plr, DWHActor* actor)
if (spr.lotag < 0) {
spr.picnum = GUARDIAN;
spr.ang = plr.angle.ang.asbuild();
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
// aifly(i);
@ -238,7 +238,7 @@ static void castguardian(PLAYER& plr, DWHActor* actor)
spr.picnum = GUARDIAN;
spritesound(S_FIREBALL, &sprite[i]);
castspell(plr, i);
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
checksector6(i);
}

View file

@ -20,21 +20,21 @@ static void chaseimp(PLAYER& plr, DWHActor* actor)
if (checkdist(plr, i)) {
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
}
else if (krand() % 63 > 60) {
spr.ang = (short)(((krand() & 128 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else {
int movestat = aimove(i);
if ((movestat & kHitTypeMask) == kHitFloor)
{
spr.ang = (short)((spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
return;
}
@ -44,21 +44,21 @@ static void chaseimp(PLAYER& plr, DWHActor* actor)
spr.ang = daang;
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else
newstatus(i, SKIRMISH);
SetNewStatus(actor, SKIRMISH);
}
else {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, SKIRMISH);
SetNewStatus(actor, SKIRMISH);
}
}
}
}
else {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
getzrange(spr.x, spr.y, spr.z - 1, spr.sectnum, (spr.clipdist) << 2, CLIPMASK0);
@ -75,7 +75,7 @@ static void chaseimp(PLAYER& plr, DWHActor* actor)
if (sector[osectnum].lotag == KILLSECTOR) {
spr.hitag--;
if (spr.hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
setsprite(i, spr.x, spr.y, spr.z);
@ -84,7 +84,7 @@ static void chaseimp(PLAYER& plr, DWHActor* actor)
|| sector[spr.sectnum].floorpicnum == LAVA1 || sector[spr.sectnum].floorpicnum == ANILAVA)) {
spr.hitag--;
if (spr.hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
checkexplimp(plr, actor);
@ -99,7 +99,7 @@ static void frozenimp(PLAYER& plr, DWHActor* actor)
if (spr.lotag < 0) {
spr.pal = 0;
spr.picnum = IMP;
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
}
@ -112,7 +112,7 @@ static void painimp(PLAYER& plr, DWHActor* actor)
if (spr.lotag < 0) {
spr.picnum = IMP;
spr.ang = plr.angle.ang.asbuild();
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
aimove(i);
@ -133,10 +133,10 @@ static void dieimp(PLAYER& plr, DWHActor* actor)
if (spr.picnum == IMPDEAD) {
if (difficulty == 4)
newstatus(i, RESURECT);
SetNewStatus(actor, RESURECT);
else {
kills++;
newstatus(i, DEAD);
SetNewStatus(actor, DEAD);
}
}
}
@ -149,7 +149,7 @@ static void nukedimp(PLAYER& plr, DWHActor* actor)
chunksofmeat(plr, i, spr.x, spr.y, spr.z, spr.sectnum, spr.ang);
trailingsmoke(i, false);
newstatus((short)i, DIE);
SetNewStatus(actor, DIE);
}
static void resurectimp(PLAYER& plr, DWHActor* actor)
@ -159,7 +159,7 @@ static void resurectimp(PLAYER& plr, DWHActor* actor)
spr.lotag -= TICSPERFRAME;
if (spr.lotag < 0) {
newstatus(i, FACE);
SetNewStatus(actor, FACE);
spr.picnum = IMP;
spr.hitag = (short)adjusthp(20);
spr.lotag = 100;
@ -180,23 +180,23 @@ static void faceimp(PLAYER& plr, DWHActor* actor)
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else {
spr.owner = plr.spritenum;
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
}
else { // get off the wall
if (spr.owner == plr.spritenum) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang) & 2047);
newstatus(i, FINDME);
SetNewStatus(actor, FINDME);
}
else if (cansee) newstatus(i, FLEE);
else if (cansee) SetNewStatus(actor, FLEE);
}
if (checkdist(plr, i))
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
checkexplimp(plr, actor);
}
@ -220,11 +220,11 @@ static void fleeimp(PLAYER& plr, DWHActor* actor)
}
else {
spr.ang = getangle(plr.x - spr.x, plr.y - spr.y);
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
}
if (spr.lotag < 0)
newstatus(i, FACE);
SetNewStatus(actor, FACE);
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(i);
@ -251,7 +251,7 @@ static void attackimp(PLAYER& plr, DWHActor* actor)
case TYPELAVA:
sprite[i].hitag--;
if (sprite[i].hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
case TYPEWATER:
spr.z += tileHeight(spr.picnum) << 5;
break;
@ -268,10 +268,10 @@ static void attackimp(PLAYER& plr, DWHActor* actor)
else if (spr.lotag < 0) {
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047); // NEW
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
spr.lotag -= TICSPERFRAME;
@ -295,12 +295,12 @@ static void skirmishimp(PLAYER& plr, DWHActor* actor)
spr.lotag -= TICSPERFRAME;
if (spr.lotag < 0)
newstatus(i, FACE);
SetNewStatus(actor, FACE);
short osectnum = spr.sectnum;
int movestat = aimove(i);
if ((movestat & kHitTypeMask) != kHitFloor && movestat != 0) {
spr.ang = getangle(plr.x - spr.x, plr.y - spr.y);
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(i);
@ -336,7 +336,7 @@ static void checkexplimp(PLAYER& plr, DWHActor* actor)
|| tspr.picnum == MONSTERBALL) {
spr.hitag -= TICSPERFRAME << 2;
if (spr.hitag < 0) {
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
}
}

View file

@ -29,7 +29,7 @@ static void chasejudy(PLAYER& plr, DWHActor* actor)
if (krand() % 63 == 0) {
if (cansee(plr.x, plr.y, plr.z, plr.sector, sprite[i].x, sprite[i].y,
sprite[i].z - (tileHeight(sprite[i].picnum) << 7), sprite[i].sectnum))// && invisibletime < 0)
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
}
else {
checksight(plr, i);
@ -38,16 +38,16 @@ static void chasejudy(PLAYER& plr, DWHActor* actor)
if ((movestat & kHitTypeMask) == kHitFloor)
{
spr.ang = (short)((spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
return;
}
}
else {
if (krand() % 8 == 0) // NEW
newstatus(i, ATTACK); // NEW
SetNewStatus(actor, ATTACK); // NEW
else { // NEW
sprite[i].ang = (short)(((krand() & 512 - 256) + sprite[i].ang + 1024) & 2047); // NEW
newstatus(i, FLEE); // NEW
SetNewStatus(actor, FLEE); // NEW
}
}
}
@ -66,7 +66,7 @@ static void chasejudy(PLAYER& plr, DWHActor* actor)
if (sector[osectnum].lotag == KILLSECTOR) {
spr.hitag--;
if (spr.hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
setsprite(i, spr.x, spr.y, spr.z);
@ -79,7 +79,7 @@ static void resurectjudy(PLAYER& plr, DWHActor* actor)
spr.lotag -= TICSPERFRAME;
if (spr.lotag < 0) {
newstatus(i, FACE);
SetNewStatus(actor, FACE);
spr.picnum = JUDY;
spr.hitag = (short)adjusthp(200);
spr.lotag = 100;
@ -120,7 +120,7 @@ static void painjudy(PLAYER& plr, DWHActor* actor)
if (spr.lotag < 0) {
spr.picnum = JUDY;
spr.ang = plr.angle.ang.asbuild();
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
aimove(i);
@ -141,23 +141,23 @@ static void facejudy(PLAYER& plr, DWHActor* actor)
if (cansee && plr.invisibletime < 0) {
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else {
spr.owner = plr.spritenum;
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
}
else { // get off the wall
if (spr.owner == plr.spritenum) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang) & 2047);
newstatus(i, FINDME);
SetNewStatus(actor, FINDME);
}
else if (cansee) newstatus(i, FLEE);
else if (cansee) SetNewStatus(actor, FLEE);
}
if (checkdist(i, plr.x, plr.y, plr.z))
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
}
static void attackjudy(PLAYER& plr, DWHActor* actor)
@ -182,9 +182,9 @@ static void attackjudy(PLAYER& plr, DWHActor* actor)
if (sprite[i].lotag < 0) {
if (cansee(plr.x, plr.y, plr.z, plr.sector, sprite[i].x, sprite[i].y,
sprite[i].z - (tileHeight(sprite[i].picnum) << 7), sprite[i].sectnum))
newstatus(i, CAST);
SetNewStatus(actor, CAST);
else
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
else
sprite[i].ang = getangle(plr.x - sprite[i].x, plr.y - sprite[i].y);
@ -208,11 +208,11 @@ static void fleejudy(PLAYER& plr, DWHActor* actor)
}
else {
spr.ang = getangle(plr.x - spr.x, plr.y - spr.y);
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
}
if (spr.lotag < 0)
newstatus(i, FACE);
SetNewStatus(actor, FACE);
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(i);
@ -291,7 +291,7 @@ static void castjudy(PLAYER& plr, DWHActor* actor)
}
}
}
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
else if (spr.picnum == JUDYATTACK2 + 8) {
sprite[i].picnum = JUDYATTACK2;
@ -337,7 +337,7 @@ static void castjudy(PLAYER& plr, DWHActor* actor)
}
}
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
checksector6(i);
}
@ -355,10 +355,10 @@ static void diejudy(PLAYER& plr, DWHActor* actor)
if (spr.picnum == JUDYDEAD) {
if (difficulty == 4)
newstatus(i, RESURECT);
SetNewStatus(actor, RESURECT);
else {
kills++;
newstatus(i, DEAD);
SetNewStatus(actor, DEAD);
}
}
}
@ -382,7 +382,7 @@ void judyOperate(PLAYER& plr)
spri.lotag = 12;
if (spri.picnum == JUDYSIT + 4) {
spri.picnum = JUDY;
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
}
}

View file

@ -19,7 +19,7 @@ static void chasekatie(PLAYER& plr, DWHActor* actor)
if (krand() % 63 == 0) {
if (cansee(plr.x, plr.y, plr.z, plr.sector, sprite[i].x, sprite[i].y,
sprite[i].z - (tileHeight(sprite[i].picnum) << 7), sprite[i].sectnum))// && invisibletime < 0)
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
}
else {
checksight(plr, i);
@ -28,16 +28,16 @@ static void chasekatie(PLAYER& plr, DWHActor* actor)
if ((movestat & kHitTypeMask) == kHitFloor)
{
spr.ang = (short)((spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
return;
}
}
else {
if (krand() % 8 == 0) // NEW
newstatus(i, ATTACK); // NEW
SetNewStatus(actor, ATTACK); // NEW
else { // NEW
sprite[i].ang = (short)(((krand() & 512 - 256) + sprite[i].ang + 1024) & 2047); // NEW
newstatus(i, FLEE); // NEW
SetNewStatus(actor, FLEE); // NEW
}
}
}
@ -56,7 +56,7 @@ static void chasekatie(PLAYER& plr, DWHActor* actor)
if (sector[osectnum].lotag == KILLSECTOR) {
spr.hitag--;
if (spr.hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
setsprite(i, spr.x, spr.y, spr.z);
@ -69,7 +69,7 @@ static void resurectkatie(PLAYER& plr, DWHActor* actor)
spr.lotag -= TICSPERFRAME;
if (spr.lotag < 0) {
newstatus(i, FACE);
SetNewStatus(actor, FACE);
spr.picnum = KATIE;
spr.hitag = (short)adjusthp(200);
spr.lotag = 100;
@ -94,7 +94,7 @@ static void painkatie(PLAYER& plr, DWHActor* actor)
if (spr.lotag < 0) {
spr.picnum = KATIE;
spr.ang = plr.angle.ang.asbuild();
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
aimove(i);
@ -115,23 +115,23 @@ static void facekatie(PLAYER& plr, DWHActor* actor)
if (cansee && plr.invisibletime < 0) {
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else {
spr.owner = plr.spritenum;
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
}
else { // get off the wall
if (spr.owner == plr.spritenum) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang) & 2047);
newstatus(i, FINDME);
SetNewStatus(actor, FINDME);
}
else if (cansee) newstatus(i, FLEE);
else if (cansee) SetNewStatus(actor, FLEE);
}
if (checkdist(i, plr.x, plr.y, plr.z))
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
}
static void attackkatie(PLAYER& plr, DWHActor* actor)
@ -155,9 +155,9 @@ static void attackkatie(PLAYER& plr, DWHActor* actor)
if (sprite[i].lotag < 0) {
if (cansee(plr.x, plr.y, plr.z, plr.sector, sprite[i].x, sprite[i].y,
sprite[i].z - (tileHeight(sprite[i].picnum) << 7), sprite[i].sectnum))
newstatus(i, CAST);
SetNewStatus(actor, CAST);
else
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
else
sprite[i].ang = getangle(plr.x - sprite[i].x, plr.y - sprite[i].y);
@ -181,16 +181,16 @@ static void fleekatie(PLAYER& plr, DWHActor* actor)
}
else {
spr.ang = getangle(plr.x - spr.x, plr.y - spr.y);
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
}
if (movestat != 0) {
spr.ang = getangle(plr.x - spr.x, plr.y - spr.y);
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
if (spr.lotag < 0)
newstatus(i, FACE);
SetNewStatus(actor, FACE);
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(i);
@ -229,7 +229,7 @@ static void castkatie(PLAYER& plr, DWHActor* actor)
spr.picnum = KATIE;
spr.extra--;
spritesound(S_FIREBALL, &spr);
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
}
@ -245,7 +245,7 @@ static void castkatie(PLAYER& plr, DWHActor* actor)
}
spr.picnum = KATIE;
spritesound(S_FIREBALL, &spr);
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
spr.extra--;
}
}
@ -254,7 +254,7 @@ static void castkatie(PLAYER& plr, DWHActor* actor)
spr.picnum = KATIE;
spritesound(S_FIREBALL, &spr);
castspell(plr, i);
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
spr.extra++;
}
checksector6(i);
@ -273,10 +273,10 @@ static void diekatie(PLAYER& plr, DWHActor* actor)
if (spr.picnum == KATIEDEAD) {
if (difficulty == 4)
newstatus(i, RESURECT);
SetNewStatus(actor, RESURECT);
else {
kills++;
newstatus(i, DEAD);
SetNewStatus(actor, DEAD);
}
}
}

View file

@ -23,21 +23,21 @@ static void chasekobold(PLAYER& plr, DWHActor* actor)
if (checkdist(plr, i)) {
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
}
else if (krand() % 63 > 60) {
spr.ang = (short)(((krand() & 128 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else {
int movestat = aimove(i);
if ((movestat & kHitTypeMask) == kHitFloor)
{
spr.ang = (short)((spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
return;
}
@ -47,21 +47,21 @@ static void chasekobold(PLAYER& plr, DWHActor* actor)
spr.ang = daang;
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else
newstatus(i, SKIRMISH);
SetNewStatus(actor, SKIRMISH);
}
else {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, SKIRMISH);
SetNewStatus(actor, SKIRMISH);
}
}
}
}
else {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
getzrange(spr.x, spr.y, spr.z - 1, spr.sectnum, (spr.clipdist) << 2, CLIPMASK0);
@ -78,7 +78,7 @@ static void chasekobold(PLAYER& plr, DWHActor* actor)
if (sector[osectnum].lotag == KILLSECTOR) {
spr.hitag--;
if (spr.hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
setsprite(i, spr.x, spr.y, spr.z);
@ -87,7 +87,7 @@ static void chasekobold(PLAYER& plr, DWHActor* actor)
|| sector[spr.sectnum].floorpicnum == LAVA1 || sector[spr.sectnum].floorpicnum == ANILAVA)) {
spr.hitag--;
if (spr.hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
checkexplkobold(plr, actor);
@ -106,10 +106,10 @@ static void diekobold(PLAYER& plr, DWHActor* actor)
if (spr.picnum == KOBOLDDEAD) {
if (difficulty == 4)
newstatus(i, RESURECT);
SetNewStatus(actor, RESURECT);
else {
kills++;
newstatus(i, DEAD);
SetNewStatus(actor, DEAD);
}
}
}
@ -124,7 +124,7 @@ static void painkobold(PLAYER& plr, DWHActor* actor)
if (spr.lotag < 0) {
spr.picnum = KOBOLD;
spr.ang = plr.angle.ang.asbuild();
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
aimove(i);
@ -147,23 +147,23 @@ static void facekobold(PLAYER& plr, DWHActor* actor)
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else {
spr.owner = plr.spritenum;
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
}
else { // get off the wall
if (spr.owner == plr.spritenum) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang) & 2047);
newstatus(i, FINDME);
SetNewStatus(actor, FINDME);
}
else if (cansee) newstatus(i, FLEE);
else if (cansee) SetNewStatus(actor, FLEE);
}
if (checkdist(plr, i))
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
checkexplkobold(plr, actor);
}
@ -186,11 +186,11 @@ static void fleekobold(PLAYER& plr, DWHActor* actor)
}
else {
spr.ang = getangle(plr.x - spr.x, plr.y - spr.y);
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
}
if (spr.lotag < 0)
newstatus(i, FACE);
SetNewStatus(actor, FACE);
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(i);
@ -233,10 +233,10 @@ static void attackkobold(PLAYER& plr, DWHActor* actor)
else if (spr.lotag < 0) {
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047); // NEW
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
spr.lotag -= TICSPERFRAME;
@ -250,7 +250,7 @@ static void resurectkobold(PLAYER& plr, DWHActor* actor)
spr.lotag -= TICSPERFRAME;
if (spr.lotag < 0) {
newstatus(i, FACE);
SetNewStatus(actor, FACE);
spr.picnum = KOBOLD;
spr.hitag = (short)adjusthp(30);
spr.lotag = 100;
@ -278,7 +278,7 @@ static void frozenkobold(PLAYER& plr, DWHActor* actor)
if (spr.lotag < 0) {
spr.pal = 0;
spr.picnum = KOBOLD;
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
}
@ -290,7 +290,7 @@ static void nukedkobold(PLAYER& plr, DWHActor* actor)
if (isWh2()) {
chunksofmeat(plr, i, spr.x, spr.y, spr.z, spr.sectnum, spr.ang);
trailingsmoke(i, false);
newstatus((short)i, DIE);
SetNewStatus(actor, DIE);
return;
}
@ -313,12 +313,12 @@ static void skirmishkobold(PLAYER& plr, DWHActor* actor)
spr.lotag -= TICSPERFRAME;
if (spr.lotag < 0)
newstatus(i, FACE);
SetNewStatus(actor, FACE);
short osectnum = spr.sectnum;
int movestat = aimove(i);
if ((movestat & kHitTypeMask) != kHitFloor && movestat != 0) {
spr.ang = getangle(plr.x - spr.x, plr.y - spr.y);
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(i);
@ -355,7 +355,7 @@ static void checkexplkobold(PLAYER& plr, DWHActor* actor)
|| tspr.picnum == MONSTERBALL) {
spr.hitag -= TICSPERFRAME << 2;
if (spr.hitag < 0) {
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
}
}

View file

@ -14,10 +14,10 @@ static void standkurt(PLAYER& plr, DWHActor* actor)
plr.z, plr.sector) && plr.invisibletime < 0) {
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
}
}
@ -29,7 +29,7 @@ static void nukedkurt(PLAYER& plr, DWHActor* actor)
chunksofmeat(plr, i, spr.x, spr.y, spr.z, spr.sectnum, spr.ang);
trailingsmoke(i, false);
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
static void kurtExplo(PLAYER& plr, DWHActor* actor)

View file

@ -20,21 +20,21 @@ static void chaseminotaur(PLAYER& plr, DWHActor* actor)
if (checkdist(plr, i)) {
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
}
else if (krand() % 63 > 60) {
spr.ang = (short)(((krand() & 128 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else {
int movestat = aimove(i);
if ((movestat & kHitTypeMask) == kHitFloor)
{
spr.ang = (short)((spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
return;
}
@ -44,21 +44,21 @@ static void chaseminotaur(PLAYER& plr, DWHActor* actor)
spr.ang = daang;
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else
newstatus(i, SKIRMISH);
SetNewStatus(actor, SKIRMISH);
}
else {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, SKIRMISH);
SetNewStatus(actor, SKIRMISH);
}
}
}
}
else {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
getzrange(spr.x, spr.y, spr.z - 1, spr.sectnum, (spr.clipdist) << 2, CLIPMASK0);
@ -75,7 +75,7 @@ static void chaseminotaur(PLAYER& plr, DWHActor* actor)
if (sector[osectnum].lotag == KILLSECTOR) {
spr.hitag--;
if (spr.hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
setsprite(i, spr.x, spr.y, spr.z);
@ -84,7 +84,7 @@ static void chaseminotaur(PLAYER& plr, DWHActor* actor)
|| sector[spr.sectnum].floorpicnum == LAVA1 || sector[spr.sectnum].floorpicnum == ANILAVA)) {
spr.hitag--;
if (spr.hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
checkexplminotaur(plr, actor);
@ -97,7 +97,7 @@ static void resurectminotaur(PLAYER& plr, DWHActor* actor)
spr.lotag -= TICSPERFRAME;
if (spr.lotag < 0) {
newstatus(i, FACE);
SetNewStatus(actor, FACE);
spr.picnum = MINOTAUR;
spr.hitag = (short)adjusthp(100);
spr.lotag = 100;
@ -113,12 +113,12 @@ static void skirmishminotaur(PLAYER& plr, DWHActor* actor)
spr.lotag -= TICSPERFRAME;
if (spr.lotag < 0)
newstatus(i, FACE);
SetNewStatus(actor, FACE);
short osectnum = spr.sectnum;
int movestat = aimove(i);
if ((movestat & kHitTypeMask) != kHitFloor && movestat != 0) {
spr.ang = getangle(plr.x - spr.x, plr.y - spr.y);
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(i);
@ -141,7 +141,7 @@ static void nukedminotaur(PLAYER& plr, DWHActor* actor)
if (isWh2()) {
chunksofmeat(plr, i, spr.x, spr.y, spr.z, spr.sectnum, spr.ang);
trailingsmoke(i, false);
newstatus((short)i, DIE);
SetNewStatus(actor, DIE);
return;
}
@ -165,7 +165,7 @@ static void painminotaur(PLAYER& plr, DWHActor* actor)
if (spr.lotag < 0) {
spr.picnum = MINOTAUR;
spr.ang = plr.angle.ang.asbuild();
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
aimove(i);
@ -188,23 +188,23 @@ static void faceminotaur(PLAYER& plr, DWHActor* actor)
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else {
spr.owner = plr.spritenum;
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
}
else { // get off the wall
if (spr.owner == plr.spritenum) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang) & 2047);
newstatus(i, FINDME);
SetNewStatus(actor, FINDME);
}
else if (cansee) newstatus(i, FLEE);
else if (cansee) SetNewStatus(actor, FLEE);
}
if (checkdist(plr, i))
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
checkexplminotaur(plr, actor);
}
@ -221,7 +221,7 @@ static void attackminotaur(PLAYER& plr, DWHActor* actor)
case TYPELAVA:
sprite[i].hitag--;
if (sprite[i].hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
case TYPEWATER:
spr.z += tileHeight(spr.picnum) << 5;
break;
@ -239,10 +239,10 @@ static void attackminotaur(PLAYER& plr, DWHActor* actor)
else if (spr.lotag < 0) {
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047); // NEW
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
spr.lotag -= TICSPERFRAME;
@ -262,10 +262,10 @@ static void dieminotaur(PLAYER& plr, DWHActor* actor)
if (spr.picnum == MINOTAURDEAD) {
if (difficulty == 4)
newstatus(i, RESURECT);
SetNewStatus(actor, RESURECT);
else {
kills++;
newstatus(i, DEAD);
SetNewStatus(actor, DEAD);
}
}
}
@ -289,11 +289,11 @@ static void fleeminotaur(PLAYER& plr, DWHActor* actor)
}
else {
spr.ang = getangle(plr.x - spr.x, plr.y - spr.y);
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
}
if (spr.lotag < 0)
newstatus(i, FACE);
SetNewStatus(actor, FACE);
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(i);
@ -317,7 +317,7 @@ static void frozenminotaur(PLAYER& plr, DWHActor* actor)
if (spr.lotag < 0) {
spr.pal = 0;
spr.picnum = MINOTAUR;
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
}
@ -351,7 +351,7 @@ static void checkexplminotaur(PLAYER& plr, DWHActor* actor)
|| tspr.picnum == MONSTERBALL) {
spr.hitag -= TICSPERFRAME << 2;
if (spr.hitag < 0) {
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
}
}

View file

@ -15,10 +15,10 @@ static void standnewguy(PLAYER& plr, DWHActor* actor)
plr.z, plr.sector) && plr.invisibletime < 0) {
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
}
}
@ -38,21 +38,21 @@ static void chasenewguy(PLAYER& plr, DWHActor* actor)
if (checkdist(plr, i)) {
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
}
else if (krand() % 63 > 60) {
spr.ang = (short)(((krand() & 128 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else {
int movestat = aimove(i);
if ((movestat & kHitTypeMask) == kHitFloor)
{
spr.ang = (short)((spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
return;
}
@ -62,21 +62,21 @@ static void chasenewguy(PLAYER& plr, DWHActor* actor)
spr.ang = daang;
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else
newstatus(i, SKIRMISH);
SetNewStatus(actor, SKIRMISH);
}
else {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, SKIRMISH);
SetNewStatus(actor, SKIRMISH);
}
}
}
}
else {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
getzrange(spr.x, spr.y, spr.z - 1, spr.sectnum, (spr.clipdist) << 2, CLIPMASK0);
@ -93,7 +93,7 @@ static void chasenewguy(PLAYER& plr, DWHActor* actor)
if (sector[osectnum].lotag == KILLSECTOR) {
spr.hitag--;
if (spr.hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
setsprite(i, spr.x, spr.y, spr.z);
@ -102,7 +102,7 @@ static void chasenewguy(PLAYER& plr, DWHActor* actor)
|| sector[spr.sectnum].floorpicnum == LAVA1 || sector[spr.sectnum].floorpicnum == ANILAVA)) {
spr.hitag--;
if (spr.hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
}
@ -113,7 +113,7 @@ static void resurectnewguy(PLAYER& plr, DWHActor* actor)
spr.lotag -= TICSPERFRAME;
if (spr.lotag < 0) {
newstatus(i, FACE);
SetNewStatus(actor, FACE);
int j = krand() % 3;
switch (j) {
case 0:
@ -147,12 +147,12 @@ static void skirmishnewguy(PLAYER& plr, DWHActor* actor)
spr.lotag -= TICSPERFRAME;
if (spr.lotag < 0)
newstatus(i, FACE);
SetNewStatus(actor, FACE);
short osectnum = spr.sectnum;
int movestat = aimove(i);
if ((movestat & kHitTypeMask) != kHitFloor && movestat != 0) {
spr.ang = getangle(plr.x - spr.x, plr.y - spr.y);
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(i);
@ -179,7 +179,7 @@ static void nukednewguy(PLAYER& plr, DWHActor* actor)
chunksofmeat(plr, i, spr.x, spr.y, spr.z, spr.sectnum, spr.ang);
trailingsmoke(i, false);
newstatus((short)i, DIE);
SetNewStatus(actor, DIE);
}
static void painnewguy(PLAYER& plr, DWHActor* actor)
@ -191,7 +191,7 @@ static void painnewguy(PLAYER& plr, DWHActor* actor)
if (spr.lotag < 0) {
spr.picnum = NEWGUY;
spr.ang = plr.angle.ang.asbuild();
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
aimove(i);
@ -211,23 +211,23 @@ static void facenewguy(PLAYER& plr, DWHActor* actor)
spr.ang = getangle(plr.x - spr.x, plr.y - spr.y);
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else {
spr.owner = plr.spritenum;
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
}
else { // get off the wall
if (spr.owner == plr.spritenum) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang) & 2047);
newstatus(i, FINDME);
SetNewStatus(actor, FINDME);
}
else if (cansee) newstatus(i, FLEE);
else if (cansee) SetNewStatus(actor, FLEE);
}
if (checkdist(plr, i))
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
}
static void fleenewguy(PLAYER& plr, DWHActor* actor)
@ -249,12 +249,12 @@ static void fleenewguy(PLAYER& plr, DWHActor* actor)
else {
if (plr.invisibletime < 0)
spr.ang = getangle(plr.x - spr.x, plr.y - spr.y);
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
}
if (spr.lotag < 0)
newstatus(i, FACE);
SetNewStatus(actor, FACE);
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(i);
@ -291,9 +291,9 @@ static void attacknewguy(PLAYER& plr, DWHActor* actor)
if (sprite[i].lotag < 0) {
if (cansee(plr.x, plr.y, plr.z, plr.sector, sprite[i].x, sprite[i].y,
sprite[i].z - (tileHeight(sprite[i].picnum) << 7), sprite[i].sectnum))
newstatus(i, CAST);
SetNewStatus(actor, CAST);
else
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
else
sprite[i].ang = getangle(plr.x - sprite[i].x, plr.y - sprite[i].y);
@ -310,10 +310,10 @@ static void attacknewguy(PLAYER& plr, DWHActor* actor)
else if (spr.lotag < 0) {
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047); // NEW
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
spr.lotag -= TICSPERFRAME;
@ -335,10 +335,10 @@ static void dienewguy(PLAYER& plr, DWHActor* actor)
if (spr.picnum == NEWGUYDEAD) {
if (difficulty == 4)
newstatus(i, RESURECT);
SetNewStatus(actor, RESURECT);
else {
kills++;
newstatus(i, DEAD);
SetNewStatus(actor, DEAD);
}
}
}
@ -360,14 +360,14 @@ static void castnewguy(PLAYER& plr, DWHActor* actor)
spr.picnum = NEWGUY;
spritesound(S_WISP, &sprite[i]);
skullycastspell(plr, i);
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
if (spr.picnum == NEWGUYBOW + 2) {
spr.extra--;
spr.picnum = NEWGUY;
spritesound(S_PLRWEAPON3, &sprite[i]);
newguyarrow(i, plr);
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
checksector6(i);
}

View file

@ -6,7 +6,7 @@ BEGIN_WH_NS
static void chaserat(PLAYER& plr, DWHActor* actor)
{
int i = actor->GetSpriteIndex();
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
static void searchrat(PLAYER& plr, DWHActor* actor)
@ -14,7 +14,7 @@ static void searchrat(PLAYER& plr, DWHActor* actor)
int i = actor->GetSpriteIndex();
SPRITE& spr = actor->s();
spr.ang = (short) (((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
static void facerat(PLAYER& plr, DWHActor* actor)
@ -25,7 +25,7 @@ static void facerat(PLAYER& plr, DWHActor* actor)
spr.ang = getangle(plr.x - spr.x, plr.y - spr.y);
spr.ang = (short) (((krand() & 512 - 256) + spr.ang + 1024) & 2047); // NEW
spr.owner = sprite[plr.spritenum].owner;
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
static void dierat(PLAYER& plr, DWHActor* actor)
@ -65,7 +65,7 @@ static void fleerat(PLAYER& plr, DWHActor* actor)
if (abs(plr.x - spr.x) <= 1024 && abs(plr.y - spr.y) <= 1024) {
spr.owner = sprite[plr.spritenum].owner;
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
@ -89,7 +89,7 @@ static void fleerat(PLAYER& plr, DWHActor* actor)
|| sector[spr.sectnum].floorpicnum == LAVA1 || sector[spr.sectnum].floorpicnum == ANILAVA)) {
spr.hitag--;
if (spr.hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
setsprite(i, spr.x, spr.y, spr.z);

View file

@ -20,21 +20,21 @@ static void chaseskeleton(PLAYER& plr, DWHActor* actor)
if (checkdist(plr, i)) {
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
}
else if (krand() % 63 > 60) {
spr.ang = (short)(((krand() & 128 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else {
int movestat = aimove(i);
if ((movestat & kHitTypeMask) == kHitFloor)
{
spr.ang = (short)((spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
return;
}
@ -44,21 +44,21 @@ static void chaseskeleton(PLAYER& plr, DWHActor* actor)
spr.ang = daang;
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else
newstatus(i, SKIRMISH);
SetNewStatus(actor, SKIRMISH);
}
else {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, SKIRMISH);
SetNewStatus(actor, SKIRMISH);
}
}
}
}
else {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
getzrange(spr.x, spr.y, spr.z - 1, spr.sectnum, (spr.clipdist) << 2, CLIPMASK0);
@ -75,7 +75,7 @@ static void chaseskeleton(PLAYER& plr, DWHActor* actor)
if (sector[osectnum].lotag == KILLSECTOR) {
spr.hitag--;
if (spr.hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
setsprite(i, spr.x, spr.y, spr.z);
@ -84,7 +84,7 @@ static void chaseskeleton(PLAYER& plr, DWHActor* actor)
|| sector[spr.sectnum].floorpicnum == LAVA1 || sector[spr.sectnum].floorpicnum == ANILAVA)) {
spr.hitag--;
if (spr.hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
checkexplskeleton(plr, actor);
@ -103,10 +103,10 @@ static void dieskeleton(PLAYER& plr, DWHActor* actor)
if (spr.picnum == SKELETONDEAD) {
if (difficulty == 4)
newstatus(i, RESURECT);
SetNewStatus(actor, RESURECT);
else {
kills++;
newstatus(i, DEAD);
SetNewStatus(actor, DEAD);
}
}
}
@ -125,23 +125,23 @@ static void faceskeleton(PLAYER& plr, DWHActor* actor)
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else {
spr.owner = plr.spritenum;
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
}
else { // get off the wall
if (spr.owner == plr.spritenum) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang) & 2047);
newstatus(i, FINDME);
SetNewStatus(actor, FINDME);
}
else if (cansee) newstatus(i, FLEE);
else if (cansee) SetNewStatus(actor, FLEE);
}
if (checkdist(plr, i))
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
checkexplskeleton(plr, actor);
}
@ -166,12 +166,12 @@ static void fleeskeleton(PLAYER& plr, DWHActor* actor)
}
else {
spr.ang = getangle(plr.x - spr.x, plr.y - spr.y);
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
}
if (spr.lotag < 0)
newstatus(i, FACE);
SetNewStatus(actor, FACE);
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(i);
@ -197,16 +197,16 @@ static void standskeleton(PLAYER& plr, DWHActor* actor)
spr.sectnum) && plr.invisibletime < 0) {
if (spr.picnum == HANGMAN) {
newstatus(i, CHILL);
SetNewStatus(actor, CHILL);
spritesound(S_SKELSEE, &spr);
}
else {
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047); // NEW
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
}
}
@ -242,10 +242,10 @@ static void attackskeleton(PLAYER& plr, DWHActor* actor)
else if (spr.lotag < 0) {
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047); // NEW
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
spr.lotag -= TICSPERFRAME;
@ -259,7 +259,7 @@ static void resurectskeleton(PLAYER& plr, DWHActor* actor)
spr.lotag -= TICSPERFRAME;
if (spr.lotag < 0) {
newstatus(i, FACE);
SetNewStatus(actor, FACE);
spr.picnum = SKELETON;
spr.hitag = (short)adjusthp(10);
spr.lotag = 100;
@ -285,7 +285,7 @@ static void frozenskeleton(PLAYER& plr, DWHActor* actor)
if (spr.lotag < 0) {
spr.pal = 0;
spr.picnum = SKELETON;
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
}
@ -297,7 +297,7 @@ static void nukedskeleton(PLAYER& plr, DWHActor* actor)
if (isWh2()) {
chunksofmeat(plr, i, spr.x, spr.y, spr.z, spr.sectnum, spr.ang);
trailingsmoke(i, false);
newstatus((short)i, DIE);
SetNewStatus(actor, DIE);
return;
}
@ -320,12 +320,12 @@ static void skirmishskeleton(PLAYER& plr, DWHActor* actor)
spr.lotag -= TICSPERFRAME;
if (spr.lotag < 0)
newstatus(i, FACE);
SetNewStatus(actor, FACE);
short osectnum = spr.sectnum;
int movestat = aimove(i);
if ((movestat & kHitTypeMask) != kHitFloor && movestat != 0) {
spr.ang = getangle(plr.x - spr.x, plr.y - spr.y);
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(i);
@ -351,7 +351,7 @@ void skeletonChill(PLAYER& plr, DWHActor* actor)
spr.lotag = 18;
if (spr.picnum == HANGMAN + 10) {
spr.picnum = SKELETON;
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
}
}
@ -376,7 +376,7 @@ static void checkexplskeleton(PLAYER& plr, DWHActor* actor)
|| tspr.picnum == MONSTERBALL) {
spr.hitag -= TICSPERFRAME << 2;
if (spr.hitag < 0) {
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
}
}

View file

@ -17,7 +17,7 @@ static void chaseskully(PLAYER& plr, DWHActor* actor)
if (krand() % 63 == 0) {
if (cansee(plr.x, plr.y, plr.z, plr.sector, sprite[i].x, sprite[i].y,
sprite[i].z - (tileHeight(sprite[i].picnum) << 7), sprite[i].sectnum))// && invisibletime < 0)
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
}
else {
checksight(plr, i);
@ -25,16 +25,16 @@ static void chaseskully(PLAYER& plr, DWHActor* actor)
if ((aimove(i) & kHitTypeMask) == kHitFloor)
{
spr.ang = (short)((spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
return;
}
}
else {
if (krand() % 8 == 0) // NEW
newstatus(i, ATTACK); // NEW
SetNewStatus(actor, ATTACK); // NEW
else { // NEW
sprite[i].ang = (short)(((krand() & 512 - 256) + sprite[i].ang + 1024) & 2047); // NEW
newstatus(i, FLEE); // NEW
SetNewStatus(actor, FLEE); // NEW
}
}
}
@ -53,7 +53,7 @@ static void chaseskully(PLAYER& plr, DWHActor* actor)
if (sector[osectnum].lotag == KILLSECTOR) {
spr.hitag--;
if (spr.hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
setsprite(i, spr.x, spr.y, spr.z);
@ -66,7 +66,7 @@ static void resurectskully(PLAYER& plr, DWHActor* actor)
spr.lotag -= TICSPERFRAME;
if (spr.lotag < 0) {
newstatus(i, FACE);
SetNewStatus(actor, FACE);
spr.picnum = SKULLY;
spr.hitag = (short)adjusthp(100);
spr.lotag = 100;
@ -107,7 +107,7 @@ static void painskully(PLAYER& plr, DWHActor* actor)
if (spr.lotag < 0) {
spr.picnum = SKULLY;
spr.ang = plr.angle.ang.asbuild();
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
aimove(i);
@ -128,23 +128,23 @@ static void faceskully(PLAYER& plr, DWHActor* actor)
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else {
spr.owner = plr.spritenum;
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
}
else { // get off the wall
if (spr.owner == plr.spritenum) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang) & 2047);
newstatus(i, FINDME);
SetNewStatus(actor, FINDME);
}
else if (cansee) newstatus(i, FLEE);
else if (cansee) SetNewStatus(actor, FLEE);
}
if (checkdist(plr, i))
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
}
static void attackskully(PLAYER& plr, DWHActor* actor)
@ -168,9 +168,9 @@ static void attackskully(PLAYER& plr, DWHActor* actor)
if (sprite[i].lotag < 0) {
if (cansee(plr.x, plr.y, plr.z, plr.sector, sprite[i].x, sprite[i].y,
sprite[i].z - (tileHeight(sprite[i].picnum) << 7), sprite[i].sectnum))
newstatus(i, CAST);
SetNewStatus(actor, CAST);
else
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
else
sprite[i].ang = getangle(plr.x - sprite[i].x, plr.y - sprite[i].y);
@ -194,11 +194,11 @@ static void fleeskully(PLAYER& plr, DWHActor* actor)
}
else {
spr.ang = getangle(plr.x - spr.x, plr.y - spr.y);
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
}
if (spr.lotag < 0)
newstatus(i, FACE);
SetNewStatus(actor, FACE);
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(i);
@ -226,7 +226,7 @@ static void castskully(PLAYER& plr, DWHActor* actor)
sprite[i].picnum = SKULLY;
spritesound(S_SKULLWITCH1 + krand() % 3, &sprite[i]);
skullycastspell(plr, i);
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
checksector6(i);
}
@ -244,10 +244,10 @@ static void dieskully(PLAYER& plr, DWHActor* actor)
if (spr.picnum == SKULLYDEAD) {
if (difficulty == 4)
newstatus(i, RESURECT);
SetNewStatus(actor, RESURECT);
else {
kills++;
newstatus(i, DEAD);
SetNewStatus(actor, DEAD);
}
}
}

View file

@ -20,21 +20,21 @@ static void chasespider(PLAYER& plr, DWHActor* actor)
if (checkdist(plr, i)) {
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
}
else if (krand() % 63 > 60) {
spr.ang = (short)(((krand() & 128 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else {
int movestat = aimove(i);
if ((movestat & kHitTypeMask) == kHitFloor)
{
spr.ang = (short)((spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
return;
}
@ -44,21 +44,21 @@ static void chasespider(PLAYER& plr, DWHActor* actor)
spr.ang = daang;
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else
newstatus(i, SKIRMISH);
SetNewStatus(actor, SKIRMISH);
}
else {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, SKIRMISH);
SetNewStatus(actor, SKIRMISH);
}
}
}
}
else {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
getzrange(spr.x, spr.y, spr.z - 1, spr.sectnum, (spr.clipdist) << 2, CLIPMASK0);
@ -75,7 +75,7 @@ static void chasespider(PLAYER& plr, DWHActor* actor)
if (sector[osectnum].lotag == KILLSECTOR) {
spr.hitag--;
if (spr.hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
setsprite(i, spr.x, spr.y, spr.z);
@ -84,7 +84,7 @@ static void chasespider(PLAYER& plr, DWHActor* actor)
|| sector[spr.sectnum].floorpicnum == LAVA2 || sector[spr.sectnum].floorpicnum == LAVA1 || sector[spr.sectnum].floorpicnum == ANILAVA)) {
spr.hitag--;
if (spr.hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
checkexplspider(plr, actor);
@ -97,7 +97,7 @@ static void resurectspider(PLAYER& plr, DWHActor* actor)
spr.lotag -= TICSPERFRAME;
if (spr.lotag < 0) {
newstatus(i, FACE);
SetNewStatus(actor, FACE);
spr.picnum = SPIDER;
spr.hitag = (short)adjusthp(15);
spr.lotag = 100;
@ -113,12 +113,12 @@ static void skirmishspider(PLAYER& plr, DWHActor* actor)
spr.lotag -= TICSPERFRAME;
if (spr.lotag < 0)
newstatus(i, FACE);
SetNewStatus(actor, FACE);
short osectnum = spr.sectnum;
int movestat = aimove(i);
if ((movestat & kHitTypeMask) != kHitFloor && movestat != 0) {
spr.ang = getangle(plr.x - spr.x, plr.y - spr.y);
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(i);
@ -151,7 +151,7 @@ static void frozenspider(PLAYER& plr, DWHActor* actor)
if (spr.lotag < 0) {
spr.pal = 0;
spr.picnum = SPIDER;
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
}
@ -168,23 +168,23 @@ static void facespider(PLAYER& plr, DWHActor* actor)
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else {
spr.owner = plr.spritenum;
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
}
else { // get off the wall
if (spr.owner == plr.spritenum) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang) & 2047);
newstatus(i, FINDME);
SetNewStatus(actor, FINDME);
}
else if (cansee) newstatus(i, FLEE);
else if (cansee) SetNewStatus(actor, FLEE);
}
if (checkdist(plr, i))
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
checkexplspider(plr, actor);
}
@ -201,7 +201,7 @@ static void attackspider(PLAYER& plr, DWHActor* actor)
case TYPELAVA:
sprite[i].hitag--;
if (sprite[i].hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
break;
}
@ -217,7 +217,7 @@ static void attackspider(PLAYER& plr, DWHActor* actor)
plr.poisoned = 1;
plr.poisontime = 7200;
showmessage("Poisoned", 360);
newstatus(i, DIE);
SetNewStatus(actor, DIE);
return;
}
}
@ -225,10 +225,10 @@ static void attackspider(PLAYER& plr, DWHActor* actor)
else if (spr.lotag < 0) {
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047); // NEW
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
spr.lotag -= TICSPERFRAME;
@ -253,12 +253,12 @@ static void fleespider(PLAYER& plr, DWHActor* actor)
}
else {
spr.ang = getangle(plr.x - spr.x, plr.y - spr.y);
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
}
if (spr.lotag < 0)
newstatus(i, FACE);
SetNewStatus(actor, FACE);
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(i);
@ -286,10 +286,10 @@ static void diespider(PLAYER& plr, DWHActor* actor)
if (spr.picnum == SPIDERDEAD) {
if (difficulty == 4)
newstatus(i, RESURECT);
SetNewStatus(actor, RESURECT);
else {
kills++;
newstatus(i, DEAD);
SetNewStatus(actor, DEAD);
}
}
}
@ -316,7 +316,7 @@ static void checkexplspider(PLAYER& plr, DWHActor* actor)
|| tspr.picnum == MONSTERBALL) {
spr.hitag -= TICSPERFRAME << 2;
if (spr.hitag < 0) {
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
}
}

View file

@ -18,7 +18,7 @@ static void chasewillow(PLAYER& plr, DWHActor* actor)
if (krand() % 63 == 0) {
if (cansee(plr.x, plr.y, plr.z, plr.sector, sprite[i].x, sprite[i].y,
sprite[i].z - (tileHeight(sprite[i].picnum) << 7), sprite[i].sectnum) && plr.invisibletime < 0)
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
return;
}
else {
@ -32,10 +32,10 @@ static void chasewillow(PLAYER& plr, DWHActor* actor)
}
else {
if (krand() % 8 == 0) // NEW
newstatus(i, ATTACK); // NEW
SetNewStatus(actor, ATTACK); // NEW
else { // NEW
sprite[i].ang = (short)(((krand() & 512 - 256) + sprite[i].ang + 1024) & 2047); // NEW
newstatus(i, CHASE); // NEW
SetNewStatus(actor, CHASE); // NEW
}
}
}
@ -57,7 +57,7 @@ static void chasewillow(PLAYER& plr, DWHActor* actor)
if (sector[osectnum].lotag == KILLSECTOR) {
spr.hitag--;
if (spr.hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
setsprite(i, spr.x, spr.y, spr.z);
@ -66,7 +66,7 @@ static void chasewillow(PLAYER& plr, DWHActor* actor)
|| sector[spr.sectnum].floorpicnum == LAVA1 || sector[spr.sectnum].floorpicnum == ANILAVA)) {
spr.hitag--;
if (spr.hitag < 0)
newstatus(i, DIE);
SetNewStatus(actor, DIE);
}
}
@ -133,9 +133,9 @@ static void attackwillow(PLAYER& plr, DWHActor* actor)
}
}
else
newstatus(i, DRAIN);
SetNewStatus(actor, DRAIN);
else
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
int floorz = getflorzofslope(spr.sectnum, spr.x, spr.y) - (16 << 8);
@ -154,23 +154,23 @@ static void facewillow(PLAYER& plr, DWHActor* actor)
if (plr.shadowtime > 0) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang + 1024) & 2047);
newstatus(i, FLEE);
SetNewStatus(actor, FLEE);
}
else {
spr.owner = plr.spritenum;
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
}
else { // get off the wall
if (spr.owner == plr.spritenum) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang) & 2047);
newstatus(i, FINDME);
SetNewStatus(actor, FINDME);
}
else newstatus(i, FLEE);
else SetNewStatus(actor, FLEE);
}
if (checkdist(plr, i))
newstatus(i, ATTACK);
SetNewStatus(actor, ATTACK);
}
static void searchwillow(PLAYER& plr, DWHActor* actor)
@ -201,11 +201,11 @@ static void fleewillow(PLAYER& plr, DWHActor* actor)
}
else {
spr.ang = getangle(plr.x - spr.x, plr.y - spr.y);
newstatus(i, FACE);
SetNewStatus(actor, FACE);
}
}
if (spr.lotag < 0)
newstatus(i, FACE);
SetNewStatus(actor, FACE);
if ((spr.sectnum != osectnum) && (sector[spr.sectnum].lotag == 10))
warpsprite(i);
@ -234,10 +234,10 @@ static void diewillow(PLAYER& plr, DWHActor* actor)
if (spr.picnum == WILLOWEXPLO + 2) {
if (difficulty == 4)
newstatus(i, RESURECT);
SetNewStatus(actor, RESURECT);
else {
kills++;
newstatus(i, DEAD);
SetNewStatus(actor, DEAD);
}
}
}
@ -251,7 +251,7 @@ static void nukedwillow(PLAYER& plr, DWHActor* actor)
if (isWh2()) {
chunksofmeat(plr, i, spr.x, spr.y, spr.z, spr.sectnum, spr.ang);
trailingsmoke(i, false);
newstatus((short)i, DIE);
SetNewStatus(actor, DIE);
}
}
@ -283,7 +283,7 @@ static void willowDrain(PLAYER& plr, DWHActor* actor)
spr.z += 6144;
castspell(plr, i);
spr.z = oldz;
newstatus(i, CHASE);
SetNewStatus(actor, CHASE);
}
}

View file

@ -543,6 +543,12 @@ struct GameInterface : public ::GameInterface
};
inline void SetNewStatus(DWHActor* actor, const int seq)
{
void newstatus(short sn, int seq);
newstatus(actor->GetSpriteIndex(), seq);
}
END_WH_NS

View file

@ -197,4 +197,4 @@ inline void ChangeActorStat(DWHActor* actor, int newstat)
changespritestat(actor->GetSpriteIndex(), newstat);
}
END_SW_NS
END_WH_NS

View file

@ -135,7 +135,7 @@ void processobjs(PLAYER& plr) {
}
}
void newstatus(short sn, const int seq) {
void newstatus(short sn, int seq) {
auto actor = &whActors[sn];
auto& spr = actor->s();
switch (seq) {
@ -1871,4 +1871,4 @@ void spawnapentagram(int sn) {
setsprite(j, spawned.x, spawned.y, spawned.z);
}
END_WH_NS
END_WH_NS