diff --git a/.travis/calcrom/calcrom/calcrom.pl b/.travis/calcrom/calcrom/calcrom.pl deleted file mode 100755 index 5fe966eca..000000000 --- a/.travis/calcrom/calcrom/calcrom.pl +++ /dev/null @@ -1,204 +0,0 @@ -#!/usr/bin/perl - -use IPC::Cmd qw[ run ]; - -(@ARGV == 1) - or die "ERROR: no map file specified.\n"; -open(my $file, $ARGV[0]) - or die "ERROR: could not open file '$ARGV[0]'.\n"; - -my $src = 0; -my $asm = 0; -my $srcdata = 0; -my $data = 0; -while (my $line = <$file>) -{ - if ($line =~ /^ \.(\w+)\s+0x[0-9a-f]+\s+(0x[0-9a-f]+) (\w+)\/.+\.o/) - { - my $section = $1; - my $size = hex($2); - my $dir = $3; - - if ($section =~ /text/) - { - if ($dir eq 'src') - { - $src += $size; - } - elsif ($dir eq 'asm') - { - $asm += $size; - } - } - elsif ($section =~ /rodata/) - { - if ($dir eq 'src') - { - $srcdata += $size; - } - elsif ($dir eq 'data') - { - $data += $size; - } - } - } -} - -(my $elffname = $ARGV[0]) =~ s/\.map/.elf/; - -# Note that the grep filters out all branch labels. It also requires a minimum -# line length of 5, to filter out a ton of generated symbols (like AcCn). No -# settings to nm seem to remove these symbols. Finally, nm prints out a separate -# entry for whenever a name appears in a file, not just where it's defined. uniq -# removes all the duplicate entries. -# -# -# You'd expect this to take a while, because of uniq. It runs in under a second, -# though. Uniq is pretty fast! -my $base_cmd = "nm $elffname | awk '{print \$3}' | grep '^[^_].\\{4\\}' | uniq"; - -# This looks for Unknown_, Unknown_, or sub_, followed by just numbers. Note that -# it matches even if stuff precedes the unknown, like sUnknown/gUnknown. -# 'sub_' anchors to the start so it does not consider symbols like 'nullsub_12' undocumented. -my $undoc_cmd = "grep -E '[Uu]nknown_[0-9a-fA-F]*|^sub_[0-9a-fA-F]*'"; - -# This looks for every symbol with an address at the end of it. Some things are -# given a name based on their type / location, but still have an unknown purpose. -# For example, FooMap_EventScript_FFFFFFF. -my $partial_doc_cmd = "grep '_[0-38-9][0-9a-fA-F]\\{5,6\\}'"; - -my $count_cmd = "wc -l"; - -my $incbin_cmd = "find \"\$(dirname $elffname)\" \\( -name '*.s' -o -name '*.inc' \\) -exec cat {} ';' | grep -oE '^\\s*\\.incbin\\s*\"[^\"]+\"\s*,\\s*(0x)?[0-9a-fA-F]+\\s*,\\s*(0x)?[0-9a-fA-F]+' -"; - -# It sucks that we have to run this three times, but I can't figure out how to get -# stdin working for subcommands in perl while still having a timeout. It's decently -# fast anyway. -my $total_syms_as_string; -(run ( - command => "$base_cmd | $count_cmd", - buffer => \$total_syms_as_string, - timeout => 60 -)) - or die "ERROR: Error while getting all symbols: $?"; - -my $undocumented_as_string; -(run ( - command => "$base_cmd | $undoc_cmd | $count_cmd", - buffer => \$undocumented_as_string, - timeout => 60 -)) - or die "ERROR: Error while filtering for undocumented symbols: $?"; - -my $partial_documented_as_string; -(run ( - command => "$base_cmd | $partial_doc_cmd | $count_cmd", - buffer => \$partial_documented_as_string, - timeout => 60 -)) - or die "ERROR: Error while filtering for partial symbols: $?"; - -my $incbin_count_as_string; -(run ( - command => "$incbin_cmd | $count_cmd", - buffer => \$incbin_count_as_string, - timeout => 60 -)) - or die "ERROR: Error while counting incbins: $?"; - -my $incbin_bytes_as_string; -(run ( - command => "(echo -n 'ibase=16;' ; $incbin_cmd | sed -E 's/.*,\\s*0x([0-9a-fA-F]+)/\\1/' | tr '\\n' '+'; echo '0' ) | bc", - buffer => \$incbin_bytes_as_string, - timeout => 60 -)) - or die "ERROR: Error while calculating incbin totals: $?"; - -# Performing addition on a string converts it to a number. Any string that fails -# to convert to a number becomes 0. So if our converted number is 0, but our string -# is nonzero, then the conversion was an error. -my $undocumented = $undocumented_as_string + 0; -(($undocumented != 0) and ($undocumented_as_string ne "0")) - or die "ERROR: Cannot convert string to num: '$undocumented_as_string'"; - -my $partial_documented = $partial_documented_as_string + 0; -(($partial_documented != 0) and ($partial_documented_as_string ne "0")) - or die "ERROR: Cannot convert string to num: '$partial_documented_as_string'"; - -my $total_syms = $total_syms_as_string + 0; -(($total_syms != 0) and ($total_syms_as_string ne "0")) - or die "ERROR: Cannot convert string to num: '$total_syms_as_string'"; - -($total_syms != 0) - or die "ERROR: No symbols found."; - -my $incbin_count = $incbin_count_as_string + 0; -(($incbin_count != 0) and ($incbin_count_as_string ne "0")) - or die "ERROR: Cannot convert string to num: '$incbin_count_as_string'"; - -my $incbin_bytes = $incbin_bytes_as_string + 0; -(($incbin_bytes != 0) and ($incbin_bytes_as_string ne "0")) - or die "ERROR: Cannot convert string to num: '$incbin_bytes_as_string'"; - - -my $total = $src + $asm; -my $srcPct = sprintf("%.4f", 100 * $src / $total); -my $asmPct = sprintf("%.4f", 100 * $asm / $total); - -# partial_documented is double-counting the unknown_* and sub_* symbols. -$partial_documented = $partial_documented - $undocumented; - -my $documented = $total_syms - ($undocumented + $partial_documented); -my $docPct = sprintf("%.4f", 100 * $documented / $total_syms); -my $partialPct = sprintf("%.4f", 100 * $partial_documented / $total_syms); -my $undocPct = sprintf("%.4f", 100 * $undocumented / $total_syms); - -if ($asm == 0) -{ - print "Code decompilation is 100% complete\n" -} -else -{ - print "$total total bytes of code\n"; - print "$src bytes of code in src ($srcPct%)\n"; - print "$asm bytes of code in asm ($asmPct%)\n"; -} -print "\n"; - -if ($partial_documented == 0 && $undocumented == 0) -{ - print "Documentation is 100% complete\n" -} -else -{ - print "$total_syms total symbols\n"; - print "$documented symbols documented ($docPct%)\n"; - print "$partial_documented symbols partially documented ($partialPct%)\n"; - print "$undocumented symbols undocumented ($undocPct%)\n"; -} - -print "\n"; -my $dataTotal = $srcdata + $data; -my $srcDataPct = sprintf("%.4f", 100 * $srcdata / $dataTotal); -my $dataPct = sprintf("%.4f", 100 * $data / $dataTotal); - -my $incPct = sprintf("%.4f", 100 * $incbin_bytes / $dataTotal); - -if ($data == 0) -{ - print "Data porting to C is 100% complete\n" -} -else -{ - print "$dataTotal total bytes of data\n"; - print "$srcdata bytes of data in src ($srcDataPct%)\n"; - print "$data bytes of data in data ($dataPct%)\n"; -} - -print "\n"; - -if ($incbin_count == 0) { - print "All incbins have been eliminated\n" -} else { - print "$incbin_bytes bytes of data in $incbin_count incbins ($incPct%)\n" -} diff --git a/.travis/calcrom/calcrom/webhook.sh b/.travis/calcrom/calcrom/webhook.sh deleted file mode 100755 index 86da74c87..000000000 --- a/.travis/calcrom/calcrom/webhook.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash -ex - -# Only run this script if it's the master branch build. -if [[ "$TRAVIS_BRANCH" != "master" || "$TRAVIS_PULL_REQUEST" != "false" ]]; then - exit 0 -fi - -build_name=$1 -map_file=$build_name.map -if [ ! -f $map_file ]; then - echo "$map_file does not exist!" - exit 1 -fi - -output=$(perl $(dirname "$0")/calcrom.pl $build_name.map | sed -E ':a;N;$!ba;s/\r{0,1}\n/\\n/g') -curl -d "{\"username\": \"$CALCROM_DISCORD_WEBHOOK_USERNAME\", \"avatar_url\": \"$CALCROM_DISCORD_WEBHOOK_AVATAR_URL\", \"content\":\"\`\`\`$build_name progress:\\n$output\`\`\`\"}" -H "Content-Type: application/json" -X POST $CALCROM_DISCORD_WEBHOOK_URL diff --git a/Makefile b/Makefile index fa1cd2c6a..a8d939e7f 100755 --- a/Makefile +++ b/Makefile @@ -67,6 +67,8 @@ SCANINC := tools/scaninc/scaninc RAMSCRGEN := tools/ramscrgen/ramscrgen DUNGEONJSON := tools/dungeonjson/dungeonjson +PERL := perl + TOOLDIRS := $(filter-out tools/agbcc tools/binutils,$(wildcard tools/*)) TOOLBASE = $(TOOLDIRS:tools/%=%) TOOLS = $(foreach tool,$(TOOLBASE),tools/$(tool)/$(tool)$(EXE)) @@ -86,6 +88,7 @@ BUILD_DIR := build/pmd_$(BUILD_NAME) ROM := pmd_$(BUILD_NAME).gba ELF := $(ROM:%.gba=%.elf) MAP := $(ROM:%.gba=%.map) +SYM := $(ROM:%.gba=%.sym) C_SUBDIR = src ASM_SUBDIR = asm @@ -164,6 +167,8 @@ all: $(ROM) tools: $(TOOLDIRS) +syms: $(SYM) + include dungeon_pokemon.mk include dungeon_floor.mk include dungeon_trap.mk @@ -185,7 +190,7 @@ clean-tools: @$(foreach tooldir,$(TOOLDIRS),$(MAKE) clean -C $(tooldir);) tidy: - $(RM) -f $(ROM) $(ELF) $(MAP) + $(RM) -f $(ROM) $(ELF) $(MAP) $(SYM) $(RM) -r $(BUILD_DIR) $(RM) -f $(ITEM_DATA) $(RM) -f $(MOVE_DATA) @@ -231,10 +236,16 @@ $(ASM_BUILDDIR)/%.d: $(ASM_SUBDIR)/%.s libagbsyscall: @$(MAKE) -C libagbsyscall TOOLCHAIN=$(TOOLCHAIN) -$(BUILD_DIR)/sym_%.txt: sym_%.txt - cp $< $(BUILD_DIR) +$(BUILD_DIR)/sym_ewram.ld: sym_ewram.txt + $(RAMSCRGEN) ewram_data $< ENGLISH > $@ -$(LD_SCRIPT): ld_script.txt $(BUILD_DIR)/sym_ewram.txt $(BUILD_DIR)/sym_ewram2.txt $(BUILD_DIR)/sym_iwram.txt +$(BUILD_DIR)/sym_ewram2.ld: sym_ewram2.txt + $(RAMSCRGEN) ewram_data $< ENGLISH > $@ + +$(BUILD_DIR)/sym_iwram.ld: sym_iwram.txt + $(RAMSCRGEN) iwram_data $< ENGLISH > $@ + +$(LD_SCRIPT): ld_script.txt $(BUILD_DIR)/sym_ewram.ld $(BUILD_DIR)/sym_ewram2.ld $(BUILD_DIR)/sym_iwram.ld cd $(BUILD_DIR) && sed -e "s#tools/#../../tools/#g" ../../ld_script.txt >ld_script.ld $(ELF): $(LD_SCRIPT) $(ALL_OBJECTS) $(LIBC) libagbsyscall tools @@ -247,3 +258,10 @@ $(ROM): %.gba: $(ELF) ifeq (,$(filter clean,$(MAKECMDGOALS))) -include $(ALL_OBJECTS:.o=.d) endif + +################### +### Symbol file ### +################### + +$(SYM): $(ELF) + $(OBJDUMP) -t $< | sort -u | grep -E "^0[2389]" | $(PERL) -p -e 's/^(\w{8}) (\w).{6} \S+\t(\w{8}) (\S+)$$/\1 \2 \3 \4/g' > $@ diff --git a/asm/code_8048480.s b/asm/code_8048480.s index a7a2762ae..c7747b791 100644 --- a/asm/code_8048480.s +++ b/asm/code_8048480.s @@ -169,7 +169,7 @@ _08048918: .4byte gUnknown_80FD6E8 sub_804891C: push {lr} movs r2, 0x3 - bl sub_80793B0 + bl RaiseAtkStatTarget pop {r0} bx r0 thumb_func_end sub_804891C @@ -178,7 +178,7 @@ sub_804891C: sub_8048928: push {lr} movs r2, 0x3 - bl sub_8079420 + bl RaiseSpAtkStatTarget pop {r0} bx r0 thumb_func_end sub_8048928 @@ -187,7 +187,7 @@ sub_8048928: sub_8048934: push {lr} movs r2, 0x3 - bl sub_8079490 + bl RaiseDefStatTarget pop {r0} bx r0 thumb_func_end sub_8048934 @@ -196,7 +196,7 @@ sub_8048934: sub_8048940: push {lr} movs r2, 0x3 - bl sub_8079500 + bl RaiseSpDefStatTarget pop {r0} bx r0 thumb_func_end sub_8048940 diff --git a/asm/code_80521D0.s b/asm/code_80521D0.s index 5899ee73d..61f76ebeb 100644 --- a/asm/code_80521D0.s +++ b/asm/code_80521D0.s @@ -3889,7 +3889,7 @@ _0805461A: adds r1, r5, 0 mov r2, r8 mov r3, r9 - bl sub_805A2E8 + bl SurfMoveAction bl _080554BA _0805462A: adds r0, r7, 0 @@ -4084,7 +4084,7 @@ _080547D8: adds r1, r5, 0 mov r2, r8 mov r3, r9 - bl sub_805A0A8 + bl TriAttackMoveAction bl _080554BA _080547E8: adds r0, r7, 0 @@ -4224,7 +4224,7 @@ _08054918: adds r1, r5, 0 mov r2, r8 mov r3, r9 - bl sub_805A588 + bl TickleMoveAction bl _080554BA _08054928: adds r0, r7, 0 @@ -4287,7 +4287,7 @@ _080549A8: adds r1, r5, 0 mov r2, r8 mov r3, r9 - bl sub_805ACD8 + bl BulkUpMoveAction bl _080554BA _080549B8: adds r0, r7, 0 @@ -4469,7 +4469,7 @@ _08054B48: adds r1, r5, 0 mov r2, r8 mov r3, r9 - bl sub_805968C + bl SolarBeamMoveAction bl _080554BA _08054B58: adds r0, r7, 0 @@ -4518,7 +4518,7 @@ _08054BB8: adds r1, r5, 0 mov r2, r8 mov r3, r9 - bl sub_805AF30 + bl PresentMoveAction bl _080554BA _08054BC8: adds r0, r7, 0 @@ -4553,7 +4553,7 @@ _08054C08: adds r1, r5, 0 mov r2, r8 mov r3, r9 - bl sub_805AB48 + bl LightScreenMoveAction bl _080554BA _08054C18: adds r0, r7, 0 @@ -4679,7 +4679,7 @@ _08054D1A: adds r1, r5, 0 mov r2, r8 mov r3, r9 - bl sub_805A55C + bl CurseMoveAction b _080554BA _08054D28: movs r0, 0 @@ -4856,7 +4856,7 @@ _08054E7C: adds r1, r5, 0 mov r2, r8 mov r3, r9 - bl sub_805A3FC + bl WishMoveAction b _080554BA _08054E8A: adds r0, r7, 0 @@ -5017,7 +5017,7 @@ _08054FBE: adds r1, r5, 0 mov r2, r8 mov r3, r9 - bl sub_8059790 + bl FlyMoveAction b _080554BA _08054FCC: adds r0, r7, 0 @@ -5059,7 +5059,7 @@ _08055012: adds r1, r5, 0 mov r2, r8 mov r3, r9 - bl sub_805A6C8 + bl KnockOffMoveAction b _080554BA _08055020: adds r0, r7, 0 @@ -5243,7 +5243,7 @@ _08055182: adds r1, r5, 0 mov r2, r8 mov r3, r9 - bl sub_805A508 + bl SwallowMoveAction b _080554BA _08055190: adds r0, r7, 0 @@ -5348,7 +5348,7 @@ _08055254: adds r1, r5, 0 mov r2, r8 mov r3, r9 - bl sub_805AAE0 + bl BellyDrumMoveAction b _080554BA _08055262: adds r0, r7, 0 @@ -5404,7 +5404,7 @@ _080552C4: adds r1, r5, 0 mov r2, r8 mov r3, r9 - bl sub_805C468 + bl MobileOrbAction b _080554BA _080552D2: adds r0, r7, 0 @@ -5481,7 +5481,7 @@ _0805535E: adds r1, r5, 0 mov r2, r8 mov r3, r9 - bl sub_805AB54 + bl SecretPowerMoveAction b _080554BA _0805536C: adds r0, r7, 0 @@ -5516,7 +5516,7 @@ _080553A4: adds r1, r5, 0 mov r2, r8 mov r3, r9 - bl sub_805A31C + bl RolePlayMoveAction b _080554BA _080553B2: adds r0, r7, 0 @@ -5530,7 +5530,7 @@ _080553C0: adds r1, r5, 0 mov r2, r8 mov r3, r9 - bl sub_8059BAC + bl ConversionMoveAction b _080554BA _080553CE: adds r0, r7, 0 @@ -5614,7 +5614,7 @@ _08055468: adds r1, r5, 0 mov r2, r8 mov r3, r9 - bl sub_8059C80 + bl Conversion2MoveAction b _080554BA _08055476: adds r0, r7, 0 diff --git a/asm/code_8057824.s b/asm/code_8057824.s index ef36c1165..382b6882b 100644 --- a/asm/code_8057824.s +++ b/asm/code_8057824.s @@ -123,3633 +123,4 @@ _0805941C: .4byte gUnknown_202DE58 _08059420: .4byte gUnknown_80FE38C thumb_func_end SketchMoveAction - thumb_func_start sub_8059424 -sub_8059424: - push {r4-r7,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r6, r1, 0 - movs r7, 0 - movs r4, 0x80 - lsls r4, 1 - str r3, [sp] - adds r3, r4, 0 - bl sub_8055640 - cmp r0, 0 - beq _0805945E - movs r7, 0x1 - ldr r0, _08059468 - movs r1, 0 - ldrsh r2, [r0, r1] - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_805727C - lsls r0, 24 - cmp r0, 0 - beq _0805945E - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0 - bl CringeStatusTarget -_0805945E: - adds r0, r7, 0 - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08059468: .4byte gUnknown_80F4DF0 - thumb_func_end sub_8059424 - - thumb_func_start sub_805946C -sub_805946C: - push {r4-r6,lr} - sub sp, 0x18 - adds r5, r0, 0 - movs r6, 0 - movs r4, 0x80 - lsls r4, 1 - str r3, [sp] - adds r3, r4, 0 - bl sub_8055640 - cmp r0, 0 - beq _080594D2 - movs r6, 0x1 - adds r0, r5, 0 - movs r1, 0x7 - bl HasAbility - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080594D2 - adds r0, r5, 0 - movs r1, 0 - bl sub_8057308 - lsls r0, 24 - cmp r0, 0 - beq _080594D2 - ldr r0, [r5, 0x70] - movs r1, 0x10 - ldrsh r2, [r0, r1] - cmp r2, 0 - bge _080594B0 - adds r2, 0x7 -_080594B0: - asrs r2, 3 - cmp r2, 0 - bne _080594B8 - movs r2, 0x1 -_080594B8: - str r4, [sp] - str r4, [sp, 0x4] - ldr r0, _080594DC - str r0, [sp, 0x8] - movs r0, 0x14 - str r0, [sp, 0xC] - str r6, [sp, 0x10] - str r4, [sp, 0x14] - adds r0, r5, 0 - adds r1, r5, 0 - movs r3, 0 - bl sub_806F370 -_080594D2: - adds r0, r6, 0 - add sp, 0x18 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080594DC: .4byte 0x000001fd - thumb_func_end sub_805946C - - thumb_func_start sub_80594E0 -sub_80594E0: - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldr r0, _08059518 - ldr r0, [r0] - ldr r1, _0805951C - ldrh r1, [r1] - ldr r2, _08059520 - adds r0, r2 - strb r1, [r0] - movs r0, 0x1 - movs r1, 0 - bl sub_807EAA0 - lsls r0, 24 - cmp r0, 0 - bne _0805950E - ldr r0, _08059524 - ldr r2, [r0] - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80522F4 -_0805950E: - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08059518: .4byte gDungeon -_0805951C: .4byte gUnknown_80F4F42 -_08059520: .4byte 0x0000e269 -_08059524: .4byte gUnknown_80FCF78 - thumb_func_end sub_80594E0 - - thumb_func_start sub_8059528 -sub_8059528: - push {lr} - ldr r2, _0805953C - ldr r2, [r2] - movs r3, 0x1 - bl LowerAccuracyStageTarget - movs r0, 0x1 - pop {r1} - bx r1 - .align 2, 0 -_0805953C: .4byte gUnknown_8106A4C - thumb_func_end sub_8059528 - - thumb_func_start sub_8059540 -sub_8059540: - push {r4-r7,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r6, r1, 0 - movs r7, 0 - movs r4, 0x80 - lsls r4, 1 - str r3, [sp] - adds r3, r4, 0 - bl sub_8055640 - cmp r0, 0 - beq _0805957A - movs r7, 0x1 - ldr r0, _08059584 - movs r1, 0 - ldrsh r2, [r0, r1] - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_805727C - lsls r0, 24 - cmp r0, 0 - beq _0805957A - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0 - bl PoisonedStatusTarget -_0805957A: - adds r0, r7, 0 - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08059584: .4byte gUnknown_80F4DC4 - thumb_func_end sub_8059540 - - thumb_func_start sub_8059588 -sub_8059588: - push {lr} - ldr r2, _0805959C - ldr r2, [r2] - movs r3, 0x1 - bl RaiseAttackStageTarget - movs r0, 0x1 - pop {r1} - bx r1 - .align 2, 0 -_0805959C: .4byte gUnknown_8106A50 - thumb_func_end sub_8059588 - - thumb_func_start sub_80595A0 -sub_80595A0: - push {r4-r7,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r6, r1, 0 - movs r7, 0 - movs r4, 0x80 - lsls r4, 1 - str r3, [sp] - adds r3, r4, 0 - bl sub_8055640 - cmp r0, 0 - beq _080595DC - movs r7, 0x1 - ldr r0, _080595E8 - movs r1, 0 - ldrsh r2, [r0, r1] - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_805727C - lsls r0, 24 - cmp r0, 0 - beq _080595DC - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0 - movs r3, 0 - bl BurnedStatusTarget -_080595DC: - adds r0, r7, 0 - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080595E8: .4byte gUnknown_80F4DE0 - thumb_func_end sub_80595A0 - - thumb_func_start sub_80595EC -sub_80595EC: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x1C - mov r9, r0 - adds r6, r1, 0 - adds r5, r2, 0 - mov r8, r3 - movs r7, 0 - add r0, sp, 0x18 - strb r7, [r0] - adds r0, r5, 0 - bl GetMoveType - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r6, 0 - bl sub_806F4A4 - lsls r0, 24 - cmp r0, 0 - bne _08059630 - ldr r0, _0805962C - ldr r2, [r0] - mov r0, r9 - adds r1, r6, 0 - bl sub_80522F4 - movs r0, 0 - b _08059678 - .align 2, 0 -_0805962C: .4byte gUnknown_80FEB8C -_08059630: - adds r0, r5, 0 - bl GetMoveType - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - mov r1, r8 - bl sub_8057600 - lsls r0, 16 - asrs r0, 16 - ldr r2, _08059688 - add r1, sp, 0x18 - str r1, [sp] - str r4, [sp, 0x4] - str r0, [sp, 0x8] - str r7, [sp, 0xC] - movs r0, 0x1 - str r0, [sp, 0x10] - str r7, [sp, 0x14] - mov r0, r9 - adds r1, r6, 0 - movs r3, 0x1 - bl sub_806F370 - add r1, sp, 0x18 - movs r2, 0 - adds r0, r1, 0 - ldrb r0, [r0] - cmp r0, 0 - bne _08059672 - movs r2, 0x1 -_08059672: - strb r2, [r1] - add r0, sp, 0x18 - ldrb r0, [r0] -_08059678: - add sp, 0x1C - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08059688: .4byte 0x0000270f - thumb_func_end sub_80595EC - - thumb_func_start sub_805968C -sub_805968C: - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r5, r0, 0 - mov r8, r1 - adds r6, r2, 0 - adds r7, r3, 0 - bl GetApparentWeather - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - beq _080596B6 - adds r0, r5, 0 - adds r1, r6, 0 - bl MoveMatchesChargingStatus - lsls r0, 24 - cmp r0, 0 - beq _080596EC -_080596B6: - ldr r0, _080596E8 - ldr r3, [r0] - cmp r4, 0x2 - beq _080596C6 - cmp r4, 0x4 - beq _080596C6 - cmp r4, 0x5 - bne _080596CC -_080596C6: - lsrs r0, r3, 31 - adds r0, r3, r0 - asrs r3, r0, 1 -_080596CC: - str r7, [sp] - adds r0, r5, 0 - mov r1, r8 - adds r2, r6, 0 - bl sub_8055640 - negs r1, r0 - orrs r1, r0 - lsrs r4, r1, 31 - adds r0, r5, 0 - bl sub_8079764 - b _08059700 - .align 2, 0 -_080596E8: .4byte gUnknown_80F4F48 -_080596EC: - ldr r0, _08059710 - ldr r0, [r0] - str r0, [sp] - adds r0, r5, 0 - adds r1, r5, 0 - movs r2, 0x2 - adds r3, r6, 0 - bl SetChargeStatusTarget - movs r4, 0x1 -_08059700: - adds r0, r4, 0 - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08059710: .4byte gUnknown_80FACE4 - thumb_func_end sub_805968C - - thumb_func_start sub_8059714 -sub_8059714: - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0x1C - mov r9, r0 - mov r10, r1 - adds r6, r2, 0 - mov r8, r3 - movs r5, 0 - add r0, sp, 0x18 - strb r5, [r0] - adds r0, r6, 0 - bl GetMoveType - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - mov r1, r8 - bl sub_8057600 - lsls r0, 16 - asrs r0, 16 - ldr r1, _0805978C - movs r3, 0 - ldrsh r2, [r1, r3] - add r1, sp, 0x18 - str r1, [sp] - str r4, [sp, 0x4] - str r0, [sp, 0x8] - str r5, [sp, 0xC] - movs r0, 0x1 - str r0, [sp, 0x10] - str r5, [sp, 0x14] - mov r0, r9 - mov r1, r10 - movs r3, 0x1 - bl sub_806F370 - add r1, sp, 0x18 - movs r2, 0 - adds r0, r1, 0 - ldrb r0, [r0] - cmp r0, 0 - bne _08059774 - movs r2, 0x1 -_08059774: - strb r2, [r1] - add r0, sp, 0x18 - ldrb r0, [r0] - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0805978C: .4byte gUnknown_80F4F7C - thumb_func_end sub_8059714 - - thumb_func_start sub_8059790 -sub_8059790: - push {r4-r7,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r7, r1, 0 - adds r4, r2, 0 - adds r6, r3, 0 - adds r1, r4, 0 - bl MoveMatchesChargingStatus - lsls r0, 24 - cmp r0, 0 - beq _080597CC - ldr r0, _080597C8 - ldr r3, [r0] - str r6, [sp] - adds r0, r5, 0 - adds r1, r7, 0 - adds r2, r4, 0 - bl sub_8055640 - negs r1, r0 - orrs r1, r0 - lsrs r4, r1, 31 - adds r0, r5, 0 - bl sub_8079764 - b _080597E0 - .align 2, 0 -_080597C8: .4byte gUnknown_80F4F5C -_080597CC: - ldr r0, _080597EC - ldr r0, [r0] - str r0, [sp] - adds r0, r5, 0 - adds r1, r5, 0 - movs r2, 0x7 - adds r3, r4, 0 - bl SetChargeStatusTarget - movs r4, 0x1 -_080597E0: - adds r0, r4, 0 - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080597EC: .4byte gUnknown_80FACFC - thumb_func_end sub_8059790 - - thumb_func_start sub_80597F0 -sub_80597F0: - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x8 - mov r9, r0 - mov r8, r1 - adds r5, r2, 0 - adds r6, r3, 0 - adds r0, r5, 0 - bl GetMoveType - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_8057600 - lsls r0, 16 - asrs r0, 16 - mov r2, r8 - adds r2, 0x4 - str r4, [sp] - str r0, [sp, 0x4] - mov r0, r9 - mov r1, r8 - movs r3, 0x2 - bl sub_807DF38 - movs r0, 0x1 - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80597F0 - - thumb_func_start DiveMoveAction -DiveMoveAction: - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r4, r0, 0 - adds r7, r1, 0 - adds r5, r2, 0 - mov r8, r3 - movs r6, 0 - bl GetTileAtEntitySafe - bl IsTileGround - lsls r0, 24 - cmp r0, 0 - beq _08059870 - ldr r0, _0805986C - ldr r2, [r0] - adds r0, r4, 0 - adds r1, r7, 0 - bl sub_80522F4 - b _080598B8 - .align 2, 0 -_0805986C: .4byte gUnknown_80FD128 -_08059870: - adds r0, r4, 0 - adds r1, r5, 0 - bl MoveMatchesChargingStatus - lsls r0, 24 - cmp r0, 0 - beq _080598A4 - ldr r0, _080598A0 - ldr r3, [r0] - mov r0, r8 - str r0, [sp] - adds r0, r4, 0 - adds r1, r7, 0 - adds r2, r5, 0 - bl sub_8055640 - negs r1, r0 - orrs r1, r0 - lsrs r6, r1, 31 - adds r0, r4, 0 - bl sub_8079764 - b _080598B8 - .align 2, 0 -_080598A0: .4byte gUnknown_80F4F64 -_080598A4: - ldr r0, _080598C8 - ldr r0, [r0] - str r0, [sp] - adds r0, r4, 0 - adds r1, r4, 0 - movs r2, 0x9 - adds r3, r5, 0 - bl SetChargeStatusTarget - movs r6, 0x1 -_080598B8: - adds r0, r6, 0 - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080598C8: .4byte gUnknown_80FAD2C - thumb_func_end DiveMoveAction - - thumb_func_start sub_80598CC -sub_80598CC: - push {r4-r7,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r6, r1, 0 - movs r7, 0 - movs r4, 0x80 - lsls r4, 1 - str r3, [sp] - adds r3, r4, 0 - bl sub_8055640 - cmp r0, 0 - beq _0805990A - movs r7, 0x1 - ldr r0, _08059914 - movs r1, 0 - ldrsh r2, [r0, r1] - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_805727C - lsls r0, 24 - cmp r0, 0 - beq _0805990A - ldr r0, _08059918 - ldr r2, [r0] - adds r0, r5, 0 - adds r1, r6, 0 - movs r3, 0 - bl LowerAccuracyStageTarget -_0805990A: - adds r0, r7, 0 - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08059914: .4byte gUnknown_80F4E00 -_08059918: .4byte gUnknown_8106A4C - thumb_func_end sub_80598CC - - thumb_func_start StockpileMoveAction -StockpileMoveAction: - push {lr} - bl HandleStockpile - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end StockpileMoveAction - - thumb_func_start sub_8059928 -sub_8059928: - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r4, r1, 0 - adds r1, r3, 0 - movs r3, 0x1 - movs r6, 0 - ldr r0, [r4, 0x70] - adds r0, 0xC0 - ldrb r0, [r0] - subs r0, 0x7 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _08059948 - movs r3, 0x2 -_08059948: - lsls r3, 8 - str r1, [sp] - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8055640 - cmp r0, 0 - beq _08059978 - movs r6, 0x1 - ldr r0, _08059984 - movs r1, 0 - ldrsh r2, [r0, r1] - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_805727C - lsls r0, 24 - cmp r0, 0 - beq _08059978 - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0 - bl CringeStatusTarget -_08059978: - adds r0, r6, 0 - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08059984: .4byte gUnknown_80F4DEC - thumb_func_end sub_8059928 - - thumb_func_start sub_8059988 -sub_8059988: - push {r4-r7,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r6, r1, 0 - movs r7, 0 - movs r4, 0x80 - lsls r4, 1 - str r3, [sp] - adds r3, r4, 0 - bl sub_8055640 - cmp r0, 0 - beq _080599A8 - movs r7, 0x1 - ldr r0, _080599E0 - strb r7, [r0] -_080599A8: - ldr r0, _080599E0 - ldrb r0, [r0] - cmp r0, 0 - beq _080599D6 - ldr r0, _080599E4 - ldr r0, [r0] - cmp r0, 0x2 - bne _080599D6 - ldr r0, _080599E8 - movs r1, 0 - ldrsh r2, [r0, r1] - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_805727C - lsls r0, 24 - cmp r0, 0 - beq _080599D6 - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0 - bl PoisonedStatusTarget -_080599D6: - adds r0, r7, 0 - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080599E0: .4byte gUnknown_202F218 -_080599E4: .4byte gUnknown_202F214 -_080599E8: .4byte gUnknown_80F4DC8 - thumb_func_end sub_8059988 - - thumb_func_start sub_80599EC -sub_80599EC: - push {r4,lr} - sub sp, 0x4 - adds r3, r0, 0 - ldr r0, [r1, 0x70] - movs r4, 0x10 - ldrsh r2, [r0, r4] - cmp r2, 0 - bge _080599FE - adds r2, 0x3 -_080599FE: - asrs r2, 2 - movs r0, 0x1 - str r0, [sp] - adds r0, r3, 0 - movs r3, 0 - bl HealTargetHP - movs r0, 0x1 - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80599EC - - thumb_func_start sub_8059A18 -sub_8059A18: - push {lr} - ldr r2, _08059A28 - ldr r2, [r2] - bl RaiseAccuracyStageTarget - movs r0, 0x1 - pop {r1} - bx r1 - .align 2, 0 -_08059A28: .4byte gUnknown_8106A50 - thumb_func_end sub_8059A18 - - thumb_func_start sub_8059A2C -sub_8059A2C: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - mov r9, r0 - adds r7, r1, 0 - adds r6, r2, 0 - mov r8, r3 - movs r5, 0 - add r0, sp, 0x18 - strb r5, [r0] - mov r1, r9 - ldr r0, [r1, 0x70] - ldrb r0, [r0, 0x9] - mov r10, r0 - adds r0, r6, 0 - bl GetMoveType - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - mov r1, r8 - bl sub_8057600 - lsls r0, 16 - asrs r0, 16 - add r1, sp, 0x18 - str r1, [sp] - str r4, [sp, 0x4] - str r0, [sp, 0x8] - str r5, [sp, 0xC] - movs r0, 0x1 - str r0, [sp, 0x10] - str r5, [sp, 0x14] - mov r0, r9 - adds r1, r7, 0 - mov r2, r10 - movs r3, 0x1 - bl sub_806F370 - add r1, sp, 0x18 - movs r2, 0 - adds r0, r1, 0 - ldrb r0, [r0] - cmp r0, 0 - bne _08059A90 - movs r2, 0x1 -_08059A90: - strb r2, [r1] - add r0, sp, 0x18 - ldrb r0, [r0] - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8059A2C - - thumb_func_start sub_8059AA8 -sub_8059AA8: - push {lr} - movs r2, 0x1 - bl ConfuseStatusTarget - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_8059AA8 - - thumb_func_start sub_8059AB8 -sub_8059AB8: - push {lr} - bl TauntStatusTarget - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_8059AB8 - - thumb_func_start sub_8059AC4 -sub_8059AC4: - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r6, r1, 0 - ldr r4, _08059AF4 - bl GetApparentWeather - lsls r0, 24 - lsrs r0, 23 - adds r0, r4 - movs r1, 0 - ldrsh r2, [r0, r1] - movs r0, 0x1 - str r0, [sp] - adds r0, r5, 0 - adds r1, r6, 0 - movs r3, 0 - bl HealTargetHP - movs r0, 0x1 - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08059AF4: .4byte gUnknown_80F501A - thumb_func_end sub_8059AC4 - - thumb_func_start sub_8059AF8 -sub_8059AF8: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x1C - mov r9, r0 - adds r6, r1, 0 - adds r5, r2, 0 - mov r8, r3 - movs r7, 0 - add r0, sp, 0x18 - strb r7, [r0] - adds r0, r5, 0 - bl GetMoveType - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r6, 0 - bl sub_806F4A4 - lsls r0, 24 - cmp r0, 0 - bne _08059B3C - ldr r0, _08059B38 - ldr r2, [r0] - mov r0, r9 - adds r1, r6, 0 - bl sub_80522F4 - movs r0, 0 - b _08059B82 - .align 2, 0 -_08059B38: .4byte gUnknown_80FEB90 -_08059B3C: - adds r0, r5, 0 - bl GetMoveType - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - mov r1, r8 - bl sub_8057600 - lsls r0, 16 - asrs r0, 16 - ldr r2, _08059B90 - add r1, sp, 0x18 - str r1, [sp] - str r4, [sp, 0x4] - str r0, [sp, 0x8] - str r7, [sp, 0xC] - str r7, [sp, 0x10] - str r7, [sp, 0x14] - mov r0, r9 - adds r1, r6, 0 - movs r3, 0x1 - bl sub_806F370 - add r1, sp, 0x18 - movs r2, 0 - adds r0, r1, 0 - ldrb r0, [r0] - cmp r0, 0 - bne _08059B7C - movs r2, 0x1 -_08059B7C: - strb r2, [r1] - add r0, sp, 0x18 - ldrb r0, [r0] -_08059B82: - add sp, 0x1C - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08059B90: .4byte 0x0000270f - thumb_func_end sub_8059AF8 - - thumb_func_start sub_8059B94 -sub_8059B94: - push {lr} - ldr r2, _08059BA8 - ldr r2, [r2] - movs r3, 0x2 - bl RaiseAttackStageTarget - movs r0, 0x1 - pop {r1} - bx r1 - .align 2, 0 -_08059BA8: .4byte gUnknown_8106A4C - thumb_func_end sub_8059B94 - - thumb_func_start sub_8059BAC -sub_8059BAC: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - mov r10, r0 - adds r5, r1, 0 - movs r0, 0 - mov r8, r0 - ldr r7, [r5, 0x70] - adds r0, r5, 0 - movs r1, 0x25 - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _08059BD8 - ldr r0, _08059BD4 - b _08059C5E - .align 2, 0 -_08059BD4: .4byte gPtrForecastPreventsTypeSwitchMessage -_08059BD8: - movs r1, 0x8C - lsls r1, 1 - adds r4, r7, r1 - mov r9, sp - movs r6, 0x3 -_08059BE2: - ldrb r1, [r4] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08059C08 - adds r0, r5, 0 - adds r1, r4, 0 - bl GetMoveTypeForMonster - lsls r0, 24 - cmp r0, 0 - beq _08059C08 - mov r0, r9 - adds r0, 0x4 - mov r9, r0 - subs r0, 0x4 - stm r0!, {r4} - movs r1, 0x1 - add r8, r1 -_08059C08: - adds r4, 0x8 - subs r6, 0x1 - cmp r6, 0 - bge _08059BE2 - mov r0, r8 - cmp r0, 0 - beq _08059C5C - bl DungeonRandInt - lsls r0, 2 - mov r1, sp - adds r4, r1, r0 - ldr r1, [r4] - adds r0, r5, 0 - bl GetMoveTypeForMonster - adds r1, r7, 0 - adds r1, 0x5C - movs r2, 0 - strb r0, [r1] - adds r0, r7, 0 - adds r0, 0x5D - strb r2, [r0] - adds r1, 0x9A - movs r0, 0x1 - strb r0, [r1] - ldr r0, _08059C54 - ldr r1, [r4] - bl sub_80928C0 - ldr r0, _08059C58 - ldr r2, [r0] - mov r0, r10 - adds r1, r5, 0 - bl sub_80522F4 - movs r0, 0x1 - b _08059C6A - .align 2, 0 -_08059C54: .4byte gUnknown_202DE58 -_08059C58: .4byte gUnknown_80FE330 -_08059C5C: - ldr r0, _08059C7C -_08059C5E: - ldr r2, [r0] - mov r0, r10 - adds r1, r5, 0 - bl sub_80522F4 - movs r0, 0 -_08059C6A: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08059C7C: .4byte gUnknown_80FE36C - thumb_func_end sub_8059BAC - - thumb_func_start sub_8059C80 -sub_8059C80: - push {lr} - bl Conversion2StatusTarget - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_8059C80 - - thumb_func_start HelpingHandMoveAction -HelpingHandMoveAction: - push {r4-r6,lr} - adds r5, r0, 0 - adds r4, r1, 0 - movs r6, 0 - cmp r5, r4 - bne _08059CA8 - ldr r0, _08059CA4 - ldr r2, [r0] - adds r0, r4, 0 - bl sub_80522F4 - b _08059CC6 - .align 2, 0 -_08059CA4: .4byte gUnknown_80FEB60 -_08059CA8: - ldr r0, _08059CD0 - ldr r2, [r0] - adds r0, r5, 0 - adds r1, r4, 0 - movs r3, 0x1 - bl RaiseAttackStageTarget - ldr r0, _08059CD4 - ldr r2, [r0] - adds r0, r5, 0 - adds r1, r4, 0 - movs r3, 0x1 - bl RaiseAttackStageTarget - movs r6, 0x1 -_08059CC6: - adds r0, r6, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08059CD0: .4byte gUnknown_8106A4C -_08059CD4: .4byte gUnknown_8106A50 - thumb_func_end HelpingHandMoveAction - - thumb_func_start sub_8059CD8 -sub_8059CD8: - push {lr} - ldr r2, _08059CEC - ldr r2, [r2] - movs r3, 0x2 - bl RaiseDefenseStageTarget - movs r0, 0x1 - pop {r1} - bx r1 - .align 2, 0 -_08059CEC: .4byte gUnknown_8106A4C - thumb_func_end sub_8059CD8 - - thumb_func_start sub_8059CF0 -sub_8059CF0: - push {lr} - movs r2, 0 - movs r3, 0 - bl sub_807D148 - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_8059CF0 - - thumb_func_start sub_8059D00 -sub_8059D00: - push {r4-r7,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r6, r1, 0 - movs r7, 0 - movs r4, 0x80 - lsls r4, 1 - str r3, [sp] - adds r3, r4, 0 - bl sub_8055640 - cmp r0, 0 - beq _08059D3A - movs r7, 0x1 - ldr r0, _08059D44 - movs r1, 0 - ldrsh r2, [r0, r1] - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_805727C - lsls r0, 24 - cmp r0, 0 - beq _08059D3A - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0 - bl ParalyzeStatusTarget -_08059D3A: - adds r0, r7, 0 - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08059D44: .4byte gUnknown_80F4DE2 - thumb_func_end sub_8059D00 - - thumb_func_start sub_8059D48 -sub_8059D48: - push {lr} - movs r2, 0x1 - bl ParalyzeStatusTarget - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_8059D48 - - thumb_func_start sub_8059D58 -sub_8059D58: - push {r4-r7,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r6, r1, 0 - movs r7, 0 - movs r4, 0x80 - lsls r4, 1 - str r3, [sp] - adds r3, r4, 0 - bl sub_8055640 - cmp r0, 0 - beq _08059D8E - movs r7, 0x1 - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0 - bl sub_805727C - lsls r0, 24 - cmp r0, 0 - beq _08059D8E - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0 - bl ParalyzeStatusTarget -_08059D8E: - adds r0, r7, 0 - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8059D58 - - thumb_func_start sub_8059D98 -sub_8059D98: - push {lr} - bl ImmobilizedStatusTarget - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_8059D98 - - thumb_func_start sub_8059DA4 -sub_8059DA4: - push {lr} - movs r2, 0x1 - bl PoisonedStatusTarget - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_8059DA4 - - thumb_func_start sub_8059DB4 -sub_8059DB4: - push {lr} - movs r2, 0x1 - bl BadlyPoisonedStatusTarget - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_8059DB4 - - thumb_func_start sub_8059DC4 -sub_8059DC4: - push {r4-r7,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r6, r1, 0 - movs r7, 0 - movs r4, 0x80 - lsls r4, 1 - str r3, [sp] - adds r3, r4, 0 - bl sub_8055640 - cmp r0, 0 - beq _08059DFE - movs r7, 0x1 - ldr r0, _08059E08 - movs r1, 0 - ldrsh r2, [r0, r1] - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_805727C - lsls r0, 24 - cmp r0, 0 - beq _08059DFE - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0 - bl BadlyPoisonedStatusTarget -_08059DFE: - adds r0, r7, 0 - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08059E08: .4byte gUnknown_80F4DCA - thumb_func_end sub_8059DC4 - - thumb_func_start sub_8059E0C -sub_8059E0C: - push {r4-r7,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r6, r1, 0 - movs r7, 0 - movs r4, 0x80 - lsls r4, 1 - str r3, [sp] - adds r3, r4, 0 - bl sub_8055640 - cmp r0, 0 - beq _08059E46 - movs r7, 0x1 - ldr r0, _08059E50 - movs r1, 0 - ldrsh r2, [r0, r1] - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_805727C - lsls r0, 24 - cmp r0, 0 - beq _08059E46 - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0 - bl PoisonedStatusTarget -_08059E46: - adds r0, r7, 0 - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08059E50: .4byte gUnknown_80F4DBE - thumb_func_end sub_8059E0C - - thumb_func_start sub_8059E54 -sub_8059E54: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x2C - adds r6, r0, 0 - mov r8, r1 - adds r7, r2, 0 - adds r1, r3, 0 - ldr r0, [sp, 0x48] - lsls r0, 24 - movs r2, 0 - mov r9, r2 - cmp r0, 0 - bne _08059E8A - movs r3, 0x80 - lsls r3, 1 - str r1, [sp] - adds r0, r6, 0 - mov r1, r8 - adds r2, r7, 0 - bl sub_8055640 - negs r1, r0 - orrs r1, r0 - lsrs r1, 31 - mov r9, r1 -_08059E8A: - mov r0, r9 - cmp r0, 0 - bne _08059F1A - adds r0, r6, 0 - adds r1, r7, 0 - bl GetMoveTypeForMonster - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - adds r1, r7, 0 - bl GetMovePower - adds r5, r0, 0 - adds r0, r7, 0 - bl GetMoveCritChance - str r0, [sp] - add r2, sp, 0x18 - str r2, [sp, 0x4] - movs r0, 0x80 - lsls r0, 1 - str r0, [sp, 0x8] - ldrh r0, [r7, 0x2] - str r0, [sp, 0xC] - mov r0, r9 - str r0, [sp, 0x10] - adds r0, r6, 0 - mov r1, r8 - adds r2, r4, 0 - adds r3, r5, 0 - bl sub_806EAF4 - ldr r0, _08059F2C - ldr r1, [r6, 0x70] - movs r2, 0 - bl SetMessageArgument_2 - ldr r0, _08059F30 - ldr r2, [r0] - adds r0, r6, 0 - mov r1, r8 - bl sub_80522F4 - ldr r0, [sp, 0x18] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - str r0, [sp, 0x18] - cmp r0, 0 - bne _08059EF6 - movs r0, 0x1 - str r0, [sp, 0x18] -_08059EF6: - ldr r2, [sp, 0x18] - add r0, sp, 0x28 - str r0, [sp] - mov r0, r9 - str r0, [sp, 0x4] - ldr r0, _08059F34 - str r0, [sp, 0x8] - movs r0, 0x13 - str r0, [sp, 0xC] - movs r0, 0x1 - str r0, [sp, 0x10] - mov r0, r9 - str r0, [sp, 0x14] - adds r0, r6, 0 - adds r1, r6, 0 - movs r3, 0 - bl sub_806F370 -_08059F1A: - mov r0, r9 - add sp, 0x2C - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08059F2C: .4byte gAvailablePokemonNames -_08059F30: .4byte gUnknown_80FC7C8 -_08059F34: .4byte 0x000001f7 - thumb_func_end sub_8059E54 - - thumb_func_start sub_8059F38 -sub_8059F38: - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r4, r0, 0 - adds r6, r1, 0 - adds r5, r2, 0 - adds r7, r3, 0 - movs r0, 0 - mov r8, r0 - adds r0, r4, 0 - adds r1, r5, 0 - bl MoveMatchesChargingStatus - lsls r0, 24 - cmp r0, 0 - beq _08059FA0 - ldr r0, _08059F98 - ldr r3, [r0] - str r7, [sp] - adds r0, r4, 0 - adds r1, r6, 0 - adds r2, r5, 0 - bl sub_8055640 - cmp r0, 0 - beq _08059F90 - movs r1, 0x1 - mov r8, r1 - ldr r0, _08059F9C - movs r1, 0 - ldrsh r2, [r0, r1] - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_805727C - lsls r0, 24 - cmp r0, 0 - beq _08059F90 - adds r0, r4, 0 - adds r1, r6, 0 - movs r2, 0 - bl ParalyzeStatusTarget -_08059F90: - adds r0, r4, 0 - bl sub_8079764 - b _08059FB6 - .align 2, 0 -_08059F98: .4byte gUnknown_80F4F60 -_08059F9C: .4byte gUnknown_80F4DCC -_08059FA0: - ldr r0, _08059FC4 - ldr r0, [r0] - str r0, [sp] - adds r0, r4, 0 - adds r1, r4, 0 - movs r2, 0x8 - adds r3, r5, 0 - bl SetChargeStatusTarget - movs r0, 0x1 - mov r8, r0 -_08059FB6: - mov r0, r8 - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08059FC4: .4byte gUnknown_80FAD10 - thumb_func_end sub_8059F38 - - thumb_func_start sub_8059FC8 -sub_8059FC8: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x2C - adds r6, r0, 0 - mov r8, r1 - adds r7, r2, 0 - adds r1, r3, 0 - ldr r0, [sp, 0x48] - lsls r0, 24 - movs r2, 0 - mov r9, r2 - cmp r0, 0 - bne _08059FFE - movs r3, 0x80 - lsls r3, 2 - str r1, [sp] - adds r0, r6, 0 - mov r1, r8 - adds r2, r7, 0 - bl sub_8055640 - negs r1, r0 - orrs r1, r0 - lsrs r1, 31 - mov r9, r1 -_08059FFE: - mov r0, r9 - cmp r0, 0 - bne _0805A090 - adds r0, r6, 0 - adds r1, r7, 0 - bl GetMoveTypeForMonster - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - adds r1, r7, 0 - bl GetMovePower - adds r5, r0, 0 - adds r0, r7, 0 - bl GetMoveCritChance - str r0, [sp] - add r2, sp, 0x18 - str r2, [sp, 0x4] - movs r0, 0x80 - lsls r0, 2 - str r0, [sp, 0x8] - ldrh r0, [r7, 0x2] - str r0, [sp, 0xC] - mov r0, r9 - str r0, [sp, 0x10] - adds r0, r6, 0 - mov r1, r8 - adds r2, r4, 0 - adds r3, r5, 0 - bl sub_806EAF4 - ldr r0, _0805A0A0 - ldr r1, [r6, 0x70] - movs r2, 0 - bl SetMessageArgument_2 - ldr r0, _0805A0A4 - ldr r2, [r0] - adds r0, r6, 0 - mov r1, r8 - bl sub_80522F4 - ldr r0, [sp, 0x18] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - str r0, [sp, 0x18] - cmp r0, 0 - bne _0805A06A - movs r0, 0x1 - str r0, [sp, 0x18] -_0805A06A: - ldr r2, [sp, 0x18] - add r0, sp, 0x28 - str r0, [sp] - mov r0, r9 - str r0, [sp, 0x4] - movs r0, 0xFC - lsls r0, 1 - str r0, [sp, 0x8] - movs r0, 0x13 - str r0, [sp, 0xC] - movs r0, 0x1 - str r0, [sp, 0x10] - mov r0, r9 - str r0, [sp, 0x14] - adds r0, r6, 0 - adds r1, r6, 0 - movs r3, 0 - bl sub_806F370 -_0805A090: - mov r0, r9 - add sp, 0x2C - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0805A0A0: .4byte gAvailablePokemonNames -_0805A0A4: .4byte gUnknown_80FC7C8 - thumb_func_end sub_8059FC8 - - thumb_func_start sub_805A0A8 -sub_805A0A8: - push {r4-r7,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r6, r1, 0 - movs r7, 0 - movs r4, 0x80 - lsls r4, 1 - str r3, [sp] - adds r3, r4, 0 - bl sub_8055640 - cmp r0, 0 - beq _0805A114 - movs r7, 0x1 - ldr r0, _0805A0F8 - movs r1, 0 - ldrsh r2, [r0, r1] - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_805727C - lsls r0, 24 - cmp r0, 0 - beq _0805A114 - movs r0, 0x3 - bl DungeonRandInt - cmp r0, 0x1 - beq _0805A0FC - cmp r0, 0x1 - ble _0805A0EA - cmp r0, 0x2 - beq _0805A10A -_0805A0EA: - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0 - bl ParalyzeStatusTarget - b _0805A114 - .align 2, 0 -_0805A0F8: .4byte gUnknown_80F4DFC -_0805A0FC: - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0 - movs r3, 0 - bl BurnedStatusTarget - b _0805A114 -_0805A10A: - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0 - bl FrozenStatusTarget -_0805A114: - adds r0, r7, 0 - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_805A0A8 - - thumb_func_start sub_805A120 -sub_805A120: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r6, r0, 0 - adds r5, r1, 0 - movs r0, 0 - mov r10, r0 - ldr r1, [r6, 0x70] - mov r9, r1 - mov r7, r9 - ldr r2, [r5, 0x70] - mov r8, r2 - mov r0, r8 - str r0, [sp] - ldr r4, _0805A16C - adds r0, r4, 0 - adds r1, r6, 0 - movs r2, 0 - bl SetMessageArgument - adds r4, 0x50 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0 - bl SetMessageArgument - adds r0, r5, 0 - movs r1, 0x2C - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _0805A174 - ldr r0, _0805A170 - b _0805A1B8 - .align 2, 0 -_0805A16C: .4byte gAvailablePokemonNames -_0805A170: .4byte gUnknown_80FCCE4 -_0805A174: - adds r0, r5, 0 - movs r1, 0x24 - bl HasHeldItem - lsls r0, 24 - cmp r0, 0 - beq _0805A18C - ldr r0, _0805A188 - b _0805A1B8 - .align 2, 0 -_0805A188: .4byte gUnknown_80FD578 -_0805A18C: - mov r0, r9 - adds r0, 0x60 - mov r2, r8 - adds r2, 0x60 - ldrb r1, [r0] - movs r4, 0x1 - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - bne _0805A1A2 - mov r10, r4 -_0805A1A2: - ldrb r1, [r2] - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - bne _0805A1B0 - movs r1, 0x1 - mov r10, r1 -_0805A1B0: - mov r2, r10 - cmp r2, 0 - beq _0805A1CC - ldr r0, _0805A1C8 -_0805A1B8: - ldr r2, [r0] - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_80522F4 - movs r0, 0 - b _0805A1FC - .align 2, 0 -_0805A1C8: .4byte gUnknown_80FC7AC -_0805A1CC: - ldr r0, [r7, 0x60] - ldr r2, [sp] - ldr r1, [r2, 0x60] - str r1, [r7, 0x60] - str r0, [r2, 0x60] - adds r0, r6, 0 - bl sub_806A6E8 - adds r0, r5, 0 - bl sub_806A6E8 - adds r1, r7, 0 - adds r1, 0xFB - ldrb r0, [r1] - cmp r0, 0 - bne _0805A1EE - strb r4, [r1] -_0805A1EE: - ldr r0, _0805A20C - ldr r2, [r0] - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_80522F4 - movs r0, 0x1 -_0805A1FC: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0805A20C: .4byte gUnknown_80FC790 - thumb_func_end sub_805A120 - - thumb_func_start sub_805A210 -sub_805A210: - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r3, 0 - ldr r4, _0805A238 - ldr r3, [r4] - adds r3, 0x1 - str r3, [r4] - lsls r3, 8 - str r5, [sp] - bl sub_8055640 - adds r1, r0, 0 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0805A238: .4byte gUnknown_202F210 - thumb_func_end sub_805A210 - - thumb_func_start sub_805A23C -sub_805A23C: - push {lr} - ldrh r0, [r2, 0x2] - cmp r0, 0xD4 - bne _0805A24C - movs r0, 0 - bl sub_807EA30 - b _0805A252 -_0805A24C: - movs r0, 0x1 - bl sub_807EA30 -_0805A252: - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_805A23C - - thumb_func_start sub_805A258 -sub_805A258: - push {r4-r7,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r6, r1, 0 - movs r7, 0 - movs r4, 0x80 - lsls r4, 1 - str r3, [sp] - adds r3, r4, 0 - bl sub_8055640 - cmp r0, 0 - beq _0805A292 - movs r7, 0x1 - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0 - bl sub_805727C - lsls r0, 24 - cmp r0, 0 - beq _0805A292 - ldr r0, _0805A29C - ldr r2, [r0] - adds r0, r5, 0 - adds r1, r6, 0 - movs r3, 0 - bl LowerAccuracyStageTarget -_0805A292: - adds r0, r7, 0 - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0805A29C: .4byte gUnknown_8106A4C - thumb_func_end sub_805A258 - - thumb_func_start sub_805A2A0 -sub_805A2A0: - push {lr} - bl sub_805BA50 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_805A2A0 - - thumb_func_start sub_805A2B0 -sub_805A2B0: - push {lr} - ldr r2, _0805A2C4 - ldr r2, [r2] - movs r3, 0x2 - bl RaiseDefenseStageTarget - movs r0, 0x1 - pop {r1} - bx r1 - .align 2, 0 -_0805A2C4: .4byte gUnknown_8106A50 - thumb_func_end sub_805A2B0 - - thumb_func_start sub_805A2C8 -sub_805A2C8: - push {lr} - sub sp, 0x8 - ldr r2, _0805A2E4 - ldr r2, [r2] - movs r3, 0x1 - str r3, [sp] - str r3, [sp, 0x4] - bl LowerAttackStageTarget - movs r0, 0x1 - add sp, 0x8 - pop {r1} - bx r1 - .align 2, 0 -_0805A2E4: .4byte gUnknown_8106A4C - thumb_func_end sub_805A2C8 - - thumb_func_start sub_805A2E8 -sub_805A2E8: - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - movs r6, 0 - ldr r0, [r1, 0x70] - adds r0, 0xC0 - ldrb r0, [r0] - movs r4, 0x80 - lsls r4, 1 - cmp r0, 0x9 - bne _0805A302 - movs r4, 0x80 - lsls r4, 2 -_0805A302: - str r3, [sp] - adds r0, r5, 0 - adds r3, r4, 0 - bl sub_8055640 - cmp r0, 0 - beq _0805A312 - movs r6, 0x1 -_0805A312: - adds r0, r6, 0 - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_805A2E8 - - thumb_func_start sub_805A31C -sub_805A31C: - push {r4-r7,lr} - adds r5, r0, 0 - adds r6, r1, 0 - ldr r4, [r5, 0x70] - ldr r7, [r6, 0x70] - adds r0, r6, 0 - movs r1, 0x35 - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _0805A348 - ldr r0, _0805A344 - ldr r2, [r0] - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_80522F4 - movs r0, 0 - b _0805A386 - .align 2, 0 -_0805A344: .4byte gUnknown_80FC854 -_0805A348: - adds r0, r7, 0 - adds r0, 0x5E - ldrb r0, [r0] - adds r1, r4, 0 - adds r1, 0x5E - strb r0, [r1] - adds r0, r7, 0 - adds r0, 0x5F - ldrb r0, [r0] - adds r1, 0x1 - strb r0, [r1] - ldr r0, _0805A38C - ldr r0, [r0] - movs r2, 0x1 - strb r2, [r0, 0xC] - adds r1, 0x9C - ldrb r0, [r1] - cmp r0, 0 - bne _0805A370 - strb r2, [r1] -_0805A370: - ldr r0, _0805A390 - ldr r2, [r0] - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_80522F4 - adds r0, r5, 0 - adds r1, r5, 0 - bl sub_806ABAC - movs r0, 0x1 -_0805A386: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0805A38C: .4byte gDungeon -_0805A390: .4byte gUnknown_80FC81C - thumb_func_end sub_805A31C - - thumb_func_start sub_805A394 -sub_805A394: - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldr r0, _0805A3CC - ldr r0, [r0] - ldr r1, _0805A3D0 - ldrh r1, [r1] - ldr r2, _0805A3D4 - adds r0, r2 - strb r1, [r0] - movs r0, 0x1 - movs r1, 0 - bl sub_807EAA0 - lsls r0, 24 - cmp r0, 0 - bne _0805A3C2 - ldr r0, _0805A3D8 - ldr r2, [r0] - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80522F4 -_0805A3C2: - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0805A3CC: .4byte gDungeon -_0805A3D0: .4byte gUnknown_80F4F42 -_0805A3D4: .4byte 0x0000e268 -_0805A3D8: .4byte gUnknown_80FCF7C - thumb_func_end sub_805A394 - - thumb_func_start sub_805A3DC -sub_805A3DC: - push {lr} - sub sp, 0x8 - ldr r2, _0805A3F8 - ldr r2, [r2] - movs r3, 0x1 - str r3, [sp] - str r3, [sp, 0x4] - bl LowerDefenseStageTarget - movs r0, 0x1 - add sp, 0x8 - pop {r1} - bx r1 - .align 2, 0 -_0805A3F8: .4byte gUnknown_8106A4C - thumb_func_end sub_805A3DC - - thumb_func_start sub_805A3FC -sub_805A3FC: - push {lr} - bl WishStatusTarget - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_805A3FC - - thumb_func_start sub_805A408 -sub_805A408: - push {r4-r7,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r6, r1, 0 - movs r7, 0 - movs r4, 0x80 - lsls r4, 1 - str r3, [sp] - adds r3, r4, 0 - bl sub_8055640 - cmp r0, 0 - beq _0805A442 - movs r7, 0x1 - ldr r0, _0805A44C - movs r1, 0 - ldrsh r2, [r0, r1] - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_805727C - lsls r0, 24 - cmp r0, 0 - beq _0805A442 - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0 - bl CringeStatusTarget -_0805A442: - adds r0, r7, 0 - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0805A44C: .4byte gUnknown_80F4DF2 - thumb_func_end sub_805A408 - - thumb_func_start sub_805A450 -sub_805A450: - push {lr} - ldr r2, _0805A460 - ldr r2, [r2] - bl sub_80522F4 - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0805A460: .4byte gUnknown_80FC730 - thumb_func_end sub_805A450 - - thumb_func_start sub_805A464 -sub_805A464: - push {r4-r7,lr} - sub sp, 0xC - adds r5, r0, 0 - adds r6, r1, 0 - movs r7, 0 - movs r4, 0x80 - lsls r4, 1 - str r3, [sp] - adds r3, r4, 0 - bl sub_8055640 - cmp r0, 0 - beq _0805A4B4 - movs r7, 0x1 - adds r0, r5, 0 - movs r1, 0 - bl sub_8057308 - lsls r0, 24 - cmp r0, 0 - beq _0805A4B4 - adds r0, r6, 0 - bl EntityExists - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _0805A4B4 - str r0, [sp, 0x8] - add r0, sp, 0x4 - movs r1, 0x69 - movs r2, 0x2 - bl sub_8045C28 - add r3, sp, 0x8 - adds r0, r5, 0 - adds r1, r6, 0 - add r2, sp, 0x4 - bl sub_805A7D4 -_0805A4B4: - adds r0, r7, 0 - add sp, 0xC - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_805A464 - - thumb_func_start sub_805A4C0 -sub_805A4C0: - push {lr} - ldr r2, _0805A4D0 - ldr r2, [r2] - bl sub_80522F4 - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0805A4D0: .4byte gUnknown_80FC74C - thumb_func_end sub_805A4C0 - - thumb_func_start sub_805A4D4 -sub_805A4D4: - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - ldr r1, _0805A4F8 - adds r0, r4, 0 - movs r2, 0 - bl CalculateStatusTurns - adds r2, r0, 0 - adds r0, r5, 0 - adds r1, r4, 0 - bl NappingStatusTarget - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0805A4F8: .4byte gUnknown_80F4E94 - thumb_func_end sub_805A4D4 - - thumb_func_start sub_805A4FC -sub_805A4FC: - push {lr} - bl IngrainedStatusTarget - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_805A4FC - - thumb_func_start sub_805A508 -sub_805A508: - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r3, r1, 0 - ldr r0, [r3, 0x70] - movs r1, 0x89 - lsls r1, 1 - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, 0 - beq _0805A540 - ldr r1, _0805A53C - lsls r0, 2 - adds r0, r1 - ldr r2, [r0] - movs r0, 0x1 - str r0, [sp] - adds r0, r5, 0 - adds r1, r3, 0 - movs r3, 0 - bl HealTargetHP - movs r0, 0 - strb r0, [r4] - b _0805A54C - .align 2, 0 -_0805A53C: .4byte gUnknown_80F51D4 -_0805A540: - ldr r0, _0805A558 - ldr r2, [r0] - adds r0, r5, 0 - adds r1, r3, 0 - bl sub_80522F4 -_0805A54C: - movs r0, 0x1 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0805A558: .4byte gUnknown_80FC770 - thumb_func_end sub_805A508 - - thumb_func_start sub_805A55C -sub_805A55C: - push {lr} - bl CurseStatusTarget - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_805A55C - - thumb_func_start sub_805A568 -sub_805A568: - push {r4,lr} - sub sp, 0x4 - movs r4, 0x80 - lsls r4, 1 - str r3, [sp] - adds r3, r4, 0 - bl sub_8055640 - adds r1, r0, 0 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_805A568 - - thumb_func_start sub_805A588 -sub_805A588: - push {r4-r7,lr} - sub sp, 0x8 - adds r6, r0, 0 - movs r7, 0 - movs r4, 0x80 - lsls r4, 1 - str r3, [sp] - adds r3, r4, 0 - bl sub_8055640 - cmp r0, 0 - beq _0805A5D8 - movs r7, 0x1 - adds r0, r6, 0 - adds r1, r6, 0 - movs r2, 0 - bl sub_805727C - lsls r0, 24 - cmp r0, 0 - beq _0805A5D8 - ldr r0, _0805A5E4 - ldr r5, [r0] - movs r4, 0 - str r4, [sp] - str r4, [sp, 0x4] - adds r0, r6, 0 - adds r1, r6, 0 - adds r2, r5, 0 - movs r3, 0x1 - bl LowerAttackStageTarget - str r4, [sp] - str r4, [sp, 0x4] - adds r0, r6, 0 - adds r1, r6, 0 - adds r2, r5, 0 - movs r3, 0x1 - bl LowerDefenseStageTarget -_0805A5D8: - adds r0, r7, 0 - add sp, 0x8 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0805A5E4: .4byte gUnknown_8106A4C - thumb_func_end sub_805A588 - - thumb_func_start sub_805A5E8 -sub_805A5E8: - push {r4-r7,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r7, r3, 0 - ldr r0, [sp, 0x18] - movs r6, 0 - movs r3, 0x80 - lsls r3, 1 - str r0, [sp] - adds r0, r5, 0 - bl sub_8055640 - cmp r0, 0 - beq _0805A632 - movs r6, 0x1 - ldr r0, _0805A63C - movs r1, 0 - ldrsh r2, [r0, r1] - adds r0, r5, 0 - adds r1, r5, 0 - bl sub_805727C - lsls r0, 24 - cmp r0, 0 - beq _0805A632 - ldr r4, [r5, 0x70] - adds r0, r5, 0 - adds r1, r5, 0 - adds r2, r7, 0 - movs r3, 0x1 - bl RaiseDefenseStageTarget - adds r4, 0xFB - ldrb r0, [r4] - cmp r0, 0 - bne _0805A632 - strb r6, [r4] -_0805A632: - adds r0, r6, 0 - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0805A63C: .4byte gUnknown_80F4DD2 - thumb_func_end sub_805A5E8 - - thumb_func_start SpitUpMoveAction -SpitUpMoveAction: - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r6, r1, 0 - adds r1, r3, 0 - ldr r0, [r5, 0x70] - movs r3, 0x89 - lsls r3, 1 - adds r4, r0, r3 - ldrb r0, [r4] - cmp r0, 0 - beq _0805A66C - adds r3, r0, 0 - lsls r3, 8 - str r1, [sp] - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_8055640 - movs r0, 0 - strb r0, [r4] - b _0805A678 -_0805A66C: - ldr r0, _0805A684 - ldr r2, [r0] - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_80522F4 -_0805A678: - movs r0, 0x1 - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0805A684: .4byte gUnknown_80FCA3C - thumb_func_end SpitUpMoveAction - - thumb_func_start sub_805A688 -sub_805A688: - push {r4-r7,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r6, r1, 0 - movs r7, 0 - movs r4, 0x80 - lsls r4, 1 - str r3, [sp] - adds r3, r4, 0 - bl sub_8055640 - cmp r0, 0 - beq _0805A6BE - movs r7, 0x1 - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0 - bl sub_805727C - lsls r0, 24 - cmp r0, 0 - beq _0805A6BE - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0 - bl ConfuseStatusTarget -_0805A6BE: - adds r0, r7, 0 - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_805A688 - - thumb_func_start sub_805A6C8 -sub_805A6C8: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - adds r6, r0, 0 - adds r5, r1, 0 - ldr r0, [r6, 0x70] - mov r9, r0 - ldr r7, [r5, 0x70] - mov r8, r7 - ldr r4, _0805A708 - adds r0, r4, 0 - adds r1, r6, 0 - movs r2, 0 - bl SetMessageArgument - adds r4, 0x50 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0 - bl SetMessageArgument - adds r0, r5, 0 - movs r1, 0x2C - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _0805A710 - ldr r0, _0805A70C - b _0805A73A - .align 2, 0 -_0805A708: .4byte gAvailablePokemonNames -_0805A70C: .4byte gUnknown_80FCCE8 -_0805A710: - adds r0, r5, 0 - movs r1, 0x24 - bl HasHeldItem - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _0805A728 - ldr r0, _0805A724 - b _0805A73A - .align 2, 0 -_0805A724: .4byte gUnknown_80FD57C -_0805A728: - ldr r0, [r7, 0x60] - str r0, [sp] - mov r0, sp - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0805A74C - ldr r0, _0805A748 -_0805A73A: - ldr r2, [r0] - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_80522F4 - movs r0, 0 - b _0805A7B4 - .align 2, 0 -_0805A748: .4byte gUnknown_80FD18C -_0805A74C: - mov r0, r8 - adds r0, 0x60 - strb r2, [r0, 0x2] - strb r2, [r0, 0x1] - strb r2, [r0] - ldr r0, _0805A7C4 - ldr r2, [r0] - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_80522F4 - ldr r4, _0805A7C8 - mov r3, r9 - adds r3, 0x46 - ldrb r0, [r3] - lsls r0, 2 - adds r0, r4 - ldrh r2, [r0] - ldr r0, _0805A7CC - ldr r1, [sp, 0x4] - ands r1, r0 - orrs r1, r2 - str r1, [sp, 0x4] - ldrb r0, [r3] - lsls r0, 2 - adds r0, r4 - ldrh r0, [r0, 0x2] - lsls r0, 16 - ldr r2, _0805A7D0 - ands r1, r2 - orrs r1, r0 - str r1, [sp, 0x4] - add r3, sp, 0x4 - adds r0, r6, 0 - adds r1, r5, 0 - mov r2, sp - bl sub_805A7D4 - adds r1, r5, 0x4 - adds r0, r5, 0 - bl sub_80706A4 - lsls r0, 24 - cmp r0, 0 - beq _0805A7B2 - adds r0, r6, 0 - adds r1, r5, 0 - movs r2, 0 - movs r3, 0 - bl sub_807D148 -_0805A7B2: - movs r0, 0x1 -_0805A7B4: - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0805A7C4: .4byte gUnknown_80FD170 -_0805A7C8: .4byte gAdjacentTileOffsets -_0805A7CC: .4byte 0xffff0000 -_0805A7D0: .4byte 0x0000ffff - thumb_func_end sub_805A6C8 - - thumb_func_start sub_805A7D4 -sub_805A7D4: - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x78 - mov r8, r0 - adds r4, r1, 0 - adds r6, r2, 0 - movs r0, 0x3 - str r0, [sp, 0x4] - add r0, sp, 0x28 - movs r5, 0 - strb r5, [r0] - add r1, sp, 0x24 - movs r0, 0x1 - strb r0, [r1] - mov r0, sp - adds r0, 0x26 - strb r5, [r0] - str r6, [sp, 0x74] - add r1, sp, 0x4 - ldrh r0, [r3] - ldrh r2, [r4, 0x4] - adds r0, r2 - strh r0, [r1, 0x4] - ldrh r0, [r3, 0x2] - ldrh r2, [r4, 0x6] - adds r0, r2 - strh r0, [r1, 0x6] - movs r1, 0x4 - ldrsh r0, [r4, r1] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - adds r1, 0x4 - lsls r1, 8 - movs r2, 0x6 - ldrsh r0, [r4, r2] - lsls r2, r0, 1 - adds r2, r0 - lsls r2, 3 - adds r2, 0x4 - lsls r2, 8 - add r0, sp, 0x4 - bl sub_8045394 - add r0, sp, 0x4 - strh r5, [r0, 0x26] - ldr r0, _0805A858 - add r1, sp, 0x4 - movs r2, 0 - bl SetMessageArgument - str r5, [sp] - mov r0, r8 - add r1, sp, 0x4 - adds r2, r6, 0 - movs r3, 0x1 - bl sub_804652C - add sp, 0x78 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0805A858: .4byte gUnknown_202DE58 - thumb_func_end sub_805A7D4 - - thumb_func_start sub_805A85C -sub_805A85C: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x30 - mov r8, r0 - adds r6, r1, 0 - mov r10, r2 - str r3, [sp, 0x24] - ldr r0, [r6, 0x4] - str r0, [sp, 0x18] - adds r0, r6, 0 - movs r1, 0xA - movs r2, 0x8 - bl sub_806CDD4 - movs r5, 0 -_0805A880: - movs r0, 0x3 - bl DungeonRandInt - adds r4, r0, 0 - movs r0, 0x3 - bl DungeonRandInt - adds r2, r0, 0 - subs r4, 0x1 - subs r2, 0x1 - cmp r4, 0 - bne _0805A89C - cmp r2, 0 - beq _0805A8BC -_0805A89C: - ldrh r0, [r6, 0x4] - adds r0, r4 - lsls r0, 16 - ldrh r1, [r6, 0x6] - adds r1, r2 - lsls r1, 16 - lsrs r0, 16 - orrs r0, r1 - str r0, [sp, 0x18] - adds r0, r6, 0 - add r1, sp, 0x18 - bl sub_80705F0 - lsls r0, 24 - cmp r0, 0 - beq _0805A8C2 -_0805A8BC: - adds r5, 0x1 - cmp r5, 0x27 - ble _0805A880 -_0805A8C2: - cmp r5, 0x28 - bne _0805A8DC - ldr r0, _0805A8D8 - ldr r2, [r0] - mov r0, r8 - adds r1, r6, 0 - bl sub_80522F4 - movs r0, 0 - b _0805AAB8 - .align 2, 0 -_0805A8D8: .4byte gUnknown_80FEBDC -_0805A8DC: - add r0, sp, 0x18 - movs r2, 0 - ldrsh r1, [r0, r2] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 11 - movs r3, 0xC0 - lsls r3, 4 - adds r0, r3 - ldr r1, [r6, 0xC] - subs r0, r1 - movs r1, 0xC - bl __divsi3 - str r0, [sp, 0x28] - add r0, sp, 0x18 - movs r2, 0x2 - ldrsh r1, [r0, r2] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 11 - movs r3, 0x80 - lsls r3, 5 - adds r0, r3 - ldr r1, [r6, 0x10] - subs r0, r1 - movs r1, 0xC - bl __divsi3 - str r0, [sp, 0x2C] - adds r4, r6, 0x4 - adds r0, r4, 0 - bl sub_803F428 - lsls r0, 24 - mov r9, r4 - cmp r0, 0 - bne _0805A934 - add r0, sp, 0x18 - bl sub_803F428 - lsls r0, 24 - cmp r0, 0 - beq _0805A94C -_0805A934: - movs r5, 0xB -_0805A936: - adds r0, r6, 0 - ldr r1, [sp, 0x28] - ldr r2, [sp, 0x2C] - bl sub_804539C - movs r0, 0x2C - bl sub_803E46C - subs r5, 0x1 - cmp r5, 0 - bge _0805A936 -_0805A94C: - add r0, sp, 0x18 - movs r1, 0 - ldrsh r0, [r0, r1] - add r4, sp, 0x18 - movs r2, 0x2 - ldrsh r1, [r4, r2] - bl GetTileSafe - ldr r5, [r0, 0x10] - cmp r5, 0 - beq _0805AA4C - adds r0, r5, 0 - bl GetEntityType - adds r7, r0, 0 - cmp r7, 0x1 - bne _0805A9FE - add r4, sp, 0x1C - ldr r1, _0805AA44 - adds r0, r4, 0 - bl InitPokemonMove - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80571F0 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _0805A9B0 - mov r0, r10 - ldr r1, [sp, 0x24] - bl sub_8057600 - lsls r0, 16 - asrs r0, 16 - ldr r1, _0805AA48 - movs r3, 0 - ldrsh r2, [r1, r3] - str r4, [sp] - str r4, [sp, 0x4] - str r0, [sp, 0x8] - str r4, [sp, 0xC] - str r7, [sp, 0x10] - str r4, [sp, 0x14] - mov r0, r8 - adds r1, r5, 0 - movs r3, 0 - bl sub_806F370 -_0805A9B0: - bl sub_8044B28 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _0805AAB6 - mov r0, r8 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _0805AAB6 - ldr r0, _0805AA48 - movs r1, 0 - ldrsh r2, [r0, r1] - str r4, [sp] - str r4, [sp, 0x4] - movs r0, 0xFF - lsls r0, 1 - str r0, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - str r4, [sp, 0x14] - mov r0, r8 - mov r1, r8 - movs r3, 0 - bl sub_806F370 - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - bne _0805AAB6 - mov r0, r8 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _0805AAB6 -_0805A9FE: - adds r0, r6, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _0805AAB6 - mov r0, r9 - bl sub_803F428 - lsls r0, 24 - cmp r0, 0 - bne _0805AA22 - add r0, sp, 0x18 - bl sub_803F428 - lsls r0, 24 - cmp r0, 0 - beq _0805AA5E -_0805AA22: - ldr r2, [sp, 0x28] - negs r7, r2 - ldr r3, [sp, 0x2C] - negs r4, r3 - movs r5, 0xB -_0805AA2C: - adds r0, r6, 0 - adds r1, r7, 0 - adds r2, r4, 0 - bl sub_804539C - movs r0, 0x2C - bl sub_803E46C - subs r5, 0x1 - cmp r5, 0 - bge _0805AA2C - b _0805AA5E - .align 2, 0 -_0805AA44: .4byte 0x00000163 -_0805AA48: .4byte gUnknown_80F4F82 -_0805AA4C: - add r0, sp, 0x18 - movs r2, 0 - ldrsh r1, [r0, r2] - movs r3, 0x2 - ldrsh r2, [r4, r3] - adds r0, r6, 0 - movs r3, 0 - bl sub_80694C0 -_0805AA5E: - adds r0, r6, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _0805AAB6 - adds r0, r6, 0 - movs r1, 0 - bl sub_804535C - mov r1, r9 - adds r0, r6, 0 - bl sub_80706A4 - lsls r0, 24 - cmp r0, 0 - beq _0805AA8C - mov r0, r8 - adds r1, r6, 0 - movs r2, 0 - movs r3, 0 - bl sub_807D148 -_0805AA8C: - ldr r0, [r6, 0x70] - ldrb r0, [r0, 0x7] - cmp r0, 0 - beq _0805AAA0 - mov r0, r9 - bl sub_804AC20 - movs r0, 0 - bl sub_807EC28 -_0805AAA0: - adds r0, r6, 0 - bl sub_806A5B8 - ldr r0, _0805AAC8 - ldr r0, [r0] - ldr r1, _0805AACC - adds r0, r1 - ldrb r1, [r0] - adds r0, r6, 0 - bl sub_8075900 -_0805AAB6: - movs r0, 0x1 -_0805AAB8: - add sp, 0x30 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0805AAC8: .4byte gDungeon -_0805AACC: .4byte 0x00003a08 - thumb_func_end sub_805A85C - - thumb_func_start sub_805AAD0 -sub_805AAD0: - push {lr} - adds r1, r0, 0 - bl FixedDamageStatusTarget - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_805AAD0 - - thumb_func_start sub_805AAE0 -sub_805AAE0: - push {r4-r7,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r6, r1, 0 - ldr r0, [r4, 0x70] - movs r7, 0 - movs r1, 0x9E - lsls r1, 1 - adds r5, r0, r1 - ldr r0, [r5] - bl RoundUpFixedPoint - cmp r0, 0x1 - ble _0805AB20 - ldr r0, _0805AB1C - ldr r2, [r0] - adds r0, r4, 0 - adds r1, r6, 0 - movs r3, 0x63 - bl RaiseAttackStageTarget - mov r0, sp - movs r1, 0x1 - bl sub_80943A0 - ldr r0, [sp] - str r0, [r5] - movs r7, 0x1 - b _0805AB36 - .align 2, 0 -_0805AB1C: .4byte gUnknown_8106A4C -_0805AB20: - ldr r0, _0805AB40 - adds r1, r4, 0 - movs r2, 0 - bl SetMessageArgument - ldr r0, _0805AB44 - ldr r2, [r0] - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_80522F4 -_0805AB36: - adds r0, r7, 0 - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0805AB40: .4byte gAvailablePokemonNames -_0805AB44: .4byte gUnknown_80FC5CC - thumb_func_end sub_805AAE0 - - thumb_func_start sub_805AB48 -sub_805AB48: - push {lr} - bl LightScreenStatusTarget - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_805AB48 - - thumb_func_start sub_805AB54 -sub_805AB54: - push {r4-r7,lr} - sub sp, 0x8 - adds r5, r0, 0 - adds r6, r1, 0 - movs r7, 0 - movs r4, 0x80 - lsls r4, 1 - str r3, [sp] - adds r3, r4, 0 - bl sub_8055640 - cmp r0, 0 - bne _0805AB70 - b _0805AC86 -_0805AB70: - movs r7, 0x1 - ldr r0, _0805ABA8 - movs r1, 0 - ldrsh r2, [r0, r1] - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_805727C - lsls r0, 24 - cmp r0, 0 - bne _0805AB88 - b _0805AC86 -_0805AB88: - ldr r1, _0805ABAC - ldr r0, _0805ABB0 - ldr r0, [r0] - ldr r2, _0805ABB4 - adds r0, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x8 - bhi _0805AC7C - lsls r0, 2 - ldr r1, _0805ABB8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0805ABA8: .4byte gUnknown_80F4E06 -_0805ABAC: .4byte gUnknown_80F5978 -_0805ABB0: .4byte gDungeon -_0805ABB4: .4byte 0x00003a0e -_0805ABB8: .4byte _0805ABBC - .align 2, 0 -_0805ABBC: - .4byte _0805ABE0 - .4byte _0805ABEC - .4byte _0805AC08 - .4byte _0805AC16 - .4byte _0805AC34 - .4byte _0805AC50 - .4byte _0805AC64 - .4byte _0805AC70 - .4byte _0805AC7C -_0805ABE0: - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0 - bl PoisonedStatusTarget - b _0805AC86 -_0805ABEC: - ldr r1, _0805AC04 - adds r0, r6, 0 - movs r2, 0x1 - bl CalculateStatusTurns - adds r2, r0, 0 - adds r0, r5, 0 - adds r1, r6, 0 - movs r3, 0 - bl sub_8075C58 - b _0805AC86 - .align 2, 0 -_0805AC04: .4byte gUnknown_80F4E74 -_0805AC08: - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0x1 - movs r3, 0 - bl LowerMovementSpeedTarget - b _0805AC86 -_0805AC16: - ldr r0, _0805AC30 - ldr r2, [r0] - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - adds r0, r5, 0 - adds r1, r6, 0 - movs r3, 0x1 - bl LowerAttackStageTarget - b _0805AC86 - .align 2, 0 -_0805AC30: .4byte gUnknown_8106A4C -_0805AC34: - ldr r0, _0805AC4C - ldr r2, [r0] - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - adds r0, r5, 0 - adds r1, r6, 0 - movs r3, 0x1 - bl LowerDefenseStageTarget - b _0805AC86 - .align 2, 0 -_0805AC4C: .4byte gUnknown_8106A4C -_0805AC50: - ldr r0, _0805AC60 - ldr r2, [r0] - adds r0, r5, 0 - adds r1, r6, 0 - movs r3, 0 - bl LowerAccuracyStageTarget - b _0805AC86 - .align 2, 0 -_0805AC60: .4byte gUnknown_8106A4C -_0805AC64: - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0 - bl ConfuseStatusTarget - b _0805AC86 -_0805AC70: - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0 - bl CringeStatusTarget - b _0805AC86 -_0805AC7C: - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0 - bl ParalyzeStatusTarget -_0805AC86: - adds r0, r7, 0 - add sp, 0x8 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_805AB54 - - thumb_func_start sub_805AC90 -sub_805AC90: - push {r4-r7,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r6, r1, 0 - movs r7, 0 - movs r4, 0x80 - lsls r4, 1 - str r3, [sp] - adds r3, r4, 0 - bl sub_8055640 - cmp r0, 0 - beq _0805ACCA - movs r7, 0x1 - ldr r0, _0805ACD4 - movs r1, 0 - ldrsh r2, [r0, r1] - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_805727C - lsls r0, 24 - cmp r0, 0 - beq _0805ACCA - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0 - bl ConfuseStatusTarget -_0805ACCA: - adds r0, r7, 0 - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0805ACD4: .4byte gUnknown_80F4DFA - thumb_func_end sub_805AC90 - - thumb_func_start sub_805ACD8 -sub_805ACD8: - push {r4-r6,lr} - adds r5, r0, 0 - adds r6, r1, 0 - ldr r0, _0805AD00 - ldr r4, [r0] - adds r0, r5, 0 - adds r2, r4, 0 - movs r3, 0x1 - bl RaiseAttackStageTarget - adds r0, r5, 0 - adds r1, r6, 0 - adds r2, r4, 0 - movs r3, 0x1 - bl RaiseDefenseStageTarget - movs r0, 0x1 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0805AD00: .4byte gUnknown_8106A4C - thumb_func_end sub_805ACD8 - - thumb_func_start sub_805AD04 -sub_805AD04: - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r4, r1, 0 - ldr r1, _0805AD30 - adds r0, r4, 0 - movs r2, 0x1 - bl CalculateStatusTurns - adds r3, r0, 0 - movs r0, 0x1 - str r0, [sp] - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x1 - bl PausedStatusTarget - movs r0, 0x1 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0805AD30: .4byte gUnknown_80F4EE0 - thumb_func_end sub_805AD04 - - thumb_func_start sub_805AD34 -sub_805AD34: - push {lr} - sub sp, 0x8 - ldr r2, _0805AD50 - ldr r2, [r2] - movs r3, 0x1 - str r3, [sp] - str r3, [sp, 0x4] - movs r3, 0x2 - bl LowerAttackStageTarget - movs r0, 0x1 - add sp, 0x8 - pop {r1} - bx r1 - .align 2, 0 -_0805AD50: .4byte gUnknown_8106A4C - thumb_func_end sub_805AD34 - - thumb_func_start sub_805AD54 -sub_805AD54: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r5, r0, 0 - mov r9, r1 - movs r0, 0 - mov r10, r0 - ldr r1, [r5, 0x70] - mov r8, r1 - ldrb r0, [r1, 0x6] - cmp r0, 0 - beq _0805AD88 - ldr r0, _0805AD80 - ldr r0, [r0] - ldr r1, _0805AD84 - adds r7, r0, r1 - movs r0, 0x10 - b _0805AD92 - .align 2, 0 -_0805AD80: .4byte gDungeon -_0805AD84: .4byte 0x0001358c -_0805AD88: - ldr r0, _0805AD98 - ldr r0, [r0] - ldr r1, _0805AD9C - adds r7, r0, r1 - movs r0, 0x4 -_0805AD92: - str r0, [sp] - movs r6, 0 - b _0805AE0E - .align 2, 0 -_0805AD98: .4byte gDungeon -_0805AD9C: .4byte 0x0001357c -_0805ADA0: - lsls r0, r6, 2 - adds r0, r7 - ldr r4, [r0] - adds r0, r4, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _0805AE0C - cmp r5, r4 - beq _0805AE0C - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0 - bl CanTarget - lsls r0, 24 - cmp r0, 0 - bne _0805AE0C - ldr r1, [r4, 0x70] - adds r0, r1, 0 - adds r0, 0xA4 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0805AE0C - adds r0, r1, 0 - adds r0, 0x40 - ldrb r0, [r0] - cmp r0, 0x4A - beq _0805ADE2 - cmp r0, 0x47 - bne _0805ADE6 -_0805ADE2: - movs r0, 0x1 - b _0805ADE8 -_0805ADE6: - movs r0, 0 -_0805ADE8: - cmp r0, 0 - bne _0805AE0C - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x2 - mov r3, r9 - adds r3, 0x4 - bl sub_807D148 - movs r0, 0x1 - mov r10, r0 - mov r1, r8 - adds r1, 0xFB - ldrb r0, [r1] - cmp r0, 0 - bne _0805AE0C - mov r0, r10 - strb r0, [r1] -_0805AE0C: - adds r6, 0x1 -_0805AE0E: - ldr r1, [sp] - cmp r6, r1 - blt _0805ADA0 - mov r0, r10 - cmp r0, 0 - bne _0805AE26 - ldr r0, _0805AE38 - ldr r2, [r0] - adds r0, r5, 0 - mov r1, r9 - bl sub_80522F4 -_0805AE26: - mov r0, r10 - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0805AE38: .4byte gUnknown_81004EC - thumb_func_end sub_805AD54 - - thumb_func_start sub_805AE3C -sub_805AE3C: - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - adds r5, r0, 0 - adds r6, r1, 0 - mov r8, r2 - adds r4, r3, 0 - bl SendThawedMessage - movs r3, 0x80 - lsls r3, 2 - str r4, [sp] - adds r0, r5, 0 - adds r1, r6, 0 - mov r2, r8 - bl sub_8055640 - adds r1, r0, 0 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_805AE3C - - thumb_func_start sub_805AE74 -sub_805AE74: - push {r4-r7,lr} - sub sp, 0x8 - adds r5, r0, 0 - adds r6, r1, 0 - movs r7, 0 - movs r4, 0x80 - lsls r4, 1 - str r3, [sp] - adds r3, r4, 0 - bl sub_8055640 - cmp r0, 0 - beq _0805AEB8 - movs r7, 0x1 - ldr r0, _0805AEC4 - movs r1, 0 - ldrsh r2, [r0, r1] - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_805727C - lsls r0, 24 - cmp r0, 0 - beq _0805AEB8 - ldr r0, _0805AEC8 - ldr r2, [r0] - str r7, [sp] - movs r0, 0 - str r0, [sp, 0x4] - adds r0, r5, 0 - adds r1, r6, 0 - movs r3, 0x1 - bl LowerDefenseStageTarget -_0805AEB8: - adds r0, r7, 0 - add sp, 0x8 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0805AEC4: .4byte gUnknown_80F4DDA -_0805AEC8: .4byte gUnknown_8106A4C - thumb_func_end sub_805AE74 - - thumb_func_start sub_805AECC -sub_805AECC: - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r6, r0, 0 - adds r7, r1, 0 - adds r5, r2, 0 - adds r4, r3, 0 - movs r0, 0 - mov r8, r0 - adds r0, r6, 0 - bl SendThawedMessage - movs r3, 0x80 - lsls r3, 1 - str r4, [sp] - adds r0, r6, 0 - adds r1, r7, 0 - adds r2, r5, 0 - bl sub_8055640 - cmp r0, 0 - beq _0805AF1E - movs r1, 0x1 - mov r8, r1 - ldr r0, _0805AF2C - movs r1, 0 - ldrsh r2, [r0, r1] - adds r0, r6, 0 - adds r1, r7, 0 - bl sub_805727C - lsls r0, 24 - cmp r0, 0 - beq _0805AF1E - adds r0, r6, 0 - adds r1, r7, 0 - movs r2, 0 - movs r3, 0 - bl BurnedStatusTarget -_0805AF1E: - mov r0, r8 - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0805AF2C: .4byte gUnknown_80F4DFE - thumb_func_end sub_805AECC - - thumb_func_start sub_805AF30 -sub_805AF30: - push {r4-r7,lr} - sub sp, 0x4 - adds r7, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - adds r4, r3, 0 - movs r0, 0x64 - bl DungeonRandInt - adds r1, r0, 0 - cmp r0, 0x9 - bgt _0805AF54 - str r4, [sp] - adds r0, r7, 0 - adds r1, r5, 0 - adds r2, r6, 0 - movs r3, 0x78 - b _0805AF92 -_0805AF54: - cmp r0, 0x1D - bgt _0805AF78 - ldr r0, [r5, 0x70] - movs r1, 0x10 - ldrsh r2, [r0, r1] - cmp r2, 0 - bge _0805AF64 - adds r2, 0x3 -_0805AF64: - asrs r2, 2 - movs r0, 0x1 - str r0, [sp] - adds r0, r7, 0 - adds r1, r5, 0 - movs r3, 0 - bl HealTargetHP - movs r0, 0x1 - b _0805AF9C -_0805AF78: - cmp r1, 0x3B - bgt _0805AF88 - str r4, [sp] - adds r0, r7, 0 - adds r1, r5, 0 - adds r2, r6, 0 - movs r3, 0x50 - b _0805AF92 -_0805AF88: - str r4, [sp] - adds r0, r7, 0 - adds r1, r5, 0 - adds r2, r6, 0 - movs r3, 0x28 -_0805AF92: - bl sub_8055864 - negs r1, r0 - orrs r1, r0 - lsrs r0, r1, 31 -_0805AF9C: - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_805AF30 - .align 2, 0 diff --git a/asm/code_807049C.s b/asm/code_807049C.s deleted file mode 100644 index 55746ffb1..000000000 --- a/asm/code_807049C.s +++ /dev/null @@ -1,6 +0,0 @@ - #include "asm/constants/gba_constants.inc" - #include "asm/macros.inc" - - .syntax unified - - .align 2, 0 diff --git a/asm/code_80958E8.s b/asm/code_80958E8.s index 736f3c370..259ed792c 100644 --- a/asm/code_80958E8.s +++ b/asm/code_80958E8.s @@ -5,8 +5,8 @@ .text - thumb_func_start sub_8095B28 -sub_8095B28: + thumb_func_start GenerateMailJobInfo +GenerateMailJobInfo: push {r4-r7,lr} mov r7, r9 mov r6, r8 @@ -14,7 +14,7 @@ sub_8095B28: ldr r4, _08095B44 add sp, r4 adds r4, r0, 0 - bl sub_8095CE0 + bl GenerateMailJobDungeonInfo lsls r0, 24 cmp r0, 0 bne _08095B48 @@ -224,375 +224,6 @@ _08095CCC: pop {r4-r7} pop {r1} bx r1 - thumb_func_end sub_8095B28 - - thumb_func_start sub_8095CE0 -sub_8095CE0: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x60 - str r0, [sp, 0x44] - mov r0, sp - bl sub_80A29B0 - str r0, [sp, 0x4C] - cmp r0, 0 - bne _08095D0C - mov r0, sp - add r1, sp, 0x4C - ldrb r1, [r1] - strb r1, [r0] - mov r1, sp - movs r0, 0x1 - strb r0, [r1, 0x1] - movs r2, 0x2 - str r2, [sp, 0x4C] -_08095D0C: - ldr r0, [sp, 0x4C] - bl RandInt - mov r9, r0 - str r0, [sp, 0x48] - mov r1, sp - adds r1, 0x40 - str r1, [sp, 0x5C] -_08095D1C: - mov r0, sp - add r0, r9 - ldrb r7, [r0] - adds r0, r7, 0 - bl GetDungeonFloorCount - str r0, [sp, 0x58] - lsrs r0, 31 - ldr r2, [sp, 0x58] - adds r0, r2, r0 - asrs r0, 1 - str r0, [sp, 0x54] - adds r1, r2, 0 - bl RandRange - adds r4, r0, 0 - str r4, [sp, 0x50] -_08095D3E: - movs r0, 0x1 - mov r8, r0 - ldr r1, _08095DF4 - ldr r0, [sp, 0x40] - ands r0, r1 - orrs r0, r7 - lsls r2, r4, 24 - lsrs r2, 16 - ldr r1, _08095DF8 - ands r0, r1 - orrs r0, r2 - str r0, [sp, 0x40] - ldr r0, [sp, 0x5C] - bl sub_809017C - lsls r0, 24 - cmp r0, 0 - beq _08095D66 - movs r1, 0 - mov r8, r1 -_08095D66: - ldr r2, _08095DFC - mov r10, r2 - movs r6, 0 - movs r5, 0x3 -_08095D6E: - mov r1, r10 - ldr r0, [r1] - adds r0, r6 - adds r1, r7, 0 - adds r2, r4, 0 - movs r3, 0x1 - bl sub_8095E38 - lsls r0, 24 - cmp r0, 0 - beq _08095D88 - movs r2, 0 - mov r8, r2 -_08095D88: - adds r6, 0x14 - subs r5, 0x1 - cmp r5, 0 - bge _08095D6E - ldr r0, _08095DFC - mov r10, r0 - movs r6, 0x50 - movs r5, 0x7 -_08095D98: - mov r1, r10 - ldr r0, [r1] - adds r0, r6 - adds r1, r7, 0 - adds r2, r4, 0 - movs r3, 0x1 - bl sub_8095E38 - lsls r0, 24 - cmp r0, 0 - beq _08095DB2 - movs r2, 0 - mov r8, r2 -_08095DB2: - adds r6, 0x14 - subs r5, 0x1 - cmp r5, 0 - bge _08095D98 - ldr r0, _08095DFC - mov r10, r0 - movs r6, 0xF0 - movs r5, 0x7 -_08095DC2: - mov r1, r10 - ldr r0, [r1] - adds r0, r6 - adds r1, r7, 0 - adds r2, r4, 0 - movs r3, 0x1 - bl sub_8095E38 - lsls r0, 24 - cmp r0, 0 - beq _08095DDC - movs r2, 0 - mov r8, r2 -_08095DDC: - adds r6, 0x14 - subs r5, 0x1 - cmp r5, 0 - bge _08095DC2 - mov r0, r8 - cmp r0, 0 - beq _08095E00 - ldr r1, [sp, 0x44] - strb r7, [r1, 0x4] - strb r4, [r1, 0x5] - movs r0, 0x1 - b _08095E28 - .align 2, 0 -_08095DF4: .4byte 0xffffff00 -_08095DF8: .4byte 0xffff00ff -_08095DFC: .4byte gUnknown_203B490 -_08095E00: - adds r4, 0x1 - ldr r2, [sp, 0x58] - cmp r4, r2 - blt _08095E0A - ldr r4, [sp, 0x54] -_08095E0A: - ldr r0, [sp, 0x50] - cmp r4, r0 - bne _08095D3E - movs r1, 0x1 - add r9, r1 - ldr r2, [sp, 0x4C] - cmp r9, r2 - bne _08095E1E - movs r0, 0 - mov r9, r0 -_08095E1E: - ldr r1, [sp, 0x48] - cmp r9, r1 - beq _08095E26 - b _08095D1C -_08095E26: - movs r0, 0 -_08095E28: - add sp, 0x60 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8095CE0 - - thumb_func_start sub_8095E38 -sub_8095E38: - push {r4,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r3, 24 - lsrs r3, 24 - ldrb r0, [r4] - cmp r0, 0 - beq _08095E6E - ldrb r0, [r4, 0x1] - cmp r0, 0x2 - bne _08095E5E - cmp r3, 0x1 - bne _08095E5E - ldrb r0, [r4, 0x4] - cmp r0, r1 - bne _08095E6E - movs r0, 0x1 - b _08095E70 -_08095E5E: - ldrb r0, [r4, 0x4] - cmp r0, r1 - bne _08095E6E - ldrb r0, [r4, 0x5] - cmp r0, r2 - bne _08095E6E - movs r0, 0x1 - b _08095E70 -_08095E6E: - movs r0, 0 -_08095E70: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8095E38 - - thumb_func_start sub_8095E78 -sub_8095E78: - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x3C - movs r6, 0 - movs r5, 0x1 -_08095E84: - ldr r0, _08095F04 - ldr r0, [r0] - adds r0, r5 - ldrb r0, [r0] - adds r1, r5, 0x1 - mov r8, r1 - cmp r0, 0 - bne _08095EF6 - lsls r0, r5, 24 - lsrs r0, 24 - bl GetFriendAreaUnlockCondition - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _08095EF6 - movs r4, 0 - ldr r0, _08095F08 - ldr r1, [r0] - movs r3, 0x3 -_08095EAC: - ldrb r0, [r1] - cmp r0, 0 - beq _08095EBA - ldrb r0, [r1, 0x11] - cmp r0, 0x9 - bne _08095EBA - movs r4, 0x1 -_08095EBA: - adds r1, 0x14 - subs r3, 0x1 - cmp r3, 0 - bge _08095EAC - ldr r0, _08095F08 - ldr r0, [r0] - adds r2, r0, 0 - adds r2, 0xF0 - adds r1, r0, 0 - movs r3, 0x7 -_08095ECE: - ldrb r0, [r2] - cmp r0, 0 - beq _08095EE0 - ldr r7, _08095F0C - adds r0, r1, r7 - ldrb r0, [r0] - cmp r0, 0x9 - bne _08095EE0 - movs r4, 0x1 -_08095EE0: - adds r2, 0x14 - adds r1, 0x14 - subs r3, 0x1 - cmp r3, 0 - bge _08095ECE - cmp r4, 0 - bne _08095EF6 - mov r1, sp - adds r0, r1, r6 - strb r5, [r0] - adds r6, 0x1 -_08095EF6: - mov r5, r8 - cmp r5, 0x39 - ble _08095E84 - cmp r6, 0 - bne _08095F10 - movs r0, 0 - b _08095F1A - .align 2, 0 -_08095F04: .4byte gFriendAreas -_08095F08: .4byte gUnknown_203B490 -_08095F0C: .4byte 0x00000101 -_08095F10: - adds r0, r6, 0 - bl RandInt - add r0, sp - ldrb r0, [r0] -_08095F1A: - add sp, 0x3C - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8095E78 - - thumb_func_start sub_8095F28 -sub_8095F28: - push {r4-r7,lr} - sub sp, 0xF0 - lsls r0, 24 - lsrs r7, r0, 24 - movs r6, 0 - movs r5, 0x1 -_08095F34: - lsls r4, r5, 24 - cmp r7, 0x63 - beq _08095F48 - lsrs r1, r4, 24 - adds r0, r7, 0 - bl xxx_bit_lut_lookup_8091E50 - lsls r0, 24 - cmp r0, 0 - beq _08095F6A -_08095F48: - lsrs r4, 24 - adds r0, r4, 0 - bl IsThrowableItem - lsls r0, 24 - cmp r0, 0 - bne _08095F6A - adds r0, r4, 0 - bl IsNotMoneyOrUsedTMItem - lsls r0, 24 - cmp r0, 0 - beq _08095F6A - mov r1, sp - adds r0, r1, r6 - strb r5, [r0] - adds r6, 0x1 -_08095F6A: - adds r5, 0x1 - cmp r5, 0xEF - ble _08095F34 - cmp r6, 0 - beq _08095F80 - adds r0, r6, 0 - bl RandInt - add r0, sp - ldrb r0, [r0] - b _08095F82 -_08095F80: - movs r0, 0 -_08095F82: - add sp, 0xF0 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8095F28 - + thumb_func_end GenerateMailJobInfo .align 2,0 diff --git a/asm/code_80958E8_1.s b/asm/code_80958E8_1.s index b397ec22a..c889c5661 100644 --- a/asm/code_80958E8_1.s +++ b/asm/code_80958E8_1.s @@ -377,7 +377,7 @@ _08096340: lsrs r0, 24 bl GetMailboxSlotInfo adds r4, r0, 0 - bl sub_8095B28 + bl GenerateMailJobInfo lsls r0, 24 cmp r0, 0 beq _08096392 diff --git a/asm/wonder_mail_5.s b/asm/wonder_mail_5.s deleted file mode 100644 index d2dbeb07d..000000000 --- a/asm/wonder_mail_5.s +++ /dev/null @@ -1,142 +0,0 @@ - #include "asm/constants/gba_constants.inc" - #include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_8030E48 -sub_8030E48: - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x15C - ldr r3, _08030EA8 - ldr r4, _08030EAC - ldr r2, [r4] - ldrb r1, [r2, 0xC] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 4 - ldr r1, [r3] - adds r5, r1, r0 - ldr r0, [r2, 0x10] - bl sub_80073B8 - ldr r0, [r4] - ldr r0, [r0, 0x10] - str r0, [sp, 0x4] - add r1, sp, 0x44 - movs r2, 0 - movs r0, 0x7 - strb r0, [r1] - mov r0, sp - adds r0, 0x46 - strb r2, [r0] - add r0, sp, 0x48 - strb r2, [r0] - adds r0, r5, 0x4 - str r0, [sp, 0xC] - adds r0, 0x10 - str r0, [sp, 0x10] - add r1, sp, 0x4 - ldrh r0, [r5, 0xC] - strh r0, [r1, 0x10] - ldrh r0, [r5, 0xC] - strh r0, [r1, 0x12] - adds r0, r1, 0 - strb r2, [r0, 0x14] - adds r2, r5, 0 - adds r2, 0x22 - ldrb r0, [r2] - cmp r0, 0 - bne _08030EB0 - adds r1, 0x2E - movs r0, 0x5 - strb r0, [r1] - b _08030EBE - .align 2, 0 -_08030EA8: .4byte gUnknown_203B480 -_08030EAC: .4byte gUnknown_203B324 -_08030EB0: - mov r1, sp - adds r1, 0x32 - movs r0, 0x2 - strb r0, [r1] - ldrb r1, [r2] - add r0, sp, 0x38 - strb r1, [r0] -_08030EBE: - ldrb r0, [r5] - cmp r0, 0x2 - beq _08030ED2 - cmp r0, 0x2 - ble _08030EE2 - cmp r0, 0x4 - beq _08030ED2 - cmp r0, 0x5 - beq _08030EDA - b _08030EE2 -_08030ED2: - mov r1, sp - adds r1, 0x45 - movs r0, 0xA - b _08030EE8 -_08030EDA: - mov r1, sp - adds r1, 0x45 - movs r0, 0xB - b _08030EE8 -_08030EE2: - mov r1, sp - adds r1, 0x45 - movs r0, 0x9 -_08030EE8: - strb r0, [r1] - add r0, sp, 0x4 - bl CreateRescueDescription - ldrh r0, [r5, 0x10] - ldr r1, _08030F48 - bl __umodsi3 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r2, _08030F4C - ldr r5, _08030F50 - ldr r0, [r5] - ldr r3, [r0, 0x10] - movs r0, 0 - mov r8, r0 - str r0, [sp] - movs r0, 0xA - movs r1, 0x68 - bl xxx_call_draw_string - add r6, sp, 0x5C - ldr r1, _08030F54 - adds r0, r6, 0 - adds r2, r4, 0 - bl sprintfStatic - ldr r0, [r5] - ldr r3, [r0, 0x10] - mov r0, r8 - str r0, [sp] - movs r0, 0x44 - movs r1, 0x68 - adds r2, r6, 0 - bl xxx_call_draw_string - ldr r0, [r5] - ldr r0, [r0, 0x10] - bl sub_80073E0 - add sp, 0x15C - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08030F48: .4byte 0x00002710 -_08030F4C: .4byte gUnknown_80E0934 -_08030F50: .4byte gUnknown_203B324 -_08030F54: .4byte gUnknown_80E0938 - thumb_func_end sub_8030E48 - - .align 2,0 diff --git a/data/data_80D47B8.s b/data/data_80D47B8.s index c6cb7679a..3f7836b7c 100644 --- a/data/data_80D47B8.s +++ b/data/data_80D47B8.s @@ -4622,53 +4622,3 @@ gUnknown_80DCA2C: @ 80DCA2C #include "friend_area.inc" #include "text/party_menu.inc" - - .global gUnknown_80DD6EC -gUnknown_80DD6EC: @ 80DD6EC - .byte 0x00, 0x00, 0x00, 0x00 - - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DD704 -gUnknown_80DD704: @ 80DD704 - .byte 0x00, 0x00, 0x00, 0x00 - - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x13, 0x00, 0x04, 0x00 - .byte 0x09, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DD71C -gUnknown_80DD71C: @ 80DD71C - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x14, 0x00, 0x04, 0x00 - .byte 0x06, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x16, 0x00, 0x04, 0x00 - .byte 0x06, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DD74C -gUnknown_80DD74C: @ 80DD74C - .byte 0x00, 0x00, 0x00, 0x00 - - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x11, 0x00 - .byte 0x1A, 0x00, 0x02, 0x00 - .byte 0x02, 0x00, 0x00, 0x00 - - .byte 0x00, 0x00, 0x00, 0x00 - diff --git a/data/data_80DED44.s b/data/data_80DED44.s deleted file mode 100644 index 66d06f015..000000000 --- a/data/data_80DED44.s +++ /dev/null @@ -1,144 +0,0 @@ - .section .rodata - - .string "pksdir0\0" - .align 2,0 - - .global gUnknown_80E07EC -gUnknown_80E07EC: @ 80E07EC - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E0804 -gUnknown_80E0804: @ 80E0804 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x06, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x02, 0x00 - .byte 0x0e, 0x00, 0x0e, 0x00 - .byte 0x0e, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E081C -gUnknown_80E081C: @ 80E081C - .string "Courses\0" - .align 2,0 - - .global gUnknown_80E0824 -gUnknown_80E0824: @ 80E0824 - .byte 0x87, 0x42, 0x00, 0x00 - - .global gUnknown_80E0828 -gUnknown_80E0828: @ 80E0828 - .string "{COLOR_2}%c%s{END_COLOR_TEXT_2}\0" - .align 2,0 - .string "pksdir0\0" - .align 2,0 - - .global gUnknown_80E083C -gUnknown_80E083C: @ 80E083C - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E0854 -gUnknown_80E0854: @ 80E0854 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x06, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x02, 0x00 - .byte 0x18, 0x00, 0x11, 0x00 - .byte 0x11, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E086C -gUnknown_80E086C: @ 80E086C - - .4byte SOSList - .4byte RequestList - .4byte SOSMail - .4byte ToDoList - .4byte AOKMail - .4byte ThanksList - .4byte CompletedJobs - .4byte OkdRescue - - .global OkdRescue - OkdRescue: - .string "OK{APOSTROPHE}d Rescues\0" - .align 2,0 - - .global CompletedJobs - CompletedJobs: - .string "Completed Jobs\0" - .align 2,0 - - .global ThanksList - ThanksList: - .string "Thanks List\0" - .align 2,0 - - .global AOKMail - AOKMail: - .string "A-OK Mail\0" - .align 2,0 - - .global ToDoList - ToDoList: - .string "To-Do List\0" - .align 2,0 - - .global SOSMail - SOSMail: - .string "SOS Mail\0" - .align 2,0 - - .global RequestList - RequestList: - .string "Request List\0" - .align 2,0 - - .global SOSList - SOSList: - .string "SOS List\0" - .align 2,0 - - .string "pksdir0\0" - .align 2,0 - - .global gUnknown_80E0900 -gUnknown_80E0900: @ 80E0900 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global DATA_80E0918 - DATA_80E0918: - .byte 0x01, 0x00, 0x12, 0x00 - - .global gUnknown_80E091C -gUnknown_80E091C: @ 80E091C - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x06, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x02, 0x00 - .byte 0x1a, 0x00, 0x10, 0x00 - .byte 0x10, 0x00, 0x00, 0x00 - - .4byte DATA_80E0918 - - .global gUnknown_80E0934 -gUnknown_80E0934: @ 80E0934 - .string "ID:\0" - - .global gUnknown_80E0938 -gUnknown_80E0938: @ 80E0938 - .string "%-4d\0" - .align 2,0 - .string "pksdir0\0" diff --git a/data/data_80F4E2C.s b/data/data_80F4E2C.s index 1e088d7b1..a13859592 100644 --- a/data/data_80F4E2C.s +++ b/data/data_80F4E2C.s @@ -426,11 +426,10 @@ gUnknown_80F4F46: @ 80F4F46 @ replacing .incbin "baserom.gba", 0x000f4f46, 0x2 .byte 0x0c, 0x00 - .global gUnknown_80F4F48 -gUnknown_80F4F48: @ 80F4F48 + .global gSolarBeamMovePower +gSolarBeamMovePower: @ 80F4F48 @ replacing .incbin "baserom.gba", 0x000f4f48, 0x4 -.byte 0x00, 0x02 -.byte 0x00, 0x00 +.4byte 0x0200 .global gUnknown_80F4F4C gUnknown_80F4F4C: @ 80F4F4C diff --git a/include/code_802C39C.h b/include/code_802C39C.h new file mode 100644 index 000000000..6b478760a --- /dev/null +++ b/include/code_802C39C.h @@ -0,0 +1,25 @@ +struct unkStruct_802C39C +{ + /* 0x0 */ u32 unk0[2]; + /* 0x8 */ struct DungeonLocation *dungeon; + /* 0xC */ u8 *playerName; + /* 0x10 */ s16 clientSpecies; + /* 0x12 */ s16 targetSpecies; + /* 0x14 */ u8 unk14; + /* 0x15 */ u8 fill15[0x2E - 0x15]; + u8 unk2E; + u8 fill2F[0x34 - 0x2F]; + u8 unk34; + u8 fill35[0x38 - 0x35]; + /* 0x38 */ u8 unk38[0x40 - 0x38]; + u8 unk40; + u8 unk41; + u8 unk42; + u8 unk43; + u8 unk44; + u8 unk45; + u8 fill46[0x48 - 0x46]; + /* 0x48 */ u32 y; + /* 0x4C */ u8 *unk4C; + /* 0x50 */ u8 *unk50[2]; +}; diff --git a/include/code_8077274_1.h b/include/code_8077274_1.h index 9e1caf176..08519a955 100644 --- a/include/code_8077274_1.h +++ b/include/code_8077274_1.h @@ -3,22 +3,22 @@ void MuzzleTarget(struct Entity *pokemon, struct Entity *target); void sub_8078E18(struct Entity * pokemon, struct Entity * target); -void sub_8078F50(struct Entity * pokemon, struct Entity * target); +void MobileStatusTarget(struct Entity * pokemon, struct Entity * target); void ExposeStatusTarget(struct Entity * pokemon, struct Entity * target, s16 param_3); void IdentityItemHolders(struct Entity *pokemon, struct Entity *target); void BlindTarget(struct Entity *pokemon, struct Entity *target); void CrossEyeVisionTarget(struct Entity *pokemon, struct Entity *target); void RestoreVisionTarget(struct Entity *pokemon, struct Entity *target); void RestorePPTarget(struct Entity * pokemon,struct Entity * target, s32 param_3); -void sub_80793B0(struct Entity * pokemon,struct Entity * target, s32 param_3); -void sub_8079420(struct Entity * pokemon,struct Entity * target, s32 param_3); -void sub_8079490(struct Entity * pokemon,struct Entity * target, s32 param_3); -void sub_8079500(struct Entity * pokemon,struct Entity * target, s32 param_3); +void RaiseAtkStatTarget(struct Entity * pokemon,struct Entity * target, s32 increment); +void RaiseSpAtkStatTarget(struct Entity * pokemon,struct Entity * target, s32 increment); +void RaiseDefStatTarget(struct Entity * pokemon,struct Entity * target, s32 increment); +void RaiseSpDefStatTarget(struct Entity * pokemon,struct Entity * target, s32 increment); void LongTossStatusTarget(struct Entity * pokemon,struct Entity * target); void PierceStatusTarget(struct Entity * pokemon,struct Entity * target); void SetChargeStatusTarget(struct Entity *pokemon, struct Entity *target, u8 newStatus, struct Move *move, u8 *message); void sub_8079764(struct Entity * pokemon); -void sub_80797A0(struct Entity * pokemon, struct Entity * target, u8 newStatus); +void CounterStatusTarget(struct Entity * pokemon, struct Entity * target, u8 newStatus); void SafeguardStatusTarget(struct Entity * pokemon, struct Entity * target); void MistStatusTarget(struct Entity * pokemon, struct Entity * target); void WishStatusTarget(struct Entity * pokemon, struct Entity * target); diff --git a/include/code_8094F88.h b/include/code_8094F88.h index 287ad4c1b..0a0057ab5 100644 --- a/include/code_8094F88.h +++ b/include/code_8094F88.h @@ -11,7 +11,11 @@ struct unkStruct_203B480 /* 0x8 */ u32 unk8; /* 0xC */ s16 clientSpecies; /* 0xE */ s16 targetSpecies; - /* 0x10 */ u32 unk10; + union unk10_temp + { + u32 unk10; + u16 unk10_u16; + } unk10; /* 0x14 */ u8 playerName[0x20 - 0x14];; struct Item unk20; u32 unk24; diff --git a/include/dungeon_entity.h b/include/dungeon_entity.h index 76d12c330..798df2337 100644 --- a/include/dungeon_entity.h +++ b/include/dungeon_entity.h @@ -257,7 +257,10 @@ struct Entity /* 0x14 */ struct Position32 prevPixelPos; s32 unk1C; /* 0x20 */ bool8 isVisible; // Turned off when a Pokémon faints. - u8 fill21[0x25 - 0x21]; + u8 fill21; + u8 unk22; + u8 fill23; + u8 unk24; /* 0x25 */ u8 room; // The global spawn index counter starts at 10. Each Pokémon that spawns increments the counter and // gets assigned the current counter value as its spawn index. diff --git a/include/dungeon_global_data.h b/include/dungeon_global_data.h index 45f0e9023..8a18c7d73 100644 --- a/include/dungeon_global_data.h +++ b/include/dungeon_global_data.h @@ -121,7 +121,9 @@ struct Dungeon /* 0x37F8 */ bool8 plusIsActive[2]; // Index 0: Enemy , Index 1: Team /* 0x37FA */ bool8 minusIsActive[2]; // Index 0: Enemy , Index 1: Team /* 0x37FC */ bool8 decoyActive; - u8 fill37FD[0x3A0D - 0x37FD]; + u8 fill37FD[0x3A08 - 0x37FD]; + /* 0x3A08 */ u8 unk3A08; + u8 fill3A09[0x3A0D - 0x3A09]; /* 0x3A0D */ u8 unk3A0D; /* 0x3A0E */ s16 tileset; /* 0x3A10 */ u16 unk3A10; @@ -135,7 +137,9 @@ struct Dungeon /* 0xE264 */ u8 weather; // Uses the weather constants in weather.h. u8 unkE265; // Uses the weather constants in weather.h /* 0xE266 */ u8 weatherDamageCounter; // Timer for applying sandstorm/hail damage periodically. - u8 unkE267[0xE26B - 0xE267]; + /* 0xE267 */ u8 unkE267[0xE269 - 0xE267]; + u8 unkE269; + u8 fillE26A; u8 unkE26B; u8 weatherTurns; u8 fillE26D[0xE26F - 0xE26D]; diff --git a/include/item.h b/include/item.h index 4399e7925..50bcd9715 100644 --- a/include/item.h +++ b/include/item.h @@ -125,7 +125,7 @@ bool8 IsNotMoneyOrUsedTMItem(u8 id); s32 FindItemInInventory(u8 id); bool8 IsHMItem(u8 id); bool8 IsEdibleItem(u8 id); - +u8 xxx_bit_lut_lookup_8091E50(u8 i0, u8 i1); void RestoreHeldItem(struct unkStruct_8094924*, struct BulkItem*); void SaveHeldItem(struct unkStruct_8094924*, struct BulkItem*); diff --git a/include/moves.h b/include/moves.h index 5d39aa6f5..9bb1ffcb0 100644 --- a/include/moves.h +++ b/include/moves.h @@ -17,7 +17,7 @@ s32 GetMoveBasePower(struct Move *move); s32 GetMoveAccuracyOrAIChance(struct Move *move, u32 accuracyType); u32 GetMoveBasePP(struct Move *move); u32 GetMoveMaxUpgradeLevel(struct Move *move); -u8 GetMoveCritChance(struct Move *move); +u32 GetMoveCritChance(struct Move *move); bool8 MoveCannotHitFrozen(struct Move *move); bool8 MovesIgnoresTaunted(struct Move *move); u32 GetMoveRangeID(struct Move *move); diff --git a/include/status_actions.h b/include/status_actions.h index 1e99cdd6b..55246277e 100644 --- a/include/status_actions.h +++ b/include/status_actions.h @@ -48,7 +48,7 @@ bool8 FillInOrbAction(struct Entity *pokemon,struct Entity *target); bool8 sub_805C3DC(struct Entity *pokemon, struct Entity *target); bool8 sub_805C3F8(struct Entity *pokemon, struct Entity *target); bool8 sub_805C45C(struct Entity *pokemon, struct Entity *target); -bool8 sub_805C468(struct Entity *pokemon, struct Entity *target); +bool8 MobileOrbAction(struct Entity *pokemon, struct Entity *target); bool8 StairsOrbAction(struct Entity *pokemon, struct Entity *target); bool8 LongtossOrbAction(struct Entity *pokemon, struct Entity *target); bool8 PierceOrbAction(struct Entity *pokemon, struct Entity *target); diff --git a/include/wonder_mail_3.h b/include/wonder_mail_3.h index 251e703d0..ceac36012 100644 --- a/include/wonder_mail_3.h +++ b/include/wonder_mail_3.h @@ -12,23 +12,6 @@ struct unkStruct_203B2F4 }; extern struct unkStruct_203B2F4 *gUnknown_203B2F4; -struct unkStruct_802C39C -{ - /* 0x0 */ u32 unk0[2]; - /* 0x8 */ struct DungeonLocation *unk8; - /* 0xC */ u8 *playerName; - /* 0x10 */ s16 unk10; - /* 0x12 */ s16 unk12; - /* 0x14 */ u8 unk14; - /* 0x15 */ u8 fill15[0x1B]; - /* 0x34 */ u8 fill34[2]; - /* 0x36 */ u8 fill36[0x3C - 0x36]; - /* 0x3C */ u8 unk3C[0xC]; - /* 0x48 */ u8 fill48[4]; - /* 0x4C */ u32 unk4C; - /* 0x50 */ u8 *unk50[3]; -}; - struct unkStruct_803B344 { // size: 0xB4 diff --git a/ld_script.txt b/ld_script.txt index 33bcf1d18..df41ec1ec 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -10,13 +10,13 @@ SECTIONS { ALIGN(4) { ewram_start = .; - INCLUDE "sym_ewram.txt" + INCLUDE "sym_ewram.ld" src/agb_flash.o(.bss); *libgcc.a:fp-bit.o(.bss); *libgcc.a:dp-bit.o(.bss); *libc.a:syscalls.o(.bss); . = ALIGN(16); - INCLUDE "sym_ewram2.txt" + INCLUDE "sym_ewram2.ld" *libc.a:impure.o(.data); *libc.a:locale.o(.data); *libc.a:mallocr.o(.data); @@ -30,7 +30,7 @@ SECTIONS { ALIGN(4) { iwram_start = .; - INCLUDE "sym_iwram.txt" + INCLUDE "sym_iwram.ld" . = 0x8000; } @@ -151,7 +151,6 @@ SECTIONS { src/makuhita_dojo_1.o(.text); src/wonder_mail_4.o(.text); src/wonder_mail_5.o(.text); - asm/wonder_mail_5.o(.text); src/wonder_mail_6.o(.text); src/post_office_guide.o(.text); asm/code_8031D70.o(.text); @@ -223,6 +222,7 @@ SECTIONS { asm/code_805744C.o(.text); src/code_8057824.o(.text); asm/code_8057824.o(.text); + src/code_805A120.o(.text); src/status_actions.o(.text); src/move_checks.o(.text); asm/code_805D8C8.o(.text); @@ -318,6 +318,7 @@ SECTIONS { src/code_8095824.o(.text); src/code_80958E8.o(.text); asm/code_80958E8.o(.text); + src/code_80958E8_mid.o(.text); src/mailbox_8095F8C.o(.text); asm/code_80958E8_1.o(.text); src/code_80958E8_1.o(.text); @@ -440,7 +441,9 @@ SECTIONS { src/pelipper_board.o(.rodata); src/wonder_mail_3_mid.o(.rodata); src/makuhita_dojo.o(.rodata); - data/data_80DED44.o(.rodata); + src/makuhita_dojo_1.o(.rodata); + src/wonder_mail_4.o(.rodata); + src/wonder_mail_5.o(.rodata); src/wonder_mail_6.o(.rodata); src/post_office_guide.o(.rodata); data/data_80E1F30.o(.rodata); diff --git a/src/code_8041AD0.c b/src/code_8041AD0.c index a8cafb8dd..2132ea564 100644 --- a/src/code_8041AD0.c +++ b/src/code_8041AD0.c @@ -37,7 +37,7 @@ extern u8 sub_8042768(struct Entity *pokemon); extern void sub_806CDD4(struct Entity *pokemon, u8, u32); extern u32 sub_806F62C(u32); extern void PlaySoundEffect(u32); -extern u8 sub_803F428(struct Entity *pokemon); +extern u8 sub_803F428(struct Position *pos); extern void sub_8041550(struct Entity *pokemon, u32, u32, u32, u32, u32); @@ -836,9 +836,9 @@ void sub_80421C0(struct Entity *pokemon, u16 r1) PlaySoundEffect(r1); } -void sub_80421EC(struct Entity *pokemon, u16 r1) +void sub_80421EC(struct Position *pos, u16 r1) { - if(sub_803F428(pokemon) != 0) + if(sub_803F428(pos) != 0) PlaySoundEffect(r1); } diff --git a/src/code_8057824.c b/src/code_8057824.c index de48e4312..8e9e9adb1 100644 --- a/src/code_8057824.c +++ b/src/code_8057824.c @@ -183,17 +183,17 @@ void sub_8057588(struct Entity * pokemon, u8 param_2) } } -s16 sub_8057600(struct Move *move, s32 param_2) +s16 sub_8057600(struct Move *move, s32 itemID) { - return sub_8094828(move->id, sub_8057620(param_2)); + return sub_8094828(move->id, sub_8057620(itemID)); } -u8 sub_8057620(u32 param_1) +u8 sub_8057620(u32 itemID) { - if(param_1 == 0) - return 0; + if(itemID == ITEM_NOTHING) + return ITEM_NOTHING; else - return param_1; + return itemID; } bool8 sub_8057634(struct Entity *pokemon, struct Entity *target, struct Move *move, s32 param_4) @@ -772,7 +772,7 @@ bool8 GrudgeMoveAction(struct Entity *pokemon, struct Entity * target) bool8 sub_805815C(struct Entity *pokemon, struct Entity *target) { - sub_80797A0(pokemon, target, STATUS_COUNTER); + CounterStatusTarget(pokemon, target, STATUS_COUNTER); return TRUE; } diff --git a/src/code_805A120.c b/src/code_805A120.c new file mode 100644 index 000000000..7946bacd2 --- /dev/null +++ b/src/code_805A120.c @@ -0,0 +1,1478 @@ +#include "global.h" +#include "constants/ability.h" +#include "constants/move_id.h" +#include "constants/status.h" +#include "constants/targeting.h" +#include "constants/type.h" +#include "constants/weather.h" +#include "dungeon_entity.h" +#include "dungeon_global_data.h" +#include "dungeon_ai_targeting.h" +#include "dungeon_pokemon_attributes.h" +#include "dungeon_items.h" +#include "dungeon_map_access.h" +#include "dungeon_random.h" +#include "dungeon_util.h" +#include "item.h" +#include "moves.h" +#include "move_effects_target.h" +#include "status.h" +#include "status_actions.h" +#include "tile_types.h" +#include "code_8077274_1.h" +#include "code_808417C.h" +#include "charge_move.h" +#include "weather.h" + +extern u32 gUnknown_202F210; +extern u8 gAvailablePokemonNames[]; +extern u8 gUnknown_202DE58[]; +extern u8 gUnknown_202F218; +extern u32 gUnknown_202F214; + +extern s16 gUnknown_80F4DE0; +extern s16 gUnknown_80F4DC4; +extern u8 *gUnknown_80FCF78[]; +extern s16 gUnknown_80F4DF0; +extern u32 gUnknown_80F4F5C; +extern u8 *gUnknown_80FACFC[]; +extern s16 gUnknown_80F4F7C; +extern s32 gSolarBeamMovePower; +extern u8 *gUnknown_80FACE4[]; +extern u8 *gUnknown_80FEB8C[]; +extern u32 gUnknown_8106A4C; +extern u32 gUnknown_8106A50; +extern s16 gUnknown_80F4DC8; +extern s16 gUnknown_80F4DEC; +extern s16 gUnknown_80F4E00; +extern u8 *gUnknown_80FD128[]; +extern u8 *gUnknown_80FAD2C[]; +extern u32 gUnknown_80F4F64; +extern u8 gUnknown_80F5978[]; +extern s16 gUnknown_80F4E74; +extern s16 gUnknown_80F4E06; +extern s16 gUnknown_80F4E94[]; +extern u8 *gUnknown_80FC74C[]; +extern u8 *gUnknown_80FC790[]; +extern u8 *gUnknown_80FC7AC[]; +extern u8 *gUnknown_80FD578[]; +extern u8 *gUnknown_80FCCE4[]; +extern u8 *gUnknown_80FC81C[]; +extern u8 *gUnknown_80FC854[]; +extern u8 *gUnknown_80FCF7C[]; +extern u8 *gUnknown_80FC730[]; +extern u16 gUnknown_80F4F42; +extern s16 gUnknown_80F4DF2; +extern u8 *gUnknown_80FC770[]; +extern s32 gUnknown_80F51D4[]; +extern s16 gUnknown_80F4DD2; +extern u8 *gUnknown_80FCA3C[]; +extern u8 *gUnknown_80FD170[]; +extern u8 *gUnknown_80FCCE8[]; +extern u8 *gUnknown_80FD18C[]; +extern u8 *gUnknown_80FD57C[]; +extern s16 gUnknown_80F4F82; +extern u8 *gUnknown_80FEBDC[]; +extern u8 *gUnknown_80FC5CC[]; +extern s16 gUnknown_80F4DFA; +extern s16 gUnknown_80F4EE0; +extern u8 *gUnknown_81004EC[]; +extern s16 gUnknown_80F4DDA; +extern s16 gUnknown_80F4DFE; +extern u8 *gUnknown_81004EC[]; +extern s16 gUnknown_80F4DFC; +extern u8 *gUnknown_80FC7C8[]; +extern u32 gUnknown_80F4F60; +extern u8 *gUnknown_80FAD10[]; +extern s16 gUnknown_80F4DCC; +extern s16 gUnknown_80F4DBE; +extern s16 gUnknown_80F4DCA; +extern s16 gUnknown_80F4DE2; +extern u8 *gUnknown_80FEB90[]; +extern s16 gUnknown_80F501A[]; + +extern u32 sub_8055864(struct Entity *pokemon, struct Entity *target, struct Move *param_3, s32 param_4, s32 param_5); +extern void sub_80943A0(void*, s32); +s32 RoundUpFixedPoint(s32 fixedPointNumber); +extern s16 sub_8057600(struct Move*, u32); +extern void sub_806CDD4(struct Entity *, u32, u32); +extern bool8 sub_80705F0(struct Entity *pokemon, struct Position *pos); +extern u8 sub_8044B28(void); +extern u8 sub_803F428(struct Position *pos); +extern void sub_804539C(struct Entity *, u32, u32); +extern void sub_803E46C(u32); +bool8 sub_80571F0(struct Entity * pokemon, struct Move *move); +extern void sub_807EC28(u32); +extern void sub_806F370(struct Entity *r0, struct Entity *r1, u32, u32, u8 *, u8, s32, u32, u32, u32); +void sub_8075900(struct Entity *pokemon, u8 r1); +extern void sub_804535C(struct Entity *, u32); +extern void sub_804AC20(struct Position *); +extern void sub_806A5B8(struct Entity *entity); +extern void sub_80694C0(struct Entity *, s32, s32, u32); +bool8 sub_80706A4(struct Entity *pokemon, struct Position *pos); +extern void sub_807D148(struct Entity *pokemon, struct Entity *target, u32 r2, struct Position *r3); +extern void SetMessageArgument(u8 *buffer, struct Entity *r1, u32); +extern void SetMessageArgument_2(u8 *buffer, struct EntityInfo *r1, u32); +void sub_80522F4(struct Entity *r0, struct Entity *r1, char r2[]); +extern void sub_806A6E8(struct Entity *); +extern u32 sub_8055640(struct Entity *, struct Entity *, struct Move *, u32, u32); +extern void sub_807EA30(u32); +extern bool8 sub_805727C(struct Entity *, struct Entity *, s16); +extern void sub_806ABAC(struct Entity *, struct Entity *); +extern u8 sub_807EAA0(u32, u32); +extern void sub_8045C28(struct Item *, u8 , u8); +extern u8 sub_8057308(struct Entity *, u32); +extern void sub_805A7D4(struct Entity *, struct Entity *, struct Item *, struct Position *); +extern void sub_8045394(struct Entity *, s32, s32); +extern void sub_804652C(struct Entity *, struct Entity *, struct Item *, u32, struct Position *); +extern void sub_806EAF4(struct Entity *, struct Entity *, u8, u32, u32, s32 *, u32, u16, u32); +extern u8 *gUnknown_80FEB60[]; +extern u8 *gUnknown_80FE330[]; +extern u8 *gUnknown_80FE36C[]; +extern u8 *gPtrForecastPreventsTypeSwitchMessage[]; + +struct unkStruct_80928C0 +{ + u32 unk0; + s32 unk4; + u8 unk8; + u8 unk9; +}; + +void sub_80928C0(u8 *buffer, struct Move *move, struct unkStruct_80928C0 *param_3); +extern u8 sub_806F4A4(struct Entity *, u32); +extern void sub_807DF38(struct Entity *pokemon, struct Entity *target, struct Position *pos, u32, u8 moveType, s16); + + +bool8 sub_8059424(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + bool8 flag; + + flag = FALSE; + if (sub_8055640(pokemon,target,move,0x100,param_4) != 0) { + flag = TRUE; + if(sub_805727C(pokemon, target, gUnknown_80F4DF0)) + { + CringeStatusTarget(pokemon, target, FALSE); + } + } + return flag; +} + +bool8 sub_805946C(struct Entity * pokemon,struct Entity * target,struct Move * move,u32 param_4) +{ + s32 HP; + bool8 flag; + + flag = FALSE; + if (sub_8055640(pokemon, target, move, 0x100, param_4) != 0) { + flag = TRUE; + if ((!HasAbility(pokemon, ABILITY_ROCK_HEAD)) && (sub_8057308(pokemon,0) != 0)) { + HP = pokemon->info->maxHPStat; + if (HP < 0) { + HP = HP + 7; + } + HP = HP >> 3; + if (HP == 0) { + HP = 1; + } + sub_806F370(pokemon,pokemon,HP,0,0,0,0x1fd,0x14,1,0); + } + } + return flag; +} + +bool8 sub_80594E0(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + gDungeon->unkE269 = gUnknown_80F4F42; + if(sub_807EAA0(1, 0) == 0) + { + sub_80522F4(pokemon, target, *gUnknown_80FCF78); + } + return TRUE; +} + +bool8 sub_8059528(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + LowerAccuracyStageTarget(pokemon, target, gUnknown_8106A4C, TRUE); + return TRUE; +} + +bool8 sub_8059540(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + bool8 flag; + + flag = FALSE; + if (sub_8055640(pokemon,target,move,0x100,param_4) != 0) { + flag = TRUE; + if(sub_805727C(pokemon, target, gUnknown_80F4DC4)) + { + PoisonedStatusTarget(pokemon, target, FALSE); + } + } + return flag; +} + +bool8 sub_8059588(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + RaiseAttackStageTarget(pokemon, target, gUnknown_8106A50, 1); + return TRUE; +} + +bool8 sub_80595A0(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + bool8 flag; + + flag = FALSE; + if (sub_8055640(pokemon,target,move,0x100,param_4) != 0) { + flag = TRUE; + if(sub_805727C(pokemon, target, gUnknown_80F4DE0)) + { + BurnedStatusTarget(pokemon, target, 0, FALSE); + } + } + return flag; +} + +bool8 sub_80595EC(struct Entity * pokemon,struct Entity * target,struct Move * move,u32 param_4) +{ + u8 moveType; + u8 local_20; + + local_20 = 0; + if (sub_806F4A4(target,GetMoveType(move)) == 0) { + sub_80522F4(pokemon,target,*gUnknown_80FEB8C); + return FALSE; + } + else { + moveType = GetMoveType(move); + sub_806F370(pokemon,target,9999,1,&local_20,moveType,sub_8057600(move,param_4),0,1,0); + local_20 = (local_20 == 0); + return local_20; + } +} + +bool8 SolarBeamMoveAction(struct Entity * pokemon,struct Entity * target,struct Move * move,u32 param_4) +{ + u8 weather; // weather and flag are reused in same variable + s32 movePower; + + weather = GetApparentWeather(pokemon); + if ((weather == WEATHER_SUNNY) || (MoveMatchesChargingStatus(pokemon,move))) { + movePower = gSolarBeamMovePower; + + if (((weather == WEATHER_SANDSTORM) || (weather == WEATHER_RAIN)) || weather == WEATHER_HAIL) { + movePower /= 2; + } + weather = sub_8055640(pokemon,target,move,movePower,param_4) != 0 ? TRUE : FALSE; + sub_8079764(pokemon); + } + else { + SetChargeStatusTarget(pokemon,pokemon,STATUS_SOLARBEAM,move,*gUnknown_80FACE4); + weather = TRUE; + } + return weather; +} + +bool8 sub_8059714(struct Entity * pokemon,struct Entity * target,struct Move * move,u32 param_4) +{ + u8 local_20; + + local_20 = 0; + sub_806F370(pokemon,target,gUnknown_80F4F7C,1,&local_20,GetMoveType(move),sub_8057600(move,param_4),0,1,0); + local_20 = local_20 == 0; + return local_20; +} + +bool8 FlyMoveAction(struct Entity * pokemon, struct Entity * target, struct Move * move, u32 param_4) +{ + bool8 flag; + + flag = FALSE; + if (MoveMatchesChargingStatus(pokemon,move)) { + flag = sub_8055640(pokemon,target,move,gUnknown_80F4F5C,param_4) != 0 ? TRUE : FALSE; + sub_8079764(pokemon); + } + else { + SetChargeStatusTarget(pokemon,pokemon,STATUS_FLYING,move,*gUnknown_80FACFC); + flag = TRUE; + } + return flag; +} + +bool8 sub_80597F0(struct Entity * pokemon,struct Entity * target,struct Move * move,u32 param_4) +{ + sub_807DF38(pokemon,target,&target->pos,2,GetMoveType(move),sub_8057600(move,param_4)); + return TRUE; +} + +bool8 DiveMoveAction(struct Entity * pokemon, struct Entity * target, struct Move * move, u32 param_4) +{ + bool8 flag; + + flag = FALSE; + if (IsTileGround(GetTileAtEntitySafe(pokemon))) { + sub_80522F4(pokemon,target,*gUnknown_80FD128); + } + else if (MoveMatchesChargingStatus(pokemon,move)) { + flag = sub_8055640(pokemon,target,move,gUnknown_80F4F64,param_4) != 0 ? TRUE : FALSE; + sub_8079764(pokemon); + } + else { + SetChargeStatusTarget(pokemon,pokemon,STATUS_DIVING,move,*gUnknown_80FAD2C); + flag = TRUE; + } + return flag; +} + +bool8 sub_80598CC(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + bool8 flag; + + flag = FALSE; + if (sub_8055640(pokemon,target,move,0x100,param_4) != 0) { + flag = TRUE; + if(sub_805727C(pokemon, target, gUnknown_80F4E00)) + { + LowerAccuracyStageTarget(pokemon, target, gUnknown_8106A4C, FALSE); + } + } + return flag; +} + +bool8 StockpileMoveAction(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + HandleStockpile(pokemon, target); + return TRUE; +} + +bool8 sub_8059928(struct Entity * pokemon,struct Entity * target,struct Move * move,u32 param_4) +{ + bool8 flag; + s32 iVar2; + + iVar2 = 1; + flag = FALSE; + if ((u8)(target->info->chargingStatus - 7) <= 1){ + iVar2 = 2; + } + if (sub_8055640(pokemon,target,move,iVar2 << 8,param_4) != 0) + { + flag = TRUE; + if(sub_805727C(pokemon,target,gUnknown_80F4DEC) != 0) { + CringeStatusTarget(pokemon,target,FALSE); + } + } + return flag; +} + +bool8 sub_8059988(struct Entity * pokemon,struct Entity * target,struct Move * move,u32 param_4) +{ + bool8 flag; + + flag = FALSE; + if (sub_8055640(pokemon,target,move,0x100,param_4) != 0) { + flag = TRUE; + gUnknown_202F218 = 1; + } + if (((gUnknown_202F218 != 0) && (gUnknown_202F214 == 2)) && + (sub_805727C(pokemon,target,gUnknown_80F4DC8) != 0)) { + PoisonedStatusTarget(pokemon,target,FALSE); + } + return flag; +} + +bool8 sub_80599EC(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + s32 HP; + + HP = target->info->maxHPStat; + if(HP < 0) + HP += 3; + HealTargetHP(pokemon, target, HP >> 2, 0, TRUE); + return TRUE; +} + +bool8 sub_8059A18(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + RaiseAccuracyStageTarget(pokemon, target, gUnknown_8106A50); + return TRUE; +} + +bool8 sub_8059A2C(struct Entity * pokemon,struct Entity * target,struct Move * move,u32 param_4) +{ + u8 local_20; + u32 level; + + local_20 = 0; + level = pokemon->info->level; + sub_806F370(pokemon,target,level,1,&local_20,GetMoveType(move),sub_8057600(move,param_4),0,1,0); + local_20 = local_20 == 0; + return local_20; +} + +bool8 sub_8059AA8(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + ConfuseStatusTarget(pokemon, target, TRUE); + return TRUE; +} + +bool8 sub_8059AB8(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + TauntStatusTarget(pokemon, target); + return TRUE; +} + +bool8 sub_8059AC4(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + HealTargetHP(pokemon, target, gUnknown_80F501A[GetApparentWeather(pokemon)], 0, TRUE); + return TRUE; +} + +bool8 sub_8059AF8(struct Entity * pokemon,struct Entity * target,struct Move * move,u32 param_4) +{ + u8 local_20; + + local_20 = 0; + if (sub_806F4A4(target,GetMoveType(move)) == 0) { + sub_80522F4(pokemon,target,*gUnknown_80FEB90); + return FALSE; + } + else { + sub_806F370(pokemon,target,9999,1,&local_20,GetMoveType(move),sub_8057600(move,param_4),0,0,0); + local_20 = local_20 == 0; + return local_20; + } +} + +bool8 sub_8059B94(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + RaiseAttackStageTarget(pokemon, target, gUnknown_8106A4C, 2); + return TRUE; +} + +bool8 ConversionMoveAction(struct Entity * pokemon,struct Entity * target,struct Move * move,u32 param_4) +{ + u8 moveType; + struct Move *movePtr; + s32 index; + struct EntityInfo * info; + s32 counter; + s32 newIndex; + struct Move *moveStack [MAX_MON_MOVES]; + + counter = 0; + info = target->info; + if (HasAbility(target, ABILITY_FORECAST)) { + sub_80522F4(pokemon,target,*gPtrForecastPreventsTypeSwitchMessage); + return FALSE; + } + else + { + for(index = 0; index < MAX_MON_MOVES; index++) + { + movePtr = &info->moves[index]; + if (((movePtr->moveFlags & MOVE_FLAG_EXISTS)) && (GetMoveTypeForMonster(target,movePtr) != TYPE_NONE)) { + moveStack[counter] = movePtr; + counter++; + } + } + if (counter == 0) { + sub_80522F4(pokemon,target,*gUnknown_80FE36C); + return FALSE; + } + else + { + newIndex = DungeonRandInt(counter); + moveType = GetMoveTypeForMonster(target,moveStack[newIndex]); + info->types[0] = moveType; + info->types[1] = TYPE_NONE; + info->isColorChanged = TRUE; + sub_80928C0(gUnknown_202DE58, moveStack[newIndex], NULL); + sub_80522F4(pokemon,target,*gUnknown_80FE330); + return TRUE; + } + } +} + +bool8 Conversion2MoveAction(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + Conversion2StatusTarget(pokemon, target); + return TRUE; +} + +bool8 HelpingHandMoveAction(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + bool8 flag; + flag = FALSE; + if(pokemon == target) + { + sub_80522F4(target, target, *gUnknown_80FEB60); + } + else { + RaiseAttackStageTarget(pokemon, target, gUnknown_8106A4C, 1); + RaiseAttackStageTarget(pokemon, target, gUnknown_8106A50, 1); + flag = TRUE; + } + return flag; +} + +bool8 sub_8059CD8(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + RaiseDefenseStageTarget(pokemon, target, gUnknown_8106A4C, 2); + return TRUE; +} + +bool8 sub_8059CF0(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + sub_807D148(pokemon, target, 0, NULL); + return TRUE; +} + +bool8 sub_8059D00(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + bool8 flag; + + flag = FALSE; + if (sub_8055640(pokemon,target,move,0x100,param_4) != 0) { + flag = TRUE; + if(sub_805727C(pokemon, target, gUnknown_80F4DE2)) + { + ParalyzeStatusTarget(pokemon, target, FALSE); + } + } + return flag; +} + +bool8 sub_8059D48(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + ParalyzeStatusTarget(pokemon, target, TRUE); + return TRUE; +} + +bool8 sub_8059D58(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + bool8 flag; + + flag = FALSE; + if (sub_8055640(pokemon,target,move,0x100,param_4) != 0) { + flag = TRUE; + if(sub_805727C(pokemon, target, 0)) + { + ParalyzeStatusTarget(pokemon, target, FALSE); + } + } + return flag; +} + +bool8 sub_8059D98(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + ImmobilizedStatusTarget(pokemon, target); + return TRUE; +} + +bool8 sub_8059DA4(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + PoisonedStatusTarget(pokemon, target, TRUE); + return TRUE; +} + +bool8 sub_8059DB4(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + BadlyPoisonedStatusTarget(pokemon, target, TRUE); + return TRUE; +} + +bool8 sub_8059DC4(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + bool8 flag; + + flag = FALSE; + if (sub_8055640(pokemon,target,move,0x100,param_4) != 0) { + flag = TRUE; + if(sub_805727C(pokemon, target, gUnknown_80F4DCA)) + { + BadlyPoisonedStatusTarget(pokemon, target, FALSE); + } + } + return flag; +} + +bool8 sub_8059E0C(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + bool8 flag; + + flag = FALSE; + if (sub_8055640(pokemon,target,move,0x100,param_4) != 0) { + flag = TRUE; + if(sub_805727C(pokemon, target, gUnknown_80F4DBE)) + { + PoisonedStatusTarget(pokemon, target, FALSE); + } + } + return flag; +} + +bool8 sub_8059E54(struct Entity * pokemon,struct Entity * target,struct Move * move,u32 param_4,u8 param_5) +{ + u8 moveType; + u32 movePower; + u32 moveCritChance; + bool8 flag; + s32 local_30 [4]; + u8 auStack_20; + + flag = FALSE; + if (param_5 == 0) { + flag = sub_8055640(pokemon,target,move,0x100,param_4) != 0 ? TRUE : FALSE; + } + if (!flag) { + moveType = GetMoveTypeForMonster(pokemon,move); + movePower = GetMovePower(pokemon,move); + moveCritChance = GetMoveCritChance(move); + sub_806EAF4(pokemon,target,moveType,movePower,moveCritChance,local_30,0x100,move->id,0); + SetMessageArgument_2(gAvailablePokemonNames,pokemon->info,0); + sub_80522F4(pokemon,target,*gUnknown_80FC7C8); + local_30[0] = local_30[0] / 2; + if (local_30[0] == 0) { + local_30[0] = 1; + } + sub_806F370(pokemon,pokemon,local_30[0],0,&auStack_20,0,0x1f7,0x13,1,0); + } + return flag; +} + +bool8 sub_8059F38(struct Entity * pokemon,struct Entity * target,struct Move * move,u32 param_4) +{ + bool8 flag; + + flag = FALSE; + if (MoveMatchesChargingStatus(pokemon, move)) { + if (sub_8055640(pokemon, target, move, gUnknown_80F4F60, param_4) != 0) { + flag = TRUE; + if (sub_805727C(pokemon, target, gUnknown_80F4DCC) != 0) { + ParalyzeStatusTarget(pokemon, target, FALSE); + } + } + sub_8079764(pokemon); + } + else { + SetChargeStatusTarget(pokemon, pokemon, STATUS_BOUNCING, move, *gUnknown_80FAD10); + flag = TRUE; + } + return flag; +} + +bool8 sub_8059FC8(struct Entity * pokemon,struct Entity * target,struct Move * move,u32 param_4,u8 param_5) +{ + u8 moveType; + u32 movePower; + u32 moveCritChance; + bool8 flag; + s32 local_30 [4]; + u8 auStack_20; + + flag = FALSE; + if (param_5 == 0) { + flag = sub_8055640(pokemon,target,move,0x200,param_4) != 0 ? TRUE : FALSE; + } + if (!flag) { + moveType = GetMoveTypeForMonster(pokemon,move); + movePower = GetMovePower(pokemon,move); + moveCritChance = GetMoveCritChance(move); + sub_806EAF4(pokemon,target,moveType,movePower,moveCritChance,local_30,0x200,move->id,0); + SetMessageArgument_2(gAvailablePokemonNames,pokemon->info,0); + sub_80522F4(pokemon,target,*gUnknown_80FC7C8); + local_30[0] = local_30[0] / 2; + if (local_30[0] == 0) { + local_30[0] = 1; + } + sub_806F370(pokemon,pokemon,local_30[0],0,&auStack_20,0,0x1f8,0x13,1,0); + } + return flag; +} + +bool8 TriAttackMoveAction(struct Entity * pokemon, struct Entity * target, struct Move *move, u32 param_4) +{ + bool8 flag; + + flag = FALSE; + if(sub_8055640(pokemon, target, move, 0x100, param_4)) + { + flag = TRUE; + if(sub_805727C(pokemon, target, gUnknown_80F4DFC)) + { + switch(DungeonRandInt(3)) + { + case 0: + default: + ParalyzeStatusTarget(pokemon, target, FALSE); + break; + case 1: + BurnedStatusTarget(pokemon, target, 0, FALSE); + break; + case 2: + FrozenStatusTarget(pokemon, target, FALSE); + break; + } + } + } + return flag; +} + +bool8 sub_805A120(struct Entity * pokemon,struct Entity * target, struct Move *move, u32 param_4) +{ + struct EntityInfo *r9; + struct EntityInfo *r8; + struct EntityInfo *r7; + struct EntityInfo *sp; + struct Item item; + bool32 flag; + struct Item *item1; + struct Item *item2; + + flag = FALSE; + r9 = pokemon->info; + r7 = r9; + r8 = target->info; + sp = r8; + + SetMessageArgument(gAvailablePokemonNames,pokemon,0); + SetMessageArgument(gAvailablePokemonNames + 0x50,target,0); + if (HasAbility(target, ABILITY_STICKY_HOLD)) { + sub_80522F4(pokemon,target,*gUnknown_80FCCE4); + return FALSE; + } + else if (HasHeldItem(target, ITEM_ALERT_SPECS)) { + sub_80522F4(pokemon,target,*gUnknown_80FD578); + return FALSE; + } + else + { + item1 = &r9->heldItem; + item2 = &r8->heldItem; + if (!(item1->flags & ITEM_FLAG_EXISTS)) + flag = TRUE; + + if(!(item2->flags & ITEM_FLAG_EXISTS)) + flag = TRUE; + + if (flag) + { + sub_80522F4(pokemon,target,*gUnknown_80FC7AC); + return FALSE; + } + else + { + item = r7->heldItem; + r7->heldItem = sp->heldItem; + sp->heldItem = item; + sub_806A6E8(pokemon); + sub_806A6E8(target); + if (r7->unkFB == 0) { + r7->unkFB = 1; + } + sub_80522F4(pokemon,target,*gUnknown_80FC790); + return TRUE; + } + } +} + +bool8 sub_805A210(struct Entity * pokemon, struct Entity * target, struct Move *move, u32 param_4) +{ + bool8 flag; + + gUnknown_202F210++; + flag = sub_8055640(pokemon, target, move, gUnknown_202F210 << 8, param_4) ? TRUE : FALSE; + return flag; +} + +bool8 sub_805A23C(struct Entity * pokemon, struct Entity * target, struct Move *move, u32 param_4) +{ + if(move->id == MOVE_MUD_SPORT) + { + sub_807EA30(0); + } + else + { + sub_807EA30(1); + } + return TRUE; +} + + +bool8 sub_805A258(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + bool8 flag; + + flag = FALSE; + if (sub_8055640(pokemon,target,move,0x100,param_4) != 0) { + flag = TRUE; + if(sub_805727C(pokemon, target, 0)) + { + LowerAccuracyStageTarget(pokemon, target, gUnknown_8106A4C, FALSE); + } + } + return flag; +} + +bool8 sub_805A2A0(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + return sub_805BA50(pokemon, target, move, param_4); +} + +bool8 sub_805A2B0(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + RaiseDefenseStageTarget(pokemon, target, gUnknown_8106A50, 2); + return TRUE; +} + +bool8 sub_805A2C8(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + LowerAttackStageTarget(pokemon, target, gUnknown_8106A4C, 1, 1, TRUE); + return TRUE; +} + +bool8 SurfMoveAction(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + bool8 flag; + u32 uVar2; + + flag = FALSE; + if (target->info->chargingStatus == STATUS_DIVING) { + uVar2 = 0x200; + } + else + { + uVar2 = 0x100; + } + if(sub_8055640(pokemon,target,move,uVar2,param_4) != 0) + flag = TRUE; + return flag; +} + +bool8 RolePlayMoveAction(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + struct EntityInfo * iVar3; + struct EntityInfo * iVar4; + + iVar3 = pokemon->info; + iVar4 = target->info; + if (HasAbility(target, ABILITY_WONDER_GUARD)) { + sub_80522F4(pokemon,target,*gUnknown_80FC854); + return FALSE; + } + else + { + iVar3->abilities[0] = iVar4->abilities[0]; + iVar3->abilities[1] = iVar4->abilities[1]; + gDungeon->unkC = 1; + if (iVar3->unkFB == 0) { + iVar3->unkFB = 1; + } + sub_80522F4(pokemon,target,*gUnknown_80FC81C); + sub_806ABAC(pokemon, pokemon); + return TRUE; + } +} + +bool8 sub_805A394(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + gDungeon->unkE267[1] = gUnknown_80F4F42; + if (sub_807EAA0(1,0) == 0) { + sub_80522F4(pokemon,target,*gUnknown_80FCF7C); + } + return TRUE; +} + +bool8 sub_805A3DC(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + LowerDefenseStageTarget(pokemon, target, gUnknown_8106A4C, 1, 1, TRUE); + return TRUE; +} + +bool8 WishMoveAction(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + WishStatusTarget(pokemon, target); + return TRUE; +} + +bool8 sub_805A408(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + bool8 flag; + + flag = FALSE; + if (sub_8055640(pokemon,target,move,0x100,param_4) != 0) { + flag = TRUE; + if(sub_805727C(pokemon, target, gUnknown_80F4DF2)) + { + CringeStatusTarget(pokemon, target, FALSE); + } + } + return flag; +} + +bool8 sub_805A450(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + sub_80522F4(pokemon,target,*gUnknown_80FC730); + return FALSE; +} + +bool8 sub_805A464(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + bool32 flag; + struct Item item; + struct Position pos; + + flag = FALSE; + if (sub_8055640(pokemon, target, move, 0x100, param_4) != 0) { + flag = TRUE; + if (sub_8057308(pokemon, 0) != 0) { + if (!EntityExists(target)) { + pos.x = 0; + pos.y = 0; + sub_8045C28(&item,0x69,2); + sub_805A7D4(pokemon,target,&item,&pos); + } + } + } + return flag; +} + +bool8 sub_805A4C0(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + sub_80522F4(pokemon,target,*gUnknown_80FC74C); + return FALSE; +} + +bool8 sub_805A4D4(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + NappingStatusTarget(pokemon, target, CalculateStatusTurns(target, gUnknown_80F4E94, FALSE)); + return TRUE; +} + +bool8 sub_805A4FC(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + IngrainedStatusTarget(pokemon, target); + return TRUE; +} + +bool8 SwallowMoveAction(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + u8 *stockpileStage; + + stockpileStage = &target->info->stockpileStage; + if (*stockpileStage != 0) { + HealTargetHP(pokemon,target,gUnknown_80F51D4[*stockpileStage],0,TRUE); + *stockpileStage = 0; + } + else { + sub_80522F4(pokemon,target,*gUnknown_80FC770); + } + return TRUE; +} + +bool8 CurseMoveAction(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + CurseStatusTarget(pokemon, target); + return TRUE; +} + +bool8 sub_805A568(struct Entity * pokemon, struct Entity * target, struct Move *move, u32 param_4) +{ + bool8 flag; + + flag = sub_8055640(pokemon, target, move, 0x100, param_4) ? TRUE : FALSE; + return flag; +} + +bool8 TickleMoveAction(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + u32 stat; + bool32 flag; + + flag = FALSE; + if (sub_8055640(pokemon, target, move, 0x100, param_4) != 0) { + flag = TRUE; + if (sub_805727C(pokemon,pokemon,0) != 0) { + stat = gUnknown_8106A4C; + LowerAttackStageTarget(pokemon,pokemon,stat,1,0,FALSE); + LowerDefenseStageTarget(pokemon,pokemon,stat,1,0,FALSE); + } + } + return flag; +} + +bool8 sub_805A5E8(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 stat, u32 param_5) +{ + struct EntityInfo *iVar2; + bool32 flag; + + flag = FALSE; + if (sub_8055640(pokemon,target,move,0x100,param_5) != 0) { + flag = TRUE; + if (sub_805727C(pokemon,pokemon,gUnknown_80F4DD2) != 0) { + iVar2 = pokemon->info; + RaiseDefenseStageTarget(pokemon,pokemon,stat,1); + if (iVar2->unkFB == 0) { + iVar2->unkFB = 1; + } + } + } + return flag; +} + +bool8 SpitUpMoveAction(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + u8 *stockpileStage; + + stockpileStage = &pokemon->info->stockpileStage; + if (*stockpileStage != 0) { + sub_8055640(pokemon,target,move,*stockpileStage << 8,param_4); + *stockpileStage = 0; + } + else { + sub_80522F4(pokemon,target,*gUnknown_80FCA3C); + } + return TRUE; +} + +bool8 sub_805A688(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + bool8 flag; + + flag = FALSE; + if (sub_8055640(pokemon,target,move,0x100,param_4) != 0) { + flag = TRUE; + if(sub_805727C(pokemon, target, 0)) + { + ConfuseStatusTarget(pokemon, target, FALSE); + } + } + return flag; +} + +bool8 KnockOffMoveAction(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + struct EntityInfo *iVar2; + struct EntityInfo *iVar6; + struct EntityInfo *iVar7; + struct Item heldItem; + struct Position pos; + struct Item *itemPtr; + u32 flag; + u32 itemFlag; + + iVar2 = pokemon->info; + iVar6 = target->info; + iVar7 = iVar6; + SetMessageArgument(gAvailablePokemonNames, pokemon, 0); + SetMessageArgument(gAvailablePokemonNames + 0x50, target, 0); + if (HasAbility(target, ABILITY_STICKY_HOLD)) + { + sub_80522F4(pokemon,target,*gUnknown_80FCCE8); + return FALSE; + } + else if (HasHeldItem(target, ITEM_ALERT_SPECS)) + { + sub_80522F4(pokemon,target,*gUnknown_80FD57C); + return FALSE; + } + else + { + heldItem = iVar6->heldItem; + itemFlag = heldItem.flags; + flag = ITEM_FLAG_EXISTS; + flag &= itemFlag; + if (flag == 0) + { + sub_80522F4(pokemon,target,*gUnknown_80FD18C); + return FALSE; + } + else + { + itemPtr = &iVar7->heldItem; + itemPtr->id = ITEM_NOTHING; + itemPtr->quantity = 0; + itemPtr->flags = 0; + sub_80522F4(pokemon,target,*gUnknown_80FD170); // $m1's item was swatted down! + pos.x = gAdjacentTileOffsets[iVar2->action.direction].x; + pos.y = gAdjacentTileOffsets[iVar2->action.direction].y; + sub_805A7D4(pokemon,target,&heldItem,&pos); + if (sub_80706A4(target, &target->pos) != 0) + { + sub_807D148(pokemon, target, 0, NULL); + } + return TRUE; + } + } +} + +void sub_805A7D4(struct Entity * pokemon, struct Entity * target, struct Item *item, struct Position *pos) +{ + struct Entity stackEntity; + + stackEntity.type = ENTITY_ITEM; + stackEntity.unk24 = 0; + stackEntity.isVisible = TRUE; + stackEntity.unk22 = 0; + stackEntity.info = (struct EntityInfo*) item; + stackEntity.pos.x = target->pos.x + pos->x; + stackEntity.pos.y = target->pos.y + pos->y; + sub_8045394(&stackEntity,(target->pos.x * 0x18 + 4) * 0x100, + (target->pos.y * 0x18 + 4) * 0x100); + stackEntity.spawnGenID = 0; + SetMessageArgument(gUnknown_202DE58,&stackEntity,0); + sub_804652C(pokemon,&stackEntity,item,1,0); +} + +bool8 sub_805A85C(struct Entity * pokemon, struct Entity * target, struct Move *move, u32 param_4) +{ + int x; + int y; + int counter; + struct Position *r9; + struct Position sp_0x18; + struct Move stackMove; + struct Position32 sp_0x28; + struct Tile *tile; + struct Entity *entity; + s32 temp; + s32 temp2; + u8 check; + + + sp_0x18 = target->pos; + sub_806CDD4(target,10,8); + + for(counter = 0; counter < 0x28; counter++) + { + x = DungeonRandInt(3); + y = DungeonRandInt(3); + x--; + y--; + if ((x != 0) || (y != 0)) { + sp_0x18.x = target->pos.x + x; + sp_0x18.y = target->pos.y + y; + if (sub_80705F0(target,&sp_0x18) == 0) goto _0805A8C2; + } + } +_0805A8C2: + if (counter == 0x28) { + sub_80522F4(pokemon,target,*gUnknown_80FEBDC); + return FALSE; + } + temp = sp_0x18.x * 0x1800; + temp += (0xC00); + sp_0x28.x = (temp - target->pixelPos.x) / 0xc; + + temp2 = sp_0x18.y * 0x1800; + temp2 += (0x80 << 5); + sp_0x28.y = ((temp2 - target->pixelPos.y) / 0xc); + + + if (((check = sub_803F428(&target->pos), r9 = &target->pos, check != 0)) || (sub_803F428(&sp_0x18) != 0)) { + for(counter = 0; counter < 0xC; counter++) + { + sub_804539C(target,sp_0x28.x,sp_0x28.y); + sub_803E46C(0x2c); + } + } + tile = GetTileSafe(sp_0x18.x,sp_0x18.y); + entity = tile->monster; + if (entity != NULL) { + if (GetEntityType(entity) == ENTITY_MONSTER) { + InitPokemonMove(&stackMove,MOVE_REGULAR_ATTACK); + if (sub_80571F0(entity,&stackMove) == 0) { + sub_806F370(pokemon,entity,gUnknown_80F4F82,0,0,TYPE_NONE,sub_8057600(move, param_4),0,1,0); + } + if ((sub_8044B28() == 0) && (EntityExists(pokemon))) { + sub_806F370(pokemon,pokemon,gUnknown_80F4F82,0,0,0,0x1fe,0,0,0); + if ((sub_8044B28() == 0) && (EntityExists(pokemon))) goto _0805A9FE; + } + } + else { +_0805A9FE: + if (EntityExists(target)) { + if ((sub_803F428(r9) != 0) || (sub_803F428(&sp_0x18) != 0)) { + for(counter = 0; counter < 0xC; counter++) + { + sub_804539C(target, -sp_0x28.x,-sp_0x28.y); + sub_803E46C(0x2c); + } + } + goto _0805AA5E; + } + } + } + else + { + sub_80694C0(target,sp_0x18.x,sp_0x18.y,0); +_0805AA5E: + if (EntityExists(target)) { +#ifndef NOMATCHING + register struct Position *pos asm("r1"); +#else + struct Position *pos; +#endif + sub_804535C(target, 0); + pos = r9; + if (sub_80706A4(target, pos)) { + sub_807D148(pokemon,target,0,0); + } + if (target->info->isTeamLeader) { + sub_804AC20(r9); + sub_807EC28(0); + } + sub_806A5B8(target); + sub_8075900(target,gDungeon->unk3A08); + } + } + return TRUE; +} + +bool8 sub_805AAD0(struct Entity * pokemon, struct Entity * target, struct Move *move, u32 param_4) +{ + FixedDamageStatusTarget(pokemon, pokemon); + return TRUE; +} + +bool8 BellyDrumMoveAction(struct Entity * pokemon,struct Entity * target, struct Move *move, u32 param_4) +{ + u32 *belly; + u32 newBelly; + struct EntityInfo *info; + bool8 flag; + + info = pokemon->info; + flag = FALSE; + belly = &info->belly; + if (RoundUpFixedPoint(*belly) > 1) { + RaiseAttackStageTarget(pokemon,target,gUnknown_8106A4C,99); + sub_80943A0(&newBelly,1); + *belly = newBelly; + flag = TRUE; + } + else { + SetMessageArgument(gAvailablePokemonNames,pokemon,0); + sub_80522F4(pokemon,target,*gUnknown_80FC5CC); + } + return flag; +} + +bool8 LightScreenMoveAction(struct Entity * pokemon, struct Entity * target, struct Move *move, u32 param_4) +{ + LightScreenStatusTarget(pokemon, target); + return TRUE; +} + +bool8 SecretPowerMoveAction(struct Entity * pokemon, struct Entity * target, struct Move *move, u32 param_4) +{ + bool8 flag; + + flag = FALSE; + if ( sub_8055640(pokemon, target, move, 0x100, param_4) != 0) { + flag = TRUE; + if (sub_805727C(pokemon,target,gUnknown_80F4E06) != 0) { + switch(gUnknown_80F5978[gDungeon->tileset]) { + case 0: + PoisonedStatusTarget(pokemon,target,FALSE); + break; + case 1: + sub_8075C58(pokemon,target,CalculateStatusTurns(target,&gUnknown_80F4E74,TRUE),FALSE); + break; + case 2: + LowerMovementSpeedTarget(pokemon,target,1,FALSE); + break; + case 3: + LowerAttackStageTarget(pokemon,target,gUnknown_8106A4C,1,1,FALSE); + break; + case 4: + LowerDefenseStageTarget(pokemon,target,gUnknown_8106A4C,1,1,FALSE); + break; + case 5: + LowerAccuracyStageTarget(pokemon,target,gUnknown_8106A4C,FALSE); + break; + case 6: + ConfuseStatusTarget(pokemon,target,FALSE); + break; + case 7: + CringeStatusTarget(pokemon,target,FALSE); + break; + case 8: + default: + ParalyzeStatusTarget(pokemon,target,FALSE); + break; + } + } + } + return flag; +} + +bool8 sub_805AC90(struct Entity * pokemon, struct Entity * target, struct Move *move, u32 param_4) +{ + bool8 flag; + + flag = FALSE; + if ( sub_8055640(pokemon, target, move, 0x100, param_4) != 0) { + flag = TRUE; + if (sub_805727C(pokemon,target,gUnknown_80F4DFA) != 0) { + ConfuseStatusTarget(pokemon, target, FALSE); + } + } + return flag; +} + +bool8 BulkUpMoveAction(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + s32 stat = gUnknown_8106A4C; + RaiseAttackStageTarget(pokemon, target, stat, 1); + RaiseDefenseStageTarget(pokemon, target, stat, 1); + return TRUE; +} + +bool8 sub_805AD04(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + PausedStatusTarget(pokemon, target, 1, CalculateStatusTurns(target, &gUnknown_80F4EE0, TRUE), TRUE); + return TRUE; +} + +bool8 sub_805AD34(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + LowerAttackStageTarget(pokemon, target, gUnknown_8106A4C, 2, 1, TRUE); + return TRUE; +} + +static inline bool8 sub_805AD54_sub(struct Entity *entity) +{ + if ((entity->info->joinedAt == 0x4A) || (entity->info->joinedAt == 0x47)) { + return TRUE; + } + else { + return FALSE; + } +} + +bool8 sub_805AD54(struct Entity * pokemon, struct Entity * target, struct Move *move, u32 param_4) +{ + s32 numPossibleTargets; + struct EntityInfo *info; + struct Entity *targetEntity; +#ifndef NONMATCHING + register s32 index asm("r6"); +#else + s32 index; +#endif + struct Entity **possibleTargets; + bool8 flag; + + flag = FALSE; + info = pokemon->info; + if (pokemon->info->isNotTeamMember) { + possibleTargets = gDungeon->wildPokemon; + numPossibleTargets = DUNGEON_MAX_WILD_POKEMON; + } + else { + possibleTargets = gDungeon->teamPokemon; + numPossibleTargets = MAX_TEAM_MEMBERS; + } + for ( index = 0; index < numPossibleTargets; index++) { + targetEntity = possibleTargets[index]; + if ((((EntityExists(targetEntity)) && (pokemon != targetEntity)) && + (CanTarget(pokemon,targetEntity,FALSE,FALSE) == TARGET_CAPABILITY_CANNOT_ATTACK)) && + (targetEntity->info->clientType != ENTITY_MONSTER)) { + if (!sub_805AD54_sub(targetEntity)) { + sub_807D148(pokemon,targetEntity,2,&target->pos); + flag = TRUE; + if (info->unkFB == 0) { + info->unkFB = 1; + } + } + } + } + if (!flag) { + sub_80522F4(pokemon,target,*gUnknown_81004EC); + } + return flag; +} + +bool8 sub_805AE3C(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) +{ + bool8 flag; + + SendThawedMessage(pokemon, target); + flag = sub_8055640(pokemon,target,move,0x80 << 2,param_4) != 0 ? TRUE : FALSE; + return flag; +} + +bool8 sub_805AE74(struct Entity * pokemon, struct Entity * target, struct Move *move, u32 param_4) +{ + bool8 flag; + + flag = FALSE; + if ( sub_8055640(pokemon, target, move, 0x100, param_4) != 0) { + flag = TRUE; + if (sub_805727C(pokemon,target,gUnknown_80F4DDA) != 0) { + LowerDefenseStageTarget(pokemon, target, gUnknown_8106A4C, 1, 1, FALSE); + } + } + return flag; +} + +bool8 sub_805AECC(struct Entity * pokemon, struct Entity * target, struct Move *move, u32 param_4) +{ + bool8 flag; + + flag = FALSE; + SendThawedMessage(pokemon, target); + if ( sub_8055640(pokemon, target, move, 0x100, param_4) != 0) { + flag = TRUE; + if (sub_805727C(pokemon,target,gUnknown_80F4DFE) != 0) { + BurnedStatusTarget(pokemon, target, 0, FALSE); + } + } + return flag; +} + +bool8 PresentMoveAction(struct Entity * pokemon, struct Entity * target, struct Move *move, u32 param_4) +{ + s32 rand1; + s32 rand2; + s32 HP; + bool8 flag; +#ifndef NONMATCHING + register struct Move *move_r6 asm("r6"); + register u32 param_4_r4 asm("r4"); +#else + struct Move *move_r6; + u32 param_4_r4; +#endif + + move_r6 = move; + param_4_r4 = param_4; + + rand1 = DungeonRandInt(100); + rand2 = rand1; + if (rand1 < 10) { + flag = sub_8055864(pokemon,target,move_r6,0x78,param_4_r4) != 0 ? TRUE : FALSE; + return flag; + } + else { + if (rand1 < 0x1e) { + HP = target->info->maxHPStat; + if (HP < 0) { + HP = HP + 3; + } + HealTargetHP(pokemon,target,HP >> 2,0,TRUE); + return TRUE; + } + if (rand2 > 0x3B) { + flag = sub_8055864(pokemon,target,move_r6,0x28,param_4_r4) != 0 ? TRUE : FALSE; + return flag; + } + else { + flag = sub_8055864(pokemon,target,move_r6,0x50,param_4_r4) != 0 ? TRUE : FALSE; + return flag; + } + } +} diff --git a/src/code_8077274_1.c b/src/code_8077274_1.c index 624754630..47b263c1e 100644 --- a/src/code_8077274_1.c +++ b/src/code_8077274_1.c @@ -294,7 +294,7 @@ print: } } -void sub_8078F50(struct Entity * pokemon, struct Entity * target) +void MobileStatusTarget(struct Entity * pokemon, struct Entity * target) { struct EntityInfo *entityInfo_1; struct EntityInfo *entityInfo; @@ -505,7 +505,7 @@ void RestorePPTarget(struct Entity * pokemon,struct Entity * target, s32 param_3 } } -void sub_80793B0(struct Entity * pokemon, struct Entity *target, s32 param_3) +void RaiseAtkStatTarget(struct Entity * pokemon, struct Entity *target, s32 increment) { u32 oldStat; u32 oldStat1; @@ -522,7 +522,7 @@ void sub_80793B0(struct Entity * pokemon, struct Entity *target, s32 param_3) oldStat = entityInfo->atk; oldStat1 = oldStat; - newStat = entityInfo->atk + param_3; + newStat = entityInfo->atk + increment; if (0xfe < newStat) { newStat = 0xff; } @@ -538,7 +538,7 @@ void sub_80793B0(struct Entity * pokemon, struct Entity *target, s32 param_3) } } -void sub_8079420(struct Entity * pokemon, struct Entity *target, s32 param_3) +void RaiseSpAtkStatTarget(struct Entity * pokemon, struct Entity *target, s32 increment) { u32 oldStat; u32 oldStat1; @@ -555,7 +555,7 @@ void sub_8079420(struct Entity * pokemon, struct Entity *target, s32 param_3) oldStat = entityInfo->spAtk; oldStat1 = oldStat; - newStat = entityInfo->spAtk + param_3; + newStat = entityInfo->spAtk + increment; if (0xfe < newStat) { newStat = 0xff; } @@ -571,7 +571,7 @@ void sub_8079420(struct Entity * pokemon, struct Entity *target, s32 param_3) } } -void sub_8079490(struct Entity * pokemon, struct Entity *target, s32 param_3) +void RaiseDefStatTarget(struct Entity * pokemon, struct Entity *target, s32 increment) { u32 oldStat; u32 oldStat1; @@ -588,7 +588,7 @@ void sub_8079490(struct Entity * pokemon, struct Entity *target, s32 param_3) oldStat = entityInfo->def; oldStat1 = oldStat; - newStat = entityInfo->def + param_3; + newStat = entityInfo->def + increment; if (0xfe < newStat) { newStat = 0xff; } @@ -604,7 +604,7 @@ void sub_8079490(struct Entity * pokemon, struct Entity *target, s32 param_3) } } -void sub_8079500(struct Entity * pokemon, struct Entity *target, s32 param_3) +void RaiseSpDefStatTarget(struct Entity * pokemon, struct Entity *target, s32 increment) { u32 oldStat; u32 oldStat1; @@ -621,7 +621,7 @@ void sub_8079500(struct Entity * pokemon, struct Entity *target, s32 param_3) oldStat = entityInfo->spDef; oldStat1 = oldStat; - newStat = entityInfo->spDef + param_3; + newStat = entityInfo->spDef + increment; if (0xfe < newStat) { newStat = 0xff; } @@ -752,7 +752,7 @@ void sub_8079764(struct Entity * pokemon) } } -void sub_80797A0(struct Entity * pokemon, struct Entity * target, u8 newStatus) +void CounterStatusTarget(struct Entity * pokemon, struct Entity * target, u8 newStatus) { struct EntityInfo *entityInfo; diff --git a/src/code_8092334.c b/src/code_8092334.c index 51f47ceef..939177e7b 100644 --- a/src/code_8092334.c +++ b/src/code_8092334.c @@ -4,7 +4,7 @@ #include "item.h" -s16 sub_8094828(u16 r0, u8 id) +s16 sub_8094828(u16 moveID, u8 id) { if(id != 0) { @@ -15,7 +15,7 @@ s16 sub_8094828(u16 r0, u8 id) } else { - return r0; + return moveID; } } diff --git a/src/code_8095824.c b/src/code_8095824.c index 7ea1bd38b..5e45f4d93 100644 --- a/src/code_8095824.c +++ b/src/code_8095824.c @@ -102,7 +102,7 @@ bool8 sub_80952F0(u8 mailType, u32 param_2) for(index = 0, ptr = &gUnknown_203B480[0]; index < 0x20; ptr++, index++) { - if ((ptr->mailType == mailType) && (ptr->unk10 == param_2)) return TRUE; + if ((ptr->mailType == mailType) && (ptr->unk10.unk10 == param_2)) return TRUE; } return FALSE; } @@ -153,7 +153,7 @@ s32 sub_809539C(u8 mailType, u32 param_2) for(index = 0, ptr = &gUnknown_203B480[0]; index < 0x20; ptr++, index++) { - if ((ptr->mailType == mailType) && (ptr->unk10 == param_2)) return index; + if ((ptr->mailType == mailType) && (ptr->unk10.unk10 == param_2)) return index; } return -1; } @@ -175,7 +175,7 @@ s32 sub_8095400(u32 param_1) u32 *ptr; s32 index; - for(index = 0, ptr = &gUnknown_203B480[0].unk10; index < 0x20; ptr += 0xC, index++) + for(index = 0, ptr = &gUnknown_203B480[0].unk10.unk10; index < 0x20; ptr += 0xC, index++) { if (*ptr == param_1) return index; } @@ -200,7 +200,7 @@ void sub_809542C(struct unkStruct_809542C *param_1) preload->dungeon = param_1->unk0; preload->unk8 = uVar4; sub_8094D28(Rand32Bit()); - gUnknown_203B480->unk10 = sub_8094E4C(); + gUnknown_203B480->unk10.unk10 = sub_8094E4C(); gUnknown_203B480->clientSpecies = GetPlayerPokemonStruct()->speciesNum; PrintPokeNameToBuffer(buffer, GetPlayerPokemonStruct()); CopyStringtoBuffer(gUnknown_203B480->playerName, buffer); @@ -324,7 +324,7 @@ void sub_8095774(struct unkStruct_8094924 * a, struct unkStruct_203B480 *b) RestoreDungeonLocation(a, &b->dungeon); RestoreIntegerBits(a, &b->unk8, 0x18); RestoreIntegerBits(a, &b->clientSpecies, 0x9); - RestoreIntegerBits(a, &b->unk10, 0x20); + RestoreIntegerBits(a, &b->unk10.unk10, 0x20); RestoreIntegerBits(a, &b->playerName, 0x50); RestoreIntegerBits(a, &b->unk20.flags, 0x8); RestoreIntegerBits(a, &b->unk20.quantity, 0x8); @@ -349,7 +349,7 @@ void sub_8095824(struct unkStruct_8094924 * a, struct unkStruct_203B480 *b) SaveDungeonLocation(a, &b->dungeon); SaveIntegerBits(a, &b->unk8, 0x18); SaveIntegerBits(a, &b->clientSpecies, 0x9); - SaveIntegerBits(a, &b->unk10, 0x20); + SaveIntegerBits(a, &b->unk10.unk10, 0x20); SaveIntegerBits(a, &b->playerName, 0x50); SaveIntegerBits(a, &b->unk20.flags, 0x8); SaveIntegerBits(a, &b->unk20.quantity, 0x8); diff --git a/src/code_80958E8_1.c b/src/code_80958E8_1.c index 3fbf52e0a..147c93d57 100644 --- a/src/code_80958E8_1.c +++ b/src/code_80958E8_1.c @@ -26,7 +26,7 @@ extern void sub_80965F4(); extern void SortPelipperJobs(); extern struct WonderMail *GetPelipperBoardSlotInfo(u8); u8 sub_8097318(s16 param_1); -extern u8 sub_8095B28(struct WonderMail *); +extern bool8 GenerateMailJobInfo(struct WonderMail *); void SortPelipperJobs(void) { @@ -118,7 +118,7 @@ void GeneratePelipperJobs(void) index++; } for (; index <= range; index++) { - if (sub_8095B28(&gUnknown_203B490->pelipperBoardJobs[index]) == 0) break; + if (!GenerateMailJobInfo(&gUnknown_203B490->pelipperBoardJobs[index])) break; gUnknown_203B490->pelipperBoardJobs[index].rewardType = RandRange(MONEY, BLANK_4); } sub_80965F4(); diff --git a/src/code_80958E8_mid.c b/src/code_80958E8_mid.c new file mode 100644 index 000000000..c21da8362 --- /dev/null +++ b/src/code_80958E8_mid.c @@ -0,0 +1,178 @@ +#include "global.h" +#include "constants/dungeon.h" +#include "constants/friend_area.h" +#include "constants/wonder_mail.h" +#include "item.h" +#include "random.h" +#include "friend_area.h" +#include "code_80958E8.h" + +extern u8 *gFriendAreas; +bool8 sub_8095E38(struct WonderMail *mail, u8 dungeon, u32 floor, u8 param_4); +extern s32 sub_80A29B0(u8 *param_1); +extern s32 GetDungeonFloorCount(u8); +extern bool8 sub_809017C(struct DungeonLocation *); + +bool8 GenerateMailJobDungeonInfo(struct WonderMail *mail) +{ + s32 counter; + s32 floor; + s32 index; + u8 dungeon; + bool8 flag; + u8 dungeonStack [64]; + s32 counter_1; + s32 cap; + s32 floor_1; + s32 halfFloorCount; + s32 floorCount; + struct DungeonLocation dungeonLoc; + + + cap = sub_80A29B0(dungeonStack); + if (cap == 0) { + dungeonStack[0] = DUNGEON_TINY_WOODS; + dungeonStack[1] = DUNGEON_THUNDERWAVE_CAVE; + cap = 2; + } + counter = RandInt(cap); + counter_1 = counter; + do { + dungeon = dungeonStack[counter]; + floorCount = GetDungeonFloorCount(dungeon); + halfFloorCount = floorCount / 2; + floor = RandRange(halfFloorCount, floorCount); + floor_1 = floor; + do { + flag = TRUE; + dungeonLoc.id = dungeon; + dungeonLoc.floor = floor; + + if(sub_809017C(&dungeonLoc)) + flag = FALSE; + + for(index = 0; index < 4; index++) + { + if (sub_8095E38(&gUnknown_203B490->mailboxSlots[index],dungeon,floor,1)) { + flag = FALSE; + } + } + + for(index = 0; index < 8; index++) + { + if (sub_8095E38(&gUnknown_203B490->pelipperBoardJobs[index],dungeon,floor,1)) { + flag = FALSE; + } + } + + for(index = 0; index < 8; index++) + { + if (sub_8095E38(&gUnknown_203B490->jobSlots[index],dungeon,floor,1)) { + flag = FALSE; + } + } + + if (flag) { + mail->dungeon.id = dungeon; + mail->dungeon.floor = floor; + return TRUE; + } + floor++; + if (floor >= floorCount) { + floor = halfFloorCount; + } + } while (floor != floor_1); + + counter++; + if (counter == cap) { + counter = 0; + } + if (counter == counter_1) { + return FALSE; + } + } while( TRUE ); +} + +bool8 sub_8095E38(struct WonderMail *mail, u8 dungeon, u32 floor, u8 param_4) +{ + if (mail->mailType != 0) { + if ((mail->missionType == WONDER_MAIL_MISSION_TYPE_ESCORT_CLIENT) && (param_4 == 1)) { + if (mail->dungeon.id == dungeon) { + return TRUE; + } + } + else if ((mail->dungeon.id == dungeon) && (mail->dungeon.floor == floor)) { + return TRUE; + } + } + return FALSE; +} + +u8 sub_8095E78(void) +{ + bool8 flag; + s32 index; + s32 friendAreaIndex; + s32 counter; + + u8 friendAreaStack[NUM_FRIEND_AREAS]; + + counter = 0; + for(friendAreaIndex = BOUNTIFUL_SEA; friendAreaIndex < NUM_FRIEND_AREAS; friendAreaIndex++) + { + if ((!gFriendAreas[friendAreaIndex]) && + (GetFriendAreaUnlockCondition(friendAreaIndex) == UNLOCK_WONDER_MAIL)) { + flag = FALSE; + + + for(index = 0; index < 4; index++) + { + if((gUnknown_203B490->mailboxSlots[index].mailType != 0) && (gUnknown_203B490->mailboxSlots[index].rewardType == FRIEND_AREA)) + flag = TRUE; + } + + + for(index = 0; index < 8; index++) + { + if((gUnknown_203B490->jobSlots[index].mailType != 0) && (gUnknown_203B490->jobSlots[index].rewardType == FRIEND_AREA)) + flag = TRUE; + } + + if (!flag) { + friendAreaStack[counter] = friendAreaIndex; + counter++; + } + } + } + if (counter != 0) { + return friendAreaStack[RandInt(counter)]; + } + else { + return NONE; + } +} + +u8 sub_8095F28(u8 param_1) +{ + s32 itemID; + s32 counter; + u8 itemStack [NUMBER_OF_ITEM_IDS]; + + counter = 0; + for(itemID = ITEM_STICK; itemID < NUMBER_OF_ITEM_IDS; itemID++) + { + if ((param_1 == 0x63) || + (xxx_bit_lut_lookup_8091E50(param_1, itemID) != 0)) { + if ((!IsThrowableItem(itemID)) && (IsNotMoneyOrUsedTMItem(itemID))) { + itemStack[counter] = itemID; + counter++; + } + } + } + if (counter == 0) { + return ITEM_NOTHING; + } + else { + return itemStack[RandInt(counter)]; + } +} diff --git a/src/friend_area_action_menu.c b/src/friend_area_action_menu.c index 870f8bb83..d831dc617 100644 --- a/src/friend_area_action_menu.c +++ b/src/friend_area_action_menu.c @@ -9,10 +9,6 @@ #include "friend_area_action_menu.h" extern struct unkStruct_203B2BC *gUnknown_203B2BC; -extern struct UnkTextStruct2 gUnknown_80DD74C; -extern struct UnkTextStruct2 gUnknown_80DD704; -extern struct UnkTextStruct2 gUnknown_80DD6EC; -extern struct UnkTextStruct2 gUnknown_80DD71C; extern void sub_80141B4(const char *r0, u32, u32 *r1, u32); extern void sub_8014248(const char *r0, u32, u32, struct MenuItem *r4, u32, u32, u32, u32 *r5, u32); @@ -54,6 +50,58 @@ extern void sub_8027D00(); extern void CreateFriendActionMenu(); extern void sub_80276A8(); +const struct UnkTextStruct2 gUnknown_80DD6EC = +{ + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, + 0x00, 0x00, + NULL +}; + + +const struct UnkTextStruct2 gUnknown_80DD704 = +{ + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x04, 0x00, + 0x09, 0x03, + 0x03, 0x00, + NULL +}; + +const struct UnkTextStruct2 gUnknown_80DD71C = +{ + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x04, 0x00, + 0x06, 0x03, + 0x03, 0x00, + NULL +}; + +const struct UnkTextStruct2 gUnknown_80DD734 = +{ + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x04, 0x00, + 0x06, 0x03, + 0x03, 0x00, + NULL +}; + +const struct UnkTextStruct2 gUnknown_80DD74C = +{ + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x11, 0x00, + 0x1A, 0x02, + 0x02, 0x00, + NULL +}; + + ALIGNED(4) const u8 gFriendAreaActionSayFarewellPrompt[] = _( "You have chosen to say farewell\n" "to this Pokémon.{EXTRA_MSG}" diff --git a/src/friend_rescue_1.c b/src/friend_rescue_1.c index c66a9c8c3..549e9d7ad 100644 --- a/src/friend_rescue_1.c +++ b/src/friend_rescue_1.c @@ -712,7 +712,7 @@ void sub_8033DBC(void) SetFriendRescueMenuState(8); break; case PASSWORD_ENTRY_SOS_MAIL_SUCCESS: - sub_8095274(mail.unk10); + sub_8095274(mail.unk10.unk10); mail.mailType = 2; sub_80951BC(&mail); sub_80141B4(gUnknown_80E4928, 0, 0, 0x101); @@ -729,7 +729,7 @@ void sub_8033DBC(void) case PASSWORD_ENTRY_AOK_MAIL_SUCCESS: mail.mailType = 5; sub_80951FC(&mail); - mail2 = sub_8095228(sub_809539C(1, mail.unk10)); + mail2 = sub_8095228(sub_809539C(1, mail.unk10.unk10)); mail2->mailType = 7; MemoryFill8((u8 *)gUnknown_203B484, 0, sizeof(struct unkStruct_203B484)); SetFriendRescueMenuState(0x40); @@ -1597,10 +1597,10 @@ void sub_8034D74(void) SetFriendRescueMenuState(0x6B); break; case PASSWORD_ENTRY_THANK_YOU_MAIL_SUCCESS: - mail2 = sub_8095228(sub_809539C(4, mail.unk10)); + mail2 = sub_8095228(sub_809539C(4, mail.unk10.unk10)); *mail2 = mail; mail2->mailType = 6; - gUnknown_203B33C->unk420 = mail.unk10; + gUnknown_203B33C->unk420 = mail.unk10.unk10; SetFriendRescueMenuState(0x6D); break; case 7: diff --git a/src/items.c b/src/items.c index 4686c0f0a..421f4cf4f 100644 --- a/src/items.c +++ b/src/items.c @@ -1237,7 +1237,7 @@ const char *sub_8091E50(u8 index) return gUnknown_810AF50[index]; } -u32 xxx_bit_lut_lookup_8091E50(u8 i0, u8 i1) +u8 xxx_bit_lut_lookup_8091E50(u8 i0, u8 i1) { if (i0 > 0x3e) return 0; diff --git a/src/kangaskhan_storage_2.c b/src/kangaskhan_storage_2.c index e920ff752..1eea97e9b 100644 --- a/src/kangaskhan_storage_2.c +++ b/src/kangaskhan_storage_2.c @@ -84,14 +84,6 @@ extern u8 gUnknown_80DB830[]; extern u8 *gUnknown_80D4920[]; extern u8 *gUnknown_80D4928[]; -struct BulkItem_Alt { - union tempHeld - { - struct BulkItem norm; - u32 full_bits; - } temp; -}; - void sub_80177F8(void) { struct unkStruct_203B208 *preload; @@ -180,24 +172,16 @@ void sub_80178D0(void) void sub_8017928(void) { int menuAction; - u32 itemindex; - u32 quantity; - struct BulkItem_Alt item; + struct BulkItem item; if (sub_80144A4(&menuAction) == 0) { switch(menuAction) { case 4: - gTeamInventory_203B460->teamStorage[gUnknown_203B208->unkC.id] -= gUnknown_203B208->unkC.quantity; - - itemindex = gUnknown_203B208->unkC.id; - item.temp.full_bits = (item.temp.full_bits & 0xffffff00) | itemindex; - - quantity = gUnknown_203B208->unkC.quantity << 8; - item.temp.full_bits = (item.temp.full_bits & 0xffff00ff) | quantity; - - AddHeldItemToInventory((struct BulkItem *)&item); + item.id = gUnknown_203B208->unkC.id; + item.quantity = gUnknown_203B208->unkC.quantity; + AddHeldItemToInventory(&item); UpdateKangaskhanStorageState(0x1d); break; case 1: @@ -240,12 +224,9 @@ void sub_80179A8(void) void sub_8017A1C(void) { - u8 itemID_u8; - u32 quantity_cast; s32 itemID; int menuAction; - u16 cast; - struct BulkItem_Alt item; + struct BulkItem item; if (sub_80144A4(&menuAction) == 0) { @@ -254,24 +235,24 @@ void sub_8017A1C(void) case 4: for(itemID = 0; itemID < NUMBER_OF_ITEM_IDS; itemID++) { - itemID_u8 = itemID; - if (sub_801CFE0(itemID) != 0) { - item.temp.full_bits = (item.temp.full_bits & 0xffffff00) | itemID_u8; - if (IsThrowableItem(item.temp.norm.id)) { - quantity_cast = gTeamInventory_203B460->teamStorage[item.temp.norm.id]; - if (quantity_cast > 99) { - item.temp.full_bits = (item.temp.full_bits & 0xffff00ff) | 0x6300; + if(sub_801CFE0(itemID) != 0) + { + item.id = itemID; + if(IsThrowableItem(item.id)) + if(gTeamInventory_203B460->teamStorage[item.id] > 0x63) + { + item.quantity = 0x63; } - else { - cast = quantity_cast << 8; - item.temp.full_bits = (item.temp.full_bits & 0xffff00ff) | cast; + else + { + item.quantity = gTeamInventory_203B460->teamStorage[item.id]; } + else + { + item.quantity = 1; } - else { - item.temp.full_bits = (item.temp.full_bits & 0xffff00ff) | 0x100; - } - gTeamInventory_203B460->teamStorage[item.temp.norm.id] -= item.temp.norm.quantity; - AddHeldItemToInventory((struct BulkItem *)&item); + gTeamInventory_203B460->teamStorage[item.id] -= item.quantity; + AddHeldItemToInventory(&item); } } FillInventoryGaps(); diff --git a/src/kangaskhan_storage_3.c b/src/kangaskhan_storage_3.c index 3f1a90b23..f9a0f27e3 100644 --- a/src/kangaskhan_storage_3.c +++ b/src/kangaskhan_storage_3.c @@ -11,14 +11,6 @@ extern void sub_8017F10(u32); extern u8 sub_801CF14(u32); -struct BulkItem_Alt { - union tempHeld - { - struct BulkItem norm; - u32 full_bits; - } temp; -}; - extern u8 sub_8012FD8(u32 *r0); extern void sub_8013114(u32 *, s32 *); extern void sub_801CBB8(void); @@ -128,10 +120,8 @@ void sub_8018620(void) void sub_80186F8(void) { - struct BulkItem_Alt item; - u16 cast; + struct BulkItem item; s32 itemID; - u8 itemID_u8; switch(sub_801CA08(1)) { @@ -140,26 +130,24 @@ void sub_80186F8(void) { for(itemID = 0; itemID < NUMBER_OF_ITEM_IDS; itemID++) { - itemID_u8 = itemID; // dumb cast needed to match if(sub_801CFE0(itemID) != 0) { - item.temp.full_bits = (item.temp.full_bits & 0xffffff00) | itemID_u8; - if(IsThrowableItem(item.temp.norm.id)) - if(gTeamInventory_203B460->teamStorage[item.temp.norm.id] > 0x63) + item.id = itemID; + if(IsThrowableItem(item.id)) + if(gTeamInventory_203B460->teamStorage[item.id] > 0x63) { - item.temp.full_bits = (item.temp.full_bits & 0xffff00ff) | (0xC6 << 7); + item.quantity = 0x63; } else { - cast = gTeamInventory_203B460->teamStorage[item.temp.norm.id] << 8; - item.temp.full_bits = (item.temp.full_bits & 0xffff00ff) | cast; + item.quantity = gTeamInventory_203B460->teamStorage[item.id]; } else { - item.temp.full_bits = (item.temp.full_bits & 0xffff00ff) | (0x80 << 1); + item.quantity = 1; } - gTeamInventory_203B460->teamStorage[item.temp.norm.id] -= item.temp.norm.quantity; - AddHeldItemToInventory((struct BulkItem *)&item); + gTeamInventory_203B460->teamStorage[item.id] -= item.quantity; + AddHeldItemToInventory(&item); } } FillInventoryGaps(); @@ -198,9 +186,7 @@ void sub_80186F8(void) void sub_8018854(void) { - struct BulkItem_Alt item; - u32 itemsCast; - u32 indexCast; + struct BulkItem item; sub_801CA08(0); sub_8012FD8(&gUnknown_203B20C->unk70); @@ -209,16 +195,10 @@ void sub_8018854(void) { case 3: gUnknown_203B20C->unk8.quantity = gUnknown_203B20C->unkC0; - gTeamInventory_203B460->teamStorage[gUnknown_203B20C->unk8.id] -= gUnknown_203B20C->unk8.quantity; - - indexCast = gUnknown_203B20C->unk8.id; - item.temp.full_bits = (item.temp.full_bits & 0xffffff00) | indexCast; - - itemsCast = (gUnknown_203B20C->unk8.quantity << 8); - item.temp.full_bits = (item.temp.full_bits & 0xffff00ff) | itemsCast; - - AddHeldItemToInventory((struct BulkItem *)&item); + item.id = gUnknown_203B20C->unk8.id; + item.quantity = gUnknown_203B20C->unk8.quantity; + AddHeldItemToInventory(&item); if(sub_801CF14(1) == 0) if(GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE) { @@ -289,10 +269,8 @@ void sub_8018904(void) void sub_80189C8(void) { - struct BulkItem_Alt item; + struct BulkItem item; s32 menuAction; - u32 itemsCast; - u32 indexCast; menuAction = 0; @@ -312,14 +290,9 @@ void sub_80189C8(void) else { gTeamInventory_203B460->teamStorage[gUnknown_203B20C->unk8.id] -= gUnknown_203B20C->unk8.quantity; - - indexCast = gUnknown_203B20C->unk8.id; - item.temp.full_bits = (item.temp.full_bits & 0xffffff00) | indexCast; - - itemsCast = (gUnknown_203B20C->unk8.quantity << 8); - item.temp.full_bits = (item.temp.full_bits & 0xffff00ff) | itemsCast; - - AddHeldItemToInventory((struct BulkItem *)&item); + item.id = gUnknown_203B20C->unk8.id; + item.quantity = gUnknown_203B20C->unk8.quantity; + AddHeldItemToInventory(&item); if(sub_801CF14(1) == 0) if(GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE) { diff --git a/src/kecleon_items_1.c b/src/kecleon_items_1.c index 5fd4c0e73..ea9d3623c 100644 --- a/src/kecleon_items_1.c +++ b/src/kecleon_items_1.c @@ -83,14 +83,6 @@ struct unkStruct_203B214 extern struct unkStruct_203B214 *gUnknown_203B214; extern struct unkStruct_203B214 *gUnknown_203B21C; -struct Item_Alt -{ - union temp { - struct Item norm; - u32 full_bits; - } temp; -}; - extern void sub_8013818(void *, u32, u32, u32); extern u8 sub_8019FB0(void); @@ -523,10 +515,8 @@ u32 sub_8019E40(u32 r0) u32 sub_8019EDC(u8 r0) { - struct Item_Alt slot; + struct Item slot; struct BulkItem *item; - u32 itemIndex; - u32 numItems; if(r0 == 0) { @@ -542,14 +532,9 @@ u32 sub_8019EDC(u8 r0) return 2; case 1: item = GetKecleonShopItem(sub_8019FB0()); - - // NOTE: needs seperate vars to match - itemIndex = item->id << 16; - slot.temp.full_bits = (slot.temp.full_bits & 0xff00ffff) | itemIndex; - numItems = item->quantity << 8; - slot.temp.full_bits = (slot.temp.full_bits & 0xffff00ff) | numItems; - - if(GetStackBuyPrice((struct Item *)&slot) > gTeamInventory_203B460->teamMoney) + slot.id = item->id; + slot.quantity = item->quantity; + if(GetStackBuyPrice(&slot) > gTeamInventory_203B460->teamMoney) { PlayMenuSoundEffect(2); } @@ -675,7 +660,7 @@ void sub_801A0D8(void) u8 auStack204 [80]; struct unkStruct_8090F58 local_7c; u8 auStack112 [80]; - struct Item_Alt item; + struct Item item; u8 temp_calc; // Needed for the shifts.. @@ -691,21 +676,15 @@ void sub_801A0D8(void) { temp_calc = (gUnknown_203B214->unk1E * gUnknown_203B214->unk1C) + index; heldItem = GetKecleonShopItem(temp_calc); - - index_shift = heldItem->id << 16; - item.temp.full_bits = (item.temp.full_bits & 0xff00ffff) | index_shift; - - quantity_shift = heldItem->quantity << 8; - item.temp.full_bits = (item.temp.full_bits & 0xffff00ff) | quantity_shift; - - item.temp.full_bits = (item.temp.full_bits & 0xffffff00) | (ITEM_FLAG_EXISTS | ITEM_FLAG_IN_SHOP); - + item.id = heldItem->id; + item.quantity = heldItem->quantity; + item.flags = (ITEM_FLAG_EXISTS | ITEM_FLAG_IN_SHOP); local_7c.unk0 = 1; local_7c.unk4 = 0; local_7c.unk6 = 0x58; local_7c.unk8 = 1; - sub_8090E14(auStack204,(struct Item *)&item,&local_7c); - buyPrice = GetStackBuyPrice((struct Item *)&item); + sub_8090E14(auStack204,&item,&local_7c); + buyPrice = GetStackBuyPrice(&item); if (buyPrice <= gTeamInventory_203B460->teamMoney) { y = sub_8013800(gUnknown_203B214,index); xxx_call_draw_string(8,y,auStack204,gUnknown_203B214->unk34,0); @@ -746,10 +725,8 @@ u32 sub_801A20C(u32 r0) u32 sub_801A2A8(u8 r0) { - struct Item_Alt slot; + struct Item slot; struct BulkItem *item; - u32 itemIndex; - u32 numItems; if(r0 == 0) { @@ -767,12 +744,10 @@ u32 sub_801A2A8(u8 r0) item = GetKecleonWareItem(sub_801A37C()); // NOTE: needs seperate vars to match - itemIndex = item->id << 16; - slot.temp.full_bits = (slot.temp.full_bits & 0xff00ffff) | itemIndex; - numItems = item->quantity << 8; - slot.temp.full_bits = (slot.temp.full_bits & 0xffff00ff) | numItems; + slot.id = item->id; + slot.quantity = item->quantity; - if(GetStackBuyPrice((struct Item *)&slot) > gTeamInventory_203B460->teamMoney) + if(GetStackBuyPrice(&slot) > gTeamInventory_203B460->teamMoney) { PlayMenuSoundEffect(2); } @@ -897,7 +872,7 @@ void sub_801A4A4(void) u8 buffer1 [80]; struct unkStruct_8090F58 local_7c; u8 buffer2 [80]; - struct Item_Alt item; + struct Item item; u8 temp_calc; // Needed for the shifts.. @@ -913,15 +888,9 @@ void sub_801A4A4(void) { temp_calc = (gUnknown_203B21C->unk1E * gUnknown_203B21C->unk1C) + index; heldItem = GetKecleonWareItem(temp_calc); - - index_shift = heldItem->id << 16; - item.temp.full_bits = (item.temp.full_bits & 0xff00ffff) | index_shift; - - quantity_shift = heldItem->quantity << 8; - item.temp.full_bits = (item.temp.full_bits & 0xffff00ff) | quantity_shift; - - item.temp.full_bits = (item.temp.full_bits & 0xffffff00) | (ITEM_FLAG_EXISTS | ITEM_FLAG_IN_SHOP); - + item.id = heldItem->id; + item.quantity = heldItem->quantity; + item.flags = (ITEM_FLAG_EXISTS | ITEM_FLAG_IN_SHOP); local_7c.unk0 = 1; local_7c.unk4 = 0; local_7c.unk6 = 0x58; diff --git a/src/makuhita_dojo_1.c b/src/makuhita_dojo_1.c index e489e949b..8a849f9f9 100644 --- a/src/makuhita_dojo_1.c +++ b/src/makuhita_dojo_1.c @@ -31,22 +31,40 @@ struct unkStruct_203B31C extern struct unkStruct_203B31C *gUnknown_203B31C; extern struct unkStruct_203B318 *gUnknown_203B318; -extern struct UnkTextStruct2 gUnknown_80E07EC; -extern struct UnkTextStruct2 gUnknown_80E0804; +static const u8 makuhita_dojo_fill[] = "pksdir0"; + +const struct UnkTextStruct2 gUnknown_80E07EC = { + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, + 0x00, 0x00, + NULL +}; +const struct UnkTextStruct2 gUnknown_80E0804 = { + 0x00, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x02, 0x00, + 0x0E, 0x0E, + 0x0E, 0x00, + NULL +}; + +const u8 gMakuhitaDojoHeader[] = "Courses"; +ALIGNED(4) const u8 gUnknown_80E0824[] = _("{STAR_BULLET}"); +ALIGNED(4) const u8 gMakuhitaCoursePlaceholder[] = _("{COLOR_2}%c%s{END_COLOR_TEXT_2}"); +static const u8 makuhita_dojo_fill2[] = "pksdir0"; extern u8 gMakuhitaDojoGoTrain[]; -extern u8 *gUnknown_80D4970[]; extern u8 *gUnknown_80D4934[]; -extern u8 gUnknown_80E081C[]; -extern u8 gUnknown_80E0824[]; -extern u8 gUnknown_80E0828[]; +extern u8 *gUnknown_80D4970[]; extern bool8 sub_8097504(s16); extern s16 sub_80A26CC(s16 r0); extern void sub_8008C54(u32); extern void sub_80073B8(u32); extern void sub_80073E0(u32); -extern void xxx_call_draw_string(s32 x, u32 y, u8 *, u32 , u32); +extern void xxx_call_draw_string(s32 x, u32 y, const u8 *, u32 , u32); extern void sub_8012BC4(u32 x, u32 y, u32, u32, u32, u32); extern u8 sub_80A2740(s32 r0); extern s16 sub_80A2668(u32 r0); @@ -301,7 +319,7 @@ void sub_80304C8(void) void DrawDojoCourseList(void) { u8 dungeonIndex; - s32 sVar3; + s32 mazeIndex; s32 y; s32 iVar6; u32 color; @@ -310,7 +328,7 @@ void DrawDojoCourseList(void) sub_8008C54(gUnknown_203B31C->unk64); sub_80073B8(gUnknown_203B31C->unk64); - xxx_call_draw_string(10,0,gUnknown_80E081C,gUnknown_203B31C->unk64,0); // Courses + xxx_call_draw_string(10,0,gMakuhitaDojoHeader,gUnknown_203B31C->unk64,0); // Courses sub_8012BC4(gUnknown_203B31C->unkCC[2] * 8 + 4,0, gUnknown_203B31C->unk4E + 1,2,7,gUnknown_203B31C->unk64); index = 0; @@ -319,15 +337,15 @@ void DrawDojoCourseList(void) iVar6 = gUnknown_203B31C->unk0[gUnknown_203B31C->unk4E * gUnknown_203B31C->unk4C + index]; dungeonIndex = sub_80A2740(iVar6); - sVar3 = sub_80A2668(iVar6); + mazeIndex = sub_80A2668(iVar6); y = sub_8013800(&gUnknown_203B31C->unk30, index); color = COLOR_WHITE_2; // COLOR_WHITE again? - if (IsMazeCompleted(sVar3)) { + if (IsMazeCompleted(mazeIndex)) { xxx_call_draw_string(8,y,gUnknown_80E0824,gUnknown_203B31C->unk64,0); // Draw Star symbol color = COLOR_GREEN; } - sprintfStatic(buffer,gUnknown_80E0828,color,GetDungeonName1(dungeonIndex)); // "#c%c%s#r" + sprintfStatic(buffer,gMakuhitaCoursePlaceholder,color,GetDungeonName1(dungeonIndex)); // "#c%c%s#r" xxx_call_draw_string(0x10,y,buffer,gUnknown_203B31C->unk64,0); index++; } while (index < gUnknown_203B31C->unk4A); diff --git a/src/moves.c b/src/moves.c index 26b1e7709..408ed6aa2 100644 --- a/src/moves.c +++ b/src/moves.c @@ -265,7 +265,7 @@ u32 GetMoveMaxUpgradeLevel(struct Move *move) return gMovesData[move->id].maxUpgradeLevel; } -u8 GetMoveCritChance(struct Move *move) +u32 GetMoveCritChance(struct Move *move) { return gMovesData[move->id].critChance; } diff --git a/src/rescue_password_menu.c b/src/rescue_password_menu.c index 397f9b4f9..73b416033 100644 --- a/src/rescue_password_menu.c +++ b/src/rescue_password_menu.c @@ -220,7 +220,7 @@ s32 UpdateRescuePasswordMenu(void) nextMenu = MENU_NO_SCREEN_CHANGE; break; case PASSWORD_ENTRY_SOS_MAIL_SUCCESS: - sub_8095274(local_44.unk10); + sub_8095274(local_44.unk10.unk10); DisplayPasswordAcceptScreen(); gRescuePasswordMenu->state = 9; nextMenu = MENU_NO_SCREEN_CHANGE; @@ -245,7 +245,7 @@ s32 UpdateRescuePasswordMenu(void) nextMenu = MENU_NO_SCREEN_CHANGE; local_44.mailType = 5; sub_80951FC(&local_44); - puVar5 = sub_8095228(sub_809539C(1, local_44.unk10)); + puVar5 = sub_8095228(sub_809539C(1, local_44.unk10.unk10)); puVar5->mailType = WONDER_MAIL_TYPE_OKD; MemoryFill8((u8 *)&gUnknown_203B484, 0, sizeof(struct unkStruct_203B484)); break; @@ -265,7 +265,7 @@ s32 UpdateRescuePasswordMenu(void) DisplayPasswordAcceptScreen(); gRescuePasswordMenu->state = 9; nextMenu = MENU_NO_SCREEN_CHANGE; - puVar6 = sub_8095228(sub_809539C(4, local_44.unk10)); + puVar6 = sub_8095228(sub_809539C(4, local_44.unk10.unk10)); *puVar6 = local_44; puVar6->mailType = 6; iVar9 = GetMainMenu(); @@ -462,7 +462,7 @@ u32 sub_8039068(u32 mailMode, u8 *passwordBuffer, struct unkStruct_203B480 *para if (param_3->mailType != WONDER_MAIL_TYPE_SOS) { return PASSWORD_ENTRY_NOT_SOS_MAIL; } - else if ( (sub_80952F0(2, param_3->unk10)) || (sub_80952F0(WONDER_MAIL_TYPE_AOK, param_3->unk10)) || (sub_80952F0(WONDER_MAIL_TYPE_COMPLETED, param_3->unk10)) || (sub_8095298(param_3->unk10))) { + else if ( (sub_80952F0(2, param_3->unk10.unk10)) || (sub_80952F0(WONDER_MAIL_TYPE_AOK, param_3->unk10.unk10)) || (sub_80952F0(WONDER_MAIL_TYPE_COMPLETED, param_3->unk10.unk10)) || (sub_8095298(param_3->unk10.unk10))) { return PASSWORD_ENTRY_DUPLICATE_SOS_MAIL; } else if (FindOpenMailSlot() == -1) { @@ -476,7 +476,7 @@ u32 sub_8039068(u32 mailMode, u8 *passwordBuffer, struct unkStruct_203B480 *para if (param_3->mailType != WONDER_MAIL_TYPE_AOK) { return PASSWORD_ENTRY_NOT_AOK_MAIL; } - else if (!sub_80952F0(1, param_3->unk10)) { + else if (!sub_80952F0(1, param_3->unk10.unk10)) { return PASSWORD_ENTRY_DUPLICATE_AOK_MAIL; } else { @@ -487,7 +487,7 @@ u32 sub_8039068(u32 mailMode, u8 *passwordBuffer, struct unkStruct_203B480 *para if (param_3->mailType != WONDER_MAIL_TYPE_THANK_YOU) { return PASSWORD_ENTRY_NOT_THANK_YOU_MAIL; } - else if ((!sub_80952F0(4, param_3->unk10)) || (param_3->unk28 != sub_8011C34())) { + else if ((!sub_80952F0(4, param_3->unk10.unk10)) || (param_3->unk28 != sub_8011C34())) { return PASSWORD_ENTRY_DUPLICATE_THANK_YOU_MAIL; } else { diff --git a/src/status_actions.c b/src/status_actions.c index 4278dfd61..ffcc9a8e8 100644 --- a/src/status_actions.c +++ b/src/status_actions.c @@ -31,11 +31,11 @@ #include "weather.h" extern void sub_807F43C(struct Entity *, struct Entity *); -extern void sub_8078F50(struct Entity *, struct Entity *); +extern void MobileStatusTarget(struct Entity *, struct Entity *); extern void sub_807DC68(struct Entity *, struct Entity *); extern void sub_8078A58(struct Entity *, struct Entity *, s16, u32); extern u32 sub_803D73C(u32); -extern void sub_8045C28(struct Item *, u8 , u8 *); +extern void sub_8045C28(struct Item *, u8 , u8); extern void sub_80464C8(struct Entity *, struct Position *, struct Item *); extern void sub_8068FE0(struct Entity *, u32, struct Entity *r2); extern void sub_80522F4(struct Entity *r1, struct Entity *r2, const char []); @@ -149,16 +149,6 @@ extern s16 gUnknown_80F4E08; extern u8 gDungeonCamouflageTypes[76]; extern u32 gUnknown_202F228; -struct Position_Alt -{ - union PositionAlt - { - struct Position norm; - u32 full_bits; - } temp; -}; - - extern s16 gUnknown_80F4DC6; extern u8 *gUnknown_80FEFF4[]; @@ -235,16 +225,16 @@ bool8 TransformMoveAction(struct Entity * pokemon, struct Entity * target, struc bool8 sub_805B074(struct Entity * pokemon, struct Entity * target, struct Move *move, s32 param_4) { - bool8 uVar5; + bool8 flag; - uVar5 = FALSE; + flag = FALSE; if (sub_8055640(pokemon,target,move,0x100,param_4) != 0) { - uVar5 = TRUE; + flag = TRUE; if (sub_805727C(pokemon,target,gUnknown_80F4DC6) != 0) { PoisonedStatusTarget(pokemon,target,FALSE); } } - return uVar5; + return flag; } bool8 sub_805B0BC(struct Entity * pokemon, struct Entity * target) @@ -286,9 +276,9 @@ bool8 sub_805B164(struct Entity * pokemon, struct Entity * target, struct Move * bool8 sub_805B17C(struct Entity * pokemon, struct Entity * target, struct Move *move, s32 param_4) { s32 uVar4; - bool8 uVar5; + bool8 flag; - uVar5 = FALSE; + flag = FALSE; if (move->id == MOVE_FIRE_SPIN) { SendThawedMessage(pokemon,target); uVar4 = 0x13c; @@ -300,12 +290,12 @@ bool8 sub_805B17C(struct Entity * pokemon, struct Entity * target, struct Move * } } if (sub_8055640(pokemon,target,move,0x100,param_4) != 0) { - uVar5 = TRUE; + flag = TRUE; if (sub_805727C(pokemon,target,gUnknown_80F4E08) != 0) { SqueezedStatusTarget(pokemon,target,uVar4,0); } } - return uVar5; + return flag; } bool8 PerishSongMoveAction(struct Entity * pokemon,struct Entity * target,struct Move *move, s32 param_4) @@ -391,16 +381,16 @@ bool8 sub_805B314(struct Entity * pokemon,struct Entity * target,struct Move *mo bool8 sub_805B324(struct Entity * pokemon,struct Entity * target,struct Move *move, s32 param_4) { - bool8 uVar3; + bool8 flag; - uVar3 = FALSE; + flag = FALSE; if (sub_8055640(pokemon,target,move,0x100,param_4) != 0) { - uVar3 = TRUE; + flag = TRUE; if (sub_805727C(pokemon,target,gUnknown_80F4DD8) != 0) { LowerAttackStageTarget(pokemon,target,gUnknown_8106A50,1,1,0); } } - return uVar3; + return flag; } bool8 DestinyBondMoveAction(struct Entity * pokemon,struct Entity * target,struct Move *move, s32 param_4) @@ -422,9 +412,9 @@ bool8 MirrorCoatMoveAction(struct Entity * pokemon,struct Entity * target,struct bool8 sub_805B3B4(struct Entity * pokemon,struct Entity * target,struct Move *move, s32 param_4) { - u32 uVar1 = gUnknown_8106A50; - RaiseAttackStageTarget(pokemon,target,uVar1,1); - RaiseDefenseStageTarget(pokemon,target,uVar1,1); + u32 stat = gUnknown_8106A50; + RaiseAttackStageTarget(pokemon,target,stat,1); + RaiseDefenseStageTarget(pokemon,target,stat,1); return TRUE; } @@ -437,11 +427,11 @@ bool8 sub_805B3E0(struct Entity * pokemon,struct Entity * target,struct Move *mo bool8 sub_805B3FC(struct Entity * pokemon,struct Entity * target,struct Move *move, s32 param_4, s32 param_5) { struct EntityInfo *entityInfo; - bool8 uVar4; + bool8 flag; - uVar4 = FALSE; + flag = FALSE; if (sub_8055640(pokemon,target,move,0x100,param_5) != 0) { - uVar4 = TRUE; + flag = TRUE; if (sub_805727C(pokemon,pokemon,gUnknown_80F4DCE) != 0) { entityInfo = pokemon->info; RaiseAttackStageTarget(pokemon,pokemon,param_4,1); @@ -450,7 +440,7 @@ bool8 sub_805B3FC(struct Entity * pokemon,struct Entity * target,struct Move *mo } } } - return uVar4; + return flag; } bool8 sub_805B454(struct Entity * pokemon, struct Entity * target) @@ -553,18 +543,18 @@ bool8 sub_805B668(struct Entity * pokemon, struct Entity * target, struct Move * { bool8 hasLiquidOoze; s32 iVar3; - s32 iVar4; - bool8 uVar5; + s32 newHP; + bool8 flag; - uVar5 = FALSE; + flag = FALSE; hasLiquidOoze = HasAbility(target, ABILITY_LIQUID_OOZE); if (IsSleeping(target)) { iVar3 = sub_8055640(pokemon,target,move,0x100,param_4); if (iVar3 != 0) { - uVar5 = TRUE; - iVar4 = iVar3 / 2; - if (iVar4 < 1) { - iVar4 = 1; + flag = TRUE; + newHP = iVar3 / 2; + if (newHP < 1) { + newHP = 1; } if (sub_8057308(pokemon,0) != 0) { if (pokemon->info->unkFB == 0) { @@ -572,10 +562,10 @@ bool8 sub_805B668(struct Entity * pokemon, struct Entity * target, struct Move * } if (sub_8057308(pokemon,0) != 0) { if (hasLiquidOoze) { - sub_806F324(pokemon,iVar4,0xd,0x1fa); + sub_806F324(pokemon,newHP,0xd,0x1fa); } else { - HealTargetHP(pokemon,pokemon,iVar4,0,TRUE); + HealTargetHP(pokemon,pokemon,newHP,0,TRUE); } } } @@ -584,7 +574,7 @@ bool8 sub_805B668(struct Entity * pokemon, struct Entity * target, struct Move * else { sub_80522F4(pokemon,target,*gPtrSleepingTargetOnlyMessage); } - return uVar5; + return flag; } bool8 sub_805B734(struct Entity * pokemon, struct Entity * target) @@ -689,7 +679,7 @@ bool8 sub_805B910(struct Entity * pokemon, struct Entity * target, struct Move * bool8 sub_805B968(struct Entity * pokemon, struct Entity * target, struct Move * move, s32 param_4) { s32 entityHP; - s32 iVar5; + s32 newHP; bool8 flag; flag = FALSE; @@ -700,11 +690,11 @@ bool8 sub_805B968(struct Entity * pokemon, struct Entity * target, struct Move * if (entityHP < 0) { entityHP = entityHP + 3; } - iVar5 = entityHP >> 2; - if (iVar5 < 1) { - iVar5 = 1; + newHP = entityHP >> 2; + if (newHP < 1) { + newHP = 1; } - sub_806F370(pokemon,pokemon,iVar5,0,0,0,sub_8057600(move,param_4),0,1,0); + sub_806F370(pokemon,pokemon,newHP,0,0,0,sub_8057600(move,param_4),0,1,0); } } return flag; @@ -712,7 +702,7 @@ bool8 sub_805B968(struct Entity * pokemon, struct Entity * target, struct Move * bool8 RockSmashMoveAction(struct Entity * pokemon, struct Entity * target, struct Move *move, s32 param_4) { - bool8 uVar3; + bool8 flag; struct Position pos; #ifdef NONMATCHING @@ -726,17 +716,17 @@ bool8 RockSmashMoveAction(struct Entity * pokemon, struct Entity * target, struc temp = pokemon; temp1 = target; - uVar3 = 0; + flag = 0; if (sub_8069D18(&pos) != 0) { sub_80522F4(temp,temp1,*gUnknown_80FD430); // Can't use that diagonally! } - else if (uVar3 = (sub_804AD34(&pos)), uVar3 != 0) { + else if (flag = (sub_804AD34(&pos)), flag != 0) { sub_80522F4(temp,temp1,*gUnknown_80FD3F0); // It dug the wall in front! } else { sub_80522F4(temp,temp1,*gUnknown_80FD40C); // Can't use that here! } - return uVar3; + return flag; } bool8 sub_805BA44(struct Entity * pokemon, struct Entity * target) @@ -751,13 +741,13 @@ bool8 sub_805BA50(struct Entity * pokemon, struct Entity * target, struct Move * struct EntityInfo *iVar3; struct EntityInfo *iVar5; struct EntityInfo *iVar6; - bool8 uVar6; + bool8 flag; struct Item *pokeItem; struct Item *targetItem; - uVar6 = FALSE; + flag = FALSE; if (sub_8055640(pokemon,target,move,0x100,param_4) != 0) { - uVar6 = TRUE; + flag = TRUE; if (sub_805727C(pokemon,target, 0) != 0) { iVar2 = pokemon->info; iVar3 = pokemon->info; @@ -798,12 +788,12 @@ bool8 sub_805BA50(struct Entity * pokemon, struct Entity * target, struct Move * } } } - return uVar6; + return flag; } bool8 sub_805BB64(struct Entity * pokemon, struct Entity * target) { - sub_80797A0(pokemon, target, STATUS_MINI_COUNTER); + CounterStatusTarget(pokemon, target, STATUS_MINI_COUNTER); return TRUE; } @@ -880,7 +870,7 @@ bool8 sub_805BC70(struct Entity * pokemon, struct Entity * target) bool8 sub_805BC98(struct Entity * pokemon, struct Entity * target, struct Move *move, s32 param_4) { struct EntityInfo *entityInfo; - bool8 uVar3; + bool8 flag; s32 targetHP; s32 pokeHP; u8 local_28; @@ -903,11 +893,11 @@ bool8 sub_805BC98(struct Entity * pokemon, struct Entity * target, struct Move * local_28 = (local_28 == 0); local_27 = (local_27 == 0); - uVar3 = FALSE; + flag = FALSE; if ((local_28 != 0) || (local_27 != 0)) { - uVar3 = TRUE; + flag = TRUE; } - return uVar3; + return flag; } bool8 SilenceOrbAction(struct Entity * pokemon, struct Entity * target) @@ -1152,12 +1142,12 @@ bool8 ShockerOrbAction(struct Entity *pokemon, struct Entity *target) bool8 sub_805C208(struct Entity *pokemon, struct Entity *target, struct Move *move, u32 param_4) { - u32 uVar3; + u32 targetSize; u8 local_24; local_24 = 0; - uVar3 = GetSize(target->info->apparentID); - sub_806F370(pokemon,target,uVar3,1,&local_24,GetMoveType(move),sub_8057600(move,param_4),0,1,0); + targetSize = GetSize(target->info->apparentID); + sub_806F370(pokemon,target,targetSize,1,&local_24,GetMoveType(move),sub_8057600(move,param_4),0,1,0); local_24 = local_24 == 0; return local_24; @@ -1178,16 +1168,14 @@ bool8 sub_805C2A0(struct Entity *pokemon, struct Entity *target) bool8 FillInOrbAction(struct Entity *pokemon,struct Entity *target) { struct Tile *tileToFill; - struct EntityInfo *iVar5; + struct EntityInfo *targetInfo; int y; bool8 filledInTile; int x; - u16 cast_x; - u32 cast_y; - struct Position_Alt tileCoords; + struct Position tileCoords; filledInTile = FALSE; - iVar5 = target->info; + targetInfo = target->info; if (IsBossFight()) { SendMessage(pokemon,*gUnknown_80FD0B8); return FALSE; @@ -1195,20 +1183,17 @@ bool8 FillInOrbAction(struct Entity *pokemon,struct Entity *target) else { // Calculate the coordinates of the tile in front of the user - cast_x = target->pos.x + gAdjacentTileOffsets[iVar5->action.direction].x; - tileCoords.temp.full_bits = (tileCoords.temp.full_bits & 0xffff0000) | cast_x; + tileCoords.x = target->pos.x + gAdjacentTileOffsets[targetInfo->action.direction].x; + tileCoords.y = target->pos.y + gAdjacentTileOffsets[targetInfo->action.direction].y; - cast_y = ((u16)(target->pos.y + gAdjacentTileOffsets[iVar5->action.direction].y)) << 0x10; - tileCoords.temp.full_bits = (tileCoords.temp.full_bits & 0x0000ffff) | cast_y; - - sub_8042A54((struct Position *)&tileCoords); - tileToFill = GetTileSafe(tileCoords.temp.norm.x,tileCoords.temp.norm.y); + sub_8042A54(&tileCoords); + tileToFill = GetTileSafe(tileCoords.x,tileCoords.y); if ((tileToFill->terrainType & (TERRAIN_TYPE_NORMAL | TERRAIN_TYPE_SECONDARY)) == TERRAIN_TYPE_SECONDARY) { tileToFill->terrainType = (tileToFill->terrainType & ~(TERRAIN_TYPE_NORMAL | TERRAIN_TYPE_SECONDARY)) | TERRAIN_TYPE_NORMAL; for(y = -1; y < 2; y++) for(x = -1; x < 2; x++) - sub_80498A8(tileCoords.temp.norm.x + x, tileCoords.temp.norm.y + y); + sub_80498A8(tileCoords.x + x, tileCoords.y + y); filledInTile = TRUE; sub_806CF60(); } @@ -1218,7 +1203,7 @@ bool8 FillInOrbAction(struct Entity *pokemon,struct Entity *target) sub_8049BB0(x,y); if (filledInTile) { - sub_8042A64((struct Position *)&tileCoords); + sub_8042A64(&tileCoords); sub_80522F4(pokemon,target,*gUnknown_80FD0B4); } else { @@ -1264,9 +1249,9 @@ bool8 sub_805C45C(struct Entity *pokemon, struct Entity *target) return TRUE; } -bool8 sub_805C468(struct Entity *pokemon, struct Entity *target) +bool8 MobileOrbAction(struct Entity *pokemon, struct Entity *target) { - sub_8078F50(pokemon, target); + MobileStatusTarget(pokemon, target); return TRUE; } diff --git a/src/thank_you_wonder_mail.c b/src/thank_you_wonder_mail.c index 5a1fcc61f..110afd248 100644 --- a/src/thank_you_wonder_mail.c +++ b/src/thank_you_wonder_mail.c @@ -291,7 +291,7 @@ u32 CreateThankYouMailPelipper(void) mail = sub_8095228(index); gUnknown_203B2C4->unk41C = mail->unk20; gUnknown_203B2C4->mailIndex = index; - gUnknown_203B2C4->unk430 = mail->unk10; + gUnknown_203B2C4->unk430 = mail->unk10.unk10; SetThankYouMailMenuState(5); } else { @@ -841,11 +841,11 @@ void HandleThankYouMailPasswordMenu(void) SetThankYouMailMenuState(PRINT_THANK_YOU_ERROR); break; case PASSWORD_ENTRY_THANK_YOU_MAIL_SUCCESS: - uVar1 = sub_809539C(4,mail1.unk10); + uVar1 = sub_809539C(4,mail1.unk10.unk10); mail = sub_8095228(uVar1); *mail = mail1; mail->mailType = 6; - gUnknown_203B2C4->unk430 = mail1.unk10; + gUnknown_203B2C4->unk430 = mail1.unk10.unk10; SetThankYouMailMenuState(THANK_YOU_PASSWORD_SUCCESS); break; default: @@ -1346,10 +1346,10 @@ void UpdateThankYouMailText(void) case 7: gUnknown_203B2C4->linkError = sub_80381F4(gUnknown_203B2C4->unk40,&gUnknown_203B2C4->unk1B8,&gUnknown_203B2C4->unk1E8); if ( sub_800D588() != '\0') { - gUnknown_203B2C4->unk430 = gUnknown_203B2C4->unk1E8.unk10; + gUnknown_203B2C4->unk430 = gUnknown_203B2C4->unk1E8.unk10.unk10; } else { - gUnknown_203B2C4->unk430 = gUnknown_203B2C4->unk1B8.unk10; + gUnknown_203B2C4->unk430 = gUnknown_203B2C4->unk1B8.unk10.unk10; } break; } diff --git a/src/wonder_mail.c b/src/wonder_mail.c index a19aeab09..1f8ebc377 100644 --- a/src/wonder_mail.c +++ b/src/wonder_mail.c @@ -1471,7 +1471,7 @@ void sub_80293F4(void) sub_8028B04(7); break; case PASSWORD_ENTRY_SOS_MAIL_SUCCESS: - sub_8095274(mail.unk10); + sub_8095274(mail.unk10.unk10); mail.mailType = 2; sub_80951BC(&mail); sub_80141B4(gWonderMailAOKMailReceivedText, 0, &gUnknown_203B2C0->faceFile, 0x101); diff --git a/src/wonder_mail_2.c b/src/wonder_mail_2.c index 00341cb11..8d930e095 100644 --- a/src/wonder_mail_2.c +++ b/src/wonder_mail_2.c @@ -1,4 +1,5 @@ #include "global.h" +#include "constants/item.h" #include "constants/wonder_mail.h" #include "file_system.h" #include "input.h" @@ -389,8 +390,8 @@ void sub_802B3E0(void) mail = sub_8095228(gUnknown_203B2C8->unk1); sub_803C37C(&mail->dungeon, 0, gUnknown_203B2C8->unk114.itemRewards); gUnknown_203B2C8->unk114.teamRankPtsReward = GetDungeonTeamRankPts(&mail->dungeon, 0); - gUnknown_203B2C8->unk114.itemRewards[1] = 0; - gUnknown_203B2C8->unk114.itemRewards[2] = 0; + gUnknown_203B2C8->unk114.itemRewards[1] = ITEM_NOTHING; + gUnknown_203B2C8->unk114.itemRewards[2] = ITEM_NOTHING; gUnknown_203B2C8->unk114.quantity = 10; gUnknown_203B2C8->unk114.friendAreaReward = 0; sub_802F204(&gUnknown_203B2C8->unk114, 0); diff --git a/src/wonder_mail_2_1.c b/src/wonder_mail_2_1.c index 242c478da..0ac2e7d04 100644 --- a/src/wonder_mail_2_1.c +++ b/src/wonder_mail_2_1.c @@ -4,22 +4,7 @@ #include "memory.h" #include "text.h" #include "menu.h" - -struct unkStruct_802C39C -{ - /* 0x0 */ u32 unk0[2]; - /* 0x8 */ struct DungeonLocation *unk8; - /* 0xC */ u8 *unkC; - /* 0x10 */ s16 unk10; - /* 0x12 */ s16 unk12; - /* 0x14 */ u8 unk14; - /* 0x15 */ u8 fill15[0x1B]; - /* 0x36 */ u8 fill36[0x3C - 0x36]; - /* 0x3C */ u8 unk3C[0xC]; - /* 0x48 */ u8 fill48[4]; - /* 0x4C */ u32 unk4C; - /* 0x50 */ u32 unk50[3]; -}; +#include "code_802C39C.h" struct unkStruct_203B2E8 { @@ -365,8 +350,8 @@ void sub_802C6DC(void) void sub_802C750(void) { - struct WonderMail *uVar1; - int iVar2; + struct WonderMail *mail; + int index; s32 r4; s32 r5; struct unkStruct_802C39C local; @@ -380,18 +365,18 @@ void sub_802C750(void) r4 += 4; r5 = r4 + gUnknown_203B2E8->unkA4[2] * 8; sub_8012BC4(r5,0,gUnknown_203B2E8->unk26 + 1,2,7,gUnknown_203B2E8->unk3C); - iVar2 = 0; + index = 0; - if(( iVar2 < gUnknown_203B2E8->unk22)) + if(( index < gUnknown_203B2E8->unk22)) do { - uVar1 = GetJobSlotInfo(gUnknown_203B2E8->unk0[gUnknown_203B2E8->unk26 * gUnknown_203B2E8->unk24 + iVar2]); + mail = GetJobSlotInfo(gUnknown_203B2E8->unk0[gUnknown_203B2E8->unk26 * gUnknown_203B2E8->unk24 + index]); local.unk0[0] = gUnknown_203B2E8->unk3C; - local.unk4C = sub_8013800(&gUnknown_203B2E8->unk8,iVar2); - sub_803B35C(uVar1,local.unk0); + local.y = sub_8013800(&gUnknown_203B2E8->unk8,index); + sub_803B35C(mail,local.unk0); CreateRescueTitle(&local); - iVar2++; - } while( iVar2 < gUnknown_203B2E8->unk22); + index++; + } while( index < gUnknown_203B2E8->unk22); sub_80073E0(gUnknown_203B2E8->unk3C); } diff --git a/src/wonder_mail_2_mid.c b/src/wonder_mail_2_mid.c index 74223a18a..2ab0d7a75 100644 --- a/src/wonder_mail_2_mid.c +++ b/src/wonder_mail_2_mid.c @@ -6,6 +6,7 @@ #include "text.h" #include "pokemon_mail.h" #include "wonder_mail.h" +#include "code_802C39C.h" bool8 IsMailSlotEmpty(u8); extern void sub_8013984(void *); @@ -76,23 +77,6 @@ struct unkStruct_203B2E0 }; extern struct unkStruct_203B2E0 *gUnknown_203B2E0; -struct unkStruct_802C39C -{ - /* 0x0 */ u32 unk0[2]; - /* 0x8 */ struct DungeonLocation *unk8; - /* 0xC */ u8 *unkC; - /* 0x10 */ s16 unk10; - /* 0x12 */ s16 unk12; - /* 0x14 */ u8 unk14; - /* 0x15 */ u8 fill15[0x1B]; - /* 0x34 */ u8 fill34[2]; - /* 0x36 */ u8 fill36[0x3C - 0x36]; - /* 0x3C */ u8 unk3C[0xC]; - /* 0x48 */ u8 fill48[4]; - /* 0x4C */ u32 unk4C; - /* 0x50 */ u32 unk50[3]; -}; - extern struct UnkTextStruct2 gUnknown_80DFCB4; extern struct UnkTextStruct2 gUnknown_80DFC9C; @@ -110,21 +94,21 @@ void CreateMailMenu(void) { struct WonderMail *mail; s32 y; - s32 iVar5; + s32 index; struct unkStruct_802C39C local; u8 buffer [128]; sub_8008C54(gUnknown_203B2D8->unk38); sub_80073B8(gUnknown_203B2D8->unk38); xxx_call_draw_string(gUnknown_203B2D8->unk22 * 8 + 10,0,gMailboxText,gUnknown_203B2D8->unk38,0); - iVar5 = 0; - if (iVar5 < gUnknown_203B2D8->unk1E) { + index = 0; + if (index < gUnknown_203B2D8->unk1E) { do { - mail = GetMailboxSlotInfo(gUnknown_203B2D8->unk0[(gUnknown_203B2D8->unk22 * gUnknown_203B2D8->unk20) + iVar5]); + mail = GetMailboxSlotInfo(gUnknown_203B2D8->unk0[(gUnknown_203B2D8->unk22 * gUnknown_203B2D8->unk20) + index]); local.unk0[0] = gUnknown_203B2D8->unk38; - local.unk4C = sub_8013800(&gUnknown_203B2D8->unk4, iVar5); + local.y = sub_8013800(&gUnknown_203B2D8->unk4, index); if (mail->mailType == 1) { - y = sub_8013800(&gUnknown_203B2D8->unk4, iVar5); + y = sub_8013800(&gUnknown_203B2D8->unk4, index); sub_803B6B0(10,y,6,gUnknown_203B2D8->unk38); PrintPokeNameToBuffer(gAvailablePokemonNames, GetPlayerPokemonStruct()); sprintfStatic(buffer, GetPokemonMailHeadline(mail->dungeon.floor), gAvailablePokemonNames); @@ -133,12 +117,12 @@ void CreateMailMenu(void) else { sub_803B35C(mail,local.unk0); if (IsMailinJobSlot(mail)) { - local.unk3C[11] = 2; + local.unk43 = 2; } CreateRescueTitle(&local); } - iVar5++; - } while (iVar5 < gUnknown_203B2D8->unk1E); + index++; + } while (index < gUnknown_203B2D8->unk1E); } sub_80073E0(gUnknown_203B2D8->unk38); } @@ -326,11 +310,11 @@ void sub_802C328(void) void sub_802C39C(void) { - u32 uVar1; + u32 slotIndex; struct WonderMail *mail; s32 iVar4; s32 x; - s32 iVar6; + s32 index; struct unkStruct_802C39C local; sub_8008C54(gUnknown_203B2E0->unk3C); @@ -343,20 +327,20 @@ void sub_802C39C(void) x = iVar4 + gUnknown_203B2E0->unkA4[2] * 8; sub_8012BC4(x,0,gUnknown_203B2E0->unk26 + 1,2,7,gUnknown_203B2E0->unk3C); - iVar6 = 0; - if(iVar6 < gUnknown_203B2E0->unk22) + index = 0; + if(index < gUnknown_203B2E0->unk22) do { - uVar1 = (gUnknown_203B2E0->unk0[gUnknown_203B2E0->unk26 * gUnknown_203B2E0->unk24 + iVar6]); - mail = GetPelipperBoardSlotInfo(uVar1); + slotIndex = (gUnknown_203B2E0->unk0[gUnknown_203B2E0->unk26 * gUnknown_203B2E0->unk24 + index]); + mail = GetPelipperBoardSlotInfo(slotIndex); local.unk0[0] = gUnknown_203B2E0->unk3C; - local.unk4C = sub_8013800(&gUnknown_203B2E0->unk8,iVar6); + local.y = sub_8013800(&gUnknown_203B2E0->unk8,index); sub_803B35C(mail,local.unk0); - if (IsMailinJobSlot(GetPelipperBoardSlotInfo(uVar1))) { - local.unk3C[11] = 2; + if (IsMailinJobSlot(GetPelipperBoardSlotInfo(slotIndex))) { + local.unk43 = 2; } CreateRescueTitle(&local); - iVar6++; - } while (iVar6 < gUnknown_203B2E0->unk22); + index++; + } while (index < gUnknown_203B2E0->unk22); sub_80073E0(gUnknown_203B2E0->unk3C); } diff --git a/src/wonder_mail_3.c b/src/wonder_mail_3.c index fb3944fa5..8fd82a046 100644 --- a/src/wonder_mail_3.c +++ b/src/wonder_mail_3.c @@ -7,6 +7,7 @@ #include "constants/dungeon.h" #include "wonder_mail.h" #include "wonder_mail_3.h" +#include "code_802C39C.h" const struct UnkTextStruct2 gUnknown_80DFDD4 = { @@ -179,10 +180,10 @@ void sub_802CFD0(void) while(r5 < gUnknown_203B2F4->unk1A) { iVar1 = sub_803B344(gUnknown_203B2F4->unk1E * gUnknown_203B2F4->unk1C + r5); local.unk0[0] = gUnknown_203B2F4->unk34; - local.unk4C = sub_8013800(gUnknown_203B2F4,r5); + local.y = sub_8013800(gUnknown_203B2F4,r5); sub_803B35C(iVar1,local.unk0); - local.unk3C[11] = 1; - local.unk50[0] = iVar1->unk14; + local.unk43 = 1; + local.unk4C = iVar1->unk14; CreateRescueTitle(&local); r5++; } diff --git a/src/wonder_mail_3_mid.c b/src/wonder_mail_3_mid.c index 7949934fe..69acf1e96 100644 --- a/src/wonder_mail_3_mid.c +++ b/src/wonder_mail_3_mid.c @@ -539,12 +539,9 @@ void HandleMissionReward(void) { int moneyReward; const u8 *rankString; - u8 uVar7; + u8 itemID; struct unkStruct_8090F58 local_20; - struct Item_Alt item; - u32 quantity; - u32 index_cast; - u32 index_cast2; + struct Item item; switch(gUnknown_203B310->state) { case 0: @@ -615,29 +612,22 @@ void HandleMissionReward(void) gUnknown_203B310->nextState = 4; break; case 4: - uVar7 = gUnknown_203B310->unk10->itemRewards[0]; - if (uVar7 != 0) + itemID = gUnknown_203B310->unk10->itemRewards[0]; + if (itemID != ITEM_NOTHING) { if (gUnknown_203B310->unk10->moneyReward == 0) { - - // Cast ItemIndex - index_cast = uVar7 << 16; - item.temp.full_bits = (item.temp.full_bits & 0xff00ffff) | index_cast; - - index_cast2 = item.temp.full_bits >> 16; - if (IsThrowableItem(index_cast2)) { - // Cast number items - quantity = (gUnknown_203B310->unk10->quantity << 8); - item.temp.full_bits = (item.temp.full_bits & 0xffff00ff) | quantity; + item.id = itemID; + if (IsThrowableItem(item.id)) { + item.quantity = gUnknown_203B310->unk10->quantity; } else { - item.temp.full_bits = (item.temp.full_bits & 0xffff00ff) | 0; + item.quantity = 0; } - item.temp.full_bits = (item.temp.full_bits & 0xffffff00) | ITEM_FLAG_EXISTS; + item.flags = ITEM_FLAG_EXISTS; local_20.unk0 = 0; local_20.unk4 = 0; local_20.unk8 = 1; - sub_8090E14(gUnknown_202DEA8,(struct Item *)&item,&local_20); + sub_8090E14(gUnknown_202DEA8,&item,&local_20); if (gUnknown_203B310->displayClientDialogueSprite) { sub_80141B4(gUnknown_80E0640,0,&gUnknown_203B310->faceFile,0x10d); gUnknown_203B310->nextState = 5; diff --git a/src/wonder_mail_4.c b/src/wonder_mail_4.c index 19bf393b1..182858268 100644 --- a/src/wonder_mail_4.c +++ b/src/wonder_mail_4.c @@ -6,6 +6,7 @@ #include "pokemon.h" #include "code_8094F88.h" #include "constants/wonder_mail.h" +#include "code_802C39C.h" struct unkStruct_203B320 { @@ -27,27 +28,59 @@ struct unkStruct_203B320 u8 unkC0[4]; }; extern struct unkStruct_203B320 *gUnknown_203B320; -extern struct UnkTextStruct2 gUnknown_80E083C; -extern struct UnkTextStruct2 gUnknown_80E0854; -extern u8 *gUnknown_80E086C[]; + extern struct unkStruct_203B480 *gUnknown_203B480; -struct unkStruct_802C39C -{ - /* 0x0 */ u32 unk0[2]; - /* 0x8 */ struct DungeonLocation *unk8; - /* 0xC */ u8 *unkC; - /* 0x10 */ s16 unk10; - /* 0x12 */ s16 unk12; - /* 0x14 */ u8 unk14; - /* 0x15 */ u8 fill15[0x1B]; - /* 0x34 */ u8 fill34[2]; - /* 0x36 */ u8 fill36[0x3C - 0x36]; - /* 0x3C */ u8 unk3C[0x10]; - /* 0x4C */ u32 unk4C; - /* 0x50 */ u32 unk50[3]; +const struct UnkTextStruct2 gUnknown_80E083C = { + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, + 0x00, 0x00, + NULL }; +const struct UnkTextStruct2 gUnknown_80E0854 = { + 0x00, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x02, 0x00, + 0x18, 0x11, + 0x11, 0x00, + NULL +}; + +extern const u8 SOSList[]; +extern const u8 RequestList[]; +extern const u8 SOSMail[]; +extern const u8 ToDoList[]; +extern const u8 AOKMail[]; +extern const u8 ThanksList[]; +extern const u8 CompletedJobs[]; +extern const u8 OkdRescue[]; + +const u8 * const gUnknown_80E086C[] = +{ + SOSList, + RequestList, + SOSMail, + ToDoList, + AOKMail, + ThanksList, + CompletedJobs, + OkdRescue +}; + +ALIGNED(4) const u8 OkdRescue[] = _("OK{APOSTROPHE}d Rescues"); +ALIGNED(4) const u8 CompletedJobs[] = "Completed Jobs"; +ALIGNED(4) const u8 ThanksList[] = "Thanks List"; +ALIGNED(4) const u8 AOKMail[] = "A-OK Mail"; +ALIGNED(4) const u8 ToDoList[] = "To-Do List"; +ALIGNED(4) const u8 SOSMail[] = "SOS Mail"; +ALIGNED(4) const u8 RequestList[] = "Request List"; +ALIGNED(4) const u8 SOSList[] = "SOS List"; +static const u8 wonder_mail_fill[] = "pksdir0"; + + extern bool8 HasNoWonderMailType(u32); extern s32 sub_8030A74(void); extern void sub_80308A0(void); @@ -236,7 +269,7 @@ void sub_803092C(void) struct unkStruct_203B480 *mail; s32 r4; s32 r5; - s32 r6; + s32 index; struct unkStruct_802C39C local; sub_8008C54(gUnknown_203B320->unk58); @@ -249,43 +282,43 @@ void sub_803092C(void) r5 = r4 + gUnknown_203B320->unkC0[2] * 8; sub_8012BC4(r5,0,gUnknown_203B320->unk42 + 1,1,7,gUnknown_203B320->unk58); - r6 = 0; - if (r6 < gUnknown_203B320->unk3E) { + index = 0; + if (index < gUnknown_203B320->unk3E) { do { - mail = sub_8095228(gUnknown_203B320->unk0[(gUnknown_203B320->unk42 * gUnknown_203B320->unk40) + r6]); + mail = sub_8095228(gUnknown_203B320->unk0[(gUnknown_203B320->unk42 * gUnknown_203B320->unk40) + index]); local.unk0[0] = gUnknown_203B320->unk58; - local.unk4C = sub_8013800(&gUnknown_203B320->unk24,r6); - local.unk3C[8] = 7; - local.unk3C[10] = 0; - local.unk3C[12] = 0; + local.y = sub_8013800(&gUnknown_203B320->unk24,index); + local.unk40 = 7; + local.unk42 = 0; + local.unk44 = 0; - local.unk8 = &mail->dungeon; - local.unkC = mail->playerName; + local.dungeon = &mail->dungeon; + local.playerName = mail->playerName; - local.unk10 = (mail->clientSpecies); - local.unk12 = (mail->clientSpecies); + local.clientSpecies = (mail->clientSpecies); + local.targetSpecies = (mail->clientSpecies); local.unk14 = 0; - local.fill15[0x19] = 5; + local.unk2E = 5; switch(mail->mailType) { case WONDER_MAIL_TYPE_AOK: - local.unk3C[11] = 3; + local.unk43 = 3; break; case WONDER_MAIL_TYPE_THANK_YOU: - local.unk3C[11] = 4; + local.unk43 = 4; break; case 1: case 2: - local.unk3C[11]= 1; + local.unk43 = 1; break; default: - local.unk3C[11]= 0; + local.unk43 = 0; break; } CreateRescueTitle(&local); - r6++; - } while (r6 < gUnknown_203B320->unk3E); + index++; + } while (index < gUnknown_203B320->unk3E); } sub_80073E0(gUnknown_203B320->unk58); } diff --git a/src/wonder_mail_5.c b/src/wonder_mail_5.c index 1842673c9..cf1e75690 100644 --- a/src/wonder_mail_5.c +++ b/src/wonder_mail_5.c @@ -1,34 +1,67 @@ #include "global.h" +#include "constants/wonder_mail.h" #include "memory.h" #include "text.h" #include "input.h" +#include "dungeon.h" +#include "pokemon.h" +#include "code_8094F88.h" +#include "code_800D090.h" +#include "code_802C39C.h" struct unkStruct_203B324 { // size: 0x78 u8 fill0[0xC]; - u8 unkC; + u8 mailIndex; u32 unk10; struct UnkTextStruct2 *unk14; struct UnkTextStruct2 unk18[4]; }; extern struct unkStruct_203B324 *gUnknown_203B324; +extern struct unkStruct_203B480 *gUnknown_203B480; -extern const struct UnkTextStruct2 gUnknown_80E091C; -extern const struct UnkTextStruct2 gUnknown_80E0900; +const struct UnkTextStruct2 gUnknown_80E0900 = { + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, + 0x00, 0x00, + NULL +}; + +const u8 DATA_80E0918[] = {0x01, 0x00, 0x12, 0x00}; + +const struct UnkTextStruct2 gUnknown_80E091C = { + 0x00, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x02, 0x00, + 0x1A, 0x10, + 0x10, 0x00, + DATA_80E0918 +}; + +const u8 gUnknown_80E0934[] = "ID:"; +const u8 gUnknown_80E0938[] = "%-4d"; +static const u8 wonder_mail_fill[] = "pksdir0"; + extern void sub_8030DD4(void); extern void sub_801317C(void *); extern void PlayMenuSoundEffect(u32); extern u32 sub_8012A64(void *, u32); +extern void CreateRescueDescription(void *); +extern void xxx_call_draw_string(u32, u32, const char *, u32, u32); +extern void sub_80073E0(u32); +extern void sub_80073B8(u32); void sub_8030E2C(void); void sub_8030E48(void); -bool8 sub_8030D40(u8 param_1, s32 param_2) +bool8 sub_8030D40(u8 mailIndex, s32 param_2) { gUnknown_203B324 = MemoryAlloc(sizeof(struct unkStruct_203B324), 8); - gUnknown_203B324->unkC = param_1; + gUnknown_203B324->mailIndex = mailIndex; sub_801317C(gUnknown_203B324); gUnknown_203B324->unk10 = param_2; gUnknown_203B324->unk14 = &gUnknown_203B324->unk18[param_2]; @@ -77,3 +110,49 @@ void sub_8030E2C(void) sub_800641C(gUnknown_203B324->unk18, 1, 1); } +void sub_8030E48(void) +{ + u16 uVar2; + struct unkStruct_203B480 *mail; + struct unkStruct_802C39C stack; + u8 buffer [256]; + + mail = &gUnknown_203B480[gUnknown_203B324->mailIndex]; + sub_80073B8(gUnknown_203B324->unk10); + stack.unk0[0] = gUnknown_203B324->unk10; + stack.unk40 = 7; + stack.unk42 = 0; + stack.unk44 = 0; + stack.dungeon = &mail->dungeon; + stack.playerName = mail->playerName; + stack.clientSpecies = mail->clientSpecies; + stack.targetSpecies = mail->clientSpecies; + stack.unk14 = 0; + if (mail->unk20.id == ITEM_NOTHING) { + stack.unk2E = 5; + } + else { + stack.unk2E = 2; + stack.unk34 = mail->unk20.id; + } + switch(mail->mailType) + { + case 2: + case WONDER_MAIL_TYPE_AOK: + stack.unk41 = 10; + break; + case 5: + stack.unk41 = 11; + break; + case WONDER_MAIL_TYPE_NONE: + default: + stack.unk41 = 9; + break; + } + CreateRescueDescription(&stack); + uVar2 = mail->unk10.unk10_u16 % 10000; + xxx_call_draw_string(10,0x68,gUnknown_80E0934,gUnknown_203B324->unk10,0); // ID: + sprintfStatic(buffer,gUnknown_80E0938,uVar2); // %-4d + xxx_call_draw_string(0x44,0x68,buffer,gUnknown_203B324->unk10,0); + sub_80073E0(gUnknown_203B324->unk10); +} diff --git a/src/wonder_mail_6.c b/src/wonder_mail_6.c index 2b0cf67a5..9264d8d9f 100644 --- a/src/wonder_mail_6.c +++ b/src/wonder_mail_6.c @@ -13,7 +13,7 @@ struct unkStruct_203B328 { // size: 0x11C u32 state; - u8 unk4; + u8 mailIndex; u32 unk8; u8 fillC[0x58 - 0xC]; u32 unk58; @@ -241,7 +241,7 @@ void sub_8031258(void) sub_8012D60(&gUnknown_203B328->unk58, gUnknown_80E0948, 0, 0, 3, 2); break; case 4: - sub_8030D40(gUnknown_203B328->unk4, 3); + sub_8030D40(gUnknown_203B328->mailIndex, 3); break; case 5: case 6: @@ -255,11 +255,11 @@ void sub_8031300(void) switch(sub_8030768(1)) { case 3: - gUnknown_203B328->unk4 = sub_80307EC(); + gUnknown_203B328->mailIndex = sub_80307EC(); sub_80310E4(1); break; case 4: - gUnknown_203B328->unk4 = sub_80307EC(); + gUnknown_203B328->mailIndex = sub_80307EC(); sub_80310E4(4); break; case 2: @@ -301,7 +301,7 @@ void sub_803136C(void) void sub_80313D8(u32 state) { - s32 iVar2; + s32 index; s32 local_10; struct unkStruct_203B480 *unused; @@ -322,15 +322,15 @@ void sub_80313D8(u32 state) switch(state) { case 2: - sub_8095240(gUnknown_203B328->unk4); + sub_8095240(gUnknown_203B328->mailIndex); break; case 3: - for(iVar2 = 0; iVar2 < 0x20; iVar2++) + for(index = 0; index < 0x20; index++) { - unused = &gUnknown_203B480[iVar2]; - gUnknown_203B480[iVar2].mailType = 0; - unused = &gUnknown_203B480[iVar2]; - gUnknown_203B480[iVar2].unk20.id = 0; + unused = &gUnknown_203B480[index]; + gUnknown_203B480[index].mailType = 0; + unused = &gUnknown_203B480[index]; + gUnknown_203B480[index].unk20.id = ITEM_NOTHING; } break; } diff --git a/sym_ewram.txt b/sym_ewram.txt index bfa1ce4d7..29f3d1f5f 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -1,1097 +1,1097 @@ -gMPlayTrack_BGM = .; /* 2000000 */ - . += 0x3C0; +gMPlayTrack_BGM: /* 2000000 */ + .space 0x3C0 -gMPlayTrack_Fanfare = .; /* 20003C0 */ - . += 0x1E0; +gMPlayTrack_Fanfare: /* 20003C0 */ + .space 0x1E0 -gMPlayTrack_SE1 = .; /* 20005A0 */ - . += 0x50; +gMPlayTrack_SE1: /* 20005A0 */ + .space 0x50 -gMPlayTrack_SE2 = .; /* 20005F0 */ - . += 0x50; +gMPlayTrack_SE2: /* 20005F0 */ + .space 0x50 -gMPlayTrack_SE3 = .; /* 2000640 */ - . += 0xA0; +gMPlayTrack_SE3: /* 2000640 */ + .space 0xA0 -gMPlayTrack_SE4 = .; /* 20006E0 */ - . += 0xA0; +gMPlayTrack_SE4: /* 20006E0 */ + .space 0xA0 -gMPlayTrack_SE5 = .; /* 2000780 */ - . += 0xA0; +gMPlayTrack_SE5: /* 2000780 */ + .space 0xA0 -gMPlayTrack_SE6 = .; /* 2000820 */ - . += 0x50; +gMPlayTrack_SE6: /* 2000820 */ + .space 0x50 -gMPlayInfo_SE4 = .; /* 2000870 */ - . += 0x40; +gMPlayInfo_SE4: /* 2000870 */ + .space 0x40 -gMPlayInfo_SE5 = .; /* 20008B0 */ - . += 0x40; +gMPlayInfo_SE5: /* 20008B0 */ + .space 0x40 -gMPlayInfo_BGM = .; /* 20008F0 */ - . += 0x40; +gMPlayInfo_BGM: /* 20008F0 */ + .space 0x40 -gMPlayInfo_SE6 = .; /* 2000930 */ - . += 0x40; +gMPlayInfo_SE6: /* 2000930 */ + .space 0x40 -gMPlayInfo_Fanfare = .; /* 2000970 */ - . += 0x40; +gMPlayInfo_Fanfare: /* 2000970 */ + .space 0x40 -gMPlayInfo_SE1 = .; /* 20009B0 */ - . += 0x40; +gMPlayInfo_SE1: /* 20009B0 */ + .space 0x40 -gMPlayInfo_SE3 = .; /* 20009F0 */ - . += 0x40; +gMPlayInfo_SE3: /* 20009F0 */ + .space 0x40 -gMPlayMemAccArea = .; /* 2000A30 */ - . += 0x10; +gMPlayMemAccArea: /* 2000A30 */ + .space 0x10 -gMPlayInfo_SE2 = .; /* 2000A40 */ - . += 0x40; +gMPlayInfo_SE2: /* 2000A40 */ + .space 0x40 -gUnknown_2000A80 = .; /* 2000A80 */ - . += 0x8; +gUnknown_2000A80: /* 2000A80 */ + .space 0x8 -gUnknown_2000A88 = .; /* 2000A88 */ - . += 0x400; +gUnknown_2000A88: /* 2000A88 */ + .space 0x400 -gHeapDescriptorList = .; /* 2000E88 */ - . += 0x20; +gHeapDescriptorList: /* 2000E88 */ + .space 0x20 -gHeapCount = .; /* 2000EA8 */ - . += 0x4; - . = ALIGN(16); +gHeapCount: /* 2000EA8 */ + .space 0x4 -gMainHeapDescriptor = .; /* 2000EB0 */ - . += 0x20; + .align 4 -gMainHeapFreeList = .; /* 2000ED0 */ - . += 0x300; +gMainHeapDescriptor: /* 2000EB0 */ + .space 0x20 -gMainHeap = .; /* 20011D0 */ - . += 0x24000; +gMainHeapFreeList: /* 2000ED0 */ + .space 0x300 -gBGPaletteUsed = .; /* 20251D0 */ - . += 0x20; +gMainHeap: /* 20011D0 */ + .space 0x24000 -gBGPaletteBuffer = .; /* 20251F0 */ - . += 0x400; +gBGPaletteUsed: /* 20251D0 */ + .space 0x20 -gRealInputs = .; /* 20255F0 */ - . += 0x10; +gBGPaletteBuffer: /* 20251F0 */ + .space 0x400 -gUnusedInputsRelated = .; /* 2025600 */ - . += 0x2C; +gRealInputs: /* 20255F0 */ + .space 0x10 -gUnusedScrambledInputJunk = .; /* 202562C */ - . += 0xC; +gUnusedInputsRelated: /* 2025600 */ + .space 0x2C -gBufferedInputs = .; /* 2025638 */ - . += 0x10; +gUnusedScrambledInputJunk: /* 202562C */ + .space 0xC -gCurrentInputs = .; /* 2025648 */ - . += 0x10; +gBufferedInputs: /* 2025638 */ + .space 0x10 -gLastInputs = .; /* 2025658 */ - . += 0x10; +gCurrentInputs: /* 2025648 */ + .space 0x10 -gInputTimers = .; /* 2025668 */ - . += 0x8; +gLastInputs: /* 2025658 */ + .space 0x10 -gUnknown_2025670 = .; /* 2025670 */ - . += 0x2; +gInputTimers: /* 2025668 */ + .space 0x8 -gUnknown_2025672 = .; /* 2025672 */ - . += 0x10; +gUnknown_2025670: /* 2025670 */ + .space 0x2 -gUnknown_2025682 = .; /* 2025682 */ - . += 0x12; +gUnknown_2025672: /* 2025672 */ + .space 0x10 -gUnknown_2025694 = .; /* 2025694 */ - . += 0x4; +gUnknown_2025682: /* 2025682 */ + .space 0x12 -gUnknown_2025698 = .; /* 2025698 */ - . += 0x8; +gUnknown_2025694: /* 2025694 */ + .space 0x4 -gUnknown_20256A0 = .; /* 20256A0 */ - . += 0x808; +gUnknown_2025698: /* 2025698 */ + .space 0x8 -gUnknown_2025EA8 = .; /* 2025EA8 */ - . += 0x400; +gUnknown_20256A0: /* 20256A0 */ + .space 0x808 -gUnknown_20262A8 = .; /* 20262A8 */ - . += 0x400; +gUnknown_2025EA8: /* 2025EA8 */ + .space 0x400 -gSpriteCount = .; /* 20266A8 */ - . += 0x8; +gUnknown_20262A8: /* 20262A8 */ + .space 0x400 -gUnknown_20266B0 = .; /* 20266B0 */ - . += 0x780; +gSpriteCount: /* 20266A8 */ + .space 0x8 -gCharMemCursor = .; /* 2026E30 */ - . += 0x8; +gUnknown_20266B0: /* 20266B0 */ + .space 0x780 -gUnknown_2026E38 = .; /* 2026E38 */ - . += 0x4; +gCharMemCursor: /* 2026E30 */ + .space 0x8 -gUnknown_2026E3C = .; /* 2026E3C */ - . += 0x4; +gUnknown_2026E38: /* 2026E38 */ + .space 0x4 -gUnknown_2026E40 = .; /* 2026E40 */ - . += 0x4; +gUnknown_2026E3C: /* 2026E3C */ + .space 0x4 -gUnknown_2026E44 = .; /* 2026E44 */ - . += 0x4; +gUnknown_2026E40: /* 2026E40 */ + .space 0x4 -gUnknown_2026E48 = .; /* 2026E48 */ - . += 0x4; +gUnknown_2026E44: /* 2026E44 */ + .space 0x4 -gUnknown_2026E4C = .; /* 2026E4C */ - . += 0x2; +gUnknown_2026E48: /* 2026E48 */ + .space 0x4 -gUnknown_2026E4E = .; /* 2026E4E */ - . += 0x2; +gUnknown_2026E4C: /* 2026E4C */ + .space 0x2 -gUnknown_2026E50 = .; /* 2026E50 */ - . += 0x4; +gUnknown_2026E4E: /* 2026E4E */ + .space 0x2 -gUnknown_2026E54 = .; /* 2026E54 */ - . += 0x4; +gUnknown_2026E50: /* 2026E50 */ + .space 0x4 -gUnknown_2026E58 = .; /* 2026E58 */ - . += 0x8; +gUnknown_2026E54: /* 2026E54 */ + .space 0x4 -gUnknown_2026E60 = .; /* 2026E60 */ - . += 0x288; +gUnknown_2026E58: /* 2026E58 */ + .space 0x8 -gUnknown_20270E8 = .; /* 20270E8 */ - . += 0x288; +gUnknown_2026E60: /* 2026E60 */ + .space 0x288 -gUnknown_2027370 = .; /* 2027370 */ - . += 0x48; +gUnknown_20270E8: /* 20270E8 */ + .space 0x288 -gUnknown_20273B8 = .; /* 20273B8 */ - . += 0xD8; +gUnknown_2027370: /* 2027370 */ + .space 0x48 -gCharmaps = .; /* 2027490 */ - . += 0x8; +gUnknown_20273B8: /* 20273B8 */ + .space 0xD8 -gCharacterSpacing = .; /* 2027498 */ - . += 0x2; +gCharmaps: /* 2027490 */ + .space 0x8 -gUnknown_202749A = .; /* 202749A */ - . += 0xB; +gCharacterSpacing: /* 2027498 */ + .space 0x2 -gUnknown_20274A5 = .; /* 20274A5 */ - . += 0x1; +gUnknown_202749A: /* 202749A */ + .space 0xB -gUnknown_20274A6 = .; /* 20274A6 */ - . += 0x6; +gUnknown_20274A5: /* 20274A5 */ + .space 0x1 -gCurrentCharmap = .; /* 20274AC */ - . += 0x4; +gUnknown_20274A6: /* 20274A6 */ + .space 0x6 -gUnknown_20274B0 = .; /* 20274B0 */ - . += 0x4; +gCurrentCharmap: /* 20274AC */ + .space 0x4 -gUnknown_20274B4 = .; /* 20274B4 */ - . += 0x3B00; +gUnknown_20274B0: /* 20274B0 */ + .space 0x4 -gCharmapFiles = .; /* 202AFB4 */ - . += 0x8; +gUnknown_20274B4: /* 20274B4 */ + .space 0x3B00 -gUnknown_202AFBC = .; /* 202AFBC */ - . += 0x4; +gCharmapFiles: /* 202AFB4 */ + .space 0x8 -gUnknown_202AFC0 = .; /* 202AFC0 */ - . += 0x60; +gUnknown_202AFBC: /* 202AFBC */ + .space 0x4 -gUnknown_202B020 = .; /* 202B020 */ - . += 0x4; +gUnknown_202AFC0: /* 202AFC0 */ + .space 0x60 -gUnknown_202B024 = .; /* 202B024 */ - . += 0x4; +gUnknown_202B020: /* 202B020 */ + .space 0x4 -gUnknown_202B028 = .; /* 202B028 */ - . += 0x8; +gUnknown_202B024: /* 202B024 */ + .space 0x4 -gUnknown_202B030 = .; /* 202B030 */ - . += 0x4; +gUnknown_202B028: /* 202B028 */ + .space 0x8 -gUnknown_202B034 = .; /* 202B034 */ - . += 0x4; +gUnknown_202B030: /* 202B030 */ + .space 0x4 -gUnknown_202B038 = .; /* 202B038 */ - . += 0x2; +gUnknown_202B034: /* 202B034 */ + .space 0x4 -gUnknown_202B03A = .; /* 202B03A */ - . += 0x7FE; +gUnknown_202B038: /* 202B038 */ + .space 0x2 -gUnknown_202B838 = .; /* 202B838 */ - . += 0x800; +gUnknown_202B03A: /* 202B03A */ + .space 0x7FE -gUnknown_202C038 = .; /* 202C038 */ - . += 0x800; +gUnknown_202B838: /* 202B838 */ + .space 0x800 -gUnknown_202C838 = .; /* 202C838 */ - . += 0x720; +gUnknown_202C038: /* 202C038 */ + .space 0x800 -gUnknown_202CF58 = .; /* 202CF58 */ - . += 0xE0; +gUnknown_202C838: /* 202C838 */ + .space 0x720 -gUnknown_202D038 = .; /* 202D038 */ - . += 0x4; +gUnknown_202CF58: /* 202CF58 */ + .space 0xE0 -gUnknown_202D03C = .; /* 202D03C */ - . += 0x1C; +gUnknown_202D038: /* 202D038 */ + .space 0x4 -gUnknown_202D058 = .; /* 202D058 */ - . += 0x10; +gUnknown_202D03C: /* 202D03C */ + .space 0x1C -gUnknown_202D068 = .; /* 202D068 */ - . += 0x4; +gUnknown_202D058: /* 202D058 */ + .space 0x10 -gUnknown_202D06C = .; /* 202D06C */ - . += 0xC; +gUnknown_202D068: /* 202D068 */ + .space 0x4 -gUnknown_202D078 = .; /* 202D078 */ - . += 0x20; +gUnknown_202D06C: /* 202D06C */ + .space 0xC -gUnknown_202D098 = .; /* 202D098 */ - . += 0x120; +gUnknown_202D078: /* 202D078 */ + .space 0x20 -gUnknown_202D1B8 = .; /* 202D1B8 */ - . += 0x40; +gUnknown_202D098: /* 202D098 */ + .space 0x120 -gUnknown_202D1F8 = .; /* 202D1F8 */ - . += 0x40; +gUnknown_202D1B8: /* 202D1B8 */ + .space 0x40 -gUnknown_202D238 = .; /* 202D238 */ - . += 0x4; +gUnknown_202D1F8: /* 202D1F8 */ + .space 0x40 -gUnknown_202D23C = .; /* 202D23C */ - . += 0x4; +gUnknown_202D238: /* 202D238 */ + .space 0x4 -gUnknown_202D240 = .; /* 202D240 */ - . += 0x60; +gUnknown_202D23C: /* 202D23C */ + .space 0x4 -gUnknown_202D2A0 = .; /* 202D2A0 */ - . += 0x4; +gUnknown_202D240: /* 202D240 */ + .space 0x60 -gUnknown_202D2A4 = .; /* 202D2A4 */ - . += 0x4; +gUnknown_202D2A0: /* 202D2A0 */ + .space 0x4 -gFileCache = .; /* 202D2A8 */ - . += 0x200; +gUnknown_202D2A4: /* 202D2A4 */ + .space 0x4 -gDecompressBufferPtr = .; /* 202D4A8 */ - . += 0x4; +gFileCache: /* 202D2A8 */ + .space 0x200 -gDecompressBufferStart = .; /* 202D4AC */ - . += 0x4; +gDecompressBufferPtr: /* 202D4A8 */ + .space 0x4 -gDecompressBufferCurrent = .; /* 202D4B0 */ - . += 0x4; +gDecompressBufferStart: /* 202D4AC */ + .space 0x4 -gDecompressBufferByteInInt = .; /* 202D4B4 */ - . += 0x4; +gDecompressBufferCurrent: /* 202D4B0 */ + .space 0x4 -IntrMain_Buffer = .; /* 202D4B8 */ - . += 0x120; +gDecompressBufferByteInInt: /* 202D4B4 */ + .space 0x4 -gIntrTable = .; /* 202D5D8 */ - . += 0x18; +IntrMain_Buffer: /* 202D4B8 */ + .space 0x120 -gIntrCallbacks = .; /* 202D5F0 */ - . += 0x18; +gIntrTable: /* 202D5D8 */ + .space 0x18 -gUnknown_202D608 = .; /* 202D608 */ - . += 0x40; +gIntrCallbacks: /* 202D5F0 */ + .space 0x18 -gUnknown_202D648 = .; /* 202D648 */ - . += 0x40; +gUnknown_202D608: /* 202D608 */ + .space 0x40 -gBGMusicPlayerState = .; /* 202D688 */ - . += 0x2; +gUnknown_202D648: /* 202D648 */ + .space 0x40 -gCurrentBGSong = .; /* 202D68A */ - . += 0x2; +gBGMusicPlayerState: /* 202D688 */ + .space 0x2 -gQueuedBGSong = .; /* 202D68C */ - . += 0x2; +gCurrentBGSong: /* 202D68A */ + .space 0x2 -gCurrentFanfareSong = .; /* 202D68E */ - . += 0x2; +gQueuedBGSong: /* 202D68C */ + .space 0x2 -gFanfareMusicPlayerState = .; /* 202D690 */ - . += 0x2; +gCurrentFanfareSong: /* 202D68E */ + .space 0x2 -gMusicTransitionCounter = .; /* 202D692 */ - . += 0x2; +gFanfareMusicPlayerState: /* 202D690 */ + .space 0x2 -gRestartBGM = .; /* 202D694 */ - . += 0x4; +gMusicTransitionCounter: /* 202D692 */ + .space 0x2 -gBG0Control = .; /* 202D698 */ - . += 0x8; +gRestartBGM: /* 202D694 */ + .space 0x4 -gBG1Control = .; /* 202D6A0 */ - . += 0x8; +gBG0Control: /* 202D698 */ + .space 0x8 -gBG2Control = .; /* 202D6A8 */ - . += 0x8; +gBG1Control: /* 202D6A0 */ + .space 0x8 -gBG3Control = .; /* 202D6B0 */ - . += 0x8; +gBG2Control: /* 202D6A8 */ + .space 0x8 -gBldAlpha_CoeffA = .; /* 202D6B8 */ - . += 0x1; +gBG3Control: /* 202D6B0 */ + .space 0x8 -gBldAlpha_CoeffB = .; /* 202D6B9 */ - . += 0x141; +gBldAlpha_CoeffA: /* 202D6B8 */ + .space 0x1 -gBldAlpha = .; /* 202D7FA */ - . += 0x2; +gBldAlpha_CoeffB: /* 202D6B9 */ + .space 0x141 -gBldCnt = .; /* 202D7FC */ - . += 0x2; +gBldAlpha: /* 202D7FA */ + .space 0x2 -gUnknown_202D7FE = .; /* 202D7FE */ - . += 0x2; +gBldCnt: /* 202D7FC */ + .space 0x2 -gUnknown_202D800 = .; /* 202D800 */ - . += 0x8; +gUnknown_202D7FE: /* 202D7FE */ + .space 0x2 -gUnknown_202D808 = .; /* 202D808 */ - . += 0x108; +gUnknown_202D800: /* 202D800 */ + .space 0x8 -gUnknown_202D910 = .; /* 202D910 */ - . += 0x4; +gUnknown_202D808: /* 202D808 */ + .space 0x108 -gUnknown_202D914 = .; /* 202D914 */ - . += 0x20C; +gUnknown_202D910: /* 202D910 */ + .space 0x4 -gUnknown_202DB20 = .; /* 202DB20 */ - . += 0x10; +gUnknown_202D914: /* 202D914 */ + .space 0x20C -gUnknown_202DB30 = .; /* 202DB30 */ - . += 0x20; +gUnknown_202DB20: /* 202DB20 */ + .space 0x10 -gUnknown_202DB50 = .; /* 202DB50 */ - . += 0x8; +gUnknown_202DB30: /* 202DB30 */ + .space 0x20 -gUnknown_202DB58 = .; /* 202DB58 */ - . += 0x8; +gUnknown_202DB50: /* 202DB50 */ + .space 0x8 -gUnknown_202DB60 = .; /* 202DB60 */ - . += 0x8; +gUnknown_202DB58: /* 202DB58 */ + .space 0x8 -gUnknown_202DB68 = .; /* 202DB68 */ - . += 0x4; +gUnknown_202DB60: /* 202DB60 */ + .space 0x8 -gUnknown_202DB6C = .; /* 202DB6C */ - . += 0x4; +gUnknown_202DB68: /* 202DB68 */ + .space 0x4 -gUnknown_202DB70 = .; /* 202DB70 */ - . += 0x4; +gUnknown_202DB6C: /* 202DB6C */ + .space 0x4 -gUnknown_202DB74 = .; /* 202DB74 */ - . += 0x4; +gUnknown_202DB70: /* 202DB70 */ + .space 0x4 -gUnknown_202DB78 = .; /* 202DB78 */ - . += 0x40; +gUnknown_202DB74: /* 202DB74 */ + .space 0x4 -gUnknown_202DBB8 = .; /* 202DBB8 */ - . += 0x140; +gUnknown_202DB78: /* 202DB78 */ + .space 0x40 -gUnknown_202DCF8 = .; /* 202DCF8 */ - . += 0x120; +gUnknown_202DBB8: /* 202DBB8 */ + .space 0x140 -gUnknown_202DE18 = .; /* 202DE18 */ - . += 0x1; +gUnknown_202DCF8: /* 202DCF8 */ + .space 0x120 -gUnknown_202DE19 = .; /* 202DE19 */ - . += 0x3; +gUnknown_202DE18: /* 202DE18 */ + .space 0x1 -gUnknown_202DE1C = .; /* 202DE1C */ - . += 0x4; +gUnknown_202DE19: /* 202DE19 */ + .space 0x3 -gUnknown_202DE20 = .; /* 202DE20 */ - . += 0x2; +gUnknown_202DE1C: /* 202DE1C */ + .space 0x4 -gUnknown_202DE22 = .; /* 202DE22 */ - . += 0x2; +gUnknown_202DE20: /* 202DE20 */ + .space 0x2 -gUnknown_202DE24 = .; /* 202DE24 */ - . += 0x4; +gUnknown_202DE22: /* 202DE22 */ + .space 0x2 -gUnknown_202DE28 = .; /* 202DE28 */ - . += 0x4; - . = ALIGN(16); +gUnknown_202DE24: /* 202DE24 */ + .space 0x4 -gUnknown_202DE30 = .; /* 202DE30 */ - . += 0x28; +gUnknown_202DE28: /* 202DE28 */ + .space 0x4 + .align 4 -gUnknown_202DE58 = .; /* 202DE58 */ - . += 0x50; +gUnknown_202DE30: /* 202DE30 */ + .space 0x28 -gUnknown_202DEA8 = .; /* 202DEA8 */ - . += 0xF0; +gUnknown_202DE58: /* 202DE58 */ + .space 0x50 -gAvailablePokemonNames = .; /* 202DF98 */ - . += 0x50; +gUnknown_202DEA8: /* 202DEA8 */ + .space 0xF0 -gUnknown_202DFE8 = .; /* 202DFE8 */ - . += 0x50; +gAvailablePokemonNames: /* 202DF98 */ + .space 0x50 -gUnknown_202E038 = .; /* 202E038 ({ARG_POKEMON_2}) */ - . += 0x50; +gUnknown_202DFE8: /* 202DFE8 */ + .space 0x50 -gUnknown_202E088 = .; /* 202E088 ({ARG_POKEMON_3})? */ - . += 0xA0; +gUnknown_202E038: /* 202E038 ({ARG_POKEMON_2}) */ + .space 0x50 -gUnknown_202E128 = .; /* 202E128 */ - . += 0xA0; +gUnknown_202E088: /* 202E088 ({ARG_POKEMON_3})? */ + .space 0xA0 -gUnknown_202E1C8 = .; /* 202E1C8 */ - . += 0x50; +gUnknown_202E128: /* 202E128 */ + .space 0xA0 -gUnknown_202E218 = .; /* 202E218 */ - . += 0xA0; +gUnknown_202E1C8: /* 202E1C8 */ + .space 0x50 -gPlayerName = .; /* 202E2B8 */ - . += 0x320; +gUnknown_202E218: /* 202E218 */ + .space 0xA0 -gUnknown_202E5D8 = .; /* 202E5D8 */ - . += 0x50; +gPlayerName: /* 202E2B8 */ + .space 0x320 -gUnknown_202E628 = .; /* 202E628 */ - . += 0xB8; +gUnknown_202E5D8: /* 202E5D8 */ + .space 0x50 -gUnknown_202E6E0 = .; /* 202E6E0 */ - . += 0x8; +gUnknown_202E628: /* 202E628 */ + .space 0xB8 -gTeamName = .; /* 202E6E8 */ - . += 0x50; +gUnknown_202E6E0: /* 202E6E0 */ + .space 0x8 -gUnknown_202E738 = .; /* 202E738 */ - . += 0x4; +gTeamName: /* 202E6E8 */ + .space 0x50 -gUnknown_202E73C = .; /* 202E73C */ - . += 0x4; +gUnknown_202E738: /* 202E738 */ + .space 0x4 -gUnknown_202E740 = .; /* 202E740 */ - . += 0x4; +gUnknown_202E73C: /* 202E73C */ + .space 0x4 -gUnknown_202E744 = .; /* 202E744 */ - . += 0x4; +gUnknown_202E740: /* 202E740 */ + .space 0x4 -gUnknown_202E748 = .; /* 202E748 */ - . += 0x34; +gUnknown_202E744: /* 202E744 */ + .space 0x4 -gUnknown_202E77C = .; /* 202E77C */ - . += 0x4; +gUnknown_202E748: /* 202E748 */ + .space 0x34 -gUnknown_202E780 = .; /* 202E780 */ - . += 0x4; +gUnknown_202E77C: /* 202E77C */ + .space 0x4 -gUnknown_202E784 = .; /* 202E784 */ - . += 0x4; +gUnknown_202E780: /* 202E780 */ + .space 0x4 -gUnknown_202E788 = .; /* 202E788 */ - . += 0x4; +gUnknown_202E784: /* 202E784 */ + .space 0x4 -gUnknown_202E78C = .; /* 202E78C */ - . += 0x4; +gUnknown_202E788: /* 202E788 */ + .space 0x4 -gUnknown_202E790 = .; /* 202E790 */ - . += 0x1; +gUnknown_202E78C: /* 202E78C */ + .space 0x4 -gUnknown_202E791 = .; /* 202E791 */ - . += 0x3; +gUnknown_202E790: /* 202E790 */ + .space 0x1 -gUnknown_202E794 = .; /* 202E794 */ - . += 0x4; +gUnknown_202E791: /* 202E791 */ + .space 0x3 -gUnknown_202E798 = .; /* 202E798 (on screen dialogue text) */ - . += 0x3E8; +gUnknown_202E794: /* 202E794 */ + .space 0x4 -gUnknown_202EB80 = .; /* 202EB80 */ - . += 0x40; +gUnknown_202E798: /* 202E798 (on screen dialogue text) */ + .space 0x3E8 -gUnknown_202EBC0 = .; /* 202EBC0 */ - . += 0x50; +gUnknown_202EB80: /* 202EB80 */ + .space 0x40 -gUnknown_202EC10 = .; /* 202EC10 */ - . += 0x4; +gUnknown_202EBC0: /* 202EBC0 */ + .space 0x50 -gUnknown_202EC14 = .; /* 202EC14 */ - . += 0x4; +gUnknown_202EC10: /* 202EC10 */ + .space 0x4 -gUnknown_202EC18 = .; /* 202EC18 */ - . += 0x4; +gUnknown_202EC14: /* 202EC14 */ + .space 0x4 -gUnknown_202EC1C = .; /* 202EC1C */ - . += 0x4; +gUnknown_202EC18: /* 202EC18 */ + .space 0x4 -gUnknown_202EC20 = .; /* 202EC20 */ - . += 0x8; +gUnknown_202EC1C: /* 202EC1C */ + .space 0x4 -gUnknown_202EC28 = .; /* 202EC28 */ - . += 0x10; +gUnknown_202EC20: /* 202EC20 */ + .space 0x8 -gUnknown_202EC38 = .; /* 202EC38 */ - . += 0x8; +gUnknown_202EC28: /* 202EC28 */ + .space 0x10 -gUnknown_202EC40 = .; /* 202EC40 */ - . += 0x8; +gUnknown_202EC38: /* 202EC38 */ + .space 0x8 -gUnknown_202EC48 = .; /* 202EC48 */ - . += 0x4; +gUnknown_202EC40: /* 202EC40 */ + .space 0x8 -gUnknown_202EC4C = .; /* 202EC4C */ - . += 0x4; +gUnknown_202EC48: /* 202EC48 */ + .space 0x4 -gRescuePasswordBuffer = .; /* 202EC50 */ - . += 0x38; +gUnknown_202EC4C: /* 202EC4C */ + .space 0x4 -gDungeonNameBannerPalette = .; /* 202EC88 */ - . += 0x4; +gRescuePasswordBuffer: /* 202EC50 */ + .space 0x38 -gDungeonNameBannerFontFile = .; /* 202EC8C */ - . += 0x4; +gDungeonNameBannerPalette: /* 202EC88 */ + .space 0x4 -gDungeonNameBannerFont = .; /* 202EC90 */ - . += 0x4; +gDungeonNameBannerFontFile: /* 202EC8C */ + .space 0x4 -gUnknown_202EC94 = .; /* 202EC94 */ - . += 0x4; +gDungeonNameBannerFont: /* 202EC90 */ + .space 0x4 -gUnknown_202EC98 = .; /* 202EC98 */ - . += 0x4; +gUnknown_202EC94: /* 202EC94 */ + .space 0x4 -gUnknown_202EC9C = .; /* 202EC9C */ - . += 0x4; +gUnknown_202EC98: /* 202EC98 */ + .space 0x4 -gUnknown_202ECA0 = .; /* 202ECA0 */ - . += 0x4; +gUnknown_202EC9C: /* 202EC9C */ + .space 0x4 -gUnknown_202ECA4 = .; /* 202ECA4 */ - . += 0x84; +gUnknown_202ECA0: /* 202ECA0 */ + .space 0x4 -gUnknown_202ED28 = .; /* 202ED28 */ - . += 0x8; +gUnknown_202ECA4: /* 202ECA4 */ + .space 0x84 -gUnknown_202ED30 = .; /* 202ED30 */ - . += 0x88; +gUnknown_202ED28: /* 202ED28 */ + .space 0x8 -gUnknown_202EDB8 = .; /* 202EDB8 */ - . += 0x8; +gUnknown_202ED30: /* 202ED30 */ + .space 0x88 -gUnknown_202EDC0 = .; /* 202EDC0 */ - . += 0x8; +gUnknown_202EDB8: /* 202EDB8 */ + .space 0x8 -gUnknown_202EDC8 = .; /* 202EDC8 */ - . += 0x4; +gUnknown_202EDC0: /* 202EDC0 */ + .space 0x8 -gUnknown_202EDCC = .; /* 202EDCC */ - . += 0x4; +gUnknown_202EDC8: /* 202EDC8 */ + .space 0x4 -gUnknown_202EDD0 = .; /* 202EDD0 */ - . += 0x4; +gUnknown_202EDCC: /* 202EDCC */ + .space 0x4 -gUnknown_202EDD4 = .; /* 202EDD4 */ - . += 0x4; +gUnknown_202EDD0: /* 202EDD0 */ + .space 0x4 -gUnknown_202EDD8 = .; /* 202EDD8 */ - . += 0x4; +gUnknown_202EDD4: /* 202EDD4 */ + .space 0x4 -gUnknown_202EDDC = .; /* 202EDDC */ - . += 0xC; +gUnknown_202EDD8: /* 202EDD8 */ + .space 0x4 -gUnknown_202EDE8 = .; /* 202EDE8 */ - . += 0x14; +gUnknown_202EDDC: /* 202EDDC */ + .space 0xC -gUnknown_202EDFC = .; /* 202EDFC */ - . += 0x4; +gUnknown_202EDE8: /* 202EDE8 */ + .space 0x14 -gUnknown_202EE00 = .; /* 202EE00 */ - . += 0x1; +gUnknown_202EDFC: /* 202EDFC */ + .space 0x4 -gUnknown_202EE01 = .; /* 202EE01 */ - . += 0x1; +gUnknown_202EE00: /* 202EE00 */ + .space 0x1 -gUnknown_202EE02 = .; /* 202EE02 */ - . += 0x2; +gUnknown_202EE01: /* 202EE01 */ + .space 0x1 -gUnknown_202EE04 = .; /* 202EE04 */ - . += 0x4; +gUnknown_202EE02: /* 202EE02 */ + .space 0x2 -gUnknown_202EE08 = .; /* 202EE08 */ - . += 0x4; +gUnknown_202EE04: /* 202EE04 */ + .space 0x4 -gUnknown_202EE0C = .; /* 202EE0C */ - . += 0x4; +gUnknown_202EE08: /* 202EE08 */ + .space 0x4 -gUnknown_202EE10 = .; /* 202EE10 */ - . += 0x28; +gUnknown_202EE0C: /* 202EE0C */ + .space 0x4 -gUnknown_202EE38 = .; /* 202EE38 */ - . += 0x1; +gUnknown_202EE10: /* 202EE10 */ + .space 0x28 -gUnknown_202EE39 = .; /* 202EE39 */ - . += 0x1; +gUnknown_202EE38: /* 202EE38 */ + .space 0x1 -gUnknown_202EE3A = .; /* 202EE3A */ - . += 0xA; +gUnknown_202EE39: /* 202EE39 */ + .space 0x1 -gUnknown_202EE44 = .; /* 202EE44 */ - . += 0x28; +gUnknown_202EE3A: /* 202EE3A */ + .space 0xA -gUnknown_202EE6C = .; /* 202EE6C */ - . += 0x4; +gUnknown_202EE44: /* 202EE44 */ + .space 0x28 -gUnknown_202EE70 = .; /* 202EE70 */ - . += 0x6; +gUnknown_202EE6C: /* 202EE6C */ + .space 0x4 -gUnknown_202EE76 = .; /* 202EE76 */ - . += 0x12; +gUnknown_202EE70: /* 202EE70 */ + .space 0x6 -gDungeonPaletteFile = .; /* 202EE88 */ - . += 0x4; +gUnknown_202EE76: /* 202EE76 */ + .space 0x12 -gUnknown_202EE8C = .; /* 202EE8C */ - . += 0x300; +gDungeonPaletteFile: /* 202EE88 */ + .space 0x4 -gUnknown_202F18C = .; /* 202F18C */ - . += 0x4; +gUnknown_202EE8C: /* 202EE8C */ + .space 0x300 -gUnknown_202F190 = .; /* 202F190 */ - . += 0x18; +gUnknown_202F18C: /* 202F18C */ + .space 0x4 -gUnknown_202F1A8 = .; /* 202F1A8 */ - . += 0x1; +gUnknown_202F190: /* 202F190 */ + .space 0x18 -gUnknown_202F1A9 = .; /* 202F1A9 */ - . += 0x1; +gUnknown_202F1A8: /* 202F1A8 */ + .space 0x1 -gUnknown_202F1AA = .; /* 202F1AA */ - . += 0x1; +gUnknown_202F1A9: /* 202F1A9 */ + .space 0x1 -gUnknown_202F1AB = .; /* 202F1AB */ - . += 0x1; +gUnknown_202F1AA: /* 202F1AA */ + .space 0x1 -gUnknown_202F1AC = .; /* 202F1AC */ - . += 0x1; +gUnknown_202F1AB: /* 202F1AB */ + .space 0x1 -gUnknown_202F1AD = .; /* 202F1AD */ - . += 0x1; +gUnknown_202F1AC: /* 202F1AC */ + .space 0x1 -gUnknown_202F1AE = .; /* 202F1AE */ - . += 0x2; +gUnknown_202F1AD: /* 202F1AD */ + .space 0x1 -gUnknown_202F1B0 = .; /* 202F1B0 */ - . += 0x2; +gUnknown_202F1AE: /* 202F1AE */ + .space 0x2 -gUnknown_202F1B2 = .; /* 202F1B2 */ - . += 0x2; +gUnknown_202F1B0: /* 202F1B0 */ + .space 0x2 -gUnknown_202F1B4 = .; /* 202F1B4 */ - . += 0x4; +gUnknown_202F1B2: /* 202F1B2 */ + .space 0x2 -gUnknown_202F1B8 = .; /* 202F1B8 */ - . += 0x10; +gUnknown_202F1B4: /* 202F1B4 */ + .space 0x4 -gUnknown_202F1C8 = .; /* 202F1C8 */ - . += 0x4; +gUnknown_202F1B8: /* 202F1B8 */ + .space 0x10 -gUnknown_202F1CC = .; /* 202F1CC */ - . += 0x4; +gUnknown_202F1C8: /* 202F1C8 */ + .space 0x4 -gUnknown_202F1D0 = .; /* 202F1D0 */ - . += 0x4; +gUnknown_202F1CC: /* 202F1CC */ + .space 0x4 -gUnknown_202F1D4 = .; /* 202F1D4 */ - . += 0x4; +gUnknown_202F1D0: /* 202F1D0 */ + .space 0x4 -gUnknown_202F1D8 = .; /* 202F1D8 */ - . += 0x4; +gUnknown_202F1D4: /* 202F1D4 */ + .space 0x4 -gUnknown_202F1DC = .; /* 202F1DC */ - . += 0x4; +gUnknown_202F1D8: /* 202F1D8 */ + .space 0x4 -gUnknown_202F1E0 = .; /* 202F1E0 */ - . += 0x1; +gUnknown_202F1DC: /* 202F1DC */ + .space 0x4 -gUnknown_202F1E1 = .; /* 202F1E1 */ - . += 0x7; +gUnknown_202F1E0: /* 202F1E0 */ + .space 0x1 -gUnknown_202F1E8 = .; /* 202F1E8 */ - . += 0x8; +gUnknown_202F1E1: /* 202F1E1 */ + .space 0x7 -gUnknown_202F1F0 = .; /* 202F1F0 */ - . += 0x8; +gUnknown_202F1E8: /* 202F1E8 */ + .space 0x8 -gUnknown_202F1F8 = .; /* 202F1F8 */ - . += 0x4; +gUnknown_202F1F0: /* 202F1F0 */ + .space 0x8 -gUnknown_202F1FC = .; /* 202F1FC */ - . += 0x4; +gUnknown_202F1F8: /* 202F1F8 */ + .space 0x4 -gUnknown_202F200 = .; /* 202F200 */ - . += 0x8; +gUnknown_202F1FC: /* 202F1FC */ + .space 0x4 -gUnknown_202F208 = .; /* 202F208 */ - . += 0x4; +gUnknown_202F200: /* 202F200 */ + .space 0x8 -gUnknown_202F20C = .; /* 202F20C */ - . += 0x4; +gUnknown_202F208: /* 202F208 */ + .space 0x4 -gUnknown_202F210 = .; /* 202F210 */ - . += 0x4; +gUnknown_202F20C: /* 202F20C */ + .space 0x4 -gUnknown_202F214 = .; /* 202F214 */ - . += 0x4; +gUnknown_202F210: /* 202F210 */ + .space 0x4 -gUnknown_202F218 = .; /* 202F218 */ - . += 0x1; +gUnknown_202F214: /* 202F214 */ + .space 0x4 -gUnknown_202F219 = .; /* 202F219 */ - . += 0x1; +gUnknown_202F218: /* 202F218 */ + .space 0x1 -gUnknown_202F21A = .; /* 202F21A */ - . += 0x2; +gUnknown_202F219: /* 202F219 */ + .space 0x1 -gUnknown_202F21C = .; /* 202F21C */ - . += 0x4; +gUnknown_202F21A: /* 202F21A */ + .space 0x2 -gUnknown_202F220 = .; /* 202F220 */ - . += 0x1; +gUnknown_202F21C: /* 202F21C */ + .space 0x4 -gUnknown_202F221 = .; /* 202F221 */ - . += 0x1; +gUnknown_202F220: /* 202F220 */ + .space 0x1 -gUnknown_202F222 = .; /* 202F222 */ - . += 0x2; +gUnknown_202F221: /* 202F221 */ + .space 0x1 -gUnknown_202F224 = .; /* 202F224 */ - . += 0x4; +gUnknown_202F222: /* 202F222 */ + .space 0x2 -gUnknown_202F228 = .; /* 202F228 */ - . += 0x4; +gUnknown_202F224: /* 202F224 */ + .space 0x4 -gUnknown_202F22C = .; /* 202F22C */ - . += 0x1; +gUnknown_202F228: /* 202F228 */ + .space 0x4 -gUnknown_202F22D = .; /* 202F22D */ - . += 0x1; +gUnknown_202F22C: /* 202F22C */ + .space 0x1 -gUnknown_202F22E = .; /* 202F22E */ - . += 0x2; +gUnknown_202F22D: /* 202F22D */ + .space 0x1 -gUnknown_202F230 = .; /* 202F230 */ - . += 0x1; +gUnknown_202F22E: /* 202F22E */ + .space 0x2 -gUnknown_202F231 = .; /* 202F231 */ - . += 0x7; +gUnknown_202F230: /* 202F230 */ + .space 0x1 -gUnknown_202F238 = .; /* 202F238 */ - . += 0x8; +gUnknown_202F231: /* 202F231 */ + .space 0x7 -gUnknown_202F240 = .; /* 202F240 */ - . += 0x8; +gUnknown_202F238: /* 202F238 */ + .space 0x8 -gUnknown_202F248 = .; /* 202F248 */ - . += 0x10; +gUnknown_202F240: /* 202F240 */ + .space 0x8 -gUnknown_202F258 = .; /* 202F258 */ - . += 0x8; +gUnknown_202F248: /* 202F248 */ + .space 0x10 -gUnknown_202F260 = .; /* 202F260 */ - . += 0x8; +gUnknown_202F258: /* 202F258 */ + .space 0x8 -gUnknown_202F268 = .; /* 202F268 */ - . += 0x8; +gUnknown_202F260: /* 202F260 */ + .space 0x8 -gUnknown_202F270 = .; /* 202F270 */ - . += 0x8; +gUnknown_202F268: /* 202F268 */ + .space 0x8 -gUnknown_202F278 = .; /* 202F278 */ - . += 0x60; +gUnknown_202F270: /* 202F270 */ + .space 0x8 -gUnknown_202F2D8 = .; /* 202F2D8 */ - . += 0x8; +gUnknown_202F278: /* 202F278 */ + .space 0x60 -gUnknown_202F2E0 = .; /* 202F2E0 */ - . += 0x8; +gUnknown_202F2D8: /* 202F2D8 */ + .space 0x8 -gUnknown_202F2E8 = .; /* 202F2E8 */ - . += 0x10; +gUnknown_202F2E0: /* 202F2E0 */ + .space 0x8 -gUnknown_202F2F8 = .; /* 202F2F8 */ - . += 0x4; +gUnknown_202F2E8: /* 202F2E8 */ + .space 0x10 -gUnknown_202F2FC = .; /* 202F2FC */ - . += 0x4; +gUnknown_202F2F8: /* 202F2F8 */ + .space 0x4 -gUnknown_202F300 = .; /* 202F300 */ - . += 0x8; +gUnknown_202F2FC: /* 202F2FC */ + .space 0x4 -gUnknown_202F308 = .; /* 202F308 */ - . += 0x4; +gUnknown_202F300: /* 202F300 */ + .space 0x8 -gUnknown_202F30C = .; /* 202F30C */ - . += 0x4; +gUnknown_202F308: /* 202F308 */ + .space 0x4 -gUnknown_202F310 = .; /* 202F310 */ - . += 0x4; +gUnknown_202F30C: /* 202F30C */ + .space 0x4 -gWalkableTileToCrossableTerrain = .; /* 202F314 */ - . += 0x8; +gUnknown_202F310: /* 202F310 */ + .space 0x4 -gUnknown_202F31C = .; /* 202F31C */ - . += 0x8; +gWalkableTileToCrossableTerrain: /* 202F314 */ + .space 0x8 -gUnknown_202F324 = .; /* 202F324 */ - . += 0x8; +gUnknown_202F31C: /* 202F31C */ + .space 0x8 -gUnknown_202F32C = .; /* 202F32C */ - . += 0x1; +gUnknown_202F324: /* 202F324 */ + .space 0x8 -gUnknown_202F32D = .; /* 202F32D */ - . += 0x3; +gUnknown_202F32C: /* 202F32C */ + .space 0x1 -gPotentialItemTargetDirections = .; /* 202F330 */ - . += 0x20; +gUnknown_202F32D: /* 202F32D */ + .space 0x3 -gTargetAhead = .; /* 202F350 */ - . += 0x8; +gPotentialItemTargetDirections: /* 202F330 */ + .space 0x20 -gPotentialItemTargetWeights = .; /* 202F358 */ - . += 0x20; +gTargetAhead: /* 202F350 */ + .space 0x8 -gUnknown_202F378 = .; /* 202F378 */ - . += 0x8; +gPotentialItemTargetWeights: /* 202F358 */ + .space 0x20 -gCanAttackInDirection = .; /* 202F380 */ - . += 0x8; +gUnknown_202F378: /* 202F378 */ + .space 0x8 -gPotentialAttackTargetDirections = .; /* 202F388 */ - . += 0x8; +gCanAttackInDirection: /* 202F380 */ + .space 0x8 -gPotentialAttackTargetWeights = .; /* 202F390 */ - . += 0x20; +gPotentialAttackTargetDirections: /* 202F388 */ + .space 0x8 -gPotentialTargets = .; /* 202F3B0 */ - . += 0x20; +gPotentialAttackTargetWeights: /* 202F390 */ + .space 0x20 -gUnknown_202F3D0 = .; /* 202F3D0 */ - . += 0x8; +gPotentialTargets: /* 202F3B0 */ + .space 0x20 -gUnknown_202F3D8 = .; /* 202F3D8 */ - . += 0x8; +gUnknown_202F3D0: /* 202F3D0 */ + .space 0x8 -gMonsterParameters = .; /* 202F3E0 */ - . += 0x4; +gUnknown_202F3D8: /* 202F3D8 */ + .space 0x8 -gMonsterParametersFile = .; /* 202F3E4 */ - . += 0x4; +gMonsterParameters: /* 202F3E0 */ + .space 0x4 -gUnknown_202F3E8 = .; /* 202F3E8 */ - . += 0x18; +gMonsterParametersFile: /* 202F3E4 */ + .space 0x4 -gRecruitedPokemon = .; /* 202F400 */ - . += 0x90E8; +gUnknown_202F3E8: /* 202F3E8 */ + .space 0x18 -gLevelCurrentPokeId = .; /* 20384E8 */ - . += 0x8; +gRecruitedPokemon: /* 202F400 */ + .space 0x90E8 -gLevelCurrentData = .; /* 20384F0 */ - . += 0x4B0; +gLevelCurrentPokeId: /* 20384E8 */ + .space 0x8 -gItemParametersFile = .; /* 20389A0 */ - . += 0x4; +gLevelCurrentData: /* 20384F0 */ + .space 0x4B0 -gItemParametersData = .; /* 20389A4 */ - . += 0x4; +gItemParametersFile: /* 20389A0 */ + .space 0x4 -gUnknown_20389A8 = .; /* 20389A8 */ - . += 0x268; +gItemParametersData: /* 20389A4 */ + .space 0x4 -gRescueTeamInfo = .; /* 2038C10 */ - . += 0x18; +gUnknown_20389A8: /* 20389A8 */ + .space 0x268 -gBoughtFriendAreas = .; /* 2038C28 (one byte for each friend area) */ - . += 0x3C; +gRescueTeamInfo: /* 2038C10 */ + .space 0x18 -gWazaParametersFile = .; /* 2038C64 */ - . += 0x4; +gBoughtFriendAreas: /* 2038C28 (one byte for each friend area) */ + .space 0x3C -gMovesData = .; /* 2038C68 */ - . += 0x4; +gWazaParametersFile: /* 2038C64 */ + .space 0x4 -gMovesRelated_2038C6C = .; /* 2038C6C */ - . += 0x4; +gMovesData: /* 2038C68 */ + .space 0x4 -gGameOptions = .; /* 2038C70 */ - . += 0x10; +gMovesRelated_2038C6C: /* 2038C6C */ + .space 0x4 -gPlayTime = .; /* 2038C80 */ - . += 0x8; +gGameOptions: /* 2038C70 */ + .space 0x10 -gUnknown_2038C88 = .; /* 2038C88 */ - . += 0x600; +gPlayTime: /* 2038C80 */ + .space 0x8 -gUnknown_2039288 = .; /* 2039288 */ - . += 0x60; +gUnknown_2038C88: /* 2038C88 */ + .space 0x600 -gUnknown_20392E8 = .; /* 20392E8 */ - . += 0xD8; +gUnknown_2039288: /* 2039288 */ + .space 0x60 -gUnknown_20393C0 = .; /* 20393C0 */ - . += 0x88; +gUnknown_20392E8: /* 20392E8 */ + .space 0xD8 -gUnknown_2039448 = .; /* 2039448 */ - . += 0x330; +gUnknown_20393C0: /* 20393C0 */ + .space 0x88 -gUnknown_2039778 = .; /* 2039778 */ - . += 0xC8; +gUnknown_2039448: /* 2039448 */ + .space 0x330 -gExclusivePokemonInfo = .; /* 2039840 */ - . += 0x68; +gUnknown_2039778: /* 2039778 */ + .space 0xC8 -gUnknown_20398A8 = .; /* 20398A8 */ - . += 0x4; +gExclusivePokemonInfo: /* 2039840 */ + .space 0x68 -gUnknown_20398AC = .; /* 20398AC */ - . += 0x4; +gUnknown_20398A8: /* 20398A8 */ + .space 0x4 -gUnknown_20398B0 = .; /* 20398B0 */ - . += 0x4; +gUnknown_20398AC: /* 20398AC */ + .space 0x4 -gUnknown_20398B4 = .; /* 20398B4 */ - . += 0x4; +gUnknown_20398B0: /* 20398B0 */ + .space 0x4 -gUnknown_20398B8 = .; /* 20398B8 */ - . += 0x1; +gUnknown_20398B4: /* 20398B4 */ + .space 0x4 -gUnknown_20398B9 = .; /* 20398B9 */ - . += 0x1; +gUnknown_20398B8: /* 20398B8 */ + .space 0x1 -gUnknown_20398BA = .; /* 20398BA */ - . += 0x2; +gUnknown_20398B9: /* 20398B9 */ + .space 0x1 -gUnknown_20398BC = .; /* 20398BC */ - . += 0x2; +gUnknown_20398BA: /* 20398BA */ + .space 0x2 -gUnknown_20398BE = .; /* 20398BE */ - . += 0x2; +gUnknown_20398BC: /* 20398BC */ + .space 0x2 -gUnknown_20398C0 = .; /* 20398C0 */ - . += 0x4; +gUnknown_20398BE: /* 20398BE */ + .space 0x2 -gUnknown_20398C4 = .; /* 20398C4 */ - . += 0x4; +gUnknown_20398C0: /* 20398C0 */ + .space 0x4 -gUnknown_20398C8 = .; /* 20398C8 */ - . += 0x10; +gUnknown_20398C4: /* 20398C4 */ + .space 0x4 -gUnknown_20398D8 = .; /* 20398D8 */ - . += 0x78; +gUnknown_20398C8: /* 20398C8 */ + .space 0x10 -gUnknown_2039950 = .; /* 2039950 */ - . += 0x8; +gUnknown_20398D8: /* 20398D8 */ + .space 0x78 -gUnknown_2039958 = .; /* 2039958 */ - . += 0x10; +gUnknown_2039950: /* 2039950 */ + .space 0x8 -gUnknown_2039968 = .; /* 2039968 */ - . += 0x10; +gUnknown_2039958: /* 2039958 */ + .space 0x10 -gUnknown_2039978 = .; /* 2039978 */ - . += 0x8; +gUnknown_2039968: /* 2039968 */ + .space 0x10 -gUnknown_2039980 = .; /* 2039980 */ - . += 0x10; +gUnknown_2039978: /* 2039978 */ + .space 0x8 -gUnknown_2039990 = .; /* 2039990 */ - . += 0x2; +gUnknown_2039980: /* 2039980 */ + .space 0x10 -gUnknown_2039992 = .; /* 2039992 */ - . += 0x6; +gUnknown_2039990: /* 2039990 */ + .space 0x2 -gUnknown_2039998 = .; /* 2039998 */ - . += 0x44; +gUnknown_2039992: /* 2039992 */ + .space 0x6 -gUnknown_20399DC = .; /* 20399DC */ - . += 0x2; +gUnknown_2039998: /* 2039998 */ + .space 0x44 -gUnknown_20399DE = .; /* 20399DE */ - . += 0x2; +gUnknown_20399DC: /* 20399DC */ + .space 0x2 -gUnknown_20399E0 = .; /* 20399E0 */ - . += 0x8; +gUnknown_20399DE: /* 20399DE */ + .space 0x2 -gUnknown_20399E8 = .; /* 20399E8 */ - . += 0x14; +gUnknown_20399E0: /* 20399E0 */ + .space 0x8 -gUnknown_20399FC = .; /* 20399FC */ - . += 0x34; +gUnknown_20399E8: /* 20399E8 */ + .space 0x14 -gUnknown_2039A30 = .; /* 2039A30 */ - . += 0x2; +gUnknown_20399FC: /* 20399FC */ + .space 0x34 -gUnknown_2039A32 = .; /* 2039A32 */ - . += 0x2; +gUnknown_2039A30: /* 2039A30 */ + .space 0x2 -gUnknown_2039A34 = .; /* 2039A34 */ - . += 0x2; +gUnknown_2039A32: /* 2039A32 */ + .space 0x2 -gUnknown_2039A36 = .; /* 2039A36 */ - . += 0x2; +gUnknown_2039A34: /* 2039A34 */ + .space 0x2 -gUnknown_2039A38 = .; /* 2039A38 */ - . += 0x88; +gUnknown_2039A36: /* 2039A36 */ + .space 0x2 -gUnknown_2039AC0 = .; /* 2039AC0 */ - . += 0x88; +gUnknown_2039A38: /* 2039A38 */ + .space 0x88 -gUnknown_2039B48 = .; /* 2039B48 */ - . += 0x208; +gUnknown_2039AC0: /* 2039AC0 */ + .space 0x88 -gUnknown_2039D50 = .; /* 2039D50 */ - . += 0x48; +gUnknown_2039B48: /* 2039B48 */ + .space 0x208 -gUnknown_2039D98 = .; /* 2039D98 (seems to be storage for strings.. used for -both Team Name and Player Name) */ - . += 0xC; +gUnknown_2039D50: /* 2039D50 */ + .space 0x48 -gUnknown_2039DA4 = .; /* 2039DA4 */ - . += 0x4; +gUnknown_2039D98: /* 2039D98 (seems to be storage for strings.. used for both Team Name and Player Name) */ + .space 0xC -gUnknown_2039DA8 = .; /* 2039DA8 */ - . += 0x8; +gUnknown_2039DA4: /* 2039DA4 */ + .space 0x4 -gUnknown_2039DB0 = .; /* 2039DB0 */ - . += 0x10; +gUnknown_2039DA8: /* 2039DA8 */ + .space 0x8 -gUnknown_2039DC0 = .; /* 2039DC0 */ - . += 0xC; +gUnknown_2039DB0: /* 2039DB0 */ + .space 0x10 -gUnknown_2039DCC = .; /* 2039DCC */ - . += 0x2; +gUnknown_2039DC0: /* 2039DC0 */ + .space 0xC -gUnknown_2039DCE = .; /* 2039DCE */ - . += 0x2; +gUnknown_2039DCC: /* 2039DCC */ + .space 0x2 -gUnknown_2039DD0 = .; /* 2039DD0 */ - . += 0x4; +gUnknown_2039DCE: /* 2039DCE */ + .space 0x2 -gUnknown_2039DD4 = .; /* 2039DD4 */ - . += 0x4; +gUnknown_2039DD0: /* 2039DD0 */ + .space 0x4 -gUnknown_2039DD8 = .; /* 2039DD8 */ - . += 0x8; +gUnknown_2039DD4: /* 2039DD4 */ + .space 0x4 -gUnknown_2039DE0 = .; /* 2039DE0 */ - . += 0x4; +gUnknown_2039DD8: /* 2039DD8 */ + .space 0x8 + +gUnknown_2039DE0: /* 2039DE0 */ + .space 0x4 diff --git a/sym_ewram2.txt b/sym_ewram2.txt index 53f7db748..7afb08f87 100644 --- a/sym_ewram2.txt +++ b/sym_ewram2.txt @@ -1,651 +1,651 @@ - . = ALIGN(2); + .align 2 -gSoundInfo = .; /* 2039ED0 */ - . += 0xFB0; +gSoundInfo: /* 2039ED0 */ + .space 0xFB0 -gMPlayJumpTable = .; /* 203AE80 */ - . += 0x88; +gMPlayJumpTable: /* 203AE80 */ + .space 0x88 -gUnknown_203AF08 = .; /* 203AF08 */ - . += 0x4; +gUnknown_203AF08: /* 203AF08 */ + .space 0x4 -gUnknown_203AF0C = .; /* 203AF0C */ - . += 0x4; +gUnknown_203AF0C: /* 203AF0C */ + .space 0x4 -gCgbChans = .; /* 203AF10 */ - . += 0x100; +gCgbChans: /* 203AF10 */ + .space 0x100 -gFlashTimeoutFlag = .; /* 203B010 */ - . += 0x4; +gFlashTimeoutFlag: /* 203B010 */ + .space 0x4 -PollFlashStatus = .; /* 203B014 */ - . += 0x4; +PollFlashStatus: /* 203B014 */ + .space 0x4 -WaitForFlashWrite = .; /* 203B018 */ - . += 0x4; +WaitForFlashWrite: /* 203B018 */ + .space 0x4 -ProgramFlashSector = .; /* 203B01C */ - . += 0x4; +ProgramFlashSector: /* 203B01C */ + .space 0x4 -gFlash = .; /* 203B020 */ - . += 0x4; +gFlash: /* 203B020 */ + .space 0x4 -gFlashNumRemainingBytes = .; /* 203B024 */ - . += 0x4; +gFlashNumRemainingBytes: /* 203B024 */ + .space 0x4 -EraseFlashChip = .; /* 203B028 */ - . += 0x4; +EraseFlashChip: /* 203B028 */ + .space 0x4 -EraseFlashSector = .; /* 203B02C */ - . += 0x4; +EraseFlashSector: /* 203B02C */ + .space 0x4 -gFlashMaxTime = .; /* 203B030 */ - . += 0x4; +gFlashMaxTime: /* 203B030 */ + .space 0x4 -errno = .; /* 203B034 */ - . += 0x4; +errno: /* 203B034 */ + .space 0x4 -alt_203B038 = .; +alt_203B038: -gTitlePaletteFile = .; /* 203B038 */ - . += 0x4; +gTitlePaletteFile: /* 203B038 */ + .space 0x4 -gUnknown_203B03C = .; /* 203B03C */ - . += 0x4; +gUnknown_203B03C: /* 203B03C */ + .space 0x4 -gUnknown_203B040 = .; /* 203B040 */ - . += 0x30; +gUnknown_203B040: /* 203B040 */ + .space 0x30 -gOtherRngState = .; /* 203B070 */ - . += 0x4; +gOtherRngState: /* 203B070 */ + .space 0x4 -gUnknown_203B074 = .; /* 203B074 */ - . += 0x4; +gUnknown_203B074: /* 203B074 */ + .space 0x4 -gUnknown_203B078 = .; /* 203B078 */ - . += 0x4; +gUnknown_203B078: /* 203B078 */ + .space 0x4 -gPRNGSequenceNum = .; /* 203B07C */ - . += 0x4; +gPRNGSequenceNum: /* 203B07C */ + .space 0x4 -gUnknown_203B080 = .; /* 203B080 */ - . += 0x4; +gUnknown_203B080: /* 203B080 */ + .space 0x4 -gUnknown_203B084 = .; /* 203B084 */ - . += 0x4; +gUnknown_203B084: /* 203B084 */ + .space 0x4 -gUnknown_203B088 = .; /* 203B088 */ - . += 0x4; +gUnknown_203B088: /* 203B088 */ + .space 0x4 -gUnknown_203B08C = .; /* 203B08C */ - . += 0x4; +gUnknown_203B08C: /* 203B08C */ + .space 0x4 -gUnknown_203B090 = .; /* 203B090 */ - . += 0x4; +gUnknown_203B090: /* 203B090 */ + .space 0x4 -gFileCacheCursorPosition = .; /* 203B094 */ - . += 0x4; +gFileCacheCursorPosition: /* 203B094 */ + .space 0x4 -gInterruptsEnabled = .; /* 203B098 */ - . += 0x1; +gInterruptsEnabled: /* 203B098 */ + .space 0x1 -gUnknown_203B099 = .; /* 203B099 */ - . += 0x1; +gUnknown_203B099: /* 203B099 */ + .space 0x1 -gUnknown_203B09A = .; /* 203B09A */ - . += 0x1; +gUnknown_203B09A: /* 203B09A */ + .space 0x1 -gUnknown_203B09B = .; /* 203B09B */ - . += 0x1; +gUnknown_203B09B: /* 203B09B */ + .space 0x1 -gUnknown_203B09C = .; /* 203B09C */ - . += 0x4; +gUnknown_203B09C: /* 203B09C */ + .space 0x4 -gUnknown_203B0A0 = .; /* 203B0A0 */ - . += 0x4; +gUnknown_203B0A0: /* 203B0A0 */ + .space 0x4 -gUnknown_203B0A4 = .; /* 203B0A4 */ - . += 0x4; +gUnknown_203B0A4: /* 203B0A4 */ + .space 0x4 -gUnknown_203B0A8 = .; /* 203B0A8 */ - . += 0x2; +gUnknown_203B0A8: /* 203B0A8 */ + .space 0x2 -gUnknown_203B0AA = .; /* 203B0AA */ - . += 0x2; +gUnknown_203B0AA: /* 203B0AA */ + .space 0x2 -gUnknown_203B0AC = .; /* 203B0AC */ - . += 0x2; +gUnknown_203B0AC: /* 203B0AC */ + .space 0x2 -gUnknown_203B0AE = .; /* 203B0AE */ - . += 0x2; +gUnknown_203B0AE: /* 203B0AE */ + .space 0x2 -gUnknown_203B0B0 = .; /* 203B0B0 */ - . += 0x2; +gUnknown_203B0B0: /* 203B0B0 */ + .space 0x2 -gUnknown_203B0B2 = .; /* 203B0B2 */ - . += 0x2; +gUnknown_203B0B2: /* 203B0B2 */ + .space 0x2 -gFlashEnabled = .; /* 203B0B4 */ - . += 0x4; +gFlashEnabled: /* 203B0B4 */ + .space 0x4 -gUnknown_203B0B8 = .; /* 203B0B8 */ - . += 0x4; +gUnknown_203B0B8: /* 203B0B8 */ + .space 0x4 -gRawKeyInput = .; /* 203B0BC */ - . += 0x2; +gRawKeyInput: /* 203B0BC */ + .space 0x2 -gUnknown_203B0BE = .; /* 203B0BE */ - . += 0xE; +gUnknown_203B0BE: /* 203B0BE */ + .space 0xE -gUnknown_203B0CC = .; /* 203B0CC */ - . += 0x4; +gUnknown_203B0CC: /* 203B0CC */ + .space 0x4 -gUnknown_203B0D0 = .; /* 203B0D0 */ - . += 0x4; +gUnknown_203B0D0: /* 203B0D0 */ + .space 0x4 -gUnknown_203B0D4 = .; /* 203B0D4 */ - . += 0x4; +gUnknown_203B0D4: /* 203B0D4 */ + .space 0x4 -gDungeonPokemonSprites = .; /* 203B0D8 */ - . += 0x4; +gDungeonPokemonSprites: /* 203B0D8 */ + .space 0x4 -gUnknown_203B0DC = .; /* 203B0DC */ - . += 0x8; +gUnknown_203B0DC: /* 203B0DC */ + .space 0x8 -gUnknown_203B0E4 = .; /* 203B0E4 */ - . += 0x4; +gUnknown_203B0E4: /* 203B0E4 */ + .space 0x4 -gUnknown_203B0E8 = .; /* 203B0E8 */ - . += 0x4; +gUnknown_203B0E8: /* 203B0E8 */ + .space 0x4 -gUnknown_203B0EC = .; /* 203B0EC */ - . += 0x60; +gUnknown_203B0EC: /* 203B0EC */ + .space 0x60 -gNDS_DebugEnabled = .; /* 203B14C */ - . += 0x4; +gNDS_DebugEnabled: /* 203B14C */ + .space 0x4 -gUnknown_203B150 = .; /* 203B150 */ - . += 0x2C; +gUnknown_203B150: /* 203B150 */ + .space 0x2C -gUnknown_203B17C = .; /* 203B17C */ - . += 0x4; +gUnknown_203B17C: /* 203B17C */ + .space 0x4 -gUnknown_203B180 = .; /* 203B180 */ - . += 0x4; +gUnknown_203B180: /* 203B180 */ + .space 0x4 -gUnknown_203B184 = .; /* 203B184 */ - . += 0x4; +gUnknown_203B184: /* 203B184 */ + .space 0x4 -gSavePakRead = .; /* 203B188 */ - . += 0x4; +gSavePakRead: /* 203B188 */ + .space 0x4 -gSavePakWrite = .; /* 203B18C */ - . += 0x4; +gSavePakWrite: /* 203B18C */ + .space 0x4 -gQuickSaveRead = .; /* 203B190 */ - . += 0x4; +gQuickSaveRead: /* 203B190 */ + .space 0x4 -gQuickSaveWrite = .; /* 203B194 */ - . += 0x4; +gQuickSaveWrite: /* 203B194 */ + .space 0x4 -gUnknown_203B198 = .; /* 203B198 */ - . += 0x60; +gUnknown_203B198: /* 203B198 */ + .space 0x60 -gUnknown_203B1F8 = .; /* 203B1F8 */ - . += 0x4; +gUnknown_203B1F8: /* 203B1F8 */ + .space 0x4 -gUnknown_203B1FC = .; /* 203B1FC */ - . += 0x4; +gUnknown_203B1FC: /* 203B1FC */ + .space 0x4 -gUnknown_203B200 = .; /* 203B200 */ - . += 0x4; +gUnknown_203B200: /* 203B200 */ + .space 0x4 -gUnknown_203B204 = .; /* 203B204 */ - . += 0x4; +gUnknown_203B204: /* 203B204 */ + .space 0x4 -gUnknown_203B208 = .; /* 203B208 */ - . += 0x4; +gUnknown_203B208: /* 203B208 */ + .space 0x4 -gUnknown_203B20C = .; /* 203B20C */ - . += 0x4; +gUnknown_203B20C: /* 203B20C */ + .space 0x4 -gUnknown_203B210 = .; /* 203B210 */ - . += 0x4; +gUnknown_203B210: /* 203B210 */ + .space 0x4 -gUnknown_203B214 = .; /* 203B214 */ - . += 0x4; +gUnknown_203B214: /* 203B214 */ + .space 0x4 -gUnknown_203B218 = .; /* 203B218 */ - . += 0x4; +gUnknown_203B218: /* 203B218 */ + .space 0x4 -gUnknown_203B21C = .; /* 203B21C */ - . += 0x4; +gUnknown_203B21C: /* 203B21C */ + .space 0x4 -gUnknown_203B220 = .; /* 203B220 */ - . += 0x4; +gUnknown_203B220: /* 203B220 */ + .space 0x4 -gUnknown_203B224 = .; /* 203B224 */ - . += 0x4; +gUnknown_203B224: /* 203B224 */ + .space 0x4 -gUnknown_203B228 = .; /* 203B228 */ - . += 0x2; +gUnknown_203B228: /* 203B228 */ + .space 0x2 -gUnknown_203B22A = .; /* 203B22A */ - . += 0x2; +gUnknown_203B22A: /* 203B22A */ + .space 0x2 -gUnknown_203B22C = .; /* 203B22C */ - . += 0x4; +gUnknown_203B22C: /* 203B22C */ + .space 0x4 -gUnknown_203B230 = .; /* 203B230 */ - . += 0x4; +gUnknown_203B230: /* 203B230 */ + .space 0x4 -gUnknown_203B234 = .; /* 203B234 */ - . += 0x4; +gUnknown_203B234: /* 203B234 */ + .space 0x4 -gUnknown_203B238 = .; /* 203B238 */ - . += 0x4; +gUnknown_203B238: /* 203B238 */ + .space 0x4 -gUnknown_203B23C = .; /* 203B23C */ - . += 0x4; +gUnknown_203B23C: /* 203B23C */ + .space 0x4 -gUnknown_203B240 = .; /* 203B240 */ - . += 0x4; +gUnknown_203B240: /* 203B240 */ + .space 0x4 -gUnknown_203B244 = .; /* 203B244 */ - . += 0x4; +gUnknown_203B244: /* 203B244 */ + .space 0x4 -gUnknown_203B248 = .; /* 203B248 */ - . += 0x4; +gUnknown_203B248: /* 203B248 */ + .space 0x4 -gUnknown_203B24C = .; /* 203B24C */ - . += 0x2; +gUnknown_203B24C: /* 203B24C */ + .space 0x2 -gUnknown_203B24E = .; /* 203B24E */ - . += 0x2; +gUnknown_203B24E: /* 203B24E */ + .space 0x2 -gUnknown_203B250 = .; /* 203B250 */ - . += 0x4; +gUnknown_203B250: /* 203B250 */ + .space 0x4 -gUnknown_203B254 = .; /* 203B254 */ - . += 0x4; +gUnknown_203B254: /* 203B254 */ + .space 0x4 -gUnknown_203B258 = .; /* 203B258 */ - . += 0x4; +gUnknown_203B258: /* 203B258 */ + .space 0x4 -gUnknown_203B25C = .; /* 203B25C */ - . += 0x4; +gUnknown_203B25C: /* 203B25C */ + .space 0x4 -gUnknown_203B260 = .; /* 203B260 */ - . += 0x4; +gUnknown_203B260: /* 203B260 */ + .space 0x4 -gUnknown_203B264 = .; /* 203B264 */ - . += 0x4; +gUnknown_203B264: /* 203B264 */ + .space 0x4 -gUnknown_203B268 = .; /* 203B268 */ - . += 0x4; +gUnknown_203B268: /* 203B268 */ + .space 0x4 -gUnknown_203B26C = .; /* 203B26C */ - . += 0x4; +gUnknown_203B26C: /* 203B26C */ + .space 0x4 -gUnknown_203B270 = .; /* 203B270 */ - . += 0x4; +gUnknown_203B270: /* 203B270 */ + .space 0x4 -gUnknown_203B274 = .; /* 203B274 */ - . += 0x4; +gUnknown_203B274: /* 203B274 */ + .space 0x4 -gUnknown_203B278 = .; /* 203B278 */ - . += 0x4; +gUnknown_203B278: /* 203B278 */ + .space 0x4 -gUnknown_203B27C = .; /* 203B27C */ - . += 0x4; +gUnknown_203B27C: /* 203B27C */ + .space 0x4 -gUnknown_203B280 = .; /* 203B280 */ - . += 0x4; +gUnknown_203B280: /* 203B280 */ + .space 0x4 -gUnknown_203B284 = .; /* 203B284 */ - . += 0x4; +gUnknown_203B284: /* 203B284 */ + .space 0x4 -gUnknown_203B288 = .; /* 203B288 */ - . += 0x2; +gUnknown_203B288: /* 203B288 */ + .space 0x2 -gUnknown_203B28A = .; /* 203B28A */ - . += 0x2; +gUnknown_203B28A: /* 203B28A */ + .space 0x2 -gUnknown_203B28C = .; /* 203B28C */ - . += 0x4; +gUnknown_203B28C: /* 203B28C */ + .space 0x4 -gUnknown_203B290 = .; /* 203B290 */ - . += 0x4; +gUnknown_203B290: /* 203B290 */ + .space 0x4 -gUnknown_203B294 = .; /* 203B294 */ - . += 0x4; +gUnknown_203B294: /* 203B294 */ + .space 0x4 -gUnknown_203B298 = .; /* 203B298 */ - . += 0x4; +gUnknown_203B298: /* 203B298 */ + .space 0x4 -gUnknown_203B29C = .; /* 203B29C */ - . += 0x2; +gUnknown_203B29C: /* 203B29C */ + .space 0x2 -gUnknown_203B29E = .; /* 203B29E */ - . += 0x2; +gUnknown_203B29E: /* 203B29E */ + .space 0x2 -gUnknown_203B2A0 = .; /* 203B2A0 */ - . += 0x4; +gUnknown_203B2A0: /* 203B2A0 */ + .space 0x4 -gUnknown_203B2A4 = .; /* 203B2A4 */ - . += 0x4; +gUnknown_203B2A4: /* 203B2A4 */ + .space 0x4 -gUnknown_203B2A8 = .; /* 203B2A8 */ - . += 0x2; +gUnknown_203B2A8: /* 203B2A8 */ + .space 0x2 -gUnknown_203B2AA = .; /* 203B2AA */ - . += 0x2; +gUnknown_203B2AA: /* 203B2AA */ + .space 0x2 -gUnknown_203B2AC = .; /* 203B2AC */ - . += 0x4; +gUnknown_203B2AC: /* 203B2AC */ + .space 0x4 -gUnknown_203B2B0 = .; /* 203B2B0 */ - . += 0x4; +gUnknown_203B2B0: /* 203B2B0 */ + .space 0x4 -gUnknown_203B2B4 = .; /* 203B2B4 */ - . += 0x4; +gUnknown_203B2B4: /* 203B2B4 */ + .space 0x4 -gUnknown_203B2B8 = .; /* 203B2B8 */ - . += 0x4; +gUnknown_203B2B8: /* 203B2B8 */ + .space 0x4 -gUnknown_203B2BC = .; /* 203B2BC */ - . += 0x4; +gUnknown_203B2BC: /* 203B2BC */ + .space 0x4 -gUnknown_203B2C0 = .; /* 203B2C0 */ - . += 0x4; +gUnknown_203B2C0: /* 203B2C0 */ + .space 0x4 -gUnknown_203B2C4 = .; /* 203B2C4 */ - . += 0x4; +gUnknown_203B2C4: /* 203B2C4 */ + .space 0x4 -gUnknown_203B2C8 = .; /* 203B2C8 */ - . += 0x4; +gUnknown_203B2C8: /* 203B2C8 */ + .space 0x4 -gUnknown_203B2CC = .; /* 203B2CC */ - . += 0x4; +gUnknown_203B2CC: /* 203B2CC */ + .space 0x4 -gUnknown_203B2D0 = .; /* 203B2D0 */ - . += 0x2; +gUnknown_203B2D0: /* 203B2D0 */ + .space 0x2 -gUnknown_203B2D2 = .; /* 203B2D2 */ - . += 0x2; +gUnknown_203B2D2: /* 203B2D2 */ + .space 0x2 -gUnknown_203B2D4 = .; /* 203B2D4 */ - . += 0x4; +gUnknown_203B2D4: /* 203B2D4 */ + .space 0x4 -gUnknown_203B2D8 = .; /* 203B2D8 */ - . += 0x4; +gUnknown_203B2D8: /* 203B2D8 */ + .space 0x4 -gUnknown_203B2DC = .; /* 203B2DC */ - . += 0x4; +gUnknown_203B2DC: /* 203B2DC */ + .space 0x4 -gUnknown_203B2E0 = .; /* 203B2E0 */ - . += 0x4; +gUnknown_203B2E0: /* 203B2E0 */ + .space 0x4 -gUnknown_203B2E4 = .; /* 203B2E4 */ - . += 0x4; +gUnknown_203B2E4: /* 203B2E4 */ + .space 0x4 -gUnknown_203B2E8 = .; /* 203B2E8 */ - . += 0x4; +gUnknown_203B2E8: /* 203B2E8 */ + .space 0x4 -gUnknown_203B2EC = .; /* 203B2EC */ - . += 0x4; +gUnknown_203B2EC: /* 203B2EC */ + .space 0x4 -gUnknown_203B2F0 = .; /* 203B2F0 */ - . += 0x4; +gUnknown_203B2F0: /* 203B2F0 */ + .space 0x4 -gUnknown_203B2F4 = .; /* 203B2F4 */ - . += 0x4; +gUnknown_203B2F4: /* 203B2F4 */ + .space 0x4 -gUnknown_203B2F8 = .; /* 203B2F8 */ - . += 0x4; +gUnknown_203B2F8: /* 203B2F8 */ + .space 0x4 -gUnknown_203B2FC = .; /* 203B2FC */ - . += 0x4; +gUnknown_203B2FC: /* 203B2FC */ + .space 0x4 -gUnknown_203B300 = .; /* 203B300 */ - . += 0x4; +gUnknown_203B300: /* 203B300 */ + .space 0x4 -gUnknown_203B304 = .; /* 203B304 */ - . += 0x4; +gUnknown_203B304: /* 203B304 */ + .space 0x4 -gUnknown_203B308 = .; /* 203B308 */ - . += 0x4; +gUnknown_203B308: /* 203B308 */ + .space 0x4 -gUnknown_203B30C = .; /* 203B30C */ - . += 0x4; +gUnknown_203B30C: /* 203B30C */ + .space 0x4 -gUnknown_203B310 = .; /* 203B310 */ - . += 0x4; +gUnknown_203B310: /* 203B310 */ + .space 0x4 -gUnknown_203B314 = .; /* 203B314 */ - . += 0x4; +gUnknown_203B314: /* 203B314 */ + .space 0x4 -gUnknown_203B318 = .; /* 203B318 */ - . += 0x4; +gUnknown_203B318: /* 203B318 */ + .space 0x4 -gUnknown_203B31C = .; /* 203B31C */ - . += 0x4; +gUnknown_203B31C: /* 203B31C */ + .space 0x4 -gUnknown_203B320 = .; /* 203B320 */ - . += 0x4; +gUnknown_203B320: /* 203B320 */ + .space 0x4 -gUnknown_203B324 = .; /* 203B324 */ - . += 0x4; +gUnknown_203B324: /* 203B324 */ + .space 0x4 -gUnknown_203B328 = .; /* 203B328 */ - . += 0x4; +gUnknown_203B328: /* 203B328 */ + .space 0x4 -gPostOfficeHelper = .; /* 203B32C */ - . += 0x4; +gPostOfficeHelper: /* 203B32C */ + .space 0x4 -gUnknown_203B330 = .; /* 203B330 */ - . += 0x4; +gUnknown_203B330: /* 203B330 */ + .space 0x4 -gUnknown_203B334 = .; /* 203B334 */ - . += 0x4; +gUnknown_203B334: /* 203B334 */ + .space 0x4 -gAdventureLog = .; /* 203B338 */ - . += 0x4; +gAdventureLog: /* 203B338 */ + .space 0x4 -gUnknown_203B33C = .; /* 203B33C */ - . += 0x4; +gUnknown_203B33C: /* 203B33C */ + .space 0x4 -gUnknown_203B340 = .; /* 203B340 */ - . += 0x4; +gUnknown_203B340: /* 203B340 */ + .space 0x4 -gUnknown_203B344 = .; /* 203B344 */ - . += 0x4; +gUnknown_203B344: /* 203B344 */ + .space 0x4 -gMainMenu = .; /* 203B348 */ - . += 0x4; +gMainMenu: /* 203B348 */ + .space 0x4 -gUnknown_203B34C = .; /* 203B34C */ - . += 0x4; +gUnknown_203B34C: /* 203B34C */ + .space 0x4 -gUnknown_203B350 = .; /* 203B350 */ - . += 0x4; +gUnknown_203B350: /* 203B350 */ + .space 0x4 -gUnknown_203B354 = .; /* 203B354 */ - . += 0x4; +gUnknown_203B354: /* 203B354 */ + .space 0x4 -gTradeItemsMenu = .; /* 203B358 */ - . += 0x4; +gTradeItemsMenu: /* 203B358 */ + .space 0x4 -gUnknown_203B35C = .; /* 203B35C */ - . += 0x4; +gUnknown_203B35C: /* 203B35C */ + .space 0x4 -gUnknown_203B360 = .; /* 203B360 */ - . += 0x4; +gUnknown_203B360: /* 203B360 */ + .space 0x4 -gUnknown_203B364 = .; /* 203B364 */ - . += 0x4; +gUnknown_203B364: /* 203B364 */ + .space 0x4 -gUnknown_203B368 = .; /* 203B368 */ - . += 0x4; +gUnknown_203B368: /* 203B368 */ + .space 0x4 -gUnknown_203B36C = .; /* 203B36C */ - . += 0x4; +gUnknown_203B36C: /* 203B36C */ + .space 0x4 -gRescuePasswordMenu = .; /* 203B370 */ - . += 0x4; +gRescuePasswordMenu: /* 203B370 */ + .space 0x4 -gLoadScreen = .; /* 203B374 */ - . += 0x4; +gLoadScreen: /* 203B374 */ + .space 0x4 -gUnknown_203B378 = .; /* 203B378 */ - . += 0x10; +gUnknown_203B378: /* 203B378 */ + .space 0x10 -gUnknown_203B388 = .; /* 203B388 */ - . += 0x30; +gUnknown_203B388: /* 203B388 */ + .space 0x30 -gUnknown_203B3B8 = .; /* 203B3B8 */ - . += 0x30; +gUnknown_203B3B8: /* 203B3B8 */ + .space 0x30 -gUnknown_203B3E8 = .; /* 203B3E8 */ - . += 0x4; +gUnknown_203B3E8: /* 203B3E8 */ + .space 0x4 -gUnknown_203B3EC = .; /* 203B3EC */ - . += 0x4; +gUnknown_203B3EC: /* 203B3EC */ + .space 0x4 -gUnknown_203B3F0 = .; /* 203B3F0 */ - . += 0x4; +gUnknown_203B3F0: /* 203B3F0 */ + .space 0x4 -gUnknown_203B3F4 = .; /* 203B3F4 */ - . += 0x4; +gUnknown_203B3F4: /* 203B3F4 */ + .space 0x4 -gUnknown_203B3F8 = .; /* 203B3F8 */ - . += 0x4; +gUnknown_203B3F8: /* 203B3F8 */ + .space 0x4 -gUnknown_203B3FC = .; /* 203B3FC */ - . += 0x4; +gUnknown_203B3FC: /* 203B3FC */ + .space 0x4 -gPersonalityTestTracker = .; /* 203B400 */ - . += 0x4; +gPersonalityTestTracker: /* 203B400 */ + .space 0x4 -gUnknown_203B404 = .; /* 203B404 */ - . += 0x4; +gUnknown_203B404: /* 203B404 */ + .space 0x4 -gUnknown_203B408 = .; /* 203B408 */ - . += 0x4; +gUnknown_203B408: /* 203B408 */ + .space 0x4 -gUnknown_203B40C = .; /* 203B40C */ - . += 0x1; +gUnknown_203B40C: /* 203B40C */ + .space 0x1 -gUnknown_203B40D = .; /* 203B40D */ - . += 0x3; +gUnknown_203B40D: /* 203B40D */ + .space 0x3 -gUnknown_203B410 = .; /* 203B410 */ - . += 0x4; +gUnknown_203B410: /* 203B410 */ + .space 0x4 -gUnknown_203B414 = .; /* 203B414 */ - . += 0x4; +gUnknown_203B414: /* 203B414 */ + .space 0x4 -gDungeon = .; /* 203B418 */ - . += 0x4; +gDungeon: /* 203B418 */ + .space 0x4 -gUnknown_203B41C = .; /* 203B41C */ - . += 0x4; +gUnknown_203B41C: /* 203B41C */ + .space 0x4 -gUnknown_203B420 = .; /* 203B420 */ - . += 0x8; +gUnknown_203B420: /* 203B420 */ + .space 0x8 -gUnknown_203B428 = .; /* 203B428 */ - . += 0x8; +gUnknown_203B428: /* 203B428 */ + .space 0x8 -gUnknown_203B430 = .; /* 203B430 */ - . += 0x4; +gUnknown_203B430: /* 203B430 */ + .space 0x4 -gUnknown_203B434 = .; /* 203B434 */ - . += 0x4; +gUnknown_203B434: /* 203B434 */ + .space 0x4 -gUnknown_203B438 = .; /* 203B438 */ - . += 0x4; +gUnknown_203B438: /* 203B438 */ + .space 0x4 -gUnknown_203B43C = .; /* 203B43C */ - . += 0x4; +gUnknown_203B43C: /* 203B43C */ + .space 0x4 -gNumPotentialTargets = .; /* 203B440 */ - . += 0x4; +gNumPotentialTargets: /* 203B440 */ + .space 0x4 -gUnknown_203B444 = .; /* 203B444 */ - . += 0xC; +gUnknown_203B444: /* 203B444 */ + .space 0xC -gLeaderPointer = .; /* 203B450 */ - . += 0x4; +gLeaderPointer: /* 203B450 */ + .space 0x4 -gDungeonRngState = .; /* 203B454 */ - . += 0x4; +gDungeonRngState: /* 203B454 */ + .space 0x4 -gUnknown_203B458 = .; /* 203B458 */ - . += 0x4; +gUnknown_203B458: /* 203B458 */ + .space 0x4 -gRecruitedPokemonRef = .; /* 203B45C */ - . += 0x4; +gRecruitedPokemonRef: /* 203B45C */ + .space 0x4 -gTeamInventory_203B460 = .; /* 203B460 */ - . += 0x4; +gTeamInventory_203B460: /* 203B460 */ + .space 0x4 -gRescueTeamInfoRef = .; /* 203B464 */ - . += 0x4; +gRescueTeamInfoRef: /* 203B464 */ + .space 0x4 -gFriendAreas = .; /* 203B468 */ - . += 0x4; +gFriendAreas: /* 203B468 */ + .space 0x4 -gGameOptionsRef = .; /* 203B46C */ - . += 0x4; +gGameOptionsRef: /* 203B46C */ + .space 0x4 -gUnknown_203B470 = .; /* 203B470 */ - . += 0x4; +gUnknown_203B470: /* 203B470 */ + .space 0x4 -gUnknown_203B474 = .; /* 203B474 */ - . += 0x8; +gUnknown_203B474: /* 203B474 */ + .space 0x8 -gPlayTimeRef = .; /* 203B47C */ - . += 0x4; +gPlayTimeRef: /* 203B47C */ + .space 0x4 -gUnknown_203B480 = .; /* 203B480 */ - . += 0x4; +gUnknown_203B480: /* 203B480 */ + .space 0x4 -gUnknown_203B484 = .; /* 203B484 */ - . += 0x4; +gUnknown_203B484: /* 203B484 */ + .space 0x4 -gUnknown_203B488 = .; /* 203B488 */ - . += 0x4; +gUnknown_203B488: /* 203B488 */ + .space 0x4 -gUnknown_203B48C = .; /* 203B48C */ - . += 0x4; +gUnknown_203B48C: /* 203B48C */ + .space 0x4 -gUnknown_203B490 = .; /* 203B490 */ - . += 0x4; +gUnknown_203B490: /* 203B490 */ + .space 0x4 -gUnknown_203B494 = .; /* 203B494 */ - . += 0x4; +gUnknown_203B494: /* 203B494 */ + .space 0x4 -gUnknown_203B498 = .; /* 203B498 */ - . += 0x4; +gUnknown_203B498: /* 203B498 */ + .space 0x4 -gUnknown_203B49C = .; /* 203B49C */ - . += 0x1; +gUnknown_203B49C: /* 203B49C */ + .space 0x1 -gUnknown_203B49D = .; /* 203B49D */ - . += 0x3; +gUnknown_203B49D: /* 203B49D */ + .space 0x3 -gUnknown_203B4A0 = .; /* 203B4A0 */ - . += 0xC; +gUnknown_203B4A0: /* 203B4A0 */ + .space 0xC -gUnknown_203B4AC = .; /* 203B4AC */ - . += 0x4; +gUnknown_203B4AC: /* 203B4AC */ + .space 0x4 -gUnknown_203B4B0 = .; /* 203B4B0 */ - . += 0x4; +gUnknown_203B4B0: /* 203B4B0 */ + .space 0x4 -gUnknown_203B4B4 = .; /* 203B4B4 */ - . += 0x4; +gUnknown_203B4B4: /* 203B4B4 */ + .space 0x4 -gUnknown_203B4B8 = .; /* 203B4B8 */ - . += 0x4; +gUnknown_203B4B8: /* 203B4B8 */ + .space 0x4 diff --git a/sym_iwram.txt b/sym_iwram.txt index 4eafdc5e8..f67fd614a 100644 --- a/sym_iwram.txt +++ b/sym_iwram.txt @@ -1,77 +1,77 @@ -SoundMainRAM_Buffer = .; /* 3000000 */ - . += 0x400; +SoundMainRAM_Buffer: /* 3000000 */ + .space 0x400 -gUnknown_3000400 = .; /* 3000400 */ - . += 0x800; +gUnknown_3000400: /* 3000400 */ + .space 0x800 -gUnknown_3000C00 = .; /* 3000C00 */ - . += 0x294; +gUnknown_3000C00: /* 3000C00 */ + .space 0x294 -gUnknown_3000E94 = .; /* 3000E94 */ - . += 0x144; +gUnknown_3000E94: /* 3000E94 */ + .space 0x144 -gUnknown_3000FD8 = .; /* 3000FD8 */ - . += 0x10; +gUnknown_3000FD8: /* 3000FD8 */ + .space 0x10 -gUnknown_3000FE8 = .; /* 3000FE8 */ - . += 0x30; +gUnknown_3000FE8: /* 3000FE8 */ + .space 0x30 -gUnknown_3001018 = .; /* 3001018 */ - . += 0x180; +gUnknown_3001018: /* 3001018 */ + .space 0x180 -gUnknown_3001198 = .; /* 3001198 */ - . += 0x9C0; +gUnknown_3001198: /* 3001198 */ + .space 0x9C0 -alt_3001B58 = .; +alt_3001B58: -unk_code_ram = .; /* 3001B58 */ +unk_code_ram: /* 3001B58 */ -gUnknown_3001B58 = .; /* 3001B58 */ - . += 0x2; +gUnknown_3001B58: /* 3001B58 */ + .space 0x2 -gUnknown_3001B5A = .; /* 3001B5A */ - . += 0x2; +gUnknown_3001B5A: /* 3001B5A */ + .space 0x2 -gUnknown_3001B5C = .; /* 3001B5C */ - . += 0x4; +gUnknown_3001B5C: /* 3001B5C */ + .space 0x4 -gUnknown_3001B60 = .; /* 3001B60 */ - . += 0x4; +gUnknown_3001B60: /* 3001B60 */ + .space 0x4 -gUnknown_3001B64 = .; /* 3001B64 */ - . += 0x4; +gUnknown_3001B64: /* 3001B64 */ + .space 0x4 -gUnknown_3001B68 = .; /* 3001B68 */ - . += 0x4; +gUnknown_3001B68: /* 3001B68 */ + .space 0x4 -gUnknown_3001B6C = .; /* 3001B6C */ - . += 0x4; +gUnknown_3001B6C: /* 3001B6C */ + .space 0x4 -gUnknown_3001B70 = .; /* 3001B70 */ - . += 0x4; +gUnknown_3001B70: /* 3001B70 */ + .space 0x4 -gUnknown_3001B74 = .; /* 3001B74 */ - . += 0x4; +gUnknown_3001B74: /* 3001B74 */ + .space 0x4 -gUnknown_3001B78 = .; /* 3001B78 */ - . += 0x4; +gUnknown_3001B78: /* 3001B78 */ + .space 0x4 -gUnknown_3001B7C = .; /* 3001B7C */ - . += 0x4; +gUnknown_3001B7C: /* 3001B7C */ + .space 0x4 -gUnknown_3001B80 = .; /* 3001B80 */ - . += 0x4; +gUnknown_3001B80: /* 3001B80 */ + .space 0x4 -gUnknown_3001B84 = .; /* 3001B84 */ - . += 0x4; +gUnknown_3001B84: /* 3001B84 */ + .space 0x4 -gUnknown_3001B88 = .; /* 3001B88 */ - . += 0x4; +gUnknown_3001B88: /* 3001B88 */ + .space 0x4 -gUnknown_3001B8C = .; /* 3001B8C */ - . += 0x4; +gUnknown_3001B8C: /* 3001B8C */ + .space 0x4 -gUnknown_3001B90 = .; /* 3001B90 */ - . += 0x2470; +gUnknown_3001B90: /* 3001B90 */ + .space 0x2470 -gUnknown_3004000 = .; /* 3004000 */ \ No newline at end of file +gUnknown_3004000: /* 3004000 */