diff --git a/data/dynos.cpp.h b/data/dynos.cpp.h index 8634e4cd4..0e9298c17 100644 --- a/data/dynos.cpp.h +++ b/data/dynos.cpp.h @@ -743,17 +743,17 @@ Collision* DynOS_Col_Get(const char* collisionName); // Managers // -const void* DynOS_Mgr_VanillaScriptPtr_GetFromName(const char* aDataName); -const char* DynOS_Mgr_VanillaScriptPtr_GetFromData(const void* aData); -const GeoLayout* DynOS_Mgr_VanillaLvlGeo_GetFromName(const char* aDataName); -const char* DynOS_Mgr_VanillaLvlGeo_GetFromData(const GeoLayout* aData); -const Collision* DynOS_Mgr_VanillaLvlCol_GetFromName(const char* aDataName); -const char* DynOS_Mgr_VanillaLvlCol_GetFromData(const Collision* aData); -const Texture* DynOS_Mgr_VanillaTex_GetFromName(const char* aDataName); -const char* DynOS_Mgr_VanillaTex_GetFromData(const Texture* aData); -const void* DynOS_Mgr_VanillaFunc_GetFromName(const char* aDataName); -const void* DynOS_Mgr_VanillaFunc_GetFromIndex(s32 aIndex); -s32 DynOS_Mgr_VanillaFunc_GetIndexFromData(const void* aData); +const void* DynOS_Builtin_ScriptPtr_GetFromName(const char* aDataName); +const char* DynOS_Builtin_ScriptPtr_GetFromData(const void* aData); +const GeoLayout* DynOS_Builtin_LvlGeo_GetFromName(const char* aDataName); +const char* DynOS_Builtin_LvlGeo_GetFromData(const GeoLayout* aData); +const Collision* DynOS_Builtin_LvlCol_GetFromName(const char* aDataName); +const char* DynOS_Builtin_LvlCol_GetFromData(const Collision* aData); +const Texture* DynOS_Builtin_Tex_GetFromName(const char* aDataName); +const char* DynOS_Builtin_Tex_GetFromData(const Texture* aData); +const void* DynOS_Builtin_Func_GetFromName(const char* aDataName); +const void* DynOS_Builtin_Func_GetFromIndex(s32 aIndex); +s32 DynOS_Builtin_Func_GetIndexFromData(const void* aData); // // Bin diff --git a/data/dynos_bin_geo.cpp b/data/dynos_bin_geo.cpp index ede79fe7f..ae453fc46 100644 --- a/data/dynos_bin_geo.cpp +++ b/data/dynos_bin_geo.cpp @@ -28,7 +28,7 @@ static s64 ParseGeoSymbolArg(GfxData* aGfxData, DataNode* aNode, u64& } // Built-in functions - const void *_FunctionPtr = DynOS_Mgr_VanillaFunc_GetFromName(_Arg.begin()); + const void *_FunctionPtr = DynOS_Builtin_Func_GetFromName(_Arg.begin()); if (_FunctionPtr != NULL) { return (s64) _FunctionPtr; } diff --git a/data/dynos_bin_gfx.cpp b/data/dynos_bin_gfx.cpp index 82e7b4eb9..87c044e08 100644 --- a/data/dynos_bin_gfx.cpp +++ b/data/dynos_bin_gfx.cpp @@ -453,10 +453,10 @@ static s64 ParseGfxSymbolArg(GfxData* aGfxData, DataNode* aNode, u64* pToke } } - // Vanilla textures - auto vanillaTex = DynOS_Mgr_VanillaTex_GetFromName(_Arg.begin()); - if (vanillaTex != NULL) { - return (s64)vanillaTex; + // Built-in textures + auto builtinTex = DynOS_Builtin_Tex_GetFromName(_Arg.begin()); + if (builtinTex != NULL) { + return (s64)builtinTex; } // Recursive descent parsing @@ -688,7 +688,7 @@ static Array ParseGfxSetCombineMode(GfxData* aGfxData, DataNode* aNode static void UpdateTextureInfo(GfxData* aGfxData, s64 *aTexPtr, s32 aFormat, s32 aSize, s32 aWidth, s32 aHeight) { // Update current texture pointers if (aTexPtr && (*aTexPtr)) { - if (DynOS_Mgr_VanillaTex_GetFromData(*(const Texture**)aTexPtr)) { + if (DynOS_Builtin_Tex_GetFromData(*(const Texture**)aTexPtr)) { return; } diff --git a/data/dynos_bin_lvl.cpp b/data/dynos_bin_lvl.cpp index 5990c6969..69d9dc796 100644 --- a/data/dynos_bin_lvl.cpp +++ b/data/dynos_bin_lvl.cpp @@ -1386,7 +1386,7 @@ static LevelScript ParseLevelScriptSymbolArgInternal(GfxData* aGfxData, DataNode } // Built-in functions - const void *_FunctionPtr = DynOS_Mgr_VanillaFunc_GetFromName(_Arg.begin()); + const void *_FunctionPtr = DynOS_Builtin_Func_GetFromName(_Arg.begin()); if (_FunctionPtr != NULL) { return (s64) _FunctionPtr; } @@ -1458,7 +1458,7 @@ static LevelScript ParseLevelScriptSymbolArgInternal(GfxData* aGfxData, DataNode } } - // vanilla actors + // Built-in actors s32 actorCount = DynOS_Geo_GetActorCount(); for (s32 i = 0; i < actorCount; i++) { if (DynOS_Geo_IsCustomActor(i)) { break; } @@ -1467,16 +1467,16 @@ static LevelScript ParseLevelScriptSymbolArgInternal(GfxData* aGfxData, DataNode } } - // Vanilla Lvl Geos - auto vanillaGeo = DynOS_Mgr_VanillaLvlGeo_GetFromName(_Arg.begin()); - if (vanillaGeo != NULL) { - return (LevelScript)vanillaGeo; + // Built-in Lvl Geos + auto builtinGeo = DynOS_Builtin_LvlGeo_GetFromName(_Arg.begin()); + if (builtinGeo != NULL) { + return (LevelScript)builtinGeo; } - // Vanilla Lvl Cols - auto vanillaCol = DynOS_Mgr_VanillaLvlCol_GetFromName(_Arg.begin()); - if (vanillaCol != NULL) { - return (LevelScript)vanillaCol; + // Built-in Lvl Cols + auto builtinCol = DynOS_Builtin_LvlCol_GetFromName(_Arg.begin()); + if (builtinCol != NULL) { + return (LevelScript)builtinCol; } // Recursive descent parsing diff --git a/data/dynos_bin_pointer.cpp b/data/dynos_bin_pointer.cpp index 57030242a..10d77a91f 100644 --- a/data/dynos_bin_pointer.cpp +++ b/data/dynos_bin_pointer.cpp @@ -119,7 +119,7 @@ static PointerData GetDataFromPointer(const void* aPtr, GfxData* aGfxData) { return { get_behavior_name_from_id(id), 0 }; } - // Vanilla Actors + // Built-in Actors s32 actorCount = DynOS_Geo_GetActorCount(); for (s32 i = 0; i < actorCount; i++) { if (DynOS_Geo_IsCustomActor(i)) { break; } @@ -128,28 +128,28 @@ static PointerData GetDataFromPointer(const void* aPtr, GfxData* aGfxData) { } } - // Vanilla Lvl Geos - auto vanillaGeo = DynOS_Mgr_VanillaLvlGeo_GetFromData((const GeoLayout*)aPtr); - if (vanillaGeo != NULL) { - return { vanillaGeo, 0 }; + // Built-in Lvl Geos + auto builtinGeo = DynOS_Builtin_LvlGeo_GetFromData((const GeoLayout*)aPtr); + if (builtinGeo != NULL) { + return { builtinGeo, 0 }; } - // Vanilla Lvl Cols - auto vanillaCol = DynOS_Mgr_VanillaLvlCol_GetFromData((const Collision*)aPtr); - if (vanillaCol != NULL) { - return { vanillaCol, 0 }; + // Built-in Lvl Cols + auto builtinCol = DynOS_Builtin_LvlCol_GetFromData((const Collision*)aPtr); + if (builtinCol != NULL) { + return { builtinCol, 0 }; } - // Vanilla Script Pointers - auto vanillaScriptPtr = DynOS_Mgr_VanillaScriptPtr_GetFromData(aPtr); - if (vanillaScriptPtr != NULL) { - return { vanillaScriptPtr, 0 }; + // Built-in Script Pointers + auto builtinScriptPtr = DynOS_Builtin_ScriptPtr_GetFromData(aPtr); + if (builtinScriptPtr != NULL) { + return { builtinScriptPtr, 0 }; } - // Vanilla Textures - auto vanillaTex = DynOS_Mgr_VanillaTex_GetFromData((const Texture*)aPtr); - if (vanillaTex != NULL) { - return { vanillaTex, 0 }; + // Built-in Textures + auto builtinTex = DynOS_Builtin_Tex_GetFromData((const Texture*)aPtr); + if (builtinTex != NULL) { + return { builtinTex, 0 }; } // the ones below use a saved offset @@ -209,7 +209,7 @@ void DynOS_Pointer_Write(FILE* aFile, const void* aPtr, GfxData* aGfxData) { } // Built-in functions - s32 _GeoFunctionIndex = DynOS_Mgr_VanillaFunc_GetIndexFromData(aPtr); + s32 _GeoFunctionIndex = DynOS_Builtin_Func_GetIndexFromData(aPtr); if (_GeoFunctionIndex != -1) { WriteBytes(aFile, FUNCTION_CODE); WriteBytes(aFile, _GeoFunctionIndex); @@ -361,7 +361,7 @@ static void *GetPointerFromData(GfxData *aGfxData, const String &aPtrName, u32 a return (void*)get_behavior_from_id(id); } - // Vanilla Actors + // Built-in Actors s32 actorCount = DynOS_Geo_GetActorCount(); for (s32 i = 0; i < actorCount; i++) { if (DynOS_Geo_IsCustomActor(i)) { break; } @@ -370,28 +370,28 @@ static void *GetPointerFromData(GfxData *aGfxData, const String &aPtrName, u32 a } } - // Vanilla Lvl Geos - auto vanillaGeo = DynOS_Mgr_VanillaLvlGeo_GetFromName(aPtrName.begin()); - if (vanillaGeo != NULL) { - return (void*)vanillaGeo; + // Built-in Lvl Geos + auto builtinGeo = DynOS_Builtin_LvlGeo_GetFromName(aPtrName.begin()); + if (builtinGeo != NULL) { + return (void*)builtinGeo; } - // Vanilla Lvl Cols - auto vanillaCol = DynOS_Mgr_VanillaLvlCol_GetFromName(aPtrName.begin()); - if (vanillaCol != NULL) { - return (void*)vanillaCol; + // Built-in Lvl Cols + auto builtinCol = DynOS_Builtin_LvlCol_GetFromName(aPtrName.begin()); + if (builtinCol != NULL) { + return (void*)builtinCol; } - // Vanilla Script Pointers - auto vanillaScriptPtr = DynOS_Mgr_VanillaScriptPtr_GetFromName(aPtrName.begin()); - if (vanillaScriptPtr != NULL) { - return (void*)vanillaScriptPtr; + // Built-in Script Pointers + auto builtinScriptPtr = DynOS_Builtin_ScriptPtr_GetFromName(aPtrName.begin()); + if (builtinScriptPtr != NULL) { + return (void*)builtinScriptPtr; } - // Vanilla Textures - auto vanillaTex = DynOS_Mgr_VanillaTex_GetFromName(aPtrName.begin()); - if (vanillaTex != NULL) { - return (void*)vanillaTex; + // Built-in Textures + auto builtinTex = DynOS_Builtin_Tex_GetFromName(aPtrName.begin()); + if (builtinTex != NULL) { + return (void*)builtinTex; } // Error @@ -417,7 +417,7 @@ void *DynOS_Pointer_Load(FILE *aFile, GfxData *aGfxData, u32 aValue) { // FUNC if (aValue == FUNCTION_CODE) { s32 _FunctionIndex = ReadBytes(aFile); - return (void*) DynOS_Mgr_VanillaFunc_GetFromIndex(_FunctionIndex); + return (void*) DynOS_Builtin_Func_GetFromIndex(_FunctionIndex); } // PNTR diff --git a/data/dynos_mgr_builtin.cpp b/data/dynos_mgr_builtin.cpp new file mode 100644 index 000000000..1cf640081 --- /dev/null +++ b/data/dynos_mgr_builtin.cpp @@ -0,0 +1,1148 @@ +#include "dynos.cpp.h" +extern "C" { +#include "behavior_table.h" +#include "levels/scripts.h" +#include "object_fields.h" +#include "engine/level_script.h" +#include "game/object_helpers.h" +#include "game/segment2.h" +#include "game/level_geo.h" +#include "game/level_update.h" +#include "game/moving_texture.h" +#include "game/paintings.h" +#include "game/geo_misc.h" +#include "game/mario_misc.h" +#include "game/mario_actions_cutscene.h" +#include "game/screen_transition.h" +#include "game/object_list_processor.h" +#include "game/behavior_actions.h" +#include "game/rendering_graph_node.h" +#include "game/skybox.h" + +#include "levels/bbh/header.h" +#include "levels/bitdw/header.h" +#include "levels/bitfs/header.h" +#include "levels/bits/header.h" +#include "levels/bob/header.h" +#include "levels/bowser_1/header.h" +#include "levels/bowser_2/header.h" +#include "levels/bowser_2/header.h" +#include "levels/bowser_3/header.h" +#include "levels/bowser_3/header.h" +#include "levels/castle_courtyard/header.h" +#include "levels/castle_grounds/header.h" +#include "levels/castle_inside/header.h" +#include "levels/ccm/header.h" +#include "levels/cotmc/header.h" +#include "levels/ddd/header.h" +#include "levels/hmc/header.h" +#include "levels/jrb/header.h" +#include "levels/lll/header.h" +#include "levels/pss/header.h" +#include "levels/rr/header.h" +#include "levels/sa/header.h" +#include "levels/sl/header.h" +#include "levels/ssl/header.h" +#include "levels/thi/header.h" +#include "levels/totwc/header.h" +#include "levels/ttc/header.h" +#include "levels/ttm/header.h" +#include "levels/vcutm/header.h" +#include "levels/wdw/header.h" +#include "levels/wf/header.h" +#include "levels/wmotr/header.h" + +#include "textures.h" +} + +#define MGR_FIND_DATA(_DataTable, _Cast) \ + size_t _count = sizeof(_DataTable) / (2 * sizeof(_DataTable[0])); \ + for (u32 _i = 0; _i < _count; _i++) { \ + if (!strcmp((const char*)_DataTable[_i * 2 + 0], aDataName)) { \ + return _Cast _DataTable[_i * 2 + 1]; \ + } \ + } \ + return NULL; + +#define MGR_FIND_NAME(_DataTable) \ + size_t _count = sizeof(_DataTable) / (2 * sizeof(_DataTable[0])); \ + for (u32 _i = 0; _i < _count; _i++) { \ + if ((const void*)_DataTable[_i * 2 + 1] == aData) { \ + return (const char*)_DataTable[_i * 2 + 0]; \ + } \ + } \ + return NULL; + + /////////////////////// + // Function Pointers // +/////////////////////// + +#define define_builtin_script_ptr(ptr) (const void*)#ptr, (const void*)ptr + +static const void* sDynosBuiltinScriptPtrs[] = { + define_builtin_script_ptr(level_main_scripts_entry), + define_builtin_script_ptr(script_func_global_1), + define_builtin_script_ptr(script_func_global_2), + define_builtin_script_ptr(script_func_global_3), + define_builtin_script_ptr(script_func_global_4), + define_builtin_script_ptr(script_func_global_5), + define_builtin_script_ptr(script_func_global_6), + define_builtin_script_ptr(script_func_global_7), + define_builtin_script_ptr(script_func_global_8), + define_builtin_script_ptr(script_func_global_9), + define_builtin_script_ptr(script_func_global_10), + define_builtin_script_ptr(script_func_global_11), + define_builtin_script_ptr(script_func_global_12), + define_builtin_script_ptr(script_func_global_13), + define_builtin_script_ptr(script_func_global_14), + define_builtin_script_ptr(script_func_global_15), + define_builtin_script_ptr(script_func_global_16), + define_builtin_script_ptr(script_func_global_17), + define_builtin_script_ptr(script_func_global_18), +}; + +const void* DynOS_Builtin_ScriptPtr_GetFromName(const char* aDataName) { + MGR_FIND_DATA(sDynosBuiltinScriptPtrs, (const void*)); +} + +const char* DynOS_Builtin_ScriptPtr_GetFromData(const void* aData) { + MGR_FIND_NAME(sDynosBuiltinScriptPtrs); +} + + //////////////// + // Level Geos // +//////////////// + +#define define_builtin_lvl_geo(tex) (const void*) #tex, (const void*) tex +static const void* sDynosBuiltinLvlGeos[] = { + define_builtin_lvl_geo(bitfs_geo_0004B0), + define_builtin_lvl_geo(bitfs_geo_0004C8), + define_builtin_lvl_geo(bitfs_geo_0004E0), + define_builtin_lvl_geo(bitfs_geo_0004F8), + define_builtin_lvl_geo(bitfs_geo_000510), + define_builtin_lvl_geo(bitfs_geo_000528), + define_builtin_lvl_geo(bitfs_geo_000540), + define_builtin_lvl_geo(bitfs_geo_000558), + define_builtin_lvl_geo(bitfs_geo_000570), + define_builtin_lvl_geo(bitfs_geo_000588), + define_builtin_lvl_geo(bitfs_geo_0005A0), + define_builtin_lvl_geo(bitfs_geo_0005B8), + define_builtin_lvl_geo(bitfs_geo_0005D0), + define_builtin_lvl_geo(bitfs_geo_0005E8), + define_builtin_lvl_geo(bitfs_geo_000600), + define_builtin_lvl_geo(bitfs_geo_000618), + define_builtin_lvl_geo(bitfs_geo_000630), + define_builtin_lvl_geo(bitfs_geo_000648), + define_builtin_lvl_geo(bitfs_geo_000660), + define_builtin_lvl_geo(bitfs_geo_000678), + define_builtin_lvl_geo(bitfs_geo_000690), + define_builtin_lvl_geo(bitfs_geo_0006A8), + define_builtin_lvl_geo(bitfs_geo_0006C0), + define_builtin_lvl_geo(bitfs_geo_0006D8), + define_builtin_lvl_geo(bitfs_geo_0006F0), + define_builtin_lvl_geo(bitfs_geo_000708), + define_builtin_lvl_geo(bitfs_geo_000728), + define_builtin_lvl_geo(bitfs_geo_000740), + define_builtin_lvl_geo(bitfs_geo_000758), + define_builtin_lvl_geo(bitfs_geo_000770), + define_builtin_lvl_geo(bitfs_geo_000788), + define_builtin_lvl_geo(bitfs_geo_0007A0), + define_builtin_lvl_geo(bits_geo_000430), + define_builtin_lvl_geo(bits_geo_000448), + define_builtin_lvl_geo(bits_geo_000460), + define_builtin_lvl_geo(bits_geo_000478), + define_builtin_lvl_geo(bits_geo_000490), + define_builtin_lvl_geo(bits_geo_0004A8), + define_builtin_lvl_geo(bits_geo_0004C0), + define_builtin_lvl_geo(bits_geo_0004D8), + define_builtin_lvl_geo(bits_geo_0004F0), + define_builtin_lvl_geo(bits_geo_000508), + define_builtin_lvl_geo(bits_geo_000520), + define_builtin_lvl_geo(bits_geo_000538), + define_builtin_lvl_geo(bits_geo_000550), + define_builtin_lvl_geo(bits_geo_000568), + define_builtin_lvl_geo(bits_geo_000580), + define_builtin_lvl_geo(bits_geo_000598), + define_builtin_lvl_geo(bits_geo_0005B0), + define_builtin_lvl_geo(bits_geo_0005C8), + define_builtin_lvl_geo(bits_geo_0005E0), + define_builtin_lvl_geo(bits_geo_0005F8), + define_builtin_lvl_geo(bits_geo_000610), + define_builtin_lvl_geo(bits_geo_000628), + define_builtin_lvl_geo(bits_geo_000640), + define_builtin_lvl_geo(bits_geo_000658), + define_builtin_lvl_geo(bits_geo_000670), + define_builtin_lvl_geo(bits_geo_000688), + define_builtin_lvl_geo(bits_geo_0006A0), + define_builtin_lvl_geo(bits_geo_0006B8), + define_builtin_lvl_geo(bits_geo_0006D0), + define_builtin_lvl_geo(bits_geo_0006E8), + define_builtin_lvl_geo(bits_geo_000700), + define_builtin_lvl_geo(bits_geo_000718), + define_builtin_lvl_geo(bob_geo_000440), + define_builtin_lvl_geo(bob_geo_000458), + define_builtin_lvl_geo(bob_geo_000470), + define_builtin_lvl_geo(bob_geo_000488), + define_builtin_lvl_geo(bowser_1_geo_0000D0), + define_builtin_lvl_geo(bowser_2_geo_000170), + define_builtin_lvl_geo(bowser_2_geo_000170), + define_builtin_lvl_geo(bowser_2_geo_000188), + define_builtin_lvl_geo(bowser_2_geo_000188), + define_builtin_lvl_geo(bowser_3_geo_000290), + define_builtin_lvl_geo(bowser_3_geo_000290), + define_builtin_lvl_geo(bowser_3_geo_0002A8), + define_builtin_lvl_geo(bowser_3_geo_0002A8), + define_builtin_lvl_geo(bowser_3_geo_0002C0), + define_builtin_lvl_geo(bowser_3_geo_0002C0), + define_builtin_lvl_geo(bowser_3_geo_0002D8), + define_builtin_lvl_geo(bowser_3_geo_0002D8), + define_builtin_lvl_geo(bowser_3_geo_0002F0), + define_builtin_lvl_geo(bowser_3_geo_0002F0), + define_builtin_lvl_geo(bowser_3_geo_000308), + define_builtin_lvl_geo(bowser_3_geo_000308), + define_builtin_lvl_geo(bowser_3_geo_000320), + define_builtin_lvl_geo(bowser_3_geo_000320), + define_builtin_lvl_geo(bowser_3_geo_000338), + define_builtin_lvl_geo(bowser_3_geo_000338), + define_builtin_lvl_geo(bowser_3_geo_000350), + define_builtin_lvl_geo(bowser_3_geo_000350), + define_builtin_lvl_geo(bowser_3_geo_000368), + define_builtin_lvl_geo(bowser_3_geo_000368), + define_builtin_lvl_geo(bowser_3_geo_000380), + define_builtin_lvl_geo(bowser_3_geo_000380), + define_builtin_lvl_geo(bowser_3_geo_000398), + define_builtin_lvl_geo(bowser_3_geo_000398), + define_builtin_lvl_geo(castle_courtyard_geo_000200), + define_builtin_lvl_geo(castle_courtyard_geo_000218), + define_builtin_lvl_geo(castle_geo_000F00), + define_builtin_lvl_geo(castle_geo_000F18), + define_builtin_lvl_geo(castle_geo_000F30), + define_builtin_lvl_geo(castle_geo_000F70), + define_builtin_lvl_geo(castle_geo_000F88), + define_builtin_lvl_geo(castle_geo_000FA8), + define_builtin_lvl_geo(castle_geo_000FD0), + define_builtin_lvl_geo(castle_geo_001000), + define_builtin_lvl_geo(castle_geo_001038), + define_builtin_lvl_geo(castle_geo_001088), + define_builtin_lvl_geo(castle_geo_0010C8), + define_builtin_lvl_geo(castle_geo_001110), + define_builtin_lvl_geo(castle_geo_001158), + define_builtin_lvl_geo(castle_geo_0011A8), + define_builtin_lvl_geo(castle_geo_001200), + define_builtin_lvl_geo(castle_geo_001260), + define_builtin_lvl_geo(castle_geo_0012C8), + define_builtin_lvl_geo(castle_geo_001348), + define_builtin_lvl_geo(castle_geo_0013B8), + define_builtin_lvl_geo(castle_geo_001400), + define_builtin_lvl_geo(castle_geo_001518), + define_builtin_lvl_geo(castle_geo_001530), + define_builtin_lvl_geo(castle_geo_001548), + define_builtin_lvl_geo(castle_geo_001560), + define_builtin_lvl_geo(castle_geo_001578), + define_builtin_lvl_geo(castle_geo_0015B8), + define_builtin_lvl_geo(castle_geo_0015F8), + define_builtin_lvl_geo(castle_geo_001628), + define_builtin_lvl_geo(castle_geo_001668), + define_builtin_lvl_geo(castle_geo_001690), + define_builtin_lvl_geo(castle_geo_0016D8), + define_builtin_lvl_geo(castle_geo_001740), + define_builtin_lvl_geo(castle_geo_001798), + define_builtin_lvl_geo(castle_geo_001800), + define_builtin_lvl_geo(castle_geo_001858), + define_builtin_lvl_geo(castle_geo_001940), + define_builtin_lvl_geo(castle_geo_001958), + define_builtin_lvl_geo(castle_geo_001980), + define_builtin_lvl_geo(castle_geo_0019C8), + define_builtin_lvl_geo(castle_geo_0019F8), + define_builtin_lvl_geo(castle_geo_001A30), + define_builtin_lvl_geo(castle_geo_001A58), + define_builtin_lvl_geo(castle_geo_001AB8), + define_builtin_lvl_geo(castle_geo_001AF8), + define_builtin_lvl_geo(castle_geo_001B48), + define_builtin_lvl_geo(castle_geo_001BB0), + define_builtin_lvl_geo(castle_geo_001C10), + define_builtin_lvl_geo(castle_grounds_geo_000660), + define_builtin_lvl_geo(castle_grounds_geo_0006F4), + define_builtin_lvl_geo(castle_grounds_geo_00070C), + define_builtin_lvl_geo(castle_grounds_geo_000724), + define_builtin_lvl_geo(castle_grounds_geo_00073C), + define_builtin_lvl_geo(ccm_geo_0003D0), + define_builtin_lvl_geo(ccm_geo_0003F0), + define_builtin_lvl_geo(ccm_geo_00040C), + define_builtin_lvl_geo(ccm_geo_00042C), + define_builtin_lvl_geo(ccm_geo_00045C), + define_builtin_lvl_geo(ccm_geo_000494), + define_builtin_lvl_geo(ccm_geo_0004BC), + define_builtin_lvl_geo(ccm_geo_0004E4), + define_builtin_lvl_geo(ccm_geo_00051C), + define_builtin_lvl_geo(ccm_geo_0005E8), + define_builtin_lvl_geo(cotmc_geo_0001A0), + define_builtin_lvl_geo(ddd_geo_000450), + define_builtin_lvl_geo(ddd_geo_000478), + define_builtin_lvl_geo(ddd_geo_0004A0), + define_builtin_lvl_geo(ddd_geo_0004C0), + define_builtin_lvl_geo(ddd_geo_000570), + define_builtin_lvl_geo(geo_bbh_0005B0), + define_builtin_lvl_geo(geo_bbh_0005C8), + define_builtin_lvl_geo(geo_bbh_0005E0), + define_builtin_lvl_geo(geo_bbh_0005F8), + define_builtin_lvl_geo(geo_bbh_000610), + define_builtin_lvl_geo(geo_bbh_000628), + define_builtin_lvl_geo(geo_bbh_000640), + define_builtin_lvl_geo(geo_bbh_000658), + define_builtin_lvl_geo(geo_bbh_000670), + define_builtin_lvl_geo(geo_bbh_0006B0), + define_builtin_lvl_geo(geo_bbh_0006E8), + define_builtin_lvl_geo(geo_bbh_000730), + define_builtin_lvl_geo(geo_bbh_000750), + define_builtin_lvl_geo(geo_bbh_000768), + define_builtin_lvl_geo(geo_bbh_0007B0), + define_builtin_lvl_geo(geo_bbh_0007D0), + define_builtin_lvl_geo(geo_bbh_000800), + define_builtin_lvl_geo(geo_bbh_000828), + define_builtin_lvl_geo(geo_bbh_000860), + define_builtin_lvl_geo(geo_bbh_000888), + define_builtin_lvl_geo(geo_bbh_0008B0), + define_builtin_lvl_geo(geo_bbh_0008E8), + define_builtin_lvl_geo(geo_bbh_000950), + define_builtin_lvl_geo(geo_bbh_0009C8), + define_builtin_lvl_geo(geo_bbh_000A18), + define_builtin_lvl_geo(geo_bbh_000A60), + define_builtin_lvl_geo(geo_bbh_000AD8), + define_builtin_lvl_geo(geo_bbh_000B28), + define_builtin_lvl_geo(geo_bbh_000B88), + define_builtin_lvl_geo(geo_bbh_000BF0), + define_builtin_lvl_geo(geo_bbh_000C38), + define_builtin_lvl_geo(geo_bbh_000C88), + define_builtin_lvl_geo(geo_bbh_000CE8), + define_builtin_lvl_geo(geo_bbh_000D20), + define_builtin_lvl_geo(geo_bbh_000D68), + define_builtin_lvl_geo(geo_bbh_000DB0), + define_builtin_lvl_geo(geo_bbh_000DF0), + define_builtin_lvl_geo(geo_bbh_000E40), + define_builtin_lvl_geo(geo_bbh_000E80), + define_builtin_lvl_geo(geo_bbh_000EB0), + define_builtin_lvl_geo(geo_bbh_000F00), + define_builtin_lvl_geo(geo_bitdw_0003C0), + define_builtin_lvl_geo(geo_bitdw_0003D8), + define_builtin_lvl_geo(geo_bitdw_0003F0), + define_builtin_lvl_geo(geo_bitdw_000408), + define_builtin_lvl_geo(geo_bitdw_000420), + define_builtin_lvl_geo(geo_bitdw_000438), + define_builtin_lvl_geo(geo_bitdw_000450), + define_builtin_lvl_geo(geo_bitdw_000468), + define_builtin_lvl_geo(geo_bitdw_000480), + define_builtin_lvl_geo(geo_bitdw_000498), + define_builtin_lvl_geo(geo_bitdw_0004B0), + define_builtin_lvl_geo(geo_bitdw_0004C8), + define_builtin_lvl_geo(geo_bitdw_0004E0), + define_builtin_lvl_geo(geo_bitdw_0004F8), + define_builtin_lvl_geo(geo_bitdw_000510), + define_builtin_lvl_geo(geo_bitdw_000528), + define_builtin_lvl_geo(geo_bitdw_000540), + define_builtin_lvl_geo(geo_bitdw_000558), + define_builtin_lvl_geo(geo_bitdw_000570), + define_builtin_lvl_geo(geo_bitdw_000588), + define_builtin_lvl_geo(geo_bitdw_0005A0), + define_builtin_lvl_geo(geo_bitdw_0005B8), + define_builtin_lvl_geo(geo_bitdw_0005D0), + define_builtin_lvl_geo(geo_bitdw_0005E8), + define_builtin_lvl_geo(geo_bitdw_000600), + define_builtin_lvl_geo(geo_bitdw_000618), + define_builtin_lvl_geo(hmc_geo_000530), + define_builtin_lvl_geo(hmc_geo_000548), + define_builtin_lvl_geo(hmc_geo_000570), + define_builtin_lvl_geo(hmc_geo_000588), + define_builtin_lvl_geo(hmc_geo_0005A0), + define_builtin_lvl_geo(hmc_geo_0005B8), + define_builtin_lvl_geo(hmc_geo_0005D0), + define_builtin_lvl_geo(hmc_geo_0005E8), + define_builtin_lvl_geo(hmc_geo_000618), + define_builtin_lvl_geo(hmc_geo_000658), + define_builtin_lvl_geo(hmc_geo_0006A8), + define_builtin_lvl_geo(hmc_geo_0006E0), + define_builtin_lvl_geo(hmc_geo_000700), + define_builtin_lvl_geo(hmc_geo_000748), + define_builtin_lvl_geo(hmc_geo_000770), + define_builtin_lvl_geo(hmc_geo_000798), + define_builtin_lvl_geo(hmc_geo_0007F8), + define_builtin_lvl_geo(hmc_geo_000850), + define_builtin_lvl_geo(hmc_geo_0008D0), + define_builtin_lvl_geo(hmc_geo_000938), + define_builtin_lvl_geo(hmc_geo_000998), + define_builtin_lvl_geo(hmc_geo_000A18), + define_builtin_lvl_geo(hmc_geo_000A88), + define_builtin_lvl_geo(hmc_geo_000AE8), + define_builtin_lvl_geo(hmc_geo_000B48), + define_builtin_lvl_geo(hmc_geo_000B90), + define_builtin_lvl_geo(jrb_geo_000900), + define_builtin_lvl_geo(jrb_geo_000918), + define_builtin_lvl_geo(jrb_geo_000930), + define_builtin_lvl_geo(jrb_geo_000948), + define_builtin_lvl_geo(jrb_geo_000960), + define_builtin_lvl_geo(jrb_geo_000978), + define_builtin_lvl_geo(jrb_geo_000990), + define_builtin_lvl_geo(jrb_geo_0009B0), + define_builtin_lvl_geo(jrb_geo_0009C8), + define_builtin_lvl_geo(jrb_geo_0009E8), + define_builtin_lvl_geo(jrb_geo_000A00), + define_builtin_lvl_geo(jrb_geo_000A18), + define_builtin_lvl_geo(jrb_geo_000AFC), + define_builtin_lvl_geo(lll_geo_0009E0), + define_builtin_lvl_geo(lll_geo_0009F8), + define_builtin_lvl_geo(lll_geo_000A10), + define_builtin_lvl_geo(lll_geo_000A28), + define_builtin_lvl_geo(lll_geo_000A40), + define_builtin_lvl_geo(lll_geo_000A60), + define_builtin_lvl_geo(lll_geo_000A78), + define_builtin_lvl_geo(lll_geo_000A90), + define_builtin_lvl_geo(lll_geo_000AA8), + define_builtin_lvl_geo(lll_geo_000AC0), + define_builtin_lvl_geo(lll_geo_000AD8), + define_builtin_lvl_geo(lll_geo_000AF0), + define_builtin_lvl_geo(lll_geo_000B08), + define_builtin_lvl_geo(lll_geo_000B20), + define_builtin_lvl_geo(lll_geo_000B38), + define_builtin_lvl_geo(lll_geo_000B50), + define_builtin_lvl_geo(lll_geo_000B68), + define_builtin_lvl_geo(lll_geo_000B80), + define_builtin_lvl_geo(lll_geo_000B98), + define_builtin_lvl_geo(lll_geo_000BB0), + define_builtin_lvl_geo(lll_geo_000BC8), + define_builtin_lvl_geo(lll_geo_000BE0), + define_builtin_lvl_geo(lll_geo_000BF8), + define_builtin_lvl_geo(lll_geo_000C10), + define_builtin_lvl_geo(lll_geo_000C30), + define_builtin_lvl_geo(lll_geo_000C50), + define_builtin_lvl_geo(lll_geo_000C70), + define_builtin_lvl_geo(lll_geo_000C90), + define_builtin_lvl_geo(lll_geo_000CB0), + define_builtin_lvl_geo(lll_geo_000CD0), + define_builtin_lvl_geo(lll_geo_000CF0), + define_builtin_lvl_geo(lll_geo_000D10), + define_builtin_lvl_geo(lll_geo_000D30), + define_builtin_lvl_geo(lll_geo_000D50), + define_builtin_lvl_geo(lll_geo_000D70), + define_builtin_lvl_geo(lll_geo_000D90), + define_builtin_lvl_geo(lll_geo_000DB0), + define_builtin_lvl_geo(lll_geo_000DD0), + define_builtin_lvl_geo(lll_geo_000DE8), + define_builtin_lvl_geo(lll_geo_000E00), + define_builtin_lvl_geo(lll_geo_000EA8), + define_builtin_lvl_geo(lll_geo_000EC0), + define_builtin_lvl_geo(pss_geo_000100), + define_builtin_lvl_geo(rr_geo_000660), + define_builtin_lvl_geo(rr_geo_000678), + define_builtin_lvl_geo(rr_geo_000690), + define_builtin_lvl_geo(rr_geo_0006A8), + define_builtin_lvl_geo(rr_geo_0006C0), + define_builtin_lvl_geo(rr_geo_0006D8), + define_builtin_lvl_geo(rr_geo_0006F0), + define_builtin_lvl_geo(rr_geo_000708), + define_builtin_lvl_geo(rr_geo_000720), + define_builtin_lvl_geo(rr_geo_000738), + define_builtin_lvl_geo(rr_geo_000758), + define_builtin_lvl_geo(rr_geo_000770), + define_builtin_lvl_geo(rr_geo_000788), + define_builtin_lvl_geo(rr_geo_0007A0), + define_builtin_lvl_geo(rr_geo_0007B8), + define_builtin_lvl_geo(rr_geo_0007D0), + define_builtin_lvl_geo(rr_geo_0007E8), + define_builtin_lvl_geo(rr_geo_000800), + define_builtin_lvl_geo(rr_geo_000818), + define_builtin_lvl_geo(rr_geo_000830), + define_builtin_lvl_geo(rr_geo_000848), + define_builtin_lvl_geo(rr_geo_000860), + define_builtin_lvl_geo(rr_geo_000878), + define_builtin_lvl_geo(rr_geo_000890), + define_builtin_lvl_geo(rr_geo_0008A8), + define_builtin_lvl_geo(rr_geo_0008C0), + define_builtin_lvl_geo(rr_geo_0008D8), + define_builtin_lvl_geo(rr_geo_0008F0), + define_builtin_lvl_geo(rr_geo_000908), + define_builtin_lvl_geo(rr_geo_000920), + define_builtin_lvl_geo(rr_geo_000940), + define_builtin_lvl_geo(rr_geo_000958), + define_builtin_lvl_geo(rr_geo_000970), + define_builtin_lvl_geo(rr_geo_000988), + define_builtin_lvl_geo(rr_geo_0009A0), + define_builtin_lvl_geo(rr_geo_0009B8), + define_builtin_lvl_geo(rr_geo_0009D0), + define_builtin_lvl_geo(sa_geo_000170), + define_builtin_lvl_geo(sl_geo_000360), + define_builtin_lvl_geo(sl_geo_000378), + define_builtin_lvl_geo(sl_geo_000390), + define_builtin_lvl_geo(sl_geo_0003A8), + define_builtin_lvl_geo(sl_geo_000484), + define_builtin_lvl_geo(ssl_geo_0005C0), + define_builtin_lvl_geo(ssl_geo_0005D8), + define_builtin_lvl_geo(ssl_geo_000618), + define_builtin_lvl_geo(ssl_geo_000630), + define_builtin_lvl_geo(ssl_geo_000648), + define_builtin_lvl_geo(ssl_geo_000734), + define_builtin_lvl_geo(ssl_geo_000764), + define_builtin_lvl_geo(ssl_geo_000794), + define_builtin_lvl_geo(ssl_geo_0007AC), + define_builtin_lvl_geo(ssl_geo_0007CC), + define_builtin_lvl_geo(ssl_geo_00088C), + define_builtin_lvl_geo(thi_geo_0005B0), + define_builtin_lvl_geo(thi_geo_0005C8), + define_builtin_lvl_geo(thi_geo_0005F0), + define_builtin_lvl_geo(thi_geo_000608), + define_builtin_lvl_geo(thi_geo_0006D4), + define_builtin_lvl_geo(thi_geo_00079C), + define_builtin_lvl_geo(totwc_geo_000160), + define_builtin_lvl_geo(totwc_geo_000188), + define_builtin_lvl_geo(ttc_geo_000240), + define_builtin_lvl_geo(ttc_geo_000258), + define_builtin_lvl_geo(ttc_geo_000270), + define_builtin_lvl_geo(ttc_geo_000288), + define_builtin_lvl_geo(ttc_geo_0002A8), + define_builtin_lvl_geo(ttc_geo_0002C8), + define_builtin_lvl_geo(ttc_geo_0002E0), + define_builtin_lvl_geo(ttc_geo_0002F8), + define_builtin_lvl_geo(ttc_geo_000310), + define_builtin_lvl_geo(ttc_geo_000328), + define_builtin_lvl_geo(ttc_geo_000340), + define_builtin_lvl_geo(ttc_geo_000358), + define_builtin_lvl_geo(ttc_geo_000370), + define_builtin_lvl_geo(ttc_geo_000388), + define_builtin_lvl_geo(ttc_geo_0003A0), + define_builtin_lvl_geo(ttc_geo_0003B8), + define_builtin_lvl_geo(ttm_geo_000710), + define_builtin_lvl_geo(ttm_geo_000730), + define_builtin_lvl_geo(ttm_geo_000748), + define_builtin_lvl_geo(ttm_geo_000778), + define_builtin_lvl_geo(ttm_geo_0007A8), + define_builtin_lvl_geo(ttm_geo_0007D8), + define_builtin_lvl_geo(ttm_geo_000808), + define_builtin_lvl_geo(ttm_geo_000830), + define_builtin_lvl_geo(ttm_geo_000858), + define_builtin_lvl_geo(ttm_geo_000880), + define_builtin_lvl_geo(ttm_geo_0008A8), + define_builtin_lvl_geo(ttm_geo_0008D0), + define_builtin_lvl_geo(ttm_geo_0008F8), + define_builtin_lvl_geo(ttm_geo_000920), + define_builtin_lvl_geo(ttm_geo_000948), + define_builtin_lvl_geo(ttm_geo_000970), + define_builtin_lvl_geo(ttm_geo_000990), + define_builtin_lvl_geo(ttm_geo_0009C0), + define_builtin_lvl_geo(ttm_geo_0009F0), + define_builtin_lvl_geo(ttm_geo_000A18), + define_builtin_lvl_geo(ttm_geo_000A40), + define_builtin_lvl_geo(ttm_geo_000A70), + define_builtin_lvl_geo(ttm_geo_000B5C), + define_builtin_lvl_geo(ttm_geo_000BEC), + define_builtin_lvl_geo(ttm_geo_000C84), + define_builtin_lvl_geo(ttm_geo_000D14), + define_builtin_lvl_geo(ttm_geo_000D4C), + define_builtin_lvl_geo(ttm_geo_000D84), + define_builtin_lvl_geo(ttm_geo_000DBC), + define_builtin_lvl_geo(ttm_geo_000DF4), + define_builtin_lvl_geo(vcutm_geo_0001F0), + define_builtin_lvl_geo(vcutm_geo_000208), + define_builtin_lvl_geo(wdw_geo_000580), + define_builtin_lvl_geo(wdw_geo_000598), + define_builtin_lvl_geo(wdw_geo_0005C0), + define_builtin_lvl_geo(wdw_geo_0005E8), + define_builtin_lvl_geo(wdw_geo_000610), + define_builtin_lvl_geo(wdw_geo_000628), + define_builtin_lvl_geo(wdw_geo_000640), + define_builtin_lvl_geo(wdw_geo_000658), + define_builtin_lvl_geo(wdw_geo_000724), + define_builtin_lvl_geo(wf_geo_0007E0), + define_builtin_lvl_geo(wf_geo_000820), + define_builtin_lvl_geo(wf_geo_000860), + define_builtin_lvl_geo(wf_geo_000878), + define_builtin_lvl_geo(wf_geo_000890), + define_builtin_lvl_geo(wf_geo_0008A8), + define_builtin_lvl_geo(wf_geo_0008E8), + define_builtin_lvl_geo(wf_geo_000900), + define_builtin_lvl_geo(wf_geo_000940), + define_builtin_lvl_geo(wf_geo_000958), + define_builtin_lvl_geo(wf_geo_0009A0), + define_builtin_lvl_geo(wf_geo_0009B8), + define_builtin_lvl_geo(wf_geo_0009D0), + define_builtin_lvl_geo(wf_geo_0009E8), + define_builtin_lvl_geo(wf_geo_000A00), + define_builtin_lvl_geo(wf_geo_000A40), + define_builtin_lvl_geo(wf_geo_000A58), + define_builtin_lvl_geo(wf_geo_000A98), + define_builtin_lvl_geo(wf_geo_000AB0), + define_builtin_lvl_geo(wf_geo_000AC8), + define_builtin_lvl_geo(wf_geo_000AE0), + define_builtin_lvl_geo(wf_geo_000AF8), + define_builtin_lvl_geo(wf_geo_000B10), + define_builtin_lvl_geo(wf_geo_000B38), + define_builtin_lvl_geo(wf_geo_000B60), + define_builtin_lvl_geo(wf_geo_000B78), + define_builtin_lvl_geo(wf_geo_000B90), + define_builtin_lvl_geo(wf_geo_000BA8), + define_builtin_lvl_geo(wf_geo_000BC8), + define_builtin_lvl_geo(wf_geo_000BE0), + define_builtin_lvl_geo(wf_geo_000BF8), + define_builtin_lvl_geo(wmotr_geo_0001F0), +}; + +const GeoLayout* DynOS_Builtin_LvlGeo_GetFromName(const char* aDataName) { + MGR_FIND_DATA(sDynosBuiltinLvlGeos, (const GeoLayout*)); +} + +const char* DynOS_Builtin_LvlGeo_GetFromData(const GeoLayout* aData) { + MGR_FIND_NAME(sDynosBuiltinLvlGeos); +} + + //////////////// + // Level Cols // +//////////////// + +#define define_builtin_lvl_col(col) (const void*) #col, (const void*) col +static const void* sDynosBuiltinLvlCols[] = { + define_builtin_lvl_col(bbh_seg7_collision_07026B1C), + define_builtin_lvl_col(bbh_seg7_collision_coffin), + define_builtin_lvl_col(bbh_seg7_collision_haunted_bookshelf), + define_builtin_lvl_col(bbh_seg7_collision_level), + define_builtin_lvl_col(bbh_seg7_collision_merry_go_round), + define_builtin_lvl_col(bbh_seg7_collision_mesh_elevator), + define_builtin_lvl_col(bbh_seg7_collision_staircase_step), + define_builtin_lvl_col(bbh_seg7_collision_tilt_floor_platform), + define_builtin_lvl_col(bitdw_seg7_collision_0700F688), + define_builtin_lvl_col(bitdw_seg7_collision_0700F70C), + define_builtin_lvl_col(bitdw_seg7_collision_0700F7F0), + define_builtin_lvl_col(bitdw_seg7_collision_0700F898), + define_builtin_lvl_col(bitdw_seg7_collision_0700F91C), + define_builtin_lvl_col(bitdw_seg7_collision_0700FA3C), + define_builtin_lvl_col(bitdw_seg7_collision_0700FB5C), + define_builtin_lvl_col(bitdw_seg7_collision_0700FC7C), + define_builtin_lvl_col(bitdw_seg7_collision_0700FD9C), + define_builtin_lvl_col(bitdw_seg7_collision_level), + define_builtin_lvl_col(bitdw_seg7_collision_moving_pyramid), + define_builtin_lvl_col(bitfs_seg7_collision_07015124), + define_builtin_lvl_col(bitfs_seg7_collision_07015288), + define_builtin_lvl_col(bitfs_seg7_collision_07015714), + define_builtin_lvl_col(bitfs_seg7_collision_07015768), + define_builtin_lvl_col(bitfs_seg7_collision_070157E0), + define_builtin_lvl_col(bitfs_seg7_collision_07015928), + define_builtin_lvl_col(bitfs_seg7_collision_inverted_pyramid), + define_builtin_lvl_col(bitfs_seg7_collision_level), + define_builtin_lvl_col(bitfs_seg7_collision_sinking_cage_platform), + define_builtin_lvl_col(bitfs_seg7_collision_sinking_platform), + define_builtin_lvl_col(bitfs_seg7_collision_squishable_platform), + define_builtin_lvl_col(bits_seg7_collision_0701A9A0), + define_builtin_lvl_col(bits_seg7_collision_0701AA0C), + define_builtin_lvl_col(bits_seg7_collision_0701AA84), + define_builtin_lvl_col(bits_seg7_collision_0701AC28), + define_builtin_lvl_col(bits_seg7_collision_0701ACAC), + define_builtin_lvl_col(bits_seg7_collision_0701AD54), + define_builtin_lvl_col(bits_seg7_collision_0701ADD8), + define_builtin_lvl_col(bits_seg7_collision_0701AE5C), + define_builtin_lvl_col(bits_seg7_collision_0701B0D4), + define_builtin_lvl_col(bits_seg7_collision_0701B26C), + define_builtin_lvl_col(bits_seg7_collision_0701B404), + define_builtin_lvl_col(bits_seg7_collision_0701B59C), + define_builtin_lvl_col(bits_seg7_collision_0701B734), + define_builtin_lvl_col(bits_seg7_collision_level), + define_builtin_lvl_col(bob_seg7_collision_bridge), + define_builtin_lvl_col(bob_seg7_collision_chain_chomp_gate), + define_builtin_lvl_col(bob_seg7_collision_gate), + define_builtin_lvl_col(bob_seg7_collision_level), + define_builtin_lvl_col(bowser_1_seg7_collision_level), + define_builtin_lvl_col(bowser_2_seg7_collision_lava), + define_builtin_lvl_col(bowser_2_seg7_collision_tilting_platform), + define_builtin_lvl_col(bowser_3_seg7_collision_07004B94), + define_builtin_lvl_col(bowser_3_seg7_collision_07004C18), + define_builtin_lvl_col(bowser_3_seg7_collision_07004C9C), + define_builtin_lvl_col(bowser_3_seg7_collision_07004D20), + define_builtin_lvl_col(bowser_3_seg7_collision_07004DA4), + define_builtin_lvl_col(bowser_3_seg7_collision_07004E28), + define_builtin_lvl_col(bowser_3_seg7_collision_07004EAC), + define_builtin_lvl_col(bowser_3_seg7_collision_07004F30), + define_builtin_lvl_col(bowser_3_seg7_collision_07004FB4), + define_builtin_lvl_col(bowser_3_seg7_collision_07005038), + define_builtin_lvl_col(bowser_3_seg7_collision_level), + define_builtin_lvl_col(castle_courtyard_seg7_collision), + define_builtin_lvl_col(castle_grounds_seg7_collision_cannon_grill), + define_builtin_lvl_col(castle_grounds_seg7_collision_level), + define_builtin_lvl_col(castle_grounds_seg7_collision_moat_grills), + define_builtin_lvl_col(ccm_seg7_area_1_collision), + define_builtin_lvl_col(ccm_seg7_area_2_collision), + define_builtin_lvl_col(ccm_seg7_collision_070163F8), + define_builtin_lvl_col(cotmc_seg7_collision_level), + define_builtin_lvl_col(ddd_seg7_area_1_collision), + define_builtin_lvl_col(ddd_seg7_area_2_collision), + define_builtin_lvl_col(ddd_seg7_collision_bowser_sub_door), + define_builtin_lvl_col(ddd_seg7_collision_submarine), + define_builtin_lvl_col(hmc_seg7_collision_0702B65C), + define_builtin_lvl_col(hmc_seg7_collision_controllable_platform_sub), + define_builtin_lvl_col(hmc_seg7_collision_controllable_platform), + define_builtin_lvl_col(hmc_seg7_collision_elevator), + define_builtin_lvl_col(hmc_seg7_collision_level), + define_builtin_lvl_col(inside_castle_seg7_area_1_collision), + define_builtin_lvl_col(inside_castle_seg7_area_2_collision), + define_builtin_lvl_col(inside_castle_seg7_area_3_collision), + define_builtin_lvl_col(inside_castle_seg7_collision_ddd_warp_2), + define_builtin_lvl_col(inside_castle_seg7_collision_ddd_warp), + define_builtin_lvl_col(inside_castle_seg7_collision_floor_trap), + define_builtin_lvl_col(inside_castle_seg7_collision_star_door), + define_builtin_lvl_col(inside_castle_seg7_collision_water_level_pillar), + define_builtin_lvl_col(jrb_seg7_area_1_collision), + define_builtin_lvl_col(jrb_seg7_area_2_collision), + define_builtin_lvl_col(jrb_seg7_collision_0700CEF0), + define_builtin_lvl_col(jrb_seg7_collision_0700D1DC), + define_builtin_lvl_col(jrb_seg7_collision_floating_box), + define_builtin_lvl_col(jrb_seg7_collision_floating_platform), + define_builtin_lvl_col(jrb_seg7_collision_in_sunken_ship_2), + define_builtin_lvl_col(jrb_seg7_collision_in_sunken_ship_3), + define_builtin_lvl_col(jrb_seg7_collision_in_sunken_ship), + define_builtin_lvl_col(jrb_seg7_collision_pillar_base), + define_builtin_lvl_col(jrb_seg7_collision_rock_solid), + define_builtin_lvl_col(lll_seg7_area_1_collision), + define_builtin_lvl_col(lll_seg7_area_2_collision), + define_builtin_lvl_col(lll_seg7_collision_0701D21C), + define_builtin_lvl_col(lll_seg7_collision_drawbridge), + define_builtin_lvl_col(lll_seg7_collision_falling_wall), + define_builtin_lvl_col(lll_seg7_collision_floating_block), + define_builtin_lvl_col(lll_seg7_collision_hexagonal_platform), + define_builtin_lvl_col(lll_seg7_collision_inverted_pyramid), + define_builtin_lvl_col(lll_seg7_collision_octagonal_moving_platform), + define_builtin_lvl_col(lll_seg7_collision_pitoune), + define_builtin_lvl_col(lll_seg7_collision_puzzle_piece), + define_builtin_lvl_col(lll_seg7_collision_rotating_fire_bars), + define_builtin_lvl_col(lll_seg7_collision_rotating_platform), + define_builtin_lvl_col(lll_seg7_collision_sinking_pyramids), + define_builtin_lvl_col(lll_seg7_collision_slow_tilting_platform), + define_builtin_lvl_col(lll_seg7_collision_wood_piece), + define_builtin_lvl_col(pss_seg7_collision), + define_builtin_lvl_col(rr_seg7_collision_07029038), + define_builtin_lvl_col(rr_seg7_collision_07029508), + define_builtin_lvl_col(rr_seg7_collision_070295F8), + define_builtin_lvl_col(rr_seg7_collision_0702967C), + define_builtin_lvl_col(rr_seg7_collision_07029750), + define_builtin_lvl_col(rr_seg7_collision_07029858), + define_builtin_lvl_col(rr_seg7_collision_07029924), + define_builtin_lvl_col(rr_seg7_collision_07029C1C), + define_builtin_lvl_col(rr_seg7_collision_07029FA4), + define_builtin_lvl_col(rr_seg7_collision_0702A32C), + define_builtin_lvl_col(rr_seg7_collision_0702A6B4), + define_builtin_lvl_col(rr_seg7_collision_donut_platform), + define_builtin_lvl_col(rr_seg7_collision_elevator_platform), + define_builtin_lvl_col(rr_seg7_collision_level), + define_builtin_lvl_col(rr_seg7_collision_pendulum), + define_builtin_lvl_col(rr_seg7_collision_rotating_platform_with_fire), + define_builtin_lvl_col(sa_seg7_collision), + define_builtin_lvl_col(sl_seg7_area_1_collision), + define_builtin_lvl_col(sl_seg7_area_2_collision), + define_builtin_lvl_col(sl_seg7_collision_pound_explodes), + define_builtin_lvl_col(sl_seg7_collision_sliding_snow_mound), + define_builtin_lvl_col(ssl_seg7_area_1_collision), + define_builtin_lvl_col(ssl_seg7_area_2_collision), + define_builtin_lvl_col(ssl_seg7_area_3_collision), + define_builtin_lvl_col(ssl_seg7_collision_0702808C), + define_builtin_lvl_col(ssl_seg7_collision_07028274), + define_builtin_lvl_col(ssl_seg7_collision_070282F8), + define_builtin_lvl_col(ssl_seg7_collision_07028370), + define_builtin_lvl_col(ssl_seg7_collision_070284B0), + define_builtin_lvl_col(ssl_seg7_collision_grindel), + define_builtin_lvl_col(ssl_seg7_collision_pyramid_elevator), + define_builtin_lvl_col(ssl_seg7_collision_pyramid_top), + define_builtin_lvl_col(ssl_seg7_collision_spindel), + define_builtin_lvl_col(ssl_seg7_collision_tox_box), + define_builtin_lvl_col(thi_seg7_area_1_collision), + define_builtin_lvl_col(thi_seg7_area_2_collision), + define_builtin_lvl_col(thi_seg7_area_3_collision), + define_builtin_lvl_col(thi_seg7_collision_top_trap), + define_builtin_lvl_col(totwc_seg7_collision), + define_builtin_lvl_col(ttc_seg7_collision_07014F70), + define_builtin_lvl_col(ttc_seg7_collision_07015008), + define_builtin_lvl_col(ttc_seg7_collision_070152B4), + define_builtin_lvl_col(ttc_seg7_collision_070153E0), + define_builtin_lvl_col(ttc_seg7_collision_07015584), + define_builtin_lvl_col(ttc_seg7_collision_07015650), + define_builtin_lvl_col(ttc_seg7_collision_07015754), + define_builtin_lvl_col(ttc_seg7_collision_070157D8), + define_builtin_lvl_col(ttc_seg7_collision_clock_main_rotation), + define_builtin_lvl_col(ttc_seg7_collision_clock_pendulum), + define_builtin_lvl_col(ttc_seg7_collision_clock_platform), + define_builtin_lvl_col(ttc_seg7_collision_level), + define_builtin_lvl_col(ttc_seg7_collision_rotating_clock_platform2), + define_builtin_lvl_col(ttc_seg7_collision_sliding_surface), + define_builtin_lvl_col(ttm_seg7_area_1_collision), + define_builtin_lvl_col(ttm_seg7_area_2_collision), + define_builtin_lvl_col(ttm_seg7_area_3_collision), + define_builtin_lvl_col(ttm_seg7_area_4_collision), + define_builtin_lvl_col(ttm_seg7_collision_pitoune_2), + define_builtin_lvl_col(ttm_seg7_collision_podium_warp), + define_builtin_lvl_col(ttm_seg7_collision_ukiki_cage), + define_builtin_lvl_col(vcutm_seg7_collision_0700AC44), + define_builtin_lvl_col(vcutm_seg7_collision), + define_builtin_lvl_col(wdw_seg7_area_1_collision), + define_builtin_lvl_col(wdw_seg7_area_2_collision), + define_builtin_lvl_col(wdw_seg7_collision_070184C8), + define_builtin_lvl_col(wdw_seg7_collision_07018528), + define_builtin_lvl_col(wdw_seg7_collision_070186B4), + define_builtin_lvl_col(wdw_seg7_collision_arrow_lift), + define_builtin_lvl_col(wdw_seg7_collision_express_elevator_platform), + define_builtin_lvl_col(wdw_seg7_collision_rect_floating_platform), + define_builtin_lvl_col(wdw_seg7_collision_square_floating_platform), + define_builtin_lvl_col(wf_seg7_collision_070102D8), + define_builtin_lvl_col(wf_seg7_collision_breakable_wall_2), + define_builtin_lvl_col(wf_seg7_collision_breakable_wall), + define_builtin_lvl_col(wf_seg7_collision_bullet_bill_cannon), + define_builtin_lvl_col(wf_seg7_collision_clocklike_rotation), + define_builtin_lvl_col(wf_seg7_collision_kickable_board), + define_builtin_lvl_col(wf_seg7_collision_large_bomp), + define_builtin_lvl_col(wf_seg7_collision_platform), + define_builtin_lvl_col(wf_seg7_collision_rotating_platform), + define_builtin_lvl_col(wf_seg7_collision_sliding_brick_platform), + define_builtin_lvl_col(wf_seg7_collision_small_bomp), + define_builtin_lvl_col(wf_seg7_collision_tower_door), + define_builtin_lvl_col(wf_seg7_collision_tower), + define_builtin_lvl_col(wf_seg7_collision_trapezoid), + define_builtin_lvl_col(wf_seg7_collision_tumbling_bridge), + define_builtin_lvl_col(wmotr_seg7_collision), +}; + +const Collision* DynOS_Builtin_LvlCol_GetFromName(const char* aDataName) { + MGR_FIND_DATA(sDynosBuiltinLvlCols, (const Collision*)); +} + +const char* DynOS_Builtin_LvlCol_GetFromData(const Collision* aData) { + MGR_FIND_NAME(sDynosBuiltinLvlCols); +} + + ////////////// + // Textures // +////////////// + +#define define_builtin_tex(tex) (const void*) #tex, (const void*) tex +static const void* sDynosBuiltinTexs[] = { + define_builtin_tex(cave_09000000), + define_builtin_tex(cave_09001000), + define_builtin_tex(cave_09001800), + define_builtin_tex(cave_09002800), + define_builtin_tex(cave_09003000), + define_builtin_tex(cave_09003800), + define_builtin_tex(cave_09004800), + define_builtin_tex(cave_09005800), + define_builtin_tex(cave_09006800), + define_builtin_tex(cave_09007000), + define_builtin_tex(cave_09007800), + define_builtin_tex(cave_09008800), + define_builtin_tex(cave_09009800), + define_builtin_tex(cave_0900A000), + define_builtin_tex(cave_0900A800), + define_builtin_tex(cave_0900B800), + define_builtin_tex(cave_0900C000), + define_builtin_tex(fire_09000000), + define_builtin_tex(fire_09000800), + define_builtin_tex(fire_09001000), + define_builtin_tex(fire_09001800), + define_builtin_tex(fire_09002000), + define_builtin_tex(fire_09002800), + define_builtin_tex(fire_09003000), + define_builtin_tex(fire_09003800), + define_builtin_tex(fire_09004000), + define_builtin_tex(fire_09004800), + define_builtin_tex(fire_09005000), + define_builtin_tex(fire_09005800), + define_builtin_tex(fire_09006000), + define_builtin_tex(fire_09006800), + define_builtin_tex(fire_09007000), + define_builtin_tex(fire_09007800), + define_builtin_tex(fire_09008000), + define_builtin_tex(fire_09008800), + define_builtin_tex(fire_09009000), + define_builtin_tex(fire_09009800), + define_builtin_tex(fire_0900A000), + define_builtin_tex(fire_0900A800), + define_builtin_tex(fire_0900B000), + define_builtin_tex(fire_0900B800), + define_builtin_tex(generic_09000000), + define_builtin_tex(generic_09000800), + define_builtin_tex(generic_09001000), + define_builtin_tex(generic_09001800), + define_builtin_tex(generic_09002000), + define_builtin_tex(generic_09002800), + define_builtin_tex(generic_09003000), + define_builtin_tex(generic_09003800), + define_builtin_tex(generic_09004000), + define_builtin_tex(generic_09004800), + define_builtin_tex(generic_09005000), + define_builtin_tex(generic_09005800), + define_builtin_tex(generic_09006000), + define_builtin_tex(generic_09007000), + define_builtin_tex(generic_09007800), + define_builtin_tex(generic_09008000), + define_builtin_tex(generic_09008800), + define_builtin_tex(generic_09009000), + define_builtin_tex(generic_09009800), + define_builtin_tex(generic_0900A000), + define_builtin_tex(generic_0900A800), + define_builtin_tex(generic_0900B000), + define_builtin_tex(grass_09000000), + define_builtin_tex(grass_09000800), + define_builtin_tex(grass_09001000), + define_builtin_tex(grass_09001800), + define_builtin_tex(grass_09002000), + define_builtin_tex(grass_09002800), + define_builtin_tex(grass_09003000), + define_builtin_tex(grass_09003800), + define_builtin_tex(grass_09004000), + define_builtin_tex(grass_09004800), + define_builtin_tex(grass_09005000), + define_builtin_tex(grass_09005800), + define_builtin_tex(grass_09006000), + define_builtin_tex(grass_09006800), + define_builtin_tex(grass_09007000), + define_builtin_tex(grass_09007800), + define_builtin_tex(grass_09008000), + define_builtin_tex(grass_09008800), + define_builtin_tex(grass_09009000), + define_builtin_tex(grass_09009800), + define_builtin_tex(grass_0900A000), + define_builtin_tex(grass_0900A800), + define_builtin_tex(grass_0900B000), + define_builtin_tex(grass_0900B800), + define_builtin_tex(inside_09000000), + define_builtin_tex(inside_09001000), + define_builtin_tex(inside_09002000), + define_builtin_tex(inside_09003000), + define_builtin_tex(inside_09003800), + define_builtin_tex(inside_09004000), + define_builtin_tex(inside_09004800), + define_builtin_tex(inside_09005000), + define_builtin_tex(inside_09005800), + define_builtin_tex(inside_09006000), + define_builtin_tex(inside_09007000), + define_builtin_tex(inside_09008000), + define_builtin_tex(inside_09008800), + define_builtin_tex(inside_09009000), + define_builtin_tex(inside_0900A000), + define_builtin_tex(inside_0900B000), + define_builtin_tex(inside_0900B800), + define_builtin_tex(machine_09000000), + define_builtin_tex(machine_09000800), + define_builtin_tex(machine_09001000), + define_builtin_tex(machine_09001800), + define_builtin_tex(machine_09002000), + define_builtin_tex(machine_09002800), + define_builtin_tex(machine_09003000), + define_builtin_tex(machine_09003800), + define_builtin_tex(machine_09004000), + define_builtin_tex(machine_09005000), + define_builtin_tex(machine_09005800), + define_builtin_tex(machine_09006000), + define_builtin_tex(machine_09006800), + define_builtin_tex(machine_09007000), + define_builtin_tex(machine_09007800), + define_builtin_tex(machine_09008000), + define_builtin_tex(machine_09008400), + define_builtin_tex(mountain_09000000), + define_builtin_tex(mountain_09000800), + define_builtin_tex(mountain_09001800), + define_builtin_tex(mountain_09002800), + define_builtin_tex(mountain_09003000), + define_builtin_tex(mountain_09003800), + define_builtin_tex(mountain_09004000), + define_builtin_tex(mountain_09004800), + define_builtin_tex(mountain_09005000), + define_builtin_tex(mountain_09005800), + define_builtin_tex(mountain_09006800), + define_builtin_tex(mountain_09007000), + define_builtin_tex(mountain_09007800), + define_builtin_tex(mountain_09008000), + define_builtin_tex(mountain_09008800), + define_builtin_tex(mountain_09009800), + define_builtin_tex(mountain_0900A000), + define_builtin_tex(mountain_0900A800), + define_builtin_tex(mountain_0900B000), + define_builtin_tex(mountain_0900B800), + define_builtin_tex(mountain_0900C000), + define_builtin_tex(outside_09000000), + define_builtin_tex(outside_09000800), + define_builtin_tex(outside_09001000), + define_builtin_tex(outside_09002000), + define_builtin_tex(outside_09003000), + define_builtin_tex(outside_09003800), + define_builtin_tex(outside_09004000), + define_builtin_tex(outside_09004800), + define_builtin_tex(outside_09005800), + define_builtin_tex(outside_09006000), + define_builtin_tex(outside_09006800), + define_builtin_tex(outside_09007800), + define_builtin_tex(outside_09008000), + define_builtin_tex(outside_09008800), + define_builtin_tex(outside_09009000), + define_builtin_tex(outside_09009800), + define_builtin_tex(outside_0900A000), + define_builtin_tex(outside_0900A800), + define_builtin_tex(outside_0900B000), + define_builtin_tex(outside_0900B400), + define_builtin_tex(outside_0900BC00), + define_builtin_tex(sky_09000000), + define_builtin_tex(sky_09000800), + define_builtin_tex(sky_09001000), + define_builtin_tex(sky_09001800), + define_builtin_tex(sky_09002000), + define_builtin_tex(sky_09003000), + define_builtin_tex(sky_09003800), + define_builtin_tex(sky_09004800), + define_builtin_tex(sky_09005000), + define_builtin_tex(sky_09005800), + define_builtin_tex(sky_09006000), + define_builtin_tex(texture_metal_hole), + define_builtin_tex(sky_09007000), + define_builtin_tex(sky_09007800), + define_builtin_tex(sky_09008000), + define_builtin_tex(snow_09000000), + define_builtin_tex(snow_09000800), + define_builtin_tex(snow_09001000), + define_builtin_tex(snow_09002000), + define_builtin_tex(snow_09002800), + define_builtin_tex(snow_09003000), + define_builtin_tex(snow_09003800), + define_builtin_tex(snow_09004000), + define_builtin_tex(snow_09004800), + define_builtin_tex(snow_09005000), + define_builtin_tex(snow_09005800), + define_builtin_tex(snow_09006000), + define_builtin_tex(snow_09006800), + define_builtin_tex(snow_09007000), + define_builtin_tex(snow_09008000), + define_builtin_tex(snow_09008800), + define_builtin_tex(snow_09009000), + define_builtin_tex(snow_09009800), + define_builtin_tex(spooky_09000000), + define_builtin_tex(spooky_09000800), + define_builtin_tex(spooky_09001800), + define_builtin_tex(spooky_09002800), + define_builtin_tex(spooky_09003800), + define_builtin_tex(spooky_09004800), + define_builtin_tex(spooky_09005000), + define_builtin_tex(spooky_09006000), + define_builtin_tex(spooky_09006800), + define_builtin_tex(spooky_09007000), + define_builtin_tex(spooky_09008000), + define_builtin_tex(spooky_09008800), + define_builtin_tex(spooky_09009000), + define_builtin_tex(spooky_0900A000), + define_builtin_tex(spooky_0900A800), + define_builtin_tex(spooky_0900B000), + define_builtin_tex(spooky_0900B800), + define_builtin_tex(water_09000000), + define_builtin_tex(water_09000800), + define_builtin_tex(water_09001800), + define_builtin_tex(water_09002800), + define_builtin_tex(water_09003800), + define_builtin_tex(water_09004800), + define_builtin_tex(water_09005800), + define_builtin_tex(water_09006000), + define_builtin_tex(water_09006800), + define_builtin_tex(water_09007800), + define_builtin_tex(water_09008800), + define_builtin_tex(water_09009000), + define_builtin_tex(water_0900A000), + define_builtin_tex(water_0900A800), + define_builtin_tex(water_0900B800), +}; + +const Texture* DynOS_Builtin_Tex_GetFromName(const char* aDataName) { + MGR_FIND_DATA(sDynosBuiltinTexs, (const Texture*)); +} + +const char* DynOS_Builtin_Tex_GetFromData(const Texture* aData) { + MGR_FIND_NAME(sDynosBuiltinTexs); +} + + //////////////////// + // Functions Ptrs // +//////////////////// + +static void *geo_rotate_3d_coin(s32 callContext, void *node, UNUSED void *c) { + if (callContext == GEO_CONTEXT_RENDER) { + struct Object *obj = (struct Object *) gCurGraphNodeObject; + struct GraphNodeRotation *rotNode = (struct GraphNodeRotation *) ((struct GraphNode *) node)->next; + rotNode->rotation[0] = 0; + rotNode->rotation[1] = obj->oAnimState; + rotNode->rotation[2] = 0; + obj->oAnimState += 0x0800; + } + return NULL; +} + +#define define_builtin_func(tex) (const void*) #tex, (const void*) tex +static const void* sDynosBuiltinFuncs[] = { + define_builtin_func(geo_mirror_mario_set_alpha), + define_builtin_func(geo_switch_mario_stand_run), + define_builtin_func(geo_switch_mario_eyes), + define_builtin_func(geo_mario_tilt_torso), + define_builtin_func(geo_mario_head_rotation), + define_builtin_func(geo_switch_mario_hand), + define_builtin_func(geo_mario_hand_foot_scaler), + define_builtin_func(geo_switch_mario_cap_effect), + define_builtin_func(geo_switch_mario_cap_on_off), + define_builtin_func(geo_mario_rotate_wing_cap_wings), + define_builtin_func(geo_switch_mario_hand_grab_pos), + define_builtin_func(geo_render_mirror_mario), + define_builtin_func(geo_mirror_mario_backface_culling), + define_builtin_func(geo_update_projectile_pos_from_parent), + define_builtin_func(geo_update_layer_transparency), + define_builtin_func(geo_switch_anim_state), + define_builtin_func(geo_switch_area), + define_builtin_func(geo_camera_main), + define_builtin_func(geo_camera_fov), + define_builtin_func(geo_envfx_main), + define_builtin_func(geo_skybox_main), + define_builtin_func(geo_wdw_set_initial_water_level), + define_builtin_func(geo_movtex_pause_control), + define_builtin_func(geo_movtex_draw_water_regions), + define_builtin_func(geo_movtex_draw_nocolor), + define_builtin_func(geo_movtex_draw_colored), + define_builtin_func(geo_movtex_draw_colored_no_update), + define_builtin_func(geo_movtex_draw_colored_2_no_update), + define_builtin_func(geo_movtex_update_horizontal), + define_builtin_func(geo_movtex_draw_colored_no_update), + define_builtin_func(geo_painting_draw), + define_builtin_func(geo_painting_update), + define_builtin_func(geo_exec_inside_castle_light), + define_builtin_func(geo_exec_flying_carpet_timer_update), + define_builtin_func(geo_exec_flying_carpet_create), + define_builtin_func(geo_exec_cake_end_screen), + define_builtin_func(geo_cannon_circle_base), + define_builtin_func(geo_move_mario_part_from_parent), + define_builtin_func(geo_bits_bowser_coloring), + define_builtin_func(geo_update_body_rot_from_parent), + define_builtin_func(geo_switch_bowser_eyes), + define_builtin_func(geo_switch_tuxie_mother_eyes), + define_builtin_func(geo_update_held_mario_pos), + define_builtin_func(geo_snufit_move_mask), + define_builtin_func(geo_snufit_scale_body), + define_builtin_func(geo_scale_bowser_key), + (const void *) "geo_rotate_coin", (const void *) geo_rotate_3d_coin, + define_builtin_func(geo_offset_klepto_held_object), + define_builtin_func(geo_switch_peach_eyes), + // coop-specific + define_builtin_func(geo_mario_set_player_colors), + define_builtin_func(geo_movtex_draw_water_regions_ext), + define_builtin_func(lvl_init_or_update), +}; + +const void* DynOS_Builtin_Func_GetFromName(const char* aDataName) { + MGR_FIND_DATA(sDynosBuiltinFuncs, (const void*)); +} + +const void* DynOS_Builtin_Func_GetFromIndex(s32 aIndex) { + size_t count = sizeof(sDynosBuiltinFuncs) / (2 * sizeof(sDynosBuiltinFuncs[0])); + if (aIndex < 0 || aIndex >= count) { return NULL; } + return (const void*)sDynosBuiltinFuncs[aIndex * 2 + 1]; +} + +s32 DynOS_Builtin_Func_GetIndexFromData(const void* aData) { + size_t count = sizeof(sDynosBuiltinFuncs) / (2 * sizeof(sDynosBuiltinFuncs[0])); + for (s32 i = 0; i < count; i++) { + if ((const void*)sDynosBuiltinFuncs[i * 2 + 1] == aData) { + return i; + } + } + return -1; +} diff --git a/data/dynos_mgr_vanilla_data.cpp b/data/dynos_mgr_vanilla_data.cpp deleted file mode 100644 index f2db12f20..000000000 --- a/data/dynos_mgr_vanilla_data.cpp +++ /dev/null @@ -1,1148 +0,0 @@ -#include "dynos.cpp.h" -extern "C" { -#include "behavior_table.h" -#include "levels/scripts.h" -#include "object_fields.h" -#include "engine/level_script.h" -#include "game/object_helpers.h" -#include "game/segment2.h" -#include "game/level_geo.h" -#include "game/level_update.h" -#include "game/moving_texture.h" -#include "game/paintings.h" -#include "game/geo_misc.h" -#include "game/mario_misc.h" -#include "game/mario_actions_cutscene.h" -#include "game/screen_transition.h" -#include "game/object_list_processor.h" -#include "game/behavior_actions.h" -#include "game/rendering_graph_node.h" -#include "game/skybox.h" - -#include "levels/bbh/header.h" -#include "levels/bitdw/header.h" -#include "levels/bitfs/header.h" -#include "levels/bits/header.h" -#include "levels/bob/header.h" -#include "levels/bowser_1/header.h" -#include "levels/bowser_2/header.h" -#include "levels/bowser_2/header.h" -#include "levels/bowser_3/header.h" -#include "levels/bowser_3/header.h" -#include "levels/castle_courtyard/header.h" -#include "levels/castle_grounds/header.h" -#include "levels/castle_inside/header.h" -#include "levels/ccm/header.h" -#include "levels/cotmc/header.h" -#include "levels/ddd/header.h" -#include "levels/hmc/header.h" -#include "levels/jrb/header.h" -#include "levels/lll/header.h" -#include "levels/pss/header.h" -#include "levels/rr/header.h" -#include "levels/sa/header.h" -#include "levels/sl/header.h" -#include "levels/ssl/header.h" -#include "levels/thi/header.h" -#include "levels/totwc/header.h" -#include "levels/ttc/header.h" -#include "levels/ttm/header.h" -#include "levels/vcutm/header.h" -#include "levels/wdw/header.h" -#include "levels/wf/header.h" -#include "levels/wmotr/header.h" - -#include "textures.h" -} - -#define MGR_FIND_DATA(_DataTable, _Cast) \ - size_t _count = sizeof(_DataTable) / (2 * sizeof(_DataTable[0])); \ - for (u32 _i = 0; _i < _count; _i++) { \ - if (!strcmp((const char*)_DataTable[_i * 2 + 0], aDataName)) { \ - return _Cast _DataTable[_i * 2 + 1]; \ - } \ - } \ - return NULL; - -#define MGR_FIND_NAME(_DataTable) \ - size_t _count = sizeof(_DataTable) / (2 * sizeof(_DataTable[0])); \ - for (u32 _i = 0; _i < _count; _i++) { \ - if ((const void*)_DataTable[_i * 2 + 1] == aData) { \ - return (const char*)_DataTable[_i * 2 + 0]; \ - } \ - } \ - return NULL; - - /////////////////////// - // Function Pointers // -/////////////////////// - -#define define_vanilla_script_ptr(ptr) (const void*)#ptr, (const void*)ptr - -static const void* sDynosVanillaScriptPtrs[] = { - define_vanilla_script_ptr(level_main_scripts_entry), - define_vanilla_script_ptr(script_func_global_1), - define_vanilla_script_ptr(script_func_global_2), - define_vanilla_script_ptr(script_func_global_3), - define_vanilla_script_ptr(script_func_global_4), - define_vanilla_script_ptr(script_func_global_5), - define_vanilla_script_ptr(script_func_global_6), - define_vanilla_script_ptr(script_func_global_7), - define_vanilla_script_ptr(script_func_global_8), - define_vanilla_script_ptr(script_func_global_9), - define_vanilla_script_ptr(script_func_global_10), - define_vanilla_script_ptr(script_func_global_11), - define_vanilla_script_ptr(script_func_global_12), - define_vanilla_script_ptr(script_func_global_13), - define_vanilla_script_ptr(script_func_global_14), - define_vanilla_script_ptr(script_func_global_15), - define_vanilla_script_ptr(script_func_global_16), - define_vanilla_script_ptr(script_func_global_17), - define_vanilla_script_ptr(script_func_global_18), -}; - -const void* DynOS_Mgr_VanillaScriptPtr_GetFromName(const char* aDataName) { - MGR_FIND_DATA(sDynosVanillaScriptPtrs, (const void*)); -} - -const char* DynOS_Mgr_VanillaScriptPtr_GetFromData(const void* aData) { - MGR_FIND_NAME(sDynosVanillaScriptPtrs); -} - - //////////////// - // Level Geos // -//////////////// - -#define define_vanilla_lvl_geo(tex) (const void*) #tex, (const void*) tex -static const void* sDynosVanillaLvlGeos[] = { - define_vanilla_lvl_geo(bitfs_geo_0004B0), - define_vanilla_lvl_geo(bitfs_geo_0004C8), - define_vanilla_lvl_geo(bitfs_geo_0004E0), - define_vanilla_lvl_geo(bitfs_geo_0004F8), - define_vanilla_lvl_geo(bitfs_geo_000510), - define_vanilla_lvl_geo(bitfs_geo_000528), - define_vanilla_lvl_geo(bitfs_geo_000540), - define_vanilla_lvl_geo(bitfs_geo_000558), - define_vanilla_lvl_geo(bitfs_geo_000570), - define_vanilla_lvl_geo(bitfs_geo_000588), - define_vanilla_lvl_geo(bitfs_geo_0005A0), - define_vanilla_lvl_geo(bitfs_geo_0005B8), - define_vanilla_lvl_geo(bitfs_geo_0005D0), - define_vanilla_lvl_geo(bitfs_geo_0005E8), - define_vanilla_lvl_geo(bitfs_geo_000600), - define_vanilla_lvl_geo(bitfs_geo_000618), - define_vanilla_lvl_geo(bitfs_geo_000630), - define_vanilla_lvl_geo(bitfs_geo_000648), - define_vanilla_lvl_geo(bitfs_geo_000660), - define_vanilla_lvl_geo(bitfs_geo_000678), - define_vanilla_lvl_geo(bitfs_geo_000690), - define_vanilla_lvl_geo(bitfs_geo_0006A8), - define_vanilla_lvl_geo(bitfs_geo_0006C0), - define_vanilla_lvl_geo(bitfs_geo_0006D8), - define_vanilla_lvl_geo(bitfs_geo_0006F0), - define_vanilla_lvl_geo(bitfs_geo_000708), - define_vanilla_lvl_geo(bitfs_geo_000728), - define_vanilla_lvl_geo(bitfs_geo_000740), - define_vanilla_lvl_geo(bitfs_geo_000758), - define_vanilla_lvl_geo(bitfs_geo_000770), - define_vanilla_lvl_geo(bitfs_geo_000788), - define_vanilla_lvl_geo(bitfs_geo_0007A0), - define_vanilla_lvl_geo(bits_geo_000430), - define_vanilla_lvl_geo(bits_geo_000448), - define_vanilla_lvl_geo(bits_geo_000460), - define_vanilla_lvl_geo(bits_geo_000478), - define_vanilla_lvl_geo(bits_geo_000490), - define_vanilla_lvl_geo(bits_geo_0004A8), - define_vanilla_lvl_geo(bits_geo_0004C0), - define_vanilla_lvl_geo(bits_geo_0004D8), - define_vanilla_lvl_geo(bits_geo_0004F0), - define_vanilla_lvl_geo(bits_geo_000508), - define_vanilla_lvl_geo(bits_geo_000520), - define_vanilla_lvl_geo(bits_geo_000538), - define_vanilla_lvl_geo(bits_geo_000550), - define_vanilla_lvl_geo(bits_geo_000568), - define_vanilla_lvl_geo(bits_geo_000580), - define_vanilla_lvl_geo(bits_geo_000598), - define_vanilla_lvl_geo(bits_geo_0005B0), - define_vanilla_lvl_geo(bits_geo_0005C8), - define_vanilla_lvl_geo(bits_geo_0005E0), - define_vanilla_lvl_geo(bits_geo_0005F8), - define_vanilla_lvl_geo(bits_geo_000610), - define_vanilla_lvl_geo(bits_geo_000628), - define_vanilla_lvl_geo(bits_geo_000640), - define_vanilla_lvl_geo(bits_geo_000658), - define_vanilla_lvl_geo(bits_geo_000670), - define_vanilla_lvl_geo(bits_geo_000688), - define_vanilla_lvl_geo(bits_geo_0006A0), - define_vanilla_lvl_geo(bits_geo_0006B8), - define_vanilla_lvl_geo(bits_geo_0006D0), - define_vanilla_lvl_geo(bits_geo_0006E8), - define_vanilla_lvl_geo(bits_geo_000700), - define_vanilla_lvl_geo(bits_geo_000718), - define_vanilla_lvl_geo(bob_geo_000440), - define_vanilla_lvl_geo(bob_geo_000458), - define_vanilla_lvl_geo(bob_geo_000470), - define_vanilla_lvl_geo(bob_geo_000488), - define_vanilla_lvl_geo(bowser_1_geo_0000D0), - define_vanilla_lvl_geo(bowser_2_geo_000170), - define_vanilla_lvl_geo(bowser_2_geo_000170), - define_vanilla_lvl_geo(bowser_2_geo_000188), - define_vanilla_lvl_geo(bowser_2_geo_000188), - define_vanilla_lvl_geo(bowser_3_geo_000290), - define_vanilla_lvl_geo(bowser_3_geo_000290), - define_vanilla_lvl_geo(bowser_3_geo_0002A8), - define_vanilla_lvl_geo(bowser_3_geo_0002A8), - define_vanilla_lvl_geo(bowser_3_geo_0002C0), - define_vanilla_lvl_geo(bowser_3_geo_0002C0), - define_vanilla_lvl_geo(bowser_3_geo_0002D8), - define_vanilla_lvl_geo(bowser_3_geo_0002D8), - define_vanilla_lvl_geo(bowser_3_geo_0002F0), - define_vanilla_lvl_geo(bowser_3_geo_0002F0), - define_vanilla_lvl_geo(bowser_3_geo_000308), - define_vanilla_lvl_geo(bowser_3_geo_000308), - define_vanilla_lvl_geo(bowser_3_geo_000320), - define_vanilla_lvl_geo(bowser_3_geo_000320), - define_vanilla_lvl_geo(bowser_3_geo_000338), - define_vanilla_lvl_geo(bowser_3_geo_000338), - define_vanilla_lvl_geo(bowser_3_geo_000350), - define_vanilla_lvl_geo(bowser_3_geo_000350), - define_vanilla_lvl_geo(bowser_3_geo_000368), - define_vanilla_lvl_geo(bowser_3_geo_000368), - define_vanilla_lvl_geo(bowser_3_geo_000380), - define_vanilla_lvl_geo(bowser_3_geo_000380), - define_vanilla_lvl_geo(bowser_3_geo_000398), - define_vanilla_lvl_geo(bowser_3_geo_000398), - define_vanilla_lvl_geo(castle_courtyard_geo_000200), - define_vanilla_lvl_geo(castle_courtyard_geo_000218), - define_vanilla_lvl_geo(castle_geo_000F00), - define_vanilla_lvl_geo(castle_geo_000F18), - define_vanilla_lvl_geo(castle_geo_000F30), - define_vanilla_lvl_geo(castle_geo_000F70), - define_vanilla_lvl_geo(castle_geo_000F88), - define_vanilla_lvl_geo(castle_geo_000FA8), - define_vanilla_lvl_geo(castle_geo_000FD0), - define_vanilla_lvl_geo(castle_geo_001000), - define_vanilla_lvl_geo(castle_geo_001038), - define_vanilla_lvl_geo(castle_geo_001088), - define_vanilla_lvl_geo(castle_geo_0010C8), - define_vanilla_lvl_geo(castle_geo_001110), - define_vanilla_lvl_geo(castle_geo_001158), - define_vanilla_lvl_geo(castle_geo_0011A8), - define_vanilla_lvl_geo(castle_geo_001200), - define_vanilla_lvl_geo(castle_geo_001260), - define_vanilla_lvl_geo(castle_geo_0012C8), - define_vanilla_lvl_geo(castle_geo_001348), - define_vanilla_lvl_geo(castle_geo_0013B8), - define_vanilla_lvl_geo(castle_geo_001400), - define_vanilla_lvl_geo(castle_geo_001518), - define_vanilla_lvl_geo(castle_geo_001530), - define_vanilla_lvl_geo(castle_geo_001548), - define_vanilla_lvl_geo(castle_geo_001560), - define_vanilla_lvl_geo(castle_geo_001578), - define_vanilla_lvl_geo(castle_geo_0015B8), - define_vanilla_lvl_geo(castle_geo_0015F8), - define_vanilla_lvl_geo(castle_geo_001628), - define_vanilla_lvl_geo(castle_geo_001668), - define_vanilla_lvl_geo(castle_geo_001690), - define_vanilla_lvl_geo(castle_geo_0016D8), - define_vanilla_lvl_geo(castle_geo_001740), - define_vanilla_lvl_geo(castle_geo_001798), - define_vanilla_lvl_geo(castle_geo_001800), - define_vanilla_lvl_geo(castle_geo_001858), - define_vanilla_lvl_geo(castle_geo_001940), - define_vanilla_lvl_geo(castle_geo_001958), - define_vanilla_lvl_geo(castle_geo_001980), - define_vanilla_lvl_geo(castle_geo_0019C8), - define_vanilla_lvl_geo(castle_geo_0019F8), - define_vanilla_lvl_geo(castle_geo_001A30), - define_vanilla_lvl_geo(castle_geo_001A58), - define_vanilla_lvl_geo(castle_geo_001AB8), - define_vanilla_lvl_geo(castle_geo_001AF8), - define_vanilla_lvl_geo(castle_geo_001B48), - define_vanilla_lvl_geo(castle_geo_001BB0), - define_vanilla_lvl_geo(castle_geo_001C10), - define_vanilla_lvl_geo(castle_grounds_geo_000660), - define_vanilla_lvl_geo(castle_grounds_geo_0006F4), - define_vanilla_lvl_geo(castle_grounds_geo_00070C), - define_vanilla_lvl_geo(castle_grounds_geo_000724), - define_vanilla_lvl_geo(castle_grounds_geo_00073C), - define_vanilla_lvl_geo(ccm_geo_0003D0), - define_vanilla_lvl_geo(ccm_geo_0003F0), - define_vanilla_lvl_geo(ccm_geo_00040C), - define_vanilla_lvl_geo(ccm_geo_00042C), - define_vanilla_lvl_geo(ccm_geo_00045C), - define_vanilla_lvl_geo(ccm_geo_000494), - define_vanilla_lvl_geo(ccm_geo_0004BC), - define_vanilla_lvl_geo(ccm_geo_0004E4), - define_vanilla_lvl_geo(ccm_geo_00051C), - define_vanilla_lvl_geo(ccm_geo_0005E8), - define_vanilla_lvl_geo(cotmc_geo_0001A0), - define_vanilla_lvl_geo(ddd_geo_000450), - define_vanilla_lvl_geo(ddd_geo_000478), - define_vanilla_lvl_geo(ddd_geo_0004A0), - define_vanilla_lvl_geo(ddd_geo_0004C0), - define_vanilla_lvl_geo(ddd_geo_000570), - define_vanilla_lvl_geo(geo_bbh_0005B0), - define_vanilla_lvl_geo(geo_bbh_0005C8), - define_vanilla_lvl_geo(geo_bbh_0005E0), - define_vanilla_lvl_geo(geo_bbh_0005F8), - define_vanilla_lvl_geo(geo_bbh_000610), - define_vanilla_lvl_geo(geo_bbh_000628), - define_vanilla_lvl_geo(geo_bbh_000640), - define_vanilla_lvl_geo(geo_bbh_000658), - define_vanilla_lvl_geo(geo_bbh_000670), - define_vanilla_lvl_geo(geo_bbh_0006B0), - define_vanilla_lvl_geo(geo_bbh_0006E8), - define_vanilla_lvl_geo(geo_bbh_000730), - define_vanilla_lvl_geo(geo_bbh_000750), - define_vanilla_lvl_geo(geo_bbh_000768), - define_vanilla_lvl_geo(geo_bbh_0007B0), - define_vanilla_lvl_geo(geo_bbh_0007D0), - define_vanilla_lvl_geo(geo_bbh_000800), - define_vanilla_lvl_geo(geo_bbh_000828), - define_vanilla_lvl_geo(geo_bbh_000860), - define_vanilla_lvl_geo(geo_bbh_000888), - define_vanilla_lvl_geo(geo_bbh_0008B0), - define_vanilla_lvl_geo(geo_bbh_0008E8), - define_vanilla_lvl_geo(geo_bbh_000950), - define_vanilla_lvl_geo(geo_bbh_0009C8), - define_vanilla_lvl_geo(geo_bbh_000A18), - define_vanilla_lvl_geo(geo_bbh_000A60), - define_vanilla_lvl_geo(geo_bbh_000AD8), - define_vanilla_lvl_geo(geo_bbh_000B28), - define_vanilla_lvl_geo(geo_bbh_000B88), - define_vanilla_lvl_geo(geo_bbh_000BF0), - define_vanilla_lvl_geo(geo_bbh_000C38), - define_vanilla_lvl_geo(geo_bbh_000C88), - define_vanilla_lvl_geo(geo_bbh_000CE8), - define_vanilla_lvl_geo(geo_bbh_000D20), - define_vanilla_lvl_geo(geo_bbh_000D68), - define_vanilla_lvl_geo(geo_bbh_000DB0), - define_vanilla_lvl_geo(geo_bbh_000DF0), - define_vanilla_lvl_geo(geo_bbh_000E40), - define_vanilla_lvl_geo(geo_bbh_000E80), - define_vanilla_lvl_geo(geo_bbh_000EB0), - define_vanilla_lvl_geo(geo_bbh_000F00), - define_vanilla_lvl_geo(geo_bitdw_0003C0), - define_vanilla_lvl_geo(geo_bitdw_0003D8), - define_vanilla_lvl_geo(geo_bitdw_0003F0), - define_vanilla_lvl_geo(geo_bitdw_000408), - define_vanilla_lvl_geo(geo_bitdw_000420), - define_vanilla_lvl_geo(geo_bitdw_000438), - define_vanilla_lvl_geo(geo_bitdw_000450), - define_vanilla_lvl_geo(geo_bitdw_000468), - define_vanilla_lvl_geo(geo_bitdw_000480), - define_vanilla_lvl_geo(geo_bitdw_000498), - define_vanilla_lvl_geo(geo_bitdw_0004B0), - define_vanilla_lvl_geo(geo_bitdw_0004C8), - define_vanilla_lvl_geo(geo_bitdw_0004E0), - define_vanilla_lvl_geo(geo_bitdw_0004F8), - define_vanilla_lvl_geo(geo_bitdw_000510), - define_vanilla_lvl_geo(geo_bitdw_000528), - define_vanilla_lvl_geo(geo_bitdw_000540), - define_vanilla_lvl_geo(geo_bitdw_000558), - define_vanilla_lvl_geo(geo_bitdw_000570), - define_vanilla_lvl_geo(geo_bitdw_000588), - define_vanilla_lvl_geo(geo_bitdw_0005A0), - define_vanilla_lvl_geo(geo_bitdw_0005B8), - define_vanilla_lvl_geo(geo_bitdw_0005D0), - define_vanilla_lvl_geo(geo_bitdw_0005E8), - define_vanilla_lvl_geo(geo_bitdw_000600), - define_vanilla_lvl_geo(geo_bitdw_000618), - define_vanilla_lvl_geo(hmc_geo_000530), - define_vanilla_lvl_geo(hmc_geo_000548), - define_vanilla_lvl_geo(hmc_geo_000570), - define_vanilla_lvl_geo(hmc_geo_000588), - define_vanilla_lvl_geo(hmc_geo_0005A0), - define_vanilla_lvl_geo(hmc_geo_0005B8), - define_vanilla_lvl_geo(hmc_geo_0005D0), - define_vanilla_lvl_geo(hmc_geo_0005E8), - define_vanilla_lvl_geo(hmc_geo_000618), - define_vanilla_lvl_geo(hmc_geo_000658), - define_vanilla_lvl_geo(hmc_geo_0006A8), - define_vanilla_lvl_geo(hmc_geo_0006E0), - define_vanilla_lvl_geo(hmc_geo_000700), - define_vanilla_lvl_geo(hmc_geo_000748), - define_vanilla_lvl_geo(hmc_geo_000770), - define_vanilla_lvl_geo(hmc_geo_000798), - define_vanilla_lvl_geo(hmc_geo_0007F8), - define_vanilla_lvl_geo(hmc_geo_000850), - define_vanilla_lvl_geo(hmc_geo_0008D0), - define_vanilla_lvl_geo(hmc_geo_000938), - define_vanilla_lvl_geo(hmc_geo_000998), - define_vanilla_lvl_geo(hmc_geo_000A18), - define_vanilla_lvl_geo(hmc_geo_000A88), - define_vanilla_lvl_geo(hmc_geo_000AE8), - define_vanilla_lvl_geo(hmc_geo_000B48), - define_vanilla_lvl_geo(hmc_geo_000B90), - define_vanilla_lvl_geo(jrb_geo_000900), - define_vanilla_lvl_geo(jrb_geo_000918), - define_vanilla_lvl_geo(jrb_geo_000930), - define_vanilla_lvl_geo(jrb_geo_000948), - define_vanilla_lvl_geo(jrb_geo_000960), - define_vanilla_lvl_geo(jrb_geo_000978), - define_vanilla_lvl_geo(jrb_geo_000990), - define_vanilla_lvl_geo(jrb_geo_0009B0), - define_vanilla_lvl_geo(jrb_geo_0009C8), - define_vanilla_lvl_geo(jrb_geo_0009E8), - define_vanilla_lvl_geo(jrb_geo_000A00), - define_vanilla_lvl_geo(jrb_geo_000A18), - define_vanilla_lvl_geo(jrb_geo_000AFC), - define_vanilla_lvl_geo(lll_geo_0009E0), - define_vanilla_lvl_geo(lll_geo_0009F8), - define_vanilla_lvl_geo(lll_geo_000A10), - define_vanilla_lvl_geo(lll_geo_000A28), - define_vanilla_lvl_geo(lll_geo_000A40), - define_vanilla_lvl_geo(lll_geo_000A60), - define_vanilla_lvl_geo(lll_geo_000A78), - define_vanilla_lvl_geo(lll_geo_000A90), - define_vanilla_lvl_geo(lll_geo_000AA8), - define_vanilla_lvl_geo(lll_geo_000AC0), - define_vanilla_lvl_geo(lll_geo_000AD8), - define_vanilla_lvl_geo(lll_geo_000AF0), - define_vanilla_lvl_geo(lll_geo_000B08), - define_vanilla_lvl_geo(lll_geo_000B20), - define_vanilla_lvl_geo(lll_geo_000B38), - define_vanilla_lvl_geo(lll_geo_000B50), - define_vanilla_lvl_geo(lll_geo_000B68), - define_vanilla_lvl_geo(lll_geo_000B80), - define_vanilla_lvl_geo(lll_geo_000B98), - define_vanilla_lvl_geo(lll_geo_000BB0), - define_vanilla_lvl_geo(lll_geo_000BC8), - define_vanilla_lvl_geo(lll_geo_000BE0), - define_vanilla_lvl_geo(lll_geo_000BF8), - define_vanilla_lvl_geo(lll_geo_000C10), - define_vanilla_lvl_geo(lll_geo_000C30), - define_vanilla_lvl_geo(lll_geo_000C50), - define_vanilla_lvl_geo(lll_geo_000C70), - define_vanilla_lvl_geo(lll_geo_000C90), - define_vanilla_lvl_geo(lll_geo_000CB0), - define_vanilla_lvl_geo(lll_geo_000CD0), - define_vanilla_lvl_geo(lll_geo_000CF0), - define_vanilla_lvl_geo(lll_geo_000D10), - define_vanilla_lvl_geo(lll_geo_000D30), - define_vanilla_lvl_geo(lll_geo_000D50), - define_vanilla_lvl_geo(lll_geo_000D70), - define_vanilla_lvl_geo(lll_geo_000D90), - define_vanilla_lvl_geo(lll_geo_000DB0), - define_vanilla_lvl_geo(lll_geo_000DD0), - define_vanilla_lvl_geo(lll_geo_000DE8), - define_vanilla_lvl_geo(lll_geo_000E00), - define_vanilla_lvl_geo(lll_geo_000EA8), - define_vanilla_lvl_geo(lll_geo_000EC0), - define_vanilla_lvl_geo(pss_geo_000100), - define_vanilla_lvl_geo(rr_geo_000660), - define_vanilla_lvl_geo(rr_geo_000678), - define_vanilla_lvl_geo(rr_geo_000690), - define_vanilla_lvl_geo(rr_geo_0006A8), - define_vanilla_lvl_geo(rr_geo_0006C0), - define_vanilla_lvl_geo(rr_geo_0006D8), - define_vanilla_lvl_geo(rr_geo_0006F0), - define_vanilla_lvl_geo(rr_geo_000708), - define_vanilla_lvl_geo(rr_geo_000720), - define_vanilla_lvl_geo(rr_geo_000738), - define_vanilla_lvl_geo(rr_geo_000758), - define_vanilla_lvl_geo(rr_geo_000770), - define_vanilla_lvl_geo(rr_geo_000788), - define_vanilla_lvl_geo(rr_geo_0007A0), - define_vanilla_lvl_geo(rr_geo_0007B8), - define_vanilla_lvl_geo(rr_geo_0007D0), - define_vanilla_lvl_geo(rr_geo_0007E8), - define_vanilla_lvl_geo(rr_geo_000800), - define_vanilla_lvl_geo(rr_geo_000818), - define_vanilla_lvl_geo(rr_geo_000830), - define_vanilla_lvl_geo(rr_geo_000848), - define_vanilla_lvl_geo(rr_geo_000860), - define_vanilla_lvl_geo(rr_geo_000878), - define_vanilla_lvl_geo(rr_geo_000890), - define_vanilla_lvl_geo(rr_geo_0008A8), - define_vanilla_lvl_geo(rr_geo_0008C0), - define_vanilla_lvl_geo(rr_geo_0008D8), - define_vanilla_lvl_geo(rr_geo_0008F0), - define_vanilla_lvl_geo(rr_geo_000908), - define_vanilla_lvl_geo(rr_geo_000920), - define_vanilla_lvl_geo(rr_geo_000940), - define_vanilla_lvl_geo(rr_geo_000958), - define_vanilla_lvl_geo(rr_geo_000970), - define_vanilla_lvl_geo(rr_geo_000988), - define_vanilla_lvl_geo(rr_geo_0009A0), - define_vanilla_lvl_geo(rr_geo_0009B8), - define_vanilla_lvl_geo(rr_geo_0009D0), - define_vanilla_lvl_geo(sa_geo_000170), - define_vanilla_lvl_geo(sl_geo_000360), - define_vanilla_lvl_geo(sl_geo_000378), - define_vanilla_lvl_geo(sl_geo_000390), - define_vanilla_lvl_geo(sl_geo_0003A8), - define_vanilla_lvl_geo(sl_geo_000484), - define_vanilla_lvl_geo(ssl_geo_0005C0), - define_vanilla_lvl_geo(ssl_geo_0005D8), - define_vanilla_lvl_geo(ssl_geo_000618), - define_vanilla_lvl_geo(ssl_geo_000630), - define_vanilla_lvl_geo(ssl_geo_000648), - define_vanilla_lvl_geo(ssl_geo_000734), - define_vanilla_lvl_geo(ssl_geo_000764), - define_vanilla_lvl_geo(ssl_geo_000794), - define_vanilla_lvl_geo(ssl_geo_0007AC), - define_vanilla_lvl_geo(ssl_geo_0007CC), - define_vanilla_lvl_geo(ssl_geo_00088C), - define_vanilla_lvl_geo(thi_geo_0005B0), - define_vanilla_lvl_geo(thi_geo_0005C8), - define_vanilla_lvl_geo(thi_geo_0005F0), - define_vanilla_lvl_geo(thi_geo_000608), - define_vanilla_lvl_geo(thi_geo_0006D4), - define_vanilla_lvl_geo(thi_geo_00079C), - define_vanilla_lvl_geo(totwc_geo_000160), - define_vanilla_lvl_geo(totwc_geo_000188), - define_vanilla_lvl_geo(ttc_geo_000240), - define_vanilla_lvl_geo(ttc_geo_000258), - define_vanilla_lvl_geo(ttc_geo_000270), - define_vanilla_lvl_geo(ttc_geo_000288), - define_vanilla_lvl_geo(ttc_geo_0002A8), - define_vanilla_lvl_geo(ttc_geo_0002C8), - define_vanilla_lvl_geo(ttc_geo_0002E0), - define_vanilla_lvl_geo(ttc_geo_0002F8), - define_vanilla_lvl_geo(ttc_geo_000310), - define_vanilla_lvl_geo(ttc_geo_000328), - define_vanilla_lvl_geo(ttc_geo_000340), - define_vanilla_lvl_geo(ttc_geo_000358), - define_vanilla_lvl_geo(ttc_geo_000370), - define_vanilla_lvl_geo(ttc_geo_000388), - define_vanilla_lvl_geo(ttc_geo_0003A0), - define_vanilla_lvl_geo(ttc_geo_0003B8), - define_vanilla_lvl_geo(ttm_geo_000710), - define_vanilla_lvl_geo(ttm_geo_000730), - define_vanilla_lvl_geo(ttm_geo_000748), - define_vanilla_lvl_geo(ttm_geo_000778), - define_vanilla_lvl_geo(ttm_geo_0007A8), - define_vanilla_lvl_geo(ttm_geo_0007D8), - define_vanilla_lvl_geo(ttm_geo_000808), - define_vanilla_lvl_geo(ttm_geo_000830), - define_vanilla_lvl_geo(ttm_geo_000858), - define_vanilla_lvl_geo(ttm_geo_000880), - define_vanilla_lvl_geo(ttm_geo_0008A8), - define_vanilla_lvl_geo(ttm_geo_0008D0), - define_vanilla_lvl_geo(ttm_geo_0008F8), - define_vanilla_lvl_geo(ttm_geo_000920), - define_vanilla_lvl_geo(ttm_geo_000948), - define_vanilla_lvl_geo(ttm_geo_000970), - define_vanilla_lvl_geo(ttm_geo_000990), - define_vanilla_lvl_geo(ttm_geo_0009C0), - define_vanilla_lvl_geo(ttm_geo_0009F0), - define_vanilla_lvl_geo(ttm_geo_000A18), - define_vanilla_lvl_geo(ttm_geo_000A40), - define_vanilla_lvl_geo(ttm_geo_000A70), - define_vanilla_lvl_geo(ttm_geo_000B5C), - define_vanilla_lvl_geo(ttm_geo_000BEC), - define_vanilla_lvl_geo(ttm_geo_000C84), - define_vanilla_lvl_geo(ttm_geo_000D14), - define_vanilla_lvl_geo(ttm_geo_000D4C), - define_vanilla_lvl_geo(ttm_geo_000D84), - define_vanilla_lvl_geo(ttm_geo_000DBC), - define_vanilla_lvl_geo(ttm_geo_000DF4), - define_vanilla_lvl_geo(vcutm_geo_0001F0), - define_vanilla_lvl_geo(vcutm_geo_000208), - define_vanilla_lvl_geo(wdw_geo_000580), - define_vanilla_lvl_geo(wdw_geo_000598), - define_vanilla_lvl_geo(wdw_geo_0005C0), - define_vanilla_lvl_geo(wdw_geo_0005E8), - define_vanilla_lvl_geo(wdw_geo_000610), - define_vanilla_lvl_geo(wdw_geo_000628), - define_vanilla_lvl_geo(wdw_geo_000640), - define_vanilla_lvl_geo(wdw_geo_000658), - define_vanilla_lvl_geo(wdw_geo_000724), - define_vanilla_lvl_geo(wf_geo_0007E0), - define_vanilla_lvl_geo(wf_geo_000820), - define_vanilla_lvl_geo(wf_geo_000860), - define_vanilla_lvl_geo(wf_geo_000878), - define_vanilla_lvl_geo(wf_geo_000890), - define_vanilla_lvl_geo(wf_geo_0008A8), - define_vanilla_lvl_geo(wf_geo_0008E8), - define_vanilla_lvl_geo(wf_geo_000900), - define_vanilla_lvl_geo(wf_geo_000940), - define_vanilla_lvl_geo(wf_geo_000958), - define_vanilla_lvl_geo(wf_geo_0009A0), - define_vanilla_lvl_geo(wf_geo_0009B8), - define_vanilla_lvl_geo(wf_geo_0009D0), - define_vanilla_lvl_geo(wf_geo_0009E8), - define_vanilla_lvl_geo(wf_geo_000A00), - define_vanilla_lvl_geo(wf_geo_000A40), - define_vanilla_lvl_geo(wf_geo_000A58), - define_vanilla_lvl_geo(wf_geo_000A98), - define_vanilla_lvl_geo(wf_geo_000AB0), - define_vanilla_lvl_geo(wf_geo_000AC8), - define_vanilla_lvl_geo(wf_geo_000AE0), - define_vanilla_lvl_geo(wf_geo_000AF8), - define_vanilla_lvl_geo(wf_geo_000B10), - define_vanilla_lvl_geo(wf_geo_000B38), - define_vanilla_lvl_geo(wf_geo_000B60), - define_vanilla_lvl_geo(wf_geo_000B78), - define_vanilla_lvl_geo(wf_geo_000B90), - define_vanilla_lvl_geo(wf_geo_000BA8), - define_vanilla_lvl_geo(wf_geo_000BC8), - define_vanilla_lvl_geo(wf_geo_000BE0), - define_vanilla_lvl_geo(wf_geo_000BF8), - define_vanilla_lvl_geo(wmotr_geo_0001F0), -}; - -const GeoLayout* DynOS_Mgr_VanillaLvlGeo_GetFromName(const char* aDataName) { - MGR_FIND_DATA(sDynosVanillaLvlGeos, (const GeoLayout*)); -} - -const char* DynOS_Mgr_VanillaLvlGeo_GetFromData(const GeoLayout* aData) { - MGR_FIND_NAME(sDynosVanillaLvlGeos); -} - - //////////////// - // Level Cols // -//////////////// - -#define define_vanilla_lvl_col(col) (const void*) #col, (const void*) col -static const void* sDynosVanillaLvlCols[] = { - define_vanilla_lvl_col(bbh_seg7_collision_07026B1C), - define_vanilla_lvl_col(bbh_seg7_collision_coffin), - define_vanilla_lvl_col(bbh_seg7_collision_haunted_bookshelf), - define_vanilla_lvl_col(bbh_seg7_collision_level), - define_vanilla_lvl_col(bbh_seg7_collision_merry_go_round), - define_vanilla_lvl_col(bbh_seg7_collision_mesh_elevator), - define_vanilla_lvl_col(bbh_seg7_collision_staircase_step), - define_vanilla_lvl_col(bbh_seg7_collision_tilt_floor_platform), - define_vanilla_lvl_col(bitdw_seg7_collision_0700F688), - define_vanilla_lvl_col(bitdw_seg7_collision_0700F70C), - define_vanilla_lvl_col(bitdw_seg7_collision_0700F7F0), - define_vanilla_lvl_col(bitdw_seg7_collision_0700F898), - define_vanilla_lvl_col(bitdw_seg7_collision_0700F91C), - define_vanilla_lvl_col(bitdw_seg7_collision_0700FA3C), - define_vanilla_lvl_col(bitdw_seg7_collision_0700FB5C), - define_vanilla_lvl_col(bitdw_seg7_collision_0700FC7C), - define_vanilla_lvl_col(bitdw_seg7_collision_0700FD9C), - define_vanilla_lvl_col(bitdw_seg7_collision_level), - define_vanilla_lvl_col(bitdw_seg7_collision_moving_pyramid), - define_vanilla_lvl_col(bitfs_seg7_collision_07015124), - define_vanilla_lvl_col(bitfs_seg7_collision_07015288), - define_vanilla_lvl_col(bitfs_seg7_collision_07015714), - define_vanilla_lvl_col(bitfs_seg7_collision_07015768), - define_vanilla_lvl_col(bitfs_seg7_collision_070157E0), - define_vanilla_lvl_col(bitfs_seg7_collision_07015928), - define_vanilla_lvl_col(bitfs_seg7_collision_inverted_pyramid), - define_vanilla_lvl_col(bitfs_seg7_collision_level), - define_vanilla_lvl_col(bitfs_seg7_collision_sinking_cage_platform), - define_vanilla_lvl_col(bitfs_seg7_collision_sinking_platform), - define_vanilla_lvl_col(bitfs_seg7_collision_squishable_platform), - define_vanilla_lvl_col(bits_seg7_collision_0701A9A0), - define_vanilla_lvl_col(bits_seg7_collision_0701AA0C), - define_vanilla_lvl_col(bits_seg7_collision_0701AA84), - define_vanilla_lvl_col(bits_seg7_collision_0701AC28), - define_vanilla_lvl_col(bits_seg7_collision_0701ACAC), - define_vanilla_lvl_col(bits_seg7_collision_0701AD54), - define_vanilla_lvl_col(bits_seg7_collision_0701ADD8), - define_vanilla_lvl_col(bits_seg7_collision_0701AE5C), - define_vanilla_lvl_col(bits_seg7_collision_0701B0D4), - define_vanilla_lvl_col(bits_seg7_collision_0701B26C), - define_vanilla_lvl_col(bits_seg7_collision_0701B404), - define_vanilla_lvl_col(bits_seg7_collision_0701B59C), - define_vanilla_lvl_col(bits_seg7_collision_0701B734), - define_vanilla_lvl_col(bits_seg7_collision_level), - define_vanilla_lvl_col(bob_seg7_collision_bridge), - define_vanilla_lvl_col(bob_seg7_collision_chain_chomp_gate), - define_vanilla_lvl_col(bob_seg7_collision_gate), - define_vanilla_lvl_col(bob_seg7_collision_level), - define_vanilla_lvl_col(bowser_1_seg7_collision_level), - define_vanilla_lvl_col(bowser_2_seg7_collision_lava), - define_vanilla_lvl_col(bowser_2_seg7_collision_tilting_platform), - define_vanilla_lvl_col(bowser_3_seg7_collision_07004B94), - define_vanilla_lvl_col(bowser_3_seg7_collision_07004C18), - define_vanilla_lvl_col(bowser_3_seg7_collision_07004C9C), - define_vanilla_lvl_col(bowser_3_seg7_collision_07004D20), - define_vanilla_lvl_col(bowser_3_seg7_collision_07004DA4), - define_vanilla_lvl_col(bowser_3_seg7_collision_07004E28), - define_vanilla_lvl_col(bowser_3_seg7_collision_07004EAC), - define_vanilla_lvl_col(bowser_3_seg7_collision_07004F30), - define_vanilla_lvl_col(bowser_3_seg7_collision_07004FB4), - define_vanilla_lvl_col(bowser_3_seg7_collision_07005038), - define_vanilla_lvl_col(bowser_3_seg7_collision_level), - define_vanilla_lvl_col(castle_courtyard_seg7_collision), - define_vanilla_lvl_col(castle_grounds_seg7_collision_cannon_grill), - define_vanilla_lvl_col(castle_grounds_seg7_collision_level), - define_vanilla_lvl_col(castle_grounds_seg7_collision_moat_grills), - define_vanilla_lvl_col(ccm_seg7_area_1_collision), - define_vanilla_lvl_col(ccm_seg7_area_2_collision), - define_vanilla_lvl_col(ccm_seg7_collision_070163F8), - define_vanilla_lvl_col(cotmc_seg7_collision_level), - define_vanilla_lvl_col(ddd_seg7_area_1_collision), - define_vanilla_lvl_col(ddd_seg7_area_2_collision), - define_vanilla_lvl_col(ddd_seg7_collision_bowser_sub_door), - define_vanilla_lvl_col(ddd_seg7_collision_submarine), - define_vanilla_lvl_col(hmc_seg7_collision_0702B65C), - define_vanilla_lvl_col(hmc_seg7_collision_controllable_platform_sub), - define_vanilla_lvl_col(hmc_seg7_collision_controllable_platform), - define_vanilla_lvl_col(hmc_seg7_collision_elevator), - define_vanilla_lvl_col(hmc_seg7_collision_level), - define_vanilla_lvl_col(inside_castle_seg7_area_1_collision), - define_vanilla_lvl_col(inside_castle_seg7_area_2_collision), - define_vanilla_lvl_col(inside_castle_seg7_area_3_collision), - define_vanilla_lvl_col(inside_castle_seg7_collision_ddd_warp_2), - define_vanilla_lvl_col(inside_castle_seg7_collision_ddd_warp), - define_vanilla_lvl_col(inside_castle_seg7_collision_floor_trap), - define_vanilla_lvl_col(inside_castle_seg7_collision_star_door), - define_vanilla_lvl_col(inside_castle_seg7_collision_water_level_pillar), - define_vanilla_lvl_col(jrb_seg7_area_1_collision), - define_vanilla_lvl_col(jrb_seg7_area_2_collision), - define_vanilla_lvl_col(jrb_seg7_collision_0700CEF0), - define_vanilla_lvl_col(jrb_seg7_collision_0700D1DC), - define_vanilla_lvl_col(jrb_seg7_collision_floating_box), - define_vanilla_lvl_col(jrb_seg7_collision_floating_platform), - define_vanilla_lvl_col(jrb_seg7_collision_in_sunken_ship_2), - define_vanilla_lvl_col(jrb_seg7_collision_in_sunken_ship_3), - define_vanilla_lvl_col(jrb_seg7_collision_in_sunken_ship), - define_vanilla_lvl_col(jrb_seg7_collision_pillar_base), - define_vanilla_lvl_col(jrb_seg7_collision_rock_solid), - define_vanilla_lvl_col(lll_seg7_area_1_collision), - define_vanilla_lvl_col(lll_seg7_area_2_collision), - define_vanilla_lvl_col(lll_seg7_collision_0701D21C), - define_vanilla_lvl_col(lll_seg7_collision_drawbridge), - define_vanilla_lvl_col(lll_seg7_collision_falling_wall), - define_vanilla_lvl_col(lll_seg7_collision_floating_block), - define_vanilla_lvl_col(lll_seg7_collision_hexagonal_platform), - define_vanilla_lvl_col(lll_seg7_collision_inverted_pyramid), - define_vanilla_lvl_col(lll_seg7_collision_octagonal_moving_platform), - define_vanilla_lvl_col(lll_seg7_collision_pitoune), - define_vanilla_lvl_col(lll_seg7_collision_puzzle_piece), - define_vanilla_lvl_col(lll_seg7_collision_rotating_fire_bars), - define_vanilla_lvl_col(lll_seg7_collision_rotating_platform), - define_vanilla_lvl_col(lll_seg7_collision_sinking_pyramids), - define_vanilla_lvl_col(lll_seg7_collision_slow_tilting_platform), - define_vanilla_lvl_col(lll_seg7_collision_wood_piece), - define_vanilla_lvl_col(pss_seg7_collision), - define_vanilla_lvl_col(rr_seg7_collision_07029038), - define_vanilla_lvl_col(rr_seg7_collision_07029508), - define_vanilla_lvl_col(rr_seg7_collision_070295F8), - define_vanilla_lvl_col(rr_seg7_collision_0702967C), - define_vanilla_lvl_col(rr_seg7_collision_07029750), - define_vanilla_lvl_col(rr_seg7_collision_07029858), - define_vanilla_lvl_col(rr_seg7_collision_07029924), - define_vanilla_lvl_col(rr_seg7_collision_07029C1C), - define_vanilla_lvl_col(rr_seg7_collision_07029FA4), - define_vanilla_lvl_col(rr_seg7_collision_0702A32C), - define_vanilla_lvl_col(rr_seg7_collision_0702A6B4), - define_vanilla_lvl_col(rr_seg7_collision_donut_platform), - define_vanilla_lvl_col(rr_seg7_collision_elevator_platform), - define_vanilla_lvl_col(rr_seg7_collision_level), - define_vanilla_lvl_col(rr_seg7_collision_pendulum), - define_vanilla_lvl_col(rr_seg7_collision_rotating_platform_with_fire), - define_vanilla_lvl_col(sa_seg7_collision), - define_vanilla_lvl_col(sl_seg7_area_1_collision), - define_vanilla_lvl_col(sl_seg7_area_2_collision), - define_vanilla_lvl_col(sl_seg7_collision_pound_explodes), - define_vanilla_lvl_col(sl_seg7_collision_sliding_snow_mound), - define_vanilla_lvl_col(ssl_seg7_area_1_collision), - define_vanilla_lvl_col(ssl_seg7_area_2_collision), - define_vanilla_lvl_col(ssl_seg7_area_3_collision), - define_vanilla_lvl_col(ssl_seg7_collision_0702808C), - define_vanilla_lvl_col(ssl_seg7_collision_07028274), - define_vanilla_lvl_col(ssl_seg7_collision_070282F8), - define_vanilla_lvl_col(ssl_seg7_collision_07028370), - define_vanilla_lvl_col(ssl_seg7_collision_070284B0), - define_vanilla_lvl_col(ssl_seg7_collision_grindel), - define_vanilla_lvl_col(ssl_seg7_collision_pyramid_elevator), - define_vanilla_lvl_col(ssl_seg7_collision_pyramid_top), - define_vanilla_lvl_col(ssl_seg7_collision_spindel), - define_vanilla_lvl_col(ssl_seg7_collision_tox_box), - define_vanilla_lvl_col(thi_seg7_area_1_collision), - define_vanilla_lvl_col(thi_seg7_area_2_collision), - define_vanilla_lvl_col(thi_seg7_area_3_collision), - define_vanilla_lvl_col(thi_seg7_collision_top_trap), - define_vanilla_lvl_col(totwc_seg7_collision), - define_vanilla_lvl_col(ttc_seg7_collision_07014F70), - define_vanilla_lvl_col(ttc_seg7_collision_07015008), - define_vanilla_lvl_col(ttc_seg7_collision_070152B4), - define_vanilla_lvl_col(ttc_seg7_collision_070153E0), - define_vanilla_lvl_col(ttc_seg7_collision_07015584), - define_vanilla_lvl_col(ttc_seg7_collision_07015650), - define_vanilla_lvl_col(ttc_seg7_collision_07015754), - define_vanilla_lvl_col(ttc_seg7_collision_070157D8), - define_vanilla_lvl_col(ttc_seg7_collision_clock_main_rotation), - define_vanilla_lvl_col(ttc_seg7_collision_clock_pendulum), - define_vanilla_lvl_col(ttc_seg7_collision_clock_platform), - define_vanilla_lvl_col(ttc_seg7_collision_level), - define_vanilla_lvl_col(ttc_seg7_collision_rotating_clock_platform2), - define_vanilla_lvl_col(ttc_seg7_collision_sliding_surface), - define_vanilla_lvl_col(ttm_seg7_area_1_collision), - define_vanilla_lvl_col(ttm_seg7_area_2_collision), - define_vanilla_lvl_col(ttm_seg7_area_3_collision), - define_vanilla_lvl_col(ttm_seg7_area_4_collision), - define_vanilla_lvl_col(ttm_seg7_collision_pitoune_2), - define_vanilla_lvl_col(ttm_seg7_collision_podium_warp), - define_vanilla_lvl_col(ttm_seg7_collision_ukiki_cage), - define_vanilla_lvl_col(vcutm_seg7_collision_0700AC44), - define_vanilla_lvl_col(vcutm_seg7_collision), - define_vanilla_lvl_col(wdw_seg7_area_1_collision), - define_vanilla_lvl_col(wdw_seg7_area_2_collision), - define_vanilla_lvl_col(wdw_seg7_collision_070184C8), - define_vanilla_lvl_col(wdw_seg7_collision_07018528), - define_vanilla_lvl_col(wdw_seg7_collision_070186B4), - define_vanilla_lvl_col(wdw_seg7_collision_arrow_lift), - define_vanilla_lvl_col(wdw_seg7_collision_express_elevator_platform), - define_vanilla_lvl_col(wdw_seg7_collision_rect_floating_platform), - define_vanilla_lvl_col(wdw_seg7_collision_square_floating_platform), - define_vanilla_lvl_col(wf_seg7_collision_070102D8), - define_vanilla_lvl_col(wf_seg7_collision_breakable_wall_2), - define_vanilla_lvl_col(wf_seg7_collision_breakable_wall), - define_vanilla_lvl_col(wf_seg7_collision_bullet_bill_cannon), - define_vanilla_lvl_col(wf_seg7_collision_clocklike_rotation), - define_vanilla_lvl_col(wf_seg7_collision_kickable_board), - define_vanilla_lvl_col(wf_seg7_collision_large_bomp), - define_vanilla_lvl_col(wf_seg7_collision_platform), - define_vanilla_lvl_col(wf_seg7_collision_rotating_platform), - define_vanilla_lvl_col(wf_seg7_collision_sliding_brick_platform), - define_vanilla_lvl_col(wf_seg7_collision_small_bomp), - define_vanilla_lvl_col(wf_seg7_collision_tower_door), - define_vanilla_lvl_col(wf_seg7_collision_tower), - define_vanilla_lvl_col(wf_seg7_collision_trapezoid), - define_vanilla_lvl_col(wf_seg7_collision_tumbling_bridge), - define_vanilla_lvl_col(wmotr_seg7_collision), -}; - -const Collision* DynOS_Mgr_VanillaLvlCol_GetFromName(const char* aDataName) { - MGR_FIND_DATA(sDynosVanillaLvlCols, (const Collision*)); -} - -const char* DynOS_Mgr_VanillaLvlCol_GetFromData(const Collision* aData) { - MGR_FIND_NAME(sDynosVanillaLvlCols); -} - - ////////////// - // Textures // -////////////// - -#define define_vanilla_tex(tex) (const void*) #tex, (const void*) tex -static const void* sDynosVanillaTexs[] = { - define_vanilla_tex(cave_09000000), - define_vanilla_tex(cave_09001000), - define_vanilla_tex(cave_09001800), - define_vanilla_tex(cave_09002800), - define_vanilla_tex(cave_09003000), - define_vanilla_tex(cave_09003800), - define_vanilla_tex(cave_09004800), - define_vanilla_tex(cave_09005800), - define_vanilla_tex(cave_09006800), - define_vanilla_tex(cave_09007000), - define_vanilla_tex(cave_09007800), - define_vanilla_tex(cave_09008800), - define_vanilla_tex(cave_09009800), - define_vanilla_tex(cave_0900A000), - define_vanilla_tex(cave_0900A800), - define_vanilla_tex(cave_0900B800), - define_vanilla_tex(cave_0900C000), - define_vanilla_tex(fire_09000000), - define_vanilla_tex(fire_09000800), - define_vanilla_tex(fire_09001000), - define_vanilla_tex(fire_09001800), - define_vanilla_tex(fire_09002000), - define_vanilla_tex(fire_09002800), - define_vanilla_tex(fire_09003000), - define_vanilla_tex(fire_09003800), - define_vanilla_tex(fire_09004000), - define_vanilla_tex(fire_09004800), - define_vanilla_tex(fire_09005000), - define_vanilla_tex(fire_09005800), - define_vanilla_tex(fire_09006000), - define_vanilla_tex(fire_09006800), - define_vanilla_tex(fire_09007000), - define_vanilla_tex(fire_09007800), - define_vanilla_tex(fire_09008000), - define_vanilla_tex(fire_09008800), - define_vanilla_tex(fire_09009000), - define_vanilla_tex(fire_09009800), - define_vanilla_tex(fire_0900A000), - define_vanilla_tex(fire_0900A800), - define_vanilla_tex(fire_0900B000), - define_vanilla_tex(fire_0900B800), - define_vanilla_tex(generic_09000000), - define_vanilla_tex(generic_09000800), - define_vanilla_tex(generic_09001000), - define_vanilla_tex(generic_09001800), - define_vanilla_tex(generic_09002000), - define_vanilla_tex(generic_09002800), - define_vanilla_tex(generic_09003000), - define_vanilla_tex(generic_09003800), - define_vanilla_tex(generic_09004000), - define_vanilla_tex(generic_09004800), - define_vanilla_tex(generic_09005000), - define_vanilla_tex(generic_09005800), - define_vanilla_tex(generic_09006000), - define_vanilla_tex(generic_09007000), - define_vanilla_tex(generic_09007800), - define_vanilla_tex(generic_09008000), - define_vanilla_tex(generic_09008800), - define_vanilla_tex(generic_09009000), - define_vanilla_tex(generic_09009800), - define_vanilla_tex(generic_0900A000), - define_vanilla_tex(generic_0900A800), - define_vanilla_tex(generic_0900B000), - define_vanilla_tex(grass_09000000), - define_vanilla_tex(grass_09000800), - define_vanilla_tex(grass_09001000), - define_vanilla_tex(grass_09001800), - define_vanilla_tex(grass_09002000), - define_vanilla_tex(grass_09002800), - define_vanilla_tex(grass_09003000), - define_vanilla_tex(grass_09003800), - define_vanilla_tex(grass_09004000), - define_vanilla_tex(grass_09004800), - define_vanilla_tex(grass_09005000), - define_vanilla_tex(grass_09005800), - define_vanilla_tex(grass_09006000), - define_vanilla_tex(grass_09006800), - define_vanilla_tex(grass_09007000), - define_vanilla_tex(grass_09007800), - define_vanilla_tex(grass_09008000), - define_vanilla_tex(grass_09008800), - define_vanilla_tex(grass_09009000), - define_vanilla_tex(grass_09009800), - define_vanilla_tex(grass_0900A000), - define_vanilla_tex(grass_0900A800), - define_vanilla_tex(grass_0900B000), - define_vanilla_tex(grass_0900B800), - define_vanilla_tex(inside_09000000), - define_vanilla_tex(inside_09001000), - define_vanilla_tex(inside_09002000), - define_vanilla_tex(inside_09003000), - define_vanilla_tex(inside_09003800), - define_vanilla_tex(inside_09004000), - define_vanilla_tex(inside_09004800), - define_vanilla_tex(inside_09005000), - define_vanilla_tex(inside_09005800), - define_vanilla_tex(inside_09006000), - define_vanilla_tex(inside_09007000), - define_vanilla_tex(inside_09008000), - define_vanilla_tex(inside_09008800), - define_vanilla_tex(inside_09009000), - define_vanilla_tex(inside_0900A000), - define_vanilla_tex(inside_0900B000), - define_vanilla_tex(inside_0900B800), - define_vanilla_tex(machine_09000000), - define_vanilla_tex(machine_09000800), - define_vanilla_tex(machine_09001000), - define_vanilla_tex(machine_09001800), - define_vanilla_tex(machine_09002000), - define_vanilla_tex(machine_09002800), - define_vanilla_tex(machine_09003000), - define_vanilla_tex(machine_09003800), - define_vanilla_tex(machine_09004000), - define_vanilla_tex(machine_09005000), - define_vanilla_tex(machine_09005800), - define_vanilla_tex(machine_09006000), - define_vanilla_tex(machine_09006800), - define_vanilla_tex(machine_09007000), - define_vanilla_tex(machine_09007800), - define_vanilla_tex(machine_09008000), - define_vanilla_tex(machine_09008400), - define_vanilla_tex(mountain_09000000), - define_vanilla_tex(mountain_09000800), - define_vanilla_tex(mountain_09001800), - define_vanilla_tex(mountain_09002800), - define_vanilla_tex(mountain_09003000), - define_vanilla_tex(mountain_09003800), - define_vanilla_tex(mountain_09004000), - define_vanilla_tex(mountain_09004800), - define_vanilla_tex(mountain_09005000), - define_vanilla_tex(mountain_09005800), - define_vanilla_tex(mountain_09006800), - define_vanilla_tex(mountain_09007000), - define_vanilla_tex(mountain_09007800), - define_vanilla_tex(mountain_09008000), - define_vanilla_tex(mountain_09008800), - define_vanilla_tex(mountain_09009800), - define_vanilla_tex(mountain_0900A000), - define_vanilla_tex(mountain_0900A800), - define_vanilla_tex(mountain_0900B000), - define_vanilla_tex(mountain_0900B800), - define_vanilla_tex(mountain_0900C000), - define_vanilla_tex(outside_09000000), - define_vanilla_tex(outside_09000800), - define_vanilla_tex(outside_09001000), - define_vanilla_tex(outside_09002000), - define_vanilla_tex(outside_09003000), - define_vanilla_tex(outside_09003800), - define_vanilla_tex(outside_09004000), - define_vanilla_tex(outside_09004800), - define_vanilla_tex(outside_09005800), - define_vanilla_tex(outside_09006000), - define_vanilla_tex(outside_09006800), - define_vanilla_tex(outside_09007800), - define_vanilla_tex(outside_09008000), - define_vanilla_tex(outside_09008800), - define_vanilla_tex(outside_09009000), - define_vanilla_tex(outside_09009800), - define_vanilla_tex(outside_0900A000), - define_vanilla_tex(outside_0900A800), - define_vanilla_tex(outside_0900B000), - define_vanilla_tex(outside_0900B400), - define_vanilla_tex(outside_0900BC00), - define_vanilla_tex(sky_09000000), - define_vanilla_tex(sky_09000800), - define_vanilla_tex(sky_09001000), - define_vanilla_tex(sky_09001800), - define_vanilla_tex(sky_09002000), - define_vanilla_tex(sky_09003000), - define_vanilla_tex(sky_09003800), - define_vanilla_tex(sky_09004800), - define_vanilla_tex(sky_09005000), - define_vanilla_tex(sky_09005800), - define_vanilla_tex(sky_09006000), - define_vanilla_tex(texture_metal_hole), - define_vanilla_tex(sky_09007000), - define_vanilla_tex(sky_09007800), - define_vanilla_tex(sky_09008000), - define_vanilla_tex(snow_09000000), - define_vanilla_tex(snow_09000800), - define_vanilla_tex(snow_09001000), - define_vanilla_tex(snow_09002000), - define_vanilla_tex(snow_09002800), - define_vanilla_tex(snow_09003000), - define_vanilla_tex(snow_09003800), - define_vanilla_tex(snow_09004000), - define_vanilla_tex(snow_09004800), - define_vanilla_tex(snow_09005000), - define_vanilla_tex(snow_09005800), - define_vanilla_tex(snow_09006000), - define_vanilla_tex(snow_09006800), - define_vanilla_tex(snow_09007000), - define_vanilla_tex(snow_09008000), - define_vanilla_tex(snow_09008800), - define_vanilla_tex(snow_09009000), - define_vanilla_tex(snow_09009800), - define_vanilla_tex(spooky_09000000), - define_vanilla_tex(spooky_09000800), - define_vanilla_tex(spooky_09001800), - define_vanilla_tex(spooky_09002800), - define_vanilla_tex(spooky_09003800), - define_vanilla_tex(spooky_09004800), - define_vanilla_tex(spooky_09005000), - define_vanilla_tex(spooky_09006000), - define_vanilla_tex(spooky_09006800), - define_vanilla_tex(spooky_09007000), - define_vanilla_tex(spooky_09008000), - define_vanilla_tex(spooky_09008800), - define_vanilla_tex(spooky_09009000), - define_vanilla_tex(spooky_0900A000), - define_vanilla_tex(spooky_0900A800), - define_vanilla_tex(spooky_0900B000), - define_vanilla_tex(spooky_0900B800), - define_vanilla_tex(water_09000000), - define_vanilla_tex(water_09000800), - define_vanilla_tex(water_09001800), - define_vanilla_tex(water_09002800), - define_vanilla_tex(water_09003800), - define_vanilla_tex(water_09004800), - define_vanilla_tex(water_09005800), - define_vanilla_tex(water_09006000), - define_vanilla_tex(water_09006800), - define_vanilla_tex(water_09007800), - define_vanilla_tex(water_09008800), - define_vanilla_tex(water_09009000), - define_vanilla_tex(water_0900A000), - define_vanilla_tex(water_0900A800), - define_vanilla_tex(water_0900B800), -}; - -const Texture* DynOS_Mgr_VanillaTex_GetFromName(const char* aDataName) { - MGR_FIND_DATA(sDynosVanillaTexs, (const Texture*)); -} - -const char* DynOS_Mgr_VanillaTex_GetFromData(const Texture* aData) { - MGR_FIND_NAME(sDynosVanillaTexs); -} - - //////////////////// - // Functions Ptrs // -//////////////////// - -static void *geo_rotate_3d_coin(s32 callContext, void *node, UNUSED void *c) { - if (callContext == GEO_CONTEXT_RENDER) { - struct Object *obj = (struct Object *) gCurGraphNodeObject; - struct GraphNodeRotation *rotNode = (struct GraphNodeRotation *) ((struct GraphNode *) node)->next; - rotNode->rotation[0] = 0; - rotNode->rotation[1] = obj->oAnimState; - rotNode->rotation[2] = 0; - obj->oAnimState += 0x0800; - } - return NULL; -} - -#define define_vanilla_func(tex) (const void*) #tex, (const void*) tex -static const void* sDynosVanillaFuncs[] = { - define_vanilla_func(geo_mirror_mario_set_alpha), - define_vanilla_func(geo_switch_mario_stand_run), - define_vanilla_func(geo_switch_mario_eyes), - define_vanilla_func(geo_mario_tilt_torso), - define_vanilla_func(geo_mario_head_rotation), - define_vanilla_func(geo_switch_mario_hand), - define_vanilla_func(geo_mario_hand_foot_scaler), - define_vanilla_func(geo_switch_mario_cap_effect), - define_vanilla_func(geo_switch_mario_cap_on_off), - define_vanilla_func(geo_mario_rotate_wing_cap_wings), - define_vanilla_func(geo_switch_mario_hand_grab_pos), - define_vanilla_func(geo_render_mirror_mario), - define_vanilla_func(geo_mirror_mario_backface_culling), - define_vanilla_func(geo_update_projectile_pos_from_parent), - define_vanilla_func(geo_update_layer_transparency), - define_vanilla_func(geo_switch_anim_state), - define_vanilla_func(geo_switch_area), - define_vanilla_func(geo_camera_main), - define_vanilla_func(geo_camera_fov), - define_vanilla_func(geo_envfx_main), - define_vanilla_func(geo_skybox_main), - define_vanilla_func(geo_wdw_set_initial_water_level), - define_vanilla_func(geo_movtex_pause_control), - define_vanilla_func(geo_movtex_draw_water_regions), - define_vanilla_func(geo_movtex_draw_nocolor), - define_vanilla_func(geo_movtex_draw_colored), - define_vanilla_func(geo_movtex_draw_colored_no_update), - define_vanilla_func(geo_movtex_draw_colored_2_no_update), - define_vanilla_func(geo_movtex_update_horizontal), - define_vanilla_func(geo_movtex_draw_colored_no_update), - define_vanilla_func(geo_painting_draw), - define_vanilla_func(geo_painting_update), - define_vanilla_func(geo_exec_inside_castle_light), - define_vanilla_func(geo_exec_flying_carpet_timer_update), - define_vanilla_func(geo_exec_flying_carpet_create), - define_vanilla_func(geo_exec_cake_end_screen), - define_vanilla_func(geo_cannon_circle_base), - define_vanilla_func(geo_move_mario_part_from_parent), - define_vanilla_func(geo_bits_bowser_coloring), - define_vanilla_func(geo_update_body_rot_from_parent), - define_vanilla_func(geo_switch_bowser_eyes), - define_vanilla_func(geo_switch_tuxie_mother_eyes), - define_vanilla_func(geo_update_held_mario_pos), - define_vanilla_func(geo_snufit_move_mask), - define_vanilla_func(geo_snufit_scale_body), - define_vanilla_func(geo_scale_bowser_key), - (const void *) "geo_rotate_coin", (const void *) geo_rotate_3d_coin, - define_vanilla_func(geo_offset_klepto_held_object), - define_vanilla_func(geo_switch_peach_eyes), - // coop-specific - define_vanilla_func(geo_mario_set_player_colors), - define_vanilla_func(geo_movtex_draw_water_regions_ext), - define_vanilla_func(lvl_init_or_update), -}; - -const void* DynOS_Mgr_VanillaFunc_GetFromName(const char* aDataName) { - MGR_FIND_DATA(sDynosVanillaFuncs, (const void*)); -} - -const void* DynOS_Mgr_VanillaFunc_GetFromIndex(s32 aIndex) { - size_t count = sizeof(sDynosVanillaFuncs) / (2 * sizeof(sDynosVanillaFuncs[0])); - if (aIndex < 0 || aIndex >= count) { return NULL; } - return (const void*)sDynosVanillaFuncs[aIndex * 2 + 1]; -} - -s32 DynOS_Mgr_VanillaFunc_GetIndexFromData(const void* aData) { - size_t count = sizeof(sDynosVanillaFuncs) / (2 * sizeof(sDynosVanillaFuncs[0])); - for (s32 i = 0; i < count; i++) { - if ((const void*)sDynosVanillaFuncs[i * 2 + 1] == aData) { - return i; - } - } - return -1; -} diff --git a/data/dynos_misc.cpp b/data/dynos_misc.cpp index 940ea8954..7fd5be0d7 100644 --- a/data/dynos_misc.cpp +++ b/data/dynos_misc.cpp @@ -137,22 +137,6 @@ s32 DynOS_String_Width(const u8 *aStr64) { return _Width; } -// -// Geo -// - -static void *geo_rotate_3d_coin(s32 callContext, void *node, UNUSED void *c) { - if (callContext == GEO_CONTEXT_RENDER) { - struct Object *obj = (struct Object *) gCurGraphNodeObject; - struct GraphNodeRotation *rotNode = (struct GraphNodeRotation *) ((struct GraphNode *) node)->next; - rotNode->rotation[0] = 0; - rotNode->rotation[1] = obj->oAnimState; - rotNode->rotation[2] = 0; - obj->oAnimState += 0x0800; - } - return NULL; -} - // // Actors //