mirror of
https://github.com/zeldaret/tmc
synced 2026-05-24 23:22:08 -04:00
merge master
This commit is contained in:
@@ -82,14 +82,14 @@ LDFLAGS = -Map ../../$(MAP)
|
||||
LIB := -L ../../tools/agbcc/lib -lc
|
||||
|
||||
SHA1 := $(shell { command -v sha1sum || command -v shasum; } 2>/dev/null) -c
|
||||
GFX := tools/gbagfx/gbagfx
|
||||
AIF := tools/aif2pcm/aif2pcm
|
||||
MID := tools/mid2agb/mid2agb
|
||||
SCANINC := tools/scaninc/scaninc
|
||||
GFX := tools/bin/gbagfx
|
||||
AIF := tools/bin/aif2pcm
|
||||
MID := tools/bin/mid2agb
|
||||
SCANINC := tools/bin/scaninc
|
||||
# TODO: use charmap?
|
||||
PREPROC := tools/preproc/preproc
|
||||
FIX := tools/gbafix/gbafix
|
||||
ASSET_PROCESSOR := tools/asset_processor/asset_processor
|
||||
PREPROC := tools/bin/preproc
|
||||
FIX := tools/bin/gbafix
|
||||
ASSET_PROCESSOR := tools/bin/asset_processor
|
||||
|
||||
ASSET_CONFIGS = assets/assets.json assets/gfx.json assets/map.json assets/samples.json assets/sounds.json
|
||||
TRANSLATIONS = translations/USA.bin translations/English.bin translations/French.bin translations/German.bin translations/Spanish.bin translations/Italian.bin
|
||||
@@ -149,11 +149,7 @@ 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))
|
||||
|
||||
.PHONY: all setup clean-tools mostlyclean clean tidy $(TOOLDIRS) extractassets
|
||||
.PHONY: all setup clean-tools mostlyclean clean tidy tools extractassets buildassets custom
|
||||
|
||||
MAKEFLAGS += --no-print-directory
|
||||
|
||||
@@ -166,11 +162,23 @@ all: build/extracted_assets_$(GAME_VERSION)
|
||||
target: $(ROM)
|
||||
@$(SHA1) $(BUILD_NAME).sha1
|
||||
|
||||
custom: buildassets
|
||||
@$(MAKE) target GAME_VERSION=$(GAME_VERSION)
|
||||
|
||||
# kept for backwards compat
|
||||
compare: $(ROM)
|
||||
@$(SHA1) $(BUILD_NAME).sha1
|
||||
|
||||
setup: $(TOOLDIRS)
|
||||
setup: tools
|
||||
|
||||
# all tools are build at once
|
||||
# FIXME figure out why make builds multiple times when specifying all tools here
|
||||
tools: $(GFX)
|
||||
|
||||
$(GFX) $(AIF) $(MID) $(SCANINC) $(PREPROC) $(FIX) $(ASSET_PROCESSOR) tools/bin/agb2mid tools/bin/tmc_strings tools/bin/bin2c &:
|
||||
mkdir -p tools/cmake-build
|
||||
unset CC CXX AS LD LDFLAGS && cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=tools -S tools -B tools/cmake-build
|
||||
cmake --build tools/cmake-build -j --target install
|
||||
|
||||
# Automatically extract binary data
|
||||
build/extracted_assets_%: $(ASSET_CONFIGS) $(TRANSLATIONS)
|
||||
@@ -181,8 +189,9 @@ build/extracted_assets_%: $(ASSET_CONFIGS) $(TRANSLATIONS)
|
||||
extractassets:
|
||||
$(ASSET_PROCESSOR) convert $(GAME_VERSION) $(ASSET_BUILDDIR)
|
||||
|
||||
$(TOOLDIRS):
|
||||
@$(MAKE) -C $@
|
||||
# Build the assets from the human readable form
|
||||
buildassets:
|
||||
$(ASSET_PROCESSOR) build $(GAME_VERSION) $(ASSET_BUILDDIR)
|
||||
|
||||
mostlyclean: tidy
|
||||
rm -f sound/direct_sound_samples/*.bin
|
||||
@@ -191,7 +200,8 @@ mostlyclean: tidy
|
||||
rm -f $(AUTO_GEN_TARGETS)
|
||||
|
||||
clean-tools:
|
||||
@$(foreach tooldir,$(TOOLDIRS),$(MAKE) clean -C $(tooldir);)
|
||||
rm -rf tools/bin
|
||||
rm -rf tools/cmake-build
|
||||
|
||||
clean: mostlyclean clean-tools
|
||||
|
||||
@@ -217,12 +227,12 @@ tidy:
|
||||
%.lz: % ; $(GFX) $< $@
|
||||
%.rl: % ; $(GFX) $< $@
|
||||
cd $(@D) && ../../$(MID) $(<F)
|
||||
translations/USA.bin: translations/USA.json ; tools/tmc_strings/tmc_strings -p --source $< --dest $@ --size 0x499E0
|
||||
translations/English.bin: translations/English.json ; tools/tmc_strings/tmc_strings -p --source $< --dest $@ --size 0x488C0
|
||||
translations/French.bin: translations/French.json ; tools/tmc_strings/tmc_strings -p --source $< --dest $@ --size 0x47A90
|
||||
translations/German.bin: translations/German.json ; tools/tmc_strings/tmc_strings -p --source $< --dest $@ --size 0x42FC0
|
||||
translations/Spanish.bin: translations/Spanish.json ; tools/tmc_strings/tmc_strings -p --source $< --dest $@ --size 0x41930
|
||||
translations/Italian.bin: translations/Italian.json ; tools/tmc_strings/tmc_strings -p --source $< --dest $@ --size 0x438E0
|
||||
translations/USA.bin: translations/USA.json ; tools/bin/tmc_strings -p --source $< --dest $@ --size 0x499E0
|
||||
translations/English.bin: translations/English.json ; tools/bin/tmc_strings -p --source $< --dest $@ --size 0x488C0
|
||||
translations/French.bin: translations/French.json ; tools/bin/tmc_strings -p --source $< --dest $@ --size 0x47A90
|
||||
translations/German.bin: translations/German.json ; tools/bin/tmc_strings -p --source $< --dest $@ --size 0x42FC0
|
||||
translations/Spanish.bin: translations/Spanish.json ; tools/bin/tmc_strings -p --source $< --dest $@ --size 0x41930
|
||||
translations/Italian.bin: translations/Italian.json ; tools/bin/tmc_strings -p --source $< --dest $@ --size 0x438E0
|
||||
|
||||
ifeq ($(NODEP),1)
|
||||
$(C_BUILDDIR)/%.o: c_dep :=
|
||||
|
||||
+1
-1
@@ -446,7 +446,7 @@ sub_08054EFC: @ 0x08054EFC
|
||||
subs r0, #0x10
|
||||
strh r0, [r1, #0x32]
|
||||
adds r0, r4, #0
|
||||
bl ResolveEntityBelow
|
||||
bl SortEntityBelow
|
||||
_08054F54:
|
||||
movs r0, #0xfd
|
||||
bl SoundReq
|
||||
|
||||
+1
-1
@@ -724,7 +724,7 @@ _08078DE0:
|
||||
strh r0, [r4, #0x32]
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
bl ResolveEntityOnTop
|
||||
bl SortEntityAbove
|
||||
ldr r0, _08078E34 @ =gPlayerState
|
||||
ldrb r0, [r0, #5]
|
||||
cmp r0, #4
|
||||
|
||||
+1
-1
@@ -419,7 +419,7 @@ _08080DB4:
|
||||
adds r2, #1
|
||||
strb r0, [r2]
|
||||
adds r0, r4, #0
|
||||
bl ResolveEntityOnTop
|
||||
bl SortEntityAbove
|
||||
b _08080E00
|
||||
_08080DEE:
|
||||
ldr r0, _08080E04 @ =gRoomTransition
|
||||
|
||||
-845
@@ -1,845 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_0806FB00
|
||||
sub_0806FB00: @ 0x0806FB00
|
||||
push {r4, lr}
|
||||
mov ip, r0
|
||||
adds r4, r1, #0
|
||||
cmp r3, #0
|
||||
bne _0806FB0C
|
||||
movs r3, #1
|
||||
_0806FB0C:
|
||||
mov r1, ip
|
||||
adds r1, #0x7e
|
||||
movs r0, #0
|
||||
strb r0, [r1]
|
||||
mov r0, ip
|
||||
adds r0, #0x7f
|
||||
strb r3, [r0]
|
||||
mov r0, ip
|
||||
ldrh r1, [r0, #0x2e]
|
||||
adds r0, #0x80
|
||||
strh r1, [r0]
|
||||
mov r1, ip
|
||||
ldrh r0, [r1, #0x32]
|
||||
adds r1, #0x82
|
||||
strh r0, [r1]
|
||||
mov r0, ip
|
||||
adds r0, #0x84
|
||||
strh r4, [r0]
|
||||
adds r0, #2
|
||||
strh r2, [r0]
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0806FB38
|
||||
sub_0806FB38: @ 0x0806FB38
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r5, r0, #0
|
||||
adds r6, r5, #0
|
||||
adds r6, #0x7e
|
||||
adds r7, r5, #0
|
||||
adds r7, #0x7f
|
||||
ldrb r0, [r6]
|
||||
ldrb r1, [r7]
|
||||
cmp r0, r1
|
||||
bhs _0806FBA0
|
||||
adds r0, #1
|
||||
strb r0, [r6]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x84
|
||||
movs r2, #0
|
||||
ldrsh r1, [r0, r2]
|
||||
adds r4, r5, #0
|
||||
adds r4, #0x80
|
||||
movs r2, #0
|
||||
ldrsh r0, [r4, r2]
|
||||
subs r1, r1, r0
|
||||
ldrb r0, [r6]
|
||||
muls r0, r1, r0
|
||||
lsls r0, r0, #8
|
||||
ldrb r1, [r7]
|
||||
bl __divsi3
|
||||
asrs r0, r0, #8
|
||||
ldrh r4, [r4]
|
||||
adds r0, r0, r4
|
||||
strh r0, [r5, #0x2e]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x86
|
||||
movs r2, #0
|
||||
ldrsh r1, [r0, r2]
|
||||
adds r4, r5, #0
|
||||
adds r4, #0x82
|
||||
movs r2, #0
|
||||
ldrsh r0, [r4, r2]
|
||||
subs r1, r1, r0
|
||||
ldrb r0, [r6]
|
||||
muls r0, r1, r0
|
||||
lsls r0, r0, #8
|
||||
ldrb r1, [r7]
|
||||
bl __divsi3
|
||||
asrs r0, r0, #8
|
||||
ldrh r4, [r4]
|
||||
adds r0, r0, r4
|
||||
strh r0, [r5, #0x32]
|
||||
movs r0, #0
|
||||
b _0806FBB2
|
||||
_0806FBA0:
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x84
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r5, #0x2e]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x86
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r5, #0x32]
|
||||
movs r0, #1
|
||||
_0806FBB2:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
|
||||
thumb_func_start sub_0806FBB4
|
||||
sub_0806FBB4: @ 0x0806FBB4
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldr r0, _0806FBD0 @ =gRoomTransition
|
||||
ldrb r0, [r0, #5]
|
||||
cmp r0, #0
|
||||
bne _0806FBC8
|
||||
ldr r0, _0806FBD4 @ =gPlayerState
|
||||
ldrb r0, [r0, #5]
|
||||
cmp r0, #0
|
||||
bne _0806FBCC
|
||||
_0806FBC8:
|
||||
movs r0, #6
|
||||
strb r0, [r1, #0xd]
|
||||
_0806FBCC:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0806FBD0: .4byte gRoomTransition
|
||||
_0806FBD4: .4byte gPlayerState
|
||||
|
||||
thumb_func_start AllocMutableHitbox
|
||||
AllocMutableHitbox: @ 0x0806FBD8
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl UnloadHitbox
|
||||
movs r0, #0xc
|
||||
bl zMalloc
|
||||
str r0, [r4, #0x48]
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start UnloadHitbox
|
||||
UnloadHitbox: @ 0x0806FBEC
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r0, [r4, #0x48]
|
||||
bl zFree
|
||||
movs r0, #0
|
||||
str r0, [r4, #0x48]
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start CheckPlayerProximity
|
||||
CheckPlayerProximity: @ 0x0806FBFC
|
||||
push {r4, r5, r6, lr}
|
||||
adds r5, r3, #0
|
||||
ldr r4, _0806FC20 @ =gPlayerEntity
|
||||
movs r6, #0x2e
|
||||
ldrsh r3, [r4, r6]
|
||||
subs r3, r3, r0
|
||||
movs r6, #0x32
|
||||
ldrsh r0, [r4, r6]
|
||||
subs r0, r0, r1
|
||||
movs r1, #0
|
||||
cmp r3, r2
|
||||
bhs _0806FC1A
|
||||
cmp r0, r5
|
||||
bhs _0806FC1A
|
||||
movs r1, #1
|
||||
_0806FC1A:
|
||||
adds r0, r1, #0
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0806FC20: .4byte gPlayerEntity
|
||||
|
||||
thumb_func_start sub_0806FC24
|
||||
sub_0806FC24: @ 0x0806FC24
|
||||
push {r4, lr}
|
||||
adds r4, r1, #0
|
||||
ldr r1, _0806FC44 @ =gUnk_080046A4
|
||||
bl sub_08007DD6
|
||||
cmp r0, #0
|
||||
beq _0806FC4C
|
||||
lsls r0, r0, #3
|
||||
ldr r1, _0806FC48 @ =gUnk_080047F6
|
||||
adds r0, r0, r1
|
||||
ldrh r0, [r0]
|
||||
asrs r0, r4
|
||||
movs r1, #1
|
||||
ands r0, r1
|
||||
b _0806FC4E
|
||||
.align 2, 0
|
||||
_0806FC44: .4byte gUnk_080046A4
|
||||
_0806FC48: .4byte gUnk_080047F6
|
||||
_0806FC4C:
|
||||
movs r0, #0
|
||||
_0806FC4E:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_0806FC50
|
||||
sub_0806FC50: @ 0x0806FC50
|
||||
push {r4, lr}
|
||||
adds r4, r1, #0
|
||||
ldr r1, _0806FC74 @ =gUnk_080046A4
|
||||
bl sub_08007DD6
|
||||
cmp r0, #0
|
||||
beq _0806FC70
|
||||
ldr r1, _0806FC78 @ =gUnk_080047F6
|
||||
lsls r0, r0, #3
|
||||
adds r2, r0, r1
|
||||
ldrh r0, [r2]
|
||||
asrs r0, r4
|
||||
movs r1, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0806FC7C
|
||||
_0806FC70:
|
||||
movs r0, #0
|
||||
b _0806FC7E
|
||||
.align 2, 0
|
||||
_0806FC74: .4byte gUnk_080046A4
|
||||
_0806FC78: .4byte gUnk_080047F6
|
||||
_0806FC7C:
|
||||
adds r0, r2, #0
|
||||
_0806FC7E:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_0806FC80
|
||||
sub_0806FC80: @ 0x0806FC80
|
||||
push {r4, r5, lr}
|
||||
lsls r4, r2, #4
|
||||
movs r2, #0x2e
|
||||
ldrsh r3, [r1, r2]
|
||||
movs r5, #0x32
|
||||
ldrsh r2, [r1, r5]
|
||||
adds r1, r3, #0
|
||||
bl sub_080041DC
|
||||
cmp r4, r0
|
||||
bhs _0806FC9A
|
||||
movs r0, #0
|
||||
b _0806FC9C
|
||||
_0806FC9A:
|
||||
movs r0, #1
|
||||
_0806FC9C:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0806FCA0
|
||||
sub_0806FCA0: @ 0x0806FCA0
|
||||
push {lr}
|
||||
bl GetFacingDirection
|
||||
bl sub_0806F5A4
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start sub_0806FCAC
|
||||
sub_0806FCAC: @ 0x0806FCAC
|
||||
push {lr}
|
||||
bl GetFacingDirection
|
||||
bl sub_0806F5B0
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start sub_0806FCB8
|
||||
sub_0806FCB8: @ 0x0806FCB8
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
movs r5, #0x2e
|
||||
ldrsh r0, [r4, r5]
|
||||
subs r0, r0, r1
|
||||
movs r5, #0x32
|
||||
ldrsh r1, [r4, r5]
|
||||
subs r1, r1, r2
|
||||
adds r2, r3, #0
|
||||
bl sub_0806FCD0
|
||||
pop {r4, r5, pc}
|
||||
|
||||
thumb_func_start sub_0806FCD0
|
||||
sub_0806FCD0: @ 0x0806FCD0
|
||||
push {r4, lr}
|
||||
movs r3, #0
|
||||
adds r4, r2, #0
|
||||
muls r4, r2, r4
|
||||
adds r2, r4, #0
|
||||
adds r4, r0, #0
|
||||
muls r4, r0, r4
|
||||
adds r0, r4, #0
|
||||
adds r4, r1, #0
|
||||
muls r4, r1, r4
|
||||
adds r1, r4, #0
|
||||
adds r0, r0, r1
|
||||
cmp r2, r0
|
||||
blt _0806FCEE
|
||||
movs r3, #1
|
||||
_0806FCEE:
|
||||
adds r0, r3, #0
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0806FCF4
|
||||
sub_0806FCF4: @ 0x0806FCF4
|
||||
push {r4, r5, r6, lr}
|
||||
adds r6, r0, #0
|
||||
adds r4, r2, #0
|
||||
adds r5, r3, #0
|
||||
movs r2, #0
|
||||
cmp r1, #0
|
||||
bge _0806FD04
|
||||
rsbs r1, r1, #0
|
||||
_0806FD04:
|
||||
cmp r4, #0
|
||||
beq _0806FD1A
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #9
|
||||
bl __divsi3
|
||||
adds r1, r0, #0
|
||||
adds r0, r4, #0
|
||||
muls r0, r1, r0
|
||||
lsrs r1, r0, #8
|
||||
subs r2, r4, r1
|
||||
_0806FD1A:
|
||||
cmp r5, #0
|
||||
beq _0806FD22
|
||||
cmp r5, #3
|
||||
bne _0806FD24
|
||||
_0806FD22:
|
||||
rsbs r2, r2, #0
|
||||
_0806FD24:
|
||||
cmp r5, #0
|
||||
beq _0806FD2C
|
||||
cmp r5, #2
|
||||
bne _0806FD32
|
||||
_0806FD2C:
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x63
|
||||
b _0806FD36
|
||||
_0806FD32:
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x62
|
||||
_0806FD36:
|
||||
strb r2, [r0]
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0806FD3C
|
||||
sub_0806FD3C: @ 0x0806FD3C
|
||||
ldrb r2, [r0, #0x18]
|
||||
movs r1, #0x31
|
||||
rsbs r1, r1, #0
|
||||
ands r1, r2
|
||||
strb r1, [r0, #0x18]
|
||||
adds r0, #0x29
|
||||
ldrb r2, [r0]
|
||||
movs r1, #0x39
|
||||
rsbs r1, r1, #0
|
||||
ands r1, r2
|
||||
strb r1, [r0]
|
||||
bx lr
|
||||
|
||||
thumb_func_start sub_0806FD54
|
||||
sub_0806FD54: @ 0x0806FD54
|
||||
push {r4, lr}
|
||||
adds r3, r0, #0
|
||||
ldr r0, _0806FD6C @ =gPlayerState
|
||||
ldr r0, [r0, #0x30]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #0x10
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0806FD70
|
||||
movs r0, #0
|
||||
b _0806FD84
|
||||
.align 2, 0
|
||||
_0806FD6C: .4byte gPlayerState
|
||||
_0806FD70:
|
||||
ldr r0, _0806FD88 @ =gPlayerEntity
|
||||
movs r2, #0x2e
|
||||
ldrsh r1, [r0, r2]
|
||||
movs r4, #0x32
|
||||
ldrsh r2, [r0, r4]
|
||||
subs r2, #9
|
||||
adds r0, r3, #0
|
||||
movs r3, #0x48
|
||||
bl sub_0806FCB8
|
||||
_0806FD84:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0806FD88: .4byte gPlayerEntity
|
||||
|
||||
thumb_func_start sub_0806FD8C
|
||||
sub_0806FD8C: @ 0x0806FD8C
|
||||
push {lr}
|
||||
ldr r0, _0806FD9C @ =gUnk_020000C0
|
||||
movs r1, #0xc0
|
||||
lsls r1, r1, #4
|
||||
bl MemClear
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0806FD9C: .4byte gUnk_020000C0
|
||||
|
||||
thumb_func_start sub_0806FDA0
|
||||
sub_0806FDA0: @ 0x0806FDA0
|
||||
push {r4, lr}
|
||||
movs r3, #1
|
||||
ldr r1, _0806FDD8 @ =gUnk_020000C0
|
||||
movs r4, #0xff
|
||||
movs r2, #0x61
|
||||
adds r2, r2, r1
|
||||
mov ip, r2
|
||||
adds r2, r1, #0
|
||||
adds r2, #0x40
|
||||
adds r1, r0, #0
|
||||
adds r1, #0x28
|
||||
_0806FDB6:
|
||||
ldrb r0, [r2]
|
||||
lsls r0, r0, #0x1f
|
||||
cmp r0, #0
|
||||
bne _0806FDDC
|
||||
strb r3, [r1]
|
||||
ldrb r0, [r2]
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
strb r4, [r2, #1]
|
||||
strb r4, [r2, #0x11]
|
||||
mov r0, ip
|
||||
strb r4, [r0]
|
||||
strb r4, [r0, #0x10]
|
||||
movs r0, #1
|
||||
b _0806FDEA
|
||||
.align 2, 0
|
||||
_0806FDD8: .4byte gUnk_020000C0
|
||||
_0806FDDC:
|
||||
movs r0, #0x40
|
||||
add ip, r0
|
||||
adds r2, #0x40
|
||||
adds r3, #1
|
||||
cmp r3, #0x2f
|
||||
bls _0806FDB6
|
||||
movs r0, #0
|
||||
_0806FDEA:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start LoadExtraSpriteData
|
||||
LoadExtraSpriteData: @ 0x0806FDEC
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
adds r6, r0, #0
|
||||
adds r4, r1, #0
|
||||
bl sub_0806FDA0
|
||||
cmp r0, #0
|
||||
bne _0806FE02
|
||||
movs r0, #0
|
||||
b _0806FE74
|
||||
_0806FE02:
|
||||
adds r0, r6, #0
|
||||
bl UnloadOBJPalette
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x28
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #6
|
||||
ldr r1, _0806FE7C @ =gUnk_020000C0
|
||||
adds r5, r0, r1
|
||||
movs r7, #0
|
||||
ldrh r1, [r4, #2]
|
||||
ldr r0, _0806FE80 @ =0x000003FF
|
||||
ands r0, r1
|
||||
movs r1, #0x27
|
||||
adds r1, r1, r6
|
||||
mov r8, r1
|
||||
cmp r0, #0
|
||||
beq _0806FE6C
|
||||
_0806FE26:
|
||||
ldr r1, [r4]
|
||||
lsls r1, r1, #0x16
|
||||
lsrs r1, r1, #0x16
|
||||
adds r0, r6, #0
|
||||
bl LoadObjPalette
|
||||
adds r2, r0, #0
|
||||
ldr r3, [r4]
|
||||
lsls r1, r3, #6
|
||||
lsrs r1, r1, #0x16
|
||||
lsls r3, r3, #0x10
|
||||
lsrs r3, r3, #0x1a
|
||||
adds r0, r5, #0
|
||||
bl sub_0806FEE8
|
||||
ldrb r1, [r4, #3]
|
||||
movs r0, #4
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0806FE56
|
||||
adds r0, r5, #0
|
||||
adds r1, r6, #0
|
||||
bl sub_0806FEFC
|
||||
_0806FE56:
|
||||
adds r5, #0x10
|
||||
adds r4, #4
|
||||
adds r7, #1
|
||||
cmp r7, #3
|
||||
bhi _0806FE6C
|
||||
ldrh r1, [r4, #2]
|
||||
ldr r2, _0806FE80 @ =0x000003FF
|
||||
adds r0, r2, #0
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0806FE26
|
||||
_0806FE6C:
|
||||
movs r0, #0
|
||||
mov r1, r8
|
||||
strb r0, [r1]
|
||||
movs r0, #1
|
||||
_0806FE74:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0806FE7C: .4byte gUnk_020000C0
|
||||
_0806FE80: .4byte 0x000003FF
|
||||
|
||||
thumb_func_start sub_0806FE84
|
||||
sub_0806FE84: @ 0x0806FE84
|
||||
push {r4, r5, r6, lr}
|
||||
adds r0, #0x28
|
||||
ldrb r2, [r0]
|
||||
movs r1, #0
|
||||
strb r1, [r0]
|
||||
subs r0, r2, #1
|
||||
cmp r0, #0x7e
|
||||
bhi _0806FEB4
|
||||
lsls r1, r2, #6
|
||||
ldr r0, _0806FEB8 @ =gUnk_020000C0
|
||||
adds r6, r1, r0
|
||||
movs r5, #0
|
||||
adds r4, r6, #0
|
||||
_0806FE9E:
|
||||
ldrb r0, [r4, #5]
|
||||
bl sub_0801D244
|
||||
adds r4, #0x10
|
||||
adds r5, #1
|
||||
cmp r5, #3
|
||||
bls _0806FE9E
|
||||
adds r0, r6, #0
|
||||
movs r1, #0x40
|
||||
bl MemClear
|
||||
_0806FEB4:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0806FEB8: .4byte gUnk_020000C0
|
||||
|
||||
thumb_func_start sub_0806FEBC
|
||||
sub_0806FEBC: @ 0x0806FEBC
|
||||
adds r0, #0x28
|
||||
ldrb r3, [r0]
|
||||
lsls r3, r3, #6
|
||||
lsls r1, r1, #4
|
||||
ldr r0, _0806FEE4 @ =gUnk_020000C0
|
||||
adds r1, r1, r0
|
||||
adds r3, r3, r1
|
||||
movs r0, #0
|
||||
str r0, [r3]
|
||||
str r0, [r3, #4]
|
||||
str r0, [r3, #8]
|
||||
str r2, [r3, #0xc]
|
||||
ldrb r0, [r3]
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
movs r1, #2
|
||||
orrs r0, r1
|
||||
strb r0, [r3]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0806FEE4: .4byte gUnk_020000C0
|
||||
|
||||
thumb_func_start sub_0806FEE8
|
||||
sub_0806FEE8: @ 0x0806FEE8
|
||||
strb r3, [r0, #8]
|
||||
strh r1, [r0, #2]
|
||||
strb r2, [r0, #5]
|
||||
ldrb r1, [r0]
|
||||
movs r2, #8
|
||||
orrs r1, r2
|
||||
movs r2, #1
|
||||
orrs r1, r2
|
||||
strb r1, [r0]
|
||||
bx lr
|
||||
|
||||
thumb_func_start sub_0806FEFC
|
||||
sub_0806FEFC: @ 0x0806FEFC
|
||||
adds r1, #0x60
|
||||
ldrh r1, [r1]
|
||||
ldrb r2, [r0, #8]
|
||||
adds r1, r1, r2
|
||||
strh r1, [r0, #0xa]
|
||||
ldrb r1, [r0]
|
||||
movs r2, #4
|
||||
orrs r1, r2
|
||||
strb r1, [r0]
|
||||
bx lr
|
||||
|
||||
thumb_func_start sub_0806FF10
|
||||
sub_0806FF10: @ 0x0806FF10
|
||||
push {r4, r5, r6, lr}
|
||||
adds r6, r0, #0
|
||||
adds r5, r2, #0
|
||||
adds r0, #0x28
|
||||
ldrb r2, [r0]
|
||||
lsls r2, r2, #6
|
||||
lsls r1, r1, #4
|
||||
ldr r0, _0806FF44 @ =gUnk_020000C0
|
||||
adds r1, r1, r0
|
||||
adds r4, r2, r1
|
||||
adds r0, r5, #0
|
||||
bl FindPalette
|
||||
ldrb r1, [r4, #5]
|
||||
cmp r1, r0
|
||||
beq _0806FF40
|
||||
adds r0, r1, #0
|
||||
bl sub_0801D244
|
||||
adds r0, r6, #0
|
||||
adds r1, r5, #0
|
||||
bl LoadObjPalette
|
||||
strb r0, [r4, #5]
|
||||
_0806FF40:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0806FF44: .4byte gUnk_020000C0
|
||||
|
||||
thumb_func_start sub_0806FF48
|
||||
sub_0806FF48: @ 0x0806FF48
|
||||
adds r0, #0x28
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #6
|
||||
lsls r1, r1, #4
|
||||
ldr r3, _0806FF5C @ =gUnk_020000C0
|
||||
adds r1, r1, r3
|
||||
adds r0, r0, r1
|
||||
strb r2, [r0, #4]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0806FF5C: .4byte gUnk_020000C0
|
||||
|
||||
thumb_func_start SetExtraSpriteFrame
|
||||
SetExtraSpriteFrame: @ 0x0806FF60
|
||||
push {lr}
|
||||
adds r3, r2, #0
|
||||
adds r0, #0x28
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #6
|
||||
ldr r2, _0806FF84 @ =gUnk_020000C0
|
||||
adds r0, r0, r2
|
||||
lsls r1, r1, #4
|
||||
adds r2, r0, r1
|
||||
ldrb r0, [r2, #1]
|
||||
cmp r0, r3
|
||||
beq _0806FF82
|
||||
strb r3, [r2, #1]
|
||||
ldrb r0, [r2]
|
||||
movs r1, #8
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
_0806FF82:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0806FF84: .4byte gUnk_020000C0
|
||||
|
||||
thumb_func_start SetSpriteSubEntryOffsetData1
|
||||
SetSpriteSubEntryOffsetData1: @ 0x0806FF88
|
||||
push {r4, r5, lr}
|
||||
adds r5, r1, #0
|
||||
adds r0, #0x28
|
||||
ldrb r4, [r0]
|
||||
lsls r4, r4, #6
|
||||
ldr r0, _0806FFB8 @ =gUnk_020000C0
|
||||
adds r4, r4, r0
|
||||
lsls r5, r5, #4
|
||||
adds r5, r4, r5
|
||||
lsls r2, r2, #4
|
||||
adds r4, r4, r2
|
||||
ldrh r0, [r5, #2]
|
||||
ldrb r1, [r5, #1]
|
||||
bl GetSpriteSubEntryOffsetDataPointer
|
||||
ldrb r1, [r5, #6]
|
||||
ldrb r2, [r0]
|
||||
adds r1, r1, r2
|
||||
strb r1, [r4, #6]
|
||||
ldrb r1, [r5, #7]
|
||||
ldrb r0, [r0, #1]
|
||||
adds r1, r1, r0
|
||||
strb r1, [r4, #7]
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0806FFB8: .4byte gUnk_020000C0
|
||||
|
||||
thumb_func_start sub_0806FFBC
|
||||
sub_0806FFBC: @ 0x0806FFBC
|
||||
push {r4, lr}
|
||||
adds r0, #0x28
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #6
|
||||
lsls r1, r1, #4
|
||||
ldr r4, _0806FFD4 @ =gUnk_020000C0
|
||||
adds r1, r1, r4
|
||||
adds r0, r0, r1
|
||||
strb r2, [r0, #6]
|
||||
strb r3, [r0, #7]
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0806FFD4: .4byte gUnk_020000C0
|
||||
|
||||
thumb_func_start SetSpriteSubEntryOffsetData2
|
||||
SetSpriteSubEntryOffsetData2: @ 0x0806FFD8
|
||||
push {r4, r5, lr}
|
||||
adds r5, r1, #0
|
||||
adds r0, #0x28
|
||||
ldrb r4, [r0]
|
||||
lsls r4, r4, #6
|
||||
ldr r0, _08070008 @ =gUnk_020000C0
|
||||
adds r4, r4, r0
|
||||
lsls r5, r5, #4
|
||||
adds r5, r4, r5
|
||||
lsls r2, r2, #4
|
||||
adds r4, r4, r2
|
||||
ldrh r0, [r5, #2]
|
||||
ldrb r1, [r5, #1]
|
||||
bl GetSpriteSubEntryOffsetDataPointer
|
||||
ldrb r1, [r5, #6]
|
||||
ldrb r2, [r0, #2]
|
||||
adds r1, r1, r2
|
||||
strb r1, [r4, #6]
|
||||
ldrb r1, [r5, #7]
|
||||
ldrb r0, [r0, #3]
|
||||
adds r1, r1, r0
|
||||
strb r1, [r4, #7]
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_08070008: .4byte gUnk_020000C0
|
||||
|
||||
thumb_func_start sub_0807000C
|
||||
sub_0807000C: @ 0x0807000C
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r6, r0, #0
|
||||
adds r7, r6, #0
|
||||
adds r7, #0x28
|
||||
ldrb r4, [r7]
|
||||
lsls r4, r4, #6
|
||||
ldr r0, _08070074 @ =gUnk_020000C0
|
||||
adds r4, r4, r0
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl sub_0807007C
|
||||
adds r5, r0, #0
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
bl sub_0807007C
|
||||
orrs r5, r0
|
||||
adds r0, r4, #0
|
||||
movs r1, #2
|
||||
bl sub_0807007C
|
||||
orrs r5, r0
|
||||
adds r0, r4, #0
|
||||
movs r1, #3
|
||||
bl sub_0807007C
|
||||
orrs r5, r0
|
||||
cmp r5, #0
|
||||
beq _08070072
|
||||
ldr r3, _08070078 @ =gGFXSlots
|
||||
adds r2, r6, #0
|
||||
adds r2, #0x26
|
||||
ldrb r1, [r2]
|
||||
lsls r0, r1, #1
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r3
|
||||
ldrb r1, [r7]
|
||||
strb r1, [r0, #7]
|
||||
ldrb r1, [r2]
|
||||
lsls r0, r1, #1
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r3
|
||||
ldrb r2, [r0, #4]
|
||||
movs r1, #0xf
|
||||
ands r1, r2
|
||||
movs r2, #0x30
|
||||
orrs r1, r2
|
||||
strb r1, [r0, #4]
|
||||
_08070072:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_08070074: .4byte gUnk_020000C0
|
||||
_08070078: .4byte gGFXSlots
|
||||
|
||||
thumb_func_start sub_0807007C
|
||||
sub_0807007C: @ 0x0807007C
|
||||
push {lr}
|
||||
lsls r1, r1, #4
|
||||
adds r2, r0, r1
|
||||
ldrb r1, [r2]
|
||||
movs r0, #8
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080700C4
|
||||
movs r0, #4
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080700C4
|
||||
ldrb r0, [r2, #1]
|
||||
cmp r0, #0xff
|
||||
beq _080700C4
|
||||
ldrh r0, [r2, #2]
|
||||
lsls r0, r0, #4
|
||||
ldr r1, _080700C0 @ =gSpritePtrs
|
||||
adds r3, r0, r1
|
||||
ldr r1, [r3, #4]
|
||||
cmp r1, #0
|
||||
beq _080700C4
|
||||
ldrb r0, [r2, #1]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r1, r0
|
||||
ldrb r1, [r0]
|
||||
strb r1, [r2, #9]
|
||||
ldrh r1, [r0, #2]
|
||||
lsls r1, r1, #5
|
||||
ldr r0, [r3, #8]
|
||||
adds r0, r0, r1
|
||||
str r0, [r2, #0xc]
|
||||
movs r0, #1
|
||||
b _080700C6
|
||||
.align 2, 0
|
||||
_080700C0: .4byte gSpritePtrs
|
||||
_080700C4:
|
||||
movs r0, #0
|
||||
_080700C6:
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start GetSpriteSubEntryOffsetDataPointer
|
||||
GetSpriteSubEntryOffsetDataPointer: @ 0x080700C8
|
||||
lsls r0, r0, #1
|
||||
ldr r2, _080700E4 @ =gUnk_089FB780
|
||||
adds r0, r0, r2
|
||||
ldrh r0, [r0]
|
||||
subs r2, #0x10
|
||||
adds r0, r0, r2
|
||||
adds r1, r0, r1
|
||||
ldrb r0, [r1]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r2
|
||||
ldr r1, [r2]
|
||||
adds r0, r1, r0
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_080700E4: .4byte gExtraFrameOffsets+0x10
|
||||
+1
-1
@@ -887,7 +887,7 @@ sub_080307EC: @ 0x080307EC
|
||||
adds r6, #0x38
|
||||
ldrb r1, [r6]
|
||||
adds r0, r4, #0
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r5, #0x78
|
||||
strh r0, [r5]
|
||||
ldr r0, _08030830 @ =0x00004022
|
||||
|
||||
@@ -1,797 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start BallChainSoldier
|
||||
BallChainSoldier: @ 0x0803E528
|
||||
push {lr}
|
||||
ldr r1, _0803E534 @ =gUnk_080D06E0
|
||||
bl EnemyFunctionHandler
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0803E534: .4byte gUnk_080D06E0
|
||||
|
||||
thumb_func_start sub_0803E538
|
||||
sub_0803E538: @ 0x0803E538
|
||||
push {lr}
|
||||
ldr r2, _0803E54C @ =gUnk_080D06F8
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0803E54C: .4byte gUnk_080D06F8
|
||||
|
||||
thumb_func_start sub_0803E550
|
||||
sub_0803E550: @ 0x0803E550
|
||||
push {lr}
|
||||
ldr r1, _0803E55C @ =gUnk_080D06E0
|
||||
bl sub_0804AA30
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0803E55C: .4byte gUnk_080D06E0
|
||||
|
||||
thumb_func_start sub_0803E560
|
||||
sub_0803E560: @ 0x0803E560
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_08001324
|
||||
|
||||
thumb_func_start sub_0803E568
|
||||
sub_0803E568: @ 0x0803E568
|
||||
adds r0, r4, #0
|
||||
bl sub_0803E538
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_0803E570
|
||||
sub_0803E570: @ 0x0803E570
|
||||
push {lr}
|
||||
movs r1, #0xff
|
||||
movs r2, #0x57
|
||||
bl CreateDeathFx
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start nullsub_20
|
||||
nullsub_20: @ 0x0803E57C
|
||||
bx lr
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0803E580
|
||||
sub_0803E580: @ 0x0803E580
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
bl sub_0804A720
|
||||
adds r0, r5, #0
|
||||
movs r1, #0x19
|
||||
movs r2, #0
|
||||
bl CreateProjectileWithParent
|
||||
cmp r0, #0
|
||||
beq _0803E5E4
|
||||
str r5, [r0, #0x50]
|
||||
str r0, [r5, #0x54]
|
||||
ldrb r1, [r5, #0x10]
|
||||
movs r0, #0x80
|
||||
movs r4, #0
|
||||
orrs r0, r1
|
||||
strb r0, [r5, #0x10]
|
||||
ldrb r1, [r5, #0x18]
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r5, #0x18]
|
||||
bl Random
|
||||
movs r1, #3
|
||||
ands r0, r1
|
||||
strb r0, [r5, #0x14]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x7b
|
||||
strb r4, [r0]
|
||||
adds r0, #1
|
||||
strb r4, [r0]
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x7e
|
||||
movs r0, #0x20
|
||||
strb r0, [r1]
|
||||
adds r1, #1
|
||||
movs r0, #0xfe
|
||||
strb r0, [r1]
|
||||
ldrb r1, [r5, #0x14]
|
||||
lsls r1, r1, #2
|
||||
adds r0, r5, #0
|
||||
bl InitAnimationForceUpdate
|
||||
adds r0, r5, #0
|
||||
bl sub_0803E86C
|
||||
_0803E5E4:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0803E5E8
|
||||
sub_0803E5E8: @ 0x0803E5E8
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
adds r0, #0x7c
|
||||
ldrb r1, [r0]
|
||||
subs r1, #0xa
|
||||
strb r1, [r0]
|
||||
adds r0, r4, #0
|
||||
bl sub_0803E9A4
|
||||
adds r0, r4, #0
|
||||
bl sub_0803E9D4
|
||||
cmp r0, #0
|
||||
bne _0803E61A
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x78
|
||||
ldrh r0, [r1]
|
||||
subs r0, #1
|
||||
strh r0, [r1]
|
||||
lsls r0, r0, #0x10
|
||||
cmp r0, #0
|
||||
bne _0803E61A
|
||||
adds r0, r4, #0
|
||||
bl sub_0803E8CC
|
||||
_0803E61A:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_0803E61C
|
||||
sub_0803E61C: @ 0x0803E61C
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
adds r0, #0x7c
|
||||
ldrb r1, [r0]
|
||||
subs r1, #0xa
|
||||
strb r1, [r0]
|
||||
adds r0, r4, #0
|
||||
bl sub_0803E9A4
|
||||
adds r0, r4, #0
|
||||
bl sub_0803E9D4
|
||||
cmp r0, #0
|
||||
bne _0803E66A
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x42
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _0803E654
|
||||
adds r0, r4, #0
|
||||
bl ProcessMovement
|
||||
cmp r0, #0
|
||||
bne _0803E654
|
||||
adds r0, r4, #0
|
||||
bl sub_0803E86C
|
||||
b _0803E66A
|
||||
_0803E654:
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x78
|
||||
ldrh r0, [r1]
|
||||
subs r0, #1
|
||||
strh r0, [r1]
|
||||
lsls r0, r0, #0x10
|
||||
cmp r0, #0
|
||||
bne _0803E66A
|
||||
adds r0, r4, #0
|
||||
bl sub_0803E92C
|
||||
_0803E66A:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_0803E66C
|
||||
sub_0803E66C: @ 0x0803E66C
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7c
|
||||
ldrb r0, [r1]
|
||||
subs r0, #0x10
|
||||
strb r0, [r1]
|
||||
adds r0, r4, #0
|
||||
bl sub_0803E9A4
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7e
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0x21
|
||||
bhi _0803E68E
|
||||
adds r0, #1
|
||||
strb r0, [r1]
|
||||
_0803E68E:
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
bl sub_08049FDC
|
||||
cmp r0, #0
|
||||
beq _0803E6A4
|
||||
adds r0, r4, #0
|
||||
bl sub_0803EA64
|
||||
cmp r0, #0
|
||||
bne _0803E6B0
|
||||
_0803E6A4:
|
||||
movs r0, #4
|
||||
strb r0, [r4, #0xc]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7b
|
||||
movs r0, #0
|
||||
strb r0, [r1]
|
||||
_0803E6B0:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0803E6B4
|
||||
sub_0803E6B4: @ 0x0803E6B4
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7c
|
||||
ldrb r0, [r1]
|
||||
subs r0, #0xa
|
||||
strb r0, [r1]
|
||||
adds r0, r4, #0
|
||||
bl sub_0803E9A4
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7e
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0x20
|
||||
bls _0803E6D8
|
||||
subs r0, #1
|
||||
strb r0, [r1]
|
||||
b _0803E6DE
|
||||
_0803E6D8:
|
||||
adds r0, r4, #0
|
||||
bl sub_0803E86C
|
||||
_0803E6DE:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_0803E6E0
|
||||
sub_0803E6E0: @ 0x0803E6E0
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
adds r0, #0x7c
|
||||
ldrb r1, [r0]
|
||||
subs r1, #0xc
|
||||
strb r1, [r0]
|
||||
adds r0, r4, #0
|
||||
bl sub_0803E9A4
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7e
|
||||
ldrb r0, [r1]
|
||||
subs r0, #4
|
||||
strb r0, [r1]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bgt _0803E718
|
||||
movs r0, #0
|
||||
strb r0, [r1]
|
||||
movs r0, #6
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #0x1e
|
||||
strb r0, [r4, #0xe]
|
||||
ldrb r1, [r4, #0x14]
|
||||
adds r1, #0x20
|
||||
adds r0, r4, #0
|
||||
bl InitAnimationForceUpdate
|
||||
_0803E718:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0803E71C
|
||||
sub_0803E71C: @ 0x0803E71C
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
ldrb r0, [r2, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r2, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r3, r0, #0x18
|
||||
cmp r3, #0
|
||||
bne _0803E756
|
||||
movs r0, #7
|
||||
strb r0, [r2, #0xc]
|
||||
movs r0, #1
|
||||
strb r0, [r2, #0xe]
|
||||
ldr r1, _0803E758 @ =gUnk_080D0724
|
||||
ldrb r0, [r2, #0x14]
|
||||
adds r0, r0, r1
|
||||
ldrb r1, [r0]
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x7c
|
||||
strb r1, [r0]
|
||||
subs r0, #1
|
||||
strb r3, [r0]
|
||||
adds r1, r2, #0
|
||||
adds r1, #0x7f
|
||||
movs r0, #0xf6
|
||||
strb r0, [r1]
|
||||
adds r0, #0x65
|
||||
bl EnqueueSFX
|
||||
_0803E756:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0803E758: .4byte gUnk_080D0724
|
||||
|
||||
thumb_func_start sub_0803E75C
|
||||
sub_0803E75C: @ 0x0803E75C
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0803E774
|
||||
adds r0, r2, #0
|
||||
bl UpdateAnimationSingleFrame
|
||||
b _0803E7B0
|
||||
_0803E774:
|
||||
ldrb r0, [r2, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r2, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
adds r1, r2, #0
|
||||
adds r1, #0x7f
|
||||
cmp r0, #0
|
||||
bne _0803E78E
|
||||
movs r0, #2
|
||||
strb r0, [r2, #0xe]
|
||||
ldrb r0, [r1]
|
||||
adds r0, #1
|
||||
strb r0, [r1]
|
||||
_0803E78E:
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
beq _0803E7A0
|
||||
adds r1, r2, #0
|
||||
adds r1, #0x7e
|
||||
ldrb r0, [r1]
|
||||
adds r0, #5
|
||||
strb r0, [r1]
|
||||
b _0803E7B0
|
||||
_0803E7A0:
|
||||
movs r0, #8
|
||||
strb r0, [r2, #0xc]
|
||||
movs r0, #0x1e
|
||||
strb r0, [r2, #0xe]
|
||||
movs r0, #8
|
||||
movs r1, #0
|
||||
bl InitScreenShake
|
||||
_0803E7B0:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0803E7B4
|
||||
sub_0803E7B4: @ 0x0803E7B4
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldrb r0, [r1, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r1, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _0803E7C8
|
||||
movs r0, #9
|
||||
strb r0, [r1, #0xc]
|
||||
_0803E7C8:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0803E7CC
|
||||
sub_0803E7CC: @ 0x0803E7CC
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
adds r1, r2, #0
|
||||
adds r1, #0x7e
|
||||
ldrb r0, [r1]
|
||||
subs r0, #2
|
||||
strb r0, [r1]
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #0xa
|
||||
bhi _0803E806
|
||||
movs r0, #0xa
|
||||
strb r0, [r2, #0xc]
|
||||
movs r0, #0x5a
|
||||
strb r0, [r2, #0xe]
|
||||
ldrb r0, [r2, #0x14]
|
||||
lsls r0, r0, #3
|
||||
strb r0, [r2, #0x15]
|
||||
subs r1, #2
|
||||
movs r0, #0
|
||||
strb r0, [r1]
|
||||
adds r1, #3
|
||||
movs r0, #0xfe
|
||||
strb r0, [r1]
|
||||
adds r0, r2, #0
|
||||
movs r1, #0x10
|
||||
bl sub_0803E94C
|
||||
b _0803E814
|
||||
_0803E806:
|
||||
cmp r0, #0x12
|
||||
bhi _0803E814
|
||||
ldr r2, [r2, #0x54]
|
||||
ldrb r1, [r2, #0x10]
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
strb r0, [r2, #0x10]
|
||||
_0803E814:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0803E818
|
||||
sub_0803E818: @ 0x0803E818
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xe]
|
||||
cmp r0, #0
|
||||
beq _0803E840
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _0803E868
|
||||
ldr r0, [r4, #0x54]
|
||||
ldrb r1, [r0, #0x10]
|
||||
movs r2, #0x80
|
||||
orrs r1, r2
|
||||
strb r1, [r0, #0x10]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl sub_0803E94C
|
||||
b _0803E868
|
||||
_0803E840:
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7c
|
||||
ldrb r0, [r1]
|
||||
subs r0, #0xa
|
||||
strb r0, [r1]
|
||||
adds r0, r4, #0
|
||||
bl sub_0803E9A4
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7e
|
||||
ldrb r0, [r1]
|
||||
adds r0, #1
|
||||
strb r0, [r1]
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #0x1f
|
||||
bls _0803E868
|
||||
adds r0, r4, #0
|
||||
bl sub_0803E86C
|
||||
_0803E868:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0803E86C
|
||||
sub_0803E86C: @ 0x0803E86C
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r1, #1
|
||||
bl sub_08049FDC
|
||||
cmp r0, #0
|
||||
beq _0803E898
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x50
|
||||
bl sub_0803EAD0
|
||||
cmp r0, #0
|
||||
beq _0803E898
|
||||
ldr r0, _0803E8C4 @ =gUnk_020000B0
|
||||
ldr r1, [r0]
|
||||
adds r0, r4, #0
|
||||
bl GetFacingDirection
|
||||
adds r0, #4
|
||||
movs r1, #0x18
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x15]
|
||||
_0803E898:
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
bl Random
|
||||
ldr r2, _0803E8C8 @ =gUnk_080D0728
|
||||
movs r1, #3
|
||||
ands r1, r0
|
||||
lsls r1, r1, #1
|
||||
adds r1, r1, r2
|
||||
ldrh r1, [r1]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x78
|
||||
strh r1, [r0]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7a
|
||||
movs r0, #4
|
||||
strb r0, [r1]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl sub_0803E94C
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0803E8C4: .4byte gUnk_020000B0
|
||||
_0803E8C8: .4byte gUnk_080D0728
|
||||
|
||||
thumb_func_start sub_0803E8CC
|
||||
sub_0803E8CC: @ 0x0803E8CC
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
bl Random
|
||||
adds r5, r0, #0
|
||||
adds r0, r4, #0
|
||||
bl sub_08049FA0
|
||||
cmp r0, #0
|
||||
bne _0803E8F4
|
||||
movs r0, #3
|
||||
ands r0, r5
|
||||
cmp r0, #0
|
||||
beq _0803E8F4
|
||||
adds r0, r4, #0
|
||||
bl sub_08049EE4
|
||||
adds r0, #4
|
||||
movs r1, #0x18
|
||||
b _0803E8F8
|
||||
_0803E8F4:
|
||||
movs r1, #0x18
|
||||
adds r0, r5, #0
|
||||
_0803E8F8:
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x15]
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xc]
|
||||
ldr r2, _0803E928 @ =gUnk_080D0730
|
||||
lsrs r0, r5, #0x10
|
||||
movs r1, #3
|
||||
ands r0, r1
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r2
|
||||
ldrh r1, [r0]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x78
|
||||
strh r1, [r0]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7a
|
||||
movs r0, #4
|
||||
strb r0, [r1]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x10
|
||||
bl sub_0803E94C
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0803E928: .4byte gUnk_080D0730
|
||||
|
||||
thumb_func_start sub_0803E92C
|
||||
sub_0803E92C: @ 0x0803E92C
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl Random
|
||||
movs r1, #1
|
||||
ands r1, r0
|
||||
cmp r1, #0
|
||||
beq _0803E944
|
||||
adds r0, r4, #0
|
||||
bl sub_0803E86C
|
||||
b _0803E94A
|
||||
_0803E944:
|
||||
adds r0, r4, #0
|
||||
bl sub_0803E8CC
|
||||
_0803E94A:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_0803E94C
|
||||
sub_0803E94C: @ 0x0803E94C
|
||||
push {r4, r5, r6, lr}
|
||||
adds r3, r0, #0
|
||||
adds r6, r1, #0
|
||||
ldrb r2, [r3, #0x15]
|
||||
adds r0, r2, #4
|
||||
movs r1, #0x18
|
||||
ands r0, r1
|
||||
asrs r4, r0, #3
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x58
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x10
|
||||
ands r0, r1
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, r6
|
||||
bne _0803E988
|
||||
movs r0, #7
|
||||
ands r0, r2
|
||||
ldrb r5, [r3, #0x14]
|
||||
cmp r0, #4
|
||||
bne _0803E984
|
||||
lsrs r0, r2, #3
|
||||
subs r0, r5, r0
|
||||
movs r1, #3
|
||||
ands r0, r1
|
||||
cmp r0, #1
|
||||
ble _0803E9A2
|
||||
_0803E984:
|
||||
cmp r4, r5
|
||||
beq _0803E9A2
|
||||
_0803E988:
|
||||
strb r4, [r3, #0x14]
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x58
|
||||
ldrb r1, [r0]
|
||||
movs r0, #3
|
||||
ands r0, r1
|
||||
adds r0, r6, r0
|
||||
lsls r1, r4, #2
|
||||
adds r4, r0, r1
|
||||
adds r0, r3, #0
|
||||
adds r1, r4, #0
|
||||
bl InitAnimationForceUpdate
|
||||
_0803E9A2:
|
||||
pop {r4, r5, r6, pc}
|
||||
|
||||
thumb_func_start sub_0803E9A4
|
||||
sub_0803E9A4: @ 0x0803E9A4
|
||||
push {r4, lr}
|
||||
adds r2, r0, #0
|
||||
adds r0, #0x7c
|
||||
ldrb r0, [r0]
|
||||
adds r0, #0x20
|
||||
movs r1, #0xff
|
||||
ands r0, r1
|
||||
asrs r4, r0, #6
|
||||
adds r3, r2, #0
|
||||
adds r3, #0x58
|
||||
ldrb r1, [r3]
|
||||
movs r0, #3
|
||||
ands r0, r1
|
||||
cmp r0, r4
|
||||
beq _0803E9D2
|
||||
ldrb r1, [r3]
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r1, r0
|
||||
adds r1, r4, r1
|
||||
adds r0, r2, #0
|
||||
bl InitAnimationForceUpdate
|
||||
_0803E9D2:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_0803E9D4
|
||||
sub_0803E9D4: @ 0x0803E9D4
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r1, #1
|
||||
bl sub_08049FDC
|
||||
cmp r0, #0
|
||||
beq _0803EA58
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x38
|
||||
bl sub_0803EAD0
|
||||
cmp r0, #0
|
||||
beq _0803EA10
|
||||
movs r0, #3
|
||||
strb r0, [r4, #0xc]
|
||||
ldr r0, _0803EA0C @ =gUnk_020000B0
|
||||
ldr r1, [r0]
|
||||
adds r0, r4, #0
|
||||
bl GetFacingDirection
|
||||
adds r0, #4
|
||||
movs r1, #0x18
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x15]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7b
|
||||
movs r0, #1
|
||||
b _0803EA46
|
||||
.align 2, 0
|
||||
_0803EA0C: .4byte gUnk_020000B0
|
||||
_0803EA10:
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x4e
|
||||
bl sub_0803EAD0
|
||||
cmp r0, #0
|
||||
beq _0803EA58
|
||||
ldr r0, _0803EA54 @ =gUnk_020000B0
|
||||
ldr r1, [r0]
|
||||
adds r0, r4, #0
|
||||
movs r2, #0x12
|
||||
bl sub_0804A044
|
||||
adds r2, r0, #0
|
||||
cmp r2, #0xff
|
||||
beq _0803EA58
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7a
|
||||
ldrb r0, [r1]
|
||||
subs r0, #1
|
||||
strb r0, [r1]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _0803EA60
|
||||
movs r0, #5
|
||||
strb r0, [r4, #0xc]
|
||||
strb r2, [r4, #0x15]
|
||||
movs r0, #4
|
||||
_0803EA46:
|
||||
strb r0, [r1]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl sub_0803E94C
|
||||
movs r0, #1
|
||||
b _0803EA62
|
||||
.align 2, 0
|
||||
_0803EA54: .4byte gUnk_020000B0
|
||||
_0803EA58:
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7a
|
||||
movs r0, #4
|
||||
strb r0, [r1]
|
||||
_0803EA60:
|
||||
movs r0, #0
|
||||
_0803EA62:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_0803EA64
|
||||
sub_0803EA64: @ 0x0803EA64
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r1, #1
|
||||
bl sub_08049FDC
|
||||
cmp r0, #0
|
||||
beq _0803EAC4
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x4e
|
||||
bl sub_0803EAD0
|
||||
cmp r0, #0
|
||||
beq _0803EAB8
|
||||
ldr r0, _0803EAB4 @ =gUnk_020000B0
|
||||
ldr r1, [r0]
|
||||
adds r0, r4, #0
|
||||
movs r2, #0x12
|
||||
bl sub_0804A044
|
||||
adds r2, r0, #0
|
||||
cmp r2, #0xff
|
||||
beq _0803EAB8
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7a
|
||||
ldrb r0, [r1]
|
||||
subs r0, #1
|
||||
strb r0, [r1]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _0803EAAE
|
||||
movs r0, #5
|
||||
strb r0, [r4, #0xc]
|
||||
strb r2, [r4, #0x15]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl sub_0803E94C
|
||||
_0803EAAE:
|
||||
movs r0, #1
|
||||
b _0803EACE
|
||||
.align 2, 0
|
||||
_0803EAB4: .4byte gUnk_020000B0
|
||||
_0803EAB8:
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x38
|
||||
bl sub_0803EAD0
|
||||
cmp r0, #0
|
||||
bne _0803EAAE
|
||||
_0803EAC4:
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7a
|
||||
movs r0, #4
|
||||
strb r0, [r1]
|
||||
movs r0, #0
|
||||
_0803EACE:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_0803EAD0
|
||||
sub_0803EAD0: @ 0x0803EAD0
|
||||
push {r4, lr}
|
||||
adds r3, r1, #0
|
||||
ldr r1, _0803EAE8 @ =gUnk_020000B0
|
||||
ldr r2, [r1]
|
||||
movs r4, #0x2e
|
||||
ldrsh r1, [r2, r4]
|
||||
movs r4, #0x32
|
||||
ldrsh r2, [r2, r4]
|
||||
subs r2, #4
|
||||
bl sub_0806FCB8
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0803EAE8: .4byte gUnk_020000B0
|
||||
@@ -3676,7 +3676,7 @@ _08027676:
|
||||
mov r0, sl
|
||||
ldrb r2, [r0]
|
||||
adds r0, r5, #0
|
||||
bl sub_0806F62C
|
||||
bl LinearMoveAngle
|
||||
ldrb r0, [r5, #0xa]
|
||||
cmp r0, #1
|
||||
beq _080276D2
|
||||
@@ -3692,7 +3692,7 @@ _08027676:
|
||||
adds r2, r0, #0
|
||||
adds r2, #0x83
|
||||
ldrb r2, [r2]
|
||||
bl sub_0806F62C
|
||||
bl LinearMoveAngle
|
||||
ldr r0, [r5, #0x68]
|
||||
ldr r1, [r5, #0x54]
|
||||
ldrb r2, [r1, #0xa]
|
||||
@@ -4033,7 +4033,7 @@ _08027934:
|
||||
adds r0, #0x83
|
||||
ldrb r2, [r0]
|
||||
adds r0, r5, #0
|
||||
bl sub_0806F62C
|
||||
bl LinearMoveAngle
|
||||
ldr r0, [r5, #0x2c]
|
||||
str r0, [r6, #0x2c]
|
||||
ldr r0, [r5, #0x30]
|
||||
@@ -4044,7 +4044,7 @@ _08027934:
|
||||
adds r0, #0x83
|
||||
ldrb r2, [r0]
|
||||
adds r0, r6, #0
|
||||
bl sub_0806F62C
|
||||
bl LinearMoveAngle
|
||||
ldr r0, [r6, #0x2c]
|
||||
str r0, [r4, #0x2c]
|
||||
ldr r0, [r6, #0x30]
|
||||
@@ -4055,7 +4055,7 @@ _08027934:
|
||||
adds r0, #0x83
|
||||
ldrb r2, [r0]
|
||||
adds r0, r4, #0
|
||||
bl sub_0806F62C
|
||||
bl LinearMoveAngle
|
||||
adds r0, r7, #0
|
||||
bl sub_08027984
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
|
||||
@@ -396,7 +396,7 @@ sub_080386B8: @ 0x080386B8
|
||||
cmp r1, #0
|
||||
beq _08038720
|
||||
adds r0, r4, #0
|
||||
bl ResolveEntityOnTop
|
||||
bl SortEntityAbove
|
||||
_08038720:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
@@ -507,7 +507,7 @@ _080387D8:
|
||||
cmp r1, #0
|
||||
beq _080387EE
|
||||
adds r0, r4, #0
|
||||
bl ResolveEntityOnTop
|
||||
bl SortEntityAbove
|
||||
_080387EE:
|
||||
pop {r4, pc}
|
||||
|
||||
|
||||
@@ -1,794 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start CuccoAggr
|
||||
CuccoAggr: @ 0x08038CA4
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
bl sub_080012DC
|
||||
adds r1, r0, #0
|
||||
cmp r1, #0
|
||||
beq _08038CC8
|
||||
ldr r0, _08038CC4 @ =gUnk_080012C8
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r0
|
||||
ldr r1, [r1]
|
||||
adds r0, r5, #0
|
||||
bl _call_via_r1
|
||||
b _08038CF0
|
||||
.align 2, 0
|
||||
_08038CC4: .4byte gUnk_080012C8
|
||||
_08038CC8:
|
||||
ldr r4, _08038CF4 @ =gUnk_080CF778
|
||||
adds r0, r5, #0
|
||||
bl GetNextFunction
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r4
|
||||
ldr r1, [r0]
|
||||
adds r0, r5, #0
|
||||
bl _call_via_r1
|
||||
movs r3, #0x10
|
||||
rsbs r3, r3, #0
|
||||
adds r0, r5, #0
|
||||
movs r1, #0
|
||||
movs r2, #1
|
||||
bl SetChildOffset
|
||||
adds r0, r5, #0
|
||||
bl sub_080391B4
|
||||
_08038CF0:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_08038CF4: .4byte gUnk_080CF778
|
||||
|
||||
thumb_func_start sub_08038CF8
|
||||
sub_08038CF8: @ 0x08038CF8
|
||||
push {lr}
|
||||
ldr r2, _08038D0C @ =gUnk_080CF790
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08038D0C: .4byte gUnk_080CF790
|
||||
|
||||
thumb_func_start sub_08038D10
|
||||
sub_08038D10: @ 0x08038D10
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #2
|
||||
beq _08038D52
|
||||
adds r5, r4, #0
|
||||
adds r5, #0x7a
|
||||
ldrb r0, [r5]
|
||||
cmp r0, #0
|
||||
bne _08038D3E
|
||||
movs r0, #1
|
||||
bl CheckRoomFlag
|
||||
cmp r0, #0
|
||||
bne _08038D3E
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x45
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0xbf
|
||||
bhi _08038D46
|
||||
movs r0, #1
|
||||
strb r0, [r5]
|
||||
b _08038D46
|
||||
_08038D3E:
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x45
|
||||
movs r0, #0xff
|
||||
strb r0, [r1]
|
||||
_08038D46:
|
||||
adds r0, r4, #0
|
||||
bl sub_08039218
|
||||
adds r0, r4, #0
|
||||
bl sub_08039260
|
||||
_08038D52:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x43
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _08038D64
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x1c
|
||||
bl sub_0804A9FC
|
||||
_08038D64:
|
||||
ldr r1, _08038D70 @ =gUnk_080CF778
|
||||
adds r0, r4, #0
|
||||
bl sub_0804AA30
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_08038D70: .4byte gUnk_080CF778
|
||||
|
||||
thumb_func_start nullsub_165
|
||||
nullsub_165: @ 0x08038D74
|
||||
bx lr
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08038D78
|
||||
sub_08038D78: @ 0x08038D78
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_0804A720
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #2
|
||||
beq _08038D96
|
||||
movs r0, #0
|
||||
strb r0, [r4, #0xb]
|
||||
movs r0, #0x30
|
||||
strb r0, [r4, #0x16]
|
||||
adds r0, r4, #0
|
||||
bl sub_08039120
|
||||
b _08038D9C
|
||||
_08038D96:
|
||||
adds r0, r4, #0
|
||||
bl sub_08039140
|
||||
_08038D9C:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08038DA0
|
||||
sub_08038DA0: @ 0x08038DA0
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _08038DB6
|
||||
adds r0, r4, #0
|
||||
bl sub_0803901C
|
||||
_08038DB6:
|
||||
adds r0, r4, #0
|
||||
bl sub_08039298
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08038DC0
|
||||
sub_08038DC0: @ 0x08038DC0
|
||||
push {lr}
|
||||
ldr r2, _08038DD4 @ =gUnk_080CF7AC
|
||||
ldrb r1, [r0, #0xd]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08038DD4: .4byte gUnk_080CF7AC
|
||||
|
||||
thumb_func_start sub_08038DD8
|
||||
sub_08038DD8: @ 0x08038DD8
|
||||
push {lr}
|
||||
movs r1, #1
|
||||
strb r1, [r0, #0xd]
|
||||
movs r1, #0x10
|
||||
strb r1, [r0, #0xe]
|
||||
ldr r2, _08038E10 @ =gUnk_080CF7BC
|
||||
ldrb r1, [r0, #0xa]
|
||||
adds r1, r1, r2
|
||||
ldrb r1, [r1]
|
||||
strb r1, [r0, #0xf]
|
||||
ldrb r2, [r0, #0x10]
|
||||
movs r1, #0x7f
|
||||
ands r1, r2
|
||||
strb r1, [r0, #0x10]
|
||||
adds r3, r0, #0
|
||||
adds r3, #0x29
|
||||
ldrb r2, [r3]
|
||||
movs r1, #0x39
|
||||
rsbs r1, r1, #0
|
||||
ands r1, r2
|
||||
strb r1, [r3]
|
||||
movs r1, #4
|
||||
bl InitializeAnimation
|
||||
ldr r0, _08038E14 @ =0x000001D9
|
||||
bl EnqueueSFX
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08038E10: .4byte gUnk_080CF7BC
|
||||
_08038E14: .4byte 0x000001D9
|
||||
|
||||
thumb_func_start sub_08038E18
|
||||
sub_08038E18: @ 0x08038E18
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xf]
|
||||
cmp r0, #0
|
||||
beq _08038E70
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xf]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _08038E70
|
||||
bl sub_08079184
|
||||
adds r0, r4, #0
|
||||
bl sub_08039218
|
||||
ldrb r0, [r4, #0x10]
|
||||
movs r1, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x10]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x39
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #8
|
||||
orrs r0, r1
|
||||
movs r1, #8
|
||||
rsbs r1, r1, #0
|
||||
ands r0, r1
|
||||
movs r1, #4
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
bl Random
|
||||
movs r1, #0x1f
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x15]
|
||||
adds r0, r4, #0
|
||||
bl ProcessMovement
|
||||
adds r0, r4, #0
|
||||
bl UpdateSpriteForCollisionLayer
|
||||
_08038E70:
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _08038EA2
|
||||
movs r0, #0x10
|
||||
strb r0, [r4, #0xe]
|
||||
bl Random
|
||||
ldrb r3, [r4, #0x18]
|
||||
lsls r2, r3, #0x19
|
||||
lsrs r2, r2, #0x1f
|
||||
movs r1, #1
|
||||
ands r1, r0
|
||||
eors r2, r1
|
||||
lsls r2, r2, #6
|
||||
movs r0, #0x41
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r3
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #0x18]
|
||||
adds r0, r4, #0
|
||||
bl sub_08039260
|
||||
_08038EA2:
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08038EAC
|
||||
sub_08038EAC: @ 0x08038EAC
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x39
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #8
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
adds r0, r4, #0
|
||||
bl sub_080390F8
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_08038ED0
|
||||
sub_08038ED0: @ 0x08038ED0
|
||||
push {lr}
|
||||
ldrb r2, [r0, #0x10]
|
||||
movs r1, #0x80
|
||||
orrs r1, r2
|
||||
strb r1, [r0, #0x10]
|
||||
bl sub_08039218
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start sub_08038EE0
|
||||
sub_08038EE0: @ 0x08038EE0
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl ProcessMovement
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
adds r0, r4, #0
|
||||
bl sub_08039298
|
||||
movs r1, #0xe0
|
||||
lsls r1, r1, #5
|
||||
adds r0, r4, #0
|
||||
bl GravityUpdate
|
||||
cmp r0, #0
|
||||
bne _08038F1C
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _08038F16
|
||||
adds r0, r4, #0
|
||||
bl sub_0803901C
|
||||
b _08038F1C
|
||||
_08038F16:
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #8
|
||||
str r0, [r4, #0x20]
|
||||
_08038F1C:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08038F20
|
||||
sub_08038F20: @ 0x08038F20
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_08039298
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08038F42
|
||||
adds r0, r4, #0
|
||||
bl sub_0803901C
|
||||
_08038F42:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_08038F44
|
||||
sub_08038F44: @ 0x08038F44
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r0, _08038F8C @ =gPlayerEntity
|
||||
adds r1, r4, #0
|
||||
bl GetFacingDirection
|
||||
strb r0, [r4, #0x15]
|
||||
adds r0, r4, #0
|
||||
bl sub_080390F8
|
||||
adds r0, r4, #0
|
||||
bl ProcessMovement
|
||||
movs r1, #0xc0
|
||||
lsls r1, r1, #5
|
||||
adds r0, r4, #0
|
||||
bl sub_080044EC
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
adds r0, r4, #0
|
||||
bl sub_08039298
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x78
|
||||
ldrh r0, [r1]
|
||||
subs r2, r0, #1
|
||||
strh r2, [r1]
|
||||
lsls r0, r2, #0x10
|
||||
cmp r0, #0
|
||||
bne _08038F90
|
||||
adds r0, r4, #0
|
||||
bl sub_08039120
|
||||
b _08038F9E
|
||||
.align 2, 0
|
||||
_08038F8C: .4byte gPlayerEntity
|
||||
_08038F90:
|
||||
movs r0, #0x1f
|
||||
ands r2, r0
|
||||
cmp r2, #0
|
||||
bne _08038F9E
|
||||
adds r0, r4, #0
|
||||
bl sub_08039260
|
||||
_08038F9E:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_08038FA0
|
||||
sub_08038FA0: @ 0x08038FA0
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r1, [r4, #0xe]
|
||||
adds r0, r1, #1
|
||||
strb r0, [r4, #0xe]
|
||||
movs r0, #0x1f
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08038FB8
|
||||
adds r0, r4, #0
|
||||
bl sub_08039260
|
||||
_08038FB8:
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x78
|
||||
ldrh r1, [r2]
|
||||
cmp r1, #0
|
||||
beq _08038FFC
|
||||
ldr r3, _08038FF4 @ =0x0000FFFF
|
||||
adds r0, r1, r3
|
||||
strh r0, [r2]
|
||||
movs r0, #7
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08038FE0
|
||||
ldr r1, _08038FF8 @ =gPlayerEntity
|
||||
adds r0, r4, #0
|
||||
bl GetFacingDirection
|
||||
adds r1, r0, #0
|
||||
adds r0, r4, #0
|
||||
bl sub_08004596
|
||||
_08038FE0:
|
||||
adds r0, r4, #0
|
||||
bl sub_080390F8
|
||||
adds r0, r4, #0
|
||||
bl LinearMoveUpdate
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
b _08039018
|
||||
.align 2, 0
|
||||
_08038FF4: .4byte 0x0000FFFF
|
||||
_08038FF8: .4byte gPlayerEntity
|
||||
_08038FFC:
|
||||
adds r0, r4, #0
|
||||
bl LinearMoveUpdate
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
adds r0, r4, #0
|
||||
bl sub_0803917C
|
||||
cmp r0, #0
|
||||
beq _08039018
|
||||
adds r0, r4, #0
|
||||
bl DeleteEntity
|
||||
_08039018:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0803901C
|
||||
sub_0803901C: @ 0x0803901C
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
bl Random
|
||||
adds r3, r0, #0
|
||||
movs r5, #3
|
||||
ands r5, r3
|
||||
cmp r3, #3
|
||||
bne _08039042
|
||||
ldrb r0, [r4, #0xc]
|
||||
cmp r0, #3
|
||||
beq _0803903C
|
||||
cmp r0, #4
|
||||
beq _08039040
|
||||
movs r5, #0
|
||||
b _08039042
|
||||
_0803903C:
|
||||
movs r5, #1
|
||||
b _08039042
|
||||
_08039040:
|
||||
movs r5, #2
|
||||
_08039042:
|
||||
cmp r5, #1
|
||||
beq _0803906C
|
||||
cmp r5, #2
|
||||
beq _080390AA
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldr r2, _08039068 @ =gUnk_080CF7BE
|
||||
lsrs r0, r3, #0x10
|
||||
movs r1, #3
|
||||
ands r0, r1
|
||||
adds r0, r0, r2
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r4, #0xe]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl InitializeAnimation
|
||||
b _080390BC
|
||||
.align 2, 0
|
||||
_08039068: .4byte gUnk_080CF7BE
|
||||
_0803906C:
|
||||
movs r1, #3
|
||||
movs r0, #3
|
||||
strb r0, [r4, #0xc]
|
||||
lsrs r0, r3, #8
|
||||
ands r0, r1
|
||||
adds r0, #2
|
||||
strb r0, [r4, #0xe]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #8
|
||||
str r0, [r4, #0x20]
|
||||
adds r0, r4, #0
|
||||
bl sub_080390C0
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
bl InitializeAnimation
|
||||
bl Random
|
||||
ands r0, r5
|
||||
cmp r0, #0
|
||||
beq _080390BC
|
||||
bl Random
|
||||
ands r5, r0
|
||||
movs r1, #0xeb
|
||||
lsls r1, r1, #1
|
||||
adds r0, r5, r1
|
||||
bl EnqueueSFX
|
||||
b _080390BC
|
||||
_080390AA:
|
||||
movs r0, #4
|
||||
strb r0, [r4, #0xc]
|
||||
lsrs r1, r3, #0x10
|
||||
movs r0, #1
|
||||
ands r1, r0
|
||||
adds r1, #2
|
||||
adds r0, r4, #0
|
||||
bl InitializeAnimation
|
||||
_080390BC:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_080390C0
|
||||
sub_080390C0: @ 0x080390C0
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
bl Random
|
||||
adds r5, r0, #0
|
||||
adds r0, r4, #0
|
||||
bl sub_08049FA0
|
||||
cmp r0, #0
|
||||
beq _080390E0
|
||||
movs r0, #1
|
||||
ands r0, r5
|
||||
cmp r0, #0
|
||||
beq _080390E0
|
||||
lsrs r0, r5, #0x10
|
||||
b _080390E8
|
||||
_080390E0:
|
||||
adds r0, r4, #0
|
||||
bl sub_08049EE4
|
||||
adds r0, #2
|
||||
_080390E8:
|
||||
movs r1, #0x1c
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x15]
|
||||
adds r0, r4, #0
|
||||
bl sub_080390F8
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_080390F8
|
||||
sub_080390F8: @ 0x080390F8
|
||||
push {lr}
|
||||
adds r3, r0, #0
|
||||
ldrb r1, [r3, #0x15]
|
||||
movs r0, #0xf
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0803911C
|
||||
lsrs r1, r1, #4
|
||||
movs r0, #1
|
||||
eors r1, r0
|
||||
ands r1, r0
|
||||
lsls r1, r1, #6
|
||||
ldrb r2, [r3, #0x18]
|
||||
movs r0, #0x41
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r3, #0x18]
|
||||
_0803911C:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08039120
|
||||
sub_08039120: @ 0x08039120
|
||||
push {lr}
|
||||
ldr r2, _0803913C @ =gUnk_080CF7C2
|
||||
ldrb r1, [r0, #0xa]
|
||||
adds r1, r1, r2
|
||||
ldrb r1, [r1]
|
||||
movs r2, #0
|
||||
strh r1, [r0, #0x24]
|
||||
adds r1, r0, #0
|
||||
adds r1, #0x7a
|
||||
strb r2, [r1]
|
||||
bl sub_0803901C
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0803913C: .4byte gUnk_080CF7C2
|
||||
|
||||
thumb_func_start sub_08039140
|
||||
sub_08039140: @ 0x08039140
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #6
|
||||
strb r0, [r4, #0xc]
|
||||
bl Random
|
||||
strb r0, [r4, #0xe]
|
||||
ldr r1, _08039174 @ =gPlayerEntity
|
||||
adds r0, r4, #0
|
||||
bl GetFacingDirection
|
||||
strb r0, [r4, #0x15]
|
||||
ldr r0, _08039178 @ =0x0000FFFC
|
||||
strh r0, [r4, #0x36]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x78
|
||||
movs r0, #0xb4
|
||||
strh r0, [r1]
|
||||
adds r0, r4, #0
|
||||
bl sub_080390F8
|
||||
adds r0, r4, #0
|
||||
movs r1, #4
|
||||
bl InitializeAnimation
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08039174: .4byte gPlayerEntity
|
||||
_08039178: .4byte 0x0000FFFC
|
||||
|
||||
thumb_func_start sub_0803917C
|
||||
sub_0803917C: @ 0x0803917C
|
||||
push {r4, lr}
|
||||
adds r2, r0, #0
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r2, r1]
|
||||
ldr r3, _080391AC @ =gRoomControls
|
||||
movs r4, #0xa
|
||||
ldrsh r1, [r3, r4]
|
||||
adds r1, #0xc
|
||||
subs r0, r0, r1
|
||||
movs r1, #0x84
|
||||
lsls r1, r1, #1
|
||||
cmp r0, r1
|
||||
bhi _080391B0
|
||||
movs r0, #0x32
|
||||
ldrsh r1, [r2, r0]
|
||||
movs r2, #0xc
|
||||
ldrsh r0, [r3, r2]
|
||||
adds r0, #0xc
|
||||
subs r1, r1, r0
|
||||
cmp r1, #0xb8
|
||||
bhi _080391B0
|
||||
movs r0, #0
|
||||
b _080391B2
|
||||
.align 2, 0
|
||||
_080391AC: .4byte gRoomControls
|
||||
_080391B0:
|
||||
movs r0, #1
|
||||
_080391B2:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_080391B4
|
||||
sub_080391B4: @ 0x080391B4
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
adds r0, #0x7a
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _0803920C
|
||||
adds r2, r5, #0
|
||||
adds r2, #0x7b
|
||||
ldrb r1, [r2]
|
||||
adds r0, r1, #1
|
||||
strb r0, [r2]
|
||||
movs r0, #0x1f
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0803920C
|
||||
movs r0, #0x41
|
||||
movs r1, #2
|
||||
bl CreateEnemy
|
||||
adds r4, r0, #0
|
||||
cmp r4, #0
|
||||
beq _0803920C
|
||||
bl Random
|
||||
movs r1, #0x17
|
||||
ands r1, r0
|
||||
lsls r1, r1, #2
|
||||
ldr r0, _08039210 @ =gUnk_080CF7C4
|
||||
adds r1, r1, r0
|
||||
ldr r2, _08039214 @ =gRoomControls
|
||||
ldrh r0, [r1]
|
||||
ldrh r3, [r2, #0xa]
|
||||
adds r0, r0, r3
|
||||
strh r0, [r4, #0x2e]
|
||||
ldrh r0, [r1, #2]
|
||||
ldrh r2, [r2, #0xc]
|
||||
adds r0, r0, r2
|
||||
strh r0, [r4, #0x32]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x38
|
||||
ldrb r1, [r0]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x38
|
||||
strb r1, [r0]
|
||||
_0803920C:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_08039210: .4byte gUnk_080CF7C4
|
||||
_08039214: .4byte gRoomControls
|
||||
|
||||
thumb_func_start sub_08039218
|
||||
sub_08039218: @ 0x08039218
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
movs r0, #5
|
||||
strb r0, [r2, #0xc]
|
||||
ldr r1, _08039254 @ =gUnk_080CF824
|
||||
ldrb r0, [r2, #0xa]
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r1
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r2, #0x24]
|
||||
ldr r1, _08039258 @ =gUnk_080CF828
|
||||
ldrb r0, [r2, #0xa]
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r1
|
||||
ldrh r1, [r0]
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x78
|
||||
strh r1, [r0]
|
||||
subs r0, #0x20
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #4
|
||||
beq _0803924C
|
||||
adds r0, r2, #0
|
||||
movs r1, #4
|
||||
bl InitializeAnimation
|
||||
_0803924C:
|
||||
ldr r0, _0803925C @ =0x000001D9
|
||||
bl EnqueueSFX
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08039254: .4byte gUnk_080CF824
|
||||
_08039258: .4byte gUnk_080CF828
|
||||
_0803925C: .4byte 0x000001D9
|
||||
|
||||
thumb_func_start sub_08039260
|
||||
sub_08039260: @ 0x08039260
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r0, _08039290 @ =gUnk_080CF82E
|
||||
ldrb r1, [r4, #0xa]
|
||||
adds r1, r1, r0
|
||||
ldrb r1, [r1]
|
||||
adds r0, r4, #0
|
||||
movs r2, #0
|
||||
bl CreateFx
|
||||
adds r2, r0, #0
|
||||
cmp r2, #0
|
||||
beq _0803928E
|
||||
ldr r0, _08039294 @ =gUnk_080CF82C
|
||||
ldrb r1, [r4, #0x18]
|
||||
lsls r1, r1, #0x19
|
||||
lsrs r1, r1, #0x1f
|
||||
adds r1, r1, r0
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
ldrh r1, [r2, #0x2e]
|
||||
adds r0, r0, r1
|
||||
strh r0, [r2, #0x2e]
|
||||
_0803928E:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08039290: .4byte gUnk_080CF82E
|
||||
_08039294: .4byte gUnk_080CF82C
|
||||
|
||||
thumb_func_start sub_08039298
|
||||
sub_08039298: @ 0x08039298
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldrb r0, [r1, #0xb]
|
||||
cmp r0, #0
|
||||
bne _080392A8
|
||||
adds r0, r1, #0
|
||||
bl sub_08078930
|
||||
_080392A8:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
@@ -1,317 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Enemy49
|
||||
Enemy49: @ 0x0803CE80
|
||||
push {lr}
|
||||
ldr r2, _0803CE94 @ =gUnk_080D0448
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0803CE94: .4byte gUnk_080D0448
|
||||
|
||||
thumb_func_start sub_0803CE98
|
||||
sub_0803CE98: @ 0x0803CE98
|
||||
push {r4, r5, r6, lr}
|
||||
adds r6, r0, #0
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x84
|
||||
ldrh r2, [r1]
|
||||
movs r5, #0xf0
|
||||
lsls r5, r5, #8
|
||||
adds r0, r5, #0
|
||||
ands r0, r2
|
||||
lsrs r0, r0, #5
|
||||
strh r0, [r6, #0x24]
|
||||
ldrh r2, [r1]
|
||||
ldr r4, _0803CF1C @ =0x00000FFF
|
||||
adds r0, r4, #0
|
||||
ands r0, r2
|
||||
strh r0, [r1]
|
||||
adds r0, r6, #0
|
||||
bl sub_0804A720
|
||||
movs r0, #1
|
||||
strb r0, [r6, #0xc]
|
||||
adds r3, r6, #0
|
||||
adds r3, #0x82
|
||||
ldrh r0, [r3]
|
||||
ands r4, r0
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x74
|
||||
strh r4, [r0]
|
||||
ldrh r0, [r3]
|
||||
movs r1, #0x3f
|
||||
ands r1, r0
|
||||
lsls r1, r1, #4
|
||||
ldr r2, _0803CF20 @ =gRoomControls
|
||||
ldrh r0, [r2, #6]
|
||||
adds r0, #8
|
||||
adds r1, r1, r0
|
||||
strh r1, [r6, #0x2e]
|
||||
ldrh r1, [r3]
|
||||
movs r0, #0xfc
|
||||
lsls r0, r0, #4
|
||||
ands r0, r1
|
||||
lsrs r0, r0, #2
|
||||
ldrh r1, [r2, #8]
|
||||
adds r1, #8
|
||||
adds r0, r0, r1
|
||||
strh r0, [r6, #0x32]
|
||||
movs r1, #0
|
||||
ldrsh r0, [r3, r1]
|
||||
ands r0, r5
|
||||
asrs r0, r0, #0xa
|
||||
strb r0, [r6, #0x15]
|
||||
ldrb r0, [r6, #0xa]
|
||||
lsls r0, r0, #2
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x78
|
||||
strh r0, [r1]
|
||||
adds r0, r6, #0
|
||||
bl sub_0803CFF0
|
||||
cmp r0, #0
|
||||
beq _0803CF18
|
||||
adds r0, r6, #0
|
||||
bl sub_0803D0B0
|
||||
_0803CF18:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0803CF1C: .4byte 0x00000FFF
|
||||
_0803CF20: .4byte gRoomControls
|
||||
|
||||
thumb_func_start sub_0803CF24
|
||||
sub_0803CF24: @ 0x0803CF24
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_0803CFD8
|
||||
cmp r0, #0
|
||||
beq _0803CF36
|
||||
adds r0, r4, #0
|
||||
bl sub_0803D024
|
||||
_0803CF36:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_0803CF38
|
||||
sub_0803CF38: @ 0x0803CF38
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_0803CFF0
|
||||
cmp r0, #0
|
||||
beq _0803CF4C
|
||||
adds r0, r4, #0
|
||||
bl sub_0803D0B0
|
||||
b _0803CF8C
|
||||
_0803CF4C:
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl sub_08049FDC
|
||||
cmp r0, #0
|
||||
beq _0803CF8C
|
||||
ldr r0, _0803CF90 @ =gUnk_020000B0
|
||||
ldr r0, [r0]
|
||||
movs r2, #0x2e
|
||||
ldrsh r1, [r0, r2]
|
||||
movs r3, #0x32
|
||||
ldrsh r2, [r0, r3]
|
||||
adds r0, r4, #0
|
||||
movs r3, #0x20
|
||||
bl sub_0806FCB8
|
||||
cmp r0, #0
|
||||
bne _0803CF8C
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7a
|
||||
ldrh r0, [r1]
|
||||
subs r0, #1
|
||||
strh r0, [r1]
|
||||
lsls r0, r0, #0x10
|
||||
cmp r0, #0
|
||||
bne _0803CF8C
|
||||
adds r0, r4, #0
|
||||
bl sub_0803D058
|
||||
adds r0, r4, #0
|
||||
bl sub_0803D024
|
||||
_0803CF8C:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0803CF90: .4byte gUnk_020000B0
|
||||
|
||||
thumb_func_start sub_0803CF94
|
||||
sub_0803CF94: @ 0x0803CF94
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
adds r0, #0x74
|
||||
ldrh r0, [r0]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x38
|
||||
ldrb r1, [r1]
|
||||
bl GetTileType
|
||||
cmp r0, #0x76
|
||||
bne _0803CFBA
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x80
|
||||
movs r0, #0
|
||||
strh r0, [r1]
|
||||
adds r0, r4, #0
|
||||
bl sub_0803D024
|
||||
b _0803CFD4
|
||||
_0803CFBA:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x7c
|
||||
ldrh r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _0803CFD4
|
||||
adds r0, r4, #0
|
||||
bl sub_0803CFD8
|
||||
cmp r0, #0
|
||||
beq _0803CFD4
|
||||
adds r0, r4, #0
|
||||
bl sub_0803D024
|
||||
_0803CFD4:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0803CFD8
|
||||
sub_0803CFD8: @ 0x0803CFD8
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
adds r1, #0x7c
|
||||
ldrh r0, [r1]
|
||||
cmp r0, #0
|
||||
bne _0803CFE8
|
||||
movs r0, #1
|
||||
b _0803CFEE
|
||||
_0803CFE8:
|
||||
ldrh r0, [r1]
|
||||
bl CheckFlags
|
||||
_0803CFEE:
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start sub_0803CFF0
|
||||
sub_0803CFF0: @ 0x0803CFF0
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
adds r1, #0x80
|
||||
ldrh r2, [r1]
|
||||
cmp r2, #0
|
||||
beq _0803D01E
|
||||
adds r0, #0x7c
|
||||
ldrh r0, [r0]
|
||||
cmp r2, r0
|
||||
bne _0803D016
|
||||
adds r0, r2, #0
|
||||
bl CheckFlags
|
||||
movs r1, #0
|
||||
cmp r0, #0
|
||||
bne _0803D012
|
||||
movs r1, #1
|
||||
_0803D012:
|
||||
adds r0, r1, #0
|
||||
b _0803D020
|
||||
_0803D016:
|
||||
ldrh r0, [r1]
|
||||
bl CheckFlags
|
||||
b _0803D020
|
||||
_0803D01E:
|
||||
movs r0, #0
|
||||
_0803D020:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0803D024
|
||||
sub_0803D024: @ 0x0803D024
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xc]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x78
|
||||
ldrh r1, [r0]
|
||||
cmp r1, #0
|
||||
beq _0803D03A
|
||||
adds r0, #2
|
||||
b _0803D04E
|
||||
_0803D03A:
|
||||
bl Random
|
||||
ldr r2, _0803D054 @ =gUnk_080D0458
|
||||
movs r1, #7
|
||||
ands r1, r0
|
||||
lsls r1, r1, #1
|
||||
adds r1, r1, r2
|
||||
ldrh r1, [r1]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x7a
|
||||
_0803D04E:
|
||||
strh r1, [r0]
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0803D054: .4byte gUnk_080D0458
|
||||
|
||||
thumb_func_start sub_0803D058
|
||||
sub_0803D058: @ 0x0803D058
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
movs r1, #0x16
|
||||
movs r2, #0
|
||||
bl CreateProjectileWithParent
|
||||
adds r5, r0, #0
|
||||
cmp r5, #0
|
||||
beq _0803D0AE
|
||||
ldrh r1, [r4, #0x24]
|
||||
movs r2, #0x24
|
||||
ldrsh r0, [r4, r2]
|
||||
cmp r0, #0
|
||||
beq _0803D078
|
||||
strh r1, [r5, #0x24]
|
||||
b _0803D08A
|
||||
_0803D078:
|
||||
bl Random
|
||||
ldr r2, _0803D0A4 @ =gUnk_080D0468
|
||||
movs r1, #3
|
||||
ands r1, r0
|
||||
lsls r1, r1, #1
|
||||
adds r1, r1, r2
|
||||
ldrh r0, [r1]
|
||||
strh r0, [r5, #0x24]
|
||||
_0803D08A:
|
||||
ldrb r1, [r4, #0x15]
|
||||
movs r0, #0x20
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0803D0AC
|
||||
ldr r0, _0803D0A8 @ =gUnk_020000B0
|
||||
ldr r1, [r0]
|
||||
adds r0, r4, #0
|
||||
bl GetFacingDirection
|
||||
strb r0, [r5, #0x15]
|
||||
b _0803D0AE
|
||||
.align 2, 0
|
||||
_0803D0A4: .4byte gUnk_080D0468
|
||||
_0803D0A8: .4byte gUnk_020000B0
|
||||
_0803D0AC:
|
||||
strb r1, [r5, #0x15]
|
||||
_0803D0AE:
|
||||
pop {r4, r5, pc}
|
||||
|
||||
thumb_func_start sub_0803D0B0
|
||||
sub_0803D0B0: @ 0x0803D0B0
|
||||
push {lr}
|
||||
movs r1, #3
|
||||
strb r1, [r0, #0xc]
|
||||
adds r1, r0, #0
|
||||
adds r1, #0x74
|
||||
ldrh r1, [r1]
|
||||
adds r0, #0x38
|
||||
ldrb r2, [r0]
|
||||
movs r0, #0x75
|
||||
bl sub_0807B7D8
|
||||
pop {pc}
|
||||
+4
-4
@@ -39,7 +39,7 @@ _0803EBE4:
|
||||
ldrh r2, [r0]
|
||||
adds r0, r4, #0
|
||||
movs r3, #2
|
||||
bl sub_0806FCB8
|
||||
bl EntityWithinDistance
|
||||
cmp r0, #0
|
||||
bne _0803EC14
|
||||
movs r0, #4
|
||||
@@ -141,7 +141,7 @@ sub_0803EC94: @ 0x0803EC94
|
||||
ldrh r2, [r6]
|
||||
adds r0, r4, #0
|
||||
movs r3, #1
|
||||
bl sub_0806FCB8
|
||||
bl EntityWithinDistance
|
||||
cmp r0, #0
|
||||
beq _0803ECD8
|
||||
ldrh r0, [r5]
|
||||
@@ -465,7 +465,7 @@ sub_0803EF04: @ 0x0803EF04
|
||||
movs r4, #0x32
|
||||
ldrsh r2, [r2, r4]
|
||||
subs r2, #4
|
||||
bl sub_0806FCB8
|
||||
bl EntityWithinDistance
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0803EF1C: .4byte gUnk_020000B0
|
||||
@@ -531,7 +531,7 @@ sub_0803EF74: @ 0x0803EF74
|
||||
ldrsh r2, [r4, r0]
|
||||
adds r0, r5, #0
|
||||
movs r3, #0x50
|
||||
bl sub_0806FCB8
|
||||
bl EntityWithinDistance
|
||||
cmp r0, #0
|
||||
beq _0803EFA8
|
||||
adds r0, r4, #0
|
||||
|
||||
+7
-7
@@ -449,7 +449,7 @@ _08049398:
|
||||
asrs r3, r3, #0x10
|
||||
adds r3, #0x10
|
||||
adds r0, r4, #0
|
||||
bl sub_0806FCB8
|
||||
bl EntityWithinDistance
|
||||
cmp r0, #0
|
||||
beq _080493E0
|
||||
movs r0, #2
|
||||
@@ -661,7 +661,7 @@ sub_08049538: @ 0x08049538
|
||||
adds r2, #0x80
|
||||
adds r0, r4, #0
|
||||
movs r3, #0x70
|
||||
bl sub_0806FCB8
|
||||
bl EntityWithinDistance
|
||||
adds r1, r0, #0
|
||||
cmp r1, #0
|
||||
bne _0804956E
|
||||
@@ -754,7 +754,7 @@ sub_080495F8: @ 0x080495F8
|
||||
adds r2, #0x80
|
||||
adds r0, r4, #0
|
||||
movs r3, #0x28
|
||||
bl sub_0806FCB8
|
||||
bl EntityWithinDistance
|
||||
cmp r0, #0
|
||||
beq _0804963C
|
||||
movs r0, #2
|
||||
@@ -1195,7 +1195,7 @@ sub_08049944: @ 0x08049944
|
||||
movs r3, #0x32
|
||||
ldrsh r2, [r5, r3]
|
||||
movs r3, #0x20
|
||||
bl sub_0806FCB8
|
||||
bl EntityWithinDistance
|
||||
cmp r0, #0
|
||||
beq _0804998C
|
||||
ldr r2, _08049994 @ =gPlayerState
|
||||
@@ -1236,7 +1236,7 @@ sub_08049998: @ 0x08049998
|
||||
ldrsh r1, [r5, r0]
|
||||
ldrb r2, [r5, #0x15]
|
||||
adds r0, r5, #0
|
||||
bl sub_0806F62C
|
||||
bl LinearMoveAngle
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x7c
|
||||
ldrb r1, [r0]
|
||||
@@ -1292,7 +1292,7 @@ sub_080499F0: @ 0x080499F0
|
||||
ldrsh r2, [r4, r3]
|
||||
adds r0, r5, #0
|
||||
movs r3, #0x24
|
||||
bl sub_0806FCB8
|
||||
bl EntityWithinDistance
|
||||
cmp r0, #0
|
||||
beq _08049A7E
|
||||
ldrb r1, [r6]
|
||||
@@ -1433,7 +1433,7 @@ sub_08049B20: @ 0x08049B20
|
||||
ldrsh r1, [r4, r0]
|
||||
ldrb r2, [r4, #0x15]
|
||||
adds r0, r4, #0
|
||||
bl sub_0806F62C
|
||||
bl LinearMoveAngle
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x7c
|
||||
ldrb r1, [r0]
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Enemy66
|
||||
Enemy66: @ 0x08049CAC
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
ldr r1, _08049CC8 @ =gUnk_080D2ABC
|
||||
ldrb r0, [r2, #0xf]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldr r1, [r0]
|
||||
cmp r1, #0
|
||||
beq _08049CCC
|
||||
adds r0, r2, #0
|
||||
bl _call_via_r1
|
||||
b _08049CD0
|
||||
.align 2, 0
|
||||
_08049CC8: .4byte gUnk_080D2ABC
|
||||
_08049CCC:
|
||||
bl DeleteThisEntity
|
||||
_08049CD0:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
+4
-4
@@ -687,14 +687,14 @@ sub_08030F00: @ 0x08030F00
|
||||
adds r6, #0x38
|
||||
ldrb r1, [r6]
|
||||
adds r0, r4, #0
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x80
|
||||
strh r0, [r1]
|
||||
adds r0, r4, #1
|
||||
mov sl, r0
|
||||
ldrb r1, [r6]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x82
|
||||
strh r0, [r1]
|
||||
@@ -703,7 +703,7 @@ sub_08030F00: @ 0x08030F00
|
||||
mov sb, r3
|
||||
ldrb r1, [r6]
|
||||
mov r0, sb
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x84
|
||||
strh r0, [r1]
|
||||
@@ -711,7 +711,7 @@ sub_08030F00: @ 0x08030F00
|
||||
adds r0, r0, r4
|
||||
mov r8, r0
|
||||
ldrb r1, [r6]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x86
|
||||
strh r0, [r1]
|
||||
|
||||
@@ -286,7 +286,7 @@ sub_08037220: @ 0x08037220
|
||||
adds r6, #0x38
|
||||
ldrb r1, [r6]
|
||||
adds r0, r4, #0
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x74
|
||||
strh r0, [r1]
|
||||
@@ -542,7 +542,7 @@ sub_08037418: @ 0x08037418
|
||||
adds r6, #0x38
|
||||
ldrb r1, [r6]
|
||||
adds r0, r4, #0
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
ldr r1, _08037468 @ =0x00004067
|
||||
cmp r0, r1
|
||||
bne _08037460
|
||||
|
||||
-3133
File diff suppressed because it is too large
Load Diff
@@ -1,966 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start SpinyBeetle
|
||||
SpinyBeetle: @ 0x0803379C
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r1, _080337B8 @ =gUnk_080CEBEC
|
||||
bl EnemyFunctionHandler
|
||||
movs r3, #0x10
|
||||
rsbs r3, r3, #0
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
movs r2, #1
|
||||
bl SetChildOffset
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_080337B8: .4byte gUnk_080CEBEC
|
||||
|
||||
thumb_func_start sub_080337BC
|
||||
sub_080337BC: @ 0x080337BC
|
||||
push {lr}
|
||||
ldr r2, _080337D0 @ =gUnk_080CEC04
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_080337D0: .4byte gUnk_080CEC04
|
||||
|
||||
thumb_func_start sub_080337D4
|
||||
sub_080337D4: @ 0x080337D4
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
adds r0, #0x43
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _080337E8
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x1c
|
||||
bl sub_0804A9FC
|
||||
_080337E8:
|
||||
ldr r1, _08033868 @ =gUnk_080CEBEC
|
||||
adds r0, r4, #0
|
||||
bl sub_0804AA30
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x41
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
adds r5, r2, #0
|
||||
cmp r0, #0
|
||||
beq _08033864
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x3d
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
ble _0803381A
|
||||
ldr r0, [r4, #0x54]
|
||||
cmp r0, #0
|
||||
beq _0803381A
|
||||
adds r0, r4, #0
|
||||
bl sub_08033E1C
|
||||
_0803381A:
|
||||
ldrb r1, [r5]
|
||||
movs r0, #0x3f
|
||||
ands r0, r1
|
||||
cmp r0, #0x14
|
||||
bne _08033864
|
||||
ldrb r0, [r4, #0xc]
|
||||
cmp r0, #5
|
||||
beq _08033864
|
||||
movs r0, #3
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #0x5a
|
||||
strb r0, [r4, #0xe]
|
||||
movs r0, #0x10
|
||||
strb r0, [r4, #0xf]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
subs r0, #0x49
|
||||
ands r0, r1
|
||||
movs r1, #8
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
bl sub_08049F84
|
||||
adds r0, #4
|
||||
movs r1, #0x18
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x15]
|
||||
adds r0, r4, #0
|
||||
bl sub_08033D78
|
||||
adds r0, r4, #0
|
||||
movs r1, #3
|
||||
bl InitializeAnimation
|
||||
_08033864:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_08033868: .4byte gUnk_080CEBEC
|
||||
|
||||
thumb_func_start nullsub_159
|
||||
nullsub_159: @ 0x0803386C
|
||||
bx lr
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08033870
|
||||
sub_08033870: @ 0x08033870
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_08001242
|
||||
ldrb r0, [r4, #0xc]
|
||||
cmp r0, #5
|
||||
beq _0803388E
|
||||
adds r0, r4, #0
|
||||
bl sub_08033DF0
|
||||
cmp r0, #0
|
||||
beq _0803388E
|
||||
adds r0, r4, #0
|
||||
bl sub_08033E1C
|
||||
_0803388E:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_08033890
|
||||
sub_08033890: @ 0x08033890
|
||||
push {r4, r5, r6, lr}
|
||||
adds r6, r0, #0
|
||||
movs r1, #0
|
||||
movs r0, #1
|
||||
strb r0, [r6, #0xc]
|
||||
strb r1, [r6, #0xe]
|
||||
strb r1, [r6, #0xf]
|
||||
ldr r0, [r6, #0x2c]
|
||||
ldr r3, _0803394C @ =0xFFF00000
|
||||
ands r0, r3
|
||||
movs r2, #0x80
|
||||
lsls r2, r2, #0xc
|
||||
orrs r0, r2
|
||||
str r0, [r6, #0x7c]
|
||||
adds r4, r6, #0
|
||||
adds r4, #0x80
|
||||
ldr r0, [r6, #0x30]
|
||||
ands r0, r3
|
||||
orrs r0, r2
|
||||
str r0, [r4]
|
||||
ldr r0, [r6, #0x7c]
|
||||
str r0, [r6, #0x2c]
|
||||
ldr r0, [r4]
|
||||
str r0, [r6, #0x30]
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x79
|
||||
strb r1, [r0]
|
||||
adds r0, #1
|
||||
strb r1, [r0]
|
||||
subs r0, #2
|
||||
strb r1, [r0]
|
||||
adds r0, #3
|
||||
strb r1, [r0]
|
||||
movs r0, #0x2e
|
||||
ldrsh r1, [r6, r0]
|
||||
ldr r2, _08033950 @ =gRoomControls
|
||||
ldrh r0, [r2, #6]
|
||||
subs r1, r1, r0
|
||||
asrs r1, r1, #4
|
||||
movs r3, #0x3f
|
||||
ands r1, r3
|
||||
movs r4, #0x32
|
||||
ldrsh r0, [r6, r4]
|
||||
ldrh r2, [r2, #8]
|
||||
subs r0, r0, r2
|
||||
asrs r0, r0, #4
|
||||
ands r0, r3
|
||||
lsls r0, r0, #6
|
||||
orrs r1, r0
|
||||
adds r4, r6, #0
|
||||
adds r4, #0x74
|
||||
strh r1, [r4]
|
||||
ldrh r0, [r4]
|
||||
adds r5, r6, #0
|
||||
adds r5, #0x38
|
||||
ldrb r1, [r5]
|
||||
bl sub_080001DA
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x76
|
||||
strh r0, [r1]
|
||||
ldr r0, _08033954 @ =0x00004022
|
||||
ldrh r1, [r4]
|
||||
ldrb r2, [r5]
|
||||
bl SetTile
|
||||
ldrb r1, [r6, #0xa]
|
||||
movs r0, #0x7d
|
||||
movs r2, #0
|
||||
bl CreateObject
|
||||
adds r4, r0, #0
|
||||
cmp r4, #0
|
||||
bne _08033928
|
||||
bl DeleteThisEntity
|
||||
_08033928:
|
||||
adds r0, r6, #0
|
||||
adds r1, r4, #0
|
||||
bl CopyPosition
|
||||
str r4, [r6, #0x54]
|
||||
str r6, [r4, #0x50]
|
||||
ldrb r0, [r6, #0xa]
|
||||
cmp r0, #1
|
||||
bne _08033940
|
||||
adds r0, r6, #0
|
||||
bl sub_08033EA8
|
||||
_08033940:
|
||||
adds r0, r6, #0
|
||||
movs r1, #0
|
||||
bl InitializeAnimation
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0803394C: .4byte 0xFFF00000
|
||||
_08033950: .4byte gRoomControls
|
||||
_08033954: .4byte 0x00004022
|
||||
|
||||
thumb_func_start sub_08033958
|
||||
sub_08033958: @ 0x08033958
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_08033DF0
|
||||
cmp r0, #0
|
||||
beq _08033982
|
||||
adds r0, r4, #0
|
||||
bl sub_08033E1C
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x76
|
||||
ldrh r0, [r0]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x74
|
||||
ldrh r1, [r1]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x38
|
||||
ldrb r2, [r2]
|
||||
bl sub_0807B9B8
|
||||
b _08033A72
|
||||
_08033982:
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7b
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
beq _08033992
|
||||
subs r0, #1
|
||||
strb r0, [r1]
|
||||
b _08033A72
|
||||
_08033992:
|
||||
ldr r0, [r4, #0x7c]
|
||||
str r0, [r4, #0x2c]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x80
|
||||
ldr r0, [r0]
|
||||
str r0, [r4, #0x30]
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
movs r2, #0x10
|
||||
bl sub_0804A024
|
||||
adds r5, r0, #0
|
||||
cmp r5, #0x10
|
||||
beq _080339E0
|
||||
cmp r5, #0x10
|
||||
bhi _080339BC
|
||||
cmp r5, #0
|
||||
beq _080339C6
|
||||
cmp r5, #8
|
||||
beq _080339F0
|
||||
b _08033A10
|
||||
_080339BC:
|
||||
cmp r5, #0x18
|
||||
beq _08033A00
|
||||
cmp r5, #0xff
|
||||
bne _08033A10
|
||||
b _08033A72
|
||||
_080339C6:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x78
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _08033A72
|
||||
movs r1, #0x32
|
||||
ldrsh r0, [r4, r1]
|
||||
ldr r1, _080339DC @ =gPlayerEntity
|
||||
movs r2, #0x32
|
||||
ldrsh r1, [r1, r2]
|
||||
b _08033A0A
|
||||
.align 2, 0
|
||||
_080339DC: .4byte gPlayerEntity
|
||||
_080339E0:
|
||||
ldr r0, _080339EC @ =gPlayerEntity
|
||||
movs r1, #0x32
|
||||
ldrsh r0, [r0, r1]
|
||||
movs r2, #0x32
|
||||
ldrsh r1, [r4, r2]
|
||||
b _08033A0A
|
||||
.align 2, 0
|
||||
_080339EC: .4byte gPlayerEntity
|
||||
_080339F0:
|
||||
ldr r0, _080339FC @ =gPlayerEntity
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r0, r1]
|
||||
movs r2, #0x2e
|
||||
ldrsh r1, [r4, r2]
|
||||
b _08033A0A
|
||||
.align 2, 0
|
||||
_080339FC: .4byte gPlayerEntity
|
||||
_08033A00:
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r4, r1]
|
||||
ldr r1, _08033A74 @ =gPlayerEntity
|
||||
movs r2, #0x2e
|
||||
ldrsh r1, [r1, r2]
|
||||
_08033A0A:
|
||||
subs r0, r0, r1
|
||||
cmp r0, #0x30
|
||||
bgt _08033A72
|
||||
_08033A10:
|
||||
ldr r0, [r4, #0x54]
|
||||
cmp r0, #0
|
||||
beq _08033A1E
|
||||
bl sub_0806F520
|
||||
cmp r0, #0
|
||||
bne _08033A72
|
||||
_08033A1E:
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x78
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
bne _08033A2C
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
_08033A2C:
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xc]
|
||||
strb r5, [r4, #0x15]
|
||||
ldrb r1, [r4, #0x18]
|
||||
subs r0, #6
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
ldrb r1, [r4, #0x10]
|
||||
movs r0, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x10]
|
||||
ldr r0, [r4, #0x30]
|
||||
ldr r1, _08033A78 @ =0xFFF00000
|
||||
ands r0, r1
|
||||
movs r1, #0xc0
|
||||
lsls r1, r1, #0xc
|
||||
orrs r0, r1
|
||||
str r0, [r4, #0x30]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x76
|
||||
ldrh r0, [r0]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x74
|
||||
ldrh r1, [r1]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x38
|
||||
ldrb r2, [r2]
|
||||
bl sub_0807B9B8
|
||||
adds r0, r4, #0
|
||||
movs r1, #2
|
||||
bl InitializeAnimation
|
||||
_08033A72:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_08033A74: .4byte gPlayerEntity
|
||||
_08033A78: .4byte 0xFFF00000
|
||||
|
||||
thumb_func_start sub_08033A7C
|
||||
sub_08033A7C: @ 0x08033A7C
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_08033DF0
|
||||
cmp r0, #0
|
||||
beq _08033A90
|
||||
adds r0, r4, #0
|
||||
bl sub_08033E1C
|
||||
b _08033AC8
|
||||
_08033A90:
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08033AC8
|
||||
movs r0, #3
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #0x78
|
||||
strb r0, [r4, #0xe]
|
||||
movs r0, #0x20
|
||||
strb r0, [r4, #0xf]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
subs r0, #0x59
|
||||
ands r0, r1
|
||||
movs r1, #8
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
adds r0, r4, #0
|
||||
movs r1, #3
|
||||
bl InitializeAnimation
|
||||
_08033AC8:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08033ACC
|
||||
sub_08033ACC: @ 0x08033ACC
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_08033DF0
|
||||
cmp r0, #0
|
||||
beq _08033AE0
|
||||
adds r0, r4, #0
|
||||
bl sub_08033E1C
|
||||
b _08033B42
|
||||
_08033AE0:
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
ldrb r0, [r4, #0xf]
|
||||
cmp r0, #0
|
||||
beq _08033AF8
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xf]
|
||||
b _08033B42
|
||||
_08033AF8:
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _08033B3C
|
||||
movs r0, #4
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #0x78
|
||||
strb r0, [r4, #0xe]
|
||||
ldr r2, [r4, #0x2c]
|
||||
ldr r1, _08033B38 @ =0xFFF00000
|
||||
ands r2, r1
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #0xc
|
||||
orrs r2, r0
|
||||
str r2, [r4, #0x2c]
|
||||
ldr r0, [r4, #0x30]
|
||||
ands r0, r1
|
||||
movs r1, #0xc0
|
||||
lsls r1, r1, #0xc
|
||||
orrs r0, r1
|
||||
str r0, [r4, #0x30]
|
||||
str r2, [r4, #0x7c]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x80
|
||||
str r0, [r1]
|
||||
adds r0, r4, #0
|
||||
movs r1, #4
|
||||
bl InitializeAnimation
|
||||
b _08033B42
|
||||
.align 2, 0
|
||||
_08033B38: .4byte 0xFFF00000
|
||||
_08033B3C:
|
||||
adds r0, r4, #0
|
||||
bl sub_08033D78
|
||||
_08033B42:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_08033B44
|
||||
sub_08033B44: @ 0x08033B44
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
sub sp, #0xc
|
||||
adds r4, r0, #0
|
||||
bl sub_08033DF0
|
||||
cmp r0, #0
|
||||
beq _08033B62
|
||||
adds r0, r4, #0
|
||||
bl sub_08033E1C
|
||||
b _08033C82
|
||||
_08033B62:
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _08033B76
|
||||
b _08033C82
|
||||
_08033B76:
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x18]
|
||||
subs r0, #5
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
ldrb r1, [r4, #0x10]
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x10]
|
||||
movs r0, #0
|
||||
mov r8, r0
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x80
|
||||
str r1, [sp, #4]
|
||||
adds r6, r4, #0
|
||||
adds r6, #0x29
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x7b
|
||||
str r2, [sp]
|
||||
adds r5, r4, #0
|
||||
adds r5, #0x74
|
||||
adds r3, r4, #0
|
||||
adds r3, #0x38
|
||||
str r3, [sp, #8]
|
||||
movs r7, #0x76
|
||||
adds r7, r7, r4
|
||||
mov sl, r7
|
||||
ldr r0, _08033C20 @ =gRoomControls
|
||||
mov sb, r0
|
||||
_08033BB2:
|
||||
ldr r1, [r4, #0x2c]
|
||||
ldr r3, _08033C24 @ =0xFFF00000
|
||||
ands r1, r3
|
||||
movs r2, #0x80
|
||||
lsls r2, r2, #0xc
|
||||
orrs r1, r2
|
||||
str r1, [r4, #0x2c]
|
||||
ldr r0, [r4, #0x30]
|
||||
ands r0, r3
|
||||
orrs r0, r2
|
||||
str r0, [r4, #0x30]
|
||||
str r1, [r4, #0x7c]
|
||||
ldr r1, [sp, #4]
|
||||
str r0, [r1]
|
||||
ldrb r0, [r6]
|
||||
movs r2, #0x39
|
||||
rsbs r2, r2, #0
|
||||
adds r1, r2, #0
|
||||
ands r0, r1
|
||||
strb r0, [r6]
|
||||
movs r0, #0x78
|
||||
ldr r3, [sp]
|
||||
strb r0, [r3]
|
||||
movs r7, #0x2e
|
||||
ldrsh r2, [r4, r7]
|
||||
mov r1, sb
|
||||
ldrh r0, [r1, #6]
|
||||
subs r2, r2, r0
|
||||
asrs r2, r2, #4
|
||||
movs r3, #0x3f
|
||||
ands r2, r3
|
||||
movs r7, #0x32
|
||||
ldrsh r0, [r4, r7]
|
||||
ldrh r1, [r1, #8]
|
||||
subs r0, r0, r1
|
||||
asrs r0, r0, #4
|
||||
ands r0, r3
|
||||
lsls r0, r0, #6
|
||||
orrs r2, r0
|
||||
strh r2, [r5]
|
||||
ldrh r0, [r5]
|
||||
ldr r2, [sp, #8]
|
||||
ldrb r1, [r2]
|
||||
bl sub_080001DA
|
||||
mov r3, sl
|
||||
strh r0, [r3]
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
ldr r7, _08033C28 @ =0x00004022
|
||||
cmp r0, r7
|
||||
beq _08033C2C
|
||||
movs r0, #1
|
||||
add r8, r0
|
||||
b _08033C68
|
||||
.align 2, 0
|
||||
_08033C20: .4byte gRoomControls
|
||||
_08033C24: .4byte 0xFFF00000
|
||||
_08033C28: .4byte 0x00004022
|
||||
_08033C2C:
|
||||
ldrb r1, [r4, #0x15]
|
||||
movs r0, #0x18
|
||||
ands r0, r1
|
||||
lsrs r0, r0, #2
|
||||
cmp r0, #2
|
||||
beq _08033C54
|
||||
cmp r0, #2
|
||||
bgt _08033C42
|
||||
cmp r0, #0
|
||||
beq _08033C4C
|
||||
b _08033C68
|
||||
_08033C42:
|
||||
cmp r0, #4
|
||||
beq _08033C5A
|
||||
cmp r0, #6
|
||||
beq _08033C62
|
||||
b _08033C68
|
||||
_08033C4C:
|
||||
ldrh r0, [r4, #0x32]
|
||||
adds r0, #0x10
|
||||
strh r0, [r4, #0x32]
|
||||
b _08033C68
|
||||
_08033C54:
|
||||
ldrh r0, [r4, #0x2e]
|
||||
subs r0, #0x10
|
||||
b _08033C66
|
||||
_08033C5A:
|
||||
ldrh r0, [r4, #0x32]
|
||||
subs r0, #0x10
|
||||
strh r0, [r4, #0x32]
|
||||
b _08033C68
|
||||
_08033C62:
|
||||
ldrh r0, [r4, #0x2e]
|
||||
adds r0, #0x10
|
||||
_08033C66:
|
||||
strh r0, [r4, #0x2e]
|
||||
_08033C68:
|
||||
mov r1, r8
|
||||
cmp r1, #0
|
||||
beq _08033BB2
|
||||
ldr r0, _08033C90 @ =0x00004022
|
||||
ldrh r1, [r5]
|
||||
ldr r3, [sp, #8]
|
||||
ldrb r2, [r3]
|
||||
bl SetTile
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl InitializeAnimation
|
||||
_08033C82:
|
||||
add sp, #0xc
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_08033C90: .4byte 0x00004022
|
||||
|
||||
thumb_func_start sub_08033C94
|
||||
sub_08033C94: @ 0x08033C94
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r1, #3
|
||||
bl UpdateAnimationVariableFrames
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x79
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #1
|
||||
beq _08033CD2
|
||||
cmp r0, #1
|
||||
bgt _08033CB2
|
||||
cmp r0, #0
|
||||
beq _08033CB8
|
||||
b _08033D76
|
||||
_08033CB2:
|
||||
cmp r0, #2
|
||||
beq _08033D18
|
||||
b _08033D76
|
||||
_08033CB8:
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
ldrb r1, [r4, #0x18]
|
||||
lsls r0, r1, #0x1e
|
||||
lsrs r0, r0, #0x1e
|
||||
cmp r0, #1
|
||||
beq _08033CD2
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
_08033CD2:
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r2, r0, #0x18
|
||||
cmp r2, #0
|
||||
bne _08033D76
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x79
|
||||
movs r0, #2
|
||||
strb r0, [r1]
|
||||
movs r0, #0x78
|
||||
strb r0, [r4, #0xe]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x63
|
||||
strb r2, [r0]
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
bl sub_08049F84
|
||||
adds r0, #0x14
|
||||
strb r0, [r4, #0x15]
|
||||
bl Random
|
||||
adds r1, r0, #0
|
||||
movs r0, #3
|
||||
ands r1, r0
|
||||
cmp r1, #0
|
||||
beq _08033D12
|
||||
cmp r1, #2
|
||||
beq _08033D68
|
||||
b _08033D6E
|
||||
_08033D12:
|
||||
ldrb r0, [r4, #0x15]
|
||||
adds r0, #8
|
||||
b _08033D6C
|
||||
_08033D18:
|
||||
ldrb r0, [r4, #0xf]
|
||||
cmp r0, #0
|
||||
beq _08033D24
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xf]
|
||||
b _08033D2A
|
||||
_08033D24:
|
||||
adds r0, r4, #0
|
||||
bl sub_08033D78
|
||||
_08033D2A:
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _08033D76
|
||||
bl Random
|
||||
movs r1, #0x1f
|
||||
ands r0, r1
|
||||
adds r0, #0x20
|
||||
strb r0, [r4, #0xe]
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
bl sub_08049F84
|
||||
adds r0, #0x14
|
||||
strb r0, [r4, #0x15]
|
||||
bl Random
|
||||
adds r1, r0, #0
|
||||
movs r0, #3
|
||||
ands r1, r0
|
||||
cmp r1, #1
|
||||
beq _08033D62
|
||||
cmp r1, #3
|
||||
beq _08033D68
|
||||
b _08033D6E
|
||||
_08033D62:
|
||||
ldrb r0, [r4, #0x15]
|
||||
adds r0, #8
|
||||
b _08033D6C
|
||||
_08033D68:
|
||||
ldrb r0, [r4, #0x15]
|
||||
adds r0, #0x18
|
||||
_08033D6C:
|
||||
strb r0, [r4, #0x15]
|
||||
_08033D6E:
|
||||
ldrb r1, [r4, #0x15]
|
||||
movs r0, #0x18
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x15]
|
||||
_08033D76:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_08033D78
|
||||
sub_08033D78: @ 0x08033D78
|
||||
push {r4, r5, r6, lr}
|
||||
adds r6, r0, #0
|
||||
ldrb r0, [r6, #0x15]
|
||||
movs r2, #0x18
|
||||
ands r2, r0
|
||||
lsrs r2, r2, #2
|
||||
ldr r0, _08033DE4 @ =gUnk_080CEC1C
|
||||
adds r2, r2, r0
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r6, r1]
|
||||
movs r1, #0
|
||||
ldrsb r1, [r2, r1]
|
||||
adds r0, r0, r1
|
||||
ldr r4, _08033DE8 @ =gRoomControls
|
||||
ldrh r1, [r4, #6]
|
||||
subs r0, r0, r1
|
||||
asrs r5, r0, #4
|
||||
movs r3, #0x3f
|
||||
ands r5, r3
|
||||
movs r1, #0x32
|
||||
ldrsh r0, [r6, r1]
|
||||
movs r1, #1
|
||||
ldrsb r1, [r2, r1]
|
||||
adds r0, r0, r1
|
||||
ldrh r1, [r4, #8]
|
||||
subs r0, r0, r1
|
||||
asrs r0, r0, #4
|
||||
ands r0, r3
|
||||
lsls r0, r0, #6
|
||||
orrs r5, r0
|
||||
adds r4, r6, #0
|
||||
adds r4, #0x38
|
||||
ldrb r1, [r4]
|
||||
adds r0, r5, #0
|
||||
bl GetTileType
|
||||
adds r1, r0, #0
|
||||
ldr r0, _08033DEC @ =0x000001C5
|
||||
cmp r1, r0
|
||||
bhi _08033DCE
|
||||
subs r0, #1
|
||||
cmp r1, r0
|
||||
bhs _08033DE2
|
||||
_08033DCE:
|
||||
ldrb r1, [r4]
|
||||
adds r0, r5, #0
|
||||
bl sub_080002E0
|
||||
subs r0, #1
|
||||
cmp r0, #0x3e
|
||||
bls _08033DE2
|
||||
adds r0, r6, #0
|
||||
bl ProcessMovement
|
||||
_08033DE2:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_08033DE4: .4byte gUnk_080CEC1C
|
||||
_08033DE8: .4byte gRoomControls
|
||||
_08033DEC: .4byte 0x000001C5
|
||||
|
||||
thumb_func_start sub_08033DF0
|
||||
sub_08033DF0: @ 0x08033DF0
|
||||
push {lr}
|
||||
movs r2, #0
|
||||
ldr r1, [r0, #0x54]
|
||||
cmp r1, #0
|
||||
beq _08033E16
|
||||
ldrb r0, [r1, #0xc]
|
||||
cmp r0, #3
|
||||
beq _08033E10
|
||||
cmp r0, #3
|
||||
bgt _08033E0A
|
||||
cmp r0, #2
|
||||
beq _08033E16
|
||||
b _08033E18
|
||||
_08033E0A:
|
||||
cmp r0, #4
|
||||
bne _08033E18
|
||||
b _08033E16
|
||||
_08033E10:
|
||||
ldrb r0, [r1, #0xd]
|
||||
cmp r0, #1
|
||||
bls _08033E18
|
||||
_08033E16:
|
||||
movs r2, #1
|
||||
_08033E18:
|
||||
adds r0, r2, #0
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start sub_08033E1C
|
||||
sub_08033E1C: @ 0x08033E1C
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r2, #0
|
||||
movs r3, #5
|
||||
movs r0, #5
|
||||
strb r0, [r4, #0xc]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x79
|
||||
strb r2, [r0]
|
||||
ldrb r1, [r4, #0x18]
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
ldrb r1, [r4, #0x10]
|
||||
movs r0, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x10]
|
||||
movs r0, #0x29
|
||||
adds r0, r0, r4
|
||||
mov ip, r0
|
||||
ldrb r1, [r0]
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
orrs r0, r3
|
||||
mov r1, ip
|
||||
strb r0, [r1]
|
||||
ldr r0, [r4, #0x30]
|
||||
ldr r1, _08033EA4 @ =0xFFF00000
|
||||
ands r0, r1
|
||||
movs r1, #0xc0
|
||||
lsls r1, r1, #0xc
|
||||
orrs r0, r1
|
||||
str r0, [r4, #0x30]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x3f
|
||||
movs r0, #0x19
|
||||
strb r0, [r1]
|
||||
mov r0, ip
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x39
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #8
|
||||
orrs r0, r1
|
||||
mov r1, ip
|
||||
strb r0, [r1]
|
||||
movs r0, #0x30
|
||||
strb r0, [r4, #0xe]
|
||||
strb r2, [r4, #0xf]
|
||||
adds r0, #0xd0
|
||||
strh r0, [r4, #0x24]
|
||||
str r2, [r4, #0x54]
|
||||
adds r0, r4, #0
|
||||
movs r1, #3
|
||||
bl InitializeAnimation
|
||||
movs r2, #0xc
|
||||
rsbs r2, r2, #0
|
||||
adds r0, r4, #0
|
||||
movs r1, #0xa
|
||||
bl CreateSpeechBubbleExclamationMark
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08033EA4: .4byte 0xFFF00000
|
||||
|
||||
thumb_func_start sub_08033EA8
|
||||
sub_08033EA8: @ 0x08033EA8
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
ldr r0, _08033EC4 @ =gPlayerState
|
||||
adds r0, #0xac
|
||||
ldrh r1, [r0]
|
||||
movs r0, #8
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08033EC8
|
||||
adds r1, r2, #0
|
||||
adds r1, #0x3f
|
||||
movs r0, #0x95
|
||||
b _08033ECE
|
||||
.align 2, 0
|
||||
_08033EC4: .4byte gPlayerState
|
||||
_08033EC8:
|
||||
adds r1, r2, #0
|
||||
adds r1, #0x3f
|
||||
movs r0, #0x63
|
||||
_08033ECE:
|
||||
strb r0, [r1]
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
+3
-3
@@ -671,7 +671,7 @@ _0803976A:
|
||||
ldrsh r2, [r0, r3]
|
||||
adds r0, r4, #0
|
||||
movs r3, #0x24
|
||||
bl sub_0806FCB8
|
||||
bl EntityWithinDistance
|
||||
cmp r0, #0
|
||||
beq _08039818
|
||||
movs r0, #5
|
||||
@@ -713,7 +713,7 @@ _080397DC:
|
||||
ldrsh r2, [r0, r3]
|
||||
adds r0, r4, #0
|
||||
movs r3, #0x48
|
||||
bl sub_0806FCB8
|
||||
bl EntityWithinDistance
|
||||
cmp r0, #0
|
||||
beq _08039818
|
||||
movs r0, #8
|
||||
@@ -844,7 +844,7 @@ sub_080398C0: @ 0x080398C0
|
||||
ldrsh r2, [r0, r3]
|
||||
adds r0, r4, #0
|
||||
movs r3, #0x58
|
||||
bl sub_0806FCB8
|
||||
bl EntityWithinDistance
|
||||
cmp r0, #0
|
||||
beq _08039908
|
||||
ldr r1, _08039904 @ =gPlayerEntity
|
||||
|
||||
@@ -551,7 +551,7 @@ sub_0802F888: @ 0x0802F888
|
||||
adds r6, r4, #0
|
||||
adds r6, #0x38
|
||||
ldrb r1, [r6]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r4, #0x86
|
||||
strh r0, [r4]
|
||||
ldr r0, _0802F8E0 @ =0x00004071
|
||||
@@ -643,7 +643,7 @@ _0802F920:
|
||||
mov r2, r8
|
||||
ldrb r1, [r2]
|
||||
adds r0, r4, #0
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
ldr r1, _0802F9C4 @ =0x00004071
|
||||
cmp r0, r1
|
||||
beq _0802F9A2
|
||||
@@ -789,7 +789,7 @@ sub_0802FA88: @ 0x0802FA88
|
||||
adds r6, #0x7a
|
||||
ldrh r2, [r6]
|
||||
movs r3, #2
|
||||
bl sub_0806FCB8
|
||||
bl EntityWithinDistance
|
||||
cmp r0, #0
|
||||
beq _0802FAF6
|
||||
adds r1, r4, #0
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
.syntax unified
|
||||
push {lr}
|
||||
bl InitBiggoronTimer
|
||||
movs r0, #0xd
|
||||
bl IsItemEquipped
|
||||
adds r1, r0, #0
|
||||
cmp r1, #2
|
||||
beq _0806D5F0
|
||||
ldr r0, _0806D5FC @ =gSave
|
||||
adds r0, #0xb4
|
||||
adds r0, r1, r0
|
||||
movs r1, #0
|
||||
strb r1, [r0]
|
||||
_0806D5F0:
|
||||
movs r0, #0xd
|
||||
movs r1, #0
|
||||
bl sub_0807CAA0
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0806D5FC: .4byte gSave
|
||||
.syntax divided
|
||||
@@ -1,131 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
adds r4, r0, #0
|
||||
ldr r5, _080676D0 @ =gUnk_08110E78
|
||||
ldrb r0, [r4, #0xd]
|
||||
lsls r0, r0, #2
|
||||
adds r7, r0, #0
|
||||
subs r7, #0xc
|
||||
movs r0, #0x3f
|
||||
mov r8, r0
|
||||
movs r6, #8
|
||||
_080675EC:
|
||||
adds r0, r4, #0
|
||||
movs r1, #2
|
||||
movs r2, #0
|
||||
bl CreateFx
|
||||
adds r3, r0, #0
|
||||
cmp r3, #0
|
||||
beq _08067646
|
||||
movs r0, #0
|
||||
ldrsb r0, [r5, r0]
|
||||
ldrh r1, [r3, #0x2e]
|
||||
adds r0, r0, r1
|
||||
strh r0, [r3, #0x2e]
|
||||
movs r0, #1
|
||||
ldrsb r0, [r5, r0]
|
||||
ldrh r1, [r3, #0x32]
|
||||
adds r0, r0, r1
|
||||
strh r0, [r3, #0x32]
|
||||
strh r7, [r3, #0x36]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x38
|
||||
ldrb r1, [r0]
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x38
|
||||
strb r1, [r0]
|
||||
ldrb r1, [r4, #0x1b]
|
||||
lsrs r1, r1, #6
|
||||
lsls r1, r1, #6
|
||||
ldrb r2, [r3, #0x1b]
|
||||
mov r0, r8
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r3, #0x1b]
|
||||
ldrb r1, [r4, #0x19]
|
||||
lsrs r1, r1, #6
|
||||
lsls r1, r1, #6
|
||||
ldrb r2, [r3, #0x19]
|
||||
mov r0, r8
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r3, #0x19]
|
||||
adds r0, r4, #0
|
||||
adds r1, r3, #0
|
||||
bl ResolveEntityOnTop
|
||||
_08067646:
|
||||
subs r6, #1
|
||||
adds r5, #2
|
||||
cmp r6, #0
|
||||
bge _080675EC
|
||||
ldr r5, _080676D4 @ =gUnk_08110E8A
|
||||
movs r0, #0x3f
|
||||
mov r8, r0
|
||||
movs r6, #3
|
||||
_08067656:
|
||||
adds r0, r4, #0
|
||||
movs r1, #4
|
||||
movs r2, #0
|
||||
bl CreateFx
|
||||
adds r3, r0, #0
|
||||
cmp r3, #0
|
||||
beq _080676B0
|
||||
movs r0, #0
|
||||
ldrsb r0, [r5, r0]
|
||||
ldrh r1, [r3, #0x2e]
|
||||
adds r0, r0, r1
|
||||
strh r0, [r3, #0x2e]
|
||||
movs r0, #1
|
||||
ldrsb r0, [r5, r0]
|
||||
ldrh r1, [r3, #0x32]
|
||||
adds r0, r0, r1
|
||||
strh r0, [r3, #0x32]
|
||||
strh r7, [r3, #0x36]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x38
|
||||
ldrb r1, [r0]
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x38
|
||||
strb r1, [r0]
|
||||
ldrb r1, [r4, #0x1b]
|
||||
lsrs r1, r1, #6
|
||||
lsls r1, r1, #6
|
||||
ldrb r2, [r3, #0x1b]
|
||||
mov r0, r8
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r3, #0x1b]
|
||||
ldrb r1, [r4, #0x19]
|
||||
lsrs r1, r1, #6
|
||||
lsls r1, r1, #6
|
||||
ldrb r2, [r3, #0x19]
|
||||
mov r0, r8
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r3, #0x19]
|
||||
adds r0, r4, #0
|
||||
adds r1, r3, #0
|
||||
bl ResolveEntityOnTop
|
||||
_080676B0:
|
||||
subs r6, #1
|
||||
adds r5, #2
|
||||
cmp r6, #0
|
||||
bge _08067656
|
||||
ldrb r0, [r4, #0xd]
|
||||
cmp r0, #2
|
||||
bls _080676C8
|
||||
ldrb r1, [r4, #0x18]
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
_080676C8:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_080676D0: .4byte gUnk_08110E78
|
||||
_080676D4: .4byte gUnk_08110E8A
|
||||
.syntax divided
|
||||
@@ -1,28 +0,0 @@
|
||||
.syntax unified
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
cmp r2, #5
|
||||
bhi _0801D116
|
||||
b _0801D12E
|
||||
_0801D112:
|
||||
adds r0, r1, #0
|
||||
b _0801D12E
|
||||
_0801D116:
|
||||
movs r1, #6
|
||||
ldr r0, _0801D130 @ =gPaletteList
|
||||
adds r0, #0x18
|
||||
_0801D11C:
|
||||
ldrh r3, [r0, #2]
|
||||
cmp r2, r3
|
||||
beq _0801D112
|
||||
adds r0, #4
|
||||
adds r1, #1
|
||||
cmp r1, #0xf
|
||||
bls _0801D11C
|
||||
movs r0, #1
|
||||
rsbs r0, r0, #0
|
||||
_0801D12E:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0801D130: .4byte gPaletteList
|
||||
.syntax divided
|
||||
@@ -1,44 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
mov r8, r0
|
||||
adds r4, r1, #0
|
||||
adds r5, r2, #0
|
||||
adds r6, r3, #0
|
||||
ldr r7, _0801E004 @ =gFuseInfo
|
||||
adds r0, r7, #0
|
||||
movs r1, #0x10
|
||||
bl MemClear
|
||||
strh r4, [r7, #6]
|
||||
strh r5, [r7, #8]
|
||||
strh r6, [r7, #0xa]
|
||||
mov r0, r8
|
||||
str r0, [r7, #0xc]
|
||||
ldr r0, _0801E008 @ =gUnk_03003DF0
|
||||
ldrb r0, [r0, #2]
|
||||
strb r0, [r7, #3]
|
||||
mov r1, r8
|
||||
cmp r1, #0
|
||||
beq _0801DFF8
|
||||
ldrb r1, [r1, #0x11]
|
||||
lsls r0, r1, #0x1c
|
||||
lsrs r0, r0, #0x1c
|
||||
strb r0, [r7, #4]
|
||||
movs r0, #0x10
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #2
|
||||
orrs r0, r1
|
||||
mov r1, r8
|
||||
strb r0, [r1, #0x11]
|
||||
_0801DFF8:
|
||||
movs r0, #0
|
||||
strb r0, [r7]
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0801E004: .4byte gFuseInfo
|
||||
_0801E008: .4byte gUnk_03003DF0
|
||||
.syntax divided
|
||||
@@ -0,0 +1,17 @@
|
||||
.syntax unified
|
||||
lsls r0, r0, #1
|
||||
ldr r2, _080700E4 @ =gUnk_089FB780
|
||||
adds r0, r0, r2
|
||||
ldrh r0, [r0]
|
||||
subs r2, #0x10
|
||||
adds r0, r0, r2
|
||||
adds r1, r0, r1
|
||||
ldrb r0, [r1]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r2
|
||||
ldr r1, [r2]
|
||||
adds r0, r1, r0
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_080700E4: .4byte gExtraFrameOffsets+0x10
|
||||
.syntax divided
|
||||
@@ -0,0 +1,23 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
adds r4, r1, #0
|
||||
ldr r1, _0806FC44 @ =gUnk_080046A4
|
||||
bl sub_08007DD6
|
||||
cmp r0, #0
|
||||
beq _0806FC4C
|
||||
lsls r0, r0, #3
|
||||
ldr r1, _0806FC48 @ =gUnk_080047F6
|
||||
adds r0, r0, r1
|
||||
ldrh r0, [r0]
|
||||
asrs r0, r4
|
||||
movs r1, #1
|
||||
ands r0, r1
|
||||
b _0806FC4E
|
||||
.align 2, 0
|
||||
_0806FC44: .4byte gUnk_080046A4
|
||||
_0806FC48: .4byte gUnk_080047F6
|
||||
_0806FC4C:
|
||||
movs r0, #0
|
||||
_0806FC4E:
|
||||
pop {r4, pc}
|
||||
.syntax divided
|
||||
@@ -1,11 +1,4 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
movs r0, #7
|
||||
|
||||
@@ -1,251 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
ldr r0, _080170E4 @ =gUnk_0200AF00
|
||||
adds r2, r0, #0
|
||||
adds r2, #0x2f
|
||||
movs r1, #0
|
||||
strb r1, [r2]
|
||||
subs r2, #2
|
||||
strb r1, [r2]
|
||||
adds r0, #0x2e
|
||||
strb r1, [r0]
|
||||
ldr r2, _080170E8 @ =gPlayerEntity
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x41
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08017072
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x3d
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
ble _08017072
|
||||
movs r0, #0x86
|
||||
bl SoundReq
|
||||
_08017072:
|
||||
ldr r4, _080170EC @ =gPlayerState
|
||||
ldr r0, [r4, #0x30]
|
||||
ldr r1, _080170F0 @ =0xFDFFFDFF
|
||||
ands r0, r1
|
||||
str r0, [r4, #0x30]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #3
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0801708A
|
||||
bl ResetPlayer
|
||||
_0801708A:
|
||||
ldr r0, [r4, #0x30]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #0xf
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080170A4
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xa0
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _080170A4
|
||||
bl DeleteClones
|
||||
_080170A4:
|
||||
bl sub_08079B24
|
||||
cmp r0, #0
|
||||
bne _080170B2
|
||||
adds r0, r5, #0
|
||||
bl sub_08079708
|
||||
_080170B2:
|
||||
ldr r0, _080170F4 @ =gUnk_03003DF0
|
||||
movs r4, #0
|
||||
strb r4, [r0]
|
||||
ldr r2, _080170EC @ =gPlayerState
|
||||
adds r1, r2, #0
|
||||
adds r1, #0x27
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
beq _080170C8
|
||||
subs r0, #1
|
||||
strb r0, [r1]
|
||||
_080170C8:
|
||||
adds r1, r2, #0
|
||||
adds r1, #0xa8
|
||||
ldrb r0, [r1]
|
||||
adds r3, r2, #0
|
||||
adds r3, #0xa9
|
||||
strb r0, [r3]
|
||||
strb r4, [r1]
|
||||
subs r1, #0x1e
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
beq _080170F8
|
||||
subs r0, #1
|
||||
strb r0, [r1]
|
||||
b _08017222
|
||||
.align 2, 0
|
||||
_080170E4: .4byte gUnk_0200AF00
|
||||
_080170E8: .4byte gPlayerEntity
|
||||
_080170EC: .4byte gPlayerState
|
||||
_080170F0: .4byte 0xFDFFFDFF
|
||||
_080170F4: .4byte gUnk_03003DF0
|
||||
_080170F8:
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x8b
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _08017104
|
||||
b _08017222
|
||||
_08017104:
|
||||
ldr r0, _08017160 @ =gMessage
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08017112
|
||||
b _08017222
|
||||
_08017112:
|
||||
ldr r0, _08017164 @ =gUnk_0200AF00
|
||||
ldrb r0, [r0, #1]
|
||||
cmp r0, #0
|
||||
bne _0801714E
|
||||
ldr r0, _08017168 @ =gRoomTransition
|
||||
ldr r0, [r0]
|
||||
movs r1, #0x5a
|
||||
bl __modsi3
|
||||
cmp r0, #0
|
||||
bne _0801714E
|
||||
ldr r2, _0801716C @ =gSave
|
||||
adds r0, r2, #0
|
||||
adds r0, #0xab
|
||||
ldrb r0, [r0]
|
||||
lsrs r1, r0, #2
|
||||
cmp r1, #0x18
|
||||
bls _08017138
|
||||
movs r1, #0x18
|
||||
_08017138:
|
||||
cmp r1, #7
|
||||
bhi _0801713E
|
||||
movs r1, #8
|
||||
_0801713E:
|
||||
adds r0, r2, #0
|
||||
adds r0, #0xaa
|
||||
ldrb r0, [r0]
|
||||
cmp r0, r1
|
||||
bhi _0801714E
|
||||
ldr r0, _08017170 @ =0x0000011F
|
||||
bl EnqueueSFX
|
||||
_0801714E:
|
||||
ldr r0, _0801716C @ =gSave
|
||||
adds r2, r0, #0
|
||||
adds r2, #0xb2
|
||||
ldrb r1, [r2]
|
||||
cmp r1, #0
|
||||
bne _08017174
|
||||
adds r0, #0xc4
|
||||
strh r1, [r0]
|
||||
b _08017192
|
||||
.align 2, 0
|
||||
_08017160: .4byte gMessage
|
||||
_08017164: .4byte gUnk_0200AF00
|
||||
_08017168: .4byte gRoomTransition
|
||||
_0801716C: .4byte gSave
|
||||
_08017170: .4byte 0x0000011F
|
||||
_08017174:
|
||||
adds r1, r0, #0
|
||||
adds r1, #0xc4
|
||||
ldrh r0, [r1]
|
||||
cmp r0, #0
|
||||
beq _08017188
|
||||
subs r0, #1
|
||||
strh r0, [r1]
|
||||
lsls r0, r0, #0x10
|
||||
cmp r0, #0
|
||||
bne _08017192
|
||||
_08017188:
|
||||
movs r0, #0
|
||||
strb r0, [r2]
|
||||
ldr r0, _080171A4 @ =0x000001B3
|
||||
bl SoundReq
|
||||
_08017192:
|
||||
ldr r0, _080171A8 @ =gSave
|
||||
adds r3, r0, #0
|
||||
adds r3, #0xb3
|
||||
ldrb r1, [r3]
|
||||
cmp r1, #0
|
||||
bne _080171AC
|
||||
adds r0, #0xc6
|
||||
strh r1, [r0]
|
||||
b _080171DC
|
||||
.align 2, 0
|
||||
_080171A4: .4byte 0x000001B3
|
||||
_080171A8: .4byte gSave
|
||||
_080171AC:
|
||||
adds r2, r0, #0
|
||||
adds r2, #0xc6
|
||||
ldrh r0, [r2]
|
||||
cmp r0, #0
|
||||
beq _080171C0
|
||||
subs r1, r0, #1
|
||||
strh r1, [r2]
|
||||
lsls r0, r1, #0x10
|
||||
cmp r0, #0
|
||||
bne _080171CE
|
||||
_080171C0:
|
||||
movs r0, #0
|
||||
strb r0, [r3]
|
||||
movs r0, #0xa0
|
||||
lsls r0, r0, #1
|
||||
bl SoundReq
|
||||
b _080171DC
|
||||
_080171CE:
|
||||
movs r0, #0xf
|
||||
ands r1, r0
|
||||
cmp r1, #0
|
||||
bne _080171DC
|
||||
adds r0, r5, #0
|
||||
bl CreateSparkle
|
||||
_080171DC:
|
||||
ldr r0, _080171F0 @ =gSave
|
||||
adds r3, r0, #0
|
||||
adds r3, #0xba
|
||||
ldrb r1, [r3]
|
||||
cmp r1, #0
|
||||
bne _080171F4
|
||||
adds r0, #0xc8
|
||||
strh r1, [r0]
|
||||
b _08017222
|
||||
.align 2, 0
|
||||
_080171F0: .4byte gSave
|
||||
_080171F4:
|
||||
adds r2, r0, #0
|
||||
adds r2, #0xc8
|
||||
ldrh r0, [r2]
|
||||
cmp r0, #0
|
||||
beq _08017208
|
||||
subs r1, r0, #1
|
||||
strh r1, [r2]
|
||||
lsls r0, r1, #0x10
|
||||
cmp r0, #0
|
||||
bne _0801720E
|
||||
_08017208:
|
||||
movs r0, #0
|
||||
strb r0, [r3]
|
||||
b _08017222
|
||||
_0801720E:
|
||||
movs r0, #0x3f
|
||||
ands r1, r0
|
||||
cmp r1, #0
|
||||
bne _08017222
|
||||
ldrb r1, [r3]
|
||||
adds r1, #0x55
|
||||
adds r0, r5, #0
|
||||
movs r2, #0
|
||||
bl CreateFx
|
||||
_08017222:
|
||||
pop {r4, r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.syntax divided
|
||||
@@ -1,95 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xc]
|
||||
cmp r0, #0
|
||||
bne _080578C4
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #8
|
||||
strb r0, [r4, #0xe]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x20
|
||||
movs r0, #0xff
|
||||
strb r0, [r1]
|
||||
ldr r1, _0805791C @ =sub_080582F8
|
||||
adds r0, r4, #0
|
||||
movs r2, #0
|
||||
bl RegisterTransitionManager
|
||||
_080578C4:
|
||||
ldr r0, _08057920 @ =gRoomControls
|
||||
ldrh r5, [r0]
|
||||
cmp r5, #0
|
||||
bne _08057960
|
||||
adds r0, r4, #0
|
||||
bl sub_08057E40
|
||||
cmp r0, #0
|
||||
beq _080578E8
|
||||
ldr r0, _08057924 @ =gRoomVars
|
||||
ldrb r6, [r0, #0x10]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x20
|
||||
ldrb r0, [r1]
|
||||
cmp r0, r6
|
||||
beq _080578E8
|
||||
strb r6, [r1]
|
||||
strb r5, [r4, #0xe]
|
||||
_080578E8:
|
||||
lsls r1, r6, #6
|
||||
ldr r0, _08057928 @ =gUnk_081080A4
|
||||
adds r2, r1, r0
|
||||
ldrb r1, [r4, #0xe]
|
||||
cmp r1, #0
|
||||
bne _08057938
|
||||
ldr r1, _0805792C @ =gUnk_02034490
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
ldr r0, [r2]
|
||||
ldr r1, _08057930 @ =gGlobalGfxAndPalettes
|
||||
adds r0, r0, r1
|
||||
ldr r1, [r2, #4]
|
||||
movs r2, #0x80
|
||||
lsls r2, r2, #5
|
||||
bl LoadResourceAsync
|
||||
ldr r0, _08057934 @ =gUnk_081081E4
|
||||
adds r0, r6, r0
|
||||
ldrb r0, [r0]
|
||||
bl LoadPaletteGroup
|
||||
ldrb r0, [r4, #0xe]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
b _08057960
|
||||
.align 2, 0
|
||||
_0805791C: .4byte sub_08057E30
|
||||
_08057920: .4byte gRoomControls
|
||||
_08057924: .4byte gRoomVars
|
||||
_08057928: .4byte gUnk_081080A4
|
||||
_0805792C: .4byte gUnk_02034490
|
||||
_08057930: .4byte gGlobalGfxAndPalettes
|
||||
_08057934: .4byte gUnk_081081E4
|
||||
_08057938:
|
||||
cmp r1, #0
|
||||
blt _08057960
|
||||
cmp r1, #7
|
||||
bgt _08057960
|
||||
lsls r1, r1, #3
|
||||
adds r1, r1, r2
|
||||
ldr r0, [r1]
|
||||
ldr r2, _08057964 @ =gGlobalGfxAndPalettes
|
||||
adds r0, r0, r2
|
||||
ldr r1, [r1, #4]
|
||||
movs r2, #0x80
|
||||
lsls r2, r2, #5
|
||||
bl LoadResourceAsync
|
||||
ldrb r0, [r4, #0xe]
|
||||
adds r0, #1
|
||||
movs r1, #0
|
||||
strb r0, [r4, #0xe]
|
||||
ldr r0, _08057968 @ =gUnk_02034490
|
||||
strb r1, [r0]
|
||||
_08057960:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_08057964: .4byte gGlobalGfxAndPalettes
|
||||
_08057968: .4byte gUnk_02034490
|
||||
.syntax divided
|
||||
@@ -1,98 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r5, [r4, #0x54]
|
||||
cmp r5, #0
|
||||
bne _080A984A
|
||||
bl DeleteThisEntity
|
||||
_080A984A:
|
||||
ldr r0, [r5, #4]
|
||||
cmp r0, #0
|
||||
bne _080A9856
|
||||
bl DeleteThisEntity
|
||||
b _080A989A
|
||||
_080A9856:
|
||||
ldrh r0, [r5, #0x12]
|
||||
ldrb r1, [r5, #0x1e]
|
||||
bl GetSpriteSubEntryOffsetDataPointer
|
||||
adds r3, r0, #0
|
||||
ldrb r1, [r5, #0x14]
|
||||
movs r0, #4
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080A9884
|
||||
movs r2, #0
|
||||
ldrsb r2, [r3, r2]
|
||||
rsbs r2, r2, #0
|
||||
lsls r2, r2, #0x10
|
||||
ldrb r3, [r3, #1]
|
||||
lsls r3, r3, #0x18
|
||||
asrs r3, r3, #0x18
|
||||
lsls r3, r3, #0x10
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
bl PositionRelative
|
||||
b _080A989A
|
||||
_080A9884:
|
||||
movs r2, #0
|
||||
ldrsb r2, [r3, r2]
|
||||
lsls r2, r2, #0x10
|
||||
ldrb r3, [r3, #1]
|
||||
lsls r3, r3, #0x18
|
||||
asrs r3, r3, #0x18
|
||||
lsls r3, r3, #0x10
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
bl PositionRelative
|
||||
_080A989A:
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x43
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _080A98F8
|
||||
ldrb r0, [r4, #0xf]
|
||||
cmp r0, #0
|
||||
beq _080A98B0
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xf]
|
||||
b _080A98F8
|
||||
_080A98B0:
|
||||
adds r0, r4, #0
|
||||
bl UpdateAnimationSingleFrame
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080A98F8
|
||||
movs r0, #4
|
||||
strb r0, [r4, #0xc]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x82
|
||||
movs r0, #3
|
||||
strb r0, [r1]
|
||||
movs r2, #0x40
|
||||
movs r0, #0x40
|
||||
strb r0, [r4, #0xf]
|
||||
ldrb r0, [r5, #0x14]
|
||||
lsls r1, r0, #2
|
||||
strb r1, [r4, #0x15]
|
||||
lsls r0, r0, #0x1a
|
||||
lsrs r0, r0, #0x1a
|
||||
strb r0, [r4, #0x14]
|
||||
ldrb r1, [r4, #0x1b]
|
||||
movs r0, #0x3f
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #0x1b]
|
||||
ldr r0, _080A98FC @ =gHitbox_0
|
||||
str r0, [r4, #0x48]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl sub_080AA3E0
|
||||
_080A98F8:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_080A98FC: .4byte gHitbox_0
|
||||
.syntax divided
|
||||
@@ -1,103 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r3, _0801B564 @ =gPlayerState
|
||||
str r4, [r3, #0x2c]
|
||||
movs r2, #0
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldr r0, _0801B568 @ =gUnk_081271CC
|
||||
str r0, [r4, #0x48]
|
||||
movs r0, #0xff
|
||||
strb r0, [r4, #0x1e]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x80
|
||||
strb r2, [r0]
|
||||
ldr r5, _0801B56C @ =gPlayerEntity
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x60
|
||||
ldrh r1, [r0]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x60
|
||||
strh r1, [r0]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x58
|
||||
movs r0, #0xb
|
||||
strb r0, [r1]
|
||||
str r5, [r4, #0x50]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x86
|
||||
strh r2, [r0]
|
||||
ldrb r1, [r4, #0x14]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0801B550
|
||||
ldrb r0, [r5, #0x18]
|
||||
lsls r0, r0, #0x19
|
||||
lsrs r0, r0, #0x1f
|
||||
movs r1, #1
|
||||
bics r1, r0
|
||||
lsls r1, r1, #6
|
||||
ldrb r2, [r4, #0x18]
|
||||
movs r0, #0x41
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
_0801B550:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x68
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0xc
|
||||
bne _0801B570
|
||||
movs r0, #0xa0
|
||||
lsls r0, r0, #2
|
||||
strh r0, [r4, #0x24]
|
||||
movs r0, #0x3c
|
||||
b _0801B578
|
||||
.align 2, 0
|
||||
_0801B564: .4byte gPlayerState
|
||||
_0801B568: .4byte gUnk_081271CC
|
||||
_0801B56C: .4byte gPlayerEntity
|
||||
_0801B570:
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #2
|
||||
strh r0, [r4, #0x24]
|
||||
movs r0, #0x1e
|
||||
_0801B578:
|
||||
strb r0, [r4, #0xe]
|
||||
ldrb r1, [r3, #0xd]
|
||||
movs r0, #0xd
|
||||
ldrsb r0, [r3, r0]
|
||||
cmp r0, #0
|
||||
blt _0801B588
|
||||
strb r1, [r4, #0x15]
|
||||
b _0801B58E
|
||||
_0801B588:
|
||||
ldrb r0, [r4, #0x14]
|
||||
lsls r0, r0, #2
|
||||
strb r0, [r4, #0x15]
|
||||
_0801B58E:
|
||||
ldrb r0, [r4, #0x15]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x83
|
||||
strb r0, [r1]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x38
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #2
|
||||
bne _0801B5A4
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xb]
|
||||
_0801B5A4:
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
movs r2, #3
|
||||
bl LoadSwapGFX
|
||||
adds r0, r4, #0
|
||||
bl sub_0801766C
|
||||
adds r0, r4, #0
|
||||
bl sub_0801B584
|
||||
pop {r4, r5, pc}
|
||||
.syntax divided
|
||||
@@ -1,101 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
adds r4, r0, #0
|
||||
bl sub_0802AC40
|
||||
ldrb r0, [r4, #0xf]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xf]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _0802AAB4
|
||||
adds r0, r4, #0
|
||||
movs r1, #4
|
||||
bl sub_0802AD1C
|
||||
_0802AAB4:
|
||||
adds r6, r4, #0
|
||||
adds r6, #0x81
|
||||
ldrb r0, [r6]
|
||||
cmp r0, #0
|
||||
beq _0802AB38
|
||||
ldr r5, [r4, #0x54]
|
||||
cmp r5, #0
|
||||
bne _0802AAC8
|
||||
strb r5, [r6]
|
||||
b _0802AB56
|
||||
_0802AAC8:
|
||||
ldr r0, [r5, #4]
|
||||
cmp r0, #0
|
||||
bne _0802AAD4
|
||||
strb r0, [r6]
|
||||
str r0, [r4, #0x54]
|
||||
b _0802AB56
|
||||
_0802AAD4:
|
||||
ldrb r0, [r5, #0xe]
|
||||
mov r8, r0
|
||||
cmp r0, #0
|
||||
bne _0802AB56
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r4, r1]
|
||||
ldr r2, _0802AB24 @ =gRoomControls
|
||||
ldrh r1, [r2, #6]
|
||||
subs r0, r0, r1
|
||||
asrs r0, r0, #4
|
||||
movs r3, #0x3f
|
||||
ands r0, r3
|
||||
movs r7, #0x32
|
||||
ldrsh r1, [r4, r7]
|
||||
ldrh r2, [r2, #8]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
ands r1, r3
|
||||
lsls r1, r1, #6
|
||||
orrs r0, r1
|
||||
movs r1, #1
|
||||
bl sub_080002E0
|
||||
cmp r0, #0
|
||||
bne _0802AB2C
|
||||
ldr r1, _0802AB28 @ =gPlayerEntity
|
||||
adds r0, r4, #0
|
||||
movs r2, #0x10
|
||||
movs r3, #0x10
|
||||
bl EntityInRectRadius
|
||||
cmp r0, #0
|
||||
beq _0802AB56
|
||||
ldrb r0, [r5, #0xf]
|
||||
cmp r0, #0x50
|
||||
bhi _0802AB56
|
||||
mov r0, r8
|
||||
strb r0, [r6]
|
||||
b _0802AB56
|
||||
.align 2, 0
|
||||
_0802AB24: .4byte gRoomControls
|
||||
_0802AB28: .4byte gPlayerEntity
|
||||
_0802AB2C:
|
||||
ldrb r0, [r5, #0xf]
|
||||
cmp r0, #0x13
|
||||
bhi _0802AB56
|
||||
mov r1, r8
|
||||
strb r1, [r6]
|
||||
b _0802AB56
|
||||
_0802AB38:
|
||||
movs r1, #4
|
||||
strb r1, [r4, #0xc]
|
||||
movs r0, #0xc0
|
||||
strb r0, [r4, #0xe]
|
||||
strb r1, [r4, #0xf]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x80
|
||||
ldrb r0, [r2]
|
||||
movs r1, #1
|
||||
eors r0, r1
|
||||
strb r0, [r2]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl InitializeAnimation
|
||||
_0802AB56:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.syntax divided
|
||||
@@ -1,50 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_0802AC40
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
movs r2, #0xff
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r1, r0, #0x18
|
||||
cmp r1, #0
|
||||
bne _0802ABA6
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x7a
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #4
|
||||
bhi _0802AB90
|
||||
movs r0, #5
|
||||
strb r0, [r4, #0xc]
|
||||
strh r1, [r4, #0x24]
|
||||
ldrb r1, [r4, #0xa]
|
||||
adds r1, #1
|
||||
adds r0, r4, #0
|
||||
bl InitializeAnimation
|
||||
b _0802ABBA
|
||||
_0802AB90:
|
||||
movs r0, #0xc0
|
||||
strb r0, [r4, #0xe]
|
||||
movs r0, #4
|
||||
strb r0, [r4, #0xf]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x80
|
||||
ldrb r0, [r2]
|
||||
movs r1, #1
|
||||
eors r0, r1
|
||||
strb r0, [r2]
|
||||
b _0802ABBA
|
||||
_0802ABA6:
|
||||
ldrb r0, [r4, #0xf]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xf]
|
||||
ands r0, r2
|
||||
cmp r0, #0
|
||||
bne _0802ABBA
|
||||
adds r0, r4, #0
|
||||
movs r1, #4
|
||||
bl sub_0802ACDC
|
||||
_0802ABBA:
|
||||
pop {r4, pc}
|
||||
.syntax divided
|
||||
@@ -1,43 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
bl GetNextFrame
|
||||
adds r0, r4, #0
|
||||
bl LinearMoveUpdate
|
||||
adds r5, r4, #0
|
||||
adds r5, #0x7a
|
||||
ldrb r0, [r5]
|
||||
cmp r0, #0
|
||||
beq _0802AC26
|
||||
adds r0, r4, #0
|
||||
bl sub_0802B234
|
||||
cmp r0, #0
|
||||
bne _0802AC44
|
||||
strb r0, [r5]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x39
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
b _0802AC42
|
||||
_0802AC26:
|
||||
adds r0, r4, #0
|
||||
bl sub_0802B234
|
||||
cmp r0, #0
|
||||
beq _0802AC44
|
||||
movs r0, #1
|
||||
strb r0, [r5]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
subs r0, #0x3a
|
||||
ands r0, r1
|
||||
movs r1, #0x18
|
||||
orrs r0, r1
|
||||
_0802AC42:
|
||||
strb r0, [r2]
|
||||
_0802AC44:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -1,38 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
ldrb r1, [r5, #0xa]
|
||||
adds r1, #2
|
||||
movs r0, #0x1b
|
||||
bl CreateEnemy
|
||||
adds r4, r0, #0
|
||||
cmp r4, #0
|
||||
beq _0802AD92
|
||||
adds r0, r5, #0
|
||||
bl sub_0802B234
|
||||
rsbs r1, r0, #0
|
||||
orrs r1, r0
|
||||
lsrs r1, r1, #0x1f
|
||||
strb r1, [r4, #0xb]
|
||||
str r5, [r4, #0x50]
|
||||
str r4, [r5, #0x54]
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
bl CopyPosition
|
||||
ldrh r0, [r4, #0x36]
|
||||
adds r0, #8
|
||||
strh r0, [r4, #0x36]
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x81
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
ldrb r0, [r5, #0xa]
|
||||
cmp r0, #0
|
||||
bne _0802AD92
|
||||
subs r1, #7
|
||||
ldrb r0, [r1]
|
||||
adds r0, #1
|
||||
strb r0, [r1]
|
||||
_0802AD92:
|
||||
pop {r4, r5, pc}
|
||||
.syntax divided
|
||||
@@ -1,78 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r2, [r4, #0x50]
|
||||
cmp r2, #0
|
||||
bne _0802ADFA
|
||||
movs r0, #3
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x18]
|
||||
subs r0, #7
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x80
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
_0802ADFA:
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x81
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _0802AE1E
|
||||
adds r0, r2, #0
|
||||
adds r1, r4, #0
|
||||
bl CopyPosition
|
||||
ldrh r0, [r4, #0x36]
|
||||
adds r0, #8
|
||||
strh r0, [r4, #0x36]
|
||||
ldrb r1, [r4, #0x18]
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
b _0802AE68
|
||||
_0802AE1E:
|
||||
movs r0, #3
|
||||
strb r0, [r4, #0xc]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x80
|
||||
movs r2, #1
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
ldrb r1, [r4, #0x18]
|
||||
subs r0, #5
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #0x18]
|
||||
adds r0, r4, #0
|
||||
bl sub_0802B234
|
||||
cmp r0, #0
|
||||
beq _0802AE54
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r0, [r2]
|
||||
movs r1, #0x39
|
||||
rsbs r1, r1, #0
|
||||
ands r1, r0
|
||||
movs r0, #0x18
|
||||
orrs r1, r0
|
||||
strb r1, [r2]
|
||||
b _0802AE62
|
||||
_0802AE54:
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x39
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
strb r0, [r2]
|
||||
_0802AE62:
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
_0802AE68:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -1,71 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xe]
|
||||
cmp r0, #0
|
||||
beq _0802B17A
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
_0802B17A:
|
||||
ldr r2, [r4, #0x50]
|
||||
cmp r2, #0
|
||||
bne _0802B190
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x18]
|
||||
subs r0, #6
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
_0802B190:
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x81
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _0802B1AA
|
||||
adds r0, r2, #0
|
||||
adds r1, r4, #0
|
||||
bl CopyPosition
|
||||
ldrh r0, [r4, #0x36]
|
||||
adds r0, #8
|
||||
strh r0, [r4, #0x36]
|
||||
b _0802B1EC
|
||||
_0802B1AA:
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x18]
|
||||
subs r0, #6
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
adds r0, r4, #0
|
||||
bl sub_0802B234
|
||||
cmp r0, #0
|
||||
beq _0802B1D8
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r0, [r2]
|
||||
movs r1, #0x39
|
||||
rsbs r1, r1, #0
|
||||
ands r1, r0
|
||||
movs r0, #0x18
|
||||
orrs r1, r0
|
||||
strb r1, [r2]
|
||||
b _0802B1E6
|
||||
_0802B1D8:
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x39
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
strb r0, [r2]
|
||||
_0802B1E6:
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
_0802B1EC:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -1,207 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
sub sp, #0x20
|
||||
adds r6, r0, #0
|
||||
adds r3, r1, #0
|
||||
ldr r0, _08054138 @ =gRoomVars
|
||||
ldrb r0, [r0, #2]
|
||||
cmp r0, #1
|
||||
bne _08054126
|
||||
b _080542CC
|
||||
_08054126:
|
||||
ldr r2, _0805413C @ =gUnk_08001A1C
|
||||
movs r4, #0
|
||||
cmp r3, #0x18
|
||||
bhi _080541BC
|
||||
lsls r0, r3, #2
|
||||
ldr r1, _08054140 @ =_08054144
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08054138: .4byte gRoomVars
|
||||
_0805413C: .4byte gUnk_08001A1C
|
||||
_08054140: .4byte _08054144
|
||||
_08054144: @ jump table
|
||||
.4byte _080541BC @ case 0
|
||||
.4byte _080541A8 @ case 1
|
||||
.4byte _080541A8 @ case 2
|
||||
.4byte _080541A8 @ case 3
|
||||
.4byte _080541A8 @ case 4
|
||||
.4byte _080541A8 @ case 5
|
||||
.4byte _080541A8 @ case 6
|
||||
.4byte _080541A8 @ case 7
|
||||
.4byte _080541A8 @ case 8
|
||||
.4byte _080541A8 @ case 9
|
||||
.4byte _080541A8 @ case 10
|
||||
.4byte _080541A8 @ case 11
|
||||
.4byte _080541A8 @ case 12
|
||||
.4byte _080541BC @ case 13
|
||||
.4byte _080541BC @ case 14
|
||||
.4byte _080541BA @ case 15
|
||||
.4byte _080541B4 @ case 16
|
||||
.4byte _080541B4 @ case 17
|
||||
.4byte _080541B4 @ case 18
|
||||
.4byte _080541B4 @ case 19
|
||||
.4byte _080541B4 @ case 20
|
||||
.4byte _080541B4 @ case 21
|
||||
.4byte _080541B4 @ case 22
|
||||
.4byte _080541B4 @ case 23
|
||||
.4byte _080541B4 @ case 24
|
||||
_080541A8:
|
||||
lsls r1, r3, #5
|
||||
ldr r0, _080541B0 @ =gUnk_0800137C
|
||||
adds r4, r1, r0
|
||||
b _080541BC
|
||||
.align 2, 0
|
||||
_080541B0: .4byte gUnk_0800137C
|
||||
_080541B4:
|
||||
lsls r1, r3, #5
|
||||
ldr r0, _080541D0 @ =gUnk_0800161C
|
||||
adds r2, r1, r0
|
||||
_080541BA:
|
||||
ldr r4, _080541D4 @ =gUnk_02034398
|
||||
_080541BC:
|
||||
cmp r4, #0
|
||||
bne _080541C2
|
||||
b _080542CC
|
||||
_080541C2:
|
||||
ldr r0, _080541D8 @ =gSave
|
||||
adds r0, #0xb3
|
||||
ldrb r1, [r0]
|
||||
cmp r1, #0
|
||||
bne _080541E0
|
||||
ldr r3, _080541DC @ =gUnk_08001A1C
|
||||
b _080541E6
|
||||
.align 2, 0
|
||||
_080541D0: .4byte gUnk_0800161C
|
||||
_080541D4: .4byte gUnk_02034398
|
||||
_080541D8: .4byte gSave
|
||||
_080541DC: .4byte gUnk_08001A1C
|
||||
_080541E0:
|
||||
lsls r1, r1, #5
|
||||
ldr r0, _080542BC @ =0x080014E4
|
||||
adds r3, r1, r0
|
||||
_080541E6:
|
||||
mov r0, sp
|
||||
adds r1, r4, #0
|
||||
bl sub_08000F14
|
||||
ldr r4, _080542C0 @ =gSave
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xaa
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #8
|
||||
bhi _08054204
|
||||
mov r1, sp
|
||||
mov r0, sp
|
||||
ldrh r0, [r0, #8]
|
||||
adds r0, #5
|
||||
strh r0, [r1, #8]
|
||||
_08054204:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xac
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _08054218
|
||||
mov r1, sp
|
||||
mov r0, sp
|
||||
ldrh r0, [r0, #0xc]
|
||||
adds r0, #3
|
||||
strh r0, [r1, #0xc]
|
||||
_08054218:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xad
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _0805422C
|
||||
mov r1, sp
|
||||
mov r0, sp
|
||||
ldrh r0, [r0, #0xe]
|
||||
adds r0, #3
|
||||
strh r0, [r1, #0xe]
|
||||
_0805422C:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xc0
|
||||
ldrh r0, [r0]
|
||||
cmp r0, #0xa
|
||||
bhi _08054240
|
||||
mov r1, sp
|
||||
mov r0, sp
|
||||
ldrh r0, [r0, #4]
|
||||
adds r0, #1
|
||||
strh r0, [r1, #4]
|
||||
_08054240:
|
||||
ldr r2, _080542C4 @ =gUnk_08001A1C
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xbb
|
||||
ldrb r0, [r0]
|
||||
adds r3, r2, #0
|
||||
cmp r0, #0
|
||||
beq _08054250
|
||||
adds r2, #0x20
|
||||
_08054250:
|
||||
movs r1, #0x8b
|
||||
lsls r1, r1, #1
|
||||
adds r0, r4, r1
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _0805425E
|
||||
adds r3, #0x40
|
||||
_0805425E:
|
||||
mov r0, sp
|
||||
mov r1, sp
|
||||
bl sub_08000F2C
|
||||
adds r4, r0, #0
|
||||
bl Random
|
||||
adds r2, r0, #0
|
||||
asrs r5, r2, #0x18
|
||||
movs r0, #0xf
|
||||
ands r5, r0
|
||||
adds r0, r2, #0
|
||||
adds r1, r4, #0
|
||||
bl __modsi3
|
||||
adds r2, r0, #0
|
||||
movs r3, #0
|
||||
lsls r0, r5, #1
|
||||
add r0, sp
|
||||
movs r4, #0
|
||||
ldrsh r1, [r0, r4]
|
||||
cmp r1, r2
|
||||
bgt _080542A6
|
||||
movs r4, #0xf
|
||||
_0805428E:
|
||||
adds r3, #1
|
||||
adds r5, #1
|
||||
ands r5, r4
|
||||
cmp r3, #0xf
|
||||
bhi _080542A6
|
||||
lsls r0, r5, #1
|
||||
add r0, sp
|
||||
movs r7, #0
|
||||
ldrsh r0, [r0, r7]
|
||||
adds r1, r1, r0
|
||||
cmp r1, r2
|
||||
ble _0805428E
|
||||
_080542A6:
|
||||
ldr r0, _080542C8 @ =gUnk_080FE1B4
|
||||
adds r0, r5, r0
|
||||
ldrb r1, [r0]
|
||||
cmp r1, #0
|
||||
beq _080542CC
|
||||
adds r0, r6, #0
|
||||
movs r2, #0
|
||||
bl CreateItemDrop
|
||||
b _080542CE
|
||||
.align 2, 0
|
||||
_080542BC: .4byte 0x080014E4
|
||||
_080542C0: .4byte gSave
|
||||
_080542C4: .4byte gUnk_08001A1C
|
||||
_080542C8: .4byte gUnk_080FE1B4
|
||||
_080542CC:
|
||||
movs r0, #0
|
||||
_080542CE:
|
||||
add sp, #0x20
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
|
||||
.syntax divided
|
||||
@@ -1,56 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
mov r6, r8
|
||||
push {r6}
|
||||
mov r8, r0
|
||||
adds r4, r1, #0
|
||||
bl SetInitializationPriority
|
||||
ldr r5, _080575E8 @ =gUnk_03004030
|
||||
ldrb r0, [r5, #9]
|
||||
strb r0, [r5, #0xa]
|
||||
ldr r3, _080575EC @ =gRoomControls
|
||||
ldrb r0, [r3, #4]
|
||||
strb r0, [r5, #9]
|
||||
ldr r1, _080575F0 @ =gRoomTransition
|
||||
ldrb r0, [r4, #4]
|
||||
strb r0, [r1, #0xc]
|
||||
ldrb r0, [r4, #5]
|
||||
strb r0, [r1, #0xd]
|
||||
ldrb r0, [r4, #4]
|
||||
strb r0, [r3, #4]
|
||||
ldrb r0, [r4, #5]
|
||||
strb r0, [r3, #5]
|
||||
str r4, [r5]
|
||||
ldr r6, _080575F4 @ =gPlayerEntity
|
||||
ldrh r1, [r6, #0x2e]
|
||||
ldrh r0, [r3, #6]
|
||||
subs r1, r1, r0
|
||||
ldrh r2, [r4]
|
||||
movs r0, #0x3f
|
||||
ands r0, r2
|
||||
lsls r0, r0, #4
|
||||
subs r1, r1, r0
|
||||
strh r1, [r5, #4]
|
||||
ldrh r1, [r6, #0x32]
|
||||
ldrh r0, [r3, #8]
|
||||
subs r1, r1, r0
|
||||
ldrh r2, [r4]
|
||||
movs r0, #0xfc
|
||||
lsls r0, r0, #4
|
||||
ands r0, r2
|
||||
lsrs r0, r0, #2
|
||||
subs r1, r1, r0
|
||||
strh r1, [r5, #6]
|
||||
ldrb r0, [r4, #3]
|
||||
bl sub_08080930
|
||||
mov r0, r8
|
||||
bl DeleteManager
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_080575E8: .4byte gUnk_03004030
|
||||
_080575EC: .4byte gRoomControls
|
||||
_080575F0: .4byte gRoomTransition
|
||||
_080575F4: .4byte gPlayerEntity
|
||||
.syntax divided
|
||||
@@ -1,37 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r0, _080579F0 @ =gUnk_081081E4
|
||||
adds r0, r4, r0
|
||||
ldrb r0, [r0]
|
||||
bl LoadPaletteGroup
|
||||
lsls r1, r4, #6
|
||||
ldr r0, _080579F4 @ =gUnk_081080A4
|
||||
adds r1, r1, r0
|
||||
movs r3, #0
|
||||
ldr r2, _080579F8 @ =0x040000D4
|
||||
ldr r6, _080579FC @ =gGlobalGfxAndPalettes
|
||||
ldr r5, _08057A00 @ =0x84000400
|
||||
_080579D4:
|
||||
ldr r0, [r1]
|
||||
adds r0, r0, r6
|
||||
str r0, [r2]
|
||||
ldr r0, [r1, #4]
|
||||
str r0, [r2, #4]
|
||||
str r5, [r2, #8]
|
||||
ldr r0, [r2, #8]
|
||||
adds r3, #1
|
||||
adds r1, #8
|
||||
cmp r3, #7
|
||||
bls _080579D4
|
||||
ldr r0, _08057A04 @ =gRoomVars
|
||||
strb r4, [r0, #0x10]
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_080579F0: .4byte gUnk_081081E4
|
||||
_080579F4: .4byte gUnk_081080A4
|
||||
_080579F8: .4byte 0x040000D4
|
||||
_080579FC: .4byte gGlobalGfxAndPalettes
|
||||
_08057A00: .4byte 0x84000400
|
||||
_08057A04: .4byte gRoomVars
|
||||
.syntax divided
|
||||
@@ -1,24 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_08050384
|
||||
adds r4, #0x68
|
||||
movs r1, #0
|
||||
ldrsh r0, [r4, r1]
|
||||
ldr r1, _0806E520 @ =gUnk_020227E8
|
||||
ldr r2, _0806E524 @ =0x00202020
|
||||
bl sub_08057044
|
||||
ldr r0, _0806E528 @ =0x00003302
|
||||
ldr r1, _0806E52C @ =gUnk_081146B8
|
||||
bl sub_0805F46C
|
||||
ldr r1, _0806E530 @ =gScreen
|
||||
movs r0, #1
|
||||
strh r0, [r1, #0xe]
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0806E520: .4byte gUnk_020227E8
|
||||
_0806E524: .4byte 0x00202020
|
||||
_0806E528: .4byte 0x00003302
|
||||
_0806E52C: .4byte gUnk_081146B8
|
||||
_0806E530: .4byte gScreen
|
||||
.syntax divided
|
||||
@@ -1,180 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r5, r0, #0
|
||||
adds r7, r1, #0
|
||||
ldr r4, _08074DA8 @ =gPlayerState
|
||||
ldr r1, [r4, #0x30]
|
||||
movs r3, #0x80
|
||||
adds r0, r1, #0
|
||||
ands r0, r3
|
||||
cmp r0, #0
|
||||
beq _08074DAC
|
||||
ldrb r0, [r5, #9]
|
||||
movs r1, #0x80
|
||||
orrs r1, r0
|
||||
strb r1, [r5, #9]
|
||||
adds r0, r5, #0
|
||||
adds r1, r7, #0
|
||||
bl sub_08077D38
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #4
|
||||
strh r0, [r4, #8]
|
||||
movs r0, #0x75
|
||||
bl SoundReq
|
||||
b _08074EE2
|
||||
.align 2, 0
|
||||
_08074DA8: .4byte gPlayerState
|
||||
_08074DAC:
|
||||
ldrb r2, [r4, #2]
|
||||
cmp r2, #0
|
||||
beq _08074E22
|
||||
movs r6, #7
|
||||
adds r0, r6, #0
|
||||
ands r0, r2
|
||||
cmp r0, #3
|
||||
beq _08074E18
|
||||
movs r0, #0x78
|
||||
ands r0, r2
|
||||
cmp r0, #0
|
||||
bne _08074E18
|
||||
ldr r3, _08074E10 @ =gPlayerEntity
|
||||
ldr r1, [r3, #0x20]
|
||||
ldr r0, _08074E14 @ =0x00017FFF
|
||||
cmp r1, r0
|
||||
bhi _08074E18
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xac
|
||||
ldrh r1, [r0]
|
||||
movs r0, #0x40
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08074E18
|
||||
ldr r0, [r3, #0x34]
|
||||
cmp r0, #0
|
||||
beq _08074E18
|
||||
movs r0, #0x20
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #2]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xab
|
||||
strb r6, [r0]
|
||||
movs r0, #8
|
||||
asrs r0, r7
|
||||
lsls r1, r0, #4
|
||||
orrs r0, r1
|
||||
ldrb r1, [r4, #4]
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #4]
|
||||
adds r0, r5, #0
|
||||
bl sub_08077B98
|
||||
movs r0, #6
|
||||
strb r0, [r5, #4]
|
||||
adds r0, r5, #0
|
||||
adds r1, r7, #0
|
||||
bl sub_08075898
|
||||
b _08074EE2
|
||||
.align 2, 0
|
||||
_08074E10: .4byte gPlayerEntity
|
||||
_08074E14: .4byte 0x00017FFF
|
||||
_08074E18:
|
||||
adds r0, r5, #0
|
||||
adds r1, r7, #0
|
||||
bl sub_080759B8
|
||||
b _08074EE2
|
||||
_08074E22:
|
||||
movs r6, #0x80
|
||||
lsls r6, r6, #0xb
|
||||
ands r6, r1
|
||||
cmp r6, #0
|
||||
beq _08074EAE
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xac
|
||||
ldrh r1, [r0]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r6, r0, #0x10
|
||||
cmp r6, #0
|
||||
bne _08074E4C
|
||||
ldr r0, [r4, #0x2c]
|
||||
cmp r0, #0
|
||||
beq _08074EE2
|
||||
bl DeleteEntity
|
||||
str r6, [r4, #0x2c]
|
||||
b _08074EE2
|
||||
_08074E4C:
|
||||
adds r0, r5, #0
|
||||
adds r1, r7, #0
|
||||
bl sub_08077D38
|
||||
adds r0, r5, #0
|
||||
bl sub_08077B98
|
||||
movs r3, #8
|
||||
adds r1, r3, #0
|
||||
asrs r1, r7
|
||||
lsls r0, r1, #4
|
||||
orrs r0, r1
|
||||
ldrb r2, [r4, #4]
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #4]
|
||||
ldrb r2, [r4, #0xa]
|
||||
adds r0, r1, #0
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #0xa]
|
||||
ldrb r0, [r4, #0xb]
|
||||
orrs r1, r0
|
||||
strb r1, [r4, #0xb]
|
||||
strb r3, [r5, #4]
|
||||
movs r0, #0x14
|
||||
strb r0, [r5, #7]
|
||||
movs r0, #6
|
||||
strb r0, [r5, #0xf]
|
||||
ldrb r1, [r5, #9]
|
||||
movs r0, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r5, #9]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0xab
|
||||
movs r0, #2
|
||||
strb r0, [r1]
|
||||
ldr r0, [r4, #0x30]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #0x14
|
||||
orrs r0, r1
|
||||
str r0, [r4, #0x30]
|
||||
movs r1, #0x98
|
||||
lsls r1, r1, #1
|
||||
adds r0, r5, #0
|
||||
bl sub_08077DF4
|
||||
movs r0, #0x77
|
||||
bl SoundReq
|
||||
b _08074EE2
|
||||
_08074EAE:
|
||||
ldrb r1, [r4, #0x1b]
|
||||
adds r0, r3, #0
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08074EC0
|
||||
strb r6, [r4, #0x1b]
|
||||
ldr r0, _08074EE4 @ =gPlayerEntity
|
||||
bl sub_0806F948
|
||||
_08074EC0:
|
||||
ldr r1, [r4, #0x2c]
|
||||
cmp r1, #0
|
||||
beq _08074ED4
|
||||
ldrb r0, [r1, #9]
|
||||
cmp r0, #1
|
||||
beq _08074ED4
|
||||
adds r0, r1, #0
|
||||
bl DeleteEntity
|
||||
str r6, [r4, #0x2c]
|
||||
_08074ED4:
|
||||
adds r0, r5, #0
|
||||
adds r1, r7, #0
|
||||
bl sub_08077D38
|
||||
adds r0, r5, #0
|
||||
bl sub_08077B98
|
||||
_08074EE2:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_08074EE4: .4byte gPlayerEntity
|
||||
.syntax divided
|
||||
@@ -1,95 +0,0 @@
|
||||
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
adds r0, #0x41
|
||||
ldrb r2, [r0]
|
||||
cmp r2, #0x87
|
||||
bne _080374D4
|
||||
ldrb r0, [r4, #0xc]
|
||||
cmp r0, #6
|
||||
bne _080374BC
|
||||
adds r0, r4, #0
|
||||
bl sub_08037ACC
|
||||
_080374BC:
|
||||
movs r0, #8
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #0x3c
|
||||
strb r0, [r4, #0xe]
|
||||
ldrb r1, [r4, #0x10]
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x10]
|
||||
adds r0, r4, #0
|
||||
bl sub_08037B48
|
||||
b _08037534
|
||||
_080374D4:
|
||||
ldrb r0, [r4, #0xc]
|
||||
adds r1, r0, #0
|
||||
cmp r1, #6
|
||||
beq _0803752E
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x3f
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0x27
|
||||
bne _080374F2
|
||||
cmp r2, #0x80
|
||||
bne _080374F2
|
||||
adds r0, r4, #0
|
||||
bl sub_08037A14
|
||||
b _08037534
|
||||
_080374F2:
|
||||
subs r0, r1, #1
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #1
|
||||
bhi _08037534
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x3e
|
||||
ldrb r0, [r0]
|
||||
movs r1, #0x10
|
||||
eors r0, r1
|
||||
adds r0, #4
|
||||
movs r1, #0x18
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x15]
|
||||
lsrs r0, r0, #3
|
||||
strb r0, [r4, #0x14]
|
||||
ldrb r1, [r4, #0x14]
|
||||
adds r0, r4, #0
|
||||
bl InitAnimationForceUpdate
|
||||
adds r0, r4, #0
|
||||
bl sub_08037810
|
||||
cmp r0, #0
|
||||
beq _08037534
|
||||
movs r0, #4
|
||||
strb r0, [r4, #0xe]
|
||||
b _08037534
|
||||
_0803752E:
|
||||
adds r0, r4, #0
|
||||
bl sub_08037A58
|
||||
_08037534:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x43
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _08037546
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x1c
|
||||
bl sub_0804A9FC
|
||||
_08037546:
|
||||
ldr r1, _08037550 @ =gGibdo
|
||||
adds r0, r4, #0
|
||||
bl sub_0804AA30
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08037550: .4byte gGibdo
|
||||
|
||||
|
||||
.syntax divided
|
||||
@@ -1,39 +0,0 @@
|
||||
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
movs r4, #0x18
|
||||
movs r0, #0x18
|
||||
strb r0, [r5, #0xe]
|
||||
movs r0, #8
|
||||
strb r0, [r5, #0xf]
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r5, r1]
|
||||
movs r2, #0x32
|
||||
ldrsh r1, [r5, r2]
|
||||
adds r2, r5, #0
|
||||
adds r2, #0x78
|
||||
ldrh r2, [r2]
|
||||
adds r3, r5, #0
|
||||
adds r3, #0x7a
|
||||
ldrh r3, [r3]
|
||||
bl sub_080045D4
|
||||
adds r0, #4
|
||||
ands r0, r4
|
||||
strb r0, [r5, #0x15]
|
||||
lsrs r0, r0, #3
|
||||
ldrb r1, [r5, #0x14]
|
||||
cmp r0, r1
|
||||
beq _080379BA
|
||||
strb r0, [r5, #0x14]
|
||||
adds r1, r0, #4
|
||||
adds r0, r5, #0
|
||||
bl InitAnimationForceUpdate
|
||||
_080379BA:
|
||||
pop {r4, r5, pc}
|
||||
|
||||
.syntax divided
|
||||
@@ -1,36 +0,0 @@
|
||||
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
push {lr}
|
||||
adds r3, r0, #0
|
||||
adds r0, #0x80
|
||||
ldr r2, [r0]
|
||||
cmp r2, #0
|
||||
beq _08037C1E
|
||||
movs r0, #0xf
|
||||
strb r0, [r2, #0xe]
|
||||
str r1, [r2, #0x50]
|
||||
_08037C1E:
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x84
|
||||
ldr r2, [r0]
|
||||
cmp r2, #0
|
||||
beq _08037C2E
|
||||
movs r0, #0xf
|
||||
strb r0, [r2, #0xe]
|
||||
str r1, [r2, #0x50]
|
||||
_08037C2E:
|
||||
ldr r2, [r3, #0x54]
|
||||
cmp r2, #0
|
||||
beq _08037C3A
|
||||
movs r0, #0xf
|
||||
strb r0, [r2, #0xe]
|
||||
str r1, [r2, #0x50]
|
||||
_08037C3A:
|
||||
pop {pc}
|
||||
|
||||
.syntax divided
|
||||
@@ -0,0 +1,45 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r0, #0x84
|
||||
ldr r6, [r0]
|
||||
movs r4, #0
|
||||
adds r7, r6, #0
|
||||
adds r7, #0x3c
|
||||
adds r5, r7, #0
|
||||
_0802D34A:
|
||||
ldm r5!, {r0}
|
||||
bl DeleteEntity
|
||||
adds r4, #1
|
||||
cmp r4, #3
|
||||
bls _0802D34A
|
||||
lsls r1, r4, #2
|
||||
adds r1, r7, r1
|
||||
ldr r0, [r1]
|
||||
adds r0, #0x45
|
||||
movs r3, #0
|
||||
strb r3, [r0]
|
||||
ldr r1, [r1]
|
||||
adds r1, #0x6d
|
||||
ldrb r2, [r1]
|
||||
movs r0, #1
|
||||
orrs r0, r2
|
||||
strb r0, [r1]
|
||||
ldr r0, [r6, #0x50]
|
||||
adds r0, #0x45
|
||||
strb r3, [r0]
|
||||
ldr r0, [r6, #0x50]
|
||||
strb r3, [r0, #0xb]
|
||||
ldr r3, [r6, #0x50]
|
||||
ldrb r2, [r3, #0x18]
|
||||
lsls r1, r2, #0x1e
|
||||
lsrs r1, r1, #0x1e
|
||||
movs r0, #2
|
||||
rsbs r0, r0, #0
|
||||
ands r1, r0
|
||||
subs r0, #2
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r3, #0x18]
|
||||
bl DeleteThisEntity
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.syntax divided
|
||||
@@ -0,0 +1,323 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
adds r4, r0, #0
|
||||
movs r0, #3
|
||||
bl CheckGlobalFlag
|
||||
cmp r0, #0
|
||||
beq _0802D3DE
|
||||
ldr r2, _0802D3F4 @ =gScreen
|
||||
ldrh r1, [r2]
|
||||
ldr r0, _0802D3F8 @ =0x0000FDFF
|
||||
ands r0, r1
|
||||
strh r0, [r2]
|
||||
ldr r0, _0802D3FC @ =gPlayerEntity
|
||||
bl sub_0807AABC
|
||||
bl DeleteThisEntity
|
||||
_0802D3DE:
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #6
|
||||
bls _0802D3EA
|
||||
b _0802D63C
|
||||
_0802D3EA:
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _0802D400 @ =_0802D404
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_0802D3F4: .4byte gScreen
|
||||
_0802D3F8: .4byte 0x0000FDFF
|
||||
_0802D3FC: .4byte gPlayerEntity
|
||||
_0802D400: .4byte _0802D404
|
||||
_0802D404: @ jump table
|
||||
.4byte _0802D420 @ case 0
|
||||
.4byte _0802D544 @ case 1
|
||||
.4byte _0802D58C @ case 2
|
||||
.4byte _0802D5A8 @ case 3
|
||||
.4byte _0802D5EC @ case 4
|
||||
.4byte _0802D5F6 @ case 5
|
||||
.4byte _0802D61A @ case 6
|
||||
_0802D420:
|
||||
movs r2, #0
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x10]
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x10]
|
||||
adds r3, r4, #0
|
||||
adds r3, #0x29
|
||||
ldrb r0, [r3]
|
||||
movs r1, #7
|
||||
orrs r0, r1
|
||||
strb r0, [r3]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x75
|
||||
strb r2, [r0]
|
||||
adds r0, #0xb
|
||||
strb r2, [r0]
|
||||
subs r0, #7
|
||||
strb r2, [r0]
|
||||
movs r0, #0x96
|
||||
str r0, [r4, #0x7c]
|
||||
adds r0, r4, #0
|
||||
bl sub_0802EB9C
|
||||
movs r0, #0x54
|
||||
bl zMalloc
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x84
|
||||
str r0, [r1]
|
||||
adds r5, r0, #0
|
||||
adds r7, r1, #0
|
||||
cmp r5, #0
|
||||
bne _0802D470
|
||||
adds r0, r4, #0
|
||||
bl sub_0804A7D4
|
||||
bl DeleteThisEntity
|
||||
_0802D470:
|
||||
ldr r0, [r7]
|
||||
str r0, [r4, #0x64]
|
||||
movs r6, #0
|
||||
movs r0, #0
|
||||
mov r8, r0
|
||||
_0802D47A:
|
||||
movs r0, #0x24
|
||||
movs r1, #1
|
||||
bl CreateEnemy
|
||||
str r0, [r4, #0x54]
|
||||
adds r3, r6, #1
|
||||
cmp r0, #0
|
||||
beq _0802D4D6
|
||||
strb r3, [r0, #0xb]
|
||||
ldr r1, [r4, #0x54]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x38
|
||||
ldrb r0, [r0]
|
||||
adds r1, #0x38
|
||||
strb r0, [r1]
|
||||
ldr r1, [r4, #0x54]
|
||||
ldrh r0, [r4, #0x2e]
|
||||
strh r0, [r1, #0x2e]
|
||||
ldr r1, [r4, #0x54]
|
||||
lsls r0, r3, #1
|
||||
adds r0, r0, r3
|
||||
lsls r0, r0, #2
|
||||
ldrh r2, [r4, #0x32]
|
||||
adds r0, r0, r2
|
||||
strh r0, [r1, #0x32]
|
||||
ldr r0, [r4, #0x54]
|
||||
str r4, [r0, #0x50]
|
||||
ldr r0, [r4, #0x54]
|
||||
adds r0, #0x84
|
||||
ldr r1, [r7]
|
||||
str r1, [r0]
|
||||
lsls r2, r6, #2
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x3c
|
||||
adds r0, r0, r2
|
||||
ldr r1, [r4, #0x54]
|
||||
str r1, [r0]
|
||||
adds r2, r5, r2
|
||||
movs r0, #0x10
|
||||
strb r0, [r2, #1]
|
||||
mov r0, r8
|
||||
strb r0, [r2, #0x19]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x35
|
||||
mov r1, r8
|
||||
strb r1, [r0]
|
||||
_0802D4D6:
|
||||
adds r6, r3, #0
|
||||
cmp r6, #4
|
||||
bls _0802D47A
|
||||
movs r0, #0x24
|
||||
movs r1, #2
|
||||
bl CreateEnemy
|
||||
adds r2, r0, #0
|
||||
str r2, [r4, #0x54]
|
||||
cmp r2, #0
|
||||
beq _0802D52E
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x38
|
||||
ldrb r1, [r0]
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x38
|
||||
strb r1, [r0]
|
||||
ldr r1, [r4, #0x54]
|
||||
ldrh r0, [r4, #0x2e]
|
||||
movs r3, #0
|
||||
strh r0, [r1, #0x2e]
|
||||
ldr r2, [r4, #0x54]
|
||||
adds r1, r6, #1
|
||||
lsls r0, r1, #1
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #2
|
||||
ldrh r1, [r4, #0x32]
|
||||
adds r0, r0, r1
|
||||
strh r0, [r2, #0x32]
|
||||
ldr r0, [r4, #0x54]
|
||||
str r4, [r0, #0x50]
|
||||
ldr r0, [r4, #0x54]
|
||||
adds r0, #0x84
|
||||
ldr r1, [r7]
|
||||
str r1, [r0]
|
||||
ldr r0, [r4, #0x54]
|
||||
str r0, [r5, #0x50]
|
||||
movs r0, #0x10
|
||||
strb r0, [r5, #0x15]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x2d
|
||||
strb r3, [r0]
|
||||
adds r0, #8
|
||||
strb r3, [r0]
|
||||
_0802D52E:
|
||||
.ifndef EU
|
||||
ldr r0, _0802D540 @ =gPlayerState
|
||||
adds r0, #0x8b
|
||||
movs r1, #3
|
||||
strb r1, [r0]
|
||||
.endif
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x4c
|
||||
bl InitializeAnimation
|
||||
b _0802D63C
|
||||
.align 2, 0
|
||||
.ifndef EU
|
||||
_0802D540: .4byte gPlayerState
|
||||
.endif
|
||||
_0802D544:
|
||||
ldrb r0, [r4, #0xb]
|
||||
cmp r0, #1
|
||||
bne _0802D55C
|
||||
ldrb r0, [r4, #0x10]
|
||||
movs r1, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x10]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x3b
|
||||
ldrb r0, [r2]
|
||||
orrs r1, r0
|
||||
strb r1, [r2]
|
||||
_0802D55C:
|
||||
ldr r1, _0802D588 @ =gUnk_080CD7C4
|
||||
ldrb r0, [r4, #0xb]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0, #1]
|
||||
adds r3, r4, #0
|
||||
adds r3, #0x29
|
||||
movs r1, #7
|
||||
ands r1, r0
|
||||
ldrb r2, [r3]
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r3]
|
||||
movs r0, #0
|
||||
strb r0, [r4, #0xf]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x24
|
||||
bl InitializeAnimation
|
||||
b _0802D63C
|
||||
.align 2, 0
|
||||
_0802D588: .4byte gUnk_080CD7C4
|
||||
_0802D58C:
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r0, [r2]
|
||||
movs r1, #8
|
||||
rsbs r1, r1, #0
|
||||
ands r1, r0
|
||||
strb r1, [r2]
|
||||
movs r0, #0
|
||||
strb r0, [r4, #0xf]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl InitAnimationForceUpdate
|
||||
b _0802D63C
|
||||
_0802D5A8:
|
||||
ldr r0, _0802D5E8 @ =gUnk_080CD884
|
||||
ldrb r1, [r0]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x74
|
||||
movs r2, #0
|
||||
strb r1, [r0]
|
||||
adds r0, #1
|
||||
strb r2, [r0]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #6
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
adds r2, #0x12
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
ldr r0, [r4, #0x50]
|
||||
adds r1, r4, #0
|
||||
bl CopyPosition
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x4f
|
||||
bl InitializeAnimation
|
||||
b _0802D63C
|
||||
.align 2, 0
|
||||
_0802D5E8: .4byte gUnk_080CD884
|
||||
_0802D5EC:
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x2c
|
||||
bl InitAnimationForceUpdate
|
||||
b _0802D63C
|
||||
_0802D5F6:
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #6
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
ldr r0, [r4, #0x50]
|
||||
adds r1, r4, #0
|
||||
bl CopyPosition
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x2d
|
||||
bl InitAnimationForceUpdate
|
||||
b _0802D63C
|
||||
_0802D61A:
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #6
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
ldr r0, [r4, #0x50]
|
||||
adds r1, r4, #0
|
||||
bl CopyPosition
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x50
|
||||
bl InitializeAnimation
|
||||
_0802D63C:
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #0
|
||||
beq _0802D648
|
||||
adds r0, r4, #0
|
||||
bl sub_0802D86C
|
||||
_0802D648:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.syntax divided
|
||||
@@ -0,0 +1,401 @@
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #6
|
||||
bls _0802D878
|
||||
b _0802DB7E
|
||||
_0802D878:
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _0802D884 @ =_0802D888
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_0802D884: .4byte _0802D888
|
||||
_0802D888: @ jump table
|
||||
.4byte _0802DB64 @ case 0
|
||||
.4byte _0802D8A4 @ case 1
|
||||
.4byte _0802D8CE @ case 2
|
||||
.4byte _0802DA54 @ case 3
|
||||
.4byte _0802D94C @ case 4
|
||||
.4byte _0802D9A2 @ case 5
|
||||
.4byte _0802D9F8 @ case 6
|
||||
_0802D8A4:
|
||||
ldrb r0, [r4, #0xb]
|
||||
cmp r0, #1
|
||||
bne _0802D8CE
|
||||
ldr r0, [r4, #0x50]
|
||||
adds r0, #0x80
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _0802D8BE
|
||||
ldrb r0, [r4, #0x18]
|
||||
lsls r0, r0, #0x1e
|
||||
lsrs r0, r0, #0x1e
|
||||
cmp r0, #1
|
||||
beq _0802D8C6
|
||||
_0802D8BE:
|
||||
ldrb r1, [r4, #0x10]
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
b _0802D8CC
|
||||
_0802D8C6:
|
||||
ldrb r1, [r4, #0x10]
|
||||
movs r0, #0x80
|
||||
orrs r0, r1
|
||||
_0802D8CC:
|
||||
strb r0, [r4, #0x10]
|
||||
_0802D8CE:
|
||||
ldrb r0, [r4, #0x18]
|
||||
lsls r0, r0, #0x1e
|
||||
lsrs r0, r0, #0x1e
|
||||
movs r1, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0802D8DE
|
||||
b _0802DB7E
|
||||
_0802D8DE:
|
||||
ldr r0, [r4, #0x50]
|
||||
adds r0, #0x3d
|
||||
ldrb r0, [r0]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x3d
|
||||
strb r0, [r1]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _0802D918
|
||||
ldrb r0, [r4, #0xf]
|
||||
cmp r0, #0
|
||||
bne _0802D906
|
||||
adds r0, r4, #0
|
||||
bl UnloadOBJPalette
|
||||
adds r0, r4, #0
|
||||
movs r1, #0xc9
|
||||
bl LoadObjPalette
|
||||
b _0802D918
|
||||
_0802D906:
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xf]
|
||||
adds r0, r4, #0
|
||||
bl UnloadOBJPalette
|
||||
adds r0, r4, #0
|
||||
movs r1, #0xca
|
||||
bl LoadObjPalette
|
||||
_0802D918:
|
||||
ldr r0, [r4, #0x50]
|
||||
adds r0, #0x80
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _0802D924
|
||||
b _0802DB7E
|
||||
_0802D924:
|
||||
ldr r1, _0802D944 @ =gPlayerEntity
|
||||
adds r0, r4, #0
|
||||
movs r2, #8
|
||||
movs r3, #8
|
||||
bl EntityInRectRadius
|
||||
cmp r0, #0
|
||||
bne _0802D936
|
||||
b _0802DB7E
|
||||
_0802D936:
|
||||
ldr r0, _0802D948 @ =gPlayerState
|
||||
movs r1, #1
|
||||
strb r1, [r0, #0x14]
|
||||
adds r0, #0x3f
|
||||
movs r1, #0xfc
|
||||
strb r1, [r0]
|
||||
b _0802DB7E
|
||||
.align 2, 0
|
||||
_0802D944: .4byte gPlayerEntity
|
||||
_0802D948: .4byte gPlayerState
|
||||
_0802D94C:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _0802D95E
|
||||
adds r0, r4, #0
|
||||
bl UpdateAnimationSingleFrame
|
||||
b _0802DB7E
|
||||
_0802D95E:
|
||||
movs r1, #0xc0
|
||||
lsls r1, r1, #5
|
||||
adds r0, r4, #0
|
||||
bl GravityUpdate
|
||||
adds r2, r0, #0
|
||||
cmp r2, #0
|
||||
beq _0802D970
|
||||
b _0802DB7E
|
||||
_0802D970:
|
||||
ldr r0, [r4, #0x50]
|
||||
adds r0, #0x7b
|
||||
movs r1, #1
|
||||
strb r1, [r0]
|
||||
strb r2, [r4, #0xe]
|
||||
_0802D97A:
|
||||
ldrb r3, [r4, #0xe]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x67
|
||||
movs r2, #0
|
||||
bl CreateObjectWithParent
|
||||
ldrb r0, [r4, #0xe]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #7
|
||||
bls _0802D97A
|
||||
movs r0, #0xa8
|
||||
lsls r0, r0, #1
|
||||
bl SoundReq
|
||||
_0802D99C:
|
||||
bl DeleteThisEntity
|
||||
b _0802DB7E
|
||||
_0802D9A2:
|
||||
ldr r0, _0802D9F4 @ =gRoomTransition
|
||||
ldr r0, [r0]
|
||||
movs r1, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0802D9B8
|
||||
ldr r0, [r4, #0x50]
|
||||
ldrb r0, [r0, #0xc]
|
||||
cmp r0, #2
|
||||
bne _0802D9B8
|
||||
b _0802DB7E
|
||||
_0802D9B8:
|
||||
adds r0, r4, #0
|
||||
bl UpdateAnimationSingleFrame
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0802D9CE
|
||||
b _0802DB7E
|
||||
_0802D9CE:
|
||||
movs r0, #0x24
|
||||
movs r1, #6
|
||||
bl CreateEnemy
|
||||
adds r1, r0, #0
|
||||
str r1, [r4, #0x54]
|
||||
cmp r1, #0
|
||||
beq _0802D99C
|
||||
ldr r0, [r4, #0x50]
|
||||
str r0, [r1, #0x50]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x84
|
||||
ldr r1, [r2]
|
||||
ldr r0, [r4, #0x54]
|
||||
str r0, [r1, #0x38]
|
||||
adds r0, #0x84
|
||||
ldr r1, [r2]
|
||||
str r1, [r0]
|
||||
b _0802D99C
|
||||
.align 2, 0
|
||||
_0802D9F4: .4byte gRoomTransition
|
||||
_0802D9F8:
|
||||
ldr r0, _0802DA50 @ =gRoomTransition
|
||||
ldr r0, [r0]
|
||||
movs r1, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0802DA0E
|
||||
ldr r0, [r4, #0x50]
|
||||
ldrb r0, [r0, #0xc]
|
||||
cmp r0, #2
|
||||
bne _0802DA0E
|
||||
b _0802DB7E
|
||||
_0802DA0E:
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0802DA24
|
||||
b _0802DB7E
|
||||
_0802DA24:
|
||||
movs r0, #0x24
|
||||
movs r1, #3
|
||||
bl CreateEnemy
|
||||
adds r1, r0, #0
|
||||
str r1, [r4, #0x54]
|
||||
cmp r1, #0
|
||||
beq _0802D99C
|
||||
ldr r0, [r4, #0x50]
|
||||
str r0, [r1, #0x50]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x84
|
||||
ldr r0, [r1]
|
||||
ldrb r0, [r0, #1]
|
||||
strb r0, [r4, #0xe]
|
||||
ldr r2, [r1]
|
||||
ldr r0, [r4, #0x54]
|
||||
str r0, [r2, #0x38]
|
||||
adds r0, #0x84
|
||||
ldr r1, [r1]
|
||||
str r1, [r0]
|
||||
b _0802D99C
|
||||
.align 2, 0
|
||||
_0802DA50: .4byte gRoomTransition
|
||||
_0802DA54:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x74
|
||||
ldrb r1, [r0]
|
||||
adds r6, r0, #0
|
||||
cmp r1, #0
|
||||
beq _0802DA96
|
||||
subs r0, r1, #1
|
||||
strb r0, [r6]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _0802DA96
|
||||
adds r5, r4, #0
|
||||
adds r5, #0x75
|
||||
ldrb r0, [r5]
|
||||
adds r0, #2
|
||||
strb r0, [r5]
|
||||
ldr r7, _0802DAD4 @ =gUnk_080CD884
|
||||
ldrb r0, [r5]
|
||||
adds r0, r0, r7
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r6]
|
||||
cmp r0, #0
|
||||
beq _0802DA96
|
||||
adds r0, r4, #0
|
||||
bl UnloadOBJPalette
|
||||
ldrb r0, [r5]
|
||||
adds r0, #1
|
||||
adds r0, r0, r7
|
||||
ldrb r1, [r0]
|
||||
adds r0, r4, #0
|
||||
bl LoadObjPalette
|
||||
_0802DA96:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x41
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0802DAD8
|
||||
ldrb r2, [r6]
|
||||
cmp r2, #0
|
||||
bne _0802DAD8
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
cmp r0, #0x1d
|
||||
bne _0802DB20
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #0xa
|
||||
str r0, [r4, #0x20]
|
||||
ldr r1, [r4, #0x50]
|
||||
movs r0, #4
|
||||
strb r0, [r1, #0xd]
|
||||
ldr r0, [r4, #0x50]
|
||||
strb r2, [r0, #0xb]
|
||||
ldr r0, [r4, #0x50]
|
||||
adds r0, #0x7b
|
||||
strb r2, [r0]
|
||||
movs r0, #0x86
|
||||
lsls r0, r0, #1
|
||||
bl SoundReq
|
||||
b _0802DB20
|
||||
.align 2, 0
|
||||
_0802DAD4: .4byte gUnk_080CD884
|
||||
_0802DAD8:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x84
|
||||
ldr r2, [r0]
|
||||
ldrb r1, [r4, #0xe]
|
||||
adds r3, r0, #0
|
||||
ldrb r0, [r2, #1]
|
||||
cmp r1, r0
|
||||
beq _0802DB20
|
||||
adds r0, r1, #0
|
||||
ldrb r1, [r2, #1]
|
||||
subs r0, r0, r1
|
||||
movs r1, #0x1f
|
||||
ands r0, r1
|
||||
cmp r0, #0x10
|
||||
ble _0802DB08
|
||||
ldrb r0, [r4, #0x1e]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0x1e]
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #0x30
|
||||
bls _0802DB1A
|
||||
movs r0, #0x28
|
||||
b _0802DB18
|
||||
_0802DB08:
|
||||
ldrb r0, [r4, #0x1e]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0x1e]
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #0x27
|
||||
bhi _0802DB1A
|
||||
movs r0, #0x30
|
||||
_0802DB18:
|
||||
strb r0, [r4, #0x1e]
|
||||
_0802DB1A:
|
||||
ldr r0, [r3]
|
||||
ldrb r0, [r0, #1]
|
||||
strb r0, [r4, #0xe]
|
||||
_0802DB20:
|
||||
ldr r0, [r4, #0x20]
|
||||
cmp r0, #0
|
||||
ble _0802DB7E
|
||||
movs r1, #0xc0
|
||||
lsls r1, r1, #5
|
||||
adds r0, r4, #0
|
||||
bl GravityUpdate
|
||||
ldr r0, [r4, #0x20]
|
||||
cmp r0, #0
|
||||
bgt _0802DB7E
|
||||
movs r0, #0x24
|
||||
movs r1, #4
|
||||
bl CreateEnemy
|
||||
adds r1, r0, #0
|
||||
str r1, [r4, #0x54]
|
||||
cmp r1, #0
|
||||
beq _0802DB7E
|
||||
ldr r0, [r4, #0x50]
|
||||
str r0, [r1, #0x50]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x84
|
||||
ldr r1, [r2]
|
||||
ldr r0, [r4, #0x54]
|
||||
str r0, [r1, #0x38]
|
||||
adds r0, #0x84
|
||||
ldr r1, [r2]
|
||||
str r1, [r0]
|
||||
ldr r1, [r4, #0x54]
|
||||
adds r0, r4, #0
|
||||
bl CopyPosition
|
||||
b _0802D99C
|
||||
_0802DB64:
|
||||
ldr r1, _0802DB80 @ =gUnk_080CD810
|
||||
ldrb r0, [r4, #0xd]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldr r1, [r0]
|
||||
adds r0, r4, #0
|
||||
bl _call_via_r1
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x84
|
||||
ldr r0, [r0]
|
||||
bl sub_0802E7E4
|
||||
_0802DB7E:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0802DB80: .4byte gUnk_080CD810
|
||||
|
||||
.syntax divided
|
||||
@@ -0,0 +1,300 @@
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
sub sp, #0xc
|
||||
str r0, [sp]
|
||||
adds r0, #0x84
|
||||
ldr r0, [r0]
|
||||
mov sb, r0
|
||||
ldr r1, [r0, #0x3c]
|
||||
ldr r0, [r1, #0x50]
|
||||
bl CopyPosition
|
||||
mov r0, sb
|
||||
ldr r1, [r0, #0x3c]
|
||||
ldrb r0, [r0, #1]
|
||||
strb r0, [r1, #0x15]
|
||||
mov r1, sb
|
||||
ldrb r6, [r1, #1]
|
||||
cmp r6, #0x10
|
||||
bls _0802E54C
|
||||
movs r0, #0xf
|
||||
eors r6, r0
|
||||
adds r6, #1
|
||||
ands r6, r0
|
||||
_0802E54C:
|
||||
cmp r6, #0x10
|
||||
bne _0802E552
|
||||
movs r6, #0xf
|
||||
_0802E552:
|
||||
mov r2, sb
|
||||
ldr r1, [r2, #0x3c]
|
||||
movs r0, #0xf
|
||||
eors r6, r0
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x12
|
||||
lsls r0, r0, #8
|
||||
strh r0, [r1, #0x24]
|
||||
ldr r0, [r2, #0x3c]
|
||||
bl LinearMoveUpdate
|
||||
movs r6, #0
|
||||
movs r0, #0x3c
|
||||
add r0, sb
|
||||
mov sl, r0
|
||||
mov r1, sb
|
||||
adds r1, #0x30
|
||||
str r1, [sp, #4]
|
||||
ldr r2, [sp]
|
||||
adds r2, #0x80
|
||||
str r2, [sp, #8]
|
||||
movs r7, #0x80
|
||||
lsls r7, r7, #1
|
||||
_0802E580:
|
||||
lsls r0, r6, #2
|
||||
add r0, sl
|
||||
ldr r0, [r0]
|
||||
adds r1, r6, #1
|
||||
mov r8, r1
|
||||
lsls r4, r1, #2
|
||||
mov r2, sl
|
||||
adds r5, r2, r4
|
||||
ldr r1, [r5]
|
||||
bl CopyPosition
|
||||
add r4, sb
|
||||
ldrb r0, [r4, #0x19]
|
||||
lsls r0, r0, #4
|
||||
ldr r1, _0802E644 @ =gSineTable
|
||||
adds r0, r0, r1
|
||||
movs r2, #0
|
||||
ldrsh r0, [r0, r2]
|
||||
ldr r1, [sp, #4]
|
||||
adds r6, r1, r6
|
||||
ldrb r1, [r6]
|
||||
lsls r1, r1, #0x18
|
||||
asrs r1, r1, #0x10
|
||||
bl FixedMul
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
adds r1, r7, #0
|
||||
bl FixedDiv
|
||||
adds r1, r0, #0
|
||||
ldrb r0, [r4, #1]
|
||||
lsls r0, r0, #4
|
||||
ldr r2, _0802E644 @ =gSineTable
|
||||
adds r0, r0, r2
|
||||
movs r2, #0
|
||||
ldrsh r0, [r0, r2]
|
||||
lsls r1, r1, #0x10
|
||||
asrs r1, r1, #0x10
|
||||
bl FixedMul
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
adds r1, r7, #0
|
||||
bl FixedDiv
|
||||
ldr r2, [r5]
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #8
|
||||
ldr r1, [r2, #0x2c]
|
||||
adds r1, r1, r0
|
||||
str r1, [r2, #0x2c]
|
||||
ldrb r0, [r4, #0x19]
|
||||
lsls r0, r0, #4
|
||||
adds r0, #0x80
|
||||
ldr r1, _0802E644 @ =gSineTable
|
||||
adds r0, r0, r1
|
||||
movs r2, #0
|
||||
ldrsh r0, [r0, r2]
|
||||
ldrb r1, [r6]
|
||||
lsls r1, r1, #0x18
|
||||
asrs r1, r1, #0x10
|
||||
bl FixedMul
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
adds r1, r7, #0
|
||||
bl FixedDiv
|
||||
ldr r2, [r5]
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #8
|
||||
ldr r1, [r2, #0x30]
|
||||
subs r1, r1, r0
|
||||
str r1, [r2, #0x30]
|
||||
mov r6, r8
|
||||
cmp r6, #4
|
||||
bls _0802E580
|
||||
mov r1, sb
|
||||
ldr r0, [r1, #0x50]
|
||||
ldrb r1, [r0, #0xe]
|
||||
adds r2, r0, #0
|
||||
cmp r1, #0x18
|
||||
bne _0802E662
|
||||
mov r1, sb
|
||||
ldrb r0, [r1, #0x15]
|
||||
lsrs r0, r0, #3
|
||||
lsls r7, r0, #2
|
||||
mov r0, sb
|
||||
adds r0, #0x2d
|
||||
ldrb r0, [r0]
|
||||
lsls r1, r0, #0x18
|
||||
lsrs r0, r1, #0x18
|
||||
cmp r0, #0xc
|
||||
bls _0802E648
|
||||
adds r7, #3
|
||||
b _0802E64C
|
||||
.align 2, 0
|
||||
_0802E644: .4byte gSineTable
|
||||
_0802E648:
|
||||
lsrs r0, r1, #0x1a
|
||||
adds r7, r7, r0
|
||||
_0802E64C:
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x58
|
||||
ldrb r0, [r0]
|
||||
adds r1, r7, #0
|
||||
adds r1, #0x18
|
||||
cmp r0, r1
|
||||
beq _0802E6E8
|
||||
adds r0, r2, #0
|
||||
bl InitAnimationForceUpdate
|
||||
b _0802E6E8
|
||||
_0802E662:
|
||||
ldr r2, [sp, #8]
|
||||
ldrb r0, [r2]
|
||||
cmp r0, #0
|
||||
bne _0802E688
|
||||
mov r0, sb
|
||||
movs r1, #5
|
||||
movs r2, #0
|
||||
movs r3, #0
|
||||
bl sub_0802E7CC
|
||||
mov r0, sb
|
||||
ldr r2, [r0, #0x50]
|
||||
ldrb r1, [r2, #0x14]
|
||||
lsrs r0, r1, #1
|
||||
adds r7, r1, r0
|
||||
lsrs r0, r7, #2
|
||||
ldrb r2, [r2, #0xe]
|
||||
adds r7, r0, r2
|
||||
b _0802E6CA
|
||||
_0802E688:
|
||||
ldr r0, [sp]
|
||||
adds r0, #0x3d
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _0802E6C0
|
||||
ldr r0, [sp]
|
||||
adds r0, #0x58
|
||||
ldrb r3, [r0]
|
||||
mov r1, sb
|
||||
ldrb r0, [r1, #0x15]
|
||||
lsrs r2, r0, #3
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x2f
|
||||
cmp r3, r0
|
||||
bne _0802E6BA
|
||||
ldr r0, [sp]
|
||||
adds r0, #0x5a
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
adds r7, r3, #0
|
||||
cmp r0, #0
|
||||
beq _0802E6CA
|
||||
_0802E6BA:
|
||||
adds r7, r2, #0
|
||||
adds r7, #0x28
|
||||
b _0802E6CA
|
||||
_0802E6C0:
|
||||
mov r2, sb
|
||||
ldrb r0, [r2, #0x15]
|
||||
lsrs r0, r0, #3
|
||||
adds r7, r0, #0
|
||||
adds r7, #0x2f
|
||||
_0802E6CA:
|
||||
mov r0, sb
|
||||
ldr r1, [r0, #0x50]
|
||||
adds r0, r1, #0
|
||||
adds r0, #0x58
|
||||
ldrb r0, [r0]
|
||||
cmp r0, r7
|
||||
beq _0802E6E2
|
||||
adds r0, r1, #0
|
||||
adds r1, r7, #0
|
||||
bl InitAnimationForceUpdate
|
||||
b _0802E6E8
|
||||
_0802E6E2:
|
||||
adds r0, r1, #0
|
||||
bl UpdateAnimationSingleFrame
|
||||
_0802E6E8:
|
||||
movs r6, #0
|
||||
_0802E6EA:
|
||||
ldr r1, [sp, #8]
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
bne _0802E72E
|
||||
lsls r1, r6, #0x18
|
||||
lsrs r1, r1, #0x18
|
||||
mov r0, sb
|
||||
movs r2, #0
|
||||
movs r3, #0
|
||||
bl sub_0802E7CC
|
||||
lsls r5, r6, #2
|
||||
mov r2, sl
|
||||
adds r0, r2, r5
|
||||
ldr r0, [r0]
|
||||
ldrb r1, [r0, #0x14]
|
||||
lsrs r0, r1, #1
|
||||
adds r7, r1, r0
|
||||
lsrs r7, r7, #2
|
||||
adds r4, r6, #1
|
||||
lsls r0, r4, #2
|
||||
add r0, sb
|
||||
ldrb r0, [r0, #0x19]
|
||||
movs r1, #3
|
||||
bl __divsi3
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
lsls r1, r0, #1
|
||||
adds r1, r1, r0
|
||||
lsls r1, r1, #2
|
||||
adds r7, r7, r1
|
||||
adds r1, r5, #0
|
||||
b _0802E73E
|
||||
_0802E72E:
|
||||
lsls r1, r6, #2
|
||||
mov r2, sb
|
||||
adds r0, r2, r1
|
||||
ldrb r0, [r0, #1]
|
||||
lsrs r0, r0, #3
|
||||
adds r7, r0, #0
|
||||
adds r7, #0x48
|
||||
adds r4, r6, #1
|
||||
_0802E73E:
|
||||
mov r2, sl
|
||||
adds r0, r2, r1
|
||||
ldr r1, [r0]
|
||||
adds r0, r1, #0
|
||||
adds r0, #0x58
|
||||
ldrb r0, [r0]
|
||||
cmp r0, r7
|
||||
beq _0802E756
|
||||
adds r0, r1, #0
|
||||
adds r1, r7, #0
|
||||
bl InitializeAnimation
|
||||
_0802E756:
|
||||
adds r6, r4, #0
|
||||
cmp r6, #4
|
||||
bls _0802E6EA
|
||||
add sp, #0xc
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
|
||||
.syntax divided
|
||||
@@ -1,84 +1,85 @@
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
sub sp, #0x8
|
||||
ldr r1, _data0_0
|
||||
ldr r2, _data0_0+0x4
|
||||
add r0, r1, r2
|
||||
ldr r3, _data0_0+0x8
|
||||
add r2, r1, r3
|
||||
ldr r7, _data0_0+0xc
|
||||
add r7, r1, r7
|
||||
str r7, [sp, #0x4]
|
||||
ldr r3, _data0_0+0x10
|
||||
add r6, r1, r3
|
||||
mov r1, #0x10
|
||||
_code0_0:
|
||||
mov r5, #0x10
|
||||
mov r7, #0x80
|
||||
add r7, r0
|
||||
mov r10, r7
|
||||
mov r3, r2
|
||||
add r3, #0x80
|
||||
str r3, [sp]
|
||||
ldr r7, [sp, #0x4]
|
||||
add r7, #0x40
|
||||
mov r8, r7
|
||||
mov r3, #0x40
|
||||
add r3, r6
|
||||
mov r9, r3
|
||||
sub r1, #0x1
|
||||
mov r12, r1
|
||||
mov r3, r0
|
||||
add r3, #0x20
|
||||
mov r4, r2
|
||||
add r4, #0x20
|
||||
_code0_1:
|
||||
ldrh r0, [r3]
|
||||
strh r0, [r4]
|
||||
ldrh r0, [r3]
|
||||
lsl r0, #0x1
|
||||
ldr r7, _data0_0
|
||||
add r0, r7
|
||||
ldrh r1, [r0]
|
||||
ldr r0, [sp, #0x4]
|
||||
add r2, r0, r5
|
||||
ldr r7, _data0_0+0x14
|
||||
add r0, r1, r7
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r2]
|
||||
add r2, r6, r5
|
||||
ldr r0, _data0_0+0x18
|
||||
add r1, r0
|
||||
ldrb r0, [r1]
|
||||
strb r0, [r2]
|
||||
sub r3, #0x2
|
||||
sub r4, #0x2
|
||||
sub r5, #0x1
|
||||
cmp r5, #0x0
|
||||
bne _code0_1
|
||||
mov r0, r10
|
||||
ldr r2, [sp]
|
||||
mov r1, r8
|
||||
str r1, [sp, #0x4]
|
||||
mov r6, r9
|
||||
mov r1, r12
|
||||
cmp r1, #0x0
|
||||
bne _code0_0
|
||||
add sp, #0x8
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_data0_0:
|
||||
.4byte gMetatileTypesTop
|
||||
.4byte 0xffffbcb0
|
||||
.4byte 0xffffecb0
|
||||
.4byte 0x6658
|
||||
.4byte 0xffffd658
|
||||
.4byte gUnk_080B37A0
|
||||
.4byte gUnk_080B3E80
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
sub sp, #8
|
||||
ldr r1, _080465AC @ =gMetatileTypesTop
|
||||
ldr r2, _080465B0 @ =0xFFFFBCB0
|
||||
adds r0, r1, r2
|
||||
ldr r3, _080465B4 @ =0xFFFFECB0
|
||||
adds r2, r1, r3
|
||||
ldr r7, _080465B8 @ =0x00006658
|
||||
adds r7, r1, r7
|
||||
str r7, [sp, #4]
|
||||
ldr r3, _080465BC @ =0xFFFFD658
|
||||
adds r6, r1, r3
|
||||
movs r1, #0x10
|
||||
_0804653A:
|
||||
movs r5, #0x10
|
||||
movs r7, #0x80
|
||||
adds r7, r7, r0
|
||||
mov sl, r7
|
||||
adds r3, r2, #0
|
||||
adds r3, #0x80
|
||||
str r3, [sp]
|
||||
ldr r7, [sp, #4]
|
||||
adds r7, #0x40
|
||||
mov r8, r7
|
||||
movs r3, #0x40
|
||||
adds r3, r3, r6
|
||||
mov sb, r3
|
||||
subs r1, #1
|
||||
mov ip, r1
|
||||
adds r3, r0, #0
|
||||
adds r3, #0x20
|
||||
adds r4, r2, #0
|
||||
adds r4, #0x20
|
||||
_08046560:
|
||||
ldrh r0, [r3]
|
||||
strh r0, [r4]
|
||||
ldrh r0, [r3]
|
||||
lsls r0, r0, #1
|
||||
ldr r7, _080465AC @ =gMetatileTypesTop
|
||||
adds r0, r0, r7
|
||||
ldrh r1, [r0]
|
||||
ldr r0, [sp, #4]
|
||||
adds r2, r0, r5
|
||||
ldr r7, _080465C0 @ =gUnk_080B37A0
|
||||
adds r0, r1, r7
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r2]
|
||||
adds r2, r6, r5
|
||||
ldr r0, _080465C4 @ =gUnk_080B3E80
|
||||
adds r1, r1, r0
|
||||
ldrb r0, [r1]
|
||||
strb r0, [r2]
|
||||
subs r3, #2
|
||||
subs r4, #2
|
||||
subs r5, #1
|
||||
cmp r5, #0
|
||||
bne _08046560
|
||||
mov r0, sl
|
||||
ldr r2, [sp]
|
||||
mov r1, r8
|
||||
str r1, [sp, #4]
|
||||
mov r6, sb
|
||||
mov r1, ip
|
||||
cmp r1, #0
|
||||
bne _0804653A
|
||||
add sp, #8
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_080465AC: .4byte gMetatileTypesTop
|
||||
_080465B0: .4byte 0xFFFFBCB0
|
||||
_080465B4: .4byte 0xFFFFECB0
|
||||
_080465B8: .4byte 0x00006658
|
||||
_080465BC: .4byte 0xFFFFD658
|
||||
_080465C0: .4byte gUnk_080B37A0
|
||||
_080465C4: .4byte gUnk_080B3E80
|
||||
.syntax divided
|
||||
|
||||
@@ -1,186 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r5, r0, #0
|
||||
adds r7, r1, #0
|
||||
ldr r4, _0807536C @ =gPlayerState
|
||||
ldr r1, [r4, #0x30]
|
||||
movs r3, #0x80
|
||||
adds r0, r1, #0
|
||||
ands r0, r3
|
||||
cmp r0, #0
|
||||
beq _08075370
|
||||
ldrb r0, [r5, #9]
|
||||
movs r1, #0x80
|
||||
orrs r1, r0
|
||||
strb r1, [r5, #9]
|
||||
adds r0, r5, #0
|
||||
adds r1, r7, #0
|
||||
bl sub_08077D38
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #4
|
||||
strh r0, [r4, #8]
|
||||
movs r0, #0x75
|
||||
bl SoundReq
|
||||
b _080754B4
|
||||
.align 2, 0
|
||||
_0807536C: .4byte gPlayerState
|
||||
_08075370:
|
||||
ldrb r2, [r4, #2]
|
||||
cmp r2, #0
|
||||
beq _080753DC
|
||||
movs r6, #7
|
||||
adds r0, r6, #0
|
||||
ands r0, r2
|
||||
cmp r0, #3
|
||||
beq _080753E4
|
||||
movs r0, #0x78
|
||||
ands r0, r2
|
||||
cmp r0, #0
|
||||
bne _080753E4
|
||||
ldr r3, _080753D4 @ =gPlayerEntity
|
||||
ldr r1, [r3, #0x20]
|
||||
ldr r0, _080753D8 @ =0x00017FFF
|
||||
cmp r1, r0
|
||||
bhi _080753E4
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xac
|
||||
ldrh r1, [r0]
|
||||
movs r0, #0x40
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080753E4
|
||||
ldr r0, [r3, #0x34]
|
||||
cmp r0, #0
|
||||
beq _080753E4
|
||||
movs r0, #0x20
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #2]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xab
|
||||
strb r6, [r0]
|
||||
movs r0, #8
|
||||
asrs r0, r7
|
||||
lsls r1, r0, #4
|
||||
orrs r0, r1
|
||||
ldrb r1, [r4, #4]
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #4]
|
||||
adds r0, r5, #0
|
||||
bl sub_08077B98
|
||||
movs r0, #6
|
||||
strb r0, [r5, #4]
|
||||
adds r0, r5, #0
|
||||
adds r1, r7, #0
|
||||
bl sub_08075898
|
||||
b _080754B4
|
||||
.align 2, 0
|
||||
_080753D4: .4byte gPlayerEntity
|
||||
_080753D8: .4byte 0x00017FFF
|
||||
_080753DC:
|
||||
ldr r2, _080753F0 @ =gPlayerEntity
|
||||
ldr r0, [r2, #0x34]
|
||||
cmp r0, #0
|
||||
beq _080753F4
|
||||
_080753E4:
|
||||
adds r0, r5, #0
|
||||
adds r1, r7, #0
|
||||
bl sub_080759B8
|
||||
b _080754B4
|
||||
.align 2, 0
|
||||
_080753F0: .4byte gPlayerEntity
|
||||
_080753F4:
|
||||
movs r6, #0x80
|
||||
lsls r6, r6, #0xb
|
||||
ands r6, r1
|
||||
cmp r6, #0
|
||||
beq _08075480
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xac
|
||||
ldrh r1, [r0]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r6, r0, #0x10
|
||||
cmp r6, #0
|
||||
bne _0807541E
|
||||
ldr r0, [r4, #0x2c]
|
||||
cmp r0, #0
|
||||
beq _080754B4
|
||||
bl DeleteEntity
|
||||
str r6, [r4, #0x2c]
|
||||
b _080754B4
|
||||
_0807541E:
|
||||
adds r0, r5, #0
|
||||
adds r1, r7, #0
|
||||
bl sub_08077D38
|
||||
adds r0, r5, #0
|
||||
bl sub_08077B98
|
||||
movs r3, #8
|
||||
adds r1, r3, #0
|
||||
asrs r1, r7
|
||||
lsls r0, r1, #4
|
||||
orrs r0, r1
|
||||
ldrb r2, [r4, #4]
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #4]
|
||||
ldrb r2, [r4, #0xa]
|
||||
adds r0, r1, #0
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #0xa]
|
||||
ldrb r0, [r4, #0xb]
|
||||
orrs r1, r0
|
||||
strb r1, [r4, #0xb]
|
||||
strb r3, [r5, #4]
|
||||
movs r0, #0x14
|
||||
strb r0, [r5, #7]
|
||||
movs r0, #6
|
||||
strb r0, [r5, #0xf]
|
||||
ldrb r1, [r5, #9]
|
||||
movs r0, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r5, #9]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0xab
|
||||
movs r0, #2
|
||||
strb r0, [r1]
|
||||
ldr r0, [r4, #0x30]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #0x14
|
||||
orrs r0, r1
|
||||
str r0, [r4, #0x30]
|
||||
movs r1, #0x98
|
||||
lsls r1, r1, #1
|
||||
adds r0, r5, #0
|
||||
bl sub_08077DF4
|
||||
movs r0, #0x77
|
||||
bl SoundReq
|
||||
b _080754B4
|
||||
_08075480:
|
||||
ldrb r1, [r4, #0x1b]
|
||||
adds r0, r3, #0
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08075492
|
||||
strb r6, [r4, #0x1b]
|
||||
adds r0, r2, #0
|
||||
bl sub_0806F948
|
||||
_08075492:
|
||||
ldr r1, [r4, #0x2c]
|
||||
cmp r1, #0
|
||||
beq _080754A6
|
||||
ldrb r0, [r1, #9]
|
||||
cmp r0, #1
|
||||
beq _080754A6
|
||||
adds r0, r1, #0
|
||||
bl DeleteEntity
|
||||
str r6, [r4, #0x2c]
|
||||
_080754A6:
|
||||
adds r0, r5, #0
|
||||
adds r1, r7, #0
|
||||
bl sub_08077D38
|
||||
adds r0, r5, #0
|
||||
bl sub_08077B98
|
||||
_080754B4:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -0,0 +1,564 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
adds r7, r0, #0
|
||||
ldrb r1, [r7, #0x10]
|
||||
movs r0, #0x20
|
||||
orrs r0, r1
|
||||
strb r0, [r7, #0x10]
|
||||
ldr r6, _0808564C @ =gPlayerEntity
|
||||
adds r0, r7, #0
|
||||
adds r1, r6, #0
|
||||
movs r2, #0x18
|
||||
bl sub_0806FC80
|
||||
adds r1, r0, #0
|
||||
cmp r1, #0
|
||||
beq _080856EE
|
||||
ldr r3, _08085650 @ =gPlayerState
|
||||
ldr r0, [r3, #0x30]
|
||||
movs r1, #2
|
||||
orrs r0, r1
|
||||
str r0, [r3, #0x30]
|
||||
ldr r4, [r6, #0x34]
|
||||
cmp r4, #0
|
||||
beq _0808561C
|
||||
b _080857CE
|
||||
_0808561C:
|
||||
adds r5, r3, #0
|
||||
adds r5, #0x26
|
||||
ldrb r0, [r5]
|
||||
cmp r0, #0
|
||||
beq _08085634
|
||||
adds r2, r6, #0
|
||||
adds r2, #0x3c
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0xfb
|
||||
ands r0, r1
|
||||
strb r0, [r2]
|
||||
strb r4, [r5]
|
||||
_08085634:
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x84
|
||||
str r7, [r0]
|
||||
adds r0, r7, #0
|
||||
adds r0, #0x38
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #1
|
||||
bne _08085654
|
||||
adds r0, r6, #0
|
||||
bl ResetCollisionLayer
|
||||
b _0808565A
|
||||
.align 2, 0
|
||||
_0808564C: .4byte gPlayerEntity
|
||||
_08085650: .4byte gPlayerState
|
||||
_08085654:
|
||||
adds r0, r6, #0
|
||||
bl sub_08004542
|
||||
_0808565A:
|
||||
ldrb r0, [r7, #0xf]
|
||||
cmp r0, #0
|
||||
bne _0808568C
|
||||
movs r0, #4
|
||||
strb r0, [r7, #0xf]
|
||||
_08085664:
|
||||
adds r0, r7, #0
|
||||
movs r1, #8
|
||||
movs r2, #0xa
|
||||
bl sub_080A2AF4
|
||||
ldrb r0, [r7, #0xf]
|
||||
subs r0, #1
|
||||
strb r0, [r7, #0xf]
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r2, r0, #0x18
|
||||
cmp r2, #0
|
||||
bne _08085664
|
||||
movs r0, #1
|
||||
strb r0, [r7, #0xf]
|
||||
ldrb r1, [r7, #0xe]
|
||||
movs r0, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r7, #0xe]
|
||||
str r2, [r7, #0x70]
|
||||
str r2, [r7, #0x6c]
|
||||
_0808568C:
|
||||
ldr r2, _080856B8 @ =gPlayerState
|
||||
ldrb r0, [r2, #0x1c]
|
||||
cmp r0, #3
|
||||
beq _08085696
|
||||
b _080857CE
|
||||
_08085696:
|
||||
ldr r1, _080856BC @ =gUnk_08120620
|
||||
ldrb r0, [r2, #0x1d]
|
||||
subs r0, #1
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldr r4, [r0]
|
||||
ldr r0, _080856C0 @ =gPlayerEntity
|
||||
ldrb r0, [r0, #0x14]
|
||||
movs r1, #6
|
||||
ands r1, r0
|
||||
cmp r1, #2
|
||||
beq _080856DE
|
||||
cmp r1, #2
|
||||
bgt _080856C4
|
||||
cmp r1, #0
|
||||
beq _080856D6
|
||||
b _080857CE
|
||||
.align 2, 0
|
||||
_080856B8: .4byte gPlayerState
|
||||
_080856BC: .4byte gUnk_08120620
|
||||
_080856C0: .4byte gPlayerEntity
|
||||
_080856C4:
|
||||
cmp r1, #4
|
||||
beq _080856CE
|
||||
cmp r1, #6
|
||||
beq _080856E6
|
||||
b _080857CE
|
||||
_080856CE:
|
||||
ldr r0, [r7, #0x70]
|
||||
subs r0, r0, r4
|
||||
str r0, [r7, #0x70]
|
||||
b _080857CE
|
||||
_080856D6:
|
||||
ldr r0, [r7, #0x70]
|
||||
adds r0, r0, r4
|
||||
str r0, [r7, #0x70]
|
||||
b _080857CE
|
||||
_080856DE:
|
||||
ldr r0, [r7, #0x6c]
|
||||
subs r0, r0, r4
|
||||
str r0, [r7, #0x6c]
|
||||
b _080857CE
|
||||
_080856E6:
|
||||
ldr r0, [r7, #0x6c]
|
||||
adds r0, r0, r4
|
||||
str r0, [r7, #0x6c]
|
||||
b _080857CE
|
||||
_080856EE:
|
||||
ldrb r0, [r7, #0xf]
|
||||
cmp r0, #0
|
||||
beq _080856FC
|
||||
strb r1, [r7, #0xf]
|
||||
movs r0, #0x83
|
||||
bl SoundReq
|
||||
_080856FC:
|
||||
adds r2, r7, #0
|
||||
adds r2, #0x41
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
mov r8, r2
|
||||
cmp r0, #0x13
|
||||
bne _080857C8
|
||||
movs r0, #0x2e
|
||||
ldrsh r1, [r6, r0]
|
||||
ldr r3, _08085758 @ =gUnk_08126EE4
|
||||
ldrb r2, [r6, #0x14]
|
||||
movs r0, #0xe
|
||||
ands r0, r2
|
||||
adds r0, r0, r3
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
adds r5, r1, r0
|
||||
movs r0, #0x32
|
||||
ldrsh r1, [r6, r0]
|
||||
movs r0, #1
|
||||
orrs r0, r2
|
||||
adds r0, r0, r3
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
adds r3, r1, r0
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r7, r1]
|
||||
movs r2, #0x32
|
||||
ldrsh r1, [r7, r2]
|
||||
adds r2, r5, #0
|
||||
bl sub_080045D4
|
||||
strb r0, [r7, #0x15]
|
||||
ldr r0, _0808575C @ =gPlayerState
|
||||
ldrb r0, [r0, #0x1d]
|
||||
cmp r0, #2
|
||||
beq _0808576A
|
||||
cmp r0, #2
|
||||
bgt _08085760
|
||||
cmp r0, #1
|
||||
beq _08085770
|
||||
b _08085774
|
||||
.align 2, 0
|
||||
_08085758: .4byte gUnk_08126EE4
|
||||
_0808575C: .4byte gPlayerState
|
||||
_08085760:
|
||||
cmp r0, #3
|
||||
bne _08085774
|
||||
movs r4, #0x80
|
||||
lsls r4, r4, #3
|
||||
b _08085774
|
||||
_0808576A:
|
||||
movs r4, #0xc0
|
||||
lsls r4, r4, #2
|
||||
b _08085774
|
||||
_08085770:
|
||||
movs r4, #0x80
|
||||
lsls r4, r4, #2
|
||||
_08085774:
|
||||
ldr r6, _080858A8 @ =gSineTable
|
||||
ldrb r0, [r7, #0x15]
|
||||
lsls r0, r0, #4
|
||||
adds r0, r0, r6
|
||||
movs r1, #0
|
||||
ldrsh r0, [r0, r1]
|
||||
lsls r4, r4, #0x10
|
||||
asrs r4, r4, #0x18
|
||||
adds r1, r4, #0
|
||||
bl FixedMul
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
movs r5, #0x80
|
||||
lsls r5, r5, #1
|
||||
adds r1, r5, #0
|
||||
bl FixedDiv
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #8
|
||||
ldr r1, [r7, #0x6c]
|
||||
adds r1, r1, r0
|
||||
str r1, [r7, #0x6c]
|
||||
ldrb r0, [r7, #0x15]
|
||||
lsls r0, r0, #4
|
||||
adds r0, #0x80
|
||||
adds r0, r0, r6
|
||||
movs r2, #0
|
||||
ldrsh r0, [r0, r2]
|
||||
adds r1, r4, #0
|
||||
bl FixedMul
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
adds r1, r5, #0
|
||||
bl FixedDiv
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #8
|
||||
ldr r1, [r7, #0x70]
|
||||
subs r1, r1, r0
|
||||
str r1, [r7, #0x70]
|
||||
_080857C8:
|
||||
movs r0, #0
|
||||
mov r1, r8
|
||||
strb r0, [r1]
|
||||
_080857CE:
|
||||
ldr r0, [r7, #0x2c]
|
||||
str r0, [r7, #0x54]
|
||||
ldr r0, [r7, #0x30]
|
||||
str r0, [r7, #0x50]
|
||||
ldr r0, [r7, #0x6c]
|
||||
cmp r0, #0
|
||||
bne _080857E4
|
||||
ldr r0, [r7, #0x70]
|
||||
cmp r0, #0
|
||||
bne _080857E4
|
||||
b _080859F4
|
||||
_080857E4:
|
||||
ldr r0, [r7, #0x70]
|
||||
ldr r1, _080858AC @ =0xFFFF0000
|
||||
cmp r0, r1
|
||||
blt _080857F4
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #9
|
||||
cmp r0, r1
|
||||
ble _080857F6
|
||||
_080857F4:
|
||||
str r1, [r7, #0x70]
|
||||
_080857F6:
|
||||
ldr r0, [r7, #0x6c]
|
||||
ldr r1, _080858AC @ =0xFFFF0000
|
||||
cmp r0, r1
|
||||
blt _08085806
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #9
|
||||
cmp r0, r1
|
||||
ble _08085808
|
||||
_08085806:
|
||||
str r1, [r7, #0x6c]
|
||||
_08085808:
|
||||
ldr r0, _080858B0 @ =gRoomTransition
|
||||
ldr r0, [r0]
|
||||
movs r1, #0xf
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0808581A
|
||||
adds r0, r7, #0
|
||||
bl sub_080A2AD4
|
||||
_0808581A:
|
||||
ldr r0, [r7, #0x2c]
|
||||
ldr r1, [r7, #0x6c]
|
||||
adds r5, r0, r1
|
||||
ldr r1, [r7, #0x30]
|
||||
ldr r2, [r7, #0x70]
|
||||
adds r3, r1, r2
|
||||
adds r2, r5, #0
|
||||
bl sub_080045D4
|
||||
strb r0, [r7, #0x15]
|
||||
ldr r0, [r7, #0x6c]
|
||||
lsls r0, r0, #8
|
||||
asrs r0, r0, #0x10
|
||||
movs r4, #0x80
|
||||
lsls r4, r4, #1
|
||||
adds r1, r4, #0
|
||||
bl FixedMul
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
ldr r5, _080858A8 @ =gSineTable
|
||||
ldrb r1, [r7, #0x15]
|
||||
lsls r1, r1, #4
|
||||
adds r1, r1, r5
|
||||
movs r2, #0
|
||||
ldrsh r1, [r1, r2]
|
||||
bl FixedDiv
|
||||
strh r0, [r7, #0x24]
|
||||
ldr r0, [r7, #0x70]
|
||||
lsls r0, r0, #8
|
||||
asrs r0, r0, #0x10
|
||||
adds r1, r4, #0
|
||||
bl FixedMul
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
ldrb r1, [r7, #0x15]
|
||||
lsls r1, r1, #4
|
||||
adds r1, #0x80
|
||||
adds r1, r1, r5
|
||||
movs r2, #0
|
||||
ldrsh r1, [r1, r2]
|
||||
bl FixedDiv
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
rsbs r4, r0, #0
|
||||
movs r1, #0x24
|
||||
ldrsh r0, [r7, r1]
|
||||
cmp r4, r0
|
||||
ble _08085884
|
||||
strh r4, [r7, #0x24]
|
||||
_08085884:
|
||||
ldrb r0, [r7, #0xb]
|
||||
cmp r0, #0
|
||||
beq _080858BC
|
||||
adds r0, r7, #0
|
||||
adds r0, #0x7e
|
||||
movs r2, #0
|
||||
ldrsh r1, [r0, r2]
|
||||
ldr r0, _080858B4 @ =0x00000FFF
|
||||
cmp r1, r0
|
||||
bgt _080858B8
|
||||
movs r0, #0x24
|
||||
ldrsh r1, [r7, r0]
|
||||
lsls r1, r1, #0xc
|
||||
ldr r0, [r7, #0x7c]
|
||||
adds r0, r0, r1
|
||||
str r0, [r7, #0x7c]
|
||||
b _080858E0
|
||||
.align 2, 0
|
||||
_080858A8: .4byte gSineTable
|
||||
_080858AC: .4byte 0xFFFF0000
|
||||
_080858B0: .4byte gRoomTransition
|
||||
_080858B4: .4byte 0x00000FFF
|
||||
_080858B8:
|
||||
movs r0, #0
|
||||
b _080858DE
|
||||
_080858BC:
|
||||
adds r0, r7, #0
|
||||
adds r0, #0x7e
|
||||
movs r2, #0
|
||||
ldrsh r1, [r0, r2]
|
||||
ldr r0, _080858D8 @ =0xFFFFF000
|
||||
cmp r1, r0
|
||||
ble _080858DC
|
||||
movs r0, #0x24
|
||||
ldrsh r1, [r7, r0]
|
||||
lsls r1, r1, #0xc
|
||||
ldr r0, [r7, #0x7c]
|
||||
subs r0, r0, r1
|
||||
str r0, [r7, #0x7c]
|
||||
b _080858E0
|
||||
.align 2, 0
|
||||
_080858D8: .4byte 0xFFFFF000
|
||||
_080858DC:
|
||||
movs r0, #1
|
||||
_080858DE:
|
||||
strb r0, [r7, #0xb]
|
||||
_080858E0:
|
||||
adds r0, r7, #0
|
||||
bl sub_08085EFC
|
||||
adds r0, r7, #0
|
||||
bl sub_080AF134
|
||||
ldr r1, [r7, #0x54]
|
||||
ldr r0, [r7, #0x2c]
|
||||
cmp r1, r0
|
||||
bne _0808590C
|
||||
adds r0, r7, #0
|
||||
adds r0, #0x85
|
||||
ldrb r1, [r0]
|
||||
adds r2, r0, #0
|
||||
cmp r1, #2
|
||||
bne _08085906
|
||||
movs r0, #0
|
||||
str r0, [r7, #0x6c]
|
||||
b _08085916
|
||||
_08085906:
|
||||
adds r0, r1, #1
|
||||
strb r0, [r2]
|
||||
b _08085916
|
||||
_0808590C:
|
||||
adds r1, r7, #0
|
||||
adds r1, #0x85
|
||||
movs r0, #0
|
||||
strb r0, [r1]
|
||||
adds r2, r1, #0
|
||||
_08085916:
|
||||
ldr r1, [r7, #0x50]
|
||||
ldr r0, [r7, #0x30]
|
||||
cmp r1, r0
|
||||
bne _0808592E
|
||||
ldrb r0, [r2]
|
||||
cmp r0, #2
|
||||
bne _0808592A
|
||||
movs r0, #0
|
||||
str r0, [r7, #0x70]
|
||||
b _08085932
|
||||
_0808592A:
|
||||
adds r0, #1
|
||||
b _08085930
|
||||
_0808592E:
|
||||
movs r0, #0
|
||||
_08085930:
|
||||
strb r0, [r2]
|
||||
_08085932:
|
||||
ldr r0, _0808595C @ =gPlayerState
|
||||
ldr r0, [r0, #0x30]
|
||||
movs r1, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08085944
|
||||
adds r0, r7, #0
|
||||
bl sub_08085F1C
|
||||
_08085944:
|
||||
ldr r1, [r7, #0x6c]
|
||||
cmp r1, #0
|
||||
beq _08085998
|
||||
cmp r1, #0
|
||||
bge _0808596E
|
||||
movs r0, #0x80
|
||||
rsbs r0, r0, #0
|
||||
cmp r1, r0
|
||||
ble _08085960
|
||||
movs r0, #0
|
||||
b _08085964
|
||||
.align 2, 0
|
||||
_0808595C: .4byte gPlayerState
|
||||
_08085960:
|
||||
adds r0, r1, #0
|
||||
adds r0, #0x80
|
||||
_08085964:
|
||||
str r0, [r7, #0x6c]
|
||||
ldrh r2, [r7, #0x2a]
|
||||
movs r1, #0xe0
|
||||
lsls r1, r1, #4
|
||||
b _08085982
|
||||
_0808596E:
|
||||
cmp r1, #0x7f
|
||||
bhi _08085976
|
||||
movs r0, #0
|
||||
b _0808597A
|
||||
_08085976:
|
||||
adds r0, r1, #0
|
||||
subs r0, #0x80
|
||||
_0808597A:
|
||||
str r0, [r7, #0x6c]
|
||||
ldrh r2, [r7, #0x2a]
|
||||
movs r1, #0xe0
|
||||
lsls r1, r1, #8
|
||||
_08085982:
|
||||
adds r0, r1, #0
|
||||
ands r0, r2
|
||||
cmp r0, r1
|
||||
bne _08085998
|
||||
ldr r0, [r7, #0x6c]
|
||||
cmp r0, #0
|
||||
bge _08085992
|
||||
adds r0, #3
|
||||
_08085992:
|
||||
asrs r0, r0, #2
|
||||
rsbs r0, r0, #0
|
||||
str r0, [r7, #0x6c]
|
||||
_08085998:
|
||||
ldr r1, [r7, #0x70]
|
||||
cmp r1, #0
|
||||
beq _080859E6
|
||||
cmp r1, #0
|
||||
bge _080859C0
|
||||
movs r0, #0x80
|
||||
rsbs r0, r0, #0
|
||||
cmp r1, r0
|
||||
ble _080859AE
|
||||
movs r0, #0
|
||||
b _080859B2
|
||||
_080859AE:
|
||||
adds r0, r1, #0
|
||||
adds r0, #0x80
|
||||
_080859B2:
|
||||
str r0, [r7, #0x70]
|
||||
ldrh r1, [r7, #0x2a]
|
||||
movs r0, #0xe
|
||||
ands r0, r1
|
||||
cmp r0, #0xe
|
||||
bne _080859E6
|
||||
b _080859D8
|
||||
_080859C0:
|
||||
cmp r1, #0x7f
|
||||
bhi _080859C8
|
||||
movs r0, #0
|
||||
b _080859CC
|
||||
_080859C8:
|
||||
adds r0, r1, #0
|
||||
subs r0, #0x80
|
||||
_080859CC:
|
||||
str r0, [r7, #0x70]
|
||||
ldrh r1, [r7, #0x2a]
|
||||
movs r0, #0xe0
|
||||
ands r0, r1
|
||||
cmp r0, #0xe0
|
||||
bne _080859E6
|
||||
_080859D8:
|
||||
ldr r0, [r7, #0x70]
|
||||
cmp r0, #0
|
||||
bge _080859E0
|
||||
adds r0, #3
|
||||
_080859E0:
|
||||
asrs r0, r0, #2
|
||||
rsbs r0, r0, #0
|
||||
str r0, [r7, #0x70]
|
||||
_080859E6:
|
||||
adds r0, r7, #0
|
||||
bl sub_08085D28
|
||||
adds r0, r7, #0
|
||||
bl sub_08085D60
|
||||
b _08085A0A
|
||||
_080859F4:
|
||||
ldr r0, _08085A18 @ =gRoomTransition
|
||||
ldr r0, [r0]
|
||||
movs r1, #0x1f
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08085A0A
|
||||
adds r0, r7, #0
|
||||
movs r1, #8
|
||||
movs r2, #0xa
|
||||
bl sub_080A2AF4
|
||||
_08085A0A:
|
||||
adds r0, r7, #0
|
||||
bl sub_08085F48
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_08085A18: .4byte gRoomTransition
|
||||
.syntax divided
|
||||
@@ -0,0 +1,139 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
adds r5, r0, #0
|
||||
ldr r2, _08085D94 @ =gPlayerState
|
||||
ldr r0, [r2, #0x30]
|
||||
movs r1, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08085E64
|
||||
adds r0, r2, #0
|
||||
adds r0, #0xa8
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0x12
|
||||
beq _08085E64
|
||||
ldrb r0, [r2, #2]
|
||||
cmp r0, #0
|
||||
bne _08085E64
|
||||
ldrb r1, [r5, #0x15]
|
||||
movs r0, #7
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08085D98
|
||||
ldrb r6, [r5, #0x15]
|
||||
adds r4, r6, #0
|
||||
b _08085DB0
|
||||
.align 2, 0
|
||||
_08085D94: .4byte gPlayerState
|
||||
_08085D98:
|
||||
movs r0, #0x10
|
||||
ands r0, r1
|
||||
movs r4, #8
|
||||
cmp r0, #0
|
||||
beq _08085DA4
|
||||
movs r4, #0x18
|
||||
_08085DA4:
|
||||
ldrb r0, [r5, #0x15]
|
||||
subs r0, #8
|
||||
movs r6, #0x10
|
||||
cmp r0, #0x10
|
||||
ble _08085DB0
|
||||
movs r6, #0
|
||||
_08085DB0:
|
||||
cmp r4, #0x18
|
||||
beq _08085DB8
|
||||
cmp r4, #8
|
||||
bne _08085E20
|
||||
_08085DB8:
|
||||
lsrs r3, r4, #2
|
||||
ldr r1, _08085E10 @ =gUnk_08120638
|
||||
adds r0, r3, r1
|
||||
movs r7, #0
|
||||
ldrsb r7, [r0, r7]
|
||||
adds r0, r3, #1
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
mov r8, r0
|
||||
adds r0, r5, #0
|
||||
adds r1, r7, #0
|
||||
mov r2, r8
|
||||
bl sub_080002CC
|
||||
cmp r0, #0xff
|
||||
bne _08085E20
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r5, r1]
|
||||
ldr r2, _08085E14 @ =gRoomControls
|
||||
ldrh r1, [r2, #6]
|
||||
subs r0, r0, r1
|
||||
adds r0, r0, r7
|
||||
movs r3, #0x32
|
||||
ldrsh r1, [r5, r3]
|
||||
ldrh r2, [r2, #8]
|
||||
subs r1, r1, r2
|
||||
add r1, r8
|
||||
adds r2, r4, #0
|
||||
movs r3, #5
|
||||
bl sub_080806BC
|
||||
cmp r0, #0
|
||||
bne _08085E1C
|
||||
ldr r0, _08085E18 @ =gPlayerEntity
|
||||
lsrs r1, r4, #3
|
||||
bl sub_0807BD14
|
||||
cmp r0, #0
|
||||
beq _08085E20
|
||||
strb r4, [r5, #0x15]
|
||||
b _08085E52
|
||||
.align 2, 0
|
||||
_08085E10: .4byte gUnk_08120638
|
||||
_08085E14: .4byte gRoomControls
|
||||
_08085E18: .4byte gPlayerEntity
|
||||
_08085E1C:
|
||||
strb r4, [r5, #0x15]
|
||||
b _08085E6C
|
||||
_08085E20:
|
||||
cmp r6, #0
|
||||
beq _08085E28
|
||||
cmp r6, #0x10
|
||||
bne _08085E6C
|
||||
_08085E28:
|
||||
lsrs r3, r6, #2
|
||||
ldr r2, _08085E5C @ =gUnk_08120638
|
||||
adds r0, r3, r2
|
||||
movs r1, #0
|
||||
ldrsb r1, [r0, r1]
|
||||
adds r0, r3, #1
|
||||
adds r0, r0, r2
|
||||
movs r2, #0
|
||||
ldrsb r2, [r0, r2]
|
||||
adds r0, r5, #0
|
||||
bl sub_080002CC
|
||||
cmp r0, #0xff
|
||||
bne _08085E6C
|
||||
ldr r0, _08085E60 @ =gPlayerEntity
|
||||
lsrs r1, r6, #3
|
||||
bl sub_0807BD14
|
||||
cmp r0, #0
|
||||
beq _08085E6C
|
||||
strb r6, [r5, #0x15]
|
||||
_08085E52:
|
||||
adds r0, r5, #0
|
||||
bl sub_08085E74
|
||||
b _08085E6C
|
||||
.align 2, 0
|
||||
_08085E5C: .4byte gUnk_08120638
|
||||
_08085E60: .4byte gPlayerEntity
|
||||
_08085E64:
|
||||
ldrb r1, [r5, #0x10]
|
||||
movs r0, #0xdf
|
||||
ands r0, r1
|
||||
strb r0, [r5, #0x10]
|
||||
_08085E6C:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -1,4 +0,0 @@
|
||||
.syntax unified
|
||||
bx lr
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -1,38 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xf]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xf]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080572CA
|
||||
movs r0, #8
|
||||
strb r0, [r4, #0xf]
|
||||
ldr r2, _080572CC @ =gScreen
|
||||
ldr r3, _080572D0 @ =gUnk_08107C1C
|
||||
ldrb r0, [r4, #0xe]
|
||||
adds r1, r0, #1
|
||||
strb r1, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x17
|
||||
adds r0, r0, r3
|
||||
ldrh r0, [r0]
|
||||
adds r2, #0x68
|
||||
strh r0, [r2]
|
||||
lsls r1, r1, #0x18
|
||||
lsrs r1, r1, #0x18
|
||||
cmp r1, #0xa
|
||||
bne _080572CA
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x22
|
||||
movs r0, #0
|
||||
strb r0, [r1]
|
||||
_080572CA:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_080572CC: .4byte gScreen
|
||||
_080572D0: .4byte gUnk_08107C1C
|
||||
.syntax divided
|
||||
@@ -1,45 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
adds r3, r0, #0
|
||||
ldrb r0, [r3, #0xf]
|
||||
subs r0, #1
|
||||
strb r0, [r3, #0xf]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _08057320
|
||||
movs r0, #8
|
||||
strb r0, [r3, #0xf]
|
||||
ldr r5, _08057324 @ =gScreen
|
||||
ldr r2, _08057328 @ =gUnk_08107C1C
|
||||
ldrb r0, [r3, #0xe]
|
||||
adds r1, r0, #0
|
||||
adds r1, #0xff
|
||||
strb r1, [r3, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x17
|
||||
adds r0, r0, r2
|
||||
ldrh r2, [r0]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x68
|
||||
movs r4, #0
|
||||
strh r2, [r0]
|
||||
lsls r1, r1, #0x18
|
||||
lsrs r1, r1, #0x18
|
||||
cmp r1, #0xff
|
||||
bne _08057320
|
||||
movs r0, #1
|
||||
strb r0, [r3, #0xc]
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x22
|
||||
strb r4, [r0]
|
||||
subs r0, #1
|
||||
strb r4, [r0]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x6c
|
||||
strb r4, [r0]
|
||||
_08057320:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_08057324: .4byte gScreen
|
||||
_08057328: .4byte gUnk_08107C1C
|
||||
.syntax divided
|
||||
@@ -1,58 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sb
|
||||
mov r6, r8
|
||||
push {r6, r7}
|
||||
adds r6, r0, #0
|
||||
adds r5, r1, #0
|
||||
ldr r2, _08057390 @ =gUnk_03003DE4
|
||||
ldrb r1, [r2]
|
||||
lsls r0, r1, #2
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #9
|
||||
ldr r1, _08057394 @ =gUnk_02017AA0
|
||||
adds r4, r0, r1
|
||||
movs r3, #0
|
||||
mov ip, r2
|
||||
mov r8, r1
|
||||
ldr r0, _08057398 @ =gSineTable
|
||||
mov sb, r0
|
||||
movs r2, #0xff
|
||||
ldr r1, _0805739C @ =gScreen
|
||||
_08057354:
|
||||
adds r0, r5, r3
|
||||
ands r0, r2
|
||||
lsls r0, r0, #1
|
||||
add r0, sb
|
||||
movs r7, #0
|
||||
ldrsh r0, [r0, r7]
|
||||
muls r0, r6, r0
|
||||
lsrs r0, r0, #8
|
||||
ldrh r7, [r1, #0x2e]
|
||||
adds r0, r0, r7
|
||||
strh r0, [r4]
|
||||
adds r4, #2
|
||||
adds r3, #1
|
||||
cmp r3, #0x9f
|
||||
bls _08057354
|
||||
mov r0, ip
|
||||
ldrb r1, [r0]
|
||||
lsls r0, r1, #2
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #9
|
||||
add r0, r8
|
||||
ldr r1, _080573A0 @ =0x0400001C
|
||||
ldr r2, _080573A4 @ =0xA2600001
|
||||
bl sub_0805622C
|
||||
pop {r3, r4}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_08057390: .4byte gUnk_03003DE4
|
||||
_08057394: .4byte gUnk_02017AA0
|
||||
_08057398: .4byte gSineTable
|
||||
_0805739C: .4byte gScreen
|
||||
_080573A0: .4byte 0x0400001C
|
||||
_080573A4: .4byte 0xA2600001
|
||||
.syntax divided
|
||||
@@ -1,102 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
adds r3, r0, #0
|
||||
ldr r4, _08057504 @ =gScreen
|
||||
movs r0, #0x10
|
||||
strh r0, [r4, #0x2e]
|
||||
ldr r0, _08057508 @ =gRoomControls
|
||||
movs r2, #0xc
|
||||
ldrsh r1, [r0, r2]
|
||||
ldrh r0, [r0, #8]
|
||||
subs r1, r1, r0
|
||||
asrs r1, r1, #2
|
||||
movs r2, #0x3f
|
||||
adds r0, r1, #0
|
||||
ands r0, r2
|
||||
strh r0, [r4, #0x30]
|
||||
cmp r1, #0
|
||||
bge _08057474
|
||||
adds r1, #0x3f
|
||||
_08057474:
|
||||
asrs r0, r1, #6
|
||||
lsls r0, r0, #9
|
||||
ldr r1, _0805750C @ =gBG3Buffer
|
||||
adds r1, r0, r1
|
||||
str r1, [r4, #0x34]
|
||||
ldr r0, [r3, #0x34]
|
||||
cmp r0, r1
|
||||
beq _0805748A
|
||||
str r1, [r3, #0x34]
|
||||
movs r0, #1
|
||||
strh r0, [r4, #0x32]
|
||||
_0805748A:
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x22
|
||||
ldrb r0, [r0]
|
||||
ldr r5, _08057510 @ =gRoomTransition
|
||||
cmp r0, #0
|
||||
bne _080574BE
|
||||
ldr r0, [r5]
|
||||
movs r1, #0x1f
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _080574BE
|
||||
adds r2, r3, #0
|
||||
adds r2, #0x24
|
||||
ldrb r0, [r2]
|
||||
adds r0, #1
|
||||
movs r1, #7
|
||||
ands r0, r1
|
||||
strb r0, [r2]
|
||||
ldr r1, _08057514 @ =gUnk_08107C30
|
||||
ldrb r0, [r2]
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r1
|
||||
ldrh r1, [r0]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x68
|
||||
strh r1, [r0]
|
||||
_080574BE:
|
||||
ldr r0, [r5]
|
||||
movs r1, #7
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08057502
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x23
|
||||
ldrb r1, [r0]
|
||||
lsls r1, r1, #5
|
||||
ldr r2, _08057518 @ =gUnk_085B4180
|
||||
adds r1, r1, r2
|
||||
movs r5, #0
|
||||
adds r6, r0, #0
|
||||
adds r4, r1, #0
|
||||
adds r4, #0xe
|
||||
_080574DC:
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x87
|
||||
ldrh r1, [r4]
|
||||
bl SetColor
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x8c
|
||||
ldrh r1, [r4, #0xa]
|
||||
bl SetColor
|
||||
adds r4, #2
|
||||
adds r5, #1
|
||||
cmp r5, #3
|
||||
bls _080574DC
|
||||
ldrb r0, [r6]
|
||||
adds r0, #1
|
||||
movs r1, #3
|
||||
ands r0, r1
|
||||
strb r0, [r6]
|
||||
_08057502:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_08057504: .4byte gScreen
|
||||
_08057508: .4byte gRoomControls
|
||||
_0805750C: .4byte gBG3Buffer
|
||||
_08057510: .4byte gRoomTransition
|
||||
_08057514: .4byte gUnk_08107C30
|
||||
_08057518: .4byte gUnk_085B4180
|
||||
.syntax divided
|
||||
@@ -34,7 +34,7 @@
|
||||
adds r2, r2, r0
|
||||
adds r0, r6, #0
|
||||
movs r3, #8
|
||||
bl sub_0806FCB8
|
||||
bl EntityWithinDistance
|
||||
cmp r0, #0
|
||||
beq _080AA3D0
|
||||
movs r0, #1
|
||||
|
||||
@@ -1,60 +0,0 @@
|
||||
|
||||
.syntax unified
|
||||
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r2, _0803AB0C @ =gUnk_080CED6C
|
||||
ldr r0, [r4, #0x50]
|
||||
ldrb r0, [r0, #0xf]
|
||||
lsrs r0, r0, #4
|
||||
adds r0, #3
|
||||
ldrb r1, [r4, #0xa]
|
||||
lsls r1, r1, #1
|
||||
adds r0, r0, r1
|
||||
movs r1, #7
|
||||
ands r0, r1
|
||||
adds r0, r0, r2
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
adds r0, #4
|
||||
strh r0, [r4, #0x36]
|
||||
adds r0, r4, #0
|
||||
bl sub_0803B870
|
||||
cmp r0, #0
|
||||
bne _0803AB0A
|
||||
adds r0, r4, #0
|
||||
bl LinearMoveUpdate
|
||||
adds r0, r4, #0
|
||||
bl sub_0803B6F4
|
||||
cmp r0, #0
|
||||
beq _0803AB0A
|
||||
movs r0, #0x14
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #0x40
|
||||
strh r0, [r4, #0x24]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0xa
|
||||
bl InitializeAnimation
|
||||
ldr r2, [r4, #0x74]
|
||||
ldrb r1, [r2, #0x10]
|
||||
movs r0, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r2, #0x10]
|
||||
ldr r2, [r4, #0x54]
|
||||
adds r1, r2, #0
|
||||
adds r1, #0x3f
|
||||
movs r0, #0x13
|
||||
strb r0, [r1]
|
||||
adds r0, r2, #0
|
||||
movs r1, #5
|
||||
bl InitAnimationForceUpdate
|
||||
movs r0, #0xb7
|
||||
lsls r0, r0, #1
|
||||
bl SoundReq
|
||||
_0803AB0A:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0803AB0C: .4byte gUnk_080CED6C
|
||||
|
||||
.syntax divided
|
||||
@@ -95,7 +95,7 @@ _0809A25C:
|
||||
ldrsh r1, [r7, r2]
|
||||
ldrb r2, [r7, #0x15]
|
||||
adds r0, r7, #0
|
||||
bl sub_0806F62C
|
||||
bl LinearMoveAngle
|
||||
ldr r1, [r4]
|
||||
ldrb r0, [r7, #0xe]
|
||||
lsls r0, r0, #2
|
||||
@@ -206,7 +206,7 @@ _0809A33E:
|
||||
lsls r1, r1, #2
|
||||
ldrb r2, [r7, #0x15]
|
||||
adds r0, r7, #0
|
||||
bl sub_0806F62C
|
||||
bl LinearMoveAngle
|
||||
ldr r1, [r7, #0x50]
|
||||
adds r0, r7, #0
|
||||
movs r2, #0x48
|
||||
@@ -216,7 +216,7 @@ _0809A378:
|
||||
ldrb r2, [r7, #0x15]
|
||||
adds r0, r7, #0
|
||||
movs r1, #0x80
|
||||
bl sub_0806F62C
|
||||
bl LinearMoveAngle
|
||||
adds r0, r7, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r0, [r0]
|
||||
@@ -335,7 +335,7 @@ _0809A436:
|
||||
ldrh r3, [r3]
|
||||
adds r2, r2, r3
|
||||
adds r0, r7, #0
|
||||
bl sub_0806F62C
|
||||
bl LinearMoveAngle
|
||||
b _0809A632
|
||||
.align 2, 0
|
||||
_0809A468: .4byte gUnk_0812388C
|
||||
|
||||
@@ -1,334 +0,0 @@
|
||||
.syntax unified
|
||||
|
||||
.ifdef EU
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
mov r8, r0
|
||||
adds r2, r1, #0
|
||||
ldr r4, _0806E3F8 @ =gInput
|
||||
ldrh r1, [r4, #2]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0806E3FC
|
||||
bl sub_08050384
|
||||
b _0806E4EA
|
||||
.align 2, 0
|
||||
_0806E3F8: .4byte gInput
|
||||
_0806E3FC:
|
||||
ldrb r0, [r2, #0x18]
|
||||
adds r1, r0, #0
|
||||
mov r6, r8
|
||||
adds r6, #0x6c
|
||||
cmp r1, #0
|
||||
bne _0806E414
|
||||
adds r0, #1
|
||||
strb r0, [r2, #0x18]
|
||||
strh r1, [r6]
|
||||
mov r0, r8
|
||||
bl sub_0806EABC
|
||||
_0806E414:
|
||||
ldrh r2, [r4, #4]
|
||||
movs r0, #0xc0
|
||||
ands r0, r2
|
||||
cmp r0, #0
|
||||
beq _0806E466
|
||||
mov r1, r8
|
||||
adds r1, #0x68
|
||||
movs r0, #0
|
||||
ldrsh r4, [r1, r0]
|
||||
movs r0, #0x40
|
||||
ands r0, r2
|
||||
adds r7, r1, #0
|
||||
cmp r0, #0
|
||||
beq _0806E434
|
||||
adds r4, #1
|
||||
b _0806E436
|
||||
_0806E434:
|
||||
subs r4, #1
|
||||
_0806E436:
|
||||
cmp r4, #0
|
||||
bgt _0806E43C
|
||||
movs r4, #1
|
||||
_0806E43C:
|
||||
movs r5, #0x1c
|
||||
movs r0, #0x55
|
||||
bl CheckGlobalFlag
|
||||
cmp r0, #0
|
||||
beq _0806E44A
|
||||
movs r5, #0x34
|
||||
_0806E44A:
|
||||
cmp r4, r5
|
||||
ble _0806E450
|
||||
adds r4, r5, #0
|
||||
_0806E450:
|
||||
strh r4, [r7]
|
||||
mov r0, r8
|
||||
bl sub_0806EABC
|
||||
ldrh r1, [r6]
|
||||
movs r2, #0
|
||||
ldrsh r0, [r6, r2]
|
||||
cmp r0, #0
|
||||
ble _0806E466
|
||||
subs r0, r1, #1
|
||||
strh r0, [r6]
|
||||
_0806E466:
|
||||
ldr r0, _0806E4B4 @ =gInput
|
||||
ldrh r1, [r0, #2]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0806E4C6
|
||||
mov r5, r8
|
||||
adds r5, #0x68
|
||||
mov r7, r8
|
||||
adds r7, #0x6a
|
||||
movs r0, #0
|
||||
ldrsh r1, [r5, r0]
|
||||
movs r2, #0
|
||||
ldrsh r0, [r7, r2]
|
||||
cmp r1, r0
|
||||
bne _0806E48E
|
||||
movs r1, #0
|
||||
ldrsh r0, [r6, r1]
|
||||
cmp r0, #0
|
||||
bne _0806E4BC
|
||||
_0806E48E:
|
||||
ldr r4, _0806E4B8 @ =gUnk_081145E4
|
||||
movs r2, #0
|
||||
ldrsh r0, [r5, r2]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r4
|
||||
movs r1, #0
|
||||
ldrsh r0, [r0, r1]
|
||||
bl SoundReq
|
||||
ldrh r0, [r5]
|
||||
strh r0, [r7]
|
||||
movs r2, #0
|
||||
ldrsh r0, [r5, r2]
|
||||
lsls r0, r0, #2
|
||||
adds r4, #2
|
||||
adds r0, r0, r4
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r6]
|
||||
b _0806E4C6
|
||||
.align 2, 0
|
||||
_0806E4B4: .4byte gInput
|
||||
_0806E4B8: .4byte gUnk_081145E4
|
||||
_0806E4BC:
|
||||
ldr r0, _0806E4F0 @ =0x80010000
|
||||
bl SoundReq
|
||||
movs r0, #0
|
||||
strh r0, [r7]
|
||||
_0806E4C6:
|
||||
ldrh r1, [r6]
|
||||
movs r2, #0
|
||||
ldrsh r0, [r6, r2]
|
||||
cmp r0, #0
|
||||
ble _0806E4E4
|
||||
subs r0, r1, #1
|
||||
movs r1, #0
|
||||
strh r0, [r6]
|
||||
lsls r0, r0, #0x10
|
||||
cmp r0, #0
|
||||
bgt _0806E4E4
|
||||
mov r0, r8
|
||||
adds r0, #0x6a
|
||||
strh r1, [r0]
|
||||
strh r1, [r6]
|
||||
_0806E4E4:
|
||||
ldr r1, _0806E4F4 @ =gActiveScriptInfo
|
||||
movs r0, #0
|
||||
strb r0, [r1, #6]
|
||||
_0806E4EA:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0806E4F0: .4byte 0x80010000
|
||||
_0806E4F4: .4byte gActiveScriptInfo
|
||||
|
||||
.else
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sb
|
||||
mov r6, r8
|
||||
push {r6, r7}
|
||||
mov sb, r0
|
||||
adds r2, r1, #0
|
||||
ldr r0, _0806E984 @ =gInput
|
||||
mov r8, r0
|
||||
ldrh r1, [r0, #2]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0806E988
|
||||
bl sub_08050384
|
||||
b _0806EAAA
|
||||
.align 2, 0
|
||||
_0806E984: .4byte gInput
|
||||
_0806E988:
|
||||
ldrb r0, [r2, #0x18]
|
||||
adds r1, r0, #0
|
||||
mov r6, sb
|
||||
adds r6, #0x6c
|
||||
mov r7, sb
|
||||
adds r7, #0x68
|
||||
cmp r1, #0
|
||||
bne _0806E9A8
|
||||
adds r0, #1
|
||||
strb r0, [r2, #0x18]
|
||||
strh r1, [r6]
|
||||
movs r2, #0
|
||||
ldrsh r1, [r7, r2]
|
||||
mov r0, sb
|
||||
bl sub_0806EABC
|
||||
_0806E9A8:
|
||||
movs r5, #0x1c
|
||||
movs r0, #0x55
|
||||
bl CheckGlobalFlag
|
||||
cmp r0, #0
|
||||
beq _0806E9B6
|
||||
movs r5, #0x34
|
||||
_0806E9B6:
|
||||
movs r0, #0
|
||||
ldrsh r4, [r7, r0]
|
||||
mov r2, r8
|
||||
ldrh r1, [r2, #2]
|
||||
movs r2, #0xc0
|
||||
adds r0, r2, #0
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0806E9E4
|
||||
movs r0, #0x40
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0806E9D4
|
||||
adds r4, #1
|
||||
b _0806E9D6
|
||||
_0806E9D4:
|
||||
subs r4, #1
|
||||
_0806E9D6:
|
||||
cmp r4, #0
|
||||
bgt _0806E9DC
|
||||
adds r4, r5, #0
|
||||
_0806E9DC:
|
||||
cmp r4, r5
|
||||
ble _0806EA0A
|
||||
movs r4, #1
|
||||
b _0806EA0A
|
||||
_0806E9E4:
|
||||
mov r0, r8
|
||||
ldrh r1, [r0, #4]
|
||||
adds r0, r2, #0
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0806EA0A
|
||||
movs r0, #0x40
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0806E9FC
|
||||
adds r4, #1
|
||||
b _0806E9FE
|
||||
_0806E9FC:
|
||||
subs r4, #1
|
||||
_0806E9FE:
|
||||
cmp r4, #0
|
||||
bgt _0806EA04
|
||||
movs r4, #1
|
||||
_0806EA04:
|
||||
cmp r4, r5
|
||||
ble _0806EA0A
|
||||
adds r4, r5, #0
|
||||
_0806EA0A:
|
||||
movs r1, #0
|
||||
ldrsh r0, [r7, r1]
|
||||
cmp r4, r0
|
||||
beq _0806EA28
|
||||
mov r0, sb
|
||||
adds r1, r4, #0
|
||||
bl sub_0806EABC
|
||||
ldrh r1, [r6]
|
||||
movs r2, #0
|
||||
ldrsh r0, [r6, r2]
|
||||
cmp r0, #0
|
||||
ble _0806EA28
|
||||
subs r0, r1, #1
|
||||
strh r0, [r6]
|
||||
_0806EA28:
|
||||
strh r4, [r7]
|
||||
ldr r0, _0806EA74 @ =gInput
|
||||
ldrh r1, [r0, #2]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0806EA86
|
||||
mov r5, sb
|
||||
adds r5, #0x6a
|
||||
lsls r0, r4, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
movs r2, #0
|
||||
ldrsh r1, [r5, r2]
|
||||
cmp r0, r1
|
||||
bne _0806EA4E
|
||||
movs r1, #0
|
||||
ldrsh r0, [r6, r1]
|
||||
cmp r0, #0
|
||||
bne _0806EA7C
|
||||
_0806EA4E:
|
||||
ldr r4, _0806EA78 @ =gUnk_081145E4
|
||||
movs r2, #0
|
||||
ldrsh r0, [r7, r2]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r4
|
||||
movs r1, #0
|
||||
ldrsh r0, [r0, r1]
|
||||
bl SoundReq
|
||||
ldrh r0, [r7]
|
||||
strh r0, [r5]
|
||||
movs r2, #0
|
||||
ldrsh r0, [r7, r2]
|
||||
lsls r0, r0, #2
|
||||
adds r4, #2
|
||||
adds r0, r0, r4
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r6]
|
||||
b _0806EA86
|
||||
.align 2, 0
|
||||
_0806EA74: .4byte gInput
|
||||
_0806EA78: .4byte gUnk_081145E4
|
||||
_0806EA7C:
|
||||
ldr r0, _0806EAB4 @ =0x80010000
|
||||
bl SoundReq
|
||||
movs r0, #0
|
||||
strh r0, [r5]
|
||||
_0806EA86:
|
||||
ldrh r1, [r6]
|
||||
movs r2, #0
|
||||
ldrsh r0, [r6, r2]
|
||||
cmp r0, #0
|
||||
ble _0806EAA4
|
||||
subs r0, r1, #1
|
||||
movs r1, #0
|
||||
strh r0, [r6]
|
||||
lsls r0, r0, #0x10
|
||||
cmp r0, #0
|
||||
bgt _0806EAA4
|
||||
mov r0, sb
|
||||
adds r0, #0x6a
|
||||
strh r1, [r0]
|
||||
strh r1, [r6]
|
||||
_0806EAA4:
|
||||
ldr r1, _0806EAB8 @ =gActiveScriptInfo
|
||||
movs r0, #0
|
||||
strb r0, [r1, #6]
|
||||
_0806EAAA:
|
||||
pop {r3, r4}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0806EAB4: .4byte 0x80010000
|
||||
_0806EAB8: .4byte gActiveScriptInfo
|
||||
.endif
|
||||
.syntax divided
|
||||
@@ -1,544 +0,0 @@
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r5, r0, #0
|
||||
ldr r6, _080707F0 @ =gPlayerState
|
||||
adds r3, r6, #0
|
||||
adds r3, #0xa8
|
||||
movs r4, #0
|
||||
strb r4, [r3]
|
||||
ldr r1, [r6, #0x30]
|
||||
movs r7, #0x10
|
||||
adds r0, r1, #0
|
||||
ands r0, r7
|
||||
mov ip, r6
|
||||
cmp r0, #0
|
||||
beq _08070818
|
||||
adds r2, r5, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x39
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
strb r0, [r2]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x42
|
||||
strb r4, [r0]
|
||||
movs r0, #0xa0
|
||||
lsls r0, r0, #1
|
||||
strh r0, [r5, #0x24]
|
||||
movs r0, #0x80
|
||||
strb r0, [r6, #6]
|
||||
strb r7, [r3]
|
||||
ldrb r0, [r5, #0x14]
|
||||
lsrs r0, r0, #1
|
||||
adds r0, #0x5c
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x58
|
||||
ldrb r1, [r1]
|
||||
cmp r0, r1
|
||||
bne _080707F8
|
||||
ldrh r0, [r5, #0x12]
|
||||
cmp r0, #2
|
||||
bne _080707F8
|
||||
ldr r0, _080707F4 @ =gPlayerEntity
|
||||
bl UpdateAnimationSingleFrame
|
||||
b _08070800
|
||||
.align 2, 0
|
||||
_080707F0: .4byte gPlayerState
|
||||
_080707F4: .4byte gPlayerEntity
|
||||
_080707F8:
|
||||
movs r0, #0x97
|
||||
lsls r0, r0, #2
|
||||
mov r1, ip
|
||||
strh r0, [r1, #8]
|
||||
_08070800:
|
||||
ldr r0, _08070814 @ =gPlayerEntity
|
||||
bl sub_0806F948
|
||||
bl ResetPlayer
|
||||
adds r0, r5, #0
|
||||
bl sub_08077698
|
||||
b _08070BE4
|
||||
.align 2, 0
|
||||
_08070814: .4byte gPlayerEntity
|
||||
_08070818:
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #5
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08070842
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x40
|
||||
movs r0, #0x1e
|
||||
strb r0, [r1]
|
||||
movs r0, #0xc
|
||||
strb r0, [r3]
|
||||
movs r1, #0
|
||||
movs r2, #0x24
|
||||
ldrsh r0, [r5, r2]
|
||||
cmp r0, #0
|
||||
bne _0807083A
|
||||
movs r1, #1
|
||||
_0807083A:
|
||||
adds r0, r5, #0
|
||||
bl sub_08070BEC
|
||||
b _08070BE4
|
||||
_08070842:
|
||||
movs r4, #0x80
|
||||
lsls r4, r4, #0xc
|
||||
ands r4, r1
|
||||
cmp r4, #0
|
||||
beq _08070852
|
||||
bl ResolvePlayerAnimation
|
||||
b _08070BE4
|
||||
_08070852:
|
||||
adds r0, r5, #0
|
||||
bl sub_080085B0
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x40
|
||||
strb r4, [r0]
|
||||
bl RunQueuedAction
|
||||
cmp r0, #0
|
||||
beq _08070868
|
||||
b _08070BE4
|
||||
_08070868:
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x26
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _080708AC
|
||||
ldrb r1, [r6, #2]
|
||||
movs r2, #0xc0
|
||||
adds r0, r2, #0
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _080708AC
|
||||
ldrb r0, [r6, #3]
|
||||
cmp r0, #0
|
||||
bne _0807088E
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x21
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _08070892
|
||||
_0807088E:
|
||||
strh r2, [r5, #0x24]
|
||||
b _080708AC
|
||||
_08070892:
|
||||
ldrb r0, [r6, #0x1b]
|
||||
cmp r0, #0
|
||||
beq _0807089C
|
||||
movs r0, #0xe0
|
||||
b _080708AA
|
||||
_0807089C:
|
||||
ldrb r0, [r6, #0x1c]
|
||||
cmp r0, #0
|
||||
beq _080708A6
|
||||
movs r0, #0x80
|
||||
b _080708AA
|
||||
_080708A6:
|
||||
movs r0, #0xa0
|
||||
lsls r0, r0, #1
|
||||
_080708AA:
|
||||
strh r0, [r5, #0x24]
|
||||
_080708AC:
|
||||
ldr r4, _08070918 @ =gPlayerState
|
||||
ldrb r0, [r4, #6]
|
||||
movs r1, #0x80
|
||||
orrs r1, r0
|
||||
strb r1, [r4, #6]
|
||||
ldr r0, [r4, #0x30]
|
||||
ldr r6, _0807091C @ =0x10000002
|
||||
ands r0, r6
|
||||
cmp r0, #0
|
||||
bne _080708C4
|
||||
bl UpdateFloorType
|
||||
_080708C4:
|
||||
bl RunQueuedAction
|
||||
cmp r0, #0
|
||||
beq _080708CE
|
||||
b _08070BE4
|
||||
_080708CE:
|
||||
ldrb r0, [r4, #2]
|
||||
cmp r0, #0
|
||||
beq _080708D6
|
||||
b _080709D8
|
||||
_080708D6:
|
||||
ldr r0, [r4, #0x30]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #3
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080708E4
|
||||
b _080709D8
|
||||
_080708E4:
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x42
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _08070924
|
||||
bl sub_080782C0
|
||||
cmp r0, #0
|
||||
beq _08070924
|
||||
ldr r0, _08070920 @ =gRoomVars
|
||||
ldrb r0, [r0, #6]
|
||||
cmp r0, #0
|
||||
bne _08070902
|
||||
bl ResetPlayer
|
||||
_08070902:
|
||||
ldr r0, [r4, #0x30]
|
||||
ands r0, r6
|
||||
cmp r0, #0
|
||||
beq _0807090C
|
||||
b _08070BE4
|
||||
_0807090C:
|
||||
bl UpdateFloorType
|
||||
bl RunQueuedAction
|
||||
b _08070BE4
|
||||
.align 2, 0
|
||||
_08070918: .4byte gPlayerState
|
||||
_0807091C: .4byte 0x10000002
|
||||
_08070920: .4byte gRoomVars
|
||||
_08070924:
|
||||
ldr r0, _0807094C @ =gPlayerState
|
||||
ldr r1, [r0, #0x30]
|
||||
ldr r2, _08070950 @ =0x00041635
|
||||
ands r1, r2
|
||||
adds r0, #0xaa
|
||||
ldrb r0, [r0]
|
||||
orrs r1, r0
|
||||
cmp r1, #0
|
||||
bne _080709D8
|
||||
bl UpdatePlayerCollision
|
||||
cmp r0, #0xf
|
||||
bls _08070940
|
||||
b _08070BE4
|
||||
_08070940:
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _08070954 @ =_08070958
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_0807094C: .4byte gPlayerState
|
||||
_08070950: .4byte 0x00041635
|
||||
_08070954: .4byte _08070958
|
||||
_08070958: @ jump table
|
||||
.4byte _08070998 @ case 0
|
||||
.4byte _08070BE4 @ case 1
|
||||
.4byte _08070BE4 @ case 2
|
||||
.4byte _080709A8 @ case 3
|
||||
.4byte _080709C2 @ case 4
|
||||
.4byte _08070BE4 @ case 5
|
||||
.4byte _08070BE4 @ case 6
|
||||
.4byte _08070BE4 @ case 7
|
||||
.4byte _08070BE4 @ case 8
|
||||
.4byte _08070BE4 @ case 9
|
||||
.4byte _08070BE4 @ case 10
|
||||
.4byte _08070BE4 @ case 11
|
||||
.4byte _08070BE4 @ case 12
|
||||
.4byte _08070BE4 @ case 13
|
||||
.4byte _08070BE4 @ case 14
|
||||
.4byte _080709B4 @ case 15
|
||||
_08070998:
|
||||
ldr r0, _080709A4 @ =gPlayerState
|
||||
ldrb r1, [r0, #6]
|
||||
movs r2, #0x80
|
||||
eors r1, r2
|
||||
strb r1, [r0, #6]
|
||||
b _080709D8
|
||||
.align 2, 0
|
||||
_080709A4: .4byte gPlayerState
|
||||
_080709A8:
|
||||
ldr r1, _080709B0 @ =gPlayerState
|
||||
movs r0, #0x80
|
||||
strb r0, [r1, #6]
|
||||
b _080709D8
|
||||
.align 2, 0
|
||||
_080709B0: .4byte gPlayerState
|
||||
_080709B4:
|
||||
ldrb r1, [r5, #0x10]
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
strb r0, [r5, #0x10]
|
||||
bl sub_080797EC
|
||||
b _08070BE4
|
||||
_080709C2:
|
||||
ldr r0, _080709D4 @ =gPlayerState
|
||||
ldrb r1, [r0, #6]
|
||||
movs r2, #0x80
|
||||
eors r1, r2
|
||||
strb r1, [r0, #6]
|
||||
bl sub_080797EC
|
||||
b _08070BE4
|
||||
.align 2, 0
|
||||
_080709D4: .4byte gPlayerState
|
||||
_080709D8:
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x3c
|
||||
movs r0, #0
|
||||
strb r0, [r1]
|
||||
adds r6, r5, #0
|
||||
adds r6, #0x29
|
||||
ldrb r1, [r6]
|
||||
subs r0, #8
|
||||
ands r0, r1
|
||||
movs r1, #4
|
||||
orrs r0, r1
|
||||
strb r0, [r6]
|
||||
adds r0, r5, #0
|
||||
bl sub_0807AC54
|
||||
cmp r0, #0
|
||||
beq _080709FC
|
||||
b _08070BE4
|
||||
_080709FC:
|
||||
adds r0, r5, #0
|
||||
bl sub_08077698
|
||||
bl RunQueuedAction
|
||||
cmp r0, #0
|
||||
beq _08070A0C
|
||||
b _08070BE4
|
||||
_08070A0C:
|
||||
bl sub_080792D8
|
||||
ldr r4, _08070A78 @ =gPlayerState
|
||||
ldrb r1, [r4, #2]
|
||||
ldrb r0, [r4, #0xa]
|
||||
orrs r0, r1
|
||||
cmp r0, #0
|
||||
bne _08070A32
|
||||
bl sub_08079550
|
||||
cmp r0, #0
|
||||
beq _08070A26
|
||||
b _08070BE4
|
||||
_08070A26:
|
||||
adds r0, r5, #0
|
||||
bl sub_08078F74
|
||||
cmp r0, #0
|
||||
beq _08070A32
|
||||
b _08070BE4
|
||||
_08070A32:
|
||||
adds r0, r5, #0
|
||||
bl DoJump
|
||||
bl RunQueuedAction
|
||||
cmp r0, #0
|
||||
beq _08070A42
|
||||
b _08070BE4
|
||||
_08070A42:
|
||||
ldrb r2, [r4, #2]
|
||||
cmp r2, #0
|
||||
beq _08070AAC
|
||||
adds r1, r4, #0
|
||||
adds r1, #0xa8
|
||||
movs r0, #0x14
|
||||
strb r0, [r1]
|
||||
movs r0, #0xc0
|
||||
ands r0, r2
|
||||
cmp r0, #0
|
||||
bne _08070A80
|
||||
movs r0, #7
|
||||
ands r0, r2
|
||||
cmp r0, #3
|
||||
beq _08070A7C
|
||||
movs r0, #0x20
|
||||
ands r0, r2
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _08070A7C
|
||||
strh r0, [r5, #0x24]
|
||||
adds r0, r5, #0
|
||||
bl sub_08008926
|
||||
b _08070A80
|
||||
.align 2, 0
|
||||
_08070A78: .4byte gPlayerState
|
||||
_08070A7C:
|
||||
movs r0, #0xff
|
||||
strb r0, [r5, #0x15]
|
||||
_08070A80:
|
||||
bl UpdatePlayerMovement
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r1, [r0]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08070A94
|
||||
b _08070BE4
|
||||
_08070A94:
|
||||
ldr r0, _08070AA8 @ =gPlayerState
|
||||
ldrb r0, [r0, #4]
|
||||
cmp r0, #0
|
||||
beq _08070A9E
|
||||
b _08070BE4
|
||||
_08070A9E:
|
||||
adds r0, r5, #0
|
||||
bl UpdateAnimationSingleFrame
|
||||
b _08070BE4
|
||||
.align 2, 0
|
||||
_08070AA8: .4byte gPlayerState
|
||||
_08070AAC:
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x42
|
||||
ldrb r1, [r0]
|
||||
adds r7, r0, #0
|
||||
cmp r1, #0
|
||||
beq _08070ABA
|
||||
b _08070BBC
|
||||
_08070ABA:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x26
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _08070AD4
|
||||
adds r1, r4, #0
|
||||
adds r1, #0xa8
|
||||
movs r0, #7
|
||||
strb r0, [r1]
|
||||
adds r0, r5, #0
|
||||
bl sub_0807ACCC
|
||||
b _08070B56
|
||||
_08070AD4:
|
||||
ldr r0, [r4, #0x30]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #0x12
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08070AEE
|
||||
ldrb r0, [r6]
|
||||
movs r1, #0x39
|
||||
rsbs r1, r1, #0
|
||||
ands r1, r0
|
||||
movs r0, #8
|
||||
orrs r1, r0
|
||||
strb r1, [r6]
|
||||
_08070AEE:
|
||||
ldrb r1, [r4, #0x1e]
|
||||
movs r0, #0x40
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08070B00
|
||||
adds r0, r5, #0
|
||||
bl sub_08008AA0
|
||||
b _08070B1E
|
||||
_08070B00:
|
||||
ldrb r0, [r4, #0x12]
|
||||
cmp r0, #0x17
|
||||
bne _08070B0E
|
||||
adds r0, r5, #0
|
||||
bl sub_08008926
|
||||
b _08070B1E
|
||||
_08070B0E:
|
||||
cmp r0, #1
|
||||
bne _08070B18
|
||||
bl ResetPlayerVelocity
|
||||
b _08070B1E
|
||||
_08070B18:
|
||||
adds r0, r5, #0
|
||||
bl sub_08008AA0
|
||||
_08070B1E:
|
||||
ldr r2, _08070BB8 @ =gPlayerState
|
||||
ldrb r1, [r2, #0x1b]
|
||||
movs r0, #0x10
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08070B56
|
||||
ldrb r3, [r2, #0xd]
|
||||
strb r3, [r5, #0x15]
|
||||
ldr r0, [r2, #0x30]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #3
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08070B56
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #2
|
||||
strh r0, [r5, #0x24]
|
||||
movs r0, #0x80
|
||||
ands r0, r3
|
||||
cmp r0, #0
|
||||
beq _08070B52
|
||||
ldrb r1, [r5, #0x14]
|
||||
movs r0, #0xe
|
||||
ands r0, r1
|
||||
lsls r0, r0, #2
|
||||
strb r0, [r5, #0x15]
|
||||
_08070B52:
|
||||
bl DeleteClones
|
||||
_08070B56:
|
||||
movs r4, #0
|
||||
ldr r3, _08070BB8 @ =gPlayerState
|
||||
ldrb r2, [r3, #7]
|
||||
ldrb r0, [r5, #0x15]
|
||||
orrs r0, r2
|
||||
movs r1, #0x80
|
||||
ands r0, r1
|
||||
ldrb r1, [r3, #0xa]
|
||||
orrs r0, r1
|
||||
cmp r0, #0
|
||||
bne _08070B8E
|
||||
movs r0, #0x10
|
||||
ands r0, r2
|
||||
cmp r0, #0
|
||||
bne _08070B8E
|
||||
movs r4, #1
|
||||
ldrb r0, [r7]
|
||||
cmp r0, #0
|
||||
bne _08070B8E
|
||||
ldrb r1, [r3, #0x1e]
|
||||
movs r0, #0x40
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08070B8C
|
||||
ldrb r0, [r3, #0x12]
|
||||
cmp r0, #0x17
|
||||
beq _08070B8E
|
||||
_08070B8C:
|
||||
movs r4, #3
|
||||
_08070B8E:
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
bl sub_08070BEC
|
||||
adds r0, r5, #0
|
||||
bl sub_08008AC6
|
||||
ldrb r0, [r7]
|
||||
cmp r0, #0
|
||||
bne _08070BE4
|
||||
ldr r1, _08070BB8 @ =gPlayerState
|
||||
ldrb r0, [r1, #0xb]
|
||||
cmp r0, #0
|
||||
bne _08070BE4
|
||||
ldrb r0, [r1, #0x12]
|
||||
cmp r0, #0x1e
|
||||
beq _08070BE4
|
||||
adds r0, r5, #0
|
||||
bl sub_0806F948
|
||||
b _08070BE4
|
||||
.align 2, 0
|
||||
_08070BB8: .4byte gPlayerState
|
||||
_08070BBC:
|
||||
ldr r0, [r4, #0x2c]
|
||||
cmp r0, #0
|
||||
bne _08070BC8
|
||||
adds r0, r5, #0
|
||||
bl UpdateAnimationSingleFrame
|
||||
_08070BC8:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x26
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _08070BE4
|
||||
ldr r0, _08070BE8 @ =gRoomTransition
|
||||
ldr r0, [r0]
|
||||
movs r1, #7
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08070BE4
|
||||
adds r0, r5, #0
|
||||
bl CreateWaterTrace
|
||||
_08070BE4:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_08070BE8: .4byte gRoomTransition
|
||||
.syntax divided
|
||||
@@ -141,7 +141,7 @@ _08070280:
|
||||
adds r4, r5, #0
|
||||
adds r4, #0x38
|
||||
ldrb r1, [r4]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
str r0, [r5, #0x7c]
|
||||
adds r0, r5, #0
|
||||
movs r1, #0x14
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x38
|
||||
ldrb r1, [r1]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r0, #0
|
||||
ldr r0, _08070408 @ =0x00004021
|
||||
cmp r1, r0
|
||||
|
||||
@@ -1,3 +1,108 @@
|
||||
.ifdef EU
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r3, _0801B564 @ =gPlayerState
|
||||
str r4, [r3, #0x2c]
|
||||
movs r2, #0
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldr r0, _0801B568 @ =gUnk_081271CC
|
||||
str r0, [r4, #0x48]
|
||||
movs r0, #0xff
|
||||
strb r0, [r4, #0x1e]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x80
|
||||
strb r2, [r0]
|
||||
ldr r5, _0801B56C @ =gPlayerEntity
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x60
|
||||
ldrh r1, [r0]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x60
|
||||
strh r1, [r0]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x58
|
||||
movs r0, #0xb
|
||||
strb r0, [r1]
|
||||
str r5, [r4, #0x50]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x86
|
||||
strh r2, [r0]
|
||||
ldrb r1, [r4, #0x14]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0801B550
|
||||
ldrb r0, [r5, #0x18]
|
||||
lsls r0, r0, #0x19
|
||||
lsrs r0, r0, #0x1f
|
||||
movs r1, #1
|
||||
bics r1, r0
|
||||
lsls r1, r1, #6
|
||||
ldrb r2, [r4, #0x18]
|
||||
movs r0, #0x41
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
_0801B550:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x68
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0xc
|
||||
bne _0801B570
|
||||
movs r0, #0xa0
|
||||
lsls r0, r0, #2
|
||||
strh r0, [r4, #0x24]
|
||||
movs r0, #0x3c
|
||||
b _0801B578
|
||||
.align 2, 0
|
||||
_0801B564: .4byte gPlayerState
|
||||
_0801B568: .4byte gUnk_081271CC
|
||||
_0801B56C: .4byte gPlayerEntity
|
||||
_0801B570:
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #2
|
||||
strh r0, [r4, #0x24]
|
||||
movs r0, #0x1e
|
||||
_0801B578:
|
||||
strb r0, [r4, #0xe]
|
||||
ldrb r1, [r3, #0xd]
|
||||
movs r0, #0xd
|
||||
ldrsb r0, [r3, r0]
|
||||
cmp r0, #0
|
||||
blt _0801B588
|
||||
strb r1, [r4, #0x15]
|
||||
b _0801B58E
|
||||
_0801B588:
|
||||
ldrb r0, [r4, #0x14]
|
||||
lsls r0, r0, #2
|
||||
strb r0, [r4, #0x15]
|
||||
_0801B58E:
|
||||
ldrb r0, [r4, #0x15]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x83
|
||||
strb r0, [r1]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x38
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #2
|
||||
bne _0801B5A4
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xb]
|
||||
_0801B5A4:
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
movs r2, #3
|
||||
bl LoadSwapGFX
|
||||
adds r0, r4, #0
|
||||
bl sub_0801766C
|
||||
adds r0, r4, #0
|
||||
bl sub_0801B584
|
||||
pop {r4, r5, pc}
|
||||
.syntax divided
|
||||
.else
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
@@ -95,3 +200,4 @@ _0801B56C:
|
||||
bl sub_0801B584
|
||||
pop {r4, r5, pc}
|
||||
.syntax divided
|
||||
.endif
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
movs r5, #0
|
||||
ldrh r1, [r0, #0x2e]
|
||||
subs r1, #8
|
||||
lsls r1, r1, #0x10
|
||||
lsrs r1, r1, #0x10
|
||||
mov ip, r1
|
||||
ldrh r1, [r0, #0x32]
|
||||
subs r1, #8
|
||||
lsls r1, r1, #0x10
|
||||
lsrs r7, r1, #0x10
|
||||
movs r4, #0
|
||||
ldr r1, _080889A0 @ =gRoomVars
|
||||
ldr r2, _080889A4 @ =sSpriteOffsets
|
||||
mov r8, r2
|
||||
adds r3, r1, #0
|
||||
adds r3, #0xac
|
||||
adds r6, r0, #0
|
||||
adds r6, #0x72
|
||||
_08088962:
|
||||
ldr r2, [r3]
|
||||
cmp r2, #0
|
||||
beq _08088990
|
||||
ldrh r0, [r2, #0x2e]
|
||||
mov r1, ip
|
||||
subs r0, r0, r1
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
cmp r0, #0x10
|
||||
bhi _08088990
|
||||
ldrh r0, [r2, #0x32]
|
||||
subs r0, r0, r7
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
cmp r0, #0x10
|
||||
bhi _08088990
|
||||
ldrb r0, [r6]
|
||||
add r0, r8
|
||||
ldrb r1, [r0]
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x63
|
||||
strb r1, [r0]
|
||||
adds r5, #1
|
||||
_08088990:
|
||||
adds r3, #4
|
||||
adds r4, #1
|
||||
cmp r4, #7
|
||||
bls _08088962
|
||||
adds r0, r5, #0
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_080889A0: .4byte gRoomVars
|
||||
_080889A4: .4byte sSpriteOffsets
|
||||
.syntax divided
|
||||
@@ -1,10 +1,4 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
|
||||
@@ -1,3 +1,212 @@
|
||||
.ifdef EU
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
sub sp, #0x20
|
||||
adds r6, r0, #0
|
||||
adds r3, r1, #0
|
||||
ldr r0, _08054138 @ =gRoomVars
|
||||
ldrb r0, [r0, #2]
|
||||
cmp r0, #1
|
||||
bne _08054126
|
||||
b _080542CC
|
||||
_08054126:
|
||||
ldr r2, _0805413C @ =gUnk_08001A1C
|
||||
movs r4, #0
|
||||
cmp r3, #0x18
|
||||
bhi _080541BC
|
||||
lsls r0, r3, #2
|
||||
ldr r1, _08054140 @ =_08054144
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08054138: .4byte gRoomVars
|
||||
_0805413C: .4byte gUnk_08001A1C
|
||||
_08054140: .4byte _08054144
|
||||
_08054144: @ jump table
|
||||
.4byte _080541BC @ case 0
|
||||
.4byte _080541A8 @ case 1
|
||||
.4byte _080541A8 @ case 2
|
||||
.4byte _080541A8 @ case 3
|
||||
.4byte _080541A8 @ case 4
|
||||
.4byte _080541A8 @ case 5
|
||||
.4byte _080541A8 @ case 6
|
||||
.4byte _080541A8 @ case 7
|
||||
.4byte _080541A8 @ case 8
|
||||
.4byte _080541A8 @ case 9
|
||||
.4byte _080541A8 @ case 10
|
||||
.4byte _080541A8 @ case 11
|
||||
.4byte _080541A8 @ case 12
|
||||
.4byte _080541BC @ case 13
|
||||
.4byte _080541BC @ case 14
|
||||
.4byte _080541BA @ case 15
|
||||
.4byte _080541B4 @ case 16
|
||||
.4byte _080541B4 @ case 17
|
||||
.4byte _080541B4 @ case 18
|
||||
.4byte _080541B4 @ case 19
|
||||
.4byte _080541B4 @ case 20
|
||||
.4byte _080541B4 @ case 21
|
||||
.4byte _080541B4 @ case 22
|
||||
.4byte _080541B4 @ case 23
|
||||
.4byte _080541B4 @ case 24
|
||||
_080541A8:
|
||||
lsls r1, r3, #5
|
||||
ldr r0, _080541B0 @ =gUnk_0800137C
|
||||
adds r4, r1, r0
|
||||
b _080541BC
|
||||
.align 2, 0
|
||||
_080541B0: .4byte gUnk_0800137C
|
||||
_080541B4:
|
||||
lsls r1, r3, #5
|
||||
ldr r0, _080541D0 @ =gUnk_0800161C
|
||||
adds r2, r1, r0
|
||||
_080541BA:
|
||||
ldr r4, _080541D4 @ =gUnk_02034398
|
||||
_080541BC:
|
||||
cmp r4, #0
|
||||
bne _080541C2
|
||||
b _080542CC
|
||||
_080541C2:
|
||||
ldr r0, _080541D8 @ =gSave
|
||||
adds r0, #0xb3
|
||||
ldrb r1, [r0]
|
||||
cmp r1, #0
|
||||
bne _080541E0
|
||||
ldr r3, _080541DC @ =gUnk_08001A1C
|
||||
b _080541E6
|
||||
.align 2, 0
|
||||
_080541D0: .4byte gUnk_0800161C
|
||||
_080541D4: .4byte gUnk_02034398
|
||||
_080541D8: .4byte gSave
|
||||
_080541DC: .4byte gUnk_08001A1C
|
||||
_080541E0:
|
||||
lsls r1, r1, #5
|
||||
ldr r0, _080542BC @ =0x080014E4
|
||||
adds r3, r1, r0
|
||||
_080541E6:
|
||||
mov r0, sp
|
||||
adds r1, r4, #0
|
||||
bl sub_08000F14
|
||||
ldr r4, _080542C0 @ =gSave
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xaa
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #8
|
||||
bhi _08054204
|
||||
mov r1, sp
|
||||
mov r0, sp
|
||||
ldrh r0, [r0, #8]
|
||||
adds r0, #5
|
||||
strh r0, [r1, #8]
|
||||
_08054204:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xac
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _08054218
|
||||
mov r1, sp
|
||||
mov r0, sp
|
||||
ldrh r0, [r0, #0xc]
|
||||
adds r0, #3
|
||||
strh r0, [r1, #0xc]
|
||||
_08054218:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xad
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _0805422C
|
||||
mov r1, sp
|
||||
mov r0, sp
|
||||
ldrh r0, [r0, #0xe]
|
||||
adds r0, #3
|
||||
strh r0, [r1, #0xe]
|
||||
_0805422C:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xc0
|
||||
ldrh r0, [r0]
|
||||
cmp r0, #0xa
|
||||
bhi _08054240
|
||||
mov r1, sp
|
||||
mov r0, sp
|
||||
ldrh r0, [r0, #4]
|
||||
adds r0, #1
|
||||
strh r0, [r1, #4]
|
||||
_08054240:
|
||||
ldr r2, _080542C4 @ =gUnk_08001A1C
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xbb
|
||||
ldrb r0, [r0]
|
||||
adds r3, r2, #0
|
||||
cmp r0, #0
|
||||
beq _08054250
|
||||
adds r2, #0x20
|
||||
_08054250:
|
||||
movs r1, #0x8b
|
||||
lsls r1, r1, #1
|
||||
adds r0, r4, r1
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _0805425E
|
||||
adds r3, #0x40
|
||||
_0805425E:
|
||||
mov r0, sp
|
||||
mov r1, sp
|
||||
bl sub_08000F2C
|
||||
adds r4, r0, #0
|
||||
bl Random
|
||||
adds r2, r0, #0
|
||||
asrs r5, r2, #0x18
|
||||
movs r0, #0xf
|
||||
ands r5, r0
|
||||
adds r0, r2, #0
|
||||
adds r1, r4, #0
|
||||
bl __modsi3
|
||||
adds r2, r0, #0
|
||||
movs r3, #0
|
||||
lsls r0, r5, #1
|
||||
add r0, sp
|
||||
movs r4, #0
|
||||
ldrsh r1, [r0, r4]
|
||||
cmp r1, r2
|
||||
bgt _080542A6
|
||||
movs r4, #0xf
|
||||
_0805428E:
|
||||
adds r3, #1
|
||||
adds r5, #1
|
||||
ands r5, r4
|
||||
cmp r3, #0xf
|
||||
bhi _080542A6
|
||||
lsls r0, r5, #1
|
||||
add r0, sp
|
||||
movs r7, #0
|
||||
ldrsh r0, [r0, r7]
|
||||
adds r1, r1, r0
|
||||
cmp r1, r2
|
||||
ble _0805428E
|
||||
_080542A6:
|
||||
ldr r0, _080542C8 @ =gUnk_080FE1B4
|
||||
adds r0, r5, r0
|
||||
ldrb r1, [r0]
|
||||
cmp r1, #0
|
||||
beq _080542CC
|
||||
adds r0, r6, #0
|
||||
movs r2, #0
|
||||
bl CreateItemDrop
|
||||
b _080542CE
|
||||
.align 2, 0
|
||||
_080542BC: .4byte 0x080014E4
|
||||
_080542C0: .4byte gSave
|
||||
_080542C4: .4byte gUnk_08001A1C
|
||||
_080542C8: .4byte gUnk_080FE1B4
|
||||
_080542CC:
|
||||
movs r0, #0
|
||||
_080542CE:
|
||||
add sp, #0x20
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
|
||||
.syntax divided
|
||||
.else
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
sub sp, #0x20
|
||||
@@ -216,3 +425,4 @@ _0805474E:
|
||||
.align 2, 0
|
||||
|
||||
.syntax divided
|
||||
.endif
|
||||
|
||||
@@ -1,65 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
sub sp, #4
|
||||
ldr r7, _0806F114 @ =gEntityLists + 56
|
||||
ldr r5, [r7, #4]
|
||||
movs r0, #0
|
||||
cmp r5, r7
|
||||
beq _0806F0BA
|
||||
_0806F0B2:
|
||||
adds r0, #1
|
||||
ldr r5, [r5, #4]
|
||||
cmp r5, r7
|
||||
bne _0806F0B2
|
||||
_0806F0BA:
|
||||
cmp r0, #1
|
||||
bls _0806F10E
|
||||
ldr r5, [r7, #4]
|
||||
cmp r5, r7
|
||||
beq _0806F10E
|
||||
movs r2, #1
|
||||
_0806F0C6:
|
||||
ldrb r1, [r5, #0x10]
|
||||
adds r0, r2, #0
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0806F108
|
||||
ldrb r1, [r5, #0x17]
|
||||
adds r0, r2, #0
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0806F108
|
||||
ldr r4, [r5, #4]
|
||||
cmp r4, r7
|
||||
beq _0806F108
|
||||
movs r6, #1
|
||||
_0806F0E2:
|
||||
ldrb r1, [r4, #0x10]
|
||||
adds r0, r6, #0
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0806F102
|
||||
ldrb r1, [r4, #0x17]
|
||||
adds r0, r6, #0
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0806F102
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
str r2, [sp]
|
||||
bl sub_08004484
|
||||
ldr r2, [sp]
|
||||
_0806F102:
|
||||
ldr r4, [r4, #4]
|
||||
cmp r4, r7
|
||||
bne _0806F0E2
|
||||
_0806F108:
|
||||
ldr r5, [r5, #4]
|
||||
cmp r5, r7
|
||||
bne _0806F0C6
|
||||
_0806F10E:
|
||||
add sp, #4
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0806F114: .4byte gEntityLists + 56
|
||||
.syntax divided
|
||||
@@ -1,11 +1,4 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
|
||||
@@ -1,76 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
ldr r1, _080AD948 @ =gMain
|
||||
ldrb r0, [r1, #0xb]
|
||||
adds r2, r0, #0
|
||||
cmp r2, #0
|
||||
bne _080AD958
|
||||
ldr r1, _080AD94C @ =gOAMControls
|
||||
movs r3, #0xa4
|
||||
lsls r3, r3, #3
|
||||
adds r0, r1, r3
|
||||
strb r2, [r0]
|
||||
ldr r3, _080AD950 @ =0x00000664
|
||||
adds r0, r1, r3
|
||||
strb r2, [r0]
|
||||
movs r3, #0xf5
|
||||
lsls r3, r3, #3
|
||||
adds r0, r1, r3
|
||||
strb r2, [r0]
|
||||
ldr r3, _080AD954 @ =0x000008EC
|
||||
adds r0, r1, r3
|
||||
strb r2, [r0]
|
||||
adds r4, r1, #0
|
||||
b _080AD95E
|
||||
.align 2, 0
|
||||
_080AD948: .4byte gMain
|
||||
_080AD94C: .4byte gOAMControls
|
||||
_080AD950: .4byte 0x00000664
|
||||
_080AD954: .4byte 0x000008EC
|
||||
_080AD958:
|
||||
subs r0, #1
|
||||
strb r0, [r1, #0xb]
|
||||
ldr r4, _080AD9A8 @ =gOAMControls
|
||||
_080AD95E:
|
||||
ldrb r1, [r4, #3]
|
||||
movs r0, #0x80
|
||||
subs r2, r0, r1
|
||||
cmp r2, #0
|
||||
ble _080AD980
|
||||
lsls r1, r1, #3
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x20
|
||||
adds r1, r1, r0
|
||||
movs r3, #0xa8
|
||||
lsls r3, r3, #2
|
||||
adds r0, r3, #0
|
||||
_080AD976:
|
||||
strh r0, [r1]
|
||||
adds r1, #8
|
||||
subs r2, #1
|
||||
cmp r2, #0
|
||||
bne _080AD976
|
||||
_080AD980:
|
||||
adds r1, r4, #0
|
||||
ldr r0, _080AD9AC @ =0x00000427
|
||||
adds r2, r1, r0
|
||||
ldrb r0, [r2]
|
||||
cmp r0, #0
|
||||
beq _080AD9A0
|
||||
movs r0, #0
|
||||
strb r0, [r2]
|
||||
movs r2, #0x84
|
||||
lsls r2, r2, #3
|
||||
adds r0, r1, r2
|
||||
adds r1, #0x26
|
||||
movs r2, #0x20
|
||||
movs r3, #8
|
||||
bl ObjAffineSet
|
||||
_080AD9A0:
|
||||
movs r0, #1
|
||||
strb r0, [r4]
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_080AD9A8: .4byte gOAMControls
|
||||
_080AD9AC: .4byte 0x00000427
|
||||
.syntax divided
|
||||
@@ -1,11 +1,4 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
push {r4, lr}
|
||||
adds r3, r0, #0
|
||||
ldrb r1, [r3, #0x15]
|
||||
|
||||
@@ -1,357 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start BigPushableLever
|
||||
BigPushableLever: @ 0x08098EE0
|
||||
push {lr}
|
||||
ldr r2, _08098EF4 @ =gUnk_081236DC
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08098EF4: .4byte gUnk_081236DC
|
||||
|
||||
thumb_func_start sub_08098EF8
|
||||
sub_08098EF8: @ 0x08098EF8
|
||||
push {lr}
|
||||
adds r3, r0, #0
|
||||
adds r3, #0x29
|
||||
ldrb r2, [r3]
|
||||
movs r1, #8
|
||||
rsbs r1, r1, #0
|
||||
ands r1, r2
|
||||
movs r2, #5
|
||||
orrs r1, r2
|
||||
strb r1, [r3]
|
||||
bl sub_08098FCC
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08098F14
|
||||
sub_08098F14: @ 0x08098F14
|
||||
push {r4, r5, r6, lr}
|
||||
adds r5, r0, #0
|
||||
bl sub_080990EC
|
||||
cmp r0, #0
|
||||
beq _08098F84
|
||||
movs r6, #0
|
||||
movs r0, #2
|
||||
strb r0, [r5, #0xc]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x74
|
||||
ldrh r0, [r0]
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x70
|
||||
ldrh r1, [r1]
|
||||
adds r4, r5, #0
|
||||
adds r4, #0x38
|
||||
ldrb r2, [r4]
|
||||
bl SetTile
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x76
|
||||
ldrh r0, [r0]
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x72
|
||||
ldrh r1, [r1]
|
||||
ldrb r2, [r4]
|
||||
bl SetTile
|
||||
movs r0, #0x99
|
||||
lsls r0, r0, #1
|
||||
bl EnqueueSFX
|
||||
adds r0, r5, #0
|
||||
movs r1, #0x1e
|
||||
bl RequestPriorityDuration
|
||||
bl sub_08079F8C
|
||||
cmp r0, #0
|
||||
beq _08098F84
|
||||
ldr r2, _08098F88 @ =gPlayerState
|
||||
movs r0, #0x98
|
||||
strb r0, [r2, #6]
|
||||
movs r0, #5
|
||||
strb r0, [r2, #0xc]
|
||||
ldr r0, [r2, #0x30]
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
str r0, [r2, #0x30]
|
||||
ldr r1, _08098F8C @ =gPlayerEntity
|
||||
strh r6, [r1, #0x2c]
|
||||
strh r6, [r1, #0x30]
|
||||
ldrb r0, [r1, #0x14]
|
||||
lsls r0, r0, #2
|
||||
strb r0, [r1, #0x15]
|
||||
_08098F84:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_08098F88: .4byte gPlayerState
|
||||
_08098F8C: .4byte gPlayerEntity
|
||||
|
||||
thumb_func_start sub_08098F90
|
||||
sub_08098F90: @ 0x08098F90
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl GetNextFrame
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08098FC8
|
||||
ldrb r0, [r4, #0xb]
|
||||
cmp r0, #0
|
||||
bne _08098FB8
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x86
|
||||
ldrh r0, [r0]
|
||||
bl SetFlag
|
||||
b _08098FC2
|
||||
_08098FB8:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x86
|
||||
ldrh r0, [r0]
|
||||
bl ClearFlag
|
||||
_08098FC2:
|
||||
adds r0, r4, #0
|
||||
bl sub_08098FCC
|
||||
_08098FC8:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08098FCC
|
||||
sub_08098FCC: @ 0x08098FCC
|
||||
push {lr}
|
||||
movs r1, #1
|
||||
strb r1, [r0, #0xc]
|
||||
adds r2, r0, #0
|
||||
adds r2, #0x84
|
||||
movs r1, #0x3c
|
||||
strh r1, [r2]
|
||||
bl sub_08098FE0
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start sub_08098FE0
|
||||
sub_08098FE0: @ 0x08098FE0
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r6, r0, #0
|
||||
adds r0, #0x86
|
||||
ldrh r0, [r0]
|
||||
bl CheckFlags
|
||||
cmp r0, #0
|
||||
bne _0809906C
|
||||
strb r0, [r6, #0xb]
|
||||
movs r0, #0x2e
|
||||
ldrsh r2, [r6, r0]
|
||||
ldr r1, _08099060 @ =gRoomControls
|
||||
ldrh r0, [r1, #6]
|
||||
subs r2, r2, r0
|
||||
asrs r2, r2, #4
|
||||
movs r3, #0x3f
|
||||
ands r2, r3
|
||||
movs r4, #0x32
|
||||
ldrsh r0, [r6, r4]
|
||||
ldrh r1, [r1, #8]
|
||||
adds r1, #0x10
|
||||
subs r0, r0, r1
|
||||
asrs r0, r0, #4
|
||||
ands r0, r3
|
||||
lsls r0, r0, #6
|
||||
orrs r2, r0
|
||||
adds r5, r6, #0
|
||||
adds r5, #0x70
|
||||
strh r2, [r5]
|
||||
subs r2, #0x40
|
||||
adds r7, r6, #0
|
||||
adds r7, #0x72
|
||||
strh r2, [r7]
|
||||
ldrh r0, [r5]
|
||||
adds r4, r6, #0
|
||||
adds r4, #0x38
|
||||
ldrb r1, [r4]
|
||||
bl sub_080001DA
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x74
|
||||
strh r0, [r1]
|
||||
ldrh r0, [r7]
|
||||
ldrb r1, [r4]
|
||||
bl sub_080001DA
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x76
|
||||
strh r0, [r1]
|
||||
ldr r0, _08099064 @ =0x00004057
|
||||
ldrh r1, [r5]
|
||||
ldrb r2, [r4]
|
||||
bl SetTile
|
||||
ldr r0, _08099068 @ =0x00004058
|
||||
ldrh r1, [r7]
|
||||
ldrb r2, [r4]
|
||||
bl SetTile
|
||||
adds r0, r6, #0
|
||||
movs r1, #1
|
||||
bl InitializeAnimation
|
||||
b _080990DC
|
||||
.align 2, 0
|
||||
_08099060: .4byte gRoomControls
|
||||
_08099064: .4byte 0x00004057
|
||||
_08099068: .4byte 0x00004058
|
||||
_0809906C:
|
||||
movs r0, #1
|
||||
strb r0, [r6, #0xb]
|
||||
movs r0, #0x2e
|
||||
ldrsh r1, [r6, r0]
|
||||
ldr r2, _080990E0 @ =gRoomControls
|
||||
ldrh r0, [r2, #6]
|
||||
adds r0, #0x10
|
||||
subs r1, r1, r0
|
||||
asrs r1, r1, #4
|
||||
movs r3, #0x3f
|
||||
ands r1, r3
|
||||
movs r4, #0x32
|
||||
ldrsh r0, [r6, r4]
|
||||
ldrh r2, [r2, #8]
|
||||
subs r0, r0, r2
|
||||
asrs r0, r0, #4
|
||||
ands r0, r3
|
||||
lsls r0, r0, #6
|
||||
orrs r1, r0
|
||||
adds r5, r6, #0
|
||||
adds r5, #0x70
|
||||
strh r1, [r5]
|
||||
subs r1, #1
|
||||
adds r7, r6, #0
|
||||
adds r7, #0x72
|
||||
strh r1, [r7]
|
||||
ldrh r0, [r5]
|
||||
adds r4, r6, #0
|
||||
adds r4, #0x38
|
||||
ldrb r1, [r4]
|
||||
bl sub_080001DA
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x74
|
||||
strh r0, [r1]
|
||||
ldrh r0, [r7]
|
||||
ldrb r1, [r4]
|
||||
bl sub_080001DA
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x76
|
||||
strh r0, [r1]
|
||||
ldr r0, _080990E4 @ =0x00004055
|
||||
ldrh r1, [r5]
|
||||
ldrb r2, [r4]
|
||||
bl SetTile
|
||||
ldr r0, _080990E8 @ =0x00004056
|
||||
ldrh r1, [r7]
|
||||
ldrb r2, [r4]
|
||||
bl SetTile
|
||||
adds r0, r6, #0
|
||||
movs r1, #0
|
||||
bl InitializeAnimation
|
||||
_080990DC:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_080990E0: .4byte gRoomControls
|
||||
_080990E4: .4byte 0x00004055
|
||||
_080990E8: .4byte 0x00004056
|
||||
|
||||
thumb_func_start sub_080990EC
|
||||
sub_080990EC: @ 0x080990EC
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
adds r6, r4, #0
|
||||
adds r6, #0x72
|
||||
ldrh r0, [r6]
|
||||
adds r5, r4, #0
|
||||
adds r5, #0x38
|
||||
ldrb r1, [r5]
|
||||
bl sub_080001DA
|
||||
ldr r1, _0809911C @ =0x00004059
|
||||
cmp r0, r1
|
||||
bne _08099140
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x84
|
||||
ldrh r0, [r1]
|
||||
subs r0, #1
|
||||
strh r0, [r1]
|
||||
lsls r0, r0, #0x10
|
||||
cmp r0, #0
|
||||
bne _08099120
|
||||
movs r0, #1
|
||||
b _08099156
|
||||
.align 2, 0
|
||||
_0809911C: .4byte 0x00004059
|
||||
_08099120:
|
||||
adds r0, r4, #0
|
||||
bl sub_08099158
|
||||
ldr r1, _0809913C @ =gUnk_081236E8
|
||||
ldrb r0, [r4, #0xb]
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r1
|
||||
ldrh r0, [r0]
|
||||
ldrh r1, [r6]
|
||||
ldrb r2, [r5]
|
||||
bl SetTile
|
||||
b _08099154
|
||||
.align 2, 0
|
||||
_0809913C: .4byte gUnk_081236E8
|
||||
_08099140:
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x84
|
||||
movs r2, #0
|
||||
movs r0, #0x3c
|
||||
strh r0, [r1]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x62
|
||||
strb r2, [r0]
|
||||
adds r0, #1
|
||||
strb r2, [r0]
|
||||
_08099154:
|
||||
movs r0, #0
|
||||
_08099156:
|
||||
pop {r4, r5, r6, pc}
|
||||
|
||||
thumb_func_start sub_08099158
|
||||
sub_08099158: @ 0x08099158
|
||||
push {r4, lr}
|
||||
adds r3, r0, #0
|
||||
ldrb r0, [r3, #0xb]
|
||||
ldr r4, _08099198 @ =gUnk_081236F4
|
||||
cmp r0, #0
|
||||
bne _08099166
|
||||
ldr r4, _0809919C @ =gUnk_081236EC
|
||||
_08099166:
|
||||
adds r2, r3, #0
|
||||
adds r2, #0x84
|
||||
ldrh r0, [r2]
|
||||
lsrs r0, r0, #2
|
||||
movs r1, #6
|
||||
ands r0, r1
|
||||
adds r4, r4, r0
|
||||
ldrb r0, [r4]
|
||||
adds r1, r3, #0
|
||||
adds r1, #0x62
|
||||
strb r0, [r1]
|
||||
ldrb r1, [r4, #1]
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x63
|
||||
strb r1, [r0]
|
||||
ldrh r1, [r2]
|
||||
movs r0, #3
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08099194
|
||||
ldr r0, _080991A0 @ =0x00000131
|
||||
bl EnqueueSFX
|
||||
_08099194:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08099198: .4byte gUnk_081236F4
|
||||
_0809919C: .4byte gUnk_081236EC
|
||||
_080991A0: .4byte 0x00000131
|
||||
@@ -190,7 +190,7 @@ sub_0808B3AC: @ 0x0808B3AC
|
||||
adds r5, r6, #0
|
||||
adds r5, #0x38
|
||||
ldrb r1, [r5]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x72
|
||||
strh r0, [r1]
|
||||
|
||||
@@ -432,20 +432,20 @@ _0808C510:
|
||||
adds r5, r4, #0
|
||||
adds r5, #0x38
|
||||
ldrb r1, [r5]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x78
|
||||
strh r0, [r1]
|
||||
ldrh r0, [r6]
|
||||
ldrb r1, [r5]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7a
|
||||
strh r0, [r1]
|
||||
ldrh r0, [r6]
|
||||
adds r0, #1
|
||||
ldrb r1, [r5]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7c
|
||||
strh r0, [r1]
|
||||
@@ -475,20 +475,20 @@ _0808C570:
|
||||
adds r5, r4, #0
|
||||
adds r5, #0x38
|
||||
ldrb r1, [r5]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x78
|
||||
strh r0, [r1]
|
||||
ldrh r0, [r6]
|
||||
ldrb r1, [r5]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7a
|
||||
strh r0, [r1]
|
||||
ldrh r0, [r6]
|
||||
adds r0, #0x40
|
||||
ldrb r1, [r5]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7c
|
||||
strh r0, [r1]
|
||||
|
||||
@@ -235,7 +235,7 @@ _08086428:
|
||||
ldrsh r1, [r6, r0]
|
||||
ldrb r2, [r6, #0x15]
|
||||
adds r0, r6, #0
|
||||
bl sub_0806F62C
|
||||
bl LinearMoveAngle
|
||||
b _0808654A
|
||||
_08086440:
|
||||
adds r0, r6, #0
|
||||
@@ -507,7 +507,7 @@ _0808663A:
|
||||
ldrsh r1, [r7, r0]
|
||||
ldrb r2, [r7, #0x15]
|
||||
adds r0, r7, #0
|
||||
bl sub_0806F62C
|
||||
bl LinearMoveAngle
|
||||
ldrb r0, [r7, #0x15]
|
||||
movs r1, #0x80
|
||||
eors r0, r1
|
||||
@@ -555,7 +555,7 @@ _0808663A:
|
||||
adds r0, r7, #0
|
||||
adds r1, r4, #0
|
||||
movs r3, #2
|
||||
bl sub_0806FCB8
|
||||
bl EntityWithinDistance
|
||||
cmp r0, #0
|
||||
beq _080866B8
|
||||
movs r0, #1
|
||||
|
||||
+1
-1
@@ -392,7 +392,7 @@ _0808D972:
|
||||
strh r0, [r4, #0x36]
|
||||
ldr r1, _0808D994 @ =gPlayerEntity
|
||||
adds r0, r4, #0
|
||||
bl sub_080177A0
|
||||
bl IsColliding
|
||||
cmp r0, #0
|
||||
beq _0808D992
|
||||
adds r0, r4, #0
|
||||
|
||||
@@ -151,7 +151,7 @@ sub_080A02CC: @ 0x080A02CC
|
||||
adds r0, r4, #0
|
||||
bl sub_080A0444
|
||||
adds r0, r4, #0
|
||||
bl sub_08017850
|
||||
bl IsCollidingPlayer
|
||||
cmp r0, #0
|
||||
beq _080A0342
|
||||
ldr r0, [r4, #0x54]
|
||||
|
||||
@@ -103,13 +103,13 @@ _0809207A:
|
||||
strh r2, [r7]
|
||||
ldrh r0, [r5]
|
||||
movs r1, #1
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x74
|
||||
strh r0, [r1]
|
||||
ldrh r0, [r7]
|
||||
movs r1, #1
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x76
|
||||
strh r0, [r1]
|
||||
|
||||
@@ -1,188 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start HittableLever
|
||||
HittableLever: @ 0x0808A6F4
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
adds r0, #0x3d
|
||||
movs r1, #0
|
||||
ldrsb r1, [r0, r1]
|
||||
cmp r1, #0
|
||||
bne _0808A706
|
||||
adds r0, #0x33
|
||||
strh r1, [r0]
|
||||
_0808A706:
|
||||
ldr r0, _0808A718 @ =gUnk_08121178
|
||||
ldrb r1, [r2, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r0
|
||||
ldr r1, [r1]
|
||||
adds r0, r2, #0
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0808A718: .4byte gUnk_08121178
|
||||
|
||||
thumb_func_start sub_0808A71C
|
||||
sub_0808A71C: @ 0x0808A71C
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
movs r5, #1
|
||||
strb r5, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x10]
|
||||
movs r0, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x10]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x3c
|
||||
movs r0, #7
|
||||
strb r0, [r1]
|
||||
adds r1, #3
|
||||
movs r0, #0x8f
|
||||
strb r0, [r1]
|
||||
subs r1, #4
|
||||
movs r0, #0xa
|
||||
strb r0, [r1]
|
||||
ldr r0, _0808A75C @ =gUnk_08121180
|
||||
str r0, [r4, #0x48]
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #0
|
||||
bne _0808A764
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x86
|
||||
ldrh r0, [r0]
|
||||
bl CheckFlags
|
||||
cmp r0, #0
|
||||
beq _0808A760
|
||||
strb r5, [r4, #0xa]
|
||||
b _0808A76E
|
||||
.align 2, 0
|
||||
_0808A75C: .4byte gUnk_08121180
|
||||
_0808A760:
|
||||
strb r0, [r4, #0xa]
|
||||
b _0808A76E
|
||||
_0808A764:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x86
|
||||
ldrh r0, [r0]
|
||||
bl SetFlag
|
||||
_0808A76E:
|
||||
adds r0, r4, #0
|
||||
bl sub_0808A7D8
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0808A778
|
||||
sub_0808A778: @ 0x0808A778
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
adds r0, #0x41
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0808A7D0
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x70
|
||||
ldrh r0, [r1]
|
||||
cmp r0, #0
|
||||
bne _0808A7D0
|
||||
movs r0, #1
|
||||
strh r0, [r1]
|
||||
ldrb r0, [r5, #0xa]
|
||||
movs r1, #1
|
||||
eors r0, r1
|
||||
strb r0, [r5, #0xa]
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x3d
|
||||
movs r0, #0xe8
|
||||
strb r0, [r1]
|
||||
adds r0, r5, #0
|
||||
bl sub_0808A7D8
|
||||
adds r4, r5, #0
|
||||
adds r4, #0x86
|
||||
ldrh r0, [r4]
|
||||
bl CheckFlags
|
||||
cmp r0, #0
|
||||
beq _0808A7C2
|
||||
ldrh r0, [r4]
|
||||
bl ClearFlag
|
||||
b _0808A7C8
|
||||
_0808A7C2:
|
||||
ldrh r0, [r4]
|
||||
bl SetFlag
|
||||
_0808A7C8:
|
||||
ldr r1, _0808A7D4 @ =0x00000117
|
||||
adds r0, r5, #0
|
||||
bl SoundReqClipped
|
||||
_0808A7D0:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0808A7D4: .4byte 0x00000117
|
||||
|
||||
thumb_func_start sub_0808A7D8
|
||||
sub_0808A7D8: @ 0x0808A7D8
|
||||
push {r4, r5, r6, lr}
|
||||
adds r5, r0, #0
|
||||
ldrb r0, [r5, #0xa]
|
||||
cmp r0, #0
|
||||
beq _0808A818
|
||||
movs r0, #0xde
|
||||
lsls r0, r0, #2
|
||||
movs r2, #0x2e
|
||||
ldrsh r1, [r5, r2]
|
||||
ldr r3, _0808A814 @ =gRoomControls
|
||||
ldrh r2, [r3, #6]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
movs r4, #0x3f
|
||||
ands r1, r4
|
||||
movs r6, #0x32
|
||||
ldrsh r2, [r5, r6]
|
||||
ldrh r3, [r3, #8]
|
||||
subs r2, r2, r3
|
||||
asrs r2, r2, #4
|
||||
ands r2, r4
|
||||
lsls r2, r2, #6
|
||||
orrs r1, r2
|
||||
adds r2, r5, #0
|
||||
adds r2, #0x38
|
||||
ldrb r2, [r2]
|
||||
bl sub_0807B7D8
|
||||
b _0808A844
|
||||
.align 2, 0
|
||||
_0808A814: .4byte gRoomControls
|
||||
_0808A818:
|
||||
ldr r0, _0808A848 @ =0x00000377
|
||||
movs r2, #0x2e
|
||||
ldrsh r1, [r5, r2]
|
||||
ldr r3, _0808A84C @ =gRoomControls
|
||||
ldrh r2, [r3, #6]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
movs r4, #0x3f
|
||||
ands r1, r4
|
||||
movs r6, #0x32
|
||||
ldrsh r2, [r5, r6]
|
||||
ldrh r3, [r3, #8]
|
||||
subs r2, r2, r3
|
||||
asrs r2, r2, #4
|
||||
ands r2, r4
|
||||
lsls r2, r2, #6
|
||||
orrs r1, r2
|
||||
adds r2, r5, #0
|
||||
adds r2, #0x38
|
||||
ldrb r2, [r2]
|
||||
bl sub_0807B7D8
|
||||
_0808A844:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0808A848: .4byte 0x00000377
|
||||
_0808A84C: .4byte gRoomControls
|
||||
File diff suppressed because it is too large
Load Diff
@@ -90,7 +90,7 @@ _0808CB70:
|
||||
movs r5, #0
|
||||
str r5, [r4, #0x34]
|
||||
adds r1, r4, #0
|
||||
bl ResolveEntityBelow
|
||||
bl SortEntityBelow
|
||||
ldrb r0, [r4, #0xd]
|
||||
cmp r0, #0
|
||||
beq _0808CB98
|
||||
|
||||
@@ -84,7 +84,7 @@ _08096B12:
|
||||
adds r6, r4, #0
|
||||
adds r6, #0x38
|
||||
ldrb r1, [r6]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x74
|
||||
strh r0, [r1]
|
||||
|
||||
@@ -113,7 +113,7 @@ _08084D7E:
|
||||
lsls r1, r1, #6
|
||||
orrs r0, r1
|
||||
ldrb r1, [r6]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r7, #0
|
||||
adds r1, #0x70
|
||||
strh r0, [r1]
|
||||
|
||||
@@ -1,145 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start sub_08089BA0
|
||||
sub_08089BA0: @ 0x08089BA0
|
||||
push {r4, r5, r6, lr}
|
||||
adds r5, r0, #0
|
||||
bl GetNextFrame
|
||||
ldrb r0, [r5, #0xa]
|
||||
cmp r0, #4
|
||||
bhi _08089BD0
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _08089BB8 @ =_08089BBC
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08089BB8: .4byte _08089BBC
|
||||
_08089BBC: @ jump table
|
||||
.4byte _08089BD0 @ case 0
|
||||
.4byte _08089BD6 @ case 1
|
||||
.4byte _08089BD6 @ case 2
|
||||
.4byte _08089C4C @ case 3
|
||||
.4byte _08089C72 @ case 4
|
||||
_08089BD0:
|
||||
ldrb r0, [r5, #0xb]
|
||||
cmp r0, #0
|
||||
beq _08089CBA
|
||||
_08089BD6:
|
||||
ldrb r0, [r5, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r5, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #0xff
|
||||
bne _08089CBA
|
||||
ldrb r0, [r5, #0xa]
|
||||
cmp r0, #2
|
||||
bne _08089C42
|
||||
ldr r0, [r5, #0x54]
|
||||
ldrh r0, [r0, #6]
|
||||
movs r2, #0x2e
|
||||
ldrsh r1, [r5, r2]
|
||||
ldr r3, _08089C48 @ =gRoomControls
|
||||
ldrh r2, [r3, #6]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
movs r4, #0x3f
|
||||
ands r1, r4
|
||||
movs r6, #0x32
|
||||
ldrsh r2, [r5, r6]
|
||||
ldrh r3, [r3, #8]
|
||||
subs r2, r2, r3
|
||||
asrs r2, r2, #4
|
||||
ands r2, r4
|
||||
lsls r2, r2, #6
|
||||
orrs r1, r2
|
||||
adds r2, r5, #0
|
||||
adds r2, #0x38
|
||||
ldrb r2, [r2]
|
||||
bl sub_0807B7D8
|
||||
adds r0, r5, #0
|
||||
movs r1, #0
|
||||
movs r2, #0x10
|
||||
bl sub_0807AB44
|
||||
subs r4, #0x4f
|
||||
adds r0, r5, #0
|
||||
movs r1, #0
|
||||
adds r2, r4, #0
|
||||
bl sub_0807AB44
|
||||
adds r0, r5, #0
|
||||
movs r1, #0x10
|
||||
movs r2, #0
|
||||
bl sub_0807AB44
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
movs r2, #0
|
||||
bl sub_0807AB44
|
||||
_08089C42:
|
||||
bl DeleteThisEntity
|
||||
b _08089CBA
|
||||
.align 2, 0
|
||||
_08089C48: .4byte gRoomControls
|
||||
_08089C4C:
|
||||
ldr r0, [r5, #0x50]
|
||||
ldr r0, [r0, #4]
|
||||
cmp r0, #0
|
||||
bne _08089C58
|
||||
bl DeleteThisEntity
|
||||
_08089C58:
|
||||
ldrb r0, [r5, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r5, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _08089C68
|
||||
bl DeleteThisEntity
|
||||
_08089C68:
|
||||
ldr r0, [r5, #0x50]
|
||||
adds r1, r5, #0
|
||||
bl CopyPosition
|
||||
b _08089CBA
|
||||
_08089C72:
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x86
|
||||
ldrh r0, [r0]
|
||||
bl CheckFlags
|
||||
adds r1, r0, #0
|
||||
ldrb r0, [r5, #0xd]
|
||||
cmp r0, #0
|
||||
bne _08089C96
|
||||
cmp r1, #0
|
||||
bne _08089CBA
|
||||
movs r0, #1
|
||||
strb r0, [r5, #0xd]
|
||||
ldrb r1, [r5, #0x18]
|
||||
subs r0, #5
|
||||
ands r0, r1
|
||||
strb r0, [r5, #0x18]
|
||||
b _08089CBA
|
||||
_08089C96:
|
||||
cmp r1, #0
|
||||
beq _08089CBA
|
||||
movs r0, #0
|
||||
strb r0, [r5, #0xd]
|
||||
ldrb r1, [r5, #0x18]
|
||||
subs r0, #4
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r5, #0x18]
|
||||
adds r0, r5, #0
|
||||
movs r1, #0
|
||||
bl InitializeAnimation
|
||||
movs r0, #0x92
|
||||
lsls r0, r0, #1
|
||||
bl EnqueueSFX
|
||||
_08089CBA:
|
||||
pop {r4, r5, r6, pc}
|
||||
@@ -144,7 +144,7 @@ _0808A930:
|
||||
asrs r0, r0, #0x18
|
||||
strh r0, [r4, #0x36]
|
||||
adds r0, r4, #0
|
||||
bl sub_08017850
|
||||
bl IsCollidingPlayer
|
||||
cmp r0, #0
|
||||
beq _0808A962
|
||||
_0808A954:
|
||||
|
||||
@@ -163,7 +163,7 @@ sub_0808B934: @ 0x0808B934
|
||||
adds r6, r4, #0
|
||||
adds r6, #0x38
|
||||
ldrb r1, [r6]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x74
|
||||
strh r0, [r1]
|
||||
|
||||
@@ -297,7 +297,7 @@ _0808BD34:
|
||||
subs r2, #6
|
||||
adds r0, r5, #0
|
||||
movs r3, #0x1c
|
||||
bl sub_0806FCB8
|
||||
bl EntityWithinDistance
|
||||
cmp r0, #0
|
||||
beq _0808BDAE
|
||||
adds r0, r5, #0
|
||||
|
||||
@@ -291,7 +291,7 @@ _0809C5E0: @ jump table
|
||||
_0809C600:
|
||||
ldr r0, [r5, #0x50]
|
||||
adds r1, r5, #0
|
||||
bl ResolveEntityBelow
|
||||
bl SortEntityBelow
|
||||
ldr r0, [r5, #0x50]
|
||||
ldrb r0, [r0, #0xd]
|
||||
adds r6, r5, #0
|
||||
@@ -382,7 +382,7 @@ _0809C6B4: .4byte gUnk_08123E1C
|
||||
_0809C6B8:
|
||||
ldr r0, [r5, #0x50]
|
||||
adds r1, r5, #0
|
||||
bl ResolveEntityBelow
|
||||
bl SortEntityBelow
|
||||
ldr r0, [r5, #0x50]
|
||||
ldrb r0, [r0, #0xd]
|
||||
adds r6, r5, #0
|
||||
@@ -864,7 +864,7 @@ _0809CA30:
|
||||
adds r2, #2
|
||||
ldrb r2, [r2]
|
||||
rsbs r2, r2, #0
|
||||
bl sub_0806F62C
|
||||
bl LinearMoveAngle
|
||||
ldr r1, [r4, #0x54]
|
||||
adds r0, r4, #0
|
||||
movs r2, #0x48
|
||||
|
||||
@@ -189,7 +189,7 @@ sub_0809D8C8: @ 0x0809D8C8
|
||||
_0809D8E4: .4byte gPlayerState
|
||||
_0809D8E8:
|
||||
adds r0, r5, #0
|
||||
bl sub_08017850
|
||||
bl IsCollidingPlayer
|
||||
cmp r0, #0
|
||||
beq _0809D90A
|
||||
ldrb r0, [r6, #0xd]
|
||||
@@ -223,7 +223,7 @@ sub_0809D91C: @ 0x0809D91C
|
||||
cmp r1, #0
|
||||
beq _0809D934
|
||||
adds r0, r4, #0
|
||||
bl ResolveEntityBelow
|
||||
bl SortEntityBelow
|
||||
_0809D934:
|
||||
movs r0, #0x72
|
||||
bl SoundReq
|
||||
|
||||
@@ -1024,7 +1024,7 @@ _0809E170:
|
||||
ldrsh r1, [r5, r0]
|
||||
ldrb r2, [r5, #0x15]
|
||||
adds r0, r5, #0
|
||||
bl sub_0806F62C
|
||||
bl LinearMoveAngle
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r5, r1]
|
||||
mov r2, r8
|
||||
|
||||
@@ -340,7 +340,7 @@ _0809FD1C:
|
||||
strh r0, [r4, #0x36]
|
||||
ldr r1, _0809FD48 @ =gPlayerEntity
|
||||
adds r0, r4, #0
|
||||
bl sub_080177A0
|
||||
bl IsColliding
|
||||
cmp r0, #0
|
||||
beq _0809FD44
|
||||
adds r0, r4, #0
|
||||
|
||||
@@ -95,7 +95,7 @@ _080A0C08:
|
||||
strh r0, [r4, #0x32]
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
bl ResolveEntityBelow
|
||||
bl SortEntityBelow
|
||||
_080A0C40:
|
||||
ldrb r0, [r5, #0xf]
|
||||
adds r0, #1
|
||||
@@ -136,7 +136,7 @@ _080A0C6E:
|
||||
strh r0, [r4, #0x32]
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
bl ResolveEntityBelow
|
||||
bl SortEntityBelow
|
||||
_080A0C92:
|
||||
ldrb r0, [r5, #0xf]
|
||||
adds r0, #1
|
||||
@@ -159,7 +159,7 @@ _080A0CA0:
|
||||
strh r0, [r4, #0x32]
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
bl ResolveEntityOnTop
|
||||
bl SortEntityAbove
|
||||
_080A0CC0:
|
||||
movs r0, #0xb4
|
||||
movs r1, #3
|
||||
@@ -174,7 +174,7 @@ _080A0CC0:
|
||||
strh r0, [r4, #0x32]
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
bl ResolveEntityOnTop
|
||||
bl SortEntityAbove
|
||||
_080A0CE0:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
|
||||
@@ -425,7 +425,7 @@ sub_080970F4: @ 0x080970F4
|
||||
adds r5, r6, #0
|
||||
adds r5, #0x38
|
||||
ldrb r1, [r5]
|
||||
bl sub_080001DA
|
||||
bl GetTileIndex
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x70
|
||||
strh r0, [r1]
|
||||
|
||||
@@ -67,7 +67,7 @@ _080985AC:
|
||||
_080985AE:
|
||||
ldr r1, [r4, #0x50]
|
||||
adds r0, r4, #0
|
||||
bl ResolveEntityBelow
|
||||
bl SortEntityBelow
|
||||
adds r0, r4, #0
|
||||
bl sub_08098918
|
||||
pop {r4, r5, pc}
|
||||
@@ -569,7 +569,7 @@ _0809892E:
|
||||
strb r0, [r2]
|
||||
ldr r1, [r4, #0x50]
|
||||
adds r0, r4, #0
|
||||
bl ResolveEntityBelow
|
||||
bl SortEntityBelow
|
||||
_08098968:
|
||||
ldr r2, _0809898C @ =gUnk_08123558
|
||||
adds r0, r6, #0
|
||||
@@ -606,7 +606,7 @@ _08098990:
|
||||
strb r0, [r2]
|
||||
ldr r1, [r4, #0x50]
|
||||
adds r0, r4, #0
|
||||
bl ResolveEntityBelow
|
||||
bl SortEntityBelow
|
||||
_080989B2:
|
||||
strh r5, [r4, #0x36]
|
||||
adds r1, r4, #0
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user