diff --git a/src/game/data/data_02e820.c b/src/game/data/data_02e820.c index 68a811316..442119711 100644 --- a/src/game/data/data_02e820.c +++ b/src/game/data/data_02e820.c @@ -18,10 +18,10 @@ #include "stagesetup.h" #include "types.h" -u32 var80088800 = 0x00000000; +u32 var80088800 = 0; u8 var80088804 = 0; -u32 var80088808 = 0x00000000; -u32 var8008880c = 0x00000000; +u8 var80088808 = 0; +u8 var8008880c = 0; u32 var80088810 = 0x00000000; u32 var80088814 = 0x00d600d7; u32 var80088818 = 0x00d900d8; diff --git a/src/game/game_19c990.c b/src/game/game_19c990.c index 65def5170..e7f240d17 100644 --- a/src/game/game_19c990.c +++ b/src/game/game_19c990.c @@ -841,39 +841,29 @@ glabel func0f19d414 /* f19d4e8: 27bd0030 */ addiu $sp,$sp,0x30 ); -GLOBAL_ASM( -glabel func0f19d4ec -/* f19d4ec: 3c018009 */ lui $at,%hi(var80088800) -/* f19d4f0: ac208800 */ sw $zero,%lo(var80088800)($at) -/* f19d4f4: 3c018009 */ lui $at,%hi(var80088808) -/* f19d4f8: a0208808 */ sb $zero,%lo(var80088808)($at) -/* f19d4fc: 3c018009 */ lui $at,%hi(var80088804) -/* f19d500: a0208804 */ sb $zero,%lo(var80088804)($at) -/* f19d504: 3c04800b */ lui $a0,%hi(g_FiringRangeData) -/* f19d508: 3c018009 */ lui $at,%hi(var80088810) -/* f19d50c: 2484cd20 */ addiu $a0,$a0,%lo(g_FiringRangeData) -/* f19d510: ac208810 */ sw $zero,%lo(var80088810)($at) -/* f19d514: 3c03800b */ lui $v1,%hi(g_FiringRangeData) -/* f19d518: 3c02800b */ lui $v0,%hi(g_FiringRangeData+0x438) -/* f19d51c: a0800466 */ sb $zero,0x466($a0) -/* f19d520: a0800467 */ sb $zero,0x467($a0) -/* f19d524: a0800468 */ sb $zero,0x468($a0) -/* f19d528: ac80046c */ sw $zero,0x46c($a0) -/* f19d52c: a0800464 */ sb $zero,0x464($a0) -/* f19d530: a0800000 */ sb $zero,0x0($a0) -/* f19d534: 2442d158 */ addiu $v0,$v0,%lo(g_FiringRangeData+0x438) -/* f19d538: 2463cd20 */ addiu $v1,$v1,%lo(g_FiringRangeData) -.L0f19d53c: -/* f19d53c: 906e0010 */ lbu $t6,0x10($v1) -/* f19d540: 2463003c */ addiu $v1,$v1,0x3c -/* f19d544: ac60ffd8 */ sw $zero,-0x28($v1) -/* f19d548: 31cfff7f */ andi $t7,$t6,0xff7f -/* f19d54c: 1462fffb */ bne $v1,$v0,.L0f19d53c -/* f19d550: a06fffd4 */ sb $t7,-0x2c($v1) -/* f19d554: 3c018009 */ lui $at,%hi(var8008880c) -/* f19d558: 03e00008 */ jr $ra -/* f19d55c: a020880c */ sb $zero,%lo(var8008880c)($at) -); +void func0f19d4ec(void) +{ + s32 i; + + var80088800 = 0; + var80088808 = 0; + var80088804 = 0; + var80088810 = 0; + + g_FiringRangeData.unk466 = 0; + g_FiringRangeData.unk467 = 0; + g_FiringRangeData.unk468 = 0; + g_FiringRangeData.unk46c = 0; + g_FiringRangeData.unk464 = 0; + g_FiringRangeData.unk000 = 0; + + for (i = 0; i < 18; i++) { + g_FiringRangeData.unk010[i].unk04 = 0; + g_FiringRangeData.unk010[i].unk00_01 = false; + } + + var8008880c = 0; +} GLOBAL_ASM( glabel func0f19d560 diff --git a/src/include/game/data/data_02e820.h b/src/include/game/data/data_02e820.h index a152c05e1..8339e136a 100644 --- a/src/include/game/data/data_02e820.h +++ b/src/include/game/data/data_02e820.h @@ -5,8 +5,8 @@ extern u32 var80088800; extern u8 var80088804; -extern u32 var80088808; -extern u32 var8008880c; +extern u8 var80088808; +extern u8 var8008880c; extern u32 var80088810; extern u32 var80088854; extern u8 var800888a0; diff --git a/src/include/types.h b/src/include/types.h index 8b0082c50..dd6e812e0 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -4775,8 +4775,27 @@ struct hudmessage { /*0x1d8*/ u32 hash; }; +struct frdata010 { + /*0x00*/ u32 unk00_01 : 1; + /*0x04*/ u32 unk04; + /*0x08*/ u32 unk08; + /*0x0c*/ u32 unk0c; + /*0x10*/ u32 unk10; + /*0x14*/ u32 unk14; + /*0x18*/ u32 unk18; + /*0x1c*/ u32 unk1c; + /*0x20*/ u32 unk20; + /*0x24*/ u32 unk24; + /*0x28*/ u32 unk28; + /*0x2c*/ u32 unk2c; + /*0x30*/ u32 unk30; + /*0x34*/ u32 unk34; + /*0x38*/ u32 unk38; +}; + struct frdata { - /*0x000*/ u16 unk000; + /*0x000*/ u8 unk000; + /*0x001*/ u8 unk001; /*0x002*/ u16 goalscore; /*0x004*/ u8 goaltargets; /*0x005*/ u8 timelimit; @@ -4784,276 +4803,7 @@ struct frdata { /*0x007*/ u8 sdgrenadelimit; /*0x008*/ u8 goalaccuracy; /*0x00c*/ u32 unk00c; - /*0x010*/ u32 unk010; - /*0x014*/ u32 unk014; - /*0x018*/ u32 unk018; - /*0x01c*/ u32 unk01c; - /*0x020*/ u32 unk020; - /*0x024*/ u32 unk024; - /*0x028*/ u32 unk028; - /*0x02c*/ u32 unk02c; - /*0x030*/ u32 unk030; - /*0x034*/ u32 unk034; - /*0x038*/ u32 unk038; - /*0x03c*/ u32 unk03c; - /*0x040*/ u32 unk040; - /*0x044*/ u32 unk044; - /*0x048*/ u32 unk048; - /*0x04c*/ u32 unk04c; - /*0x050*/ u32 unk050; - /*0x054*/ u32 unk054; - /*0x058*/ u32 unk058; - /*0x05c*/ u32 unk05c; - /*0x060*/ u32 unk060; - /*0x064*/ u32 unk064; - /*0x068*/ u32 unk068; - /*0x06c*/ u32 unk06c; - /*0x070*/ u32 unk070; - /*0x074*/ u32 unk074; - /*0x078*/ u32 unk078; - /*0x07c*/ u32 unk07c; - /*0x080*/ u32 unk080; - /*0x084*/ u32 unk084; - /*0x088*/ u32 unk088; - /*0x08c*/ u32 unk08c; - /*0x090*/ u32 unk090; - /*0x094*/ u32 unk094; - /*0x098*/ u32 unk098; - /*0x09c*/ u32 unk09c; - /*0x0a0*/ u32 unk0a0; - /*0x0a4*/ u32 unk0a4; - /*0x0a8*/ u32 unk0a8; - /*0x0ac*/ u32 unk0ac; - /*0x0b0*/ u32 unk0b0; - /*0x0b4*/ u32 unk0b4; - /*0x0b8*/ u32 unk0b8; - /*0x0bc*/ u32 unk0bc; - /*0x0c0*/ u32 unk0c0; - /*0x0c4*/ u32 unk0c4; - /*0x0c8*/ u32 unk0c8; - /*0x0cc*/ u32 unk0cc; - /*0x0d0*/ u32 unk0d0; - /*0x0d4*/ u32 unk0d4; - /*0x0d8*/ u32 unk0d8; - /*0x0dc*/ u32 unk0dc; - /*0x0e0*/ u32 unk0e0; - /*0x0e4*/ u32 unk0e4; - /*0x0e8*/ u32 unk0e8; - /*0x0ec*/ u32 unk0ec; - /*0x0f0*/ u32 unk0f0; - /*0x0f4*/ u32 unk0f4; - /*0x0f8*/ u32 unk0f8; - /*0x0fc*/ u32 unk0fc; - /*0x100*/ u32 unk100; - /*0x104*/ u32 unk104; - /*0x108*/ u32 unk108; - /*0x10c*/ u32 unk10c; - /*0x110*/ u32 unk110; - /*0x114*/ u32 unk114; - /*0x118*/ u32 unk118; - /*0x11c*/ u32 unk11c; - /*0x120*/ u32 unk120; - /*0x124*/ u32 unk124; - /*0x128*/ u32 unk128; - /*0x12c*/ u32 unk12c; - /*0x130*/ u32 unk130; - /*0x134*/ u32 unk134; - /*0x138*/ u32 unk138; - /*0x13c*/ u32 unk13c; - /*0x140*/ u32 unk140; - /*0x144*/ u32 unk144; - /*0x148*/ u32 unk148; - /*0x14c*/ u32 unk14c; - /*0x150*/ u32 unk150; - /*0x154*/ u32 unk154; - /*0x158*/ u32 unk158; - /*0x15c*/ u32 unk15c; - /*0x160*/ u32 unk160; - /*0x164*/ u32 unk164; - /*0x168*/ u32 unk168; - /*0x16c*/ u32 unk16c; - /*0x170*/ u32 unk170; - /*0x174*/ u32 unk174; - /*0x178*/ u32 unk178; - /*0x17c*/ u32 unk17c; - /*0x180*/ u32 unk180; - /*0x184*/ u32 unk184; - /*0x188*/ u32 unk188; - /*0x18c*/ u32 unk18c; - /*0x190*/ u32 unk190; - /*0x194*/ u32 unk194; - /*0x198*/ u32 unk198; - /*0x19c*/ u32 unk19c; - /*0x1a0*/ u32 unk1a0; - /*0x1a4*/ u32 unk1a4; - /*0x1a8*/ u32 unk1a8; - /*0x1ac*/ u32 unk1ac; - /*0x1b0*/ u32 unk1b0; - /*0x1b4*/ u32 unk1b4; - /*0x1b8*/ u32 unk1b8; - /*0x1bc*/ u32 unk1bc; - /*0x1c0*/ u32 unk1c0; - /*0x1c4*/ u32 unk1c4; - /*0x1c8*/ u32 unk1c8; - /*0x1cc*/ u32 unk1cc; - /*0x1d0*/ u32 unk1d0; - /*0x1d4*/ u32 unk1d4; - /*0x1d8*/ u32 unk1d8; - /*0x1dc*/ u32 unk1dc; - /*0x1e0*/ u32 unk1e0; - /*0x1e4*/ u32 unk1e4; - /*0x1e8*/ u32 unk1e8; - /*0x1ec*/ u32 unk1ec; - /*0x1f0*/ u32 unk1f0; - /*0x1f4*/ u32 unk1f4; - /*0x1f8*/ u32 unk1f8; - /*0x1fc*/ u32 unk1fc; - /*0x200*/ u32 unk200; - /*0x204*/ u32 unk204; - /*0x208*/ u32 unk208; - /*0x20c*/ u32 unk20c; - /*0x210*/ u32 unk210; - /*0x214*/ u32 unk214; - /*0x218*/ u32 unk218; - /*0x21c*/ u32 unk21c; - /*0x220*/ u32 unk220; - /*0x224*/ u32 unk224; - /*0x228*/ u32 unk228; - /*0x22c*/ u32 unk22c; - /*0x230*/ u32 unk230; - /*0x234*/ u32 unk234; - /*0x238*/ u32 unk238; - /*0x23c*/ u32 unk23c; - /*0x240*/ u32 unk240; - /*0x244*/ u32 unk244; - /*0x248*/ u32 unk248; - /*0x24c*/ u32 unk24c; - /*0x250*/ u32 unk250; - /*0x254*/ u32 unk254; - /*0x258*/ u32 unk258; - /*0x25c*/ u32 unk25c; - /*0x260*/ u32 unk260; - /*0x264*/ u32 unk264; - /*0x268*/ u32 unk268; - /*0x26c*/ u32 unk26c; - /*0x270*/ u32 unk270; - /*0x274*/ u32 unk274; - /*0x278*/ u32 unk278; - /*0x27c*/ u32 unk27c; - /*0x280*/ u32 unk280; - /*0x284*/ u32 unk284; - /*0x288*/ u32 unk288; - /*0x28c*/ u32 unk28c; - /*0x290*/ u32 unk290; - /*0x294*/ u32 unk294; - /*0x298*/ u32 unk298; - /*0x29c*/ u32 unk29c; - /*0x2a0*/ u32 unk2a0; - /*0x2a4*/ u32 unk2a4; - /*0x2a8*/ u32 unk2a8; - /*0x2ac*/ u32 unk2ac; - /*0x2b0*/ u32 unk2b0; - /*0x2b4*/ u32 unk2b4; - /*0x2b8*/ u32 unk2b8; - /*0x2bc*/ u32 unk2bc; - /*0x2c0*/ u32 unk2c0; - /*0x2c4*/ u32 unk2c4; - /*0x2c8*/ u32 unk2c8; - /*0x2cc*/ u32 unk2cc; - /*0x2d0*/ u32 unk2d0; - /*0x2d4*/ u32 unk2d4; - /*0x2d8*/ u32 unk2d8; - /*0x2dc*/ u32 unk2dc; - /*0x2e0*/ u32 unk2e0; - /*0x2e4*/ u32 unk2e4; - /*0x2e8*/ u32 unk2e8; - /*0x2ec*/ u32 unk2ec; - /*0x2f0*/ u32 unk2f0; - /*0x2f4*/ u32 unk2f4; - /*0x2f8*/ u32 unk2f8; - /*0x2fc*/ u32 unk2fc; - /*0x300*/ u32 unk300; - /*0x304*/ u32 unk304; - /*0x308*/ u32 unk308; - /*0x30c*/ u32 unk30c; - /*0x310*/ u32 unk310; - /*0x314*/ u32 unk314; - /*0x318*/ u32 unk318; - /*0x31c*/ u32 unk31c; - /*0x320*/ u32 unk320; - /*0x324*/ u32 unk324; - /*0x328*/ u32 unk328; - /*0x32c*/ u32 unk32c; - /*0x330*/ u32 unk330; - /*0x334*/ u32 unk334; - /*0x338*/ u32 unk338; - /*0x33c*/ u32 unk33c; - /*0x340*/ u32 unk340; - /*0x344*/ u32 unk344; - /*0x348*/ u32 unk348; - /*0x34c*/ u32 unk34c; - /*0x350*/ u32 unk350; - /*0x354*/ u32 unk354; - /*0x358*/ u32 unk358; - /*0x35c*/ u32 unk35c; - /*0x360*/ u32 unk360; - /*0x364*/ u32 unk364; - /*0x368*/ u32 unk368; - /*0x36c*/ u32 unk36c; - /*0x370*/ u32 unk370; - /*0x374*/ u32 unk374; - /*0x378*/ u32 unk378; - /*0x37c*/ u32 unk37c; - /*0x380*/ u32 unk380; - /*0x384*/ u32 unk384; - /*0x388*/ u32 unk388; - /*0x38c*/ u32 unk38c; - /*0x390*/ u32 unk390; - /*0x394*/ u32 unk394; - /*0x398*/ u32 unk398; - /*0x39c*/ u32 unk39c; - /*0x3a0*/ u32 unk3a0; - /*0x3a4*/ u32 unk3a4; - /*0x3a8*/ u32 unk3a8; - /*0x3ac*/ u32 unk3ac; - /*0x3b0*/ u32 unk3b0; - /*0x3b4*/ u32 unk3b4; - /*0x3b8*/ u32 unk3b8; - /*0x3bc*/ u32 unk3bc; - /*0x3c0*/ u32 unk3c0; - /*0x3c4*/ u32 unk3c4; - /*0x3c8*/ u32 unk3c8; - /*0x3cc*/ u32 unk3cc; - /*0x3d0*/ u32 unk3d0; - /*0x3d4*/ u32 unk3d4; - /*0x3d8*/ u32 unk3d8; - /*0x3dc*/ u32 unk3dc; - /*0x3e0*/ u32 unk3e0; - /*0x3e4*/ u32 unk3e4; - /*0x3e8*/ u32 unk3e8; - /*0x3ec*/ u32 unk3ec; - /*0x3f0*/ u32 unk3f0; - /*0x3f4*/ u32 unk3f4; - /*0x3f8*/ u32 unk3f8; - /*0x3fc*/ u32 unk3fc; - /*0x400*/ u32 unk400; - /*0x404*/ u32 unk404; - /*0x408*/ u32 unk408; - /*0x40c*/ u32 unk40c; - /*0x410*/ u32 unk410; - /*0x414*/ u32 unk414; - /*0x418*/ u32 unk418; - /*0x41c*/ u32 unk41c; - /*0x420*/ u32 unk420; - /*0x424*/ u32 unk424; - /*0x428*/ u32 unk428; - /*0x42c*/ u32 unk42c; - /*0x430*/ u32 unk430; - /*0x434*/ u32 unk434; - /*0x438*/ u32 unk438; - /*0x43c*/ u32 unk43c; - /*0x440*/ u32 unk440; - /*0x444*/ u32 unk444; + /*0x010*/ struct frdata010 unk010[18]; /*0x448*/ u8 difficulty; /*0x44c*/ s32 timetaken; /*0x450*/ u32 score; @@ -5068,8 +4818,10 @@ struct frdata { /*0x460*/ u16 numhitstype3; /*0x462*/ u16 numhitstype4; /*0x464*/ s8 unk464; - /*0x464*/ u8 unk465 : 3; - /*0x468*/ u32 unk468; + /*0x465*/ u8 unk465 : 3; + /*0x466*/ u8 unk466; + /*0x467*/ u8 unk467; + /*0x468*/ u8 unk468; /*0x46c*/ u32 unk46c; /*0x470*/ u32 unk470; /*0x474*/ u32 unk474;