rooftop guy refactored + rando generation working

This commit is contained in:
MelonSpeedruns 2022-06-01 19:26:01 -04:00
commit f60df39a68
7 changed files with 1100 additions and 1131 deletions

View file

@ -65,7 +65,7 @@ typedef struct {
typedef struct {
RandomizerCheck check;
RandomizerGet get;
} ItemLocation;
} ItemLocationRando;
typedef struct {
/* 0x0000 */ s32 entranceIndex; // start of `save` substruct, originally called "memory"
@ -180,7 +180,7 @@ typedef struct {
/* 0x1420 */ s16 worldMapArea;
/* 0x1422 */ s16 sunsSongState; // controls the effects of suns song
/* 0x1424 */ s16 healthAccumulator;
ItemLocation itemLocations[700];
ItemLocationRando itemLocations[499];
Sprite seedIcons[5];
} SaveContext; // size = 0x1428

View file

@ -54,9 +54,11 @@ typedef enum {
RC_LW_OCARINA_MEMORY_GAME,
RC_LW_TARGET_IN_WOODS,
RC_LW_NEAR_SHORTCUTS_GROTTO_CHEST,
RC_LW_TRADE_COJIRO,
RC_DEKU_THEATER_SKULL_MASK,
RC_DEKU_THEATER_MASK_OF_TRUTH,
RC_LW_SKULL_KID,
RC_LW_TRADE_ODD_POULTICE,
RC_LW_DEKU_SCRUB_NEAR_BRIDGE,
RC_LW_DEKU_SCRUB_NEAR_DEKU_THEATER_LEFT,
RC_LW_DEKU_SCRUB_NEAR_DEKU_THEATER_RIGHT,
@ -85,6 +87,11 @@ typedef enum {
RC_MARKET_LOST_DOG,
RC_MARKET_TREASURE_CHEST_GAME_REWARD,
RC_MARKET_10_BIG_POES,
RC_MARKET_TREASURE_CHEST_GAME_ITEM_1,
RC_MARKET_TREASURE_CHEST_GAME_ITEM_2,
RC_MARKET_TREASURE_CHEST_GAME_ITEM_3,
RC_MARKET_TREASURE_CHEST_GAME_ITEM_4,
RC_MARKET_TREASURE_CHEST_GAME_ITEM_5,
RC_MARKET_GS_GUARD_HOUSE,
RC_MARKET_BAZAAR_ITEM_1,
RC_MARKET_BAZAAR_ITEM_2,
@ -137,6 +144,8 @@ typedef enum {
RC_KAK_OPEN_GROTTO_CHEST,
RC_KAK_REDEAD_GROTTO_CHEST,
RC_KAK_SHOOTING_GALLERY_REWARD,
RC_KAK_TRADE_ODD_MUSHROOM,
RC_KAK_TRADE_POCKET_CUCCO,
RC_KAK_10_GOLD_SKULLTULA_REWARD,
RC_KAK_20_GOLD_SKULLTULA_REWARD,
RC_KAK_30_GOLD_SKULLTULA_REWARD,
@ -177,6 +186,9 @@ typedef enum {
RC_DMT_FREESTANDING_POH,
RC_DMT_CHEST,
RC_DMT_STORMS_GROTTO_CHEST,
RC_DMT_TRADE_BROKEN_SWORD,
RC_DMT_TRADE_EYEDROPS,
RC_DMT_TRADE_CLAIM_CHECK,
RC_DMT_GREAT_FAIRY_REWARD,
RC_DMT_BIGGORON,
RC_DMT_COW_GROTTO_COW,
@ -235,6 +247,7 @@ typedef enum {
RC_ZD_DIVING_MINIGAME,
RC_ZD_CHEST,
RC_ZD_KING_ZORA_THAWED,
RC_ZD_TRADE_PRESCRIPTION,
RC_ZD_GS_FROZEN_WATERFALL,
RC_ZD_SHOP_ITEM_1,
RC_ZD_SHOP_ITEM_2,
@ -254,6 +267,7 @@ typedef enum {
RC_LH_CHILD_FISHING,
RC_LH_ADULT_FISHING,
RC_LH_LAB_DIVE,
RC_LH_TRADE_FROG,
RC_LH_FREESTANDING_POH,
RC_LH_SUN,
RC_LH_DEKU_SCRUB_GROTTO_LEFT,
@ -267,6 +281,7 @@ typedef enum {
RC_GV_CRATE_FREESTANDING_POH,
RC_GV_WATERFALL_FREESTANDING_POH,
RC_GV_CHEST,
RC_GV_TRADE_SAW,
RC_GV_DEKU_SCRUB_GROTTO_FRONT,
RC_GV_DEKU_SCRUB_GROTTO_REAR,
RC_GV_COW,
@ -277,6 +292,11 @@ typedef enum {
RC_GF_CHEST,
RC_GF_HBA_1000_POINTS,
RC_GF_HBA_1500_POINTS,
RC_GF_GERUDO_TOKEN,
RC_GF_NORTH_F1_CARPENTER,
RC_GF_NORTH_F2_CARPENTER,
RC_GF_SOUTH_F1_CARPENTER,
RC_GF_SOUTH_F2_CARPENTER,
RC_GF_GS_TOP_FLOOR,
RC_GF_GS_ARCHERY_RANGE,
RC_HIDEOUT_JAIL_GUARD_1_TORCH,
@ -697,38 +717,10 @@ typedef enum {
// based on https://github.com/TestRunnerSRL/OoT-Randomizer/blob/e337d7f603b91a6bacb618fb32cc7fd70ed9ffca/ItemList.py
typedef enum {
RG_UNKNOWN_GET = 0,
RG_BOMBS_5,
RG_DEKU_NUTS_5,
RG_BOMBCHUS_10,
RG_BOOMERANG,
RG_DEKU_STICK_1,
RG_LENS_OF_TRUTH,
RG_MEGATON_HAMMER,
RG_COJIRO,
RG_BOTTLE,
RG_BOTTLE_WITH_MILK,
RG_RUTOS_LETTER,
RG_DELIVER_LETTER,
RG_SELL_BIG_POE,
RG_MAGIC_BEAN,
RG_SKULL_MASK,
RG_SPOOKY_MASK,
RG_KEATON_MASK,
RG_BUNNY_HOOD,
RG_MASK_OF_TRUTH,
RG_POCKET_EGG,
RG_POCKET_CUCCO,
RG_ODD_MUSHROOM,
RG_ODD_POTION,
RG_POACHERS_SAW,
RG_BROKEN_SWORD,
RG_PRESCRIPTION,
RG_EYEBALL_FROG,
RG_EYEDROPS,
RG_CLAIM_CHECK,
RG_NONE,
RG_KOKIRI_SWORD,
RG_GIANTS_KNIFE,
RG_BIGGORON_SWORD,
RG_DEKU_SHIELD,
RG_HYLIAN_SHIELD,
RG_MIRROR_SHIELD,
@ -736,57 +728,48 @@ typedef enum {
RG_ZORA_TUNIC,
RG_IRON_BOOTS,
RG_HOVER_BOOTS,
RG_STONE_OF_AGONY,
RG_GERUDO_MEMBERSHIP_CARD,
RG_HEART_CONTAINER,
RG_PIECE_OF_HEART,
RG_BOSS_KEY,
RG_COMPASS,
RG_MAP,
RG_SMALL_KEY,
RG_WEIRD_EGG,
RG_RECOVERY_HEART,
RG_ARROWS_5,
RG_ARROWS_10,
RG_ARROWS_30,
RG_RUPEE_1,
RG_RUPEES_5,
RG_RUPEES_20,
RG_MILK,
RG_GORON_MASK,
RG_ZORA_MASK,
RG_GERUDO_MASK,
RG_RUPEES_50,
RG_RUPEES_200,
RG_BIGGORON_SWORD,
RG_BOOMERANG,
RG_LENS_OF_TRUTH,
RG_MEGATON_HAMMER,
RG_SHARD_OF_AGONY,
RG_DINS_FIRE,
RG_FARORES_WIND,
RG_NAYRUS_LOVE,
RG_FIRE_ARROWS,
RG_ICE_ARROWS,
RG_LIGHT_ARROWS,
RG_GERUDO_TOKEN,
RG_MAGIC_BEAN,
RG_MAGIC_BEAN_PACK,
RG_DOUBLE_DEFENSE,
RG_WEIRD_EGG,
RG_ZELDAS_LETTER,
RG_POCKET_EGG,
RG_COJIRO,
RG_ODD_MUSHROOM,
RG_ODD_POULTICE,
RG_POACHERS_SAW,
RG_BROKEN_SWORD,
RG_PRESCRIPTION,
RG_EYEBALL_FROG,
RG_EYEDROPS,
RG_CLAIM_CHECK,
RG_GOLD_SKULLTULA_TOKEN,
RG_DINS_FIRE,
RG_NAYRUS_LOVE,
RG_FARORES_WIND,
RG_DEKU_NUTS_10,
RG_BOMBS_10,
RG_BOMBS_20,
RG_DEKU_SEEDS_30,
RG_BOMBCHUS_5,
RG_BOMBCHUS_20,
RG_RUPEE_TREASURE_CHEST_GAME,
RG_PIECE_OF_HEART_TREASURE_CHEST_GAME,
RG_ICE_TRAP,
RG_PROGRESSIVE_HOOKSHOT,
RG_PROGRESSIVE_STRENGTH_UPGRADE,
RG_BOMB_BAG,
RG_BOW,
RG_SLINGSHOT,
RG_PROGRESSIVE_STRENGTH,
RG_PROGRESSIVE_BOMB_BAG,
RG_PROGRESSIVE_BOW,
RG_PROGRESSIVE_SLINGSHOT,
RG_PROGRESSIVE_WALLET,
RG_PROGRESSIVE_SCALE,
RG_DEKU_NUT_CAPACITY,
RG_DEKU_STICK_CAPACITY,
RG_BOMBCHUS,
RG_MAGIC_METER,
RG_OCARINA,
RG_PROGRESSIVE_NUT_UPGRADE,
RG_PROGRESSIVE_STICK_UPGRADE,
RG_PROGRESSIVE_BOMBCHUS,
RG_PROGRESSIVE_MAGIC_METER,
RG_PROGRESSIVE_OCARINA,
RG_PROGRESSIVE_GORONSWORD,
RG_EMPTY_BOTTLE,
RG_BOTTLE_WITH_MILK,
RG_BOTTLE_WITH_RED_POTION,
RG_BOTTLE_WITH_GREEN_POTION,
RG_BOTTLE_WITH_BLUE_POTION,
@ -794,101 +777,113 @@ typedef enum {
RG_BOTTLE_WITH_FISH,
RG_BOTTLE_WITH_BLUE_FIRE,
RG_BOTTLE_WITH_BUGS,
RG_BOTTLE_WITH_BIG_POE,
RG_BOTTLE_WITH_POE,
RG_BOSS_KEY_FOREST_TEMPLE,
RG_BOSS_KEY_FIRE_TEMPLE,
RG_BOSS_KEY_WATER_TEMPLE,
RG_BOSS_KEY_SPIRIT_TEMPLE,
RG_BOSS_KEY_SHADOW_TEMPLE,
RG_BOSS_KEY_GANONS_CASTLE,
RG_COMPASS_DEKU_TREE,
RG_COMPASS_DODONGOS_CAVERN,
RG_COMPASS_JABU_JABUS_BELLY,
RG_COMPASS_FOREST_TEMPLE,
RG_COMPASS_FIRE_TEMPLE,
RG_COMPASS_WATER_TEMPLE,
RG_COMPASS_SPIRIT_TEMPLE,
RG_COMPASS_SHADOW_TEMPLE,
RG_COMPASS_BOTTOM_OF_THE_WELL,
RG_COMPASS_ICE_CAVERN,
RG_MAP_DEKU_TREE,
RG_MAP_DODONGOS_CAVERN,
RG_MAP_JABU_JABUS_BELLY,
RG_MAP_FOREST_TEMPLE,
RG_MAP_FIRE_TEMPLE,
RG_MAP_WATER_TEMPLE,
RG_MAP_SPIRIT_TEMPLE,
RG_MAP_SHADOW_TEMPLE,
RG_MAP_BOTTOM_OF_THE_WELL,
RG_MAP_ICE_CAVERN,
RG_SMALL_KEY_FOREST_TEMPLE,
RG_SMALL_KEY_FIRE_TEMPLE,
RG_SMALL_KEY_WATER_TEMPLE,
RG_SMALL_KEY_SPIRIT_TEMPLE,
RG_SMALL_KEY_SHADOW_TEMPLE,
RG_SMALL_KEY_BOTTOM_OF_THE_WELL,
RG_SMALL_KEY_GERUDO_TRAINING_GROUND,
RG_SMALL_KEY_THIEVES_HIDEOUT,
RG_SMALL_KEY_GANONS_CASTLE,
RG_DOUBLE_DEFENSE,
RG_MAGIC_BEAN_PACK,
RG_TRIFORCE_PIECE,
RG_ZELDAS_LETTER,
RG_TIME_TRAVEL,
RG_SCARECROW_SONG,
RG_TRIFORCE,
RG_SMALL_KEY_RING_FOREST_TEMPLE,
RG_SMALL_KEY_RING_FIRE_TEMPLE,
RG_SMALL_KEY_RING_WATER_TEMPLE,
RG_SMALL_KEY_RING_SPIRIT_TEMPLE,
RG_SMALL_KEY_RING_SHADOW_TEMPLE,
RG_SMALL_KEY_RING_BOTTOM_OF_THE_WELL,
RG_SMALL_KEY_RING_GERUDO_TRAINING_GROUND,
RG_SMALL_KEY_RING_THIEVES_HIDEOUT,
RG_SMALL_KEY_RING_GANONS_CASTLE,
RG_WATER_TEMPLE_CLEAR,
RG_FOREST_TRIAL_CLEAR,
RG_FIRE_TRIAL_CLEAR,
RG_WATER_TRIAL_CLEAR,
RG_SHADOW_TRIAL_CLEAR,
RG_SPIRIT_TRIAL_CLEAR,
RG_LIGHT_TRIAL_CLEAR,
RG_DEKU_STICK_DROP,
RG_DEKU_NUT_DROP,
RG_BLUE_FIRE,
RG_FAIRY,
RG_FISH,
RG_BUGS,
RG_BIG_POE,
RG_BOMBCHU_DROP,
RG_ARROWS_CONSUMABLE_REFILL,
RG_BOMBS_CONSUMABLE_REFILL,
RG_DEKU_SEEDS_CONSUMABLE_REFILL,
RG_DEKU_STICKS_CONSUMABLE_REFILL,
RG_DEKU_NUTS_CONSUMABLE_REFILL,
RG_RUPEES_CONSUMABLE_REFILL,
RG_MINUET_OF_FOREST,
RG_BOLERO_OF_FIRE,
RG_SERENADE_OF_WATER,
RG_REQUIEM_OF_SPIRIT,
RG_NOCTURNE_OF_SHADOW,
RG_PRELUDE_OF_LIGHT,
RG_RUTOS_LETTER,
RG_BOTTLE_WITH_BIG_POE,
RG_ZELDAS_LULLABY,
RG_EPONAS_SONG,
RG_SARIAS_SONG,
RG_SUNS_SONG,
RG_SONG_OF_TIME,
RG_SONG_OF_STORMS,
RG_MINUET_OF_FOREST,
RG_BOLERO_OF_FIRE,
RG_SERENADE_OF_WATER,
RG_REQUIEM_OF_SPIRIT,
RG_NOCTURNE_OF_SHADOW,
RG_PRELUDE_OF_LIGHT,
RG_DEKU_TREE_MAP,
RG_DODONGOS_CAVERN_MAP,
RG_JABU_JABUS_BELLY_MAP,
RG_FOREST_TEMPLE_MAP,
RG_FIRE_TEMPLE_MAP,
RG_WATER_TEMPLE_MAP,
RG_SPIRIT_TEMPLE_MAP,
RG_SHADOW_TEMPLE_MAP,
RG_BOTTOM_OF_THE_WELL_MAP,
RG_ICE_CAVERN_MAP,
RG_DEKU_TREE_COMPASS,
RG_DODONGOS_CAVERN_COMPASS,
RG_JABU_JABUS_BELLY_COMPASS,
RG_FOREST_TEMPLE_COMPASS,
RG_FIRE_TEMPLE_COMPASS,
RG_WATER_TEMPLE_COMPASS,
RG_SPIRIT_TEMPLE_COMPASS,
RG_SHADOW_TEMPLE_COMPASS,
RG_BOTTOM_OF_THE_WELL_COMPASS,
RG_ICE_CAVERN_COMPASS,
RG_FOREST_TEMPLE_BOSS_KEY,
RG_FIRE_TEMPLE_BOSS_KEY,
RG_WATER_TEMPLE_BOSS_KEY,
RG_SPIRIT_TEMPLE_BOSS_KEY,
RG_SHADOW_TEMPLE_BOSS_KEY,
RG_GANONS_CASTLE_BOSS_KEY,
RG_FOREST_TEMPLE_SMALL_KEY,
RG_FIRE_TEMPLE_SMALL_KEY,
RG_WATER_TEMPLE_SMALL_KEY,
RG_SPIRIT_TEMPLE_SMALL_KEY,
RG_SHADOW_TEMPLE_SMALL_KEY,
RG_BOTTOM_OF_THE_WELL_SMALL_KEY,
RG_GERUDO_TRAINING_GROUNDS_SMALL_KEY,
RG_GERUDO_FORTRESS_SMALL_KEY,
RG_GANONS_CASTLE_SMALL_KEY,
RG_TREASURE_GAME_SMALL_KEY,
RG_FOREST_TEMPLE_KEY_RING,
RG_FIRE_TEMPLE_KEY_RING,
RG_WATER_TEMPLE_KEY_RING,
RG_SPIRIT_TEMPLE_KEY_RING,
RG_SHADOW_TEMPLE_KEY_RING,
RG_BOTTOM_OF_THE_WELL_KEY_RING,
RG_GERUDO_TRAINING_GROUNDS_KEY_RING,
RG_GERUDO_FORTRESS_KEY_RING,
RG_GANONS_CASTLE_KEY_RING,
RG_KOKIRI_EMERALD,
RG_GORON_RUBY,
RG_ZORA_SAPPHIRE,
RG_FOREST_MEDALLION,
RG_FIRE_MEDALLION,
RG_WATER_MEDALLION,
RG_SPIRIT_MEDALLION,
RG_SHADOW_MEDALLION,
RG_LIGHT_MEDALLION,
RG_RECOVERY_HEART,
RG_GREEN_RUPEE,
RG_BLUE_RUPEE,
RG_RED_RUPEE,
RG_PURPLE_RUPEE,
RG_HUGE_RUPEE,
RG_PIECE_OF_HEART,
RG_HEART_CONTAINER,
RG_ICE_TRAP,
RG_MILK,
RG_BOMBS_5,
RG_BOMBS_10,
RG_BOMBS_20,
RG_BOMBCHU_5,
RG_BOMBCHU_10,
RG_BOMBCHU_20,
RG_BOMBCHU_DROP,
RG_ARROWS_5,
RG_ARROWS_10,
RG_ARROWS_30,
RG_DEKU_NUTS_5,
RG_DEKU_NUTS_10,
RG_DEKU_SEEDS_30,
RG_DEKU_STICK_1,
RG_RED_POTION_REFILL,
RG_GREEN_POTION_REFILL,
RG_BLUE_POTION_REFILL,
RG_TREASURE_GAME_HEART,
RG_TREASURE_GAME_GREEN_RUPEE,
RG_BUY_DEKU_NUT_5,
RG_BUY_ARROWS_30,
RG_BUY_ARROWS_50,
RG_BUY_BOMBS_5_FOR_25_RUPEES,
RG_BUY_BOMBS_525,
RG_BUY_DEKU_NUT_10,
RG_BUY_DEKU_STICK_1,
RG_BUY_BOMBS_10,
RG_BUY_FISH,
RG_BUY_RED_POTION_FOR_30_RUPEES,
RG_BUY_RED_POTION_30,
RG_BUY_GREEN_POTION,
RG_BUY_BLUE_POTION,
RG_BUY_HYLIAN_SHIELD,
@ -908,16 +903,9 @@ typedef enum {
RG_BUY_ARROWS_10,
RG_BUY_BOMBS_20,
RG_BUY_BOMBS_30,
RG_BUY_BOMBS_5_FOR_35_RUPEES,
RG_BUY_RED_POTION_FOR_40_RUPEES,
RG_BUY_RED_POTION_FOR_50_RUPEES,
RG_KOKIRI_EMERALD,
RG_GORON_RUBY,
RG_ZORA_SAPPHIRE,
RG_FOREST_MEDALLION,
RG_FIRE_MEDALLION,
RG_WATER_MEDALLION,
RG_SPIRIT_MEDALLION,
RG_SHADOW_MEDALLION,
RG_LIGHT_MEDALLION
RG_BUY_BOMBS_535,
RG_BUY_RED_POTION_40,
RG_BUY_RED_POTION_50,
RG_TRIFORCE,
RG_HINT
} RandomizerGet;

File diff suppressed because it is too large Load diff

View file

@ -2050,6 +2050,11 @@ void Cutscene_HandleEntranceTriggers(GlobalContext* globalCtx) {
u8 requiredAge;
s16 i;
if (gSaveContext.n64ddFlag) {
gSaveContext.showTitleCard = false;
return;
}
for (i = 0; i < ARRAY_COUNT(sEntranceCutsceneTable); i++) {
entranceCutscene = &sEntranceCutsceneTable[i];

View file

@ -193,59 +193,53 @@ void Gameplay_Destroy(GameState* thisx) {
gGlobalCtx = NULL;
}
void GiveLinksPocketMedallion(GlobalContext* globalCtx) {
if (gSaveContext.n64ddFlag) {
RandomizerGet get = gSaveContext.itemLocations[LINKS_POCKET].get;
void GiveLinksPocketMedallion() {
GetItemID getItemId = GetRandomizedItemIdFromKnownCheck(RC_LINKS_POCKET, RG_NONE);
s16 item;
s16 item;
u8 medallion = 0;
u8 medallion = 0;
switch (get) {
case FOREST_MEDALLION:
item = ITEM_MEDALLION_FOREST;
medallion = 1;
break;
case FIRE_MEDALLION:
item = ITEM_MEDALLION_FIRE;
medallion = 1;
break;
case WATER_MEDALLION:
item = ITEM_MEDALLION_WATER;
medallion = 1;
break;
case SHADOW_MEDALLION:
item = ITEM_MEDALLION_SHADOW;
medallion = 1;
break;
case SPIRIT_MEDALLION:
item = ITEM_MEDALLION_SPIRIT;
medallion = 1;
break;
case LIGHT_MEDALLION:
item = ITEM_MEDALLION_LIGHT;
medallion = 1;
break;
case KOKIRI_EMERALD:
item = ITEM_KOKIRI_EMERALD;
break;
case GORON_RUBY:
item = ITEM_GORON_RUBY;
break;
case ZORA_SAPPHIRE:
item = ITEM_ZORA_SAPPHIRE;
break;
}
switch (getItemId) {
case GI_MEDALLION_FOREST:
item = ITEM_MEDALLION_FOREST;
medallion = 1;
break;
case GI_MEDALLION_FIRE:
item = ITEM_MEDALLION_FIRE;
medallion = 1;
break;
case GI_MEDALLION_WATER:
item = ITEM_MEDALLION_WATER;
medallion = 1;
break;
case GI_MEDALLION_SHADOW:
item = ITEM_MEDALLION_SHADOW;
medallion = 1;
break;
case GI_MEDALLION_SPIRIT:
item = ITEM_MEDALLION_SPIRIT;
medallion = 1;
break;
case GI_MEDALLION_LIGHT:
item = ITEM_MEDALLION_LIGHT;
medallion = 1;
break;
case GI_STONE_KOKIRI:
item = ITEM_KOKIRI_EMERALD;
break;
case GI_STONE_GORON:
item = ITEM_GORON_RUBY;
break;
case GI_STONE_ZORA:
item = ITEM_ZORA_SAPPHIRE;
break;
}
if (medallion == 1) {
gSaveContext.inventory.questItems |= gBitFlags[item - ITEM_MEDALLION_FOREST + QUEST_MEDALLION_FOREST];
if (item == ITEM_MEDALLION_WATER) {
func_8006D0AC(globalCtx);
}
} else {
gSaveContext.inventory.questItems |= gBitFlags[item - ITEM_KOKIRI_EMERALD + QUEST_KOKIRI_EMERALD];
}
if (medallion == 1) {
gSaveContext.inventory.questItems |= gBitFlags[item - ITEM_MEDALLION_FOREST + QUEST_MEDALLION_FOREST];
} else {
gSaveContext.inventory.questItems |= gBitFlags[item - ITEM_KOKIRI_EMERALD + QUEST_KOKIRI_EMERALD];
}
}

View file

@ -714,6 +714,11 @@ void Sram_InitSave(FileChooseContext* fileChooseCtx, SramContext* sramCtx) {
gSaveContext.newf[3], gSaveContext.newf[4], gSaveContext.newf[5]);
osSyncPrintf("\n$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n");
if (gSaveContext.n64ddFlag) {
GiveLinksPocketMedallion();
gSaveContext.cutsceneIndex = 0;
}
ptr = (u16*)&gSaveContext;
j = 0;
checksum = 0;

View file

@ -127,8 +127,7 @@ void func_809B0558(EnAni* this, GlobalContext* globalCtx) {
gSaveContext.itemGetInf[1] |= 0x20;
} else {
if (gSaveContext.n64ddFlag) {
s32 getItemId =
GetRandomizedItemId(GI_HEART_PIECE, this->actor.id, this->actor.params, globalCtx->sceneNum);
s32 getItemId = GetRandomizedItemIdFromKnownCheck(RC_KAK_MAN_ON_ROOF, GI_HEART_PIECE);
func_8002F434(&this->actor, globalCtx, getItemId, 10000.0f, 200.0f);
} else {
func_8002F434(&this->actor, globalCtx, GI_HEART_PIECE, 10000.0f, 200.0f);
@ -142,7 +141,7 @@ void func_809B05F0(EnAni* this, GlobalContext* globalCtx) {
}
if (gSaveContext.n64ddFlag) {
s32 getItemId = GetRandomizedItemId(GI_HEART_PIECE, this->actor.id, this->actor.params, globalCtx->sceneNum);
s32 getItemId = GetRandomizedItemIdFromKnownCheck(RC_KAK_MAN_ON_ROOF, GI_HEART_PIECE);
func_8002F434(&this->actor, globalCtx, getItemId, 10000.0f, 200.0f);
} else {
func_8002F434(&this->actor, globalCtx, GI_HEART_PIECE, 10000.0f, 200.0f);