From 6653f8ffe4b23bae7a7c00159077e8f820c1efeb Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Thu, 9 Jan 2020 21:43:08 +1000 Subject: [PATCH] Decompile scenarioHtmCallback10 --- src/game/game_176d70.c | 282 ++++++++------------------------- src/game/game_187770.c | 2 +- src/gvars/gvars.c | 55 ------- src/include/game/game_000920.h | 2 +- src/include/game/game_111600.h | 2 +- src/include/game/game_176d70.h | 2 +- src/include/gvars/gvars.h | 3 - src/include/types.h | 78 ++++++++- 8 files changed, 146 insertions(+), 280 deletions(-) diff --git a/src/game/game_176d70.c b/src/game/game_176d70.c index a51f10e9e..6a9f077b5 100644 --- a/src/game/game_176d70.c +++ b/src/game/game_176d70.c @@ -10204,9 +10204,9 @@ GLOBAL_ASM( glabel func0f180078 /* f180078: 3c01800b */ lui $at,0x800b /* f18007c: 3c03800b */ lui $v1,%hi(g_ScenarioData) -/* f180080: 3c04800b */ lui $a0,%hi(var800ac188) +/* f180080: 3c04800b */ lui $a0,0x800b /* f180084: a420c128 */ sh $zero,-0x3ed8($at) -/* f180088: 2484c188 */ addiu $a0,$a0,%lo(var800ac188) +/* f180088: 2484c188 */ addiu $a0,$a0,-15992 /* f18008c: 2463c110 */ addiu $v1,$v1,%lo(g_ScenarioData) /* f180090: 2402ffff */ addiu $v0,$zero,-1 .L0f180094: @@ -12996,7 +12996,7 @@ glabel scenarioKohCallback38 void scenarioHtmInit(void) { - var800ac24c = 0; + g_ScenarioData.htm.uplink = NULL; } s32 scenarioHtmCallback08(void) @@ -13052,8 +13052,8 @@ glabel func0f182bf4 /* f182c38: 1420fffc */ bnez $at,.L0f182c2c /* f182c3c: ac600104 */ sw $zero,0x104($v1) /* f182c40: 3c03800b */ lui $v1,%hi(g_ScenarioData) -/* f182c44: 3c02800b */ lui $v0,%hi(var800ac188) -/* f182c48: 2442c188 */ addiu $v0,$v0,%lo(var800ac188) +/* f182c44: 3c02800b */ lui $v0,0x800b +/* f182c48: 2442c188 */ addiu $v0,$v0,-15992 /* f182c4c: 2463c110 */ addiu $v1,$v1,%lo(g_ScenarioData) .L0f182c50: /* f182c50: 24630002 */ addiu $v1,$v1,0x2 @@ -13364,218 +13364,66 @@ glabel scenarioHtmReset /* f1830a0: 27bd0048 */ addiu $sp,$sp,0x48 ); -GLOBAL_ASM( -glabel scenarioHtmCallback10 -/* f1830a4: 27bdffd0 */ addiu $sp,$sp,-48 -/* f1830a8: afb10018 */ sw $s1,0x18($sp) -/* f1830ac: 3c048008 */ lui $a0,%hi(var800869ec) -/* f1830b0: 248469ec */ addiu $a0,$a0,%lo(var800869ec) -/* f1830b4: 3c11800a */ lui $s1,%hi(g_Vars) -/* f1830b8: 8c820000 */ lw $v0,0x0($a0) -/* f1830bc: 26319fc0 */ addiu $s1,$s1,%lo(g_Vars) -/* f1830c0: 8e2e028c */ lw $t6,0x28c($s1) -/* f1830c4: afbf001c */ sw $ra,0x1c($sp) -/* f1830c8: afb00014 */ sw $s0,0x14($sp) -/* f1830cc: 10400011 */ beqz $v0,.L0f183114 -/* f1830d0: afae0020 */ sw $t6,0x20($sp) -/* f1830d4: 8c430014 */ lw $v1,0x14($v0) -/* f1830d8: 3c07800b */ lui $a3,%hi(g_ScenarioData) -/* f1830dc: 24e7c110 */ addiu $a3,$a3,%lo(g_ScenarioData) -/* f1830e0: 5060000d */ beqzl $v1,.L0f183118 -/* f1830e4: 8e22033c */ lw $v0,0x33c($s1) -/* f1830e8: 8ce8013c */ lw $t0,0x13c($a3) -/* f1830ec: 11000005 */ beqz $t0,.L0f183104 -/* f1830f0: 00000000 */ sll $zero,$zero,0x0 -/* f1830f4: 910f0000 */ lbu $t7,0x0($t0) -/* f1830f8: 24050004 */ addiu $a1,$zero,0x4 -/* f1830fc: 50af0004 */ beql $a1,$t7,.L0f183110 -/* f183100: 241804b0 */ addiu $t8,$zero,0x4b0 -.L0f183104: -/* f183104: 10000003 */ beqz $zero,.L0f183114 -/* f183108: ac800000 */ sw $zero,0x0($a0) -/* f18310c: 241804b0 */ addiu $t8,$zero,0x4b0 -.L0f183110: -/* f183110: a4780002 */ sh $t8,0x2($v1) -.L0f183114: -/* f183114: 8e22033c */ lw $v0,0x33c($s1) -.L0f183118: -/* f183118: 3c07800b */ lui $a3,%hi(g_ScenarioData) -/* f18311c: 24e7c110 */ addiu $a3,$a3,%lo(g_ScenarioData) -/* f183120: 24050004 */ addiu $a1,$zero,0x4 -/* f183124: 1040000d */ beqz $v0,.L0f18315c -/* f183128: ace0013c */ sw $zero,0x13c($a3) -/* f18312c: 24040036 */ addiu $a0,$zero,0x36 -/* f183130: 90590000 */ lbu $t9,0x0($v0) -.L0f183134: -/* f183134: 54b90007 */ bnel $a1,$t9,.L0f183154 -/* f183138: 8c420020 */ lw $v0,0x20($v0) -/* f18313c: 8c430004 */ lw $v1,0x4($v0) -/* f183140: 9069005c */ lbu $t1,0x5c($v1) -/* f183144: 54890003 */ bnel $a0,$t1,.L0f183154 -/* f183148: 8c420020 */ lw $v0,0x20($v0) -/* f18314c: ace2013c */ sw $v0,0x13c($a3) -/* f183150: 8c420020 */ lw $v0,0x20($v0) -.L0f183154: -/* f183154: 5440fff7 */ bnezl $v0,.L0f183134 -/* f183158: 90590000 */ lbu $t9,0x0($v0) -.L0f18315c: -/* f18315c: 8cea013c */ lw $t2,0x13c($a3) -/* f183160: 15400046 */ bnez $t2,.L0f18327c -/* f183164: 00000000 */ sll $zero,$zero,0x0 -/* f183168: 8e2b006c */ lw $t3,0x6c($s1) -/* f18316c: 00008025 */ or $s0,$zero,$zero -/* f183170: 00003025 */ or $a2,$zero,$zero -/* f183174: 11600003 */ beqz $t3,.L0f183184 -/* f183178: 00002825 */ or $a1,$zero,$zero -/* f18317c: 10000001 */ beqz $zero,.L0f183184 -/* f183180: 24060001 */ addiu $a2,$zero,0x1 -.L0f183184: -/* f183184: 8e2c0068 */ lw $t4,0x68($s1) -/* f183188: 00001825 */ or $v1,$zero,$zero -/* f18318c: 00001025 */ or $v0,$zero,$zero -/* f183190: 11800003 */ beqz $t4,.L0f1831a0 -/* f183194: 00000000 */ sll $zero,$zero,0x0 -/* f183198: 10000001 */ beqz $zero,.L0f1831a0 -/* f18319c: 24050001 */ addiu $a1,$zero,0x1 -.L0f1831a0: -/* f1831a0: 8e2d0064 */ lw $t5,0x64($s1) -/* f1831a4: 11a00003 */ beqz $t5,.L0f1831b4 -/* f1831a8: 00000000 */ sll $zero,$zero,0x0 -/* f1831ac: 10000001 */ beqz $zero,.L0f1831b4 -/* f1831b0: 24030001 */ addiu $v1,$zero,0x1 -.L0f1831b4: -/* f1831b4: 8e2e0070 */ lw $t6,0x70($s1) -/* f1831b8: 11c00003 */ beqz $t6,.L0f1831c8 -/* f1831bc: 00000000 */ sll $zero,$zero,0x0 -/* f1831c0: 10000001 */ beqz $zero,.L0f1831c8 -/* f1831c4: 24020001 */ addiu $v0,$zero,0x1 -.L0f1831c8: -/* f1831c8: 00437821 */ addu $t7,$v0,$v1 -/* f1831cc: 01e5c021 */ addu $t8,$t7,$a1 -/* f1831d0: 0306c821 */ addu $t9,$t8,$a2 -/* f1831d4: 1b200029 */ blez $t9,.L0f18327c -/* f1831d8: 00000000 */ sll $zero,$zero,0x0 -.L0f1831dc: -/* f1831dc: 0fc4a24b */ jal setCurrentPlayerNum -/* f1831e0: 02002025 */ or $a0,$s0,$zero -/* f1831e4: 0fc44a21 */ jal func0f112884 -/* f1831e8: 00000000 */ sll $zero,$zero,0x0 -/* f1831ec: 10400006 */ beqz $v0,.L0f183208 -/* f1831f0: 00003025 */ or $a2,$zero,$zero -/* f1831f4: 8e290284 */ lw $t1,0x284($s1) -/* f1831f8: 3c01800b */ lui $at,0x800b -/* f1831fc: 8d2a00bc */ lw $t2,0xbc($t1) -/* f183200: 1000001e */ beqz $zero,.L0f18327c -/* f183204: ac2ac24c */ sw $t2,-0x3db4($at) -.L0f183208: -/* f183208: 8e2b006c */ lw $t3,0x6c($s1) -/* f18320c: 26100001 */ addiu $s0,$s0,0x1 -/* f183210: 00002825 */ or $a1,$zero,$zero -/* f183214: 11600003 */ beqz $t3,.L0f183224 -/* f183218: 00001825 */ or $v1,$zero,$zero -/* f18321c: 10000001 */ beqz $zero,.L0f183224 -/* f183220: 24060001 */ addiu $a2,$zero,0x1 -.L0f183224: -/* f183224: 8e2c0068 */ lw $t4,0x68($s1) -/* f183228: 00001025 */ or $v0,$zero,$zero -/* f18322c: 11800003 */ beqz $t4,.L0f18323c -/* f183230: 00000000 */ sll $zero,$zero,0x0 -/* f183234: 10000001 */ beqz $zero,.L0f18323c -/* f183238: 24050001 */ addiu $a1,$zero,0x1 -.L0f18323c: -/* f18323c: 8e2d0064 */ lw $t5,0x64($s1) -/* f183240: 11a00003 */ beqz $t5,.L0f183250 -/* f183244: 00000000 */ sll $zero,$zero,0x0 -/* f183248: 10000001 */ beqz $zero,.L0f183250 -/* f18324c: 24030001 */ addiu $v1,$zero,0x1 -.L0f183250: -/* f183250: 8e2e0070 */ lw $t6,0x70($s1) -/* f183254: 11c00003 */ beqz $t6,.L0f183264 -/* f183258: 00000000 */ sll $zero,$zero,0x0 -/* f18325c: 10000001 */ beqz $zero,.L0f183264 -/* f183260: 24020001 */ addiu $v0,$zero,0x1 -.L0f183264: -/* f183264: 00437821 */ addu $t7,$v0,$v1 -/* f183268: 01e5c021 */ addu $t8,$t7,$a1 -/* f18326c: 0306c821 */ addu $t9,$t8,$a2 -/* f183270: 0219082a */ slt $at,$s0,$t9 -/* f183274: 1420ffd9 */ bnez $at,.L0f1831dc -/* f183278: 00000000 */ sll $zero,$zero,0x0 -.L0f18327c: -/* f18327c: 0fc4a24b */ jal setCurrentPlayerNum -/* f183280: 8fa40020 */ lw $a0,0x20($sp) -/* f183284: 3c08800b */ lui $t0,0x800b -/* f183288: 8d08c24c */ lw $t0,-0x3db4($t0) -/* f18328c: 15000033 */ bnez $t0,.L0f18335c -/* f183290: 00000000 */ sll $zero,$zero,0x0 -/* f183294: 8e29006c */ lw $t1,0x6c($s1) -/* f183298: 3c04800b */ lui $a0,0x800b -/* f18329c: 00003025 */ or $a2,$zero,$zero -/* f1832a0: 11200003 */ beqz $t1,.L0f1832b0 -/* f1832a4: 00002825 */ or $a1,$zero,$zero -/* f1832a8: 10000001 */ beqz $zero,.L0f1832b0 -/* f1832ac: 24060001 */ addiu $a2,$zero,0x1 -.L0f1832b0: -/* f1832b0: 8e2a0068 */ lw $t2,0x68($s1) -/* f1832b4: 00001825 */ or $v1,$zero,$zero -/* f1832b8: 00001025 */ or $v0,$zero,$zero -/* f1832bc: 11400003 */ beqz $t2,.L0f1832cc -/* f1832c0: 3c18800b */ lui $t8,%hi(g_MpPlayerChrs) -/* f1832c4: 10000001 */ beqz $zero,.L0f1832cc -/* f1832c8: 24050001 */ addiu $a1,$zero,0x1 -.L0f1832cc: -/* f1832cc: 8e2b0064 */ lw $t3,0x64($s1) -/* f1832d0: 2718c4d0 */ addiu $t8,$t8,%lo(g_MpPlayerChrs) -/* f1832d4: 11600003 */ beqz $t3,.L0f1832e4 -/* f1832d8: 00000000 */ sll $zero,$zero,0x0 -/* f1832dc: 10000001 */ beqz $zero,.L0f1832e4 -/* f1832e0: 24030001 */ addiu $v1,$zero,0x1 -.L0f1832e4: -/* f1832e4: 8e2c0070 */ lw $t4,0x70($s1) -/* f1832e8: 11800003 */ beqz $t4,.L0f1832f8 -/* f1832ec: 00000000 */ sll $zero,$zero,0x0 -/* f1832f0: 10000001 */ beqz $zero,.L0f1832f8 -/* f1832f4: 24020001 */ addiu $v0,$zero,0x1 -.L0f1832f8: -/* f1832f8: 8c84c530 */ lw $a0,-0x3ad0($a0) -/* f1832fc: 00436821 */ addu $t5,$v0,$v1 -/* f183300: 01a57021 */ addu $t6,$t5,$a1 -/* f183304: 01c63821 */ addu $a3,$t6,$a2 -/* f183308: 00e4082a */ slt $at,$a3,$a0 -/* f18330c: 10200013 */ beqz $at,.L0f18335c -/* f183310: 00e08025 */ or $s0,$a3,$zero -/* f183314: 00077880 */ sll $t7,$a3,0x2 -/* f183318: 01f81021 */ addu $v0,$t7,$t8 -.L0f18331c: -/* f18331c: 8c430000 */ lw $v1,0x0($v0) -/* f183320: 26100001 */ addiu $s0,$s0,0x1 -/* f183324: 0204082a */ slt $at,$s0,$a0 -/* f183328: 8c7902d4 */ lw $t9,0x2d4($v1) -/* f18332c: 8f29004c */ lw $t1,0x4c($t9) -/* f183330: 00095940 */ sll $t3,$t1,0x5 -/* f183334: 05610007 */ bgez $t3,.L0f183354 -/* f183338: 00000000 */ sll $zero,$zero,0x0 -/* f18333c: 8c6c001c */ lw $t4,0x1c($v1) -/* f183340: 3c01800b */ lui $at,0x800b -/* f183344: 3c08800b */ lui $t0,0x800b -/* f183348: ac2cc24c */ sw $t4,-0x3db4($at) -/* f18334c: 10000003 */ beqz $zero,.L0f18335c -/* f183350: 8d08c24c */ lw $t0,-0x3db4($t0) -.L0f183354: -/* f183354: 1420fff1 */ bnez $at,.L0f18331c -/* f183358: 24420004 */ addiu $v0,$v0,0x4 -.L0f18335c: -/* f18335c: 55000004 */ bnezl $t0,.L0f183370 -/* f183360: 8fbf001c */ lw $ra,0x1c($sp) -/* f183364: 0fc60b26 */ jal func0f182c98 -/* f183368: 00000000 */ sll $zero,$zero,0x0 -/* f18336c: 8fbf001c */ lw $ra,0x1c($sp) -.L0f183370: -/* f183370: 8fb00014 */ lw $s0,0x14($sp) -/* f183374: 8fb10018 */ lw $s1,0x18($sp) -/* f183378: 03e00008 */ jr $ra -/* f18337c: 27bd0030 */ addiu $sp,$sp,0x30 -); +void scenarioHtmCallback10(void) +{ + u8 stack[8]; + s32 i; + u32 prevplayernum = g_Vars.currentplayernum; + struct prop *prop; + + if (var800869ec && var800869ec->prop) { + if (g_ScenarioData.htm.uplink == NULL || g_ScenarioData.htm.uplink->type != PROPTYPE_WEAPON) { + var800869ec = 0; + } else { + var800869ec->prop->timetoregen = 1200; + } + } + + g_ScenarioData.htm.uplink = NULL; + + // Check if uplink is on the ground + prop = g_Vars.unk00033c; + + while (prop) { + if (prop->type == PROPTYPE_WEAPON) { + struct weaponobj *weapon = prop->weapon; + + if (weapon->weapon_id == WEAPON_DATAUPLINK) { + g_ScenarioData.htm.uplink = prop; + } + } + + prop = prop->next; + } + + // Check if a player is holding it + if (g_ScenarioData.htm.uplink == NULL) { + for (i = 0; i < PLAYERCOUNT(); i++) { + setCurrentPlayerNum(i); + + if (func0f112884()) { + g_ScenarioData.htm.uplink = g_Vars.currentplayer->prop; + break; + } + } + } + + setCurrentPlayerNum(prevplayernum); + + // Check if a simulant is holding it + if (g_ScenarioData.htm.uplink == NULL) { + for (i = PLAYERCOUNT(); i < g_MpNumPlayers; i++) { + if (g_MpPlayerChrs[i]->unk2d4->unk4c_05) { + g_ScenarioData.htm.uplink = g_MpPlayerChrs[i]->prop; + break; + } + } + } + + if (g_ScenarioData.htm.uplink == NULL) { + func0f182c98(); + } +} GLOBAL_ASM( glabel scenarioHtmCallback14 diff --git a/src/game/game_187770.c b/src/game/game_187770.c index fd4322657..96a34efe1 100644 --- a/src/game/game_187770.c +++ b/src/game/game_187770.c @@ -15146,7 +15146,7 @@ s32 func0f194724(struct chrdata *self, s32 arg1, bool includeself) s32 func0f194834(struct chrdata *chr) { struct var800ac500 *thing = var800ac500[mpPlayerGetIndex(chr)]; - struct prop *prop = var800ac168[thing->propindex]; + struct prop *prop = g_ScenarioData.htm.props[thing->propindex]; return prop && (prop->type == PROPTYPE_CHR || prop->type == PROPTYPE_PLAYER); } diff --git a/src/gvars/gvars.c b/src/gvars/gvars.c index 78884b0b0..59125532f 100644 --- a/src/gvars/gvars.c +++ b/src/gvars/gvars.c @@ -30371,61 +30371,6 @@ u32 var800ac104 = 0; u32 var800ac108 = 0; u32 var800ac10c = 0; struct scenariodata g_ScenarioData = {0}; -struct prop *var800ac168[] = {NULL, NULL, NULL, NULL}; -u32 var800ac178 = 0; -u32 var800ac17c = 0; -u32 var800ac180 = 0; -u32 var800ac184 = 0; -u32 var800ac188 = 0; -u32 var800ac18c = 0; -u32 var800ac190 = 0; -u32 var800ac194 = 0; -u32 var800ac198 = 0; -u32 var800ac19c = 0; -u32 var800ac1a0 = 0; -u32 var800ac1a4 = 0; -u32 var800ac1a8 = 0; -u32 var800ac1ac = 0; -u32 var800ac1b0 = 0; -u32 var800ac1b4 = 0; -u32 var800ac1b8 = 0; -u32 var800ac1bc = 0; -u32 var800ac1c0 = 0; -u32 var800ac1c4 = 0; -u32 var800ac1c8 = 0; -u32 var800ac1cc = 0; -u32 var800ac1d0 = 0; -u32 var800ac1d4 = 0; -u32 var800ac1d8 = 0; -u32 var800ac1dc = 0; -u32 var800ac1e0 = 0; -u32 var800ac1e4 = 0; -u32 var800ac1e8 = 0; -u32 var800ac1ec = 0; -u32 var800ac1f0 = 0; -u32 var800ac1f4 = 0; -u32 var800ac1f8 = 0; -u32 var800ac1fc = 0; -u32 var800ac200 = 0; -u32 var800ac204 = 0; -u32 var800ac208 = 0; -u32 var800ac20c = 0; -u32 var800ac210 = 0; -u32 var800ac214 = 0; -u32 var800ac218 = 0; -u32 var800ac21c = 0; -u32 var800ac220 = 0; -u32 var800ac224 = 0; -u32 var800ac228 = 0; -u32 var800ac22c = 0; -u32 var800ac230 = 0; -u32 var800ac234 = 0; -u32 var800ac238 = 0; -u32 var800ac23c = 0; -u32 var800ac240 = 0; -u32 var800ac244 = 0; -u32 var800ac248 = 0; -u32 var800ac24c = 0; u32 var800ac250 = 0; u32 var800ac254 = 0; u32 var800ac258 = 0; diff --git a/src/include/game/game_000920.h b/src/include/game/game_000920.h index bb54a08f6..88cda1f52 100644 --- a/src/include/game/game_000920.h +++ b/src/include/game/game_000920.h @@ -32,7 +32,7 @@ u32 func0f00259c(void); u32 func0f002844(void); u32 func0f002a98(void); void func0f002b58(s32 roomthing, bool enable); -void func0f002c28(s16 room_id, s32 operation, s32 arg2, s32 arg3, s32 arg4); +void func0f002c28(s32 room_id, s32 operation, s32 arg2, s32 arg3, s32 arg4); u32 func0f002ef8(void); u32 func0f0033b0(void); u32 func0f003444(void); diff --git a/src/include/game/game_111600.h b/src/include/game/game_111600.h index 34fd6a5be..595b15cce 100644 --- a/src/include/game/game_111600.h +++ b/src/include/game/game_111600.h @@ -29,7 +29,7 @@ u32 func0f1122ec(void); u32 func0f11253c(void); u32 func0f112790(void); u32 func0f112844(void); -u32 func0f112884(void); +bool func0f112884(void); u32 currentPlayerHasProp(struct prop *prop); u32 func0f112950(void); u32 func0f112a58(void); diff --git a/src/include/game/game_176d70.h b/src/include/game/game_176d70.h index 95f8aa49a..dbe71e5f2 100644 --- a/src/include/game/game_176d70.h +++ b/src/include/game/game_176d70.h @@ -122,7 +122,7 @@ void scenarioHtmInit(void); s32 scenarioHtmCallback08(void); u32 func0f182ba4(void); u32 func0f182bf4(void); -u32 func0f182c98(void); +void func0f182c98(void); void scenarioHtmReset(void); void scenarioHtmCallback10(void); void scenarioHtmCallback14(struct chrdata *chr); diff --git a/src/include/gvars/gvars.h b/src/include/gvars/gvars.h index 951f03a8f..724197c5b 100644 --- a/src/include/gvars/gvars.h +++ b/src/include/gvars/gvars.h @@ -825,9 +825,6 @@ extern u32 var800ac0e8; extern u32 var800ac0f8; extern u32 var800ac108; extern struct scenariodata g_ScenarioData; -extern struct prop *var800ac168[]; -extern u32 var800ac188; -extern u32 var800ac24c; extern u32 var800ac258; extern u32 var800ac2c0; extern u32 var800ac328; diff --git a/src/include/types.h b/src/include/types.h index 34f08012e..11e914f11 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -4378,7 +4378,83 @@ struct scenariodata_htb { }; struct scenariodata_htm { - u32 unk00; + /*0x800ac110*/ u32 unk000; + /*0x800ac114*/ u32 unk004; + /*0x800ac118*/ u32 unk008; + /*0x800ac11c*/ u32 unk00c; + /*0x800ac120*/ u32 unk010; + /*0x800ac124*/ u32 unk014; + /*0x800ac128*/ u32 unk018; + /*0x800ac12c*/ u32 unk01c; + /*0x800ac130*/ u32 unk020; + /*0x800ac134*/ u32 unk024; + /*0x800ac138*/ u32 unk028; + /*0x800ac13c*/ u32 unk02c; + /*0x800ac140*/ u32 unk030; + /*0x800ac144*/ u32 unk034; + /*0x800ac148*/ u32 unk038; + /*0x800ac14c*/ u32 unk03c; + /*0x800ac150*/ u32 unk040; + /*0x800ac154*/ u32 unk044; + /*0x800ac158*/ u32 unk048; + /*0x800ac15c*/ u32 unk04c; + /*0x800ac160*/ u32 unk050; + /*0x800ac164*/ u32 unk054; + /*0x800ac168*/ struct prop *props[4]; + /*0x800ac178*/ u32 unk068; + /*0x800ac17c*/ u32 unk06c; + /*0x800ac180*/ u32 unk070; + /*0x800ac184*/ u32 unk074; + /*0x800ac188*/ u32 unk078; + /*0x800ac18c*/ u32 unk07c; + /*0x800ac190*/ u32 unk080; + /*0x800ac194*/ u32 unk084; + /*0x800ac198*/ u32 unk088; + /*0x800ac19c*/ u32 unk08c; + /*0x800ac1a0*/ u32 unk090; + /*0x800ac1a4*/ u32 unk094; + /*0x800ac1a8*/ u32 unk098; + /*0x800ac1ac*/ u32 unk09c; + /*0x800ac1b0*/ u32 unk0a0; + /*0x800ac1b4*/ u32 unk0a4; + /*0x800ac1b8*/ u32 unk0a8; + /*0x800ac1bc*/ u32 unk0ac; + /*0x800ac1c0*/ u32 unk0b0; + /*0x800ac1c4*/ u32 unk0b4; + /*0x800ac1c8*/ u32 unk0b8; + /*0x800ac1cc*/ u32 unk0bc; + /*0x800ac1d0*/ u32 unk0c0; + /*0x800ac1d4*/ u32 unk0c4; + /*0x800ac1d8*/ u32 unk0c8; + /*0x800ac1dc*/ u32 unk0cc; + /*0x800ac1e0*/ u32 unk0d0; + /*0x800ac1e4*/ u32 unk0d4; + /*0x800ac1e8*/ u32 unk0d8; + /*0x800ac1ec*/ u32 unk0dc; + /*0x800ac1f0*/ u32 unk0e0; + /*0x800ac1f4*/ u32 unk0e4; + /*0x800ac1f8*/ u32 unk0e8; + /*0x800ac1fc*/ u32 unk0ec; + /*0x800ac200*/ u32 unk0f0; + /*0x800ac204*/ u32 unk0f4; + /*0x800ac208*/ u32 unk0f8; + /*0x800ac20c*/ u32 unk0fc; + /*0x800ac210*/ u32 unk100; + /*0x800ac214*/ u32 unk104; + /*0x800ac218*/ u32 unk108; + /*0x800ac21c*/ u32 unk10c; + /*0x800ac220*/ u32 unk110; + /*0x800ac224*/ u32 unk114; + /*0x800ac228*/ u32 unk118; + /*0x800ac22c*/ u32 unk11c; + /*0x800ac230*/ u32 unk120; + /*0x800ac234*/ u32 unk124; + /*0x800ac238*/ u32 unk128; + /*0x800ac23c*/ u32 unk12c; + /*0x800ac240*/ u32 unk130; + /*0x800ac244*/ u32 unk134; + /*0x800ac248*/ u32 unk138; + /*0x800ac24c*/ struct prop *uplink; }; struct scenariodata_pac {