- some smaller stuff.

# Conflicts:
#	source/games/whaven/src/input.cpp
This commit is contained in:
Christoph Oelckers 2021-11-14 21:15:51 +01:00
parent 756f11f746
commit 0138f7e333
6 changed files with 33 additions and 31 deletions

View file

@ -268,7 +268,7 @@ void aiProcess() {
} }
else if (moveStat.type != kHitNone) { else if (moveStat.type != kHitNone) {
if (moveStat.type == kHitWall) { // hit a wall if (moveStat.type == kHitWall) { // hit a wall
actoruse(i); actoruse(actor);
} }
SetNewStatus(actor, FINDME); SetNewStatus(actor, FINDME);
} }
@ -1203,8 +1203,8 @@ PLAYER* aiGetPlayerTarget(DWHActor* actor) {
return &player[pnum]; return &player[pnum];
} }
boolean actoruse(short i) { boolean actoruse(DWHActor* actor) {
SPRITE& spr = sprite[i]; SPRITE& spr = actor->s();
Neartag nearTag; Neartag nearTag;
neartag(spr.x, spr.y, spr.z, spr.sectnum, spr.ang, nearTag, 1024, 3); neartag(spr.x, spr.y, spr.z, spr.sectnum, spr.ang, nearTag, 1024, 3);

View file

@ -136,7 +136,7 @@ extern int checksight_ang;
boolean checksight(PLAYER& plr, DWHActor* actor); boolean checksight(PLAYER& plr, DWHActor* actor);
void monsterweapon(DWHActor*); void monsterweapon(DWHActor*);
PLAYER* aiGetPlayerTarget(DWHActor*); PLAYER* aiGetPlayerTarget(DWHActor*);
boolean actoruse(short i); boolean actoruse(DWHActor* i);
void initAI(); void initAI();
void aiInit(); void aiInit();
@ -163,7 +163,7 @@ void premapSkeleton(DWHActor* actor);
void premapSkully(DWHActor* actor); void premapSkully(DWHActor* actor);
void premapSpider(DWHActor* actor); void premapSpider(DWHActor* actor);
void premapWillow(DWHActor* actor); void premapWillow(DWHActor* actor);
void deaddude(short sn); void deaddude(DWHActor* sn);
inline int findplayer() { inline int findplayer() {

View file

@ -616,9 +616,9 @@ void gonzoProcess(PLAYER& plr)
} }
} }
static short searchpatrol(SPRITE& spr) { static DWHActor* searchpatrol(SPRITE& spr) {
int mindist = 0x7fffffff; int mindist = 0x7fffffff;
short target = -1; DWHActor* target = nullptr;
WHStatIterator it(ATTACK2); WHStatIterator it(ATTACK2);
while (auto itActor = it.Next()) while (auto itActor = it.Next())
@ -629,7 +629,7 @@ static short searchpatrol(SPRITE& spr) {
int dist = abs(tspr.x - spr.x) + abs(tspr.y - spr.y); int dist = abs(tspr.x - spr.x) + abs(tspr.y - spr.y);
if (dist < mindist) { if (dist < mindist) {
mindist = dist; mindist = dist;
target = j; target = itActor;
} }
} }
@ -640,9 +640,9 @@ static boolean patrolprocess(PLAYER& plr, DWHActor* actor)
{ {
SPRITE& spr = actor->s(); SPRITE& spr = actor->s();
short target = searchpatrol(spr); auto target = searchpatrol(spr);
if (target != -1) { if (target != nullptr) {
SPRITE& tspr = sprite[target]; SPRITE& tspr = target->s();
if (cansee(tspr.x, tspr.y, tspr.z, tspr.sectnum, spr.x, spr.y, spr.z - (tileHeight(spr.picnum) << 7), if (cansee(tspr.x, tspr.y, tspr.z, tspr.sectnum, spr.x, spr.y, spr.z - (tileHeight(spr.picnum) << 7),
spr.sectnum)) { spr.sectnum)) {
spr.ang = getangle(tspr.x - spr.x, tspr.y - spr.y); spr.ang = getangle(tspr.x - spr.x, tspr.y - spr.y);
@ -650,7 +650,7 @@ static boolean patrolprocess(PLAYER& plr, DWHActor* actor)
} }
} }
return target != -1; return target != nullptr;
} }
static void gonzopike(DWHActor* actor, PLAYER& plr) { static void gonzopike(DWHActor* actor, PLAYER& plr) {
@ -787,8 +787,9 @@ void premapGonzo(DWHActor* actor) {
} }
} }
void deaddude(short sn) { void deaddude(DWHActor* actor)
auto& spr = sprite[sn]; {
auto& spr = actor->s();
auto spawnedactor = InsertActor(spr.sectnum, DEAD); auto spawnedactor = InsertActor(spr.sectnum, DEAD);
auto& spawned = spawnedactor->s(); auto& spawned = spawnedactor->s();

View file

@ -9,6 +9,7 @@ void analyzesprites(PLAYER& plr, int dasmoothratio,tspritetype* tsprite, int& sp
tspritelistcnt = spritesortcnt; tspritelistcnt = spritesortcnt;
for (int i = spritesortcnt - 1; i >= 0; i--) { for (int i = spritesortcnt - 1; i >= 0; i--) {
SPRITE& tspr = tsprite[i]; SPRITE& tspr = tsprite[i];
auto tactor = &whActors[tspr.owner];
if (plr.nightglowtime <= 0) { if (plr.nightglowtime <= 0) {
if(((tspr.detail != GONZOTYPE && tspr.picnum != GONZOGSHDEAD) || tspr.shade != 31) && tspr.statnum != EVILSPIRIT) if(((tspr.detail != GONZOTYPE && tspr.picnum != GONZOGSHDEAD) || tspr.shade != 31) && tspr.statnum != EVILSPIRIT)
@ -23,7 +24,7 @@ void analyzesprites(PLAYER& plr, int dasmoothratio,tspritetype* tsprite, int& sp
tspr.ang = tspr.interpolatedang(dasmoothratio); tspr.ang = tspr.interpolatedang(dasmoothratio);
} }
switch (sprite[tspr.owner].detail) { switch (tactor->s().detail) {
case GRONTYPE: case GRONTYPE:
if (tspr.picnum == GRONHAL || tspr.picnum == GRONSW || tspr.picnum == GRONSWATTACK if (tspr.picnum == GRONHAL || tspr.picnum == GRONSW || tspr.picnum == GRONSWATTACK
|| tspr.picnum == GRONMU) { || tspr.picnum == GRONMU) {

View file

@ -202,7 +202,7 @@ void processinput(int num) {
int oldposx, oldposy; int oldposx, oldposy;
int dist; int dist;
int feetoffground; int feetoffground;
short onsprite = -1; DWHActor* onsprite = nullptr;
PLAYER& plr = player[num]; PLAYER& plr = player[num];
oldposx = plr.x; oldposx = plr.x;
@ -253,10 +253,10 @@ void processinput(int num) {
if (lohit.type == kHitSprite) { if (lohit.type == kHitSprite) {
auto& spr = lohit.actor->s(); auto& spr = lohit.actor->s();
if ((spr.z - plr.z) <= (getPlayerHeight() << 8)) if ((spr.z - plr.z) <= (getPlayerHeight() << 8))
onsprite = lohit.actor->GetSpriteIndex(); onsprite = lohit.actor;
} }
else else
onsprite = -1; onsprite = nullptr;
feetoffground = (plr.sector != -1) ? (plr.Sector()->floorz - plr.z) : 0; feetoffground = (plr.sector != -1) ? (plr.Sector()->floorz - plr.z) : 0;
@ -479,16 +479,16 @@ void processinput(int num) {
if (abs(plr.plInput.svel) > gi->playerKeyMove() || abs(plr.plInput.fvel) > gi->playerKeyMove()) { if (abs(plr.plInput.svel) > gi->playerKeyMove() || abs(plr.plInput.fvel) > gi->playerKeyMove()) {
dist >>= 2; dist >>= 2;
if (dist > 0 && feetoffground <= (plr.height << 8) || onsprite != -1) { if (dist > 0 && feetoffground <= (plr.height << 8) || onsprite != nullptr) {
oldhoriz = ((dist * bsinf(PlayClock << 5)) * (1. / 524288.)) * (1. / 4.); oldhoriz = ((dist * bsinf(PlayClock << 5)) * (1. / 524288.)) * (1. / 4.);
plr.horizon.addadjustment(oldhoriz); plr.horizon.addadjustment(oldhoriz);
} }
else else
oldhoriz = 0; oldhoriz = 0;
if (onsprite != -1 && dist > 50 && lopoint == 1 && justplayed == 0) { if (onsprite != nullptr && dist > 50 && lopoint == 1 && justplayed == 0) {
switch (sprite[onsprite].picnum) { switch (onsprite->s().picnum) {
case WALLARROW: case WALLARROW:
case OPENCHEST: case OPENCHEST:
case GIFTBOX: case GIFTBOX:
@ -527,9 +527,9 @@ void processinput(int num) {
break; break;
case SPIDER: case SPIDER:
// STOMP // STOMP
spritesound(S_DEADSTEP, &whActors[onsprite]); spritesound(S_DEADSTEP, onsprite);
justplayed = 1; justplayed = 1;
newstatus(onsprite, DIE); SetNewStatus(onsprite, DIE);
break; break;
case FREDDEAD: case FREDDEAD:
@ -552,11 +552,11 @@ void processinput(int num) {
break; break;
} }
if (sprite[onsprite].picnum == RAT) if (onsprite->s().picnum == RAT)
{ {
spritesound(S_RATS1 + (krand() % 2), &whActors[onsprite]); spritesound(S_RATS1 + (krand() % 2), onsprite);
justplayed = 1; justplayed = 1;
deletesprite(onsprite); DeleteActor(onsprite);
} }
} }

View file

@ -1167,7 +1167,7 @@ void newstatus(short sn, int seq) {
ChangeActorStat(actor, DEAD); ChangeActorStat(actor, DEAD);
if (spr.pal == 4) { if (spr.pal == 4) {
ChangeActorStat(actor, SHADE); ChangeActorStat(actor, SHADE);
deaddude(sn); deaddude(actor);
} else { } else {
ChangeActorStat(actor, DEAD); ChangeActorStat(actor, DEAD);
if (spr.shade < 25) if (spr.shade < 25)
@ -1183,7 +1183,7 @@ void newstatus(short sn, int seq) {
spr.cstat &= ~3; spr.cstat &= ~3;
if (spr.pal == 4) { if (spr.pal == 4) {
ChangeActorStat(actor, SHADE); ChangeActorStat(actor, SHADE);
deaddude(sn); deaddude(actor);
} else { } else {
ChangeActorStat(actor, DEAD); ChangeActorStat(actor, DEAD);
monsterweapon(actor); monsterweapon(actor);
@ -1198,7 +1198,7 @@ void newstatus(short sn, int seq) {
spr.cstat &= ~3; spr.cstat &= ~3;
if (spr.pal == 4) { if (spr.pal == 4) {
ChangeActorStat(actor, SHADE); ChangeActorStat(actor, SHADE);
deaddude(sn); deaddude(actor);
} else { } else {
ChangeActorStat(actor, DEAD); ChangeActorStat(actor, DEAD);
monsterweapon(actor); monsterweapon(actor);
@ -1213,7 +1213,7 @@ void newstatus(short sn, int seq) {
spr.cstat &= ~3; spr.cstat &= ~3;
if (spr.pal == 4) { if (spr.pal == 4) {
ChangeActorStat(actor, SHADE); ChangeActorStat(actor, SHADE);
deaddude(sn); deaddude(actor);
} else { } else {
ChangeActorStat(actor, DEAD); ChangeActorStat(actor, DEAD);
monsterweapon(actor); monsterweapon(actor);
@ -1240,7 +1240,7 @@ void newstatus(short sn, int seq) {
else spr.cstat &= ~1; else spr.cstat &= ~1;
if (spr.pal == 4) { if (spr.pal == 4) {
ChangeActorStat(actor, SHADE); ChangeActorStat(actor, SHADE);
deaddude(sn); deaddude(actor);
} else { } else {
ChangeActorStat(actor, DEAD); ChangeActorStat(actor, DEAD);
monsterweapon(actor); monsterweapon(actor);