Browse Source

Initialize golems before objects

pull/3750/head
staphen 4 years ago committed by Anders Jenbo
parent
commit
bd0470994a
  1. 3
      Source/diablo.cpp
  2. 5
      Source/monster.cpp
  3. 1
      Source/monster.h

3
Source/diablo.cpp

@ -1915,6 +1915,7 @@ void LoadGameLevel(bool firstflag, lvl_entry lvldir)
if (firstflag || lvldir == ENTRY_LOAD || !myPlayer._pLvlVisited[currlevel] || gbIsMultiplayer) { if (firstflag || lvldir == ENTRY_LOAD || !myPlayer._pLvlVisited[currlevel] || gbIsMultiplayer) {
HoldThemeRooms(); HoldThemeRooms();
[[maybe_unused]] uint32_t mid1Seed = GetLCGEngineState(); [[maybe_unused]] uint32_t mid1Seed = GetLCGEngineState();
InitGolems();
InitObjects(); InitObjects();
[[maybe_unused]] uint32_t mid2Seed = GetLCGEngineState(); [[maybe_unused]] uint32_t mid2Seed = GetLCGEngineState();
IncProgress(); IncProgress();
@ -1937,6 +1938,7 @@ void LoadGameLevel(bool firstflag, lvl_entry lvldir)
SavePreLighting(); SavePreLighting();
} else { } else {
HoldThemeRooms(); HoldThemeRooms();
InitGolems();
InitMonsters(); InitMonsters();
InitMissiles(); InitMissiles();
InitCorpses(); InitCorpses();
@ -1972,6 +1974,7 @@ void LoadGameLevel(bool firstflag, lvl_entry lvldir)
IncProgress(); IncProgress();
GetLevelMTypes(); GetLevelMTypes();
IncProgress(); IncProgress();
InitGolems();
InitMonsters(); InitMonsters();
IncProgress(); IncProgress();
#ifdef VIRTUAL_GAMEPAD #ifdef VIRTUAL_GAMEPAD

5
Source/monster.cpp

@ -3797,13 +3797,16 @@ void monster_some_crypt()
monster._mmaxhp = hp; monster._mmaxhp = hp;
} }
void InitMonsters() void InitGolems()
{ {
if (!setlevel) { if (!setlevel) {
for (int i = 0; i < MAX_PLRS; i++) for (int i = 0; i < MAX_PLRS; i++)
AddMonster(GolemHoldingCell, Direction::South, 0, false); AddMonster(GolemHoldingCell, Direction::South, 0, false);
} }
}
void InitMonsters()
{
if (!gbIsSpawn && !setlevel && currlevel == 16) if (!gbIsSpawn && !setlevel && currlevel == 16)
LoadDiabMonsts(); LoadDiabMonsts();

1
Source/monster.h

@ -272,6 +272,7 @@ void InitLevelMonsters();
void GetLevelMTypes(); void GetLevelMTypes();
void InitMonsterGFX(int monst); void InitMonsterGFX(int monst);
void monster_some_crypt(); void monster_some_crypt();
void InitGolems();
void InitMonsters(); void InitMonsters();
void SetMapMonsters(const uint16_t *dunData, Point startPosition); void SetMapMonsters(const uint16_t *dunData, Point startPosition);
int AddMonster(Point position, Direction dir, int mtype, bool inMap); int AddMonster(Point position, Direction dir, int mtype, bool inMap);

Loading…
Cancel
Save