diff options
Diffstat (limited to 'src/engine/courses/BowsersCastle.cpp')
| -rw-r--r-- | src/engine/courses/BowsersCastle.cpp | 36 |
1 files changed, 20 insertions, 16 deletions
diff --git a/src/engine/courses/BowsersCastle.cpp b/src/engine/courses/BowsersCastle.cpp index 33179e739..544d7f1d6 100644 --- a/src/engine/courses/BowsersCastle.cpp +++ b/src/engine/courses/BowsersCastle.cpp @@ -28,6 +28,7 @@ extern "C" { #include "staff_ghosts.h" #include "actors.h" #include "collision.h" + #include "code_8003DC40.h" #include "memory.h" extern const char *bowsers_castle_dls[]; } @@ -37,6 +38,9 @@ BowsersCastle::BowsersCastle() { this->gfx = d_course_bowsers_castle_packed_dls; this->gfxSize = 4900; this->textures = bowsers_castle_textures; + Props.MinimapTexture = gTextureCourseOutlineBowsersCastle; + Props.D_800E5548[0] = 64; + Props.D_800E5548[1] = 64; Props.Id = "mk:bowsers_castle"; Props.Name = "bowser's castle"; @@ -73,12 +77,12 @@ BowsersCastle::BowsersCastle() { Props.D_0D009808[2] = 5.75f; Props.D_0D009808[3] = 6.3333334f; - Props.PathTable[0] = d_course_bowsers_castle_unknown_waypoints; + Props.PathTable[0] = (TrackWaypoint*)LOAD_ASSET_RAW(d_course_bowsers_castle_unknown_waypoints); Props.PathTable[1] = NULL; Props.PathTable[2] = NULL; Props.PathTable[3] = NULL; - Props.PathTable2[0] = d_course_bowsers_castle_track_waypoints; + Props.PathTable2[0] = (TrackWaypoint*)LOAD_ASSET_RAW(d_course_bowsers_castle_track_waypoints); Props.PathTable2[1] = NULL; Props.PathTable2[2] = NULL; Props.PathTable2[3] = NULL; @@ -103,8 +107,8 @@ void BowsersCastle::LoadTextures() { } void BowsersCastle::SpawnActors() { - spawn_foliage(d_course_bowsers_castle_tree_spawn); - spawn_all_item_boxes(d_course_bowsers_castle_item_box_spawns); + spawn_foliage((struct ActorSpawnData*)LOAD_ASSET_RAW(d_course_bowsers_castle_tree_spawn)); + spawn_all_item_boxes((struct ActorSpawnData*)LOAD_ASSET_RAW(d_course_bowsers_castle_item_box_spawns)); } void BowsersCastle::Init() { } @@ -211,17 +215,13 @@ void BowsersCastle::WhatDoesThisDoAI(Player* player, int8_t playerId) { } void BowsersCastle::SpawnBombKarts() { - World* world = GetWorld(); - - if (world) { - world->SpawnObject(std::make_unique<OBombKart>(140, 3, 0.8333333, 0, 0, 0, 0)); - world->SpawnObject(std::make_unique<OBombKart>(165, 1, 0.8333333, 0, 0, 0, 0)); - world->SpawnObject(std::make_unique<OBombKart>(330, 3, 0.8333333, 0, 0, 0, 0)); - world->SpawnObject(std::make_unique<OBombKart>(550, 1, 0.8333333, 0, 0, 0, 0)); - world->SpawnObject(std::make_unique<OBombKart>(595, 3, 0.8333333, 0, 0, 0, 0)); - world->SpawnObject(std::make_unique<OBombKart>(0, 0, 0.8333333, 0, 0, 0, 0)); - world->SpawnObject(std::make_unique<OBombKart>(0, 0, 0.8333333, 0, 0, 0, 0)); - } + gWorldInstance.SpawnObject(std::make_unique<OBombKart>(140, 3, 0.8333333, 0, 0, 0, 0)); + gWorldInstance.SpawnObject(std::make_unique<OBombKart>(165, 1, 0.8333333, 0, 0, 0, 0)); + gWorldInstance.SpawnObject(std::make_unique<OBombKart>(330, 3, 0.8333333, 0, 0, 0, 0)); + gWorldInstance.SpawnObject(std::make_unique<OBombKart>(550, 1, 0.8333333, 0, 0, 0, 0)); + gWorldInstance.SpawnObject(std::make_unique<OBombKart>(595, 3, 0.8333333, 0, 0, 0, 0)); + gWorldInstance.SpawnObject(std::make_unique<OBombKart>(0, 0, 0.8333333, 0, 0, 0, 0)); + gWorldInstance.SpawnObject(std::make_unique<OBombKart>(0, 0, 0.8333333, 0, 0, 0, 0)); } // Positions the finishline on the minimap @@ -267,8 +267,12 @@ void BowsersCastle::RenderCredits() { void BowsersCastle::Collision() {} +void BowsersCastle::SomeCollisionThing(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32* arg4, f32* arg5, f32* arg6, f32* arg7) { + func_8003E6EC(player, arg1, arg2, arg3, arg4, arg5, arg6, arg7); +} + void BowsersCastle::GenerateCollision() { - parse_course_displaylists(d_course_bowsers_castle_addr); + parse_course_displaylists((TrackSectionsI*)LOAD_ASSET_RAW(d_course_bowsers_castle_addr)); func_80295C6C(); find_vtx_and_set_colours(segmented_gfx_to_virtual(reinterpret_cast<void*>(0x07001350)), 0x32, 0, 0, 0); D_8015F8E4 = -50.0f; |
