diff options
| author | octorock <79596758+octorock@users.noreply.github.com> | 2021-11-14 14:50:45 +0100 |
|---|---|---|
| committer | octorock <79596758+octorock@users.noreply.github.com> | 2021-11-14 14:50:45 +0100 |
| commit | 3a523cb74b0bc645231654b1db4f9f4a824dfe3a (patch) | |
| tree | b16c8909c28ac7619249c93dbe2c829823f4000d /include | |
| parent | 9396484df6c05886b38fd29bc67b4d247f15015f (diff) | |
Decompile entity init functions
Diffstat (limited to 'include')
| -rw-r--r-- | include/definitions.h | 57 | ||||
| -rw-r--r-- | include/functions.h | 6 | ||||
| -rw-r--r-- | include/spritedata.h | 383 | ||||
| -rw-r--r-- | include/structures.h | 2 |
4 files changed, 50 insertions, 398 deletions
diff --git a/include/definitions.h b/include/definitions.h index df1bc753..83c42b30 100644 --- a/include/definitions.h +++ b/include/definitions.h @@ -12,7 +12,7 @@ typedef struct EnemyDefinition { u16 spriteIndex; struct { u8 spritePriority : 3; - u8 unknown : 1; + u8 collision : 1; u8 draw : 2; u8 shadow : 2; } PACKED spriteFlags; @@ -33,7 +33,7 @@ typedef struct ProjectileDefinition { u16 field0x3c : 4; struct { u8 spritePriority : 3; - u8 unknown : 1; + u8 collision : 1; u8 draw : 2; u8 shadow : 2; } PACKED spriteFlags; @@ -44,18 +44,53 @@ typedef struct ProjectileDefinition { } ProjectileDefinition; // Sprite data definition for objects and npcs -typedef struct SpriteDataB { - u8 type; - u8 unk; - u16 bitfield; +typedef struct ObjectDefinition { + struct { + u8 type : 2; + u8 flags : 2; + u8 unk : 4; + u8 hitbox; + u16 gfx : 10; + u16 gfx_type : 2; + u16 unk2 : 4; + } PACKED bitfield; + union { + struct { + u16 paletteIndex : 10; + u16 unk : 2; + u16 shadow : 2; + u16 unk2 : 2; + u16 spriteIndex : 10; + u16 spritePriority : 3; + u16 draw : 3; + } PACKED sprite; + const struct ObjectDefinition* definition; + } data; +} ObjectDefinition; + +typedef struct NPCDefinition { + struct { + u8 type : 2; + u8 flags : 2; + u8 unk : 4; + u8 hitbox; + u16 gfx : 10; + u16 gfx_type : 2; + u16 unk2 : 4; + } PACKED bitfield; union { struct { - u16 paletteIndex; - u16 spriteIndex; - } sprite; - const struct SpriteDataB* spriteData; + u16 paletteIndex : 10; + u16 unk : 2; + u16 shadow : 2; + u16 unk2 : 2; + u16 spriteIndex : 10; + u16 spritePriority : 3; + u16 draw : 3; + } PACKED sprite; + const struct NPCDefinition* definition; } data; -} SpriteDataB; +} NPCDefinition; // Sprite data definition for player items typedef struct SpriteDataC { diff --git a/include/functions.h b/include/functions.h index b52a6db1..65913c68 100644 --- a/include/functions.h +++ b/include/functions.h @@ -55,7 +55,7 @@ extern Entity* CreateProjectile(u32); extern void RegisterPlayerHitbox(); extern s32 GetItemPrice(); extern void DoExitTransition(ScreenTransitionData*); -extern void CreateDustAt(u32, u32, u32); +extern void CreateDustAt(s32, s32, u32); extern void PutItemOnSlot(u32 itemID); extern void CreateSpeechBubbleSleep(Entity*, u32, u32); extern u32 CheckPlayerProximity(u32, u32, u32, u32); @@ -193,7 +193,7 @@ extern void sub_0800417E(Entity*, u32); extern void sub_080784C8(); extern u32 sub_0808288C(Entity*, u32, u32, u32); extern void sub_0806FDA0(Entity*); -extern bool32 sub_080AE008(Entity*, u8, u32); +extern bool32 LoadSwapGFX(Entity*, u16, u32); extern u32 sub_08016A30(Entity*); extern void sub_08077728(); extern void sub_0807AEE4(); @@ -302,5 +302,5 @@ extern void sub_0801855C(void); extern u32 sub_0807CAEC(u32); extern void sub_0807CAC8(u32); extern void sub_0805E4E0(Entity*, u32); -extern void sub_0801D040(Entity*, u32); +extern void LoadObjPalette(Entity*, u32); #endif diff --git a/include/spritedata.h b/include/spritedata.h deleted file mode 100644 index 45127db7..00000000 --- a/include/spritedata.h +++ /dev/null @@ -1,383 +0,0 @@ -#ifndef SPRITEDATA_H -#define SPRITEDATA_H - -// Sprite data definition for enemies and projectiles -typedef struct EnemyDefinition { - u16 bitfield; - u16 paletteIndex; - union { - const Hitbox* hitbox; - const struct EnemyDefinition* spriteData; - } ptr; - u16 spriteIndex; - struct { - u8 spritePriority : 3; - u8 unknown : 1; - u8 draw : 2; - u8 shadow : 2; - } PACKED spriteFlags; - u8 health; - s16 speed; - u8 damageType; - u8 flags2; -} EnemyDefinition; - -// Sprite data definition for objects and npcs -typedef struct SpriteDataB { - u8 type; - u8 unk; - u16 bitfield; - union { - struct { - u16 paletteIndex; - u16 spriteIndex; - } sprite; - const struct SpriteDataB* spriteData; - } data; -} SpriteDataB; - -// Sprite data definition for player items -typedef struct SpriteDataC { - u8 bitfield; - u8 index; - u16 unk; - u8 unk2; - u8 spriteIndex; - u16 gfxLoadBitfield; -} SpriteDataC; - -typedef enum { - SPRITE_0, - SPRITE_1, - SPRITE_2, - SPRITE_3, - SPRITE_4, - SPRITE_5, - SPRITE_6, - SPRITE_7, - SPRITE_8, - SPRITE_9, - SPRITE_OBJECT4, - SPRITE_OBJECT6, - SPRITE_12, - SPRITE_13, - SPRITE_14, - SPRITE_15, - SPRITE_16, - SPRITE_17, - SPRITE_18, - SPRITE_19, - SPRITE_20, - SPRITE_21, - SPRITE_22, - SPRITE_ITEMGUSTJAR, - SPRITE_GENTARI, - SPRITE_FESTARI, - SPRITE_MELARI, - SPRITE_MOUNTAINMINISH, - SPRITE_28, - SPRITE_TOWNMINISH, - SPRITE_LIBRARI, - SPRITE_FORESTMINISH, - SPRITE_VAATI, - SPRITE_OBJECT6A_9, - SPRITE_OBJECT6A_0, - SPRITE_OBJECT6A_1, - SPRITE_OBJECT6A_2, - SPRITE_MINISHEZLO, - SPRITE_OBJECT6A_3, - SPRITE_DIN, - SPRITE_NAYRU, - SPRITE_FARORE, - SPRITE_NPC5, - SPRITE_GUARDWITHSPEAR, - SPRITE_KINGDALTUS, - SPRITE_MINISTERPOTHO, - SPRITE_NPC26, - SPRITE_MAID, - SPRITE_TINGLESIBLINGS, - SPRITE_BEEDLE, - SPRITE_BROCCO, - SPRITE_PINA, - SPRITE_POSTMAN, - SPRITE_MALON, - SPRITE_EPONA, - SPRITE_MILKCART, - SPRITE_SMITH, - SPRITE_TOWNSPERSON, - SPRITE_58, - SPRITE_KID, - SPRITE_MAILBOX, - SPRITE_SITTINGPERSON, - SPRITE_MUTOH, - SPRITE_CARPENTER, - SPRITE_GORMAN, - SPRITE_CAT, - SPRITE_CAT_1, - SPRITE_DOG, - SPRITE_DOG_1, - SPRITE_DOG_2, - SPRITE_SYRUP, - SPRITE_PERCY, - SPRITE_FARMERS_0, - SPRITE_FARMERS_1, - SPRITE_DAMPE, - SPRITE_KINGGUSTAF, - SPRITE_GINA, - SPRITE_SIMON, - SPRITE_MAMA, - SPRITE_TEACHERS, - SPRITE_TEACHERS_1, - SPRITE_WINDTRIBESPEOPLE_0, - SPRITE_WINDTRIBESPEOPLE_1, - SPRITE_WINDTRIBESPEOPLE_2, - SPRITE_WINDTRIBESPEOPLE_3, - SPRITE_WINDTRIBESPEOPLE_4, - SPRITE_WINDTRIBESPEOPLE_5, - SPRITE_MAYORHAGEN, - SPRITE_GHOSTBROTHERS, - SPRITE_HURDYGURDYMAN, - SPRITE_COW, - SPRITE_GORONMERCHANT, - SPRITE_GORONMERCHANT_1, - SPRITE_GORON, - SPRITE_CASTORWILDSSTATUE, - SPRITE_NPC4F, - SPRITE_OBJECT6A_4, - SPRITE_97, - SPRITE_DARKNUT_0, - SPRITE_DARKNUT_1, - SPRITE_CHUCHUBOSS_0, - SPRITE_DEATHFX_0, - SPRITE_MADDERPILLAR_0, - SPRITE_GLEEROK_0, - SPRITE_KEATON, - SPRITE_MAZAALHAND, - SPRITE_SCISSORSBEETLE, - SPRITE_MANDIBLESPROJECTILE, - SPRITE_STALFOS, - SPRITE_GIBDO, - SPRITE_LAKITU, - SPRITE_LAKITUCLOUDPROJECTILE, - SPRITE_VAATIREBORNENEMY_0, - SPRITE_VAATIREBORNENEMY_1, - SPRITE_VAATIREBORNENEMY_2, - SPRITE_VAATIREBORNENEMY_3, - SPRITE_VAATIBALL, - SPRITE_VAATITRANSFIGURED_0, - SPRITE_VAATITRANSFIGURED_1, - SPRITE_VAATITRANSFIGURED_2, - SPRITE_VAATITRANSFIGURED_3, - SPRITE_VAATIARM, - SPRITE_VAATIWRATH, - SPRITE_VAATIREBORN, - SPRITE_MOBLINLADY_1, - SPRITE_BALLCHAINSOLDIER, - SPRITE_GYORGMALE, - SPRITE_JARPORTAL, - SPRITE_BEANSTALK_0, - SPRITE_MINECART, - SPRITE_LAVAPLATFORM_1, - SPRITE_WHIRLWIND, - SPRITE_BIGVORTEX, - SPRITE_MACROBOOK, - SPRITE_GENTARICURTAINS, - SPRITE_SPIDERWEB, - SPRITE_OBJECT79, - SPRITE_OCTOROKBOSS_0, - SPRITE_BELL, - SPRITE_TALON, - SPRITE_STURGEON, - SPRITE_LIBRARIANS_0, - SPRITE_LIBRARIANS_1, - SPRITE_STAMP, - SPRITE_MARCY, - SPRITE_STOCKWELL, - SPRITE_WHEATON, - SPRITE_PITA, - SPRITE_CUCCOAGGR, - SPRITE_BLADEBROTHERS_0, - SPRITE_BLADEBROTHERS_1, - SPRITE_REM, - SPRITE_CARLOV_0, - SPRITE_CARLOV_1, - SPRITE_DRLEFT, - SPRITE_155, - SPRITE_ANJU, - SPRITE_EMMA, - SPRITE_GREGAL, - SPRITE_159, - SPRITE_CASTORWILDSSTATUE_1, - SPRITE_CHUCHU, - SPRITE_SPECIALFX, - SPRITE_SPECIALFX_1, - SPRITE_OBJECT64, - SPRITE_BEETLE, - SPRITE_166, - SPRITE_POT, - SPRITE_DEATHFX_1, - SPRITE_PEAHAT, - SPRITE_RAILTRACK, - SPRITE_ROLLOBITE, - SPRITE_OBJECTD, - SPRITE_OBJECT2A, - SPRITE_OCTOROK, - SPRITE_OBJECT43, - SPRITE_ROCKPROJECTILE, - SPRITE_KEESE, - SPRITE_DOORMIMIC, - SPRITE_DOORMIMIC_1, - SPRITE_ROCKCHUCHU, - SPRITE_SPINYCHUCHU, - SPRITE_OBJECT24, - SPRITE_OBJECT1E, - SPRITE_CHESTSPAWNER, - SPRITE_BIGBARREL, - SPRITE_PUSHABLESTATUE, - SPRITE_MOLDWORM, - SPRITE_SLUGGULA, - SPRITE_SLUGGULA_1, - SPRITE_SLUGGULA_2, - SPRITE_PESTO, - SPRITE_PUFFSTOOL, - SPRITE_PUSHABLEROCK, - SPRITE_BEANSTALK_1, - SPRITE_OBJECTB3, - SPRITE_PULLABLEMUSHROOM, - SPRITE_BOLLARD, - SPRITE_WARPPOINT, - SPRITE_OBJECT29, - SPRITE_CHUCHUBOSS_1, - SPRITE_CHUCHUBOSS_2, - SPRITE_OBJECT9, - SPRITE_BOSSDOOR, - SPRITE_OBJECT45, - SPRITE_LIKELIKE, - SPRITE_SPEARMOBLIN, - SPRITE_BOWMOBLIN, - SPRITE_BUSINESSSCRUB, - SPRITE_RUPEELIKE, - SPRITE_MINISHSIZEDENTRANCE, - SPRITE_PULLABLELEVER, - SPRITE_THOUGHTBUBBLE, - SPRITE_MADDERPILLAR_1, - SPRITE_LAVAPLATFORM, - SPRITE_WATERDROP, - SPRITE_WALLMASTER, - SPRITE_DIRTBALLPROJECTILE, - SPRITE_CRENALBEANSPROUT, - SPRITE_BOMBPEAHAT, - SPRITE_SPARK, - SPRITE_CHASER, - SPRITE_SPIKEDBEETLE, - SPRITE_HELMASAUR, - SPRITE_FALLINGBOULDER, - SPRITE_BOBOMB, - SPRITE_GLEEROK_1, - SPRITE_GREATFAIRY, - SPRITE_TEKTITE, - SPRITE_WIZZROBEWIND, - SPRITE_WIZZROBEFIRE, - SPRITE_WIZZROBEICE, - SPRITE_WINDPROJECTILE, - SPRITE_FIREPROJECTILE, - SPRITE_ICEPROJECTILE, - SPRITE_ARMOS, - SPRITE_LEEVER, - SPRITE_ROPE, - SPRITE_EYEGORE, - SPRITE_PESTO_1, - SPRITE_ACROBANDITS, - SPRITE_CROW, - SPRITE_MULLDOZER, - SPRITE_PUSHABLELEVER, - SPRITE_BIGPUSHABLELEVER, - SPRITE_BOMBAROSSA, - SPRITE_WISP, - SPRITE_SPINYBEETLE, - SPRITE_MAZAALHEAD, - SPRITE_MAZAALBRACELET, - SPRITE_MAZAALENERGYBEAM, - SPRITE_MAZAALENERGYBEAM_1, - SPRITE_MAZAALMACRO, - SPRITE_EYESWITCH, - SPRITE_OCTOROKBOSS_1, - SPRITE_PICOBLOOM, - SPRITE_OBJECT35, - SPRITE_BIGICEBLOCK, - SPRITE_BIGICEBLOCK_1, - SPRITE_SMALLICEBLOCK, - SPRITE_OBJECT86, - SPRITE_EVILSPIRIT, - SPRITE_CLOUDPIRANHA, - SPRITE_FLYINGSKULL, - SPRITE_BONEPROJECTILE, - SPRITE_BAKEROVEN, - SPRITE_OBJECT93_0, - SPRITE_LAKITULIGHTNING, - SPRITE_OBJECT6A_5, - SPRITE_BIRD_1, - SPRITE_BIRD, - SPRITE_TORCHTRAPPROJECTILE_0, - SPRITE_TORCHTRAPPROJECTILE_1, - SPRITE_OBJECT98, - SPRITE_OBJECT93_1, - SPRITE_FIGURINEDEVICE, - SPRITE_PULLABLELEVER_1, - SPRITE_VAATIPROJECTILE, - SPRITE_OBJECT44, - SPRITE_GHINI, - SPRITE_VAATIARM_1, - SPRITE_VAATIWRATH_1, - SPRITE_OBJECTAF, - SPRITE_WRATHEYE, - SPRITE_V3HANDPROJECTILE, - SPRITE_VAATIWRATH_2, - SPRITE_VAATIEYESMACRO, - SPRITE_OBJECTB4, -#if !defined(EU) - SPRITE_OBJECTB4_1, -#endif - SPRITE_FAN, - SPRITE_OBJECTA0, - SPRITE_CANNONBALLPROJECTILE, - SPRITE_V1EYELASER, - SPRITE_V1DARKMAGICPROJECTILE, - SPRITE_SLIME, - SPRITE_CURTAIN, - SPRITE_OBJECT9B, - SPRITE_ENEMY5A, - SPRITE_VAATITRANSFIGURED_4, - SPRITE_VAATITRANSFIGURED_5, - SPRITE_OBJECTA6, - SPRITE_FIREBALLGUY, - SPRITE_SPIKEDROLLERS, - SPRITE_OBJECT6A_6, - SPRITE_MOBLINLADY, - SPRITE_OBJECTAB, - SPRITE_GYORGMALEENERGYPROJECTILE, - SPRITE_CLOTHESRACK, - SPRITE_OBJECT6A_7, - SPRITE_JAILBARS, - SPRITE_OBJECTB2, - SPRITE_ENEMY62, - SPRITE_GYORGFEMALEEYE, - SPRITE_GYORGCHILD, - SPRITE_SMALLTOWNMINISH, - SPRITE_GYORGFEMALEMOUTH, - SPRITE_V2PROJECTILE, - SPRITE_OBJECT6A_8, - SPRITE_PINWHEEL, - SPRITE_SPEARMOBLIN_1, - SPRITE_BOWMOBLIN_1, - SPRITE_ARROWPROJECTILE, - SPRITE_322, - SPRITE_323, - SPRITE_324, - SPRITE_FILESCREENOBJECTS, - SPRITE_OBJECTA2, - SPRITE_OBJECT6A_10, - SPRITE_VAATI_1, - -} Sprites; -#endif
\ No newline at end of file diff --git a/include/structures.h b/include/structures.h index bc5f13ea..b1baeaab 100644 --- a/include/structures.h +++ b/include/structures.h @@ -123,7 +123,7 @@ typedef struct { u8 unk0; } struct_02024490; -extern struct_02024490 gUnk_02024490; +extern struct_02024490 gGFXSlots; typedef struct { u32 unk_00; |
