Merge pull request #3399 from HarbourMasters/develop-macready
macready -> dev
This commit is contained in:
@@ -204,6 +204,17 @@ u8 Inventory_DeleteEquipment(PlayState* play, s16 equipment) {
|
||||
|
||||
if (equipment == EQUIP_TYPE_TUNIC) {
|
||||
gSaveContext.equips.equipment |= EQUIP_VALUE_TUNIC_KOKIRI << (EQUIP_TYPE_TUNIC * 4);
|
||||
// non-vanilla: remove goron and zora tunics from item buttons if assignable tunics is on
|
||||
if (CVarGetInteger("gAssignableTunicsAndBoots", 0) && equipValue != EQUIP_VALUE_TUNIC_KOKIRI) {
|
||||
ItemID item = (equipValue == EQUIP_VALUE_TUNIC_GORON ? ITEM_TUNIC_GORON : ITEM_TUNIC_ZORA);
|
||||
for (int i = 1; i < ARRAY_COUNT(gSaveContext.equips.buttonItems); i++) {
|
||||
if (gSaveContext.equips.buttonItems[i] == item) {
|
||||
gSaveContext.equips.buttonItems[i] = ITEM_NONE;
|
||||
gSaveContext.equips.cButtonSlots[i - 1] = SLOT_NONE;
|
||||
}
|
||||
}
|
||||
}
|
||||
// end non-vanilla
|
||||
}
|
||||
|
||||
if (equipment == EQUIP_TYPE_SWORD) {
|
||||
|
||||
@@ -1469,6 +1469,7 @@ void Inventory_SwapAgeEquipment(void) {
|
||||
gSaveContext.equips.buttonItems[0] = ITEM_SWORD_MASTER;
|
||||
} else {
|
||||
gSaveContext.equips.buttonItems[0] = ITEM_NONE;
|
||||
Flags_SetInfTable(INFTABLE_SWORDLESS);
|
||||
}
|
||||
|
||||
if (gSaveContext.inventory.items[SLOT_NUT] != ITEM_NONE) {
|
||||
|
||||
@@ -33,6 +33,7 @@ u64 D_801614D0[0xA00];
|
||||
#endif
|
||||
|
||||
PlayState* gPlayState;
|
||||
s16 firstInit = 0;
|
||||
|
||||
s16 gEnPartnerId;
|
||||
|
||||
@@ -490,6 +491,12 @@ void Play_Init(GameState* thisx) {
|
||||
}
|
||||
}
|
||||
|
||||
// Properly initialize the frame counter so it doesn't use garbage data
|
||||
if (!firstInit) {
|
||||
play->gameplayFrames = 0;
|
||||
firstInit = 1;
|
||||
}
|
||||
|
||||
// Invalid entrance, so immediately exit the game to opening title
|
||||
if (gSaveContext.entranceIndex == -1) {
|
||||
gSaveContext.entranceIndex = 0;
|
||||
@@ -2329,8 +2336,28 @@ void Play_PerformSave(PlayState* play) {
|
||||
if (play != NULL && gSaveContext.fileNum != 0xFF) {
|
||||
Play_SaveSceneFlags(play);
|
||||
gSaveContext.savedSceneNum = play->sceneNum;
|
||||
|
||||
// Track values from temp B
|
||||
uint8_t prevB = gSaveContext.equips.buttonItems[0];
|
||||
uint8_t prevStatus = gSaveContext.buttonStatus[0];
|
||||
|
||||
// Replicate the B button restore from minigames/epona that kaleido does
|
||||
if (gSaveContext.equips.buttonItems[0] == ITEM_SLINGSHOT ||
|
||||
gSaveContext.equips.buttonItems[0] == ITEM_BOW ||
|
||||
gSaveContext.equips.buttonItems[0] == ITEM_BOMBCHU ||
|
||||
gSaveContext.equips.buttonItems[0] == ITEM_FISHING_POLE ||
|
||||
(gSaveContext.equips.buttonItems[0] == ITEM_NONE && !Flags_GetInfTable(INFTABLE_SWORDLESS))) {
|
||||
|
||||
gSaveContext.equips.buttonItems[0] = gSaveContext.buttonStatus[0];
|
||||
Interface_RandoRestoreSwordless();
|
||||
}
|
||||
|
||||
Save_SaveFile();
|
||||
|
||||
// Restore temp B values back
|
||||
gSaveContext.equips.buttonItems[0] = prevB;
|
||||
gSaveContext.buttonStatus[0] = prevStatus;
|
||||
|
||||
uint8_t triforceHuntCompleted =
|
||||
IS_RANDO &&
|
||||
gSaveContext.triforcePiecesCollected == Randomizer_GetSettingValue(RSK_TRIFORCE_HUNT_PIECES_REQUIRED) &&
|
||||
|
||||
Reference in New Issue
Block a user