diff options
| author | Sonic Dreamcaster <alejandro.asenjo88@gmail.com> | 2025-05-06 10:31:07 -0300 |
|---|---|---|
| committer | Sonic Dreamcaster <alejandro.asenjo88@gmail.com> | 2025-05-06 10:31:07 -0300 |
| commit | d02bae05950bedbb973cd35cfdc27636dbee9e74 (patch) | |
| tree | 5784be7136287b5aaee924f2dab09408f1d789e0 /src/engine | |
| parent | 3a21c8c5d6c0d564a417130c07dfef620c0de4bf (diff) | |
N64 Recorded Cutscene Timings for Corneria, Meteo, Macbeth and Sector Y Bosses
Diffstat (limited to 'src/engine')
| -rw-r--r-- | src/engine/fox_demo.c | 24 | ||||
| -rw-r--r-- | src/engine/fox_display.c | 15 |
2 files changed, 37 insertions, 2 deletions
diff --git a/src/engine/fox_demo.c b/src/engine/fox_demo.c index 40506dbb..c3315a63 100644 --- a/src/engine/fox_demo.c +++ b/src/engine/fox_demo.c @@ -19,6 +19,28 @@ #include "assets/ast_katina.h" #include "assets/ast_allies.h" #include "port/hooks/Events.h" +#include "fox_co.h" +#include "fox_record.h" + +void UpdateVisPerFrameFromRecording(u8* record, s32 maxFrames) { + if (gCsFrameCount < maxFrames) { + gVIsPerFrame = record[gCsFrameCount]; + } +} + +void UpdateVisPerFrameFromRecording2(Record* record, s32 maxFrames) { + int i; + + if (gCsFrameCount > record[maxFrames - 1].frame) { + return; + } + + for (i = 0; i < maxFrames; i++) { + if (gCsFrameCount == record[i].frame) { + gVIsPerFrame = record[i].vis; + } + } +} void func_demo_80048AC0(TeamId teamId) { s32 teamShield; @@ -925,6 +947,8 @@ void Cutscene_CoComplete2(Player* player) { Math_SmoothStepToF(&player->camRoll, 0.0f, 0.1f, 5.0f, 0.01f); + UpdateVisPerFrameFromRecording(gCarrierCutsceneRecord, ARRAY_COUNT(gCarrierCutsceneRecord)); + switch (player->csState) { case 10: D_ctx_80177A48[2] = 0.0f; diff --git a/src/engine/fox_display.c b/src/engine/fox_display.c index d636ad62..0d6e2bad 100644 --- a/src/engine/fox_display.c +++ b/src/engine/fox_display.c @@ -148,7 +148,8 @@ void Display_DrawHelpAlert(void) { RCP_SetupDL(&gMasterDisp, SETUPDL_76_OPTIONAL); gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 0, 255); if (sp78 < 0.0f) { - Graphics_DisplaySmallText(OTRGetRectDimensionFromLeftEdgeOverride(38.0f), 106, 1.0f, 1.0f, "HELP!!"); + Graphics_DisplaySmallText(OTRGetRectDimensionFromLeftEdgeOverride(38.0f), 106, 1.0f, 1.0f, + "HELP!!"); } else { Graphics_DisplaySmallText(OTRGetRectDimensionFromRightEdgeOverride(248), 106, 1.0f, 1.0f, "HELP!!"); } @@ -1138,7 +1139,7 @@ void Display_ArwingLaserCharge(Player* player) { // @port: Tag the transform. FrameInterpolation_RecordOpenChild("ArwingMuzzleFlash", 0); - + Matrix_Translate(gGfxMatrix, sp94.x, sp94.y, sp94.z, MTXF_NEW); Matrix_Scale(gGfxMatrix, gMuzzleFlashScale[player->num], gMuzzleFlashScale[player->num], 1.0f, MTXF_APPLY); @@ -2049,6 +2050,16 @@ void Display_Update(void) { if (gInputPress->stick_y < 0) Graphics_DisplaySmallText(110, 220, 1.0f, 1.0f, "NEG:"); #endif +// For debugging cutscene timings +#if 0 + RCP_SetupDL(&gMasterDisp, SETUPDL_83); + gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 0, 255); + Graphics_DisplaySmallText(10 + 210, 190, 1.0f, 1.0f, "CSFMS:"); + Graphics_DisplaySmallNumber(60 + 210, 190, (int) gCsFrameCount); + Graphics_DisplaySmallText(10 + 210, 200, 1.0f, 1.0f, "PLTIM:"); + Graphics_DisplaySmallNumber(60 + 210, 200, (int) gPlayer->csTimer); +#endif + // @port: @event: Call DisplayPostUpdateEvent CALL_EVENT(DisplayPostUpdateEvent); } |
