LSD
Description
.lsd files store static level state used at runtime.
In OpenW3D, SaveGameManager uses .lsd for static world data and pairs it
with .ldd (dynamic save data) and .ddb (definitions).
References
Specification
Write path
During level export, LevelEdit does:
SaveGameManager::Set_Map_Filename("<name>.lsd")SaveGameManager::Save_Level()
Save_Level writes SaveLoad subsystem chunks to the .lsd file:
_PhysStaticDataSaveSystem_PhysStaticObjectsSaveSystem_StaticAudioSaveLoadSubsystem_TheBackgroundMgr_TheWeatherMgr_TheMapMgrSaveLoadSubsystem
Read/load path
Pre_Load_Game resolves file pairing:
.mixinput maps to<root>.lddplus<root>.lsd..lsdinput implies<root>.lddfor dynamic data.
While loading a game:
.lddlevel-info chunk provides map filename.Runtime loads
<map>.ddbdefinitions.Runtime then loads static level data from
.lsdviaLoad_Level().
Packaging
ModPackageClass::Build_Level_List identifies levels in a package by finding
.lsd entries.