playerdata: add level_plate_effect, slidertouch_se_equip, border_rival

This commit is contained in:
somewhatlurker
2019-09-23 23:08:48 +10:00
parent 268859a213
commit 74370d6a05
5 changed files with 20 additions and 5 deletions
@@ -8,12 +8,15 @@ namespace TLAC::Components
std::string *PlayerName;
std::string* LevelName;
int LevelPlateId;
int LevelPlateEffect;
int SkinEquip;
int BtnSeEquip;
int SlideSeEquip;
int ChainslideSeEquip;
int SlidertouchSeEquip;
bool ShowGreatClearBorder;
bool ShowExcellentClearBorder;
bool ShowRivalClearBorder;
bool UseCard;
bool GameModifierOptions;
bool ActionSE;
@@ -78,7 +78,7 @@ struct PlayerData
int32_t field_11C;
int32_t field_120;
int32_t level_plate_id;
int32_t field_128;
int32_t level_plate_effect;
int32_t vocaloid_point;
int32_t hp_vol;
int32_t act_toggle;
@@ -229,12 +229,15 @@ namespace TLAC::Components
config.TryGetValue("level_name", &customPlayerData->LevelName);
customPlayerData->LevelPlateId = config.GetIntegerValue("level_plate_id");
customPlayerData->LevelPlateEffect = config.GetIntegerValue("level_plate_effect");
customPlayerData->SkinEquip = config.GetIntegerValue("skin_equip");
customPlayerData->BtnSeEquip = config.GetIntegerValue("btn_se_equip");
customPlayerData->SlideSeEquip = config.GetIntegerValue("slide_se_equip");
customPlayerData->ChainslideSeEquip = config.GetIntegerValue("chainslide_se_equip");
customPlayerData->SlidertouchSeEquip = config.GetIntegerValue("slidertouch_se_equip");
customPlayerData->ShowExcellentClearBorder = config.GetBooleanValue("border_excellent");
customPlayerData->ShowGreatClearBorder = config.GetBooleanValue("border_great");
customPlayerData->ShowRivalClearBorder = config.GetBooleanValue("border_rival");
customPlayerData->UseCard = config.GetBooleanValue("use_card");
customPlayerData->GameModifierOptions = config.GetBooleanValue("gamemode_options");
customPlayerData->ActionSE = config.GetBooleanValue("act_toggle");
@@ -310,14 +313,16 @@ namespace TLAC::Components
};
setIfNotEqual(&playerData->level_plate_id, customPlayerData->LevelPlateId, 0);
setIfNotEqual(&playerData->level_plate_effect, customPlayerData->LevelPlateEffect, 0);
setIfNotEqual(&playerData->skin_equip, customPlayerData->SkinEquip, 0);
setIfNotEqual(&playerData->btn_se_equip, customPlayerData->BtnSeEquip, -1);
setIfNotEqual(&playerData->slide_se_equip, customPlayerData->SlideSeEquip, -1);
setIfNotEqual(&playerData->chainslide_se_equip, customPlayerData->ChainslideSeEquip, -1);
setIfNotEqual(&playerData->slidertouch_se_equip, customPlayerData->SlidertouchSeEquip, -1);
setIfNotEqual(&playerData->act_toggle, customPlayerData->ActionSE, 1);
// Display clear borders on the progress bar
*(byte*)(PLAYER_DATA_ADDRESS + 0xD94) = (customPlayerData->ShowExcellentClearBorder << 1) | (customPlayerData->ShowGreatClearBorder);
*(byte*)(PLAYER_DATA_ADDRESS + 0xD94) = (customPlayerData->ShowRivalClearBorder << 2) | (customPlayerData->ShowExcellentClearBorder << 1) | (customPlayerData->ShowGreatClearBorder);
playerData->use_card = customPlayerData->UseCard; // required to allow for module selection
@@ -22,15 +22,15 @@ namespace TLAC::Components
{
int pvNum;
int exDifficulty;
byte padding08[0xa4]; // ???
byte padding08[0xa4]; // ??? -- seems to be 6*6 ints (0x90 bytes) for modules + 5 ints (0x14 bytes) for skin and button se
int clearRank; // +0xac: clear rank
int score; // +0xb0: score
int percent; // +0xb4: best percent
byte paddingB8[0x14]; // ???
byte paddingB8[0x14]; // ??? -- challenge_kind, chain_challenge_flag, chain_challenge_num, chain_challenge_max, challenge_ng_flag
int rival_clearRank; // +0xcc: rival clear rank?
int rival_score; // +0xd0: rival score
int rival_percent; // +0xd4: rival percent
byte paddingD8[0x9]; // ???
byte paddingD8[0x9]; // ??? -- interim_ranking int?
byte optionA; // +0xe1: gamemode options
byte optionB;
byte optionC;