mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-08-22 22:33:43 -07:00
seed loading is now per save
This commit is contained in:
parent
dd19b9ed78
commit
745b7e010b
11 changed files with 1780 additions and 4279 deletions
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
#include "ultra64.h"
|
#include "ultra64.h"
|
||||||
#include "z64math.h"
|
#include "z64math.h"
|
||||||
|
#include <randomizerTypes.h>
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
/* 0x00 */ u8 buttonItems[4];
|
/* 0x00 */ u8 buttonItems[4];
|
||||||
|
@ -60,6 +61,11 @@ typedef struct {
|
||||||
/* 0x24 */ s32 tempCollectFlags;
|
/* 0x24 */ s32 tempCollectFlags;
|
||||||
} FaroresWindData; // size = 0x28
|
} FaroresWindData; // size = 0x28
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
RandomizerCheck check;
|
||||||
|
RandomizerGet get;
|
||||||
|
} ItemLocation;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
/* 0x0000 */ s32 entranceIndex; // start of `save` substruct, originally called "memory"
|
/* 0x0000 */ s32 entranceIndex; // start of `save` substruct, originally called "memory"
|
||||||
/* 0x0004 */ s32 linkAge; // 0: Adult; 1: Child
|
/* 0x0004 */ s32 linkAge; // 0: Adult; 1: Child
|
||||||
|
@ -173,6 +179,7 @@ typedef struct {
|
||||||
/* 0x1420 */ s16 worldMapArea;
|
/* 0x1420 */ s16 worldMapArea;
|
||||||
/* 0x1422 */ s16 sunsSongState; // controls the effects of suns song
|
/* 0x1422 */ s16 sunsSongState; // controls the effects of suns song
|
||||||
/* 0x1424 */ s16 healthAccumulator;
|
/* 0x1424 */ s16 healthAccumulator;
|
||||||
|
ItemLocation itemLocations[512];
|
||||||
} SaveContext; // size = 0x1428
|
} SaveContext; // size = 0x1428
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
|
|
499
soh/randomizerTypes.h
Normal file
499
soh/randomizerTypes.h
Normal file
|
@ -0,0 +1,499 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
LINKS_POCKET,
|
||||||
|
QUEEN_GOHMA,
|
||||||
|
KING_DODONGO,
|
||||||
|
BARINADE,
|
||||||
|
PHANTOM_GANON,
|
||||||
|
VOLVAGIA,
|
||||||
|
MORPHA,
|
||||||
|
BONGO_BONGO,
|
||||||
|
TWINROVA,
|
||||||
|
SONG_FROM_IMPA,
|
||||||
|
SONG_FROM_MALON,
|
||||||
|
SONG_FROM_SARIA,
|
||||||
|
SONG_FROM_ROYAL_FAMILYS_TOMB,
|
||||||
|
SONG_FROM_OCARINA_OF_TIME,
|
||||||
|
SONG_FROM_WINDMILL,
|
||||||
|
SHEIK_IN_FOREST,
|
||||||
|
SHEIK_IN_CRATER,
|
||||||
|
SHEIK_IN_ICE_CAVERN,
|
||||||
|
SHEIK_AT_COLOSSUS,
|
||||||
|
SHEIK_IN_KAKARIKO,
|
||||||
|
SHEIK_AT_TEMPLE,
|
||||||
|
KF_MIDOS_TOP_LEFT_CHEST,
|
||||||
|
KF_MIDOS_TOP_RIGHT_CHEST,
|
||||||
|
KF_MIDOS_BOTTOM_LEFT_CHEST,
|
||||||
|
KF_MIDOS_BOTTOM_RIGHT_CHEST,
|
||||||
|
KF_KOKIRI_SWORD_CHEST,
|
||||||
|
KF_STORMS_GROTTO_CHEST,
|
||||||
|
LW_OCARINA_MEMORY_GAME,
|
||||||
|
LW_TARGET_IN_WOODS,
|
||||||
|
LW_NEAR_SHORTCUTS_GROTTO_CHEST,
|
||||||
|
DEKU_THEATER_SKULL_MASK,
|
||||||
|
DEKU_THEATER_MASK_OF_TRUTH,
|
||||||
|
LW_SKULL_KID,
|
||||||
|
LW_DEKU_SCRUB_NEAR_BRIDGE,
|
||||||
|
LW_DEKU_SCRUB_GROTTO_FRONT,
|
||||||
|
SFM_WOLFOS_GROTTO_CHEST,
|
||||||
|
HF_NEAR_MARKET_GROTTO_CHEST,
|
||||||
|
HF_TEKTITE_GROTTO_FREESTANDING_POH,
|
||||||
|
HF_SOUTHEAST_GROTTO_CHEST,
|
||||||
|
HF_OPEN_GROTTO_CHEST,
|
||||||
|
HF_DEKU_SCRUB_GROTTO,
|
||||||
|
MARKET_SHOOTING_GALLERY_REWARD,
|
||||||
|
MARKET_BOMBCHU_BOWLING_FIRST_PRIZE,
|
||||||
|
MARKET_BOMBCHU_BOWLING_SECOND_PRIZE,
|
||||||
|
MARKET_LOST_DOG,
|
||||||
|
MARKET_TREASURE_CHEST_GAME_REWARD,
|
||||||
|
MARKET_10_BIG_POES,
|
||||||
|
TOT_LIGHT_ARROWS_CUTSCENE,
|
||||||
|
HC_GREAT_FAIRY_REWARD,
|
||||||
|
LLR_TALONS_CHICKENS,
|
||||||
|
LLR_FREESTANDING_POH,
|
||||||
|
KAK_ANJU_AS_CHILD,
|
||||||
|
KAK_ANJU_AS_ADULT,
|
||||||
|
KAK_IMPAS_HOUSE_FREESTANDING_POH,
|
||||||
|
KAK_WINDMILL_FREESTANDING_POH,
|
||||||
|
KAK_MAN_ON_ROOF,
|
||||||
|
KAK_OPEN_GROTTO_CHEST,
|
||||||
|
KAK_REDEAD_GROTTO_CHEST,
|
||||||
|
KAK_SHOOTING_GALLERY_REWARD,
|
||||||
|
KAK_10_GOLD_SKULLTULA_REWARD,
|
||||||
|
KAK_20_GOLD_SKULLTULA_REWARD,
|
||||||
|
KAK_30_GOLD_SKULLTULA_REWARD,
|
||||||
|
KAK_40_GOLD_SKULLTULA_REWARD,
|
||||||
|
KAK_50_GOLD_SKULLTULA_REWARD,
|
||||||
|
GRAVEYARD_SHIELD_GRAVE_CHEST,
|
||||||
|
GRAVEYARD_HEART_PIECE_GRAVE_CHEST,
|
||||||
|
GRAVEYARD_ROYAL_FAMILYS_TOMB_CHEST,
|
||||||
|
GRAVEYARD_FREESTANDING_POH,
|
||||||
|
GRAVEYARD_DAMPE_GRAVEDIGGING_TOUR,
|
||||||
|
GRAVEYARD_HOOKSHOT_CHEST,
|
||||||
|
GRAVEYARD_DAMPE_RACE_FREESTANDING_POH,
|
||||||
|
DMT_FREESTANDING_POH,
|
||||||
|
DMT_CHEST,
|
||||||
|
DMT_STORMS_GROTTO_CHEST,
|
||||||
|
DMT_GREAT_FAIRY_REWARD,
|
||||||
|
DMT_BIGGORON,
|
||||||
|
GC_DARUNIAS_JOY,
|
||||||
|
GC_POT_FREESTANDING_POH,
|
||||||
|
GC_ROLLING_GORON_AS_CHILD,
|
||||||
|
GC_ROLLING_GORON_AS_ADULT,
|
||||||
|
GC_MAZE_LEFT_CHEST,
|
||||||
|
GC_MAZE_RIGHT_CHEST,
|
||||||
|
GC_MAZE_CENTER_CHEST,
|
||||||
|
DMC_VOLCANO_FREESTANDING_POH,
|
||||||
|
DMC_WALL_FREESTANDING_POH,
|
||||||
|
DMC_UPPER_GROTTO_CHEST,
|
||||||
|
DMC_GREAT_FAIRY_REWARD,
|
||||||
|
ZR_OPEN_GROTTO_CHEST,
|
||||||
|
ZR_FROGS_IN_THE_RAIN,
|
||||||
|
ZR_FROGS_OCARINA_GAME,
|
||||||
|
ZR_NEAR_OPEN_GROTTO_FREESTANDING_POH,
|
||||||
|
ZR_NEAR_DOMAIN_FREESTANDING_POH,
|
||||||
|
ZD_DIVING_MINIGAME,
|
||||||
|
ZD_CHEST,
|
||||||
|
ZD_KING_ZORA_THAWED,
|
||||||
|
ZF_GREAT_FAIRY_REWARD,
|
||||||
|
ZF_ICEBERG_FREESTANDING_POH,
|
||||||
|
ZF_BOTTOM_FREESTANDING_POH,
|
||||||
|
LH_UNDERWATER_ITEM,
|
||||||
|
LH_CHILD_FISHING,
|
||||||
|
LH_ADULT_FISHING,
|
||||||
|
LH_LAB_DIVE,
|
||||||
|
LH_FREESTANDING_POH,
|
||||||
|
LH_SUN,
|
||||||
|
GV_CRATE_FREESTANDING_POH,
|
||||||
|
GV_WATERFALL_FREESTANDING_POH,
|
||||||
|
GV_CHEST,
|
||||||
|
GF_CHEST,
|
||||||
|
GF_HBA_1000_POINTS,
|
||||||
|
GF_HBA_1500_POINTS,
|
||||||
|
WASTELAND_CHEST,
|
||||||
|
COLOSSUS_GREAT_FAIRY_REWARD,
|
||||||
|
COLOSSUS_FREESTANDING_POH,
|
||||||
|
OGC_GREAT_FAIRY_REWARD,
|
||||||
|
DEKU_TREE_MAP_CHEST,
|
||||||
|
DEKU_TREE_SLINGSHOT_ROOM_SIDE_CHEST,
|
||||||
|
DEKU_TREE_SLINGSHOT_CHEST,
|
||||||
|
DEKU_TREE_COMPASS_CHEST,
|
||||||
|
DEKU_TREE_COMPASS_ROOM_SIDE_CHEST,
|
||||||
|
DEKU_TREE_BASEMENT_CHEST,
|
||||||
|
DEKU_TREE_QUEEN_GOHMA_HEART,
|
||||||
|
DODONGOS_CAVERN_MAP_CHEST,
|
||||||
|
DODONGOS_CAVERN_COMPASS_CHEST,
|
||||||
|
DODONGOS_CAVERN_BOMB_FLOWER_PLATFORM_CHEST,
|
||||||
|
DODONGOS_CAVERN_BOMB_BAG_CHEST,
|
||||||
|
DODONGOS_CAVERN_END_OF_BRIDGE_CHEST,
|
||||||
|
DODONGOS_CAVERN_BOSS_ROOM_CHEST,
|
||||||
|
DODONGOS_CAVERN_KING_DODONGO_HEART,
|
||||||
|
JABU_JABUS_BELLY_BOOMERANG_CHEST,
|
||||||
|
JABU_JABUS_BELLY_MAP_CHEST,
|
||||||
|
JABU_JABUS_BELLY_COMPASS_CHEST,
|
||||||
|
JABU_JABUS_BELLY_BARINADE_HEART,
|
||||||
|
BOTTOM_OF_THE_WELL_FRONT_LEFT_FAKE_WALL_CHEST,
|
||||||
|
BOTTOM_OF_THE_WELL_FRONT_CENTER_BOMBABLE_CHEST,
|
||||||
|
BOTTOM_OF_THE_WELL_BACK_LEFT_BOMBABLE_CHEST,
|
||||||
|
BOTTOM_OF_THE_WELL_UNDERWATER_LEFT_CHEST,
|
||||||
|
BOTTOM_OF_THE_WELL_FREESTANDING_KEY,
|
||||||
|
BOTTOM_OF_THE_WELL_COMPASS_CHEST,
|
||||||
|
BOTTOM_OF_THE_WELL_CENTER_SKULLTULA_CHEST,
|
||||||
|
BOTTOM_OF_THE_WELL_RIGHT_BOTTOM_FAKE_WALL_CHEST,
|
||||||
|
BOTTOM_OF_THE_WELL_FIRE_KEESE_CHEST,
|
||||||
|
BOTTOM_OF_THE_WELL_LIKE_LIKE_CHEST,
|
||||||
|
BOTTOM_OF_THE_WELL_MAP_CHEST,
|
||||||
|
BOTTOM_OF_THE_WELL_UNDERWATER_FRONT_CHEST,
|
||||||
|
BOTTOM_OF_THE_WELL_INVISIBLE_CHEST,
|
||||||
|
BOTTOM_OF_THE_WELL_LENS_OF_TRUTH_CHEST,
|
||||||
|
FOREST_TEMPLE_FIRST_ROOM_CHEST,
|
||||||
|
FOREST_TEMPLE_FIRST_STALFOS_CHEST,
|
||||||
|
FOREST_TEMPLE_RAISED_ISLAND_COURTYARD_CHEST,
|
||||||
|
FOREST_TEMPLE_MAP_CHEST,
|
||||||
|
FOREST_TEMPLE_WELL_CHEST,
|
||||||
|
FOREST_TEMPLE_EYE_SWITCH_CHEST,
|
||||||
|
FOREST_TEMPLE_BOSS_KEY_CHEST,
|
||||||
|
FOREST_TEMPLE_FLOORMASTER_CHEST,
|
||||||
|
FOREST_TEMPLE_RED_POE_CHEST,
|
||||||
|
FOREST_TEMPLE_BOW_CHEST,
|
||||||
|
FOREST_TEMPLE_BLUE_POE_CHEST,
|
||||||
|
FOREST_TEMPLE_FALLING_CEILING_ROOM_CHEST,
|
||||||
|
FOREST_TEMPLE_BASEMENT_CHEST,
|
||||||
|
FOREST_TEMPLE_PHANTOM_GANON_HEART,
|
||||||
|
FIRE_TEMPLE_NEAR_BOSS_CHEST,
|
||||||
|
FIRE_TEMPLE_FLARE_DANCER_CHEST,
|
||||||
|
FIRE_TEMPLE_BOSS_KEY_CHEST,
|
||||||
|
FIRE_TEMPLE_BIG_LAVA_ROOM_LOWER_OPEN_DOOR_CHEST,
|
||||||
|
FIRE_TEMPLE_BIG_LAVA_ROOM_BLOCKED_DOOR_CHEST,
|
||||||
|
FIRE_TEMPLE_BOULDER_MAZE_LOWER_CHEST,
|
||||||
|
FIRE_TEMPLE_BOULDER_MAZE_SIDE_ROOM_CHEST,
|
||||||
|
FIRE_TEMPLE_MAP_CHEST,
|
||||||
|
FIRE_TEMPLE_BOULDER_MAZE_SHORTCUT_CHEST,
|
||||||
|
FIRE_TEMPLE_BOULDER_MAZE_UPPER_CHEST,
|
||||||
|
FIRE_TEMPLE_SCARECROW_CHEST,
|
||||||
|
FIRE_TEMPLE_COMPASS_CHEST,
|
||||||
|
FIRE_TEMPLE_MEGATON_HAMMER_CHEST,
|
||||||
|
FIRE_TEMPLE_HIGHEST_GORON_CHEST,
|
||||||
|
FIRE_TEMPLE_VOLVAGIA_HEART,
|
||||||
|
WATER_TEMPLE_COMPASS_CHEST,
|
||||||
|
WATER_TEMPLE_MAP_CHEST,
|
||||||
|
WATER_TEMPLE_CRACKED_WALL_CHEST,
|
||||||
|
WATER_TEMPLE_TORCHES_CHEST,
|
||||||
|
WATER_TEMPLE_BOSS_KEY_CHEST,
|
||||||
|
WATER_TEMPLE_CENTRAL_PILLAR_CHEST,
|
||||||
|
WATER_TEMPLE_CENTRAL_BOW_TARGET_CHEST,
|
||||||
|
WATER_TEMPLE_LONGSHOT_CHEST,
|
||||||
|
WATER_TEMPLE_RIVER_CHEST,
|
||||||
|
WATER_TEMPLE_DRAGON_CHEST,
|
||||||
|
WATER_TEMPLE_MORPHA_HEART,
|
||||||
|
SHADOW_TEMPLE_MAP_CHEST,
|
||||||
|
SHADOW_TEMPLE_HOVER_BOOTS_CHEST,
|
||||||
|
SHADOW_TEMPLE_COMPASS_CHEST,
|
||||||
|
SHADOW_TEMPLE_EARLY_SILVER_RUPEE_CHEST,
|
||||||
|
SHADOW_TEMPLE_INVISIBLE_BLADES_VISIBLE_CHEST,
|
||||||
|
SHADOW_TEMPLE_INVISIBLE_BLADES_INVISIBLE_CHEST,
|
||||||
|
SHADOW_TEMPLE_FALLING_SPIKES_LOWER_CHEST,
|
||||||
|
SHADOW_TEMPLE_FALLING_SPIKES_UPPER_CHEST,
|
||||||
|
SHADOW_TEMPLE_FALLING_SPIKES_SWITCH_CHEST,
|
||||||
|
SHADOW_TEMPLE_INVISIBLE_SPIKES_CHEST,
|
||||||
|
SHADOW_TEMPLE_FREESTANDING_KEY,
|
||||||
|
SHADOW_TEMPLE_WIND_HINT_CHEST,
|
||||||
|
SHADOW_TEMPLE_AFTER_WIND_ENEMY_CHEST,
|
||||||
|
SHADOW_TEMPLE_AFTER_WIND_HIDDEN_CHEST,
|
||||||
|
SHADOW_TEMPLE_SPIKE_WALLS_LEFT_CHEST,
|
||||||
|
SHADOW_TEMPLE_BOSS_KEY_CHEST,
|
||||||
|
SHADOW_TEMPLE_INVISIBLE_FLOORMASTER_CHEST,
|
||||||
|
SHADOW_TEMPLE_BONGO_BONGO_HEART,
|
||||||
|
SPIRIT_TEMPLE_CHILD_BRIDGE_CHEST,
|
||||||
|
SPIRIT_TEMPLE_CHILD_EARLY_TORCHES_CHEST,
|
||||||
|
SPIRIT_TEMPLE_CHILD_CLIMB_NORTH_CHEST,
|
||||||
|
SPIRIT_TEMPLE_CHILD_CLIMB_EAST_CHEST,
|
||||||
|
SPIRIT_TEMPLE_MAP_CHEST,
|
||||||
|
SPIRIT_TEMPLE_SUN_BLOCK_ROOM_CHEST,
|
||||||
|
SPIRIT_TEMPLE_SILVER_GAUNTLETS_CHEST,
|
||||||
|
SPIRIT_TEMPLE_COMPASS_CHEST,
|
||||||
|
SPIRIT_TEMPLE_EARLY_ADULT_RIGHT_CHEST,
|
||||||
|
SPIRIT_TEMPLE_FIRST_MIRROR_LEFT_CHEST,
|
||||||
|
SPIRIT_TEMPLE_FIRST_MIRROR_RIGHT_CHEST,
|
||||||
|
SPIRIT_TEMPLE_STATUE_ROOM_NORTHEAST_CHEST,
|
||||||
|
SPIRIT_TEMPLE_STATUE_ROOM_HAND_CHEST,
|
||||||
|
SPIRIT_TEMPLE_NEAR_FOUR_ARMOS_CHEST,
|
||||||
|
SPIRIT_TEMPLE_HALLWAY_RIGHT_INVISIBLE_CHEST,
|
||||||
|
SPIRIT_TEMPLE_HALLWAY_LEFT_INVISIBLE_CHEST,
|
||||||
|
SPIRIT_TEMPLE_MIRROR_SHIELD_CHEST,
|
||||||
|
SPIRIT_TEMPLE_BOSS_KEY_CHEST,
|
||||||
|
SPIRIT_TEMPLE_TOPMOST_CHEST,
|
||||||
|
SPIRIT_TEMPLE_TWINROVA_HEART,
|
||||||
|
ICE_CAVERN_MAP_CHEST,
|
||||||
|
ICE_CAVERN_COMPASS_CHEST,
|
||||||
|
ICE_CAVERN_FREESTANDING_POH,
|
||||||
|
ICE_CAVERN_IRON_BOOTS_CHEST,
|
||||||
|
GERUDO_TRAINING_GROUND_LOBBY_LEFT_CHEST,
|
||||||
|
GERUDO_TRAINING_GROUND_LOBBY_RIGHT_CHEST,
|
||||||
|
GERUDO_TRAINING_GROUND_STALFOS_CHEST,
|
||||||
|
GERUDO_TRAINING_GROUND_BEFORE_HEAVY_BLOCK_CHEST,
|
||||||
|
GERUDO_TRAINING_GROUND_HEAVY_BLOCK_FIRST_CHEST,
|
||||||
|
GERUDO_TRAINING_GROUND_HEAVY_BLOCK_SECOND_CHEST,
|
||||||
|
GERUDO_TRAINING_GROUND_HEAVY_BLOCK_THIRD_CHEST,
|
||||||
|
GERUDO_TRAINING_GROUND_HEAVY_BLOCK_FOURTH_CHEST,
|
||||||
|
GERUDO_TRAINING_GROUND_EYE_STATUE_CHEST,
|
||||||
|
GERUDO_TRAINING_GROUND_NEAR_SCARECROW_CHEST,
|
||||||
|
GERUDO_TRAINING_GROUND_HAMMER_ROOM_CLEAR_CHEST,
|
||||||
|
GERUDO_TRAINING_GROUND_HAMMER_ROOM_SWITCH_CHEST,
|
||||||
|
GERUDO_TRAINING_GROUND_FREESTANDING_KEY,
|
||||||
|
GERUDO_TRAINING_GROUND_MAZE_RIGHT_CENTRAL_CHEST,
|
||||||
|
GERUDO_TRAINING_GROUND_MAZE_RIGHT_SIDE_CHEST,
|
||||||
|
GERUDO_TRAINING_GROUND_UNDERWATER_SILVER_RUPEE_CHEST,
|
||||||
|
GERUDO_TRAINING_GROUND_BEAMOS_CHEST,
|
||||||
|
GERUDO_TRAINING_GROUND_HIDDEN_CEILING_CHEST,
|
||||||
|
GERUDO_TRAINING_GROUND_MAZE_PATH_FIRST_CHEST,
|
||||||
|
GERUDO_TRAINING_GROUND_MAZE_PATH_SECOND_CHEST,
|
||||||
|
GERUDO_TRAINING_GROUND_MAZE_PATH_THIRD_CHEST,
|
||||||
|
GERUDO_TRAINING_GROUND_MAZE_PATH_FINAL_CHEST,
|
||||||
|
GANONS_CASTLE_FOREST_TRIAL_CHEST,
|
||||||
|
GANONS_CASTLE_WATER_TRIAL_LEFT_CHEST,
|
||||||
|
GANONS_CASTLE_WATER_TRIAL_RIGHT_CHEST,
|
||||||
|
GANONS_CASTLE_SHADOW_TRIAL_FRONT_CHEST,
|
||||||
|
GANONS_CASTLE_SHADOW_TRIAL_GOLDEN_GAUNTLETS_CHEST,
|
||||||
|
GANONS_CASTLE_LIGHT_TRIAL_FIRST_LEFT_CHEST,
|
||||||
|
GANONS_CASTLE_LIGHT_TRIAL_SECOND_LEFT_CHEST,
|
||||||
|
GANONS_CASTLE_LIGHT_TRIAL_THIRD_LEFT_CHEST,
|
||||||
|
GANONS_CASTLE_LIGHT_TRIAL_FIRST_RIGHT_CHEST,
|
||||||
|
GANONS_CASTLE_LIGHT_TRIAL_SECOND_RIGHT_CHEST,
|
||||||
|
GANONS_CASTLE_LIGHT_TRIAL_THIRD_RIGHT_CHEST,
|
||||||
|
GANONS_CASTLE_LIGHT_TRIAL_INVISIBLE_ENEMIES_CHEST,
|
||||||
|
GANONS_CASTLE_LIGHT_TRIAL_LULLABY_CHEST,
|
||||||
|
GANONS_CASTLE_SPIRIT_TRIAL_CRYSTAL_SWITCH_CHEST,
|
||||||
|
GANONS_CASTLE_SPIRIT_TRIAL_INVISIBLE_CHEST,
|
||||||
|
GANONS_TOWER_BOSS_KEY_CHEST,
|
||||||
|
UNKNOWN_CHECK
|
||||||
|
} RandomizerCheck;
|
||||||
|
|
||||||
|
// based on https://github.com/TestRunnerSRL/OoT-Randomizer/blob/e337d7f603b91a6bacb618fb32cc7fd70ed9ffca/ItemList.py
|
||||||
|
typedef enum {
|
||||||
|
UNKNOWN_GET = 0,
|
||||||
|
BOMBS_5,
|
||||||
|
DEKU_NUTS_5,
|
||||||
|
BOMBCHUS_10,
|
||||||
|
BOOMERANG,
|
||||||
|
DEKU_STICK_1,
|
||||||
|
LENS_OF_TRUTH,
|
||||||
|
MEGATON_HAMMER,
|
||||||
|
COJIRO,
|
||||||
|
BOTTLE,
|
||||||
|
BOTTLE_WITH_MILK,
|
||||||
|
RUTOS_LETTER,
|
||||||
|
DELIVER_LETTER,
|
||||||
|
SELL_BIG_POE,
|
||||||
|
MAGIC_BEAN,
|
||||||
|
SKULL_MASK,
|
||||||
|
SPOOKY_MASK,
|
||||||
|
KEATON_MASK,
|
||||||
|
BUNNY_HOOD,
|
||||||
|
MASK_OF_TRUTH,
|
||||||
|
POCKET_EGG,
|
||||||
|
POCKET_CUCCO,
|
||||||
|
ODD_MUSHROOM,
|
||||||
|
ODD_POTION,
|
||||||
|
POACHERS_SAW,
|
||||||
|
BROKEN_SWORD,
|
||||||
|
PRESCRIPTION,
|
||||||
|
EYEBALL_FROG,
|
||||||
|
EYEDROPS,
|
||||||
|
CLAIM_CHECK,
|
||||||
|
KOKIRI_SWORD,
|
||||||
|
GIANTS_KNIFE,
|
||||||
|
DEKU_SHIELD,
|
||||||
|
HYLIAN_SHIELD,
|
||||||
|
MIRROR_SHIELD,
|
||||||
|
GORON_TUNIC,
|
||||||
|
ZORA_TUNIC,
|
||||||
|
IRON_BOOTS,
|
||||||
|
HOVER_BOOTS,
|
||||||
|
STONE_OF_AGONY,
|
||||||
|
GERUDO_MEMBERSHIP_CARD,
|
||||||
|
HEART_CONTAINER,
|
||||||
|
PIECE_OF_HEART,
|
||||||
|
BOSS_KEY,
|
||||||
|
COMPASS,
|
||||||
|
MAP,
|
||||||
|
SMALL_KEY,
|
||||||
|
WEIRD_EGG,
|
||||||
|
RECOVERY_HEART,
|
||||||
|
ARROWS_5,
|
||||||
|
ARROWS_10,
|
||||||
|
ARROWS_30,
|
||||||
|
RUPEE_1,
|
||||||
|
RUPEES_5,
|
||||||
|
RUPEES_20,
|
||||||
|
MILK,
|
||||||
|
GORON_MASK,
|
||||||
|
ZORA_MASK,
|
||||||
|
GERUDO_MASK,
|
||||||
|
RUPEES_50,
|
||||||
|
RUPEES_200,
|
||||||
|
BIGGORON_SWORD,
|
||||||
|
FIRE_ARROWS,
|
||||||
|
ICE_ARROWS,
|
||||||
|
LIGHT_ARROWS,
|
||||||
|
GOLD_SKULLTULA_TOKEN,
|
||||||
|
DINS_FIRE,
|
||||||
|
NAYRUS_LOVE,
|
||||||
|
FARORES_WIND,
|
||||||
|
DEKU_NUTS_10,
|
||||||
|
BOMBS_10,
|
||||||
|
BOMBS_20,
|
||||||
|
DEKU_SEEDS_30,
|
||||||
|
BOMBCHUS_5,
|
||||||
|
BOMBCHUS_20,
|
||||||
|
RUPEE_TREASURE_CHEST_GAME,
|
||||||
|
PIECE_OF_HEART_TREASURE_CHEST_GAME,
|
||||||
|
ICE_TRAP,
|
||||||
|
PROGRESSIVE_HOOKSHOT,
|
||||||
|
PROGRESSIVE_STRENGTH_UPGRADE,
|
||||||
|
BOMB_BAG,
|
||||||
|
BOW,
|
||||||
|
SLINGSHOT,
|
||||||
|
PROGRESSIVE_WALLET,
|
||||||
|
PROGRESSIVE_SCALE,
|
||||||
|
DEKU_NUT_CAPACITY,
|
||||||
|
DEKU_STICK_CAPACITY,
|
||||||
|
BOMBCHUS,
|
||||||
|
MAGIC_METER,
|
||||||
|
OCARINA,
|
||||||
|
BOTTLE_WITH_RED_POTION,
|
||||||
|
BOTTLE_WITH_GREEN_POTION,
|
||||||
|
BOTTLE_WITH_BLUE_POTION,
|
||||||
|
BOTTLE_WITH_FAIRY,
|
||||||
|
BOTTLE_WITH_FISH,
|
||||||
|
BOTTLE_WITH_BLUE_FIRE,
|
||||||
|
BOTTLE_WITH_BUGS,
|
||||||
|
BOTTLE_WITH_BIG_POE,
|
||||||
|
BOTTLE_WITH_POE,
|
||||||
|
BOSS_KEY_FOREST_TEMPLE,
|
||||||
|
BOSS_KEY_FIRE_TEMPLE,
|
||||||
|
BOSS_KEY_WATER_TEMPLE,
|
||||||
|
BOSS_KEY_SPIRIT_TEMPLE,
|
||||||
|
BOSS_KEY_SHADOW_TEMPLE,
|
||||||
|
BOSS_KEY_GANONS_CASTLE,
|
||||||
|
COMPASS_DEKU_TREE,
|
||||||
|
COMPASS_DODONGOS_CAVERN,
|
||||||
|
COMPASS_JABU_JABUS_BELLY,
|
||||||
|
COMPASS_FOREST_TEMPLE,
|
||||||
|
COMPASS_FIRE_TEMPLE,
|
||||||
|
COMPASS_WATER_TEMPLE,
|
||||||
|
COMPASS_SPIRIT_TEMPLE,
|
||||||
|
COMPASS_SHADOW_TEMPLE,
|
||||||
|
COMPASS_BOTTOM_OF_THE_WELL,
|
||||||
|
COMPASS_ICE_CAVERN,
|
||||||
|
MAP_DEKU_TREE,
|
||||||
|
MAP_DODONGOS_CAVERN,
|
||||||
|
MAP_JABU_JABUS_BELLY,
|
||||||
|
MAP_FOREST_TEMPLE,
|
||||||
|
MAP_FIRE_TEMPLE,
|
||||||
|
MAP_WATER_TEMPLE,
|
||||||
|
MAP_SPIRIT_TEMPLE,
|
||||||
|
MAP_SHADOW_TEMPLE,
|
||||||
|
MAP_BOTTOM_OF_THE_WELL,
|
||||||
|
MAP_ICE_CAVERN,
|
||||||
|
SMALL_KEY_FOREST_TEMPLE,
|
||||||
|
SMALL_KEY_FIRE_TEMPLE,
|
||||||
|
SMALL_KEY_WATER_TEMPLE,
|
||||||
|
SMALL_KEY_SPIRIT_TEMPLE,
|
||||||
|
SMALL_KEY_SHADOW_TEMPLE,
|
||||||
|
SMALL_KEY_BOTTOM_OF_THE_WELL,
|
||||||
|
SMALL_KEY_GERUDO_TRAINING_GROUND,
|
||||||
|
SMALL_KEY_THIEVES_HIDEOUT,
|
||||||
|
SMALL_KEY_GANONS_CASTLE,
|
||||||
|
DOUBLE_DEFENSE,
|
||||||
|
MAGIC_BEAN_PACK,
|
||||||
|
TRIFORCE_PIECE,
|
||||||
|
ZELDAS_LETTER,
|
||||||
|
TIME_TRAVEL,
|
||||||
|
SCARECROW_SONG,
|
||||||
|
TRIFORCE,
|
||||||
|
SMALL_KEY_RING_FOREST_TEMPLE,
|
||||||
|
SMALL_KEY_RING_FIRE_TEMPLE,
|
||||||
|
SMALL_KEY_RING_WATER_TEMPLE,
|
||||||
|
SMALL_KEY_RING_SPIRIT_TEMPLE,
|
||||||
|
SMALL_KEY_RING_SHADOW_TEMPLE,
|
||||||
|
SMALL_KEY_RING_BOTTOM_OF_THE_WELL,
|
||||||
|
SMALL_KEY_RING_GERUDO_TRAINING_GROUND,
|
||||||
|
SMALL_KEY_RING_THIEVES_HIDEOUT,
|
||||||
|
SMALL_KEY_RING_GANONS_CASTLE,
|
||||||
|
WATER_TEMPLE_CLEAR,
|
||||||
|
FOREST_TRIAL_CLEAR,
|
||||||
|
FIRE_TRIAL_CLEAR,
|
||||||
|
WATER_TRIAL_CLEAR,
|
||||||
|
SHADOW_TRIAL_CLEAR,
|
||||||
|
SPIRIT_TRIAL_CLEAR,
|
||||||
|
LIGHT_TRIAL_CLEAR,
|
||||||
|
DEKU_STICK_DROP,
|
||||||
|
DEKU_NUT_DROP,
|
||||||
|
BLUE_FIRE,
|
||||||
|
FAIRY,
|
||||||
|
FISH,
|
||||||
|
BUGS,
|
||||||
|
BIG_POE,
|
||||||
|
BOMBCHU_DROP,
|
||||||
|
ARROWS_CONSUMABLE_REFILL,
|
||||||
|
BOMBS_CONSUMABLE_REFILL,
|
||||||
|
DEKU_SEEDS_CONSUMABLE_REFILL,
|
||||||
|
DEKU_STICKS_CONSUMABLE_REFILL,
|
||||||
|
DEKU_NUTS_CONSUMABLE_REFILL,
|
||||||
|
RUPEES_CONSUMABLE_REFILL,
|
||||||
|
MINUET_OF_FOREST,
|
||||||
|
BOLERO_OF_FIRE,
|
||||||
|
SERENADE_OF_WATER,
|
||||||
|
REQUIEM_OF_SPIRIT,
|
||||||
|
NOCTURNE_OF_SHADOW,
|
||||||
|
PRELUDE_OF_LIGHT,
|
||||||
|
ZELDAS_LULLABY,
|
||||||
|
EPONAS_SONG,
|
||||||
|
SARIAS_SONG,
|
||||||
|
SUNS_SONG,
|
||||||
|
SONG_OF_TIME,
|
||||||
|
SONG_OF_STORMS,
|
||||||
|
BUY_DEKU_NUT_5,
|
||||||
|
BUY_ARROWS_30,
|
||||||
|
BUY_ARROWS_50,
|
||||||
|
BUY_BOMBS_5_FOR_25_RUPEES,
|
||||||
|
BUY_DEKU_NUT_10,
|
||||||
|
BUY_DEKU_STICK_1,
|
||||||
|
BUY_BOMBS_10,
|
||||||
|
BUY_FISH,
|
||||||
|
BUY_RED_POTION_FOR_30_RUPEES,
|
||||||
|
BUY_GREEN_POTION,
|
||||||
|
BUY_BLUE_POTION,
|
||||||
|
BUY_HYLIAN_SHIELD,
|
||||||
|
BUY_DEKU_SHIELD,
|
||||||
|
BUY_GORON_TUNIC,
|
||||||
|
BUY_ZORA_TUNIC,
|
||||||
|
BUY_HEART,
|
||||||
|
BUY_BOMBCHU_10,
|
||||||
|
BUY_BOMBCHU_20,
|
||||||
|
BUY_BOMBCHU_5,
|
||||||
|
BUY_DEKU_SEEDS_30,
|
||||||
|
SOLD_OUT,
|
||||||
|
BUY_BLUE_FIRE,
|
||||||
|
BUY_BOTTLE_BUG,
|
||||||
|
BUY_POE,
|
||||||
|
BUY_FAIRYS_SPIRIT,
|
||||||
|
BUY_ARROWS_10,
|
||||||
|
BUY_BOMBS_20,
|
||||||
|
BUY_BOMBS_30,
|
||||||
|
BUY_BOMBS_5_FOR_35_RUPEES,
|
||||||
|
BUY_RED_POTION_FOR_40_RUPEES,
|
||||||
|
BUY_RED_POTION_FOR_50_RUPEES,
|
||||||
|
KOKIRI_EMERALD,
|
||||||
|
GORON_RUBY,
|
||||||
|
ZORA_SAPPHIRE,
|
||||||
|
FOREST_MEDALLION,
|
||||||
|
FIRE_MEDALLION,
|
||||||
|
WATER_MEDALLION,
|
||||||
|
SPIRIT_MEDALLION,
|
||||||
|
SHADOW_MEDALLION,
|
||||||
|
LIGHT_MEDALLION
|
||||||
|
} RandomizerGet;
|
|
@ -881,6 +881,7 @@
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="soh\Enhancements\randomizer.h" />
|
<ClCompile Include="soh\Enhancements\randomizer.h" />
|
||||||
|
<ClInclude Include="randomizerTypes.h" />
|
||||||
<ClInclude Include="soh\frame_interpolation.h" />
|
<ClInclude Include="soh\frame_interpolation.h" />
|
||||||
<ClInclude Include="include\alloca.h" />
|
<ClInclude Include="include\alloca.h" />
|
||||||
<ClInclude Include="include\bgm.h" />
|
<ClInclude Include="include\bgm.h" />
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -507,25 +507,38 @@ std::unordered_map<std::string, RandomizerGet> SpoilerfileGetNameToEnum = {
|
||||||
{"Light Medallion", LIGHT_MEDALLION}
|
{"Light Medallion", LIGHT_MEDALLION}
|
||||||
};
|
};
|
||||||
|
|
||||||
void Randomizer::PopulateItemLocations(std::string spoilerFileName) {
|
void Randomizer::LoadItemLocations() {
|
||||||
|
for(auto itemLocation : gSaveContext.itemLocations) {
|
||||||
|
this->itemLocations[itemLocation.check] = itemLocation.get;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Randomizer::ParseItemLocations(std::string spoilerFileName) {
|
||||||
// todo pull this in from cvar or something
|
// todo pull this in from cvar or something
|
||||||
std::ifstream spoilerFileStream("spoiler.json");
|
std::ifstream spoilerFileStream("spoiler.json");
|
||||||
if (!spoilerFileStream) return;
|
if (!spoilerFileStream)
|
||||||
|
return;
|
||||||
json spoilerFileJson;
|
json spoilerFileJson;
|
||||||
spoilerFileStream >> spoilerFileJson;
|
spoilerFileStream >> spoilerFileJson;
|
||||||
json locationsJson = spoilerFileJson["locations"];
|
json locationsJson = spoilerFileJson["locations"];
|
||||||
|
int index = 0;
|
||||||
for (auto it = locationsJson.begin(); it != locationsJson.end(); ++it) {
|
for (auto it = locationsJson.begin(); it != locationsJson.end(); ++it) {
|
||||||
if (it->is_structured()) {
|
if (it->is_structured()) {
|
||||||
json itemJson = *it;
|
json itemJson = *it;
|
||||||
for (auto itemit = itemJson.begin(); itemit != itemJson.end(); ++itemit) {
|
for (auto itemit = itemJson.begin(); itemit != itemJson.end(); ++itemit) {
|
||||||
// todo handle prices
|
// todo handle prices
|
||||||
if (itemit.key() == "item") {
|
if (itemit.key() == "item") {
|
||||||
this->itemLocations[SpoilerfileCheckNameToEnum[it.key()]] = SpoilerfileGetNameToEnum[itemit.value()];
|
|
||||||
|
gSaveContext.itemLocations[index].check = SpoilerfileCheckNameToEnum[it.key()];
|
||||||
|
gSaveContext.itemLocations[index].get = SpoilerfileGetNameToEnum[itemit.value()];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
this->itemLocations[SpoilerfileCheckNameToEnum[it.key()]] = SpoilerfileGetNameToEnum[it.value()];
|
gSaveContext.itemLocations[index].check = SpoilerfileCheckNameToEnum[it.key()];
|
||||||
|
gSaveContext.itemLocations[index].get = SpoilerfileGetNameToEnum[it.value()];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
index++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,503 +5,7 @@
|
||||||
#include <string>
|
#include <string>
|
||||||
#include "../../include/ultra64.h"
|
#include "../../include/ultra64.h"
|
||||||
#include "../../include/z64item.h"
|
#include "../../include/z64item.h"
|
||||||
|
#include <randomizerTypes.h>
|
||||||
typedef enum {
|
|
||||||
LINKS_POCKET,
|
|
||||||
QUEEN_GOHMA,
|
|
||||||
KING_DODONGO,
|
|
||||||
BARINADE,
|
|
||||||
PHANTOM_GANON,
|
|
||||||
VOLVAGIA,
|
|
||||||
MORPHA,
|
|
||||||
BONGO_BONGO,
|
|
||||||
TWINROVA,
|
|
||||||
SONG_FROM_IMPA,
|
|
||||||
SONG_FROM_MALON,
|
|
||||||
SONG_FROM_SARIA,
|
|
||||||
SONG_FROM_ROYAL_FAMILYS_TOMB,
|
|
||||||
SONG_FROM_OCARINA_OF_TIME,
|
|
||||||
SONG_FROM_WINDMILL,
|
|
||||||
SHEIK_IN_FOREST,
|
|
||||||
SHEIK_IN_CRATER,
|
|
||||||
SHEIK_IN_ICE_CAVERN,
|
|
||||||
SHEIK_AT_COLOSSUS,
|
|
||||||
SHEIK_IN_KAKARIKO,
|
|
||||||
SHEIK_AT_TEMPLE,
|
|
||||||
KF_MIDOS_TOP_LEFT_CHEST,
|
|
||||||
KF_MIDOS_TOP_RIGHT_CHEST,
|
|
||||||
KF_MIDOS_BOTTOM_LEFT_CHEST,
|
|
||||||
KF_MIDOS_BOTTOM_RIGHT_CHEST,
|
|
||||||
KF_KOKIRI_SWORD_CHEST,
|
|
||||||
KF_STORMS_GROTTO_CHEST,
|
|
||||||
LW_OCARINA_MEMORY_GAME,
|
|
||||||
LW_TARGET_IN_WOODS,
|
|
||||||
LW_NEAR_SHORTCUTS_GROTTO_CHEST,
|
|
||||||
DEKU_THEATER_SKULL_MASK,
|
|
||||||
DEKU_THEATER_MASK_OF_TRUTH,
|
|
||||||
LW_SKULL_KID,
|
|
||||||
LW_DEKU_SCRUB_NEAR_BRIDGE,
|
|
||||||
LW_DEKU_SCRUB_GROTTO_FRONT,
|
|
||||||
SFM_WOLFOS_GROTTO_CHEST,
|
|
||||||
HF_NEAR_MARKET_GROTTO_CHEST,
|
|
||||||
HF_TEKTITE_GROTTO_FREESTANDING_POH,
|
|
||||||
HF_SOUTHEAST_GROTTO_CHEST,
|
|
||||||
HF_OPEN_GROTTO_CHEST,
|
|
||||||
HF_DEKU_SCRUB_GROTTO,
|
|
||||||
MARKET_SHOOTING_GALLERY_REWARD,
|
|
||||||
MARKET_BOMBCHU_BOWLING_FIRST_PRIZE,
|
|
||||||
MARKET_BOMBCHU_BOWLING_SECOND_PRIZE,
|
|
||||||
MARKET_LOST_DOG,
|
|
||||||
MARKET_TREASURE_CHEST_GAME_REWARD,
|
|
||||||
MARKET_10_BIG_POES,
|
|
||||||
TOT_LIGHT_ARROWS_CUTSCENE,
|
|
||||||
HC_GREAT_FAIRY_REWARD,
|
|
||||||
LLR_TALONS_CHICKENS,
|
|
||||||
LLR_FREESTANDING_POH,
|
|
||||||
KAK_ANJU_AS_CHILD,
|
|
||||||
KAK_ANJU_AS_ADULT,
|
|
||||||
KAK_IMPAS_HOUSE_FREESTANDING_POH,
|
|
||||||
KAK_WINDMILL_FREESTANDING_POH,
|
|
||||||
KAK_MAN_ON_ROOF,
|
|
||||||
KAK_OPEN_GROTTO_CHEST,
|
|
||||||
KAK_REDEAD_GROTTO_CHEST,
|
|
||||||
KAK_SHOOTING_GALLERY_REWARD,
|
|
||||||
KAK_10_GOLD_SKULLTULA_REWARD,
|
|
||||||
KAK_20_GOLD_SKULLTULA_REWARD,
|
|
||||||
KAK_30_GOLD_SKULLTULA_REWARD,
|
|
||||||
KAK_40_GOLD_SKULLTULA_REWARD,
|
|
||||||
KAK_50_GOLD_SKULLTULA_REWARD,
|
|
||||||
GRAVEYARD_SHIELD_GRAVE_CHEST,
|
|
||||||
GRAVEYARD_HEART_PIECE_GRAVE_CHEST,
|
|
||||||
GRAVEYARD_ROYAL_FAMILYS_TOMB_CHEST,
|
|
||||||
GRAVEYARD_FREESTANDING_POH,
|
|
||||||
GRAVEYARD_DAMPE_GRAVEDIGGING_TOUR,
|
|
||||||
GRAVEYARD_HOOKSHOT_CHEST,
|
|
||||||
GRAVEYARD_DAMPE_RACE_FREESTANDING_POH,
|
|
||||||
DMT_FREESTANDING_POH,
|
|
||||||
DMT_CHEST,
|
|
||||||
DMT_STORMS_GROTTO_CHEST,
|
|
||||||
DMT_GREAT_FAIRY_REWARD,
|
|
||||||
DMT_BIGGORON,
|
|
||||||
GC_DARUNIAS_JOY,
|
|
||||||
GC_POT_FREESTANDING_POH,
|
|
||||||
GC_ROLLING_GORON_AS_CHILD,
|
|
||||||
GC_ROLLING_GORON_AS_ADULT,
|
|
||||||
GC_MAZE_LEFT_CHEST,
|
|
||||||
GC_MAZE_RIGHT_CHEST,
|
|
||||||
GC_MAZE_CENTER_CHEST,
|
|
||||||
DMC_VOLCANO_FREESTANDING_POH,
|
|
||||||
DMC_WALL_FREESTANDING_POH,
|
|
||||||
DMC_UPPER_GROTTO_CHEST,
|
|
||||||
DMC_GREAT_FAIRY_REWARD,
|
|
||||||
ZR_OPEN_GROTTO_CHEST,
|
|
||||||
ZR_FROGS_IN_THE_RAIN,
|
|
||||||
ZR_FROGS_OCARINA_GAME,
|
|
||||||
ZR_NEAR_OPEN_GROTTO_FREESTANDING_POH,
|
|
||||||
ZR_NEAR_DOMAIN_FREESTANDING_POH,
|
|
||||||
ZD_DIVING_MINIGAME,
|
|
||||||
ZD_CHEST,
|
|
||||||
ZD_KING_ZORA_THAWED,
|
|
||||||
ZF_GREAT_FAIRY_REWARD,
|
|
||||||
ZF_ICEBERG_FREESTANDING_POH,
|
|
||||||
ZF_BOTTOM_FREESTANDING_POH,
|
|
||||||
LH_UNDERWATER_ITEM,
|
|
||||||
LH_CHILD_FISHING,
|
|
||||||
LH_ADULT_FISHING,
|
|
||||||
LH_LAB_DIVE,
|
|
||||||
LH_FREESTANDING_POH,
|
|
||||||
LH_SUN,
|
|
||||||
GV_CRATE_FREESTANDING_POH,
|
|
||||||
GV_WATERFALL_FREESTANDING_POH,
|
|
||||||
GV_CHEST,
|
|
||||||
GF_CHEST,
|
|
||||||
GF_HBA_1000_POINTS,
|
|
||||||
GF_HBA_1500_POINTS,
|
|
||||||
WASTELAND_CHEST,
|
|
||||||
COLOSSUS_GREAT_FAIRY_REWARD,
|
|
||||||
COLOSSUS_FREESTANDING_POH,
|
|
||||||
OGC_GREAT_FAIRY_REWARD,
|
|
||||||
DEKU_TREE_MAP_CHEST,
|
|
||||||
DEKU_TREE_SLINGSHOT_ROOM_SIDE_CHEST,
|
|
||||||
DEKU_TREE_SLINGSHOT_CHEST,
|
|
||||||
DEKU_TREE_COMPASS_CHEST,
|
|
||||||
DEKU_TREE_COMPASS_ROOM_SIDE_CHEST,
|
|
||||||
DEKU_TREE_BASEMENT_CHEST,
|
|
||||||
DEKU_TREE_QUEEN_GOHMA_HEART,
|
|
||||||
DODONGOS_CAVERN_MAP_CHEST,
|
|
||||||
DODONGOS_CAVERN_COMPASS_CHEST,
|
|
||||||
DODONGOS_CAVERN_BOMB_FLOWER_PLATFORM_CHEST,
|
|
||||||
DODONGOS_CAVERN_BOMB_BAG_CHEST,
|
|
||||||
DODONGOS_CAVERN_END_OF_BRIDGE_CHEST,
|
|
||||||
DODONGOS_CAVERN_BOSS_ROOM_CHEST,
|
|
||||||
DODONGOS_CAVERN_KING_DODONGO_HEART,
|
|
||||||
JABU_JABUS_BELLY_BOOMERANG_CHEST,
|
|
||||||
JABU_JABUS_BELLY_MAP_CHEST,
|
|
||||||
JABU_JABUS_BELLY_COMPASS_CHEST,
|
|
||||||
JABU_JABUS_BELLY_BARINADE_HEART,
|
|
||||||
BOTTOM_OF_THE_WELL_FRONT_LEFT_FAKE_WALL_CHEST,
|
|
||||||
BOTTOM_OF_THE_WELL_FRONT_CENTER_BOMBABLE_CHEST,
|
|
||||||
BOTTOM_OF_THE_WELL_BACK_LEFT_BOMBABLE_CHEST,
|
|
||||||
BOTTOM_OF_THE_WELL_UNDERWATER_LEFT_CHEST,
|
|
||||||
BOTTOM_OF_THE_WELL_FREESTANDING_KEY,
|
|
||||||
BOTTOM_OF_THE_WELL_COMPASS_CHEST,
|
|
||||||
BOTTOM_OF_THE_WELL_CENTER_SKULLTULA_CHEST,
|
|
||||||
BOTTOM_OF_THE_WELL_RIGHT_BOTTOM_FAKE_WALL_CHEST,
|
|
||||||
BOTTOM_OF_THE_WELL_FIRE_KEESE_CHEST,
|
|
||||||
BOTTOM_OF_THE_WELL_LIKE_LIKE_CHEST,
|
|
||||||
BOTTOM_OF_THE_WELL_MAP_CHEST,
|
|
||||||
BOTTOM_OF_THE_WELL_UNDERWATER_FRONT_CHEST,
|
|
||||||
BOTTOM_OF_THE_WELL_INVISIBLE_CHEST,
|
|
||||||
BOTTOM_OF_THE_WELL_LENS_OF_TRUTH_CHEST,
|
|
||||||
FOREST_TEMPLE_FIRST_ROOM_CHEST,
|
|
||||||
FOREST_TEMPLE_FIRST_STALFOS_CHEST,
|
|
||||||
FOREST_TEMPLE_RAISED_ISLAND_COURTYARD_CHEST,
|
|
||||||
FOREST_TEMPLE_MAP_CHEST,
|
|
||||||
FOREST_TEMPLE_WELL_CHEST,
|
|
||||||
FOREST_TEMPLE_EYE_SWITCH_CHEST,
|
|
||||||
FOREST_TEMPLE_BOSS_KEY_CHEST,
|
|
||||||
FOREST_TEMPLE_FLOORMASTER_CHEST,
|
|
||||||
FOREST_TEMPLE_RED_POE_CHEST,
|
|
||||||
FOREST_TEMPLE_BOW_CHEST,
|
|
||||||
FOREST_TEMPLE_BLUE_POE_CHEST,
|
|
||||||
FOREST_TEMPLE_FALLING_CEILING_ROOM_CHEST,
|
|
||||||
FOREST_TEMPLE_BASEMENT_CHEST,
|
|
||||||
FOREST_TEMPLE_PHANTOM_GANON_HEART,
|
|
||||||
FIRE_TEMPLE_NEAR_BOSS_CHEST,
|
|
||||||
FIRE_TEMPLE_FLARE_DANCER_CHEST,
|
|
||||||
FIRE_TEMPLE_BOSS_KEY_CHEST,
|
|
||||||
FIRE_TEMPLE_BIG_LAVA_ROOM_LOWER_OPEN_DOOR_CHEST,
|
|
||||||
FIRE_TEMPLE_BIG_LAVA_ROOM_BLOCKED_DOOR_CHEST,
|
|
||||||
FIRE_TEMPLE_BOULDER_MAZE_LOWER_CHEST,
|
|
||||||
FIRE_TEMPLE_BOULDER_MAZE_SIDE_ROOM_CHEST,
|
|
||||||
FIRE_TEMPLE_MAP_CHEST,
|
|
||||||
FIRE_TEMPLE_BOULDER_MAZE_SHORTCUT_CHEST,
|
|
||||||
FIRE_TEMPLE_BOULDER_MAZE_UPPER_CHEST,
|
|
||||||
FIRE_TEMPLE_SCARECROW_CHEST,
|
|
||||||
FIRE_TEMPLE_COMPASS_CHEST,
|
|
||||||
FIRE_TEMPLE_MEGATON_HAMMER_CHEST,
|
|
||||||
FIRE_TEMPLE_HIGHEST_GORON_CHEST,
|
|
||||||
FIRE_TEMPLE_VOLVAGIA_HEART,
|
|
||||||
WATER_TEMPLE_COMPASS_CHEST,
|
|
||||||
WATER_TEMPLE_MAP_CHEST,
|
|
||||||
WATER_TEMPLE_CRACKED_WALL_CHEST,
|
|
||||||
WATER_TEMPLE_TORCHES_CHEST,
|
|
||||||
WATER_TEMPLE_BOSS_KEY_CHEST,
|
|
||||||
WATER_TEMPLE_CENTRAL_PILLAR_CHEST,
|
|
||||||
WATER_TEMPLE_CENTRAL_BOW_TARGET_CHEST,
|
|
||||||
WATER_TEMPLE_LONGSHOT_CHEST,
|
|
||||||
WATER_TEMPLE_RIVER_CHEST,
|
|
||||||
WATER_TEMPLE_DRAGON_CHEST,
|
|
||||||
WATER_TEMPLE_MORPHA_HEART,
|
|
||||||
SHADOW_TEMPLE_MAP_CHEST,
|
|
||||||
SHADOW_TEMPLE_HOVER_BOOTS_CHEST,
|
|
||||||
SHADOW_TEMPLE_COMPASS_CHEST,
|
|
||||||
SHADOW_TEMPLE_EARLY_SILVER_RUPEE_CHEST,
|
|
||||||
SHADOW_TEMPLE_INVISIBLE_BLADES_VISIBLE_CHEST,
|
|
||||||
SHADOW_TEMPLE_INVISIBLE_BLADES_INVISIBLE_CHEST,
|
|
||||||
SHADOW_TEMPLE_FALLING_SPIKES_LOWER_CHEST,
|
|
||||||
SHADOW_TEMPLE_FALLING_SPIKES_UPPER_CHEST,
|
|
||||||
SHADOW_TEMPLE_FALLING_SPIKES_SWITCH_CHEST,
|
|
||||||
SHADOW_TEMPLE_INVISIBLE_SPIKES_CHEST,
|
|
||||||
SHADOW_TEMPLE_FREESTANDING_KEY,
|
|
||||||
SHADOW_TEMPLE_WIND_HINT_CHEST,
|
|
||||||
SHADOW_TEMPLE_AFTER_WIND_ENEMY_CHEST,
|
|
||||||
SHADOW_TEMPLE_AFTER_WIND_HIDDEN_CHEST,
|
|
||||||
SHADOW_TEMPLE_SPIKE_WALLS_LEFT_CHEST,
|
|
||||||
SHADOW_TEMPLE_BOSS_KEY_CHEST,
|
|
||||||
SHADOW_TEMPLE_INVISIBLE_FLOORMASTER_CHEST,
|
|
||||||
SHADOW_TEMPLE_BONGO_BONGO_HEART,
|
|
||||||
SPIRIT_TEMPLE_CHILD_BRIDGE_CHEST,
|
|
||||||
SPIRIT_TEMPLE_CHILD_EARLY_TORCHES_CHEST,
|
|
||||||
SPIRIT_TEMPLE_CHILD_CLIMB_NORTH_CHEST,
|
|
||||||
SPIRIT_TEMPLE_CHILD_CLIMB_EAST_CHEST,
|
|
||||||
SPIRIT_TEMPLE_MAP_CHEST,
|
|
||||||
SPIRIT_TEMPLE_SUN_BLOCK_ROOM_CHEST,
|
|
||||||
SPIRIT_TEMPLE_SILVER_GAUNTLETS_CHEST,
|
|
||||||
SPIRIT_TEMPLE_COMPASS_CHEST,
|
|
||||||
SPIRIT_TEMPLE_EARLY_ADULT_RIGHT_CHEST,
|
|
||||||
SPIRIT_TEMPLE_FIRST_MIRROR_LEFT_CHEST,
|
|
||||||
SPIRIT_TEMPLE_FIRST_MIRROR_RIGHT_CHEST,
|
|
||||||
SPIRIT_TEMPLE_STATUE_ROOM_NORTHEAST_CHEST,
|
|
||||||
SPIRIT_TEMPLE_STATUE_ROOM_HAND_CHEST,
|
|
||||||
SPIRIT_TEMPLE_NEAR_FOUR_ARMOS_CHEST,
|
|
||||||
SPIRIT_TEMPLE_HALLWAY_RIGHT_INVISIBLE_CHEST,
|
|
||||||
SPIRIT_TEMPLE_HALLWAY_LEFT_INVISIBLE_CHEST,
|
|
||||||
SPIRIT_TEMPLE_MIRROR_SHIELD_CHEST,
|
|
||||||
SPIRIT_TEMPLE_BOSS_KEY_CHEST,
|
|
||||||
SPIRIT_TEMPLE_TOPMOST_CHEST,
|
|
||||||
SPIRIT_TEMPLE_TWINROVA_HEART,
|
|
||||||
ICE_CAVERN_MAP_CHEST,
|
|
||||||
ICE_CAVERN_COMPASS_CHEST,
|
|
||||||
ICE_CAVERN_FREESTANDING_POH,
|
|
||||||
ICE_CAVERN_IRON_BOOTS_CHEST,
|
|
||||||
GERUDO_TRAINING_GROUND_LOBBY_LEFT_CHEST,
|
|
||||||
GERUDO_TRAINING_GROUND_LOBBY_RIGHT_CHEST,
|
|
||||||
GERUDO_TRAINING_GROUND_STALFOS_CHEST,
|
|
||||||
GERUDO_TRAINING_GROUND_BEFORE_HEAVY_BLOCK_CHEST,
|
|
||||||
GERUDO_TRAINING_GROUND_HEAVY_BLOCK_FIRST_CHEST,
|
|
||||||
GERUDO_TRAINING_GROUND_HEAVY_BLOCK_SECOND_CHEST,
|
|
||||||
GERUDO_TRAINING_GROUND_HEAVY_BLOCK_THIRD_CHEST,
|
|
||||||
GERUDO_TRAINING_GROUND_HEAVY_BLOCK_FOURTH_CHEST,
|
|
||||||
GERUDO_TRAINING_GROUND_EYE_STATUE_CHEST,
|
|
||||||
GERUDO_TRAINING_GROUND_NEAR_SCARECROW_CHEST,
|
|
||||||
GERUDO_TRAINING_GROUND_HAMMER_ROOM_CLEAR_CHEST,
|
|
||||||
GERUDO_TRAINING_GROUND_HAMMER_ROOM_SWITCH_CHEST,
|
|
||||||
GERUDO_TRAINING_GROUND_FREESTANDING_KEY,
|
|
||||||
GERUDO_TRAINING_GROUND_MAZE_RIGHT_CENTRAL_CHEST,
|
|
||||||
GERUDO_TRAINING_GROUND_MAZE_RIGHT_SIDE_CHEST,
|
|
||||||
GERUDO_TRAINING_GROUND_UNDERWATER_SILVER_RUPEE_CHEST,
|
|
||||||
GERUDO_TRAINING_GROUND_BEAMOS_CHEST,
|
|
||||||
GERUDO_TRAINING_GROUND_HIDDEN_CEILING_CHEST,
|
|
||||||
GERUDO_TRAINING_GROUND_MAZE_PATH_FIRST_CHEST,
|
|
||||||
GERUDO_TRAINING_GROUND_MAZE_PATH_SECOND_CHEST,
|
|
||||||
GERUDO_TRAINING_GROUND_MAZE_PATH_THIRD_CHEST,
|
|
||||||
GERUDO_TRAINING_GROUND_MAZE_PATH_FINAL_CHEST,
|
|
||||||
GANONS_CASTLE_FOREST_TRIAL_CHEST,
|
|
||||||
GANONS_CASTLE_WATER_TRIAL_LEFT_CHEST,
|
|
||||||
GANONS_CASTLE_WATER_TRIAL_RIGHT_CHEST,
|
|
||||||
GANONS_CASTLE_SHADOW_TRIAL_FRONT_CHEST,
|
|
||||||
GANONS_CASTLE_SHADOW_TRIAL_GOLDEN_GAUNTLETS_CHEST,
|
|
||||||
GANONS_CASTLE_LIGHT_TRIAL_FIRST_LEFT_CHEST,
|
|
||||||
GANONS_CASTLE_LIGHT_TRIAL_SECOND_LEFT_CHEST,
|
|
||||||
GANONS_CASTLE_LIGHT_TRIAL_THIRD_LEFT_CHEST,
|
|
||||||
GANONS_CASTLE_LIGHT_TRIAL_FIRST_RIGHT_CHEST,
|
|
||||||
GANONS_CASTLE_LIGHT_TRIAL_SECOND_RIGHT_CHEST,
|
|
||||||
GANONS_CASTLE_LIGHT_TRIAL_THIRD_RIGHT_CHEST,
|
|
||||||
GANONS_CASTLE_LIGHT_TRIAL_INVISIBLE_ENEMIES_CHEST,
|
|
||||||
GANONS_CASTLE_LIGHT_TRIAL_LULLABY_CHEST,
|
|
||||||
GANONS_CASTLE_SPIRIT_TRIAL_CRYSTAL_SWITCH_CHEST,
|
|
||||||
GANONS_CASTLE_SPIRIT_TRIAL_INVISIBLE_CHEST,
|
|
||||||
GANONS_TOWER_BOSS_KEY_CHEST,
|
|
||||||
UNKNOWN_CHECK
|
|
||||||
} RandomizerCheck;
|
|
||||||
|
|
||||||
// based on https://github.com/TestRunnerSRL/OoT-Randomizer/blob/e337d7f603b91a6bacb618fb32cc7fd70ed9ffca/ItemList.py
|
|
||||||
typedef enum {
|
|
||||||
UNKNOWN_GET = 0,
|
|
||||||
BOMBS_5,
|
|
||||||
DEKU_NUTS_5,
|
|
||||||
BOMBCHUS_10,
|
|
||||||
BOOMERANG,
|
|
||||||
DEKU_STICK_1,
|
|
||||||
LENS_OF_TRUTH,
|
|
||||||
MEGATON_HAMMER,
|
|
||||||
COJIRO,
|
|
||||||
BOTTLE,
|
|
||||||
BOTTLE_WITH_MILK,
|
|
||||||
RUTOS_LETTER,
|
|
||||||
DELIVER_LETTER,
|
|
||||||
SELL_BIG_POE,
|
|
||||||
MAGIC_BEAN,
|
|
||||||
SKULL_MASK,
|
|
||||||
SPOOKY_MASK,
|
|
||||||
KEATON_MASK,
|
|
||||||
BUNNY_HOOD,
|
|
||||||
MASK_OF_TRUTH,
|
|
||||||
POCKET_EGG,
|
|
||||||
POCKET_CUCCO,
|
|
||||||
ODD_MUSHROOM,
|
|
||||||
ODD_POTION,
|
|
||||||
POACHERS_SAW,
|
|
||||||
BROKEN_SWORD,
|
|
||||||
PRESCRIPTION,
|
|
||||||
EYEBALL_FROG,
|
|
||||||
EYEDROPS,
|
|
||||||
CLAIM_CHECK,
|
|
||||||
KOKIRI_SWORD,
|
|
||||||
GIANTS_KNIFE,
|
|
||||||
DEKU_SHIELD,
|
|
||||||
HYLIAN_SHIELD,
|
|
||||||
MIRROR_SHIELD,
|
|
||||||
GORON_TUNIC,
|
|
||||||
ZORA_TUNIC,
|
|
||||||
IRON_BOOTS,
|
|
||||||
HOVER_BOOTS,
|
|
||||||
STONE_OF_AGONY,
|
|
||||||
GERUDO_MEMBERSHIP_CARD,
|
|
||||||
HEART_CONTAINER,
|
|
||||||
PIECE_OF_HEART,
|
|
||||||
BOSS_KEY,
|
|
||||||
COMPASS,
|
|
||||||
MAP,
|
|
||||||
SMALL_KEY,
|
|
||||||
WEIRD_EGG,
|
|
||||||
RECOVERY_HEART,
|
|
||||||
ARROWS_5,
|
|
||||||
ARROWS_10,
|
|
||||||
ARROWS_30,
|
|
||||||
RUPEE_1,
|
|
||||||
RUPEES_5,
|
|
||||||
RUPEES_20,
|
|
||||||
MILK,
|
|
||||||
GORON_MASK,
|
|
||||||
ZORA_MASK,
|
|
||||||
GERUDO_MASK,
|
|
||||||
RUPEES_50,
|
|
||||||
RUPEES_200,
|
|
||||||
BIGGORON_SWORD,
|
|
||||||
FIRE_ARROWS,
|
|
||||||
ICE_ARROWS,
|
|
||||||
LIGHT_ARROWS,
|
|
||||||
GOLD_SKULLTULA_TOKEN,
|
|
||||||
DINS_FIRE,
|
|
||||||
NAYRUS_LOVE,
|
|
||||||
FARORES_WIND,
|
|
||||||
DEKU_NUTS_10,
|
|
||||||
BOMBS_10,
|
|
||||||
BOMBS_20,
|
|
||||||
DEKU_SEEDS_30,
|
|
||||||
BOMBCHUS_5,
|
|
||||||
BOMBCHUS_20,
|
|
||||||
RUPEE_TREASURE_CHEST_GAME,
|
|
||||||
PIECE_OF_HEART_TREASURE_CHEST_GAME,
|
|
||||||
ICE_TRAP,
|
|
||||||
PROGRESSIVE_HOOKSHOT,
|
|
||||||
PROGRESSIVE_STRENGTH_UPGRADE,
|
|
||||||
BOMB_BAG,
|
|
||||||
BOW,
|
|
||||||
SLINGSHOT,
|
|
||||||
PROGRESSIVE_WALLET,
|
|
||||||
PROGRESSIVE_SCALE,
|
|
||||||
DEKU_NUT_CAPACITY,
|
|
||||||
DEKU_STICK_CAPACITY,
|
|
||||||
BOMBCHUS,
|
|
||||||
MAGIC_METER,
|
|
||||||
OCARINA,
|
|
||||||
BOTTLE_WITH_RED_POTION,
|
|
||||||
BOTTLE_WITH_GREEN_POTION,
|
|
||||||
BOTTLE_WITH_BLUE_POTION,
|
|
||||||
BOTTLE_WITH_FAIRY,
|
|
||||||
BOTTLE_WITH_FISH,
|
|
||||||
BOTTLE_WITH_BLUE_FIRE,
|
|
||||||
BOTTLE_WITH_BUGS,
|
|
||||||
BOTTLE_WITH_BIG_POE,
|
|
||||||
BOTTLE_WITH_POE,
|
|
||||||
BOSS_KEY_FOREST_TEMPLE,
|
|
||||||
BOSS_KEY_FIRE_TEMPLE,
|
|
||||||
BOSS_KEY_WATER_TEMPLE,
|
|
||||||
BOSS_KEY_SPIRIT_TEMPLE,
|
|
||||||
BOSS_KEY_SHADOW_TEMPLE,
|
|
||||||
BOSS_KEY_GANONS_CASTLE,
|
|
||||||
COMPASS_DEKU_TREE,
|
|
||||||
COMPASS_DODONGOS_CAVERN,
|
|
||||||
COMPASS_JABU_JABUS_BELLY,
|
|
||||||
COMPASS_FOREST_TEMPLE,
|
|
||||||
COMPASS_FIRE_TEMPLE,
|
|
||||||
COMPASS_WATER_TEMPLE,
|
|
||||||
COMPASS_SPIRIT_TEMPLE,
|
|
||||||
COMPASS_SHADOW_TEMPLE,
|
|
||||||
COMPASS_BOTTOM_OF_THE_WELL,
|
|
||||||
COMPASS_ICE_CAVERN,
|
|
||||||
MAP_DEKU_TREE,
|
|
||||||
MAP_DODONGOS_CAVERN,
|
|
||||||
MAP_JABU_JABUS_BELLY,
|
|
||||||
MAP_FOREST_TEMPLE,
|
|
||||||
MAP_FIRE_TEMPLE,
|
|
||||||
MAP_WATER_TEMPLE,
|
|
||||||
MAP_SPIRIT_TEMPLE,
|
|
||||||
MAP_SHADOW_TEMPLE,
|
|
||||||
MAP_BOTTOM_OF_THE_WELL,
|
|
||||||
MAP_ICE_CAVERN,
|
|
||||||
SMALL_KEY_FOREST_TEMPLE,
|
|
||||||
SMALL_KEY_FIRE_TEMPLE,
|
|
||||||
SMALL_KEY_WATER_TEMPLE,
|
|
||||||
SMALL_KEY_SPIRIT_TEMPLE,
|
|
||||||
SMALL_KEY_SHADOW_TEMPLE,
|
|
||||||
SMALL_KEY_BOTTOM_OF_THE_WELL,
|
|
||||||
SMALL_KEY_GERUDO_TRAINING_GROUND,
|
|
||||||
SMALL_KEY_THIEVES_HIDEOUT,
|
|
||||||
SMALL_KEY_GANONS_CASTLE,
|
|
||||||
DOUBLE_DEFENSE,
|
|
||||||
MAGIC_BEAN_PACK,
|
|
||||||
TRIFORCE_PIECE,
|
|
||||||
ZELDAS_LETTER,
|
|
||||||
TIME_TRAVEL,
|
|
||||||
SCARECROW_SONG,
|
|
||||||
TRIFORCE,
|
|
||||||
SMALL_KEY_RING_FOREST_TEMPLE,
|
|
||||||
SMALL_KEY_RING_FIRE_TEMPLE,
|
|
||||||
SMALL_KEY_RING_WATER_TEMPLE,
|
|
||||||
SMALL_KEY_RING_SPIRIT_TEMPLE,
|
|
||||||
SMALL_KEY_RING_SHADOW_TEMPLE,
|
|
||||||
SMALL_KEY_RING_BOTTOM_OF_THE_WELL,
|
|
||||||
SMALL_KEY_RING_GERUDO_TRAINING_GROUND,
|
|
||||||
SMALL_KEY_RING_THIEVES_HIDEOUT,
|
|
||||||
SMALL_KEY_RING_GANONS_CASTLE,
|
|
||||||
WATER_TEMPLE_CLEAR,
|
|
||||||
FOREST_TRIAL_CLEAR,
|
|
||||||
FIRE_TRIAL_CLEAR,
|
|
||||||
WATER_TRIAL_CLEAR,
|
|
||||||
SHADOW_TRIAL_CLEAR,
|
|
||||||
SPIRIT_TRIAL_CLEAR,
|
|
||||||
LIGHT_TRIAL_CLEAR,
|
|
||||||
DEKU_STICK_DROP,
|
|
||||||
DEKU_NUT_DROP,
|
|
||||||
BLUE_FIRE,
|
|
||||||
FAIRY,
|
|
||||||
FISH,
|
|
||||||
BUGS,
|
|
||||||
BIG_POE,
|
|
||||||
BOMBCHU_DROP,
|
|
||||||
ARROWS_CONSUMABLE_REFILL,
|
|
||||||
BOMBS_CONSUMABLE_REFILL,
|
|
||||||
DEKU_SEEDS_CONSUMABLE_REFILL,
|
|
||||||
DEKU_STICKS_CONSUMABLE_REFILL,
|
|
||||||
DEKU_NUTS_CONSUMABLE_REFILL,
|
|
||||||
RUPEES_CONSUMABLE_REFILL,
|
|
||||||
MINUET_OF_FOREST,
|
|
||||||
BOLERO_OF_FIRE,
|
|
||||||
SERENADE_OF_WATER,
|
|
||||||
REQUIEM_OF_SPIRIT,
|
|
||||||
NOCTURNE_OF_SHADOW,
|
|
||||||
PRELUDE_OF_LIGHT,
|
|
||||||
ZELDAS_LULLABY,
|
|
||||||
EPONAS_SONG,
|
|
||||||
SARIAS_SONG,
|
|
||||||
SUNS_SONG,
|
|
||||||
SONG_OF_TIME,
|
|
||||||
SONG_OF_STORMS,
|
|
||||||
BUY_DEKU_NUT_5,
|
|
||||||
BUY_ARROWS_30,
|
|
||||||
BUY_ARROWS_50,
|
|
||||||
BUY_BOMBS_5_FOR_25_RUPEES,
|
|
||||||
BUY_DEKU_NUT_10,
|
|
||||||
BUY_DEKU_STICK_1,
|
|
||||||
BUY_BOMBS_10,
|
|
||||||
BUY_FISH,
|
|
||||||
BUY_RED_POTION_FOR_30_RUPEES,
|
|
||||||
BUY_GREEN_POTION,
|
|
||||||
BUY_BLUE_POTION,
|
|
||||||
BUY_HYLIAN_SHIELD,
|
|
||||||
BUY_DEKU_SHIELD,
|
|
||||||
BUY_GORON_TUNIC,
|
|
||||||
BUY_ZORA_TUNIC,
|
|
||||||
BUY_HEART,
|
|
||||||
BUY_BOMBCHU_10,
|
|
||||||
BUY_BOMBCHU_20,
|
|
||||||
BUY_BOMBCHU_5,
|
|
||||||
BUY_DEKU_SEEDS_30,
|
|
||||||
SOLD_OUT,
|
|
||||||
BUY_BLUE_FIRE,
|
|
||||||
BUY_BOTTLE_BUG,
|
|
||||||
BUY_POE,
|
|
||||||
BUY_FAIRYS_SPIRIT,
|
|
||||||
BUY_ARROWS_10,
|
|
||||||
BUY_BOMBS_20,
|
|
||||||
BUY_BOMBS_30,
|
|
||||||
BUY_BOMBS_5_FOR_35_RUPEES,
|
|
||||||
BUY_RED_POTION_FOR_40_RUPEES,
|
|
||||||
BUY_RED_POTION_FOR_50_RUPEES,
|
|
||||||
KOKIRI_EMERALD,
|
|
||||||
GORON_RUBY,
|
|
||||||
ZORA_SAPPHIRE,
|
|
||||||
FOREST_MEDALLION,
|
|
||||||
FIRE_MEDALLION,
|
|
||||||
WATER_MEDALLION,
|
|
||||||
SPIRIT_MEDALLION,
|
|
||||||
SHADOW_MEDALLION,
|
|
||||||
LIGHT_MEDALLION
|
|
||||||
} RandomizerGet;
|
|
||||||
|
|
||||||
class Randomizer {
|
class Randomizer {
|
||||||
private:
|
private:
|
||||||
|
@ -514,7 +18,8 @@ class Randomizer {
|
||||||
Randomizer();
|
Randomizer();
|
||||||
~Randomizer();
|
~Randomizer();
|
||||||
|
|
||||||
void PopulateItemLocations(std::string spoilerfilename);
|
void LoadItemLocations();
|
||||||
|
void ParseItemLocations(std::string spoilerfilename);
|
||||||
GetItemID GetItemFromActor(s16 actorId, GetItemID ogItemId);
|
GetItemID GetItemFromActor(s16 actorId, GetItemID ogItemId);
|
||||||
GetItemID GetItemFromSceneAndParams(s16 sceneNum, s16 actorParams, GetItemID ogItemId);
|
GetItemID GetItemFromSceneAndParams(s16 sceneNum, s16 actorParams, GetItemID ogItemId);
|
||||||
};
|
};
|
||||||
|
|
|
@ -996,8 +996,12 @@ extern "C" int Controller_ShouldRumble(size_t i) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" void PopulateItemLocations(const char* spoilerfilename) {
|
extern "C" void LoadItemLocations() {
|
||||||
OTRGlobals::Instance->gRandomizer->PopulateItemLocations(spoilerfilename);
|
return OTRGlobals::Instance->gRandomizer->LoadItemLocations();
|
||||||
|
}
|
||||||
|
|
||||||
|
extern "C" void ParseItemLocations(const char* spoilerfilename) {
|
||||||
|
return OTRGlobals::Instance->gRandomizer->ParseItemLocations(spoilerfilename);
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" GetItemID GetItemFromActor(s16 actorId, GetItemID ogItemId) {
|
extern "C" GetItemID GetItemFromActor(s16 actorId, GetItemID ogItemId) {
|
||||||
|
|
|
@ -74,7 +74,7 @@ int AudioPlayer_GetDesiredBuffered(void);
|
||||||
void AudioPlayer_Play(const uint8_t* buf, uint32_t len);
|
void AudioPlayer_Play(const uint8_t* buf, uint32_t len);
|
||||||
void AudioMgr_CreateNextAudioBuffer(s16* samples, u32 num_samples);
|
void AudioMgr_CreateNextAudioBuffer(s16* samples, u32 num_samples);
|
||||||
int Controller_ShouldRumble(size_t i);
|
int Controller_ShouldRumble(size_t i);
|
||||||
void PopulateItemLocations(const char* spoilerfilename);
|
void ParseItemLocations(const char* spoilerfilename);
|
||||||
GetItemID GetItemFromActor(s16 actorId, GetItemID ogItemId);
|
GetItemID GetItemFromActor(s16 actorId, GetItemID ogItemId);
|
||||||
GetItemID GetItemFromSceneAndParams(s16 sceneNum, s16 actorParams, GetItemID ogItemId);
|
GetItemID GetItemFromSceneAndParams(s16 sceneNum, s16 actorParams, GetItemID ogItemId);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -308,7 +308,10 @@ void Sram_OpenSave(SramContext* sramCtx) {
|
||||||
i = gSramSlotOffsets[gSaveContext.fileNum];
|
i = gSramSlotOffsets[gSaveContext.fileNum];
|
||||||
osSyncPrintf("ぽいんと=%x(%d)\n", i, gSaveContext.fileNum); // "Point="
|
osSyncPrintf("ぽいんと=%x(%d)\n", i, gSaveContext.fileNum); // "Point="
|
||||||
|
|
||||||
|
SaveContext tempContext;
|
||||||
|
|
||||||
memcpy(&gSaveContext, sramCtx->readBuff + i, sizeof(Save));
|
memcpy(&gSaveContext, sramCtx->readBuff + i, sizeof(Save));
|
||||||
|
memcpy(&tempContext, sramCtx->readBuff + i, sizeof(SaveContext));
|
||||||
|
|
||||||
osSyncPrintf(VT_FGCOL(YELLOW));
|
osSyncPrintf(VT_FGCOL(YELLOW));
|
||||||
osSyncPrintf("SCENE_DATA_ID = %d SceneNo = %d\n", gSaveContext.savedSceneNum,
|
osSyncPrintf("SCENE_DATA_ID = %d SceneNo = %d\n", gSaveContext.savedSceneNum,
|
||||||
|
@ -443,6 +446,8 @@ void Sram_OpenSave(SramContext* sramCtx) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
memcpy(&gSaveContext.itemLocations, &tempContext.itemLocations, sizeof(tempContext.itemLocations));
|
||||||
|
|
||||||
gSaveContext.magicLevel = 0;
|
gSaveContext.magicLevel = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1458,6 +1458,7 @@ void FileChoose_LoadGame(GameState* thisx) {
|
||||||
Audio_PlaySoundGeneral(NA_SE_SY_FSEL_DECIDE_L, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8);
|
Audio_PlaySoundGeneral(NA_SE_SY_FSEL_DECIDE_L, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8);
|
||||||
gSaveContext.fileNum = this->buttonIndex;
|
gSaveContext.fileNum = this->buttonIndex;
|
||||||
Sram_OpenSave(&this->sramCtx);
|
Sram_OpenSave(&this->sramCtx);
|
||||||
|
LoadItemLocations();
|
||||||
gSaveContext.gameMode = 0;
|
gSaveContext.gameMode = 0;
|
||||||
SET_NEXT_GAMESTATE(&this->state, Select_Init, SelectContext);
|
SET_NEXT_GAMESTATE(&this->state, Select_Init, SelectContext);
|
||||||
this->state.running = false;
|
this->state.running = false;
|
||||||
|
@ -1465,6 +1466,7 @@ void FileChoose_LoadGame(GameState* thisx) {
|
||||||
Audio_PlaySoundGeneral(NA_SE_SY_FSEL_DECIDE_L, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8);
|
Audio_PlaySoundGeneral(NA_SE_SY_FSEL_DECIDE_L, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8);
|
||||||
gSaveContext.fileNum = this->buttonIndex;
|
gSaveContext.fileNum = this->buttonIndex;
|
||||||
Sram_OpenSave(&this->sramCtx);
|
Sram_OpenSave(&this->sramCtx);
|
||||||
|
LoadItemLocations();
|
||||||
gSaveContext.gameMode = 0;
|
gSaveContext.gameMode = 0;
|
||||||
SET_NEXT_GAMESTATE(&this->state, Gameplay_Init, GlobalContext);
|
SET_NEXT_GAMESTATE(&this->state, Gameplay_Init, GlobalContext);
|
||||||
this->state.running = false;
|
this->state.running = false;
|
||||||
|
|
|
@ -448,12 +448,11 @@ void FileChoose_DrawNameEntry(GameState* thisx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
dayTime = ((void)0, gSaveContext.dayTime);
|
dayTime = ((void)0, gSaveContext.dayTime);
|
||||||
|
|
||||||
|
ParseItemLocations("blarg");
|
||||||
|
|
||||||
Sram_InitSave(this, &this->sramCtx);
|
Sram_InitSave(this, &this->sramCtx);
|
||||||
|
|
||||||
// todo: load spoilerfile data
|
|
||||||
|
|
||||||
PopulateItemLocations("blarg");
|
|
||||||
|
|
||||||
// todo: fill link's pocket here
|
// todo: fill link's pocket here
|
||||||
|
|
||||||
gSaveContext.dayTime = dayTime;
|
gSaveContext.dayTime = dayTime;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue