diff --git a/src/engine/courses/TestCourse.cpp b/src/engine/courses/TestCourse.cpp index 33f003b3b..2eb66506d 100644 --- a/src/engine/courses/TestCourse.cpp +++ b/src/engine/courses/TestCourse.cpp @@ -270,7 +270,7 @@ void TestCourse::BeginPlay() { // gWorldInstance.AddActor(new OSeagull(2, pos)); // gWorldInstance.AddActor(new OSeagull(3, pos)); // gWorldInstance.AddObject(new OCheepCheep(FVector(0, 40, 0), OCheepCheep::CheepType::RACE, IPathSpan(0, 10))); - // gWorldInstance.AddObject(new OTrophy(FVector(0,0,0), OTrophy::TrophyType::GOLD, OTrophy::Behaviour::GO_FISH)); + gWorldInstance.AddObject(new OTrophy(FVector(0,0,0), OTrophy::TrophyType::GOLD, OTrophy::Behaviour::GO_FISH)); //gWorldInstance.AddObject(new OSnowman(FVector(0, 0, 0))); //gWorldInstance.AddObject(new OTrashBin(FVector(0.0f, 0.0f, 0.0f), IRotator(0, 90, 0), 1.0f, OTrashBin::Behaviour::MUNCHING)); @@ -295,9 +295,9 @@ void TestCourse::BeginPlay() { gWorldInstance.AddObject(new OBombKart(pos2, &gTrackPaths[0][25], 25, 4, 0.8333333f)); gWorldInstance.AddObject(new OBombKart(pos2, &gTrackPaths[0][45], 45, 4, 0.8333333f)); - gWorldInstance.AddActor(new AShip(FVector(0, 0, 0), AShip::Skin::SHIP3)); + // gWorldInstance.AddActor(new AShip(FVector(0, 0, 0), AShip::Skin::SHIP3)); - gWorldInstance.AddObject(new OGrandPrixBalloons(FVector(0, 0, 0))); +// gWorldInstance.AddObject(new OGrandPrixBalloons(FVector(0, 0, 0))); } void TestCourse::WhatDoesThisDo(Player* player, int8_t playerId) { @@ -347,4 +347,4 @@ void TestCourse::Render(struct UnkStruct_800DC5EC* arg0) { bool TestCourse::IsMod() { return true; -} \ No newline at end of file +} diff --git a/src/engine/objects/Trophy.cpp b/src/engine/objects/Trophy.cpp index 9f90b6be1..778a07213 100644 --- a/src/engine/objects/Trophy.cpp +++ b/src/engine/objects/Trophy.cpp @@ -37,8 +37,8 @@ OTrophy::OTrophy(const FVector& pos, TrophyType trophy, Behaviour bhv) { if (bhv == OTrophy::Behaviour::PODIUM_CEREMONY) { _toggleVisibility = &D_801658CE; } else { - int8_t toggle = 1; - _toggleVisibility = &toggle; + _toggle = 1; + _toggleVisibility = &_toggle; _isMod = true; } @@ -203,6 +203,11 @@ void OTrophy::Tick() { // func_80086D80 gObjectList[objectIndex].direction_angle[0] += 0x400; gObjectList[objectIndex].direction_angle[1] -= 0x200; + + // Emit particles when player is moving quickly + if (((player->speed / 18.0f) * 216.0f) >= 60.0f) { + OTrophy::func_80086C6C(objectIndex); + } } break; } @@ -238,7 +243,7 @@ void OTrophy::Draw(s32 cameraId) { switch (_bhv) { case GO_FISH: size_t numTrophies = 0; - func_80057A50(40, 0, (char*) "Trophies Collected: ", (s16) numTrophies); + func_80057A50(40, 22, (char*) "Trophies Collected: ", (s16) numTrophies); break; } } diff --git a/src/engine/objects/Trophy.h b/src/engine/objects/Trophy.h index 89f130997..016115dcd 100644 --- a/src/engine/objects/Trophy.h +++ b/src/engine/objects/Trophy.h @@ -51,6 +51,7 @@ private: TrophyType _trophy; FVector _spawnPos; Behaviour _bhv; + int8_t _toggle; int8_t *_toggleVisibility; Vec3f _oldPos; bool _isMod = false;