Load stage map into level definition

This commit is contained in:
2026-06-09 22:16:19 +08:00
parent 45a8712b00
commit 3fc9caa80b
9 changed files with 574 additions and 61 deletions
+15 -11
View File
@@ -1,21 +1,13 @@
#include "level_definition.h"
#include "stage_map_resource.h"
#include "stage_map_loader.h"
#include <SDL2/SDL.h>
namespace ns_game {
LevelDefinition CreateWhiteboxLevel() {
if (auto mapResource = LoadStageMapResource("map/stage_01.map")) {
SDL_Log("CreateWhiteboxLevel: loaded %s map resource: %s",
mapResource->source == StageMapResourceSource::AssetText ? "asset"
: mapResource->source == StageMapResourceSource::PvfText ? "pvf-text"
: mapResource->source == StageMapResourceSource::PvfBinaryScript
? "pvf-script"
: "unknown",
mapResource->path.c_str());
}
namespace {
LevelDefinition CreateFallbackWhiteboxLevel() {
LevelDefinition level;
level.worldWidth = 3200.0f;
level.worldHeight = 720.0f;
@@ -146,4 +138,16 @@ LevelDefinition CreateWhiteboxLevel() {
return level;
}
} // namespace
LevelDefinition CreateWhiteboxLevel() {
if (auto loadedLevel = LoadStageMap("map/stage_01.map")) {
return *loadedLevel;
}
SDL_LogWarn(SDL_LOG_CATEGORY_APPLICATION,
"CreateWhiteboxLevel: using C++ fallback level");
return CreateFallbackWhiteboxLevel();
}
} // namespace ns_game