diff options
| author | KiritoDv <36680385+KiritoDv@users.noreply.github.com> | 2025-05-16 02:44:40 +0000 |
|---|---|---|
| committer | github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> | 2025-05-16 02:44:40 +0000 |
| commit | b53a5dbcfa24ef2aa4860b6d9512709976686de8 (patch) | |
| tree | 441f2bb9c0bc8f955eb9289d19b13beab5c239c5 /src/engine/objects | |
| parent | bdf5ca8d603ae56ac275bebf9fde58ae72484d76 (diff) | |
clang formatclang-format
Diffstat (limited to 'src/engine/objects')
42 files changed, 442 insertions, 471 deletions
diff --git a/src/engine/objects/Bat.cpp b/src/engine/objects/Bat.cpp index 764476064..0c74f3582 100644 --- a/src/engine/objects/Bat.cpp +++ b/src/engine/objects/Bat.cpp @@ -22,7 +22,7 @@ OBat::OBat(const FVector& pos, const IRotator& rot) { Name = "Bat"; find_unused_obj_index(&_objectIndex); - init_texture_object(_objectIndex, (uint8_t*)d_course_banshee_boardwalk_bat_tlut, sBoardwalkTexList, 0x20U, + init_texture_object(_objectIndex, (uint8_t*) d_course_banshee_boardwalk_bat_tlut, sBoardwalkTexList, 0x20U, (u16) 0x00000040); gObjectList[_objectIndex].orientation[0] = rot.pitch; gObjectList[_objectIndex].orientation[1] = rot.roll; @@ -107,8 +107,8 @@ void OBat::Draw(s32 cameraId) { objectIndex = _objectIndex; temp_s7 = &camera1[cameraId]; - OBat::func_80046F60((u8*)gObjectList[objectIndex].activeTLUT, (u8*)gObjectList[objectIndex].activeTexture, 0x00000020, 0x00000040, - 5); + OBat::func_80046F60((u8*) gObjectList[objectIndex].activeTLUT, (u8*) gObjectList[objectIndex].activeTexture, + 0x00000020, 0x00000040, 5); D_80183E80[0] = gObjectList[objectIndex].orientation[0]; D_80183E80[2] = gObjectList[objectIndex].orientation[2]; if ((D_8018CFB0 != 0) || (D_8018CFC8 != 0)) { @@ -122,7 +122,7 @@ void OBat::Draw(s32 cameraId) { D_80183E80[1] = func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], temp_s7->pos); func_800431B0(gObjectList[objectIndex].pos, D_80183E80, gObjectList[objectIndex].sizeScaling, - (Vtx*)D_0D0062B0); + (Vtx*) D_0D0062B0); } } } @@ -137,7 +137,7 @@ void OBat::Draw(s32 cameraId) { D_80183E80[1] = func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], temp_s7->pos); func_800431B0(gObjectList[objectIndex].pos, D_80183E80, gObjectList[objectIndex].sizeScaling, - (Vtx*)D_0D0062B0); + (Vtx*) D_0D0062B0); } } } @@ -145,7 +145,7 @@ void OBat::Draw(s32 cameraId) { } void OBat::func_80046F60(u8* tlut, u8* arg1, s32 arg2, s32 arg3, s32 arg4) { - gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D007D78); + gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D007D78); gDPLoadTLUT_pal256(gDisplayListHead++, tlut); rsp_load_texture_mask(arg1, arg2, arg3, arg4); } diff --git a/src/engine/objects/Bat.h b/src/engine/objects/Bat.h index d6b7e8774..c6740c251 100644 --- a/src/engine/objects/Bat.h +++ b/src/engine/objects/Bat.h @@ -20,14 +20,14 @@ extern "C" { /** * OBat - * + * * IRotator does not appear to do anything. * Could not find where origin_pos was at. * So pos does not work either - * + * */ class OBat : public OObject { -public: + public: explicit OBat(const FVector& pos, const IRotator& rot); ~OBat() { @@ -51,7 +51,7 @@ public: void func_8007D794(s32 objectIndex); void func_8007DA4C(s32 objectIndex); -private: + private: FVector _pos; static size_t _count; size_t _idx; diff --git a/src/engine/objects/BombKart.cpp b/src/engine/objects/BombKart.cpp index 53b4a4262..414100b99 100644 --- a/src/engine/objects/BombKart.cpp +++ b/src/engine/objects/BombKart.cpp @@ -32,7 +32,7 @@ size_t OBombKart::_count = 0; 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}; + Vec3f _pos = { 0, 0, 0 }; if (waypoint) { // Spawn kart on waypoint _pos[0] = waypoint->posX; @@ -162,7 +162,7 @@ void OBombKart::Tick() { } } } - switch(state) { + switch (state) { case States::CCW: circleTimer = (circleTimer + 356) % 360; temp_t6 = (circleTimer * 0xFFFF) / 360; @@ -389,22 +389,21 @@ void OBombKart::Draw(s32 cameraId) { } void OBombKart::DrawBattle(s32 cameraId) { - } void OBombKart::SomeRender(Vec3f arg1) { D_80183E80[0] = 0; D_80183E80[2] = 0x8000; - gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D0079C8); + gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D0079C8); load_texture_block_rgba16_mirror((u8*) D_0D02AA58, 0x00000010, 0x00000010); D_80183E80[1] = func_800418AC(WheelPos[0][0], WheelPos[0][2], arg1); - func_800431B0(WheelPos[0], D_80183E80, 0.15f, (Vtx*)common_vtx_rectangle); + func_800431B0(WheelPos[0], D_80183E80, 0.15f, (Vtx*) common_vtx_rectangle); D_80183E80[1] = func_800418AC(WheelPos[1][0], WheelPos[1][2], arg1); - func_800431B0(WheelPos[1], D_80183E80, 0.15f, (Vtx*)common_vtx_rectangle); + func_800431B0(WheelPos[1], D_80183E80, 0.15f, (Vtx*) common_vtx_rectangle); D_80183E80[1] = func_800418AC(WheelPos[2][0], WheelPos[2][2], arg1); - func_800431B0(WheelPos[2], D_80183E80, 0.15f, (Vtx*)common_vtx_rectangle); + func_800431B0(WheelPos[2], D_80183E80, 0.15f, (Vtx*) common_vtx_rectangle); D_80183E80[1] = func_800418AC(WheelPos[3][0], WheelPos[3][2], arg1); - func_800431B0(WheelPos[3], D_80183E80, 0.15f, (Vtx*)common_vtx_rectangle); + func_800431B0(WheelPos[3], D_80183E80, 0.15f, (Vtx*) common_vtx_rectangle); gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF); } @@ -415,13 +414,13 @@ void OBombKart::LoadMtx() { D_80183E50[1] = CenterY + 1.0; D_80183E50[2] = Pos[2]; set_transform_matrix(mat, _Collision.orientationVector, D_80183E50, 0U, 0.5f); - //convert_to_fixed_point_matrix(&gGfxPool->mtxHud[gMatrixHudCount], mat); + // convert_to_fixed_point_matrix(&gGfxPool->mtxHud[gMatrixHudCount], mat); AddHudMatrix(mat, G_MTX_LOAD | G_MTX_NOPUSH | G_MTX_MODELVIEW); // gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxHud[gMatrixHudCount++]), // G_MTX_LOAD | G_MTX_NOPUSH | G_MTX_MODELVIEW); - gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D007B98); + gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D007B98); } void OBombKart::Waypoint(s32 screenId) { @@ -431,10 +430,14 @@ void OBombKart::Waypoint(s32 screenId) { playerWaypoint = gNearestWaypointByPlayerId[screenId]; playerHUD[screenId].unk_74 = 0; - if ((State == States::EXPLODE) || (State == States::DISABLED)) { return; }; + if ((State == States::EXPLODE) || (State == States::DISABLED)) { + return; + }; bombWaypoint = WaypointIndex; waypointDiff = bombWaypoint - playerWaypoint; - if ((waypointDiff < -5) || (waypointDiff > 0x1E)) { return; }; + if ((waypointDiff < -5) || (waypointDiff > 0x1E)) { + return; + }; playerHUD[screenId].unk_74 = 1; } @@ -452,7 +455,8 @@ Player* OBombKart::FindTarget() { void OBombKart::Chase(Player* player, Vec3f pos) { const f32 speed = 2.7f; // Speed the kart uses in a chase - if (!player) return; // Ensure player is valid + if (!player) + return; // Ensure player is valid // Calculate the directional vector toward the player Vec3f direction; @@ -482,7 +486,7 @@ void OBombKart::Chase(Player* player, Vec3f pos) { } if (xz_dist > 0.0f) { - + // Normalize the direction vector in the XZ plane direction[0] /= xz_dist; direction[2] /= xz_dist; @@ -504,4 +508,4 @@ void OBombKart::Chase(Player* player, Vec3f pos) { pos[2] = newPosition[2]; check_bounding_collision(&_Collision, 10.0f, pos[0], pos[1], pos[2]); -}
\ No newline at end of file +} diff --git a/src/engine/objects/BombKart.h b/src/engine/objects/BombKart.h index 29069a00f..b236a13d9 100644 --- a/src/engine/objects/BombKart.h +++ b/src/engine/objects/BombKart.h @@ -18,12 +18,12 @@ extern "C" { /** * Used in VS mode - * + * * This differs from the other vehicle classes in that it does not get added to the standard actor list * So this is sort of its own thing. Draw call in different place too. */ class OBombKart : public OObject { -public: + public: enum States : uint16_t { // 0,1,3,5 DISABLED, CCW, @@ -39,7 +39,7 @@ public: Vec3f Pos; Vec3f WheelPos[4]; //! @todo Turn WheelPos into a struct f32 Unk_3C; - u16 SomeRot; // Some angle + u16 SomeRot; // Some angle u16 WaypointIndex; // The waypoint the kart circles States State = States::DISABLED; u16 BounceTimer = 0; @@ -66,7 +66,8 @@ public: void SomeRender(Vec3f arg1); void LoadMtx(); void Waypoint(s32 screenId); -private: + + private: static size_t _count; s32 _idx; Player* FindTarget(); @@ -74,6 +75,4 @@ private: Vec3f _spawnPos; Player* _target = NULL; - - }; diff --git a/src/engine/objects/Boos.cpp b/src/engine/objects/Boos.cpp index 5bdbd41cf..bc3574e64 100644 --- a/src/engine/objects/Boos.cpp +++ b/src/engine/objects/Boos.cpp @@ -33,7 +33,6 @@ OBoos::OBoos(size_t numBoos, const IPathSpan& leftBoundary, const IPathSpan& act _indices.resize(numBoos, 0); - // Generate objects for (size_t i = 0; i < numBoos; i++) { find_unused_obj_index(&_indices[i]); @@ -54,7 +53,7 @@ void OBoos::Tick() { OBoos::func_8007CA70(); for (size_t i = 0; i < _numBoos; i++) { - objectIndex = _indices[i]; //indexObjectList3[i]; + objectIndex = _indices[i]; // indexObjectList3[i]; object = &gObjectList[objectIndex]; if (object->state != 0) { func_8007C684(objectIndex); @@ -82,7 +81,7 @@ void OBoos::Draw(s32 cameraId) { s32 objectIndex; for (size_t i = 0; i < _numBoos; i++) { - objectIndex = _indices[i]; //indexObjectList3[i]; + objectIndex = _indices[i]; // indexObjectList3[i]; if (gObjectList[objectIndex].state >= 2) { temp_s2 = func_8008A364(objectIndex, cameraId, 0x4000U, 0x00000320); if (CVarGetInteger("gNoCulling", 0) == 1) { @@ -103,7 +102,7 @@ void OBoos::func_800523B8(s32 objectIndex, s32 arg1, u32 arg2) { object = &gObjectList[objectIndex]; object->orientation[1] = func_800418AC(object->pos[0], object->pos[2], camera->pos); func_800484BC(object->pos, object->orientation, object->sizeScaling, object->primAlpha, (u8*) object->activeTLUT, - (u8*)object->activeTexture, object->vertex, 0x00000030, 0x00000028, 0x00000030, 0x00000028); + (u8*) object->activeTexture, object->vertex, 0x00000030, 0x00000028, 0x00000030, 0x00000028); if ((is_obj_flag_status_active(objectIndex, 0x00000020) != 0) && (arg2 < 0x15F91U)) { func_8004A630(&D_8018C830, object->pos, 0.4f); } @@ -138,7 +137,7 @@ void OBoos::func_8007CA70(void) { void OBoos::func_8007C5B4(s32 objectIndex) { Object* object; - init_texture_object(objectIndex, (u8*)d_course_banshee_boardwalk_boo_tlut, gTextureGhosts, 48, 40); + init_texture_object(objectIndex, (u8*) d_course_banshee_boardwalk_boo_tlut, gTextureGhosts, 48, 40); object = &gObjectList[objectIndex]; object->pos[0] = 0.0f; object->pos[1] = 0.0f; @@ -261,7 +260,7 @@ void OBoos::BooStart(s32 group, s32 playerId) { void OBoos::BooExit(s32 group) { s32 objectIndex; for (size_t i = 0; i < _numBoos; i++) { - objectIndex = _indices[i]; //indexObjectList3[group + temp_a0]; + objectIndex = _indices[i]; // indexObjectList3[group + temp_a0]; gObjectList[objectIndex].unk_0DC += 1; } diff --git a/src/engine/objects/Boos.h b/src/engine/objects/Boos.h index cc49df474..b6ead3fd2 100644 --- a/src/engine/objects/Boos.h +++ b/src/engine/objects/Boos.h @@ -20,23 +20,24 @@ extern "C" { /** * OBoos - * + * * Args use path indices or path points. Recommended to use a span of 10 * for each IPathSpan as that's how the original game did it. Ex. IPathSpan(10, 20) - * + * * Once boos are active, they do not deactivate until the player drives into leftBoundary * or rightBoundary. leftBoundary is really only used to deactivate the boos when the player is * driving in the reverse direction. - * + * * @arg numBoos to show, default 5, maximum 10 allowed due to limited splines * @arg leftBoundary When the player enters this area, deactivate the boos. * @arg active When the player enters this area, activate the boos. * @arg rightBoundary When the player enters this area, deactivate the boos. - * + * */ class OBoos : public OObject { -public: - explicit OBoos(size_t numBoos, const IPathSpan& leftBoundary, const IPathSpan& active, const IPathSpan& rightBoundary); + public: + explicit OBoos(size_t numBoos, const IPathSpan& leftBoundary, const IPathSpan& active, + const IPathSpan& rightBoundary); ~OBoos() { _count--; @@ -59,7 +60,7 @@ public: void BooExit(s32 someIndex); void func_8007C550(s32 objectIndex); -private: + private: FVector _pos; static size_t _count; size_t _idx; diff --git a/src/engine/objects/ChainChomp.cpp b/src/engine/objects/ChainChomp.cpp index 695df1e8a..fe5d45229 100644 --- a/src/engine/objects/ChainChomp.cpp +++ b/src/engine/objects/ChainChomp.cpp @@ -65,12 +65,12 @@ void OChainChomp::func_80055AB8(s32 objectIndex, s32 cameraId) { D_80183E80[1] = func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], camera->pos); D_80183E80[2] = 0x8000; - func_800468E0(D_80183E40, D_80183E80, 0.54f, (u8*)d_course_rainbow_road_sphere, (Vtx*)D_0D0062B0, 0x00000020, - 0x00000040, 0x00000020, 0x00000040, 5); + func_800468E0(D_80183E40, D_80183E80, 0.54f, (u8*) d_course_rainbow_road_sphere, (Vtx*) D_0D0062B0, + 0x00000020, 0x00000040, 0x00000020, 0x00000040, 5); } else { rsp_set_matrix_transformation(gObjectList[objectIndex].pos, gObjectList[objectIndex].direction_angle, gObjectList[objectIndex].sizeScaling); - gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D0077D0); + gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D0077D0); render_animated_model((Armature*) gObjectList[objectIndex].model, (Animation**) gObjectList[objectIndex].vertex, 0, (s16) gObjectList[objectIndex].textureListIndex); @@ -99,7 +99,6 @@ void OChainChomp::func_80085878(s32 objectIndex, s32 arg1) { object_next_state(objectIndex); } - void OChainChomp::func_800859C8(s32 objectIndex, s32 arg1) { Object* object; @@ -119,8 +118,3 @@ void OChainChomp::func_800859C8(s32 objectIndex, s32 arg1) { } func_80074344(objectIndex, &object->surfaceHeight, -0.8f, 0.8f, 0.03f, 0, -1); } - - - - - diff --git a/src/engine/objects/ChainChomp.h b/src/engine/objects/ChainChomp.h index e1eb35347..174f24930 100644 --- a/src/engine/objects/ChainChomp.h +++ b/src/engine/objects/ChainChomp.h @@ -21,10 +21,9 @@ extern "C" { * Animation crash for custom courses */ class OChainChomp : public OObject { -public: + public: explicit OChainChomp(); - ~OChainChomp() { _count--; } @@ -40,7 +39,7 @@ public: void func_80085878(s32 objectIndex, s32 arg1); void func_800859C8(s32 objectIndex, s32 arg1); -private: + private: FVector _pos; static size_t _count; size_t _idx; diff --git a/src/engine/objects/CheepCheep.cpp b/src/engine/objects/CheepCheep.cpp index 5b4157c61..eb83c9922 100644 --- a/src/engine/objects/CheepCheep.cpp +++ b/src/engine/objects/CheepCheep.cpp @@ -57,22 +57,22 @@ void OCheepCheep::Draw(s32 cameraId) { // func_8005217C object = &gObjectList[temp_a3]; if (object->state >= 2) { if (is_obj_flag_status_active(temp_a3, 0x10) != 0) { - rsp_set_matrix_transformation(object->pos, object->direction_angle, object->sizeScaling); - func_800520C0(temp_a3); + rsp_set_matrix_transformation(object->pos, object->direction_angle, object->sizeScaling); + func_800520C0(temp_a3); - gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D007828); + gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D007828); gSPLight(gDisplayListHead++, &D_800E45C0l[0].l[0], LIGHT_1); gSPLight(gDisplayListHead++, &D_800E45C0l[0].a, LIGHT_2); - gSPDisplayList(gDisplayListHead++, (Gfx*)d_course_banshee_boardwalk_dl_7B38); + gSPDisplayList(gDisplayListHead++, (Gfx*) d_course_banshee_boardwalk_dl_7B38); gSPLight(gDisplayListHead++, &D_800E45C0l[1].l[0], LIGHT_1); gSPLight(gDisplayListHead++, &D_800E45C0l[1].a, LIGHT_2); - gSPDisplayList(gDisplayListHead++, (Gfx*)d_course_banshee_boardwalk_dl_7978); + gSPDisplayList(gDisplayListHead++, (Gfx*) d_course_banshee_boardwalk_dl_7978); gSPLight(gDisplayListHead++, &D_800E45C0l[2].l[0], LIGHT_1); gSPLight(gDisplayListHead++, &D_800E45C0l[2].a, LIGHT_2); - gSPDisplayList(gDisplayListHead++, (Gfx*)d_course_banshee_boardwalk_dl_78C0); + gSPDisplayList(gDisplayListHead++, (Gfx*) d_course_banshee_boardwalk_dl_78C0); gSPLight(gDisplayListHead++, &D_800E45C0l[3].l[0], LIGHT_1); gSPLight(gDisplayListHead++, &D_800E45C0l[3].a, LIGHT_2); - gSPDisplayList(gDisplayListHead++, (Gfx*)d_course_banshee_boardwalk_dl_7650); + gSPDisplayList(gDisplayListHead++, (Gfx*) d_course_banshee_boardwalk_dl_7650); } } } @@ -84,7 +84,7 @@ void OCheepCheep::func_8007BBBC(s32 objectIndex) { object = &gObjectList[objectIndex]; switch (object->state) { case 1: - func_800735BC(objectIndex, (Gfx*)d_course_banshee_boardwalk_dl_cheep_cheep, 2.0f); + func_800735BC(objectIndex, (Gfx*) d_course_banshee_boardwalk_dl_cheep_cheep, 2.0f); set_object_flag(objectIndex, 0x00000010); object->unk_0D5 = 0; break; @@ -129,7 +129,7 @@ void OCheepCheep::init_var_cheep_cheep(s32 objectIndex) { object = &gObjectList[objectIndex]; object->unk_0D5 = 1; object->status = 0; - object->model = (Gfx*)d_course_banshee_boardwalk_dl_cheep_cheep; + object->model = (Gfx*) d_course_banshee_boardwalk_dl_cheep_cheep; object->sizeScaling = 0.2f; object_next_state(objectIndex); set_obj_origin_pos(objectIndex, D_800E634C[0][0], D_800E634C[0][1] + 55.0, D_800E634C[0][2]); diff --git a/src/engine/objects/CheepCheep.h b/src/engine/objects/CheepCheep.h index 32e9a5aeb..db7d05ed3 100644 --- a/src/engine/objects/CheepCheep.h +++ b/src/engine/objects/CheepCheep.h @@ -15,19 +15,13 @@ extern "C" { #include "some_data.h" } - class OCheepCheep : public OObject { -public: - enum CheepType { - RACE, - PODIUM_CEREMONY - }; - - enum Behaviour : uint16_t { - }; + public: + enum CheepType { RACE, PODIUM_CEREMONY }; -public: + enum Behaviour : uint16_t {}; + public: explicit OCheepCheep(const FVector& pos, CheepType type, IPathSpan span); virtual void Tick() override; @@ -38,11 +32,9 @@ public: void func_8007BEC8(s32 objectIndex); void func_8007BFB0(s32 objectIndex); -private: - + private: s32 _idx; CheepType _type; FVector _spawnPos; IPathSpan _span; - }; diff --git a/src/engine/objects/Crab.cpp b/src/engine/objects/Crab.cpp index 82d2b9330..eabd60c96 100644 --- a/src/engine/objects/Crab.cpp +++ b/src/engine/objects/Crab.cpp @@ -4,7 +4,6 @@ #include <vector> #include "CoreMath.h" - #include "port/Game.h" extern "C" { @@ -66,8 +65,7 @@ void OCrab::Draw(s32 cameraId) { func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], camera->pos); draw_2d_texture_at(gObjectList[objectIndex].pos, gObjectList[objectIndex].orientation, gObjectList[objectIndex].sizeScaling, (u8*) gObjectList[objectIndex].activeTLUT, - (uint8_t*)gObjectList[objectIndex].activeTexture, vtx, 64, 64, - 64, 32); + (uint8_t*) gObjectList[objectIndex].activeTexture, vtx, 64, 64, 64, 32); } } @@ -76,14 +74,18 @@ void OCrab::DrawModel(s32 cameraId) { s32 objectIndex = _objectIndex; func_8008A364(objectIndex, cameraId, 0x2AABU, 800); if (is_obj_flag_status_active(objectIndex, VISIBLE) != 0) { - Camera *camera; + Camera* camera; s32 objectIndex; if (gObjectList[objectIndex].state >= 2) { camera = &camera1[cameraId]; func_8004A6EC(objectIndex, 0.5f); - gObjectList[objectIndex].orientation[1] = func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], camera->pos); - draw_2d_texture_at(gObjectList[objectIndex].pos, gObjectList[objectIndex].orientation, gObjectList[objectIndex].sizeScaling, (u8*) gObjectList[objectIndex].activeTLUT, (u8*)gObjectList[objectIndex].activeTexture, (Vtx*)common_vtx_hedgehog, 0x00000040, 0x00000040, 0x00000040, 0x00000020); + gObjectList[objectIndex].orientation[1] = + func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], camera->pos); + draw_2d_texture_at(gObjectList[objectIndex].pos, gObjectList[objectIndex].orientation, + gObjectList[objectIndex].sizeScaling, (u8*) gObjectList[objectIndex].activeTLUT, + (u8*) gObjectList[objectIndex].activeTexture, (Vtx*) common_vtx_hedgehog, 0x00000040, + 0x00000040, 0x00000040, 0x00000020); } } } diff --git a/src/engine/objects/Crab.h b/src/engine/objects/Crab.h index 4cadd3b87..450fa6597 100644 --- a/src/engine/objects/Crab.h +++ b/src/engine/objects/Crab.h @@ -20,16 +20,16 @@ extern "C" { /** * @arg start x and z spawn location * @arg end x and z patrol location - * + * * Crab patrols between start and end. * The game automatically places the actor on the course surface. * Therefore, providing a Y height is unnecessary. - * + * * Crab appears to have a maximum patrolling distance and will patrol between * end --> max distance rather than start --> end or start --> max distance. */ class OCrab : public OObject { -public: + public: explicit OCrab(const FVector2D& start, const FVector2D& end); virtual void Tick() override; @@ -41,7 +41,7 @@ public: void func_80082C30(s32 objectIndex); void func_80082E18(s32 objectIndex); -private: + private: FVector2D _start; FVector2D _end; static size_t _count; diff --git a/src/engine/objects/Flagpole.cpp b/src/engine/objects/Flagpole.cpp index acd74ba2b..e79f20155 100644 --- a/src/engine/objects/Flagpole.cpp +++ b/src/engine/objects/Flagpole.cpp @@ -48,7 +48,7 @@ void OFlagpole::Draw(s32 cameraId) { // func_80055228 void OFlagpole::func_80055164(s32 objectIndex) { // func_80055164 if (gObjectList[objectIndex].state >= 2) { - gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D0077A0); + gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D0077A0); rsp_set_matrix_transformation(gObjectList[objectIndex].pos, gObjectList[objectIndex].direction_angle, gObjectList[objectIndex].sizeScaling); if (gIsGamePaused == 0) { diff --git a/src/engine/objects/Flagpole.h b/src/engine/objects/Flagpole.h index 5824fcf18..d3341b52c 100644 --- a/src/engine/objects/Flagpole.h +++ b/src/engine/objects/Flagpole.h @@ -18,7 +18,7 @@ extern "C" { } class OFlagpole : public OObject { -public: + public: explicit OFlagpole(const FVector& pos, s16 direction); ~OFlagpole() { @@ -37,7 +37,7 @@ public: void func_80083018(s32 objectIndex); void func_80083060(s32 objectIndex); -private: + private: FVector _pos; s16 _direction; static size_t _count; diff --git a/src/engine/objects/GrandPrixBalloons.cpp b/src/engine/objects/GrandPrixBalloons.cpp index 819bde1c6..66cdc17cd 100644 --- a/src/engine/objects/GrandPrixBalloons.cpp +++ b/src/engine/objects/GrandPrixBalloons.cpp @@ -73,7 +73,7 @@ void OGrandPrixBalloons::Draw(s32 cameraId) { return; } - gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D007E98); + gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D007E98); gDPLoadTLUT_pal256(gDisplayListHead++, gTLUTOnomatopoeia); func_8004B614(0, 0, 0, 0, 0, 0, 0); gDPSetAlphaCompare(gDisplayListHead++, G_AC_THRESHOLD); @@ -84,14 +84,14 @@ void OGrandPrixBalloons::Draw(s32 cameraId) { GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA)); D_80183E80[0] = 0; D_80183E80[1] = 0x8000; - rsp_load_texture((uint8_t*)gTextureBalloon1, 64, 32); + rsp_load_texture((uint8_t*) gTextureBalloon1, 64, 32); for (var_s1 = 0; var_s1 < _numBalloons; var_s1++) { objectIndex = gObjectParticle3[var_s1]; if ((objectIndex != NULL_OBJECT_ID) && (gObjectList[objectIndex].state >= 2)) { OGrandPrixBalloons::func_80053D74(objectIndex, cameraId, 0); } } - rsp_load_texture((uint8_t*)gTextureBalloon2, 64, 32); + rsp_load_texture((uint8_t*) gTextureBalloon2, 64, 32); for (var_s1 = 0; var_s1 < _numBalloons; var_s1++) { objectIndex = gObjectParticle3[var_s1]; if ((objectIndex != NULL_OBJECT_ID) && (gObjectList[objectIndex].state >= 2)) { @@ -112,8 +112,8 @@ void OGrandPrixBalloons::func_80053D74(s32 objectIndex, UNUSED s32 arg1, s32 ver set_color_render((s32) object->unk_084[0], (s32) object->unk_084[1], (s32) object->unk_084[2], (s32) object->unk_084[3], (s32) object->unk_084[4], (s32) object->unk_084[5], (s32) object->primAlpha); - gSPVertex(gDisplayListHead++, (uintptr_t)&vtx[vertexIndex], 4, 0); - gSPDisplayList(gDisplayListHead++, (Gfx*)common_rectangle_display); + gSPVertex(gDisplayListHead++, (uintptr_t) &vtx[vertexIndex], 4, 0); + gSPDisplayList(gDisplayListHead++, (Gfx*) common_rectangle_display); } } @@ -209,7 +209,8 @@ void OGrandPrixBalloons::func_80074E28(s32 objectIndex) { case 0: break; case 3: - OGrandPrixBalloons::func_80041480(&gObjectList[objectIndex].unk_084[6], -0x1000, 0x1000, &gObjectList[objectIndex].unk_084[7]); + OGrandPrixBalloons::func_80041480(&gObjectList[objectIndex].unk_084[6], -0x1000, 0x1000, + &gObjectList[objectIndex].unk_084[7]); if (gObjectList[objectIndex].unk_0AE == 0) { func_80072428(objectIndex); } @@ -228,4 +229,4 @@ void OGrandPrixBalloons::func_80041480(s16* arg0, s16 arg1, s16 arg2, s16* arg3) *arg0 = arg1; *arg3 = -*arg3; } -}
\ No newline at end of file +} diff --git a/src/engine/objects/GrandPrixBalloons.h b/src/engine/objects/GrandPrixBalloons.h index 93ec04479..f3baea750 100644 --- a/src/engine/objects/GrandPrixBalloons.h +++ b/src/engine/objects/GrandPrixBalloons.h @@ -17,14 +17,11 @@ extern "C" { #include "some_data.h" } - - /** * Grand Prix Balloons OObject */ class OGrandPrixBalloons : public OObject { -public: - + public: explicit OGrandPrixBalloons(const FVector& pos); ~OGrandPrixBalloons() { @@ -44,7 +41,7 @@ public: void func_80074E28(s32 objectIndex); void func_80041480(s16* arg0, s16 arg1, s16 arg2, s16* arg3); // Some weird math function -private: + private: static size_t _count; s32 _idx; FVector Pos; diff --git a/src/engine/objects/Hedgehog.cpp b/src/engine/objects/Hedgehog.cpp index ebc5b30bb..230d7330b 100644 --- a/src/engine/objects/Hedgehog.cpp +++ b/src/engine/objects/Hedgehog.cpp @@ -25,7 +25,7 @@ OHedgehog::OHedgehog(const FVector& pos, const FVector2D& patrolPoint, s16 unk) gObjectList[objectId].pos[0] = gObjectList[objectId].origin_pos[0] = pos.x * xOrientation; gObjectList[objectId].pos[1] = gObjectList[objectId].surfaceHeight = pos.y + 6.0; gObjectList[objectId].pos[2] = gObjectList[objectId].origin_pos[2] = pos.z; - gObjectList[objectId].unk_0D5 = (u8)unk; + gObjectList[objectId].unk_0D5 = (u8) unk; gObjectList[objectId].unk_09C = patrolPoint.x * xOrientation; gObjectList[objectId].unk_09E = patrolPoint.z; @@ -38,10 +38,10 @@ void OHedgehog::Tick() { OHedgehog::func_800833D0(objectIndex, _idx); OHedgehog::func_80083248(objectIndex); OHedgehog::func_80083474(objectIndex); - + // This func clears a bit from all hedgehogs. This results in setting the height of all hedgehogs to zero. // The solution is to only clear the bit from the current instance; `self` or `this` - //func_80072120(indexObjectList2, NUM_HEDGEHOGS); + // func_80072120(indexObjectList2, NUM_HEDGEHOGS); clear_object_flag(objectIndex, 0x00600000); // The fix } @@ -78,7 +78,8 @@ void OHedgehog::func_800555BC(s32 objectIndex, s32 cameraId) { func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], camera->pos); draw_2d_texture_at(gObjectList[objectIndex].pos, gObjectList[objectIndex].orientation, gObjectList[objectIndex].sizeScaling, (u8*) gObjectList[objectIndex].activeTLUT, - (u8*)gObjectList[objectIndex].activeTexture, gObjectList[objectIndex].vertex, 64, 64, 64, 32); + (u8*) gObjectList[objectIndex].activeTexture, gObjectList[objectIndex].vertex, 64, 64, 64, + 32); } } @@ -98,7 +99,7 @@ void OHedgehog::func_8004A870(s32 objectIndex, f32 arg1) { // G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); AddHudMatrix(mtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D007B98); + gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D007B98); } } @@ -108,7 +109,8 @@ void OHedgehog::func_8008311C(s32 objectIndex, s32 arg1) { Object* object; Vtx* vtx = (Vtx*) LOAD_ASSET_RAW(common_vtx_hedgehog); - init_texture_object(objectIndex, (u8*)d_course_yoshi_valley_hedgehog_tlut, sHedgehogTexList, 0x40U, (u16) 0x00000040); + init_texture_object(objectIndex, (u8*) d_course_yoshi_valley_hedgehog_tlut, sHedgehogTexList, 0x40U, + (u16) 0x00000040); object = &gObjectList[objectIndex]; object->activeTLUT = d_course_yoshi_valley_hedgehog_tlut; object->activeTexture = d_course_yoshi_valley_hedgehog; diff --git a/src/engine/objects/Hedgehog.h b/src/engine/objects/Hedgehog.h index 2057d894d..eab1fde15 100644 --- a/src/engine/objects/Hedgehog.h +++ b/src/engine/objects/Hedgehog.h @@ -23,7 +23,7 @@ extern "C" { * @arg unk unknown. Likely actor type. */ class OHedgehog : public OObject { -public: + public: explicit OHedgehog(const FVector& pos, const FVector2D& patrolPoint, s16 unk); ~OHedgehog() { @@ -45,8 +45,7 @@ public: void func_800833D0(s32 objectIndex, s32 arg1); void func_80083474(s32 objectIndex); - -private: + private: FVector _pos; static size_t _count; size_t _idx; diff --git a/src/engine/objects/HotAirBalloon.cpp b/src/engine/objects/HotAirBalloon.cpp index 4e337d98e..242731378 100644 --- a/src/engine/objects/HotAirBalloon.cpp +++ b/src/engine/objects/HotAirBalloon.cpp @@ -22,7 +22,7 @@ OHotAirBalloon::OHotAirBalloon(const FVector& pos) { // Spawn balloon on second lap. if (GetCourse() == GetLuigiRaceway()) { - _visible = (bool*)&D_80165898; + _visible = (bool*) &D_80165898; } else { // Spawn balloon on race start bool mod = true; _visible = &mod; @@ -35,7 +35,7 @@ OHotAirBalloon::OHotAirBalloon(const FVector& pos) { void OHotAirBalloon::Tick() { s32 objectIndex = _objectIndex; - + if (*_visible) { if (gObjectList[objectIndex].state != 0) { OHotAirBalloon::func_80085768(objectIndex); @@ -78,8 +78,8 @@ void OHotAirBalloon::func_80055CCC(s32 objectIndex, s32 cameraId) { func_8004A6EC(objectIndex, (20.0 / test) + 0.5); if (is_obj_index_flag_status_inactive(objectIndex, 0x00100000) != 0) { func_80043328(gObjectList[objectIndex].pos, (u16*) gObjectList[objectIndex].direction_angle, - gObjectList[objectIndex].sizeScaling, (Gfx*)d_course_luigi_raceway_dl_F960); - gSPDisplayList(gDisplayListHead++, (Gfx*)d_course_luigi_raceway_dl_F650); + gObjectList[objectIndex].sizeScaling, (Gfx*) d_course_luigi_raceway_dl_F960); + gSPDisplayList(gDisplayListHead++, (Gfx*) d_course_luigi_raceway_dl_F650); } else { D_80183E80[0] = (s16) gObjectList[objectIndex].direction_angle[0]; D_80183E80[1] = @@ -87,8 +87,8 @@ void OHotAirBalloon::func_80055CCC(s32 objectIndex, s32 cameraId) { 0x8000); D_80183E80[2] = (u16) gObjectList[objectIndex].direction_angle[2]; func_80043328(gObjectList[objectIndex].pos, D_80183E80, gObjectList[objectIndex].sizeScaling, - (Gfx*)d_course_luigi_raceway_dl_FBE0); - gSPDisplayList(gDisplayListHead++, (Gfx*)d_course_luigi_raceway_dl_FA20); + (Gfx*) d_course_luigi_raceway_dl_FBE0); + gSPDisplayList(gDisplayListHead++, (Gfx*) d_course_luigi_raceway_dl_FA20); if (gPlayerCountSelection1 == 1) { gObjectList[objectIndex].direction_angle[1] = 0; } @@ -98,7 +98,7 @@ void OHotAirBalloon::func_80055CCC(s32 objectIndex, s32 cameraId) { void OHotAirBalloon::init_hot_air_balloon(s32 objectIndex) { gObjectList[objectIndex].sizeScaling = 1.0f; - gObjectList[objectIndex].model = (Gfx*)d_course_luigi_raceway_dl_F960; + gObjectList[objectIndex].model = (Gfx*) d_course_luigi_raceway_dl_F960; if (gGamestate != CREDITS_SEQUENCE) { set_obj_origin_pos(objectIndex, xOrientation * _pos.x, _pos.y, _pos.z); set_obj_origin_offset(objectIndex, 0.0f, 300.0f, 0.0f); diff --git a/src/engine/objects/HotAirBalloon.h b/src/engine/objects/HotAirBalloon.h index 301e111c4..c80422348 100644 --- a/src/engine/objects/HotAirBalloon.h +++ b/src/engine/objects/HotAirBalloon.h @@ -18,7 +18,7 @@ extern "C" { } class OHotAirBalloon : public OObject { -public: + public: explicit OHotAirBalloon(const FVector& pos); virtual void Tick() override; @@ -28,7 +28,7 @@ public: void func_80085534(s32 objectIndex); void func_80085768(s32 objectIndex); -private: + private: FVector _pos; - bool *_visible; + bool* _visible; }; diff --git a/src/engine/objects/Lakitu.cpp b/src/engine/objects/Lakitu.cpp index 12ca2d7db..4998dc0a9 100644 --- a/src/engine/objects/Lakitu.cpp +++ b/src/engine/objects/Lakitu.cpp @@ -31,7 +31,7 @@ extern "C" { #include "course_offsets.h" #include "data/some_data.h" #include "race_logic.h" -#include "effects.h" +#include "effects.h" #include "memory.h" extern s8 gPlayerCount; } @@ -40,11 +40,11 @@ OLakitu::OLakitu(s32 playerId, LakituType type) { Name = "Lakitu"; _playerId = playerId; - init_object(gIndexLakituList[playerId], (s32)type); + init_object(gIndexLakituList[playerId], (s32) type); } void OLakitu::Activate(LakituType type) { - init_object(gIndexLakituList[_playerId], (s32)type); + init_object(gIndexLakituList[_playerId], (s32) type); } void OLakitu::Tick() { @@ -104,13 +104,14 @@ void OLakitu::Draw(s32 cameraId) { object->orientation[2] = 0x8000; if (func_80072354(objectIndex, 2) != 0) { draw_2d_texture_at(object->pos, object->orientation, object->sizeScaling, (u8*) object->activeTLUT, - (u8*)object->activeTexture, object->vertex, (s32) object->textureWidth, + (u8*) object->activeTexture, object->vertex, (s32) object->textureWidth, (s32) object->textureHeight, (s32) object->textureWidth, (s32) object->textureHeight / 2); } else { func_800485C4(object->pos, object->orientation, object->sizeScaling, (s32) object->primAlpha, - (u8*) object->activeTLUT, (u8*)object->activeTexture, object->vertex, (s32) object->textureWidth, - (s32) object->textureHeight, (s32) object->textureWidth, (s32) object->textureHeight / 2); + (u8*) object->activeTLUT, (u8*) object->activeTexture, object->vertex, + (s32) object->textureWidth, (s32) object->textureHeight, (s32) object->textureWidth, + (s32) object->textureHeight / 2); } if (gScreenModeSelection == SCREEN_MODE_1P) { var_f0 = object->pos[0] - camera->pos[0]; @@ -362,7 +363,7 @@ void OLakitu::func_800797AC(s32 playerId) { objectIndex = gIndexLakituList[playerId]; player = &gPlayerOne[playerId]; - //if ((GetCourse() == GetSherbetLand()) && (player->unk_0CA & 1)) { + // if ((GetCourse() == GetSherbetLand()) && (player->unk_0CA & 1)) { if ((CM_GetProps()->LakituTowType == LakituTowType::ICE) && (player->unk_0CA & 1)) { init_object(objectIndex, 7); player->unk_0CA |= 0x10; @@ -765,14 +766,12 @@ void OLakitu::func_8007A66C(s32 objectIndex) { u16 rot = 0x8000 - camera->rot[1]; gObjectList[objectIndex].pos[0] = - (player->pos[0] + - (coss(rot) * (gObjectList[objectIndex].origin_pos[0] + gObjectList[objectIndex].offset[0]))) - + (player->pos[0] + (coss(rot) * (gObjectList[objectIndex].origin_pos[0] + gObjectList[objectIndex].offset[0]))) - (sins(rot) * (gObjectList[objectIndex].origin_pos[2] + gObjectList[objectIndex].offset[2])); gObjectList[objectIndex].pos[1] = player->unk_074 + gObjectList[objectIndex].origin_pos[1] + gObjectList[objectIndex].offset[1]; gObjectList[objectIndex].pos[2] = - (player->pos[2] + - (sins(rot) * (gObjectList[objectIndex].origin_pos[0] + gObjectList[objectIndex].offset[0]))) + + (player->pos[2] + (sins(rot) * (gObjectList[objectIndex].origin_pos[0] + gObjectList[objectIndex].offset[0]))) + (coss(rot) * (gObjectList[objectIndex].origin_pos[2] + gObjectList[objectIndex].offset[2])); } @@ -780,16 +779,14 @@ void OLakitu::func_8007A778(s32 objectIndex) { Player* player = &gPlayers[_playerId]; Camera* camera = &cameras[_playerId]; u16 rot = 0x8000 - camera->rot[1]; - + gObjectList[objectIndex].pos[0] = - (player->pos[0] + - (coss(rot) * (gObjectList[objectIndex].origin_pos[0] + gObjectList[objectIndex].offset[0]))) - + (player->pos[0] + (coss(rot) * (gObjectList[objectIndex].origin_pos[0] + gObjectList[objectIndex].offset[0]))) - (sins(rot) * (gObjectList[objectIndex].origin_pos[2] + gObjectList[objectIndex].offset[2])); gObjectList[objectIndex].pos[1] = player->pos[1] + gObjectList[objectIndex].origin_pos[1] + gObjectList[objectIndex].offset[1]; gObjectList[objectIndex].pos[2] = - (player->pos[2] + - (sins(rot) * (gObjectList[objectIndex].origin_pos[0] + gObjectList[objectIndex].offset[0]))) + + (player->pos[2] + (sins(rot) * (gObjectList[objectIndex].origin_pos[0] + gObjectList[objectIndex].offset[0]))) + (coss(rot) * (gObjectList[objectIndex].origin_pos[2] + gObjectList[objectIndex].offset[2])); } @@ -801,7 +798,7 @@ void OLakitu::func_8007A88C(s32 playerId) { player = &gPlayerOne[playerId]; if ((gObjectList[objectIndex].state == 0) && (player->effects & 0x400000)) { - //func_800790E4(playerId); + // func_800790E4(playerId); init_object(gIndexLakituList[playerId], 6); } } @@ -819,7 +816,7 @@ void OLakitu::func_8007AA44(s32 playerId) { OLakitu::func_8007A910(playerId); objectIndex = gIndexLakituList[playerId]; - gLakituTexturePtr = (const char**)&gLakituTextureBuffer[playerId]; + gLakituTexturePtr = (const char**) &gLakituTextureBuffer[playerId]; switch (gObjectList[objectIndex].unk_0D8) { case 1: OLakitu::func_80079114(objectIndex, playerId, 2); @@ -854,4 +851,3 @@ void OLakitu::func_8007AA44(s32 playerId) { break; } } - diff --git a/src/engine/objects/Lakitu.h b/src/engine/objects/Lakitu.h index 1944733ee..514b041db 100644 --- a/src/engine/objects/Lakitu.h +++ b/src/engine/objects/Lakitu.h @@ -20,11 +20,11 @@ extern "C" { * Otherwise Lakitu will animate faster than normal. */ class OLakitu : public OObject { -public: + public: enum LakituType : uint32_t { STARTER = 1, FINISH, // Checkered flag - TOW, // Picks up an out of bounds player + TOW, // Picks up an out of bounds player SECOND_LAP, FINAL_LAP, REVERSE, @@ -36,7 +36,7 @@ public: ICE, // Used in sherbet land to put an ice-cube on the player }; -public: + public: explicit OLakitu(s32 playerId, LakituType type); void Activate(LakituType type); // Triggers Lakitu into a behaviour @@ -76,7 +76,7 @@ public: void func_8007A910(s32 arg0); void func_8007AA44(s32 playerId); // animate lakitu -private: + private: LakituType _type; s32 _playerId; }; diff --git a/src/engine/objects/Mole.cpp b/src/engine/objects/Mole.cpp index 06bd5f56c..b9c542f0c 100644 --- a/src/engine/objects/Mole.cpp +++ b/src/engine/objects/Mole.cpp @@ -145,7 +145,7 @@ void OMole::func_80081AFC(s32 objectIndex, s32 arg1) { // sp2C = D_8018D1B8; // break; // } - //sp2C[object->type] = 0; + // sp2C[object->type] = 0; } break; case 0: @@ -179,20 +179,20 @@ void OMole::func_8008153C(s32 objectIndex) { } u8* mole = (u8*) LOAD_ASSET_RAW(d_course_moo_moo_farm_mole_dirt); - init_object(loopObjectIndex, 0); - gObjectList[loopObjectIndex].activeTLUT = d_course_moo_moo_farm_mole_dirt; - gObjectList[loopObjectIndex].tlutList = mole; - gObjectList[loopObjectIndex].sizeScaling = 0.15f; - gObjectList[loopObjectIndex].velocity[1] = random_int(0x000AU); - gObjectList[loopObjectIndex].velocity[1] = (gObjectList[loopObjectIndex].velocity[1] * 0.1) + 4.8; - gObjectList[loopObjectIndex].unk_034 = random_int(5U); - gObjectList[loopObjectIndex].unk_034 = (gObjectList[loopObjectIndex].unk_034 * 0.01) + 0.8; - gObjectList[loopObjectIndex].orientation[1] = (0x10000 / sp70) * var_s1; - gObjectList[loopObjectIndex].origin_pos[0] = gObjectList[objectIndex].origin_pos[0]; - gObjectList[loopObjectIndex].origin_pos[1] = gObjectList[objectIndex].origin_pos[1] - 13.0; - gObjectList[loopObjectIndex].origin_pos[2] = gObjectList[objectIndex].origin_pos[2]; - break; - } + init_object(loopObjectIndex, 0); + gObjectList[loopObjectIndex].activeTLUT = d_course_moo_moo_farm_mole_dirt; + gObjectList[loopObjectIndex].tlutList = mole; + gObjectList[loopObjectIndex].sizeScaling = 0.15f; + gObjectList[loopObjectIndex].velocity[1] = random_int(0x000AU); + gObjectList[loopObjectIndex].velocity[1] = (gObjectList[loopObjectIndex].velocity[1] * 0.1) + 4.8; + gObjectList[loopObjectIndex].unk_034 = random_int(5U); + gObjectList[loopObjectIndex].unk_034 = (gObjectList[loopObjectIndex].unk_034 * 0.01) + 0.8; + gObjectList[loopObjectIndex].orientation[1] = (0x10000 / sp70) * var_s1; + gObjectList[loopObjectIndex].origin_pos[0] = gObjectList[objectIndex].origin_pos[0]; + gObjectList[loopObjectIndex].origin_pos[1] = gObjectList[objectIndex].origin_pos[1] - 13.0; + gObjectList[loopObjectIndex].origin_pos[2] = gObjectList[objectIndex].origin_pos[2]; + break; + } } } @@ -243,21 +243,15 @@ void OMole::func_80081D34(s32 objectIndex) { } static const char* frames[] = { - gTextureMole1, - gTextureMole2, - gTextureMole3, - gTextureMole4, - gTextureMole5, - gTextureMole6, - gTextureMole7, - d_course_moo_moo_farm_mole_dirt, + gTextureMole1, gTextureMole2, gTextureMole3, gTextureMole4, + gTextureMole5, gTextureMole6, gTextureMole7, d_course_moo_moo_farm_mole_dirt, }; - void OMole::func_80081848(s32 objectIndex) { - init_texture_object(objectIndex, (u8*)d_course_moo_moo_farm_mole_tlut, (const char**) frames, 0x20U, (u16) 0x00000040); - //gObjectList[objectIndex].activeTexture = (const char*)d_course_moo_moo_farm_mole_frames; - //gObjectList[objectIndex].activeTLUT = (const char*)d_course_moo_moo_farm_mole_tlut; + init_texture_object(objectIndex, (u8*) d_course_moo_moo_farm_mole_tlut, (const char**) frames, 0x20U, + (u16) 0x00000040); + // gObjectList[objectIndex].activeTexture = (const char*)d_course_moo_moo_farm_mole_frames; + // gObjectList[objectIndex].activeTLUT = (const char*)d_course_moo_moo_farm_mole_tlut; gObjectList[objectIndex].sizeScaling = 0.15f; gObjectList[objectIndex].textureListIndex = 0; @@ -270,7 +264,6 @@ void OMole::func_80081848(s32 objectIndex) { object_next_state(objectIndex); } - void OMole::func_80081924(s32 objectIndex) { switch (gObjectList[objectIndex].unk_0AE) { case 1: @@ -307,7 +300,6 @@ void OMole::func_80081924(s32 objectIndex) { } } - void OMole::func_80081A88(s32 objectIndex) { switch (gObjectList[objectIndex].unk_0DD) { /* irregular */ case 0: @@ -348,8 +340,8 @@ void OMole::func_80054E10(s32 objectIndex) { void OMole::func_80054EB8() { s32 someIndex; - //for (someIndex = 0; someIndex < NUM_TOTAL_MOLES; someIndex++) { - func_80054E10(_moleIndex); + // for (someIndex = 0; someIndex < NUM_TOTAL_MOLES; someIndex++) { + func_80054E10(_moleIndex); //} } @@ -365,8 +357,8 @@ void OMole::func_80054D00(s32 objectIndex, s32 cameraId) { func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], camera->pos); D_80183E80[2] = (u16) gObjectList[objectIndex].orientation[2]; func_80048130(gObjectList[objectIndex].pos, (u16*) D_80183E80, gObjectList[objectIndex].sizeScaling, - (u8*) gObjectList[objectIndex].activeTLUT, (u8*)gObjectList[objectIndex].activeTexture, - (Vtx*)LOAD_ASSET_RAW(D_0D0062B0), 0x00000020, 0x00000040, 0x00000020, 0x00000040, 5); + (u8*) gObjectList[objectIndex].activeTLUT, (u8*) gObjectList[objectIndex].activeTexture, + (Vtx*) LOAD_ASSET_RAW(D_0D0062B0), 0x00000020, 0x00000040, 0x00000020, 0x00000040, 5); } } } @@ -374,22 +366,23 @@ void OMole::func_80054D00(s32 objectIndex, s32 cameraId) { void OMole::func_80054F04(s32 cameraId) { Camera* camera = &camera1[cameraId]; - gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D0079C8); + gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D0079C8); load_texture_block_rgba16_mirror((u8*) LOAD_ASSET_RAW(d_course_moo_moo_farm_mole_dirt), 0x00000010, 0x00000010); -if (_idx == 0) { - for (size_t i = 0; i < gObjectParticle2_SIZE; i++) { - s32 objectIndex = gObjectParticle2[i]; - Object* object = &gObjectList[objectIndex]; - if (object->state > 0) { - func_8008A364(objectIndex, cameraId, 0x2AABU, 0x000000C8); - if ((is_obj_flag_status_active(objectIndex, VISIBLE) != 0) && (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX)) { - object->orientation[1] = func_800418AC(object->pos[0], object->pos[2], camera->pos); - rsp_set_matrix_gObjectList(objectIndex); - gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D006980); + if (_idx == 0) { + for (size_t i = 0; i < gObjectParticle2_SIZE; i++) { + s32 objectIndex = gObjectParticle2[i]; + Object* object = &gObjectList[objectIndex]; + if (object->state > 0) { + func_8008A364(objectIndex, cameraId, 0x2AABU, 0x000000C8); + if ((is_obj_flag_status_active(objectIndex, VISIBLE) != 0) && + (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX)) { + object->orientation[1] = func_800418AC(object->pos[0], object->pos[2], camera->pos); + rsp_set_matrix_gObjectList(objectIndex); + gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D006980); + } } } } -} gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF); } diff --git a/src/engine/objects/Mole.h b/src/engine/objects/Mole.h index 1457c72cc..07293f8f9 100644 --- a/src/engine/objects/Mole.h +++ b/src/engine/objects/Mole.h @@ -20,7 +20,7 @@ extern "C" { class OMoleGroup; class OMole : public OObject { -public: + public: explicit OMole(FVector pos, OMoleGroup* group); virtual void Tick() override; @@ -41,7 +41,8 @@ public: void func_8008153C(s32 objectIndex); s32 _moleIndex; -private: + + private: static size_t _count; size_t _idx; OMoleGroup* _group; diff --git a/src/engine/objects/MoleGroup.cpp b/src/engine/objects/MoleGroup.cpp index 6e98edbbb..0e114c274 100644 --- a/src/engine/objects/MoleGroup.cpp +++ b/src/engine/objects/MoleGroup.cpp @@ -10,14 +10,14 @@ extern "C" { OMoleGroup::OMoleGroup(std::vector<FVector> spawns) { for (auto& pos : spawns) { - pos.x * xOrientation; + pos.x* xOrientation; OMole* ptr = reinterpret_cast<OMole*>(gWorldInstance.AddObject(new OMole(pos, this))); - _moles.push_back({ptr, pos, false}); + _moles.push_back({ ptr, pos, false }); } } void OMoleGroup::Tick() { - for (auto &mole : _moles) { + for (auto& mole : _moles) { if (gObjectList[mole.Mole->_objectIndex].state == 0) { func_80081FF4(mole.Mole->_objectIndex); } else { diff --git a/src/engine/objects/MoleGroup.h b/src/engine/objects/MoleGroup.h index dfb920985..2db36caed 100644 --- a/src/engine/objects/MoleGroup.h +++ b/src/engine/objects/MoleGroup.h @@ -9,7 +9,7 @@ class OMole; class OMoleGroup : public OObject { -public: + public: struct MoleEntry { OMole* Mole; FVector Pos; @@ -22,6 +22,5 @@ public: void func_80081FF4(s32 objectIndex); - std::vector<MoleEntry> _moles; }; diff --git a/src/engine/objects/Object.cpp b/src/engine/objects/Object.cpp index 4e4fd6766..88f1dad1b 100644 --- a/src/engine/objects/Object.cpp +++ b/src/engine/objects/Object.cpp @@ -4,20 +4,25 @@ #include "World.h" extern "C" { - #include "camera.h" +#include "camera.h" } +// GameActor() - //GameActor() - -OObject::OObject() {} +OObject::OObject() { +} - // Virtual functions to be overridden by derived classes -void OObject::Tick() { } -void OObject::Tick60fps() {} -void OObject::Draw(s32 cameraId) { } -void OObject::Expire() { } +// Virtual functions to be overridden by derived classes +void OObject::Tick() { +} +void OObject::Tick60fps() { +} +void OObject::Draw(s32 cameraId) { +} +void OObject::Expire() { +} void OObject::Destroy() { bPendingDestroy = true; } -void OObject::Reset() { } +void OObject::Reset() { +} diff --git a/src/engine/objects/Object.h b/src/engine/objects/Object.h index 9dd44397b..98d7fc99c 100644 --- a/src/engine/objects/Object.h +++ b/src/engine/objects/Object.h @@ -3,12 +3,12 @@ #include <libultraship.h> extern "C" { - #include "camera.h" - #include "objects.h" +#include "camera.h" +#include "objects.h" } class OObject { -public: + public: uint8_t uuid[16]; Object o; const char* Name = ""; diff --git a/src/engine/objects/Penguin.cpp b/src/engine/objects/Penguin.cpp index d283101b3..147922896 100644 --- a/src/engine/objects/Penguin.cpp +++ b/src/engine/objects/Penguin.cpp @@ -33,7 +33,6 @@ extern "C" { extern s8 gPlayerCount; } - OPenguin::OPenguin(FVector pos, u16 direction, PenguinType type, Behaviour behaviour) { Name = "Penguin"; _type = type; @@ -43,13 +42,13 @@ OPenguin::OPenguin(FVector pos, u16 direction, PenguinType type, Behaviour behav init_object(_objectIndex, 0); - Object *object = &gObjectList[_objectIndex]; + Object* object = &gObjectList[_objectIndex]; object->origin_pos[0] = pos.x * xOrientation; object->origin_pos[1] = pos.y; object->origin_pos[2] = pos.z; object->unk_0C6 = direction; - switch(type) { + switch (type) { case PenguinType::CHICK: object->surfaceHeight = 5.0f; object->sizeScaling = 0.04f; @@ -91,8 +90,7 @@ void OPenguin::Tick(void) { } else { func_80089820(objectIndex, 1.5f, 1.25f, 0x1900A046U); } - if ((is_obj_flag_status_active(objectIndex, 0x02000000) != 0) && - (func_80072354(objectIndex, 0x00000020) != 0)) { + if ((is_obj_flag_status_active(objectIndex, 0x02000000) != 0) && (func_80072354(objectIndex, 0x00000020) != 0)) { func_800722A4(objectIndex, 0x00000060); clear_object_flag(objectIndex, 0x02000000); } @@ -113,7 +111,6 @@ void OPenguin::Draw(s32 cameraId) { var_s3 = 0x00015F90; } - if (gObjectList[objectIndex].state >= 2) { // This code decreased draw dist if there's more players. @@ -121,9 +118,9 @@ void OPenguin::Draw(s32 cameraId) { // It seems to check the angle of the camera. // These changes were so instance indices are not required. - //if (gPlayerCountSelection1 == 1) { - var_s1 = 0x4000; - drawDistance = 1500; + // if (gPlayerCountSelection1 == 1) { + var_s1 = 0x4000; + drawDistance = 1500; //} else { // if (func_80072320(objectIndex, 8) != 0) { // drawDistance = 500; @@ -283,7 +280,6 @@ void OPenguin::func_8008502C(s32 objectIndex) { func_800873F4(objectIndex); } - void OPenguin::EmperorPenguin(s32 objectIndex) { switch (gObjectList[objectIndex].state) { case 0: @@ -304,8 +300,8 @@ void OPenguin::InitEmperorPenguin(s32 objectIndex) { object->unk_0D8 = 0; object->model = (Gfx*) d_course_sherbet_land_unk_data1; object->vertex = (Vtx*) d_course_sherbet_land_unk_data11; - //object->sizeScaling = 0.2f; - //object->boundingBoxSize = 0x000C; + // object->sizeScaling = 0.2f; + // object->boundingBoxSize = 0x000C; object->unk_09C = 1; set_obj_direction_angle(objectIndex, 0U, 0U, 0U); object->unk_0DD = 1; @@ -372,14 +368,14 @@ void OPenguin::InitOtherPenguin(s32 objectIndex) { object->unk_0D8 = 0; object->model = (Gfx*) d_course_sherbet_land_unk_data1; object->vertex = (Vtx*) d_course_sherbet_land_unk_data11; - //object->boundingBoxSize = 4; + // object->boundingBoxSize = 4; object->unk_09C = 2; object->unk_04C = random_int(300); set_object_flag(objectIndex, 0x04000220); // This code has been significantly refactored from the original func_800845C8 // Into a switch statement instead of checking for the index of the penguin - switch(_bhv) { + switch (_bhv) { case Behaviour::CIRCLE: object->unk_01C[1] = Diameter; @@ -391,7 +387,7 @@ void OPenguin::InitOtherPenguin(s32 objectIndex) { _toggle = !_toggle; - //object->unk_0DD = 2; + // object->unk_0DD = 2; func_800722A4(objectIndex, 8); break; case Behaviour::SLIDE3: diff --git a/src/engine/objects/Penguin.h b/src/engine/objects/Penguin.h index 91d5687b9..471b553db 100644 --- a/src/engine/objects/Penguin.h +++ b/src/engine/objects/Penguin.h @@ -16,17 +16,12 @@ extern "C" { } class OPenguin : public OObject { -public: - enum PenguinType : uint32_t { - CHICK, - ADULT, - CREDITS, - EMPEROR - }; + public: + enum PenguinType : uint32_t { CHICK, ADULT, CREDITS, EMPEROR }; enum Behaviour : uint16_t { DISABLED, - STRUT, // Emperor penguin + STRUT, // Emperor penguin CIRCLE, // Waddle in a circle SLIDE3, SLIDE4, @@ -34,7 +29,7 @@ public: SLIDE6, }; -public: + public: f32 Diameter = 0.0f; // Waddle in a circle around the spawn point at this diameter. uint16_t MirrorModeAngleOffset; @@ -43,7 +38,8 @@ public: virtual void Tick() override; virtual void Draw(s32 cameraId) override; virtual void Reset() override; -private: + + private: void Behaviours(s32 objectIndex); void EmperorPenguin(s32 objectIndex); void func_80085080(s32 objectIndex); diff --git a/src/engine/objects/Podium.cpp b/src/engine/objects/Podium.cpp index ec396ca53..5e50ee092 100644 --- a/src/engine/objects/Podium.cpp +++ b/src/engine/objects/Podium.cpp @@ -33,8 +33,8 @@ OPodium::OPodium(const FVector& pos) { find_unused_obj_index(&_podium2Index); find_unused_obj_index(&_podium3Index); - //init_object(objectIndex, 0); - //set_obj_origin_pos(objectIndex, pos.x - 1.5, pos.y, pos.z); + // init_object(objectIndex, 0); + // set_obj_origin_pos(objectIndex, pos.x - 1.5, pos.y, pos.z); } void OPodium::Tick() { // func_80086604 @@ -66,43 +66,43 @@ void OPodium::Tick() { // func_80086604 } void OPodium::Draw(s32 cameraId) { // func_80055F48 - Object* object = &gObjectList[_podium1Index]; - if (object->state >= 2) { - //func_80043220(object->pos, object->direction_angle, object->sizeScaling, object->model); - rsp_set_matrix_transformation(object->pos, object->direction_angle, object->sizeScaling); - gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D0077A0); - gSPDisplayList(gDisplayListHead++, object->model); - } + Object* object = &gObjectList[_podium1Index]; + if (object->state >= 2) { + // func_80043220(object->pos, object->direction_angle, object->sizeScaling, object->model); + rsp_set_matrix_transformation(object->pos, object->direction_angle, object->sizeScaling); + gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D0077A0); + gSPDisplayList(gDisplayListHead++, object->model); + } - object = &gObjectList[_podium2Index]; - if (object->state >= 2) { - //func_80043220(object->pos, object->direction_angle, object->sizeScaling, object->model); - rsp_set_matrix_transformation(object->pos, object->direction_angle, object->sizeScaling); - gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D0077A0); - gSPDisplayList(gDisplayListHead++, object->model); - } + object = &gObjectList[_podium2Index]; + if (object->state >= 2) { + // func_80043220(object->pos, object->direction_angle, object->sizeScaling, object->model); + rsp_set_matrix_transformation(object->pos, object->direction_angle, object->sizeScaling); + gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D0077A0); + gSPDisplayList(gDisplayListHead++, object->model); + } - object = &gObjectList[_podium3Index]; - if (object->state >= 2) { - //func_80043220(object->pos, object->direction_angle, object->sizeScaling, object->model); - rsp_set_matrix_transformation(object->pos, object->direction_angle, object->sizeScaling); - gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D0077A0); - gSPDisplayList(gDisplayListHead++, object->model); - } + object = &gObjectList[_podium3Index]; + if (object->state >= 2) { + // func_80043220(object->pos, object->direction_angle, object->sizeScaling, object->model); + rsp_set_matrix_transformation(object->pos, object->direction_angle, object->sizeScaling); + gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D0077A0); + gSPDisplayList(gDisplayListHead++, object->model); + } } void OPodium::func_8008629C(s32 objectIndex, s32 arg1) { switch (arg1) { /* irregular */ case 0: - gObjectList[objectIndex].model = (Gfx*)podium_dl3; + gObjectList[objectIndex].model = (Gfx*) podium_dl3; gObjectList[objectIndex].unk_04C = 0x00000038; break; case 1: - gObjectList[objectIndex].model = (Gfx*)podium2_dl3; + gObjectList[objectIndex].model = (Gfx*) podium2_dl3; gObjectList[objectIndex].unk_04C = 0x0000002B; break; case 2: - gObjectList[objectIndex].model = (Gfx*)podium3_dl3; + gObjectList[objectIndex].model = (Gfx*) podium3_dl3; gObjectList[objectIndex].unk_04C = 0x0000001E; break; default: diff --git a/src/engine/objects/Podium.h b/src/engine/objects/Podium.h index fafdfe63d..55ab64709 100644 --- a/src/engine/objects/Podium.h +++ b/src/engine/objects/Podium.h @@ -16,14 +16,11 @@ extern "C" { #include "some_data.h" } - class OPodium : public OObject { -public: - enum Behaviour : uint16_t { - }; - -public: + public: + enum Behaviour : uint16_t {}; + public: explicit OPodium(const FVector& pos); virtual void Tick() override; @@ -32,7 +29,7 @@ public: void func_80086424(s32 objectIndex); void func_80086528(s32 objectIndex, s32 arg1); -private: + private: s32 _podium1Index; s32 _podium2Index; s32 _podium3Index; diff --git a/src/engine/objects/Seagull.cpp b/src/engine/objects/Seagull.cpp index 17c35c07d..0a32d1ee8 100644 --- a/src/engine/objects/Seagull.cpp +++ b/src/engine/objects/Seagull.cpp @@ -49,7 +49,6 @@ OSeagull::OSeagull(FVector pos) { init_object(_objectIndex, 0); - set_obj_origin_pos(_objectIndex, pos.x, pos.y, pos.z); if (_idx < (NUM_SEAGULLS / 2)) { gObjectList[_objectIndex].unk_0D5 = 0; @@ -64,32 +63,32 @@ void OSeagull::Tick() { Object* object; s32 objectIndex = _objectIndex; - object = &gObjectList[objectIndex]; - if (object->state == 0) { - return; - } + object = &gObjectList[objectIndex]; + if (object->state == 0) { + return; + } - OSeagull::func_80082714(objectIndex, _idx); - OSeagull::func_8008275C(objectIndex); - if (func_80072320(objectIndex, 2) != 0) { - func_800722CC(objectIndex, 2); - if (D_80165A90 != 0) { - D_80165A90 = 0; - D_80183E40[0] = 0.0f; - D_80183E40[1] = 0.0f; - D_80183E40[2] = 0.0f; - if (gGamestate != CREDITS_SEQUENCE) { - func_800C98B8(object->pos, D_80183E40, SOUND_ARG_LOAD(0x19, 0x01, 0x70, 0x43)); - } else { - if (_idx == 1) { - if (gCutsceneShotTimer <= 150) { - object = &gObjectList[_objectIndex]; - func_800C98B8(object->pos, D_80183E40, SOUND_ARG_LOAD(0x19, 0x01, 0x70, 0x43)); - } + OSeagull::func_80082714(objectIndex, _idx); + OSeagull::func_8008275C(objectIndex); + if (func_80072320(objectIndex, 2) != 0) { + func_800722CC(objectIndex, 2); + if (D_80165A90 != 0) { + D_80165A90 = 0; + D_80183E40[0] = 0.0f; + D_80183E40[1] = 0.0f; + D_80183E40[2] = 0.0f; + if (gGamestate != CREDITS_SEQUENCE) { + func_800C98B8(object->pos, D_80183E40, SOUND_ARG_LOAD(0x19, 0x01, 0x70, 0x43)); + } else { + if (_idx == 1) { + if (gCutsceneShotTimer <= 150) { + object = &gObjectList[_objectIndex]; + func_800C98B8(object->pos, D_80183E40, SOUND_ARG_LOAD(0x19, 0x01, 0x70, 0x43)); } } } } + } //} if (D_80165900 != 0) { D_80165900 -= 1; @@ -122,7 +121,7 @@ void OSeagull::func_800552BC(s32 objectIndex) { if (gObjectList[objectIndex].state >= 2) { rsp_set_matrix_transformation(gObjectList[objectIndex].pos, gObjectList[objectIndex].direction_angle, gObjectList[objectIndex].sizeScaling); - gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D0077D0); + gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D0077D0); if (gIsGamePaused == 0) { gObjectList[objectIndex].unk_0A2 = render_animated_model((Armature*) gObjectList[objectIndex].model, (Animation**) gObjectList[objectIndex].vertex, 0, @@ -180,7 +179,6 @@ void OSeagull::func_8008241C(s32 objectIndex, s32 arg1) { object_next_state(objectIndex); } - void OSeagull::func_80082714(s32 objectIndex, s32 arg1) { switch (gObjectList[objectIndex].state) { case 1: @@ -190,4 +188,4 @@ void OSeagull::func_80082714(s32 objectIndex, s32 arg1) { default: break; } -}
\ No newline at end of file +} diff --git a/src/engine/objects/Seagull.h b/src/engine/objects/Seagull.h index 42474159e..a5ee71b38 100644 --- a/src/engine/objects/Seagull.h +++ b/src/engine/objects/Seagull.h @@ -18,7 +18,7 @@ extern "C" { //! @todo unk_0D5 needs to be a struct variable probably. What does it do? Behaviour? class OSeagull : public OObject { -public: + public: explicit OSeagull(FVector pos); ~OSeagull() { @@ -37,11 +37,12 @@ public: void func_8008275C(s32 objectIndex); void func_8008241C(s32 objectIndex, s32 arg1); void func_80082714(s32 objectIndex, s32 arg1); -private: + + private: FVector _pos; static size_t _count; s32 _idx; bool _toggle; - SplineData *spline; + SplineData* spline; }; diff --git a/src/engine/objects/Snowman.cpp b/src/engine/objects/Snowman.cpp index 12beb9e47..581ffbc69 100644 --- a/src/engine/objects/Snowman.cpp +++ b/src/engine/objects/Snowman.cpp @@ -27,7 +27,7 @@ OSnowman::OSnowman(const FVector& pos) { gObjectList[_headIndex].origin_pos[0] = pos.x * xOrientation; gObjectList[_headIndex].origin_pos[1] = pos.y + 5.0 + 3.0; gObjectList[_headIndex].origin_pos[2] = pos.z; - gObjectList[_headIndex].pos[0] = pos.x * xOrientation; + gObjectList[_headIndex].pos[0] = pos.x * xOrientation; gObjectList[_headIndex].pos[1] = pos.y + 5.0 + 3.0; gObjectList[_headIndex].pos[2] = pos.z; @@ -38,7 +38,7 @@ OSnowman::OSnowman(const FVector& pos) { gObjectList[_bodyIndex].origin_pos[2] = pos.z; gObjectList[_bodyIndex].unk_0D5 = 0; // Section Id no longer used. - gObjectList[_bodyIndex].pos[0] = pos.x * xOrientation; + gObjectList[_bodyIndex].pos[0] = pos.x * xOrientation; gObjectList[_bodyIndex].pos[1] = pos.y + 3.0; gObjectList[_bodyIndex].pos[2] = pos.z; @@ -71,14 +71,15 @@ void OSnowman::Tick() { } } - //for (var_s0 = 0; var_s0 < NUM_SNOWMEN; var_s0++) { + // for (var_s0 = 0; var_s0 < NUM_SNOWMEN; var_s0++) { var_s4 = _bodyIndex; var_s3 = _headIndex; OSnowman::func_80083A94(var_s3); // snowman head OSnowman::func_80083C04(var_s4); // snowman body if (is_obj_index_flag_status_inactive(var_s4, 0x00001000) != 0) { object = &gObjectList[var_s4]; - if ((are_players_in_course_section(object->unk_0D5 - 1, object->unk_0D5 + 1) != 0) && (func_80089B50(var_s4) != 0)) { + if ((are_players_in_course_section(object->unk_0D5 - 1, object->unk_0D5 + 1) != 0) && + (func_80089B50(var_s4) != 0)) { set_object_flag(var_s4, 0x00001000); clear_object_flag(var_s4, 0x00000010); func_800726CC(var_s4, 0x0000000A); @@ -123,17 +124,16 @@ void OSnowman::DrawHead(s32 cameraId) { D_80183E80[2] = (u16) gObjectList[objectIndex].orientation[2]; if (is_obj_flag_status_active(objectIndex, 0x00000010) != 0) { draw_2d_texture_at(gObjectList[objectIndex].pos, (u16*) D_80183E80, - gObjectList[objectIndex].sizeScaling, (u8*) gObjectList[objectIndex].activeTLUT, - (u8*)gObjectList[objectIndex].activeTexture, gObjectList[objectIndex].vertex, - 0x00000040, 0x00000040, 0x00000040, 0x00000020); + gObjectList[objectIndex].sizeScaling, (u8*) gObjectList[objectIndex].activeTLUT, + (u8*) gObjectList[objectIndex].activeTexture, gObjectList[objectIndex].vertex, + 0x00000040, 0x00000040, 0x00000040, 0x00000020); } objectIndex = _headIndex; D_80183E80[0] = (s16) gObjectList[objectIndex].orientation[0]; D_80183E80[2] = (u16) gObjectList[objectIndex].orientation[2]; - draw_2d_texture_at(gObjectList[objectIndex].pos, (u16*) D_80183E80, - gObjectList[objectIndex].sizeScaling, (u8*) gObjectList[objectIndex].activeTLUT, - (u8*)gObjectList[objectIndex].activeTexture, gObjectList[objectIndex].vertex, 0x00000040, - 0x00000040, 0x00000040, 0x00000020); + draw_2d_texture_at(gObjectList[objectIndex].pos, (u16*) D_80183E80, gObjectList[objectIndex].sizeScaling, + (u8*) gObjectList[objectIndex].activeTLUT, (u8*) gObjectList[objectIndex].activeTexture, + gObjectList[objectIndex].vertex, 0x00000040, 0x00000040, 0x00000040, 0x00000020); } } } @@ -146,7 +146,8 @@ void OSnowman::DrawBody(s32 cameraId) { Object* object; sp44 = &camera1[cameraId]; - load_texture_and_tlut((u8*)d_course_frappe_snowland_snow_tlut, (u8*)d_course_frappe_snowland_snow, 0x00000020, 0x00000020); + load_texture_and_tlut((u8*) d_course_frappe_snowland_snow_tlut, (u8*) d_course_frappe_snowland_snow, 0x00000020, + 0x00000020); //! @todo quick hack to add the snow particles on hit. Need to separate into its own class if (_idx == 0) { @@ -159,7 +160,7 @@ void OSnowman::DrawBody(s32 cameraId) { if (is_obj_flag_status_active(objectIndex, VISIBLE) != 0) { object->orientation[1] = func_800418AC(object->pos[0], object->pos[2], sp44->pos); rsp_set_matrix_gObjectList(objectIndex); - gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D0069E0); + gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D0069E0); } } } @@ -215,7 +216,8 @@ void OSnowman::func_80083BE4(s32 objectIndex) { void OSnowman::func_80083868(s32 objectIndex) { Object* object; Vtx* vtx = (Vtx*) LOAD_ASSET_RAW(D_0D0061B0); - init_texture_object(objectIndex, (u8*)d_course_frappe_snowland_snowman_tlut, (const char**)sSnowmanHeadList, 0x40U, (u16) 0x00000040); + init_texture_object(objectIndex, (u8*) d_course_frappe_snowland_snowman_tlut, (const char**) sSnowmanHeadList, + 0x40U, (u16) 0x00000040); object = &gObjectList[objectIndex]; object->vertex = vtx; object->sizeScaling = 0.1f; @@ -259,7 +261,8 @@ void OSnowman::func_80083948(s32 objectIndex) { break; } object_calculate_new_pos_offset(objectIndex); - OSnowman::func_80073D0C(objectIndex, &gObjectList[objectIndex].primAlpha, -0x00001000, 0x00001000, 0x00000400, 1, -1); + OSnowman::func_80073D0C(objectIndex, &gObjectList[objectIndex].primAlpha, -0x00001000, 0x00001000, 0x00000400, 1, + -1); gObjectList[objectIndex].orientation[2] = gObjectList[objectIndex].primAlpha + 0x8000; } @@ -285,7 +288,8 @@ static const char* sSnowmanBodyList[] = { d_course_frappe_snowland_snowman_body void OSnowman::func_80083B0C(s32 objectIndex) { Vtx* vtx = (Vtx*) LOAD_ASSET_RAW(common_vtx_hedgehog); - init_texture_object(objectIndex, (u8*)d_course_frappe_snowland_snowman_tlut, (const char**)sSnowmanBodyList, 0x40U, (u16) 0x00000040); + init_texture_object(objectIndex, (u8*) d_course_frappe_snowland_snowman_tlut, (const char**) sSnowmanBodyList, + 0x40U, (u16) 0x00000040); gObjectList[objectIndex].vertex = vtx; gObjectList[objectIndex].sizeScaling = 0.1f; gObjectList[objectIndex].textureListIndex = 0; @@ -299,16 +303,15 @@ void OSnowman::func_80083B0C(s32 objectIndex) { set_object_flag(objectIndex, 0x04000210); } - void OSnowman::func_80083538(s32 objectIndex, Vec3f arg1, s32 arg2, s32 arg3) { Object* object; init_object(objectIndex, 0); object = &gObjectList[objectIndex]; - object->activeTexture = (const char*)d_course_frappe_snowland_snow; - object->textureList = (const char**)d_course_frappe_snowland_snow; + object->activeTexture = (const char*) d_course_frappe_snowland_snow; + object->textureList = (const char**) d_course_frappe_snowland_snow; object->activeTLUT = d_course_frappe_snowland_snow_tlut; - object->tlutList = (u8*)d_course_frappe_snowland_snow_tlut; + object->tlutList = (u8*) d_course_frappe_snowland_snow_tlut; object->sizeScaling = random_int(0x0064U); object->sizeScaling = (object->sizeScaling * 0.001) + 0.05; object->velocity[1] = random_int(0x0014U); diff --git a/src/engine/objects/Snowman.h b/src/engine/objects/Snowman.h index f33ee3b53..5333c09cd 100644 --- a/src/engine/objects/Snowman.h +++ b/src/engine/objects/Snowman.h @@ -18,7 +18,7 @@ extern "C" { } class OSnowman : public OObject { -public: + public: explicit OSnowman(const FVector& pos); ~OSnowman() { @@ -46,7 +46,7 @@ public: void func_80083538(s32 objectIndex, Vec3f arg1, s32 arg2, s32 arg3); void func_8008379C(s32 objectIndex); -private: + private: FVector _pos; static size_t _count; size_t _idx; diff --git a/src/engine/objects/Thwomp.cpp b/src/engine/objects/Thwomp.cpp index d3f99a8d9..740abd481 100644 --- a/src/engine/objects/Thwomp.cpp +++ b/src/engine/objects/Thwomp.cpp @@ -51,8 +51,8 @@ OThwomp::OThwomp(s16 x, s16 z, s16 direction, f32 scale, s16 behaviour, s16 prim _idx = _count; _faceDirection = direction; _boundingBoxSize = boundingBoxSize; - State = (States)behaviour; - + State = (States) behaviour; + find_unused_obj_index(&_objectIndex); s32 objectId = _objectIndex; @@ -127,7 +127,6 @@ void OThwomp::Tick60fps() { // func_80081210 if (is_obj_flag_status_active(_objectIndex, 0x00010000) != 0) { OThwomp::func_80080A4C(_objectIndex, var_s4); } - } OThwomp::func_8007542C(3); @@ -180,8 +179,8 @@ void OThwomp::func_80081080(s32 objectIndex) { Object* object; object = &gObjectList[objectIndex]; - object->activeTexture = (const char*)D_8018D490; - object->textureList = (const char**)D_8018D490; + object->activeTexture = (const char*) D_8018D490; + object->textureList = (const char**) D_8018D490; object->primAlpha = 0x00FF; object->direction_angle[1] = 0; object->orientation[0] = 0; @@ -628,8 +627,8 @@ void OThwomp::func_80080B28(s32 objectIndex, s32 playerId) { } } } else if ((temp_f0 <= 17.5) && (func_80072320(objectIndex, 1) != 0) && - (is_within_horizontal_distance_of_player(objectIndex, temp_s0, (temp_s0->unk_094 * 0.5) + _boundingBoxSize) != - 0)) { + (is_within_horizontal_distance_of_player(objectIndex, temp_s0, + (temp_s0->unk_094 * 0.5) + _boundingBoxSize) != 0)) { if ((temp_s0->type & 0x8000) && !(temp_s0->type & 0x100)) { if (is_obj_flag_status_active(objectIndex, 0x04000000) != 0) { func_80072180(); @@ -680,29 +679,29 @@ void OThwomp::Draw(s32 cameraId) { OThwomp::DrawModel(objectIndex); } - gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D0079C8); + gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D0079C8); gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA); gSPNumLights(gDisplayListHead++, 1); gSPLight(gDisplayListHead++, &D_800E4668.l[0], LIGHT_1); gSPLight(gDisplayListHead++, &D_800E4668.a, LIGHT_2); gSPClearGeometryMode(gDisplayListHead++, G_CULL_BOTH); gSPSetGeometryMode(gDisplayListHead++, G_SHADE | G_LIGHTING | G_SHADING_SMOOTH); - load_texture_block_rgba16_mirror((u8*)d_course_bowsers_castle_thwomp_side, 0x00000020, 0x00000020); + load_texture_block_rgba16_mirror((u8*) d_course_bowsers_castle_thwomp_side, 0x00000020, 0x00000020); for (i = 0; i < gObjectParticle3_SIZE; i++) { objectIndex = gObjectParticle3[i]; if (objectIndex != NULL_OBJECT_ID) { object = &gObjectList[objectIndex]; if ((object->state > 0) && (State == MOVE_FAR) && (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX)) { rsp_set_matrix_transformation(object->pos, object->orientation, object->sizeScaling); - gSPVertex(gDisplayListHead++, (uintptr_t)D_0D005C00, 3, 0); - gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D006930); + gSPVertex(gDisplayListHead++, (uintptr_t) D_0D005C00, 3, 0); + gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D006930); } } } gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK); gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING); gSPTexture(gDisplayListHead++, 0x0001, 0x0001, 0, G_TX_RENDERTILE, G_OFF); - gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D007AE0); + gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D007AE0); load_texture_block_ia8_nomirror(D_8018D490, 0x00000020, 0x00000020); func_8004B3C8(0); D_80183E80[0] = 0; @@ -714,7 +713,7 @@ void OThwomp::Draw(s32 cameraId) { if ((object->state >= 2) && (State == MOVE_AND_ROTATE) && (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX)) { func_8004B138(0x000000FF, 0x000000FF, 0x000000FF, (s32) object->primAlpha); D_80183E80[1] = func_800418AC(object->pos[0], object->pos[2], camera->pos); - func_800431B0(object->pos, D_80183E80, object->sizeScaling, (Vtx*)D_0D005AE0); + func_800431B0(object->pos, D_80183E80, object->sizeScaling, (Vtx*) D_0D005AE0); } } } @@ -726,10 +725,10 @@ void OThwomp::DrawModel(s32 objectIndex) { rsp_set_matrix_transformation(gObjectList[objectIndex].pos, gObjectList[objectIndex].orientation, gObjectList[objectIndex].sizeScaling); OThwomp::ThwompLights(objectIndex); - gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D007828); + gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D007828); gDPSetTextureLUT(gDisplayListHead++, G_TT_RGBA16); gDPLoadTLUT_pal256(gDisplayListHead++, d_course_bowsers_castle_thwomp_tlut); - rsp_load_texture_mask((u8*)gObjectList[objectIndex].activeTexture, 0x00000010, 0x00000040, 4); + rsp_load_texture_mask((u8*) gObjectList[objectIndex].activeTexture, 0x00000010, 0x00000040, 4); gSPDisplayList(gDisplayListHead++, gObjectList[objectIndex].model); } } @@ -827,9 +826,9 @@ void OThwomp::func_8007EC30(s32 objectIndex) { set_obj_direction_angle(objectIndex, 0U, _faceDirection, 0U); set_obj_orientation(objectIndex, 0U, _faceDirection, 0U); } - init_texture_object(objectIndex, (uint8_t*) d_course_bowsers_castle_thwomp_tlut, (const char**) d_course_bowsers_castle_thwomp_faces, - 0x10U, (u16) 0x00000040); - object->model = (Gfx*)d_course_bowsers_castle_dl_thwomp; + init_texture_object(objectIndex, (uint8_t*) d_course_bowsers_castle_thwomp_tlut, + (const char**) d_course_bowsers_castle_thwomp_faces, 0x10U, (u16) 0x00000040); + object->model = (Gfx*) d_course_bowsers_castle_dl_thwomp; object->unk_01C[1] = 30.0f; set_object_flag(objectIndex, 0x05000220); object->type = 0; @@ -864,10 +863,10 @@ void OThwomp::MoveAndRotateBehaviour(s32 objectIndex) { // func_8007F5A8 void OThwomp::func_8007EE5C(s32 objectIndex) { Object* object; - init_texture_object(objectIndex, (u8*)d_course_bowsers_castle_thwomp_tlut, (const char**) d_course_bowsers_castle_thwomp_faces, - 0x10U, (u16) 0x00000040); + init_texture_object(objectIndex, (u8*) d_course_bowsers_castle_thwomp_tlut, + (const char**) d_course_bowsers_castle_thwomp_faces, 0x10U, (u16) 0x00000040); object = &gObjectList[objectIndex]; - object->model = (Gfx*)d_course_bowsers_castle_dl_thwomp; + object->model = (Gfx*) d_course_bowsers_castle_dl_thwomp; set_object_flag(objectIndex, 0x04000220); object->type = 0; object->unk_0DF = 6; @@ -917,10 +916,10 @@ void OThwomp::MoveFarBehaviour(s32 objectIndex) { // func_8007FFC0 void OThwomp::func_8007FA08(s32 objectIndex) { Object* object; - init_texture_object(objectIndex, (u8*)d_course_bowsers_castle_thwomp_tlut, (const char**) d_course_bowsers_castle_thwomp_faces, - 0x10U, (u16) 0x00000040); + init_texture_object(objectIndex, (u8*) d_course_bowsers_castle_thwomp_tlut, + (const char**) d_course_bowsers_castle_thwomp_faces, 0x10U, (u16) 0x00000040); object = &gObjectList[objectIndex]; - object->model = (Gfx*)d_course_bowsers_castle_dl_thwomp; + object->model = (Gfx*) d_course_bowsers_castle_dl_thwomp; set_object_flag(objectIndex, 0x04000220); object->type = 0; object->surfaceHeight = 0.0f; @@ -1083,10 +1082,10 @@ void OThwomp::StationaryFastBehaviour(s32 objectIndex) { // func_800801FC void OThwomp::func_80080078(s32 objectIndex) { // func_80080078 Object* object; - init_texture_object(objectIndex, (u8*)d_course_bowsers_castle_thwomp_tlut, (const char**) d_course_bowsers_castle_thwomp_faces, - 0x10U, (u16) 0x00000040); + init_texture_object(objectIndex, (u8*) d_course_bowsers_castle_thwomp_tlut, + (const char**) d_course_bowsers_castle_thwomp_faces, 0x10U, (u16) 0x00000040); object = &gObjectList[objectIndex]; - object->model = (Gfx*)d_course_bowsers_castle_dl_thwomp; + object->model = (Gfx*) d_course_bowsers_castle_dl_thwomp; set_object_flag(objectIndex, 0x04000220); object->type = 2; object->unk_0DF = 8; @@ -1154,11 +1153,11 @@ void OThwomp::func_800802C0(s32 objectIndex) { object = &gObjectList[objectIndex]; object->unk_0D8 = 0; - init_texture_object(objectIndex, (u8*)d_course_bowsers_castle_thwomp_tlut, (const char**) d_course_bowsers_castle_thwomp_faces, - 0x10U, (u16) 0x00000040); - object->model = (Gfx*)d_course_bowsers_castle_dl_thwomp; + init_texture_object(objectIndex, (u8*) d_course_bowsers_castle_thwomp_tlut, + (const char**) d_course_bowsers_castle_thwomp_faces, 0x10U, (u16) 0x00000040); + object->model = (Gfx*) d_course_bowsers_castle_dl_thwomp; object->textureListIndex = 0; - //object->sizeScaling = 1.5f; + // object->sizeScaling = 1.5f; set_object_flag(objectIndex, 0x05000220); object->type = 1; object->unk_0DF = 6; @@ -1180,7 +1179,7 @@ void OThwomp::func_800802C0(s32 objectIndex) { } void OThwomp::SlidingBehaviour(s32 objectIndex) { // func_800808CC - switch (gObjectList[objectIndex].state) { /* irregular */ + switch (gObjectList[objectIndex].state) { /* irregular */ case 0: break; case 1: @@ -1264,10 +1263,10 @@ void OThwomp::func_8008078C(s32 objectIndex) { void OThwomp::func_80080524(s32 objectIndex) { Object* object; - init_texture_object(objectIndex, (u8*)d_course_bowsers_castle_thwomp_tlut, (const char**) d_course_bowsers_castle_thwomp_faces, - 0x10U, (u16) 0x00000040); + init_texture_object(objectIndex, (u8*) d_course_bowsers_castle_thwomp_tlut, + (const char**) d_course_bowsers_castle_thwomp_faces, 0x10U, (u16) 0x00000040); object = &gObjectList[objectIndex]; - object->model = (Gfx*)d_course_bowsers_castle_dl_thwomp; + object->model = (Gfx*) d_course_bowsers_castle_dl_thwomp; object->textureListIndex = 0; set_object_flag(objectIndex, 0x04000220); object->type = 0; diff --git a/src/engine/objects/Thwomp.h b/src/engine/objects/Thwomp.h index 22c674bb5..c66705312 100644 --- a/src/engine/objects/Thwomp.h +++ b/src/engine/objects/Thwomp.h @@ -22,16 +22,16 @@ extern "C" { /** * Thwomp OObject - * + * * The game automatically places the actor on the ground so you do not need to provide a Y coordinate value. - * + * * @arg direction the rotational direction the thwomp is facing. * @arg behaviour the behaviour of the thwomp, uses values 1-6. * @arg primAlpha unknown * @arg boundingBoxSize optional. The size of the bounding box for the thwomp. Default value is 12 */ class OThwomp : public OObject { -private: + private: enum States : uint16_t { DISABLED, STATIONARY, @@ -42,7 +42,7 @@ private: JAILED // Has no collision }; -public: + public: States State = States::DISABLED; explicit OThwomp(s16 x, s16 z, s16 direction, f32 scale, s16 behaviour, s16 primAlpha, u16 boundingBoxSize = 7); @@ -110,7 +110,8 @@ public: void func_8008078C(s32 objectIndex); void func_8007E63C(s32 objectIndex); -private: + + private: static size_t _count; s32 _idx; s16 _faceDirection; diff --git a/src/engine/objects/TrashBin.cpp b/src/engine/objects/TrashBin.cpp index c94d0352f..8ff278045 100644 --- a/src/engine/objects/TrashBin.cpp +++ b/src/engine/objects/TrashBin.cpp @@ -18,7 +18,7 @@ extern "C" { #include "audio/external.h" } -#define DEGREES_FLOAT_TO_SHORT(Degrees) ((s16)((Degrees) * (0x8000 / 180.0f))) +#define DEGREES_FLOAT_TO_SHORT(Degrees) ((s16) ((Degrees) * (0x8000 / 180.0f))) OTrashBin::OTrashBin(const FVector& pos, const IRotator& rotation, f32 scale, OTrashBin::Behaviour bhv) { Name = "Trashbin"; @@ -39,7 +39,7 @@ OTrashBin::OTrashBin(const FVector& pos, const IRotator& rotation, f32 scale, OT void OTrashBin::Tick() { OTrashBin::func_8007E00C(_objectIndex); - switch(_bhv) { + switch (_bhv) { case STATIC: break; case MUNCHING: @@ -63,7 +63,7 @@ void OTrashBin::Draw(s32 cameraId) { Vec3f Pos = { _pos.x + 63, _pos.y + 12, _pos.z + 25 }; Vec3s Rot = { 0, 0x4000, 0 }; mtxf_pos_rotation_xyz(mtx, Pos, Rot); - //mtxf_scale(mtx, 1.0f); + // mtxf_scale(mtx, 1.0f); if (render_set_position(mtx, 0) != 0) { gSPDisplayList(gDisplayListHead++, BinMod); } @@ -73,7 +73,7 @@ void OTrashBin::Draw(s32 cameraId) { void OTrashBin::init_bb_trash_bin(s32 objectIndex) { gObjectList[objectIndex].sizeScaling = 1.0f; - gObjectList[objectIndex].model = (Gfx*)d_course_banshee_boardwalk_dl_trash_bin; + gObjectList[objectIndex].model = (Gfx*) d_course_banshee_boardwalk_dl_trash_bin; gObjectList[objectIndex].unk_04C = 0; gObjectList[objectIndex].unk_084[7] = 0; set_obj_orientation(objectIndex, 0U, 0U, 0U); @@ -149,83 +149,78 @@ void OTrashBin::func_8007E00C(s32 objectIndex) { } } -Gfx OTrashBin::BinMod[] = -{ +Gfx OTrashBin::BinMod[] = { gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, + G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD), gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gTexture651B20), gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, + G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256), - gsSPVertex(BinVtx, 20, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), - gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), - gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), - gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0), - gsSPVertex(BinVtx2, 20, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), - gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), - gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), - gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0), - gsDPPipeSync(), - gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), - gsSPTexture(65535, 65535, 0, 0, 0), + gsSPVertex(BinVtx, 20, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), + gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), + gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), + gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0), + gsSPVertex(BinVtx2, 20, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), + gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), + gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), + gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0), + gsDPPipeSync(), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 0), gsSPEndDisplayList(), }; - - - - - - Vtx OTrashBin::BinVtx[20] = { - {{ {25, -13, 62}, 0, {0, -2303}, {255, 255, 255, 0} }}, - {{ {-25, -13, 62}, 0, {1280, -2303}, {255, 255, 255, 0} }}, - {{ {-25, -13, -63}, 0, {1280, 896}, {255, 255, 255, 0} }}, - {{ {25, -13, -63}, 0, {0, 895}, {255, 255, 255, 0} }}, - {{ {25, -13, -63}, 0, {0, 1113}, {255, 255, 255, 0} }}, - {{ {25, 20, -63}, 0, {0, 256}, {255, 255, 255, 0} }}, - {{ {25, 20, 62}, 0, {3199, 256}, {255, 255, 255, 0} }}, - {{ {25, -13, 62}, 0, {3199, 1113}, {255, 255, 255, 0} }}, - {{ {-25, -13, -63}, 0, {0, 1113}, {255, 255, 255, 0} }}, - {{ {-25, 20, -63}, 0, {0, 255}, {255, 255, 255, 0} }}, - {{ {25, 20, -63}, 0, {1280, 255}, {255, 255, 255, 0} }}, - {{ {25, -13, -63}, 0, {1280, 1113}, {255, 255, 255, 0} }}, - {{ {-25, -13, 62}, 0, {0, 1113}, {255, 255, 255, 0} }}, - {{ {-25, 20, 62}, 0, {0, 255}, {255, 255, 255, 0} }}, - {{ {-25, 20, -63}, 0, {3200, 255}, {255, 255, 255, 0} }}, - {{ {-25, -13, -63}, 0, {3200, 1113}, {255, 255, 255, 0} }}, - {{ {25, -13, 62}, 0, {0, 1113}, {255, 255, 255, 0} }}, - {{ {25, 20, 62}, 0, {0, 256}, {255, 255, 255, 0} }}, - {{ {-25, 20, 62}, 0, {1279, 256}, {255, 255, 255, 0} }}, - {{ {-25, -13, 62}, 0, {1279, 1113}, {255, 255, 255, 0} }}, + { { { 25, -13, 62 }, 0, { 0, -2303 }, { 255, 255, 255, 0 } } }, + { { { -25, -13, 62 }, 0, { 1280, -2303 }, { 255, 255, 255, 0 } } }, + { { { -25, -13, -63 }, 0, { 1280, 896 }, { 255, 255, 255, 0 } } }, + { { { 25, -13, -63 }, 0, { 0, 895 }, { 255, 255, 255, 0 } } }, + { { { 25, -13, -63 }, 0, { 0, 1113 }, { 255, 255, 255, 0 } } }, + { { { 25, 20, -63 }, 0, { 0, 256 }, { 255, 255, 255, 0 } } }, + { { { 25, 20, 62 }, 0, { 3199, 256 }, { 255, 255, 255, 0 } } }, + { { { 25, -13, 62 }, 0, { 3199, 1113 }, { 255, 255, 255, 0 } } }, + { { { -25, -13, -63 }, 0, { 0, 1113 }, { 255, 255, 255, 0 } } }, + { { { -25, 20, -63 }, 0, { 0, 255 }, { 255, 255, 255, 0 } } }, + { { { 25, 20, -63 }, 0, { 1280, 255 }, { 255, 255, 255, 0 } } }, + { { { 25, -13, -63 }, 0, { 1280, 1113 }, { 255, 255, 255, 0 } } }, + { { { -25, -13, 62 }, 0, { 0, 1113 }, { 255, 255, 255, 0 } } }, + { { { -25, 20, 62 }, 0, { 0, 255 }, { 255, 255, 255, 0 } } }, + { { { -25, 20, -63 }, 0, { 3200, 255 }, { 255, 255, 255, 0 } } }, + { { { -25, -13, -63 }, 0, { 3200, 1113 }, { 255, 255, 255, 0 } } }, + { { { 25, -13, 62 }, 0, { 0, 1113 }, { 255, 255, 255, 0 } } }, + { { { 25, 20, 62 }, 0, { 0, 256 }, { 255, 255, 255, 0 } } }, + { { { -25, 20, 62 }, 0, { 1279, 256 }, { 255, 255, 255, 0 } } }, + { { { -25, -13, 62 }, 0, { 1279, 1113 }, { 255, 255, 255, 0 } } }, }; Vtx OTrashBin::BinVtx2[20] = { - {{ {19, -8, 52}, 0, {3199, 1113}, {255, 255, 255, 0} }}, - {{ {25, 20, 62}, 0, {3199, 256}, {255, 255, 255, 0} }}, - {{ {25, 20, -63}, 0, {0, 256}, {255, 255, 255, 0} }}, - {{ {19, -8, -52}, 0, {0, 1113}, {255, 255, 255, 0} }}, - {{ {19, -8, -52}, 0, {1280, 1113}, {255, 255, 255, 0} }}, - {{ {25, 20, -63}, 0, {1280, 255}, {255, 255, 255, 0} }}, - {{ {-25, 20, -63}, 0, {0, 255}, {255, 255, 255, 0} }}, - {{ {-19, -8, -52}, 0, {0, 1113}, {255, 255, 255, 0} }}, - {{ {-19, -8, 52}, 0, {1279, 1113}, {255, 255, 255, 0} }}, - {{ {-25, 20, 62}, 0, {1279, 256}, {255, 255, 255, 0} }}, - {{ {25, 20, 62}, 0, {0, 256}, {255, 255, 255, 0} }}, - {{ {19, -8, 52}, 0, {0, 1113}, {255, 255, 255, 0} }}, - {{ {19, -8, -52}, 0, {0, 895}, {255, 255, 255, 0} }}, - {{ {-19, -8, -52}, 0, {1280, 896}, {255, 255, 255, 0} }}, - {{ {-19, -8, 52}, 0, {1280, -2303}, {255, 255, 255, 0} }}, - {{ {19, -8, 52}, 0, {0, -2303}, {255, 255, 255, 0} }}, - {{ {-19, -8, -52}, 0, {3200, 1113}, {255, 255, 255, 0} }}, - {{ {-25, 20, -63}, 0, {3200, 255}, {255, 255, 255, 0} }}, - {{ {-25, 20, 62}, 0, {0, 255}, {255, 255, 255, 0} }}, - {{ {-19, -8, 52}, 0, {0, 1113}, {255, 255, 255, 0} }}, + { { { 19, -8, 52 }, 0, { 3199, 1113 }, { 255, 255, 255, 0 } } }, + { { { 25, 20, 62 }, 0, { 3199, 256 }, { 255, 255, 255, 0 } } }, + { { { 25, 20, -63 }, 0, { 0, 256 }, { 255, 255, 255, 0 } } }, + { { { 19, -8, -52 }, 0, { 0, 1113 }, { 255, 255, 255, 0 } } }, + { { { 19, -8, -52 }, 0, { 1280, 1113 }, { 255, 255, 255, 0 } } }, + { { { 25, 20, -63 }, 0, { 1280, 255 }, { 255, 255, 255, 0 } } }, + { { { -25, 20, -63 }, 0, { 0, 255 }, { 255, 255, 255, 0 } } }, + { { { -19, -8, -52 }, 0, { 0, 1113 }, { 255, 255, 255, 0 } } }, + { { { -19, -8, 52 }, 0, { 1279, 1113 }, { 255, 255, 255, 0 } } }, + { { { -25, 20, 62 }, 0, { 1279, 256 }, { 255, 255, 255, 0 } } }, + { { { 25, 20, 62 }, 0, { 0, 256 }, { 255, 255, 255, 0 } } }, + { { { 19, -8, 52 }, 0, { 0, 1113 }, { 255, 255, 255, 0 } } }, + { { { 19, -8, -52 }, 0, { 0, 895 }, { 255, 255, 255, 0 } } }, + { { { -19, -8, -52 }, 0, { 1280, 896 }, { 255, 255, 255, 0 } } }, + { { { -19, -8, 52 }, 0, { 1280, -2303 }, { 255, 255, 255, 0 } } }, + { { { 19, -8, 52 }, 0, { 0, -2303 }, { 255, 255, 255, 0 } } }, + { { { -19, -8, -52 }, 0, { 3200, 1113 }, { 255, 255, 255, 0 } } }, + { { { -25, 20, -63 }, 0, { 3200, 255 }, { 255, 255, 255, 0 } } }, + { { { -25, 20, 62 }, 0, { 0, 255 }, { 255, 255, 255, 0 } } }, + { { { -19, -8, 52 }, 0, { 0, 1113 }, { 255, 255, 255, 0 } } }, }; diff --git a/src/engine/objects/TrashBin.h b/src/engine/objects/TrashBin.h index 3e878e1c0..ff1118249 100644 --- a/src/engine/objects/TrashBin.h +++ b/src/engine/objects/TrashBin.h @@ -18,10 +18,9 @@ extern "C" { } class OTrashBin : public OObject { -public: - + public: enum Behaviour { - STATIC, // The lid stays shut + STATIC, // The lid stays shut MUNCHING // The lid opens/closes in a scary munching manner }; explicit OTrashBin(const FVector& pos, const IRotator& rotation, f32 scale, OTrashBin::Behaviour bhv); @@ -31,7 +30,7 @@ public: void func_8007E00C(s32 objectIndex); void init_bb_trash_bin(s32); -private: + private: static Gfx BinMod[]; static Vtx BinVtx[]; static Vtx BinVtx2[]; diff --git a/src/engine/objects/Trophy.cpp b/src/engine/objects/Trophy.cpp index 9f90b6be1..f90bf906d 100644 --- a/src/engine/objects/Trophy.cpp +++ b/src/engine/objects/Trophy.cpp @@ -49,22 +49,22 @@ OTrophy::OTrophy(const FVector& pos, TrophyType trophy, Behaviour bhv) { switch (trophy) { case TrophyType::GOLD: - gObjectList[_objectIndex].model = (Gfx*)gold_trophy_dl10; + gObjectList[_objectIndex].model = (Gfx*) gold_trophy_dl10; break; case TrophyType::SILVER: - gObjectList[_objectIndex].model = (Gfx*)gold_trophy_dl12; + gObjectList[_objectIndex].model = (Gfx*) gold_trophy_dl12; break; case TrophyType::BRONZE: - gObjectList[_objectIndex].model = (Gfx*)gold_trophy_dl14; + gObjectList[_objectIndex].model = (Gfx*) gold_trophy_dl14; break; case TrophyType::GOLD_150: - gObjectList[_objectIndex].model = (Gfx*)gold_trophy_dl11; + gObjectList[_objectIndex].model = (Gfx*) gold_trophy_dl11; break; case TrophyType::SILVER_150: - gObjectList[_objectIndex].model = (Gfx*)gold_trophy_dl13; + gObjectList[_objectIndex].model = (Gfx*) gold_trophy_dl13; break; case TrophyType::BRONZE_150: - gObjectList[_objectIndex].model = (Gfx*)gold_trophy_dl15; + gObjectList[_objectIndex].model = (Gfx*) gold_trophy_dl15; break; } @@ -76,13 +76,13 @@ OTrophy::OTrophy(const FVector& pos, TrophyType trophy, Behaviour bhv) { func_80086E70(_objectIndex); } - switch(_bhv) { + switch (_bhv) { case OTrophy::Behaviour::GO_FISH: gObjectList[_objectIndex].sizeScaling = 0.010f; break; } - Object *object = &gObjectList[_objectIndex]; + Object* object = &gObjectList[_objectIndex]; object->origin_pos[0] = _spawnPos.x; object->origin_pos[1] = _spawnPos.y; object->origin_pos[2] = _spawnPos.z; @@ -103,7 +103,7 @@ void OTrophy::Tick() { // func_80086D80 D_801658DC = 1; } - switch(_bhv) { + switch (_bhv) { case OTrophy::Behaviour::PODIUM_CEREMONY: if (gObjectList[objectIndex].state != 0 && (*_toggleVisibility == true)) { OTrophy::func_80086C14(objectIndex); @@ -122,15 +122,14 @@ void OTrophy::Tick() { // func_80086D80 case OTrophy::Behaviour::STATIONARY: if (gObjectList[objectIndex].state != 0) { - gObjectList[objectIndex].sizeScaling = 0.025f; - set_obj_origin_pos(objectIndex, _spawnPos.x, - _spawnPos.y + 16.0, _spawnPos.z); - set_obj_origin_offset(objectIndex, 0.0f, 0.0f, 0.0f); - set_obj_direction_angle(objectIndex, 0U, 0U, 0U); - gObjectList[objectIndex].unk_084[1] = 0x0200; - object_next_state(objectIndex); - func_80086E70(objectIndex); - OTrophy::func_80086940(objectIndex); + gObjectList[objectIndex].sizeScaling = 0.025f; + set_obj_origin_pos(objectIndex, _spawnPos.x, _spawnPos.y + 16.0, _spawnPos.z); + set_obj_origin_offset(objectIndex, 0.0f, 0.0f, 0.0f); + set_obj_direction_angle(objectIndex, 0U, 0U, 0U); + gObjectList[objectIndex].unk_084[1] = 0x0200; + object_next_state(objectIndex); + func_80086E70(objectIndex); + OTrophy::func_80086940(objectIndex); } break; case OTrophy::Behaviour::ROTATE: @@ -152,8 +151,8 @@ void OTrophy::Tick() { // func_80086D80 if (gObjectList[objectIndex].state != 0) { // Get the player's yaw - Player *player = &gPlayers[0]; - float yaw = (player->rotation[1] + 0x4000) * (M_PI / 32768.0f); // Convert degrees to radians + Player* player = &gPlayers[0]; + float yaw = (player->rotation[1] + 0x4000) * (M_PI / 32768.0f); // Convert degrees to radians // Calculate forward direction based on yaw (same as before) float lookAtX = player->pos[0] + cos(yaw); @@ -174,33 +173,37 @@ void OTrophy::Tick() { // func_80086D80 // Calculate the object's position in front of the player (same as before) gObjectList[objectIndex].pos[0] = player->pos[0] + forwardX * distance; - gObjectList[objectIndex].pos[1] = player->pos[1] + 8.0f; // Optional height offset + gObjectList[objectIndex].pos[1] = player->pos[1] + 8.0f; // Optional height offset gObjectList[objectIndex].pos[2] = player->pos[2] + forwardZ * distance; // Apply more sensitive random movement based on player velocity to simulate floating behavior float velocityFactor = 0.1f; // Increased factor for more sensitivity gObjectList[objectIndex].pos[0] += player->velocity[0] * velocityFactor; - gObjectList[objectIndex].pos[1] += player->velocity[1] * velocityFactor; // Optional: Add vertical movement + gObjectList[objectIndex].pos[1] += + player->velocity[1] * velocityFactor; // Optional: Add vertical movement gObjectList[objectIndex].pos[2] += player->velocity[2] * velocityFactor; // Increase oscillation for more dynamic movement (sine wave effect) - float oscillationSpeed = 4.0f; // Increased speed for quicker oscillations + float oscillationSpeed = 4.0f; // Increased speed for quicker oscillations float oscillationAmplitude = 0.4f; // Increased amplitude for more noticeable movement - gObjectList[objectIndex].pos[1] += oscillationAmplitude * sinf(oscillationSpeed * gGlobalTimer); // Vertical oscillation based on time + gObjectList[objectIndex].pos[1] += + oscillationAmplitude * sinf(oscillationSpeed * gGlobalTimer); // Vertical oscillation based on time // Now use smooth interpolation (lerp) to gradually move the trophy towards its target position - float lerpFactor = 0.25f; // Increased to make the trophy follow the player more quickly + float lerpFactor = 0.25f; // Increased to make the trophy follow the player more quickly - gObjectList[objectIndex].pos[0] = _oldPos[0] + lerpFactor * (gObjectList[objectIndex].pos[0] - _oldPos[0]); - gObjectList[objectIndex].pos[1] = _oldPos[1] + lerpFactor * (gObjectList[objectIndex].pos[1] - _oldPos[1]); - gObjectList[objectIndex].pos[2] = _oldPos[2] + lerpFactor * (gObjectList[objectIndex].pos[2] - _oldPos[2]); + gObjectList[objectIndex].pos[0] = + _oldPos[0] + lerpFactor * (gObjectList[objectIndex].pos[0] - _oldPos[0]); + gObjectList[objectIndex].pos[1] = + _oldPos[1] + lerpFactor * (gObjectList[objectIndex].pos[1] - _oldPos[1]); + gObjectList[objectIndex].pos[2] = + _oldPos[2] + lerpFactor * (gObjectList[objectIndex].pos[2] - _oldPos[2]); // Save the current position for the next frame _oldPos[0] = gObjectList[objectIndex].pos[0]; _oldPos[1] = gObjectList[objectIndex].pos[1]; _oldPos[2] = gObjectList[objectIndex].pos[2]; - gObjectList[objectIndex].direction_angle[0] += 0x400; gObjectList[objectIndex].direction_angle[1] -= 0x200; } @@ -217,20 +220,20 @@ void OTrophy::Draw(s32 cameraId) { object = &gObjectList[listIndex]; if (object->state >= 2) { gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPersp[0]), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[0]), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); mtxf_set_matrix_transformation(someMatrix1, object->pos, object->direction_angle, object->sizeScaling); - //convert_to_fixed_point_matrix(&gGfxPool->mtxHud[gMatrixHudCount], someMatrix1); - //gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxHud[gMatrixHudCount++]), - // G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW); + // convert_to_fixed_point_matrix(&gGfxPool->mtxHud[gMatrixHudCount], someMatrix1); + // gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxHud[gMatrixHudCount++]), + // G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW); AddHudMatrix(someMatrix1, G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW); - gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D0077A0); + gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D0077A0); gSPDisplayList(gDisplayListHead++, object->model); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[0]), - G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION); + G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION); mtxf_identity(someMatrix2); render_set_position(someMatrix2, 0); } diff --git a/src/engine/objects/Trophy.h b/src/engine/objects/Trophy.h index 89f130997..9b776e885 100644 --- a/src/engine/objects/Trophy.h +++ b/src/engine/objects/Trophy.h @@ -18,7 +18,7 @@ extern "C" { } class OTrophy : public OObject { -public: + public: enum TrophyType { BRONZE, SILVER, @@ -31,7 +31,7 @@ public: enum Behaviour { PODIUM_CEREMONY, STATIONARY, - ROTATE, // A dual-axis opposing rotation + ROTATE, // A dual-axis opposing rotation ROTATE2, // A single-axis rotation GO_FISH, }; @@ -45,13 +45,13 @@ public: void func_80086C14(s32 objectIndex); void func_80086C6C(s32 objectIndex); -private: + private: StarEmitter* _emitter; TrophyType _trophy; FVector _spawnPos; Behaviour _bhv; - int8_t *_toggleVisibility; + int8_t* _toggleVisibility; Vec3f _oldPos; bool _isMod = false; }; |
