Add loading screen with random WOWEE splash images

- Add loading screen system with stb_image for JPEG loading
- Two loading screen images (orc and dwarf) randomly selected
- Display loading screen while terrain data loads
- Cache WMO inverse matrices to reduce per-frame computation
- Stub WMO liquid rendering (needs coordinate system fix)
- Update spawn point to Stormwind Trade District
This commit is contained in:
Kelsi 2026-02-03 13:33:31 -08:00
parent 665a73e75f
commit 01bf3b4c08
14 changed files with 8395 additions and 165 deletions

View file

@ -100,6 +100,20 @@ struct WMOPortalPlane {
float distance;
};
// WMO Liquid (MLIQ chunk data)
struct WMOLiquid {
uint32_t xVerts = 0; // Vertices in X direction
uint32_t yVerts = 0; // Vertices in Y direction
uint32_t xTiles = 0; // Tiles in X (= xVerts - 1)
uint32_t yTiles = 0; // Tiles in Y (= yVerts - 1)
glm::vec3 basePosition; // Corner position in model space
uint16_t materialId = 0; // Liquid material/type
std::vector<float> heights; // Height per vertex (xVerts * yVerts)
std::vector<uint8_t> flags; // Flags per tile (xTiles * yTiles)
bool hasLiquid() const { return xVerts > 0 && yVerts > 0; }
};
// WMO Group Vertex
struct WMOVertex {
glm::vec3 position;
@ -143,6 +157,9 @@ struct WMOGroup {
// BSP tree (for collision - optional)
std::vector<uint8_t> bspNodes;
// Liquid data (MLIQ chunk)
WMOLiquid liquid;
std::string name;
std::string description;
};