summaryrefslogtreecommitdiff
path: root/src/engine/courses/Skyscraper.cpp
diff options
context:
space:
mode:
authorMegaMech <MegaMech@users.noreply.github.com>2024-11-14 23:32:55 -0700
committerGitHub <noreply@github.com>2024-11-14 23:32:55 -0700
commit475f167bb2803999c5116bc285601d1f9a05d7de (patch)
tree859fec292c5c9807cc9690ebf4f0600f558b6063 /src/engine/courses/Skyscraper.cpp
parent4fbb031dd95f2a84e73fbca269f517e98808d293 (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.cpp47
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;
}