mirror of https://github.com/zeldaret/tmc.git
427 lines
7.7 KiB
C
427 lines
7.7 KiB
C
#ifndef OBJECT_H
|
|
#define OBJECT_H
|
|
|
|
#include "global.h"
|
|
#include "asm.h"
|
|
#include "common.h"
|
|
|
|
#include "sound.h"
|
|
#include "flags.h"
|
|
#include "effects.h"
|
|
#include "room.h"
|
|
#include "coord.h"
|
|
|
|
#include "entity.h"
|
|
#include "player.h"
|
|
|
|
extern void sub_0807879C(Entity*);
|
|
extern void sub_080787C0(Entity*);
|
|
extern void sub_080787B4(Entity*);
|
|
extern void sub_0808C650(Entity*, u32);
|
|
extern u32 sub_0808C67C(void);
|
|
extern void sub_0808C688(void);
|
|
extern void sub_080A2BE4(Entity*, u32);
|
|
|
|
void CreateDust(Entity* parent);
|
|
void CreateDustAt(s32, s32, u32);
|
|
void CreateDustSmall(Entity* parent);
|
|
Entity* CreateSpeechBubbleQuestionMark(Entity*, s32, s32);
|
|
Entity* CreateSpeechBubbleExclamationMark(Entity*, s32, s32);
|
|
Entity* CreateSpeechBubbleSleep(Entity*, s32, s32);
|
|
|
|
typedef enum {
|
|
GROUND_ITEM,
|
|
DEATH_FX,
|
|
SHOP_ITEM,
|
|
BUTTON,
|
|
MINISH_EMOTICON,
|
|
POT,
|
|
EZLO_CAP,
|
|
PUSHED_BLOCK,
|
|
LOCKED_DOOR,
|
|
OBJECT_9,
|
|
OBJECT_A,
|
|
OBJECT_B,
|
|
CHEST_SPAWNER,
|
|
OBJECT_D,
|
|
OBJECT_E,
|
|
SPECIAL_FX,
|
|
OBJECT_10,
|
|
OBJECT_11,
|
|
OBJECT_12,
|
|
RAILTRACK,
|
|
LILYPAD_LARGE,
|
|
OBJECT_15,
|
|
FLOATING_PLATFORM,
|
|
OBJECT_17,
|
|
EVIL_SPIRIT,
|
|
HOUSE_DOOR_EXT,
|
|
RUPEE_OBJECT,
|
|
GREAT_FAIRY,
|
|
OBJECT_1C,
|
|
OBJECT_1D,
|
|
OBJECT_1E,
|
|
OBJECT_1F,
|
|
OBJECT_20,
|
|
OBJECT_21,
|
|
FIGURINE_DEVICE,
|
|
EYE_SWITCH,
|
|
PRESSURE_PLATE,
|
|
BIG_BARREL,
|
|
BARREL_INSIDE,
|
|
PUSHABLE_STATUE,
|
|
OBJECT_28,
|
|
AMBIENT_CLOUDS,
|
|
OBJECT_2A,
|
|
OBJECT_2B,
|
|
BEANSTALK,
|
|
SMOKE,
|
|
PUSHABLE_ROCK,
|
|
HITTABLE_LEVER,
|
|
OBJECT_30,
|
|
FROZEN_FLOWER,
|
|
PULLABLE_MUSHROOM,
|
|
BOLLARD,
|
|
WARP_POINT,
|
|
OBJECT_35,
|
|
OBJECT_36,
|
|
OBJECT_37,
|
|
JAR_PORTAL,
|
|
BOSS_DOOR,
|
|
OBJECT_3A,
|
|
PORTAL_MUSHROOM_STALKS,
|
|
PORTAL_FALLING_PLAYER,
|
|
OBJECT_3D,
|
|
OBJECT_3E,
|
|
GIANT_LEAF,
|
|
FAIRY,
|
|
LADDER_UP,
|
|
OBJECT_42,
|
|
OBJECT_43,
|
|
OBJECT_44,
|
|
OBJECT_45,
|
|
GIANT_BOOK_LADDER,
|
|
HEART_CONTAINER,
|
|
FILE_SCREEN_OBJECTS,
|
|
OBJECT_49,
|
|
BACKGROUND_CLOUD,
|
|
OBJECT_4B,
|
|
PUSHABLE_FURNITURE,
|
|
FURNITURE,
|
|
MINISH_SIZED_ENTRANCE,
|
|
ARCHWAY,
|
|
GIANT_ROCK,
|
|
GIANT_ROCK2,
|
|
OBJECT_52,
|
|
OBJECT_53,
|
|
PULLABLE_LEVER,
|
|
MINECART,
|
|
THOUGHT_BUBBLE,
|
|
HIDDEN_LADDER_DOWN,
|
|
GENTARI_CURTAIN,
|
|
LAVA_PLATFORM,
|
|
PAPER,
|
|
OBJECT_5B,
|
|
MASK,
|
|
HOUSE_DOOR_INT,
|
|
WHIRLWIND,
|
|
OBJECT_BLOCKING_STAIRS,
|
|
SWORDSMAN_NEWSLETTER,
|
|
OBJECT_61,
|
|
GIANT_TWIG,
|
|
OBJECT_63,
|
|
OBJECT_64,
|
|
LADDER_HOLE,
|
|
OBJECT_66,
|
|
OBJECT_67,
|
|
OBJECT_68,
|
|
OBJECT_69,
|
|
OBJECT_6A,
|
|
CRENEL_BEAN_SPROUT,
|
|
MINECART_DOOR,
|
|
OBJECT_ON_PILLAR,
|
|
MINERAL_WATER_SOURCE,
|
|
MINISH_SIZED_ARCHWAY,
|
|
OBJECT_70,
|
|
PUSHABLE_GRAVE,
|
|
STONE_TABLET,
|
|
LILYPAD_SMALL,
|
|
OBJECT_74,
|
|
OBJECT_75,
|
|
OBJECT_76,
|
|
BELL,
|
|
HUGE_DECORATION,
|
|
OBJECT_79,
|
|
STEAM,
|
|
PUSHABLE_LEVER,
|
|
HUGE_SHOES,
|
|
OBJECT_ON_BEETLE,
|
|
OBJECT_7E,
|
|
PICO_BLOOM,
|
|
BOARD,
|
|
OBJECT_81,
|
|
BIG_VORTEX,
|
|
BIG_PUSHABLE_LEVER,
|
|
SMALL_ICE_BLOCK,
|
|
BIG_ICE_BLOCK,
|
|
OBJECT_86,
|
|
OCTOROK_BOSS_OBJECT,
|
|
HUGE_BOOK,
|
|
MAZAAL_BOSS_OBJECT,
|
|
CABIN_FURNITURE,
|
|
DOUBLE_BOOKSHELF,
|
|
BOOK,
|
|
FIREPLACE,
|
|
OBJECT_8E,
|
|
FROZEN_WATER_ELEMENT,
|
|
OBJECT_90,
|
|
FROZEN_OCTOROK,
|
|
BAKER_OVEN,
|
|
LAMP,
|
|
WIND_TRIBE_FLAG,
|
|
BIRD,
|
|
OBJECT_96,
|
|
KEY_STEALING_TAKKURI,
|
|
OBJECT_98,
|
|
OBJECT_99,
|
|
HUGE_ACORN,
|
|
OBJECT_9B,
|
|
TREE_HIDING_PORTAL,
|
|
LIGHTABLE_SWITCH,
|
|
TREE_THORNS,
|
|
FAN,
|
|
ANGRY_STATUE,
|
|
PALACE_ARCHWAY,
|
|
OBJECT_A2,
|
|
CLOUD,
|
|
MINISH_LIGHT,
|
|
FIREBALL_CHAIN,
|
|
OBJECT_A6,
|
|
OBJECT_A7,
|
|
OBJECT_A8,
|
|
OBJECT_A9,
|
|
WATERFALL_OPENING,
|
|
OBJECT_AB,
|
|
FOUR_ELEMENTS,
|
|
OBJECT_AD,
|
|
FLOATING_BLOCK,
|
|
OBJECT_AF,
|
|
METAL_DOOR,
|
|
JAIL_BARS,
|
|
OBJECT_B2,
|
|
OBJECT_B3,
|
|
OBJECT_B4,
|
|
OBJECT_B5,
|
|
OBJECT_B6,
|
|
WELL,
|
|
WIND_TRIBE_TELEPORTER,
|
|
OBJECT_B9,
|
|
GYORG_BOSS_OBJECT,
|
|
WINDCREST,
|
|
LIT_AREA,
|
|
OBJECT_BD,
|
|
PINWHEEL,
|
|
OBJECT_BF,
|
|
ENEMY_ITEM,
|
|
OBJECT_C1,
|
|
} Object;
|
|
|
|
void ItemOnGround();
|
|
void DeathFx();
|
|
void ItemForSale();
|
|
void Button();
|
|
void MinishEmoticon();
|
|
void Pot();
|
|
void EzloCap();
|
|
void BlockPushed();
|
|
void LockedDoor();
|
|
void Object9();
|
|
void ObjectA();
|
|
void ObjectB();
|
|
void ChestSpawner();
|
|
void ObjectD();
|
|
void ObjectE();
|
|
void SpecialFx();
|
|
void Object10();
|
|
void Object11();
|
|
void Object12();
|
|
void Railtrack();
|
|
void LilypadLarge();
|
|
void Object15();
|
|
void FloatingPlatform();
|
|
void Object17();
|
|
void EvilSpirit();
|
|
void HouseDoorExterior();
|
|
void Rupee();
|
|
void GreatFairy();
|
|
void Object1C();
|
|
void Object1D();
|
|
void Object1E();
|
|
void Object1F();
|
|
void Object20();
|
|
void Object21();
|
|
void FigurineDevice();
|
|
void EyeSwitch();
|
|
void PressurePlate();
|
|
void BigBarrel();
|
|
void BarrelInside();
|
|
void PushableStatue();
|
|
void Object28();
|
|
void AmbientClouds();
|
|
void Object2A();
|
|
void Object2B();
|
|
void Beanstalk();
|
|
void Smoke();
|
|
void PushableRock();
|
|
void HittableLever();
|
|
void Object30();
|
|
void FrozenFlower();
|
|
void PullableMushroom();
|
|
void Bollard();
|
|
void WarpPoint();
|
|
void Object35();
|
|
void Object36();
|
|
void Object37();
|
|
void JarPortal();
|
|
void BossDoor();
|
|
void Object3A();
|
|
void MacroMushromStalks();
|
|
void MacroPlayer();
|
|
void Object3D();
|
|
void Object3E();
|
|
void GiantLeaf();
|
|
void Fairy();
|
|
void LadderUp();
|
|
void Object42();
|
|
void Object43();
|
|
void Object44();
|
|
void Object45();
|
|
void GiantBookLadder();
|
|
void HeartContainer();
|
|
void FileScreenObjects();
|
|
void Object49();
|
|
void BackgroundCloud();
|
|
void Object4B();
|
|
void PushableFurniture();
|
|
void Furniture();
|
|
void MinishSizedEntrance();
|
|
void Archway();
|
|
void GiantRock();
|
|
void GiantRock2();
|
|
void Object52();
|
|
void Object53();
|
|
void PullableLever();
|
|
void Minecart();
|
|
void ThoughtBubble();
|
|
void HiddenLadderDown();
|
|
void GentariCurtain();
|
|
void LavaPlatform();
|
|
void Paper();
|
|
void Object5B();
|
|
void Mask();
|
|
void HouseDoorInterior();
|
|
void Whirlwind();
|
|
void ObjectBlockingStairs();
|
|
void SwordsmanNewsletter();
|
|
void Object61();
|
|
void GiantTwig();
|
|
void Object63();
|
|
void Object64();
|
|
void LadderHoleInBookshelf();
|
|
void Object66();
|
|
void Object67();
|
|
void Object68();
|
|
void Object69();
|
|
void Object6A();
|
|
void CrenelBeanSprout();
|
|
void MinecartDoor();
|
|
void ObjectOnPillar();
|
|
void MineralWaterSource();
|
|
void MinishSizedArchway();
|
|
void Object70();
|
|
void PushableGrave();
|
|
void StoneTablet();
|
|
void LilypadSmall();
|
|
void Object74();
|
|
void Object75();
|
|
void Object76();
|
|
void Bell();
|
|
void MacroDecoration();
|
|
void Object79();
|
|
void Steam();
|
|
void PushableLever();
|
|
void MacroShoes();
|
|
void ObjectOnSpinyBeetle();
|
|
void Object7E();
|
|
void PicoBloom();
|
|
void Board();
|
|
void Object81();
|
|
void BigVortex();
|
|
void BigPushableLever();
|
|
void SmallIceBlock();
|
|
void BigIceBlock();
|
|
void Object86();
|
|
void OctorokBossObject();
|
|
void MacroBook();
|
|
void MazaalBossObject();
|
|
void CabinFurniture();
|
|
void DoubleBookshelf();
|
|
void Book();
|
|
void Fireplace();
|
|
void Object8E();
|
|
void FrozenWaterElement();
|
|
void Object90();
|
|
void FrozenOctorok();
|
|
void BakerOven();
|
|
void Lamp();
|
|
void WindTribeFlag();
|
|
void Bird();
|
|
void Object96();
|
|
void KeyStealingTakkuri();
|
|
void Object98();
|
|
void Object99();
|
|
void MacroAcorn();
|
|
void Object9B();
|
|
void TreeHidingPortal();
|
|
void LightableSwitch();
|
|
void TreeThorns();
|
|
void Fan();
|
|
void AngryStatue();
|
|
void PalaceArchway();
|
|
void ObjectA2();
|
|
void Cloud();
|
|
void MinishLight();
|
|
void FireballChain();
|
|
void ObjectA6();
|
|
void ObjectA7();
|
|
void ObjectA8();
|
|
void ObjectA9();
|
|
void WaterfallOpening();
|
|
void ObjectAB();
|
|
void FourElements();
|
|
void ObjectAD();
|
|
void FloatingBlock();
|
|
void ObjectAF();
|
|
void MetalDoor();
|
|
void JailBars();
|
|
void ObjectB2();
|
|
void ObjectB3();
|
|
void ObjectB4();
|
|
void ObjectB5();
|
|
void ObjectB6();
|
|
void Well();
|
|
void WindTribeTeleporter();
|
|
void ObjectB9();
|
|
void GyorgBossObject();
|
|
void Windcrest();
|
|
void LitArea();
|
|
void ObjectBD();
|
|
void Pinwheel();
|
|
void ObjectBF();
|
|
void EnemyItem();
|
|
void ObjectC1();
|
|
|
|
extern void (*const gObjectFunctions[194])(Entity*);
|
|
|
|
#endif
|