summaryrefslogtreecommitdiff
path: root/src/engine/Smoke.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/Smoke.cpp')
-rw-r--r--src/engine/Smoke.cpp17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/engine/Smoke.cpp b/src/engine/Smoke.cpp
index 5fb0c0c39..6a4566df4 100644
--- a/src/engine/Smoke.cpp
+++ b/src/engine/Smoke.cpp
@@ -5,6 +5,7 @@
#include "World.h"
#include "vehicles/Train.h"
#include "vehicles/Boat.h"
+#include <port/interpolation/FrameInterpolation.h>
extern "C" {
#include "macros.h"
@@ -69,7 +70,6 @@ void TrainSmokeTick() {
if (count != 0) {
boat->SmokeTimer = 100;
}
-
}
}
}
@@ -80,28 +80,31 @@ void TrainSmokeDraw(s32 cameraId) {
for (auto& actor : gWorldInstance.Actors) {
if (auto train = dynamic_cast<ATrain*>(actor)) {
- gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D007AE0);
- load_texture_block_i8_nomirror((uint8_t*)D_0D029458, 32, 32);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D007AE0);
+ load_texture_block_i8_nomirror((uint8_t*) D_0D029458, 32, 32);
func_8004B72C(255, 255, 255, 255, 255, 255, 255);
D_80183E80[0] = 0;
D_80183E80[2] = 0x8000;
- if ((train->SomeFlags != 0) &&
- (is_particle_on_screen(train->Locomotive.position, camera, 0x4000U) != 0)) {
+ if ((train->SomeFlags != 0) && (is_particle_on_screen(train->Locomotive.position, camera, 0x4000U) != 0)) {
for (size_t i = 0; i < 128; i++) {
+ FrameInterpolation_RecordOpenChild("TrainSmokeParticle", train->SmokeParticles[i]);
render_object_train_smoke_particle(train->SmokeParticles[i], cameraId);
+ FrameInterpolation_RecordCloseChild();
}
}
} else if (auto boat = dynamic_cast<ABoat*>(actor)) {
- gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D007AE0);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D007AE0);
- load_texture_block_i8_nomirror((uint8_t*)D_0D029458, 32, 32);
+ load_texture_block_i8_nomirror((uint8_t*) D_0D029458, 32, 32);
func_8004B72C(255, 255, 255, 255, 255, 255, 255);
D_80183E80[0] = 0;
D_80183E80[2] = 0x8000;
if ((boat->SomeFlags != 0) && (is_particle_on_screen(boat->Position, camera, 0x4000U) != 0)) {
for (size_t i = 0; i < gObjectParticle2_SIZE; i++) {
+ FrameInterpolation_RecordOpenChild("BoatSmokeParticle", boat->SmokeParticles[i]);
render_object_paddle_boat_smoke_particle(boat->SmokeParticles[i], cameraId);
+ FrameInterpolation_RecordCloseChild();
}
}
}