- all shorts reviewed.

Should be all clear now - the biggest limiter in Exhumed is the run list with ~25000 entries which may need more work if it is to be extended.
This commit is contained in:
Christoph Oelckers 2021-11-21 21:09:27 +01:00
parent 83a928adde
commit e179b9332d
12 changed files with 156 additions and 183 deletions

View file

@ -60,7 +60,7 @@ struct Bob
{ {
int nSector; int nSector;
int z; int z;
uint8_t field_2; uint8_t nPhase;
uint8_t field_3; uint8_t field_3;
uint16_t sBobID; uint16_t sBobID;
}; };
@ -116,10 +116,10 @@ struct slideData
int16_t nRunRec; int16_t nRunRec;
int16_t nRunC; int16_t nRunC;
int field_0; int nStartWall;
int field_4; int nWall1;
int field_8; int nWall2;
int field_C; int nWall3;
int x1; int x1;
int y1; int y1;
int x2; int x2;
@ -137,27 +137,20 @@ struct slideData
struct Point struct Point
{ {
int nSector; int nSector;
short field_2; int16_t nNext;
short field_4;
short field_6;
short field_8;
short field_A;
short field_C;
short nNext;
}; };
struct Trap struct Trap
{ {
DExhumedActor* pActor; DExhumedActor* pActor;
short field_0; int16_t nState;
short nType; int16_t nType;
int field_6; int nWallNum2;
int field_8; // wallnum int nWallNum;
short field_A; int16_t nPicnum2;
short field_C; int16_t nPicnum;
short field_E; int16_t nTrapInterval;
short nTrapInterval;
}; };
@ -212,7 +205,7 @@ FSerializer& Serialize(FSerializer& arc, const char* keyname, Bob& w, Bob* def)
if (arc.BeginObject(keyname)) if (arc.BeginObject(keyname))
{ {
arc("sector", w.nSector) arc("sector", w.nSector)
("at2", w.field_2) ("at2", w.nPhase)
("at3", w.field_3) ("at3", w.field_3)
("z", w.z) ("z", w.z)
("id", w.sBobID) ("id", w.sBobID)
@ -281,10 +274,10 @@ FSerializer& Serialize(FSerializer& arc, const char* keyname, slideData& w, slid
{ {
if (arc.BeginObject(keyname)) if (arc.BeginObject(keyname))
{ {
arc("at0", w.field_0) arc("at0", w.nStartWall)
("at4", w.field_4) ("at4", w.nWall1)
("at8", w.field_8) ("at8", w.nWall2)
("atc", w.field_C) ("atc", w.nWall3)
("x1", w.x1) ("x1", w.x1)
("y1", w.y1) ("y1", w.y1)
("x2", w.x2) ("x2", w.x2)
@ -311,12 +304,6 @@ FSerializer& Serialize(FSerializer& arc, const char* keyname, Point& w, Point* d
if (arc.BeginObject(keyname)) if (arc.BeginObject(keyname))
{ {
arc("at0", w.nSector) arc("at0", w.nSector)
("at2", w.field_2)
("at4", w.field_4)
("at6", w.field_6)
("at8", w.field_8)
("ata", w.field_A)
("atc", w.field_C)
("ate", w.nNext) ("ate", w.nNext)
.EndObject(); .EndObject();
} }
@ -326,14 +313,13 @@ FSerializer& Serialize(FSerializer& arc, const char* keyname, Trap& w, Trap* def
{ {
if (arc.BeginObject(keyname)) if (arc.BeginObject(keyname))
{ {
arc("at0", w.field_0) arc("at0", w.nState)
("sprite", w.pActor) ("sprite", w.pActor)
("type", w.nType) ("type", w.nType)
("at6", w.field_6) ("at6", w.nWallNum2)
("at8", w.field_8) ("at8", w.nWallNum)
("ata", w.field_A) ("ata", w.nPicnum2)
("atc", w.field_C) ("atc", w.nPicnum)
("ate", w.field_E)
("interval", w.nTrapInterval) ("interval", w.nTrapInterval)
.EndObject(); .EndObject();
} }
@ -660,7 +646,7 @@ void MoveSectorSprites(int nSector, int z)
void StartElevSound(DExhumedActor* pActor, int nVal) void StartElevSound(DExhumedActor* pActor, int nVal)
{ {
short nSound; int nSound;
if (nVal & 2) { if (nVal & 2) {
nSound = nElevSound; nSound = nElevSound;
@ -675,7 +661,7 @@ void StartElevSound(DExhumedActor* pActor, int nVal)
void AIElev::ProcessChannel(RunListEvent* ev) void AIElev::ProcessChannel(RunListEvent* ev)
{ {
int nRun = ev->nRun; int nRun = ev->nRun;
short nElev = RunData[nRun].nObjIndex; int nElev = RunData[nRun].nObjIndex;
assert(nElev >= 0 && nElev < (int)Elevator.Size()); assert(nElev >= 0 && nElev < (int)Elevator.Size());
int nChannel = Elevator[nElev].nChannel; int nChannel = Elevator[nElev].nChannel;
@ -683,8 +669,8 @@ void AIElev::ProcessChannel(RunListEvent* ev)
assert(nChannel >= 0 && nChannel < kMaxChannels); assert(nChannel >= 0 && nChannel < kMaxChannels);
// short ax = var_18 & 8; // int ax = var_18 & 8;
short dx = sRunChannels[nChannel].c; int dx = sRunChannels[nChannel].c;
int edi = 999; // FIXME CHECKME - this isn't default set to anything in the ASM that I can see - if ax is 0 and var_24 is 0, this will never be set to a known value otherwise! int edi = 999; // FIXME CHECKME - this isn't default set to anything in the ASM that I can see - if ax is 0 and var_24 is 0, this will never be set to a known value otherwise!
@ -756,11 +742,11 @@ void AIElev::ProcessChannel(RunListEvent* ev)
void AIElev::Tick(RunListEvent* ev) void AIElev::Tick(RunListEvent* ev)
{ {
int nRun = ev->nRun; int nRun = ev->nRun;
short nElev = RunData[nRun].nObjIndex; int nElev = RunData[nRun].nObjIndex;
assert(nElev >= 0 && nElev < (int)Elevator.Size()); assert(nElev >= 0 && nElev < (int)Elevator.Size());
short nChannel = Elevator[nElev].nChannel; int nChannel = Elevator[nElev].nChannel;
short var_18 = Elevator[nElev].nFlags; int var_18 = Elevator[nElev].nFlags;
assert(nChannel >= 0 && nChannel < kMaxChannels); assert(nChannel >= 0 && nChannel < kMaxChannels);
@ -774,7 +760,7 @@ void AIElev::Tick(RunListEvent* ev)
int nZOffset = Elevator[nElev].nCurZOffset; int nZOffset = Elevator[nElev].nCurZOffset;
int nZVal = Elevator[nElev].zOffsets[nZOffset]; int nZVal = Elevator[nElev].zOffsets[nZOffset];
short nSectorB = nSector; int nSectorB = nSector;
StartInterpolation(nSector, Interp_Sect_Floorz); StartInterpolation(nSector, Interp_Sect_Floorz);
int nVal = LongSeek((int*)&sector[nSector].floorz, nZVal, Elevator[nElev].nParam1, Elevator[nElev].nParam2); int nVal = LongSeek((int*)&sector[nSector].floorz, nZVal, Elevator[nElev].nParam1, Elevator[nElev].nParam2);
@ -991,7 +977,7 @@ int BuildSlide(int nChannel, int nStartWall, int nWall1, int ecx, int nWall2, in
for (int nWall = startwall; nWall < endwall; nWall++) for (int nWall = startwall; nWall < endwall; nWall++)
{ {
short ax = SlideData[nSlide].nStart; int ax = SlideData[nSlide].nStart;
if (ax >= 0) if (ax >= 0)
{ {
@ -1018,10 +1004,10 @@ int BuildSlide(int nChannel, int nStartWall, int nWall1, int ecx, int nWall2, in
} }
} }
SlideData[nSlide].field_0 = nStartWall; SlideData[nSlide].nStartWall = nStartWall;
SlideData[nSlide].field_4 = nWall1; SlideData[nSlide].nWall1 = nWall1;
SlideData[nSlide].field_8 = nWall2; SlideData[nSlide].nWall2 = nWall2;
SlideData[nSlide].field_C = nWall3; SlideData[nSlide].nWall3 = nWall3;
SlideData[nSlide].x1 = wall[nStartWall].x; SlideData[nSlide].x1 = wall[nStartWall].x;
SlideData[nSlide].y1 = wall[nStartWall].y; SlideData[nSlide].y1 = wall[nStartWall].y;
@ -1075,7 +1061,7 @@ void AISlide::ProcessChannel(RunListEvent* ev)
int nSlide = RunData[nRun].nObjIndex; int nSlide = RunData[nRun].nObjIndex;
assert(nSlide >= 0 && nSlide < (int)SlideData.Size()); assert(nSlide >= 0 && nSlide < (int)SlideData.Size());
short nChannel = SlideData[nSlide].nChannel; int nChannel = SlideData[nSlide].nChannel;
if (SlideData[nSlide].nRunRec >= 0) if (SlideData[nSlide].nRunRec >= 0)
{ {
@ -1102,16 +1088,16 @@ void AISlide::Tick(RunListEvent* ev)
int nSlide = RunData[nRun].nObjIndex; int nSlide = RunData[nRun].nObjIndex;
assert(nSlide >= 0 && nSlide < (int)SlideData.Size()); assert(nSlide >= 0 && nSlide < (int)SlideData.Size());
short nChannel = SlideData[nSlide].nChannel; int nChannel = SlideData[nSlide].nChannel;
int ebp = 0; int ebp = 0;
short cx = sRunChannels[nChannel].c; int cx = sRunChannels[nChannel].c;
int clipmask = ebp + 1; // RENAME int clipmask = ebp + 1; // RENAME
if (cx == 1) if (cx == 1)
{ {
int nWall = SlideData[nSlide].field_4; int nWall = SlideData[nSlide].nWall1;
int x = wall[nWall].x; int x = wall[nWall].x;
int y = wall[nWall].y; int y = wall[nWall].y;
@ -1123,7 +1109,7 @@ void AISlide::Tick(RunListEvent* ev)
int var_2C = nSeekB; int var_2C = nSeekB;
int var_24 = nSeekB; int var_24 = nSeekB;
dragpoint(SlideData[nSlide].field_4, x, y); dragpoint(SlideData[nSlide].nWall1, x, y);
movesprite(SlideData[nSlide].pActor, var_34 << 14, var_2C << 14, 0, 0, 0, CLIPMASK1); movesprite(SlideData[nSlide].pActor, var_34 << 14, var_2C << 14, 0, 0, 0, CLIPMASK1);
if (var_34 == 0) if (var_34 == 0)
@ -1134,14 +1120,14 @@ void AISlide::Tick(RunListEvent* ev)
} }
} }
nWall = SlideData[nSlide].field_0; nWall = SlideData[nSlide].nStartWall;
y = wall[nWall].y + var_24; y = wall[nWall].y + var_24;
x = wall[nWall].x + var_20; x = wall[nWall].x + var_20;
dragpoint(SlideData[nSlide].field_0, x, y); dragpoint(SlideData[nSlide].nStartWall, x, y);
nWall = SlideData[nSlide].field_C; nWall = SlideData[nSlide].nWall3;
x = wall[nWall].x; x = wall[nWall].x;
y = wall[nWall].y; y = wall[nWall].y;
@ -1154,22 +1140,22 @@ void AISlide::Tick(RunListEvent* ev)
int edi = nSeekD; int edi = nSeekD;
var_24 = nSeekD; var_24 = nSeekD;
dragpoint(SlideData[nSlide].field_C, x, y); dragpoint(SlideData[nSlide].nWall3, x, y);
if (var_30 == 0 && edi == 0) { if (var_30 == 0 && edi == 0) {
ebp++; ebp++;
} }
nWall = SlideData[nSlide].field_8; nWall = SlideData[nSlide].nWall2;
x = wall[nWall].x + var_20; x = wall[nWall].x + var_20;
y = wall[nWall].y + var_24; y = wall[nWall].y + var_24;
dragpoint(SlideData[nSlide].field_8, x, y); dragpoint(SlideData[nSlide].nWall2, x, y);
} }
else if (cx == 0) // right branch else if (cx == 0) // right branch
{ {
int nWall = SlideData[nSlide].field_0; int nWall = SlideData[nSlide].nStartWall;
int x = wall[nWall].x; int x = wall[nWall].x;
int y = wall[nWall].y; int y = wall[nWall].y;
@ -1181,20 +1167,20 @@ void AISlide::Tick(RunListEvent* ev)
int ecx = nSeekB; int ecx = nSeekB;
int var_28 = nSeekB; int var_28 = nSeekB;
dragpoint(SlideData[nSlide].field_0, x, y); dragpoint(SlideData[nSlide].nStartWall, x, y);
if (edi == 0 && ecx == 0) { if (edi == 0 && ecx == 0) {
ebp = clipmask; ebp = clipmask;
} }
nWall = SlideData[nSlide].field_4; nWall = SlideData[nSlide].nWall1;
y = wall[nWall].y + var_28; y = wall[nWall].y + var_28;
x = wall[nWall].x + var_1C; x = wall[nWall].x + var_1C;
dragpoint(SlideData[nSlide].field_4, x, y); dragpoint(SlideData[nSlide].nWall1, x, y);
nWall = SlideData[nSlide].field_8; nWall = SlideData[nSlide].nWall2;
x = wall[nWall].x; x = wall[nWall].x;
y = wall[nWall].y; y = wall[nWall].y;
@ -1207,18 +1193,18 @@ void AISlide::Tick(RunListEvent* ev)
ecx = nSeekD; ecx = nSeekD;
var_28 = nSeekD; var_28 = nSeekD;
dragpoint(SlideData[nSlide].field_8, x, y); dragpoint(SlideData[nSlide].nWall2, x, y);
if (edi == 0 && ecx == 0) { if (edi == 0 && ecx == 0) {
ebp++; ebp++;
} }
nWall = SlideData[nSlide].field_C; nWall = SlideData[nSlide].nWall3;
y = wall[nWall].y + var_28; y = wall[nWall].y + var_28;
x = wall[nWall].x + var_1C; x = wall[nWall].x + var_1C;
dragpoint(SlideData[nSlide].field_C, x, y); dragpoint(SlideData[nSlide].nWall3, x, y);
} }
// loc_21A51: // loc_21A51:
@ -1258,22 +1244,22 @@ int BuildTrap(DExhumedActor* pActor, int edx, int ebx, int ecx)
sTrap[nTrap].pActor = pActor; sTrap[nTrap].pActor = pActor;
sTrap[nTrap].nType = (var_14 == 0) + 14; sTrap[nTrap].nType = (var_14 == 0) + 14;
sTrap[nTrap].field_0 = -1; sTrap[nTrap].nState = -1;
sTrap[nTrap].nTrapInterval = 64 - (2 * var_10); sTrap[nTrap].nTrapInterval = 64 - (2 * var_10);
if (sTrap[nTrap].nTrapInterval < 5) { if (sTrap[nTrap].nTrapInterval < 5) {
sTrap[nTrap].nTrapInterval = 5; sTrap[nTrap].nTrapInterval = 5;
} }
sTrap[nTrap].field_C = 0; sTrap[nTrap].nPicnum = 0;
sTrap[nTrap].field_A = 0; sTrap[nTrap].nPicnum2 = 0;
if (var_18 == -1) { if (var_18 == -1) {
return nTrap; return nTrap;
} }
sTrap[nTrap].field_6 = -1; sTrap[nTrap].nWallNum2 = -1;
sTrap[nTrap].field_8 = -1; sTrap[nTrap].nWallNum = -1;
int nSector =pSprite->sectnum; int nSector =pSprite->sectnum;
int nWall = sector[nSector].wallptr; int nWall = sector[nSector].wallptr;
@ -1288,16 +1274,16 @@ int BuildTrap(DExhumedActor* pActor, int edx, int ebx, int ecx)
if (var_18 == wall[nWall].hitag) if (var_18 == wall[nWall].hitag)
{ {
if (sTrap[nTrap].field_6 != -1) if (sTrap[nTrap].nWallNum2 != -1)
{ {
sTrap[nTrap].field_8 = nWall; sTrap[nTrap].nWallNum = nWall;
sTrap[nTrap].field_C = wall[nWall].picnum; sTrap[nTrap].nPicnum = wall[nWall].picnum;
break; break;
} }
else else
{ {
sTrap[nTrap].field_6 = nWall; sTrap[nTrap].nWallNum2 = nWall;
sTrap[nTrap].field_A = wall[nWall].picnum; sTrap[nTrap].nPicnum2 = wall[nWall].picnum;
} }
} }
@ -1310,57 +1296,57 @@ int BuildTrap(DExhumedActor* pActor, int edx, int ebx, int ecx)
void AITrap::ProcessChannel(RunListEvent* ev) void AITrap::ProcessChannel(RunListEvent* ev)
{ {
short nChannel = ev->nParam & 0x3FFF; int nChannel = ev->nParam & 0x3FFF;
short nTrap = RunData[ev->nRun].nObjIndex; int nTrap = RunData[ev->nRun].nObjIndex;
if (sRunChannels[nChannel].c > 0) if (sRunChannels[nChannel].c > 0)
{ {
sTrap[nTrap].field_0 = 12; sTrap[nTrap].nState = 12;
} }
else else
{ {
sTrap[nTrap].field_0 = -1; sTrap[nTrap].nState = -1;
} }
} }
void AITrap::Tick(RunListEvent* ev) void AITrap::Tick(RunListEvent* ev)
{ {
short nTrap = RunData[ev->nRun].nObjIndex; int nTrap = RunData[ev->nRun].nObjIndex;
auto pActor = sTrap[nTrap].pActor; auto pActor = sTrap[nTrap].pActor;
auto pSprite = &pActor->s(); auto pSprite = &pActor->s();
if (sTrap[nTrap].field_0 >= 0) if (sTrap[nTrap].nState >= 0)
{ {
sTrap[nTrap].field_0--; sTrap[nTrap].nState--;
if (sTrap[nTrap].field_0 > 10) { if (sTrap[nTrap].nState > 10) {
return; return;
} }
short nType = sTrap[nTrap].nType; int nType = sTrap[nTrap].nType;
if (sTrap[nTrap].field_0 == 0) if (sTrap[nTrap].nState == 0)
{ {
sTrap[nTrap].field_0 = sTrap[nTrap].nTrapInterval; sTrap[nTrap].nState = sTrap[nTrap].nTrapInterval;
if (nType == 14) if (nType == 14)
{ {
int nWall = sTrap[nTrap].field_6; int nWall = sTrap[nTrap].nWallNum2;
if (nWall > -1) if (nWall > -1)
{ {
wall[nWall].picnum = sTrap[nTrap].field_A; wall[nWall].picnum = sTrap[nTrap].nPicnum2;
} }
nWall = sTrap[nTrap].field_8; nWall = sTrap[nTrap].nWallNum;
if (nWall > -1) if (nWall > -1)
{ {
wall[nWall].picnum = sTrap[nTrap].field_C; wall[nWall].picnum = sTrap[nTrap].nPicnum;
} }
} }
} }
else else
{ {
// loc_21D92: // loc_21D92:
if (sTrap[nTrap].field_0 != 5) { if (sTrap[nTrap].nState != 5) {
return; return;
} }
@ -1376,16 +1362,16 @@ void AITrap::Tick(RunListEvent* ev)
{ {
pBullet->s().clipdist = 50; pBullet->s().clipdist = 50;
int nWall = sTrap[nTrap].field_6; int nWall = sTrap[nTrap].nWallNum2;
if (nWall > -1) if (nWall > -1)
{ {
wall[nWall].picnum = sTrap[nTrap].field_A + 1; wall[nWall].picnum = sTrap[nTrap].nPicnum2 + 1;
} }
nWall = sTrap[nTrap].field_8; nWall = sTrap[nTrap].nWallNum;
if (nWall > -1) if (nWall > -1)
{ {
wall[nWall].picnum = sTrap[nTrap].field_C + 1; wall[nWall].picnum = sTrap[nTrap].nPicnum + 1;
} }
D3PlayFX(StaticSound[kSound36], pBullet); D3PlayFX(StaticSound[kSound36], pBullet);
@ -1524,7 +1510,7 @@ void AISpark::Tick(RunListEvent* ev)
void DimLights() void DimLights()
{ {
static short word_96786 = 0; static int word_96786 = 0;
word_96786 = word_96786 == 0; word_96786 = word_96786 == 0;
if (word_96786 == 0) if (word_96786 == 0)
@ -1641,7 +1627,7 @@ DExhumedActor* BuildEnergyBlock(int nSector)
auto spr = &pActor->s(); auto spr = &pActor->s();
short nextsector = wall[startwall].nextsector; int nextsector = wall[startwall].nextsector;
spr->x = xAvg; spr->x = xAvg;
spr->y = yAvg; spr->y = yAvg;
@ -1713,7 +1699,7 @@ void ExplodeEnergyBlock(DExhumedActor* pActor)
for (i = 0; i < nWalls; i++) for (i = 0; i < nWalls; i++)
{ {
short nextwall = wall[startwall + i].nextwall; int nextwall = wall[startwall + i].nextwall;
if (wall[nextwall].pal >= 4) { if (wall[nextwall].pal >= 4) {
wall[nextwall].pal = 7; wall[nextwall].pal = 7;
@ -1894,7 +1880,7 @@ DExhumedActor* BuildObject(DExhumedActor* pActor, int nOjectType, int nHitag)
pActor->nRun = runlist_AddRunRec(NewRun, pActor, 0x170000); pActor->nRun = runlist_AddRunRec(NewRun, pActor, 0x170000);
short nSeq = ObjectSeq[nOjectType]; int nSeq = ObjectSeq[nOjectType];
if (nSeq > -1) if (nSeq > -1)
{ {
@ -1951,7 +1937,7 @@ void AIObject::Tick(RunListEvent* ev)
auto pActor = ev->pObjActor; auto pActor = ev->pObjActor;
if (!pActor) return; if (!pActor) return;
auto pSprite = &pActor->s(); auto pSprite = &pActor->s();
short nStat = pSprite->statnum; int nStat = pSprite->statnum;
int bx = pActor->nIndex; int bx = pActor->nIndex;
if (nStat == 97 || (!(pSprite->cstat & 0x101))) { if (nStat == 97 || (!(pSprite->cstat & 0x101))) {
@ -2114,7 +2100,7 @@ void AIObject::RadialDamage(RunListEvent* ev)
if (!pActor) return; if (!pActor) return;
auto pSprite = &pActor->s(); auto pSprite = &pActor->s();
short nStat = pSprite->statnum; int nStat = pSprite->statnum;
if (pActor->nHealth > 0 && pSprite->cstat & 0x101 if (pActor->nHealth > 0 && pSprite->cstat & 0x101
&& (nStat != kStatExplodeTarget && (nStat != kStatExplodeTarget
@ -2151,7 +2137,7 @@ void AIObject::RadialDamage(RunListEvent* ev)
if (pSprite->statnum == kStatExplodeTarget) if (pSprite->statnum == kStatExplodeTarget)
{ {
pActor->nHealth = -1; pActor->nHealth = -1;
short ax = pActor->nIndex2; int ax = pActor->nIndex2;
if (ax < 0 || ObjectList[ax]->nHealth <= 0) { if (ax < 0 || ObjectList[ax]->nHealth <= 0) {
return; return;
@ -2191,7 +2177,7 @@ void DoDrips()
auto pActor = sDrip[i].pActor; auto pActor = sDrip[i].pActor;
auto pSprite = &pActor->s(); auto pSprite = &pActor->s();
short nSeqOffset = SeqOffsets[kSeqDrips]; int nSeqOffset = SeqOffsets[kSeqDrips];
if (!(pSprite->sector()->Flag & kSectLava)) { if (!(pSprite->sector()->Flag & kSectLava)) {
nSeqOffset++; nSeqOffset++;
@ -2205,9 +2191,9 @@ void DoDrips()
for (unsigned i = 0; i < sBob.Size(); i++) for (unsigned i = 0; i < sBob.Size(); i++)
{ {
sBob[i].field_2 += 4; sBob[i].nPhase += 4;
int edx = bsin(sBob[i].field_2 << 3, -4); int edx = bsin(sBob[i].nPhase << 3, -4);
int nSector =sBob[i].nSector; int nSector =sBob[i].nSector;
if (sBob[i].field_3) if (sBob[i].field_3)
@ -2263,7 +2249,7 @@ void SnapBobs(int nSectorA, int nSectorB)
return; return;
} }
sBob[ecx].field_2 = sBob[ebx].field_2; sBob[ecx].nPhase = sBob[ebx].nPhase;
} }
void AddSectorBob(int nSector, int nHitag, int bx) void AddSectorBob(int nSector, int nHitag, int bx)
@ -2281,7 +2267,7 @@ void AddSectorBob(int nSector, int nHitag, int bx)
} }
sBob[nBobs].z = z; sBob[nBobs].z = z;
sBob[nBobs].field_2 = nHitag << 4; sBob[nBobs].nPhase = nHitag << 4;
sBob[nBobs].sBobID = nHitag; sBob[nBobs].sBobID = nHitag;
sBob[nBobs].nSector = nSector; sBob[nBobs].nSector = nSector;
@ -2371,7 +2357,7 @@ void AddMovingSector(int nSector, int edx, int ebx, int ecx)
CreatePushBlock(nSector); CreatePushBlock(nSector);
setsectinterpolate(nSector); setsectinterpolate(nSector);
short nTrail = FindTrail(ebx); int nTrail = FindTrail(ebx);
auto nMoveSects = sMoveSect.Reserve(1); auto nMoveSects = sMoveSect.Reserve(1);
@ -2410,7 +2396,7 @@ void DoMovingSects()
} }
int nSector =sMoveSect[i].nSector; int nSector =sMoveSect[i].nSector;
short nBlock = sector[nSector].extra; int nBlock = sector[nSector].extra;
BlockInfo* pBlockInfo = &sBlockInfo[nBlock]; BlockInfo* pBlockInfo = &sBlockInfo[nBlock];
@ -2421,7 +2407,7 @@ void DoMovingSects()
runlist_ChangeChannel(sMoveSect[i].nChannel, 0); runlist_ChangeChannel(sMoveSect[i].nChannel, 0);
} }
short ax; int ax;
if (sMoveSect[i].nFlags & 0x10) if (sMoveSect[i].nFlags & 0x10)
{ {
@ -2443,7 +2429,7 @@ void DoMovingSects()
sMoveSect[i].nTrailPoint = ax; sMoveSect[i].nTrailPoint = ax;
} }
short nTrail = sMoveSect[i].nTrailPoint; int nTrail = sMoveSect[i].nTrailPoint;
// TrailPoint *pTrail = &sTrailPoint[nTrail]; // TrailPoint *pTrail = &sTrailPoint[nTrail];
// loc_23872: // loc_23872:

View file

@ -40,11 +40,11 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
BEGIN_PS_NS BEGIN_PS_NS
extern short nStatusSeqOffset; extern int nStatusSeqOffset;
int lPlayerXVel = 0; int lPlayerXVel = 0;
int lPlayerYVel = 0; int lPlayerYVel = 0;
short obobangle = 0, bobangle = 0; int obobangle = 0, bobangle = 0;
static actionSeq PlayerSeq[] = { static actionSeq PlayerSeq[] = {
{18, 0}, {0, 0}, {9, 0}, {27, 0}, {63, 0}, {18, 0}, {0, 0}, {9, 0}, {27, 0}, {63, 0},
@ -79,13 +79,13 @@ Player PlayerList[kMaxPlayers];
DExhumedActor* nNetStartSprite[kMaxPlayers] = { }; DExhumedActor* nNetStartSprite[kMaxPlayers] = { };
short nStandHeight; int nStandHeight;
short PlayerCount; int PlayerCount;
short nNetStartSprites; int nNetStartSprites;
short nCurStartSprite; int nCurStartSprite;
void RestoreSavePoint(int nPlayer, int *x, int *y, int *z, int *nSector, int16_t *nAngle) void RestoreSavePoint(int nPlayer, int *x, int *y, int *z, int *nSector, int16_t *nAngle)
{ {

View file

@ -106,7 +106,7 @@ struct Player
int16_t nPlayerPushSound; int16_t nPlayerPushSound;
int16_t nTauntTimer; int16_t nTauntTimer;
uint16_t nPlayerWeapons; // each set bit represents a weapon the player has uint16_t nPlayerWeapons; // each set bit represents a weapon the player has
short nPlayerViewSect; int nPlayerViewSect;
PlayerSave sPlayerSave; PlayerSave sPlayerSave;
int ototalvel; int ototalvel;
int totalvel; int totalvel;
@ -117,15 +117,15 @@ struct Player
}; };
extern short PlayerCount; extern int PlayerCount;
extern Player PlayerList[kMaxPlayers]; extern Player PlayerList[kMaxPlayers];
extern short obobangle, bobangle; extern int obobangle, bobangle;
extern DExhumedActor* nNetStartSprite[kMaxPlayers]; extern DExhumedActor* nNetStartSprite[kMaxPlayers];
extern short nNetStartSprites; extern int nNetStartSprites;
extern short nCurStartSprite; extern int nCurStartSprite;
int GetPlayerFromActor(DExhumedActor* actor); int GetPlayerFromActor(DExhumedActor* actor);
void SetPlayerMummified(int nPlayer, int bIsMummified); void SetPlayerMummified(int nPlayer, int bIsMummified);

View file

@ -100,7 +100,7 @@ void AIRex::RadialDamage(RunListEvent* ev)
auto pActor = ev->pObjActor; auto pActor = ev->pObjActor;
if (!pActor) return; if (!pActor) return;
short nAction = pActor->nAction; int nAction = pActor->nAction;
if (nAction == 5) if (nAction == 5)
{ {
@ -114,7 +114,7 @@ void AIRex::Damage(RunListEvent* ev)
auto pActor = ev->pObjActor; auto pActor = ev->pObjActor;
if (!pActor) return; if (!pActor) return;
short nAction = pActor->nAction; int nAction = pActor->nAction;
auto pSprite = &pActor->s(); auto pSprite = &pActor->s();
if (ev->nDamage) if (ev->nDamage)
@ -155,7 +155,7 @@ void AIRex::Draw(RunListEvent* ev)
auto pActor = ev->pObjActor; auto pActor = ev->pObjActor;
if (!pActor) return; if (!pActor) return;
short nAction = pActor->nAction; int nAction = pActor->nAction;
seq_PlotSequence(ev->nParam, SeqOffsets[kSeqRex] + RexSeq[nAction].a, pActor->nFrame, RexSeq[nAction].b); seq_PlotSequence(ev->nParam, SeqOffsets[kSeqRex] + RexSeq[nAction].a, pActor->nFrame, RexSeq[nAction].b);
return; return;
@ -166,7 +166,7 @@ void AIRex::Tick(RunListEvent* ev)
auto pActor = ev->pObjActor; auto pActor = ev->pObjActor;
if (!pActor) return; if (!pActor) return;
short nAction = pActor->nAction; int nAction = pActor->nAction;
auto pSprite = &pActor->s(); auto pSprite = &pActor->s();
bool bVal = false; bool bVal = false;

View file

@ -33,14 +33,14 @@ enum
DExhumedActor* pRadialActor; DExhumedActor* pRadialActor;
short nStackCount = 0; int nStackCount = 0;
short word_966BE = 0; int word_966BE = 0;
short ChannelList = -1; int ChannelList = -1;
short ChannelLast = -1; int ChannelLast = -1;
int nDamageRadius; int nDamageRadius;
int nRadialDamage; int nRadialDamage;
short RunChain; int RunChain;
int NewRun; int NewRun;
int sRunStack[kMaxRunStack]; int sRunStack[kMaxRunStack];
@ -359,7 +359,7 @@ void runlist_SendMessage(int nRun, int nObject, void(ExhumedAI::* func)(RunListE
void runlist_ExplodeSignalRun() void runlist_ExplodeSignalRun()
{ {
short nextPtr = RunChain; int nextPtr = RunChain;
if (nextPtr >= 0) if (nextPtr >= 0)
{ {
@ -491,11 +491,11 @@ void runlist_ReadyChannel(int eax)
void runlist_ProcessChannels() void runlist_ProcessChannels()
{ {
#if 1 #if 1
short v0; int v0;
short v1; int v1;
int v5; int v5;
short b; int b;
short d; int d;
do do
{ {
@ -548,7 +548,7 @@ void runlist_ProcessChannels()
while (1) while (1)
{ {
short nChannel = ChannelList; int nChannel = ChannelList;
if (nChannel < 0) if (nChannel < 0)
{ {
ChannelList = esi; ChannelList = esi;
@ -563,8 +563,8 @@ void runlist_ProcessChannels()
} }
} }
short b = sRunChannels[nChannel].b; int b = sRunChannels[nChannel].b;
short d = sRunChannels[nChannel].d; int d = sRunChannels[nChannel].d;
if (d & 2) if (d & 2)
{ {
@ -1596,7 +1596,7 @@ void runlist_ProcessWallTag(int nWall, int nLotag, int nHitag)
int nLastWall = 0; int nLastWall = 0;
int n2ndLastWall = 0; int n2ndLastWall = 0;
short nStart = nWall; int nStart = nWall;
while (1) while (1)
{ {

View file

@ -177,7 +177,7 @@ void AISet::RadialDamage(RunListEvent* ev)
{ {
auto pActor = ev->pObjActor; auto pActor = ev->pObjActor;
if (!pActor) return; if (!pActor) return;
short nAction = pActor->nAction; int nAction = pActor->nAction;
if (nAction == 5) if (nAction == 5)
{ {
@ -192,7 +192,7 @@ void AISet::Damage(RunListEvent* ev)
auto pActor = ev->pObjActor; auto pActor = ev->pObjActor;
if (!pActor) return; if (!pActor) return;
short nAction = pActor->nAction; int nAction = pActor->nAction;
auto pSprite = &pActor->s(); auto pSprite = &pActor->s();
if (ev->nDamage && pActor->nHealth > 0) if (ev->nDamage && pActor->nHealth > 0)
@ -231,7 +231,7 @@ void AISet::Draw(RunListEvent* ev)
{ {
auto pActor = ev->pObjActor; auto pActor = ev->pObjActor;
if (!pActor) return; if (!pActor) return;
short nAction = pActor->nAction; int nAction = pActor->nAction;
seq_PlotSequence(ev->nParam, SeqOffsets[kSeqSet] + SetSeq[nAction].a, pActor->nFrame, SetSeq[nAction].b); seq_PlotSequence(ev->nParam, SeqOffsets[kSeqSet] + SetSeq[nAction].a, pActor->nFrame, SetSeq[nAction].b);
return; return;
@ -242,14 +242,14 @@ void AISet::Tick(RunListEvent* ev)
auto pActor = ev->pObjActor; auto pActor = ev->pObjActor;
if (!pActor) return; if (!pActor) return;
short nAction = pActor->nAction; int nAction = pActor->nAction;
auto pSprite = &pActor->s(); auto pSprite = &pActor->s();
bool bVal = false; bool bVal = false;
Gravity(pActor); Gravity(pActor);
short nSeq = SeqOffsets[kSeqSet] + SetSeq[pActor->nAction].a; int nSeq = SeqOffsets[kSeqSet] + SetSeq[pActor->nAction].a;
pSprite->picnum = seq_GetSeqPicnum2(nSeq, pActor->nFrame); pSprite->picnum = seq_GetSeqPicnum2(nSeq, pActor->nFrame);
seq_MoveSequence(pActor, nSeq, pActor->nFrame); seq_MoveSequence(pActor, nSeq, pActor->nFrame);
@ -267,7 +267,7 @@ void AISet::Tick(RunListEvent* ev)
bVal = true; bVal = true;
} }
short nFlag = FrameFlag[SeqBase[nSeq] + pActor->nFrame]; int nFlag = FrameFlag[SeqBase[nSeq] + pActor->nFrame];
auto pTarget = pActor->pTarget; auto pTarget = pActor->pTarget;
if (pTarget && nAction < 10) if (pTarget && nAction < 10)

View file

@ -98,7 +98,7 @@ void AISpider::Tick(RunListEvent* ev)
if (!spp) return; if (!spp) return;
auto sp = &spp->s(); auto sp = &spp->s();
short nAction = spp->nAction; int nAction = spp->nAction;
int nVel = 6; int nVel = 6;
@ -345,7 +345,7 @@ void AISpider::Draw(RunListEvent* ev)
auto spp = ev->pObjActor; auto spp = ev->pObjActor;
if (!spp) return; if (!spp) return;
short nAction = spp->nAction; int nAction = spp->nAction;
seq_PlotSequence(ev->nParam, SeqOffsets[kSeqSpider] + SpiderSeq[nAction].a, spp->nFrame, SpiderSeq[nAction].b); seq_PlotSequence(ev->nParam, SeqOffsets[kSeqSpider] + SpiderSeq[nAction].a, spp->nFrame, SpiderSeq[nAction].b);
} }

View file

@ -43,7 +43,7 @@ BEGIN_PS_NS
// All this must be moved into the status bar once it is made persistent! // All this must be moved into the status bar once it is made persistent!
short nStatusSeqOffset; int nStatusSeqOffset;
void InitStatus() void InitStatus()
{ {

View file

@ -28,7 +28,7 @@ BEGIN_PS_NS
enum { kMaxSwitches = 1024 }; enum { kMaxSwitches = 1024 };
short SwitchCount = -1; int SwitchCount = -1;
struct Link struct Link
{ {
@ -37,15 +37,15 @@ struct Link
struct Switch struct Switch
{ {
short nWaitTimer; int16_t nWaitTimer;
short nWait; int16_t nWait;
int nChannel; int nChannel;
int nLink; int nLink;
short nRunPtr; int16_t nRunPtr;
int nSector; int nSector;
short nRun2; int16_t nRun2;
int nWall; int nWall;
short nRun3; int16_t nRun3;
uint16_t nKeyMask; uint16_t nKeyMask;
}; };

File diff suppressed because one or more lines are too long

View file

@ -40,28 +40,28 @@ bool bSubTitles = true;
int zbob; int zbob;
short dVertPan[kMaxPlayers]; int16_t dVertPan[kMaxPlayers];
int nCamerax; int nCamerax;
int nCameray; int nCameray;
int nCameraz; int nCameraz;
short bTouchFloor; bool bTouchFloor;
short nQuake[kMaxPlayers] = { 0 }; int16_t nQuake[kMaxPlayers] = { 0 };
short nChunkTotal = 0; int nChunkTotal = 0;
binangle nCameraa; binangle nCameraa;
fixedhoriz nCamerapan; fixedhoriz nCamerapan;
short nViewTop; int nViewTop;
bool bCamera = false; bool bCamera = false;
int viewz; int viewz;
DExhumedActor* pEnemy; DExhumedActor* pEnemy;
short nEnemyPal = 0; int nEnemyPal = 0;
// We cannot drag these through the entire event system... :( // We cannot drag these through the entire event system... :(
spritetype* mytsprite; spritetype* mytsprite;

View file

@ -31,13 +31,13 @@ void ResetView();
void NoClip(); void NoClip();
void Clip(); void Clip();
extern short dVertPan[]; extern int16_t dVertPan[];
extern short nQuake[]; extern int16_t nQuake[];
extern int nCamerax; extern int nCamerax;
extern int nCameray; extern int nCameray;
extern int nCameraz; extern int nCameraz;
extern short bTouchFloor; extern bool bTouchFloor;
extern short nChunkTotal; extern int nChunkTotal;
extern int gFov; extern int gFov;
extern spritetype* mytsprite; extern spritetype* mytsprite;