mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-08-24 23:25:34 -07:00
Convert Inject Item Count for Heart Pieces.
This commit is contained in:
parent
ca5eec0c40
commit
d6d54334f0
3 changed files with 23 additions and 14 deletions
|
@ -45,13 +45,33 @@ void BuildHeartContainerMessage(uint16_t* textId, bool* loadFromMessageTable) {
|
||||||
*loadFromMessageTable = false;
|
*loadFromMessageTable = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BuildHeartPieceMessage(uint16_t* textId, bool* loadFromMessageTable) {
|
||||||
|
CustomMessage msg = CustomMessage(
|
||||||
|
"You got a %rHeart Piece%w!&You've collected %r[[heartPieceCount]]%w pieces&in total!",
|
||||||
|
"Ein %rHerzteil%w!&Du hast nun insgesamt %r[[heartPieceCount]]%w&Herzteile gesammelt!",
|
||||||
|
"Vous obtenez un %rQuart de&Coeur%w! Vous en avez collecté&%r[[heartPieceCount]]%w en tout!",
|
||||||
|
TEXTBOX_TYPE_BLUE
|
||||||
|
);
|
||||||
|
msg.Replace("[[heartPieceCount]]", std::to_string(gSaveContext.ship.stats.heartPieces + 1));
|
||||||
|
msg.AutoFormat(ITEM_HEART_PIECE);
|
||||||
|
msg.LoadIntoFont();
|
||||||
|
*loadFromMessageTable = false;
|
||||||
|
}
|
||||||
|
|
||||||
void InjectItemCounts_Register() {
|
void InjectItemCounts_Register() {
|
||||||
COND_ID_HOOK(OnOpenText, TEXT_GS_FREEZE, CVarGetInteger(CVAR_ENHANCEMENT("InjectItemCounts.GoldSkulltula"), 0), BuildSkulltulaMessage);
|
COND_ID_HOOK(OnOpenText, TEXT_GS_FREEZE, CVarGetInteger(CVAR_ENHANCEMENT("InjectItemCounts.GoldSkulltula"), 0), BuildSkulltulaMessage);
|
||||||
COND_ID_HOOK(OnOpenText, TEXT_GS_NO_FREEZE, CVarGetInteger(CVAR_ENHANCEMENT("InjectItemCounts.GoldSkulltula"), 0), BuildSkulltulaMessage);
|
COND_ID_HOOK(OnOpenText, TEXT_GS_NO_FREEZE, CVarGetInteger(CVAR_ENHANCEMENT("InjectItemCounts.GoldSkulltula"), 0), BuildSkulltulaMessage);
|
||||||
COND_ID_HOOK(OnOpenText, TEXT_HEART_CONTAINER, CVarGetInteger(CVAR_ENHANCEMENT("InjectItemCounts.HeartContainer"), 0), BuildHeartContainerMessage);
|
COND_ID_HOOK(OnOpenText, TEXT_HEART_CONTAINER, CVarGetInteger(CVAR_ENHANCEMENT("InjectItemCounts.HeartContainer"), 0), BuildHeartContainerMessage);
|
||||||
|
// Heart Pieces don't have documented text IDs after the first one, but
|
||||||
|
// there are 3 more in between TEXT_HEART_PIECE and TEXT_HEART_CONTAINER.
|
||||||
|
COND_ID_HOOK(OnOpenText, TEXT_HEART_PIECE, CVarGetInteger(CVAR_ENHANCEMENT("InjectItemCounts.HeartPiece"), 0), BuildHeartPieceMessage);
|
||||||
|
COND_ID_HOOK(OnOpenText, TEXT_HEART_PIECE + 1, CVarGetInteger(CVAR_ENHANCEMENT("InjectItemCounts.HeartPiece"), 0), BuildHeartPieceMessage);
|
||||||
|
COND_ID_HOOK(OnOpenText, TEXT_HEART_PIECE + 2, CVarGetInteger(CVAR_ENHANCEMENT("InjectItemCounts.HeartPiece"), 0), BuildHeartPieceMessage);
|
||||||
|
COND_ID_HOOK(OnOpenText, TEXT_HEART_PIECE + 3, CVarGetInteger(CVAR_ENHANCEMENT("InjectItemCounts.HeartPiece"), 0), BuildHeartPieceMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
RegisterShipInitFunc initFunc(InjectItemCounts_Register, {
|
RegisterShipInitFunc initFunc(InjectItemCounts_Register, {
|
||||||
CVAR_ENHANCEMENT("InjectItemCounts.GoldSkulltula"),
|
CVAR_ENHANCEMENT("InjectItemCounts.GoldSkulltula"),
|
||||||
CVAR_ENHANCEMENT("InjectItemCounts.HeartContainers"),
|
CVAR_ENHANCEMENT("InjectItemCounts.HeartContainer"),
|
||||||
|
CVAR_ENHANCEMENT("InjectItemCounts.HeartPiece")
|
||||||
});
|
});
|
|
@ -2141,13 +2141,8 @@ extern "C" int CustomMessage_RetrieveIfExists(PlayState* play) {
|
||||||
if ((IS_RANDO || CVarGetInteger(CVAR_ENHANCEMENT("BetterBombchuShopping"), 0)) &&
|
if ((IS_RANDO || CVarGetInteger(CVAR_ENHANCEMENT("BetterBombchuShopping"), 0)) &&
|
||||||
(textId == TEXT_BUY_BOMBCHUS_10_DESC || textId == TEXT_BUY_BOMBCHUS_10_PROMPT)) {
|
(textId == TEXT_BUY_BOMBCHUS_10_DESC || textId == TEXT_BUY_BOMBCHUS_10_PROMPT)) {
|
||||||
messageEntry = CustomMessageManager::Instance->RetrieveMessage(customMessageTableID, textId, MF_FORMATTED);
|
messageEntry = CustomMessageManager::Instance->RetrieveMessage(customMessageTableID, textId, MF_FORMATTED);
|
||||||
} else if (textId >= TEXT_HEART_PIECE && textId < TEXT_HEART_CONTAINER && CVarGetInteger(CVAR_ENHANCEMENT("InjectItemCounts.HeartPiece"), 0)) {
|
} else if (textId == TEXT_MARKET_GUARD_NIGHT && CVarGetInteger(CVAR_ENHANCEMENT("MarketSneak"), 0) && play->sceneNum == SCENE_MARKET_ENTRANCE_NIGHT) {
|
||||||
messageEntry = CustomMessageManager::Instance->RetrieveMessage(customMessageTableID, TEXT_HEART_PIECE, MF_FORMATTED);
|
messageEntry = CustomMessageManager::Instance->RetrieveMessage(customMessageTableID, TEXT_MARKET_GUARD_NIGHT, MF_FORMATTED);
|
||||||
messageEntry.Replace("[[heartPieceCount]]", std::to_string(gSaveContext.ship.stats.heartPieces + 1));
|
|
||||||
} else if (textId == TEXT_MARKET_GUARD_NIGHT && CVarGetInteger(CVAR_ENHANCEMENT("MarketSneak"), 0) &&
|
|
||||||
play->sceneNum == SCENE_MARKET_ENTRANCE_NIGHT) {
|
|
||||||
messageEntry = CustomMessageManager::Instance->RetrieveMessage(customMessageTableID, TEXT_MARKET_GUARD_NIGHT,
|
|
||||||
MF_FORMATTED);
|
|
||||||
}
|
}
|
||||||
if (textId == TEXT_FISHERMAN_LEAVE && CVarGetInteger(CVAR_ENHANCEMENT("QuitFishingAtDoor"), 0)) {
|
if (textId == TEXT_FISHERMAN_LEAVE && CVarGetInteger(CVAR_ENHANCEMENT("QuitFishingAtDoor"), 0)) {
|
||||||
messageEntry = CustomMessageManager::Instance->RetrieveMessage(customMessageTableID, TEXT_FISHERMAN_LEAVE, MF_FORMATTED);
|
messageEntry = CustomMessageManager::Instance->RetrieveMessage(customMessageTableID, TEXT_FISHERMAN_LEAVE, MF_FORMATTED);
|
||||||
|
|
|
@ -127,12 +127,6 @@ extern "C" void OTRMessage_Init() {
|
||||||
"Bombchu 10 pieces 99 Rupees\x09&&\x1B%gBuy&Don't buy%w",
|
"Bombchu 10 pieces 99 Rupees\x09&&\x1B%gBuy&Don't buy%w",
|
||||||
"\x08Krabbelmine 10 Stück 99 Rubine\x09&&\x1B%gKaufen!&Nicht kaufen!%w",
|
"\x08Krabbelmine 10 Stück 99 Rubine\x09&&\x1B%gKaufen!&Nicht kaufen!%w",
|
||||||
"\x08Missiles 10 unités 99 Rubis\x09&&\x1B%gAcheter&Ne pas acheter%w"));
|
"\x08Missiles 10 unités 99 Rubis\x09&&\x1B%gAcheter&Ne pas acheter%w"));
|
||||||
CustomMessageManager::Instance->CreateGetItemMessage(
|
|
||||||
customMessageTableID, (GetItemID)TEXT_HEART_PIECE, ITEM_HEART_PIECE,
|
|
||||||
CustomMessage("You got a %rHeart Piece%w!&You've collected %r[[heartPieceCount]]%w pieces&in total!",
|
|
||||||
"Ein %rHerzteil%w!&Du hast nun insgesamt %r[[heartPieceCount]]%w&Herzteile gesammelt!",
|
|
||||||
"Vous obtenez un %rQuart de&Coeur%w! Vous en avez collecté&%r[[heartPieceCount]]%w en tout!",
|
|
||||||
TEXTBOX_TYPE_BLUE));
|
|
||||||
CustomMessageManager::Instance->CreateMessage(
|
CustomMessageManager::Instance->CreateMessage(
|
||||||
customMessageTableID, TEXT_MARKET_GUARD_NIGHT,
|
customMessageTableID, TEXT_MARKET_GUARD_NIGHT,
|
||||||
CustomMessage("You look bored. Wanna go out for a&walk?\x1B&%gYes&No%w",
|
CustomMessage("You look bored. Wanna go out for a&walk?\x1B&%gYes&No%w",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue