summaryrefslogtreecommitdiff
path: root/src/code
diff options
context:
space:
mode:
authorrozlette <uberpanzermensch@gmail.com>2020-04-23 01:11:25 -0500
committerrozlette <uberpanzermensch@gmail.com>2020-04-23 01:11:25 -0500
commit01c86ec6219d4f4e15665c5990ac5dae75ae57fe (patch)
tree5f6ebb47ba26326214b81408f457b726a3e86eb1 /src/code
parentc1bb5f00d63cbeb55969387faed2988fda1d0bc5 (diff)
Decompile z_prenmi.c
Diffstat (limited to 'src/code')
-rw-r--r--src/code/z_prenmi.c52
1 files changed, 52 insertions, 0 deletions
diff --git a/src/code/z_prenmi.c b/src/code/z_prenmi.c
new file mode 100644
index 000000000..e2e9721da
--- /dev/null
+++ b/src/code/z_prenmi.c
@@ -0,0 +1,52 @@
+#include <ultra64.h>
+#include <global.h>
+
+void PreNMI_Stop(PreNMIContext* prenmiCtx) {
+ prenmiCtx->state.running = 0;
+ prenmiCtx->state.nextGameStateInit = NULL;
+ prenmiCtx->state.nextGameStateSize = 0;
+}
+
+void PreNMI_Update(PreNMIContext* prenmiCtx) {
+ if (prenmiCtx->timer == 0) {
+ ViConfig_UpdateVi(1);
+ PreNMI_Stop(prenmiCtx);
+ return;
+ }
+
+ prenmiCtx->timer--;
+}
+
+#ifdef NON_MATCHING
+// Minor reordering around call to func_8012C470
+void PreNMI_Draw(PreNMIContext* prenmiCtx) {
+ GraphicsContext* gfxCtx = prenmiCtx->state.gfxCtx;
+
+ func_8012CF0C(gfxCtx, 1, 1, 0, 0, 0);
+ func_8012C470(gfxCtx);
+
+ gDPSetFillColor(gfxCtx->polyOpa.p++,
+ (GPACK_RGBA5551(0xFF, 0xFF, 0xFF, 1) << 16) | GPACK_RGBA5551(0xFF, 0xFF, 0xFF, 1));
+ gDPFillRectangle(gfxCtx->polyOpa.p++, 0, prenmiCtx->timer + 100, 320 /*SCREEN_WIDTH*/ - 1, prenmiCtx->timer + 100);
+}
+#else
+GLOBAL_ASM("asm/non_matchings/z_prenmi/PreNMI_Draw.asm")
+#endif
+
+void PreNMI_Main(PreNMIContext* prenmiCtx) {
+ PreNMI_Update(prenmiCtx);
+ PreNMI_Draw(prenmiCtx);
+
+ prenmiCtx->state.unkA3 = 1;
+}
+
+void PreNMI_Destroy(PreNMIContext* prenmiCtx) {}
+
+void PreNMI_Init(PreNMIContext* prenmiCtx) {
+ prenmiCtx->state.main = (func_ptr)PreNMI_Main;
+ prenmiCtx->state.destroy = (func_ptr)PreNMI_Destroy;
+ prenmiCtx->timer = 30;
+ prenmiCtx->unkA8 = 10;
+
+ Game_SetFramerateDivisor(&prenmiCtx->state, 1);
+}