summaryrefslogtreecommitdiff
path: root/src/engine/objects/BombKart.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/objects/BombKart.cpp')
-rw-r--r--src/engine/objects/BombKart.cpp39
1 files changed, 20 insertions, 19 deletions
diff --git a/src/engine/objects/BombKart.cpp b/src/engine/objects/BombKart.cpp
index fc27103ed..53b4a4262 100644
--- a/src/engine/objects/BombKart.cpp
+++ b/src/engine/objects/BombKart.cpp
@@ -29,7 +29,8 @@ extern s8 gPlayerCount;
size_t OBombKart::_count = 0;
-OBombKart::OBombKart(Vec3f pos, TrackWaypoint* waypoint, uint16_t waypointIndex, uint16_t state, f32 unk_3C) {
+OBombKart::OBombKart(FVector pos, TrackWaypoint* waypoint, uint16_t waypointIndex, uint16_t state, f32 unk_3C) {
+ Name = "Bomb Kart";
_idx = _count;
Vec3f _pos = {0, 0, 0};
@@ -41,10 +42,10 @@ OBombKart::OBombKart(Vec3f pos, TrackWaypoint* waypoint, uint16_t waypointIndex,
// Set height to the default value of 2000.0f unless Pos[1] is higher.
// This allows placing these on very high surfaces.
- f32 height = (pos[1] > 2000.0f) ? pos[1] : 2000.0f;
- _pos[0] = pos[0];
- _pos[1] = spawn_actor_on_surface(pos[0], height, pos[2]);
- _pos[2] = pos[2];
+ f32 height = (pos.y > 2000.0f) ? pos.y : 2000.0f;
+ _pos[0] = pos.x;
+ _pos[1] = spawn_actor_on_surface(pos.x, height, pos.z);
+ _pos[2] = pos.z;
}
WaypointIndex = waypointIndex;
@@ -72,7 +73,7 @@ OBombKart::OBombKart(Vec3f pos, TrackWaypoint* waypoint, uint16_t waypointIndex,
WheelPos[3][2] = _pos[2];
check_bounding_collision(&_Collision, 2.0f, _pos[0], _pos[1], _pos[2]);
- find_unused_obj_index(&ObjectIndex);
+ find_unused_obj_index(&_objectIndex);
_count++;
}
@@ -329,7 +330,7 @@ void OBombKart::Tick() {
void OBombKart::Draw(s32 cameraId) {
if (gModeSelection == BATTLE) {
for (size_t playerId = 0; playerId < NUM_BOMB_KARTS_BATTLE; playerId++) {
- Object* object = &gObjectList[ObjectIndex];
+ Object* object = &gObjectList[_objectIndex];
if (object->state != 0) {
s32 primAlpha = object->primAlpha;
Player* player = &gPlayerOne[playerId];
@@ -337,9 +338,9 @@ void OBombKart::Draw(s32 cameraId) {
object->pos[1] = player->pos[1] - 2.0;
object->pos[2] = player->pos[2];
object->surfaceHeight = player->unk_074;
- func_800563DC(ObjectIndex, cameraId, primAlpha);
- func_8005669C(ObjectIndex, cameraId, primAlpha);
- func_800568A0(ObjectIndex, cameraId);
+ func_800563DC(_objectIndex, cameraId, primAlpha);
+ func_8005669C(_objectIndex, cameraId, primAlpha);
+ func_800568A0(_objectIndex, cameraId);
}
}
return;
@@ -358,27 +359,27 @@ void OBombKart::Draw(s32 cameraId) {
}
Camera* camera = &camera1[cameraId];
if (cameraId == PLAYER_ONE) {
- if (is_obj_flag_status_active(ObjectIndex, 0x00200000) != 0) {
+ if (is_obj_flag_status_active(_objectIndex, 0x00200000) != 0) {
Unk_4A = 0;
} else if (gGamestate != ENDING) {
Unk_4A = 1;
}
- clear_object_flag(ObjectIndex, 0x00200000);
+ clear_object_flag(_objectIndex, 0x00200000);
}
// huh???
s32 state = State;
if (State != States::DISABLED) {
- gObjectList[ObjectIndex].pos[0] = Pos[0];
- gObjectList[ObjectIndex].pos[1] = Pos[1];
- gObjectList[ObjectIndex].pos[2] = Pos[2];
- s32 temp_s4 = func_8008A364(ObjectIndex, cameraId, 0x31C4U, 0x000001F4);
- if (is_obj_flag_status_active(ObjectIndex, VISIBLE) != 0) {
- set_object_flag(ObjectIndex, 0x00200000);
+ gObjectList[_objectIndex].pos[0] = Pos[0];
+ gObjectList[_objectIndex].pos[1] = Pos[1];
+ gObjectList[_objectIndex].pos[2] = Pos[2];
+ s32 temp_s4 = func_8008A364(_objectIndex, cameraId, 0x31C4U, 0x000001F4);
+ if (is_obj_flag_status_active(_objectIndex, VISIBLE) != 0) {
+ set_object_flag(_objectIndex, 0x00200000);
D_80183E80[0] = 0;
D_80183E80[1] = func_800418AC(Pos[0], Pos[2], camera->pos);
D_80183E80[2] = 0x8000;
- func_800563DC(ObjectIndex, cameraId, 0x000000FF);
+ func_800563DC(_objectIndex, cameraId, 0x000000FF);
OBombKart::SomeRender(camera->pos);
if (((u32) temp_s4 < 0x4E21U) && (state != BOMB_STATE_EXPLODED)) {
OBombKart::LoadMtx();