Browse Source

Add `dev.level.seed()` debug command

pull/6804/head
Gleb Mazovetskiy 2 years ago
parent
commit
be34dd0cb7
  1. 15
      Source/lua/modules/dev/level.cpp

15
Source/lua/modules/dev/level.cpp

@ -1,6 +1,7 @@
#ifdef _DEBUG
#include "lua/modules/dev/level.hpp"
#include <cstddef>
#include <cstdio>
#include <optional>
#include <string>
@ -24,9 +25,7 @@ namespace {
std::string ExportDun()
{
std::string levelName = StrCat(currlevel, "-", glSeedTbl[currlevel], ".dun");
std::string cmdLabel = "[exportdun] ";
const std::string levelName = StrCat(currlevel, "-", glSeedTbl[currlevel], ".dun");
FILE *dunFile = OpenFile(levelName.c_str(), "ab");
WriteLE16(dunFile, DMAXX);
@ -108,6 +107,15 @@ std::string DebugCmdResetLevel(uint8_t level, std::optional<int> seed)
return StrCat("Successfully reset level ", level, ".");
}
std::string DebugCmdLevelSeed(std::optional<uint8_t> level)
{
constexpr size_t NumLevels = sizeof(glSeedTbl) / sizeof(glSeedTbl[0]);
if (level.has_value() && *level >= NumLevels) {
return StrCat("level out of range, max: ", NumLevels - 1);
}
return StrCat(glSeedTbl[level.value_or(currlevel)]);
}
} // namespace
sol::table LuaDevLevelModule(sol::state_view &lua)
@ -116,6 +124,7 @@ sol::table LuaDevLevelModule(sol::state_view &lua)
SetDocumented(table, "exportDun", "()", "Save the current level as a dun-file.", &ExportDun);
SetDocumented(table, "map", "", "Automap-related commands.", LuaDevLevelMapModule(lua));
SetDocumented(table, "reset", "(n: number, seed: number = nil)", "Resets specified level.", &DebugCmdResetLevel);
SetDocumented(table, "seed", "(level: number = nil)", "Get the seed of the current or given level.", &DebugCmdLevelSeed);
SetDocumented(table, "warp", "", "Warp to a level or a custom map.", LuaDevLevelWarpModule(lua));
return table;
}

Loading…
Cancel
Save