From b58437b8a312e5b823798f8587b0bd1f08751d95 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Wed, 12 Jan 2022 00:04:00 +1000 Subject: [PATCH] Decompile casingsReset --- src/game/casing/reset.c | 143 +++++++++------------------------------- src/include/bss.h | 2 +- 2 files changed, 31 insertions(+), 114 deletions(-) diff --git a/src/game/casing/reset.c b/src/game/casing/reset.c index 8f96fa6c5..174d93871 100644 --- a/src/game/casing/reset.c +++ b/src/game/casing/reset.c @@ -4,117 +4,34 @@ #include "data.h" #include "types.h" -#if VERSION >= VERSION_NTSC_1_0 -GLOBAL_ASM( -glabel casingsReset -/* f010b20: 3c04800a */ lui $a0,%hi(var8009d0d0) -/* f010b24: 2484d0d0 */ addiu $a0,$a0,%lo(var8009d0d0) -/* f010b28: ac800000 */ sw $zero,0x0($a0) -/* f010b2c: ac800004 */ sw $zero,0x4($a0) -/* f010b30: 3c01800a */ lui $at,%hi(var8009d0d8) -/* f010b34: 3c03800a */ lui $v1,%hi(g_BgunAudioHandles+0x10) -/* f010b38: 3c02800a */ lui $v0,%hi(g_BgunAudioHandles) -/* f010b3c: ac20d0d8 */ sw $zero,%lo(var8009d0d8)($at) -/* f010b40: 2442d0f0 */ addiu $v0,$v0,%lo(g_BgunAudioHandles+0x10) -/* f010b44: 2463d0e0 */ addiu $v1,$v1,%lo(g_BgunAudioHandles) -.L0f010b48: -/* f010b48: 24630004 */ addiu $v1,$v1,0x4 -/* f010b4c: 1462fffe */ bne $v1,$v0,.L0f010b48 -/* f010b50: ac60fffc */ sw $zero,-0x4($v1) -/* f010b54: 3c02800a */ lui $v0,%hi(var8009da60) -/* f010b58: 3c03800a */ lui $v1,%hi(g_Casings) -/* f010b5c: 2442da60 */ addiu $v0,$v0,%lo(var8009da60) -/* f010b60: 2463d510 */ addiu $v1,$v1,%lo(g_Casings) -.L0f010b64: -/* f010b64: 24630044 */ addiu $v1,$v1,0x44 -/* f010b68: 0062082b */ sltu $at,$v1,$v0 -/* f010b6c: 1420fffd */ bnez $at,.L0f010b64 -/* f010b70: ac60fffc */ sw $zero,-0x4($v1) -/* f010b74: 3c018007 */ lui $at,%hi(g_CasingsActive) -/* f010b78: 3c03800a */ lui $v1,%hi(g_Fireslots) -/* f010b7c: 3c04800a */ lui $a0,%hi(g_Fireslots+0x3c0) -/* f010b80: ac200524 */ sw $zero,%lo(g_CasingsActive)($at) -/* f010b84: 2484d510 */ addiu $a0,$a0,%lo(g_Fireslots+0x3c0) -/* f010b88: 2463d150 */ addiu $v1,$v1,%lo(g_Fireslots) -/* f010b8c: 2402ffff */ addiu $v0,$zero,-1 -.L0f010b90: -/* f010b90: 24630030 */ addiu $v1,$v1,0x30 -/* f010b94: 1464fffe */ bne $v1,$a0,.L0f010b90 -/* f010b98: ac62ffd0 */ sw $v0,-0x30($v1) -/* f010b9c: 3c02800a */ lui $v0,%hi(g_Vars) -/* f010ba0: 24429fc0 */ addiu $v0,$v0,%lo(g_Vars) -/* f010ba4: ac4002b0 */ sw $zero,0x2b0($v0) -/* f010ba8: 03e00008 */ jr $ra -/* f010bac: ac4002b4 */ sw $zero,0x2b4($v0) -); -#else -GLOBAL_ASM( -glabel casingsReset -/* f010860: 3c04800a */ lui $a0,0x800a -/* f010864: 24841868 */ addiu $a0,$a0,0x1868 -/* f010868: ac800000 */ sw $zero,0x0($a0) -/* f01086c: ac800004 */ sw $zero,0x4($a0) -/* f010870: 3c01800a */ lui $at,0x800a -/* f010874: 3c03800a */ lui $v1,0x800a -/* f010878: 3c02800a */ lui $v0,0x800a -/* f01087c: ac201870 */ sw $zero,0x1870($at) -/* f010880: 24421888 */ addiu $v0,$v0,0x1888 -/* f010884: 24631878 */ addiu $v1,$v1,0x1878 -.NB0f010888: -/* f010888: 24630004 */ addiu $v1,$v1,0x4 -/* f01088c: 1462fffe */ bne $v1,$v0,.NB0f010888 -/* f010890: ac60fffc */ sw $zero,-0x4($v1) -/* f010894: 3c02800a */ lui $v0,0x800a -/* f010898: 3c03800a */ lui $v1,0x800a -/* f01089c: 24422240 */ addiu $v0,$v0,0x2240 -/* f0108a0: 24631cf0 */ addiu $v1,$v1,0x1cf0 -.NB0f0108a4: -/* f0108a4: 24630044 */ addiu $v1,$v1,0x44 -/* f0108a8: 0062082b */ sltu $at,$v1,$v0 -/* f0108ac: 1420fffd */ bnez $at,.NB0f0108a4 -/* f0108b0: ac60fffc */ sw $zero,-0x4($v1) -/* f0108b4: 3c018007 */ lui $at,0x8007 -/* f0108b8: 3c03800a */ lui $v1,0x800a -/* f0108bc: 3c04800a */ lui $a0,0x800a -/* f0108c0: ac202be4 */ sw $zero,0x2be4($at) -/* f0108c4: 24841ce8 */ addiu $a0,$a0,0x1ce8 -/* f0108c8: 24631888 */ addiu $v1,$v1,0x1888 -/* f0108cc: 2402ffff */ addiu $v0,$zero,-1 -.NB0f0108d0: -/* f0108d0: 24630038 */ addiu $v1,$v1,0x38 -/* f0108d4: 1464fffe */ bne $v1,$a0,.NB0f0108d0 -/* f0108d8: ac62ffc8 */ sw $v0,-0x38($v1) -/* f0108dc: 3c02800a */ lui $v0,0x800a -/* f0108e0: 2442e6c0 */ addiu $v0,$v0,-6464 -/* f0108e4: ac4002b0 */ sw $zero,0x2b0($v0) -/* f0108e8: 03e00008 */ jr $ra -/* f0108ec: ac4002b4 */ sw $zero,0x2b4($v0) -); -#endif +void casingsReset(void) +{ + s32 i; -// Mismatch: Two instructions are swapped -//void casingsReset(void) -//{ -// s32 i; -// -// var8009d0d0[0] = 0; -// var8009d0d0[1] = 0; -// var8009d0d8 = 0; -// -// for (i = 0; i != ARRAYCOUNT(g_BgunAudioHandles); i++) { -// g_BgunAudioHandles[i] = 0; -// } -// -// for (i = 0; i < ARRAYCOUNT(g_Casings); i++) { -// g_Casings[i].unk40 = 0; -// } -// -// g_CasingsActive = 0; -// -// for (i = 0; i < ARRAYCOUNT(g_Fireslots); i++) { -// g_Fireslots[i].unk00 = -1; -// } -// -// g_Vars.killcount = 0; -// g_Vars.knockoutcount = 0; -//} + var8009d0d0[0] = 0; + var8009d0d0[1] = 0; + var8009d0d8 = 0; + + for (i = 0; i != ARRAYCOUNT(g_BgunAudioHandles); i++) { + g_BgunAudioHandles[i] = 0; + } + + { + struct casing *end = g_Casings + ARRAYCOUNT(g_Casings); + struct casing *casing = g_Casings; + + while (casing < end) { + casing->unk40 = 0; + casing++; + } + } + + g_CasingsActive = 0; + + for (i = 0; i < ARRAYCOUNT(g_Fireslots); i++) { + g_Fireslots[i].endlvframe = -1; + } + + g_Vars.killcount = 0; + g_Vars.knockoutcount = 0; +} diff --git a/src/include/bss.h b/src/include/bss.h index 69272deee..8b28e3fa1 100644 --- a/src/include/bss.h +++ b/src/include/bss.h @@ -127,7 +127,7 @@ extern struct criteria_holograph *g_HolographCriterias; extern u32 var8009d0d0[2]; extern s32 var8009d0d8; extern struct sndstate *g_BgunAudioHandles[4]; -extern struct fireslot g_Fireslots[]; +extern struct fireslot g_Fireslots[NUM_FIRESLOTS]; extern struct casing g_Casings[20]; extern struct var8009da60 var8009da60[8]; extern struct lasersight g_LaserSights[4];