mirror of
				https://github.com/Zelda64Recomp/Zelda64Recomp.git
				synced 2025-10-30 08:03:03 +00:00 
			
		
		
		
	Fixed interpolation glitch with Gibdo mask in Pamela cutscene
This commit is contained in:
		
							parent
							
								
									3aea1bee48
								
							
						
					
					
						commit
						8e08d4d685
					
				
					 1 changed files with 24 additions and 0 deletions
				
			
		|  | @ -13,6 +13,7 @@ | |||
| #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_Kusa2/z_en_kusa2.h" | ||||
| #include "overlays/actors/ovl_Dm_Char05/z_dm_char05.h" | ||||
| 
 | ||||
| // Decomp renames, TODO update decomp and remove these
 | ||||
| #define EnHonotrap_FlameGroup func_8092F878 | ||||
|  | @ -1373,3 +1374,26 @@ RECOMP_PATCH void func_80A5E6F0(Actor* thisx, PlayState* play) { | |||
| 
 | ||||
|     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
	
	 Reonu
						Reonu