#ifndef RANDO_STATIC_DATA_H #define RANDO_STATIC_DATA_H #include #include #include "Rando/Types.h" #include "2s2h/GameInteractor/GameInteractor.h" extern "C" { #include "z64item.h" #include "z64scene.h" } #define DEFAULT_TRIFORCE_PIECES_MAX 15 namespace Rando { namespace StaticData { struct RandoStaticCheck { RandoCheckId randoCheckId; const char* name; RandoCheckType randoCheckType; SceneId sceneId; FlagType flagType; s32 flag; RandoItemId randoItemId; }; extern std::map Checks; extern std::array CheckNames; RandoStaticCheck GetCheckFromFlag(FlagType flagType, s32 flag, s16 sceneId = SCENE_MAX); RandoCheckId GetCheckIdFromName(const char* name); void PopulateCheckNames(); struct RandoStaticItem { RandoItemId randoItemId; const char* spoilerName; const char* article; const char* name; RandoItemType randoItemType; ItemId itemId; GetItemId getItemId; GetItemDrawId drawId; }; extern std::map Items; extern std::unordered_map> StartingItemsMap; RandoItemId GetItemIdFromName(const char* name); u8 GetIconForZMessage(RandoItemId itemId); const char* GetIconTexturePath(RandoItemId itemId); bool ShouldShowGetItemCutscene(RandoItemId itemId); std::string GetItemName(RandoItemId randoItemId, bool includeArticle = true); struct RandoStaticOption { RandoOptionId randoOptionId; const char* name; const char* cvar; u32 defaultValue; }; extern std::map Options; RandoOptionId GetOptionIdFromName(const char* name); struct RandoStaticRegion { RandoRegionId randoRegionId; const char* name; SceneId sceneId; std::map> checks; std::map> regions; }; extern std::map Regions; } // namespace StaticData } // namespace Rando #endif // RANDO_STATIC_DATA_H