diff --git a/src/game/data/data_020df0.c b/src/game/data/data_020df0.c index 1ac5cade3..32c849e06 100644 --- a/src/game/data/data_020df0.c +++ b/src/game/data/data_020df0.c @@ -7049,8 +7049,8 @@ s32 var8007fc20 = 0x00000001; u32 var8007fc24 = 0x800a4910; u32 var8007fc28 = 0x00000000; u32 var8007fc2c = 0x00000000; -u32 var8007fc30 = 0x00000000; -u32 var8007fc34 = 0x00000000; +s32 var8007fc30 = 0x00000000; +s32 var8007fc34 = 0x00000000; u32 var8007fc38 = 0x00000000; u16 var8007fc3c = 0xfffe; s32 g_NumPortalThings = 0; diff --git a/src/game/game_157db0.c b/src/game/game_157db0.c index 69ef0a9db..0cf2192e7 100644 --- a/src/game/game_157db0.c +++ b/src/game/game_157db0.c @@ -5644,7 +5644,7 @@ bool func0f15cd90(u32 room, struct screenbox *screen) } if (func0f15d08c(&corner, &roomscreenpos) == 0) { - if (var800a4cf0[3] <= -roomscreenpos.z) { + if (var800a4cf0.unk0c <= -roomscreenpos.z) { numb++; } @@ -5666,7 +5666,7 @@ bool func0f15cd90(u32 room, struct screenbox *screen) numa++; } else { - if (var800a4cf0[3] <= -roomscreenpos.z) { + if (var800a4cf0.unk0c <= -roomscreenpos.z) { numb++; } @@ -13792,6 +13792,87 @@ glabel func0f163e34 /* f16414c: 27bd0048 */ addiu $sp,$sp,0x48 ); +//s16 var800a4ce4; +//s16 var800a4ce6; + +// Mismatch because var800a4ce4 and var800a4ce6 need to be moved out of gvars.c +// and into this file. +//void func0f163e34(void) +//{ +// s32 i; +// s32 room; +// struct screenbox box; +// struct player *player = g_Vars.currentplayer; +// +// func0f164748(); +// +// box.xmin = player->screenxminf; +// box.ymin = player->screenyminf; +// box.xmax = player->screenxmaxf; +// box.ymax = player->screenymaxf; +// +// func0000bee0(&var800a4cf0.unk08); +// var800a4cf0.unk0c = var800a4cf0.unk0c / g_Vars.currentplayerstats->scale_bg2gfx; +// +// for (i = 0; i < g_Vars.roomcount; i++) { +// g_Rooms[i].flags &= ~0x2d; +// g_Rooms[i].unk04 = 0; +// g_Rooms[i].unk06 = 0; +// g_Rooms[i].unk07 = 1; +// } +// +// if (player->visionmode == VISIONMODE_XRAY) { +// func0f162d9c(); +// } else { +// if (var8007fc34 < var8007fc30) { +// var8007fc34 = var8007fc30; +// } +// +// var8007fc2c = 0; +// var8007fc30 = 0; +// var800a4ce4[1] = 0; +// var800a4ce4[0] = 32767; +// //var800a4ce6 = 0; +// //var800a4ce4 = 32767; +// var800a4640.unk2d0 = -1; +// var800a4640.unk2d3 = 255; +// var800a4cf0.unk00 = 0; +// var800a4cf0.unk02 = 0; +// var800a4cf0.unk04 = 0; +// var800a65b8 = 0; +// var800a4640.unk2d4.xmin = box.xmin; +// var800a4640.unk2d4.ymin = box.ymin; +// var800a4640.unk2d4.xmax = box.xmax; +// var800a4640.unk2d4.ymax = box.ymax; +// +// func0f162cf0(var800a4cd4); +// +// if (var800a65b8 == 0) { +// if (g_Portals[0].unk00 == 0) { +// for (room = 1; room < g_Vars.roomcount; room++) { +// if (func0f15cd90(room, &box) +// && ((g_StageIndex != STAGEINDEX_INFILTRATION && g_StageIndex != STAGEINDEX_RESCUE && g_StageIndex != STAGEINDEX_ESCAPE) || room != 0xf) +// && (g_StageIndex != STAGEINDEX_SKEDARRUINS || room != 0x02) +// && ((g_StageIndex != STAGEINDEX_DEFECTION && g_StageIndex != STAGEINDEX_EXTRACTION) || room != 0x01) +// && (g_StageIndex != STAGEINDEX_ATTACKSHIP || room != 0x71)) { +// func0f157e94(j, 0, &box); +// } +// } +// } else { +// func0f157e94(var8007fc20, 0, &box); +// var800a4cf0.unk00 = 0; +// var800a4cf0.unk02 = 0; +// var800a4cf0.unk04 = 0; +// func0f1632d4(var8007fc20, var8007fc20, 1, &box); +// +// while (func0f163904()); +// } +// } +// +// func0f16397c(); +// } +//} + GLOBAL_ASM( glabel func0f164150 .late_rodata diff --git a/src/gvars/gvars.c b/src/gvars/gvars.c index 896952fa6..a9a94a93d 100644 --- a/src/gvars/gvars.c +++ b/src/gvars/gvars.c @@ -17644,189 +17644,7 @@ u32 var800a4630 = 0; u32 var800a4634 = 0; u32 var800a4638 = 0; u32 var800a463c = 0; -u32 var800a4640 = 0; -u32 var800a4644 = 0; -u32 var800a4648 = 0; -u32 var800a464c = 0; -u32 var800a4650 = 0; -u32 var800a4654 = 0; -u32 var800a4658 = 0; -u32 var800a465c = 0; -u32 var800a4660 = 0; -u32 var800a4664 = 0; -u32 var800a4668 = 0; -u32 var800a466c = 0; -u32 var800a4670 = 0; -u32 var800a4674 = 0; -u32 var800a4678 = 0; -u32 var800a467c = 0; -u32 var800a4680 = 0; -u32 var800a4684 = 0; -u32 var800a4688 = 0; -u32 var800a468c = 0; -u32 var800a4690 = 0; -u32 var800a4694 = 0; -u32 var800a4698 = 0; -u32 var800a469c = 0; -u32 var800a46a0 = 0; -u32 var800a46a4 = 0; -u32 var800a46a8 = 0; -u32 var800a46ac = 0; -u32 var800a46b0 = 0; -u32 var800a46b4 = 0; -u32 var800a46b8 = 0; -u32 var800a46bc = 0; -u32 var800a46c0 = 0; -u32 var800a46c4 = 0; -u32 var800a46c8 = 0; -u32 var800a46cc = 0; -u32 var800a46d0 = 0; -u32 var800a46d4 = 0; -u32 var800a46d8 = 0; -u32 var800a46dc = 0; -u32 var800a46e0 = 0; -u32 var800a46e4 = 0; -u32 var800a46e8 = 0; -u32 var800a46ec = 0; -u32 var800a46f0 = 0; -u32 var800a46f4 = 0; -u32 var800a46f8 = 0; -u32 var800a46fc = 0; -u32 var800a4700 = 0; -u32 var800a4704 = 0; -u32 var800a4708 = 0; -u32 var800a470c = 0; -u32 var800a4710 = 0; -u32 var800a4714 = 0; -u32 var800a4718 = 0; -u32 var800a471c = 0; -u32 var800a4720 = 0; -u32 var800a4724 = 0; -u32 var800a4728 = 0; -u32 var800a472c = 0; -u32 var800a4730 = 0; -u32 var800a4734 = 0; -u32 var800a4738 = 0; -u32 var800a473c = 0; -u32 var800a4740 = 0; -u32 var800a4744 = 0; -u32 var800a4748 = 0; -u32 var800a474c = 0; -u32 var800a4750 = 0; -u32 var800a4754 = 0; -u32 var800a4758 = 0; -u32 var800a475c = 0; -u32 var800a4760 = 0; -u32 var800a4764 = 0; -u32 var800a4768 = 0; -u32 var800a476c = 0; -u32 var800a4770 = 0; -u32 var800a4774 = 0; -u32 var800a4778 = 0; -u32 var800a477c = 0; -u32 var800a4780 = 0; -u32 var800a4784 = 0; -u32 var800a4788 = 0; -u32 var800a478c = 0; -u32 var800a4790 = 0; -u32 var800a4794 = 0; -u32 var800a4798 = 0; -u32 var800a479c = 0; -u32 var800a47a0 = 0; -u32 var800a47a4 = 0; -u32 var800a47a8 = 0; -u32 var800a47ac = 0; -u32 var800a47b0 = 0; -u32 var800a47b4 = 0; -u32 var800a47b8 = 0; -u32 var800a47bc = 0; -u32 var800a47c0 = 0; -u32 var800a47c4 = 0; -u32 var800a47c8 = 0; -u32 var800a47cc = 0; -u32 var800a47d0 = 0; -u32 var800a47d4 = 0; -u32 var800a47d8 = 0; -u32 var800a47dc = 0; -u32 var800a47e0 = 0; -u32 var800a47e4 = 0; -u32 var800a47e8 = 0; -u32 var800a47ec = 0; -u32 var800a47f0 = 0; -u32 var800a47f4 = 0; -u32 var800a47f8 = 0; -u32 var800a47fc = 0; -u32 var800a4800 = 0; -u32 var800a4804 = 0; -u32 var800a4808 = 0; -u32 var800a480c = 0; -u32 var800a4810 = 0; -u32 var800a4814 = 0; -u32 var800a4818 = 0; -u32 var800a481c = 0; -u32 var800a4820 = 0; -u32 var800a4824 = 0; -u32 var800a4828 = 0; -u32 var800a482c = 0; -u32 var800a4830 = 0; -u32 var800a4834 = 0; -u32 var800a4838 = 0; -u32 var800a483c = 0; -u32 var800a4840 = 0; -u32 var800a4844 = 0; -u32 var800a4848 = 0; -u32 var800a484c = 0; -u32 var800a4850 = 0; -u32 var800a4854 = 0; -u32 var800a4858 = 0; -u32 var800a485c = 0; -u32 var800a4860 = 0; -u32 var800a4864 = 0; -u32 var800a4868 = 0; -u32 var800a486c = 0; -u32 var800a4870 = 0; -u32 var800a4874 = 0; -u32 var800a4878 = 0; -u32 var800a487c = 0; -u32 var800a4880 = 0; -u32 var800a4884 = 0; -u32 var800a4888 = 0; -u32 var800a488c = 0; -u32 var800a4890 = 0; -u32 var800a4894 = 0; -u32 var800a4898 = 0; -u32 var800a489c = 0; -u32 var800a48a0 = 0; -u32 var800a48a4 = 0; -u32 var800a48a8 = 0; -u32 var800a48ac = 0; -u32 var800a48b0 = 0; -u32 var800a48b4 = 0; -u32 var800a48b8 = 0; -u32 var800a48bc = 0; -u32 var800a48c0 = 0; -u32 var800a48c4 = 0; -u32 var800a48c8 = 0; -u32 var800a48cc = 0; -u32 var800a48d0 = 0; -u32 var800a48d4 = 0; -u32 var800a48d8 = 0; -u32 var800a48dc = 0; -u32 var800a48e0 = 0; -u32 var800a48e4 = 0; -u32 var800a48e8 = 0; -u32 var800a48ec = 0; -u32 var800a48f0 = 0; -u32 var800a48f4 = 0; -u32 var800a48f8 = 0; -u32 var800a48fc = 0; -u32 var800a4900 = 0; -u32 var800a4904 = 0; -u32 var800a4908 = 0; -u32 var800a490c = 0; -u32 var800a4910 = 0; -u32 var800a4914 = 0; -u32 var800a4918 = 0; +struct var800a4640 var800a4640 = {0}; u32 var800a491c = 0; u32 var800a4920 = 0; u32 var800a4924 = 0; @@ -18069,10 +17887,10 @@ u32 var800a4cd4 = 0; u32 var800a4cd8 = 0; u32 var800a4cdc = 0; u32 var800a4ce0 = 0; -u32 var800a4ce4 = 0; +s16 var800a4ce4[2] = {0}; u32 var800a4ce8 = 0; struct portalthing *g_PortalThings = NULL; -f32 var800a4cf0[4] = {0}; +struct var800a4cf0 var800a4cf0 = {0}; u32 var800a4d00 = 0; u32 var800a4d04 = 0; u32 var800a4d08 = 0; diff --git a/src/include/game/data/data_020df0.h b/src/include/game/data/data_020df0.h index 84d2fafe2..3f1eb6b6a 100644 --- a/src/include/game/data/data_020df0.h +++ b/src/include/game/data/data_020df0.h @@ -254,8 +254,8 @@ extern s32 var8007fc20; extern u32 var8007fc24; extern u32 var8007fc28; extern u32 var8007fc2c; -extern u32 var8007fc30; -extern u32 var8007fc34; +extern s32 var8007fc30; +extern s32 var8007fc34; extern u32 var8007fc38; extern u16 var8007fc3c; extern s32 g_NumPortalThings; diff --git a/src/include/game/game_157db0.h b/src/include/game/game_157db0.h index 6f44cc0c9..14dbbfdbc 100644 --- a/src/include/game/game_157db0.h +++ b/src/include/game/game_157db0.h @@ -80,13 +80,13 @@ bool portalPushValue(bool value); bool portalPopValue(void); u32 func0f1625bc(void); struct portalcmd *portalCommandExecute(struct portalcmd *cmd, bool s2); -u32 func0f162cf0(void); +void func0f162cf0(u32 arg0); u32 func0f162d9c(void); -u32 func0f1632d4(void); +void func0f1632d4(s16 arg0, s16 arg1, s32 arg2, struct screenbox *box); u32 func0f163528(void); u32 func0f163904(void); u32 func0f16397c(void); -u32 func0f163e34(void); +void func0f163e34(void); u32 func0f164150(void); u32 func0f164534(void); u32 func0f1645a8(void); diff --git a/src/include/gvars/gvars.h b/src/include/gvars/gvars.h index 6ea040252..a9ce915aa 100644 --- a/src/include/gvars/gvars.h +++ b/src/include/gvars/gvars.h @@ -716,7 +716,7 @@ extern u32 var800a45c0; extern u32 var800a45c4; extern u32 var800a45d0; extern u32 var800a4634; -extern u32 var800a4640; +extern struct var800a4640 var800a4640; extern u32 var800a491c; extern u32 var800a4920; extern u32 var800a4924; @@ -734,10 +734,10 @@ extern u32 var800a4cd0; extern u32 var800a4cd4; extern u32 var800a4cd8; extern u32 var800a4ce0; -extern u32 var800a4ce4; +extern s16 var800a4ce4[2]; extern u32 var800a4ce8; extern struct portalthing *g_PortalThings; -extern f32 var800a4cf0[4]; +extern struct var800a4cf0 var800a4cf0; extern u32 var800a4d00; extern u32 var800a6470; extern u32 var800a647c; diff --git a/src/include/lib/lib_09660.h b/src/include/lib/lib_09660.h index 3e77be47e..1401db231 100644 --- a/src/include/lib/lib_09660.h +++ b/src/include/lib/lib_09660.h @@ -54,7 +54,7 @@ u32 func0000bdc8(void); u32 func0000bdd8(void); f32 func0000be74(void); u32 func0000be84(void); -u32 func0000bee0(void); +void func0000bee0(f32 *arg0); u32 func0000bf04(void); #endif diff --git a/src/include/types.h b/src/include/types.h index 58de3b0ad..d9fa92280 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -5423,4 +5423,199 @@ struct screenbox { s16 ymax; }; +struct var800a4640 { + /*0x000*/ u32 unk000; + /*0x004*/ u32 unk004; + /*0x008*/ u32 unk008; + /*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*/ s16 unk2d0; + /*0x2d2*/ u8 unk2d2; + /*0x2d3*/ u8 unk2d3; + struct screenbox unk2d4; +}; + +struct var800a4cf0 { + u16 unk00; + u16 unk02; + u16 unk04; + f32 unk08; + f32 unk0c; +}; + #endif