1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-07-04 06:54:33 +00:00

z_demo documentation (#1327)

* commit old stuff

* progress

* progress

* progress

* progress

* more progress, renaming cues next

* small changes

* enum values added for all actions

* hardcoded values removed when possible

* commands renamed

* first pass of action -> cue

* fix some matches

* some more cleanup

* scriptPtr

* forgot one

* remove cue rot union

* more changes

* some more stuff

* more stuff

* fix matching issues

* some more things

* progress, starting to rename destinations

* small changes

* name some destinations

* more names

* need to switch branch

* progress

* first pass of destination names

* usages fixed

* use destination enum

* fix csdis

* format

* command descriptions

* revert accidental zap changes

* forgot some things

* use a single macro for CutsceneCameraPoint (idk why i didnt think of this sooner)

* typo

* review1

* clarify ruby/sapphire comment

* remove endframe for commands that dont use it

* some more review

* most review, but not all

* scriptPtr -> script, and another small change

* ocarina action

* remove +1 from light settings command, change comment

* actionIndex -> cueIdTemp (i guess)

* _SetCueX -> _SetXFromCue

* format

* tweak fade out seq arg names

* use spline terminology

* more dragorn and engineer review

* misc start/end frame note

* cleanup StartPosRotFromCue vs PosRotFromCue

* cleanup spline terminology

* sPrevCamId -> sReturnToCamId

* comment on debug cs data address

* Cutscene_Init -> Cutscene_InitContext

* single point types are not a list

* remove todo comment

* some more review

* rumble struct names

* some review

* more review

* missed one

* reword pointer comment

* even more review

* match transition terminology with z_play

* change condition and format

* frame count

* command specific structs with alignment

* anon review

* remove unneeded arg from time macro

* yeet `CsCmdGeneric`

* remove unused from single point types

* typo

* compromise attempt -- name endFrame everywhere

* fixes

* fix again

* copied the wrong note

* cutscene data note

* review, format

* compat defines

* idk whats going on man

Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com>
This commit is contained in:
fig02 2022-12-24 13:55:17 -05:00 committed by GitHub
parent 92e03cf747
commit 7927e7b330
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
130 changed files with 6392 additions and 5954 deletions

View file

@ -1,33 +1,33 @@
#include "global.h"
void Flags_UnsetAllEnv(PlayState* play) {
void CutsceneFlags_UnsetAll(PlayState* play) {
u8 i;
for (i = 0; i < ARRAY_COUNT(play->envFlags); i++) {
play->envFlags[i] = 0;
for (i = 0; i < ARRAY_COUNT(play->cutsceneFlags); i++) {
play->cutsceneFlags[i] = 0;
}
}
void Flags_SetEnv(PlayState* play, s16 flag) {
void CutsceneFlags_Set(PlayState* play, s16 flag) {
s16 index = flag / 16;
s16 bit = flag % 16;
s16 mask = 1 << bit;
play->envFlags[index] |= mask;
play->cutsceneFlags[index] |= mask;
}
void Flags_UnsetEnv(PlayState* play, s16 flag) {
void CutsceneFlags_Unset(PlayState* play, s16 flag) {
s16 index = flag / 16;
s16 bit = flag % 16;
s16 mask = (1 << bit) ^ 0xFFFF;
play->envFlags[index] &= mask;
play->cutsceneFlags[index] &= mask;
}
s32 Flags_GetEnv(PlayState* play, s16 flag) {
s32 CutsceneFlags_Get(PlayState* play, s16 flag) {
s16 index = flag / 16;
s16 bit = flag % 16;
s16 mask = 1 << bit;
return play->envFlags[index] & mask;
return play->cutsceneFlags[index] & mask;
}

View file

@ -33,7 +33,8 @@ s32 func_800BB2B4(Vec3f* pos, f32* roll, f32* fov, CutsceneCameraPoint* point, s
progress = 0.0f;
}
if ((point[key].continueFlag == -1) || (point[key + 1].continueFlag == -1) || (point[key + 2].continueFlag == -1)) {
if ((point[key].continueFlag == CS_CAM_STOP) || (point[key + 1].continueFlag == CS_CAM_STOP) ||
(point[key + 2].continueFlag == CS_CAM_STOP)) {
return true;
}

View file

@ -2259,7 +2259,7 @@ void AudioOcarina_Update(void) {
AudioOcarina_UpdateRecordingStaff();
}
void AudioOcarina_PlayLongScarecrowAfterCredits(void) {
void AudioOcarina_PlayLongScarecrowSong(void) {
static u8 sScarecrowAfterCreditsState = 0;
static u8 sScarecrowAfterCreditsIntrumentId = OCARINA_INSTRUMENT_DEFAULT;
static u16 sScarecrowAfterCreditsTimer = 1200;

View file

@ -252,7 +252,7 @@ s32 func_800B4088(DbCamera* dbCamera, Camera* cam) {
position = &dbCamera->sub.position[dbCamera->sub.unkIdx];
lookAt = &dbCamera->sub.lookAt[dbCamera->sub.unkIdx];
position->continueFlag = -1;
position->continueFlag = CS_CAM_STOP;
lookAt->continueFlag = position->continueFlag;
position->nextPointFrame = 0;
lookAt->nextPointFrame = 30;
@ -268,10 +268,10 @@ s32 func_800B4088(DbCamera* dbCamera, Camera* cam) {
}
for (i = 0; i < (dbCamera->sub.nPoints - 2); i++) {
dbCamera->sub.position[i].continueFlag = dbCamera->sub.lookAt[i].continueFlag = 0;
dbCamera->sub.position[i].continueFlag = dbCamera->sub.lookAt[i].continueFlag = CS_CAM_CONTINUE;
}
dbCamera->sub.position[i].continueFlag = dbCamera->sub.lookAt[i].continueFlag = -1;
dbCamera->sub.position[i].continueFlag = dbCamera->sub.lookAt[i].continueFlag = CS_CAM_STOP;
return dbCamera->sub.unkIdx;
}
@ -299,7 +299,7 @@ s32 func_800B42C0(DbCamera* dbCamera, Camera* cameraPtr) {
CutsceneCameraPoint* position = &dbCamera->sub.position[dbCamera->sub.unkIdx];
CutsceneCameraPoint* lookAt = &dbCamera->sub.lookAt[dbCamera->sub.unkIdx];
position->continueFlag = lookAt->continueFlag = 0;
position->continueFlag = lookAt->continueFlag = CS_CAM_CONTINUE;
if (dbCamera->sub.mode != 1) {
DbCamera_Vec3FToS(&dbCamera->eye, &position->pos);
@ -352,10 +352,10 @@ void func_800B44E0(DbCamera* dbCamera, Camera* cam) {
sDbCamAnim.unk_04 = 0;
for (i = 0; i < (dbCamera->sub.nPoints - 2); i++) {
dbCamera->sub.position[i].continueFlag = dbCamera->sub.lookAt[i].continueFlag = 0;
dbCamera->sub.position[i].continueFlag = dbCamera->sub.lookAt[i].continueFlag = CS_CAM_CONTINUE;
}
dbCamera->sub.position[i].continueFlag = dbCamera->sub.lookAt[i].continueFlag = -1;
dbCamera->sub.position[i].continueFlag = dbCamera->sub.lookAt[i].continueFlag = CS_CAM_STOP;
}
if (dbCamera->sub.nPoints < 6) {
@ -2155,7 +2155,7 @@ s32 DbCamera_UpdateDemoControl(DbCamera* dbCamera, Camera* cam) {
}
if (CHECK_BTN_ALL(sPlay->state.input[1].press.button, BTN_CRIGHT)) {
D_8015FCC8 = 0;
gUseCutsceneCam = false;
gSaveContext.cutsceneIndex = 0xFFFD;
gSaveContext.cutsceneTrigger = 1;
sDbCamAnim.curFrame = 0.0f;

View file

@ -7716,7 +7716,7 @@ Vec3s Camera_Update(Camera* camera) {
if (gDbgCamEnabled) {
DbgCamera_Enable(&D_8015BD80, camera);
} else if (camera->play->csCtx.state != CS_STATE_IDLE) {
func_80064534(camera->play, &camera->play->csCtx);
Cutscene_StopManual(camera->play, &camera->play->csCtx);
}
}

File diff suppressed because it is too large Load diff

View file

@ -417,7 +417,7 @@ void Environment_Init(PlayState* play2, EnvironmentContext* envCtx, s32 unused)
cREG(12) = 0;
cREG(13) = 0;
cREG(14) = 0;
D_8015FCC8 = 1;
gUseCutsceneCam = true;
for (i = 0; i < ARRAY_COUNT(sLightningBolts); i++) {
sLightningBolts[i].state = LIGHTNING_BOLT_INACTIVE;
@ -426,8 +426,8 @@ void Environment_Init(PlayState* play2, EnvironmentContext* envCtx, s32 unused)
play->roomCtx.unk_74[0] = 0;
play->roomCtx.unk_74[1] = 0;
for (i = 0; i < ARRAY_COUNT(play->csCtx.npcActions); i++) {
play->csCtx.npcActions[i] = 0;
for (i = 0; i < ARRAY_COUNT(play->csCtx.actorCues); i++) {
play->csCtx.actorCues[i] = NULL;
}
if (Object_GetIndex(&play->objectCtx, OBJECT_GAMEPLAY_FIELD_KEEP) < 0 && !play->envCtx.sunMoonDisabled) {

View file

@ -1,118 +1,118 @@
#include "global.h"
static CutsceneCameraPoint D_8012013C[14] = {
{ CS_CMD_CONTINUE, 25, 40, 70.79991f, { -1814, 533, -1297 } },
{ CS_CMD_CONTINUE, 20, 40, 70.99991f, { -1805, 434, -1293 } },
{ CS_CMD_CONTINUE, 10, 30, 60.0f, { -1794, 323, -1280 } },
{ CS_CMD_CONTINUE, 5, 25, 60.0f, { -1817, 218, -1270 } },
{ CS_CMD_CONTINUE, 3, 20, 60.0f, { -1836, 168, -1243 } },
{ CS_CMD_CONTINUE, 0, 20, 60.0f, { -1905, 115, -1193 } },
{ CS_CMD_CONTINUE, 0, 30, 55.0f, { -1969, 58, -1212 } },
{ CS_CMD_CONTINUE, 0, 30, 55.0f, { -1969, 31, -1164 } },
{ CS_CMD_CONTINUE, 0, 30, 60.0f, { -1969, 54, -1209 } },
{ CS_CMD_CONTINUE, 0, 30, 60.0f, { -1973, 35, -1206 } },
{ CS_CMD_CONTINUE, 0, 50, 60.0f, { -1974, 12, -1179 } },
{ CS_CMD_CONTINUE, 0, 50, 60.0f, { -1974, 12, -1179 } },
{ CS_CMD_STOP, 0, 50, 60.0f, { -1974, 12, -1179 } },
{ CS_CMD_STOP, 0, 30, 60.0f, { -1974, 12, -1179 } },
{ CS_CAM_CONTINUE, 25, 40, 70.79991f, { -1814, 533, -1297 } },
{ CS_CAM_CONTINUE, 20, 40, 70.99991f, { -1805, 434, -1293 } },
{ CS_CAM_CONTINUE, 10, 30, 60.0f, { -1794, 323, -1280 } },
{ CS_CAM_CONTINUE, 5, 25, 60.0f, { -1817, 218, -1270 } },
{ CS_CAM_CONTINUE, 3, 20, 60.0f, { -1836, 168, -1243 } },
{ CS_CAM_CONTINUE, 0, 20, 60.0f, { -1905, 115, -1193 } },
{ CS_CAM_CONTINUE, 0, 30, 55.0f, { -1969, 58, -1212 } },
{ CS_CAM_CONTINUE, 0, 30, 55.0f, { -1969, 31, -1164 } },
{ CS_CAM_CONTINUE, 0, 30, 60.0f, { -1969, 54, -1209 } },
{ CS_CAM_CONTINUE, 0, 30, 60.0f, { -1973, 35, -1206 } },
{ CS_CAM_CONTINUE, 0, 50, 60.0f, { -1974, 12, -1179 } },
{ CS_CAM_CONTINUE, 0, 50, 60.0f, { -1974, 12, -1179 } },
{ CS_CAM_STOP, 0, 50, 60.0f, { -1974, 12, -1179 } },
{ CS_CAM_STOP, 0, 30, 60.0f, { -1974, 12, -1179 } },
};
static CutsceneCameraPoint D_8012021C[14] = {
{ CS_CMD_CONTINUE, 0, 0, 60.0f, { -1751, 604, -1233 } }, { CS_CMD_CONTINUE, 0, 0, 60.0f, { -1752, 516, -1233 } },
{ CS_CMD_CONTINUE, 0, 0, 60.0f, { -1751, 417, -1233 } }, { CS_CMD_CONTINUE, 0, 0, 60.0f, { -1767, 306, -1219 } },
{ CS_CMD_CONTINUE, 0, 0, 60.0f, { -1776, 257, -1205 } }, { CS_CMD_CONTINUE, 0, 0, 60.0f, { -1881, 147, -1149 } },
{ CS_CMD_CONTINUE, 0, 0, 60.0f, { -1969, 72, -1077 } }, { CS_CMD_CONTINUE, 0, 0, 60.0f, { -1969, 7, -1048 } },
{ CS_CMD_CONTINUE, 0, 0, 60.0f, { -1969, 1, -1030 } }, { CS_CMD_CONTINUE, 0, 0, 60.0f, { -1987, 17, -1076 } },
{ CS_CMD_CONTINUE, 0, 0, 60.0f, { -2007, 10, -1004 } }, { CS_CMD_CONTINUE, 0, 0, 60.0f, { -2007, 10, -1004 } },
{ CS_CMD_STOP, 0, 0, 60.0f, { -2007, 10, -1004 } }, { CS_CMD_STOP, 0, 0, 60.0f, { -2007, 10, -1004 } },
{ CS_CAM_CONTINUE, 0, 0, 60.0f, { -1751, 604, -1233 } }, { CS_CAM_CONTINUE, 0, 0, 60.0f, { -1752, 516, -1233 } },
{ CS_CAM_CONTINUE, 0, 0, 60.0f, { -1751, 417, -1233 } }, { CS_CAM_CONTINUE, 0, 0, 60.0f, { -1767, 306, -1219 } },
{ CS_CAM_CONTINUE, 0, 0, 60.0f, { -1776, 257, -1205 } }, { CS_CAM_CONTINUE, 0, 0, 60.0f, { -1881, 147, -1149 } },
{ CS_CAM_CONTINUE, 0, 0, 60.0f, { -1969, 72, -1077 } }, { CS_CAM_CONTINUE, 0, 0, 60.0f, { -1969, 7, -1048 } },
{ CS_CAM_CONTINUE, 0, 0, 60.0f, { -1969, 1, -1030 } }, { CS_CAM_CONTINUE, 0, 0, 60.0f, { -1987, 17, -1076 } },
{ CS_CAM_CONTINUE, 0, 0, 60.0f, { -2007, 10, -1004 } }, { CS_CAM_CONTINUE, 0, 0, 60.0f, { -2007, 10, -1004 } },
{ CS_CAM_STOP, 0, 0, 60.0f, { -2007, 10, -1004 } }, { CS_CAM_STOP, 0, 0, 60.0f, { -2007, 10, -1004 } },
};
static s16 D_801202FC = 13;
static s16 D_80120300 = 210;
static s16 D_80120304 = 0;
static CutsceneCameraPoint sCrawlspaceAtPoints[9] = {
{ CS_CMD_CONTINUE, 0, 10, 40.0f, { 0, 4, 0 } }, { CS_CMD_CONTINUE, 0, 10, 40.000004f, { 0, 4, 0 } },
{ CS_CMD_CONTINUE, 0, 10, 50.0f, { 0, 9, 0 } }, { CS_CMD_CONTINUE, 0, 12, 55.0f, { 0, 12, 0 } },
{ CS_CMD_CONTINUE, 0, 15, 61.0f, { 0, 18, 0 } }, { CS_CMD_CONTINUE, 0, 20, 65.0f, { 0, 29, 0 } },
{ CS_CMD_CONTINUE, 0, 40, 60.0f, { 0, 34, 0 } }, { CS_CMD_STOP, 0, 40, 60.0f, { 0, 34, 0 } },
{ CS_CMD_STOP, 0, 10, 60.0f, { 0, 34, 0 } },
{ CS_CAM_CONTINUE, 0, 10, 40.0f, { 0, 4, 0 } }, { CS_CAM_CONTINUE, 0, 10, 40.000004f, { 0, 4, 0 } },
{ CS_CAM_CONTINUE, 0, 10, 50.0f, { 0, 9, 0 } }, { CS_CAM_CONTINUE, 0, 12, 55.0f, { 0, 12, 0 } },
{ CS_CAM_CONTINUE, 0, 15, 61.0f, { 0, 18, 0 } }, { CS_CAM_CONTINUE, 0, 20, 65.0f, { 0, 29, 0 } },
{ CS_CAM_CONTINUE, 0, 40, 60.0f, { 0, 34, 0 } }, { CS_CAM_STOP, 0, 40, 60.0f, { 0, 34, 0 } },
{ CS_CAM_STOP, 0, 10, 60.0f, { 0, 34, 0 } },
};
static CutsceneCameraPoint sCrawlspaceForwardsEyePoints[9] = {
{ CS_CMD_CONTINUE, 0, 0, 60.0f, { 0, 9, 45 } }, { CS_CMD_CONTINUE, 0, 0, 60.0f, { 0, 8, 50 } },
{ CS_CMD_CONTINUE, 0, 0, 60.0f, { 0, 17, 58 } }, { CS_CMD_CONTINUE, 0, 0, 60.0f, { 0, 21, 78 } },
{ CS_CMD_CONTINUE, 0, 0, 60.0f, { 0, 46, 109 } }, { CS_CMD_CONTINUE, 0, 0, 60.0f, { 0, 58, 118 } },
{ CS_CMD_CONTINUE, 0, 0, 60.0f, { 0, 63, 119 } }, { CS_CMD_STOP, 0, 0, 60.0f, { 0, 62, 119 } },
{ CS_CMD_STOP, 0, 0, 60.0f, { 0, 62, 119 } },
{ CS_CAM_CONTINUE, 0, 0, 60.0f, { 0, 9, 45 } }, { CS_CAM_CONTINUE, 0, 0, 60.0f, { 0, 8, 50 } },
{ CS_CAM_CONTINUE, 0, 0, 60.0f, { 0, 17, 58 } }, { CS_CAM_CONTINUE, 0, 0, 60.0f, { 0, 21, 78 } },
{ CS_CAM_CONTINUE, 0, 0, 60.0f, { 0, 46, 109 } }, { CS_CAM_CONTINUE, 0, 0, 60.0f, { 0, 58, 118 } },
{ CS_CAM_CONTINUE, 0, 0, 60.0f, { 0, 63, 119 } }, { CS_CAM_STOP, 0, 0, 60.0f, { 0, 62, 119 } },
{ CS_CAM_STOP, 0, 0, 60.0f, { 0, 62, 119 } },
};
static s16 sCrawlspaceUnused = 9;
static s16 sCrawlspaceTimer = 90;
static s16 sCrawlspaceActionParam = 1;
static CutsceneCameraPoint sCrawlspaceBackwardsEyePoints[10] = {
{ CS_CMD_CONTINUE, 0, 0, 60.0f, { 0, 9, -45 } }, { CS_CMD_CONTINUE, 0, 0, 60.0f, { 0, 9, -45 } },
{ CS_CMD_CONTINUE, 0, 0, 60.0f, { 0, 8, -50 } }, { CS_CMD_CONTINUE, 0, 0, 60.0f, { 0, 17, -58 } },
{ CS_CMD_CONTINUE, 0, 0, 60.0f, { 0, 21, -78 } }, { CS_CMD_CONTINUE, 0, 0, 60.0f, { 0, 46, -109 } },
{ CS_CMD_CONTINUE, 0, 0, 60.0f, { 0, 58, -118 } }, { CS_CMD_CONTINUE, 0, 0, 60.0f, { 0, 63, -119 } },
{ CS_CMD_STOP, 0, 0, 60.0f, { 0, 62, -119 } }, { CS_CMD_STOP, 0, 0, 60.0f, { 0, 62, -119 } },
{ CS_CAM_CONTINUE, 0, 0, 60.0f, { 0, 9, -45 } }, { CS_CAM_CONTINUE, 0, 0, 60.0f, { 0, 9, -45 } },
{ CS_CAM_CONTINUE, 0, 0, 60.0f, { 0, 8, -50 } }, { CS_CAM_CONTINUE, 0, 0, 60.0f, { 0, 17, -58 } },
{ CS_CAM_CONTINUE, 0, 0, 60.0f, { 0, 21, -78 } }, { CS_CAM_CONTINUE, 0, 0, 60.0f, { 0, 46, -109 } },
{ CS_CAM_CONTINUE, 0, 0, 60.0f, { 0, 58, -118 } }, { CS_CAM_CONTINUE, 0, 0, 60.0f, { 0, 63, -119 } },
{ CS_CAM_STOP, 0, 0, 60.0f, { 0, 62, -119 } }, { CS_CAM_STOP, 0, 0, 60.0f, { 0, 62, -119 } },
};
static CutsceneCameraPoint D_801204D4[14] = {
{ CS_CMD_CONTINUE, -15, 40, 80.600006f, { -60, 332, 183 } },
{ CS_CMD_CONTINUE, -22, 30, 80.600006f, { -60, 332, 183 } },
{ CS_CMD_CONTINUE, -20, 38, 80.600006f, { -118, 344, 41 } },
{ CS_CMD_CONTINUE, -18, 32, 80.600006f, { -80, 251, -8 } },
{ CS_CMD_CONTINUE, -12, 28, 80.600006f, { -64, 259, -28 } },
{ CS_CMD_CONTINUE, -8, 22, 80.600006f, { -79, 200, -342 } },
{ CS_CMD_CONTINUE, -5, 10, 65.80005f, { -110, 140, -549 } },
{ CS_CMD_CONTINUE, -2, 8, 65.2f, { -74, 109, -507 } },
{ CS_CMD_CONTINUE, 0, 10, 65.80002f, { -32, 78, -680 } },
{ CS_CMD_CONTINUE, 0, 20, 85.199936f, { 25, 127, -950 } },
{ CS_CMD_CONTINUE, 0, 30, 85.199936f, { 25, 127, -950 } },
{ CS_CMD_CONTINUE, 0, 40, 85.199936f, { 25, 127, -950 } },
{ CS_CMD_STOP, 6, 30, 85.199936f, { 25, 127, -950 } },
{ CS_CMD_STOP, 0, 30, 85.199936f, { 25, 127, -950 } },
{ CS_CAM_CONTINUE, -15, 40, 80.600006f, { -60, 332, 183 } },
{ CS_CAM_CONTINUE, -22, 30, 80.600006f, { -60, 332, 183 } },
{ CS_CAM_CONTINUE, -20, 38, 80.600006f, { -118, 344, 41 } },
{ CS_CAM_CONTINUE, -18, 32, 80.600006f, { -80, 251, -8 } },
{ CS_CAM_CONTINUE, -12, 28, 80.600006f, { -64, 259, -28 } },
{ CS_CAM_CONTINUE, -8, 22, 80.600006f, { -79, 200, -342 } },
{ CS_CAM_CONTINUE, -5, 10, 65.80005f, { -110, 140, -549 } },
{ CS_CAM_CONTINUE, -2, 8, 65.2f, { -74, 109, -507 } },
{ CS_CAM_CONTINUE, 0, 10, 65.80002f, { -32, 78, -680 } },
{ CS_CAM_CONTINUE, 0, 20, 85.199936f, { 25, 127, -950 } },
{ CS_CAM_CONTINUE, 0, 30, 85.199936f, { 25, 127, -950 } },
{ CS_CAM_CONTINUE, 0, 40, 85.199936f, { 25, 127, -950 } },
{ CS_CAM_STOP, 6, 30, 85.199936f, { 25, 127, -950 } },
{ CS_CAM_STOP, 0, 30, 85.199936f, { 25, 127, -950 } },
};
static CutsceneCameraPoint D_801205B4[14] = {
{ CS_CMD_CONTINUE, 0, 0, 60.0f, { -225, 785, -242 } },
{ CS_CMD_CONTINUE, -21, 0, 80.600006f, { -245, 784, -242 } },
{ CS_CMD_CONTINUE, -21, 0, 80.600006f, { -288, 485, -379 } },
{ CS_CMD_CONTINUE, -21, 0, 80.600006f, { -250, 244, -442 } },
{ CS_CMD_CONTINUE, -21, 0, 80.600006f, { -163, 21, -415 } },
{ CS_CMD_CONTINUE, -21, 0, 80.600006f, { -98, 86, -520 } },
{ CS_CMD_CONTINUE, -21, 0, 80.600006f, { -86, 31, -816 } },
{ CS_CMD_CONTINUE, -21, 0, 80.600006f, { -74, 18, -931 } },
{ CS_CMD_CONTINUE, 1, 0, 80.600006f, { -91, 80, -1220 } },
{ CS_CMD_CONTINUE, 0, 0, 85.199936f, { 14, 153, -1340 } },
{ CS_CMD_CONTINUE, 0, 0, 85.199936f, { 28, 125, -1340 } },
{ CS_CMD_CONTINUE, 0, 0, 85.199936f, { 48, 124, -1340 } },
{ CS_CMD_STOP, 0, 0, 85.199936f, { 48, 124, -1502 } },
{ CS_CMD_STOP, 0, 0, 85.199936f, { 48, 124, -1262 } },
{ CS_CAM_CONTINUE, 0, 0, 60.0f, { -225, 785, -242 } },
{ CS_CAM_CONTINUE, -21, 0, 80.600006f, { -245, 784, -242 } },
{ CS_CAM_CONTINUE, -21, 0, 80.600006f, { -288, 485, -379 } },
{ CS_CAM_CONTINUE, -21, 0, 80.600006f, { -250, 244, -442 } },
{ CS_CAM_CONTINUE, -21, 0, 80.600006f, { -163, 21, -415 } },
{ CS_CAM_CONTINUE, -21, 0, 80.600006f, { -98, 86, -520 } },
{ CS_CAM_CONTINUE, -21, 0, 80.600006f, { -86, 31, -816 } },
{ CS_CAM_CONTINUE, -21, 0, 80.600006f, { -74, 18, -931 } },
{ CS_CAM_CONTINUE, 1, 0, 80.600006f, { -91, 80, -1220 } },
{ CS_CAM_CONTINUE, 0, 0, 85.199936f, { 14, 153, -1340 } },
{ CS_CAM_CONTINUE, 0, 0, 85.199936f, { 28, 125, -1340 } },
{ CS_CAM_CONTINUE, 0, 0, 85.199936f, { 48, 124, -1340 } },
{ CS_CAM_STOP, 0, 0, 85.199936f, { 48, 124, -1502 } },
{ CS_CAM_STOP, 0, 0, 85.199936f, { 48, 124, -1262 } },
};
static s16 D_80120694 = 14;
static s16 D_80120698 = 190;
static s16 D_8012069C = 8;
static CutsceneCameraPoint D_801206A0[12] = {
{ CS_CMD_CONTINUE, 6, 20, 80.0f, { -96, 40, 170 } }, { CS_CMD_CONTINUE, 6, 20, 80.0f, { -96, 40, 170 } },
{ CS_CMD_CONTINUE, 6, 20, 70.0f, { -70, 35, 150 } }, { CS_CMD_CONTINUE, 5, 10, 60.0f, { -57, 34, 133 } },
{ CS_CMD_CONTINUE, 4, 25, 65.0f, { -22, 32, 110 } }, { CS_CMD_CONTINUE, 3, 12, 60.0f, { -9, 33, 98 } },
{ CS_CMD_CONTINUE, 3, 5, 65.0f, { -3, 29, 87 } }, { CS_CMD_CONTINUE, 2, 10, 65.0f, { -1, 15, 84 } },
{ CS_CMD_CONTINUE, 1, 200, 65.0f, { 0, 17, 82 } }, { CS_CMD_CONTINUE, 1, 500, 65.0f, { 0, 18, 82 } },
{ CS_CMD_STOP, 8, 50, 65.0f, { 0, 18, 82 } }, { CS_CMD_STOP, 11, 60, 65.0f, { 0, 18, 82 } },
{ CS_CAM_CONTINUE, 6, 20, 80.0f, { -96, 40, 170 } }, { CS_CAM_CONTINUE, 6, 20, 80.0f, { -96, 40, 170 } },
{ CS_CAM_CONTINUE, 6, 20, 70.0f, { -70, 35, 150 } }, { CS_CAM_CONTINUE, 5, 10, 60.0f, { -57, 34, 133 } },
{ CS_CAM_CONTINUE, 4, 25, 65.0f, { -22, 32, 110 } }, { CS_CAM_CONTINUE, 3, 12, 60.0f, { -9, 33, 98 } },
{ CS_CAM_CONTINUE, 3, 5, 65.0f, { -3, 29, 87 } }, { CS_CAM_CONTINUE, 2, 10, 65.0f, { -1, 15, 84 } },
{ CS_CAM_CONTINUE, 1, 200, 65.0f, { 0, 17, 82 } }, { CS_CAM_CONTINUE, 1, 500, 65.0f, { 0, 18, 82 } },
{ CS_CAM_STOP, 8, 50, 65.0f, { 0, 18, 82 } }, { CS_CAM_STOP, 11, 60, 65.0f, { 0, 18, 82 } },
};
static CutsceneCameraPoint D_80120760[12] = {
{ CS_CMD_CONTINUE, 6, 0, 80.0f, { -50, 10, 180 } }, { CS_CMD_CONTINUE, 6, 0, 80.0f, { -50, 20, 180 } },
{ CS_CMD_CONTINUE, 6, 0, 70.0f, { -40, 30, 177 } }, { CS_CMD_CONTINUE, 5, 0, 65.0f, { 0, 35, 172 } },
{ CS_CMD_CONTINUE, 4, 0, 65.0f, { 34, 35, 162 } }, { CS_CMD_CONTINUE, 3, 0, 65.0f, { 61, 32, 147 } },
{ CS_CMD_CONTINUE, 3, 0, 65.0f, { 72, 30, 128 } }, { CS_CMD_CONTINUE, 2, 0, 65.0f, { 74, 20, 125 } },
{ CS_CMD_CONTINUE, 1, 0, 65.0f, { 75, 18, 123 } }, { CS_CMD_CONTINUE, 1, 0, 65.0f, { 75, 10, 123 } },
{ CS_CMD_STOP, 0, 0, 65.0f, { 75, 10, 122 } }, { CS_CMD_STOP, 0, 0, 65.0f, { 75, 10, 122 } },
{ CS_CAM_CONTINUE, 6, 0, 80.0f, { -50, 10, 180 } }, { CS_CAM_CONTINUE, 6, 0, 80.0f, { -50, 20, 180 } },
{ CS_CAM_CONTINUE, 6, 0, 70.0f, { -40, 30, 177 } }, { CS_CAM_CONTINUE, 5, 0, 65.0f, { 0, 35, 172 } },
{ CS_CAM_CONTINUE, 4, 0, 65.0f, { 34, 35, 162 } }, { CS_CAM_CONTINUE, 3, 0, 65.0f, { 61, 32, 147 } },
{ CS_CAM_CONTINUE, 3, 0, 65.0f, { 72, 30, 128 } }, { CS_CAM_CONTINUE, 2, 0, 65.0f, { 74, 20, 125 } },
{ CS_CAM_CONTINUE, 1, 0, 65.0f, { 75, 18, 123 } }, { CS_CAM_CONTINUE, 1, 0, 65.0f, { 75, 10, 123 } },
{ CS_CAM_STOP, 0, 0, 65.0f, { 75, 10, 122 } }, { CS_CAM_STOP, 0, 0, 65.0f, { 75, 10, 122 } },
};
static CutsceneCameraPoint D_80120820[12] = {
{ CS_CMD_CONTINUE, 6, 0, 80.0f, { 85, 5, 170 } }, { CS_CMD_CONTINUE, 6, 0, 80.0f, { 85, 10, 170 } },
{ CS_CMD_CONTINUE, 6, 0, 70.0f, { 80, 20, 167 } }, { CS_CMD_CONTINUE, 5, 0, 65.0f, { 74, 25, 165 } },
{ CS_CMD_CONTINUE, 4, 0, 65.0f, { 63, 30, 162 } }, { CS_CMD_CONTINUE, 3, 0, 65.0f, { 66, 34, 147 } },
{ CS_CMD_CONTINUE, 3, 0, 65.0f, { 72, 34, 128 } }, { CS_CMD_CONTINUE, 2, 0, 65.0f, { 74, 20, 125 } },
{ CS_CMD_CONTINUE, 1, 0, 65.0f, { 75, 18, 123 } }, { CS_CMD_CONTINUE, 1, 0, 65.0f, { 75, 10, 123 } },
{ CS_CMD_STOP, 0, 0, 65.0f, { 75, 10, 122 } }, { CS_CMD_STOP, 0, 0, 65.0f, { 75, 10, 122 } },
{ CS_CAM_CONTINUE, 6, 0, 80.0f, { 85, 5, 170 } }, { CS_CAM_CONTINUE, 6, 0, 80.0f, { 85, 10, 170 } },
{ CS_CAM_CONTINUE, 6, 0, 70.0f, { 80, 20, 167 } }, { CS_CAM_CONTINUE, 5, 0, 65.0f, { 74, 25, 165 } },
{ CS_CAM_CONTINUE, 4, 0, 65.0f, { 63, 30, 162 } }, { CS_CAM_CONTINUE, 3, 0, 65.0f, { 66, 34, 147 } },
{ CS_CAM_CONTINUE, 3, 0, 65.0f, { 72, 34, 128 } }, { CS_CAM_CONTINUE, 2, 0, 65.0f, { 74, 20, 125 } },
{ CS_CAM_CONTINUE, 1, 0, 65.0f, { 75, 18, 123 } }, { CS_CAM_CONTINUE, 1, 0, 65.0f, { 75, 10, 123 } },
{ CS_CAM_STOP, 0, 0, 65.0f, { 75, 10, 122 } }, { CS_CAM_STOP, 0, 0, 65.0f, { 75, 10, 122 } },
};
static s16 D_801208E0 = 12;
static s16 D_801208E4 = 90;

View file

@ -4301,12 +4301,12 @@ void Interface_Update(PlayState* play) {
gSaveContext.nextDayTime = NEXT_TIME_NIGHT;
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
gSaveContext.nextTransitionType = TRANS_TYPE_FADE_BLACK;
play->unk_11DE9 = true;
play->haltAllActors = true;
} else {
gSaveContext.nextDayTime = NEXT_TIME_DAY;
play->transitionType = TRANS_TYPE_FADE_WHITE_FAST;
gSaveContext.nextTransitionType = TRANS_TYPE_FADE_WHITE;
play->unk_11DE9 = true;
play->haltAllActors = true;
}
if (play->sceneId == SCENE_HAUNTED_WASTELAND) {

View file

@ -2,17 +2,17 @@
#include "quake.h"
#include "terminal.h"
void* D_8012D1F0 = NULL;
void* gDebugCutsceneScript = NULL;
UNK_TYPE D_8012D1F4 = 0; // unused
Input* D_8012D1F8 = NULL;
TransitionUnk sTrnsnUnk;
s32 gTrnsnUnkState;
VisMono D_80161498;
Color_RGBA8_u32 D_801614B0;
Color_RGBA8_u32 gVisMonoColor;
FaultClient D_801614B8;
s16 sTransitionFillTimer;
u64 D_801614D0[0xA00];
u64 sDebugCutsceneScriptBuf[0xA00];
void Play_SpawnScene(PlayState* this, s32 sceneId, s32 spawn);
@ -266,7 +266,7 @@ void Play_Init(GameState* thisx) {
EffectSs_InitInfo(this, 0x55);
CollisionCheck_InitContext(this, &this->colChkCtx);
AnimationContext_Reset(&this->animationCtx);
func_8006450C(this, &this->csCtx);
Cutscene_InitContext(this, &this->csCtx);
if (gSaveContext.nextCutsceneIndex != 0xFFEF) {
gSaveContext.cutsceneIndex = gSaveContext.nextCutsceneIndex;
@ -371,7 +371,7 @@ void Play_Init(GameState* thisx) {
this->transitionTrigger = TRANS_TRIGGER_END;
this->unk_11E16 = 0xFF;
this->unk_11E18 = 0;
this->unk_11DE9 = false;
this->haltAllActors = false;
if (gSaveContext.gameMode != GAMEMODE_TITLE_SCREEN) {
if (gSaveContext.nextTransitionType == TRANS_NEXT_TYPE_DEFAULT) {
@ -391,8 +391,8 @@ void Play_Init(GameState* thisx) {
TransitionFade_SetColor(&this->transitionFadeFlash, RGBA8(160, 160, 160, 255));
TransitionFade_Start(&this->transitionFadeFlash);
VisMono_Init(&D_80161498);
D_801614B0.a = 0;
Flags_UnsetAllEnv(this);
gVisMonoColor.a = 0;
CutsceneFlags_UnsetAll(this);
osSyncPrintf("ZELDA ALLOC SIZE=%x\n", THA_GetRemaining(&this->state.tha));
zAllocSize = THA_GetRemaining(&this->state.tha);
@ -436,10 +436,13 @@ void Play_Init(GameState* thisx) {
AnimationContext_Update(this, &this->animationCtx);
gSaveContext.respawnFlag = 0;
if (dREG(95) != 0) {
D_8012D1F0 = D_801614D0;
osSyncPrintf("\nkawauso_data=[%x]", D_8012D1F0);
DmaMgr_DmaRomToRam(0x03FEB000, D_8012D1F0, sizeof(D_801614D0));
if (R_USE_DEBUG_CUTSCENE) {
gDebugCutsceneScript = sDebugCutsceneScriptBuf;
osSyncPrintf("\nkawauso_data=[%x]", gDebugCutsceneScript);
// This hardcoded ROM address extends past the end of the ROM file.
// Presumably the ROM was larger at a previous point in development when this debug feature was used.
DmaMgr_DmaRomToRam(0x03FEB000, gDebugCutsceneScript, sizeof(sDebugCutsceneScriptBuf));
}
}
@ -888,15 +891,15 @@ void Play_Update(PlayState* this) {
PLAY_LOG(3637);
if (!this->unk_11DE9) {
if (!this->haltAllActors) {
Actor_UpdateAll(this, &this->actorCtx);
}
PLAY_LOG(3643);
func_80064558(this, &this->csCtx);
Cutscene_UpdateManual(this, &this->csCtx);
PLAY_LOG(3648);
func_800645A0(this, &this->csCtx);
Cutscene_UpdateScripted(this, &this->csCtx);
PLAY_LOG(3651);
Effect_UpdateAll(this);
@ -1096,8 +1099,8 @@ void Play_Draw(PlayState* this) {
TransitionFade_Draw(&this->transitionFadeFlash, &gfxP);
if (D_801614B0.a > 0) {
D_80161498.primColor.rgba = D_801614B0.rgba;
if (gVisMonoColor.a > 0) {
D_80161498.primColor.rgba = gVisMonoColor.rgba;
VisMono_Draw(&D_80161498, &gfxP);
}

View file

@ -443,8 +443,8 @@ void Scene_CommandAlternateHeaderList(PlayState* play, SceneCmd* cmd) {
}
void Scene_CommandCutsceneData(PlayState* play, SceneCmd* cmd) {
osSyncPrintf("\ngame_play->demo_play.data=[%x]", play->csCtx.segment);
play->csCtx.segment = SEGMENTED_TO_VIRTUAL(cmd->cutsceneData.data);
osSyncPrintf("\ngame_play->demo_play.data=[%x]", play->csCtx.script);
play->csCtx.script = SEGMENTED_TO_VIRTUAL(cmd->cutsceneData.data);
}
// Camera & World Map Area