diff options
| author | SonicDcer <alejandro.asenjo88@gmail.com> | 2026-06-15 03:13:19 -0300 |
|---|---|---|
| committer | SonicDcer <alejandro.asenjo88@gmail.com> | 2026-06-15 03:13:19 -0300 |
| commit | cee62dd2c39ecf9c032c573fabed1fbb08f9517a (patch) | |
| tree | 34594092ae41c0d92b2b05c0f52be1d8bd18a253 /src/engine/cutscene_record.c | |
| parent | ed6604310a74c2207716a5bee32ae05d5fd00f7a (diff) | |
| parent | b96d7e4c530a11975b0f7a618253b9a0ea225880 (diff) | |
Merge branch 'main' of github.com:HarbourMasters/Starship
Diffstat (limited to 'src/engine/cutscene_record.c')
| -rw-r--r-- | src/engine/cutscene_record.c | 192 |
1 files changed, 192 insertions, 0 deletions
diff --git a/src/engine/cutscene_record.c b/src/engine/cutscene_record.c new file mode 100644 index 00000000..3bf8a512 --- /dev/null +++ b/src/engine/cutscene_record.c @@ -0,0 +1,192 @@ +#include "global.h" +#include "fox_record.h" + +void UpdateVisPerFrameFromRecording(Record* record, s32 maxFrames, int* frameCounter) { + int i; + + if (*frameCounter > record[maxFrames - 1].frame) { + return; + } + + for (i = 0; i < maxFrames; i++) { + if (*frameCounter == record[i].frame) { + gVIsPerFrame = record[i].vis; + } + } +} + +int gWarpzoneCsFrameCount = 0; +int gA6GorgonCsFrameCount = 0; + +// clang-format off + +Record gWarpzoneCsRecord[19] = { + { 2, 1 }, { 3, 3 }, { 4, 4 }, { 3, 8 }, { 2, 9 }, { 3, 52 }, { 2, 54 }, { 3, 69 }, { 2, 70 }, { 3, 75 }, + { 2, 76 }, { 3, 79 }, { 2, 117 }, { 3, 118 }, { 2, 120 }, { 3, 145 }, { 2, 215 }, { 3, 216 }, { 2, 230 }, +}; + +Record gA6GorgonCsRecord[12] = { + { 3, 0 }, { 4, 3 }, { 5, 6 }, { 4, 37 }, { 5, 38 }, { 4, 44 }, + { 3, 53 }, { 4, 54 }, { 3, 57 }, { 4, 58 }, { 3, 59 }, { 2, 170 }, +}; + +Record gEndingCsRecord[37] = { + { 2, 0 }, { 5, 1 }, { 2, 2 }, { 3, 277 }, { 2, 278 }, { 3, 340 }, { 2, 397 }, { 3, 537 }, + { 2, 538 }, { 3, 548 }, { 2, 549 }, { 3, 568 }, { 2, 569 }, { 3, 620 }, { 2, 623 }, { 3, 803 }, + { 2, 806 }, { 3, 814 }, { 2, 823 }, { 3, 1282 }, { 2, 1284 }, { 5, 3703 }, { 2, 3704 }, { 4, 3904 }, + { 2, 3905 }, { 3, 4782 }, { 2, 4783 }, { 3, 4785 }, { 2, 4820 }, { 3, 4986 }, { 2, 6779 }, { 5, 6780 }, + { 2, 6781 }, { 3, 6785 }, { 4, 6786 }, { 3, 6793 }, { 2, 6799 }, +}; + +// MeCrusher destroy cutscene timings recorded from a real N64 +Record gMeCrusherCutsceneRecord[3] = { + { 2, 0 }, + { 3, 200 }, + { 2, 224 }, +}; + +// Carrier destroy cutscene timings recorded from a real N64 +Record gCarrierCutsceneRecord[13] = { + { 2, 0 }, + { 3, 2 }, + { 4, 16 }, + { 3, 50 }, + { 4, 58 }, + { 5, 67 }, + { 4, 68 }, + { 5, 71 }, + { 4, 73 }, + { 5, 74 }, + { 4, 106 }, + { 3, 146 }, + { 2, 194 }, +}; + +// Granga destroy cutscene timings recorded from a real N64 +Record gGrangaCutsceneRecord[13] = { + { 2, 0 }, + { 3, 1 }, + { 2, 5 }, + { 3, 7 }, + { 2, 52 }, + { 3, 78 }, + { 4, 103 }, + { 3, 125 }, + { 2, 153 }, + { 3, 155 }, + { 2, 157 }, + { 3, 158 }, + { 2, 160 }, +}; + +// Train cutscene timings recorded from a real N64 +Record gMacbethCutsceneRecord[14] = { + // Train breaking barriers + { 2, 0 }, + { 3, 2 }, + { 2, 31 }, + { 3, 400 }, + { 2, 418 }, + { 3, 433 }, + { 4, 435 }, + { 3, 444 }, + { 2, 509 }, + // { 3, 559 }, + // { 2, 581 }, + // { 3, 587 }, + // Explosions + { 2, 589 }, + { 3, 714 }, + { 4, 821 }, + { 5, 849 }, + { 2, 942 }, +}; + +// After defeating Andross +Record gAndrossRobotKillCutscene1[25] = { + { 3, 0 }, + { 2, 8 }, + { 3, 19 }, + { 2, 35 }, + { 3, 156 }, + { 2, 166 }, + { 3, 193 }, + { 4, 198 }, + { 3, 199 }, + { 4, 201 }, + { 3, 205 }, + { 4, 207 }, + { 3, 215 }, + { 4, 234 }, + // { 3, 236 }, + { 4, 237 }, + { 3, 239 }, + { 4, 244 }, + // { 3, 245 }, + { 4, 246 }, + // { 3, 272 }, + { 4, 274 }, + // { 3, 290 }, + { 4, 292 }, + // { 3, 295 }, // too much? + { 4, 301 }, + // { 3, 302 }, + { 4, 304 }, + // { 3, 305 }, + { 4, 307 }, + // { 3, 332 }, + { 4, 334 }, + // { 3, 335 }, + { 2, 339 }, +}; + +Record gAndrossRobotKillCutscene2[20] = { + { 4, 0 }, + { 2, 1 }, + { 5, 2 }, + { 2, 3 }, + { 3, 42 }, + { 2, 43 }, + { 3, 57 }, + { 2, 58 }, + { 3, 63 }, + { 2, 69 }, + { 3, 158 }, + { 4, 161 }, + { 5, 163 }, + { 4, 182 }, + { 3, 185 }, + { 4, 189 }, + { 5, 193 }, + { 4, 205 }, + { 3, 207 }, + { 2, 211 }, +}; + +// SyRobot destroy cutscene timings recorded from a real N64 +Record gSyRobotCutsceneRecord[3] = { + { 2, 0 }, + { 3, 129 }, + { 2, 230 }, +}; + +Record gSolarIntroCsRecord[16] = { + { 2, 0 }, + { 3, 94 }, + { 2, 105 }, + { 3, 362 }, + { 4, 377 }, + { 3, 379 }, + { 4, 381 }, + { 2, 382 }, + { 3, 443 }, + { 2, 444 }, + { 3, 456 }, + { 2, 492 }, + { 3, 494 }, + { 2, 499 }, + { 3, 552 }, + { 2, 629 }, +}; + +// clang-format on |
