Browse Source

some cleanups (#2099)

pull/876/head
qndel 6 years ago committed by GitHub
parent
commit
b81d2eb831
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      Source/automap.cpp
  2. 10
      Source/drlg_l2.cpp
  3. 2
      Source/drlg_l4.cpp
  4. 2
      Source/inv.cpp
  5. 6
      Source/lighting.cpp
  6. 128
      Source/missiles.cpp
  7. 4
      Source/msg.cpp
  8. 8
      Source/objects.cpp
  9. 18
      Source/player.cpp
  10. 2
      Source/portal.cpp
  11. 96
      Source/quests.cpp
  12. 2
      Source/quests.h
  13. 6
      Source/render.cpp
  14. 2
      Source/scrollrt.cpp
  15. 8
      Source/stores.cpp
  16. 2
      Source/towners.cpp
  17. 6
      enums.h
  18. 2
      structs.h

2
Source/automap.cpp

@ -717,7 +717,7 @@ void DrawAutomapText()
} }
if (setlevel) { if (setlevel) {
PrintGameStr(8, nextline, quest_level_names[(BYTE)setlvlnum], COL_GOLD); PrintGameStr(8, nextline, quest_level_names[(BYTE)setlvlnum], COL_GOLD);
} else if (currlevel) { } else if (currlevel != 0) {
#ifdef HELLFIRE #ifdef HELLFIRE
if (currlevel < 17 || currlevel > 20) { if (currlevel < 17 || currlevel > 20) {
if (currlevel < 21 || currlevel > 24) if (currlevel < 21 || currlevel > 24)

10
Source/drlg_l2.cpp

@ -2766,21 +2766,21 @@ static BOOL CreateDungeon()
switch (currlevel) { switch (currlevel) {
case 5: case 5:
if (quests[Q_BLOOD]._qactive) { if (quests[Q_BLOOD]._qactive != QUEST_NOTAVAIL) {
ForceHW = TRUE; ForceHW = TRUE;
ForceH = 20; ForceH = 20;
ForceW = 14; ForceW = 14;
} }
break; break;
case 6: case 6:
if (quests[Q_SCHAMB]._qactive) { if (quests[Q_SCHAMB]._qactive != QUEST_NOTAVAIL) {
ForceHW = TRUE; ForceHW = TRUE;
ForceW = 10; ForceW = 10;
ForceH = 10; ForceH = 10;
} }
break; break;
case 7: case 7:
if (quests[Q_BLIND]._qactive) { if (quests[Q_BLIND]._qactive != QUEST_NOTAVAIL) {
ForceHW = TRUE; ForceHW = TRUE;
ForceW = 15; ForceW = 15;
ForceH = 15; ForceH = 15;
@ -3506,13 +3506,13 @@ void LoadPreL2Dungeon(char *sFileName, int vx, int vy)
void CreateL2Dungeon(DWORD rseed, int entry) void CreateL2Dungeon(DWORD rseed, int entry)
{ {
if (gbMaxPlayers == 1) { if (gbMaxPlayers == 1) {
if (currlevel == 7 && !quests[Q_BLIND]._qactive) { if (currlevel == 7 && quests[Q_BLIND]._qactive == QUEST_NOTAVAIL) {
currlevel = 6; currlevel = 6;
CreateL2Dungeon(glSeedTbl[6], 4); CreateL2Dungeon(glSeedTbl[6], 4);
currlevel = 7; currlevel = 7;
} }
if (currlevel == 8) { if (currlevel == 8) {
if (!quests[Q_BLIND]._qactive) { if (quests[Q_BLIND]._qactive == QUEST_NOTAVAIL) {
currlevel = 6; currlevel = 6;
CreateL2Dungeon(glSeedTbl[6], 4); CreateL2Dungeon(glSeedTbl[6], 4);
currlevel = 8; currlevel = 8;

2
Source/drlg_l4.cpp

@ -1170,7 +1170,7 @@ static void L4firstRoom()
int x, y, w, h, rndx, rndy, xmin, xmax, ymin, ymax, tx, ty; int x, y, w, h, rndx, rndy, xmin, xmax, ymin, ymax, tx, ty;
if (currlevel != 16) { if (currlevel != 16) {
if (currlevel == quests[Q_WARLORD]._qlevel && quests[Q_WARLORD]._qactive) { if (currlevel == quests[Q_WARLORD]._qlevel && quests[Q_WARLORD]._qactive != QUEST_NOTAVAIL) {
/// ASSERT: assert(gbMaxPlayers == 1); /// ASSERT: assert(gbMaxPlayers == 1);
w = 11; w = 11;
h = 11; h = 11;

2
Source/inv.cpp

@ -2778,7 +2778,7 @@ BOOL UseInvItem(int pnum, int cii)
ItemStruct *Item; ItemStruct *Item;
BOOL speedlist; BOOL speedlist;
if (plr[pnum]._pInvincible && !plr[pnum]._pHitPoints && pnum == myplr) if (plr[pnum]._pInvincible && plr[pnum]._pHitPoints == 0 && pnum == myplr)
return TRUE; return TRUE;
if (pcurs != CURSOR_HAND) if (pcurs != CURSOR_HAND)
return TRUE; return TRUE;

6
Source/lighting.cpp

@ -996,7 +996,7 @@ void ToggleLighting()
lightflag ^= TRUE; lightflag ^= TRUE;
if (lightflag != 0) { if (lightflag) {
memset(dLight, 0, sizeof(dLight)); memset(dLight, 0, sizeof(dLight));
} else { } else {
memcpy(dLight, dPreLight, sizeof(dLight)); memcpy(dLight, dPreLight, sizeof(dLight));
@ -1035,7 +1035,7 @@ int AddLight(int x, int y, int r)
{ {
int lid; int lid;
if (lightflag != 0) { if (lightflag) {
return -1; return -1;
} }
@ -1131,7 +1131,7 @@ void ProcessLightList()
int i, j; int i, j;
BYTE temp; BYTE temp;
if (lightflag != 0) { if (lightflag) {
return; return;
} }

128
Source/missiles.cpp

@ -1027,7 +1027,7 @@ void CheckMissileCol(int i, int mindam, int maxdam, BOOL shift, int mx, int my,
int oi; int oi;
if (missile[i]._miAnimType != MFILE_FIREWAL && missile[i]._misource != -1) { if (missile[i]._miAnimType != MFILE_FIREWAL && missile[i]._misource != -1) {
if (!missile[i]._micaster) { if (missile[i]._micaster == 0) {
if (dMonster[mx][my] > 0) { if (dMonster[mx][my] > 0) {
if (MonsterMHit( if (MonsterMHit(
missile[i]._misource, missile[i]._misource,
@ -1138,7 +1138,7 @@ void CheckMissileCol(int i, int mindam, int maxdam, BOOL shift, int mx, int my,
missile[i]._mirange = 0; missile[i]._mirange = 0;
missile[i]._miHitFlag = FALSE; missile[i]._miHitFlag = FALSE;
} }
if (!missile[i]._mirange && missiledata[missile[i]._mitype].miSFX != -1) if (missile[i]._mirange == 0 && missiledata[missile[i]._mitype].miSFX != -1)
PlaySfxLoc(missiledata[missile[i]._mitype].miSFX, missile[i]._mix, missile[i]._miy); PlaySfxLoc(missiledata[missile[i]._mitype].miSFX, missile[i]._mix, missile[i]._miy);
} }
@ -2416,7 +2416,7 @@ void AddTown(int mi, int sx, int sy, int dx, int dy, int midir, char mienemy, in
int CrawlNum[6] = { 0, 3, 12, 45, 94, 159 }; int CrawlNum[6] = { 0, 3, 12, 45, 94, 159 };
#endif #endif
if (currlevel) { if (currlevel != 0) {
missile[mi]._miDelFlag = TRUE; missile[mi]._miDelFlag = TRUE;
for (j = 0; j < 6; j++) { for (j = 0; j < 6; j++) {
k = CrawlNum[j] + 2; k = CrawlNum[j] + 2;
@ -2462,7 +2462,7 @@ void AddTown(int mi, int sx, int sy, int dx, int dy, int midir, char mienemy, in
missile[mx]._mirange = 0; missile[mx]._mirange = 0;
} }
PutMissile(mi); PutMissile(mi);
if (id == myplr && !missile[mi]._miDelFlag && currlevel) { if (id == myplr && !missile[mi]._miDelFlag && currlevel != 0) {
if (!setlevel) { if (!setlevel) {
NetSendCmdLocParam3(TRUE, CMD_ACTIVATEPORTAL, tx, ty, currlevel, leveltype, 0); NetSendCmdLocParam3(TRUE, CMD_ACTIVATEPORTAL, tx, ty, currlevel, leveltype, 0);
} else { } else {
@ -3535,7 +3535,7 @@ void MI_LArrow(int i)
GetMissilePos(i); GetMissilePos(i);
if (p != -1) { if (p != -1) {
if (!missile[i]._micaster) { if (missile[i]._micaster == 0) {
mind = plr[p]._pIMinDam; mind = plr[p]._pIMinDam;
maxd = plr[p]._pIMaxDam; maxd = plr[p]._pIMaxDam;
} else { } else {
@ -3553,7 +3553,7 @@ void MI_LArrow(int i)
CheckMissileCol(i, mind, maxd, FALSE, missile[i]._mix, missile[i]._miy, FALSE); CheckMissileCol(i, mind, maxd, FALSE, missile[i]._mix, missile[i]._miy, FALSE);
missiledata[missile[i]._mitype].mResist = rst; missiledata[missile[i]._mitype].mResist = rst;
} }
if (!missile[i]._mirange) { if (missile[i]._mirange == 0) {
missile[i]._mimfnum = 0; missile[i]._mimfnum = 0;
missile[i]._mitxoff -= missile[i]._mixvel; missile[i]._mitxoff -= missile[i]._mixvel;
missile[i]._mityoff -= missile[i]._miyvel; missile[i]._mityoff -= missile[i]._miyvel;
@ -3571,7 +3571,7 @@ void MI_LArrow(int i)
} }
} }
} }
if (!missile[i]._mirange) { if (missile[i]._mirange == 0) {
missile[i]._miDelFlag = TRUE; missile[i]._miDelFlag = TRUE;
AddUnLight(missile[i]._mlid); AddUnLight(missile[i]._mlid);
} }
@ -3589,7 +3589,7 @@ void MI_Arrow(int i)
GetMissilePos(i); GetMissilePos(i);
p = missile[i]._misource; p = missile[i]._misource;
if (p != -1) { if (p != -1) {
if (!missile[i]._micaster) { if (missile[i]._micaster == 0) {
mind = plr[p]._pIMinDam; mind = plr[p]._pIMinDam;
maxd = plr[p]._pIMaxDam; maxd = plr[p]._pIMaxDam;
} else { } else {
@ -3602,7 +3602,7 @@ void MI_Arrow(int i)
} }
if (missile[i]._mix != missile[i]._misx || missile[i]._miy != missile[i]._misy) if (missile[i]._mix != missile[i]._misx || missile[i]._miy != missile[i]._misy)
CheckMissileCol(i, mind, maxd, FALSE, missile[i]._mix, missile[i]._miy, FALSE); CheckMissileCol(i, mind, maxd, FALSE, missile[i]._mix, missile[i]._miy, FALSE);
if (!missile[i]._mirange) if (missile[i]._mirange == 0)
missile[i]._miDelFlag = TRUE; missile[i]._miDelFlag = TRUE;
PutMissile(i); PutMissile(i);
} }
@ -3621,7 +3621,7 @@ void MI_Firebolt(int i)
GetMissilePos(i); GetMissilePos(i);
p = missile[i]._misource; p = missile[i]._misource;
if (p != -1) { if (p != -1) {
if (!missile[i]._micaster) { if (missile[i]._micaster == 0) {
switch (missile[i]._mitype) { switch (missile[i]._mitype) {
case MIS_FIREBOLT: case MIS_FIREBOLT:
d = random_(75, 10) + (plr[p]._pMagic >> 3) + missile[i]._mispllvl + 1; d = random_(75, 10) + (plr[p]._pMagic >> 3) + missile[i]._mispllvl + 1;
@ -3642,7 +3642,7 @@ void MI_Firebolt(int i)
if (missile[i]._mix != missile[i]._misx || missile[i]._miy != missile[i]._misy) { if (missile[i]._mix != missile[i]._misx || missile[i]._miy != missile[i]._misy) {
CheckMissileCol(i, d, d, FALSE, missile[i]._mix, missile[i]._miy, FALSE); CheckMissileCol(i, d, d, FALSE, missile[i]._mix, missile[i]._miy, FALSE);
} }
if (!missile[i]._mirange) { if (missile[i]._mirange == 0) {
missile[i]._miDelFlag = TRUE; missile[i]._miDelFlag = TRUE;
missile[i]._mitxoff = omx; missile[i]._mitxoff = omx;
missile[i]._mityoff = omy; missile[i]._mityoff = omy;
@ -3694,7 +3694,7 @@ void MI_Firebolt(int i)
} }
PutMissile(i); PutMissile(i);
} }
} else if (!missile[i]._mirange) { } else if (missile[i]._mirange == 0) {
if (missile[i]._mlid >= 0) if (missile[i]._mlid >= 0)
AddUnLight(missile[i]._mlid); AddUnLight(missile[i]._mlid);
missile[i]._miDelFlag = TRUE; missile[i]._miDelFlag = TRUE;
@ -3729,7 +3729,7 @@ void MI_Lightball(int i)
if (object[oi]._otype == OBJ_SHRINEL || object[oi]._otype == OBJ_SHRINER) if (object[oi]._otype == OBJ_SHRINEL || object[oi]._otype == OBJ_SHRINER)
missile[i]._mirange = j; missile[i]._mirange = j;
} }
if (!missile[i]._mirange) if (missile[i]._mirange == 0)
missile[i]._miDelFlag = TRUE; missile[i]._miDelFlag = TRUE;
PutMissile(i); PutMissile(i);
} }
@ -3741,7 +3741,7 @@ void mi_null_33(int i)
missile[i]._mityoff += missile[i]._miyvel; missile[i]._mityoff += missile[i]._miyvel;
GetMissilePos(i); GetMissilePos(i);
CheckMissileCol(i, missile[i]._midam, missile[i]._midam, FALSE, missile[i]._mix, missile[i]._miy, FALSE); CheckMissileCol(i, missile[i]._midam, missile[i]._midam, FALSE, missile[i]._mix, missile[i]._miy, FALSE);
if (!missile[i]._mirange) if (missile[i]._mirange == 0)
missile[i]._miDelFlag = TRUE; missile[i]._miDelFlag = TRUE;
PutMissile(i); PutMissile(i);
} }
@ -3754,8 +3754,8 @@ void MI_Acidpud(int i)
range = missile[i]._mirange; range = missile[i]._mirange;
CheckMissileCol(i, missile[i]._midam, missile[i]._midam, TRUE, missile[i]._mix, missile[i]._miy, FALSE); CheckMissileCol(i, missile[i]._midam, missile[i]._midam, TRUE, missile[i]._mix, missile[i]._miy, FALSE);
missile[i]._mirange = range; missile[i]._mirange = range;
if (!range) { if (range == 0) {
if (missile[i]._mimfnum) { if (missile[i]._mimfnum != 0) {
missile[i]._miDelFlag = TRUE; missile[i]._miDelFlag = TRUE;
} else { } else {
SetMissDir(i, 1); SetMissDir(i, 1);
@ -3780,12 +3780,12 @@ void MI_Firewall(int i)
missile[i]._miAnimAdd = -1; missile[i]._miAnimAdd = -1;
} }
CheckMissileCol(i, missile[i]._midam, missile[i]._midam, TRUE, missile[i]._mix, missile[i]._miy, TRUE); CheckMissileCol(i, missile[i]._midam, missile[i]._midam, TRUE, missile[i]._mix, missile[i]._miy, TRUE);
if (!missile[i]._mirange) { if (missile[i]._mirange == 0) {
missile[i]._miDelFlag = TRUE; missile[i]._miDelFlag = TRUE;
AddUnLight(missile[i]._mlid); AddUnLight(missile[i]._mlid);
} }
if (missile[i]._mimfnum && missile[i]._mirange && missile[i]._miAnimAdd != -1 && missile[i]._miVar2 < 12) { if (missile[i]._mimfnum != 0 && missile[i]._mirange != 0 && missile[i]._miAnimAdd != -1 && missile[i]._miVar2 < 12) {
if (!missile[i]._miVar2) if (missile[i]._miVar2 == 0)
missile[i]._mlid = AddLight(missile[i]._mix, missile[i]._miy, ExpLight[0]); missile[i]._mlid = AddLight(missile[i]._mix, missile[i]._miy, ExpLight[0]);
ChangeLight(missile[i]._mlid, missile[i]._mix, missile[i]._miy, ExpLight[missile[i]._miVar2]); ChangeLight(missile[i]._mlid, missile[i]._mix, missile[i]._miy, ExpLight[missile[i]._miVar2]);
missile[i]._miVar2++; missile[i]._miVar2++;
@ -3810,7 +3810,7 @@ void MI_Fireball(int i)
} }
if (missile[i]._miAnimType == MFILE_BIGEXP) { if (missile[i]._miAnimType == MFILE_BIGEXP) {
if (!missile[i]._mirange) { if (missile[i]._mirange == 0) {
missile[i]._miDelFlag = TRUE; missile[i]._miDelFlag = TRUE;
AddUnLight(missile[i]._mlid); AddUnLight(missile[i]._mlid);
} }
@ -4031,7 +4031,7 @@ void mi_immolation(int i)
GetMissilePos(i); GetMissilePos(i);
if (missile[i]._mix != missile[i]._misx || missile[i]._miy != missile[i]._misy) if (missile[i]._mix != missile[i]._misx || missile[i]._miy != missile[i]._misy)
CheckMissileCol(i, dam, dam, FALSE, missile[i]._mix, missile[i]._miy, FALSE); CheckMissileCol(i, dam, dam, FALSE, missile[i]._mix, missile[i]._miy, FALSE);
if (!missile[i]._mirange) { if (missile[i]._mirange == 0) {
mx = missile[i]._mix; mx = missile[i]._mix;
my = missile[i]._miy; my = missile[i]._miy;
ChangeLight(missile[i]._mlid, missile[i]._mix, my, missile[i]._miAnimFrame); ChangeLight(missile[i]._mlid, missile[i]._mix, my, missile[i]._miAnimFrame);
@ -4519,7 +4519,7 @@ void MI_Lightning(int i)
CheckMissileCol(i, missile[i]._midam, missile[i]._midam, TRUE, missile[i]._mix, missile[i]._miy, FALSE); CheckMissileCol(i, missile[i]._midam, missile[i]._midam, TRUE, missile[i]._mix, missile[i]._miy, FALSE);
if (missile[i]._miHitFlag == TRUE) if (missile[i]._miHitFlag == TRUE)
missile[i]._mirange = j; missile[i]._mirange = j;
if (!missile[i]._mirange) { if (missile[i]._mirange == 0) {
missile[i]._miDelFlag = TRUE; missile[i]._miDelFlag = TRUE;
AddUnLight(missile[i]._mlid); AddUnLight(missile[i]._mlid);
} }
@ -4535,8 +4535,8 @@ void MI_Town(int i)
missile[i]._mirange--; missile[i]._mirange--;
if (missile[i]._mirange == missile[i]._miVar1) if (missile[i]._mirange == missile[i]._miVar1)
SetMissDir(i, 1); SetMissDir(i, 1);
if (currlevel && missile[i]._mimfnum != 1 && missile[i]._mirange) { if (currlevel != 0 && missile[i]._mimfnum != 1 && missile[i]._mirange != 0) {
if (!missile[i]._miVar2) if (missile[i]._miVar2 == 0)
missile[i]._mlid = AddLight(missile[i]._mix, missile[i]._miy, 1); missile[i]._mlid = AddLight(missile[i]._mix, missile[i]._miy, 1);
ChangeLight(missile[i]._mlid, missile[i]._mix, missile[i]._miy, ExpLight[missile[i]._miVar2]); ChangeLight(missile[i]._mlid, missile[i]._mix, missile[i]._miy, ExpLight[missile[i]._miVar2]);
missile[i]._miVar2++; missile[i]._miVar2++;
@ -4552,7 +4552,7 @@ void MI_Town(int i)
} }
} }
if (!missile[i]._mirange) { if (missile[i]._mirange == 0) {
missile[i]._miDelFlag = TRUE; missile[i]._miDelFlag = TRUE;
AddUnLight(missile[i]._mlid); AddUnLight(missile[i]._mlid);
} }
@ -4561,7 +4561,7 @@ void MI_Town(int i)
void MI_Flash(int i) void MI_Flash(int i)
{ {
if (!missile[i]._micaster) { if (missile[i]._micaster == 0) {
if (missile[i]._misource != -1) if (missile[i]._misource != -1)
plr[missile[i]._misource]._pInvincible = TRUE; plr[missile[i]._misource]._pInvincible = TRUE;
} }
@ -4572,7 +4572,7 @@ void MI_Flash(int i)
CheckMissileCol(i, missile[i]._midam, missile[i]._midam, TRUE, missile[i]._mix - 1, missile[i]._miy + 1, TRUE); CheckMissileCol(i, missile[i]._midam, missile[i]._midam, TRUE, missile[i]._mix - 1, missile[i]._miy + 1, TRUE);
CheckMissileCol(i, missile[i]._midam, missile[i]._midam, TRUE, missile[i]._mix, missile[i]._miy + 1, TRUE); CheckMissileCol(i, missile[i]._midam, missile[i]._midam, TRUE, missile[i]._mix, missile[i]._miy + 1, TRUE);
CheckMissileCol(i, missile[i]._midam, missile[i]._midam, TRUE, missile[i]._mix + 1, missile[i]._miy + 1, TRUE); CheckMissileCol(i, missile[i]._midam, missile[i]._midam, TRUE, missile[i]._mix + 1, missile[i]._miy + 1, TRUE);
if (!missile[i]._mirange) { if (missile[i]._mirange == 0) {
missile[i]._miDelFlag = TRUE; missile[i]._miDelFlag = TRUE;
if (missile[i]._micaster == 0) { if (missile[i]._micaster == 0) {
if (missile[i]._misource != -1) if (missile[i]._misource != -1)
@ -4584,7 +4584,7 @@ void MI_Flash(int i)
void MI_Flash2(int i) void MI_Flash2(int i)
{ {
if (!missile[i]._micaster) { if (missile[i]._micaster == 0) {
if (missile[i]._misource != -1) if (missile[i]._misource != -1)
plr[missile[i]._misource]._pInvincible = TRUE; plr[missile[i]._misource]._pInvincible = TRUE;
} }
@ -4592,7 +4592,7 @@ void MI_Flash2(int i)
CheckMissileCol(i, missile[i]._midam, missile[i]._midam, TRUE, missile[i]._mix - 1, missile[i]._miy - 1, TRUE); CheckMissileCol(i, missile[i]._midam, missile[i]._midam, TRUE, missile[i]._mix - 1, missile[i]._miy - 1, TRUE);
CheckMissileCol(i, missile[i]._midam, missile[i]._midam, TRUE, missile[i]._mix, missile[i]._miy - 1, TRUE); CheckMissileCol(i, missile[i]._midam, missile[i]._midam, TRUE, missile[i]._mix, missile[i]._miy - 1, TRUE);
CheckMissileCol(i, missile[i]._midam, missile[i]._midam, TRUE, missile[i]._mix + 1, missile[i]._miy - 1, TRUE); CheckMissileCol(i, missile[i]._midam, missile[i]._midam, TRUE, missile[i]._mix + 1, missile[i]._miy - 1, TRUE);
if (!missile[i]._mirange) { if (missile[i]._mirange == 0) {
missile[i]._miDelFlag = TRUE; missile[i]._miDelFlag = TRUE;
if (missile[i]._micaster == 0) { if (missile[i]._micaster == 0) {
if (missile[i]._misource != -1) if (missile[i]._misource != -1)
@ -4670,14 +4670,14 @@ void MI_Manashield(int i)
missile[i]._miDelFlag = TRUE; missile[i]._miDelFlag = TRUE;
if (plr[id]._pHitPoints < 0) if (plr[id]._pHitPoints < 0)
SetPlayerHitPoints(id, 0); SetPlayerHitPoints(id, 0);
if (!(plr[id]._pHitPoints >> 6) && id == myplr) { if ((plr[id]._pHitPoints >> 6) == 0 && id == myplr) {
SyncPlrKill(id, missile[i]._miVar8); SyncPlrKill(id, missile[i]._miVar8);
} }
} }
} }
#ifndef HELLFIRE #ifndef HELLFIRE
if (id == myplr && !plr[id]._pHitPoints && !missile[i]._miVar1 && plr[id]._pmode != PM_DEATH) { if (id == myplr && plr[id]._pHitPoints == 0 && missile[i]._miVar1 == 0 && plr[id]._pmode != PM_DEATH) {
missile[i]._mirange = 0; missile[i]._mirange = 0;
missile[i]._miDelFlag = TRUE; missile[i]._miDelFlag = TRUE;
SyncPlrKill(id, -1); SyncPlrKill(id, -1);
@ -4718,7 +4718,7 @@ void MI_Etherealize(int i)
missile[i]._miy++; missile[i]._miy++;
} }
plr[src]._pSpellFlags |= 1; plr[src]._pSpellFlags |= 1;
if (!missile[i]._mirange || plr[src]._pHitPoints <= 0) { if (missile[i]._mirange == 0 || plr[src]._pHitPoints <= 0) {
missile[i]._miDelFlag = TRUE; missile[i]._miDelFlag = TRUE;
plr[src]._pSpellFlags &= ~0x1; plr[src]._pSpellFlags &= ~0x1;
} }
@ -4745,18 +4745,18 @@ void MI_Firemove(int i)
CheckMissileCol(i, missile[i]._midam, missile[i]._midam, FALSE, missile[i]._mix, missile[i]._miy, FALSE); CheckMissileCol(i, missile[i]._midam, missile[i]._midam, FALSE, missile[i]._mix, missile[i]._miy, FALSE);
if (missile[i]._miHitFlag == TRUE) if (missile[i]._miHitFlag == TRUE)
missile[i]._mirange = j; missile[i]._mirange = j;
if (!missile[i]._mirange) { if (missile[i]._mirange == 0) {
missile[i]._miDelFlag = TRUE; missile[i]._miDelFlag = TRUE;
AddUnLight(missile[i]._mlid); AddUnLight(missile[i]._mlid);
} }
if (missile[i]._mimfnum || !missile[i]._mirange) { if (missile[i]._mimfnum != 0 || missile[i]._mirange == 0) {
if (missile[i]._mix != missile[i]._miVar3 || missile[i]._miy != missile[i]._miVar4) { if (missile[i]._mix != missile[i]._miVar3 || missile[i]._miy != missile[i]._miVar4) {
missile[i]._miVar3 = missile[i]._mix; missile[i]._miVar3 = missile[i]._mix;
missile[i]._miVar4 = missile[i]._miy; missile[i]._miVar4 = missile[i]._miy;
ChangeLight(missile[i]._mlid, missile[i]._miVar3, missile[i]._miVar4, 8); ChangeLight(missile[i]._mlid, missile[i]._miVar3, missile[i]._miVar4, 8);
} }
} else { } else {
if (!missile[i]._miVar2) if (missile[i]._miVar2 == 0)
missile[i]._mlid = AddLight(missile[i]._mix, missile[i]._miy, ExpLight[0]); missile[i]._mlid = AddLight(missile[i]._mix, missile[i]._miy, ExpLight[0]);
ChangeLight(missile[i]._mlid, missile[i]._mix, missile[i]._miy, ExpLight[missile[i]._miVar2]); ChangeLight(missile[i]._mlid, missile[i]._mix, missile[i]._miy, ExpLight[missile[i]._miVar2]);
missile[i]._miVar2++; missile[i]._miVar2++;
@ -4885,7 +4885,7 @@ void MI_Chain(int i)
void mi_null_11(int i) void mi_null_11(int i)
{ {
missile[i]._mirange--; missile[i]._mirange--;
if (!missile[i]._mirange) if (missile[i]._mirange == 0)
missile[i]._miDelFlag = TRUE; missile[i]._miDelFlag = TRUE;
if (missile[i]._miAnimFrame == missile[i]._miAnimLen) if (missile[i]._miAnimFrame == missile[i]._miAnimLen)
missile[i]._miPreFlag = TRUE; missile[i]._miPreFlag = TRUE;
@ -4909,14 +4909,14 @@ void MI_Weapexp(int i)
missiledata[missile[i]._mitype].mResist = MISR_LIGHTNING; missiledata[missile[i]._mitype].mResist = MISR_LIGHTNING;
} }
CheckMissileCol(i, mind, maxd, FALSE, missile[i]._mix, missile[i]._miy, FALSE); CheckMissileCol(i, mind, maxd, FALSE, missile[i]._mix, missile[i]._miy, FALSE);
if (!missile[i]._miVar1) { if (missile[i]._miVar1 == 0) {
missile[i]._mlid = AddLight(missile[i]._mix, missile[i]._miy, 9); missile[i]._mlid = AddLight(missile[i]._mix, missile[i]._miy, 9);
} else { } else {
if (missile[i]._mirange) if (missile[i]._mirange != 0)
ChangeLight(missile[i]._mlid, missile[i]._mix, missile[i]._miy, ExpLight[missile[i]._miVar1]); ChangeLight(missile[i]._mlid, missile[i]._mix, missile[i]._miy, ExpLight[missile[i]._miVar1]);
} }
missile[i]._miVar1++; missile[i]._miVar1++;
if (!missile[i]._mirange) { if (missile[i]._mirange == 0) {
missile[i]._miDelFlag = TRUE; missile[i]._miDelFlag = TRUE;
AddUnLight(missile[i]._mlid); AddUnLight(missile[i]._mlid);
} else { } else {
@ -4933,11 +4933,11 @@ void MI_Misexp(int i)
#endif #endif
missile[i]._mirange--; missile[i]._mirange--;
if (!missile[i]._mirange) { if (missile[i]._mirange == 0) {
missile[i]._miDelFlag = TRUE; missile[i]._miDelFlag = TRUE;
AddUnLight(missile[i]._mlid); AddUnLight(missile[i]._mlid);
} else { } else {
if (!missile[i]._miVar1) if (missile[i]._miVar1 == 0)
missile[i]._mlid = AddLight(missile[i]._mix, missile[i]._miy, 9); missile[i]._mlid = AddLight(missile[i]._mix, missile[i]._miy, 9);
else else
ChangeLight(missile[i]._mlid, missile[i]._mix, missile[i]._miy, ExpLight[missile[i]._miVar1]); ChangeLight(missile[i]._mlid, missile[i]._mix, missile[i]._miy, ExpLight[missile[i]._miVar1]);
@ -4956,7 +4956,7 @@ void MI_Acidsplat(int i)
missile[i]._miyoff -= 32; missile[i]._miyoff -= 32;
} }
missile[i]._mirange--; missile[i]._mirange--;
if (!missile[i]._mirange) { if (missile[i]._mirange == 0) {
missile[i]._miDelFlag = TRUE; missile[i]._miDelFlag = TRUE;
monst = missile[i]._misource; monst = missile[i]._misource;
dam = missile[i]._mispllvl; dam = missile[i]._mispllvl;
@ -5003,7 +5003,7 @@ void MI_Stone(int i)
missile[i]._mirange--; missile[i]._mirange--;
m = missile[i]._miVar2; m = missile[i]._miVar2;
if (!monster[m]._mhitpoints && missile[i]._miAnimType != MFILE_SHATTER1) { if (monster[m]._mhitpoints == 0 && missile[i]._miAnimType != MFILE_SHATTER1) {
#ifndef HELLFIRE #ifndef HELLFIRE
missile[i]._mimfnum = 0; missile[i]._mimfnum = 0;
missile[i]._miDrawFlag = TRUE; missile[i]._miDrawFlag = TRUE;
@ -5016,7 +5016,7 @@ void MI_Stone(int i)
return; return;
} }
if (!missile[i]._mirange) { if (missile[i]._mirange == 0) {
missile[i]._miDelFlag = TRUE; missile[i]._miDelFlag = TRUE;
if (monster[m]._mhitpoints > 0) if (monster[m]._mhitpoints > 0)
monster[m]._mmode = missile[i]._miVar1; monster[m]._mmode = missile[i]._miVar1;
@ -5030,11 +5030,11 @@ void MI_Stone(int i)
void MI_Boom(int i) void MI_Boom(int i)
{ {
missile[i]._mirange--; missile[i]._mirange--;
if (!missile[i]._miVar1) if (missile[i]._miVar1 == 0)
CheckMissileCol(i, missile[i]._midam, missile[i]._midam, FALSE, missile[i]._mix, missile[i]._miy, TRUE); CheckMissileCol(i, missile[i]._midam, missile[i]._midam, FALSE, missile[i]._mix, missile[i]._miy, TRUE);
if (missile[i]._miHitFlag == TRUE) if (missile[i]._miHitFlag == TRUE)
missile[i]._miVar1 = 1; missile[i]._miVar1 = 1;
if (!missile[i]._mirange) if (missile[i]._mirange == 0)
missile[i]._miDelFlag = TRUE; missile[i]._miDelFlag = TRUE;
PutMissile(i); PutMissile(i);
} }
@ -5138,7 +5138,7 @@ void MI_FirewallC(int i)
} else { } else {
tx = missile[i]._miVar1 + XDirAdd[missile[i]._miVar3]; tx = missile[i]._miVar1 + XDirAdd[missile[i]._miVar3];
ty = missile[i]._miVar2 + YDirAdd[missile[i]._miVar3]; ty = missile[i]._miVar2 + YDirAdd[missile[i]._miVar3];
if (!nMissileTable[dPiece[missile[i]._miVar1][missile[i]._miVar2]] && !missile[i]._miVar8 && tx > 0 && tx < MAXDUNX && ty > 0 && ty < MAXDUNY) { if (!nMissileTable[dPiece[missile[i]._miVar1][missile[i]._miVar2]] && missile[i]._miVar8 == 0 && tx > 0 && tx < MAXDUNX && ty > 0 && ty < MAXDUNY) {
AddMissile(missile[i]._miVar1, missile[i]._miVar2, missile[i]._miVar1, missile[i]._miVar2, plr[id]._pdir, MIS_FIREWALL, 0, id, 0, missile[i]._mispllvl); AddMissile(missile[i]._miVar1, missile[i]._miVar2, missile[i]._miVar1, missile[i]._miVar2, plr[id]._pdir, MIS_FIREWALL, 0, id, 0, missile[i]._mispllvl);
missile[i]._miVar1 = tx; missile[i]._miVar1 = tx;
missile[i]._miVar2 = ty; missile[i]._miVar2 = ty;
@ -5147,7 +5147,7 @@ void MI_FirewallC(int i)
} }
tx = missile[i]._miVar5 + XDirAdd[missile[i]._miVar4]; tx = missile[i]._miVar5 + XDirAdd[missile[i]._miVar4];
ty = missile[i]._miVar6 + YDirAdd[missile[i]._miVar4]; ty = missile[i]._miVar6 + YDirAdd[missile[i]._miVar4];
if (!nMissileTable[dPiece[missile[i]._miVar5][missile[i]._miVar6]] && !missile[i]._miVar7 && tx > 0 && tx < MAXDUNX && ty > 0 && ty < MAXDUNY) { if (!nMissileTable[dPiece[missile[i]._miVar5][missile[i]._miVar6]] && missile[i]._miVar7 == 0 && tx > 0 && tx < MAXDUNX && ty > 0 && ty < MAXDUNY) {
AddMissile(missile[i]._miVar5, missile[i]._miVar6, missile[i]._miVar5, missile[i]._miVar6, plr[id]._pdir, MIS_FIREWALL, 0, id, 0, missile[i]._mispllvl); AddMissile(missile[i]._miVar5, missile[i]._miVar6, missile[i]._miVar5, missile[i]._miVar6, plr[id]._pdir, MIS_FIREWALL, 0, id, 0, missile[i]._mispllvl);
missile[i]._miVar5 = tx; missile[i]._miVar5 = tx;
missile[i]._miVar6 = ty; missile[i]._miVar6 = ty;
@ -5161,7 +5161,7 @@ void MI_Infra(int i)
{ {
missile[i]._mirange--; missile[i]._mirange--;
plr[missile[i]._misource]._pInfraFlag = TRUE; plr[missile[i]._misource]._pInfraFlag = TRUE;
if (!missile[i]._mirange) { if (missile[i]._mirange == 0) {
missile[i]._miDelFlag = TRUE; missile[i]._miDelFlag = TRUE;
CalcPlrItemVals(missile[i]._misource, TRUE); CalcPlrItemVals(missile[i]._misource, TRUE);
} }
@ -5343,7 +5343,7 @@ void MI_Flame(int i)
CheckMissileCol(i, missile[i]._midam, missile[i]._midam, TRUE, missile[i]._mix, missile[i]._miy, FALSE); CheckMissileCol(i, missile[i]._midam, missile[i]._midam, TRUE, missile[i]._mix, missile[i]._miy, FALSE);
if (missile[i]._mirange == 0 && missile[i]._miHitFlag == TRUE) if (missile[i]._mirange == 0 && missile[i]._miHitFlag == TRUE)
missile[i]._mirange = k; missile[i]._mirange = k;
if (!missile[i]._miVar2) if (missile[i]._miVar2 == 0)
missile[i]._miAnimFrame = 20; missile[i]._miAnimFrame = 20;
if (missile[i]._miVar2 <= 0) { if (missile[i]._miVar2 <= 0) {
k = missile[i]._miAnimFrame; k = missile[i]._miAnimFrame;
@ -5351,7 +5351,7 @@ void MI_Flame(int i)
k = 24 - k; k = 24 - k;
ChangeLight(missile[i]._mlid, missile[i]._mix, missile[i]._miy, k); ChangeLight(missile[i]._mlid, missile[i]._mix, missile[i]._miy, k);
} }
if (!missile[i]._mirange) { if (missile[i]._mirange == 0) {
missile[i]._miDelFlag = TRUE; missile[i]._miDelFlag = TRUE;
AddUnLight(missile[i]._mlid); AddUnLight(missile[i]._mlid);
} }
@ -5389,7 +5389,7 @@ void MI_Flamec(int i)
missile[i]._miVar2 = missile[i]._miy; missile[i]._miVar2 = missile[i]._miy;
missile[i]._miVar3++; missile[i]._miVar3++;
} }
if (!missile[i]._mirange || missile[i]._miVar3 == 3) if (missile[i]._mirange == 0 || missile[i]._miVar3 == 3)
missile[i]._miDelFlag = TRUE; missile[i]._miDelFlag = TRUE;
} }
@ -5400,7 +5400,7 @@ void MI_Cbolt(int i)
missile[i]._mirange--; missile[i]._mirange--;
if (missile[i]._miAnimType != MFILE_LGHNING) { if (missile[i]._miAnimType != MFILE_LGHNING) {
if (!missile[i]._miVar3) { if (missile[i]._miVar3 == 0) {
md = (missile[i]._miVar2 + bpath[missile[i]._mirnd]) & 7; md = (missile[i]._miVar2 + bpath[missile[i]._mirnd]) & 7;
missile[i]._mirnd = (missile[i]._mirnd + 1) & 0xF; missile[i]._mirnd = (missile[i]._mirnd + 1) & 0xF;
GetMissileVel(i, missile[i]._mix, missile[i]._miy, missile[i]._mix + XDirAdd[md], missile[i]._miy + YDirAdd[md], 8); GetMissileVel(i, missile[i]._mix, missile[i]._miy, missile[i]._mix + XDirAdd[md], missile[i]._miy + YDirAdd[md], 8);
@ -5423,7 +5423,7 @@ void MI_Cbolt(int i)
} }
ChangeLight(missile[i]._mlid, missile[i]._mix, missile[i]._miy, missile[i]._miVar1); ChangeLight(missile[i]._mlid, missile[i]._mix, missile[i]._miy, missile[i]._miVar1);
} }
if (!missile[i]._mirange) { if (missile[i]._mirange == 0) {
missile[i]._miDelFlag = TRUE; missile[i]._miDelFlag = TRUE;
AddUnLight(missile[i]._mlid); AddUnLight(missile[i]._mlid);
} }
@ -5443,7 +5443,7 @@ void MI_Hbolt(int i)
if (missile[i]._mix != missile[i]._misx || missile[i]._miy != missile[i]._misy) { if (missile[i]._mix != missile[i]._misx || missile[i]._miy != missile[i]._misy) {
CheckMissileCol(i, dam, dam, FALSE, missile[i]._mix, missile[i]._miy, FALSE); CheckMissileCol(i, dam, dam, FALSE, missile[i]._mix, missile[i]._miy, FALSE);
} }
if (!missile[i]._mirange) { if (missile[i]._mirange == 0) {
missile[i]._mitxoff -= missile[i]._mixvel; missile[i]._mitxoff -= missile[i]._mixvel;
missile[i]._mityoff -= missile[i]._miyvel; missile[i]._mityoff -= missile[i]._miyvel;
GetMissilePos(i); GetMissilePos(i);
@ -5459,7 +5459,7 @@ void MI_Hbolt(int i)
} }
} else { } else {
ChangeLight(missile[i]._mlid, missile[i]._mix, missile[i]._miy, missile[i]._miAnimFrame + 7); ChangeLight(missile[i]._mlid, missile[i]._mix, missile[i]._miy, missile[i]._miAnimFrame + 7);
if (!missile[i]._mirange) { if (missile[i]._mirange == 0) {
missile[i]._miDelFlag = TRUE; missile[i]._miDelFlag = TRUE;
AddUnLight(missile[i]._mlid); AddUnLight(missile[i]._mlid);
} }
@ -5498,7 +5498,7 @@ void MI_Element(int i)
CheckMissileCol(i, dam, dam, TRUE, cx - 1, cy + 1, TRUE); CheckMissileCol(i, dam, dam, TRUE, cx - 1, cy + 1, TRUE);
if (!CheckBlock(px, py, cx - 1, cy - 1)) if (!CheckBlock(px, py, cx - 1, cy - 1))
CheckMissileCol(i, dam, dam, TRUE, cx - 1, cy - 1, TRUE); CheckMissileCol(i, dam, dam, TRUE, cx - 1, cy - 1, TRUE);
if (!missile[i]._mirange) { if (missile[i]._mirange == 0) {
missile[i]._miDelFlag = TRUE; missile[i]._miDelFlag = TRUE;
AddUnLight(missile[i]._mlid); AddUnLight(missile[i]._mlid);
} }
@ -5509,7 +5509,7 @@ void MI_Element(int i)
cx = missile[i]._mix; cx = missile[i]._mix;
cy = missile[i]._miy; cy = missile[i]._miy;
CheckMissileCol(i, dam, dam, FALSE, cx, cy, FALSE); CheckMissileCol(i, dam, dam, FALSE, cx, cy, FALSE);
if (!missile[i]._miVar3 && cx == missile[i]._miVar4 && cy == missile[i]._miVar5) if (missile[i]._miVar3 == 0 && cx == missile[i]._miVar4 && cy == missile[i]._miVar5)
missile[i]._miVar3 = 1; missile[i]._miVar3 = 1;
if (missile[i]._miVar3 == 1) { if (missile[i]._miVar3 == 1) {
missile[i]._miVar3 = 2; missile[i]._miVar3 = 2;
@ -5530,7 +5530,7 @@ void MI_Element(int i)
missile[i]._miVar2 = cy; missile[i]._miVar2 = cy;
ChangeLight(missile[i]._mlid, cx, cy, 8); ChangeLight(missile[i]._mlid, cx, cy, 8);
} }
if (!missile[i]._mirange) { if (missile[i]._mirange == 0) {
missile[i]._mimfnum = 0; missile[i]._mimfnum = 0;
SetMissAnim(i, MFILE_BIGEXP); SetMissAnim(i, MFILE_BIGEXP);
missile[i]._mirange = missile[i]._miAnimLen - 1; missile[i]._mirange = missile[i]._miAnimLen - 1;
@ -5549,7 +5549,7 @@ void MI_Bonespirit(int i)
id = missile[i]._misource; id = missile[i]._misource;
if (missile[i]._mimfnum == 8) { if (missile[i]._mimfnum == 8) {
ChangeLight(missile[i]._mlid, missile[i]._mix, missile[i]._miy, missile[i]._miAnimFrame); ChangeLight(missile[i]._mlid, missile[i]._mix, missile[i]._miy, missile[i]._miAnimFrame);
if (!missile[i]._mirange) { if (missile[i]._mirange == 0) {
missile[i]._miDelFlag = TRUE; missile[i]._miDelFlag = TRUE;
AddUnLight(missile[i]._mlid); AddUnLight(missile[i]._mlid);
} }
@ -5582,7 +5582,7 @@ void MI_Bonespirit(int i)
missile[i]._miVar2 = cy; missile[i]._miVar2 = cy;
ChangeLight(missile[i]._mlid, cx, cy, 8); ChangeLight(missile[i]._mlid, cx, cy, 8);
} }
if (!missile[i]._mirange) { if (missile[i]._mirange == 0) {
SetMissDir(i, DIR_OMNI); SetMissDir(i, DIR_OMNI);
missile[i]._mirange = 7; missile[i]._mirange = 7;
} }
@ -5607,13 +5607,13 @@ void MI_Rportal(int i)
if (missile[i]._mirange == missile[i]._miVar1) if (missile[i]._mirange == missile[i]._miVar1)
SetMissDir(i, 1); SetMissDir(i, 1);
if (currlevel && missile[i]._mimfnum != 1 && missile[i]._mirange != 0) { if (currlevel != 0 && missile[i]._mimfnum != 1 && missile[i]._mirange != 0) {
if (!missile[i]._miVar2) if (missile[i]._miVar2 == 0)
missile[i]._mlid = AddLight(missile[i]._mix, missile[i]._miy, 1); missile[i]._mlid = AddLight(missile[i]._mix, missile[i]._miy, 1);
ChangeLight(missile[i]._mlid, missile[i]._mix, missile[i]._miy, ExpLight[missile[i]._miVar2]); ChangeLight(missile[i]._mlid, missile[i]._mix, missile[i]._miy, ExpLight[missile[i]._miVar2]);
missile[i]._miVar2++; missile[i]._miVar2++;
} }
if (!missile[i]._mirange) { if (missile[i]._mirange == 0) {
missile[i]._miDelFlag = TRUE; missile[i]._miDelFlag = TRUE;
AddUnLight(missile[i]._mlid); AddUnLight(missile[i]._mlid);
} }

4
Source/msg.cpp

@ -272,7 +272,7 @@ BYTE *DeltaExportJunk(BYTE *dst)
mq = sgJunk.quests; mq = sgJunk.quests;
for (i = 0; i < MAXMULTIQUESTS; i++) { for (i = 0; i < MAXMULTIQUESTS; i++) {
if (questlist[i]._qflags & 1) { if (questlist[i]._qflags & QUEST_ANY) {
mq->qlog = quests[i]._qlog; mq->qlog = quests[i]._qlog;
mq->qstate = quests[i]._qactive; mq->qstate = quests[i]._qactive;
mq->qvar1 = quests[i]._qvar1; mq->qvar1 = quests[i]._qvar1;
@ -1302,7 +1302,7 @@ void DeltaImportJunk(BYTE *src)
mq = sgJunk.quests; mq = sgJunk.quests;
for (i = 0; i < MAXMULTIQUESTS; i++) { for (i = 0; i < MAXMULTIQUESTS; i++) {
if (questlist[i]._qflags & 1) { if (questlist[i]._qflags & QUEST_ANY) {
memcpy(mq, src, sizeof(MultiQuests)); memcpy(mq, src, sizeof(MultiQuests));
src += sizeof(MultiQuests); src += sizeof(MultiQuests);
quests[i]._qlog = mq->qlog; quests[i]._qlog = mq->qlog;

8
Source/objects.cpp

@ -2978,12 +2978,12 @@ void OperateBookLever(int pnum, int i)
if (object[i]._oSelFlag != 0 && !qtextflag) { if (object[i]._oSelFlag != 0 && !qtextflag) {
if (object[i]._otype == OBJ_BLINDBOOK && !quests[Q_BLIND]._qvar1) { if (object[i]._otype == OBJ_BLINDBOOK && !quests[Q_BLIND]._qvar1) {
quests[Q_BLIND]._qactive = QUEST_ACTIVE; quests[Q_BLIND]._qactive = QUEST_ACTIVE;
quests[Q_BLIND]._qlog = 1; quests[Q_BLIND]._qlog = TRUE;
quests[Q_BLIND]._qvar1 = 1; quests[Q_BLIND]._qvar1 = 1;
} }
if (object[i]._otype == OBJ_BLOODBOOK && !quests[Q_BLOOD]._qvar1) { if (object[i]._otype == OBJ_BLOODBOOK && !quests[Q_BLOOD]._qvar1) {
quests[Q_BLOOD]._qactive = QUEST_ACTIVE; quests[Q_BLOOD]._qactive = QUEST_ACTIVE;
quests[Q_BLOOD]._qlog = 1; quests[Q_BLOOD]._qlog = TRUE;
quests[Q_BLOOD]._qvar1 = 1; quests[Q_BLOOD]._qvar1 = 1;
SpawnQuestItem(IDI_BLDSTONE, 2 * setpc_x + 19, 2 * setpc_y + 26, 0, 1); SpawnQuestItem(IDI_BLDSTONE, 2 * setpc_x + 19, 2 * setpc_y + 26, 0, 1);
SpawnQuestItem(IDI_BLDSTONE, 2 * setpc_x + 31, 2 * setpc_y + 26, 0, 1); SpawnQuestItem(IDI_BLDSTONE, 2 * setpc_x + 31, 2 * setpc_y + 26, 0, 1);
@ -2992,7 +2992,7 @@ void OperateBookLever(int pnum, int i)
object[i]._otype = object[i]._otype; object[i]._otype = object[i]._otype;
if (object[i]._otype == OBJ_STEELTOME && !quests[Q_WARLORD]._qvar1) { if (object[i]._otype == OBJ_STEELTOME && !quests[Q_WARLORD]._qvar1) {
quests[Q_WARLORD]._qactive = QUEST_ACTIVE; quests[Q_WARLORD]._qactive = QUEST_ACTIVE;
quests[Q_WARLORD]._qlog = 1; quests[Q_WARLORD]._qlog = TRUE;
quests[Q_WARLORD]._qvar1 = 1; quests[Q_WARLORD]._qvar1 = 1;
} }
if (object[i]._oAnimFrame != object[i]._oVar6) { if (object[i]._oAnimFrame != object[i]._oVar6) {
@ -3026,7 +3026,7 @@ void OperateSChambBk(int pnum, int i)
object[i]._oAnimFrame = object[i]._oVar6; object[i]._oAnimFrame = object[i]._oVar6;
if (quests[Q_SCHAMB]._qactive == QUEST_INIT) { if (quests[Q_SCHAMB]._qactive == QUEST_INIT) {
quests[Q_SCHAMB]._qactive = QUEST_ACTIVE; quests[Q_SCHAMB]._qactive = QUEST_ACTIVE;
quests[Q_SCHAMB]._qlog = 1; quests[Q_SCHAMB]._qlog = TRUE;
} }
if (plr[myplr]._pClass == PC_WARRIOR) { if (plr[myplr]._pClass == PC_WARRIOR) {
textdef = TEXT_BONER; textdef = TEXT_BONER;

18
Source/player.cpp

@ -1281,7 +1281,7 @@ void StartStand(int pnum, int dir)
app_fatal("StartStand: illegal player %d", pnum); app_fatal("StartStand: illegal player %d", pnum);
} }
if (!plr[pnum]._pInvincible || plr[pnum]._pHitPoints || pnum != myplr) { if (!plr[pnum]._pInvincible || plr[pnum]._pHitPoints != 0 || pnum != myplr) {
if (!(plr[pnum]._pGFXLoad & PFILE_STAND)) { if (!(plr[pnum]._pGFXLoad & PFILE_STAND)) {
LoadPlrGFX(pnum, PFILE_STAND); LoadPlrGFX(pnum, PFILE_STAND);
} }
@ -1405,7 +1405,7 @@ void StartWalk(int pnum, int xvel, int yvel, int xadd, int yadd, int EndDir, int
app_fatal("StartWalk: illegal player %d", pnum); app_fatal("StartWalk: illegal player %d", pnum);
} }
if (plr[pnum]._pInvincible && !plr[pnum]._pHitPoints && pnum == myplr) { if (plr[pnum]._pInvincible && plr[pnum]._pHitPoints == 0 && pnum == myplr) {
SyncPlrKill(pnum, -1); SyncPlrKill(pnum, -1);
return; return;
} }
@ -1475,7 +1475,7 @@ void StartWalk2(int pnum, int xvel, int yvel, int xoff, int yoff, int xadd, int
app_fatal("StartWalk2: illegal player %d", pnum); app_fatal("StartWalk2: illegal player %d", pnum);
} }
if (plr[pnum]._pInvincible && !plr[pnum]._pHitPoints && pnum == myplr) { if (plr[pnum]._pInvincible && plr[pnum]._pHitPoints == 0 && pnum == myplr) {
SyncPlrKill(pnum, -1); SyncPlrKill(pnum, -1);
return; return;
} }
@ -1554,7 +1554,7 @@ void StartWalk3(int pnum, int xvel, int yvel, int xoff, int yoff, int xadd, int
app_fatal("StartWalk3: illegal player %d", pnum); app_fatal("StartWalk3: illegal player %d", pnum);
} }
if (plr[pnum]._pInvincible && !plr[pnum]._pHitPoints && pnum == myplr) { if (plr[pnum]._pInvincible && plr[pnum]._pHitPoints == 0 && pnum == myplr) {
SyncPlrKill(pnum, -1); SyncPlrKill(pnum, -1);
return; return;
} }
@ -1632,7 +1632,7 @@ void StartAttack(int pnum, int d)
app_fatal("StartAttack: illegal player %d", pnum); app_fatal("StartAttack: illegal player %d", pnum);
} }
if (plr[pnum]._pInvincible && !plr[pnum]._pHitPoints && pnum == myplr) { if (plr[pnum]._pInvincible && plr[pnum]._pHitPoints == 0 && pnum == myplr) {
SyncPlrKill(pnum, -1); SyncPlrKill(pnum, -1);
return; return;
} }
@ -1653,7 +1653,7 @@ void StartRangeAttack(int pnum, int d, int cx, int cy)
app_fatal("StartRangeAttack: illegal player %d", pnum); app_fatal("StartRangeAttack: illegal player %d", pnum);
} }
if (plr[pnum]._pInvincible && !plr[pnum]._pHitPoints && pnum == myplr) { if (plr[pnum]._pInvincible && plr[pnum]._pHitPoints == 0 && pnum == myplr) {
SyncPlrKill(pnum, -1); SyncPlrKill(pnum, -1);
return; return;
} }
@ -1676,7 +1676,7 @@ void StartPlrBlock(int pnum, int dir)
app_fatal("StartPlrBlock: illegal player %d", pnum); app_fatal("StartPlrBlock: illegal player %d", pnum);
} }
if (plr[pnum]._pInvincible && !plr[pnum]._pHitPoints && pnum == myplr) { if (plr[pnum]._pInvincible && plr[pnum]._pHitPoints == 0 && pnum == myplr) {
SyncPlrKill(pnum, -1); SyncPlrKill(pnum, -1);
return; return;
} }
@ -1698,7 +1698,7 @@ void StartSpell(int pnum, int d, int cx, int cy)
if ((DWORD)pnum >= MAX_PLRS) if ((DWORD)pnum >= MAX_PLRS)
app_fatal("StartSpell: illegal player %d", pnum); app_fatal("StartSpell: illegal player %d", pnum);
if (plr[pnum]._pInvincible && !plr[pnum]._pHitPoints && pnum == myplr) { if (plr[pnum]._pInvincible && plr[pnum]._pHitPoints == 0 && pnum == myplr) {
SyncPlrKill(pnum, -1); SyncPlrKill(pnum, -1);
return; return;
} }
@ -1794,7 +1794,7 @@ void StartPlrHit(int pnum, int dam, BOOL forcehit)
app_fatal("StartPlrHit: illegal player %d", pnum); app_fatal("StartPlrHit: illegal player %d", pnum);
} }
if (plr[pnum]._pInvincible && !plr[pnum]._pHitPoints && pnum == myplr) { if (plr[pnum]._pInvincible && plr[pnum]._pHitPoints == 0 && pnum == myplr) {
SyncPlrKill(pnum, -1); SyncPlrKill(pnum, -1);
return; return;
} }

2
Source/portal.cpp

@ -129,7 +129,7 @@ void SetCurrentPortal(int p)
void GetPortalLevel() void GetPortalLevel()
{ {
if (currlevel) { if (currlevel != 0) {
setlevel = FALSE; setlevel = FALSE;
currlevel = 0; currlevel = 0;
plr[myplr].plrlevel = 0; plr[myplr].plrlevel = 0;

96
Source/quests.cpp

@ -17,39 +17,39 @@ int WaterDone;
int ReturnLvlX; int ReturnLvlX;
int ReturnLvlY; int ReturnLvlY;
int ReturnLvlT; int ReturnLvlT;
/** current frame # for the pentagram selector */ /** current frame # for the quest pentagram selector */
int ALLQUESTS; int questpentframe;
int ReturnLvl; int ReturnLvl;
/** Contains the data related to each quest_id. */ /** Contains the data related to each quest_id. */
QuestData questlist[MAXQUESTS] = { QuestData questlist[MAXQUESTS] = {
// clang-format off // clang-format off
// _qdlvl, _qdmultlvl, _qlvlt, _qdtype, _qdrnd, _qslvl, _qflags, _qdmsg, _qlstr // _qdlvl, _qdmultlvl, _qlvlt, _qdtype, _qdrnd, _qslvl, _qflags, _qdmsg, _qlstr
{ 5, -1, DTYPE_NONE, Q_ROCK, 100, 0, 0, TEXT_INFRA5, "The Magic Rock" }, { 5, -1, DTYPE_NONE, Q_ROCK, 100, 0, QUEST_SINGLE, TEXT_INFRA5, "The Magic Rock" },
{ 9, -1, DTYPE_NONE, Q_MUSHROOM, 100, 0, 0, TEXT_MUSH8, "Black Mushroom" }, { 9, -1, DTYPE_NONE, Q_MUSHROOM, 100, 0, QUEST_SINGLE, TEXT_MUSH8, "Black Mushroom" },
{ 4, -1, DTYPE_NONE, Q_GARBUD, 100, 0, 0, TEXT_GARBUD1, "Gharbad The Weak" }, { 4, -1, DTYPE_NONE, Q_GARBUD, 100, 0, QUEST_SINGLE, TEXT_GARBUD1, "Gharbad The Weak" },
{ 8, -1, DTYPE_NONE, Q_ZHAR, 100, 0, 0, TEXT_ZHAR1, "Zhar the Mad" }, { 8, -1, DTYPE_NONE, Q_ZHAR, 100, 0, QUEST_SINGLE, TEXT_ZHAR1, "Zhar the Mad" },
{ 14, -1, DTYPE_NONE, Q_VEIL, 100, 0, 0, TEXT_VEIL9, "Lachdanan" }, { 14, -1, DTYPE_NONE, Q_VEIL, 100, 0, QUEST_SINGLE, TEXT_VEIL9, "Lachdanan" },
{ 15, -1, DTYPE_NONE, Q_DIABLO, 100, 0, 1, TEXT_VILE3, "Diablo" }, { 15, -1, DTYPE_NONE, Q_DIABLO, 100, 0, QUEST_ANY, TEXT_VILE3, "Diablo" },
{ 2, 2, DTYPE_NONE, Q_BUTCHER, 100, 0, 1, TEXT_BUTCH9, "The Butcher" }, { 2, 2, DTYPE_NONE, Q_BUTCHER, 100, 0, QUEST_ANY, TEXT_BUTCH9, "The Butcher" },
{ 4, -1, DTYPE_NONE, Q_LTBANNER, 100, 0, 0, TEXT_BANNER2, "Ogden's Sign" }, { 4, -1, DTYPE_NONE, Q_LTBANNER, 100, 0, QUEST_SINGLE, TEXT_BANNER2, "Ogden's Sign" },
{ 7, -1, DTYPE_NONE, Q_BLIND, 100, 0, 0, TEXT_BLINDING, "Halls of the Blind" }, { 7, -1, DTYPE_NONE, Q_BLIND, 100, 0, QUEST_SINGLE, TEXT_BLINDING, "Halls of the Blind" },
{ 5, -1, DTYPE_NONE, Q_BLOOD, 100, 0, 0, TEXT_BLOODY, "Valor" }, { 5, -1, DTYPE_NONE, Q_BLOOD, 100, 0, QUEST_SINGLE, TEXT_BLOODY, "Valor" },
{ 10, -1, DTYPE_NONE, Q_ANVIL, 100, 0, 0, TEXT_ANVIL5, "Anvil of Fury" }, { 10, -1, DTYPE_NONE, Q_ANVIL, 100, 0, QUEST_SINGLE, TEXT_ANVIL5, "Anvil of Fury" },
{ 13, -1, DTYPE_NONE, Q_WARLORD, 100, 0, 0, TEXT_BLOODWAR, "Warlord of Blood" }, { 13, -1, DTYPE_NONE, Q_WARLORD, 100, 0, QUEST_SINGLE, TEXT_BLOODWAR, "Warlord of Blood" },
{ 3, 3, DTYPE_CATHEDRAL, Q_SKELKING, 100, 1, 1, TEXT_KING2, "The Curse of King Leoric" }, { 3, 3, DTYPE_CATHEDRAL, Q_SKELKING, 100, 1, QUEST_ANY, TEXT_KING2, "The Curse of King Leoric" },
{ 2, -1, DTYPE_CAVES, Q_PWATER, 100, 4, 0, TEXT_POISON3, "Poisoned Water Supply" }, { 2, -1, DTYPE_CAVES, Q_PWATER, 100, 4, QUEST_SINGLE, TEXT_POISON3, "Poisoned Water Supply" },
{ 6, -1, DTYPE_CATACOMBS, Q_SCHAMB, 100, 2, 0, TEXT_BONER, "The Chamber of Bone" }, { 6, -1, DTYPE_CATACOMBS, Q_SCHAMB, 100, 2, QUEST_SINGLE, TEXT_BONER, "The Chamber of Bone" },
{ 15, 15, DTYPE_CATHEDRAL, Q_BETRAYER, 100, 5, 1, TEXT_VILE1, "Archbishop Lazarus" }, { 15, 15, DTYPE_CATHEDRAL, Q_BETRAYER, 100, 5, QUEST_ANY, TEXT_VILE1, "Archbishop Lazarus" },
#ifdef HELLFIRE #ifdef HELLFIRE
{ 17, 17, DTYPE_NONE, Q_GRAVE, 100, 0, 1, TEXT_GRAVE7, "Grave Matters" }, { 17, 17, DTYPE_NONE, Q_GRAVE, 100, 0, QUEST_ANY, TEXT_GRAVE7, "Grave Matters" },
{ 9, 9, DTYPE_NONE, Q_FARMER, 100, 0, 1, TEXT_FARMER1, "Farmer's Orchard" }, { 9, 9, DTYPE_NONE, Q_FARMER, 100, 0, QUEST_ANY, TEXT_FARMER1, "Farmer's Orchard" },
{ 17, -1, DTYPE_NONE, Q_GIRL, 100, 0, 0, TEXT_GIRL2, "Little Girl" }, { 17, -1, DTYPE_NONE, Q_GIRL, 100, 0, QUEST_SINGLE, TEXT_GIRL2, "Little Girl" },
{ 19, -1, DTYPE_NONE, Q_TRADER, 100, 0, 0, TEXT_TRADER, "Wandering Trader" }, { 19, -1, DTYPE_NONE, Q_TRADER, 100, 0, QUEST_SINGLE, TEXT_TRADER, "Wandering Trader" },
{ 17, 17, DTYPE_NONE, Q_DEFILER,100, 0, 1, TEXT_DEFILER1, "The Defiler" }, { 17, 17, DTYPE_NONE, Q_DEFILER, 100, 0, QUEST_ANY, TEXT_DEFILER1, "The Defiler" },
{ 21, 21, DTYPE_NONE, Q_NAKRUL, 100, 0, 1, TEXT_NAKRUL1, "Na-Krul" }, { 21, 21, DTYPE_NONE, Q_NAKRUL, 100, 0, QUEST_ANY, TEXT_NAKRUL1, "Na-Krul" },
{ 21, -1, DTYPE_NONE, Q_CORNSTN,100, 0, 0, TEXT_CORNSTN, "Cornerstone of the World" }, { 21, -1, DTYPE_NONE, Q_CORNSTN, 100, 0, QUEST_SINGLE, TEXT_CORNSTN, "Cornerstone of the World" },
{ 9, 9, DTYPE_NONE, Q_JERSEY, 100, 0, 1, TEXT_JERSEY4, "The Jersey's Jersey" }, { 9, 9, DTYPE_NONE, Q_JERSEY, 100, 0, QUEST_ANY, TEXT_JERSEY4, "The Jersey's Jersey" },
#endif #endif
// clang-format on // clang-format on
}; };
@ -106,33 +106,34 @@ void InitQuests()
} }
} else { } else {
for (i = 0; i < MAXQUESTS; i++) { for (i = 0; i < MAXQUESTS; i++) {
if (!(questlist[i]._qflags & 1)) { if (!(questlist[i]._qflags & QUEST_ANY)) {
quests[i]._qactive = QUEST_NOTAVAIL; quests[i]._qactive = QUEST_NOTAVAIL;
} }
} }
} }
questlog = FALSE; questlog = FALSE;
ALLQUESTS = 1; questpentframe = 1;
WaterDone = 0; WaterDone = 0;
initiatedQuests = 0; initiatedQuests = 0;
for (z = 0; z < MAXQUESTS; z++) { for (z = 0; z < MAXQUESTS; z++) {
if (gbMaxPlayers <= 1 || questlist[z]._qflags & 1) { if (gbMaxPlayers > 1 && !(questlist[z]._qflags & QUEST_ANY))
continue;
quests[z]._qtype = questlist[z]._qdtype; quests[z]._qtype = questlist[z]._qdtype;
if (gbMaxPlayers > 1) { if (gbMaxPlayers > 1) {
quests[z]._qlevel = questlist[z]._qdmultlvl; quests[z]._qlevel = questlist[z]._qdmultlvl;
if (!delta_quest_inited(initiatedQuests)) { if (!delta_quest_inited(initiatedQuests)) {
quests[z]._qactive = QUEST_INIT; quests[z]._qactive = QUEST_INIT;
quests[z]._qvar1 = 0; quests[z]._qvar1 = 0;
quests[z]._qlog = 0; quests[z]._qlog = FALSE;
} }
initiatedQuests++; initiatedQuests++;
} else { } else {
quests[z]._qactive = QUEST_INIT; quests[z]._qactive = QUEST_INIT;
quests[z]._qlevel = questlist[z]._qdlvl; quests[z]._qlevel = questlist[z]._qdlvl;
quests[z]._qvar1 = 0; quests[z]._qvar1 = 0;
quests[z]._qlog = 0; quests[z]._qlog = FALSE;
} }
quests[z]._qslvl = questlist[z]._qslvl; quests[z]._qslvl = questlist[z]._qslvl;
@ -142,7 +143,6 @@ void InitQuests()
quests[z]._qlvltype = questlist[z]._qlvlt; quests[z]._qlvltype = questlist[z]._qlvlt;
quests[z]._qvar2 = 0; quests[z]._qvar2 = 0;
quests[z]._qmsg = questlist[z]._qdmsg; quests[z]._qmsg = questlist[z]._qdmsg;
}
} }
if (gbMaxPlayers == 1) { if (gbMaxPlayers == 1) {
@ -168,9 +168,9 @@ void InitQuests()
} }
#endif #endif
if (!quests[Q_SKELKING]._qactive) if (quests[Q_SKELKING]._qactive == QUEST_NOTAVAIL)
quests[Q_SKELKING]._qvar2 = 2; quests[Q_SKELKING]._qvar2 = 2;
if (!quests[Q_ROCK]._qactive) if (quests[Q_ROCK]._qactive == QUEST_NOTAVAIL)
quests[Q_ROCK]._qvar2 = 2; quests[Q_ROCK]._qvar2 = 2;
quests[Q_LTBANNER]._qvar1 = 1; quests[Q_LTBANNER]._qvar1 = 1;
if (gbMaxPlayers != 1) if (gbMaxPlayers != 1)
@ -283,15 +283,15 @@ BOOL ForceQuests()
BOOL QuestStatus(int i) BOOL QuestStatus(int i)
{ {
BOOL result; if (setlevel)
return FALSE;
if (setlevel if (currlevel != quests[i]._qlevel)
|| currlevel != quests[i]._qlevel return FALSE;
|| !quests[i]._qactive if (quests[i]._qactive == QUEST_NOTAVAIL)
|| (result = 1, gbMaxPlayers != 1) && !(questlist[i]._qflags & 1)) { return FALSE;
result = FALSE; if (gbMaxPlayers != 1 && !(questlist[i]._qflags & QUEST_ANY))
} return FALSE;
return result; return TRUE;
} }
void CheckQuestKill(int m, BOOL sendmsg) void CheckQuestKill(int m, BOOL sendmsg)
@ -841,7 +841,7 @@ void PrintQLString(int x, int y, BOOL cjustflag, char *str, int col)
off += k; off += k;
} }
if (qline == y) { if (qline == y) {
CelDraw(cjustflag ? x + k + 12 + SCREEN_X : x + 12 + SCREEN_X, s + 205, pSPentSpn2Cels, ALLQUESTS, 12); CelDraw(cjustflag ? x + k + 12 + SCREEN_X : x + 12 + SCREEN_X, s + 205, pSPentSpn2Cels, questpentframe, 12);
} }
for (i = 0; i < len; i++) { for (i = 0; i < len; i++) {
c = fontframe[gbFontTransTbl[(BYTE)str[i]]]; c = fontframe[gbFontTransTbl[(BYTE)str[i]]];
@ -852,7 +852,7 @@ void PrintQLString(int x, int y, BOOL cjustflag, char *str, int col)
off += fontkern[c] + 1; off += fontkern[c] + 1;
} }
if (qline == y) { if (qline == y) {
CelDraw(cjustflag ? x + k + 36 + SCREEN_X : 276 + SCREEN_X - x, s + 205, pSPentSpn2Cels, ALLQUESTS, 12); CelDraw(cjustflag ? x + k + 36 + SCREEN_X : 276 + SCREEN_X - x, s + 205, pSPentSpn2Cels, questpentframe, 12);
} }
} }
@ -868,7 +868,7 @@ void DrawQuestLog()
y += 2; y += 2;
} }
PrintQLString(0, 22, TRUE, "Close Quest Log", 0); PrintQLString(0, 22, TRUE, "Close Quest Log", 0);
ALLQUESTS = (ALLQUESTS & 7) + 1; questpentframe = (questpentframe & 7) + 1;
} }
void StartQuestlog() void StartQuestlog()
@ -891,7 +891,7 @@ void StartQuestlog()
if (numqlines != 0) if (numqlines != 0)
qline = qtopline; qline = qtopline;
questlog = TRUE; questlog = TRUE;
ALLQUESTS = 1; questpentframe = 1;
} }
void QuestlogUp() void QuestlogUp()

2
Source/quests.h

@ -17,7 +17,7 @@ extern int WaterDone;
extern int ReturnLvlX; extern int ReturnLvlX;
extern int ReturnLvlY; extern int ReturnLvlY;
extern int ReturnLvlT; extern int ReturnLvlT;
extern int ALLQUESTS; extern int questpentframe;
extern int ReturnLvl; extern int ReturnLvl;
void InitQuests(); void InitQuests();

6
Source/render.cpp

@ -1169,7 +1169,7 @@ void drawBottomArchesUpperScreen(BYTE *pBuff, DWORD *pMask)
gpCelFrame = (BYTE *)SpeedFrameTbl; gpCelFrame = (BYTE *)SpeedFrameTbl;
dst = pBuff; dst = pBuff;
gpDrawMask = pMask; gpDrawMask = pMask;
if (!(BYTE)light_table_index) { if ((BYTE)light_table_index == 0) {
if (level_cel_block & 0x8000) if (level_cel_block & 0x8000)
level_cel_block = *(DWORD *)&gpCelFrame[64 * (level_cel_block & 0xFFF)] level_cel_block = *(DWORD *)&gpCelFrame[64 * (level_cel_block & 0xFFF)]
+ (WORD)(level_cel_block & 0xF000); + (WORD)(level_cel_block & 0xF000);
@ -1822,7 +1822,7 @@ void drawUpperScreen(BYTE *pBuff)
} }
gpCelFrame = (BYTE *)SpeedFrameTbl; gpCelFrame = (BYTE *)SpeedFrameTbl;
dst = pBuff; dst = pBuff;
if (!(BYTE)light_table_index) { if ((BYTE)light_table_index == 0) {
if (level_cel_block & 0x8000) if (level_cel_block & 0x8000)
level_cel_block = *(DWORD *)&gpCelFrame[64 * (level_cel_block & 0xFFF)] level_cel_block = *(DWORD *)&gpCelFrame[64 * (level_cel_block & 0xFFF)]
+ (WORD)(level_cel_block & 0xF000); + (WORD)(level_cel_block & 0xF000);
@ -2430,7 +2430,7 @@ void drawTopArchesLowerScreen(BYTE *pBuff)
gpCelFrame = (BYTE *)SpeedFrameTbl; gpCelFrame = (BYTE *)SpeedFrameTbl;
dst = pBuff; dst = pBuff;
if (!(BYTE)light_table_index) { if ((BYTE)light_table_index == 0) {
if (level_cel_block & 0x8000) if (level_cel_block & 0x8000)
level_cel_block = *(DWORD *)&gpCelFrame[64 * (level_cel_block & 0xFFF)] level_cel_block = *(DWORD *)&gpCelFrame[64 * (level_cel_block & 0xFFF)]
+ (WORD)(level_cel_block & 0xF000); + (WORD)(level_cel_block & 0xF000);

2
Source/scrollrt.cpp

@ -719,7 +719,7 @@ void DrawDeadPlayer(int x, int y, int sx, int sy, int CelSkip, int CelCap, BOOL
for (i = 0; i < MAX_PLRS; i++) { for (i = 0; i < MAX_PLRS; i++) {
p = &plr[i]; p = &plr[i];
if (p->plractive && !p->_pHitPoints && p->plrlevel == (BYTE)currlevel && p->_px == x && p->_py == y) { if (p->plractive && p->_pHitPoints == 0 && p->plrlevel == (BYTE)currlevel && p->_px == x && p->_py == y) {
pCelBuff = p->_pAnimData; pCelBuff = p->_pAnimData;
if (!pCelBuff) { if (!pCelBuff) {
// app_fatal("Drawing dead player %d \"%s\": NULL Cel Buffer", i, p->_pName); // app_fatal("Drawing dead player %d \"%s\": NULL Cel Buffer", i, p->_pName);

8
Source/stores.cpp

@ -513,7 +513,7 @@ void PrintStoreItem(ItemStruct *x, int l, char iclr)
str = x->_iMinStr; str = x->_iMinStr;
dex = x->_iMinDex; dex = x->_iMinDex;
mag = x->_iMinMag; mag = x->_iMinMag;
if (!(str + mag + dex)) { if ((str + mag + dex) == 0) {
strcat(sstr, "No required attributes"); strcat(sstr, "No required attributes");
} else { } else {
strcpy(tempstr, "Required:"); strcpy(tempstr, "Required:");
@ -707,7 +707,7 @@ void S_StartSSell()
if (storehold[storenumh]._iMagical != ITEM_QUALITY_NORMAL && storehold[storenumh]._iIdentified) if (storehold[storenumh]._iMagical != ITEM_QUALITY_NORMAL && storehold[storenumh]._iIdentified)
storehold[storenumh]._ivalue = storehold[storenumh]._iIvalue; storehold[storenumh]._ivalue = storehold[storenumh]._iIvalue;
if (!(storehold[storenumh]._ivalue >>= 2)) if ((storehold[storenumh]._ivalue >>= 2) == 0)
storehold[storenumh]._ivalue = 1; storehold[storenumh]._ivalue = 1;
storehold[storenumh]._iIvalue = storehold[storenumh]._ivalue; storehold[storenumh]._iIvalue = storehold[storenumh]._ivalue;
@ -979,7 +979,7 @@ void S_StartWSell()
if (storehold[storenumh]._iMagical != ITEM_QUALITY_NORMAL && storehold[storenumh]._iIdentified) if (storehold[storenumh]._iMagical != ITEM_QUALITY_NORMAL && storehold[storenumh]._iIdentified)
storehold[storenumh]._ivalue = storehold[storenumh]._iIvalue; storehold[storenumh]._ivalue = storehold[storenumh]._iIvalue;
if (!(storehold[storenumh]._ivalue >>= 2)) if ((storehold[storenumh]._ivalue >>= 2) == 0)
storehold[storenumh]._ivalue = 1; storehold[storenumh]._ivalue = 1;
storehold[storenumh]._iIvalue = storehold[storenumh]._ivalue; storehold[storenumh]._iIvalue = storehold[storenumh]._ivalue;
@ -999,7 +999,7 @@ void S_StartWSell()
if (storehold[storenumh]._iMagical != ITEM_QUALITY_NORMAL && storehold[storenumh]._iIdentified) if (storehold[storenumh]._iMagical != ITEM_QUALITY_NORMAL && storehold[storenumh]._iIdentified)
storehold[storenumh]._ivalue = storehold[storenumh]._iIvalue; storehold[storenumh]._ivalue = storehold[storenumh]._iIvalue;
if (!(storehold[storenumh]._ivalue >>= 2)) if ((storehold[storenumh]._ivalue >>= 2) == 0)
storehold[storenumh]._ivalue = 1; storehold[storenumh]._ivalue = 1;
storehold[storenumh]._iIvalue = storehold[storenumh]._ivalue; storehold[storenumh]._iIvalue = storehold[storenumh]._ivalue;

2
Source/towners.cpp

@ -575,7 +575,7 @@ void TownDead()
tidx = GetActiveTowner(TOWN_DEADGUY); tidx = GetActiveTowner(TOWN_DEADGUY);
TownCtrlMsg(tidx); TownCtrlMsg(tidx);
if (!qtextflag) { if (!qtextflag) {
if (quests[Q_BUTCHER]._qactive == QUEST_ACTIVE && quests[Q_BUTCHER]._qlog == 0) { if (quests[Q_BUTCHER]._qactive == QUEST_ACTIVE && !quests[Q_BUTCHER]._qlog) {
return; return;
} }
if (quests[Q_BUTCHER]._qactive != QUEST_INIT) { if (quests[Q_BUTCHER]._qactive != QUEST_INIT) {

6
enums.h

@ -3103,6 +3103,12 @@ typedef enum quest_state {
QUEST_DONE = 3 QUEST_DONE = 3
} quest_state; } quest_state;
typedef enum quest_gametype {
QUEST_SINGLE = 0,
QUEST_ANY = 1,
QUEST_MULTI = 2,
} quest_gametype;
typedef enum quest_mush_state { typedef enum quest_mush_state {
QS_INIT = 0, QS_INIT = 0,
QS_TOMESPAWNED = 1, QS_TOMESPAWNED = 1,

2
structs.h

@ -1047,7 +1047,7 @@ typedef struct QuestStruct {
#endif #endif
unsigned char _qvar1; unsigned char _qvar1;
unsigned char _qvar2; unsigned char _qvar2;
int _qlog; BOOL _qlog;
} QuestStruct; } QuestStruct;
typedef struct QuestData { typedef struct QuestData {

Loading…
Cancel
Save