diff --git a/Source/diablo.cpp b/Source/diablo.cpp index c764276d2..ade09cc6a 100644 --- a/Source/diablo.cpp +++ b/Source/diablo.cpp @@ -139,7 +139,7 @@ void run_game_loop(unsigned int uMsg) /// ASSERT: assert(ghMainWnd); saveProc = SetWindowProc(GM_Game); control_update_life_mana(); - msg_process_net_packets(); + run_delta_info(); gbRunGame = TRUE; gbProcessPlayers = TRUE; gbRunGameResult = TRUE; @@ -1815,7 +1815,7 @@ void LoadGameLevel(BOOL firstflag, int lvldir) ; #ifndef SPAWN - if (setlevel && setlvlnum == SL_SKELKING && quests[QTYPE_KING]._qactive == 2) + if (setlevel && setlvlnum == SL_SKELKING && quests[Q_SKELKING]._qactive == QUEST_ACTIVE) PlaySFX(USFX_SKING1); #endif } diff --git a/Source/drlg_l1.cpp b/Source/drlg_l1.cpp index 9aa561412..07f11519d 100644 --- a/Source/drlg_l1.cpp +++ b/Source/drlg_l1.cpp @@ -355,8 +355,8 @@ static int DRLG_PlaceMiniSet(const BYTE *miniset, int tmin, int tmax, int cx, in DRLG_MRectTrans(sx, sy + 2, sx + 5, sy + 4); TransVal = t; - quests[QTYPE_PW]._qtx = 2 * sx + 21; - quests[QTYPE_PW]._qty = 2 * sy + 22; + quests[Q_PWATER]._qtx = 2 * sx + 21; + quests[Q_PWATER]._qty = 2 * sy + 22; } if (setview == TRUE) { @@ -487,15 +487,15 @@ static void DRLG_L1Pass3() static void DRLG_LoadL1SP() { L5setloadflag = FALSE; - if (QuestStatus(QTYPE_BUTCH)) { + if (QuestStatus(Q_BUTCHER)) { L5pSetPiece = LoadFileInMem("Levels\\L1Data\\rnd6.DUN", NULL); L5setloadflag = TRUE; } - if (QuestStatus(QTYPE_KING) && gbMaxPlayers == 1) { + if (QuestStatus(Q_SKELKING) && gbMaxPlayers == 1) { L5pSetPiece = LoadFileInMem("Levels\\L1Data\\SKngDO.DUN", NULL); L5setloadflag = TRUE; } - if (QuestStatus(QTYPE_BOL)) { + if (QuestStatus(Q_LTBANNER)) { L5pSetPiece = LoadFileInMem("Levels\\L1Data\\Banner2.DUN", NULL); L5setloadflag = TRUE; } @@ -1658,7 +1658,7 @@ static void DRLG_L5(int entry) doneflag = TRUE; - if (QuestStatus(QTYPE_PW)) { + if (QuestStatus(Q_PWATER)) { if (entry == 0) { if (DRLG_PlaceMiniSet(PWATERIN, 1, 1, 0, 0, 1, -1, 0) < 0) doneflag = FALSE; @@ -1668,7 +1668,7 @@ static void DRLG_L5(int entry) ViewY--; } } - if (QuestStatus(QTYPE_BOL)) { + if (QuestStatus(Q_LTBANNER)) { if (entry == 0) { if (DRLG_PlaceMiniSet(STAIRSUP, 1, 1, 0, 0, 1, -1, 0) < 0) doneflag = FALSE; diff --git a/Source/drlg_l2.cpp b/Source/drlg_l2.cpp index fc3ea9225..a3721d552 100644 --- a/Source/drlg_l2.cpp +++ b/Source/drlg_l2.cpp @@ -470,13 +470,13 @@ static void DRLG_LoadL2SP() { setloadflag = FALSE; - if (QuestStatus(QTYPE_BLIND)) { + if (QuestStatus(Q_BLIND)) { pSetPiece = LoadFileInMem("Levels\\L2Data\\Blind2.DUN", NULL); setloadflag = TRUE; - } else if (QuestStatus(QTYPE_BLOOD)) { + } else if (QuestStatus(Q_BLOOD)) { pSetPiece = LoadFileInMem("Levels\\L2Data\\Blood1.DUN", NULL); setloadflag = TRUE; - } else if (QuestStatus(QTYPE_BONE)) { + } else if (QuestStatus(Q_SCHAMB)) { pSetPiece = LoadFileInMem("Levels\\L2Data\\Bonestr2.DUN", NULL); setloadflag = TRUE; } @@ -1383,21 +1383,21 @@ static BOOL CreateDungeon() switch (currlevel) { case 5: - if (quests[QTYPE_BLOOD]._qactive) { + if (quests[Q_BLOOD]._qactive) { ForceHW = TRUE; ForceH = 20; ForceW = 14; } break; case 6: - if (quests[QTYPE_BONE]._qactive) { + if (quests[Q_SCHAMB]._qactive) { ForceHW = TRUE; ForceW = 10; ForceH = 10; } break; case 7: - if (quests[QTYPE_BLIND]._qactive) { + if (quests[Q_BLIND]._qactive) { ForceHW = TRUE; ForceW = 15; ForceH = 15; @@ -2123,13 +2123,13 @@ void LoadPreL2Dungeon(char *sFileName, int vx, int vy) void CreateL2Dungeon(DWORD rseed, int entry) { if (gbMaxPlayers == 1) { - if (currlevel == 7 && !quests[QTYPE_BLIND]._qactive) { + if (currlevel == 7 && !quests[Q_BLIND]._qactive) { currlevel = 6; CreateL2Dungeon(glSeedTbl[6], 4); currlevel = 7; } if (currlevel == 8) { - if (!quests[QTYPE_BLIND]._qactive) { + if (!quests[Q_BLIND]._qactive) { currlevel = 6; CreateL2Dungeon(glSeedTbl[6], 4); currlevel = 8; diff --git a/Source/drlg_l3.cpp b/Source/drlg_l3.cpp index 3679c2e47..d5049f5e4 100644 --- a/Source/drlg_l3.cpp +++ b/Source/drlg_l3.cpp @@ -1508,7 +1508,7 @@ static void DRLG_L3(int entry) DRLG_L3CreateBlock(x2, y1, 2, 1); DRLG_L3CreateBlock(x1, y2, 2, 2); DRLG_L3CreateBlock(x1, y1, 2, 3); - if (QuestStatus(QTYPE_ANVIL)) { + if (QuestStatus(Q_ANVIL)) { x1 = random_(0, 10) + 10; y1 = random_(0, 10) + 10; x2 = x1 + 12; @@ -1554,7 +1554,7 @@ static void DRLG_L3(int entry) } } } - if (!genok && QuestStatus(QTYPE_ANVIL)) { + if (!genok && QuestStatus(Q_ANVIL)) { genok = DRLG_L3Anvil(); } } while (genok == TRUE); @@ -1573,7 +1573,7 @@ static void DRLG_L3(int entry) FixL3HallofHeroes(); DRLG_L3River(); - if (QuestStatus(QTYPE_ANVIL)) { + if (QuestStatus(Q_ANVIL)) { dungeon[setpc_x + 7][setpc_y + 5] = 7; dungeon[setpc_x + 8][setpc_y + 5] = 7; dungeon[setpc_x + 9][setpc_y + 5] = 7; diff --git a/Source/drlg_l4.cpp b/Source/drlg_l4.cpp index f97a0be4a..8a0f6a5ff 100644 --- a/Source/drlg_l4.cpp +++ b/Source/drlg_l4.cpp @@ -344,7 +344,7 @@ static void InitL4Dungeon() void DRLG_LoadL4SP() { setloadflag = FALSE; - if (QuestStatus(QTYPE_WARLRD)) { + if (QuestStatus(Q_WARLORD)) { pSetPiece = LoadFileInMem("Levels\\L4Data\\Warlord.DUN", NULL); setloadflag = TRUE; } @@ -1323,11 +1323,11 @@ static void L4firstRoom() int x, y, w, h, rndx, rndy, xmin, xmax, ymin, ymax, tx, ty; if (currlevel != 16) { - if (currlevel == quests[QTYPE_WARLRD]._qlevel && quests[QTYPE_WARLRD]._qactive) { + if (currlevel == quests[Q_WARLORD]._qlevel && quests[Q_WARLORD]._qactive) { /// ASSERT: assert(gbMaxPlayers == 1); w = 11; h = 11; - } else if (currlevel == quests[QTYPE_VB]._qlevel && gbMaxPlayers != 1) { + } else if (currlevel == quests[Q_BETRAYER]._qlevel && gbMaxPlayers != 1) { w = 11; h = 11; } else { @@ -1362,7 +1362,7 @@ static void L4firstRoom() l4holdx = x; l4holdy = y; } - if (QuestStatus(QTYPE_WARLRD) || currlevel == quests[QTYPE_VB]._qlevel && gbMaxPlayers != 1) { + if (QuestStatus(Q_WARLORD) || currlevel == quests[Q_BETRAYER]._qlevel && gbMaxPlayers != 1) { SP4x1 = x + 1; SP4y1 = y + 1; SP4x2 = SP4x1 + w; @@ -1530,8 +1530,8 @@ static BOOL DRLG_L4PlaceMiniSet(const BYTE *miniset, int tmin, int tmax, int cx, } if (currlevel == 15) { - quests[QTYPE_VB]._qtx = sx + 1; - quests[QTYPE_VB]._qty = sy + 1; + quests[Q_BETRAYER]._qtx = sx + 1; + quests[Q_BETRAYER]._qty = sy + 1; } if (setview == TRUE) { ViewX = 2 * sx + 21; @@ -1747,7 +1747,7 @@ static void DRLG_L4(int entry) if (currlevel == 16) { L4SaveQuads(); } - if (QuestStatus(QTYPE_WARLRD) || currlevel == quests[QTYPE_VB]._qlevel && gbMaxPlayers != 1) { + if (QuestStatus(Q_WARLORD) || currlevel == quests[Q_BETRAYER]._qlevel && gbMaxPlayers != 1) { for (spi = SP4x1; spi < SP4x2; spi++) { for (spj = SP4y1; spj < SP4y2; spj++) { dflags[spi][spj] = 1; @@ -1763,7 +1763,7 @@ static void DRLG_L4(int entry) if (currlevel == 16) { DRLG_LoadDiabQuads(TRUE); } - if (QuestStatus(QTYPE_WARLRD)) { + if (QuestStatus(Q_WARLORD)) { if (entry == 0) { doneflag = DRLG_L4PlaceMiniSet(L4USTAIRS, 1, 1, -1, -1, 1, 0); if (doneflag && currlevel == 13) { @@ -1817,7 +1817,7 @@ static void DRLG_L4(int entry) if (entry == 0) { doneflag = DRLG_L4PlaceMiniSet(L4USTAIRS, 1, 1, -1, -1, 1, 0); if (doneflag) { - if (gbMaxPlayers == 1 && quests[QTYPE_MOD]._qactive != 2) { + if (gbMaxPlayers == 1 && quests[Q_DIABLO]._qactive != QUEST_ACTIVE) { doneflag = DRLG_L4PlaceMiniSet(L4PENTA, 1, 1, -1, -1, 0, 1); } else { doneflag = DRLG_L4PlaceMiniSet(L4PENTA2, 1, 1, -1, -1, 0, 1); @@ -1827,7 +1827,7 @@ static void DRLG_L4(int entry) } else { doneflag = DRLG_L4PlaceMiniSet(L4USTAIRS, 1, 1, -1, -1, 0, 0); if (doneflag) { - if (gbMaxPlayers == 1 && quests[QTYPE_MOD]._qactive != 2) { + if (gbMaxPlayers == 1 && quests[Q_DIABLO]._qactive != QUEST_ACTIVE) { doneflag = DRLG_L4PlaceMiniSet(L4PENTA, 1, 1, -1, -1, 1, 1); } else { doneflag = DRLG_L4PlaceMiniSet(L4PENTA2, 1, 1, -1, -1, 1, 1); @@ -1849,7 +1849,7 @@ static void DRLG_L4(int entry) DRLG_L4Subs(); DRLG_Init_Globals(); - if (QuestStatus(QTYPE_WARLRD)) { + if (QuestStatus(Q_WARLORD)) { for (j = 0; j < DMAXY; j++) { for (i = 0; i < DMAXX; i++) { pdungeon[i][j] = dungeon[i][j]; diff --git a/Source/inv.cpp b/Source/inv.cpp index a385832a8..023e0ea27 100644 --- a/Source/inv.cpp +++ b/Source/inv.cpp @@ -1406,8 +1406,8 @@ void CheckBookLevel(int pnum) void CheckQuestItem(int pnum) { if (plr[pnum].HoldItem.IDidx == IDI_OPTAMULET) - quests[QTYPE_BLIND]._qactive = 3; - if (plr[pnum].HoldItem.IDidx == IDI_MUSHROOM && quests[QTYPE_BLKM]._qactive == 2 && quests[QTYPE_BLKM]._qvar1 == QS_MUSHSPAWNED) { + quests[Q_BLIND]._qactive = QUEST_DONE; + if (plr[pnum].HoldItem.IDidx == IDI_MUSHROOM && quests[Q_MUSHROOM]._qactive == QUEST_ACTIVE && quests[Q_MUSHROOM]._qvar1 == QS_MUSHSPAWNED) { #ifndef SPAWN sfxdelay = 10; if (plr[pnum]._pClass == PC_WARRIOR) { // BUGFIX: Voice for this quest might be wrong in MP @@ -1418,15 +1418,15 @@ void CheckQuestItem(int pnum) sfxdnum = PS_MAGE95; } #endif - quests[QTYPE_BLKM]._qvar1 = QS_MUSHPICKED; + quests[Q_MUSHROOM]._qvar1 = QS_MUSHPICKED; } if (plr[pnum].HoldItem.IDidx == IDI_ANVIL) { - if (quests[QTYPE_ANVIL]._qactive == 1) { - quests[QTYPE_ANVIL]._qactive = 2; - quests[QTYPE_ANVIL]._qvar1 = 1; + if (quests[Q_ANVIL]._qactive == QUEST_INIT) { + quests[Q_ANVIL]._qactive = QUEST_ACTIVE; + quests[Q_ANVIL]._qvar1 = 1; } #ifndef SPAWN - if (quests[QTYPE_ANVIL]._qlog == 1) { + if (quests[Q_ANVIL]._qlog == 1) { sfxdelay = 10; if (plr[myplr]._pClass == PC_WARRIOR) { sfxdnum = PS_WARR89; @@ -1451,12 +1451,12 @@ void CheckQuestItem(int pnum) } #endif if (plr[pnum].HoldItem.IDidx == IDI_ROCK) { - if (quests[QTYPE_INFRA]._qactive == 1) { - quests[QTYPE_INFRA]._qactive = 2; - quests[QTYPE_INFRA]._qvar1 = 1; + if (quests[Q_ROCK]._qactive == QUEST_INIT) { + quests[Q_ROCK]._qactive = QUEST_ACTIVE; + quests[Q_ROCK]._qvar1 = 1; } #ifndef SPAWN - if (quests[QTYPE_INFRA]._qlog == 1) { + if (quests[Q_ROCK]._qlog == 1) { sfxdelay = 10; if (plr[myplr]._pClass == PC_WARRIOR) { sfxdnum = PS_WARR87; @@ -1469,7 +1469,7 @@ void CheckQuestItem(int pnum) #endif } if (plr[pnum].HoldItem.IDidx == IDI_ARMOFVAL) { - quests[QTYPE_BLOOD]._qactive = 3; + quests[Q_BLOOD]._qactive = QUEST_DONE; #ifndef SPAWN sfxdelay = 20; if (plr[myplr]._pClass == PC_WARRIOR) { diff --git a/Source/items.cpp b/Source/items.cpp index 2232a904a..c339265ea 100644 --- a/Source/items.cpp +++ b/Source/items.cpp @@ -280,9 +280,9 @@ void InitItems() if (!setlevel) { s = GetRndSeed(); /* unused */ - if (QuestStatus(QTYPE_INFRA)) + if (QuestStatus(Q_ROCK)) SpawnRock(); - if (QuestStatus(QTYPE_ANVIL)) + if (QuestStatus(Q_ANVIL)) SpawnQuestItem(IDI_ANVIL, 2 * setpc_x + 27, 2 * setpc_y + 27, 0, 1); if (currlevel > 0 && currlevel < 16) AddInitItems(); @@ -1875,7 +1875,7 @@ int RndUItem(int m) okflag = FALSE; if (AllItemsList[i].itype == ITYPE_GOLD) okflag = FALSE; - if (AllItemsList[i].itype == ITYPE_0E) + if (AllItemsList[i].itype == ITYPE_MEAT) okflag = FALSE; if (AllItemsList[i].iMiscId == IMISC_BOOK) okflag = TRUE; @@ -2105,7 +2105,7 @@ void SpawnItem(int m, int x, int y, BOOL sendmsg) return; } onlygood = 1; - } else if (quests[QTYPE_BLKM]._qactive != 2 || quests[QTYPE_BLKM]._qvar1 != QS_MUSHGIVEN) { + } else if (quests[Q_MUSHROOM]._qactive != QUEST_ACTIVE || quests[Q_MUSHROOM]._qvar1 != QS_MUSHGIVEN) { idx = RndItem(m); if (!idx) return; @@ -2118,7 +2118,7 @@ void SpawnItem(int m, int x, int y, BOOL sendmsg) } } else { idx = IDI_BRAIN; - quests[QTYPE_BLKM]._qvar1 = QS_BRAINSPAWNED; + quests[Q_MUSHROOM]._qvar1 = QS_BRAINSPAWNED; } if (numitems < MAXITEMS) { @@ -3159,7 +3159,7 @@ void UseItem(int p, int Mid, int spl) switch (Mid) { case IMISC_HEAL: - case IMISC_HEAL_1C: + case IMISC_MEAT: j = plr[p]._pMaxHP >> 8; l = ((j >> 1) + random_(39, j)) << 6; if (plr[p]._pClass == PC_WARRIOR) @@ -3339,7 +3339,7 @@ BOOL SmithItemOk(int i) rv = FALSE; if (AllItemsList[i].itype == ITYPE_GOLD) rv = FALSE; - if (AllItemsList[i].itype == ITYPE_0E) + if (AllItemsList[i].itype == ITYPE_MEAT) rv = FALSE; if (AllItemsList[i].itype == ITYPE_STAFF) rv = FALSE; @@ -3435,7 +3435,7 @@ BOOL PremiumItemOk(int i) rv = FALSE; if (AllItemsList[i].itype == ITYPE_GOLD) rv = FALSE; - if (AllItemsList[i].itype == ITYPE_0E) + if (AllItemsList[i].itype == ITYPE_MEAT) rv = FALSE; if (AllItemsList[i].itype == ITYPE_STAFF) rv = FALSE; diff --git a/Source/monstdat.cpp b/Source/monstdat.cpp index cfb50b5c2..7db551da7 100644 --- a/Source/monstdat.cpp +++ b/Source/monstdat.cpp @@ -262,15 +262,15 @@ BYTE MonstAvailTbl[] = { UniqMonstStruct UniqMonst[] = { // clang-format off // mtype, mName, mTrnName, mlevel, mmaxhp, mAi, mint, mMinDamage, mMaxDamage, mMagicRes, mUnqAttr, mUnqVar1, mUnqVar2, mtalkmsg - { MT_NGOATMC, "Gharbad the Weak", "BSDB", 4, 120, AI_GARBUD, 3, 8, 16, IMUNE_LIGHTNING | IMUNE_NULL_40, 0, 0, 0, QUEST_GARBUD1 }, + { MT_NGOATMC, "Gharbad the Weak", "BSDB", 4, 120, AI_GARBUD, 3, 8, 16, IMUNE_LIGHTNING | IMUNE_NULL_40, 0, 0, 0, TEXT_GARBUD1 }, { MT_SKING, "Skeleton King", "GENRL", 0, 240, AI_SKELKING, 3, 6, 16, IMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING | IMUNE_NULL_40, 1, 0, 0, 0 }, - { MT_COUNSLR, "Zhar the Mad", "GENERAL", 8, 360, AI_ZHAR, 3, 16, 40, IMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING , 0, 0, 0, QUEST_ZHAR1 }, - { MT_BFALLSP, "Snotspill", "BNG", 4, 220, AI_SNOTSPIL, 3, 10, 18, RESIST_LIGHTNING , 0, 0, 0, QUEST_BANNER10 }, - { MT_ADVOCATE, "Arch-Bishop Lazarus", "GENERAL", 0, 600, AI_LAZURUS, 3, 30, 50, IMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING | IMUNE_NULL_40, 0, 0, 0, QUEST_VILE13 }, - { MT_HLSPWN, "Red Vex", "REDV", 0, 400, AI_LAZHELP, 3, 30, 50, IMUNE_MAGIC | RESIST_FIRE | IMUNE_NULL_40, 0, 0, 0, QUEST_VILE13 }, - { MT_HLSPWN, "BlackJade", "BLKJD", 0, 400, AI_LAZHELP, 3, 30, 50, IMUNE_MAGIC | RESIST_LIGHTNING | IMUNE_NULL_40, 0, 0, 0, QUEST_VILE13 }, - { MT_RBLACK, "Lachdanan", "BHKA", 14, 500, AI_LACHDAN, 3, 0, 0, 0 , 0, 0, 0, QUEST_VEIL9 }, - { MT_BTBLACK, "Warlord of Blood", "GENERAL", 13, 850, AI_WARLORD, 3, 35, 50, IMUNE_MAGIC | IMUNE_FIRE | IMUNE_LIGHTNING | IMUNE_NULL_40, 0, 0, 0, QUEST_WARLRD9 }, + { MT_COUNSLR, "Zhar the Mad", "GENERAL", 8, 360, AI_ZHAR, 3, 16, 40, IMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING , 0, 0, 0, TEXT_ZHAR1 }, + { MT_BFALLSP, "Snotspill", "BNG", 4, 220, AI_SNOTSPIL, 3, 10, 18, RESIST_LIGHTNING , 0, 0, 0, TEXT_BANNER10 }, + { MT_ADVOCATE, "Arch-Bishop Lazarus", "GENERAL", 0, 600, AI_LAZURUS, 3, 30, 50, IMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING | IMUNE_NULL_40, 0, 0, 0, TEXT_VILE13 }, + { MT_HLSPWN, "Red Vex", "REDV", 0, 400, AI_LAZHELP, 3, 30, 50, IMUNE_MAGIC | RESIST_FIRE | IMUNE_NULL_40, 0, 0, 0, TEXT_VILE13 }, + { MT_HLSPWN, "BlackJade", "BLKJD", 0, 400, AI_LAZHELP, 3, 30, 50, IMUNE_MAGIC | RESIST_LIGHTNING | IMUNE_NULL_40, 0, 0, 0, TEXT_VILE13 }, + { MT_RBLACK, "Lachdanan", "BHKA", 14, 500, AI_LACHDAN, 3, 0, 0, 0 , 0, 0, 0, TEXT_VEIL9 }, + { MT_BTBLACK, "Warlord of Blood", "GENERAL", 13, 850, AI_WARLORD, 3, 35, 50, IMUNE_MAGIC | IMUNE_FIRE | IMUNE_LIGHTNING | IMUNE_NULL_40, 0, 0, 0, TEXT_WARLRD9 }, { MT_CLEAVER, "The Butcher", "GENRL", 0, 220, AI_CLEAVER, 3, 6, 12, RESIST_FIRE | RESIST_LIGHTNING | IMUNE_NULL_40, 0, 0, 0, 0 }, { MT_TSKELAX, "Bonehead Keenaxe", "BHKA", 2, 91, AI_SKELSD, 2, 4, 10, IMUNE_MAGIC | IMUNE_NULL_40, 7, 100, 0, 0 }, { MT_RFALLSD, "Bladeskin the Slasher", "BSTS", 2, 51, AI_FALLEN, 0, 6, 18, RESIST_FIRE , 11, 45, 0, 0 }, diff --git a/Source/monster.cpp b/Source/monster.cpp index cf1e1ac91..42503a003 100644 --- a/Source/monster.cpp +++ b/Source/monster.cpp @@ -203,20 +203,20 @@ void GetLevelMTypes() } if (!setlevel) { - if (QuestStatus(QTYPE_BUTCH)) + if (QuestStatus(Q_BUTCHER)) AddMonsterType(MT_CLEAVER, 2); - if (QuestStatus(QTYPE_GARB)) + if (QuestStatus(Q_GARBUD)) AddMonsterType(UniqMonst[UMT_GARBUD].mtype, 4); - if (QuestStatus(QTYPE_ZHAR)) + if (QuestStatus(Q_ZHAR)) AddMonsterType(UniqMonst[UMT_ZHAR].mtype, 4); - if (QuestStatus(QTYPE_BOL)) + if (QuestStatus(Q_LTBANNER)) AddMonsterType(UniqMonst[UMT_SNOTSPIL].mtype, 4); - if (QuestStatus(QTYPE_VEIL)) + if (QuestStatus(Q_VEIL)) AddMonsterType(UniqMonst[UMT_LACHDAN].mtype, 4); - if (QuestStatus(QTYPE_WARLRD)) + if (QuestStatus(Q_WARLORD)) AddMonsterType(UniqMonst[UMT_WARLORD].mtype, 4); - if (gbMaxPlayers != 1 && currlevel == quests[QTYPE_KING]._qlevel) { + if (gbMaxPlayers != 1 && currlevel == quests[Q_SKELKING]._qlevel) { AddMonsterType(MT_SKING, 4); @@ -698,7 +698,7 @@ void PlaceUniqueMonst(int uniqindex, int miniontype, int unpackfilesize) Monst->mtalkmsg = 0; } - if (Monst->_mAi != AI_LAZURUS || quests[QTYPE_VB]._qvar1 <= 3) { + if (Monst->_mAi != AI_LAZURUS || quests[Q_BETRAYER]._qvar1 <= 3) { if (Monst->mtalkmsg) { Monst->_mgoal = MGOAL_INQUIRING; } @@ -762,11 +762,11 @@ void PlaceQuestMonsters() BYTE *setp; if (!setlevel) { - if (QuestStatus(QTYPE_BUTCH)) { + if (QuestStatus(Q_BUTCHER)) { PlaceUniqueMonst(UMT_BUTCHER, 0, 0); } - if (currlevel == quests[QTYPE_KING]._qlevel && gbMaxPlayers != 1) { + if (currlevel == quests[Q_SKELKING]._qlevel && gbMaxPlayers != 1) { skeltype = 0; for (skeltype = 0; skeltype < nummtypes; skeltype++) { @@ -778,40 +778,40 @@ void PlaceQuestMonsters() PlaceUniqueMonst(UMT_SKELKING, skeltype, 30); } - if (QuestStatus(QTYPE_BOL)) { + if (QuestStatus(Q_LTBANNER)) { setp = LoadFileInMem("Levels\\L1Data\\Banner1.DUN", NULL); SetMapMonsters(setp, 2 * setpc_x, 2 * setpc_y); mem_free_dbg(setp); } - if (QuestStatus(QTYPE_BLOOD)) { + if (QuestStatus(Q_BLOOD)) { setp = LoadFileInMem("Levels\\L2Data\\Blood2.DUN", NULL); SetMapMonsters(setp, 2 * setpc_x, 2 * setpc_y); mem_free_dbg(setp); } - if (QuestStatus(QTYPE_BLIND)) { + if (QuestStatus(Q_BLIND)) { setp = LoadFileInMem("Levels\\L2Data\\Blind2.DUN", NULL); SetMapMonsters(setp, 2 * setpc_x, 2 * setpc_y); mem_free_dbg(setp); } - if (QuestStatus(QTYPE_ANVIL)) { + if (QuestStatus(Q_ANVIL)) { setp = LoadFileInMem("Levels\\L3Data\\Anvil.DUN", NULL); SetMapMonsters(setp, 2 * setpc_x + 2, 2 * setpc_y + 2); mem_free_dbg(setp); } - if (QuestStatus(QTYPE_WARLRD)) { + if (QuestStatus(Q_WARLORD)) { setp = LoadFileInMem("Levels\\L4Data\\Warlord.DUN", NULL); SetMapMonsters(setp, 2 * setpc_x, 2 * setpc_y); mem_free_dbg(setp); AddMonsterType(UniqMonst[UMT_WARLORD].mtype, 1); } - if (QuestStatus(QTYPE_VEIL)) { + if (QuestStatus(Q_VEIL)) { AddMonsterType(UniqMonst[UMT_LACHDAN].mtype, 1); } - if (QuestStatus(QTYPE_ZHAR) && zharlib == -1) { - quests[QTYPE_ZHAR]._qactive = 0; + if (QuestStatus(Q_ZHAR) && zharlib == -1) { + quests[Q_ZHAR]._qactive = QUEST_NOTAVAIL; } - if (currlevel == quests[QTYPE_VB]._qlevel && gbMaxPlayers != 1) { + if (currlevel == quests[Q_BETRAYER]._qlevel && gbMaxPlayers != 1) { AddMonsterType(UniqMonst[UMT_LAZURUS].mtype, 4); AddMonsterType(UniqMonst[UMT_RED_VEX].mtype, 4); PlaceUniqueMonst(UMT_LAZURUS, 0, 0); @@ -1009,15 +1009,15 @@ void PlaceUniques() done = (Monsters[mt].mtype == UniqMonst[u].mtype); } mt--; - if (u == UMT_GARBUD && quests[QTYPE_GARB]._qactive == 0) + if (u == UMT_GARBUD && quests[Q_GARBUD]._qactive == QUEST_NOTAVAIL) done = FALSE; - if (u == UMT_ZHAR && quests[QTYPE_ZHAR]._qactive == 0) + if (u == UMT_ZHAR && quests[Q_ZHAR]._qactive == QUEST_NOTAVAIL) done = FALSE; - if (u == UMT_SNOTSPIL && quests[QTYPE_BOL]._qactive == 0) + if (u == UMT_SNOTSPIL && quests[Q_LTBANNER]._qactive == QUEST_NOTAVAIL) done = FALSE; - if (u == UMT_LACHDAN && quests[QTYPE_VEIL]._qactive == 0) + if (u == UMT_LACHDAN && quests[Q_VEIL]._qactive == QUEST_NOTAVAIL) done = FALSE; - if (u == UMT_WARLORD && quests[QTYPE_WARLRD]._qactive == 0) + if (u == UMT_WARLORD && quests[Q_WARLORD]._qactive == QUEST_NOTAVAIL) done = FALSE; if (done) PlaceUniqueMonst(u, mt, 8); @@ -1541,9 +1541,9 @@ void M_DiabloDeath(int i, BOOL sendmsg) #ifndef SPAWN PlaySFX(USFX_DIABLOD); #endif - quests[QTYPE_MOD]._qactive = 3; + quests[Q_DIABLO]._qactive = QUEST_DONE; if (sendmsg) - NetSendCmdQuest(TRUE, QTYPE_MOD); + NetSendCmdQuest(TRUE, Q_DIABLO); gbProcessPlayers = FALSE; sgbSaveSoundOn = gbSoundOn; for (j = 0; j < nummonsters; j++) { @@ -1647,7 +1647,7 @@ void MonstStartKill(int i, int pnum, BOOL sendmsg) monstkills[monster[i].MType->mtype]++; monster[i]._mhitpoints = 0; SetRndSeed(monster[i]._mRndSeed); - if (QuestStatus(QTYPE_GARB) && monster[i].mName == UniqMonst[UMT_GARBUD].mName) { + if (QuestStatus(Q_GARBUD) && monster[i].mName == UniqMonst[UMT_GARBUD].mName) { CreateTypeItem(monster[i]._mx + 1, monster[i]._my + 1, TRUE, ITYPE_MACE, IMISC_NONE, TRUE, FALSE); } else if (i > MAX_PLRS - 1) { // Golems should not spawn items SpawnItem(i, monster[i]._mx, monster[i]._my, sendmsg); @@ -2388,55 +2388,55 @@ int M_DoTalk(int i) return FALSE; InitQTextMsg(Monst->mtalkmsg); if (Monst->mName == UniqMonst[UMT_GARBUD].mName) { - if (Monst->mtalkmsg == QUEST_GARBUD1) - quests[QTYPE_GARB]._qactive = 2; - quests[QTYPE_GARB]._qlog = TRUE; - if (Monst->mtalkmsg == QUEST_GARBUD2 && !(Monst->_mFlags & MFLAG_QUEST_COMPLETE)) { + if (Monst->mtalkmsg == TEXT_GARBUD1) + quests[Q_GARBUD]._qactive = QUEST_ACTIVE; + quests[Q_GARBUD]._qlog = TRUE; + if (Monst->mtalkmsg == TEXT_GARBUD2 && !(Monst->_mFlags & MFLAG_QUEST_COMPLETE)) { SpawnItem(i, Monst->_mx + 1, Monst->_my + 1, TRUE); Monst->_mFlags |= MFLAG_QUEST_COMPLETE; } } if (Monst->mName == UniqMonst[UMT_ZHAR].mName - && Monst->mtalkmsg == QUEST_ZHAR1 + && Monst->mtalkmsg == TEXT_ZHAR1 && !(Monst->_mFlags & MFLAG_QUEST_COMPLETE)) { - quests[QTYPE_ZHAR]._qactive = 2; - quests[QTYPE_ZHAR]._qlog = TRUE; + quests[Q_ZHAR]._qactive = QUEST_ACTIVE; + quests[Q_ZHAR]._qlog = TRUE; CreateTypeItem(Monst->_mx + 1, Monst->_my + 1, FALSE, ITYPE_MISC, IMISC_BOOK, TRUE, FALSE); Monst->_mFlags |= MFLAG_QUEST_COMPLETE; } if (Monst->mName == UniqMonst[UMT_SNOTSPIL].mName) { - if (Monst->mtalkmsg == QUEST_BANNER10 && !(Monst->_mFlags & MFLAG_QUEST_COMPLETE)) { + if (Monst->mtalkmsg == TEXT_BANNER10 && !(Monst->_mFlags & MFLAG_QUEST_COMPLETE)) { ObjChangeMap(setpc_x, setpc_y, (setpc_w >> 1) + setpc_x + 2, (setpc_h >> 1) + setpc_y - 2); tren = TransVal; TransVal = 9; DRLG_MRectTrans(setpc_x, setpc_y, (setpc_w >> 1) + setpc_x + 4, setpc_y + (setpc_h >> 1)); TransVal = tren; - quests[QTYPE_BOL]._qvar1 = 2; - if (quests[QTYPE_BOL]._qactive == 1) - quests[QTYPE_BOL]._qactive = 2; + quests[Q_LTBANNER]._qvar1 = 2; + if (quests[Q_LTBANNER]._qactive == QUEST_INIT) + quests[Q_LTBANNER]._qactive = QUEST_ACTIVE; Monst->_mFlags |= MFLAG_QUEST_COMPLETE; } - if (quests[QTYPE_BOL]._qvar1 < 2) { + if (quests[Q_LTBANNER]._qvar1 < 2) { sprintf(tempstr, "SS Talk = %i, Flags = %i", Monst->mtalkmsg, Monst->_mFlags); app_fatal(tempstr); } } if (Monst->mName == UniqMonst[UMT_LACHDAN].mName) { - if (Monst->mtalkmsg == QUEST_VEIL9) { - quests[QTYPE_VEIL]._qactive = 2; - quests[QTYPE_VEIL]._qlog = TRUE; + if (Monst->mtalkmsg == TEXT_VEIL9) { + quests[Q_VEIL]._qactive = QUEST_ACTIVE; + quests[Q_VEIL]._qlog = TRUE; } - if (Monst->mtalkmsg == QUEST_VEIL11 && !(Monst->_mFlags & MFLAG_QUEST_COMPLETE)) { + if (Monst->mtalkmsg == TEXT_VEIL11 && !(Monst->_mFlags & MFLAG_QUEST_COMPLETE)) { SpawnUnique(UITEM_STEELVEIL, Monst->_mx + 1, Monst->_my + 1); Monst->_mFlags |= MFLAG_QUEST_COMPLETE; } } if (Monst->mName == UniqMonst[UMT_WARLORD].mName) - quests[QTYPE_WARLRD]._qvar1 = 2; + quests[Q_WARLORD]._qvar1 = 2; if (Monst->mName == UniqMonst[UMT_LAZURUS].mName && gbMaxPlayers != 1) { Monst->_msquelch = UCHAR_MAX; Monst->mtalkmsg = 0; - quests[QTYPE_VB]._qvar1 = 6; + quests[Q_BETRAYER]._qvar1 = 6; Monst->_mgoal = MGOAL_NORMAL; } return FALSE; @@ -4196,8 +4196,8 @@ void MAI_Garbud(int i) _my = Monst->_my; md = M_GetDir(i); - if (Monst->mtalkmsg < QUEST_GARBUD4 - && Monst->mtalkmsg > QUEST_DOOM10 + if (Monst->mtalkmsg < TEXT_GARBUD4 + && Monst->mtalkmsg > TEXT_DOOM10 && !(dFlags[_mx][_my] & BFLAG_VISIBLE) && Monst->_mgoal == MGOAL_TALKING) { Monst->_mgoal = MGOAL_INQUIRING; @@ -4206,7 +4206,7 @@ void MAI_Garbud(int i) if (dFlags[_mx][_my] & BFLAG_VISIBLE) { #ifndef SPAWN - if (Monst->mtalkmsg == QUEST_GARBUD4) { + if (Monst->mtalkmsg == TEXT_GARBUD4) { if (!effect_is_playing(USFX_GARBUD4) && Monst->_mgoal == MGOAL_TALKING) { Monst->_mgoal = MGOAL_NORMAL; Monst->_msquelch = UCHAR_MAX; @@ -4241,8 +4241,8 @@ void MAI_Zhar(int i) mx = Monst->_mx; my = Monst->_my; md = M_GetDir(i); - if (Monst->mtalkmsg == QUEST_ZHAR1 && !(dFlags[mx][my] & BFLAG_VISIBLE) && Monst->_mgoal == MGOAL_TALKING) { - Monst->mtalkmsg = QUEST_ZHAR2; + if (Monst->mtalkmsg == TEXT_ZHAR1 && !(dFlags[mx][my] & BFLAG_VISIBLE) && Monst->_mgoal == MGOAL_TALKING) { + Monst->mtalkmsg = TEXT_ZHAR2; Monst->_mgoal = MGOAL_INQUIRING; } @@ -4254,7 +4254,7 @@ void MAI_Zhar(int i) else abs(_my); #ifndef SPAWN - if (Monst->mtalkmsg == QUEST_ZHAR2) { + if (Monst->mtalkmsg == TEXT_ZHAR2) { if (!effect_is_playing(USFX_ZHAR2) && Monst->_mgoal == MGOAL_TALKING) { Monst->_msquelch = UCHAR_MAX; Monst->mtalkmsg = 0; @@ -4290,22 +4290,22 @@ void MAI_SnotSpil(int i) my = Monst->_my; md = M_GetDir(i); - if (Monst->mtalkmsg == QUEST_BANNER10 && !(dFlags[mx][my] & BFLAG_VISIBLE) && Monst->_mgoal == MGOAL_TALKING) { - Monst->mtalkmsg = QUEST_BANNER11; + if (Monst->mtalkmsg == TEXT_BANNER10 && !(dFlags[mx][my] & BFLAG_VISIBLE) && Monst->_mgoal == MGOAL_TALKING) { + Monst->mtalkmsg = TEXT_BANNER11; Monst->_mgoal = MGOAL_INQUIRING; } - if (Monst->mtalkmsg == QUEST_BANNER11 && quests[QTYPE_BOL]._qvar1 == 3) { + if (Monst->mtalkmsg == TEXT_BANNER11 && quests[Q_LTBANNER]._qvar1 == 3) { Monst->mtalkmsg = 0; Monst->_mgoal = MGOAL_NORMAL; } if (dFlags[mx][my] & BFLAG_VISIBLE) { #ifndef SPAWN - if (Monst->mtalkmsg == QUEST_BANNER12) { + if (Monst->mtalkmsg == TEXT_BANNER12) { if (!effect_is_playing(USFX_SNOT3) && Monst->_mgoal == MGOAL_TALKING) { ObjChangeMap(setpc_x, setpc_y, setpc_x + setpc_w + 1, setpc_y + setpc_h + 1); - quests[QTYPE_BOL]._qvar1 = 3; + quests[Q_LTBANNER]._qvar1 = 3; RedoPlayerVision(); Monst->_msquelch = UCHAR_MAX; Monst->mtalkmsg = 0; @@ -4313,7 +4313,7 @@ void MAI_SnotSpil(int i) } } #endif - if (quests[QTYPE_BOL]._qvar1 == 3) { + if (quests[Q_LTBANNER]._qvar1 == 3) { if (Monst->_mgoal == MGOAL_NORMAL || Monst->_mgoal == MGOAL_SHOOT) MAI_Fallen(i); } @@ -4343,25 +4343,25 @@ void MAI_Lazurus(int i) md = M_GetDir(i); if (dFlags[mx][my] & BFLAG_VISIBLE) { if (gbMaxPlayers == 1) { - if (Monst->mtalkmsg == QUEST_VILE13 && Monst->_mgoal == MGOAL_INQUIRING && plr[myplr].WorldX == QUEST_VILE13 && plr[myplr].WorldY == 46) { + if (Monst->mtalkmsg == TEXT_VILE13 && Monst->_mgoal == MGOAL_INQUIRING && plr[myplr].WorldX == TEXT_VILE13 && plr[myplr].WorldY == 46) { PlayInGameMovie("gendata\\fprst3.smk"); Monst->_mmode = MM_TALK; - quests[QTYPE_VB]._qvar1 = 5; + quests[Q_BETRAYER]._qvar1 = 5; } #ifndef SPAWN - if (Monst->mtalkmsg == QUEST_VILE13 && !effect_is_playing(USFX_LAZ1) && Monst->_mgoal == MGOAL_TALKING) { + if (Monst->mtalkmsg == TEXT_VILE13 && !effect_is_playing(USFX_LAZ1) && Monst->_mgoal == MGOAL_TALKING) { ObjChangeMapResync(1, 18, 20, 24); RedoPlayerVision(); Monst->_msquelch = UCHAR_MAX; Monst->mtalkmsg = 0; - quests[QTYPE_VB]._qvar1 = 6; + quests[Q_BETRAYER]._qvar1 = 6; Monst->_mgoal = MGOAL_NORMAL; } #endif } - if (gbMaxPlayers != 1 && Monst->mtalkmsg == QUEST_VILE13 && Monst->_mgoal == MGOAL_INQUIRING && quests[QTYPE_VB]._qvar1 <= 3) { + if (gbMaxPlayers != 1 && Monst->mtalkmsg == TEXT_VILE13 && Monst->_mgoal == MGOAL_INQUIRING && quests[Q_BETRAYER]._qvar1 <= 3) { Monst->_mmode = MM_TALK; } } @@ -4395,7 +4395,7 @@ void MAI_Lazhelp(int i) if (dFlags[_mx][_my] & BFLAG_VISIBLE) { if (gbMaxPlayers == 1) { - if (quests[QTYPE_VB]._qvar1 <= 5) { + if (quests[Q_BETRAYER]._qvar1 <= 5) { Monst->_mgoal = MGOAL_INQUIRING; } else { Monst->mtalkmsg = 0; @@ -4428,16 +4428,16 @@ void MAI_Lachdanan(int i) _my = Monst->_my; md = M_GetDir(i); #ifndef SPAWN - if (Monst->mtalkmsg == QUEST_VEIL9 && !(dFlags[_mx][_my] & BFLAG_VISIBLE) && monster[i]._mgoal == MGOAL_TALKING) { - Monst->mtalkmsg = QUEST_VEIL10; + if (Monst->mtalkmsg == TEXT_VEIL9 && !(dFlags[_mx][_my] & BFLAG_VISIBLE) && monster[i]._mgoal == MGOAL_TALKING) { + Monst->mtalkmsg = TEXT_VEIL10; monster[i]._mgoal = MGOAL_INQUIRING; } if (dFlags[_mx][_my] & BFLAG_VISIBLE) { - if (Monst->mtalkmsg == QUEST_VEIL11) { + if (Monst->mtalkmsg == TEXT_VEIL11) { if (!effect_is_playing(USFX_LACH3) && Monst->_mgoal == MGOAL_TALKING) { Monst->mtalkmsg = 0; - quests[QTYPE_VEIL]._qactive = 3; + quests[Q_VEIL]._qactive = QUEST_DONE; M_StartKill(i, -1); } } @@ -4467,10 +4467,10 @@ void MAI_Warlord(int i) my = Monst->_my; md = M_GetDir(i); if (dFlags[mx][my] & BFLAG_VISIBLE) { - if (Monst->mtalkmsg == QUEST_WARLRD9 && Monst->_mgoal == MGOAL_INQUIRING) + if (Monst->mtalkmsg == TEXT_WARLRD9 && Monst->_mgoal == MGOAL_INQUIRING) Monst->_mmode = MM_TALK; #ifndef SPAWN - if (Monst->mtalkmsg == QUEST_WARLRD9 && !effect_is_playing(USFX_WARLRD1) && Monst->_mgoal == MGOAL_TALKING) { + if (Monst->mtalkmsg == TEXT_WARLRD9 && !effect_is_playing(USFX_WARLRD1) && Monst->_mgoal == MGOAL_TALKING) { Monst->_msquelch = UCHAR_MAX; Monst->mtalkmsg = 0; Monst->_mgoal = MGOAL_NORMAL; @@ -5441,16 +5441,16 @@ void TalktoMonster(int i) pnum = Monst->_menemy; Monst->_mmode = MM_TALK; if (Monst->_mAi == AI_SNOTSPIL || Monst->_mAi == AI_LACHDAN) { - if (QuestStatus(QTYPE_BOL) && quests[QTYPE_BOL]._qvar1 == 2 && PlrHasItem(pnum, IDI_BANNER, itm)) { + if (QuestStatus(Q_LTBANNER) && quests[Q_LTBANNER]._qvar1 == 2 && PlrHasItem(pnum, IDI_BANNER, itm)) { RemoveInvItem(pnum, itm); - quests[QTYPE_BOL]._qactive = 3; - Monst->mtalkmsg = QUEST_BANNER12; + quests[Q_LTBANNER]._qactive = QUEST_DONE; + Monst->mtalkmsg = TEXT_BANNER12; Monst->_mgoal = MGOAL_INQUIRING; } - if (QuestStatus(QTYPE_VEIL) && Monst->mtalkmsg >= QUEST_VEIL9) { + if (QuestStatus(Q_VEIL) && Monst->mtalkmsg >= TEXT_VEIL9) { if (PlrHasItem(pnum, IDI_GLDNELIX, itm)) { RemoveInvItem(pnum, itm); - Monst->mtalkmsg = QUEST_VEIL11; + Monst->mtalkmsg = TEXT_VEIL11; Monst->_mgoal = MGOAL_INQUIRING; } } diff --git a/Source/msg.cpp b/Source/msg.cpp index c9415318e..3b95bc1cc 100644 --- a/Source/msg.cpp +++ b/Source/msg.cpp @@ -54,7 +54,7 @@ void msg_send_packet(int pnum, const void *packet, DWORD dwSize) sgpCurrPkt->dwSpaceLeft -= dwSize; } -TMegaPkt *msg_get_next_packet() +void msg_get_next_packet() { TMegaPkt *result; @@ -67,8 +67,6 @@ TMegaPkt *msg_get_next_packet() result = result->pNext; } result->pNext = sgpCurrPkt; - - return result; } BOOL msg_wait_resync() @@ -145,7 +143,7 @@ int msg_wait_for_turns() return 100 * sgbDeltaChunks / 21; } -void msg_process_net_packets() +void run_delta_info() { if (gbMaxPlayers != 1) { gbBufferMsgs = 2; @@ -973,7 +971,7 @@ void NetSendCmdString(int pmask, const char *pszStr) multi_send_msg_packet(pmask, (BYTE *)&cmd.bCmd, dwStrLen + 2); } -void RemovePlrPortal(int pnum) +void delta_close_portal(int pnum) { memset(&sgJunk.portal[pnum], 0xFF, sizeof(sgJunk.portal[pnum])); sgbDeltaChanged = TRUE; @@ -2429,7 +2427,7 @@ DWORD On_DEACTIVATEPORTAL(TCmd *pCmd, int pnum) if (PortalOnLevel(pnum)) RemovePortalMissile(pnum); DeactivatePortal(pnum); - RemovePlrPortal(pnum); + delta_close_portal(pnum); } return sizeof(*pCmd); diff --git a/Source/msg.h b/Source/msg.h index 81d581765..611933ab7 100644 --- a/Source/msg.h +++ b/Source/msg.h @@ -12,11 +12,11 @@ extern int pkt_counter; void msg_send_drop_pkt(int pnum, int reason); void msg_send_packet(int pnum, const void *packet, DWORD dwSize); -TMegaPkt *msg_get_next_packet(); +void msg_get_next_packet(); BOOL msg_wait_resync(); void msg_free_packets(); int msg_wait_for_turns(); -void msg_process_net_packets(); +void run_delta_info(); void msg_pre_packet(); void DeltaExportData(int pnum); BYTE *DeltaExportItem(BYTE *dst, TCmdPItem *src); @@ -55,7 +55,7 @@ void NetSendCmdDelItem(BOOL bHiPri, BYTE bLoc); void NetSendCmdDItem(BOOL bHiPri, int ii); void NetSendCmdDamage(BOOL bHiPri, BYTE bPlr, DWORD dwDam); void NetSendCmdString(int pmask, const char *pszStr); -void RemovePlrPortal(int pnum); +void delta_close_portal(int pnum); DWORD ParseCmd(int pnum, TCmd *pCmd); DWORD On_DLEVEL(int pnum, TCmd *pCmd); void DeltaImportData(BYTE cmd, DWORD recv_offset); diff --git a/Source/multi.cpp b/Source/multi.cpp index d03d8b062..a5752229c 100644 --- a/Source/multi.cpp +++ b/Source/multi.cpp @@ -277,7 +277,7 @@ void multi_player_left_msg(int pnum, int left) RemovePlrFromMap(pnum); RemovePortalMissile(pnum); DeactivatePortal(pnum); - RemovePlrPortal(pnum); + delta_close_portal(pnum); RemovePlrMissiles(pnum); if (left) { pszFmt = "Player '%s' just left the game"; diff --git a/Source/objects.cpp b/Source/objects.cpp index 5f3c81262..c9e094eb4 100644 --- a/Source/objects.cpp +++ b/Source/objects.cpp @@ -70,9 +70,9 @@ char *StoryBookName[9] = { "The Black King" }; int StoryText[3][3] = { - { QUEST_BOOK11, QUEST_BOOK12, QUEST_BOOK13 }, - { QUEST_BOOK21, QUEST_BOOK22, QUEST_BOOK23 }, - { QUEST_BOOK31, QUEST_BOOK32, QUEST_BOOK33 } + { TEXT_BOOK11, TEXT_BOOK12, TEXT_BOOK13 }, + { TEXT_BOOK21, TEXT_BOOK22, TEXT_BOOK23 }, + { TEXT_BOOK31, TEXT_BOOK32, TEXT_BOOK33 } }; void InitObjectGFX() @@ -276,8 +276,8 @@ void AddCandles() { int tx, ty; - tx = quests[QTYPE_PW]._qtx; - ty = quests[QTYPE_PW]._qty; + tx = quests[Q_PWATER]._qtx; + ty = quests[Q_PWATER]._qty; AddObject(OBJ_STORYCANDLE, tx - 2, ty + 1); AddObject(OBJ_STORYCANDLE, tx + 3, ty + 1); AddObject(OBJ_STORYCANDLE, tx - 1, ty + 2); @@ -307,11 +307,11 @@ void AddBookLever(int lx1, int ly1, int lx2, int ly2, int x1, int y1, int x2, in return; } - if (QuestStatus(QTYPE_BLIND)) + if (QuestStatus(Q_BLIND)) AddObject(OBJ_BLINDBOOK, xp, yp); - if (QuestStatus(QTYPE_WARLRD)) + if (QuestStatus(Q_WARLORD)) AddObject(OBJ_STEELTOME, xp, yp); - if (QuestStatus(QTYPE_BLOOD)) { + if (QuestStatus(Q_BLOOD)) { xp = 2 * setpc_x + 25; yp = 2 * setpc_y + 40; AddObject(OBJ_BLOODBOOK, xp, yp); @@ -751,7 +751,7 @@ void InitObjects() GetRndSeed(); if (currlevel == 9 && gbMaxPlayers == 1) AddSlainHero(); - if (currlevel == quests[QTYPE_BLKM]._qlevel && quests[QTYPE_BLKM]._qactive == 1) + if (currlevel == quests[Q_MUSHROOM]._qlevel && quests[Q_MUSHROOM]._qactive == QUEST_INIT) AddMushPatch(); if (currlevel == 4) AddStoryBooks(); @@ -760,46 +760,46 @@ void InitObjects() if (currlevel == 12) AddStoryBooks(); if (leveltype == DTYPE_CATHEDRAL) { - if (QuestStatus(QTYPE_BUTCH)) + if (QuestStatus(Q_BUTCHER)) AddTortures(); - if (QuestStatus(QTYPE_PW)) + if (QuestStatus(Q_PWATER)) AddCandles(); - if (QuestStatus(QTYPE_BOL)) + if (QuestStatus(Q_LTBANNER)) AddObject(OBJ_SIGNCHEST, 2 * setpc_x + 26, 2 * setpc_y + 19); InitRndLocBigObj(10, 15, OBJ_SARC); AddL1Objs(0, 0, MAXDUNX, MAXDUNY); InitRndBarrels(); } if (leveltype == DTYPE_CATACOMBS) { - if (QuestStatus(QTYPE_INFRA)) + if (QuestStatus(Q_ROCK)) InitRndLocObj5x5(1, 1, OBJ_STAND); - if (QuestStatus(QTYPE_BONE)) + if (QuestStatus(Q_SCHAMB)) InitRndLocObj5x5(1, 1, OBJ_BOOK2R); AddL2Objs(0, 0, MAXDUNX, MAXDUNY); AddL2Torches(); - if (QuestStatus(QTYPE_BLIND)) { + if (QuestStatus(Q_BLIND)) { if (plr[myplr]._pClass == PC_WARRIOR) { - sp_id = QUEST_BLINDING; + sp_id = TEXT_BLINDING; } else if (plr[myplr]._pClass == PC_ROGUE) { - sp_id = QUEST_RBLINDING; + sp_id = TEXT_RBLINDING; } else if (plr[myplr]._pClass == PC_SORCERER) { - sp_id = QUEST_MBLINDING; + sp_id = TEXT_MBLINDING; } - quests[QTYPE_BLIND]._qmsg = sp_id; + quests[Q_BLIND]._qmsg = sp_id; AddBookLever(0, 0, MAXDUNX, MAXDUNY, setpc_x, setpc_y, setpc_w + setpc_x + 1, setpc_h + setpc_y + 1, sp_id); mem = LoadFileInMem("Levels\\L2Data\\Blind2.DUN", NULL); LoadMapObjs(mem, 2 * setpc_x, 2 * setpc_y); mem_free_dbg(mem); } - if (QuestStatus(QTYPE_BLOOD)) { + if (QuestStatus(Q_BLOOD)) { if (plr[myplr]._pClass == PC_WARRIOR) { - sp_id = QUEST_BLOODY; + sp_id = TEXT_BLOODY; } else if (plr[myplr]._pClass == PC_ROGUE) { - sp_id = QUEST_RBLOODY; + sp_id = TEXT_RBLOODY; } else if (plr[myplr]._pClass == PC_SORCERER) { - sp_id = QUEST_MBLOODY; + sp_id = TEXT_MBLOODY; } - quests[QTYPE_BLOOD]._qmsg = sp_id; + quests[Q_BLOOD]._qmsg = sp_id; AddBookLever(0, 0, MAXDUNX, MAXDUNY, setpc_x, setpc_y + 3, setpc_x + 2, setpc_y + 7, sp_id); AddObject(OBJ_PEDISTAL, 2 * setpc_x + 25, 2 * setpc_y + 32); } @@ -810,21 +810,21 @@ void InitObjects() InitRndBarrels(); } if (leveltype == DTYPE_HELL) { - if (QuestStatus(QTYPE_WARLRD)) { + if (QuestStatus(Q_WARLORD)) { if (plr[myplr]._pClass == PC_WARRIOR) { - sp_id = QUEST_BLOODWAR; + sp_id = TEXT_BLOODWAR; } else if (plr[myplr]._pClass == PC_ROGUE) { - sp_id = QUEST_RBLOODWAR; + sp_id = TEXT_RBLOODWAR; } else if (plr[myplr]._pClass == PC_SORCERER) { - sp_id = QUEST_MBLOODWAR; + sp_id = TEXT_MBLOODWAR; } - quests[QTYPE_WARLRD]._qmsg = sp_id; + quests[Q_WARLORD]._qmsg = sp_id; AddBookLever(0, 0, MAXDUNX, MAXDUNY, setpc_x, setpc_y, setpc_x + setpc_w, setpc_y + setpc_h, sp_id); mem = LoadFileInMem("Levels\\L4Data\\Warlord.DUN", NULL); LoadMapObjs(mem, 2 * setpc_x, 2 * setpc_y); mem_free_dbg(mem); } - if (QuestStatus(QTYPE_VB) && gbMaxPlayers == 1) + if (QuestStatus(Q_BETRAYER) && gbMaxPlayers == 1) AddLazStand(); InitRndBarrels(); AddL4Goodies(); @@ -1519,8 +1519,8 @@ void Obj_Circle(int i) if (ox == 35 && oy == 36 && object[i]._oVar5 == 3) { object[i]._oVar6 = 4; ObjChangeMapResync(object[i]._oVar1, object[i]._oVar2, object[i]._oVar3, object[i]._oVar4); - if (quests[QTYPE_VB]._qactive == 2) - quests[QTYPE_VB]._qvar1 = 4; + if (quests[Q_BETRAYER]._qactive == QUEST_ACTIVE) + quests[Q_BETRAYER]._qvar1 = 4; AddMissile(plr[myplr].WorldX, plr[myplr].WorldY, 35, 46, plr[myplr]._pdir, MIS_RNDTELEPORT, 0, myplr, 0, 0); track_repeat_walk(FALSE); sgbMouseDown = 0; @@ -2469,7 +2469,7 @@ void OperateBook(int pnum, int i) plr[myplr]._pMemSpells |= ((__int64)1 << (SPL_GUARDIAN - 1)); if (plr[pnum]._pSplLvl[SPL_GUARDIAN] < 15) plr[myplr]._pSplLvl[SPL_GUARDIAN]++; - quests[QTYPE_BONE]._qactive = 3; + quests[Q_SCHAMB]._qactive = QUEST_DONE; if (!deltaload) PlaySfxLoc(IS_QUESTDN, object[i]._ox, object[i]._oy); InitDiabloMsg(EMSG_BONECHAMB); @@ -2503,24 +2503,24 @@ void OperateBookLever(int pnum, int i) x = 2 * setpc_x + 16; y = 2 * setpc_y + 16; if (object[i]._oSelFlag != 0 && !qtextflag) { - if (object[i]._otype == OBJ_BLINDBOOK && !quests[QTYPE_BLIND]._qvar1) { - quests[QTYPE_BLIND]._qactive = 2; - quests[QTYPE_BLIND]._qlog = 1; - quests[QTYPE_BLIND]._qvar1 = 1; + if (object[i]._otype == OBJ_BLINDBOOK && !quests[Q_BLIND]._qvar1) { + quests[Q_BLIND]._qactive = QUEST_ACTIVE; + quests[Q_BLIND]._qlog = 1; + quests[Q_BLIND]._qvar1 = 1; } - if (object[i]._otype == OBJ_BLOODBOOK && !quests[QTYPE_BLOOD]._qvar1) { - quests[QTYPE_BLOOD]._qactive = 2; - quests[QTYPE_BLOOD]._qlog = 1; - quests[QTYPE_BLOOD]._qvar1 = 1; + if (object[i]._otype == OBJ_BLOODBOOK && !quests[Q_BLOOD]._qvar1) { + quests[Q_BLOOD]._qactive = QUEST_ACTIVE; + quests[Q_BLOOD]._qlog = 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 + 31, 2 * setpc_y + 26, 0, 1); SpawnQuestItem(IDI_BLDSTONE, 2 * setpc_x + 25, 2 * setpc_y + 33, 0, 1); } object[i]._otype = object[i]._otype; - if (object[i]._otype == OBJ_STEELTOME && !quests[QTYPE_WARLRD]._qvar1) { - quests[QTYPE_WARLRD]._qactive = 2; - quests[QTYPE_WARLRD]._qlog = 1; - quests[QTYPE_WARLRD]._qvar1 = 1; + if (object[i]._otype == OBJ_STEELTOME && !quests[Q_WARLORD]._qvar1) { + quests[Q_WARLORD]._qactive = QUEST_ACTIVE; + quests[Q_WARLORD]._qlog = 1; + quests[Q_WARLORD]._qvar1 = 1; } if (object[i]._oAnimFrame != object[i]._oVar6) { if (object[i]._otype != OBJ_BLOODBOOK) @@ -2551,18 +2551,18 @@ void OperateSChambBk(int pnum, int i) SyncObjectAnim(objectactive[j]); } object[i]._oAnimFrame = object[i]._oVar6; - if (quests[QTYPE_BONE]._qactive == 1) { - quests[QTYPE_BONE]._qactive = 2; - quests[QTYPE_BONE]._qlog = 1; + if (quests[Q_SCHAMB]._qactive == QUEST_INIT) { + quests[Q_SCHAMB]._qactive = QUEST_ACTIVE; + quests[Q_SCHAMB]._qlog = 1; } if (plr[myplr]._pClass == PC_WARRIOR) { - textdef = QUEST_BONER; + textdef = TEXT_BONER; } else if (plr[myplr]._pClass == PC_ROGUE) { - textdef = QUEST_RBONER; + textdef = TEXT_RBONER; } else if (plr[myplr]._pClass == PC_SORCERER) { - textdef = QUEST_MBONER; + textdef = TEXT_MBONER; } - quests[QTYPE_BONE]._qmsg = textdef; + quests[Q_SCHAMB]._qmsg = textdef; InitQTextMsg(textdef); } } @@ -2617,7 +2617,7 @@ void OperateMushPatch(int pnum, int i) { int x, y; - if (quests[QTYPE_BLKM]._qactive != 2 || quests[QTYPE_BLKM]._qvar1 < QS_TOMEGIVEN) { + if (quests[Q_MUSHROOM]._qactive != QUEST_ACTIVE || quests[Q_MUSHROOM]._qvar1 < QS_TOMEGIVEN) { if (!deltaload && pnum == myplr) { if (plr[myplr]._pClass == PC_WARRIOR) { PlaySFX(PS_WARR13); @@ -2638,7 +2638,7 @@ void OperateMushPatch(int pnum, int i) if (!deltaload) { GetSuperItemLoc(object[i]._ox, object[i]._oy, x, y); SpawnQuestItem(IDI_MUSHROOM, x, y, 0, 0); - quests[QTYPE_BLKM]._qvar1 = QS_MUSHSPAWNED; + quests[Q_MUSHROOM]._qvar1 = QS_MUSHSPAWNED; } } } @@ -2648,7 +2648,7 @@ void OperateInnSignChest(int pnum, int i) { int x, y; - if (quests[QTYPE_BOL]._qvar1 != 2) { + if (quests[Q_LTBANNER]._qvar1 != 2) { if (!deltaload && pnum == myplr) { if (plr[myplr]._pClass == PC_WARRIOR) { PlaySFX(PS_WARR24); @@ -3486,11 +3486,11 @@ void OperateBookCase(int pnum, int i, BOOL sendmsg) if (!deltaload) { SetRndSeed(object[i]._oRndSeed); CreateTypeItem(object[i]._ox, object[i]._oy, FALSE, ITYPE_MISC, IMISC_BOOK, sendmsg, FALSE); - if (QuestStatus(QTYPE_ZHAR) + if (QuestStatus(Q_ZHAR) && monster[MAX_PLRS].mName == UniqMonst[UMT_ZHAR].mName && monster[MAX_PLRS]._msquelch == UCHAR_MAX && monster[MAX_PLRS]._mhitpoints) { - monster[MAX_PLRS].mtalkmsg = QUEST_ZHAR2; + monster[MAX_PLRS].mtalkmsg = TEXT_ZHAR2; M_StartStand(0, monster[MAX_PLRS]._mdir); monster[MAX_PLRS]._mgoal = MGOAL_SHOOT; monster[MAX_PLRS]._mmode = MM_TALK; diff --git a/Source/player.cpp b/Source/player.cpp index befb421b5..01e1bc633 100644 --- a/Source/player.cpp +++ b/Source/player.cpp @@ -3025,7 +3025,7 @@ void CheckNewPath(int pnum) if (x < 2 && y < 2) { ClrPlrPath(pnum); - if (monster[i].mtalkmsg && monster[i].mtalkmsg != QUEST_VILE14) { + if (monster[i].mtalkmsg && monster[i].mtalkmsg != TEXT_VILE14) { TalktoMonster(i); } else { StartAttack(pnum, d); @@ -3102,7 +3102,7 @@ void CheckNewPath(int pnum) y = abs(plr[pnum].WorldY - monster[i]._mfuty); if (x <= 1 && y <= 1) { d = GetDirection(plr[pnum]._px, plr[pnum]._py, monster[i]._mfutx, monster[i]._mfuty); - if (monster[i].mtalkmsg && monster[i].mtalkmsg != QUEST_VILE14) { + if (monster[i].mtalkmsg && monster[i].mtalkmsg != TEXT_VILE14) { TalktoMonster(i); } else { StartAttack(pnum, d); @@ -3125,7 +3125,7 @@ void CheckNewPath(int pnum) case ACTION_RATTACKMON: i = plr[pnum].destParam1; d = GetDirection(plr[pnum]._px, plr[pnum]._py, monster[i]._mfutx, monster[i]._mfuty); - if (monster[i].mtalkmsg && monster[i].mtalkmsg != QUEST_VILE14) { + if (monster[i].mtalkmsg && monster[i].mtalkmsg != TEXT_VILE14) { TalktoMonster(i); } else { StartRangeAttack(pnum, d, monster[i]._mfutx, monster[i]._mfuty); diff --git a/Source/quests.cpp b/Source/quests.cpp index 20169885e..c0fc49c08 100644 --- a/Source/quests.cpp +++ b/Source/quests.cpp @@ -17,22 +17,22 @@ int ReturnLvl; QuestData questlist[MAXQUESTS] = { // clang-format off // _qdlvl, _qdmultlvl, _qlvlt, _qdtype, _qdrnd, _qslvl, _qflags, _qdmsg, _qlstr - { 5, -1, DTYPE_NONE, QTYPE_INFRA, 100, 0, 0, QUEST_INFRA5, "The Magic Rock" }, - { 9, -1, DTYPE_NONE, QTYPE_BLKM, 100, 0, 0, QUEST_MUSH8, "Black Mushroom" }, - { 4, -1, DTYPE_NONE, QTYPE_GARB, 100, 0, 0, QUEST_GARBUD1, "Gharbad The Weak" }, - { 8, -1, DTYPE_NONE, QTYPE_ZHAR, 100, 0, 0, QUEST_ZHAR1, "Zhar the Mad" }, - { 14, -1, DTYPE_NONE, QTYPE_VEIL, 100, 0, 0, QUEST_VEIL9, "Lachdanan" }, - { 15, -1, DTYPE_NONE, QTYPE_MOD, 100, 0, 1, QUEST_VILE3, "Diablo" }, - { 2, 2, DTYPE_NONE, QTYPE_BUTCH, 100, 0, 1, QUEST_BUTCH9, "The Butcher" }, - { 4, -1, DTYPE_NONE, QTYPE_BOL, 100, 0, 0, QUEST_BANNER2, "Ogden's Sign" }, - { 7, -1, DTYPE_NONE, QTYPE_BLIND, 100, 0, 0, QUEST_BLINDING, "Halls of the Blind" }, - { 5, -1, DTYPE_NONE, QTYPE_BLOOD, 100, 0, 0, QUEST_BLOODY, "Valor" }, - { 10, -1, DTYPE_NONE, QTYPE_ANVIL, 100, 0, 0, QUEST_ANVIL5, "Anvil of Fury" }, - { 13, -1, DTYPE_NONE, QTYPE_WARLRD, 100, 0, 0, QUEST_BLOODWAR, "Warlord of Blood" }, - { 3, 3, DTYPE_CATHEDRAL, QTYPE_KING, 100, 1, 1, QUEST_KING2, "The Curse of King Leoric" }, - { 2, -1, DTYPE_CAVES, QTYPE_PW, 100, 4, 0, QUEST_POISON3, "Poisoned Water Supply" }, - { 6, -1, DTYPE_CATACOMBS, QTYPE_BONE, 100, 2, 0, QUEST_BONER, "The Chamber of Bone" }, - { 15, 15, DTYPE_CATHEDRAL, QTYPE_VB, 100, 5, 1, QUEST_VILE1, "Archbishop Lazarus" }, + { 5, -1, DTYPE_NONE, Q_ROCK, 100, 0, 0, TEXT_INFRA5, "The Magic Rock" }, + { 9, -1, DTYPE_NONE, Q_MUSHROOM, 100, 0, 0, TEXT_MUSH8, "Black Mushroom" }, + { 4, -1, DTYPE_NONE, Q_GARBUD, 100, 0, 0, TEXT_GARBUD1, "Gharbad The Weak" }, + { 8, -1, DTYPE_NONE, Q_ZHAR, 100, 0, 0, TEXT_ZHAR1, "Zhar the Mad" }, + { 14, -1, DTYPE_NONE, Q_VEIL, 100, 0, 0, TEXT_VEIL9, "Lachdanan" }, + { 15, -1, DTYPE_NONE, Q_DIABLO, 100, 0, 1, TEXT_VILE3, "Diablo" }, + { 2, 2, DTYPE_NONE, Q_BUTCHER, 100, 0, 1, TEXT_BUTCH9, "The Butcher" }, + { 4, -1, DTYPE_NONE, Q_LTBANNER, 100, 0, 0, TEXT_BANNER2, "Ogden's Sign" }, + { 7, -1, DTYPE_NONE, Q_BLIND, 100, 0, 0, TEXT_BLINDING, "Halls of the Blind" }, + { 5, -1, DTYPE_NONE, Q_BLOOD, 100, 0, 0, TEXT_BLOODY, "Valor" }, + { 10, -1, DTYPE_NONE, Q_ANVIL, 100, 0, 0, TEXT_ANVIL5, "Anvil of Fury" }, + { 13, -1, DTYPE_NONE, Q_WARLORD, 100, 0, 0, TEXT_BLOODWAR, "Warlord of Blood" }, + { 3, 3, DTYPE_CATHEDRAL, Q_SKELKING, 100, 1, 1, TEXT_KING2, "The Curse of King Leoric" }, + { 2, -1, DTYPE_CAVES, Q_PWATER, 100, 4, 0, TEXT_POISON3, "Poisoned Water Supply" }, + { 6, -1, DTYPE_CATACOMBS, Q_SCHAMB, 100, 2, 0, TEXT_BONER, "The Chamber of Bone" }, + { 15, 15, DTYPE_CATHEDRAL, Q_BETRAYER, 100, 5, 1, TEXT_VILE1, "Archbishop Lazarus" }, // clang-format on }; char questxoff[7] = { 0, -1, 0, -1, -2, -1, -2 }; @@ -44,10 +44,10 @@ char *questtrigstr[5] = { "A Dark Passage", "Unholy Altar" }; -int QuestGroup1[3] = { QTYPE_BUTCH, QTYPE_BOL, QTYPE_GARB }; -int QuestGroup2[3] = { QTYPE_BLIND, QTYPE_INFRA, QTYPE_BLOOD }; -int QuestGroup3[3] = { QTYPE_BLKM, QTYPE_ZHAR, QTYPE_ANVIL }; -int QuestGroup4[2] = { QTYPE_VEIL, QTYPE_WARLRD }; +int QuestGroup1[3] = { Q_BUTCHER, Q_LTBANNER, Q_GARBUD }; +int QuestGroup2[3] = { Q_BLIND, Q_ROCK, Q_BLOOD }; +int QuestGroup3[3] = { Q_MUSHROOM, Q_ZHAR, Q_ANVIL }; +int QuestGroup4[2] = { Q_VEIL, Q_WARLORD }; void InitQuests() { @@ -56,12 +56,12 @@ void InitQuests() if (gbMaxPlayers == 1) { for (i = 0; i < MAXQUESTS; i++) { - quests[i]._qactive = 0; + quests[i]._qactive = QUEST_NOTAVAIL; } } else { for (i = 0; i < MAXQUESTS; i++) { if (!(questlist[i]._qflags & 1)) { - quests[i]._qactive = 0; + quests[i]._qactive = QUEST_NOTAVAIL; } } } @@ -77,13 +77,13 @@ void InitQuests() if (gbMaxPlayers > 1) { quests[z]._qlevel = questlist[z]._qdmultlvl; if (!delta_quest_inited(initiatedQuests)) { - quests[z]._qactive = 1; + quests[z]._qactive = QUEST_INIT; quests[z]._qvar1 = 0; quests[z]._qlog = 0; } initiatedQuests++; } else { - quests[z]._qactive = 1; + quests[z]._qactive = QUEST_INIT; quests[z]._qlevel = questlist[z]._qdlvl; quests[z]._qvar1 = 0; quests[z]._qlog = 0; @@ -102,33 +102,33 @@ void InitQuests() if (gbMaxPlayers == 1) { SetRndSeed(glSeedTbl[15]); if (random_(0, 2)) - quests[QTYPE_PW]._qactive = 0; + quests[Q_PWATER]._qactive = QUEST_NOTAVAIL; else - quests[QTYPE_KING]._qactive = 0; + quests[Q_SKELKING]._qactive = QUEST_NOTAVAIL; - quests[QuestGroup1[random_(0, sizeof(QuestGroup1) / sizeof(int))]]._qactive = 0; - quests[QuestGroup2[random_(0, sizeof(QuestGroup2) / sizeof(int))]]._qactive = 0; - quests[QuestGroup3[random_(0, sizeof(QuestGroup3) / sizeof(int))]]._qactive = 0; - quests[QuestGroup4[random_(0, sizeof(QuestGroup4) / sizeof(int))]]._qactive = 0; + quests[QuestGroup1[random_(0, sizeof(QuestGroup1) / sizeof(int))]]._qactive = QUEST_NOTAVAIL; + quests[QuestGroup2[random_(0, sizeof(QuestGroup2) / sizeof(int))]]._qactive = QUEST_NOTAVAIL; + quests[QuestGroup3[random_(0, sizeof(QuestGroup3) / sizeof(int))]]._qactive = QUEST_NOTAVAIL; + quests[QuestGroup4[random_(0, sizeof(QuestGroup4) / sizeof(int))]]._qactive = QUEST_NOTAVAIL; } #ifdef _DEBUG if (questdebug != -1) - quests[questdebug]._qactive = 2; + quests[questdebug]._qactive = QUEST_ACTIVE; #endif #ifdef SPAWN for (z = 0; z < MAXQUESTS; z++) { - quests[z]._qactive = 0; + quests[z]._qactive = QUEST_NOTAVAIL; } #endif - if (!quests[QTYPE_KING]._qactive) - quests[QTYPE_KING]._qvar2 = 2; - if (!quests[QTYPE_INFRA]._qactive) - quests[QTYPE_INFRA]._qvar2 = 2; - quests[QTYPE_BOL]._qvar1 = 1; + if (!quests[Q_SKELKING]._qactive) + quests[Q_SKELKING]._qvar2 = 2; + if (!quests[Q_ROCK]._qactive) + quests[Q_ROCK]._qvar2 = 2; + quests[Q_LTBANNER]._qvar1 = 1; if (gbMaxPlayers != 1) - quests[QTYPE_VB]._qvar1 = 2; + quests[Q_BETRAYER]._qvar1 = 2; } void CheckQuests() @@ -136,49 +136,49 @@ void CheckQuests() #ifndef SPAWN int i, rportx, rporty; - if (QuestStatus(QTYPE_VB) && gbMaxPlayers != 1 && quests[QTYPE_VB]._qvar1 == 2) { + if (QuestStatus(Q_BETRAYER) && gbMaxPlayers != 1 && quests[Q_BETRAYER]._qvar1 == 2) { AddObject(OBJ_ALTBOY, 2 * setpc_x + 20, 2 * setpc_y + 22); - quests[QTYPE_VB]._qvar1 = 3; - NetSendCmdQuest(TRUE, QTYPE_VB); + quests[Q_BETRAYER]._qvar1 = 3; + NetSendCmdQuest(TRUE, Q_BETRAYER); } if (gbMaxPlayers != 1) { return; } - if (currlevel == quests[QTYPE_VB]._qlevel + if (currlevel == quests[Q_BETRAYER]._qlevel && !setlevel - && quests[QTYPE_VB]._qvar1 >= 2 - && (quests[QTYPE_VB]._qactive == 2 || quests[QTYPE_VB]._qactive == 3) - && (quests[QTYPE_VB]._qvar2 == 0 || quests[QTYPE_VB]._qvar2 == 2)) { - quests[QTYPE_VB]._qtx = 2 * quests[QTYPE_VB]._qtx + 16; - quests[QTYPE_VB]._qty = 2 * quests[QTYPE_VB]._qty + 16; - rportx = quests[QTYPE_VB]._qtx; - rporty = quests[QTYPE_VB]._qty; + && quests[Q_BETRAYER]._qvar1 >= 2 + && (quests[Q_BETRAYER]._qactive == QUEST_ACTIVE || quests[Q_BETRAYER]._qactive == QUEST_DONE) + && (quests[Q_BETRAYER]._qvar2 == 0 || quests[Q_BETRAYER]._qvar2 == 2)) { + quests[Q_BETRAYER]._qtx = 2 * quests[Q_BETRAYER]._qtx + 16; + quests[Q_BETRAYER]._qty = 2 * quests[Q_BETRAYER]._qty + 16; + rportx = quests[Q_BETRAYER]._qtx; + rporty = quests[Q_BETRAYER]._qty; AddMissile(rportx, rporty, rportx, rporty, 0, MIS_RPORTAL, 0, myplr, 0, 0); - quests[QTYPE_VB]._qvar2 = 1; - if (quests[QTYPE_VB]._qactive == 2) { - quests[QTYPE_VB]._qvar1 = 3; + quests[Q_BETRAYER]._qvar2 = 1; + if (quests[Q_BETRAYER]._qactive == QUEST_ACTIVE) { + quests[Q_BETRAYER]._qvar1 = 3; } } - if (quests[QTYPE_VB]._qactive == 3 + if (quests[Q_BETRAYER]._qactive == QUEST_DONE && setlevel && setlvlnum == SL_VILEBETRAYER - && quests[QTYPE_VB]._qvar2 == 4) { + && quests[Q_BETRAYER]._qvar2 == 4) { rportx = 35; rporty = 32; AddMissile(rportx, rporty, rportx, rporty, 0, MIS_RPORTAL, 0, myplr, 0, 0); - quests[QTYPE_VB]._qvar2 = 3; + quests[Q_BETRAYER]._qvar2 = 3; } if (setlevel) { - if (setlvlnum == quests[QTYPE_PW]._qslvl - && quests[QTYPE_PW]._qactive != 1 - && leveltype == quests[QTYPE_PW]._qlvltype + if (setlvlnum == quests[Q_PWATER]._qslvl + && quests[Q_PWATER]._qactive != QUEST_INIT + && leveltype == quests[Q_PWATER]._qlvltype && nummonsters == 4 - && quests[QTYPE_PW]._qactive != 3) { - quests[QTYPE_PW]._qactive = 3; + && quests[Q_PWATER]._qactive != QUEST_DONE) { + quests[Q_PWATER]._qactive = QUEST_DONE; PlaySfxLoc(IS_QUESTDN, plr[myplr].WorldX, plr[myplr].WorldY); LoadPalette("Levels\\L3Data\\L3pwater.pal"); WaterDone = 32; @@ -191,7 +191,7 @@ void CheckQuests() for (i = 0; i < MAXQUESTS; i++) { if (currlevel == quests[i]._qlevel && quests[i]._qslvl != 0 - && quests[i]._qactive != 0 + && quests[i]._qactive != QUEST_NOTAVAIL && plr[myplr].WorldX == quests[i]._qtx && plr[myplr].WorldY == quests[i]._qty) { if (quests[i]._qlvltype != 255) { @@ -215,7 +215,7 @@ BOOL ForceQuests() for (i = 0; i < MAXQUESTS; i++) { - if (i != QTYPE_VB && currlevel == quests[i]._qlevel && quests[i]._qslvl != 0) { + if (i != Q_BETRAYER && currlevel == quests[i]._qlevel && quests[i]._qslvl != 0) { ql = quests[quests[i]._qidx]._qslvl - 1; qx = quests[i]._qtx; qy = quests[i]._qty; @@ -254,7 +254,7 @@ void CheckQuestKill(int m, BOOL sendmsg) int i, j; if (monster[m].MType->mtype == MT_SKING) { - quests[QTYPE_KING]._qactive = 3; + quests[Q_SKELKING]._qactive = QUEST_DONE; sfxdelay = 30; if (plr[myplr]._pClass == PC_WARRIOR) { sfxdnum = PS_WARR82; @@ -264,10 +264,10 @@ void CheckQuestKill(int m, BOOL sendmsg) sfxdnum = PS_MAGE82; } if (sendmsg) - NetSendCmdQuest(TRUE, QTYPE_KING); + NetSendCmdQuest(TRUE, Q_SKELKING); } else if (monster[m].MType->mtype == MT_CLEAVER) { - quests[QTYPE_BUTCH]._qactive = 3; + quests[Q_BUTCHER]._qactive = QUEST_DONE; sfxdelay = 30; if (plr[myplr]._pClass == PC_WARRIOR) { sfxdnum = PS_WARR80; @@ -277,9 +277,9 @@ void CheckQuestKill(int m, BOOL sendmsg) sfxdnum = PS_MAGE80; } if (sendmsg) - NetSendCmdQuest(TRUE, QTYPE_BUTCH); + NetSendCmdQuest(TRUE, Q_BUTCHER); } else if (monster[m].mName == UniqMonst[UMT_GARBUD].mName) { //"Gharbad the Weak" - quests[QTYPE_GARB]._qactive = 3; + quests[Q_GARBUD]._qactive = QUEST_DONE; sfxdelay = 30; if (plr[myplr]._pClass == PC_WARRIOR) { sfxdnum = PS_WARR61; @@ -289,7 +289,7 @@ void CheckQuestKill(int m, BOOL sendmsg) sfxdnum = PS_MAGE61; } } else if (monster[m].mName == UniqMonst[UMT_ZHAR].mName) { //"Zhar the Mad" - quests[QTYPE_ZHAR]._qactive = 3; + quests[Q_ZHAR]._qactive = QUEST_DONE; sfxdelay = 30; if (plr[myplr]._pClass == PC_WARRIOR) { sfxdnum = PS_WARR62; @@ -299,10 +299,10 @@ void CheckQuestKill(int m, BOOL sendmsg) sfxdnum = PS_MAGE62; } } else if (monster[m].mName == UniqMonst[UMT_LAZURUS].mName && gbMaxPlayers != 1) { //"Arch-Bishop Lazarus" - quests[QTYPE_VB]._qactive = 3; - quests[QTYPE_VB]._qvar1 = 7; + quests[Q_BETRAYER]._qactive = QUEST_DONE; + quests[Q_BETRAYER]._qvar1 = 7; sfxdelay = 30; - quests[QTYPE_MOD]._qactive = 2; + quests[Q_DIABLO]._qactive = QUEST_ACTIVE; for (j = 0; j < MAXDUNY; j++) { for (i = 0; i < MAXDUNX; i++) { @@ -322,16 +322,16 @@ void CheckQuestKill(int m, BOOL sendmsg) sfxdnum = PS_MAGE83; } if (sendmsg) { - NetSendCmdQuest(TRUE, QTYPE_VB); - NetSendCmdQuest(TRUE, QTYPE_MOD); + NetSendCmdQuest(TRUE, Q_BETRAYER); + NetSendCmdQuest(TRUE, Q_DIABLO); } } else if (monster[m].mName == UniqMonst[UMT_LAZURUS].mName && gbMaxPlayers == 1) { //"Arch-Bishop Lazarus" - quests[QTYPE_VB]._qactive = 3; + quests[Q_BETRAYER]._qactive = QUEST_DONE; sfxdelay = 30; InitVPTriggers(); - quests[QTYPE_VB]._qvar1 = 7; - quests[QTYPE_VB]._qvar2 = 4; - quests[QTYPE_MOD]._qactive = 2; + quests[Q_BETRAYER]._qvar1 = 7; + quests[Q_BETRAYER]._qvar2 = 4; + quests[Q_DIABLO]._qactive = QUEST_ACTIVE; AddMissile(35, 32, 35, 32, 0, MIS_RPORTAL, 0, myplr, 0, 0); if (plr[myplr]._pClass == PC_WARRIOR) { sfxdnum = PS_WARR83; @@ -341,7 +341,7 @@ void CheckQuestKill(int m, BOOL sendmsg) sfxdnum = PS_MAGE83; } } else if (monster[m].mName == UniqMonst[UMT_WARLORD].mName) { //"Warlord of Blood" - quests[QTYPE_WARLRD]._qactive = 3; + quests[Q_WARLORD]._qactive = QUEST_DONE; sfxdelay = 30; if (plr[myplr]._pClass == PC_WARRIOR) { sfxdnum = PS_WARR94; @@ -519,25 +519,25 @@ void DRLG_CheckQuests(int x, int y) for (i = 0; i < MAXQUESTS; i++) { if (QuestStatus(i)) { switch (quests[i]._qtype) { - case QTYPE_BUTCH: + case Q_BUTCHER: DrawButcher(); break; - case QTYPE_BOL: + case Q_LTBANNER: DrawLTBanner(x, y); break; - case QTYPE_BLIND: + case Q_BLIND: DrawBlind(x, y); break; - case QTYPE_BLOOD: + case Q_BLOOD: DrawBlood(x, y); break; - case QTYPE_WARLRD: + case Q_WARLORD: DrawWarLord(x, y); break; - case QTYPE_KING: + case Q_SKELKING: DrawSkelKing(i, x, y); break; - case QTYPE_BONE: + case Q_SCHAMB: DrawSChamber(i, x, y); break; } @@ -549,27 +549,27 @@ void SetReturnLvlPos() { switch (setlvlnum) { case SL_SKELKING: - ReturnLvlX = quests[QTYPE_KING]._qtx + 1; - ReturnLvlY = quests[QTYPE_KING]._qty; - ReturnLvl = quests[QTYPE_KING]._qlevel; + ReturnLvlX = quests[Q_SKELKING]._qtx + 1; + ReturnLvlY = quests[Q_SKELKING]._qty; + ReturnLvl = quests[Q_SKELKING]._qlevel; ReturnLvlT = DTYPE_CATHEDRAL; break; case SL_BONECHAMB: - ReturnLvlX = quests[QTYPE_BONE]._qtx + 1; - ReturnLvlY = quests[QTYPE_BONE]._qty; - ReturnLvl = quests[QTYPE_BONE]._qlevel; + ReturnLvlX = quests[Q_SCHAMB]._qtx + 1; + ReturnLvlY = quests[Q_SCHAMB]._qty; + ReturnLvl = quests[Q_SCHAMB]._qlevel; ReturnLvlT = DTYPE_CATACOMBS; break; case SL_POISONWATER: - ReturnLvlX = quests[QTYPE_PW]._qtx; - ReturnLvlY = quests[QTYPE_PW]._qty + 1; - ReturnLvl = quests[QTYPE_PW]._qlevel; + ReturnLvlX = quests[Q_PWATER]._qtx; + ReturnLvlY = quests[Q_PWATER]._qty + 1; + ReturnLvl = quests[Q_PWATER]._qlevel; ReturnLvlT = DTYPE_CATHEDRAL; break; case SL_VILEBETRAYER: - ReturnLvlX = quests[QTYPE_VB]._qtx + 1; - ReturnLvlY = quests[QTYPE_VB]._qty - 1; - ReturnLvl = quests[QTYPE_VB]._qlevel; + ReturnLvlX = quests[Q_BETRAYER]._qtx + 1; + ReturnLvlY = quests[Q_BETRAYER]._qty - 1; + ReturnLvl = quests[Q_BETRAYER]._qlevel; ReturnLvlT = DTYPE_HELL; break; } @@ -577,8 +577,8 @@ void SetReturnLvlPos() void GetReturnLvlPos() { - if (quests[QTYPE_VB]._qactive == 3) - quests[QTYPE_VB]._qvar2 = 2; + if (quests[Q_BETRAYER]._qactive == QUEST_DONE) + quests[Q_BETRAYER]._qvar2 = 2; ViewX = ReturnLvlX; ViewY = ReturnLvlY; currlevel = ReturnLvl; @@ -588,23 +588,23 @@ void GetReturnLvlPos() void ResyncMPQuests() { #ifndef SPAWN - if (quests[QTYPE_KING]._qactive == 1 - && currlevel >= quests[QTYPE_KING]._qlevel - 1 - && currlevel <= quests[QTYPE_KING]._qlevel + 1) { - quests[QTYPE_KING]._qactive = 2; - NetSendCmdQuest(TRUE, QTYPE_KING); - } - if (quests[QTYPE_BUTCH]._qactive == 1 - && currlevel >= quests[QTYPE_BUTCH]._qlevel - 1 - && currlevel <= quests[QTYPE_BUTCH]._qlevel + 1) { - quests[QTYPE_BUTCH]._qactive = 2; - NetSendCmdQuest(TRUE, QTYPE_BUTCH); - } - if (quests[QTYPE_VB]._qactive == 1 && currlevel == quests[QTYPE_VB]._qlevel - 1) { - quests[QTYPE_VB]._qactive = 2; - NetSendCmdQuest(TRUE, QTYPE_VB); - } - if (QuestStatus(QTYPE_VB)) + if (quests[Q_SKELKING]._qactive == QUEST_INIT + && currlevel >= quests[Q_SKELKING]._qlevel - 1 + && currlevel <= quests[Q_SKELKING]._qlevel + 1) { + quests[Q_SKELKING]._qactive = QUEST_ACTIVE; + NetSendCmdQuest(TRUE, Q_SKELKING); + } + if (quests[Q_BUTCHER]._qactive == QUEST_INIT + && currlevel >= quests[Q_BUTCHER]._qlevel - 1 + && currlevel <= quests[Q_BUTCHER]._qlevel + 1) { + quests[Q_BUTCHER]._qactive = QUEST_ACTIVE; + NetSendCmdQuest(TRUE, Q_BUTCHER); + } + if (quests[Q_BETRAYER]._qactive == QUEST_INIT && currlevel == quests[Q_BETRAYER]._qlevel - 1) { + quests[Q_BETRAYER]._qactive = QUEST_ACTIVE; + NetSendCmdQuest(TRUE, Q_BETRAYER); + } + if (QuestStatus(Q_BETRAYER)) AddObject(OBJ_ALTBOY, 2 * setpc_x + 20, 2 * setpc_y + 22); #endif } @@ -614,9 +614,9 @@ void ResyncQuests() #ifndef SPAWN int i, tren, x, y; - if (setlevel && setlvlnum == quests[QTYPE_PW]._qslvl && quests[QTYPE_PW]._qactive != 1 && leveltype == quests[QTYPE_PW]._qlvltype) { + if (setlevel && setlvlnum == quests[Q_PWATER]._qslvl && quests[Q_PWATER]._qactive != QUEST_INIT && leveltype == quests[Q_PWATER]._qlvltype) { - if (quests[QTYPE_PW]._qactive == 3) + if (quests[Q_PWATER]._qactive == QUEST_DONE) LoadPalette("Levels\\L3Data\\L3pwater.pal"); else LoadPalette("Levels\\L3Data\\L3pfoul.pal"); @@ -625,14 +625,14 @@ void ResyncQuests() palette_update_quest_palette(i); } - if (QuestStatus(QTYPE_BOL)) { - if (quests[QTYPE_BOL]._qvar1 == 1) + if (QuestStatus(Q_LTBANNER)) { + if (quests[Q_LTBANNER]._qvar1 == 1) ObjChangeMapResync( setpc_w + setpc_x - 2, setpc_h + setpc_y - 2, setpc_w + setpc_x + 1, setpc_h + setpc_y + 1); - if (quests[QTYPE_BOL]._qvar1 == 2) { + if (quests[Q_LTBANNER]._qvar1 == 2) { ObjChangeMapResync( setpc_w + setpc_x - 2, setpc_h + setpc_y - 2, @@ -646,7 +646,7 @@ void ResyncQuests() DRLG_MRectTrans(setpc_x, setpc_y, (setpc_w >> 1) + setpc_x + 4, setpc_y + (setpc_h >> 1)); TransVal = tren; } - if (quests[QTYPE_BOL]._qvar1 == 3) { + if (quests[Q_LTBANNER]._qvar1 == 3) { x = setpc_x; y = setpc_y; ObjChangeMapResync(x, y, x + setpc_w + 1, y + setpc_h + 1); @@ -658,40 +658,40 @@ void ResyncQuests() TransVal = tren; } } - if (currlevel == quests[QTYPE_BLKM]._qlevel) { - if (quests[QTYPE_BLKM]._qactive == 1 && !quests[QTYPE_BLKM]._qvar1) { + if (currlevel == quests[Q_MUSHROOM]._qlevel) { + if (quests[Q_MUSHROOM]._qactive == QUEST_INIT && !quests[Q_MUSHROOM]._qvar1) { SpawnQuestItem(IDI_FUNGALTM, 0, 0, 5, 1); - quests[QTYPE_BLKM]._qvar1 = QS_TOMESPAWNED; + quests[Q_MUSHROOM]._qvar1 = QS_TOMESPAWNED; } else { - if (quests[QTYPE_BLKM]._qactive == 2) { - if (quests[QTYPE_BLKM]._qvar1 >= QS_MUSHGIVEN) { + if (quests[Q_MUSHROOM]._qactive == QUEST_ACTIVE) { + if (quests[Q_MUSHROOM]._qvar1 >= QS_MUSHGIVEN) { Qtalklist[TOWN_WITCH]._qblkm = -1; - Qtalklist[TOWN_HEALER]._qblkm = QUEST_MUSH3; - } else if (quests[QTYPE_BLKM]._qvar1 >= QS_BRAINGIVEN) { + Qtalklist[TOWN_HEALER]._qblkm = TEXT_MUSH3; + } else if (quests[Q_MUSHROOM]._qvar1 >= QS_BRAINGIVEN) { Qtalklist[TOWN_HEALER]._qblkm = -1; } } } } - if (currlevel == quests[QTYPE_VEIL]._qlevel + 1 && quests[QTYPE_VEIL]._qactive == 2 && !quests[QTYPE_VEIL]._qvar1) { - quests[QTYPE_VEIL]._qvar1 = 1; + if (currlevel == quests[Q_VEIL]._qlevel + 1 && quests[Q_VEIL]._qactive == QUEST_ACTIVE && !quests[Q_VEIL]._qvar1) { + quests[Q_VEIL]._qvar1 = 1; SpawnQuestItem(IDI_GLDNELIX, 0, 0, 5, 1); } if (setlevel && setlvlnum == SL_VILEBETRAYER) { - if (quests[QTYPE_VB]._qvar1 >= 4) + if (quests[Q_BETRAYER]._qvar1 >= 4) ObjChangeMapResync(1, 11, 20, 18); - if (quests[QTYPE_VB]._qvar1 >= 6) + if (quests[Q_BETRAYER]._qvar1 >= 6) ObjChangeMapResync(1, 18, 20, 24); - if (quests[QTYPE_VB]._qvar1 >= 7) + if (quests[Q_BETRAYER]._qvar1 >= 7) InitVPTriggers(); for (i = 0; i < nobjects; i++) SyncObjectAnim(objectactive[i]); } - if (currlevel == quests[QTYPE_VB]._qlevel + if (currlevel == quests[Q_BETRAYER]._qlevel && !setlevel - && (quests[QTYPE_VB]._qvar2 == 1 || quests[QTYPE_VB]._qvar2 >= 3) - && (quests[QTYPE_VB]._qactive == 2 || quests[QTYPE_VB]._qactive == 3)) { - quests[QTYPE_VB]._qvar2 = 2; + && (quests[Q_BETRAYER]._qvar2 == 1 || quests[Q_BETRAYER]._qvar2 >= 3) + && (quests[Q_BETRAYER]._qactive == QUEST_ACTIVE || quests[Q_BETRAYER]._qactive == QUEST_DONE)) { + quests[Q_BETRAYER]._qvar2 = 2; } #endif } @@ -750,7 +750,7 @@ void StartQuestlog() numqlines = 0; for (i = 0; i < MAXQUESTS; i++) { - if (quests[i]._qactive == 2 && quests[i]._qlog) { + if (quests[i]._qactive == QUEST_ACTIVE && quests[i]._qlog) { qlist[numqlines] = i; numqlines++; } @@ -825,7 +825,7 @@ void QuestlogESC() void SetMultiQuest(int q, int s, int l, int v1) { #ifndef SPAWN - if (quests[q]._qactive != 3) { + if (quests[q]._qactive != QUEST_DONE) { if (s > quests[q]._qactive) quests[q]._qactive = s; quests[q]._qlog |= l; diff --git a/Source/setmaps.cpp b/Source/setmaps.cpp index 3a0b8735c..286d6cd0a 100644 --- a/Source/setmaps.cpp +++ b/Source/setmaps.cpp @@ -133,9 +133,9 @@ void LoadSetMap() { switch (setlvlnum) { case SL_SKELKING: - if (quests[QTYPE_KING]._qactive == 1) { - quests[QTYPE_KING]._qactive = 2; - quests[QTYPE_KING]._qvar1 = 1; + if (quests[Q_SKELKING]._qactive == QUEST_INIT) { + quests[Q_SKELKING]._qactive = QUEST_ACTIVE; + quests[Q_SKELKING]._qvar1 = 1; } LoadPreL1Dungeon("Levels\\L1Data\\SklKng1.DUN", 83, 45); LoadL1Dungeon("Levels\\L1Data\\SklKng2.DUN", 83, 45); @@ -167,18 +167,18 @@ void LoadSetMap() DRLG_SetMapTrans("Levels\\L1Data\\Lv1MazeA.DUN"); break; case SL_POISONWATER: - if (quests[QTYPE_PW]._qactive == 1) - quests[QTYPE_PW]._qactive = 2; + if (quests[Q_PWATER]._qactive == QUEST_INIT) + quests[Q_PWATER]._qactive = QUEST_ACTIVE; LoadPreL3Dungeon("Levels\\L3Data\\Foulwatr.DUN", 19, 50); LoadL3Dungeon("Levels\\L3Data\\Foulwatr.DUN", 20, 50); LoadPalette("Levels\\L3Data\\L3pfoul.pal"); InitPWaterTriggers(); break; case SL_VILEBETRAYER: - if (quests[QTYPE_VB]._qactive == 3) { - quests[QTYPE_VB]._qvar2 = 4; - } else if (quests[QTYPE_VB]._qactive == 2) { - quests[QTYPE_VB]._qvar2 = 3; + if (quests[Q_BETRAYER]._qactive == QUEST_DONE) { + quests[Q_BETRAYER]._qvar2 = 4; + } else if (quests[Q_BETRAYER]._qactive == QUEST_ACTIVE) { + quests[Q_BETRAYER]._qvar2 = 3; } LoadPreL1Dungeon("Levels\\L1Data\\Vile1.DUN", 35, 36); LoadL1Dungeon("Levels\\L1Data\\Vile2.DUN", 35, 36); diff --git a/Source/stores.cpp b/Source/stores.cpp index 5bb86f53d..fa02dbee4 100644 --- a/Source/stores.cpp +++ b/Source/stores.cpp @@ -615,7 +615,7 @@ BOOL SmithSellOk(int i) return FALSE; if (plr[myplr].InvList[i]._itype == ITYPE_GOLD) return FALSE; - if (plr[myplr].InvList[i]._itype == ITYPE_0E) + if (plr[myplr].InvList[i]._itype == ITYPE_MEAT) return FALSE; if (plr[myplr].InvList[i]._itype == ITYPE_STAFF) return FALSE; @@ -723,7 +723,7 @@ BOOL SmithRepairOk(int i) return FALSE; if (plr[myplr].InvList[i]._itype == ITYPE_GOLD) return FALSE; - if (plr[myplr].InvList[i]._itype == ITYPE_0E) + if (plr[myplr].InvList[i]._itype == ITYPE_MEAT) return FALSE; if (plr[myplr].InvList[i]._iDurability == plr[myplr].InvList[i]._iMaxDur) return FALSE; @@ -1379,7 +1379,7 @@ void S_StartTalk() #else sn = 0; for (i = 0; i < MAXQUESTS; i++) { - if (quests[i]._qactive == 2 && ((DWORD *)&Qtalklist[talker])[i] != -1 && quests[i]._qlog) + if (quests[i]._qactive == QUEST_ACTIVE && ((DWORD *)&Qtalklist[talker])[i] != -1 && quests[i]._qlog) sn++; } @@ -1394,7 +1394,7 @@ void S_StartTalk() sn2 = sn - 2; for (i = 0; i < MAXQUESTS; i++) { - if (quests[i]._qactive == 2 && ((DWORD *)&Qtalklist[talker])[i] != -1 && quests[i]._qlog) { + if (quests[i]._qactive == QUEST_ACTIVE && ((DWORD *)&Qtalklist[talker])[i] != -1 && quests[i]._qlog) { AddSText(0, sn, 1, questlist[i]._qlstr, COL_WHITE, 1); sn += la; } @@ -1773,8 +1773,8 @@ void S_SmithEnter() talker = 0; stextlhold = 10; stextshold = STORE_SMITH; - gossipstart = QUEST_GRISWOLD2; - gossipend = QUEST_GRISWOLD13; + gossipstart = TEXT_GRISWOLD2; + gossipend = TEXT_GRISWOLD13; StartStore(STORE_GOSSIP); break; case 12: @@ -2167,8 +2167,8 @@ void S_WitchEnter() stextlhold = 12; talker = 6; stextshold = STORE_WITCH; - gossipstart = QUEST_ADRIA2; - gossipend = QUEST_ADRIA13; + gossipstart = TEXT_ADRIA2; + gossipend = TEXT_ADRIA13; StartStore(STORE_GOSSIP); return; case 14: @@ -2321,8 +2321,8 @@ void S_BoyEnter() talker = 8; stextshold = STORE_BOY; stextlhold = stextsel; - gossipstart = QUEST_WIRT2; - gossipend = QUEST_WIRT12; + gossipstart = TEXT_WIRT2; + gossipend = TEXT_WIRT12; StartStore(STORE_GOSSIP); } else { stextflag = STORE_NONE; @@ -2491,8 +2491,8 @@ void S_HealerEnter() stextlhold = 12; talker = 1; stextshold = STORE_HEALER; - gossipstart = QUEST_PEPIN2; - gossipend = QUEST_PEPIN11; + gossipstart = TEXT_PEPIN2; + gossipend = TEXT_PEPIN11; StartStore(STORE_GOSSIP); break; case 14: @@ -2550,8 +2550,8 @@ void S_StoryEnter() stextlhold = 12; talker = 4; stextshold = STORE_STORY; - gossipstart = QUEST_STORY2; - gossipend = QUEST_STORY11; + gossipstart = TEXT_STORY2; + gossipend = TEXT_STORY11; StartStore(STORE_GOSSIP); break; case 14: @@ -2595,7 +2595,7 @@ void S_TalkEnter() sn = 0; for (i = 0; i < MAXQUESTS; i++) { - if (quests[i]._qactive == 2 && ((DWORD *)&Qtalklist[talker])[i] != -1 && quests[i]._qlog) + if (quests[i]._qactive == QUEST_ACTIVE && ((DWORD *)&Qtalklist[talker])[i] != -1 && quests[i]._qlog) sn++; } if (sn > 6) { @@ -2614,7 +2614,7 @@ void S_TalkEnter() } for (i = 0; i < MAXQUESTS; i++) { - if (quests[i]._qactive == 2 && ((DWORD *)&Qtalklist[talker])[i] != -1 && quests[i]._qlog) { + if (quests[i]._qactive == QUEST_ACTIVE && ((DWORD *)&Qtalklist[talker])[i] != -1 && quests[i]._qlog) { if (sn == stextsel) { InitQTextMsg(((DWORD *)&Qtalklist[talker])[i]); } @@ -2630,8 +2630,8 @@ void S_TavernEnter() stextlhold = 12; talker = 3; stextshold = STORE_TAVERN; - gossipstart = QUEST_OGDEN2; - gossipend = QUEST_OGDEN10; + gossipstart = TEXT_OGDEN2; + gossipend = TEXT_OGDEN10; StartStore(STORE_GOSSIP); break; case 18: @@ -2647,8 +2647,8 @@ void S_BarmaidEnter() stextlhold = 12; talker = 7; stextshold = STORE_BARMAID; - gossipstart = QUEST_GILLIAN2; - gossipend = QUEST_GILLIAN10; + gossipstart = TEXT_GILLIAN2; + gossipend = TEXT_GILLIAN10; StartStore(STORE_GOSSIP); break; case 18: @@ -2664,8 +2664,8 @@ void S_DrunkEnter() stextlhold = 12; talker = 5; stextshold = STORE_DRUNK; - gossipstart = QUEST_FARNHAM2; - gossipend = QUEST_FARNHAM13; + gossipstart = TEXT_FARNHAM2; + gossipend = TEXT_FARNHAM13; StartStore(STORE_GOSSIP); break; case 18: diff --git a/Source/themes.cpp b/Source/themes.cpp index 4ebbf3b5e..541e63550 100644 --- a/Source/themes.cpp +++ b/Source/themes.cpp @@ -431,7 +431,7 @@ void InitThemes() if (leveltype == DTYPE_CATACOMBS || leveltype == DTYPE_CAVES || leveltype == DTYPE_HELL) { for (i = 0; i < themeCount; i++) themes[i].ttype = THEME_NONE; - if (QuestStatus(QTYPE_ZHAR)) { + if (QuestStatus(Q_ZHAR)) { for (j = 0; j < themeCount; j++) { themes[j].ttval = themeLoc[j].ttval; if (SpecialThemeFit(j, THEME_LIBRARY)) { @@ -744,7 +744,7 @@ void Theme_Library(int t) } } - if (QuestStatus(QTYPE_ZHAR)) { + if (QuestStatus(Q_ZHAR)) { if (t == zharlib) { return; } diff --git a/Source/town.cpp b/Source/town.cpp index dc7904d5b..148650e93 100644 --- a/Source/town.cpp +++ b/Source/town.cpp @@ -1623,7 +1623,7 @@ void T_Pass3() } #endif - if (quests[QTYPE_PW]._qactive != 3 && quests[QTYPE_PW]._qactive) { + if (quests[Q_PWATER]._qactive != QUEST_DONE && quests[Q_PWATER]._qactive) { T_FillTile(P3Tiles, 60, 70, 342); } else { T_FillTile(P3Tiles, 60, 70, 71); diff --git a/Source/towners.cpp b/Source/towners.cpp index 103271ef4..6b8d6dd81 100644 --- a/Source/towners.cpp +++ b/Source/towners.cpp @@ -94,17 +94,17 @@ int cowoffy[8] = { -1, -1, -1, 0, -1, -1, -1, 0 }; QuestTalkData Qtalklist[11] = { // clang-format off // _qinfra, _qblkm, _qgarb, _qzhar, _qveil, _qmod, _qbutch, _qbol, _qblind, _qblood, _qanvil, _qwarlrd, _qking, _qpw, _qbone, _qvb - { QUEST_INFRA6, QUEST_MUSH6, -1, -1, QUEST_VEIL5, -1, QUEST_BUTCH5, QUEST_BANNER6, QUEST_BLIND5, QUEST_BLOOD5, QUEST_ANVIL6, QUEST_WARLRD5, QUEST_KING7, QUEST_POISON7, QUEST_BONE5, QUEST_VILE9 }, - { QUEST_INFRA3, -1, -1, -1, QUEST_VEIL3, -1, QUEST_BUTCH3, QUEST_BANNER4, QUEST_BLIND3, QUEST_BLOOD3, QUEST_ANVIL3, QUEST_WARLRD3, QUEST_KING5, QUEST_POISON4, QUEST_BONE3, QUEST_VILE7 }, + { TEXT_INFRA6, TEXT_MUSH6, -1, -1, TEXT_VEIL5, -1, TEXT_BUTCH5, TEXT_BANNER6, TEXT_BLIND5, TEXT_BLOOD5, TEXT_ANVIL6, TEXT_WARLRD5, TEXT_KING7, TEXT_POISON7, TEXT_BONE5, TEXT_VILE9 }, + { TEXT_INFRA3, -1, -1, -1, TEXT_VEIL3, -1, TEXT_BUTCH3, TEXT_BANNER4, TEXT_BLIND3, TEXT_BLOOD3, TEXT_ANVIL3, TEXT_WARLRD3, TEXT_KING5, TEXT_POISON4, TEXT_BONE3, TEXT_VILE7 }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { QUEST_INFRA2, QUEST_MUSH2, -1, -1, QUEST_VEIL2, -1, QUEST_BUTCH2, -1, QUEST_BLIND2, QUEST_BLOOD2, QUEST_ANVIL2, QUEST_WARLRD2, QUEST_KING3, QUEST_POISON2, QUEST_BONE2, QUEST_VILE4 }, - { QUEST_INFRA1, QUEST_MUSH1, -1, -1, QUEST_VEIL1, QUEST_VILE3, QUEST_BUTCH1, QUEST_BANNER1, QUEST_BLIND1, QUEST_BLOOD1, QUEST_ANVIL1, QUEST_WARLRD1, QUEST_KING1, QUEST_POISON1, QUEST_BONE1, QUEST_VILE2 }, - { QUEST_INFRA8, QUEST_MUSH7, -1, -1, QUEST_VEIL6, -1, QUEST_BUTCH6, QUEST_BANNER7, QUEST_BLIND6, QUEST_BLOOD6, QUEST_ANVIL8, QUEST_WARLRD6, QUEST_KING8, QUEST_POISON8, QUEST_BONE6, QUEST_VILE10 }, - { QUEST_INFRA9, QUEST_MUSH9, -1, -1, QUEST_VEIL7, -1, QUEST_BUTCH7, QUEST_BANNER8, QUEST_BLIND7, QUEST_BLOOD7, QUEST_ANVIL9, QUEST_WARLRD7, QUEST_KING9, QUEST_POISON9, QUEST_BONE7, QUEST_VILE11 }, - { QUEST_INFRA4, QUEST_MUSH5, -1, -1, QUEST_VEIL4, -1, QUEST_BUTCH4, QUEST_BANNER5, QUEST_BLIND4, QUEST_BLOOD4, QUEST_ANVIL4, QUEST_WARLRD4, QUEST_KING6, QUEST_POISON6, QUEST_BONE4, QUEST_VILE8 }, - { QUEST_INFRA10, QUEST_MUSH13, -1, -1, QUEST_VEIL8, -1, QUEST_BUTCH8, QUEST_BANNER9, QUEST_BLIND8, QUEST_BLOOD8, QUEST_ANVIL10,QUEST_WARLRD8, QUEST_KING10, QUEST_POISON10, QUEST_BONE8, QUEST_VILE12 }, + { TEXT_INFRA2, TEXT_MUSH2, -1, -1, TEXT_VEIL2, -1, TEXT_BUTCH2, -1, TEXT_BLIND2, TEXT_BLOOD2, TEXT_ANVIL2, TEXT_WARLRD2, TEXT_KING3, TEXT_POISON2, TEXT_BONE2, TEXT_VILE4 }, + { TEXT_INFRA1, TEXT_MUSH1, -1, -1, TEXT_VEIL1, TEXT_VILE3, TEXT_BUTCH1, TEXT_BANNER1, TEXT_BLIND1, TEXT_BLOOD1, TEXT_ANVIL1, TEXT_WARLRD1, TEXT_KING1, TEXT_POISON1, TEXT_BONE1, TEXT_VILE2 }, + { TEXT_INFRA8, TEXT_MUSH7, -1, -1, TEXT_VEIL6, -1, TEXT_BUTCH6, TEXT_BANNER7, TEXT_BLIND6, TEXT_BLOOD6, TEXT_ANVIL8, TEXT_WARLRD6, TEXT_KING8, TEXT_POISON8, TEXT_BONE6, TEXT_VILE10 }, + { TEXT_INFRA9, TEXT_MUSH9, -1, -1, TEXT_VEIL7, -1, TEXT_BUTCH7, TEXT_BANNER8, TEXT_BLIND7, TEXT_BLOOD7, TEXT_ANVIL9, TEXT_WARLRD7, TEXT_KING9, TEXT_POISON9, TEXT_BONE7, TEXT_VILE11 }, + { TEXT_INFRA4, TEXT_MUSH5, -1, -1, TEXT_VEIL4, -1, TEXT_BUTCH4, TEXT_BANNER5, TEXT_BLIND4, TEXT_BLOOD4, TEXT_ANVIL4, TEXT_WARLRD4, TEXT_KING6, TEXT_POISON6, TEXT_BONE4, TEXT_VILE8 }, + { TEXT_INFRA10, TEXT_MUSH13, -1, -1, TEXT_VEIL8, -1, TEXT_BUTCH8, TEXT_BANNER9, TEXT_BLIND8, TEXT_BLOOD8, TEXT_ANVIL10,TEXT_WARLRD8, TEXT_KING10, TEXT_POISON10, TEXT_BONE8, TEXT_VILE12 }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, - { QUEST_KING1, QUEST_KING1, QUEST_KING1, QUEST_KING1, QUEST_KING1, QUEST_KING1, QUEST_KING1, QUEST_KING1, QUEST_KING1, QUEST_KING1, QUEST_KING1, QUEST_KING1, QUEST_KING1, QUEST_KING1, QUEST_KING1, QUEST_KING1 } + { TEXT_KING1, TEXT_KING1, TEXT_KING1, TEXT_KING1, TEXT_KING1, TEXT_KING1, TEXT_KING1, TEXT_KING1, TEXT_KING1, TEXT_KING1, TEXT_KING1, TEXT_KING1, TEXT_KING1, TEXT_KING1, TEXT_KING1, TEXT_KING1 } // clang-format on }; int CowPlaying = -1; @@ -379,7 +379,7 @@ void InitTowners() boyloadflag = FALSE; InitSmith(); InitHealer(); - if (quests[QTYPE_BUTCH]._qactive && quests[QTYPE_BUTCH]._qactive != 3) + if (quests[Q_BUTCHER]._qactive && quests[Q_BUTCHER]._qactive != QUEST_DONE) InitTownDead(); InitBarOwner(); InitTeller(); @@ -446,7 +446,7 @@ void TownDead() tidx = GetActiveTowner(TOWN_DEADGUY); TownCtrlMsg(tidx); if (!qtextflag) { - if ((quests[QTYPE_BUTCH]._qactive != 2 || quests[QTYPE_BUTCH]._qlog) && quests[QTYPE_BUTCH]._qactive != 1) { + if ((quests[Q_BUTCHER]._qactive != QUEST_ACTIVE || quests[Q_BUTCHER]._qlog) && quests[Q_BUTCHER]._qactive != QUEST_INIT) { towner[tidx]._tAnimDelay = 1000; towner[tidx]._tAnimFrame = 1; strcpy(towner[tidx]._tName, "Slain Townsman"); @@ -454,7 +454,7 @@ void TownDead() return; } } - if (quests[QTYPE_BUTCH]._qactive != 1) + if (quests[Q_BUTCHER]._qactive != QUEST_INIT) towner[tidx]._tAnimCnt = 0; } @@ -625,68 +625,68 @@ void TalkToTowner(int p, int t) if (!plr[p]._pLvlVisited[0] && !towner[t]._tMsgSaid) { towner[t]._tbtcnt = 150; towner[t]._tVar1 = p; - InitQTextMsg(QUEST_INTRO); + InitQTextMsg(TEXT_INTRO); towner[t]._tMsgSaid = TRUE; } - if ((plr[p]._pLvlVisited[2] || plr[p]._pLvlVisited[4]) && quests[QTYPE_KING]._qactive != 0) { - if (quests[QTYPE_KING]._qvar2 == 0 && !towner[t]._tMsgSaid) { - quests[QTYPE_KING]._qvar2 = 1; - quests[QTYPE_KING]._qlog = TRUE; - if (quests[QTYPE_KING]._qactive == 1) { - quests[QTYPE_KING]._qactive = 2; - quests[QTYPE_KING]._qvar1 = 1; + if ((plr[p]._pLvlVisited[2] || plr[p]._pLvlVisited[4]) && quests[Q_SKELKING]._qactive != QUEST_NOTAVAIL) { + if (quests[Q_SKELKING]._qvar2 == 0 && !towner[t]._tMsgSaid) { + quests[Q_SKELKING]._qvar2 = 1; + quests[Q_SKELKING]._qlog = TRUE; + if (quests[Q_SKELKING]._qactive == QUEST_INIT) { + quests[Q_SKELKING]._qactive = QUEST_ACTIVE; + quests[Q_SKELKING]._qvar1 = 1; } towner[t]._tbtcnt = 150; towner[t]._tVar1 = p; - InitQTextMsg(QUEST_KING2); + InitQTextMsg(TEXT_KING2); towner[t]._tMsgSaid = TRUE; - NetSendCmdQuest(TRUE, QTYPE_KING); + NetSendCmdQuest(TRUE, Q_SKELKING); } - if (quests[QTYPE_KING]._qactive == 3 && quests[QTYPE_KING]._qvar2 == 1 && !towner[t]._tMsgSaid) { - quests[QTYPE_KING]._qvar2 = 2; - quests[QTYPE_KING]._qvar1 = 2; + if (quests[Q_SKELKING]._qactive == QUEST_DONE && quests[Q_SKELKING]._qvar2 == 1 && !towner[t]._tMsgSaid) { + quests[Q_SKELKING]._qvar2 = 2; + quests[Q_SKELKING]._qvar1 = 2; towner[t]._tbtcnt = 150; towner[t]._tVar1 = p; - InitQTextMsg(QUEST_KING4); + InitQTextMsg(TEXT_KING4); towner[t]._tMsgSaid = TRUE; - NetSendCmdQuest(TRUE, QTYPE_KING); + NetSendCmdQuest(TRUE, Q_SKELKING); } } - if (gbMaxPlayers == 1 && plr[p]._pLvlVisited[3] && quests[QTYPE_BOL]._qactive != 0) { - if ((quests[QTYPE_BOL]._qactive == 1 || quests[QTYPE_BOL]._qactive == 2) && quests[QTYPE_BOL]._qvar2 == 0 && !towner[t]._tMsgSaid) { - quests[QTYPE_BOL]._qvar2 = 1; - if (quests[QTYPE_BOL]._qactive == 1) { - quests[QTYPE_BOL]._qvar1 = 1; - quests[QTYPE_BOL]._qactive = 2; + if (gbMaxPlayers == 1 && plr[p]._pLvlVisited[3] && quests[Q_LTBANNER]._qactive != QUEST_NOTAVAIL) { + if ((quests[Q_LTBANNER]._qactive == QUEST_INIT || quests[Q_LTBANNER]._qactive == QUEST_ACTIVE) && quests[Q_LTBANNER]._qvar2 == 0 && !towner[t]._tMsgSaid) { + quests[Q_LTBANNER]._qvar2 = 1; + if (quests[Q_LTBANNER]._qactive == QUEST_INIT) { + quests[Q_LTBANNER]._qvar1 = 1; + quests[Q_LTBANNER]._qactive = QUEST_ACTIVE; } - quests[QTYPE_BOL]._qlog = TRUE; + quests[Q_LTBANNER]._qlog = TRUE; towner[t]._tbtcnt = 150; towner[t]._tVar1 = p; - InitQTextMsg(QUEST_BANNER2); + InitQTextMsg(TEXT_BANNER2); towner[t]._tMsgSaid = TRUE; } - if (quests[QTYPE_BOL]._qvar2 == 1 && PlrHasItem(p, IDI_BANNER, i) != NULL && !towner[t]._tMsgSaid) { - quests[QTYPE_BOL]._qactive = 3; - quests[QTYPE_BOL]._qvar1 = 3; + if (quests[Q_LTBANNER]._qvar2 == 1 && PlrHasItem(p, IDI_BANNER, i) != NULL && !towner[t]._tMsgSaid) { + quests[Q_LTBANNER]._qactive = QUEST_DONE; + quests[Q_LTBANNER]._qvar1 = 3; RemoveInvItem(p, i); CreateItem(UITEM_HARCREST, towner[t]._tx, towner[t]._ty + 1); towner[t]._tbtcnt = 150; towner[t]._tVar1 = p; - InitQTextMsg(QUEST_BANNER3); + InitQTextMsg(TEXT_BANNER3); towner[t]._tMsgSaid = TRUE; } } if (!qtextflag) { - TownerTalk(QUEST_OGDEN1, t); + TownerTalk(TEXT_OGDEN1, t); if (storeflag) { StartStore(STORE_TAVERN); } } } else if (t == GetActiveTowner(TOWN_DEADGUY)) { - if (quests[QTYPE_BUTCH]._qactive == 2 && quests[QTYPE_BUTCH]._qvar1 == 1) { + if (quests[Q_BUTCHER]._qactive == QUEST_ACTIVE && quests[Q_BUTCHER]._qvar1 == 1) { towner[t]._tbtcnt = 150; towner[t]._tVar1 = p; - quests[QTYPE_BUTCH]._qvar1 = 1; + quests[Q_BUTCHER]._qvar1 = 1; #ifndef SPAWN if (plr[p]._pClass == PC_WARRIOR && !effect_is_playing(PS_WARR8)) { PlaySFX(PS_WARR8); @@ -697,113 +697,113 @@ void TalkToTowner(int p, int t) } #endif towner[t]._tMsgSaid = TRUE; - } else if (quests[QTYPE_BUTCH]._qactive == 3 && quests[QTYPE_BUTCH]._qvar1 == 1) { - quests[QTYPE_BUTCH]._qvar1 = 1; + } else if (quests[Q_BUTCHER]._qactive == QUEST_DONE && quests[Q_BUTCHER]._qvar1 == 1) { + quests[Q_BUTCHER]._qvar1 = 1; towner[t]._tbtcnt = 150; towner[t]._tVar1 = p; towner[t]._tMsgSaid = TRUE; - } else if (quests[QTYPE_BUTCH]._qactive == 1 || quests[QTYPE_BUTCH]._qactive == 2 && quests[QTYPE_BUTCH]._qvar1 == 0) { - quests[QTYPE_BUTCH]._qactive = 2; - quests[QTYPE_BUTCH]._qlog = TRUE; - quests[QTYPE_BUTCH]._qmsg = QUEST_BUTCH9; - quests[QTYPE_BUTCH]._qvar1 = 1; + } else if (quests[Q_BUTCHER]._qactive == QUEST_INIT || quests[Q_BUTCHER]._qactive == QUEST_ACTIVE && quests[Q_BUTCHER]._qvar1 == 0) { + quests[Q_BUTCHER]._qactive = QUEST_ACTIVE; + quests[Q_BUTCHER]._qlog = TRUE; + quests[Q_BUTCHER]._qmsg = TEXT_BUTCH9; + quests[Q_BUTCHER]._qvar1 = 1; towner[t]._tbtcnt = 50; towner[t]._tVar1 = p; towner[t]._tVar2 = 3; - InitQTextMsg(QUEST_BUTCH9); + InitQTextMsg(TEXT_BUTCH9); towner[t]._tMsgSaid = TRUE; - NetSendCmdQuest(TRUE, QTYPE_BUTCH); + NetSendCmdQuest(TRUE, Q_BUTCHER); } } else if (t == GetActiveTowner(TOWN_SMITH)) { if (gbMaxPlayers == 1) { - if (plr[p]._pLvlVisited[4] && quests[QTYPE_INFRA]._qactive != 0) { - if (quests[QTYPE_INFRA]._qvar2 == 0) { - quests[QTYPE_INFRA]._qvar2 = 1; - quests[QTYPE_INFRA]._qlog = TRUE; - if (quests[QTYPE_INFRA]._qactive == 1) { - quests[QTYPE_INFRA]._qactive = 2; - quests[QTYPE_INFRA]._qvar1 = 1; + if (plr[p]._pLvlVisited[4] && quests[Q_ROCK]._qactive != QUEST_NOTAVAIL) { + if (quests[Q_ROCK]._qvar2 == 0) { + quests[Q_ROCK]._qvar2 = 1; + quests[Q_ROCK]._qlog = TRUE; + if (quests[Q_ROCK]._qactive == QUEST_INIT) { + quests[Q_ROCK]._qactive = QUEST_ACTIVE; + quests[Q_ROCK]._qvar1 = 1; } towner[t]._tbtcnt = 150; towner[t]._tVar1 = p; - InitQTextMsg(QUEST_INFRA5); + InitQTextMsg(TEXT_INFRA5); towner[t]._tMsgSaid = TRUE; } - if (quests[QTYPE_INFRA]._qvar2 == 1 && PlrHasItem(p, IDI_ROCK, i) != NULL && !towner[t]._tMsgSaid) { - quests[QTYPE_INFRA]._qactive = 3; - quests[QTYPE_INFRA]._qvar2 = 2; - quests[QTYPE_INFRA]._qvar1 = 2; + if (quests[Q_ROCK]._qvar2 == 1 && PlrHasItem(p, IDI_ROCK, i) != NULL && !towner[t]._tMsgSaid) { + quests[Q_ROCK]._qactive = QUEST_DONE; + quests[Q_ROCK]._qvar2 = 2; + quests[Q_ROCK]._qvar1 = 2; RemoveInvItem(p, i); CreateItem(UITEM_INFRARING, towner[t]._tx, towner[t]._ty + 1); towner[t]._tbtcnt = 150; towner[t]._tVar1 = p; - InitQTextMsg(QUEST_INFRA7); + InitQTextMsg(TEXT_INFRA7); towner[t]._tMsgSaid = TRUE; } } - if (plr[p]._pLvlVisited[9] && quests[QTYPE_ANVIL]._qactive != 0) { - if ((quests[QTYPE_ANVIL]._qactive == 1 || quests[QTYPE_ANVIL]._qactive == 2) && quests[QTYPE_ANVIL]._qvar2 == 0 && !towner[t]._tMsgSaid) { - if (quests[QTYPE_INFRA]._qvar2 == 2 || quests[QTYPE_INFRA]._qactive == 2 && quests[QTYPE_INFRA]._qvar2 == 1) { - quests[QTYPE_ANVIL]._qvar2 = 1; - quests[QTYPE_ANVIL]._qlog = TRUE; - if (quests[QTYPE_ANVIL]._qactive == 1) { - quests[QTYPE_ANVIL]._qactive = 2; - quests[QTYPE_ANVIL]._qvar1 = 1; + if (plr[p]._pLvlVisited[9] && quests[Q_ANVIL]._qactive != QUEST_NOTAVAIL) { + if ((quests[Q_ANVIL]._qactive == QUEST_INIT || quests[Q_ANVIL]._qactive == QUEST_ACTIVE) && quests[Q_ANVIL]._qvar2 == 0 && !towner[t]._tMsgSaid) { + if (quests[Q_ROCK]._qvar2 == 2 || quests[Q_ROCK]._qactive == QUEST_ACTIVE && quests[Q_ROCK]._qvar2 == 1) { + quests[Q_ANVIL]._qvar2 = 1; + quests[Q_ANVIL]._qlog = TRUE; + if (quests[Q_ANVIL]._qactive == QUEST_INIT) { + quests[Q_ANVIL]._qactive = QUEST_ACTIVE; + quests[Q_ANVIL]._qvar1 = 1; } towner[t]._tbtcnt = 150; towner[t]._tVar1 = p; - InitQTextMsg(QUEST_ANVIL5); + InitQTextMsg(TEXT_ANVIL5); towner[t]._tMsgSaid = TRUE; } } - if (quests[QTYPE_ANVIL]._qvar2 == 1 && PlrHasItem(p, IDI_ANVIL, i) != NULL) { + if (quests[Q_ANVIL]._qvar2 == 1 && PlrHasItem(p, IDI_ANVIL, i) != NULL) { if (!towner[t]._tMsgSaid) { - quests[QTYPE_ANVIL]._qactive = 3; - quests[QTYPE_ANVIL]._qvar2 = 2; - quests[QTYPE_ANVIL]._qvar1 = 2; + quests[Q_ANVIL]._qactive = QUEST_DONE; + quests[Q_ANVIL]._qvar2 = 2; + quests[Q_ANVIL]._qvar1 = 2; RemoveInvItem(p, i); CreateItem(UITEM_GRISWOLD, towner[t]._tx, towner[t]._ty + 1); towner[t]._tbtcnt = 150; towner[t]._tVar1 = p; - InitQTextMsg(QUEST_ANVIL7); + InitQTextMsg(TEXT_ANVIL7); towner[t]._tMsgSaid = TRUE; } } } } if (!qtextflag) { - TownerTalk(QUEST_GRISWOLD1, t); + TownerTalk(TEXT_GRISWOLD1, t); if (storeflag) { StartStore(STORE_SMITH); } } } else if (t == GetActiveTowner(TOWN_WITCH)) { - if (quests[QTYPE_BLKM]._qactive == 1 && PlrHasItem(p, IDI_FUNGALTM, i) != NULL) { + if (quests[Q_MUSHROOM]._qactive == QUEST_INIT && PlrHasItem(p, IDI_FUNGALTM, i) != NULL) { RemoveInvItem(p, i); - quests[QTYPE_BLKM]._qactive = 2; - quests[QTYPE_BLKM]._qlog = TRUE; - quests[QTYPE_BLKM]._qvar1 = 2; + quests[Q_MUSHROOM]._qactive = QUEST_ACTIVE; + quests[Q_MUSHROOM]._qlog = TRUE; + quests[Q_MUSHROOM]._qvar1 = 2; towner[t]._tbtcnt = 150; towner[t]._tVar1 = p; - InitQTextMsg(QUEST_MUSH8); + InitQTextMsg(TEXT_MUSH8); towner[t]._tMsgSaid = TRUE; - } else if (quests[QTYPE_BLKM]._qactive == 2) { - if (quests[QTYPE_BLKM]._qvar1 >= 2 && quests[QTYPE_BLKM]._qvar1 <= 4) { + } else if (quests[Q_MUSHROOM]._qactive == QUEST_ACTIVE) { + if (quests[Q_MUSHROOM]._qvar1 >= 2 && quests[Q_MUSHROOM]._qvar1 <= 4) { if (PlrHasItem(p, IDI_MUSHROOM, i) != NULL) { RemoveInvItem(p, i); - quests[QTYPE_BLKM]._qvar1 = 5; - Qtalklist[TOWN_HEALER]._qblkm = QUEST_MUSH3; + quests[Q_MUSHROOM]._qvar1 = 5; + Qtalklist[TOWN_HEALER]._qblkm = TEXT_MUSH3; Qtalklist[TOWN_WITCH]._qblkm = -1; towner[t]._tbtcnt = 150; towner[t]._tVar1 = p; - quests[QTYPE_BLKM]._qmsg = QUEST_MUSH10; - InitQTextMsg(QUEST_MUSH10); + quests[Q_MUSHROOM]._qmsg = TEXT_MUSH10; + InitQTextMsg(TEXT_MUSH10); towner[t]._tMsgSaid = TRUE; - } else if (quests[QTYPE_BLKM]._qmsg != QUEST_MUSH9) { + } else if (quests[Q_MUSHROOM]._qmsg != TEXT_MUSH9) { towner[t]._tbtcnt = 150; towner[t]._tVar1 = p; - quests[QTYPE_BLKM]._qmsg = QUEST_MUSH9; - InitQTextMsg(QUEST_MUSH9); + quests[Q_MUSHROOM]._qmsg = TEXT_MUSH9; + InitQTextMsg(TEXT_MUSH9); towner[t]._tMsgSaid = TRUE; } } else { @@ -811,35 +811,35 @@ void TalkToTowner(int p, int t) if (Item != NULL) { towner[t]._tbtcnt = 150; towner[t]._tVar1 = p; - InitQTextMsg(QUEST_MUSH12); - quests[QTYPE_BLKM]._qactive = 3; + InitQTextMsg(TEXT_MUSH12); + quests[Q_MUSHROOM]._qactive = QUEST_DONE; towner[t]._tMsgSaid = TRUE; AllItemsList[Item->IDidx].iUsable = TRUE; - } else if (PlrHasItem(p, IDI_BRAIN, i) != NULL && quests[QTYPE_BLKM]._qvar2 != QUEST_MUSH11) { + } else if (PlrHasItem(p, IDI_BRAIN, i) != NULL && quests[Q_MUSHROOM]._qvar2 != TEXT_MUSH11) { towner[t]._tbtcnt = 150; towner[t]._tVar1 = p; - quests[QTYPE_BLKM]._qvar2 = QUEST_MUSH11; - InitQTextMsg(QUEST_MUSH11); + quests[Q_MUSHROOM]._qvar2 = TEXT_MUSH11; + InitQTextMsg(TEXT_MUSH11); towner[t]._tMsgSaid = TRUE; } } } if (!qtextflag) { - TownerTalk(QUEST_ADRIA1, t); + TownerTalk(TEXT_ADRIA1, t); if (storeflag) { StartStore(STORE_WITCH); } } } else if (t == GetActiveTowner(TOWN_BMAID)) { if (!qtextflag) { - TownerTalk(QUEST_GILLIAN1, t); + TownerTalk(TEXT_GILLIAN1, t); if (storeflag) { StartStore(STORE_BARMAID); } } } else if (t == GetActiveTowner(TOWN_DRUNK)) { if (!qtextflag) { - TownerTalk(QUEST_FARNHAM1, t); + TownerTalk(TEXT_FARNHAM1, t); if (storeflag) { StartStore(STORE_DRUNK); } @@ -847,86 +847,86 @@ void TalkToTowner(int p, int t) } else if (t == GetActiveTowner(TOWN_HEALER)) { if (gbMaxPlayers == 1) { if (plr[p]._pLvlVisited[1] && !towner[t]._tMsgSaid) { - if (quests[QTYPE_PW]._qactive == 1) { - quests[QTYPE_PW]._qactive = 2; - quests[QTYPE_PW]._qlog = TRUE; - quests[QTYPE_PW]._qmsg = QUEST_POISON3; - quests[QTYPE_PW]._qvar1 = 1; + if (quests[Q_PWATER]._qactive == QUEST_INIT) { + quests[Q_PWATER]._qactive = QUEST_ACTIVE; + quests[Q_PWATER]._qlog = TRUE; + quests[Q_PWATER]._qmsg = TEXT_POISON3; + quests[Q_PWATER]._qvar1 = 1; towner[t]._tbtcnt = 150; towner[t]._tVar1 = p; - InitQTextMsg(QUEST_POISON3); + InitQTextMsg(TEXT_POISON3); towner[t]._tMsgSaid = TRUE; - } else if (quests[QTYPE_PW]._qactive == 3 && quests[QTYPE_PW]._qvar1 != 2) { - quests[QTYPE_PW]._qvar1 = 2; + } else if (quests[Q_PWATER]._qactive == QUEST_DONE && quests[Q_PWATER]._qvar1 != 2) { + quests[Q_PWATER]._qvar1 = 2; towner[t]._tbtcnt = 150; towner[t]._tVar1 = p; - InitQTextMsg(QUEST_POISON5); + InitQTextMsg(TEXT_POISON5); CreateItem(UITEM_TRING, towner[t]._tx, towner[t]._ty + 1); towner[t]._tMsgSaid = TRUE; } } - if (quests[QTYPE_BLKM]._qactive == 2 && quests[QTYPE_BLKM]._qmsg == QUEST_MUSH10 && PlrHasItem(p, IDI_BRAIN, i) != NULL) { + if (quests[Q_MUSHROOM]._qactive == QUEST_ACTIVE && quests[Q_MUSHROOM]._qmsg == TEXT_MUSH10 && PlrHasItem(p, IDI_BRAIN, i) != NULL) { RemoveInvItem(p, i); SpawnQuestItem(IDI_SPECELIX, towner[t]._tx, towner[t]._ty + 1, 0, 0); - InitQTextMsg(QUEST_MUSH4); - quests[QTYPE_BLKM]._qvar1 = 7; + InitQTextMsg(TEXT_MUSH4); + quests[Q_MUSHROOM]._qvar1 = 7; Qtalklist[TOWN_HEALER]._qblkm = -1; } } if (!qtextflag) { - TownerTalk(QUEST_PEPIN1, t); + TownerTalk(TEXT_PEPIN1, t); if (storeflag) { StartStore(STORE_HEALER); } } } else if (t == GetActiveTowner(TOWN_PEGBOY)) { if (!qtextflag) { - TownerTalk(QUEST_WIRT1, t); + TownerTalk(TEXT_WIRT1, t); if (storeflag) { StartStore(STORE_BOY); } } } else if (t == GetActiveTowner(TOWN_STORY)) { if (gbMaxPlayers == 1) { - if (quests[QTYPE_VB]._qactive == 1 && PlrHasItem(p, IDI_LAZSTAFF, i) != NULL) { + if (quests[Q_BETRAYER]._qactive == QUEST_INIT && PlrHasItem(p, IDI_LAZSTAFF, i) != NULL) { RemoveInvItem(p, i); - quests[QTYPE_VB]._qvar1 = 2; + quests[Q_BETRAYER]._qvar1 = 2; towner[t]._tbtcnt = 150; towner[t]._tVar1 = p; - InitQTextMsg(QUEST_VILE1); - quests[QTYPE_VB]._qactive = 2; - quests[QTYPE_VB]._qlog = TRUE; + InitQTextMsg(TEXT_VILE1); + quests[Q_BETRAYER]._qactive = QUEST_ACTIVE; + quests[Q_BETRAYER]._qlog = TRUE; towner[t]._tMsgSaid = TRUE; - } else if (quests[QTYPE_VB]._qactive == 3 && quests[QTYPE_VB]._qvar1 == 7) { - quests[QTYPE_VB]._qvar1 = 8; + } else if (quests[Q_BETRAYER]._qactive == QUEST_DONE && quests[Q_BETRAYER]._qvar1 == 7) { + quests[Q_BETRAYER]._qvar1 = 8; towner[t]._tbtcnt = 150; towner[t]._tVar1 = p; - InitQTextMsg(QUEST_VILE3); - quests[QTYPE_MOD]._qlog = TRUE; + InitQTextMsg(TEXT_VILE3); + quests[Q_DIABLO]._qlog = TRUE; towner[t]._tMsgSaid = TRUE; } } if (gbMaxPlayers != 1) { - if (quests[QTYPE_VB]._qactive == 2 && !quests[QTYPE_VB]._qlog) { + if (quests[Q_BETRAYER]._qactive == QUEST_ACTIVE && !quests[Q_BETRAYER]._qlog) { towner[t]._tbtcnt = 150; towner[t]._tVar1 = p; - InitQTextMsg(QUEST_VILE1); + InitQTextMsg(TEXT_VILE1); towner[t]._tMsgSaid = TRUE; - quests[QTYPE_VB]._qlog = TRUE; - NetSendCmdQuest(TRUE, QTYPE_VB); - } else if (quests[QTYPE_VB]._qactive == 3 && quests[QTYPE_VB]._qvar1 == 7) { - quests[QTYPE_VB]._qvar1 = 8; + quests[Q_BETRAYER]._qlog = TRUE; + NetSendCmdQuest(TRUE, Q_BETRAYER); + } else if (quests[Q_BETRAYER]._qactive == QUEST_DONE && quests[Q_BETRAYER]._qvar1 == 7) { + quests[Q_BETRAYER]._qvar1 = 8; towner[t]._tbtcnt = 150; towner[t]._tVar1 = p; - InitQTextMsg(QUEST_VILE3); + InitQTextMsg(TEXT_VILE3); towner[t]._tMsgSaid = TRUE; - NetSendCmdQuest(TRUE, QTYPE_VB); - quests[QTYPE_MOD]._qlog = TRUE; - NetSendCmdQuest(TRUE, QTYPE_MOD); + NetSendCmdQuest(TRUE, Q_BETRAYER); + quests[Q_DIABLO]._qlog = TRUE; + NetSendCmdQuest(TRUE, Q_DIABLO); } } if (!qtextflag) { - TownerTalk(QUEST_STORY1, t); + TownerTalk(TEXT_STORY1, t); if (storeflag) { StartStore(STORE_STORY); } diff --git a/Source/trigs.cpp b/Source/trigs.cpp index 04447c0b1..c005a371d 100644 --- a/Source/trigs.cpp +++ b/Source/trigs.cpp @@ -189,7 +189,7 @@ void InitL2Triggers() numtrigs = 0; for (j = 0; j < MAXDUNY; j++) { for (i = 0; i < MAXDUNX; i++) { - if (dPiece[i][j] == 267 && (i != quests[QTYPE_BONE]._qtx || j != quests[QTYPE_BONE]._qty)) { + if (dPiece[i][j] == 267 && (i != quests[Q_SCHAMB]._qtx || j != quests[Q_SCHAMB]._qty)) { trigs[numtrigs]._tx = i; trigs[numtrigs]._ty = j; trigs[numtrigs]._tmsg = WM_DIABPREVLVL; @@ -280,7 +280,7 @@ void InitL4Triggers() for (j = 0; j < MAXDUNY; j++) { for (i = 0; i < MAXDUNX; i++) { - if (dPiece[i][j] == 370 && quests[QTYPE_VB]._qactive == 3) { + if (dPiece[i][j] == 370 && quests[Q_BETRAYER]._qactive == QUEST_DONE) { trigs[numtrigs]._tx = i; trigs[numtrigs]._ty = j; trigs[numtrigs]._tmsg = WM_DIABNEXTLVL; @@ -612,7 +612,7 @@ BOOL ForceSKingTrig() for (i = 0; L1UpList[i] != -1; i++) { if (dPiece[cursmx][cursmy] == L1UpList[i]) { - sprintf(infostr, "Back to Level %i", quests[QTYPE_KING]._qlevel); + sprintf(infostr, "Back to Level %i", quests[Q_SKELKING]._qlevel); cursmx = trigs[0]._tx; cursmy = trigs[0]._ty; @@ -629,7 +629,7 @@ BOOL ForceSChambTrig() for (i = 0; L2DownList[i] != -1; i++) { if (dPiece[cursmx][cursmy] == L2DownList[i]) { - sprintf(infostr, "Back to Level %i", quests[QTYPE_BONE]._qlevel); + sprintf(infostr, "Back to Level %i", quests[Q_SCHAMB]._qlevel); cursmx = trigs[0]._tx; cursmy = trigs[0]._ty; @@ -646,7 +646,7 @@ BOOL ForcePWaterTrig() for (i = 0; L3DownList[i] != -1; i++) { if (dPiece[cursmx][cursmy] == L3DownList[i]) { - sprintf(infostr, "Back to Level %i", quests[QTYPE_PW]._qlevel); + sprintf(infostr, "Back to Level %i", quests[Q_PWATER]._qlevel); cursmx = trigs[0]._tx; cursmy = trigs[0]._ty; diff --git a/comparer-config/diablo.toml b/comparer-config/diablo.toml index 0ea605162..5a3b9c37e 100644 --- a/comparer-config/diablo.toml +++ b/comparer-config/diablo.toml @@ -5243,7 +5243,7 @@ addr = 0x43BD19 size = 0xD2 [[func]] -name = "msg_process_net_packets" +name = "run_delta_info" addr = 0x43BDEB size = 0x22 @@ -5438,7 +5438,7 @@ addr = 0x43D064 size = 0x39 [[func]] -name = "RemovePlrPortal" +name = "delta_close_portal" addr = 0x43D09D size = 0x1F diff --git a/comparer-config/spawn.toml b/comparer-config/spawn.toml index 7d0685efb..ae5877e23 100644 --- a/comparer-config/spawn.toml +++ b/comparer-config/spawn.toml @@ -4653,7 +4653,7 @@ addr = 0x432327 size = 0xD2 [[func]] -name = "msg_process_net_packets" +name = "run_delta_info" addr = 0x4323F9 size = 0x22 @@ -4848,7 +4848,7 @@ addr = 0x433672 size = 0x39 [[func]] -name = "RemovePlrPortal" +name = "delta_close_portal" addr = 0x4336AB size = 0x1F diff --git a/enums.h b/enums.h index 257cb5325..0ecfd684b 100644 --- a/enums.h +++ b/enums.h @@ -1544,265 +1544,265 @@ typedef enum missile_resistance { } missile_resistance; typedef enum _speech_id { - QUEST_KING1 = 0x0, - QUEST_KING2 = 0x1, - QUEST_KING3 = 0x2, - QUEST_KING4 = 0x3, - QUEST_KING5 = 0x4, - QUEST_KING6 = 0x5, - QUEST_KING7 = 0x6, - QUEST_KING8 = 0x7, - QUEST_KING9 = 0x8, - QUEST_KING10 = 0x9, - QUEST_KING11 = 0xA, - QUEST_BANNER1 = 0xB, - QUEST_BANNER2 = 0xC, - QUEST_BANNER3 = 0xD, - QUEST_BANNER4 = 0xE, - QUEST_BANNER5 = 0xF, - QUEST_BANNER6 = 0x10, - QUEST_BANNER7 = 0x11, - QUEST_BANNER8 = 0x12, - QUEST_BANNER9 = 0x13, - QUEST_BANNER10 = 0x14, - QUEST_BANNER11 = 0x15, - QUEST_BANNER12 = 0x16, - QUEST_VILE1 = 0x17, - QUEST_VILE2 = 0x18, - QUEST_VILE3 = 0x19, - QUEST_VILE4 = 0x1A, - QUEST_VILE5 = 0x1B, - QUEST_VILE6 = 0x1C, - QUEST_VILE7 = 0x1D, - QUEST_VILE8 = 0x1E, - QUEST_VILE9 = 0x1F, - QUEST_VILE10 = 0x20, - QUEST_VILE11 = 0x21, - QUEST_VILE12 = 0x22, - QUEST_VILE13 = 0x23, - QUEST_VILE14 = 0x24, - QUEST_POISON1 = 0x25, - QUEST_POISON2 = 0x26, - QUEST_POISON3 = 0x27, - QUEST_POISON4 = 0x28, - QUEST_POISON5 = 0x29, - QUEST_POISON6 = 0x2A, - QUEST_POISON7 = 0x2B, - QUEST_POISON8 = 0x2C, - QUEST_POISON9 = 0x2D, - QUEST_POISON10 = 0x2E, - QUEST_BONE1 = 0x2F, - QUEST_BONE2 = 0x30, - QUEST_BONE3 = 0x31, - QUEST_BONE4 = 0x32, - QUEST_BONE5 = 0x33, - QUEST_BONE6 = 0x34, - QUEST_BONE7 = 0x35, - QUEST_BONE8 = 0x36, - QUEST_BUTCH1 = 0x37, - QUEST_BUTCH2 = 0x38, - QUEST_BUTCH3 = 0x39, - QUEST_BUTCH4 = 0x3A, - QUEST_BUTCH5 = 0x3B, - QUEST_BUTCH6 = 0x3C, - QUEST_BUTCH7 = 0x3D, - QUEST_BUTCH8 = 0x3E, - QUEST_BUTCH9 = 0x3F, - QUEST_BUTCH10 = 0x40, - QUEST_BLIND1 = 0x41, - QUEST_BLIND2 = 0x42, - QUEST_BLIND3 = 0x43, - QUEST_BLIND4 = 0x44, - QUEST_BLIND5 = 0x45, - QUEST_BLIND6 = 0x46, - QUEST_BLIND7 = 0x47, - QUEST_BLIND8 = 0x48, - QUEST_VEIL1 = 0x49, - QUEST_VEIL2 = 0x4A, - QUEST_VEIL3 = 0x4B, - QUEST_VEIL4 = 0x4C, - QUEST_VEIL5 = 0x4D, - QUEST_VEIL6 = 0x4E, - QUEST_VEIL7 = 0x4F, - QUEST_VEIL8 = 0x50, - QUEST_VEIL9 = 0x51, - QUEST_VEIL10 = 0x52, - QUEST_VEIL11 = 0x53, - QUEST_ANVIL1 = 0x54, - QUEST_ANVIL2 = 0x55, - QUEST_ANVIL3 = 0x56, - QUEST_ANVIL4 = 0x57, - QUEST_ANVIL5 = 0x58, - QUEST_ANVIL6 = 0x59, - QUEST_ANVIL7 = 0x5A, - QUEST_ANVIL8 = 0x5B, - QUEST_ANVIL9 = 0x5C, - QUEST_ANVIL10 = 0x5D, - QUEST_BLOOD1 = 0x5E, - QUEST_BLOOD2 = 0x5F, - QUEST_BLOOD3 = 0x60, - QUEST_BLOOD4 = 0x61, - QUEST_BLOOD5 = 0x62, - QUEST_BLOOD6 = 0x63, - QUEST_BLOOD7 = 0x64, - QUEST_BLOOD8 = 0x65, - QUEST_WARLRD1 = 0x66, - QUEST_WARLRD2 = 0x67, - QUEST_WARLRD3 = 0x68, - QUEST_WARLRD4 = 0x69, - QUEST_WARLRD5 = 0x6A, - QUEST_WARLRD6 = 0x6B, - QUEST_WARLRD7 = 0x6C, - QUEST_WARLRD8 = 0x6D, - QUEST_WARLRD9 = 0x6E, - QUEST_INFRA1 = 0x6F, - QUEST_INFRA2 = 0x70, - QUEST_INFRA3 = 0x71, - QUEST_INFRA4 = 0x72, - QUEST_INFRA5 = 0x73, - QUEST_INFRA6 = 0x74, - QUEST_INFRA7 = 0x75, - QUEST_INFRA8 = 0x76, - QUEST_INFRA9 = 0x77, - QUEST_INFRA10 = 0x78, - QUEST_MUSH1 = 0x79, - QUEST_MUSH2 = 0x7A, - QUEST_MUSH3 = 0x7B, - QUEST_MUSH4 = 0x7C, - QUEST_MUSH5 = 0x7D, - QUEST_MUSH6 = 0x7E, - QUEST_MUSH7 = 0x7F, - QUEST_MUSH8 = 0x80, - QUEST_MUSH9 = 0x81, - QUEST_MUSH10 = 0x82, - QUEST_MUSH11 = 0x83, - QUEST_MUSH12 = 0x84, - QUEST_MUSH13 = 0x85, - QUEST_DOOM1 = 0x86, - QUEST_DOOM2 = 0x87, - QUEST_DOOM3 = 0x88, - QUEST_DOOM4 = 0x89, - QUEST_DOOM5 = 0x8A, - QUEST_DOOM6 = 0x8B, - QUEST_DOOM7 = 0x8C, - QUEST_DOOM8 = 0x8D, - QUEST_DOOM9 = 0x8E, - QUEST_DOOM10 = 0x8F, - QUEST_GARBUD1 = 0x90, - QUEST_GARBUD2 = 0x91, - QUEST_GARBUD3 = 0x92, - QUEST_GARBUD4 = 0x93, - QUEST_ZHAR1 = 0x94, - QUEST_ZHAR2 = 0x95, - QUEST_STORY1 = 0x96, - QUEST_STORY2 = 0x97, - QUEST_STORY3 = 0x98, - QUEST_STORY4 = 0x99, - QUEST_STORY5 = 0x9A, - QUEST_STORY6 = 0x9B, - QUEST_STORY7 = 0x9C, - QUEST_STORY9 = 0x9D, - QUEST_STORY10 = 0x9E, - QUEST_STORY11 = 0x9F, - QUEST_OGDEN1 = 0xA0, - QUEST_OGDEN2 = 0xA1, - QUEST_OGDEN3 = 0xA2, - QUEST_OGDEN4 = 0xA3, - QUEST_OGDEN5 = 0xA4, - QUEST_OGDEN6 = 0xA5, - QUEST_OGDEN8 = 0xA6, - QUEST_OGDEN9 = 0xA7, - QUEST_OGDEN10 = 0xA8, - QUEST_PEPIN1 = 0xA9, - QUEST_PEPIN2 = 0xAA, - QUEST_PEPIN3 = 0xAB, - QUEST_PEPIN4 = 0xAC, - QUEST_PEPIN5 = 0xAD, - QUEST_PEPIN6 = 0xAE, - QUEST_PEPIN7 = 0xAF, - QUEST_PEPIN9 = 0xB0, - QUEST_PEPIN10 = 0xB1, - QUEST_PEPIN11 = 0xB2, - QUEST_GILLIAN1 = 0xB3, - QUEST_GILLIAN2 = 0xB4, - QUEST_GILLIAN3 = 0xB5, - QUEST_GILLIAN4 = 0xB6, - QUEST_GILLIAN5 = 0xB7, - QUEST_GILLIAN6 = 0xB8, - QUEST_GILLIAN7 = 0xB9, - QUEST_GILLIAN9 = 0xBA, - QUEST_GILLIAN10 = 0xBB, - QUEST_GRISWOLD1 = 0xBC, - QUEST_GRISWOLD2 = 0xBD, - QUEST_GRISWOLD3 = 0xBE, - QUEST_GRISWOLD4 = 0xBF, - QUEST_GRISWOLD5 = 0xC0, - QUEST_GRISWOLD6 = 0xC1, - QUEST_GRISWOLD7 = 0xC2, - QUEST_GRISWOLD8 = 0xC3, - QUEST_GRISWOLD9 = 0xC4, - QUEST_GRISWOLD10 = 0xC5, - QUEST_GRISWOLD12 = 0xC6, - QUEST_GRISWOLD13 = 0xC7, - QUEST_FARNHAM1 = 0xC8, - QUEST_FARNHAM2 = 0xC9, - QUEST_FARNHAM3 = 0xCA, - QUEST_FARNHAM4 = 0xCB, - QUEST_FARNHAM5 = 0xCC, - QUEST_FARNHAM6 = 0xCD, - QUEST_FARNHAM8 = 0xCE, - QUEST_FARNHAM9 = 0xCF, - QUEST_FARNHAM10 = 0xD0, - QUEST_FARNHAM11 = 0xD1, - QUEST_FARNHAM12 = 0xD2, - QUEST_FARNHAM13 = 0xD3, - QUEST_ADRIA1 = 0xD4, - QUEST_ADRIA2 = 0xD5, - QUEST_ADRIA3 = 0xD6, - QUEST_ADRIA4 = 0xD7, - QUEST_ADRIA5 = 0xD8, - QUEST_ADRIA6 = 0xD9, - QUEST_ADRIA7 = 0xDA, - QUEST_ADRIA8 = 0xDB, - QUEST_ADRIA9 = 0xDC, - QUEST_ADRIA10 = 0xDD, - QUEST_ADRIA12 = 0xDE, - QUEST_ADRIA13 = 0xDF, - QUEST_WIRT1 = 0xE0, - QUEST_WIRT2 = 0xE1, - QUEST_WIRT3 = 0xE2, - QUEST_WIRT4 = 0xE3, - QUEST_WIRT5 = 0xE4, - QUEST_WIRT6 = 0xE5, - QUEST_WIRT7 = 0xE6, - QUEST_WIRT8 = 0xE7, - QUEST_WIRT9 = 0xE8, - QUEST_WIRT11 = 0xE9, - QUEST_WIRT12 = 0xEA, - QUEST_BONER = 0xEB, - QUEST_BLOODY = 0xEC, - QUEST_BLINDING = 0xED, - QUEST_BLOODWAR = 0xEE, - QUEST_MBONER = 0xEF, - QUEST_MBLOODY = 0xF0, - QUEST_MBLINDING = 0xF1, - QUEST_MBLOODWAR = 0xF2, - QUEST_RBONER = 0xF3, - QUEST_RBLOODY = 0xF4, - QUEST_RBLINDING = 0xF5, - QUEST_RBLOODWAR = 0xF6, - QUEST_COW1 = 0xF7, - QUEST_COW2 = 0xF8, - QUEST_BOOK11 = 0xF9, - QUEST_BOOK12 = 0xFA, - QUEST_BOOK13 = 0xFB, - QUEST_BOOK21 = 0xFC, - QUEST_BOOK22 = 0xFD, - QUEST_BOOK23 = 0xFE, - QUEST_BOOK31 = 0xFF, - QUEST_BOOK32 = 0x100, - QUEST_BOOK33 = 0x101, - QUEST_INTRO = 0x102 + TEXT_KING1 = 0x0, + TEXT_KING2 = 0x1, + TEXT_KING3 = 0x2, + TEXT_KING4 = 0x3, + TEXT_KING5 = 0x4, + TEXT_KING6 = 0x5, + TEXT_KING7 = 0x6, + TEXT_KING8 = 0x7, + TEXT_KING9 = 0x8, + TEXT_KING10 = 0x9, + TEXT_KING11 = 0xA, + TEXT_BANNER1 = 0xB, + TEXT_BANNER2 = 0xC, + TEXT_BANNER3 = 0xD, + TEXT_BANNER4 = 0xE, + TEXT_BANNER5 = 0xF, + TEXT_BANNER6 = 0x10, + TEXT_BANNER7 = 0x11, + TEXT_BANNER8 = 0x12, + TEXT_BANNER9 = 0x13, + TEXT_BANNER10 = 0x14, + TEXT_BANNER11 = 0x15, + TEXT_BANNER12 = 0x16, + TEXT_VILE1 = 0x17, + TEXT_VILE2 = 0x18, + TEXT_VILE3 = 0x19, + TEXT_VILE4 = 0x1A, + TEXT_VILE5 = 0x1B, + TEXT_VILE6 = 0x1C, + TEXT_VILE7 = 0x1D, + TEXT_VILE8 = 0x1E, + TEXT_VILE9 = 0x1F, + TEXT_VILE10 = 0x20, + TEXT_VILE11 = 0x21, + TEXT_VILE12 = 0x22, + TEXT_VILE13 = 0x23, + TEXT_VILE14 = 0x24, + TEXT_POISON1 = 0x25, + TEXT_POISON2 = 0x26, + TEXT_POISON3 = 0x27, + TEXT_POISON4 = 0x28, + TEXT_POISON5 = 0x29, + TEXT_POISON6 = 0x2A, + TEXT_POISON7 = 0x2B, + TEXT_POISON8 = 0x2C, + TEXT_POISON9 = 0x2D, + TEXT_POISON10 = 0x2E, + TEXT_BONE1 = 0x2F, + TEXT_BONE2 = 0x30, + TEXT_BONE3 = 0x31, + TEXT_BONE4 = 0x32, + TEXT_BONE5 = 0x33, + TEXT_BONE6 = 0x34, + TEXT_BONE7 = 0x35, + TEXT_BONE8 = 0x36, + TEXT_BUTCH1 = 0x37, + TEXT_BUTCH2 = 0x38, + TEXT_BUTCH3 = 0x39, + TEXT_BUTCH4 = 0x3A, + TEXT_BUTCH5 = 0x3B, + TEXT_BUTCH6 = 0x3C, + TEXT_BUTCH7 = 0x3D, + TEXT_BUTCH8 = 0x3E, + TEXT_BUTCH9 = 0x3F, + TEXT_BUTCH10 = 0x40, + TEXT_BLIND1 = 0x41, + TEXT_BLIND2 = 0x42, + TEXT_BLIND3 = 0x43, + TEXT_BLIND4 = 0x44, + TEXT_BLIND5 = 0x45, + TEXT_BLIND6 = 0x46, + TEXT_BLIND7 = 0x47, + TEXT_BLIND8 = 0x48, + TEXT_VEIL1 = 0x49, + TEXT_VEIL2 = 0x4A, + TEXT_VEIL3 = 0x4B, + TEXT_VEIL4 = 0x4C, + TEXT_VEIL5 = 0x4D, + TEXT_VEIL6 = 0x4E, + TEXT_VEIL7 = 0x4F, + TEXT_VEIL8 = 0x50, + TEXT_VEIL9 = 0x51, + TEXT_VEIL10 = 0x52, + TEXT_VEIL11 = 0x53, + TEXT_ANVIL1 = 0x54, + TEXT_ANVIL2 = 0x55, + TEXT_ANVIL3 = 0x56, + TEXT_ANVIL4 = 0x57, + TEXT_ANVIL5 = 0x58, + TEXT_ANVIL6 = 0x59, + TEXT_ANVIL7 = 0x5A, + TEXT_ANVIL8 = 0x5B, + TEXT_ANVIL9 = 0x5C, + TEXT_ANVIL10 = 0x5D, + TEXT_BLOOD1 = 0x5E, + TEXT_BLOOD2 = 0x5F, + TEXT_BLOOD3 = 0x60, + TEXT_BLOOD4 = 0x61, + TEXT_BLOOD5 = 0x62, + TEXT_BLOOD6 = 0x63, + TEXT_BLOOD7 = 0x64, + TEXT_BLOOD8 = 0x65, + TEXT_WARLRD1 = 0x66, + TEXT_WARLRD2 = 0x67, + TEXT_WARLRD3 = 0x68, + TEXT_WARLRD4 = 0x69, + TEXT_WARLRD5 = 0x6A, + TEXT_WARLRD6 = 0x6B, + TEXT_WARLRD7 = 0x6C, + TEXT_WARLRD8 = 0x6D, + TEXT_WARLRD9 = 0x6E, + TEXT_INFRA1 = 0x6F, + TEXT_INFRA2 = 0x70, + TEXT_INFRA3 = 0x71, + TEXT_INFRA4 = 0x72, + TEXT_INFRA5 = 0x73, + TEXT_INFRA6 = 0x74, + TEXT_INFRA7 = 0x75, + TEXT_INFRA8 = 0x76, + TEXT_INFRA9 = 0x77, + TEXT_INFRA10 = 0x78, + TEXT_MUSH1 = 0x79, + TEXT_MUSH2 = 0x7A, + TEXT_MUSH3 = 0x7B, + TEXT_MUSH4 = 0x7C, + TEXT_MUSH5 = 0x7D, + TEXT_MUSH6 = 0x7E, + TEXT_MUSH7 = 0x7F, + TEXT_MUSH8 = 0x80, + TEXT_MUSH9 = 0x81, + TEXT_MUSH10 = 0x82, + TEXT_MUSH11 = 0x83, + TEXT_MUSH12 = 0x84, + TEXT_MUSH13 = 0x85, + TEXT_DOOM1 = 0x86, + TEXT_DOOM2 = 0x87, + TEXT_DOOM3 = 0x88, + TEXT_DOOM4 = 0x89, + TEXT_DOOM5 = 0x8A, + TEXT_DOOM6 = 0x8B, + TEXT_DOOM7 = 0x8C, + TEXT_DOOM8 = 0x8D, + TEXT_DOOM9 = 0x8E, + TEXT_DOOM10 = 0x8F, + TEXT_GARBUD1 = 0x90, + TEXT_GARBUD2 = 0x91, + TEXT_GARBUD3 = 0x92, + TEXT_GARBUD4 = 0x93, + TEXT_ZHAR1 = 0x94, + TEXT_ZHAR2 = 0x95, + TEXT_STORY1 = 0x96, + TEXT_STORY2 = 0x97, + TEXT_STORY3 = 0x98, + TEXT_STORY4 = 0x99, + TEXT_STORY5 = 0x9A, + TEXT_STORY6 = 0x9B, + TEXT_STORY7 = 0x9C, + TEXT_STORY9 = 0x9D, + TEXT_STORY10 = 0x9E, + TEXT_STORY11 = 0x9F, + TEXT_OGDEN1 = 0xA0, + TEXT_OGDEN2 = 0xA1, + TEXT_OGDEN3 = 0xA2, + TEXT_OGDEN4 = 0xA3, + TEXT_OGDEN5 = 0xA4, + TEXT_OGDEN6 = 0xA5, + TEXT_OGDEN8 = 0xA6, + TEXT_OGDEN9 = 0xA7, + TEXT_OGDEN10 = 0xA8, + TEXT_PEPIN1 = 0xA9, + TEXT_PEPIN2 = 0xAA, + TEXT_PEPIN3 = 0xAB, + TEXT_PEPIN4 = 0xAC, + TEXT_PEPIN5 = 0xAD, + TEXT_PEPIN6 = 0xAE, + TEXT_PEPIN7 = 0xAF, + TEXT_PEPIN9 = 0xB0, + TEXT_PEPIN10 = 0xB1, + TEXT_PEPIN11 = 0xB2, + TEXT_GILLIAN1 = 0xB3, + TEXT_GILLIAN2 = 0xB4, + TEXT_GILLIAN3 = 0xB5, + TEXT_GILLIAN4 = 0xB6, + TEXT_GILLIAN5 = 0xB7, + TEXT_GILLIAN6 = 0xB8, + TEXT_GILLIAN7 = 0xB9, + TEXT_GILLIAN9 = 0xBA, + TEXT_GILLIAN10 = 0xBB, + TEXT_GRISWOLD1 = 0xBC, + TEXT_GRISWOLD2 = 0xBD, + TEXT_GRISWOLD3 = 0xBE, + TEXT_GRISWOLD4 = 0xBF, + TEXT_GRISWOLD5 = 0xC0, + TEXT_GRISWOLD6 = 0xC1, + TEXT_GRISWOLD7 = 0xC2, + TEXT_GRISWOLD8 = 0xC3, + TEXT_GRISWOLD9 = 0xC4, + TEXT_GRISWOLD10 = 0xC5, + TEXT_GRISWOLD12 = 0xC6, + TEXT_GRISWOLD13 = 0xC7, + TEXT_FARNHAM1 = 0xC8, + TEXT_FARNHAM2 = 0xC9, + TEXT_FARNHAM3 = 0xCA, + TEXT_FARNHAM4 = 0xCB, + TEXT_FARNHAM5 = 0xCC, + TEXT_FARNHAM6 = 0xCD, + TEXT_FARNHAM8 = 0xCE, + TEXT_FARNHAM9 = 0xCF, + TEXT_FARNHAM10 = 0xD0, + TEXT_FARNHAM11 = 0xD1, + TEXT_FARNHAM12 = 0xD2, + TEXT_FARNHAM13 = 0xD3, + TEXT_ADRIA1 = 0xD4, + TEXT_ADRIA2 = 0xD5, + TEXT_ADRIA3 = 0xD6, + TEXT_ADRIA4 = 0xD7, + TEXT_ADRIA5 = 0xD8, + TEXT_ADRIA6 = 0xD9, + TEXT_ADRIA7 = 0xDA, + TEXT_ADRIA8 = 0xDB, + TEXT_ADRIA9 = 0xDC, + TEXT_ADRIA10 = 0xDD, + TEXT_ADRIA12 = 0xDE, + TEXT_ADRIA13 = 0xDF, + TEXT_WIRT1 = 0xE0, + TEXT_WIRT2 = 0xE1, + TEXT_WIRT3 = 0xE2, + TEXT_WIRT4 = 0xE3, + TEXT_WIRT5 = 0xE4, + TEXT_WIRT6 = 0xE5, + TEXT_WIRT7 = 0xE6, + TEXT_WIRT8 = 0xE7, + TEXT_WIRT9 = 0xE8, + TEXT_WIRT11 = 0xE9, + TEXT_WIRT12 = 0xEA, + TEXT_BONER = 0xEB, + TEXT_BLOODY = 0xEC, + TEXT_BLINDING = 0xED, + TEXT_BLOODWAR = 0xEE, + TEXT_MBONER = 0xEF, + TEXT_MBLOODY = 0xF0, + TEXT_MBLINDING = 0xF1, + TEXT_MBLOODWAR = 0xF2, + TEXT_RBONER = 0xF3, + TEXT_RBLOODY = 0xF4, + TEXT_RBLINDING = 0xF5, + TEXT_RBLOODWAR = 0xF6, + TEXT_COW1 = 0xF7, + TEXT_COW2 = 0xF8, + TEXT_BOOK11 = 0xF9, + TEXT_BOOK12 = 0xFA, + TEXT_BOOK13 = 0xFB, + TEXT_BOOK21 = 0xFC, + TEXT_BOOK22 = 0xFD, + TEXT_BOOK23 = 0xFE, + TEXT_BOOK31 = 0xFF, + TEXT_BOOK32 = 0x100, + TEXT_BOOK33 = 0x101, + TEXT_INTRO = 0x102 } _speech_id; typedef enum object_graphic_id { @@ -2458,7 +2458,7 @@ typedef enum item_misc_id { IMISC_RING = 0x19, IMISC_AMULET = 0x1A, IMISC_UNIQUE = 0x1B, - IMISC_HEAL_1C = 0x1C, + IMISC_MEAT = 0x1C, /* from demo/PSX */ IMISC_OILFIRST = 0x1D, IMISC_OILOF = 0x1E, /* oils are beta or hellfire only */ IMISC_OILACC = 0x1F, @@ -2493,7 +2493,7 @@ typedef enum item_type { ITYPE_GOLD = 0xB, ITYPE_RING = 0xC, ITYPE_AMULET = 0xD, - ITYPE_0E = 0xE, + ITYPE_MEAT = 0xE, /* used in demo, might be generic for 'food' */ ITYPE_NONE = -1, } item_type; @@ -2547,25 +2547,31 @@ typedef enum _setlevels { } _setlevels; typedef enum quest_id { - QTYPE_INFRA = 0x0, - QTYPE_BLKM = 0x1, - QTYPE_GARB = 0x2, - QTYPE_ZHAR = 0x3, - QTYPE_VEIL = 0x4, - QTYPE_MOD = 0x5, - QTYPE_BUTCH = 0x6, - QTYPE_BOL = 0x7, - QTYPE_BLIND = 0x8, - QTYPE_BLOOD = 0x9, - QTYPE_ANVIL = 0xA, - QTYPE_WARLRD = 0xB, - QTYPE_KING = 0xC, - QTYPE_PW = 0xD, - QTYPE_BONE = 0xE, - QTYPE_VB = 0xF, - QTYPE_INVALID = -1, + Q_ROCK = 0x0, + Q_MUSHROOM = 0x1, + Q_GARBUD = 0x2, + Q_ZHAR = 0x3, + Q_VEIL = 0x4, + Q_DIABLO = 0x5, + Q_BUTCHER = 0x6, + Q_LTBANNER = 0x7, + Q_BLIND = 0x8, + Q_BLOOD = 0x9, + Q_ANVIL = 0xA, + Q_WARLORD = 0xB, + Q_SKELKING = 0xC, + Q_PWATER = 0xD, + Q_SCHAMB = 0xE, + Q_BETRAYER = 0xF } quest_id; +typedef enum quest_state { + QUEST_NOTAVAIL = 0, + QUEST_INIT = 1, + QUEST_ACTIVE = 2, + QUEST_DONE = 3 +} quest_state; + typedef enum quest_mush_state { QS_INIT = 0, QS_TOMESPAWNED = 1,