diff options
| author | MegaMech <MegaMech@users.noreply.github.com> | 2024-11-14 23:32:55 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-11-14 23:32:55 -0700 |
| commit | 475f167bb2803999c5116bc285601d1f9a05d7de (patch) | |
| tree | 859fec292c5c9807cc9690ebf4f0600f558b6063 /src/engine/courses/Skyscraper.cpp | |
| parent | 4fbb031dd95f2a84e73fbca269f517e98808d293 (diff) | |
[modding] Big Update PR (#118)
* Implement kart vehicle
* Fix menu CC
* Actors
* variable framerate
* Implement Actors vector
* Fix water & scrolling textures
* Finish ACoin
* Refactor finishline
* Refactor mtx to vector
* Fix refactored screen code bugs
* Fix playlist bug
* Switching courses working now
* Fix podium ceremony
* Mostly Fix Demo and Credits
* Credits Load Actors and Textures
* Fix credits
* Formatting
* Update lus and torch
* Fix water features
* Fix crabs
* Combine function
* Fix wheels
* Add Moon Jump Cheat
* Wheel Change
* Fix smoke due to wheel change
* Fix screens for wheels
* Fix transparency
* Fix staff ghost
* Fix lakitu transition widescreen
* Rename and export credits text
* Fixes
---------
Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>
Diffstat (limited to 'src/engine/courses/Skyscraper.cpp')
| -rw-r--r-- | src/engine/courses/Skyscraper.cpp | 47 |
1 files changed, 30 insertions, 17 deletions
diff --git a/src/engine/courses/Skyscraper.cpp b/src/engine/courses/Skyscraper.cpp index 82a16ad93..df26ceccb 100644 --- a/src/engine/courses/Skyscraper.cpp +++ b/src/engine/courses/Skyscraper.cpp @@ -6,7 +6,7 @@ #include "Skyscraper.h" #include "GameObject.h" #include "World.h" -#include "BombKart.h" +#include "engine/vehicles/OBombKart.h" #include "assets/skyscraper_data.h" extern "C" { @@ -101,10 +101,38 @@ Skyscraper::Skyscraper() { Props.Skybox.FloorTopLeft = {0, 0, 0}; } +void Skyscraper::Load() { + Course::Load(); + + // d_course_skyscraper_packed_dl_1110 + generate_collision_mesh_with_default_section_id((Gfx*) segmented_gfx_to_virtual((void*)0x07001110), 1); + // d_course_skyscraper_packed_dl_258 + generate_collision_mesh_with_default_section_id((Gfx*) segmented_gfx_to_virtual((void*)0x07000258), 1); + func_80295C6C(); + + D_8015F8E4 = -480.0f; +} + void Skyscraper::LoadTextures() { } -void Skyscraper::SpawnActors() {} +void Skyscraper::SpawnActors() { + spawn_all_item_boxes((ActorSpawnData*)LOAD_ASSET_RAW(d_course_skyscraper_item_box_spawns)); +} + +void Skyscraper::SpawnVehicles() { + if (gModeSelection == VERSUS) { + Vec3f pos = {0, 0, 0}; + + gWorldInstance.AddBombKart(pos, &D_80164550[0][20], 20, 0, 1.0f); + gWorldInstance.AddBombKart(pos, &D_80164550[0][40], 40, 0, 1.0f); + gWorldInstance.AddBombKart(pos, &D_80164550[0][60], 60, 0, 1.0f); + gWorldInstance.AddBombKart(pos, &D_80164550[0][80], 80, 0, 1.0f); + gWorldInstance.AddBombKart(pos, &D_80164550[0][100], 100, 0, 1.0f); + gWorldInstance.AddBombKart(pos, &D_80164550[0][120], 120, 0, 1.0f); + gWorldInstance.AddBombKart(pos, &D_80164550[0][140], 140, 0, 1.0f); + } +} // Likely sets minimap boundaries void Skyscraper::MinimapSettings() { @@ -121,17 +149,12 @@ void Skyscraper::WhatDoesThisDo(Player* player, int8_t playerId) {} void Skyscraper::WhatDoesThisDoAI(Player* player, int8_t playerId) {} -void Skyscraper::SpawnBombKarts() {} - // Positions the finishline on the minimap void Skyscraper::MinimapFinishlinePosition() { //! todo: Place hard-coded values here. draw_hud_2d_texture_8x8(this->Props.MinimapFinishlineX, this->Props.MinimapFinishlineY, (u8*) common_texture_minimap_finish_line); } -void Skyscraper::SetStaffGhost() {} - -void Skyscraper::BeginPlay() { } void Skyscraper::Render(struct UnkStruct_800DC5EC* arg0) { func_802B5D64(D_800DC610, D_802B87D4, 0, 1); gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON); @@ -159,16 +182,6 @@ void Skyscraper::RenderCredits() {} void Skyscraper::Collision() {} -void Skyscraper::GenerateCollision() { - // d_course_skyscraper_packed_dl_1110 - generate_collision_mesh_with_default_section_id((Gfx*) segmented_gfx_to_virtual((void*)0x07001110), 1); - // d_course_skyscraper_packed_dl_258 - generate_collision_mesh_with_default_section_id((Gfx*) segmented_gfx_to_virtual((void*)0x07000258), 1); - func_80295C6C(); - - D_8015F8E4 = -480.0f; -} - void Skyscraper::Waypoints(Player* player, int8_t playerId) { player->nearestWaypointId = 0; } |
