gyorg: extract rodata

This commit is contained in:
Ibot02 2022-01-02 11:47:00 +01:00
parent 23736e63a9
commit 3f790d80b4
13 changed files with 233 additions and 497 deletions

View File

@ -28602,177 +28602,6 @@
"start": 858702,
"size": 22
},
{
"path": "gyorgFemale/gUnk_080D1A84.bin",
"start": 858756,
"size": 16
},
{
"path": "gyorgFemale/gUnk_080D1A94_JP.bin",
"variants": [
"JP"
],
"starts": {
"JP": 858164
},
"size": 24
},
{
"path": "gyorgFemale/gUnk_080D1A94_1_DEMO_JP.bin",
"variants": [
"DEMO_JP"
],
"starts": {
"DEMO_JP": 856792
},
"size": 24
},
{
"path": "gyorgFemale/gUnk_080D1A94_2_EU.bin",
"variants": [
"EU"
],
"starts": {
"EU": 856512
},
"size": 24
},
{
"path": "gyorgFemale/gUnk_080D1A94_3_USA-DEMO_USA.bin",
"variants": [
"USA",
"DEMO_USA"
],
"start": 858772,
"size": 24
},
{
"path": "gyorgFemale/gUnk_080D1AAC_JP.bin",
"variants": [
"JP"
],
"starts": {
"JP": 858188
},
"size": 24
},
{
"path": "gyorgFemale/gUnk_080D1AAC_1_DEMO_JP.bin",
"variants": [
"DEMO_JP"
],
"starts": {
"DEMO_JP": 856816
},
"size": 24
},
{
"path": "gyorgFemale/gUnk_080D1AAC_2_EU.bin",
"variants": [
"EU"
],
"starts": {
"EU": 856536
},
"size": 24
},
{
"path": "gyorgFemale/gUnk_080D1AAC_3_USA-DEMO_USA.bin",
"variants": [
"USA",
"DEMO_USA"
],
"start": 858796,
"size": 24
},
{
"path": "gyorgFemale/gUnk_080D1AC4_JP.bin",
"variants": [
"JP"
],
"starts": {
"JP": 858212
},
"size": 24
},
{
"path": "gyorgFemale/gUnk_080D1AC4_1_DEMO_JP.bin",
"variants": [
"DEMO_JP"
],
"starts": {
"DEMO_JP": 856840
},
"size": 24
},
{
"path": "gyorgFemale/gUnk_080D1AC4_2_EU.bin",
"variants": [
"EU"
],
"starts": {
"EU": 856560
},
"size": 24
},
{
"path": "gyorgFemale/gUnk_080D1AC4_3_USA-DEMO_USA.bin",
"variants": [
"USA",
"DEMO_USA"
],
"start": 858820,
"size": 24
},
{
"path": "gyorgFemale/gUnk_080D1ADC_JP.bin",
"variants": [
"JP"
],
"starts": {
"JP": 858236
},
"size": 24
},
{
"path": "gyorgFemale/gUnk_080D1ADC_1_DEMO_JP.bin",
"variants": [
"DEMO_JP"
],
"starts": {
"DEMO_JP": 856864
},
"size": 24
},
{
"path": "gyorgFemale/gUnk_080D1ADC_2_EU.bin",
"variants": [
"EU"
],
"starts": {
"EU": 856584
},
"size": 24
},
{
"path": "gyorgFemale/gUnk_080D1ADC_3_USA-DEMO_USA.bin",
"variants": [
"USA",
"DEMO_USA"
],
"start": 858844,
"size": 24
},
{
"path": "gyorgFemale/gUnk_080D1AF4.bin",
"start": 858868,
"size": 4
},
{
"path": "gyorgFemale/gUnk_080D1AF8.bin",
"start": 858872,
"size": 4
},
{
"path": "animations/gSpriteAnimations_GyorgMale_0.bin",
"start": 859248,
@ -28959,11 +28788,6 @@
"size": 6,
"type": "animation"
},
{
"path": "gyorgChild/gUnk_080D1EA0.bin",
"start": 859808,
"size": 22
},
{
"path": "animations/gSpriteAnimations_GyorgFemaleEye_0.bin",
"start": 860240,
@ -29108,21 +28932,6 @@
"size": 16,
"type": "animation"
},
{
"path": "gyorgFemaleEye/gUnk_080D1F90.bin",
"start": 860048,
"size": 128
},
{
"path": "gyorgFemaleEye/gUnk_080D2010.bin",
"start": 860176,
"size": 32
},
{
"path": "gyorgFemaleEye/gUnk_080D2030.bin",
"start": 860208,
"size": 32
},
{
"path": "animations/gSpriteAnimations_Enemy62_0.bin",
"start": 861032,
@ -29541,51 +29350,6 @@
"size": 17,
"type": "animation"
},
{
"path": "gyorgFemaleMouth/gUnk_080D28CC.bin",
"start": 862412,
"size": 16
},
{
"path": "gyorgFemaleMouth/gUnk_080D28DC.bin",
"start": 862428,
"size": 8
},
{
"path": "gyorgFemaleMouth/gUnk_080D28E4.bin",
"start": 862436,
"size": 8
},
{
"path": "gyorgFemaleMouth/gUnk_080D28EC.bin",
"start": 862444,
"size": 8
},
{
"path": "gyorgFemaleMouth/gUnk_080D28F4.bin",
"start": 862452,
"size": 8
},
{
"path": "gyorgFemaleMouth/gUnk_080D28FC.bin",
"start": 862460,
"size": 8
},
{
"path": "gyorgFemaleMouth/gUnk_080D2904.bin",
"start": 862468,
"size": 8
},
{
"path": "gyorgFemaleMouth/gUnk_080D290C.bin",
"start": 862476,
"size": 8
},
{
"path": "gyorgFemaleMouth/gUnk_080D2914.bin",
"start": 862484,
"size": 8
},
{
"path": "enemy64/gUnk_080D29B8.bin",
"start": 862648,
@ -47121,11 +46885,6 @@
"start": 1200092,
"size": 20
},
{
"path": "gyorgBossObject/gUnk_08124EF8.bin",
"start": 1199864,
"size": 16
},
{
"path": "windcrest/gUnk_08125010.bin",
"start": 1200144,

View File

@ -1,29 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_080D1E6C:: @ 080D1E6C
.4byte sub_08048684
.4byte sub_0804869C
.4byte sub_08001324
.4byte sub_0804A7D4
.4byte sub_08001242
.4byte sub_080486AC
gUnk_080D1E84:: @ 080D1E84
.4byte sub_080486F4
.4byte sub_0804877C
.4byte sub_0804882C
.4byte sub_08048904
gUnk_080D1E94:: @ 080D1E94
.4byte sub_080486D0
.4byte sub_080486D8
.4byte sub_080486E0
gUnk_080D1EA0:: @ 080D1EA0
.incbin "gyorgChild/gUnk_080D1EA0.bin"

View File

@ -1,95 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_080D1A64:: @ 080D1A64
.4byte sub_0804614C
.4byte sub_0804625C
.4byte sub_0804632C
.4byte sub_080463E4
gUnk_080D1A74:: @ 080D1A74
.4byte gUnk_080D1A94
.4byte gUnk_080D1AAC
.4byte gUnk_080D1AC4
.4byte gUnk_080D1ADC
gUnk_080D1A84:: @ 080D1A84
.incbin "gyorgFemale/gUnk_080D1A84.bin"
gUnk_080D1A94:: @ 080D1A94
.ifdef JP
@ TODO only small differences
.incbin "gyorgFemale/gUnk_080D1A94_JP.bin"
.else
.ifdef DEMO_JP
@ TODO only small differences
.incbin "gyorgFemale/gUnk_080D1A94_1_DEMO_JP.bin"
.else
.ifdef EU
.incbin "gyorgFemale/gUnk_080D1A94_2_EU.bin"
.else
.incbin "gyorgFemale/gUnk_080D1A94_3_USA-DEMO_USA.bin"
.endif
.endif
.endif
gUnk_080D1AAC:: @ 080D1AAC
.ifdef JP
@ TODO only small differences
.incbin "gyorgFemale/gUnk_080D1AAC_JP.bin"
.else
.ifdef DEMO_JP
@ TODO only small differences
.incbin "gyorgFemale/gUnk_080D1AAC_1_DEMO_JP.bin"
.else
.ifdef EU
.incbin "gyorgFemale/gUnk_080D1AAC_2_EU.bin"
.else
.incbin "gyorgFemale/gUnk_080D1AAC_3_USA-DEMO_USA.bin"
.endif
.endif
.endif
gUnk_080D1AC4:: @ 080D1AC4
.ifdef JP
@ TODO only small differences
.incbin "gyorgFemale/gUnk_080D1AC4_JP.bin"
.else
.ifdef DEMO_JP
@ TODO only small differences
.incbin "gyorgFemale/gUnk_080D1AC4_1_DEMO_JP.bin"
.else
.ifdef EU
.incbin "gyorgFemale/gUnk_080D1AC4_2_EU.bin"
.else
.incbin "gyorgFemale/gUnk_080D1AC4_3_USA-DEMO_USA.bin"
.endif
.endif
.endif
gUnk_080D1ADC:: @ 080D1ADC
.ifdef JP
@ TODO only small differences
.incbin "gyorgFemale/gUnk_080D1ADC_JP.bin"
.else
.ifdef DEMO_JP
@ TODO only small differences
.incbin "gyorgFemale/gUnk_080D1ADC_1_DEMO_JP.bin"
.else
.ifdef EU
.incbin "gyorgFemale/gUnk_080D1ADC_2_EU.bin"
.else
.incbin "gyorgFemale/gUnk_080D1ADC_3_USA-DEMO_USA.bin"
.endif
.endif
.endif
gUnk_080D1AF4:: @ 080D1AF4
.incbin "gyorgFemale/gUnk_080D1AF4.bin"
gUnk_080D1AF8:: @ 080D1AF8
.incbin "gyorgFemale/gUnk_080D1AF8.bin"

View File

@ -1,29 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_080D1F64:: @ 080D1F64
.4byte sub_080489B4
.4byte sub_080489CC
.4byte sub_08001324
.4byte sub_0804A7D4
.4byte sub_08001242
.4byte sub_080489B4
gUnk_080D1F7C:: @ 080D1F7C
.4byte sub_08048AF0
.4byte sub_08048B2C
.4byte sub_08048B84
.4byte sub_08048BB0
.4byte sub_08048CEC
gUnk_080D1F90:: @ 080D1F90
.incbin "gyorgFemaleEye/gUnk_080D1F90.bin"
gUnk_080D2010:: @ 080D2010
.incbin "gyorgFemaleEye/gUnk_080D2010.bin"
gUnk_080D2030:: @ 080D2030
.incbin "gyorgFemaleEye/gUnk_080D2030.bin"

View File

@ -1,42 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_080D28AC:: @ 080D28AC
.4byte gUnk_080D28DC
.4byte gUnk_080D28E4
.4byte gUnk_080D28EC
.4byte gUnk_080D28F4
.4byte gUnk_080D28FC
.4byte gUnk_080D2904
.4byte gUnk_080D290C
.4byte gUnk_080D2914
gUnk_080D28CC:: @ 080D28CC
.incbin "gyorgFemaleMouth/gUnk_080D28CC.bin"
gUnk_080D28DC:: @ 080D28DC
.incbin "gyorgFemaleMouth/gUnk_080D28DC.bin"
gUnk_080D28E4:: @ 080D28E4
.incbin "gyorgFemaleMouth/gUnk_080D28E4.bin"
gUnk_080D28EC:: @ 080D28EC
.incbin "gyorgFemaleMouth/gUnk_080D28EC.bin"
gUnk_080D28F4:: @ 080D28F4
.incbin "gyorgFemaleMouth/gUnk_080D28F4.bin"
gUnk_080D28FC:: @ 080D28FC
.incbin "gyorgFemaleMouth/gUnk_080D28FC.bin"
gUnk_080D2904:: @ 080D2904
.incbin "gyorgFemaleMouth/gUnk_080D2904.bin"
gUnk_080D290C:: @ 080D290C
.incbin "gyorgFemaleMouth/gUnk_080D290C.bin"
gUnk_080D2914:: @ 080D2914
.incbin "gyorgFemaleMouth/gUnk_080D2914.bin"

View File

@ -1,20 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_08124ED0:: @ 08124ED0
.4byte sub_080A1704
.4byte sub_080A184C
.4byte sub_080A189C
.4byte sub_080A190C
.4byte sub_080A1990
.4byte sub_080A19FC
.4byte sub_080A1A80
.4byte sub_080A1AE8
.4byte sub_080A1B4C
.4byte sub_080A1C04
gUnk_08124EF8:: @ 08124EF8
.incbin "gyorgBossObject/gUnk_08124EF8.bin"

View File

@ -21,6 +21,11 @@ typedef struct {
u8 unk_83[5];
} GyorgFemaleEntity;
typedef struct {
Entity base;
u8 unk_68[0x20];
} GyorgFemaleEyeEntity;
typedef struct {
Entity base;
u8 filler[0x20];

View File

@ -1150,20 +1150,20 @@ SECTIONS {
src/enemy/vaatiTransfiguredEye.o(.rodata);
data/animations/enemy/vaatiTransfiguredEye.o(.rodata);
data/const/enemy/businessScrubPrologue.o(.rodata);
data/const/enemy/gyorgFemale.o(.rodata);
src/enemy/gyorgFemale.o(.rodata);
src/enemy/gyorgMale.o(.rodata);
data/animations/enemy/gyorgMale.o(.rodata);
data/const/enemy/curtain.o(.rodata);
data/animations/enemy/curtain.o(.rodata);
src/enemy/vaatiWrathEye.o(.rodata);
data/animations/enemy/vaatiWrathEye.o(.rodata);
data/const/enemy/gyorgChild.o(.rodata);
src/enemy/gyorgChild.o(.rodata);
data/animations/enemy/gyorgChild.o(.rodata);
data/const/enemy/gyorgFemaleEye.o(.rodata);
src/enemy/gyorgFemaleEye.o(.rodata);
data/animations/enemy/gyorgFemaleEye.o(.rodata);
data/const/enemy/enemy62.o(.rodata);
data/animations/enemy/enemy62.o(.rodata);
data/const/enemy/gyorgFemaleMouth.o(.rodata);
src/enemy/gyorgFemaleMouth.o(.rodata);
data/animations/enemy/gyorgFemaleMouth.o(.rodata);
data/const/enemy/enemy64.o(.rodata);
src/enemy/treeItem.o(.rodata);
@ -1637,7 +1637,7 @@ SECTIONS {
data/const/object/well.o(.rodata);
data/const/object/windTribeTeleporter.o(.rodata);
data/const/object/objectB9.o(.rodata);
data/const/object/gyorgBossObject.o(.rodata);
src/object/gyorgBossObject.o(.rodata);
data/animations/object/gyorgBossObject.o(.rodata);
data/const/object/windcrest.o(.rodata);
data/const/object/objectBD.o(.rodata);

View File

@ -1,10 +1,22 @@
#define NENT_DEPRECATED
#include "global.h"
#include "room.h"
#include "asm.h"
#include "functions.h"
#include "enemy/gyorg.h"
extern void (*const gUnk_080D1E6C[])(GyorgChildEntity*);
void sub_08048684(GyorgChildEntity*);
void sub_0804869C(GyorgChildEntity*);
void sub_080486AC(GyorgChildEntity*);
void (*const gUnk_080D1E6C[])(GyorgChildEntity*) = {
sub_08048684,
sub_0804869C,
(void (*)(GyorgChildEntity*))sub_08001324,
(void (*)(GyorgChildEntity*))sub_0804A7D4,
(void (*)(GyorgChildEntity*))sub_08001242,
sub_080486AC,
};
void GyorgChild(Entity* this) {
if (gScreenTransition.field_0x39 == 0) {
@ -15,21 +27,35 @@ void GyorgChild(Entity* this) {
gUnk_080D1E6C[GetNextFunction(this)]((GyorgChildEntity*)this);
}
extern void (*const gUnk_080D1E84[])(GyorgChildEntity*);
void sub_080486F4(GyorgChildEntity*);
void sub_0804877C(GyorgChildEntity*);
void sub_0804882C(GyorgChildEntity*);
void sub_08048904(GyorgChildEntity*);
void sub_08048684(GyorgChildEntity* this) {
static void (*const gUnk_080D1E84[])(GyorgChildEntity*) = {
sub_080486F4,
sub_0804877C,
sub_0804882C,
sub_08048904,
};
gUnk_080D1E84[super->action](this);
}
extern void (*const gUnk_080D1E6C[])(GyorgChildEntity*);
void sub_0804869C(GyorgChildEntity* this) {
sub_0804AA30(super, gUnk_080D1E6C);
}
extern void (*const gUnk_080D1E94[])(GyorgChildEntity*);
void sub_080486D0(GyorgChildEntity*);
void sub_080486D8(GyorgChildEntity*);
void sub_080486E0(GyorgChildEntity*);
void sub_080486AC(GyorgChildEntity* this) {
static void (*const gUnk_080D1E94[])(GyorgChildEntity*) = {
sub_080486D0,
sub_080486D8,
sub_080486E0,
};
if (sub_0806F520()) {
gUnk_080D1E94[super->subAction](this);
}
@ -49,9 +75,11 @@ void sub_080486E0(GyorgChildEntity* this) {
}
}
extern const u8 gUnk_080D1EA0[];
void sub_080486F4(GyorgChildEntity* this) {
static const s8 gUnk_080D1EA0[] = {
0x50, 0x1, 0x40, 0x1, 0x30, 0x1, 0x20, 0x1, 0x10, 0x1, 0,
0, 0x10, -0x1, 0x20, -0x1, 0x30, -0x1, 0x40, -0x1, 0x50, -0x1,
};
super->field_0x1c = 1;
super->spriteOrientation.flipY = 3;
super->spriteRendering.b3 = 3;

View File

@ -13,7 +13,7 @@ extern u8 gMapDataTopSpecial[];
extern u16 gUnk_02019EE0[];
extern void sub_080197D4(u32);
extern void sub_080197D4(const void*);
extern u32 sub_08000E62(u32);
extern void RegisterTransitionManager(void*, void (*)(), void (*)());
@ -28,17 +28,23 @@ void sub_08046668(GyorgFemaleEntity*);
void sub_08046518(void);
void sub_080467DC(GyorgFemaleEntity*);
extern void (*const gUnk_080D1A64[])(GyorgFemaleEntity*);
extern u32 gUnk_080D1A74[];
extern u8 gUpdateVisibleTiles;
extern u8 gUnk_080B3E80[];
extern u8 gUnk_080B37A0[];
extern u16 gMetatileTypesTop[];
extern const u16 gUnk_080D1A84[];
extern const u8 gUnk_080D1AF4[];
extern const u8 gUnk_080D1AF8[];
void sub_0804614C(GyorgFemaleEntity*);
void sub_0804625C(GyorgFemaleEntity*);
void sub_0804632C(GyorgFemaleEntity*);
void sub_080463E4(GyorgFemaleEntity*);
void GyorgFemale(Entity* this) {
static void (*const gUnk_080D1A64[])(GyorgFemaleEntity*) = {
sub_0804614C,
sub_0804625C,
sub_0804632C,
sub_080463E4,
};
gUnk_080D1A64[this->action]((GyorgFemaleEntity*)this);
}
@ -211,7 +217,18 @@ void sub_08046498(GyorgFemaleEntity* this) {
}
#endif
extern const u8 gUnk_080D1A94[];
extern const u8 gUnk_080D1AAC[];
extern const u8 gUnk_080D1AC4[];
extern const u8 gUnk_080D1ADC[];
void sub_080464C0(GyorgFemaleEntity* this) {
static const void* const gUnk_080D1A74[] = {
gUnk_080D1A94,
gUnk_080D1AAC,
gUnk_080D1AC4,
gUnk_080D1ADC,
};
s32 i;
u8* src;
u8* dst;
@ -261,6 +278,9 @@ void sub_080465C8(void) {
}
void sub_0804660C(GyorgFemaleEntity* this, u32 unk1) {
static const u16 gUnk_080D1A84[] = {
0x200, 0x258, 0x1B8, 0x210, 0x200, 0x1C8, 0x248, 0x210,
};
const u16* p;
super->animationState = unk1;
p = &gUnk_080D1A84[unk1 >> 5];
@ -268,7 +288,85 @@ void sub_0804660C(GyorgFemaleEntity* this, u32 unk1) {
super->y.HALF.HI = p[1] + gRoomControls.roomOriginY;
}
// todo: correct type
const u8 gUnk_080D1A94[] = {
#if defined(JP) || defined(DEMO_JP)
0x7C,
#elif defined(EU)
0x50,
#else
0x08,
#endif
0x41, 0x22, 0x80, 0xE0, 0x9E, 0x01, 0x02, 0x00, 0x08, 0x00, 0x80,
#if defined(JP) || defined(DEMO_JP)
0x2C, 0xD3,
#elif defined(EU)
0x00, 0xD3,
#else
0xB8, 0xD2,
#endif
0x22, 0x00, 0x54, 0xB6, 0x00, 0x02, 0x80, 0x1F, 0x00, 0x80,
};
const u8 gUnk_080D1AAC[] = {
#if defined(JP) || defined(DEMO_JP)
0xFC,
#elif defined(EU)
0xD0,
#else
0x88,
#endif
0x3D, 0x22, 0x80, 0xE0, 0x9E, 0x01, 0x02, 0x00, 0x08, 0x00, 0x80,
#if defined(JP) || defined(DEMO_JP)
0xF8,
#elif defined(EU)
0xCC,
#else
0x84,
#endif
0xD6, 0x22, 0x00, 0x54, 0xB6, 0x00, 0x02, 0x80, 0x1F, 0x00, 0x80,
};
const u8 gUnk_080D1AC4[] = {
#if defined(JP) || defined(DEMO_JP)
0xE4,
#elif defined(EU)
0xB8,
#else
0x70,
#endif
0x36, 0x22, 0x80, 0xE0, 0x9E, 0x01, 0x02, 0x00, 0x08, 0x00, 0x80,
#if defined(JP) || defined(DEMO_JP)
0xC0,
#elif defined(EU)
0x94,
#else
0x4C,
#endif
0xDA, 0x22, 0x00, 0x54, 0xB6, 0x00, 0x02, 0x80, 0x1F, 0x00, 0x80,
};
const u8 gUnk_080D1ADC[] = {
#if defined(JP) || defined(DEMO_JP)
0x78,
#elif defined(EU)
0x4C,
#else
0x04,
#endif
0x3A, 0x22, 0x80, 0xE0, 0x9E, 0x01, 0x02, 0x00, 0x08, 0x00, 0x80,
#if defined(JP) || defined(DEMO_JP)
0x88,
#elif defined(EU)
0x5C,
#else
0x14,
#endif
0xDE, 0x22, 0x00, 0x54, 0xB6, 0x00, 0x02, 0x80, 0x1F, 0x00, 0x80,
};
void sub_08046634(GyorgFemaleEntity* this, u32 unk1) {
static const u8 gUnk_080D1AF4[] = { 2, 3, 6, 7 };
u32 tmp;
if (unk1 == 0) {
tmp = gUnk_080D1AF4[Random() & 3];
@ -279,6 +377,7 @@ void sub_08046634(GyorgFemaleEntity* this, u32 unk1) {
}
void sub_08046668(GyorgFemaleEntity* this) {
static const u8 gUnk_080D1AF8[] = { 0x16, 0x92, 0x94, 0x86 };
if (super->health == 0) {
return;
}

View File

@ -6,21 +6,27 @@
#include "functions.h"
#include "enemy/gyorg.h"
typedef struct {
Entity base;
u8 unk_68[0x20];
} GyorgFemaleEyeEntity;
void sub_080489B4(GyorgFemaleEyeEntity*);
void sub_080489CC(GyorgFemaleEyeEntity*);
extern void (*const gUnk_080D1F64[])(GyorgFemaleEyeEntity*);
extern void (*const gUnk_080D1F7C[])(GyorgFemaleEyeEntity*);
extern const u8 gUnk_080D2030[];
extern const u8 gUnk_080D2010[];
void sub_08048AF0(GyorgFemaleEyeEntity*);
void sub_08048B2C(GyorgFemaleEyeEntity*);
void sub_08048B84(GyorgFemaleEyeEntity*);
void sub_08048BB0(GyorgFemaleEyeEntity*);
void sub_08048CEC(GyorgFemaleEyeEntity*);
void sub_08048D20(GyorgFemaleEyeEntity*);
u32 sub_08048D70(GyorgFemaleEntity*);
void (*const gUnk_080D1F64[])(GyorgFemaleEyeEntity*) = {
sub_080489B4,
sub_080489CC,
(void (*)(GyorgFemaleEyeEntity*))sub_08001324,
(void (*)(GyorgFemaleEyeEntity*))sub_0804A7D4,
(void (*)(GyorgFemaleEyeEntity*))sub_08001242,
sub_080489B4,
};
void GyorgFemaleEye(Entity* this) {
if (this->parent->next == NULL) {
DeleteThisEntity();
@ -29,9 +35,33 @@ void GyorgFemaleEye(Entity* this) {
}
void sub_080489B4(GyorgFemaleEyeEntity* this) {
static void (*const gUnk_080D1F7C[])(GyorgFemaleEyeEntity*) = {
sub_08048AF0, sub_08048B2C, sub_08048B84, sub_08048BB0, sub_08048CEC,
};
gUnk_080D1F7C[super->action](this);
}
typedef struct {
u16 x, y;
} xy;
const xy gUnk_080D1F90[] = {
{ 0x1e8, 0x1d8 }, { 0x1f8, 0x1d8 }, { 0x208, 0x1d8 }, { 0x218, 0x1d8 }, { 0x1e8, 0x1e8 }, { 0x1f8, 0x1e8 },
{ 0x208, 0x1e8 }, { 0x218, 0x1e8 }, { 0x238, 0x1f8 }, { 0x238, 0x208 }, { 0x238, 0x218 }, { 0x238, 0x228 },
{ 0x228, 0x1f8 }, { 0x228, 0x208 }, { 0x228, 0x218 }, { 0x228, 0x228 }, { 0x218, 0x248 }, { 0x208, 0x248 },
{ 0x1f8, 0x248 }, { 0x1e8, 0x248 }, { 0x218, 0x238 }, { 0x208, 0x238 }, { 0x1f8, 0x238 }, { 0x1e8, 0x238 },
{ 0x1c8, 0x228 }, { 0x1c8, 0x218 }, { 0x1c8, 0x208 }, { 0x1c8, 0x1f8 }, { 0x1d8, 0x228 }, { 0x1d8, 0x218 },
{ 0x1d8, 0x208 }, { 0x1d8, 0x1f8 },
};
const u8 gUnk_080D2010[] = {
0, 0, 1, 1, 0, 0, 1, 1, 4, 4, 5, 5, 4, 4, 5, 5, 9, 9, 8, 8, 9, 9, 8, 8, 13, 13, 12, 12, 13, 13, 12, 12,
};
const u8 gUnk_080D2030[] = {
2, 2, 3, 3, 2, 2, 3, 3, 6, 6, 7, 7, 6, 6, 7, 7, 11, 11, 10, 10, 11, 11, 10, 10, 15, 15, 14, 14, 15, 15, 14, 14,
};
void sub_080489CC(GyorgFemaleEyeEntity* this) {
GyorgFemaleEntity* parent;
if (super->health != 0xFF) {
@ -151,13 +181,6 @@ void sub_08048CEC(GyorgFemaleEyeEntity* this) {
InitializeAnimation(super, gUnk_080D2010[(super->animationState << 3) + super->type]);
}
}
typedef struct {
u16 x, y;
} xy;
extern const xy gUnk_080D1F90[];
void sub_08048D20(GyorgFemaleEyeEntity* this) {
GyorgFemaleEntity* parent = (GyorgFemaleEntity*)super->parent;
const xy* tmp;

View File

@ -4,8 +4,32 @@
#include "room.h"
#include "enemy/gyorg.h"
extern const u16 gUnk_080D28CC[];
extern Hitbox* const gUnk_080D28AC[];
extern const Hitbox gUnk_080D28DC;
extern const Hitbox gUnk_080D28E4;
extern const Hitbox gUnk_080D28EC;
extern const Hitbox gUnk_080D28F4;
extern const Hitbox gUnk_080D28FC;
extern const Hitbox gUnk_080D2904;
extern const Hitbox gUnk_080D290C;
extern const Hitbox gUnk_080D2914;
const Hitbox* const gUnk_080D28AC[] = {
&gUnk_080D28DC, &gUnk_080D28E4, &gUnk_080D28EC, &gUnk_080D28F4,
&gUnk_080D28FC, &gUnk_080D2904, &gUnk_080D290C, &gUnk_080D2914,
};
const u16 gUnk_080D28CC[] = {
0x200, 0x1C8, 0x248, 0x210, 0x200, 0x258, 0x1b8, 0x210,
};
const Hitbox gUnk_080D28DC = { 0xE0, 0xF4, { 0, 0, 0, 0 }, 0x8, 0xA };
const Hitbox gUnk_080D28E4 = { 0x20, 0xF4, { 0, 0, 0, 0 }, 0x8, 0xA };
const Hitbox gUnk_080D28EC = { 0x0C, 0xE0, { 0, 0, 0, 0 }, 0xA, 0x8 };
const Hitbox gUnk_080D28F4 = { 0x0C, 0x20, { 0, 0, 0, 0 }, 0xA, 0x8 };
const Hitbox gUnk_080D28FC = { 0xE0, 0x0C, { 0, 0, 0, 0 }, 0x8, 0xA };
const Hitbox gUnk_080D2904 = { 0x20, 0x0C, { 0, 0, 0, 0 }, 0x8, 0xA };
const Hitbox gUnk_080D290C = { 0xF4, 0xE0, { 0, 0, 0, 0 }, 0xA, 0x8 };
const Hitbox gUnk_080D2914 = { 0xF4, 0x20, { 0, 0, 0, 0 }, 0xA, 0x8 };
void GyorgFemaleMouth(Entity* this) {
u32 tmp;
@ -38,5 +62,5 @@ void GyorgFemaleMouth(Entity* this) {
tmp++;
}
}
this->hitbox = gUnk_080D28AC[tmp];
this->hitbox = (Hitbox*)gUnk_080D28AC[tmp]; // discarding const qualifier with cast
}

View File

@ -11,7 +11,6 @@
extern const ScreenTransitionData gUnk_0813ABD0;
extern u32 sub_08079F8C(void);
extern const u16 gUnk_08124EF8[];
extern s16* const gUnk_08124FF0[];
extern void sub_080A1DCC(GyorgBossObjectEntity*);
@ -24,9 +23,22 @@ void sub_080A1FF0(GyorgBossObjectEntity*);
u32 sub_080A20B8(GyorgBossObjectEntity*, GenericEntity*);
void sub_080A1D70(GyorgBossObjectEntity*, u32);
extern void (*const gUnk_08124ED0[])(GyorgBossObjectEntity*);
void sub_080A1704(GyorgBossObjectEntity*);
void sub_080A184C(GyorgBossObjectEntity*);
void sub_080A189C(GyorgBossObjectEntity*);
void sub_080A190C(GyorgBossObjectEntity*);
void sub_080A1990(GyorgBossObjectEntity*);
void sub_080A19FC(GyorgBossObjectEntity*);
void sub_080A1A80(GyorgBossObjectEntity*);
void sub_080A1AE8(GyorgBossObjectEntity*);
void sub_080A1B4C(GyorgBossObjectEntity*);
void sub_080A1C04(GyorgBossObjectEntity*);
void GyorgBossObject(Entity* this) {
static void (*const gUnk_08124ED0[])(GyorgBossObjectEntity*) = {
sub_080A1704, sub_080A184C, sub_080A189C, sub_080A190C, sub_080A1990,
sub_080A19FC, sub_080A1A80, sub_080A1AE8, sub_080A1B4C, sub_080A1C04,
};
gUnk_08124ED0[this->action]((GyorgBossObjectEntity*)this);
sub_080A1DCC((GyorgBossObjectEntity*)this);
sub_080A1C9C((GyorgBossObjectEntity*)this);
@ -130,7 +142,7 @@ void sub_080A190C(GyorgBossObjectEntity* this) {
}
}
void sub_080A1990(GyorgBossObjectEntity* this, u32 unk1) {
void sub_080A1990(GyorgBossObjectEntity* this) {
if (((GyorgFemaleHeap*)super->myHeap)->female->base.health == 0) {
((GyorgFemaleHeap*)super->myHeap)->male1->base.health = 0xC;
super->action = 5;
@ -339,6 +351,7 @@ void sub_080A1E54(GyorgBossObjectEntity* this) {
}
void sub_080A1ED0(u32 unk0, u32 unk1, u32 unk2) {
static const u16 gUnk_08124EF8[] = { 0x200, 0x1C0, 0x250, 0x210, 0x200, 0x260, 0x1B0, 0x210 };
u32 i = 0;
s16* p;
u32 x, y;