mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2024-11-29 12:52:18 -05:00
Minor enhancement: Allow toggling on equipment screen (#813)
* Allow Equipment Toggle Allow player to toggle equipment on/off on the equipment subscreen. For tunics and boots, this will revert them to Kokiri Tunic/Kokiri Boots. For shields, it will un-equip the shield entirely. For swords, only BGS/Giant's Knife is affected, and it will revert to Master Sword. * Set up Cvar and check for MS Set up the cvar/imgui and add a check that we own the Master Sword (in case we're in the Ganon fight)
This commit is contained in:
parent
582f084973
commit
b98c8b4abb
@ -1140,6 +1140,8 @@ namespace SohImGui {
|
|||||||
Tooltip("Displays an icon and plays a sound when Stone of Agony\nshould be activated, for those without rumble");
|
Tooltip("Displays an icon and plays a sound when Stone of Agony\nshould be activated, for those without rumble");
|
||||||
EnhancementCheckbox("Assignable Tunics and Boots", "gAssignableTunicsAndBoots");
|
EnhancementCheckbox("Assignable Tunics and Boots", "gAssignableTunicsAndBoots");
|
||||||
Tooltip("Allows equipping the tunic and boots to c-buttons");
|
Tooltip("Allows equipping the tunic and boots to c-buttons");
|
||||||
|
EnhancementCheckbox("Equipment Toggle", "gEquipmentCanBeRemoved");
|
||||||
|
Tooltip("Allows equipment to be removed by toggling it off on\nthe equipment subscreen.");
|
||||||
EnhancementCheckbox("Link's Cow in Both Time Periods", "gCowOfTime");
|
EnhancementCheckbox("Link's Cow in Both Time Periods", "gCowOfTime");
|
||||||
Tooltip("Allows the Lon Lon Ranch obstacle course reward to be\nshared across time periods");
|
Tooltip("Allows the Lon Lon Ranch obstacle course reward to be\nshared across time periods");
|
||||||
EnhancementCheckbox("Enable visible guard vision", "gGuardVision");
|
EnhancementCheckbox("Enable visible guard vision", "gGuardVision");
|
||||||
|
@ -515,12 +515,49 @@ void KaleidoScope_DrawEquipment(GlobalContext* globalCtx) {
|
|||||||
(gEquipAgeReqs[pauseCtx->cursorY[PAUSE_EQUIP]][pauseCtx->cursorX[PAUSE_EQUIP]] ==
|
(gEquipAgeReqs[pauseCtx->cursorY[PAUSE_EQUIP]][pauseCtx->cursorX[PAUSE_EQUIP]] ==
|
||||||
((void)0, gSaveContext.linkAge))) {
|
((void)0, gSaveContext.linkAge))) {
|
||||||
if (CHECK_BTN_ALL(input->press.button, BTN_A)) {
|
if (CHECK_BTN_ALL(input->press.button, BTN_A)) {
|
||||||
|
|
||||||
|
// Allow Link to remove his equipment from the equipment subscreen by toggling on/off
|
||||||
|
// Shields will be un-equipped entirely, and tunics/boots will revert to Kokiri Tunic/Kokiri Boots
|
||||||
|
// Only BGS/Giant's Knife is affected, and it will revert to Master Sword.
|
||||||
|
|
||||||
|
// If we have the feature toggled on
|
||||||
|
if (CVar_GetS32("gEquipmentCanBeRemoved", 0)) {
|
||||||
|
|
||||||
|
// If we're on the "swords" section of the equipment screen AND we're on a currently-equipped BGS/Giant's Knife
|
||||||
|
if (pauseCtx->cursorY[PAUSE_EQUIP] == 0 && pauseCtx->cursorX[PAUSE_EQUIP] == 3
|
||||||
|
&& CUR_EQUIP_VALUE(EQUIP_SWORD) == 3 && CHECK_OWNED_EQUIP(0,1)){ // And we have the Master Sword
|
||||||
|
Inventory_ChangeEquipment(EQUIP_SWORD, 2); // "Unequip" it by equipping Master Sword
|
||||||
|
gSaveContext.equips.buttonItems[0] = ITEM_SWORD_MASTER;
|
||||||
|
gSaveContext.infTable[29] = 0;
|
||||||
|
goto RESUME_EQUIPMENT_SWORD; // Skip to here so we don't re-equip it
|
||||||
|
}
|
||||||
|
|
||||||
|
// If we're on the "shields" section of the equipment screen AND we're on a currently-equipped shield
|
||||||
|
if (pauseCtx->cursorY[PAUSE_EQUIP] == 1 && pauseCtx->cursorX[PAUSE_EQUIP] == CUR_EQUIP_VALUE(EQUIP_SHIELD)) {
|
||||||
|
Inventory_ChangeEquipment(EQUIP_SHIELD, 0); // Unequip it
|
||||||
|
goto RESUME_EQUIPMENT; // Skip to here so we don't re-equip it
|
||||||
|
}
|
||||||
|
|
||||||
|
// If we're on the "tunics" section of the equipment screen AND we're on a currently-equipped tunic
|
||||||
|
if (pauseCtx->cursorY[PAUSE_EQUIP] == 2 && pauseCtx->cursorX[PAUSE_EQUIP] == CUR_EQUIP_VALUE(EQUIP_TUNIC)) {
|
||||||
|
Inventory_ChangeEquipment(EQUIP_TUNIC, 1); // "Unequip" it (by equipping Kokiri Tunic)
|
||||||
|
goto RESUME_EQUIPMENT; // Skip to here so we don't re-equip it
|
||||||
|
}
|
||||||
|
|
||||||
|
// If we're on the "boots" section of the equipment screen AND we're on currently-equipped boots
|
||||||
|
if (pauseCtx->cursorY[PAUSE_EQUIP] == 3 && pauseCtx->cursorX[PAUSE_EQUIP] == CUR_EQUIP_VALUE(EQUIP_BOOTS)) {
|
||||||
|
Inventory_ChangeEquipment(EQUIP_BOOTS, 1); // "Unequip" it (by equipping Kokiri Boots)
|
||||||
|
goto RESUME_EQUIPMENT; // Skip to here so we don't re-equip it
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (CHECK_OWNED_EQUIP(pauseCtx->cursorY[PAUSE_EQUIP], pauseCtx->cursorX[PAUSE_EQUIP] - 1)) {
|
if (CHECK_OWNED_EQUIP(pauseCtx->cursorY[PAUSE_EQUIP], pauseCtx->cursorX[PAUSE_EQUIP] - 1)) {
|
||||||
Inventory_ChangeEquipment(pauseCtx->cursorY[PAUSE_EQUIP], pauseCtx->cursorX[PAUSE_EQUIP]);
|
Inventory_ChangeEquipment(pauseCtx->cursorY[PAUSE_EQUIP], pauseCtx->cursorX[PAUSE_EQUIP]);
|
||||||
} else {
|
} else {
|
||||||
goto EQUIP_FAIL;
|
goto EQUIP_FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RESUME_EQUIPMENT:
|
||||||
if (pauseCtx->cursorY[PAUSE_EQUIP] == 0) {
|
if (pauseCtx->cursorY[PAUSE_EQUIP] == 0) {
|
||||||
gSaveContext.infTable[29] = 0;
|
gSaveContext.infTable[29] = 0;
|
||||||
gSaveContext.equips.buttonItems[0] = cursorItem;
|
gSaveContext.equips.buttonItems[0] = cursorItem;
|
||||||
@ -537,7 +574,7 @@ void KaleidoScope_DrawEquipment(GlobalContext* globalCtx) {
|
|||||||
gSaveContext.equips.buttonItems[0] = ITEM_SWORD_KNIFE;
|
gSaveContext.equips.buttonItems[0] = ITEM_SWORD_KNIFE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
RESUME_EQUIPMENT_SWORD:
|
||||||
Interface_LoadItemIcon1(globalCtx, 0);
|
Interface_LoadItemIcon1(globalCtx, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user