VB & fix build

This commit is contained in:
Pepe20129 2024-05-08 18:44:38 +02:00
parent 91d39cae72
commit cda1d1e144
5 changed files with 101 additions and 60 deletions

View File

@ -220,6 +220,28 @@ typedef enum {
VB_GERUDOS_BE_FRIENDLY,
// Vanilla condition: switch
VB_GTG_GATE_BE_OPEN,
// Opt: *s16 (item id)
/* Vanilla condition:
In one case:
```
true
```
In the other case:
```
(i == ITEM_STICK) ||
(i == ITEM_NUT) ||
(i == ITEM_BOMB) ||
(i == ITEM_BOW) ||
(
(i >= ITEM_BOW_ARROW_FIRE) &&
(i <= ITEM_BOW_ARROW_LIGHT)
) ||
(i == ITEM_SLINGSHOT) ||
(i == ITEM_BOMBCHU) ||
(i == ITEM_BEAN)
```
*/
VB_DRAW_AMMO_COUNT,
/*** Play Cutscenes ***/

View File

@ -2058,53 +2058,53 @@ void StaticData::HintTable_Init_Item() {
CustomMessage("a fish-puller", /*german*/"", /*french*/"(canne à pêche)")});
// /*spanish*/(caña de pescar)
hintTable[RHT_QUIVER_INF] = HintText(CustomMessage("", /*german*/"!!!", /*french*/"!!!"),
{
CustomMessage("", /*german*/"!!!", /*french*/"!!!"),
}, {
CustomMessage("", /*german*/"!!!", /*french*/"!!!")});
hintTextTable[RHT_QUIVER_INF] = HintText(CustomMessage("", /*german*/"!!!", /*french*/"!!!"),
{
CustomMessage("", /*german*/"!!!", /*french*/"!!!"),
}, {
CustomMessage("", /*german*/"!!!", /*french*/"!!!")});
hintTable[RHT_BOMB_BAG_INF] = HintText(CustomMessage("", /*german*/"!!!", /*french*/"!!!"),
{
CustomMessage("", /*german*/"!!!", /*french*/"!!!"),
}, {
CustomMessage("", /*german*/"!!!", /*french*/"!!!")});
hintTextTable[RHT_BOMB_BAG_INF] = HintText(CustomMessage("", /*german*/"!!!", /*french*/"!!!"),
{
CustomMessage("", /*german*/"!!!", /*french*/"!!!"),
}, {
CustomMessage("", /*german*/"!!!", /*french*/"!!!")});
hintTable[RHT_BULLET_BAG_INF] = HintText(CustomMessage("", /*german*/"!!!", /*french*/"!!!"),
{
CustomMessage("", /*german*/"!!!", /*french*/"!!!"),
}, {
CustomMessage("", /*german*/"!!!", /*french*/"!!!")});
hintTextTable[RHT_BULLET_BAG_INF] = HintText(CustomMessage("", /*german*/"!!!", /*french*/"!!!"),
{
CustomMessage("", /*german*/"!!!", /*french*/"!!!"),
}, {
CustomMessage("", /*german*/"!!!", /*french*/"!!!")});
hintTable[RHT_STICK_UPGRADE_INF] = HintText(CustomMessage("", /*german*/"!!!", /*french*/"!!!"),
{
CustomMessage("", /*german*/"!!!", /*french*/"!!!"),
}, {
CustomMessage("", /*german*/"!!!", /*french*/"!!!")});
hintTextTable[RHT_STICK_UPGRADE_INF] = HintText(CustomMessage("", /*german*/"!!!", /*french*/"!!!"),
{
CustomMessage("", /*german*/"!!!", /*french*/"!!!"),
}, {
CustomMessage("", /*german*/"!!!", /*french*/"!!!")});
hintTable[RHT_NUT_UPGRADE_INF] = HintText(CustomMessage("", /*german*/"!!!", /*french*/"!!!"),
{
CustomMessage("", /*german*/"!!!", /*french*/"!!!"),
}, {
CustomMessage("", /*german*/"!!!", /*french*/"!!!")});
hintTextTable[RHT_NUT_UPGRADE_INF] = HintText(CustomMessage("", /*german*/"!!!", /*french*/"!!!"),
{
CustomMessage("", /*german*/"!!!", /*french*/"!!!"),
}, {
CustomMessage("", /*german*/"!!!", /*french*/"!!!")});
hintTable[RHT_MAGIC_INF] = HintText(CustomMessage("", /*german*/"!!!", /*french*/"!!!"),
{
CustomMessage("", /*german*/"!!!", /*french*/"!!!"),
}, {
CustomMessage("", /*german*/"!!!", /*french*/"!!!")});
hintTextTable[RHT_MAGIC_INF] = HintText(CustomMessage("", /*german*/"!!!", /*french*/"!!!"),
{
CustomMessage("", /*german*/"!!!", /*french*/"!!!"),
}, {
CustomMessage("", /*german*/"!!!", /*french*/"!!!")});
hintTable[RHT_BOMBCHU_INF] = HintText(CustomMessage("", /*german*/"!!!", /*french*/"!!!"),
{
CustomMessage("", /*german*/"!!!", /*french*/"!!!"),
}, {
CustomMessage("", /*german*/"!!!", /*french*/"!!!")});
hintTextTable[RHT_BOMBCHU_INF] = HintText(CustomMessage("", /*german*/"!!!", /*french*/"!!!"),
{
CustomMessage("", /*german*/"!!!", /*french*/"!!!"),
}, {
CustomMessage("", /*german*/"!!!", /*french*/"!!!")});
hintTable[RHT_WALLET_INF] = HintText(CustomMessage("", /*german*/"!!!", /*french*/"!!!"),
{
CustomMessage("", /*german*/"!!!", /*french*/"!!!"),
}, {
CustomMessage("", /*german*/"!!!", /*french*/"!!!")});
hintTextTable[RHT_WALLET_INF] = HintText(CustomMessage("", /*german*/"!!!", /*french*/"!!!"),
{
CustomMessage("", /*german*/"!!!", /*french*/"!!!"),
}, {
CustomMessage("", /*german*/"!!!", /*french*/"!!!")});
hintTextTable[RHT_EPONA] = HintText(CustomMessage("Epona", /*german*/"", /*french*/"Epona"),
// /*spanish*/a Epona

View File

@ -1065,6 +1065,24 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void
}
break;
}
case VB_DRAW_AMMO_COUNT: {
s16 item = *static_cast<s16*>(optionalArg);
// don't draw ammo count if you have the infinite upgrade
if (
(item == ITEM_NUT && Flags_GetRandomizerInf(RAND_INF_HAS_INFINITE_NUT_UPGRADE)) ||
(item == ITEM_STICK && Flags_GetRandomizerInf(RAND_INF_HAS_INFINITE_STICK_UPGRADE)) ||
(item == ITEM_BOMB && Flags_GetRandomizerInf(RAND_INF_HAS_INFINITE_BOMB_BAG)) ||
(
(item == ITEM_BOW || item == ITEM_BOW_ARROW_FIRE || item == ITEM_BOW_ARROW_ICE || item == ITEM_BOW_ARROW_LIGHT) &&
Flags_GetRandomizerInf(RAND_INF_HAS_INFINITE_QUIVER)
) ||
(item == ITEM_SLINGSHOT && Flags_GetRandomizerInf(RAND_INF_HAS_INFINITE_BULLET_BAG)) ||
(item == ITEM_BOMBCHU && Flags_GetRandomizerInf(RAND_INF_HAS_INFINITE_BOMBCHUS))
) {
*should = false;
}
break;
}
case VB_TRADE_TIMER_ODD_MUSHROOM:
case VB_TRADE_TIMER_EYEDROPS:
case VB_TRADE_TIMER_FROG:

View File

@ -4965,14 +4965,23 @@ void Interface_DrawAmmoCount(PlayState* play, s16 button, s16 alpha) {
i = gSaveContext.equips.buttonItems[button];
if (
(i == ITEM_STICK && !Flags_GetRandomizerInf(RAND_INF_HAS_INFINITE_STICK_UPGRADE)) ||
(i == ITEM_NUT && !Flags_GetRandomizerInf(RAND_INF_HAS_INFINITE_NUT_UPGRADE)) ||
(i == ITEM_BOMB && !Flags_GetRandomizerInf(RAND_INF_HAS_INFINITE_BOMB_BAG)) ||
(i == ITEM_BOW && !Flags_GetRandomizerInf(RAND_INF_HAS_INFINITE_QUIVER)) ||
((i >= ITEM_BOW_ARROW_FIRE) && (i <= ITEM_BOW_ARROW_LIGHT) && !Flags_GetRandomizerInf(RAND_INF_HAS_INFINITE_QUIVER)) ||
(i == ITEM_SLINGSHOT && !Flags_GetRandomizerInf(RAND_INF_HAS_INFINITE_BULLET_BAG)) ||
(i == ITEM_BOMBCHU && !Flags_GetRandomizerInf(RAND_INF_HAS_INFINITE_BOMBCHUS)) ||
(i == ITEM_BEAN)
GameInteractor_Should(
VB_DRAW_AMMO_COUNT,
(
(i == ITEM_STICK) ||
(i == ITEM_NUT) ||
(i == ITEM_BOMB) ||
(i == ITEM_BOW) ||
(
(i >= ITEM_BOW_ARROW_FIRE) &&
(i <= ITEM_BOW_ARROW_LIGHT)
) ||
(i == ITEM_SLINGSHOT) ||
(i == ITEM_BOMBCHU) ||
(i == ITEM_BEAN)
),
&i
)
) {
if ((i >= ITEM_BOW_ARROW_FIRE) && (i <= ITEM_BOW_ARROW_LIGHT)) {
i = ITEM_BOW;

View File

@ -6,6 +6,9 @@
#include "soh/Enhancements/enhancementTypes.h"
#include "soh/Enhancements/cosmetics/cosmeticsTypes.h"
#include "soh/Enhancements/game-interactor/GameInteractor.h"
#include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h"
u8 gAmmoItems[] = {
ITEM_STICK, ITEM_NUT, ITEM_BOMB, ITEM_BOW, ITEM_NONE, ITEM_NONE, ITEM_SLINGSHOT, ITEM_NONE,
ITEM_BOMBCHU, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_BEAN, ITEM_NONE,
@ -37,18 +40,7 @@ s8 ItemInSlotUsesAmmo(s16 slot) {
}
void KaleidoScope_DrawAmmoCount(PauseContext* pauseCtx, GraphicsContext* gfxCtx, s16 item, int slot) {
// don't draw ammo count if you have the infinite upgrade
if (
(item == ITEM_NUT && Flags_GetRandomizerInf(RAND_INF_HAS_INFINITE_NUT_UPGRADE)) ||
(item == ITEM_STICK && Flags_GetRandomizerInf(RAND_INF_HAS_INFINITE_STICK_UPGRADE)) ||
(item == ITEM_BOMB && Flags_GetRandomizerInf(RAND_INF_HAS_INFINITE_BOMB_BAG)) ||
(
(item == ITEM_BOW || item == ITEM_BOW_ARROW_FIRE || item == ITEM_BOW_ARROW_ICE || item == ITEM_BOW_ARROW_LIGHT) &&
Flags_GetRandomizerInf(RAND_INF_HAS_INFINITE_QUIVER)
) ||
(item == ITEM_SLINGSHOT && Flags_GetRandomizerInf(RAND_INF_HAS_INFINITE_BULLET_BAG)) ||
(item == ITEM_BOMBCHU && Flags_GetRandomizerInf(RAND_INF_HAS_INFINITE_BOMBCHUS))
) {
if (!GameInteractor_Should(VB_DRAW_AMMO_COUNT, true, &item)) {
return;
}