diff --git a/Source/objects.cpp b/Source/objects.cpp index d0798370f..c4df0b366 100644 --- a/Source/objects.cpp +++ b/Source/objects.cpp @@ -371,7 +371,7 @@ void InitRndLocObj(int min, int max, _object_id objtype) && RndLocOk(xp - 1, yp + 1) && RndLocOk(xp, yp + 1) && RndLocOk(xp + 1, yp + 1)) { - AddObject(objtype, xp, yp); + AddObject(objtype, { xp, yp }); break; } } @@ -397,7 +397,7 @@ void InitRndLocBigObj(int min, int max, _object_id objtype) && RndLocOk(xp - 1, yp + 1) && RndLocOk(xp, yp + 1) && RndLocOk(xp + 1, yp + 1)) { - AddObject(objtype, xp, yp); + AddObject(objtype, { xp, yp }); break; } } @@ -428,7 +428,7 @@ void InitRndLocObj5x5(int min, int max, _object_id objtype) return; } } - AddObject(objtype, xp, yp); + AddObject(objtype, { xp, yp }); } } @@ -450,18 +450,18 @@ void AddTortures() for (int oy = 0; oy < MAXDUNY; oy++) { for (int ox = 0; ox < MAXDUNX; ox++) { if (dPiece[ox][oy] == 367) { - AddObject(OBJ_TORTURE1, ox, oy + 1); - AddObject(OBJ_TORTURE3, ox + 2, oy - 1); - AddObject(OBJ_TORTURE2, ox, oy + 3); - AddObject(OBJ_TORTURE4, ox + 4, oy - 1); - AddObject(OBJ_TORTURE5, ox, oy + 5); - AddObject(OBJ_TNUDEM1, ox + 1, oy + 3); - AddObject(OBJ_TNUDEM2, ox + 4, oy + 5); - AddObject(OBJ_TNUDEM3, ox + 2, oy); - AddObject(OBJ_TNUDEM4, ox + 3, oy + 2); - AddObject(OBJ_TNUDEW1, ox + 2, oy + 4); - AddObject(OBJ_TNUDEW2, ox + 2, oy + 1); - AddObject(OBJ_TNUDEW3, ox + 4, oy + 2); + AddObject(OBJ_TORTURE1, { ox, oy + 1 }); + AddObject(OBJ_TORTURE3, { ox + 2, oy - 1 }); + AddObject(OBJ_TORTURE2, { ox, oy + 3 }); + AddObject(OBJ_TORTURE4, { ox + 4, oy - 1 }); + AddObject(OBJ_TORTURE5, { ox, oy + 5 }); + AddObject(OBJ_TNUDEM1, { ox + 1, oy + 3 }); + AddObject(OBJ_TNUDEM2, { ox + 4, oy + 5 }); + AddObject(OBJ_TNUDEM3, { ox + 2, oy }); + AddObject(OBJ_TNUDEM4, { ox + 3, oy + 2 }); + AddObject(OBJ_TNUDEW1, { ox + 2, oy + 4 }); + AddObject(OBJ_TNUDEW2, { ox + 2, oy + 1 }); + AddObject(OBJ_TNUDEW3, { ox + 4, oy + 2 }); } } } @@ -470,10 +470,10 @@ void AddCandles() { int tx = Quests[Q_PWATER].position.x; int ty = Quests[Q_PWATER].position.y; - AddObject(OBJ_STORYCANDLE, tx - 2, ty + 1); - AddObject(OBJ_STORYCANDLE, tx + 3, ty + 1); - AddObject(OBJ_STORYCANDLE, tx - 1, ty + 2); - AddObject(OBJ_STORYCANDLE, tx + 2, ty + 2); + AddObject(OBJ_STORYCANDLE, { tx - 2, ty + 1 }); + AddObject(OBJ_STORYCANDLE, { tx + 3, ty + 1 }); + AddObject(OBJ_STORYCANDLE, { tx - 1, ty + 2 }); + AddObject(OBJ_STORYCANDLE, { tx + 2, ty + 2 }); } void AddBookLever(int x1, int y1, int x2, int y2, _speech_id msg) @@ -500,13 +500,13 @@ void AddBookLever(int x1, int y1, int x2, int y2, _speech_id msg) } if (QuestStatus(Q_BLIND)) - AddObject(OBJ_BLINDBOOK, xp, yp); + AddObject(OBJ_BLINDBOOK, { xp, yp }); if (QuestStatus(Q_WARLORD)) - AddObject(OBJ_STEELTOME, xp, yp); + AddObject(OBJ_STEELTOME, { xp, yp }); if (QuestStatus(Q_BLOOD)) { xp = 2 * setpc_x + 25; yp = 2 * setpc_y + 40; - AddObject(OBJ_BLOODBOOK, xp, yp); + AddObject(OBJ_BLOODBOOK, { xp, yp }); } int ob = dObject[xp][yp] - 1; SetObjMapRange(ob, x1, y1, x2, y2, leverid); @@ -527,7 +527,7 @@ void InitRndBarrels() yp = GenerateRnd(80) + 16; } while (!RndLocOk(xp, yp)); _object_id o = (GenerateRnd(4) != 0) ? OBJ_BARREL : OBJ_BARRELEX; - AddObject(o, xp, yp); + AddObject(o, { xp, yp }); bool found = true; /** regulates chance to stop placing barrels in current group */ int p = 0; @@ -550,7 +550,7 @@ void InitRndBarrels() } if (found) { o = (GenerateRnd(5) != 0) ? OBJ_BARREL : OBJ_BARRELEX; - AddObject(o, xp, yp); + AddObject(o, { xp, yp }); c++; } p = c / 2; @@ -564,11 +564,11 @@ void AddL1Objs(int x1, int y1, int x2, int y2) for (int i = x1; i < x2; i++) { int pn = dPiece[i][j]; if (pn == 270) - AddObject(OBJ_L1LIGHT, i, j); + AddObject(OBJ_L1LIGHT, { i, j }); if (pn == 44 || pn == 51 || pn == 214) - AddObject(OBJ_L1LDOOR, i, j); + AddObject(OBJ_L1LDOOR, { i, j }); if (pn == 46 || pn == 56) - AddObject(OBJ_L1RDOOR, i, j); + AddObject(OBJ_L1RDOOR, { i, j }); } } } @@ -579,9 +579,9 @@ void add_crypt_objs(int x1, int y1, int x2, int y2) for (int i = x1; i < x2; i++) { int pn = dPiece[i][j]; if (pn == 77) - AddObject(OBJ_L1LDOOR, i, j); + AddObject(OBJ_L1LDOOR, { i, j }); if (pn == 80) - AddObject(OBJ_L1RDOOR, i, j); + AddObject(OBJ_L1RDOOR, { i, j }); } } } @@ -592,9 +592,9 @@ void AddL2Objs(int x1, int y1, int x2, int y2) for (int i = x1; i < x2; i++) { int pn = dPiece[i][j]; if (pn == 13 || pn == 541) - AddObject(OBJ_L2LDOOR, i, j); + AddObject(OBJ_L2LDOOR, { i, j }); if (pn == 17 || pn == 542) - AddObject(OBJ_L2RDOOR, i, j); + AddObject(OBJ_L2RDOOR, { i, j }); } } } @@ -605,9 +605,9 @@ void AddL3Objs(int x1, int y1, int x2, int y2) for (int i = x1; i < x2; i++) { int pn = dPiece[i][j]; if (pn == 531) - AddObject(OBJ_L3LDOOR, i, j); + AddObject(OBJ_L3LDOOR, { i, j }); if (pn == 534) - AddObject(OBJ_L3RDOOR, i, j); + AddObject(OBJ_L3RDOOR, { i, j }); } } } @@ -626,16 +626,16 @@ void AddL2Torches() int pn = dPiece[i][j]; if (pn == 1 && GenerateRnd(3) == 0) - AddObject(OBJ_TORCHL2, i, j); + AddObject(OBJ_TORCHL2, { i, j }); if (pn == 5 && GenerateRnd(3) == 0) - AddObject(OBJ_TORCHR2, i, j); + AddObject(OBJ_TORCHR2, { i, j }); if (pn == 37 && GenerateRnd(10) == 0 && dObject[i - 1][j] == 0) - AddObject(OBJ_TORCHL, i - 1, j); + AddObject(OBJ_TORCHL, { i - 1, j }); if (pn == 41 && GenerateRnd(10) == 0 && dObject[i][j - 1] == 0) - AddObject(OBJ_TORCHR, i, j - 1); + AddObject(OBJ_TORCHR, { i, j - 1 }); } } } @@ -668,7 +668,7 @@ void AddObjTraps() if (!WallTrapLocOkK(xp, j) || i - xp <= 1) continue; - AddObject(OBJ_TRAPL, xp, j); + AddObject(OBJ_TRAPL, { xp, j }); int8_t oiTrap = dObject[xp][j] - 1; Objects[oiTrap]._oVar1 = i; Objects[oiTrap]._oVar2 = j; @@ -681,7 +681,7 @@ void AddObjTraps() if (!WallTrapLocOkK(i, yp) || j - yp <= 1) continue; - AddObject(OBJ_TRAPR, i, yp); + AddObject(OBJ_TRAPR, { i, yp }); int8_t oiTrap = dObject[i][yp] - 1; Objects[oiTrap]._oVar1 = i; Objects[oiTrap]._oVar2 = j; @@ -745,7 +745,7 @@ void LoadMapObjects(const char *path, int startx, int starty, int x1, int y1, in for (int i = 0; i < width; i++) { uint8_t objectId = SDL_SwapLE16(objectLayer[j * width + i]); if (objectId != 0) { - AddObject(ObjTypeConv[objectId], startx + 16 + i, starty + 16 + j); + AddObject(ObjTypeConv[objectId], { startx + 16 + i, starty + 16 + j }); int oi = ObjIndex(startx + 16 + i, starty + 16 + j); SetObjMapRange(oi, x1, y1, x1 + w, y1 + h, leveridx); } @@ -778,7 +778,7 @@ void LoadMapObjs(const char *path, int startx, int starty) for (int i = 0; i < width; i++) { uint8_t objectId = SDL_SwapLE16(objectLayer[j * width + i]); if (objectId != 0) { - AddObject(ObjTypeConv[objectId], startx + 16 + i, starty + 16 + j); + AddObject(ObjTypeConv[objectId], { startx + 16 + i, starty + 16 + j }); } } } @@ -817,12 +817,12 @@ void AddCryptStoryBook(int s) } } AddCryptBook(OBJ_STORYBOOK, s, xp, yp); - AddObject(OBJ_STORYCANDLE, xp - 2, yp + 1); - AddObject(OBJ_STORYCANDLE, xp - 2, yp); - AddObject(OBJ_STORYCANDLE, xp - 1, yp - 1); - AddObject(OBJ_STORYCANDLE, xp + 1, yp - 1); - AddObject(OBJ_STORYCANDLE, xp + 2, yp); - AddObject(OBJ_STORYCANDLE, xp + 2, yp + 1); + AddObject(OBJ_STORYCANDLE, { xp - 2, yp + 1 }); + AddObject(OBJ_STORYCANDLE, { xp - 2, yp }); + AddObject(OBJ_STORYCANDLE, { xp - 1, yp - 1 }); + AddObject(OBJ_STORYCANDLE, { xp + 1, yp - 1 }); + AddObject(OBJ_STORYCANDLE, { xp + 2, yp }); + AddObject(OBJ_STORYCANDLE, { xp + 2, yp + 1 }); } void AddNakrulGate() @@ -889,13 +889,13 @@ void AddStoryBooks() return; } } - AddObject(OBJ_STORYBOOK, xp, yp); - AddObject(OBJ_STORYCANDLE, xp - 2, yp + 1); - AddObject(OBJ_STORYCANDLE, xp - 2, yp); - AddObject(OBJ_STORYCANDLE, xp - 1, yp - 1); - AddObject(OBJ_STORYCANDLE, xp + 1, yp - 1); - AddObject(OBJ_STORYCANDLE, xp + 2, yp); - AddObject(OBJ_STORYCANDLE, xp + 2, yp + 1); + AddObject(OBJ_STORYBOOK, { xp, yp }); + AddObject(OBJ_STORYCANDLE, { xp - 2, yp + 1 }); + AddObject(OBJ_STORYCANDLE, { xp - 2, yp }); + AddObject(OBJ_STORYCANDLE, { xp - 1, yp - 1 }); + AddObject(OBJ_STORYCANDLE, { xp + 1, yp - 1 }); + AddObject(OBJ_STORYCANDLE, { xp + 2, yp }); + AddObject(OBJ_STORYCANDLE, { xp + 2, yp + 1 }); } void AddHookedBodies(int freq) @@ -913,13 +913,13 @@ void AddHookedBodies(int freq) if (dungeon[i][j] == 1 && dungeon[i + 1][j] == 6) { switch (GenerateRnd(3)) { case 0: - AddObject(OBJ_TORTURE1, ii + 1, jj); + AddObject(OBJ_TORTURE1, { ii + 1, jj }); break; case 1: - AddObject(OBJ_TORTURE2, ii + 1, jj); + AddObject(OBJ_TORTURE2, { ii + 1, jj }); break; case 2: - AddObject(OBJ_TORTURE5, ii + 1, jj); + AddObject(OBJ_TORTURE5, { ii + 1, jj }); break; } continue; @@ -927,10 +927,10 @@ void AddHookedBodies(int freq) if (dungeon[i][j] == 2 && dungeon[i][j + 1] == 6) { switch (GenerateRnd(2)) { case 0: - AddObject(OBJ_TORTURE3, ii, jj); + AddObject(OBJ_TORTURE3, { ii, jj }); break; case 1: - AddObject(OBJ_TORTURE4, ii, jj); + AddObject(OBJ_TORTURE4, { ii, jj }); break; } } @@ -976,16 +976,16 @@ void AddLazStand() } } } - AddObject(OBJ_LAZSTAND, xp, yp); - AddObject(OBJ_TNUDEM2, xp, yp + 2); - AddObject(OBJ_STORYCANDLE, xp + 1, yp + 2); - AddObject(OBJ_TNUDEM3, xp + 2, yp + 2); - AddObject(OBJ_TNUDEW1, xp, yp - 2); - AddObject(OBJ_STORYCANDLE, xp + 1, yp - 2); - AddObject(OBJ_TNUDEW2, xp + 2, yp - 2); - AddObject(OBJ_STORYCANDLE, xp - 1, yp - 1); - AddObject(OBJ_TNUDEW3, xp - 1, yp); - AddObject(OBJ_STORYCANDLE, xp - 1, yp + 1); + AddObject(OBJ_LAZSTAND, { xp, yp }); + AddObject(OBJ_TNUDEM2, { xp, yp + 2 }); + AddObject(OBJ_STORYCANDLE, { xp + 1, yp + 2 }); + AddObject(OBJ_TNUDEM3, { xp + 2, yp + 2 }); + AddObject(OBJ_TNUDEW1, { xp, yp - 2 }); + AddObject(OBJ_STORYCANDLE, { xp + 1, yp - 2 }); + AddObject(OBJ_TNUDEW2, { xp + 2, yp - 2 }); + AddObject(OBJ_STORYCANDLE, { xp - 1, yp - 1 }); + AddObject(OBJ_TNUDEW3, { xp - 1, yp }); + AddObject(OBJ_STORYCANDLE, { xp - 1, yp + 1 }); } void InitObjects() @@ -1022,7 +1022,7 @@ void InitObjects() if (QuestStatus(Q_PWATER)) AddCandles(); if (QuestStatus(Q_LTBANNER)) - AddObject(OBJ_SIGNCHEST, 2 * setpc_x + 26, 2 * setpc_y + 19); + AddObject(OBJ_SIGNCHEST, { 2 * setpc_x + 26, 2 * setpc_y + 19 }); InitRndLocBigObj(10, 15, OBJ_SARC); if (currlevel >= 21) add_crypt_objs(0, 0, MAXDUNX, MAXDUNY); @@ -1087,7 +1087,7 @@ void InitObjects() } Quests[Q_BLOOD]._qmsg = spId; AddBookLever(setpc_x, setpc_y + 3, setpc_x + 2, setpc_y + 7, spId); - AddObject(OBJ_PEDISTAL, 2 * setpc_x + 25, 2 * setpc_y + 32); + AddObject(OBJ_PEDISTAL, { 2 * setpc_x + 25, 2 * setpc_y + 32 }); } InitRndBarrels(); } @@ -1187,7 +1187,7 @@ void SetMapObjects(const uint16_t *dunData, int startx, int starty) for (int i = 0; i < width; i++) { uint8_t objectId = SDL_SwapLE16(objectLayer[j * width + i]); if (objectId != 0) { - AddObject(ObjTypeConv[objectId], startx + 16 + i, starty + 16 + j); + AddObject(ObjTypeConv[objectId], { startx + 16 + i, starty + 16 + j }); } } } @@ -1591,7 +1591,7 @@ void AddMushPatch() dObject[x + 1][y + 1] = -(i + 1); dObject[x + 2][y + 1] = -(i + 1); dObject[x + 1][y + 2] = -(i + 1); - AddObject(OBJ_MUSHPATCH, x + 2, y + 2); + AddObject(OBJ_MUSHPATCH, { x + 2, y + 2 }); } } @@ -1601,7 +1601,7 @@ void AddSlainHero() int y; GetRndObjLoc(5, &x, &y); - AddObject(OBJ_SLAINHERO, x + 2, y + 2); + AddObject(OBJ_SLAINHERO, { x + 2, y + 2 }); } void AddCryptBook(_object_id ot, int v2, int ox, int oy) @@ -1695,7 +1695,7 @@ void AddCryptObject(int i, int a2) Objects[i]._oVar4 = Objects[i]._oAnimFrame + 1; } -void AddObject(_object_id ot, int ox, int oy) +void AddObject(_object_id ot, Point objPos) { if (ActiveObjectCount >= MAXOBJECTS) return; @@ -1703,8 +1703,8 @@ void AddObject(_object_id ot, int ox, int oy) int oi = AvailableObjects[0]; AvailableObjects[0] = AvailableObjects[MAXOBJECTS - 1 - ActiveObjectCount]; ActiveObjects[ActiveObjectCount] = oi; - dObject[ox][oy] = oi + 1; - SetupObject(oi, { ox, oy }, ot); + dObject[objPos.x][objPos.y] = oi + 1; + SetupObject(oi, objPos, ot); switch (ot) { case OBJ_L1LIGHT: case OBJ_SKFIRE: @@ -1724,15 +1724,15 @@ void AddObject(_object_id ot, int ox, int oy) break; case OBJ_L1LDOOR: case OBJ_L1RDOOR: - AddL1Door(oi, { ox, oy }, ot); + AddL1Door(oi, objPos, ot); break; case OBJ_L2LDOOR: case OBJ_L2RDOOR: - AddL2Door(oi, { ox, oy }, ot); + AddL2Door(oi, objPos, ot); break; case OBJ_L3LDOOR: case OBJ_L3RDOOR: - AddL3Door(oi, { ox, oy }, ot); + AddL3Door(oi, objPos, ot); break; case OBJ_BOOK2R: AddSCambBook(oi); @@ -2361,7 +2361,7 @@ void RedoPlayerVision() * * @param doorPos Map tile where the door is in its closed position * @return true if the door is free to be closed, false if anything is blocking it -*/ + */ static inline bool IsDoorClear(const Point &doorPosition) { return dDead[doorPosition.x][doorPosition.y] == 0 @@ -5493,7 +5493,7 @@ void AddNakrulLeaver() break; } } - AddObject(OBJ_LEVER, UberRow + 3, UberCol - 1); + AddObject(OBJ_LEVER, { UberRow + 3, UberCol - 1 }); } bool OperateNakrulBook(int s) diff --git a/Source/objects.h b/Source/objects.h index 68a087833..11365a099 100644 --- a/Source/objects.h +++ b/Source/objects.h @@ -72,7 +72,12 @@ void AddSlainHero(); void AddCryptBook(_object_id ot, int v2, int ox, int oy); void AddCryptObject(int i, int a2); void AddNakrulBook(int a1, int a2, int a3); -void AddObject(_object_id ot, int ox, int oy); +/** + * @brief Spawns an object of the given type at the map coordinates provided + * @param objType Type specifier + * @param objPos tile coordinates +*/ +void AddObject(_object_id objType, Point objPos); void Obj_Trap(int i); void ProcessObjects(); void ObjSetMicro(Point position, int pn); diff --git a/Source/quests.cpp b/Source/quests.cpp index 164acc704..19a818ee6 100644 --- a/Source/quests.cpp +++ b/Source/quests.cpp @@ -197,7 +197,7 @@ void CheckQuests() return; if (QuestStatus(Q_BETRAYER) && gbIsMultiplayer && Quests[Q_BETRAYER]._qvar1 == 2) { - AddObject(OBJ_ALTBOY, 2 * setpc_x + 20, 2 * setpc_y + 22); + AddObject(OBJ_ALTBOY, { 2 * setpc_x + 20, 2 * setpc_y + 22 }); Quests[Q_BETRAYER]._qvar1 = 3; NetSendCmdQuest(true, Q_BETRAYER); } @@ -604,7 +604,7 @@ void ResyncMPQuests() NetSendCmdQuest(true, Q_BETRAYER); } if (QuestStatus(Q_BETRAYER)) - AddObject(OBJ_ALTBOY, 2 * setpc_x + 20, 2 * setpc_y + 22); + AddObject(OBJ_ALTBOY, { 2 * setpc_x + 20, 2 * setpc_y + 22 }); if (Quests[Q_GRAVE]._qactive == QUEST_INIT && currlevel == Quests[Q_GRAVE]._qlevel - 1) { Quests[Q_GRAVE]._qactive = QUEST_ACTIVE; NetSendCmdQuest(true, Q_GRAVE); diff --git a/Source/themes.cpp b/Source/themes.cpp index 69aaa6d0d..117f52aef 100644 --- a/Source/themes.cpp +++ b/Source/themes.cpp @@ -516,7 +516,7 @@ void Theme_Barrel(int t) if (GenerateRnd(barrnd[leveltype - 1]) != 0) { r = OBJ_BARRELEX; } - AddObject(r, xp, yp); + AddObject(r, { xp, yp }); } } } @@ -535,13 +535,13 @@ void Theme_Shrine(int t) TFit_Shrine(t); if (themeVar1 == 1) { - AddObject(OBJ_CANDLE2, themex - 1, themey); - AddObject(OBJ_SHRINER, themex, themey); - AddObject(OBJ_CANDLE2, themex + 1, themey); + AddObject(OBJ_CANDLE2, { themex - 1, themey }); + AddObject(OBJ_SHRINER, { themex, themey }); + AddObject(OBJ_CANDLE2, { themex + 1, themey }); } else { - AddObject(OBJ_CANDLE2, themex, themey - 1); - AddObject(OBJ_SHRINEL, themex, themey); - AddObject(OBJ_CANDLE2, themex, themey + 1); + AddObject(OBJ_CANDLE2, { themex, themey - 1 }); + AddObject(OBJ_SHRINEL, { themex, themey }); + AddObject(OBJ_CANDLE2, { themex, themey + 1 }); } PlaceThemeMonsts(t, monstrnd[leveltype - 1]); } @@ -592,13 +592,13 @@ void Theme_SkelRoom(int t) int xp = themex; int yp = themey; - AddObject(OBJ_SKFIRE, xp, yp); + AddObject(OBJ_SKFIRE, { xp, yp }); if (GenerateRnd(monstrnd[leveltype - 1]) != 0) { int i = PreSpawnSkeleton(); SpawnSkeleton(i, { xp - 1, yp - 1 }); } else { - AddObject(OBJ_BANNERL, xp - 1, yp - 1); + AddObject(OBJ_BANNERL, { xp - 1, yp - 1 }); } { @@ -610,25 +610,25 @@ void Theme_SkelRoom(int t) int i = PreSpawnSkeleton(); SpawnSkeleton(i, { xp + 1, yp - 1 }); } else { - AddObject(OBJ_BANNERR, xp + 1, yp - 1); + AddObject(OBJ_BANNERR, { xp + 1, yp - 1 }); } if (GenerateRnd(monstrnd[leveltype - 1]) != 0) { int i = PreSpawnSkeleton(); SpawnSkeleton(i, { xp - 1, yp }); } else { - AddObject(OBJ_BANNERM, xp - 1, yp); + AddObject(OBJ_BANNERM, { xp - 1, yp }); } if (GenerateRnd(monstrnd[leveltype - 1]) != 0) { int i = PreSpawnSkeleton(); SpawnSkeleton(i, { xp + 1, yp }); } else { - AddObject(OBJ_BANNERM, xp + 1, yp); + AddObject(OBJ_BANNERM, { xp + 1, yp }); } if (GenerateRnd(monstrnd[leveltype - 1]) != 0) { int i = PreSpawnSkeleton(); SpawnSkeleton(i, { xp - 1, yp + 1 }); } else { - AddObject(OBJ_BANNERR, xp - 1, yp + 1); + AddObject(OBJ_BANNERR, { xp - 1, yp + 1 }); } { @@ -640,14 +640,14 @@ void Theme_SkelRoom(int t) int i = PreSpawnSkeleton(); SpawnSkeleton(i, { xp + 1, yp + 1 }); } else { - AddObject(OBJ_BANNERL, xp + 1, yp + 1); + AddObject(OBJ_BANNERL, { xp + 1, yp + 1 }); } if (dObject[xp][yp - 3] == 0) { - AddObject(OBJ_SKELBOOK, xp, yp - 2); + AddObject(OBJ_SKELBOOK, { xp, yp - 2 }); } if (dObject[xp][yp + 3] == 0) { - AddObject(OBJ_SKELBOOK, xp, yp + 2); + AddObject(OBJ_SKELBOOK, { xp, yp + 2 }); } } @@ -700,19 +700,19 @@ void Theme_Library(int t) TFit_Shrine(t); if (themeVar1 == 1) { - AddObject(OBJ_BOOKCANDLE, themex - 1, themey); - AddObject(OBJ_BOOKCASER, themex, themey); - AddObject(OBJ_BOOKCANDLE, themex + 1, themey); + AddObject(OBJ_BOOKCANDLE, { themex - 1, themey }); + AddObject(OBJ_BOOKCASER, { themex, themey }); + AddObject(OBJ_BOOKCANDLE, { themex + 1, themey }); } else { - AddObject(OBJ_BOOKCANDLE, themex, themey - 1); - AddObject(OBJ_BOOKCASEL, themex, themey); - AddObject(OBJ_BOOKCANDLE, themex, themey + 1); + AddObject(OBJ_BOOKCANDLE, { themex, themey - 1 }); + AddObject(OBJ_BOOKCASEL, { themex, themey }); + AddObject(OBJ_BOOKCANDLE, { themex, themey + 1 }); } for (int yp = 1; yp < MAXDUNY - 1; yp++) { for (int xp = 1; xp < MAXDUNX - 1; xp++) { if (CheckThemeObj3(xp, yp, t, -1) && dMonster[xp][yp] == 0 && GenerateRnd(librnd[leveltype - 1]) == 0) { - AddObject(OBJ_BOOKSTAND, xp, yp); + AddObject(OBJ_BOOKSTAND, { xp, yp }); if (GenerateRnd(2 * librnd[leveltype - 1]) != 0 && dObject[xp][yp] != 0) { /// BUGFIX: check dObject[xp][yp] was populated by AddObject (fixed) int oi = dObject[xp][yp] - 1; Objects[oi]._oSelFlag = 0; @@ -747,7 +747,7 @@ void Theme_Torture(int t) if (dTransVal[xp][yp] == themes[t].ttval && !nSolidTable[dPiece[xp][yp]]) { if (CheckThemeObj3(xp, yp, t, -1)) { if (GenerateRnd(tortrnd[leveltype - 1]) == 0) { - AddObject(OBJ_TNUDEM2, xp, yp); + AddObject(OBJ_TNUDEM2, { xp, yp }); } } } @@ -765,7 +765,7 @@ void Theme_BloodFountain(int t) char monstrnd[4] = { 6, 8, 3, 9 }; TFit_Obj5(t); - AddObject(OBJ_BLOODFTN, themex, themey); + AddObject(OBJ_BLOODFTN, { themex, themey }); PlaceThemeMonsts(t, monstrnd[leveltype - 1]); } @@ -784,7 +784,7 @@ void Theme_Decap(int t) if (dTransVal[xp][yp] == themes[t].ttval && !nSolidTable[dPiece[xp][yp]]) { if (CheckThemeObj3(xp, yp, t, -1)) { if (GenerateRnd(decaprnd[leveltype - 1]) == 0) { - AddObject(OBJ_DECAP, xp, yp); + AddObject(OBJ_DECAP, { xp, yp }); } } } @@ -803,7 +803,7 @@ void Theme_PurifyingFountain(int t) char monstrnd[4] = { 6, 7, 3, 9 }; TFit_Obj5(t); - AddObject(OBJ_PURIFYINGFTN, themex, themey); + AddObject(OBJ_PURIFYINGFTN, { themex, themey }); PlaceThemeMonsts(t, monstrnd[leveltype - 1]); } @@ -819,14 +819,14 @@ void Theme_ArmorStand(int t) if (armorFlag) { TFit_Obj3(t); - AddObject(OBJ_ARMORSTAND, themex, themey); + AddObject(OBJ_ARMORSTAND, { themex, themey }); } for (int yp = 0; yp < MAXDUNY; yp++) { for (int xp = 0; xp < MAXDUNX; xp++) { if (dTransVal[xp][yp] == themes[t].ttval && !nSolidTable[dPiece[xp][yp]]) { if (CheckThemeObj3(xp, yp, t, -1)) { if (GenerateRnd(armorrnd[leveltype - 1]) == 0) { - AddObject(OBJ_ARMORSTANDN, xp, yp); + AddObject(OBJ_ARMORSTANDN, { xp, yp }); } } } @@ -844,7 +844,7 @@ void Theme_ArmorStand(int t) void Theme_GoatShrine(int t) { TFit_GoatShrine(t); - AddObject(OBJ_GOATSHRINE, themex, themey); + AddObject(OBJ_GOATSHRINE, { themex, themey }); for (int yy = themey - 1; yy <= themey + 1; yy++) { for (int xx = themex - 1; xx <= themex + 1; xx++) { if (dTransVal[xx][yy] == themes[t].ttval && !nSolidTable[dPiece[xx][yy]] && (xx != themex || yy != themey)) { @@ -864,7 +864,7 @@ void Theme_Cauldron(int t) char monstrnd[4] = { 6, 7, 3, 9 }; TFit_Obj5(t); - AddObject(OBJ_CAULDRON, themex, themey); + AddObject(OBJ_CAULDRON, { themex, themey }); PlaceThemeMonsts(t, monstrnd[leveltype - 1]); } @@ -878,7 +878,7 @@ void Theme_MurkyFountain(int t) char monstrnd[4] = { 6, 7, 3, 9 }; TFit_Obj5(t); - AddObject(OBJ_MURKYFTN, themex, themey); + AddObject(OBJ_MURKYFTN, { themex, themey }); PlaceThemeMonsts(t, monstrnd[leveltype - 1]); } @@ -892,7 +892,7 @@ void Theme_TearFountain(int t) char monstrnd[4] = { 6, 7, 3, 9 }; TFit_Obj5(t); - AddObject(OBJ_TEARFTN, themex, themey); + AddObject(OBJ_TEARFTN, { themex, themey }); PlaceThemeMonsts(t, monstrnd[leveltype - 1]); } @@ -911,7 +911,7 @@ void Theme_BrnCross(int t) if (dTransVal[xp][yp] == themes[t].ttval && !nSolidTable[dPiece[xp][yp]]) { if (CheckThemeObj3(xp, yp, t, -1)) { if (GenerateRnd(bcrossrnd[leveltype - 1]) == 0) { - AddObject(OBJ_TBCROSS, xp, yp); + AddObject(OBJ_TBCROSS, { xp, yp }); } } } @@ -932,14 +932,14 @@ void Theme_WeaponRack(int t) if (weaponFlag) { TFit_Obj3(t); - AddObject(OBJ_WEAPONRACK, themex, themey); + AddObject(OBJ_WEAPONRACK, { themex, themey }); } for (int yp = 0; yp < MAXDUNY; yp++) { for (int xp = 0; xp < MAXDUNX; xp++) { if (dTransVal[xp][yp] == themes[t].ttval && !nSolidTable[dPiece[xp][yp]]) { if (CheckThemeObj3(xp, yp, t, -1)) { if (GenerateRnd(weaponrnd[leveltype - 1]) == 0) { - AddObject(OBJ_WEAPONRACKN, xp, yp); + AddObject(OBJ_WEAPONRACKN, { xp, yp }); } } }