add subdirs

This commit is contained in:
theo3
2020-07-13 15:27:20 -07:00
parent c47f16e5e7
commit 62ddaaa5f6
77 changed files with 138 additions and 186 deletions
+5
View File
@@ -69,6 +69,7 @@ FIX := tools/gbafix/gbafix
# Secondary expansion is required for dependency variables in object rules.
.SECONDEXPANSION:
$(shell mkdir -p $(C_BUILDDIR) $(ASM_BUILDDIR) $(DATA_ASM_BUILDDIR) $(SONG_BUILDDIR) $(MID_BUILDDIR))
infoshell = $(foreach line, $(shell $1 | sed "s/ /__SPACE__/g"), $(info $(subst __SPACE__, ,$(line))))
@@ -101,6 +102,10 @@ MID_OBJS := $(patsubst $(MID_SUBDIR)/%.mid,$(MID_BUILDDIR)/%.o,$(MID_SRCS))
OBJS := $(C_OBJS) $(ASM_OBJS) $(DATA_ASM_OBJS) $(SONG_OBJS) $(MID_OBJS)
OBJS_REL := $(patsubst $(OBJ_DIR)/%,%,$(OBJS))
SUBDIRS := $(sort $(dir $(OBJS)))
$(shell mkdir -p $(SUBDIRS))
TOOLDIRS := $(filter-out tools/agbcc tools/binutils,$(wildcard tools/*))
TOOLBASE = $(TOOLDIRS:tools/%=%)
TOOLS = $(foreach tool,$(TOOLBASE),tools/$(tool)/$(tool)$(EXE))
-112
View File
@@ -6,118 +6,6 @@
.text
thumb_func_start Townsperson
Townsperson: @ 0x08061B8C
push {lr}
adds r2, r0, #0
ldrb r1, [r2, #0x10]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _08061BB0
ldr r0, _08061BAC @ =gUnk_0810B77C
ldrb r1, [r2, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r2, #0
bl _call_via_r1
b _08061BC0
.align 2, 0
_08061BAC: .4byte gUnk_0810B77C
_08061BB0:
ldr r0, _08061BC4 @ =gUnk_0810B774
ldrb r1, [r2, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r2, #0
bl _call_via_r1
_08061BC0:
pop {pc}
.align 2, 0
_08061BC4: .4byte gUnk_0810B774
thumb_func_start sub_08061BC8
sub_08061BC8: @ 0x08061BC8
push {r4, lr}
adds r4, r0, #0
ldr r1, _08061BFC @ =gUnk_0810B6EC
ldrb r0, [r4, #0xa]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl LoadExtraSpriteData
cmp r0, #0
beq _08061BF8
movs r0, #2
strb r0, [r4, #0x14]
ldrb r0, [r4, #0xa]
adds r0, #1
strb r0, [r4, #0xf]
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #2
bl sub_08061CB4
_08061BF8:
pop {r4, pc}
.align 2, 0
_08061BFC: .4byte gUnk_0810B6EC
thumb_func_start sub_08061C00
sub_08061C00: @ 0x08061C00
push {r4, lr}
adds r4, r0, #0
movs r1, #0x20
movs r2, #0x20
bl sub_0806ED9C
adds r1, r0, #0
cmp r1, #0
bge _08061C18
ldrb r0, [r4, #0x14]
adds r1, r0, #4
b _08061C32
_08061C18:
ldrb r0, [r4, #0xf]
cmp r0, #0
bne _08061C24
movs r0, #0x10
strb r0, [r4, #0xf]
b _08061C32
_08061C24:
subs r0, #1
strb r0, [r4, #0xf]
adds r0, r4, #0
adds r0, #0x58
ldrb r0, [r0]
movs r1, #3
ands r1, r0
_08061C32:
adds r0, r4, #0
bl sub_08061CB4
adds r0, r4, #0
bl sub_0806ED78
adds r1, r4, #0
adds r1, #0x39
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
beq _08061C58
movs r0, #0
strb r0, [r1]
ldrb r0, [r4, #0xb]
ldr r1, _08061C5C @ =0x00000A01
adds r0, r0, r1
bl TextboxNoOverlapFollow
_08061C58:
pop {r4, pc}
.align 2, 0
_08061C5C: .4byte 0x00000A01
thumb_func_start Townsperson_Head
Townsperson_Head: @ 0x08061C60
push {r4, r5, lr}
+75 -74
View File
@@ -323,16 +323,16 @@ SECTIONS {
asm/code_0801D714.o(.text);
asm/code_0801D79C.o(.text);
/* enemies */
src/octorok.o(.text);
src/enemy/octorok.o(.text);
asm/octorok.o(.text);
asm/chuchu.o(.text);
asm/leever.o(.text);
asm/peahat.o(.text);
asm/rollobite.o(.text);
asm/darkNut.o(.text);
src/hangingSeed.o(.text);
src/enemy/hangingSeed.o(.text);
asm/beetle.o(.text);
src/keese.o(.text);
src/enemy/keese.o(.text);
asm/keese.o(.text);
asm/doorMimic.o(.text);
asm/rockChuchu.o(.text);
@@ -352,7 +352,7 @@ SECTIONS {
asm/madderpillar.o(.text);
asm/waterDrop.o(.text);
asm/wallMaster.o(.text);
src/bombPeahat.o(.text);
src/enemy/bombPeahat.o(.text);
asm/bombPeahat.o(.text);
asm/spark.o(.text);
asm/chaser.o(.text);
@@ -371,10 +371,10 @@ SECTIONS {
asm/armos.o(.text);
asm/eyegore.o(.text);
asm/rope.o(.text);
src/smallPesto.o(.text);
src/enemy/smallPesto.o(.text);
asm/smallPesto.o(.text);
asm/acroBandits.o(.text);
src/bladeTrap.o(.text);
src/enemy/bladeTrap.o(.text);
asm/keaton.o(.text);
asm/crow.o(.text);
asm/mulldozer.o(.text);
@@ -397,10 +397,10 @@ SECTIONS {
asm/flyingSkull.o(.text);
asm/mazaalBracelet.o(.text);
asm/takkuri.o(.text);
src/bowMoblin.o(.text);
src/enemy/bowMoblin.o(.text);
asm/bowMoblin.o(.text);
src/lakitu.o(.text);
src/lakituCloud.o(.text);
src/enemy/lakitu.o(.text);
src/enemy/lakituCloud.o(.text);
asm/enemy49.o(.text);
asm/vaatiRebornEnemy.o(.text);
asm/vaatiProjectile.o(.text);
@@ -413,11 +413,11 @@ SECTIONS {
asm/vaatiArm.o(.text);
asm/dust.o(.text);
asm/vaatiBall.o(.text);
src/slime.o(.text);
src/enemy/slime.o(.text);
asm/slime.o(.text);
asm/miniSlime.o(.text);
asm/fireballGuy.o(.text);
src/miniFireballGuy.o(.text);
src/enemy/miniFireballGuy.o(.text);
asm/miniFireballGuy.o(.text);
asm/enemy5A.o(.text);
asm/businessScrubPrologue.o(.text);
@@ -467,9 +467,9 @@ SECTIONS {
asm/code_08055FF4.o(.text);
src/textbox.o(.text);
asm/code_08056418.o(.text);
src/manager1.o(.text);
src/manager/manager1.o(.text);
asm/manager1.o(.text);
src/manager2.o(.text);
src/manager/manager2.o(.text);
asm/manager2.o(.text);
asm/manager3.o(.text);
asm/manager4.o(.text);
@@ -507,14 +507,14 @@ SECTIONS {
asm/manager24.o(.text);
asm/manager25.o(.text);
asm/manager26.o(.text);
src/manager27.o(.text);
src/manager/manager27.o(.text);
asm/manager28.o(.text);
asm/manager29.o(.text);
asm/manager2A.o(.text);
asm/manager2B.o(.text);
asm/manager2C.o(.text);
asm/manager2D.o(.text);
src/manager2E.o(.text);
src/manager/manager2E.o(.text);
asm/manager2E.o(.text);
asm/manager2F.o(.text);
asm/manager30.o(.text);
@@ -533,27 +533,28 @@ SECTIONS {
asm/getEmptyEntity.o(.text);
asm/code_0805E744.o(.text);
/* npcs */
src/gentari.o(.text);
src/festari.o(.text);
src/npc/gentari.o(.text);
src/npc/festari.o(.text);
asm/festari.o(.text);
src/forestMinish.o(.text);
src/postman.o(.text);
src/npc/forestMinish.o(.text);
src/npc/postman.o(.text);
asm/postman.o(.text);
asm/npc5.o(.text);
src/npc/townsperson.o(.text);
asm/townsperson.o(.text);
asm/kid.o(.text);
asm/npc9.o(.text);
src/stamp.o(.text);
src/npc/stamp.o(.text);
asm/marcy.o(.text);
src/wheaton.o(.text);
src/npc/wheaton.o(.text);
asm/pita.o(.text);
asm/minishEzlo.o(.text);
src/mailbox.o(.text);
src/npc/mailbox.o(.text);
asm/beedle.o(.text);
asm/brocco.o(.text);
asm/sittingPerson.o(.text);
asm/pina.o(.text);
src/guard.o(.text);
src/npc/guard.o(.text);
asm/guardWithSpear.o(.text);
asm/castleMaid.o(.text);
asm/din.o(.text);
@@ -562,38 +563,38 @@ SECTIONS {
asm/sturgeon.o(.text);
asm/tingleSiblings.o(.text);
asm/stockwell.o(.text);
src/talon.o(.text);
src/malon.o(.text);
src/epona.o(.text);
src/milkCart.o(.text);
src/npc/talon.o(.text);
src/npc/malon.o(.text);
src/npc/epona.o(.text);
src/npc/milkCart.o(.text);
asm/ghostBrothers.o(.text);
src/smith.o(.text);
src/npc/smith.o(.text);
asm/npc23.o(.text);
asm/kingDaltus.o(.text);
asm/ministerPotho.o(.text);
asm/npc26.o(.text);
asm/vaati.o(.text);
src/zelda.o(.text);
src/mutoh.o(.text);
src/carpenter.o(.text);
src/npc/zelda.o(.text);
src/npc/mutoh.o(.text);
src/npc/carpenter.o(.text);
asm/carpenter.o(.text);
asm/castorWildsStatue.o(.text);
src/cat.o(.text);
src/npc/cat.o(.text);
asm/cat.o(.text);
asm/mountainMinish.o(.text);
asm/zeldaFollower.o(.text);
asm/melari.o(.text);
src/bladeBrothers.o(.text);
src/cow.o(.text);
src/goron.o(.text);
src/npc/bladeBrothers.o(.text);
src/npc/cow.o(.text);
src/npc/goron.o(.text);
asm/goronMerchant.o(.text);
asm/gorman.o(.text);
asm/dog.o(.text);
src/syrup.o(.text);
src/npc/syrup.o(.text);
asm/syrup.o(.text);
src/rem.o(.text);
src/npc/rem.o(.text);
asm/rem.o(.text);
src/townMinish.o(.text);
src/npc/townMinish.o(.text);
asm/townMinish.o(.text);
asm/librari.o(.text);
asm/percy.o(.text);
@@ -602,24 +603,24 @@ SECTIONS {
asm/librarians.o(.text);
asm/farmers.o(.text);
asm/carlov.o(.text);
src/dampe.o(.text);
src/npc/dampe.o(.text);
asm/drLeft.o(.text);
asm/kingGustaf.o(.text);
asm/gina.o(.text);
src/simon.o(.text);
src/npc/simon.o(.text);
asm/anju.o(.text);
asm/mama.o(.text);
src/emma.o(.text);
src/teachers.o(.text);
src/windTribespeople.o(.text);
src/npc/emma.o(.text);
src/npc/teachers.o(.text);
src/npc/windTribespeople.o(.text);
asm/windTribespeople.o(.text);
asm/gregal.o(.text);
asm/mayorHagen.o(.text);
src/bigGoron.o(.text);
src/npc/bigGoron.o(.text);
asm/bigGoron.o(.text);
asm/ezloCap.o(.text);
asm/npc4E.o(.text);
src/clothesRack.o(.text);
src/npc/clothesRack.o(.text);
asm/clothesRack.o(.text);
asm/picolyteBottles.o(.text);
asm/smallTownMinish.o(.text);
@@ -671,7 +672,7 @@ SECTIONS {
asm/object9.o(.text);
asm/objectA.o(.text);
asm/objectB.o(.text);
src/chestSpawner.o(.text);
src/object/chestSpawner.o(.text);
asm/chestSpawner.o(.text);
asm/objectD.o(.text);
asm/objectE.o(.text);
@@ -679,18 +680,18 @@ SECTIONS {
asm/object10.o(.text);
asm/object11.o(.text);
asm/object12.o(.text);
src/railtrack.o(.text);
src/object/railtrack.o(.text);
asm/lilypadLarge.o(.text);
asm/object15.o(.text);
asm/floatingPlatform.o(.text);
asm/object17.o(.text);
asm/evilSpirit.o(.text);
asm/houseDoorExterior.o(.text);
src/object1A.o(.text);
src/greatFairy.o(.text);
src/object/object1A.o(.text);
src/object/greatFairy.o(.text);
asm/greatFairy.o(.text);
src/object1C.o(.text);
src/object1D.o(.text);
src/object/object1C.o(.text);
src/object/object1D.o(.text);
asm/object1E.o(.text);
asm/object1F.o(.text);
asm/object20.o(.text);
@@ -706,7 +707,7 @@ SECTIONS {
asm/object2A.o(.text);
asm/object2B.o(.text);
asm/beanstalk.o(.text);
src/smoke.o(.text);
src/object/smoke.o(.text);
asm/pushableRock.o(.text);
asm/hittableLever.o(.text);
asm/object30.o(.text);
@@ -727,7 +728,7 @@ SECTIONS {
asm/macroLink.o(.text);
asm/object3D.o(.text);
asm/object3E.o(.text);
src/giantLeaf.o(.text);
src/object/giantLeaf.o(.text);
asm/fairy.o(.text);
asm/ladderUp.o(.text);
asm/object42.o(.text);
@@ -735,35 +736,35 @@ SECTIONS {
asm/object44.o(.text);
asm/object45.o(.text);
asm/giantBookLadder.o(.text);
src/heartContainer.o(.text);
src/object/heartContainer.o(.text);
asm/heartContainer.o(.text);
asm/object48.o(.text);
src/object49.o(.text);
src/object/object49.o(.text);
asm/object49.o(.text);
asm/backgroundCloud.o(.text);
asm/object4B.o(.text);
asm/pushableFurniture.o(.text);
asm/furniture.o(.text);
src/minishSizedEntrance.o(.text);
src/object/minishSizedEntrance.o(.text);
asm/minishSizedEntrance.o(.text);
src/archway.o(.text);
src/object/archway.o(.text);
asm/giantRock.o(.text);
asm/object51.o(.text);
asm/object52.o(.text);
asm/object53.o(.text);
asm/pullableLever.o(.text);
asm/minecart.o(.text);
src/thoughtBubble.o(.text);
src/object/thoughtBubble.o(.text);
asm/hiddenLadderDown.o(.text);
asm/gentariCurtains.o(.text);
asm/lavaPlatform.o(.text);
asm/object5A.o(.text);
asm/object5B.o(.text);
src/mask.o(.text);
src/object/mask.o(.text);
asm/houseDoorInterior.o(.text);
asm/whirlwind.o(.text);
asm/objectBlockingStairs.o(.text);
src/swordsmanNewsletter.o(.text);
src/object/swordsmanNewsletter.o(.text);
asm/object61.o(.text);
asm/giantTwig.o(.text);
asm/object63.o(.text);
@@ -777,14 +778,14 @@ SECTIONS {
asm/crenalBeanSprout.o(.text);
asm/minecartDoor.o(.text);
asm/objectOnPillar.o(.text);
src/mineralWaterSource.o(.text);
src/object/mineralWaterSource.o(.text);
asm/minishSizedArchway.o(.text);
asm/object70.o(.text);
asm/pushableGrave.o(.text);
asm/object72.o(.text);
asm/lilypadSmall.o(.text);
asm/object74.o(.text);
src/bell.o(.text);
src/object/bell.o(.text);
asm/macroDecorations.o(.text);
asm/object79.o(.text);
asm/steam.o(.text);
@@ -799,7 +800,7 @@ SECTIONS {
asm/bigPushableLever.o(.text);
asm/smallIceBlock.o(.text);
asm/bigIceBlock.o(.text);
src/object86.o(.text);
src/object/object86.o(.text);
asm/object87.o(.text);
asm/macroBook.o(.text);
asm/object89.o(.text);
@@ -813,7 +814,7 @@ SECTIONS {
asm/object91.o(.text);
asm/bakerOven.o(.text);
asm/object93.o(.text);
src/windTribeFlag.o(.text);
src/object/windTribeFlag.o(.text);
asm/bird.o(.text);
asm/object96.o(.text);
asm/object97.o(.text);
@@ -821,21 +822,21 @@ SECTIONS {
asm/object99.o(.text);
asm/macroAcorn.o(.text);
asm/object9B.o(.text);
src/treeHidingPortal.o(.text);
src/object/treeHidingPortal.o(.text);
asm/treeHidingPortal.o(.text);
src/lightableSwitch.o(.text);
src/object9E.o(.text);
src/fan.o(.text);
src/object/lightableSwitch.o(.text);
src/object/object9E.o(.text);
src/object/fan.o(.text);
asm/fan.o(.text);
asm/objectA0.o(.text);
asm/palaceArchway.o(.text);
asm/objectA2.o(.text);
src/cloud.o(.text);
src/object/cloud.o(.text);
asm/minishLight.o(.text);
asm/objectA5.o(.text);
asm/objectA6.o(.text);
asm/objectA7.o(.text);
src/objectA8.o(.text);
src/object/objectA8.o(.text);
asm/objectA8.o(.text);
asm/objectA9.o(.text);
asm/waterfallOpening.o(.text);
@@ -844,18 +845,18 @@ SECTIONS {
asm/objectAD.o(.text);
asm/floatingBlock.o(.text);
asm/objectAF.o(.text);
src/metalDoor.o(.text);
src/object/metalDoor.o(.text);
asm/jailBars.o(.text);
asm/objectB2.o(.text);
asm/objectB3.o(.text);
asm/objectB4.o(.text);
asm/objectB5.o(.text);
asm/objectB6.o(.text);
src/well.o(.text);
src/object/well.o(.text);
asm/windTribeTeleporter.o(.text);
asm/objectB9.o(.text);
asm/objectBA.o(.text);
src/windcrest.o(.text);
src/object/windcrest.o(.text);
asm/litArea.o(.text);
asm/objectBD.o(.text);
asm/pinwheel.o(.text);
@@ -914,7 +915,7 @@ SECTIONS {
data/data_080D5360.o(.rodata);
src/item.o(.rodata);
data/data_0811BD44.o(.rodata);
src/greatFairy.o(.rodata);
src/object/greatFairy.o(.rodata);
data/greatFairyAnimations.o(.rodata);
data/data_081208A0.o(.rodata);
data/strings.o(.rodata);
View File
View File
View File
View File
View File
View File
View File
View File
View File
View File
View File
View File
View File
View File
View File
View File
View File
View File
View File
View File
View File
View File
+58
View File
@@ -0,0 +1,58 @@
#include "global.h"
#include "entity.h"
#include "npc.h"
#include "link.h"
#include "textbox.h"
extern void (*const gUnk_0810B774[])(Entity*);
extern void (*const gUnk_0810B77C[])(Entity*);
extern void sub_08061CB4(Entity*, u32);
extern u32 sub_0806ED9C(Entity*, u32, u32);
extern void sub_0806ED78(Entity*);
extern SpriteLoadData* gUnk_0810B6EC[];
void Townsperson(Entity *this)
{
if ((this->flags & 2) != 0) {
gUnk_0810B77C[this->action](this);
}
else {
gUnk_0810B774[this->action](this);
}
}
void sub_08061BC8(Entity *this)
{
if (LoadExtraSpriteData(this, gUnk_0810B6EC[this->entityType.form])) {
this->animationState = 2;
this->field_0xf = this->entityType.form + 1;
this->action++;
sub_08061CB4(this, 2);
}
}
void sub_08061C00(Entity *this)
{
s32 uVar1;
uVar1 = sub_0806ED9C(this, 0x20, 0x20);
if (uVar1 < 0) {
uVar1 = this->animationState + 4;
}
else {
if (this->field_0xf == 0) {
this->field_0xf = 0x10;
}
else {
this->field_0xf--;
uVar1 = this->animIndex & 3;
}
}
sub_08061CB4(this, uVar1);
sub_0806ED78(this);
if (this->interactType != 0) {
this->interactType = 0;
TextboxNoOverlapFollow(this->entityType.parameter + 0xa01);
}
}
View File
View File
View File
View File
View File
View File
View File
View File