- handle half of the owner references.

Only unambiguous ones so far.
This commit is contained in:
Christoph Oelckers 2021-11-14 20:04:51 +01:00
parent 372cfbc4e1
commit 1d9d2ac457
27 changed files with 72 additions and 67 deletions

View file

@ -669,7 +669,7 @@ void skullycastspell(PLAYER& plr, DWHActor* actor) {
discrim = 1;
spawned.zvel = (short)(((plr.z + (48 << 8) - spawned.z) << 7) / discrim);
spawned.owner = actor->GetSpriteIndex();
spawnedactor->SetOwner(actor);
spawned.clipdist = 16;
spawned.lotag = 512;
spawned.hitag = 0;

View file

@ -108,12 +108,12 @@ static void facedemon(PLAYER& plr, DWHActor* actor)
SetNewStatus(actor, FLEE);
}
else {
spr.owner = plr.spritenum;
actor->SetOwner(plr.actor());
SetNewStatus(actor, CHASE);
}
}
else { // get off the wall
if (spr.owner == plr.spritenum) {
if (actor->GetOwner() == plr.actor()) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang) & 2047);
SetNewStatus(actor, FINDME);
}

View file

@ -112,12 +112,12 @@ static void facedevil(PLAYER& plr, DWHActor* actor)
SetNewStatus(actor, FLEE);
}
else {
spr.owner = plr.spritenum;
actor->SetOwner(plr.actor());
SetNewStatus(actor, CHASE);
}
}
else { // get off the wall
if (spr.owner == plr.spritenum) {
if (actor->GetOwner() == plr.actor()) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang) & 2047);
SetNewStatus(actor, FINDME);
}

View file

@ -282,12 +282,12 @@ static void facedragon(PLAYER& plr, DWHActor* actor)
SetNewStatus(actor, FLEE);
}
else {
spr.owner = plr.spritenum;
actor->SetOwner(plr.actor());
SetNewStatus(actor, CHASE);
}
}
else { // get off the wall
if (spr.owner == plr.spritenum) {
if (actor->GetOwner() == plr.actor()) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang) & 2047);
SetNewStatus(actor, FINDME);
}
@ -364,7 +364,7 @@ static void firebreath(PLAYER& plr, DWHActor* actor, int a, int b, int c)
else
spawned.zvel = (short)((((plr.z + (8 << 8)) - spawned.z) << 7) / discrim);// NEW
spawned.owner = actor->GetSpriteIndex();
spawnedactor->SetOwner(actor);
spawned.clipdist = 16;
spawned.lotag = 512;
spawned.hitag = 0;

View file

@ -125,12 +125,12 @@ static void facefatwitch(PLAYER& plr, DWHActor* actor)
SetNewStatus(actor, FLEE);
}
else {
spr.owner = plr.spritenum;
actor->SetOwner(plr.actor());
SetNewStatus(actor, CHASE);
}
}
else { // get off the wall
if (spr.owner == plr.spritenum) {
if (actor->GetOwner() == plr.actor()) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang) & 2047);
SetNewStatus(actor, FINDME);
}
@ -268,7 +268,7 @@ static void throwspank(PLAYER& plr, DWHActor* actor)
if (discrim == 0)
discrim = 1;
spawned.zvel = (short)(((plr.z + (48 << 8) - spawned.z) << 7) / discrim);
spawned.owner = actor->GetSpriteIndex();
spawnedactor->SetOwner(actor);
spawned.clipdist = 16;
spawned.lotag = 512;
spawned.hitag = 0;

View file

@ -164,12 +164,12 @@ static void facefish(PLAYER& plr, DWHActor* actor)
SetNewStatus(actor, FLEE);
}
else {
spr.owner = plr.spritenum;
actor->SetOwner(plr.actor());
SetNewStatus(actor, CHASE);
}
}
else { // get off the wall
if (spr.owner == plr.spritenum) {
if (actor->GetOwner() == plr.actor()) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang) & 2047);
SetNewStatus(actor, FINDME);
}

View file

@ -163,12 +163,12 @@ static void facefred(PLAYER& plr, DWHActor* actor)
SetNewStatus(actor, FLEE);
}
else {
spr.owner = plr.spritenum;
actor->SetOwner(plr.actor());
SetNewStatus(actor, CHASE);
}
}
else { // get off the wall
if (spr.owner == plr.spritenum) {
if (actor->GetOwner() == plr.actor()) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang) & 2047);
SetNewStatus(actor, FINDME);
}

View file

@ -142,12 +142,12 @@ static void facegoblin(PLAYER& plr, DWHActor* actor)
SetNewStatus(actor, FLEE);
}
else {
spr.owner = plr.spritenum;
actor->SetOwner(plr.actor());
SetNewStatus(actor, CHASE);
}
}
else { // get off the wall
if (spr.owner == plr.spritenum) {
if (actor->GetOwner() == plr.actor()) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang) & 2047);
SetNewStatus(actor, FINDME);
}

View file

@ -333,12 +333,12 @@ static void facegonzo(PLAYER& plr, DWHActor* actor)
SetNewStatus(actor, FLEE);
}
else {
spr.owner = plr.spritenum;
actor->SetOwner(plr.actor());
SetNewStatus(actor, CHASE);
}
}
else { // get off the wall
if (spr.owner == plr.spritenum) {
if (actor->GetOwner() == plr.actor()) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang) & 2047);
SetNewStatus(actor, FINDME);
}
@ -678,7 +678,7 @@ static void gonzopike(DWHActor* actor, PLAYER& plr) {
spawned.zvel += ((krand() % 256) - 128);
spawned.owner = actor->GetSpriteIndex();
spawnedactor->SetOwner(actor);
spawned.lotag = 1024;
spawned.hitag = 0;
spawned.pal = 0;

View file

@ -261,12 +261,12 @@ static void facegron(PLAYER& plr, DWHActor* actor)
SetNewStatus(actor, FLEE);
}
else {
spr.owner = plr.spritenum;
actor->SetOwner(plr.actor());
SetNewStatus(actor, CHASE);
}
}
else { // get off the wall
if (spr.owner == plr.spritenum) {
if (actor->GetOwner() == plr.actor()) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang) & 2047);
SetNewStatus(actor, FINDME);
}
@ -472,7 +472,7 @@ static void throwhalberd(DWHActor* actor) {
spawned.xvel = (short)((krand() & 256) - 128);
spawned.yvel = (short)((krand() & 256) - 128);
spawned.zvel = (short)((krand() & 256) - 128);
spawned.owner = actor->GetSpriteIndex();
spawnedactor->SetOwner(actor);
spawned.lotag = 0;
spawned.hitag = 0;
spawned.pal = 0;

View file

@ -132,12 +132,12 @@ static void faceguardian(PLAYER& plr, DWHActor* actor)
SetNewStatus(actor, FLEE);
}
else {
spr.owner = plr.spritenum;
actor->SetOwner(plr.actor());
SetNewStatus(actor, CHASE);
}
}
else { // get off the wall
if (spr.owner == plr.spritenum) {
if (actor->GetOwner() == plr.actor()) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang) & 2047);
SetNewStatus(actor, FINDME);
}

View file

@ -176,12 +176,12 @@ static void faceimp(PLAYER& plr, DWHActor* actor)
SetNewStatus(actor, FLEE);
}
else {
spr.owner = plr.spritenum;
actor->SetOwner(plr.actor());
SetNewStatus(actor, CHASE);
}
}
else { // get off the wall
if (spr.owner == plr.spritenum) {
if (actor->GetOwner() == plr.actor()) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang) & 2047);
SetNewStatus(actor, FINDME);
}

View file

@ -137,12 +137,12 @@ static void facejudy(PLAYER& plr, DWHActor* actor)
SetNewStatus(actor, FLEE);
}
else {
spr.owner = plr.spritenum;
actor->SetOwner(plr.actor());
SetNewStatus(actor, CHASE);
}
}
else { // get off the wall
if (spr.owner == plr.spritenum) {
if (actor->GetOwner() == plr.actor()) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang) & 2047);
SetNewStatus(actor, FINDME);
}

View file

@ -112,12 +112,12 @@ static void facekatie(PLAYER& plr, DWHActor* actor)
SetNewStatus(actor, FLEE);
}
else {
spr.owner = plr.spritenum;
actor->SetOwner(plr.actor());
SetNewStatus(actor, CHASE);
}
}
else { // get off the wall
if (spr.owner == plr.spritenum) {
if (actor->GetOwner() == plr.actor()) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang) & 2047);
SetNewStatus(actor, FINDME);
}

View file

@ -146,12 +146,12 @@ static void facekobold(PLAYER& plr, DWHActor* actor)
SetNewStatus(actor, FLEE);
}
else {
spr.owner = plr.spritenum;
actor->SetOwner(plr.actor());
SetNewStatus(actor, CHASE);
}
}
else { // get off the wall
if (spr.owner == plr.spritenum) {
if (actor->GetOwner() == plr.actor()) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang) & 2047);
SetNewStatus(actor, FINDME);
}

View file

@ -185,12 +185,12 @@ static void faceminotaur(PLAYER& plr, DWHActor* actor)
SetNewStatus(actor, FLEE);
}
else {
spr.owner = plr.spritenum;
actor->SetOwner(plr.actor());
SetNewStatus(actor, CHASE);
}
}
else { // get off the wall
if (spr.owner == plr.spritenum) {
if (actor->GetOwner() == plr.actor()) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang) & 2047);
SetNewStatus(actor, FINDME);
}

View file

@ -205,12 +205,12 @@ static void facenewguy(PLAYER& plr, DWHActor* actor)
SetNewStatus(actor, FLEE);
}
else {
spr.owner = plr.spritenum;
actor->SetOwner(plr.actor());
SetNewStatus(actor, CHASE);
}
}
else { // get off the wall
if (spr.owner == plr.spritenum) {
if (actor->GetOwner() == plr.actor()) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang) & 2047);
SetNewStatus(actor, FINDME);
}
@ -385,7 +385,7 @@ static void newguyarrow(DWHActor* actor, PLAYER& plr) {
spawned.zvel += ((krand() % 256) - 128);
spawned.owner = actor->GetSpriteIndex();
spawnedactor->SetOwner(actor);
spawned.lotag = 1024;
spawned.hitag = 0;
spawned.pal = 0;

View file

@ -125,12 +125,12 @@ static void faceskeleton(PLAYER& plr, DWHActor* actor)
SetNewStatus(actor, FLEE);
}
else {
spr.owner = plr.spritenum;
actor->SetOwner(plr.actor());
SetNewStatus(actor, CHASE);
}
}
else { // get off the wall
if (spr.owner == plr.spritenum) {
if (actor->GetOwner() == plr.actor()) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang) & 2047);
SetNewStatus(actor, FINDME);
}

View file

@ -124,12 +124,12 @@ static void faceskully(PLAYER& plr, DWHActor* actor)
SetNewStatus(actor, FLEE);
}
else {
spr.owner = plr.spritenum;
actor->SetOwner(plr.actor());
SetNewStatus(actor, CHASE);
}
}
else { // get off the wall
if (spr.owner == plr.spritenum) {
if (actor->GetOwner() == plr.actor()) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang) & 2047);
SetNewStatus(actor, FINDME);
}

View file

@ -164,12 +164,12 @@ static void facespider(PLAYER& plr, DWHActor* actor)
SetNewStatus(actor, FLEE);
}
else {
spr.owner = plr.spritenum;
actor->SetOwner(plr.actor());
SetNewStatus(actor, CHASE);
}
}
else { // get off the wall
if (spr.owner == plr.spritenum) {
if (actor->GetOwner() == plr.actor()) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang) & 2047);
SetNewStatus(actor, FINDME);
}

View file

@ -154,12 +154,12 @@ static void facewillow(PLAYER& plr, DWHActor* actor)
SetNewStatus(actor, FLEE);
}
else {
spr.owner = plr.spritenum;
actor->SetOwner(plr.actor());
SetNewStatus(actor, CHASE);
}
}
else { // get off the wall
if (spr.owner == plr.spritenum) {
if (actor->GetOwner() == plr.actor()) {
spr.ang = (short)(((krand() & 512 - 256) + spr.ang) & 2047);
SetNewStatus(actor, FINDME);
}

View file

@ -1720,7 +1720,7 @@ void shootgun(PLAYER& plr, float ang, int guntype) {
spawned.xvel = 0;
spawned.yvel = 0;
spawned.zvel = 0;
spawned.owner = plr.actor()->s().owner;
spawnedactor->CopyOwner(plr.actor());
spawned.lotag = 32;
spawned.hitag = 0;
spawned.backuploc();
@ -1771,7 +1771,7 @@ void shootgun(PLAYER& plr, float ang, int guntype) {
spawned.xvel = 0;
spawned.yvel = 0;
spawned.zvel = 0;
spawned.owner = plr.actor()->s().owner;
spawnedactor->CopyOwner(plr.actor());
spawned.lotag = 32;
spawned.hitag = 0;
movesprite(spawnedactor, (bcos(spawned.ang) * TICSPERFRAME) << 3,
@ -1978,7 +1978,7 @@ void shootgun(PLAYER& plr, float ang, int guntype) {
} else {
spawned.zvel = plr.horizon.horiz.asq16() >> 12;
}
spawned.owner = plr.actor()->s().owner;
spawnedactor->CopyOwner(plr.actor());
spawned.lotag = 1024;
spawned.hitag = 0;
spawned.pal = 0;
@ -2005,7 +2005,7 @@ void shootgun(PLAYER& plr, float ang, int guntype) {
spawned.xvel = (short) ((krand() & 256) - 128);
spawned.yvel = (short) ((krand() & 256) - 128);
spawned.zvel = plr.horizon.horiz.asq16() >> 12;
spawned.owner = plr.actor()->s().owner;
spawnedactor->CopyOwner(plr.actor());
spawned.lotag = 1024;
spawned.hitag = 0;
spawned.pal = 0;
@ -2034,7 +2034,7 @@ void shootgun(PLAYER& plr, float ang, int guntype) {
spawned.yvel = (short) ((krand() & 256) - 128);
// spawned.zvel=((krand()&256)-128);
spawned.zvel = plr.horizon.horiz.asq16() >> 12;
spawned.owner = plr.actor()->s().owner;
spawnedactor->CopyOwner(plr.actor());
spawned.lotag = 1024;
spawned.hitag = 0;
spawned.pal = 0;
@ -2075,7 +2075,7 @@ void shootgun(PLAYER& plr, float ang, int guntype) {
spawned.xvel = (short) ((krand() & 256) - 128);
spawned.yvel = (short) ((krand() & 256) - 128);
spawned.zvel = plr.horizon.horiz.asq16() >> 12;
spawned.owner = plr.actor()->s().owner;
spawnedactor->CopyOwner(plr.actor());
spawned.lotag = 1024;
spawned.hitag = 0;
spawned.pal = 0;
@ -2102,7 +2102,7 @@ void shootgun(PLAYER& plr, float ang, int guntype) {
spawned.xvel = (short) ((krand() & 256) - 128);
spawned.yvel = (short) ((krand() & 256) - 128);
spawned.zvel = plr.horizon.horiz.asq16() >> 12;
spawned.owner = plr.actor()->s().owner;
spawnedactor->CopyOwner(plr.actor());
spawned.lotag = 1024;
spawned.hitag = 0;
spawned.pal = 0;
@ -2129,7 +2129,7 @@ void shootgun(PLAYER& plr, float ang, int guntype) {
spawned.xvel = (short) ((krand() & 256) - 128);
spawned.yvel = (short) ((krand() & 256) - 128);
spawned.zvel = (short) ((krand() & 256) - 128);
spawned.owner = plr.actor()->s().owner;
spawnedactor->CopyOwner(plr.actor());
spawned.lotag = 1024;
spawned.hitag = 0;
spawned.pal = 0;
@ -2168,7 +2168,7 @@ void shootgun(PLAYER& plr, float ang, int guntype) {
spawned.zvel = plr.horizon.horiz.asq16() >> 12;
}
spawned.owner = plr.actor()->s().owner;
spawnedactor->CopyOwner(plr.actor());
spawned.lotag = 256;
spawned.hitag = 0;
spawned.clipdist = 48;
@ -2209,7 +2209,7 @@ void shootgun(PLAYER& plr, float ang, int guntype) {
spawned.zvel = plr.horizon.horiz.asq16() >> 12;
}
spawned.owner = plr.actor()->s().owner;
spawnedactor->CopyOwner(plr.actor());
spawned.lotag = 256;
spawned.hitag = 0;
spawned.clipdist = 64;

View file

@ -192,10 +192,10 @@ int getPickHeight();
void processobjs(PLAYER& plr);
void newstatus(short sn, int seq);
void makeafire(int i, int firetype);
void explosion(int i, int x, int y, int z, int owner);
void explosion2(int i, int x, int y, int z, int owner);
void explosion(int i, int x, int y, int z, int ownr);
void explosion2(int i, int x, int y, int z, int ownr);
void trailingsmoke(DWHActor* actor, boolean ball);
void icecubes(int i, int x, int y, int z, int owner);
void icecubes(int i, int x, int y, int z, int ownr);
boolean damageactor(PLAYER& plr, DWHActor* hitobject, DWHActor* actor);
Collision movesprite(DWHActor*, int dx, int dy, int dz, int ceildist, int flordist, int cliptype);
void trowajavlin(int s);

View file

@ -49,6 +49,11 @@ public:
s().owner = other->s().owner;
}
bool CompareOwner(DWHActor* other)
{
return s().owner == other->s().owner;
}
int GetSpriteIndex() const
{
return index;

View file

@ -971,7 +971,7 @@ void animateobjs(PLAYER& plr) {
}
if (moveStat.type != kHitNone && spr.picnum == MONSTERBALL)
if (spr.owner == plr.actor()->s().owner) {
if (actor->CompareOwner(plr.actor())) {
explosion2(i, spr.x, spr.y, spr.z, i);
} else {
explosion(i, spr.x, spr.y, spr.z, i);
@ -990,7 +990,7 @@ void animateobjs(PLAYER& plr) {
} else if (moveStat.type == kHitWall) { // hit a wall
if (spr.picnum == MONSTERBALL) {
if (spr.owner == plr.actor()->s().owner)
if (actor->CompareOwner(plr.actor()))
explosion2(i, spr.x, spr.y, spr.z, i);
else
explosion(i, spr.x, spr.y, spr.z, i);
@ -1009,7 +1009,7 @@ void animateobjs(PLAYER& plr) {
if (moveStat.type == kHitSprite) { // Bullet hit a sprite
if (spr.picnum == MONSTERBALL) {
if (spr.owner == plr.actor()->s().owner)
if (actor->CompareOwner(plr.actor()))
explosion2(i, spr.x, spr.y, spr.z, i);
else
explosion(i, spr.x, spr.y, spr.z, i);

View file

@ -1393,7 +1393,7 @@ void makeafire(int i, int firetype) {
spawned.backuploc();
}
void explosion(int i, int x, int y, int z, int owner) {
void explosion(int i, int x, int y, int z, int ownr) {
auto spawnedactor = InsertActor(sprite[i].sectnum, EXPLO);
auto& spawned = spawnedactor->s();
@ -1431,7 +1431,7 @@ void explosion(int i, int x, int y, int z, int owner) {
spawned.backuploc();
}
void explosion2(int i, int x, int y, int z, int owner) {
void explosion2(int i, int x, int y, int z, int ownr) {
auto spawnedactor = InsertActor(sprite[i].sectnum, EXPLO);
auto& spawned = spawnedactor->s();
@ -1500,7 +1500,7 @@ void trailingsmoke(DWHActor* actor, boolean ball) {
spawned.backuploc();
}
void icecubes(int i, int x, int y, int z, int owner) {
void icecubes(int i, int x, int y, int z, int ownr) {
auto actor = &whActors[i];
auto& spr = actor->s();
auto spawnedactor = InsertActor(spr.sectnum, FX);
@ -1537,7 +1537,7 @@ boolean damageactor(PLAYER& plr, DWHActor* hitactor, DWHActor* actor)
{
auto& spr = actor->s();
auto& hitspr = hitactor->s();
if (hitactor == plr.actor() && spr.owner == plr.actor()->s().owner)
if (hitactor == plr.actor() && actor->CompareOwner(plr.actor()))
return false;
if (hitactor == plr.actor() && spr.owner != plr.actor()->s().owner) {

View file

@ -427,7 +427,7 @@ void chunksofmeat(PLAYER& plr, DWHActor* hitActor, int hitx, int hity, int hitz,
spawned.zvel = (short) ((krand() & 1023) - 512);
if (newchunk == 1)
spawned.zvel <<= 1;
spawned.owner = plr.actor()->s().owner;
spawnedactor->CopyOwner(plr.actor());
spawned.lotag = 512;
spawned.hitag = 0;
spawned.pal = 0;