mirror of
				https://github.com/Zelda64Recomp/Zelda64Recomp.git
				synced 2025-10-30 08:03:03 +00:00 
			
		
		
		
	 b5360b0546
			
		
	
	
		b5360b0546
		
			
		
	
	
	
		
			
	
		
	
	
		
			Some checks failed
		
		
	
	validate-internal / build (push) Has been cancelled
				
			* Update runtime for hook and callback sorting, update version number * Actually update version number * Automatically open mods menu when dragging a mod which also prevents issues when installing a mod from the launcher menu * Update RT64 to add texture pack shift configuration and fix minimized memory leak * Update runtime for return hook getter exports * Actually update rt64 * Update RT64 to fix texture pack ordering * Implement optional dependencies, fix memory slotmaps, bump version number to 1.2.1-dev * Add command-line option to show console output on Windows. (#632) * Add new raphnet adapter revision to controller DB * Add another mayflash N64 adapter to the controller database file * Update runtime after merge for optional dependencies * Update runtime for optional dependency mod callback fix * Add mayflash magic NS to controller database * Update RT64 for extended address fix and x11 dependency removal * Update RT64 to fix build issue caused by x11 * Update runtime to remove unnnecessary x11 includes * Fix more x11 define compilation issues * Fix the x86-64 CPU requirement listing in the readme (#634) * Transform tagging for keaton grass tornado * Interpolation for sword trails * Switch RT64 to gEXVertex fix branch (temporary until merge) * Add 8bitdo 64 bluetooth controller to database * Add export to get bowstring transform ID * Update RT64 to fix linux dev mode menu and texture streaming race condition * Fix all the interpolation glitches in the Gibdo Mask cutscene (#641) * Fix the actor extension API breaking when registering an extension for actor type 0 first * Remove slotmap submodule and integrate header directly after submodule URL changed * Transform tagging for ObjGrass * Adding autosave events. (#611) * Adding autosave events. Dead simple. * Update autosaving.c to include @recomp_event comments * Prevent autosaves during minigames and fix holding powder keg on autosave load (#640) * Update runtime for more accurate VI and switch to improved pacing RT64 branch (#644) * Update runtime for more accurate VI and switch to improved pacing RT64 branch * Update N64ModernRuntime and RT64 after merge * Update recompiler to match runtime symbol list * Remove unused gibdo patch file --------- Co-authored-by: Darío <dariosamo@gmail.com> Co-authored-by: Reonu <15913880+Reonu@users.noreply.github.com>
		
			
				
	
	
		
			74 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #include "patches.h"
 | |
| #include "transform_ids.h"
 | |
| #include "overlays/actors/ovl_En_Pamera/z_en_pamera.h"
 | |
| 
 | |
| extern void EnPamera_Draw(Actor* thisx, PlayState* play);
 | |
| extern void func_80BD9E88(EnPamera* this);
 | |
| extern void func_80BD9EE0(EnPamera* this);
 | |
| extern void func_80BDA038(EnPamera* this);
 | |
| extern void func_80BDA0A0(EnPamera* this);
 | |
| extern void func_80BDA170(EnPamera* this);
 | |
| extern void func_80BDA288(EnPamera* this);
 | |
| extern void func_80BD994C(EnPamera* this, PlayState* play);
 | |
| extern void EnPamera_HandleDialogue(EnPamera* this, PlayState* play);
 | |
| extern void func_80BD9904(EnPamera* this);
 | |
| extern void func_80BD9E60(EnPamera* this);
 | |
| 
 | |
| // @recomp Skip interpolation when the animations change during the cutscene, as the
 | |
| // animation changes are meant to happen at the same time as the camera cuts.
 | |
| RECOMP_PATCH s32 func_80BD9CB8(EnPamera* this, PlayState* play) {
 | |
|     s32 cueChannel;
 | |
| 
 | |
|     if (Cutscene_IsCueInChannel(play, CS_CMD_ACTOR_CUE_485)) {
 | |
|         cueChannel = Cutscene_GetCueChannel(play, CS_CMD_ACTOR_CUE_485);
 | |
|         if (this->cueId != play->csCtx.actorCues[cueChannel]->id) {
 | |
|             this->cueId = play->csCtx.actorCues[cueChannel]->id;
 | |
| 
 | |
|             switch (play->csCtx.actorCues[cueChannel]->id) {
 | |
|                 case 1:
 | |
|                     func_80BD9E88(this);
 | |
|                     break;
 | |
| 
 | |
|                 case 2:
 | |
|                     if (this->actor.draw == NULL) {
 | |
|                         this->actor.draw = EnPamera_Draw;
 | |
|                         this->actor.flags |= ACTOR_FLAG_TARGETABLE;
 | |
|                     }
 | |
|                     func_80BD9EE0(this);
 | |
|                     break;
 | |
| 
 | |
|                 case 3:
 | |
|                     func_80BDA038(this);
 | |
|                     break;
 | |
| 
 | |
|                 case 4:
 | |
|                     func_80BDA0A0(this);
 | |
|                     break;
 | |
| 
 | |
|                 case 5:
 | |
|                     func_80BDA170(this);
 | |
|                     break;
 | |
| 
 | |
|                 case 6:
 | |
|                     func_80BDA288(this);
 | |
|                     break;
 | |
| 
 | |
|                 default:
 | |
|                     break;
 | |
|             }
 | |
|             actor_set_interpolation_skipped(&this->actor);
 | |
|         }
 | |
|         Cutscene_ActorTranslateAndYaw(&this->actor, play, cueChannel);
 | |
|         this->setupFunc(this, play);
 | |
|         return true;
 | |
|     }
 | |
|     if ((play->csCtx.state == CS_STATE_IDLE) && CHECK_WEEKEVENTREG(WEEKEVENTREG_75_20)) {
 | |
|         if ((this->actionFunc != func_80BD994C) && (this->actionFunc != EnPamera_HandleDialogue)) {
 | |
|             this->actor.shape.rot.y = this->actor.world.rot.y;
 | |
|             func_80BD9904(this);
 | |
|             func_80BD9E60(this);
 | |
|         }
 | |
|     }
 | |
|     this->cueId = 99;
 | |
|     return false;
 | |
| }
 |