Merge branch 'master' of https://github.com/pret/pokeemerald into decomp_scrcmd
This commit is contained in:
@@ -23,5 +23,6 @@ tools/*
|
|||||||
*.dump
|
*.dump
|
||||||
*.sa*
|
*.sa*
|
||||||
Thumbs.db
|
Thumbs.db
|
||||||
|
build/
|
||||||
.DS_Store
|
.DS_Store
|
||||||
*.ddump
|
*.ddump
|
||||||
|
|||||||
@@ -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
@@ -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
File diff suppressed because it is too large
Load Diff
+2
-2
@@ -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
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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}
|
||||||
|
|||||||
@@ -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
@@ -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
|
||||||
|
|||||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
|
||||||
|
|||||||
@@ -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
@@ -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
@@ -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
|
||||||
|
|||||||
@@ -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
@@ -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}
|
||||||
|
|||||||
@@ -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
@@ -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
@@ -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
|
||||||
|
|||||||
@@ -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
@@ -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
|
||||||
|
|||||||
@@ -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
@@ -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
@@ -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
@@ -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
|
||||||
|
|||||||
@@ -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
@@ -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
@@ -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
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
sCurTVShowSlot
|
||||||
|
sTV_SecretBaseVisitMovesTemp
|
||||||
|
sTV_DecorationsBuffer
|
||||||
|
sTV_SecretBaseVisitMonsTemp
|
||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -0,0 +1,165 @@
|
|||||||
|
|
||||||
|
gPokeNewsTextSlateport_Upcoming:: @ 0828D0F8
|
||||||
|
.string "Greetings!\n"
|
||||||
|
.string "It’s time for POKéMON NEWS.\p"
|
||||||
|
.string "SLATEPORT’s 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. That’ll be good…”\p"
|
||||||
|
.string "It sounds like a trip to SLATEPORT\n"
|
||||||
|
.string "would be well worth your while that day.\p"
|
||||||
|
.string "That’s the news on POKéMON NEWS.$"
|
||||||
|
|
||||||
|
gPokeNewsTextSlateport_Ongoing:: @ 0828D2A1
|
||||||
|
.string "Greetings!\n"
|
||||||
|
.string "It’s time for POKéMON NEWS.\p"
|
||||||
|
.string "This is the news you’ve all been\n"
|
||||||
|
.string "waiting for!\p"
|
||||||
|
.string "SLATEPORT’S 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 heart’s content?\p"
|
||||||
|
.string "That’s the news on POKéMON NEWS.$"
|
||||||
|
|
||||||
|
gPokeNewsTextSlateport_Ending:: @ 0828D3F5
|
||||||
|
.string "Greetings!\n"
|
||||||
|
.string "It’s time for POKéMON NEWS.\p"
|
||||||
|
.string "This is the news you’ve all been\n"
|
||||||
|
.string "waiting for!\p"
|
||||||
|
.string "SLATEPORT’S 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 "That’s the news on POKéMON NEWS.$"
|
||||||
|
|
||||||
|
gPokeNewsTextGameCorner_Upcoming:: @ 0828D571
|
||||||
|
.string "Greetings!\n"
|
||||||
|
.string "It’s time for POKéMON NEWS.\p"
|
||||||
|
.string "It’s approaching!\n"
|
||||||
|
.string "It’s finally coming!\p"
|
||||||
|
.string "The GAME CORNER’s 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 "That’s the news on POKéMON NEWS.$"
|
||||||
|
|
||||||
|
gPokeNewsTextGameCorner_Ongoing:: @ 0828D66F
|
||||||
|
.string "Greetings!\n"
|
||||||
|
.string "It’s time for POKéMON NEWS.\p"
|
||||||
|
.string "It’s here!\n"
|
||||||
|
.string "It’s finally arrived!\p"
|
||||||
|
.string "GAME CORNER’s 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 "That’s the news on POKéMON NEWS.$"
|
||||||
|
|
||||||
|
gPokeNewsTextGameCorner_Ending:: @ 0828D768
|
||||||
|
.string "Greetings!\n"
|
||||||
|
.string "It’s time for POKéMON NEWS.\p"
|
||||||
|
.string "It’s here!\n"
|
||||||
|
.string "It’s finally arrived!\p"
|
||||||
|
.string "GAME CORNER’s 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 "That’s the news on POKéMON NEWS.$"
|
||||||
|
|
||||||
|
gPokeNewsTextLilycove_Upcoming:: @ 0828D875
|
||||||
|
.string "Greetings!\n"
|
||||||
|
.string "It’s time for POKéMON NEWS.\p"
|
||||||
|
.string "We’ve just received wonderful news\n"
|
||||||
|
.string "from LILYCOVE DEPARTMENT STORE.\p"
|
||||||
|
.string "The DEPARTMENT STORE’s 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 "you’ve always wanted could be yours!\p"
|
||||||
|
.string "That’s the news on POKéMON NEWS.$"
|
||||||
|
|
||||||
|
gPokeNewsTextLilycove_Ongoing:: @ 0828D994
|
||||||
|
.string "Greetings!\n"
|
||||||
|
.string "It’s time for POKéMON NEWS.\p"
|
||||||
|
.string "This is the news you’ve all been\n"
|
||||||
|
.string "waiting for!\p"
|
||||||
|
.string "LILYCOVE DEPARTMENT STORE’s clear-out\n"
|
||||||
|
.string "sale has finally arrived!\p"
|
||||||
|
.string "All the thingamajigs and doodads that\n"
|
||||||
|
.string "you’ve always dreamt about…\p"
|
||||||
|
.string "You may be in for fateful encounters\n"
|
||||||
|
.string "with them all!\p"
|
||||||
|
.string "That’s the news on POKéMON NEWS.$"
|
||||||
|
|
||||||
|
gPokeNewsTextLilycove_Ending:: @ 0828DAC0
|
||||||
|
.string "Greetings!\n"
|
||||||
|
.string "It’s time for POKéMON NEWS.\p"
|
||||||
|
.string "This is the news you’ve all been\n"
|
||||||
|
.string "waiting for!\p"
|
||||||
|
.string "LILYCOVE DEPARTMENT STORE’s clear-out\n"
|
||||||
|
.string "sale has finally arrived!\p"
|
||||||
|
.string "All the thingamajigs and doodads that\n"
|
||||||
|
.string "you’ve always dreamt about…\p"
|
||||||
|
.string "You may be in for fateful encounters\n"
|
||||||
|
.string "with them all!\p"
|
||||||
|
.string "That’s the news on POKéMON NEWS.$"
|
||||||
|
|
||||||
|
gPokeNewsTextBlendMaster_Upcoming:: @ 0828DBEC
|
||||||
|
.string "Greetings!\n"
|
||||||
|
.string "It’s 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 "That’s the news on POKéMON NEWS.$"
|
||||||
|
|
||||||
|
gPokeNewsTextBlendMaster_Ongoing:: @ 0828DD9E
|
||||||
|
.string "Greetings!\n"
|
||||||
|
.string "It’s 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 "That’s the news on POKéMON NEWS.$"
|
||||||
|
|
||||||
|
gPokeNewsTextBlendMaster_Ending:: @ 0828DF05
|
||||||
|
.string "Greetings!\n"
|
||||||
|
.string "It’s time for POKéMON NEWS.\p"
|
||||||
|
.string "It’s 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 haven’t seen the MASTER in\n"
|
||||||
|
.string "action, don’t waste this chance!\l"
|
||||||
|
.string "Head to LILYCOVE right now!\p"
|
||||||
|
.string "That’s the news on POKéMON NEWS.$"
|
||||||
+2891
File diff suppressed because it is too large
Load Diff
@@ -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
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -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);
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#ifndef GUARD_BATTLE_TOWER_H
|
||||||
|
#define GUARD_BATTLE_TOWER_H
|
||||||
|
|
||||||
|
u16 sub_8164FCC(u8, u8);
|
||||||
|
|
||||||
|
#endif //GUARD_BATTLE_TOWER_H
|
||||||
@@ -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,
|
||||||
|
|||||||
@@ -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
@@ -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
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#ifndef GUARD_DIPLOMA_H
|
||||||
|
#define GUARD_DIPLOMA_H
|
||||||
|
|
||||||
|
void CB2_ShowDiploma(void);
|
||||||
|
|
||||||
|
#endif // GUARD_DIPLOMA_H
|
||||||
+4
-2
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
@@ -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
@@ -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
|
||||||
|
|||||||
@@ -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
@@ -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;
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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
@@ -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
@@ -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[];
|
||||||
|
|||||||
@@ -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
@@ -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
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -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,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
|
||||||
|
|||||||
@@ -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,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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -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 *);
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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
@@ -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
|
||||||
|
|||||||
@@ -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
@@ -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
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -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
File diff suppressed because it is too large
Load Diff
+15
-14
@@ -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
@@ -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
@@ -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);
|
||||||
|
|||||||
@@ -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 *)(®_BG1CNT);
|
||||||
|
regBgcnt1->charBaseBlock = 0;
|
||||||
|
|
||||||
|
regBgcnt2 = (struct BGCntrlBitfield *)(®_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
@@ -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
Reference in New Issue
Block a user