mirror of
https://gitlab.com/ryandwyer/perfect-dark
synced 2026-08-14 12:24:01 -04:00
Decompile pakHasBitflag
This commit is contained in:
+286
-286
File diff suppressed because it is too large
Load Diff
+10
-21
@@ -16812,7 +16812,7 @@ s32 pakWriteEeprom(u8 address, u8 *buffer, u32 len)
|
||||
}
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel bitSetByIndex
|
||||
glabel pakSetBitflag
|
||||
/* f11e530: 10c0000a */ beqz $a2,.L0f11e55c
|
||||
/* f11e534: 000458c2 */ srl $t3,$a0,0x3
|
||||
/* f11e538: 000470c2 */ srl $t6,$a0,0x3
|
||||
@@ -16837,31 +16837,20 @@ glabel bitSetByIndex
|
||||
/* f11e580: 00000000 */ sll $zero,$zero,0x0
|
||||
);
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel bitGetByIndex
|
||||
/* f11e584: 000470c2 */ srl $t6,$a0,0x3
|
||||
/* f11e588: 00ae7821 */ addu $t7,$a1,$t6
|
||||
/* f11e58c: 91f80000 */ lbu $t8,0x0($t7)
|
||||
/* f11e590: 30990007 */ andi $t9,$a0,0x7
|
||||
/* f11e594: 24080001 */ addiu $t0,$zero,0x1
|
||||
/* f11e598: 03284804 */ sllv $t1,$t0,$t9
|
||||
/* f11e59c: 312a00ff */ andi $t2,$t1,0xff
|
||||
/* f11e5a0: 030a5824 */ and $t3,$t8,$t2
|
||||
/* f11e5a4: 11600003 */ beqz $t3,.L0f11e5b4
|
||||
/* f11e5a8: 00001825 */ or $v1,$zero,$zero
|
||||
/* f11e5ac: 03e00008 */ jr $ra
|
||||
/* f11e5b0: 24020001 */ addiu $v0,$zero,0x1
|
||||
.L0f11e5b4:
|
||||
/* f11e5b4: 03e00008 */ jr $ra
|
||||
/* f11e5b8: 00601025 */ or $v0,$v1,$zero
|
||||
);
|
||||
bool pakHasBitflag(u32 flagnum, u8 *bitstream)
|
||||
{
|
||||
u32 byteindex = flagnum / 8;
|
||||
u8 mask = 1 << (flagnum % 8);
|
||||
|
||||
void savefileClearAllFlags(u32 *flags)
|
||||
return bitstream[byteindex] & mask ? 1 : 0;
|
||||
}
|
||||
|
||||
void pakClearAllBitflags(u8 *flags)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i <= SAVEFILEFLAG_4E; i++) {
|
||||
bitSetByIndex(i, flags, false);
|
||||
pakSetBitflag(i, flags, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -132,9 +132,9 @@ void func0f11e3bc(s8 device);
|
||||
void pakProbeEeprom(void);
|
||||
s32 pakReadEeprom(u8 address, u8 *buffer, u32 len);
|
||||
s32 pakWriteEeprom(u8 address, u8 *buffer, u32 len);
|
||||
void bitSetByIndex(u32 value, u32 *flags, bool set);
|
||||
u32 bitGetByIndex(u32 value, u32 *flags);
|
||||
void savefileClearAllFlags(u32 *flags);
|
||||
void pakSetBitflag(u32 flagnum, u8 *bitstream, bool set);
|
||||
bool pakHasBitflag(u32 flagnum, u8 *stream);
|
||||
void pakClearAllBitflags(u8 *flags);
|
||||
void func0f11e618(char *src, char *dst, u32 len);
|
||||
s8 pakSearch(s32 arg0);
|
||||
s32 func0f11e750(s8 arg0);
|
||||
|
||||
+1
-3
@@ -4569,9 +4569,7 @@ struct savefile_solo {
|
||||
/*0x0b*/ u8 autodifficulty : 3;
|
||||
/*0x0c*/ u8 autostageindex;
|
||||
/*0x10*/ u32 totaltime;
|
||||
/*0x14*/ u32 flags;
|
||||
/*0x18*/ u32 unk18;
|
||||
/*0x1c*/ u16 unk1c;
|
||||
/*0x14*/ u8 flags[10];
|
||||
/*0x1e*/ u16 unk1e;
|
||||
/*0x20*/ u16 besttimes[NUM_SOLOSTAGES][3];
|
||||
/*0xa0*/ s32 coopcompletions[3]; // indexed by difficulty
|
||||
|
||||
Reference in New Issue
Block a user