diff options
| author | rozlette <uberpanzermensch@gmail.com> | 2020-04-23 01:11:25 -0500 |
|---|---|---|
| committer | rozlette <uberpanzermensch@gmail.com> | 2020-04-23 01:11:25 -0500 |
| commit | 01c86ec6219d4f4e15665c5990ac5dae75ae57fe (patch) | |
| tree | 5f6ebb47ba26326214b81408f457b726a3e86eb1 /src/code | |
| parent | c1bb5f00d63cbeb55969387faed2988fda1d0bc5 (diff) | |
Decompile z_prenmi.c
Diffstat (limited to 'src/code')
| -rw-r--r-- | src/code/z_prenmi.c | 52 |
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); +} |
