mirror of
https://github.com/HarbourMasters/SpaghettiKart
synced 2026-05-23 06:54:37 -04:00
Maybe fix some interpolation (#637)
* Update render_player.c * Refactor FrameInterpolation_RecordOpenChild calls * Update GrandPrixBalloons.cpp * Modify func_80053D74 to include an additional parameter
This commit is contained in:
+5
-6
@@ -5785,8 +5785,7 @@ void render_battle_balloon(Player* player, s8 arg1, s16 arg2, s8 arg3) {
|
||||
sp12C[2] = D_8018D7D0[arg1][arg2] - (D_8018D860[arg1][arg2] * coss(temp_t1)) -
|
||||
((D_8018D890[arg1][arg2] * 8) * sins(temp_t1));
|
||||
|
||||
// @port: Tag the transform.
|
||||
FrameInterpolation_RecordOpenChild((uintptr_t) player, arg1 | arg2 << 16);
|
||||
FrameInterpolation_RecordOpenChild("battle_balloon", (arg1 << 8) | (arg3 << 4) | arg2);
|
||||
|
||||
mtxf_translate_rotate(mtx, sp134, sp12C);
|
||||
mtxf_scale(mtx, var_f20);
|
||||
@@ -6303,7 +6302,7 @@ void func_8006D474(Player* player, s8 playerId, s8 screenId) {
|
||||
if ((player->unk_002 & (SIDE_OF_KART << (screenId * 4))) == (SIDE_OF_KART << (screenId * 4))) {
|
||||
for (var_s2 = 0; var_s2 < 10; var_s2++) {
|
||||
// @port: Tag the transform.
|
||||
FrameInterpolation_RecordOpenChild("SmokeDust", TAG_SMOKE_DUST((playerId << 8) + var_s2));
|
||||
FrameInterpolation_RecordOpenChild("smoke_dust", TAG_SMOKE_DUST((playerId << 8) | (screenId << 4) | var_s2));
|
||||
switch (player->particlePool0[var_s2].type) {
|
||||
case 1:
|
||||
if (gActiveScreenMode == SCREEN_MODE_3P_4P_SPLITSCREEN) {
|
||||
@@ -6325,7 +6324,7 @@ void func_8006D474(Player* player, s8 playerId, s8 screenId) {
|
||||
break;
|
||||
}
|
||||
FrameInterpolation_RecordCloseChild();
|
||||
FrameInterpolation_RecordOpenChild("SmokeDust", TAG_SMOKE_DUST((playerId << 8) + var_s2 + 30));
|
||||
FrameInterpolation_RecordOpenChild("smoke_dust2", TAG_SMOKE_DUST((playerId << 8) | (screenId << 4) | var_s2));
|
||||
switch (player->particlePool3[var_s2].type) {
|
||||
case 1:
|
||||
case 9:
|
||||
@@ -6388,7 +6387,7 @@ void func_8006D474(Player* player, s8 playerId, s8 screenId) {
|
||||
break;
|
||||
}
|
||||
FrameInterpolation_RecordCloseChild();
|
||||
FrameInterpolation_RecordOpenChild("SmokeDust", TAG_SMOKE_DUST((playerId << 8) + var_s2 + 10));
|
||||
FrameInterpolation_RecordOpenChild("smoke_dust3", TAG_SMOKE_DUST((playerId << 8) | (screenId << 4) | var_s2));
|
||||
switch (player->particlePool1[var_s2].type) {
|
||||
case DRIFT_PARTICLE:
|
||||
if (gActiveScreenMode == SCREEN_MODE_3P_4P_SPLITSCREEN) {
|
||||
@@ -6475,7 +6474,7 @@ void func_8006DD3C(Player* player, s8 playerId, s8 arg2) {
|
||||
}
|
||||
|
||||
if (((player->type & PLAYER_HUMAN) == PLAYER_HUMAN) && (arg2 == playerId)) {
|
||||
FrameInterpolation_RecordOpenChild("onomatopoeia", TAG_SMOKE_DUST((playerId << 8) + 20));
|
||||
FrameInterpolation_RecordOpenChild("onomatopoeia", TAG_SMOKE_DUST((playerId << 8) | (arg2 << 4)));
|
||||
switch (player->particlePool2[0].type) {
|
||||
case 2:
|
||||
render_player_onomatopoeia_crash(player, playerId, player->particlePool2[0].scale, arg2, 0);
|
||||
|
||||
@@ -92,19 +92,19 @@ void OGrandPrixBalloons::Draw(s32 cameraId) {
|
||||
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);
|
||||
OGrandPrixBalloons::func_80053D74(objectIndex, cameraId, 0, var_s1);
|
||||
}
|
||||
}
|
||||
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)) {
|
||||
OGrandPrixBalloons::func_80053D74(objectIndex, cameraId, 4);
|
||||
OGrandPrixBalloons::func_80053D74(objectIndex, cameraId, 4, var_s1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void OGrandPrixBalloons::func_80053D74(s32 objectIndex, UNUSED s32 arg1, s32 vertexIndex) {
|
||||
void OGrandPrixBalloons::func_80053D74(s32 objectIndex, UNUSED s32 arg1, s32 vertexIndex, s32 index) {
|
||||
Object* object;
|
||||
|
||||
Vtx* vtx = (Vtx*) LOAD_ASSET_RAW(common_vtx_hedgehog);
|
||||
@@ -113,9 +113,7 @@ void OGrandPrixBalloons::func_80053D74(s32 objectIndex, UNUSED s32 arg1, s32 ver
|
||||
if (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX) {
|
||||
object = &gObjectList[objectIndex];
|
||||
|
||||
// @port: Tag the transform.
|
||||
FrameInterpolation_RecordOpenChild("Balloon",
|
||||
TAG_ITEM_ADDR((objectIndex << 32) + i++)); // Not working properly just yet
|
||||
FrameInterpolation_RecordOpenChild("Balloon", TAG_ITEM_ADDR((objectIndex << 7 | index)));
|
||||
|
||||
D_80183E80[2] = (s16) (object->unk_084[6] + 0x8000);
|
||||
rsp_set_matrix_transformation(object->pos, (u16*) D_80183E80, object->sizeScaling);
|
||||
|
||||
@@ -39,7 +39,7 @@ public:
|
||||
|
||||
virtual void Tick() override;
|
||||
virtual void Draw(s32 cameraId) override;
|
||||
void func_80053D74(s32 objectIndex, UNUSED s32 arg1, s32 vertexIndex);
|
||||
void func_80053D74(s32 objectIndex, UNUSED s32 arg1, s32 vertexIndex, s32 index);
|
||||
|
||||
void func_80074924(s32 objectIndex);
|
||||
void func_80074D94(s32 objectIndex);
|
||||
|
||||
+4
-4
@@ -1183,7 +1183,7 @@ void render_player_shadow(Player* player, s8 playerId, s8 screenId) {
|
||||
f32 var_f2;
|
||||
|
||||
// @port: Tag the transform.
|
||||
FrameInterpolation_RecordOpenChild("Kart Shadow", TAG_ITEM_ADDR(player));
|
||||
FrameInterpolation_RecordOpenChild("kart_shadow", TAG_ITEM_ADDR((playerId << 8) | (screenId << 4)));
|
||||
temp_t9 = (u16) (player->unk_048[screenId] + player->rotation[1] + player->unk_0C0) / 128; // << 7) & 0xFFFF;
|
||||
spC0 = -player->rotation[1] - player->unk_0C0;
|
||||
|
||||
@@ -1309,7 +1309,7 @@ void render_kart(Player* player, s8 playerId, s8 screenId, s8 flipOffset) {
|
||||
s16 temp_v1;
|
||||
s16 thing;
|
||||
|
||||
FrameInterpolation_RecordOpenChild("player_kart", playerId | screenId << 8);
|
||||
FrameInterpolation_RecordOpenChild("player_kart", (playerId << 4) | screenId);
|
||||
if (player->kartProps & UNUSED_0x2000) {
|
||||
sp14C[0] = 0;
|
||||
sp14C[1] = player->unk_048[screenId];
|
||||
@@ -1505,7 +1505,7 @@ void func_80025DE8(Player* player, s8 playerId, s8 screenId, s8 flipOffset) {
|
||||
sp94[1] = player->unk_048[screenId];
|
||||
sp94[2] = player->unk_050[screenId];
|
||||
|
||||
FrameInterpolation_RecordOpenChild("player_boost", playerId | screenId << 8);
|
||||
FrameInterpolation_RecordOpenChild("player_boost", (playerId << 4) | screenId);
|
||||
|
||||
mtxf_translate_rotate(mtx, sp9C, sp94);
|
||||
mtxf_scale(mtx, gCharacterSize[player->characterId] * player->size);
|
||||
@@ -1554,7 +1554,7 @@ void render_player_ice_reflection(Player* player, s8 playerId, s8 screenId, s8 f
|
||||
}
|
||||
|
||||
// @port: Tag the transform.
|
||||
FrameInterpolation_RecordOpenChild("PlayerReflection", playerId | screenId << 8);
|
||||
FrameInterpolation_RecordOpenChild("player_reflection", (playerId << 4) | screenId);
|
||||
|
||||
mtxf_translate_rotate(mtx, sp9C, sp94);
|
||||
mtxf_scale(mtx, gCharacterSize[player->characterId] * player->size);
|
||||
|
||||
Reference in New Issue
Block a user