Merge pull request #498 from hatal175/data6

This commit is contained in:
notyourav 2022-04-16 09:32:27 -07:00 committed by GitHub
commit d0c14ba8ee
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
28 changed files with 250 additions and 354 deletions

View File

@ -39030,11 +39030,6 @@
"size": 17, "size": 17,
"type": "animation" "type": "animation"
}, },
{
"path": "librarians/gUnk_08113078.bin",
"start": 1126520,
"size": 6
},
{ {
"path": "animations/gSpriteAnimations_Farmers_0_0.bin", "path": "animations/gSpriteAnimations_Farmers_0_0.bin",
"start": 1126760, "start": 1126760,
@ -39083,16 +39078,6 @@
"size": 5, "size": 5,
"type": "animation" "type": "animation"
}, },
{
"path": "farmers/gUnk_08113140.bin",
"start": 1126720,
"size": 24
},
{
"path": "farmers/gUnk_08113158.bin",
"start": 1126744,
"size": 16
},
{ {
"path": "animations/gSpriteAnimations_Carlov_0_0.bin", "path": "animations/gSpriteAnimations_Carlov_0_0.bin",
"start": 1127000, "start": 1127000,
@ -39141,16 +39126,6 @@
"size": 9, "size": 9,
"type": "animation" "type": "animation"
}, },
{
"path": "dampe/gUnk_08113344.bin",
"start": 1127236,
"size": 6
},
{
"path": "dampe/gUnk_0811334A.bin",
"start": 1127242,
"size": 6
},
{ {
"path": "animations/gSpriteAnimations_DrLeft_0.bin", "path": "animations/gSpriteAnimations_DrLeft_0.bin",
"start": 1127352, "start": 1127352,
@ -39199,16 +39174,6 @@
"size": 65, "size": 65,
"type": "animation" "type": "animation"
}, },
{
"path": "drLeft/gUnk_081133A4.bin",
"start": 1127332,
"size": 16
},
{
"path": "drLeft/gUnk_081133B4.bin",
"start": 1127348,
"size": 4
},
{ {
"path": "animations/gSpriteAnimations_KingGustaf_0.bin", "path": "animations/gSpriteAnimations_KingGustaf_0.bin",
"start": 1127636, "start": 1127636,
@ -39377,16 +39342,6 @@
"size": 8, "size": 8,
"type": "animation" "type": "animation"
}, },
{
"path": "mama/gUnk_08113754.bin",
"start": 1128276,
"size": 12
},
{
"path": "mama/gUnk_08113760.bin",
"start": 1128288,
"size": 80
},
{ {
"path": "animations/gSpriteAnimations_Emma_0.bin", "path": "animations/gSpriteAnimations_Emma_0.bin",
"start": 1128668, "start": 1128668,
@ -39417,16 +39372,6 @@
"size": 30, "size": 30,
"type": "animation" "type": "animation"
}, },
{
"path": "teachers/gUnk_08113910.bin",
"start": 1128720,
"size": 32
},
{
"path": "teachers/gUnk_08113930.bin",
"start": 1128752,
"size": 128
},
{ {
"path": "animations/gSpriteAnimations_WindTribespeople_0_0.bin", "path": "animations/gSpriteAnimations_WindTribespeople_0_0.bin",
"start": 1129279, "start": 1129279,
@ -39821,11 +39766,6 @@
"size": 7, "size": 7,
"type": "animation" "type": "animation"
}, },
{
"path": "gregal/gUnk_08113D84.bin",
"start": 1129860,
"size": 8
},
{ {
"path": "animations/gSpriteAnimations_MayorHagen_0.bin", "path": "animations/gSpriteAnimations_MayorHagen_0.bin",
"start": 1130432, "start": 1130432,
@ -39892,31 +39832,6 @@
"size": 14, "size": 14,
"type": "animation" "type": "animation"
}, },
{
"path": "mayorHagen/gUnk_08113F44.bin",
"start": 1130308,
"size": 4
},
{
"path": "mayorHagen/gUnk_08113F48.bin",
"start": 1130312,
"size": 120
},
{
"path": "bigGoron/gUnk_081140CC.bin",
"start": 1130700,
"size": 8
},
{
"path": "bigGoron/gUnk_08114100.bin",
"start": 1130752,
"size": 4
},
{
"path": "bigGoron/gUnk_08114104.bin",
"start": 1130756,
"size": 48
},
{ {
"offsets": { "offsets": {
"EU": -2232 "EU": -2232
@ -39994,21 +39909,6 @@
"size": 5, "size": 5,
"type": "animation" "type": "animation"
}, },
{
"path": "smallTownMinish/gUnk_081142FC.bin",
"start": 1131260,
"size": 8
},
{
"path": "smallTownMinish/gUnk_08114304.bin",
"start": 1131268,
"size": 4
},
{
"path": "smallTownMinish/gUnk_08114308.bin",
"start": 1131272,
"size": 448
},
{ {
"path": "animations/gSpriteAnimations_HurdyGurdyMan_8.bin", "path": "animations/gSpriteAnimations_HurdyGurdyMan_8.bin",
"start": 1131836, "start": 1131836,
@ -40045,21 +39945,6 @@
"size": 7, "size": 7,
"type": "animation" "type": "animation"
}, },
{
"path": "hurdyGurdyMan/gUnk_081144F0.bin",
"start": 1131760,
"size": 12
},
{
"path": "hurdyGurdyMan/gUnk_081144FC.bin",
"start": 1131772,
"size": 64
},
{
"path": "phonograph/gUnk_081145E4.bin",
"start": 1132004,
"size": 212
},
{ {
"path": "npc58/gUnk_081146B8.bin", "path": "npc58/gUnk_081146B8.bin",
"start": 1132216, "start": 1132216,

View File

@ -1,27 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_081140CC:: @ 081140CC
.incbin "bigGoron/gUnk_081140CC.bin"
gUnk_081140D4:: @ 081140D4
.4byte sub_0806CF30
.4byte sub_0806D1D0
.4byte sub_0806D274
.4byte sub_0806D348
.4byte sub_0806D3C0
.4byte sub_0806D41C
.4byte sub_0806D4F0
.4byte sub_0806D4FC
.4byte sub_0806D508
.4byte sub_0806D514
.4byte sub_0806D40C
gUnk_08114100:: @ 08114100
.incbin "bigGoron/gUnk_08114100.bin"
gUnk_08114104:: @ 08114104
.incbin "bigGoron/gUnk_08114104.bin"

View File

@ -1,9 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_0811423C:: @ 0811423C
.4byte sub_0806DD90
.4byte sub_0806DEC8

View File

@ -1,11 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_08113344:: @ 08113344
.incbin "dampe/gUnk_08113344.bin"
gUnk_0811334A:: @ 0811334A
.incbin "dampe/gUnk_0811334A.bin"

View File

@ -1,11 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_081133A4:: @ 081133A4
.incbin "drLeft/gUnk_081133A4.bin"
gUnk_081133B4:: @ 081133B4
.incbin "drLeft/gUnk_081133B4.bin"

View File

@ -1,11 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_08113140:: @ 08113140
.incbin "farmers/gUnk_08113140.bin"
gUnk_08113158:: @ 08113158
.incbin "farmers/gUnk_08113158.bin"

View File

@ -1,14 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_08113D84:: @ 08113D84
.incbin "gregal/gUnk_08113D84.bin"
gUnk_08113D8C:: @ 08113D8C
.4byte sub_0806CAF4
.4byte sub_0806CB80
.4byte sub_0806CBB4
.4byte sub_0806CC08

View File

@ -1,11 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_081144F0:: @ 081144F0
.incbin "hurdyGurdyMan/gUnk_081144F0.bin"
gUnk_081144FC:: @ 081144FC
.incbin "hurdyGurdyMan/gUnk_081144FC.bin"

View File

@ -1,9 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_08113078:: @ 08113078
.incbin "librarians/gUnk_08113078.bin"

View File

@ -1,11 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_08113754:: @ 08113754
.incbin "mama/gUnk_08113754.bin"
gUnk_08113760:: @ 08113760
.incbin "mama/gUnk_08113760.bin"

View File

@ -1,11 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_08113F44:: @ 08113F44
.incbin "mayorHagen/gUnk_08113F44.bin"
gUnk_08113F48:: @ 08113F48
.incbin "mayorHagen/gUnk_08113F48.bin"

View File

@ -1,8 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_081145E4:: @ 081145E4
.incbin "phonograph/gUnk_081145E4.bin"

View File

@ -1,14 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_081142FC:: @ 081142FC
.incbin "smallTownMinish/gUnk_081142FC.bin"
gUnk_08114304:: @ 08114304
.incbin "smallTownMinish/gUnk_08114304.bin"
gUnk_08114308:: @ 08114308
.incbin "smallTownMinish/gUnk_08114308.bin"

View File

@ -1,11 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_08113910:: @ 08113910
.incbin "teachers/gUnk_08113910.bin"
gUnk_08113930:: @ 08113930
.incbin "teachers/gUnk_08113930.bin"

View File

@ -1258,45 +1258,45 @@ SECTIONS {
src/npc/vaatiReborn.o(.rodata); src/npc/vaatiReborn.o(.rodata);
data/animations/npc/vaatiReborn.o(.rodata); data/animations/npc/vaatiReborn.o(.rodata);
data/animations/npc/moblinLady.o(.rodata); data/animations/npc/moblinLady.o(.rodata);
data/const/npc/librarians.o(.rodata); src/npc/librarians.o(.rodata);
data/animations/npc/librarians.o(.rodata); data/animations/npc/librarians.o(.rodata);
data/const/npc/farmers.o(.rodata); src/npc/farmers.o(.rodata);
data/animations/npc/farmers.o(.rodata); data/animations/npc/farmers.o(.rodata);
data/animations/npc/carlov.o(.rodata); data/animations/npc/carlov.o(.rodata);
data/const/npc/dampe.o(.rodata); src/npc/dampe.o(.rodata);
data/animations/npc/dampe.o(.rodata); data/animations/npc/dampe.o(.rodata);
data/const/npc/drLeft.o(.rodata); src/npc/drLeft.o(.rodata);
data/animations/npc/drLeft.o(.rodata); data/animations/npc/drLeft.o(.rodata);
data/animations/npc/kingGustaf.o(.rodata); data/animations/npc/kingGustaf.o(.rodata);
data/animations/npc/gina.o(.rodata); data/animations/npc/gina.o(.rodata);
data/animations/npc/simon.o(.rodata); data/animations/npc/simon.o(.rodata);
data/animations/npc/anju.o(.rodata); data/animations/npc/anju.o(.rodata);
data/const/npc/mama.o(.rodata); src/npc/mama.o(.rodata);
data/animations/npc/mama.o(.rodata); data/animations/npc/mama.o(.rodata);
data/animations/npc/emma.o(.rodata); data/animations/npc/emma.o(.rodata);
data/const/npc/teachers.o(.rodata); src/npc/teachers.o(.rodata);
data/animations/npc/teachers.o(.rodata); data/animations/npc/teachers.o(.rodata);
data/const/npc/windTribespeople.o(.rodata); data/const/npc/windTribespeople.o(.rodata);
data/animations/npc/windTribespeople.o(.rodata); data/animations/npc/windTribespeople.o(.rodata);
data/const/npc/gregal.o(.rodata); src/npc/gregal.o(.rodata);
data/animations/npc/gregal.o(.rodata); data/animations/npc/gregal.o(.rodata);
data/const/npc/mayorHagen.o(.rodata); src/npc/mayorHagen.o(.rodata);
data/animations/npc/mayorHagen.o(.rodata); data/animations/npc/mayorHagen.o(.rodata);
data/const/npc/bigGoron.o(.rodata); src/npc/bigGoron.o(.rodata);
src/npc/ezlo.o(.rodata); src/npc/ezlo.o(.rodata);
src/npc/npc4E.o(.rodata); src/npc/npc4E.o(.rodata);
src/npc/npc4F.o(.rodata); src/npc/npc4F.o(.rodata);
data/animations/npc/npc4F.o(.rodata); data/animations/npc/npc4F.o(.rodata);
data/const/npc/clothesRack.o(.rodata); src/npc/clothesRack.o(.rodata);
data/animations/npc/clothesRack.o(.rodata); data/animations/npc/clothesRack.o(.rodata);
src/npc/picolyteBottle.o(.rodata); src/npc/picolyteBottle.o(.rodata);
data/const/npc/smallTownMinish.o(.rodata); src/npc/smallTownMinish.o(.rodata);
data/animations/npc/smallTownMinish.o(.rodata); data/animations/npc/smallTownMinish.o(.rodata);
data/const/npc/hurdyGurdyMan.o(.rodata); src/npc/hurdyGurdyMan.o(.rodata);
data/animations/npc/hurdyGurdyMan.o(.rodata); data/animations/npc/hurdyGurdyMan.o(.rodata);
src/npc/cucco.o(.rodata); src/npc/cucco.o(.rodata);
src/npc/cuccoChick.o(.rodata); src/npc/cuccoChick.o(.rodata);
data/const/npc/phonograph.o(.rodata); src/npc/phonograph.o(.rodata);
data/const/npc/npc58.o(.rodata); data/const/npc/npc58.o(.rodata);
src/npcDefinitions.o(.rodata); src/npcDefinitions.o(.rodata);
data/data_081146D0.o(.rodata); data/data_081146D0.o(.rodata);

View File

@ -4,12 +4,28 @@
#include "hitbox.h" #include "hitbox.h"
#include "item.h" #include "item.h"
extern void (*gUnk_081140D4[])(Entity*); static const u16 goronSounds[] = {
extern u16 gUnk_081140CC[]; SFX_VO_GORON1,
SFX_VO_GORON2,
SFX_VO_GORON3,
SFX_VO_GORON4,
};
extern u8 gMapDataTopSpecial[]; extern u8 gMapDataTopSpecial[];
void sub_0806D520(Entity*, u32); void sub_0806D520(Entity*, u32);
void sub_0806D41C(Entity* this); void sub_0806D41C(Entity*);
void sub_0806CF30(Entity*);
void sub_0806D1D0(Entity*);
void sub_0806D274(Entity*);
void sub_0806D348(Entity*);
void sub_0806D3C0(Entity*);
void sub_0806D41C(Entity*);
void sub_0806D4F0(Entity*);
void sub_0806D4FC(Entity*);
void sub_0806D508(Entity*);
void sub_0806D514(Entity*);
void sub_0806D40C(Entity*);
static void sub_0806D02C(Entity* this); static void sub_0806D02C(Entity* this);
@ -33,8 +49,6 @@ Entity* sub_0806D00C(Entity* this);
void sub_0806D4C0(Entity*, u32); void sub_0806D4C0(Entity*, u32);
extern const u8 gUnk_08114100[];
typedef struct { typedef struct {
s8 type; s8 type;
s8 x; s8 x;
@ -42,10 +56,12 @@ typedef struct {
u8 direction; u8 direction;
} struct_08114104; } struct_08114104;
extern const struct_08114104 gUnk_08114104[];
void BigGoron(Entity* this) { void BigGoron(Entity* this) {
gUnk_081140D4[this->type](this); static void (*const typeFunctions[])(Entity*) = {
sub_0806CF30, sub_0806D1D0, sub_0806D274, sub_0806D348, sub_0806D3C0, sub_0806D41C,
sub_0806D4F0, sub_0806D4FC, sub_0806D508, sub_0806D514, sub_0806D40C,
};
typeFunctions[this->type](this);
} }
void sub_0806CF30(Entity* this) { void sub_0806CF30(Entity* this) {
@ -76,7 +92,7 @@ void sub_0806CF30(Entity* this) {
case 2: case 2:
if (--this->timer == 0) { if (--this->timer == 0) {
u32 uVar2 = Random(); u32 uVar2 = Random();
SoundReq(gUnk_081140CC[uVar2 % 4]); SoundReq(goronSounds[uVar2 % 4]);
this->timer = ((u8)uVar2 & 7) * 16; this->timer = ((u8)uVar2 & 7) * 16;
this->timer += 128; this->timer += 128;
} }
@ -341,6 +357,12 @@ void sub_0806D514(Entity* this) {
} }
void sub_0806D520(Entity* this, u32 param_2) { void sub_0806D520(Entity* this, u32 param_2) {
static const u8 gUnk_08114100[] = {
10,
7,
4,
1,
};
if (this->action == 0) { if (this->action == 0) {
this->action = 1; this->action = 1;
this->subtimer = gUnk_08114100[param_2] + 6; this->subtimer = gUnk_08114100[param_2] + 6;
@ -420,6 +442,14 @@ void sub_0806D66C(Entity* this) {
} }
void sub_0806D67C(Entity* this) { void sub_0806D67C(Entity* this) {
static const struct_08114104 gUnk_08114104[] = {
{ FX_WHITE_PUFF, 0x30, 0x20, 0xa }, { FX_WHITE_PUFF, 0x2c, 0x24, 0xb },
{ FX_WHITE_PUFF, 0x28, 0x28, 0xc }, { FX_WHITE_PUFF, 0x20, 0x28, 0x10 },
{ FX_WHITE_PUFF, 0x10, 0x28, 0x10 }, { FX_WHITE_PUFF, 0x0, 0x28, 0x10 },
{ FX_WHITE_PUFF, -0x10, 0x28, 0x10 }, { FX_WHITE_PUFF, -0x20, 0x28, 0x10 },
{ FX_WHITE_PUFF, -0x28, 0x28, 0x14 }, { FX_WHITE_PUFF, -0x2C, 0x24, 0x15 },
{ FX_WHITE_PUFF, -0x30, 0x20, 0x16 }, { -1, 0, 0, 0 },
};
const struct_08114104* ptr = gUnk_08114104; const struct_08114104* ptr = gUnk_08114104;
while (ptr->type != -1) { while (ptr->type != -1) {
Entity* effect = CreateFx(this, ptr->type, 0x40); Entity* effect = CreateFx(this, ptr->type, 0x40);

View File

@ -1,9 +1,14 @@
#include "npc.h" #include "npc.h"
extern void (*gUnk_0811423C[])(Entity*); void sub_0806DD90(Entity*);
void sub_0806DEC8(Entity*);
void ClothesRack(Entity* this) { void ClothesRack(Entity* this) {
gUnk_0811423C[this->action](this); static void (*const actionFuncs[])(Entity*) = {
sub_0806DD90,
sub_0806DEC8,
};
actionFuncs[this->action](this);
} }
void sub_0806DD90(Entity* this) { void sub_0806DD90(Entity* this) {

View File

@ -7,9 +7,6 @@
#include "npc.h" #include "npc.h"
#include "item.h" #include "item.h"
extern u16 gUnk_08113344[];
extern u16 gUnk_0811334A[];
void Dampe(Entity* this) { void Dampe(Entity* this) {
switch (this->action) { switch (this->action) {
case 0: case 0:
@ -52,6 +49,11 @@ void Dampe_Fusion(Entity* this) {
} }
void sub_0806BE84(Entity* this, ScriptExecutionContext* context) { void sub_0806BE84(Entity* this, ScriptExecutionContext* context) {
static const u16 messageIndices[] = {
0x2801,
0x2808,
0x2804,
};
u32 msgIndex; u32 msgIndex;
context->condition = 0; context->condition = 0;
@ -65,10 +67,15 @@ void sub_0806BE84(Entity* this, ScriptExecutionContext* context) {
if (GetInventoryValue(ITEM_QST_GRAVEYARD_KEY) >= 2) { if (GetInventoryValue(ITEM_QST_GRAVEYARD_KEY) >= 2) {
msgIndex = 2; msgIndex = 2;
} }
MessageNoOverlap(gUnk_08113344[msgIndex], this); MessageNoOverlap(messageIndices[msgIndex], this);
} }
void sub_0806BEC8(Entity* this, ScriptExecutionContext* context) { void sub_0806BEC8(Entity* this, ScriptExecutionContext* context) {
static const u16 messageIndices[] = {
0x2802,
0x2803,
0x2804,
};
u32 hasGraveyardKey; u32 hasGraveyardKey;
u32 msgIndex; u32 msgIndex;
@ -82,7 +89,7 @@ void sub_0806BEC8(Entity* this, ScriptExecutionContext* context) {
msgIndex = 2; msgIndex = 2;
} }
MessageNoOverlap(gUnk_0811334A[msgIndex], this); MessageNoOverlap(messageIndices[msgIndex], this);
} }
void sub_0806BEFC(void) { void sub_0806BEFC(void) {

View File

@ -2,12 +2,8 @@
#include "functions.h" #include "functions.h"
#include "item.h" #include "item.h"
extern u32 gUnk_081133B4;
void sub_0806BFD8(Entity* this); void sub_0806BFD8(Entity* this);
extern u16 gUnk_081133A4[];
void DrLeft(Entity* this) { void DrLeft(Entity* this) {
if (this->type == 0) { if (this->type == 0) {
if (this->action == 0) { if (this->action == 0) {
@ -52,6 +48,9 @@ void sub_0806C028(Entity* this, ScriptExecutionContext* context) {
} }
void sub_0806C038(Entity* this) { void sub_0806C038(Entity* this) {
static const u16 messageIndices[] = {
0x4d07, 0x4d08, 0x4d09, 0x4d0a, 0x4d0a, 0x4d05, 0x4d06, 0x4d0f,
};
s32 index; s32 index;
index = gSave.global_progress - 5; index = gSave.global_progress - 5;
@ -72,9 +71,15 @@ void sub_0806C038(Entity* this) {
} }
} }
} }
MessageNoOverlap(gUnk_081133A4[index], this); MessageNoOverlap(messageIndices[index], this);
} }
void sub_0806C09C(Entity* this) { void sub_0806C09C(Entity* this) {
static const u8 gUnk_081133B4[] = {
0,
6,
8,
12,
};
sub_08078850(this, 1, 0, &gUnk_081133B4); sub_08078850(this, 1, 0, &gUnk_081133B4);
} }

View File

@ -3,9 +3,10 @@
#include "functions.h" #include "functions.h"
#include "npc.h" #include "npc.h"
extern Dialog gUnk_08113158[]; static const SpriteLoadData gUnk_08113140[] = {
{ 0xf7, 0x48, 0x4 }, { 0x40f7, 0x48, 0x4 }, { 0, 0, 0 }, { 0xf8, 0x49, 0x4 }, { 0x40f8, 0x49, 0x4 }, { 0, 0, 0 },
};
extern SpriteLoadData gUnk_08113140[];
void sub_0806BC58(Entity* this); void sub_0806BC58(Entity* this);
void Farmers(Entity* this) { void Farmers(Entity* this) {
@ -63,6 +64,10 @@ void sub_0806BCD4(Entity* this) {
} }
void sub_0806BCE8(Entity* this) { void sub_0806BCE8(Entity* this) {
static const Dialog gUnk_08113158[] = {
{ 0x29, 3, 4, 1, { 0x1a07, 0x1a02 } },
{ 0x29, 3, 4, 1, { 0x1a11, 0x1a0d } },
};
ShowNPCDialogue(this, &gUnk_08113158[this->type]); ShowNPCDialogue(this, &gUnk_08113158[this->type]);
} }

View File

@ -3,12 +3,24 @@
#include "functions.h" #include "functions.h"
#include "npc.h" #include "npc.h"
extern void (*gUnk_08113D8C[])(Entity*); static const u32 gUnk_08113D84[] = {
0x100c0200,
0x4,
};
extern u32 gUnk_08113D84[]; void sub_0806CAF4(Entity*);
void sub_0806CB80(Entity*);
void sub_0806CBB4(Entity*);
void sub_0806CC08(Entity*);
void Gregal(Entity* this) { void Gregal(Entity* this) {
gUnk_08113D8C[this->type](this); static void (*const actionFuncs[])(Entity*) = {
sub_0806CAF4,
sub_0806CB80,
sub_0806CBB4,
sub_0806CC08,
};
actionFuncs[this->type](this);
} }
void sub_0806CAF4(Entity* this) { void sub_0806CAF4(Entity* this) {

View File

@ -3,9 +3,7 @@
#include "save.h" #include "save.h"
#include "npc.h" #include "npc.h"
extern Dialog gUnk_081144FC[]; static const SpriteLoadData gUnk_081144F0[] = { { 0x163, 0x59, 0x4 }, { 0x4163, 0x59, 0x4 }, { 0, 0, 0 } };
extern SpriteLoadData gUnk_081144F0;
extern u16* gUnk_08001A7C[]; extern u16* gUnk_08001A7C[];
@ -15,7 +13,7 @@ void HurdyGurdyMan(Entity* this) {
switch (this->action) { switch (this->action) {
case 0: case 0:
if (LoadExtraSpriteData(this, &gUnk_081144F0) != 0) { if (LoadExtraSpriteData(this, gUnk_081144F0) != 0) {
this->action = 1; this->action = 1;
this->field_0x68.HALF.HI = 0; this->field_0x68.HALF.HI = 0;
SetDefaultPriority(this, PRIO_MESSAGE); SetDefaultPriority(this, PRIO_MESSAGE);
@ -33,7 +31,7 @@ void HurdyGurdyMan(Entity* this) {
if (this->field_0x68.HALF.LO == 0x32) { if (this->field_0x68.HALF.LO == 0x32) {
pointerToArray = pointerToArray + 3; pointerToArray = pointerToArray + 3;
} }
sub_0801DFB4(this, (u32)*pointerToArray, (u32)pointerToArray[1], (u32)pointerToArray[2]); sub_0801DFB4(this, *pointerToArray, pointerToArray[1], (u32)pointerToArray[2]);
gPlayerState.controlMode = CONTROL_DISABLED; gPlayerState.controlMode = CONTROL_DISABLED;
} else { } else {
sub_0807DD94(this, NULL); sub_0807DD94(this, NULL);
@ -50,18 +48,24 @@ void HurdyGurdyMan(Entity* this) {
} }
void HurdyGurdyMan_Head(Entity* this) { void HurdyGurdyMan_Head(Entity* this) {
SetExtraSpriteFrame(this, 0, (this->frame & 0xffffff7f) + 8); SetExtraSpriteFrame(this, 0, (this->frame & ~ANIM_DONE) + 8);
SetExtraSpriteFrame(this, 1, this->frameIndex); SetExtraSpriteFrame(this, 1, this->frameIndex);
SetSpriteSubEntryOffsetData1(this, 1, 0); SetSpriteSubEntryOffsetData1(this, 1, 0);
sub_0807000C(this); sub_0807000C(this);
} }
void sub_0806E418(Entity* this) { void sub_0806E418(Entity* this) {
static const Dialog dialogs[] = {
{ 0x59, 0x1, 3, 1, { 0x4f52, 0x4f51 } }, { 0x59, 0x1, 3, 1, { 0x4f52, 0x4f51 } },
{ 0x59, 0x1, 3, 1, { 0x4f54, 0x4f53 } }, { 0x59, 0x1, 3, 1, { 0x4f56, 0x4f55 } },
{ 0x59, 0x1, 3, 1, { 0x4f58, 0x4f57 } }, { 0x59, 0x1, 3, 1, { 0x4f5a, 0x4f59 } },
{ 0x59, 0x1, 3, 1, { 0x4f5c, 0x4f5b } }, { 0x59, 0x1, 3, 1, { 0x4f5e, 0x4f5d } }
};
s32 tmp = gSave.global_progress - 2; s32 tmp = gSave.global_progress - 2;
if (tmp < 0) { if (tmp < 0) {
tmp = 0; tmp = 0;
} }
ShowNPCDialogue(this, &gUnk_081144FC[tmp]); ShowNPCDialogue(this, &dialogs[tmp]);
} }
void sub_0806E440(Entity* this) { void sub_0806E440(Entity* this) {
@ -73,7 +77,7 @@ void HurdyGurdyMan_Fusion(Entity* this) {
u32 uVar1; u32 uVar1;
if (this->action == 0) { if (this->action == 0) {
uVar1 = LoadExtraSpriteData(this, &gUnk_081144F0); uVar1 = LoadExtraSpriteData(this, gUnk_081144F0);
if (uVar1 != 0) { if (uVar1 != 0) {
this->action += 1; this->action += 1;
this->spriteSettings.draw = 1; this->spriteSettings.draw = 1;

View File

@ -6,8 +6,6 @@
#include "sound.h" #include "sound.h"
#include "item.h" #include "item.h"
extern u16 gUnk_08113078[];
extern void sub_08095BE0(Entity*, u32); extern void sub_08095BE0(Entity*, u32);
extern const u8 gUnk_08114F30[]; extern const u8 gUnk_08114F30[];
@ -106,6 +104,11 @@ void sub_0806BB7C(Entity* this, ScriptExecutionContext* context) {
} }
void sub_0806BBB0(Entity* this) { void sub_0806BBB0(Entity* this) {
static const u16 messageIndices[] = {
0x490f,
0x4910,
0x4912,
};
u32 tmp; u32 tmp;
if (GetInventoryValue(ITEM_FLIPPERS) == 0) { if (GetInventoryValue(ITEM_FLIPPERS) == 0) {
@ -117,5 +120,5 @@ void sub_0806BBB0(Entity* this) {
} else { } else {
tmp = 2; tmp = 2;
} }
MessageNoOverlap(gUnk_08113078[tmp], this); MessageNoOverlap(messageIndices[tmp], this);
} }

View File

@ -3,9 +3,11 @@
#include "save.h" #include "save.h"
#include "npc.h" #include "npc.h"
extern Dialog gUnk_08113760[]; static const SpriteLoadData gUnk_08113754[] = {
{ 0x101, 0x4e, 0x4 },
extern SpriteLoadData gUnk_08113754; { 0x2101, 0x4e, 0x4 },
{ 0, 0, 0 },
};
bool32 sub_0806C454(Entity* this); bool32 sub_0806C454(Entity* this);
@ -44,7 +46,7 @@ void Mama(Entity* this) {
} }
bool32 sub_0806C454(Entity* this) { bool32 sub_0806C454(Entity* this) {
if (LoadExtraSpriteData(this, &gUnk_08113754) == 0) { if (LoadExtraSpriteData(this, gUnk_08113754) == 0) {
return FALSE; return FALSE;
} else { } else {
SetDefaultPriority(this, PRIO_MESSAGE); SetDefaultPriority(this, PRIO_MESSAGE);
@ -75,7 +77,13 @@ void sub_0806C4A8(Entity* this, ScriptExecutionContext* context) {
} }
void sub_0806C4DC(Entity* this) { void sub_0806C4DC(Entity* this) {
ShowNPCDialogue(this, &gUnk_08113760[gSave.global_progress]); static const Dialog dialogs[] = {
{ 1, 0, 3, 1, { 0x4f03, 0x4f02 } }, { 1, 0, 3, 1, { 0x4f03, 0x4f02 } }, { 1, 0, 3, 1, { 0x4f03, 0x4f02 } },
{ 1, 0, 3, 1, { 0x4f03, 0x4f02 } }, { 1, 0, 3, 1, { 0x4f0d, 0x4f0c } }, { 1, 0, 3, 1, { 0x4f1b, 0x4f1a } },
{ 1, 0, 3, 1, { 0x4f27, 0x4f26 } }, { 1, 0, 3, 1, { 0x4f33, 0x4f32 } }, { 1, 0, 3, 1, { 0x4f3f, 0x4f3e } },
{ 1, 0, 3, 1, { 0x4f49, 0x4f48 } },
};
ShowNPCDialogue(this, &dialogs[gSave.global_progress]);
} }
void sub_0806C4F8(Entity* this) { void sub_0806C4F8(Entity* this) {

View File

@ -5,9 +5,6 @@
#include "npc.h" #include "npc.h"
#include "item.h" #include "item.h"
extern u32 gUnk_08113F44;
extern Dialog gUnk_08113F48[];
void MayorHagen(Entity* this) { void MayorHagen(Entity* this) {
u32 v; u32 v;
switch (this->action) { switch (this->action) {
@ -41,11 +38,24 @@ void MayorHagen(Entity* this) {
} }
void sub_0806CE5C(Entity* this) { void sub_0806CE5C(Entity* this) {
static const u8 gUnk_08113F44[] = {
0,
8,
8,
16,
};
sub_08078784(this, sub_0801E99C(this)); sub_08078784(this, sub_0801E99C(this));
sub_08078850(this, 1, 0, &gUnk_08113F44); sub_08078850(this, 1, 0, gUnk_08113F44);
} }
void sub_0806CE80(Entity* this) { void sub_0806CE80(Entity* this) {
static const Dialog dialogs[] = {
{ 0x89, 1, 2, 1, 0x4c0d, 0x4c01 }, { 0x89, 1, 2, 1, 0x4c0d, 0x4c01 }, { 0x89, 1, 2, 1, 0x4c0d, 0x4c01 },
{ 0x89, 1, 2, 1, 0x4c0d, 0x4c01 }, { 0, 0, 1, 1, 0, 0x4c0e }, { 0, 0, 1, 1, 0, 0x4c0e },
{ 0, 0, 1, 1, 0, 0x4c0f }, { 0, 0, 1, 1, 0, 0x4c10 }, { 0, 0, 1, 1, 0, 0x4c11 },
{ 0, 0, 1, 1, 0, 0x4c12 }, { 0, 0, 1, 1, 0, 0x4c14 }, { 0, 0, 1, 1, 0, 0x4c02 },
{ 0, 0, 1, 1, 0, 0x4c0c }, { 0, 0, 1, 1, 0, 0x4c03 }, { 0, 0, 1, 1, 0, 0x4c04 },
};
u32 v; u32 v;
u32 v2; u32 v2;
v = gSave.global_progress; v = gSave.global_progress;
@ -72,7 +82,7 @@ void sub_0806CE80(Entity* this) {
} }
} }
} }
ShowNPCDialogue(this, &gUnk_08113F48[v]); ShowNPCDialogue(this, &dialogs[v]);
} }
void MayorHagen_Fusion(Entity* this) { void MayorHagen_Fusion(Entity* this) {

View File

@ -14,7 +14,6 @@ void sub_0806EABC(Entity* this, u32 param);
#endif #endif
extern Font gUnk_081146B8; extern Font gUnk_081146B8;
extern s8 gUnk_081145E4[];
void Phonograph(Entity* this) { void Phonograph(Entity* this) {
if (this->action == 0) { if (this->action == 0) {
@ -29,6 +28,15 @@ void Phonograph(Entity* this) {
HandleEntity0x82Actions(this); HandleEntity0x82Actions(this);
} }
static const s16 gUnk_081145E4[] = {
0x0, -0x1, 0x3, 0x1c8, 0x4, 0x171, 0x5, 0x236, 0x6, -0x1, 0xa, -0x1, 0xc, 0x23a, 0xd, -0x1, 0xe, -0x1,
0xf, -0x1, 0x13, -0x1, 0x14, -0x1, 0x15, -0x1, 0x16, -0x1, 0x17, -0x1, 0x18, -0x1, 0x19, -0x1, 0x1a, -0x1,
0x1c, -0x1, 0x1d, -0x1, 0x20, -0x1, 0x2d, -0x1, 0x2e, -0x1, 0x2f, -0x1, 0x33, -0x1, 0x35, -0x1, 0x37, -0x1,
0x38, -0x1, 0x3a, -0x1, 0x1, -0x1, 0x9, 0x320e, 0xb, -0x1, 0x11, -0x1, 0x1e, -0x1, 0x1f, -0x1, 0x21, -0x1,
0x22, -0x1, 0x23, -0x1, 0x24, -0x1, 0x25, -0x1, 0x26, -0x1, 0x27, -0x1, 0x28, -0x1, 0x29, -0x1, 0x2a, -0x1,
0x2b, -0x1, 0x2c, -0x1, 0x30, -0x1, 0x31, -0x1, 0x32, -0x1, 0x34, -0x1, 0x36, -0x1, 0x3b, -0x1
};
#ifdef EU #ifdef EU
void sub_0806E964(Entity* this, ScriptExecutionContext* context) { void sub_0806E964(Entity* this, ScriptExecutionContext* context) {
if (gInput.newKeys & B_BUTTON) { if (gInput.newKeys & B_BUTTON) {
@ -73,13 +81,13 @@ void sub_0806E964(Entity* this, ScriptExecutionContext* context) {
if (gInput.newKeys & A_BUTTON) { if (gInput.newKeys & A_BUTTON) {
if ((s16)this->field_0x68.HWORD != (s16)this->field_0x6a.HWORD || (s16)this->field_0x6c.HWORD == 0) { if ((s16)this->field_0x68.HWORD != (s16)this->field_0x6a.HWORD || (s16)this->field_0x6c.HWORD == 0) {
s8* ptr2 = gUnk_081145E4; const s16* ptr2 = gUnk_081145E4;
s32 field_0x68; s32 field_0x68;
SoundReq(*(s16*)(ptr2 + (s16)this->field_0x68.HWORD * 4)); SoundReq(*(ptr2 + (s16)this->field_0x68.HWORD * 2));
this->field_0x6a.HWORD = this->field_0x68.HWORD; this->field_0x6a.HWORD = this->field_0x68.HWORD;
field_0x68 = (s16)this->field_0x68.HWORD * 4; field_0x68 = (s16)this->field_0x68.HWORD * 4;
ptr2 += 2; ptr2++;
this->field_0x6c.HWORD = *(s16*)(((ptr2 + field_0x68))); this->field_0x6c.HWORD = *(s16*)((((int)ptr2 + field_0x68)));
} else { } else {
SoundReq(SONG_STOP_ALL); SoundReq(SONG_STOP_ALL);
this->field_0x6a.HWORD = 0; this->field_0x6a.HWORD = 0;
@ -155,13 +163,13 @@ void sub_0806E964(Entity* this, ScriptExecutionContext* context) {
if (gInput.newKeys & A_BUTTON) { if (gInput.newKeys & A_BUTTON) {
if ((s16)this->field_0x68.HWORD != (s16)this->field_0x6a.HWORD || (s16)this->field_0x6c.HWORD == 0) { if ((s16)this->field_0x68.HWORD != (s16)this->field_0x6a.HWORD || (s16)this->field_0x6c.HWORD == 0) {
s8* ptr2 = gUnk_081145E4; const s16* ptr2 = gUnk_081145E4;
s32 field_0x68; s32 field_0x68;
SoundReq(*(s16*)(ptr2 + (s16)this->field_0x68.HWORD * 4)); SoundReq(*(ptr2 + (s16)this->field_0x68.HWORD * 2));
this->field_0x6a.HWORD = this->field_0x68.HWORD; this->field_0x6a.HWORD = this->field_0x68.HWORD;
field_0x68 = (s16)this->field_0x68.HWORD * 4; field_0x68 = (s16)this->field_0x68.HWORD * 4;
ptr2 += 2; ptr2++;
this->field_0x6c.HWORD = *(s16*)(((ptr2 + field_0x68))); this->field_0x6c.HWORD = *(s16*)((((int)ptr2 + field_0x68)));
} else { } else {
SoundReq(SONG_STOP_ALL); SoundReq(SONG_STOP_ALL);
this->field_0x6a.HWORD = 0; this->field_0x6a.HWORD = 0;

View File

@ -6,17 +6,14 @@
#include "npc.h" #include "npc.h"
#include "functions.h" #include "functions.h"
extern Hitbox gUnk_081142FC;
extern u32 gUnk_08114304;
extern Dialog gUnk_08114308[];
void SmallTownMinish(Entity* this) { void SmallTownMinish(Entity* this) {
static const Hitbox gUnk_081142FC = { -2, 1, { 0, 0, 0, 0 }, 6, 6 };
static const u8 gUnk_08114304[] = { -2, 1, 6, 6 };
if (this->action == 0) { if (this->action == 0) {
this->action += 1; this->action += 1;
this->hitbox = &gUnk_081142FC; this->hitbox = (Hitbox*)&gUnk_081142FC;
sub_0807DD50(this); sub_0807DD50(this);
sub_08078850(this, 1, 0, &gUnk_08114304); sub_08078850(this, 1, 0, gUnk_08114304);
} else { } else {
sub_0807DD94(this, NULL); sub_0807DD94(this, NULL);
} }
@ -28,9 +25,65 @@ void SmallTownMinish(Entity* this) {
} }
void sub_0806E2DC(Entity* this) { void sub_0806E2DC(Entity* this) {
static const Dialog gUnk_08114308[][8] = { { { 0x0, 0x0, 1, 1, { 0x0, 0x3539 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x3539 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x3539 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x3638 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x3737 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x3839 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x392c } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x392c } } },
{ { 0x0, 0x0, 1, 1, { 0x0, 0x353a } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x353a } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x353a } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x3639 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x3738 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x383a } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x392d } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x392d } } },
{ { 0x0, 0x0, 1, 1, { 0x0, 0x353b } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x353b } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x353b } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x363a } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x3739 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x383b } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x392e } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x392e } } },
{ { 0x45, 0x4, 4, 1, { 0x363c, 0x363b } },
{ 0x45, 0x4, 4, 1, { 0x363c, 0x363b } },
{ 0x45, 0x4, 4, 1, { 0x363c, 0x363b } },
{ 0x45, 0x4, 4, 1, { 0x363c, 0x363b } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x373a } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x383c } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x392f } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x392f } } },
{ { 0x0, 0x0, 1, 1, { 0x0, 0x373b } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x373b } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x373b } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x373b } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x373b } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x383d } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x3930 } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x3930 } } },
{ { 0x0, 0x0, 1, 1, { 0x0, 0x4e1c } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4e1c } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4e1c } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4e1c } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4e1c } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4e1c } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4e1c } },
{ 0x0, 0x0, 1, 1, { 0x0, 0x4e1c } } },
{ { 0x45, 0x4, 4, 1, { 0x4e1e, 0x4e1d } },
{ 0x45, 0x4, 4, 1, { 0x4e1e, 0x4e1d } },
{ 0x45, 0x4, 4, 1, { 0x4e1e, 0x4e1d } },
{ 0x45, 0x4, 4, 1, { 0x4e1e, 0x4e1d } },
{ 0x45, 0x4, 4, 1, { 0x4e1e, 0x4e1d } },
{ 0x45, 0x4, 4, 1, { 0x4e1e, 0x4e1d } },
{ 0x45, 0x4, 4, 1, { 0x4e1e, 0x4e1d } },
{ 0x45, 0x4, 4, 1, { 0x4e1e, 0x4e1d } } } };
s32 dialog = gSave.global_progress - 2; s32 dialog = gSave.global_progress - 2;
if (dialog < 0) { if (dialog < 0) {
dialog = 0; dialog = 0;
} }
ShowNPCDialogue(this, gUnk_08114308 + this->type2 * 8 + dialog); ShowNPCDialogue(this, &gUnk_08114308[this->type2][dialog]);
} }

View File

@ -5,9 +5,10 @@
#include "script.h" #include "script.h"
#include "npc.h" #include "npc.h"
extern SpriteLoadData gUnk_08113910[]; static const SpriteLoadData gUnk_08113910[] = {
{ 0x103, 0x4f, 0x4 }, { 0x2103, 0x4f, 0x4 }, { 0, 0, 0 }, { 0, 0, 0 },
extern Dialog gUnk_08113930[]; { 0, 0x50, 0x4 }, { 0x2002, 0x50, 0x4 }, { 0x4000, 0x50, 0x4 }, { 0, 0, 0 },
};
void Teachers(Entity* this) { void Teachers(Entity* this) {
switch (this->action) { switch (this->action) {
@ -70,13 +71,31 @@ void Teachers_Head(Entity* this) {
} }
void sub_0806C70C(Entity* this) { void sub_0806C70C(Entity* this) {
static const Dialog gUnk_08113930[][8] = {
{ { 0, 0, 1, 1, { 0, 0x3e01 } },
{ 0, 0, 1, 1, { 0, 0x3e01 } },
{ 0, 0, 1, 1, { 0, 0x3e01 } },
{ 0, 0, 1, 1, { 0, 0x3e01 } },
{ 0, 0, 1, 1, { 0, 0x3e01 } },
{ 0, 0, 1, 1, { 0, 0x3e01 } },
{ 0, 0, 1, 1, { 0, 0x3e09 } },
{ 0, 0, 1, 1, { 0, 0x3e09 } } },
{ { 0xa, 0, 3, 1, { 0x3435, 0x3434 } },
{ 0xa, 0, 3, 1, { 0x3435, 0x3434 } },
{ 0xa, 0, 3, 1, { 0x3528, 0x3527 } },
{ 0xa, 0, 3, 1, { 0x3625, 0x3624 } },
{ 0, 0, 3, 1, { 0x3e03, 0x3e02 } },
{ 0, 0, 1, 1, { 0, 0x3e06 } },
{ 0, 0, 1, 1, { 0, 0x3e0a } },
{ 0, 0, 1, 1, { 0, 0x3e0a } } },
};
int offset; int offset;
offset = gSave.global_progress - 2; offset = gSave.global_progress - 2;
if (offset < 0) if (offset < 0)
offset = 0; offset = 0;
ShowNPCDialogue(this, gUnk_08113930 + this->type * 8 + offset); ShowNPCDialogue(this, &gUnk_08113930[this->type][offset]);
} }
void Teachers_Fusion(Entity* this) { void Teachers_Fusion(Entity* this) {