diff --git a/source-code/data/plugins/playerdata.ini b/source-code/data/plugins/playerdata.ini index 3d7f5b1..8334fff 100644 --- a/source-code/data/plugins/playerdata.ini +++ b/source-code/data/plugins/playerdata.ini @@ -11,6 +11,8 @@ level_name = 忘れないでね私の声を # IDs defined in rom/gm_plate_tbl.farc/gm_plate_id.bin level_plate_id = 0 +# Shows an effect on the level plate (-1=off, 0~2=different settings) +level_plate_effect =-1 # IDs same as gam_skin%03d skin_equip = 0 @@ -24,6 +26,9 @@ slide_se_equip = -1 # IDs defined in rom/gm_chainslide_se_tbl.farc/gm_chainslide_se_id.bin chainslide_se_equip = -1 +# IDs defined in rom/gm_slidertouch_se_tbl.farc/gm_slidertouch_se_id.bin(?) +slidertouch_se_equip =-1 + # Enable button/slider sounds act_toggle = true @@ -32,6 +37,8 @@ act_toggle = true border_great = true # Excellent border_excellent = true +# Rival score +border_rival =false # Allows module selection (WARNING: It may cause lag in the main menu and other places) use_card = true diff --git a/source-code/source/plugins/TLAC/Components/CustomPlayerData.h b/source-code/source/plugins/TLAC/Components/CustomPlayerData.h index cd5efbf..2e479f9 100644 --- a/source-code/source/plugins/TLAC/Components/CustomPlayerData.h +++ b/source-code/source/plugins/TLAC/Components/CustomPlayerData.h @@ -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; diff --git a/source-code/source/plugins/TLAC/Components/PlayerData.h b/source-code/source/plugins/TLAC/Components/PlayerData.h index 34d8051..cf9289b 100644 --- a/source-code/source/plugins/TLAC/Components/PlayerData.h +++ b/source-code/source/plugins/TLAC/Components/PlayerData.h @@ -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; diff --git a/source-code/source/plugins/TLAC/Components/PlayerDataManager.cpp b/source-code/source/plugins/TLAC/Components/PlayerDataManager.cpp index 0ed96e8..1626c58 100644 --- a/source-code/source/plugins/TLAC/Components/PlayerDataManager.cpp +++ b/source-code/source/plugins/TLAC/Components/PlayerDataManager.cpp @@ -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 diff --git a/source-code/source/plugins/TLAC/Components/ScoreSaver.h b/source-code/source/plugins/TLAC/Components/ScoreSaver.h index 6cf23b5..8a7dc89 100644 --- a/source-code/source/plugins/TLAC/Components/ScoreSaver.h +++ b/source-code/source/plugins/TLAC/Components/ScoreSaver.h @@ -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;