summaryrefslogtreecommitdiff
path: root/src/code/z_kaleido_setup.c
diff options
context:
space:
mode:
authorRandom <28494085+Random06457@users.noreply.github.com>2020-06-17 21:23:42 +0200
committerGitHub <noreply@github.com>2020-06-17 15:23:42 -0400
commit494062167935a814744202e9a508489b2e109e28 (patch)
tree2fe17aa8274515cf12f5b378b4307602ef03785d /src/code/z_kaleido_setup.c
parentdcdaf850b6ba68a05f90cd40d4b328a526986949 (diff)
Decompile pausemgr.c (#211)
* Decompile pausemgr.c * rename pausemgr to z_kaleido_setup * replace 0x4b with SCENE_BOWLING * fix conflict
Diffstat (limited to 'src/code/z_kaleido_setup.c')
-rw-r--r--src/code/z_kaleido_setup.c147
1 files changed, 147 insertions, 0 deletions
diff --git a/src/code/z_kaleido_setup.c b/src/code/z_kaleido_setup.c
new file mode 100644
index 000000000..3d6e5739e
--- /dev/null
+++ b/src/code/z_kaleido_setup.c
@@ -0,0 +1,147 @@
+#include <global.h>
+
+s16 sKaleidoSetupKscpPos0[] = {
+ 2,
+ 3,
+ 0,
+ 1,
+};
+f32 sKaleidoSetupEyeX0[] = {
+ 0.0f,
+ 64.0f,
+ 0.0f,
+ -64.0f,
+};
+f32 sKaleidoSetupEyeZ0[] = {
+ -64.0f,
+ 0.0f,
+ 64.0f,
+ 0.0f,
+};
+
+s16 sKaleidoSetupKscpPos1[] = {
+ 1,
+ 2,
+ 3,
+ 0,
+};
+f32 sKaleidoSetupEyeX1[] = {
+ -64.0f,
+ 0.0f,
+ 64.0f,
+ 0.0f,
+};
+f32 sKaleidoSetupEyeZ1[] = {
+ 0.0f,
+ -64.0f,
+ 0.0f,
+ 64.0f,
+};
+
+void KaleidoSetup_Update(GlobalContext* globalCtx) {
+ PauseContext* pauseCtx = &globalCtx->pauseCtx;
+ Input* input = &globalCtx->state.input[0];
+
+ if (pauseCtx->state == 0 && pauseCtx->flag == 0 && globalCtx->unk_10A20 == 0 && globalCtx->sceneLoadFlag == 0 &&
+ globalCtx->transitionMode == 0 && gSaveContext.cutsceneIndex < 0xFFF0 &&
+ gSaveContext.nextCutsceneIndex < 0xFFF0 && !Gameplay_InCsMode(globalCtx) && globalCtx->unk_11E5C < 2 &&
+ gSaveContext.unk_13F0 != 8 && gSaveContext.unk_13F0 != 9 &&
+ (globalCtx->sceneNum != SCENE_BOWLING || !Flags_GetSwitch(globalCtx, 0x38))) {
+
+ if (CHECK_PAD(input->cur, L_TRIG) && CHECK_PAD(input->press, U_CBUTTONS)) {
+ if (BREG(0)) {
+ pauseCtx->flag = 3;
+ }
+ } else if (CHECK_PAD(input->press, START_BUTTON)) {
+ gSaveContext.unk_13EE = gSaveContext.unk_13EA;
+ WREG(16) = -0xAF;
+ WREG(17) = 0x9B;
+ pauseCtx->unk_1EA = 0;
+ pauseCtx->unk_1E4 = 1;
+ if (ZREG(48) == 0) {
+ pauseCtx->eye.x = sKaleidoSetupEyeX0[pauseCtx->kscpPos];
+ pauseCtx->eye.z = sKaleidoSetupEyeZ0[pauseCtx->kscpPos];
+ pauseCtx->kscpPos = sKaleidoSetupKscpPos0[pauseCtx->kscpPos];
+ } else {
+ pauseCtx->eye.x = sKaleidoSetupEyeX1[pauseCtx->kscpPos];
+ pauseCtx->eye.z = sKaleidoSetupEyeZ1[pauseCtx->kscpPos];
+ pauseCtx->kscpPos = sKaleidoSetupKscpPos1[pauseCtx->kscpPos];
+ }
+
+ pauseCtx->mode = (u16)(pauseCtx->kscpPos * 2) + 1; // cast required
+ pauseCtx->state = 1;
+ osSyncPrintf("Mode=%d eye.x=%f, eye.z=%f kscp_pos=%d\n", pauseCtx->mode, (f64)pauseCtx->eye.x,
+ (f64)pauseCtx->eye.z, pauseCtx->kscpPos);
+ }
+
+ if (pauseCtx->state == 1) {
+ WREG(2) = -0x1860;
+ R_UPDATE_RATE = 2;
+ if (func_800B3898()) {
+ func_800B3840(0);
+ }
+ func_800F64E0(1);
+ }
+ }
+}
+
+#ifdef NON_MATCHING
+// regalloc
+void KaleidoSetup_Init(GlobalContext* globalCtx) {
+
+ PauseContext* pauseCtx = &globalCtx->pauseCtx;
+ s32 temp;
+ pauseCtx->state = 0;
+ pauseCtx->flag = 0;
+ pauseCtx->unk_208 = 0;
+ pauseCtx->unk_1EA = 0;
+ pauseCtx->unk_1E4 = 0;
+ pauseCtx->mode = 0;
+ pauseCtx->kscpPos = 0;
+ pauseCtx->unk_218 = 0;
+ pauseCtx->unk_1F4 = 160.0f;
+ pauseCtx->unk_1F8 = 160.0f;
+ pauseCtx->unk_1FC = 160.0f;
+ pauseCtx->unk_200 = 160.0f;
+ pauseCtx->eye.z = 64.0f;
+ pauseCtx->unk_1F0 = 936.0f;
+ pauseCtx->eye.x = pauseCtx->eye.y = 0.0f;
+ pauseCtx->unk_204 = -314.0f;
+ pauseCtx->unk_21A = VREG(30) + 3;
+ pauseCtx->unk_21C = 0;
+ pauseCtx->unk_21E = 1;
+ temp = pauseCtx->unk_21E;
+ pauseCtx->unk_220 = 10;
+ pauseCtx->unk_222 = 0;
+ pauseCtx->unk_22C = 0;
+ pauseCtx->unk_224 = 0;
+ pauseCtx->unk_22E = 0;
+ pauseCtx->unk_226 = 0;
+ pauseCtx->unk_230 = 0;
+ pauseCtx->unk_228 = 1;
+ pauseCtx->unk_232 = 0;
+ pauseCtx->unk_23E = 999;
+ pauseCtx->unk_240 = VREG(30) + 3;
+ pauseCtx->unk_242 = 999;
+ pauseCtx->unk_244 = 59;
+ pauseCtx->unk_246 = 0;
+ pauseCtx->unk_248 = (VREG(30) + 3) & 0xFFFF;
+ pauseCtx->unk_24A = 0;
+ pauseCtx->unk_25A = -40;
+ pauseCtx->unk_25C = 0;
+ pauseCtx->unk_25E = 0;
+ pauseCtx->unk_260 = 4;
+ pauseCtx->unk_264 = -1;
+ pauseCtx->unk_238 = 0;
+ pauseCtx->unk_24C = temp;
+ View_Init(&pauseCtx->view, globalCtx->state.gfxCtx);
+}
+#else
+#pragma GLOBAL_ASM("asm/non_matchings/code/z_kaleido_setup/KaleidoSetup_Init.s")
+#endif
+
+void KaleidoSetup_Destroy(GlobalContext* globalCtx) {
+}
+
+void func_8006EE50(UNK_PTR arg0, s16 arg1, s16 arg2) {
+}