mirror of
https://github.com/ZDoom/Raze.git
synced 2025-02-21 02:51:46 +00:00
- handle all newstatus calls in AI code.
Again done by search/replace.
This commit is contained in:
parent
abd19f4e1d
commit
2193597c3e
25 changed files with 536 additions and 530 deletions
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -197,4 +197,4 @@ inline void ChangeActorStat(DWHActor* actor, int newstat)
|
|||
changespritestat(actor->GetSpriteIndex(), newstat);
|
||||
}
|
||||
|
||||
END_SW_NS
|
||||
END_WH_NS
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue