Attempt to decompile mpIsTrackUnlocked

This commit is contained in:
Ryan Dwyer
2020-01-19 10:34:39 +10:00
parent ee444daa77
commit 9a541e5c6b
5 changed files with 68 additions and 47 deletions
+20
View File
@@ -5584,6 +5584,26 @@ glabel mpIsTrackUnlocked
/* f18c134: 00601025 */ or $v0,$v1,$zero
);
// Mismatch because the compiler optimises out the unlocked variable
//bool mpIsTrackUnlocked(s32 tracknum)
//{
// s16 stageindex = g_MpTracks[tracknum].unlockstage;
// bool unlocked = false;
// u32 i;
//
// if (stageindex < 0 || stageindex >= NUM_SOLONORMALSTAGES) {
// return true;
// }
//
// for (i = 0; i != 3; i++) {
// if (g_SoloSaveFile.besttimes[stageindex][i]) {
// return true;
// }
// }
//
// return unlocked;
//}
s32 mpGetTrackSlotIndex(s32 tracknum)
{
s32 i;
+10 -9
View File
@@ -552,15 +552,16 @@
#define MPSCENARIO_KINGOFTHEHILL 4
#define MPSCENARIO_CAPTURETHECASE 5
#define NUM_AICOMMANDS 481
#define NUM_CHALLENGES 30
#define NUM_CHEATS 42
#define NUM_FIRESLOTS 20
#define NUM_MPBOTCOMMANDS 14
#define NUM_MPTRACKS 42
#define NUM_SOLOSTAGES 21
#define NUM_STAGES 90
#define NUM_WEAPONS 94
#define NUM_AICOMMANDS 481
#define NUM_CHALLENGES 30
#define NUM_CHEATS 42
#define NUM_FIRESLOTS 20
#define NUM_MPBOTCOMMANDS 14
#define NUM_MPTRACKS 42
#define NUM_SOLONORMALSTAGES 17
#define NUM_SOLOSTAGES 21
#define NUM_STAGES 90
#define NUM_WEAPONS 94
// obj->flags
#define OBJECTFLAG0_00000001 0x00000001 // Not used in scripts
+1 -1
View File
@@ -62,7 +62,7 @@ u32 mpGetLockType(void);
u32 mpGetLockPlayerNum(void);
u32 func0f18bfd8(void);
u32 func0f18c014(void);
bool mpIsTrackUnlocked(s32 arg0);
bool mpIsTrackUnlocked(s32 tracknum);
s32 mpGetTrackSlotIndex(s32 tracknum);
s32 mpGetTrackNumAtSlotIndex(s32 slotindex);
s32 func0f18c200(void);
+1 -1
View File
@@ -2884,7 +2884,7 @@ struct mptrack {
u16 audioid : 7;
u16 duration : 9;
s16 name;
s16 unlockcategory;
s16 unlockstage;
};
struct stageoverviewentry {
+36 -36
View File
@@ -12170,7 +12170,7 @@ u32 var80087a6c = 0x0000002c;
// 2da90
struct mptrack g_MpTracks[NUM_MPTRACKS] = {
// Audio ID, duration, name, unlock category
// Audio ID, duration, name, unlock after stage
/*0x00*/ { 0x3a, 160, 0x587c, -1 },
/*0x01*/ { 0x3b, 170, 0x587d, -1 },
/*0x02*/ { 0x3d, 170, 0x587e, -1 },
@@ -12178,41 +12178,41 @@ struct mptrack g_MpTracks[NUM_MPTRACKS] = {
/*0x04*/ { 0x3f, 200, 0x5880, -1 },
/*0x05*/ { 0x40, 197, 0x5881, -1 },
/*0x06*/ { 0x0d, 120, 0x5882, -1 },
/*0x07*/ { 0x09, 120, 0x5883, 0 },
/*0x08*/ { 0x10, 120, 0x5884, 0 },
/*0x09*/ { 0x12, 120, 0x5885, 1 },
/*0x0a*/ { 0x13, 120, 0x5886, 1 },
/*0x0b*/ { 0x02, 120, 0x5887, 2 },
/*0x0c*/ { 0x11, 120, 0x5888, 2 },
/*0x0d*/ { 0x0c, 120, 0x5889, 3 },
/*0x0e*/ { 0x27, 120, 0x588a, 3 },
/*0x0f*/ { 0x0e, 120, 0x588b, 4 },
/*0x10*/ { 0x28, 120, 0x588c, 4 },
/*0x11*/ { 0x0f, 120, 0x588d, 5 },
/*0x12*/ { 0x29, 120, 0x588e, 5 },
/*0x13*/ { 0x14, 120, 0x588f, 6 },
/*0x14*/ { 0x2a, 120, 0x5890, 6 },
/*0x15*/ { 0x16, 120, 0x5891, 7 },
/*0x16*/ { 0x32, 120, 0x5892, 7 },
/*0x17*/ { 0x06, 120, 0x5893, 8 },
/*0x18*/ { 0x33, 120, 0x5894, 8 },
/*0x19*/ { 0x17, 120, 0x5895, 9 },
/*0x1a*/ { 0x34, 120, 0x5896, 9 },
/*0x1b*/ { 0x18, 120, 0x5897, 10 },
/*0x1c*/ { 0x35, 120, 0x5898, 10 },
/*0x1d*/ { 0x1d, 120, 0x5899, 11 },
/*0x1e*/ { 0x1e, 120, 0x589a, 11 },
/*0x1f*/ { 0x1c, 120, 0x589b, 12 },
/*0x20*/ { 0x36, 120, 0x589c, 12 },
/*0x21*/ { 0x07, 120, 0x589d, 13 },
/*0x22*/ { 0x37, 120, 0x589e, 13 },
/*0x23*/ { 0x04, 120, 0x589f, 14 },
/*0x24*/ { 0x24, 120, 0x58a0, 14 },
/*0x25*/ { 0x1f, 120, 0x58a1, 15 },
/*0x26*/ { 0x20, 120, 0x58a2, 15 },
/*0x27*/ { 0x21, 120, 0x58a3, 16 },
/*0x28*/ { 0x38, 120, 0x58a4, 16 },
/*0x29*/ { 0x58, 120, 0x58a5, 16 },
/*0x07*/ { 0x09, 120, 0x5883, SOLOSTAGEINDEX_DEFECTION },
/*0x08*/ { 0x10, 120, 0x5884, SOLOSTAGEINDEX_DEFECTION },
/*0x09*/ { 0x12, 120, 0x5885, SOLOSTAGEINDEX_INVESTIGATION },
/*0x0a*/ { 0x13, 120, 0x5886, SOLOSTAGEINDEX_INVESTIGATION },
/*0x0b*/ { 0x02, 120, 0x5887, SOLOSTAGEINDEX_EXTRACTION },
/*0x0c*/ { 0x11, 120, 0x5888, SOLOSTAGEINDEX_EXTRACTION },
/*0x0d*/ { 0x0c, 120, 0x5889, SOLOSTAGEINDEX_VILLA },
/*0x0e*/ { 0x27, 120, 0x588a, SOLOSTAGEINDEX_VILLA },
/*0x0f*/ { 0x0e, 120, 0x588b, SOLOSTAGEINDEX_CHICAGO },
/*0x10*/ { 0x28, 120, 0x588c, SOLOSTAGEINDEX_CHICAGO },
/*0x11*/ { 0x0f, 120, 0x588d, SOLOSTAGEINDEX_G5BUILDING },
/*0x12*/ { 0x29, 120, 0x588e, SOLOSTAGEINDEX_G5BUILDING },
/*0x13*/ { 0x14, 120, 0x588f, SOLOSTAGEINDEX_INFILTRATION },
/*0x14*/ { 0x2a, 120, 0x5890, SOLOSTAGEINDEX_INFILTRATION },
/*0x15*/ { 0x16, 120, 0x5891, SOLOSTAGEINDEX_RESCUE },
/*0x16*/ { 0x32, 120, 0x5892, SOLOSTAGEINDEX_RESCUE },
/*0x17*/ { 0x06, 120, 0x5893, SOLOSTAGEINDEX_ESCAPE },
/*0x18*/ { 0x33, 120, 0x5894, SOLOSTAGEINDEX_ESCAPE },
/*0x19*/ { 0x17, 120, 0x5895, SOLOSTAGEINDEX_AIRBASE },
/*0x1a*/ { 0x34, 120, 0x5896, SOLOSTAGEINDEX_AIRBASE },
/*0x1b*/ { 0x18, 120, 0x5897, SOLOSTAGEINDEX_AIRFORCEONE },
/*0x1c*/ { 0x35, 120, 0x5898, SOLOSTAGEINDEX_AIRFORCEONE },
/*0x1d*/ { 0x1d, 120, 0x5899, SOLOSTAGEINDEX_CRASHSITE },
/*0x1e*/ { 0x1e, 120, 0x589a, SOLOSTAGEINDEX_CRASHSITE },
/*0x1f*/ { 0x1c, 120, 0x589b, SOLOSTAGEINDEX_PELAGIC },
/*0x20*/ { 0x36, 120, 0x589c, SOLOSTAGEINDEX_PELAGIC },
/*0x21*/ { 0x07, 120, 0x589d, SOLOSTAGEINDEX_DEEPSEA },
/*0x22*/ { 0x37, 120, 0x589e, SOLOSTAGEINDEX_DEEPSEA },
/*0x23*/ { 0x04, 120, 0x589f, SOLOSTAGEINDEX_DEFENSE },
/*0x24*/ { 0x24, 120, 0x58a0, SOLOSTAGEINDEX_DEFENSE },
/*0x25*/ { 0x1f, 120, 0x58a1, SOLOSTAGEINDEX_ATTACKSHIP },
/*0x26*/ { 0x20, 120, 0x58a2, SOLOSTAGEINDEX_ATTACKSHIP },
/*0x27*/ { 0x21, 120, 0x58a3, SOLOSTAGEINDEX_SKEDARRUINS },
/*0x28*/ { 0x38, 120, 0x58a4, SOLOSTAGEINDEX_SKEDARRUINS },
/*0x29*/ { 0x58, 120, 0x58a5, SOLOSTAGEINDEX_SKEDARRUINS },
};
// 2db8c