1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-08-07 14:50:15 +00:00
oot/tools/assets/extract/oot64_data/object_ids.py
Dragorn421 1e556e3a3d
New assets system (#2481)
* wip: New assets system tm

Builds gc-eu-mq-dbg OK from clean after
1) make setup
2) python3 -m tools.assets.extract -j
3) replace 0x80A8E610 with sShadowTex in extracted/gc-eu-mq-dbg/assets/overlays/ovl_En_Jsjutan/sShadowMaterialDL.inc.c
4) make various symbols in extracted data like sTex static

* use variables from config.yml for gMtxClear and sShadowTex addresses

* Write source with static for overlays using `HACK_IS_STATIC_ON` hack

* gc-eu-mq-dbg OK from clean with `make setup && make`

* implement more skeleton-related types, cleanups, fixups

* fix extracted data to no longer produce compilation warnings

* implement more of RoomShapeImage types

* yeet XmlPath from ExternalFile usage

* Implement PlayerAnimationDataResource (link_animetion data)

* fix csdis CS_TIME extra arg

* dmadata file names no longer hardcoded for gc-eu-mq-dbg

* ntsc-1.0 OK

* xml fixes

* slightly improve standard output

* rm extract_assets.py

* generate and use Limb enums (TODO: check Skin skels and implement for Curve skels)

* handle dependencies between xmls

* introduce RawPointers xml attribute to ignore specific pointers and keep them raw

* add tools/extract_assets.sh

* fixups

* only extract if xmls changed or if -f (force) is used

* fixups, gc-eu OK

* all versions OK

* check attributes of xml resources elements

* Implement legacy skelanime resources

* fix ASSET_FILES_BIN_EXTRACTED/COMMITTED: look for .u8.bin specifically instead of just .bin

* implement JFIFResource

* fix png/jpg wildcards: look specifically for .u64.png .u32.png .u64.jpg

* Makefile: Add rules to build .png, .bin and .jpg in assets/ too

* start writing actual docs

* extract sTransCircleDL and sTransWipeDL

* misc cleanup/fixes, pygfxd 1.0.3

* refactor CDataExt.set_write callback args to use a dataclass

* Move {} to in-source

* misc

* more progress on spec

* fix missing braces in n64dd_error_textures.c

* finish xml spec doc

* assets xmls fixes

* some cleanup, use `gNameTex_WIDTH/HEIGHT` macros in dlists

* handle hackmode_syotes_room, fix compile

* C build_from_png

* rm tools/assets/bin2c

* rm ZAPD

* format

* remove rule to generate dmadata_table.py

* CC0 license (and some import cleanup)

* dont try to build zapd (rmd)

* simplify palettes with single user (ci images with a non-shared palette)

* add docs on how images are handled

* bss

* allow -j N

* fix n64texconv python bindings memory management

* move -j at the end of calling extraction script

* with -j, update last_extracts.json as each job completes rather than only if all complete

* make interrupting less jank by making child processes ignore sigint

* use enum names in `SCENE_CMD_SKYBOX_SETTINGS`

* `multiprocessing.get_context("fork")`

* import rich, except ImportError s

* fix optional rich usage

* .bss

* .bss

* .bss

* assets extraction: -j -> -j$(N_THREADS)

* .bss

* change LIMB_NONE/MAX defaults to be FILE_OFFSET instead of SKELNAME

* 0XHEX -> 0xHEX

* fix bss

* Proper includes for assets

mostly proper, some includes like dlists resources always causing a sys_matrix.h include (when not every dlist references gIdentityMtx) could be done better

* rm z64.h

* rm z64.h take two

* bss

* Make .u64 suffix for pngs optional

* fixup: rm .u64 suffix from n64dd image paths

* Remove elemtype suffixes from .bin and .jpg files

* Update images.md

* some build_from_png cleanup, more error handling, comments

* Handle skybox textures

Introduce "sub-format" suffix for pngs, with sub-formats split_lo and split_hi being used for skybox textures

* fixup for older python

* improve collision output some

* fully use SURFACETYPE[01] macros in writing extracted surface types

* use WATERBOX_PROPERTIES in extracted waterboxes

* some SceneCommandsResource cleanup

* format EnvLightSettingsList output
2025-05-18 01:29:09 +02:00

406 lines
12 KiB
Python

# This file was generated from ../../../..//include/tables/object_table.h
DATA = (
"OBJECT_INVALID",
"OBJECT_GAMEPLAY_KEEP",
"OBJECT_GAMEPLAY_FIELD_KEEP",
"OBJECT_GAMEPLAY_DANGEON_KEEP",
"OBJECT_UNSET_4",
"OBJECT_UNSET_5",
"OBJECT_HUMAN",
"OBJECT_OKUTA",
"OBJECT_CROW",
"OBJECT_POH",
"OBJECT_DY_OBJ",
"OBJECT_WALLMASTER",
"OBJECT_DODONGO",
"OBJECT_FIREFLY",
"OBJECT_BOX",
"OBJECT_FIRE",
"OBJECT_UNSET_10",
"OBJECT_UNSET_11",
"OBJECT_BUBBLE",
"OBJECT_NIW",
"OBJECT_LINK_BOY",
"OBJECT_LINK_CHILD",
"OBJECT_TITE",
"OBJECT_REEBA",
"OBJECT_PEEHAT",
"OBJECT_KINGDODONGO",
"OBJECT_HORSE",
"OBJECT_ZF",
"OBJECT_GOMA",
"OBJECT_ZL1",
"OBJECT_GOL",
"OBJECT_DODOJR",
"OBJECT_TORCH2",
"OBJECT_BL",
"OBJECT_TP",
"OBJECT_OA1",
"OBJECT_ST",
"OBJECT_BW",
"OBJECT_EI",
"OBJECT_HORSE_NORMAL",
"OBJECT_OB1",
"OBJECT_O_ANIME",
"OBJECT_SPOT04_OBJECTS",
"OBJECT_DDAN_OBJECTS",
"OBJECT_HIDAN_OBJECTS",
"OBJECT_HORSE_GANON",
"OBJECT_OA2",
"OBJECT_SPOT00_OBJECTS",
"OBJECT_MB",
"OBJECT_BOMBF",
"OBJECT_SK2",
"OBJECT_OE1",
"OBJECT_OE_ANIME",
"OBJECT_OE2",
"OBJECT_YDAN_OBJECTS",
"OBJECT_GND",
"OBJECT_AM",
"OBJECT_DEKUBABA",
"OBJECT_UNSET_3A",
"OBJECT_OA3",
"OBJECT_OA4",
"OBJECT_OA5",
"OBJECT_OA6",
"OBJECT_OA7",
"OBJECT_JJ",
"OBJECT_OA8",
"OBJECT_OA9",
"OBJECT_OB2",
"OBJECT_OB3",
"OBJECT_OB4",
"OBJECT_HORSE_ZELDA",
"OBJECT_OPENING_DEMO1",
"OBJECT_WARP1",
"OBJECT_B_HEART",
"OBJECT_DEKUNUTS",
"OBJECT_OE3",
"OBJECT_OE4",
"OBJECT_MENKURI_OBJECTS",
"OBJECT_OE5",
"OBJECT_OE6",
"OBJECT_OE7",
"OBJECT_OE8",
"OBJECT_OE9",
"OBJECT_OE10",
"OBJECT_OE11",
"OBJECT_OE12",
"OBJECT_VALI",
"OBJECT_OA10",
"OBJECT_OA11",
"OBJECT_MIZU_OBJECTS",
"OBJECT_FHG",
"OBJECT_OSSAN",
"OBJECT_MORI_HINERI1",
"OBJECT_BB",
"OBJECT_TOKI_OBJECTS",
"OBJECT_YUKABYUN",
"OBJECT_ZL2",
"OBJECT_MJIN",
"OBJECT_MJIN_FLASH",
"OBJECT_MJIN_DARK",
"OBJECT_MJIN_FLAME",
"OBJECT_MJIN_ICE",
"OBJECT_MJIN_SOUL",
"OBJECT_MJIN_WIND",
"OBJECT_MJIN_OKA",
"OBJECT_HAKA_OBJECTS",
"OBJECT_SPOT06_OBJECTS",
"OBJECT_ICE_OBJECTS",
"OBJECT_RELAY_OBJECTS",
"OBJECT_PO_FIELD",
"OBJECT_PO_COMPOSER",
"OBJECT_MORI_HINERI1A",
"OBJECT_MORI_HINERI2",
"OBJECT_MORI_HINERI2A",
"OBJECT_MORI_OBJECTS",
"OBJECT_MORI_TEX",
"OBJECT_SPOT08_OBJ",
"OBJECT_WARP2",
"OBJECT_HATA",
"OBJECT_BIRD",
"OBJECT_UNSET_78",
"OBJECT_UNSET_79",
"OBJECT_UNSET_7A",
"OBJECT_UNSET_7B",
"OBJECT_WOOD02",
"OBJECT_UNSET_7D",
"OBJECT_UNSET_7E",
"OBJECT_UNSET_7F",
"OBJECT_UNSET_80",
"OBJECT_LIGHTBOX",
"OBJECT_PU_BOX",
"OBJECT_UNSET_83",
"OBJECT_UNSET_84",
"OBJECT_TRAP",
"OBJECT_VASE",
"OBJECT_IM",
"OBJECT_TA",
"OBJECT_TK",
"OBJECT_XC",
"OBJECT_VM",
"OBJECT_BV",
"OBJECT_HAKACH_OBJECTS",
"OBJECT_EFC_CRYSTAL_LIGHT",
"OBJECT_EFC_FIRE_BALL",
"OBJECT_EFC_FLASH",
"OBJECT_EFC_LGT_SHOWER",
"OBJECT_EFC_STAR_FIELD",
"OBJECT_GOD_LGT",
"OBJECT_LIGHT_RING",
"OBJECT_TRIFORCE_SPOT",
"OBJECT_BDAN_OBJECTS",
"OBJECT_SD",
"OBJECT_RD",
"OBJECT_PO_SISTERS",
"OBJECT_HEAVY_OBJECT",
"OBJECT_GNDD",
"OBJECT_FD",
"OBJECT_DU",
"OBJECT_FW",
"OBJECT_MEDAL",
"OBJECT_HORSE_LINK_CHILD",
"OBJECT_SPOT02_OBJECTS",
"OBJECT_HAKA",
"OBJECT_RU1",
"OBJECT_SYOKUDAI",
"OBJECT_FD2",
"OBJECT_DH",
"OBJECT_RL",
"OBJECT_EFC_TW",
"OBJECT_DEMO_TRE_LGT",
"OBJECT_GI_KEY",
"OBJECT_MIR_RAY",
"OBJECT_BROB",
"OBJECT_GI_JEWEL",
"OBJECT_SPOT09_OBJ",
"OBJECT_SPOT18_OBJ",
"OBJECT_BDOOR",
"OBJECT_SPOT17_OBJ",
"OBJECT_SHOP_DUNGEN",
"OBJECT_NB",
"OBJECT_MO",
"OBJECT_SB",
"OBJECT_GI_MELODY",
"OBJECT_GI_HEART",
"OBJECT_GI_COMPASS",
"OBJECT_GI_BOSSKEY",
"OBJECT_GI_MEDAL",
"OBJECT_GI_NUTS",
"OBJECT_SA",
"OBJECT_GI_HEARTS",
"OBJECT_GI_ARROWCASE",
"OBJECT_GI_BOMBPOUCH",
"OBJECT_IN",
"OBJECT_TR",
"OBJECT_SPOT16_OBJ",
"OBJECT_OE1S",
"OBJECT_OE4S",
"OBJECT_OS_ANIME",
"OBJECT_GI_BOTTLE",
"OBJECT_GI_STICK",
"OBJECT_GI_MAP",
"OBJECT_OF1D_MAP",
"OBJECT_RU2",
"OBJECT_GI_SHIELD_1",
"OBJECT_DEKUJR",
"OBJECT_GI_MAGICPOT",
"OBJECT_GI_BOMB_1",
"OBJECT_OF1S",
"OBJECT_MA2",
"OBJECT_GI_PURSE",
"OBJECT_HNI",
"OBJECT_TW",
"OBJECT_RR",
"OBJECT_BXA",
"OBJECT_ANUBICE",
"OBJECT_GI_GERUDO",
"OBJECT_GI_ARROW",
"OBJECT_GI_BOMB_2",
"OBJECT_GI_EGG",
"OBJECT_GI_SCALE",
"OBJECT_GI_SHIELD_2",
"OBJECT_GI_HOOKSHOT",
"OBJECT_GI_OCARINA",
"OBJECT_GI_MILK",
"OBJECT_MA1",
"OBJECT_GANON",
"OBJECT_SST",
"OBJECT_NY_UNUSED",
"OBJECT_UNSET_E4",
"OBJECT_NY",
"OBJECT_FR",
"OBJECT_GI_PACHINKO",
"OBJECT_GI_BOOMERANG",
"OBJECT_GI_BOW",
"OBJECT_GI_GLASSES",
"OBJECT_GI_LIQUID",
"OBJECT_ANI",
"OBJECT_DEMO_6K",
"OBJECT_GI_SHIELD_3",
"OBJECT_GI_LETTER",
"OBJECT_SPOT15_OBJ",
"OBJECT_JYA_OBJ",
"OBJECT_GI_CLOTHES",
"OBJECT_GI_BEAN",
"OBJECT_GI_FISH",
"OBJECT_GI_SAW",
"OBJECT_GI_HAMMER",
"OBJECT_GI_GRASS",
"OBJECT_GI_LONGSWORD",
"OBJECT_SPOT01_OBJECTS",
"OBJECT_MD_UNUSED",
"OBJECT_MD",
"OBJECT_KM1",
"OBJECT_KW1",
"OBJECT_ZO",
"OBJECT_KZ",
"OBJECT_UMAJUMP",
"OBJECT_MASTERKOKIRI",
"OBJECT_MASTERKOKIRIHEAD",
"OBJECT_MASTERGOLON",
"OBJECT_MASTERZOORA",
"OBJECT_AOB",
"OBJECT_IK",
"OBJECT_AHG",
"OBJECT_CNE",
"OBJECT_GI_NIWATORI",
"OBJECT_SKJ",
"OBJECT_GI_BOTTLE_LETTER",
"OBJECT_BJI",
"OBJECT_BBA",
"OBJECT_GI_OCARINA_0",
"OBJECT_DS",
"OBJECT_ANE",
"OBJECT_BOJ",
"OBJECT_SPOT03_OBJECT",
"OBJECT_SPOT07_OBJECT",
"OBJECT_FZ",
"OBJECT_BOB",
"OBJECT_GE1",
"OBJECT_YABUSAME_POINT",
"OBJECT_GI_BOOTS_2",
"OBJECT_GI_SEED",
"OBJECT_GND_MAGIC",
"OBJECT_D_ELEVATOR",
"OBJECT_D_HSBLOCK",
"OBJECT_D_LIFT",
"OBJECT_MAMENOKI",
"OBJECT_GOROIWA",
"OBJECT_UNSET_120",
"OBJECT_TORYO",
"OBJECT_DAIKU",
"OBJECT_UNSET_123",
"OBJECT_NWC",
"OBJECT_BLKOBJ",
"OBJECT_GM",
"OBJECT_MS",
"OBJECT_HS",
"OBJECT_INGATE",
"OBJECT_LIGHTSWITCH",
"OBJECT_KUSA",
"OBJECT_TSUBO",
"OBJECT_GI_GLOVES",
"OBJECT_GI_COIN",
"OBJECT_KANBAN",
"OBJECT_GJYO_OBJECTS",
"OBJECT_OWL",
"OBJECT_MK",
"OBJECT_FU",
"OBJECT_GI_KI_TAN_MASK",
"OBJECT_GI_REDEAD_MASK",
"OBJECT_GI_SKJ_MASK",
"OBJECT_GI_RABIT_MASK",
"OBJECT_GI_TRUTH_MASK",
"OBJECT_GANON_OBJECTS",
"OBJECT_SIOFUKI",
"OBJECT_STREAM",
"OBJECT_MM",
"OBJECT_FA",
"OBJECT_OS",
"OBJECT_GI_EYE_LOTION",
"OBJECT_GI_POWDER",
"OBJECT_GI_MUSHROOM",
"OBJECT_GI_TICKETSTONE",
"OBJECT_GI_BROKENSWORD",
"OBJECT_JS",
"OBJECT_CS",
"OBJECT_GI_PRESCRIPTION",
"OBJECT_GI_BRACELET",
"OBJECT_GI_SOLDOUT",
"OBJECT_GI_FROG",
"OBJECT_MAG",
"OBJECT_DOOR_GERUDO",
"OBJECT_GT",
"OBJECT_EFC_ERUPC",
"OBJECT_ZL2_ANIME1",
"OBJECT_ZL2_ANIME2",
"OBJECT_GI_GOLONMASK",
"OBJECT_GI_ZORAMASK",
"OBJECT_GI_GERUDOMASK",
"OBJECT_GANON2",
"OBJECT_KA",
"OBJECT_TS",
"OBJECT_ZG",
"OBJECT_GI_HOVERBOOTS",
"OBJECT_GI_M_ARROW",
"OBJECT_DS2",
"OBJECT_EC",
"OBJECT_FISH",
"OBJECT_GI_SUTARU",
"OBJECT_GI_GODDESS",
"OBJECT_SSH",
"OBJECT_BIGOKUTA",
"OBJECT_BG",
"OBJECT_SPOT05_OBJECTS",
"OBJECT_SPOT12_OBJ",
"OBJECT_BOMBIWA",
"OBJECT_HINTNUTS",
"OBJECT_RS",
"OBJECT_SPOT00_BREAK",
"OBJECT_GLA",
"OBJECT_SHOPNUTS",
"OBJECT_GELDB",
"OBJECT_GR",
"OBJECT_DOG",
"OBJECT_JYA_IRON",
"OBJECT_JYA_DOOR",
"OBJECT_UNSET_16E",
"OBJECT_SPOT11_OBJ",
"OBJECT_KIBAKO2",
"OBJECT_DNS",
"OBJECT_DNK",
"OBJECT_GI_FIRE",
"OBJECT_GI_INSECT",
"OBJECT_GI_BUTTERFLY",
"OBJECT_GI_GHOST",
"OBJECT_GI_SOUL",
"OBJECT_BOWL",
"OBJECT_DEMO_KEKKAI",
"OBJECT_EFC_DOUGHNUT",
"OBJECT_GI_DEKUPOUCH",
"OBJECT_GANON_ANIME1",
"OBJECT_GANON_ANIME2",
"OBJECT_GANON_ANIME3",
"OBJECT_GI_RUPY",
"OBJECT_SPOT01_MATOYA",
"OBJECT_SPOT01_MATOYAB",
"OBJECT_MU",
"OBJECT_WF",
"OBJECT_SKB",
"OBJECT_GJ",
"OBJECT_GEFF",
"OBJECT_HAKA_DOOR",
"OBJECT_GS",
"OBJECT_PS",
"OBJECT_BWALL",
"OBJECT_COW",
"OBJECT_COB",
"OBJECT_GI_SWORD_1",
"OBJECT_DOOR_KILLER",
"OBJECT_OUKE_HAKA",
"OBJECT_TIMEBLOCK",
"OBJECT_ZL4",
)