summaryrefslogtreecommitdiff
path: root/src/koopatlas/mapdata.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/koopatlas/mapdata.cpp')
-rw-r--r--src/koopatlas/mapdata.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/koopatlas/mapdata.cpp b/src/koopatlas/mapdata.cpp
index 6838741..4a51519 100644
--- a/src/koopatlas/mapdata.cpp
+++ b/src/koopatlas/mapdata.cpp
@@ -50,6 +50,7 @@ bool dKPMapData_c::load(const char *filename) {
bool didLoadTilesets = loadTilesets();
bool didLoadBG = (bgLoader.load("/Maps/Water.brres") != 0);
+ bool nodeLoader.load("/Maps/visCobCourse.brres");
return didLoadTilesets && didLoadBG;
}
@@ -89,6 +90,7 @@ void dKPMapData_c::unloadTilesets() {
}
bgLoader.unload();
+ nodeLoader.unload()
}
void dKPMapData_c::fixup() {
@@ -140,6 +142,24 @@ void dKPMapData_c::fixup() {
if (node->type == dKPNode_s::CHANGE)
fixRef(node->destMap);
+ else if (node->type == dKPNode_s::LEVEL) {
+
+ node->allocator.link(-1, GameHeaps[0], 0, 0x20);
+
+ nw4r::g3d::ResFile rf(nodeLoader.buffer);
+ rf.CheckRevision();
+ rf.Init();
+ rf.Bind(rf);
+
+ nw4r::g3d::ResMdl mdl = rf.GetResMdl("cobCourse");
+ nw4r::g3d::ResAnmVis anmRes = rf.GetResAnmVis("cobCourse");
+
+ node->model.setup(mdl, &node->allocator, 0x224, 1, 0);
+ node->color.setup(mdl, anmRes, &node->allocator, 0, 1);
+ node->color.bind(&node->model, anmRes, 0);
+ node->model.bindAnim(&node->color, 0.0f);
+ SetupTextures_MapObj(&node->model, 0);
+ }
}
break;
}