summaryrefslogtreecommitdiff
path: root/soh/src/code/z_parameter.c
diff options
context:
space:
mode:
authorJosh Bodner <30329717+jbodner09@users.noreply.github.com>2022-08-04 21:15:49 -0700
committerGitHub <noreply@github.com>2022-08-05 00:15:49 -0400
commitc23457d666e3ced250e535e4c9a014d7cf63bbd0 (patch)
treece59e0b6c12ae737b8ca0eb92a7912323e88516b /soh/src/code/z_parameter.c
parent2f5f089e7f1b88ac52d5a2c8715fbe64df07eb03 (diff)
Automatically save after every scene transition (#984)
* Automatically save after every scene transition * Refactor and don't save in grottos * Don't save in cutscenes * Save after getting items as well * Fix paren
Diffstat (limited to 'soh/src/code/z_parameter.c')
-rw-r--r--soh/src/code/z_parameter.c46
1 files changed, 46 insertions, 0 deletions
diff --git a/soh/src/code/z_parameter.c b/soh/src/code/z_parameter.c
index 364e63956..24211c590 100644
--- a/soh/src/code/z_parameter.c
+++ b/soh/src/code/z_parameter.c
@@ -2188,6 +2188,52 @@ u8 Item_Give(GlobalContext* globalCtx, u8 item) {
osSyncPrintf("Item_Register(%d)=%d %d\n", slot, item, temp);
INV_CONTENT(item) = item;
+ // Autosave after getting items by default (cvars are not shown in the UI)
+ if (CVar_GetS32("gAutosave", 0)) {
+ if (CVar_GetS32("gAutosaveAllItems", 1)) {
+ Gameplay_PerformSave(globalCtx);
+ }
+ else if (CVar_GetS32("gAutosaveMajorItems", 1)) {
+ switch (item) {
+ case ITEM_STICK:
+ case ITEM_NUT:
+ case ITEM_BOMB:
+ case ITEM_BOW:
+ case ITEM_SEEDS:
+ case ITEM_FISHING_POLE:
+ case ITEM_MAGIC_SMALL:
+ case ITEM_MAGIC_LARGE:
+ case ITEM_INVALID_4:
+ case ITEM_INVALID_5:
+ case ITEM_INVALID_6:
+ case ITEM_INVALID_7:
+ case ITEM_HEART:
+ case ITEM_RUPEE_GREEN:
+ case ITEM_RUPEE_BLUE:
+ case ITEM_RUPEE_RED:
+ case ITEM_RUPEE_PURPLE:
+ case ITEM_RUPEE_GOLD:
+ case ITEM_INVALID_8:
+ case ITEM_STICKS_5:
+ case ITEM_STICKS_10:
+ case ITEM_NUTS_5:
+ case ITEM_NUTS_10:
+ case ITEM_BOMBS_5:
+ case ITEM_BOMBS_10:
+ case ITEM_BOMBS_20:
+ case ITEM_BOMBS_30:
+ case ITEM_ARROWS_SMALL:
+ case ITEM_ARROWS_MEDIUM:
+ case ITEM_ARROWS_LARGE:
+ case ITEM_SEEDS_30:
+ break;
+ default:
+ Gameplay_PerformSave(globalCtx);
+ break;
+ }
+ }
+ }
+
return temp;
}