Extract entity definitions

This commit is contained in:
octorock
2021-11-11 18:12:33 +01:00
parent e44d0e3fc9
commit b1e2175ffb
72 changed files with 3337 additions and 8518 deletions
+6 -6
View File
@@ -46,9 +46,9 @@ extern void sub_0807B0C8(void);
extern void sub_0807A8D8(Entity*);
extern void sub_08077FEC(u32);
extern void ItemInit(Entity*);
extern void sub_080A2838(Entity*);
extern void ObjectInit(Entity*);
extern u32 ReadBit(void*, u32);
extern void sub_0806EC78(Entity*);
extern void NPCInit(Entity*);
typedef struct {
u8 unk0;
@@ -59,7 +59,7 @@ typedef struct {
u8 unk5;
u16 unk6;
} ItemFrame;
extern ItemFrame gUnk_08126DA8[];
extern ItemFrame gPlayerItemDefinitions[];
extern ItemFrame* gUnk_08126ED8[3];
typedef struct {
@@ -301,7 +301,7 @@ void ItemUpdate(Entity* this) {
NONMATCH("asm/non_matching/arm_proxy/ItemInit.inc", void ItemInit(Entity* this)) {
ItemFrame* entry;
entry = &gUnk_08126DA8[this->id];
entry = &gPlayerItemDefinitions[this->id];
if (entry->unk0 == 0xff) {
u32 temp = entry->unk2;
ItemFrame* temp2 = gUnk_08126ED8[entry->unk1];
@@ -334,7 +334,7 @@ void ObjectUpdate(Entity* this) {
int iVar1;
if (((this->flags & 1) == 0) && (this->action == 0))
sub_080A2838(this);
ObjectInit(this);
if (this->iframes != 0)
this->iframes++;
if (!sub_0805E3B0(this)) {
@@ -354,7 +354,7 @@ NONMATCH("asm/non_matching/arm_proxy/NPCUpdate.inc", void NPCUpdate(Entity* this
if ((this->currentHealth & 0x7f) && !ReadBit(&gUnk_020342F8, this->currentHealth - 1))
DeleteThisEntity();
if ((this->action == 0) && ((this->flags & 1) == 0))
sub_0806EC78(this);
NPCInit(this);
if (!sub_0805E3B0(this))
gNPCFunctions[this->id][0](this);
if (this->next != NULL) {
+429
View File
@@ -1,6 +1,435 @@
#include "global.h"
#include "entity.h"
#include "enemy.h"
#include "definitions.h"
#include "hitbox.h"
const EnemyDefinition gEnemyDefinitions[];
const EnemyDefinition gEnemyDefinition_1[];
const EnemyDefinition gEnemyDefinition_2[];
const EnemyDefinition gEnemyDefinition_9[];
const EnemyDefinition gEnemyDefinition_D[];
const EnemyDefinition gEnemyDefinition_D[];
const EnemyDefinition gEnemyDefinition_F[];
const EnemyDefinition gEnemyDefinition_10[];
const EnemyDefinition gEnemyDefinition_11[];
const EnemyDefinition gEnemyDefinition_12[];
const EnemyDefinition gEnemyDefinition_0[];
const EnemyDefinition gEnemyDefinition_13[];
const EnemyDefinition gEnemyDefinition_1B[];
const EnemyDefinition gEnemyDefinition_1B[];
const EnemyDefinition gEnemyDefinition_18[];
const EnemyDefinition gEnemyDefinition_24[];
const EnemyDefinition gEnemyDefinition_26[];
const EnemyDefinition gEnemyDefinition_27[];
const EnemyDefinition gEnemyDefinition_2D[];
const EnemyDefinition gEnemyDefinition_32[];
const EnemyDefinition gEnemyDefinition_34[];
const EnemyDefinition gEnemyDefinition_36[];
const EnemyDefinition gEnemyDefinition_38[];
const EnemyDefinition gEnemyDefinition_37[];
const EnemyDefinition gEnemyDefinition_39[];
const EnemyDefinition gEnemyDefinition_41[];
const EnemyDefinition gEnemyDefinition_44[];
const EnemyDefinition gEnemyDefinition_42[];
const EnemyDefinition gEnemyDefinition_4A[];
const EnemyDefinition gEnemyDefinition_4F[];
const EnemyDefinition gEnemyDefinition_51[];
const EnemyDefinition gEnemyDefinition_52[];
const EnemyDefinition gEnemyDefinition_56[];
const EnemyDefinition gEnemyDefinition_57[];
const EnemyDefinition gEnemyDefinition_7[];
const EnemyDefinition gEnemyDefinition_25[];
const EnemyDefinition gEnemyDefinition_5A[];
const EnemyDefinition gEnemyDefinition_5[];
const EnemyDefinition gEnemyDefinition_30[];
const EnemyDefinition gEnemyDefinition_15[];
const EnemyDefinition gEnemyDefinition_46[];
#define MULTI_FORM(definition_ptr) \
{ 0xffff, 0, { .definition = definition_ptr }, 0, { 0, 0, 0, 0 }, 0, 0, 0, 0 }
const EnemyDefinition gEnemyDefinitions[] = {
MULTI_FORM(gEnemyDefinition_0),
MULTI_FORM(gEnemyDefinition_1),
MULTI_FORM(gEnemyDefinition_2),
{ 5, 32, { &gHitbox_0 }, SPRITE_PEAHAT, { 1, 1, 1, 1 }, 4, 128, 112, 15 },
{ 8, 42, { &gHitbox_5 }, SPRITE_ROLLOBITE, { 1, 1, 1, 1 }, 255, 256, 34, 143 },
MULTI_FORM(gEnemyDefinition_5),
#ifdef EU
{ 259, 5, { &gHitbox_0 }, 344, { 0, 1, 1, 1 }, 255, 0, 64, 139 }, // TODO sprite index too high
#else
{ 259, 5, { &gHitbox_0 }, 345, { 0, 1, 1, 1 }, 255, 0, 64, 139 }, // TODO sprite index too high
#endif
MULTI_FORM(gEnemyDefinition_7),
{ 7, 112, { &gHitbox_8 }, SPRITE_KEESE, { 0, 1, 1, 0 }, 2, 256, 32, 15 },
MULTI_FORM(gEnemyDefinition_9),
{ 16, 30, { &gHitbox_23 }, SPRITE_ROCKCHUCHU, { 1, 1, 1, 0 }, 4, 64, 148, 139 },
{ 17, 35, { &gHitbox_23 }, SPRITE_SPINYCHUCHU, { 1, 1, 1, 0 }, 4, 32, 92, 139 },
#ifdef EU
{ 463, 0, { &gHitbox_27 }, 494, { 1, 1, 1, 0 }, 255, 256, 4, 1 }, // TODO sprite index too high
#else
{ 463, 0, { &gHitbox_27 }, 495, { 1, 1, 1, 0 }, 255, 256, 4, 1 }, // TODO sprite index too high
#endif
MULTI_FORM(gEnemyDefinition_D),
{ 0, 0, { &gHitbox_0 }, SPRITE_0, { 0, 0, 0, 1 }, 255, 256, 0, 139 },
MULTI_FORM(gEnemyDefinition_F),
MULTI_FORM(gEnemyDefinition_10),
MULTI_FORM(gEnemyDefinition_11),
MULTI_FORM(gEnemyDefinition_12),
MULTI_FORM(gEnemyDefinition_13),
{ 69, 111, { &gHitbox_9 }, SPRITE_LIKELIKE, { 1, 1, 1, 1 }, 20, 64, 140, 139 },
MULTI_FORM(gEnemyDefinition_15),
{ 114, 110, { &gHitbox_0 }, SPRITE_BUSINESSSCRUB, { 0, 0, 1, 1 }, 255, 0, 1, 139 },
{ 115, 4, { &gHitbox_10 }, SPRITE_323, { 0, 0, 0, 1 }, 16, 96, 142, 139 },
MULTI_FORM(gEnemyDefinition_18),
{ 134, 1, { &gHitbox_0 }, SPRITE_WATERDROP, { 0, 1, 1, 1 }, 255, 256, 122, 1 },
{ 135, 0, { &gHitbox_11 }, SPRITE_WALLMASTER, { 0, 0, 0, 1 }, 10, 256, 116, 139 },
MULTI_FORM(gEnemyDefinition_1B),
{ 141, 0, { &gHitbox_17 }, SPRITE_SPARK, { 0, 1, 1, 1 }, 255, 256, 72, 139 },
{ 143, 112, { &gHitbox_13 }, SPRITE_CHASER, { 0, 1, 1, 1 }, 255, 256, 89, 139 },
{ 144, 113, { &gHitbox_0 }, SPRITE_SPIKEDBEETLE, { 1, 1, 1, 1 }, 4, 96, 99, 139 },
#ifdef EU
{ 145, 1, { &gHitbox_13 }, 482, { 0, 1, 1, 1 }, 255, 256, 102, 139 }, // TODO sprite index too high
#else
{ 145, 1, { &gHitbox_13 }, 483, { 0, 1, 1, 1 }, 255, 256, 102, 139 }, // TODO sprite index too high
#endif
{ 146, 112, { &gHitbox_14 }, SPRITE_HELMASAUR, { 1, 1, 1, 1 }, 4, 256, 111, 15 },
{ 168, 0, { &gHitbox_0 }, SPRITE_FALLINGBOULDER, { 3, 0, 0, 2 }, 255, 256, 147, 139 },
{ 169, 112, { &gHitbox_0 }, SPRITE_BOBOMB, { 1, 1, 1, 0 }, 255, 128, 128, 15 },
{ 135, 1, { &gHitbox_12 }, SPRITE_WALLMASTER, { 3, 1, 1, 1 }, 10, 96, 116, 139 },
MULTI_FORM(gEnemyDefinition_24),
MULTI_FORM(gEnemyDefinition_25),
MULTI_FORM(gEnemyDefinition_26),
MULTI_FORM(gEnemyDefinition_27),
{ 216, 0, { &gHitbox_0 }, SPRITE_WIZZROBEFIRE, { 0, 0, 0, 1 }, 8, 192, 12, 139 },
{ 217, 113, { &gHitbox_0 }, SPRITE_WIZZROBEICE, { 0, 0, 0, 1 }, 8, 192, 6, 139 },
{ 222, 170, { &gHitbox_15 }, SPRITE_ARMOS, { 1, 1, 1, 1 }, 10, 160, 1, 1 },
{ 225, 178, { &gHitbox_16 }, SPRITE_EYEGORE, { 1, 1, 1, 2 }, 3, 256, 5, 139 },
{ 224, 111, { &gHitbox_24 }, SPRITE_ROPE, { 1, 1, 1, 1 }, 4, 128, 25, 139 },
MULTI_FORM(gEnemyDefinition_2D),
{ 228, 179, { &gHitbox_0 }, SPRITE_ACROBANDITS, { 0, 0, 0, 1 }, 1, 128, 25, 139 },
#ifdef EU
{ 145, 2, { &gHitbox_13 }, 482, { 0, 1, 1, 1 }, 255, 256, 102, 139 }, // TODO sprite index too high
#else
{ 145, 2, { &gHitbox_13 }, 483, { 0, 1, 1, 1 }, 255, 256, 102, 139 }, // TODO sprite index too high
#endif
MULTI_FORM(gEnemyDefinition_30),
{ 236, 1, { &gHitbox_19 }, SPRITE_CROW, { 1, 0, 1, 1 }, 2, 320, 41, 15 },
MULTI_FORM(gEnemyDefinition_32),
{ 253, 112, { &gHitbox_0 }, SPRITE_BOMBAROSSA, { 1, 1, 1, 1 }, 255, 256, 1, 139 },
MULTI_FORM(gEnemyDefinition_34),
{ 255, 112, { &gHitbox_29 }, SPRITE_SPINYBEETLE, { 0, 0, 0, 1 }, 4, 352, 25, 139 },
MULTI_FORM(gEnemyDefinition_36),
MULTI_FORM(gEnemyDefinition_37),
MULTI_FORM(gEnemyDefinition_38),
MULTI_FORM(gEnemyDefinition_39),
{ 33008, 1, { &gHitbox_18 }, SPRITE_POT, { 0, 1, 1, 0 }, 255, 640, 110, 132 },
{ 16416, 1, { &gHitbox_0 }, SPRITE_GIBDO, { 1, 1, 1, 1 }, 20, 96, 38, 139 },
{ 1, 378, { &gHitbox_0 }, SPRITE_OCTOROK, { 3, 1, 1, 1 }, 64, 96, 144, 139 },
{ 199, 378, { &gHitbox_0 }, SPRITE_TEKTITE, { 1, 1, 1, 1 }, 64, 576, 144, 139 },
{ 224, 378, { &gHitbox_0 }, SPRITE_ROPE, { 1, 1, 1, 1 }, 64, 128, 144, 139 },
{ 353, 112, { &gHitbox_0 }, SPRITE_CLOUDPIRANHA, { 0, 0, 1, 1 }, 4, 256, 90, 139 },
{ 16400, 288, { &gHitbox_2 }, SPRITE_SCISSORSBEETLE, { 1, 0, 0, 1 }, 20, 128, 2, 139 },
MULTI_FORM(gEnemyDefinition_41),
MULTI_FORM(gEnemyDefinition_42),
{ 366, 0, { &gHitbox_18 }, SPRITE_FLYINGSKULL, { 0, 1, 1, 0 }, 255, 640, 110, 132 },
MULTI_FORM(gEnemyDefinition_44),
{ 236, 0, { &gHitbox_19 }, SPRITE_CROW, { 1, 0, 1, 1 }, 4, 320, 87, 15 },
MULTI_FORM(gEnemyDefinition_46),
{ 16400, 299, { &gHitbox_0 }, SPRITE_LAKITU, { 0, 1, 0, 1 }, 6, 128, 67, 143 },
{ 16400, 0, { &gHitbox_0 }, SPRITE_LAKITUCLOUDPROJECTILE, { 1, 1, 1, 2 }, 255, 0, 166, 143 },
{ 0, 0, { &gHitbox_0 }, SPRITE_0, { 0, 0, 0, 1 }, 255, 256, 0, 139 },
MULTI_FORM(gEnemyDefinition_4A),
{ 393, 308, { &gHitbox_0 }, SPRITE_VAATIPROJECTILE, { 1, 1, 1, 1 }, 255, 256, 14, 139 },
{ 16400, 112, { &gHitbox_0 }, SPRITE_BALLCHAINSOLDIER, { 1, 0, 0, 1 }, 16, 128, 163, 139 },
{ 16400, 112, { &gHitbox_0 }, SPRITE_BALLCHAINSOLDIER, { 1, 0, 0, 1 }, 16, 128, 163, 139 },
{ 406, 314, { &gHitbox_0 }, SPRITE_GHINI, { 1, 1, 1, 1 }, 9, 256, 36, 143 },
MULTI_FORM(gEnemyDefinition_4F),
{ 406, 314, { &gHitbox_0 }, SPRITE_GHINI, { 1, 0, 0, 1 }, 9, 256, 36, 143 },
MULTI_FORM(gEnemyDefinition_51),
MULTI_FORM(gEnemyDefinition_52),
#ifdef EU
{ 423, 0, { &gHitbox_4 }, 490, { 0, 1, 1, 1 }, 255, 256, 110, 4 }, // TODO sprite index too high
#else
{ 423, 0, { &gHitbox_4 }, 491, { 0, 1, 1, 1 }, 255, 256, 110, 4 }, // TODO sprite index too high
#endif
{ 16400, 313, { &gHitbox_6 }, SPRITE_VAATIBALL, { 0, 0, 0, 0 }, 255, 1280, 43, 139 },
MULTI_FORM(gEnemyDefinition_0),
MULTI_FORM(gEnemyDefinition_56),
MULTI_FORM(gEnemyDefinition_57),
{ 444, 0, { &gHitbox_25 }, SPRITE_FIREBALLGUY, { 1, 1, 1, 1 }, 4, 64, 25, 139 },
{ 444, 0, { &gHitbox_26 }, SPRITE_FIREBALLGUY, { 1, 1, 1, 0 }, 1, 64, 25, 139 },
MULTI_FORM(gEnemyDefinition_5A),
{ 114, 110, { &gHitbox_0 }, SPRITE_BUSINESSSCRUB, { 0, 0, 1, 1 }, 255, 0, 1, 139 },
{ 0, 0, { &gHitbox_0 }, SPRITE_0, { 0, 0, 0, 1 }, 24, 256, 0, 139 },
{ 16448, 338, { &gHitbox_28 }, SPRITE_GYORGMALE, { 0, 0, 1, 1 }, 12, 256, 27, 139 },
{ 485, 352, { &gHitbox_0 }, SPRITE_CURTAIN, { 0, 1, 1, 1 }, 255, 256, 154, 139 },
{ 418, 320, { &gHitbox_20 }, SPRITE_WRATHEYE, { 1, 0, 1, 0 }, 255, 256, 57, 139 },
{ 498, 0, { &gHitbox_20 }, SPRITE_GYORGCHILD, { 0, 0, 1, 1 }, 3, 256, 32, 15 },
#ifdef EU
{ 499, 377, { &gHitbox_22 }, SPRITE_GYORGFEMALEEYE, { 0, 0, 1, 1 }, 255, 256, 30, 139 },
#else
{ 499, 377, { &gHitbox_21 }, SPRITE_GYORGFEMALEEYE, { 0, 0, 1, 1 }, 255, 256, 30, 139 },
#endif
{ 500, 376, { &gHitbox_0 }, SPRITE_ENEMY62, { 0, 0, 1, 1 }, 255, 256, 30, 139 },
{ 504, 372, { &gHitbox_0 }, SPRITE_GYORGFEMALEMOUTH, { 0, 0, 1, 1 }, 255, 256, 136, 139 },
{ 16448, 338, { &gHitbox_28 }, SPRITE_GYORGMALE, { 0, 0, 1, 1 }, 36, 256, 0, 139 },
{ 0, 0, { &gHitbox_0 }, SPRITE_0, { 0, 0, 0, 1 }, 255, 256, 0, 139 },
};
const EnemyDefinition gEnemyDefinition_1[] = {
{ 3, 28, &gHitbox_23, SPRITE_CHUCHU, { 1, 0, 0, 0 }, 4, 32, 92, 15 },
{ 3, 30, &gHitbox_23, SPRITE_CHUCHU, { 1, 0, 0, 0 }, 4, 32, 92, 15 },
{ 3, 31, &gHitbox_23, SPRITE_CHUCHU, { 1, 0, 0, 0 }, 4, 32, 92, 15 },
};
const EnemyDefinition gEnemyDefinition_2[] = {
{ 2, 175, &gHitbox_0, SPRITE_LEEVER, { 3, 0, 0, 1 }, 6, 128, 25, 139 },
{ 2, 176, &gHitbox_0, SPRITE_LEEVER, { 3, 0, 0, 1 }, 8, 128, 25, 139 },
};
const EnemyDefinition gEnemyDefinition_9[] = {
{ 14, 0, &gHitbox_0, SPRITE_DOORMIMIC, { 0, 1, 1, 1 }, 255, 0, 103, 139 },
{ 15, 0, &gHitbox_0, SPRITE_DOORMIMIC_1, { 0, 1, 1, 1 }, 255, 0, 103, 139 },
{ 14, 0, &gHitbox_0, SPRITE_DOORMIMIC, { 0, 1, 1, 1 }, 255, 0, 103, 139 },
{ 15, 0, &gHitbox_0, SPRITE_DOORMIMIC_1, { 0, 1, 1, 1 }, 255, 0, 103, 139 },
{ 516, 1, &gHitbox_0, SPRITE_DOORMIMIC, { 0, 1, 1, 1 }, 255, 0, 103, 139 },
{ 517, 1, &gHitbox_0, SPRITE_DOORMIMIC_1, { 0, 1, 1, 1 }, 255, 0, 103, 139 },
{ 516, 1, &gHitbox_0, SPRITE_DOORMIMIC, { 0, 1, 1, 1 }, 255, 0, 103, 139 },
{ 517, 1, &gHitbox_0, SPRITE_DOORMIMIC_1, { 0, 1, 1, 1 }, 255, 0, 103, 139 },
};
#ifdef EU
const EnemyDefinition gEnemyDefinition_D[] = {
{ 26, 42, &gUnk_080FD1DC, 483, { 0, 0, 1, 1 }, 10, 384, 93, 139 },
{ 26, 42, &gUnk_080FD1E4, 483, { 0, 1, 1, 1 }, 255, 0, 94, 3 },
{ 26, 42, &gUnk_080FD1E4, 483, { 0, 1, 1, 1 }, 255, 0, 94, 3 },
{ 26, 42, &gUnk_080FD1EC, 483, { 0, 0, 1, 0 }, 255, 0, 0, 0 },
}; // TODO sprite index too high
#else
const EnemyDefinition gEnemyDefinition_D[] = {
{ 26, 42, &gUnk_080FD1DC, 484, { 0, 0, 1, 1 }, 10, 384, 93, 139 },
{ 26, 42, &gUnk_080FD1E4, 484, { 0, 1, 1, 1 }, 255, 0, 94, 3 },
{ 26, 42, &gUnk_080FD1E4, 484, { 0, 1, 1, 1 }, 255, 0, 94, 3 },
{ 26, 42, &gUnk_080FD1EC, 484, { 0, 0, 1, 0 }, 255, 0, 0, 0 },
}; // TODO sprite index too high
#endif
const EnemyDefinition gEnemyDefinition_F[] = {
{ 31, 34, &gUnk_080FD1FC, SPRITE_MOLDWORM, { 0, 0, 0, 1 }, 20, 128, 133, 139 },
{ 31, 34, &gUnk_080FD204, SPRITE_MOLDWORM, { 0, 0, 0, 0 }, 255, 0, 134, 139 },
{ 31, 34, &gUnk_080FD20C, SPRITE_MOLDWORM, { 0, 0, 0, 0 }, 255, 0, 134, 139 },
{ 31, 34, &gUnk_080FD20C, SPRITE_MOLDWORM, { 0, 0, 0, 0 }, 255, 0, 134, 139 },
{ 31, 34, &gUnk_080FD20C, SPRITE_MOLDWORM, { 0, 0, 0, 0 }, 255, 0, 134, 139 },
{ 31, 34, &gUnk_080FD20C, SPRITE_MOLDWORM, { 0, 0, 0, 0 }, 255, 0, 134, 139 },
{ 31, 34, &gUnk_080FD20C, SPRITE_MOLDWORM, { 0, 0, 0, 0 }, 255, 0, 134, 139 },
{ 31, 34, &gUnk_080FD20C, SPRITE_MOLDWORM, { 0, 0, 0, 0 }, 255, 0, 134, 139 },
{ 31, 34, &gUnk_080FD214, SPRITE_MOLDWORM, { 0, 0, 0, 0 }, 255, 0, 134, 139 },
};
const EnemyDefinition gEnemyDefinition_10[] = {
{ 33, 36, &gUnk_080FD21C, SPRITE_SLUGGULA_1, { 3, 1, 0, 1 }, 1, 0, 105, 139 },
{ 32, 36, &gUnk_080FD21C, SPRITE_SLUGGULA, { 0, 1, 1, 1 }, 3, 32, 105, 139 },
{ 32, 0, &gUnk_080FD21C, SPRITE_SLUGGULA_2, { 0, 0, 1, 0 }, 3, 0, 0, 139 },
};
const EnemyDefinition gEnemyDefinition_11[] = {
{ 34, 38, &gUnk_080FD22C, SPRITE_PESTO, { 3, 1, 1, 1 }, 4, 64, 119, 15 },
{ 34, 39, &gUnk_080FD22C, SPRITE_PESTO, { 3, 1, 1, 1 }, 4, 64, 119, 15 },
{ 34, 37, &gUnk_080FD22C, SPRITE_PESTO, { 3, 1, 1, 1 }, 4, 64, 119, 15 },
};
const EnemyDefinition gEnemyDefinition_12[] = {
{ 35, 40, &gHitbox_0, SPRITE_PUFFSTOOL, { 1, 1, 1, 0 }, 1, 64, 130, 15 },
{ 35, 40, &gHitbox_0, SPRITE_PUFFSTOOL, { 1, 1, 1, 0 }, 1, 64, 130, 15 },
};
const EnemyDefinition gEnemyDefinition_0[] = {
{ 1, 0, &gHitbox_0, SPRITE_OCTOROK, { 3, 1, 1, 1 }, 2, 96, 25, 15 },
{ 1, 1, &gHitbox_0, SPRITE_OCTOROK, { 3, 1, 1, 1 }, 3, 96, 25, 15 },
{ 1, 0, &gHitbox_0, SPRITE_OCTOROK, { 3, 1, 1, 1 }, 2, 96, 25, 15 },
};
const EnemyDefinition gEnemyDefinition_13[] = {
{ 62, 43, &gUnk_080FD238, SPRITE_CHUCHUBOSS_1, { 0, 1, 0, 3 }, 255, 80, 125, 15 },
{ 16480, 43, &gUnk_080FD240, SPRITE_CHUCHUBOSS_0, { 0, 0, 0, 0 }, 255, 0, 123, 15 },
{ 62, 43, &gUnk_080FD248, SPRITE_CHUCHUBOSS_1, { 0, 0, 0, 0 }, 255, 0, 122, 0 },
{ 62, 43, &gHitbox_0, SPRITE_CHUCHUBOSS_1, { 0, 0, 0, 0 }, 255, 0, 122, 0 },
{ 62, 44, &gUnk_080FD238, SPRITE_CHUCHUBOSS_1, { 0, 1, 0, 3 }, 255, 80, 125, 15 },
{ 16480, 44, &gUnk_080FD240, SPRITE_CHUCHUBOSS_0, { 0, 0, 0, 0 }, 255, 0, 123, 15 },
{ 62, 44, &gUnk_080FD248, SPRITE_CHUCHUBOSS_1, { 0, 0, 0, 0 }, 255, 0, 122, 0 },
{ 62, 44, &gHitbox_0, SPRITE_CHUCHUBOSS_1, { 0, 0, 0, 0 }, 255, 0, 122, 0 },
{ 62, 44, &gHitbox_0, SPRITE_CHUCHUBOSS_1, { 0, 0, 0, 0 }, 255, 0, 124, 139 },
};
#ifdef EU
const EnemyDefinition gEnemyDefinition_1B[] = {
{ 140, 125, &gHitbox_0, SPRITE_BOMBPEAHAT, { 0, 1, 0, 1 }, 4, 192, 127, 15 },
{ 140, 125, &gHitbox_0, SPRITE_BOMBPEAHAT, { 0, 1, 0, 1 }, 4, 192, 127, 15 },
{ 140, 1, &gHitbox_0, SPRITE_BOMBPEAHAT, { 0, 0, 0, 1 }, 1, 0, 169, 139 },
{ 169, 112, &gUnk_080FD21C, SPRITE_BOBOMB, { 0, 1, 0, 1 }, 255, 128, 128, 15 },
};
#else
const EnemyDefinition gEnemyDefinition_1B[] = {
{ 140, 125, &gHitbox_0, SPRITE_BOMBPEAHAT, { 1, 1, 0, 1 }, 4, 192, 127, 15 },
{ 140, 125, &gHitbox_0, SPRITE_BOMBPEAHAT, { 1, 1, 0, 1 }, 4, 192, 127, 15 },
{ 140, 1, &gHitbox_0, SPRITE_BOMBPEAHAT, { 0, 0, 0, 1 }, 1, 0, 169, 139 },
{ 169, 112, &gUnk_080FD21C, SPRITE_BOBOMB, { 0, 1, 0, 1 }, 255, 128, 128, 15 },
};
#endif
const EnemyDefinition gEnemyDefinition_18[] = {
{ 16400, 119, &gUnk_080FD290, SPRITE_MADDERPILLAR_0, { 0, 0, 1, 1 }, 255, 224, 106, 139 },
{ 123, 119, &gUnk_080FD298, SPRITE_MADDERPILLAR_1, { 0, 1, 1, 1 }, 255, 224, 106, 139 },
{ 123, 119, &gUnk_080FD298, SPRITE_MADDERPILLAR_1, { 0, 1, 1, 1 }, 255, 224, 106, 139 },
{ 123, 119, &gUnk_080FD298, SPRITE_MADDERPILLAR_1, { 0, 1, 1, 1 }, 255, 224, 106, 139 },
{ 123, 119, &gUnk_080FD2A0, SPRITE_MADDERPILLAR_1, { 0, 1, 1, 1 }, 255, 224, 106, 139 },
{ 123, 119, &gUnk_080FD2A0, SPRITE_MADDERPILLAR_1, { 0, 1, 1, 1 }, 255, 224, 106, 139 },
{ 123, 119, &gUnk_080FD2A0, SPRITE_MADDERPILLAR_1, { 0, 1, 1, 1 }, 32, 224, 106, 139 },
};
const EnemyDefinition gEnemyDefinition_24[] = {
{ 173, 201, &gUnk_080FD2D8, SPRITE_GLEEROK_1, { 0, 1, 0, 1 }, 255, 256, 63, 139 },
{ 173, 201, &gUnk_080FD2E0, SPRITE_GLEEROK_1, { 0, 0, 0, 1 }, 255, 256, 1, 139 },
{ 16416, 201, &gUnk_080FD2D0, SPRITE_GLEEROK_0, { 0, 0, 0, 1 }, 255, 256, 0, 139 },
{ 173, 204, &gUnk_080FD2D0, SPRITE_GLEEROK_1, { 0, 1, 1, 1 }, 255, 256, 122, 139 },
{ 16416, 203, &gUnk_080FD2D0, SPRITE_GLEEROK_0, { 0, 0, 1, 1 }, 255, 256, 0, 139 },
{ 16416, 204, &gUnk_080FD2D0, SPRITE_GLEEROK_0, { 0, 0, 1, 1 }, 255, 256, 0, 139 },
{ 173, 204, &gUnk_080FD2D0, SPRITE_GLEEROK_1, { 0, 0, 1, 1 }, 255, 256, 0, 139 },
{ 173, 204, &gUnk_080FD2D0, SPRITE_GLEEROK_1, { 0, 0, 0, 1 }, 255, 256, 0, 139 },
};
const EnemyDefinition gEnemyDefinition_26[] = {
{ 199, 112, &gHitbox_0, SPRITE_TEKTITE, { 1, 1, 1, 1 }, 3, 256, 25, 139 },
{ 199, 113, &gHitbox_0, SPRITE_TEKTITE, { 1, 1, 1, 1 }, 6, 320, 25, 139 },
};
const EnemyDefinition gEnemyDefinition_27[] = {
{ 215, 111, &gHitbox_0, SPRITE_WIZZROBEWIND, { 0, 0, 0, 1 }, 8, 192, 12, 139 },
{ 215, 112, &gHitbox_0, SPRITE_WIZZROBEWIND, { 0, 0, 0, 1 }, 8, 192, 12, 139 },
{ 215, 113, &gHitbox_0, SPRITE_WIZZROBEWIND, { 0, 0, 0, 1 }, 8, 192, 12, 139 },
};
const EnemyDefinition gEnemyDefinition_2D[] = {
{ 227, 38, &gHitbox_0, SPRITE_PESTO_1, { 3, 1, 1, 0 }, 1, 64, 132, 15 },
{ 227, 39, &gHitbox_0, SPRITE_PESTO_1, { 3, 1, 1, 0 }, 1, 64, 132, 15 },
{ 227, 37, &gHitbox_0, SPRITE_PESTO_1, { 3, 1, 1, 0 }, 1, 64, 132, 15 },
};
const EnemyDefinition gEnemyDefinition_32[] = {
{ 237, 200, &gHitbox_0, SPRITE_MULLDOZER, { 1, 1, 1, 1 }, 6, 96, 156, 139 },
{ 237, 199, &gHitbox_0, SPRITE_MULLDOZER, { 1, 1, 1, 1 }, 8, 96, 155, 139 },
};
const EnemyDefinition gEnemyDefinition_34[] = {
{ 254, 0, &gHitbox_1, SPRITE_WISP, { 1, 1, 1, 1 }, 255, 128, 9, 15 },
{ 254, 1, &gHitbox_1, SPRITE_WISP, { 1, 1, 1, 1 }, 255, 384, 9, 15 },
};
const EnemyDefinition gEnemyDefinition_36[] = {
{ 256, 229, &gUnk_080FD354, SPRITE_MAZAALHEAD, { 0, 1, 0, 1 }, 255, 256, 18, 138 },
{ 256, 230, &gHitbox_0, SPRITE_MAZAALHEAD, { 0, 1, 1, 1 }, 255, 256, 0, 138 },
{ 256, 219, &gHitbox_0, SPRITE_MAZAALHEAD, { 0, 1, 1, 1 }, 255, 256, 0, 139 },
{ 256, 220, &gHitbox_0, SPRITE_MAZAALHEAD, { 0, 1, 1, 1 }, 255, 256, 0, 139 },
{ 256, 218, &gUnk_080FD38C, SPRITE_MAZAALHEAD, { 0, 1, 1, 1 }, 255, 256, 0, 139 },
};
const EnemyDefinition gEnemyDefinition_38[] = {
{ 16432, 0, &gHitbox_0, SPRITE_MAZAALHAND, { 0, 1, 0, 1 }, 255, 256, 19, 139 },
{ 16432, 0, &gHitbox_0, SPRITE_MAZAALHAND, { 0, 1, 0, 1 }, 255, 256, 19, 139 },
};
const EnemyDefinition gEnemyDefinition_37[] = {
{ 257, 309, &gHitbox_0, SPRITE_MAZAALMACRO, { 0, 1, 1, 1 }, 255, 256, 15, 138 },
{ 257, 309, &gHitbox_0, SPRITE_MAZAALMACRO, { 0, 0, 1, 1 }, 255, 256, 15, 139 },
{ 257, 309, &gHitbox_0, SPRITE_MAZAALMACRO, { 0, 0, 1, 1 }, 255, 256, 15, 139 },
};
const EnemyDefinition gEnemyDefinition_39[] = {
{ 264, 239, &gUnk_080FD3CC, SPRITE_OCTOROKBOSS_1, { 0, 1, 1, 1 }, 3, 0, 95, 139 },
{ 266, 239, &gUnk_080FD3DC, SPRITE_OCTOROKBOSS_1, { 0, 1, 1, 0 }, 3, 0, 96, 139 },
{ 266, 239, &gUnk_080FD3DC, SPRITE_OCTOROKBOSS_1, { 0, 1, 1, 0 }, 3, 0, 96, 139 },
{ 266, 239, &gUnk_080FD3DC, SPRITE_OCTOROKBOSS_1, { 0, 1, 1, 0 }, 3, 0, 96, 139 },
{ 266, 239, &gUnk_080FD3DC, SPRITE_OCTOROKBOSS_1, { 0, 1, 1, 0 }, 3, 0, 96, 139 },
{ 267, 239, &gUnk_080FD3E4, SPRITE_OCTOROKBOSS_1, { 0, 1, 1, 0 }, 3, 0, 124, 139 },
{ 16400, 244, &gUnk_080FD3EC, SPRITE_OCTOROKBOSS_0, { 0, 1, 1, 0 }, 3, 0, 1, 138 },
{ 269, 239, &gUnk_080FD3EC, SPRITE_OCTOROKBOSS_1, { 0, 0, 1, 0 }, 3, 0, 0, 139 },
};
const EnemyDefinition gEnemyDefinition_41[] = {
{ 67, 0, &gUnk_080FD580, SPRITE_CUCCOAGGR, { 1, 1, 1, 0 }, 255, 128, 25, 138 },
{ 462, 4, &gUnk_080FD580, SPRITE_CUCCOAGGR, { 1, 1, 1, 0 }, 255, 128, 25, 138 },
{ 67, 0, &gUnk_080FD580, SPRITE_CUCCOAGGR, { 1, 1, 1, 0 }, 255, 640, 167, 1 },
};
const EnemyDefinition gEnemyDefinition_44[] = {
{ 256, 218, &gUnk_080FD35C, SPRITE_MAZAALBRACELET, { 0, 0, 0, 1 }, 255, 256, 23, 139 },
{ 256, 218, &gUnk_080FD36C, SPRITE_MAZAALBRACELET, { 0, 0, 0, 1 }, 255, 256, 23, 139 },
{ 256, 219, &gUnk_080FD37C, SPRITE_MAZAALBRACELET, { 0, 1, 0, 1 }, 255, 256, 0, 139 },
{ 256, 220, &gUnk_080FD384, SPRITE_MAZAALBRACELET, { 0, 1, 0, 1 }, 255, 256, 0, 139 },
};
const EnemyDefinition gEnemyDefinition_42[] = {
{ 16416, 1, &gHitbox_0, SPRITE_STALFOS, { 1, 1, 1, 1 }, 4, 224, 68, 143 },
{ 16416, 0, &gHitbox_0, SPRITE_STALFOS, { 1, 1, 1, 1 }, 4, 224, 68, 143 },
};
const EnemyDefinition gEnemyDefinition_4A[] = {
{ 16416, 312, &gHitbox_0, SPRITE_VAATIREBORNENEMY_0, { 1, 0, 0, 1 }, 64, 160, 138, 139 },
{ 16400, 312, &gUnk_080FD588, SPRITE_VAATIREBORNENEMY_1, { 0, 1, 1, 0 }, 255, 640, 47, 139 },
{ 16400, 312, &gHitbox_0, SPRITE_VAATIREBORNENEMY_2, { 0, 0, 1, 0 }, 255, 640, 0, 139 },
{ 16400, 312, &gHitbox_0, SPRITE_VAATIREBORNENEMY_3, { 0, 0, 1, 0 }, 255, 640, 0, 139 },
};
const EnemyDefinition gEnemyDefinition_4F[] = {
{ 16416, 319, &gUnk_080FD530, SPRITE_VAATITRANSFIGURED_0, { 1, 1, 0, 2 }, 255, 256, 53, 139 },
{ 16480, 319, &gHitbox_7, SPRITE_VAATITRANSFIGURED_1, { 0, 0, 1, 0 }, 255, 640, 0, 139 },
{ 16400, 319, &gHitbox_7, SPRITE_VAATITRANSFIGURED_2, { 0, 0, 1, 0 }, 255, 640, 0, 139 },
{ 16400, 319, &gHitbox_7, SPRITE_VAATITRANSFIGURED_3, { 0, 0, 1, 0 }, 255, 640, 0, 139 },
{ 409, 0, &gHitbox_7, SPRITE_VAATITRANSFIGURED_4, { 0, 0, 1, 0 }, 255, 640, 0, 139 },
{ 410, 316, &gHitbox_7, SPRITE_VAATITRANSFIGURED_5, { 0, 0, 1, 0 }, 255, 640, 0, 139 },
};
const EnemyDefinition gEnemyDefinition_51[] = {
{ 16448, 320, &gUnk_080FD544, SPRITE_VAATIWRATH, { 1, 1, 0, 2 }, 255, 256, 57, 139 },
{ 420, 320, &gHitbox_0, SPRITE_VAATIWRATH_1, { 0, 0, 1, 2 }, 255, 256, 1, 139 },
{ 420, 320, &gHitbox_0, SPRITE_VAATIWRATH_1, { 0, 0, 1, 1 }, 255, 256, 0, 139 },
{ 417, 320, &gHitbox_0, SPRITE_VAATIWRATH_2, { 0, 0, 1, 1 }, 255, 256, 0, 139 },
};
const EnemyDefinition gEnemyDefinition_52[] = {
{ 16400, 320, &gUnk_080FD538, SPRITE_VAATIARM, { 1, 0, 1, 1 }, 255, 256, 57, 139 },
{ 419, 320, &gUnk_080FD538, SPRITE_VAATIARM_1, { 0, 0, 1, 1 }, 255, 256, 57, 139 },
{ 419, 320, &gUnk_080FD538, SPRITE_VAATIARM_1, { 1, 0, 1, 1 }, 255, 256, 57, 139 },
{ 419, 320, &gUnk_080FD538, SPRITE_VAATIARM_1, { 1, 0, 1, 1 }, 255, 256, 57, 139 },
{ 419, 320, &gUnk_080FD538, SPRITE_VAATIARM_1, { 1, 0, 1, 1 }, 255, 256, 57, 139 },
};
const EnemyDefinition gEnemyDefinition_56[] = {
{ 422, 113, &gUnk_080FD488, SPRITE_SLIME, { 3, 1, 1, 1 }, 2, 64, 25, 139 },
{ 422, 111, &gUnk_080FD488, SPRITE_SLIME, { 3, 1, 1, 1 }, 4, 64, 25, 139 },
{ 422, 112, &gUnk_080FD488, SPRITE_SLIME, { 3, 1, 1, 1 }, 4, 64, 25, 139 },
};
const EnemyDefinition gEnemyDefinition_57[] = {
{ 422, 113, &gUnk_080FD490, SPRITE_SLIME, { 3, 1, 1, 0 }, 1, 128, 25, 139 },
{ 422, 111, &gUnk_080FD490, SPRITE_SLIME, { 3, 1, 1, 0 }, 1, 128, 25, 139 },
{ 422, 112, &gUnk_080FD490, SPRITE_SLIME, { 3, 1, 1, 0 }, 1, 128, 25, 139 },
};
const EnemyDefinition gEnemyDefinition_7[] = {
{ 11, 0, &gHitbox_6, SPRITE_BEETLE, { 3, 0, 0, 0 }, 1, 256, 75, 15 },
{ 478, 0, &gHitbox_6, SPRITE_BEETLE, { 3, 0, 0, 0 }, 1, 128, 75, 15 },
};
const EnemyDefinition gEnemyDefinition_25[] = {
{ 421, 320, &gHitbox_0, SPRITE_VAATIEYESMACRO, { 1, 1, 1, 1 }, 32, 256, 25, 139 },
{ 421, 320, &gHitbox_0, SPRITE_VAATIEYESMACRO, { 0, 1, 1, 1 }, 255, 256, 25, 139 },
{ 421, 320, &gHitbox_0, SPRITE_VAATIEYESMACRO, { 0, 0, 1, 1 }, 255, 256, 0, 139 },
{ 421, 320, &gHitbox_0, SPRITE_VAATIEYESMACRO, { 0, 0, 1, 1 }, 255, 256, 0, 139 },
};
const EnemyDefinition gEnemyDefinition_5A[] = {
{ 408, 315, &gHitbox_1, SPRITE_ENEMY5A, { 0, 0, 1, 0 }, 255, 1280, 0, 139 },
{ 408, 319, &gHitbox_1, SPRITE_ENEMY5A, { 0, 0, 1, 0 }, 255, 1280, 51, 139 },
};
const EnemyDefinition gEnemyDefinition_5[] = {
{ 16416, 33, &gUnk_080FD1B4, SPRITE_DARKNUT_0, { 1, 1, 1, 2 }, 12, 96, 86, 139 },
{ 16416, 373, &gUnk_080FD1B4, SPRITE_DARKNUT_0, { 1, 1, 1, 2 }, 12, 96, 86, 139 },
{ 16416, 374, &gUnk_080FD1B4, SPRITE_DARKNUT_0, { 1, 1, 1, 2 }, 20, 96, 86, 139 },
{ 16416, 375, &gUnk_080FD1B4, SPRITE_DARKNUT_0, { 1, 1, 1, 2 }, 26, 96, 86, 139 },
};
const EnemyDefinition gEnemyDefinition_30[] = {
{ 16400, 198, &gUnk_080FD330, SPRITE_KEATON, { 1, 1, 1, 1 }, 4, 256, 33, 139 },
{ 16400, 383, &gUnk_080FD330, SPRITE_KEATON, { 1, 1, 1, 1 }, 4, 256, 33, 139 },
};
const EnemyDefinition gEnemyDefinition_15[] = {
{ 71, 111, &gUnk_080FD258, SPRITE_SPEARMOBLIN, { 1, 1, 1, 2 }, 8, 256, 138, 139 },
{ 71, 384, &gUnk_080FD258, SPRITE_SPEARMOBLIN_1, { 1, 1, 1, 2 }, 8, 256, 138, 139 },
};
const EnemyDefinition gEnemyDefinition_46[] = {
{ 72, 111, &gUnk_080FD258, SPRITE_BOWMOBLIN, { 1, 1, 1, 2 }, 8, 256, 138, 139 },
{ 72, 384, &gUnk_080FD258, SPRITE_BOWMOBLIN_1, { 1, 1, 1, 2 }, 8, 256, 138, 139 },
};
extern void sub_08049E18();
extern void sub_08049E4C();
extern void sub_08049E80();
extern void sub_08049EB0();
void (*const gUnk_080D3BE8[])() = {
sub_08049E18,
sub_08049E4C,
sub_08049E80,
sub_08049EB0,
}; // TODO correct signature
// clang-format off
void (*const gEnemyFunctions[])(Entity* ent) = {
+5 -5
View File
@@ -17,8 +17,8 @@ extern void (*const gUnk_080CBA40[])(Entity*);
extern const u8 gUnk_080CBA60[];
extern Hitbox gUnk_080FD468;
extern Hitbox gUnk_080FD470;
extern Hitbox gHitbox_23;
extern Hitbox gHitbox_32;
extern Entity* gUnk_020000B0;
@@ -40,7 +40,7 @@ void sub_0802244C(Entity* this) {
this->action = 2;
this->field_0xf = 0x3c;
this->damageType = 0x5c;
this->hitbox = &gUnk_080FD468;
this->hitbox = &gHitbox_23;
InitializeAnimation(this, 0);
break;
case 8:
@@ -189,9 +189,9 @@ void sub_08022780(Entity* this) {
void sub_080227AC(Entity* this) {
GetNextFrame(this);
if (this->frames.all & 1) {
this->hitbox = &gUnk_080FD470;
this->hitbox = &gHitbox_32;
} else {
this->hitbox = &gUnk_080FD468;
this->hitbox = &gHitbox_23;
}
if (this->frames.all & 2) {
+87
View File
@@ -0,0 +1,87 @@
#include "entity.h"
#include "definitions.h"
#include "functions.h"
extern EnemyDefinition gEnemyDefinitions[];
const EnemyDefinition* GetEnemyDefinition(Entity* entity);
bool32 LoadEnemySprite(Entity* entity, const EnemyDefinition* definition);
extern const u16 gUnk_080D3E74[];
const EnemyDefinition* GetEnemyDefinition(Entity* entity) {
const EnemyDefinition* definition = &gEnemyDefinitions[entity->id];
if (definition->gfx == 0xffff) {
definition = &definition->ptr.definition[entity->type];
}
return definition;
}
bool32 EnemyInit(Entity* this) {
if ((this->flags & 1) == 0) {
const EnemyDefinition* definition = GetEnemyDefinition(this);
if (LoadEnemySprite(this, definition) == FALSE) {
return FALSE;
}
this->flags |= 1;
if (definition->spriteFlags.unknown != 0) {
this->flags |= 0x80;
}
this->spriteIndex = definition->spriteIndex;
if (this->spriteSettings.b.draw == 0) {
this->spriteSettings.b.draw = definition->spriteFlags.draw;
}
this->spritePriority.b1 = definition->spriteFlags.spritePriority;
this->spriteSettings.b.shadow = definition->spriteFlags.shadow;
if (this->speed == 0) {
this->speed = definition->speed;
}
this->flags2 = definition->flags2;
this->damageType = definition->damageType;
this->hitbox = (Hitbox*)definition->ptr.hitbox;
this->currentHealth = definition->health;
if (this->field_0x40 == 0) {
this->field_0x40 = 0x41;
}
UpdateSpriteForCollisionLayer(this);
if ((this->field_0x6c.HALF.HI & 0x20) != 0) {
u32 uVar4 = gUnk_080D3E74[this->id >> 3] >> ((this->id & 7) << 1) & 3;
if (uVar4 != 0) {
Entity* object = CreateObject(0xa9, uVar4 - 1, 0);
if (object != NULL) {
object->actionDelay = this->flags;
object->field_0xf = this->spriteSettings.b.draw;
object->spritePriority.b0 = 3;
object->parent = this;
CopyPosition(this, object);
this->flags &= 0x7f;
this->spriteSettings.b.draw = 0;
this->field_0x6c.HALF.HI |= 0x10;
}
}
}
}
return TRUE;
}
bool32 LoadEnemySprite(Entity* entity, const EnemyDefinition* definition) {
bool32 result;
if (definition->gfx != 0) {
if ((definition->gfx & 0x8000) != 0) {
// Common gfx: Reuse sprite that is already in vram? (bitfield 0x8000)
entity->spriteVramOffset = definition->gfx & 0x3ff;
} else {
if ((definition->gfx & 0x4000) != 0) {
// Swap gfx (bitfield 0x4000)
result = sub_080AE008(entity, definition->gfx >> 4, 0);
} else {
// Fixed gfx
result = LoadFixedGFX(entity, definition->gfx);
}
if (result == FALSE) {
return FALSE;
}
}
}
sub_0801D040(entity, definition->paletteIndex);
return TRUE;
}
+2 -2
View File
@@ -30,7 +30,7 @@ extern u32 gUnk_0200B650;
void sub_0806D110(void);
void sub_0806D164(Entity* this);
extern Hitbox gUnk_080FD180;
extern Hitbox gHitbox_3;
Entity* sub_0806D00C(Entity* this);
void sub_0806D4C0(Entity*, u32);
@@ -238,7 +238,7 @@ void sub_0806D3C0(Entity* this) {
DeleteThisEntity();
}
this->action = 1;
this->hitbox = &gUnk_080FD180;
this->hitbox = &gHitbox_3;
sub_0805E3A0(this, 2);
sub_0807DD64(this);
} else {
+2 -2
View File
@@ -8,7 +8,7 @@
#include "flags.h"
#include "object.h"
extern Hitbox gUnk_080FD170;
extern Hitbox gHitbox_2;
typedef struct {
u32 unk_00;
s8 unk_04;
@@ -35,7 +35,7 @@ void NPC4E(Entity* this) {
if (this->action == 0) {
this->action = 1;
this->spriteSettings.b.draw = 4;
this->hitbox = &gUnk_080FD170;
this->hitbox = &gHitbox_2;
sub_0807DD50(this);
} else {
sub_0807DD94(this, 0);
+2 -2
View File
@@ -25,7 +25,7 @@ typedef struct {
u16 unk_8; // u16
} UnkHeap;
extern Hitbox gUnk_080FD150;
extern Hitbox gHitbox_0;
void sub_08060E70(Entity*, u32);
@@ -140,7 +140,7 @@ void sub_08060AE0(Entity* this) {
this->field_0x40 = 0x48;
this->damageType = 0x49;
this->flags2 = 3;
this->hitbox = &gUnk_080FD150;
this->hitbox = &gHitbox_0;
this->field_0x17 &= 0xfe;
this->field_0x6c.HALF.LO = 0xff;
sub_08060E70(this, this->animationState);
+2 -2
View File
@@ -13,7 +13,7 @@ extern void (*const gUnk_081142BC[])(Entity*);
extern void sub_08078828(Entity*);
extern Hitbox gUnk_080FD150;
extern Hitbox gHitbox_0;
void PicolyteBottle(Entity* this) {
gUnk_081142BC[this->action](this);
@@ -42,7 +42,7 @@ void sub_0806DF00(Entity* this) {
sub_0806E014(this);
sub_0807DD50(this);
} else {
this->hitbox = &gUnk_080FD150;
this->hitbox = &gHitbox_0;
this->collisionLayer = 1;
sub_0806E0DC(this);
}
+3 -3
View File
@@ -13,7 +13,7 @@ extern void (*const gUnk_081243B4[])(Entity*);
extern void (*const gUnk_081243BC[])(Entity*);
extern void (*const gUnk_081243C4[])(Entity*);
extern Hitbox gUnk_080FD150;
extern Hitbox gHitbox_0;
void LightableSwitch(Entity* this) {
gUnk_081243B4[this->type](this);
@@ -32,7 +32,7 @@ void sub_0809EA34(Entity* this) {
this->field_0x40 = 0x48;
this->damageType = 0x28;
this->flags2 = 10;
this->hitbox = &gUnk_080FD150;
this->hitbox = &gHitbox_0;
sub_0809EAD8(this);
UpdateSpriteForCollisionLayer(this);
sub_0809EABC(this);
@@ -104,7 +104,7 @@ void sub_0809EB80(Entity* this) {
this->field_0x40 = 0x48;
this->damageType = 0x28;
this->flags2 = 10;
this->hitbox = &gUnk_080FD150;
this->hitbox = &gHitbox_0;
sub_0809EAD8(this);
UpdateSpriteForCollisionLayer(this);
if (CheckFlags(this->cutsceneBeh.HWORD) != 0) {
+2 -2
View File
@@ -33,7 +33,7 @@ void LockedDoor(Entity* this) {
gUnk_0811F65C[this->action](this);
}
extern Hitbox gUnk_080FD170;
extern Hitbox gHitbox_2;
extern u32 sub_080001DA(u32, u32);
extern void sub_08078850(Entity*, u32, u32, u32);
@@ -97,7 +97,7 @@ void sub_08083338(Entity* this) {
this->field_0x70.HALF.LO = this->x.HALF.HI;
this->field_0x70.HALF.HI = this->y.HALF.HI;
this->field_0x7c.BYTES.byte2 = this->type & 3;
this->hitbox = &gUnk_080FD170;
this->hitbox = &gHitbox_2;
this->spritePriority.b0 = 5;
this->frames.all = this->type & 0xF;
this->field_0x76.HWORD = TILE(this->x.HALF.HI, this->y.HALF.HI);
+2 -2
View File
@@ -13,7 +13,7 @@ extern u32 sub_080001DA(u32, u32);
extern void (*const gUnk_0812493C[])(Entity*);
extern Hitbox gUnk_080FD180;
extern Hitbox gHitbox_3;
void MetalDoor(Entity* this) {
gUnk_0812493C[this->action](this);
@@ -28,7 +28,7 @@ void sub_080A0684(Entity* this) {
this->spriteSettings.b.draw = 0;
this->frameIndex = 0;
this->spriteSettings.b.flipY = 1;
this->hitbox = &gUnk_080FD180;
this->hitbox = &gHitbox_3;
this->spritePriority.b0 = 5;
this->field_0x70.HALF.LO = this->x.HALF.HI;
this->field_0x70.HALF.HI = this->y.HALF.HI;
+2 -2
View File
@@ -5,7 +5,7 @@
#include "object.h"
#include "functions.h"
extern Hitbox gUnk_080FD168;
extern Hitbox gHitbox_1;
void Object9E(Entity* this) {
Entity* ent;
@@ -24,7 +24,7 @@ void Object9E(Entity* this) {
this->field_0x40 = 0x48;
this->damageType = 0x7a;
this->flags2 = 1;
this->hitbox = &gUnk_080FD168;
this->hitbox = &gHitbox_1;
tilePos = COORD_TO_TILE(this);
SetTile(0x4066, tilePos - 1, *layer);
SetTile(0x4065, tilePos, *layer);
+2 -2
View File
@@ -5,7 +5,7 @@
#include "createObject.h"
#include "functions.h"
extern Hitbox gUnk_080FD170;
extern Hitbox gHitbox_2;
extern u8 gUnk_02000070;
@@ -14,7 +14,7 @@ void ObjectA(Entity* this) {
if (this->action == 0) {
this->action = 1;
this->hitbox = &gUnk_080FD170;
this->hitbox = &gHitbox_2;
if (this->collisionLayer == 1) {
uVar2 = 0x26;
} else {
+2 -2
View File
@@ -15,7 +15,7 @@ extern void (*const gUnk_0811F090[])(Entity*);
extern void (*const gUnk_0811F0A8[])(Entity*);
extern void (*const gUnk_0811F0C4[])(Entity*);
extern Hitbox gUnk_080FD338; // TODO: should be const
extern Hitbox gHitbox_18; // TODO: should be const
extern Hitbox gUnk_080FD340; // TODO: should be const
extern u32 sub_080001DA(u32, u32);
@@ -33,7 +33,7 @@ void sub_0808222C(Entity* this) {
}
this->action = 1;
this->hitbox = &gUnk_080FD338;
this->hitbox = &gHitbox_18;
this->speed = 0x80;
this->y.HALF.HI += 3;
this->field_0x16 = 0;
+2 -2
View File
@@ -6,7 +6,7 @@
#include "audio.h"
#include "functions.h"
extern Hitbox gUnk_080FD168;
extern Hitbox gHitbox_1;
void WarpPoint(Entity*);
void sub_0808B474(Entity*);
@@ -40,7 +40,7 @@ void sub_0808B474(Entity* this) {
tmp = gUnk_08121380[this->type];
this->palette.b.b0 = tmp;
this->spritePriority.b0 = 6;
this->hitbox = &gUnk_080FD168;
this->hitbox = &gHitbox_1;
this->scriptedScene = 3;
InitializeAnimation(this, 0);
if (CheckFlags(this->field_0x86.HWORD)) {
+179
View File
@@ -0,0 +1,179 @@
#include "entity.h"
#include "definitions.h"
#include "hitbox.h"
#define MULTI_FORM(definition_ptr) \
{ 0xffff, 0, { .definition = definition_ptr }, 0, 0, 0 }
const ProjectileDefinition gProjectileDefinition_0[];
const ProjectileDefinition gProjectileDefinition_6[];
const ProjectileDefinition gProjectileDefinition_7[];
const ProjectileDefinition gProjectileDefinition_8[];
const ProjectileDefinition gProjectileDefinition_9[];
const ProjectileDefinition gProjectileDefinition_A[];
const ProjectileDefinition gProjectileDefinition_E[];
const ProjectileDefinition gProjectileDefinition_F[];
const ProjectileDefinition gProjectileDefinition_10[];
const ProjectileDefinition gProjectileDefinition_14[];
const ProjectileDefinition gProjectileDefinition_14[];
const ProjectileDefinition gProjectileDefinition_1B[];
const ProjectileDefinition gProjectileDefinition_1D[];
const ProjectileDefinition gProjectileDefinition_1E[];
const ProjectileDefinition gProjectileDefinition_1F[];
const ProjectileDefinition gProjectileDefinition_22[];
const ProjectileDefinition gProjectileDefinition_22[];
const ProjectileDefinition gProjectileDefinitions[] = {
MULTI_FORM(gProjectileDefinition_0),
{ 1, 1, { &gHitbox_7 }, 176, 2, { 3, 1, 1, 0 }, 66, 640, 26, 11 }, // TODO sprite index too high
{ 366, 0, { &gHitbox_7 }, SPRITE_BONEPROJECTILE, 0, { 1, 1, 1, 0 }, 66, 640, 26, 11 },
{ 0, 0, { &gHitbox_0 }, 0, 2, { 0, 1, 0, 1 }, 4, 0, 139, 11 }, // TODO sprite index too high
{ 114, 110, { &gHitbox_7 }, SPRITE_BUSINESSSCRUB, 0, { 3, 1, 1, 0 }, 66, 768, 26, 11 },
{ 0, 0, { &gHitbox_0 }, 0, 2, { 0, 1, 0, 1 }, 64, 0, 1, 1 }, // TODO sprite index too high
MULTI_FORM(gProjectileDefinition_6),
MULTI_FORM(gProjectileDefinition_7),
MULTI_FORM(gProjectileDefinition_8),
MULTI_FORM(gProjectileDefinition_9),
MULTI_FORM(gProjectileDefinition_A),
{ 0, 0, { &gHitbox_0 }, 0, 2, { 0, 1, 1, 1 }, 4, 0, 161, 11 }, // TODO sprite index too high
#if defined(JP) || defined(EU)
{ 32827, 1, { &gHitbox_0 }, SPRITE_SPECIALFX, 0, { 0, 1, 1, 1 }, 65, 0, 74, 3 },
#else
{ 32827, 1, { &gHitbox_3 }, SPRITE_SPECIALFX, 0, { 0, 1, 1, 1 }, 65, 0, 74, 3 },
#endif
{ 518, 1, { &gHitbox_0 }, SPRITE_ARROWPROJECTILE, 0, { 0, 1, 1, 1 }, 66, 768, 26, 11 },
MULTI_FORM(gProjectileDefinition_E),
MULTI_FORM(gProjectileDefinition_F),
MULTI_FORM(gProjectileDefinition_10),
{ 16400, 0, { &gHitbox_0 }, SPRITE_LAKITUCLOUDPROJECTILE, 0, { 1, 0, 1, 2 }, 65, 0, 67, 4 },
{ 382, 1, { &gHitbox_1 }, SPRITE_LAKITULIGHTNING, 0, { 1, 1, 1, 0 }, 66, 128, 164, 11 },
{ 16400, 288, { &gHitbox_0 }, 107, 2, { 0, 1, 1, 1 }, 4, 384, 3, 11 }, // TODO sprite index too high
MULTI_FORM(gProjectileDefinition_14),
{ 16400, 1, { &gHitbox_0 }, SPRITE_SPIDERWEB, 0, { 0, 1, 1, 1 }, 65, 640, 159, 143 },
{ 0, 0, { &gHitbox_20 }, SPRITE_TORCHTRAPPROJECTILE_0, 0, { 0, 1, 1, 1 }, 66, 640, 146, 11 },
{ 399, 0, { &gHitbox_20 }, SPRITE_TORCHTRAPPROJECTILE_1, 0, { 0, 1, 1, 1 }, 65, 640, 10, 11 },
{ 405, 0, { &gHitbox_0 }, SPRITE_V1DARKMAGICPROJECTILE, 0, { 3, 1, 1, 1 }, 66, 256, 46, 15 },
#ifdef EU
{ 401, 112, { &gHitbox_1 }, 488, 0, { 1, 1, 1, 1 }, 65, 640, 162, 11 }, // TODO sprite index too high
#else
{ 401, 112, { &gHitbox_1 }, 489, 0, { 1, 1, 1, 1 }, 65, 640, 162, 11 }, // TODO sprite index too high
#endif
{ 175, 0, { &gHitbox_0 }, SPRITE_GLEEROK_1, 0, { 3, 1, 1, 0 }, 66, 512, 45, 11 },
MULTI_FORM(gProjectileDefinition_1B),
{ 404, 0, { &gHitbox_0 }, SPRITE_V1EYELASER, 0, { 0, 1, 1, 0 }, 66, 512, 42, 11 },
MULTI_FORM(gProjectileDefinition_1D),
MULTI_FORM(gProjectileDefinition_1E),
MULTI_FORM(gProjectileDefinition_1F),
{ 415, 4, { &gHitbox_20 }, SPRITE_V3HANDPROJECTILE, 0, { 1, 1, 1, 1 }, 66, 704, 60, 11 },
{ 415, 320, { &gHitbox_20 }, SPRITE_V3HANDPROJECTILE, 0, { 1, 1, 1, 1 }, 66, 512, 164, 11 },
MULTI_FORM(gProjectileDefinition_22),
{ 493, 0, { &gHitbox_22 }, SPRITE_GYORGMALEENERGYPROJECTILE, 0, { 0, 1, 1, 1 }, 66, 256, 31, 11 },
{ 418, 1, { &gHitbox_22 }, SPRITE_WRATHEYE, 0, { 1, 1, 1, 1 }, 66, 512, 55, 11 },
};
const ProjectileDefinition gProjectileDefinition_0[] = {
{ 0, 0, { &gHitbox_0 }, 0, 2, { 0, 1, 0, 1 }, 4, 0, 76, 11 },
{ 0, 0, { &gHitbox_0 }, 0, 2, { 0, 1, 0, 1 }, 65, 0, 83, 11 },
{ 0, 0, { &gHitbox_0 }, 0, 2, { 0, 1, 0, 1 }, 4, 0, 76, 11 },
{ 16400, 1, { &gHitbox_0 }, 99, 2, { 0, 1, 1, 1 }, 4, 0, 84, 11 },
{ 0, 0, { &gHitbox_0 }, 0, 2, { 0, 1, 0, 1 }, 4, 0, 76, 11 },
}; // TODO sprite index too high
const ProjectileDefinition gProjectileDefinition_6[] = {
{ 34, 1, { &gHitbox_0 }, SPRITE_DIRTBALLPROJECTILE, 0, { 0, 1, 1, 1 }, 66, 0, 120, 11 },
{ 0, 0, { &gHitbox_0 }, SPRITE_0, 0, { 0, 1, 0, 1 }, 66, 0, 120, 11 },
{ 33008, 1, { &gHitbox_0 }, SPRITE_POT, 0, { 0, 1, 1, 1 }, 66, 0, 120, 11 },
};
const ProjectileDefinition gProjectileDefinition_7[] = {
{ 218, 0, { &gHitbox_0 }, SPRITE_WINDPROJECTILE, 0, { 0, 0, 0, 1 }, 66, 0, 0, 11 },
{ 218, 0, { &gHitbox_0 }, SPRITE_WINDPROJECTILE, 0, { 0, 1, 1, 1 }, 66, 640, 13, 11 },
{ 218, 1, { &gHitbox_0 }, SPRITE_WINDPROJECTILE, 0, { 0, 1, 1, 1 }, 66, 640, 13, 11 },
};
const ProjectileDefinition gProjectileDefinition_8[] = {
{ 219, 0, { &gHitbox_0 }, SPRITE_FIREPROJECTILE, 0, { 0, 0, 0, 1 }, 66, 0, 0, 11 },
{ 219, 0, { &gHitbox_0 }, SPRITE_FIREPROJECTILE, 0, { 0, 1, 1, 1 }, 66, 640, 10, 11 },
};
const ProjectileDefinition gProjectileDefinition_9[] = {
{ 220, 113, { &gHitbox_0 }, SPRITE_ICEPROJECTILE, 0, { 0, 0, 0, 1 }, 66, 0, 0, 11 },
{ 220, 1, { &gHitbox_0 }, SPRITE_ICEPROJECTILE, 0, { 0, 1, 1, 1 }, 66, 640, 11, 11 },
};
const ProjectileDefinition gProjectileDefinition_A[] = {
{ 175, 0, { &gHitbox_0 }, SPRITE_GLEEROK_1, 0, { 3, 1, 1, 1 }, 66, 512, 62, 11 },
{ 175, 0, { &gHitbox_0 }, 226, 0, { 3, 1, 1, 0 }, 66, 512, 62, 11 },
{ 175, 0, { &gHitbox_0 }, 226, 0, { 0, 1, 1, 0 }, 66, 384, 62, 11 },
{ 32992, 1, { &gHitbox_0 }, SPRITE_POT, 0, { 3, 1, 1, 1 }, 66, 384, 157, 11 },
};
const ProjectileDefinition gProjectileDefinition_E[] = {
{ 294, 1, { &gHitbox_0 }, SPRITE_MAZAALENERGYBEAM, 0, { 1, 1, 1, 1 }, 66, 2048, 16, 11 },
{ 295, 0, { &gHitbox_0 }, SPRITE_MAZAALENERGYBEAM_1, 0, { 1, 1, 1, 1 }, 66, 2048, 17, 11 },
};
const ProjectileDefinition gProjectileDefinition_F[] = {
{ 16400, 245, { &gUnk_080FD3F4 }, SPRITE_OCTOROKBOSS_0, 0, { 0, 1, 1, 1 }, 66, 512, 98, 11 },
{ 271, 245, { &gHitbox_0 }, SPRITE_OCTOROKBOSS_1, 0, { 0, 1, 1, 1 }, 66, 512, 122, 11 },
{ 272, 245, { &gHitbox_0 }, SPRITE_OCTOROKBOSS_1, 0, { 0, 1, 1, 1 }, 66, 512, 11, 11 },
{ 32992, 1, { &gHitbox_0 }, SPRITE_POT, 0, { 3, 1, 1, 1 }, 66, 384, 157, 11 },
};
const ProjectileDefinition gProjectileDefinition_10[] = {
{ 33008, 1, { &gUnk_080FD3FC }, 167, 1, { 0, 0, 1, 0 }, 65, 640, 110, 4 },
{ 366, 0, { &gUnk_080FD3FC }, SPRITE_FLYINGSKULL, 0, { 0, 0, 1, 0 }, 65, 640, 110, 4 },
}; // TODO sprite index too high
#ifdef EU
const ProjectileDefinition gProjectileDefinition_14[] = {
{ 387, 20, { &gHitbox_2 }, 486, 0, { 0, 1, 1, 1 }, 65, 640, 110, 12 },
{ 387, 20, { &gUnk_080FD43C }, 486, 4, { 0, 1, 1, 1 }, 65, 640, 88, 5 },
}; // TODO sprite index too high
#else
const ProjectileDefinition gProjectileDefinition_14[] = {
{ 387, 20, { &gHitbox_2 }, 487, 0, { 0, 1, 1, 1 }, 65, 640, 110, 12 },
{ 387, 20, { &gUnk_080FD43C }, 487, 4, { 0, 1, 1, 1 }, 65, 640, 88, 5 },
}; // TODO sprite index too high
#endif
const ProjectileDefinition gProjectileDefinition_1B[] = {
{ 431, 0, { &gHitbox_1 }, SPRITE_CANNONBALLPROJECTILE, 0, { 1, 1, 1, 0 }, 65, 512, 158, 11 },
{ 432, 0, { &gHitbox_1 }, SPRITE_CANNONBALLPROJECTILE, 0, { 1, 1, 1, 0 }, 65, 512, 158, 11 },
{ 431, 0, { &gHitbox_1 }, SPRITE_CANNONBALLPROJECTILE, 0, { 1, 1, 1, 0 }, 65, 512, 158, 11 },
{ 432, 0, { &gHitbox_1 }, SPRITE_CANNONBALLPROJECTILE, 0, { 1, 1, 1, 0 }, 65, 512, 158, 11 },
};
const ProjectileDefinition gProjectileDefinition_1D[] = {
{ 399, 0, { &gUnk_080FD558 }, SPRITE_TORCHTRAPPROJECTILE_1, 0, { 0, 1, 1, 1 }, 65, 640, 115, 11 },
{ 399, 0, { &gUnk_080FD560 }, SPRITE_TORCHTRAPPROJECTILE_1, 0, { 0, 1, 1, 1 }, 65, 640, 115, 11 },
{ 399, 0, { &gUnk_080FD560 }, SPRITE_TORCHTRAPPROJECTILE_1, 0, { 0, 1, 1, 1 }, 65, 640, 115, 11 },
{ 399, 0, { &gUnk_080FD560 }, SPRITE_TORCHTRAPPROJECTILE_1, 0, { 0, 1, 1, 1 }, 65, 640, 115, 11 },
{ 399, 0, { &gUnk_080FD560 }, SPRITE_TORCHTRAPPROJECTILE_1, 0, { 0, 1, 1, 1 }, 65, 640, 115, 11 },
};
const ProjectileDefinition gProjectileDefinition_1E[] = {
{ 453, 0, { &gUnk_080FD4B8 }, SPRITE_SPIKEDROLLERS, 0, { 0, 1, 1, 1 }, 65, 256, 102, 11 },
{ 453, 0, { &gUnk_080FD4C0 }, SPRITE_SPIKEDROLLERS, 0, { 0, 1, 1, 1 }, 65, 256, 102, 11 },
{ 453, 0, { &gUnk_080FD4C8 }, SPRITE_SPIKEDROLLERS, 0, { 0, 1, 1, 1 }, 65, 256, 102, 11 },
{ 453, 0, { &gUnk_080FD4D0 }, SPRITE_SPIKEDROLLERS, 0, { 0, 1, 1, 1 }, 65, 256, 102, 11 },
{ 453, 0, { &gUnk_080FD4D8 }, SPRITE_SPIKEDROLLERS, 0, { 0, 1, 1, 1 }, 65, 256, 102, 11 },
{ 453, 0, { &gUnk_080FD4E0 }, SPRITE_SPIKEDROLLERS, 0, { 0, 1, 1, 1 }, 65, 256, 102, 11 },
{ 453, 0, { &gUnk_080FD4E8 }, SPRITE_SPIKEDROLLERS, 0, { 0, 1, 1, 1 }, 65, 256, 102, 11 },
{ 453, 0, { &gUnk_080FD4F0 }, SPRITE_SPIKEDROLLERS, 0, { 0, 1, 1, 1 }, 65, 256, 102, 11 },
{ 453, 0, { &gUnk_080FD4F8 }, SPRITE_SPIKEDROLLERS, 0, { 0, 1, 1, 1 }, 65, 256, 102, 11 },
{ 453, 0, { &gUnk_080FD500 }, SPRITE_SPIKEDROLLERS, 0, { 0, 1, 1, 1 }, 65, 256, 102, 11 },
{ 453, 0, { &gUnk_080FD508 }, SPRITE_SPIKEDROLLERS, 0, { 0, 1, 1, 1 }, 65, 256, 102, 11 },
{ 453, 0, { &gUnk_080FD510 }, SPRITE_SPIKEDROLLERS, 0, { 0, 1, 1, 1 }, 65, 256, 102, 11 },
{ 453, 0, { &gUnk_080FD518 }, SPRITE_SPIKEDROLLERS, 0, { 0, 1, 1, 1 }, 65, 256, 102, 11 },
{ 453, 0, { &gUnk_080FD520 }, SPRITE_SPIKEDROLLERS, 0, { 0, 1, 1, 1 }, 65, 256, 102, 11 },
};
const ProjectileDefinition gProjectileDefinition_1F[] = {
{ 411, 317, { &gHitbox_0 }, SPRITE_V2PROJECTILE, 0, { 3, 1, 1, 1 }, 66, 384, 157, 11 },
{ 32992, 5, { &gHitbox_0 }, SPRITE_POT, 0, { 3, 1, 1, 1 }, 66, 384, 157, 11 },
{ 382, 1, { &gHitbox_0 }, SPRITE_LAKITULIGHTNING, 0, { 1, 1, 1, 0 }, 66, 288, 52, 15 },
};
#ifdef EU
const ProjectileDefinition gProjectileDefinition_22[] = {
{ 492, 372, { &gHitbox_1 }, 497, 0, { 0, 0, 1, 1 }, 65, 640, 29, 11 },
{ 491, 338, { &gHitbox_20 }, 496, 0, { 0, 1, 1, 1 }, 65, 640, 29, 11 },
}; // TODO sprite index too high
#else
const ProjectileDefinition gProjectileDefinition_22[] = {
{ 492, 372, { &gHitbox_1 }, 498, 0, { 0, 0, 1, 1 }, 65, 640, 29, 11 },
{ 491, 338, { &gHitbox_20 }, 497, 0, { 0, 1, 1, 1 }, 65, 640, 29, 11 },
}; // TODO sprite index too high
#endif
// TODO
const u8 gUnk_081326EC[] = {
32, 5, 0, 3, 100, 6, 0, 3, 168, 7, 0, 3, 236, 8, 0, 3, 48, 10, 0, 3,
};
+2 -2
View File
@@ -3,7 +3,7 @@
#include "functions.h"
extern s32 sub_080AF090(Entity*);
extern s32 sub_080A7EB0(Entity*);
extern s32 IsProjectileOffScreen(Entity*);
extern void sub_08016AD2(Entity*);
extern void (*const BoneProjectile_Functions[])(Entity*);
@@ -38,7 +38,7 @@ void BoneProjectile_Action1(Entity* this) {
GetNextFrame(this);
sub_080AF090(this);
if (this->collisions == 0) {
if (sub_080A7EB0(this) != 0) {
if (IsProjectileOffScreen(this) != 0) {
DeleteEntity(this);
} else {
sub_08016AD2(this);
+3 -3
View File
@@ -5,7 +5,7 @@
#include "flags.h"
extern s32 sub_080AF090(Entity*);
extern s32 sub_080A7EB0(Entity*);
extern s32 IsProjectileOffScreen(Entity*);
extern void sub_08016AD2(Entity*);
extern u32 sub_080177A0(Entity*, Entity*);
@@ -57,7 +57,7 @@ void DekuSeedProjectile_Action1(Entity* this) {
GetNextFrame(this);
if (sub_080AF090(this) != 0) {
if (sub_080A7EB0(this) != 0) {
if (IsProjectileOffScreen(this) != 0) {
DeleteThisEntity();
}
sub_08016AD2(this);
@@ -90,7 +90,7 @@ void DekuSeedProjectile_Action1(Entity* this) {
void DekuSeedProjectile_Action2(Entity* this) {
GetNextFrame(this);
if (sub_080AF090(this) != 0) {
if (sub_080A7EB0(this) != 0) {
if (IsProjectileOffScreen(this) != 0) {
DeleteThisEntity();
}
if (--this->actionDelay == 0) {
+2 -2
View File
@@ -5,7 +5,7 @@
#include "audio.h"
extern s32 sub_080AF090(Entity*);
extern s32 sub_080A7EB0(Entity*);
extern s32 IsProjectileOffScreen(Entity*);
extern void sub_08016AD2(Entity*);
extern void (*const FireProjectile_Actions[])(Entity*);
@@ -54,7 +54,7 @@ void FireProjectile_Action1(Entity* this) {
void FireProjectile_Action2(Entity* this) {
GetNextFrame(this);
if (sub_080AF090(this) != 0) {
if (sub_080A7EB0(this) != 0) {
if (IsProjectileOffScreen(this) != 0) {
DeleteEntity(this);
} else {
sub_08016AD2(this);
+2 -2
View File
@@ -5,7 +5,7 @@
#include "audio.h"
extern s32 sub_080AF090(Entity*);
extern s32 sub_080A7EB0(Entity*);
extern s32 IsProjectileOffScreen(Entity*);
extern void (*const GyorgMaleEnergyProjectile_Functions[])(Entity*);
extern void (*const GyorgMaleEnergyProjectile_Actions[])(Entity*);
@@ -52,7 +52,7 @@ void GyorgMaleEnergyProjectile_Action1(Entity* this) {
void GyorgMaleEnergyProjectile_Action2(Entity* this) {
sub_080AF090(this);
GetNextFrame(this);
if (sub_080A7EB0(this) != 0) {
if (IsProjectileOffScreen(this) != 0) {
DeleteThisEntity();
}
if (--this->actionDelay == 0) {
+6 -6
View File
@@ -5,9 +5,9 @@
#include "functions.h"
extern u8 gEntCount;
extern Hitbox gUnk_080FD458;
extern Hitbox gUnk_080FD168;
extern Hitbox gUnk_080FD448;
extern Hitbox gHitbox_21;
extern Hitbox gHitbox_1;
extern Hitbox gHitbox_20;
extern void (*const gUnk_0812A994[])(Entity*);
extern void (*const GyorgTail_Actions[])(Entity*);
@@ -95,7 +95,7 @@ void sub_080AC510(Entity* this) {
this->spriteSettings.b.draw = 1;
this->collisionLayer = 2;
if (*(u16*)&this->type == 0x300) {
this->hitbox = &gUnk_080FD458;
this->hitbox = &gHitbox_21;
}
}
}
@@ -112,9 +112,9 @@ void sub_080AC560(Entity* this) {
this->action = 1;
this->collisionLayer = 2;
if (this->type == 0) {
this->hitbox = &gUnk_080FD168;
this->hitbox = &gHitbox_1;
} else {
this->hitbox = &gUnk_080FD448;
this->hitbox = &gHitbox_20;
}
this->frameIndex = 0xff;
this->spriteSettings.b.draw = 1;
+2 -2
View File
@@ -5,7 +5,7 @@
#include "audio.h"
extern s32 sub_080AF090(Entity*);
extern s32 sub_080A7EB0(Entity*);
extern s32 IsProjectileOffScreen(Entity*);
extern void sub_08016AD2(Entity*);
extern void (*const IceProjectile_Actions[])(Entity*);
@@ -56,7 +56,7 @@ void IceProjectile_Action1(Entity* this) {
void IceProjectile_Action2(Entity* this) {
GetNextFrame(this);
if (sub_080AF090(this) != 0) {
if (sub_080A7EB0(this) != 0) {
if (IsProjectileOffScreen(this) != 0) {
DeleteEntity(this);
} else {
sub_08016AD2(this);
+2 -2
View File
@@ -3,7 +3,7 @@
#include "effects.h"
extern s32 sub_080AF090(Entity*);
extern s32 sub_080A7EB0(Entity*);
extern s32 IsProjectileOffScreen(Entity*);
extern void (*const LakituLightning_Functions[])(Entity*);
extern void (*const LakituLightning_Actions[])(Entity*);
@@ -39,7 +39,7 @@ void LakituLightning_Action1(Entity* this) {
CreateFx(this, FX_BLUE_EFC, 0);
DeleteThisEntity();
}
if (sub_080A7EB0(this) != 0) {
if (IsProjectileOffScreen(this) != 0) {
DeleteThisEntity();
}
}
+2 -2
View File
@@ -10,7 +10,7 @@ extern Entity* sub_08049DF4(u32);
extern u32 sub_08049F1C(Entity*, Entity*, u32);
extern s32 sub_080AF090(Entity*);
extern u32 sub_0806F824(Entity*, Entity*, u32, u32);
extern Hitbox gUnk_080FD150;
extern Hitbox gHitbox_0;
extern void (*const MandiblesProjectile_Functions[])(Entity*);
extern void (*const MandiblesProjectile_Actions[])(Entity*);
@@ -148,7 +148,7 @@ void MandiblesProjectile_Action3(Entity* this) {
uVar1 = entity->animationState;
this->direction = uVar1 << 2;
this->animationState = uVar1 << 0x1a >> 0x1a;
this->hitbox = &gUnk_080FD150;
this->hitbox = &gHitbox_0;
if (CheckIsDungeon() != 0) {
this->spriteOrientation.flipY = 1;
}
+2 -2
View File
@@ -3,7 +3,7 @@
#include "functions.h"
extern s32 sub_080AF090(Entity*);
extern s32 sub_080A7EB0(Entity*);
extern s32 IsProjectileOffScreen(Entity*);
extern void sub_08016AD2(Entity*);
extern void (*const RockProjectile_Functions[])(Entity*);
@@ -38,7 +38,7 @@ void RockProjectile_Init(Entity* this) {
void RockProjectile_Action1(Entity* this) {
GetNextFrame(this);
if (sub_080AF090(this) != 0) {
if (sub_080A7EB0(this) != 0) {
if (IsProjectileOffScreen(this) != 0) {
DeleteEntity(this);
} else {
sub_08016AD2(this);
+2 -2
View File
@@ -3,7 +3,7 @@
#include "functions.h"
extern s32 sub_080AF090(Entity*);
extern s32 sub_080A7EB0(Entity*);
extern s32 IsProjectileOffScreen(Entity*);
extern void (*const TorchTrapProjectile_Functions[])(Entity*);
extern void (*const TorchTrapProjectile_Actions[])(Entity*);
@@ -45,7 +45,7 @@ void TorchTrapProjectile_Action2(Entity* this) {
if (this->collisions != 0) {
DeleteThisEntity();
}
if (sub_080A7EB0(this) != 0) {
if (IsProjectileOffScreen(this) != 0) {
DeleteThisEntity();
}
}
+2 -2
View File
@@ -6,7 +6,7 @@
#include "functions.h"
extern s32 sub_080AF090(Entity*);
extern s32 sub_080A7EB0(Entity*);
extern s32 IsProjectileOffScreen(Entity*);
extern void (*const V3ElectricProjectile_Functions[])(Entity*);
extern void (*const V3ElectricProjectile_Actions[])(Entity*);
@@ -67,7 +67,7 @@ void V3ElectricProjectile_Action2(Entity* this) {
DeleteThisEntity();
}
GetNextFrame(this);
if (sub_080A7EB0(this) != 0) {
if (IsProjectileOffScreen(this) != 0) {
DeleteThisEntity();
}
if (this->actionDelay < 0x1e) {
+2 -2
View File
@@ -4,7 +4,7 @@
#include "audio.h"
extern s32 sub_080AF090(Entity*);
extern s32 sub_080A7EB0(Entity*);
extern s32 IsProjectileOffScreen(Entity*);
extern void (*const V3HandProjectile_Functions[])(Entity*);
@@ -27,7 +27,7 @@ void V3HandProjectile_OnTick(Entity* this) {
DeleteThisEntity();
}
GetNextFrame(this);
if (sub_080A7EB0(this) != 0) {
if (IsProjectileOffScreen(this) != 0) {
DeleteThisEntity();
}
}
+3 -3
View File
@@ -5,7 +5,7 @@
#include "effects.h"
extern s32 sub_080AF090(Entity*);
extern s32 sub_080A7EB0(Entity*);
extern s32 IsProjectileOffScreen(Entity*);
extern void (*const V3TennisBallProjectile_Functions[])(Entity*);
extern void (*const V3TennisBallProjectile_Actions[])(Entity*);
@@ -34,7 +34,7 @@ void V3TennisBallProjectile_Init(Entity* this) {
void V3TennisBallProjectile_Action1(Entity* this) {
sub_080AF090(this);
GetNextFrame(this);
if (sub_080A7EB0(this) != 0) {
if (IsProjectileOffScreen(this) != 0) {
DeleteThisEntity();
}
}
@@ -46,7 +46,7 @@ void V3TennisBallProjectile_Action2(Entity* this) {
}
GetNextFrame(this);
sub_080ACB90(this);
if (sub_080A7EB0(this) != 0) {
if (IsProjectileOffScreen(this) != 0) {
DeleteThisEntity();
}
}
+2 -2
View File
@@ -4,7 +4,7 @@
#include "audio.h"
extern s32 sub_080AF090(Entity*);
extern s32 sub_080A7EB0(Entity*);
extern s32 IsProjectileOffScreen(Entity*);
extern void sub_08016AD2(Entity*);
extern void (*const WindProjectile_Actions[])(Entity*);
@@ -60,7 +60,7 @@ void WindProjectile_Action1(Entity* this) {
void WindProjectile_Action2(Entity* this) {
GetNextFrame(this);
if (sub_080AF090(this) != 0) {
if (sub_080A7EB0(this) != 0) {
if (IsProjectileOffScreen(this) != 0) {
DeleteEntity(this);
} else {
sub_08016AD2(this);
+85
View File
@@ -0,0 +1,85 @@
#include "entity.h"
#include "definitions.h"
#include "functions.h"
extern const ProjectileDefinition gProjectileDefinitions[];
const ProjectileDefinition* GetProjectileDefinition(Entity*);
bool32 LoadProjectileSprite(Entity*, const ProjectileDefinition*);
const ProjectileDefinition* GetProjectileDefinition(Entity* this) {
const ProjectileDefinition* definition = &gProjectileDefinitions[this->id];
if (definition->gfx == 0xffff) {
definition = &definition->ptr.definition[this->type];
}
return definition;
}
bool32 ProjectileInit(Entity* this) {
if ((this->flags & 1) == 0) {
const ProjectileDefinition* definition = GetProjectileDefinition(this);
if (LoadProjectileSprite(this, definition) == FALSE) {
return FALSE;
}
this->flags |= 1;
if (definition->spriteFlags.unknown != 0) {
this->flags |= 0x80;
}
this->spriteIndex = definition->spriteIndex;
if (this->spriteSettings.b.draw == 0) {
this->spriteSettings.b.draw = definition->spriteFlags.draw;
}
this->spritePriority.b1 = definition->spriteFlags.spritePriority;
this->spriteSettings.b.shadow = definition->spriteFlags.shadow;
if (this->speed == 0) {
this->speed = definition->speed;
}
this->field_0x3c = (definition->field0x3c << 4) | 7;
this->flags2 = definition->flags2;
this->damageType = definition->damageType;
this->field_0x40 = definition->field0x40;
this->currentHealth = 0xff;
this->hitbox = (Hitbox*)definition->ptr.hitbox;
UpdateSpriteForCollisionLayer(this);
}
return TRUE;
}
bool32 LoadProjectileSprite(Entity* this, const ProjectileDefinition* definition) {
bool32 result;
if (definition->gfx != 0) {
if ((definition->gfx & 0x8000) != 0) {
this->spriteVramOffset = definition->gfx & 0x3ff;
} else {
if ((definition->gfx & 0x4000) != 0) {
result = sub_080AE008(this, definition->gfx >> 4, 0);
} else {
result = LoadFixedGFX(this, definition->gfx);
}
if (result == FALSE) {
return FALSE;
}
}
}
sub_0801D040(this, definition->paletteIndex);
return TRUE;
}
bool32 IsProjectileOffScreen(Entity* this) {
if (((u32)this->x.HALF.HI - gRoomControls.roomOriginX > gRoomControls.width) ||
((u32)this->y.HALF.HI - gRoomControls.roomOriginY > gRoomControls.height)) {
return TRUE;
} else {
return FALSE;
}
}
Entity* CreateProjectile(u32 id) {
Entity* entity = GetEmptyEntity();
if (entity != NULL) {
entity->kind = 4;
entity->id = id;
AppendEntityToList(entity, 5);
}
return entity;
}
+185
View File
@@ -0,0 +1,185 @@
#include "entity.h"
#include "definitions.h"
// clang-format off
// TODO deduplicate using sprite indices enum
const SpriteDataB gNPCDefinition_3[] = { { 1, 1, 1025, { 48, 1055 } }, { 1, 0, 1025, { 48, 1055 } }, };
const SpriteDataB gNPCDefinition_6[] = { { 1, 1, 1025, { 4158, 9273 } }, { 1, 1, 1025, { 4158, 9273 } }, { 1, 1, 1025, { 4158, 9273 } }, { 1, 1, 1025, { 4158, 9273 } }, { 1, 1, 1025, { 4158, 9273 } }, { 1, 1, 1025, { 4158, 9273 } }, { 1, 1, 1025, { 4158, 9273 } }, { 1, 1, 1025, { 4158, 9273 } }, { 1, 1, 1025, { 4158, 9273 } }, { 1, 1, 1025, { 4158, 9273 } }, { 1, 1, 1025, { 4158, 9273 } }, { 1, 1, 1025, { 4158, 9273 } }, { 1, 1, 1025, { 4158, 9273 } }, { 1, 1, 1025, { 4158, 9273 } }, { 1, 1, 1025, { 4158, 9273 } }, { 1, 1, 1026, { 4158, 9273 } }, { 1, 1, 1025, { 4158, 9273 } }, { 1, 1, 1025, { 4158, 9273 } }, { 1, 1, 1025, { 4158, 9273 } }, { 1, 1, 1025, { 4158, 9273 } }, { 1, 1, 1025, { 4158, 9273 } }, };
const SpriteDataB gNPCDefinition_7[] = { { 1, 1, 1025, { 58, 9275 } }, { 1, 1, 1025, { 58, 9275 } }, { 1, 1, 1025, { 58, 9275 } }, { 1, 1, 1026, { 58, 9275 } }, { 1, 1, 1025, { 58, 9275 } }, { 1, 1, 1025, { 58, 9275 } }, { 1, 1, 1026, { 58, 9275 } }, { 1, 1, 1025, { 58, 9275 } }, { 1, 1, 1025, { 58, 9275 } }, };
const SpriteDataB gNPCDefinition_1B[] = { { 1, 1, 1025, { 4167, 1072 } }, { 1, 1, 1025, { 4170, 1072 } }, { 1, 1, 1025, { 4169, 1072 } }, { 1, 1, 1025, { 4168, 1072 } }, };
#ifdef EU
const SpriteDataB gNPCDefinition_27[] = { { 1, 1, 1025, { 4176, 1351 } }, { 1, 1, 1026, { 4379, 1056 } }, };
#else
const SpriteDataB gNPCDefinition_27[] = { { 1, 1, 1025, { 4176, 1352 } }, { 1, 1, 1026, { 4379, 1056 } }, };
#endif
const SpriteDataB gNPCDefinition_2B[] = { { 1, 1, 200, { 4101, 8352 } }, { 1, 1, 1028, { 4101, 8286 } }, };
const SpriteDataB gNPCDefinition_30[] = { { 1, 1, 231, { 4279, 9365 } }, { 1, 1, 232, { 4280, 9366 } }, { 1, 1, 232, { 4281, 9366 } }, { 1, 1, 232, { 4282, 9366 } }, { 1, 1, 232, { 4283, 9366 } }, { 1, 1, 232, { 4284, 9366 } }, { 1, 1, 232, { 4285, 9366 } }, { 1, 1, 232, { 4286, 9366 } }, };
const SpriteDataB gNPCDefinition_33[] = { { 1, 3, 1026, { 8384, 9307 } }, { 1, 3, 1026, { 8384, 9308 } }, };
const SpriteDataB gNPCDefinition_21[] = { { 1, 1, 1025, { 4175, 1112 } }, { 1, 1, 1025, { 4174, 1112 } }, { 1, 1, 38, { 0, 3245 } }, { 1, 1, 1025, { 4167, 1072 } }, { 1, 1, 1025, { 4175, 88 } }, { 1, 1, 1025, { 4174, 88 } }, };
const SpriteDataB gNPCDefinition_5[] = { { 1, 0, 1025, { 4150, 9258 } }, { 1, 0, 0, { 4150, 42 } }, { 1, 1, 0, { 4096, 42 } }, { 1, 0, 1025, { 4150, 9258 } }, };
const SpriteDataB gNPCDefinition_35[] = { { 1, 1, 1025, { 4178, 9283 } }, { 1, 1, 1025, { 4160, 9285 } }, { 1, 1, 1025, { 4100, 9284 } }, { 1, 1, 1025, { 4179, 9285 } }, };
const SpriteDataB gNPCDefinition_2C[] = { { 1, 1, 1025, { 4097, 1089 } }, { 1, 1, 1025, { 4158, 1089 } }, { 1, 1, 1025, { 4097, 1090 } }, { 1, 1, 1025, { 4100, 1090 } }, { 1, 1, 1025, { 4180, 1090 } }, { 1, 1, 1025, { 4097, 1089 } }, };
const SpriteDataB gNPCDefinition_37[] = { { 1, 1, 261, { 4329, 8343 } }, { 1, 0, 261, { 4329, 8343 } }, { 1, 0, 160, { 4096, 8343 } }, { 1, 0, 161, { 4097, 8343 } }, { 1, 0, 455, { 4097, 8343 } }, { 1, 0, 2048, { 4100, 8343 } }, };
const SpriteDataB gNPCDefinition_38[] = { { 1, 1, 1025, { 4330, 9245 } }, { 1, 1, 1025, { 4330, 9245 } }, { 1, 1, 1025, { 4331, 9245 } }, { 1, 1, 1025, { 4332, 9245 } }, { 1, 1, 1025, { 4333, 9245 } }, { 1, 1, 1025, { 4334, 9245 } }, };
const SpriteDataB gNPCDefinition_3D[] = { { 1, 5, 57, { 60, 8333 } }, { 1, 5, 58, { 61, 8334 } }, };
const SpriteDataB gNPCDefinition_3E[] = { { 1, 1, 1026, { 4343, 9288 } }, { 1, 1, 1026, { 4344, 9289 } }, };
const SpriteDataB gNPCDefinition_3F[] = { { 1, 5, 288, { 249, 8344 } }, { 1, 5, 289, { 250, 8345 } }, };
const SpriteDataB gNPCDefinition_41[] = { { 1, 1, 290, { 4348, 8346 } }, { 1, 0, 291, { 252, 8347 } }, };
const SpriteDataB gNPCDefinition_48[] = { { 1, 1, 1025, { 4355, 9295 } }, { 1, 1, 1026, { 4096, 9296 } }, };
const SpriteDataB gNPCDefinition_49[] = { { 1, 1, 1025, { 4356, 9297 } }, { 1, 1, 1025, { 4356, 9298 } }, { 1, 1, 1025, { 4356, 9299 } }, { 1, 1, 1025, { 4356, 9300 } }, { 1, 1, 1025, { 4356, 9301 } }, { 1, 1, 1025, { 4356, 9302 } }, };
const SpriteDataB gNPCDefinition_4A[] = { { 1, 4, 297, { 4361, 8350 } }, { 1, 0, 297, { 4369, 8350 } }, { 1, 0, 297, { 4097, 8350 } }, { 1, 1, 297, { 4368, 9374 } }, };
const SpriteDataB gNPCDefinition_4C[] = { { 0, 0, 0, { 0, 0 } }, { 1, 0, 398, { 282, 8351 } }, { 1, 0, 398, { 282, 8351 } }, { 1, 0, 398, { 0, 8351 } }, { 0, 0, 0, { 0, 0 } }, { 1, 0, 398, { 282, 8351 } }, { 1, 0, 398, { 282, 8351 } }, { 1, 0, 398, { 282, 8351 } }, { 1, 0, 398, { 282, 8351 } }, { 1, 0, 398, { 282, 8351 } }, { 1, 0, 398, { 282, 8351 } }, };
const SpriteDataB gNPCDefinition_4F[] = { { 1, 0, 1025, { 0, 8287 } }, { 1, 0, 1025, { 0, 8287 } }, { 1, 0, 1025, { 1, 8287 } }, { 1, 0, 1025, { 2, 8287 } }, };
#ifdef EU
const SpriteDataB gNPCDefinition_3B[] = { { 1, 0, 1026, { 312, 8304 } }, { 1, 0, 1025, { 312, 8306 } }, { 1, 0, 1025, { 312, 8307 } }, { 1, 0, 1026, { 312, 8315 } }, { 1, 0, 460, { 319, 8495 } }, { 1, 0, 1026, { 319, 8316 } }, };
const SpriteDataB gNPCDefinition_52[] = { { 1, 0, 496, { 234, 8505 } }, { 1, 0, 496, { 236, 8505 } }, { 1, 0, 496, { 237, 8505 } }, { 1, 0, 496, { 238, 8505 } }, { 1, 0, 496, { 235, 8505 } }, };
#else
const SpriteDataB gNPCDefinition_3B[] = { { 1, 0, 1026, { 312, 8304 } }, { 1, 0, 1025, { 312, 8306 } }, { 1, 0, 1025, { 312, 8307 } }, { 1, 0, 1026, { 312, 8315 } }, { 1, 0, 460, { 319, 8496 } }, { 1, 0, 1026, { 319, 8316 } }, };
const SpriteDataB gNPCDefinition_52[] = { { 1, 0, 496, { 234, 8506 } }, { 1, 0, 496, { 236, 8506 } }, { 1, 0, 496, { 237, 8506 } }, { 1, 0, 496, { 238, 8506 } }, { 1, 0, 496, { 235, 8506 } }, };
#endif
#define MULTI_FORM(spriteData_ptr) { 2, 0, 0, {.spriteData=spriteData_ptr} }
const SpriteDataB gNPCDefinitions[] = {
{ 0, 0, 0, { 0, 0 } },
{ 1, 1, 1025, { 49, 1048 } },
{ 1, 1, 1025, { 50, 1049 } },
MULTI_FORM(gNPCDefinition_3),
{ 1, 1, 1025, { 4096, 9268 } },
MULTI_FORM(gNPCDefinition_5),
MULTI_FORM(gNPCDefinition_6),
MULTI_FORM(gNPCDefinition_7),
{ 1, 1, 1026, { 4096, 9259 } },
{ 0, 0, 0, { 0, 0 } },
{ 1, 5, 59, { 65, 143 } },
{ 1, 1, 1026, { 4096, 9263 } },
{ 1, 5, 60, { 66, 144 } },
{ 1, 5, 61, { 57, 8338 } },
{ 1, 1, 64, { 56, 8339 } },
{ 1, 1, 1026, { 4380, 9253 } },
{ 1, 1, 1025, { 4096, 9276 } },
{ 1, 3, 1025, { 4158, 9265 } },
{ 1, 1, 1025, { 4159, 9266 } },
{ 1, 1, 1025, { 4159, 8253 } },
{ 1, 1, 1025, { 4158, 9267 } },
{ 1, 1, 1026, { 4151, 9259 } },
{ 1, 1, 1025, { 4166, 9263 } },
{ 1, 1, 1025, { 4163, 9255 } },
{ 1, 1, 1025, { 4164, 9256 } },
{ 1, 1, 1025, { 4165, 9257 } },
{ 1, 1, 56, { 4155, 1164 } },
MULTI_FORM(gNPCDefinition_1B),
{ 1, 5, 66, { 53, 145 } },
{ 1, 1, 68, { 4171, 9355 } },
{ 1, 1, 1025, { 4172, 9269 } },
{ 1, 1, 1025, { 4097, 9270 } },
{ 1, 1, 1025, { 8193, 1079 } },
MULTI_FORM(gNPCDefinition_21),
{ 1, 1, 1026, { 4173, 9272 } },
{ 1, 1, 1025, { 48, 1055 } },
{ 1, 1, 1025, { 55, 1068 } },
{ 1, 1, 1025, { 55, 1069 } },
{ 1, 1, 1025, { 55, 1070 } },
MULTI_FORM(gNPCDefinition_27),
{ 1, 1, 1025, { 4150, 1066 } },
{ 1, 1, 1025, { 4177, 9278 } },
{ 1, 1, 1026, { 4177, 9279 } },
MULTI_FORM(gNPCDefinition_2B),
MULTI_FORM(gNPCDefinition_2C),
{ 1, 1, 1026, { 4276, 9243 } },
{ 1, 0, 1025, { 4150, 9258 } },
{ 1, 3, 1026, { 4277, 9242 } },
MULTI_FORM(gNPCDefinition_30),
{ 1, 3, 1025, { 191, 8282 } },
{ 1, 3, 1025, { 8384, 9309 } },
MULTI_FORM(gNPCDefinition_33),
{ 1, 3, 1025, { 4289, 9280 } },
MULTI_FORM(gNPCDefinition_35),
{ 1, 3, 1026, { 4096, 8262 } },
MULTI_FORM(gNPCDefinition_37),
MULTI_FORM(gNPCDefinition_38),
{ 1, 1, 1026, { 4377, 9246 } },
{ 1, 1, 1025, { 4342, 9287 } },
MULTI_FORM(gNPCDefinition_3B),
{ 1, 1, 72, { 4207, 9423 } },
MULTI_FORM(gNPCDefinition_3D),
MULTI_FORM(gNPCDefinition_3E),
MULTI_FORM(gNPCDefinition_3F),
{ 1, 3, 1025, { 4347, 9290 } },
MULTI_FORM(gNPCDefinition_41),
{ 1, 0, 1025, { 4349, 8267 } },
{ 1, 1, 1025, { 4350, 9292 } },
{ 1, 1, 1025, { 4351, 9293 } },
{ 1, 1, 292, { 4352, 9372 } },
{ 1, 1, 1025, { 4353, 9294 } },
{ 1, 5, 293, { 258, 8349 } },
MULTI_FORM(gNPCDefinition_48),
MULTI_FORM(gNPCDefinition_49),
MULTI_FORM(gNPCDefinition_4A),
{ 1, 1, 1025, { 4158, 9303 } },
MULTI_FORM(gNPCDefinition_4C),
{ 1, 1, 1025, { 4118, 9227 } },
{ 0, 0, 0, { 0, 0 } },
MULTI_FORM(gNPCDefinition_4F),
#ifdef EU
{ 1, 0, 464, { 4096, 8498 } },
#else
{ 1, 0, 464, { 4096, 8499 } },
#endif
{ 0, 0, 0, { 0, 0 } },
MULTI_FORM(gNPCDefinition_52),
{ 1, 1, 1026, { 4451, 9305 } },
{ 1, 1, 67, { 4096, 9364 } },
#ifdef EU
{ 1, 1, 463, { 0, 9710 } },
#else
{ 1, 1, 463, { 0, 9711 } },
#endif
{ 0, 0, 0, { 0, 0 } },
#ifdef EU
{ 1, 3, 348, { 88, 8585 } },
#else
{ 1, 3, 348, { 88, 8586 } },
#endif
{ 1, 0, 1025, { 4096, 8289 } },
{ 0, 0, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
};
// clang-format on
+514
View File
@@ -0,0 +1,514 @@
#include "entity.h"
#include "hitbox.h"
#include "definitions.h"
// TODO
const Hitbox* const gUnk_08125104[] = { NULL, &gHitbox_0, &gHitbox_30, &gHitbox_2, &gHitbox_3 };
// clang-format off
const SpriteDataB gObjectDefinition_F[] = { { 1, 0, 2107, { 0, SPRITE_SPECIALFX } }, { 1, 0, 2144, { 0, SPRITE_SPECIALFX } }, { 1, 0, 2202, { 3, SPRITE_SPECIALFX } }, { 1, 0, 2276, { 2, SPRITE_SPECIALFX } }, { 1, 0, 2129, { 5, SPRITE_SPECIALFX } }, { 1, 0, 2284, { 1, SPRITE_SPECIALFX } }, { 1, 0, 2144, { 0, SPRITE_SPECIALFX } }, { 1, 0, 2108, { 4, SPRITE_SPECIALFX } }, { 1, 0, 0, { 5, SPRITE_SPECIALFX } }, { 1, 0, 0, { 5, SPRITE_SPECIALFX } }, { 1, 0, 0, { 5, SPRITE_SPECIALFX } }, { 1, 0, 2120, { 1, SPRITE_SPECIALFX } }, { 1, 0, 2126, { 0, SPRITE_SPECIALFX } }, { 1, 0, 2133, { 1, SPRITE_SPECIALFX } }, { 1, 0, 18, { 5, SPRITE_SPECIALFX } }, { 1, 0, 2129, { 1, SPRITE_SPECIALFX } }, { 1, 0, 2141, { 1, SPRITE_SPECIALFX } }, { 1, 0, 2137, { 3, SPRITE_SPECIALFX } }, { 1, 0, 2048, { 0, SPRITE_SPECIALFX } }, { 1, 0, 2276, { 0, SPRITE_SPECIALFX } }, { 1, 0, 2108, { 4, SPRITE_SPECIALFX } }, { 1, 0, 2129, { 1, SPRITE_SPECIALFX } }, { 1, 0, 176, { 0, SPRITE_SPECIALFX } }, { 1, 0, 2276, { 2, SPRITE_SPECIALFX } }, { 1, 0, 0, { 0, 0 } }, { 1, 0, 2048, { 0, SPRITE_SPECIALFX } }, { 1, 0, 2112, { 0, SPRITE_SPECIALFX } }, { 1, 0, 4, { 0, SPRITE_SPECIALFX } }, { 1, 0, 2080, { 4, SPRITE_SPECIALFX } }, { 1, 0, 2080, { 4, SPRITE_SPECIALFX } }, { 1, 0, 2080, { 4, SPRITE_SPECIALFX } }, { 1, 0, 28, { 1, SPRITE_SPECIALFX } }, { 1, 0, 2068, { 1, SPRITE_SPECIALFX } }, { 1, 0, 30, { 1, SPRITE_SPECIALFX } }, { 1, 0, 2202, { 4, SPRITE_SPECIALFX } }, { 1, 0, 2202, { 4, SPRITE_SPECIALFX } }, { 1, 0, 2202, { 4, SPRITE_SPECIALFX } }, { 1, 0, 243, { 1, 163 } }, { 1, 0, 2108, { 4, SPRITE_SPECIALFX } }, { 1, 0, 2144, { 0, 163 } }, { 1, 0, 2202, { 3, SPRITE_SPECIALFX } }, { 1, 0, 113, { 71, 163 } }, { 1, 0, 113, { 71, 163 } }, { 1, 0, 2120, { 2, SPRITE_SPECIALFX } }, { 1, 0, 2141, { 1, 163 } }, { 1, 0, 0, { 5, 163 } }, { 1, 0, 2202, { 3, SPRITE_SPECIALFX } }, { 1, 0, 2137, { 3, SPRITE_SPECIALFX } }, { 1, 0, 2105, { 171, 163 } }, { 1, 0, 2253, { 3, 163 } }, { 1, 0, 2144, { 0, 163 } }, { 1, 0, 2144, { 0, 163 } }, { 1, 0, 2144, { 0, 163 } }, { 1, 0, 2144, { 3, 8354 } }, { 1, 0, 2126, { 0, 8355 } }, { 1, 0, 2276, { 2, SPRITE_SPECIALFX } }, { 1, 0, 2276, { 2, SPRITE_SPECIALFX } }, { 1, 0, 2276, { 2, SPRITE_SPECIALFX } }, { 1, 0, 2077, { 3, 163 } }, { 1, 0, 0, { 5, 163 } }, { 1, 0, 366, { 0, 163 } }, { 1, 0, 379, { 4, 8355 } }, { 1, 0, 2276, { 2, SPRITE_SPECIALFX } }, { 1, 0, 2276, { 2, SPRITE_SPECIALFX } }, { 1, 0, 2276, { 2, SPRITE_SPECIALFX } }, { 1, 0, 28, { 4, SPRITE_SPECIALFX } }, { 1, 0, 372, { 0, 8355 } }, { 1, 0, 2144, { 3, 8354 } }, { 1, 0, 446, { 184, 8355 } }, { 1, 0, 2133, { 3, SPRITE_SPECIALFX } }, { 1, 0, 452, { 0, 8355 } }, { 1, 0, 452, { 0, 8355 } }, { 1, 0, 452, { 0, 8355 } }, { 1, 0, 457, { 285, 8355 } }, { 1, 0, 458, { 285, 8355 } }, { 1, 0, 459, { 3, 8355 } }, { 1, 0, 2077, { 4, 163 } }, { 1, 0, 2108, { 4, SPRITE_SPECIALFX } }, { 1, 0, 0, { 1, 8355 } }, { 1, 0, 0, { 4, 8355 } }, { 1, 0, 2108, { 4, 8355 } }, { 1, 0, 0, { 0, 8355 } }, { 1, 0, 2126, { 382, SPRITE_SPECIALFX } }, { 1, 0, 2202, { 319, 8354 } }, { 1, 0, 2202, { 3, 8354 } }, { 1, 0, 2202, { 3, SPRITE_SPECIALFX } }, { 1, 0, 2265, { 0, SPRITE_SPECIALFX_1+0x2000 } }, { 1, 0, 2265, { 1, SPRITE_SPECIALFX_1+0x2000 } }, };
#ifdef EU
const SpriteDataB gObjectDefinition_7[] = { { 1, 0, 12, { 5, 8659 } }, { 1, 0, 263, { 5, 8660 } }, { 1, 0, 262, { 5, 8661 } }, { 1, 0, 38, { 5, 8662 } }, }; // TODO sprite index too high
#else
const SpriteDataB gObjectDefinition_7[] = { { 1, 0, 12, { 5, 8660 } }, { 1, 0, 263, { 5, 8661 } }, { 1, 0, 262, { 5, 8662 } }, { 1, 0, 38, { 5, 8663 } }, }; // TODO sprite index too high
#endif
const SpriteDataB gObjectDefinition_25[] = { { 1, 0, 23, { 29, SPRITE_BIGBARREL } }, { 1, 0, 23, { 29, SPRITE_BIGBARREL } }, { 1, 0, 24, { 29, SPRITE_BIGBARREL } }, { 0, 0, 0, { 0, SPRITE_0 } }, { 0, 0, 0, { 0, SPRITE_0 } }, };
const SpriteDataB gObjectDefinition_24[] = { { 1, 0, 22, { 0, SPRITE_OBJECT24 } }, { 1, 0, 39, { 0, SPRITE_OBJECT24 } }, { 1, 0, 40, { 0, SPRITE_OBJECT24 } }, };
#ifdef EU
const SpriteDataB gObjectDefinition_1C[] = { { 1, 0, 43, { 0, 8538 } }, { 1, 0, 43, { 0, 8538 } }, { 1, 0, 43, { 0, 8538 } }, { 1, 0, 44, { 0, 8538 } }, { 1, 0, 44, { 0, 8538 } }, { 1, 0, 45, { 0, 8538 } }, { 1, 0, 46, { 0, 8538 } }, { 1, 0, 47, { 0, 8538 } }, { 1, 0, 48, { 0, 8538 } }, { 1, 0, 49, { 0, 8538 } }, { 1, 0, 50, { 0, 8538 } }, { 1, 0, 51, { 0, 8538 } }, }; // TODO sprite index too high
#else
const SpriteDataB gObjectDefinition_1C[] = { { 1, 0, 43, { 0, 8539 } }, { 1, 0, 43, { 0, 8539 } }, { 1, 0, 43, { 0, 8539 } }, { 1, 0, 44, { 0, 8539 } }, { 1, 0, 44, { 0, 8539 } }, { 1, 0, 45, { 0, 8539 } }, { 1, 0, 46, { 0, 8539 } }, { 1, 0, 47, { 0, 8539 } }, { 1, 0, 48, { 0, 8539 } }, { 1, 0, 49, { 0, 8539 } }, { 1, 0, 50, { 0, 8539 } }, { 1, 0, 51, { 0, 8539 } }, }; // TODO sprite index too high
#endif
const SpriteDataB gObjectDefinition_2C[] = { { 1, 0, 0, { 109, SPRITE_BEANSTALK_0 } }, { 1, 0, 0, { 109, SPRITE_BEANSTALK_1 } }, { 1, 0, 0, { 109, SPRITE_BEANSTALK_1 } }, { 1, 0, 0, { 109, SPRITE_BEANSTALK_1 } }, { 1, 0, 0, { 109, SPRITE_BEANSTALK_1 } }, { 1, 0, 0, { 109, SPRITE_BEANSTALK_1 } }, { 1, 0, 0, { 109, SPRITE_BEANSTALK_1 } }, { 1, 0, 36, { 109, SPRITE_BEANSTALK_1 } }, { 1, 0, 36, { 109, SPRITE_BEANSTALK_1 } }, { 1, 0, 122, { 118, SPRITE_BEANSTALK_1 } }, };
const SpriteDataB gObjectDefinition_49[] = { { 1, 0, 62, { 43, 8392 } }, { 1, 0, 62, { 21, 8392 } }, { 1, 0, 62, { 21, 8392 } }, { 1, 0, 62, { 43, 200 } }, { 1, 0, 62, { 44, 8392 } }, { 1, 0, 63, { 45, 8393 } }, { 1, 0, 63, { 45, 8393 } }, { 1, 0, 63, { 45, 8393 } }, { 1, 0, 63, { 45, 8393 } }, { 1, 0, 62, { 43, 8392 } }, { 1, 0, 62, { 4, 8393 } }, }; // TODO sprite index too high
#ifdef EU
const SpriteDataB gObjectDefinition_4F[] = { { 1, 0, 98, { 10, 8599 } }, { 1, 0, 99, { 10, 8599 } }, { 1, 0, 103, { 10, 8599 } }, { 1, 0, 104, { 10, 8599 } }, { 1, 0, 105, { 10, 8599 } }, { 1, 0, 106, { 10, 8599 } }, { 1, 0, 108, { 10, 8599 } }, { 1, 0, 108, { 10, 8599 } }, { 1, 0, 109, { 10, 8599 } }, { 1, 0, 110, { 10, 8599 } }, { 0, 0, 0, { 0, 0 } }, { 0, 0, 0, { 0, 0 } }, { 0, 0, 0, { 0, 0 } }, { 1, 0, 142, { 14, 8650 } }, { 1, 0, 100, { 10, 8599 } }, { 1, 0, 111, { 10, 8600 } }, { 1, 0, 101, { 10, 8599 } }, { 1, 0, 102, { 10, 8599 } }, { 1, 0, 132, { 120, 8534 } }, { 1, 0, 112, { 10, 8599 } }, { 1, 0, 283, { 10, 8599 } }, { 1, 0, 284, { 10, 8599 } }, { 1, 0, 285, { 10, 8601 } }, { 1, 0, 287, { 10, 8599 } }, { 1, 0, 305, { 10, 8602 } }, { 1, 0, 308, { 14, 8650 } }, { 1, 0, 309, { 18, 8650 } }, { 1, 0, 310, { 10, 8603 } }, { 1, 0, 323, { 10, 8599 } }, { 1, 0, 324, { 10, 8599 } }, { 1, 0, 107, { 10, 8604 } }, { 1, 0, 286, { 10, 8604 } }, { 1, 0, 412, { 10, 8599 } }, { 1, 0, 450, { 15, 8650 } }, { 1, 0, 488, { 354, 8687 } }, }; // TODO sprite index too high
#else
const SpriteDataB gObjectDefinition_4F[] = { { 1, 0, 98, { 10, 8600 } }, { 1, 0, 99, { 10, 8600 } }, { 1, 0, 103, { 10, 8600 } }, { 1, 0, 104, { 10, 8600 } }, { 1, 0, 105, { 10, 8600 } }, { 1, 0, 106, { 10, 8600 } }, { 1, 0, 108, { 10, 8600 } }, { 1, 0, 108, { 10, 8600 } }, { 1, 0, 109, { 10, 8600 } }, { 1, 0, 110, { 10, 8600 } }, { 0, 0, 0, { 0, 0 } }, { 0, 0, 0, { 0, 0 } }, { 0, 0, 0, { 0, 0 } }, { 1, 0, 142, { 14, 8651 } }, { 1, 0, 100, { 10, 8600 } }, { 1, 0, 111, { 10, 8601 } }, { 1, 0, 101, { 10, 8600 } }, { 1, 0, 102, { 10, 8600 } }, { 1, 0, 132, { 120, 8535 } }, { 1, 0, 112, { 10, 8600 } }, { 1, 0, 283, { 10, 8600 } }, { 1, 0, 284, { 10, 8600 } }, { 1, 0, 285, { 10, 8602 } }, { 1, 0, 287, { 10, 8600 } }, { 1, 0, 305, { 10, 8603 } }, { 1, 0, 308, { 14, 8651 } }, { 1, 0, 309, { 18, 8651 } }, { 1, 0, 310, { 10, 8604 } }, { 1, 0, 323, { 10, 8600 } }, { 1, 0, 324, { 10, 8600 } }, { 1, 0, 107, { 10, 8605 } }, { 1, 0, 286, { 10, 8605 } }, { 1, 0, 412, { 10, 8600 } }, { 1, 0, 450, { 15, 8651 } }, { 1, 0, 488, { 354, 8688 } }, }; // TODO sprite index too high
#endif
const SpriteDataB gObjectDefinition_56[] = { { 1, 0, 119, { 0, SPRITE_THOUGHTBUBBLE } }, { 1, 0, 119, { 0, SPRITE_THOUGHTBUBBLE } }, };
#ifdef EU
const SpriteDataB gObjectDefinition_26[] = { { 1, 0, 27, { 116, 457 } }, { 1, 0, 27, { 116, 457 } }, { 1, 0, 27, { 116, 457 } }, { 1, 0, 27, { 117, 457 } }, { 1, 0, 27, { 117, 457 } }, { 1, 0, 27, { 117, 457 } }, }; // TODO sprite index too high
#else
const SpriteDataB gObjectDefinition_26[] = { { 1, 0, 27, { 116, 458 } }, { 1, 0, 27, { 116, 458 } }, { 1, 0, 27, { 116, 458 } }, { 1, 0, 27, { 117, 458 } }, { 1, 0, 27, { 117, 458 } }, { 1, 0, 27, { 117, 458 } }, }; // TODO sprite index too high
#endif
const SpriteDataB gObjectDefinition_59[] = { { 1, 0, 1025, { 0, SPRITE_LAVAPLATFORM_1 } }, { 1, 0, 124, { 0, SPRITE_LAVAPLATFORM } }, };
#ifdef EU
const SpriteDataB gObjectDefinition_4C[] = { { 1, 1, 90, { 87, 8543 } }, { 1, 1, 91, { 87, 8544 } }, { 1, 1, 126, { 87, 8552 } }, { 1, 1, 97, { 86, 8550 } }, { 1, 1, 280, { 101, 8552 } }, }; // TODO sprite index too high
const SpriteDataB gObjectDefinition_4D[] = { { 1, 0, 92, { 87, 8545 } }, { 1, 0, 91, { 87, 8544 } }, { 1, 0, 94, { 86, 8547 } }, { 1, 0, 97, { 86, 8550 } }, { 1, 0, 131, { 1, 8557 } }, { 1, 0, 147, { 1, 8558 } }, { 1, 0, 148, { 1, 8559 } }, { 1, 0, 149, { 90, 8560 } }, { 1, 0, 150, { 0, 8561 } }, { 1, 0, 151, { 91, 8562 } }, { 1, 0, 152, { 86, 8563 } }, { 1, 0, 163, { 4097, 9591 } }, { 1, 0, 164, { 94, 8568 } }, { 1, 0, 165, { 94, 8569 } }, { 1, 0, 166, { 92, 8570 } }, { 1, 0, 167, { 93, 8571 } }, { 1, 0, 150, { 1, 8561 } }, { 1, 0, 153, { 86, 8564 } }, { 1, 0, 154, { 1, 8565 } }, { 1, 0, 155, { 88, 8566 } }, { 1, 0, 170, { 2, 8540 } }, { 1, 0, 171, { 2, 8541 } }, { 1, 0, 172, { 2, 8542 } }, { 1, 0, 156, { 86, 8572 } }, { 1, 0, 194, { 48, 8535 } }, { 1, 0, 157, { 87, 8573 } }, { 1, 0, 374, { 105, 8592 } }, { 1, 0, 159, { 86, 8574 } }, { 1, 0, 160, { 0, 8575 } }, { 1, 0, 161, { 1, 8576 } }, { 1, 0, 162, { 99, 8577 } }, { 1, 0, 242, { 211, 8632 } }, { 1, 0, 278, { 102, 8578 } }, { 1, 0, 279, { 102, 8579 } }, { 1, 0, 280, { 101, 8552 } }, { 1, 0, 281, { 101, 8543 } }, { 1, 0, 282, { 100, 8550 } }, { 1, 0, 296, { 87, 8580 } }, { 1, 0, 325, { 292, 8605 } }, { 1, 0, 327, { 294, 8606 } }, { 1, 0, 328, { 291, 8607 } }, { 1, 0, 329, { 294, 8608 } }, { 1, 0, 330, { 294, 8609 } }, { 1, 0, 331, { 291, 8610 } }, { 1, 0, 332, { 294, 8611 } }, { 1, 0, 333, { 292, 8612 } }, { 1, 0, 334, { 292, 8613 } }, { 1, 0, 335, { 294, 8614 } }, { 1, 0, 336, { 292, 8615 } }, { 1, 0, 337, { 294, 8616 } }, { 1, 0, 338, { 292, 8617 } }, { 1, 0, 339, { 292, 8618 } }, { 1, 0, 340, { 292, 8619 } }, { 1, 0, 341, { 290, 8620 } }, { 1, 0, 342, { 293, 8621 } }, { 1, 0, 343, { 292, 8622 } }, { 1, 0, 345, { 103, 8584 } }, { 1, 0, 348, { 88, 8585 } }, { 1, 0, 368, { 104, 8591 } }, { 1, 0, 378, { 86, 8594 } }, { 1, 0, 380, { 86, 8595 } }, { 1, 0, 381, { 108, 8596 } }, { 1, 0, 151, { 91, 8562 } }, { 1, 0, 426, { 322, 8625 } }, { 1, 0, 427, { 321, 8626 } }, { 1, 0, 428, { 321, 8627 } }, { 1, 0, 429, { 322, 8628 } }, { 1, 0, 430, { 0, 8629 } }, { 1, 0, 489, { 294, 8623 } }, { 1, 0, 490, { 291, 8624 } }, }; // TODO sprite index too high
const SpriteDataB gObjectDefinition_5A[] = { { 1, 0, 95, { 86, 8548 } }, { 1, 0, 96, { 86, 8549 } }, { 1, 0, 367, { 0, 8590 } }, }; // TODO sprite index too high
#else
const SpriteDataB gObjectDefinition_4C[] = { { 1, 1, 90, { 87, 8544 } }, { 1, 1, 91, { 87, 8545 } }, { 1, 1, 126, { 87, 8553 } }, { 1, 1, 97, { 86, 8551 } }, { 1, 1, 280, { 101, 8553 } }, }; // TODO sprite index too high
const SpriteDataB gObjectDefinition_4D[] = { { 1, 0, 92, { 87, 8546 } }, { 1, 0, 91, { 87, 8545 } }, { 1, 0, 94, { 86, 8548 } }, { 1, 0, 97, { 86, 8551 } }, { 1, 0, 131, { 1, 8558 } }, { 1, 0, 147, { 1, 8559 } }, { 1, 0, 148, { 1, 8560 } }, { 1, 0, 149, { 90, 8561 } }, { 1, 0, 150, { 0, 8562 } }, { 1, 0, 151, { 91, 8563 } }, { 1, 0, 152, { 86, 8564 } }, { 1, 0, 163, { 4097, 9592 } }, { 1, 0, 164, { 94, 8569 } }, { 1, 0, 165, { 94, 8570 } }, { 1, 0, 166, { 92, 8571 } }, { 1, 0, 167, { 93, 8572 } }, { 1, 0, 150, { 1, 8562 } }, { 1, 0, 153, { 86, 8565 } }, { 1, 0, 154, { 1, 8566 } }, { 1, 0, 155, { 88, 8567 } }, { 1, 0, 170, { 2, 8541 } }, { 1, 0, 171, { 2, 8542 } }, { 1, 0, 172, { 2, 8543 } }, { 1, 0, 156, { 86, 8573 } }, { 1, 0, 194, { 48, 8536 } }, { 1, 0, 157, { 87, 8574 } }, { 1, 0, 374, { 105, 8593 } }, { 1, 0, 159, { 86, 8575 } }, { 1, 0, 160, { 0, 8576 } }, { 1, 0, 161, { 1, 8577 } }, { 1, 0, 162, { 99, 8578 } }, { 1, 0, 242, { 211, 8633 } }, { 1, 0, 278, { 102, 8579 } }, { 1, 0, 279, { 102, 8580 } }, { 1, 0, 280, { 101, 8553 } }, { 1, 0, 281, { 101, 8544 } }, { 1, 0, 282, { 100, 8551 } }, { 1, 0, 296, { 87, 8581 } }, { 1, 0, 325, { 292, 8606 } }, { 1, 0, 327, { 294, 8607 } }, { 1, 0, 328, { 291, 8608 } }, { 1, 0, 329, { 294, 8609 } }, { 1, 0, 330, { 294, 8610 } }, { 1, 0, 331, { 291, 8611 } }, { 1, 0, 332, { 294, 8612 } }, { 1, 0, 333, { 292, 8613 } }, { 1, 0, 334, { 292, 8614 } }, { 1, 0, 335, { 294, 8615 } }, { 1, 0, 336, { 292, 8616 } }, { 1, 0, 337, { 294, 8617 } }, { 1, 0, 338, { 292, 8618 } }, { 1, 0, 339, { 292, 8619 } }, { 1, 0, 340, { 292, 8620 } }, { 1, 0, 341, { 290, 8621 } }, { 1, 0, 342, { 293, 8622 } }, { 1, 0, 343, { 292, 8623 } }, { 1, 0, 345, { 103, 8585 } }, { 1, 0, 348, { 88, 8586 } }, { 1, 0, 368, { 104, 8592 } }, { 1, 0, 378, { 86, 8595 } }, { 1, 0, 380, { 86, 8596 } }, { 1, 0, 381, { 108, 8597 } }, { 1, 0, 151, { 91, 8563 } }, { 1, 0, 426, { 322, 8626 } }, { 1, 0, 427, { 321, 8627 } }, { 1, 0, 428, { 321, 8628 } }, { 1, 0, 429, { 322, 8629 } }, { 1, 0, 430, { 0, 8630 } }, { 1, 0, 489, { 294, 8624 } }, { 1, 0, 490, { 291, 8625 } }, }; // TODO sprite index too high
const SpriteDataB gObjectDefinition_5A[] = { { 1, 0, 95, { 86, 8549 } }, { 1, 0, 96, { 86, 8550 } }, { 1, 0, 367, { 0, 8591 } }, }; // TODO sprite index too high
#endif
const SpriteDataB gObjectDefinition_61[] = { { 1, 0, 1025, { 18, SPRITE_13 } }, { 1, 0, 1025, { 18, SPRITE_13 } }, };
const SpriteDataB gObjectDefinition_64[] = { { 1, 0, 133, { 1, SPRITE_OBJECT64 } }, { 1, 0, 133, { 1, SPRITE_OBJECT64 } }, { 1, 0, 133, { 1, SPRITE_OBJECT64 } }, };
const SpriteDataB gObjectDefinition_67[] = { { 1, 0, 173, { 203, 8418 } }, { 1, 0, 174, { 208, 8418 } }, { 1, 0, 0, { 0, 0 } }, { 1, 0, 1025, { 0, 8295 } }, }; // TODO sprite index too high
const SpriteDataB gObjectDefinition_68[] = { { 1, 0, 0, { 0, 0 } }, { 1, 0, 0, { 0, 0 } }, { 1, 0, 0, { 0, 0 } }, { 1, 0, 0, { 0, 0 } }, { 1, 0, 0, { 0, 0 } }, { 1, 0, 0, { 0, 0 } }, { 1, 0, 0, { 0, 0 } }, { 1, 0, 0, { 0, 0 } }, { 1, 0, 0, { 0, 0 } }, };
#ifdef EU
const SpriteDataB gObjectDefinition_6A[] = { { 1, 0, 25, { 1, 8376 } }, { 1, 0, 1025, { 4096, 11297 } }, { 1, 0, 405, { 0, 8484 } }, { 1, 0, 1025, { 4096, 8513 } }, { 1, 0, 510, { 4096, 8508 } }, { 1, 0, 465, { 4097, 8499 } }, { 1, 3, 252, { 1, 481 } }, { 1, 4, 522, { 22, 9539 } }, { 1, 0, 1025, { 2, 8226 } }, { 1, 0, 1025, { 2, 8227 } }, { 1, 0, 195, { 8339, 3256 } }, { 1, 0, 1026, { 2, 8226 } }, { 1, 0, 382, { 1, 9483 } }, { 1, 0, 405, { 313, 9508 } }, { 1, 0, 369, { 0, 268 } }, { 1, 0, 369, { 2, 8460 } }, { 1, 0, 369, { 2, 8460 } }, { 1, 0, 1026, { 339, 8288 } }, { 1, 0, 2082, { 4, 322 } }, { 1, 0, 1, { 4096, 11438 } }, { 1, 0, 1, { 4097, 11440 } }, { 1, 0, 1025, { 4096, 8513 } }, { 1, 0, 1025, { 286, 8230 } }, { 1, 0, 442, { 300, 498 } }, { 1, 0, 1025, { 0, 8513 } }, { 1, 0, 1025, { 2, 8359 } }, { 1, 0, 114, { 110, 8400 } }, { 1, 0, 1025, { 4379, 8224 } }, { 1, 0, 1025, { 4382, 8230 } }, { 1, 0, 456, { 4382, 8494 } }, { 1, 0, 459, { 4099, 8355 } }, { 1, 0, 1025, { 4096, 8206 } }, { 1, 0, 199, { 4208, 11492 } }, { 1, 0, 199, { 4209, 11492 } }, { 1, 0, 1025, { 4118, 1060 } }, { 1, 0, 457, { 285, 8355 } }, { 1, 0, 458, { 285, 8355 } }, { 1, 0, 459, { 4099, 8355 } }, { 1, 0, 506, { 1, 8646 } }, { 1, 0, 508, { 380, 8647 } }, { 1, 0, 509, { 381, 8648 } }, { 1, 0, 1025, { 0, 9537 } }, { 1, 0, 1025, { 0, 9537 } }, }; // TODO sprite index too high
#else
const SpriteDataB gObjectDefinition_6A[] = { { 1, 0, 25, { 1, 8376 } }, { 1, 0, 1025, { 4096, 11297 } }, { 1, 0, 405, { 0, 8485 } }, { 1, 0, 1025, { 4096, 8514 } }, { 1, 0, 510, { 4096, 8509 } }, { 1, 0, 465, { 4097, 8500 } }, { 1, 3, 252, { 1, 482 } }, { 1, 4, 523, { 22, 9540 } }, { 1, 0, 1025, { 2, 8226 } }, { 1, 0, 1025, { 2, 8227 } }, { 1, 0, 195, { 8339, 3256 } }, { 1, 0, 1026, { 2, 8226 } }, { 1, 0, 382, { 1, 9483 } }, { 1, 0, 405, { 313, 9509 } }, { 1, 0, 369, { 0, 268 } }, { 1, 0, 369, { 2, 8460 } }, { 1, 0, 369, { 2, 8460 } }, { 1, 0, 1026, { 339, 8288 } }, { 1, 0, 2082, { 4, 323 } }, { 1, 0, 1, { 4096, 11438 } }, { 1, 0, 1, { 4097, 11440 } }, { 1, 0, 1025, { 4096, 8514 } }, { 1, 0, 1025, { 286, 8230 } }, { 1, 0, 442, { 300, 499 } }, { 1, 0, 1025, { 0, 8514 } }, { 1, 0, 1025, { 2, 8359 } }, { 1, 0, 114, { 110, 8400 } }, { 1, 0, 1025, { 4379, 8224 } }, { 1, 0, 1025, { 4382, 8230 } }, { 1, 0, 456, { 4382, 8495 } }, { 1, 0, 459, { 4099, 8355 } }, { 1, 0, 1025, { 4096, 8206 } }, { 1, 0, 199, { 4208, 11492 } }, { 1, 0, 199, { 4209, 11492 } }, { 1, 0, 1025, { 4118, 1060 } }, { 1, 0, 457, { 285, 8355 } }, { 1, 0, 458, { 285, 8355 } }, { 1, 0, 459, { 4099, 8355 } }, { 1, 0, 506, { 1, 8647 } }, { 1, 0, 508, { 380, 8648 } }, { 1, 0, 509, { 381, 8649 } }, { 1, 0, 1025, { 0, 9538 } }, { 1, 0, 1025, { 0, 9538 } }, }; // TODO sprite index too high
#endif
// TODO deduplicate using sprite indices enum
const SpriteDataB gObjectDefinition_6B[] = { { 1, 0, 138, { 2, 8410 } }, { 1, 0, 139, { 131, 8410 } }, { 1, 0, 138, { 1, 8410 } }, { 1, 0, 139, { 131, 8410 } }, };
#ifdef EU
const SpriteDataB gObjectDefinition_5D[] = { { 1, 0, 127, { 85, 361 } }, { 1, 0, 128, { 1, 362 } }, { 1, 0, 245, { 213, 443 } }, { 1, 0, 181, { 134, 439 } }, { 1, 0, 479, { 348, 362 } }, { 1, 0, 480, { 349, 362 } }, };
#else
const SpriteDataB gObjectDefinition_5D[] = { { 1, 0, 127, { 85, 362 } }, { 1, 0, 128, { 1, 363 } }, { 1, 0, 245, { 213, 444 } }, { 1, 0, 181, { 134, 440 } }, { 1, 0, 479, { 348, 363 } }, { 1, 0, 480, { 349, 363 } }, };
#endif
const SpriteDataB gObjectDefinition_11[] = { { 1, 0, 2280, { 2, 8359 } }, { 1, 0, 2272, { 5, 8359 } }, { 1, 0, 2290, { 5, 8359 } }, { 1, 0, 2048, { 5, 8358 } }, };
#ifdef EU
const SpriteDataB gObjectDefinition_6F[] = { { 1, 0, 179, { 133, 8630 } }, { 1, 0, 182, { 135, 8630 } }, { 1, 0, 183, { 136, 8630 } }, { 1, 0, 184, { 137, 8630 } }, { 1, 0, 185, { 138, 8630 } }, { 1, 0, 186, { 139, 8630 } }, { 1, 0, 186, { 139, 8630 } }, { 1, 0, 187, { 140, 8630 } }, { 1, 0, 188, { 141, 8630 } }, { 1, 0, 189, { 142, 8630 } }, { 1, 0, 190, { 143, 8630 } }, { 1, 0, 244, { 212, 8630 } }, { 1, 0, 191, { 144, 8630 } }, { 1, 0, 192, { 145, 8630 } }, { 1, 0, 193, { 146, 8630 } }, { 1, 0, 298, { 274, 8630 } }, { 1, 0, 299, { 275, 8630 } }, { 1, 0, 300, { 276, 8630 } }, { 1, 0, 301, { 277, 8630 } }, { 1, 0, 302, { 278, 8630 } }, { 1, 0, 303, { 279, 8630 } }, };
const SpriteDataB gObjectDefinition_6D[] = { { 1, 0, 178, { 5, 459 } }, { 1, 0, 178, { 0, 459 } }, { 1, 0, 178, { 12, 459 } }, { 1, 0, 178, { 12, 459 } }, { 1, 0, 178, { 0, 459 } }, { 1, 0, 178, { 0, 459 } }, };
const SpriteDataB gObjectDefinition_3B[] = { { 1, 0, 209, { 159, 334 } }, { 1, 0, 209, { 158, 334 } }, { 1, 0, 209, { 158, 334 } }, { 1, 0, 209, { 158, 334 } }, { 1, 0, 209, { 158, 334 } }, { 1, 0, 209, { 160, 334 } }, { 1, 0, 209, { 160, 334 } }, { 1, 0, 209, { 160, 334 } }, { 1, 0, 209, { 160, 334 } }, };
const SpriteDataB gObjectDefinition_75[] = { { 1, 0, 212, { 162, 335 } }, { 1, 0, 212, { 161, 335 } }, { 1, 0, 212, { 161, 335 } }, { 1, 0, 212, { 161, 335 } }, { 1, 0, 212, { 161, 335 } }, { 1, 0, 212, { 163, 335 } }, { 1, 0, 212, { 163, 335 } }, { 1, 0, 212, { 163, 335 } }, { 1, 0, 212, { 163, 335 } }, };
const SpriteDataB gObjectDefinition_76[] = { { 1, 0, 210, { 165, 336 } }, { 1, 0, 210, { 164, 336 } }, { 1, 0, 210, { 164, 336 } }, { 1, 0, 210, { 164, 336 } }, { 1, 0, 210, { 164, 336 } }, { 1, 0, 210, { 166, 336 } }, { 1, 0, 210, { 166, 336 } }, { 1, 0, 210, { 166, 336 } }, { 1, 0, 210, { 166, 336 } }, { 1, 0, 211, { 168, 336 } }, { 1, 0, 211, { 167, 336 } }, { 1, 0, 211, { 167, 336 } }, { 1, 0, 211, { 167, 336 } }, { 1, 0, 211, { 167, 336 } }, { 1, 0, 211, { 169, 336 } }, { 1, 0, 211, { 169, 336 } }, { 1, 0, 211, { 169, 336 } }, { 1, 0, 211, { 169, 336 } }, };
const SpriteDataB gObjectDefinition_3E[] = { { 1, 0, 20, { 51, 8520 } }, { 1, 0, 392, { 301, 8679 } }, { 1, 0, 392, { 301, 8679 } }, { 0, 0, 0, { 0, 0 } }, { 1, 0, 394, { 1, 8643 } }, { 1, 0, 394, { 1, 8643 } }, { 1, 0, 447, { 329, 8691 } }, { 1, 0, 447, { 329, 8691 } }, { 1, 0, 448, { 332, 8692 } }, };
#else
const SpriteDataB gObjectDefinition_6F[] = { { 1, 0, 179, { 133, 8631 } }, { 1, 0, 182, { 135, 8631 } }, { 1, 0, 183, { 136, 8631 } }, { 1, 0, 184, { 137, 8631 } }, { 1, 0, 185, { 138, 8631 } }, { 1, 0, 186, { 139, 8631 } }, { 1, 0, 186, { 139, 8631 } }, { 1, 0, 187, { 140, 8631 } }, { 1, 0, 188, { 141, 8631 } }, { 1, 0, 189, { 142, 8631 } }, { 1, 0, 190, { 143, 8631 } }, { 1, 0, 244, { 212, 8631 } }, { 1, 0, 191, { 144, 8631 } }, { 1, 0, 192, { 145, 8631 } }, { 1, 0, 193, { 146, 8631 } }, { 1, 0, 298, { 274, 8631 } }, { 1, 0, 299, { 275, 8631 } }, { 1, 0, 300, { 276, 8631 } }, { 1, 0, 301, { 277, 8631 } }, { 1, 0, 302, { 278, 8631 } }, { 1, 0, 303, { 279, 8631 } }, };
const SpriteDataB gObjectDefinition_6D[] = { { 1, 0, 178, { 5, 460 } }, { 1, 0, 178, { 0, 460 } }, { 1, 0, 178, { 12, 460 } }, { 1, 0, 178, { 12, 460 } }, { 1, 0, 178, { 0, 460 } }, { 1, 0, 178, { 0, 460 } }, };
const SpriteDataB gObjectDefinition_3B[] = { { 1, 0, 209, { 159, 335 } }, { 1, 0, 209, { 158, 335 } }, { 1, 0, 209, { 158, 335 } }, { 1, 0, 209, { 158, 335 } }, { 1, 0, 209, { 158, 335 } }, { 1, 0, 209, { 160, 335 } }, { 1, 0, 209, { 160, 335 } }, { 1, 0, 209, { 160, 335 } }, { 1, 0, 209, { 160, 335 } }, };
const SpriteDataB gObjectDefinition_75[] = { { 1, 0, 212, { 162, 336 } }, { 1, 0, 212, { 161, 336 } }, { 1, 0, 212, { 161, 336 } }, { 1, 0, 212, { 161, 336 } }, { 1, 0, 212, { 161, 336 } }, { 1, 0, 212, { 163, 336 } }, { 1, 0, 212, { 163, 336 } }, { 1, 0, 212, { 163, 336 } }, { 1, 0, 212, { 163, 336 } }, };
const SpriteDataB gObjectDefinition_76[] = { { 1, 0, 210, { 165, 337 } }, { 1, 0, 210, { 164, 337 } }, { 1, 0, 210, { 164, 337 } }, { 1, 0, 210, { 164, 337 } }, { 1, 0, 210, { 164, 337 } }, { 1, 0, 210, { 166, 337 } }, { 1, 0, 210, { 166, 337 } }, { 1, 0, 210, { 166, 337 } }, { 1, 0, 210, { 166, 337 } }, { 1, 0, 211, { 168, 337 } }, { 1, 0, 211, { 167, 337 } }, { 1, 0, 211, { 167, 337 } }, { 1, 0, 211, { 167, 337 } }, { 1, 0, 211, { 167, 337 } }, { 1, 0, 211, { 169, 337 } }, { 1, 0, 211, { 169, 337 } }, { 1, 0, 211, { 169, 337 } }, { 1, 0, 211, { 169, 337 } }, };
const SpriteDataB gObjectDefinition_3E[] = { { 1, 0, 20, { 51, 8521 } }, { 1, 0, 392, { 301, 8680 } }, { 1, 0, 392, { 301, 8680 } }, { 0, 0, 0, { 0, 0 } }, { 1, 0, 394, { 1, 8644 } }, { 1, 0, 394, { 1, 8644 } }, { 1, 0, 447, { 329, 8692 } }, { 1, 0, 447, { 329, 8692 } }, { 1, 0, 448, { 332, 8693 } }, };
#endif
const SpriteDataB gObjectDefinition_1B[] = { { 1, 0, 196, { 148, 227 } }, { 1, 0, 196, { 148, 227 } }, { 1, 0, 196, { 149, 227 } }, { 1, 0, 196, { 148, 227 } }, { 1, 0, 196, { 148, 227 } }, { 1, 0, 196, { 149, 227 } }, { 1, 0, 196, { 149, 227 } }, { 1, 0, 196, { 148, 227 } }, { 1, 0, 196, { 149, 227 } }, { 1, 0, 196, { 0, 227 } }, { 1, 0, 196, { 148, 227 } }, { 1, 0, 197, { 150, 227 } }, { 1, 0, 197, { 150, 227 } }, { 1, 0, 197, { 151, 227 } }, { 1, 0, 197, { 150, 227 } }, { 1, 0, 197, { 150, 227 } }, { 1, 0, 197, { 151, 227 } }, { 1, 0, 197, { 151, 227 } }, { 1, 0, 197, { 150, 227 } }, { 1, 0, 197, { 151, 227 } }, { 1, 0, 197, { 0, 227 } }, { 1, 0, 197, { 150, 227 } }, { 1, 0, 198, { 152, 227 } }, { 1, 0, 198, { 152, 227 } }, { 1, 0, 198, { 153, 227 } }, { 1, 0, 198, { 152, 227 } }, { 1, 0, 198, { 152, 227 } }, { 1, 0, 198, { 153, 227 } }, { 1, 0, 198, { 153, 227 } }, { 1, 0, 198, { 152, 227 } }, { 1, 0, 198, { 153, 227 } }, { 1, 0, 198, { 0, 227 } }, { 1, 0, 198, { 152, 227 } }, };
#ifdef EU
const SpriteDataB gObjectDefinition_71[] = { { 1, 0, 204, { 12, 8524 } }, { 1, 0, 204, { 12, 8524 } }, { 1, 0, 203, { 5, 8524 } }, };
const SpriteDataB gObjectDefinition_72[] = { { 1, 0, 205, { 155, 8652 } }, { 1, 0, 205, { 156, 8652 } }, { 1, 0, 205, { 157, 8652 } }, { 1, 0, 445, { 328, 8669 } }, };
const SpriteDataB gObjectDefinition_78[] = { { 1, 0, 226, { 11, 8530 } }, { 1, 0, 229, { 14, 8532 } }, { 1, 0, 230, { 182, 8531 } }, { 1, 0, 235, { 197, 8533 } }, };
const SpriteDataB gObjectDefinition_7C[] = { { 1, 0, 240, { 209, 8633 } }, { 1, 0, 241, { 210, 8634 } }, };
const SpriteDataB gObjectDefinition_46[] = { { 1, 0, 246, { 214, 444 } }, { 1, 0, 247, { 215, 444 } }, { 1, 0, 248, { 216, 444 } }, };
#else
const SpriteDataB gObjectDefinition_71[] = { { 1, 0, 204, { 12, 8525 } }, { 1, 0, 204, { 12, 8525 } }, { 1, 0, 203, { 5, 8525 } }, };
const SpriteDataB gObjectDefinition_72[] = { { 1, 0, 205, { 155, 8653 } }, { 1, 0, 205, { 156, 8653 } }, { 1, 0, 205, { 157, 8653 } }, { 1, 0, 445, { 328, 8670 } }, };
const SpriteDataB gObjectDefinition_78[] = { { 1, 0, 226, { 11, 8531 } }, { 1, 0, 229, { 14, 8533 } }, { 1, 0, 230, { 182, 8532 } }, { 1, 0, 235, { 197, 8534 } }, };
const SpriteDataB gObjectDefinition_7C[] = { { 1, 0, 240, { 209, 8634 } }, { 1, 0, 241, { 210, 8635 } }, };
const SpriteDataB gObjectDefinition_46[] = { { 1, 0, 246, { 214, 445 } }, { 1, 0, 247, { 215, 445 } }, { 1, 0, 248, { 216, 445 } }, };
#endif
const SpriteDataB gObjectDefinition_7D[] = { { 1, 1, 2280, { 2, 8359 } }, { 1, 1, 2272, { 5, 8359 } }, };
const SpriteDataB gObjectDefinition_7F[] = { { 1, 1, 304, { 280, 8447 } }, { 1, 1, 304, { 280, 8447 } }, { 1, 1, 304, { 2, 8447 } }, { 1, 1, 304, { 0, 8447 } }, { 1, 1, 304, { 1, 8447 } }, { 1, 1, 304, { 4, 8447 } }, };
#ifdef EU
const SpriteDataB gObjectDefinition_35[] = { { 1, 1, 311, { 0, 8448 } }, { 1, 1, 312, { 0, 8583 } }, { 1, 0, 497, { 0, 8694 } }, };
const SpriteDataB gObjectDefinition_5C[] = { { 1, 0, 129, { 0, 8555 } }, { 1, 0, 129, { 1, 8555 } }, };
#else
const SpriteDataB gObjectDefinition_35[] = { { 1, 1, 311, { 0, 8448 } }, { 1, 1, 312, { 0, 8584 } }, { 1, 0, 497, { 0, 8695 } }, };
const SpriteDataB gObjectDefinition_5C[] = { { 1, 0, 129, { 0, 8556 } }, { 1, 0, 129, { 1, 8556 } }, };
#endif
const SpriteDataB gObjectDefinition_84[] = { { 1, 0, 314, { 1, 8451 } }, { 1, 0, 316, { 1, 8451 } }, { 1, 0, 317, { 1, 8451 } }, { 1, 0, 318, { 1, 8451 } }, };
const SpriteDataB gObjectDefinition_85[] = { { 1, 0, 313, { 1, 8449 } }, { 1, 0, 320, { 1, 8449 } }, { 1, 0, 319, { 1, 8449 } }, { 1, 0, 321, { 1, 8449 } }, { 1, 0, 322, { 1, 8450 } }, };
const SpriteDataB gObjectDefinition_87[] = { { 1, 0, 2086, { 0, 8365 } }, { 1, 0, 2086, { 0, 8365 } }, { 1, 0, 272, { 3, 8446 } }, { 1, 0, 273, { 245, 8446 } }, { 1, 0, 0, { 0, 0 } }, { 1, 0, 274, { 240, 8446 } }, { 1, 0, 272, { 3, 8446 } }, { 1, 0, 0, { 0, 0 } }, { 1, 0, 0, { 0, 0 } }, { 1, 0, 0, { 0, 0 } }, };
#ifdef EU
const SpriteDataB gObjectDefinition_8A[] = { { 1, 0, 350, { 106, 8587 } }, { 1, 0, 351, { 104, 8588 } }, { 1, 0, 352, { 104, 8589 } }, };
const SpriteDataB gObjectDefinition_8C[] = { { 1, 1, 1025, { 4096, 9537 } }, { 1, 1, 1025, { 4096, 9537 } }, { 1, 1, 1025, { 4096, 9537 } }, };
#else
const SpriteDataB gObjectDefinition_8A[] = { { 1, 0, 350, { 106, 8588 } }, { 1, 0, 351, { 104, 8589 } }, { 1, 0, 352, { 104, 8590 } }, };
const SpriteDataB gObjectDefinition_8C[] = { { 1, 1, 1025, { 4096, 9538 } }, { 1, 1, 1025, { 4096, 9538 } }, { 1, 1, 1025, { 4096, 9538 } }, };
#endif
const SpriteDataB gObjectDefinition_91[] = { { 1, 1, 276, { 4336, 8446 } }, { 1, 1, 266, { 4336, 8446 } }, { 1, 1, 266, { 4336, 8446 } }, { 1, 1, 266, { 4336, 8446 } }, { 1, 1, 266, { 4336, 8446 } }, { 1, 1, 267, { 4336, 8446 } }, { 1, 1, 276, { 4336, 8446 } }, { 1, 0, 0, { 4096, 0 } }, };
#ifdef EU
const SpriteDataB gObjectDefinition_92[] = { { 1, 0, 158, { 106, 8593 } }, { 1, 0, 375, { 1, 265 } }, };
const SpriteDataB gObjectDefinition_95[] = { { 1, 1, 370, { 4097, 9485 } }, { 1, 1, 1025, { 0, 11585 } }, { 1, 1, 1025, { 0, 11585 } }, { 1, 1, 371, { 4096, 8462 } }, { 1, 1, 371, { 4097, 8462 } }, { 1, 1, 371, { 4098, 8462 } }, { 1, 1, 371, { 4099, 8462 } }, { 1, 1, 371, { 4100, 8462 } }, { 1, 1, 370, { 4097, 9485 } }, { 1, 1, 370, { 4097, 9485 } }, { 1, 0, 1025, { 4118, 9218 } }, };
const SpriteDataB gObjectDefinition_96[] = { { 1, 1, 1025, { 4096, 9537 } }, { 1, 1, 521, { 0, 9539 } }, { 1, 1, 1025, { 4096, 9537 } }, { 1, 1, 1025, { 4096, 9537 } }, { 1, 1, 1025, { 4096, 9537 } }, { 1, 1, 1025, { 4096, 9537 } }, { 1, 1, 1025, { 4096, 9537 } }, { 1, 1, 2082, { 0, 9538 } }, };
const SpriteDataB gObjectDefinition_97[] = { { 1, 0, 236, { 0, 9457 } }, { 1, 0, 1025, { 0, 9537 } }, { 1, 0, 236, { 0, 9457 } }, { 1, 0, 236, { 0, 9457 } }, { 1, 0, 236, { 0, 9457 } }, { 1, 0, 1025, { 0, 9537 } }, };
#else
const SpriteDataB gObjectDefinition_92[] = { { 1, 0, 158, { 106, 8594 } }, { 1, 0, 375, { 1, 265 } }, };
const SpriteDataB gObjectDefinition_95[] = { { 1, 1, 370, { 4097, 9485 } }, { 1, 1, 1025, { 0, 11586 } }, { 1, 1, 1025, { 0, 11586 } }, { 1, 1, 371, { 4096, 8462 } }, { 1, 1, 371, { 4097, 8462 } }, { 1, 1, 371, { 4098, 8462 } }, { 1, 1, 371, { 4099, 8462 } }, { 1, 1, 371, { 4100, 8462 } }, { 1, 1, 370, { 4097, 9485 } }, { 1, 1, 370, { 4097, 9485 } }, { 1, 0, 1025, { 4118, 9218 } }, };
const SpriteDataB gObjectDefinition_96[] = { { 1, 1, 1025, { 4096, 9538 } }, { 1, 1, 522, { 0, 9540 } }, { 1, 1, 1025, { 4096, 9538 } }, { 1, 1, 1025, { 4096, 9538 } }, { 1, 1, 1025, { 4096, 9538 } }, { 1, 1, 1025, { 4096, 9538 } }, { 1, 1, 1025, { 4096, 9538 } }, { 1, 1, 2082, { 0, 9539 } }, };
const SpriteDataB gObjectDefinition_97[] = { { 1, 0, 236, { 0, 9457 } }, { 1, 0, 1025, { 0, 9538 } }, { 1, 0, 236, { 0, 9457 } }, { 1, 0, 236, { 0, 9457 } }, { 1, 0, 236, { 0, 9457 } }, { 1, 0, 1025, { 0, 9538 } }, };
#endif
const SpriteDataB gObjectDefinition_33[] = { { 1, 0, 54, { 1, 8389 } }, { 1, 0, 383, { 1, 8389 } }, { 1, 0, 384, { 1, 8389 } }, { 1, 0, 385, { 1, 8389 } }, { 1, 0, 386, { 1, 8389 } }, { 1, 0, 414, { 1, 8389 } }, };
#ifdef EU
const SpriteDataB gObjectDefinition_65[] = { { 1, 0, 249, { 217, 8637 } }, { 1, 0, 250, { 217, 8637 } }, { 1, 0, 251, { 217, 8637 } }, };
const SpriteDataB gObjectDefinition_22[] = { { 1, 4, 381, { 108, 8596 } }, { 1, 0, 390, { 107, 8597 } }, { 1, 0, 390, { 1, 8467 } }, { 1, 0, 0, { 0, 0 } }, };
#else
const SpriteDataB gObjectDefinition_65[] = { { 1, 0, 249, { 217, 8638 } }, { 1, 0, 250, { 217, 8638 } }, { 1, 0, 251, { 217, 8638 } }, };
const SpriteDataB gObjectDefinition_22[] = { { 1, 4, 381, { 108, 8597 } }, { 1, 0, 390, { 107, 8598 } }, { 1, 0, 390, { 1, 8467 } }, { 1, 0, 0, { 0, 0 } }, };
#endif
const SpriteDataB gObjectDefinition_54[] = { { 1, 0, 118, { 1, 211 } }, { 1, 0, 391, { 1, 276 } }, };
#ifdef EU
const SpriteDataB gObjectDefinition_28[] = { { 1, 0, 355, { 296, 8656 } }, { 1, 0, 355, { 296, 8656 } }, { 1, 0, 355, { 296, 8656 } }, { 1, 0, 355, { 296, 8656 } }, { 1, 0, 355, { 296, 8656 } }, { 1, 0, 356, { 298, 8657 } }, { 1, 0, 357, { 297, 8657 } }, { 1, 0, 358, { 297, 8657 } }, { 1, 0, 359, { 297, 8657 } }, { 1, 0, 360, { 297, 8657 } }, { 1, 0, 361, { 297, 8657 } }, { 1, 0, 362, { 297, 8657 } }, { 1, 0, 363, { 297, 8657 } }, { 1, 0, 364, { 297, 8657 } }, { 1, 0, 365, { 298, 8657 } }, { 1, 0, 354, { 15, 8654 } }, };
const SpriteDataB gObjectDefinition_A0[] = { { 1, 0, 433, { 0, 8481 } }, { 1, 0, 434, { 0, 8481 } }, { 1, 0, 433, { 0, 8481 } }, { 1, 0, 434, { 0, 8481 } }, };
const SpriteDataB gObjectDefinition_A4[] = { { 1, 0, 438, { 324, 8638 } }, { 1, 0, 439, { 325, 8639 } }, { 1, 0, 440, { 326, 8640 } }, { 1, 0, 441, { 327, 8641 } }, };
#else
const SpriteDataB gObjectDefinition_28[] = { { 1, 0, 355, { 296, 8657 } }, { 1, 0, 355, { 296, 8657 } }, { 1, 0, 355, { 296, 8657 } }, { 1, 0, 355, { 296, 8657 } }, { 1, 0, 355, { 296, 8657 } }, { 1, 0, 356, { 298, 8658 } }, { 1, 0, 357, { 297, 8658 } }, { 1, 0, 358, { 297, 8658 } }, { 1, 0, 359, { 297, 8658 } }, { 1, 0, 360, { 297, 8658 } }, { 1, 0, 361, { 297, 8658 } }, { 1, 0, 362, { 297, 8658 } }, { 1, 0, 363, { 297, 8658 } }, { 1, 0, 364, { 297, 8658 } }, { 1, 0, 365, { 298, 8658 } }, { 1, 0, 354, { 15, 8655 } }, };
const SpriteDataB gObjectDefinition_A0[] = { { 1, 0, 433, { 0, 8482 } }, { 1, 0, 434, { 0, 8482 } }, { 1, 0, 433, { 0, 8482 } }, { 1, 0, 434, { 0, 8482 } }, };
const SpriteDataB gObjectDefinition_A4[] = { { 1, 0, 438, { 324, 8639 } }, { 1, 0, 439, { 325, 8640 } }, { 1, 0, 440, { 326, 8641 } }, { 1, 0, 441, { 327, 8642 } }, };
#endif
const SpriteDataB gObjectDefinition_A9[] = { { 1, 0, 2202, { 3, 8354 } }, { 1, 0, 133, { 1, 8356 } }, { 1, 0, 2144, { 3, 8354 } }, };
#ifdef EU
const SpriteDataB gObjectDefinition_AA[] = { { 1, 0, 395, { 17, 8644 } }, { 1, 0, 396, { 17, 8644 } }, { 1, 0, 397, { 17, 8644 } }, };
const SpriteDataB gObjectDefinition_19[] = { { 1, 0, 41, { 47, 345 } }, { 1, 0, 466, { 340, 8537 } }, { 1, 0, 467, { 341, 8537 } }, { 1, 0, 468, { 342, 8537 } }, { 1, 0, 469, { 343, 8537 } }, { 1, 0, 470, { 344, 8537 } }, { 1, 0, 471, { 345, 8537 } }, { 1, 0, 472, { 346, 8537 } }, { 1, 0, 473, { 347, 8537 } }, };
#else
const SpriteDataB gObjectDefinition_AA[] = { { 1, 0, 395, { 17, 8645 } }, { 1, 0, 396, { 17, 8645 } }, { 1, 0, 397, { 17, 8645 } }, };
const SpriteDataB gObjectDefinition_19[] = { { 1, 0, 41, { 47, 346 } }, { 1, 0, 466, { 340, 8538 } }, { 1, 0, 467, { 341, 8538 } }, { 1, 0, 468, { 342, 8538 } }, { 1, 0, 469, { 343, 8538 } }, { 1, 0, 470, { 344, 8538 } }, { 1, 0, 471, { 345, 8538 } }, { 1, 0, 472, { 346, 8538 } }, { 1, 0, 473, { 347, 8538 } }, };
#endif
const SpriteDataB gObjectDefinition_AD[] = { { 1, 0, 474, { 385, 8192 } }, { 1, 0, 475, { 0, 8192 } }, { 1, 0, 476, { 1, 8192 } }, { 1, 0, 477, { 2, 8192 } }, };
#ifdef EU
const SpriteDataB gObjectDefinition_5F[] = { { 1, 0, 130, { 88, 8556 } }, { 1, 4, 483, { 351, 8671 } }, };
const SpriteDataB gObjectDefinition_B4[] = { { 1, 0, 495, { 358, 510 } }, { 1, 0, 495, { 357, 510 } }, { 1, 0, 495, { 358, 510 } }, { 1, 0, 495, { 356, 510 } }, };
const SpriteDataB gObjectDefinition_BD[] = { { 1, 0, 511, { 359, 510 } }, { 1, 0, 512, { 360, 510 } }, { 1, 0, 513, { 359, 510 } }, { 1, 0, 513, { 360, 510 } }, { 1, 0, 514, { 361, 510 } }, };
#else
const SpriteDataB gObjectDefinition_5F[] = { { 1, 0, 130, { 88, 8557 } }, { 1, 4, 483, { 351, 8672 } }, };
const SpriteDataB gObjectDefinition_B4[] = { { 1, 0, 495, { 358, 511 } }, { 1, 0, 495, { 357, 511 } }, { 1, 0, 495, { 358, 511 } }, { 1, 0, 495, { 356, 511 } }, };
const SpriteDataB gObjectDefinition_BD[] = { { 1, 0, 511, { 359, 511 } }, { 1, 0, 512, { 360, 511 } }, { 1, 0, 513, { 359, 511 } }, { 1, 0, 513, { 360, 511 } }, { 1, 0, 514, { 361, 511 } }, };
#endif
const SpriteDataB gObjectDefinition_45[] = { { 1, 0, 2048, { 4, 8396 } }, { 1, 0, 2105, { 4, 8396 } }, };
#ifdef EU
const SpriteDataB gObjectDefinition_C0[] = { { 1, 0, 2246, { 0, 8514 } }, { 1, 0, 520, { 1, 8515 } }, };
#else
const SpriteDataB gObjectDefinition_C0[] = { { 1, 0, 2246, { 0, 8515 } }, { 1, 0, 521, { 1, 8516 } }, };
#endif
const SpriteDataB gObjectDefinition_B3[] = { { 1, 0, 494, { 0, 8387 } }, { 1, 0, 2720, { 0, 8387 } }, };
#ifndef EU
const SpriteDataB gObjectDefinition_B6[] = { { 1, 0, 502, { 363, 8479 } }, { 1, 0, 519, { 363, 8480 } }, };
#endif
#ifdef EU
const SpriteDataB gObjectDefinition_0[] = { { 1, 0, 0, { 0, 322 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 0, 0, 0, { 0, 0 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 0, 0, 0, { 0, 0 } }, { 0, 0, 0, { 0, 0 } }, { 0, 0, 0, { 0, 0 } }, { 0, 0, 0, { 0, 0 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 0, 0, 0, { 0, 0 } }, { 0, 0, 0, { 0, 0 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 4, 8513 } }, { 1, 0, 1025, { 4, 8513 } }, { 1, 0, 1025, { 0, 9537 } }, { 1, 0, 1025, { 385, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 520, { 4, 8515 } }, { 1, 0, 1025, { 184, 9537 } }, { 1, 0, 1025, { 185, 9537 } }, { 1, 0, 1025, { 184, 9537 } }, { 1, 0, 1025, { 184, 9537 } }, { 1, 0, 1025, { 187, 9537 } }, { 1, 0, 1025, { 183, 9537 } }, { 1, 0, 1025, { 184, 9537 } }, { 1, 0, 1025, { 186, 9537 } }, { 1, 0, 520, { 4, 9539 } }, { 1, 0, 520, { 0, 9539 } }, { 1, 0, 520, { 4, 9539 } }, { 1, 0, 520, { 1, 9539 } }, { 1, 0, 2057, { 2, 9538 } }, { 1, 0, 2057, { 1, 9538 } }, { 1, 0, 2057, { 0, 9538 } }, { 1, 0, 519, { 2, 9539 } }, { 1, 0, 519, { 1, 9539 } }, { 1, 0, 519, { 0, 9539 } }, { 0, 0, 0, { 0, 0 } }, { 1, 0, 522, { 22, 9539 } }, { 1, 0, 2082, { 0, 322 } }, { 1, 0, 2246, { 0, 11586 } }, { 1, 0, 2246, { 0, 11586 } }, { 1, 0, 2055, { 0, 11586 } }, { 1, 0, 2073, { 4, 11586 } }, { 1, 0, 1025, { 0, 8513 } }, { 1, 0, 1025, { 4096, 9537 } }, { 1, 0, 521, { 0, 9539 } }, { 1, 0, 1025, { 0, 321 } }, { 1, 0, 1025, { 0, 321 } }, { 1, 0, 1025, { 0, 321 } }, { 1, 0, 1025, { 2, 321 } }, { 1, 0, 524, { 88, 323 } }, { 1, 0, 524, { 88, 323 } }, { 1, 0, 524, { 88, 323 } }, { 1, 0, 524, { 88, 323 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 1025, { 0, 1345 } }, { 1, 0, 523, { 1, 9539 } }, { 1, 0, 523, { 1, 9539 } }, { 1, 0, 523, { 1, 9539 } }, { 1, 0, 1025, { 183, 9537 } }, { 1, 0, 1025, { 190, 9537 } }, { 1, 0, 1025, { 188, 9537 } }, };
#else
const SpriteDataB gObjectDefinition_0[] = { { 1, 0, 0, { 0, 323 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 0, 0, 0, { 0, 0 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 0, 0, 0, { 0, 0 } }, { 0, 0, 0, { 0, 0 } }, { 0, 0, 0, { 0, 0 } }, { 0, 0, 0, { 0, 0 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 0, 0, 0, { 0, 0 } }, { 0, 0, 0, { 0, 0 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 4, 8514 } }, { 1, 0, 1025, { 4, 8514 } }, { 1, 0, 1025, { 0, 9538 } }, { 1, 0, 1025, { 385, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 521, { 4, 8516 } }, { 1, 0, 1025, { 184, 9538 } }, { 1, 0, 1025, { 185, 9538 } }, { 1, 0, 1025, { 184, 9538 } }, { 1, 0, 1025, { 184, 9538 } }, { 1, 0, 1025, { 187, 9538 } }, { 1, 0, 1025, { 183, 9538 } }, { 1, 0, 1025, { 184, 9538 } }, { 1, 0, 1025, { 186, 9538 } }, { 1, 0, 521, { 4, 9540 } }, { 1, 0, 521, { 0, 9540 } }, { 1, 0, 521, { 4, 9540 } }, { 1, 0, 521, { 1, 9540 } }, { 1, 0, 2057, { 2, 9539 } }, { 1, 0, 2057, { 1, 9539 } }, { 1, 0, 2057, { 0, 9539 } }, { 1, 0, 520, { 2, 9540 } }, { 1, 0, 520, { 1, 9540 } }, { 1, 0, 520, { 0, 9540 } }, { 0, 0, 0, { 0, 0 } }, { 1, 0, 523, { 22, 9540 } }, { 1, 0, 2082, { 0, 323 } }, { 1, 0, 2246, { 0, 11587 } }, { 1, 0, 2246, { 0, 11587 } }, { 1, 0, 2055, { 0, 11587 } }, { 1, 0, 2073, { 4, 11587 } }, { 1, 0, 1025, { 0, 8514 } }, { 1, 0, 1025, { 4096, 9538 } }, { 1, 0, 522, { 0, 9540 } }, { 1, 0, 1025, { 0, 322 } }, { 1, 0, 1025, { 0, 322 } }, { 1, 0, 1025, { 0, 322 } }, { 1, 0, 1025, { 2, 322 } }, { 1, 0, 525, { 88, 324 } }, { 1, 0, 525, { 88, 324 } }, { 1, 0, 525, { 88, 324 } }, { 1, 0, 525, { 88, 324 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 1025, { 0, 1346 } }, { 1, 0, 524, { 1, 9540 } }, { 1, 0, 524, { 1, 9540 } }, { 1, 0, 524, { 1, 9540 } }, { 1, 0, 1025, { 183, 9538 } }, { 1, 0, 1025, { 190, 9538 } }, { 1, 0, 1025, { 188, 9538 } }, };
#endif
#define MULTI_FORM(spriteData_ptr) { 2, 0, 0, {.spriteData=spriteData_ptr} }
const SpriteDataB gObjectDefinitions[] = {
MULTI_FORM(gObjectDefinition_0),
{ 1, 0, 2144, { 0, 8360 } },
MULTI_FORM(gObjectDefinition_0),
{ 1, 0, 0, { 0, 0 } },
{ 1, 0, 0, { 0, 10 } },
{ 1, 0, 2288, { 1, 8359 } },
{ 1, 0, 0, { 0, 8203 } },
MULTI_FORM(gObjectDefinition_7),
#ifdef EU
{ 1, 0, 0, { 10, 476 } },
#else
{ 1, 0, 0, { 10, 477 } },
#endif
{ 1, 0, 0, { 1, 202 } },
{ 0, 0, 0, { 0, 0 } },
MULTI_FORM(gObjectDefinition_0),
{ 1, 0, 25, { 1, 184 } },
{ 1, 0, 9, { 3, 172 } },
{ 0, 0, 0, { 0, 0 } },
MULTI_FORM(gObjectDefinition_F),
{ 1, 0, 2149, { 171, 8359 } },
MULTI_FORM(gObjectDefinition_11),
#ifdef EU
{ 1, 0, 346, { 14, 8655 } },
#else
{ 1, 0, 346, { 14, 8656 } },
#endif
{ 1, 0, 121, { 0, 170 } },
{ 1, 0, 13, { 2, 8359 } },
{ 0, 0, 0, { 0, 0 } },
#ifdef EU
{ 1, 0, 260, { 1, 466 } },
#else
{ 1, 0, 260, { 1, 467 } },
#endif
{ 1, 0, 2137, { 3, 8354 } },
{ 1, 1, 347, { 1, 8453 } },
MULTI_FORM(gObjectDefinition_19),
{ 0, 0, 0, { 0, 0 } },
MULTI_FORM(gObjectDefinition_1B),
MULTI_FORM(gObjectDefinition_1C),
#ifdef EU
{ 1, 0, 42, { 47, 347 } },
#else
{ 1, 0, 42, { 47, 348 } },
#endif
{ 1, 0, 2129, { 0, 8375 } },
{ 1, 1, 0, { 4096, 9383 } },
{ 1, 0, 2144, { 0, 8354 } },
{ 1, 0, 2048, { 4, 8358 } },
MULTI_FORM(gObjectDefinition_22),
{ 1, 0, 258, { 0, 8445 } },
MULTI_FORM(gObjectDefinition_24),
MULTI_FORM(gObjectDefinition_25),
MULTI_FORM(gObjectDefinition_26),
{ 1, 0, 0, { 5, 8378 } },
MULTI_FORM(gObjectDefinition_28),
{ 1, 0, 435, { 1, 8391 } },
{ 1, 0, 2086, { 0, 173 } },
{ 1, 0, 13, { 46, 8359 } },
MULTI_FORM(gObjectDefinition_2C),
{ 1, 0, 2202, { 3, 162 } },
{ 1, 1, 37, { 5, 193 } },
{ 1, 0, 0, { 0, 0 } },
#ifdef EU
{ 1, 0, 2082, { 0, 322 } },
{ 1, 0, 402, { 310, 8665 } },
#else
{ 1, 0, 2082, { 0, 323 } },
{ 1, 0, 402, { 310, 8666 } },
#endif
{ 1, 0, 53, { 1, 8388 } },
MULTI_FORM(gObjectDefinition_33),
{ 1, 0, 55, { 1, 198 } },
MULTI_FORM(gObjectDefinition_35),
#ifdef EU
{ 1, 0, 27, { 0, 457 } },
#else
{ 1, 0, 27, { 0, 458 } },
#endif
{ 0, 0, 0, { 0, 0 } },
{ 1, 4, 1025, { 1, 8319 } },
{ 1, 0, 65, { 4, 203 } },
{ 0, 0, 0, { 0, 0 } },
MULTI_FORM(gObjectDefinition_3B),
{ 1, 0, 1026, { 22, 1 } },
{ 0, 0, 0, { 0, 0 } },
MULTI_FORM(gObjectDefinition_3E),
#ifdef EU
{ 1, 0, 6, { 52, 337 } },
#else
{ 1, 0, 6, { 52, 338 } },
#endif
MULTI_FORM(gObjectDefinition_0),
{ 1, 0, 177, { 4096, 9383 } },
{ 1, 0, 2086, { 0, 173 } },
{ 1, 0, 0, { 0, 162 } },
{ 1, 0, 400, { 0, 8470 } },
MULTI_FORM(gObjectDefinition_45),
MULTI_FORM(gObjectDefinition_46),
#ifdef EU
{ 1, 0, 1025, { 4096, 9537 } },
{ 1, 0, 2048, { 0, 8516 } },
#else
{ 1, 0, 1025, { 4096, 9538 } },
{ 1, 0, 2048, { 0, 8517 } },
#endif
MULTI_FORM(gObjectDefinition_49),
#ifdef EU
{ 1, 0, 70, { 13, 329 } },
#else
{ 1, 0, 70, { 13, 330 } },
#endif
{ 1, 0, 3, { 28, 161 } },
MULTI_FORM(gObjectDefinition_4C),
MULTI_FORM(gObjectDefinition_4D),
#ifdef EU
{ 1, 0, 93, { 1, 8546 } },
#else
{ 1, 0, 93, { 1, 8547 } },
#endif
MULTI_FORM(gObjectDefinition_4F),
{ 1, 0, 116, { 154, 210 } },
#ifdef EU
{ 1, 0, 117, { 114, 8672 } },
#else
{ 1, 0, 117, { 114, 8673 } },
#endif
{ 1, 1, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
MULTI_FORM(gObjectDefinition_54),
{ 1, 0, 1025, { 115, 8321 } },
MULTI_FORM(gObjectDefinition_56),
#ifdef EU
{ 1, 0, 120, { 5, 330 } },
#else
{ 1, 0, 120, { 5, 331 } },
#endif
{ 1, 0, 1026, { 132, 8326 } },
MULTI_FORM(gObjectDefinition_59),
MULTI_FORM(gObjectDefinition_5A),
#ifdef EU
{ 1, 0, 125, { 86, 359 } },
#else
{ 1, 0, 125, { 86, 360 } },
#endif
MULTI_FORM(gObjectDefinition_5C),
MULTI_FORM(gObjectDefinition_5D),
{ 1, 0, 486, { 3, 9347 } },
MULTI_FORM(gObjectDefinition_5F),
#ifdef EU
{ 1, 1, 454, { 0, 8598 } },
#else
{ 1, 1, 454, { 0, 8599 } },
#endif
MULTI_FORM(gObjectDefinition_61),
#ifdef EU
{ 1, 0, 132, { 121, 8534 } },
#else
{ 1, 0, 132, { 121, 8535 } },
#endif
{ 0, 0, 0, { 0, 0 } },
MULTI_FORM(gObjectDefinition_64),
MULTI_FORM(gObjectDefinition_65),
{ 1, 0, 134, { 5, 215 } },
MULTI_FORM(gObjectDefinition_67),
MULTI_FORM(gObjectDefinition_68),
{ 0, 0, 0, { 0, 0 } },
MULTI_FORM(gObjectDefinition_6A),
MULTI_FORM(gObjectDefinition_6B),
#ifdef EU
{ 1, 0, 0, { 10, 476 } },
#else
{ 1, 0, 0, { 10, 477 } },
#endif
MULTI_FORM(gObjectDefinition_6D),
{ 0, 0, 0, { 0, 0 } },
MULTI_FORM(gObjectDefinition_6F),
{ 1, 0, 2181, { 0, 167 } },
MULTI_FORM(gObjectDefinition_71),
MULTI_FORM(gObjectDefinition_72),
#ifdef EU
{ 1, 0, 213, { 2, 485 } },
{ 1, 0, 221, { 4, 461 } },
#else
{ 1, 0, 213, { 2, 486 } },
{ 1, 0, 221, { 4, 462 } },
#endif
MULTI_FORM(gObjectDefinition_75),
MULTI_FORM(gObjectDefinition_76),
{ 1, 0, 1025, { 47, 138 } },
MULTI_FORM(gObjectDefinition_78),
{ 1, 0, 0, { 1, 8328 } },
#ifdef EU
{ 1, 0, 234, { 1, 450 } },
#else
{ 1, 0, 234, { 1, 451 } },
#endif
{ 1, 0, 238, { 1, 8435 } },
MULTI_FORM(gObjectDefinition_7C),
MULTI_FORM(gObjectDefinition_7D),
{ 1, 1, 256, { 5, 248 } },
MULTI_FORM(gObjectDefinition_7F),
#ifdef EU
{ 1, 1, 306, { 86, 8581 } },
{ 1, 1, 307, { 86, 8582 } },
#else
{ 1, 1, 306, { 86, 8582 } },
{ 1, 1, 307, { 86, 8583 } },
#endif
{ 1, 0, 1028, { 287, 132 } },
{ 1, 0, 239, { 1, 8436 } },
MULTI_FORM(gObjectDefinition_84),
MULTI_FORM(gObjectDefinition_85),
{ 1, 0, 315, { 289, 8452 } },
MULTI_FORM(gObjectDefinition_87),
{ 1, 0, 1028, { 295, 8325 } },
#ifdef EU
{ 1, 0, 344, { 218, 8676 } },
#else
{ 1, 0, 344, { 218, 8677 } },
#endif
MULTI_FORM(gObjectDefinition_8A),
#ifdef EU
{ 1, 0, 349, { 87, 8586 } },
#else
{ 1, 0, 349, { 87, 8587 } },
#endif
MULTI_FORM(gObjectDefinition_8C),
{ 0, 0, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
#ifdef EU
{ 1, 0, 373, { 1, 8663 } },
{ 1, 0, 376, { 1, 9688 } },
#else
{ 1, 0, 373, { 1, 8664 } },
{ 1, 0, 376, { 1, 9689 } },
#endif
MULTI_FORM(gObjectDefinition_91),
MULTI_FORM(gObjectDefinition_92),
{ 1, 0, 377, { 0, 8458 } },
{ 1, 0, 389, { 5, 8466 } },
MULTI_FORM(gObjectDefinition_95),
MULTI_FORM(gObjectDefinition_96),
MULTI_FORM(gObjectDefinition_97),
{ 0, 0, 0, { 0, 0 } },
{ 1, 0, 2251, { 1, 8465 } },
#ifdef EU
{ 1, 0, 403, { 311, 8681 } },
{ 1, 0, 407, { 319, 8487 } },
{ 1, 0, 413, { 10, 8523 } },
{ 1, 0, 19, { 6, 8666 } },
{ 1, 0, 424, { 4, 8683 } },
{ 1, 0, 425, { 0, 8480 } },
#else
{ 1, 0, 403, { 311, 8682 } },
{ 1, 0, 407, { 319, 8488 } },
{ 1, 0, 413, { 10, 8524 } },
{ 1, 0, 19, { 6, 8667 } },
{ 1, 0, 424, { 4, 8684 } },
{ 1, 0, 425, { 0, 8481 } },
#endif
MULTI_FORM(gObjectDefinition_A0),
#ifdef EU
{ 1, 0, 436, { 323, 8667 } },
{ 1, 0, 2560, { 0, 9541 } },
{ 1, 0, 437, { 20, 8685 } },
#else
{ 1, 0, 436, { 323, 8668 } },
{ 1, 0, 2560, { 0, 9542 } },
{ 1, 0, 437, { 20, 8686 } },
#endif
MULTI_FORM(gObjectDefinition_A4),
{ 0, 0, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
#ifdef EU
{ 1, 0, 443, { 2, 8491 } },
#else
{ 1, 0, 443, { 2, 8492 } },
#endif
MULTI_FORM(gObjectDefinition_0),
MULTI_FORM(gObjectDefinition_A9),
MULTI_FORM(gObjectDefinition_AA),
#ifdef EU
{ 1, 0, 461, { 1, 8496 } },
#else
{ 1, 0, 461, { 1, 8497 } },
#endif
MULTI_FORM(gObjectDefinition_0),
MULTI_FORM(gObjectDefinition_AD),
#ifdef EU
{ 1, 0, 12, { 5, 8670 } },
#else
{ 1, 0, 12, { 5, 8671 } },
#endif
{ 1, 0, 416, { 320, 8474 } },
#ifdef EU
{ 1, 0, 481, { 4, 501 } },
{ 1, 0, 482, { 350, 8500 } },
{ 1, 0, 484, { 3, 8501 } },
#else
{ 1, 0, 481, { 4, 502 } },
{ 1, 0, 482, { 350, 8501 } },
{ 1, 0, 484, { 3, 8502 } },
#endif
MULTI_FORM(gObjectDefinition_B3),
MULTI_FORM(gObjectDefinition_B4),
{ 0, 0, 0, { 0, 0 } },
#ifdef EU
{ 1, 0, 502, { 320, 8479 } },
#else
MULTI_FORM(gObjectDefinition_B6),
#endif
{ 0, 0, 0, { 0, 0 } },
#ifdef EU
{ 1, 0, 503, { 1, 8684 } },
#else
{ 1, 0, 503, { 1, 8685 } },
#endif
{ 0, 0, 0, { 0, 0 } },
{ 0, 0, 0, { 0, 0 } },
#ifdef EU
{ 1, 4, 505, { 4, 8645 } },
#else
{ 1, 4, 505, { 4, 8646 } },
#endif
{ 1, 0, 507, { 0, 0 } },
MULTI_FORM(gObjectDefinition_BD),
#ifdef EU
{ 1, 0, 515, { 5, 9533 } },
#else
{ 1, 0, 515, { 5, 9534 } },
#endif
{ 1, 0, 2303, { 0, 8192 } },
MULTI_FORM(gObjectDefinition_C0),
{ 1, 0, 1025, { 4118, 9218 } },
};
// clang-format on
+39
View File
@@ -0,0 +1,39 @@
#include "entity.h"
#include "definitions.h"
// clang-format off
#define MULTI_FORM(index, unk) { 0xff, index, unk, 0, 0, 0 }
const SpriteDataC gPlayerItemDefinitions[] = {
{ 0, 0, 16384, 1, SPRITE_0, 0 }, // DeleteEntity
MULTI_FORM(0, 1), // PlayerItemSword
{ 1, 12, 5644, 169, SPRITE_166, 192 }, // PlayerItemBomb
{ 0, 3, 5130, 118, SPRITE_22, 0 }, // PlayerItem3
{ 1, 3, 5391, 171, SPRITE_21, 203 }, // PlayerItemBow
MULTI_FORM(2, 13), // PlayerItemShield
{ 0, 0, 1792, 1, SPRITE_18, 0 }, // PlayerItemLantern
MULTI_FORM(0, 1), // PlayerItemNulled
{ 1, 0, 16384, 1, SPRITE_ITEMGUSTJAR, 0 }, // PlayerItemGustJar
{ 4, 0, 16384, 1, SPRITE_20, 0 }, // PlayerItemPacciCane
{ 0, 0, 16384, 1, SPRITE_0, 0 }, // DeleteEntity
{ 0, 0, 16384, 1, SPRITE_0, 0 }, // DeleteEntity
MULTI_FORM(1, 1), // PlayerItemC
MULTI_FORM(0, 1), // PlayerItemCellOverwriteSet
{ 0, 0, 7936, 1, SPRITE_19, 0 }, // PlayerItemSwordSpin
{ 0, 4, 8204, 152, SPRITE_166, 0x8000 }, // PlayerItemSwordBeam
{ 0, 0, 4864, 109, SPRITE_0, 0 }, // PlayerItem10
{ 3, 0, 7183, 150, SPRITE_166, 0 }, // PlayerItem11
{ 4, 0, 7424, 1, SPRITE_166, 57 }, // PlayerItem12
{ 0, 3, 5900, 1, SPRITE_POT, 0 }, // PlayerItem13
{ 1, 4, 8460, 152, SPRITE_OBJECT43, 0x8000 }, // PlayerItem14
{ 1, 4, 8204, 152, SPRITE_166, 0x8000 }, // PlayerItem15
{ 1, 4, 1036, 151, SPRITE_14, 0 }, // PlayerItemSwordBeam
{ 1, 4, 1036, 151, SPRITE_14, 0 } // PlayerItemNulled2
};
const SpriteDataC gPlayerItemDefinition_0[] = { { 1, 4, 1036, 151, SPRITE_14, 0 }, { 2, 4, 1292, 151, SPRITE_15, 0 }, { 0, 4, 1292, 151, SPRITE_15, 0 }, { 1, 4, 1292, 151, SPRITE_15, 0 }, { 4, 4, 1292, 151, SPRITE_15, 0 }, { 4, 4, 1548, 151, SPRITE_16, 0 }, };
const SpriteDataC gPlayerItemDefinition_1[] = { { 1, 4, 4108, 151, SPRITE_14, 0 }, { 2, 4, 4364, 151, SPRITE_15, 0 }, { 0, 4, 4364, 151, SPRITE_15, 0 }, { 1, 4, 4364, 151, SPRITE_15, 0 }, { 4, 4, 4364, 151, SPRITE_15, 0 }, { 4, 4, 4620, 151, SPRITE_16, 0 }, };
const SpriteDataC gPlayerItemDefinition_2[] = { { 1, 0, 524, 153, SPRITE_17, 0 }, { 1, 0, 780, 153, SPRITE_17, 0 }, };
const SpriteDataC* const gUnk_08126ED8[] = {gPlayerItemDefinition_0, gPlayerItemDefinition_1, gPlayerItemDefinition_2, };
// clang-format on