Add "seedinfo" debug command
This commit is contained in:
parent
ec54654bee
commit
cc881a1c85
3 changed files with 27 additions and 19 deletions
|
|
@ -40,6 +40,12 @@ int DebugPlayerId;
|
|||
int DebugQuestId;
|
||||
int DebugMonsterId;
|
||||
|
||||
// Used for debugging level generation
|
||||
uint32_t glMid1Seed[NUMLEVELS];
|
||||
uint32_t glMid2Seed[NUMLEVELS];
|
||||
uint32_t glMid3Seed[NUMLEVELS];
|
||||
uint32_t glEndSeed[NUMLEVELS];
|
||||
|
||||
void SetSpellLevelCheat(spell_id spl, int spllvl)
|
||||
{
|
||||
auto &myPlayer = Players[MyPlayerId];
|
||||
|
|
@ -450,6 +456,11 @@ std::string DebugCmdShowCursorCoords(const std::string_view parameter)
|
|||
return "Cursor will never forget that.";
|
||||
}
|
||||
|
||||
std::string DebugCmdLevelSeed(const std::string_view parameter)
|
||||
{
|
||||
return fmt::format("Seedinfo for level {}\nseed: {}\nMid1: {}\nMid2: {}\nMid3: {}\nEnd: {}", currlevel, glSeedTbl[currlevel], glMid1Seed[currlevel], glMid2Seed[currlevel], glMid3Seed[currlevel], glEndSeed[currlevel]);
|
||||
}
|
||||
|
||||
std::vector<DebugCmdItem> DebugCmdList = {
|
||||
{ "help", "Prints help overview or help for a specific command.", "({command})", &DebugCmdHelp },
|
||||
{ "give gold", "Fills the inventory with gold.", "", &DebugCmdGiveGoldCheat },
|
||||
|
|
@ -474,6 +485,7 @@ std::vector<DebugCmdItem> DebugCmdList = {
|
|||
{ "coords", "Toggles showing tile coords.", "", &DebugCmdShowCoords },
|
||||
{ "cursorcoords", "Toggles showing cursor coords.", "", &DebugCmdShowCursorCoords },
|
||||
{ "grid", "Toggles showing grid.", "", &DebugCmdShowGrid },
|
||||
{ "seedinfo", "Show seed infos for current level.", "", &DebugCmdLevelSeed },
|
||||
};
|
||||
|
||||
} // namespace
|
||||
|
|
@ -556,6 +568,14 @@ void NextDebugMonster()
|
|||
NetSendCmdString(1 << MyPlayerId, dstr);
|
||||
}
|
||||
|
||||
void SetDebugLevelSeedInfos(uint32_t mid1Seed, uint32_t mid2Seed, uint32_t mid3Seed, uint32_t endSeed)
|
||||
{
|
||||
glMid1Seed[currlevel] = mid1Seed;
|
||||
glMid2Seed[currlevel] = mid2Seed;
|
||||
glMid3Seed[currlevel] = mid3Seed;
|
||||
glEndSeed[currlevel] = endSeed;
|
||||
}
|
||||
|
||||
bool CheckDebugTextCommand(const std::string_view text)
|
||||
{
|
||||
auto debugCmdIterator = std::find_if(DebugCmdList.begin(), DebugCmdList.end(), [&](const DebugCmdItem &elem) { return text.find(elem.text) == 0 && (text.length() == elem.text.length() || text[elem.text.length()] == ' '); });
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ void PrintDebugPlayer(bool bNextPlayer);
|
|||
void PrintDebugQuest();
|
||||
void GetDebugMonster();
|
||||
void NextDebugMonster();
|
||||
void SetDebugLevelSeedInfos(uint32_t mid1Seed, uint32_t mid2Seed, uint32_t mid3Seed, uint32_t endSeed);
|
||||
bool CheckDebugTextCommand(const std::string_view text);
|
||||
|
||||
} // namespace devilution
|
||||
|
|
|
|||
|
|
@ -128,12 +128,6 @@ namespace {
|
|||
|
||||
char gszVersionNumber[64] = "internal version unknown";
|
||||
|
||||
// Used for debugging level generation
|
||||
uint32_t glEndSeed[NUMLEVELS];
|
||||
uint32_t glMid1Seed[NUMLEVELS];
|
||||
uint32_t glMid2Seed[NUMLEVELS];
|
||||
uint32_t glMid3Seed[NUMLEVELS];
|
||||
|
||||
bool gbGameLoopStartup;
|
||||
bool forceSpawn;
|
||||
bool forceDiablo;
|
||||
|
|
@ -588,15 +582,6 @@ void PressChar(char vkey)
|
|||
case 'm':
|
||||
GetDebugMonster();
|
||||
return;
|
||||
case 'R':
|
||||
case 'r':
|
||||
sprintf(tempstr, "seed = %i", glSeedTbl[currlevel]);
|
||||
NetSendCmdString(1 << MyPlayerId, tempstr);
|
||||
sprintf(tempstr, "Mid1 = %i : Mid2 = %i : Mid3 = %i", glMid1Seed[currlevel], glMid2Seed[currlevel], glMid3Seed[currlevel]);
|
||||
NetSendCmdString(1 << MyPlayerId, tempstr);
|
||||
sprintf(tempstr, "End = %i", glEndSeed[currlevel]);
|
||||
NetSendCmdString(1 << MyPlayerId, tempstr);
|
||||
return;
|
||||
case 'T':
|
||||
case 't':
|
||||
if (debug_mode_key_inverted_v) {
|
||||
|
|
@ -1893,19 +1878,21 @@ void LoadGameLevel(bool firstflag, lvl_entry lvldir)
|
|||
if (leveltype != DTYPE_TOWN) {
|
||||
if (firstflag || lvldir == ENTRY_LOAD || !myPlayer._pLvlVisited[currlevel] || gbIsMultiplayer) {
|
||||
HoldThemeRooms();
|
||||
glMid1Seed[currlevel] = GetLCGEngineState();
|
||||
uint32_t mid1Seed = GetLCGEngineState();
|
||||
InitMonsters();
|
||||
glMid2Seed[currlevel] = GetLCGEngineState();
|
||||
uint32_t mid2Seed = GetLCGEngineState();
|
||||
IncProgress();
|
||||
InitObjects();
|
||||
InitItems();
|
||||
if (currlevel < 17)
|
||||
CreateThemeRooms();
|
||||
IncProgress();
|
||||
glMid3Seed[currlevel] = GetLCGEngineState();
|
||||
uint32_t mid3Seed = GetLCGEngineState();
|
||||
InitMissiles();
|
||||
InitDead();
|
||||
glEndSeed[currlevel] = GetLCGEngineState();
|
||||
#if _DEBUG
|
||||
SetDebugLevelSeedInfos(mid1Seed, mid2Seed, mid3Seed, GetLCGEngineState());
|
||||
#endif
|
||||
|
||||
if (gbIsMultiplayer)
|
||||
DeltaLoadLevel();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue