mirror of
https://github.com/Zelda64Recomp/Zelda64Recomp.git
synced 2026-04-26 12:11:38 +00:00
Fixed interpolation glitch with Gibdo mask in Pamela cutscene
This commit is contained in:
parent
8b0ccf3943
commit
a5fea0ec10
1 changed files with 24 additions and 0 deletions
|
|
@ -12,6 +12,7 @@
|
||||||
#include "overlays/actors/ovl_En_Twig/z_en_twig.h"
|
#include "overlays/actors/ovl_En_Twig/z_en_twig.h"
|
||||||
#include "overlays/actors/ovl_En_Honotrap/z_en_honotrap.h"
|
#include "overlays/actors/ovl_En_Honotrap/z_en_honotrap.h"
|
||||||
#include "overlays/actors/ovl_En_Tanron1/z_en_tanron1.h"
|
#include "overlays/actors/ovl_En_Tanron1/z_en_tanron1.h"
|
||||||
|
#include "overlays/actors/ovl_Dm_Char05/z_dm_char05.h"
|
||||||
|
|
||||||
// Decomp renames, TODO update decomp and remove these
|
// Decomp renames, TODO update decomp and remove these
|
||||||
#define EnHonotrap_FlameGroup func_8092F878
|
#define EnHonotrap_FlameGroup func_8092F878
|
||||||
|
|
@ -1331,3 +1332,26 @@ RECOMP_PATCH void func_80BB5AAC(EnTanron1* this, PlayState* play) {
|
||||||
|
|
||||||
CLOSE_DISPS(play->state.gfxCtx);
|
CLOSE_DISPS(play->state.gfxCtx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern void func_80AADF54(PlayState* play, DmChar05* this);
|
||||||
|
|
||||||
|
// @recomp Patched to avoid an interpolation glitch in Pamela's dad's cutscene
|
||||||
|
// that happens when the mask is meant to teleport offscreen.
|
||||||
|
RECOMP_PATCH void func_80AADB4C(Actor* thisx, PlayState* play) {
|
||||||
|
DmChar05* this = (DmChar05*)thisx;
|
||||||
|
if (this->unk_18E == 0) {
|
||||||
|
if (Cutscene_IsCueInChannel(play, CS_CMD_ACTOR_CUE_518) &&
|
||||||
|
(play->csCtx.actorCues[Cutscene_GetCueChannel(play, CS_CMD_ACTOR_CUE_518)]->id != 1)) {
|
||||||
|
// @recomp During this cue the mask does nothing other than teleport offscreen and stay still,
|
||||||
|
// so we can just skip interpolation the entire time.
|
||||||
|
if (play->csCtx.actorCues[Cutscene_GetCueChannel(play, CS_CMD_ACTOR_CUE_518)]->id == 3) {
|
||||||
|
actor_set_interpolation_skipped(thisx);
|
||||||
|
}
|
||||||
|
Gfx_SetupDL25_Opa(play->state.gfxCtx);
|
||||||
|
SkelAnime_DrawFlexOpa(play, this->skelAnime.skeleton, this->skelAnime.jointTable,
|
||||||
|
this->skelAnime.dListCount, NULL, NULL, &this->actor);
|
||||||
|
}
|
||||||
|
} else if (this->unk_18E == 1) {
|
||||||
|
func_80AADF54(play, this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue