From bd0470994aebe400e308a5eb2dcb31eda38d57c4 Mon Sep 17 00:00:00 2001 From: staphen Date: Sun, 12 Dec 2021 11:46:39 -0500 Subject: [PATCH] Initialize golems before objects --- Source/diablo.cpp | 3 +++ Source/monster.cpp | 5 ++++- Source/monster.h | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Source/diablo.cpp b/Source/diablo.cpp index d6cd96823..eb146ddbe 100644 --- a/Source/diablo.cpp +++ b/Source/diablo.cpp @@ -1915,6 +1915,7 @@ void LoadGameLevel(bool firstflag, lvl_entry lvldir) if (firstflag || lvldir == ENTRY_LOAD || !myPlayer._pLvlVisited[currlevel] || gbIsMultiplayer) { HoldThemeRooms(); [[maybe_unused]] uint32_t mid1Seed = GetLCGEngineState(); + InitGolems(); InitObjects(); [[maybe_unused]] uint32_t mid2Seed = GetLCGEngineState(); IncProgress(); @@ -1937,6 +1938,7 @@ void LoadGameLevel(bool firstflag, lvl_entry lvldir) SavePreLighting(); } else { HoldThemeRooms(); + InitGolems(); InitMonsters(); InitMissiles(); InitCorpses(); @@ -1972,6 +1974,7 @@ void LoadGameLevel(bool firstflag, lvl_entry lvldir) IncProgress(); GetLevelMTypes(); IncProgress(); + InitGolems(); InitMonsters(); IncProgress(); #ifdef VIRTUAL_GAMEPAD diff --git a/Source/monster.cpp b/Source/monster.cpp index ad21e9a98..3fcadb0d1 100644 --- a/Source/monster.cpp +++ b/Source/monster.cpp @@ -3797,13 +3797,16 @@ void monster_some_crypt() monster._mmaxhp = hp; } -void InitMonsters() +void InitGolems() { if (!setlevel) { for (int i = 0; i < MAX_PLRS; i++) AddMonster(GolemHoldingCell, Direction::South, 0, false); } +} +void InitMonsters() +{ if (!gbIsSpawn && !setlevel && currlevel == 16) LoadDiabMonsts(); diff --git a/Source/monster.h b/Source/monster.h index 87dc29de0..0353ec593 100644 --- a/Source/monster.h +++ b/Source/monster.h @@ -272,6 +272,7 @@ void InitLevelMonsters(); void GetLevelMTypes(); void InitMonsterGFX(int monst); void monster_some_crypt(); +void InitGolems(); void InitMonsters(); void SetMapMonsters(const uint16_t *dunData, Point startPosition); int AddMonster(Point position, Direction dir, int mtype, bool inMap);