Merge branch 'master' of https://github.com/pret/pokeemerald into decomp_scrcmd

This commit is contained in:
Diegoisawesome
2017-10-13 20:29:11 -05:00
106 changed files with 14610 additions and 25063 deletions
+1
View File
@@ -23,5 +23,6 @@ tools/*
*.dump *.dump
*.sa* *.sa*
Thumbs.db Thumbs.db
build/
.DS_Store .DS_Store
*.ddump *.ddump
+62 -42
View File
@@ -1,5 +1,19 @@
SHELL := /bin/bash -o pipefail SHELL := /bin/bash -o pipefail
ROM := pokeemerald.gba
OBJ_DIR := build/emerald
ELF = $(ROM:.gba=.elf)
MAP = $(ROM:.gba=.map)
C_SUBDIR = src
ASM_SUBDIR = asm
DATA_ASM_SUBDIR = data
C_BUILDDIR = $(OBJ_DIR)/$(C_SUBDIR)
ASM_BUILDDIR = $(OBJ_DIR)/$(ASM_SUBDIR)
DATA_ASM_BUILDDIR = $(OBJ_DIR)/$(DATA_ASM_SUBDIR)
AS := $(DEVKITARM)/bin/arm-none-eabi-as AS := $(DEVKITARM)/bin/arm-none-eabi-as
ASFLAGS := -mcpu=arm7tdmi ASFLAGS := -mcpu=arm7tdmi
@@ -10,7 +24,7 @@ CPP := $(DEVKITARM)/bin/arm-none-eabi-cpp
CPPFLAGS := -I tools/agbcc/include -iquote include -nostdinc -undef CPPFLAGS := -I tools/agbcc/include -iquote include -nostdinc -undef
LD := $(DEVKITARM)/bin/arm-none-eabi-ld LD := $(DEVKITARM)/bin/arm-none-eabi-ld
LDFLAGS := -T ld_script.ld -Map pokeemerald.map LDFLAGS = -Map $(MAP)
OBJCOPY := $(DEVKITARM)/bin/arm-none-eabi-objcopy OBJCOPY := $(DEVKITARM)/bin/arm-none-eabi-objcopy
@@ -20,7 +34,7 @@ SHA1 := sha1sum -c
GFX := tools/gbagfx/gbagfx GFX := tools/gbagfx/gbagfx
AIF := tools/aif2pcm/aif2pcm AIF := tools/aif2pcm/aif2pcm
MID := tools/mid2agb/mid2agb MID := $(abspath tools/mid2agb/mid2agb)
SCANINC := tools/scaninc/scaninc SCANINC := tools/scaninc/scaninc
PREPROC := tools/preproc/preproc PREPROC := tools/preproc/preproc
RAMSCRGEN := tools/ramscrgen/ramscrgen RAMSCRGEN := tools/ramscrgen/ramscrgen
@@ -35,19 +49,19 @@ RAMSCRGEN := tools/ramscrgen/ramscrgen
.PHONY: rom clean compare tidy .PHONY: rom clean compare tidy
C_SRCS := $(wildcard src/*.c) $(shell mkdir -p $(C_BUILDDIR) $(ASM_BUILDDIR) $(DATA_ASM_BUILDDIR))
C_OBJS := $(C_SRCS:%.c=%.o)
ASM_SRCS := $(wildcard asm/*.s) C_SRCS := $(wildcard $(C_SUBDIR)/*.c)
ASM_OBJS := $(ASM_SRCS:%.s=%.o) C_OBJS := $(patsubst $(C_SUBDIR)/%.c,$(C_BUILDDIR)/%.o,$(C_SRCS))
DATA_ASM_SRCS := $(wildcard data/*.s) ASM_SRCS := $(wildcard $(ASM_SUBDIR)/*.s)
DATA_ASM_OBJS := $(DATA_ASM_SRCS:%.s=%.o) ASM_OBJS := $(patsubst $(ASM_SUBDIR)/%.s,$(ASM_BUILDDIR)/%.o,$(ASM_SRCS))
DATA_ASM_SRCS := $(wildcard $(DATA_ASM_SUBDIR)/*.s)
DATA_ASM_OBJS := $(patsubst $(DATA_ASM_SUBDIR)/%.s,$(DATA_ASM_BUILDDIR)/%.o,$(DATA_ASM_SRCS))
OBJS := $(C_OBJS) $(ASM_OBJS) $(DATA_ASM_OBJS) OBJS := $(C_OBJS) $(ASM_OBJS) $(DATA_ASM_OBJS)
OBJS_REL := $(patsubst $(OBJ_DIR)/%,%,$(OBJS))
ROM := pokeemerald.gba
ELF := $(ROM:.gba=.elf)
rom: $(ROM) rom: $(ROM)
@@ -59,8 +73,8 @@ clean: tidy
find . \( -iname '*.1bpp' -o -iname '*.4bpp' -o -iname '*.8bpp' -o -iname '*.gbapal' -o -iname '*.lz' -o -iname '*.latfont' -o -iname '*.hwjpnfont' -o -iname '*.fwjpnfont' \) -exec rm {} + find . \( -iname '*.1bpp' -o -iname '*.4bpp' -o -iname '*.8bpp' -o -iname '*.gbapal' -o -iname '*.lz' -o -iname '*.latfont' -o -iname '*.hwjpnfont' -o -iname '*.fwjpnfont' \) -exec rm {} +
tidy: tidy:
rm -f ld_script.ld sym_bss.ld sym_common.ld sym_ewram.ld rm -f $(ROM) $(ELF) $(MAP)
rm -f $(ROM) $(ELF) $(OBJS) $(C_SRCS:%.c=%.i) pokeemerald.map rm -r build/*
include graphics_file_rules.mk include graphics_file_rules.mk
@@ -75,56 +89,62 @@ include graphics_file_rules.mk
%.lz: % ; $(GFX) $< $@ %.lz: % ; $(GFX) $< $@
%.rl: % ; $(GFX) $< $@ %.rl: % ; $(GFX) $< $@
src/libc.o: CC1 := tools/agbcc/bin/old_agbcc $(C_BUILDDIR)/libc.o: CC1 := tools/agbcc/bin/old_agbcc
src/libc.o: CFLAGS := -O2 $(C_BUILDDIR)/libc.o: CFLAGS := -O2
src/siirtc.o: CFLAGS := -mthumb-interwork $(C_BUILDDIR)/siirtc.o: CFLAGS := -mthumb-interwork
src/agb_flash.o: CFLAGS := -O -mthumb-interwork $(C_BUILDDIR)/agb_flash.o: CFLAGS := -O -mthumb-interwork
src/agb_flash_1m.o: CFLAGS := -O -mthumb-interwork $(C_BUILDDIR)/agb_flash_1m.o: CFLAGS := -O -mthumb-interwork
src/agb_flash_mx.o: CFLAGS := -O -mthumb-interwork $(C_BUILDDIR)/agb_flash_mx.o: CFLAGS := -O -mthumb-interwork
src/m4a_2.o: CC1 := tools/agbcc/bin/old_agbcc $(C_BUILDDIR)/m4a_2.o: CC1 := tools/agbcc/bin/old_agbcc
src/m4a_4.o: CC1 := tools/agbcc/bin/old_agbcc $(C_BUILDDIR)/m4a_4.o: CC1 := tools/agbcc/bin/old_agbcc
ifeq ($(NODEP),) ifeq ($(NODEP),)
%.o: c_dep = $(shell $(SCANINC) $*.c) $(C_BUILDDIR)/%.o: c_dep = $(shell $(SCANINC) $(C_SUBDIR)/$*.c)
else else
%.o: c_dep := $(C_BUILDDIR)/%.o: c_dep :=
endif endif
$(C_OBJS): %.o : %.c $$(c_dep) $(C_BUILDDIR)/%.o : $(C_SUBDIR)/%.c $$(c_dep)
@$(CPP) $(CPPFLAGS) $< -o $*.i @$(CPP) $(CPPFLAGS) $< -o $(C_BUILDDIR)/$*.i
@$(PREPROC) $*.i charmap.txt | $(CC1) $(CFLAGS) -o $*.s @$(PREPROC) $(C_BUILDDIR)/$*.i charmap.txt | $(CC1) $(CFLAGS) -o $(C_BUILDDIR)/$*.s
@echo -e ".text\n\t.align\t2, 0\n" >> $*.s @echo -e ".text\n\t.align\t2, 0\n" >> $(C_BUILDDIR)/$*.s
$(AS) $(ASFLAGS) -o $@ $*.s $(AS) $(ASFLAGS) -o $@ $(C_BUILDDIR)/$*.s
ifeq ($(NODEP),) ifeq ($(NODEP),)
%.o: asm_dep = $(shell $(SCANINC) $*.s) $(ASM_BUILDDIR)/%.o: asm_dep = $(shell $(SCANINC) $(ASM_SUBDIR)/$*.s)
else else
%.o: asm_dep := $(ASM_BUILDDIR)/%.o: asm_dep :=
endif endif
$(ASM_OBJS): %.o: %.s $$(asm_dep) $(ASM_BUILDDIR)/%.o: $(ASM_SUBDIR)/%.s $$(asm_dep)
$(AS) $(ASFLAGS) -o $@ $< $(AS) $(ASFLAGS) -o $@ $<
$(DATA_ASM_OBJS): %.o: %.s $$(asm_dep) ifeq ($(NODEP),)
$(DATA_ASM_BUILDDIR)/%.o: data_dep = $(shell $(SCANINC) $(DATA_ASM_SUBDIR)/$*.s)
else
$(DATA_ASM_BUILDDIR)/%.o: data_dep :=
endif
$(DATA_ASM_BUILDDIR)/%.o: $(DATA_ASM_SUBDIR)/%.s $$(data_dep)
$(PREPROC) $< charmap.txt | $(AS) $(ASFLAGS) -o $@ $(PREPROC) $< charmap.txt | $(AS) $(ASFLAGS) -o $@
sym_bss.ld: sym_bss.txt $(OBJ_DIR)/sym_bss.ld: sym_bss.txt
$(RAMSCRGEN) .bss sym_bss.txt ENGLISH >$@ $(RAMSCRGEN) .bss $< ENGLISH > $@
sym_common.ld: sym_common.txt $(C_OBJS) $(wildcard common_syms/*.txt) $(OBJ_DIR)/sym_common.ld: sym_common.txt $(C_OBJS) $(wildcard common_syms/*.txt)
$(RAMSCRGEN) COMMON sym_common.txt ENGLISH -c src,common_syms >$@ $(RAMSCRGEN) COMMON $< ENGLISH -c $(C_BUILDDIR),common_syms > $@
sym_ewram.ld: sym_ewram.txt $(OBJ_DIR)/sym_ewram.ld: sym_ewram.txt
$(RAMSCRGEN) ewram_data sym_ewram.txt ENGLISH >$@ $(RAMSCRGEN) ewram_data $< ENGLISH > $@
ld_script.ld: ld_script.txt sym_bss.ld sym_common.ld sym_ewram.ld $(OBJ_DIR)/ld_script.ld: ld_script.txt $(OBJ_DIR)/sym_bss.ld $(OBJ_DIR)/sym_common.ld $(OBJ_DIR)/sym_ewram.ld
sed -f ld_script.sed ld_script.txt >ld_script.ld cd $(OBJ_DIR) && sed -f ../../ld_script.sed ../../$< | sed "s#tools/#../../tools/#g" | sed "s#sound/#../../sound/#g" > ld_script.ld
$(ELF): ld_script.ld $(OBJS) $(ELF): $(OBJ_DIR)/ld_script.ld $(OBJS)
$(LD) $(LDFLAGS) -o $@ $(OBJS) $(LIBGCC) cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../../$@ $(OBJS_REL) ../../$(LIBGCC)
$(ROM): $(ELF) $(ROM): $(ELF)
$(OBJCOPY) -O binary --gap-fill 0xFF --pad-to 0x9000000 $< $@ $(OBJCOPY) -O binary --gap-fill 0xFF --pad-to 0x9000000 $< $@
+39 -39
View File
@@ -1323,8 +1323,8 @@ _0805DC02:
.pool .pool
thumb_func_end mplay_80342A4 thumb_func_end mplay_80342A4
thumb_func_start sub_805DC0C thumb_func_start BattleLoadOpponentMonSpriteGfx
sub_805DC0C: @ 805DC0C BattleLoadOpponentMonSpriteGfx: @ 805DC0C
push {r4-r7,lr} push {r4-r7,lr}
mov r7, r10 mov r7, r10
mov r6, r9 mov r6, r9
@@ -1474,10 +1474,10 @@ _0805DD46:
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
thumb_func_end sub_805DC0C thumb_func_end BattleLoadOpponentMonSpriteGfx
thumb_func_start sub_805DD7C thumb_func_start BattleLoadPlayerMonSpriteGfx
sub_805DD7C: @ 805DD7C BattleLoadPlayerMonSpriteGfx: @ 805DD7C
push {r4-r7,lr} push {r4-r7,lr}
mov r7, r10 mov r7, r10
mov r6, r9 mov r6, r9
@@ -1658,7 +1658,7 @@ _0805DEFC:
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
thumb_func_end sub_805DD7C thumb_func_end BattleLoadPlayerMonSpriteGfx
thumb_func_start nullsub_23 thumb_func_start nullsub_23
nullsub_23: @ 805DF30 nullsub_23: @ 805DF30
@@ -1703,8 +1703,8 @@ sub_805DF38: @ 805DF38
.pool .pool
thumb_func_end sub_805DF38 thumb_func_end sub_805DF38
thumb_func_start sub_805DF84 thumb_func_start LoadBackTrainerBankSpriteGfx
sub_805DF84: @ 805DF84 LoadBackTrainerBankSpriteGfx: @ 805DF84
push {r4,r5,lr} push {r4,r5,lr}
adds r5, r0, 0 adds r5, r0, 0
adds r4, r1, 0 adds r4, r1, 0
@@ -1742,7 +1742,7 @@ sub_805DF84: @ 805DF84
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
thumb_func_end sub_805DF84 thumb_func_end LoadBackTrainerBankSpriteGfx
thumb_func_start nullsub_25 thumb_func_start nullsub_25
nullsub_25: @ 805DFE0 nullsub_25: @ 805DFE0
@@ -1772,7 +1772,7 @@ sub_805DFFC: @ 805DFFC
adds r4, 0x8 adds r4, 0x8
adds r0, r4, 0 adds r0, r4, 0
bl LoadSpritePalette bl LoadSpritePalette
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _0805E034 bne _0805E034
@@ -1821,8 +1821,8 @@ _0805E076:
.pool .pool
thumb_func_end sub_805DFFC thumb_func_end sub_805DFFC
thumb_func_start sub_805E08C thumb_func_start BattleLoadAllHealthBoxesGfx
sub_805E08C: @ 805E08C BattleLoadAllHealthBoxesGfx: @ 805E08C
push {r4-r6,lr} push {r4-r6,lr}
lsls r0, 24 lsls r0, 24
lsrs r4, r0, 24 lsrs r4, r0, 24
@@ -1843,7 +1843,7 @@ _0805E09C:
b _0805E1AE b _0805E1AE
.pool .pool
_0805E0B8: _0805E0B8:
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _0805E120 bne _0805E120
@@ -1953,7 +1953,7 @@ _0805E1AE:
pop {r4-r6} pop {r4-r6}
pop {r1} pop {r1}
bx r1 bx r1
thumb_func_end sub_805E08C thumb_func_end BattleLoadAllHealthBoxesGfx
thumb_func_start load_gfxc_health_bar thumb_func_start load_gfxc_health_bar
load_gfxc_health_bar: @ 805E1B8 load_gfxc_health_bar: @ 805E1B8
@@ -2002,7 +2002,7 @@ _0805E214:
b _0805E324 b _0805E324
_0805E21A: _0805E21A:
ldrb r0, [r4] ldrb r0, [r4]
bl sub_805E08C bl BattleLoadAllHealthBoxesGfx
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _0805E228 beq _0805E228
@@ -2022,12 +2022,12 @@ _0805E230:
ldrb r0, [r4] ldrb r0, [r4]
cmp r0, 0 cmp r0, 0
bne _0805E24C bne _0805E24C
bl battle_make_oam_safari_battle bl CreateSafariPlayerHealthboxSprites
b _0805E252 b _0805E252
.pool .pool
_0805E24C: _0805E24C:
ldrb r0, [r4] ldrb r0, [r4]
bl battle_make_oam_normal_battle bl CreateBankHealthboxSprites
_0805E252: _0805E252:
ldr r2, =gHealthBoxesIds ldr r2, =gHealthBoxesIds
ldrb r1, [r4] ldrb r1, [r4]
@@ -2037,7 +2037,7 @@ _0805E252:
.pool .pool
_0805E260: _0805E260:
ldrb r0, [r4] ldrb r0, [r4]
bl sub_8072B18 bl SetBankHealthboxSpritePos
ldr r0, =gBanksBySide ldr r0, =gBanksBySide
ldrb r1, [r4] ldrb r1, [r4]
adds r0, r1, r0 adds r0, r1, r0
@@ -2084,7 +2084,7 @@ _0805E29C:
ldr r2, =gPlayerParty ldr r2, =gPlayerParty
adds r1, r2 adds r1, r2
movs r2, 0 movs r2, 0
bl healthbar_draw_field_maybe bl UpdateHealthboxAttribute
b _0805E302 b _0805E302
.pool .pool
_0805E2E4: _0805E2E4:
@@ -2101,13 +2101,13 @@ _0805E2E4:
ldr r2, =gEnemyParty ldr r2, =gEnemyParty
adds r1, r2 adds r1, r2
movs r2, 0 movs r2, 0
bl healthbar_draw_field_maybe bl UpdateHealthboxAttribute
_0805E302: _0805E302:
ldr r1, =gHealthBoxesIds ldr r1, =gHealthBoxesIds
ldrb r0, [r4] ldrb r0, [r4]
adds r0, r1 adds r0, r1
ldrb r0, [r0] ldrb r0, [r0]
bl sub_8072984 bl SetHealthboxSpriteInvisible
_0805E30E: _0805E30E:
ldrb r0, [r4] ldrb r0, [r4]
adds r0, 0x1 adds r0, 0x1
@@ -2128,7 +2128,7 @@ _0805E324:
b _0805E346 b _0805E346
.pool .pool
_0805E33C: _0805E33C:
bl sub_805EC84 bl LoadAndCreateEnemyShadowSprites
bl sub_81B8C68 bl sub_81B8C68
movs r6, 0x1 movs r6, 0x1
_0805E346: _0805E346:
@@ -2630,8 +2630,8 @@ _0805E77A:
.pool .pool
thumb_func_end sub_805E448 thumb_func_end sub_805E448
thumb_func_start sub_805E7DC thumb_func_start BattleLoadSubstituteSpriteGfx
sub_805E7DC: @ 805E7DC BattleLoadSubstituteSpriteGfx: @ 805E7DC
push {r4-r7,lr} push {r4-r7,lr}
lsls r0, 24 lsls r0, 24
lsrs r4, r0, 24 lsrs r4, r0, 24
@@ -2732,7 +2732,7 @@ _0805E898:
ldr r1, =gEnemyParty ldr r1, =gEnemyParty
adds r0, r1 adds r0, r1
adds r1, r4, 0 adds r1, r4, 0
bl sub_805DC0C bl BattleLoadOpponentMonSpriteGfx
b _0805E8E6 b _0805E8E6
.pool .pool
_0805E8D0: _0805E8D0:
@@ -2745,13 +2745,13 @@ _0805E8D0:
ldr r1, =gPlayerParty ldr r1, =gPlayerParty
adds r0, r1 adds r0, r1
adds r1, r5, 0 adds r1, r5, 0
bl sub_805DD7C bl BattleLoadPlayerMonSpriteGfx
_0805E8E6: _0805E8E6:
pop {r4-r7} pop {r4-r7}
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
thumb_func_end sub_805E7DC thumb_func_end BattleLoadSubstituteSpriteGfx
thumb_func_start refresh_graphics_maybe thumb_func_start refresh_graphics_maybe
refresh_graphics_maybe: @ 805E8F4 refresh_graphics_maybe: @ 805E8F4
@@ -2766,7 +2766,7 @@ refresh_graphics_maybe: @ 805E8F4
lsrs r4, 24 lsrs r4, 24
adds r0, r6, 0 adds r0, r6, 0
adds r1, r5, 0 adds r1, r5, 0
bl sub_805E7DC bl BattleLoadSubstituteSpriteGfx
lsls r0, r4, 4 lsls r0, r4, 4
adds r0, r4 adds r0, r4
lsls r0, 2 lsls r0, 2
@@ -2905,7 +2905,7 @@ _0805EA08:
negs r0, r0 negs r0, r0
ands r0, r2 ands r0, r2
strb r0, [r1] strb r0, [r1]
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _0805EA34 bne _0805EA34
@@ -2914,7 +2914,7 @@ _0805EA08:
b _0805EA5A b _0805EA5A
.pool .pool
_0805EA34: _0805EA34:
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _0805EA5A beq _0805EA5A
@@ -2955,7 +2955,7 @@ BattleMusicStop: @ 805EA60
adds r0, r6, 0 adds r0, r6, 0
ands r0, r2 ands r0, r2
strb r0, [r1] strb r0, [r1]
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _0805EAA2 beq _0805EAA2
@@ -3059,7 +3059,7 @@ sub_805EAE8: @ 805EAE8
mov r1, r8 mov r1, r8
bl sub_805E990 bl sub_805E990
_0805EB5A: _0805EB5A:
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _0805EB7E beq _0805EB7E
@@ -3195,8 +3195,8 @@ _0805EC6C:
.pool .pool
thumb_func_end sub_805EB9C thumb_func_end sub_805EB9C
thumb_func_start sub_805EC84 thumb_func_start LoadAndCreateEnemyShadowSprites
sub_805EC84: @ 805EC84 LoadAndCreateEnemyShadowSprites: @ 805EC84
push {r4-r7,lr} push {r4-r7,lr}
mov r7, r8 mov r7, r8
push {r7} push {r7}
@@ -3247,7 +3247,7 @@ sub_805EC84: @ 805EC84
lsls r0, 2 lsls r0, 2
adds r0, r7 adds r0, r7
strh r5, [r0, 0x2E] strh r5, [r0, 0x2E]
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _0805ED56 beq _0805ED56
@@ -3299,7 +3299,7 @@ _0805ED56:
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
thumb_func_end sub_805EC84 thumb_func_end LoadAndCreateEnemyShadowSprites
thumb_func_start sub_805ED70 thumb_func_start sub_805ED70
@ int sub_805ED70(obj *a1) @ int sub_805ED70(obj *a1)
@@ -3418,8 +3418,8 @@ sub_805EE48: @ 805EE48
bx lr bx lr
thumb_func_end sub_805EE48 thumb_func_end sub_805EE48
thumb_func_start sub_805EE54 thumb_func_start SetBankEnemyShadowSpriteCallback
sub_805EE54: @ 805EE54 SetBankEnemyShadowSpriteCallback: @ 805EE54
push {r4-r6,lr} push {r4-r6,lr}
lsls r0, 24 lsls r0, 24
lsrs r4, r0, 24 lsrs r4, r0, 24
@@ -3482,7 +3482,7 @@ _0805EED0:
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
thumb_func_end sub_805EE54 thumb_func_end SetBankEnemyShadowSpriteCallback
thumb_func_start sub_805EEE0 thumb_func_start sub_805EEE0
sub_805EEE0: @ 805EEE0 sub_805EEE0: @ 805EEE0
-2847
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -4047,7 +4047,7 @@ sub_80A5AFC: @ 80A5AFC
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _080A5BA6 bne _080A5BA6
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _080A5BA6 beq _080A5BA6
@@ -4129,7 +4129,7 @@ sub_80A5BAC: @ 80A5BAC
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _080A5C38 bne _080A5C38
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _080A5C38 beq _080A5C38
+13 -13
View File
@@ -721,7 +721,7 @@ sub_80FEE1C: @ 80FEE1C
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _080FEE36 bne _080FEE36
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _080FEE3E bne _080FEE3E
@@ -1260,7 +1260,7 @@ _080FF260:
sub_80FF268: @ 80FF268 sub_80FF268: @ 80FF268
push {r4,lr} push {r4,lr}
adds r4, r0, 0 adds r4, r0, 0
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r0, 0x1 cmp r0, 0x1
@@ -5433,7 +5433,7 @@ _08101378:
ldr r0, =gAnimationBankTarget ldr r0, =gAnimationBankTarget
_0810137A: _0810137A:
ldrb r6, [r0] ldrb r6, [r0]
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _081013C4 beq _081013C4
@@ -7557,7 +7557,7 @@ _08102448:
bne _08102464 bne _08102464
adds r0, r4, r5 adds r0, r4, r5
ldrb r0, [r0] ldrb r0, [r0]
bl sub_8072984 bl SetHealthboxSpriteInvisible
_08102464: _08102464:
movs r1, 0x2 movs r1, 0x2
ldrsh r0, [r6, r1] ldrsh r0, [r6, r1]
@@ -7571,7 +7571,7 @@ _08102464:
bne _08102482 bne _08102482
adds r0, r4, r5 adds r0, r4, r5
ldrb r0, [r0] ldrb r0, [r0]
bl sub_8072984 bl SetHealthboxSpriteInvisible
_08102482: _08102482:
adds r0, r4, 0x1 adds r0, r4, 0x1
lsls r0, 24 lsls r0, 24
@@ -7600,7 +7600,7 @@ _081024B2:
ldr r0, =gHealthBoxesIds ldr r0, =gHealthBoxesIds
adds r0, r4, r0 adds r0, r4, r0
ldrb r0, [r0] ldrb r0, [r0]
bl sub_80729D0 bl SetHealthboxSpriteVisible
adds r0, r4, 0x1 adds r0, r4, 0x1
lsls r0, 24 lsls r0, 24
lsrs r4, r0, 24 lsrs r4, r0, 24
@@ -13205,7 +13205,7 @@ _081051F2:
movs r0, 0x1 movs r0, 0x1
adds r4, r0, 0 adds r4, r0, 0
eors r4, r1 eors r4, r1
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _0810526A beq _0810526A
@@ -26794,7 +26794,7 @@ _0810BF90:
ldrsh r0, [r0, r1] ldrsh r0, [r0, r1]
cmp r0, 0 cmp r0, 0
beq _0810BFA8 beq _0810BFA8
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _0810BFB4 bne _0810BFB4
@@ -33105,7 +33105,7 @@ _0810F284:
mov r0, r8 mov r0, r8
cmp r0, 0 cmp r0, 0
bne _0810F2B8 bne _0810F2B8
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _0810F2B8 beq _0810F2B8
@@ -33501,7 +33501,7 @@ _0810F5A6:
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _0810F5EE bne _0810F5EE
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _0810F5EE beq _0810F5EE
@@ -43194,7 +43194,7 @@ sub_81144F8: @ 81144F8
movs r2, 0x1 movs r2, 0x1
bl lcd_bg_operations bl lcd_bg_operations
_0811455C: _0811455C:
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _081145D6 beq _081145D6
@@ -47859,7 +47859,7 @@ sub_8116B14: @ 8116B14
movs r0, 0xA movs r0, 0xA
bl SetGpuReg bl SetGpuReg
_08116BA2: _08116BA2:
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _08116C26 beq _08116C26
@@ -48295,7 +48295,7 @@ _08116F5C:
movs r2, 0x1 movs r2, 0x1
bl lcd_bg_operations bl lcd_bg_operations
_08116FBA: _08116FBA:
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _08117036 beq _08117036
+3 -3
View File
@@ -3256,7 +3256,7 @@ _0815BAB6:
lsls r1, r0, 2 lsls r1, r0, 2
adds r1, r2 adds r1, r2
ldrh r1, [r1, 0x2] ldrh r1, [r1, 0x2]
bl sub_805EE54 bl SetBankEnemyShadowSpriteCallback
_0815BAF6: _0815BAF6:
mov r0, r8 mov r0, r8
bl move_anim_task_del bl move_anim_task_del
@@ -4001,7 +4001,7 @@ _0815C15C:
bl GetBankIdentity bl GetBankIdentity
lsls r0, 24 lsls r0, 24
lsrs r4, r0, 24 lsrs r4, r0, 24
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r0, 0x1 cmp r0, 0x1
@@ -9334,7 +9334,7 @@ sub_815EC48: @ 815EC48
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _0815ECD0 bne _0815ECD0
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
lsrs r7, r0, 24 lsrs r7, r0, 24
cmp r7, 0x1 cmp r7, 0x1
+22 -22
View File
@@ -199,11 +199,11 @@ sub_8064520: @ 8064520
movs r0, 0 movs r0, 0
mov r8, r0 mov r8, r0
movs r4, 0 movs r4, 0
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _0806454C beq _0806454C
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _08064584 beq _08064584
@@ -531,7 +531,7 @@ _080647B4:
ands r0, r1 ands r0, r1
cmp r0, 0 cmp r0, 0
bne _0806487A bne _0806487A
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _0806484A beq _0806484A
@@ -557,7 +557,7 @@ _080647B4:
ldr r2, =gEnemyParty ldr r2, =gEnemyParty
adds r1, r2 adds r1, r2
movs r2, 0 movs r2, 0
bl healthbar_draw_field_maybe bl UpdateHealthboxAttribute
mov r1, r9 mov r1, r9
ldrb r0, [r1] ldrb r0, [r1]
eors r0, r7 eors r0, r7
@@ -567,7 +567,7 @@ _080647B4:
eors r0, r7 eors r0, r7
adds r0, r4 adds r0, r4
ldrb r0, [r0] ldrb r0, [r0]
bl sub_80729D0 bl SetHealthboxSpriteVisible
_0806484A: _0806484A:
ldr r5, =gHealthBoxesIds ldr r5, =gHealthBoxesIds
ldr r4, =gActiveBank ldr r4, =gActiveBank
@@ -583,13 +583,13 @@ _0806484A:
ldr r2, =gEnemyParty ldr r2, =gEnemyParty
adds r1, r2 adds r1, r2
movs r2, 0 movs r2, 0
bl healthbar_draw_field_maybe bl UpdateHealthboxAttribute
ldrb r0, [r4] ldrb r0, [r4]
bl sub_8076918 bl sub_8076918
ldrb r0, [r4] ldrb r0, [r4]
adds r0, r5 adds r0, r5
ldrb r0, [r0] ldrb r0, [r0]
bl sub_80729D0 bl SetHealthboxSpriteVisible
_0806487A: _0806487A:
ldr r4, =gBattleSpritesDataPtr ldr r4, =gBattleSpritesDataPtr
ldr r0, [r4] ldr r0, [r4]
@@ -760,7 +760,7 @@ _08064998:
movs r1, 0 movs r1, 0
strb r1, [r0, 0x9] strb r1, [r0, 0x9]
_080649E2: _080649E2:
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _08064A3A beq _08064A3A
@@ -799,7 +799,7 @@ _080649E2:
lsls r1, 16 lsls r1, 16
lsrs r1, 16 lsrs r1, 16
adds r0, r4, 0 adds r0, r4, 0
bl sub_805EE54 bl SetBankEnemyShadowSpriteCallback
_08064A3A: _08064A3A:
ldr r1, =gUnknown_03005D7C ldr r1, =gUnknown_03005D7C
ldr r4, =gActiveBank ldr r4, =gActiveBank
@@ -827,7 +827,7 @@ _08064A3A:
lsls r1, 16 lsls r1, 16
lsrs r1, 16 lsrs r1, 16
adds r0, r5, 0 adds r0, r5, 0
bl sub_805EE54 bl SetBankEnemyShadowSpriteCallback
ldr r3, =gBattleSpritesDataPtr ldr r3, =gBattleSpritesDataPtr
ldr r0, [r3] ldr r0, [r3]
ldr r2, [r0, 0x8] ldr r2, [r0, 0x8]
@@ -974,7 +974,7 @@ sub_8064BC0: @ 8064BC0
ldrb r0, [r6] ldrb r0, [r6]
adds r0, r5 adds r0, r5
ldrb r0, [r0] ldrb r0, [r0]
bl sub_80729D0 bl SetHealthboxSpriteVisible
lsls r4, 16 lsls r4, 16
asrs r1, r4, 16 asrs r1, r4, 16
movs r0, 0x1 movs r0, 0x1
@@ -1017,7 +1017,7 @@ sub_8064C14: @ 8064C14
ldr r0, =gHealthBoxesIds ldr r0, =gHealthBoxesIds
adds r0, r3, r0 adds r0, r3, r0
ldrb r0, [r0] ldrb r0, [r0]
bl sub_8072984 bl SetHealthboxSpriteInvisible
bl LinkOpponentBufferExecCompleted bl LinkOpponentBufferExecCompleted
_08064C42: _08064C42:
pop {r0} pop {r0}
@@ -1065,7 +1065,7 @@ sub_8064C58: @ 8064C58
ldrb r0, [r6] ldrb r0, [r6]
adds r0, r1 adds r0, r1
ldrb r0, [r0] ldrb r0, [r0]
bl sub_8072984 bl SetHealthboxSpriteInvisible
bl LinkOpponentBufferExecCompleted bl LinkOpponentBufferExecCompleted
_08064CB2: _08064CB2:
pop {r4-r6} pop {r4-r6}
@@ -1321,13 +1321,13 @@ sub_8064E50: @ 8064E50
ldr r2, =gEnemyParty ldr r2, =gEnemyParty
adds r1, r2 adds r1, r2
movs r2, 0 movs r2, 0
bl healthbar_draw_field_maybe bl UpdateHealthboxAttribute
ldrb r0, [r5] ldrb r0, [r5]
bl sub_8076918 bl sub_8076918
ldrb r0, [r5] ldrb r0, [r5]
adds r0, r4 adds r0, r4
ldrb r0, [r0] ldrb r0, [r0]
bl sub_80729D0 bl SetHealthboxSpriteVisible
ldrb r0, [r5] ldrb r0, [r5]
bl sub_805E408 bl sub_805E408
ldr r1, =gBattleBankFunc ldr r1, =gBattleBankFunc
@@ -1413,7 +1413,7 @@ _08064F72:
lsls r1, 16 lsls r1, 16
lsrs r1, 16 lsrs r1, 16
adds r0, r4, 0 adds r0, r4, 0
bl sub_805EE54 bl SetBankEnemyShadowSpriteCallback
ldr r1, =gBattleBankFunc ldr r1, =gBattleBankFunc
ldrb r0, [r5] ldrb r0, [r5]
lsls r0, 2 lsls r0, 2
@@ -3583,7 +3583,7 @@ sub_80662F8: @ 80662F8
muls r2, r0 muls r2, r0
adds r0, r2, 0 adds r0, r2, 0
add r0, r9 add r0, r9
bl sub_805DC0C bl BattleLoadOpponentMonSpriteGfx
ldrb r0, [r6] ldrb r0, [r6]
bl GetBankIdentity bl GetBankIdentity
adds r1, r0, 0 adds r1, r0, 0
@@ -3673,7 +3673,7 @@ sub_80662F8: @ 80662F8
lsls r1, 16 lsls r1, 16
lsrs r1, 16 lsrs r1, 16
adds r0, r4, 0 adds r0, r4, 0
bl sub_805EE54 bl SetBankEnemyShadowSpriteCallback
ldr r1, =gBattleBankFunc ldr r1, =gBattleBankFunc
ldrb r0, [r6] ldrb r0, [r6]
lsls r0, 2 lsls r0, 2
@@ -3772,7 +3772,7 @@ sub_8066494: @ 8066494
adds r0, r1, 0 adds r0, r1, 0
adds r0, r5 adds r0, r5
adds r1, r6, 0 adds r1, r6, 0
bl sub_805DC0C bl BattleLoadOpponentMonSpriteGfx
adds r0, r6, 0 adds r0, r6, 0
bl GetBankIdentity bl GetBankIdentity
adds r1, r0, 0 adds r1, r0, 0
@@ -3947,7 +3947,7 @@ _0806666C:
ldrb r0, [r6] ldrb r0, [r6]
adds r0, r1 adds r0, r1
ldrb r0, [r0] ldrb r0, [r0]
bl sub_8072984 bl SetHealthboxSpriteInvisible
bl LinkOpponentBufferExecCompleted bl LinkOpponentBufferExecCompleted
_080666A8: _080666A8:
pop {r4-r6} pop {r4-r6}
@@ -5242,7 +5242,7 @@ sub_806719C: @ 806719C
ldr r2, =gEnemyParty ldr r2, =gEnemyParty
adds r1, r2 adds r1, r2
movs r2, 0x9 movs r2, 0x9
bl healthbar_draw_field_maybe bl UpdateHealthboxAttribute
ldrb r2, [r4] ldrb r2, [r4]
ldr r0, =gBattleSpritesDataPtr ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0] ldr r0, [r0]
@@ -5779,7 +5779,7 @@ c3_08038DC4: @ 8067618
adds r0, r1 adds r0, r1
ldrh r0, [r0, 0x8] ldrh r0, [r0, 0x8]
strb r0, [r7] strb r0, [r7]
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _08067652 beq _08067652
+19 -19
View File
@@ -168,11 +168,11 @@ _0814AFF4:
sub_814B004: @ 814B004 sub_814B004: @ 814B004
push {r4-r6,lr} push {r4-r6,lr}
movs r6, 0 movs r6, 0
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _0814B028 beq _0814B028
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _0814B05C beq _0814B05C
@@ -348,7 +348,7 @@ _0814B136:
lsls r0, 2 lsls r0, 2
adds r0, r2 adds r0, r2
strb r6, [r0, 0x9] strb r6, [r0, 0x9]
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _0814B1F0 beq _0814B1F0
@@ -383,7 +383,7 @@ _0814B136:
ldr r2, =gPlayerParty ldr r2, =gPlayerParty
adds r1, r2 adds r1, r2
movs r2, 0 movs r2, 0
bl healthbar_draw_field_maybe bl UpdateHealthboxAttribute
ldrb r0, [r7] ldrb r0, [r7]
mov r1, r8 mov r1, r8
eors r0, r1 eors r0, r1
@@ -393,7 +393,7 @@ _0814B136:
eors r0, r1 eors r0, r1
adds r0, r4 adds r0, r4
ldrb r0, [r0] ldrb r0, [r0]
bl sub_80729D0 bl SetHealthboxSpriteVisible
_0814B1F0: _0814B1F0:
ldr r1, =gUnknown_03005D7C ldr r1, =gUnknown_03005D7C
ldr r4, =gActiveBank ldr r4, =gActiveBank
@@ -419,13 +419,13 @@ _0814B1F0:
ldr r2, =gPlayerParty ldr r2, =gPlayerParty
adds r1, r2 adds r1, r2
movs r2, 0 movs r2, 0
bl healthbar_draw_field_maybe bl UpdateHealthboxAttribute
ldrb r0, [r4] ldrb r0, [r4]
bl sub_8076918 bl sub_8076918
ldrb r0, [r4] ldrb r0, [r4]
adds r0, r5 adds r0, r5
ldrb r0, [r0] ldrb r0, [r0]
bl sub_80729D0 bl SetHealthboxSpriteVisible
ldr r0, =gBattleSpritesDataPtr ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0] ldr r0, [r0]
ldr r2, [r0, 0x8] ldr r2, [r0, 0x8]
@@ -498,7 +498,7 @@ bx_t4_healthbar_update: @ 814B2D0
ldrb r0, [r5] ldrb r0, [r5]
adds r0, r6 adds r0, r6
ldrb r0, [r0] ldrb r0, [r0]
bl sub_80729D0 bl SetHealthboxSpriteVisible
lsls r4, 16 lsls r4, 16
asrs r1, r4, 16 asrs r1, r4, 16
movs r0, 0x1 movs r0, 0x1
@@ -587,7 +587,7 @@ sub_814B340: @ 814B340
ldrb r0, [r4] ldrb r0, [r4]
adds r0, r1 adds r0, r1
ldrb r0, [r0] ldrb r0, [r0]
bl sub_8072984 bl SetHealthboxSpriteInvisible
bl LinkPartnerBufferExecCompleted bl LinkPartnerBufferExecCompleted
_0814B3BC: _0814B3BC:
pop {r4-r6} pop {r4-r6}
@@ -634,7 +634,7 @@ sub_814B3DC: @ 814B3DC
ldrb r0, [r6] ldrb r0, [r6]
adds r0, r1 adds r0, r1
ldrb r0, [r0] ldrb r0, [r0]
bl sub_8072984 bl SetHealthboxSpriteInvisible
bl LinkPartnerBufferExecCompleted bl LinkPartnerBufferExecCompleted
_0814B430: _0814B430:
pop {r4-r6} pop {r4-r6}
@@ -878,13 +878,13 @@ sub_814B5A8: @ 814B5A8
muls r1, r6 muls r1, r6
adds r1, r5 adds r1, r5
movs r2, 0 movs r2, 0
bl healthbar_draw_field_maybe bl UpdateHealthboxAttribute
ldrb r0, [r7] ldrb r0, [r7]
bl sub_8076918 bl sub_8076918
ldrb r0, [r7] ldrb r0, [r7]
adds r0, r4 adds r0, r4
ldrb r0, [r0] ldrb r0, [r0]
bl sub_80729D0 bl SetHealthboxSpriteVisible
ldr r1, =gBattleBankFunc ldr r1, =gBattleBankFunc
ldrb r0, [r7] ldrb r0, [r7]
lsls r0, 2 lsls r0, 2
@@ -3154,7 +3154,7 @@ sub_814CB0C: @ 814CB0C
muls r0, r5 muls r0, r5
ldr r4, =gPlayerParty ldr r4, =gPlayerParty
adds r0, r4 adds r0, r4
bl sub_805DD7C bl BattleLoadPlayerMonSpriteGfx
ldrb r0, [r6] ldrb r0, [r6]
lsls r0, 1 lsls r0, 1
add r0, r8 add r0, r8
@@ -3283,7 +3283,7 @@ sub_814CC28: @ 814CC28
muls r0, r2 muls r0, r2
ldr r2, =gPlayerParty ldr r2, =gPlayerParty
adds r0, r2 adds r0, r2
bl sub_805DD7C bl BattleLoadPlayerMonSpriteGfx
ldrb r0, [r5] ldrb r0, [r5]
lsls r1, r0, 9 lsls r1, r0, 9
adds r1, r6 adds r1, r6
@@ -3514,7 +3514,7 @@ _0814CE5C:
ldrb r0, [r6] ldrb r0, [r6]
adds r0, r1 adds r0, r1
ldrb r0, [r0] ldrb r0, [r0]
bl sub_8072984 bl SetHealthboxSpriteInvisible
bl LinkPartnerBufferExecCompleted bl LinkPartnerBufferExecCompleted
_0814CE92: _0814CE92:
pop {r4-r6} pop {r4-r6}
@@ -3696,7 +3696,7 @@ _0814D002:
ldr r5, =gActiveBank ldr r5, =gActiveBank
ldrb r1, [r5] ldrb r1, [r5]
adds r0, r4, 0 adds r0, r4, 0
bl sub_805DF84 bl LoadBackTrainerBankSpriteGfx
ldrb r0, [r5] ldrb r0, [r5]
bl GetBankIdentity bl GetBankIdentity
adds r1, r0, 0 adds r1, r0, 0
@@ -4551,7 +4551,7 @@ sub_814D738: @ 814D738
ldr r2, =gPlayerParty ldr r2, =gPlayerParty
adds r1, r2 adds r1, r2
movs r2, 0x9 movs r2, 0x9
bl healthbar_draw_field_maybe bl UpdateHealthboxAttribute
ldrb r2, [r4] ldrb r2, [r4]
ldr r0, =gBattleSpritesDataPtr ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0] ldr r0, [r0]
@@ -5217,7 +5217,7 @@ _0814DCF8:
mov r9, r0 mov r9, r0
ldrh r0, [r1, 0x8] ldrh r0, [r1, 0x8]
strb r0, [r7] strb r0, [r7]
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _0814DD18 beq _0814DD18
@@ -5276,7 +5276,7 @@ _0814DD48:
muls r0, r2 muls r0, r2
ldr r2, =gPlayerParty ldr r2, =gPlayerParty
adds r0, r2 adds r0, r2
bl sub_805DD7C bl BattleLoadPlayerMonSpriteGfx
ldrb r0, [r7] ldrb r0, [r7]
movs r1, 0 movs r1, 0
bl sub_814CC98 bl sub_814CC98
+32 -32
View File
@@ -200,11 +200,11 @@ sub_805F2F0: @ 805F2F0
push {r5-r7} push {r5-r7}
movs r0, 0 movs r0, 0
mov r10, r0 mov r10, r0
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _0805F32C beq _0805F32C
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _0805F31E beq _0805F31E
@@ -520,7 +520,7 @@ _0805F5A6:
ands r0, r1 ands r0, r1
cmp r0, 0 cmp r0, 0
bne _0805F5EE bne _0805F5EE
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _0805F5EE beq _0805F5EE
@@ -583,7 +583,7 @@ _0805F5EE:
ands r0, r1 ands r0, r1
cmp r0, 0 cmp r0, 0
bne _0805F6B4 bne _0805F6B4
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _0805F684 beq _0805F684
@@ -609,7 +609,7 @@ _0805F5EE:
ldr r2, =gEnemyParty ldr r2, =gEnemyParty
adds r1, r2 adds r1, r2
movs r2, 0 movs r2, 0
bl healthbar_draw_field_maybe bl UpdateHealthboxAttribute
mov r1, r8 mov r1, r8
ldrb r0, [r1] ldrb r0, [r1]
eors r0, r7 eors r0, r7
@@ -619,7 +619,7 @@ _0805F5EE:
eors r0, r7 eors r0, r7
adds r0, r4 adds r0, r4
ldrb r0, [r0] ldrb r0, [r0]
bl sub_80729D0 bl SetHealthboxSpriteVisible
_0805F684: _0805F684:
ldr r5, =gHealthBoxesIds ldr r5, =gHealthBoxesIds
ldr r4, =gActiveBank ldr r4, =gActiveBank
@@ -635,13 +635,13 @@ _0805F684:
ldr r2, =gEnemyParty ldr r2, =gEnemyParty
adds r1, r2 adds r1, r2
movs r2, 0 movs r2, 0
bl healthbar_draw_field_maybe bl UpdateHealthboxAttribute
ldrb r0, [r4] ldrb r0, [r4]
bl sub_8076918 bl sub_8076918
ldrb r0, [r4] ldrb r0, [r4]
adds r0, r5 adds r0, r5
ldrb r0, [r0] ldrb r0, [r0]
bl sub_80729D0 bl SetHealthboxSpriteVisible
_0805F6B4: _0805F6B4:
ldr r3, =gBattleSpritesDataPtr ldr r3, =gBattleSpritesDataPtr
ldr r2, [r3] ldr r2, [r3]
@@ -739,11 +739,11 @@ _0805F774:
movs r0, 0x1 movs r0, 0x1
str r0, [sp] str r0, [sp]
_0805F792: _0805F792:
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _0805F7B2 beq _0805F7B2
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _0805F810 beq _0805F810
@@ -838,7 +838,7 @@ _0805F86E:
mov r0, r10 mov r0, r10
cmp r0, 0 cmp r0, 0
beq _0805F958 beq _0805F958
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _0805F8D2 beq _0805F8D2
@@ -877,7 +877,7 @@ _0805F86E:
lsls r1, 16 lsls r1, 16
lsrs r1, 16 lsrs r1, 16
adds r0, r4, 0 adds r0, r4, 0
bl sub_805EE54 bl SetBankEnemyShadowSpriteCallback
_0805F8D2: _0805F8D2:
ldr r1, =gUnknown_03005D7C ldr r1, =gUnknown_03005D7C
ldr r4, =gActiveBank ldr r4, =gActiveBank
@@ -905,7 +905,7 @@ _0805F8D2:
lsls r1, 16 lsls r1, 16
lsrs r1, 16 lsrs r1, 16
adds r0, r5, 0 adds r0, r5, 0
bl sub_805EE54 bl SetBankEnemyShadowSpriteCallback
ldr r3, =gBattleSpritesDataPtr ldr r3, =gBattleSpritesDataPtr
ldr r0, [r3] ldr r0, [r3]
ldr r2, [r0, 0x8] ldr r2, [r0, 0x8]
@@ -1068,7 +1068,7 @@ sub_805FA70: @ 805FA70
ldrb r0, [r6] ldrb r0, [r6]
adds r0, r5 adds r0, r5
ldrb r0, [r0] ldrb r0, [r0]
bl sub_80729D0 bl SetHealthboxSpriteVisible
lsls r4, 16 lsls r4, 16
asrs r1, r4, 16 asrs r1, r4, 16
movs r0, 0x1 movs r0, 0x1
@@ -1111,7 +1111,7 @@ sub_805FAC4: @ 805FAC4
ldr r0, =gHealthBoxesIds ldr r0, =gHealthBoxesIds
adds r0, r3, r0 adds r0, r3, r0
ldrb r0, [r0] ldrb r0, [r0]
bl sub_8072984 bl SetHealthboxSpriteInvisible
bl OpponentBufferExecCompleted bl OpponentBufferExecCompleted
_0805FAF2: _0805FAF2:
pop {r0} pop {r0}
@@ -1159,7 +1159,7 @@ sub_805FB08: @ 805FB08
ldrb r0, [r6] ldrb r0, [r6]
adds r0, r1 adds r0, r1
ldrb r0, [r0] ldrb r0, [r0]
bl sub_8072984 bl SetHealthboxSpriteInvisible
bl OpponentBufferExecCompleted bl OpponentBufferExecCompleted
_0805FB62: _0805FB62:
pop {r4-r6} pop {r4-r6}
@@ -1415,13 +1415,13 @@ sub_805FD00: @ 805FD00
ldr r2, =gEnemyParty ldr r2, =gEnemyParty
adds r1, r2 adds r1, r2
movs r2, 0 movs r2, 0
bl healthbar_draw_field_maybe bl UpdateHealthboxAttribute
ldrb r0, [r5] ldrb r0, [r5]
bl sub_8076918 bl sub_8076918
ldrb r0, [r5] ldrb r0, [r5]
adds r0, r4 adds r0, r4
ldrb r0, [r0] ldrb r0, [r0]
bl sub_80729D0 bl SetHealthboxSpriteVisible
ldrb r0, [r5] ldrb r0, [r5]
bl sub_805E408 bl sub_805E408
ldr r1, =gBattleBankFunc ldr r1, =gBattleBankFunc
@@ -1507,7 +1507,7 @@ _0805FE22:
lsls r1, 16 lsls r1, 16
lsrs r1, 16 lsrs r1, 16
adds r0, r4, 0 adds r0, r4, 0
bl sub_805EE54 bl SetBankEnemyShadowSpriteCallback
ldr r1, =gBattleBankFunc ldr r1, =gBattleBankFunc
ldrb r0, [r5] ldrb r0, [r5]
lsls r0, 2 lsls r0, 2
@@ -3730,7 +3730,7 @@ sub_8061224: @ 8061224
ldrh r0, [r0] ldrh r0, [r0]
muls r0, r7 muls r0, r7
add r0, r10 add r0, r10
bl sub_805DC0C bl BattleLoadOpponentMonSpriteGfx
ldrb r0, [r6] ldrb r0, [r6]
bl GetBankIdentity bl GetBankIdentity
adds r1, r0, 0 adds r1, r0, 0
@@ -3828,7 +3828,7 @@ sub_8061224: @ 8061224
lsls r1, 16 lsls r1, 16
lsrs r1, 16 lsrs r1, 16
adds r0, r4, 0 adds r0, r4, 0
bl sub_805EE54 bl SetBankEnemyShadowSpriteCallback
ldr r1, =gBattleBankFunc ldr r1, =gBattleBankFunc
ldrb r0, [r6] ldrb r0, [r6]
lsls r0, 2 lsls r0, 2
@@ -3934,7 +3934,7 @@ sub_80613DC: @ 80613DC
adds r0, r1, 0 adds r0, r1, 0
adds r0, r5 adds r0, r5
adds r1, r6, 0 adds r1, r6, 0
bl sub_805DC0C bl BattleLoadOpponentMonSpriteGfx
adds r0, r6, 0 adds r0, r6, 0
bl GetBankIdentity bl GetBankIdentity
adds r1, r0, 0 adds r1, r0, 0
@@ -4109,7 +4109,7 @@ _080615B4:
ldrb r0, [r6] ldrb r0, [r6]
adds r0, r1 adds r0, r1
ldrb r0, [r0] ldrb r0, [r0]
bl sub_8072984 bl SetHealthboxSpriteInvisible
bl OpponentBufferExecCompleted bl OpponentBufferExecCompleted
_080615F0: _080615F0:
pop {r4-r6} pop {r4-r6}
@@ -5212,7 +5212,7 @@ sub_8061F90: @ 8061F90
thumb_func_start sub_8061F9C thumb_func_start sub_8061F9C
sub_8061F9C: @ 8061F9C sub_8061F9C: @ 8061F9C
push {lr} push {lr}
bl sub_8063880 bl AI_TrySwitchOrUseItem
bl OpponentBufferExecCompleted bl OpponentBufferExecCompleted
pop {r0} pop {r0}
bx r0 bx r0
@@ -5243,7 +5243,7 @@ sub_8061FB8: @ 8061FB8
movs r0, 0x1 movs r0, 0x1
movs r1, 0xA movs r1, 0xA
_08061FD6: _08061FD6:
bl dp01_build_cmdbuf_x21_a_bb bl EmitCmd_x21
_08061FDA: _08061FDA:
bl OpponentBufferExecCompleted bl OpponentBufferExecCompleted
b _08062156 b _08062156
@@ -5347,7 +5347,7 @@ _0806209C:
movs r0, 0x1 movs r0, 0x1
movs r1, 0xA movs r1, 0xA
adds r2, r4, 0 adds r2, r4, 0
bl dp01_build_cmdbuf_x21_a_bb bl EmitCmd_x21
b _08061FDA b _08061FDA
.pool .pool
_080620C4: _080620C4:
@@ -5378,7 +5378,7 @@ _080620C6:
movs r0, 0x1 movs r0, 0x1
movs r1, 0xA movs r1, 0xA
adds r2, r4, 0 adds r2, r4, 0
bl dp01_build_cmdbuf_x21_a_bb bl EmitCmd_x21
b _08062152 b _08062152
.pool .pool
_08062108: _08062108:
@@ -5401,7 +5401,7 @@ _08062108:
orrs r2, r4 orrs r2, r4
movs r0, 0x1 movs r0, 0x1
movs r1, 0xA movs r1, 0xA
bl dp01_build_cmdbuf_x21_a_bb bl EmitCmd_x21
b _08062152 b _08062152
.pool .pool
_0806213C: _0806213C:
@@ -5413,7 +5413,7 @@ _0806213C:
orrs r2, r4 orrs r2, r4
movs r0, 0x1 movs r0, 0x1
movs r1, 0xA movs r1, 0xA
bl dp01_build_cmdbuf_x21_a_bb bl EmitCmd_x21
_08062152: _08062152:
bl OpponentBufferExecCompleted bl OpponentBufferExecCompleted
_08062156: _08062156:
@@ -5456,7 +5456,7 @@ sub_8062188: @ 8062188
ldrb r0, [r1] ldrb r0, [r1]
cmp r0, 0x6 cmp r0, 0x6
bne _08062254 bne _08062254
bl sub_8063A90 bl GetMostSuitableMonToSwitchInto
lsls r0, 24 lsls r0, 24
lsrs r4, r0, 24 lsrs r4, r0, 24
cmp r4, 0x6 cmp r4, 0x6
@@ -5692,7 +5692,7 @@ sub_8062390: @ 8062390
ldr r2, =gEnemyParty ldr r2, =gEnemyParty
adds r1, r2 adds r1, r2
movs r2, 0x9 movs r2, 0x9
bl healthbar_draw_field_maybe bl UpdateHealthboxAttribute
ldrb r2, [r4] ldrb r2, [r4]
ldr r0, =gBattleSpritesDataPtr ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0] ldr r0, [r0]
@@ -6244,7 +6244,7 @@ sub_8062828: @ 8062828
adds r0, r1 adds r0, r1
ldrh r0, [r0, 0x8] ldrh r0, [r0, 0x8]
strb r0, [r7] strb r0, [r7]
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _0806286C beq _0806286C
+54 -54
View File
@@ -226,7 +226,7 @@ _0805764C:
movs r0, 0x1 movs r0, 0x1
movs r1, 0x3 movs r1, 0x3
movs r2, 0 movs r2, 0
bl dp01_build_cmdbuf_x21_a_bb bl EmitCmd_x21
b _080577C2 b _080577C2
_08057658: _08057658:
movs r0, 0x20 movs r0, 0x20
@@ -249,7 +249,7 @@ _08057674:
ldrb r0, [r4] ldrb r0, [r4]
adds r0, r5 adds r0, r5
ldrb r0, [r0] ldrb r0, [r0]
bl sub_8059CF8 bl ActionSelectionDestroyCursorAt
ldrb r1, [r4] ldrb r1, [r4]
adds r1, r5 adds r1, r5
ldrb r0, [r1] ldrb r0, [r1]
@@ -277,7 +277,7 @@ _080576B4:
ldrb r0, [r4] ldrb r0, [r4]
adds r0, r5 adds r0, r5
ldrb r0, [r0] ldrb r0, [r0]
bl sub_8059CF8 bl ActionSelectionDestroyCursorAt
ldrb r1, [r4] ldrb r1, [r4]
adds r1, r5 adds r1, r5
ldrb r0, [r1] ldrb r0, [r1]
@@ -321,7 +321,7 @@ _0805771A:
ldrb r0, [r4] ldrb r0, [r4]
adds r0, r5 adds r0, r5
ldrb r0, [r0] ldrb r0, [r0]
bl sub_8059CF8 bl ActionSelectionDestroyCursorAt
ldrb r1, [r4] ldrb r1, [r4]
adds r1, r5 adds r1, r5
ldrb r0, [r1] ldrb r0, [r1]
@@ -333,7 +333,7 @@ _08057732:
adds r0, r5 adds r0, r5
ldrb r0, [r0] ldrb r0, [r0]
movs r1, 0 movs r1, 0
bl sub_8059CB4 bl ActionSelectionCreateCursorAt
b _080577E8 b _080577E8
.pool .pool
_0805774C: _0805774C:
@@ -393,7 +393,7 @@ _080577B2:
movs r1, 0xC movs r1, 0xC
_080577BC: _080577BC:
movs r2, 0 movs r2, 0
bl dp01_build_cmdbuf_x21_a_bb bl EmitCmd_x21
_080577C2: _080577C2:
bl PlayerBufferExecCompleted bl PlayerBufferExecCompleted
b _080577E8 b _080577E8
@@ -518,7 +518,7 @@ _080578A0:
orrs r2, r0 orrs r2, r0
movs r0, 0x1 movs r0, 0x1
movs r1, 0xA movs r1, 0xA
bl dp01_build_cmdbuf_x21_a_bb bl EmitCmd_x21
ldrb r0, [r4] ldrb r0, [r4]
movs r1, 0x1 movs r1, 0x1
bl dp11b_obj_free bl dp11b_obj_free
@@ -1086,7 +1086,7 @@ _08057E14:
_08057E1C: _08057E1C:
movs r0, 0x1 movs r0, 0x1
movs r1, 0xA movs r1, 0xA
bl dp01_build_cmdbuf_x21_a_bb bl EmitCmd_x21
bl PlayerBufferExecCompleted bl PlayerBufferExecCompleted
b _08057F9E b _08057F9E
.pool .pool
@@ -2385,11 +2385,11 @@ sub_805896C: @ 805896C
mov r5, r8 mov r5, r8
push {r5-r7} push {r5-r7}
movs r7, 0 movs r7, 0
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _08058998 beq _08058998
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _080589D0 beq _080589D0
@@ -2541,7 +2541,7 @@ _08058A0E:
ldr r4, =gPlayerParty ldr r4, =gPlayerParty
adds r0, r4 adds r0, r4
bl sub_805E990 bl sub_805E990
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _08058AE4 beq _08058AE4
@@ -2672,7 +2672,7 @@ _08058BB2:
ands r0, r1 ands r0, r1
cmp r0, 0 cmp r0, 0
bne _08058C68 bne _08058C68
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _08058C38 beq _08058C38
@@ -2697,7 +2697,7 @@ _08058BB2:
ldr r2, =gPlayerParty ldr r2, =gPlayerParty
adds r1, r2 adds r1, r2
movs r2, 0 movs r2, 0
bl healthbar_draw_field_maybe bl UpdateHealthboxAttribute
ldrb r0, [r7] ldrb r0, [r7]
eors r0, r6 eors r0, r6
bl sub_8076918 bl sub_8076918
@@ -2705,7 +2705,7 @@ _08058BB2:
eors r0, r6 eors r0, r6
adds r0, r4 adds r0, r4
ldrb r0, [r0] ldrb r0, [r0]
bl sub_80729D0 bl SetHealthboxSpriteVisible
_08058C38: _08058C38:
ldr r5, =gHealthBoxesIds ldr r5, =gHealthBoxesIds
ldr r4, =gActiveBank ldr r4, =gActiveBank
@@ -2721,13 +2721,13 @@ _08058C38:
ldr r2, =gPlayerParty ldr r2, =gPlayerParty
adds r1, r2 adds r1, r2
movs r2, 0 movs r2, 0
bl healthbar_draw_field_maybe bl UpdateHealthboxAttribute
ldrb r0, [r4] ldrb r0, [r4]
bl sub_8076918 bl sub_8076918
ldrb r0, [r4] ldrb r0, [r4]
adds r0, r5 adds r0, r5
ldrb r0, [r0] ldrb r0, [r0]
bl sub_80729D0 bl SetHealthboxSpriteVisible
_08058C68: _08058C68:
ldr r0, =gBattleSpritesDataPtr ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0] ldr r2, [r0]
@@ -2817,11 +2817,11 @@ _08058D14:
movs r0, 0x1 movs r0, 0x1
mov r9, r0 mov r9, r0
_08058D32: _08058D32:
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _08058D52 beq _08058D52
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _08058DAC beq _08058DAC
@@ -2915,7 +2915,7 @@ _08058E0A:
mov r0, r8 mov r0, r8
cmp r0, 0 cmp r0, 0
beq _08058EAA beq _08058EAA
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _08058E48 beq _08058E48
@@ -3207,13 +3207,13 @@ _0805905E:
ldr r2, =gPlayerParty ldr r2, =gPlayerParty
adds r1, r2 adds r1, r2
movs r2, 0 movs r2, 0
bl healthbar_draw_field_maybe bl UpdateHealthboxAttribute
ldrb r0, [r5] ldrb r0, [r5]
bl sub_8076918 bl sub_8076918
ldrb r0, [r5] ldrb r0, [r5]
adds r0, r4 adds r0, r4
ldrb r0, [r0] ldrb r0, [r0]
bl sub_80729D0 bl SetHealthboxSpriteVisible
ldr r1, =gBattleBankFunc ldr r1, =gBattleBankFunc
ldrb r0, [r5] ldrb r0, [r5]
lsls r0, 2 lsls r0, 2
@@ -3267,7 +3267,7 @@ bx_t1_healthbar_update: @ 8059130
ldrb r0, [r5] ldrb r0, [r5]
adds r0, r6 adds r0, r6
ldrb r0, [r0] ldrb r0, [r0]
bl sub_80729D0 bl SetHealthboxSpriteVisible
lsls r4, 16 lsls r4, 16
asrs r1, r4, 16 asrs r1, r4, 16
movs r0, 0x1 movs r0, 0x1
@@ -3338,7 +3338,7 @@ sub_80591B8: @ 80591B8
str r7, [sp, 0x8] str r7, [sp, 0x8]
ldrh r2, [r1, 0xA] ldrh r2, [r1, 0xA]
str r2, [sp, 0xC] str r2, [sp, 0xC]
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r0, 0x1 cmp r0, 0x1
@@ -3413,9 +3413,9 @@ _080591FE:
lsrs r2, 16 lsrs r2, 16
movs r0, 0x1 movs r0, 0x1
movs r1, 0xB movs r1, 0xB
bl dp01_build_cmdbuf_x21_a_bb bl EmitCmd_x21
strb r5, [r4] strb r5, [r4]
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r0, 0x1 cmp r0, 0x1
@@ -3616,7 +3616,7 @@ _08059430:
lsls r4, 16 lsls r4, 16
lsrs r4, 16 lsrs r4, 16
ldrb r0, [r5] ldrb r0, [r5]
bl sub_80729D0 bl SetHealthboxSpriteVisible
lsls r4, 16 lsls r4, 16
asrs r4, 16 asrs r4, 16
movs r0, 0x1 movs r0, 0x1
@@ -3686,7 +3686,7 @@ _08059430:
lsrs r2, 16 lsrs r2, 16
movs r0, 0x1 movs r0, 0x1
movs r1, 0xB movs r1, 0xB
bl dp01_build_cmdbuf_x21_a_bb bl EmitCmd_x21
strb r5, [r4] strb r5, [r4]
ldr r0, =sub_8059544 ldr r0, =sub_8059544
str r0, [r6] str r0, [r6]
@@ -3729,7 +3729,7 @@ sub_8059544: @ 8059544
adds r0, r1 adds r0, r1
ldrb r4, [r0, 0xC] ldrb r4, [r0, 0xC]
ldrb r6, [r0, 0x8] ldrb r6, [r0, 0x8]
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r0, 0x1 cmp r0, 0x1
@@ -3795,7 +3795,7 @@ sub_80595A4: @ 80595A4
adds r0, r7, 0 adds r0, r7, 0
movs r1, 0x38 movs r1, 0x38
bl GetMonData bl GetMonData
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r0, 0x1 cmp r0, 0x1
@@ -3814,7 +3814,7 @@ sub_80595A4: @ 80595A4
ldrb r0, [r0] ldrb r0, [r0]
adds r1, r7, 0 adds r1, r7, 0
movs r2, 0 movs r2, 0
bl healthbar_draw_field_maybe bl UpdateHealthboxAttribute
b _08059638 b _08059638
.pool .pool
_08059624: _08059624:
@@ -3826,7 +3826,7 @@ _08059624:
ldr r2, =gPlayerParty ldr r2, =gPlayerParty
adds r1, r2 adds r1, r2
movs r2, 0 movs r2, 0
bl healthbar_draw_field_maybe bl UpdateHealthboxAttribute
_08059638: _08059638:
ldr r0, =gTasks ldr r0, =gTasks
lsls r1, r6, 2 lsls r1, r6, 2
@@ -3930,7 +3930,7 @@ sub_80596A8: @ 80596A8
ldrb r0, [r4] ldrb r0, [r4]
adds r0, r1 adds r0, r1
ldrb r0, [r0] ldrb r0, [r0]
bl sub_8072984 bl SetHealthboxSpriteInvisible
bl PlayerBufferExecCompleted bl PlayerBufferExecCompleted
_08059724: _08059724:
pop {r4-r6} pop {r4-r6}
@@ -3977,7 +3977,7 @@ sub_8059744: @ 8059744
ldrb r0, [r6] ldrb r0, [r6]
adds r0, r1 adds r0, r1
ldrb r0, [r0] ldrb r0, [r0]
bl sub_8072984 bl SetHealthboxSpriteInvisible
bl PlayerBufferExecCompleted bl PlayerBufferExecCompleted
_08059798: _08059798:
pop {r4-r6} pop {r4-r6}
@@ -4291,14 +4291,14 @@ _08059A2C:
movs r0, 0x1 movs r0, 0x1
movs r1, 0xE movs r1, 0xE
movs r2, 0 movs r2, 0
bl dp01_build_cmdbuf_x21_a_bb bl EmitCmd_x21
b _08059A76 b _08059A76
.pool .pool
_08059A6C: _08059A6C:
movs r0, 0x1 movs r0, 0x1
movs r1, 0xD movs r1, 0xD
movs r2, 0 movs r2, 0
bl dp01_build_cmdbuf_x21_a_bb bl EmitCmd_x21
_08059A76: _08059A76:
bl PlayerBufferExecCompleted bl PlayerBufferExecCompleted
_08059A7A: _08059A7A:
@@ -4561,8 +4561,8 @@ battle_menu_cursor_related: @ 8059C70
.pool .pool
thumb_func_end battle_menu_cursor_related thumb_func_end battle_menu_cursor_related
thumb_func_start sub_8059CB4 thumb_func_start ActionSelectionCreateCursorAt
sub_8059CB4: @ 8059CB4 ActionSelectionCreateCursorAt: @ 8059CB4
push {r4,lr} push {r4,lr}
sub sp, 0x10 sub sp, 0x10
adds r3, r0, 0 adds r3, r0, 0
@@ -4595,10 +4595,10 @@ sub_8059CB4: @ 8059CB4
pop {r4} pop {r4}
pop {r0} pop {r0}
bx r0 bx r0
thumb_func_end sub_8059CB4 thumb_func_end ActionSelectionCreateCursorAt
thumb_func_start sub_8059CF8 thumb_func_start ActionSelectionDestroyCursorAt
sub_8059CF8: @ 8059CF8 ActionSelectionDestroyCursorAt: @ 8059CF8
push {lr} push {lr}
sub sp, 0x10 sub sp, 0x10
adds r3, r0, 0 adds r3, r0, 0
@@ -4632,7 +4632,7 @@ sub_8059CF8: @ 8059CF8
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
thumb_func_end sub_8059CF8 thumb_func_end ActionSelectionDestroyCursorAt
thumb_func_start sub_8059D40 thumb_func_start sub_8059D40
sub_8059D40: @ 8059D40 sub_8059D40: @ 8059D40
@@ -6866,7 +6866,7 @@ sub_805B164: @ 805B164
muls r0, r2 muls r0, r2
ldr r2, =gPlayerParty ldr r2, =gPlayerParty
adds r0, r2 adds r0, r2
bl sub_805DD7C bl BattleLoadPlayerMonSpriteGfx
ldr r2, =gSprites ldr r2, =gSprites
ldr r0, =gBankSpriteIds ldr r0, =gBankSpriteIds
ldrb r3, [r4] ldrb r3, [r4]
@@ -6923,7 +6923,7 @@ sub_805B1CC: @ 805B1CC
muls r0, r2 muls r0, r2
ldr r2, =gPlayerParty ldr r2, =gPlayerParty
adds r0, r2 adds r0, r2
bl sub_805DD7C bl BattleLoadPlayerMonSpriteGfx
ldr r1, =gActionSelectionCursor ldr r1, =gActionSelectionCursor
ldrb r0, [r5] ldrb r0, [r5]
adds r0, r1 adds r0, r1
@@ -7162,7 +7162,7 @@ _0805B41C:
ldrb r0, [r6] ldrb r0, [r6]
adds r0, r1 adds r0, r1
ldrb r0, [r0] ldrb r0, [r0]
bl sub_8072984 bl SetHealthboxSpriteInvisible
bl PlayerBufferExecCompleted bl PlayerBufferExecCompleted
_0805B452: _0805B452:
pop {r4-r6} pop {r4-r6}
@@ -7542,7 +7542,7 @@ _0805B794:
ldr r5, =gActiveBank ldr r5, =gActiveBank
ldrb r1, [r5] ldrb r1, [r5]
adds r0, r4, 0 adds r0, r4, 0
bl sub_805DF84 bl LoadBackTrainerBankSpriteGfx
ldrb r0, [r5] ldrb r0, [r5]
bl GetBankIdentity bl GetBankIdentity
adds r1, r0, 0 adds r1, r0, 0
@@ -7724,7 +7724,7 @@ _0805B926:
ldr r5, =gActiveBank ldr r5, =gActiveBank
ldrb r1, [r5] ldrb r1, [r5]
adds r0, r4, 0 adds r0, r4, 0
bl sub_805DF84 bl LoadBackTrainerBankSpriteGfx
ldrb r0, [r5] ldrb r0, [r5]
bl GetBankIdentity bl GetBankIdentity
adds r1, r0, 0 adds r1, r0, 0
@@ -8539,7 +8539,7 @@ dp01t_12_6_battle_menu: @ 805C044
_0805C062: _0805C062:
lsls r0, r4, 24 lsls r0, r4, 24
lsrs r0, 24 lsrs r0, 24
bl sub_8059CF8 bl ActionSelectionDestroyCursorAt
adds r4, 0x1 adds r4, 0x1
cmp r4, 0x3 cmp r4, 0x3
ble _0805C062 ble _0805C062
@@ -8549,7 +8549,7 @@ _0805C062:
adds r0, r1 adds r0, r1
ldrb r0, [r0] ldrb r0, [r0]
movs r1, 0 movs r1, 0
bl sub_8059CB4 bl ActionSelectionCreateCursorAt
ldr r0, =gText_WhatWillPkmnDo ldr r0, =gText_WhatWillPkmnDo
bl BattleStringExpandPlaceholdersToDisplayedString bl BattleStringExpandPlaceholdersToDisplayedString
ldr r0, =gDisplayedStringBattle ldr r0, =gDisplayedStringBattle
@@ -8658,7 +8658,7 @@ sub_805C158: @ 805C158
lsrs r2, 16 lsrs r2, 16
movs r0, 0x1 movs r0, 0x1
movs r1, 0xA movs r1, 0xA
bl dp01_build_cmdbuf_x21_a_bb bl EmitCmd_x21
bl PlayerBufferExecCompleted bl PlayerBufferExecCompleted
_0805C194: _0805C194:
pop {r0} pop {r0}
@@ -9130,7 +9130,7 @@ sub_805C5C4: @ 805C5C4
ldr r2, =gPlayerParty ldr r2, =gPlayerParty
adds r1, r2 adds r1, r2
movs r2, 0x9 movs r2, 0x9
bl healthbar_draw_field_maybe bl UpdateHealthboxAttribute
ldrb r2, [r4] ldrb r2, [r4]
ldr r0, =gBattleSpritesDataPtr ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0] ldr r0, [r0]
@@ -9378,7 +9378,7 @@ sub_805C80C: @ 805C80C
movs r0, 0x1 movs r0, 0x1
movs r1, 0 movs r1, 0
movs r2, 0 movs r2, 0
bl dp01_build_cmdbuf_x21_a_bb bl EmitCmd_x21
bl PlayerBufferExecCompleted bl PlayerBufferExecCompleted
pop {r0} pop {r0}
bx r0 bx r0
@@ -9860,7 +9860,7 @@ sub_805CC00: @ 805CC00
ldr r1, =gPlayerParty ldr r1, =gPlayerParty
adds r0, r1 adds r0, r1
adds r1, r4, 0 adds r1, r4, 0
bl sub_805DD7C bl BattleLoadPlayerMonSpriteGfx
ldr r0, =gBankSpriteIds ldr r0, =gBankSpriteIds
adds r4, r0 adds r4, r0
ldrb r1, [r4] ldrb r1, [r4]
@@ -9906,7 +9906,7 @@ _0805CC94:
mov r9, r0 mov r9, r0
ldrh r0, [r1, 0x8] ldrh r0, [r1, 0x8]
strb r0, [r7] strb r0, [r7]
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _0805CCB4 beq _0805CCB4
@@ -9965,7 +9965,7 @@ _0805CCE4:
muls r0, r2 muls r0, r2
ldr r2, =gPlayerParty ldr r2, =gPlayerParty
adds r0, r2 adds r0, r2
bl sub_805DD7C bl BattleLoadPlayerMonSpriteGfx
ldrb r0, [r7] ldrb r0, [r7]
movs r1, 0 movs r1, 0
bl sub_805B258 bl sub_805B258
+31 -31
View File
@@ -169,11 +169,11 @@ _081BAF38:
sub_81BAF48: @ 81BAF48 sub_81BAF48: @ 81BAF48
push {r4-r6,lr} push {r4-r6,lr}
movs r6, 0 movs r6, 0
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _081BAF6C beq _081BAF6C
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _081BAFA0 beq _081BAFA0
@@ -349,7 +349,7 @@ _081BB07A:
lsls r0, 2 lsls r0, 2
adds r0, r2 adds r0, r2
strb r6, [r0, 0x9] strb r6, [r0, 0x9]
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _081BB134 beq _081BB134
@@ -384,7 +384,7 @@ _081BB07A:
ldr r2, =gPlayerParty ldr r2, =gPlayerParty
adds r1, r2 adds r1, r2
movs r2, 0 movs r2, 0
bl healthbar_draw_field_maybe bl UpdateHealthboxAttribute
ldrb r0, [r7] ldrb r0, [r7]
mov r1, r8 mov r1, r8
eors r0, r1 eors r0, r1
@@ -394,7 +394,7 @@ _081BB07A:
eors r0, r1 eors r0, r1
adds r0, r4 adds r0, r4
ldrb r0, [r0] ldrb r0, [r0]
bl sub_80729D0 bl SetHealthboxSpriteVisible
_081BB134: _081BB134:
ldr r1, =gUnknown_03005D7C ldr r1, =gUnknown_03005D7C
ldr r4, =gActiveBank ldr r4, =gActiveBank
@@ -420,13 +420,13 @@ _081BB134:
ldr r2, =gPlayerParty ldr r2, =gPlayerParty
adds r1, r2 adds r1, r2
movs r2, 0 movs r2, 0
bl healthbar_draw_field_maybe bl UpdateHealthboxAttribute
ldrb r0, [r4] ldrb r0, [r4]
bl sub_8076918 bl sub_8076918
ldrb r0, [r4] ldrb r0, [r4]
adds r0, r5 adds r0, r5
ldrb r0, [r0] ldrb r0, [r0]
bl sub_80729D0 bl SetHealthboxSpriteVisible
ldr r0, =gBattleSpritesDataPtr ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0] ldr r0, [r0]
ldr r2, [r0, 0x8] ldr r2, [r0, 0x8]
@@ -499,7 +499,7 @@ bx_t3_healthbar_update: @ 81BB214
ldrb r0, [r5] ldrb r0, [r5]
adds r0, r6 adds r0, r6
ldrb r0, [r0] ldrb r0, [r0]
bl sub_80729D0 bl SetHealthboxSpriteVisible
lsls r4, 16 lsls r4, 16
asrs r1, r4, 16 asrs r1, r4, 16
movs r0, 0x1 movs r0, 0x1
@@ -570,7 +570,7 @@ sub_81BB29C: @ 81BB29C
str r7, [sp, 0x8] str r7, [sp, 0x8]
ldrh r2, [r1, 0xA] ldrh r2, [r1, 0xA]
str r2, [sp, 0xC] str r2, [sp, 0xC]
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r0, 0x1 cmp r0, 0x1
@@ -645,9 +645,9 @@ _081BB2E2:
lsrs r2, 16 lsrs r2, 16
movs r0, 0x1 movs r0, 0x1
movs r1, 0xB movs r1, 0xB
bl dp01_build_cmdbuf_x21_a_bb bl EmitCmd_x21
strb r5, [r4] strb r5, [r4]
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r0, 0x1 cmp r0, 0x1
@@ -848,7 +848,7 @@ _081BB514:
lsls r4, 16 lsls r4, 16
lsrs r4, 16 lsrs r4, 16
ldrb r0, [r5] ldrb r0, [r5]
bl sub_80729D0 bl SetHealthboxSpriteVisible
lsls r4, 16 lsls r4, 16
asrs r4, 16 asrs r4, 16
movs r0, 0x1 movs r0, 0x1
@@ -918,7 +918,7 @@ _081BB514:
lsrs r2, 16 lsrs r2, 16
movs r0, 0x1 movs r0, 0x1
movs r1, 0xB movs r1, 0xB
bl dp01_build_cmdbuf_x21_a_bb bl EmitCmd_x21
strb r5, [r4] strb r5, [r4]
ldr r0, =sub_81BB628 ldr r0, =sub_81BB628
str r0, [r6] str r0, [r6]
@@ -961,7 +961,7 @@ sub_81BB628: @ 81BB628
adds r0, r1 adds r0, r1
ldrb r4, [r0, 0xC] ldrb r4, [r0, 0xC]
ldrb r6, [r0, 0x8] ldrb r6, [r0, 0x8]
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r0, 0x1 cmp r0, 0x1
@@ -1027,7 +1027,7 @@ sub_81BB688: @ 81BB688
adds r0, r7, 0 adds r0, r7, 0
movs r1, 0x38 movs r1, 0x38
bl GetMonData bl GetMonData
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r0, 0x1 cmp r0, 0x1
@@ -1046,7 +1046,7 @@ sub_81BB688: @ 81BB688
ldrb r0, [r0] ldrb r0, [r0]
adds r1, r7, 0 adds r1, r7, 0
movs r2, 0 movs r2, 0
bl healthbar_draw_field_maybe bl UpdateHealthboxAttribute
b _081BB71C b _081BB71C
.pool .pool
_081BB708: _081BB708:
@@ -1058,7 +1058,7 @@ _081BB708:
ldr r2, =gPlayerParty ldr r2, =gPlayerParty
adds r1, r2 adds r1, r2
movs r2, 0 movs r2, 0
bl healthbar_draw_field_maybe bl UpdateHealthboxAttribute
_081BB71C: _081BB71C:
ldr r0, =gTasks ldr r0, =gTasks
lsls r1, r6, 2 lsls r1, r6, 2
@@ -1162,7 +1162,7 @@ sub_81BB78C: @ 81BB78C
ldrb r0, [r4] ldrb r0, [r4]
adds r0, r1 adds r0, r1
ldrb r0, [r0] ldrb r0, [r0]
bl sub_8072984 bl SetHealthboxSpriteInvisible
bl PlayerPartnerBufferExecCompleted bl PlayerPartnerBufferExecCompleted
_081BB808: _081BB808:
pop {r4-r6} pop {r4-r6}
@@ -1209,7 +1209,7 @@ sub_81BB828: @ 81BB828
ldrb r0, [r6] ldrb r0, [r6]
adds r0, r1 adds r0, r1
ldrb r0, [r0] ldrb r0, [r0]
bl sub_8072984 bl SetHealthboxSpriteInvisible
bl PlayerPartnerBufferExecCompleted bl PlayerPartnerBufferExecCompleted
_081BB87C: _081BB87C:
pop {r4-r6} pop {r4-r6}
@@ -1453,13 +1453,13 @@ sub_81BB9F4: @ 81BB9F4
muls r1, r6 muls r1, r6
adds r1, r5 adds r1, r5
movs r2, 0 movs r2, 0
bl healthbar_draw_field_maybe bl UpdateHealthboxAttribute
ldrb r0, [r7] ldrb r0, [r7]
bl sub_8076918 bl sub_8076918
ldrb r0, [r7] ldrb r0, [r7]
adds r0, r4 adds r0, r4
ldrb r0, [r0] ldrb r0, [r0]
bl sub_80729D0 bl SetHealthboxSpriteVisible
ldr r1, =gBattleBankFunc ldr r1, =gBattleBankFunc
ldrb r0, [r7] ldrb r0, [r7]
lsls r0, 2 lsls r0, 2
@@ -3729,7 +3729,7 @@ sub_81BCF58: @ 81BCF58
muls r0, r5 muls r0, r5
ldr r4, =gPlayerParty ldr r4, =gPlayerParty
adds r0, r4 adds r0, r4
bl sub_805DD7C bl BattleLoadPlayerMonSpriteGfx
ldrb r0, [r6] ldrb r0, [r6]
lsls r0, 1 lsls r0, 1
add r0, r8 add r0, r8
@@ -3858,7 +3858,7 @@ sub_81BD074: @ 81BD074
muls r0, r2 muls r0, r2
ldr r2, =gPlayerParty ldr r2, =gPlayerParty
adds r0, r2 adds r0, r2
bl sub_805DD7C bl BattleLoadPlayerMonSpriteGfx
ldrb r0, [r5] ldrb r0, [r5]
lsls r1, r0, 9 lsls r1, r0, 9
adds r1, r6 adds r1, r6
@@ -4089,7 +4089,7 @@ _081BD2A8:
ldrb r0, [r6] ldrb r0, [r6]
adds r0, r1 adds r0, r1
ldrb r0, [r0] ldrb r0, [r0]
bl sub_8072984 bl SetHealthboxSpriteInvisible
bl PlayerPartnerBufferExecCompleted bl PlayerPartnerBufferExecCompleted
_081BD2DE: _081BD2DE:
pop {r4-r6} pop {r4-r6}
@@ -4213,7 +4213,7 @@ _081BD3BE:
ldr r5, =gActiveBank ldr r5, =gActiveBank
ldrb r1, [r5] ldrb r1, [r5]
adds r0, r4, 0 adds r0, r4, 0
bl sub_805DF84 bl LoadBackTrainerBankSpriteGfx
ldrb r0, [r5] ldrb r0, [r5]
bl GetBankIdentity bl GetBankIdentity
adds r1, r0, 0 adds r1, r0, 0
@@ -4990,7 +4990,7 @@ sub_81BDAA0: @ 81BDAA0
thumb_func_start sub_81BDAAC thumb_func_start sub_81BDAAC
sub_81BDAAC: @ 81BDAAC sub_81BDAAC: @ 81BDAAC
push {lr} push {lr}
bl sub_8063880 bl AI_TrySwitchOrUseItem
bl PlayerPartnerBufferExecCompleted bl PlayerPartnerBufferExecCompleted
pop {r0} pop {r0}
bx r0 bx r0
@@ -5068,7 +5068,7 @@ _081BDB3C:
orrs r2, r5 orrs r2, r5
movs r0, 0x1 movs r0, 0x1
movs r1, 0xA movs r1, 0xA
bl dp01_build_cmdbuf_x21_a_bb bl EmitCmd_x21
bl PlayerPartnerBufferExecCompleted bl PlayerPartnerBufferExecCompleted
pop {r4-r6} pop {r4-r6}
pop {r0} pop {r0}
@@ -5087,7 +5087,7 @@ sub_81BDB70: @ 81BDB70
thumb_func_start sub_81BDB7C thumb_func_start sub_81BDB7C
sub_81BDB7C: @ 81BDB7C sub_81BDB7C: @ 81BDB7C
push {r4-r6,lr} push {r4-r6,lr}
bl sub_8063A90 bl GetMostSuitableMonToSwitchInto
lsls r0, 24 lsls r0, 24
lsrs r4, r0, 24 lsrs r4, r0, 24
cmp r4, 0x6 cmp r4, 0x6
@@ -5338,7 +5338,7 @@ sub_81BDD9C: @ 81BDD9C
ldr r2, =gPlayerParty ldr r2, =gPlayerParty
adds r1, r2 adds r1, r2
movs r2, 0x9 movs r2, 0x9
bl healthbar_draw_field_maybe bl UpdateHealthboxAttribute
ldrb r2, [r4] ldrb r2, [r4]
ldr r0, =gBattleSpritesDataPtr ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0] ldr r0, [r0]
@@ -5950,7 +5950,7 @@ _081BE2F4:
mov r9, r0 mov r9, r0
ldrh r0, [r1, 0x8] ldrh r0, [r1, 0x8]
strb r0, [r7] strb r0, [r7]
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _081BE314 beq _081BE314
@@ -6009,7 +6009,7 @@ _081BE344:
muls r0, r2 muls r0, r2
ldr r2, =gPlayerParty ldr r2, =gPlayerParty
adds r0, r2 adds r0, r2
bl sub_805DD7C bl BattleLoadPlayerMonSpriteGfx
ldrb r0, [r7] ldrb r0, [r7]
movs r1, 0 movs r1, 0
bl sub_81BD0E4 bl sub_81BD0E4
+26 -26
View File
@@ -198,11 +198,11 @@ sub_8186678: @ 8186678
push {r6,r7} push {r6,r7}
movs r0, 0 movs r0, 0
mov r9, r0 mov r9, r0
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _081866A4 beq _081866A4
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _081866F8 beq _081866F8
@@ -504,7 +504,7 @@ _081868DE:
ands r0, r1 ands r0, r1
cmp r0, 0 cmp r0, 0
bne _08186994 bne _08186994
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _08186964 beq _08186964
@@ -529,7 +529,7 @@ _081868DE:
ldr r2, =gEnemyParty ldr r2, =gEnemyParty
adds r1, r2 adds r1, r2
movs r2, 0 movs r2, 0
bl healthbar_draw_field_maybe bl UpdateHealthboxAttribute
ldrb r0, [r7] ldrb r0, [r7]
eors r0, r6 eors r0, r6
bl sub_8076918 bl sub_8076918
@@ -537,7 +537,7 @@ _081868DE:
eors r0, r6 eors r0, r6
adds r0, r4 adds r0, r4
ldrb r0, [r0] ldrb r0, [r0]
bl sub_80729D0 bl SetHealthboxSpriteVisible
_08186964: _08186964:
ldr r5, =gHealthBoxesIds ldr r5, =gHealthBoxesIds
ldr r4, =gActiveBank ldr r4, =gActiveBank
@@ -553,13 +553,13 @@ _08186964:
ldr r2, =gEnemyParty ldr r2, =gEnemyParty
adds r1, r2 adds r1, r2
movs r2, 0 movs r2, 0
bl healthbar_draw_field_maybe bl UpdateHealthboxAttribute
ldrb r0, [r4] ldrb r0, [r4]
bl sub_8076918 bl sub_8076918
ldrb r0, [r4] ldrb r0, [r4]
adds r0, r5 adds r0, r5
ldrb r0, [r0] ldrb r0, [r0]
bl sub_80729D0 bl SetHealthboxSpriteVisible
_08186994: _08186994:
ldr r0, =gBattleSpritesDataPtr ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0] ldr r2, [r0]
@@ -655,7 +655,7 @@ _08186A4C:
movs r0, 0x1 movs r0, 0x1
mov r9, r0 mov r9, r0
_08186A6A: _08186A6A:
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _08186AC8 bne _08186AC8
@@ -742,7 +742,7 @@ _08186B26:
mov r0, r8 mov r0, r8
cmp r0, 0 cmp r0, 0
beq _08186C10 beq _08186C10
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _08186B8A beq _08186B8A
@@ -781,7 +781,7 @@ _08186B26:
lsls r1, 16 lsls r1, 16
lsrs r1, 16 lsrs r1, 16
adds r0, r4, 0 adds r0, r4, 0
bl sub_805EE54 bl SetBankEnemyShadowSpriteCallback
_08186B8A: _08186B8A:
ldr r1, =gUnknown_03005D7C ldr r1, =gUnknown_03005D7C
ldr r4, =gActiveBank ldr r4, =gActiveBank
@@ -809,7 +809,7 @@ _08186B8A:
lsls r1, 16 lsls r1, 16
lsrs r1, 16 lsrs r1, 16
adds r0, r5, 0 adds r0, r5, 0
bl sub_805EE54 bl SetBankEnemyShadowSpriteCallback
ldr r3, =gBattleSpritesDataPtr ldr r3, =gBattleSpritesDataPtr
ldr r0, [r3] ldr r0, [r3]
ldr r2, [r0, 0x8] ldr r2, [r0, 0x8]
@@ -955,7 +955,7 @@ sub_8186D04: @ 8186D04
ldrb r0, [r6] ldrb r0, [r6]
adds r0, r5 adds r0, r5
ldrb r0, [r0] ldrb r0, [r0]
bl sub_80729D0 bl SetHealthboxSpriteVisible
lsls r4, 16 lsls r4, 16
asrs r1, r4, 16 asrs r1, r4, 16
movs r0, 0x1 movs r0, 0x1
@@ -998,7 +998,7 @@ sub_8186D58: @ 8186D58
ldr r0, =gHealthBoxesIds ldr r0, =gHealthBoxesIds
adds r0, r3, r0 adds r0, r3, r0
ldrb r0, [r0] ldrb r0, [r0]
bl sub_8072984 bl SetHealthboxSpriteInvisible
bl RecordedOpponentBufferExecCompleted bl RecordedOpponentBufferExecCompleted
_08186D86: _08186D86:
pop {r0} pop {r0}
@@ -1046,7 +1046,7 @@ sub_8186D9C: @ 8186D9C
ldrb r0, [r6] ldrb r0, [r6]
adds r0, r1 adds r0, r1
ldrb r0, [r0] ldrb r0, [r0]
bl sub_8072984 bl SetHealthboxSpriteInvisible
bl RecordedOpponentBufferExecCompleted bl RecordedOpponentBufferExecCompleted
_08186DF6: _08186DF6:
pop {r4-r6} pop {r4-r6}
@@ -1302,13 +1302,13 @@ sub_8186F94: @ 8186F94
ldr r2, =gEnemyParty ldr r2, =gEnemyParty
adds r1, r2 adds r1, r2
movs r2, 0 movs r2, 0
bl healthbar_draw_field_maybe bl UpdateHealthboxAttribute
ldrb r0, [r5] ldrb r0, [r5]
bl sub_8076918 bl sub_8076918
ldrb r0, [r5] ldrb r0, [r5]
adds r0, r4 adds r0, r4
ldrb r0, [r0] ldrb r0, [r0]
bl sub_80729D0 bl SetHealthboxSpriteVisible
ldrb r0, [r5] ldrb r0, [r5]
bl sub_805E408 bl sub_805E408
ldr r1, =gBattleBankFunc ldr r1, =gBattleBankFunc
@@ -1394,7 +1394,7 @@ _081870B6:
lsls r1, 16 lsls r1, 16
lsrs r1, 16 lsrs r1, 16
adds r0, r4, 0 adds r0, r4, 0
bl sub_805EE54 bl SetBankEnemyShadowSpriteCallback
ldr r1, =gBattleBankFunc ldr r1, =gBattleBankFunc
ldrb r0, [r5] ldrb r0, [r5]
lsls r0, 2 lsls r0, 2
@@ -3564,7 +3564,7 @@ sub_818843C: @ 818843C
muls r2, r0 muls r2, r0
adds r0, r2, 0 adds r0, r2, 0
add r0, r9 add r0, r9
bl sub_805DC0C bl BattleLoadOpponentMonSpriteGfx
ldrb r0, [r6] ldrb r0, [r6]
bl GetBankIdentity bl GetBankIdentity
adds r1, r0, 0 adds r1, r0, 0
@@ -3654,7 +3654,7 @@ sub_818843C: @ 818843C
lsls r1, 16 lsls r1, 16
lsrs r1, 16 lsrs r1, 16
adds r0, r4, 0 adds r0, r4, 0
bl sub_805EE54 bl SetBankEnemyShadowSpriteCallback
ldr r1, =gBattleBankFunc ldr r1, =gBattleBankFunc
ldrb r0, [r6] ldrb r0, [r6]
lsls r0, 2 lsls r0, 2
@@ -3753,7 +3753,7 @@ sub_81885D8: @ 81885D8
adds r0, r1, 0 adds r0, r1, 0
adds r0, r5 adds r0, r5
adds r1, r6, 0 adds r1, r6, 0
bl sub_805DC0C bl BattleLoadOpponentMonSpriteGfx
adds r0, r6, 0 adds r0, r6, 0
bl GetBankIdentity bl GetBankIdentity
adds r1, r0, 0 adds r1, r0, 0
@@ -3928,7 +3928,7 @@ _081887B0:
ldrb r0, [r6] ldrb r0, [r6]
adds r0, r1 adds r0, r1
ldrb r0, [r0] ldrb r0, [r0]
bl sub_8072984 bl SetHealthboxSpriteInvisible
bl RecordedOpponentBufferExecCompleted bl RecordedOpponentBufferExecCompleted
_081887EC: _081887EC:
pop {r4-r6} pop {r4-r6}
@@ -4754,7 +4754,7 @@ sub_8188EF0: @ 8188EF0
lsrs r1, 24 lsrs r1, 24
movs r0, 0x1 movs r0, 0x1
movs r2, 0 movs r2, 0
bl dp01_build_cmdbuf_x21_a_bb bl EmitCmd_x21
bl RecordedOpponentBufferExecCompleted bl RecordedOpponentBufferExecCompleted
pop {r0} pop {r0}
bx r0 bx r0
@@ -4785,7 +4785,7 @@ sub_8188F20: @ 8188F20
lsrs r2, 16 lsrs r2, 16
movs r0, 0x1 movs r0, 0x1
movs r1, 0xA movs r1, 0xA
bl dp01_build_cmdbuf_x21_a_bb bl EmitCmd_x21
b _08188F6C b _08188F6C
.pool .pool
_08188F48: _08188F48:
@@ -4803,7 +4803,7 @@ _08188F48:
orrs r2, r4 orrs r2, r4
movs r0, 0x1 movs r0, 0x1
movs r1, 0xA movs r1, 0xA
bl dp01_build_cmdbuf_x21_a_bb bl EmitCmd_x21
_08188F6C: _08188F6C:
bl RecordedOpponentBufferExecCompleted bl RecordedOpponentBufferExecCompleted
pop {r4,r5} pop {r4,r5}
@@ -4981,7 +4981,7 @@ sub_81890CC: @ 81890CC
ldr r2, =gEnemyParty ldr r2, =gEnemyParty
adds r1, r2 adds r1, r2
movs r2, 0x9 movs r2, 0x9
bl healthbar_draw_field_maybe bl UpdateHealthboxAttribute
ldrb r2, [r4] ldrb r2, [r4]
ldr r0, =gBattleSpritesDataPtr ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0] ldr r0, [r0]
@@ -5518,7 +5518,7 @@ c3_0803D564: @ 8189548
adds r0, r1 adds r0, r1
ldrh r0, [r0, 0x8] ldrh r0, [r0, 0x8]
strb r0, [r7] strb r0, [r7]
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _08189582 beq _08189582
+27 -27
View File
@@ -180,11 +180,11 @@ sub_8189AA0: @ 8189AA0
beq _08189ABA beq _08189ABA
b _08189C60 b _08189C60
_08189ABA: _08189ABA:
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _08189ADA beq _08189ADA
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _08189B0C beq _08189B0C
@@ -337,7 +337,7 @@ _08189B86:
ldr r4, =gPlayerParty ldr r4, =gPlayerParty
adds r0, r4 adds r0, r4
bl sub_805E990 bl sub_805E990
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _08189C22 beq _08189C22
@@ -366,11 +366,11 @@ _08189C22:
b _08189D10 b _08189D10
.pool .pool
_08189C60: _08189C60:
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _08189C80 beq _08189C80
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _08189CB0 beq _08189CB0
@@ -561,7 +561,7 @@ _08189DBE:
ands r0, r1 ands r0, r1
cmp r0, 0 cmp r0, 0
bne _08189E84 bne _08189E84
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _08189E54 beq _08189E54
@@ -587,7 +587,7 @@ _08189DBE:
ldr r2, =gPlayerParty ldr r2, =gPlayerParty
adds r1, r2 adds r1, r2
movs r2, 0 movs r2, 0
bl healthbar_draw_field_maybe bl UpdateHealthboxAttribute
mov r1, r9 mov r1, r9
ldrb r0, [r1] ldrb r0, [r1]
eors r0, r7 eors r0, r7
@@ -597,7 +597,7 @@ _08189DBE:
eors r0, r7 eors r0, r7
adds r0, r4 adds r0, r4
ldrb r0, [r0] ldrb r0, [r0]
bl sub_80729D0 bl SetHealthboxSpriteVisible
_08189E54: _08189E54:
ldr r5, =gHealthBoxesIds ldr r5, =gHealthBoxesIds
ldr r4, =gActiveBank ldr r4, =gActiveBank
@@ -613,13 +613,13 @@ _08189E54:
ldr r2, =gPlayerParty ldr r2, =gPlayerParty
adds r1, r2 adds r1, r2
movs r2, 0 movs r2, 0
bl healthbar_draw_field_maybe bl UpdateHealthboxAttribute
ldrb r0, [r4] ldrb r0, [r4]
bl sub_8076918 bl sub_8076918
ldrb r0, [r4] ldrb r0, [r4]
adds r0, r5 adds r0, r5
ldrb r0, [r0] ldrb r0, [r0]
bl sub_80729D0 bl SetHealthboxSpriteVisible
_08189E84: _08189E84:
ldr r4, =gBattleSpritesDataPtr ldr r4, =gBattleSpritesDataPtr
ldr r0, [r4] ldr r0, [r4]
@@ -747,7 +747,7 @@ _08189F62:
ldr r0, [r0] ldr r0, [r0]
cmp r0, r2 cmp r0, r2
bne _0818A02A bne _0818A02A
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _08189FC8 beq _08189FC8
@@ -874,7 +874,7 @@ sub_818A0A4: @ 818A0A4
ldrb r0, [r5] ldrb r0, [r5]
adds r0, r6 adds r0, r6
ldrb r0, [r0] ldrb r0, [r0]
bl sub_80729D0 bl SetHealthboxSpriteVisible
lsls r4, 16 lsls r4, 16
asrs r1, r4, 16 asrs r1, r4, 16
movs r0, 0x1 movs r0, 0x1
@@ -963,7 +963,7 @@ sub_818A114: @ 818A114
ldrb r0, [r4] ldrb r0, [r4]
adds r0, r1 adds r0, r1
ldrb r0, [r0] ldrb r0, [r0]
bl sub_8072984 bl SetHealthboxSpriteInvisible
bl RecordedPlayerBufferExecCompleted bl RecordedPlayerBufferExecCompleted
_0818A190: _0818A190:
pop {r4-r6} pop {r4-r6}
@@ -1010,7 +1010,7 @@ sub_818A1B0: @ 818A1B0
ldrb r0, [r6] ldrb r0, [r6]
adds r0, r1 adds r0, r1
ldrb r0, [r0] ldrb r0, [r0]
bl sub_8072984 bl SetHealthboxSpriteInvisible
bl RecordedPlayerBufferExecCompleted bl RecordedPlayerBufferExecCompleted
_0818A204: _0818A204:
pop {r4-r6} pop {r4-r6}
@@ -1254,13 +1254,13 @@ sub_818A37C: @ 818A37C
muls r1, r6 muls r1, r6
adds r1, r5 adds r1, r5
movs r2, 0 movs r2, 0
bl healthbar_draw_field_maybe bl UpdateHealthboxAttribute
ldrb r0, [r7] ldrb r0, [r7]
bl sub_8076918 bl sub_8076918
ldrb r0, [r7] ldrb r0, [r7]
adds r0, r4 adds r0, r4
ldrb r0, [r0] ldrb r0, [r0]
bl sub_80729D0 bl SetHealthboxSpriteVisible
ldr r1, =gBattleBankFunc ldr r1, =gBattleBankFunc
ldrb r0, [r7] ldrb r0, [r7]
lsls r0, 2 lsls r0, 2
@@ -3530,7 +3530,7 @@ sub_818B8E0: @ 818B8E0
muls r0, r5 muls r0, r5
ldr r4, =gPlayerParty ldr r4, =gPlayerParty
adds r0, r4 adds r0, r4
bl sub_805DD7C bl BattleLoadPlayerMonSpriteGfx
ldrb r0, [r6] ldrb r0, [r6]
lsls r0, 1 lsls r0, 1
add r0, r8 add r0, r8
@@ -3659,7 +3659,7 @@ sub_818B9FC: @ 818B9FC
muls r0, r2 muls r0, r2
ldr r2, =gPlayerParty ldr r2, =gPlayerParty
adds r0, r2 adds r0, r2
bl sub_805DD7C bl BattleLoadPlayerMonSpriteGfx
ldrb r0, [r5] ldrb r0, [r5]
lsls r1, r0, 9 lsls r1, r0, 9
adds r1, r6 adds r1, r6
@@ -3890,7 +3890,7 @@ _0818BC30:
ldrb r0, [r6] ldrb r0, [r6]
adds r0, r1 adds r0, r1
ldrb r0, [r0] ldrb r0, [r0]
bl sub_8072984 bl SetHealthboxSpriteInvisible
bl RecordedPlayerBufferExecCompleted bl RecordedPlayerBufferExecCompleted
_0818BC66: _0818BC66:
pop {r4-r6} pop {r4-r6}
@@ -4182,7 +4182,7 @@ _0818BEDC:
ldr r5, =gActiveBank ldr r5, =gActiveBank
ldrb r1, [r5] ldrb r1, [r5]
adds r0, r4, 0 adds r0, r4, 0
bl sub_805DF84 bl LoadBackTrainerBankSpriteGfx
ldrb r0, [r5] ldrb r0, [r5]
bl GetBankIdentity bl GetBankIdentity
adds r1, r0, 0 adds r1, r0, 0
@@ -4861,7 +4861,7 @@ sub_818C49C: @ 818C49C
lsrs r1, 24 lsrs r1, 24
movs r0, 0x1 movs r0, 0x1
movs r2, 0 movs r2, 0
bl dp01_build_cmdbuf_x21_a_bb bl EmitCmd_x21
bl RecordedPlayerBufferExecCompleted bl RecordedPlayerBufferExecCompleted
_0818C4C6: _0818C4C6:
pop {r0} pop {r0}
@@ -4897,7 +4897,7 @@ _0818C508:
lsrs r1, 24 lsrs r1, 24
movs r0, 0x1 movs r0, 0x1
movs r2, 0 movs r2, 0
bl dp01_build_cmdbuf_x21_a_bb bl EmitCmd_x21
bl RecordedPlayerBufferExecCompleted bl RecordedPlayerBufferExecCompleted
_0818C522: _0818C522:
pop {r0} pop {r0}
@@ -4929,7 +4929,7 @@ sub_818C538: @ 818C538
lsrs r2, 16 lsrs r2, 16
movs r0, 0x1 movs r0, 0x1
movs r1, 0xA movs r1, 0xA
bl dp01_build_cmdbuf_x21_a_bb bl EmitCmd_x21
b _0818C584 b _0818C584
.pool .pool
_0818C560: _0818C560:
@@ -4947,7 +4947,7 @@ _0818C560:
orrs r2, r4 orrs r2, r4
movs r0, 0x1 movs r0, 0x1
movs r1, 0xA movs r1, 0xA
bl dp01_build_cmdbuf_x21_a_bb bl EmitCmd_x21
_0818C584: _0818C584:
bl RecordedPlayerBufferExecCompleted bl RecordedPlayerBufferExecCompleted
pop {r4,r5} pop {r4,r5}
@@ -5132,7 +5132,7 @@ sub_818C6F4: @ 818C6F4
ldr r2, =gPlayerParty ldr r2, =gPlayerParty
adds r1, r2 adds r1, r2
movs r2, 0x9 movs r2, 0x9
bl healthbar_draw_field_maybe bl UpdateHealthboxAttribute
ldrb r2, [r4] ldrb r2, [r4]
ldr r0, =gBattleSpritesDataPtr ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0] ldr r0, [r0]
@@ -5746,7 +5746,7 @@ _0818CC50:
mov r9, r0 mov r9, r0
ldrh r0, [r1, 0x8] ldrh r0, [r1, 0x8]
strb r0, [r7] strb r0, [r7]
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _0818CC70 beq _0818CC70
@@ -5805,7 +5805,7 @@ _0818CCA0:
muls r0, r2 muls r0, r2
ldr r2, =gPlayerParty ldr r2, =gPlayerParty
adds r0, r2 adds r0, r2
bl sub_805DD7C bl BattleLoadPlayerMonSpriteGfx
ldrb r0, [r7] ldrb r0, [r7]
movs r1, 0 movs r1, 0
bl sub_818BA6C bl sub_818BA6C
+14 -14
View File
@@ -103,13 +103,13 @@ _0815942A:
movs r1, 0x7 movs r1, 0x7
_0815942E: _0815942E:
movs r2, 0 movs r2, 0
bl dp01_build_cmdbuf_x21_a_bb bl EmitCmd_x21
b _08159440 b _08159440
_08159436: _08159436:
movs r0, 0x1 movs r0, 0x1
movs r1, 0x8 movs r1, 0x8
movs r2, 0 movs r2, 0
bl dp01_build_cmdbuf_x21_a_bb bl EmitCmd_x21
_08159440: _08159440:
bl SafariBufferExecCompleted bl SafariBufferExecCompleted
b _0815954E b _0815954E
@@ -132,7 +132,7 @@ _08159446:
ldrb r0, [r4] ldrb r0, [r4]
adds r0, r5 adds r0, r5
ldrb r0, [r0] ldrb r0, [r0]
bl sub_8059CF8 bl ActionSelectionDestroyCursorAt
ldrb r1, [r4] ldrb r1, [r4]
adds r1, r5 adds r1, r5
ldrb r0, [r1] ldrb r0, [r1]
@@ -158,7 +158,7 @@ _08159484:
ldrb r0, [r4] ldrb r0, [r4]
adds r0, r5 adds r0, r5
ldrb r0, [r0] ldrb r0, [r0]
bl sub_8059CF8 bl ActionSelectionDestroyCursorAt
ldrb r1, [r4] ldrb r1, [r4]
adds r1, r5 adds r1, r5
ldrb r0, [r1] ldrb r0, [r1]
@@ -184,7 +184,7 @@ _081594C0:
ldrb r0, [r4] ldrb r0, [r4]
adds r0, r5 adds r0, r5
ldrb r0, [r0] ldrb r0, [r0]
bl sub_8059CF8 bl ActionSelectionDestroyCursorAt
ldrb r1, [r4] ldrb r1, [r4]
adds r1, r5 adds r1, r5
ldrb r0, [r1] ldrb r0, [r1]
@@ -196,7 +196,7 @@ _081594F2:
adds r0, r5 adds r0, r5
ldrb r0, [r0] ldrb r0, [r0]
movs r1, 0 movs r1, 0
bl sub_8059CB4 bl ActionSelectionCreateCursorAt
b _0815954E b _0815954E
.pool .pool
_0815950C: _0815950C:
@@ -218,7 +218,7 @@ _0815950C:
ldrb r0, [r4] ldrb r0, [r4]
adds r0, r5 adds r0, r5
ldrb r0, [r0] ldrb r0, [r0]
bl sub_8059CF8 bl ActionSelectionDestroyCursorAt
ldrb r1, [r4] ldrb r1, [r4]
adds r1, r5 adds r1, r5
ldrb r0, [r1] ldrb r0, [r1]
@@ -229,7 +229,7 @@ _0815950C:
adds r0, r5 adds r0, r5
ldrb r0, [r0] ldrb r0, [r0]
movs r1, 0 movs r1, 0
bl sub_8059CB4 bl ActionSelectionCreateCursorAt
_0815954E: _0815954E:
pop {r4,r5} pop {r4,r5}
pop {r0} pop {r0}
@@ -569,7 +569,7 @@ sub_8159800: @ 8159800
ldrb r0, [r0, 0x8] ldrb r0, [r0, 0x8]
ldr r5, =gActiveBank ldr r5, =gActiveBank
ldrb r1, [r5] ldrb r1, [r5]
bl sub_805DF84 bl LoadBackTrainerBankSpriteGfx
ldr r0, [r4] ldr r0, [r4]
ldrb r6, [r0, 0x8] ldrb r6, [r0, 0x8]
ldrb r0, [r5] ldrb r0, [r5]
@@ -867,7 +867,7 @@ sub_8159A94: @ 8159A94
_08159AAE: _08159AAE:
lsls r0, r4, 24 lsls r0, r4, 24
lsrs r0, 24 lsrs r0, 24
bl sub_8059CF8 bl ActionSelectionDestroyCursorAt
adds r4, 0x1 adds r4, 0x1
cmp r4, 0x3 cmp r4, 0x3
ble _08159AAE ble _08159AAE
@@ -877,7 +877,7 @@ _08159AAE:
adds r0, r1 adds r0, r1
ldrb r0, [r0] ldrb r0, [r0]
movs r1, 0 movs r1, 0
bl sub_8059CB4 bl ActionSelectionCreateCursorAt
ldr r0, =gText_WhatWillPkmnDo2 ldr r0, =gText_WhatWillPkmnDo2
bl BattleStringExpandPlaceholdersToDisplayedString bl BattleStringExpandPlaceholdersToDisplayedString
ldr r0, =gDisplayedStringBattle ldr r0, =gDisplayedStringBattle
@@ -981,7 +981,7 @@ sub_8159B84: @ 8159B84
ldr r2, =gPlayerParty ldr r2, =gPlayerParty
adds r1, r2 adds r1, r2
movs r2, 0xB movs r2, 0xB
bl healthbar_draw_field_maybe bl UpdateHealthboxAttribute
bl SafariBufferExecCompleted bl SafariBufferExecCompleted
pop {r0} pop {r0}
bx r0 bx r0
@@ -1256,13 +1256,13 @@ sub_8159D90: @ 8159D90
ldr r2, =gPlayerParty ldr r2, =gPlayerParty
adds r1, r2 adds r1, r2
movs r2, 0xA movs r2, 0xA
bl healthbar_draw_field_maybe bl UpdateHealthboxAttribute
ldrb r0, [r4] ldrb r0, [r4]
bl sub_8076918 bl sub_8076918
ldrb r0, [r4] ldrb r0, [r4]
adds r0, r5 adds r0, r5
ldrb r0, [r0] ldrb r0, [r0]
bl sub_80729D0 bl SetHealthboxSpriteVisible
ldr r1, =gBattleBankFunc ldr r1, =gBattleBankFunc
ldrb r0, [r4] ldrb r0, [r4]
lsls r0, 2 lsls r0, 2
+17 -17
View File
@@ -153,7 +153,7 @@ _081684CE:
movs r1, 0x9 movs r1, 0x9
_081684E4: _081684E4:
movs r2, 0 movs r2, 0
bl dp01_build_cmdbuf_x21_a_bb bl EmitCmd_x21
bl WallyBufferExecCompleted bl WallyBufferExecCompleted
ldr r1, [r4] ldr r1, [r4]
adds r1, 0x94 adds r1, 0x94
@@ -180,10 +180,10 @@ _08168508:
movs r0, 0x5 movs r0, 0x5
bl PlaySE bl PlaySE
movs r0, 0 movs r0, 0
bl sub_8059CF8 bl ActionSelectionDestroyCursorAt
movs r0, 0x1 movs r0, 0x1
movs r1, 0 movs r1, 0
bl sub_8059CB4 bl ActionSelectionCreateCursorAt
ldr r0, [r4] ldr r0, [r4]
adds r0, 0x96 adds r0, 0x96
movs r1, 0x40 movs r1, 0x40
@@ -208,7 +208,7 @@ _08168540:
movs r0, 0x1 movs r0, 0x1
movs r1, 0x1 movs r1, 0x1
movs r2, 0 movs r2, 0
bl dp01_build_cmdbuf_x21_a_bb bl EmitCmd_x21
bl WallyBufferExecCompleted bl WallyBufferExecCompleted
_08168564: _08168564:
pop {r4,r5} pop {r4,r5}
@@ -425,7 +425,7 @@ _081686D2:
ldr r0, [r0] ldr r0, [r0]
cmp r0, r3 cmp r0, r3
bne _081687DC bne _081687DC
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _0816877A beq _0816877A
@@ -459,7 +459,7 @@ _081686D2:
ldr r2, =gPlayerParty ldr r2, =gPlayerParty
adds r1, r2 adds r1, r2
movs r2, 0 movs r2, 0
bl healthbar_draw_field_maybe bl UpdateHealthboxAttribute
ldrb r0, [r5] ldrb r0, [r5]
eors r0, r6 eors r0, r6
bl sub_8076918 bl sub_8076918
@@ -467,7 +467,7 @@ _081686D2:
eors r0, r6 eors r0, r6
adds r0, r4 adds r0, r4
ldrb r0, [r0] ldrb r0, [r0]
bl sub_80729D0 bl SetHealthboxSpriteVisible
_0816877A: _0816877A:
ldr r1, =gUnknown_03005D7C ldr r1, =gUnknown_03005D7C
ldr r4, =gActiveBank ldr r4, =gActiveBank
@@ -493,13 +493,13 @@ _0816877A:
ldr r2, =gPlayerParty ldr r2, =gPlayerParty
adds r1, r2 adds r1, r2
movs r2, 0 movs r2, 0
bl healthbar_draw_field_maybe bl UpdateHealthboxAttribute
ldrb r0, [r4] ldrb r0, [r4]
bl sub_8076918 bl sub_8076918
ldrb r0, [r4] ldrb r0, [r4]
adds r0, r5 adds r0, r5
ldrb r0, [r0] ldrb r0, [r0]
bl sub_80729D0 bl SetHealthboxSpriteVisible
ldr r0, =gBattleSpritesDataPtr ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0] ldr r0, [r0]
ldr r2, [r0, 0x8] ldr r2, [r0, 0x8]
@@ -665,7 +665,7 @@ sub_8168934: @ 8168934
ldrb r0, [r5] ldrb r0, [r5]
adds r0, r6 adds r0, r6
ldrb r0, [r0] ldrb r0, [r0]
bl sub_80729D0 bl SetHealthboxSpriteVisible
lsls r4, 16 lsls r4, 16
asrs r1, r4, 16 asrs r1, r4, 16
movs r0, 0x1 movs r0, 0x1
@@ -796,7 +796,7 @@ sub_8168A20: @ 8168A20
ldrb r0, [r6] ldrb r0, [r6]
adds r0, r1 adds r0, r1
ldrb r0, [r0] ldrb r0, [r0]
bl sub_8072984 bl SetHealthboxSpriteInvisible
bl WallyBufferExecCompleted bl WallyBufferExecCompleted
_08168A74: _08168A74:
pop {r4-r6} pop {r4-r6}
@@ -3015,7 +3015,7 @@ _08169E80:
ldrb r0, [r6] ldrb r0, [r6]
adds r0, r1 adds r0, r1
ldrb r0, [r0] ldrb r0, [r0]
bl sub_8072984 bl SetHealthboxSpriteInvisible
bl WallyBufferExecCompleted bl WallyBufferExecCompleted
_08169EB6: _08169EB6:
pop {r4-r6} pop {r4-r6}
@@ -3030,7 +3030,7 @@ sub_8169EC8: @ 8169EC8
ldr r4, =gActiveBank ldr r4, =gActiveBank
ldrb r1, [r4] ldrb r1, [r4]
movs r0, 0x6 movs r0, 0x6
bl sub_805DF84 bl LoadBackTrainerBankSpriteGfx
ldrb r0, [r4] ldrb r0, [r4]
bl GetBankIdentity bl GetBankIdentity
adds r1, r0, 0 adds r1, r0, 0
@@ -3115,7 +3115,7 @@ dp01t_07_6_: @ 8169F94
ldr r4, =gActiveBank ldr r4, =gActiveBank
ldrb r1, [r4] ldrb r1, [r4]
movs r0, 0x6 movs r0, 0x6
bl sub_805DF84 bl LoadBackTrainerBankSpriteGfx
ldrb r0, [r4] ldrb r0, [r4]
bl GetBankIdentity bl GetBankIdentity
adds r1, r0, 0 adds r1, r0, 0
@@ -3681,7 +3681,7 @@ dp01t_12_1_battle_menu: @ 816A470
_0816A48A: _0816A48A:
lsls r0, r4, 24 lsls r0, r4, 24
lsrs r0, 24 lsrs r0, 24
bl sub_8059CF8 bl ActionSelectionDestroyCursorAt
adds r4, 0x1 adds r4, 0x1
cmp r4, 0x3 cmp r4, 0x3
ble _0816A48A ble _0816A48A
@@ -3691,7 +3691,7 @@ _0816A48A:
adds r0, r1 adds r0, r1
ldrb r0, [r0] ldrb r0, [r0]
movs r1, 0 movs r1, 0
bl sub_8059CB4 bl ActionSelectionCreateCursorAt
ldr r0, =gText_WhatWillWallyDo ldr r0, =gText_WhatWillWallyDo
bl BattleStringExpandPlaceholdersToDisplayedString bl BattleStringExpandPlaceholdersToDisplayedString
ldr r0, =gDisplayedStringBattle ldr r0, =gDisplayedStringBattle
@@ -3777,7 +3777,7 @@ _0816A550:
lsls r2, 1 lsls r2, 1
movs r0, 0x1 movs r0, 0x1
movs r1, 0xA movs r1, 0xA
bl dp01_build_cmdbuf_x21_a_bb bl EmitCmd_x21
bl WallyBufferExecCompleted bl WallyBufferExecCompleted
_0816A574: _0816A574:
pop {r4} pop {r4}
+5 -5
View File
@@ -12935,7 +12935,7 @@ _081A1118:
adds r1, r0, 0 adds r1, r0, 0
mov r0, sp mov r0, sp
movs r2, 0x2 movs r2, 0x2
bl sub_81DB5E8 bl TVShowConvertInternationalString
adds r0, r5, 0 adds r0, r5, 0
mov r1, sp mov r1, sp
bl StringCopy bl StringCopy
@@ -18997,7 +18997,7 @@ sub_81A4594: @ 81A4594
adds r1, r6, 0x6 adds r1, r6, 0x6
ldrb r2, [r6, 0xE] ldrb r2, [r6, 0xE]
add r0, sp, 0xC add r0, sp, 0xC
bl sub_81DB5E8 bl TVShowConvertInternationalString
ldr r1, =gUnknown_0203AB74 ldr r1, =gUnknown_0203AB74
ldrb r0, [r1] ldrb r0, [r1]
mov r3, r8 mov r3, r8
@@ -19111,7 +19111,7 @@ sub_81A4684: @ 81A4684
adds r1, 0xA adds r1, 0xA
ldrb r2, [r5, 0x1A] ldrb r2, [r5, 0x1A]
add r0, sp, 0xC add r0, sp, 0xC
bl sub_81DB5E8 bl TVShowConvertInternationalString
ldr r1, =gUnknown_0203AB74 ldr r1, =gUnknown_0203AB74
ldrb r0, [r1] ldrb r0, [r1]
adds r3, r7, 0x2 adds r3, r7, 0x2
@@ -19133,13 +19133,13 @@ sub_81A4684: @ 81A4684
adds r4, r5, 0 adds r4, r5, 0
adds r4, 0x12 adds r4, 0x12
adds r0, r4, 0 adds r0, r4, 0
bl sub_8009228 bl IsStringJapanese
cmp r0, 0 cmp r0, 0
beq _081A4734 beq _081A4734
add r0, sp, 0xC add r0, sp, 0xC
adds r1, r4, 0 adds r1, r4, 0
movs r2, 0x1 movs r2, 0x1
bl sub_81DB5E8 bl TVShowConvertInternationalString
b _081A473C b _081A473C
.pool .pool
_081A4734: _081A4734:
+34 -34
View File
@@ -261,8 +261,8 @@ sub_80724A8: @ 80724A8
bx r0 bx r0
thumb_func_end sub_80724A8 thumb_func_end sub_80724A8
thumb_func_start battle_make_oam_normal_battle thumb_func_start CreateBankHealthboxSprites
battle_make_oam_normal_battle: @ 80724DC CreateBankHealthboxSprites: @ 80724DC
push {r4-r7,lr} push {r4-r7,lr}
mov r7, r10 mov r7, r10
mov r6, r9 mov r6, r9
@@ -274,7 +274,7 @@ battle_make_oam_normal_battle: @ 80724DC
mov r10, r0 mov r10, r0
movs r0, 0 movs r0, 0
str r0, [sp] str r0, [sp]
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _080725F0 bne _080725F0
@@ -608,10 +608,10 @@ _08072718:
pop {r1} pop {r1}
bx r1 bx r1
.pool .pool
thumb_func_end battle_make_oam_normal_battle thumb_func_end CreateBankHealthboxSprites
thumb_func_start battle_make_oam_safari_battle thumb_func_start CreateSafariPlayerHealthboxSprites
battle_make_oam_safari_battle: @ 8072804 CreateSafariPlayerHealthboxSprites: @ 8072804
push {r4-r7,lr} push {r4-r7,lr}
mov r7, r9 mov r7, r9
mov r6, r8 mov r6, r8
@@ -680,7 +680,7 @@ battle_make_oam_safari_battle: @ 8072804
pop {r1} pop {r1}
bx r1 bx r1
.pool .pool
thumb_func_end battle_make_oam_safari_battle thumb_func_end CreateSafariPlayerHealthboxSprites
thumb_func_start sub_80728A4 thumb_func_start sub_80728A4
sub_80728A4: @ 80728A4 sub_80728A4: @ 80728A4
@@ -802,8 +802,8 @@ sub_807294C: @ 807294C
.pool .pool
thumb_func_end sub_807294C thumb_func_end sub_807294C
thumb_func_start sub_8072984 thumb_func_start SetHealthboxSpriteInvisible
sub_8072984: @ 8072984 SetHealthboxSpriteInvisible: @ 8072984
push {r4,lr} push {r4,lr}
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
@@ -841,10 +841,10 @@ sub_8072984: @ 8072984
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
thumb_func_end sub_8072984 thumb_func_end SetHealthboxSpriteInvisible
thumb_func_start sub_80729D0 thumb_func_start SetHealthboxSpriteVisible
sub_80729D0: @ 80729D0 SetHealthboxSpriteVisible: @ 80729D0
push {r4,r5,lr} push {r4,r5,lr}
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
@@ -885,7 +885,7 @@ sub_80729D0: @ 80729D0
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
thumb_func_end sub_80729D0 thumb_func_end SetHealthboxSpriteVisible
thumb_func_start sub_8072A24 thumb_func_start sub_8072A24
sub_8072A24: @ 8072A24 sub_8072A24: @ 8072A24
@@ -1014,14 +1014,14 @@ _08072B00:
.pool .pool
thumb_func_end sub_8072A88 thumb_func_end sub_8072A88
thumb_func_start sub_8072B18 thumb_func_start SetBankHealthboxSpritePos
sub_8072B18: @ 8072B18 SetBankHealthboxSpritePos: @ 8072B18
push {r4-r6,lr} push {r4-r6,lr}
lsls r0, 24 lsls r0, 24
lsrs r6, r0, 24 lsrs r6, r0, 24
movs r5, 0 movs r5, 0
movs r4, 0 movs r4, 0
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _08072B44 bne _08072B44
@@ -1081,7 +1081,7 @@ _08072B7C:
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
thumb_func_end sub_8072B18 thumb_func_end SetBankHealthboxSpritePos
thumb_func_start healthbar_draw_level thumb_func_start healthbar_draw_level
healthbar_draw_level: @ 8072B94 healthbar_draw_level: @ 8072B94
@@ -1132,7 +1132,7 @@ healthbar_draw_level: @ 8072B94
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _08072C18 bne _08072C18
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
ldr r2, =0x06010420 ldr r2, =0x06010420
adds r1, r4, r2 adds r1, r4, r2
@@ -1187,7 +1187,7 @@ heathbar_draw_hp: @ 8072C38
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _08072D10 bne _08072D10
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _08072D10 bne _08072D10
@@ -1267,7 +1267,7 @@ _08072D10:
ldrh r0, [r6, 0x3A] ldrh r0, [r6, 0x3A]
lsls r0, 24 lsls r0, 24
lsrs r5, r0, 24 lsrs r5, r0, 24
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
mov r10, r4 mov r10, r4
@@ -1993,7 +1993,7 @@ _08073354:
bne _0807336A bne _0807336A
b _080735A8 b _080735A8
_0807336A: _0807336A:
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _08073382 bne _08073382
@@ -2036,7 +2036,7 @@ _08073382:
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _080734B0 bne _080734B0
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _080733D0 bne _080733D0
@@ -2107,7 +2107,7 @@ _08073468:
ldr r2, =gPlayerParty ldr r2, =gPlayerParty
adds r1, r2 adds r1, r2
movs r2, 0x5 movs r2, 0x5
bl healthbar_draw_field_maybe bl UpdateHealthboxAttribute
movs r0, 0x75 movs r0, 0x75
bl sub_80728A4 bl sub_80728A4
ldrb r2, [r6] ldrb r2, [r6]
@@ -2209,7 +2209,7 @@ _0807355C:
ldr r4, =gEnemyParty ldr r4, =gEnemyParty
adds r1, r4 adds r1, r4
movs r2, 0x5 movs r2, 0x5
bl healthbar_draw_field_maybe bl UpdateHealthboxAttribute
ldr r0, =gBattleTypeFlags ldr r0, =gBattleTypeFlags
ldr r0, [r0] ldr r0, [r0]
movs r1, 0x80 movs r1, 0x80
@@ -2222,7 +2222,7 @@ _0807355C:
muls r1, r5 muls r1, r5
adds r1, r4 adds r1, r4
movs r2, 0x4 movs r2, 0x4
bl healthbar_draw_field_maybe bl UpdateHealthboxAttribute
_08073592: _08073592:
ldr r0, =gHealthBoxesIds ldr r0, =gHealthBoxesIds
add r0, r9 add r0, r9
@@ -2303,7 +2303,7 @@ _08073630:
mov r9, r3 mov r9, r3
cmp r4, 0 cmp r4, 0
beq _08073642 beq _08073642
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _08073648 bne _08073648
@@ -3842,7 +3842,7 @@ _08074272:
adds r1, r6, 0 adds r1, r6, 0
movs r2, 0x6 movs r2, 0x6
bl sub_8075198 bl sub_8075198
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
ldr r1, =0x06010400 ldr r1, =0x06010400
adds r5, r4, r1 adds r5, r4, r1
@@ -4013,7 +4013,7 @@ draw_status_ailment_maybe: @ 80743F8
movs r1, 0x37 movs r1, 0x37
bl GetMonData bl GetMonData
adds r4, r0, 0 adds r4, r0, 0
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
movs r3, 0x12 movs r3, 0x12
mov r8, r3 mov r8, r3
@@ -4210,7 +4210,7 @@ _080745B8:
ldr r2, =0x04000018 ldr r2, =0x04000018
adds r0, r6, 0 adds r0, r6, 0
bl CpuSet bl CpuSet
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r0, 0x1 cmp r0, 0x1
@@ -4468,8 +4468,8 @@ sub_80747D8: @ 80747D8
.pool .pool
thumb_func_end sub_80747D8 thumb_func_end sub_80747D8
thumb_func_start healthbar_draw_field_maybe thumb_func_start UpdateHealthboxAttribute
healthbar_draw_field_maybe: @ 8074860 UpdateHealthboxAttribute: @ 8074860
push {r4-r7,lr} push {r4-r7,lr}
mov r7, r10 mov r7, r10
mov r6, r9 mov r6, r9
@@ -4492,7 +4492,7 @@ healthbar_draw_field_maybe: @ 8074860
mov r9, r0 mov r9, r0
cmp r7, 0 cmp r7, 0
bne _0807489C bne _0807489C
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _0807489C bne _0807489C
@@ -4581,7 +4581,7 @@ _08074914:
movs r3, 0 movs r3, 0
bl sub_8074AA0 bl sub_8074AA0
_08074948: _08074948:
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
mov r10, r0 mov r10, r0
@@ -4742,7 +4742,7 @@ _08074A8E:
pop {r4-r7} pop {r4-r7}
pop {r0} pop {r0}
bx r0 bx r0
thumb_func_end healthbar_draw_field_maybe thumb_func_end UpdateHealthboxAttribute
thumb_func_start sub_8074AA0 thumb_func_start sub_8074AA0
sub_8074AA0: @ 8074AA0 sub_8074AA0: @ 8074AA0
+2 -2
View File
@@ -3193,7 +3193,7 @@ _0817E63A:
adds r1, r4, 0 adds r1, r4, 0
ldr r2, [sp] ldr r2, [sp]
ldr r3, [sp, 0x4] ldr r3, [sp, 0x4]
bl sub_80ECB00 bl PutBattleUpdateOnTheAir
b _0817E670 b _0817E670
.pool .pool
_0817E65C: _0817E65C:
@@ -3205,7 +3205,7 @@ _0817E65C:
adds r1, r4, 0 adds r1, r4, 0
ldr r2, [sp] ldr r2, [sp]
ldr r3, [sp, 0x4] ldr r3, [sp, 0x4]
bl sub_80ECB00 bl PutBattleUpdateOnTheAir
_0817E670: _0817E670:
add sp, 0x20 add sp, 0x20
pop {r3-r5} pop {r3-r5}
+3 -3
View File
@@ -1795,7 +1795,7 @@ _08162ED8:
adds r0, 0xE4 adds r0, 0xE4
ldrb r2, [r0] ldrb r2, [r0]
adds r0, r6, 0 adds r0, r6, 0
bl sub_81DB5E8 bl TVShowConvertInternationalString
b _08162F62 b _08162F62
.pool .pool
_08162F00: _08162F00:
@@ -1835,7 +1835,7 @@ _08162F3E:
adds r1, r0, 0 adds r1, r0, 0
adds r0, r6, 0 adds r0, r6, 0
adds r2, r4, 0 adds r2, r4, 0
bl sub_81DB5E8 bl TVShowConvertInternationalString
b _08162F62 b _08162F62
.pool .pool
_08162F5C: _08162F5C:
@@ -5673,7 +5673,7 @@ _0816508C:
bl SetMonData bl SetMonData
ldr r0, [r7] ldr r0, [r7]
adds r0, r4 adds r0, r4
bl sub_80EE5A4 bl GetRibbonCount
strb r0, [r5, 0x1] strb r0, [r5, 0x1]
_081650D4: _081650D4:
adds r5, 0x4 adds r5, 0x4
+9 -9
View File
@@ -1275,7 +1275,7 @@ _080802AC:
strh r0, [r1] strh r0, [r1]
adds r5, 0x1 adds r5, 0x1
_080802D4: _080802D4:
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r5, r0 cmp r5, r0
@@ -1295,7 +1295,7 @@ _080802EC:
bl sub_807FD90 bl sub_807FD90
b _08080336 b _08080336
_08080302: _08080302:
bl sub_8009FCC bl GetLinkPlayerCount
ldr r2, =gUnknown_020322A4 ldr r2, =gUnknown_020322A4
ldr r1, [r2] ldr r1, [r2]
adds r1, 0x7C adds r1, 0x7C
@@ -6091,7 +6091,7 @@ _08082BEE:
lsls r0, 24 lsls r0, 24
lsrs r5, r0, 24 lsrs r5, r0, 24
_08082BF4: _08082BF4:
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r5, r0 cmp r5, r0
@@ -6104,7 +6104,7 @@ _08082C0C:
lsls r0, 24 lsls r0, 24
lsrs r5, r0, 24 lsrs r5, r0, 24
_08082C12: _08082C12:
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r5, r0 cmp r5, r0
@@ -6118,7 +6118,7 @@ _08082C12:
cmp r0, 0 cmp r0, 0
bne _08082C0C bne _08082C0C
_08082C2E: _08082C2E:
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r5, r0 cmp r5, r0
@@ -6132,7 +6132,7 @@ _08082C48:
lsls r0, 24 lsls r0, 24
lsrs r5, r0, 24 lsrs r5, r0, 24
_08082C4E: _08082C4E:
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r5, r0 cmp r5, r0
@@ -6149,7 +6149,7 @@ _08082C6A:
ldr r4, =gUnknown_03003110 ldr r4, =gUnknown_03003110
adds r0, r4, 0 adds r0, r4, 0
bl sub_8081F94 bl sub_8081F94
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r5, r0 cmp r5, r0
@@ -8568,7 +8568,7 @@ sub_8083F94: @ 8083F94
ldrb r0, [r5, 0x12] ldrb r0, [r5, 0x12]
str r0, [sp] str r0, [sp]
adds r0, r7, 0 adds r0, r7, 0
bl sub_80ECC04 bl Put3CheersForPokeblocksOnTheAir
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _080840BA bne _080840BA
@@ -8617,7 +8617,7 @@ _08084058:
ldrb r0, [r5, 0x12] ldrb r0, [r5, 0x12]
str r0, [sp] str r0, [sp]
adds r0, r7, 0 adds r0, r7, 0
bl sub_80ECC04 bl Put3CheersForPokeblocksOnTheAir
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _080840C4 beq _080840C4
+4 -4
View File
@@ -1059,7 +1059,7 @@ _080B2C5C:
lsls r0, 24 lsls r0, 24
lsrs r4, r0, 24 lsrs r4, r0, 24
_080B2C7E: _080B2C7E:
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r4, r0 cmp r4, r0
@@ -1361,7 +1361,7 @@ _080B2F0C:
movs r0, 0 movs r0, 0
mov r8, r0 mov r8, r0
mov r9, r0 mov r9, r0
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r5, r0, 24 lsrs r5, r0, 24
movs r4, 0 movs r4, 0
@@ -1984,7 +1984,7 @@ _080B3474:
adds r5, 0x1C adds r5, 0x1C
adds r4, 0x1 adds r4, 0x1
_080B349A: _080B349A:
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r4, r0 cmp r4, r0
@@ -2080,7 +2080,7 @@ _080B3574:
beq _080B35F8 beq _080B35F8
b _080B35FE b _080B35FE
_080B357A: _080B357A:
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r3, r0, 24 lsrs r3, r0, 24
movs r4, 0 movs r4, 0
+20 -20
View File
@@ -1525,7 +1525,7 @@ sub_80D8490: @ 80D8490
movs r6, 0 movs r6, 0
ldr r0, =gUnknown_02039F25 ldr r0, =gUnknown_02039F25
mov r8, r0 mov r8, r0
ldr r2, =gUnknown_02039E1E ldr r2, =gUnknown_02039E00 + 30
mov r10, r2 mov r10, r2
ldr r7, =gUnknown_02039F34 ldr r7, =gUnknown_02039F34
_080D84B8: _080D84B8:
@@ -2624,7 +2624,7 @@ _080D8EF2:
bl sub_80DB89C bl sub_80DB89C
ldr r0, =gStringVar1 ldr r0, =gStringVar1
lsls r1, r6, 6 lsls r1, r6, 6
ldr r2, =gUnknown_02039E02 ldr r2, =gUnknown_02039E00 + 2
adds r1, r2 adds r1, r2
bl StringCopy bl StringCopy
mov r2, r9 mov r2, r9
@@ -3562,7 +3562,7 @@ _080D96D4:
bl sub_80DB89C bl sub_80DB89C
ldr r0, =gStringVar1 ldr r0, =gStringVar1
lsls r1, r6, 6 lsls r1, r6, 6
ldr r2, =gUnknown_02039E02 ldr r2, =gUnknown_02039E00 + 2
adds r1, r2 adds r1, r2
bl StringCopy bl StringCopy
ldr r4, =gStringVar4 ldr r4, =gStringVar4
@@ -3671,7 +3671,7 @@ _080D97DC:
bl sub_80DB89C bl sub_80DB89C
ldr r0, =gStringVar1 ldr r0, =gStringVar1
lsls r1, r6, 6 lsls r1, r6, 6
ldr r2, =gUnknown_02039E02 ldr r2, =gUnknown_02039E00 + 2
adds r1, r2 adds r1, r2
bl StringCopy bl StringCopy
ldr r4, =gStringVar4 ldr r4, =gStringVar4
@@ -3809,7 +3809,7 @@ _080D9904:
bl sub_80DB89C bl sub_80DB89C
ldr r0, =gStringVar1 ldr r0, =gStringVar1
lsls r1, r6, 6 lsls r1, r6, 6
ldr r2, =gUnknown_02039E02 ldr r2, =gUnknown_02039E00 + 2
adds r1, r2 adds r1, r2
bl StringCopy bl StringCopy
ldr r4, =gStringVar4 ldr r4, =gStringVar4
@@ -4010,7 +4010,7 @@ _080D9AD2:
bl sub_80DB89C bl sub_80DB89C
ldr r0, =gStringVar1 ldr r0, =gStringVar1
lsls r1, r6, 6 lsls r1, r6, 6
ldr r2, =gUnknown_02039E02 ldr r2, =gUnknown_02039E00 + 2
adds r1, r2 adds r1, r2
bl StringCopy bl StringCopy
ldr r4, =gUnknown_02039F34 ldr r4, =gUnknown_02039F34
@@ -4381,7 +4381,7 @@ _080D9DD4:
lsls r1, 20 lsls r1, 20
lsrs r1, 29 lsrs r1, 29
lsls r1, 6 lsls r1, 6
ldr r4, =gUnknown_02039E02 ldr r4, =gUnknown_02039E00 + 2
adds r1, r4 adds r1, r4
bl StringCopy bl StringCopy
ldr r0, =gStringVar1 ldr r0, =gStringVar1
@@ -4476,7 +4476,7 @@ _080D9EDC:
bl sub_80DC9B4 bl sub_80DC9B4
ldr r0, =gStringVar1 ldr r0, =gStringVar1
lsls r1, r6, 6 lsls r1, r6, 6
ldr r2, =gUnknown_02039E02 ldr r2, =gUnknown_02039E00 + 2
adds r1, r2 adds r1, r2
bl StringCopy bl StringCopy
ldr r0, =gStringVar2 ldr r0, =gStringVar2
@@ -4626,7 +4626,7 @@ _080DA038:
bl sub_80DB89C bl sub_80DB89C
ldr r0, =gStringVar1 ldr r0, =gStringVar1
lsls r1, r6, 6 lsls r1, r6, 6
ldr r2, =gUnknown_02039E02 ldr r2, =gUnknown_02039E00 + 2
adds r1, r2 adds r1, r2
bl StringCopy bl StringCopy
ldr r4, =gStringVar4 ldr r4, =gStringVar4
@@ -5096,7 +5096,7 @@ sub_80DA3CC: @ 80DA3CC
ldr r0, =gStringVar1 ldr r0, =gStringVar1
ldrb r1, [r5] ldrb r1, [r5]
lsls r1, 6 lsls r1, 6
ldr r2, =gUnknown_02039E02 ldr r2, =gUnknown_02039E00 + 2
adds r1, r2 adds r1, r2
bl StringCopy bl StringCopy
ldr r5, =gStringVar4 ldr r5, =gStringVar4
@@ -5360,7 +5360,7 @@ _080DA600:
lsls r0, 2 lsls r0, 2
adds r0, r2 adds r0, r2
ldrh r0, [r0, 0x8] ldrh r0, [r0, 0x8]
bl sub_80ED03C bl BravoTrainerPokemonProfile_BeforeInterview1
b _080DA668 b _080DA668
.pool .pool
_080DA65C: _080DA65C:
@@ -5667,7 +5667,7 @@ _080DA8F2:
ldr r5, =gUnknown_02039F25 ldr r5, =gUnknown_02039F25
ldrb r0, [r5] ldrb r0, [r5]
lsls r0, 6 lsls r0, 6
ldr r4, =gUnknown_02039E0D ldr r4, =gUnknown_02039E00 + 13
adds r0, r4 adds r0, r4
mov r1, sp mov r1, sp
movs r2, 0x8 movs r2, 0x8
@@ -6451,7 +6451,7 @@ sub_80DAF1C: @ 80DAF1C
add r0, sp, 0x4 add r0, sp, 0x4
bl StringCopy bl StringCopy
lsls r1, r5, 6 lsls r1, r5, 6
ldr r0, =gUnknown_02039E0D ldr r0, =gUnknown_02039E00 + 13
adds r1, r0 adds r1, r0
add r0, sp, 0x4 add r0, sp, 0x4
bl StringAppend bl StringAppend
@@ -6508,7 +6508,7 @@ sub_80DAFA0: @ 80DAFA0
lsls r1, 24 lsls r1, 24
lsrs r1, 24 lsrs r1, 24
lsls r0, r4, 6 lsls r0, r4, 6
ldr r2, =gUnknown_02039E02 ldr r2, =gUnknown_02039E00 + 2
adds r0, r2 adds r0, r2
bl sub_80DAED4 bl sub_80DAED4
ldr r0, =gUnknown_02039F26 ldr r0, =gUnknown_02039F26
@@ -11173,7 +11173,7 @@ sub_80DD45C: @ 80DD45C
lsrs r6, r1, 24 lsrs r6, r1, 24
ldr r0, =gStringVar1 ldr r0, =gStringVar1
lsls r1, r4, 6 lsls r1, r4, 6
ldr r2, =gUnknown_02039E02 ldr r2, =gUnknown_02039E00 + 2
adds r1, r2 adds r1, r2
bl StringCopy bl StringCopy
ldr r0, =gStringVar2 ldr r0, =gStringVar2
@@ -15385,21 +15385,21 @@ _080DF6AE:
beq _080DF6AE beq _080DF6AE
_080DF6C4: _080DF6C4:
mov r0, r9 mov r0, r9
bl sub_80ECDA4 bl ContestLiveUpdates_BeforeInterview_1
mov r0, r10 mov r0, r10
bl sub_80ECDF4 bl ContestLiveUpdates_BeforeInterview_2
ldr r5, [sp, 0x4] ldr r5, [sp, 0x4]
lsrs r0, r5, 24 lsrs r0, r5, 24
bl sub_80ECE34 bl ContestLiveUpdates_BeforeInterview_3
ldr r0, =gUnknown_02039F34 ldr r0, =gUnknown_02039F34
ldr r0, [r0] ldr r0, [r0]
ldr r0, [r0, 0x1C] ldr r0, [r0, 0x1C]
add r0, r8 add r0, r8
ldrh r0, [r0, 0xA] ldrh r0, [r0, 0xA]
bl sub_80ECE74 bl ContestLiveUpdates_BeforeInterview_4
adds r0, r4, 0 adds r0, r4, 0
adds r1, r6, 0 adds r1, r6, 0
bl sub_80ECEB4 bl ContestLiveUpdates_BeforeInterview_5
_080DF6EE: _080DF6EE:
add sp, 0xC add sp, 0xC
pop {r3-r5} pop {r3-r5}
+2 -2
View File
@@ -144,7 +144,7 @@ sub_81563B0: @ 81563B0
beq _081564A0 beq _081564A0
adds r7, r5, 0 adds r7, r5, 0
ldr r6, =gAIScriptPtr ldr r6, =gAIScriptPtr
ldr r0, =gUnknown_02039E1E ldr r0, =gUnknown_02039E00 + 30
mov r8, r0 mov r8, r0
_081563CC: _081563CC:
ldr r0, [r7] ldr r0, [r7]
@@ -5030,7 +5030,7 @@ sub_8158948: @ 8158948
push {r4-r6,lr} push {r4-r6,lr}
movs r5, 0 movs r5, 0
movs r4, 0 movs r4, 0
ldr r6, =gUnknown_02039E1E ldr r6, =gUnknown_02039E00 + 30
_08158950: _08158950:
lsls r1, r4, 1 lsls r1, r4, 1
ldr r0, =gUnknown_02039F34 ldr r0, =gUnknown_02039F34
+12 -12
View File
@@ -1239,7 +1239,7 @@ _080F6334:
ldr r1, =gUnknown_02039F20 ldr r1, =gUnknown_02039F20
ldrb r0, [r1] ldrb r0, [r1]
ldr r7, =gStringVar1 ldr r7, =gStringVar1
ldr r2, =gUnknown_02039E0D ldr r2, =gUnknown_02039E00 + 13
mov r8, r2 mov r8, r2
cmp r0, 0 cmp r0, 0
beq _080F636E beq _080F636E
@@ -1750,7 +1750,7 @@ task_repel: @ 80F67C4
ldrb r0, [r0] ldrb r0, [r0]
adds r0, r1 adds r0, r1
ldrb r0, [r0] ldrb r0, [r0]
bl sub_80ED090 bl BravoTrainerPokemonProfile_BeforeInterview2
_080F67E6: _080F67E6:
movs r0, 0 movs r0, 0
str r0, [sp] str r0, [sp]
@@ -4785,7 +4785,7 @@ _080F8074:
ldrb r0, [r6] ldrb r0, [r6]
muls r0, r5 muls r0, r5
adds r0, r4 adds r0, r4
bl sub_80EE5A4 bl GetRibbonCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r0, 0x4 cmp r0, 0x4
@@ -4834,7 +4834,7 @@ _080F80E2:
ldrb r0, [r7] ldrb r0, [r7]
muls r0, r6 muls r0, r6
adds r0, r5 adds r0, r5
bl sub_80EE5A4 bl GetRibbonCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r0, 0x4 cmp r0, 0x4
@@ -4883,7 +4883,7 @@ _080F814E:
ldrb r0, [r7] ldrb r0, [r7]
muls r0, r6 muls r0, r6
adds r0, r5 adds r0, r5
bl sub_80EE5A4 bl GetRibbonCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r0, 0x4 cmp r0, 0x4
@@ -4926,7 +4926,7 @@ _080F8190:
ldrb r0, [r7] ldrb r0, [r7]
muls r0, r6 muls r0, r6
adds r0, r5 adds r0, r5
bl sub_80EE5A4 bl GetRibbonCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r0, 0x4 cmp r0, 0x4
@@ -4969,7 +4969,7 @@ _080F81F8:
ldrb r0, [r7] ldrb r0, [r7]
muls r0, r6 muls r0, r6
adds r0, r5 adds r0, r5
bl sub_80EE5A4 bl GetRibbonCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r0, 0x4 cmp r0, 0x4
@@ -4994,7 +4994,7 @@ sub_80F8264: @ 80F8264
ldr r0, =gSpecialVar_0x8006 ldr r0, =gSpecialVar_0x8006
ldrh r1, [r0] ldrh r1, [r0]
lsls r1, 6 lsls r1, 6
ldr r0, =gUnknown_02039E0D ldr r0, =gUnknown_02039E00 + 13
adds r1, r0 adds r1, r0
adds r0, r4, 0 adds r0, r4, 0
bl StringCopy bl StringCopy
@@ -5013,7 +5013,7 @@ sub_80F8290: @ 80F8290
ldr r1, =gSpecialVar_0x8006 ldr r1, =gSpecialVar_0x8006
ldrh r1, [r1] ldrh r1, [r1]
lsls r1, 6 lsls r1, 6
ldr r2, =gUnknown_02039E02 ldr r2, =gUnknown_02039E00 + 2
adds r1, r2 adds r1, r2
bl StringCopy bl StringCopy
pop {r0} pop {r0}
@@ -5104,7 +5104,7 @@ sub_80F834C: @ 80F834C
ldr r2, =gUnknown_02039F20 ldr r2, =gUnknown_02039F20
ldrb r0, [r2] ldrb r0, [r2]
ldr r4, =gStringVar3 ldr r4, =gStringVar3
ldr r3, =gUnknown_02039E0D ldr r3, =gUnknown_02039E00 + 13
cmp r0, 0 cmp r0, 0
beq _080F836E beq _080F836E
_080F835C: _080F835C:
@@ -5137,7 +5137,7 @@ sub_80F8390: @ 80F8390
ldr r2, =gUnknown_02039F20 ldr r2, =gUnknown_02039F20
ldrb r0, [r2] ldrb r0, [r2]
ldr r4, =gStringVar1 ldr r4, =gStringVar1
ldr r3, =gUnknown_02039E02 ldr r3, =gUnknown_02039E00 + 2
cmp r0, 0 cmp r0, 0
beq _080F83B2 beq _080F83B2
_080F83A0: _080F83A0:
@@ -5578,7 +5578,7 @@ sub_80F8714: @ 80F8714
b _080F877E b _080F877E
.pool .pool
_080F8748: _080F8748:
ldr r5, =gUnknown_02039E02 ldr r5, =gUnknown_02039E00 + 2
movs r4, 0x3 movs r4, 0x3
_080F874C: _080F874C:
adds r0, r5, 0 adds r0, r5, 0
+1 -1
View File
@@ -141,7 +141,7 @@ sub_80FC5DC: @ 80FC5DC
bl GetMultiplayerId bl GetMultiplayerId
ldr r1, =gUnknown_02039F25 ldr r1, =gUnknown_02039F25
strb r0, [r1] strb r0, [r1]
bl sub_8009FCC bl GetLinkPlayerCount
ldr r4, =gUnknown_02039F30 ldr r4, =gUnknown_02039F30
strb r0, [r4] strb r0, [r4]
ldr r1, =gUnknown_02039F2A ldr r1, =gUnknown_02039F2A
+1 -1
View File
@@ -492,7 +492,7 @@ sub_812287C: @ 812287C
bl Free bl Free
b _08122980 b _08122980
_081228B0: _081228B0:
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
mov r9, r0 mov r9, r0
+5 -5
View File
@@ -565,7 +565,7 @@ _0811A72C:
ldr r4, =gStringVar3 ldr r4, =gStringVar3
adds r0, r4, 0 adds r0, r4, 0
movs r1, 0x2 movs r1, 0x2
bl sub_811F88C bl InitializeEasyChatWordArray
b _0811A7C2 b _0811A7C2
.pool .pool
_0811A73C: _0811A73C:
@@ -3704,7 +3704,7 @@ sub_811BDF0: @ 811BDF0
ldrb r2, [r0] ldrb r2, [r0]
mov r0, sp mov r0, sp
adds r1, r5, 0 adds r1, r5, 0
bl sub_81DB5E8 bl TVShowConvertInternationalString
movs r0, 0 movs r0, 0
mov r1, sp mov r1, sp
bl sub_81AFC0C bl sub_81AFC0C
@@ -11109,8 +11109,8 @@ _0811F886:
bx r1 bx r1
thumb_func_end sub_811F860 thumb_func_end sub_811F860
thumb_func_start sub_811F88C thumb_func_start InitializeEasyChatWordArray
sub_811F88C: @ 811F88C InitializeEasyChatWordArray: @ 811F88C
push {lr} push {lr}
adds r2, r0, 0 adds r2, r0, 0
lsls r1, 16 lsls r1, 16
@@ -11133,7 +11133,7 @@ _0811F8AE:
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
thumb_func_end sub_811F88C thumb_func_end InitializeEasyChatWordArray
thumb_func_start sub_811F8BC thumb_func_start sub_811F8BC
sub_811F8BC: @ 811F8BC sub_811F8BC: @ 811F8BC
+3 -3
View File
@@ -389,8 +389,8 @@ _081DB5E4:
bx r0 bx r0
thumb_func_end sub_81DB5AC thumb_func_end sub_81DB5AC
thumb_func_start sub_81DB5E8 thumb_func_start TVShowConvertInternationalString
sub_81DB5E8: @ 81DB5E8 TVShowConvertInternationalString: @ 81DB5E8
push {r4,r5,lr} push {r4,r5,lr}
adds r5, r0, 0 adds r5, r0, 0
adds r4, r2, 0 adds r4, r2, 0
@@ -403,7 +403,7 @@ sub_81DB5E8: @ 81DB5E8
pop {r4,r5} pop {r4,r5}
pop {r0} pop {r0}
bx r0 bx r0
thumb_func_end sub_81DB5E8 thumb_func_end TVShowConvertInternationalString
thumb_func_start sub_81DB604 thumb_func_start sub_81DB604
sub_81DB604: @ 81DB604 sub_81DB604: @ 81DB604
+35 -35
View File
@@ -1371,8 +1371,8 @@ _08009FC4:
.pool .pool
thumb_func_end sub_8009FAC thumb_func_end sub_8009FAC
thumb_func_start sub_8009FCC thumb_func_start GetLinkPlayerCount
sub_8009FCC: @ 8009FCC GetLinkPlayerCount: @ 8009FCC
push {lr} push {lr}
ldr r0, =gLinkVSyncDisabled ldr r0, =gLinkVSyncDisabled
ldrb r0, [r0] ldrb r0, [r0]
@@ -1392,14 +1392,14 @@ _08009FEC:
_08009FF4: _08009FF4:
pop {r1} pop {r1}
bx r1 bx r1
thumb_func_end sub_8009FCC thumb_func_end GetLinkPlayerCount
thumb_func_start sub_8009FF8 thumb_func_start sub_8009FF8
sub_8009FF8: @ 8009FF8 sub_8009FF8: @ 8009FF8
push {r4-r7,lr} push {r4-r7,lr}
adds r6, r0, 0 adds r6, r0, 0
adds r5, r1, 0 adds r5, r1, 0
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r4, r0, 24 lsrs r4, r0, 24
movs r2, 0 movs r2, 0
@@ -1442,7 +1442,7 @@ sub_800A03C: @ 800A03C
thumb_func_start sub_800A040 thumb_func_start sub_800A040
sub_800A040: @ 800A040 sub_800A040: @ 800A040
push {lr} push {lr}
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r0, 0x4 cmp r0, 0x4
@@ -1546,7 +1546,7 @@ _0800A0EA:
b _0800A22E b _0800A22E
.pool .pool
_0800A0FC: _0800A0FC:
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _0800A10E bne _0800A10E
@@ -1572,12 +1572,12 @@ _0800A130:
adds r5, 0x1C adds r5, 0x1C
adds r6, 0x1 adds r6, 0x1
_0800A134: _0800A134:
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r6, r0 cmp r6, r0
blt _0800A120 blt _0800A120
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r7, r0 cmp r7, r0
@@ -1714,12 +1714,12 @@ _0800A266:
lsls r0, 24 lsls r0, 24
lsrs r4, r0, 24 lsrs r4, r0, 24
_0800A26C: _0800A26C:
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r4, r0 cmp r4, r0
bcc _0800A24C bcc _0800A24C
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r6, r0 cmp r6, r0
@@ -1742,8 +1742,8 @@ _0800A298:
.pool .pool
thumb_func_end sub_800A23C thumb_func_end sub_800A23C
thumb_func_start sub_800A2A4 thumb_func_start GetLinkPlayerTrainerId
sub_800A2A4: @ 800A2A4 GetLinkPlayerTrainerId: @ 800A2A4
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
ldr r2, =gLinkPlayers ldr r2, =gLinkPlayers
@@ -1755,7 +1755,7 @@ sub_800A2A4: @ 800A2A4
ldr r0, [r1] ldr r0, [r1]
bx lr bx lr
.pool .pool
thumb_func_end sub_800A2A4 thumb_func_end GetLinkPlayerTrainerId
thumb_func_start sub_800A2BC thumb_func_start sub_800A2BC
sub_800A2BC: @ 800A2BC sub_800A2BC: @ 800A2BC
@@ -2697,7 +2697,7 @@ _0800A9E2:
lsrs r4, r0, 24 lsrs r4, r0, 24
adds r5, 0x1 adds r5, 0x1
_0800A9EE: _0800A9EE:
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r5, r0 cmp r5, r0
@@ -3044,7 +3044,7 @@ _0800AC96:
thumb_func_start sub_800ACAC thumb_func_start sub_800ACAC
sub_800ACAC: @ 800ACAC sub_800ACAC: @ 800ACAC
push {r4,lr} push {r4,lr}
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r2, r0, 24 lsrs r2, r0, 24
movs r3, 0 movs r3, 0
@@ -3142,7 +3142,7 @@ _0800AD72:
thumb_func_start sub_800AD88 thumb_func_start sub_800AD88
sub_800AD88: @ 800AD88 sub_800AD88: @ 800AD88
push {r4,r5,lr} push {r4,r5,lr}
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r3, r0, 24 lsrs r3, r0, 24
movs r1, 0 movs r1, 0
@@ -3239,7 +3239,7 @@ _0800AE46:
thumb_func_start sub_800AE5C thumb_func_start sub_800AE5C
sub_800AE5C: @ 800AE5C sub_800AE5C: @ 800AE5C
push {r4,lr} push {r4,lr}
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r2, r0, 24 lsrs r2, r0, 24
movs r1, 0 movs r1, 0
@@ -9671,7 +9671,7 @@ _0800E1C8:
lsls r0, 24 lsls r0, 24
lsrs r5, r0, 24 lsrs r5, r0, 24
_0800E1E6: _0800E1E6:
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
subs r0, 0x1 subs r0, 0x1
@@ -9965,7 +9965,7 @@ _0800E428:
ble _0800E3FC ble _0800E3FC
mov r4, r9 mov r4, r9
_0800E434: _0800E434:
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r4, r0 cmp r4, r0
@@ -10019,7 +10019,7 @@ _0800E4A6:
adds r5, 0x1C adds r5, 0x1C
adds r4, 0x1 adds r4, 0x1
_0800E4AC: _0800E4AC:
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r4, r0 cmp r4, r0
@@ -13627,7 +13627,7 @@ sub_80102B8: @ 80102B8
bl sub_800FD14 bl sub_800FD14
strh r4, [r5] strh r4, [r5]
_080102E6: _080102E6:
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r2, r0, 24 lsrs r2, r0, 24
movs r1, 0 movs r1, 0
@@ -13734,7 +13734,7 @@ sub_8010390: @ 8010390
b _0801041C b _0801041C
.pool .pool
_080103CC: _080103CC:
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r2, r0, 24 lsrs r2, r0, 24
movs r1, 0x1 movs r1, 0x1
@@ -15290,7 +15290,7 @@ _08011048:
strb r0, [r1, 0x3] strb r0, [r1, 0x3]
adds r4, 0x1 adds r4, 0x1
_08011054: _08011054:
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r4, r0 cmp r4, r0
@@ -20950,12 +20950,12 @@ _08014138:
adds r5, 0x1C adds r5, 0x1C
adds r4, 0x1 adds r4, 0x1
_08014152: _08014152:
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r4, r0 cmp r4, r0
blt _08014138 blt _08014138
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r0, 0x2 cmp r0, 0x2
@@ -21159,7 +21159,7 @@ sub_8014304: @ 8014304
strh r1, [r0] strh r1, [r0]
ldr r0, =0x00004087 ldr r0, =0x00004087
bl VarSet bl VarSet
bl sub_8009FCC bl GetLinkPlayerCount
ldr r1, =gUnknown_03005DB8 ldr r1, =gUnknown_03005DB8
strb r0, [r1] strb r0, [r1]
bl GetMultiplayerId bl GetMultiplayerId
@@ -39697,7 +39697,7 @@ sub_801DDD0: @ 801DDD0
strb r5, [r4, 0x16] strb r5, [r4, 0x16]
movs r0, 0xFF movs r0, 0xFF
strb r0, [r4, 0x1A] strb r0, [r4, 0x1A]
bl sub_8009FCC bl GetLinkPlayerCount
strb r0, [r4, 0xD] strb r0, [r4, 0xD]
bl GetMultiplayerId bl GetMultiplayerId
strb r0, [r4, 0x13] strb r0, [r4, 0x13]
@@ -42285,7 +42285,7 @@ _0801F30A:
movs r0, 0x1 movs r0, 0x1
strh r0, [r4] strh r0, [r4]
_0801F30E: _0801F30E:
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
adds r2, r0, 0 adds r2, r0, 0
@@ -42446,7 +42446,7 @@ _0801F448:
ldrsh r0, [r4, r3] ldrsh r0, [r4, r3]
cmp r0, 0 cmp r0, 0
beq _0801F47C beq _0801F47C
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r0, 0x2 cmp r0, 0x2
@@ -45504,7 +45504,7 @@ _08020C8E:
b _08020CF8 b _08020CF8
.pool .pool
_08020CAC: _08020CAC:
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
mov r8, r0 mov r8, r0
@@ -53271,7 +53271,7 @@ _08024B2C:
_08024B6A: _08024B6A:
ldr r0, [sp, 0x10] ldr r0, [sp, 0x10]
strb r1, [r0] strb r1, [r0]
bl sub_8009FCC bl GetLinkPlayerCount
mov r1, r8 mov r1, r8
strb r0, [r1] strb r0, [r1]
bl GetMultiplayerId bl GetMultiplayerId
@@ -57700,7 +57700,7 @@ _08026EF6:
adds r4, 0xC adds r4, 0xC
adds r5, 0x1 adds r5, 0x1
_08026EFE: _08026EFE:
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r5, r0 cmp r5, r0
@@ -59511,7 +59511,7 @@ _08027C76:
thumb_func_start sub_8027D20 thumb_func_start sub_8027D20
sub_8027D20: @ 8027D20 sub_8027D20: @ 8027D20
push {lr} push {lr}
bl sub_8009FCC bl GetLinkPlayerCount
ldr r1, =gUnknown_02022C98 ldr r1, =gUnknown_02022C98
ldr r1, [r1] ldr r1, [r1]
adds r1, 0x24 adds r1, 0x24
@@ -64891,7 +64891,7 @@ sub_802AA48: @ 802AA48
sub_802AA60: @ 802AA60 sub_802AA60: @ 802AA60
push {r4,lr} push {r4,lr}
adds r4, r0, 0 adds r4, r0, 0
bl sub_8009FCC bl GetLinkPlayerCount
movs r2, 0 movs r2, 0
strb r0, [r4, 0x5] strb r0, [r4, 0x5]
adds r1, r4, 0 adds r1, r4, 0
@@ -68775,7 +68775,7 @@ _0802C8A4:
thumb_func_start sub_802C8AC thumb_func_start sub_802C8AC
sub_802C8AC: @ 802C8AC sub_802C8AC: @ 802C8AC
push {lr} push {lr}
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
pop {r1} pop {r1}
+4 -4
View File
@@ -1392,7 +1392,7 @@ _08120BB0:
movs r0, 0xFF movs r0, 0xFF
strb r0, [r7, 0x7] strb r0, [r7, 0x7]
mov r0, sp mov r0, sp
bl sub_8009228 bl IsStringJapanese
cmp r0, 0 cmp r0, 0
beq _08120BF8 beq _08120BF8
mov r0, sp mov r0, sp
@@ -1458,7 +1458,7 @@ _08120C48:
muls r0, r5 muls r0, r5
adds r0, 0x5 adds r0, 0x5
adds r0, r6, r0 adds r0, r6, r0
bl sub_8009228 bl IsStringJapanese
cmp r0, 0 cmp r0, 0
beq _08120C5E beq _08120C5E
mov r0, r8 mov r0, r8
@@ -1480,7 +1480,7 @@ _08120C6A:
movs r5, 0x3 movs r5, 0x3
_08120C74: _08120C74:
adds r0, r6, 0 adds r0, r6, 0
bl sub_8009228 bl IsStringJapanese
cmp r0, 0 cmp r0, 0
beq _08120C84 beq _08120C84
mov r1, r8 mov r1, r8
@@ -1569,7 +1569,7 @@ _08120CF2:
mov r1, r8 mov r1, r8
strb r0, [r1, 0x7] strb r0, [r1, 0x7]
mov r0, sp mov r0, sp
bl sub_8009228 bl IsStringJapanese
cmp r0, 0 cmp r0, 0
beq _08120D1A beq _08120D1A
movs r0, 0x1 movs r0, 0x1
+3 -3
View File
@@ -15872,7 +15872,7 @@ sub_81B8958: @ 81B8958
thumb_func_start sub_81B8984 thumb_func_start sub_81B8984
sub_81B8984: @ 81B8984 sub_81B8984: @ 81B8984
push {lr} push {lr}
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _081B8994 bne _081B8994
@@ -16222,7 +16222,7 @@ _081B8CB0:
strb r0, [r6, 0x2] strb r0, [r6, 0x2]
b _081B8D58 b _081B8D58
_081B8CBE: _081B8CBE:
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _081B8CFC bne _081B8CFC
@@ -16382,7 +16382,7 @@ _081B8DE2:
strb r0, [r5, 0x2] strb r0, [r5, 0x2]
b _081B8E72 b _081B8E72
_081B8DF0: _081B8DF0:
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _081B8E28 bne _081B8E28
+4 -4
View File
@@ -1211,7 +1211,7 @@ _08075DD4:
cmp r5, r0 cmp r5, r0
bne _08075E56 bne _08075E56
_08075E00: _08075E00:
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _08075E56 beq _08075E56
@@ -1243,7 +1243,7 @@ _08075E4C:
movs r2, 0x80 movs r2, 0x80
bl m4aMPlayVolumeControl bl m4aMPlayVolumeControl
_08075E56: _08075E56:
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _08075E70 beq _08075E70
@@ -1815,7 +1815,7 @@ _080762F8:
ldrb r0, [r5, 0x6] ldrb r0, [r5, 0x6]
strh r0, [r5, 0x3A] strh r0, [r5, 0x3A]
strh r1, [r5, 0x2E] strh r1, [r5, 0x2E]
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _08076358 beq _08076358
@@ -1888,7 +1888,7 @@ sub_8076398: @ 8076398
ble _080763EC ble _080763EC
movs r0, 0 movs r0, 0
strh r0, [r5, 0x2E] strh r0, [r5, 0x2E]
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _080763E8 beq _080763E8
+1 -1
View File
@@ -6514,7 +6514,7 @@ sub_81C3220: @ 81C3220
b _081C3282 b _081C3282
.pool .pool
_081C326C: _081C326C:
bl sub_80F0020 bl GetPlayerIDAsU32
adds r4, r0, 0 adds r4, r0, 0
ldr r0, =0x0000ffff ldr r0, =0x0000ffff
ands r4, r0 ands r4, r0
+11 -11
View File
@@ -1162,7 +1162,7 @@ _080E7714:
lsrs r0, 24 lsrs r0, 24
mov r8, r0 mov r8, r0
_080E771C: _080E771C:
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r8, r0 cmp r8, r0
@@ -1179,7 +1179,7 @@ _080E771C:
adds r1, 0x1 adds r1, 0x1
strh r1, [r0, 0x8] strh r1, [r0, 0x8]
_080E773E: _080E773E:
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
ldr r4, [sp, 0x8] ldr r4, [sp, 0x8]
@@ -1312,7 +1312,7 @@ sub_80E7820: @ 80E7820
sub_80E7830: @ 80E7830 sub_80E7830: @ 80E7830
push {r4,lr} push {r4,lr}
adds r4, r0, 0 adds r4, r0, 0
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r0, 0x3 cmp r0, 0x3
@@ -1341,7 +1341,7 @@ _080E7856:
.pool .pool
_080E7868: _080E7868:
movs r0, 0 movs r0, 0
bl sub_800A2A4 bl GetLinkPlayerTrainerId
adds r2, r0, 0 adds r2, r0, 0
movs r0, 0x1 movs r0, 0x1
ands r2, r0 ands r2, r0
@@ -1362,7 +1362,7 @@ _080E7880:
.pool .pool
_080E7894: _080E7894:
movs r0, 0 movs r0, 0
bl sub_800A2A4 bl GetLinkPlayerTrainerId
movs r1, 0x9 movs r1, 0x9
bl __umodsi3 bl __umodsi3
adds r2, r0, 0 adds r2, r0, 0
@@ -1523,7 +1523,7 @@ _080E79CE:
adds r4, r1, 0 adds r4, r1, 0
adds r4, 0x20 adds r4, 0x20
adds r0, r4, 0 adds r0, r4, 0
bl sub_8009228 bl IsStringJapanese
cmp r0, 0 cmp r0, 0
beq _080E79F2 beq _080E79F2
adds r0, r4, 0 adds r0, r4, 0
@@ -1738,7 +1738,7 @@ sub_80E7B60: @ 80E7B60
ldr r0, =gLinkPlayers ldr r0, =gLinkPlayers
ldrh r0, [r0, 0x4] ldrh r0, [r0, 0x4]
bl SeedRng2 bl SeedRng2
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r4, r0, 24 lsrs r4, r0, 24
movs r0, 0 movs r0, 0
@@ -1878,7 +1878,7 @@ _080E7C9A:
bne _080E7CEE bne _080E7CEE
adds r0, r5, 0 adds r0, r5, 0
adds r0, 0x24 adds r0, 0x24
bl sub_8009228 bl IsStringJapanese
cmp r0, 0 cmp r0, 0
beq _080E7CBA beq _080E7CBA
adds r0, r5, 0 adds r0, r5, 0
@@ -1901,7 +1901,7 @@ _080E7CC6:
adds r4, r0, 0 adds r4, r0, 0
adds r0, r5, 0 adds r0, r5, 0
adds r0, 0x2C adds r0, 0x2C
bl sub_8009228 bl IsStringJapanese
cmp r0, 0 cmp r0, 0
beq _080E7CE2 beq _080E7CE2
ldrb r0, [r4] ldrb r0, [r4]
@@ -1931,7 +1931,7 @@ _080E7CFA:
lsrs r0, 16 lsrs r0, 16
mov r8, r0 mov r8, r0
_080E7D04: _080E7D04:
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r8, r0 cmp r8, r0
@@ -3557,7 +3557,7 @@ sub_80E89AC: @ 80E89AC
adds r6, r0, 0 adds r6, r0, 0
mov r8, r1 mov r8, r1
mov r9, r2 mov r9, r2
bl sub_8009FCC bl GetLinkPlayerCount
adds r4, r0, 0 adds r4, r0, 0
lsls r4, 24 lsls r4, 24
lsrs r4, 24 lsrs r4, 24
+2 -2
View File
@@ -125,7 +125,7 @@ _08184EAC:
bl GetMultiplayerId bl GetMultiplayerId
ldr r1, =gUnknown_0203C7B4 ldr r1, =gUnknown_0203C7B4
strb r0, [r1] strb r0, [r1]
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
mov r10, r0 mov r10, r0
@@ -505,7 +505,7 @@ _081851D0:
adds r4, 0x1C adds r4, 0x1C
adds r5, 0x1 adds r5, 0x1
_081851DA: _081851DA:
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r5, r0 cmp r5, r0
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -1963,7 +1963,7 @@ _08033726:
lsls r0, r1, 24 lsls r0, r1, 24
lsrs r4, r0, 24 lsrs r4, r0, 24
_0803372C: _0803372C:
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r4, r0 cmp r4, r0
@@ -3259,8 +3259,8 @@ _0803413E:
.pool .pool
thumb_func_end sub_8034110 thumb_func_end sub_8034110
thumb_func_start dp01_build_cmdbuf_x21_a_bb thumb_func_start EmitCmd_x21
dp01_build_cmdbuf_x21_a_bb: @ 8034158 EmitCmd_x21: @ 8034158
push {r4,lr} push {r4,lr}
adds r4, r1, 0 adds r4, r1, 0
lsls r0, 24 lsls r0, 24
@@ -3280,7 +3280,7 @@ dp01_build_cmdbuf_x21_a_bb: @ 8034158
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
thumb_func_end dp01_build_cmdbuf_x21_a_bb thumb_func_end EmitCmd_x21
thumb_func_start dp01_build_cmdbuf_x22_a_three_bytes thumb_func_start dp01_build_cmdbuf_x22_a_three_bytes
dp01_build_cmdbuf_x22_a_three_bytes: @ 8034184 dp01_build_cmdbuf_x22_a_three_bytes: @ 8034184
+5 -5
View File
@@ -4121,7 +4121,7 @@ _081377BC:
add r2, sp, 0x18 add r2, sp, 0x18
bl SetMonData bl SetMonData
adds r0, r4, 0 adds r0, r4, 0
bl sub_80EE5A4 bl GetRibbonCount
strb r0, [r5, 0x1] strb r0, [r5, 0x1]
movs r7, 0x1 movs r7, 0x1
_0813780A: _0813780A:
@@ -5399,13 +5399,13 @@ sub_8138240: @ 8138240
bl GetMultiplayerId bl GetMultiplayerId
lsls r0, 24 lsls r0, 24
lsrs r7, r0, 24 lsrs r7, r0, 24
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r5, r0, 24 lsrs r5, r0, 24
movs r4, 0 movs r4, 0
cmp r4, r5 cmp r4, r5
bcs _0813828A bcs _0813828A
ldr r0, =gUnknown_0858D144 ldr r0, =gTVStringVarPtrs
mov r8, r0 mov r8, r0
_08138262: _08138262:
cmp r7, r4 cmp r7, r4
@@ -7519,7 +7519,7 @@ sub_8139370: @ 8139370
mov r2, sp mov r2, sp
bl SetMonData bl SetMonData
adds r0, r4, 0 adds r0, r4, 0
bl sub_80EE5A4 bl GetRibbonCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r0, 0x4 cmp r0, 0x4
@@ -8050,7 +8050,7 @@ sub_81397C4: @ 81397C4
cmp r1, r0 cmp r1, r0
bls _081397E0 bls _081397E0
movs r0, 0 movs r0, 0
bl sub_80EF340 bl TV_PrintIntToStringVar
b _08139862 b _08139862
.pool .pool
_081397E0: _081397E0:
+4 -4
View File
@@ -1928,15 +1928,15 @@ _080A6B1A:
bx r1 bx r1
thumb_func_end sub_80A6A90 thumb_func_end sub_80A6A90
thumb_func_start battle_type_is_double thumb_func_start IsDoubleBattle
battle_type_is_double: @ 80A6B20 IsDoubleBattle: @ 80A6B20
ldr r0, =gBattleTypeFlags ldr r0, =gBattleTypeFlags
ldr r0, [r0] ldr r0, [r0]
movs r1, 0x1 movs r1, 0x1
ands r0, r1 ands r0, r1
bx lr bx lr
.pool .pool
thumb_func_end battle_type_is_double thumb_func_end IsDoubleBattle
thumb_func_start sub_80A6B30 thumb_func_start sub_80A6B30
sub_80A6B30: @ 80A6B30 sub_80A6B30: @ 80A6B30
@@ -5807,7 +5807,7 @@ _080A8946:
bl sub_80A5C6C bl sub_80A5C6C
lsls r0, 24 lsls r0, 24
lsrs r7, r0, 24 lsrs r7, r0, 24
bl battle_type_is_double bl IsDoubleBattle
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _080A8998 beq _080A8998
+2 -2
View File
@@ -222,7 +222,7 @@ sub_80F8970: @ 80F8970
mov r12, r0 mov r12, r0
ldr r1, =gSpecialVar_0x8006 ldr r1, =gSpecialVar_0x8006
mov r9, r1 mov r9, r1
ldr r2, =gUnknown_02039E02 ldr r2, =gUnknown_02039E00 + 2
mov r10, r2 mov r10, r2
mov r2, r12 mov r2, r12
mov r1, sp mov r1, sp
@@ -625,7 +625,7 @@ sub_80F8C7C: @ 80F8C7C
ldrb r0, [r6] ldrb r0, [r6]
muls r0, r5 muls r0, r5
adds r0, r4 adds r0, r4
bl sub_80EE5A4 bl GetRibbonCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r0, 0x4 cmp r0, 0x4
+1 -1
View File
@@ -4494,7 +4494,7 @@ sub_80EAF80: @ 80EAF80
bne _080EAF9A bne _080EAF9A
b _080EB16A b _080EB16A
_080EAF9A: _080EAF9A:
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r0, 0x2 cmp r0, 0x2
+2 -2
View File
@@ -6603,7 +6603,7 @@ _0807A97C:
adds r4, 0x1C adds r4, 0x1C
adds r5, 0x1 adds r5, 0x1
_0807A980: _0807A980:
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r5, r0 cmp r5, r0
@@ -6632,7 +6632,7 @@ _0807A9B0:
adds r4, 0x1C adds r4, 0x1C
adds r5, 0x1 adds r5, 0x1
_0807A9B4: _0807A9B4:
bl sub_8009FCC bl GetLinkPlayerCount
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r5, r0 cmp r5, r0
-16938
View File
File diff suppressed because it is too large Load Diff
+4
View File
@@ -0,0 +1,4 @@
sCurTVShowSlot
sTV_SecretBaseVisitMovesTemp
sTV_DecorationsBuffer
sTV_SecretBaseVisitMonsTemp
+1
View File
@@ -4497,6 +4497,7 @@ gUnknown_08305D0C:: @ 8305D0C
.4byte gUnknown_08305CFC .4byte gUnknown_08305CFC
.4byte gUnknown_08305D04 .4byte gUnknown_08305D04
@ 8305D2C @ 8305D2C
.include "data/graphics/trainers/back_pic_coords.inc" .include "data/graphics/trainers/back_pic_coords.inc"
+9 -1
View File
@@ -822,7 +822,15 @@ gUnknown_0827EE09:: @ 27EE09
.incbin "baserom.gba", 0x27ee09, 0x2 .incbin "baserom.gba", 0x27ee09, 0x2
gUnknown_0827EE0B:: @ 827EE0B gUnknown_0827EE0B:: @ 827EE0B
.incbin "baserom.gba", 0x27ee0b, 0x118fa .incbin "baserom.gba", 0x27ee0b, 0x46a
.include "data/text/tv.inc"
.incbin "baserom.gba", 0x0028c7e9, 0x90f
.include "data/text/pokemon_news.inc"
.incbin "baserom.gba", 0x28e066, 0x269f
gUnknown_08290705:: @ 8290705 gUnknown_08290705:: @ 8290705
.incbin "baserom.gba", 0x290705, 0xeb .incbin "baserom.gba", 0x290705, 0xeb
+165
View File
@@ -0,0 +1,165 @@
gPokeNewsTextSlateport_Upcoming:: @ 0828D0F8
.string "Greetings!\n"
.string "Its time for POKéMON NEWS.\p"
.string "SLATEPORTs most popular kind of guy,\n"
.string "the ENERGY GURU, is in the news again!\p"
.string "He promises to, “Stupendously go for\n"
.string "it in just this many days: {STR_VAR_1}!”\p"
.string "While he refused to elaborate on what\n"
.string "he will stupendously go for, the\l"
.string "ENERGY GURU advised, “Save up your\l"
.string "money. Thatll be good…”\p"
.string "It sounds like a trip to SLATEPORT\n"
.string "would be well worth your while that day.\p"
.string "Thats the news on POKéMON NEWS.$"
gPokeNewsTextSlateport_Ongoing:: @ 0828D2A1
.string "Greetings!\n"
.string "Its time for POKéMON NEWS.\p"
.string "This is the news youve all been\n"
.string "waiting for!\p"
.string "SLATEPORTS ENERGY GURU is going\n"
.string "for it stupendously in the MARKET!\p"
.string "He promises unbeatable bargain\n"
.string "prices on CALCIUM and PROTEIN!\p"
.string "A trip to SLATEPORT CITY sounds\n"
.string "worthwhile. Why not visit and shop\l"
.string "to your hearts content?\p"
.string "Thats the news on POKéMON NEWS.$"
gPokeNewsTextSlateport_Ending:: @ 0828D3F5
.string "Greetings!\n"
.string "Its time for POKéMON NEWS.\p"
.string "This is the news youve all been\n"
.string "waiting for!\p"
.string "SLATEPORTS ENERGY GURU is going\n"
.string "for it stupendously in the MARKET!\p"
.string "He promises unbeatable bargain\n"
.string "prices on CALCIUM and PROTEIN!\p"
.string "According to the ENERGY GURU, he\n"
.string "still has ample merchandise left.\p"
.string "Why not visit SLATEPORT CITY for\n"
.string "a most enjoyable shopping trip?\p"
.string "Thats the news on POKéMON NEWS.$"
gPokeNewsTextGameCorner_Upcoming:: @ 0828D571
.string "Greetings!\n"
.string "Its time for POKéMON NEWS.\p"
.string "Its approaching!\n"
.string "Its finally coming!\p"
.string "The GAME CORNERs service day will be\n"
.string "here in just this many days: {STR_VAR_1}!\p"
.string "Even those who are usually unlucky\n"
.string "may be lucky on this particular day!\p"
.string "Thats the news on POKéMON NEWS.$"
gPokeNewsTextGameCorner_Ongoing:: @ 0828D66F
.string "Greetings!\n"
.string "Its time for POKéMON NEWS.\p"
.string "Its here!\n"
.string "Its finally arrived!\p"
.string "GAME CORNERs service day has finally\n"
.string "arrived!\p"
.string "Could you be lucky at the SLOTS \n"
.string "and ROULETTE?\p"
.string "The location is MAUVILLE CITY.\n"
.string "This is the place!\p"
.string "Thats the news on POKéMON NEWS.$"
gPokeNewsTextGameCorner_Ending:: @ 0828D768
.string "Greetings!\n"
.string "Its time for POKéMON NEWS.\p"
.string "Its here!\n"
.string "Its finally arrived!\p"
.string "GAME CORNERs service day has finally\n"
.string "arrived!\p"
.string "Could you be lucky at the SLOTS\n"
.string "and ROULETTE?\p"
.string "Time is limited and has almost run out.\n"
.string "The location is MAUVILLE CITY.\p"
.string "Thats the news on POKéMON NEWS.$"
gPokeNewsTextLilycove_Upcoming:: @ 0828D875
.string "Greetings!\n"
.string "Its time for POKéMON NEWS.\p"
.string "Weve just received wonderful news\n"
.string "from LILYCOVE DEPARTMENT STORE.\p"
.string "The DEPARTMENT STOREs clear-out sale\n"
.string "will be in just this many days: {STR_VAR_1}!\p"
.string "That thingamajig or that doodad that\n"
.string "youve always wanted could be yours!\p"
.string "Thats the news on POKéMON NEWS.$"
gPokeNewsTextLilycove_Ongoing:: @ 0828D994
.string "Greetings!\n"
.string "Its time for POKéMON NEWS.\p"
.string "This is the news youve all been\n"
.string "waiting for!\p"
.string "LILYCOVE DEPARTMENT STOREs clear-out\n"
.string "sale has finally arrived!\p"
.string "All the thingamajigs and doodads that\n"
.string "youve always dreamt about…\p"
.string "You may be in for fateful encounters\n"
.string "with them all!\p"
.string "Thats the news on POKéMON NEWS.$"
gPokeNewsTextLilycove_Ending:: @ 0828DAC0
.string "Greetings!\n"
.string "Its time for POKéMON NEWS.\p"
.string "This is the news youve all been\n"
.string "waiting for!\p"
.string "LILYCOVE DEPARTMENT STOREs clear-out\n"
.string "sale has finally arrived!\p"
.string "All the thingamajigs and doodads that\n"
.string "youve always dreamt about…\p"
.string "You may be in for fateful encounters\n"
.string "with them all!\p"
.string "Thats the news on POKéMON NEWS.$"
gPokeNewsTextBlendMaster_Upcoming:: @ 0828DBEC
.string "Greetings!\n"
.string "Its time for POKéMON NEWS.\p"
.string "We have big news for everyone\n"
.string "involved in the making of {POKEBLOCK}S.\p"
.string "The legendary BLEND MASTER will be\n"
.string "appearing in LILYCOVE CITY with just\l"
.string "a mere {STR_VAR_1}-day wait to go!\p"
.string "The BLEND MASTER is said to be\n"
.string "the best in all HOENN when it comes to\l"
.string "spinning a BERRY BLENDER.\p"
.string "Those people who want to make great\n"
.string "{POKEBLOCK}S or see the MASTER in action\l"
.string "are urged to save their BERRIES.\p"
.string "Thats the news on POKéMON NEWS.$"
gPokeNewsTextBlendMaster_Ongoing:: @ 0828DD9E
.string "Greetings!\n"
.string "Its time for POKéMON NEWS.\p"
.string "We have big news for everyone\n"
.string "involved in the making of {POKEBLOCK}S.\p"
.string "The legendary BLEND MASTER has\n"
.string "finally appeared!\p"
.string "The BLEND MASTER is spinning\n"
.string "the BERRY BLENDER at the LILYCOVE\l"
.string "CONTEST HALL.\p"
.string "Those people who want to make great\n"
.string "{POKEBLOCK}S or see the MASTER in action\l"
.string "should hurry to LILYCOVE.\p"
.string "Thats the news on POKéMON NEWS.$"
gPokeNewsTextBlendMaster_Ending:: @ 0828DF05
.string "Greetings!\n"
.string "Its time for POKéMON NEWS.\p"
.string "Its incredible!\n"
.string "Too incredible, even!\p"
.string "The BERRY BLENDER is spinning at\n"
.string "a dizzying pace!\p"
.string "The BLEND MASTER has lived up to\n"
.string "his reputation!\p"
.string "The BLEND MASTER will soon be\n"
.string "leaving LILYCOVE.\p"
.string "If you havent seen the MASTER in\n"
.string "action, dont waste this chance!\l"
.string "Head to LILYCOVE right now!\p"
.string "Thats the news on POKéMON NEWS.$"
+2891
View File
File diff suppressed because it is too large Load Diff
-128
View File
@@ -1,128 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2, 0
gUnknown_0858D094:: @ 858D094
.incbin "baserom.gba", 0x58d094, 0x3c
gUnknown_0858D0D0:: @ 858D0D0
.incbin "baserom.gba", 0x58d0d0, 0xe
gUnknown_0858D0DE:: @ 858D0DE
.incbin "baserom.gba", 0x58d0de, 0xe
gUnknown_0858D0EC:: @ 858D0EC
.incbin "baserom.gba", 0x58d0ec, 0x1c
gUnknown_0858D108:: @ 858D108
.incbin "baserom.gba", 0x58d108, 0x14
gUnknown_0858D11C:: @ 858D11C
.incbin "baserom.gba", 0x58d11c, 0x14
gUnknown_0858D130:: @ 858D130
.incbin "baserom.gba", 0x58d130, 0x14
gUnknown_0858D144:: @ 858D144
.incbin "baserom.gba", 0x58d144, 0xc
gUnknown_0858D150:: @ 858D150
.incbin "baserom.gba", 0x58d150, 0x20
gUnknown_0858D170:: @ 858D170
.incbin "baserom.gba", 0x58d170, 0x18
gUnknown_0858D188:: @ 858D188
.incbin "baserom.gba", 0x58d188, 0x14
gUnknown_0858D19C:: @ 858D19C
.incbin "baserom.gba", 0x58d19c, 0x4
gUnknown_0858D1A0:: @ 858D1A0
.incbin "baserom.gba", 0x58d1a0, 0x30
gUnknown_0858D1D0:: @ 858D1D0
.incbin "baserom.gba", 0x58d1d0, 0x34
gUnknown_0858D204:: @ 858D204
.incbin "baserom.gba", 0x58d204, 0x24
gUnknown_0858D228:: @ 858D228
.incbin "baserom.gba", 0x58d228, 0x18
gUnknown_0858D240:: @ 858D240
.incbin "baserom.gba", 0x58d240, 0x3c
gUnknown_0858D27C:: @ 858D27C
.incbin "baserom.gba", 0x58d27c, 0x84
gUnknown_0858D300:: @ 858D300
.incbin "baserom.gba", 0x58d300, 0x20
gUnknown_0858D320:: @ 858D320
.incbin "baserom.gba", 0x58d320, 0x18
gUnknown_0858D338:: @ 858D338
.incbin "baserom.gba", 0x58d338, 0x4c
gUnknown_0858D384:: @ 858D384
.incbin "baserom.gba", 0x58d384, 0x10
gUnknown_0858D394:: @ 858D394
.incbin "baserom.gba", 0x58d394, 0x1c
gUnknown_0858D3B0:: @ 858D3B0
.incbin "baserom.gba", 0x58d3b0, 0x8
gUnknown_0858D3B8:: @ 858D3B8
.incbin "baserom.gba", 0x58d3b8, 0xc
gUnknown_0858D3C4:: @ 858D3C4
.incbin "baserom.gba", 0x58d3c4, 0x2c
gUnknown_0858D3F0:: @ 858D3F0
.incbin "baserom.gba", 0x58d3f0, 0x1c
gUnknown_0858D40C:: @ 858D40C
.incbin "baserom.gba", 0x58d40c, 0xc
gUnknown_0858D418:: @ 858D418
.incbin "baserom.gba", 0x58d418, 0x10
gUnknown_0858D428:: @ 858D428
.incbin "baserom.gba", 0x58d428, 0x34
gUnknown_0858D45C:: @ 858D45C
.incbin "baserom.gba", 0x58d45c, 0x38
gUnknown_0858D494:: @ 858D494
.incbin "baserom.gba", 0x58d494, 0x4
gUnknown_0858D498:: @ 858D498
.incbin "baserom.gba", 0x58d498, 0x1c
gUnknown_0858D4B4:: @ 858D4B4
.incbin "baserom.gba", 0x58d4b4, 0x30
gUnknown_0858D4E4:: @ 858D4E4
.incbin "baserom.gba", 0x58d4e4, 0x40
gUnknown_0858D524:: @ 858D524
.incbin "baserom.gba", 0x58d524, 0x4c
gUnknown_0858D570:: @ 858D570
.incbin "baserom.gba", 0x58d570, 0x24
gUnknown_0858D594:: @ 858D594
.incbin "baserom.gba", 0x58d594, 0xac
gUnknown_0858D640:: @ 858D640
.incbin "baserom.gba", 0x58d640, 0x2c
gUnknown_0858D66C:: @ 858D66C
.incbin "baserom.gba", 0x58d66c, 0x24
gUnknown_0858D690:: @ 858D690
.incbin "baserom.gba", 0x58d690, 0x20
+38 -12
View File
@@ -5,6 +5,7 @@
#include "battle_util.h" #include "battle_util.h"
#include "battle_script_commands.h" #include "battle_script_commands.h"
#include "battle_2.h" #include "battle_2.h"
#include "battle_ai_switch_items.h"
/* /*
Banks are a name given to what could be called a 'battlerId' or 'monControllerId'. Banks are a name given to what could be called a 'battlerId' or 'monControllerId'.
@@ -77,6 +78,7 @@
#define BATTLE_PLAYER_TELEPORTED 0x5 #define BATTLE_PLAYER_TELEPORTED 0x5
#define BATTLE_POKE_FLED 0x6 #define BATTLE_POKE_FLED 0x6
#define BATTLE_CAUGHT 0x7 #define BATTLE_CAUGHT 0x7
#define BATTLE_SAFARI_OUT_OF_BALLS 0x8
#define BATTLE_FORFEITED 0x9 #define BATTLE_FORFEITED 0x9
#define BATTLE_OPPONENT_TELEPORTED 0xA #define BATTLE_OPPONENT_TELEPORTED 0xA
@@ -476,7 +478,7 @@ struct BattleHistory
struct UsedMoves usedMoves[BATTLE_BANKS_COUNT]; struct UsedMoves usedMoves[BATTLE_BANKS_COUNT];
u8 abilities[BATTLE_BANKS_COUNT]; u8 abilities[BATTLE_BANKS_COUNT];
u8 itemEffects[BATTLE_BANKS_COUNT]; u8 itemEffects[BATTLE_BANKS_COUNT];
u16 TrainerItems[BATTLE_BANKS_COUNT]; u16 trainerItems[BATTLE_BANKS_COUNT];
u8 itemsNo; u8 itemsNo;
}; };
@@ -527,11 +529,11 @@ struct BattleResults
u8 playerSwitchesCounter; // 0x2 u8 playerSwitchesCounter; // 0x2
u8 unk3; // 0x3 u8 unk3; // 0x3
u8 unk4; // 0x4 u8 unk4; // 0x4
u8 unk5_0:1; // 0x5 , 0x1 u8 unk5_0:1; // 0x5
u8 unk5_1:1; // 0x5 , 0x2 u8 usedMasterBall:1; // 0x5
u8 caughtMonBall:4; // 0x5 , 0x4/0x8/0x10/0x20 u8 caughtMonBall:4; // 0x5
u8 unk5_6:1; // 0x5 , 0x40 u8 unk5_6:1; // 0x5
u8 unk5_7:1; // 0x5 , 0x80 u8 unk5_7:1; // 0x5
u16 playerMon1Species; // 0x6 u16 playerMon1Species; // 0x6
u8 playerMon1Name[11]; // 0x8 u8 playerMon1Name[11]; // 0x8
u8 battleTurnCounter; // 0x13 u8 battleTurnCounter; // 0x13
@@ -544,7 +546,7 @@ struct BattleResults
u16 caughtMonSpecies; // 0x28 u16 caughtMonSpecies; // 0x28
u8 caughtMonNick[10]; // 0x2A u8 caughtMonNick[10]; // 0x2A
u8 filler34[2]; u8 filler34[2];
u8 catchAttempts[12]; // 0x36 u8 catchAttempts[11]; // 0x36
}; };
extern struct BattleResults gBattleResults; extern struct BattleResults gBattleResults;
@@ -632,8 +634,8 @@ struct BattleStruct
void (*savedCallback)(void); void (*savedCallback)(void);
u16 usedHeldItems[BATTLE_BANKS_COUNT]; u16 usedHeldItems[BATTLE_BANKS_COUNT];
u8 field_C0[4]; u8 field_C0[4];
u8 field_C4[2]; u8 AI_itemType[2];
u8 field_C6[2]; u8 AI_itemFlags[2];
u16 choicedMove[BATTLE_BANKS_COUNT]; u16 choicedMove[BATTLE_BANKS_COUNT];
u16 changedItems[BATTLE_BANKS_COUNT]; u16 changedItems[BATTLE_BANKS_COUNT];
u8 intimidateBank; u8 intimidateBank;
@@ -808,8 +810,8 @@ struct BattleScripting
u8 atk6C_state; u8 atk6C_state;
u8 learnMoveState; u8 learnMoveState;
u8 field_20; u8 field_20;
u8 field_21; u8 reshowMainState;
u8 field_22; u8 reshowHelperState;
u8 field_23; u8 field_23;
u8 field_24; u8 field_24;
u8 multiplayerId; u8 multiplayerId;
@@ -839,9 +841,29 @@ void FreeBattleSpritesData(void);
void AllocateMonSpritesGfx(void); void AllocateMonSpritesGfx(void);
void FreeMonSpritesGfx(void); void FreeMonSpritesGfx(void);
void BattleMusicStop(void); void BattleMusicStop(void);
void sub_805E990(struct Pokemon* mon, u8 bank); void sub_805E990(struct Pokemon *mon, u8 bank);
void sub_805EF14(void); void sub_805EF14(void);
bool8 BattleInitAllSprites(u8 *state1, u8 *state2); bool8 BattleInitAllSprites(u8 *state1, u8 *state2);
void sub_805E350(void);
bool8 BattleLoadAllHealthBoxesGfx(u8 state);
void LoadAndCreateEnemyShadowSprites(void);
void SetBankEnemyShadowSpriteCallback(u8 bank, u16 species);
void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 bank);
void BattleLoadOpponentMonSpriteGfx(struct Pokemon *mon, u8 bank);
void BattleLoadSubstituteSpriteGfx(u8 bank, bool8 arg1);
enum
{
BACK_PIC_BRENDAN,
BACK_PIC_MAY,
BACK_PIC_RED,
BACK_PIC_LEAF,
BACK_PIC_RS_BRENDAN,
BACK_PIC_RS_MAY,
BACK_PIC_WALLY,
BACK_PIC_STEVEN
};
void LoadBackTrainerBankSpriteGfx(u8 backPicId, u8 bank);
// rom_80A5C6C // rom_80A5C6C
u8 GetBankSide(u8 bank); u8 GetBankSide(u8 bank);
@@ -901,6 +923,10 @@ struct MonSpritesGfx
struct SpriteTemplate templates[4]; struct SpriteTemplate templates[4];
}; };
extern struct BattleSpritesGfx* gMonSpritesGfx;
extern u8 gBattleOutcome;
extern u16 gLastUsedItem;
extern u32 gBattleTypeFlags;
extern struct MonSpritesGfx* gMonSpritesGfxPtr; extern struct MonSpritesGfx* gMonSpritesGfxPtr;
#endif // GUARD_BATTLE_H #endif // GUARD_BATTLE_H
+17
View File
@@ -0,0 +1,17 @@
#ifndef GUARD_BATTLE_AI_SWITCH_ITEMS_H
#define GUARD_BATTLE_AI_SWITCH_ITEMS_H
enum
{
AI_ITEM_FULL_RESTORE = 1,
AI_ITEM_HEAL_HP,
AI_ITEM_CURE_CONDITION,
AI_ITEM_X_STAT,
AI_ITEM_GUARD_SPECS,
AI_ITEM_NOT_RECOGNIZABLE
};
void AI_TrySwitchOrUseItem(void);
u8 GetMostSuitableMonToSwitchInto(void);
#endif // GUARD_BATTLE_AI_SWITCH_ITEMS_H
+7
View File
@@ -0,0 +1,7 @@
#ifndef GUARD_BATTLE_CONTROLLER_PLAYER_H
#define GUARD_BATTLE_CONTROLLER_PLAYER_H
void ActionSelectionCreateCursorAt(u8 cursorPos, u8 unused);
void ActionSelectionDestroyCursorAt(u8 cursorPos);
#endif // GUARD_BATTLE_CONTROLLER_PLAYER_H
+3
View File
@@ -1,6 +1,8 @@
#ifndef GUARD_BATTLE_CONTROLLERS_H #ifndef GUARD_BATTLE_CONTROLLERS_H
#define GUARD_BATTLE_CONTROLLERS_H #define GUARD_BATTLE_CONTROLLERS_H
#include "battle_controller_player.h"
#define REQUEST_ALL_BATTLE 0x0 #define REQUEST_ALL_BATTLE 0x0
#define REQUEST_SPECIES_BATTLE 0x1 #define REQUEST_SPECIES_BATTLE 0x1
#define REQUEST_HELDITEM_BATTLE 0x2 #define REQUEST_HELDITEM_BATTLE 0x2
@@ -84,5 +86,6 @@ void Emit_x32(u8 bufferId);
void EmitPrintString(u8 bufferId, u16 stringId); void EmitPrintString(u8 bufferId, u16 stringId);
void EmitResetActionMoveSelection(u8 bufferId, u8 caseId); void EmitResetActionMoveSelection(u8 bufferId, u8 caseId);
void EmitBallThrow(u8 bufferId, u8 caseId); void EmitBallThrow(u8 bufferId, u8 caseId);
void EmitCmd_x21(u8 bufferId, u8 arg1, u16 arg2);
#endif // GUARD_BATTLE_CONTROLLERS_H #endif // GUARD_BATTLE_CONTROLLERS_H
+28
View File
@@ -0,0 +1,28 @@
#ifndef GUARD_BATTLE_INTERFACE_H
#define GUARD_BATTLE_INTERFACE_H
enum
{
HEALTHBOX_ALL,
HEALTHBOX_CURRENT_HP,
HEALTHBOX_MAX_HP,
HEALTHBOX_LEVEL,
HEALTHBOX_NICK,
HEALTHBOX_HEALTH_BAR,
HEALTHBOX_EXP_BAR,
HEALTHBOX_7,
HEALTHBOX_8,
HEALTHBOX_STATUS_ICON,
HEALTHBOX_SAFARI_ALL_TEXT,
HEALTHBOX_SAFARI_BALLS_TEXT
};
u8 CreateBankHealthboxSprites(u8 bank);
u8 CreateSafariPlayerHealthboxSprites(void);
void SetBankHealthboxSpritePos(u8 bank);
void SetHealthboxSpriteVisible(u8 healthboxSpriteId);
void SetHealthboxSpriteInvisible(u8 healthboxSpriteId);
void UpdateHealthboxAttribute(u8 healthboxSpriteId, struct Pokemon *mon, u8 elementId);
void nullsub_30(u8 healthboxSpriteId, bool8 isDoubleBattleBankOnly);
#endif // GUARD_BATTLE_INTERFACE_H
+1 -1
View File
@@ -43,7 +43,7 @@
void AI_CalcDmg(u8 bankAtk, u8 bankDef); void AI_CalcDmg(u8 bankAtk, u8 bankDef);
u8 TypeCalc(u16 move, u8 bankAtk, u8 bankDef); u8 TypeCalc(u16 move, u8 bankAtk, u8 bankDef);
u8 AI_TypeCalc(u16 move, u16 species, u8 ability); u8 AI_TypeCalc(u16 move, u16 targetSpecies, u8 targetAbility);
u8 BankGetTurnOrder(u8 bank); u8 BankGetTurnOrder(u8 bank);
void SetMoveEffect(bool8 primary, u8 certain); void SetMoveEffect(bool8 primary, u8 certain);
void BattleDestroyCursorAt(u8 cursorPosition); void BattleDestroyCursorAt(u8 cursorPosition);
+6
View File
@@ -0,0 +1,6 @@
#ifndef GUARD_BATTLE_TOWER_H
#define GUARD_BATTLE_TOWER_H
u16 sub_8164FCC(u8, u8);
#endif //GUARD_BATTLE_TOWER_H
+10
View File
@@ -1,6 +1,16 @@
#ifndef GUARD_BG_H #ifndef GUARD_BG_H
#define GUARD_BG_H #define GUARD_BG_H
struct BGCntrlBitfield // for the I/O registers
{
volatile u16 priority:2;
volatile u16 charBaseBlock:2;
volatile u16 field_0_2:4;
volatile u16 field_1_0:5;
volatile u16 areaOverflowMode:1;
volatile u16 screenSize:2;
};
enum enum
{ {
BG_CTRL_ATTR_VISIBLE = 1, BG_CTRL_ATTR_VISIBLE = 1,
+18
View File
@@ -0,0 +1,18 @@
#ifndef GUARD_CONTEST_H
#define GUARD_CONTEST_H
struct ContestStruct_02039E00 {
u16 unk_00;
u8 unk_02[11];
u8 unk_0d[8];
u8 filler_15[9];
u8 filler_1E[34];
};
extern struct ContestStruct_02039E00 gUnknown_02039E00[4];
extern u8 gUnknown_02039F24;
extern EWRAM_DATA u16 gScriptContestCategory;
extern EWRAM_DATA u8 gUnknown_02039F2E;
extern EWRAM_DATA u8 gUnknown_02039F30;
#endif //GUARD_CONTEST_H
+125 -1
View File
@@ -1,6 +1,130 @@
#ifndef GUARD_DECORATION_H #ifndef GUARD_DECORATION_H
#define GUARD_DECORATION_H #define GUARD_DECORATION_H
enum DecoId {
/*000*/ DECOR_NONE,
/*001*/ DECOR_SMALL_DESK,
/*002*/ DECOR_POKEMON_DESK,
/*003*/ DECOR_HEAVY_DESK,
/*004*/ DECOR_RAGGED_DESK,
/*005*/ DECOR_COMFORT_DESK,
/*006*/ DECOR_PRETTY_DESK,
/*007*/ DECOR_BRICK_DESK,
/*008*/ DECOR_CAMP_DESK,
/*009*/ DECOR_HARD_DESK,
/*010*/ DECOR_SMALL_CHAIR,
/*011*/ DECOR_POKEMON_CHAIR,
/*012*/ DECOR_HEAVY_CHAIR,
/*013*/ DECOR_PRETTY_CHAIR,
/*014*/ DECOR_COMFORT_CHAIR,
/*015*/ DECOR_RAGGED_CHAIR,
/*016*/ DECOR_BRICK_CHAIR,
/*017*/ DECOR_CAMP_CHAIR,
/*018*/ DECOR_HARD_CHAIR,
/*019*/ DECOR_RED_PLANT,
/*020*/ DECOR_TROPICAL_PLANT,
/*021*/ DECOR_PRETTY_FLOWERS,
/*022*/ DECOR_COLORFUL_PLANT,
/*023*/ DECOR_BIG_PLANT,
/*024*/ DECOR_GORGEOUS_PLANT,
/*025*/ DECOR_RED_BRICK,
/*026*/ DECOR_YELLOW_BRICK,
/*027*/ DECOR_BLUE_BRICK,
/*028*/ DECOR_RED_BALLOON,
/*029*/ DECOR_BLUE_BALLOON,
/*030*/ DECOR_YELLOW_BALLOON,
/*031*/ DECOR_RED_TENT,
/*032*/ DECOR_BLUE_TENT,
/*033*/ DECOR_SOLID_BOARD,
/*034*/ DECOR_SLIDE,
/*035*/ DECOR_FENCE_LENGTH,
/*036*/ DECOR_FENCE_WIDTH,
/*037*/ DECOR_TIRE,
/*038*/ DECOR_STAND,
/*039*/ DECOR_MUD_BALL,
/*040*/ DECOR_BREAKABLE_DOOR,
/*041*/ DECOR_SAND_ORNAMENT,
/*042*/ DECOR_SILVER_SHIELD,
/*043*/ DECOR_GOLD_SHIELD,
/*044*/ DECOR_GLASS_ORNAMENT,
/*045*/ DECOR_TV,
/*046*/ DECOR_ROUND_TV,
/*047*/ DECOR_CUTE_TV,
/*048*/ DECOR_GLITTER_MAT,
/*049*/ DECOR_JUMP_MAT,
/*050*/ DECOR_SPIN_MAT,
/*051*/ DECOR_C_LOW_NOTE_MAT,
/*052*/ DECOR_D_NOTE_MAT,
/*053*/ DECOR_E_NOTE_MAT,
/*054*/ DECOR_F_NOTE_MAT,
/*055*/ DECOR_G_NOTE_MAT,
/*056*/ DECOR_A_NOTE_MAT,
/*057*/ DECOR_B_NOTE_MAT,
/*058*/ DECOR_C_HIGH_NOTE_MAT,
/*059*/ DECOR_SURF_MAT,
/*060*/ DECOR_THUNDER_MAT,
/*061*/ DECOR_FIRE_BLAST_MAT,
/*062*/ DECOR_POWDER_SNOW_MAT,
/*063*/ DECOR_ATTRACT_MAT,
/*064*/ DECOR_FISSURE_MAT,
/*065*/ DECOR_SPIKES_MAT,
/*066*/ DECOR_BALL_POSTER,
/*067*/ DECOR_GREEN_POSTER,
/*068*/ DECOR_RED_POSTER,
/*069*/ DECOR_BLUE_POSTER,
/*070*/ DECOR_CUTE_POSTER,
/*071*/ DECOR_PIKA_POSTER,
/*072*/ DECOR_LONG_POSTER,
/*073*/ DECOR_SEA_POSTER,
/*074*/ DECOR_SKY_POSTER,
/*075*/ DECOR_KISS_POSTER,
/*076*/ DECOR_PICHU_DOLL,
/*077*/ DECOR_PIKACHU_DOLL,
/*078*/ DECOR_MARILL_DOLL,
/*079*/ DECOR_TOGEPI_DOLL,
/*080*/ DECOR_CYNDAQUIL_DOLL,
/*081*/ DECOR_CHIKORITA_DOLL,
/*082*/ DECOR_TOTODILE_DOLL,
/*083*/ DECOR_JIGGLYPUFF_DOLL,
/*084*/ DECOR_MEOWTH_DOLL,
/*085*/ DECOR_CLEFAIRY_DOLL,
/*086*/ DECOR_DITTO_DOLL,
/*087*/ DECOR_SMOOCHUM_DOLL,
/*088*/ DECOR_TREECKO_DOLL,
/*089*/ DECOR_TORCHIC_DOLL,
/*090*/ DECOR_MUDKIP_DOLL,
/*091*/ DECOR_DUSKULL_DOLL,
/*092*/ DECOR_WYNAUT_DOLL,
/*093*/ DECOR_BALTOY_DOLL,
/*094*/ DECOR_KECLEON_DOLL,
/*095*/ DECOR_AZURILL_DOLL,
/*096*/ DECOR_SKITTY_DOLL,
/*097*/ DECOR_SWABLU_DOLL,
/*098*/ DECOR_GULPIN_DOLL,
/*099*/ DECOR_LOTAD_DOLL,
/*100*/ DECOR_SEEDOT_DOLL,
/*101*/ DECOR_PIKA_CUSHION,
/*102*/ DECOR_ROUND_CUSHION,
/*103*/ DECOR_KISS_CUSHION,
/*104*/ DECOR_ZIGZAG_CUSHION,
/*105*/ DECOR_SPIN_CUSHION,
/*106*/ DECOR_DIAMOND_CUSHION,
/*107*/ DECOR_BALL_CUSHION,
/*108*/ DECOR_GRASS_CUSHION,
/*109*/ DECOR_FIRE_CUSHION,
/*110*/ DECOR_WATER_CUSHION,
/*111*/ DECOR_SNORLAX_DOLL,
/*112*/ DECOR_RHYDON_DOLL,
/*113*/ DECOR_LAPRAS_DOLL,
/*114*/ DECOR_VENUSAUR_DOLL,
/*115*/ DECOR_CHARIZARD_DOLL,
/*116*/ DECOR_BLASTOISE_DOLL,
/*117*/ DECOR_WAILMER_DOLL,
/*118*/ DECOR_REGIROCK_DOLL,
/*119*/ DECOR_REGICE_DOLL,
/*120*/ DECOR_REGISTEEL_DOLL
};
struct Decoration struct Decoration
{ {
/*0x00*/ u8 id; /*0x00*/ u8 id;
@@ -15,4 +139,4 @@ struct Decoration
extern const struct Decoration gDecorations[]; extern const struct Decoration gDecorations[];
#endif // GUARD_DECORATION_H #endif //GUARD_DECORATION_H
+6
View File
@@ -0,0 +1,6 @@
#ifndef GUARD_DIPLOMA_H
#define GUARD_DIPLOMA_H
void CB2_ShowDiploma(void);
#endif // GUARD_DIPLOMA_H
+4 -2
View File
@@ -30,7 +30,9 @@ enum
void InitEasyChatPhrases(void); void InitEasyChatPhrases(void);
void easy_chat_input_maybe(void); void easy_chat_input_maybe(void);
void CopyEasyChatWord(u8 *, u16); void CopyEasyChatWord(u8 *dest, u16 word);
bool32 sub_811F8D8(u16); bool32 sub_811F8D8(u16 word);
void InitializeEasyChatWordArray(u16 *words, u16 length);
void ConvertEasyChatWordsToString(u8 *dest, const u16 *src, u16 length1, u16 length2);
#endif // GUARD_EASYCHAT_H #endif // GUARD_EASYCHAT_H
+349
View File
@@ -8,4 +8,353 @@
extern const u8 gUnknown_082766A2[]; extern const u8 gUnknown_082766A2[];
extern const u8 gUnknown_082766A6[]; extern const u8 gUnknown_082766A6[];
extern const u8 gTVBravoTrainerText00[];
extern const u8 gTVBravoTrainerText01[];
extern const u8 gTVBravoTrainerText02[];
extern const u8 gTVBravoTrainerText03[];
extern const u8 gTVBravoTrainerText04[];
extern const u8 gTVBravoTrainerText05[];
extern const u8 gTVBravoTrainerText06[];
extern const u8 gTVBravoTrainerText07[];
extern const u8 gTVBravoTrainerText08[];
extern const u8 gTVBravoTrainerBattleTowerText00[];
extern const u8 gTVBravoTrainerBattleTowerText01[];
extern const u8 gTVBravoTrainerBattleTowerText02[];
extern const u8 gTVBravoTrainerBattleTowerText03[];
extern const u8 gTVBravoTrainerBattleTowerText04[];
extern const u8 gTVBravoTrainerBattleTowerText05[];
extern const u8 gTVBravoTrainerBattleTowerText06[];
extern const u8 gTVBravoTrainerBattleTowerText07[];
extern const u8 gTVBravoTrainerBattleTowerText08[];
extern const u8 gTVBravoTrainerBattleTowerText09[];
extern const u8 gTVBravoTrainerBattleTowerText10[];
extern const u8 gTVBravoTrainerBattleTowerText11[];
extern const u8 gTVBravoTrainerBattleTowerText12[];
extern const u8 gTVBravoTrainerBattleTowerText13[];
extern const u8 gTVBravoTrainerBattleTowerText14[];
extern const u8 gTVFanClubOpinionsText00[];
extern const u8 gTVFanClubOpinionsText01[];
extern const u8 gTVFanClubOpinionsText02[];
extern const u8 gTVFanClubOpinionsText03[];
extern const u8 gTVFanClubOpinionsText04[];
extern const u8 gTVFanClubText00[];
extern const u8 gTVFanClubText01[];
extern const u8 gTVFanClubText02[];
extern const u8 gTVFanClubText03[];
extern const u8 gTVFanClubText04[];
extern const u8 gTVFanClubText05[];
extern const u8 gTVFanClubText06[];
extern const u8 gTVFanClubText07[];
extern const u8 gTVRecentHappeningsText00[];
extern const u8 gTVRecentHappeningsText01[];
extern const u8 gTVRecentHappeningsText02[];
extern const u8 gTVRecentHappeningsText03[];
extern const u8 gTVRecentHappeningsText04[];
extern const u8 gTVRecentHappeningsText05[];
extern const u8 gTVMassOutbreakText00[];
extern const u8 gTV3CheersForPokeblocksText00[];
extern const u8 gTV3CheersForPokeblocksText01[];
extern const u8 gTV3CheersForPokeblocksText02[];
extern const u8 gTV3CheersForPokeblocksText03[];
extern const u8 gTV3CheersForPokeblocksText04[];
extern const u8 gTV3CheersForPokeblocksText05[];
extern const u8 gTVTrainerFanClubSpecialText00[];
extern const u8 gTVTrainerFanClubSpecialText01[];
extern const u8 gTVTrainerFanClubSpecialText02[];
extern const u8 gTVTrainerFanClubSpecialText03[];
extern const u8 gTVTrainerFanClubSpecialText04[];
extern const u8 gTVTrainerFanClubSpecialText05[];
extern const u8 gTVNameRaterText00[];
extern const u8 gTVNameRaterText01[];
extern const u8 gTVNameRaterText02[];
extern const u8 gTVNameRaterText03[];
extern const u8 gTVNameRaterText04[];
extern const u8 gTVNameRaterText05[];
extern const u8 gTVNameRaterText06[];
extern const u8 gTVNameRaterText07[];
extern const u8 gTVNameRaterText08[];
extern const u8 gTVNameRaterText09[];
extern const u8 gTVNameRaterText10[];
extern const u8 gTVNameRaterText11[];
extern const u8 gTVNameRaterText12[];
extern const u8 gTVNameRaterText13[];
extern const u8 gTVNameRaterText14[];
extern const u8 gTVNameRaterText15[];
extern const u8 gTVNameRaterText16[];
extern const u8 gTVNameRaterText17[];
extern const u8 gTVNameRaterText18[];
extern const u8 gTVPokemonAnglerText00[];
extern const u8 gTVPokemonAnglerText01[];
extern const u8 gTVPokemonTodayFailedText00[];
extern const u8 gTVPokemonTodayFailedText01[];
extern const u8 gTVPokemonTodayFailedText02[];
extern const u8 gTVPokemonTodayFailedText03[];
extern const u8 gTVPokemonTodayFailedText04[];
extern const u8 gTVPokemonTodayFailedText05[];
extern const u8 gTVPokemonTodayFailedText06[];
extern const u8 gTVPokemonTodaySuccessfulText00[];
extern const u8 gTVPokemonTodaySuccessfulText01[];
extern const u8 gTVPokemonTodaySuccessfulText02[];
extern const u8 gTVPokemonTodaySuccessfulText03[];
extern const u8 gTVPokemonTodaySuccessfulText04[];
extern const u8 gTVPokemonTodaySuccessfulText05[];
extern const u8 gTVPokemonTodaySuccessfulText06[];
extern const u8 gTVPokemonTodaySuccessfulText07[];
extern const u8 gTVPokemonTodaySuccessfulText08[];
extern const u8 gTVPokemonTodaySuccessfulText09[];
extern const u8 gTVPokemonTodaySuccessfulText10[];
extern const u8 gTVPokemonTodaySuccessfulText11[];
extern const u8 gTVTodaysSmartShopperText00[];
extern const u8 gTVTodaysSmartShopperText01[];
extern const u8 gTVTodaysSmartShopperText02[];
extern const u8 gTVTodaysSmartShopperText03[];
extern const u8 gTVTodaysSmartShopperText04[];
extern const u8 gTVTodaysSmartShopperText05[];
extern const u8 gTVTodaysSmartShopperText06[];
extern const u8 gTVTodaysSmartShopperText07[];
extern const u8 gTVTodaysSmartShopperText08[];
extern const u8 gTVTodaysSmartShopperText09[];
extern const u8 gTVTodaysSmartShopperText10[];
extern const u8 gTVTodaysSmartShopperText11[];
extern const u8 gTVTodaysSmartShopperText12[];
extern const u8 gTVWorldOfMastersText00[];
extern const u8 gTVWorldOfMastersText01[];
extern const u8 gTVWorldOfMastersText02[];
extern const u8 gTVTodaysRivalTrainerText00[];
extern const u8 gTVTodaysRivalTrainerText07[];
extern const u8 gTVTodaysRivalTrainerText08[];
extern const u8 gTVTodaysRivalTrainerText09[];
extern const u8 gTVTodaysRivalTrainerText10[];
extern const u8 gTVTodaysRivalTrainerText01[];
extern const u8 gTVTodaysRivalTrainerText02[];
extern const u8 gTVTodaysRivalTrainerText03[];
extern const u8 gTVTodaysRivalTrainerText04[];
extern const u8 gTVTodaysRivalTrainerText05[];
extern const u8 gTVTodaysRivalTrainerText06[];
extern const u8 gTVDewfordTrendWatcherNetworkText00[];
extern const u8 gTVDewfordTrendWatcherNetworkText01[];
extern const u8 gTVDewfordTrendWatcherNetworkText02[];
extern const u8 gTVDewfordTrendWatcherNetworkText03[];
extern const u8 gTVDewfordTrendWatcherNetworkText04[];
extern const u8 gTVDewfordTrendWatcherNetworkText05[];
extern const u8 gTVDewfordTrendWatcherNetworkText06[];
extern const u8 gTVHoennTreasureInvestigatorsText00[];
extern const u8 gTVHoennTreasureInvestigatorsText01[];
extern const u8 gTVHoennTreasureInvestigatorsText02[];
extern const u8 gTVFindThatGamerText00[];
extern const u8 gTVFindThatGamerText01[];
extern const u8 gTVFindThatGamerText02[];
extern const u8 gTVFindThatGamerText03[];
extern const u8 gTVBreakingNewsText00[];
extern const u8 gTVBreakingNewsText01[];
extern const u8 gTVBreakingNewsText02[];
extern const u8 gTVBreakingNewsText03[];
extern const u8 gTVBreakingNewsText04[];
extern const u8 gTVBreakingNewsText05[];
extern const u8 gTVBreakingNewsText06[];
extern const u8 gTVBreakingNewsText07[];
extern const u8 gTVBreakingNewsText12[];
extern const u8 gTVBreakingNewsText08[];
extern const u8 gTVBreakingNewsText09[];
extern const u8 gTVBreakingNewsText10[];
extern const u8 gTVBreakingNewsText11[];
extern const u8 gTVSecretBaseVisitText00[];
extern const u8 gTVSecretBaseVisitText01[];
extern const u8 gTVSecretBaseVisitText02[];
extern const u8 gTVSecretBaseVisitText03[];
extern const u8 gTVSecretBaseVisitText04[];
extern const u8 gTVSecretBaseVisitText05[];
extern const u8 gTVSecretBaseVisitText06[];
extern const u8 gTVSecretBaseVisitText07[];
extern const u8 gTVSecretBaseVisitText08[];
extern const u8 gTVSecretBaseVisitText09[];
extern const u8 gTVSecretBaseVisitText10[];
extern const u8 gTVSecretBaseVisitText11[];
extern const u8 gTVSecretBaseVisitText12[];
extern const u8 gTVSecretBaseVisitText13[];
extern const u8 gTVPokemonLotteryWinnerFlashReportText00[];
extern const u8 gTVThePokemonBattleSeminarText00[];
extern const u8 gTVThePokemonBattleSeminarText01[];
extern const u8 gTVThePokemonBattleSeminarText02[];
extern const u8 gTVThePokemonBattleSeminarText03[];
extern const u8 gTVThePokemonBattleSeminarText04[];
extern const u8 gTVThePokemonBattleSeminarText05[];
extern const u8 gTVThePokemonBattleSeminarText06[];
extern const u8 gTVTrainerFanClubText00[];
extern const u8 gTVTrainerFanClubText01[];
extern const u8 gTVTrainerFanClubText02[];
extern const u8 gTVTrainerFanClubText03[];
extern const u8 gTVTrainerFanClubText04[];
extern const u8 gTVTrainerFanClubText05[];
extern const u8 gTVTrainerFanClubText06[];
extern const u8 gTVTrainerFanClubText07[];
extern const u8 gTVTrainerFanClubText08[];
extern const u8 gTVTrainerFanClubText09[];
extern const u8 gTVTrainerFanClubText10[];
extern const u8 gTVTrainerFanClubText11[];
extern const u8 gTVCutiesText00[];
extern const u8 gTVCutiesText01[];
extern const u8 gTVCutiesText02[];
extern const u8 gTVCutiesText03[];
extern const u8 gTVCutiesText04[];
extern const u8 gTVCutiesText05[];
extern const u8 gTVCutiesText06[];
extern const u8 gTVCutiesText07[];
extern const u8 gTVCutiesText08[];
extern const u8 gTVCutiesText09[];
extern const u8 gTVCutiesText10[];
extern const u8 gTVCutiesText11[];
extern const u8 gTVCutiesText12[];
extern const u8 gTVCutiesText13[];
extern const u8 gTVCutiesText14[];
extern const u8 gTVCutiesText15[];
extern const u8 gTVPokemonNewsBattleFrontierText00[];
extern const u8 gTVPokemonNewsBattleFrontierText01[];
extern const u8 gTVPokemonNewsBattleFrontierText02[];
extern const u8 gTVPokemonNewsBattleFrontierText03[];
extern const u8 gTVPokemonNewsBattleFrontierText04[];
extern const u8 gTVPokemonNewsBattleFrontierText05[];
extern const u8 gTVPokemonNewsBattleFrontierText06[];
extern const u8 gTVPokemonNewsBattleFrontierText07[];
extern const u8 gTVPokemonNewsBattleFrontierText08[];
extern const u8 gTVPokemonNewsBattleFrontierText09[];
extern const u8 gTVPokemonNewsBattleFrontierText10[];
extern const u8 gTVPokemonNewsBattleFrontierText11[];
extern const u8 gTVPokemonNewsBattleFrontierText12[];
extern const u8 gTVPokemonNewsBattleFrontierText13[];
extern const u8 gTVPokemonNewsBattleFrontierText14[];
extern const u8 gTVPokemonNewsBattleFrontierText15[];
extern const u8 gTVPokemonNewsBattleFrontierText16[];
extern const u8 gTVPokemonNewsBattleFrontierText17[];
extern const u8 gTVPokemonNewsBattleFrontierText18[];
extern const u8 gTVWhatsNo1InHoennTodayText00[];
extern const u8 gTVWhatsNo1InHoennTodayText01[];
extern const u8 gTVWhatsNo1InHoennTodayText02[];
extern const u8 gTVWhatsNo1InHoennTodayText03[];
extern const u8 gTVWhatsNo1InHoennTodayText04[];
extern const u8 gTVWhatsNo1InHoennTodayText05[];
extern const u8 gTVWhatsNo1InHoennTodayText06[];
extern const u8 gTVWhatsNo1InHoennTodayText07[];
extern const u8 gTVWhatsNo1InHoennTodayText08[];
extern const u8 gTVSecretBaseSecretsText00[];
extern const u8 gTVSecretBaseSecretsText01[];
extern const u8 gTVSecretBaseSecretsText02[];
extern const u8 gTVSecretBaseSecretsText03[];
extern const u8 gTVSecretBaseSecretsText04[];
extern const u8 gTVSecretBaseSecretsText05[];
extern const u8 gTVSecretBaseSecretsText06[];
extern const u8 gTVSecretBaseSecretsText07[];
extern const u8 gTVSecretBaseSecretsText08[];
extern const u8 gTVSecretBaseSecretsText09[];
extern const u8 gTVSecretBaseSecretsText10[];
extern const u8 gTVSecretBaseSecretsText11[];
extern const u8 gTVSecretBaseSecretsText12[];
extern const u8 gTVSecretBaseSecretsText13[];
extern const u8 gTVSecretBaseSecretsText14[];
extern const u8 gTVSecretBaseSecretsText15[];
extern const u8 gTVSecretBaseSecretsText16[];
extern const u8 gTVSecretBaseSecretsText17[];
extern const u8 gTVSecretBaseSecretsText18[];
extern const u8 gTVSecretBaseSecretsText19[];
extern const u8 gTVSecretBaseSecretsText20[];
extern const u8 gTVSecretBaseSecretsText21[];
extern const u8 gTVSecretBaseSecretsText22[];
extern const u8 gTVSecretBaseSecretsText23[];
extern const u8 gTVSecretBaseSecretsText24[];
extern const u8 gTVSecretBaseSecretsText25[];
extern const u8 gTVSecretBaseSecretsText26[];
extern const u8 gTVSecretBaseSecretsText27[];
extern const u8 gTVSecretBaseSecretsText28[];
extern const u8 gTVSecretBaseSecretsText29[];
extern const u8 gTVSecretBaseSecretsText30[];
extern const u8 gTVSecretBaseSecretsText31[];
extern const u8 gTVSecretBaseSecretsText32[];
extern const u8 gTVSecretBaseSecretsText33[];
extern const u8 gTVSecretBaseSecretsText34[];
extern const u8 gTVSecretBaseSecretsText35[];
extern const u8 gTVSecretBaseSecretsText36[];
extern const u8 gTVSecretBaseSecretsText37[];
extern const u8 gTVSecretBaseSecretsText38[];
extern const u8 gTVSecretBaseSecretsText39[];
extern const u8 gTVSecretBaseSecretsText40[];
extern const u8 gTVSecretBaseSecretsText41[];
extern const u8 gTVSecretBaseSecretsText42[];
extern const u8 gTVSafariFanClubText00[];
extern const u8 gTVSafariFanClubText01[];
extern const u8 gTVSafariFanClubText02[];
extern const u8 gTVSafariFanClubText03[];
extern const u8 gTVSafariFanClubText04[];
extern const u8 gTVSafariFanClubText05[];
extern const u8 gTVSafariFanClubText06[];
extern const u8 gTVSafariFanClubText07[];
extern const u8 gTVSafariFanClubText08[];
extern const u8 gTVSafariFanClubText09[];
extern const u8 gTVSafariFanClubText10[];
extern const u8 gTVContestLiveUpdatesText00[];
extern const u8 gTVContestLiveUpdatesText01[];
extern const u8 gTVContestLiveUpdatesText02[];
extern const u8 gTVContestLiveUpdatesText03[];
extern const u8 gTVContestLiveUpdatesText04[];
extern const u8 gTVContestLiveUpdatesText05[];
extern const u8 gTVContestLiveUpdatesText06[];
extern const u8 gTVContestLiveUpdatesText07[];
extern const u8 gTVContestLiveUpdatesText08[];
extern const u8 gTVContestLiveUpdatesText09[];
extern const u8 gTVContestLiveUpdatesText10[];
extern const u8 gTVContestLiveUpdatesText11[];
extern const u8 gTVContestLiveUpdatesText12[];
extern const u8 gTVContestLiveUpdatesText13[];
extern const u8 gTVContestLiveUpdatesText14[];
extern const u8 gTVContestLiveUpdatesText15[];
extern const u8 gTVContestLiveUpdatesText16[];
extern const u8 gTVContestLiveUpdatesText17[];
extern const u8 gTVContestLiveUpdatesText18[];
extern const u8 gTVContestLiveUpdatesText19[];
extern const u8 gTVContestLiveUpdatesText20[];
extern const u8 gTVContestLiveUpdatesText21[];
extern const u8 gTVContestLiveUpdatesText22[];
extern const u8 gTVContestLiveUpdatesText23[];
extern const u8 gTVContestLiveUpdatesText24[];
extern const u8 gTVContestLiveUpdatesText25[];
extern const u8 gTVContestLiveUpdatesText26[];
extern const u8 gTVContestLiveUpdatesText27[];
extern const u8 gTVContestLiveUpdatesText28[];
extern const u8 gTVContestLiveUpdatesText29[];
extern const u8 gTVContestLiveUpdatesText30[];
extern const u8 gTVContestLiveUpdatesText31[];
extern const u8 gTVContestLiveUpdatesText32[];
extern const u8 gTVPokemonBattleUpdateText00[];
extern const u8 gTVPokemonBattleUpdateText01[];
extern const u8 gTVPokemonBattleUpdateText02[];
extern const u8 gTVPokemonBattleUpdateText03[];
extern const u8 gTVPokemonBattleUpdateText04[];
extern const u8 gTVPokemonBattleUpdateText05[];
extern const u8 gTVPokemonBattleUpdateText06[];
extern const u8 gTVPokemonBattleUpdateText07[];
extern const u8 gTVInSearchOfTrainersText00[];
extern const u8 gTVInSearchOfTrainersText01[];
extern const u8 gTVInSearchOfTrainersText02[];
extern const u8 gTVInSearchOfTrainersText03[];
extern const u8 gTVInSearchOfTrainersText04[];
extern const u8 gTVInSearchOfTrainersText05[];
extern const u8 gTVInSearchOfTrainersText06[];
extern const u8 gTVInSearchOfTrainersText07[];
extern const u8 gTVInSearchOfTrainersText08[];
extern const u8 gTVPokemonContestLiveUpdates2Text00[];
extern const u8 gTVPokemonContestLiveUpdates2Text01[];
extern const u8 gTVPokemonContestLiveUpdates2Text02[];
extern const u8 gTVPokemonContestLiveUpdates2Text03[];
extern const u8 gPokeNewsTextSlateport_Upcoming[];
extern const u8 gPokeNewsTextSlateport_Ongoing[];
extern const u8 gPokeNewsTextSlateport_Ending[];
extern const u8 gPokeNewsTextGameCorner_Upcoming[];
extern const u8 gPokeNewsTextGameCorner_Ongoing[];
extern const u8 gPokeNewsTextGameCorner_Ending[];
extern const u8 gPokeNewsTextLilycove_Upcoming[];
extern const u8 gPokeNewsTextLilycove_Ongoing[];
extern const u8 gPokeNewsTextLilycove_Ending[];
extern const u8 gPokeNewsTextBlendMaster_Upcoming[];
extern const u8 gPokeNewsTextBlendMaster_Ongoing[];
extern const u8 gPokeNewsTextBlendMaster_Ending[];
#endif //GUARD_EVENT_SCRIPTS_H #endif //GUARD_EVENT_SCRIPTS_H
+2
View File
@@ -22,4 +22,6 @@ extern u16 gUnknown_03005DE8;
// Exported ROM declarations // Exported ROM declarations
void DrawWholeMapView(void);
#endif //GUARD_FIELD_CAMERA_H #endif //GUARD_FIELD_CAMERA_H
+6 -1
View File
@@ -1,7 +1,12 @@
#ifndef GUARD_FIELDMAP_H #ifndef GUARD_FIELDMAP_H
#define GUARD_FIELDMAP_H #define GUARD_FIELDMAP_H
u8 MapGridGetMetatileBehaviorAt(s16, s16); extern struct MapCoords {
int width;
int height;
} gUnknown_03005DC0;
u32 MapGridGetMetatileBehaviorAt(int, int);
void MapGridSetMetatileIdAt(int, int, u16); void MapGridSetMetatileIdAt(int, int, u16);
void GetCameraCoords(u16*, u16*); void GetCameraCoords(u16*, u16*);
bool8 MapGridIsImpassableAt(s16, s16); bool8 MapGridIsImpassableAt(s16, s16);
+15 -1
View File
@@ -3,7 +3,7 @@
#define TRAINER_FLAG_START 0x500 #define TRAINER_FLAG_START 0x500
#define TRAINERS_FLAG_NO 0x356 #define TRAINERS_FLAG_NO 0x356
#define CODE_FLAGS (TRAINER_FLAG_START + TRAINERS_FLAG_NO + 0xA) #define CODE_FLAGS (TRAINER_FLAG_START + TRAINERS_FLAG_NO + 0xA) // 0x860
// SYSTEM FLAGS // SYSTEM FLAGS
@@ -84,6 +84,20 @@
#define SYS_CTRL_OBJ_DELETE CODE_FLAGS + 0x61 #define SYS_CTRL_OBJ_DELETE CODE_FLAGS + 0x61
#define SYS_RESET_RTC_ENABLE CODE_FLAGS + 0x62 #define SYS_RESET_RTC_ENABLE CODE_FLAGS + 0x62
#define SYS_TOWER_SILVER CODE_FLAGS + 0x64
#define SYS_TOWER_GOLD CODE_FLAGS + 0x65
#define SYS_DOME_SILVER CODE_FLAGS + 0x66
#define SYS_DOME_GOLD CODE_FLAGS + 0x67
#define SYS_PALACE_SILVER CODE_FLAGS + 0x68
#define SYS_PALACE_GOLD CODE_FLAGS + 0x69
#define SYS_ARENA_SILVER CODE_FLAGS + 0x6A
#define SYS_ARENA_GOLD CODE_FLAGS + 0x6B
#define SYS_FACTORY_SILVER CODE_FLAGS + 0x6C
#define SYS_FACTORY_GOLD CODE_FLAGS + 0x6D
#define SYS_PIKE_SILVER CODE_FLAGS + 0x6E
#define SYS_PIKE_GOLD CODE_FLAGS + 0x6F
#define SYS_PYRAMID_SILVER CODE_FLAGS + 0x70
#define SYS_PYRAMID_GOLD CODE_FLAGS + 0x71
#define SYS_FRONTIER_PASS CODE_FLAGS + 0x72 #define SYS_FRONTIER_PASS CODE_FLAGS + 0x72
#define SYS_STORAGE_UNKNOWN_FLAG CODE_FLAGS + 0x77 #define SYS_STORAGE_UNKNOWN_FLAG CODE_FLAGS + 0x77
+3
View File
@@ -56,4 +56,7 @@
#define NUM_GAME_STATS 64 #define NUM_GAME_STATS 64
void IncrementGameStat(u8);
u32 GetGameStat(u8);
#endif // GUARD_GAME_STAT_H #endif // GUARD_GAME_STAT_H
+47 -277
View File
@@ -197,7 +197,13 @@ struct SaveBlock2
// All below could be a one giant struct // All below could be a one giant struct
/*0x64C*/ u8 field_64C[1629]; /*0x64C*/ u8 field_64C[0x588];
/*0xBD4*/ u16 field_BD4;
/*0xBD6*/ u16 field_BD6;
/*0xBD8*/ u8 field_BD8[11];
/*0xBE3*/ u8 filler_BE3[8];
/*0xBEB*/ u8 field_BEB;
/*0xBE3*/ u8 filler_BEC[189];
/*0xCA9*/ u8 frontierChosenLvl : 2; // 0x1, 0x2 -> 0x3 /*0xCA9*/ u8 frontierChosenLvl : 2; // 0x1, 0x2 -> 0x3
/*0xCA9*/ u8 field_CA9_a : 1; // 0x4 /*0xCA9*/ u8 field_CA9_a : 1; // 0x4
/*0xCA9*/ u8 field_CA9_b : 1; // 0x8 /*0xCA9*/ u8 field_CA9_b : 1; // 0x8
@@ -205,7 +211,10 @@ struct SaveBlock2
/*0xCA9*/ u8 field_CA9_d : 1; // 0x20 /*0xCA9*/ u8 field_CA9_d : 1; // 0x20
/*0xCA9*/ u8 field_CA9_e : 1; // 0x40 /*0xCA9*/ u8 field_CA9_e : 1; // 0x40
/*0xCA9*/ u8 field_CA9_f : 1; // 0x80 /*0xCA9*/ u8 field_CA9_f : 1; // 0x80
/*0xCAA*/ u8 field_CAA[368]; /*0xCAA*/ u16 field_CAA[0x2e];
/*0xD06*/ u8 field_D06;
/*0xD07*/ u8 field_D07;
/*0xd08*/ u8 filler_D08[0x112];
/*0xE1A*/ u16 battlePyramidFloor; // possibly? /*0xE1A*/ u16 battlePyramidFloor; // possibly?
/*0xE1C*/ u8 field_E1C[16]; /*0xE1C*/ u8 field_E1C[16];
/*0xE2C*/ struct PyramidBag pyramidBag; /*0xE2C*/ struct PyramidBag pyramidBag;
@@ -225,30 +234,31 @@ extern struct SaveBlock2 *gSaveBlock2Ptr;
struct SecretBaseRecord struct SecretBaseRecord
{ {
u8 sbr_field_0; /*ID?*/ /*0x1A9C*/ u8 sbr_field_0;
u8 sbr_field_1_0:4; /*0x1A9D*/ u8 sbr_field_1_0:4;
u8 gender:1; /*0x1A9D*/ u8 gender:1;
u8 sbr_field_1_5:1; /*0x1A9D*/ u8 sbr_field_1_5:1;
u8 sbr_field_1_6:2; /*0x1A9D*/ u8 sbr_field_1_6:2;
u8 trainerName[7]; /*0x1A9E*/ u8 trainerName[7]; // 0xFF bytes?
u8 trainerId[4]; // byte 0 is used for determining trainer class /*0x1AA5*/ u8 trainerId[4]; // byte 0 is used for determining trainer class
u8 language; /*0x1AA9*/ u8 language;
u16 sbr_field_e; /*0x1AAA*/ u16 sbr_field_e;
u8 sbr_field_10; /*0x1AAC*/ u8 sbr_field_10;
u8 sbr_field_11; /*0x1AAD*/ u8 sbr_field_11;
u8 decorations[16]; /*0x1AAE*/ u8 decorations[16];
u8 decorationPos[16]; /*0x1ABE*/ u8 decorationPos[16];
u32 partyPersonality[6]; /*0x1ACE*/ u32 partyPersonality[6];
u16 partyMoves[6 * 4]; /*0x1AE6*/ u16 partyMoves[6 * 4];
u16 partySpecies[6]; /*0x1B16*/ u16 partySpecies[6];
u16 partyHeldItems[6]; /*0x1B22*/ u16 partyHeldItems[6];
u8 partyLevels[6]; /*0x1B2E*/ u8 partyLevels[6];
u8 partyEVs[6]; /*0x1B34*/ u8 partyEVs[6];
}; };
#include "game_stat.h" #include "game_stat.h"
#include "global.fieldmap.h" #include "global.fieldmap.h"
#include "global.berry.h" #include "global.berry.h"
#include "global.tv.h"
#include "pokemon.h" #include "pokemon.h"
struct WarpData struct WarpData
@@ -317,218 +327,6 @@ struct EasyChatPair
u16 words[2]; u16 words[2];
}; /*size = 0x8*/ }; /*size = 0x8*/
struct TVShowCommon
{
/*0x00*/ u8 var00;
/*0x01*/ u8 var01;
/*0x02*/ u8 pad02[20];
/*0x16*/ u16 var16[3];
/*0x1C*/ u8 srcTrainerId3Lo;
/*0x1D*/ u8 srcTrainerId3Hi;
/*0x1E*/ u8 srcTrainerId2Lo;
/*0x1F*/ u8 srcTrainerId2Hi;
/*0x20*/ u8 srcTrainerIdLo;
/*0x21*/ u8 srcTrainerIdHi;
/*0x22*/ u8 trainerIdLo;
/*0x23*/ u8 trainerIdHi;
};
struct TVShowFanClubLetter
{
/*0x00*/ u8 var00;
/*0x01*/ u8 var01;
/*0x02*/ u16 species;
/*0x04*/ u16 pad04[6];
/*0x10*/ u8 playerName[8];
/*0x18*/ u8 language;
};
struct TVShowRecentHappenings
{
/*0x00*/ u8 var00;
/*0x01*/ u8 var01;
/*0x02*/ u16 var02;
/*0x04*/ u16 var04[6];
/*0x10*/ u8 playerName[8];
/*0x18*/ u8 language;
/*0x19*/ u8 pad19[10];
};
struct TVShowFanclubOpinions
{
/*0x00*/ u8 var00;
/*0x01*/ u8 var01;
/*0x02*/ u16 var02;
/*0x04*/ u8 var04A:4;
/*0x04*/ u8 var04B:4;
/*0x05*/ u8 playerName[8];
/*0x0D*/ u8 language;
/*0x0E*/ u8 var0E;
/*0x0F*/ u8 var0F;
/*0x10*/ u8 var10[8];
/*0x18*/ u16 var18[2];
/*0x1C*/ u16 var1C[4];
};
struct TVShowUnknownType04
{
/*0x00*/ u8 var00;
/*0x01*/ u8 var01;
/*0x02*/ u8 pad02[4];
/*0x06*/ u16 var06;
};
struct TVShowNameRaterShow
{
/*0x00*/ u8 var00;
/*0x01*/ u8 var01;
/*0x02*/ u16 species;
/*0x04*/ u8 pokemonName[11];
/*0x0F*/ u8 trainerName[11];
/*0x1A*/ u8 random;
/*0x1B*/ u8 random2;
/*0x1C*/ u16 var1C;
/*0x1E*/ u8 language;
/*0x1F*/ u8 pokemonNameLanguage;
};
struct TVShowBravoTrainerPokemonProfiles
{
/*0x00*/ u8 var00;
/*0x01*/ u8 var01;
/*0x02*/ u16 species;
/*0x04*/ u16 var04[2];
/*0x08*/ u8 pokemonNickname[11];
/*0x13*/ u8 contestCategory:3;
/*0x13*/ u8 contestRank:2;
/*0x13*/ u8 contestResult:2;
/*0x13*/ u8 var13_7:1;
/*0x14*/ u16 var14;
/*0x16*/ u8 playerName[8];
/*0x1E*/ u8 language;
/*0x1F*/ u8 var1f;
};
struct TVShowBravoTrainerBattleTowerSpotlight
{
/*0x00*/ u8 var00;
/*0x01*/ u8 var01;
/*0x02*/ u8 trainerName[8];
/*0x0A*/ u16 species;
/*0x0C*/ u8 pokemonName[8];
/*0x14*/ u16 defeatedSpecies;
/*0x16*/ u16 var16;
/*0x18*/ u16 var18[1];
/*0x1A*/ u8 btLevel;
/*0x1B*/ u8 var1b;
/*0x1C*/ u8 var1c;
/*0x1D*/ u8 language;
};
struct TVShowPokemonToday
{
/*0x00*/ u8 var00;
/*0x01*/ u8 var01;
/*0x02*/ u8 language;
/*0x03*/ u8 language2;
/*0x04*/ u8 nickname[11];
/*0x0F*/ u8 ball;
/*0x10*/ u16 species;
/*0x12*/ u8 var12;
/*0x13*/ u8 playerName[8];
};
struct TVShowSmartShopper
{
/*0x00*/ u8 var00;
/*0x01*/ u8 var01;
/*0x02*/ u8 priceReduced;
/*0x03*/ u8 language;
/*0x04*/ u8 pad04[2];
/*0x06*/ u16 itemIds[3];
/*0x0C*/ u16 itemAmounts[3];
/*0x12*/ u8 shopLocation;
/*0x13*/ u8 playerName[8];
};
struct TVShowPokemonTodayFailed
{
/*0x00*/ u8 var00;
/*0x01*/ u8 var01;
/*0x02*/ u8 language;
/*0x03*/ u8 pad03[9];
/*0x0c*/ u16 species;
/*0x0e*/ u16 species2;
/*0x10*/ u8 var10;
/*0x11*/ u8 var11;
/*0x12*/ u8 var12;
/*0x13*/ u8 playerName[8];
};
struct TVShowPokemonAngler
{
/*0x00*/ u8 var00;
/*0x01*/ u8 var01;
/*0x02*/ u8 var02;
/*0x03*/ u8 var03;
/*0x04*/ u16 var04;
/*0x06*/ u8 language;
u8 pad07[12];
/*0x13*/ u8 playerName[8];
};
struct TVShowWorldOfMasters
{
/*0x00*/ u8 var00;
/*0x01*/ u8 var01;
/*0x02*/ u16 var02;
/*0x04*/ u16 var04;
/*0x06*/ u16 var06;
/*0x08*/ u16 var08;
/*0x0a*/ u8 var0a;
/*0x0b*/ u8 language;
u8 pad0c[7];
/*0x13*/ u8 playerName[8];
};
struct TVShowMassOutbreak
{
/*0x00*/ u8 var00;
/*0x01*/ u8 var01;
/*0x02*/ u8 var02;
/*0x03*/ u8 var03;
/*0x04*/ u16 moves[4];
/*0x0C*/ u16 species;
/*0x0E*/ u16 var0E;
/*0x10*/ u8 locationMapNum;
/*0x11*/ u8 locationMapGroup;
/*0x12*/ u8 var12;
/*0x13*/ u8 probability;
/*0x14*/ u8 level;
/*0x15*/ u8 var15;
/*0x16*/ u16 var16;
/*0x18*/ u8 language;
u8 pad19[11];
};
typedef union TVShow
{
struct TVShowCommon common;
struct TVShowFanClubLetter fanclubLetter;
struct TVShowRecentHappenings recentHappenings;
struct TVShowFanclubOpinions fanclubOpinions;
struct TVShowUnknownType04 unkShow04;
struct TVShowNameRaterShow nameRaterShow;
struct TVShowBravoTrainerPokemonProfiles bravoTrainer;
struct TVShowBravoTrainerBattleTowerSpotlight bravoTrainerTower;
struct TVShowPokemonToday pokemonToday;
struct TVShowSmartShopper smartshopperShow;
struct TVShowPokemonTodayFailed pokemonTodayFailed;
struct TVShowPokemonAngler pokemonAngler;
struct TVShowWorldOfMasters worldOfMasters;
struct TVShowMassOutbreak massOutbreak;
} TVShow;
struct MailStruct struct MailStruct
{ {
/*0x00*/ u16 words[9]; /*0x00*/ u16 words[9];
@@ -576,35 +374,6 @@ typedef union OldMan
u8 filler[0x40]; u8 filler[0x40];
} OldMan; } OldMan;
struct UnknownSaveStruct2ABC
{
u8 val0;
u8 val1;
u16 val2;
};
struct GabbyAndTyData
{
/*2b10*/ u16 mon1;
/*2b12*/ u16 mon2;
/*2b14*/ u16 lastMove;
/*2b16*/ u16 quote;
/*2b18*/ u8 mapnum;
/*2b19*/ u8 battleNum;
/*2b1a*/ u8 valA_0:1;
/*2b1a*/ u8 valA_1:1;
/*2b1a*/ u8 valA_2:1;
/*2b1a*/ u8 valA_3:1;
/*2b1a*/ u8 valA_4:1;
/*2b1a*/ u8 valA_5:3;
/*2b1b*/ u8 valB_0:1;
/*2b1b*/ u8 valB_1:1;
/*2b1b*/ u8 valB_2:1;
/*2b1b*/ u8 valB_3:1;
/*2b1b*/ u8 valB_4:1;
/*2b1b*/ u8 valB_5:3;
};
struct RecordMixing_UnknownStructSub struct RecordMixing_UnknownStructSub
{ {
u32 unk0; u32 unk0;
@@ -781,22 +550,22 @@ struct SaveBlock1
/*0x????*/ u8 decorCushion[10]; /*0x????*/ u8 decorCushion[10];
/*0x27CA*/ u8 padding_27CA[2]; /*0x27CA*/ u8 padding_27CA[2];
/*0x27CC*/ TVShow tvShows[25]; /*0x27CC*/ TVShow tvShows[25];
/*0x2B50*/ struct UnknownSaveStruct2ABC pokeNews[16]; /*0x2B50*/ PokeNews pokeNews[16];
/*0x2B90*/ u16 outbreakPokemonSpecies; /*0x2B90*/ u16 outbreakPokemonSpecies;
/*0x????*/ u8 outbreakLocationMapNum; /*0x2B92*/ u8 outbreakLocationMapNum;
/*0x????*/ u8 outbreakLocationMapGroup; /*0x2B93*/ u8 outbreakLocationMapGroup;
/*0x????*/ u8 outbreakPokemonLevel; /*0x2B94*/ u8 outbreakPokemonLevel;
/*0x????*/ u8 outbreakUnk1; /*0x2B95*/ u8 outbreakUnk1;
/*0x????*/ u16 outbreakUnk2; /*0x2B96*/ u16 outbreakUnk2;
/*0x????*/ u16 outbreakPokemonMoves[4]; /*0x2B98*/ u16 outbreakPokemonMoves[4];
/*0x????*/ u8 outbreakUnk4; /*0x2BA0*/ u8 outbreakUnk4;
/*0x????*/ u8 outbreakPokemonProbability; /*0x2BA1*/ u8 outbreakPokemonProbability;
/*0x????*/ u16 outbreakUnk5; /*0x2BA2*/ u16 outbreakDaysLeft;
/*0x2BA4*/ struct GabbyAndTyData gabbyAndTyData; /*0x2BA4*/ struct GabbyAndTyData gabbyAndTyData;
/*0x????*/ u16 unk2B1C[6]; /*0x2BB0*/ u16 unk2BB0[6];
/*0x????*/ u16 unk2B28[6]; /*0x2BBC*/ u16 unk2BBC[6];
/*0x????*/ u16 unk2B34[6]; /*0x2BC8*/ u16 unk2BC8[6];
/*0x????*/ u16 unk2B3A[3]; /*0x2BD4*/ u16 unk2BD4[3];
/*0x2BE0*/ struct MailStruct mail[16]; /*0x2BE0*/ struct MailStruct mail[16];
/*0x2E20*/ u8 additionalPhrases[5]; // bitfield for 33 additional phrases in easy chat system /*0x2E20*/ u8 additionalPhrases[5]; // bitfield for 33 additional phrases in easy chat system
/*0x2E25*/ u8 unk2E25[3]; // possibly padding? /*0x2E25*/ u8 unk2E25[3]; // possibly padding?
@@ -806,7 +575,8 @@ struct SaveBlock1
/*0x2e90*/ struct ContestWinner contestWinners[13]; // 0 - 5 used in contest hall, 6 - 7 unused?, 8 - 12 museum /*0x2e90*/ struct ContestWinner contestWinners[13]; // 0 - 5 used in contest hall, 6 - 7 unused?, 8 - 12 museum
/*0x3030*/ struct DaycareData daycare; /*0x3030*/ struct DaycareData daycare;
/*0x3150*/ struct LinkBattleRecord linkBattleRecords[5]; /*0x3150*/ struct LinkBattleRecord linkBattleRecords[5];
/*0x31A0*/ u8 filler_31A0[8]; /*0x31A0*/ u8 unk_31A0;
/*0x31A1*/ u8 filler_31A1[7];
/*0x31A8*/ u8 giftRibbons[52]; /*0x31A8*/ u8 giftRibbons[52];
/*0x31DC*/ struct Roamer roamer; /*0x31DC*/ struct Roamer roamer;
/*0x31F8*/ struct EnigmaBerry enigmaBerry; /*0x31F8*/ struct EnigmaBerry enigmaBerry;
+535
View File
@@ -0,0 +1,535 @@
#ifndef GUARD_GLOBAL_TV_H
#define GUARD_GLOBAL_TV_H
enum
{
TVSHOW_OFF_AIR,
TVSHOW_FAN_CLUB_LETTER = 1,
TVSHOW_RECENT_HAPPENINGS,
TVSHOW_PKMN_FAN_CLUB_OPINIONS,
TVSHOW_UNKN_SHOWTYPE_04,
TVSHOW_NAME_RATER_SHOW,
TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE,
TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE,
TVSHOW_CONTEST_LIVE_UPDATES,
TVSHOW_3_CHEERS_FOR_POKEBLOCKS,
TVSHOW_BATTLE_UPDATE,
TVSHOW_FAN_CLUB_SPECIAL,
TVSHOW_CONTEST_LIVE_UPDATES_2,
TVSHOW_POKEMON_TODAY_CAUGHT = 21,
TVSHOW_SMART_SHOPPER,
TVSHOW_POKEMON_TODAY_FAILED,
TVSHOW_FISHING_ADVICE,
TVSHOW_WORLD_OF_MASTERS,
TVSHOW_TODAYS_RIVAL_TRAINER,
TVSHOW_TREND_WATCHER,
TVSHOW_TREASURE_INVESTIGATORS,
TVSHOW_FIND_THAT_GAMER,
TVSHOW_BREAKING_NEWS,
TVSHOW_SECRET_BASE_VISIT,
TVSHOW_LOTTO_WINNER,
TVSHOW_BATTLE_SEMINAR,
TVSHOW_TRAINER_FAN_CLUB,
TVSHOW_CUTIES,
TVSHOW_FRONTIER,
TVSHOW_NUMBER_ONE,
TVSHOW_SECRET_BASE_SECRETS,
TVSHOW_SAFARI_FAN_CLUB,
TVSHOW_MASS_OUTBREAK = 41,
};
typedef union // size = 0x24
{
// Common
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u8 pad02[26];
/*0x1C*/ u8 srcTrainerId3Lo;
/*0x1D*/ u8 srcTrainerId3Hi;
/*0x1E*/ u8 srcTrainerId2Lo;
/*0x1F*/ u8 srcTrainerId2Hi;
/*0x20*/ u8 srcTrainerIdLo;
/*0x21*/ u8 srcTrainerIdHi;
/*0x22*/ u8 trainerIdLo;
/*0x23*/ u8 trainerIdHi;
} common;
// Local shows
// TVSHOW_FAN_CLUB_LETTER
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 species;
/*0x04*/ u16 words[6];
/*0x10*/ u8 playerName[8];
/*0x18*/ u8 language;
} fanclubLetter;
// TVSHOW_RECENT_HAPPENINGS
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 var02;
/*0x04*/ u16 words[6];
/*0x10*/ u8 playerName[8];
/*0x18*/ u8 language;
} recentHappenings;
// TVSHOW_PKMN_FAN_CLUB_OPINIONS
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 species;
/*0x04*/ u8 friendshipHighNybble:4;
/*0x04*/ u8 questionAsked:4;
/*0x05*/ u8 playerName[8];
/*0x0D*/ u8 language;
/*0x0E*/ u8 pokemonNameLanguage;
/*0x0F*/ u8 filler_0F[1];
/*0x10*/ u8 nickname[8];
/*0x18*/ u8 filler_18[4];
/*0x1C*/ u16 words[4];
} fanclubOpinions;
// TVSHOW_UNKN_SHOWTYPE_04 (dummied out)
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u8 pad02[4];
/*0x06*/ u16 var06;
/*0x08*/ u8 pad_08[3];
/*0x0b*/ u8 string_0b[12];
/*0x17*/ u8 language;
} unkShow04;
// TVSHOW_NAME_RATER_SHOW
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 species;
/*0x04*/ u8 pokemonName[11];
/*0x0F*/ u8 trainerName[11];
/*0x1A*/ u8 random;
/*0x1B*/ u8 random2;
/*0x1C*/ u16 randomSpecies;
/*0x1E*/ u8 language;
/*0x1F*/ u8 pokemonNameLanguage;
} nameRaterShow;
// TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE (contest)
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 species;
/*0x04*/ u16 words[2];
/*0x08*/ u8 pokemonNickname[11];
/*0x13*/ u8 contestCategory:3;
/*0x13*/ u8 contestRank:2;
/*0x13*/ u8 contestResult:2;
/*0x14*/ u16 move;
/*0x16*/ u8 playerName[8];
/*0x1E*/ u8 language;
/*0x1F*/ u8 pokemonNameLanguage;
} bravoTrainer;
// TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u8 trainerName[8];
/*0x0A*/ u16 species;
/*0x0C*/ u8 pokemonName[8];
/*0x14*/ u16 defeatedSpecies;
/*0x16*/ u16 numFights;
/*0x18*/ u16 words[1];
/*0x1A*/ u8 btLevel;
/*0x1B*/ u8 interviewResponse;
/*0x1C*/ bool8 wonTheChallenge;
/*0x1D*/ u8 language;
/*0x1E*/ u8 pokemonNameLanguage;
} bravoTrainerTower;
// TVSHOW_CONTEST_LIVE_UPDATES
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 winningSpecies;
/*0x04*/ u8 winningTrainerName[8];
/*0x0C*/ u8 appealFlags2;
/*0x0D*/ u8 round1Rank;
/*0x0e*/ u8 round2Rank;
/*0x0f*/ u8 appealFlags1;
/*0x10*/ u16 move;
/*0x12*/ u16 species;
/*0x14*/ u8 playerName[8];
/*0x1C*/ u8 category;
/*0x1D*/ u8 language;
/*0x1E*/ u8 winningTrainerLanguage;
} contestLiveUpdates;
// TVSHOW_3_CHEERS_FOR_POKEBLOCKS
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u8 sheen;
/*0x03*/ u8 flavor:3;
/*0x03*/ u8 unk_03_3:2;
/*0x04*/ u8 worstBlenderName[8];
/*0x0C*/ u8 playerName[8];
/*0x14*/ u8 language;
/*0x15*/ u8 worstBlenderLanguage;
} threeCheers;
// TVSHOW_BATTLE_UPDATE
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 species;
/*0x04*/ u8 playerName[8];
/*0x0C*/ u8 linkOpponentName[8];
/*0x14*/ u16 move;
/*0x16*/ u16 species2;
/*0x18*/ u8 battleType;
/*0x19*/ u8 language;
/*0x1A*/ u8 linkOpponentLanguage;
} battleUpdate;
// TVSHOW_FAN_CLUB_SPECIAL
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u8 playerName[8];
/*0x0a*/ u8 idLo;
/*0x0b*/ u8 idHi;
/*0x0c*/ u8 idolName[8];
/*0x14*/ u16 words[1];
/*0x16*/ u8 score;
/*0x17*/ u8 language;
/*0x18*/ u8 idolNameLanguage;
} fanClubSpecial;
// TVSHOW_CONTEST_LIVE_UPDATES_2
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u8 playerName[8];
/*0x0a*/ u8 contestCategory;
/*0x0b*/ u8 nickname[11];
/*0x16*/ u8 pokeblockState;
/*0x17*/ u8 language;
/*0x18*/ u8 pokemonNameLanguage;
} contestLiveUpdates2;
// Record Mixing Shows
// TVSHOW_POKEMON_TODAY_CAUGHT
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u8 language;
/*0x03*/ u8 language2;
/*0x04*/ u8 nickname[11];
/*0x0F*/ u8 ball;
/*0x10*/ u16 species;
/*0x12*/ u8 nBallsUsed;
/*0x13*/ u8 playerName[8];
} pokemonToday;
// TVSHOW_SMART_SHOPPER
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u8 priceReduced;
/*0x03*/ u8 language;
/*0x04*/ u8 pad04[2];
/*0x06*/ u16 itemIds[3];
/*0x0C*/ u16 itemAmounts[3];
/*0x12*/ u8 shopLocation;
/*0x13*/ u8 playerName[8];
} smartshopperShow;
// TVSHOW_POKEMON_TODAY_FAILED
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u8 language;
/*0x03*/ u8 pad03[9];
/*0x0c*/ u16 species;
/*0x0e*/ u16 species2;
/*0x10*/ u8 nBallsUsed;
/*0x11*/ u8 outcome;
/*0x12*/ u8 location;
/*0x13*/ u8 playerName[8];
} pokemonTodayFailed;
// TVSHOW_FISHING_ADVICE
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u8 nBites;
/*0x03*/ u8 nFails;
/*0x04*/ u16 species;
/*0x06*/ u8 language;
/*0x07*/ u8 pad07[12];
/*0x13*/ u8 playerName[8];
} pokemonAngler;
// TVSHOW_WORLD_OF_MASTERS
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 numPokeCaught;
/*0x04*/ u16 caughtPoke;
/*0x06*/ u16 steps;
/*0x08*/ u16 species;
/*0x0a*/ u8 location;
/*0x0b*/ u8 language;
/*0x0c*/ u8 pad0c[7];
/*0x13*/ u8 playerName[8];
} worldOfMasters;
// TVSHOW_TODAYS_RIVAL_TRAINER
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 dexCount;
/*0x04*/ u8 badgeCount;
/*0x05*/ u8 nSilverSymbols;
/*0x06*/ u8 nGoldSymbols;
/*0x07*/ u8 location;
/*0x08*/ u16 battlePoints;
/*0x0a*/ u16 mapDataId;
/*0x0c*/ u8 language;
/*0x0d*/ u8 filler_0d[6];
/*0x13*/ u8 playerName[8];
} rivalTrainer;
// TVSHOW_TREND_WATCHER
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u8 filler_02[2];
/*0x04*/ u16 words[2];
/*0x08*/ u8 gender;
/*0x09*/ u8 language;
/*0x0a*/ u8 filler_0a[9];
/*0x13*/ u8 playerName[8];
} trendWatcher;
// TVSHOW_TREASURE_INVESTIGATORS
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 item;
/*0x04*/ u8 location;
/*0x05*/ u8 language;
/*0x06*/ u16 mapDataId;
/*0x08*/ u8 filler_08[11];
/*0x13*/ u8 playerName[8];
} treasureInvestigators;
// TVSHOW_FIND_THAT_GAMER
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u8 won;
/*0x03*/ u8 whichGame;
/*0x04*/ u16 nCoins;
/*0x06*/ u8 filler_06[2];
/*0x08*/ u8 language;
/*0x09*/ u8 filler_09[10];
/*0x13*/ u8 playerName[8];
} findThatGamer;
// TVSHOW_BREAKING_NEWS
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 lastOpponentSpecies;
/*0x04*/ u8 location;
/*0x05*/ u8 outcome;
/*0x06*/ u16 caughtMonBall;
/*0x08*/ u16 balls;
/*0x0a*/ u16 poke1Species;
/*0x0c*/ u16 lastUsedMove;
/*0x0e*/ u8 language;
/*0x0f*/ u8 filler_0f[4];
/*0x13*/ u8 playerName[8];
} breakingNews;
// TVSHOW_SECRET_BASE_VISIT
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u8 avgLevel;
/*0x03*/ u8 nDecorations;
/*0x04*/ u8 decorations[4];
/*0x08*/ u16 species;
/*0x0a*/ u16 move;
/*0x0c*/ u8 language;
/*0x0d*/ u8 filler_0d[6];
/*0x13*/ u8 playerName[8];
} secretBaseVisit;
// TVSHOW_LOTTO_WINNER
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 item;
/*0x04*/ u8 whichPrize;
/*0x05*/ u8 language;
/*0x06*/ u8 filler_06[13];
/*0x13*/ u8 playerName[8];
} lottoWinner;
// TVSHOW_BATTLE_SEMINAR
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 move;
/*0x04*/ u16 foeSpecies;
/*0x06*/ u16 species;
/*0x08*/ u16 otherMoves[3];
/*0x0e*/ u16 betterMove;
/*0x10*/ u8 nOtherMoves;
/*0x11*/ u8 language;
/*0x12*/ u8 filler_12[1];
/*0x13*/ u8 playerName[8];
} battleSeminar;
// TVSHOW_TRAINER_FAN_CLUB
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u8 filler_02[2];
/*0x04*/ u16 words[2];
/*0x08*/ u8 language;
/*0x09*/ u8 filler_09[10];
/*0x13*/ u8 playerName[8];
} trainerFanClub;
// TVSHOW_CUTIES
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u8 nRibbons;
/*0x03*/ u8 selectedRibbon;
/*0x04*/ u8 nickname[11];
/*0x0f*/ u8 language;
/*0x10*/ u8 pokemonNameLanguage;
/*0x11*/ u8 filler_12[2];
/*0x13*/ u8 playerName[8];
} cuties;
// TVSHOW_FRONTIER
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 winStreak;
/*0x04*/ u16 species1;
/*0x06*/ u16 species2;
/*0x08*/ u16 species3;
/*0x0a*/ u16 species4;
/*0x0c*/ u8 language;
/*0x0d*/ u8 facility;
/*0x0e*/ u8 filler_0e[5];
/*0x13*/ u8 playerName[8];
} frontier;
// TVSHOW_NUMBER_ONE
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 count;
/*0x04*/ u8 actionIdx;
/*0x05*/ u8 language;
/*0x06*/ u8 filler_06[13];
/*0x13*/ u8 playerName[8];
} numberOne;
// TVSHOW_SECRET_BASE_SECRETS
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 stepsInBase;
/*0x04*/ u8 baseOwnersName[8];
/*0x0c*/ u32 flags;
/*0x10*/ u16 item;
/*0x12*/ u8 savedState;
/*0x13*/ u8 playerName[8];
/*0x1b*/ u8 language;
/*0x1c*/ u8 baseOwnersNameLanguage;
} secretBaseSecrets;
// TVSHOW_SAFARI_FAN_CLUB
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u8 nMonsCaught;
/*0x03*/ u8 nPkblkUsed;
/*0x04*/ u8 language;
/*0x05*/ u8 filler_05[14];
/*0x13*/ u8 playerName[8];
} safariFanClub;
// Mass Outbreak
// TVSHOW_MASS_OUTBREAK
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u8 var02;
/*0x03*/ u8 var03;
/*0x04*/ u16 moves[4];
/*0x0C*/ u16 species;
/*0x0E*/ u16 var0E;
/*0x10*/ u8 locationMapNum;
/*0x11*/ u8 locationMapGroup;
/*0x12*/ u8 var12;
/*0x13*/ u8 probability;
/*0x14*/ u8 level;
/*0x15*/ u8 var15;
/*0x16*/ u16 daysLeft;
/*0x18*/ u8 language;
} massOutbreak;
} TVShow;
enum {
POKENEWS_NONE,
POKENEWS_SLATEPORT,
POKENEWS_GAME_CORNER,
POKENEWS_LILYCOVE,
POKENEWS_BLENDMASTER
};
typedef struct // 2b50
{
u8 kind;
u8 state;
u16 days;
} PokeNews;
struct GabbyAndTyData
{
/*2ba4*/ u16 mon1;
/*2ba6*/ u16 mon2;
/*2ba8*/ u16 lastMove;
/*2baa*/ u16 quote[1];
/*2bac*/ u8 mapnum;
/*2bad*/ u8 battleNum;
/*2bae*/ u8 battleTookMoreThanOneTurn:1;
/*2bae*/ u8 playerLostAMon:1;
/*2bae*/ u8 playerUsedAnItem:1;
/*2bae*/ u8 playerThrewABall:1;
/*2bae*/ u8 onAir:1;
/*2bae*/ u8 valA_5:3;
/*2baf*/ u8 battleTookMoreThanOneTurn2:1;
/*2baf*/ u8 playerLostAMon2:1;
/*2baf*/ u8 playerUsedAnItem2:1;
/*2baf*/ u8 playerThrewABall2:1;
/*2baf*/ u8 valB_4:4;
};
#endif //GUARD_GLOBAL_TV_H
+13
View File
@@ -0,0 +1,13 @@
#ifndef GUARD_international_string_util_H
#define GUARD_international_string_util_H
// Exported type declarations
// Exported RAM declarations
// Exported ROM declarations
void TVShowConvertInternationalString(void *dest, const void *src, u8 language);
u32 sub_81DB604(const u8 *);
#endif //GUARD_international_string_util_H
+1
View File
@@ -59,5 +59,6 @@ ItemUseFunc ItemId_GetFieldFunc(u16 itemId);
u8 ItemId_GetBattleUsage(u16 itemId); u8 ItemId_GetBattleUsage(u16 itemId);
ItemUseFunc ItemId_GetBattleFunc(u16 itemId); ItemUseFunc ItemId_GetBattleFunc(u16 itemId);
u8 ItemId_GetSecondaryId(u16 itemId); u8 ItemId_GetSecondaryId(u16 itemId);
u16 itemid_get_market_price(u16 itemId);
#endif // ITEM_H #endif // ITEM_H
+1 -1
View File
@@ -177,12 +177,12 @@ u32 LinkMain1(u8 *, u16 *, u16[CMD_LENGTH][MAX_LINK_PLAYERS]);
void LinkVSync(void); void LinkVSync(void);
void Timer3Intr(void); void Timer3Intr(void);
void SerialCB(void); void SerialCB(void);
u8 GetLinkPlayerCount(void);
void sub_800E0E8(void); void sub_800E0E8(void);
bool8 sub_800A520(void); bool8 sub_800A520(void);
bool8 sub_8010500(void); bool8 sub_8010500(void);
void sub_800DFB4(u8, u8); void sub_800DFB4(u8, u8);
void sub_800ADF8(void); void sub_800ADF8(void);
u8 sub_8009FCC(void);
#endif // GUARD_LINK_H #endif // GUARD_LINK_H
+1 -1
View File
@@ -2,7 +2,7 @@
#define GUARD_MALLOC_H #define GUARD_MALLOC_H
#define malloc Alloc #define malloc Alloc
#define calloc AllocZeroed #define calloc(ct, sz) AllocZeroed((ct) * (sz))
#define free Free #define free Free
extern u8 gHeap[]; extern u8 gHeap[];
+1
View File
@@ -359,6 +359,7 @@ enum
MOVE_DOOM_DESIRE, MOVE_DOOM_DESIRE,
MOVE_PSYCHO_BOOST, MOVE_PSYCHO_BOOST,
}; };
extern const u8 gMoveNames[][13];
#define LAST_MOVE_INDEX MOVE_PSYCHO_BOOST #define LAST_MOVE_INDEX MOVE_PSYCHO_BOOST
+3 -1
View File
@@ -16,6 +16,8 @@ enum
FLAG_SET_CAUGHT FLAG_SET_CAUGHT
}; };
u8 GetSetPokedexFlag(u16 nationalNum, u8 caseId); s8 GetSetPokedexFlag(u16 nationalNum, u8 caseId);
u16 pokedex_count(u8);
u16 sub_80C0844(u8);
#endif // GUARD_POKEDEX_H #endif // GUARD_POKEDEX_H
+1
View File
@@ -642,6 +642,7 @@ void UpdatePartyPokerusTime(u16 days);
void PartySpreadPokerus(struct Pokemon *party); void PartySpreadPokerus(struct Pokemon *party);
s8 GetMonFlavourRelation(struct Pokemon *mon, u8 a2); s8 GetMonFlavourRelation(struct Pokemon *mon, u8 a2);
s8 GetFlavourRelationByPersonality(u32 personality, u8 a2); s8 GetFlavourRelationByPersonality(u32 personality, u8 a2);
u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit);
#include "sprite.h" #include "sprite.h"
+54
View File
@@ -3,6 +3,60 @@
#include "pokemon.h" #include "pokemon.h"
// TODO once pokemon item effects is decompiled
/*
struct PokemonItemEffect
{
//field 0
u8 xAtk : 4; // x1, x2, x4, x8 = xF
u8 field_0_x10 : 1; // x10
u8 critRatioUp : 1; // x20
u8 field_0_x40 : 1; // x40
u8 cureInfatuation : 1; // x80
/*field 1
u8 xSpeed : 4; // x1, x2, x4, x8 = xF
u8 xDefense : 4; // x10, x20, x40, xF0
/*field 2
u8 xSpAtk : 4; // x1, x2, x4, x8 = xF
u8 xAccuracy : 4; // x10, x20, x40, xF0
/*field 3
u8 cureConfusion : 1; // x1
u8 cureParalysis : 1; // x2
u8 cureFreeze : 1; // x4
u8 cureBurn : 1; // x8
u8 curePoison : 1; // x10
u8 cureSleep : 1; // x20
u8 field_3_x40 : 1; // x40
u8 cantLowerStats : 1; // x80
/*field 4
u8 hpEv : 1; // x1
u8 attackEv : 1; // x2
u8 healHp : 1; // x4
u8 field_4_x8 : 1; // x8
u8 field_4_x10 : 1; // x10
u8 ppUp : 1; // x20
u8 levelUp : 1; // x40
u8 evolutionStone : 1; // x80
/*field 5
u8 defEv: 1; // x1
u8 speedEv : 1; // x2
u8 spDefEv : 1; // x4
u8 spAtkEv : 1; // x8
u8 ppMax : 1; // x10
u8 field_5_x20 : 1; // x20
u8 field_5_x40 : 1; // x40
u8 field_5_x80 : 1; // x80
/*field 6
u8 value;
};
*/
bool8 ExecuteTableBasedItemEffect(struct Pokemon *mon, u16 itemId, u8 partyId, u8 monMoveIndex, u8 a5); bool8 ExecuteTableBasedItemEffect(struct Pokemon *mon, u16 itemId, u8 partyId, u8 monMoveIndex, u8 a5);
#endif // GUARD_POKEMON_ITEM_EFFECTS #endif // GUARD_POKEMON_ITEM_EFFECTS
+2
View File
@@ -2,5 +2,7 @@
#define GUARD_POKEMON_STORAGE_SYSTEM_H #define GUARD_POKEMON_STORAGE_SYSTEM_H
u8* GetBoxNamePtr(u8 boxNumber); u8* GetBoxNamePtr(u8 boxNumber);
struct BoxPokemon *GetBoxedMonPtr(u8, u8);
void SetBoxMonNickFromAnyBox(u8, u8, u8 *);
#endif // GUARD_POKEMON_STORAGE_SYSTEM_H #endif // GUARD_POKEMON_STORAGE_SYSTEM_H
+227
View File
@@ -0,0 +1,227 @@
#ifndef GUARD_REGION_MAP_H
#define GUARD_REGION_MAP_H
// Exported type declarations
enum {
REGION_MAP_LITTLEROOT_TOWN,
REGION_MAP_OLDALE_TOWN,
REGION_MAP_DEWFORD_TOWN,
REGION_MAP_LAVARIDGE_TOWN,
REGION_MAP_FALLARBOR_TOWN,
REGION_MAP_VERDANTURF_TOWN,
REGION_MAP_PACIFIDLOG_TOWN,
REGION_MAP_PETALBURG_CITY,
REGION_MAP_SLATEPORT_CITY,
REGION_MAP_MAUVILLE_CITY,
REGION_MAP_RUSTBORO_CITY,
REGION_MAP_FORTREE_CITY,
REGION_MAP_LILYCOVE_CITY,
REGION_MAP_MOSSDEEP_CITY,
REGION_MAP_SOOTOPOLIS_CITY,
REGION_MAP_EVER_GRANDE_CITY,
REGION_MAP_ROUTE_101,
REGION_MAP_ROUTE_102,
REGION_MAP_ROUTE_103,
REGION_MAP_ROUTE_104,
REGION_MAP_ROUTE_105,
REGION_MAP_ROUTE_106,
REGION_MAP_ROUTE_107,
REGION_MAP_ROUTE_108,
REGION_MAP_ROUTE_109,
REGION_MAP_ROUTE_110,
REGION_MAP_ROUTE_111,
REGION_MAP_ROUTE_112,
REGION_MAP_ROUTE_113,
REGION_MAP_ROUTE_114,
REGION_MAP_ROUTE_115,
REGION_MAP_ROUTE_116,
REGION_MAP_ROUTE_117,
REGION_MAP_ROUTE_118,
REGION_MAP_ROUTE_119,
REGION_MAP_ROUTE_120,
REGION_MAP_ROUTE_121,
REGION_MAP_ROUTE_122,
REGION_MAP_ROUTE_123,
REGION_MAP_ROUTE_124,
REGION_MAP_ROUTE_125,
REGION_MAP_ROUTE_126,
REGION_MAP_ROUTE_127,
REGION_MAP_ROUTE_128,
REGION_MAP_ROUTE_129,
REGION_MAP_ROUTE_130,
REGION_MAP_ROUTE_131,
REGION_MAP_ROUTE_132,
REGION_MAP_ROUTE_133,
REGION_MAP_ROUTE_134,
REGION_MAP_UNDERWATER_124,
REGION_MAP_UNDERWATER_125,
REGION_MAP_UNDERWATER_126,
REGION_MAP_UNDERWATER_127,
REGION_MAP_UNDERWATER_128,
REGION_MAP_GRANITE_CAVE,
REGION_MAP_MT_CHIMNEY,
REGION_MAP_SAFARI_ZONE,
REGION_MAP_BATTLE_FRONTIER,
REGION_MAP_PETALBURG_WOODS,
REGION_MAP_RUSTURF_TUNNEL,
REGION_MAP_ABANDONED_SHIP,
REGION_MAP_NEW_MAUVILLE,
REGION_MAP_METEOR_FALLS,
REGION_MAP_METEOR_FALLS2,
REGION_MAP_MT_PYRE,
REGION_MAP_AQUA_HIDEOUT_OLD,
REGION_MAP_SHOAL_CAVE,
REGION_MAP_SEAFLOOR_CAVERN,
REGION_MAP_UNDERWATER,
REGION_MAP_VICTORY_ROAD,
REGION_MAP_MIRAGE_ISLAND,
REGION_MAP_CAVE_OF_ORIGIN,
REGION_MAP_SOUTHERN_ISLAND,
REGION_MAP_FIERY_PATH,
REGION_MAP_FIERY_PATH2,
REGION_MAP_JAGGED_PASS,
REGION_MAP_JAGGED_PASS2,
REGION_MAP_SEALED_CHAMBER,
REGION_MAP_UNDERWATER_SEALED_CHAMBER,
REGION_MAP_SCORCHED_SLAB,
REGION_MAP_ISLAND_CAVE,
REGION_MAP_DESERT_RUINS,
REGION_MAP_ANCIENT_TOMB,
REGION_MAP_INSIDE_OF_TRUCK,
REGION_MAP_SKY_PILLAR,
REGION_MAP_SECRET_BASE,
REGION_MAP_NONE,
REGION_MAP_PALLET_TOWN,
REGION_MAP_VIRIDIAN_CITY,
REGION_MAP_PEWTER_CITY,
REGION_MAP_CERULEAN_CITY,
REGION_MAP_LAVENDER_TOWN,
REGION_MAP_VERMILION_CITY,
REGION_MAP_CELADON_CITY,
REGION_MAP_FUCHSIA_CITY,
REGION_MAP_CINNABAR_ISLAND,
REGION_MAP_INDIGO_PLATEAU,
REGION_MAP_SAFFRON_CITY,
REGION_MAP_ROUTE_4,
REGION_MAP_ROUTE_10,
REGION_MAP_ROUTE_1,
REGION_MAP_ROUTE_2,
REGION_MAP_ROUTE_3,
REGION_MAP_ROUTE_4_2,
REGION_MAP_ROUTE_5,
REGION_MAP_ROUTE_6,
REGION_MAP_ROUTE_7,
REGION_MAP_ROUTE_8,
REGION_MAP_ROUTE_9,
REGION_MAP_ROUTE_10_2,
REGION_MAP_ROUTE_11,
REGION_MAP_ROUTE_12,
REGION_MAP_ROUTE_13,
REGION_MAP_ROUTE_14,
REGION_MAP_ROUTE_15,
REGION_MAP_ROUTE_16,
REGION_MAP_ROUTE_17,
REGION_MAP_ROUTE_18,
REGION_MAP_ROUTE_19,
REGION_MAP_ROUTE_20,
REGION_MAP_ROUTE_21,
REGION_MAP_ROUTE_22,
REGION_MAP_ROUTE_23,
REGION_MAP_ROUTE_24,
REGION_MAP_ROUTE_25,
REGION_MAP_VIRIDIAN_FOREST,
REGION_MAP_MT_MOON,
REGION_MAP_S_S_ANNE,
REGION_MAP_UNDERGROUND_PATH,
REGION_MAP_UNDERGROUND_PATH_2,
REGION_MAP_DIGLETTS_CAVE,
REGION_MAP_KANTO_VICTORY_ROAD,
REGION_MAP_ROCKET_HIDEOUT,
REGION_MAP_SILPH_CO,
REGION_MAP_POKEMON_MANSION,
REGION_MAP_KANTO_SAFARI_ZONE,
REGION_MAP_POKEMON_LEAGUE,
REGION_MAP_ROCK_TUNNEL,
REGION_MAP_SEAFOAM_ISLANDS,
REGION_MAP_POKEMON_TOWER,
REGION_MAP_CERULEAN_CAVE,
REGION_MAP_POWER_PLANT,
REGION_MAP_ONE_ISLAND,
REGION_MAP_TWO_ISLAND,
REGION_MAP_THREE_ISLAND,
REGION_MAP_FOUR_ISLAND,
REGION_MAP_FIVE_ISLAND,
REGION_MAP_SEVEN_ISLAND,
REGION_MAP_SIX_ISLAND,
REGION_MAP_KINDLE_ROAD,
REGION_MAP_TREASURE_BEACH,
REGION_MAP_CAPE_BRINK,
REGION_MAP_BOND_BRIDGE,
REGION_MAP_THREE_ISLE_PORT,
REGION_MAP_SEVII_ISLE_6,
REGION_MAP_SEVII_ISLE_7,
REGION_MAP_SEVII_ISLE_8,
REGION_MAP_SEVII_ISLE_9,
REGION_MAP_RESORT_GORGEOUS,
REGION_MAP_WATER_LABYRINTH,
REGION_MAP_FIVE_ISLE_MEADOW,
REGION_MAP_MEMORIAL_PILLAR,
REGION_MAP_OUTCAST_ISLAND,
REGION_MAP_GREEN_PATH,
REGION_MAP_WATER_PATH,
REGION_MAP_RUIN_VALLEY,
REGION_MAP_TRAINER_TOWER,
REGION_MAP_CANYON_ENTRANCE,
REGION_MAP_SEVAULT_CANYON,
REGION_MAP_TANOBY_RUINS,
REGION_MAP_SEVII_ISLE_22,
REGION_MAP_SEVII_ISLE_23,
REGION_MAP_SEVII_ISLE_24,
REGION_MAP_NAVEL_ROCK,
REGION_MAP_MT_EMBER,
REGION_MAP_BERRY_FOREST,
REGION_MAP_ICEFALL_CAVE,
REGION_MAP_ROCKET_WAREHOUSE,
REGION_MAP_TRAINER_TOWER_2,
REGION_MAP_DOTTED_HOLE,
REGION_MAP_LOST_CAVE,
REGION_MAP_PATTERN_BUSH,
REGION_MAP_ALTERING_CAVE,
REGION_MAP_TANOBY_CHAMBERS,
REGION_MAP_THREE_ISLE_PATH,
REGION_MAP_TANOBY_KEY,
REGION_MAP_BIRTH_ISLAND,
REGION_MAP_MONEAN_CHAMBER,
REGION_MAP_LIPTOO_CHAMBER,
REGION_MAP_WEEPTH_CHAMBER,
REGION_MAP_DILFORD_CHAMBER,
REGION_MAP_SCUFIB_CHAMBER,
REGION_MAP_RIXY_CHAMBER,
REGION_MAP_VIAPOIS_CHAMBER,
REGION_MAP_EMBER_SPA,
REGION_MAP_SPECIAL_AREA,
REGION_MAP_AQUA_HIDEOUT,
REGION_MAP_MAGMA_HIDEOUT,
REGION_MAP_MIRAGE_TOWER,
REGION_MAP_BIRTH_ISLAND_2,
REGION_MAP_FARAWAY_ISLAND,
REGION_MAP_ARTISAN_CAVE,
REGION_MAP_MARINE_CAVE,
REGION_MAP_UNDERWATER_MARINE_CAVE,
REGION_MAP_TERRA_CAVE,
REGION_MAP_UNDERWATER_TERRA_CAVE,
REGION_MAP_UNDERWATER_UNK1,
REGION_MAP_UNDERWATER_UNK2,
REGION_MAP_DESERT_UNDERPASS,
REGION_MAP_ALTERING_CAVE_2,
REGION_MAP_NAVEL_ROCK2,
REGION_MAP_TRAINER_HILL
};
// Exported RAM declarations
// Exported ROM declarations
void GetMapName(u8 *, u16, u16);
#endif //GUARD_REGION_MAP_H
+1
View File
@@ -1,6 +1,7 @@
#ifndef GUARD_RESHOW_BATTLE_SCREEN_H #ifndef GUARD_RESHOW_BATTLE_SCREEN_H
#define GUARD_RESHOW_BATTLE_SCREEN_H #define GUARD_RESHOW_BATTLE_SCREEN_H
void nullsub_35(void);
void ReshowBattleScreenAfterMenu(void); void ReshowBattleScreenAfterMenu(void);
#endif // GUARD_RESHOW_BATTLE_SCREEN_H #endif // GUARD_RESHOW_BATTLE_SCREEN_H
+1
View File
@@ -2,5 +2,6 @@
#define GUARD_ROM6_H #define GUARD_ROM6_H
void sub_81357FC(u8, void(void)); void sub_81357FC(u8, void(void));
u8 GetLeadMonIndex(void);
#endif //GUARD_ROM6_H #endif //GUARD_ROM6_H
+4 -4
View File
@@ -1,7 +1,7 @@
#ifndef GUARD_SCRIPTMENU_H #ifndef GUARD_SCRIPT_MENU_H
#define GUARD_SCRIPTMENU_H #define GUARD_SCRIPT_MENU_H
extern const u8 *const gUnknown_0858BAF0[]; extern const u8 *const gUnknown_0858BAF0[9];
bool8 ScriptMenu_Multichoice(u8 left, u8 top, u8 var3, u8 var4); bool8 ScriptMenu_Multichoice(u8 left, u8 top, u8 var3, u8 var4);
bool8 ScriptMenu_MultichoiceWithDefault(u8 left, u8 top, u8 var3, u8 var4, u8 var5); bool8 ScriptMenu_MultichoiceWithDefault(u8 left, u8 top, u8 var3, u8 var4, u8 var5);
@@ -10,4 +10,4 @@ bool8 ScriptMenu_MultichoiceGrid(u8 left, u8 top, u8 multichoiceId, u8 a4, u8 co
bool8 ScriptMenu_ShowPokemonPic(u16 var1, u8 var2, u8 var3); bool8 ScriptMenu_ShowPokemonPic(u16 var1, u8 var2, u8 var3);
bool8 (*ScriptMenu_GetPicboxWaitFunc(void))(void); bool8 (*ScriptMenu_GetPicboxWaitFunc(void))(void);
#endif #endif //GUARD_SCRIPT_MENU_H
+11
View File
@@ -0,0 +1,11 @@
#ifndef GUARD_SECRET_BASE_H
#define GUARD_SECRET_BASE_H
// Exported type declarations
// Exported RAM declarations
// Exported ROM declarations
void sub_80E980C(void);
#endif //GUARD_SECRET_BASE_H
+2
View File
@@ -1,6 +1,8 @@
#ifndef GUARD_SHOP_H #ifndef GUARD_SHOP_H
#define GUARD_SHOP_H #define GUARD_SHOP_H
extern EWRAM_DATA struct ItemSlot gUnknown_02039F80[3];
void CreatePokemartMenu(const u16 *); void CreatePokemartMenu(const u16 *);
void CreateDecorationShop1Menu(const u16 *); void CreateDecorationShop1Menu(const u16 *);
void CreateDecorationShop2Menu(const u16 *); void CreateDecorationShop2Menu(const u16 *);
+1
View File
@@ -449,5 +449,6 @@ enum
}; };
#define NUM_SPECIES SPECIES_EGG #define NUM_SPECIES SPECIES_EGG
extern const u8 gSpeciesNames[][11];
#endif // GUARD_SPECIES_H #endif // GUARD_SPECIES_H
+1 -1
View File
@@ -31,7 +31,7 @@ u8 *StringFillWithTerminator(u8 *dest, u16 n);
u8 *StringCopyN_Multibyte(u8 *dest, u8 *src, u32 n); u8 *StringCopyN_Multibyte(u8 *dest, u8 *src, u32 n);
u32 StringLength_Multibyte(u8 *str); u32 StringLength_Multibyte(u8 *str);
u8 *WriteColorChangeControlCode(u8 *dest, u32 colorType, u8 color); u8 *WriteColorChangeControlCode(u8 *dest, u32 colorType, u8 color);
bool32 sub_8009228(u8 *str); bool32 IsStringJapanese(u8 *str);
bool32 sub_800924C(u8 *str, s32 n); bool32 sub_800924C(u8 *str, s32 n);
u8 GetExtCtrlCodeLength(u8 code); u8 GetExtCtrlCodeLength(u8 code);
static const u8 *SkipExtCtrlCode(const u8 *s); static const u8 *SkipExtCtrlCode(const u8 *s);
+33
View File
@@ -0,0 +1,33 @@
#ifndef GUARD_strings_H
#define GUARD_strings_H
extern const u8 gText_Lv50[];
extern const u8 gText_OpenLevel[];
extern const u8 gText_Mom[];
extern const u8 gText_Dad[];
extern const u8 gText_Cool[];
extern const u8 gText_Beauty[];
extern const u8 gText_Cute[];
extern const u8 gText_Smart[];
extern const u8 gText_Tough[];
extern const u8 gText_Single[];
extern const u8 gText_Double[];
extern const u8 gText_Spicy2[];
extern const u8 gText_Dry2[];
extern const u8 gText_Sweet2[];
extern const u8 gText_Bitter2[];
extern const u8 gText_Sour2[];
extern const u8 gText_Excellent[];
extern const u8 gText_VeryGood[];
extern const u8 gText_Good[];
extern const u8 gText_SoSo[];
extern const u8 gText_Bad[];
extern const u8 gText_TheWorst[];
extern const u8 gText_Slots[];
extern const u8 gText_Roulette[];
extern const u8 gText_Jackpot[];
extern const u8 gText_First[];
extern const u8 gText_Second[];
extern const u8 gText_Third[];
#endif //GUARD_strings_H
+11 -3
View File
@@ -1,7 +1,15 @@
#ifndef GUARD_TV_H #ifndef GUARD_TV_H
#define GUARD_TV_H #define GUARD_TV_H
bool8 GetPriceReduction(u8); extern u8 *const gTVStringVarPtrs[3];
size_t sub_80EF370(int);
#endif // GUARD_TV_H void ClearTVShowData(void);
void PutPokemonTodayCaughtOnAir(void);
u32 GetPlayerIDAsU32(void);
bool8 GetPriceReduction(u8 newsKind);
u8 GetRibbonCount(struct Pokemon *pokemon);
void sub_80EE184(void);
void sub_80F14F8(TVShow *shows);
size_t sub_80EF370(int value);
#endif //GUARD_TV_H
+10
View File
@@ -53,4 +53,14 @@
#define VAR_0x40BC 0x40BC #define VAR_0x40BC 0x40BC
#define VAR_0x40C2 0x40C2 #define VAR_0x40C2 0x40C2
#define VAR_FRONTIER_FACILITY 0x40CF
#define VAR_DAILY_SLOTS 0x40E6
#define VAR_DAILY_WILDS 0x40E7
#define VAR_DAILY_BLENDER 0x40E8
#define VAR_DAILY_PLANTED_BERRIES 0x40E9
#define VAR_DAILY_PICKED_BERRIES 0x40EA
#define VAR_DAILY_ROULETTE 0x40EB
#define VAR_DAILY_BP 0x40F1
#endif // GUARD_VARS_H #endif // GUARD_VARS_H
+4 -4
View File
@@ -64,7 +64,7 @@ SECTIONS {
asm/battle_controller_player.o(.text); asm/battle_controller_player.o(.text);
asm/battle_7.o(.text); asm/battle_7.o(.text);
asm/battle_controller_opponent.o(.text); asm/battle_controller_opponent.o(.text);
asm/battle_9.o(.text); src/battle_ai_switch_items.o(.text);
asm/battle_controller_linkopponent.o(.text); asm/battle_controller_linkopponent.o(.text);
src/pokemon_1.o(.text); src/pokemon_1.o(.text);
asm/pokemon_1.o(.text); asm/pokemon_1.o(.text);
@@ -116,7 +116,7 @@ SECTIONS {
asm/battle_anim.o(.text); asm/battle_anim.o(.text);
asm/rom_80A5C6C.o(.text); asm/rom_80A5C6C.o(.text);
src/task.o(.text); src/task.o(.text);
asm/reshow_battle_screen.o(.text); src/reshow_battle_screen.o(.text);
asm/battle_anim_80A9C70.o(.text); asm/battle_anim_80A9C70.o(.text);
asm/title_screen.o(.text); asm/title_screen.o(.text);
asm/field_screen.o(.text); asm/field_screen.o(.text);
@@ -148,7 +148,7 @@ SECTIONS {
asm/contest_effect.o(.text); asm/contest_effect.o(.text);
asm/record_mixing.o(.text); asm/record_mixing.o(.text);
asm/secret_base.o(.text); asm/secret_base.o(.text);
asm/tv.o(.text); src/tv.o(.text);
asm/contest_link_80F57C4.o(.text); asm/contest_link_80F57C4.o(.text);
asm/script_pokemon_util_80F87D8.o(.text); asm/script_pokemon_util_80F87D8.o(.text);
asm/field_poison.o(.text); asm/field_poison.o(.text);
@@ -387,7 +387,7 @@ SECTIONS {
data/contest_effect.o(.rodata); data/contest_effect.o(.rodata);
data/record_mixing.o(.rodata); data/record_mixing.o(.rodata);
data/secret_base.o(.rodata); data/secret_base.o(.rodata);
data/tv.o(.rodata); src/tv.o(.rodata);
data/contest_link_80F57C4.o(.rodata); data/contest_link_80F57C4.o(.rodata);
data/script_pokemon_util_80F87D8.o(.rodata); data/script_pokemon_util_80F87D8.o(.rodata);
src/pokemon_size_record.o(.rodata) src/pokemon_size_record.o(.rodata)
+20 -25
View File
@@ -40,6 +40,7 @@
#include "trainer_classes.h" #include "trainer_classes.h"
#include "evolution_scene.h" #include "evolution_scene.h"
#include "roamer.h" #include "roamer.h"
#include "tv.h"
#include "safari_zone.h" #include "safari_zone.h"
#include "battle_string_ids.h" #include "battle_string_ids.h"
@@ -64,7 +65,6 @@ struct UnknownPokemonStruct2
/*0x1D*/ u8 language; /*0x1D*/ u8 language;
}; };
extern u32 gBattleTypeFlags;
extern u8 gBattleCommunication[]; extern u8 gBattleCommunication[];
extern u8 gBattleTerrain; extern u8 gBattleTerrain;
extern u16 gBattle_BG0_X; extern u16 gBattle_BG0_X;
@@ -88,7 +88,6 @@ extern void (*gBattleMainFunc)(void);
extern void (*gUnknown_030061E8)(void); extern void (*gUnknown_030061E8)(void);
extern struct UnknownPokemonStruct2 gUnknown_02022FF8[3]; // what is it used for? extern struct UnknownPokemonStruct2 gUnknown_02022FF8[3]; // what is it used for?
extern struct UnknownPokemonStruct2* gUnknown_02023058; // what is it used for? extern struct UnknownPokemonStruct2* gUnknown_02023058; // what is it used for?
extern u8 gBattleOutcome;
extern u8 gUnknown_02039B28[]; // possibly a struct? extern u8 gUnknown_02039B28[]; // possibly a struct?
extern struct UnknownStruct6 gUnknown_02038C28; // todo: identify & document extern struct UnknownStruct6 gUnknown_02038C28; // todo: identify & document
extern struct MusicPlayerInfo gMPlay_SE1; extern struct MusicPlayerInfo gMPlay_SE1;
@@ -139,7 +138,6 @@ extern u8 gActionForBanks[BATTLE_BANKS_COUNT];
extern u16 gChosenMovesByBanks[BATTLE_BANKS_COUNT]; extern u16 gChosenMovesByBanks[BATTLE_BANKS_COUNT];
extern u8 gCurrentActionFuncId; extern u8 gCurrentActionFuncId;
extern u8 gLastUsedAbility; extern u8 gLastUsedAbility;
extern u16 gLastUsedItem;
extern u8 gUnknown_0203CF00[]; extern u8 gUnknown_0203CF00[];
extern const u8* gBattlescriptPtrsForSelection[BATTLE_BANKS_COUNT]; extern const u8* gBattlescriptPtrsForSelection[BATTLE_BANKS_COUNT];
extern const u8* gBattlescriptCurrInstr; extern const u8* gBattlescriptCurrInstr;
@@ -152,7 +150,6 @@ extern u8 gCurrMovePos;
extern u8 gUnknown_020241E9; extern u8 gUnknown_020241E9;
extern u16 gLastUsedMove; extern u16 gLastUsedMove;
extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1];
extern const struct BattleMove gBattleMoves[]; extern const struct BattleMove gBattleMoves[];
extern const u16 gUnknown_08C004E0[]; // battle textbox palette extern const u16 gUnknown_08C004E0[]; // battle textbox palette
extern const struct BgTemplate gUnknown_0831AA08[]; extern const struct BgTemplate gUnknown_0831AA08[];
@@ -220,14 +217,12 @@ extern void sub_81B9150(void);
extern void sub_800AC34(void); extern void sub_800AC34(void);
extern void sub_80B3AF8(u8 taskId); // cable club extern void sub_80B3AF8(u8 taskId); // cable club
extern void sub_8076918(u8 bank); extern void sub_8076918(u8 bank);
extern void sub_80729D0(u8 healthoxSpriteId); extern void SetHealthboxSpriteVisible(u8 healthoxSpriteId);
extern void sub_81A56B4(void); // battle frontier 2 extern void sub_81A56B4(void); // battle frontier 2
extern u8 sub_81A9E28(void); // battle frontier 2 extern u8 sub_81A9E28(void); // battle frontier 2
extern void sub_81A56E8(u8 bank); // battle frontier 2 extern void sub_81A56E8(u8 bank); // battle frontier 2
extern void sub_81B8FB0(u8, u8); // party menu extern void sub_81B8FB0(u8, u8); // party menu
extern u8 pokemon_order_func(u8); // party menu extern u8 pokemon_order_func(u8); // party menu
extern void sub_80EC728(void); // tv
extern void sub_80EE184(void); // tv
extern bool8 InBattlePyramid(void); extern bool8 InBattlePyramid(void);
// this file's functions // this file's functions
@@ -859,7 +854,7 @@ static void CB2_HandleStartBattle(void)
{ {
s32 i; s32 i;
for (i = 0; i < 2 && (gLinkPlayers[i].version & 0xFF) == 3; i++); for (i = 0; i < 2 && (gLinkPlayers[i].version & 0xFF) == VERSION_EMERALD; i++);
if (i == 2) if (i == 2)
gBattleCommunication[MULTIUSE_STATE] = 16; gBattleCommunication[MULTIUSE_STATE] = 16;
@@ -2073,7 +2068,7 @@ static void sub_8038F34(void)
else else
monsCount = 2; monsCount = 2;
for (i = 0; i < monsCount && (gLinkPlayers[i].version & 0xFF) == 3; i++); for (i = 0; i < monsCount && (gLinkPlayers[i].version & 0xFF) == VERSION_EMERALD; i++);
if (!gSaveBlock2Ptr->field_CA9_b && i == monsCount) if (!gSaveBlock2Ptr->field_CA9_b && i == monsCount)
{ {
@@ -2442,7 +2437,7 @@ static void sub_8039838(struct Sprite *sprite)
if (sprite->animEnded) if (sprite->animEnded)
{ {
sub_8076918(sprite->tBank); sub_8076918(sprite->tBank);
sub_80729D0(gHealthBoxesIds[sprite->tBank]); SetHealthboxSpriteVisible(gHealthBoxesIds[sprite->tBank]);
sprite->callback = sub_8039894; sprite->callback = sub_8039894;
StartSpriteAnimIfDifferent(sprite, 0); StartSpriteAnimIfDifferent(sprite, 0);
BeginNormalPaletteFade(0x20000, 0, 10, 0, 0x2108); BeginNormalPaletteFade(0x20000, 0, 10, 0, 0x2108);
@@ -4927,7 +4922,7 @@ static void HandleEndTurn_FinishBattle(void)
} }
} }
} }
sub_80EC728(); PutPokemonTodayCaughtOnAir();
} }
if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK
@@ -5324,30 +5319,30 @@ static void HandleAction_UseItem(void)
{ {
gBattleScripting.bank = gBankAttacker; gBattleScripting.bank = gBankAttacker;
switch (*(gBattleStruct->field_C4 + (gBankAttacker >> 1))) switch (*(gBattleStruct->AI_itemType + (gBankAttacker >> 1)))
{ {
case 1: case AI_ITEM_FULL_RESTORE:
case 2: case AI_ITEM_HEAL_HP:
break; break;
case 3: case AI_ITEM_CURE_CONDITION:
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = 0;
if (*(gBattleStruct->field_C6 + gBankAttacker / 2) & 1) if (*(gBattleStruct->AI_itemFlags + gBankAttacker / 2) & 1)
{ {
if (*(gBattleStruct->field_C6 + gBankAttacker / 2) & 0x3E) if (*(gBattleStruct->AI_itemFlags + gBankAttacker / 2) & 0x3E)
gBattleCommunication[MULTISTRING_CHOOSER] = 5; gBattleCommunication[MULTISTRING_CHOOSER] = 5;
} }
else else
{ {
while (!(*(gBattleStruct->field_C6 + gBankAttacker / 2) & 1)) while (!(*(gBattleStruct->AI_itemFlags + gBankAttacker / 2) & 1))
{ {
*(gBattleStruct->field_C6 + gBankAttacker / 2) >>= 1; *(gBattleStruct->AI_itemFlags + gBankAttacker / 2) >>= 1;
gBattleCommunication[MULTISTRING_CHOOSER]++; gBattleCommunication[MULTISTRING_CHOOSER]++;
} }
} }
break; break;
case 4: case AI_ITEM_X_STAT:
gBattleCommunication[MULTISTRING_CHOOSER] = 4; gBattleCommunication[MULTISTRING_CHOOSER] = 4;
if (*(gBattleStruct->field_C6 + (gBankAttacker >> 1)) & 0x80) if (*(gBattleStruct->AI_itemFlags + (gBankAttacker >> 1)) & 0x80)
{ {
gBattleCommunication[MULTISTRING_CHOOSER] = 5; gBattleCommunication[MULTISTRING_CHOOSER] = 5;
} }
@@ -5356,9 +5351,9 @@ static void HandleAction_UseItem(void)
PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_ATK) PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_ATK)
PREPARE_STRING_BUFFER(gBattleTextBuff2, 0xD2) PREPARE_STRING_BUFFER(gBattleTextBuff2, 0xD2)
while (!((*(gBattleStruct->field_C6 + (gBankAttacker >> 1))) & 1)) while (!((*(gBattleStruct->AI_itemFlags + (gBankAttacker >> 1))) & 1))
{ {
*(gBattleStruct->field_C6 + gBankAttacker / 2) >>= 1; *(gBattleStruct->AI_itemFlags + gBankAttacker / 2) >>= 1;
gBattleTextBuff1[2]++; gBattleTextBuff1[2]++;
} }
@@ -5366,7 +5361,7 @@ static void HandleAction_UseItem(void)
gBattleScripting.animArg2 = 0; gBattleScripting.animArg2 = 0;
} }
break; break;
case 5: case AI_ITEM_GUARD_SPECS:
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
gBattleCommunication[MULTISTRING_CHOOSER] = 2; gBattleCommunication[MULTISTRING_CHOOSER] = 2;
else else
@@ -5374,7 +5369,7 @@ static void HandleAction_UseItem(void)
break; break;
} }
gBattlescriptCurrInstr = gUnknown_082DBD3C[*(gBattleStruct->field_C4 + gBankAttacker / 2)]; gBattlescriptCurrInstr = gUnknown_082DBD3C[*(gBattleStruct->AI_itemType + gBankAttacker / 2)];
} }
gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT;
} }
+1 -1
View File
@@ -331,7 +331,7 @@ void BattleAI_HandleItemUseBeforeAISetup(u8 defaultScoreMoves)
{ {
if (gTrainers[gTrainerBattleOpponent_A].items[i] != 0) if (gTrainers[gTrainerBattleOpponent_A].items[i] != 0)
{ {
gBattleResources->battleHistory->TrainerItems[gBattleResources->battleHistory->itemsNo] = gTrainers[gTrainerBattleOpponent_A].items[i]; gBattleResources->battleHistory->trainerItems[gBattleResources->battleHistory->itemsNo] = gTrainers[gTrainerBattleOpponent_A].items[i];
gBattleResources->battleHistory->itemsNo++; gBattleResources->battleHistory->itemsNo++;
} }
} }
+951
View File
@@ -0,0 +1,951 @@
#include "global.h"
#include "battle.h"
#include "battle_controllers.h"
#include "abilities.h"
#include "moves.h"
#include "pokemon.h"
#include "species.h"
#include "rng.h"
#include "util.h"
#include "items.h"
#include "pokemon_item_effects.h"
extern u8 gActiveBank;
extern u8 gAbsentBankFlags;
extern u32 gBattleTypeFlags;
extern u32 gStatuses3[BATTLE_BANKS_COUNT];
extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT];
extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
extern u16 gUnknown_02024250[BATTLE_BANKS_COUNT];
extern u8 gUnknown_02024270[BATTLE_BANKS_COUNT];
extern u16 gDynamicBasePower;
extern u8 gBattleMoveFlags;
extern u8 gCritMultiplier;
extern s32 gBattleMoveDamage;
extern const struct BattleMove gBattleMoves[];
extern const struct BaseStats gBaseStats[];
extern const u8 gTypeEffectiveness[];
extern const u8 * const gItemEffectTable[]; // todo: fix once struct is declared
// this file's functions
static bool8 HasSuperEffectiveMoveAgainstOpponents(bool8 noRng);
static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent);
static bool8 ShouldUseItem(void);
static bool8 ShouldSwitchIfPerishSong(void)
{
if (gStatuses3[gActiveBank] & STATUS3_PERISH_SONG
&& gDisableStructs[gActiveBank].perishSong1 == 0)
{
*(gBattleStruct->field_294 + gActiveBank) = 6;
EmitCmd_x21(1, 2, 0);
return TRUE;
}
return FALSE;
}
static bool8 ShouldSwitchIfWonderGuard(void)
{
u8 opposingIdentity;
u8 opposingBank;
u8 moveFlags;
s32 i, j;
s32 firstId;
s32 lastId; // + 1
struct Pokemon *party = NULL;
u16 move;
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
return FALSE;
opposingIdentity = GetBankIdentity(gActiveBank) ^ BIT_SIDE;
if (gBattleMons[GetBankByIdentity(opposingIdentity)].ability != ABILITY_WONDER_GUARD)
return FALSE;
// check if pokemon has a super effective move
for (opposingBank = GetBankByIdentity(opposingIdentity), i = 0; i < 4; i++)
{
move = gBattleMons[gActiveBank].moves[i];
if (move == MOVE_NONE)
continue;
moveFlags = AI_TypeCalc(move, gBattleMons[opposingBank].species, gBattleMons[opposingBank].ability);
if (moveFlags & MOVESTATUS_SUPEREFFECTIVE)
return FALSE;
}
// get party information
if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000))
{
if ((gActiveBank & BIT_MON) == 0)
firstId = 0, lastId = 3;
else
firstId = 3, lastId = 6;
}
else
{
firstId = 0, lastId = 6;
}
if (GetBankSide(gActiveBank) == SIDE_PLAYER)
party = gPlayerParty;
else
party = gEnemyParty;
// find a pokemon in the party that has a super effective move
for (i = firstId; i < lastId; i++)
{
if (GetMonData(&party[i], MON_DATA_HP) == 0)
continue;
if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_NONE)
continue;
if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_EGG)
continue;
if (i == gBattlePartyID[gActiveBank])
continue;
GetMonData(&party[i], MON_DATA_SPECIES); // unused return value
GetMonData(&party[i], MON_DATA_ALT_ABILITY); // unused return value
for (opposingBank = GetBankByIdentity(opposingIdentity), j = 0; j < 4; j++)
{
move = GetMonData(&party[i], MON_DATA_MOVE1 + j);
if (move == MOVE_NONE)
continue;
moveFlags = AI_TypeCalc(move, gBattleMons[opposingBank].species, gBattleMons[opposingBank].ability);
if (moveFlags & MOVESTATUS_SUPEREFFECTIVE && Random() % 3 < 2)
{
// we found a mon
*(gBattleStruct->field_294 + gActiveBank) = i;
EmitCmd_x21(1, 2, 0);
return TRUE;
}
}
}
return FALSE; // at this point there is not a single pokemon in the party that has a super effective move against a pokemon with wonder guard
}
static bool8 FindMonThatAbsorbsOpponentsMove(void)
{
u8 bankIn1, bankIn2;
u8 absorbingTypeAbility;
s32 firstId;
s32 lastId; // + 1
struct Pokemon *party;
s32 i;
if (HasSuperEffectiveMoveAgainstOpponents(TRUE) && Random() % 3 != 0)
return FALSE;
if (gUnknown_02024250[gActiveBank] == 0)
return FALSE;
if (gUnknown_02024250[gActiveBank] == 0xFFFF)
return FALSE;
if (gBattleMoves[gUnknown_02024250[gActiveBank]].power == 0)
return FALSE;
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{
bankIn1 = gActiveBank;
if (gAbsentBankFlags & gBitTable[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)])
bankIn2 = gActiveBank;
else
bankIn2 = GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON);
}
else
{
bankIn1 = gActiveBank;
bankIn2 = gActiveBank;
}
if (gBattleMoves[gUnknown_02024250[gActiveBank]].type == TYPE_FIRE)
absorbingTypeAbility = ABILITY_FLASH_FIRE;
else if (gBattleMoves[gUnknown_02024250[gActiveBank]].type == TYPE_WATER)
absorbingTypeAbility = ABILITY_WATER_ABSORB;
else if (gBattleMoves[gUnknown_02024250[gActiveBank]].type == TYPE_ELECTRIC)
absorbingTypeAbility = ABILITY_VOLT_ABSORB;
else
return FALSE;
if (gBattleMons[gActiveBank].ability == absorbingTypeAbility)
return FALSE;
if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000))
{
if ((gActiveBank & BIT_MON) == 0)
firstId = 0, lastId = 3;
else
firstId = 3, lastId = 6;
}
else
{
firstId = 0, lastId = 6;
}
if (GetBankSide(gActiveBank) == SIDE_PLAYER)
party = gPlayerParty;
else
party = gEnemyParty;
for (i = firstId; i < lastId; i++)
{
u16 species;
u8 monAbility;
if (GetMonData(&party[i], MON_DATA_HP) == 0)
continue;
if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_NONE)
continue;
if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_EGG)
continue;
if (i == gBattlePartyID[bankIn1])
continue;
if (i == gBattlePartyID[bankIn2])
continue;
if (i == *(gBattleStruct->field_5C + bankIn1))
continue;
if (i == *(gBattleStruct->field_5C + bankIn2))
continue;
species = GetMonData(&party[i], MON_DATA_SPECIES);
if (GetMonData(&party[i], MON_DATA_ALT_ABILITY) != 0)
monAbility = gBaseStats[species].ability2;
else
monAbility = gBaseStats[species].ability1;
if (absorbingTypeAbility == monAbility && Random() & 1)
{
// we found a mon
*(gBattleStruct->field_294 + gActiveBank) = i;
EmitCmd_x21(1, 2, 0);
return TRUE;
}
}
return FALSE;
}
static bool8 ShouldSwitchIfNaturalCure(void)
{
if (!(gBattleMons[gActiveBank].status1 & STATUS_SLEEP))
return FALSE;
if (gBattleMons[gActiveBank].ability != ABILITY_NATURAL_CURE)
return FALSE;
if (gBattleMons[gActiveBank].hp < gBattleMons[gActiveBank].maxHP / 2)
return FALSE;
if ((gUnknown_02024250[gActiveBank] == 0 || gUnknown_02024250[gActiveBank] == 0xFFFF) && Random() & 1)
{
*(gBattleStruct->field_294 + gActiveBank) = 6;
EmitCmd_x21(1, 2, 0);
return TRUE;
}
else if (gBattleMoves[gUnknown_02024250[gActiveBank]].power == 0 && Random() & 1)
{
*(gBattleStruct->field_294 + gActiveBank) = 6;
EmitCmd_x21(1, 2, 0);
return TRUE;
}
if (FindMonWithFlagsAndSuperEffective(MOVESTATUS_NOTAFFECTED, 1))
return TRUE;
if (FindMonWithFlagsAndSuperEffective(MOVESTATUS_NOTVERYEFFECTIVE, 1))
return TRUE;
if (Random() & 1)
{
*(gBattleStruct->field_294 + gActiveBank) = 6;
EmitCmd_x21(1, 2, 0);
return TRUE;
}
return FALSE;
}
static bool8 HasSuperEffectiveMoveAgainstOpponents(bool8 noRng)
{
u8 opposingIdentity;
u8 opposingBank;
s32 i;
u8 moveFlags;
u16 move;
opposingIdentity = GetBankIdentity(gActiveBank) ^ BIT_SIDE;
opposingBank = GetBankByIdentity(opposingIdentity);
if (!(gAbsentBankFlags & gBitTable[opposingBank]))
{
for (i = 0; i < 4; i++)
{
move = gBattleMons[gActiveBank].moves[i];
if (move == MOVE_NONE)
continue;
moveFlags = AI_TypeCalc(move, gBattleMons[opposingBank].species, gBattleMons[opposingBank].ability);
if (moveFlags & MOVESTATUS_SUPEREFFECTIVE)
{
if (noRng)
return TRUE;
if (Random() % 10 != 0)
return TRUE;
}
}
}
if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
return FALSE;
opposingBank = GetBankByIdentity(opposingIdentity ^ BIT_MON);
if (!(gAbsentBankFlags & gBitTable[opposingBank]))
{
for (i = 0; i < 4; i++)
{
move = gBattleMons[gActiveBank].moves[i];
if (move == MOVE_NONE)
continue;
moveFlags = AI_TypeCalc(move, gBattleMons[opposingBank].species, gBattleMons[opposingBank].ability);
if (moveFlags & MOVESTATUS_SUPEREFFECTIVE)
{
if (noRng)
return TRUE;
if (Random() % 10 != 0)
return TRUE;
}
}
}
return FALSE;
}
static bool8 AreStatsRaised(void)
{
u8 buffedStatsValue = 0;
s32 i;
for (i = 0; i < BATTLE_STATS_NO; i++)
{
if (gBattleMons[gActiveBank].statStages[i] > 6)
buffedStatsValue += gBattleMons[gActiveBank].statStages[i] - 6;
}
return (buffedStatsValue > 3);
}
static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent)
{
u8 bankIn1, bankIn2;
s32 firstId;
s32 lastId; // + 1
struct Pokemon *party;
s32 i, j;
u16 move;
u8 moveFlags;
if (gUnknown_02024250[gActiveBank] == 0)
return FALSE;
if (gUnknown_02024250[gActiveBank] == 0xFFFF)
return FALSE;
if (gUnknown_02024270[gActiveBank] == 0xFF)
return FALSE;
if (gBattleMoves[gUnknown_02024250[gActiveBank]].power == 0)
return FALSE;
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{
bankIn1 = gActiveBank;
if (gAbsentBankFlags & gBitTable[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)])
bankIn2 = gActiveBank;
else
bankIn2 = GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON);
}
else
{
bankIn1 = gActiveBank;
bankIn2 = gActiveBank;
}
if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000))
{
if ((gActiveBank & BIT_MON) == 0)
firstId = 0, lastId = 3;
else
firstId = 3, lastId = 6;
}
else
{
firstId = 0, lastId = 6;
}
if (GetBankSide(gActiveBank) == SIDE_PLAYER)
party = gPlayerParty;
else
party = gEnemyParty;
for (i = firstId; i < lastId; i++)
{
u16 species;
u8 monAbility;
if (GetMonData(&party[i], MON_DATA_HP) == 0)
continue;
if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_NONE)
continue;
if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_EGG)
continue;
if (i == gBattlePartyID[bankIn1])
continue;
if (i == gBattlePartyID[bankIn2])
continue;
if (i == *(gBattleStruct->field_5C + bankIn1))
continue;
if (i == *(gBattleStruct->field_5C + bankIn2))
continue;
species = GetMonData(&party[i], MON_DATA_SPECIES);
if (GetMonData(&party[i], MON_DATA_ALT_ABILITY) != 0)
monAbility = gBaseStats[species].ability2;
else
monAbility = gBaseStats[species].ability1;
moveFlags = AI_TypeCalc(gUnknown_02024250[gActiveBank], species, monAbility);
if (moveFlags & flags)
{
bankIn1 = gUnknown_02024270[gActiveBank];
for (j = 0; j < 4; j++)
{
move = GetMonData(&party[i], MON_DATA_MOVE1 + j);
if (move == 0)
continue;
moveFlags = AI_TypeCalc(move, gBattleMons[bankIn1].species, gBattleMons[bankIn1].ability);
if (moveFlags & MOVESTATUS_SUPEREFFECTIVE && Random() % moduloPercent == 0)
{
*(gBattleStruct->field_294 + gActiveBank) = i;
EmitCmd_x21(1, 2, 0);
return TRUE;
}
}
}
}
return FALSE;
}
static bool8 ShouldSwitch(void)
{
u8 bankIn1, bankIn2;
u8 *activeBankPtr; // needed to match
s32 firstId;
s32 lastId; // + 1
struct Pokemon *party;
s32 i;
s32 availableToSwitch;
if (gBattleMons[*(activeBankPtr = &gActiveBank)].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION))
return FALSE;
if (gStatuses3[gActiveBank] & STATUS3_ROOTED)
return FALSE;
if (AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gActiveBank, ABILITY_SHADOW_TAG, 0, 0))
return FALSE;
if (AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gActiveBank, ABILITY_ARENA_TRAP, 0, 0))
return FALSE; // misses the flying or levitate check
if (AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, 0, ABILITY_MAGNET_PULL, 0, 0))
{
if (gBattleMons[gActiveBank].type1 == TYPE_STEEL)
return FALSE;
if (gBattleMons[gActiveBank].type2 == TYPE_STEEL)
return FALSE;
}
if (gBattleTypeFlags & BATTLE_TYPE_ARENA)
return FALSE;
availableToSwitch = 0;
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{
bankIn1 = *activeBankPtr;
if (gAbsentBankFlags & gBitTable[GetBankByIdentity(GetBankIdentity(*activeBankPtr) ^ BIT_MON)])
bankIn2 = *activeBankPtr;
else
bankIn2 = GetBankByIdentity(GetBankIdentity(*activeBankPtr) ^ BIT_MON);
}
else
{
bankIn1 = *activeBankPtr;
bankIn2 = *activeBankPtr;
}
if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000))
{
if ((gActiveBank & BIT_MON) == 0)
firstId = 0, lastId = 3;
else
firstId = 3, lastId = 6;
}
else
{
firstId = 0, lastId = 6;
}
if (GetBankSide(gActiveBank) == SIDE_PLAYER)
party = gPlayerParty;
else
party = gEnemyParty;
for (i = firstId; i < lastId; i++)
{
if (GetMonData(&party[i], MON_DATA_HP) == 0)
continue;
if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_NONE)
continue;
if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_EGG)
continue;
if (i == gBattlePartyID[bankIn1])
continue;
if (i == gBattlePartyID[bankIn2])
continue;
if (i == *(gBattleStruct->field_5C + bankIn1))
continue;
if (i == *(gBattleStruct->field_5C + bankIn2))
continue;
availableToSwitch++;
}
if (availableToSwitch == 0)
return FALSE;
if (ShouldSwitchIfPerishSong())
return TRUE;
if (ShouldSwitchIfWonderGuard())
return TRUE;
if (FindMonThatAbsorbsOpponentsMove())
return TRUE;
if (ShouldSwitchIfNaturalCure())
return TRUE;
if (HasSuperEffectiveMoveAgainstOpponents(FALSE))
return FALSE;
if (AreStatsRaised())
return FALSE;
if (FindMonWithFlagsAndSuperEffective(MOVESTATUS_NOTAFFECTED, 2)
|| FindMonWithFlagsAndSuperEffective(MOVESTATUS_NOTVERYEFFECTIVE, 3))
return TRUE;
return FALSE;
}
void AI_TrySwitchOrUseItem(void)
{
struct Pokemon *party;
u8 bankIn1, bankIn2;
s32 firstId;
s32 lastId; // + 1
u8 bankIdentity = GetBankIdentity(gActiveBank);
if (GetBankSide(gActiveBank) == SIDE_PLAYER)
party = gPlayerParty;
else
party = gEnemyParty;
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
{
if (ShouldSwitch())
{
if (*(gBattleStruct->field_294 + gActiveBank) == 6)
{
s32 monToSwitchId = GetMostSuitableMonToSwitchInto();
if (monToSwitchId == 6)
{
if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
{
bankIn1 = GetBankByIdentity(bankIdentity);
bankIn2 = bankIn1;
}
else
{
bankIn1 = GetBankByIdentity(bankIdentity);
bankIn2 = GetBankByIdentity(bankIdentity ^ BIT_MON);
}
if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000))
{
if ((gActiveBank & BIT_MON) == 0)
firstId = 0, lastId = 3;
else
firstId = 3, lastId = 6;
}
else
{
firstId = 0, lastId = 6;
}
for (monToSwitchId = firstId; monToSwitchId < lastId; monToSwitchId++)
{
if (GetMonData(&party[monToSwitchId], MON_DATA_HP) == 0)
continue;
if (monToSwitchId == gBattlePartyID[bankIn1])
continue;
if (monToSwitchId == gBattlePartyID[bankIn2])
continue;
if (monToSwitchId == *(gBattleStruct->field_5C + bankIn1))
continue;
if (monToSwitchId == *(gBattleStruct->field_5C + bankIn2))
continue;
break;
}
}
*(gBattleStruct->field_294 + gActiveBank) = monToSwitchId;
}
*(gBattleStruct->field_5C + gActiveBank) = *(gBattleStruct->field_294 + gActiveBank);
return;
}
else if (ShouldUseItem())
{
return;
}
}
EmitCmd_x21(1, 0, (gActiveBank ^ BIT_SIDE) << 8);
}
#define TYPE_FORESIGHT 0xFE
#define TYPE_ENDTABLE 0xFF
static void ModulateByTypeEffectiveness(u8 atkType, u8 defType1, u8 defType2, u8 *var)
{
s32 i = 0;
while (gTypeEffectiveness[i] != TYPE_ENDTABLE)
{
if (gTypeEffectiveness[i] == TYPE_FORESIGHT)
{
i += 3;
continue;
}
else if (gTypeEffectiveness[i] == atkType)
{
// check type1
if (gTypeEffectiveness[i + 1] == defType1)
*var = (*var * gTypeEffectiveness[i + 2]) / 10;
// check type2
if (gTypeEffectiveness[i + 1] == defType2 && defType1 != defType2)
*var = (*var * gTypeEffectiveness[i + 2]) / 10;
}
i += 3;
}
}
u8 GetMostSuitableMonToSwitchInto(void)
{
u8 opposingBank;
u8 bestDmg; // note : should be changed to u32 for obvious reasons
u8 bestMonId;
u8 bankIn1, bankIn2;
s32 firstId;
s32 lastId; // + 1
struct Pokemon *party;
s32 i, j;
u8 invalidMons;
u16 move;
if (*(gBattleStruct->field_5C + gActiveBank) != 6)
return *(gBattleStruct->field_5C + gActiveBank);
if (gBattleTypeFlags & BATTLE_TYPE_ARENA)
return gBattlePartyID[gActiveBank] + 1;
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{
bankIn1 = gActiveBank;
if (gAbsentBankFlags & gBitTable[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)])
bankIn2 = gActiveBank;
else
bankIn2 = GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON);
// UB: It considers the opponent only player's side even though it can battle alongside player;
opposingBank = Random() & BIT_MON;
if (gAbsentBankFlags & gBitTable[opposingBank])
opposingBank ^= BIT_MON;
}
else
{
opposingBank = GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_SIDE);
bankIn1 = gActiveBank;
bankIn2 = gActiveBank;
}
if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000))
{
if ((gActiveBank & BIT_MON) == 0)
firstId = 0, lastId = 3;
else
firstId = 3, lastId = 6;
}
else
{
firstId = 0, lastId = 6;
}
if (GetBankSide(gActiveBank) == SIDE_PLAYER)
party = gPlayerParty;
else
party = gEnemyParty;
invalidMons = 0;
while (invalidMons != 0x3F) // all mons are invalid
{
bestDmg = 0;
bestMonId = 6;
// find the mon which type is the most suitable offensively
for (i = firstId; i < lastId; i++)
{
u16 species = GetMonData(&party[i], MON_DATA_SPECIES);
if (species != SPECIES_NONE
&& GetMonData(&party[i], MON_DATA_HP) != 0
&& !(gBitTable[i] & invalidMons)
&& gBattlePartyID[bankIn1] != i
&& gBattlePartyID[bankIn2] != i
&& i != *(gBattleStruct->field_5C + bankIn1)
&& i != *(gBattleStruct->field_5C + bankIn2))
{
u8 type1 = gBaseStats[species].type1;
u8 type2 = gBaseStats[species].type2;
u8 typeDmg = 10;
ModulateByTypeEffectiveness(gBattleMons[opposingBank].type1, type1, type2, &typeDmg);
ModulateByTypeEffectiveness(gBattleMons[opposingBank].type2, type1, type2, &typeDmg);
if (bestDmg < typeDmg)
{
bestDmg = typeDmg;
bestMonId = i;
}
}
else
{
invalidMons |= gBitTable[i];
}
}
// ok, we know the mon has the right typing but does it have at least one super effective move?
if (bestMonId != 6)
{
for (i = 0; i < 4; i++)
{
move = GetMonData(&party[bestMonId], MON_DATA_MOVE1 + i);
if (move != MOVE_NONE && TypeCalc(move, gActiveBank, opposingBank) & MOVESTATUS_SUPEREFFECTIVE)
break;
}
if (i != 4)
return bestMonId; // has both the typing and at least one super effective move
invalidMons |= gBitTable[bestMonId]; // sorry buddy, we want something better
}
else
{
invalidMons = 0x3F; // no viable mon to switch
}
}
gDynamicBasePower = 0;
gBattleStruct->dynamicMoveType = 0;
gBattleScripting.dmgMultiplier = 1;
gBattleMoveFlags = 0;
gCritMultiplier = 1;
bestDmg = 0;
bestMonId = 6;
// if we couldn't find the best mon in terms of typing, find the one that deals most damage
for (i = firstId; i < lastId; i++)
{
if ((u16)(GetMonData(&party[i], MON_DATA_SPECIES)) == SPECIES_NONE)
continue;
if (GetMonData(&party[i], MON_DATA_HP) == 0)
continue;
if (gBattlePartyID[bankIn1] == i)
continue;
if (gBattlePartyID[bankIn2] == i)
continue;
if (i == *(gBattleStruct->field_5C + bankIn1))
continue;
if (i == *(gBattleStruct->field_5C + bankIn2))
continue;
for (j = 0; j < 4; j++)
{
move = GetMonData(&party[i], MON_DATA_MOVE1 + j);
gBattleMoveDamage = 0;
if (move != MOVE_NONE && gBattleMoves[move].power != 1)
{
AI_CalcDmg(gActiveBank, opposingBank);
TypeCalc(move, gActiveBank, opposingBank);
}
if (bestDmg < gBattleMoveDamage)
{
bestDmg = gBattleMoveDamage;
bestMonId = i;
}
}
}
return bestMonId;
}
// TODO: use PokemonItemEffect struct instead of u8 once it's documented
static u8 GetAI_ItemType(u8 itemId, const u8 *itemEffect) // NOTE: should take u16 as item Id argument
{
if (itemId == ITEM_FULL_RESTORE)
return AI_ITEM_FULL_RESTORE;
if (itemEffect[4] & 4)
return AI_ITEM_HEAL_HP;
if (itemEffect[3] & 0x3F)
return AI_ITEM_CURE_CONDITION;
if (itemEffect[0] & 0x3F || itemEffect[1] != 0 || itemEffect[2] != 0)
return AI_ITEM_X_STAT;
if (itemEffect[3] & 0x80)
return AI_ITEM_GUARD_SPECS;
return AI_ITEM_NOT_RECOGNIZABLE;
}
static bool8 ShouldUseItem(void)
{
struct Pokemon *party;
s32 i;
u8 validMons = 0;
bool8 shouldUse = FALSE;
if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && GetBankIdentity(gActiveBank) == IDENTITY_PLAYER_MON2)
return FALSE;
if (GetBankSide(gActiveBank) == SIDE_PLAYER)
party = gPlayerParty;
else
party = gEnemyParty;
for (i = 0; i < 6; i++)
{
if (GetMonData(&party[i], MON_DATA_HP) != 0
&& GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_NONE
&& GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_EGG)
{
validMons++;
}
}
for (i = 0; i < 4; i++)
{
u16 item;
const u8 *itemEffects;
u8 paramOffset;
u8 bankSide;
if (i != 0 && validMons > (gBattleResources->battleHistory->itemsNo - i) + 1)
continue;
item = gBattleResources->battleHistory->trainerItems[i];
if (item == ITEM_NONE)
continue;
if (gItemEffectTable[item - 13] == NULL)
continue;
if (item == ITEM_ENIGMA_BERRY)
itemEffects = gSaveBlock1Ptr->enigmaBerry.itemEffect;
else
itemEffects = gItemEffectTable[item - 13];
*(gBattleStruct->AI_itemType + gActiveBank / 2) = GetAI_ItemType(item, itemEffects);
switch (*(gBattleStruct->AI_itemType + gActiveBank / 2))
{
case AI_ITEM_FULL_RESTORE:
if (gBattleMons[gActiveBank].hp >= gBattleMons[gActiveBank].maxHP / 4)
break;
if (gBattleMons[gActiveBank].hp == 0)
break;
shouldUse = TRUE;
break;
case AI_ITEM_HEAL_HP:
paramOffset = GetItemEffectParamOffset(item, 4, 4);
if (paramOffset == 0)
break;
if (gBattleMons[gActiveBank].hp == 0)
break;
if (gBattleMons[gActiveBank].hp < gBattleMons[gActiveBank].maxHP / 4 || gBattleMons[gActiveBank].maxHP - gBattleMons[gActiveBank].hp > itemEffects[paramOffset])
shouldUse = TRUE;
break;
case AI_ITEM_CURE_CONDITION:
*(gBattleStruct->AI_itemFlags + gActiveBank / 2) = 0;
if (itemEffects[3] & 0x20 && gBattleMons[gActiveBank].status1 & STATUS_SLEEP)
{
*(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x20;
shouldUse = TRUE;
}
if (itemEffects[3] & 0x10 && (gBattleMons[gActiveBank].status1 & STATUS_POISON || gBattleMons[gActiveBank].status1 & STATUS_TOXIC_POISON))
{
*(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x10;
shouldUse = TRUE;
}
if (itemEffects[3] & 0x8 && gBattleMons[gActiveBank].status1 & STATUS_BURN)
{
*(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x8;
shouldUse = TRUE;
}
if (itemEffects[3] & 0x4 && gBattleMons[gActiveBank].status1 & STATUS_FREEZE)
{
*(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x4;
shouldUse = TRUE;
}
if (itemEffects[3] & 0x2 && gBattleMons[gActiveBank].status1 & STATUS_PARALYSIS)
{
*(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x2;
shouldUse = TRUE;
}
if (itemEffects[3] & 0x1 && gBattleMons[gActiveBank].status2 & STATUS2_CONFUSION)
{
*(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x1;
shouldUse = TRUE;
}
break;
case AI_ITEM_X_STAT:
*(gBattleStruct->AI_itemFlags + gActiveBank / 2) = 0;
if (gDisableStructs[gActiveBank].isFirstTurn == 0)
break;
if (itemEffects[0] & 0xF)
*(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x1;
if (itemEffects[1] & 0xF0)
*(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x2;
if (itemEffects[1] & 0xF)
*(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x4;
if (itemEffects[2] & 0xF)
*(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x8;
if (itemEffects[2] & 0xF0)
*(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x20;
if (itemEffects[0] & 0x30)
*(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x80;
shouldUse = TRUE;
break;
case AI_ITEM_GUARD_SPECS:
bankSide = GetBankSide(gActiveBank);
if (gDisableStructs[gActiveBank].isFirstTurn != 0 && gSideTimers[bankSide].mistTimer == 0)
shouldUse = TRUE;
break;
case AI_ITEM_NOT_RECOGNIZABLE:
return FALSE;
}
if (shouldUse)
{
EmitCmd_x21(1, 1, 0);
*(gBattleStruct->field_C0 + (gActiveBank / 2) * 2) = item;
gBattleResources->battleHistory->trainerItems[i] = 0;
return shouldUse;
}
}
return FALSE;
}
+5 -5
View File
@@ -1772,11 +1772,11 @@ u8 TypeCalc(u16 move, u8 bankAtk, u8 bankDef)
return flags; return flags;
} }
u8 AI_TypeCalc(u16 move, u16 species, u8 ability) u8 AI_TypeCalc(u16 move, u16 targetSpecies, u8 targetAbility)
{ {
s32 i = 0; s32 i = 0;
u8 flags = 0; u8 flags = 0;
u8 type1 = gBaseStats[species].type1, type2 = gBaseStats[species].type2; u8 type1 = gBaseStats[targetSpecies].type1, type2 = gBaseStats[targetSpecies].type2;
u8 moveType; u8 moveType;
if (move == MOVE_STRUGGLE) if (move == MOVE_STRUGGLE)
@@ -1784,7 +1784,7 @@ u8 AI_TypeCalc(u16 move, u16 species, u8 ability)
moveType = gBattleMoves[move].type; moveType = gBattleMoves[move].type;
if (ability == ABILITY_LEVITATE && moveType == TYPE_GROUND) if (targetAbility == ABILITY_LEVITATE && moveType == TYPE_GROUND)
{ {
flags = MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED; flags = MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED;
} }
@@ -1809,7 +1809,7 @@ u8 AI_TypeCalc(u16 move, u16 species, u8 ability)
i += 3; i += 3;
} }
} }
if (ability == ABILITY_WONDER_GUARD if (targetAbility == ABILITY_WONDER_GUARD
&& (!(flags & MOVESTATUS_SUPEREFFECTIVE) || ((flags & (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE)) == (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE))) && (!(flags & MOVESTATUS_SUPEREFFECTIVE) || ((flags & (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE)) == (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE)))
&& gBattleMoves[move].power) && gBattleMoves[move].power)
flags |= MOVESTATUS_NOTAFFECTED; flags |= MOVESTATUS_NOTAFFECTED;
@@ -11087,7 +11087,7 @@ static void atkEF_pokeball_catch_calculation(void)
{ {
if (gLastUsedItem == ITEM_MASTER_BALL) if (gLastUsedItem == ITEM_MASTER_BALL)
{ {
gBattleResults.unk5_1 = 1; gBattleResults.usedMasterBall = TRUE;
} }
else else
{ {
+108 -3168
View File
File diff suppressed because it is too large Load Diff
+15 -14
View File
@@ -1,4 +1,5 @@
#include "global.h" #include "global.h"
#include "diploma.h"
#include "palette.h" #include "palette.h"
#include "main.h" #include "main.h"
#include "gpu_regs.h" #include "gpu_regs.h"
@@ -33,7 +34,7 @@ static void InitDiplomaBg(void);
static void InitDiplomaWindow(void); static void InitDiplomaWindow(void);
static void PrintDiplomaText(u8 *, u8, u8); static void PrintDiplomaText(u8 *, u8, u8);
EWRAM_DATA void **gDiplomaTilemapPtr = {NULL}; EWRAM_DATA static void **sDiplomaTilemapPtr = {NULL};
static void VBlankCB(void) static void VBlankCB(void)
{ {
@@ -42,14 +43,14 @@ static void VBlankCB(void)
TransferPlttBuffer(); TransferPlttBuffer();
} }
static const u16 gDiplomaPalettes[][16] = static const u16 sDiplomaPalettes[][16] =
{ {
INCBIN_U16("graphics/misc/diploma_national.gbapal"), INCBIN_U16("graphics/misc/diploma_national.gbapal"),
INCBIN_U16("graphics/misc/diploma_hoenn.gbapal"), INCBIN_U16("graphics/misc/diploma_hoenn.gbapal"),
}; };
static const u8 gDiplomaTilemap[] = INCBIN_U8("graphics/misc/diploma_map.bin.lz"); static const u8 sDiplomaTilemap[] = INCBIN_U8("graphics/misc/diploma_map.bin.lz");
static const u8 gDiplomaTiles[] = INCBIN_U8("graphics/misc/diploma.4bpp.lz"); static const u8 sDiplomaTiles[] = INCBIN_U8("graphics/misc/diploma.4bpp.lz");
void CB2_ShowDiploma(void) void CB2_ShowDiploma(void)
{ {
@@ -76,15 +77,15 @@ void CB2_ShowDiploma(void)
ResetSpriteData(); ResetSpriteData();
ResetPaletteFade(); ResetPaletteFade();
FreeAllSpritePalettes(); FreeAllSpritePalettes();
LoadPalette(gDiplomaPalettes, 0, 64); LoadPalette(sDiplomaPalettes, 0, 64);
gDiplomaTilemapPtr = malloc(0x1000); sDiplomaTilemapPtr = malloc(0x1000);
InitDiplomaBg(); InitDiplomaBg();
InitDiplomaWindow(); InitDiplomaWindow();
reset_temp_tile_data_buffers(); reset_temp_tile_data_buffers();
decompress_and_copy_tile_data_to_vram(1, &gDiplomaTiles, 0, 0, 0); decompress_and_copy_tile_data_to_vram(1, &sDiplomaTiles, 0, 0, 0);
while (free_temp_tile_data_buffers_if_possible()) while (free_temp_tile_data_buffers_if_possible())
; ;
LZDecompressWram(&gDiplomaTilemap, gDiplomaTilemapPtr); LZDecompressWram(&sDiplomaTilemap, sDiplomaTilemapPtr);
CopyBgTilemapBufferToVram(1); CopyBgTilemapBufferToVram(1);
DisplayDiplomaText(); DisplayDiplomaText();
BlendPalettes(-1, 16, 0); BlendPalettes(-1, 16, 0);
@@ -122,7 +123,7 @@ static void Task_DiplomaFadeOut(u8 taskId)
{ {
if (!gPaletteFade.active) if (!gPaletteFade.active)
{ {
Free(gDiplomaTilemapPtr); Free(sDiplomaTilemapPtr);
FreeAllWindowBuffers(); FreeAllWindowBuffers();
DestroyTask(taskId); DestroyTask(taskId);
SetMainCallback2(sub_80861E8); SetMainCallback2(sub_80861E8);
@@ -147,7 +148,7 @@ static void DisplayDiplomaText(void)
CopyWindowToVram(0, 3); CopyWindowToVram(0, 3);
} }
static const struct BgTemplate gDiplomaBgTemplates[2] = static const struct BgTemplate sDiplomaBgTemplates[2] =
{ {
{ {
.bg = 0, .bg = 0,
@@ -172,8 +173,8 @@ static const struct BgTemplate gDiplomaBgTemplates[2] =
static void InitDiplomaBg(void) static void InitDiplomaBg(void)
{ {
ResetBgsAndClearDma3BusyFlags(0); ResetBgsAndClearDma3BusyFlags(0);
InitBgsFromTemplates(0, gDiplomaBgTemplates, 2); InitBgsFromTemplates(0, sDiplomaBgTemplates, 2);
SetBgTilemapBuffer(1, gDiplomaTilemapPtr); SetBgTilemapBuffer(1, sDiplomaTilemapPtr);
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP);
ShowBg(0); ShowBg(0);
ShowBg(1); ShowBg(1);
@@ -182,7 +183,7 @@ static void InitDiplomaBg(void)
SetGpuReg(REG_OFFSET_BLDY, DISPCNT_MODE_0); SetGpuReg(REG_OFFSET_BLDY, DISPCNT_MODE_0);
} }
static const struct WindowTemplate gDiplomaWinTemplates[2] = static const struct WindowTemplate sDiplomaWinTemplates[2] =
{ {
{ {
.priority = 0, .priority = 0,
@@ -198,7 +199,7 @@ static const struct WindowTemplate gDiplomaWinTemplates[2] =
static void InitDiplomaWindow(void) static void InitDiplomaWindow(void)
{ {
InitWindows(gDiplomaWinTemplates); InitWindows(sDiplomaWinTemplates);
DeactivateAllTextPrinters(); DeactivateAllTextPrinters();
LoadPalette(gUnknown_0860F074, 0xF0, 0x20); LoadPalette(gUnknown_0860F074, 0xF0, 0x20);
FillWindowPixelBuffer(0, 0); FillWindowPixelBuffer(0, 0);
+3 -3
View File
@@ -59,7 +59,7 @@ extern u8* GetMonNick(struct Pokemon* mon, u8* dst);
extern u8* GetBoxMonNick(struct BoxPokemon* boxMon, u8* dst); extern u8* GetBoxMonNick(struct BoxPokemon* boxMon, u8* dst);
extern u8 sav1_map_get_name(void); extern u8 sav1_map_get_name(void);
extern s8 sub_8198C58(void); extern s8 sub_8198C58(void);
extern void sub_81DB5E8(u8* str1, u8* str2, u8); extern void TVShowConvertInternationalString(u8* str1, u8* str2, u8);
extern void sub_806A068(u16, u8); extern void sub_806A068(u16, u8);
extern void fade_screen(u8, u8); extern void fade_screen(u8, u8);
extern void overworld_free_bg_tilemaps(void); extern void overworld_free_bg_tilemaps(void);
@@ -404,8 +404,8 @@ static bool8 sub_807158C(struct DaycareData* daycare, u8 daycareId)
|| StringCompareWithoutExtCtrlCodes(gSaveBlock2Ptr->playerName, daycareMon->OT_name) != 0)) || StringCompareWithoutExtCtrlCodes(gSaveBlock2Ptr->playerName, daycareMon->OT_name) != 0))
{ {
StringCopy(gStringVar1, nick); StringCopy(gStringVar1, nick);
sub_81DB5E8(gStringVar2, daycareMon->OT_name, daycareMon->language_maybe); TVShowConvertInternationalString(gStringVar2, daycareMon->OT_name, daycareMon->language_maybe);
sub_81DB5E8(gStringVar3, daycareMon->monName, daycareMon->unknown); TVShowConvertInternationalString(gStringVar3, daycareMon->monName, daycareMon->unknown);
return TRUE; return TRUE;
} }
return FALSE; return FALSE;
+1 -1
View File
@@ -17,6 +17,7 @@
#include "easy_chat.h" #include "easy_chat.h"
#include "event_data.h" #include "event_data.h"
#include "money.h" #include "money.h"
#include "tv.h"
#include "coins.h" #include "coins.h"
#include "text.h" #include "text.h"
@@ -36,7 +37,6 @@ extern void sub_813624C(void); // clears something pokeblock related
extern void ResetPokedex(void); extern void ResetPokedex(void);
extern void sub_8084400(void); extern void sub_8084400(void);
extern void ClearMailData(void); extern void ClearMailData(void);
extern void ClearTVShowData(void);
extern void ResetGabbyAndTy(void); extern void ResetGabbyAndTy(void);
extern void ResetSecretBases(void); extern void ResetSecretBases(void);
extern void ResetLinkContestBoolean(void); extern void ResetLinkContestBoolean(void);
+354
View File
@@ -0,0 +1,354 @@
#include "global.h"
#include "reshow_battle_screen.h"
#include "battle.h"
#include "palette.h"
#include "main.h"
#include "unknown_task.h"
#include "text.h"
#include "gpu_regs.h"
#include "bg.h"
#include "battle_controllers.h"
#include "link.h"
#include "sprite.h"
#include "species.h"
#include "battle_interface.h"
extern u16 gBattle_BG0_X;
extern u16 gBattle_BG0_Y;
extern u16 gBattle_BG1_X;
extern u16 gBattle_BG1_Y;
extern u16 gBattle_BG2_X;
extern u16 gBattle_BG2_Y;
extern u16 gBattle_BG3_X;
extern u16 gBattle_BG3_Y;
extern u8 gReservedSpritePaletteCount;
extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT];
extern u8 gBankInMenu;
extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
extern u8 gNoOfAllBanks;
extern u32 gBattleTypeFlags;
extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT];
extern u8 gBattleMonForms[BATTLE_BANKS_COUNT];
extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT];
extern struct SpriteTemplate gUnknown_0202499C;
extern const union AnimCmd * const * const gMonAnimationsSpriteAnimsPtrTable[];
extern void dp12_8087EA4(void);
extern void trs_config(void);
extern bool8 IsDoubleBattle(void);
extern u8 sub_80A614C(u8 bank);
extern u8 sub_80A6138(u8 bank);
extern u8 sub_80A82E4(u8 bank);
extern void sub_806A068(u16 species, u8 bankIdentity);
extern void sub_806A12C(u16 backPicId, u8 bankIdentity);
extern u8 sub_80A5C6C(u8 bank, u8 caseId);
// this file's functions
static void CB2_ReshowBattleScreenAfterMenu(void);
static bool8 LoadBankSpriteGfx(u8 bank);
static void CreateBankSprite(u8 bank);
static void CreateHealthboxSprite(u8 bank);
static void sub_80A95F4(void);
void nullsub_35(void)
{
}
void ReshowBattleScreenAfterMenu(void)
{
gPaletteFade.bufferTransferDisabled = 1;
SetHBlankCallback(NULL);
SetVBlankCallback(NULL);
SetGpuReg(REG_OFFSET_MOSAIC, 0);
gBattleScripting.reshowMainState = 0;
gBattleScripting.reshowHelperState = 0;
SetMainCallback2(CB2_ReshowBattleScreenAfterMenu);
}
static void CB2_ReshowBattleScreenAfterMenu(void)
{
switch (gBattleScripting.reshowMainState)
{
case 0:
dp12_8087EA4();
trs_config();
SetBgAttribute(1, BG_CTRL_ATTR_VISIBLE, 0);
SetBgAttribute(2, BG_CTRL_ATTR_VISIBLE, 0);
ShowBg(0);
ShowBg(1);
ShowBg(2);
ShowBg(3);
ResetPaletteFade();
gBattle_BG0_X = 0;
gBattle_BG0_Y = 0;
gBattle_BG1_X = 0;
gBattle_BG1_Y = 0;
gBattle_BG2_X = 0;
gBattle_BG2_Y = 0;
gBattle_BG3_X = 0;
gBattle_BG3_Y = 0;
break;
case 1:
CpuFastFill(0, (void*)(VRAM), VRAM_SIZE);
break;
case 2:
LoadBattleTextboxAndBackground();
break;
case 3:
ResetSpriteData();
break;
case 4:
FreeAllSpritePalettes();
gReservedSpritePaletteCount = 4;
break;
case 5:
sub_805E350();
break;
case 6:
if (BattleLoadAllHealthBoxesGfx(gBattleScripting.reshowHelperState))
{
gBattleScripting.reshowHelperState = 0;
}
else
{
gBattleScripting.reshowHelperState++;
gBattleScripting.reshowMainState--;
}
break;
case 7:
if (!LoadBankSpriteGfx(0))
gBattleScripting.reshowMainState--;
break;
case 8:
if (!LoadBankSpriteGfx(1))
gBattleScripting.reshowMainState--;
break;
case 9:
if (!LoadBankSpriteGfx(2))
gBattleScripting.reshowMainState--;
break;
case 10:
if (!LoadBankSpriteGfx(3))
gBattleScripting.reshowMainState--;
break;
case 11:
CreateBankSprite(0);
break;
case 12:
CreateBankSprite(1);
break;
case 13:
CreateBankSprite(2);
break;
case 14:
CreateBankSprite(3);
break;
case 15:
CreateHealthboxSprite(0);
break;
case 16:
CreateHealthboxSprite(1);
break;
case 17:
CreateHealthboxSprite(2);
break;
case 18:
CreateHealthboxSprite(3);
break;
case 19:
{
u8 opponentBank;
u16 species;
LoadAndCreateEnemyShadowSprites();
opponentBank = GetBankByIdentity(IDENTITY_OPPONENT_MON1);
species = GetMonData(&gEnemyParty[gBattlePartyID[opponentBank]], MON_DATA_SPECIES);
SetBankEnemyShadowSpriteCallback(opponentBank, species);
if (IsDoubleBattle())
{
opponentBank = GetBankByIdentity(IDENTITY_OPPONENT_MON2);
species = GetMonData(&gEnemyParty[gBattlePartyID[opponentBank]], MON_DATA_SPECIES);
SetBankEnemyShadowSpriteCallback(opponentBank, species);
}
ActionSelectionCreateCursorAt(gActionSelectionCursor[gBankInMenu], 0);
if (gLinkVSyncDisabled != 0 && gReceivedRemoteLinkPlayers != 0)
{
sub_800E0E8();
sub_800DFB4(0, 0);
}
}
break;
default:
SetVBlankCallback(VBlankCB_Battle);
sub_80A95F4();
BeginHardwarePaletteFade(0xFF, 0, 0x10, 0, 1);
gPaletteFade.bufferTransferDisabled = 0;
SetMainCallback2(BattleMainCB2);
sub_805EF14();
break;
}
gBattleScripting.reshowMainState++;
}
static void sub_80A95F4(void)
{
struct BGCntrlBitfield *regBgcnt1, *regBgcnt2;
regBgcnt1 = (struct BGCntrlBitfield *)(&REG_BG1CNT);
regBgcnt1->charBaseBlock = 0;
regBgcnt2 = (struct BGCntrlBitfield *)(&REG_BG2CNT);
regBgcnt2->charBaseBlock = 0;
}
static bool8 LoadBankSpriteGfx(u8 bank)
{
if (bank < gNoOfAllBanks)
{
if (GetBankSide(bank) != SIDE_PLAYER)
{
if (!gBattleSpritesDataPtr->bankData[bank].behindSubstitute)
BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlePartyID[bank]], bank);
else
BattleLoadSubstituteSpriteGfx(bank, FALSE);
}
else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && bank == 0)
LoadBackTrainerBankSpriteGfx(gSaveBlock2Ptr->playerGender, bank);
else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL && bank == 0)
LoadBackTrainerBankSpriteGfx(BACK_PIC_WALLY, bank);
else if (!gBattleSpritesDataPtr->bankData[bank].behindSubstitute)
BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[bank]], bank);
else
BattleLoadSubstituteSpriteGfx(bank, FALSE);
gBattleScripting.reshowHelperState = 0;
}
return TRUE;
}
// todo: get rid of it once the struct is declared in a header
struct MonCoords
{
// This would use a bitfield, but sub_8079F44
// uses it as a u8 and casting won't match.
u8 coords; // u8 x:4, y:4;
u8 y_offset;
};
extern const struct MonCoords gTrainerBackPicCoords[];
static void CreateBankSprite(u8 bank)
{
if (bank < gNoOfAllBanks)
{
u8 posY;
if (gBattleSpritesDataPtr->bankData[bank].behindSubstitute)
posY = sub_80A614C(bank);
else
posY = sub_80A6138(bank);
if (GetBankSide(bank) != SIDE_PLAYER)
{
if (GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_HP) == 0)
return;
sub_806A068(GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES), GetBankIdentity(bank));
gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, sub_80A5C6C(bank, 2), posY, sub_80A82E4(bank));
gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank;
gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy;
gSprites[gBankSpriteIds[bank]].data0 = bank;
gSprites[gBankSpriteIds[bank]].data2 = GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES);
StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]);
if (gBattleSpritesDataPtr->bankData[bank].transformSpecies == SPECIES_CASTFORM)
gSprites[gBankSpriteIds[bank]].anims = gMonAnimationsSpriteAnimsPtrTable[SPECIES_CASTFORM];
}
else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && bank == 0)
{
sub_806A12C(gSaveBlock2Ptr->playerGender, GetBankIdentity(IDENTITY_PLAYER_MON1));
gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, 0x50,
(8 - gTrainerBackPicCoords[gSaveBlock2Ptr->playerGender].coords) * 4 + 80,
sub_80A82E4(0));
gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank;
gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy;
gSprites[gBankSpriteIds[bank]].data0 = bank;
}
else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL && bank == 0)
{
sub_806A12C(BACK_PIC_WALLY, GetBankIdentity(0));
gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, 0x50,
(8 - gTrainerBackPicCoords[BACK_PIC_WALLY].coords) * 4 + 80,
sub_80A82E4(0));
gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank;
gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy;
gSprites[gBankSpriteIds[bank]].data0 = bank;
}
else
{
if (GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_HP) == 0)
return;
sub_806A068(GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES), GetBankIdentity(bank));
gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, sub_80A5C6C(bank, 2), posY, sub_80A82E4(bank));
gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank;
gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy;
gSprites[gBankSpriteIds[bank]].data0 = bank;
gSprites[gBankSpriteIds[bank]].data2 = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES);
StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]);
if (gBattleSpritesDataPtr->bankData[bank].transformSpecies == SPECIES_CASTFORM)
gSprites[gBankSpriteIds[bank]].anims = gMonAnimationsSpriteAnimsPtrTable[SPECIES_CASTFORM];
}
gSprites[gBankSpriteIds[bank]].invisible = gBattleSpritesDataPtr->bankData[bank].invisible;
}
}
static void CreateHealthboxSprite(u8 bank)
{
if (bank < gNoOfAllBanks)
{
u8 healthboxSpriteId;
if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && bank == 0)
healthboxSpriteId = CreateSafariPlayerHealthboxSprites();
else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL && bank == 0)
return;
else
healthboxSpriteId = CreateBankHealthboxSprites(bank);
gHealthBoxesIds[bank] = healthboxSpriteId;
SetBankHealthboxSpritePos(bank);
SetHealthboxSpriteVisible(healthboxSpriteId);
if (GetBankSide(bank) != SIDE_PLAYER)
UpdateHealthboxAttribute(gHealthBoxesIds[bank], &gEnemyParty[gBattlePartyID[bank]], HEALTHBOX_ALL);
else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI)
UpdateHealthboxAttribute(gHealthBoxesIds[bank], &gPlayerParty[gBattlePartyID[bank]], HEALTHBOX_SAFARI_ALL_TEXT);
else
UpdateHealthboxAttribute(gHealthBoxesIds[bank], &gPlayerParty[gBattlePartyID[bank]], HEALTHBOX_ALL);
if (GetBankIdentity(bank) == IDENTITY_OPPONENT_MON2 || GetBankIdentity(bank) == IDENTITY_PLAYER_MON2)
nullsub_30(gHealthBoxesIds[bank], TRUE);
else
nullsub_30(gHealthBoxesIds[bank], FALSE);
if (GetBankSide(bank) != SIDE_PLAYER)
{
if (GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_HP) == 0)
SetHealthboxSpriteInvisible(healthboxSpriteId);
}
else if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI))
{
if (GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_HP) == 0)
SetHealthboxSpriteInvisible(healthboxSpriteId);
}
}
}
+1 -1
View File
@@ -114,7 +114,7 @@ void sub_80FC190(void)
{ {
SetMainCallback2(c2_exit_to_overworld_2_switch); SetMainCallback2(c2_exit_to_overworld_2_switch);
} }
else if (gBattleOutcome == 8) else if (gBattleOutcome == BATTLE_SAFARI_OUT_OF_BALLS)
{ {
ScriptContext2_RunNewScript(gUnknown_082A4B4C); ScriptContext2_RunNewScript(gUnknown_082A4B4C);
warp_in(); warp_in();

Some files were not shown because too many files have changed in this diff Show More