Add PlayerCharId type

This commit is contained in:
KeybadeBlox 2026-02-19 21:16:11 -05:00
parent be4946eb98
commit aac010eb71
4 changed files with 46 additions and 18 deletions

View file

@ -45,18 +45,18 @@ unsigned GameData::getSpawnPosIndex() {
}
// Address: 0x00039CB0
void GameData::unlockCharacter(unsigned charId) {
// Status: unimplemented
void GameData::unlockCharacter(PlayerCharId charId) {
}
// Address: 0x00039CF0
void GameData::lockCharacter(unsigned charId) {
// Status: unimplemented
void GameData::lockCharacter(PlayerCharId charId) {
}
// Address: 0x00039D10
BOOL GameData::characterUnlocked(unsigned charId) {
// Status: unimplemented
BOOL GameData::characterUnlocked(PlayerCharId charId) {
return 0;
}

View file

@ -8,6 +8,34 @@ Save data and closely-related runtime data.
#include "../XDK/Win32.h"
// Enum that should probably go somewhere else
enum PlayerCharId {
PCHARID_BEAT,
PCHARID_CORN,
PCHARID_GUM,
PCHARID_COMBO,
PCHARID_RHYTH,
PCHARID_SODA,
PCHARID_YOYO,
PCHARID_NT3000,
PCHARID_GARAM,
PCHARID_BOOGIE,
PCHARID_CUBE,
PCHARID_LOVESHOCKERS,
PCHARID_POISONJAM,
PCHARID_NOISETANK,
PCHARID_IMMORTALS,
PCHARID_DOOMRIDERS,
PCHARID_RAPID99,
PCHARID_POTTS,
PCHARID_GOUJI,
PCHARID_ROBOY,
PCHARID_CLUTCH,
PCHARID_JAZZ,
PCHARID_AKUMU,
PCHARID_ZEROBEAT
};
// Data structure actually saved to disk
struct SaveData {
unsigned chapter;
@ -93,10 +121,10 @@ enum TestRunType {
// Unpacked version of TestRunScoreSaved
struct TestRunScore {
unsigned score;
unsigned character;
unsigned rank1; // Used by Jet Tech
unsigned rank2; // Used by other test runs
unsigned score;
PlayerCharId character;
unsigned rank1; // Used by Jet Tech
unsigned rank2; // Used by other test runs
};
// Numeric IDs for different timers
@ -140,9 +168,9 @@ struct GameData {
void setMissionDigits34 (unsigned val);
void setSpawnPosIndex (unsigned val);
unsigned getSpawnPosIndex ();
void unlockCharacter (unsigned charId);
void lockCharacter (unsigned charId);
BOOL characterUnlocked (unsigned charId);
void unlockCharacter (PlayerCharId charId);
void lockCharacter (PlayerCharId charId);
BOOL characterUnlocked (PlayerCharId charId);
BOOL checkFlagConditions (unsigned * conds , unsigned count);
void writeStateFlags (unsigned * writes, unsigned count);
BOOL checkFlagConditionUnpacked(FlagList flagList, unsigned index);