Decompile ciGetStageFlagByDeviceIndex

This commit is contained in:
Ryan Dwyer 2020-04-08 18:43:49 +10:00
parent 10ebc87cbe
commit e422e8ee51
5 changed files with 34 additions and 40 deletions

View File

@ -722,16 +722,19 @@ u32 var80088b04 = 0x00000030;
u32 var80088b08 = 0x0000002f;
u32 var80088b0c = 0x00000041;
u32 var80088b10 = 0x00000031;
u32 var80088b14 = 0x00000100;
u32 var80088b18 = 0x00000200;
u32 var80088b1c = 0x00000400;
u32 var80088b20 = 0x00000800;
u32 var80088b24 = 0x00001000;
u32 var80088b28 = 0x00002000;
u32 var80088b2c = 0x00004000;
u32 var80088b30 = 0x00008000;
u32 var80088b34 = 0x00010000;
u32 var80088b38 = 0x00020000;
u32 g_CiDeviceStageFlags[] = {
STAGEFLAG_CI_TRIGGER_UPLINK,
STAGEFLAG_CI_TRIGGER_ECMMINE,
STAGEFLAG_CI_TRIGGER_CAMSPY,
STAGEFLAG_CI_TRIGGER_NIGHTVISION,
STAGEFLAG_CI_TRIGGER_DOORDECODER,
STAGEFLAG_CI_TRIGGER_RTRACKER,
STAGEFLAG_CI_TRIGGER_IR,
STAGEFLAG_CI_TRIGGER_XRAY,
STAGEFLAG_CI_TRIGGER_DISGUISE,
STAGEFLAG_CI_TRIGGER_CLOAK,
};
// 2eb5c
u32 device_descriptions[] = {

View File

@ -6023,7 +6023,7 @@ void dtBegin(void)
chrUnsetStageFlag(NULL, 0x00000004);
chrUnsetStageFlag(NULL, 0x00000008);
chrUnsetStageFlag(NULL, 0x00000010);
chrSetStageFlag(NULL, func0f1a1e38(func0f1a1d68(var80088ad8)));
chrSetStageFlag(NULL, ciGetStageFlagByDeviceIndex(func0f1a1d68(var80088ad8)));
g_Vars.currentplayer->deadtimer = 1;
playersSetPassiveMode(false);
chrSetStageFlag(NULL, 0x00000001);
@ -6051,7 +6051,7 @@ glabel func0f1a1bec
/* f1a1c30: 3c048009 */ lui $a0,%hi(var80088ad8)
/* f1a1c34: 0fc6875a */ jal func0f1a1d68
/* f1a1c38: 90848ad8 */ lbu $a0,%lo(var80088ad8)($a0)
/* f1a1c3c: 0fc6878e */ jal func0f1a1e38
/* f1a1c3c: 0fc6878e */ jal ciGetStageFlagByDeviceIndex
/* f1a1c40: 00402025 */ or $a0,$v0,$zero
/* f1a1c44: 00002025 */ or $a0,$zero,$zero
/* f1a1c48: 0fc127d2 */ jal chrUnsetStageFlag
@ -6206,32 +6206,12 @@ glabel func0f1a1de0
/* f1a1e34: 27bd0028 */ addiu $sp,$sp,0x28
);
GLOBAL_ASM(
glabel func0f1a1e38
/* f1a1e38: 27bdffd8 */ addiu $sp,$sp,-40
/* f1a1e3c: 3c0e8009 */ lui $t6,%hi(var80088b14)
/* f1a1e40: 27a30000 */ addiu $v1,$sp,0x0
/* f1a1e44: 25ce8b14 */ addiu $t6,$t6,%lo(var80088b14)
/* f1a1e48: 25d90024 */ addiu $t9,$t6,0x24
/* f1a1e4c: 00604025 */ or $t0,$v1,$zero
.L0f1a1e50:
/* f1a1e50: 8dc10000 */ lw $at,0x0($t6)
/* f1a1e54: 25ce000c */ addiu $t6,$t6,0xc
/* f1a1e58: 2508000c */ addiu $t0,$t0,0xc
/* f1a1e5c: ad01fff4 */ sw $at,-0xc($t0)
/* f1a1e60: 8dc1fff8 */ lw $at,-0x8($t6)
/* f1a1e64: ad01fff8 */ sw $at,-0x8($t0)
/* f1a1e68: 8dc1fffc */ lw $at,-0x4($t6)
/* f1a1e6c: 15d9fff8 */ bne $t6,$t9,.L0f1a1e50
/* f1a1e70: ad01fffc */ sw $at,-0x4($t0)
/* f1a1e74: 8dc10000 */ lw $at,0x0($t6)
/* f1a1e78: 00044880 */ sll $t1,$a0,0x2
/* f1a1e7c: 00695021 */ addu $t2,$v1,$t1
/* f1a1e80: ad010000 */ sw $at,0x0($t0)
/* f1a1e84: 8d420000 */ lw $v0,0x0($t2)
/* f1a1e88: 03e00008 */ jr $ra
/* f1a1e8c: 27bd0028 */ addiu $sp,$sp,0x28
);
u32 ciGetStageFlagByDeviceIndex(u32 deviceindex)
{
u32 flags[10] = g_CiDeviceStageFlags;
return flags[deviceindex];
}
GLOBAL_ASM(
glabel func0f1a1e90

View File

@ -2110,6 +2110,17 @@
#define STAGE_CREDITS 0x5c
#define STAGE_4MBMENU 0x5d
#define STAGEFLAG_CI_TRIGGER_UPLINK 0x00000100
#define STAGEFLAG_CI_TRIGGER_ECMMINE 0x00000200
#define STAGEFLAG_CI_TRIGGER_CAMSPY 0x00000400
#define STAGEFLAG_CI_TRIGGER_NIGHTVISION 0x00000800
#define STAGEFLAG_CI_TRIGGER_DOORDECODER 0x00001000
#define STAGEFLAG_CI_TRIGGER_RTRACKER 0x00002000
#define STAGEFLAG_CI_TRIGGER_IR 0x00004000
#define STAGEFLAG_CI_TRIGGER_XRAY 0x00008000
#define STAGEFLAG_CI_TRIGGER_DISGUISE 0x00010000
#define STAGEFLAG_CI_TRIGGER_CLOAK 0x00020000
#define STAGEINDEX_MAIANSOS 0x00
#define STAGEINDEX_TEST_SILO 0x01
#define STAGEINDEX_WAR 0x02

View File

@ -35,7 +35,7 @@ extern u8 var80088ad8;
extern u32 var80088adc;
extern u32 var80088ae0;
extern u32 var80088aec;
extern u32 var80088b14;
extern u32 g_CiDeviceStageFlags[10];
extern u32 device_descriptions[];
extern u32 device_tips1[];
extern u32 device_tips2[];

View File

@ -85,7 +85,7 @@ u32 func0f1a1c98(void);
u32 func0f1a1d10(void);
u32 func0f1a1d68(u32 arg0);
u32 func0f1a1de0(void);
u32 func0f1a1e38(u32 arg0);
u32 ciGetStageFlagByDeviceIndex(u32 deviceindex);
u32 func0f1a1e90(void);
u32 func0f1a1f00(void);
u32 func0f1a1f70(void);