create object enum and update entity type struct

This commit is contained in:
theo3
2021-02-28 16:54:28 -08:00
parent 6596831a6b
commit e3ee1058bb
126 changed files with 832 additions and 639 deletions
+14 -8
View File
@@ -5,19 +5,22 @@
#include "global.h"
#include "sprite.h"
typedef enum {
PLAYER = 1,
ENEMY = 3,
PROJECTILE = 4,
OBJECT = 6,
NPC = 7,
PLAYER_ITEM = 8,
MANAGER = 9,
} EntityType;
typedef struct {
void* entity1;
void* entity2;
u8 filler[14];
} UnkStruct;
typedef struct {
u8 type;
u8 subtype;
u8 form;
u8 parameter;
} EntityType;
typedef struct {
s8 offset_x;
s8 offset_y;
@@ -39,7 +42,10 @@ typedef struct {
typedef struct Entity {
/*0x00*/ struct Entity* prev;
/*0x04*/ struct Entity* next;
/*0x08*/ EntityType entityType;
/*0x08*/ u8 kind; // was: type
/*0x09*/ u8 id; // was: subtype
/*0x0a*/ u8 type; // was: form
/*0x0b*/ u8 type2; // was: parameter
/*0x0c*/ u8 action;
/*0x0d*/ u8 previousActionFlag;
/*0x0e*/ u8 actionDelay;
+197
View File
@@ -4,6 +4,203 @@
#include "global.h"
#include "entity.h"
typedef enum {
GROUND_ITEM,
DEATH_FX,
SHOP_ITEM,
BUTTON,
OBJECT_4,
POT,
OBJECT_6,
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,
OBJECT_1A,
GREAT_FAIRY,
OBJECT_1C,
OBJECT_1D,
OBJECT_1E,
OBJECT_1F,
OBJECT_20,
OBJECT_21,
FIGURINE_DEVICE,
EYE_SWITCH,
OBJECT_24,
BIG_BARREL,
OBJECT_26,
PUSHABLE_STATUE,
OBJECT_28,
OBJECT_29,
OBJECT_2A,
OBJECT_2B,
BEANSTALK,
SMOKE,
PUSHABLE_ROCK,
HITTABLE_LEVER,
OBJECT_30,
OBJECT_31,
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,
OBJECT_51,
OBJECT_52,
OBJECT_53,
PULLABLE_LEVER,
MINECART,
THOUGHT_BUBBLE,
HIDDEN_LADDER_DOWN,
GENTARI_CURTAIN,
LAVA_PLATFORM,
OBJECT_5A,
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,
CRENAL_BEAN_SPROUT,
MINECART_DOOR,
OBJECT_ON_PILLAR,
MINERAL_WATER_SOURCE,
MINISH_SIZED_ARCHWAY,
OBJECT_70,
PUSHABLE_GRAVE,
OBJECT_72,
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,
OBJECT_80,
OBJECT_81,
BIG_VORTEX,
BIG_PUSHABLE_LEVER,
SMALL_ICE_BLOCK,
BIG_ICE_BLOCK,
OBJECT_86,
OBJECT_87,
HUGE_BOOK,
OBJECT_89,
OBJECT_8A,
OBJECT_8B,
BOOK,
FIREPLACE,
OBJECT_8E,
FROZEN_WATER_ELEMENT,
OBJECT_90,
OBJECT_91,
BAKER_OVEN,
OBJECT_93,
WIND_TRIBE_FLAG,
BIRD,
OBJECT_96,
OBJECT_97,
OBJECT_98,
OBJECT_99,
HUGE_ACORN,
OBJECT_9B,
TREE_HIDING_PORTAL,
LIGHTABLE_SWITCH,
OBJECT_9E,
FAN,
OBJECT_A0,
PALACE_ARCHWAY,
OBJECT_A2,
CLOUD,
MINISH_LIGHT,
OBJECT_A5,
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,
OBJECT_BA,
WINDCREST,
LIT_AREA,
OBJECT_BD,
PINWHEEL,
OBJECT_BF,
ENEMY_ITEM,
OBJECT_C1,
} Object;
extern void ItemOnGround(Entity*);
extern void DeathFx(Entity*);
extern void ItemForSale(Entity*);