Decompile htEnd

This commit is contained in:
Ryan Dwyer 2020-04-10 21:37:43 +10:00
parent 3e164c15fb
commit e6ad762487
6 changed files with 246 additions and 111 deletions

View File

@ -778,11 +778,9 @@ u32 device_tips2[] = {
/*9*/ L_MISC(376),
};
u32 var80088bb4 = 0x00000000;
u8 var80088bb4 = 0;
u8 var80088bb8 = 0;
u32 var80088bbc = 0x00160017;
u32 var80088bc0 = 0x00180019;
u32 var80088bc4 = 0xffff0000;
s16 g_HoloRooms[5] = { 0x0016, 0x0017, 0x0018, 0x0019, -1 };
u32 var80088bc8 = 0x0000599a;
u32 var80088bcc = 0x0000599b;
u32 var80088bd0 = 0x0000599c;

View File

@ -6327,107 +6327,43 @@ glabel func0f1a2220
/* f1a22d0: 00000000 */ sll $zero,$zero,0x0
);
GLOBAL_ASM(
glabel htEnd
/* f1a22d4: 27bdfda8 */ addiu $sp,$sp,-600
/* f1a22d8: 3c0e8009 */ lui $t6,%hi(var80088bbc)
/* f1a22dc: afbf002c */ sw $ra,0x2c($sp)
/* f1a22e0: afb40028 */ sw $s4,0x28($sp)
/* f1a22e4: afb30024 */ sw $s3,0x24($sp)
/* f1a22e8: afb20020 */ sw $s2,0x20($sp)
/* f1a22ec: afb1001c */ sw $s1,0x1c($sp)
/* f1a22f0: afb00018 */ sw $s0,0x18($sp)
/* f1a22f4: 25ce8bbc */ addiu $t6,$t6,%lo(var80088bbc)
/* f1a22f8: 8dc10000 */ lw $at,0x0($t6)
/* f1a22fc: 27b20044 */ addiu $s2,$sp,0x44
/* f1a2300: 3c02800b */ lui $v0,%hi(g_HoloTrainingData)
/* f1a2304: ae410000 */ sw $at,0x0($s2)
/* f1a2308: 8dd90004 */ lw $t9,0x4($t6)
/* f1a230c: 2442d1b0 */ addiu $v0,$v0,%lo(g_HoloTrainingData)
/* f1a2310: 90480000 */ lbu $t0,0x0($v0)
/* f1a2314: ae590004 */ sw $t9,0x4($s2)
/* f1a2318: 95c10008 */ lhu $at,0x8($t6)
/* f1a231c: 3c10800a */ lui $s0,%hi(g_StageSetup)
/* f1a2320: 3109ff7f */ andi $t1,$t0,0xff7f
/* f1a2324: a6410008 */ sh $at,0x8($s2)
/* f1a2328: 8e10d030 */ lw $s0,%lo(g_StageSetup)($s0)
/* f1a232c: a0490000 */ sb $t1,0x0($v0)
/* f1a2330: 00002025 */ or $a0,$zero,$zero
/* f1a2334: 0fc127cb */ jal chrSetStageFlag
/* f1a2338: 24050020 */ addiu $a1,$zero,0x20
/* f1a233c: 00002025 */ or $a0,$zero,$zero
/* f1a2340: 0fc127d2 */ jal chrUnsetStageFlag
/* f1a2344: 24050080 */ addiu $a1,$zero,0x80
/* f1a2348: 3c048009 */ lui $a0,%hi(var80088bb4)
/* f1a234c: 0fc68937 */ jal func0f1a24dc
/* f1a2350: 90848bb4 */ lbu $a0,%lo(var80088bb4)($a0)
/* f1a2354: 0fc68970 */ jal func0f1a25c0
/* f1a2358: 00402025 */ or $a0,$v0,$zero
/* f1a235c: 00002025 */ or $a0,$zero,$zero
/* f1a2360: 0fc127d2 */ jal chrUnsetStageFlag
/* f1a2364: 00402825 */ or $a1,$v0,$zero
/* f1a2368: 26040200 */ addiu $a0,$s0,0x200
/* f1a236c: 0fc4569e */ jal func0f115a78
/* f1a2370: 26050310 */ addiu $a1,$s0,0x310
/* f1a2374: 3c14800a */ lui $s4,%hi(g_Vars)
/* f1a2378: 26949fc0 */ addiu $s4,$s4,%lo(g_Vars)
/* f1a237c: 8e8a0284 */ lw $t2,0x284($s4)
/* f1a2380: 27b10050 */ addiu $s1,$sp,0x50
/* f1a2384: 02202825 */ or $a1,$s1,$zero
/* f1a2388: 02402025 */ or $a0,$s2,$zero
/* f1a238c: 24060100 */ addiu $a2,$zero,0x100
/* f1a2390: 0fc197e0 */ jal roomGetProps
/* f1a2394: ad401c08 */ sw $zero,0x1c08($t2)
/* f1a2398: 87ab0050 */ lh $t3,0x50($sp)
/* f1a239c: 02208025 */ or $s0,$s1,$zero
/* f1a23a0: 27ac0050 */ addiu $t4,$sp,0x50
/* f1a23a4: 05600017 */ bltz $t3,.L0f1a2404
/* f1a23a8: 24130008 */ addiu $s3,$zero,0x8
/* f1a23ac: 85830000 */ lh $v1,0x0($t4)
/* f1a23b0: 24120004 */ addiu $s2,$zero,0x4
/* f1a23b4: 24110048 */ addiu $s1,$zero,0x48
.L0f1a23b8:
/* f1a23b8: 00710019 */ multu $v1,$s1
/* f1a23bc: 8e980338 */ lw $t8,0x338($s4)
/* f1a23c0: 00006812 */ mflo $t5
/* f1a23c4: 01b81021 */ addu $v0,$t5,$t8
/* f1a23c8: 5040000b */ beqzl $v0,.L0f1a23f8
/* f1a23cc: 86030002 */ lh $v1,0x2($s0)
/* f1a23d0: 904f0000 */ lbu $t7,0x0($v0)
/* f1a23d4: 564f0008 */ bnel $s2,$t7,.L0f1a23f8
/* f1a23d8: 86030002 */ lh $v1,0x2($s0)
/* f1a23dc: 8c440004 */ lw $a0,0x4($v0)
/* f1a23e0: 908e0003 */ lbu $t6,0x3($a0)
/* f1a23e4: 566e0004 */ bnel $s3,$t6,.L0f1a23f8
/* f1a23e8: 86030002 */ lh $v1,0x2($s0)
/* f1a23ec: 0fc1acd3 */ jal setupParseObjectWithArg2False
/* f1a23f0: 24050001 */ addiu $a1,$zero,0x1
/* f1a23f4: 86030002 */ lh $v1,0x2($s0)
.L0f1a23f8:
/* f1a23f8: 26100002 */ addiu $s0,$s0,0x2
/* f1a23fc: 0461ffee */ bgez $v1,.L0f1a23b8
/* f1a2400: 00000000 */ sll $zero,$zero,0x0
.L0f1a2404:
/* f1a2404: 0fc2a4ab */ jal playersSetPassiveMode
/* f1a2408: 24040001 */ addiu $a0,$zero,0x1
/* f1a240c: 00002025 */ or $a0,$zero,$zero
/* f1a2410: 0fc127d2 */ jal chrUnsetStageFlag
/* f1a2414: 24050001 */ addiu $a1,$zero,0x1
/* f1a2418: 0fc2eda7 */ jal func0f0bb69c
/* f1a241c: 00000000 */ sll $zero,$zero,0x0
/* f1a2420: 3c013f80 */ lui $at,0x3f80
/* f1a2424: 44812000 */ mtc1 $at,$f4
/* f1a2428: 8e990284 */ lw $t9,0x284($s4)
/* f1a242c: e72400dc */ swc1 $f4,0xdc($t9)
/* f1a2430: 8fbf002c */ lw $ra,0x2c($sp)
/* f1a2434: 8fb40028 */ lw $s4,0x28($sp)
/* f1a2438: 8fb30024 */ lw $s3,0x24($sp)
/* f1a243c: 8fb20020 */ lw $s2,0x20($sp)
/* f1a2440: 8fb1001c */ lw $s1,0x1c($sp)
/* f1a2444: 8fb00018 */ lw $s0,0x18($sp)
/* f1a2448: 03e00008 */ jr $ra
/* f1a244c: 27bd0258 */ addiu $sp,$sp,0x258
);
void htEnd(void)
{
struct prop *prop;
s16 *propnum;
s16 propnums[256];
s16 rooms[5] = g_HoloRooms;
struct stagesetup00 *setup00 = g_StageSetup.unk00;
g_HoloTrainingData.intraining = false;
chrSetStageFlag(NULL, STAGEFLAG_CI_HOLO_ABORTING);
chrUnsetStageFlag(NULL, STAGEFLAG_CI_TRIGGER_HOLO_FAILURE);
chrUnsetStageFlag(NULL, func0f1a25c0(func0f1a24dc(var80088bb4)));
func0f115a78(&setup00->unk200, &setup00->unk310);
g_Vars.currentplayer->deadtimer = 0;
roomGetProps(rooms, propnums, 256);
propnum = &propnums[0];
// Remove dropped weapons
while (*propnum >= 0) {
prop = &g_Vars.props[*propnum];
if (prop && prop->type == PROPTYPE_WEAPON) {
struct defaultobj *obj = prop->obj;
if (obj->type == OBJTYPE_WEAPON) {
setupParseObjectWithArg2False(obj, true);
}
}
propnum++;
}
playersSetPassiveMode(true);
chrUnsetStageFlag(NULL, STAGEFLAG_CI_IN_TRAINING);
func0f0bb69c();
g_Vars.currentplayer->bondhealth = 1;
}
bool func0f1a2450(u32 value)
{

View File

@ -39,8 +39,9 @@ extern u32 g_CiDeviceStageFlags[10];
extern u32 device_descriptions[];
extern u32 device_tips1[];
extern u32 device_tips2[];
extern u8 var80088bb4;
extern u8 var80088bb8;
extern u32 var80088bbc;
extern s16 g_HoloRooms[5];
extern u32 var80088bc8;
extern u32 var80088be4;
extern u32 var80088c04;

View File

@ -94,12 +94,12 @@ void htPushEndscreen(void);
void htTick(void);
u32 func0f1a2198(void);
u32 func0f1a2220(void);
u32 htEnd(void);
void htEnd(void);
bool func0f1a2450(u32 value);
u32 func0f1a2484(void);
u32 func0f1a24dc(void);
u32 func0f1a24dc(u32 arg0);
u32 func0f1a2554(void);
u32 func0f1a25c0(void);
u32 func0f1a25c0(u32 arg0);
u32 func0f1a2624(void);
u32 func0f1a269c(void);
u32 func0f1a2714(void);

View File

@ -25,6 +25,6 @@ u32 func0f1155e0(void);
u32 func0f115784(void);
u32 func0f11594c(void);
u32 func0f115a48(void);
u32 func0f115a78(void);
void func0f115a78(u32 *arg0, u32 *arg1);
#endif

View File

@ -2326,6 +2326,206 @@ struct player {
/*0x1c58*/ f32 unk1c58;
};
struct stagesetup00 {
/*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*/ 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;
};
struct ailist {
u8 *list;
s32 id;
@ -2352,7 +2552,7 @@ struct cover {
};
struct stagesetup {
/*0x00*/ void *unk00;
/*0x00*/ struct stagesetup00 *unk00;
/*0x04*/ void *unk04;
/*0x08*/ struct coverdefinition *cover;
/*0x0c*/ s32 *intro;