diff options
author | yenatch <yenatch@gmail.com> | 2017-06-20 20:41:33 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-06-20 20:41:33 -0400 |
commit | 4ba573ed1eba7c37160ce6107d95447f42902385 (patch) | |
tree | 5973f1e72156bb75cb6561a11dd7f333b90fcb3f | |
parent | 13b02fc8232ce61062afe46ca13a1930a3bbc286 (diff) | |
parent | b22e5219ba01c70da9a03397430bff10d0b99060 (diff) |
Merge branch 'master' into patch-1
386 files changed, 49603 insertions, 68590 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..15ff9dfb3 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,340 @@ +# Decompiling + +Code starts out in `asm/`. When decompiled to C, it goes into `src/`. The goal is to decompile all the code. + +Some of the code in `asm/` is handwritten assembly. It can't and shouldn't be decompiled. It's already commented, so there's no further work to do on these files. +* `asm/crt0.s` +* `asm/libagbsyscall.s` +* `asm/libgcnmultiboot.s` +* `asm/m4a_1.s` +* `asm/m4a_3.s` + +The rest of the `.s` files in `asm/` are fair game. + +The basic decompilation process is: +* Choose a file in `asm/`, i.e. `asm/x.s`. Create a C file called `src/x.c`. +* Translate the first function in `asm/x.s` to C in `src/x.c`. +* `make compare`, and tweak the function until it matches. +* Clean up the code and comment. +* Repeat for each function until `asm/x.s` is empty. + + +# For example, let's decompile `asm/cable_car.s`. + + +## 1. Create `src/cable_car.c` + +```c +#include "global.h" +``` + +`global.h` contains typedefs for GBA programming and more. +It must be the first include in the file. Other includes will assume you have included it. + + +## 2. Include it in the rom + +Include `src/cable_car.c` in the rom by adding `src/cable_car.c` to `ld_script.txt`: +```diff + asm/battle_message.o(.text); + asm/choose_party.o(.text); ++ src/cable_car.o(.text); + asm/cable_car.o(.text); + asm/roulette_util.o(.text); +``` +Do not remove `asm/cable_car.o(.text)`. We want both `src/cable_car.c` and `asm/cable_car.s` in the rom. + + +## 3. Translate the function to C + +Take the first function in `asm/cable_car.s`. Either comment it out or remove it, whichever is easier. + +```asm + thumb_func_start sub_81231EC +sub_81231EC: @ 81231EC + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08123210 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0812320A + ldr r0, _08123214 @ =sub_8123244 + bl SetMainCallback2 + adds r0, r4, 0 + bl DestroyTask +_0812320A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08123210: .4byte gPaletteFade +_08123214: .4byte sub_8123244 + thumb_func_end sub_81231EC +``` +--- + +Then, start translating the code to `src/cable_car.c`, bit by bit: + +```asm + lsls r0, 24 + lsrs r4, r0, 24 +``` +```c +void sub_81231EC(u8 r4) { +``` +--- +```asm + ldr r0, _08123210 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 +``` +```c + r0 = (u8 *)(&gPaletteFade + 7) & 0x80; +``` +--- + +--- +```asm + cmp r0, 0 + bne _0812320A +``` +```c + if (!r0) { +``` +--- +```asm + ldr r0, _08123214 @ =sub_8123244 + bl SetMainCallback2 +``` +```c + SetMainCallback2(&sub_8123244); +``` +--- +```asm + adds r0, r4, 0 + bl DestroyTask +``` +```c + DestroyTask(r4); +``` +--- +```asm +_0812320A: +``` +```c + } +``` +--- +```asm + pop {r4} + pop {r0} + bx r0 +``` +```c + return; +``` +The type signature of the function depends on the return type. +* `bx r0`: `void` +* `bx r1`: `*` +* `bx lr`: `void`, `*` + +You will need to look at the caller and the function prologue to determine the exact type if not void. + +Since it used `bx r0`, it's `void` for sure. + +--- + +Putting it all together, we get: +```c +void sub_81231EC(u8 r4) { + r0 = (u8 *)(&gPaletteFade + 7) & 0x80; + if (!r0) { + SetMainCallback2(&sub_8123244); + DestroyTask(r4); + } + return; +} +``` + + +## 4. Simplify and document + +This line doesn't look quite right. + +```c + r0 = (u8 *)(&gPaletteFade + 7) & 0x80; +``` + +What is `gPaletteFade`? You can find out where stuff is with `git grep`: + +```sh +git grep "gPaletteFade" include/ +``` +```grep +include/palette.h:extern struct PaletteFadeControl gPaletteFade; +``` + +So it's a struct called `PaletteFadeControl`. Let's look in `palette.h`: + +```c +struct PaletteFadeControl +{ + u32 multipurpose1; + u8 delayCounter:6; + u16 y:5; // blend coefficient + u16 targetY:5; // target blend coefficient + u16 blendColor:15; + u16 active:1; + u16 multipurpose2:6; + u16 yDec:1; // whether blend coefficient is decreasing + u16 bufferTransferDisabled:1; + u16 mode:2; + u16 shouldResetBlendRegisters:1; + u16 hardwareFadeFinishing:1; + u16 softwareFadeFinishingCounter:5; + u16 softwareFadeFinishing:1; + u16 objPaletteToggle:1; + u8 deltaY:4; // rate of change of blend coefficient +}; +``` +--- + +What's the 7th byte in this struct? +```c + u32 multipurpose1; // 0-3 + u8 delayCounter:6; // 4 + u16 y:5; // 5 + u16 targetY:5; // 5-6 + u16 blendColor:15; // 7 + u16 active:1; // 7 +``` + +Byte 7 has both `.blendColor` and `.active`. + +--- + +Okay, what's 0x80 mean? It's `0b10000000`, which is the highest bit in a byte. + +`.active` comes after, which means it's higher, but it's also only one bit, so it's a safe bet. + +```c + r0 = gPaletteFade.active; +``` + +Much better. + +--- + +```c +void sub_81231EC(u8 r4) { + r0 = gPaletteFade.active; + if (!r0) { + SetMainCallback2(&sub_8123244); + DestroyTask(r4); + } + return; +} +``` + +Now the temp variable `r0` is a little pointless. We can simplify this to: + +```c +void sub_81231EC(u8 taskId) { + if (!gPaletteFade.active) { + SetMainCallback2(&sub_8123244); + DestroyTask(taskId); + } +} +``` + +Looks done, right? +This function is pretty simple, so it doesn't need any comments right now. + +But what about `sub_8123244`? It's still not obvious what that function does. We can find out by decompiling it later. + + +## 5. Build + +```sh +make compare +``` +```gcc +src/cable_car.c: In function `sub_81231EC': +src/cable_car.c:4: `gPaletteFade' undeclared (first use in this function) +src/cable_car.c:4: (Each undeclared identifier is reported only once for each function it appears in.) +src/cable_car.c:5: warning: implicit declaration of function `SetMainCallback2' +src/cable_car.c:5: `sub_8123244' undeclared (first use in this function) +src/cable_car.c:6: warning: implicit declaration of function `DestroyTask' +``` + +We got some errors. We need to tell the compiler what `gPaletteFade`, `SetMainCallback2`, `sub_8123244`, and `DestroyTask` are. + +We know `gPaletteFade` is from `palette.h`. We can do the same with the others. Declare them above the function: +```c +#include "palette.h" +#include "main.h" +#include "task.h" +``` +The odd one out is `sub_8123244`, which is in `asm/cable_car.s`! What then? +```c +void sub_8123244(); +``` +Normally, we would do `extern void sub_8123244();`, but it won't be `extern` when we're done this file. + +--- + +Now our file looks like this: +```c +#include "global.h" +#include "palette.h" +#include "main.h" +#include "task.h" + +void sub_8123244(); + +void sub_81231EC(u8 taskId) { + if (!gPaletteFade.active) { + SetMainCallback2(&sub_8123244); + DestroyTask(taskId); + } +} +``` + +--- + +Build again, and we get: +```sh +make compare +``` +```sha1sum +pokeruby.gba: OK +``` + +This means the function matches. Congratulations! + +--- + +If it doesn't match, you will get: +```sha1sum +pokeruby.gba: FAILED +sha1sum: WARNING: 1 computed checksum did NOT match +``` + +--- + +If you forgot to remove the function from `asm/cable_car.s`, you will get this error: +```gcc +asm/cable_car.o: In function `sub_81231EC': +(.text+0x0): multiple definition of `sub_81231EC' +src/cable_car.o:(.text+0x0): first defined here +``` + + +## 6. Repeat until `asm/cable_car.s` is empty + +Once you're done, you can delete `asm/cable_car.s`, and remove it from `ld_script.txt`. + @@ -1,4 +1,4 @@ -# Pokémon Ruby and Sapphire [](https://travis-ci.org/pret/pokeruby) +# Pokémon Ruby and Sapphire [![Build Status][travis-badge]][travis] This is a disassembly of Pokémon Ruby and Sapphire. @@ -9,8 +9,8 @@ It builds the following roms: To set up the repository, see [INSTALL.md](INSTALL.md). -## See also - -irc: [freenode#pret][irc] +### irc: [freenode#pret][irc] [irc]: https://kiwiirc.com/client/irc.freenode.net/?#pret +[travis]: https://travis-ci.org/pret/pokeruby +[travis-badge]: https://travis-ci.org/pret/pokeruby.svg?branch=master diff --git a/asm/battle_10.s b/asm/battle_10.s index f7844a25a..548c77bce 100644 --- a/asm/battle_10.s +++ b/asm/battle_10.s @@ -6,13 +6,13 @@ .text - thumb_func_start dp01t_00_4_getattr -dp01t_00_4_getattr: @ 803807C + thumb_func_start LinkOpponentHandleGetAttributes +LinkOpponentHandleGetAttributes: @ 803807C push {r4-r6,lr} sub sp, 0x100 movs r6, 0 - ldr r1, _080380A8 @ =gUnknown_02023A60 - ldr r0, _080380AC @ =gUnknown_02024A60 + ldr r1, _080380A8 @ =gBattleBufferA + ldr r0, _080380AC @ =gActiveBank ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x2 @@ -20,7 +20,7 @@ dp01t_00_4_getattr: @ 803807C ldrb r0, [r1] cmp r0, 0 bne _080380B4 - ldr r0, _080380B0 @ =gUnknown_02024A6A + ldr r0, _080380B0 @ =gBattlePartyID lsls r1, r2, 1 adds r1, r0 ldrb r0, [r1] @@ -29,9 +29,9 @@ dp01t_00_4_getattr: @ 803807C adds r6, r0, 0 b _080380D6 .align 2, 0 -_080380A8: .4byte gUnknown_02023A60 -_080380AC: .4byte gUnknown_02024A60 -_080380B0: .4byte gUnknown_02024A6A +_080380A8: .4byte gBattleBufferA +_080380AC: .4byte gActiveBank +_080380B0: .4byte gBattlePartyID _080380B4: ldrb r4, [r1] movs r5, 0 @@ -62,7 +62,7 @@ _080380D6: pop {r4-r6} pop {r0} bx r0 - thumb_func_end dp01t_00_4_getattr + thumb_func_end LinkOpponentHandleGetAttributes thumb_func_start dp01_getattr_by_ch1_for_player_pokemon__ dp01_getattr_by_ch1_for_player_pokemon__: @ 80380F0 @@ -76,8 +76,8 @@ dp01_getattr_by_ch1_for_player_pokemon__: @ 80380F0 lsls r0, 24 lsrs r5, r0, 24 movs r6, 0 - ldr r2, _08038124 @ =gUnknown_02023A60 - ldr r3, _08038128 @ =gUnknown_02024A60 + ldr r2, _08038124 @ =gBattleBufferA + ldr r3, _08038128 @ =gActiveBank ldrb r0, [r3] lsls r0, 9 adds r1, r2, 0x1 @@ -93,8 +93,8 @@ _0803811A: ldr r0, [r0] mov pc, r0 .align 2, 0 -_08038124: .4byte gUnknown_02023A60 -_08038128: .4byte gUnknown_02024A60 +_08038124: .4byte gBattleBufferA +_08038128: .4byte gActiveBank _0803812C: .4byte _08038130 .align 2, 0 _08038130: @@ -1009,8 +1009,8 @@ sub_803889C: @ 803889C thumb_func_start sub_80388A8 sub_80388A8: @ 80388A8 push {r4,r5,lr} - ldr r1, _080388CC @ =gUnknown_02023A60 - ldr r0, _080388D0 @ =gUnknown_02024A60 + ldr r1, _080388CC @ =gBattleBufferA + ldr r0, _080388D0 @ =gActiveBank ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x2 @@ -1018,16 +1018,16 @@ sub_80388A8: @ 80388A8 ldrb r0, [r1] cmp r0, 0 bne _080388D8 - ldr r0, _080388D4 @ =gUnknown_02024A6A + ldr r0, _080388D4 @ =gBattlePartyID lsls r1, r2, 1 adds r1, r0 ldrb r0, [r1] bl sub_8038900 b _080388F6 .align 2, 0 -_080388CC: .4byte gUnknown_02023A60 -_080388D0: .4byte gUnknown_02024A60 -_080388D4: .4byte gUnknown_02024A6A +_080388CC: .4byte gBattleBufferA +_080388D0: .4byte gActiveBank +_080388D4: .4byte gBattlePartyID _080388D8: ldrb r4, [r1] movs r5, 0 @@ -1062,7 +1062,7 @@ sub_8038900: @ 8038900 sub sp, 0x38 lsls r0, 24 lsrs r5, r0, 24 - ldr r3, _08038938 @ =gUnknown_02024A60 + ldr r3, _08038938 @ =gActiveBank ldrb r0, [r3] lsls r0, 9 ldr r2, _0803893C @ =gUnknown_02023A63 @@ -1083,7 +1083,7 @@ _0803892E: ldr r0, [r0] mov pc, r0 .align 2, 0 -_08038938: .4byte gUnknown_02024A60 +_08038938: .4byte gActiveBank _0803893C: .4byte gUnknown_02023A63 _08038940: .4byte _08038944 .align 2, 0 @@ -1402,7 +1402,7 @@ _08038C58: muls r0, r5 ldr r1, _08038C70 @ =gEnemyParty adds r0, r1 - ldr r3, _08038C74 @ =gUnknown_02023A60 + ldr r3, _08038C74 @ =gBattleBufferA ldrb r2, [r6] lsls r2, 9 adds r1, r3, 0x1 @@ -1412,7 +1412,7 @@ _08038C58: b _08038CF6 .align 2, 0 _08038C70: .4byte gEnemyParty -_08038C74: .4byte gUnknown_02023A60 +_08038C74: .4byte gBattleBufferA _08038C78: movs r0, 0x64 adds r4, r5, 0 @@ -1466,7 +1466,7 @@ _08038CE0: muls r0, r5 ldr r1, _08038D00 @ =gEnemyParty adds r0, r1 - ldr r3, _08038D04 @ =gUnknown_02023A60 + ldr r3, _08038D04 @ =gBattleBufferA ldrb r2, [r6] lsls r2, 9 adds r1, r3, 0x1 @@ -1480,7 +1480,7 @@ _08038CF6: b _0803920C .align 2, 0 _08038D00: .4byte gEnemyParty -_08038D04: .4byte gUnknown_02023A60 +_08038D04: .4byte gBattleBufferA _08038D08: movs r0, 0x64 muls r0, r5 @@ -2095,8 +2095,8 @@ _0803921C: .4byte gEnemyParty thumb_func_start sub_8039220 sub_8039220: @ 8039220 push {r4-r7,lr} - ldr r1, _08039284 @ =gUnknown_02024A6A - ldr r7, _08039288 @ =gUnknown_02024A60 + ldr r1, _08039284 @ =gBattlePartyID + ldr r7, _08039288 @ =gActiveBank ldrb r2, [r7] lsls r0, r2, 1 adds r0, r1 @@ -2104,7 +2104,7 @@ sub_8039220: @ 8039220 movs r0, 0x64 adds r3, r1, 0 muls r3, r0 - ldr r4, _0803928C @ =gUnknown_02023A60 + ldr r4, _0803928C @ =gBattleBufferA lsls r2, 9 adds r0, r4, 0x1 adds r0, r2, r0 @@ -2145,9 +2145,9 @@ _08039278: pop {r0} bx r0 .align 2, 0 -_08039284: .4byte gUnknown_02024A6A -_08039288: .4byte gUnknown_02024A60 -_0803928C: .4byte gUnknown_02023A60 +_08039284: .4byte gBattlePartyID +_08039288: .4byte gActiveBank +_0803928C: .4byte gBattleBufferA _08039290: .4byte gEnemyParty thumb_func_end sub_8039220 @@ -2158,8 +2158,8 @@ sub_8039294: @ 8039294 mov r6, r9 mov r5, r8 push {r5-r7} - ldr r7, _080393BC @ =gUnknown_02024A6A - ldr r6, _080393C0 @ =gUnknown_02024A60 + ldr r7, _080393BC @ =gBattlePartyID + ldr r6, _080393C0 @ =gActiveBank ldrb r0, [r6] lsls r0, 1 adds r0, r7 @@ -2187,7 +2187,7 @@ sub_8039294: @ 8039294 add r0, r9 bl sub_8031794 ldrb r0, [r6] - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -2215,7 +2215,7 @@ sub_8039294: @ 8039294 adds r1, r5, 0 adds r2, r4, 0 bl CreateSprite - ldr r4, _080393CC @ =gUnknown_02024BE0 + ldr r4, _080393CC @ =gObjectBankIDs ldrb r1, [r6] adds r1, r4 strb r0, [r1] @@ -2276,7 +2276,7 @@ sub_8039294: @ 8039294 lsrs r1, 16 adds r0, r4, 0 bl sub_8032984 - ldr r1, _080393DC @ =gUnknown_03004330 + ldr r1, _080393DC @ =gBattleBankFunc ldrb r0, [r6] lsls r0, 2 adds r0, r1 @@ -2290,27 +2290,27 @@ sub_8039294: @ 8039294 pop {r0} bx r0 .align 2, 0 -_080393BC: .4byte gUnknown_02024A6A -_080393C0: .4byte gUnknown_02024A60 +_080393BC: .4byte gBattlePartyID +_080393C0: .4byte gActiveBank _080393C4: .4byte gEnemyParty _080393C8: .4byte gUnknown_02024E8C -_080393CC: .4byte gUnknown_02024BE0 +_080393CC: .4byte gObjectBankIDs _080393D0: .4byte gSprites _080393D4: .4byte 0x0000ff10 _080393D8: .4byte gBattleMonForms -_080393DC: .4byte gUnknown_03004330 +_080393DC: .4byte gBattleBankFunc _080393E0: .4byte sub_8037A74 thumb_func_end sub_8039294 thumb_func_start sub_80393E4 sub_80393E4: @ 80393E4 push {r4,lr} - ldr r1, _0803941C @ =gUnknown_02024A6A - ldr r4, _08039420 @ =gUnknown_02024A60 + ldr r1, _0803941C @ =gBattlePartyID + ldr r4, _08039420 @ =gActiveBank ldrb r0, [r4] lsls r2, r0, 1 adds r2, r1 - ldr r3, _08039424 @ =gUnknown_02023A60 + ldr r3, _08039424 @ =gBattleBufferA lsls r0, 9 adds r1, r3, 0x1 adds r0, r1 @@ -2322,7 +2322,7 @@ sub_80393E4: @ 80393E4 adds r1, r3 ldrb r1, [r1] bl sub_8039430 - ldr r1, _08039428 @ =gUnknown_03004330 + ldr r1, _08039428 @ =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 adds r0, r1 @@ -2332,10 +2332,10 @@ sub_80393E4: @ 80393E4 pop {r0} bx r0 .align 2, 0 -_0803941C: .4byte gUnknown_02024A6A -_08039420: .4byte gUnknown_02024A60 -_08039424: .4byte gUnknown_02023A60 -_08039428: .4byte gUnknown_03004330 +_0803941C: .4byte gBattlePartyID +_08039420: .4byte gActiveBank +_08039424: .4byte gBattleBufferA +_08039428: .4byte gBattleBankFunc _0803942C: .4byte sub_8037E30 thumb_func_end sub_80393E4 @@ -2353,10 +2353,10 @@ sub_8039430: @ 8039430 lsrs r1, 24 adds r0, r6, 0 bl sub_8032AA8 - ldr r0, _0803958C @ =gUnknown_02024A6A + ldr r0, _0803958C @ =gBattlePartyID lsls r4, r6, 1 adds r4, r0 - ldr r0, _08039590 @ =gUnknown_02023A60 + ldr r0, _08039590 @ =gBattleBufferA lsls r1, r6, 9 adds r0, 0x1 adds r1, r0 @@ -2391,7 +2391,7 @@ sub_8039430: @ 8039430 adds r1, r6, 0 bl sub_8031794 adds r0, r6, 0 - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -2419,7 +2419,7 @@ sub_8039430: @ 8039430 adds r1, r5, 0 adds r2, r4, 0 bl CreateSprite - ldr r4, _080395A4 @ =gUnknown_02024BE0 + ldr r4, _080395A4 @ =gObjectBankIDs adds r4, r6, r4 strb r0, [r4] ldr r5, _080395A8 @ =gSprites @@ -2503,13 +2503,13 @@ sub_8039430: @ 8039430 pop {r0} bx r0 .align 2, 0 -_0803958C: .4byte gUnknown_02024A6A -_08039590: .4byte gUnknown_02023A60 +_0803958C: .4byte gBattlePartyID +_08039590: .4byte gBattleBufferA _08039594: .4byte gEnemyParty _08039598: .4byte sub_80312F0 _0803959C: .4byte gUnknown_0300434C _080395A0: .4byte gUnknown_02024E8C -_080395A4: .4byte gUnknown_02024BE0 +_080395A4: .4byte gObjectBankIDs _080395A8: .4byte gSprites _080395AC: .4byte gBattleMonForms _080395B0: .4byte SpriteCallbackDummy @@ -2518,8 +2518,8 @@ _080395B0: .4byte SpriteCallbackDummy thumb_func_start sub_80395B4 sub_80395B4: @ 80395B4 push {r4-r6,lr} - ldr r1, _080395E4 @ =gUnknown_02023A60 - ldr r6, _080395E8 @ =gUnknown_02024A60 + ldr r1, _080395E4 @ =gBattleBufferA + ldr r6, _080395E8 @ =gActiveBank ldrb r2, [r6] lsls r0, r2, 9 adds r1, 0x1 @@ -2533,7 +2533,7 @@ sub_80395B4: @ 80395B4 ldr r1, _080395EC @ =0x02017810 adds r0, r1 strb r3, [r0, 0x4] - ldr r1, _080395F0 @ =gUnknown_03004330 + ldr r1, _080395F0 @ =gBattleBankFunc ldrb r0, [r6] lsls r0, 2 adds r0, r1 @@ -2541,13 +2541,13 @@ sub_80395B4: @ 80395B4 str r1, [r0] b _08039634 .align 2, 0 -_080395E4: .4byte gUnknown_02023A60 -_080395E8: .4byte gUnknown_02024A60 +_080395E4: .4byte gBattleBufferA +_080395E8: .4byte gActiveBank _080395EC: .4byte 0x02017810 -_080395F0: .4byte gUnknown_03004330 +_080395F0: .4byte gBattleBankFunc _080395F4: .4byte sub_8039648 _080395F8: - ldr r5, _0803963C @ =gUnknown_02024BE0 + ldr r5, _0803963C @ =gObjectBankIDs adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 @@ -2566,7 +2566,7 @@ _080395F8: bl DestroySprite ldrb r0, [r6] bl sub_8032A08 - ldr r1, _08039644 @ =gUnknown_03004340 + ldr r1, _08039644 @ =gHealthboxIDs ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] @@ -2577,15 +2577,15 @@ _08039634: pop {r0} bx r0 .align 2, 0 -_0803963C: .4byte gUnknown_02024BE0 +_0803963C: .4byte gObjectBankIDs _08039640: .4byte gSprites -_08039644: .4byte gUnknown_03004340 +_08039644: .4byte gHealthboxIDs thumb_func_end sub_80395B4 thumb_func_start sub_8039648 sub_8039648: @ 8039648 push {r4,r5,lr} - ldr r5, _08039664 @ =gUnknown_02024A60 + ldr r5, _08039664 @ =gActiveBank ldrb r2, [r5] lsls r0, r2, 1 adds r0, r2 @@ -2599,7 +2599,7 @@ sub_8039648: @ 8039648 beq _08039698 b _080396C0 .align 2, 0 -_08039664: .4byte gUnknown_02024A60 +_08039664: .4byte gActiveBank _08039668: .4byte 0x02017810 _0803966C: lsls r0, r2, 2 @@ -2638,7 +2638,7 @@ _08039698: adds r1, r2, 0 movs r3, 0x2 bl move_anim_start_t4 - ldr r1, _080396C8 @ =gUnknown_03004330 + ldr r1, _080396C8 @ =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 adds r0, r1 @@ -2649,7 +2649,7 @@ _080396C0: pop {r0} bx r0 .align 2, 0 -_080396C8: .4byte gUnknown_03004330 +_080396C8: .4byte gBattleBankFunc _080396CC: .4byte sub_8037BBC thumb_func_end sub_8039648 @@ -2665,9 +2665,9 @@ sub_80396D0: @ 80396D0 ands r0, r1 cmp r0, 0 beq _08039714 - ldr r6, _08039708 @ =gUnknown_02024A60 + ldr r6, _08039708 @ =gActiveBank ldrb r0, [r6] - bl battle_get_per_side_status + bl GetBankIdentity movs r1, 0x2 ands r1, r0 movs r5, 0x10 @@ -2681,7 +2681,7 @@ _080396F8: b _08039724 .align 2, 0 _08039704: .4byte gBattleTypeFlags -_08039708: .4byte gUnknown_02024A60 +_08039708: .4byte gActiveBank _0803970C: .4byte 0x0000fff0 _08039710: .4byte gLinkPlayers _08039714: @@ -2699,14 +2699,14 @@ _08039724: adds r1, r4 ldrb r0, [r1, 0x13] mov r9, r0 - ldr r0, _08039870 @ =gUnknown_02024A60 + ldr r0, _08039870 @ =gActiveBank mov r8, r0 ldrb r1, [r0] mov r0, r9 bl sub_8031A6C mov r1, r8 ldrb r0, [r1] - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -2740,7 +2740,7 @@ _08039724: adds r1, r5, 0 adds r2, r4, 0 bl CreateSprite - ldr r5, _0803987C @ =gUnknown_02024BE0 + ldr r5, _0803987C @ =gObjectBankIDs mov r2, r8 ldrb r1, [r2] adds r1, r5 @@ -2836,7 +2836,7 @@ _08039724: adds r0, r4 ldr r1, _08039898 @ =sub_80313A0 str r1, [r0] - ldr r1, _0803989C @ =gUnknown_03004330 + ldr r1, _0803989C @ =gBattleBankFunc mov r2, r8 ldrb r0, [r2] lsls r0, 2 @@ -2851,10 +2851,10 @@ _08039724: bx r0 .align 2, 0 _0803986C: .4byte gLinkPlayers -_08039870: .4byte gUnknown_02024A60 +_08039870: .4byte gActiveBank _08039874: .4byte gUnknown_02024E8C _08039878: .4byte gTrainerFrontPicCoords -_0803987C: .4byte gUnknown_02024BE0 +_0803987C: .4byte gObjectBankIDs _08039880: .4byte gSprites _08039884: .4byte 0x0000ff10 _08039888: .4byte gTrainerFrontPicPaletteTable @@ -2862,7 +2862,7 @@ _0803988C: .4byte gTrainerFrontPicTable _08039890: .4byte 0x000003ff _08039894: .4byte 0xfffffc00 _08039898: .4byte sub_80313A0 -_0803989C: .4byte gUnknown_03004330 +_0803989C: .4byte gBattleBankFunc _080398A0: .4byte sub_803757C thumb_func_end sub_80396D0 @@ -2877,8 +2877,8 @@ sub_80398A4: @ 80398A4 thumb_func_start sub_80398B0 sub_80398B0: @ 80398B0 push {r4-r6,lr} - ldr r6, _08039940 @ =gUnknown_02024BE0 - ldr r4, _08039944 @ =gUnknown_02024A60 + ldr r6, _08039940 @ =gObjectBankIDs + ldr r4, _08039944 @ =gActiveBank ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] @@ -2936,7 +2936,7 @@ sub_80398B0: @ 80398B0 adds r0, r5 ldr r1, _08039950 @ =SpriteCallbackDummy bl oamt_set_x3A_32 - ldr r1, _08039954 @ =gUnknown_03004330 + ldr r1, _08039954 @ =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 adds r0, r1 @@ -2946,19 +2946,19 @@ sub_80398B0: @ 80398B0 pop {r0} bx r0 .align 2, 0 -_08039940: .4byte gUnknown_02024BE0 -_08039944: .4byte gUnknown_02024A60 +_08039940: .4byte gObjectBankIDs +_08039944: .4byte gActiveBank _08039948: .4byte gSprites _0803994C: .4byte sub_8078B34 _08039950: .4byte SpriteCallbackDummy -_08039954: .4byte gUnknown_03004330 +_08039954: .4byte gBattleBankFunc _08039958: .4byte sub_80375B4 thumb_func_end sub_80398B0 thumb_func_start sub_803995C sub_803995C: @ 803995C push {r4,r5,lr} - ldr r5, _080399A0 @ =gUnknown_02024A60 + ldr r5, _080399A0 @ =gActiveBank ldrb r2, [r5] lsls r0, r2, 1 adds r0, r2 @@ -2992,7 +2992,7 @@ _0803998E: strb r0, [r1, 0x4] b _080399E4 .align 2, 0 -_080399A0: .4byte gUnknown_02024A60 +_080399A0: .4byte gActiveBank _080399A4: .4byte 0x02017810 _080399A8: ldrb r1, [r3] @@ -3007,7 +3007,7 @@ _080399A8: movs r1, 0x3F bl PlaySE12WithPanning ldr r2, _080399EC @ =gSprites - ldr r1, _080399F0 @ =gUnknown_02024BE0 + ldr r1, _080399F0 @ =gObjectBankIDs ldrb r0, [r5] adds r0, r1 ldrb r1, [r0] @@ -3018,7 +3018,7 @@ _080399A8: adds r0, r2 ldr r1, _080399F4 @ =sub_8010384 str r1, [r0] - ldr r1, _080399F8 @ =gUnknown_03004330 + ldr r1, _080399F8 @ =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 adds r0, r1 @@ -3030,9 +3030,9 @@ _080399E4: bx r0 .align 2, 0 _080399EC: .4byte gSprites -_080399F0: .4byte gUnknown_02024BE0 +_080399F0: .4byte gObjectBankIDs _080399F4: .4byte sub_8010384 -_080399F8: .4byte gUnknown_03004330 +_080399F8: .4byte gBattleBankFunc _080399FC: .4byte sub_8037B78 thumb_func_end sub_803995C @@ -3071,7 +3071,7 @@ sub_8039A24: @ 8039A24 thumb_func_start sub_8039A30 sub_8039A30: @ 8039A30 push {r4-r6,lr} - ldr r6, _08039B14 @ =gUnknown_02024A60 + ldr r6, _08039B14 @ =gActiveBank ldrb r0, [r6] bl mplay_80342A4 lsls r0, 24 @@ -3079,7 +3079,7 @@ sub_8039A30: @ 8039A30 beq _08039A42 b _08039B52 _08039A42: - ldr r0, _08039B18 @ =gUnknown_02023A60 + ldr r0, _08039B18 @ =gBattleBufferA mov r12, r0 ldrb r2, [r6] lsls r2, 9 @@ -3098,7 +3098,7 @@ _08039A42: adds r2, r1 ldrb r1, [r2] strb r1, [r5] - ldr r4, _08039B20 @ =gUnknown_0202F7BC + ldr r4, _08039B20 @ =gMovePowerMoveAnim ldrb r2, [r6] lsls r2, 9 mov r1, r12 @@ -3112,7 +3112,7 @@ _08039A42: lsls r1, 8 orrs r3, r1 strh r3, [r4] - ldr r4, _08039B24 @ =gUnknown_0202F7B8 + ldr r4, _08039B24 @ =gMoveDmgMoveAnim ldrb r2, [r6] lsls r2, 9 mov r1, r12 @@ -3138,7 +3138,7 @@ _08039A42: lsls r1, 24 orrs r3, r1 str r3, [r4] - ldr r3, _08039B28 @ =gUnknown_0202F7BE + ldr r3, _08039B28 @ =gHappinessMoveAnim ldrb r1, [r6] lsls r1, 9 mov r2, r12 @@ -3146,7 +3146,7 @@ _08039A42: adds r1, r2 ldrb r1, [r1] strb r1, [r3] - ldr r4, _08039B2C @ =gUnknown_0202F7C0 + ldr r4, _08039B2C @ =gWeatherMoveAnim ldrb r2, [r6] lsls r2, 9 mov r1, r12 @@ -3160,14 +3160,14 @@ _08039A42: lsls r1, 8 orrs r3, r1 strh r3, [r4] - ldr r3, _08039B30 @ =gUnknown_0202F7B4 + ldr r3, _08039B30 @ =gDisableStructMoveAnim ldrb r2, [r6] lsls r2, 9 mov r1, r12 adds r1, 0x10 adds r2, r1 str r2, [r3] - ldr r3, _08039B34 @ =gUnknown_02024E70 + ldr r3, _08039B34 @ =gPID_perBank ldrb r1, [r6] lsls r1, 2 adds r1, r3 @@ -3182,15 +3182,15 @@ _08039A42: bl dp01_tbl4_exec_completed b _08039B52 .align 2, 0 -_08039B14: .4byte gUnknown_02024A60 -_08039B18: .4byte gUnknown_02023A60 +_08039B14: .4byte gActiveBank +_08039B18: .4byte gBattleBufferA _08039B1C: .4byte gUnknown_0202F7C4 -_08039B20: .4byte gUnknown_0202F7BC -_08039B24: .4byte gUnknown_0202F7B8 -_08039B28: .4byte gUnknown_0202F7BE -_08039B2C: .4byte gUnknown_0202F7C0 -_08039B30: .4byte gUnknown_0202F7B4 -_08039B34: .4byte gUnknown_02024E70 +_08039B20: .4byte gMovePowerMoveAnim +_08039B24: .4byte gMoveDmgMoveAnim +_08039B28: .4byte gHappinessMoveAnim +_08039B2C: .4byte gWeatherMoveAnim +_08039B30: .4byte gDisableStructMoveAnim +_08039B34: .4byte gPID_perBank _08039B38: ldrb r1, [r6] lsls r0, r1, 1 @@ -3199,7 +3199,7 @@ _08039B38: ldr r1, _08039B58 @ =0x02017810 adds r0, r1 strb r2, [r0, 0x4] - ldr r1, _08039B5C @ =gUnknown_03004330 + ldr r1, _08039B5C @ =gBattleBankFunc ldrb r0, [r6] lsls r0, 2 adds r0, r1 @@ -3211,7 +3211,7 @@ _08039B52: bx r0 .align 2, 0 _08039B58: .4byte 0x02017810 -_08039B5C: .4byte gUnknown_03004330 +_08039B5C: .4byte gBattleBankFunc _08039B60: .4byte sub_8039B64 thumb_func_end sub_8039A30 @@ -3221,8 +3221,8 @@ sub_8039B64: @ 8039B64 mov r7, r9 mov r6, r8 push {r6,r7} - ldr r2, _08039BA8 @ =gUnknown_02023A60 - ldr r5, _08039BAC @ =gUnknown_02024A60 + ldr r2, _08039BA8 @ =gBattleBufferA + ldr r5, _08039BAC @ =gActiveBank ldrb r3, [r5] lsls r1, r3, 9 adds r0, r2, 0x1 @@ -3252,8 +3252,8 @@ sub_8039B64: @ 8039B64 beq _08039BBE b _08039CBC .align 2, 0 -_08039BA8: .4byte gUnknown_02023A60 -_08039BAC: .4byte gUnknown_02024A60 +_08039BA8: .4byte gBattleBufferA +_08039BAC: .4byte gActiveBank _08039BB0: .4byte 0x02017810 _08039BB4: cmp r2, 0x2 @@ -3341,7 +3341,7 @@ _08039C18: ands r1, r2 strb r1, [r0] _08039C60: - ldr r0, _08039C7C @ =gUnknown_02024A60 + ldr r0, _08039C7C @ =gActiveBank ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -3354,7 +3354,7 @@ _08039C60: .align 2, 0 _08039C74: .4byte gAnimScriptCallback _08039C78: .4byte gAnimScriptActive -_08039C7C: .4byte gUnknown_02024A60 +_08039C7C: .4byte gActiveBank _08039C80: .4byte 0x02017810 _08039C84: ldrb r1, [r0] @@ -3400,21 +3400,21 @@ sub_8039CC8: @ 8039CC8 strh r1, [r0] ldr r0, _08039D10 @ =gUnknown_030042A0 strh r1, [r0] - ldr r4, _08039D14 @ =gUnknown_02024A60 + ldr r4, _08039D14 @ =gActiveBank ldrb r0, [r4] lsls r0, 9 ldr r1, _08039D18 @ =gUnknown_02023A62 adds r0, r1 ldrh r0, [r0] - bl sub_8120AA8 + bl BufferStringBattle ldr r0, _08039D1C @ =gUnknown_03004210 - ldr r1, _08039D20 @ =gUnknown_020238CC + ldr r1, _08039D20 @ =gDisplayedStringBattle movs r2, 0xF str r2, [sp] movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 - ldr r1, _08039D24 @ =gUnknown_03004330 + ldr r1, _08039D24 @ =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 adds r0, r1 @@ -3427,11 +3427,11 @@ sub_8039CC8: @ 8039CC8 .align 2, 0 _08039D0C: .4byte gUnknown_030042A4 _08039D10: .4byte gUnknown_030042A0 -_08039D14: .4byte gUnknown_02024A60 +_08039D14: .4byte gActiveBank _08039D18: .4byte gUnknown_02023A62 _08039D1C: .4byte gUnknown_03004210 -_08039D20: .4byte gUnknown_020238CC -_08039D24: .4byte gUnknown_03004330 +_08039D20: .4byte gDisplayedStringBattle +_08039D24: .4byte gBattleBankFunc _08039D28: .4byte sub_8037C2C thumb_func_end sub_8039CC8 @@ -3500,8 +3500,8 @@ sub_8039D80: @ 8039D80 sub sp, 0x4 movs r0, 0 bl load_gfxc_health_bar - ldr r3, _08039DF8 @ =gUnknown_02023A60 - ldr r0, _08039DFC @ =gUnknown_02024A60 + ldr r3, _08039DF8 @ =gBattleBufferA + ldr r0, _08039DFC @ =gActiveBank mov r9, r0 ldrb r4, [r0] lsls r2, r4, 9 @@ -3518,7 +3518,7 @@ sub_8039D80: @ 8039D80 ldr r0, _08039E00 @ =0x00007fff cmp r7, r0 beq _08039E10 - ldr r6, _08039E04 @ =gUnknown_02024A6A + ldr r6, _08039E04 @ =gBattlePartyID lsls r0, r4, 1 adds r0, r6 ldrh r0, [r0] @@ -3541,7 +3541,7 @@ sub_8039D80: @ 8039D80 adds r3, r0, 0 mov r1, r9 ldrb r0, [r1] - ldr r1, _08039E0C @ =gUnknown_03004340 + ldr r1, _08039E0C @ =gHealthboxIDs adds r1, r0, r1 ldrb r1, [r1] str r7, [sp] @@ -3549,14 +3549,14 @@ sub_8039D80: @ 8039D80 bl sub_8043D84 b _08039E3A .align 2, 0 -_08039DF8: .4byte gUnknown_02023A60 -_08039DFC: .4byte gUnknown_02024A60 +_08039DF8: .4byte gBattleBufferA +_08039DFC: .4byte gActiveBank _08039E00: .4byte 0x00007fff -_08039E04: .4byte gUnknown_02024A6A +_08039E04: .4byte gBattlePartyID _08039E08: .4byte gEnemyParty -_08039E0C: .4byte gUnknown_03004340 +_08039E0C: .4byte gHealthboxIDs _08039E10: - ldr r1, _08039E58 @ =gUnknown_02024A6A + ldr r1, _08039E58 @ =gBattlePartyID lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] @@ -3569,15 +3569,15 @@ _08039E10: adds r2, r0, 0 mov r1, r9 ldrb r0, [r1] - ldr r1, _08039E60 @ =gUnknown_03004340 + ldr r1, _08039E60 @ =gHealthboxIDs adds r1, r0, r1 ldrb r1, [r1] str r7, [sp] movs r3, 0 bl sub_8043D84 _08039E3A: - ldr r1, _08039E64 @ =gUnknown_03004330 - ldr r0, _08039E68 @ =gUnknown_02024A60 + ldr r1, _08039E64 @ =gBattleBankFunc + ldr r0, _08039E68 @ =gActiveBank ldrb r0, [r0] lsls r0, 2 adds r0, r1 @@ -3591,11 +3591,11 @@ _08039E3A: pop {r0} bx r0 .align 2, 0 -_08039E58: .4byte gUnknown_02024A6A +_08039E58: .4byte gBattlePartyID _08039E5C: .4byte gEnemyParty -_08039E60: .4byte gUnknown_03004340 -_08039E64: .4byte gUnknown_03004330 -_08039E68: .4byte gUnknown_02024A60 +_08039E60: .4byte gHealthboxIDs +_08039E64: .4byte gBattleBankFunc +_08039E68: .4byte gActiveBank _08039E6C: .4byte sub_8037B24 thumb_func_end sub_8039D80 @@ -3610,17 +3610,17 @@ sub_8039E70: @ 8039E70 thumb_func_start sub_8039E7C sub_8039E7C: @ 8039E7C push {r4,lr} - ldr r4, _08039ED4 @ =gUnknown_02024A60 + ldr r4, _08039ED4 @ =gActiveBank ldrb r0, [r4] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 bne _08039ECC - ldr r0, _08039ED8 @ =gUnknown_03004340 + ldr r0, _08039ED8 @ =gHealthboxIDs ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] - ldr r2, _08039EDC @ =gUnknown_02024A6A + ldr r2, _08039EDC @ =gBattlePartyID lsls r1, 1 adds r1, r2 ldrh r2, [r1] @@ -3641,7 +3641,7 @@ sub_8039E7C: @ 8039E7C negs r0, r0 ands r0, r2 strb r0, [r1] - ldr r1, _08039EE8 @ =gUnknown_03004330 + ldr r1, _08039EE8 @ =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 adds r0, r1 @@ -3652,25 +3652,25 @@ _08039ECC: pop {r0} bx r0 .align 2, 0 -_08039ED4: .4byte gUnknown_02024A60 -_08039ED8: .4byte gUnknown_03004340 -_08039EDC: .4byte gUnknown_02024A6A +_08039ED4: .4byte gActiveBank +_08039ED8: .4byte gHealthboxIDs +_08039EDC: .4byte gBattlePartyID _08039EE0: .4byte gEnemyParty _08039EE4: .4byte 0x02017810 -_08039EE8: .4byte gUnknown_03004330 +_08039EE8: .4byte gBattleBankFunc _08039EEC: .4byte sub_8037FAC thumb_func_end sub_8039E7C thumb_func_start sub_8039EF0 sub_8039EF0: @ 8039EF0 push {r4,r5,lr} - ldr r5, _08039F48 @ =gUnknown_02024A60 + ldr r5, _08039F48 @ =gActiveBank ldrb r0, [r5] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 bne _08039F40 - ldr r4, _08039F4C @ =gUnknown_02023A60 + ldr r4, _08039F4C @ =gBattleBufferA ldrb r3, [r5] lsls r3, 9 adds r0, r4, 0x1 @@ -3695,7 +3695,7 @@ sub_8039EF0: @ 8039EF0 lsls r2, 24 orrs r1, r2 bl move_anim_start_t2_for_situation - ldr r1, _08039F50 @ =gUnknown_03004330 + ldr r1, _08039F50 @ =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 adds r0, r1 @@ -3706,9 +3706,9 @@ _08039F40: pop {r0} bx r0 .align 2, 0 -_08039F48: .4byte gUnknown_02024A60 -_08039F4C: .4byte gUnknown_02023A60 -_08039F50: .4byte gUnknown_03004330 +_08039F48: .4byte gActiveBank +_08039F4C: .4byte gBattleBufferA +_08039F50: .4byte gBattleBankFunc _08039F54: .4byte sub_8037FAC thumb_func_end sub_8039EF0 @@ -3804,8 +3804,8 @@ _08039FDC: .4byte gUnknown_020238C8 sub_8039FE0: @ 8039FE0 push {lr} ldr r3, _0803A00C @ =gUnknown_020238C8 - ldr r1, _0803A010 @ =gUnknown_02023A60 - ldr r0, _0803A014 @ =gUnknown_02024A60 + ldr r1, _0803A010 @ =gBattleBufferA + ldr r0, _0803A014 @ =gActiveBank ldrb r0, [r0] lsls r0, 9 adds r1, 0x1 @@ -3824,8 +3824,8 @@ sub_8039FE0: @ 8039FE0 bx r0 .align 2, 0 _0803A00C: .4byte gUnknown_020238C8 -_0803A010: .4byte gUnknown_02023A60 -_0803A014: .4byte gUnknown_02024A60 +_0803A010: .4byte gBattleBufferA +_0803A014: .4byte gActiveBank thumb_func_end sub_8039FE0 thumb_func_start sub_803A018 @@ -3869,8 +3869,8 @@ _0803A054: .4byte gUnknown_020238C8 dp01t_29_4_blink: @ 803A058 push {r4,lr} ldr r3, _0803A080 @ =gSprites - ldr r2, _0803A084 @ =gUnknown_02024BE0 - ldr r4, _0803A088 @ =gUnknown_02024A60 + ldr r2, _0803A084 @ =gObjectBankIDs + ldr r4, _0803A088 @ =gActiveBank ldrb r0, [r4] adds r0, r2 ldrb r1, [r0] @@ -3887,10 +3887,10 @@ dp01t_29_4_blink: @ 803A058 b _0803A0B6 .align 2, 0 _0803A080: .4byte gSprites -_0803A084: .4byte gUnknown_02024BE0 -_0803A088: .4byte gUnknown_02024A60 +_0803A084: .4byte gObjectBankIDs +_0803A088: .4byte gActiveBank _0803A08C: - ldr r1, _0803A0BC @ =gUnknown_02024E6D + ldr r1, _0803A0BC @ =gDoingBattleAnim movs r0, 0x1 strb r0, [r1] ldrb r0, [r4] @@ -3904,7 +3904,7 @@ _0803A08C: strh r1, [r0, 0x30] ldrb r0, [r4] bl sub_8047858 - ldr r1, _0803A0C0 @ =gUnknown_03004330 + ldr r1, _0803A0C0 @ =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 adds r0, r1 @@ -3915,8 +3915,8 @@ _0803A0B6: pop {r0} bx r0 .align 2, 0 -_0803A0BC: .4byte gUnknown_02024E6D -_0803A0C0: .4byte gUnknown_03004330 +_0803A0BC: .4byte gDoingBattleAnim +_0803A0C0: .4byte gBattleBankFunc _0803A0C4: .4byte dp01t_0F_4_move_anim thumb_func_end dp01t_29_4_blink @@ -3931,16 +3931,16 @@ sub_803A0C8: @ 803A0C8 thumb_func_start sub_803A0D4 sub_803A0D4: @ 803A0D4 push {r4,lr} - ldr r4, _0803A110 @ =gUnknown_02024A60 + ldr r4, _0803A110 @ =gActiveBank ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 movs r3, 0x3F cmp r0, 0 bne _0803A0E8 movs r3, 0xC0 _0803A0E8: - ldr r2, _0803A114 @ =gUnknown_02023A60 + ldr r2, _0803A114 @ =gBattleBufferA ldrb r1, [r4] lsls r1, 9 adds r0, r2, 0x1 @@ -3959,15 +3959,15 @@ _0803A0E8: pop {r0} bx r0 .align 2, 0 -_0803A110: .4byte gUnknown_02024A60 -_0803A114: .4byte gUnknown_02023A60 +_0803A110: .4byte gActiveBank +_0803A114: .4byte gBattleBufferA thumb_func_end sub_803A0D4 thumb_func_start sub_803A118 sub_803A118: @ 803A118 push {lr} - ldr r2, _0803A140 @ =gUnknown_02023A60 - ldr r0, _0803A144 @ =gUnknown_02024A60 + ldr r2, _0803A140 @ =gBattleBufferA + ldr r0, _0803A144 @ =gActiveBank ldrb r1, [r0] lsls r1, 9 adds r0, r2, 0x1 @@ -3983,15 +3983,15 @@ sub_803A118: @ 803A118 pop {r0} bx r0 .align 2, 0 -_0803A140: .4byte gUnknown_02023A60 -_0803A144: .4byte gUnknown_02024A60 +_0803A140: .4byte gBattleBufferA +_0803A144: .4byte gActiveBank thumb_func_end sub_803A118 thumb_func_start sub_803A148 sub_803A148: @ 803A148 push {lr} - ldr r1, _0803A178 @ =gUnknown_02024A6A - ldr r0, _0803A17C @ =gUnknown_02024A60 + ldr r1, _0803A178 @ =gBattlePartyID + ldr r0, _0803A17C @ =gActiveBank ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -4011,16 +4011,16 @@ sub_803A148: @ 803A148 pop {r0} bx r0 .align 2, 0 -_0803A178: .4byte gUnknown_02024A6A -_0803A17C: .4byte gUnknown_02024A60 +_0803A178: .4byte gBattlePartyID +_0803A17C: .4byte gActiveBank _0803A180: .4byte gEnemyParty thumb_func_end sub_803A148 thumb_func_start dp01t_2E_4_battle_intro dp01t_2E_4_battle_intro: @ 803A184 push {lr} - ldr r1, _0803A1AC @ =gUnknown_02023A60 - ldr r0, _0803A1B0 @ =gUnknown_02024A60 + ldr r1, _0803A1AC @ =gBattleBufferA + ldr r0, _0803A1B0 @ =gActiveBank ldrb r0, [r0] lsls r0, 9 adds r1, 0x1 @@ -4036,16 +4036,16 @@ dp01t_2E_4_battle_intro: @ 803A184 pop {r0} bx r0 .align 2, 0 -_0803A1AC: .4byte gUnknown_02023A60 -_0803A1B0: .4byte gUnknown_02024A60 +_0803A1AC: .4byte gBattleBufferA +_0803A1B0: .4byte gActiveBank _0803A1B4: .4byte gUnknown_02024DE8 thumb_func_end dp01t_2E_4_battle_intro thumb_func_start sub_803A1B8 sub_803A1B8: @ 803A1B8 push {r4-r6,lr} - ldr r5, _0803A294 @ =gUnknown_02024BE0 - ldr r6, _0803A298 @ =gUnknown_02024A60 + ldr r5, _0803A294 @ =gObjectBankIDs + ldr r6, _0803A298 @ =gActiveBank ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] @@ -4141,7 +4141,7 @@ _0803A276: movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x9] - ldr r1, _0803A2BC @ =gUnknown_03004330 + ldr r1, _0803A2BC @ =gBattleBankFunc ldrb r0, [r6] lsls r0, 2 adds r0, r1 @@ -4151,8 +4151,8 @@ _0803A276: pop {r0} bx r0 .align 2, 0 -_0803A294: .4byte gUnknown_02024BE0 -_0803A298: .4byte gUnknown_02024A60 +_0803A294: .4byte gObjectBankIDs +_0803A298: .4byte gActiveBank _0803A29C: .4byte gSprites _0803A2A0: .4byte sub_8078B34 _0803A2A4: .4byte sub_803A3A8 @@ -4161,7 +4161,7 @@ _0803A2AC: .4byte gTasks _0803A2B0: .4byte 0x02017810 _0803A2B4: .4byte gUnknown_02024E68 _0803A2B8: .4byte sub_8044CA0 -_0803A2BC: .4byte gUnknown_03004330 +_0803A2BC: .4byte gBattleBankFunc _0803A2C0: .4byte nullsub_47 thumb_func_end sub_803A1B8 @@ -4174,7 +4174,7 @@ sub_803A2C4: @ 803A2C4 lsls r0, 24 lsrs r0, 24 mov r8, r0 - ldr r7, _0803A31C @ =gUnknown_02024A60 + ldr r7, _0803A31C @ =gActiveBank ldrb r0, [r7] mov r9, r0 ldr r1, _0803A320 @ =gTasks @@ -4196,12 +4196,12 @@ sub_803A2C4: @ 803A2C4 cmp r0, 0 beq _0803A330 _0803A2FE: - ldr r0, _0803A328 @ =gUnknown_02023A60 + ldr r0, _0803A328 @ =gBattleBufferA ldrb r1, [r7] lsls r2, r1, 9 adds r0, 0x1 adds r2, r0 - ldr r0, _0803A32C @ =gUnknown_02024A6A + ldr r0, _0803A32C @ =gBattlePartyID lsls r1, 1 adds r1, r0 ldrh r0, [r1] @@ -4211,18 +4211,18 @@ _0803A2FE: bl sub_8039430 b _0803A370 .align 2, 0 -_0803A31C: .4byte gUnknown_02024A60 +_0803A31C: .4byte gActiveBank _0803A320: .4byte gTasks _0803A324: .4byte gBattleTypeFlags -_0803A328: .4byte gUnknown_02023A60 -_0803A32C: .4byte gUnknown_02024A6A +_0803A328: .4byte gBattleBufferA +_0803A32C: .4byte gBattlePartyID _0803A330: - ldr r4, _0803A394 @ =gUnknown_02023A60 + ldr r4, _0803A394 @ =gBattleBufferA ldrb r0, [r7] lsls r1, r0, 9 adds r4, 0x1 adds r1, r4 - ldr r6, _0803A398 @ =gUnknown_02024A6A + ldr r6, _0803A398 @ =gBattlePartyID lsls r0, 1 adds r0, r6 ldrh r0, [r0] @@ -4248,8 +4248,8 @@ _0803A330: eors r0, r5 strb r0, [r7] _0803A370: - ldr r1, _0803A39C @ =gUnknown_03004330 - ldr r2, _0803A3A0 @ =gUnknown_02024A60 + ldr r1, _0803A39C @ =gBattleBankFunc + ldr r2, _0803A3A0 @ =gActiveBank ldrb r0, [r2] lsls r0, 2 adds r0, r1 @@ -4266,10 +4266,10 @@ _0803A370: pop {r0} bx r0 .align 2, 0 -_0803A394: .4byte gUnknown_02023A60 -_0803A398: .4byte gUnknown_02024A6A -_0803A39C: .4byte gUnknown_03004330 -_0803A3A0: .4byte gUnknown_02024A60 +_0803A394: .4byte gBattleBufferA +_0803A398: .4byte gBattlePartyID +_0803A39C: .4byte gBattleBankFunc +_0803A3A0: .4byte gActiveBank _0803A3A4: .4byte sub_8037840 thumb_func_end sub_803A2C4 @@ -4302,8 +4302,8 @@ _0803A3D8: .4byte 0xfffffc00 thumb_func_start sub_803A3DC sub_803A3DC: @ 803A3DC push {r4-r6,lr} - ldr r1, _0803A404 @ =gUnknown_02023A60 - ldr r0, _0803A408 @ =gUnknown_02024A60 + ldr r1, _0803A404 @ =gBattleBufferA + ldr r0, _0803A408 @ =gActiveBank ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x1 @@ -4312,17 +4312,17 @@ sub_803A3DC: @ 803A3DC cmp r0, 0 beq _0803A40C adds r0, r2, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0803A40C bl dp01_tbl4_exec_completed b _0803A4C6 .align 2, 0 -_0803A404: .4byte gUnknown_02023A60 -_0803A408: .4byte gUnknown_02024A60 +_0803A404: .4byte gBattleBufferA +_0803A408: .4byte gActiveBank _0803A40C: - ldr r3, _0803A45C @ =gUnknown_02024A60 + ldr r3, _0803A45C @ =gActiveBank ldrb r1, [r3] lsls r0, r1, 1 adds r0, r1 @@ -4333,7 +4333,7 @@ _0803A40C: movs r2, 0x1 orrs r1, r2 strb r1, [r0] - ldr r1, _0803A464 @ =gUnknown_02023A60 + ldr r1, _0803A464 @ =gBattleBufferA ldrb r2, [r3] lsls r0, r2, 9 adds r1, 0x2 @@ -4362,9 +4362,9 @@ _0803A40C: strb r1, [r3, 0x1] b _0803A4C6 .align 2, 0 -_0803A45C: .4byte gUnknown_02024A60 +_0803A45C: .4byte gActiveBank _0803A460: .4byte 0x02017810 -_0803A464: .4byte gUnknown_02023A60 +_0803A464: .4byte gBattleBufferA _0803A468: movs r0, 0x3F negs r0, r0 @@ -4408,7 +4408,7 @@ _0803A470: movs r1, 0x5D strb r1, [r0, 0x5] _0803A4BA: - ldr r0, _0803A4D8 @ =gUnknown_03004330 + ldr r0, _0803A4D8 @ =gBattleBankFunc ldrb r1, [r6] lsls r1, 2 adds r1, r0 @@ -4422,14 +4422,14 @@ _0803A4C6: _0803A4CC: .4byte gUnknown_02023A64 _0803A4D0: .4byte gUnknown_02024E68 _0803A4D4: .4byte 0x02017810 -_0803A4D8: .4byte gUnknown_03004330 +_0803A4D8: .4byte gBattleBankFunc _0803A4DC: .4byte sub_803A4E0 thumb_func_end sub_803A3DC thumb_func_start sub_803A4E0 sub_803A4E0: @ 803A4E0 push {r4,lr} - ldr r4, _0803A518 @ =gUnknown_02024A60 + ldr r4, _0803A518 @ =gActiveBank ldrb r1, [r4] lsls r0, r1, 1 adds r0, r1 @@ -4456,14 +4456,14 @@ _0803A510: pop {r0} bx r0 .align 2, 0 -_0803A518: .4byte gUnknown_02024A60 +_0803A518: .4byte gActiveBank _0803A51C: .4byte 0x02017810 thumb_func_end sub_803A4E0 thumb_func_start sub_803A520 sub_803A520: @ 803A520 push {lr} - ldr r0, _0803A558 @ =gUnknown_02024A60 + ldr r0, _0803A558 @ =gActiveBank ldrb r3, [r0] lsls r0, r3, 1 adds r0, r3 @@ -4490,7 +4490,7 @@ _0803A54E: pop {r0} bx r0 .align 2, 0 -_0803A558: .4byte gUnknown_02024A60 +_0803A558: .4byte gActiveBank _0803A55C: .4byte 0x02017810 _0803A560: .4byte gTasks _0803A564: .4byte gUnknown_02024E68 @@ -4508,14 +4508,14 @@ sub_803A56C: @ 803A56C thumb_func_start sub_803A578 sub_803A578: @ 803A578 push {r4,lr} - ldr r4, _0803A5C8 @ =gUnknown_02024A60 + ldr r4, _0803A5C8 @ =gActiveBank ldrb r0, [r4] bl sub_8078874 lsls r0, 24 cmp r0, 0 beq _0803A5BE ldr r3, _0803A5CC @ =gSprites - ldr r0, _0803A5D0 @ =gUnknown_02024BE0 + ldr r0, _0803A5D0 @ =gObjectBankIDs ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] @@ -4523,7 +4523,7 @@ sub_803A578: @ 803A578 adds r2, r0 lsls r2, 2 adds r2, r3 - ldr r0, _0803A5D4 @ =gUnknown_02023A60 + ldr r0, _0803A5D4 @ =gBattleBufferA lsls r1, 9 adds r0, 0x1 adds r1, r0 @@ -4546,23 +4546,23 @@ _0803A5BE: pop {r0} bx r0 .align 2, 0 -_0803A5C8: .4byte gUnknown_02024A60 +_0803A5C8: .4byte gActiveBank _0803A5CC: .4byte gSprites -_0803A5D0: .4byte gUnknown_02024BE0 -_0803A5D4: .4byte gUnknown_02023A60 +_0803A5D0: .4byte gObjectBankIDs +_0803A5D4: .4byte gBattleBufferA thumb_func_end sub_803A578 thumb_func_start bx_exec_buffer_A_ch0_tbl4 bx_exec_buffer_A_ch0_tbl4: @ 803A5D8 push {r4-r6,lr} sub sp, 0x4 - ldr r6, _0803A61C @ =gUnknown_02024A60 + ldr r6, _0803A61C @ =gActiveBank ldrb r0, [r6] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 bne _0803A630 - ldr r5, _0803A620 @ =gUnknown_02023A60 + ldr r5, _0803A620 @ =gBattleBufferA ldrb r2, [r6] lsls r1, r2, 9 adds r0, r5, 0x1 @@ -4586,10 +4586,10 @@ bx_exec_buffer_A_ch0_tbl4: @ 803A5D8 bl dp01_tbl4_exec_completed b _0803A630 .align 2, 0 -_0803A61C: .4byte gUnknown_02024A60 -_0803A620: .4byte gUnknown_02023A60 +_0803A61C: .4byte gActiveBank +_0803A620: .4byte gBattleBufferA _0803A624: - ldr r0, _0803A638 @ =gUnknown_03004330 + ldr r0, _0803A638 @ =gBattleBankFunc ldrb r1, [r6] lsls r1, 2 adds r1, r0 @@ -4601,7 +4601,7 @@ _0803A630: pop {r0} bx r0 .align 2, 0 -_0803A638: .4byte gUnknown_03004330 +_0803A638: .4byte gBattleBankFunc _0803A63C: .4byte sub_8037FD8 thumb_func_end bx_exec_buffer_A_ch0_tbl4 @@ -4624,8 +4624,8 @@ sub_803A64C: @ 803A64C thumb_func_start sub_803A658 sub_803A658: @ 803A658 push {lr} - ldr r1, _0803A674 @ =gUnknown_02023A60 - ldr r0, _0803A678 @ =gUnknown_02024A60 + ldr r1, _0803A674 @ =gBattleBufferA + ldr r0, _0803A678 @ =gActiveBank ldrb r0, [r0] lsls r0, 9 adds r1, 0x1 @@ -4633,15 +4633,15 @@ sub_803A658: @ 803A658 ldrb r2, [r0] cmp r2, 0x3 bne _0803A680 - ldr r0, _0803A67C @ =gUnknown_02024D26 + ldr r0, _0803A67C @ =gBattleOutcome strb r2, [r0] b _0803A688 .align 2, 0 -_0803A674: .4byte gUnknown_02023A60 -_0803A678: .4byte gUnknown_02024A60 -_0803A67C: .4byte gUnknown_02024D26 +_0803A674: .4byte gBattleBufferA +_0803A678: .4byte gActiveBank +_0803A67C: .4byte gBattleOutcome _0803A680: - ldr r0, _0803A6AC @ =gUnknown_02024D26 + ldr r0, _0803A6AC @ =gBattleOutcome movs r1, 0x3 eors r1, r2 strb r1, [r0] @@ -4651,8 +4651,8 @@ _0803A688: movs r0, 0x3 bl BeginFastPaletteFade bl dp01_tbl4_exec_completed - ldr r1, _0803A6B0 @ =gUnknown_03004330 - ldr r0, _0803A6B4 @ =gUnknown_02024A60 + ldr r1, _0803A6B0 @ =gBattleBankFunc + ldr r0, _0803A6B4 @ =gActiveBank ldrb r0, [r0] lsls r0, 2 adds r0, r1 @@ -4661,9 +4661,9 @@ _0803A688: pop {r0} bx r0 .align 2, 0 -_0803A6AC: .4byte gUnknown_02024D26 -_0803A6B0: .4byte gUnknown_03004330 -_0803A6B4: .4byte gUnknown_02024A60 +_0803A6AC: .4byte gBattleOutcome +_0803A6B0: .4byte gBattleBankFunc +_0803A6B4: .4byte gActiveBank _0803A6B8: .4byte sub_8037F34 thumb_func_end sub_803A658 diff --git a/asm/battle_2.s b/asm/battle_2.s index cff6efe06..c1f75dad5 100644 --- a/asm/battle_2.s +++ b/asm/battle_2.s @@ -14,24 +14,24 @@ sub_8012324: @ 8012324 mov r5, r8 push {r5-r7} sub sp, 0x1C - ldr r0, _08012340 @ =gUnknown_02024D1E + ldr r0, _08012340 @ =gBattleCommunication movs r1, 0 strb r1, [r0, 0x4] - ldr r0, _08012344 @ =gUnknown_02024A60 + ldr r0, _08012344 @ =gActiveBank strb r1, [r0] - ldr r0, _08012348 @ =gUnknown_02024A68 + ldr r0, _08012348 @ =gNoOfAllBanks bl _08012F74 .align 2, 0 -_08012340: .4byte gUnknown_02024D1E -_08012344: .4byte gUnknown_02024A60 -_08012348: .4byte gUnknown_02024A68 +_08012340: .4byte gBattleCommunication +_08012344: .4byte gActiveBank +_08012348: .4byte gNoOfAllBanks _0801234C: - ldr r4, _08012374 @ =gUnknown_02024A60 + ldr r4, _08012374 @ =gActiveBank ldrb r0, [r4] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r5, r0, 24 - ldr r1, _08012378 @ =gUnknown_02024D1E + ldr r1, _08012378 @ =gBattleCommunication ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] @@ -45,8 +45,8 @@ _08012368: ldr r0, [r0] mov pc, r0 .align 2, 0 -_08012374: .4byte gUnknown_02024A60 -_08012378: .4byte gUnknown_02024D1E +_08012374: .4byte gActiveBank +_08012378: .4byte gBattleCommunication _0801237C: .4byte _08012380 .align 2, 0 _08012380: @@ -59,7 +59,7 @@ _08012380: .4byte _08012F38 _0801239C: ldr r4, _08012434 @ =0x02000000 - ldr r0, _08012438 @ =gUnknown_02024A60 + ldr r0, _08012438 @ =gActiveBank ldrb r0, [r0] ldr r1, _0801243C @ =0x00016068 adds r0, r1 @@ -79,7 +79,7 @@ _0801239C: beq _080123F8 eors r5, r1 adds r0, r5, 0 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI ldr r2, _08012444 @ =0x000160a6 adds r1, r4, r2 ldrb r1, [r1] @@ -91,9 +91,9 @@ _0801239C: ands r1, r0 cmp r1, 0 bne _080123F8 - ldr r4, _0801244C @ =gUnknown_02024D1E + ldr r4, _0801244C @ =gBattleCommunication adds r0, r5, 0 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 adds r0, r4 @@ -107,7 +107,7 @@ _080123F8: adds r0, r3 ldrb r3, [r0] ldr r1, _08012448 @ =gBitTable - ldr r4, _08012438 @ =gUnknown_02024A60 + ldr r4, _08012438 @ =gActiveBank ldrb r2, [r4] lsls r0, r2, 2 adds r0, r1 @@ -115,7 +115,7 @@ _080123F8: ands r3, r0 cmp r3, 0 beq _08012468 - ldr r0, _08012450 @ =gUnknown_02024C18 + ldr r0, _08012450 @ =gActionForBanks adds r0, r2, r0 movs r1, 0xD strb r1, [r0] @@ -125,7 +125,7 @@ _080123F8: ands r0, r1 cmp r0, 0 bne _08012454 - ldr r0, _0801244C @ =gUnknown_02024D1E + ldr r0, _0801244C @ =gBattleCommunication ldrb r1, [r4] adds r1, r0 movs r0, 0x4 @@ -133,22 +133,22 @@ _080123F8: bl _08012F66 .align 2, 0 _08012434: .4byte 0x02000000 -_08012438: .4byte gUnknown_02024A60 +_08012438: .4byte gActiveBank _0801243C: .4byte 0x00016068 _08012440: .4byte gBattleTypeFlags _08012444: .4byte 0x000160a6 _08012448: .4byte gBitTable -_0801244C: .4byte gUnknown_02024D1E -_08012450: .4byte gUnknown_02024C18 +_0801244C: .4byte gBattleCommunication +_08012450: .4byte gActionForBanks _08012454: - ldr r0, _08012464 @ =gUnknown_02024D1E + ldr r0, _08012464 @ =gBattleCommunication ldrb r1, [r4] adds r1, r0 movs r0, 0x3 strb r0, [r1] bl _08012F66 .align 2, 0 -_08012464: .4byte gUnknown_02024D1E +_08012464: .4byte gBattleCommunication _08012468: ldr r1, _0801249C @ =gBattleMons movs r0, 0x58 @@ -167,10 +167,10 @@ _08012468: cmp r1, 0 beq _080124A8 _08012488: - ldr r0, _080124A0 @ =gUnknown_02024C18 + ldr r0, _080124A0 @ =gActionForBanks adds r0, r2, r0 strb r3, [r0] - ldr r1, _080124A4 @ =gUnknown_02024D1E + ldr r1, _080124A4 @ =gBattleCommunication ldrb r0, [r4] adds r0, r1 movs r1, 0x3 @@ -178,12 +178,12 @@ _08012488: bl _08012F66 .align 2, 0 _0801249C: .4byte gBattleMons -_080124A0: .4byte gUnknown_02024C18 -_080124A4: .4byte gUnknown_02024D1E +_080124A0: .4byte gActionForBanks +_080124A4: .4byte gBattleCommunication _080124A8: - ldr r0, _080124C0 @ =gUnknown_02024C18 + ldr r0, _080124C0 @ =gActionForBanks ldrb r1, [r0] - ldr r0, _080124C4 @ =gUnknown_02024260 + ldr r0, _080124C4 @ =gBattleBufferB ldrb r2, [r0, 0x1] ldrb r0, [r0, 0x2] lsls r0, 8 @@ -192,12 +192,12 @@ _080124A8: bl dp01_build_cmdbuf_x12_a_bb bl _08012E32 .align 2, 0 -_080124C0: .4byte gUnknown_02024C18 -_080124C4: .4byte gUnknown_02024260 +_080124C0: .4byte gActionForBanks +_080124C4: .4byte gBattleBufferB _080124C8: - ldr r4, _08012520 @ =gUnknown_02024A64 + ldr r4, _08012520 @ =gBattleExecBuffer ldr r1, _08012524 @ =gBitTable - ldr r3, _08012528 @ =gUnknown_02024A60 + ldr r3, _08012528 @ =gActiveBank ldrb r5, [r3] lsls r0, r5, 2 adds r0, r1 @@ -218,9 +218,9 @@ _080124C8: beq _080124F6 bl _08012F66 _080124F6: - ldr r2, _0801252C @ =gUnknown_02024C18 + ldr r2, _0801252C @ =gActionForBanks adds r2, r5, r2 - ldr r1, _08012530 @ =gUnknown_02024260 + ldr r1, _08012530 @ =gBattleBufferB lsls r0, r5, 9 adds r1, 0x1 adds r0, r1 @@ -240,11 +240,11 @@ _08012514: ldr r0, [r0] mov pc, r0 .align 2, 0 -_08012520: .4byte gUnknown_02024A64 +_08012520: .4byte gBattleExecBuffer _08012524: .4byte gBitTable -_08012528: .4byte gUnknown_02024A60 -_0801252C: .4byte gUnknown_02024C18 -_08012530: .4byte gUnknown_02024260 +_08012528: .4byte gActiveBank +_0801252C: .4byte gActionForBanks +_08012530: .4byte gBattleBufferB _08012534: .4byte _08012538 .align 2, 0 _08012538: @@ -266,8 +266,8 @@ _0801256C: lsls r0, 24 cmp r0, 0 beq _080125D0 - ldr r0, _080125B4 @ =gUnknown_02024D1E - ldr r2, _080125B8 @ =gUnknown_02024A60 + ldr r0, _080125B4 @ =gBattleCommunication + ldr r2, _080125B8 @ =gActiveBank ldrb r1, [r2] adds r1, r0 movs r4, 0 @@ -289,7 +289,7 @@ _0801256C: ldr r0, _080125C8 @ =0x00016010 adds r2, r1, r0 adds r2, r3 - ldr r0, _080125CC @ =gUnknown_02024260 + ldr r0, _080125CC @ =gBattleBufferB lsls r1, 9 adds r0, 0x3 adds r1, r0 @@ -297,16 +297,16 @@ _0801256C: strb r0, [r2] bl _08012F90 .align 2, 0 -_080125B4: .4byte gUnknown_02024D1E -_080125B8: .4byte gUnknown_02024A60 +_080125B4: .4byte gBattleCommunication +_080125B8: .4byte gActiveBank _080125BC: .4byte 0x02000000 _080125C0: .4byte 0x00016060 _080125C4: .4byte 0x00016094 _080125C8: .4byte 0x00016010 -_080125CC: .4byte gUnknown_02024260 +_080125CC: .4byte gBattleBufferB _080125D0: - ldr r1, _080125FC @ =gUnknown_02024CA8 - ldr r5, _08012600 @ =gUnknown_02024A60 + ldr r1, _080125FC @ =gDisableStructs + ldr r5, _08012600 @ =gActiveBank ldrb r4, [r5] lsls r0, r4, 3 subs r0, r4 @@ -315,21 +315,21 @@ _080125D0: ldrh r2, [r0, 0x6] cmp r2, 0 beq _0801260C - ldr r1, _08012604 @ =gUnknown_02024C60 + ldr r1, _08012604 @ =gChosenMovesByBanks lsls r0, r4, 1 adds r0, r1 strh r2, [r0] - ldr r1, _08012608 @ =gUnknown_02024D1E + ldr r1, _08012608 @ =gBattleCommunication ldrb r0, [r5] adds r0, r1 movs r1, 0x3 strb r1, [r0] bl _08012F90 .align 2, 0 -_080125FC: .4byte gUnknown_02024CA8 -_08012600: .4byte gUnknown_02024A60 -_08012604: .4byte gUnknown_02024C60 -_08012608: .4byte gUnknown_02024D1E +_080125FC: .4byte gDisableStructs +_08012600: .4byte gActiveBank +_08012604: .4byte gChosenMovesByBanks +_08012608: .4byte gBattleCommunication _0801260C: add r2, sp, 0x4 ldr r3, _080126AC @ =gBattleMons @@ -436,12 +436,12 @@ _080126D8: .4byte gUnknown_02024C1C _080126DC: .4byte gUnknown_081D9B29 _080126E0: ldr r3, _08012738 @ =0x02000000 - ldr r5, _0801273C @ =gUnknown_02024A60 + ldr r5, _0801273C @ =gActiveBank ldrb r0, [r5] ldr r4, _08012740 @ =0x00016064 adds r1, r0, r4 adds r1, r3 - ldr r2, _08012744 @ =gUnknown_02024A6A + ldr r2, _08012744 @ =gBattlePartyID lsls r0, 1 adds r0, r2 ldrh r0, [r0] @@ -459,7 +459,7 @@ _080126E0: ands r0, r1 cmp r0, 0 bne _08012722 - ldr r0, _08012750 @ =gUnknown_02024C98 + ldr r0, _08012750 @ =gStatuses3 lsls r1, r2, 2 adds r1, r0 ldr r1, [r1] @@ -481,12 +481,12 @@ _08012722: b _0801286C .align 2, 0 _08012738: .4byte 0x02000000 -_0801273C: .4byte gUnknown_02024A60 +_0801273C: .4byte gActiveBank _08012740: .4byte 0x00016064 -_08012744: .4byte gUnknown_02024A6A +_08012744: .4byte gBattlePartyID _08012748: .4byte gBattleMons _0801274C: .4byte 0x0400e000 -_08012750: .4byte gUnknown_02024C98 +_08012750: .4byte gStatuses3 _08012754: .4byte 0x0001606c _08012758: str r1, [sp] @@ -494,7 +494,7 @@ _08012758: adds r1, r2, 0 movs r2, 0x17 movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 @@ -504,7 +504,7 @@ _08012758: movs r0, 0xC movs r2, 0x47 movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 @@ -528,14 +528,14 @@ _08012758: cmp r0, 0x1A bne _080127E0 _080127A8: - ldr r5, _08012808 @ =gUnknown_02024A60 + ldr r5, _08012808 @ =gActiveBank ldrb r1, [r5] movs r0, 0 str r0, [sp] movs r0, 0xF movs r2, 0x2A movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 @@ -562,9 +562,9 @@ _080127E0: orrs r1, r0 lsls r1, 24 lsrs r1, 24 - ldr r0, _08012810 @ =byte_2024C06 + ldr r0, _08012810 @ =gLastUsedAbility ldrb r3, [r0] - ldr r0, _08012808 @ =gUnknown_02024A60 + ldr r0, _08012808 @ =gActiveBank ldrb r2, [r0] lsls r0, r2, 1 adds r0, r2 @@ -576,17 +576,17 @@ _080127E0: bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f b _0801289E .align 2, 0 -_08012808: .4byte gUnknown_02024A60 +_08012808: .4byte gActiveBank _0801280C: .4byte gBattleMons -_08012810: .4byte byte_2024C06 +_08012810: .4byte gLastUsedAbility _08012814: .4byte 0x0201606c _08012818: - ldr r0, _08012830 @ =gUnknown_02024A60 + ldr r0, _08012830 @ =gActiveBank ldrb r1, [r0] mov r8, r0 cmp r1, 0x2 bne _08012840 - ldr r0, _08012834 @ =gUnknown_02024C18 + ldr r0, _08012834 @ =gActionForBanks ldrb r0, [r0] cmp r0, 0x2 bne _08012840 @@ -594,8 +594,8 @@ _08012818: ldr r4, _0801283C @ =0x00016068 b _08012854 .align 2, 0 -_08012830: .4byte gUnknown_02024A60 -_08012834: .4byte gUnknown_02024C18 +_08012830: .4byte gActiveBank +_08012834: .4byte gActionForBanks _08012838: .4byte 0x02000000 _0801283C: .4byte 0x00016068 _08012840: @@ -603,7 +603,7 @@ _08012840: ldrb r0, [r2] cmp r0, 0x3 bne _08012884 - ldr r0, _08012874 @ =gUnknown_02024C18 + ldr r0, _08012874 @ =gActionForBanks ldrb r0, [r0, 0x1] cmp r0, 0x2 bne _08012884 @@ -627,12 +627,12 @@ _0801286C: bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f b _0801289E .align 2, 0 -_08012874: .4byte gUnknown_02024C18 +_08012874: .4byte gActionForBanks _08012878: .4byte 0x02000000 _0801287C: .4byte 0x00016069 _08012880: .4byte 0x0001606c _08012884: - ldr r0, _080128A8 @ =gUnknown_02024A60 + ldr r0, _080128A8 @ =gActiveBank ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -645,12 +645,12 @@ _08012884: movs r3, 0 bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f _0801289E: - ldr r0, _080128A8 @ =gUnknown_02024A60 + ldr r0, _080128A8 @ =gActiveBank ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution b _08012968 .align 2, 0 -_080128A8: .4byte gUnknown_02024A60 +_080128A8: .4byte gActiveBank _080128AC: .4byte 0x0201606c _080128B0: bl PlayerPartyAndPokemonStorageFull @@ -658,13 +658,13 @@ _080128B0: cmp r0, 0 beq _08012968 ldr r1, _080128EC @ =gUnknown_02024C1C - ldr r2, _080128F0 @ =gUnknown_02024A60 + ldr r2, _080128F0 @ =gActiveBank ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, _080128F4 @ =gUnknown_081D8E4A str r1, [r0] - ldr r0, _080128F8 @ =gUnknown_02024D1E + ldr r0, _080128F8 @ =gBattleCommunication ldrb r1, [r2] adds r1, r0 movs r3, 0 @@ -684,14 +684,14 @@ _080128B0: b _08012F90 .align 2, 0 _080128EC: .4byte gUnknown_02024C1C -_080128F0: .4byte gUnknown_02024A60 +_080128F0: .4byte gActiveBank _080128F4: .4byte gUnknown_081D8E4A -_080128F8: .4byte gUnknown_02024D1E +_080128F8: .4byte gBattleCommunication _080128FC: .4byte 0x02000000 _08012900: .4byte 0x00016060 _08012904: .4byte 0x00016094 _08012908: - ldr r4, _08012924 @ =gUnknown_02024A60 + ldr r4, _08012924 @ =gActiveBank ldrb r0, [r4] lsls r1, r0, 1 adds r1, r0 @@ -700,13 +700,13 @@ _08012908: movs r0, 0 bl sub_800CBE0 ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution b _08012968 .align 2, 0 -_08012924: .4byte gUnknown_02024A60 +_08012924: .4byte gActiveBank _08012928: .4byte 0x0201606c _0801292C: - ldr r4, _08012964 @ =gUnknown_02024D1E + ldr r4, _08012964 @ =gBattleCommunication mov r3, r8 ldrb r1, [r3] adds r1, r4 @@ -714,12 +714,12 @@ _0801292C: movs r0, 0x6 strb r0, [r1] ldrb r0, [r3] - bl battle_get_per_side_status + bl GetBankIdentity movs r1, 0x2 eors r0, r1 lsls r0, 24 lsrs r0, 24 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 adds r0, r4 @@ -728,10 +728,10 @@ _0801292C: bl dp01_build_cmdbuf_x32_32_32_32 mov r4, r8 ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution b _08012F90 .align 2, 0 -_08012964: .4byte gUnknown_02024D1E +_08012964: .4byte gBattleCommunication _08012968: ldr r0, _08012994 @ =gBattleTypeFlags ldrh r1, [r0] @@ -739,8 +739,8 @@ _08012968: ands r0, r1 cmp r0, 0x8 bne _080129A8 - ldr r0, _08012998 @ =gUnknown_02024260 - ldr r4, _0801299C @ =gUnknown_02024A60 + ldr r0, _08012998 @ =gBattleBufferB + ldr r4, _0801299C @ =gActiveBank ldrb r1, [r4] lsls r1, 9 adds r0, 0x1 @@ -750,23 +750,23 @@ _08012968: bne _080129A8 ldr r0, _080129A0 @ =gUnknown_081D8E37 bl b_call_bc_move_exec - ldr r1, _080129A4 @ =gUnknown_02024D1E + ldr r1, _080129A4 @ =gBattleCommunication ldrb r0, [r4] adds r0, r1 b _08012BFE .align 2, 0 _08012994: .4byte gBattleTypeFlags -_08012998: .4byte gUnknown_02024260 -_0801299C: .4byte gUnknown_02024A60 +_08012998: .4byte gBattleBufferB +_0801299C: .4byte gActiveBank _080129A0: .4byte gUnknown_081D8E37 -_080129A4: .4byte gUnknown_02024D1E +_080129A4: .4byte gBattleCommunication _080129A8: - bl sub_8012028 + bl CanRunFromBattle lsls r0, 24 cmp r0, 0 beq _08012A14 - ldr r0, _080129F4 @ =gUnknown_02024260 - ldr r3, _080129F8 @ =gUnknown_02024A60 + ldr r0, _080129F4 @ =gBattleBufferB + ldr r3, _080129F8 @ =gActiveBank ldrb r2, [r3] lsls r1, r2, 9 adds r0, 0x1 @@ -780,7 +780,7 @@ _080129A8: ldr r1, _08012A00 @ =gUnknown_081D8E44 _080129CC: str r1, [r0] - ldr r0, _08012A04 @ =gUnknown_02024D1E + ldr r0, _08012A04 @ =gBattleCommunication ldrb r1, [r3] adds r1, r0 movs r2, 0 @@ -799,27 +799,27 @@ _080129CC: strb r2, [r0] b _08012F90 .align 2, 0 -_080129F4: .4byte gUnknown_02024260 -_080129F8: .4byte gUnknown_02024A60 +_080129F4: .4byte gBattleBufferB +_080129F8: .4byte gActiveBank _080129FC: .4byte gUnknown_02024C1C _08012A00: .4byte gUnknown_081D8E44 -_08012A04: .4byte gUnknown_02024D1E +_08012A04: .4byte gBattleCommunication _08012A08: .4byte 0x02000000 _08012A0C: .4byte 0x00016060 _08012A10: .4byte 0x00016094 _08012A14: - ldr r2, _08012A20 @ =gUnknown_02024D1E - ldr r0, _08012A24 @ =gUnknown_02024A60 + ldr r2, _08012A20 @ =gBattleCommunication + ldr r0, _08012A24 @ =gActiveBank ldrb r1, [r0] adds r1, r2 b _08012E3E .align 2, 0 -_08012A20: .4byte gUnknown_02024D1E -_08012A24: .4byte gUnknown_02024A60 +_08012A20: .4byte gBattleCommunication +_08012A24: .4byte gActiveBank _08012A28: - ldr r4, _08012A6C @ =gUnknown_02024A64 + ldr r4, _08012A6C @ =gBattleExecBuffer ldr r1, _08012A70 @ =gBitTable - ldr r3, _08012A74 @ =gUnknown_02024A60 + ldr r3, _08012A74 @ =gActiveBank ldrb r5, [r3] lsls r0, r5, 2 adds r0, r1 @@ -840,7 +840,7 @@ _08012A28: beq _08012A54 b _08012F66 _08012A54: - ldr r1, _08012A78 @ =gUnknown_02024C18 + ldr r1, _08012A78 @ =gActionForBanks adds r0, r5, r1 ldrb r0, [r0] adds r3, r1, 0 @@ -854,10 +854,10 @@ _08012A62: ldr r0, [r0] mov pc, r0 .align 2, 0 -_08012A6C: .4byte gUnknown_02024A64 +_08012A6C: .4byte gBattleExecBuffer _08012A70: .4byte gBitTable -_08012A74: .4byte gUnknown_02024A60 -_08012A78: .4byte gUnknown_02024C18 +_08012A74: .4byte gActiveBank +_08012A78: .4byte gActionForBanks _08012A7C: .4byte _08012A80 .align 2, 0 _08012A80: @@ -872,7 +872,7 @@ _08012A80: .4byte _08012D70 .4byte _08012D94 _08012AA8: - ldr r0, _08012AC8 @ =gUnknown_02024260 + ldr r0, _08012AC8 @ =gBattleBufferB mov r1, r8 ldrb r4, [r1] lsls r1, r4, 9 @@ -888,7 +888,7 @@ _08012AA8: strb r1, [r0] b _08012F90 .align 2, 0 -_08012AC8: .4byte gUnknown_02024260 +_08012AC8: .4byte gBattleBufferB _08012ACC: adds r3, r6, 0 mov r5, r8 @@ -906,18 +906,18 @@ _08012ACC: ldr r0, _08012AF4 @ =0x0000ffff cmp r2, r0 bne _08012AFC - ldr r0, _08012AF8 @ =gUnknown_02024D1E + ldr r0, _08012AF8 @ =gBattleCommunication adds r0, r4, r0 b _08012BFE .align 2, 0 _08012AF4: .4byte 0x0000ffff -_08012AF8: .4byte gUnknown_02024D1E +_08012AF8: .4byte gBattleCommunication _08012AFC: bl sub_8015894 lsls r0, 24 cmp r0, 0 beq _08012B48 - ldr r0, _08012B38 @ =gUnknown_02024D1E + ldr r0, _08012B38 @ =gBattleCommunication ldrb r1, [r5] adds r1, r0 movs r2, 0 @@ -942,7 +942,7 @@ _08012AFC: strb r1, [r0] b _08012F90 .align 2, 0 -_08012B38: .4byte gUnknown_02024D1E +_08012B38: .4byte gBattleCommunication _08012B3C: .4byte 0x02000000 _08012B40: .4byte 0x00016060 _08012B44: .4byte 0x00016094 @@ -957,7 +957,7 @@ _08012B48: adds r0, r7 ldrb r0, [r0] strb r0, [r1] - ldr r0, _08012BA0 @ =gUnknown_02024C60 + ldr r0, _08012BA0 @ =gChosenMovesByBanks mov r4, r8 ldrb r3, [r4] lsls r5, r3, 1 @@ -983,20 +983,20 @@ _08012B48: add r0, r9 ldrb r0, [r0] strb r0, [r1] - ldr r0, _08012BAC @ =gUnknown_02024D1E + ldr r0, _08012BAC @ =gBattleCommunication mov r3, r8 ldrb r1, [r3] b _08012E3C .align 2, 0 _08012B98: .4byte 0x02000000 _08012B9C: .4byte 0x0001608c -_08012BA0: .4byte gUnknown_02024C60 +_08012BA0: .4byte gChosenMovesByBanks _08012BA4: .4byte gBattleMons _08012BA8: .4byte 0x00016010 -_08012BAC: .4byte gUnknown_02024D1E +_08012BAC: .4byte gBattleCommunication _08012BB0: - ldr r2, _08012BD8 @ =gUnknown_02024260 - ldr r5, _08012BDC @ =gUnknown_02024A60 + ldr r2, _08012BD8 @ =gBattleBufferB + ldr r5, _08012BDC @ =gActiveBank ldrb r4, [r5] lsls r1, r4, 9 adds r0, r2, 0x1 @@ -1011,19 +1011,19 @@ _08012BB0: bne _08012BCE b _08012F60 _08012BCE: - ldr r0, _08012BE0 @ =gUnknown_02024C04 + ldr r0, _08012BE0 @ =gLastUsedItem strh r3, [r0] - ldr r0, _08012BE4 @ =gUnknown_02024D1E + ldr r0, _08012BE4 @ =gBattleCommunication ldrb r1, [r5] b _08012E3C .align 2, 0 -_08012BD8: .4byte gUnknown_02024260 -_08012BDC: .4byte gUnknown_02024A60 -_08012BE0: .4byte gUnknown_02024C04 -_08012BE4: .4byte gUnknown_02024D1E +_08012BD8: .4byte gBattleBufferB +_08012BDC: .4byte gActiveBank +_08012BE0: .4byte gLastUsedItem +_08012BE4: .4byte gBattleCommunication _08012BE8: - ldr r4, _08012C04 @ =gUnknown_02024260 - ldr r7, _08012C08 @ =gUnknown_02024A60 + ldr r4, _08012C04 @ =gBattleBufferB + ldr r7, _08012C08 @ =gActiveBank ldrb r2, [r7] lsls r0, r2, 9 adds r1, r4, 0x1 @@ -1031,16 +1031,16 @@ _08012BE8: ldrb r1, [r0] cmp r1, 0x6 bne _08012C10 - ldr r0, _08012C0C @ =gUnknown_02024D1E + ldr r0, _08012C0C @ =gBattleCommunication adds r0, r2, r0 _08012BFE: movs r1, 0 strb r1, [r0] b _08012F66 .align 2, 0 -_08012C04: .4byte gUnknown_02024260 -_08012C08: .4byte gUnknown_02024A60 -_08012C0C: .4byte gUnknown_02024D1E +_08012C04: .4byte gBattleBufferB +_08012C08: .4byte gActiveBank +_08012C0C: .4byte gBattleCommunication _08012C10: ldr r0, _08012CC4 @ =0x02000000 mov r12, r0 @@ -1130,7 +1130,7 @@ _08012C10: ldrb r0, [r0] strb r0, [r1] _08012CBE: - ldr r0, _08012CDC @ =gUnknown_02024D1E + ldr r0, _08012CDC @ =gBattleCommunication ldrb r1, [r7] b _08012E3C .align 2, 0 @@ -1140,44 +1140,44 @@ _08012CCC: .4byte gBattleTypeFlags _08012CD0: .4byte 0x0001606c _08012CD4: .4byte 0x0001606d _08012CD8: .4byte 0x0001606e -_08012CDC: .4byte gUnknown_02024D1E +_08012CDC: .4byte gBattleCommunication _08012CE0: - ldr r2, _08012CF8 @ =gUnknown_02024C6C + ldr r2, _08012CF8 @ =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 8 orrs r0, r1 str r0, [r2] - ldr r2, _08012CFC @ =gUnknown_02024D1E - ldr r0, _08012D00 @ =gUnknown_02024A60 + ldr r2, _08012CFC @ =gBattleCommunication + ldr r0, _08012D00 @ =gActiveBank ldrb r1, [r0] adds r1, r2 b _08012E3E .align 2, 0 -_08012CF8: .4byte gUnknown_02024C6C -_08012CFC: .4byte gUnknown_02024D1E -_08012D00: .4byte gUnknown_02024A60 +_08012CF8: .4byte gHitMarker +_08012CFC: .4byte gBattleCommunication +_08012D00: .4byte gActiveBank _08012D04: - ldr r2, _08012D10 @ =gUnknown_02024D1E - ldr r0, _08012D14 @ =gUnknown_02024A60 + ldr r2, _08012D10 @ =gBattleCommunication + ldr r0, _08012D14 @ =gActiveBank ldrb r1, [r0] adds r1, r2 b _08012E3E .align 2, 0 -_08012D10: .4byte gUnknown_02024D1E -_08012D14: .4byte gUnknown_02024A60 +_08012D10: .4byte gBattleCommunication +_08012D14: .4byte gActiveBank _08012D18: - ldr r2, _08012D24 @ =gUnknown_02024D1E - ldr r0, _08012D28 @ =gUnknown_02024A60 + ldr r2, _08012D24 @ =gBattleCommunication + ldr r0, _08012D28 @ =gActiveBank ldrb r1, [r0] adds r1, r2 b _08012E3E .align 2, 0 -_08012D24: .4byte gUnknown_02024D1E -_08012D28: .4byte gUnknown_02024A60 +_08012D24: .4byte gBattleCommunication +_08012D28: .4byte gActiveBank _08012D2C: - ldr r2, _08012D50 @ =gUnknown_02024260 - ldr r0, _08012D54 @ =gUnknown_02024A60 + ldr r2, _08012D50 @ =gBattleBufferB + ldr r0, _08012D54 @ =gActiveBank ldrb r4, [r0] lsls r1, r4, 9 adds r0, r2, 0x1 @@ -1192,51 +1192,51 @@ _08012D2C: bne _08012D4A b _08012F60 _08012D4A: - ldr r1, _08012D58 @ =gUnknown_02024D1E + ldr r1, _08012D58 @ =gBattleCommunication adds r1, r4, r1 b _08012E3E .align 2, 0 -_08012D50: .4byte gUnknown_02024260 -_08012D54: .4byte gUnknown_02024A60 -_08012D58: .4byte gUnknown_02024D1E +_08012D50: .4byte gBattleBufferB +_08012D54: .4byte gActiveBank +_08012D58: .4byte gBattleCommunication _08012D5C: - ldr r2, _08012D68 @ =gUnknown_02024D1E - ldr r0, _08012D6C @ =gUnknown_02024A60 + ldr r2, _08012D68 @ =gBattleCommunication + ldr r0, _08012D6C @ =gActiveBank ldrb r1, [r0] adds r1, r2 b _08012E3E .align 2, 0 -_08012D68: .4byte gUnknown_02024D1E -_08012D6C: .4byte gUnknown_02024A60 +_08012D68: .4byte gBattleCommunication +_08012D6C: .4byte gActiveBank _08012D70: - ldr r2, _08012D88 @ =gUnknown_02024C6C + ldr r2, _08012D88 @ =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 8 orrs r0, r1 str r0, [r2] - ldr r2, _08012D8C @ =gUnknown_02024D1E - ldr r0, _08012D90 @ =gUnknown_02024A60 + ldr r2, _08012D8C @ =gBattleCommunication + ldr r0, _08012D90 @ =gActiveBank ldrb r1, [r0] adds r1, r2 b _08012E3E .align 2, 0 -_08012D88: .4byte gUnknown_02024C6C -_08012D8C: .4byte gUnknown_02024D1E -_08012D90: .4byte gUnknown_02024A60 +_08012D88: .4byte gHitMarker +_08012D8C: .4byte gBattleCommunication +_08012D90: .4byte gActiveBank _08012D94: - ldr r2, _08012DA0 @ =gUnknown_02024D1E - ldr r0, _08012DA4 @ =gUnknown_02024A60 + ldr r2, _08012DA0 @ =gBattleCommunication + ldr r0, _08012DA4 @ =gActiveBank ldrb r1, [r0] adds r1, r2 b _08012E3E .align 2, 0 -_08012DA0: .4byte gUnknown_02024D1E -_08012DA4: .4byte gUnknown_02024A60 +_08012DA0: .4byte gBattleCommunication +_08012DA4: .4byte gActiveBank _08012DA8: - ldr r3, _08012E10 @ =gUnknown_02024A64 + ldr r3, _08012E10 @ =gBattleExecBuffer ldr r4, _08012E14 @ =gBitTable - ldr r0, _08012E18 @ =gUnknown_02024A60 + ldr r0, _08012E18 @ =gActiveBank ldrb r0, [r0] lsls r0, 2 adds r0, r4 @@ -1269,7 +1269,7 @@ _08012DD2: bne _08012E06 adds r0, r5, 0 eors r0, r1 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI ldr r1, _08012E20 @ =0x02000000 ldr r2, _08012E24 @ =0x000160a6 adds r1, r2 @@ -1284,25 +1284,25 @@ _08012DD2: _08012E06: movs r0, 0 movs r1, 0 - bl sub_800D1D8 + bl EmitLinkStandbyMsg b _08012E30 .align 2, 0 -_08012E10: .4byte gUnknown_02024A64 +_08012E10: .4byte gBattleExecBuffer _08012E14: .4byte gBitTable -_08012E18: .4byte gUnknown_02024A60 +_08012E18: .4byte gActiveBank _08012E1C: .4byte gBattleTypeFlags _08012E20: .4byte 0x02000000 _08012E24: .4byte 0x000160a6 _08012E28: movs r0, 0 movs r1, 0x1 - bl sub_800D1D8 + bl EmitLinkStandbyMsg _08012E30: - ldr r4, _08012E48 @ =gUnknown_02024A60 + ldr r4, _08012E48 @ =gActiveBank _08012E32: ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, _08012E4C @ =gUnknown_02024D1E + bl MarkBufferBankForExecution + ldr r0, _08012E4C @ =gBattleCommunication ldrb r1, [r4] _08012E3C: adds r1, r0 @@ -1312,12 +1312,12 @@ _08012E3E: strb r0, [r1] b _08012F66 .align 2, 0 -_08012E48: .4byte gUnknown_02024A60 -_08012E4C: .4byte gUnknown_02024D1E +_08012E48: .4byte gActiveBank +_08012E4C: .4byte gBattleCommunication _08012E50: - ldr r3, _08012E84 @ =gUnknown_02024A64 + ldr r3, _08012E84 @ =gBattleExecBuffer ldr r1, _08012E88 @ =gBitTable - ldr r0, _08012E8C @ =gUnknown_02024A60 + ldr r0, _08012E8C @ =gActiveBank ldrb r0, [r0] lsls r0, 2 adds r0, r1 @@ -1335,19 +1335,19 @@ _08012E50: ands r0, r1 cmp r0, 0 bne _08012F66 - ldr r1, _08012E90 @ =gUnknown_02024D1E + ldr r1, _08012E90 @ =gBattleCommunication ldrb r0, [r1, 0x4] adds r0, 0x1 strb r0, [r1, 0x4] b _08012F66 .align 2, 0 -_08012E84: .4byte gUnknown_02024A64 +_08012E84: .4byte gBattleExecBuffer _08012E88: .4byte gBitTable -_08012E8C: .4byte gUnknown_02024A60 -_08012E90: .4byte gUnknown_02024D1E +_08012E8C: .4byte gActiveBank +_08012E90: .4byte gBattleCommunication _08012E94: ldr r2, _08012EB8 @ =0x02000000 - ldr r5, _08012EBC @ =gUnknown_02024A60 + ldr r5, _08012EBC @ =gActiveBank ldrb r1, [r5] ldr r3, _08012EC0 @ =0x00016060 adds r0, r1, r3 @@ -1355,7 +1355,7 @@ _08012E94: ldrb r0, [r0] cmp r0, 0 beq _08012ECC - ldr r0, _08012EC4 @ =gUnknown_02024D1E + ldr r0, _08012EC4 @ =gBattleCommunication adds r0, r1, r0 ldr r4, _08012EC8 @ =0x00016094 adds r1, r4 @@ -1365,21 +1365,21 @@ _08012E94: b _08012F66 .align 2, 0 _08012EB8: .4byte 0x02000000 -_08012EBC: .4byte gUnknown_02024A60 +_08012EBC: .4byte gActiveBank _08012EC0: .4byte 0x00016060 -_08012EC4: .4byte gUnknown_02024D1E +_08012EC4: .4byte gBattleCommunication _08012EC8: .4byte 0x00016094 _08012ECC: - ldr r0, _08012F20 @ =gPlayerMonIndex + ldr r0, _08012F20 @ =gBankAttacker strb r1, [r0] - ldr r7, _08012F24 @ =gUnknown_02024C10 + ldr r7, _08012F24 @ =gBattlescriptCurrInstr ldr r6, _08012F28 @ =gUnknown_02024C1C ldrb r0, [r5] lsls r0, 2 adds r0, r6 ldr r4, [r0] str r4, [r7] - ldr r3, _08012F2C @ =gUnknown_02024A64 + ldr r3, _08012F2C @ =gBattleExecBuffer ldr r1, _08012F30 @ =gBitTable ldrb r0, [r5] lsls r0, 2 @@ -1398,7 +1398,7 @@ _08012ECC: ands r0, r1 cmp r0, 0 bne _08012F12 - ldr r0, _08012F34 @ =gUnknown_081FA73C + ldr r0, _08012F34 @ =gBattleScriptingCommandsTable ldrb r1, [r4] lsls r1, 2 adds r1, r0 @@ -1412,16 +1412,16 @@ _08012F12: str r1, [r0] b _08012F66 .align 2, 0 -_08012F20: .4byte gPlayerMonIndex -_08012F24: .4byte gUnknown_02024C10 +_08012F20: .4byte gBankAttacker +_08012F24: .4byte gBattlescriptCurrInstr _08012F28: .4byte gUnknown_02024C1C -_08012F2C: .4byte gUnknown_02024A64 +_08012F2C: .4byte gBattleExecBuffer _08012F30: .4byte gBitTable -_08012F34: .4byte gUnknown_081FA73C +_08012F34: .4byte gBattleScriptingCommandsTable _08012F38: - ldr r3, _08012FA0 @ =gUnknown_02024A64 + ldr r3, _08012FA0 @ =gBattleExecBuffer ldr r1, _08012FA4 @ =gBitTable - ldr r0, _08012FA8 @ =gUnknown_02024A60 + ldr r0, _08012FA8 @ =gActiveBank ldrb r4, [r0] lsls r0, r4, 2 adds r0, r1 @@ -1440,15 +1440,15 @@ _08012F38: cmp r3, 0 bne _08012F66 _08012F60: - ldr r0, _08012FAC @ =gUnknown_02024D1E + ldr r0, _08012FAC @ =gBattleCommunication adds r0, r4, r0 strb r3, [r0] _08012F66: - ldr r0, _08012FA8 @ =gUnknown_02024A60 + ldr r0, _08012FA8 @ =gActiveBank ldrb r1, [r0] adds r1, 0x1 strb r1, [r0] - ldr r0, _08012FB0 @ =gUnknown_02024A68 + ldr r0, _08012FB0 @ =gNoOfAllBanks lsls r1, 24 lsrs r1, 24 _08012F74: @@ -1458,12 +1458,12 @@ _08012F74: bcs _08012F80 bl _0801234C _08012F80: - ldr r0, _08012FAC @ =gUnknown_02024D1E + ldr r0, _08012FAC @ =gBattleCommunication ldrb r0, [r0, 0x4] ldrb r2, [r2] cmp r0, r2 bne _08012F90 - ldr r1, _08012FB4 @ =gUnknown_030042D4 + ldr r1, _08012FB4 @ =gBattleMainFunc ldr r0, _08012FB8 @ =sub_80133C8 str r0, [r1] _08012F90: @@ -1476,12 +1476,12 @@ _08012F90: pop {r0} bx r0 .align 2, 0 -_08012FA0: .4byte gUnknown_02024A64 +_08012FA0: .4byte gBattleExecBuffer _08012FA4: .4byte gBitTable -_08012FA8: .4byte gUnknown_02024A60 -_08012FAC: .4byte gUnknown_02024D1E -_08012FB0: .4byte gUnknown_02024A68 -_08012FB4: .4byte gUnknown_030042D4 +_08012FA8: .4byte gActiveBank +_08012FAC: .4byte gBattleCommunication +_08012FB0: .4byte gNoOfAllBanks +_08012FB4: .4byte gBattleMainFunc _08012FB8: .4byte sub_80133C8 thumb_func_end sub_8012324 @@ -1499,7 +1499,7 @@ sub_8012FBC: @ 8012FBC ldrb r3, [r2] strb r3, [r4] strb r5, [r2] - ldr r2, _08012FEC @ =gUnknown_02024A7A + ldr r2, _08012FEC @ =gTurnOrder adds r0, r2 ldrb r5, [r0] adds r1, r2 @@ -1511,7 +1511,7 @@ sub_8012FBC: @ 8012FBC bx r0 .align 2, 0 _08012FE8: .4byte gUnknown_02024A76 -_08012FEC: .4byte gUnknown_02024A7A +_08012FEC: .4byte gTurnOrder thumb_func_end sub_8012FBC thumb_func_start b_first_side @@ -1538,7 +1538,7 @@ b_first_side: @ 8012FF0 movs r1, 0 movs r2, 0xD movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 bne _080130B8 @@ -1548,7 +1548,7 @@ b_first_side: @ 8012FF0 movs r1, 0 movs r2, 0x4D movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 bne _080130B8 @@ -1680,7 +1680,7 @@ _08013120: cmp r0, 0 beq _08013154 mov r0, r9 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08013154 @@ -1716,7 +1716,7 @@ _0801315E: _0801317C: cmp r6, 0x1A bne _08013198 - ldr r0, _080131E8 @ =gUnknown_02024D1C + ldr r0, _080131E8 @ =gRandomTurnNumber ldrh r4, [r0] lsls r0, r5, 16 subs r0, r5 @@ -1765,7 +1765,7 @@ _08013198: _080131DC: .4byte gBattleTypeFlags _080131E0: .4byte 0x00000809 _080131E4: .4byte gBattleMons -_080131E8: .4byte gUnknown_02024D1C +_080131E8: .4byte gRandomTurnNumber _080131EC: .4byte gStatStageRatios _080131F0: .4byte gEnigmaBerries _080131F4: @@ -1790,7 +1790,7 @@ _08013208: cmp r0, 0 beq _08013238 mov r0, r10 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08013238 @@ -1821,7 +1821,7 @@ _0801323E: _0801325A: cmp r6, 0x1A bne _08013274 - ldr r0, _0801328C @ =gUnknown_02024D1C + ldr r0, _0801328C @ =gRandomTurnNumber ldrh r4, [r0] lsls r0, r5, 16 subs r0, r5 @@ -1841,16 +1841,16 @@ _08013274: _08013280: .4byte gBattleTypeFlags _08013284: .4byte 0x00000809 _08013288: .4byte gBattleMons -_0801328C: .4byte gUnknown_02024D1C +_0801328C: .4byte gRandomTurnNumber _08013290: - ldr r0, _080132B0 @ =gUnknown_02024C18 + ldr r0, _080132B0 @ =gActionForBanks mov r3, r9 adds r1, r3, r0 ldrb r1, [r1] adds r2, r0, 0 cmp r1, 0 bne _080132E4 - ldr r0, _080132B4 @ =gUnknown_02024D28 + ldr r0, _080132B4 @ =gProtectStructs lsls r1, r3, 4 adds r1, r0 ldrb r0, [r1] @@ -1860,8 +1860,8 @@ _08013290: movs r3, 0xA5 b _080132E6 .align 2, 0 -_080132B0: .4byte gUnknown_02024C18 -_080132B4: .4byte gUnknown_02024D28 +_080132B0: .4byte gActionForBanks +_080132B4: .4byte gProtectStructs _080132B8: ldr r1, _080132D8 @ =0x02000000 ldr r0, _080132DC @ =0x0001608c @@ -1891,7 +1891,7 @@ _080132E6: ldrb r0, [r0] cmp r0, 0 bne _08013334 - ldr r0, _08013304 @ =gUnknown_02024D28 + ldr r0, _08013304 @ =gProtectStructs lsls r1, 4 adds r1, r0 ldrb r0, [r1] @@ -1901,7 +1901,7 @@ _080132E6: movs r2, 0xA5 b _08013336 .align 2, 0 -_08013304: .4byte gUnknown_02024D28 +_08013304: .4byte gProtectStructs _08013308: ldr r1, _08013328 @ =0x02000000 ldr r0, _0801332C @ =0x0001608c @@ -2019,9 +2019,9 @@ sub_80133C8: @ 80133C8 ands r0, r1 cmp r0, 0 beq _08013434 - ldr r0, _08013420 @ =gUnknown_02024A60 + ldr r0, _08013420 @ =gActiveBank strb r3, [r0] - ldr r4, _08013424 @ =gUnknown_02024A68 + ldr r4, _08013424 @ =gNoOfAllBanks mov r8, r0 ldrb r0, [r4] cmp r3, r0 @@ -2029,9 +2029,9 @@ sub_80133C8: @ 80133C8 b _08013622 _080133F0: ldr r7, _08013428 @ =gUnknown_02024A76 - ldr r6, _0801342C @ =gUnknown_02024C18 + ldr r6, _0801342C @ =gActionForBanks mov r2, r8 - ldr r5, _08013430 @ =gUnknown_02024A7A + ldr r5, _08013430 @ =gTurnOrder _080133F8: adds r1, r3, r7 ldrb r0, [r2] @@ -2053,25 +2053,25 @@ _080133F8: b _08013622 .align 2, 0 _0801341C: .4byte gBattleTypeFlags -_08013420: .4byte gUnknown_02024A60 -_08013424: .4byte gUnknown_02024A68 +_08013420: .4byte gActiveBank +_08013424: .4byte gNoOfAllBanks _08013428: .4byte gUnknown_02024A76 -_0801342C: .4byte gUnknown_02024C18 -_08013430: .4byte gUnknown_02024A7A +_0801342C: .4byte gActionForBanks +_08013430: .4byte gTurnOrder _08013434: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08013484 - ldr r0, _08013478 @ =gUnknown_02024A60 + ldr r0, _08013478 @ =gActiveBank strb r3, [r0] - ldr r1, _0801347C @ =gUnknown_02024A68 + ldr r1, _0801347C @ =gNoOfAllBanks mov r8, r0 adds r2, r1, 0 ldrb r2, [r2] cmp r3, r2 bcs _08013494 - ldr r0, _08013480 @ =gUnknown_02024C18 + ldr r0, _08013480 @ =gActionForBanks ldrb r1, [r0] adds r4, r0, 0 cmp r1, 0x3 @@ -2083,7 +2083,7 @@ _08013456: strb r0, [r7] lsls r0, 24 lsrs r0, 24 - ldr r1, _0801347C @ =gUnknown_02024A68 + ldr r1, _0801347C @ =gNoOfAllBanks ldrb r1, [r1] cmp r0, r1 bcs _08013494 @@ -2094,13 +2094,13 @@ _08013456: bne _08013456 b _08013492 .align 2, 0 -_08013478: .4byte gUnknown_02024A60 -_0801347C: .4byte gUnknown_02024A68 -_08013480: .4byte gUnknown_02024C18 +_08013478: .4byte gActiveBank +_0801347C: .4byte gNoOfAllBanks +_08013480: .4byte gActionForBanks _08013484: - ldr r0, _080134FC @ =gUnknown_02024C18 + ldr r0, _080134FC @ =gActionForBanks ldrb r0, [r0] - ldr r2, _08013500 @ =gUnknown_02024A60 + ldr r2, _08013500 @ =gActiveBank mov r8, r2 cmp r0, 0x3 bne _08013494 @@ -2111,32 +2111,32 @@ _08013494: cmp r3, 0x5 bne _08013520 ldr r6, _08013504 @ =gUnknown_02024A76 - ldr r1, _080134FC @ =gUnknown_02024C18 + ldr r1, _080134FC @ =gActionForBanks mov r3, r8 ldrb r0, [r3] adds r0, r1 ldrb r0, [r0] strb r0, [r6] - ldr r2, _08013508 @ =gUnknown_02024A7A + ldr r2, _08013508 @ =gTurnOrder ldrb r0, [r3] strb r0, [r2] movs r3, 0x1 movs r5, 0 adds r4, r1, 0 - ldr r7, _0801350C @ =gUnknown_030042D4 + ldr r7, _0801350C @ =gBattleMainFunc mov r9, r7 ldr r0, _08013510 @ =bc_80154A0 mov r12, r0 ldr r1, _08013514 @ =0x02000000 mov r10, r1 - ldr r7, _08013518 @ =gUnknown_02024A68 + ldr r7, _08013518 @ =gNoOfAllBanks ldrb r7, [r7] cmp r5, r7 bge _080134EC adds r7, r6, 0 adds r6, r4, 0 adds r4, r2, 0 - ldr r2, _08013518 @ =gUnknown_02024A68 + ldr r2, _08013518 @ =gNoOfAllBanks _080134CE: mov r0, r8 ldrb r0, [r0] @@ -2164,27 +2164,27 @@ _080134EC: strb r0, [r1] b _08013632 .align 2, 0 -_080134FC: .4byte gUnknown_02024C18 -_08013500: .4byte gUnknown_02024A60 +_080134FC: .4byte gActionForBanks +_08013500: .4byte gActiveBank _08013504: .4byte gUnknown_02024A76 -_08013508: .4byte gUnknown_02024A7A -_0801350C: .4byte gUnknown_030042D4 +_08013508: .4byte gTurnOrder +_0801350C: .4byte gBattleMainFunc _08013510: .4byte bc_80154A0 _08013514: .4byte 0x02000000 -_08013518: .4byte gUnknown_02024A68 +_08013518: .4byte gNoOfAllBanks _0801351C: .4byte 0x0001601d _08013520: movs r0, 0 mov r7, r8 strb r0, [r7] - ldr r1, _080135B0 @ =gUnknown_02024A68 + ldr r1, _080135B0 @ =gNoOfAllBanks ldrb r0, [r1] cmp r0, 0 beq _08013566 - ldr r6, _080135B4 @ =gUnknown_02024C18 + ldr r6, _080135B4 @ =gActionForBanks mov r2, r8 ldr r5, _080135B8 @ =gUnknown_02024A76 - ldr r4, _080135BC @ =gUnknown_02024A7A + ldr r4, _080135BC @ =gTurnOrder _08013536: ldrb r0, [r2] adds r0, r6 @@ -2207,7 +2207,7 @@ _08013554: strb r0, [r2] lsls r0, 24 lsrs r0, 24 - ldr r1, _080135B0 @ =gUnknown_02024A68 + ldr r1, _080135B0 @ =gNoOfAllBanks ldrb r1, [r1] cmp r0, r1 bcc _08013536 @@ -2215,13 +2215,13 @@ _08013566: movs r0, 0 mov r2, r8 strb r0, [r2] - ldr r7, _080135B0 @ =gUnknown_02024A68 + ldr r7, _080135B0 @ =gNoOfAllBanks ldrb r0, [r7] cmp r0, 0 beq _080135AA - ldr r6, _080135B4 @ =gUnknown_02024C18 + ldr r6, _080135B4 @ =gActionForBanks ldr r5, _080135B8 @ =gUnknown_02024A76 - ldr r4, _080135BC @ =gUnknown_02024A7A + ldr r4, _080135BC @ =gTurnOrder _0801357A: ldrb r0, [r2] adds r0, r6 @@ -2244,7 +2244,7 @@ _08013598: strb r0, [r2] lsls r0, 24 lsrs r0, 24 - ldr r1, _080135B0 @ =gUnknown_02024A68 + ldr r1, _080135B0 @ =gNoOfAllBanks ldrb r1, [r1] cmp r0, r1 bcc _0801357A @@ -2252,10 +2252,10 @@ _080135AA: movs r5, 0 b _08013618 .align 2, 0 -_080135B0: .4byte gUnknown_02024A68 -_080135B4: .4byte gUnknown_02024C18 +_080135B0: .4byte gNoOfAllBanks +_080135B4: .4byte gActionForBanks _080135B8: .4byte gUnknown_02024A76 -_080135BC: .4byte gUnknown_02024A7A +_080135BC: .4byte gTurnOrder _080135C0: adds r4, r5, 0x1 adds r7, r4, 0 @@ -2266,7 +2266,7 @@ _080135C0: lsls r2, r5, 24 mov r8, r2 _080135D0: - ldr r0, _08013644 @ =gUnknown_02024A7A + ldr r0, _08013644 @ =gTurnOrder adds r1, r5, r0 ldrb r3, [r1] adds r0, r4, r0 @@ -2296,20 +2296,20 @@ _080135D0: bl sub_8012FBC _0801360C: adds r4, 0x1 - ldr r0, _08013648 @ =gUnknown_02024A68 + ldr r0, _08013648 @ =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 blt _080135D0 _08013616: adds r5, r7, 0 _08013618: - ldr r1, _08013648 @ =gUnknown_02024A68 + ldr r1, _08013648 @ =gNoOfAllBanks ldrb r0, [r1] subs r0, 0x1 cmp r5, r0 blt _080135C0 _08013622: - ldr r1, _0801364C @ =gUnknown_030042D4 + ldr r1, _0801364C @ =gBattleMainFunc ldr r0, _08013650 @ =bc_80154A0 str r0, [r1] ldr r0, _08013654 @ =0x02000000 @@ -2327,16 +2327,16 @@ _08013632: bx r0 .align 2, 0 _08013640: .4byte gUnknown_02024A76 -_08013644: .4byte gUnknown_02024A7A -_08013648: .4byte gUnknown_02024A68 -_0801364C: .4byte gUnknown_030042D4 +_08013644: .4byte gTurnOrder +_08013648: .4byte gNoOfAllBanks +_0801364C: .4byte gBattleMainFunc _08013650: .4byte bc_80154A0 _08013654: .4byte 0x02000000 _08013658: .4byte 0x0001601d thumb_func_end sub_80133C8 - thumb_func_start sub_801365C -sub_801365C: @ 801365C + thumb_func_start TurnValuesCleanUp +TurnValuesCleanUp: @ 801365C push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -2345,19 +2345,19 @@ sub_801365C: @ 801365C lsls r0, 24 lsrs r0, 24 mov r9, r0 - ldr r1, _080136B4 @ =gUnknown_02024A60 + ldr r1, _080136B4 @ =gActiveBank movs r0, 0 strb r0, [r1] - ldr r0, _080136B8 @ =gUnknown_02024A68 + ldr r0, _080136B8 @ =gNoOfAllBanks ldrb r2, [r0] adds r5, r1, 0 cmp r2, 0 beq _08013754 - ldr r7, _080136BC @ =gUnknown_02024D28 + ldr r7, _080136BC @ =gProtectStructs adds r6, r5, 0 ldr r0, _080136C0 @ =gUnknown_02024AD0 mov r12, r0 - ldr r1, _080136C4 @ =gUnknown_02024CA8 + ldr r1, _080136C4 @ =gDisableStructs mov r8, r1 mov r10, r8 _0801368A: @@ -2382,11 +2382,11 @@ _0801368A: strb r0, [r1] b _08013724 .align 2, 0 -_080136B4: .4byte gUnknown_02024A60 -_080136B8: .4byte gUnknown_02024A68 -_080136BC: .4byte gUnknown_02024D28 +_080136B4: .4byte gActiveBank +_080136B8: .4byte gNoOfAllBanks +_080136BC: .4byte gProtectStructs _080136C0: .4byte gUnknown_02024AD0 -_080136C4: .4byte gUnknown_02024CA8 +_080136C4: .4byte gDisableStructs _080136C8: ldrb r0, [r6] lsls r0, 4 @@ -2458,13 +2458,13 @@ _08013742: strb r0, [r5] lsls r0, 24 lsrs r0, 24 - ldr r1, _08013774 @ =gUnknown_02024A68 + ldr r1, _08013774 @ =gNoOfAllBanks ldrb r1, [r1] cmp r0, r1 bcc _0801368A _08013754: movs r0, 0 - ldr r2, _08013778 @ =gUnknown_02024C80 + ldr r2, _08013778 @ =gSideTimer strb r0, [r2, 0x8] strb r0, [r2, 0x14] pop {r3-r5} @@ -2477,24 +2477,24 @@ _08013754: .align 2, 0 _0801376C: .4byte 0xffbfffff _08013770: .4byte 0xfeffffff -_08013774: .4byte gUnknown_02024A68 -_08013778: .4byte gUnknown_02024C80 - thumb_func_end sub_801365C +_08013774: .4byte gNoOfAllBanks +_08013778: .4byte gSideTimer + thumb_func_end TurnValuesCleanUp - thumb_func_start sub_801377C -sub_801377C: @ 801377C + thumb_func_start SpecialStatusesClear +SpecialStatusesClear: @ 801377C push {r4-r6,lr} - ldr r2, _080137C0 @ =gUnknown_02024A60 + ldr r2, _080137C0 @ =gActiveBank movs r0, 0 strb r0, [r2] - ldr r0, _080137C4 @ =gUnknown_02024A68 + ldr r0, _080137C4 @ =gNoOfAllBanks ldrb r1, [r0] adds r6, r0, 0 cmp r1, 0 beq _080137BA adds r3, r2, 0 movs r4, 0 - ldr r5, _080137C8 @ =gUnknown_02024D68 + ldr r5, _080137C8 @ =gSpecialStatuses _08013794: ldrb r1, [r3] lsls r0, r1, 2 @@ -2521,15 +2521,15 @@ _080137BA: pop {r0} bx r0 .align 2, 0 -_080137C0: .4byte gUnknown_02024A60 -_080137C4: .4byte gUnknown_02024A68 -_080137C8: .4byte gUnknown_02024D68 - thumb_func_end sub_801377C +_080137C0: .4byte gActiveBank +_080137C4: .4byte gNoOfAllBanks +_080137C8: .4byte gSpecialStatuses + thumb_func_end SpecialStatusesClear thumb_func_start bc_80154A0 bc_80154A0: @ 80137CC push {r4-r7,lr} - ldr r0, _08013850 @ =gUnknown_02024C6C + ldr r0, _08013850 @ =gHitMarker ldr r0, [r0] movs r1, 0x80 lsls r1, 8 @@ -2539,14 +2539,14 @@ bc_80154A0: @ 80137CC ldr r0, _08013854 @ =0x02000000 ldr r1, _08013858 @ =0x0001601d adds r2, r0, r1 - ldr r0, _0801385C @ =gUnknown_02024A68 + ldr r0, _0801385C @ =gNoOfAllBanks ldrb r1, [r2] adds r7, r0, 0 ldrb r0, [r7] cmp r1, r0 bcs _08013884 - ldr r6, _08013860 @ =gUnknown_02024A60 - ldr r5, _08013864 @ =gPlayerMonIndex + ldr r6, _08013860 @ =gActiveBank + ldr r5, _08013864 @ =gBankAttacker adds r4, r2, 0 movs r1, 0x84 lsls r1, 1 @@ -2557,7 +2557,7 @@ _080137FA: strb r0, [r6] adds r0, 0x1 strb r0, [r4] - ldr r1, _08013868 @ =gUnknown_02024C60 + ldr r1, _08013868 @ =gChosenMovesByBanks ldrb r3, [r6] lsls r0, r3, 1 adds r0, r1 @@ -2574,7 +2574,7 @@ _080137FA: ands r0, r1 cmp r0, 0 bne _0801387C - ldr r2, _08013870 @ =gUnknown_02024CA8 + ldr r2, _08013870 @ =gDisableStructs ldrb r1, [r5] lsls r0, r1, 3 subs r0, r1 @@ -2584,7 +2584,7 @@ _080137FA: lsls r0, 31 cmp r0, 0 bne _0801387C - ldr r0, _08013874 @ =gUnknown_02024D28 + ldr r0, _08013874 @ =gProtectStructs lsls r1, r3, 4 adds r1, r0 ldrb r0, [r1] @@ -2595,16 +2595,16 @@ _080137FA: bl b_call_bc_move_exec b _080138BE .align 2, 0 -_08013850: .4byte gUnknown_02024C6C +_08013850: .4byte gHitMarker _08013854: .4byte 0x02000000 _08013858: .4byte 0x0001601d -_0801385C: .4byte gUnknown_02024A68 -_08013860: .4byte gUnknown_02024A60 -_08013864: .4byte gPlayerMonIndex -_08013868: .4byte gUnknown_02024C60 +_0801385C: .4byte gNoOfAllBanks +_08013860: .4byte gActiveBank +_08013864: .4byte gBankAttacker +_08013868: .4byte gChosenMovesByBanks _0801386C: .4byte gBattleMons -_08013870: .4byte gUnknown_02024CA8 -_08013874: .4byte gUnknown_02024D28 +_08013870: .4byte gDisableStructs +_08013874: .4byte gProtectStructs _08013878: .4byte gUnknown_081D94DA _0801387C: ldrb r0, [r4] @@ -2613,25 +2613,25 @@ _0801387C: bcc _080137FA _08013884: bl b_clear_atk_up_if_hit_flag_unless_enraged - ldr r1, _080138C4 @ =gUnknown_02024A7E + ldr r1, _080138C4 @ =gCurrentMoveTurn movs r0, 0 strb r0, [r1] - ldr r1, _080138C8 @ =gUnknown_02024A7F + ldr r1, _080138C8 @ =gFightStateTracker ldr r0, _080138CC @ =gUnknown_02024A76 movs r2, 0 ldrb r0, [r0] strb r0, [r1] - ldr r0, _080138D0 @ =gUnknown_02024DEC + ldr r0, _080138D0 @ =gDynamicBasePower movs r3, 0 strh r2, [r0] ldr r1, _080138D4 @ =0x02000000 ldr r2, _080138D8 @ =0x0001601c adds r0, r1, r2 strb r3, [r0] - ldr r2, _080138DC @ =gUnknown_030042D4 + ldr r2, _080138DC @ =gBattleMainFunc ldr r0, _080138E0 @ =sub_80138F0 str r0, [r2] - ldr r0, _080138E4 @ =gUnknown_02024D1E + ldr r0, _080138E4 @ =gBattleCommunication strb r3, [r0, 0x3] strb r3, [r0, 0x4] ldr r2, _080138E8 @ =0x00016112 @@ -2645,15 +2645,15 @@ _080138BE: pop {r0} bx r0 .align 2, 0 -_080138C4: .4byte gUnknown_02024A7E -_080138C8: .4byte gUnknown_02024A7F +_080138C4: .4byte gCurrentMoveTurn +_080138C8: .4byte gFightStateTracker _080138CC: .4byte gUnknown_02024A76 -_080138D0: .4byte gUnknown_02024DEC +_080138D0: .4byte gDynamicBasePower _080138D4: .4byte 0x02000000 _080138D8: .4byte 0x0001601c -_080138DC: .4byte gUnknown_030042D4 +_080138DC: .4byte gBattleMainFunc _080138E0: .4byte sub_80138F0 -_080138E4: .4byte gUnknown_02024D1E +_080138E4: .4byte gBattleCommunication _080138E8: .4byte 0x00016112 _080138EC: .4byte 0x00017130 thumb_func_end bc_80154A0 @@ -2661,16 +2661,16 @@ _080138EC: .4byte 0x00017130 thumb_func_start sub_80138F0 sub_80138F0: @ 80138F0 push {r4-r6,lr} - ldr r6, _08013944 @ =gUnknown_02024D26 + ldr r6, _08013944 @ =gBattleOutcome ldrb r0, [r6] - ldr r2, _08013948 @ =gUnknown_02024A7F + ldr r2, _08013948 @ =gFightStateTracker cmp r0, 0 beq _08013900 movs r0, 0xC strb r0, [r2] _08013900: ldr r1, _0801394C @ =0x02000000 - ldr r4, _08013950 @ =gUnknown_02024A7E + ldr r4, _08013950 @ =gCurrentMoveTurn ldrb r0, [r4] ldr r3, _08013954 @ =0x00016057 adds r5, r1, r3 @@ -2681,17 +2681,17 @@ _08013900: adds r0, r1 ldr r0, [r0] bl _call_via_r0 - ldr r0, _0801395C @ =gUnknown_02024A68 + ldr r0, _0801395C @ =gNoOfAllBanks ldrb r1, [r4] ldrb r0, [r0] cmp r1, r0 bcc _08013970 - ldr r2, _08013960 @ =gUnknown_02024C6C + ldr r2, _08013960 @ =gHitMarker ldr r0, [r2] ldr r1, _08013964 @ =0xffefffff ands r0, r1 str r0, [r2] - ldr r3, _08013968 @ =gUnknown_030042D4 + ldr r3, _08013968 @ =gBattleMainFunc ldr r2, _0801396C @ =gUnknown_081FA678 ldrb r1, [r6] movs r0, 0x7F @@ -2702,22 +2702,22 @@ _08013900: str r0, [r3] b _08013984 .align 2, 0 -_08013944: .4byte gUnknown_02024D26 -_08013948: .4byte gUnknown_02024A7F +_08013944: .4byte gBattleOutcome +_08013948: .4byte gFightStateTracker _0801394C: .4byte 0x02000000 -_08013950: .4byte gUnknown_02024A7E +_08013950: .4byte gCurrentMoveTurn _08013954: .4byte 0x00016057 _08013958: .4byte gUnknown_081FA640 -_0801395C: .4byte gUnknown_02024A68 -_08013960: .4byte gUnknown_02024C6C +_0801395C: .4byte gNoOfAllBanks +_08013960: .4byte gHitMarker _08013964: .4byte 0xffefffff -_08013968: .4byte gUnknown_030042D4 +_08013968: .4byte gBattleMainFunc _0801396C: .4byte gUnknown_081FA678 _08013970: ldrb r0, [r5] cmp r0, r1 beq _08013984 - ldr r2, _0801398C @ =gUnknown_02024C6C + ldr r2, _0801398C @ =gHitMarker ldr r0, [r2] ldr r1, _08013990 @ =0xfffffdff ands r0, r1 @@ -2729,7 +2729,7 @@ _08013984: pop {r0} bx r0 .align 2, 0 -_0801398C: .4byte gUnknown_02024C6C +_0801398C: .4byte gHitMarker _08013990: .4byte 0xfffffdff _08013994: .4byte 0xfff7ffff thumb_func_end sub_80138F0 @@ -2737,7 +2737,7 @@ _08013994: .4byte 0xfff7ffff thumb_func_start sub_8013998 sub_8013998: @ 8013998 push {r4,lr} - ldr r1, _080139D0 @ =gUnknown_02024A7F + ldr r1, _080139D0 @ =gFightStateTracker movs r0, 0 strb r0, [r1] ldr r0, _080139D4 @ =gBattleTypeFlags @@ -2746,15 +2746,15 @@ sub_8013998: @ 8013998 ands r0, r1 cmp r0, 0 beq _080139EC - ldr r1, _080139D8 @ =gUnknown_030041C0 - ldr r4, _080139DC @ =gUnknown_02024D26 + ldr r1, _080139D8 @ =gBattleTextBuff1 + ldr r4, _080139DC @ =gBattleOutcome ldrb r0, [r4] strb r0, [r1] movs r0, 0 - bl battle_get_side_with_given_state - ldr r1, _080139E0 @ =gPlayerMonIndex + bl GetBankByPlayerAI + ldr r1, _080139E0 @ =gBankAttacker strb r0, [r1] - ldr r1, _080139E4 @ =gUnknown_02024C10 + ldr r1, _080139E4 @ =gBattlescriptCurrInstr ldr r0, _080139E8 @ =gUnknown_081D8E02 str r0, [r1] ldrb r1, [r4] @@ -2763,12 +2763,12 @@ sub_8013998: @ 8013998 strb r0, [r4] b _08013B48 .align 2, 0 -_080139D0: .4byte gUnknown_02024A7F +_080139D0: .4byte gFightStateTracker _080139D4: .4byte gBattleTypeFlags -_080139D8: .4byte gUnknown_030041C0 -_080139DC: .4byte gUnknown_02024D26 -_080139E0: .4byte gPlayerMonIndex -_080139E4: .4byte gUnknown_02024C10 +_080139D8: .4byte gBattleTextBuff1 +_080139DC: .4byte gBattleOutcome +_080139E0: .4byte gBankAttacker +_080139E4: .4byte gBattlescriptCurrInstr _080139E8: .4byte gUnknown_081D8E02 _080139EC: movs r0, 0x90 @@ -2776,11 +2776,11 @@ _080139EC: ands r0, r1 cmp r0, 0 beq _08013A04 - ldr r1, _080139FC @ =gUnknown_02024C10 + ldr r1, _080139FC @ =gBattlescriptCurrInstr ldr r0, _08013A00 @ =gUnknown_081D8E0D b _08013B46 .align 2, 0 -_080139FC: .4byte gUnknown_02024C10 +_080139FC: .4byte gBattlescriptCurrInstr _08013A00: .4byte gUnknown_081D8E0D _08013A04: movs r0, 0xA @@ -2790,7 +2790,7 @@ _08013A04: b _08013B42 _08013A0E: bl sub_80325B8 - ldr r1, _08013A3C @ =gUnknown_02024C10 + ldr r1, _08013A3C @ =gBattlescriptCurrInstr ldr r0, _08013A40 @ =gUnknown_081D8DBE str r0, [r1] ldr r2, _08013A44 @ =gTrainers @@ -2812,7 +2812,7 @@ _08013A30: ldr r0, [r0] mov pc, r0 .align 2, 0 -_08013A3C: .4byte gUnknown_02024C10 +_08013A3C: .4byte gBattlescriptCurrInstr _08013A40: .4byte gUnknown_081D8DBE _08013A44: .4byte gTrainers _08013A48: .4byte gTrainerBattleOpponent @@ -2891,28 +2891,28 @@ _08013B38: bl PlayBGM b _08013B48 _08013B42: - ldr r1, _08013B54 @ =gUnknown_02024C10 + ldr r1, _08013B54 @ =gBattlescriptCurrInstr ldr r0, _08013B58 @ =gUnknown_081D8DCE _08013B46: str r0, [r1] _08013B48: - ldr r1, _08013B5C @ =gUnknown_030042D4 + ldr r1, _08013B5C @ =gBattleMainFunc ldr r0, _08013B60 @ =sub_8013C9C str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 -_08013B54: .4byte gUnknown_02024C10 +_08013B54: .4byte gBattlescriptCurrInstr _08013B58: .4byte gUnknown_081D8DCE -_08013B5C: .4byte gUnknown_030042D4 +_08013B5C: .4byte gBattleMainFunc _08013B60: .4byte sub_8013C9C thumb_func_end sub_8013998 thumb_func_start sub_8013B64 sub_8013B64: @ 8013B64 push {r4,lr} - ldr r1, _08013B9C @ =gUnknown_02024A7F + ldr r1, _08013B9C @ =gFightStateTracker movs r0, 0 strb r0, [r1] ldr r0, _08013BA0 @ =gBattleTypeFlags @@ -2921,15 +2921,15 @@ sub_8013B64: @ 8013B64 ands r0, r1 cmp r0, 0 beq _08013BB8 - ldr r1, _08013BA4 @ =gUnknown_030041C0 - ldr r4, _08013BA8 @ =gUnknown_02024D26 + ldr r1, _08013BA4 @ =gBattleTextBuff1 + ldr r4, _08013BA8 @ =gBattleOutcome ldrb r0, [r4] strb r0, [r1] movs r0, 0 - bl battle_get_side_with_given_state - ldr r1, _08013BAC @ =gPlayerMonIndex + bl GetBankByPlayerAI + ldr r1, _08013BAC @ =gBankAttacker strb r0, [r1] - ldr r1, _08013BB0 @ =gUnknown_02024C10 + ldr r1, _08013BB0 @ =gBattlescriptCurrInstr ldr r0, _08013BB4 @ =gUnknown_081D8E02 str r0, [r1] ldrb r1, [r4] @@ -2938,39 +2938,39 @@ sub_8013B64: @ 8013B64 strb r0, [r4] b _08013BBE .align 2, 0 -_08013B9C: .4byte gUnknown_02024A7F +_08013B9C: .4byte gFightStateTracker _08013BA0: .4byte gBattleTypeFlags -_08013BA4: .4byte gUnknown_030041C0 -_08013BA8: .4byte gUnknown_02024D26 -_08013BAC: .4byte gPlayerMonIndex -_08013BB0: .4byte gUnknown_02024C10 +_08013BA4: .4byte gBattleTextBuff1 +_08013BA8: .4byte gBattleOutcome +_08013BAC: .4byte gBankAttacker +_08013BB0: .4byte gBattlescriptCurrInstr _08013BB4: .4byte gUnknown_081D8E02 _08013BB8: - ldr r1, _08013BCC @ =gUnknown_02024C10 + ldr r1, _08013BCC @ =gBattlescriptCurrInstr ldr r0, _08013BD0 @ =gUnknown_081D8DD1 str r0, [r1] _08013BBE: - ldr r1, _08013BD4 @ =gUnknown_030042D4 + ldr r1, _08013BD4 @ =gBattleMainFunc ldr r0, _08013BD8 @ =sub_8013C9C str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 -_08013BCC: .4byte gUnknown_02024C10 +_08013BCC: .4byte gBattlescriptCurrInstr _08013BD0: .4byte gUnknown_081D8DD1 -_08013BD4: .4byte gUnknown_030042D4 +_08013BD4: .4byte gBattleMainFunc _08013BD8: .4byte sub_8013C9C thumb_func_end sub_8013B64 thumb_func_start sub_8013BDC sub_8013BDC: @ 8013BDC push {lr} - ldr r1, _08013C04 @ =gUnknown_02024A7F + ldr r1, _08013C04 @ =gFightStateTracker movs r0, 0 strb r0, [r1] - ldr r1, _08013C08 @ =gUnknown_02024D28 - ldr r0, _08013C0C @ =gPlayerMonIndex + ldr r1, _08013C08 @ =gProtectStructs + ldr r0, _08013C0C @ =gBankAttacker ldrb r0, [r0] lsls r0, 4 adds r0, r1 @@ -2981,53 +2981,53 @@ sub_8013BDC: @ 8013BDC beq _08013C18 cmp r0, 0x2 beq _08013C28 - ldr r1, _08013C10 @ =gUnknown_02024C10 + ldr r1, _08013C10 @ =gBattlescriptCurrInstr ldr r0, _08013C14 @ =gUnknown_081D8E29 b _08013C2C .align 2, 0 -_08013C04: .4byte gUnknown_02024A7F -_08013C08: .4byte gUnknown_02024D28 -_08013C0C: .4byte gPlayerMonIndex -_08013C10: .4byte gUnknown_02024C10 +_08013C04: .4byte gFightStateTracker +_08013C08: .4byte gProtectStructs +_08013C0C: .4byte gBankAttacker +_08013C10: .4byte gBattlescriptCurrInstr _08013C14: .4byte gUnknown_081D8E29 _08013C18: - ldr r1, _08013C20 @ =gUnknown_02024C10 + ldr r1, _08013C20 @ =gBattlescriptCurrInstr ldr r0, _08013C24 @ =gUnknown_081D8E14 b _08013C2C .align 2, 0 -_08013C20: .4byte gUnknown_02024C10 +_08013C20: .4byte gBattlescriptCurrInstr _08013C24: .4byte gUnknown_081D8E14 _08013C28: - ldr r1, _08013C38 @ =gUnknown_02024C10 + ldr r1, _08013C38 @ =gBattlescriptCurrInstr ldr r0, _08013C3C @ =gUnknown_081D8E22 _08013C2C: str r0, [r1] - ldr r1, _08013C40 @ =gUnknown_030042D4 + ldr r1, _08013C40 @ =gBattleMainFunc ldr r0, _08013C44 @ =sub_8013C9C str r0, [r1] pop {r0} bx r0 .align 2, 0 -_08013C38: .4byte gUnknown_02024C10 +_08013C38: .4byte gBattlescriptCurrInstr _08013C3C: .4byte gUnknown_081D8E22 -_08013C40: .4byte gUnknown_030042D4 +_08013C40: .4byte gBattleMainFunc _08013C44: .4byte sub_8013C9C thumb_func_end sub_8013BDC thumb_func_start sub_8013C48 sub_8013C48: @ 8013C48 - ldr r1, _08013C7C @ =gUnknown_02024A7F + ldr r1, _08013C7C @ =gFightStateTracker movs r0, 0 strb r0, [r1] - ldr r1, _08013C80 @ =gUnknown_030041C0 + ldr r1, _08013C80 @ =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x7 strb r0, [r1, 0x1] - ldr r2, _08013C84 @ =gPlayerMonIndex + ldr r2, _08013C84 @ =gBankAttacker ldrb r0, [r2] strb r0, [r1, 0x2] - ldr r3, _08013C88 @ =gUnknown_02024A6A + ldr r3, _08013C88 @ =gBattlePartyID ldrb r0, [r2] lsls r0, 1 adds r0, r3 @@ -3035,28 +3035,28 @@ sub_8013C48: @ 8013C48 strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] - ldr r1, _08013C8C @ =gUnknown_02024C10 + ldr r1, _08013C8C @ =gBattlescriptCurrInstr ldr r0, _08013C90 @ =gUnknown_081D8E30 str r0, [r1] - ldr r1, _08013C94 @ =gUnknown_030042D4 + ldr r1, _08013C94 @ =gBattleMainFunc ldr r0, _08013C98 @ =sub_8013C9C str r0, [r1] bx lr .align 2, 0 -_08013C7C: .4byte gUnknown_02024A7F -_08013C80: .4byte gUnknown_030041C0 -_08013C84: .4byte gPlayerMonIndex -_08013C88: .4byte gUnknown_02024A6A -_08013C8C: .4byte gUnknown_02024C10 +_08013C7C: .4byte gFightStateTracker +_08013C80: .4byte gBattleTextBuff1 +_08013C84: .4byte gBankAttacker +_08013C88: .4byte gBattlePartyID +_08013C8C: .4byte gBattlescriptCurrInstr _08013C90: .4byte gUnknown_081D8E30 -_08013C94: .4byte gUnknown_030042D4 +_08013C94: .4byte gBattleMainFunc _08013C98: .4byte sub_8013C9C thumb_func_end sub_8013C48 thumb_func_start sub_8013C9C sub_8013C9C: @ 8013C9C push {r4-r7,lr} - ldr r0, _08013D00 @ =gUnknown_02024A7F + ldr r0, _08013D00 @ =gFightStateTracker ldrb r0, [r0] subs r0, 0xB lsls r0, 24 @@ -3069,9 +3069,9 @@ sub_8013C9C: @ 8013C9C ands r1, r0 cmp r1, 0 bne _08013D4C - ldr r2, _08013D0C @ =gUnknown_02024A60 + ldr r2, _08013D0C @ =gActiveBank strb r1, [r2] - ldr r0, _08013D10 @ =gUnknown_02024A68 + ldr r0, _08013D10 @ =gNoOfAllBanks ldrb r0, [r0] cmp r1, r0 bcs _08013D48 @@ -3082,11 +3082,11 @@ sub_8013C9C: @ 8013C9C adds r7, 0x30 _08013CCE: ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08013D36 - ldr r2, _08013D18 @ =gUnknown_030042E0 + ldr r2, _08013D18 @ =gBattleResults ldrh r0, [r2, 0x6] cmp r0, 0 bne _08013D1C @@ -3104,13 +3104,13 @@ _08013CCE: bl StringCopy b _08013D36 .align 2, 0 -_08013D00: .4byte gUnknown_02024A7F +_08013D00: .4byte gFightStateTracker _08013D04: .4byte gBattleTypeFlags _08013D08: .4byte 0x00000b92 -_08013D0C: .4byte gUnknown_02024A60 -_08013D10: .4byte gUnknown_02024A68 +_08013D0C: .4byte gActiveBank +_08013D10: .4byte gNoOfAllBanks _08013D14: .4byte gBattleMons -_08013D18: .4byte gUnknown_030042E0 +_08013D18: .4byte gBattleResults _08013D1C: ldrb r0, [r4] muls r0, r5 @@ -3128,7 +3128,7 @@ _08013D36: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] - ldr r1, _08013D68 @ =gUnknown_02024A68 + ldr r1, _08013D68 @ =gNoOfAllBanks lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] @@ -3141,7 +3141,7 @@ _08013D4C: bl BeginFastPaletteFade movs r0, 0x5 bl FadeOutMapMusic - ldr r1, _08013D6C @ =gUnknown_030042D4 + ldr r1, _08013D6C @ =gBattleMainFunc ldr r0, _08013D70 @ =sub_8013DA8 str r0, [r1] ldr r1, _08013D74 @ =gUnknown_03005E94 @@ -3149,18 +3149,18 @@ _08013D4C: str r0, [r1] b _08013D96 .align 2, 0 -_08013D68: .4byte gUnknown_02024A68 -_08013D6C: .4byte gUnknown_030042D4 +_08013D68: .4byte gNoOfAllBanks +_08013D6C: .4byte gBattleMainFunc _08013D70: .4byte sub_8013DA8 _08013D74: .4byte gUnknown_03005E94 _08013D78: .4byte sub_800F808 _08013D7C: - ldr r0, _08013D9C @ =gUnknown_02024A64 + ldr r0, _08013D9C @ =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 bne _08013D96 - ldr r1, _08013DA0 @ =gUnknown_081FA73C - ldr r0, _08013DA4 @ =gUnknown_02024C10 + ldr r1, _08013DA0 @ =gBattleScriptingCommandsTable + ldr r0, _08013DA4 @ =gBattlescriptCurrInstr ldr r0, [r0] ldrb r0, [r0] lsls r0, 2 @@ -3172,9 +3172,9 @@ _08013D96: pop {r0} bx r0 .align 2, 0 -_08013D9C: .4byte gUnknown_02024A64 -_08013DA0: .4byte gUnknown_081FA73C -_08013DA4: .4byte gUnknown_02024C10 +_08013D9C: .4byte gBattleExecBuffer +_08013DA0: .4byte gBattleScriptingCommandsTable +_08013DA4: .4byte gBattlescriptCurrInstr thumb_func_end sub_8013C9C thumb_func_start sub_8013DA8 @@ -3187,26 +3187,26 @@ sub_8013DA8: @ 8013DA8 cmp r0, 0 bne _08013DEA bl ResetSpriteData - ldr r0, _08013DD4 @ =gUnknown_03004324 + ldr r0, _08013DD4 @ =gLeveledUpInBattle ldrb r0, [r0] cmp r0, 0 beq _08013DCA - ldr r0, _08013DD8 @ =gUnknown_02024D26 + ldr r0, _08013DD8 @ =gBattleOutcome ldrb r0, [r0] cmp r0, 0x1 beq _08013DE4 _08013DCA: - ldr r1, _08013DDC @ =gUnknown_030042D4 + ldr r1, _08013DDC @ =gBattleMainFunc ldr r0, _08013DE0 @ =c4_overworld b _08013DE8 .align 2, 0 _08013DD0: .4byte gPaletteFade -_08013DD4: .4byte gUnknown_03004324 -_08013DD8: .4byte gUnknown_02024D26 -_08013DDC: .4byte gUnknown_030042D4 +_08013DD4: .4byte gLeveledUpInBattle +_08013DD8: .4byte gBattleOutcome +_08013DDC: .4byte gBattleMainFunc _08013DE0: .4byte c4_overworld _08013DE4: - ldr r1, _08013DF0 @ =gUnknown_030042D4 + ldr r1, _08013DF0 @ =gBattleMainFunc ldr r0, _08013DF4 @ =bc_evolution_cutscene _08013DE8: str r0, [r1] @@ -3214,14 +3214,14 @@ _08013DEA: pop {r0} bx r0 .align 2, 0 -_08013DF0: .4byte gUnknown_030042D4 +_08013DF0: .4byte gBattleMainFunc _08013DF4: .4byte bc_evolution_cutscene thumb_func_end sub_8013DA8 thumb_func_start bc_evolution_cutscene bc_evolution_cutscene: @ 8013DF8 push {r4,r5,lr} - ldr r0, _08013E4C @ =gUnknown_03004324 + ldr r0, _08013E4C @ =gLeveledUpInBattle ldrb r1, [r0] adds r3, r0, 0 cmp r1, 0 @@ -3252,7 +3252,7 @@ _08013E06: lsrs r2, r0, 16 cmp r2, 0 beq _08013E60 - ldr r0, _08013E58 @ =gUnknown_030042D4 + ldr r0, _08013E58 @ =gBattleMainFunc ldr r1, _08013E5C @ =sub_8013E88 str r1, [r0] lsls r3, r5, 24 @@ -3263,21 +3263,21 @@ _08013E06: bl EvolutionScene b _08013E74 .align 2, 0 -_08013E4C: .4byte gUnknown_03004324 +_08013E4C: .4byte gLeveledUpInBattle _08013E50: .4byte gBitTable _08013E54: .4byte gPlayerParty -_08013E58: .4byte gUnknown_030042D4 +_08013E58: .4byte gBattleMainFunc _08013E5C: .4byte sub_8013E88 _08013E60: adds r5, 0x1 - ldr r3, _08013E7C @ =gUnknown_03004324 + ldr r3, _08013E7C @ =gLeveledUpInBattle cmp r5, 0x5 ble _08013E06 ldrb r0, [r3] cmp r0, 0 bne _08013E04 _08013E6E: - ldr r1, _08013E80 @ =gUnknown_030042D4 + ldr r1, _08013E80 @ =gBattleMainFunc ldr r0, _08013E84 @ =c4_overworld str r0, [r1] _08013E74: @@ -3285,8 +3285,8 @@ _08013E74: pop {r0} bx r0 .align 2, 0 -_08013E7C: .4byte gUnknown_03004324 -_08013E80: .4byte gUnknown_030042D4 +_08013E7C: .4byte gLeveledUpInBattle +_08013E80: .4byte gBattleMainFunc _08013E84: .4byte c4_overworld thumb_func_end bc_evolution_cutscene @@ -3298,7 +3298,7 @@ sub_8013E88: @ 8013E88 ldr r0, _08013EA4 @ =sub_800F808 cmp r1, r0 bne _08013E9A - ldr r1, _08013EA8 @ =gUnknown_030042D4 + ldr r1, _08013EA8 @ =gBattleMainFunc ldr r0, _08013EAC @ =bc_evolution_cutscene str r0, [r1] _08013E9A: @@ -3307,7 +3307,7 @@ _08013E9A: .align 2, 0 _08013EA0: .4byte gMain _08013EA4: .4byte sub_800F808 -_08013EA8: .4byte gUnknown_030042D4 +_08013EA8: .4byte gBattleMainFunc _08013EAC: .4byte bc_evolution_cutscene thumb_func_end sub_8013E88 @@ -3338,7 +3338,7 @@ _08013ECE: bne _08013F2A _08013EE0: ldr r1, _08013F3C @ =gScriptResult - ldr r5, _08013F40 @ =gUnknown_02024D26 + ldr r5, _08013F40 @ =gBattleOutcome ldrb r0, [r5] strh r0, [r1] ldr r3, _08013F44 @ =gMain @@ -3349,7 +3349,7 @@ _08013EE0: negs r0, r0 ands r0, r1 strb r0, [r2] - ldr r0, _08013F4C @ =gUnknown_030042D0 + ldr r0, _08013F4C @ =gPreBattleCallback1 ldr r0, [r0] str r0, [r3] movs r0, 0x80 @@ -3381,17 +3381,17 @@ _08013F30: .4byte gBattleTypeFlags _08013F34: .4byte gPlayerParty _08013F38: .4byte gReceivedRemoteLinkPlayers _08013F3C: .4byte gScriptResult -_08013F40: .4byte gUnknown_02024D26 +_08013F40: .4byte gBattleOutcome _08013F44: .4byte gMain _08013F48: .4byte 0x0000043d -_08013F4C: .4byte gUnknown_030042D0 +_08013F4C: .4byte gPreBattleCallback1 _08013F50: .4byte gEnemyParty thumb_func_end c4_overworld thumb_func_start sub_8013F54 sub_8013F54: @ 8013F54 push {lr} - ldr r0, _08013F84 @ =gUnknown_02024A7F + ldr r0, _08013F84 @ =gFightStateTracker ldrb r0, [r0] subs r0, 0xB lsls r0, 24 @@ -3407,7 +3407,7 @@ sub_8013F54: @ 8013F54 subs r0, 0x1 strb r0, [r1] _08013F74: - ldr r0, _08013F8C @ =gUnknown_030042D4 + ldr r0, _08013F8C @ =gBattleMainFunc ldrb r1, [r1] lsls r1, 2 adds r1, r2 @@ -3415,16 +3415,16 @@ _08013F74: str r1, [r0] b _08013FAA .align 2, 0 -_08013F84: .4byte gUnknown_02024A7F +_08013F84: .4byte gFightStateTracker _08013F88: .4byte 0x02017140 -_08013F8C: .4byte gUnknown_030042D4 +_08013F8C: .4byte gBattleMainFunc _08013F90: - ldr r0, _08013FB0 @ =gUnknown_02024A64 + ldr r0, _08013FB0 @ =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 bne _08013FAA - ldr r1, _08013FB4 @ =gUnknown_081FA73C - ldr r0, _08013FB8 @ =gUnknown_02024C10 + ldr r1, _08013FB4 @ =gBattleScriptingCommandsTable + ldr r0, _08013FB8 @ =gBattlescriptCurrInstr ldr r0, [r0] ldrb r0, [r0] lsls r0, 2 @@ -3435,20 +3435,20 @@ _08013FAA: pop {r0} bx r0 .align 2, 0 -_08013FB0: .4byte gUnknown_02024A64 -_08013FB4: .4byte gUnknown_081FA73C -_08013FB8: .4byte gUnknown_02024C10 +_08013FB0: .4byte gBattleExecBuffer +_08013FB4: .4byte gBattleScriptingCommandsTable +_08013FB8: .4byte gBattlescriptCurrInstr thumb_func_end sub_8013F54 thumb_func_start sub_8013FBC sub_8013FBC: @ 8013FBC push {lr} - ldr r0, _08013FDC @ =gUnknown_02024A64 + ldr r0, _08013FDC @ =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 bne _08013FD8 - ldr r1, _08013FE0 @ =gUnknown_081FA73C - ldr r0, _08013FE4 @ =gUnknown_02024C10 + ldr r1, _08013FE0 @ =gBattleScriptingCommandsTable + ldr r0, _08013FE4 @ =gBattlescriptCurrInstr ldr r0, [r0] ldrb r0, [r0] lsls r0, 2 @@ -3459,9 +3459,9 @@ _08013FD8: pop {r0} bx r0 .align 2, 0 -_08013FDC: .4byte gUnknown_02024A64 -_08013FE0: .4byte gUnknown_081FA73C -_08013FE4: .4byte gUnknown_02024C10 +_08013FDC: .4byte gBattleExecBuffer +_08013FE0: .4byte gBattleScriptingCommandsTable +_08013FE4: .4byte gBattlescriptCurrInstr thumb_func_end sub_8013FBC thumb_func_start sub_8013FE8 @@ -3474,9 +3474,9 @@ sub_8013FE8: @ 8013FE8 sub sp, 0xC movs r0, 0x4 str r0, [sp] - ldr r7, _08014028 @ =gPlayerMonIndex - ldr r1, _0801402C @ =gUnknown_02024A7A - ldr r0, _08014030 @ =gUnknown_02024A7E + ldr r7, _08014028 @ =gBankAttacker + ldr r1, _0801402C @ =gTurnOrder + ldr r0, _08014030 @ =gCurrentMoveTurn ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -3494,17 +3494,17 @@ sub_8013FE8: @ 8013FE8 ands r2, r0 cmp r2, 0 beq _08014044 - ldr r1, _08014040 @ =gUnknown_02024A7F + ldr r1, _08014040 @ =gFightStateTracker movs r0, 0xC b _080146CC .align 2, 0 -_08014028: .4byte gPlayerMonIndex -_0801402C: .4byte gUnknown_02024A7A -_08014030: .4byte gUnknown_02024A7E +_08014028: .4byte gBankAttacker +_0801402C: .4byte gTurnOrder +_08014030: .4byte gCurrentMoveTurn _08014034: .4byte 0x02000000 _08014038: .4byte 0x000160a6 _0801403C: .4byte gBitTable -_08014040: .4byte gUnknown_02024A7F +_08014040: .4byte gFightStateTracker _08014044: ldr r1, _080140B8 @ =gCritMultiplier movs r0, 0x1 @@ -3518,11 +3518,11 @@ _08014044: strb r2, [r0] ldr r0, _080140C4 @ =gBattleMoveFlags strb r2, [r0] - ldr r0, _080140C8 @ =gUnknown_02024C0E + ldr r0, _080140C8 @ =gMultiHitCounter strb r2, [r0] - ldr r0, _080140CC @ =gUnknown_02024D1E + ldr r0, _080140CC @ =gBattleCommunication strb r2, [r0, 0x6] - ldr r3, _080140D0 @ =gUnknown_02024BE4 + ldr r3, _080140D0 @ =gCurrMovePos ldrb r0, [r7] ldr r2, _080140D4 @ =0x0001608c adds r0, r2 @@ -3531,7 +3531,7 @@ _08014044: ldr r4, _080140D8 @ =gUnknown_02024BE5 strb r0, [r4] strb r0, [r3] - ldr r1, _080140DC @ =gUnknown_02024D28 + ldr r1, _080140DC @ =gProtectStructs ldrb r2, [r7] lsls r0, r2, 4 adds r5, r0, r1 @@ -3545,12 +3545,12 @@ _08014044: negs r0, r0 ands r0, r1 strb r0, [r5] - ldr r2, _080140E0 @ =gUnknown_02024BE6 + ldr r2, _080140E0 @ =gCurrentMove ldr r1, _080140E4 @ =gUnknown_02024BE8 movs r0, 0xA5 strh r0, [r1] strh r0, [r2] - ldr r2, _080140E8 @ =gUnknown_02024C6C + ldr r2, _080140E8 @ =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 4 @@ -3568,15 +3568,15 @@ _080140B8: .4byte gCritMultiplier _080140BC: .4byte 0x0001601f _080140C0: .4byte 0x000160e7 _080140C4: .4byte gBattleMoveFlags -_080140C8: .4byte gUnknown_02024C0E -_080140CC: .4byte gUnknown_02024D1E -_080140D0: .4byte gUnknown_02024BE4 +_080140C8: .4byte gMultiHitCounter +_080140CC: .4byte gBattleCommunication +_080140D0: .4byte gCurrMovePos _080140D4: .4byte 0x0001608c _080140D8: .4byte gUnknown_02024BE5 -_080140DC: .4byte gUnknown_02024D28 -_080140E0: .4byte gUnknown_02024BE6 +_080140DC: .4byte gProtectStructs +_080140E0: .4byte gCurrentMove _080140E4: .4byte gUnknown_02024BE8 -_080140E8: .4byte gUnknown_02024C6C +_080140E8: .4byte gHitMarker _080140EC: .4byte 0x00016010 _080140F0: ldr r1, _08014128 @ =gBattleMons @@ -3598,9 +3598,9 @@ _080140F0: cmp r6, 0 beq _08014138 _08014114: - ldr r3, _0801412C @ =gUnknown_02024BE6 + ldr r3, _0801412C @ =gCurrentMove ldr r2, _08014130 @ =gUnknown_02024BE8 - ldr r1, _08014134 @ =gUnknown_02024C54 + ldr r1, _08014134 @ =gLockedMove lsls r0, r4, 1 adds r0, r1 ldrh r0, [r0] @@ -3609,11 +3609,11 @@ _08014114: b _08014280 .align 2, 0 _08014128: .4byte gBattleMons -_0801412C: .4byte gUnknown_02024BE6 +_0801412C: .4byte gCurrentMove _08014130: .4byte gUnknown_02024BE8 -_08014134: .4byte gUnknown_02024C54 +_08014134: .4byte gLockedMove _08014138: - ldr r3, _08014188 @ =gUnknown_02024CA8 + ldr r3, _08014188 @ =gDisableStructs mov r12, r3 lsls r0, r4, 3 subs r0, r4 @@ -3635,7 +3635,7 @@ _08014138: ldrh r0, [r0] cmp r1, r0 bne _080141A0 - ldr r1, _08014190 @ =gUnknown_02024BE6 + ldr r1, _08014190 @ =gCurrentMove ldr r0, _08014194 @ =gUnknown_02024BE8 strh r4, [r0] strh r4, [r1] @@ -3652,9 +3652,9 @@ _08014138: adds r1, r4 b _08014200 .align 2, 0 -_08014188: .4byte gUnknown_02024CA8 +_08014188: .4byte gDisableStructs _0801418C: .4byte gBattleMons -_08014190: .4byte gUnknown_02024BE6 +_08014190: .4byte gCurrentMove _08014194: .4byte gUnknown_02024BE8 _08014198: .4byte gUnknown_02024BE5 _0801419C: .4byte 0x00016010 @@ -3667,7 +3667,7 @@ _080141A0: strb r3, [r0] mov r1, r8 strb r3, [r1] - ldr r3, _0801420C @ =gUnknown_02024BE6 + ldr r3, _0801420C @ =gCurrentMove ldr r1, _08014210 @ =gUnknown_02024BE8 mov r2, r8 ldrb r0, [r2] @@ -3712,14 +3712,14 @@ _08014200: b _08014280 .align 2, 0 _08014208: .4byte gUnknown_02024BE5 -_0801420C: .4byte gUnknown_02024BE6 +_0801420C: .4byte gCurrentMove _08014210: .4byte gUnknown_02024BE8 _08014214: .4byte 0x00016010 _08014218: mov r4, r8 ldrb r0, [r4] lsls r0, 1 - ldr r4, _0801425C @ =gPlayerMonIndex + ldr r4, _0801425C @ =gBankAttacker ldrb r2, [r4] movs r1, 0x58 muls r1, r2 @@ -3727,14 +3727,14 @@ _08014218: ldr r1, _08014260 @ =gBattleMons adds r1, 0xC adds r0, r1 - ldr r1, _08014264 @ =gUnknown_02024C60 + ldr r1, _08014264 @ =gChosenMovesByBanks lsls r2, 1 adds r2, r1 ldrh r3, [r0] ldrh r2, [r2] cmp r3, r2 beq _08014278 - ldr r1, _08014268 @ =gUnknown_02024BE6 + ldr r1, _08014268 @ =gCurrentMove ldr r0, _0801426C @ =gUnknown_02024BE8 strh r3, [r0] strh r3, [r1] @@ -3749,49 +3749,49 @@ _08014218: strb r0, [r1] b _08014280 .align 2, 0 -_0801425C: .4byte gPlayerMonIndex +_0801425C: .4byte gBankAttacker _08014260: .4byte gBattleMons -_08014264: .4byte gUnknown_02024C60 -_08014268: .4byte gUnknown_02024BE6 +_08014264: .4byte gChosenMovesByBanks +_08014268: .4byte gCurrentMove _0801426C: .4byte gUnknown_02024BE8 _08014270: .4byte 0x02000000 _08014274: .4byte 0x00016010 _08014278: - ldr r1, _08014298 @ =gUnknown_02024BE6 + ldr r1, _08014298 @ =gCurrentMove ldr r0, _0801429C @ =gUnknown_02024BE8 strh r3, [r0] strh r3, [r1] _08014280: - ldr r0, _080142A0 @ =gPlayerMonIndex + ldr r0, _080142A0 @ =gBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080142A8 - ldr r0, _080142A4 @ =gUnknown_030042E0 - ldr r1, _08014298 @ =gUnknown_02024BE6 + ldr r0, _080142A4 @ =gBattleResults + ldr r1, _08014298 @ =gCurrentMove ldrh r1, [r1] strh r1, [r0, 0x22] b _080142B0 .align 2, 0 -_08014298: .4byte gUnknown_02024BE6 +_08014298: .4byte gCurrentMove _0801429C: .4byte gUnknown_02024BE8 -_080142A0: .4byte gPlayerMonIndex -_080142A4: .4byte gUnknown_030042E0 +_080142A0: .4byte gBankAttacker +_080142A4: .4byte gBattleResults _080142A8: - ldr r0, _08014314 @ =gUnknown_030042E0 - ldr r1, _08014318 @ =gUnknown_02024BE6 + ldr r0, _08014314 @ =gBattleResults + ldr r1, _08014318 @ =gCurrentMove ldrh r1, [r1] strh r1, [r0, 0x24] _080142B0: - ldr r4, _0801431C @ =gPlayerMonIndex + ldr r4, _0801431C @ =gBankAttacker ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r6, r0, 24 - ldr r1, _08014320 @ =gUnknown_02024C80 + ldr r1, _08014320 @ =gSideTimer lsls r0, r6, 1 adds r0, r6 lsls r0, 2 @@ -3801,7 +3801,7 @@ _080142B0: cmp r0, 0 beq _08014330 ldr r2, _08014324 @ =gBattleMoves - ldr r0, _08014318 @ =gUnknown_02024BE6 + ldr r0, _08014318 @ =gCurrentMove ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -3811,10 +3811,10 @@ _080142B0: cmp r0, 0 bne _08014330 ldrb r0, [r3] - bl battle_side_get_owner + bl GetBankSide adds r4, r0, 0 ldrb r0, [r5, 0x9] - bl battle_side_get_owner + bl GetBankSide lsls r4, 24 lsls r0, 24 cmp r4, r0 @@ -3827,29 +3827,29 @@ _080142B0: ldrh r0, [r0, 0x28] cmp r0, 0 beq _08014330 - ldr r0, _0801432C @ =gEnemyMonIndex + ldr r0, _0801432C @ =gBankTarget strb r2, [r0] b _080146AC .align 2, 0 -_08014314: .4byte gUnknown_030042E0 -_08014318: .4byte gUnknown_02024BE6 -_0801431C: .4byte gPlayerMonIndex -_08014320: .4byte gUnknown_02024C80 +_08014314: .4byte gBattleResults +_08014318: .4byte gCurrentMove +_0801431C: .4byte gBankAttacker +_08014320: .4byte gSideTimer _08014324: .4byte gBattleMoves _08014328: .4byte gBattleMons -_0801432C: .4byte gEnemyMonIndex +_0801432C: .4byte gBankTarget _08014330: ldr r2, _08014454 @ =gBattleTypeFlags ldrh r1, [r2] movs r0, 0x1 ands r0, r1 - ldr r3, _08014458 @ =gPlayerMonIndex + ldr r3, _08014458 @ =gBankAttacker mov r9, r2 cmp r0, 0 bne _08014342 b _0801461C _08014342: - ldr r1, _0801445C @ =gUnknown_02024C80 + ldr r1, _0801445C @ =gSideTimer lsls r0, r6, 1 adds r0, r6 lsls r0, 2 @@ -3860,7 +3860,7 @@ _08014342: b _08014570 _08014354: ldr r2, _08014460 @ =gBattleMoves - ldr r0, _08014464 @ =gUnknown_02024BE6 + ldr r0, _08014464 @ =gCurrentMove ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -3877,7 +3877,7 @@ _08014370: ldr r3, _08014468 @ =gBattleMons ldr r0, _0801446C @ =0x02000000 mov r8, r0 - ldr r2, _08014458 @ =gPlayerMonIndex + ldr r2, _08014458 @ =gBankAttacker ldrb r5, [r2] ldr r1, _08014470 @ =0x00016010 adds r0, r5, r1 @@ -3899,12 +3899,12 @@ _08014394: b _08014570 _0801439C: adds r0, r5, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r6, r0, 24 - ldr r1, _08014474 @ =gUnknown_02024A60 + ldr r1, _08014474 @ =gActiveBank strb r7, [r1] - ldr r0, _08014478 @ =gUnknown_02024A68 + ldr r0, _08014478 @ =gNoOfAllBanks ldrb r0, [r0] cmp r7, r0 bcs _08014416 @@ -3912,12 +3912,12 @@ _0801439C: mov r5, r8 _080143B6: ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r6, r0 beq _08014404 - ldr r0, _08014458 @ =gPlayerMonIndex + ldr r0, _08014458 @ =gBankAttacker ldrb r0, [r0] ldr r2, _08014470 @ =0x00016010 adds r0, r2 @@ -3951,7 +3951,7 @@ _08014404: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] - ldr r1, _08014478 @ =gUnknown_02024A68 + ldr r1, _08014478 @ =gNoOfAllBanks lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] @@ -3975,9 +3975,9 @@ _0801441E: ands r3, r0 cmp r3, 0 beq _080144A4 - ldr r0, _08014458 @ =gPlayerMonIndex + ldr r0, _08014458 @ =gBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08014484 @@ -3990,15 +3990,15 @@ _0801441E: b _08014496 .align 2, 0 _08014454: .4byte gBattleTypeFlags -_08014458: .4byte gPlayerMonIndex -_0801445C: .4byte gUnknown_02024C80 +_08014458: .4byte gBankAttacker +_0801445C: .4byte gSideTimer _08014460: .4byte gBattleMoves -_08014464: .4byte gUnknown_02024BE6 +_08014464: .4byte gCurrentMove _08014468: .4byte gBattleMons _0801446C: .4byte 0x02000000 _08014470: .4byte 0x00016010 -_08014474: .4byte gUnknown_02024A60 -_08014478: .4byte gUnknown_02024A68 +_08014474: .4byte gActiveBank +_08014478: .4byte gNoOfAllBanks _0801447C: .4byte gUnknown_02024BE8 _08014480: movs r0, 0x3 @@ -4014,16 +4014,16 @@ _08014484: _08014494: movs r0, 0x2 _08014496: - bl battle_get_side_with_given_state - ldr r1, _080144A0 @ =gEnemyMonIndex + bl GetBankByPlayerAI + ldr r1, _080144A0 @ =gBankTarget strb r0, [r1] b _080144B6 .align 2, 0 -_080144A0: .4byte gEnemyMonIndex +_080144A0: .4byte gBankTarget _080144A4: - ldr r2, _080144EC @ =gEnemyMonIndex + ldr r2, _080144EC @ =gBankTarget ldr r1, _080144F0 @ =0x02000000 - ldr r0, _080144F4 @ =gPlayerMonIndex + ldr r0, _080144F4 @ =gBankAttacker ldrb r0, [r0] ldr r4, _080144F8 @ =0x00016010 adds r0, r4 @@ -4031,11 +4031,11 @@ _080144A4: ldrb r0, [r0] strb r0, [r2] _080144B6: - ldr r7, _080144FC @ =gUnknown_02024C0C + ldr r7, _080144FC @ =gAbsentBankFlags ldrb r0, [r7] ldr r1, _08014500 @ =gBitTable mov r8, r1 - ldr r5, _080144EC @ =gEnemyMonIndex + ldr r5, _080144EC @ =gBankTarget ldrb r1, [r5] lsls r1, 2 add r1, r8 @@ -4045,12 +4045,12 @@ _080144B6: bne _080144D0 b _080146AC _080144D0: - ldr r6, _080144F4 @ =gPlayerMonIndex + ldr r6, _080144F4 @ =gBankAttacker ldrb r0, [r6] - bl battle_side_get_owner + bl GetBankSide adds r4, r0, 0 ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide lsls r4, 24 lsls r0, 24 cmp r4, r0 @@ -4058,20 +4058,20 @@ _080144D0: ldrb r0, [r5] b _0801469A .align 2, 0 -_080144EC: .4byte gEnemyMonIndex +_080144EC: .4byte gBankTarget _080144F0: .4byte 0x02000000 -_080144F4: .4byte gPlayerMonIndex +_080144F4: .4byte gBankAttacker _080144F8: .4byte 0x00016010 -_080144FC: .4byte gUnknown_02024C0C +_080144FC: .4byte gAbsentBankFlags _08014500: .4byte gBitTable _08014504: ldrb r0, [r6] - bl battle_get_per_side_status + bl GetBankIdentity movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r0, 24 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI strb r0, [r5] ldrb r1, [r7] ldrb r2, [r5] @@ -4079,8 +4079,8 @@ _08014504: add r0, r8 b _08014690 _08014522: - ldr r4, _0801455C @ =gUnknown_02024A60 - ldr r0, _08014560 @ =gUnknown_02024A7A + ldr r4, _0801455C @ =gActiveBank + ldr r0, _08014560 @ =gTurnOrder ldr r2, [sp] adds r0, r2, r0 ldrb r0, [r0] @@ -4093,7 +4093,7 @@ _08014522: adds r1, 0x20 ldrb r1, [r1] bl sub_81074C4 - ldr r2, _08014568 @ =gUnknown_02024D68 + ldr r2, _08014568 @ =gSpecialStatuses ldrb r1, [r4] lsls r0, r1, 2 adds r0, r1 @@ -4103,16 +4103,16 @@ _08014522: movs r2, 0x2 orrs r1, r2 strb r1, [r0] - ldr r1, _0801456C @ =gEnemyMonIndex + ldr r1, _0801456C @ =gBankTarget ldrb r0, [r4] strb r0, [r1] b _080146AC .align 2, 0 -_0801455C: .4byte gUnknown_02024A60 -_08014560: .4byte gUnknown_02024A7A +_0801455C: .4byte gActiveBank +_08014560: .4byte gTurnOrder _08014564: .4byte gBattleMons -_08014568: .4byte gUnknown_02024D68 -_0801456C: .4byte gEnemyMonIndex +_08014568: .4byte gSpecialStatuses +_0801456C: .4byte gBankTarget _08014570: mov r4, r9 ldrh r1, [r4] @@ -4134,7 +4134,7 @@ _08014570: cmp r0, 0 beq _0801461C ldrb r0, [r3] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080145C0 @@ -4162,13 +4162,13 @@ _080145C0: _080145D0: movs r0, 0x2 _080145D2: - bl battle_get_side_with_given_state - ldr r1, _0801460C @ =gEnemyMonIndex + bl GetBankByPlayerAI + ldr r1, _0801460C @ =gBankTarget strb r0, [r1] - ldr r0, _08014610 @ =gUnknown_02024C0C + ldr r0, _08014610 @ =gAbsentBankFlags ldrb r1, [r0] ldr r2, _08014614 @ =gBitTable - ldr r5, _0801460C @ =gEnemyMonIndex + ldr r5, _0801460C @ =gBankTarget ldrb r0, [r5] lsls r0, 2 adds r0, r2 @@ -4176,12 +4176,12 @@ _080145D2: ands r1, r0 cmp r1, 0 beq _080146AC - ldr r0, _08014618 @ =gPlayerMonIndex + ldr r0, _08014618 @ =gBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide adds r4, r0, 0 ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide lsls r4, 24 lsls r0, 24 cmp r4, r0 @@ -4189,12 +4189,12 @@ _080145D2: ldrb r0, [r5] b _0801469A .align 2, 0 -_0801460C: .4byte gEnemyMonIndex -_08014610: .4byte gUnknown_02024C0C +_0801460C: .4byte gBankTarget +_08014610: .4byte gAbsentBankFlags _08014614: .4byte gBitTable -_08014618: .4byte gPlayerMonIndex +_08014618: .4byte gBankAttacker _0801461C: - ldr r5, _08014660 @ =gEnemyMonIndex + ldr r5, _08014660 @ =gBankTarget ldr r1, _08014664 @ =0x02000000 adds r2, r3, 0 ldrb r0, [r2] @@ -4203,7 +4203,7 @@ _0801461C: adds r0, r1 ldrb r0, [r0] strb r0, [r5] - ldr r6, _0801466C @ =gUnknown_02024C0C + ldr r6, _0801466C @ =gAbsentBankFlags ldrb r1, [r6] ldr r7, _08014670 @ =gBitTable ldrb r0, [r5] @@ -4215,10 +4215,10 @@ _0801461C: beq _080146AC ldrb r0, [r2] str r3, [sp, 0x4] - bl battle_side_get_owner + bl GetBankSide adds r4, r0, 0 ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide lsls r4, 24 lsls r0, 24 ldr r3, [sp, 0x4] @@ -4227,19 +4227,19 @@ _0801461C: ldrb r0, [r5] b _0801469A .align 2, 0 -_08014660: .4byte gEnemyMonIndex +_08014660: .4byte gBankTarget _08014664: .4byte 0x02000000 _08014668: .4byte 0x00016010 -_0801466C: .4byte gUnknown_02024C0C +_0801466C: .4byte gAbsentBankFlags _08014670: .4byte gBitTable _08014674: ldrb r0, [r3] - bl battle_get_per_side_status + bl GetBankIdentity movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r0, 24 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI strb r0, [r5] ldrb r1, [r6] ldrb r2, [r5] @@ -4252,18 +4252,18 @@ _08014690: beq _080146AC adds r0, r2, 0 _0801469A: - bl battle_get_per_side_status + bl GetBankIdentity movs r1, 0x2 eors r0, r1 lsls r0, 24 lsrs r0, 24 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI strb r0, [r5] _080146AC: - ldr r4, _080146E0 @ =gUnknown_02024C10 + ldr r4, _080146E0 @ =gBattlescriptCurrInstr ldr r3, _080146E4 @ =gUnknown_081D6BBC ldr r2, _080146E8 @ =gBattleMoves - ldr r0, _080146EC @ =gUnknown_02024BE6 + ldr r0, _080146EC @ =gCurrentMove ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -4274,7 +4274,7 @@ _080146AC: adds r0, r3 ldr r0, [r0] str r0, [r4] - ldr r1, _080146F0 @ =gUnknown_02024A7F + ldr r1, _080146F0 @ =gFightStateTracker movs r0, 0xA _080146CC: strb r0, [r1] @@ -4287,19 +4287,19 @@ _080146CC: pop {r0} bx r0 .align 2, 0 -_080146E0: .4byte gUnknown_02024C10 +_080146E0: .4byte gBattlescriptCurrInstr _080146E4: .4byte gUnknown_081D6BBC _080146E8: .4byte gBattleMoves -_080146EC: .4byte gUnknown_02024BE6 -_080146F0: .4byte gUnknown_02024A7F +_080146EC: .4byte gCurrentMove +_080146F0: .4byte gFightStateTracker thumb_func_end sub_8013FE8 thumb_func_start sub_80146F4 sub_80146F4: @ 80146F4 push {r4,lr} - ldr r3, _08014764 @ =gPlayerMonIndex - ldr r1, _08014768 @ =gUnknown_02024A7A - ldr r0, _0801476C @ =gUnknown_02024A7E + ldr r3, _08014764 @ =gBankAttacker + ldr r1, _08014768 @ =gTurnOrder + ldr r0, _0801476C @ =gCurrentMoveTurn ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -4309,15 +4309,15 @@ sub_80146F4: @ 80146F4 strh r2, [r0] ldr r0, _08014774 @ =gUnknown_030042A0 strh r2, [r0] - ldr r1, _08014778 @ =gUnknown_02024E60 + ldr r1, _08014778 @ =gActionSelectionCursor ldrb r0, [r3] adds r0, r1 strb r2, [r0] - ldr r1, _0801477C @ =gUnknown_02024E64 + ldr r1, _0801477C @ =gMoveSelectionCursor ldrb r0, [r3] adds r0, r1 strb r2, [r0] - ldr r2, _08014780 @ =gUnknown_030041C0 + ldr r2, _08014780 @ =gBattleTextBuff1 movs r0, 0xFD strb r0, [r2] movs r0, 0x7 @@ -4336,13 +4336,13 @@ sub_80146F4: @ 80146F4 ldr r0, _0801478C @ =0x00016003 adds r1, r0 strb r4, [r1] - ldr r1, _08014790 @ =gUnknown_02024C10 + ldr r1, _08014790 @ =gBattlescriptCurrInstr ldr r0, _08014794 @ =gUnknown_081D8E4E str r0, [r1] - ldr r1, _08014798 @ =gUnknown_02024A7F + ldr r1, _08014798 @ =gFightStateTracker movs r0, 0xA strb r0, [r1] - ldr r1, _0801479C @ =gUnknown_030042E0 + ldr r1, _0801479C @ =gBattleResults ldrb r0, [r1, 0x2] cmp r0, 0xFE bhi _0801475C @@ -4353,21 +4353,21 @@ _0801475C: pop {r0} bx r0 .align 2, 0 -_08014764: .4byte gPlayerMonIndex -_08014768: .4byte gUnknown_02024A7A -_0801476C: .4byte gUnknown_02024A7E +_08014764: .4byte gBankAttacker +_08014768: .4byte gTurnOrder +_0801476C: .4byte gCurrentMoveTurn _08014770: .4byte gUnknown_030042A4 _08014774: .4byte gUnknown_030042A0 -_08014778: .4byte gUnknown_02024E60 -_0801477C: .4byte gUnknown_02024E64 -_08014780: .4byte gUnknown_030041C0 +_08014778: .4byte gActionSelectionCursor +_0801477C: .4byte gMoveSelectionCursor +_08014780: .4byte gBattleTextBuff1 _08014784: .4byte 0x02000000 _08014788: .4byte 0x00016064 _0801478C: .4byte 0x00016003 -_08014790: .4byte gUnknown_02024C10 +_08014790: .4byte gBattlescriptCurrInstr _08014794: .4byte gUnknown_081D8E4E -_08014798: .4byte gUnknown_02024A7F -_0801479C: .4byte gUnknown_030042E0 +_08014798: .4byte gFightStateTracker +_0801479C: .4byte gBattleResults thumb_func_end sub_80146F4 thumb_func_start sub_80147A0 @@ -4377,10 +4377,10 @@ sub_80147A0: @ 80147A0 mov r6, r9 mov r5, r8 push {r5-r7} - ldr r4, _08014804 @ =gPlayerMonIndex - ldr r2, _08014808 @ =gEnemyMonIndex - ldr r1, _0801480C @ =gUnknown_02024A7A - ldr r0, _08014810 @ =gUnknown_02024A7E + ldr r4, _08014804 @ =gBankAttacker + ldr r2, _08014808 @ =gBankTarget + ldr r1, _0801480C @ =gTurnOrder + ldr r0, _08014810 @ =gCurrentMoveTurn ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -4391,15 +4391,15 @@ sub_80147A0: @ 80147A0 strh r2, [r0] ldr r0, _08014818 @ =gUnknown_030042A0 strh r2, [r0] - ldr r3, _0801481C @ =gUnknown_02024CA8 + ldr r3, _0801481C @ =gDisableStructs ldrb r1, [r4] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r3 strb r2, [r0, 0x10] - ldr r5, _08014820 @ =gUnknown_02024C04 - ldr r2, _08014824 @ =gUnknown_02024260 + ldr r5, _08014820 @ =gLastUsedItem + ldr r2, _08014824 @ =gBattleBufferB ldrb r1, [r4] lsls r1, 9 adds r0, r2, 0x1 @@ -4413,7 +4413,7 @@ sub_80147A0: @ 80147A0 strh r3, [r5] cmp r3, 0xC bhi _08014830 - ldr r2, _08014828 @ =gUnknown_02024C10 + ldr r2, _08014828 @ =gBattlescriptCurrInstr ldr r1, _0801482C @ =gUnknown_081D9E48 ldrh r0, [r5] lsls r0, 2 @@ -4422,16 +4422,16 @@ sub_80147A0: @ 80147A0 str r0, [r2] b _08014A8C .align 2, 0 -_08014804: .4byte gPlayerMonIndex -_08014808: .4byte gEnemyMonIndex -_0801480C: .4byte gUnknown_02024A7A -_08014810: .4byte gUnknown_02024A7E +_08014804: .4byte gBankAttacker +_08014808: .4byte gBankTarget +_0801480C: .4byte gTurnOrder +_08014810: .4byte gCurrentMoveTurn _08014814: .4byte gUnknown_030042A4 _08014818: .4byte gUnknown_030042A0 -_0801481C: .4byte gUnknown_02024CA8 -_08014820: .4byte gUnknown_02024C04 -_08014824: .4byte gUnknown_02024260 -_08014828: .4byte gUnknown_02024C10 +_0801481C: .4byte gDisableStructs +_08014820: .4byte gLastUsedItem +_08014824: .4byte gBattleBufferB +_08014828: .4byte gBattlescriptCurrInstr _0801482C: .4byte gUnknown_081D9E48 _08014830: adds r0, r3, 0 @@ -4440,26 +4440,26 @@ _08014830: lsrs r0, 16 cmp r0, 0x1 bhi _0801484C - ldr r0, _08014844 @ =gUnknown_02024C10 + ldr r0, _08014844 @ =gBattlescriptCurrInstr ldr r1, _08014848 @ =gUnknown_081D9E94 b _0801485C .align 2, 0 -_08014844: .4byte gUnknown_02024C10 +_08014844: .4byte gBattlescriptCurrInstr _08014848: .4byte gUnknown_081D9E94 _0801484C: ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0801486C - ldr r0, _08014864 @ =gUnknown_02024C10 + ldr r0, _08014864 @ =gBattlescriptCurrInstr ldr r1, _08014868 @ =gUnknown_081D9E7C _0801485C: ldr r1, [r1] str r1, [r0] b _08014A8C .align 2, 0 -_08014864: .4byte gUnknown_02024C10 +_08014864: .4byte gBattlescriptCurrInstr _08014868: .4byte gUnknown_081D9E7C _0801486C: ldr r2, _080148A0 @ =0x02000000 @@ -4475,7 +4475,7 @@ _0801486C: ldrb r0, [r0] subs r0, 0x1 mov r8, r4 - ldr r3, _080148AC @ =gUnknown_02024C10 + ldr r3, _080148AC @ =gBattlescriptCurrInstr mov r9, r3 ldr r1, _080148B0 @ =gUnknown_081D9E7C mov r10, r1 @@ -4493,7 +4493,7 @@ _08014896: _080148A0: .4byte 0x02000000 _080148A4: .4byte 0x00016003 _080148A8: .4byte 0x000160d8 -_080148AC: .4byte gUnknown_02024C10 +_080148AC: .4byte gBattlescriptCurrInstr _080148B0: .4byte gUnknown_081D9E7C _080148B4: .4byte _080148B8 .align 2, 0 @@ -4504,10 +4504,10 @@ _080148B8: .4byte _08014958 .4byte _08014A30 _080148CC: - ldr r2, _08014904 @ =gUnknown_02024D1E + ldr r2, _08014904 @ =gBattleCommunication movs r0, 0 strb r0, [r2, 0x5] - ldr r1, _08014908 @ =gPlayerMonIndex + ldr r1, _08014908 @ =gBankAttacker ldrb r0, [r1] lsrs r0, 1 ldr r6, _0801490C @ =0x000160da @@ -4521,7 +4521,7 @@ _080148CC: beq _08014918 movs r0, 0x3E ands r0, r3 - ldr r3, _08014910 @ =gUnknown_02024C10 + ldr r3, _08014910 @ =gBattlescriptCurrInstr mov r9, r3 ldr r1, _08014914 @ =gUnknown_081D9E7C mov r10, r1 @@ -4533,13 +4533,13 @@ _080148FC: strb r0, [r2, 0x5] b _08014A74 .align 2, 0 -_08014904: .4byte gUnknown_02024D1E -_08014908: .4byte gPlayerMonIndex +_08014904: .4byte gBattleCommunication +_08014908: .4byte gBankAttacker _0801490C: .4byte 0x000160da -_08014910: .4byte gUnknown_02024C10 +_08014910: .4byte gBattlescriptCurrInstr _08014914: .4byte gUnknown_081D9E7C _08014918: - ldr r3, _08014950 @ =gUnknown_02024C10 + ldr r3, _08014950 @ =gBattlescriptCurrInstr mov r9, r3 ldr r0, _08014954 @ =gUnknown_081D9E7C mov r10, r0 @@ -4568,13 +4568,13 @@ _08014926: beq _08014926 b _08014A74 .align 2, 0 -_08014950: .4byte gUnknown_02024C10 +_08014950: .4byte gBattlescriptCurrInstr _08014954: .4byte gUnknown_081D9E7C _08014958: - ldr r3, _0801498C @ =gUnknown_02024D1E + ldr r3, _0801498C @ =gBattleCommunication movs r0, 0x4 strb r0, [r3, 0x5] - ldr r2, _08014990 @ =gPlayerMonIndex + ldr r2, _08014990 @ =gBankAttacker ldrb r0, [r2] lsrs r0, 1 ldr r1, _08014994 @ =0x000160da @@ -4591,19 +4591,19 @@ _08014958: beq _080149A0 movs r0, 0x5 strb r0, [r3, 0x5] - ldr r2, _08014998 @ =gUnknown_02024C10 + ldr r2, _08014998 @ =gBattlescriptCurrInstr mov r9, r2 ldr r3, _0801499C @ =gUnknown_081D9E7C mov r10, r3 b _08014A74 .align 2, 0 -_0801498C: .4byte gUnknown_02024D1E -_08014990: .4byte gPlayerMonIndex +_0801498C: .4byte gBattleCommunication +_08014990: .4byte gBankAttacker _08014994: .4byte 0x000160da -_08014998: .4byte gUnknown_02024C10 +_08014998: .4byte gBattlescriptCurrInstr _0801499C: .4byte gUnknown_081D9E7C _080149A0: - ldr r3, _08014A18 @ =gUnknown_030041C0 + ldr r3, _08014A18 @ =gBattleTextBuff1 movs r4, 0xFD strb r4, [r3] movs r0, 0x5 @@ -4612,7 +4612,7 @@ _080149A0: strb r2, [r3, 0x2] movs r0, 0xFF strb r0, [r3, 0x3] - ldr r1, _08014A1C @ =gUnknown_03004290 + ldr r1, _08014A1C @ =gBattleTextBuff2 strb r4, [r1] strb r5, [r1, 0x1] movs r0, 0xD2 @@ -4622,7 +4622,7 @@ _080149A0: strb r0, [r1, 0x4] ldrb r0, [r6] ands r2, r0 - ldr r0, _08014A20 @ =gUnknown_02024C10 + ldr r0, _08014A20 @ =gBattlescriptCurrInstr mov r9, r0 ldr r1, _08014A24 @ =gUnknown_081D9E7C mov r10, r1 @@ -4665,9 +4665,9 @@ _08014A02: strb r2, [r0] b _08014A74 .align 2, 0 -_08014A18: .4byte gUnknown_030041C0 -_08014A1C: .4byte gUnknown_03004290 -_08014A20: .4byte gUnknown_02024C10 +_08014A18: .4byte gBattleTextBuff1 +_08014A1C: .4byte gBattleTextBuff2 +_08014A20: .4byte gBattlescriptCurrInstr _08014A24: .4byte gUnknown_081D9E7C _08014A28: .4byte 0x000160a4 _08014A2C: .4byte 0x000160a5 @@ -4678,28 +4678,28 @@ _08014A30: ands r1, r0 cmp r1, 0 beq _08014A64 - ldr r1, _08014A54 @ =gUnknown_02024D1E + ldr r1, _08014A54 @ =gBattleCommunication movs r0, 0x2 strb r0, [r1, 0x5] - ldr r0, _08014A58 @ =gPlayerMonIndex + ldr r0, _08014A58 @ =gBankAttacker mov r8, r0 - ldr r1, _08014A5C @ =gUnknown_02024C10 + ldr r1, _08014A5C @ =gBattlescriptCurrInstr mov r9, r1 ldr r2, _08014A60 @ =gUnknown_081D9E7C mov r10, r2 b _08014A74 .align 2, 0 _08014A50: .4byte gBattleTypeFlags -_08014A54: .4byte gUnknown_02024D1E -_08014A58: .4byte gPlayerMonIndex -_08014A5C: .4byte gUnknown_02024C10 +_08014A54: .4byte gBattleCommunication +_08014A58: .4byte gBankAttacker +_08014A5C: .4byte gBattlescriptCurrInstr _08014A60: .4byte gUnknown_081D9E7C _08014A64: - ldr r0, _08014AA0 @ =gUnknown_02024D1E + ldr r0, _08014AA0 @ =gBattleCommunication strb r1, [r0, 0x5] - ldr r3, _08014AA4 @ =gPlayerMonIndex + ldr r3, _08014AA4 @ =gBankAttacker mov r8, r3 - ldr r0, _08014AA8 @ =gUnknown_02024C10 + ldr r0, _08014AA8 @ =gBattlescriptCurrInstr mov r9, r0 ldr r1, _08014AAC @ =gUnknown_081D9E7C mov r10, r1 @@ -4718,7 +4718,7 @@ _08014A74: str r0, [r1] _08014A8C: movs r0, 0xA - ldr r2, _08014AB4 @ =gUnknown_02024A7F + ldr r2, _08014AB4 @ =gFightStateTracker strb r0, [r2] pop {r3-r5} mov r8, r3 @@ -4728,12 +4728,12 @@ _08014A8C: pop {r0} bx r0 .align 2, 0 -_08014AA0: .4byte gUnknown_02024D1E -_08014AA4: .4byte gPlayerMonIndex -_08014AA8: .4byte gUnknown_02024C10 +_08014AA0: .4byte gBattleCommunication +_08014AA4: .4byte gBankAttacker +_08014AA8: .4byte gBattlescriptCurrInstr _08014AAC: .4byte gUnknown_081D9E7C _08014AB0: .4byte 0x000160d8 -_08014AB4: .4byte gUnknown_02024A7F +_08014AB4: .4byte gFightStateTracker thumb_func_end sub_80147A0 thumb_func_start sub_8014AB8 @@ -4765,18 +4765,18 @@ _08014AE4: lsls r0, 24 lsrs r1, r0, 24 _08014AEE: - ldr r0, _08014B18 @ =gUnknown_02024C0B + ldr r0, _08014B18 @ =gStringBank strb r4, [r0] cmp r1, 0x25 bne _08014B28 - ldr r2, _08014B1C @ =gUnknown_02024C04 + ldr r2, _08014B1C @ =gLastUsedItem ldr r1, _08014B20 @ =gBattleMons movs r0, 0x58 muls r0, r4 adds r0, r1 ldrh r0, [r0, 0x2E] strh r0, [r2] - ldr r0, _08014B24 @ =gUnknown_02024D28 + ldr r0, _08014B24 @ =gProtectStructs lsls r2, r4, 4 adds r2, r0 ldrb r1, [r2, 0x1] @@ -4786,10 +4786,10 @@ _08014AEE: movs r1, 0x8 b _08014B50 .align 2, 0 -_08014B18: .4byte gUnknown_02024C0B -_08014B1C: .4byte gUnknown_02024C04 +_08014B18: .4byte gStringBank +_08014B1C: .4byte gLastUsedItem _08014B20: .4byte gBattleMons -_08014B24: .4byte gUnknown_02024D28 +_08014B24: .4byte gProtectStructs _08014B28: ldr r6, _08014B5C @ =gBattleMons movs r2, 0x58 @@ -4801,9 +4801,9 @@ _08014B28: ldrb r1, [r0] cmp r1, 0x32 bne _08014B68 - ldr r0, _08014B60 @ =byte_2024C06 + ldr r0, _08014B60 @ =gLastUsedAbility strb r1, [r0] - ldr r0, _08014B64 @ =gUnknown_02024D28 + ldr r0, _08014B64 @ =gProtectStructs lsls r2, r4, 4 adds r2, r0 ldrb r1, [r2, 0x1] @@ -4820,8 +4820,8 @@ _08014B50: b _08014BC2 .align 2, 0 _08014B5C: .4byte gBattleMons -_08014B60: .4byte byte_2024C06 -_08014B64: .4byte gUnknown_02024D28 +_08014B60: .4byte gLastUsedAbility +_08014B64: .4byte gProtectStructs _08014B68: ldr r0, _08014BDC @ =gBattleTypeFlags ldrh r1, [r0] @@ -4871,11 +4871,11 @@ _08014BB6: _08014BC2: cmp r5, 0 beq _08014BD4 - ldr r1, _08014BE8 @ =gUnknown_02024A7E - ldr r0, _08014BEC @ =gUnknown_02024A68 + ldr r1, _08014BE8 @ =gCurrentMoveTurn + ldr r0, _08014BEC @ =gNoOfAllBanks ldrb r0, [r0] strb r0, [r1] - ldr r1, _08014BF0 @ =gUnknown_02024D26 + ldr r1, _08014BF0 @ =gBattleOutcome movs r0, 0x4 strb r0, [r1] _08014BD4: @@ -4887,17 +4887,17 @@ _08014BD4: _08014BDC: .4byte gBattleTypeFlags _08014BE0: .4byte 0x02000000 _08014BE4: .4byte 0x00016078 -_08014BE8: .4byte gUnknown_02024A7E -_08014BEC: .4byte gUnknown_02024A68 -_08014BF0: .4byte gUnknown_02024D26 +_08014BE8: .4byte gCurrentMoveTurn +_08014BEC: .4byte gNoOfAllBanks +_08014BF0: .4byte gBattleOutcome thumb_func_end sub_8014AB8 thumb_func_start sub_8014BF4 sub_8014BF4: @ 8014BF4 push {r4-r6,lr} - ldr r4, _08014C44 @ =gPlayerMonIndex - ldr r1, _08014C48 @ =gUnknown_02024A7A - ldr r5, _08014C4C @ =gUnknown_02024A7E + ldr r4, _08014C44 @ =gBankAttacker + ldr r1, _08014C48 @ =gTurnOrder + ldr r5, _08014C4C @ =gCurrentMoveTurn ldrb r0, [r5] adds r0, r1 ldrb r0, [r0] @@ -4908,21 +4908,21 @@ sub_8014BF4: @ 8014BF4 ands r0, r1 cmp r0, 0 beq _08014C9C - ldr r0, _08014C54 @ =gUnknown_02024A68 + ldr r0, _08014C54 @ =gNoOfAllBanks ldrb r1, [r0] strb r1, [r5] - ldr r2, _08014C58 @ =gUnknown_02024A60 + ldr r2, _08014C58 @ =gActiveBank movs r0, 0 strb r0, [r2] lsls r1, 24 cmp r1, 0 beq _08014C88 adds r4, r2, 0 - ldr r6, _08014C5C @ =gUnknown_02024C18 - ldr r5, _08014C60 @ =gUnknown_02024D26 + ldr r6, _08014C5C @ =gActionForBanks + ldr r5, _08014C60 @ =gBattleOutcome _08014C28: ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08014C64 @@ -4935,14 +4935,14 @@ _08014C28: movs r1, 0x2 b _08014C72 .align 2, 0 -_08014C44: .4byte gPlayerMonIndex -_08014C48: .4byte gUnknown_02024A7A -_08014C4C: .4byte gUnknown_02024A7E +_08014C44: .4byte gBankAttacker +_08014C48: .4byte gTurnOrder +_08014C4C: .4byte gCurrentMoveTurn _08014C50: .4byte gBattleTypeFlags -_08014C54: .4byte gUnknown_02024A68 -_08014C58: .4byte gUnknown_02024A60 -_08014C5C: .4byte gUnknown_02024C18 -_08014C60: .4byte gUnknown_02024D26 +_08014C54: .4byte gNoOfAllBanks +_08014C58: .4byte gActiveBank +_08014C5C: .4byte gActionForBanks +_08014C60: .4byte gBattleOutcome _08014C64: ldrb r0, [r4] adds r0, r6 @@ -4958,25 +4958,25 @@ _08014C76: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] - ldr r1, _08014C94 @ =gUnknown_02024A68 + ldr r1, _08014C94 @ =gNoOfAllBanks lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bcc _08014C28 _08014C88: - ldr r0, _08014C98 @ =gUnknown_02024D26 + ldr r0, _08014C98 @ =gBattleOutcome ldrb r1, [r0] movs r2, 0x80 orrs r1, r2 strb r1, [r0] b _08014D40 .align 2, 0 -_08014C94: .4byte gUnknown_02024A68 -_08014C98: .4byte gUnknown_02024D26 +_08014C94: .4byte gNoOfAllBanks +_08014C98: .4byte gBattleOutcome _08014C9C: ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08014CF4 @@ -4995,22 +4995,22 @@ _08014C9C: ldr r1, _08014CE0 @ =0xfdffffff ands r0, r1 str r0, [r2] - ldr r1, _08014CE4 @ =gUnknown_02024D1E + ldr r1, _08014CE4 @ =gBattleCommunication movs r0, 0x3 strb r0, [r1, 0x5] - ldr r1, _08014CE8 @ =gUnknown_02024C10 + ldr r1, _08014CE8 @ =gBattlescriptCurrInstr ldr r0, _08014CEC @ =gUnknown_081D8E3B str r0, [r1] - ldr r1, _08014CF0 @ =gUnknown_02024A7F + ldr r1, _08014CF0 @ =gFightStateTracker movs r0, 0xA b _08014D3E .align 2, 0 _08014CDC: .4byte gBattleMons _08014CE0: .4byte 0xfdffffff -_08014CE4: .4byte gUnknown_02024D1E -_08014CE8: .4byte gUnknown_02024C10 +_08014CE4: .4byte gBattleCommunication +_08014CE8: .4byte gBattlescriptCurrInstr _08014CEC: .4byte gUnknown_081D8E3B -_08014CF0: .4byte gUnknown_02024A7F +_08014CF0: .4byte gFightStateTracker _08014CF4: ldr r1, _08014D1C @ =gBattleMons ldrb r2, [r4] @@ -5023,27 +5023,27 @@ _08014CF4: ands r0, r1 cmp r0, 0 beq _08014D34 - ldr r1, _08014D24 @ =gUnknown_02024D1E + ldr r1, _08014D24 @ =gBattleCommunication movs r0, 0x4 strb r0, [r1, 0x5] - ldr r1, _08014D28 @ =gUnknown_02024C10 + ldr r1, _08014D28 @ =gBattlescriptCurrInstr ldr r0, _08014D2C @ =gUnknown_081D8E3B str r0, [r1] - ldr r1, _08014D30 @ =gUnknown_02024A7F + ldr r1, _08014D30 @ =gFightStateTracker movs r0, 0xA b _08014D3E .align 2, 0 _08014D1C: .4byte gBattleMons _08014D20: .4byte 0x0400e000 -_08014D24: .4byte gUnknown_02024D1E -_08014D28: .4byte gUnknown_02024C10 +_08014D24: .4byte gBattleCommunication +_08014D28: .4byte gBattlescriptCurrInstr _08014D2C: .4byte gUnknown_081D8E3B -_08014D30: .4byte gUnknown_02024A7F +_08014D30: .4byte gFightStateTracker _08014D34: - ldr r0, _08014D48 @ =gUnknown_02024A68 + ldr r0, _08014D48 @ =gNoOfAllBanks ldrb r0, [r0] strb r0, [r5] - ldr r1, _08014D4C @ =gUnknown_02024D26 + ldr r1, _08014D4C @ =gBattleOutcome movs r0, 0x6 _08014D3E: strb r0, [r1] @@ -5052,15 +5052,15 @@ _08014D40: pop {r0} bx r0 .align 2, 0 -_08014D48: .4byte gUnknown_02024A68 -_08014D4C: .4byte gUnknown_02024D26 +_08014D48: .4byte gNoOfAllBanks +_08014D4C: .4byte gBattleOutcome thumb_func_end sub_8014BF4 thumb_func_start sub_8014D50 sub_8014D50: @ 8014D50 - ldr r2, _08014D78 @ =gPlayerMonIndex - ldr r1, _08014D7C @ =gUnknown_02024A7A - ldr r0, _08014D80 @ =gUnknown_02024A7E + ldr r2, _08014D78 @ =gBankAttacker + ldr r1, _08014D7C @ =gTurnOrder + ldr r0, _08014D80 @ =gCurrentMoveTurn ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -5070,30 +5070,30 @@ sub_8014D50: @ 8014D50 strh r1, [r0] ldr r0, _08014D88 @ =gUnknown_030042A0 strh r1, [r0] - ldr r1, _08014D8C @ =gUnknown_02024C10 + ldr r1, _08014D8C @ =gBattlescriptCurrInstr ldr r0, _08014D90 @ =gUnknown_081D9E98 ldr r0, [r0] str r0, [r1] - ldr r1, _08014D94 @ =gUnknown_02024A7F + ldr r1, _08014D94 @ =gFightStateTracker movs r0, 0xA strb r0, [r1] bx lr .align 2, 0 -_08014D78: .4byte gPlayerMonIndex -_08014D7C: .4byte gUnknown_02024A7A -_08014D80: .4byte gUnknown_02024A7E +_08014D78: .4byte gBankAttacker +_08014D7C: .4byte gTurnOrder +_08014D80: .4byte gCurrentMoveTurn _08014D84: .4byte gUnknown_030042A4 _08014D88: .4byte gUnknown_030042A0 -_08014D8C: .4byte gUnknown_02024C10 +_08014D8C: .4byte gBattlescriptCurrInstr _08014D90: .4byte gUnknown_081D9E98 -_08014D94: .4byte gUnknown_02024A7F +_08014D94: .4byte gFightStateTracker thumb_func_end sub_8014D50 thumb_func_start sub_8014D98 sub_8014D98: @ 8014D98 - ldr r2, _08014DD0 @ =gPlayerMonIndex - ldr r1, _08014DD4 @ =gUnknown_02024A7A - ldr r0, _08014DD8 @ =gUnknown_02024A7E + ldr r2, _08014DD0 @ =gBankAttacker + ldr r1, _08014DD4 @ =gTurnOrder + ldr r0, _08014DD8 @ =gCurrentMoveTurn ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -5107,36 +5107,36 @@ sub_8014D98: @ 8014D98 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] - ldr r1, _08014DE8 @ =gUnknown_02024C04 + ldr r1, _08014DE8 @ =gLastUsedItem movs r0, 0x5 strh r0, [r1] - ldr r1, _08014DEC @ =gUnknown_02024C10 + ldr r1, _08014DEC @ =gBattlescriptCurrInstr ldr r0, _08014DF0 @ =gUnknown_081D9E48 ldr r0, [r0, 0x14] str r0, [r1] - ldr r1, _08014DF4 @ =gUnknown_02024A7F + ldr r1, _08014DF4 @ =gFightStateTracker movs r0, 0xA strb r0, [r1] bx lr .align 2, 0 -_08014DD0: .4byte gPlayerMonIndex -_08014DD4: .4byte gUnknown_02024A7A -_08014DD8: .4byte gUnknown_02024A7E +_08014DD0: .4byte gBankAttacker +_08014DD4: .4byte gTurnOrder +_08014DD8: .4byte gCurrentMoveTurn _08014DDC: .4byte gUnknown_030042A4 _08014DE0: .4byte gUnknown_030042A0 _08014DE4: .4byte gNumSafariBalls -_08014DE8: .4byte gUnknown_02024C04 -_08014DEC: .4byte gUnknown_02024C10 +_08014DE8: .4byte gLastUsedItem +_08014DEC: .4byte gBattlescriptCurrInstr _08014DF0: .4byte gUnknown_081D9E48 -_08014DF4: .4byte gUnknown_02024A7F +_08014DF4: .4byte gFightStateTracker thumb_func_end sub_8014D98 thumb_func_start sub_8014DF8 sub_8014DF8: @ 8014DF8 push {r4-r6,lr} - ldr r3, _08014E68 @ =gPlayerMonIndex - ldr r1, _08014E6C @ =gUnknown_02024A7A - ldr r0, _08014E70 @ =gUnknown_02024A7E + ldr r3, _08014E68 @ =gBankAttacker + ldr r1, _08014E6C @ =gTurnOrder + ldr r0, _08014E70 @ =gCurrentMoveTurn ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -5146,8 +5146,8 @@ sub_8014DF8: @ 8014DF8 strh r1, [r0] ldr r0, _08014E78 @ =gUnknown_030042A0 strh r1, [r0] - ldr r6, _08014E7C @ =gUnknown_02024D1E - ldr r2, _08014E80 @ =gUnknown_02024260 + ldr r6, _08014E7C @ =gBattleCommunication + ldr r2, _08014E80 @ =gBattleBufferB ldrb r0, [r3] lsls r0, 9 adds r1, r2, 0x1 @@ -5155,7 +5155,7 @@ sub_8014DF8: @ 8014DF8 ldrb r0, [r0] subs r0, 0x1 strb r0, [r6, 0x5] - ldr r1, _08014E84 @ =gUnknown_02024C04 + ldr r1, _08014E84 @ =gLastUsedItem ldrb r0, [r3] lsls r0, 9 adds r2, 0x2 @@ -5190,14 +5190,14 @@ _08014E42: movs r0, 0x1 b _08014E9A .align 2, 0 -_08014E68: .4byte gPlayerMonIndex -_08014E6C: .4byte gUnknown_02024A7A -_08014E70: .4byte gUnknown_02024A7E +_08014E68: .4byte gBankAttacker +_08014E6C: .4byte gTurnOrder +_08014E70: .4byte gCurrentMoveTurn _08014E74: .4byte gUnknown_030042A4 _08014E78: .4byte gUnknown_030042A0 -_08014E7C: .4byte gUnknown_02024D1E -_08014E80: .4byte gUnknown_02024260 -_08014E84: .4byte gUnknown_02024C04 +_08014E7C: .4byte gBattleCommunication +_08014E80: .4byte gBattleBufferB +_08014E84: .4byte gLastUsedItem _08014E88: .4byte 0x02000000 _08014E8C: .4byte 0x00016087 _08014E90: .4byte 0x00016088 @@ -5207,28 +5207,28 @@ _08014E98: _08014E9A: strb r0, [r4] _08014E9C: - ldr r1, _08014EB0 @ =gUnknown_02024C10 + ldr r1, _08014EB0 @ =gBattlescriptCurrInstr ldr r0, _08014EB4 @ =gUnknown_081D9E98 ldr r0, [r0, 0x8] str r0, [r1] - ldr r1, _08014EB8 @ =gUnknown_02024A7F + ldr r1, _08014EB8 @ =gFightStateTracker movs r0, 0xA strb r0, [r1] pop {r4-r6} pop {r0} bx r0 .align 2, 0 -_08014EB0: .4byte gUnknown_02024C10 +_08014EB0: .4byte gBattlescriptCurrInstr _08014EB4: .4byte gUnknown_081D9E98 -_08014EB8: .4byte gUnknown_02024A7F +_08014EB8: .4byte gFightStateTracker thumb_func_end sub_8014DF8 thumb_func_start sub_8014EBC sub_8014EBC: @ 8014EBC push {r4,r5,lr} - ldr r2, _08014F28 @ =gPlayerMonIndex - ldr r1, _08014F2C @ =gUnknown_02024A7A - ldr r0, _08014F30 @ =gUnknown_02024A7E + ldr r2, _08014F28 @ =gBankAttacker + ldr r1, _08014F2C @ =gTurnOrder + ldr r0, _08014F30 @ =gCurrentMoveTurn ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -5278,13 +5278,13 @@ _08014F18: bhi _08014F54 adds r0, 0x1 strb r0, [r4] - ldr r0, _08014F50 @ =gUnknown_02024D1E + ldr r0, _08014F50 @ =gBattleCommunication strb r5, [r0, 0x5] b _08014F5A .align 2, 0 -_08014F28: .4byte gPlayerMonIndex -_08014F2C: .4byte gUnknown_02024A7A -_08014F30: .4byte gUnknown_02024A7E +_08014F28: .4byte gBankAttacker +_08014F2C: .4byte gTurnOrder +_08014F30: .4byte gCurrentMoveTurn _08014F34: .4byte gUnknown_030042A4 _08014F38: .4byte gUnknown_030042A0 _08014F3C: .4byte 0x02000000 @@ -5292,63 +5292,63 @@ _08014F40: .4byte 0x00016089 _08014F44: .4byte gUnknown_081FA71B _08014F48: .4byte 0x00016088 _08014F4C: .4byte gUnknown_081FA71F -_08014F50: .4byte gUnknown_02024D1E +_08014F50: .4byte gBattleCommunication _08014F54: - ldr r1, _08014F70 @ =gUnknown_02024D1E + ldr r1, _08014F70 @ =gBattleCommunication movs r0, 0x1 strb r0, [r1, 0x5] _08014F5A: - ldr r1, _08014F74 @ =gUnknown_02024C10 + ldr r1, _08014F74 @ =gBattlescriptCurrInstr ldr r0, _08014F78 @ =gUnknown_081D9E98 ldr r0, [r0, 0x4] str r0, [r1] - ldr r1, _08014F7C @ =gUnknown_02024A7F + ldr r1, _08014F7C @ =gFightStateTracker movs r0, 0xA strb r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 -_08014F70: .4byte gUnknown_02024D1E -_08014F74: .4byte gUnknown_02024C10 +_08014F70: .4byte gBattleCommunication +_08014F74: .4byte gBattlescriptCurrInstr _08014F78: .4byte gUnknown_081D9E98 -_08014F7C: .4byte gUnknown_02024A7F +_08014F7C: .4byte gFightStateTracker thumb_func_end sub_8014EBC thumb_func_start bs8_exit_by_flight bs8_exit_by_flight: @ 8014F80 push {r4,lr} - ldr r2, _08014FA8 @ =gPlayerMonIndex - ldr r1, _08014FAC @ =gUnknown_02024A7A - ldr r4, _08014FB0 @ =gUnknown_02024A7E + ldr r2, _08014FA8 @ =gBankAttacker + ldr r1, _08014FAC @ =gTurnOrder + ldr r4, _08014FB0 @ =gCurrentMoveTurn ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] strb r0, [r2] movs r0, 0x11 bl PlaySE - ldr r0, _08014FB4 @ =gUnknown_02024A68 + ldr r0, _08014FB4 @ =gNoOfAllBanks ldrb r0, [r0] strb r0, [r4] - ldr r1, _08014FB8 @ =gUnknown_02024D26 + ldr r1, _08014FB8 @ =gBattleOutcome movs r0, 0x4 strb r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 -_08014FA8: .4byte gPlayerMonIndex -_08014FAC: .4byte gUnknown_02024A7A -_08014FB0: .4byte gUnknown_02024A7E -_08014FB4: .4byte gUnknown_02024A68 -_08014FB8: .4byte gUnknown_02024D26 +_08014FA8: .4byte gBankAttacker +_08014FAC: .4byte gTurnOrder +_08014FB0: .4byte gCurrentMoveTurn +_08014FB4: .4byte gNoOfAllBanks +_08014FB8: .4byte gBattleOutcome thumb_func_end bs8_exit_by_flight thumb_func_start sub_8014FBC sub_8014FBC: @ 8014FBC - ldr r3, _08015008 @ =gPlayerMonIndex - ldr r1, _0801500C @ =gUnknown_02024A7A - ldr r0, _08015010 @ =gUnknown_02024A7E + ldr r3, _08015008 @ =gBankAttacker + ldr r1, _0801500C @ =gTurnOrder + ldr r0, _08015010 @ =gCurrentMoveTurn ldrb r0, [r0] adds r0, r1 ldrb r2, [r0] @@ -5358,13 +5358,13 @@ sub_8014FBC: @ 8014FBC strh r1, [r0] ldr r0, _08015018 @ =gUnknown_030042A0 strh r1, [r0] - ldr r1, _0801501C @ =gUnknown_030041C0 + ldr r1, _0801501C @ =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x7 strb r0, [r1, 0x1] strb r2, [r1, 0x2] - ldr r2, _08015020 @ =gUnknown_02024A6A + ldr r2, _08015020 @ =gBattlePartyID ldrb r0, [r3] lsls r0, 1 adds r0, r2 @@ -5372,11 +5372,11 @@ sub_8014FBC: @ 8014FBC strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] - ldr r1, _08015024 @ =gUnknown_02024C10 + ldr r1, _08015024 @ =gBattlescriptCurrInstr ldr r0, _08015028 @ =gUnknown_081D9E98 ldr r0, [r0, 0xC] str r0, [r1] - ldr r1, _0801502C @ =gUnknown_02024A7F + ldr r1, _0801502C @ =gFightStateTracker movs r0, 0xA strb r0, [r1] ldr r1, _08015030 @ =gUnknown_02024A76 @@ -5384,16 +5384,16 @@ sub_8014FBC: @ 8014FBC strb r0, [r1, 0x1] bx lr .align 2, 0 -_08015008: .4byte gPlayerMonIndex -_0801500C: .4byte gUnknown_02024A7A -_08015010: .4byte gUnknown_02024A7E +_08015008: .4byte gBankAttacker +_0801500C: .4byte gTurnOrder +_08015010: .4byte gCurrentMoveTurn _08015014: .4byte gUnknown_030042A4 _08015018: .4byte gUnknown_030042A0 -_0801501C: .4byte gUnknown_030041C0 -_08015020: .4byte gUnknown_02024A6A -_08015024: .4byte gUnknown_02024C10 +_0801501C: .4byte gBattleTextBuff1 +_08015020: .4byte gBattlePartyID +_08015024: .4byte gBattlescriptCurrInstr _08015028: .4byte gUnknown_081D9E98 -_0801502C: .4byte gUnknown_02024A7F +_0801502C: .4byte gFightStateTracker _08015030: .4byte gUnknown_02024A76 thumb_func_end sub_8014FBC @@ -5409,7 +5409,7 @@ bsB_exit_by_move: @ 8015034 ldr r2, _08015058 @ =0x00016059 adds r0, r2 strb r1, [r0] - ldr r1, _0801505C @ =gUnknown_02024A7F + ldr r1, _0801505C @ =gFightStateTracker movs r0, 0xC strb r0, [r1] _08015050: @@ -5418,50 +5418,50 @@ _08015050: .align 2, 0 _08015054: .4byte 0x02000000 _08015058: .4byte 0x00016059 -_0801505C: .4byte gUnknown_02024A7F +_0801505C: .4byte gFightStateTracker thumb_func_end bsB_exit_by_move thumb_func_start sub_8015060 sub_8015060: @ 8015060 - ldr r1, _08015080 @ =gUnknown_02024A7E + ldr r1, _08015080 @ =gCurrentMoveTurn ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] - ldr r3, _08015084 @ =gUnknown_02024A7F + ldr r3, _08015084 @ =gFightStateTracker ldr r2, _08015088 @ =gUnknown_02024A76 ldrb r0, [r1] adds r0, r2 ldrb r0, [r0] strb r0, [r3] - ldr r2, _0801508C @ =gUnknown_02024C6C + ldr r2, _0801508C @ =gHitMarker ldr r0, [r2] ldr r1, _08015090 @ =0xf1e892af ands r0, r1 str r0, [r2] bx lr .align 2, 0 -_08015080: .4byte gUnknown_02024A7E -_08015084: .4byte gUnknown_02024A7F +_08015080: .4byte gCurrentMoveTurn +_08015084: .4byte gFightStateTracker _08015088: .4byte gUnknown_02024A76 -_0801508C: .4byte gUnknown_02024C6C +_0801508C: .4byte gHitMarker _08015090: .4byte 0xf1e892af thumb_func_end sub_8015060 thumb_func_start bsC_8016D70 bsC_8016D70: @ 8015094 push {r4,r5,lr} - ldr r1, _0801510C @ =gUnknown_02024A7E + ldr r1, _0801510C @ =gCurrentMoveTurn ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] - ldr r3, _08015110 @ =gUnknown_02024A7F + ldr r3, _08015110 @ =gFightStateTracker ldr r2, _08015114 @ =gUnknown_02024A76 ldrb r0, [r1] adds r0, r2 ldrb r0, [r0] strb r0, [r3] - bl sub_801377C - ldr r2, _08015118 @ =gUnknown_02024C6C + bl SpecialStatusesClear + ldr r2, _08015118 @ =gHitMarker ldr r0, [r2] ldr r1, _0801511C @ =0xf1e892af ands r0, r1 @@ -5476,8 +5476,8 @@ bsC_8016D70: @ 8015094 ldr r3, _0801512C @ =0x000160a1 adds r0, r1, r3 strb r4, [r0] - ldr r2, _08015130 @ =gUnknown_02024C3C - ldr r5, _08015134 @ =gPlayerMonIndex + ldr r2, _08015130 @ =gMoveHitWith + ldr r5, _08015134 @ =gBankAttacker ldrb r0, [r5] lsls r0, 1 adds r0, r2 @@ -5491,12 +5491,12 @@ bsC_8016D70: @ 8015094 ldr r3, _0801513C @ =0x0001601c adds r0, r1, r3 strb r2, [r0] - ldr r0, _08015140 @ =gUnknown_02024DEC + ldr r0, _08015140 @ =gDynamicBasePower strh r4, [r0] subs r3, 0x10 adds r0, r1, r3 strb r2, [r0] - ldr r0, _08015144 @ =gUnknown_02024D1E + ldr r0, _08015144 @ =gBattleCommunication strb r2, [r0, 0x3] strb r2, [r0, 0x4] ldr r3, _08015148 @ =0x00016112 @@ -5509,21 +5509,21 @@ bsC_8016D70: @ 8015094 pop {r0} bx r0 .align 2, 0 -_0801510C: .4byte gUnknown_02024A7E -_08015110: .4byte gUnknown_02024A7F +_0801510C: .4byte gCurrentMoveTurn +_08015110: .4byte gFightStateTracker _08015114: .4byte gUnknown_02024A76 -_08015118: .4byte gUnknown_02024C6C +_08015118: .4byte gHitMarker _0801511C: .4byte 0xf1e892af _08015120: .4byte gBattleMoveDamage _08015124: .4byte 0x02000000 _08015128: .4byte 0x00016002 _0801512C: .4byte 0x000160a1 -_08015130: .4byte gUnknown_02024C3C -_08015134: .4byte gPlayerMonIndex +_08015130: .4byte gMoveHitWith +_08015134: .4byte gBankAttacker _08015138: .4byte gUnknown_02024C44 _0801513C: .4byte 0x0001601c -_08015140: .4byte gUnknown_02024DEC -_08015144: .4byte gUnknown_02024D1E +_08015140: .4byte gDynamicBasePower +_08015144: .4byte gBattleCommunication _08015148: .4byte 0x00016112 _0801514C: .4byte 0x00017130 thumb_func_end bsC_8016D70 @@ -5557,20 +5557,20 @@ _0801516C: .4byte _080151C8 .4byte _080151B4 _08015198: - ldr r0, _0801519C @ =gEnemyMonIndex + ldr r0, _0801519C @ =gBankTarget b _080151C6 .align 2, 0 -_0801519C: .4byte gEnemyMonIndex +_0801519C: .4byte gBankTarget _080151A0: - ldr r0, _080151A4 @ =gPlayerMonIndex + ldr r0, _080151A4 @ =gBankAttacker b _080151C6 .align 2, 0 -_080151A4: .4byte gPlayerMonIndex +_080151A4: .4byte gBankAttacker _080151A8: - ldr r0, _080151AC @ =gUnknown_02024C0A + ldr r0, _080151AC @ =gEffectBank b _080151C6 .align 2, 0 -_080151AC: .4byte gUnknown_02024C0A +_080151AC: .4byte gEffectBank _080151B0: movs r2, 0 b _080151C8 @@ -5583,7 +5583,7 @@ _080151B4: _080151BC: .4byte 0x02000000 _080151C0: .4byte 0x00016003 _080151C4: - ldr r0, _080151D0 @ =gUnknown_02024C09 + ldr r0, _080151D0 @ =gBank1 _080151C6: ldrb r2, [r0] _080151C8: @@ -5591,7 +5591,7 @@ _080151C8: pop {r1} bx r1 .align 2, 0 -_080151D0: .4byte gUnknown_02024C09 +_080151D0: .4byte gBank1 thumb_func_end sub_8015150 thumb_func_start sub_80151D4 @@ -5655,7 +5655,7 @@ _08015232: ands r0, r1 cmp r0, 0 bne _08015286 - ldr r1, _08015290 @ =gUnknown_02024CA8 + ldr r1, _08015290 @ =gDisableStructs lsls r0, r5, 3 subs r0, r5 lsls r0, 2 @@ -5669,7 +5669,7 @@ _08015232: ands r1, r0 cmp r1, 0 bne _08015286 - ldr r4, _08015298 @ =gUnknown_02024A60 + ldr r4, _08015298 @ =gActiveBank strb r5, [r4] adds r1, r3, 0 adds r1, 0x9 @@ -5683,18 +5683,18 @@ _08015232: movs r0, 0 movs r2, 0 movs r3, 0x1 - bl dp01_build_cmdbuf_x02_a_b_varargs + bl EmitSetAttributes ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution _08015286: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 -_08015290: .4byte gUnknown_02024CA8 +_08015290: .4byte gDisableStructs _08015294: .4byte gBitTable -_08015298: .4byte gUnknown_02024A60 +_08015298: .4byte gActiveBank thumb_func_end sub_80151D4 thumb_func_start sub_801529C @@ -5710,12 +5710,12 @@ sub_801529C: @ 801529C movs r0, 0x4 mov r8, r0 adds r0, r5, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 mov r9, r0 movs r4, 0 - ldr r0, _080153BC @ =gUnknown_02024A68 + ldr r0, _080153BC @ =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 bge _08015344 @@ -5728,7 +5728,7 @@ sub_801529C: @ 801529C _080152D2: lsls r0, r4, 24 lsrs r0, 24 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 adds r6, r4, 0x1 @@ -5781,7 +5781,7 @@ _08015322: strb r0, [r1] _0801533A: adds r4, r6, 0 - ldr r0, _080153BC @ =gUnknown_02024A68 + ldr r0, _080153BC @ =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 blt _080152D2 @@ -5802,7 +5802,7 @@ _08015344: ands r0, r1 cmp r0, 0 bne _080153AC - ldr r1, _080153C4 @ =gUnknown_02024CA8 + ldr r1, _080153C4 @ =gDisableStructs lsls r0, r5, 3 subs r0, r5 lsls r0, 2 @@ -5817,7 +5817,7 @@ _08015344: ands r1, r0 cmp r1, 0 bne _080153AC - ldr r4, _080153CC @ =gUnknown_02024A60 + ldr r4, _080153CC @ =gActiveBank strb r5, [r4] mov r1, r8 adds r1, 0x9 @@ -5833,9 +5833,9 @@ _08015344: movs r0, 0 movs r2, 0 movs r3, 0x1 - bl dp01_build_cmdbuf_x02_a_b_varargs + bl EmitSetAttributes ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution _080153AC: add sp, 0x4 pop {r3-r5} @@ -5846,11 +5846,11 @@ _080153AC: pop {r0} bx r0 .align 2, 0 -_080153BC: .4byte gUnknown_02024A68 +_080153BC: .4byte gNoOfAllBanks _080153C0: .4byte gBattleMons -_080153C4: .4byte gUnknown_02024CA8 +_080153C4: .4byte gDisableStructs _080153C8: .4byte gBitTable -_080153CC: .4byte gUnknown_02024A60 +_080153CC: .4byte gActiveBank thumb_func_end sub_801529C thumb_func_start sub_80153D0 @@ -5865,7 +5865,7 @@ sub_80153D0: @ 80153D0 lsrs r3, r0, 24 movs r6, 0x4 movs r1, 0 - ldr r0, _080154C8 @ =gUnknown_02024A68 + ldr r0, _080154C8 @ =gNoOfAllBanks mov r8, r0 ldrb r0, [r0] cmp r1, r0 @@ -5940,7 +5940,7 @@ _08015452: ands r0, r1 cmp r0, 0 bne _080154B6 - ldr r1, _080154D8 @ =gUnknown_02024CA8 + ldr r1, _080154D8 @ =gDisableStructs lsls r0, r3, 3 subs r0, r3 lsls r0, 2 @@ -5954,7 +5954,7 @@ _08015452: ands r1, r0 cmp r1, 0 bne _080154B6 - ldr r4, _080154E0 @ =gUnknown_02024A60 + ldr r4, _080154E0 @ =gActiveBank strb r3, [r4] adds r1, r6, 0 adds r1, 0x9 @@ -5970,9 +5970,9 @@ _08015452: movs r0, 0 movs r2, 0 movs r3, 0x1 - bl dp01_build_cmdbuf_x02_a_b_varargs + bl EmitSetAttributes ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution _080154B6: add sp, 0x4 pop {r3-r5} @@ -5983,13 +5983,13 @@ _080154B6: pop {r0} bx r0 .align 2, 0 -_080154C8: .4byte gUnknown_02024A68 +_080154C8: .4byte gNoOfAllBanks _080154CC: .4byte gBattleMons _080154D0: .4byte gUnknown_02024A8C _080154D4: .4byte gUnknown_02024AA4 -_080154D8: .4byte gUnknown_02024CA8 +_080154D8: .4byte gDisableStructs _080154DC: .4byte gBitTable -_080154E0: .4byte gUnknown_02024A60 +_080154E0: .4byte gActiveBank thumb_func_end sub_80153D0 thumb_func_start unref_sub_80154E4 @@ -6002,11 +6002,11 @@ unref_sub_80154E4: @ 80154E4 cmp r0, 0 beq _08015524 movs r2, 0 - ldr r4, _08015518 @ =gUnknown_02024A68 + ldr r4, _08015518 @ =gNoOfAllBanks ldrb r0, [r4] cmp r2, r0 bge _08015542 - ldr r3, _0801551C @ =gUnknown_02024A64 + ldr r3, _0801551C @ =gBattleExecBuffer ldr r5, _08015520 @ =gBitTable _08015500: ldm r5!, {r1} @@ -6021,16 +6021,16 @@ _08015500: b _08015542 .align 2, 0 _08015514: .4byte gBattleTypeFlags -_08015518: .4byte gUnknown_02024A68 -_0801551C: .4byte gUnknown_02024A64 +_08015518: .4byte gNoOfAllBanks +_0801551C: .4byte gBattleExecBuffer _08015520: .4byte gBitTable _08015524: movs r2, 0 - ldr r4, _08015548 @ =gUnknown_02024A68 + ldr r4, _08015548 @ =gNoOfAllBanks ldrb r0, [r4] cmp r2, r0 bge _08015542 - ldr r3, _0801554C @ =gUnknown_02024A64 + ldr r3, _0801554C @ =gBattleExecBuffer ldr r5, _08015550 @ =gBitTable _08015532: ldr r0, [r3] @@ -6046,13 +6046,13 @@ _08015542: pop {r0} bx r0 .align 2, 0 -_08015548: .4byte gUnknown_02024A68 -_0801554C: .4byte gUnknown_02024A64 +_08015548: .4byte gNoOfAllBanks +_0801554C: .4byte gBattleExecBuffer _08015550: .4byte gBitTable thumb_func_end unref_sub_80154E4 - thumb_func_start dp01_battle_side_mark_buffer_for_execution -dp01_battle_side_mark_buffer_for_execution: @ 8015554 + thumb_func_start MarkBufferBankForExecution +MarkBufferBankForExecution: @ 8015554 push {lr} lsls r0, 24 lsrs r3, r0, 24 @@ -6062,7 +6062,7 @@ dp01_battle_side_mark_buffer_for_execution: @ 8015554 ands r0, r1 cmp r0, 0 beq _08015588 - ldr r2, _08015580 @ =gUnknown_02024A64 + ldr r2, _08015580 @ =gBattleExecBuffer ldr r1, _08015584 @ =gBitTable lsls r0, r3, 2 adds r0, r1 @@ -6074,10 +6074,10 @@ dp01_battle_side_mark_buffer_for_execution: @ 8015554 b _08015598 .align 2, 0 _0801557C: .4byte gBattleTypeFlags -_08015580: .4byte gUnknown_02024A64 +_08015580: .4byte gBattleExecBuffer _08015584: .4byte gBitTable _08015588: - ldr r2, _0801559C @ =gUnknown_02024A64 + ldr r2, _0801559C @ =gBattleExecBuffer ldr r1, _080155A0 @ =gBitTable lsls r0, r3, 2 adds r0, r1 @@ -6089,9 +6089,9 @@ _08015598: pop {r0} bx r0 .align 2, 0 -_0801559C: .4byte gUnknown_02024A64 +_0801559C: .4byte gBattleExecBuffer _080155A0: .4byte gBitTable - thumb_func_end dp01_battle_side_mark_buffer_for_execution + thumb_func_end MarkBufferBankForExecution thumb_func_start sub_80155A4 sub_80155A4: @ 80155A4 @@ -6099,13 +6099,13 @@ sub_80155A4: @ 80155A4 lsls r0, 24 lsrs r7, r0, 24 movs r4, 0 - ldr r5, _080155B8 @ =gUnknown_02024A64 + ldr r5, _080155B8 @ =gBattleExecBuffer ldr r1, _080155BC @ =gBitTable lsls r0, r7, 2 adds r6, r0, r1 b _080155CE .align 2, 0 -_080155B8: .4byte gUnknown_02024A64 +_080155B8: .4byte gBattleExecBuffer _080155BC: .4byte gBitTable _080155C0: lsls r0, r4, 2 @@ -6121,7 +6121,7 @@ _080155CE: lsrs r0, 24 cmp r4, r0 blt _080155C0 - ldr r2, _080155F0 @ =gUnknown_02024A64 + ldr r2, _080155F0 @ =gBattleExecBuffer movs r1, 0x80 lsls r1, 21 lsls r1, r7 @@ -6132,11 +6132,11 @@ _080155CE: pop {r0} bx r0 .align 2, 0 -_080155F0: .4byte gUnknown_02024A64 +_080155F0: .4byte gBattleExecBuffer thumb_func_end sub_80155A4 - thumb_func_start b_cancel_multi_turn_move_maybe -b_cancel_multi_turn_move_maybe: @ 80155F4 + thumb_func_start CancelMultiTurnMoves +CancelMultiTurnMoves: @ 80155F4 lsls r0, 24 lsrs r0, 24 ldr r1, _08015644 @ =gBattleMons @@ -6156,14 +6156,14 @@ b_cancel_multi_turn_move_maybe: @ 80155F4 ldr r2, _08015650 @ =0xfffffcff ands r1, r2 str r1, [r3] - ldr r1, _08015654 @ =gUnknown_02024C98 + ldr r1, _08015654 @ =gStatuses3 lsls r2, r0, 2 adds r2, r1 ldr r1, [r2] ldr r3, _08015658 @ =0xfffbff3f ands r1, r3 str r1, [r2] - ldr r2, _0801565C @ =gUnknown_02024CA8 + ldr r2, _0801565C @ =gDisableStructs lsls r1, r0, 3 subs r1, r0 lsls r1, 2 @@ -6181,16 +6181,16 @@ _08015644: .4byte gBattleMons _08015648: .4byte 0xffffefff _0801564C: .4byte 0xfffff3ff _08015650: .4byte 0xfffffcff -_08015654: .4byte gUnknown_02024C98 +_08015654: .4byte gStatuses3 _08015658: .4byte 0xfffbff3f -_0801565C: .4byte gUnknown_02024CA8 - thumb_func_end b_cancel_multi_turn_move_maybe +_0801565C: .4byte gDisableStructs + thumb_func_end CancelMultiTurnMoves thumb_func_start sub_8015660 sub_8015660: @ 8015660 push {lr} lsls r0, 24 - ldr r1, _080156AC @ =gUnknown_02024D28 + ldr r1, _080156AC @ =gProtectStructs lsrs r0, 20 adds r1, r0, r1 ldrb r0, [r1] @@ -6227,7 +6227,7 @@ _080156A6: movs r0, 0x1 b _080156B2 .align 2, 0 -_080156AC: .4byte gUnknown_02024D28 +_080156AC: .4byte gProtectStructs _080156B0: movs r0, 0 _080156B2: @@ -6235,42 +6235,42 @@ _080156B2: bx r1 thumb_func_end sub_8015660 - thumb_func_start b_std_message -b_std_message: @ 80156B8 + thumb_func_start PrepareStringBattle +PrepareStringBattle: @ 80156B8 push {r4,lr} adds r2, r0, 0 lsls r2, 16 lsrs r2, 16 - ldr r4, _080156D8 @ =gUnknown_02024A60 + ldr r4, _080156D8 @ =gActiveBank strb r1, [r4] movs r0, 0 adds r1, r2, 0 - bl dp01_build_cmdbuf_x10_TODO + bl EmitPrintString ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution pop {r4} pop {r0} bx r0 .align 2, 0 -_080156D8: .4byte gUnknown_02024A60 - thumb_func_end b_std_message +_080156D8: .4byte gActiveBank + thumb_func_end PrepareStringBattle thumb_func_start sub_80156DC sub_80156DC: @ 80156DC push {r4-r6,lr} movs r3, 0 - ldr r0, _08015730 @ =gUnknown_02024DEA + ldr r0, _08015730 @ =gSentPokesToOpponent strb r3, [r0] strb r3, [r0, 0x1] movs r1, 0 - ldr r0, _08015734 @ =gUnknown_02024A68 + ldr r0, _08015734 @ =gNoOfAllBanks ldrb r2, [r0] adds r6, r0, 0 cmp r1, r2 bge _0801570A ldr r5, _08015738 @ =gBitTable adds r4, r2, 0 - ldr r2, _0801573C @ =gUnknown_02024A6A + ldr r2, _0801573C @ =gBattlePartyID _080156F8: ldrh r0, [r2] lsls r0, 2 @@ -6287,7 +6287,7 @@ _0801570A: ldrb r0, [r2] cmp r1, r0 bge _0801572A - ldr r5, _08015730 @ =gUnknown_02024DEA + ldr r5, _08015730 @ =gSentPokesToOpponent movs r4, 0x2 _08015718: adds r0, r1, 0 @@ -6304,10 +6304,10 @@ _0801572A: pop {r0} bx r0 .align 2, 0 -_08015730: .4byte gUnknown_02024DEA -_08015734: .4byte gUnknown_02024A68 +_08015730: .4byte gSentPokesToOpponent +_08015734: .4byte gNoOfAllBanks _08015738: .4byte gBitTable -_0801573C: .4byte gUnknown_02024A6A +_0801573C: .4byte gBattlePartyID thumb_func_end sub_80156DC thumb_func_start sub_8015740 @@ -6319,7 +6319,7 @@ sub_8015740: @ 8015740 lsrs r5, r0, 24 movs r4, 0 adds r0, r5, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -6329,20 +6329,20 @@ sub_8015740: @ 8015740 lsls r0, 24 lsrs r0, 25 mov r12, r0 - ldr r1, _080157B0 @ =gUnknown_02024DEA + ldr r1, _080157B0 @ =gSentPokesToOpponent adds r0, r1 strb r4, [r0] adds r5, r4, 0 - ldr r0, _080157B4 @ =gUnknown_02024A68 + ldr r0, _080157B4 @ =gNoOfAllBanks ldrb r2, [r0] mov r8, r1 cmp r4, r2 bge _0801579E - ldr r0, _080157B8 @ =gUnknown_02024C0C + ldr r0, _080157B8 @ =gAbsentBankFlags ldrb r7, [r0] ldr r1, _080157BC @ =gBitTable adds r6, r2, 0 - ldr r3, _080157C0 @ =gUnknown_02024A6A + ldr r3, _080157C0 @ =gBattlePartyID adds r2, r1, 0 _08015782: ldr r0, [r2] @@ -6371,11 +6371,11 @@ _080157A4: pop {r0} bx r0 .align 2, 0 -_080157B0: .4byte gUnknown_02024DEA -_080157B4: .4byte gUnknown_02024A68 -_080157B8: .4byte gUnknown_02024C0C +_080157B0: .4byte gSentPokesToOpponent +_080157B4: .4byte gNoOfAllBanks +_080157B8: .4byte gAbsentBankFlags _080157BC: .4byte gBitTable -_080157C0: .4byte gUnknown_02024A6A +_080157C0: .4byte gBattlePartyID thumb_func_end sub_8015740 thumb_func_start sub_80157C4 @@ -6384,7 +6384,7 @@ sub_80157C4: @ 80157C4 lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -6394,15 +6394,15 @@ sub_80157C4: @ 80157C4 b _08015816 _080157E0: movs r3, 0x1 - ldr r5, _0801581C @ =gUnknown_02024A68 + ldr r5, _0801581C @ =gNoOfAllBanks ldrb r0, [r5] cmp r3, r0 bge _08015816 - ldr r0, _08015820 @ =gUnknown_02024DEA + ldr r0, _08015820 @ =gSentPokesToOpponent mov r12, r0 movs r7, 0x2 ldr r6, _08015824 @ =gBitTable - ldr r1, _08015828 @ =gUnknown_02024A6A + ldr r1, _08015828 @ =gBattlePartyID lsls r0, r4, 1 adds r4, r0, r1 _080157F8: @@ -6426,10 +6426,10 @@ _08015816: pop {r0} bx r0 .align 2, 0 -_0801581C: .4byte gUnknown_02024A68 -_08015820: .4byte gUnknown_02024DEA +_0801581C: .4byte gNoOfAllBanks +_08015820: .4byte gSentPokesToOpponent _08015824: .4byte gBitTable -_08015828: .4byte gUnknown_02024A6A +_08015828: .4byte gBattlePartyID thumb_func_end sub_80157C4 .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_3.s b/asm/battle_3.s index 4252e7222..ffe32f27b 100644 --- a/asm/battle_3.s +++ b/asm/battle_3.s @@ -37,18 +37,18 @@ b_movescr_stack_push_cursor: @ 801584C lsls r0, 24 lsrs r0, 22 adds r0, r3 - ldr r1, _0801586C @ =gUnknown_02024C10 + ldr r1, _0801586C @ =gBattlescriptCurrInstr ldr r1, [r1] str r1, [r0] bx lr .align 2, 0 _08015868: .4byte 0x02017110 -_0801586C: .4byte gUnknown_02024C10 +_0801586C: .4byte gBattlescriptCurrInstr thumb_func_end b_movescr_stack_push_cursor thumb_func_start b_movescr_stack_pop_cursor b_movescr_stack_pop_cursor: @ 8015870 - ldr r3, _0801588C @ =gUnknown_02024C10 + ldr r3, _0801588C @ =gBattlescriptCurrInstr ldr r2, _08015890 @ =0x02017110 adds r1, r2, 0 adds r1, 0x20 @@ -62,7 +62,7 @@ b_movescr_stack_pop_cursor: @ 8015870 str r0, [r3] bx lr .align 2, 0 -_0801588C: .4byte gUnknown_02024C10 +_0801588C: .4byte gBattlescriptCurrInstr _08015890: .4byte 0x02017110 thumb_func_end b_movescr_stack_pop_cursor @@ -73,8 +73,8 @@ sub_8015894: @ 8015894 push {r7} movs r6, 0 ldr r2, _080159AC @ =gBattleMons - ldr r1, _080159B0 @ =gUnknown_02024260 - ldr r5, _080159B4 @ =gUnknown_02024A60 + ldr r1, _080159B0 @ =gBattleBufferB + ldr r5, _080159B4 @ =gActiveBank ldrb r3, [r5] lsls r0, r3, 9 adds r1, 0x2 @@ -91,7 +91,7 @@ sub_8015894: @ 8015894 ldr r2, _080159B8 @ =0x020160e8 adds r0, r2 mov r8, r0 - ldr r1, _080159BC @ =gUnknown_02024CA8 + ldr r1, _080159BC @ =gDisableStructs lsls r0, r3, 3 subs r0, r3 lsls r0, 2 @@ -104,7 +104,7 @@ sub_8015894: @ 8015894 adds r0, r2, 0 subs r0, 0xE5 strb r3, [r0] - ldr r0, _080159C0 @ =gUnknown_02024BE6 + ldr r0, _080159C0 @ =gCurrentMove strh r4, [r0] ldr r1, _080159C4 @ =gUnknown_02024C1C ldrb r0, [r5] @@ -114,8 +114,8 @@ sub_8015894: @ 8015894 str r1, [r0] movs r6, 0x1 _080158EE: - ldr r1, _080159CC @ =gUnknown_02024C34 - ldr r5, _080159B4 @ =gUnknown_02024A60 + ldr r1, _080159CC @ =gLastUsedMove + ldr r5, _080159B4 @ =gActiveBank ldrb r2, [r5] lsls r0, r2, 1 adds r0, r1 @@ -133,7 +133,7 @@ _080158EE: cmp r0, 0 bge _0801592A adds r0, r2, 0 - bl b_cancel_multi_turn_move_maybe + bl CancelMultiTurnMoves ldr r1, _080159C4 @ =gUnknown_02024C1C ldrb r0, [r5] lsls r0, 2 @@ -144,8 +144,8 @@ _080158EE: lsls r0, 24 lsrs r6, r0, 24 _0801592A: - ldr r2, _080159BC @ =gUnknown_02024CA8 - ldr r3, _080159B4 @ =gUnknown_02024A60 + ldr r2, _080159BC @ =gDisableStructs + ldr r3, _080159B4 @ =gActiveBank ldrb r1, [r3] lsls r0, r1, 3 subs r0, r1 @@ -163,7 +163,7 @@ _0801592A: ldrb r0, [r1, 0x1] cmp r0, 0 bne _08015966 - ldr r0, _080159C0 @ =gUnknown_02024BE6 + ldr r0, _080159C0 @ =gCurrentMove strh r4, [r0] ldr r1, _080159C4 @ =gUnknown_02024C1C ldrb r0, [r3] @@ -175,14 +175,14 @@ _0801592A: lsls r0, 24 lsrs r6, r0, 24 _08015966: - ldr r5, _080159B4 @ =gUnknown_02024A60 + ldr r5, _080159B4 @ =gActiveBank ldrb r0, [r5] adds r1, r4, 0 bl sub_8015D5C lsls r0, 24 cmp r0, 0 beq _0801598C - ldr r0, _080159C0 @ =gUnknown_02024BE6 + ldr r0, _080159C0 @ =gCurrentMove strh r4, [r0] ldr r1, _080159C4 @ =gUnknown_02024C1C ldrb r0, [r5] @@ -211,14 +211,14 @@ _0801598C: b _080159EE .align 2, 0 _080159AC: .4byte gBattleMons -_080159B0: .4byte gUnknown_02024260 -_080159B4: .4byte gUnknown_02024A60 +_080159B0: .4byte gBattleBufferB +_080159B4: .4byte gActiveBank _080159B8: .4byte 0x020160e8 -_080159BC: .4byte gUnknown_02024CA8 -_080159C0: .4byte gUnknown_02024BE6 +_080159BC: .4byte gDisableStructs +_080159C0: .4byte gCurrentMove _080159C4: .4byte gUnknown_02024C1C _080159C8: .4byte gUnknown_081D9144 -_080159CC: .4byte gUnknown_02024C34 +_080159CC: .4byte gLastUsedMove _080159D0: .4byte gUnknown_081D937C _080159D4: .4byte gBattleMoves _080159D8: .4byte gUnknown_081D938B @@ -230,8 +230,8 @@ _080159E4: lsls r0, 24 lsrs r3, r0, 24 _080159EE: - ldr r2, _08015A70 @ =gUnknown_02024C0B - ldr r1, _08015A74 @ =gUnknown_02024A60 + ldr r2, _08015A70 @ =gStringBank + ldr r1, _08015A74 @ =gActiveBank ldrb r0, [r1] strb r0, [r2] ldr r7, _08015A78 @ =gBattleMons @@ -248,9 +248,9 @@ _080159EE: beq _08015A36 cmp r1, r4 beq _08015A36 - ldr r0, _08015A80 @ =gUnknown_02024BE6 + ldr r0, _08015A80 @ =gCurrentMove strh r2, [r0] - ldr r2, _08015A84 @ =gUnknown_02024C04 + ldr r2, _08015A84 @ =gLastUsedItem ldrb r1, [r5] movs r0, 0x58 muls r0, r1 @@ -267,7 +267,7 @@ _080159EE: lsls r0, 24 lsrs r6, r0, 24 _08015A36: - ldr r0, _08015A90 @ =gUnknown_02024260 + ldr r0, _08015A90 @ =gBattleBufferB ldrb r2, [r5] lsls r1, r2, 9 adds r0, 0x2 @@ -298,15 +298,15 @@ _08015A64: pop {r1} bx r1 .align 2, 0 -_08015A70: .4byte gUnknown_02024C0B -_08015A74: .4byte gUnknown_02024A60 +_08015A70: .4byte gStringBank +_08015A74: .4byte gActiveBank _08015A78: .4byte gBattleMons _08015A7C: .4byte 0x0000ffff -_08015A80: .4byte gUnknown_02024BE6 -_08015A84: .4byte gUnknown_02024C04 +_08015A80: .4byte gCurrentMove +_08015A84: .4byte gLastUsedItem _08015A88: .4byte gUnknown_02024C1C _08015A8C: .4byte gUnknown_081D9AC2 -_08015A90: .4byte gUnknown_02024260 +_08015A90: .4byte gBattleBufferB _08015A94: .4byte gUnknown_081D9369 thumb_func_end sub_8015894 @@ -357,13 +357,13 @@ _08015AE4: lsls r1, r7, 3 ldr r3, [sp, 0x14] _08015AF6: - ldr r0, _08015C70 @ =gUnknown_02024C0B + ldr r0, _08015C70 @ =gStringBank strb r7, [r0] movs r0, 0 mov r9, r0 lsls r2, r7, 1 str r2, [sp, 0xC] - ldr r5, _08015C74 @ =gUnknown_02024CA8 + ldr r5, _08015C74 @ =gDisableStructs mov r12, r5 ldr r0, _08015C78 @ =gBattleMons movs r2, 0x58 @@ -432,7 +432,7 @@ _08015B74: ldr r1, _08015C7C @ =gUnknown_02024A8C adds r0, r1 mov r12, r0 - ldr r1, _08015C84 @ =gUnknown_02024C34 + ldr r1, _08015C84 @ =gLastUsedMove ldr r0, [sp, 0xC] adds r1, r0, r1 str r1, [sp, 0x18] @@ -458,7 +458,7 @@ _08015B74: lsls r0, r4, 24 lsrs r4, r0, 24 _08015BB6: - ldr r0, _08015C74 @ =gUnknown_02024CA8 + ldr r0, _08015C74 @ =gDisableStructs add r0, r8 ldrb r0, [r0, 0x13] lsls r0, 28 @@ -499,7 +499,7 @@ _08015BE4: lsls r0, r4, 24 lsrs r4, r0, 24 _08015C06: - ldr r1, _08015C74 @ =gUnknown_02024CA8 + ldr r1, _08015C74 @ =gDisableStructs mov r0, r8 adds r2, r0, r1 ldrb r0, [r2, 0xE] @@ -556,12 +556,12 @@ _08015C5E: pop {r1} bx r1 .align 2, 0 -_08015C70: .4byte gUnknown_02024C0B -_08015C74: .4byte gUnknown_02024CA8 +_08015C70: .4byte gStringBank +_08015C74: .4byte gDisableStructs _08015C78: .4byte gBattleMons _08015C7C: .4byte gUnknown_02024A8C _08015C80: .4byte gBitTable -_08015C84: .4byte gUnknown_02024C34 +_08015C84: .4byte gLastUsedMove _08015C88: .4byte gBattleMoves _08015C8C: .4byte 0x0000ffff thumb_func_end sub_8015A98 @@ -569,7 +569,7 @@ _08015C8C: .4byte 0x0000ffff thumb_func_start sub_8015C90 sub_8015C90: @ 8015C90 push {r4-r6,lr} - ldr r5, _08015CFC @ =gUnknown_02024A60 + ldr r5, _08015CFC @ =gActiveBank ldrb r0, [r5] movs r1, 0 movs r2, 0xFF @@ -578,7 +578,7 @@ sub_8015C90: @ 8015C90 lsrs r6, r0, 24 cmp r6, 0xF bne _08015D38 - ldr r0, _08015D00 @ =gUnknown_02024D28 + ldr r0, _08015D00 @ =gProtectStructs ldrb r1, [r5] lsls r1, 4 adds r1, r0 @@ -599,7 +599,7 @@ sub_8015C90: @ 8015C90 cmp r0, 0 beq _08015D14 ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity adds r4, r0, 0 bl Random movs r1, 0x1 @@ -610,38 +610,38 @@ sub_8015C90: @ 8015C90 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 - bl battle_get_side_with_given_state - ldr r2, _08015D10 @ =gUnknown_02024260 + bl GetBankByPlayerAI + ldr r2, _08015D10 @ =gBattleBufferB ldrb r1, [r5] lsls r1, 9 adds r2, 0x3 adds r1, r2 b _08015D48 .align 2, 0 -_08015CFC: .4byte gUnknown_02024A60 -_08015D00: .4byte gUnknown_02024D28 +_08015CFC: .4byte gActiveBank +_08015D00: .4byte gProtectStructs _08015D04: .4byte gUnknown_02024C1C _08015D08: .4byte gUnknown_081D9365 _08015D0C: .4byte gBattleTypeFlags -_08015D10: .4byte gUnknown_02024260 +_08015D10: .4byte gBattleBufferB _08015D14: ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r0, 24 - bl battle_get_side_with_given_state - ldr r2, _08015D34 @ =gUnknown_02024260 + bl GetBankByPlayerAI + ldr r2, _08015D34 @ =gBattleBufferB ldrb r1, [r5] lsls r1, 9 adds r2, 0x3 adds r1, r2 b _08015D48 .align 2, 0 -_08015D34: .4byte gUnknown_02024260 +_08015D34: .4byte gBattleBufferB _08015D38: - ldr r0, _08015D58 @ =gUnknown_02024D28 + ldr r0, _08015D58 @ =gProtectStructs ldrb r1, [r5] lsls r1, 4 adds r1, r0 @@ -660,7 +660,7 @@ _08015D52: pop {r1} bx r1 .align 2, 0 -_08015D58: .4byte gUnknown_02024D28 +_08015D58: .4byte gProtectStructs thumb_func_end sub_8015C90 thumb_func_start sub_8015D5C @@ -674,12 +674,12 @@ sub_8015D5C: @ 8015D5C lsls r1, 16 lsrs r5, r1, 16 movs r6, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 mov r9, r0 movs r4, 0 - ldr r0, _08015DF0 @ =gUnknown_02024A68 + ldr r0, _08015DF0 @ =gNoOfAllBanks ldrb r0, [r0] cmp r6, r0 bge _08015DE0 @@ -688,13 +688,13 @@ sub_8015D5C: @ 8015D5C _08015D86: lsls r0, r4, 24 lsrs r0, 24 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 adds r3, r4, 0x1 cmp r9, r0 beq _08015DD6 - ldr r1, _08015DF8 @ =gUnknown_02024C98 + ldr r1, _08015DF8 @ =gStatuses3 lsls r0, r4, 2 adds r0, r1 ldr r0, [r0] @@ -729,7 +729,7 @@ _08015DCC: lsrs r6, r0, 24 _08015DD6: adds r4, r3, 0 - ldr r0, _08015DF0 @ =gUnknown_02024A68 + ldr r0, _08015DF0 @ =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 blt _08015D86 @@ -742,13 +742,13 @@ _08015DE0: pop {r1} bx r1 .align 2, 0 -_08015DF0: .4byte gUnknown_02024A68 +_08015DF0: .4byte gNoOfAllBanks _08015DF4: .4byte gUnknown_02024A8C -_08015DF8: .4byte gUnknown_02024C98 +_08015DF8: .4byte gStatuses3 thumb_func_end sub_8015D5C - thumb_func_start sub_8015DFC -sub_8015DFC: @ 8015DFC + thumb_func_start UpdateTurnCounters +UpdateTurnCounters: @ 8015DFC push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -756,19 +756,19 @@ sub_8015DFC: @ 8015DFC push {r5-r7} movs r0, 0 mov r9, r0 - ldr r1, _08015EA0 @ =gPlayerMonIndex + ldr r1, _08015EA0 @ =gBankAttacker mov r2, r9 strb r2, [r1] - ldr r0, _08015EA4 @ =gUnknown_02024A68 + ldr r0, _08015EA4 @ =gNoOfAllBanks ldrb r4, [r0] adds r6, r1, 0 mov r10, r0 - ldr r7, _08015EA8 @ =gEnemyMonIndex + ldr r7, _08015EA8 @ =gBankTarget ldr r3, _08015EAC @ =0x02000000 mov r12, r3 cmp r9, r4 bcs _08015E50 - ldr r2, _08015EB0 @ =gUnknown_02024C0C + ldr r2, _08015EB0 @ =gAbsentBankFlags ldrb r1, [r2] ldr r5, _08015EB4 @ =gBitTable ldr r0, [r5] @@ -799,7 +799,7 @@ _08015E50: ldrb r4, [r0] cmp r4, 0 beq _08015E8A - ldr r2, _08015EB0 @ =gUnknown_02024C0C + ldr r2, _08015EB0 @ =gAbsentBankFlags ldrb r1, [r2] ldr r5, _08015EB4 @ =gBitTable ldr r0, [r5] @@ -837,11 +837,11 @@ _08015E96: ldr r0, [r0] mov pc, r0 .align 2, 0 -_08015EA0: .4byte gPlayerMonIndex -_08015EA4: .4byte gUnknown_02024A68 -_08015EA8: .4byte gEnemyMonIndex +_08015EA0: .4byte gBankAttacker +_08015EA4: .4byte gNoOfAllBanks +_08015EA8: .4byte gBankTarget _08015EAC: .4byte 0x02000000 -_08015EB0: .4byte gUnknown_02024C0C +_08015EB0: .4byte gAbsentBankFlags _08015EB4: .4byte gBitTable _08015EB8: .4byte 0x0001600e _08015EBC: .4byte _08015EC0 @@ -860,12 +860,12 @@ _08015EC0: .4byte _08016520 _08015EEC: movs r5, 0 - ldr r1, _08015F0C @ =gUnknown_02024A68 + ldr r1, _08015F0C @ =gNoOfAllBanks mov r10, r1 ldrb r2, [r1] cmp r5, r2 bge _08015F06 - ldr r2, _08015F10 @ =gUnknown_02024A7A + ldr r2, _08015F10 @ =gTurnOrder _08015EFA: adds r0, r5, r2 strb r5, [r0] @@ -877,16 +877,16 @@ _08015F06: movs r5, 0 b _08015F54 .align 2, 0 -_08015F0C: .4byte gUnknown_02024A68 -_08015F10: .4byte gUnknown_02024A7A +_08015F0C: .4byte gNoOfAllBanks +_08015F10: .4byte gTurnOrder _08015F14: adds r4, r5, 0x1 adds r6, r4, 0 ldrb r1, [r1] cmp r6, r1 bge _08015F52 - ldr r7, _08016004 @ =gUnknown_02024A7A - ldr r0, _08016008 @ =gUnknown_02024A68 + ldr r7, _08016004 @ =gTurnOrder + ldr r0, _08016008 @ =gNoOfAllBanks mov r10, r0 lsls r1, r5, 24 mov r8, r1 @@ -907,7 +907,7 @@ _08015F28: bl sub_8012FBC _08015F48: adds r4, 0x1 - ldr r0, _08016008 @ =gUnknown_02024A68 + ldr r0, _08016008 @ =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 blt _08015F28 @@ -938,18 +938,18 @@ _08015F74: bls _08015F80 b _08016236 _08015F80: - ldr r3, _08016018 @ =gUnknown_02024A60 + ldr r3, _08016018 @ =gActiveBank mov r8, r3 adds r6, r1, 0 movs r7, 0 - ldr r5, _0801601C @ =gUnknown_030041C0 + ldr r5, _0801601C @ =gBattleTextBuff1 _08015F8A: - ldr r0, _08016020 @ =gPlayerMonIndex + ldr r0, _08016020 @ =gBankAttacker ldrb r4, [r6] strb r4, [r0] mov r0, r8 strb r4, [r0] - ldr r0, _08016024 @ =gUnknown_02024C7A + ldr r0, _08016024 @ =gSideAffecting lsls r2, r4, 1 adds r3, r2, r0 ldrh r1, [r3] @@ -957,7 +957,7 @@ _08015F8A: ands r0, r1 cmp r0, 0 beq _08015FE8 - ldr r0, _08016028 @ =gUnknown_02024C80 + ldr r0, _08016028 @ =gSideTimer adds r1, r2, r4 lsls r1, 2 adds r1, r0 @@ -1007,16 +1007,16 @@ _08015FFA: bls _08015F8A b _08016236 .align 2, 0 -_08016004: .4byte gUnknown_02024A7A -_08016008: .4byte gUnknown_02024A68 +_08016004: .4byte gTurnOrder +_08016008: .4byte gNoOfAllBanks _0801600C: .4byte 0x02000000 _08016010: .4byte 0x0001600e _08016014: .4byte 0x000160fc -_08016018: .4byte gUnknown_02024A60 -_0801601C: .4byte gUnknown_030041C0 -_08016020: .4byte gPlayerMonIndex -_08016024: .4byte gUnknown_02024C7A -_08016028: .4byte gUnknown_02024C80 +_08016018: .4byte gActiveBank +_0801601C: .4byte gBattleTextBuff1 +_08016020: .4byte gBankAttacker +_08016024: .4byte gSideAffecting +_08016028: .4byte gSideTimer _0801602C: .4byte 0x0000fffe _08016030: .4byte gUnknown_081D9030 _08016034: @@ -1032,14 +1032,14 @@ _08016040: mov r10, r3 movs r0, 0 mov r8, r0 - ldr r5, _080160D0 @ =gUnknown_030041C0 + ldr r5, _080160D0 @ =gBattleTextBuff1 _0801604C: - ldr r0, _080160D4 @ =gPlayerMonIndex + ldr r0, _080160D4 @ =gBankAttacker ldrb r4, [r7] strb r4, [r0] - ldr r1, _080160D8 @ =gUnknown_02024A60 + ldr r1, _080160D8 @ =gActiveBank strb r4, [r1] - ldr r0, _080160DC @ =gUnknown_02024C7A + ldr r0, _080160DC @ =gSideAffecting lsls r2, r4, 1 adds r3, r2, r0 ldrh r1, [r3] @@ -1047,7 +1047,7 @@ _0801604C: ands r0, r1 cmp r0, 0 beq _080160B0 - ldr r0, _080160E0 @ =gUnknown_02024C80 + ldr r0, _080160E0 @ =gSideTimer adds r1, r2, r4 lsls r1, 2 adds r1, r0 @@ -1065,7 +1065,7 @@ _0801604C: strh r0, [r3] ldr r0, _080160E8 @ =gUnknown_081D9030 bl b_call_bc_move_exec - ldr r0, _080160EC @ =gUnknown_02024D1E + ldr r0, _080160EC @ =gBattleCommunication strb r4, [r0, 0x5] movs r0, 0xFD strb r0, [r5] @@ -1101,14 +1101,14 @@ _080160C2: b _08016182 .align 2, 0 _080160CC: .4byte 0x000160fc -_080160D0: .4byte gUnknown_030041C0 -_080160D4: .4byte gPlayerMonIndex -_080160D8: .4byte gUnknown_02024A60 -_080160DC: .4byte gUnknown_02024C7A -_080160E0: .4byte gUnknown_02024C80 +_080160D0: .4byte gBattleTextBuff1 +_080160D4: .4byte gBankAttacker +_080160D8: .4byte gActiveBank +_080160DC: .4byte gSideAffecting +_080160E0: .4byte gSideTimer _080160E4: .4byte 0x0000fffd _080160E8: .4byte gUnknown_081D9030 -_080160EC: .4byte gUnknown_02024D1E +_080160EC: .4byte gBattleCommunication _080160F0: .4byte 0x02000000 _080160F4: ldr r1, _0801619C @ =0x000160fc @@ -1116,19 +1116,19 @@ _080160F4: ldrb r0, [r1] cmp r0, 0x1 bhi _08016182 - ldr r0, _080161A0 @ =gUnknown_02024A60 + ldr r0, _080161A0 @ =gActiveBank mov r10, r0 adds r7, r1, 0 movs r1, 0 mov r8, r1 - ldr r5, _080161A4 @ =gUnknown_030041C0 + ldr r5, _080161A4 @ =gBattleTextBuff1 _0801610A: - ldr r0, _080161A8 @ =gPlayerMonIndex + ldr r0, _080161A8 @ =gBankAttacker ldrb r4, [r7] strb r4, [r0] mov r2, r10 strb r4, [r2] - ldr r1, _080161AC @ =gUnknown_02024C80 + ldr r1, _080161AC @ =gSideTimer lsls r3, r4, 1 adds r0, r3, r4 lsls r0, 2 @@ -1142,7 +1142,7 @@ _0801610A: lsls r0, 24 cmp r0, 0 bne _08016168 - ldr r2, _080161B0 @ =gUnknown_02024C7A + ldr r2, _080161B0 @ =gSideAffecting adds r2, r3, r2 ldrh r0, [r2] ldr r3, _080161B4 @ =0x0000feff @@ -1151,7 +1151,7 @@ _0801610A: strh r0, [r2] ldr r0, _080161B8 @ =gUnknown_081D9030 bl b_call_bc_move_exec - ldr r0, _080161BC @ =gUnknown_02024D1E + ldr r0, _080161BC @ =gBattleCommunication strb r4, [r0, 0x5] movs r0, 0xFD strb r0, [r5] @@ -1201,14 +1201,14 @@ _0801618A: b _0801652A .align 2, 0 _0801619C: .4byte 0x000160fc -_080161A0: .4byte gUnknown_02024A60 -_080161A4: .4byte gUnknown_030041C0 -_080161A8: .4byte gPlayerMonIndex -_080161AC: .4byte gUnknown_02024C80 -_080161B0: .4byte gUnknown_02024C7A +_080161A0: .4byte gActiveBank +_080161A4: .4byte gBattleTextBuff1 +_080161A8: .4byte gBankAttacker +_080161AC: .4byte gSideTimer +_080161B0: .4byte gSideAffecting _080161B4: .4byte 0x0000feff _080161B8: .4byte gUnknown_081D9030 -_080161BC: .4byte gUnknown_02024D1E +_080161BC: .4byte gBattleCommunication _080161C0: .4byte 0x02000000 _080161C4: .4byte 0x0001600e _080161C8: @@ -1217,14 +1217,14 @@ _080161C8: ldrb r0, [r1] cmp r0, 0x1 bhi _08016236 - ldr r7, _08016254 @ =gUnknown_02024A60 + ldr r7, _08016254 @ =gActiveBank adds r5, r1, 0 - ldr r6, _08016258 @ =gPlayerMonIndex + ldr r6, _08016258 @ =gBankAttacker _080161D8: ldrb r4, [r5] strb r4, [r6] strb r4, [r7] - ldr r0, _0801625C @ =gUnknown_02024C7A + ldr r0, _0801625C @ =gSideAffecting lsls r2, r4, 1 adds r3, r2, r0 ldrh r1, [r3] @@ -1232,7 +1232,7 @@ _080161D8: ands r0, r1 cmp r0, 0 beq _0801621C - ldr r0, _08016260 @ =gUnknown_02024C80 + ldr r0, _08016260 @ =gSideTimer adds r1, r2, r4 lsls r1, 2 adds r1, r0 @@ -1286,10 +1286,10 @@ _0801623E: b _0801652A .align 2, 0 _08016250: .4byte 0x000160fc -_08016254: .4byte gUnknown_02024A60 -_08016258: .4byte gPlayerMonIndex -_0801625C: .4byte gUnknown_02024C7A -_08016260: .4byte gUnknown_02024C80 +_08016254: .4byte gActiveBank +_08016258: .4byte gBankAttacker +_0801625C: .4byte gSideAffecting +_08016260: .4byte gSideTimer _08016264: .4byte 0x0000ffdf _08016268: .4byte gUnknown_081D9041 _0801626C: .4byte 0x02000000 @@ -1297,16 +1297,16 @@ _08016270: .4byte 0x0001600e _08016274: ldr r2, _080162FC @ =0x000160fc add r2, r12 - ldr r1, _08016300 @ =gUnknown_02024A68 + ldr r1, _08016300 @ =gNoOfAllBanks ldrb r0, [r2] ldrb r1, [r1] cmp r0, r1 bcs _080162E8 - ldr r5, _08016304 @ =gUnknown_02024A60 + ldr r5, _08016304 @ =gActiveBank adds r4, r2, 0 ldr r6, _08016308 @ =gUnknown_02024DDC _08016288: - ldr r1, _0801630C @ =gUnknown_02024A7A + ldr r1, _0801630C @ =gTurnOrder ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] @@ -1329,7 +1329,7 @@ _08016288: ldrh r0, [r0, 0x28] cmp r0, 0 beq _080162CA - ldr r0, _08016314 @ =gEnemyMonIndex + ldr r0, _08016314 @ =gBankTarget strb r2, [r0] ldr r0, _08016318 @ =gUnknown_081D939A bl b_call_bc_move_exec @@ -1349,7 +1349,7 @@ _080162CA: beq _080162DC b _08016532 _080162DC: - ldr r1, _08016300 @ =gUnknown_02024A68 + ldr r1, _08016300 @ =gNoOfAllBanks lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] @@ -1369,12 +1369,12 @@ _080162F0: b _0801652A .align 2, 0 _080162FC: .4byte 0x000160fc -_08016300: .4byte gUnknown_02024A68 -_08016304: .4byte gUnknown_02024A60 +_08016300: .4byte gNoOfAllBanks +_08016304: .4byte gActiveBank _08016308: .4byte gUnknown_02024DDC -_0801630C: .4byte gUnknown_02024A7A +_0801630C: .4byte gTurnOrder _08016310: .4byte gBattleMons -_08016314: .4byte gEnemyMonIndex +_08016314: .4byte gBankTarget _08016318: .4byte gUnknown_081D939A _0801631C: .4byte 0x02000000 _08016320: .4byte 0x0001600e @@ -1391,7 +1391,7 @@ _08016332: ands r0, r2 cmp r0, 0 bne _0801637E - ldr r1, _08016360 @ =gUnknown_02024DBC + ldr r1, _08016360 @ =gWishFutureKnock adds r1, 0x28 ldrb r0, [r1] subs r0, 0x1 @@ -1404,16 +1404,16 @@ _08016332: ldr r1, _08016368 @ =0x0000fffd ands r0, r1 strh r0, [r3] - ldr r1, _0801636C @ =gUnknown_02024D1E + ldr r1, _0801636C @ =gBattleCommunication movs r0, 0x2 strb r0, [r1, 0x5] b _0801639C .align 2, 0 _0801635C: .4byte gBattleWeather -_08016360: .4byte gUnknown_02024DBC +_08016360: .4byte gWishFutureKnock _08016364: .4byte 0x0000fffe _08016368: .4byte 0x0000fffd -_0801636C: .4byte gUnknown_02024D1E +_0801636C: .4byte gBattleCommunication _08016370: movs r0, 0x2 ands r0, r2 @@ -1430,20 +1430,20 @@ _0801637E: cmp r1, 0 beq _08016398 _0801638A: - ldr r1, _08016394 @ =gUnknown_02024D1E + ldr r1, _08016394 @ =gBattleCommunication movs r0, 0x1 strb r0, [r1, 0x5] b _0801639C .align 2, 0 -_08016394: .4byte gUnknown_02024D1E +_08016394: .4byte gBattleCommunication _08016398: - ldr r0, _080163A0 @ =gUnknown_02024D1E + ldr r0, _080163A0 @ =gBattleCommunication strb r1, [r0, 0x5] _0801639C: ldr r0, _080163A4 @ =gUnknown_081D8F62 b _080164EA .align 2, 0 -_080163A0: .4byte gUnknown_02024D1E +_080163A0: .4byte gBattleCommunication _080163A4: .4byte gUnknown_081D8F62 _080163A8: ldr r3, _080163DC @ =gBattleWeather @@ -1458,7 +1458,7 @@ _080163B6: ands r0, r2 cmp r0, 0 bne _080163F0 - ldr r1, _080163E0 @ =gUnknown_02024DBC + ldr r1, _080163E0 @ =gWishFutureKnock adds r1, 0x28 ldrb r0, [r1] subs r0, 0x1 @@ -1469,17 +1469,17 @@ _080163B6: ldr r0, _080163E4 @ =0x0000fff7 ands r0, r2 strh r0, [r3] - ldr r1, _080163E8 @ =gUnknown_02024C10 + ldr r1, _080163E8 @ =gBattlescriptCurrInstr ldr r0, _080163EC @ =gUnknown_081D8FFF b _080163F4 .align 2, 0 _080163DC: .4byte gBattleWeather -_080163E0: .4byte gUnknown_02024DBC +_080163E0: .4byte gWishFutureKnock _080163E4: .4byte 0x0000fff7 -_080163E8: .4byte gUnknown_02024C10 +_080163E8: .4byte gBattlescriptCurrInstr _080163EC: .4byte gUnknown_081D8FFF _080163F0: - ldr r1, _0801640C @ =gUnknown_02024C10 + ldr r1, _0801640C @ =gBattlescriptCurrInstr ldr r0, _08016410 @ =gUnknown_081D8F7D _080163F4: str r0, [r1] @@ -1490,15 +1490,15 @@ _080163F4: movs r2, 0 movs r0, 0xC strb r0, [r1] - ldr r0, _0801641C @ =gUnknown_02024D1E + ldr r0, _0801641C @ =gBattleCommunication strb r2, [r0, 0x5] b _080164E8 .align 2, 0 -_0801640C: .4byte gUnknown_02024C10 +_0801640C: .4byte gBattlescriptCurrInstr _08016410: .4byte gUnknown_081D8F7D _08016414: .4byte 0x02000000 _08016418: .4byte 0x000160a4 -_0801641C: .4byte gUnknown_02024D1E +_0801641C: .4byte gBattleCommunication _08016420: ldr r3, _08016450 @ =gBattleWeather ldrh r2, [r3] @@ -1510,7 +1510,7 @@ _08016420: ands r0, r2 cmp r0, 0 bne _08016464 - ldr r1, _08016454 @ =gUnknown_02024DBC + ldr r1, _08016454 @ =gWishFutureKnock adds r1, 0x28 ldrb r0, [r1] subs r0, 0x1 @@ -1521,17 +1521,17 @@ _08016420: ldr r0, _08016458 @ =0x0000ffdf ands r0, r2 strh r0, [r3] - ldr r1, _0801645C @ =gUnknown_02024C10 + ldr r1, _0801645C @ =gBattlescriptCurrInstr ldr r0, _08016460 @ =gUnknown_081D9016 b _08016468 .align 2, 0 _08016450: .4byte gBattleWeather -_08016454: .4byte gUnknown_02024DBC +_08016454: .4byte gWishFutureKnock _08016458: .4byte 0x0000ffdf -_0801645C: .4byte gUnknown_02024C10 +_0801645C: .4byte gBattlescriptCurrInstr _08016460: .4byte gUnknown_081D9016 _08016464: - ldr r1, _08016484 @ =gUnknown_02024C10 + ldr r1, _08016484 @ =gBattlescriptCurrInstr ldr r0, _08016488 @ =gUnknown_081D9008 _08016468: str r0, [r1] @@ -1549,7 +1549,7 @@ _0801647C: adds r1, r2, r0 b _080164FE .align 2, 0 -_08016484: .4byte gUnknown_02024C10 +_08016484: .4byte gBattlescriptCurrInstr _08016488: .4byte gUnknown_081D9008 _0801648C: .4byte 0x02000000 _08016490: .4byte 0x0001600e @@ -1560,7 +1560,7 @@ _08016494: ands r0, r2 cmp r0, 0 beq _080164F8 - ldr r1, _080164C0 @ =gUnknown_02024DBC + ldr r1, _080164C0 @ =gWishFutureKnock adds r1, 0x28 ldrb r0, [r1] subs r0, 0x1 @@ -1571,17 +1571,17 @@ _08016494: ldr r0, _080164C4 @ =0x0000ff7f ands r0, r2 strh r0, [r3] - ldr r1, _080164C8 @ =gUnknown_02024C10 + ldr r1, _080164C8 @ =gBattlescriptCurrInstr ldr r0, _080164CC @ =gUnknown_081D8FFF b _080164D4 .align 2, 0 _080164BC: .4byte gBattleWeather -_080164C0: .4byte gUnknown_02024DBC +_080164C0: .4byte gWishFutureKnock _080164C4: .4byte 0x0000ff7f -_080164C8: .4byte gUnknown_02024C10 +_080164C8: .4byte gBattlescriptCurrInstr _080164CC: .4byte gUnknown_081D8FFF _080164D0: - ldr r1, _08016508 @ =gUnknown_02024C10 + ldr r1, _08016508 @ =gBattlescriptCurrInstr ldr r0, _0801650C @ =gUnknown_081D8F7D _080164D4: str r0, [r1] @@ -1591,7 +1591,7 @@ _080164D4: adds r0, r1 movs r1, 0xD strb r1, [r0] - ldr r1, _08016518 @ =gUnknown_02024D1E + ldr r1, _08016518 @ =gBattleCommunication movs r0, 0x1 strb r0, [r1, 0x5] _080164E8: @@ -1614,11 +1614,11 @@ _080164FE: mov r12, r2 b _0801652A .align 2, 0 -_08016508: .4byte gUnknown_02024C10 +_08016508: .4byte gBattlescriptCurrInstr _0801650C: .4byte gUnknown_081D8F7D _08016510: .4byte 0x02000000 _08016514: .4byte 0x000160a4 -_08016518: .4byte gUnknown_02024D1E +_08016518: .4byte gBattleCommunication _0801651C: .4byte 0x0001600e _08016520: mov r0, r9 @@ -1632,9 +1632,9 @@ _0801652A: bne _08016532 b _08015E8A _08016532: - ldr r0, _08016550 @ =gUnknown_030042D4 + ldr r0, _08016550 @ =gBattleMainFunc ldr r1, [r0] - ldr r0, _08016554 @ =sub_8011E8C + ldr r0, _08016554 @ =BattleTurnPassed eors r1, r0 negs r0, r1 orrs r0, r1 @@ -1647,12 +1647,12 @@ _08016532: pop {r1} bx r1 .align 2, 0 -_08016550: .4byte gUnknown_030042D4 -_08016554: .4byte sub_8011E8C - thumb_func_end sub_8015DFC +_08016550: .4byte gBattleMainFunc +_08016554: .4byte BattleTurnPassed + thumb_func_end UpdateTurnCounters - thumb_func_start sub_8016558 -sub_8016558: @ 8016558 + thumb_func_start TurnBasedEffects +TurnBasedEffects: @ 8016558 push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -1661,26 +1661,26 @@ sub_8016558: @ 8016558 sub sp, 0x8 movs r0, 0 mov r9, r0 - ldr r2, _08016578 @ =gUnknown_02024C6C + ldr r2, _08016578 @ =gHitMarker ldr r0, [r2] ldr r1, _0801657C @ =0x01000020 orrs r0, r1 str r0, [r2] bl _08017088 .align 2, 0 -_08016578: .4byte gUnknown_02024C6C +_08016578: .4byte gHitMarker _0801657C: .4byte 0x01000020 _08016580: - ldr r3, _080165B4 @ =gUnknown_02024A60 - ldr r4, _080165B8 @ =gPlayerMonIndex - ldr r1, _080165BC @ =gUnknown_02024A7A + ldr r3, _080165B4 @ =gActiveBank + ldr r4, _080165B8 @ =gBankAttacker + ldr r1, _080165BC @ =gTurnOrder adds r5, r7, r2 ldrb r0, [r5] adds r0, r1 ldrb r0, [r0] strb r0, [r4] strb r0, [r3] - ldr r0, _080165C0 @ =gUnknown_02024C0C + ldr r0, _080165C0 @ =gAbsentBankFlags ldrb r1, [r0] ldr r2, _080165C4 @ =gBitTable ldrb r0, [r3] @@ -1696,10 +1696,10 @@ _08016580: strb r0, [r5] bl _08017088 .align 2, 0 -_080165B4: .4byte gUnknown_02024A60 -_080165B8: .4byte gPlayerMonIndex -_080165BC: .4byte gUnknown_02024A7A -_080165C0: .4byte gUnknown_02024C0C +_080165B4: .4byte gActiveBank +_080165B8: .4byte gBankAttacker +_080165BC: .4byte gTurnOrder +_080165C0: .4byte gAbsentBankFlags _080165C4: .4byte gBitTable _080165C8: movs r5, 0xB0 @@ -1740,7 +1740,7 @@ _080165E8: .4byte _08016704 .4byte _08017064 _08016638: - ldr r1, _08016694 @ =gUnknown_02024C98 + ldr r1, _08016694 @ =gStatuses3 ldrb r3, [r6] lsls r0, r3, 2 adds r0, r1 @@ -1786,7 +1786,7 @@ _08016686: adds r1, r0 bl _08017072 .align 2, 0 -_08016694: .4byte gUnknown_02024C98 +_08016694: .4byte gStatuses3 _08016698: .4byte gBattleMons _0801669C: .4byte gBattleMoveDamage _080166A0: .4byte gUnknown_081D93D1 @@ -1798,7 +1798,7 @@ _080166A8: movs r0, 0x1 movs r2, 0 movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 beq _080166C8 @@ -1858,7 +1858,7 @@ _0801671E: .align 2, 0 _0801672C: .4byte 0x02000000 _08016730: - ldr r0, _080167A8 @ =gUnknown_02024C98 + ldr r0, _080167A8 @ =gStatuses3 ldrb r2, [r6] lsls r1, r2, 2 adds r1, r0 @@ -1883,7 +1883,7 @@ _08016730: ldrh r0, [r0, 0x28] cmp r0, 0 beq _0801679C - ldr r0, _080167B0 @ =gEnemyMonIndex + ldr r0, _080167B0 @ =gBankTarget strb r5, [r0] ldr r2, _080167B4 @ =gBattleMoveDamage ldrb r0, [r6] @@ -1919,9 +1919,9 @@ _0801679C: adds r1, r3 bl _08017072 .align 2, 0 -_080167A8: .4byte gUnknown_02024C98 +_080167A8: .4byte gStatuses3 _080167AC: .4byte gBattleMons -_080167B0: .4byte gEnemyMonIndex +_080167B0: .4byte gBankTarget _080167B4: .4byte gBattleMoveDamage _080167B8: .4byte 0x02000000 _080167BC: .4byte 0x000160a4 @@ -2235,7 +2235,7 @@ _080169DC: ldr r5, _08016AA0 @ =0x000160a5 adds r0, r2, r5 strb r1, [r0] - ldr r1, _08016AA4 @ =gUnknown_030041C0 + ldr r1, _08016AA4 @ =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x2 @@ -2254,7 +2254,7 @@ _080169DC: strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] - ldr r1, _08016AA8 @ =gUnknown_02024C10 + ldr r1, _08016AA8 @ =gBattlescriptCurrInstr ldr r0, _08016AAC @ =gUnknown_081D95E2 str r0, [r1] ldr r2, _08016AB0 @ =gBattleMoveDamage @@ -2278,12 +2278,12 @@ _08016A94: .4byte 0x02000000 _08016A98: .4byte 0x00016004 _08016A9C: .4byte 0x000160a4 _08016AA0: .4byte 0x000160a5 -_08016AA4: .4byte gUnknown_030041C0 -_08016AA8: .4byte gUnknown_02024C10 +_08016AA4: .4byte gBattleTextBuff1 +_08016AA8: .4byte gBattlescriptCurrInstr _08016AAC: .4byte gUnknown_081D95E2 _08016AB0: .4byte gBattleMoveDamage _08016AB4: - ldr r1, _08016B00 @ =gUnknown_030041C0 + ldr r1, _08016B00 @ =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x2 @@ -2305,7 +2305,7 @@ _08016AB4: strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] - ldr r1, _08016B10 @ =gUnknown_02024C10 + ldr r1, _08016B10 @ =gBattlescriptCurrInstr ldr r0, _08016B14 @ =gUnknown_081D95F4 str r0, [r1] _08016AE6: @@ -2323,11 +2323,11 @@ _08016AF6: adds r1, r7 b _08017072 .align 2, 0 -_08016B00: .4byte gUnknown_030041C0 +_08016B00: .4byte gBattleTextBuff1 _08016B04: .4byte 0x02000000 _08016B08: .4byte 0x00016004 _08016B0C: .4byte 0x00016005 -_08016B10: .4byte gUnknown_02024C10 +_08016B10: .4byte gBattlescriptCurrInstr _08016B14: .4byte gUnknown_081D95F4 _08016B18: movs r0, 0x8 @@ -2344,12 +2344,12 @@ _08016B18: ldr r1, _08016B68 @ =0xf7ffffff ands r0, r1 str r0, [r2] - ldr r1, _08016B6C @ =gUnknown_02024D1E + ldr r1, _08016B6C @ =gBattleCommunication movs r0, 0x1 strb r0, [r1, 0x5] ldr r0, _08016B70 @ =gUnknown_081D950F bl b_call_bc_move_exec - ldr r4, _08016B74 @ =gUnknown_02024A60 + ldr r4, _08016B74 @ =gActiveBank ldrb r0, [r6] strb r0, [r4] ldrb r0, [r4] @@ -2362,15 +2362,15 @@ _08016B18: movs r1, 0x28 movs r2, 0 movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs + bl EmitSetAttributes ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution b _08016BE0 .align 2, 0 _08016B68: .4byte 0xf7ffffff -_08016B6C: .4byte gUnknown_02024D1E +_08016B6C: .4byte gBattleCommunication _08016B70: .4byte gUnknown_081D950F -_08016B74: .4byte gUnknown_02024A60 +_08016B74: .4byte gActiveBank _08016B78: ldr r2, _08016BF4 @ =gBattleMons ldrb r1, [r6] @@ -2427,8 +2427,8 @@ _08016BD2: cmp r0, r1 bcc _08016BB2 _08016BE0: - ldr r2, _08016BF8 @ =gPlayerMonIndex - ldr r1, _08016BFC @ =gUnknown_02024A68 + ldr r2, _08016BF8 @ =gBankAttacker + ldr r1, _08016BFC @ =gNoOfAllBanks ldrb r0, [r2] ldrb r1, [r1] cmp r0, r1 @@ -2438,10 +2438,10 @@ _08016BE0: b _0801707E .align 2, 0 _08016BF4: .4byte gBattleMons -_08016BF8: .4byte gPlayerMonIndex -_08016BFC: .4byte gUnknown_02024A68 +_08016BF8: .4byte gBankAttacker +_08016BFC: .4byte gNoOfAllBanks _08016C00: - ldr r5, _08016C38 @ =gUnknown_02024A60 + ldr r5, _08016C38 @ =gActiveBank ldrb r0, [r5] strb r0, [r2] ldr r2, _08016C3C @ =gBattleMons @@ -2462,15 +2462,15 @@ _08016C00: cmp r4, 0 beq _08016C44 ldrb r0, [r5] - bl b_cancel_multi_turn_move_maybe - ldr r1, _08016C40 @ =gUnknown_02024D1E + bl CancelMultiTurnMoves + ldr r1, _08016C40 @ =gBattleCommunication movs r0, 0x1 strb r0, [r1, 0x5] b _08016C78 .align 2, 0 -_08016C38: .4byte gUnknown_02024A60 +_08016C38: .4byte gActiveBank _08016C3C: .4byte gBattleMons -_08016C40: .4byte gUnknown_02024D1E +_08016C40: .4byte gBattleCommunication _08016C44: ldrb r3, [r5] adds r0, r3, 0 @@ -2481,7 +2481,7 @@ _08016C44: ands r0, r1 cmp r0, 0 beq _08016C6C - ldr r0, _08016C68 @ =gUnknown_02024D1E + ldr r0, _08016C68 @ =gBattleCommunication strb r4, [r0, 0x5] ldr r0, [r2] movs r1, 0x80 @@ -2490,13 +2490,13 @@ _08016C44: str r0, [r2] b _08016C78 .align 2, 0 -_08016C68: .4byte gUnknown_02024D1E +_08016C68: .4byte gBattleCommunication _08016C6C: - ldr r1, _08016C94 @ =gUnknown_02024D1E + ldr r1, _08016C94 @ =gBattleCommunication movs r0, 0x1 strb r0, [r1, 0x5] adds r0, r3, 0 - bl b_cancel_multi_turn_move_maybe + bl CancelMultiTurnMoves _08016C78: ldr r0, _08016C98 @ =gUnknown_081D957E bl b_call_bc_move_exec @@ -2514,7 +2514,7 @@ _08016C8A: adds r1, r7 b _08017072 .align 2, 0 -_08016C94: .4byte gUnknown_02024D1E +_08016C94: .4byte gBattleCommunication _08016C98: .4byte gUnknown_081D957E _08016C9C: .4byte 0x02000000 _08016CA0: @@ -2541,7 +2541,7 @@ _08016CA0: cmp r0, 0 beq _08016CE0 ldrb r0, [r6] - bl b_cancel_multi_turn_move_maybe + bl CancelMultiTurnMoves b _08016D3C .align 2, 0 _08016CD8: .4byte gBattleMons @@ -2571,7 +2571,7 @@ _08016CE0: ands r0, r4 cmp r0, 0 bne _08016D3C - ldr r1, _08016D4C @ =gUnknown_02024D1E + ldr r1, _08016D4C @ =gBattleCommunication movs r0, 0x47 strb r0, [r1, 0x3] movs r0, 0x1 @@ -2600,11 +2600,11 @@ _08016D3C: b _08017072 .align 2, 0 _08016D48: .4byte 0xffffefff -_08016D4C: .4byte gUnknown_02024D1E +_08016D4C: .4byte gBattleCommunication _08016D50: .4byte gUnknown_081D9587 _08016D54: .4byte 0x02000000 _08016D58: - ldr r0, _08016DD4 @ =gUnknown_02024CA8 + ldr r0, _08016DD4 @ =gDisableStructs ldrb r3, [r6] lsls r1, r3, 3 subs r1, r3 @@ -2669,7 +2669,7 @@ _08016DAC: strb r0, [r1, 0xB] b _08016E1E .align 2, 0 -_08016DD4: .4byte gUnknown_02024CA8 +_08016DD4: .4byte gDisableStructs _08016DD8: .4byte gBattleMons _08016DDC: ldrb r0, [r6] @@ -2714,7 +2714,7 @@ _08016E1E: _08016E28: .4byte gUnknown_081D9148 _08016E2C: .4byte 0x02000000 _08016E30: - ldr r3, _08016E7C @ =gUnknown_02024CA8 + ldr r3, _08016E7C @ =gDisableStructs ldrb r1, [r6] lsls r0, r1, 3 subs r0, r1 @@ -2752,7 +2752,7 @@ _08016E30: strb r0, [r1, 0xE] b _08016EE8 .align 2, 0 -_08016E7C: .4byte gUnknown_02024CA8 +_08016E7C: .4byte gDisableStructs _08016E80: .4byte gBattleMons _08016E84: lsrs r1, r4, 28 @@ -2815,7 +2815,7 @@ _08016EE8: _08016EF4: .4byte gUnknown_081D914F _08016EF8: .4byte 0x02000000 _08016EFC: - ldr r0, _08016F1C @ =gUnknown_02024C98 + ldr r0, _08016F1C @ =gStatuses3 ldrb r1, [r6] lsls r1, 2 adds r1, r0 @@ -2832,9 +2832,9 @@ _08016F14: lsls r1, 9 b _08017070 .align 2, 0 -_08016F1C: .4byte gUnknown_02024C98 +_08016F1C: .4byte gStatuses3 _08016F20: - ldr r2, _08016F60 @ =gUnknown_02024CA8 + ldr r2, _08016F60 @ =gDisableStructs ldrb r1, [r6] lsls r0, r1, 3 subs r0, r1 @@ -2855,7 +2855,7 @@ _08016F20: strb r0, [r3, 0x12] cmp r1, 0 bne _08016F5A - ldr r0, _08016F64 @ =gUnknown_02024C98 + ldr r0, _08016F64 @ =gStatuses3 ldrb r2, [r6] lsls r2, 2 adds r2, r0 @@ -2868,11 +2868,11 @@ _08016F5A: lsls r1, 9 b _08017070 .align 2, 0 -_08016F60: .4byte gUnknown_02024CA8 -_08016F64: .4byte gUnknown_02024C98 +_08016F60: .4byte gDisableStructs +_08016F64: .4byte gStatuses3 _08016F68: .4byte 0xfffffdff _08016F6C: - ldr r2, _08016F98 @ =gUnknown_02024CA8 + ldr r2, _08016F98 @ =gDisableStructs ldrb r1, [r6] lsls r0, r1, 3 subs r0, r1 @@ -2896,9 +2896,9 @@ _08016F92: lsls r1, 9 b _08017070 .align 2, 0 -_08016F98: .4byte gUnknown_02024CA8 +_08016F98: .4byte gDisableStructs _08016F9C: - ldr r4, _0801704C @ =gUnknown_02024C98 + ldr r4, _0801704C @ =gStatuses3 ldrb r0, [r6] lsls r0, 2 adds r2, r0, r4 @@ -2942,7 +2942,7 @@ _08016F9C: cmp r0, 0 bne _08017042 ldrb r0, [r6] - bl b_cancel_multi_turn_move_maybe + bl CancelMultiTurnMoves bl Random ldrb r1, [r6] adds r2, r1, 0 @@ -2962,10 +2962,10 @@ _08016F9C: movs r1, 0x28 movs r2, 0 movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs + bl EmitSetAttributes ldrb r0, [r6] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _08017058 @ =gUnknown_02024C0A + bl MarkBufferBankForExecution + ldr r1, _08017058 @ =gEffectBank ldrb r0, [r6] strb r0, [r1] ldr r0, _0801705C @ =gUnknown_081D964C @@ -2982,10 +2982,10 @@ _08017042: adds r1, r7 b _08017072 .align 2, 0 -_0801704C: .4byte gUnknown_02024C98 +_0801704C: .4byte gStatuses3 _08017050: .4byte 0xfffff800 _08017054: .4byte gBattleMons -_08017058: .4byte gUnknown_02024C0A +_08017058: .4byte gEffectBank _0801705C: .4byte gUnknown_081D964C _08017060: .4byte 0x02000000 _08017064: @@ -3014,7 +3014,7 @@ _08017088: ldr r7, _080170C8 @ =0x02000000 ldr r2, _080170CC @ =0x00016001 adds r0, r7, r2 - ldr r1, _080170D0 @ =gUnknown_02024A68 + ldr r1, _080170D0 @ =gNoOfAllBanks ldrb r0, [r0] mov r10, r7 mov r8, r1 @@ -3029,7 +3029,7 @@ _08017088: bhi _080170AC bl _08016580 _080170AC: - ldr r0, _080170D4 @ =gUnknown_02024C6C + ldr r0, _080170D4 @ =gHitMarker ldr r1, [r0] ldr r2, _080170D8 @ =0xfeffffdf ands r1, r2 @@ -3047,10 +3047,10 @@ _080170B8: .align 2, 0 _080170C8: .4byte 0x02000000 _080170CC: .4byte 0x00016001 -_080170D0: .4byte gUnknown_02024A68 -_080170D4: .4byte gUnknown_02024C6C +_080170D0: .4byte gNoOfAllBanks +_080170D4: .4byte gHitMarker _080170D8: .4byte 0xfeffffdf - thumb_func_end sub_8016558 + thumb_func_end TurnBasedEffects thumb_func_start sub_80170DC sub_80170DC: @ 80170DC @@ -3059,7 +3059,7 @@ sub_80170DC: @ 80170DC mov r6, r9 mov r5, r8 push {r5-r7} - ldr r2, _08017108 @ =gUnknown_02024C6C + ldr r2, _08017108 @ =gHitMarker ldr r0, [r2] ldr r1, _0801710C @ =0x01000020 orrs r0, r1 @@ -3077,14 +3077,14 @@ sub_80170DC: @ 80170DC _08017104: b _08017380 .align 2, 0 -_08017108: .4byte gUnknown_02024C6C +_08017108: .4byte gHitMarker _0801710C: .4byte 0x01000020 _08017110: .4byte 0x02000000 _08017114: .4byte 0x00016110 _08017118: ldr r2, _0801715C @ =0x00016111 add r2, r8 - ldr r0, _08017160 @ =gUnknown_02024A68 + ldr r0, _08017160 @ =gNoOfAllBanks ldrb r1, [r2] mov r9, r0 ldrb r0, [r0] @@ -3092,20 +3092,20 @@ _08017118: bcc _0801712A b _08017248 _0801712A: - ldr r4, _08017164 @ =gUnknown_02024A60 + ldr r4, _08017164 @ =gActiveBank adds r5, r2, 0 - ldr r1, _08017168 @ =gUnknown_02024DBC + ldr r1, _08017168 @ =gWishFutureKnock mov r12, r1 movs r2, 0x8 add r2, r12 mov r10, r2 mov r7, r12 adds r7, 0x18 - ldr r6, _0801716C @ =gUnknown_030041C0 + ldr r6, _0801716C @ =gBattleTextBuff1 _0801713E: ldrb r3, [r5] strb r3, [r4] - ldr r0, _08017170 @ =gUnknown_02024C0C + ldr r0, _08017170 @ =gAbsentBankFlags ldrb r1, [r0] ldr r2, _08017174 @ =gBitTable ldrb r0, [r4] @@ -3120,16 +3120,16 @@ _0801713E: b _0801723C .align 2, 0 _0801715C: .4byte 0x00016111 -_08017160: .4byte gUnknown_02024A68 -_08017164: .4byte gUnknown_02024A60 -_08017168: .4byte gUnknown_02024DBC -_0801716C: .4byte gUnknown_030041C0 -_08017170: .4byte gUnknown_02024C0C +_08017160: .4byte gNoOfAllBanks +_08017164: .4byte gActiveBank +_08017168: .4byte gWishFutureKnock +_0801716C: .4byte gBattleTextBuff1 +_08017170: .4byte gAbsentBankFlags _08017174: .4byte gBitTable _08017178: adds r0, r3, 0x1 strb r0, [r5] - ldr r1, _080171B4 @ =gUnknown_02024DBC + ldr r1, _080171B4 @ =gWishFutureKnock ldrb r0, [r4] adds r1, r0, r1 ldrb r0, [r1] @@ -3154,15 +3154,15 @@ _08017178: ldrh r0, [r0] cmp r0, 0xF8 bne _080171C0 - ldr r0, _080171BC @ =gUnknown_02024D1E + ldr r0, _080171BC @ =gBattleCommunication strb r3, [r0, 0x5] b _080171C6 .align 2, 0 -_080171B4: .4byte gUnknown_02024DBC +_080171B4: .4byte gWishFutureKnock _080171B8: .4byte gBattleMons -_080171BC: .4byte gUnknown_02024D1E +_080171BC: .4byte gBattleCommunication _080171C0: - ldr r1, _08017220 @ =gUnknown_02024D1E + ldr r1, _08017220 @ =gBattleCommunication movs r0, 0x1 strb r0, [r1, 0x5] _080171C6: @@ -3183,10 +3183,10 @@ _080171C6: strb r0, [r6, 0x3] movs r0, 0xFF strb r0, [r6, 0x4] - ldr r3, _08017224 @ =gEnemyMonIndex + ldr r3, _08017224 @ =gBankTarget ldrb r0, [r4] strb r0, [r3] - ldr r1, _08017228 @ =gPlayerMonIndex + ldr r1, _08017228 @ =gBankAttacker mov r0, r12 adds r0, 0x4 ldrb r2, [r4] @@ -3199,7 +3199,7 @@ _080171C6: add r0, r10 ldr r0, [r0] str r0, [r1] - ldr r2, _08017230 @ =gUnknown_02024D68 + ldr r2, _08017230 @ =gSpecialStatuses ldrb r1, [r3] lsls r0, r1, 2 adds r0, r1 @@ -3211,11 +3211,11 @@ _080171C6: ldr r0, _08017238 @ =gUnknown_081D92D7 b _08017364 .align 2, 0 -_08017220: .4byte gUnknown_02024D1E -_08017224: .4byte gEnemyMonIndex -_08017228: .4byte gPlayerMonIndex +_08017220: .4byte gBattleCommunication +_08017224: .4byte gBankTarget +_08017228: .4byte gBankAttacker _0801722C: .4byte gBattleMoveDamage -_08017230: .4byte gUnknown_02024D68 +_08017230: .4byte gSpecialStatuses _08017234: .4byte 0x0000ffff _08017238: .4byte gUnknown_081D92D7 _0801723C: @@ -3237,7 +3237,7 @@ _08017248: _08017258: ldr r2, _080172A0 @ =0x00016111 add r2, r8 - ldr r0, _080172A4 @ =gUnknown_02024A68 + ldr r0, _080172A4 @ =gNoOfAllBanks ldrb r1, [r2] mov r9, r0 ldrb r0, [r0] @@ -3245,19 +3245,19 @@ _08017258: bcc _0801726A b _08017380 _0801726A: - ldr r5, _080172A8 @ =gUnknown_02024A60 + ldr r5, _080172A8 @ =gActiveBank adds r3, r2, 0 - ldr r4, _080172AC @ =gUnknown_030041C0 - ldr r7, _080172B0 @ =gUnknown_02024CA8 + ldr r4, _080172AC @ =gBattleTextBuff1 + ldr r7, _080172B0 @ =gDisableStructs _08017272: - ldr r2, _080172B4 @ =gPlayerMonIndex - ldr r1, _080172B8 @ =gUnknown_02024A7A + ldr r2, _080172B4 @ =gBankAttacker + ldr r1, _080172B8 @ =gTurnOrder ldrb r0, [r3] adds r0, r1 ldrb r0, [r0] strb r0, [r2] strb r0, [r5] - ldr r0, _080172BC @ =gUnknown_02024C0C + ldr r0, _080172BC @ =gAbsentBankFlags ldrb r1, [r0] ldr r2, _080172C0 @ =gBitTable ldrb r0, [r5] @@ -3274,19 +3274,19 @@ _08017272: .align 2, 0 _0801729C: .4byte 0x00016110 _080172A0: .4byte 0x00016111 -_080172A4: .4byte gUnknown_02024A68 -_080172A8: .4byte gUnknown_02024A60 -_080172AC: .4byte gUnknown_030041C0 -_080172B0: .4byte gUnknown_02024CA8 -_080172B4: .4byte gPlayerMonIndex -_080172B8: .4byte gUnknown_02024A7A -_080172BC: .4byte gUnknown_02024C0C +_080172A4: .4byte gNoOfAllBanks +_080172A8: .4byte gActiveBank +_080172AC: .4byte gBattleTextBuff1 +_080172B0: .4byte gDisableStructs +_080172B4: .4byte gBankAttacker +_080172B8: .4byte gTurnOrder +_080172BC: .4byte gAbsentBankFlags _080172C0: .4byte gBitTable _080172C4: ldrb r0, [r3] adds r0, 0x1 strb r0, [r3] - ldr r6, _08017334 @ =gUnknown_02024C98 + ldr r6, _08017334 @ =gStatuses3 ldrb r2, [r5] lsls r0, r2, 2 adds r0, r6 @@ -3335,14 +3335,14 @@ _080172C4: adds r0, r2 ldrh r0, [r0, 0x28] str r0, [r3] - ldr r1, _08017340 @ =gUnknown_02024C10 + ldr r1, _08017340 @ =gBattlescriptCurrInstr ldr r0, _08017344 @ =gUnknown_081D9202 b _08017360 .align 2, 0 -_08017334: .4byte gUnknown_02024C98 +_08017334: .4byte gStatuses3 _08017338: .4byte gBattleMoveDamage _0801733C: .4byte gBattleMons -_08017340: .4byte gUnknown_02024C10 +_08017340: .4byte gBattlescriptCurrInstr _08017344: .4byte gUnknown_081D9202 _08017348: lsrs r1, 28 @@ -3355,7 +3355,7 @@ _08017348: ands r0, r3 orrs r0, r1 strb r0, [r4, 0xF] - ldr r1, _0801736C @ =gUnknown_02024C10 + ldr r1, _0801736C @ =gBattlescriptCurrInstr ldr r0, _08017370 @ =gUnknown_081D921D _08017360: str r0, [r1] @@ -3365,7 +3365,7 @@ _08017364: movs r0, 0x1 b _0801738C .align 2, 0 -_0801736C: .4byte gUnknown_02024C10 +_0801736C: .4byte gBattlescriptCurrInstr _08017370: .4byte gUnknown_081D921D _08017374: ldrb r0, [r3] @@ -3375,7 +3375,7 @@ _08017374: bcs _08017380 b _08017272 _08017380: - ldr r2, _0801739C @ =gUnknown_02024C6C + ldr r2, _0801739C @ =gHitMarker ldr r0, [r2] ldr r1, _080173A0 @ =0xfeffffdf ands r0, r1 @@ -3390,7 +3390,7 @@ _0801738C: pop {r1} bx r1 .align 2, 0 -_0801739C: .4byte gUnknown_02024C6C +_0801739C: .4byte gHitMarker _080173A0: .4byte 0xfeffffdf thumb_func_end sub_80170DC @@ -3476,11 +3476,11 @@ _08017440: adds r0, 0x1 strb r0, [r1] movs r5, 0 - ldr r0, _08017510 @ =gUnknown_02024A68 + ldr r0, _08017510 @ =gNoOfAllBanks ldrb r0, [r0] cmp r5, r0 bge _08017490 - ldr r6, _08017514 @ =gUnknown_02024C0C + ldr r6, _08017514 @ =gAbsentBankFlags _0801745E: ldrb r0, [r6] ldr r2, _08017518 @ =gBitTable @@ -3503,16 +3503,16 @@ _0801745E: strb r0, [r6] _08017486: adds r5, 0x1 - ldr r0, _08017510 @ =gUnknown_02024A68 + ldr r0, _08017510 @ =gNoOfAllBanks ldrb r0, [r0] cmp r5, r0 blt _0801745E _08017490: ldr r1, _0801751C @ =0x02000000 mov r9, r1 - ldr r0, _08017520 @ =gUnknown_02024C09 + ldr r0, _08017520 @ =gBank1 mov r12, r0 - ldr r1, _08017524 @ =gEnemyMonIndex + ldr r1, _08017524 @ =gBankTarget mov r8, r1 mov r10, r9 ldr r5, _08017508 @ =0x0001605a @@ -3535,7 +3535,7 @@ _080174A8: bne _080174EA ldrb r2, [r6] ldr r4, _08017518 @ =gBitTable - ldr r1, _08017530 @ =gUnknown_02024A6A + ldr r1, _08017530 @ =gBattlePartyID lsls r0, r3, 1 adds r0, r1 ldrh r0, [r0] @@ -3545,7 +3545,7 @@ _080174A8: ands r2, r0 cmp r2, 0 bne _080174EA - ldr r0, _08017514 @ =gUnknown_02024C0C + ldr r0, _08017514 @ =gAbsentBankFlags ldrb r1, [r0] lsls r0, r3, 2 adds r0, r4 @@ -3558,7 +3558,7 @@ _080174EA: ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] - ldr r1, _08017510 @ =gUnknown_02024A68 + ldr r1, _08017510 @ =gNoOfAllBanks lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] @@ -3572,17 +3572,17 @@ _080174EA: .align 2, 0 _08017508: .4byte 0x0001605a _0801750C: .4byte 0x00016059 -_08017510: .4byte gUnknown_02024A68 -_08017514: .4byte gUnknown_02024C0C +_08017510: .4byte gNoOfAllBanks +_08017514: .4byte gAbsentBankFlags _08017518: .4byte gBitTable _0801751C: .4byte 0x02000000 -_08017520: .4byte gUnknown_02024C09 -_08017524: .4byte gEnemyMonIndex +_08017520: .4byte gBank1 +_08017524: .4byte gBankTarget _08017528: .4byte gBattleMons _0801752C: .4byte 0x00016113 -_08017530: .4byte gUnknown_02024A6A +_08017530: .4byte gBattlePartyID _08017534: - ldr r0, _0801755C @ =gUnknown_02024C09 + ldr r0, _0801755C @ =gBank1 ldrb r0, [r0] bl sub_8015740 ldr r2, _08017560 @ =0x02000000 @@ -3591,7 +3591,7 @@ _08017534: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] - ldr r1, _08017568 @ =gUnknown_02024A68 + ldr r1, _08017568 @ =gNoOfAllBanks lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] @@ -3602,10 +3602,10 @@ _08017534: movs r0, 0x3 b _0801769C .align 2, 0 -_0801755C: .4byte gUnknown_02024C09 +_0801755C: .4byte gBank1 _08017560: .4byte 0x02000000 _08017564: .4byte 0x0001605a -_08017568: .4byte gUnknown_02024A68 +_08017568: .4byte gNoOfAllBanks _0801756C: .4byte 0x00016059 _08017570: ldr r0, _08017578 @ =0x00016059 @@ -3625,8 +3625,8 @@ _0801757C: adds r0, 0x1 strb r0, [r1] _0801758E: - ldr r7, _080175E0 @ =gUnknown_02024C09 - ldr r6, _080175E4 @ =gEnemyMonIndex + ldr r7, _080175E0 @ =gBank1 + ldr r6, _080175E4 @ =gBankTarget ldr r1, _080175E8 @ =0x02000000 mov r8, r1 ldr r3, _080175D8 @ =0x0001605a @@ -3644,7 +3644,7 @@ _0801759E: ldrh r0, [r0, 0x28] cmp r0, 0 bne _080175C4 - ldr r0, _080175F4 @ =gUnknown_02024C0C + ldr r0, _080175F4 @ =gAbsentBankFlags ldrb r1, [r0] lsls r0, r2, 2 adds r0, r4 @@ -3656,7 +3656,7 @@ _0801759E: _080175C4: adds r0, r2, 0x1 strb r0, [r3] - ldr r1, _080175F8 @ =gUnknown_02024A68 + ldr r1, _080175F8 @ =gNoOfAllBanks lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] @@ -3666,20 +3666,20 @@ _080175C4: .align 2, 0 _080175D8: .4byte 0x0001605a _080175DC: .4byte 0x00016059 -_080175E0: .4byte gUnknown_02024C09 -_080175E4: .4byte gEnemyMonIndex +_080175E0: .4byte gBank1 +_080175E4: .4byte gBankTarget _080175E8: .4byte 0x02000000 _080175EC: .4byte gBattleMons _080175F0: .4byte gBitTable -_080175F4: .4byte gUnknown_02024C0C -_080175F8: .4byte gUnknown_02024A68 +_080175F4: .4byte gAbsentBankFlags +_080175F8: .4byte gNoOfAllBanks _080175FC: ldr r0, _0801761C @ =0x0001605a add r0, r9 ldrb r1, [r0] adds r1, 0x1 strb r1, [r0] - ldr r0, _08017620 @ =gUnknown_02024A68 + ldr r0, _08017620 @ =gNoOfAllBanks lsls r1, 24 lsrs r1, 24 ldrb r0, [r0] @@ -3693,7 +3693,7 @@ _08017612: b _080176A0 .align 2, 0 _0801761C: .4byte 0x0001605a -_08017620: .4byte gUnknown_02024A68 +_08017620: .4byte gNoOfAllBanks _08017624: .4byte 0x00016059 _08017628: ldr r1, _08017634 @ =0x00016059 @@ -3710,7 +3710,7 @@ _08017638: movs r1, 0 movs r2, 0 movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 lsrs r0, 24 cmp r0, 0 @@ -3722,7 +3722,7 @@ _08017652: movs r1, 0 movs r2, 0 movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 beq _08017668 @@ -3743,7 +3743,7 @@ _0801767C: movs r1, 0 movs r2, 0 movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 beq _08017692 @@ -3784,12 +3784,12 @@ _080176C4: .4byte 0x00016059 b_clear_atk_up_if_hit_flag_unless_enraged: @ 80176C8 push {r4-r6,lr} movs r3, 0 - ldr r0, _08017708 @ =gUnknown_02024A68 + ldr r0, _08017708 @ =gNoOfAllBanks adds r5, r0, 0 ldrb r0, [r5] cmp r3, r0 bge _08017700 - ldr r4, _0801770C @ =gUnknown_02024C60 + ldr r4, _0801770C @ =gChosenMovesByBanks movs r6, 0x80 lsls r6, 16 ldr r2, _08017710 @ =gUnknown_02024AD0 @@ -3817,8 +3817,8 @@ _08017700: pop {r0} bx r0 .align 2, 0 -_08017708: .4byte gUnknown_02024A68 -_0801770C: .4byte gUnknown_02024C60 +_08017708: .4byte gNoOfAllBanks +_0801770C: .4byte gChosenMovesByBanks _08017710: .4byte gUnknown_02024AD0 _08017714: .4byte 0xff7fffff thumb_func_end b_clear_atk_up_if_hit_flag_unless_enraged @@ -3882,7 +3882,7 @@ _08017768: .4byte _08017F9E _080177A4: ldr r1, _080177D0 @ =gBattleMons - ldr r3, _080177D4 @ =gPlayerMonIndex + ldr r3, _080177D4 @ =gBankAttacker ldrb r2, [r3] movs r0, 0x58 muls r2, r0 @@ -3892,7 +3892,7 @@ _080177A4: ldr r1, _080177D8 @ =0xfdffffff ands r0, r1 str r0, [r2] - ldr r0, _080177DC @ =gUnknown_02024C98 + ldr r0, _080177DC @ =gStatuses3 ldrb r2, [r3] lsls r2, 2 adds r2, r0 @@ -3903,13 +3903,13 @@ _080177A4: bl _08017F94 .align 2, 0 _080177D0: .4byte gBattleMons -_080177D4: .4byte gPlayerMonIndex +_080177D4: .4byte gBankAttacker _080177D8: .4byte 0xfdffffff -_080177DC: .4byte gUnknown_02024C98 +_080177DC: .4byte gStatuses3 _080177E0: .4byte 0xffffbfff _080177E4: ldr r7, _0801784C @ =gBattleMons - ldr r4, _08017850 @ =gPlayerMonIndex + ldr r4, _08017850 @ =gBankAttacker ldrb r1, [r4] movs r5, 0x58 adds r0, r1, 0 @@ -3950,10 +3950,10 @@ _08017804: ands r0, r1 str r0, [r2] bl b_movescr_stack_push_cursor - ldr r1, _08017858 @ =gUnknown_02024D1E + ldr r1, _08017858 @ =gBattleCommunication movs r0, 0x1 strb r0, [r1, 0x5] - ldr r1, _0801785C @ =gUnknown_02024C10 + ldr r1, _0801785C @ =gBattlescriptCurrInstr ldr r0, _08017860 @ =gUnknown_081D94FB str r0, [r1] movs r4, 0x2 @@ -3961,10 +3961,10 @@ _08017804: b _08017D90 .align 2, 0 _0801784C: .4byte gBattleMons -_08017850: .4byte gPlayerMonIndex +_08017850: .4byte gBankAttacker _08017854: .4byte 0xf7ffffff -_08017858: .4byte gUnknown_02024D1E -_0801785C: .4byte gUnknown_02024C10 +_08017858: .4byte gBattleCommunication +_0801785C: .4byte gBattlescriptCurrInstr _08017860: .4byte gUnknown_081D94FB _08017864: ldrb r0, [r4] @@ -3995,7 +3995,7 @@ _08017890: str r0, [r2] _08017894: ldr r2, _080178D8 @ =gBattleMons - ldr r0, _080178DC @ =gPlayerMonIndex + ldr r0, _080178DC @ =gBankAttacker ldrb r1, [r0] movs r0, 0x58 muls r1, r0 @@ -4007,7 +4007,7 @@ _08017894: ands r4, r0 cmp r4, 0 beq _080178F0 - ldr r0, _080178E0 @ =gUnknown_02024BE6 + ldr r0, _080178E0 @ =gCurrentMove ldrh r0, [r0] cmp r0, 0xAD bne _080178B8 @@ -4017,10 +4017,10 @@ _080178B8: bne _080178BE b _08017D90 _080178BE: - ldr r1, _080178E4 @ =gUnknown_02024C10 + ldr r1, _080178E4 @ =gBattlescriptCurrInstr ldr r0, _080178E8 @ =gUnknown_081D94EE str r0, [r1] - ldr r2, _080178EC @ =gUnknown_02024C6C + ldr r2, _080178EC @ =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 12 @@ -4031,11 +4031,11 @@ _080178BE: b _08017D90 .align 2, 0 _080178D8: .4byte gBattleMons -_080178DC: .4byte gPlayerMonIndex -_080178E0: .4byte gUnknown_02024BE6 -_080178E4: .4byte gUnknown_02024C10 +_080178DC: .4byte gBankAttacker +_080178E0: .4byte gCurrentMove +_080178E4: .4byte gBattlescriptCurrInstr _080178E8: .4byte gUnknown_081D94EE -_080178EC: .4byte gUnknown_02024C6C +_080178EC: .4byte gHitMarker _080178F0: adds r2, 0x50 adds r2, r1, r2 @@ -4044,21 +4044,21 @@ _080178F0: ands r0, r1 str r0, [r2] bl b_movescr_stack_push_cursor - ldr r0, _08017914 @ =gUnknown_02024D1E + ldr r0, _08017914 @ =gBattleCommunication strb r4, [r0, 0x5] - ldr r1, _08017918 @ =gUnknown_02024C10 + ldr r1, _08017918 @ =gBattlescriptCurrInstr ldr r0, _0801791C @ =gUnknown_081D94FB str r0, [r1] movs r1, 0x2 b _08017D8E .align 2, 0 _08017910: .4byte 0xf7ffffff -_08017914: .4byte gUnknown_02024D1E -_08017918: .4byte gUnknown_02024C10 +_08017914: .4byte gBattleCommunication +_08017918: .4byte gBattlescriptCurrInstr _0801791C: .4byte gUnknown_081D94FB _08017920: ldr r1, _0801797C @ =gBattleMons - ldr r7, _08017980 @ =gPlayerMonIndex + ldr r7, _08017980 @ =gBankAttacker ldrb r0, [r7] movs r6, 0x58 muls r0, r6 @@ -4082,7 +4082,7 @@ _0801793C: cmp r4, 0 beq _080179A8 ldr r2, _08017984 @ =gBattleMoves - ldr r0, _08017988 @ =gUnknown_02024BE6 + ldr r0, _08017988 @ =gCurrentMove ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -4091,10 +4091,10 @@ _0801793C: ldrb r0, [r0] cmp r0, 0x7D beq _08017998 - ldr r1, _0801798C @ =gUnknown_02024C10 + ldr r1, _0801798C @ =gBattlescriptCurrInstr ldr r0, _08017990 @ =gUnknown_081D9545 str r0, [r1] - ldr r2, _08017994 @ =gUnknown_02024C6C + ldr r2, _08017994 @ =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 2 @@ -4103,12 +4103,12 @@ _0801793C: b _080179C8 .align 2, 0 _0801797C: .4byte gBattleMons -_08017980: .4byte gPlayerMonIndex +_08017980: .4byte gBankAttacker _08017984: .4byte gBattleMoves -_08017988: .4byte gUnknown_02024BE6 -_0801798C: .4byte gUnknown_02024C10 +_08017988: .4byte gCurrentMove +_0801798C: .4byte gBattlescriptCurrInstr _08017990: .4byte gUnknown_081D9545 -_08017994: .4byte gUnknown_02024C6C +_08017994: .4byte gHitMarker _08017998: ldr r2, _080179A0 @ =0x02000000 ldr r7, _080179A4 @ =0x000160e7 @@ -4128,21 +4128,21 @@ _080179A8: ands r0, r1 str r0, [r2] bl b_movescr_stack_push_cursor - ldr r1, _080179CC @ =gUnknown_02024C10 + ldr r1, _080179CC @ =gBattlescriptCurrInstr ldr r0, _080179D0 @ =gUnknown_081D9552 str r0, [r1] - ldr r0, _080179D4 @ =gUnknown_02024D1E + ldr r0, _080179D4 @ =gBattleCommunication strb r4, [r0, 0x5] _080179C8: movs r0, 0x2 b _08017E3C .align 2, 0 -_080179CC: .4byte gUnknown_02024C10 +_080179CC: .4byte gBattlescriptCurrInstr _080179D0: .4byte gUnknown_081D9552 -_080179D4: .4byte gUnknown_02024D1E +_080179D4: .4byte gBattleCommunication _080179D8: ldr r1, _08017A30 @ =gBattleMons - ldr r0, _08017A34 @ =gPlayerMonIndex + ldr r0, _08017A34 @ =gBankAttacker ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -4153,7 +4153,7 @@ _080179D8: beq _080179EE b _08017D90 _080179EE: - ldr r0, _08017A38 @ =gUnknown_02024CA8 + ldr r0, _08017A38 @ =gDisableStructs lsls r1, r2, 3 subs r1, r2 lsls r1, 2 @@ -4165,17 +4165,17 @@ _080179EE: b _08017D90 _08017A02: adds r0, r2, 0 - bl b_cancel_multi_turn_move_maybe - ldr r2, _08017A3C @ =gUnknown_02024C6C + bl CancelMultiTurnMoves + ldr r2, _08017A3C @ =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 12 orrs r0, r1 str r0, [r2] - ldr r1, _08017A40 @ =gUnknown_02024D1E + ldr r1, _08017A40 @ =gBattleCommunication movs r0, 0 strb r0, [r1, 0x5] - ldr r1, _08017A44 @ =gUnknown_02024C10 + ldr r1, _08017A44 @ =gBattlescriptCurrInstr ldr r0, _08017A48 @ =gUnknown_081D9977 str r0, [r1] ldr r2, _08017A4C @ =gBattleMoveFlags @@ -4188,16 +4188,16 @@ _08017A02: b _08017D90 .align 2, 0 _08017A30: .4byte gBattleMons -_08017A34: .4byte gPlayerMonIndex -_08017A38: .4byte gUnknown_02024CA8 -_08017A3C: .4byte gUnknown_02024C6C -_08017A40: .4byte gUnknown_02024D1E -_08017A44: .4byte gUnknown_02024C10 +_08017A34: .4byte gBankAttacker +_08017A38: .4byte gDisableStructs +_08017A3C: .4byte gHitMarker +_08017A40: .4byte gBattleCommunication +_08017A44: .4byte gBattlescriptCurrInstr _08017A48: .4byte gUnknown_081D9977 _08017A4C: .4byte gBattleMoveFlags _08017A50: ldr r1, _08017AA4 @ =gBattleMons - ldr r3, _08017AA8 @ =gPlayerMonIndex + ldr r3, _08017AA8 @ =gBankAttacker ldrb r2, [r3] movs r0, 0x58 muls r0, r2 @@ -4212,7 +4212,7 @@ _08017A50: ldr r0, _08017AAC @ =0xffbfffff ands r1, r0 str r1, [r2] - ldr r2, _08017AB0 @ =gUnknown_02024CA8 + ldr r2, _08017AB0 @ =gDisableStructs ldrb r1, [r3] lsls r0, r1, 3 subs r0, r1 @@ -4221,11 +4221,11 @@ _08017A50: movs r1, 0 strb r1, [r0, 0x19] ldrb r0, [r3] - bl b_cancel_multi_turn_move_maybe - ldr r1, _08017AB4 @ =gUnknown_02024C10 + bl CancelMultiTurnMoves + ldr r1, _08017AB4 @ =gBattlescriptCurrInstr ldr r0, _08017AB8 @ =gUnknown_081D7956 str r0, [r1] - ldr r2, _08017ABC @ =gUnknown_02024C6C + ldr r2, _08017ABC @ =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 12 @@ -4240,17 +4240,17 @@ _08017A9C: b _08017D96 .align 2, 0 _08017AA4: .4byte gBattleMons -_08017AA8: .4byte gPlayerMonIndex +_08017AA8: .4byte gBankAttacker _08017AAC: .4byte 0xffbfffff -_08017AB0: .4byte gUnknown_02024CA8 -_08017AB4: .4byte gUnknown_02024C10 +_08017AB0: .4byte gDisableStructs +_08017AB4: .4byte gBattlescriptCurrInstr _08017AB8: .4byte gUnknown_081D7956 -_08017ABC: .4byte gUnknown_02024C6C +_08017ABC: .4byte gHitMarker _08017AC0: .4byte 0x02000000 _08017AC4: .4byte 0x000160e7 _08017AC8: ldr r1, _08017B08 @ =gBattleMons - ldr r3, _08017B0C @ =gPlayerMonIndex + ldr r3, _08017B0C @ =gBankAttacker ldrb r2, [r3] movs r0, 0x58 muls r0, r2 @@ -4267,7 +4267,7 @@ _08017AE2: negs r0, r0 ands r1, r0 str r1, [r2] - ldr r0, _08017B10 @ =gUnknown_02024D28 + ldr r0, _08017B10 @ =gProtectStructs ldrb r2, [r3] lsls r2, 4 adds r2, r0 @@ -4276,25 +4276,25 @@ _08017AE2: orrs r0, r1 strb r0, [r2, 0x2] ldrb r0, [r3] - bl b_cancel_multi_turn_move_maybe - ldr r1, _08017B14 @ =gUnknown_02024C10 + bl CancelMultiTurnMoves + ldr r1, _08017B14 @ =gBattlescriptCurrInstr ldr r0, _08017B18 @ =gUnknown_081D9573 b _08017D7E .align 2, 0 _08017B08: .4byte gBattleMons -_08017B0C: .4byte gPlayerMonIndex -_08017B10: .4byte gUnknown_02024D28 -_08017B14: .4byte gUnknown_02024C10 +_08017B0C: .4byte gBankAttacker +_08017B10: .4byte gProtectStructs +_08017B14: .4byte gBattlescriptCurrInstr _08017B18: .4byte gUnknown_081D9573 _08017B1C: - ldr r0, _08017B74 @ =gUnknown_02024CA8 - ldr r3, _08017B78 @ =gPlayerMonIndex + ldr r0, _08017B74 @ =gDisableStructs + ldr r3, _08017B78 @ =gBankAttacker ldrb r2, [r3] lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r1, r0 - ldr r0, _08017B7C @ =gUnknown_02024BE6 + ldr r0, _08017B7C @ =gCurrentMove ldrh r1, [r1, 0x4] ldrh r0, [r0] cmp r1, r0 @@ -4305,7 +4305,7 @@ _08017B36: bne _08017B3C b _08017D90 _08017B3C: - ldr r0, _08017B80 @ =gUnknown_02024D28 + ldr r0, _08017B80 @ =gProtectStructs lsls r2, 4 adds r2, r0 ldrb r0, [r2, 0x1] @@ -4318,11 +4318,11 @@ _08017B3C: adds r0, r7 strb r1, [r0] ldrb r0, [r3] - bl b_cancel_multi_turn_move_maybe - ldr r1, _08017B8C @ =gUnknown_02024C10 + bl CancelMultiTurnMoves + ldr r1, _08017B8C @ =gBattlescriptCurrInstr ldr r0, _08017B90 @ =gUnknown_081D9139 str r0, [r1] - ldr r2, _08017B94 @ =gUnknown_02024C6C + ldr r2, _08017B94 @ =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 12 @@ -4332,18 +4332,18 @@ _08017B3C: mov r9, r0 b _08017D90 .align 2, 0 -_08017B74: .4byte gUnknown_02024CA8 -_08017B78: .4byte gPlayerMonIndex -_08017B7C: .4byte gUnknown_02024BE6 -_08017B80: .4byte gUnknown_02024D28 +_08017B74: .4byte gDisableStructs +_08017B78: .4byte gBankAttacker +_08017B7C: .4byte gCurrentMove +_08017B80: .4byte gProtectStructs _08017B84: .4byte 0x02000000 _08017B88: .4byte 0x00016003 -_08017B8C: .4byte gUnknown_02024C10 +_08017B8C: .4byte gBattlescriptCurrInstr _08017B90: .4byte gUnknown_081D9139 -_08017B94: .4byte gUnknown_02024C6C +_08017B94: .4byte gHitMarker _08017B98: - ldr r0, _08017BF4 @ =gUnknown_02024CA8 - ldr r4, _08017BF8 @ =gPlayerMonIndex + ldr r0, _08017BF4 @ =gDisableStructs + ldr r4, _08017BF8 @ =gBankAttacker ldrb r3, [r4] lsls r1, r3, 3 subs r1, r3 @@ -4354,7 +4354,7 @@ _08017B98: cmp r0, 0 beq _08017BEC ldr r2, _08017BFC @ =gBattleMoves - ldr r0, _08017C00 @ =gUnknown_02024BE6 + ldr r0, _08017C00 @ =gCurrentMove ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -4363,7 +4363,7 @@ _08017B98: ldrb r0, [r0, 0x1] cmp r0, 0 bne _08017BEC - ldr r0, _08017C04 @ =gUnknown_02024D28 + ldr r0, _08017C04 @ =gProtectStructs lsls r2, r3, 4 adds r2, r0 ldrb r0, [r2, 0x2] @@ -4371,11 +4371,11 @@ _08017B98: orrs r0, r1 strb r0, [r2, 0x2] ldrb r0, [r4] - bl b_cancel_multi_turn_move_maybe - ldr r1, _08017C08 @ =gUnknown_02024C10 + bl CancelMultiTurnMoves + ldr r1, _08017C08 @ =gBattlescriptCurrInstr ldr r0, _08017C0C @ =gUnknown_081D938F str r0, [r1] - ldr r2, _08017C10 @ =gUnknown_02024C6C + ldr r2, _08017C10 @ =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 12 @@ -4389,20 +4389,20 @@ _08017BEC: adds r1, r2, r0 b _08017D96 .align 2, 0 -_08017BF4: .4byte gUnknown_02024CA8 -_08017BF8: .4byte gPlayerMonIndex +_08017BF4: .4byte gDisableStructs +_08017BF8: .4byte gBankAttacker _08017BFC: .4byte gBattleMoves -_08017C00: .4byte gUnknown_02024BE6 -_08017C04: .4byte gUnknown_02024D28 -_08017C08: .4byte gUnknown_02024C10 +_08017C00: .4byte gCurrentMove +_08017C04: .4byte gProtectStructs +_08017C08: .4byte gBattlescriptCurrInstr _08017C0C: .4byte gUnknown_081D938F -_08017C10: .4byte gUnknown_02024C6C +_08017C10: .4byte gHitMarker _08017C14: .4byte 0x02000000 _08017C18: .4byte 0x000160e7 _08017C1C: - ldr r4, _08017C4C @ =gPlayerMonIndex + ldr r4, _08017C4C @ =gBankAttacker ldrb r0, [r4] - ldr r1, _08017C50 @ =gUnknown_02024BE6 + ldr r1, _08017C50 @ =gCurrentMove ldrh r1, [r1] bl sub_8015D5C lsls r0, 24 @@ -4410,7 +4410,7 @@ _08017C1C: bne _08017C30 b _08017D90 _08017C30: - ldr r0, _08017C54 @ =gUnknown_02024D28 + ldr r0, _08017C54 @ =gProtectStructs ldrb r2, [r4] lsls r2, 4 adds r2, r0 @@ -4419,19 +4419,19 @@ _08017C30: orrs r0, r1 strb r0, [r2, 0x1] ldrb r0, [r4] - bl b_cancel_multi_turn_move_maybe - ldr r1, _08017C58 @ =gUnknown_02024C10 + bl CancelMultiTurnMoves + ldr r1, _08017C58 @ =gBattlescriptCurrInstr ldr r0, _08017C5C @ =gUnknown_081D9459 b _08017D7E .align 2, 0 -_08017C4C: .4byte gPlayerMonIndex -_08017C50: .4byte gUnknown_02024BE6 -_08017C54: .4byte gUnknown_02024D28 -_08017C58: .4byte gUnknown_02024C10 +_08017C4C: .4byte gBankAttacker +_08017C50: .4byte gCurrentMove +_08017C54: .4byte gProtectStructs +_08017C58: .4byte gBattlescriptCurrInstr _08017C5C: .4byte gUnknown_081D9459 _08017C60: ldr r7, _08017CAC @ =gBattleMons - ldr r5, _08017CB0 @ =gPlayerMonIndex + ldr r5, _08017CB0 @ =gBankAttacker ldrb r0, [r5] movs r6, 0x58 muls r0, r6 @@ -4461,20 +4461,20 @@ _08017C7E: ands r2, r0 cmp r2, 0 beq _08017CB8 - ldr r1, _08017CB4 @ =gUnknown_02024D1E + ldr r1, _08017CB4 @ =gBattleCommunication movs r0, 0 strb r0, [r1, 0x5] bl b_movescr_stack_push_cursor b _08017D02 .align 2, 0 _08017CAC: .4byte gBattleMons -_08017CB0: .4byte gPlayerMonIndex -_08017CB4: .4byte gUnknown_02024D1E +_08017CB0: .4byte gBankAttacker +_08017CB4: .4byte gBattleCommunication _08017CB8: - ldr r0, _08017D08 @ =gUnknown_02024D1E + ldr r0, _08017D08 @ =gBattleCommunication movs r4, 0x1 strb r1, [r0, 0x5] - ldr r1, _08017D0C @ =gEnemyMonIndex + ldr r1, _08017D0C @ =gBankTarget ldrb r0, [r5] strb r0, [r1] ldrb r0, [r5] @@ -4494,45 +4494,45 @@ _08017CB8: bl CalculateBaseDamage ldr r1, _08017D10 @ =gBattleMoveDamage str r0, [r1] - ldr r0, _08017D14 @ =gUnknown_02024D28 + ldr r0, _08017D14 @ =gProtectStructs ldrb r1, [r5] lsls r1, 4 adds r1, r0 ldrb r0, [r1, 0x1] orrs r0, r4 strb r0, [r1, 0x1] - ldr r2, _08017D18 @ =gUnknown_02024C6C + ldr r2, _08017D18 @ =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 12 orrs r0, r1 str r0, [r2] _08017D02: - ldr r1, _08017D1C @ =gUnknown_02024C10 + ldr r1, _08017D1C @ =gBattlescriptCurrInstr ldr r0, _08017D20 @ =gUnknown_081D9595 b _08017D2C .align 2, 0 -_08017D08: .4byte gUnknown_02024D1E -_08017D0C: .4byte gEnemyMonIndex +_08017D08: .4byte gBattleCommunication +_08017D0C: .4byte gBankTarget _08017D10: .4byte gBattleMoveDamage -_08017D14: .4byte gUnknown_02024D28 -_08017D18: .4byte gUnknown_02024C6C -_08017D1C: .4byte gUnknown_02024C10 +_08017D14: .4byte gProtectStructs +_08017D18: .4byte gHitMarker +_08017D1C: .4byte gBattlescriptCurrInstr _08017D20: .4byte gUnknown_081D9595 _08017D24: bl b_movescr_stack_push_cursor - ldr r1, _08017D34 @ =gUnknown_02024C10 + ldr r1, _08017D34 @ =gBattlescriptCurrInstr ldr r0, _08017D38 @ =gUnknown_081D95D4 _08017D2C: str r0, [r1] movs r7, 0x1 b _08017F8E .align 2, 0 -_08017D34: .4byte gUnknown_02024C10 +_08017D34: .4byte gBattlescriptCurrInstr _08017D38: .4byte gUnknown_081D95D4 _08017D3C: ldr r1, _08017DA0 @ =gBattleMons - ldr r4, _08017DA4 @ =gPlayerMonIndex + ldr r4, _08017DA4 @ =gBankAttacker ldrb r2, [r4] movs r0, 0x58 muls r0, r2 @@ -4550,7 +4550,7 @@ _08017D3C: ands r1, r0 cmp r1, 0 bne _08017D90 - ldr r0, _08017DA8 @ =gUnknown_02024D28 + ldr r0, _08017DA8 @ =gProtectStructs ldrb r2, [r4] lsls r2, 4 adds r2, r0 @@ -4559,12 +4559,12 @@ _08017D3C: orrs r0, r1 strb r0, [r2] ldrb r0, [r4] - bl b_cancel_multi_turn_move_maybe - ldr r1, _08017DAC @ =gUnknown_02024C10 + bl CancelMultiTurnMoves + ldr r1, _08017DAC @ =gBattlescriptCurrInstr ldr r0, _08017DB0 @ =gUnknown_081D9566 _08017D7E: str r0, [r1] - ldr r2, _08017DB4 @ =gUnknown_02024C6C + ldr r2, _08017DB4 @ =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 12 @@ -4585,16 +4585,16 @@ _08017D96: b _08017F9E .align 2, 0 _08017DA0: .4byte gBattleMons -_08017DA4: .4byte gPlayerMonIndex -_08017DA8: .4byte gUnknown_02024D28 -_08017DAC: .4byte gUnknown_02024C10 +_08017DA4: .4byte gBankAttacker +_08017DA8: .4byte gProtectStructs +_08017DAC: .4byte gBattlescriptCurrInstr _08017DB0: .4byte gUnknown_081D9566 -_08017DB4: .4byte gUnknown_02024C6C +_08017DB4: .4byte gHitMarker _08017DB8: .4byte 0x02000000 _08017DBC: .4byte 0x000160e7 _08017DC0: ldr r1, _08017DFC @ =gBattleMons - ldr r4, _08017E00 @ =gPlayerMonIndex + ldr r4, _08017E00 @ =gBankAttacker ldrb r2, [r4] movs r0, 0x58 muls r0, r2 @@ -4623,19 +4623,19 @@ _08017DDC: b _08017E34 .align 2, 0 _08017DFC: .4byte gBattleMons -_08017E00: .4byte gPlayerMonIndex +_08017E00: .4byte gBankAttacker _08017E04: .4byte 0x02000000 _08017E08: .4byte 0x00016003 _08017E0C: ldr r0, _08017E44 @ =gUnknown_081D9608 bl b_movescr_stack_push - ldr r2, _08017E48 @ =gUnknown_02024C6C + ldr r2, _08017E48 @ =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 12 orrs r0, r1 str r0, [r2] - ldr r0, _08017E4C @ =gUnknown_02024D28 + ldr r0, _08017E4C @ =gProtectStructs ldrb r2, [r4] lsls r2, 4 adds r2, r0 @@ -4644,9 +4644,9 @@ _08017E0C: orrs r0, r1 strb r0, [r2, 0x1] ldrb r0, [r4] - bl b_cancel_multi_turn_move_maybe + bl CancelMultiTurnMoves _08017E34: - ldr r1, _08017E50 @ =gUnknown_02024C10 + ldr r1, _08017E50 @ =gBattlescriptCurrInstr ldr r0, _08017E54 @ =gUnknown_081D95FB str r0, [r1] movs r0, 0x1 @@ -4657,14 +4657,14 @@ _08017E3C: b _08017F94 .align 2, 0 _08017E44: .4byte gUnknown_081D9608 -_08017E48: .4byte gUnknown_02024C6C -_08017E4C: .4byte gUnknown_02024D28 -_08017E50: .4byte gUnknown_02024C10 +_08017E48: .4byte gHitMarker +_08017E4C: .4byte gProtectStructs +_08017E50: .4byte gBattlescriptCurrInstr _08017E54: .4byte gUnknown_081D95FB _08017E58: .4byte 0x02000000 _08017E5C: ldr r1, _08017E98 @ =gBattleMons - ldr r6, _08017E9C @ =gPlayerMonIndex + ldr r6, _08017E9C @ =gBankAttacker ldrb r0, [r6] movs r5, 0x58 muls r0, r5 @@ -4690,27 +4690,27 @@ _08017E7A: ands r0, r4 cmp r0, 0 beq _08017EAC - ldr r1, _08017EA4 @ =gUnknown_02024C10 + ldr r1, _08017EA4 @ =gBattlescriptCurrInstr ldr r0, _08017EA8 @ =gUnknown_081D90A7 b _08017F38 .align 2, 0 _08017E98: .4byte gBattleMons -_08017E9C: .4byte gPlayerMonIndex +_08017E9C: .4byte gBankAttacker _08017EA0: .4byte 0xffffff00 -_08017EA4: .4byte gUnknown_02024C10 +_08017EA4: .4byte gBattlescriptCurrInstr _08017EA8: .4byte gUnknown_081D90A7 _08017EAC: ldr r0, _08017F0C @ =0xffffefff ands r2, r0 str r2, [r1] - ldr r2, _08017F10 @ =gUnknown_02024BF4 + ldr r2, _08017F10 @ =gTakenDmg ldrb r0, [r6] lsls r0, 2 adds r0, r2 ldr r0, [r0] cmp r0, 0 beq _08017F34 - ldr r1, _08017F14 @ =gUnknown_02024BE6 + ldr r1, _08017F14 @ =gCurrentMove movs r0, 0x75 strh r0, [r1] ldrb r0, [r6] @@ -4720,13 +4720,13 @@ _08017EAC: lsls r0, 1 mov r1, r10 str r0, [r1] - ldr r4, _08017F18 @ =gEnemyMonIndex - ldr r1, _08017F1C @ =gUnknown_02024C74 + ldr r4, _08017F18 @ =gBankTarget + ldr r1, _08017F1C @ =gTakenDmgBanks ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] strb r0, [r4] - ldr r0, _08017F20 @ =gUnknown_02024C0C + ldr r0, _08017F20 @ =gAbsentBankFlags ldrb r1, [r0] ldr r2, _08017F24 @ =gBitTable ldrb r0, [r4] @@ -4741,7 +4741,7 @@ _08017EAC: bl sub_801B5C0 strb r0, [r4] _08017EFE: - ldr r1, _08017F28 @ =gUnknown_02024C10 + ldr r1, _08017F28 @ =gBattlescriptCurrInstr ldr r0, _08017F2C @ =gUnknown_081D90B2 str r0, [r1] ldr r2, _08017F30 @ =0x02000000 @@ -4749,17 +4749,17 @@ _08017EFE: b _08017F3A .align 2, 0 _08017F0C: .4byte 0xffffefff -_08017F10: .4byte gUnknown_02024BF4 -_08017F14: .4byte gUnknown_02024BE6 -_08017F18: .4byte gEnemyMonIndex -_08017F1C: .4byte gUnknown_02024C74 -_08017F20: .4byte gUnknown_02024C0C +_08017F10: .4byte gTakenDmg +_08017F14: .4byte gCurrentMove +_08017F18: .4byte gBankTarget +_08017F1C: .4byte gTakenDmgBanks +_08017F20: .4byte gAbsentBankFlags _08017F24: .4byte gBitTable -_08017F28: .4byte gUnknown_02024C10 +_08017F28: .4byte gBattlescriptCurrInstr _08017F2C: .4byte gUnknown_081D90B2 _08017F30: .4byte 0x02000000 _08017F34: - ldr r1, _08017F40 @ =gUnknown_02024C10 + ldr r1, _08017F40 @ =gBattlescriptCurrInstr ldr r0, _08017F44 @ =gUnknown_081D90F1 _08017F38: str r0, [r1] @@ -4768,11 +4768,11 @@ _08017F3A: mov r9, r4 b _08017F94 .align 2, 0 -_08017F40: .4byte gUnknown_02024C10 +_08017F40: .4byte gBattlescriptCurrInstr _08017F44: .4byte gUnknown_081D90F1 _08017F48: ldr r1, _08017FEC @ =gBattleMons - ldr r0, _08017FF0 @ =gPlayerMonIndex + ldr r0, _08017FF0 @ =gBankAttacker ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -4784,7 +4784,7 @@ _08017F48: cmp r0, 0 beq _08017F94 ldr r2, _08017FF4 @ =gBattleMoves - ldr r0, _08017FF8 @ =gUnknown_02024BE6 + ldr r0, _08017FF8 @ =gCurrentMove ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -4798,10 +4798,10 @@ _08017F48: ands r3, r0 str r3, [r4] bl b_movescr_stack_push_cursor - ldr r1, _08017FFC @ =gUnknown_02024C10 + ldr r1, _08017FFC @ =gBattlescriptCurrInstr ldr r0, _08018000 @ =gUnknown_081D9552 str r0, [r1] - ldr r1, _08018004 @ =gUnknown_02024D1E + ldr r1, _08018004 @ =gBattleCommunication movs r0, 0x1 strb r0, [r1, 0x5] _08017F8C: @@ -4827,8 +4827,8 @@ _08017FAC: mov r1, r9 cmp r1, 0x2 bne _08017FD8 - ldr r4, _08018010 @ =gUnknown_02024A60 - ldr r0, _08017FF0 @ =gPlayerMonIndex + ldr r4, _08018010 @ =gActiveBank + ldr r0, _08017FF0 @ =gBankAttacker ldrb r0, [r0] strb r0, [r4] ldrb r1, [r4] @@ -4841,9 +4841,9 @@ _08017FAC: movs r1, 0x28 movs r2, 0 movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs + bl EmitSetAttributes ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution _08017FD8: mov r0, r9 add sp, 0x10 @@ -4856,15 +4856,15 @@ _08017FD8: bx r1 .align 2, 0 _08017FEC: .4byte gBattleMons -_08017FF0: .4byte gPlayerMonIndex +_08017FF0: .4byte gBankAttacker _08017FF4: .4byte gBattleMoves -_08017FF8: .4byte gUnknown_02024BE6 -_08017FFC: .4byte gUnknown_02024C10 +_08017FF8: .4byte gCurrentMove +_08017FFC: .4byte gBattlescriptCurrInstr _08018000: .4byte gUnknown_081D9552 -_08018004: .4byte gUnknown_02024D1E +_08018004: .4byte gBattleCommunication _08018008: .4byte 0x02000000 _0801800C: .4byte 0x000160e7 -_08018010: .4byte gUnknown_02024A60 +_08018010: .4byte gActiveBank _08018014: .4byte gUnknown_02024ACC thumb_func_end sub_8017718 @@ -4904,7 +4904,7 @@ _08018048: lsls r0, 24 lsrs r7, r0, 24 adds r0, r4, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 ldr r1, _080180CC @ =gEnemyParty mov r8, r1 @@ -4965,17 +4965,17 @@ _080180CC: .4byte gEnemyParty _080180D0: .4byte gPlayerParty _080180D4: adds r0, r3, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08018100 movs r0, 0x1 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r7, r0, 24 movs r0, 0x3 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r6, r0, 24 ldr r2, _080180FC @ =gEnemyParty @@ -4985,11 +4985,11 @@ _080180D4: _080180FC: .4byte gEnemyParty _08018100: movs r0, 0 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r7, r0, 24 movs r0, 0x2 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r6, r0, 24 ldr r0, _080181A8 @ =gPlayerParty @@ -4998,7 +4998,7 @@ _08018118: mov r1, r10 cmp r1, 0x6 bne _08018128 - ldr r1, _080181AC @ =gUnknown_02024A6A + ldr r1, _080181AC @ =gBattlePartyID lsls r0, r7, 1 adds r0, r1 ldrb r0, [r0] @@ -5007,7 +5007,7 @@ _08018128: mov r2, r9 cmp r2, 0x6 bne _08018138 - ldr r1, _080181AC @ =gUnknown_02024A6A + ldr r1, _080181AC @ =gBattlePartyID lsls r0, r6, 1 adds r0, r1 ldrb r0, [r0] @@ -5071,7 +5071,7 @@ _08018198: bx r1 .align 2, 0 _080181A8: .4byte gPlayerParty -_080181AC: .4byte gUnknown_02024A6A +_080181AC: .4byte gBattlePartyID _080181B0: .4byte 0x02000000 _080181B4: .4byte 0x00016068 thumb_func_end sub_8018018 @@ -5104,7 +5104,7 @@ castform_switch: @ 80181B8 movs r1, 0 movs r2, 0xD movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 bne _0801820A @@ -5113,7 +5113,7 @@ castform_switch: @ 80181B8 movs r1, 0 movs r2, 0x4D movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 beq _08018230 @@ -5142,7 +5142,7 @@ _08018230: movs r1, 0 movs r2, 0xD movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 lsrs r0, 24 cmp r0, 0 @@ -5152,7 +5152,7 @@ _08018230: movs r1, 0 movs r2, 0x4D movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 beq _08018260 @@ -5264,8 +5264,8 @@ _0801831C: .4byte gBattleWeather _08018320: .4byte gBattleMons thumb_func_end castform_switch - thumb_func_start sub_8018324 -sub_8018324: @ 8018324 + thumb_func_start AbilityBattleEffects +AbilityBattleEffects: @ 8018324 push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -5288,8 +5288,8 @@ sub_8018324: @ 8018324 lsrs r4, 16 movs r0, 0 mov r9, r0 - ldr r5, _08018380 @ =gPlayerMonIndex - ldr r1, _08018384 @ =gUnknown_02024A68 + ldr r5, _08018380 @ =gBankAttacker + ldr r1, _08018384 @ =gNoOfAllBanks ldrb r0, [r5] ldrb r1, [r1] cmp r0, r1 @@ -5298,11 +5298,11 @@ sub_8018324: @ 8018324 strb r1, [r5] _08018360: ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08018390 - ldr r1, _08018388 @ =gUnknown_02024A6A + ldr r1, _08018388 @ =gBattlePartyID ldrb r0, [r5] lsls r0, 1 adds r0, r1 @@ -5312,12 +5312,12 @@ _08018360: ldr r0, _0801838C @ =gPlayerParty b _080183A0 .align 2, 0 -_08018380: .4byte gPlayerMonIndex -_08018384: .4byte gUnknown_02024A68 -_08018388: .4byte gUnknown_02024A6A +_08018380: .4byte gBankAttacker +_08018384: .4byte gNoOfAllBanks +_08018388: .4byte gBattlePartyID _0801838C: .4byte gPlayerParty _08018390: - ldr r1, _080183D0 @ =gUnknown_02024A6A + ldr r1, _080183D0 @ =gBattlePartyID ldrb r0, [r5] lsls r0, 1 adds r0, r1 @@ -5327,8 +5327,8 @@ _08018390: ldr r0, _080183D4 @ =gEnemyParty _080183A0: adds r7, r1, r0 - ldr r5, _080183D8 @ =gEnemyMonIndex - ldr r1, _080183DC @ =gUnknown_02024A68 + ldr r5, _080183D8 @ =gBankTarget + ldr r1, _080183DC @ =gNoOfAllBanks ldrb r0, [r5] ldrb r1, [r1] cmp r0, r1 @@ -5337,11 +5337,11 @@ _080183A0: strb r2, [r5] _080183B2: ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080183E4 - ldr r1, _080183D0 @ =gUnknown_02024A6A + ldr r1, _080183D0 @ =gBattlePartyID ldrb r0, [r5] lsls r0, 1 adds r0, r1 @@ -5351,13 +5351,13 @@ _080183B2: ldr r0, _080183E0 @ =gPlayerParty b _080183F4 .align 2, 0 -_080183D0: .4byte gUnknown_02024A6A +_080183D0: .4byte gBattlePartyID _080183D4: .4byte gEnemyParty -_080183D8: .4byte gEnemyMonIndex -_080183DC: .4byte gUnknown_02024A68 +_080183D8: .4byte gBankTarget +_080183DC: .4byte gNoOfAllBanks _080183E0: .4byte gPlayerParty _080183E4: - ldr r1, _08018444 @ =gUnknown_02024A6A + ldr r1, _08018444 @ =gBattlePartyID ldrb r0, [r5] lsls r0, 1 adds r0, r1 @@ -5398,17 +5398,17 @@ _08018436: mov r3, r8 cmp r3, 0 beq _08018454 - ldr r0, _08018450 @ =byte_2024C06 + ldr r0, _08018450 @ =gLastUsedAbility strb r3, [r0] mov r8, r0 b _0801846A .align 2, 0 -_08018444: .4byte gUnknown_02024A6A +_08018444: .4byte gBattlePartyID _08018448: .4byte gEnemyParty _0801844C: .4byte gBattleTypeFlags -_08018450: .4byte byte_2024C06 +_08018450: .4byte gLastUsedAbility _08018454: - ldr r2, _08018474 @ =byte_2024C06 + ldr r2, _08018474 @ =gLastUsedAbility ldr r1, _08018478 @ =gBattleMons movs r0, 0x58 mov r5, r10 @@ -5425,10 +5425,10 @@ _0801846A: adds r3, r4, 0 b _08018480 .align 2, 0 -_08018474: .4byte byte_2024C06 +_08018474: .4byte gLastUsedAbility _08018478: .4byte gBattleMons _0801847C: - ldr r0, _08018494 @ =gUnknown_02024BE6 + ldr r0, _08018494 @ =gCurrentMove ldrh r3, [r0] _08018480: ldr r1, _08018498 @ =0x02000000 @@ -5442,7 +5442,7 @@ _08018480: ands r4, r0 b _080184AC .align 2, 0 -_08018494: .4byte gUnknown_02024BE6 +_08018494: .4byte gCurrentMove _08018498: .4byte 0x02000000 _0801849C: .4byte 0x0001601c _080184A0: @@ -5489,8 +5489,8 @@ _080184C8: .4byte _08019F44 .4byte _08019CD4 _08018518: - ldr r2, _0801854C @ =gPlayerMonIndex - ldr r0, _08018550 @ =gUnknown_02024A68 + ldr r2, _0801854C @ =gBankAttacker + ldr r0, _08018550 @ =gNoOfAllBanks ldrb r1, [r2] adds r5, r0, 0 ldrb r0, [r5] @@ -5519,8 +5519,8 @@ _0801853E: _08018548: bl _08019F76 .align 2, 0 -_0801854C: .4byte gPlayerMonIndex -_08018550: .4byte gUnknown_02024A68 +_0801854C: .4byte gBankAttacker +_08018550: .4byte gNoOfAllBanks _08018554: cmp r0, 0x16 bne _0801855A @@ -5645,7 +5645,7 @@ _0801864C: bl _08019F92 _08018656: bl weather_get_current - ldr r1, _08018678 @ =gUnknown_02024D1E + ldr r1, _08018678 @ =gBattleCommunication strb r0, [r1, 0x5] ldr r0, _0801867C @ =gUnknown_081D901D bl b_push_move_exec @@ -5655,7 +5655,7 @@ _08018668: .4byte gBattleWeather _0801866C: .4byte 0x02000000 _08018670: .4byte 0x000160a4 _08018674: .4byte 0x00016003 -_08018678: .4byte gUnknown_02024D1E +_08018678: .4byte gBattleCommunication _0801867C: .4byte gUnknown_081D901D _08018680: ldr r2, _080186A8 @ =gBattleWeather @@ -5730,7 +5730,7 @@ _0801871C: .4byte gUnknown_081D97FE _08018720: .4byte 0x02000000 _08018724: .4byte 0x00016003 _08018728: - ldr r0, _08018754 @ =gUnknown_02024D68 + ldr r0, _08018754 @ =gSpecialStatuses mov r1, r10 lsls r2, r1, 2 adds r1, r2, r1 @@ -5742,7 +5742,7 @@ _08018728: bge _08018740 bl _08019F76 _08018740: - ldr r1, _08018758 @ =gUnknown_02024C98 + ldr r1, _08018758 @ =gStatuses3 adds r1, r2, r1 ldr r0, [r1] movs r2, 0x80 @@ -5753,8 +5753,8 @@ _08018740: movs r1, 0x8 b _080187CA .align 2, 0 -_08018754: .4byte gUnknown_02024D68 -_08018758: .4byte gUnknown_02024C98 +_08018754: .4byte gSpecialStatuses +_08018758: .4byte gStatuses3 _0801875C: mov r0, r10 bl castform_switch @@ -5784,7 +5784,7 @@ _08018794: .4byte 0x02000000 _08018798: .4byte 0x00016003 _0801879C: .4byte 0x0001609b _080187A0: - ldr r0, _080187D4 @ =gUnknown_02024D68 + ldr r0, _080187D4 @ =gSpecialStatuses mov r1, r10 lsls r2, r1, 2 adds r1, r2, r1 @@ -5796,7 +5796,7 @@ _080187A0: bge _080187B8 bl _08019F76 _080187B8: - ldr r1, _080187D8 @ =gUnknown_02024C98 + ldr r1, _080187D8 @ =gStatuses3 adds r1, r2, r1 ldr r0, [r1] movs r2, 0x80 @@ -5810,8 +5810,8 @@ _080187CA: strb r0, [r3] bl _08019F76 .align 2, 0 -_080187D4: .4byte gUnknown_02024D68 -_080187D8: .4byte gUnknown_02024C98 +_080187D4: .4byte gSpecialStatuses +_080187D8: .4byte gStatuses3 _080187DC: movs r6, 0 ldrb r5, [r5] @@ -5831,13 +5831,13 @@ _080187FC: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 - ldr r0, _08018810 @ =gUnknown_02024A68 + ldr r0, _08018810 @ =gNoOfAllBanks ldrb r0, [r0] cmp r6, r0 bcc _080187E8 bl _08019F76 .align 2, 0 -_08018810: .4byte gUnknown_02024A68 +_08018810: .4byte gNoOfAllBanks _08018814: ldr r2, _08018844 @ =gBattleMons movs r0, 0x58 @@ -5849,7 +5849,7 @@ _08018814: bne _08018828 bl _08019F76 _08018828: - ldr r0, _08018848 @ =gPlayerMonIndex + ldr r0, _08018848 @ =gBankAttacker mov r3, r10 strb r3, [r0] mov r3, r8 @@ -5865,7 +5865,7 @@ _08018840: bl _08019F76 .align 2, 0 _08018844: .4byte gBattleMons -_08018848: .4byte gPlayerMonIndex +_08018848: .4byte gBankAttacker _0801884C: cmp r5, 0x36 bne _08018852 @@ -5881,7 +5881,7 @@ _0801885A: movs r1, 0 movs r2, 0xD movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 lsrs r0, 24 cmp r0, 0 @@ -5893,7 +5893,7 @@ _08018876: movs r1, 0 movs r2, 0x4D movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 beq _0801888E @@ -5959,7 +5959,7 @@ _08018906: ands r0, r1 cmp r0, 0 beq _08018918 - ldr r0, _08018990 @ =gUnknown_030041C0 + ldr r0, _08018990 @ =gBattleTextBuff1 ldr r1, _08018994 @ =gStatusConditionString_PoisonJpn bl StringCopy _08018918: @@ -5968,7 +5968,7 @@ _08018918: ands r0, r1 cmp r0, 0 beq _0801892A - ldr r0, _08018990 @ =gUnknown_030041C0 + ldr r0, _08018990 @ =gBattleTextBuff1 ldr r1, _08018998 @ =gStatusConditionString_SleepJpn bl StringCopy _0801892A: @@ -5977,7 +5977,7 @@ _0801892A: ands r0, r1 cmp r0, 0 beq _0801893C - ldr r0, _08018990 @ =gUnknown_030041C0 + ldr r0, _08018990 @ =gBattleTextBuff1 ldr r1, _0801899C @ =gStatusConditionString_ParalysisJpn bl StringCopy _0801893C: @@ -5986,7 +5986,7 @@ _0801893C: ands r0, r1 cmp r0, 0 beq _0801894E - ldr r0, _08018990 @ =gUnknown_030041C0 + ldr r0, _08018990 @ =gBattleTextBuff1 ldr r1, _080189A0 @ =gStatusConditionString_BurnJpn bl StringCopy _0801894E: @@ -5995,13 +5995,13 @@ _0801894E: ands r0, r1 cmp r0, 0 beq _08018960 - ldr r0, _08018990 @ =gUnknown_030041C0 + ldr r0, _08018990 @ =gBattleTextBuff1 ldr r1, _080189A4 @ =gStatusConditionString_IceJpn bl StringCopy _08018960: str r4, [r5] ldr r0, _080189A8 @ =0x02000000 - ldr r4, _080189AC @ =gUnknown_02024A60 + ldr r4, _080189AC @ =gActiveBank mov r3, r10 strb r3, [r4] ldr r1, _080189B0 @ =0x00016003 @@ -6014,19 +6014,19 @@ _08018960: movs r1, 0x28 movs r2, 0 movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs + bl EmitSetAttributes ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution bl _08019F22 .align 2, 0 -_08018990: .4byte gUnknown_030041C0 +_08018990: .4byte gBattleTextBuff1 _08018994: .4byte gStatusConditionString_PoisonJpn _08018998: .4byte gStatusConditionString_SleepJpn _0801899C: .4byte gStatusConditionString_ParalysisJpn _080189A0: .4byte gStatusConditionString_BurnJpn _080189A4: .4byte gStatusConditionString_IceJpn _080189A8: .4byte 0x02000000 -_080189AC: .4byte gUnknown_02024A60 +_080189AC: .4byte gActiveBank _080189B0: .4byte 0x00016003 _080189B4: .4byte gUnknown_081D9758 _080189B8: @@ -6037,7 +6037,7 @@ _080189B8: ble _080189C6 bl _08019F76 _080189C6: - ldr r0, _08018A04 @ =gUnknown_02024CA8 + ldr r0, _08018A04 @ =gDisableStructs mov r3, r10 lsls r1, r3, 3 subs r1, r3 @@ -6066,13 +6066,13 @@ _080189DC: strb r3, [r0] bl _08019F22 .align 2, 0 -_08018A04: .4byte gUnknown_02024CA8 +_08018A04: .4byte gDisableStructs _08018A08: .4byte 0x000160a4 _08018A0C: .4byte 0x000160a5 _08018A10: .4byte gUnknown_081D9718 _08018A14: .4byte 0x00016003 _08018A18: - ldr r2, _08018A3C @ =gUnknown_02024CA8 + ldr r2, _08018A3C @ =gDisableStructs ldrb r0, [r0] lsls r1, r0, 3 subs r1, r0 @@ -6090,7 +6090,7 @@ _08018A18: strb r0, [r1, 0x18] bl _08019F76 .align 2, 0 -_08018A3C: .4byte gUnknown_02024CA8 +_08018A3C: .4byte gDisableStructs _08018A40: mov r5, r8 ldrb r0, [r5] @@ -6130,7 +6130,7 @@ _08018A76: bl _08019F76 _08018A86: ldr r1, _08018AC4 @ =gBattleMons - ldr r0, _08018AC8 @ =gPlayerMonIndex + ldr r0, _08018AC8 @ =gBankAttacker ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -6142,14 +6142,14 @@ _08018A86: ands r0, r1 cmp r0, 0 beq _08018AAC - ldr r0, _08018ACC @ =gUnknown_02024C6C + ldr r0, _08018ACC @ =gHitMarker ldr r1, [r0] movs r2, 0x80 lsls r2, 4 orrs r1, r2 str r1, [r0] _08018AAC: - ldr r1, _08018AD0 @ =gUnknown_02024C10 + ldr r1, _08018AD0 @ =gBattlescriptCurrInstr ldr r0, _08018AD4 @ =gUnknown_081D98F3 str r0, [r1] movs r0, 0x1 @@ -6159,9 +6159,9 @@ _08018AAC: _08018ABC: .4byte gUnknown_081FA724 _08018AC0: .4byte 0x0000ffff _08018AC4: .4byte gBattleMons -_08018AC8: .4byte gPlayerMonIndex -_08018ACC: .4byte gUnknown_02024C6C -_08018AD0: .4byte gUnknown_02024C10 +_08018AC8: .4byte gBankAttacker +_08018ACC: .4byte gHitMarker +_08018AD0: .4byte gBattlescriptCurrInstr _08018AD4: .4byte gUnknown_081D98F3 _08018AD8: cmp r3, 0 @@ -6196,8 +6196,8 @@ _08018AFE: bne _08018B10 b _08018C6A _08018B10: - ldr r1, _08018B2C @ =gUnknown_02024D28 - ldr r0, _08018B30 @ =gPlayerMonIndex + ldr r1, _08018B2C @ =gProtectStructs + ldr r0, _08018B30 @ =gBankAttacker ldrb r0, [r0] lsls r0, 4 adds r0, r1 @@ -6205,24 +6205,24 @@ _08018B10: lsls r0, 28 cmp r0, 0 bge _08018B3C - ldr r1, _08018B34 @ =gUnknown_02024C10 + ldr r1, _08018B34 @ =gBattlescriptCurrInstr ldr r0, _08018B38 @ =gUnknown_081D9843 b _08018B40 .align 2, 0 _08018B28: .4byte gBattleMoves -_08018B2C: .4byte gUnknown_02024D28 -_08018B30: .4byte gPlayerMonIndex -_08018B34: .4byte gUnknown_02024C10 +_08018B2C: .4byte gProtectStructs +_08018B30: .4byte gBankAttacker +_08018B34: .4byte gBattlescriptCurrInstr _08018B38: .4byte gUnknown_081D9843 _08018B3C: - ldr r1, _08018B48 @ =gUnknown_02024C10 + ldr r1, _08018B48 @ =gBattlescriptCurrInstr ldr r0, _08018B4C @ =gUnknown_081D9842 _08018B40: str r0, [r1] movs r2, 0x1 b _08018C68 .align 2, 0 -_08018B48: .4byte gUnknown_02024C10 +_08018B48: .4byte gBattlescriptCurrInstr _08018B4C: .4byte gUnknown_081D9842 _08018B50: cmp r4, 0xB @@ -6239,8 +6239,8 @@ _08018B56: bne _08018B68 b _08018C6A _08018B68: - ldr r1, _08018B84 @ =gUnknown_02024D28 - ldr r0, _08018B88 @ =gPlayerMonIndex + ldr r1, _08018B84 @ =gProtectStructs + ldr r0, _08018B88 @ =gBankAttacker ldrb r0, [r0] lsls r0, 4 adds r0, r1 @@ -6248,17 +6248,17 @@ _08018B68: lsls r0, 28 cmp r0, 0 bge _08018B94 - ldr r1, _08018B8C @ =gUnknown_02024C10 + ldr r1, _08018B8C @ =gBattlescriptCurrInstr ldr r0, _08018B90 @ =gUnknown_081D9843 b _08018B98 .align 2, 0 _08018B80: .4byte gBattleMoves -_08018B84: .4byte gUnknown_02024D28 -_08018B88: .4byte gPlayerMonIndex -_08018B8C: .4byte gUnknown_02024C10 +_08018B84: .4byte gProtectStructs +_08018B88: .4byte gBankAttacker +_08018B8C: .4byte gBattlescriptCurrInstr _08018B90: .4byte gUnknown_081D9843 _08018B94: - ldr r1, _08018BA0 @ =gUnknown_02024C10 + ldr r1, _08018BA0 @ =gBattlescriptCurrInstr ldr r0, _08018BA4 @ =gUnknown_081D9842 _08018B98: str r0, [r1] @@ -6266,7 +6266,7 @@ _08018B98: mov r9, r3 b _08018C6A .align 2, 0 -_08018BA0: .4byte gUnknown_02024C10 +_08018BA0: .4byte gBattlescriptCurrInstr _08018BA4: .4byte gUnknown_081D9842 _08018BA8: cmp r4, 0xA @@ -6293,10 +6293,10 @@ _08018BA8: adds r5, r1, 0 cmp r3, 0 bne _08018C30 - ldr r0, _08018BFC @ =gUnknown_02024D1E + ldr r0, _08018BFC @ =gBattleCommunication strb r3, [r0, 0x5] - ldr r1, _08018C00 @ =gUnknown_02024D28 - ldr r0, _08018C04 @ =gPlayerMonIndex + ldr r1, _08018C00 @ =gProtectStructs + ldr r0, _08018C04 @ =gBankAttacker ldrb r0, [r0] lsls r0, 4 adds r0, r1 @@ -6304,19 +6304,19 @@ _08018BA8: lsls r0, 28 cmp r0, 0 bge _08018C10 - ldr r1, _08018C08 @ =gUnknown_02024C10 + ldr r1, _08018C08 @ =gBattlescriptCurrInstr ldr r0, _08018C0C @ =gUnknown_081D987C b _08018C14 .align 2, 0 _08018BF4: .4byte gBattleMons _08018BF8: .4byte 0x02017100 -_08018BFC: .4byte gUnknown_02024D1E -_08018C00: .4byte gUnknown_02024D28 -_08018C04: .4byte gPlayerMonIndex -_08018C08: .4byte gUnknown_02024C10 +_08018BFC: .4byte gBattleCommunication +_08018C00: .4byte gProtectStructs +_08018C04: .4byte gBankAttacker +_08018C08: .4byte gBattlescriptCurrInstr _08018C0C: .4byte gUnknown_081D987C _08018C10: - ldr r1, _08018C28 @ =gUnknown_02024C10 + ldr r1, _08018C28 @ =gBattlescriptCurrInstr ldr r0, _08018C2C @ =gUnknown_081D987B _08018C14: str r0, [r1] @@ -6329,13 +6329,13 @@ _08018C14: mov r9, r1 b _08018C6A .align 2, 0 -_08018C28: .4byte gUnknown_02024C10 +_08018C28: .4byte gBattlescriptCurrInstr _08018C2C: .4byte gUnknown_081D987B _08018C30: - ldr r0, _08018C4C @ =gUnknown_02024D1E + ldr r0, _08018C4C @ =gBattleCommunication strb r4, [r0, 0x5] - ldr r1, _08018C50 @ =gUnknown_02024D28 - ldr r0, _08018C54 @ =gPlayerMonIndex + ldr r1, _08018C50 @ =gProtectStructs + ldr r0, _08018C54 @ =gBankAttacker ldrb r0, [r0] lsls r0, 4 adds r0, r1 @@ -6343,17 +6343,17 @@ _08018C30: lsls r0, 28 cmp r0, 0 bge _08018C60 - ldr r1, _08018C58 @ =gUnknown_02024C10 + ldr r1, _08018C58 @ =gBattlescriptCurrInstr ldr r0, _08018C5C @ =gUnknown_081D987C b _08018C64 .align 2, 0 -_08018C4C: .4byte gUnknown_02024D1E -_08018C50: .4byte gUnknown_02024D28 -_08018C54: .4byte gPlayerMonIndex -_08018C58: .4byte gUnknown_02024C10 +_08018C4C: .4byte gBattleCommunication +_08018C50: .4byte gProtectStructs +_08018C54: .4byte gBankAttacker +_08018C58: .4byte gBattlescriptCurrInstr _08018C5C: .4byte gUnknown_081D987C _08018C60: - ldr r1, _08018CA4 @ =gUnknown_02024C10 + ldr r1, _08018CA4 @ =gBattlescriptCurrInstr ldr r0, _08018CA8 @ =gUnknown_081D987B _08018C64: str r0, [r1] @@ -6376,8 +6376,8 @@ _08018C74: ldrh r2, [r1, 0x28] cmp r0, r2 bne _08018CD0 - ldr r1, _08018CB0 @ =gUnknown_02024D28 - ldr r0, _08018CB4 @ =gPlayerMonIndex + ldr r1, _08018CB0 @ =gProtectStructs + ldr r0, _08018CB4 @ =gBankAttacker ldrb r0, [r0] lsls r0, 4 adds r0, r1 @@ -6385,24 +6385,24 @@ _08018C74: lsls r0, 28 cmp r0, 0 bge _08018CBC - ldr r1, _08018CA4 @ =gUnknown_02024C10 + ldr r1, _08018CA4 @ =gBattlescriptCurrInstr ldr r0, _08018CB8 @ =gUnknown_081D9866 str r0, [r1] bl _08019F76 .align 2, 0 -_08018CA4: .4byte gUnknown_02024C10 +_08018CA4: .4byte gBattlescriptCurrInstr _08018CA8: .4byte gUnknown_081D987B _08018CAC: .4byte gBattleMons -_08018CB0: .4byte gUnknown_02024D28 -_08018CB4: .4byte gPlayerMonIndex +_08018CB0: .4byte gProtectStructs +_08018CB4: .4byte gBankAttacker _08018CB8: .4byte gUnknown_081D9866 _08018CBC: - ldr r1, _08018CC8 @ =gUnknown_02024C10 + ldr r1, _08018CC8 @ =gBattlescriptCurrInstr ldr r0, _08018CCC @ =gUnknown_081D9865 str r0, [r1] bl _08019F76 .align 2, 0 -_08018CC8: .4byte gUnknown_02024C10 +_08018CC8: .4byte gBattlescriptCurrInstr _08018CCC: .4byte gUnknown_081D9865 _08018CD0: ldr r2, _08018CEC @ =gBattleMoveDamage @@ -6508,8 +6508,8 @@ _08018DE4: bne _08018DF8 bl _08019F76 _08018DF8: - ldr r2, _08018E7C @ =gUnknown_02024D68 - ldr r0, _08018E80 @ =gEnemyMonIndex + ldr r2, _08018E7C @ =gSpecialStatuses + ldr r0, _08018E80 @ =gBankTarget ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 @@ -6555,7 +6555,7 @@ _08018E48: _08018E52: strb r4, [r3] strb r4, [r2] - ldr r1, _08018E88 @ =gUnknown_030041C0 + ldr r1, _08018E88 @ =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x3 @@ -6564,18 +6564,18 @@ _08018E52: movs r0, 0xFF strb r0, [r1, 0x3] bl b_movescr_stack_push_cursor - ldr r1, _08018E8C @ =gUnknown_02024C10 + ldr r1, _08018E8C @ =gBattlescriptCurrInstr ldr r0, _08018E90 @ =gUnknown_081D9921 str r0, [r1] bl _08019F22 .align 2, 0 _08018E74: .4byte gBattleMoveFlags _08018E78: .4byte gBattleMoves -_08018E7C: .4byte gUnknown_02024D68 -_08018E80: .4byte gEnemyMonIndex +_08018E7C: .4byte gSpecialStatuses +_08018E80: .4byte gBankTarget _08018E84: .4byte gBattleMons -_08018E88: .4byte gUnknown_030041C0 -_08018E8C: .4byte gUnknown_02024C10 +_08018E88: .4byte gBattleTextBuff1 +_08018E8C: .4byte gBattlescriptCurrInstr _08018E90: .4byte gUnknown_081D9921 _08018E94: ldr r0, _08018F2C @ =gBattleMoveFlags @@ -6587,7 +6587,7 @@ _08018E94: bl _08019F76 _08018EA4: ldr r1, _08018F30 @ =gBattleMons - ldr r0, _08018F34 @ =gPlayerMonIndex + ldr r0, _08018F34 @ =gBankAttacker ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -6597,7 +6597,7 @@ _08018EA4: bne _08018EBA bl _08019F76 _08018EBA: - ldr r0, _08018F38 @ =gUnknown_02024D28 + ldr r0, _08018F38 @ =gProtectStructs lsls r1, r2, 4 adds r1, r0 ldrb r0, [r1, 0x1] @@ -6606,8 +6606,8 @@ _08018EBA: beq _08018ECC bl _08019F76 _08018ECC: - ldr r2, _08018F3C @ =gUnknown_02024D68 - ldr r0, _08018F40 @ =gEnemyMonIndex + ldr r2, _08018F3C @ =gSpecialStatuses + ldr r0, _08018F40 @ =gBankTarget ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 @@ -6648,20 +6648,20 @@ _08018F0E: str r2, [r1] _08018F1C: bl b_movescr_stack_push_cursor - ldr r1, _08018F4C @ =gUnknown_02024C10 + ldr r1, _08018F4C @ =gBattlescriptCurrInstr ldr r0, _08018F50 @ =gUnknown_081D9928 str r0, [r1] bl _08019F22 .align 2, 0 _08018F2C: .4byte gBattleMoveFlags _08018F30: .4byte gBattleMons -_08018F34: .4byte gPlayerMonIndex -_08018F38: .4byte gUnknown_02024D28 -_08018F3C: .4byte gUnknown_02024D68 -_08018F40: .4byte gEnemyMonIndex +_08018F34: .4byte gBankAttacker +_08018F38: .4byte gProtectStructs +_08018F3C: .4byte gSpecialStatuses +_08018F40: .4byte gBankTarget _08018F44: .4byte gBattleMoves _08018F48: .4byte gBattleMoveDamage -_08018F4C: .4byte gUnknown_02024C10 +_08018F4C: .4byte gBattlescriptCurrInstr _08018F50: .4byte gUnknown_081D9928 _08018F54: ldr r0, _08019020 @ =gBattleMoveFlags @@ -6673,7 +6673,7 @@ _08018F54: bl _08019F76 _08018F64: ldr r1, _08019024 @ =gBattleMons - ldr r0, _08019028 @ =gPlayerMonIndex + ldr r0, _08019028 @ =gBankAttacker ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -6683,7 +6683,7 @@ _08018F64: bne _08018F7A bl _08019F76 _08018F7A: - ldr r0, _0801902C @ =gUnknown_02024D28 + ldr r0, _0801902C @ =gProtectStructs lsls r1, r2, 4 adds r1, r0 ldrb r0, [r1, 0x1] @@ -6692,8 +6692,8 @@ _08018F7A: beq _08018F8C bl _08019F76 _08018F8C: - ldr r2, _08019030 @ =gUnknown_02024D68 - ldr r0, _08019034 @ =gEnemyMonIndex + ldr r2, _08019030 @ =gSpecialStatuses + ldr r0, _08019034 @ =gBankTarget ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 @@ -6734,7 +6734,7 @@ _08018FCC: beq _08018FE4 bl _08019F76 _08018FE4: - ldr r5, _0801903C @ =gUnknown_02024D1E + ldr r5, _0801903C @ =gBattleCommunication movs r4, 0x3 _08018FE8: bl Random @@ -6742,7 +6742,7 @@ _08018FE8: strb r0, [r5, 0x3] cmp r0, 0 beq _08018FE8 - ldr r1, _0801903C @ =gUnknown_02024D1E + ldr r1, _0801903C @ =gBattleCommunication ldrb r0, [r1, 0x3] cmp r0, 0x3 bne _08019000 @@ -6753,10 +6753,10 @@ _08019000: adds r0, 0x40 strb r0, [r1, 0x3] bl b_movescr_stack_push_cursor - ldr r1, _08019040 @ =gUnknown_02024C10 + ldr r1, _08019040 @ =gBattlescriptCurrInstr ldr r0, _08019044 @ =gUnknown_081D9950 str r0, [r1] - ldr r2, _08019048 @ =gUnknown_02024C6C + ldr r2, _08019048 @ =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 6 @@ -6766,15 +6766,15 @@ _08019000: .align 2, 0 _08019020: .4byte gBattleMoveFlags _08019024: .4byte gBattleMons -_08019028: .4byte gPlayerMonIndex -_0801902C: .4byte gUnknown_02024D28 -_08019030: .4byte gUnknown_02024D68 -_08019034: .4byte gEnemyMonIndex +_08019028: .4byte gBankAttacker +_0801902C: .4byte gProtectStructs +_08019030: .4byte gSpecialStatuses +_08019034: .4byte gBankTarget _08019038: .4byte gBattleMoves -_0801903C: .4byte gUnknown_02024D1E -_08019040: .4byte gUnknown_02024C10 +_0801903C: .4byte gBattleCommunication +_08019040: .4byte gBattlescriptCurrInstr _08019044: .4byte gUnknown_081D9950 -_08019048: .4byte gUnknown_02024C6C +_08019048: .4byte gHitMarker _0801904C: ldr r0, _080190FC @ =gBattleMoveFlags ldrb r1, [r0] @@ -6785,7 +6785,7 @@ _0801904C: bl _08019F76 _0801905C: ldr r1, _08019100 @ =gBattleMons - ldr r0, _08019104 @ =gPlayerMonIndex + ldr r0, _08019104 @ =gBankAttacker ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -6795,7 +6795,7 @@ _0801905C: bne _08019072 bl _08019F76 _08019072: - ldr r0, _08019108 @ =gUnknown_02024D28 + ldr r0, _08019108 @ =gProtectStructs lsls r1, r2, 4 adds r1, r0 ldrb r0, [r1, 0x1] @@ -6804,8 +6804,8 @@ _08019072: beq _08019084 bl _08019F76 _08019084: - ldr r2, _0801910C @ =gUnknown_02024D68 - ldr r0, _08019110 @ =gEnemyMonIndex + ldr r2, _0801910C @ =gSpecialStatuses + ldr r0, _08019110 @ =gBankTarget ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 @@ -6846,14 +6846,14 @@ _080190C4: beq _080190DC bl _08019F76 _080190DC: - ldr r1, _08019118 @ =gUnknown_02024D1E + ldr r1, _08019118 @ =gBattleCommunication movs r0, 0x42 strb r0, [r1, 0x3] bl b_movescr_stack_push_cursor - ldr r1, _0801911C @ =gUnknown_02024C10 + ldr r1, _0801911C @ =gBattlescriptCurrInstr ldr r0, _08019120 @ =gUnknown_081D9950 str r0, [r1] - ldr r2, _08019124 @ =gUnknown_02024C6C + ldr r2, _08019124 @ =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 6 @@ -6863,15 +6863,15 @@ _080190DC: .align 2, 0 _080190FC: .4byte gBattleMoveFlags _08019100: .4byte gBattleMons -_08019104: .4byte gPlayerMonIndex -_08019108: .4byte gUnknown_02024D28 -_0801910C: .4byte gUnknown_02024D68 -_08019110: .4byte gEnemyMonIndex +_08019104: .4byte gBankAttacker +_08019108: .4byte gProtectStructs +_0801910C: .4byte gSpecialStatuses +_08019110: .4byte gBankTarget _08019114: .4byte gBattleMoves -_08019118: .4byte gUnknown_02024D1E -_0801911C: .4byte gUnknown_02024C10 +_08019118: .4byte gBattleCommunication +_0801911C: .4byte gBattlescriptCurrInstr _08019120: .4byte gUnknown_081D9950 -_08019124: .4byte gUnknown_02024C6C +_08019124: .4byte gHitMarker _08019128: ldr r0, _080191D8 @ =gBattleMoveFlags ldrb r1, [r0] @@ -6882,7 +6882,7 @@ _08019128: bl _08019F76 _08019138: ldr r1, _080191DC @ =gBattleMons - ldr r0, _080191E0 @ =gPlayerMonIndex + ldr r0, _080191E0 @ =gBankAttacker ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -6892,7 +6892,7 @@ _08019138: bne _0801914E bl _08019F76 _0801914E: - ldr r0, _080191E4 @ =gUnknown_02024D28 + ldr r0, _080191E4 @ =gProtectStructs lsls r1, r2, 4 adds r1, r0 ldrb r0, [r1, 0x1] @@ -6901,8 +6901,8 @@ _0801914E: beq _08019160 bl _08019F76 _08019160: - ldr r2, _080191E8 @ =gUnknown_02024D68 - ldr r0, _080191EC @ =gEnemyMonIndex + ldr r2, _080191E8 @ =gSpecialStatuses + ldr r0, _080191EC @ =gBankTarget ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 @@ -6943,14 +6943,14 @@ _080191A0: beq _080191B8 bl _08019F76 _080191B8: - ldr r1, _080191F4 @ =gUnknown_02024D1E + ldr r1, _080191F4 @ =gBattleCommunication movs r0, 0x45 strb r0, [r1, 0x3] bl b_movescr_stack_push_cursor - ldr r1, _080191F8 @ =gUnknown_02024C10 + ldr r1, _080191F8 @ =gBattlescriptCurrInstr ldr r0, _080191FC @ =gUnknown_081D9950 str r0, [r1] - ldr r2, _08019200 @ =gUnknown_02024C6C + ldr r2, _08019200 @ =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 6 @@ -6960,15 +6960,15 @@ _080191B8: .align 2, 0 _080191D8: .4byte gBattleMoveFlags _080191DC: .4byte gBattleMons -_080191E0: .4byte gPlayerMonIndex -_080191E4: .4byte gUnknown_02024D28 -_080191E8: .4byte gUnknown_02024D68 -_080191EC: .4byte gEnemyMonIndex +_080191E0: .4byte gBankAttacker +_080191E4: .4byte gProtectStructs +_080191E8: .4byte gSpecialStatuses +_080191EC: .4byte gBankTarget _080191F0: .4byte gBattleMoves -_080191F4: .4byte gUnknown_02024D1E -_080191F8: .4byte gUnknown_02024C10 +_080191F4: .4byte gBattleCommunication +_080191F8: .4byte gBattlescriptCurrInstr _080191FC: .4byte gUnknown_081D9950 -_08019200: .4byte gUnknown_02024C6C +_08019200: .4byte gHitMarker _08019204: ldr r0, _080192B4 @ =gBattleMoveFlags ldrb r1, [r0] @@ -6979,7 +6979,7 @@ _08019204: bl _08019F76 _08019214: ldr r1, _080192B8 @ =gBattleMons - ldr r0, _080192BC @ =gPlayerMonIndex + ldr r0, _080192BC @ =gBankAttacker ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -6989,7 +6989,7 @@ _08019214: bne _0801922A bl _08019F76 _0801922A: - ldr r0, _080192C0 @ =gUnknown_02024D28 + ldr r0, _080192C0 @ =gProtectStructs lsls r1, r2, 4 adds r1, r0 ldrb r0, [r1, 0x1] @@ -7010,8 +7010,8 @@ _0801923C: bne _08019254 bl _08019F76 _08019254: - ldr r2, _080192C8 @ =gUnknown_02024D68 - ldr r0, _080192CC @ =gEnemyMonIndex + ldr r2, _080192C8 @ =gSpecialStatuses + ldr r0, _080192CC @ =gBankTarget ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 @@ -7040,14 +7040,14 @@ _0801927C: beq _08019294 bl _08019F76 _08019294: - ldr r1, _080192D0 @ =gUnknown_02024D1E + ldr r1, _080192D0 @ =gBattleCommunication movs r0, 0x43 strb r0, [r1, 0x3] bl b_movescr_stack_push_cursor - ldr r1, _080192D4 @ =gUnknown_02024C10 + ldr r1, _080192D4 @ =gBattlescriptCurrInstr ldr r0, _080192D8 @ =gUnknown_081D9950 str r0, [r1] - ldr r2, _080192DC @ =gUnknown_02024C6C + ldr r2, _080192DC @ =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 6 @@ -7057,15 +7057,15 @@ _08019294: .align 2, 0 _080192B4: .4byte gBattleMoveFlags _080192B8: .4byte gBattleMons -_080192BC: .4byte gPlayerMonIndex -_080192C0: .4byte gUnknown_02024D28 +_080192BC: .4byte gBankAttacker +_080192C0: .4byte gProtectStructs _080192C4: .4byte gBattleMoves -_080192C8: .4byte gUnknown_02024D68 -_080192CC: .4byte gEnemyMonIndex -_080192D0: .4byte gUnknown_02024D1E -_080192D4: .4byte gUnknown_02024C10 +_080192C8: .4byte gSpecialStatuses +_080192CC: .4byte gBankTarget +_080192D0: .4byte gBattleCommunication +_080192D4: .4byte gBattlescriptCurrInstr _080192D8: .4byte gUnknown_081D9950 -_080192DC: .4byte gUnknown_02024C6C +_080192DC: .4byte gHitMarker _080192E0: ldr r0, _08019420 @ =gBattleMoveFlags ldrb r1, [r0] @@ -7076,7 +7076,7 @@ _080192E0: bl _08019F76 _080192F0: ldr r5, _08019424 @ =gBattleMons - ldr r7, _08019428 @ =gPlayerMonIndex + ldr r7, _08019428 @ =gBankAttacker ldrb r1, [r7] movs r6, 0x58 adds r0, r1, 0 @@ -7087,7 +7087,7 @@ _080192F0: bne _08019308 bl _08019F76 _08019308: - ldr r0, _0801942C @ =gUnknown_02024D28 + ldr r0, _0801942C @ =gProtectStructs lsls r1, 4 adds r1, r0 ldrb r0, [r1, 0x1] @@ -7108,8 +7108,8 @@ _0801931A: bne _08019332 bl _08019F76 _08019332: - ldr r3, _08019434 @ =gUnknown_02024D68 - ldr r0, _08019438 @ =gEnemyMonIndex + ldr r3, _08019434 @ =gSpecialStatuses + ldr r0, _08019438 @ =gBankTarget mov r8, r0 ldrb r1, [r0] lsls r0, r1, 2 @@ -7215,25 +7215,25 @@ _080193F6: orrs r0, r1 str r0, [r2] bl b_movescr_stack_push_cursor - ldr r1, _08019440 @ =gUnknown_02024C10 + ldr r1, _08019440 @ =gBattlescriptCurrInstr ldr r0, _08019444 @ =gUnknown_081D9943 str r0, [r1] bl _08019F22 .align 2, 0 _08019420: .4byte gBattleMoveFlags _08019424: .4byte gBattleMons -_08019428: .4byte gPlayerMonIndex -_0801942C: .4byte gUnknown_02024D28 +_08019428: .4byte gBankAttacker +_0801942C: .4byte gProtectStructs _08019430: .4byte gBattleMoves -_08019434: .4byte gUnknown_02024D68 -_08019438: .4byte gEnemyMonIndex +_08019434: .4byte gSpecialStatuses +_08019438: .4byte gBankTarget _0801943C: .4byte gBitTable -_08019440: .4byte gUnknown_02024C10 +_08019440: .4byte gBattlescriptCurrInstr _08019444: .4byte gUnknown_081D9943 _08019448: movs r5, 0 mov r10, r5 - ldr r0, _0801947C @ =gUnknown_02024A68 + ldr r0, _0801947C @ =gNoOfAllBanks ldrb r0, [r0] cmp r10, r0 bcc _08019458 @@ -7259,7 +7259,7 @@ _08019472: ldr r0, [r0] mov pc, r0 .align 2, 0 -_0801947C: .4byte gUnknown_02024A68 +_0801947C: .4byte gNoOfAllBanks _08019480: .4byte gBattleMons _08019484: .4byte _08019488 .align 2, 0 @@ -7345,12 +7345,12 @@ _08019590: bne _080195AA b _080196D6 _080195AA: - ldr r0, _080195B4 @ =gUnknown_030041C0 + ldr r0, _080195B4 @ =gBattleTextBuff1 ldr r1, _080195B8 @ =gStatusConditionString_PoisonJpn b _0801969C .align 2, 0 _080195B0: .4byte 0x00000f88 -_080195B4: .4byte gUnknown_030041C0 +_080195B4: .4byte gBattleTextBuff1 _080195B8: .4byte gStatusConditionString_PoisonJpn _080195BC: movs r0, 0x58 @@ -7367,14 +7367,14 @@ _080195BC: bne _080195D6 b _080196D6 _080195D6: - ldr r0, _080195E4 @ =gUnknown_030041C0 + ldr r0, _080195E4 @ =gBattleTextBuff1 ldr r1, _080195E8 @ =gStatusConditionString_ConfusionJpn bl StringCopy movs r2, 0x2 mov r9, r2 b _080196DC .align 2, 0 -_080195E4: .4byte gUnknown_030041C0 +_080195E4: .4byte gBattleTextBuff1 _080195E8: .4byte gStatusConditionString_ConfusionJpn _080195EC: movs r0, 0x58 @@ -7389,11 +7389,11 @@ _080195EC: ands r0, r1 cmp r0, 0 beq _080196D6 - ldr r0, _0801960C @ =gUnknown_030041C0 + ldr r0, _0801960C @ =gBattleTextBuff1 ldr r1, _08019610 @ =gStatusConditionString_ParalysisJpn b _0801969C .align 2, 0 -_0801960C: .4byte gUnknown_030041C0 +_0801960C: .4byte gBattleTextBuff1 _08019610: .4byte gStatusConditionString_ParalysisJpn _08019614: movs r0, 0x58 @@ -7413,7 +7413,7 @@ _08019614: ldr r1, _08019644 @ =0xf7ffffff ands r0, r1 str r0, [r2] - ldr r0, _08019648 @ =gUnknown_030041C0 + ldr r0, _08019648 @ =gBattleTextBuff1 ldr r1, _0801964C @ =gStatusConditionString_SleepJpn bl StringCopy movs r0, 0x1 @@ -7421,7 +7421,7 @@ _08019614: b _080196DC .align 2, 0 _08019644: .4byte 0xf7ffffff -_08019648: .4byte gUnknown_030041C0 +_08019648: .4byte gBattleTextBuff1 _0801964C: .4byte gStatusConditionString_SleepJpn _08019650: movs r0, 0x58 @@ -7436,14 +7436,14 @@ _08019650: ands r0, r1 cmp r0, 0 beq _080196D6 - ldr r0, _08019678 @ =gUnknown_030041C0 + ldr r0, _08019678 @ =gBattleTextBuff1 ldr r1, _0801967C @ =gStatusConditionString_BurnJpn bl StringCopy movs r2, 0x1 mov r9, r2 b _080196DC .align 2, 0 -_08019678: .4byte gUnknown_030041C0 +_08019678: .4byte gBattleTextBuff1 _0801967C: .4byte gStatusConditionString_BurnJpn _08019680: movs r0, 0x58 @@ -7458,7 +7458,7 @@ _08019680: ands r0, r1 cmp r0, 0 beq _080196D6 - ldr r0, _080196A8 @ =gUnknown_030041C0 + ldr r0, _080196A8 @ =gBattleTextBuff1 ldr r1, _080196AC @ =gStatusConditionString_IceJpn _0801969C: bl StringCopy @@ -7466,7 +7466,7 @@ _0801969C: mov r9, r5 b _080196DC .align 2, 0 -_080196A8: .4byte gUnknown_030041C0 +_080196A8: .4byte gBattleTextBuff1 _080196AC: .4byte gStatusConditionString_IceJpn _080196B0: movs r0, 0x58 @@ -7482,7 +7482,7 @@ _080196B0: ands r0, r1 cmp r0, 0 beq _080196D6 - ldr r0, _080196EC @ =gUnknown_030041C0 + ldr r0, _080196EC @ =gBattleTextBuff1 ldr r1, _080196F0 @ =gStatusConditionString_LoveJpn bl StringCopy movs r2, 0x3 @@ -7501,7 +7501,7 @@ _080196DC: beq _080196FC b _0801973C .align 2, 0 -_080196EC: .4byte gUnknown_030041C0 +_080196EC: .4byte gBattleTextBuff1 _080196F0: .4byte gStatusConditionString_LoveJpn _080196F4: mov r0, r9 @@ -7547,7 +7547,7 @@ _0801973A: str r0, [r2] _0801973C: bl b_movescr_stack_push_cursor - ldr r1, _08019780 @ =gUnknown_02024C10 + ldr r1, _08019780 @ =gBattlescriptCurrInstr ldr r0, _08019784 @ =gUnknown_081D9956 str r0, [r1] ldr r0, _08019788 @ =0x02000000 @@ -7555,7 +7555,7 @@ _0801973C: adds r0, r1 mov r2, r10 strb r2, [r0] - ldr r4, _08019790 @ =gUnknown_02024A60 + ldr r4, _08019790 @ =gActiveBank strb r2, [r4] ldrb r1, [r4] movs r0, 0x58 @@ -7567,18 +7567,18 @@ _0801973C: movs r1, 0x28 movs r2, 0 movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs + bl EmitSetAttributes ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution bl _08019F92 .align 2, 0 _08019778: .4byte gBattleMons _0801977C: .4byte 0xfff0ffff -_08019780: .4byte gUnknown_02024C10 +_08019780: .4byte gBattlescriptCurrInstr _08019784: .4byte gUnknown_081D9956 _08019788: .4byte 0x02000000 _0801978C: .4byte 0x00016003 -_08019790: .4byte gUnknown_02024A60 +_08019790: .4byte gActiveBank _08019794: .4byte gUnknown_02024ACC _08019798: mov r0, r10 @@ -7586,7 +7586,7 @@ _08019798: lsls r0, 24 lsrs r0, 24 mov r10, r0 - ldr r0, _080197B0 @ =gUnknown_02024A68 + ldr r0, _080197B0 @ =gNoOfAllBanks ldrb r0, [r0] cmp r10, r0 bcs _080197AC @@ -7594,11 +7594,11 @@ _08019798: _080197AC: bl _08019F76 .align 2, 0 -_080197B0: .4byte gUnknown_02024A68 +_080197B0: .4byte gNoOfAllBanks _080197B4: movs r3, 0 mov r10, r3 - ldr r0, _080197FC @ =gUnknown_02024A68 + ldr r0, _080197FC @ =gNoOfAllBanks ldrb r0, [r0] cmp r10, r0 bcc _080197C2 @@ -7629,13 +7629,13 @@ _080197E8: lsls r0, 24 lsrs r0, 24 mov r10, r0 - ldr r0, _080197FC @ =gUnknown_02024A68 + ldr r0, _080197FC @ =gNoOfAllBanks ldrb r0, [r0] cmp r10, r0 bcc _080197C4 b _08019F76 .align 2, 0 -_080197FC: .4byte gUnknown_02024A68 +_080197FC: .4byte gNoOfAllBanks _08019800: .4byte gBattleMons _08019804: mov r1, r8 @@ -7644,7 +7644,7 @@ _08019804: beq _0801980E b _08019F76 _0801980E: - ldr r4, _08019860 @ =gUnknown_02024C6C + ldr r4, _08019860 @ =gHitMarker ldr r1, [r4] movs r0, 0x80 lsls r0, 7 @@ -7667,17 +7667,17 @@ _0801981E: movs r0, 0x2 strb r0, [r2] _08019838: - ldr r1, _0801986C @ =gUnknown_02024D1E + ldr r1, _0801986C @ =gBattleCommunication ldrb r0, [r2] adds r0, 0x40 strb r0, [r1, 0x3] - ldr r0, _08019870 @ =gEnemyMonIndex + ldr r0, _08019870 @ =gBankTarget ldrb r1, [r0] ldr r5, _08019874 @ =0x00016003 adds r0, r7, r5 strb r1, [r0] bl b_movescr_stack_push_cursor - ldr r1, _08019878 @ =gUnknown_02024C10 + ldr r1, _08019878 @ =gBattlescriptCurrInstr ldr r0, _0801987C @ =gUnknown_081D9953 str r0, [r1] ldr r0, [r4] @@ -7687,13 +7687,13 @@ _08019838: str r0, [r4] b _08019F22 .align 2, 0 -_08019860: .4byte gUnknown_02024C6C +_08019860: .4byte gHitMarker _08019864: .4byte 0xffffbfff _08019868: .4byte 0x000160ca -_0801986C: .4byte gUnknown_02024D1E -_08019870: .4byte gEnemyMonIndex +_0801986C: .4byte gBattleCommunication +_08019870: .4byte gBankTarget _08019874: .4byte 0x00016003 -_08019878: .4byte gUnknown_02024C10 +_08019878: .4byte gBattlescriptCurrInstr _0801987C: .4byte gUnknown_081D9953 _08019880: mov r1, r8 @@ -7702,7 +7702,7 @@ _08019880: beq _0801988A b _08019F76 _0801988A: - ldr r4, _080198DC @ =gUnknown_02024C6C + ldr r4, _080198DC @ =gHitMarker ldr r1, [r4] movs r0, 0x80 lsls r0, 7 @@ -7725,16 +7725,16 @@ _0801989A: movs r0, 0x2 strb r0, [r2] _080198B4: - ldr r1, _080198E8 @ =gUnknown_02024D1E + ldr r1, _080198E8 @ =gBattleCommunication ldrb r0, [r2] strb r0, [r1, 0x3] - ldr r0, _080198EC @ =gPlayerMonIndex + ldr r0, _080198EC @ =gBankAttacker ldrb r1, [r0] ldr r5, _080198F0 @ =0x00016003 adds r0, r7, r5 strb r1, [r0] bl b_movescr_stack_push_cursor - ldr r1, _080198F4 @ =gUnknown_02024C10 + ldr r1, _080198F4 @ =gBattlescriptCurrInstr ldr r0, _080198F8 @ =gUnknown_081D9953 str r0, [r1] ldr r0, [r4] @@ -7744,17 +7744,17 @@ _080198B4: str r0, [r4] b _08019F22 .align 2, 0 -_080198DC: .4byte gUnknown_02024C6C +_080198DC: .4byte gHitMarker _080198E0: .4byte 0xffffbfff _080198E4: .4byte 0x000160ca -_080198E8: .4byte gUnknown_02024D1E -_080198EC: .4byte gPlayerMonIndex +_080198E8: .4byte gBattleCommunication +_080198EC: .4byte gBankAttacker _080198F0: .4byte 0x00016003 -_080198F4: .4byte gUnknown_02024C10 +_080198F4: .4byte gBattlescriptCurrInstr _080198F8: .4byte gUnknown_081D9953 _080198FC: movs r4, 0 - ldr r0, _08019934 @ =gUnknown_02024A68 + ldr r0, _08019934 @ =gNoOfAllBanks ldrb r1, [r0] cmp r4, r1 blt _08019908 @@ -7762,7 +7762,7 @@ _080198FC: _08019908: ldr r0, _08019938 @ =gBattleMons adds r5, r1, 0 - ldr r2, _0801993C @ =gUnknown_02024C98 + ldr r2, _0801993C @ =gStatuses3 adds r3, r0, 0 adds r3, 0x20 movs r6, 0x80 @@ -7784,18 +7784,18 @@ _08019926: blt _08019916 b _08019F76 .align 2, 0 -_08019934: .4byte gUnknown_02024A68 +_08019934: .4byte gNoOfAllBanks _08019938: .4byte gBattleMons -_0801993C: .4byte gUnknown_02024C98 +_0801993C: .4byte gStatuses3 _08019940: movs r4, 0 - ldr r0, _08019A1C @ =gUnknown_02024A68 + ldr r0, _08019A1C @ =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 blt _0801994C b _08019F76 _0801994C: - ldr r0, _08019A20 @ =gUnknown_02024A60 + ldr r0, _08019A20 @ =gActiveBank mov r8, r0 ldr r1, _08019A24 @ =gBattleMons adds r1, 0x20 @@ -7809,7 +7809,7 @@ _0801995A: beq _08019964 b _08019AF6 _08019964: - ldr r0, _08019A28 @ =gUnknown_02024C98 + ldr r0, _08019A28 @ =gStatuses3 ldr r5, [sp, 0x20] adds r0, r5, r0 ldr r1, [r0] @@ -7823,17 +7823,17 @@ _08019964: _0801997A: lsls r0, r4, 24 lsrs r0, 24 - bl battle_get_per_side_status + bl GetBankIdentity movs r1, 0x1 adds r5, r0, 0 eors r5, r1 ands r5, r1 adds r0, r5, 0 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r6, r0, 24 adds r0, r5, 0x2 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r7, r0, 24 ldr r0, _08019A2C @ =gBattleTypeFlags @@ -7878,7 +7878,7 @@ _080199AE: lsls r1, 1 orrs r5, r1 adds r0, r5, 0 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI mov r2, r8 strb r0, [r2] ldrb r0, [r2] @@ -7895,16 +7895,16 @@ _080199AE: adds r0, r5 adds r0, 0x20 ldrb r0, [r0] - ldr r2, _08019A30 @ =byte_2024C06 + ldr r2, _08019A30 @ =gLastUsedAbility strb r0, [r2] b _08019AE4 .align 2, 0 -_08019A1C: .4byte gUnknown_02024A68 -_08019A20: .4byte gUnknown_02024A60 +_08019A1C: .4byte gNoOfAllBanks +_08019A20: .4byte gActiveBank _08019A24: .4byte gBattleMons -_08019A28: .4byte gUnknown_02024C98 +_08019A28: .4byte gStatuses3 _08019A2C: .4byte gBattleTypeFlags -_08019A30: .4byte byte_2024C06 +_08019A30: .4byte gLastUsedAbility _08019A34: ldr r3, _08019A74 @ =gBattleMons movs r2, 0x58 @@ -7993,7 +7993,7 @@ _08019ABC: strb r1, [r0] ldrb r0, [r2] _08019AE0: - ldr r1, _08019B14 @ =byte_2024C06 + ldr r1, _08019B14 @ =gLastUsedAbility strb r0, [r1] _08019AE4: mov r0, r9 @@ -8014,7 +8014,7 @@ _08019AF6: adds r5, 0x4 str r5, [sp, 0x20] adds r4, 0x1 - ldr r0, _08019B18 @ =gUnknown_02024A68 + ldr r0, _08019B18 @ =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 bge _08019B0E @@ -8023,11 +8023,11 @@ _08019B0E: b _08019F76 .align 2, 0 _08019B10: .4byte gBattleMons -_08019B14: .4byte byte_2024C06 -_08019B18: .4byte gUnknown_02024A68 +_08019B14: .4byte gLastUsedAbility +_08019B18: .4byte gNoOfAllBanks _08019B1C: movs r4, 0 - ldr r0, _08019B54 @ =gUnknown_02024A68 + ldr r0, _08019B54 @ =gNoOfAllBanks ldrb r1, [r0] cmp r4, r1 blt _08019B28 @@ -8035,7 +8035,7 @@ _08019B1C: _08019B28: ldr r0, _08019B58 @ =gBattleMons adds r5, r1, 0 - ldr r2, _08019B5C @ =gUnknown_02024C98 + ldr r2, _08019B5C @ =gStatuses3 adds r3, r0, 0 adds r3, 0x20 movs r6, 0x80 @@ -8057,16 +8057,16 @@ _08019B46: blt _08019B36 b _08019F76 .align 2, 0 -_08019B54: .4byte gUnknown_02024A68 +_08019B54: .4byte gNoOfAllBanks _08019B58: .4byte gBattleMons -_08019B5C: .4byte gUnknown_02024C98 +_08019B5C: .4byte gStatuses3 _08019B60: mov r0, r10 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 - ldr r0, _08019BB0 @ =gUnknown_02024A68 + ldr r0, _08019BB0 @ =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 blt _08019B76 @@ -8076,7 +8076,7 @@ _08019B76: _08019B78: lsls r0, r4, 24 lsrs r0, 24 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 adds r3, r4, 0x1 @@ -8089,29 +8089,29 @@ _08019B78: ldrb r0, [r0] cmp r0, r6 bne _08019BA2 - ldr r0, _08019BB8 @ =byte_2024C06 + ldr r0, _08019BB8 @ =gLastUsedAbility strb r6, [r0] lsls r0, r3, 24 lsrs r0, 24 mov r9, r0 _08019BA2: adds r4, r3, 0 - ldr r0, _08019BB0 @ =gUnknown_02024A68 + ldr r0, _08019BB0 @ =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 blt _08019B78 b _08019F76 .align 2, 0 -_08019BB0: .4byte gUnknown_02024A68 +_08019BB0: .4byte gNoOfAllBanks _08019BB4: .4byte gBattleMons -_08019BB8: .4byte byte_2024C06 +_08019BB8: .4byte gLastUsedAbility _08019BBC: mov r0, r10 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 - ldr r0, _08019C0C @ =gUnknown_02024A68 + ldr r0, _08019C0C @ =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 blt _08019BD2 @@ -8121,7 +8121,7 @@ _08019BD2: _08019BD4: lsls r0, r4, 24 lsrs r0, 24 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 adds r3, r4, 0x1 @@ -8134,22 +8134,22 @@ _08019BD4: ldrb r0, [r0] cmp r0, r6 bne _08019BFE - ldr r0, _08019C14 @ =byte_2024C06 + ldr r0, _08019C14 @ =gLastUsedAbility strb r6, [r0] lsls r0, r3, 24 lsrs r0, 24 mov r9, r0 _08019BFE: adds r4, r3, 0 - ldr r0, _08019C0C @ =gUnknown_02024A68 + ldr r0, _08019C0C @ =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 blt _08019BD4 b _08019F76 .align 2, 0 -_08019C0C: .4byte gUnknown_02024A68 +_08019C0C: .4byte gNoOfAllBanks _08019C10: .4byte gBattleMons -_08019C14: .4byte byte_2024C06 +_08019C14: .4byte gLastUsedAbility _08019C18: mov r1, r8 ldrb r0, [r1] @@ -8158,7 +8158,7 @@ _08019C18: cmp r0, 0xFE beq _08019C78 movs r4, 0 - ldr r0, _08019C38 @ =gUnknown_02024A68 + ldr r0, _08019C38 @ =gNoOfAllBanks adds r5, r0, 0 ldrb r2, [r5] cmp r4, r2 @@ -8168,17 +8168,17 @@ _08019C32: ldr r2, _08019C3C @ =gBattleMons b _08019CB0 .align 2, 0 -_08019C38: .4byte gUnknown_02024A68 +_08019C38: .4byte gNoOfAllBanks _08019C3C: .4byte gBattleMons _08019C40: movs r4, 0 - ldr r0, _08019C70 @ =gUnknown_02024A68 + ldr r0, _08019C70 @ =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 blt _08019C4C b _08019F76 _08019C4C: - ldr r5, _08019C74 @ =gUnknown_02024C98 + ldr r5, _08019C74 @ =gStatuses3 movs r2, 0x80 lsls r2, 9 adds r1, r0, 0 @@ -8199,17 +8199,17 @@ _08019C68: blt _08019C54 b _08019F76 .align 2, 0 -_08019C70: .4byte gUnknown_02024A68 -_08019C74: .4byte gUnknown_02024C98 +_08019C70: .4byte gNoOfAllBanks +_08019C74: .4byte gStatuses3 _08019C78: movs r4, 0 - ldr r0, _08019CA8 @ =gUnknown_02024A68 + ldr r0, _08019CA8 @ =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 blt _08019C84 b _08019F76 _08019C84: - ldr r5, _08019CAC @ =gUnknown_02024C98 + ldr r5, _08019CAC @ =gStatuses3 movs r2, 0x80 lsls r2, 10 adds r1, r0, 0 @@ -8230,8 +8230,8 @@ _08019CA0: blt _08019C8C b _08019F76 .align 2, 0 -_08019CA8: .4byte gUnknown_02024A68 -_08019CAC: .4byte gUnknown_02024C98 +_08019CA8: .4byte gNoOfAllBanks +_08019CAC: .4byte gStatuses3 _08019CB0: movs r0, 0x58 muls r0, r4 @@ -8254,7 +8254,7 @@ _08019CCA: b _08019F76 _08019CD4: movs r4, 0 - ldr r0, _08019D10 @ =gUnknown_02024A68 + ldr r0, _08019D10 @ =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 blt _08019CE0 @@ -8287,11 +8287,11 @@ _08019D08: blt _08019CE6 b _08019F76 .align 2, 0 -_08019D10: .4byte gUnknown_02024A68 +_08019D10: .4byte gNoOfAllBanks _08019D14: .4byte gBattleMons _08019D18: movs r4, 0 - ldr r0, _08019D50 @ =gUnknown_02024A68 + ldr r0, _08019D50 @ =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 blt _08019D24 @@ -8300,7 +8300,7 @@ _08019D24: ldr r7, _08019D54 @ =gBattleMons adds r1, r0, 0 movs r5, 0x58 - ldr r2, _08019D58 @ =byte_2024C06 + ldr r2, _08019D58 @ =gLastUsedAbility _08019D2C: adds r0, r4, 0 muls r0, r5 @@ -8322,16 +8322,16 @@ _08019D48: blt _08019D2C b _08019F76 .align 2, 0 -_08019D50: .4byte gUnknown_02024A68 +_08019D50: .4byte gNoOfAllBanks _08019D54: .4byte gBattleMons -_08019D58: .4byte byte_2024C06 +_08019D58: .4byte gLastUsedAbility _08019D5C: mov r0, r10 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 - ldr r0, _08019DAC @ =gUnknown_02024A68 + ldr r0, _08019DAC @ =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 blt _08019D72 @@ -8341,7 +8341,7 @@ _08019D72: _08019D74: lsls r0, r4, 24 lsrs r0, 24 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, r5 @@ -8353,7 +8353,7 @@ _08019D74: ldrb r0, [r0] cmp r0, r6 bne _08019DA0 - ldr r0, _08019DB4 @ =byte_2024C06 + ldr r0, _08019DB4 @ =gLastUsedAbility strb r6, [r0] mov r0, r9 adds r0, 0x1 @@ -8362,22 +8362,22 @@ _08019D74: mov r9, r0 _08019DA0: adds r4, 0x1 - ldr r0, _08019DAC @ =gUnknown_02024A68 + ldr r0, _08019DAC @ =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 blt _08019D74 b _08019F76 .align 2, 0 -_08019DAC: .4byte gUnknown_02024A68 +_08019DAC: .4byte gNoOfAllBanks _08019DB0: .4byte gBattleMons -_08019DB4: .4byte byte_2024C06 +_08019DB4: .4byte gLastUsedAbility _08019DB8: mov r0, r10 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 - ldr r0, _08019E08 @ =gUnknown_02024A68 + ldr r0, _08019E08 @ =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 blt _08019DCE @@ -8387,7 +8387,7 @@ _08019DCE: _08019DD0: lsls r0, r4, 24 lsrs r0, 24 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, r5 @@ -8399,7 +8399,7 @@ _08019DD0: ldrb r0, [r0] cmp r0, r6 bne _08019DFC - ldr r0, _08019E10 @ =byte_2024C06 + ldr r0, _08019E10 @ =gLastUsedAbility strb r6, [r0] mov r0, r9 adds r0, 0x1 @@ -8408,15 +8408,15 @@ _08019DD0: mov r9, r0 _08019DFC: adds r4, 0x1 - ldr r0, _08019E08 @ =gUnknown_02024A68 + ldr r0, _08019E08 @ =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 blt _08019DD0 b _08019F76 .align 2, 0 -_08019E08: .4byte gUnknown_02024A68 +_08019E08: .4byte gNoOfAllBanks _08019E0C: .4byte gBattleMons -_08019E10: .4byte byte_2024C06 +_08019E10: .4byte gLastUsedAbility _08019E14: ldr r0, _08019E30 @ =gUnknown_081D977D bl b_push_move_exec @@ -8470,7 +8470,7 @@ _08019E84: .4byte gUnknown_081D978C _08019E88: ldr r0, _08019EDC @ =gUnknown_081D9726 bl b_push_move_exec - ldr r1, _08019EE0 @ =gUnknown_02024C98 + ldr r1, _08019EE0 @ =gStatuses3 ldr r2, [sp, 0x18] adds r1, r2, r1 ldr r0, [r1] @@ -8481,15 +8481,15 @@ _08019E88: ldr r3, _08019EEC @ =0x00016003 adds r0, r3 strb r4, [r0] - ldr r1, _08019EF0 @ =gUnknown_030041C0 + ldr r1, _08019EF0 @ =gBattleTextBuff1 movs r4, 0xFD strb r4, [r1] movs r0, 0x4 strb r0, [r1, 0x1] - ldr r2, _08019EF4 @ =gUnknown_02024A60 + ldr r2, _08019EF4 @ =gActiveBank ldrb r0, [r2] strb r0, [r1, 0x2] - ldr r3, _08019EF8 @ =gUnknown_02024A6A + ldr r3, _08019EF8 @ =gBattlePartyID ldrb r0, [r2] lsls r0, 1 adds r0, r3 @@ -8497,11 +8497,11 @@ _08019E88: strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] - ldr r1, _08019EFC @ =gUnknown_03004290 + ldr r1, _08019EFC @ =gBattleTextBuff2 strb r4, [r1] movs r0, 0x9 strb r0, [r1, 0x1] - ldr r0, _08019F00 @ =byte_2024C06 + ldr r0, _08019F00 @ =gLastUsedAbility ldrb r0, [r0] strb r0, [r1, 0x2] movs r0, 0x1 @@ -8510,15 +8510,15 @@ _08019E88: b _08019F76 .align 2, 0 _08019EDC: .4byte gUnknown_081D9726 -_08019EE0: .4byte gUnknown_02024C98 +_08019EE0: .4byte gStatuses3 _08019EE4: .4byte 0xffefffff _08019EE8: .4byte 0x02000000 _08019EEC: .4byte 0x00016003 -_08019EF0: .4byte gUnknown_030041C0 -_08019EF4: .4byte gUnknown_02024A60 -_08019EF8: .4byte gUnknown_02024A6A -_08019EFC: .4byte gUnknown_03004290 -_08019F00: .4byte byte_2024C06 +_08019EF0: .4byte gBattleTextBuff1 +_08019EF4: .4byte gActiveBank +_08019EF8: .4byte gBattlePartyID +_08019EFC: .4byte gBattleTextBuff2 +_08019F00: .4byte gLastUsedAbility _08019F04: mov r5, r8 strb r1, [r5] @@ -8527,7 +8527,7 @@ _08019F04: ands r0, r1 str r0, [r2] bl b_movescr_stack_push_cursor - ldr r1, _08019F34 @ =gUnknown_02024C10 + ldr r1, _08019F34 @ =gBattlescriptCurrInstr ldr r0, _08019F38 @ =gUnknown_081D9795 str r0, [r1] _08019F1A: @@ -8544,13 +8544,13 @@ _08019F22: b _08019F76 .align 2, 0 _08019F30: .4byte 0xfff7ffff -_08019F34: .4byte gUnknown_02024C10 +_08019F34: .4byte gBattlescriptCurrInstr _08019F38: .4byte gUnknown_081D9795 _08019F3C: .4byte 0x02000000 _08019F40: .4byte 0x000160dd _08019F44: movs r4, 0 - ldr r0, _08019FA4 @ =gUnknown_02024A68 + ldr r0, _08019FA4 @ =gNoOfAllBanks ldrb r1, [r0] cmp r4, r1 bge _08019F76 @@ -8558,7 +8558,7 @@ _08019F44: adds r2, r1, 0 adds r1, r0, 0 adds r1, 0x20 - ldr r3, _08019FAC @ =byte_2024C06 + ldr r3, _08019FAC @ =gLastUsedAbility _08019F58: ldrb r0, [r1] cmp r0, r6 @@ -8584,7 +8584,7 @@ _08019F7C: ldr r3, [sp, 0x4] cmp r3, 0xB bhi _08019F92 - ldr r1, _08019FAC @ =byte_2024C06 + ldr r1, _08019FAC @ =gLastUsedAbility ldrb r0, [r1] cmp r0, 0xFF beq _08019F92 @@ -8602,14 +8602,14 @@ _08019F92: pop {r1} bx r1 .align 2, 0 -_08019FA4: .4byte gUnknown_02024A68 +_08019FA4: .4byte gNoOfAllBanks _08019FA8: .4byte gBattleMons -_08019FAC: .4byte byte_2024C06 - thumb_func_end sub_8018324 +_08019FAC: .4byte gLastUsedAbility + thumb_func_end AbilityBattleEffects thumb_func_start b_call_bc_move_exec b_call_bc_move_exec: @ 8019FB0 - ldr r1, _08019FD8 @ =gUnknown_02024C10 + ldr r1, _08019FD8 @ =gBattlescriptCurrInstr str r0, [r1] ldr r3, _08019FDC @ =0x02017140 adds r2, r3, 0 @@ -8620,21 +8620,21 @@ b_call_bc_move_exec: @ 8019FB0 lsls r0, 24 lsrs r0, 22 adds r0, r3 - ldr r2, _08019FE0 @ =gUnknown_030042D4 + ldr r2, _08019FE0 @ =gBattleMainFunc ldr r1, [r2] str r1, [r0] ldr r0, _08019FE4 @ =sub_8013F54 str r0, [r2] - ldr r1, _08019FE8 @ =gUnknown_02024A7F + ldr r1, _08019FE8 @ =gFightStateTracker movs r0, 0 strb r0, [r1] bx lr .align 2, 0 -_08019FD8: .4byte gUnknown_02024C10 +_08019FD8: .4byte gBattlescriptCurrInstr _08019FDC: .4byte 0x02017140 -_08019FE0: .4byte gUnknown_030042D4 +_08019FE0: .4byte gBattleMainFunc _08019FE4: .4byte sub_8013F54 -_08019FE8: .4byte gUnknown_02024A7F +_08019FE8: .4byte gFightStateTracker thumb_func_end b_call_bc_move_exec thumb_func_start b_push_move_exec @@ -8642,7 +8642,7 @@ b_push_move_exec: @ 8019FEC push {r4,lr} adds r4, r0, 0 bl b_movescr_stack_push_cursor - ldr r0, _0801A01C @ =gUnknown_02024C10 + ldr r0, _0801A01C @ =gBattlescriptCurrInstr str r4, [r0] ldr r3, _0801A020 @ =0x02017140 adds r2, r3, 0 @@ -8653,7 +8653,7 @@ b_push_move_exec: @ 8019FEC lsls r0, 24 lsrs r0, 22 adds r0, r3 - ldr r2, _0801A024 @ =gUnknown_030042D4 + ldr r2, _0801A024 @ =gBattleMainFunc ldr r1, [r2] str r1, [r0] ldr r0, _0801A028 @ =sub_8013FBC @@ -8662,9 +8662,9 @@ b_push_move_exec: @ 8019FEC pop {r0} bx r0 .align 2, 0 -_0801A01C: .4byte gUnknown_02024C10 +_0801A01C: .4byte gBattlescriptCurrInstr _0801A020: .4byte 0x02017140 -_0801A024: .4byte gUnknown_030042D4 +_0801A024: .4byte gBattleMainFunc _0801A028: .4byte sub_8013FBC thumb_func_end b_push_move_exec @@ -8689,7 +8689,7 @@ sub_801A02C: @ 801A02C str r1, [sp, 0xC] add r0, sp, 0x4 strb r1, [r0] - ldr r4, _0801A078 @ =gUnknown_02024C04 + ldr r4, _0801A078 @ =gLastUsedItem ldr r1, _0801A07C @ =gBattleMons movs r0, 0x58 muls r0, r7 @@ -8709,7 +8709,7 @@ sub_801A02C: @ 801A02C ldrb r0, [r0, 0x1A] b _0801A098 .align 2, 0 -_0801A078: .4byte gUnknown_02024C04 +_0801A078: .4byte gLastUsedItem _0801A07C: .4byte gBattleMons _0801A080: .4byte gEnigmaBerries _0801A084: @@ -8724,7 +8724,7 @@ _0801A084: _0801A098: mov r9, r0 ldr r1, _0801A0C0 @ =gBattleMons - ldr r0, _0801A0C4 @ =gPlayerMonIndex + ldr r0, _0801A0C4 @ =gBankAttacker ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -8744,7 +8744,7 @@ _0801A098: b _0801A0E2 .align 2, 0 _0801A0C0: .4byte gBattleMons -_0801A0C4: .4byte gPlayerMonIndex +_0801A0C4: .4byte gBankAttacker _0801A0C8: .4byte gEnigmaBerries _0801A0CC: ldr r0, [sp, 0x14] @@ -8759,7 +8759,7 @@ _0801A0CC: _0801A0E2: str r0, [sp, 0x10] ldr r2, _0801A118 @ =gBattleMons - ldr r0, _0801A11C @ =gEnemyMonIndex + ldr r0, _0801A11C @ =gBankTarget ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -8784,7 +8784,7 @@ _0801A10C: mov pc, r0 .align 2, 0 _0801A118: .4byte gBattleMons -_0801A11C: .4byte gEnemyMonIndex +_0801A11C: .4byte gBankTarget _0801A120: .4byte _0801A124 .align 2, 0 _0801A124: @@ -8846,10 +8846,10 @@ _0801A198: ldr r2, _0801A1C0 @ =0x00016003 adds r0, r2 strb r7, [r0] - ldr r0, _0801A1C4 @ =gUnknown_02024C0B + ldr r0, _0801A1C4 @ =gStringBank strb r7, [r0] - ldr r1, _0801A1C8 @ =gUnknown_02024A60 - ldr r0, _0801A1CC @ =gPlayerMonIndex + ldr r1, _0801A1C8 @ =gActiveBank + ldr r0, _0801A1CC @ =gBankAttacker strb r7, [r0] strb r7, [r1] ldr r0, _0801A1D0 @ =gUnknown_081D9A5E @@ -8859,9 +8859,9 @@ _0801A198: _0801A1B8: .4byte gBattleMons _0801A1BC: .4byte 0x02000000 _0801A1C0: .4byte 0x00016003 -_0801A1C4: .4byte gUnknown_02024C0B -_0801A1C8: .4byte gUnknown_02024A60 -_0801A1CC: .4byte gPlayerMonIndex +_0801A1C4: .4byte gStringBank +_0801A1C8: .4byte gActiveBank +_0801A1CC: .4byte gBankAttacker _0801A1D0: .4byte gUnknown_081D9A5E _0801A1D4: ldr r1, _0801A1FC @ =gBattleMons @@ -8974,11 +8974,11 @@ _0801A2F8: bl _0801AD5A _0801A300: adds r0, r7, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0801A324 - ldr r1, _0801A31C @ =gUnknown_02024A6A + ldr r1, _0801A31C @ =gBattlePartyID lsls r0, r7, 1 adds r0, r1 ldrh r1, [r0] @@ -8987,10 +8987,10 @@ _0801A300: ldr r0, _0801A320 @ =gPlayerParty b _0801A332 .align 2, 0 -_0801A31C: .4byte gUnknown_02024A6A +_0801A31C: .4byte gBattlePartyID _0801A320: .4byte gPlayerParty _0801A324: - ldr r1, _0801A3A0 @ =gUnknown_02024A6A + ldr r1, _0801A3A0 @ =gBattlePartyID lsls r0, r7, 1 adds r0, r1 ldrh r1, [r0] @@ -9052,13 +9052,13 @@ _0801A37E: strb r2, [r0] b _0801A3AC .align 2, 0 -_0801A3A0: .4byte gUnknown_02024A6A +_0801A3A0: .4byte gBattlePartyID _0801A3A4: .4byte gEnemyParty _0801A3A8: add r0, sp, 0x4 strb r1, [r0] _0801A3AC: - ldr r1, _0801A3EC @ =gUnknown_030041C0 + ldr r1, _0801A3EC @ =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x2 @@ -9079,17 +9079,17 @@ _0801A3AC: movs r0, 0 movs r2, 0 movs r3, 0x1 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldr r0, _0801A3F4 @ =gUnknown_02024A60 + bl EmitSetAttributes + ldr r0, _0801A3F4 @ =gActiveBank ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution movs r1, 0x3 str r1, [sp, 0xC] bl _0801AD62 .align 2, 0 -_0801A3EC: .4byte gUnknown_030041C0 +_0801A3EC: .4byte gBattleTextBuff1 _0801A3F0: .4byte gUnknown_081D9A91 -_0801A3F4: .4byte gUnknown_02024A60 +_0801A3F4: .4byte gActiveBank _0801A3F8: ldr r0, _0801A450 @ =gBattleMons movs r1, 0x58 @@ -9126,10 +9126,10 @@ _0801A432: ldr r3, _0801A458 @ =0x00016003 adds r0, r3 strb r7, [r0] - ldr r0, _0801A45C @ =gUnknown_02024C0B + ldr r0, _0801A45C @ =gStringBank strb r7, [r0] - ldr r1, _0801A460 @ =gUnknown_02024A60 - ldr r0, _0801A464 @ =gPlayerMonIndex + ldr r1, _0801A460 @ =gActiveBank + ldr r0, _0801A464 @ =gBankAttacker strb r7, [r0] strb r7, [r1] ldr r0, _0801A468 @ =gUnknown_081D9A5E @@ -9139,9 +9139,9 @@ _0801A432: _0801A450: .4byte gBattleMons _0801A454: .4byte 0x02000000 _0801A458: .4byte 0x00016003 -_0801A45C: .4byte gUnknown_02024C0B -_0801A460: .4byte gUnknown_02024A60 -_0801A464: .4byte gPlayerMonIndex +_0801A45C: .4byte gStringBank +_0801A460: .4byte gActiveBank +_0801A464: .4byte gBankAttacker _0801A468: .4byte gUnknown_081D9A5E _0801A46C: movs r0, 0x58 @@ -9207,7 +9207,7 @@ _0801A4E4: beq _0801A4EC bl _0801AD5A _0801A4EC: - ldr r1, _0801A540 @ =gUnknown_030041C0 + ldr r1, _0801A540 @ =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x8 @@ -9252,7 +9252,7 @@ _0801A532: _0801A53E: b _0801A74C .align 2, 0 -_0801A540: .4byte gUnknown_030041C0 +_0801A540: .4byte gBattleTextBuff1 _0801A544: .4byte gBattleMoveDamage _0801A548: movs r0, 0x58 @@ -9272,7 +9272,7 @@ _0801A562: beq _0801A56A bl _0801AD5A _0801A56A: - ldr r1, _0801A5BC @ =gUnknown_030041C0 + ldr r1, _0801A5BC @ =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x8 @@ -9314,7 +9314,7 @@ _0801A59E: blt _0801A6A4 b _0801A6B8 .align 2, 0 -_0801A5BC: .4byte gUnknown_030041C0 +_0801A5BC: .4byte gBattleTextBuff1 _0801A5C0: .4byte gBattleMoveDamage _0801A5C4: movs r0, 0x58 @@ -9334,7 +9334,7 @@ _0801A5DC: beq _0801A5E2 b _0801AD5A _0801A5E2: - ldr r1, _0801A62C @ =gUnknown_030041C0 + ldr r1, _0801A62C @ =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x8 @@ -9373,7 +9373,7 @@ _0801A618: movs r1, 0x2 b _0801A532 .align 2, 0 -_0801A62C: .4byte gUnknown_030041C0 +_0801A62C: .4byte gBattleTextBuff1 _0801A630: .4byte gBattleMoveDamage _0801A634: movs r0, 0x58 @@ -9393,7 +9393,7 @@ _0801A64C: beq _0801A652 b _0801AD5A _0801A652: - ldr r1, _0801A6AC @ =gUnknown_030041C0 + ldr r1, _0801A6AC @ =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x8 @@ -9439,7 +9439,7 @@ _0801A6A4: bl b_call_bc_move_exec b _0801A6BE .align 2, 0 -_0801A6AC: .4byte gUnknown_030041C0 +_0801A6AC: .4byte gBattleTextBuff1 _0801A6B0: .4byte gBattleMoveDamage _0801A6B4: .4byte gUnknown_081D9AD4 _0801A6B8: @@ -9469,7 +9469,7 @@ _0801A6E0: beq _0801A6E6 b _0801AD5A _0801A6E6: - ldr r1, _0801A740 @ =gUnknown_030041C0 + ldr r1, _0801A740 @ =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x8 @@ -9515,7 +9515,7 @@ _0801A738: bl b_call_bc_move_exec b _0801A752 .align 2, 0 -_0801A740: .4byte gUnknown_030041C0 +_0801A740: .4byte gBattleTextBuff1 _0801A744: .4byte gBattleMoveDamage _0801A748: .4byte gUnknown_081D9AD4 _0801A74C: @@ -9550,7 +9550,7 @@ _0801A77A: ble _0801A784 b _0801AD5A _0801A784: - ldr r1, _0801A7BC @ =gUnknown_030041C0 + ldr r1, _0801A7BC @ =gBattleTextBuff1 movs r2, 0xFD strb r2, [r1] movs r0, 0x5 @@ -9559,7 +9559,7 @@ _0801A784: strb r0, [r1, 0x2] movs r0, 0xFF strb r0, [r1, 0x3] - ldr r1, _0801A7C0 @ =gUnknown_03004290 + ldr r1, _0801A7C0 @ =gBattleTextBuff2 strb r2, [r1] strb r6, [r1, 0x1] movs r0, 0xD2 @@ -9567,7 +9567,7 @@ _0801A784: strb r6, [r1, 0x3] subs r0, 0xD3 strb r0, [r1, 0x4] - ldr r0, _0801A7C4 @ =gUnknown_02024C0A + ldr r0, _0801A7C4 @ =gEffectBank strb r7, [r0] ldr r1, _0801A7C8 @ =0x02000000 ldr r3, _0801A7CC @ =0x0001601e @@ -9579,9 +9579,9 @@ _0801A784: movs r0, 0xF b _0801A94C .align 2, 0 -_0801A7BC: .4byte gUnknown_030041C0 -_0801A7C0: .4byte gUnknown_03004290 -_0801A7C4: .4byte gUnknown_02024C0A +_0801A7BC: .4byte gBattleTextBuff1 +_0801A7C0: .4byte gBattleTextBuff2 +_0801A7C4: .4byte gEffectBank _0801A7C8: .4byte 0x02000000 _0801A7CC: .4byte 0x0001601e _0801A7D0: .4byte 0x000160a4 @@ -9608,7 +9608,7 @@ _0801A7F2: ble _0801A7FC b _0801AD5A _0801A7FC: - ldr r1, _0801A824 @ =gUnknown_030041C0 + ldr r1, _0801A824 @ =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x5 @@ -9617,7 +9617,7 @@ _0801A7FC: strb r0, [r1, 0x2] movs r0, 0xFF strb r0, [r1, 0x3] - ldr r0, _0801A828 @ =gUnknown_02024C0A + ldr r0, _0801A828 @ =gEffectBank strb r7, [r0] ldr r1, _0801A82C @ =0x02000000 ldr r3, _0801A830 @ =0x0001601e @@ -9629,8 +9629,8 @@ _0801A7FC: movs r0, 0x10 b _0801A94C .align 2, 0 -_0801A824: .4byte gUnknown_030041C0 -_0801A828: .4byte gUnknown_02024C0A +_0801A824: .4byte gBattleTextBuff1 +_0801A828: .4byte gEffectBank _0801A82C: .4byte 0x02000000 _0801A830: .4byte 0x0001601e _0801A834: .4byte 0x000160a4 @@ -9657,7 +9657,7 @@ _0801A856: ble _0801A860 b _0801AD5A _0801A860: - ldr r1, _0801A888 @ =gUnknown_030041C0 + ldr r1, _0801A888 @ =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x5 @@ -9666,7 +9666,7 @@ _0801A860: strb r0, [r1, 0x2] movs r0, 0xFF strb r0, [r1, 0x3] - ldr r0, _0801A88C @ =gUnknown_02024C0A + ldr r0, _0801A88C @ =gEffectBank strb r7, [r0] ldr r1, _0801A890 @ =0x02000000 ldr r3, _0801A894 @ =0x0001601e @@ -9678,8 +9678,8 @@ _0801A860: movs r0, 0x11 b _0801A94C .align 2, 0 -_0801A888: .4byte gUnknown_030041C0 -_0801A88C: .4byte gUnknown_02024C0A +_0801A888: .4byte gBattleTextBuff1 +_0801A88C: .4byte gEffectBank _0801A890: .4byte 0x02000000 _0801A894: .4byte 0x0001601e _0801A898: .4byte 0x000160a4 @@ -9706,7 +9706,7 @@ _0801A8BA: ble _0801A8C4 b _0801AD5A _0801A8C4: - ldr r1, _0801A8EC @ =gUnknown_030041C0 + ldr r1, _0801A8EC @ =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x5 @@ -9715,7 +9715,7 @@ _0801A8C4: strb r0, [r1, 0x2] movs r0, 0xFF strb r0, [r1, 0x3] - ldr r0, _0801A8F0 @ =gUnknown_02024C0A + ldr r0, _0801A8F0 @ =gEffectBank strb r7, [r0] ldr r1, _0801A8F4 @ =0x02000000 ldr r3, _0801A8F8 @ =0x0001601e @@ -9727,8 +9727,8 @@ _0801A8C4: movs r0, 0x12 b _0801A94C .align 2, 0 -_0801A8EC: .4byte gUnknown_030041C0 -_0801A8F0: .4byte gUnknown_02024C0A +_0801A8EC: .4byte gBattleTextBuff1 +_0801A8F0: .4byte gEffectBank _0801A8F4: .4byte 0x02000000 _0801A8F8: .4byte 0x0001601e _0801A8FC: .4byte 0x000160a4 @@ -9755,7 +9755,7 @@ _0801A91E: ble _0801A928 b _0801AD5A _0801A928: - ldr r1, _0801A960 @ =gUnknown_030041C0 + ldr r1, _0801A960 @ =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x5 @@ -9763,7 +9763,7 @@ _0801A928: strb r0, [r1, 0x2] movs r0, 0xFF strb r0, [r1, 0x3] - ldr r0, _0801A964 @ =gUnknown_02024C0A + ldr r0, _0801A964 @ =gEffectBank strb r7, [r0] ldr r1, _0801A968 @ =0x02000000 ldr r3, _0801A96C @ =0x0001601e @@ -9784,8 +9784,8 @@ _0801A94C: str r0, [sp, 0xC] b _0801AD62 .align 2, 0 -_0801A960: .4byte gUnknown_030041C0 -_0801A964: .4byte gUnknown_02024C0A +_0801A960: .4byte gBattleTextBuff1 +_0801A964: .4byte gEffectBank _0801A968: .4byte 0x02000000 _0801A96C: .4byte 0x0001601e _0801A970: .4byte 0x000160a4 @@ -9899,7 +9899,7 @@ _0801AA28: asrs r0, 24 cmp r0, 0xC beq _0801AA28 - ldr r1, _0801AAA8 @ =gUnknown_030041C0 + ldr r1, _0801AAA8 @ =gBattleTextBuff1 movs r3, 0 movs r2, 0xFD strb r2, [r1] @@ -9910,7 +9910,7 @@ _0801AA28: strb r0, [r1, 0x2] movs r0, 0xFF strb r0, [r1, 0x3] - ldr r0, _0801AAAC @ =gUnknown_03004290 + ldr r0, _0801AAAC @ =gBattleTextBuff2 strb r2, [r0] strb r3, [r0, 0x1] movs r1, 0xD1 @@ -9922,7 +9922,7 @@ _0801AA28: strb r3, [r0, 0x6] subs r1, 0xD3 strb r1, [r0, 0x7] - ldr r0, _0801AAB0 @ =gUnknown_02024C0A + ldr r0, _0801AAB0 @ =gEffectBank strb r7, [r0] ldr r1, _0801AAB4 @ =0x02000000 mov r2, r10 @@ -9944,9 +9944,9 @@ _0801AA28: b _0801AD62 .align 2, 0 _0801AAA4: .4byte gUnknown_02024A98 -_0801AAA8: .4byte gUnknown_030041C0 -_0801AAAC: .4byte gUnknown_03004290 -_0801AAB0: .4byte gUnknown_02024C0A +_0801AAA8: .4byte gBattleTextBuff1 +_0801AAAC: .4byte gBattleTextBuff2 +_0801AAB0: .4byte gEffectBank _0801AAB4: .4byte 0x02000000 _0801AAB8: .4byte 0x0001601e _0801AABC: .4byte 0x000160a4 @@ -10134,7 +10134,7 @@ _0801AC1E: ands r2, r0 cmp r2, 0 beq _0801AC36 - ldr r0, _0801ACC4 @ =gUnknown_030041C0 + ldr r0, _0801ACC4 @ =gBattleTextBuff1 ldr r1, _0801ACC8 @ =gStatusConditionString_PoisonJpn bl StringCopy movs r0, 0x1 @@ -10153,7 +10153,7 @@ _0801AC36: ldr r1, _0801ACCC @ =0xf7ffffff ands r0, r1 str r0, [r2] - ldr r0, _0801ACC4 @ =gUnknown_030041C0 + ldr r0, _0801ACC4 @ =gBattleTextBuff1 ldr r1, _0801ACD0 @ =gStatusConditionString_SleepJpn bl StringCopy movs r2, 0x1 @@ -10164,7 +10164,7 @@ _0801AC5C: ands r0, r1 cmp r0, 0 beq _0801AC72 - ldr r0, _0801ACC4 @ =gUnknown_030041C0 + ldr r0, _0801ACC4 @ =gBattleTextBuff1 ldr r1, _0801ACD4 @ =gStatusConditionString_ParalysisJpn bl StringCopy movs r3, 0x1 @@ -10175,7 +10175,7 @@ _0801AC72: ands r0, r1 cmp r0, 0 beq _0801AC88 - ldr r0, _0801ACC4 @ =gUnknown_030041C0 + ldr r0, _0801ACC4 @ =gBattleTextBuff1 ldr r1, _0801ACD8 @ =gStatusConditionString_BurnJpn bl StringCopy movs r0, 0x1 @@ -10186,7 +10186,7 @@ _0801AC88: ands r0, r1 cmp r0, 0 beq _0801AC9E - ldr r0, _0801ACC4 @ =gUnknown_030041C0 + ldr r0, _0801ACC4 @ =gBattleTextBuff1 ldr r1, _0801ACDC @ =gStatusConditionString_IceJpn bl StringCopy movs r1, 0x1 @@ -10198,7 +10198,7 @@ _0801AC9E: ands r0, r2 cmp r0, 0 beq _0801ACB6 - ldr r0, _0801ACC4 @ =gUnknown_030041C0 + ldr r0, _0801ACC4 @ =gBattleTextBuff1 ldr r1, _0801ACE0 @ =gStatusConditionString_ConfusionJpn bl StringCopy movs r3, 0x1 @@ -10207,11 +10207,11 @@ _0801ACB6: mov r4, r10 cmp r4, 0x1 bgt _0801ACE8 - ldr r1, _0801ACE4 @ =gUnknown_02024D1E + ldr r1, _0801ACE4 @ =gBattleCommunication movs r0, 0 b _0801ACEC .align 2, 0 -_0801ACC4: .4byte gUnknown_030041C0 +_0801ACC4: .4byte gBattleTextBuff1 _0801ACC8: .4byte gStatusConditionString_PoisonJpn _0801ACCC: .4byte 0xf7ffffff _0801ACD0: .4byte gStatusConditionString_SleepJpn @@ -10219,9 +10219,9 @@ _0801ACD4: .4byte gStatusConditionString_ParalysisJpn _0801ACD8: .4byte gStatusConditionString_BurnJpn _0801ACDC: .4byte gStatusConditionString_IceJpn _0801ACE0: .4byte gStatusConditionString_ConfusionJpn -_0801ACE4: .4byte gUnknown_02024D1E +_0801ACE4: .4byte gBattleCommunication _0801ACE8: - ldr r1, _0801AD18 @ =gUnknown_02024D1E + ldr r1, _0801AD18 @ =gBattleCommunication movs r0, 0x1 _0801ACEC: strb r0, [r1, 0x5] @@ -10247,7 +10247,7 @@ _0801AD0E: str r5, [sp, 0xC] b _0801AD62 .align 2, 0 -_0801AD18: .4byte gUnknown_02024D1E +_0801AD18: .4byte gBattleCommunication _0801AD1C: .4byte gBattleMons _0801AD20: .4byte gUnknown_081D9A44 _0801AD24: @@ -10266,12 +10266,12 @@ _0801AD24: ldr r0, _0801AD84 @ =0xfff0ffff ands r2, r0 str r2, [r1] - ldr r0, _0801AD88 @ =gUnknown_030041C0 + ldr r0, _0801AD88 @ =gBattleTextBuff1 ldr r1, _0801AD8C @ =gStatusConditionString_LoveJpn bl StringCopy ldr r0, _0801AD90 @ =gUnknown_081D9A44 bl b_call_bc_move_exec - ldr r1, _0801AD94 @ =gUnknown_02024D1E + ldr r1, _0801AD94 @ =gBattleCommunication movs r0, 0 strb r0, [r1, 0x5] movs r0, 0x2 @@ -10286,10 +10286,10 @@ _0801AD62: ldr r2, _0801AD9C @ =0x00016003 adds r0, r2 strb r7, [r0] - ldr r0, _0801ADA0 @ =gUnknown_02024C0B + ldr r0, _0801ADA0 @ =gStringBank strb r7, [r0] - ldr r4, _0801ADA4 @ =gUnknown_02024A60 - ldr r0, _0801ADA8 @ =gPlayerMonIndex + ldr r4, _0801ADA4 @ =gActiveBank + ldr r0, _0801ADA8 @ =gBankAttacker strb r7, [r0] strb r7, [r4] ldr r3, [sp, 0xC] @@ -10300,15 +10300,15 @@ _0801AD62: b _0801B3CA .align 2, 0 _0801AD84: .4byte 0xfff0ffff -_0801AD88: .4byte gUnknown_030041C0 +_0801AD88: .4byte gBattleTextBuff1 _0801AD8C: .4byte gStatusConditionString_LoveJpn _0801AD90: .4byte gUnknown_081D9A44 -_0801AD94: .4byte gUnknown_02024D1E +_0801AD94: .4byte gBattleCommunication _0801AD98: .4byte 0x02000000 _0801AD9C: .4byte 0x00016003 -_0801ADA0: .4byte gUnknown_02024C0B -_0801ADA4: .4byte gUnknown_02024A60 -_0801ADA8: .4byte gPlayerMonIndex +_0801ADA0: .4byte gStringBank +_0801ADA4: .4byte gActiveBank +_0801ADA8: .4byte gBankAttacker _0801ADAC: movs r0, 0x58 muls r0, r7 @@ -10329,7 +10329,7 @@ _0801ADB2: beq _0801ADCE b _0801B3CA _0801ADCE: - ldr r1, _0801AE04 @ =gUnknown_02024CA8 + ldr r1, _0801AE04 @ =gDisableStructs lsls r0, r7, 3 subs r0, r7 lsls r0, 2 @@ -10356,17 +10356,17 @@ _0801ADEE: b _0801B3CA .align 2, 0 _0801AE00: .4byte gBattleMons -_0801AE04: .4byte gUnknown_02024CA8 +_0801AE04: .4byte gDisableStructs _0801AE08: .4byte gBitTable _0801AE0C: movs r7, 0 - ldr r0, _0801AE3C @ =gUnknown_02024A68 + ldr r0, _0801AE3C @ =gNoOfAllBanks ldrb r0, [r0] cmp r7, r0 bcc _0801AE18 b _0801B3CA _0801AE18: - ldr r4, _0801AE40 @ =gUnknown_02024C04 + ldr r4, _0801AE40 @ =gLastUsedItem ldr r1, _0801AE44 @ =gBattleMons movs r0, 0x58 muls r0, r7 @@ -10385,8 +10385,8 @@ _0801AE18: ldrb r5, [r0, 0x7] b _0801AE5C .align 2, 0 -_0801AE3C: .4byte gUnknown_02024A68 -_0801AE40: .4byte gUnknown_02024C04 +_0801AE3C: .4byte gNoOfAllBanks +_0801AE40: .4byte gLastUsedItem _0801AE44: .4byte gBattleMons _0801AE48: .4byte gEnigmaBerries _0801AE4C: @@ -10456,7 +10456,7 @@ _0801AEF6: ands r1, r0 str r1, [r2] bl b_movescr_stack_push_cursor - ldr r1, _0801AF14 @ =gUnknown_02024C10 + ldr r1, _0801AF14 @ =gBattlescriptCurrInstr ldr r0, _0801AF18 @ =gUnknown_081D99BC str r0, [r1] movs r0, 0x1 @@ -10464,7 +10464,7 @@ _0801AEF6: b _0801B20E .align 2, 0 _0801AF10: .4byte gBattleMons -_0801AF14: .4byte gUnknown_02024C10 +_0801AF14: .4byte gBattlescriptCurrInstr _0801AF18: .4byte gUnknown_081D99BC _0801AF1C: ldr r1, _0801AF48 @ =gBattleMons @@ -10483,7 +10483,7 @@ _0801AF32: ands r1, r0 str r1, [r2] bl b_movescr_stack_push_cursor - ldr r1, _0801AF50 @ =gUnknown_02024C10 + ldr r1, _0801AF50 @ =gBattlescriptCurrInstr ldr r0, _0801AF54 @ =gUnknown_081D99D4 str r0, [r1] movs r1, 0x1 @@ -10492,7 +10492,7 @@ _0801AF32: .align 2, 0 _0801AF48: .4byte gBattleMons _0801AF4C: .4byte 0xfffff077 -_0801AF50: .4byte gUnknown_02024C10 +_0801AF50: .4byte gBattlescriptCurrInstr _0801AF54: .4byte gUnknown_081D99D4 _0801AF58: ldr r1, _0801AF88 @ =gBattleMons @@ -10512,7 +10512,7 @@ _0801AF6E: ands r1, r0 str r1, [r2] bl b_movescr_stack_push_cursor - ldr r1, _0801AF8C @ =gUnknown_02024C10 + ldr r1, _0801AF8C @ =gBattlescriptCurrInstr ldr r0, _0801AF90 @ =gUnknown_081D99EC str r0, [r1] movs r2, 0x1 @@ -10520,7 +10520,7 @@ _0801AF6E: b _0801B20E .align 2, 0 _0801AF88: .4byte gBattleMons -_0801AF8C: .4byte gUnknown_02024C10 +_0801AF8C: .4byte gBattlescriptCurrInstr _0801AF90: .4byte gUnknown_081D99EC _0801AF94: ldr r1, _0801AFBC @ =gBattleMons @@ -10540,12 +10540,12 @@ _0801AFAA: ands r1, r0 str r1, [r2] bl b_movescr_stack_push_cursor - ldr r1, _0801AFC0 @ =gUnknown_02024C10 + ldr r1, _0801AFC0 @ =gBattlescriptCurrInstr ldr r0, _0801AFC4 @ =gUnknown_081D9A04 b _0801B168 .align 2, 0 _0801AFBC: .4byte gBattleMons -_0801AFC0: .4byte gUnknown_02024C10 +_0801AFC0: .4byte gBattlescriptCurrInstr _0801AFC4: .4byte gUnknown_081D9A04 _0801AFC8: ldr r2, _0801B008 @ =gBattleMons @@ -10573,7 +10573,7 @@ _0801AFE2: ands r0, r1 str r0, [r2] bl b_movescr_stack_push_cursor - ldr r1, _0801B010 @ =gUnknown_02024C10 + ldr r1, _0801B010 @ =gBattlescriptCurrInstr ldr r0, _0801B014 @ =gUnknown_081D9A1C str r0, [r1] movs r4, 0x1 @@ -10582,7 +10582,7 @@ _0801AFE2: .align 2, 0 _0801B008: .4byte gBattleMons _0801B00C: .4byte 0xf7ffffff -_0801B010: .4byte gUnknown_02024C10 +_0801B010: .4byte gBattlescriptCurrInstr _0801B014: .4byte gUnknown_081D9A1C _0801B018: ldr r1, _0801B048 @ =gBattleMons @@ -10602,7 +10602,7 @@ _0801B02E: ands r1, r0 str r1, [r2] bl b_movescr_stack_push_cursor - ldr r1, _0801B04C @ =gUnknown_02024C10 + ldr r1, _0801B04C @ =gBattlescriptCurrInstr ldr r0, _0801B050 @ =gUnknown_081D9A34 str r0, [r1] movs r5, 0x2 @@ -10610,7 +10610,7 @@ _0801B02E: b _0801B20E .align 2, 0 _0801B048: .4byte gBattleMons -_0801B04C: .4byte gUnknown_02024C10 +_0801B04C: .4byte gBattlescriptCurrInstr _0801B050: .4byte gUnknown_081D9A34 _0801B054: ldr r1, _0801B090 @ =gBattleMons @@ -10629,14 +10629,14 @@ _0801B06C: ldr r0, _0801B094 @ =0xfff0ffff ands r1, r0 str r1, [r2] - ldr r0, _0801B098 @ =gUnknown_030041C0 + ldr r0, _0801B098 @ =gBattleTextBuff1 ldr r1, _0801B09C @ =gStatusConditionString_LoveJpn bl StringCopy bl b_movescr_stack_push_cursor - ldr r1, _0801B0A0 @ =gUnknown_02024D1E + ldr r1, _0801B0A0 @ =gBattleCommunication movs r0, 0 strb r0, [r1, 0x5] - ldr r1, _0801B0A4 @ =gUnknown_02024C10 + ldr r1, _0801B0A4 @ =gBattlescriptCurrInstr ldr r0, _0801B0A8 @ =gUnknown_081D9A4A str r0, [r1] movs r0, 0x2 @@ -10645,10 +10645,10 @@ _0801B06C: .align 2, 0 _0801B090: .4byte gBattleMons _0801B094: .4byte 0xfff0ffff -_0801B098: .4byte gUnknown_030041C0 +_0801B098: .4byte gBattleTextBuff1 _0801B09C: .4byte gStatusConditionString_LoveJpn -_0801B0A0: .4byte gUnknown_02024D1E -_0801B0A4: .4byte gUnknown_02024C10 +_0801B0A0: .4byte gBattleCommunication +_0801B0A4: .4byte gBattlescriptCurrInstr _0801B0A8: .4byte gUnknown_081D9A4A _0801B0AC: ldr r4, _0801B170 @ =gBattleMons @@ -10676,7 +10676,7 @@ _0801B0D4: ands r2, r0 cmp r2, 0 beq _0801B0E4 - ldr r0, _0801B174 @ =gUnknown_030041C0 + ldr r0, _0801B174 @ =gBattleTextBuff1 ldr r1, _0801B178 @ =gStatusConditionString_PoisonJpn bl StringCopy _0801B0E4: @@ -10692,7 +10692,7 @@ _0801B0E4: ldr r1, _0801B17C @ =0xf7ffffff ands r0, r1 str r0, [r2] - ldr r0, _0801B174 @ =gUnknown_030041C0 + ldr r0, _0801B174 @ =gBattleTextBuff1 ldr r1, _0801B180 @ =gStatusConditionString_SleepJpn bl StringCopy _0801B104: @@ -10701,7 +10701,7 @@ _0801B104: ands r0, r1 cmp r0, 0 beq _0801B116 - ldr r0, _0801B174 @ =gUnknown_030041C0 + ldr r0, _0801B174 @ =gBattleTextBuff1 ldr r1, _0801B184 @ =gStatusConditionString_ParalysisJpn bl StringCopy _0801B116: @@ -10710,7 +10710,7 @@ _0801B116: ands r0, r1 cmp r0, 0 beq _0801B128 - ldr r0, _0801B174 @ =gUnknown_030041C0 + ldr r0, _0801B174 @ =gBattleTextBuff1 ldr r1, _0801B188 @ =gStatusConditionString_BurnJpn bl StringCopy _0801B128: @@ -10719,7 +10719,7 @@ _0801B128: ands r0, r1 cmp r0, 0 beq _0801B13A - ldr r0, _0801B174 @ =gUnknown_030041C0 + ldr r0, _0801B174 @ =gBattleTextBuff1 ldr r1, _0801B18C @ =gStatusConditionString_IceJpn bl StringCopy _0801B13A: @@ -10729,7 +10729,7 @@ _0801B13A: ands r0, r2 cmp r0, 0 beq _0801B14E - ldr r0, _0801B174 @ =gUnknown_030041C0 + ldr r0, _0801B174 @ =gBattleTextBuff1 ldr r1, _0801B190 @ =gStatusConditionString_ConfusionJpn bl StringCopy _0801B14E: @@ -10741,9 +10741,9 @@ _0801B14E: ands r0, r1 str r0, [r5] bl b_movescr_stack_push_cursor - ldr r0, _0801B194 @ =gUnknown_02024D1E + ldr r0, _0801B194 @ =gBattleCommunication strb r4, [r0, 0x5] - ldr r1, _0801B198 @ =gUnknown_02024C10 + ldr r1, _0801B198 @ =gBattlescriptCurrInstr ldr r0, _0801B19C @ =gUnknown_081D9A4A _0801B168: str r0, [r1] @@ -10752,7 +10752,7 @@ _0801B168: b _0801B20E .align 2, 0 _0801B170: .4byte gBattleMons -_0801B174: .4byte gUnknown_030041C0 +_0801B174: .4byte gBattleTextBuff1 _0801B178: .4byte gStatusConditionString_PoisonJpn _0801B17C: .4byte 0xf7ffffff _0801B180: .4byte gStatusConditionString_SleepJpn @@ -10760,8 +10760,8 @@ _0801B184: .4byte gStatusConditionString_ParalysisJpn _0801B188: .4byte gStatusConditionString_BurnJpn _0801B18C: .4byte gStatusConditionString_IceJpn _0801B190: .4byte gStatusConditionString_ConfusionJpn -_0801B194: .4byte gUnknown_02024D1E -_0801B198: .4byte gUnknown_02024C10 +_0801B194: .4byte gBattleCommunication +_0801B198: .4byte gBattlescriptCurrInstr _0801B19C: .4byte gUnknown_081D9A4A _0801B1A0: ldr r4, _0801B1F0 @ =gBattleMons @@ -10798,10 +10798,10 @@ _0801B1C4: ldr r1, _0801B1F8 @ =0x00016003 adds r0, r1 strb r7, [r0] - ldr r0, _0801B1FC @ =gUnknown_02024C0B + ldr r0, _0801B1FC @ =gStringBank strb r7, [r0] bl b_movescr_stack_push_cursor - ldr r1, _0801B200 @ =gUnknown_02024C10 + ldr r1, _0801B200 @ =gBattlescriptCurrInstr ldr r0, _0801B204 @ =gUnknown_081D9A64 str r0, [r1] b _0801B3CA @@ -10809,8 +10809,8 @@ _0801B1C4: _0801B1F0: .4byte gBattleMons _0801B1F4: .4byte 0x02000000 _0801B1F8: .4byte 0x00016003 -_0801B1FC: .4byte gUnknown_02024C0B -_0801B200: .4byte gUnknown_02024C10 +_0801B1FC: .4byte gStringBank +_0801B200: .4byte gBattlescriptCurrInstr _0801B204: .4byte gUnknown_081D9A64 _0801B208: ldr r2, [sp, 0xC] @@ -10821,9 +10821,9 @@ _0801B20E: ldr r3, _0801B244 @ =0x00016003 adds r0, r3 strb r7, [r0] - ldr r0, _0801B248 @ =gUnknown_02024C0B + ldr r0, _0801B248 @ =gStringBank strb r7, [r0] - ldr r4, _0801B24C @ =gUnknown_02024A60 + ldr r4, _0801B24C @ =gActiveBank strb r7, [r4] ldrb r1, [r4] movs r0, 0x58 @@ -10836,21 +10836,21 @@ _0801B224: movs r1, 0x28 movs r2, 0 movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs + bl EmitSetAttributes ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution b _0801B3CA .align 2, 0 _0801B240: .4byte 0x02000000 _0801B244: .4byte 0x00016003 -_0801B248: .4byte gUnknown_02024C0B -_0801B24C: .4byte gUnknown_02024A60 +_0801B248: .4byte gStringBank +_0801B24C: .4byte gActiveBank _0801B250: .4byte gUnknown_02024ACC _0801B254: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 - ldr r0, _0801B268 @ =gUnknown_02024A68 + ldr r0, _0801B268 @ =gNoOfAllBanks ldrb r0, [r0] cmp r7, r0 bcs _0801B264 @@ -10858,7 +10858,7 @@ _0801B254: _0801B264: b _0801B3CA .align 2, 0 -_0801B268: .4byte gUnknown_02024A68 +_0801B268: .4byte gNoOfAllBanks _0801B26C: ldr r7, _0801B284 @ =gBattleMoveDamage ldr r0, [r7] @@ -10883,8 +10883,8 @@ _0801B288: beq _0801B296 b _0801B3CA _0801B296: - ldr r2, _0801B318 @ =gUnknown_02024D68 - ldr r4, _0801B31C @ =gEnemyMonIndex + ldr r2, _0801B318 @ =gSpecialStatuses + ldr r4, _0801B31C @ =gBankTarget ldrb r1, [r4] lsls r0, r1, 2 adds r0, r1 @@ -10913,7 +10913,7 @@ _0801B2BC: cmp r0, r9 bcs _0801B3CA ldr r2, _0801B320 @ =gBattleMoves - ldr r0, _0801B324 @ =gUnknown_02024BE6 + ldr r0, _0801B324 @ =gCurrentMove ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -10932,7 +10932,7 @@ _0801B2BC: ldrh r0, [r0, 0x28] cmp r0, 0 beq _0801B3CA - ldr r1, _0801B32C @ =gUnknown_02024D1E + ldr r1, _0801B32C @ =gBattleCommunication movs r0, 0x8 strb r0, [r1, 0x3] bl b_movescr_stack_push_cursor @@ -10943,12 +10943,12 @@ _0801B2BC: b _0801B3CA .align 2, 0 _0801B314: .4byte gBattleMoveFlags -_0801B318: .4byte gUnknown_02024D68 -_0801B31C: .4byte gEnemyMonIndex +_0801B318: .4byte gSpecialStatuses +_0801B31C: .4byte gBankTarget _0801B320: .4byte gBattleMoves -_0801B324: .4byte gUnknown_02024BE6 +_0801B324: .4byte gCurrentMove _0801B328: .4byte gBattleMons -_0801B32C: .4byte gUnknown_02024D1E +_0801B32C: .4byte gBattleCommunication _0801B330: ldr r0, _0801B3DC @ =gBattleMoveFlags ldrb r0, [r0] @@ -10956,8 +10956,8 @@ _0801B330: ands r4, r0 cmp r4, 0 bne _0801B3CA - ldr r1, _0801B3E0 @ =gUnknown_02024D68 - ldr r5, _0801B3E4 @ =gEnemyMonIndex + ldr r1, _0801B3E0 @ =gSpecialStatuses + ldr r5, _0801B3E4 @ =gBankTarget ldrb r2, [r5] lsls r0, r2, 2 adds r0, r2 @@ -10970,7 +10970,7 @@ _0801B330: ldr r0, _0801B3E8 @ =0x0000ffff cmp r1, r0 beq _0801B3CA - ldr r0, _0801B3EC @ =gPlayerMonIndex + ldr r0, _0801B3EC @ =gBankAttacker ldrb r3, [r0] cmp r3, r2 beq _0801B3CA @@ -10985,11 +10985,11 @@ _0801B330: beq _0801B3CA cmp r1, 0 beq _0801B3CA - ldr r0, _0801B3F4 @ =gUnknown_02024C04 + ldr r0, _0801B3F4 @ =gLastUsedItem mov r1, sp ldrh r1, [r1, 0x14] strh r1, [r0] - ldr r0, _0801B3F8 @ =gUnknown_02024C0B + ldr r0, _0801B3F8 @ =gStringBank strb r3, [r0] ldr r0, _0801B3FC @ =0x02000000 ldr r2, _0801B400 @ =0x00016003 @@ -11018,7 +11018,7 @@ _0801B3AC: adds r0, r6 str r4, [r0] bl b_movescr_stack_push_cursor - ldr r1, _0801B404 @ =gUnknown_02024C10 + ldr r1, _0801B404 @ =gBattlescriptCurrInstr ldr r0, _0801B408 @ =gUnknown_081D9AA7 str r0, [r1] ldr r0, [sp, 0xC] @@ -11038,16 +11038,16 @@ _0801B3CA: bx r1 .align 2, 0 _0801B3DC: .4byte gBattleMoveFlags -_0801B3E0: .4byte gUnknown_02024D68 -_0801B3E4: .4byte gEnemyMonIndex +_0801B3E0: .4byte gSpecialStatuses +_0801B3E4: .4byte gBankTarget _0801B3E8: .4byte 0x0000ffff -_0801B3EC: .4byte gPlayerMonIndex +_0801B3EC: .4byte gBankAttacker _0801B3F0: .4byte gBattleMons -_0801B3F4: .4byte gUnknown_02024C04 -_0801B3F8: .4byte gUnknown_02024C0B +_0801B3F4: .4byte gLastUsedItem +_0801B3F8: .4byte gStringBank _0801B3FC: .4byte 0x02000000 _0801B400: .4byte 0x00016003 -_0801B404: .4byte gUnknown_02024C10 +_0801B404: .4byte gBattlescriptCurrInstr _0801B408: .4byte gUnknown_081D9AA7 thumb_func_end sub_801A02C @@ -11078,7 +11078,7 @@ _0801B42E: adds r2, 0x1 str r2, [sp, 0x4] _0801B438: - ldr r0, _0801B46C @ =gUnknown_02024C0C + ldr r0, _0801B46C @ =gAbsentBankFlags ldrb r2, [r0] ldr r3, _0801B470 @ =gBitTable lsls r0, r5, 2 @@ -11103,14 +11103,14 @@ _0801B45A: .align 2, 0 _0801B464: .4byte gBattleTypeFlags _0801B468: .4byte gUnknown_081FC1D0 -_0801B46C: .4byte gUnknown_02024C0C +_0801B46C: .4byte gAbsentBankFlags _0801B470: .4byte gBitTable _0801B474: ldr r0, _0801B580 @ =gUnknown_081FC1D0 ldr r2, [sp] lsls r1, r2, 3 adds r6, r1, r0 - ldr r4, _0801B584 @ =gUnknown_02024C60 + ldr r4, _0801B584 @ =gChosenMovesByBanks lsls r0, r5, 1 adds r3, r0, r4 ldrh r2, [r6] @@ -11126,34 +11126,34 @@ _0801B474: cmp r1, r0 bne _0801B4E4 adds r0, r5, 0 - bl battle_get_per_side_status + bl GetBankIdentity mov r2, r9 ands r2, r0 lsls r1, r2, 1 adds r1, r2 lsls r1, 2 - ldr r0, _0801B588 @ =gUnknown_02024C80 + ldr r0, _0801B588 @ =gSideTimer adds r1, r0 lsls r0, r7, 4 orrs r0, r5 strb r0, [r1, 0x3] adds r0, r5, 0 - bl battle_get_per_side_status + bl GetBankIdentity mov r1, r9 ands r1, r0 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 - ldr r1, _0801B588 @ =gUnknown_02024C80 + ldr r1, _0801B588 @ =gSideTimer adds r0, r1 ldrh r1, [r6, 0x4] strh r1, [r0, 0x4] adds r0, r5, 0 - bl battle_get_per_side_status + bl GetBankIdentity mov r1, r9 ands r1, r0 lsls r1, 1 - ldr r2, _0801B58C @ =gUnknown_02024C7A + ldr r2, _0801B58C @ =gSideAffecting adds r1, r2 ldrh r0, [r1] movs r2, 0x4 @@ -11163,7 +11163,7 @@ _0801B4E4: ldr r0, _0801B580 @ =gUnknown_081FC1D0 mov r1, r8 adds r4, r1, r0 - ldr r2, _0801B584 @ =gUnknown_02024C60 + ldr r2, _0801B584 @ =gChosenMovesByBanks lsls r0, r7, 1 adds r0, r2 ldrh r1, [r4] @@ -11177,34 +11177,34 @@ _0801B4E4: cmp r0, r1 bne _0801B54E adds r0, r5, 0 - bl battle_get_per_side_status + bl GetBankIdentity mov r2, r9 ands r2, r0 lsls r1, r2, 1 adds r1, r2 lsls r1, 2 - ldr r2, _0801B588 @ =gUnknown_02024C80 + ldr r2, _0801B588 @ =gSideTimer adds r1, r2 lsls r0, r5, 4 orrs r0, r7 strb r0, [r1, 0x3] adds r0, r5, 0 - bl battle_get_per_side_status + bl GetBankIdentity mov r1, r9 ands r1, r0 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 - ldr r1, _0801B588 @ =gUnknown_02024C80 + ldr r1, _0801B588 @ =gSideTimer adds r0, r1 ldrh r1, [r4, 0x4] strh r1, [r0, 0x4] adds r0, r5, 0 - bl battle_get_per_side_status + bl GetBankIdentity mov r1, r9 ands r1, r0 lsls r1, 1 - ldr r2, _0801B58C @ =gUnknown_02024C7A + ldr r2, _0801B58C @ =gSideAffecting adds r1, r2 ldrh r0, [r1] movs r2, 0x4 @@ -11240,21 +11240,21 @@ _0801B56E: bx r0 .align 2, 0 _0801B580: .4byte gUnknown_081FC1D0 -_0801B584: .4byte gUnknown_02024C60 -_0801B588: .4byte gUnknown_02024C80 -_0801B58C: .4byte gUnknown_02024C7A +_0801B584: .4byte gChosenMovesByBanks +_0801B588: .4byte gSideTimer +_0801B58C: .4byte gSideAffecting _0801B590: .4byte 0x0000ffff thumb_func_end unref_sub_801B40C thumb_func_start sub_801B594 sub_801B594: @ 801B594 push {lr} - ldr r0, _0801B5B4 @ =gUnknown_02024A64 + ldr r0, _0801B5B4 @ =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 bne _0801B5B0 - ldr r1, _0801B5B8 @ =gUnknown_081FA73C - ldr r0, _0801B5BC @ =gUnknown_02024C10 + ldr r1, _0801B5B8 @ =gBattleScriptingCommandsTable + ldr r0, _0801B5BC @ =gBattlescriptCurrInstr ldr r0, [r0] ldrb r0, [r0] lsls r0, 2 @@ -11265,9 +11265,9 @@ _0801B5B0: pop {r0} bx r0 .align 2, 0 -_0801B5B4: .4byte gUnknown_02024A64 -_0801B5B8: .4byte gUnknown_081FA73C -_0801B5BC: .4byte gUnknown_02024C10 +_0801B5B4: .4byte gBattleExecBuffer +_0801B5B8: .4byte gBattleScriptingCommandsTable +_0801B5BC: .4byte gBattlescriptCurrInstr thumb_func_end sub_801B594 thumb_func_start sub_801B5C0 @@ -11375,14 +11375,14 @@ _0801B604: .4byte _0801B900 .4byte _0801B808 _0801B708: - ldr r0, _0801B7E8 @ =gPlayerMonIndex + ldr r0, _0801B7E8 @ =gBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r4, r0, 24 - ldr r1, _0801B7EC @ =gUnknown_02024C80 + ldr r1, _0801B7EC @ =gSideTimer lsls r0, r4, 1 adds r0, r4 lsls r0, 2 @@ -11400,9 +11400,9 @@ _0801B708: beq _0801B73A b _0801B850 _0801B73A: - ldr r0, _0801B7E8 @ =gPlayerMonIndex + ldr r0, _0801B7E8 @ =gBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r4, r0, 24 lsls r0, r7, 1 @@ -11411,22 +11411,22 @@ _0801B74A: bl Random lsls r0, 16 lsrs r0, 16 - ldr r1, _0801B7F4 @ =gUnknown_02024A68 + ldr r1, _0801B7F4 @ =gNoOfAllBanks ldrb r1, [r1] bl __modsi3 lsls r0, 24 lsrs r5, r0, 24 - ldr r6, _0801B7E8 @ =gPlayerMonIndex + ldr r6, _0801B7E8 @ =gBankAttacker ldrb r2, [r6] cmp r5, r2 beq _0801B74A adds r0, r5, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r4, r0 beq _0801B74A - ldr r0, _0801B7F8 @ =gUnknown_02024C0C + ldr r0, _0801B7F8 @ =gAbsentBankFlags ldrb r2, [r0] ldr r1, _0801B7FC @ =gBitTable lsls r0, r5, 2 @@ -11450,7 +11450,7 @@ _0801B798: movs r0, 0x10 movs r2, 0x1F movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 bne _0801B7AE @@ -11476,7 +11476,7 @@ _0801B7C2: ldrb r1, [r0] adds r0, r5, 0 bl sub_81074C4 - ldr r1, _0801B804 @ =gUnknown_02024D68 + ldr r1, _0801B804 @ =gSpecialStatuses lsls r0, r5, 2 adds r0, r5 lsls r0, 2 @@ -11486,18 +11486,18 @@ _0801B7C2: strb r1, [r0] b _0801B900 .align 2, 0 -_0801B7E8: .4byte gPlayerMonIndex -_0801B7EC: .4byte gUnknown_02024C80 +_0801B7E8: .4byte gBankAttacker +_0801B7EC: .4byte gSideTimer _0801B7F0: .4byte gBattleMons -_0801B7F4: .4byte gUnknown_02024A68 -_0801B7F8: .4byte gUnknown_02024C0C +_0801B7F4: .4byte gNoOfAllBanks +_0801B7F8: .4byte gAbsentBankFlags _0801B7FC: .4byte gBitTable _0801B800: .4byte gBattleMoves -_0801B804: .4byte gUnknown_02024D68 +_0801B804: .4byte gSpecialStatuses _0801B808: - ldr r0, _0801B81C @ =gPlayerMonIndex + ldr r0, _0801B81C @ =gBankAttacker ldrb r0, [r0] - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r0, 0 movs r2, 0x1 movs r0, 0x1 @@ -11505,16 +11505,16 @@ _0801B808: eors r0, r2 b _0801B8B2 .align 2, 0 -_0801B81C: .4byte gPlayerMonIndex +_0801B81C: .4byte gBankAttacker _0801B820: - ldr r0, _0801B854 @ =gPlayerMonIndex + ldr r0, _0801B854 @ =gBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r4, r0, 24 - ldr r1, _0801B858 @ =gUnknown_02024C80 + ldr r1, _0801B858 @ =gSideTimer lsls r0, r4, 1 adds r0, r4 lsls r0, 2 @@ -11534,8 +11534,8 @@ _0801B850: adds r5, r4, 0 b _0801B900 .align 2, 0 -_0801B854: .4byte gPlayerMonIndex -_0801B858: .4byte gUnknown_02024C80 +_0801B854: .4byte gBankAttacker +_0801B858: .4byte gSideTimer _0801B85C: .4byte gBattleMons _0801B860: ldr r0, _0801B894 @ =gBattleTypeFlags @@ -11549,9 +11549,9 @@ _0801B860: ands r6, r0 cmp r6, 0 beq _0801B8DC - ldr r0, _0801B898 @ =gPlayerMonIndex + ldr r0, _0801B898 @ =gBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0801B8A0 @@ -11564,7 +11564,7 @@ _0801B860: b _0801B8B2 .align 2, 0 _0801B894: .4byte gBattleTypeFlags -_0801B898: .4byte gPlayerMonIndex +_0801B898: .4byte gBankAttacker _0801B89C: movs r0, 0x3 b _0801B8B2 @@ -11579,10 +11579,10 @@ _0801B8A0: _0801B8B0: movs r0, 0x2 _0801B8B2: - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r5, r0, 24 - ldr r0, _0801B8D4 @ =gUnknown_02024C0C + ldr r0, _0801B8D4 @ =gAbsentBankFlags ldrb r1, [r0] ldr r2, _0801B8D8 @ =gBitTable lsls r0, r5, 2 @@ -11595,29 +11595,29 @@ _0801B8B2: eors r5, r0 b _0801B900 .align 2, 0 -_0801B8D4: .4byte gUnknown_02024C0C +_0801B8D4: .4byte gAbsentBankFlags _0801B8D8: .4byte gBitTable _0801B8DC: - ldr r0, _0801B8F8 @ =gPlayerMonIndex + ldr r0, _0801B8F8 @ =gBankAttacker ldrb r0, [r0] - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r0, 0 movs r2, 0x1 movs r0, 0x1 ands r0, r1 eors r0, r2 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r5, r0, 24 b _0801B900 .align 2, 0 -_0801B8F8: .4byte gPlayerMonIndex +_0801B8F8: .4byte gBankAttacker _0801B8FC: - ldr r0, _0801B91C @ =gPlayerMonIndex + ldr r0, _0801B91C @ =gBankAttacker ldrb r5, [r0] _0801B900: ldr r1, _0801B920 @ =0x02000000 - ldr r0, _0801B91C @ =gPlayerMonIndex + ldr r0, _0801B91C @ =gBankAttacker ldrb r0, [r0] ldr r2, _0801B924 @ =0x00016010 adds r0, r2 @@ -11631,7 +11631,7 @@ _0801B900: pop {r1} bx r1 .align 2, 0 -_0801B91C: .4byte gPlayerMonIndex +_0801B91C: .4byte gBankAttacker _0801B920: .4byte 0x02000000 _0801B924: .4byte 0x00016010 thumb_func_end sub_801B5C0 @@ -11649,9 +11649,9 @@ sub_801B928: @ 801B928 ands r0, r1 cmp r0, 0 bne _0801B9DA - ldr r7, _0801B9E4 @ =gPlayerMonIndex + ldr r7, _0801B9E4 @ =gBankAttacker ldrb r0, [r7] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -11728,14 +11728,14 @@ _0801B9DA: b _0801BC24 .align 2, 0 _0801B9E0: .4byte gBattleTypeFlags -_0801B9E4: .4byte gPlayerMonIndex +_0801B9E4: .4byte gBankAttacker _0801B9E8: .4byte gBattleMons _0801B9EC: .4byte 0x0000080e _0801B9F0: .4byte 0x00000808 _0801B9F4: .4byte 0x0000080a _0801B9F8: .4byte 0x0000080c _0801B9FC: - ldr r3, _0801BA3C @ =gUnknown_02024BE6 + ldr r3, _0801BA3C @ =gCurrentMove ldrh r0, [r3] cmp r0, 0x63 bne _0801BA12 @@ -11765,13 +11765,13 @@ _0801BA12: cmp r0, 0xD6 bne _0801BA4C _0801BA34: - ldr r1, _0801BA44 @ =gUnknown_02024C10 + ldr r1, _0801BA44 @ =gBattlescriptCurrInstr ldr r0, _0801BA48 @ =gUnknown_081D995F b _0801BBCE .align 2, 0 -_0801BA3C: .4byte gUnknown_02024BE6 +_0801BA3C: .4byte gCurrentMove _0801BA40: .4byte 0xff7fffff -_0801BA44: .4byte gUnknown_02024C10 +_0801BA44: .4byte gBattlescriptCurrInstr _0801BA48: .4byte gUnknown_081D995F _0801BA4C: bl Random @@ -11779,7 +11779,7 @@ _0801BA4C: adds r1, r5, 0 ands r1, r0 ldr r7, _0801BB04 @ =gBattleMons - ldr r2, _0801BB08 @ =gPlayerMonIndex + ldr r2, _0801BB08 @ =gBankAttacker mov r9, r2 ldrb r3, [r2] movs r0, 0x58 @@ -11795,7 +11795,7 @@ _0801BA4C: cmp r4, r6 bge _0801BB3C ldr r7, _0801BB0C @ =gBitTable - ldr r5, _0801BB10 @ =gUnknown_02024BE4 + ldr r5, _0801BB10 @ =gCurrMovePos ldrb r0, [r5] lsls r0, 2 adds r0, r7 @@ -11830,10 +11830,10 @@ _0801BA9E: bne _0801BA9E ldr r4, _0801BB18 @ =gUnknown_02024BEA ldr r3, _0801BB04 @ =gBattleMons - ldr r0, _0801BB10 @ =gUnknown_02024BE4 + ldr r0, _0801BB10 @ =gCurrMovePos ldrb r0, [r0] lsls r0, 1 - ldr r1, _0801BB08 @ =gPlayerMonIndex + ldr r1, _0801BB08 @ =gBankAttacker ldrb r2, [r1] movs r1, 0x58 muls r1, r2 @@ -11842,43 +11842,43 @@ _0801BA9E: adds r0, r3 ldrh r0, [r0] strh r0, [r4] - ldr r0, _0801BB1C @ =gUnknown_02024D1E + ldr r0, _0801BB1C @ =gBattleCommunication strb r5, [r0, 0x3] - ldr r0, _0801BB20 @ =gUnknown_02024DEC + ldr r0, _0801BB20 @ =gDynamicBasePower movs r1, 0 strh r5, [r0] ldr r0, _0801BB24 @ =0x02000000 ldr r2, _0801BB28 @ =0x0001601c adds r0, r2 strb r1, [r0] - ldr r1, _0801BB2C @ =gUnknown_02024C10 + ldr r1, _0801BB2C @ =gBattlescriptCurrInstr ldr r0, _0801BB30 @ =gUnknown_081D996F str r0, [r1] ldrh r0, [r4] movs r1, 0 bl sub_801B5C0 - ldr r1, _0801BB34 @ =gEnemyMonIndex + ldr r1, _0801BB34 @ =gBankTarget strb r0, [r1] - ldr r2, _0801BB38 @ =gUnknown_02024C6C + ldr r2, _0801BB38 @ =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 14 b _0801BC1E .align 2, 0 _0801BB04: .4byte gBattleMons -_0801BB08: .4byte gPlayerMonIndex +_0801BB08: .4byte gBankAttacker _0801BB0C: .4byte gBitTable -_0801BB10: .4byte gUnknown_02024BE4 +_0801BB10: .4byte gCurrMovePos _0801BB14: .4byte gUnknown_02024BE5 _0801BB18: .4byte gUnknown_02024BEA -_0801BB1C: .4byte gUnknown_02024D1E -_0801BB20: .4byte gUnknown_02024DEC +_0801BB1C: .4byte gBattleCommunication +_0801BB20: .4byte gDynamicBasePower _0801BB24: .4byte 0x02000000 _0801BB28: .4byte 0x0001601c -_0801BB2C: .4byte gUnknown_02024C10 +_0801BB2C: .4byte gBattlescriptCurrInstr _0801BB30: .4byte gUnknown_081D996F -_0801BB34: .4byte gEnemyMonIndex -_0801BB38: .4byte gUnknown_02024C6C +_0801BB34: .4byte gBankTarget +_0801BB38: .4byte gHitMarker _0801BB3C: subs r0, r2, r6 lsls r0, 24 @@ -11907,7 +11907,7 @@ _0801BB3C: cmp r0, 0xF beq _0801BBB8 movs r2, 0 - ldr r0, _0801BBAC @ =gUnknown_02024A68 + ldr r0, _0801BBAC @ =gNoOfAllBanks ldrb r3, [r0] mov r8, r0 cmp r2, r3 @@ -11934,12 +11934,12 @@ _0801BB9E: ldrb r0, [r0] cmp r2, r0 bne _0801BBB8 - ldr r1, _0801BBB0 @ =gUnknown_02024C10 + ldr r1, _0801BBB0 @ =gBattlescriptCurrInstr ldr r0, _0801BBB4 @ =gUnknown_081D9989 b _0801BBCE .align 2, 0 -_0801BBAC: .4byte gUnknown_02024A68 -_0801BBB0: .4byte gUnknown_02024C10 +_0801BBAC: .4byte gNoOfAllBanks +_0801BBB0: .4byte gBattlescriptCurrInstr _0801BBB4: .4byte gUnknown_081D9989 _0801BBB8: subs r4, r6 @@ -11947,22 +11947,22 @@ _0801BBB8: blt _0801BBE0 _0801BBBE: bl Random - ldr r2, _0801BBD4 @ =gUnknown_02024D1E + ldr r2, _0801BBD4 @ =gBattleCommunication movs r1, 0x3 ands r1, r0 strb r1, [r2, 0x5] - ldr r1, _0801BBD8 @ =gUnknown_02024C10 + ldr r1, _0801BBD8 @ =gBattlescriptCurrInstr ldr r0, _0801BBDC @ =gUnknown_081D9977 _0801BBCE: str r0, [r1] movs r0, 0x1 b _0801BC24 .align 2, 0 -_0801BBD4: .4byte gUnknown_02024D1E -_0801BBD8: .4byte gUnknown_02024C10 +_0801BBD4: .4byte gBattleCommunication +_0801BBD8: .4byte gBattlescriptCurrInstr _0801BBDC: .4byte gUnknown_081D9977 _0801BBE0: - ldr r4, _0801BC34 @ =gPlayerMonIndex + ldr r4, _0801BC34 @ =gBankAttacker ldrb r1, [r4] movs r0, 0x58 muls r1, r0 @@ -11982,13 +11982,13 @@ _0801BBE0: bl CalculateBaseDamage ldr r1, _0801BC3C @ =gBattleMoveDamage str r0, [r1] - ldr r1, _0801BC40 @ =gEnemyMonIndex + ldr r1, _0801BC40 @ =gBankTarget ldrb r0, [r4] strb r0, [r1] - ldr r1, _0801BC44 @ =gUnknown_02024C10 + ldr r1, _0801BC44 @ =gBattlescriptCurrInstr ldr r0, _0801BC48 @ =gUnknown_081D99A0 str r0, [r1] - ldr r2, _0801BC4C @ =gUnknown_02024C6C + ldr r2, _0801BC4C @ =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 12 @@ -12005,13 +12005,13 @@ _0801BC24: pop {r1} bx r1 .align 2, 0 -_0801BC34: .4byte gPlayerMonIndex +_0801BC34: .4byte gBankAttacker _0801BC38: .4byte gBattleMons _0801BC3C: .4byte gBattleMoveDamage -_0801BC40: .4byte gEnemyMonIndex -_0801BC44: .4byte gUnknown_02024C10 +_0801BC40: .4byte gBankTarget +_0801BC44: .4byte gBattlescriptCurrInstr _0801BC48: .4byte gUnknown_081D99A0 -_0801BC4C: .4byte gUnknown_02024C6C +_0801BC4C: .4byte gHitMarker thumb_func_end sub_801B928 .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_4.s b/asm/battle_4.s index 0581d1e7d..5436d3e55 100644 --- a/asm/battle_4.s +++ b/asm/battle_4.s @@ -13,20 +13,20 @@ atk00_attackcanceler: @ 801BC50 mov r6, r8 push {r6,r7} sub sp, 0x4 - ldr r0, _0801BC6C @ =gUnknown_02024D26 + ldr r0, _0801BC6C @ =gBattleOutcome ldrb r0, [r0] cmp r0, 0 beq _0801BC74 - ldr r1, _0801BC70 @ =gUnknown_02024A7F + ldr r1, _0801BC70 @ =gFightStateTracker movs r0, 0xC strb r0, [r1] b _0801BFF4 .align 2, 0 -_0801BC6C: .4byte gUnknown_02024D26 -_0801BC70: .4byte gUnknown_02024A7F +_0801BC6C: .4byte gBattleOutcome +_0801BC70: .4byte gFightStateTracker _0801BC74: ldr r2, _0801BCA4 @ =gBattleMons - ldr r0, _0801BCA8 @ =gPlayerMonIndex + ldr r0, _0801BCA8 @ =gBankAttacker ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -34,7 +34,7 @@ _0801BC74: ldrh r0, [r0, 0x28] cmp r0, 0 bne _0801BCB8 - ldr r2, _0801BCAC @ =gUnknown_02024C6C + ldr r2, _0801BCAC @ =gHitMarker ldr r1, [r2] movs r0, 0x80 lsls r0, 2 @@ -45,15 +45,15 @@ _0801BC74: lsls r0, 12 orrs r1, r0 str r1, [r2] - ldr r1, _0801BCB0 @ =gUnknown_02024C10 - ldr r0, _0801BCB4 @ =BattleScript_1D6F62 + ldr r1, _0801BCB0 @ =gBattlescriptCurrInstr + ldr r0, _0801BCB4 @ =BattleScript_EndTurn b _0801BFF2 .align 2, 0 _0801BCA4: .4byte gBattleMons -_0801BCA8: .4byte gPlayerMonIndex -_0801BCAC: .4byte gUnknown_02024C6C -_0801BCB0: .4byte gUnknown_02024C10 -_0801BCB4: .4byte BattleScript_1D6F62 +_0801BCA8: .4byte gBankAttacker +_0801BCAC: .4byte gHitMarker +_0801BCB0: .4byte gBattlescriptCurrInstr +_0801BCB4: .4byte BattleScript_EndTurn _0801BCB8: bl sub_8017718 lsls r0, 24 @@ -62,22 +62,22 @@ _0801BCB8: beq _0801BCC6 b _0801BFF4 _0801BCC6: - ldr r0, _0801BD34 @ =gEnemyMonIndex + ldr r0, _0801BD34 @ =gBankTarget ldrb r1, [r0] str r2, [sp] movs r0, 0x2 movs r2, 0 movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 beq _0801BCDE b _0801BFF4 _0801BCDE: ldr r4, _0801BD38 @ =gBattleMons - ldr r0, _0801BD3C @ =gUnknown_02024BE4 + ldr r0, _0801BD3C @ =gCurrMovePos ldrb r1, [r0] - ldr r3, _0801BD40 @ =gPlayerMonIndex + ldr r3, _0801BD40 @ =gBankAttacker ldrb r2, [r3] movs r0, 0x58 muls r2, r0 @@ -86,10 +86,10 @@ _0801BCDE: adds r0, 0x24 adds r1, r0 ldrb r0, [r1] - ldr r5, _0801BD44 @ =gUnknown_02024C6C + ldr r5, _0801BD44 @ =gHitMarker cmp r0, 0 bne _0801BD5C - ldr r0, _0801BD48 @ =gUnknown_02024BE6 + ldr r0, _0801BD48 @ =gCurrentMove ldrh r0, [r0] cmp r0, 0xA5 beq _0801BD5C @@ -107,8 +107,8 @@ _0801BCDE: ands r0, r1 cmp r0, 0 bne _0801BD5C - ldr r1, _0801BD50 @ =gUnknown_02024C10 - ldr r0, _0801BD54 @ =gUnknown_081D936D + ldr r1, _0801BD50 @ =gBattlescriptCurrInstr + ldr r0, _0801BD54 @ =BattleScript_NoPPForMove str r0, [r1] ldr r2, _0801BD58 @ =gBattleMoveFlags ldrb r0, [r2] @@ -117,15 +117,15 @@ _0801BCDE: strb r0, [r2] b _0801BFF4 .align 2, 0 -_0801BD34: .4byte gEnemyMonIndex +_0801BD34: .4byte gBankTarget _0801BD38: .4byte gBattleMons -_0801BD3C: .4byte gUnknown_02024BE4 -_0801BD40: .4byte gPlayerMonIndex -_0801BD44: .4byte gUnknown_02024C6C -_0801BD48: .4byte gUnknown_02024BE6 +_0801BD3C: .4byte gCurrMovePos +_0801BD40: .4byte gBankAttacker +_0801BD44: .4byte gHitMarker +_0801BD48: .4byte gCurrentMove _0801BD4C: .4byte 0x00800200 -_0801BD50: .4byte gUnknown_02024C10 -_0801BD54: .4byte gUnknown_081D936D +_0801BD50: .4byte gBattlescriptCurrInstr +_0801BD54: .4byte BattleScript_NoPPForMove _0801BD58: .4byte gBattleMoveFlags _0801BD5C: ldr r0, [r5] @@ -172,14 +172,14 @@ _0801BDA4: .align 2, 0 _0801BDB0: .4byte gBattleMoveFlags _0801BDB4: - ldr r2, _0801BE18 @ =gUnknown_02024C6C + ldr r2, _0801BE18 @ =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 18 orrs r0, r1 str r0, [r2] - ldr r2, _0801BE1C @ =gUnknown_02024D28 - ldr r1, _0801BE20 @ =gEnemyMonIndex + ldr r2, _0801BE1C @ =gProtectStructs + ldr r1, _0801BE20 @ =gBankTarget ldrb r3, [r1] lsls r0, r3, 4 adds r0, r2 @@ -190,7 +190,7 @@ _0801BDB4: cmp r0, 0 bge _0801BE3C ldr r2, _0801BE24 @ =gBattleMoves - ldr r0, _0801BE28 @ =gUnknown_02024BE6 + ldr r0, _0801BE28 @ =gCurrentMove ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -201,7 +201,7 @@ _0801BDB4: ands r0, r1 cmp r0, 0 beq _0801BE3C - ldr r0, _0801BE2C @ =gPlayerMonIndex + ldr r0, _0801BE2C @ =gBankAttacker ldrb r0, [r0] ldr r2, _0801BE30 @ =0x00000115 adds r1, r3, 0 @@ -216,30 +216,30 @@ _0801BDB4: ands r0, r2 strb r0, [r1] bl b_movescr_stack_push_cursor - ldr r1, _0801BE34 @ =gUnknown_02024C10 - ldr r0, _0801BE38 @ =gUnknown_081D946F + ldr r1, _0801BE34 @ =gBattlescriptCurrInstr + ldr r0, _0801BE38 @ =BattleScript_MagicCoatBounce b _0801BFF2 .align 2, 0 -_0801BE18: .4byte gUnknown_02024C6C -_0801BE1C: .4byte gUnknown_02024D28 -_0801BE20: .4byte gEnemyMonIndex +_0801BE18: .4byte gHitMarker +_0801BE1C: .4byte gProtectStructs +_0801BE20: .4byte gBankTarget _0801BE24: .4byte gBattleMoves -_0801BE28: .4byte gUnknown_02024BE6 -_0801BE2C: .4byte gPlayerMonIndex +_0801BE28: .4byte gCurrentMove +_0801BE2C: .4byte gBankAttacker _0801BE30: .4byte 0x00000115 -_0801BE34: .4byte gUnknown_02024C10 -_0801BE38: .4byte gUnknown_081D946F +_0801BE34: .4byte gBattlescriptCurrInstr +_0801BE38: .4byte BattleScript_MagicCoatBounce _0801BE3C: movs r2, 0 - ldr r0, _0801BEB8 @ =gUnknown_02024A68 + ldr r0, _0801BEB8 @ =gNoOfAllBanks ldrb r0, [r0] cmp r2, r0 bge _0801BE7E - ldr r6, _0801BEBC @ =gUnknown_02024D28 + ldr r6, _0801BEBC @ =gProtectStructs ldr r1, _0801BEC0 @ =gBattleMoves mov r12, r1 adds r5, r0, 0 - ldr r7, _0801BEC4 @ =gUnknown_02024A7A + ldr r7, _0801BEC4 @ =gTurnOrder _0801BE50: adds r4, r2, r7 ldrb r3, [r4] @@ -249,7 +249,7 @@ _0801BE50: lsls r0, 26 cmp r0, 0 bge _0801BE78 - ldr r0, _0801BEC8 @ =gUnknown_02024BE6 + ldr r0, _0801BEC8 @ =gCurrentMove ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -266,7 +266,7 @@ _0801BE78: cmp r2, r5 blt _0801BE50 _0801BE7E: - ldr r0, _0801BECC @ =gUnknown_02024D68 + ldr r0, _0801BECC @ =gSpecialStatuses mov r1, r8 ldrb r2, [r1] lsls r1, r2, 2 @@ -281,12 +281,12 @@ _0801BE7E: negs r0, r0 ands r0, r3 strb r0, [r1] - ldr r4, _0801BED0 @ =byte_2024C06 + ldr r4, _0801BED0 @ =gLastUsedAbility movs r0, 0x1F strb r0, [r4] bl b_movescr_stack_push_cursor - ldr r1, _0801BED4 @ =gUnknown_02024C10 - ldr r0, _0801BED8 @ =gUnknown_081D9812 + ldr r1, _0801BED4 @ =gBattlescriptCurrInstr + ldr r0, _0801BED8 @ =BattleScript_TookAttack str r0, [r1] mov r2, r8 ldrb r0, [r2] @@ -294,15 +294,15 @@ _0801BE7E: bl sub_81074C4 b _0801BFF4 .align 2, 0 -_0801BEB8: .4byte gUnknown_02024A68 -_0801BEBC: .4byte gUnknown_02024D28 +_0801BEB8: .4byte gNoOfAllBanks +_0801BEBC: .4byte gProtectStructs _0801BEC0: .4byte gBattleMoves -_0801BEC4: .4byte gUnknown_02024A7A -_0801BEC8: .4byte gUnknown_02024BE6 -_0801BECC: .4byte gUnknown_02024D68 -_0801BED0: .4byte byte_2024C06 -_0801BED4: .4byte gUnknown_02024C10 -_0801BED8: .4byte gUnknown_081D9812 +_0801BEC4: .4byte gTurnOrder +_0801BEC8: .4byte gCurrentMove +_0801BECC: .4byte gSpecialStatuses +_0801BED0: .4byte gLastUsedAbility +_0801BED4: .4byte gBattlescriptCurrInstr +_0801BED8: .4byte BattleScript_TookAttack _0801BEDC: lsls r0, r2, 4 add r0, r9 @@ -313,7 +313,7 @@ _0801BEDC: b _0801BFEC _0801BEEA: ldr r1, _0801BF80 @ =gBattleMoves - ldr r2, _0801BF84 @ =gUnknown_02024BE6 + ldr r2, _0801BF84 @ =gCurrentMove ldrh r3, [r2] lsls r0, r3, 1 adds r0, r3 @@ -328,7 +328,7 @@ _0801BEEA: cmp r3, 0xAE bne _0801BF28 ldr r2, _0801BF88 @ =gBattleMons - ldr r0, _0801BF8C @ =gPlayerMonIndex + ldr r0, _0801BF8C @ =gBankAttacker ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -350,7 +350,7 @@ _0801BF28: cmp r0, 0 beq _0801BF4E ldr r1, _0801BF88 @ =gBattleMons - ldr r0, _0801BF8C @ =gPlayerMonIndex + ldr r0, _0801BF8C @ =gBankAttacker ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -363,16 +363,16 @@ _0801BF28: cmp r0, 0 beq _0801BFEC _0801BF4E: - ldr r0, _0801BF8C @ =gPlayerMonIndex + ldr r0, _0801BF8C @ =gBankAttacker ldrb r0, [r0] - bl b_cancel_multi_turn_move_maybe + bl CancelMultiTurnMoves ldr r2, _0801BF90 @ =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] - ldr r1, _0801BF94 @ =gUnknown_02024C3C - ldr r3, _0801BF98 @ =gEnemyMonIndex + ldr r1, _0801BF94 @ =gMoveHitWith + ldr r3, _0801BF98 @ =gBankTarget ldrb r0, [r3] lsls r0, 1 adds r0, r1 @@ -383,22 +383,22 @@ _0801BF4E: lsls r0, 1 adds r0, r1 strh r2, [r0] - ldr r1, _0801BFA0 @ =gUnknown_02024D1E + ldr r1, _0801BFA0 @ =gBattleCommunication movs r0, 0x1 strb r0, [r1, 0x6] b _0801BFEC .align 2, 0 _0801BF80: .4byte gBattleMoves -_0801BF84: .4byte gUnknown_02024BE6 +_0801BF84: .4byte gCurrentMove _0801BF88: .4byte gBattleMons -_0801BF8C: .4byte gPlayerMonIndex +_0801BF8C: .4byte gBankAttacker _0801BF90: .4byte gBattleMoveFlags -_0801BF94: .4byte gUnknown_02024C3C -_0801BF98: .4byte gEnemyMonIndex +_0801BF94: .4byte gMoveHitWith +_0801BF98: .4byte gBankTarget _0801BF9C: .4byte gUnknown_02024C44 -_0801BFA0: .4byte gUnknown_02024D1E +_0801BFA0: .4byte gBattleCommunication _0801BFA4: - ldr r0, _0801BFD4 @ =gPlayerMonIndex + ldr r0, _0801BFD4 @ =gBankAttacker ldrb r0, [r0] ldr r2, _0801BFD8 @ =0x00000121 adds r1, r3, 0 @@ -417,18 +417,18 @@ _0801BFA4: adds r0, r2 strb r1, [r0] bl b_movescr_stack_push_cursor - ldr r1, _0801BFE4 @ =gUnknown_02024C10 - ldr r0, _0801BFE8 @ =gUnknown_081D9487 + ldr r1, _0801BFE4 @ =gBattlescriptCurrInstr + ldr r0, _0801BFE8 @ =BattleScript_SnatchedMove b _0801BFF2 .align 2, 0 -_0801BFD4: .4byte gPlayerMonIndex +_0801BFD4: .4byte gBankAttacker _0801BFD8: .4byte 0x00000121 _0801BFDC: .4byte 0x02000000 _0801BFE0: .4byte 0x00016003 -_0801BFE4: .4byte gUnknown_02024C10 -_0801BFE8: .4byte gUnknown_081D9487 +_0801BFE4: .4byte gBattlescriptCurrInstr +_0801BFE8: .4byte BattleScript_SnatchedMove _0801BFEC: - ldr r1, _0801C004 @ =gUnknown_02024C10 + ldr r1, _0801C004 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 _0801BFF2: @@ -442,7 +442,7 @@ _0801BFF4: pop {r0} bx r0 .align 2, 0 -_0801C004: .4byte gUnknown_02024C10 +_0801C004: .4byte gBattlescriptCurrInstr thumb_func_end atk00_attackcanceler thumb_func_start mcmd_jump_if_move_not_executed @@ -453,7 +453,7 @@ mcmd_jump_if_move_not_executed: @ 801C008 lsrs r0, 24 lsls r1, 16 lsrs r6, r1, 16 - ldr r1, _0801C054 @ =gUnknown_02024C10 + ldr r1, _0801C054 @ =gBattlescriptCurrInstr ldr r5, [r1] adds r4, r5, r0 ldr r0, _0801C058 @ =gBattleMoveFlags @@ -462,8 +462,8 @@ mcmd_jump_if_move_not_executed: @ 801C008 ands r0, r1 cmp r0, 0 beq _0801C068 - ldr r1, _0801C05C @ =gUnknown_02024C3C - ldr r3, _0801C060 @ =gEnemyMonIndex + ldr r1, _0801C05C @ =gMoveHitWith + ldr r3, _0801C060 @ =gBankTarget ldrb r0, [r3] lsls r0, 1 adds r0, r1 @@ -486,25 +486,25 @@ mcmd_jump_if_move_not_executed: @ 801C008 orrs r4, r0 b _0801C082 .align 2, 0 -_0801C054: .4byte gUnknown_02024C10 +_0801C054: .4byte gBattlescriptCurrInstr _0801C058: .4byte gBattleMoveFlags -_0801C05C: .4byte gUnknown_02024C3C -_0801C060: .4byte gEnemyMonIndex +_0801C05C: .4byte gMoveHitWith +_0801C060: .4byte gBankTarget _0801C064: .4byte gUnknown_02024C44 _0801C068: bl b_feature_update_destiny_bond - ldr r0, _0801C090 @ =gEnemyMonIndex + ldr r0, _0801C090 @ =gBankTarget ldrb r1, [r0] str r6, [sp] movs r0, 0x3 movs r2, 0 movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 bne _0801C086 _0801C082: - ldr r0, _0801C094 @ =gUnknown_02024C10 + ldr r0, _0801C094 @ =gBattlescriptCurrInstr str r4, [r0] _0801C086: add sp, 0x4 @@ -512,15 +512,15 @@ _0801C086: pop {r0} bx r0 .align 2, 0 -_0801C090: .4byte gEnemyMonIndex -_0801C094: .4byte gUnknown_02024C10 +_0801C090: .4byte gBankTarget +_0801C094: .4byte gBattlescriptCurrInstr thumb_func_end mcmd_jump_if_move_not_executed - thumb_func_start atk40_801DBA0 -atk40_801DBA0: @ 801C098 + thumb_func_start atk40_jump_if_move_affected_by_protect +atk40_jump_if_move_affected_by_protect: @ 801C098 push {lr} - ldr r1, _0801C0E0 @ =gUnknown_02024D28 - ldr r0, _0801C0E4 @ =gEnemyMonIndex + ldr r1, _0801C0E0 @ =gProtectStructs + ldr r0, _0801C0E4 @ =gBankTarget ldrb r0, [r0] lsls r0, 4 adds r0, r1 @@ -529,7 +529,7 @@ atk40_801DBA0: @ 801C098 cmp r0, 0 beq _0801C0F8 ldr r2, _0801C0E8 @ =gBattleMoves - ldr r0, _0801C0EC @ =gUnknown_02024BE6 + ldr r0, _0801C0EC @ =gCurrentMove ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -548,19 +548,19 @@ atk40_801DBA0: @ 801C098 movs r0, 0x5 movs r1, 0 bl mcmd_jump_if_move_not_executed - ldr r1, _0801C0F4 @ =gUnknown_02024D1E + ldr r1, _0801C0F4 @ =gBattleCommunication movs r0, 0x1 strb r0, [r1, 0x6] b _0801C100 .align 2, 0 -_0801C0E0: .4byte gUnknown_02024D28 -_0801C0E4: .4byte gEnemyMonIndex +_0801C0E0: .4byte gProtectStructs +_0801C0E4: .4byte gBankTarget _0801C0E8: .4byte gBattleMoves -_0801C0EC: .4byte gUnknown_02024BE6 +_0801C0EC: .4byte gCurrentMove _0801C0F0: .4byte gBattleMoveFlags -_0801C0F4: .4byte gUnknown_02024D1E +_0801C0F4: .4byte gBattleCommunication _0801C0F8: - ldr r1, _0801C104 @ =gUnknown_02024C10 + ldr r1, _0801C104 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] @@ -568,8 +568,8 @@ _0801C100: pop {r0} bx r0 .align 2, 0 -_0801C104: .4byte gUnknown_02024C10 - thumb_func_end atk40_801DBA0 +_0801C104: .4byte gBattlescriptCurrInstr + thumb_func_end atk40_jump_if_move_affected_by_protect thumb_func_start sub_801C108 sub_801C108: @ 801C108 @@ -577,8 +577,8 @@ sub_801C108: @ 801C108 lsls r0, 16 lsrs r3, r0, 16 movs r4, 0 - ldr r1, _0801C15C @ =gUnknown_02024D28 - ldr r0, _0801C160 @ =gEnemyMonIndex + ldr r1, _0801C15C @ =gProtectStructs + ldr r0, _0801C160 @ =gBankTarget ldrb r0, [r0] lsls r0, 4 adds r0, r1 @@ -587,7 +587,7 @@ sub_801C108: @ 801C108 cmp r0, 0 beq _0801C154 ldr r2, _0801C164 @ =gBattleMoves - ldr r0, _0801C168 @ =gUnknown_02024BE6 + ldr r0, _0801C168 @ =gCurrentMove ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -606,7 +606,7 @@ sub_801C108: @ 801C108 movs r0, 0x7 adds r1, r3, 0 bl mcmd_jump_if_move_not_executed - ldr r1, _0801C170 @ =gUnknown_02024D1E + ldr r1, _0801C170 @ =gBattleCommunication movs r0, 0x1 strb r0, [r1, 0x6] movs r4, 0x1 @@ -616,12 +616,12 @@ _0801C154: pop {r1} bx r1 .align 2, 0 -_0801C15C: .4byte gUnknown_02024D28 -_0801C160: .4byte gEnemyMonIndex +_0801C15C: .4byte gProtectStructs +_0801C160: .4byte gBankTarget _0801C164: .4byte gBattleMoves -_0801C168: .4byte gUnknown_02024BE6 +_0801C168: .4byte gCurrentMove _0801C16C: .4byte gBattleMoveFlags -_0801C170: .4byte gUnknown_02024D1E +_0801C170: .4byte gBattleCommunication thumb_func_end sub_801C108 thumb_func_start sub_801C174 @@ -630,8 +630,8 @@ sub_801C174: @ 801C174 sub sp, 0x4 lsls r0, 16 lsrs r5, r0, 16 - ldr r2, _0801C1D4 @ =gUnknown_02024C98 - ldr r3, _0801C1D8 @ =gEnemyMonIndex + ldr r2, _0801C1D4 @ =gStatuses3 + ldr r3, _0801C1D8 @ =gBankTarget ldrb r4, [r3] lsls r0, r4, 2 adds r0, r2 @@ -641,18 +641,18 @@ sub_801C174: @ 801C174 adds r6, r2, 0 cmp r1, 0 beq _0801C1A6 - ldr r1, _0801C1DC @ =gUnknown_02024CA8 + ldr r1, _0801C1DC @ =gDisableStructs lsls r0, r4, 3 subs r0, r4 lsls r0, 2 adds r0, r1 - ldr r1, _0801C1E0 @ =gPlayerMonIndex + ldr r1, _0801C1E0 @ =gBankAttacker ldrb r0, [r0, 0x15] ldrb r1, [r1] cmp r0, r1 beq _0801C290 _0801C1A6: - ldr r0, _0801C1E4 @ =gUnknown_02024C6C + ldr r0, _0801C1E4 @ =gHitMarker ldr r1, [r0] movs r2, 0x80 lsls r2, 9 @@ -676,11 +676,11 @@ _0801C1C6: strb r1, [r0] b _0801C290 .align 2, 0 -_0801C1D4: .4byte gUnknown_02024C98 -_0801C1D8: .4byte gEnemyMonIndex -_0801C1DC: .4byte gUnknown_02024CA8 -_0801C1E0: .4byte gPlayerMonIndex -_0801C1E4: .4byte gUnknown_02024C6C +_0801C1D4: .4byte gStatuses3 +_0801C1D8: .4byte gBankTarget +_0801C1DC: .4byte gDisableStructs +_0801C1E0: .4byte gBankAttacker +_0801C1E4: .4byte gHitMarker _0801C1E8: .4byte gBattleMoveFlags _0801C1EC: ldr r0, [r2] @@ -728,7 +728,7 @@ _0801C22E: movs r1, 0 movs r2, 0xD movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 lsrs r0, 24 lsls r4, r5, 1 @@ -739,7 +739,7 @@ _0801C22E: movs r1, 0 movs r2, 0x4D movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 bne _0801C27E @@ -795,7 +795,7 @@ atk01_accuracycheck: @ 801C2BC mov r5, r8 push {r5-r7} sub sp, 0x8 - ldr r0, _0801C314 @ =gUnknown_02024C10 + ldr r0, _0801C314 @ =gBattlescriptCurrInstr ldr r5, [r0] ldrb r6, [r5, 0x5] ldrb r1, [r5, 0x6] @@ -807,8 +807,8 @@ atk01_accuracycheck: @ 801C2BC adds r7, r0, 0 cmp r1, 0x1 bhi _0801C378 - ldr r2, _0801C318 @ =gUnknown_02024C98 - ldr r3, _0801C31C @ =gEnemyMonIndex + ldr r2, _0801C318 @ =gStatuses3 + ldr r3, _0801C31C @ =gBankTarget ldrb r4, [r3] lsls r0, r4, 2 adds r0, r2 @@ -820,12 +820,12 @@ atk01_accuracycheck: @ 801C2BC ldr r0, _0801C320 @ =0x0000ffff cmp r6, r0 bne _0801C32C - ldr r1, _0801C324 @ =gUnknown_02024CA8 + ldr r1, _0801C324 @ =gDisableStructs lsls r0, r4, 3 subs r0, r4 lsls r0, 2 adds r0, r1 - ldr r1, _0801C328 @ =gPlayerMonIndex + ldr r1, _0801C328 @ =gBankAttacker ldrb r0, [r0, 0x15] ldrb r1, [r1] cmp r0, r1 @@ -834,12 +834,12 @@ atk01_accuracycheck: @ 801C2BC str r0, [r7] b _0801C632 .align 2, 0 -_0801C314: .4byte gUnknown_02024C10 -_0801C318: .4byte gUnknown_02024C98 -_0801C31C: .4byte gEnemyMonIndex +_0801C314: .4byte gBattlescriptCurrInstr +_0801C318: .4byte gStatuses3 +_0801C31C: .4byte gBankTarget _0801C320: .4byte 0x0000ffff -_0801C324: .4byte gUnknown_02024CA8 -_0801C328: .4byte gPlayerMonIndex +_0801C324: .4byte gDisableStructs +_0801C328: .4byte gBankAttacker _0801C32C: ldrb r0, [r3] lsls r0, 2 @@ -872,17 +872,17 @@ _0801C35C: beq _0801C36A b _0801C632 _0801C36A: - ldr r1, _0801C374 @ =gUnknown_02024C10 + ldr r1, _0801C374 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x7 str r0, [r1] b _0801C632 .align 2, 0 -_0801C374: .4byte gUnknown_02024C10 +_0801C374: .4byte gBattlescriptCurrInstr _0801C378: cmp r6, 0 bne _0801C380 - ldr r0, _0801C398 @ =gUnknown_02024BE6 + ldr r0, _0801C398 @ =gCurrentMove ldrh r6, [r0] _0801C380: ldr r0, _0801C39C @ =0x02000000 @@ -898,7 +898,7 @@ _0801C380: mov r10, r3 b _0801C3B2 .align 2, 0 -_0801C398: .4byte gUnknown_02024BE6 +_0801C398: .4byte gCurrentMove _0801C39C: .4byte 0x02000000 _0801C3A0: .4byte 0x0001601c _0801C3A4: @@ -925,7 +925,7 @@ _0801C3C0: b _0801C632 _0801C3CE: ldr r3, _0801C3FC @ =gBattleMons - ldr r0, _0801C400 @ =gEnemyMonIndex + ldr r0, _0801C400 @ =gBankTarget ldrb r0, [r0] movs r2, 0x58 adds r4, r0, 0 @@ -939,7 +939,7 @@ _0801C3CE: ands r0, r1 cmp r0, 0 beq _0801C408 - ldr r0, _0801C404 @ =gPlayerMonIndex + ldr r0, _0801C404 @ =gBankAttacker ldrb r0, [r0] muls r0, r2 adds r0, r3 @@ -948,10 +948,10 @@ _0801C3CE: .align 2, 0 _0801C3F8: .4byte gBattleMoves _0801C3FC: .4byte gBattleMons -_0801C400: .4byte gEnemyMonIndex -_0801C404: .4byte gPlayerMonIndex +_0801C400: .4byte gBankTarget +_0801C404: .4byte gBankAttacker _0801C408: - ldr r0, _0801C56C @ =gPlayerMonIndex + ldr r0, _0801C56C @ =gBankAttacker ldrb r0, [r0] muls r0, r2 adds r0, r3 @@ -987,7 +987,7 @@ _0801C430: movs r1, 0 movs r2, 0xD movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 lsrs r0, 24 str r4, [sp, 0x4] @@ -998,7 +998,7 @@ _0801C430: movs r1, 0 movs r2, 0x4D movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 bne _0801C482 @@ -1027,7 +1027,7 @@ _0801C482: lsls r0, 16 lsrs r4, r0, 16 ldr r7, _0801C57C @ =gBattleMons - ldr r0, _0801C56C @ =gPlayerMonIndex + ldr r0, _0801C56C @ =gBankAttacker ldrb r0, [r0] movs r5, 0x58 muls r0, r5 @@ -1050,7 +1050,7 @@ _0801C4C0: movs r1, 0 movs r2, 0xD movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 lsrs r0, 24 cmp r0, 0 @@ -1060,11 +1060,11 @@ _0801C4C0: movs r1, 0 movs r2, 0x4D movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 bne _0801C518 - ldr r0, _0801C580 @ =gEnemyMonIndex + ldr r0, _0801C580 @ =gBankTarget ldrb r0, [r0] muls r0, r5 adds r0, r7 @@ -1087,7 +1087,7 @@ _0801C4C0: lsrs r4, r0, 16 _0801C518: ldr r2, _0801C57C @ =gBattleMons - ldr r0, _0801C56C @ =gPlayerMonIndex + ldr r0, _0801C56C @ =gBankAttacker ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -1108,7 +1108,7 @@ _0801C518: lsls r0, 16 lsrs r4, r0, 16 _0801C544: - ldr r3, _0801C580 @ =gEnemyMonIndex + ldr r3, _0801C580 @ =gBankTarget mov r8, r3 ldrb r2, [r3] movs r7, 0x58 @@ -1128,12 +1128,12 @@ _0801C544: ldrb r2, [r0, 0x1A] b _0801C5A4 .align 2, 0 -_0801C56C: .4byte gPlayerMonIndex +_0801C56C: .4byte gBankAttacker _0801C570: .4byte gBattleMoves _0801C574: .4byte gBattleWeather _0801C578: .4byte gAccuracyStageRatios _0801C57C: .4byte gBattleMons -_0801C580: .4byte gEnemyMonIndex +_0801C580: .4byte gBankTarget _0801C584: .4byte gEnigmaBerries _0801C588: ldrh r0, [r1, 0x2E] @@ -1149,8 +1149,8 @@ _0801C588: lsls r0, 24 lsrs r2, r0, 24 _0801C5A4: - ldr r0, _0801C608 @ =gUnknown_02024C0B - ldr r1, _0801C60C @ =gEnemyMonIndex + ldr r0, _0801C608 @ =gStringBank + ldr r1, _0801C60C @ =gBankTarget ldrb r1, [r1] strb r1, [r0] cmp r5, 0x16 @@ -1195,18 +1195,18 @@ _0801C5C0: cmp r0, 0x20 bne _0801C620 _0801C602: - ldr r1, _0801C61C @ =gUnknown_02024D1E + ldr r1, _0801C61C @ =gBattleCommunication movs r0, 0x2 b _0801C624 .align 2, 0 -_0801C608: .4byte gUnknown_02024C0B -_0801C60C: .4byte gEnemyMonIndex +_0801C608: .4byte gStringBank +_0801C60C: .4byte gBankTarget _0801C610: .4byte gBattleMoveFlags _0801C614: .4byte gBattleTypeFlags _0801C618: .4byte gBattleMoves -_0801C61C: .4byte gUnknown_02024D1E +_0801C61C: .4byte gBattleCommunication _0801C620: - ldr r1, _0801C644 @ =gUnknown_02024D1E + ldr r1, _0801C644 @ =gBattleCommunication movs r0, 0 _0801C624: strb r0, [r1, 0x6] @@ -1225,49 +1225,49 @@ _0801C632: pop {r0} bx r0 .align 2, 0 -_0801C644: .4byte gUnknown_02024D1E +_0801C644: .4byte gBattleCommunication thumb_func_end atk01_accuracycheck thumb_func_start atk02_attackstring atk02_attackstring: @ 801C648 push {r4,r5,lr} - ldr r0, _0801C688 @ =gUnknown_02024A64 + ldr r0, _0801C688 @ =gBattleExecBuffer ldr r5, [r0] cmp r5, 0 bne _0801C680 - ldr r4, _0801C68C @ =gUnknown_02024C6C + ldr r4, _0801C68C @ =gHitMarker ldr r0, [r4] movs r1, 0xC0 lsls r1, 3 ands r0, r1 cmp r0, 0 bne _0801C674 - ldr r0, _0801C690 @ =gPlayerMonIndex + ldr r0, _0801C690 @ =gBankAttacker ldrb r1, [r0] movs r0, 0x4 - bl b_std_message + bl PrepareStringBattle ldr r0, [r4] movs r1, 0x80 lsls r1, 3 orrs r0, r1 str r0, [r4] _0801C674: - ldr r0, _0801C694 @ =gUnknown_02024C10 + ldr r0, _0801C694 @ =gBattlescriptCurrInstr ldr r1, [r0] adds r1, 0x1 str r1, [r0] - ldr r0, _0801C698 @ =gUnknown_02024D1E + ldr r0, _0801C698 @ =gBattleCommunication strb r5, [r0, 0x7] _0801C680: pop {r4,r5} pop {r0} bx r0 .align 2, 0 -_0801C688: .4byte gUnknown_02024A64 -_0801C68C: .4byte gUnknown_02024C6C -_0801C690: .4byte gPlayerMonIndex -_0801C694: .4byte gUnknown_02024C10 -_0801C698: .4byte gUnknown_02024D1E +_0801C688: .4byte gBattleExecBuffer +_0801C68C: .4byte gHitMarker +_0801C690: .4byte gBankAttacker +_0801C694: .4byte gBattlescriptCurrInstr +_0801C698: .4byte gBattleCommunication thumb_func_end atk02_attackstring thumb_func_start atk03_ppreduce @@ -1279,14 +1279,14 @@ atk03_ppreduce: @ 801C69C push {r5-r7} sub sp, 0x4 movs r6, 0x1 - ldr r0, _0801C6EC @ =gUnknown_02024A64 + ldr r0, _0801C6EC @ =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 beq _0801C6B4 b _0801C84E _0801C6B4: - ldr r1, _0801C6F0 @ =gUnknown_02024D68 - ldr r2, _0801C6F4 @ =gPlayerMonIndex + ldr r1, _0801C6F0 @ =gSpecialStatuses + ldr r2, _0801C6F4 @ =gBankAttacker ldrb r3, [r2] lsls r0, r3, 2 adds r0, r3 @@ -1299,7 +1299,7 @@ _0801C6B4: cmp r4, 0 bne _0801C756 ldr r2, _0801C6F8 @ =gBattleMoves - ldr r0, _0801C6FC @ =gUnknown_02024BE6 + ldr r0, _0801C6FC @ =gCurrentMove ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -1314,11 +1314,11 @@ _0801C6B4: beq _0801C71C b _0801C736 .align 2, 0 -_0801C6EC: .4byte gUnknown_02024A64 -_0801C6F0: .4byte gUnknown_02024D68 -_0801C6F4: .4byte gPlayerMonIndex +_0801C6EC: .4byte gBattleExecBuffer +_0801C6F0: .4byte gSpecialStatuses +_0801C6F4: .4byte gBankAttacker _0801C6F8: .4byte gBattleMoves -_0801C6FC: .4byte gUnknown_02024BE6 +_0801C6FC: .4byte gCurrentMove _0801C700: cmp r0, 0x40 beq _0801C71C @@ -1329,7 +1329,7 @@ _0801C706: adds r1, r3, 0 movs r2, 0x2E movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 lsrs r0, 24 adds r6, r0, 0x1 @@ -1342,13 +1342,13 @@ _0801C71C: movs r0, 0x10 movs r2, 0x2E movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 lsrs r0, 24 adds r6, r0 b _0801C756 _0801C736: - ldr r1, _0801C7B8 @ =gEnemyMonIndex + ldr r1, _0801C7B8 @ =gBankTarget mov r2, r9 ldrb r0, [r2] ldrb r7, [r1] @@ -1365,7 +1365,7 @@ _0801C736: bne _0801C756 adds r6, 0x1 _0801C756: - ldr r0, _0801C7C0 @ =gUnknown_02024C6C + ldr r0, _0801C7C0 @ =gHitMarker ldr r4, [r0] movs r0, 0xA0 lsls r0, 4 @@ -1373,8 +1373,8 @@ _0801C756: cmp r4, 0 bne _0801C83C ldr r2, _0801C7BC @ =gBattleMons - ldr r3, _0801C7C4 @ =gUnknown_02024BE4 - ldr r1, _0801C7C8 @ =gPlayerMonIndex + ldr r3, _0801C7C4 @ =gCurrMovePos + ldr r1, _0801C7C8 @ =gBankAttacker ldrb r5, [r1] movs r0, 0x58 mov r8, r0 @@ -1392,7 +1392,7 @@ _0801C756: adds r7, r3, 0 cmp r0, 0 beq _0801C83C - ldr r0, _0801C7CC @ =gUnknown_02024D28 + ldr r0, _0801C7CC @ =gProtectStructs lsls r1, r5, 4 adds r1, r0 ldrb r0, [r1, 0x2] @@ -1415,12 +1415,12 @@ _0801C756: strb r0, [r2] b _0801C7D2 .align 2, 0 -_0801C7B8: .4byte gEnemyMonIndex +_0801C7B8: .4byte gBankTarget _0801C7BC: .4byte gBattleMons -_0801C7C0: .4byte gUnknown_02024C6C -_0801C7C4: .4byte gUnknown_02024BE4 -_0801C7C8: .4byte gPlayerMonIndex -_0801C7CC: .4byte gUnknown_02024D28 +_0801C7C0: .4byte gHitMarker +_0801C7C4: .4byte gCurrMovePos +_0801C7C8: .4byte gBankAttacker +_0801C7CC: .4byte gProtectStructs _0801C7D0: strb r4, [r2] _0801C7D2: @@ -1438,7 +1438,7 @@ _0801C7D2: ands r0, r1 cmp r0, 0 bne _0801C83C - ldr r1, _0801C860 @ =gUnknown_02024CA8 + ldr r1, _0801C860 @ =gDisableStructs lsls r0, r3, 3 subs r0, r3 lsls r0, 2 @@ -1453,7 +1453,7 @@ _0801C7D2: ands r1, r0 cmp r1, 0 bne _0801C83C - ldr r0, _0801C868 @ =gUnknown_02024A60 + ldr r0, _0801C868 @ =gActiveBank strb r3, [r0] ldrb r1, [r7] adds r1, 0x9 @@ -1471,17 +1471,17 @@ _0801C7D2: movs r0, 0 movs r2, 0 movs r3, 0x1 - bl dp01_build_cmdbuf_x02_a_b_varargs + bl EmitSetAttributes mov r7, r9 ldrb r0, [r7] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution _0801C83C: - ldr r2, _0801C86C @ =gUnknown_02024C6C + ldr r2, _0801C86C @ =gHitMarker ldr r0, [r2] ldr r1, _0801C870 @ =0xfffff7ff ands r0, r1 str r0, [r2] - ldr r1, _0801C874 @ =gUnknown_02024C10 + ldr r1, _0801C874 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -1495,19 +1495,19 @@ _0801C84E: pop {r0} bx r0 .align 2, 0 -_0801C860: .4byte gUnknown_02024CA8 +_0801C860: .4byte gDisableStructs _0801C864: .4byte gBitTable -_0801C868: .4byte gUnknown_02024A60 -_0801C86C: .4byte gUnknown_02024C6C +_0801C868: .4byte gActiveBank +_0801C86C: .4byte gHitMarker _0801C870: .4byte 0xfffff7ff -_0801C874: .4byte gUnknown_02024C10 +_0801C874: .4byte gBattlescriptCurrInstr thumb_func_end atk03_ppreduce thumb_func_start atk04_critcalc atk04_critcalc: @ 801C878 push {r4-r7,lr} ldr r1, _0801C89C @ =gBattleMons - ldr r0, _0801C8A0 @ =gPlayerMonIndex + ldr r0, _0801C8A0 @ =gBankAttacker ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -1524,15 +1524,15 @@ atk04_critcalc: @ 801C878 b _0801C8B0 .align 2, 0 _0801C89C: .4byte gBattleMons -_0801C8A0: .4byte gPlayerMonIndex +_0801C8A0: .4byte gBankAttacker _0801C8A4: .4byte gEnigmaBerries _0801C8A8: bl ItemId_GetHoldEffect lsls r0, 24 lsrs r6, r0, 24 _0801C8B0: - ldr r1, _0801C93C @ =gUnknown_02024C0B - ldr r3, _0801C940 @ =gPlayerMonIndex + ldr r1, _0801C93C @ =gStringBank + ldr r3, _0801C940 @ =gBankAttacker ldrb r0, [r3] strb r0, [r1] ldr r4, _0801C944 @ =gBattleMons @@ -1552,7 +1552,7 @@ _0801C8B0: movs r0, 0x2 ands r5, r0 ldr r2, _0801C948 @ =gBattleMoves - ldr r0, _0801C94C @ =gUnknown_02024BE6 + ldr r0, _0801C94C @ =gCurrentMove ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -1608,11 +1608,11 @@ _0801C930: adds r0, r2, r0 b _0801C952 .align 2, 0 -_0801C93C: .4byte gUnknown_02024C0B -_0801C940: .4byte gPlayerMonIndex +_0801C93C: .4byte gStringBank +_0801C940: .4byte gBankAttacker _0801C944: .4byte gBattleMons _0801C948: .4byte gBattleMoves -_0801C94C: .4byte gUnknown_02024BE6 +_0801C94C: .4byte gCurrentMove _0801C950: adds r0, r2, r5 _0801C952: @@ -1624,7 +1624,7 @@ _0801C952: bls _0801C960 movs r5, 0x4 _0801C960: - ldr r0, _0801C9BC @ =gEnemyMonIndex + ldr r0, _0801C9BC @ =gBankTarget ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -1635,7 +1635,7 @@ _0801C960: beq _0801C9D0 cmp r4, 0x4B beq _0801C9D0 - ldr r1, _0801C9C0 @ =gUnknown_02024C98 + ldr r1, _0801C9C0 @ =gStatuses3 mov r2, r12 ldrb r0, [r2] lsls r0, 2 @@ -1668,8 +1668,8 @@ _0801C960: movs r0, 0x2 b _0801C9D4 .align 2, 0 -_0801C9BC: .4byte gEnemyMonIndex -_0801C9C0: .4byte gUnknown_02024C98 +_0801C9BC: .4byte gBankTarget +_0801C9C0: .4byte gStatuses3 _0801C9C4: .4byte gBattleTypeFlags _0801C9C8: .4byte gCriticalHitChance _0801C9CC: .4byte gCritMultiplier @@ -1678,7 +1678,7 @@ _0801C9D0: movs r0, 0x1 _0801C9D4: strb r0, [r1] - ldr r1, _0801C9E8 @ =gUnknown_02024C10 + ldr r1, _0801C9E8 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -1687,7 +1687,7 @@ _0801C9D4: bx r0 .align 2, 0 _0801C9E4: .4byte gCritMultiplier -_0801C9E8: .4byte gUnknown_02024C10 +_0801C9E8: .4byte gBattlescriptCurrInstr thumb_func_end atk04_critcalc thumb_func_start atk05_damagecalc1 @@ -1697,16 +1697,16 @@ atk05_damagecalc1: @ 801C9EC mov r6, r8 push {r6,r7} sub sp, 0x10 - ldr r4, _0801CABC @ =gUnknown_02024C7A - ldr r6, _0801CAC0 @ =gEnemyMonIndex + ldr r4, _0801CABC @ =gSideAffecting + ldr r6, _0801CAC0 @ =gBankTarget ldrb r0, [r6] - bl battle_get_per_side_status + bl GetBankIdentity movs r1, 0x1 ands r1, r0 lsls r1, 1 adds r1, r4 ldrh r3, [r1] - ldr r0, _0801CAC4 @ =gPlayerMonIndex + ldr r0, _0801CAC4 @ =gBankAttacker mov r8, r0 ldrb r0, [r0] movs r4, 0x58 @@ -1716,10 +1716,10 @@ atk05_damagecalc1: @ 801C9EC ldrb r1, [r6] muls r1, r4 adds r1, r2 - ldr r2, _0801CACC @ =gUnknown_02024BE6 + ldr r2, _0801CACC @ =gCurrentMove mov r9, r2 ldrh r2, [r2] - ldr r4, _0801CAD0 @ =gUnknown_02024DEC + ldr r4, _0801CAD0 @ =gDynamicBasePower ldrh r4, [r4] str r4, [sp] ldr r5, _0801CAD4 @ =0x02000000 @@ -1743,7 +1743,7 @@ atk05_damagecalc1: @ 801C9EC adds r3, r1, 0 muls r3, r0 str r3, [r4] - ldr r1, _0801CAE8 @ =gUnknown_02024C98 + ldr r1, _0801CAE8 @ =gStatuses3 ldrb r0, [r7] lsls r0, 2 adds r0, r1 @@ -1766,8 +1766,8 @@ atk05_damagecalc1: @ 801C9EC lsls r0, r3, 1 str r0, [r4] _0801CA82: - ldr r1, _0801CAF0 @ =gUnknown_02024D28 - ldr r0, _0801CAC4 @ =gPlayerMonIndex + ldr r1, _0801CAF0 @ =gProtectStructs + ldr r0, _0801CAC4 @ =gBankAttacker ldrb r0, [r0] lsls r0, 4 adds r0, r1 @@ -1783,7 +1783,7 @@ _0801CA82: bl __divsi3 str r0, [r4] _0801CAA4: - ldr r1, _0801CAF4 @ =gUnknown_02024C10 + ldr r1, _0801CAF4 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -1795,21 +1795,21 @@ _0801CAA4: pop {r0} bx r0 .align 2, 0 -_0801CABC: .4byte gUnknown_02024C7A -_0801CAC0: .4byte gEnemyMonIndex -_0801CAC4: .4byte gPlayerMonIndex +_0801CABC: .4byte gSideAffecting +_0801CAC0: .4byte gBankTarget +_0801CAC4: .4byte gBankAttacker _0801CAC8: .4byte gBattleMons -_0801CACC: .4byte gUnknown_02024BE6 -_0801CAD0: .4byte gUnknown_02024DEC +_0801CACC: .4byte gCurrentMove +_0801CAD0: .4byte gDynamicBasePower _0801CAD4: .4byte 0x02000000 _0801CAD8: .4byte 0x0001601c _0801CADC: .4byte gBattleMoveDamage _0801CAE0: .4byte gCritMultiplier _0801CAE4: .4byte 0x0001601f -_0801CAE8: .4byte gUnknown_02024C98 +_0801CAE8: .4byte gStatuses3 _0801CAEC: .4byte gBattleMoves -_0801CAF0: .4byte gUnknown_02024D28 -_0801CAF4: .4byte gUnknown_02024C10 +_0801CAF0: .4byte gProtectStructs +_0801CAF4: .4byte gBattlescriptCurrInstr thumb_func_end atk05_damagecalc1 thumb_func_start sub_801CAF8 @@ -1824,9 +1824,9 @@ sub_801CAF8: @ 801CAF8 lsrs r7, r0, 24 lsls r5, 24 lsrs r5, 24 - ldr r4, _0801CBBC @ =gUnknown_02024C7A + ldr r4, _0801CBBC @ =gSideAffecting adds r0, r5, 0 - bl battle_get_per_side_status + bl GetBankIdentity movs r1, 0x1 ands r1, r0 lsls r1, 1 @@ -1839,10 +1839,10 @@ sub_801CAF8: @ 801CAF8 adds r0, r2 muls r1, r5 adds r1, r2 - ldr r2, _0801CBC4 @ =gUnknown_02024BE6 + ldr r2, _0801CBC4 @ =gCurrentMove mov r9, r2 ldrh r2, [r2] - ldr r4, _0801CBC8 @ =gUnknown_02024DEC + ldr r4, _0801CBC8 @ =gDynamicBasePower mov r8, r4 ldrh r4, [r4] str r4, [sp] @@ -1866,7 +1866,7 @@ sub_801CAF8: @ 801CAF8 adds r3, r1, 0 muls r3, r0 str r3, [r4] - ldr r1, _0801CBE0 @ =gUnknown_02024C98 + ldr r1, _0801CBE0 @ =gStatuses3 lsls r0, r7, 2 adds r0, r1 ldr r0, [r0] @@ -1888,7 +1888,7 @@ sub_801CAF8: @ 801CAF8 lsls r0, r3, 1 str r0, [r4] _0801CB8E: - ldr r0, _0801CBE8 @ =gUnknown_02024D28 + ldr r0, _0801CBE8 @ =gProtectStructs lsls r1, r7, 4 adds r1, r0 ldrb r0, [r1] @@ -1911,18 +1911,18 @@ _0801CBAC: pop {r0} bx r0 .align 2, 0 -_0801CBBC: .4byte gUnknown_02024C7A +_0801CBBC: .4byte gSideAffecting _0801CBC0: .4byte gBattleMons -_0801CBC4: .4byte gUnknown_02024BE6 -_0801CBC8: .4byte gUnknown_02024DEC +_0801CBC4: .4byte gCurrentMove +_0801CBC8: .4byte gDynamicBasePower _0801CBCC: .4byte 0x02000000 _0801CBD0: .4byte 0x0001601c _0801CBD4: .4byte gBattleMoveDamage _0801CBD8: .4byte gCritMultiplier _0801CBDC: .4byte 0x0001601f -_0801CBE0: .4byte gUnknown_02024C98 +_0801CBE0: .4byte gStatuses3 _0801CBE4: .4byte gBattleMoves -_0801CBE8: .4byte gUnknown_02024D28 +_0801CBE8: .4byte gProtectStructs thumb_func_end sub_801CAF8 thumb_func_start battle_attack_damage_modulate_by_effectivity @@ -1970,7 +1970,7 @@ _0801CC26: _0801CC38: .4byte gBattleMoveFlags _0801CC3C: ldr r2, _0801CC6C @ =gBattleMoves - ldr r0, _0801CC70 @ =gUnknown_02024BE6 + ldr r0, _0801CC70 @ =gCurrentMove ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -1994,14 +1994,14 @@ _0801CC3C: b _0801CCBC .align 2, 0 _0801CC6C: .4byte gBattleMoves -_0801CC70: .4byte gUnknown_02024BE6 +_0801CC70: .4byte gCurrentMove _0801CC74: .4byte gBattleMoveFlags _0801CC78: movs r0, 0x4 b _0801CCBA _0801CC7C: ldr r2, _0801CCAC @ =gBattleMoves - ldr r0, _0801CCB0 @ =gUnknown_02024BE6 + ldr r0, _0801CCB0 @ =gCurrentMove ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -2025,7 +2025,7 @@ _0801CC7C: b _0801CCBC .align 2, 0 _0801CCAC: .4byte gBattleMoves -_0801CCB0: .4byte gUnknown_02024BE6 +_0801CCB0: .4byte gCurrentMove _0801CCB4: .4byte gBattleMoveFlags _0801CCB8: movs r0, 0x2 @@ -2039,14 +2039,14 @@ _0801CCBE: bx r0 thumb_func_end battle_attack_damage_modulate_by_effectivity - thumb_func_start atk06_damagecalc2 -atk06_damagecalc2: @ 801CCC4 + thumb_func_start atk06_typecalc +atk06_typecalc: @ 801CCC4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 movs r3, 0 - ldr r1, _0801CCF0 @ =gUnknown_02024BE6 + ldr r1, _0801CCF0 @ =gCurrentMove ldrh r0, [r1] cmp r0, 0xA5 bne _0801CCD8 @@ -2065,7 +2065,7 @@ _0801CCD8: mov r8, r2 b _0801CD0C .align 2, 0 -_0801CCF0: .4byte gUnknown_02024BE6 +_0801CCF0: .4byte gCurrentMove _0801CCF4: .4byte 0x02000000 _0801CCF8: .4byte 0x0001601c _0801CCFC: @@ -2079,7 +2079,7 @@ _0801CCFC: mov r8, r0 _0801CD0C: ldr r2, _0801CD98 @ =gBattleMons - ldr r0, _0801CD9C @ =gPlayerMonIndex + ldr r0, _0801CD9C @ =gBankAttacker ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -2107,7 +2107,7 @@ _0801CD2E: str r0, [r4] ldr r3, [sp, 0x4] _0801CD44: - ldr r2, _0801CDA4 @ =gEnemyMonIndex + ldr r2, _0801CDA4 @ =gBankTarget ldrb r1, [r2] movs r0, 0x58 muls r0, r1 @@ -2120,14 +2120,14 @@ _0801CD44: mov r1, r8 cmp r1, 0x4 bne _0801CDBC - ldr r3, _0801CDA8 @ =byte_2024C06 + ldr r3, _0801CDA8 @ =gLastUsedAbility strb r0, [r3] ldr r2, _0801CDAC @ =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x9 orrs r0, r1 strb r0, [r2] - ldr r1, _0801CDB0 @ =gUnknown_02024C3C + ldr r1, _0801CDB0 @ =gMoveHitWith ldrb r0, [r4] lsls r0, 1 adds r0, r1 @@ -2138,7 +2138,7 @@ _0801CD44: lsls r0, 1 adds r0, r1 strh r2, [r0] - ldr r0, _0801CDB8 @ =gUnknown_02024D1E + ldr r0, _0801CDB8 @ =gBattleCommunication mov r2, r8 strb r2, [r0, 0x6] ldrb r0, [r4] @@ -2148,14 +2148,14 @@ _0801CD44: .align 2, 0 _0801CD94: .4byte gBattleMoves _0801CD98: .4byte gBattleMons -_0801CD9C: .4byte gPlayerMonIndex +_0801CD9C: .4byte gBankAttacker _0801CDA0: .4byte gBattleMoveDamage -_0801CDA4: .4byte gEnemyMonIndex -_0801CDA8: .4byte byte_2024C06 +_0801CDA4: .4byte gBankTarget +_0801CDA8: .4byte gLastUsedAbility _0801CDAC: .4byte gBattleMoveFlags -_0801CDB0: .4byte gUnknown_02024C3C +_0801CDB0: .4byte gMoveHitWith _0801CDB4: .4byte gUnknown_02024C44 -_0801CDB8: .4byte gUnknown_02024D1E +_0801CDB8: .4byte gBattleCommunication _0801CDBC: ldr r1, _0801CDC8 @ =gTypeEffectiveness adds r0, r3, r1 @@ -2176,7 +2176,7 @@ _0801CDD0: adds r1, r3, 0x1 adds r1, r5 ldr r2, _0801CF0C @ =gBattleMons - ldr r7, _0801CF10 @ =gEnemyMonIndex + ldr r7, _0801CF10 @ =gBankTarget ldrb r0, [r7] movs r6, 0x58 muls r0, r6 @@ -2216,7 +2216,7 @@ _0801CE06: _0801CE2C: adds r3, 0x3 ldr r5, _0801CF0C @ =gBattleMons - ldr r4, _0801CF10 @ =gEnemyMonIndex + ldr r4, _0801CF10 @ =gBankTarget ldr r2, _0801CF08 @ =gTypeEffectiveness _0801CE34: adds r0, r3, r2 @@ -2240,7 +2240,7 @@ _0801CE38: beq _0801CDCC _0801CE58: ldr r2, _0801CF0C @ =gBattleMons - ldr r5, _0801CF10 @ =gEnemyMonIndex + ldr r5, _0801CF10 @ =gBankTarget ldrb r1, [r5] movs r0, 0x58 muls r0, r1 @@ -2249,9 +2249,9 @@ _0801CE58: ldrb r6, [r0] cmp r6, 0x19 bne _0801CED6 - ldr r0, _0801CF14 @ =gPlayerMonIndex + ldr r0, _0801CF14 @ =gBankAttacker ldrb r0, [r0] - ldr r7, _0801CF18 @ =gUnknown_02024BE6 + ldr r7, _0801CF18 @ =gCurrentMove ldrh r1, [r7] bl move_weather_interaction lsls r0, 24 @@ -2278,13 +2278,13 @@ _0801CE94: ldrb r0, [r0, 0x1] cmp r0, 0 beq _0801CED6 - ldr r3, _0801CF24 @ =byte_2024C06 + ldr r3, _0801CF24 @ =gLastUsedAbility strb r6, [r3] movs r0, 0x1 orrs r0, r4 mov r2, r8 strb r0, [r2] - ldr r1, _0801CF28 @ =gUnknown_02024C3C + ldr r1, _0801CF28 @ =gMoveHitWith ldrb r0, [r5] lsls r0, 1 adds r0, r1 @@ -2295,7 +2295,7 @@ _0801CE94: lsls r0, 1 adds r0, r1 strh r2, [r0] - ldr r1, _0801CF30 @ =gUnknown_02024D1E + ldr r1, _0801CF30 @ =gBattleCommunication movs r0, 0x3 strb r0, [r1, 0x6] ldrb r0, [r5] @@ -2308,8 +2308,8 @@ _0801CED6: ands r0, r1 cmp r0, 0 beq _0801CEF4 - ldr r2, _0801CF34 @ =gUnknown_02024D28 - ldr r0, _0801CF14 @ =gPlayerMonIndex + ldr r2, _0801CF34 @ =gProtectStructs + ldr r0, _0801CF14 @ =gBankAttacker ldrb r1, [r0] lsls r1, 4 adds r1, r2 @@ -2318,7 +2318,7 @@ _0801CED6: orrs r0, r2 strb r0, [r1, 0x1] _0801CEF4: - ldr r1, _0801CF38 @ =gUnknown_02024C10 + ldr r1, _0801CF38 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -2331,18 +2331,18 @@ _0801CEF4: .align 2, 0 _0801CF08: .4byte gTypeEffectiveness _0801CF0C: .4byte gBattleMons -_0801CF10: .4byte gEnemyMonIndex -_0801CF14: .4byte gPlayerMonIndex -_0801CF18: .4byte gUnknown_02024BE6 +_0801CF10: .4byte gBankTarget +_0801CF14: .4byte gBankAttacker +_0801CF18: .4byte gCurrentMove _0801CF1C: .4byte gBattleMoveFlags _0801CF20: .4byte gBattleMoves -_0801CF24: .4byte byte_2024C06 -_0801CF28: .4byte gUnknown_02024C3C +_0801CF24: .4byte gLastUsedAbility +_0801CF28: .4byte gMoveHitWith _0801CF2C: .4byte gUnknown_02024C44 -_0801CF30: .4byte gUnknown_02024D1E -_0801CF34: .4byte gUnknown_02024D28 -_0801CF38: .4byte gUnknown_02024C10 - thumb_func_end atk06_damagecalc2 +_0801CF30: .4byte gBattleCommunication +_0801CF34: .4byte gProtectStructs +_0801CF38: .4byte gBattlescriptCurrInstr + thumb_func_end atk06_typecalc thumb_func_start b_wonderguard_and_levitate b_wonderguard_and_levitate: @ 801CF3C @@ -2352,7 +2352,7 @@ b_wonderguard_and_levitate: @ 801CF3C push {r6,r7} movs r6, 0 movs r5, 0 - ldr r0, _0801CF80 @ =gUnknown_02024BE6 + ldr r0, _0801CF80 @ =gCurrentMove ldrh r1, [r0] mov r9, r0 cmp r1, 0xA5 @@ -2382,7 +2382,7 @@ _0801CF66: mov r12, r2 b _0801CF94 .align 2, 0 -_0801CF80: .4byte gUnknown_02024BE6 +_0801CF80: .4byte gCurrentMove _0801CF84: .4byte gBattleMoves _0801CF88: .4byte 0x02000000 _0801CF8C: .4byte 0x0001601c @@ -2391,7 +2391,7 @@ _0801CF90: mov r12, r1 _0801CF94: ldr r2, _0801CFC8 @ =gBattleMons - ldr r3, _0801CFCC @ =gEnemyMonIndex + ldr r3, _0801CFCC @ =gBankTarget ldrb r1, [r3] movs r0, 0x58 muls r0, r1 @@ -2405,9 +2405,9 @@ _0801CF94: mov r0, r12 cmp r0, 0x4 bne _0801CFD8 - ldr r0, _0801CFD0 @ =byte_2024C06 + ldr r0, _0801CFD0 @ =gLastUsedAbility strb r1, [r0] - ldr r0, _0801CFD4 @ =gUnknown_02024D1E + ldr r0, _0801CFD4 @ =gBattleCommunication mov r1, r12 strb r1, [r0, 0x6] ldrb r0, [r3] @@ -2416,9 +2416,9 @@ _0801CF94: b _0801D1A4 .align 2, 0 _0801CFC8: .4byte gBattleMons -_0801CFCC: .4byte gEnemyMonIndex -_0801CFD0: .4byte byte_2024C06 -_0801CFD4: .4byte gUnknown_02024D1E +_0801CFCC: .4byte gBankTarget +_0801CFD0: .4byte gLastUsedAbility +_0801CFD4: .4byte gBattleCommunication _0801CFD8: ldr r1, _0801CFE4 @ =gTypeEffectiveness adds r0, r5, r1 @@ -2457,8 +2457,8 @@ _0801CFF2: movs r1, 0x8 orrs r0, r1 strb r0, [r2] - ldr r1, _0801D1B4 @ =gUnknown_02024D28 - ldr r0, _0801D1B8 @ =gPlayerMonIndex + ldr r1, _0801D1B4 @ =gProtectStructs + ldr r0, _0801D1B8 @ =gBankAttacker ldrb r2, [r0] lsls r2, 4 adds r2, r1 @@ -2493,8 +2493,8 @@ _0801D032: movs r1, 0x8 orrs r0, r1 strb r0, [r2] - ldr r1, _0801D1B4 @ =gUnknown_02024D28 - ldr r0, _0801D1B8 @ =gPlayerMonIndex + ldr r1, _0801D1B4 @ =gProtectStructs + ldr r0, _0801D1B8 @ =gBankAttacker ldrb r2, [r0] lsls r2, 4 adds r2, r1 @@ -2626,7 +2626,7 @@ _0801D14E: ldrb r4, [r0] cmp r4, 0x19 bne _0801D1A4 - ldr r0, _0801D1B8 @ =gPlayerMonIndex + ldr r0, _0801D1B8 @ =gBankAttacker ldrb r0, [r0] mov r2, r9 ldrh r1, [r2] @@ -2649,9 +2649,9 @@ _0801D14E: ldrb r0, [r0, 0x1] cmp r0, 0 beq _0801D1A4 - ldr r0, _0801D1C0 @ =byte_2024C06 + ldr r0, _0801D1C0 @ =gLastUsedAbility strb r4, [r0] - ldr r1, _0801D1C4 @ =gUnknown_02024D1E + ldr r1, _0801D1C4 @ =gBattleCommunication movs r0, 0x3 strb r0, [r1, 0x6] mov r1, r8 @@ -2667,11 +2667,11 @@ _0801D1A4: bx r0 .align 2, 0 _0801D1B0: .4byte gBattleMoveFlags -_0801D1B4: .4byte gUnknown_02024D28 -_0801D1B8: .4byte gPlayerMonIndex +_0801D1B4: .4byte gProtectStructs +_0801D1B8: .4byte gBankAttacker _0801D1BC: .4byte gBattleMoves -_0801D1C0: .4byte byte_2024C06 -_0801D1C4: .4byte gUnknown_02024D1E +_0801D1C0: .4byte gLastUsedAbility +_0801D1C4: .4byte gBattleCommunication thumb_func_end b_wonderguard_and_levitate thumb_func_start b_attack_effectivity_adapt @@ -2918,7 +2918,7 @@ _0801D388: ldrb r0, [r0] cmp r4, r0 bne _0801D3B0 - ldr r0, _0801D454 @ =gEnemyMonIndex + ldr r0, _0801D454 @ =gBankTarget ldrb r0, [r0] muls r0, r3 add r0, r8 @@ -3018,7 +3018,7 @@ _0801D43A: .align 2, 0 _0801D44C: .4byte gTypeEffectiveness _0801D450: .4byte gBattleMons -_0801D454: .4byte gEnemyMonIndex +_0801D454: .4byte gBankTarget _0801D458: .4byte gBattleMoves thumb_func_end move_effectiveness_something @@ -3100,7 +3100,7 @@ _0801D4D2: _0801D4EE: cmp r5, r8 bne _0801D510 - ldr r0, _0801D568 @ =gEnemyMonIndex + ldr r0, _0801D568 @ =gBankTarget ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -3163,7 +3163,7 @@ _0801D554: bx r1 .align 2, 0 _0801D564: .4byte gTypeEffectiveness -_0801D568: .4byte gEnemyMonIndex +_0801D568: .4byte gBankTarget _0801D56C: .4byte gBattleMons _0801D570: .4byte gBattleMoves thumb_func_end ai_rate_move @@ -3201,8 +3201,8 @@ _0801D5A6: _0801D5AC: .4byte gBattleMoveDamage thumb_func_end unref_sub_801D574 - thumb_func_start atk07_damagecalc3 -atk07_damagecalc3: @ 801D5B0 + thumb_func_start atk07_dmg_adjustment +atk07_dmg_adjustment: @ 801D5B0 push {r4-r7,lr} bl Random lsls r0, 16 @@ -3228,7 +3228,7 @@ atk07_damagecalc3: @ 801D5B0 str r0, [r4] _0801D5E2: ldr r7, _0801D60C @ =gBattleMons - ldr r6, _0801D610 @ =gEnemyMonIndex + ldr r6, _0801D610 @ =gBankTarget ldrb r2, [r6] movs r5, 0x58 adds r0, r2, 0 @@ -3248,7 +3248,7 @@ _0801D5E2: .align 2, 0 _0801D608: .4byte gBattleMoveDamage _0801D60C: .4byte gBattleMons -_0801D610: .4byte gEnemyMonIndex +_0801D610: .4byte gBankTarget _0801D614: .4byte gEnigmaBerries _0801D618: ldrh r0, [r1, 0x2E] @@ -3263,8 +3263,8 @@ _0801D618: lsls r0, 24 lsrs r6, r0, 24 _0801D632: - ldr r1, _0801D6F4 @ =gUnknown_02024C0B - ldr r5, _0801D6F8 @ =gEnemyMonIndex + ldr r1, _0801D6F4 @ =gStringBank + ldr r5, _0801D6F8 @ =gBankTarget ldrb r0, [r5] strb r0, [r1] cmp r4, 0x27 @@ -3281,7 +3281,7 @@ _0801D632: ldrb r0, [r5] movs r1, 0x27 bl sub_81074F8 - ldr r2, _0801D6FC @ =gUnknown_02024D68 + ldr r2, _0801D6FC @ =gSpecialStatuses ldrb r1, [r5] lsls r0, r1, 2 adds r0, r1 @@ -3293,7 +3293,7 @@ _0801D632: strb r1, [r0] _0801D670: ldr r2, _0801D700 @ =gBattleMons - ldr r3, _0801D6F8 @ =gEnemyMonIndex + ldr r3, _0801D6F8 @ =gBankTarget ldrb r4, [r3] movs r0, 0x58 muls r0, r4 @@ -3308,7 +3308,7 @@ _0801D670: cmp r1, 0 bne _0801D740 ldr r2, _0801D704 @ =gBattleMoves - ldr r0, _0801D708 @ =gUnknown_02024BE6 + ldr r0, _0801D708 @ =gCurrentMove ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -3317,14 +3317,14 @@ _0801D670: ldrb r0, [r0] cmp r0, 0x65 beq _0801D6C2 - ldr r0, _0801D70C @ =gUnknown_02024D28 + ldr r0, _0801D70C @ =gProtectStructs lsls r1, r4, 4 adds r1, r0 ldrb r0, [r1] lsls r0, 30 cmp r0, 0 blt _0801D6C2 - ldr r0, _0801D6FC @ =gUnknown_02024D68 + ldr r0, _0801D6FC @ =gSpecialStatuses lsls r1, r4, 2 adds r1, r4 lsls r1, 2 @@ -3345,7 +3345,7 @@ _0801D6C2: bgt _0801D740 subs r0, r1, 0x1 str r0, [r2] - ldr r1, _0801D70C @ =gUnknown_02024D28 + ldr r1, _0801D70C @ =gProtectStructs ldrb r3, [r3] lsls r0, r3, 4 adds r0, r1 @@ -3360,17 +3360,17 @@ _0801D6C2: strb r1, [r0] b _0801D740 .align 2, 0 -_0801D6F4: .4byte gUnknown_02024C0B -_0801D6F8: .4byte gEnemyMonIndex -_0801D6FC: .4byte gUnknown_02024D68 +_0801D6F4: .4byte gStringBank +_0801D6F8: .4byte gBankTarget +_0801D6FC: .4byte gSpecialStatuses _0801D700: .4byte gBattleMons _0801D704: .4byte gBattleMoves -_0801D708: .4byte gUnknown_02024BE6 -_0801D70C: .4byte gUnknown_02024D28 +_0801D708: .4byte gCurrentMove +_0801D70C: .4byte gProtectStructs _0801D710: .4byte gBattleMoveDamage _0801D714: .4byte gBattleMoveFlags _0801D718: - ldr r0, _0801D750 @ =gUnknown_02024D68 + ldr r0, _0801D750 @ =gSpecialStatuses lsls r1, r3, 2 adds r1, r3 lsls r1, 2 @@ -3384,14 +3384,14 @@ _0801D718: movs r1, 0x80 orrs r0, r1 strb r0, [r2] - ldr r1, _0801D758 @ =gUnknown_02024C04 + ldr r1, _0801D758 @ =gLastUsedItem adds r0, r3, 0 muls r0, r4 adds r0, r5 ldrh r0, [r0, 0x2E] strh r0, [r1] _0801D740: - ldr r1, _0801D75C @ =gUnknown_02024C10 + ldr r1, _0801D75C @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -3399,14 +3399,14 @@ _0801D740: pop {r0} bx r0 .align 2, 0 -_0801D750: .4byte gUnknown_02024D68 +_0801D750: .4byte gSpecialStatuses _0801D754: .4byte gBattleMoveFlags -_0801D758: .4byte gUnknown_02024C04 -_0801D75C: .4byte gUnknown_02024C10 - thumb_func_end atk07_damagecalc3 +_0801D758: .4byte gLastUsedItem +_0801D75C: .4byte gBattlescriptCurrInstr + thumb_func_end atk07_dmg_adjustment - thumb_func_start atk08_cmd8 -atk08_cmd8: @ 801D760 + thumb_func_start atk08_dmg_adjustment2 +atk08_dmg_adjustment2: @ 801D760 push {r4-r7,lr} bl Random lsls r0, 16 @@ -3432,7 +3432,7 @@ atk08_cmd8: @ 801D760 str r0, [r4] _0801D792: ldr r7, _0801D7BC @ =gBattleMons - ldr r6, _0801D7C0 @ =gEnemyMonIndex + ldr r6, _0801D7C0 @ =gBankTarget ldrb r2, [r6] movs r5, 0x58 adds r0, r2, 0 @@ -3452,7 +3452,7 @@ _0801D792: .align 2, 0 _0801D7B8: .4byte gBattleMoveDamage _0801D7BC: .4byte gBattleMons -_0801D7C0: .4byte gEnemyMonIndex +_0801D7C0: .4byte gBankTarget _0801D7C4: .4byte gEnigmaBerries _0801D7C8: ldrh r0, [r1, 0x2E] @@ -3467,8 +3467,8 @@ _0801D7C8: lsls r0, 24 lsrs r6, r0, 24 _0801D7E2: - ldr r1, _0801D888 @ =gUnknown_02024C0B - ldr r5, _0801D88C @ =gEnemyMonIndex + ldr r1, _0801D888 @ =gStringBank + ldr r5, _0801D88C @ =gBankTarget ldrb r0, [r5] strb r0, [r1] cmp r4, 0x27 @@ -3485,7 +3485,7 @@ _0801D7E2: ldrb r0, [r5] movs r1, 0x27 bl sub_81074F8 - ldr r2, _0801D890 @ =gUnknown_02024D68 + ldr r2, _0801D890 @ =gSpecialStatuses ldrb r1, [r5] lsls r0, r1, 2 adds r0, r1 @@ -3497,7 +3497,7 @@ _0801D7E2: strb r1, [r0] _0801D820: ldr r4, _0801D894 @ =gBattleMons - ldr r6, _0801D88C @ =gEnemyMonIndex + ldr r6, _0801D88C @ =gBankTarget ldrb r2, [r6] movs r7, 0x58 adds r3, r2, 0 @@ -3511,14 +3511,14 @@ _0801D820: ands r0, r1 cmp r0, 0 bne _0801D8CC - ldr r5, _0801D898 @ =gUnknown_02024D28 + ldr r5, _0801D898 @ =gProtectStructs lsls r0, r2, 4 adds r0, r5 ldrb r0, [r0] lsls r0, 30 cmp r0, 0 blt _0801D85E - ldr r0, _0801D890 @ =gUnknown_02024D68 + ldr r0, _0801D890 @ =gSpecialStatuses lsls r1, r2, 2 adds r1, r2 lsls r1, 2 @@ -3550,15 +3550,15 @@ _0801D85E: strb r1, [r0] b _0801D8CC .align 2, 0 -_0801D888: .4byte gUnknown_02024C0B -_0801D88C: .4byte gEnemyMonIndex -_0801D890: .4byte gUnknown_02024D68 +_0801D888: .4byte gStringBank +_0801D88C: .4byte gBankTarget +_0801D890: .4byte gSpecialStatuses _0801D894: .4byte gBattleMons -_0801D898: .4byte gUnknown_02024D28 +_0801D898: .4byte gProtectStructs _0801D89C: .4byte gBattleMoveDamage _0801D8A0: .4byte gBattleMoveFlags _0801D8A4: - ldr r0, _0801D8DC @ =gUnknown_02024D68 + ldr r0, _0801D8DC @ =gSpecialStatuses lsls r1, r3, 2 adds r1, r3 lsls r1, 2 @@ -3572,14 +3572,14 @@ _0801D8A4: movs r1, 0x80 orrs r0, r1 strb r0, [r2] - ldr r1, _0801D8E4 @ =gUnknown_02024C04 + ldr r1, _0801D8E4 @ =gLastUsedItem adds r0, r3, 0 muls r0, r7 adds r0, r4 ldrh r0, [r0, 0x2E] strh r0, [r1] _0801D8CC: - ldr r1, _0801D8E8 @ =gUnknown_02024C10 + ldr r1, _0801D8E8 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -3587,30 +3587,30 @@ _0801D8CC: pop {r0} bx r0 .align 2, 0 -_0801D8DC: .4byte gUnknown_02024D68 +_0801D8DC: .4byte gSpecialStatuses _0801D8E0: .4byte gBattleMoveFlags -_0801D8E4: .4byte gUnknown_02024C04 -_0801D8E8: .4byte gUnknown_02024C10 - thumb_func_end atk08_cmd8 +_0801D8E4: .4byte gLastUsedItem +_0801D8E8: .4byte gBattlescriptCurrInstr + thumb_func_end atk08_dmg_adjustment2 - thumb_func_start sub_801D8EC -sub_801D8EC: @ 801D8EC + thumb_func_start atk09_attackanimation +atk09_attackanimation: @ 801D8EC push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0xC - ldr r0, _0801D940 @ =gUnknown_02024A64 + ldr r0, _0801D940 @ =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 beq _0801D900 b _0801DA4A _0801D900: - ldr r0, _0801D944 @ =gUnknown_02024C6C + ldr r0, _0801D944 @ =gHitMarker ldr r0, [r0] movs r1, 0x80 ands r0, r1 - ldr r3, _0801D948 @ =gUnknown_02024BE6 + ldr r3, _0801D948 @ =gCurrentMove cmp r0, 0 beq _0801D960 ldrh r0, [r3] @@ -3618,11 +3618,11 @@ _0801D900: beq _0801D960 cmp r0, 0xA4 beq _0801D960 - ldr r4, _0801D94C @ =gUnknown_02024C10 + ldr r4, _0801D94C @ =gBattlescriptCurrInstr ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push - ldr r0, _0801D950 @ =gUnknown_081D8EEF + ldr r0, _0801D950 @ =BattleScript_Pausex20 str r0, [r4] ldr r1, _0801D954 @ =0x02000000 ldr r0, _0801D958 @ =0x00016002 @@ -3637,11 +3637,11 @@ _0801D900: strb r0, [r1] b _0801DA4A .align 2, 0 -_0801D940: .4byte gUnknown_02024A64 -_0801D944: .4byte gUnknown_02024C6C -_0801D948: .4byte gUnknown_02024BE6 -_0801D94C: .4byte gUnknown_02024C10 -_0801D950: .4byte gUnknown_081D8EEF +_0801D940: .4byte gBattleExecBuffer +_0801D944: .4byte gHitMarker +_0801D948: .4byte gCurrentMove +_0801D94C: .4byte gBattlescriptCurrInstr +_0801D950: .4byte BattleScript_Pausex20 _0801D954: .4byte 0x02000000 _0801D958: .4byte 0x00016002 _0801D95C: .4byte 0x000160a1 @@ -3679,8 +3679,8 @@ _0801D992: ands r0, r1 cmp r0, 0 bne _0801DA3C - ldr r1, _0801DA1C @ =gUnknown_02024A60 - ldr r2, _0801DA20 @ =gPlayerMonIndex + ldr r1, _0801DA1C @ =gActiveBank + ldr r2, _0801DA20 @ =gBankAttacker mov r9, r2 ldrb r0, [r2] strb r0, [r1] @@ -3709,11 +3709,11 @@ _0801D992: lsls r0, r4, 3 subs r0, r4 lsls r0, 2 - ldr r4, _0801DA34 @ =gUnknown_02024CA8 + ldr r4, _0801DA34 @ =gDisableStructs adds r0, r4 str r0, [sp, 0x8] movs r0, 0 - bl dp01_build_cmdbuf_x0F_aa_b_cc_dddd_e_mlc_weather_00_x1Cbytes + bl EmitMoveAnimation mov r1, r8 ldrb r0, [r1] adds r0, 0x1 @@ -3725,9 +3725,9 @@ _0801D992: strb r0, [r6] mov r1, r9 ldrb r0, [r1] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution _0801DA00: - ldr r1, _0801DA38 @ =gUnknown_02024C10 + ldr r1, _0801DA38 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -3737,20 +3737,20 @@ _0801DA0C: .4byte gBattleMoves _0801DA10: .4byte 0x02000000 _0801DA14: .4byte 0x000160a1 _0801DA18: .4byte gBattleMoveFlags -_0801DA1C: .4byte gUnknown_02024A60 -_0801DA20: .4byte gPlayerMonIndex +_0801DA1C: .4byte gActiveBank +_0801DA20: .4byte gBankAttacker _0801DA24: .4byte 0x00016002 _0801DA28: .4byte gBattleMovePower _0801DA2C: .4byte gBattleMoveDamage _0801DA30: .4byte gBattleMons -_0801DA34: .4byte gUnknown_02024CA8 -_0801DA38: .4byte gUnknown_02024C10 +_0801DA34: .4byte gDisableStructs +_0801DA38: .4byte gBattlescriptCurrInstr _0801DA3C: - ldr r4, _0801DA58 @ =gUnknown_02024C10 + ldr r4, _0801DA58 @ =gBattlescriptCurrInstr ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push - ldr r0, _0801DA5C @ =gUnknown_081D8EEF + ldr r0, _0801DA5C @ =BattleScript_Pausex20 str r0, [r4] _0801DA4A: add sp, 0xC @@ -3761,18 +3761,18 @@ _0801DA4A: pop {r0} bx r0 .align 2, 0 -_0801DA58: .4byte gUnknown_02024C10 -_0801DA5C: .4byte gUnknown_081D8EEF - thumb_func_end sub_801D8EC +_0801DA58: .4byte gBattlescriptCurrInstr +_0801DA5C: .4byte BattleScript_Pausex20 + thumb_func_end atk09_attackanimation - thumb_func_start sub_801DA60 -sub_801DA60: @ 801DA60 + thumb_func_start atk0A_waitanimation +atk0A_waitanimation: @ 801DA60 push {lr} - ldr r0, _0801DA78 @ =gUnknown_02024A64 + ldr r0, _0801DA78 @ =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 bne _0801DA72 - ldr r1, _0801DA7C @ =gUnknown_02024C10 + ldr r1, _0801DA7C @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -3780,14 +3780,14 @@ _0801DA72: pop {r0} bx r0 .align 2, 0 -_0801DA78: .4byte gUnknown_02024A64 -_0801DA7C: .4byte gUnknown_02024C10 - thumb_func_end sub_801DA60 +_0801DA78: .4byte gBattleExecBuffer +_0801DA7C: .4byte gBattlescriptCurrInstr + thumb_func_end atk0A_waitanimation - thumb_func_start sub_801DA80 -sub_801DA80: @ 801DA80 + thumb_func_start atk0B_healthbarupdate +atk0B_healthbarupdate: @ 801DA80 push {r4,r5,lr} - ldr r0, _0801DAE4 @ =gUnknown_02024A64 + ldr r0, _0801DAE4 @ =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 bne _0801DB36 @@ -3797,11 +3797,11 @@ sub_801DA80: @ 801DA80 ands r0, r1 cmp r0, 0 bne _0801DB2E - ldr r0, _0801DAEC @ =gUnknown_02024C10 + ldr r0, _0801DAEC @ =gBattlescriptCurrInstr ldr r0, [r0] ldrb r0, [r0, 0x1] bl sub_8015150 - ldr r2, _0801DAF0 @ =gUnknown_02024A60 + ldr r2, _0801DAF0 @ =gActiveBank strb r0, [r2] ldr r1, _0801DAF4 @ =gBattleMons ldrb r2, [r2] @@ -3815,7 +3815,7 @@ sub_801DA80: @ 801DA80 ands r0, r1 cmp r0, 0 beq _0801DB00 - ldr r0, _0801DAF8 @ =gUnknown_02024CA8 + ldr r0, _0801DAF8 @ =gDisableStructs lsls r1, r2, 3 subs r1, r2 lsls r1, 2 @@ -3823,7 +3823,7 @@ sub_801DA80: @ 801DA80 ldrb r0, [r1, 0xA] cmp r0, 0 beq _0801DB00 - ldr r0, _0801DAFC @ =gUnknown_02024C6C + ldr r0, _0801DAFC @ =gHitMarker ldr r0, [r0] movs r1, 0x80 lsls r1, 1 @@ -3832,39 +3832,39 @@ sub_801DA80: @ 801DA80 bne _0801DB00 movs r0, 0x80 adds r1, r2, 0 - bl b_std_message + bl PrepareStringBattle b _0801DB2E .align 2, 0 -_0801DAE4: .4byte gUnknown_02024A64 +_0801DAE4: .4byte gBattleExecBuffer _0801DAE8: .4byte gBattleMoveFlags -_0801DAEC: .4byte gUnknown_02024C10 -_0801DAF0: .4byte gUnknown_02024A60 +_0801DAEC: .4byte gBattlescriptCurrInstr +_0801DAF0: .4byte gActiveBank _0801DAF4: .4byte gBattleMons -_0801DAF8: .4byte gUnknown_02024CA8 -_0801DAFC: .4byte gUnknown_02024C6C +_0801DAF8: .4byte gDisableStructs +_0801DAFC: .4byte gHitMarker _0801DB00: ldr r5, _0801DB3C @ =gBattleMoveDamage ldrh r1, [r5] movs r0, 0 - bl dp01_build_cmdbuf_x18_0_aa_health_bar_update - ldr r4, _0801DB40 @ =gUnknown_02024A60 + bl EmitHealthBarUpdate + ldr r4, _0801DB40 @ =gActiveBank ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0801DB2E ldr r0, [r5] cmp r0, 0 ble _0801DB2E - ldr r0, _0801DB44 @ =gUnknown_030042E0 + ldr r0, _0801DB44 @ =gBattleResults ldrb r1, [r0, 0x5] movs r2, 0x1 orrs r1, r2 strb r1, [r0, 0x5] _0801DB2E: - ldr r1, _0801DB48 @ =gUnknown_02024C10 + ldr r1, _0801DB48 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x2 str r0, [r1] @@ -3874,16 +3874,16 @@ _0801DB36: bx r0 .align 2, 0 _0801DB3C: .4byte gBattleMoveDamage -_0801DB40: .4byte gUnknown_02024A60 -_0801DB44: .4byte gUnknown_030042E0 -_0801DB48: .4byte gUnknown_02024C10 - thumb_func_end sub_801DA80 +_0801DB40: .4byte gActiveBank +_0801DB44: .4byte gBattleResults +_0801DB48: .4byte gBattlescriptCurrInstr + thumb_func_end atk0B_healthbarupdate thumb_func_start atk0C_datahpupdate atk0C_datahpupdate: @ 801DB4C push {r4-r7,lr} sub sp, 0x4 - ldr r0, _0801DB74 @ =gUnknown_02024A64 + ldr r0, _0801DB74 @ =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 beq _0801DB5A @@ -3903,12 +3903,12 @@ _0801DB5A: ands r6, r1 b _0801DB90 .align 2, 0 -_0801DB74: .4byte gUnknown_02024A64 +_0801DB74: .4byte gBattleExecBuffer _0801DB78: .4byte 0x02000000 _0801DB7C: .4byte 0x0001601c _0801DB80: ldr r2, _0801DC1C @ =gBattleMoves - ldr r0, _0801DC20 @ =gUnknown_02024BE6 + ldr r0, _0801DC20 @ =gCurrentMove ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -3924,11 +3924,11 @@ _0801DB90: beq _0801DB9E b _0801DF00 _0801DB9E: - ldr r0, _0801DC28 @ =gUnknown_02024C10 + ldr r0, _0801DC28 @ =gBattlescriptCurrInstr ldr r0, [r0] ldrb r0, [r0, 0x1] bl sub_8015150 - ldr r7, _0801DC2C @ =gUnknown_02024A60 + ldr r7, _0801DC2C @ =gActiveBank strb r0, [r7] ldr r1, _0801DC30 @ =gBattleMons ldrb r2, [r7] @@ -3942,7 +3942,7 @@ _0801DB9E: ands r0, r1 cmp r0, 0 beq _0801DCB4 - ldr r0, _0801DC34 @ =gUnknown_02024CA8 + ldr r0, _0801DC34 @ =gDisableStructs lsls r1, r2, 3 subs r1, r2 lsls r1, 2 @@ -3951,7 +3951,7 @@ _0801DB9E: mov r12, r0 cmp r1, 0 beq _0801DCB4 - ldr r0, _0801DC38 @ =gUnknown_02024C6C + ldr r0, _0801DC38 @ =gHitMarker ldr r3, [r0] movs r0, 0x80 lsls r0, 1 @@ -3963,7 +3963,7 @@ _0801DB9E: ldr r4, [r6] cmp r5, r4 blt _0801DC48 - ldr r0, _0801DC40 @ =gUnknown_02024D68 + ldr r0, _0801DC40 @ =gSpecialStatuses lsls r1, r2, 2 adds r1, r2 lsls r1, 2 @@ -3983,24 +3983,24 @@ _0801DC02: ldrb r0, [r1, 0xA] subs r0, r2 strb r0, [r1, 0xA] - ldr r1, _0801DC44 @ =gUnknown_02024BF0 + ldr r1, _0801DC44 @ =gHP_dealt ldr r0, [r6] str r0, [r1] b _0801DC78 .align 2, 0 _0801DC1C: .4byte gBattleMoves -_0801DC20: .4byte gUnknown_02024BE6 +_0801DC20: .4byte gCurrentMove _0801DC24: .4byte gBattleMoveFlags -_0801DC28: .4byte gUnknown_02024C10 -_0801DC2C: .4byte gUnknown_02024A60 +_0801DC28: .4byte gBattlescriptCurrInstr +_0801DC2C: .4byte gActiveBank _0801DC30: .4byte gBattleMons -_0801DC34: .4byte gUnknown_02024CA8 -_0801DC38: .4byte gUnknown_02024C6C +_0801DC34: .4byte gDisableStructs +_0801DC38: .4byte gHitMarker _0801DC3C: .4byte gBattleMoveDamage -_0801DC40: .4byte gUnknown_02024D68 -_0801DC44: .4byte gUnknown_02024BF0 +_0801DC40: .4byte gSpecialStatuses +_0801DC44: .4byte gHP_dealt _0801DC48: - ldr r0, _0801DCA0 @ =gUnknown_02024D68 + ldr r0, _0801DCA0 @ =gSpecialStatuses lsls r1, r2, 2 adds r1, r2 lsls r1, 2 @@ -4011,7 +4011,7 @@ _0801DC48: bne _0801DC5C str r5, [r1] _0801DC5C: - ldr r2, _0801DCA4 @ =gUnknown_02024BF0 + ldr r2, _0801DCA4 @ =gHP_dealt ldrb r1, [r7] lsls r0, r1, 3 subs r0, r1 @@ -4026,7 +4026,7 @@ _0801DC5C: add r0, r12 strb r3, [r0, 0xA] _0801DC78: - ldr r0, _0801DCA8 @ =gUnknown_02024A60 + ldr r0, _0801DCA8 @ =gActiveBank ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 @@ -4037,22 +4037,22 @@ _0801DC78: beq _0801DC8C b _0801DF26 _0801DC8C: - ldr r4, _0801DCAC @ =gUnknown_02024C10 + ldr r4, _0801DCAC @ =gBattlescriptCurrInstr ldr r0, [r4] adds r0, 0x2 str r0, [r4] bl b_movescr_stack_push_cursor - ldr r0, _0801DCB0 @ =gUnknown_081D99AB + ldr r0, _0801DCB0 @ =BattleScript_SubstituteFade str r0, [r4] b _0801DF2E .align 2, 0 -_0801DCA0: .4byte gUnknown_02024D68 -_0801DCA4: .4byte gUnknown_02024BF0 -_0801DCA8: .4byte gUnknown_02024A60 -_0801DCAC: .4byte gUnknown_02024C10 -_0801DCB0: .4byte gUnknown_081D99AB +_0801DCA0: .4byte gSpecialStatuses +_0801DCA4: .4byte gHP_dealt +_0801DCA8: .4byte gActiveBank +_0801DCAC: .4byte gBattlescriptCurrInstr +_0801DCB0: .4byte BattleScript_SubstituteFade _0801DCB4: - ldr r0, _0801DCF4 @ =gUnknown_02024C6C + ldr r0, _0801DCF4 @ =gHitMarker ldr r2, [r0] ldr r1, _0801DCF8 @ =0xfffffeff ands r2, r1 @@ -4064,7 +4064,7 @@ _0801DCB4: cmp r5, 0 bge _0801DD08 ldr r4, _0801DD00 @ =gBattleMons - ldr r2, _0801DD04 @ =gUnknown_02024A60 + ldr r2, _0801DD04 @ =gActiveBank ldrb r0, [r2] movs r3, 0x58 adds r1, r0, 0 @@ -4086,11 +4086,11 @@ _0801DCF0: strh r3, [r1, 0x28] b _0801DEC6 .align 2, 0 -_0801DCF4: .4byte gUnknown_02024C6C +_0801DCF4: .4byte gHitMarker _0801DCF8: .4byte 0xfffffeff _0801DCFC: .4byte gBattleMoveDamage _0801DD00: .4byte gBattleMons -_0801DD04: .4byte gUnknown_02024A60 +_0801DD04: .4byte gActiveBank _0801DD08: movs r0, 0x20 ands r0, r2 @@ -4101,41 +4101,41 @@ _0801DD08: ands r2, r0 mov r0, r12 str r2, [r0] - ldr r5, _0801DD20 @ =gUnknown_02024A60 + ldr r5, _0801DD20 @ =gActiveBank b _0801DD6C .align 2, 0 -_0801DD20: .4byte gUnknown_02024A60 +_0801DD20: .4byte gActiveBank _0801DD24: - ldr r0, _0801DD4C @ =gUnknown_02024BF4 - ldr r2, _0801DD50 @ =gUnknown_02024A60 + ldr r0, _0801DD4C @ =gTakenDmg + ldr r2, _0801DD50 @ =gActiveBank ldrb r1, [r2] lsls r1, 2 adds r1, r0 ldr r0, [r1] adds r0, r5 str r0, [r1] - ldr r0, _0801DD54 @ =gUnknown_02024C10 + ldr r0, _0801DD54 @ =gBattlescriptCurrInstr ldr r0, [r0] ldrb r0, [r0, 0x1] adds r5, r2, 0 cmp r0, 0 bne _0801DD60 - ldr r1, _0801DD58 @ =gUnknown_02024C74 + ldr r1, _0801DD58 @ =gTakenDmgBanks ldrb r0, [r5] adds r0, r1 - ldr r1, _0801DD5C @ =gPlayerMonIndex + ldr r1, _0801DD5C @ =gBankAttacker b _0801DD68 .align 2, 0 -_0801DD4C: .4byte gUnknown_02024BF4 -_0801DD50: .4byte gUnknown_02024A60 -_0801DD54: .4byte gUnknown_02024C10 -_0801DD58: .4byte gUnknown_02024C74 -_0801DD5C: .4byte gPlayerMonIndex +_0801DD4C: .4byte gTakenDmg +_0801DD50: .4byte gActiveBank +_0801DD54: .4byte gBattlescriptCurrInstr +_0801DD58: .4byte gTakenDmgBanks +_0801DD5C: .4byte gBankAttacker _0801DD60: - ldr r1, _0801DD8C @ =gUnknown_02024C74 + ldr r1, _0801DD8C @ =gTakenDmgBanks ldrb r0, [r5] adds r0, r1 - ldr r1, _0801DD90 @ =gEnemyMonIndex + ldr r1, _0801DD90 @ =gBankTarget _0801DD68: ldrb r1, [r1] strb r1, [r0] @@ -4151,17 +4151,17 @@ _0801DD6C: ble _0801DD9C subs r0, r1 strh r0, [r2, 0x28] - ldr r0, _0801DD98 @ =gUnknown_02024BF0 + ldr r0, _0801DD98 @ =gHP_dealt str r1, [r0] adds r7, r0, 0 b _0801DDAC .align 2, 0 -_0801DD8C: .4byte gUnknown_02024C74 -_0801DD90: .4byte gEnemyMonIndex +_0801DD8C: .4byte gTakenDmgBanks +_0801DD90: .4byte gBankTarget _0801DD94: .4byte gBattleMons -_0801DD98: .4byte gUnknown_02024BF0 +_0801DD98: .4byte gHP_dealt _0801DD9C: - ldr r2, _0801DE20 @ =gUnknown_02024BF0 + ldr r2, _0801DE20 @ =gHP_dealt str r0, [r2] ldrb r0, [r5] muls r0, r3 @@ -4170,7 +4170,7 @@ _0801DD9C: strh r1, [r0, 0x28] adds r7, r2, 0 _0801DDAC: - ldr r2, _0801DE24 @ =gUnknown_02024D68 + ldr r2, _0801DE24 @ =gSpecialStatuses ldrb r1, [r5] lsls r0, r1, 2 adds r0, r1 @@ -4200,11 +4200,11 @@ _0801DDD4: ands r0, r1 cmp r0, 0 bne _0801DE58 - ldr r0, _0801DE28 @ =gUnknown_02024BE6 + ldr r0, _0801DE28 @ =gCurrentMove ldrh r0, [r0] cmp r0, 0xDC beq _0801DE58 - ldr r3, _0801DE2C @ =gUnknown_02024D28 + ldr r3, _0801DE2C @ =gProtectStructs ldrb r0, [r5] lsls r0, 4 adds r1, r3, 0x4 @@ -4219,7 +4219,7 @@ _0801DDD4: adds r1, 0x8 adds r0, r1 str r2, [r0] - ldr r0, _0801DE30 @ =gUnknown_02024C10 + ldr r0, _0801DE30 @ =gBattlescriptCurrInstr ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0 @@ -4227,20 +4227,20 @@ _0801DDD4: ldrb r0, [r5] lsls r0, 4 adds r0, r3 - ldr r2, _0801DE34 @ =gPlayerMonIndex + ldr r2, _0801DE34 @ =gBankAttacker b _0801DE40 .align 2, 0 -_0801DE20: .4byte gUnknown_02024BF0 -_0801DE24: .4byte gUnknown_02024D68 -_0801DE28: .4byte gUnknown_02024BE6 -_0801DE2C: .4byte gUnknown_02024D28 -_0801DE30: .4byte gUnknown_02024C10 -_0801DE34: .4byte gPlayerMonIndex +_0801DE20: .4byte gHP_dealt +_0801DE24: .4byte gSpecialStatuses +_0801DE28: .4byte gCurrentMove +_0801DE2C: .4byte gProtectStructs +_0801DE30: .4byte gBattlescriptCurrInstr +_0801DE34: .4byte gBankAttacker _0801DE38: ldrb r0, [r5] lsls r0, 4 adds r0, r3 - ldr r2, _0801DE54 @ =gEnemyMonIndex + ldr r2, _0801DE54 @ =gBankTarget _0801DE40: ldrb r1, [r2] strb r1, [r0, 0xC] @@ -4253,7 +4253,7 @@ _0801DE40: strb r1, [r0, 0x10] b _0801DEC6 .align 2, 0 -_0801DE54: .4byte gEnemyMonIndex +_0801DE54: .4byte gBankTarget _0801DE58: cmp r6, 0x8 bls _0801DEC6 @@ -4265,7 +4265,7 @@ _0801DE5C: ands r0, r1 cmp r0, 0 bne _0801DEC6 - ldr r3, _0801DEA0 @ =gUnknown_02024D28 + ldr r3, _0801DEA0 @ =gProtectStructs ldrb r0, [r5] lsls r0, 4 adds r1, r3, 0 @@ -4281,7 +4281,7 @@ _0801DE5C: adds r1, 0xC adds r0, r1 str r2, [r0] - ldr r0, _0801DEA4 @ =gUnknown_02024C10 + ldr r0, _0801DEA4 @ =gBattlescriptCurrInstr ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0 @@ -4289,17 +4289,17 @@ _0801DE5C: ldrb r0, [r5] lsls r0, 4 adds r0, r3 - ldr r2, _0801DEA8 @ =gPlayerMonIndex + ldr r2, _0801DEA8 @ =gBankAttacker b _0801DEB4 .align 2, 0 -_0801DEA0: .4byte gUnknown_02024D28 -_0801DEA4: .4byte gUnknown_02024C10 -_0801DEA8: .4byte gPlayerMonIndex +_0801DEA0: .4byte gProtectStructs +_0801DEA4: .4byte gBattlescriptCurrInstr +_0801DEA8: .4byte gBankAttacker _0801DEAC: ldrb r0, [r5] lsls r0, 4 adds r0, r3 - ldr r2, _0801DEF4 @ =gEnemyMonIndex + ldr r2, _0801DEF4 @ =gBankTarget _0801DEB4: ldrb r1, [r2] strb r1, [r0, 0xD] @@ -4327,22 +4327,22 @@ _0801DEC6: movs r1, 0x2A movs r2, 0 movs r3, 0x2 - bl dp01_build_cmdbuf_x02_a_b_varargs + bl EmitSetAttributes ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution b _0801DF26 .align 2, 0 -_0801DEF4: .4byte gEnemyMonIndex +_0801DEF4: .4byte gBankTarget _0801DEF8: .4byte 0xffefffff _0801DEFC: .4byte gUnknown_02024AA8 _0801DF00: - ldr r0, _0801DF38 @ =gUnknown_02024C10 + ldr r0, _0801DF38 @ =gBattlescriptCurrInstr ldr r0, [r0] ldrb r0, [r0, 0x1] bl sub_8015150 - ldr r1, _0801DF3C @ =gUnknown_02024A60 + ldr r1, _0801DF3C @ =gActiveBank strb r0, [r1] - ldr r2, _0801DF40 @ =gUnknown_02024D68 + ldr r2, _0801DF40 @ =gSpecialStatuses ldrb r1, [r1] lsls r0, r1, 2 adds r0, r1 @@ -4355,7 +4355,7 @@ _0801DF00: ldr r0, _0801DF44 @ =0x0000ffff str r0, [r1] _0801DF26: - ldr r1, _0801DF38 @ =gUnknown_02024C10 + ldr r1, _0801DF38 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x2 str r0, [r1] @@ -4365,16 +4365,16 @@ _0801DF2E: pop {r0} bx r0 .align 2, 0 -_0801DF38: .4byte gUnknown_02024C10 -_0801DF3C: .4byte gUnknown_02024A60 -_0801DF40: .4byte gUnknown_02024D68 +_0801DF38: .4byte gBattlescriptCurrInstr +_0801DF3C: .4byte gActiveBank +_0801DF40: .4byte gSpecialStatuses _0801DF44: .4byte 0x0000ffff thumb_func_end atk0C_datahpupdate thumb_func_start atk0D_critmessage atk0D_critmessage: @ 801DF48 push {lr} - ldr r0, _0801DF84 @ =gUnknown_02024A64 + ldr r0, _0801DF84 @ =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 bne _0801DF7E @@ -4388,15 +4388,15 @@ atk0D_critmessage: @ 801DF48 ands r0, r1 cmp r0, 0 bne _0801DF76 - ldr r0, _0801DF90 @ =gPlayerMonIndex + ldr r0, _0801DF90 @ =gBankAttacker ldrb r1, [r0] movs r0, 0xD9 - bl b_std_message - ldr r1, _0801DF94 @ =gUnknown_02024D1E + bl PrepareStringBattle + ldr r1, _0801DF94 @ =gBattleCommunication movs r0, 0x1 strb r0, [r1, 0x7] _0801DF76: - ldr r1, _0801DF98 @ =gUnknown_02024C10 + ldr r1, _0801DF98 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -4404,23 +4404,23 @@ _0801DF7E: pop {r0} bx r0 .align 2, 0 -_0801DF84: .4byte gUnknown_02024A64 +_0801DF84: .4byte gBattleExecBuffer _0801DF88: .4byte gCritMultiplier _0801DF8C: .4byte gBattleMoveFlags -_0801DF90: .4byte gPlayerMonIndex -_0801DF94: .4byte gUnknown_02024D1E -_0801DF98: .4byte gUnknown_02024C10 +_0801DF90: .4byte gBankAttacker +_0801DF94: .4byte gBattleCommunication +_0801DF98: .4byte gBattlescriptCurrInstr thumb_func_end atk0D_critmessage - thumb_func_start atk0E_missmessage -atk0E_missmessage: @ 801DF9C + thumb_func_start atk0E_effectiveness_sound +atk0E_effectiveness_sound: @ 801DF9C push {r4,lr} - ldr r0, _0801DFD4 @ =gUnknown_02024A64 + ldr r0, _0801DFD4 @ =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 bne _0801E05C - ldr r4, _0801DFD8 @ =gUnknown_02024A60 - ldr r0, _0801DFDC @ =gEnemyMonIndex + ldr r4, _0801DFD8 @ =gActiveBank + ldr r0, _0801DFDC @ =gBankTarget ldrb r0, [r0] strb r0, [r4] ldr r1, _0801DFE0 @ =gBattleMoveFlags @@ -4443,9 +4443,9 @@ atk0E_missmessage: @ 801DF9C beq _0801DFF8 b _0801E00E .align 2, 0 -_0801DFD4: .4byte gUnknown_02024A64 -_0801DFD8: .4byte gUnknown_02024A60 -_0801DFDC: .4byte gEnemyMonIndex +_0801DFD4: .4byte gBattleExecBuffer +_0801DFD8: .4byte gActiveBank +_0801DFDC: .4byte gBankTarget _0801DFE0: .4byte gBattleMoveFlags _0801DFE4: cmp r0, 0x8 @@ -4467,9 +4467,9 @@ _0801DFFE: movs r0, 0 movs r1, 0xC _0801E002: - bl dp01_build_cmdbuf_x2B_aa_0 + bl EmitEffectivenessSound ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution b _0801E054 _0801E00E: ldrb r1, [r1] @@ -4488,13 +4488,13 @@ _0801E01E: movs r0, 0 movs r1, 0xC _0801E02A: - bl dp01_build_cmdbuf_x2B_aa_0 - ldr r0, _0801E038 @ =gUnknown_02024A60 + bl EmitEffectivenessSound + ldr r0, _0801E038 @ =gActiveBank ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution b _0801E054 .align 2, 0 -_0801E038: .4byte gUnknown_02024A60 +_0801E038: .4byte gActiveBank _0801E03C: movs r0, 0x28 ands r0, r1 @@ -4502,12 +4502,12 @@ _0801E03C: bne _0801E054 movs r0, 0 movs r1, 0xD - bl dp01_build_cmdbuf_x2B_aa_0 - ldr r0, _0801E064 @ =gUnknown_02024A60 + bl EmitEffectivenessSound + ldr r0, _0801E064 @ =gActiveBank ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution _0801E054: - ldr r1, _0801E068 @ =gUnknown_02024C10 + ldr r1, _0801E068 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -4516,15 +4516,15 @@ _0801E05C: pop {r0} bx r0 .align 2, 0 -_0801E064: .4byte gUnknown_02024A60 -_0801E068: .4byte gUnknown_02024C10 - thumb_func_end atk0E_missmessage +_0801E064: .4byte gActiveBank +_0801E068: .4byte gBattlescriptCurrInstr + thumb_func_end atk0E_effectiveness_sound thumb_func_start atk0F_resultmessage atk0F_resultmessage: @ 801E06C push {r4-r7,lr} movs r3, 0 - ldr r0, _0801E0A8 @ =gUnknown_02024A64 + ldr r0, _0801E0A8 @ =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 beq _0801E07A @@ -4536,7 +4536,7 @@ _0801E07A: adds r0, r4, 0 ands r0, r2 adds r6, r1, 0 - ldr r7, _0801E0B0 @ =gUnknown_02024D1E + ldr r7, _0801E0B0 @ =gBattleCommunication cmp r0, 0 beq _0801E0B8 movs r0, 0x8 @@ -4547,7 +4547,7 @@ _0801E07A: cmp r0, 0x2 bls _0801E0B8 _0801E09A: - ldr r1, _0801E0B4 @ =gUnknown_08401508 + ldr r1, _0801E0B4 @ =gMissStrings ldrb r0, [r7, 0x6] lsls r0, 1 adds r0, r1 @@ -4555,10 +4555,10 @@ _0801E09A: strb r4, [r7, 0x7] b _0801E1F6 .align 2, 0 -_0801E0A8: .4byte gUnknown_02024A64 +_0801E0A8: .4byte gBattleExecBuffer _0801E0AC: .4byte gBattleMoveFlags -_0801E0B0: .4byte gUnknown_02024D1E -_0801E0B4: .4byte gUnknown_08401508 +_0801E0B0: .4byte gBattleCommunication +_0801E0B4: .4byte gMissStrings _0801E0B8: movs r0, 0x1 strb r0, [r7, 0x7] @@ -4607,32 +4607,32 @@ _0801E100: movs r3, 0x99 b _0801E1FA _0801E104: - ldr r4, _0801E12C @ =gUnknown_02024C04 + ldr r4, _0801E12C @ =gLastUsedItem ldr r2, _0801E130 @ =gBattleMons - ldr r3, _0801E134 @ =gEnemyMonIndex + ldr r3, _0801E134 @ =gBankTarget ldrb r1, [r3] movs r0, 0x58 muls r0, r1 adds r0, r2 ldrh r0, [r0, 0x2E] strh r0, [r4] - ldr r1, _0801E138 @ =gUnknown_02024C0B + ldr r1, _0801E138 @ =gStringBank ldrb r0, [r3] strb r0, [r1] movs r0, 0x3F ands r0, r5 strb r0, [r6] bl b_movescr_stack_push_cursor - ldr r1, _0801E13C @ =gUnknown_02024C10 - ldr r0, _0801E140 @ =gUnknown_081D9AC6 + ldr r1, _0801E13C @ =gBattlescriptCurrInstr + ldr r0, _0801E140 @ =BattleScript_HangedOnMsg b _0801E20A .align 2, 0 -_0801E12C: .4byte gUnknown_02024C04 +_0801E12C: .4byte gLastUsedItem _0801E130: .4byte gBattleMons -_0801E134: .4byte gEnemyMonIndex -_0801E138: .4byte gUnknown_02024C0B -_0801E13C: .4byte gUnknown_02024C10 -_0801E140: .4byte gUnknown_081D9AC6 +_0801E134: .4byte gBankTarget +_0801E138: .4byte gStringBank +_0801E13C: .4byte gBattlescriptCurrInstr +_0801E140: .4byte BattleScript_HangedOnMsg _0801E144: adds r2, r6, 0 ldrb r5, [r2] @@ -4656,12 +4656,12 @@ _0801E154: ands r0, r1 strb r0, [r2] bl b_movescr_stack_push_cursor - ldr r1, _0801E174 @ =gUnknown_02024C10 - ldr r0, _0801E178 @ =gUnknown_081D94A9 + ldr r1, _0801E174 @ =gBattlescriptCurrInstr + ldr r0, _0801E178 @ =BattleScript_OneHitKOMsg b _0801E20A .align 2, 0 -_0801E174: .4byte gUnknown_02024C10 -_0801E178: .4byte gUnknown_081D94A9 +_0801E174: .4byte gBattlescriptCurrInstr +_0801E178: .4byte BattleScript_OneHitKOMsg _0801E17C: movs r0, 0x40 ands r0, r5 @@ -4671,43 +4671,43 @@ _0801E17C: ands r0, r5 strb r0, [r2] bl b_movescr_stack_push_cursor - ldr r1, _0801E194 @ =gUnknown_02024C10 - ldr r0, _0801E198 @ =gUnknown_081D94A2 + ldr r1, _0801E194 @ =gBattlescriptCurrInstr + ldr r0, _0801E198 @ =BattleScript_EnduredMsg b _0801E20A .align 2, 0 -_0801E194: .4byte gUnknown_02024C10 -_0801E198: .4byte gUnknown_081D94A2 +_0801E194: .4byte gBattlescriptCurrInstr +_0801E198: .4byte BattleScript_EnduredMsg _0801E19C: movs r0, 0x80 ands r0, r5 cmp r0, 0 beq _0801E1E4 - ldr r4, _0801E1CC @ =gUnknown_02024C04 + ldr r4, _0801E1CC @ =gLastUsedItem ldr r2, _0801E1D0 @ =gBattleMons - ldr r3, _0801E1D4 @ =gEnemyMonIndex + ldr r3, _0801E1D4 @ =gBankTarget ldrb r1, [r3] movs r0, 0x58 muls r0, r1 adds r0, r2 ldrh r0, [r0, 0x2E] strh r0, [r4] - ldr r1, _0801E1D8 @ =gUnknown_02024C0B + ldr r1, _0801E1D8 @ =gStringBank ldrb r0, [r3] strb r0, [r1] movs r0, 0x3F ands r0, r5 strb r0, [r6] bl b_movescr_stack_push_cursor - ldr r1, _0801E1DC @ =gUnknown_02024C10 - ldr r0, _0801E1E0 @ =gUnknown_081D9AC6 + ldr r1, _0801E1DC @ =gBattlescriptCurrInstr + ldr r0, _0801E1E0 @ =BattleScript_HangedOnMsg b _0801E20A .align 2, 0 -_0801E1CC: .4byte gUnknown_02024C04 +_0801E1CC: .4byte gLastUsedItem _0801E1D0: .4byte gBattleMons -_0801E1D4: .4byte gEnemyMonIndex -_0801E1D8: .4byte gUnknown_02024C0B -_0801E1DC: .4byte gUnknown_02024C10 -_0801E1E0: .4byte gUnknown_081D9AC6 +_0801E1D4: .4byte gBankTarget +_0801E1D8: .4byte gStringBank +_0801E1DC: .4byte gBattlescriptCurrInstr +_0801E1E0: .4byte BattleScript_HangedOnMsg _0801E1E4: movs r0, 0x20 ands r0, r5 @@ -4725,11 +4725,11 @@ _0801E1F6: beq _0801E204 _0801E1FA: adds r0, r3, 0 - ldr r1, _0801E214 @ =gPlayerMonIndex + ldr r1, _0801E214 @ =gBankAttacker ldrb r1, [r1] - bl b_std_message + bl PrepareStringBattle _0801E204: - ldr r1, _0801E218 @ =gUnknown_02024C10 + ldr r1, _0801E218 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 _0801E20A: @@ -4739,30 +4739,30 @@ _0801E20C: pop {r0} bx r0 .align 2, 0 -_0801E214: .4byte gPlayerMonIndex -_0801E218: .4byte gUnknown_02024C10 +_0801E214: .4byte gBankAttacker +_0801E218: .4byte gBattlescriptCurrInstr thumb_func_end atk0F_resultmessage thumb_func_start atk10_printstring atk10_printstring: @ 801E21C push {r4,lr} - ldr r0, _0801E24C @ =gUnknown_02024A64 + ldr r0, _0801E24C @ =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 bne _0801E246 - ldr r4, _0801E250 @ =gUnknown_02024C10 + ldr r4, _0801E250 @ =gBattlescriptCurrInstr ldr r1, [r4] ldrb r0, [r1, 0x1] ldrb r1, [r1, 0x2] lsls r1, 8 orrs r0, r1 - ldr r1, _0801E254 @ =gPlayerMonIndex + ldr r1, _0801E254 @ =gBankAttacker ldrb r1, [r1] - bl b_std_message + bl PrepareStringBattle ldr r0, [r4] adds r0, 0x3 str r0, [r4] - ldr r1, _0801E258 @ =gUnknown_02024D1E + ldr r1, _0801E258 @ =gBattleCommunication movs r0, 0x1 strb r0, [r1, 0x7] _0801E246: @@ -4770,73 +4770,73 @@ _0801E246: pop {r0} bx r0 .align 2, 0 -_0801E24C: .4byte gUnknown_02024A64 -_0801E250: .4byte gUnknown_02024C10 -_0801E254: .4byte gPlayerMonIndex -_0801E258: .4byte gUnknown_02024D1E +_0801E24C: .4byte gBattleExecBuffer +_0801E250: .4byte gBattlescriptCurrInstr +_0801E254: .4byte gBankAttacker +_0801E258: .4byte gBattleCommunication thumb_func_end atk10_printstring - thumb_func_start atk11_printstring2 -atk11_printstring2: @ 801E25C + thumb_func_start atk11_printstring_playeronly +atk11_printstring_playeronly: @ 801E25C push {r4,r5,lr} - ldr r5, _0801E290 @ =gUnknown_02024A60 - ldr r0, _0801E294 @ =gPlayerMonIndex + ldr r5, _0801E290 @ =gActiveBank + ldr r0, _0801E294 @ =gBankAttacker ldrb r0, [r0] strb r0, [r5] - ldr r4, _0801E298 @ =gUnknown_02024C10 + ldr r4, _0801E298 @ =gBattlescriptCurrInstr ldr r0, [r4] ldrb r1, [r0, 0x1] ldrb r0, [r0, 0x2] lsls r0, 8 orrs r1, r0 movs r0, 0 - bl dp01_build_cmdbuf_x11_TODO + bl EmitPrintStringPlayerOnly ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution ldr r0, [r4] adds r0, 0x3 str r0, [r4] - ldr r1, _0801E29C @ =gUnknown_02024D1E + ldr r1, _0801E29C @ =gBattleCommunication movs r0, 0x1 strb r0, [r1, 0x7] pop {r4,r5} pop {r0} bx r0 .align 2, 0 -_0801E290: .4byte gUnknown_02024A60 -_0801E294: .4byte gPlayerMonIndex -_0801E298: .4byte gUnknown_02024C10 -_0801E29C: .4byte gUnknown_02024D1E - thumb_func_end atk11_printstring2 +_0801E290: .4byte gActiveBank +_0801E294: .4byte gBankAttacker +_0801E298: .4byte gBattlescriptCurrInstr +_0801E29C: .4byte gBattleCommunication + thumb_func_end atk11_printstring_playeronly thumb_func_start atk12_waitmessage atk12_waitmessage: @ 801E2A0 push {r4-r6,lr} - ldr r0, _0801E2BC @ =gUnknown_02024A64 + ldr r0, _0801E2BC @ =gBattleExecBuffer ldr r4, [r0] cmp r4, 0 bne _0801E2EE - ldr r6, _0801E2C0 @ =gUnknown_02024D1E + ldr r6, _0801E2C0 @ =gBattleCommunication ldrb r0, [r6, 0x7] cmp r0, 0 bne _0801E2C8 - ldr r1, _0801E2C4 @ =gUnknown_02024C10 + ldr r1, _0801E2C4 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x3 str r0, [r1] b _0801E2EE .align 2, 0 -_0801E2BC: .4byte gUnknown_02024A64 -_0801E2C0: .4byte gUnknown_02024D1E -_0801E2C4: .4byte gUnknown_02024C10 +_0801E2BC: .4byte gBattleExecBuffer +_0801E2C0: .4byte gBattleCommunication +_0801E2C4: .4byte gBattlescriptCurrInstr _0801E2C8: - ldr r5, _0801E2F4 @ =gUnknown_02024C10 + ldr r5, _0801E2F4 @ =gBattlescriptCurrInstr ldr r2, [r5] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 - ldr r3, _0801E2F8 @ =gUnknown_02024D18 + ldr r3, _0801E2F8 @ =gPauseCounterBattle ldrh r0, [r3] adds r0, 0x1 strh r0, [r3] @@ -4854,18 +4854,18 @@ _0801E2EE: pop {r0} bx r0 .align 2, 0 -_0801E2F4: .4byte gUnknown_02024C10 -_0801E2F8: .4byte gUnknown_02024D18 +_0801E2F4: .4byte gBattlescriptCurrInstr +_0801E2F8: .4byte gPauseCounterBattle thumb_func_end atk12_waitmessage thumb_func_start atk13_printfromtable atk13_printfromtable: @ 801E2FC push {r4,r5,lr} - ldr r0, _0801E340 @ =gUnknown_02024A64 + ldr r0, _0801E340 @ =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 bne _0801E33A - ldr r4, _0801E344 @ =gUnknown_02024C10 + ldr r4, _0801E344 @ =gBattlescriptCurrInstr ldr r2, [r4] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -4877,14 +4877,14 @@ atk13_printfromtable: @ 801E2FC ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 - ldr r5, _0801E348 @ =gUnknown_02024D1E + ldr r5, _0801E348 @ =gBattleCommunication ldrb r0, [r5, 0x5] lsls r0, 1 adds r1, r0 ldrh r0, [r1] - ldr r1, _0801E34C @ =gPlayerMonIndex + ldr r1, _0801E34C @ =gBankAttacker ldrb r1, [r1] - bl b_std_message + bl PrepareStringBattle ldr r0, [r4] adds r0, 0x5 str r0, [r4] @@ -4895,20 +4895,20 @@ _0801E33A: pop {r0} bx r0 .align 2, 0 -_0801E340: .4byte gUnknown_02024A64 -_0801E344: .4byte gUnknown_02024C10 -_0801E348: .4byte gUnknown_02024D1E -_0801E34C: .4byte gPlayerMonIndex +_0801E340: .4byte gBattleExecBuffer +_0801E344: .4byte gBattlescriptCurrInstr +_0801E348: .4byte gBattleCommunication +_0801E34C: .4byte gBankAttacker thumb_func_end atk13_printfromtable - thumb_func_start atk14_printfromtable2 -atk14_printfromtable2: @ 801E350 + thumb_func_start atk14_printfromtable_playeronly +atk14_printfromtable_playeronly: @ 801E350 push {r4-r6,lr} - ldr r0, _0801E3A0 @ =gUnknown_02024A64 + ldr r0, _0801E3A0 @ =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 bne _0801E39A - ldr r5, _0801E3A4 @ =gUnknown_02024C10 + ldr r5, _0801E3A4 @ =gBattlescriptCurrInstr ldr r2, [r5] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -4920,19 +4920,19 @@ atk14_printfromtable2: @ 801E350 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 - ldr r6, _0801E3A8 @ =gUnknown_02024D1E + ldr r6, _0801E3A8 @ =gBattleCommunication ldrb r0, [r6, 0x5] lsls r0, 1 adds r1, r0 - ldr r4, _0801E3AC @ =gUnknown_02024A60 - ldr r0, _0801E3B0 @ =gPlayerMonIndex + ldr r4, _0801E3AC @ =gActiveBank + ldr r0, _0801E3B0 @ =gBankAttacker ldrb r0, [r0] strb r0, [r4] ldrh r1, [r1] movs r0, 0 - bl dp01_build_cmdbuf_x11_TODO + bl EmitPrintStringPlayerOnly ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution ldr r0, [r5] adds r0, 0x5 str r0, [r5] @@ -4943,12 +4943,12 @@ _0801E39A: pop {r0} bx r0 .align 2, 0 -_0801E3A0: .4byte gUnknown_02024A64 -_0801E3A4: .4byte gUnknown_02024C10 -_0801E3A8: .4byte gUnknown_02024D1E -_0801E3AC: .4byte gUnknown_02024A60 -_0801E3B0: .4byte gPlayerMonIndex - thumb_func_end atk14_printfromtable2 +_0801E3A0: .4byte gBattleExecBuffer +_0801E3A4: .4byte gBattlescriptCurrInstr +_0801E3A8: .4byte gBattleCommunication +_0801E3AC: .4byte gActiveBank +_0801E3B0: .4byte gBankAttacker + thumb_func_end atk14_printfromtable_playeronly thumb_func_start sub_801E3B4 sub_801E3B4: @ 801E3B4 @@ -4956,11 +4956,11 @@ sub_801E3B4: @ 801E3B4 lsls r0, 24 lsrs r2, r0, 24 movs r1, 0 - ldr r0, _0801E3E4 @ =gUnknown_02024A68 + ldr r0, _0801E3E4 @ =gNoOfAllBanks ldrb r3, [r0] cmp r1, r3 bge _0801E3DA - ldr r4, _0801E3E8 @ =gUnknown_02024A7A + ldr r4, _0801E3E8 @ =gTurnOrder ldrb r0, [r4] cmp r0, r2 beq _0801E3DA @@ -4979,8 +4979,8 @@ _0801E3DA: pop {r1} bx r1 .align 2, 0 -_0801E3E4: .4byte gUnknown_02024A68 -_0801E3E8: .4byte gUnknown_02024A7A +_0801E3E4: .4byte gNoOfAllBanks +_0801E3E8: .4byte gTurnOrder thumb_func_end sub_801E3B4 thumb_func_start sub_801E3EC @@ -5000,15 +5000,15 @@ sub_801E3EC: @ 801E3EC movs r6, 0 movs r1, 0x1 str r1, [sp, 0x4] - ldr r1, _0801E430 @ =gUnknown_02024D1E + ldr r1, _0801E430 @ =gBattleCommunication ldrb r3, [r1, 0x3] movs r0, 0x40 ands r0, r3 adds r7, r1, 0 cmp r0, 0 beq _0801E444 - ldr r2, _0801E434 @ =gUnknown_02024C0A - ldr r0, _0801E438 @ =gPlayerMonIndex + ldr r2, _0801E434 @ =gEffectBank + ldr r0, _0801E438 @ =gBankAttacker ldrb r0, [r0] strb r0, [r2] movs r0, 0xBF @@ -5016,21 +5016,21 @@ sub_801E3EC: @ 801E3EC strb r0, [r7, 0x3] movs r6, 0x40 ldr r0, _0801E43C @ =0x02000000 - ldr r1, _0801E440 @ =gEnemyMonIndex + ldr r1, _0801E440 @ =gBankTarget b _0801E450 .align 2, 0 -_0801E430: .4byte gUnknown_02024D1E -_0801E434: .4byte gUnknown_02024C0A -_0801E438: .4byte gPlayerMonIndex +_0801E430: .4byte gBattleCommunication +_0801E434: .4byte gEffectBank +_0801E438: .4byte gBankAttacker _0801E43C: .4byte 0x02000000 -_0801E440: .4byte gEnemyMonIndex +_0801E440: .4byte gBankTarget _0801E444: - ldr r2, _0801E538 @ =gUnknown_02024C0A - ldr r0, _0801E53C @ =gEnemyMonIndex + ldr r2, _0801E538 @ =gEffectBank + ldr r0, _0801E53C @ =gBankTarget ldrb r0, [r0] strb r0, [r2] ldr r0, _0801E540 @ =0x02000000 - ldr r1, _0801E544 @ =gPlayerMonIndex + ldr r1, _0801E544 @ =gBankAttacker _0801E450: ldrb r1, [r1] ldr r3, _0801E548 @ =0x00016003 @@ -5047,7 +5047,7 @@ _0801E450: ldrb r0, [r0] cmp r0, 0x13 bne _0801E48A - ldr r0, _0801E550 @ =gUnknown_02024C6C + ldr r0, _0801E550 @ =gHitMarker ldr r0, [r0] movs r1, 0x80 lsls r1, 6 @@ -5063,8 +5063,8 @@ _0801E450: _0801E48A: mov r1, r8 ldrb r0, [r1] - bl battle_get_per_side_status - ldr r2, _0801E554 @ =gUnknown_02024C7A + bl GetBankIdentity + ldr r2, _0801E554 @ =gSideAffecting movs r1, 0x1 ands r1, r0 lsls r1, 1 @@ -5074,7 +5074,7 @@ _0801E48A: ands r0, r1 cmp r0, 0 beq _0801E4C4 - ldr r0, _0801E550 @ =gUnknown_02024C6C + ldr r0, _0801E550 @ =gHitMarker ldr r0, [r0] movs r1, 0x80 lsls r1, 6 @@ -5083,14 +5083,14 @@ _0801E48A: bne _0801E4C4 cmp r4, 0 bne _0801E4C4 - ldr r0, _0801E558 @ =gUnknown_02024D1E + ldr r0, _0801E558 @ =gBattleCommunication ldrb r0, [r0, 0x3] cmp r0, 0x7 bhi _0801E4C4 bl _0801F5DC _0801E4C4: ldr r3, _0801E54C @ =gBattleMons - ldr r2, _0801E538 @ =gUnknown_02024C0A + ldr r2, _0801E538 @ =gEffectBank ldrb r1, [r2] movs r0, 0x58 muls r0, r1 @@ -5100,7 +5100,7 @@ _0801E4C4: mov r9, r3 cmp r0, 0 bne _0801E4EA - ldr r0, _0801E558 @ =gUnknown_02024D1E + ldr r0, _0801E558 @ =gBattleCommunication ldrb r0, [r0, 0x3] cmp r0, 0xB beq _0801E4EA @@ -5125,14 +5125,14 @@ _0801E4EA: beq _0801E50C bl _0801F5DC _0801E50C: - ldr r0, _0801E558 @ =gUnknown_02024D1E + ldr r0, _0801E558 @ =gBattleCommunication ldrb r1, [r0, 0x3] adds r7, r0, 0 cmp r1, 0x6 bls _0801E518 b _0801EB4A _0801E518: - ldr r1, _0801E55C @ =gUnknown_081FAB5C + ldr r1, _0801E55C @ =gStatusFlagsForMoveEffects ldrb r0, [r7, 0x3] lsls r0, 2 adds r0, r1 @@ -5151,16 +5151,16 @@ _0801E528: _0801E536: b _0801EA14 .align 2, 0 -_0801E538: .4byte gUnknown_02024C0A -_0801E53C: .4byte gEnemyMonIndex +_0801E538: .4byte gEffectBank +_0801E53C: .4byte gBankTarget _0801E540: .4byte 0x02000000 -_0801E544: .4byte gPlayerMonIndex +_0801E544: .4byte gBankAttacker _0801E548: .4byte 0x00016003 _0801E54C: .4byte gBattleMons -_0801E550: .4byte gUnknown_02024C6C -_0801E554: .4byte gUnknown_02024C7A -_0801E558: .4byte gUnknown_02024D1E -_0801E55C: .4byte gUnknown_081FAB5C +_0801E550: .4byte gHitMarker +_0801E554: .4byte gSideAffecting +_0801E558: .4byte gBattleCommunication +_0801E55C: .4byte gStatusFlagsForMoveEffects _0801E560: cmp r0, 0x40 bne _0801E566 @@ -5189,10 +5189,10 @@ _0801E57A: ldrb r0, [r0] cmp r0, 0x2B beq _0801E5DC - ldr r0, _0801E5D4 @ =gUnknown_02024A60 + ldr r0, _0801E5D4 @ =gActiveBank movs r1, 0 strb r1, [r0] - ldr r1, _0801E5D8 @ =gUnknown_02024A68 + ldr r1, _0801E5D8 @ =gNoOfAllBanks ldrb r3, [r1] adds r7, r0, 0 mov r12, r1 @@ -5226,11 +5226,11 @@ _0801E5B4: beq _0801E5B4 b _0801E5E8 .align 2, 0 -_0801E5D4: .4byte gUnknown_02024A60 -_0801E5D8: .4byte gUnknown_02024A68 +_0801E5D4: .4byte gActiveBank +_0801E5D8: .4byte gNoOfAllBanks _0801E5DC: - ldr r0, _0801E628 @ =gUnknown_02024A60 - ldr r2, _0801E62C @ =gUnknown_02024A68 + ldr r0, _0801E628 @ =gActiveBank + ldr r2, _0801E62C @ =gNoOfAllBanks ldrb r1, [r2] strb r1, [r0] adds r7, r0, 0 @@ -5269,11 +5269,11 @@ _0801E61A: b _0801EA14 _0801E620: adds r0, r2, 0 - bl b_cancel_multi_turn_move_maybe + bl CancelMultiTurnMoves b _0801EA04 .align 2, 0 -_0801E628: .4byte gUnknown_02024A60 -_0801E62C: .4byte gUnknown_02024A68 +_0801E628: .4byte gActiveBank +_0801E62C: .4byte gNoOfAllBanks _0801E630: mov r2, r8 ldrb r1, [r2] @@ -5289,20 +5289,20 @@ _0801E630: cmp r5, 0x80 bne _0801E688 _0801E64A: - ldr r0, _0801E678 @ =byte_2024C06 + ldr r0, _0801E678 @ =gLastUsedAbility strb r1, [r0] mov r3, r8 ldrb r0, [r3] movs r1, 0x11 bl sub_81074C4 - ldr r4, _0801E67C @ =gUnknown_02024C10 + ldr r4, _0801E67C @ =gBattlescriptCurrInstr ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push - ldr r0, _0801E680 @ =BattleScript_1D98BD + ldr r0, _0801E680 @ =BattleScript_PSNPrevention _0801E664: str r0, [r4] - ldr r2, _0801E684 @ =gUnknown_02024C6C + ldr r2, _0801E684 @ =gHitMarker ldr r1, [r2] movs r0, 0x80 lsls r0, 6 @@ -5313,10 +5313,10 @@ _0801E664: _0801E676: b _0801E94C .align 2, 0 -_0801E678: .4byte byte_2024C06 -_0801E67C: .4byte gUnknown_02024C10 -_0801E680: .4byte BattleScript_1D98BD -_0801E684: .4byte gUnknown_02024C6C +_0801E678: .4byte gLastUsedAbility +_0801E67C: .4byte gBattlescriptCurrInstr +_0801E680: .4byte BattleScript_PSNPrevention +_0801E684: .4byte gHitMarker _0801E688: mov r1, r8 ldrb r0, [r1] @@ -5337,7 +5337,7 @@ _0801E688: cmp r0, 0x8 bne _0801E6C6 _0801E6AC: - ldr r0, _0801E710 @ =gUnknown_02024C6C + ldr r0, _0801E710 @ =gHitMarker ldr r0, [r0] movs r1, 0x80 lsls r1, 6 @@ -5396,7 +5396,7 @@ _0801E702: _0801E70E: b _0801EA04 .align 2, 0 -_0801E710: .4byte gUnknown_02024C6C +_0801E710: .4byte gHitMarker _0801E714: mov r2, r8 ldrb r1, [r2] @@ -5412,22 +5412,22 @@ _0801E714: cmp r5, 0x80 bne _0801E758 _0801E72E: - ldr r0, _0801E74C @ =byte_2024C06 + ldr r0, _0801E74C @ =gLastUsedAbility strb r1, [r0] mov r3, r8 ldrb r0, [r3] movs r1, 0x29 bl sub_81074C4 - ldr r4, _0801E750 @ =gUnknown_02024C10 + ldr r4, _0801E750 @ =gBattlescriptCurrInstr ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push - ldr r0, _0801E754 @ =BattleScript_1D98A5 + ldr r0, _0801E754 @ =BattleScript_BRNPrevention b _0801E664 .align 2, 0 -_0801E74C: .4byte byte_2024C06 -_0801E750: .4byte gUnknown_02024C10 -_0801E754: .4byte BattleScript_1D98A5 +_0801E74C: .4byte gLastUsedAbility +_0801E750: .4byte gBattlescriptCurrInstr +_0801E754: .4byte BattleScript_BRNPrevention _0801E758: mov r0, r8 ldrb r1, [r0] @@ -5446,7 +5446,7 @@ _0801E758: cmp r0, 0xA bne _0801E7A8 _0801E778: - ldr r0, _0801E79C @ =gUnknown_02024C6C + ldr r0, _0801E79C @ =gHitMarker ldr r0, [r0] movs r1, 0x80 lsls r1, 6 @@ -5458,16 +5458,16 @@ _0801E778: cmp r5, 0x80 bne _0801E7A8 _0801E78E: - ldr r4, _0801E7A0 @ =gUnknown_02024C10 + ldr r4, _0801E7A0 @ =gBattlescriptCurrInstr ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push - ldr r0, _0801E7A4 @ =BattleScript_1D98A5 + ldr r0, _0801E7A4 @ =BattleScript_BRNPrevention b _0801E998 .align 2, 0 -_0801E79C: .4byte gUnknown_02024C6C -_0801E7A0: .4byte gUnknown_02024C10 -_0801E7A4: .4byte BattleScript_1D98A5 +_0801E79C: .4byte gHitMarker +_0801E7A0: .4byte gBattlescriptCurrInstr +_0801E7A4: .4byte BattleScript_BRNPrevention _0801E7A8: mov r3, r8 ldrb r0, [r3] @@ -5513,7 +5513,7 @@ _0801E7EA: movs r1, 0 movs r2, 0xD movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 lsrs r0, 24 cmp r0, 0 @@ -5523,7 +5523,7 @@ _0801E7EA: movs r1, 0 movs r2, 0x4D movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 bne _0801E826 @@ -5537,7 +5537,7 @@ _0801E7EA: str r1, [sp, 0x4] _0801E826: ldr r4, _0801E880 @ =gBattleMons - ldr r0, _0801E884 @ =gUnknown_02024C0A + ldr r0, _0801E884 @ =gEffectBank ldrb r3, [r0] movs r0, 0x58 adds r2, r3, 0 @@ -5578,14 +5578,14 @@ _0801E862: b _0801EA14 _0801E86E: adds r0, r3, 0 - bl b_cancel_multi_turn_move_maybe + bl CancelMultiTurnMoves movs r3, 0x1 mov r10, r3 b _0801EA14 .align 2, 0 _0801E87C: .4byte gBattleWeather _0801E880: .4byte gBattleMons -_0801E884: .4byte gUnknown_02024C0A +_0801E884: .4byte gEffectBank _0801E888: mov r0, r8 ldrb r1, [r0] @@ -5603,22 +5603,22 @@ _0801E888: beq _0801E8A6 b _0801EA14 _0801E8A6: - ldr r0, _0801E8C4 @ =byte_2024C06 + ldr r0, _0801E8C4 @ =gLastUsedAbility strb r2, [r0] mov r3, r8 ldrb r0, [r3] movs r1, 0x7 bl sub_81074C4 - ldr r4, _0801E8C8 @ =gUnknown_02024C10 + ldr r4, _0801E8C8 @ =gBattlescriptCurrInstr ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push - ldr r0, _0801E8CC @ =BattleScript_1D98B1 + ldr r0, _0801E8CC @ =BattleScript_PRLZPrevention b _0801E664 .align 2, 0 -_0801E8C4: .4byte byte_2024C06 -_0801E8C8: .4byte gUnknown_02024C10 -_0801E8CC: .4byte BattleScript_1D98B1 +_0801E8C4: .4byte gLastUsedAbility +_0801E8C8: .4byte gBattlescriptCurrInstr +_0801E8CC: .4byte BattleScript_PRLZPrevention _0801E8D0: mov r0, r9 adds r0, 0x4C @@ -5646,19 +5646,19 @@ _0801E8E4: cmp r5, 0x80 bne _0801E952 _0801E8FE: - ldr r0, _0801E938 @ =byte_2024C06 + ldr r0, _0801E938 @ =gLastUsedAbility strb r1, [r0] mov r1, r8 ldrb r0, [r1] movs r1, 0x11 bl sub_81074C4 - ldr r4, _0801E93C @ =gUnknown_02024C10 + ldr r4, _0801E93C @ =gBattlescriptCurrInstr ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push - ldr r0, _0801E940 @ =BattleScript_1D98BD + ldr r0, _0801E940 @ =BattleScript_PSNPrevention str r0, [r4] - ldr r2, _0801E944 @ =gUnknown_02024C6C + ldr r2, _0801E944 @ =gHitMarker ldr r1, [r2] movs r0, 0x80 lsls r0, 6 @@ -5673,10 +5673,10 @@ _0801E928: str r1, [r2] bl _0801F5FA .align 2, 0 -_0801E938: .4byte byte_2024C06 -_0801E93C: .4byte gUnknown_02024C10 -_0801E940: .4byte BattleScript_1D98BD -_0801E944: .4byte gUnknown_02024C6C +_0801E938: .4byte gLastUsedAbility +_0801E93C: .4byte gBattlescriptCurrInstr +_0801E940: .4byte BattleScript_PSNPrevention +_0801E944: .4byte gHitMarker _0801E948: .4byte 0xffffdfff _0801E94C: strb r0, [r7, 0x5] @@ -5701,7 +5701,7 @@ _0801E952: cmp r0, 0x8 bne _0801E9B4 _0801E976: - ldr r0, _0801E9A4 @ =gUnknown_02024C6C + ldr r0, _0801E9A4 @ =gHitMarker ldr r0, [r0] movs r1, 0x80 lsls r1, 6 @@ -5713,22 +5713,22 @@ _0801E976: cmp r5, 0x80 bne _0801E9B4 _0801E98C: - ldr r4, _0801E9A8 @ =gUnknown_02024C10 + ldr r4, _0801E9A8 @ =gBattlescriptCurrInstr ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push - ldr r0, _0801E9AC @ =BattleScript_1D98BD + ldr r0, _0801E9AC @ =BattleScript_PSNPrevention _0801E998: str r0, [r4] - ldr r1, _0801E9B0 @ =gUnknown_02024D1E + ldr r1, _0801E9B0 @ =gBattleCommunication movs r0, 0x2 strb r0, [r1, 0x5] bl _0801F5FA .align 2, 0 -_0801E9A4: .4byte gUnknown_02024C6C -_0801E9A8: .4byte gUnknown_02024C10 -_0801E9AC: .4byte BattleScript_1D98BD -_0801E9B0: .4byte gUnknown_02024D1E +_0801E9A4: .4byte gHitMarker +_0801E9A8: .4byte gBattlescriptCurrInstr +_0801E9AC: .4byte BattleScript_PSNPrevention +_0801E9B0: .4byte gBattleCommunication _0801E9B4: mov r3, r8 ldrb r0, [r3] @@ -5786,12 +5786,12 @@ _0801EA14: beq _0801EA1C b _0801EB3C _0801EA1C: - ldr r0, _0801EA5C @ =gUnknown_02024C10 + ldr r0, _0801EA5C @ =gBattlescriptCurrInstr ldr r0, [r0] adds r0, 0x1 bl b_movescr_stack_push - ldr r1, _0801EA60 @ =gUnknown_081FAB5C - ldr r0, _0801EA64 @ =gUnknown_02024D1E + ldr r1, _0801EA60 @ =gStatusFlagsForMoveEffects + ldr r0, _0801EA64 @ =gBattleCommunication ldrb r0, [r0, 0x3] lsls r0, 2 adds r0, r1 @@ -5800,7 +5800,7 @@ _0801EA1C: bne _0801EA70 bl Random ldr r2, _0801EA68 @ =gBattleMons - ldr r1, _0801EA6C @ =gUnknown_02024C0A + ldr r1, _0801EA6C @ =gEffectBank ldrb r3, [r1] movs r1, 0x58 muls r3, r1 @@ -5815,14 +5815,14 @@ _0801EA1C: b _0801EA84 .align 2, 0 _0801EA58: .4byte gBattleMoveFlags -_0801EA5C: .4byte gUnknown_02024C10 -_0801EA60: .4byte gUnknown_081FAB5C -_0801EA64: .4byte gUnknown_02024D1E +_0801EA5C: .4byte gBattlescriptCurrInstr +_0801EA60: .4byte gStatusFlagsForMoveEffects +_0801EA64: .4byte gBattleCommunication _0801EA68: .4byte gBattleMons -_0801EA6C: .4byte gUnknown_02024C0A +_0801EA6C: .4byte gEffectBank _0801EA70: ldr r2, _0801EAD4 @ =gBattleMons - ldr r0, _0801EAD8 @ =gUnknown_02024C0A + ldr r0, _0801EAD8 @ =gEffectBank ldrb r1, [r0] movs r0, 0x58 muls r1, r0 @@ -5832,16 +5832,16 @@ _0801EA70: orrs r0, r3 str r0, [r1] _0801EA84: - ldr r2, _0801EADC @ =gUnknown_02024C10 - ldr r1, _0801EAE0 @ =gUnknown_081FAC4C - ldr r5, _0801EAE4 @ =gUnknown_02024D1E + ldr r2, _0801EADC @ =gBattlescriptCurrInstr + ldr r1, _0801EAE0 @ =gMoveEffectBS_Ptrs + ldr r5, _0801EAE4 @ =gBattleCommunication ldrb r0, [r5, 0x3] lsls r0, 2 adds r0, r1 ldr r0, [r0] str r0, [r2] - ldr r4, _0801EAE8 @ =gUnknown_02024A60 - ldr r1, _0801EAD8 @ =gUnknown_02024C0A + ldr r4, _0801EAE8 @ =gActiveBank + ldr r1, _0801EAD8 @ =gEffectBank ldrb r0, [r1] strb r0, [r4] ldrb r1, [r1] @@ -5854,10 +5854,10 @@ _0801EA84: movs r1, 0x28 movs r2, 0 movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs + bl EmitSetAttributes ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r2, _0801EAF0 @ =gUnknown_02024C6C + bl MarkBufferBankForExecution + ldr r2, _0801EAF0 @ =gHitMarker ldr r1, [r2] movs r0, 0x80 lsls r0, 6 @@ -5872,18 +5872,18 @@ _0801EA84: b _0801EAFA .align 2, 0 _0801EAD4: .4byte gBattleMons -_0801EAD8: .4byte gUnknown_02024C0A -_0801EADC: .4byte gUnknown_02024C10 -_0801EAE0: .4byte gUnknown_081FAC4C -_0801EAE4: .4byte gUnknown_02024D1E -_0801EAE8: .4byte gUnknown_02024A60 +_0801EAD8: .4byte gEffectBank +_0801EADC: .4byte gBattlescriptCurrInstr +_0801EAE0: .4byte gMoveEffectBS_Ptrs +_0801EAE4: .4byte gBattleCommunication +_0801EAE8: .4byte gActiveBank _0801EAEC: .4byte gUnknown_02024ACC -_0801EAF0: .4byte gUnknown_02024C6C +_0801EAF0: .4byte gHitMarker _0801EAF4: .4byte 0xffffdfff _0801EAF8: strb r0, [r5, 0x5] _0801EAFA: - ldr r0, _0801EB2C @ =gUnknown_02024D1E + ldr r0, _0801EB2C @ =gBattleCommunication ldrb r2, [r0, 0x3] adds r7, r0, 0 cmp r2, 0x2 @@ -5901,16 +5901,16 @@ _0801EB14: ldr r2, _0801EB34 @ =0x000160ca adds r0, r2 strb r1, [r0] - ldr r2, _0801EB38 @ =gUnknown_02024C6C + ldr r2, _0801EB38 @ =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 7 bl _0801F4F2 .align 2, 0 -_0801EB2C: .4byte gUnknown_02024D1E +_0801EB2C: .4byte gBattleCommunication _0801EB30: .4byte 0x02000000 _0801EB34: .4byte 0x000160ca -_0801EB38: .4byte gUnknown_02024C6C +_0801EB38: .4byte gHitMarker _0801EB3C: mov r3, r10 cmp r3, 0 @@ -5926,7 +5926,7 @@ _0801EB4A: mov r0, r9 adds r0, 0x50 adds r1, r0 - ldr r2, _0801EB84 @ =gUnknown_081FAB5C + ldr r2, _0801EB84 @ =gStatusFlagsForMoveEffects ldrb r3, [r7, 0x3] lsls r0, r3, 2 adds r0, r2 @@ -5948,7 +5948,7 @@ _0801EB78: ldr r0, [r0] mov pc, r0 .align 2, 0 -_0801EB84: .4byte gUnknown_081FAB5C +_0801EB84: .4byte gStatusFlagsForMoveEffects _0801EB88: .4byte _0801EB8C .align 2, 0 _0801EB8C: @@ -6044,21 +6044,21 @@ _0801EC8E: ldr r0, [r2] orrs r0, r1 str r0, [r2] - ldr r4, _0801ECC8 @ =gUnknown_02024C10 + ldr r4, _0801ECC8 @ =gBattlescriptCurrInstr ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push - ldr r1, _0801ECCC @ =gUnknown_081FAC4C - ldr r0, _0801ECD0 @ =gUnknown_02024D1E + ldr r1, _0801ECCC @ =gMoveEffectBS_Ptrs + ldr r0, _0801ECD0 @ =gBattleCommunication ldrb r0, [r0, 0x3] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _0801F5F8 .align 2, 0 -_0801ECC8: .4byte gUnknown_02024C10 -_0801ECCC: .4byte gUnknown_081FAC4C -_0801ECD0: .4byte gUnknown_02024D1E +_0801ECC8: .4byte gBattlescriptCurrInstr +_0801ECCC: .4byte gMoveEffectBS_Ptrs +_0801ECD0: .4byte gBattleCommunication _0801ECD4: mov r0, r8 ldrb r2, [r0] @@ -6076,24 +6076,24 @@ _0801ECD4: beq _0801ECF4 bl _0801F5DC _0801ECF4: - ldr r0, _0801ED0C @ =byte_2024C06 + ldr r0, _0801ED0C @ =gLastUsedAbility strb r1, [r0] mov r1, r8 ldrb r0, [r1] movs r1, 0x27 bl sub_81074C4 - ldr r1, _0801ED10 @ =gUnknown_02024C10 - ldr r0, _0801ED14 @ =gUnknown_081D98D7 + ldr r1, _0801ED10 @ =gBattlescriptCurrInstr + ldr r0, _0801ED14 @ =BattleScript_FlinchPrevention str r0, [r1] bl _0801F5FA .align 2, 0 -_0801ED0C: .4byte byte_2024C06 -_0801ED10: .4byte gUnknown_02024C10 -_0801ED14: .4byte gUnknown_081D98D7 +_0801ED0C: .4byte gLastUsedAbility +_0801ED10: .4byte gBattlescriptCurrInstr +_0801ED14: .4byte BattleScript_FlinchPrevention _0801ED18: adds r0, r2, 0 bl sub_801E3B4 - ldr r1, _0801ED54 @ =gUnknown_02024A7E + ldr r1, _0801ED54 @ =gCurrentMoveTurn lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] @@ -6108,8 +6108,8 @@ _0801ED2E: mov r0, r9 adds r0, 0x50 adds r2, r0 - ldr r1, _0801ED58 @ =gUnknown_081FAB5C - ldr r0, _0801ED5C @ =gUnknown_02024D1E + ldr r1, _0801ED58 @ =gStatusFlagsForMoveEffects + ldr r0, _0801ED5C @ =gBattleCommunication ldrb r0, [r0, 0x3] lsls r0, 2 adds r0, r1 @@ -6119,9 +6119,9 @@ _0801ED2E: str r1, [r2] bl _0801F5DC .align 2, 0 -_0801ED54: .4byte gUnknown_02024A7E -_0801ED58: .4byte gUnknown_081FAB5C -_0801ED5C: .4byte gUnknown_02024D1E +_0801ED54: .4byte gCurrentMoveTurn +_0801ED58: .4byte gStatusFlagsForMoveEffects +_0801ED5C: .4byte gBattleCommunication _0801ED60: mov r3, r8 ldrb r0, [r3] @@ -6141,11 +6141,11 @@ _0801ED7C: lsls r0, 5 orrs r1, r0 str r1, [r2] - ldr r1, _0801EDC8 @ =gUnknown_02024C54 + ldr r1, _0801EDC8 @ =gLockedMove ldrb r0, [r3] lsls r0, 1 adds r0, r1 - ldr r1, _0801EDCC @ =gUnknown_02024BE6 + ldr r1, _0801EDCC @ =gCurrentMove ldrh r1, [r1] strh r1, [r0] bl Random @@ -6161,32 +6161,32 @@ _0801ED7C: ldr r0, [r2] orrs r0, r1 str r0, [r2] - ldr r4, _0801EDD0 @ =gUnknown_02024C10 + ldr r4, _0801EDD0 @ =gBattlescriptCurrInstr ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push - ldr r1, _0801EDD4 @ =gUnknown_081FAC4C - ldr r0, _0801EDD8 @ =gUnknown_02024D1E + ldr r1, _0801EDD4 @ =gMoveEffectBS_Ptrs + ldr r0, _0801EDD8 @ =gBattleCommunication ldrb r0, [r0, 0x3] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _0801F5F8 .align 2, 0 -_0801EDC8: .4byte gUnknown_02024C54 -_0801EDCC: .4byte gUnknown_02024BE6 -_0801EDD0: .4byte gUnknown_02024C10 -_0801EDD4: .4byte gUnknown_081FAC4C -_0801EDD8: .4byte gUnknown_02024D1E +_0801EDC8: .4byte gLockedMove +_0801EDCC: .4byte gCurrentMove +_0801EDD0: .4byte gBattlescriptCurrInstr +_0801EDD4: .4byte gMoveEffectBS_Ptrs +_0801EDD8: .4byte gBattleCommunication _0801EDDC: - ldr r5, _0801EE30 @ =gPlayerMonIndex + ldr r5, _0801EE30 @ =gBankAttacker ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity movs r1, 0x1 ands r1, r0 cmp r1, 0 bne _0801EE14 - ldr r4, _0801EE34 @ =gUnknown_02024D1A + ldr r4, _0801EE34 @ =gPaydayMoney ldrh r3, [r4] ldr r2, _0801EE38 @ =gBattleMons ldrb r1, [r5] @@ -6207,25 +6207,25 @@ _0801EDDC: adds r0, r3, 0 strh r0, [r4] _0801EE14: - ldr r4, _0801EE40 @ =gUnknown_02024C10 + ldr r4, _0801EE40 @ =gBattlescriptCurrInstr ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push - ldr r1, _0801EE44 @ =gUnknown_081FAC4C - ldr r0, _0801EE48 @ =gUnknown_02024D1E + ldr r1, _0801EE44 @ =gMoveEffectBS_Ptrs + ldr r0, _0801EE48 @ =gBattleCommunication ldrb r0, [r0, 0x3] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _0801F5F8 .align 2, 0 -_0801EE30: .4byte gPlayerMonIndex -_0801EE34: .4byte gUnknown_02024D1A +_0801EE30: .4byte gBankAttacker +_0801EE34: .4byte gPaydayMoney _0801EE38: .4byte gBattleMons _0801EE3C: .4byte 0x0000ffff -_0801EE40: .4byte gUnknown_02024C10 -_0801EE44: .4byte gUnknown_081FAC4C -_0801EE48: .4byte gUnknown_02024D1E +_0801EE40: .4byte gBattlescriptCurrInstr +_0801EE44: .4byte gMoveEffectBS_Ptrs +_0801EE48: .4byte gBattleCommunication _0801EE4C: mov r4, r8 ldrb r1, [r4] @@ -6240,7 +6240,7 @@ _0801EE4C: b _0801F5DC _0801EE62: bl Random - ldr r4, _0801EE80 @ =gUnknown_02024D1E + ldr r4, _0801EE80 @ =gBattleCommunication lsls r0, 16 lsrs r0, 16 movs r1, 0x3 @@ -6252,7 +6252,7 @@ _0801EE62: bl sub_801E3EC b _0801F5FA .align 2, 0 -_0801EE80: .4byte gUnknown_02024D1E +_0801EE80: .4byte gBattleCommunication _0801EE84: mov r0, r8 ldrb r1, [r0] @@ -6267,15 +6267,15 @@ _0801EE84: lsls r1, 5 orrs r0, r1 str r0, [r2] - ldr r1, _0801EEC0 @ =gUnknown_02024C54 + ldr r1, _0801EEC0 @ =gLockedMove mov r2, r8 ldrb r0, [r2] lsls r0, 1 adds r0, r1 - ldr r1, _0801EEC4 @ =gUnknown_02024BE6 + ldr r1, _0801EEC4 @ =gCurrentMove ldrh r1, [r1] strh r1, [r0] - ldr r0, _0801EEC8 @ =gUnknown_02024D28 + ldr r0, _0801EEC8 @ =gProtectStructs ldrb r1, [r2] lsls r1, 4 adds r1, r0 @@ -6285,9 +6285,9 @@ _0801EE84: strb r0, [r1, 0x1] b _0801F5DC .align 2, 0 -_0801EEC0: .4byte gUnknown_02024C54 -_0801EEC4: .4byte gUnknown_02024BE6 -_0801EEC8: .4byte gUnknown_02024D28 +_0801EEC0: .4byte gLockedMove +_0801EEC4: .4byte gCurrentMove +_0801EEC8: .4byte gProtectStructs _0801EECC: mov r3, r8 ldrb r0, [r3] @@ -6324,7 +6324,7 @@ _0801EEE8: ldr r4, _0801EF84 @ =0x00016004 adds r0, r4 adds r0, r2 - ldr r6, _0801EF88 @ =gUnknown_02024BE6 + ldr r6, _0801EF88 @ =gCurrentMove ldrh r1, [r6] strb r1, [r0] ldrb r0, [r3] @@ -6339,22 +6339,22 @@ _0801EEE8: ldr r3, _0801EF90 @ =0x00016020 adds r0, r3 adds r0, r2 - ldr r1, _0801EF94 @ =gPlayerMonIndex + ldr r1, _0801EF94 @ =gBankAttacker ldrb r1, [r1] strb r1, [r0] - ldr r4, _0801EF98 @ =gUnknown_02024C10 + ldr r4, _0801EF98 @ =gBattlescriptCurrInstr ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push - ldr r1, _0801EF9C @ =gUnknown_081FAC4C - ldr r2, _0801EFA0 @ =gUnknown_02024D1E + ldr r1, _0801EF9C @ =gMoveEffectBS_Ptrs + ldr r2, _0801EFA0 @ =gBattleCommunication ldrb r0, [r2, 0x3] lsls r0, 2 adds r0, r1 ldr r0, [r0] str r0, [r4] strb r5, [r2, 0x5] - ldr r1, _0801EFA4 @ =gUnknown_0840164C + ldr r1, _0801EFA4 @ =gTrappingMoves ldrh r0, [r1] ldrh r4, [r6] cmp r0, r4 @@ -6384,17 +6384,17 @@ _0801EF70: .align 2, 0 _0801EF80: .4byte 0x02000000 _0801EF84: .4byte 0x00016004 -_0801EF88: .4byte gUnknown_02024BE6 +_0801EF88: .4byte gCurrentMove _0801EF8C: .4byte 0x00016005 _0801EF90: .4byte 0x00016020 -_0801EF94: .4byte gPlayerMonIndex -_0801EF98: .4byte gUnknown_02024C10 -_0801EF9C: .4byte gUnknown_081FAC4C -_0801EFA0: .4byte gUnknown_02024D1E -_0801EFA4: .4byte gUnknown_0840164C +_0801EF94: .4byte gBankAttacker +_0801EF98: .4byte gBattlescriptCurrInstr +_0801EF9C: .4byte gMoveEffectBS_Ptrs +_0801EFA0: .4byte gBattleCommunication +_0801EFA4: .4byte gTrappingMoves _0801EFA8: ldr r1, _0801EFD8 @ =gBattleMoveDamage - ldr r0, _0801EFDC @ =gUnknown_02024BF0 + ldr r0, _0801EFDC @ =gHP_dealt ldr r0, [r0] cmp r0, 0 bge _0801EFB4 @@ -6407,12 +6407,12 @@ _0801EFB4: movs r0, 0x1 str r0, [r1] _0801EFC0: - ldr r4, _0801EFE0 @ =gUnknown_02024C10 + ldr r4, _0801EFE0 @ =gBattlescriptCurrInstr ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push - ldr r1, _0801EFE4 @ =gUnknown_081FAC4C - ldr r0, _0801EFE8 @ =gUnknown_02024D1E + ldr r1, _0801EFE4 @ =gMoveEffectBS_Ptrs + ldr r0, _0801EFE8 @ =gBattleCommunication ldrb r0, [r0, 0x3] lsls r0, 2 adds r0, r1 @@ -6420,10 +6420,10 @@ _0801EFC0: b _0801F5F8 .align 2, 0 _0801EFD8: .4byte gBattleMoveDamage -_0801EFDC: .4byte gUnknown_02024BF0 -_0801EFE0: .4byte gUnknown_02024C10 -_0801EFE4: .4byte gUnknown_081FAC4C -_0801EFE8: .4byte gUnknown_02024D1E +_0801EFDC: .4byte gHP_dealt +_0801EFE0: .4byte gBattlescriptCurrInstr +_0801EFE4: .4byte gMoveEffectBS_Ptrs +_0801EFE8: .4byte gBattleCommunication _0801EFEC: ldrb r1, [r7, 0x3] adds r1, 0xF2 @@ -6449,18 +6449,18 @@ _0801F008: ldr r0, _0801F034 @ =0x000160a5 adds r2, r0 strb r3, [r2] - ldr r4, _0801F038 @ =gUnknown_02024C10 + ldr r4, _0801F038 @ =gBattlescriptCurrInstr ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push - ldr r0, _0801F03C @ =gUnknown_081D71E5 + ldr r0, _0801F03C @ =BattleScript_StatUp b _0801F5F8 .align 2, 0 _0801F02C: .4byte 0x02000000 _0801F030: .4byte 0x000160a4 _0801F034: .4byte 0x000160a5 -_0801F038: .4byte gUnknown_02024C10 -_0801F03C: .4byte gUnknown_081D71E5 +_0801F038: .4byte gBattlescriptCurrInstr +_0801F03C: .4byte BattleScript_StatUp _0801F040: movs r0, 0x70 negs r0, r0 @@ -6487,18 +6487,18 @@ _0801F05E: ldr r0, _0801F088 @ =0x000160a5 adds r2, r0 strb r3, [r2] - ldr r4, _0801F08C @ =gUnknown_02024C10 + ldr r4, _0801F08C @ =gBattlescriptCurrInstr ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push - ldr r0, _0801F090 @ =gUnknown_081D7276 + ldr r0, _0801F090 @ =BattleScript_StatDown b _0801F5F8 .align 2, 0 _0801F080: .4byte 0x02000000 _0801F084: .4byte 0x000160a4 _0801F088: .4byte 0x000160a5 -_0801F08C: .4byte gUnknown_02024C10 -_0801F090: .4byte gUnknown_081D7276 +_0801F08C: .4byte gBattlescriptCurrInstr +_0801F090: .4byte BattleScript_StatDown _0801F094: ldrb r1, [r7, 0x3] adds r1, 0xDA @@ -6524,18 +6524,18 @@ _0801F0B0: ldr r0, _0801F0DC @ =0x000160a5 adds r2, r0 strb r3, [r2] - ldr r4, _0801F0E0 @ =gUnknown_02024C10 + ldr r4, _0801F0E0 @ =gBattlescriptCurrInstr ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push - ldr r0, _0801F0E4 @ =gUnknown_081D71E5 + ldr r0, _0801F0E4 @ =BattleScript_StatUp b _0801F5F8 .align 2, 0 _0801F0D4: .4byte 0x02000000 _0801F0D8: .4byte 0x000160a4 _0801F0DC: .4byte 0x000160a5 -_0801F0E0: .4byte gUnknown_02024C10 -_0801F0E4: .4byte gUnknown_081D71E5 +_0801F0E0: .4byte gBattlescriptCurrInstr +_0801F0E4: .4byte BattleScript_StatUp _0801F0E8: movs r0, 0x60 negs r0, r0 @@ -6562,18 +6562,18 @@ _0801F106: ldr r0, _0801F130 @ =0x000160a5 adds r2, r0 strb r3, [r2] - ldr r4, _0801F134 @ =gUnknown_02024C10 + ldr r4, _0801F134 @ =gBattlescriptCurrInstr ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push - ldr r0, _0801F138 @ =gUnknown_081D7276 + ldr r0, _0801F138 @ =BattleScript_StatDown b _0801F5F8 .align 2, 0 _0801F128: .4byte 0x02000000 _0801F12C: .4byte 0x000160a4 _0801F130: .4byte 0x000160a5 -_0801F134: .4byte gUnknown_02024C10 -_0801F138: .4byte gUnknown_081D7276 +_0801F134: .4byte gBattlescriptCurrInstr +_0801F138: .4byte BattleScript_StatDown _0801F13C: mov r2, r8 ldrb r1, [r2] @@ -6588,7 +6588,7 @@ _0801F13C: lsls r1, 15 orrs r0, r1 str r0, [r2] - ldr r2, _0801F178 @ =gUnknown_02024CA8 + ldr r2, _0801F178 @ =gDisableStructs mov r3, r8 ldrb r1, [r3] lsls r0, r1, 3 @@ -6597,20 +6597,20 @@ _0801F13C: adds r0, r2 movs r1, 0x2 strb r1, [r0, 0x19] - ldr r1, _0801F17C @ =gUnknown_02024C54 + ldr r1, _0801F17C @ =gLockedMove ldrb r0, [r3] lsls r0, 1 adds r0, r1 - ldr r1, _0801F180 @ =gUnknown_02024BE6 + ldr r1, _0801F180 @ =gCurrentMove ldrh r1, [r1] strh r1, [r0] b _0801F5DC .align 2, 0 -_0801F178: .4byte gUnknown_02024CA8 -_0801F17C: .4byte gUnknown_02024C54 -_0801F180: .4byte gUnknown_02024BE6 +_0801F178: .4byte gDisableStructs +_0801F17C: .4byte gLockedMove +_0801F180: .4byte gCurrentMove _0801F184: - ldr r0, _0801F1A0 @ =gPlayerMonIndex + ldr r0, _0801F1A0 @ =gBankAttacker ldrb r1, [r0] movs r0, 0x58 adds r2, r1, 0 @@ -6626,15 +6626,15 @@ _0801F19A: str r0, [r2] b _0801F5DC .align 2, 0 -_0801F1A0: .4byte gPlayerMonIndex +_0801F1A0: .4byte gBankAttacker _0801F1A4: - ldr r4, _0801F254 @ =gPlayerMonIndex + ldr r4, _0801F254 @ =gBankAttacker ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -6665,13 +6665,13 @@ _0801F1D8: lsls r0, 3 cmp r1, r0 beq _0801F214 - ldr r0, _0801F264 @ =gUnknown_02024DBC + ldr r0, _0801F264 @ =gWishFutureKnock adds r0, 0x29 adds r0, r6, r0 ldrb r1, [r0] ldr r3, _0801F268 @ =gBitTable - ldr r2, _0801F26C @ =gUnknown_02024A6A - ldr r0, _0801F254 @ =gPlayerMonIndex + ldr r2, _0801F26C @ =gBattlePartyID + ldr r0, _0801F254 @ =gBankAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r2 @@ -6685,7 +6685,7 @@ _0801F1D8: b _0801F5DC _0801F214: ldr r2, _0801F270 @ =gBattleMons - ldr r1, _0801F274 @ =gEnemyMonIndex + ldr r1, _0801F274 @ =gBankTarget ldrb r0, [r1] movs r3, 0x58 muls r0, r3 @@ -6700,10 +6700,10 @@ _0801F214: ldrb r0, [r0] cmp r0, 0x3C bne _0801F284 - ldr r1, _0801F278 @ =gUnknown_02024C10 - ldr r0, _0801F27C @ =gUnknown_081D9913 + ldr r1, _0801F278 @ =gBattlescriptCurrInstr + ldr r0, _0801F27C @ =BattleScript_NoItemSteal str r0, [r1] - ldr r1, _0801F280 @ =byte_2024C06 + ldr r1, _0801F280 @ =gLastUsedAbility ldrb r0, [r7] muls r0, r3 add r0, r9 @@ -6715,20 +6715,20 @@ _0801F214: bl sub_81074C4 b _0801F5FA .align 2, 0 -_0801F254: .4byte gPlayerMonIndex +_0801F254: .4byte gBankAttacker _0801F258: .4byte gBattleTypeFlags _0801F25C: .4byte 0x00000902 _0801F260: .4byte gTrainerBattleOpponent -_0801F264: .4byte gUnknown_02024DBC +_0801F264: .4byte gWishFutureKnock _0801F268: .4byte gBitTable -_0801F26C: .4byte gUnknown_02024A6A +_0801F26C: .4byte gBattlePartyID _0801F270: .4byte gBattleMons -_0801F274: .4byte gEnemyMonIndex -_0801F278: .4byte gUnknown_02024C10 -_0801F27C: .4byte gUnknown_081D9913 -_0801F280: .4byte byte_2024C06 +_0801F274: .4byte gBankTarget +_0801F278: .4byte gBattlescriptCurrInstr +_0801F27C: .4byte BattleScript_NoItemSteal +_0801F280: .4byte gLastUsedAbility _0801F284: - ldr r4, _0801F340 @ =gPlayerMonIndex + ldr r4, _0801F340 @ =gBankAttacker mov r10, r4 ldrb r1, [r4] movs r0, 0x58 @@ -6759,7 +6759,7 @@ _0801F2B6: lsls r0, r1, 1 ldr r5, _0801F344 @ =0x020160f0 adds r0, r5 - ldr r1, _0801F348 @ =gUnknown_02024C04 + ldr r1, _0801F348 @ =gLastUsedItem strh r2, [r0] strh r2, [r1] ldrb r0, [r7] @@ -6769,7 +6769,7 @@ _0801F2B6: add r0, r9 movs r6, 0 strh r3, [r0, 0x2E] - ldr r4, _0801F34C @ =gUnknown_02024A60 + ldr r4, _0801F34C @ =gActiveBank mov r2, r10 ldrb r0, [r2] strb r0, [r4] @@ -6778,10 +6778,10 @@ _0801F2B6: movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl dp01_build_cmdbuf_x02_a_b_varargs + bl EmitSetAttributes mov r3, r10 ldrb r0, [r3] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution ldrb r0, [r7] strb r0, [r4] ldrb r0, [r7] @@ -6796,14 +6796,14 @@ _0801F2B6: movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl dp01_build_cmdbuf_x02_a_b_varargs + bl EmitSetAttributes ldrb r0, [r7] - bl dp01_battle_side_mark_buffer_for_execution - ldr r4, _0801F350 @ =gUnknown_02024C10 + bl MarkBufferBankForExecution + ldr r4, _0801F350 @ =gBattlescriptCurrInstr ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push - ldr r0, _0801F354 @ =gUnknown_081D96F6 + ldr r0, _0801F354 @ =BattleScript_ItemSteal str r0, [r4] ldr r0, _0801F358 @ =0xfffe9f10 adds r5, r0 @@ -6821,17 +6821,17 @@ _0801F2B6: strb r6, [r0] b _0801F5FA .align 2, 0 -_0801F340: .4byte gPlayerMonIndex +_0801F340: .4byte gBankAttacker _0801F344: .4byte 0x020160f0 -_0801F348: .4byte gUnknown_02024C04 -_0801F34C: .4byte gUnknown_02024A60 -_0801F350: .4byte gUnknown_02024C10 -_0801F354: .4byte gUnknown_081D96F6 +_0801F348: .4byte gLastUsedItem +_0801F34C: .4byte gActiveBank +_0801F350: .4byte gBattlescriptCurrInstr +_0801F354: .4byte BattleScript_ItemSteal _0801F358: .4byte 0xfffe9f10 _0801F35C: .4byte 0x000160e8 _0801F360: .4byte 0x000160e9 _0801F364: - ldr r3, _0801F394 @ =gEnemyMonIndex + ldr r3, _0801F394 @ =gBankTarget ldrb r1, [r3] movs r0, 0x58 adds r2, r1, 0 @@ -6844,22 +6844,22 @@ _0801F364: lsls r1, 19 orrs r0, r1 str r0, [r2] - ldr r2, _0801F398 @ =gUnknown_02024CA8 + ldr r2, _0801F398 @ =gDisableStructs ldrb r1, [r3] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 - ldr r1, _0801F39C @ =gPlayerMonIndex + ldr r1, _0801F39C @ =gBankAttacker ldrb r1, [r1] strb r1, [r0, 0x14] b _0801F5DC .align 2, 0 -_0801F394: .4byte gEnemyMonIndex -_0801F398: .4byte gUnknown_02024CA8 -_0801F39C: .4byte gPlayerMonIndex +_0801F394: .4byte gBankTarget +_0801F398: .4byte gDisableStructs +_0801F39C: .4byte gBankAttacker _0801F3A0: - ldr r0, _0801F3B8 @ =gEnemyMonIndex + ldr r0, _0801F3B8 @ =gBankTarget ldrb r1, [r0] movs r0, 0x58 adds r2, r1, 0 @@ -6872,29 +6872,29 @@ _0801F3A0: lsls r1, 20 b _0801F19A .align 2, 0 -_0801F3B8: .4byte gEnemyMonIndex +_0801F3B8: .4byte gBankTarget _0801F3BC: - ldr r4, _0801F3CC @ =gUnknown_02024C10 + ldr r4, _0801F3CC @ =gBattlescriptCurrInstr ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r0, _0801F3D0 @ =gUnknown_081D9224 b _0801F5F8 .align 2, 0 -_0801F3CC: .4byte gUnknown_02024C10 +_0801F3CC: .4byte gBattlescriptCurrInstr _0801F3D0: .4byte gUnknown_081D9224 _0801F3D4: - ldr r4, _0801F3E4 @ =gUnknown_02024C10 + ldr r4, _0801F3E4 @ =gBattlescriptCurrInstr ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push - ldr r0, _0801F3E8 @ =gUnknown_081D92C0 + ldr r0, _0801F3E8 @ =BattleScript_RapidSpinAway b _0801F5F8 .align 2, 0 -_0801F3E4: .4byte gUnknown_02024C10 -_0801F3E8: .4byte gUnknown_081D92C0 +_0801F3E4: .4byte gBattlescriptCurrInstr +_0801F3E8: .4byte BattleScript_RapidSpinAway _0801F3EC: - ldr r6, _0801F43C @ =gEnemyMonIndex + ldr r6, _0801F43C @ =gBankTarget ldrb r0, [r6] movs r2, 0x58 muls r0, r2 @@ -6912,7 +6912,7 @@ _0801F406: negs r0, r0 ands r4, r0 str r4, [r5] - ldr r4, _0801F440 @ =gUnknown_02024A60 + ldr r4, _0801F440 @ =gActiveBank ldrb r0, [r6] strb r0, [r4] ldrb r0, [r4] @@ -6923,33 +6923,33 @@ _0801F406: movs r1, 0x28 movs r2, 0 movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs + bl EmitSetAttributes ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r4, _0801F444 @ =gUnknown_02024C10 + bl MarkBufferBankForExecution + ldr r4, _0801F444 @ =gBattlescriptCurrInstr ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push - ldr r0, _0801F448 @ =gUnknown_081D9635 + ldr r0, _0801F448 @ =BattleScript_TargetPRLZHeal b _0801F5F8 .align 2, 0 -_0801F43C: .4byte gEnemyMonIndex -_0801F440: .4byte gUnknown_02024A60 -_0801F444: .4byte gUnknown_02024C10 -_0801F448: .4byte gUnknown_081D9635 +_0801F43C: .4byte gBankTarget +_0801F440: .4byte gActiveBank +_0801F444: .4byte gBattlescriptCurrInstr +_0801F448: .4byte BattleScript_TargetPRLZHeal _0801F44C: - ldr r4, _0801F45C @ =gUnknown_02024C10 + ldr r4, _0801F45C @ =gBattlescriptCurrInstr ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r0, _0801F460 @ =gUnknown_081D93FA b _0801F5F8 .align 2, 0 -_0801F45C: .4byte gUnknown_02024C10 +_0801F45C: .4byte gBattlescriptCurrInstr _0801F460: .4byte gUnknown_081D93FA _0801F464: ldr r4, _0801F494 @ =gBattleMoveDamage - ldr r0, _0801F498 @ =gUnknown_02024BF0 + ldr r0, _0801F498 @ =gHP_dealt ldr r0, [r0] movs r1, 0x3 bl __divsi3 @@ -6959,12 +6959,12 @@ _0801F464: movs r0, 0x1 str r0, [r4] _0801F47A: - ldr r4, _0801F49C @ =gUnknown_02024C10 + ldr r4, _0801F49C @ =gBattlescriptCurrInstr ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push - ldr r1, _0801F4A0 @ =gUnknown_081FAC4C - ldr r0, _0801F4A4 @ =gUnknown_02024D1E + ldr r1, _0801F4A0 @ =gMoveEffectBS_Ptrs + ldr r0, _0801F4A4 @ =gBattleCommunication ldrb r0, [r0, 0x3] lsls r0, 2 adds r0, r1 @@ -6972,10 +6972,10 @@ _0801F47A: b _0801F5F8 .align 2, 0 _0801F494: .4byte gBattleMoveDamage -_0801F498: .4byte gUnknown_02024BF0 -_0801F49C: .4byte gUnknown_02024C10 -_0801F4A0: .4byte gUnknown_081FAC4C -_0801F4A4: .4byte gUnknown_02024D1E +_0801F498: .4byte gHP_dealt +_0801F49C: .4byte gBattlescriptCurrInstr +_0801F4A0: .4byte gMoveEffectBS_Ptrs +_0801F4A4: .4byte gBattleCommunication _0801F4A8: mov r3, r8 ldrb r0, [r3] @@ -6996,11 +6996,11 @@ _0801F4C4: lsls r0, 5 orrs r1, r0 str r1, [r2] - ldr r1, _0801F4F8 @ =gUnknown_02024C54 + ldr r1, _0801F4F8 @ =gLockedMove ldrb r0, [r3] lsls r0, 1 adds r0, r1 - ldr r1, _0801F4FC @ =gUnknown_02024BE6 + ldr r1, _0801F4FC @ =gCurrentMove ldrh r1, [r1] strh r1, [r0] bl Random @@ -7019,8 +7019,8 @@ _0801F4F2: str r0, [r2] b _0801F5FA .align 2, 0 -_0801F4F8: .4byte gUnknown_02024C54 -_0801F4FC: .4byte gUnknown_02024BE6 +_0801F4F8: .4byte gLockedMove +_0801F4FC: .4byte gCurrentMove _0801F500: mov r5, r8 ldrb r3, [r5] @@ -7037,28 +7037,28 @@ _0801F500: ldrh r0, [r1, 0x2E] cmp r0, 0 beq _0801F5DC - ldr r0, _0801F534 @ =byte_2024C06 + ldr r0, _0801F534 @ =gLastUsedAbility strb r2, [r0] - ldr r1, _0801F538 @ =gUnknown_02024C10 - ldr r0, _0801F53C @ =gUnknown_081D9913 + ldr r1, _0801F538 @ =gBattlescriptCurrInstr + ldr r0, _0801F53C @ =BattleScript_NoItemSteal str r0, [r1] ldrb r0, [r5] movs r1, 0x3C bl sub_81074C4 b _0801F5FA .align 2, 0 -_0801F534: .4byte byte_2024C06 -_0801F538: .4byte gUnknown_02024C10 -_0801F53C: .4byte gUnknown_081D9913 +_0801F534: .4byte gLastUsedAbility +_0801F538: .4byte gBattlescriptCurrInstr +_0801F53C: .4byte BattleScript_NoItemSteal _0801F540: ldrh r0, [r1, 0x2E] cmp r0, 0 beq _0801F5DC adds r0, r3, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r6, r0, 24 - ldr r1, _0801F5B8 @ =gUnknown_02024C04 + ldr r1, _0801F5B8 @ =gLastUsedItem mov r3, r8 ldrb r0, [r3] muls r0, r4 @@ -7071,11 +7071,11 @@ _0801F540: movs r5, 0 movs r1, 0 strh r1, [r0, 0x2E] - ldr r2, _0801F5BC @ =gUnknown_02024DBC + ldr r2, _0801F5BC @ =gWishFutureKnock adds r2, 0x29 adds r2, r6, r2 ldr r3, _0801F5C0 @ =gBitTable - ldr r1, _0801F5C4 @ =gUnknown_02024A6A + ldr r1, _0801F5C4 @ =gBattlePartyID mov r4, r8 ldrb r0, [r4] lsls r0, 1 @@ -7087,11 +7087,11 @@ _0801F540: ldrb r1, [r2] orrs r0, r1 strb r0, [r2] - ldr r4, _0801F5C8 @ =gUnknown_02024C10 + ldr r4, _0801F5C8 @ =gBattlescriptCurrInstr ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push - ldr r0, _0801F5CC @ =gUnknown_081D944B + ldr r0, _0801F5CC @ =BattleScript_KnockedOff str r0, [r4] ldr r1, _0801F5D0 @ =0x02000000 mov r2, r8 @@ -7109,25 +7109,25 @@ _0801F540: strb r5, [r0] b _0801F5FA .align 2, 0 -_0801F5B8: .4byte gUnknown_02024C04 -_0801F5BC: .4byte gUnknown_02024DBC +_0801F5B8: .4byte gLastUsedItem +_0801F5BC: .4byte gWishFutureKnock _0801F5C0: .4byte gBitTable -_0801F5C4: .4byte gUnknown_02024A6A -_0801F5C8: .4byte gUnknown_02024C10 -_0801F5CC: .4byte gUnknown_081D944B +_0801F5C4: .4byte gBattlePartyID +_0801F5C8: .4byte gBattlescriptCurrInstr +_0801F5CC: .4byte BattleScript_KnockedOff _0801F5D0: .4byte 0x02000000 _0801F5D4: .4byte 0x000160e8 _0801F5D8: .4byte 0x000160e9 _0801F5DC: - ldr r1, _0801F5E8 @ =gUnknown_02024C10 + ldr r1, _0801F5E8 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] b _0801F5FA .align 2, 0 -_0801F5E8: .4byte gUnknown_02024C10 +_0801F5E8: .4byte gBattlescriptCurrInstr _0801F5EC: - ldr r4, _0801F60C @ =gUnknown_02024C10 + ldr r4, _0801F60C @ =gBattlescriptCurrInstr ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push @@ -7144,7 +7144,7 @@ _0801F5FA: pop {r0} bx r0 .align 2, 0 -_0801F60C: .4byte gUnknown_02024C10 +_0801F60C: .4byte gBattlescriptCurrInstr _0801F610: .4byte gUnknown_081D94B0 thumb_func_end sub_801E3EC @@ -7152,7 +7152,7 @@ _0801F610: .4byte gUnknown_081D94B0 atk15_seteffectwithchancetarget: @ 801F614 push {r4,lr} ldr r2, _0801F640 @ =gBattleMons - ldr r0, _0801F644 @ =gPlayerMonIndex + ldr r0, _0801F644 @ =gBankAttacker ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -7162,7 +7162,7 @@ atk15_seteffectwithchancetarget: @ 801F614 cmp r0, 0x20 bne _0801F650 ldr r2, _0801F648 @ =gBattleMoves - ldr r0, _0801F64C @ =gUnknown_02024BE6 + ldr r0, _0801F64C @ =gCurrentMove ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -7173,12 +7173,12 @@ atk15_seteffectwithchancetarget: @ 801F614 b _0801F660 .align 2, 0 _0801F640: .4byte gBattleMons -_0801F644: .4byte gPlayerMonIndex +_0801F644: .4byte gBankAttacker _0801F648: .4byte gBattleMoves -_0801F64C: .4byte gUnknown_02024BE6 +_0801F64C: .4byte gCurrentMove _0801F650: ldr r2, _0801F680 @ =gBattleMoves - ldr r0, _0801F684 @ =gUnknown_02024BE6 + ldr r0, _0801F684 @ =gCurrentMove ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -7186,7 +7186,7 @@ _0801F650: adds r0, r2 ldrb r4, [r0, 0x5] _0801F660: - ldr r3, _0801F688 @ =gUnknown_02024D1E + ldr r3, _0801F688 @ =gBattleCommunication ldrb r2, [r3, 0x3] movs r0, 0x80 ands r0, r2 @@ -7204,8 +7204,8 @@ _0801F660: b _0801F6BE .align 2, 0 _0801F680: .4byte gBattleMoves -_0801F684: .4byte gUnknown_02024BE6 -_0801F688: .4byte gUnknown_02024D1E +_0801F684: .4byte gCurrentMove +_0801F688: .4byte gBattleCommunication _0801F68C: .4byte gBattleMoveFlags _0801F690: bl Random @@ -7217,7 +7217,7 @@ _0801F690: lsrs r0, 16 cmp r0, r4 bhi _0801F6DA - ldr r0, _0801F6C8 @ =gUnknown_02024D1E + ldr r0, _0801F6C8 @ =gBattleCommunication ldrb r0, [r0, 0x3] cmp r0, 0 beq _0801F6DA @@ -7235,7 +7235,7 @@ _0801F6BE: bl sub_801E3EC b _0801F6E2 .align 2, 0 -_0801F6C8: .4byte gUnknown_02024D1E +_0801F6C8: .4byte gBattleCommunication _0801F6CC: .4byte gBattleMoveFlags _0801F6D0: movs r0, 0 @@ -7243,12 +7243,12 @@ _0801F6D0: bl sub_801E3EC b _0801F6E2 _0801F6DA: - ldr r1, _0801F6F8 @ =gUnknown_02024C10 + ldr r1, _0801F6F8 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] _0801F6E2: - ldr r0, _0801F6FC @ =gUnknown_02024D1E + ldr r0, _0801F6FC @ =gBattleCommunication movs r1, 0 strb r1, [r0, 0x3] ldr r0, _0801F700 @ =0x02000000 @@ -7259,42 +7259,42 @@ _0801F6E2: pop {r0} bx r0 .align 2, 0 -_0801F6F8: .4byte gUnknown_02024C10 -_0801F6FC: .4byte gUnknown_02024D1E +_0801F6F8: .4byte gBattlescriptCurrInstr +_0801F6FC: .4byte gBattleCommunication _0801F700: .4byte 0x02000000 _0801F704: .4byte 0x00016112 thumb_func_end atk15_seteffectwithchancetarget - thumb_func_start sub_801F708 -sub_801F708: @ 801F708 + thumb_func_start atk16_seteffectprimary +atk16_seteffectprimary: @ 801F708 push {lr} movs r0, 0x1 movs r1, 0 bl sub_801E3EC pop {r0} bx r0 - thumb_func_end sub_801F708 + thumb_func_end atk16_seteffectprimary - thumb_func_start sub_801F718 -sub_801F718: @ 801F718 + thumb_func_start atk17_seteffectsecondary +atk17_seteffectsecondary: @ 801F718 push {lr} movs r0, 0 movs r1, 0 bl sub_801E3EC pop {r0} bx r0 - thumb_func_end sub_801F718 + thumb_func_end atk17_seteffectsecondary - thumb_func_start sub_801F728 -sub_801F728: @ 801F728 + thumb_func_start atk18_status_effect_clear +atk18_status_effect_clear: @ 801F728 push {lr} - ldr r0, _0801F74C @ =gUnknown_02024C10 + ldr r0, _0801F74C @ =gBattlescriptCurrInstr ldr r0, [r0] ldrb r0, [r0, 0x1] bl sub_8015150 - ldr r2, _0801F750 @ =gUnknown_02024A60 + ldr r2, _0801F750 @ =gActiveBank strb r0, [r2] - ldr r3, _0801F754 @ =gUnknown_02024D1E + ldr r3, _0801F754 @ =gBattleCommunication ldrb r0, [r3, 0x3] cmp r0, 0x6 bhi _0801F75C @@ -7305,9 +7305,9 @@ sub_801F728: @ 801F728 adds r1, 0x4C b _0801F766 .align 2, 0 -_0801F74C: .4byte gUnknown_02024C10 -_0801F750: .4byte gUnknown_02024A60 -_0801F754: .4byte gUnknown_02024D1E +_0801F74C: .4byte gBattlescriptCurrInstr +_0801F750: .4byte gActiveBank +_0801F754: .4byte gBattleCommunication _0801F758: .4byte gBattleMons _0801F75C: ldr r1, _0801F794 @ =gBattleMons @@ -7317,7 +7317,7 @@ _0801F75C: adds r1, 0x50 _0801F766: adds r2, r1 - ldr r1, _0801F798 @ =gUnknown_081FAB5C + ldr r1, _0801F798 @ =gStatusFlagsForMoveEffects ldrb r0, [r3, 0x3] lsls r0, 2 adds r0, r1 @@ -7325,10 +7325,10 @@ _0801F766: ldr r0, [r2] bics r0, r1 str r0, [r2] - ldr r0, _0801F79C @ =gUnknown_02024D1E + ldr r0, _0801F79C @ =gBattleCommunication movs r2, 0 strb r2, [r0, 0x3] - ldr r1, _0801F7A0 @ =gUnknown_02024C10 + ldr r1, _0801F7A0 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x2 str r0, [r1] @@ -7340,22 +7340,22 @@ _0801F766: bx r0 .align 2, 0 _0801F794: .4byte gBattleMons -_0801F798: .4byte gUnknown_081FAB5C -_0801F79C: .4byte gUnknown_02024D1E -_0801F7A0: .4byte gUnknown_02024C10 +_0801F798: .4byte gStatusFlagsForMoveEffects +_0801F79C: .4byte gBattleCommunication +_0801F7A0: .4byte gBattlescriptCurrInstr _0801F7A4: .4byte 0x02000000 _0801F7A8: .4byte 0x00016112 - thumb_func_end sub_801F728 + thumb_func_end atk18_status_effect_clear - thumb_func_start sub_801F7AC -sub_801F7AC: @ 801F7AC + thumb_func_start atk19_faint_pokemon +atk19_faint_pokemon: @ 801F7AC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 - ldr r0, _0801F81C @ =gUnknown_02024C10 + ldr r0, _0801F81C @ =gBattlescriptCurrInstr ldr r2, [r0] ldrb r1, [r2, 0x2] adds r6, r0, 0 @@ -7363,9 +7363,9 @@ sub_801F7AC: @ 801F7AC beq _0801F834 ldrb r0, [r2, 0x1] bl sub_8015150 - ldr r5, _0801F820 @ =gUnknown_02024A60 + ldr r5, _0801F820 @ =gActiveBank strb r0, [r5] - ldr r2, _0801F824 @ =gUnknown_02024C6C + ldr r2, _0801F824 @ =gHitMarker ldr r1, _0801F828 @ =gBitTable ldrb r0, [r5] lsls r0, 2 @@ -7392,8 +7392,8 @@ _0801F7E6: bl b_movescr_stack_pop_cursor str r4, [r6] ldrb r0, [r5] - bl battle_side_get_owner - ldr r1, _0801F82C @ =gUnknown_02024C7A + bl GetBankSide + ldr r1, _0801F82C @ =gSideAffecting lsls r0, 24 lsrs r0, 23 adds r0, r1 @@ -7403,43 +7403,43 @@ _0801F7E6: strh r1, [r0] b _0801FB22 .align 2, 0 -_0801F81C: .4byte gUnknown_02024C10 -_0801F820: .4byte gUnknown_02024A60 -_0801F824: .4byte gUnknown_02024C6C +_0801F81C: .4byte gBattlescriptCurrInstr +_0801F820: .4byte gActiveBank +_0801F824: .4byte gHitMarker _0801F828: .4byte gBitTable -_0801F82C: .4byte gUnknown_02024C7A +_0801F82C: .4byte gSideAffecting _0801F830: .4byte 0x0000fdff _0801F834: ldrb r0, [r2, 0x1] cmp r0, 0x1 bne _0801F85C - ldr r1, _0801F84C @ =gUnknown_02024A60 - ldr r0, _0801F850 @ =gPlayerMonIndex + ldr r1, _0801F84C @ =gActiveBank + ldr r0, _0801F850 @ =gBankAttacker ldrb r0, [r0] strb r0, [r1] - ldr r0, _0801F854 @ =gEnemyMonIndex + ldr r0, _0801F854 @ =gBankTarget ldrb r7, [r0] ldr r4, _0801F858 @ =gUnknown_081D8C58 b _0801F86A .align 2, 0 -_0801F84C: .4byte gUnknown_02024A60 -_0801F850: .4byte gPlayerMonIndex -_0801F854: .4byte gEnemyMonIndex +_0801F84C: .4byte gActiveBank +_0801F850: .4byte gBankAttacker +_0801F854: .4byte gBankTarget _0801F858: .4byte gUnknown_081D8C58 _0801F85C: - ldr r1, _0801F954 @ =gUnknown_02024A60 - ldr r0, _0801F958 @ =gEnemyMonIndex + ldr r1, _0801F954 @ =gActiveBank + ldr r0, _0801F958 @ =gBankTarget ldrb r0, [r0] strb r0, [r1] - ldr r0, _0801F95C @ =gPlayerMonIndex + ldr r0, _0801F95C @ =gBankAttacker ldrb r7, [r0] ldr r4, _0801F960 @ =gUnknown_081D8C65 _0801F86A: - ldr r0, _0801F964 @ =gUnknown_02024C0C + ldr r0, _0801F964 @ =gAbsentBankFlags ldrb r1, [r0] ldr r0, _0801F968 @ =gBitTable mov r12, r0 - ldr r2, _0801F954 @ =gUnknown_02024A60 + ldr r2, _0801F954 @ =gActiveBank mov r8, r2 ldrb r2, [r2] lsls r0, r2, 2 @@ -7489,7 +7489,7 @@ _0801F89C: adds r1, r0 adds r1, r2 strb r3, [r1] - ldr r5, _0801F980 @ =gUnknown_02024C6C + ldr r5, _0801F980 @ =gHitMarker mov r1, r8 ldrb r0, [r1] lsls r0, 2 @@ -7505,7 +7505,7 @@ _0801F89C: str r4, [r6] mov r2, r8 ldrb r0, [r2] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0801F9B0 @@ -7514,7 +7514,7 @@ _0801F89C: lsls r1, 15 orrs r0, r1 str r0, [r5] - ldr r1, _0801F984 @ =gUnknown_030042E0 + ldr r1, _0801F984 @ =gBattleResults ldrb r0, [r1] cmp r0, 0xFE bhi _0801F914 @@ -7541,7 +7541,7 @@ _0801F914: subs r0, r1 cmp r0, 0x1D ble _0801F990 - ldr r1, _0801F988 @ =gUnknown_02024A6A + ldr r1, _0801F988 @ =gBattlePartyID lsls r0, r2, 1 adds r0, r1 ldrh r1, [r0] @@ -7553,23 +7553,23 @@ _0801F914: bl AdjustFriendship b _0801F9CC .align 2, 0 -_0801F954: .4byte gUnknown_02024A60 -_0801F958: .4byte gEnemyMonIndex -_0801F95C: .4byte gPlayerMonIndex +_0801F954: .4byte gActiveBank +_0801F958: .4byte gBankTarget +_0801F95C: .4byte gBankAttacker _0801F960: .4byte gUnknown_081D8C65 -_0801F964: .4byte gUnknown_02024C0C +_0801F964: .4byte gAbsentBankFlags _0801F968: .4byte gBitTable _0801F96C: .4byte gBattleMons _0801F970: .4byte 0x02000000 _0801F974: .4byte 0x000160ac _0801F978: .4byte 0x000160ad _0801F97C: .4byte 0x00016103 -_0801F980: .4byte gUnknown_02024C6C -_0801F984: .4byte gUnknown_030042E0 -_0801F988: .4byte gUnknown_02024A6A +_0801F980: .4byte gHitMarker +_0801F984: .4byte gBattleResults +_0801F988: .4byte gBattlePartyID _0801F98C: .4byte gPlayerParty _0801F990: - ldr r1, _0801F9A8 @ =gUnknown_02024A6A + ldr r1, _0801F9A8 @ =gBattlePartyID lsls r0, r2, 1 adds r0, r1 ldrh r1, [r0] @@ -7581,17 +7581,17 @@ _0801F990: bl AdjustFriendship b _0801F9CC .align 2, 0 -_0801F9A8: .4byte gUnknown_02024A6A +_0801F9A8: .4byte gBattlePartyID _0801F9AC: .4byte gPlayerParty _0801F9B0: - ldr r1, _0801FAE0 @ =gUnknown_030042E0 + ldr r1, _0801FAE0 @ =gBattleResults ldrb r0, [r1, 0x1] cmp r0, 0xFE bhi _0801F9BC adds r0, 0x1 strb r0, [r1, 0x1] _0801F9BC: - ldr r2, _0801FAE4 @ =gUnknown_02024A60 + ldr r2, _0801FAE4 @ =gActiveBank ldrb r0, [r2] mov r3, r9 muls r3, r0 @@ -7600,14 +7600,14 @@ _0801F9BC: ldrh r0, [r0] strh r0, [r1, 0x20] _0801F9CC: - ldr r0, _0801FAE8 @ =gUnknown_02024C6C + ldr r0, _0801FAE8 @ =gHitMarker ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 beq _0801FA02 ldr r6, _0801FAEC @ =gBattleMons - ldr r0, _0801FAF0 @ =gPlayerMonIndex + ldr r0, _0801FAF0 @ =gBankAttacker ldrb r0, [r0] movs r5, 0x58 muls r0, r5 @@ -7615,7 +7615,7 @@ _0801F9CC: ldrh r0, [r0, 0x28] cmp r0, 0 beq _0801FA02 - ldr r4, _0801FAF4 @ =gUnknown_02024C10 + ldr r4, _0801FAF4 @ =gBattlescriptCurrInstr ldr r0, [r4] bl b_movescr_stack_push ldr r1, _0801FAF8 @ =gBattleMoveDamage @@ -7627,8 +7627,8 @@ _0801F9CC: ldr r0, _0801FAFC @ =gUnknown_081D9156 str r0, [r4] _0801FA02: - ldr r1, _0801FB00 @ =gUnknown_02024C98 - ldr r6, _0801FB04 @ =gEnemyMonIndex + ldr r1, _0801FB00 @ =gStatuses3 + ldr r6, _0801FB04 @ =gBankTarget ldrb r0, [r6] lsls r0, 2 adds r0, r1 @@ -7640,20 +7640,20 @@ _0801FA02: bne _0801FA1A b _0801FB22 _0801FA1A: - ldr r0, _0801FAE8 @ =gUnknown_02024C6C + ldr r0, _0801FAE8 @ =gHitMarker ldr r5, [r0] movs r0, 0x80 lsls r0, 17 ands r5, r0 cmp r5, 0 bne _0801FB22 - ldr r4, _0801FAF0 @ =gPlayerMonIndex + ldr r4, _0801FAF0 @ =gBankAttacker mov r8, r4 ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide adds r4, r0, 0 ldrb r0, [r6] - bl battle_side_get_owner + bl GetBankSide lsls r4, 24 lsls r0, 24 cmp r4, r0 @@ -7669,7 +7669,7 @@ _0801FA1A: ldrh r0, [r0, 0x28] cmp r0, 0 beq _0801FB22 - ldr r0, _0801FB08 @ =gUnknown_02024BE6 + ldr r0, _0801FB08 @ =gCurrentMove ldrh r0, [r0] cmp r0, 0xA5 beq _0801FB22 @@ -7683,12 +7683,12 @@ _0801FA1A: adds r6, 0x24 adds r0, r6 strb r5, [r0] - ldr r5, _0801FAF4 @ =gUnknown_02024C10 + ldr r5, _0801FAF4 @ =gBattlescriptCurrInstr ldr r0, [r5] bl b_movescr_stack_push ldr r0, _0801FB14 @ =gUnknown_081D9468 str r0, [r5] - ldr r5, _0801FAE4 @ =gUnknown_02024A60 + ldr r5, _0801FAE4 @ =gActiveBank mov r1, r8 ldrb r0, [r1] strb r0, [r5] @@ -7704,10 +7704,10 @@ _0801FA1A: movs r0, 0 movs r2, 0 movs r3, 0x1 - bl dp01_build_cmdbuf_x02_a_b_varargs + bl EmitSetAttributes ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _0801FB18 @ =gUnknown_030041C0 + bl MarkBufferBankForExecution + ldr r1, _0801FB18 @ =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x2 @@ -7734,21 +7734,21 @@ _0801FA1A: strb r0, [r1, 0x4] b _0801FB22 .align 2, 0 -_0801FAE0: .4byte gUnknown_030042E0 -_0801FAE4: .4byte gUnknown_02024A60 -_0801FAE8: .4byte gUnknown_02024C6C +_0801FAE0: .4byte gBattleResults +_0801FAE4: .4byte gActiveBank +_0801FAE8: .4byte gHitMarker _0801FAEC: .4byte gBattleMons -_0801FAF0: .4byte gPlayerMonIndex -_0801FAF4: .4byte gUnknown_02024C10 +_0801FAF0: .4byte gBankAttacker +_0801FAF4: .4byte gBattlescriptCurrInstr _0801FAF8: .4byte gBattleMoveDamage _0801FAFC: .4byte gUnknown_081D9156 -_0801FB00: .4byte gUnknown_02024C98 -_0801FB04: .4byte gEnemyMonIndex -_0801FB08: .4byte gUnknown_02024BE6 +_0801FB00: .4byte gStatuses3 +_0801FB04: .4byte gBankTarget +_0801FB08: .4byte gCurrentMove _0801FB0C: .4byte 0x02000000 _0801FB10: .4byte 0x0001608c _0801FB14: .4byte gUnknown_081D9468 -_0801FB18: .4byte gUnknown_030041C0 +_0801FB18: .4byte gBattleTextBuff1 _0801FB1C: ldr r0, [r6] adds r0, 0x7 @@ -7762,25 +7762,25 @@ _0801FB22: pop {r4-r7} pop {r0} bx r0 - thumb_func_end sub_801F7AC + thumb_func_end atk19_faint_pokemon - thumb_func_start sub_801FB34 -sub_801FB34: @ 801FB34 + thumb_func_start atk1A_faint_animation +atk1A_faint_animation: @ 801FB34 push {r4,r5,lr} - ldr r0, _0801FB64 @ =gUnknown_02024A64 + ldr r0, _0801FB64 @ =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 bne _0801FB5E - ldr r5, _0801FB68 @ =gUnknown_02024C10 + ldr r5, _0801FB68 @ =gBattlescriptCurrInstr ldr r0, [r5] ldrb r0, [r0, 0x1] bl sub_8015150 - ldr r4, _0801FB6C @ =gUnknown_02024A60 + ldr r4, _0801FB6C @ =gActiveBank strb r0, [r4] movs r0, 0 - bl dp01_build_cmdbuf_x0A_A_A_A + bl EmitFaintAnimation ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution ldr r0, [r5] adds r0, 0x2 str r0, [r5] @@ -7789,24 +7789,24 @@ _0801FB5E: pop {r0} bx r0 .align 2, 0 -_0801FB64: .4byte gUnknown_02024A64 -_0801FB68: .4byte gUnknown_02024C10 -_0801FB6C: .4byte gUnknown_02024A60 - thumb_func_end sub_801FB34 +_0801FB64: .4byte gBattleExecBuffer +_0801FB68: .4byte gBattlescriptCurrInstr +_0801FB6C: .4byte gActiveBank + thumb_func_end atk1A_faint_animation - thumb_func_start atkE2_cmde2 -atkE2_cmde2: @ 801FB70 + thumb_func_start atk1B_faint_effects_clear +atk1B_faint_effects_clear: @ 801FB70 push {r4-r6,lr} sub sp, 0x4 - ldr r0, _0801FBC4 @ =gUnknown_02024A64 + ldr r0, _0801FBC4 @ =gBattleExecBuffer ldr r6, [r0] cmp r6, 0 bne _0801FBBC - ldr r5, _0801FBC8 @ =gUnknown_02024C10 + ldr r5, _0801FBC8 @ =gBattlescriptCurrInstr ldr r0, [r5] ldrb r0, [r0, 0x1] bl sub_8015150 - ldr r4, _0801FBCC @ =gUnknown_02024A60 + ldr r4, _0801FBCC @ =gActiveBank strb r0, [r4] ldr r1, _0801FBD0 @ =gBattleMons ldrb r0, [r4] @@ -7823,10 +7823,10 @@ atkE2_cmde2: @ 801FB70 movs r1, 0x28 movs r2, 0 movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs + bl EmitSetAttributes ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - bl sub_8010F48 + bl MarkBufferBankForExecution + bl UndoEffectsAfterFainting ldr r0, [r5] adds r0, 0x2 str r0, [r5] @@ -7836,16 +7836,16 @@ _0801FBBC: pop {r0} bx r0 .align 2, 0 -_0801FBC4: .4byte gUnknown_02024A64 -_0801FBC8: .4byte gUnknown_02024C10 -_0801FBCC: .4byte gUnknown_02024A60 +_0801FBC4: .4byte gBattleExecBuffer +_0801FBC8: .4byte gBattlescriptCurrInstr +_0801FBCC: .4byte gActiveBank _0801FBD0: .4byte gBattleMons - thumb_func_end atkE2_cmde2 + thumb_func_end atk1B_faint_effects_clear thumb_func_start atk1C_jumpifstatus atk1C_jumpifstatus: @ 801FBD4 push {r4,r5,lr} - ldr r5, _0801FC30 @ =gUnknown_02024C10 + ldr r5, _0801FC30 @ =gBattlescriptCurrInstr ldr r0, [r5] ldrb r0, [r0, 0x1] bl sub_8015150 @@ -7889,10 +7889,10 @@ atk1C_jumpifstatus: @ 801FBD4 str r3, [r5] b _0801FC40 .align 2, 0 -_0801FC30: .4byte gUnknown_02024C10 +_0801FC30: .4byte gBattlescriptCurrInstr _0801FC34: .4byte gBattleMons _0801FC38: - ldr r1, _0801FC48 @ =gUnknown_02024C10 + ldr r1, _0801FC48 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0xA str r0, [r1] @@ -7901,13 +7901,13 @@ _0801FC40: pop {r0} bx r0 .align 2, 0 -_0801FC48: .4byte gUnknown_02024C10 +_0801FC48: .4byte gBattlescriptCurrInstr thumb_func_end atk1C_jumpifstatus - thumb_func_start atk1D_jumpifsecondarystatus -atk1D_jumpifsecondarystatus: @ 801FC4C + thumb_func_start atk1D_jumpifstatus2 +atk1D_jumpifstatus2: @ 801FC4C push {r4,r5,lr} - ldr r5, _0801FCA8 @ =gUnknown_02024C10 + ldr r5, _0801FCA8 @ =gBattlescriptCurrInstr ldr r0, [r5] ldrb r0, [r0, 0x1] bl sub_8015150 @@ -7951,10 +7951,10 @@ atk1D_jumpifsecondarystatus: @ 801FC4C str r3, [r5] b _0801FCB8 .align 2, 0 -_0801FCA8: .4byte gUnknown_02024C10 +_0801FCA8: .4byte gBattlescriptCurrInstr _0801FCAC: .4byte gBattleMons _0801FCB0: - ldr r1, _0801FCC0 @ =gUnknown_02024C10 + ldr r1, _0801FCC0 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0xA str r0, [r1] @@ -7963,8 +7963,8 @@ _0801FCB8: pop {r0} bx r0 .align 2, 0 -_0801FCC0: .4byte gUnknown_02024C10 - thumb_func_end atk1D_jumpifsecondarystatus +_0801FCC0: .4byte gBattlescriptCurrInstr + thumb_func_end atk1D_jumpifstatus2 thumb_func_start atk1E_jumpifability atk1E_jumpifability: @ 801FCC4 @@ -7972,7 +7972,7 @@ atk1E_jumpifability: @ 801FCC4 mov r7, r8 push {r7} sub sp, 0x4 - ldr r6, _0801FD18 @ =gUnknown_02024C10 + ldr r6, _0801FD18 @ =gBattlescriptCurrInstr ldr r2, [r6] ldrb r5, [r2, 0x2] mov r8, r5 @@ -7989,19 +7989,19 @@ atk1E_jumpifability: @ 801FCC4 ldrb r0, [r2, 0x1] cmp r0, 0x8 bne _0801FD24 - ldr r0, _0801FD1C @ =gPlayerMonIndex + ldr r0, _0801FD1C @ =gBankAttacker ldrb r1, [r0] movs r0, 0 str r0, [sp] movs r0, 0xD adds r2, r5, 0 movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _0801FDA0 - ldr r1, _0801FD20 @ =byte_2024C06 + ldr r1, _0801FD20 @ =gLastUsedAbility strb r5, [r1] str r7, [r6] subs r4, 0x1 @@ -8010,25 +8010,25 @@ atk1E_jumpifability: @ 801FCC4 ldrb r1, [r1] b _0801FD80 .align 2, 0 -_0801FD18: .4byte gUnknown_02024C10 -_0801FD1C: .4byte gPlayerMonIndex -_0801FD20: .4byte byte_2024C06 +_0801FD18: .4byte gBattlescriptCurrInstr +_0801FD1C: .4byte gBankAttacker +_0801FD20: .4byte gLastUsedAbility _0801FD24: cmp r0, 0x9 bne _0801FD5C - ldr r0, _0801FD54 @ =gPlayerMonIndex + ldr r0, _0801FD54 @ =gBankAttacker ldrb r1, [r0] movs r0, 0 str r0, [sp] movs r0, 0xC adds r2, r5, 0 movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _0801FDA0 - ldr r1, _0801FD58 @ =byte_2024C06 + ldr r1, _0801FD58 @ =gLastUsedAbility strb r5, [r1] str r7, [r6] subs r4, 0x1 @@ -8037,8 +8037,8 @@ _0801FD24: ldrb r1, [r1] b _0801FD80 .align 2, 0 -_0801FD54: .4byte gPlayerMonIndex -_0801FD58: .4byte byte_2024C06 +_0801FD54: .4byte gBankAttacker +_0801FD58: .4byte gLastUsedAbility _0801FD5C: ldrb r0, [r2, 0x1] bl sub_8015150 @@ -8052,7 +8052,7 @@ _0801FD5C: ldrb r1, [r0] cmp r1, r8 bne _0801FDA0 - ldr r0, _0801FD94 @ =byte_2024C06 + ldr r0, _0801FD94 @ =gLastUsedAbility strb r1, [r0] str r7, [r6] ldrb r1, [r0] @@ -8066,7 +8066,7 @@ _0801FD80: b _0801FDA6 .align 2, 0 _0801FD90: .4byte gBattleMons -_0801FD94: .4byte byte_2024C06 +_0801FD94: .4byte gLastUsedAbility _0801FD98: .4byte 0x02000000 _0801FD9C: .4byte 0x000160f8 _0801FDA0: @@ -8082,29 +8082,29 @@ _0801FDA6: bx r0 thumb_func_end atk1E_jumpifability - thumb_func_start sub_801FDB4 -sub_801FDB4: @ 801FDB4 + thumb_func_start atk1F_jumpifsideaffecting +atk1F_jumpifsideaffecting: @ 801FDB4 push {r4-r6,lr} - ldr r0, _0801FDCC @ =gUnknown_02024C10 + ldr r0, _0801FDCC @ =gBattlescriptCurrInstr ldr r0, [r0] ldrb r4, [r0, 0x1] cmp r4, 0x1 bne _0801FDD4 - ldr r0, _0801FDD0 @ =gPlayerMonIndex + ldr r0, _0801FDD0 @ =gBankAttacker ldrb r0, [r0] - bl battle_get_per_side_status + bl GetBankIdentity b _0801FDDE .align 2, 0 -_0801FDCC: .4byte gUnknown_02024C10 -_0801FDD0: .4byte gPlayerMonIndex +_0801FDCC: .4byte gBattlescriptCurrInstr +_0801FDD0: .4byte gBankAttacker _0801FDD4: - ldr r0, _0801FE14 @ =gEnemyMonIndex + ldr r0, _0801FE14 @ =gBankTarget ldrb r0, [r0] - bl battle_get_per_side_status + bl GetBankIdentity movs r4, 0x1 _0801FDDE: ands r4, r0 - ldr r6, _0801FE18 @ =gUnknown_02024C10 + ldr r6, _0801FE18 @ =gBattlescriptCurrInstr ldr r3, [r6] ldrb r2, [r3, 0x2] ldrb r0, [r3, 0x3] @@ -8120,7 +8120,7 @@ _0801FDDE: ldrb r0, [r3, 0x7] lsls r0, 24 adds r5, r1, r0 - ldr r1, _0801FE1C @ =gUnknown_02024C7A + ldr r1, _0801FE1C @ =gSideAffecting lsls r0, r4, 1 adds r0, r1 ldrh r0, [r0] @@ -8130,9 +8130,9 @@ _0801FDDE: str r5, [r6] b _0801FE26 .align 2, 0 -_0801FE14: .4byte gEnemyMonIndex -_0801FE18: .4byte gUnknown_02024C10 -_0801FE1C: .4byte gUnknown_02024C7A +_0801FE14: .4byte gBankTarget +_0801FE18: .4byte gBattlescriptCurrInstr +_0801FE1C: .4byte gSideAffecting _0801FE20: adds r0, r3, 0 adds r0, 0x8 @@ -8141,13 +8141,13 @@ _0801FE26: pop {r4-r6} pop {r0} bx r0 - thumb_func_end sub_801FDB4 + thumb_func_end atk1F_jumpifsideaffecting - thumb_func_start sub_801FE2C -sub_801FE2C: @ 801FE2C + thumb_func_start atk20_jumpifstat +atk20_jumpifstat: @ 801FE2C push {r4,r5,lr} movs r5, 0 - ldr r4, _0801FE60 @ =gUnknown_02024C10 + ldr r4, _0801FE60 @ =gBattlescriptCurrInstr ldr r0, [r4] ldrb r0, [r0, 0x1] bl sub_8015150 @@ -8171,7 +8171,7 @@ sub_801FE2C: @ 801FE2C ldr r0, [r0] mov pc, r0 .align 2, 0 -_0801FE60: .4byte gUnknown_02024C10 +_0801FE60: .4byte gBattlescriptCurrInstr _0801FE64: .4byte gBattleMons _0801FE68: .4byte _0801FE6C .align 2, 0 @@ -8183,43 +8183,43 @@ _0801FE6C: .4byte _0801FEC4 .4byte _0801FED8 _0801FE84: - ldr r0, _0801FE90 @ =gUnknown_02024C10 + ldr r0, _0801FE90 @ =gBattlescriptCurrInstr ldr r0, [r0] ldrb r0, [r0, 0x4] cmp r2, r0 bne _0801FEEA b _0801FEE4 .align 2, 0 -_0801FE90: .4byte gUnknown_02024C10 +_0801FE90: .4byte gBattlescriptCurrInstr _0801FE94: - ldr r0, _0801FEA0 @ =gUnknown_02024C10 + ldr r0, _0801FEA0 @ =gBattlescriptCurrInstr ldr r0, [r0] ldrb r0, [r0, 0x4] cmp r2, r0 beq _0801FEEA b _0801FEE4 .align 2, 0 -_0801FEA0: .4byte gUnknown_02024C10 +_0801FEA0: .4byte gBattlescriptCurrInstr _0801FEA4: - ldr r0, _0801FEB0 @ =gUnknown_02024C10 + ldr r0, _0801FEB0 @ =gBattlescriptCurrInstr ldr r0, [r0] ldrb r0, [r0, 0x4] cmp r2, r0 bls _0801FEEA b _0801FEE4 .align 2, 0 -_0801FEB0: .4byte gUnknown_02024C10 +_0801FEB0: .4byte gBattlescriptCurrInstr _0801FEB4: - ldr r0, _0801FEC0 @ =gUnknown_02024C10 + ldr r0, _0801FEC0 @ =gBattlescriptCurrInstr ldr r0, [r0] ldrb r0, [r0, 0x4] cmp r2, r0 bcs _0801FEEA b _0801FEE4 .align 2, 0 -_0801FEC0: .4byte gUnknown_02024C10 +_0801FEC0: .4byte gBattlescriptCurrInstr _0801FEC4: - ldr r0, _0801FED4 @ =gUnknown_02024C10 + ldr r0, _0801FED4 @ =gBattlescriptCurrInstr ldr r0, [r0] ldrb r0, [r0, 0x4] ands r2, r0 @@ -8227,9 +8227,9 @@ _0801FEC4: beq _0801FEEA b _0801FEE4 .align 2, 0 -_0801FED4: .4byte gUnknown_02024C10 +_0801FED4: .4byte gBattlescriptCurrInstr _0801FED8: - ldr r0, _0801FF0C @ =gUnknown_02024C10 + ldr r0, _0801FF0C @ =gBattlescriptCurrInstr ldr r0, [r0] ldrb r0, [r0, 0x4] ands r2, r0 @@ -8242,7 +8242,7 @@ _0801FEE4: _0801FEEA: cmp r5, 0 beq _0801FF10 - ldr r3, _0801FF0C @ =gUnknown_02024C10 + ldr r3, _0801FF0C @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x5] ldrb r0, [r2, 0x6] @@ -8257,9 +8257,9 @@ _0801FEEA: str r1, [r3] b _0801FF18 .align 2, 0 -_0801FF0C: .4byte gUnknown_02024C10 +_0801FF0C: .4byte gBattlescriptCurrInstr _0801FF10: - ldr r1, _0801FF20 @ =gUnknown_02024C10 + ldr r1, _0801FF20 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x9 str r0, [r1] @@ -8268,17 +8268,17 @@ _0801FF18: pop {r0} bx r0 .align 2, 0 -_0801FF20: .4byte gUnknown_02024C10 - thumb_func_end sub_801FE2C +_0801FF20: .4byte gBattlescriptCurrInstr + thumb_func_end atk20_jumpifstat - thumb_func_start atk21_jumpifspecialstatusflag -atk21_jumpifspecialstatusflag: @ 801FF24 + thumb_func_start atk21_jumpifstatus3 +atk21_jumpifstatus3: @ 801FF24 push {r4-r6,lr} - ldr r4, _0801FF78 @ =gUnknown_02024C10 + ldr r4, _0801FF78 @ =gBattlescriptCurrInstr ldr r0, [r4] ldrb r0, [r0, 0x1] bl sub_8015150 - ldr r5, _0801FF7C @ =gUnknown_02024A60 + ldr r5, _0801FF7C @ =gActiveBank strb r0, [r5] ldr r2, [r4] ldrb r1, [r2, 0x2] @@ -8304,7 +8304,7 @@ atk21_jumpifspecialstatusflag: @ 801FF24 ldrb r0, [r2, 0x6] cmp r0, 0 beq _0801FF84 - ldr r0, _0801FF80 @ =gUnknown_02024C98 + ldr r0, _0801FF80 @ =gStatuses3 ldrb r1, [r5] lsls r1, 2 adds r1, r0 @@ -8314,11 +8314,11 @@ atk21_jumpifspecialstatusflag: @ 801FF24 bne _0801FF9C b _0801FF94 .align 2, 0 -_0801FF78: .4byte gUnknown_02024C10 -_0801FF7C: .4byte gUnknown_02024A60 -_0801FF80: .4byte gUnknown_02024C98 +_0801FF78: .4byte gBattlescriptCurrInstr +_0801FF7C: .4byte gActiveBank +_0801FF80: .4byte gStatuses3 _0801FF84: - ldr r0, _0801FF98 @ =gUnknown_02024C98 + ldr r0, _0801FF98 @ =gStatuses3 ldrb r1, [r5] lsls r1, 2 adds r1, r0 @@ -8330,7 +8330,7 @@ _0801FF94: str r3, [r4] b _0801FFA2 .align 2, 0 -_0801FF98: .4byte gUnknown_02024C98 +_0801FF98: .4byte gStatuses3 _0801FF9C: adds r0, r2, 0 adds r0, 0xB @@ -8339,12 +8339,12 @@ _0801FFA2: pop {r4-r6} pop {r0} bx r0 - thumb_func_end atk21_jumpifspecialstatusflag + thumb_func_end atk21_jumpifstatus3 - thumb_func_start sub_801FFA8 -sub_801FFA8: @ 801FFA8 + thumb_func_start atk22_jumpiftype +atk22_jumpiftype: @ 801FFA8 push {r4-r6,lr} - ldr r4, _0801FFF0 @ =gUnknown_02024C10 + ldr r4, _0801FFF0 @ =gBattlescriptCurrInstr ldr r0, [r4] ldrb r0, [r0, 0x1] bl sub_8015150 @@ -8380,7 +8380,7 @@ _0801FFEC: str r6, [r4] b _0801FFFC .align 2, 0 -_0801FFF0: .4byte gUnknown_02024C10 +_0801FFF0: .4byte gBattlescriptCurrInstr _0801FFF4: .4byte gBattleMons _0801FFF8: adds r0, r3, 0x7 @@ -8389,10 +8389,10 @@ _0801FFFC: pop {r4-r6} pop {r0} bx r0 - thumb_func_end sub_801FFA8 + thumb_func_end atk22_jumpiftype - thumb_func_start sub_8020004 -sub_8020004: @ 8020004 + thumb_func_start atk23_getexp +atk23_getexp: @ 8020004 push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -8401,13 +8401,13 @@ sub_8020004: @ 8020004 movs r6, 0 ldr r0, _0802004C @ =0x0201605c mov r10, r0 - ldr r0, _08020050 @ =gUnknown_02024C10 + ldr r0, _08020050 @ =gBattlescriptCurrInstr ldr r0, [r0] ldrb r0, [r0, 0x1] bl sub_8015150 - ldr r1, _08020054 @ =gUnknown_02024C09 + ldr r1, _08020054 @ =gBank1 strb r0, [r1] - ldr r2, _08020058 @ =gUnknown_02024DEA + ldr r2, _08020058 @ =gSentPokesToOpponent movs r1, 0x2 ands r1, r0 lsls r1, 24 @@ -8429,9 +8429,9 @@ _08020040: mov pc, r0 .align 2, 0 _0802004C: .4byte 0x0201605c -_08020050: .4byte gUnknown_02024C10 -_08020054: .4byte gUnknown_02024C09 -_08020058: .4byte gUnknown_02024DEA +_08020050: .4byte gBattlescriptCurrInstr +_08020054: .4byte gBank1 +_08020058: .4byte gSentPokesToOpponent _0802005C: .4byte _08020060 .align 2, 0 _08020060: @@ -8443,9 +8443,9 @@ _08020060: .4byte _08020910 .4byte _0802096C _0802007C: - ldr r4, _080200A8 @ =gUnknown_02024C09 + ldr r4, _080200A8 @ =gBank1 ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -8464,7 +8464,7 @@ _08020098: strb r1, [r0] bl _08020996 .align 2, 0 -_080200A8: .4byte gUnknown_02024C09 +_080200A8: .4byte gBank1 _080200AC: .4byte gBattleTypeFlags _080200B0: .4byte 0x00000982 _080200B4: .4byte 0x02000000 @@ -8479,7 +8479,7 @@ _080200BC: ldr r0, _080200F0 @ =0x00016113 adds r2, r0 ldr r3, _080200F4 @ =gBitTable - ldr r1, _080200F8 @ =gUnknown_02024A6A + ldr r1, _080200F8 @ =gBattlePartyID ldrb r0, [r4] lsls r0, 1 adds r0, r1 @@ -8496,7 +8496,7 @@ _080200E8: .4byte 0x02000000 _080200EC: .4byte 0x0001600f _080200F0: .4byte 0x00016113 _080200F4: .4byte gBitTable -_080200F8: .4byte gUnknown_02024A6A +_080200F8: .4byte gBattlePartyID _080200FC: movs r5, 0 movs r7, 0 @@ -8556,7 +8556,7 @@ _0802016A: ble _08020104 ldr r3, _080201D0 @ =gBaseStats ldr r2, _080201D4 @ =gBattleMons - ldr r0, _080201D8 @ =gUnknown_02024C09 + ldr r0, _080201D8 @ =gBank1 ldrb r1, [r0] movs r0, 0x58 muls r1, r0 @@ -8588,7 +8588,7 @@ _0802016A: movs r0, 0x1 strh r0, [r1] _080201B6: - ldr r5, _080201DC @ =gUnknown_02024DEE + ldr r5, _080201DC @ =gExpShareExp adds r0, r4, 0 adds r1, r6, 0 bl __divsi3 @@ -8602,8 +8602,8 @@ _080201B6: .align 2, 0 _080201D0: .4byte gBaseStats _080201D4: .4byte gBattleMons -_080201D8: .4byte gUnknown_02024C09 -_080201DC: .4byte gUnknown_02024DEE +_080201D8: .4byte gBank1 +_080201DC: .4byte gExpShareExp _080201E0: adds r0, r1, 0 adds r1, r5, 0 @@ -8616,7 +8616,7 @@ _080201E0: movs r0, 0x1 strh r0, [r2] _080201F6: - ldr r0, _08020248 @ =gUnknown_02024DEE + ldr r0, _08020248 @ =gExpShareExp strh r6, [r0] _080201FA: ldr r1, _0802024C @ =0x02000000 @@ -8634,7 +8634,7 @@ _080201FA: mov r0, r8 strb r0, [r1] _08020216: - ldr r0, _0802025C @ =gUnknown_02024A64 + ldr r0, _0802025C @ =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 beq _08020220 @@ -8660,12 +8660,12 @@ _08020220: ldrb r4, [r0] b _08020274 .align 2, 0 -_08020248: .4byte gUnknown_02024DEE +_08020248: .4byte gExpShareExp _0802024C: .4byte 0x02000000 _08020250: .4byte 0x0001600f _08020254: .4byte 0x00016018 _08020258: .4byte 0x0001605f -_0802025C: .4byte gUnknown_02024A64 +_0802025C: .4byte gBattleExecBuffer _08020260: .4byte gPlayerParty _08020264: .4byte gSaveBlock1 _08020268: .4byte 0x00003688 @@ -8792,7 +8792,7 @@ _08020370: _08020376: cmp r4, 0x19 bne _08020386 - ldr r0, _080203F0 @ =gUnknown_02024DEE + ldr r0, _080203F0 @ =gExpShareExp ldrh r1, [r0] mov r2, r8 ldr r0, [r2] @@ -8849,7 +8849,7 @@ _080203B8: b _0802040A .align 2, 0 _080203EC: .4byte gBattleMoveDamage -_080203F0: .4byte gUnknown_02024DEE +_080203F0: .4byte gExpShareExp _080203F4: .4byte gBattleTypeFlags _080203F8: .4byte 0x02000000 _080203FC: .4byte 0x00016018 @@ -8865,14 +8865,14 @@ _0802040A: ands r1, r0 cmp r1, 0 beq _08020488 - ldr r1, _08020448 @ =gUnknown_02024A6A + ldr r1, _08020448 @ =gBattlePartyID ldr r0, _0802044C @ =0x02000000 ldr r3, _08020450 @ =0x00016018 adds r2, r0, r3 ldrh r1, [r1, 0x4] adds r5, r0, 0 ldr r4, _08020454 @ =gBitTable - ldr r3, _08020458 @ =gUnknown_02024C0C + ldr r3, _08020458 @ =gAbsentBankFlags ldrb r2, [r2] cmp r1, r2 bne _08020460 @@ -8888,11 +8888,11 @@ _0802040A: _0802043C: .4byte 0x00000149 _08020440: .4byte gBattleMoveDamage _08020444: .4byte gBattleTypeFlags -_08020448: .4byte gUnknown_02024A6A +_08020448: .4byte gBattlePartyID _0802044C: .4byte 0x02000000 _08020450: .4byte 0x00016018 _08020454: .4byte gBitTable -_08020458: .4byte gUnknown_02024C0C +_08020458: .4byte gAbsentBankFlags _0802045C: .4byte 0x000160a2 _08020460: ldrb r2, [r3] @@ -8921,7 +8921,7 @@ _08020488: adds r0, r3 strb r1, [r0] _08020490: - ldr r1, _08020538 @ =gUnknown_030041C0 + ldr r1, _08020538 @ =gBattleTextBuff1 movs r3, 0 movs r2, 0xFD strb r2, [r1] @@ -8938,7 +8938,7 @@ _08020490: strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] - ldr r1, _08020540 @ =gUnknown_03004290 + ldr r1, _08020540 @ =gBattleTextBuff2 strb r2, [r1] strb r3, [r1, 0x1] strb r7, [r1, 0x2] @@ -8950,7 +8950,7 @@ _08020490: movs r0, 0x1 negs r0, r0 strb r0, [r1, 0x4] - ldr r1, _08020544 @ =gUnknown_030042B0 + ldr r1, _08020544 @ =gBattleTextBuff3 strb r2, [r1] movs r0, 0x1 strb r0, [r1, 0x1] @@ -8976,14 +8976,14 @@ _08020490: strb r0, [r1, 0x8] ldrb r1, [r6] movs r0, 0xD - bl b_std_message + bl PrepareStringBattle ldrb r1, [r4] movs r0, 0x64 muls r0, r1 ldr r1, _08020548 @ =gPlayerParty adds r0, r1 ldr r3, _0802054C @ =gBattleMons - ldr r1, _08020550 @ =gUnknown_02024C09 + ldr r1, _08020550 @ =gBank1 ldrb r2, [r1] movs r1, 0x58 muls r1, r2 @@ -9003,23 +9003,23 @@ _0802051E: .align 2, 0 _08020530: .4byte 0x02000000 _08020534: .4byte 0x000160a2 -_08020538: .4byte gUnknown_030041C0 +_08020538: .4byte gBattleTextBuff1 _0802053C: .4byte 0x00016018 -_08020540: .4byte gUnknown_03004290 -_08020544: .4byte gUnknown_030042B0 +_08020540: .4byte gBattleTextBuff2 +_08020544: .4byte gBattleTextBuff3 _08020548: .4byte gPlayerParty _0802054C: .4byte gBattleMons -_08020550: .4byte gUnknown_02024C09 +_08020550: .4byte gBank1 _08020554: .4byte 0x0001605f _08020558: .4byte 0x0001600f _0802055C: - ldr r0, _08020620 @ =gUnknown_02024A64 + ldr r0, _08020620 @ =gBattleExecBuffer ldr r2, [r0] cmp r2, 0 beq _08020566 b _08020996 _08020566: - ldr r1, _08020624 @ =gUnknown_02024260 + ldr r1, _08020624 @ =gBattleBufferB ldr r4, _08020628 @ =0x02000000 ldr r3, _0802062C @ =0x000160a2 adds r3, r4 @@ -9084,7 +9084,7 @@ _08020566: movs r1, 0x3F bl GetMonData strh r0, [r4, 0xA] - ldr r4, _0802063C @ =gUnknown_02024A60 + ldr r4, _0802063C @ =gActiveBank mov r2, r8 ldrb r0, [r2] strb r0, [r4] @@ -9092,9 +9092,9 @@ _08020566: ldr r0, _08020640 @ =gBattleMoveDamage ldrh r2, [r0] movs r0, 0 - bl dp01_build_cmdbuf_x19_a_bb + bl EmitExpBarUpdate ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution _08020612: ldr r1, _08020628 @ =0x02000000 ldr r3, _08020644 @ =0x0001600f @@ -9105,30 +9105,30 @@ _08020618: strb r0, [r1] b _08020996 .align 2, 0 -_08020620: .4byte gUnknown_02024A64 -_08020624: .4byte gUnknown_02024260 +_08020620: .4byte gBattleExecBuffer +_08020624: .4byte gBattleBufferB _08020628: .4byte 0x02000000 _0802062C: .4byte 0x000160a2 _08020630: .4byte 0x00016018 _08020634: .4byte gPlayerParty _08020638: .4byte 0x00017180 -_0802063C: .4byte gUnknown_02024A60 +_0802063C: .4byte gActiveBank _08020640: .4byte gBattleMoveDamage _08020644: .4byte 0x0001600f _08020648: - ldr r0, _080208AC @ =gUnknown_02024A64 + ldr r0, _080208AC @ =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 beq _08020652 b _08020996 _08020652: - ldr r1, _080208B0 @ =gUnknown_02024A60 + ldr r1, _080208B0 @ =gActiveBank ldr r4, _080208B4 @ =0x02000000 ldr r2, _080208B8 @ =0x000160a2 adds r0, r4, r2 ldrb r0, [r0] strb r0, [r1] - ldr r2, _080208BC @ =gUnknown_02024260 + ldr r2, _080208BC @ =gBattleBufferB ldrb r3, [r1] lsls r1, r3, 9 adds r0, r1, r2 @@ -9150,7 +9150,7 @@ _0802067A: ands r0, r1 cmp r0, 0 beq _080206A8 - ldr r1, _080208C4 @ =gUnknown_02024A6A + ldr r1, _080208C4 @ =gBattlePartyID lsls r0, r3, 1 adds r2, r0, r1 ldr r0, _080208C8 @ =0x00016018 @@ -9167,12 +9167,12 @@ _0802067A: adds r1, r3, 0 bl sub_80324F8 _080206A8: - ldr r1, _080208D0 @ =gUnknown_030041C0 + ldr r1, _080208D0 @ =gBattleTextBuff1 movs r2, 0xFD strb r2, [r1] movs r0, 0x4 strb r0, [r1, 0x1] - ldr r5, _080208B0 @ =gUnknown_02024A60 + ldr r5, _080208B0 @ =gActiveBank ldrb r0, [r5] strb r0, [r1, 0x2] ldr r0, _080208B4 @ =0x02000000 @@ -9182,7 +9182,7 @@ _080206A8: strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] - ldr r4, _080208D4 @ =gUnknown_03004290 + ldr r4, _080208D4 @ =gBattleTextBuff2 strb r2, [r4] movs r0, 0x1 strb r0, [r4, 0x1] @@ -9204,7 +9204,7 @@ _080206A8: negs r0, r0 strb r0, [r4, 0x5] bl b_movescr_stack_push_cursor - ldr r2, _080208D8 @ =gUnknown_03004324 + ldr r2, _080208D8 @ =gLeveledUpInBattle ldr r1, _080208DC @ =gBitTable ldrb r0, [r6] lsls r0, 2 @@ -9213,11 +9213,11 @@ _080206A8: ldrb r1, [r2] orrs r0, r1 strb r0, [r2] - ldr r1, _080208E0 @ =gUnknown_02024C10 - ldr r0, _080208E4 @ =gUnknown_081D8EF3 + ldr r1, _080208E0 @ =gBattlescriptCurrInstr + ldr r0, _080208E4 @ =BattleScript_LevelUp str r0, [r1] ldr r4, _080208E8 @ =gBattleMoveDamage - ldr r2, _080208BC @ =gUnknown_02024260 + ldr r2, _080208BC @ =gBattleBufferB ldrb r1, [r5] lsls r1, 9 adds r0, r2, 0x2 @@ -9236,7 +9236,7 @@ _080206A8: adds r0, r7 movs r1, 0 bl AdjustFriendship - ldr r0, _080208C4 @ =gUnknown_02024A6A + ldr r0, _080208C4 @ =gBattlePartyID ldrb r1, [r6] ldrh r0, [r0] cmp r0, r1 @@ -9318,7 +9318,7 @@ _080206A8: bl GetMonData strh r0, [r4, 0xA] _080207EC: - ldr r0, _080208C4 @ =gUnknown_02024A6A + ldr r0, _080208C4 @ =gBattlePartyID ldr r1, _080208B4 @ =0x02000000 ldr r3, _080208C8 @ =0x00016018 adds r7, r1, r3 @@ -9406,21 +9406,21 @@ _080207EC: strh r0, [r1] b _080208F6 .align 2, 0 -_080208AC: .4byte gUnknown_02024A64 -_080208B0: .4byte gUnknown_02024A60 +_080208AC: .4byte gBattleExecBuffer +_080208B0: .4byte gActiveBank _080208B4: .4byte 0x02000000 _080208B8: .4byte 0x000160a2 -_080208BC: .4byte gUnknown_02024260 +_080208BC: .4byte gBattleBufferB _080208C0: .4byte gBattleTypeFlags -_080208C4: .4byte gUnknown_02024A6A +_080208C4: .4byte gBattlePartyID _080208C8: .4byte 0x00016018 _080208CC: .4byte gPlayerParty -_080208D0: .4byte gUnknown_030041C0 -_080208D4: .4byte gUnknown_03004290 -_080208D8: .4byte gUnknown_03004324 +_080208D0: .4byte gBattleTextBuff1 +_080208D4: .4byte gBattleTextBuff2 +_080208D8: .4byte gLeveledUpInBattle _080208DC: .4byte gBitTable -_080208E0: .4byte gUnknown_02024C10 -_080208E4: .4byte gUnknown_081D8EF3 +_080208E0: .4byte gBattlescriptCurrInstr +_080208E4: .4byte BattleScript_LevelUp _080208E8: .4byte gBattleMoveDamage _080208EC: .4byte gBattleMons _080208F0: @@ -9482,12 +9482,12 @@ _0802095C: .align 2, 0 _08020968: .4byte 0x0001600f _0802096C: - ldr r0, _080209A4 @ =gUnknown_02024A64 + ldr r0, _080209A4 @ =gBattleExecBuffer ldr r5, [r0] cmp r5, 0 bne _08020996 ldr r4, _080209A8 @ =gBattleMons - ldr r2, _080209AC @ =gUnknown_02024C09 + ldr r2, _080209AC @ =gBank1 ldrb r0, [r2] movs r1, 0x58 muls r0, r1 @@ -9499,7 +9499,7 @@ _0802096C: adds r0, r4 adds r0, 0x20 strb r3, [r0] - ldr r1, _080209B0 @ =gUnknown_02024C10 + ldr r1, _080209B0 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x2 str r0, [r1] @@ -9512,19 +9512,19 @@ _08020996: pop {r0} bx r0 .align 2, 0 -_080209A4: .4byte gUnknown_02024A64 +_080209A4: .4byte gBattleExecBuffer _080209A8: .4byte gBattleMons -_080209AC: .4byte gUnknown_02024C09 -_080209B0: .4byte gUnknown_02024C10 - thumb_func_end sub_8020004 +_080209AC: .4byte gBank1 +_080209B0: .4byte gBattlescriptCurrInstr + thumb_func_end atk23_getexp - thumb_func_start sub_80209B4 -sub_80209B4: @ 80209B4 + thumb_func_start atk24 +atk24: @ 80209B4 push {r4-r7,lr} mov r7, r8 push {r7} movs r6, 0 - ldr r0, _08020AF0 @ =gUnknown_02024A64 + ldr r0, _08020AF0 @ =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 beq _080209C6 @@ -9559,7 +9559,7 @@ _080209F8: ble _080209C8 cmp r6, 0 bne _08020A0C - ldr r0, _08020AF8 @ =gUnknown_02024D26 + ldr r0, _08020AF8 @ =gBattleOutcome ldrb r1, [r0] movs r2, 0x2 orrs r1, r2 @@ -9593,7 +9593,7 @@ _08020A40: adds r5, 0x1 cmp r5, 0x5 ble _08020A10 - ldr r2, _08020AF8 @ =gUnknown_02024D26 + ldr r2, _08020AF8 @ =gBattleOutcome cmp r6, 0 bne _08020A54 ldrb r0, [r2] @@ -9613,18 +9613,18 @@ _08020A54: beq _08020B3E movs r2, 0 movs r5, 0 - ldr r0, _08020B04 @ =gUnknown_02024A68 + ldr r0, _08020B04 @ =gNoOfAllBanks ldrb r3, [r0] mov r12, r0 - ldr r7, _08020B08 @ =gUnknown_02024C10 + ldr r7, _08020B08 @ =gBattlescriptCurrInstr cmp r2, r3 bge _08020AA0 - ldr r0, _08020B0C @ =gUnknown_02024C6C + ldr r0, _08020B0C @ =gHitMarker movs r1, 0x80 lsls r1, 21 ldr r6, [r0] adds r4, r3, 0 - ldr r3, _08020B10 @ =gUnknown_02024D68 + ldr r3, _08020B10 @ =gSpecialStatuses _08020A84: adds r0, r1, 0 lsls r0, r5 @@ -9648,12 +9648,12 @@ _08020AA0: ldrb r3, [r0] cmp r5, r3 bge _08020ADA - ldr r0, _08020B0C @ =gUnknown_02024C6C + ldr r0, _08020B0C @ =gHitMarker movs r1, 0x80 lsls r1, 21 mov r12, r1 ldr r1, [r0] - ldr r0, _08020B10 @ =gUnknown_02024D68 + ldr r0, _08020B10 @ =gSpecialStatuses adds r6, r3, 0 adds r3, r0, 0 adds r3, 0x14 @@ -9685,15 +9685,15 @@ _08020ADA: bgt _08020B1C b _08020B36 .align 2, 0 -_08020AF0: .4byte gUnknown_02024A64 +_08020AF0: .4byte gBattleExecBuffer _08020AF4: .4byte gPlayerParty -_08020AF8: .4byte gUnknown_02024D26 +_08020AF8: .4byte gBattleOutcome _08020AFC: .4byte gEnemyParty _08020B00: .4byte gBattleTypeFlags -_08020B04: .4byte gUnknown_02024A68 -_08020B08: .4byte gUnknown_02024C10 -_08020B0C: .4byte gUnknown_02024C6C -_08020B10: .4byte gUnknown_02024D68 +_08020B04: .4byte gNoOfAllBanks +_08020B08: .4byte gBattlescriptCurrInstr +_08020B0C: .4byte gHitMarker +_08020B10: .4byte gSpecialStatuses _08020B14: cmp r4, 0 beq _08020B36 @@ -9719,7 +9719,7 @@ _08020B36: str r0, [r7] b _08020B46 _08020B3E: - ldr r1, _08020B50 @ =gUnknown_02024C10 + ldr r1, _08020B50 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] @@ -9730,8 +9730,8 @@ _08020B46: pop {r0} bx r0 .align 2, 0 -_08020B50: .4byte gUnknown_02024C10 - thumb_func_end sub_80209B4 +_08020B50: .4byte gBattlescriptCurrInstr + thumb_func_end atk24 thumb_func_start sub_8020B54 sub_8020B54: @ 8020B54 @@ -9746,10 +9746,10 @@ sub_8020B54: @ 8020B54 strb r1, [r0] ldr r0, _08020B8C @ =gCritMultiplier strb r1, [r0] - ldr r0, _08020B90 @ =gUnknown_02024D1E + ldr r0, _08020B90 @ =gBattleCommunication strb r2, [r0, 0x3] strb r2, [r0, 0x6] - ldr r2, _08020B94 @ =gUnknown_02024C6C + ldr r2, _08020B94 @ =gHitMarker ldr r0, [r2] subs r1, 0x42 ands r0, r1 @@ -9762,29 +9762,29 @@ _08020B80: .4byte gBattleMoveFlags _08020B84: .4byte 0x02000000 _08020B88: .4byte 0x0001601f _08020B8C: .4byte gCritMultiplier -_08020B90: .4byte gUnknown_02024D1E -_08020B94: .4byte gUnknown_02024C6C +_08020B90: .4byte gBattleCommunication +_08020B94: .4byte gHitMarker _08020B98: .4byte 0xffffbfff thumb_func_end sub_8020B54 - thumb_func_start atk25_resetflags -atk25_resetflags: @ 8020B9C + thumb_func_start atk25_move_values_cleanup +atk25_move_values_cleanup: @ 8020B9C push {lr} bl sub_8020B54 - ldr r1, _08020BB0 @ =gUnknown_02024C10 + ldr r1, _08020BB0 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .align 2, 0 -_08020BB0: .4byte gUnknown_02024C10 - thumb_func_end atk25_resetflags +_08020BB0: .4byte gBattlescriptCurrInstr + thumb_func_end atk25_move_values_cleanup - thumb_func_start sub_8020BB4 -sub_8020BB4: @ 8020BB4 - ldr r3, _08020BC4 @ =gUnknown_02024C0E - ldr r2, _08020BC8 @ =gUnknown_02024C10 + thumb_func_start atk26_set_multihit +atk26_set_multihit: @ 8020BB4 + ldr r3, _08020BC4 @ =gMultiHitCounter + ldr r2, _08020BC8 @ =gBattlescriptCurrInstr ldr r0, [r2] ldrb r1, [r0, 0x1] strb r1, [r3] @@ -9792,30 +9792,30 @@ sub_8020BB4: @ 8020BB4 str r0, [r2] bx lr .align 2, 0 -_08020BC4: .4byte gUnknown_02024C0E -_08020BC8: .4byte gUnknown_02024C10 - thumb_func_end sub_8020BB4 +_08020BC4: .4byte gMultiHitCounter +_08020BC8: .4byte gBattlescriptCurrInstr + thumb_func_end atk26_set_multihit - thumb_func_start atk27_cmd27 -atk27_cmd27: @ 8020BCC + thumb_func_start atk27_decrement_multihit +atk27_decrement_multihit: @ 8020BCC push {lr} - ldr r1, _08020BE8 @ =gUnknown_02024C0E + ldr r1, _08020BE8 @ =gMultiHitCounter ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] lsls r0, 24 cmp r0, 0 bne _08020BF0 - ldr r1, _08020BEC @ =gUnknown_02024C10 + ldr r1, _08020BEC @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _08020C0A .align 2, 0 -_08020BE8: .4byte gUnknown_02024C0E -_08020BEC: .4byte gUnknown_02024C10 +_08020BE8: .4byte gMultiHitCounter +_08020BEC: .4byte gBattlescriptCurrInstr _08020BF0: - ldr r3, _08020C10 @ =gUnknown_02024C10 + ldr r3, _08020C10 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -9832,12 +9832,12 @@ _08020C0A: pop {r0} bx r0 .align 2, 0 -_08020C10: .4byte gUnknown_02024C10 - thumb_func_end atk27_cmd27 +_08020C10: .4byte gBattlescriptCurrInstr + thumb_func_end atk27_decrement_multihit - thumb_func_start sub_8020C14 -sub_8020C14: @ 8020C14 - ldr r3, _08020C30 @ =gUnknown_02024C10 + thumb_func_start atk28_goto +atk28_goto: @ 8020C14 + ldr r3, _08020C30 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -9852,13 +9852,13 @@ sub_8020C14: @ 8020C14 str r1, [r3] bx lr .align 2, 0 -_08020C30: .4byte gUnknown_02024C10 - thumb_func_end sub_8020C14 +_08020C30: .4byte gBattlescriptCurrInstr + thumb_func_end atk28_goto thumb_func_start atk29_jumpifbyte atk29_jumpifbyte: @ 8020C34 push {r4-r6,lr} - ldr r3, _08020C78 @ =gUnknown_02024C10 + ldr r3, _08020C78 @ =gBattlescriptCurrInstr ldr r1, [r3] ldrb r6, [r1, 0x1] ldrb r2, [r1, 0x2] @@ -9892,7 +9892,7 @@ atk29_jumpifbyte: @ 8020C34 ldr r0, [r0] mov pc, r0 .align 2, 0 -_08020C78: .4byte gUnknown_02024C10 +_08020C78: .4byte gBattlescriptCurrInstr _08020C7C: .4byte _08020C80 .align 2, 0 _08020C80: @@ -9941,10 +9941,10 @@ _08020CCC: bx r0 thumb_func_end atk29_jumpifbyte - thumb_func_start sub_8020CD4 -sub_8020CD4: @ 8020CD4 + thumb_func_start atk2A_jumpifhalfword +atk2A_jumpifhalfword: @ 8020CD4 push {r4-r6,lr} - ldr r3, _08020D20 @ =gUnknown_02024C10 + ldr r3, _08020D20 @ =gBattlescriptCurrInstr ldr r1, [r3] ldrb r6, [r1, 0x1] ldrb r2, [r1, 0x2] @@ -9981,7 +9981,7 @@ sub_8020CD4: @ 8020CD4 ldr r0, [r0] mov pc, r0 .align 2, 0 -_08020D20: .4byte gUnknown_02024C10 +_08020D20: .4byte gBattlescriptCurrInstr _08020D24: .4byte _08020D28 .align 2, 0 _08020D28: @@ -10028,12 +10028,12 @@ _08020D74: pop {r4-r6} pop {r0} bx r0 - thumb_func_end sub_8020CD4 + thumb_func_end atk2A_jumpifhalfword - thumb_func_start sub_8020D7C -sub_8020D7C: @ 8020D7C + thumb_func_start atk2B_jumpifword +atk2B_jumpifword: @ 8020D7C push {r4-r6,lr} - ldr r3, _08020DD4 @ =gUnknown_02024C10 + ldr r3, _08020DD4 @ =gBattlescriptCurrInstr ldr r1, [r3] ldrb r6, [r1, 0x1] ldrb r2, [r1, 0x2] @@ -10076,7 +10076,7 @@ sub_8020D7C: @ 8020D7C ldr r0, [r0] mov pc, r0 .align 2, 0 -_08020DD4: .4byte gUnknown_02024C10 +_08020DD4: .4byte gBattlescriptCurrInstr _08020DD8: .4byte _08020DDC .align 2, 0 _08020DDC: @@ -10123,12 +10123,12 @@ _08020E28: pop {r4-r6} pop {r0} bx r0 - thumb_func_end sub_8020D7C + thumb_func_end atk2B_jumpifword - thumb_func_start sub_8020E30 -sub_8020E30: @ 8020E30 + thumb_func_start atk2C_jumpifarrayequal +atk2C_jumpifarrayequal: @ 8020E30 push {r4-r7,lr} - ldr r2, _08020E88 @ =gUnknown_02024C10 + ldr r2, _08020E88 @ =gBattlescriptCurrInstr ldr r3, [r2] ldrb r1, [r3, 0x1] ldrb r0, [r3, 0x2] @@ -10172,7 +10172,7 @@ sub_8020E30: @ 8020E30 adds r0, r3, 0 b _08020EA4 .align 2, 0 -_08020E88: .4byte gUnknown_02024C10 +_08020E88: .4byte gBattlescriptCurrInstr _08020E8C: adds r5, 0x1 adds r4, 0x1 @@ -10198,13 +10198,13 @@ _08020EB0: pop {r4-r7} pop {r0} bx r0 - thumb_func_end sub_8020E30 + thumb_func_end atk2C_jumpifarrayequal - thumb_func_start sub_8020EB8 -sub_8020EB8: @ 8020EB8 + thumb_func_start atk2D_jumpifarraynotequal +atk2D_jumpifarraynotequal: @ 8020EB8 push {r4-r7,lr} movs r7, 0 - ldr r3, _08020F2C @ =gUnknown_02024C10 + ldr r3, _08020F2C @ =gBattlescriptCurrInstr ldr r1, [r3] ldrb r2, [r1, 0x1] ldrb r0, [r1, 0x2] @@ -10263,7 +10263,7 @@ _08020F22: mov r0, r12 b _08020F34 .align 2, 0 -_08020F2C: .4byte gUnknown_02024C10 +_08020F2C: .4byte gBattlescriptCurrInstr _08020F30: ldr r0, [r3] adds r0, 0xE @@ -10272,11 +10272,11 @@ _08020F34: pop {r4-r7} pop {r0} bx r0 - thumb_func_end sub_8020EB8 + thumb_func_end atk2D_jumpifarraynotequal - thumb_func_start sub_8020F3C -sub_8020F3C: @ 8020F3C - ldr r3, _08020F60 @ =gUnknown_02024C10 + thumb_func_start atk2E_setbyte +atk2E_setbyte: @ 8020F3C + ldr r3, _08020F60 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -10295,12 +10295,12 @@ sub_8020F3C: @ 8020F3C str r0, [r3] bx lr .align 2, 0 -_08020F60: .4byte gUnknown_02024C10 - thumb_func_end sub_8020F3C +_08020F60: .4byte gBattlescriptCurrInstr + thumb_func_end atk2E_setbyte - thumb_func_start sub_8020F64 -sub_8020F64: @ 8020F64 - ldr r3, _08020F8C @ =gUnknown_02024C10 + thumb_func_start atk2F_addbyte +atk2F_addbyte: @ 8020F64 + ldr r3, _08020F8C @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -10321,12 +10321,12 @@ sub_8020F64: @ 8020F64 str r0, [r3] bx lr .align 2, 0 -_08020F8C: .4byte gUnknown_02024C10 - thumb_func_end sub_8020F64 +_08020F8C: .4byte gBattlescriptCurrInstr + thumb_func_end atk2F_addbyte - thumb_func_start sub_8020F90 -sub_8020F90: @ 8020F90 - ldr r3, _08020FB8 @ =gUnknown_02024C10 + thumb_func_start atk30_subbyte +atk30_subbyte: @ 8020F90 + ldr r3, _08020FB8 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -10347,13 +10347,13 @@ sub_8020F90: @ 8020F90 str r0, [r3] bx lr .align 2, 0 -_08020FB8: .4byte gUnknown_02024C10 - thumb_func_end sub_8020F90 +_08020FB8: .4byte gBattlescriptCurrInstr + thumb_func_end atk30_subbyte thumb_func_start atk31_copyarray atk31_copyarray: @ 8020FBC push {r4-r6,lr} - ldr r3, _0802100C @ =gUnknown_02024C10 + ldr r3, _0802100C @ =gBattlescriptCurrInstr ldr r1, [r3] ldrb r2, [r1, 0x1] ldrb r0, [r1, 0x2] @@ -10395,13 +10395,13 @@ _08021000: pop {r0} bx r0 .align 2, 0 -_0802100C: .4byte gUnknown_02024C10 +_0802100C: .4byte gBattlescriptCurrInstr thumb_func_end atk31_copyarray - thumb_func_start atk32_memcpy_with_offset -atk32_memcpy_with_offset: @ 8021010 + thumb_func_start atk32_copyarray_withindex +atk32_copyarray_withindex: @ 8021010 push {r4-r7,lr} - ldr r3, _08021078 @ =gUnknown_02024C10 + ldr r3, _08021078 @ =gBattlescriptCurrInstr ldr r1, [r3] ldrb r2, [r1, 0x1] ldrb r0, [r1, 0x2] @@ -10455,12 +10455,12 @@ _0802106C: pop {r0} bx r0 .align 2, 0 -_08021078: .4byte gUnknown_02024C10 - thumb_func_end atk32_memcpy_with_offset +_08021078: .4byte gBattlescriptCurrInstr + thumb_func_end atk32_copyarray_withindex - thumb_func_start sub_802107C -sub_802107C: @ 802107C - ldr r3, _080210A4 @ =gUnknown_02024C10 + thumb_func_start atk33_orbyte +atk33_orbyte: @ 802107C + ldr r3, _080210A4 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -10481,13 +10481,13 @@ sub_802107C: @ 802107C str r0, [r3] bx lr .align 2, 0 -_080210A4: .4byte gUnknown_02024C10 - thumb_func_end sub_802107C +_080210A4: .4byte gBattlescriptCurrInstr + thumb_func_end atk33_orbyte thumb_func_start atk34_orhalfword atk34_orhalfword: @ 80210A8 push {r4,lr} - ldr r4, _080210DC @ =gUnknown_02024C10 + ldr r4, _080210DC @ =gBattlescriptCurrInstr ldr r3, [r4] ldrb r2, [r3, 0x1] ldrb r0, [r3, 0x2] @@ -10513,13 +10513,13 @@ atk34_orhalfword: @ 80210A8 pop {r0} bx r0 .align 2, 0 -_080210DC: .4byte gUnknown_02024C10 +_080210DC: .4byte gBattlescriptCurrInstr thumb_func_end atk34_orhalfword thumb_func_start atk35_orword atk35_orword: @ 80210E0 push {r4,lr} - ldr r4, _08021120 @ =gUnknown_02024C10 + ldr r4, _08021120 @ =gBattlescriptCurrInstr ldr r2, [r4] ldrb r3, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -10551,12 +10551,12 @@ atk35_orword: @ 80210E0 pop {r0} bx r0 .align 2, 0 -_08021120: .4byte gUnknown_02024C10 +_08021120: .4byte gBattlescriptCurrInstr thumb_func_end atk35_orword - thumb_func_start sub_8021124 -sub_8021124: @ 8021124 - ldr r3, _0802114C @ =gUnknown_02024C10 + thumb_func_start atk36_bicbyte +atk36_bicbyte: @ 8021124 + ldr r3, _0802114C @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -10577,13 +10577,13 @@ sub_8021124: @ 8021124 str r0, [r3] bx lr .align 2, 0 -_0802114C: .4byte gUnknown_02024C10 - thumb_func_end sub_8021124 +_0802114C: .4byte gBattlescriptCurrInstr + thumb_func_end atk36_bicbyte thumb_func_start atk37_bichalfword atk37_bichalfword: @ 8021150 push {r4,lr} - ldr r4, _08021184 @ =gUnknown_02024C10 + ldr r4, _08021184 @ =gBattlescriptCurrInstr ldr r3, [r4] ldrb r1, [r3, 0x1] ldrb r0, [r3, 0x2] @@ -10609,13 +10609,13 @@ atk37_bichalfword: @ 8021150 pop {r0} bx r0 .align 2, 0 -_08021184: .4byte gUnknown_02024C10 +_08021184: .4byte gBattlescriptCurrInstr thumb_func_end atk37_bichalfword thumb_func_start atk38_bicword atk38_bicword: @ 8021188 push {r4,lr} - ldr r4, _080211C8 @ =gUnknown_02024C10 + ldr r4, _080211C8 @ =gBattlescriptCurrInstr ldr r2, [r4] ldrb r3, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -10647,23 +10647,23 @@ atk38_bicword: @ 8021188 pop {r0} bx r0 .align 2, 0 -_080211C8: .4byte gUnknown_02024C10 +_080211C8: .4byte gBattlescriptCurrInstr thumb_func_end atk38_bicword thumb_func_start atk39_pause atk39_pause: @ 80211CC push {r4,r5,lr} - ldr r0, _08021200 @ =gUnknown_02024A64 + ldr r0, _08021200 @ =gBattleExecBuffer ldr r4, [r0] cmp r4, 0 bne _080211F8 - ldr r5, _08021204 @ =gUnknown_02024C10 + ldr r5, _08021204 @ =gBattlescriptCurrInstr ldr r2, [r5] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 - ldr r3, _08021208 @ =gUnknown_02024D18 + ldr r3, _08021208 @ =gPauseCounterBattle ldrh r0, [r3] adds r0, 0x1 strh r0, [r3] @@ -10679,19 +10679,19 @@ _080211F8: pop {r0} bx r0 .align 2, 0 -_08021200: .4byte gUnknown_02024A64 -_08021204: .4byte gUnknown_02024C10 -_08021208: .4byte gUnknown_02024D18 +_08021200: .4byte gBattleExecBuffer +_08021204: .4byte gBattlescriptCurrInstr +_08021208: .4byte gPauseCounterBattle thumb_func_end atk39_pause - thumb_func_start sub_802120C -sub_802120C: @ 802120C + thumb_func_start atk3A_waitstate +atk3A_waitstate: @ 802120C push {lr} - ldr r0, _08021224 @ =gUnknown_02024A64 + ldr r0, _08021224 @ =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 bne _0802121E - ldr r1, _08021228 @ =gUnknown_02024C10 + ldr r1, _08021228 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -10699,50 +10699,50 @@ _0802121E: pop {r0} bx r0 .align 2, 0 -_08021224: .4byte gUnknown_02024A64 -_08021228: .4byte gUnknown_02024C10 - thumb_func_end sub_802120C +_08021224: .4byte gBattleExecBuffer +_08021228: .4byte gBattlescriptCurrInstr + thumb_func_end atk3A_waitstate - thumb_func_start atk3B_8022C68 -atk3B_8022C68: @ 802122C + thumb_func_start atk3B_healthbar_update +atk3B_healthbar_update: @ 802122C push {lr} - ldr r0, _08021240 @ =gUnknown_02024C10 + ldr r0, _08021240 @ =gBattlescriptCurrInstr ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0 bne _0802124C - ldr r0, _08021244 @ =gUnknown_02024A60 - ldr r1, _08021248 @ =gEnemyMonIndex + ldr r0, _08021244 @ =gActiveBank + ldr r1, _08021248 @ =gBankTarget b _08021250 .align 2, 0 -_08021240: .4byte gUnknown_02024C10 -_08021244: .4byte gUnknown_02024A60 -_08021248: .4byte gEnemyMonIndex +_08021240: .4byte gBattlescriptCurrInstr +_08021244: .4byte gActiveBank +_08021248: .4byte gBankTarget _0802124C: - ldr r0, _08021274 @ =gUnknown_02024A60 - ldr r1, _08021278 @ =gPlayerMonIndex + ldr r0, _08021274 @ =gActiveBank + ldr r1, _08021278 @ =gBankAttacker _08021250: ldrb r1, [r1] strb r1, [r0] ldr r0, _0802127C @ =gBattleMoveDamage ldrh r1, [r0] movs r0, 0 - bl dp01_build_cmdbuf_x18_0_aa_health_bar_update - ldr r0, _08021274 @ =gUnknown_02024A60 + bl EmitHealthBarUpdate + ldr r0, _08021274 @ =gActiveBank ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _08021280 @ =gUnknown_02024C10 + bl MarkBufferBankForExecution + ldr r1, _08021280 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x2 str r0, [r1] pop {r0} bx r0 .align 2, 0 -_08021274: .4byte gUnknown_02024A60 -_08021278: .4byte gPlayerMonIndex +_08021274: .4byte gActiveBank +_08021278: .4byte gBankAttacker _0802127C: .4byte gBattleMoveDamage -_08021280: .4byte gUnknown_02024C10 - thumb_func_end atk3B_8022C68 +_08021280: .4byte gBattlescriptCurrInstr + thumb_func_end atk3B_healthbar_update thumb_func_start atk3C_return atk3C_return: @ 8021284 @@ -10752,36 +10752,36 @@ atk3C_return: @ 8021284 bx r0 thumb_func_end atk3C_return - thumb_func_start sub_8021290 -sub_8021290: @ 8021290 + thumb_func_start atk3D_end +atk3D_end: @ 8021290 ldr r0, _080212A4 @ =gBattleMoveFlags movs r1, 0 strb r1, [r0] - ldr r0, _080212A8 @ =gUnknown_02024A60 + ldr r0, _080212A8 @ =gActiveBank strb r1, [r0] - ldr r1, _080212AC @ =gUnknown_02024A7F + ldr r1, _080212AC @ =gFightStateTracker movs r0, 0xB strb r0, [r1] bx lr .align 2, 0 _080212A4: .4byte gBattleMoveFlags -_080212A8: .4byte gUnknown_02024A60 -_080212AC: .4byte gUnknown_02024A7F - thumb_func_end sub_8021290 +_080212A8: .4byte gActiveBank +_080212AC: .4byte gFightStateTracker + thumb_func_end atk3D_end - thumb_func_start sub_80212B0 -sub_80212B0: @ 80212B0 - ldr r1, _080212C0 @ =gUnknown_02024A60 + thumb_func_start atk3E_end2 +atk3E_end2: @ 80212B0 + ldr r1, _080212C0 @ =gActiveBank movs r0, 0 strb r0, [r1] - ldr r1, _080212C4 @ =gUnknown_02024A7F + ldr r1, _080212C4 @ =gFightStateTracker movs r0, 0xB strb r0, [r1] bx lr .align 2, 0 -_080212C0: .4byte gUnknown_02024A60 -_080212C4: .4byte gUnknown_02024A7F - thumb_func_end sub_80212B0 +_080212C0: .4byte gActiveBank +_080212C4: .4byte gFightStateTracker + thumb_func_end atk3E_end2 thumb_func_start atk3F_end3 atk3F_end3: @ 80212C8 @@ -10796,7 +10796,7 @@ atk3F_end3: @ 80212C8 subs r0, 0x1 strb r0, [r1] _080212DE: - ldr r0, _080212F4 @ =gUnknown_030042D4 + ldr r0, _080212F4 @ =gBattleMainFunc ldrb r1, [r1] lsls r1, 2 adds r1, r2 @@ -10806,13 +10806,13 @@ _080212DE: bx r0 .align 2, 0 _080212F0: .4byte 0x02017140 -_080212F4: .4byte gUnknown_030042D4 +_080212F4: .4byte gBattleMainFunc thumb_func_end atk3F_end3 thumb_func_start atk41_call atk41_call: @ 80212F8 push {r4,lr} - ldr r4, _08021324 @ =gUnknown_02024C10 + ldr r4, _08021324 @ =gBattlescriptCurrInstr ldr r0, [r4] adds r0, 0x5 bl b_movescr_stack_push @@ -10832,13 +10832,13 @@ atk41_call: @ 80212F8 pop {r0} bx r0 .align 2, 0 -_08021324: .4byte gUnknown_02024C10 +_08021324: .4byte gBattlescriptCurrInstr thumb_func_end atk41_call thumb_func_start atk42_jumpiftype2 atk42_jumpiftype2: @ 8021328 push {r4,lr} - ldr r4, _08021370 @ =gUnknown_02024C10 + ldr r4, _08021370 @ =gBattlescriptCurrInstr ldr r0, [r4] ldrb r0, [r0, 0x1] bl sub_8015150 @@ -10873,7 +10873,7 @@ _08021356: str r1, [r4] b _0802137C .align 2, 0 -_08021370: .4byte gUnknown_02024C10 +_08021370: .4byte gBattlescriptCurrInstr _08021374: .4byte gBattleMons _08021378: adds r0, r3, 0x7 @@ -10884,11 +10884,11 @@ _0802137C: bx r0 thumb_func_end atk42_jumpiftype2 - thumb_func_start sub_8021384 -sub_8021384: @ 8021384 + thumb_func_start atk43_jumpifabilitypresent +atk43_jumpifabilitypresent: @ 8021384 push {r4,lr} sub sp, 0x4 - ldr r4, _080213BC @ =gUnknown_02024C10 + ldr r4, _080213BC @ =gBattlescriptCurrInstr ldr r0, [r4] ldrb r2, [r0, 0x1] movs r0, 0 @@ -10896,7 +10896,7 @@ sub_8021384: @ 8021384 movs r0, 0x13 movs r1, 0 movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 beq _080213C0 @@ -10914,7 +10914,7 @@ sub_8021384: @ 8021384 str r1, [r4] b _080213C6 .align 2, 0 -_080213BC: .4byte gUnknown_02024C10 +_080213BC: .4byte gBattlescriptCurrInstr _080213C0: ldr r0, [r4] adds r0, 0x6 @@ -10924,12 +10924,12 @@ _080213C6: pop {r4} pop {r0} bx r0 - thumb_func_end sub_8021384 + thumb_func_end atk43_jumpifabilitypresent - thumb_func_start sub_80213D0 -sub_80213D0: @ 80213D0 + thumb_func_start atk44 +atk44: @ 80213D0 ldr r1, _080213E4 @ =0x02000000 - ldr r0, _080213E8 @ =gPlayerMonIndex + ldr r0, _080213E8 @ =gBankAttacker ldrb r0, [r0] ldr r2, _080213EC @ =0x00016060 adds r0, r2 @@ -10939,18 +10939,18 @@ sub_80213D0: @ 80213D0 bx lr .align 2, 0 _080213E4: .4byte 0x02000000 -_080213E8: .4byte gPlayerMonIndex +_080213E8: .4byte gBankAttacker _080213EC: .4byte 0x00016060 - thumb_func_end sub_80213D0 + thumb_func_end atk44 - thumb_func_start atk46_cmd46 -atk46_cmd46: @ 80213F0 + thumb_func_start atk45_playanimation +atk45_playanimation: @ 80213F0 push {r4-r6,lr} - ldr r5, _08021444 @ =gUnknown_02024C10 + ldr r5, _08021444 @ =gBattlescriptCurrInstr ldr r0, [r5] ldrb r0, [r0, 0x1] bl sub_8015150 - ldr r6, _08021448 @ =gUnknown_02024A60 + ldr r6, _08021448 @ =gActiveBank strb r0, [r6] ldr r2, [r5] ldrb r1, [r2, 0x3] @@ -10972,24 +10972,24 @@ atk46_cmd46: @ 80213F0 cmp r0, 0x2 bne _0802144C _08021426: - ldr r4, _08021444 @ =gUnknown_02024C10 + ldr r4, _08021444 @ =gBattlescriptCurrInstr ldr r0, [r4] ldrb r1, [r0, 0x2] ldrh r2, [r3] movs r0, 0 - bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim - ldr r0, _08021448 @ =gUnknown_02024A60 + bl EmitBattleAnimation + ldr r0, _08021448 @ =gActiveBank ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution ldr r0, [r4] adds r0, 0x7 str r0, [r4] b _080214AE .align 2, 0 -_08021444: .4byte gUnknown_02024C10 -_08021448: .4byte gUnknown_02024A60 +_08021444: .4byte gBattlescriptCurrInstr +_08021448: .4byte gActiveBank _0802144C: - ldr r0, _08021464 @ =gUnknown_02024C6C + ldr r0, _08021464 @ =gHitMarker ldr r0, [r0] movs r1, 0x80 ands r0, r1 @@ -10997,11 +10997,11 @@ _0802144C: beq _0802146C adds r0, r2, 0x7 bl b_movescr_stack_push - ldr r0, _08021468 @ =gUnknown_081D8EEF + ldr r0, _08021468 @ =BattleScript_Pausex20 b _080214AC .align 2, 0 -_08021464: .4byte gUnknown_02024C6C -_08021468: .4byte gUnknown_081D8EEF +_08021464: .4byte gHitMarker +_08021468: .4byte BattleScript_Pausex20 _0802146C: adds r0, r4, 0 subs r0, 0xA @@ -11009,7 +11009,7 @@ _0802146C: lsrs r0, 24 cmp r0, 0x3 bls _08021498 - ldr r1, _08021490 @ =gUnknown_02024C98 + ldr r1, _08021490 @ =gStatuses3 ldrb r0, [r6] lsls r0, 2 adds r0, r1 @@ -11021,15 +11021,15 @@ _0802146C: adds r0, r2, 0x7 b _080214AC .align 2, 0 -_08021490: .4byte gUnknown_02024C98 +_08021490: .4byte gStatuses3 _08021494: .4byte 0x000400c0 _08021498: ldrb r1, [r2, 0x2] ldrh r2, [r3] movs r0, 0 - bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim + bl EmitBattleAnimation ldrb r0, [r6] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution ldr r0, [r5] adds r0, 0x7 _080214AC: @@ -11038,16 +11038,16 @@ _080214AE: pop {r4-r6} pop {r0} bx r0 - thumb_func_end atk46_cmd46 + thumb_func_end atk45_playanimation - thumb_func_start sub_80214B4 -sub_80214B4: @ 80214B4 + thumb_func_start atk46_playanimation2 +atk46_playanimation2: @ 80214B4 push {r4-r7,lr} - ldr r6, _0802151C @ =gUnknown_02024C10 + ldr r6, _0802151C @ =gBattlescriptCurrInstr ldr r0, [r6] ldrb r0, [r0, 0x1] bl sub_8015150 - ldr r7, _08021520 @ =gUnknown_02024A60 + ldr r7, _08021520 @ =gActiveBank strb r0, [r7] ldr r2, [r6] ldrb r1, [r2, 0x2] @@ -11082,20 +11082,20 @@ _080214FE: ldrb r1, [r3] ldrh r2, [r4] movs r0, 0 - bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim - ldr r0, _08021520 @ =gUnknown_02024A60 + bl EmitBattleAnimation + ldr r0, _08021520 @ =gActiveBank ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _0802151C @ =gUnknown_02024C10 + bl MarkBufferBankForExecution + ldr r1, _0802151C @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0xA str r0, [r1] b _0802157A .align 2, 0 -_0802151C: .4byte gUnknown_02024C10 -_08021520: .4byte gUnknown_02024A60 +_0802151C: .4byte gBattlescriptCurrInstr +_08021520: .4byte gActiveBank _08021524: - ldr r0, _08021534 @ =gUnknown_02024C6C + ldr r0, _08021534 @ =gHitMarker ldr r0, [r0] movs r1, 0x80 ands r0, r1 @@ -11104,7 +11104,7 @@ _08021524: adds r0, r2, 0 b _08021576 .align 2, 0 -_08021534: .4byte gUnknown_02024C6C +_08021534: .4byte gHitMarker _08021538: adds r0, r5, 0 subs r0, 0xA @@ -11112,7 +11112,7 @@ _08021538: lsrs r0, 24 cmp r0, 0x3 bls _08021564 - ldr r1, _0802155C @ =gUnknown_02024C98 + ldr r1, _0802155C @ =gStatuses3 ldrb r0, [r7] lsls r0, 2 adds r0, r1 @@ -11124,15 +11124,15 @@ _08021538: adds r0, r2, 0 b _08021576 .align 2, 0 -_0802155C: .4byte gUnknown_02024C98 +_0802155C: .4byte gStatuses3 _08021560: .4byte 0x000400c0 _08021564: ldrb r1, [r3] ldrh r2, [r4] movs r0, 0 - bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim + bl EmitBattleAnimation ldrb r0, [r7] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution ldr r0, [r6] _08021576: adds r0, 0xA @@ -11141,10 +11141,10 @@ _0802157A: pop {r4-r7} pop {r0} bx r0 - thumb_func_end sub_80214B4 + thumb_func_end atk46_playanimation2 - thumb_func_start atk47 -atk47: @ 8021580 + thumb_func_start atk47_setgraphicalstatchangevalues_setgraphicalstatchangevalues_setgraphicalstatchangevalues +atk47_setgraphicalstatchangevalues_setgraphicalstatchangevalues_setgraphicalstatchangevalues: @ 8021580 push {r4,lr} movs r3, 0 ldr r0, _080215A0 @ =0x02000000 @@ -11196,7 +11196,7 @@ _080215C0: ldr r1, _080215F4 @ =0x000160a5 adds r0, r4, r1 strb r2, [r0] - ldr r1, _080215F8 @ =gUnknown_02024C10 + ldr r1, _080215F8 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -11207,8 +11207,8 @@ _080215C0: _080215EC: .4byte 0x0001601e _080215F0: .4byte 0x000160a4 _080215F4: .4byte 0x000160a5 -_080215F8: .4byte gUnknown_02024C10 - thumb_func_end atk47 +_080215F8: .4byte gBattlescriptCurrInstr + thumb_func_end atk47_setgraphicalstatchangevalues_setgraphicalstatchangevalues_setgraphicalstatchangevalues thumb_func_start atk48_playstatchangeanimation atk48_playstatchangeanimation: @ 80215FC @@ -11222,12 +11222,12 @@ atk48_playstatchangeanimation: @ 80215FC movs r0, 0 mov r8, r0 movs r3, 0 - ldr r5, _08021670 @ =gUnknown_02024C10 + ldr r5, _08021670 @ =gBattlescriptCurrInstr ldr r0, [r5] ldrb r0, [r0, 0x1] str r3, [sp] bl sub_8015150 - ldr r2, _08021674 @ =gUnknown_02024A60 + ldr r2, _08021674 @ =gActiveBank strb r0, [r2] ldr r0, [r5] ldrb r4, [r0, 0x2] @@ -11257,34 +11257,34 @@ _0802164A: ands r0, r1 cmp r0, 0 beq _080216D6 - ldr r0, _08021670 @ =gUnknown_02024C10 + ldr r0, _08021670 @ =gBattlescriptCurrInstr ldr r0, [r0] ldrb r1, [r0, 0x3] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0802167C - ldr r0, _08021674 @ =gUnknown_02024A60 + ldr r0, _08021674 @ =gActiveBank ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r7, r0 b _080216C4 .align 2, 0 -_08021670: .4byte gUnknown_02024C10 -_08021674: .4byte gUnknown_02024A60 +_08021670: .4byte gBattlescriptCurrInstr +_08021674: .4byte gActiveBank _08021678: .4byte gUnknown_02024A98 _0802167C: - ldr r6, _08021700 @ =gUnknown_02024A60 + ldr r6, _08021700 @ =gActiveBank ldrb r0, [r6] str r3, [sp] - bl battle_get_per_side_status + bl GetBankIdentity mov r1, r10 ands r1, r0 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 - ldr r1, _08021704 @ =gUnknown_02024C80 + ldr r1, _08021704 @ =gSideTimer adds r0, r1 ldrb r0, [r0, 0x2] ldr r3, [sp] @@ -11331,7 +11331,7 @@ _080216D6: cmp r4, 0 bne _0802164A _080216E4: - ldr r0, _0802170C @ =gUnknown_02024C10 + ldr r0, _0802170C @ =gBattlescriptCurrInstr mov r9, r0 cmp r3, 0x1 ble _08021772 @@ -11346,10 +11346,10 @@ _080216E4: movs r0, 0x3A b _08021770 .align 2, 0 -_08021700: .4byte gUnknown_02024A60 -_08021704: .4byte gUnknown_02024C80 +_08021700: .4byte gActiveBank +_08021704: .4byte gSideTimer _08021708: .4byte gBattleMons -_0802170C: .4byte gUnknown_02024C10 +_0802170C: .4byte gBattlescriptCurrInstr _08021710: movs r0, 0x2 ands r0, r1 @@ -11433,11 +11433,11 @@ _08021790: movs r1, 0x1 mov r2, r8 str r3, [sp] - bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim - ldr r0, _080217D8 @ =gUnknown_02024A60 + bl EmitBattleAnimation + ldr r0, _080217D8 @ =gActiveBank ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, _080217DC @ =gUnknown_02024C10 + bl MarkBufferBankForExecution + ldr r0, _080217DC @ =gBattlescriptCurrInstr ldr r0, [r0] ldrb r1, [r0, 0x3] movs r0, 0x4 @@ -11450,13 +11450,13 @@ _08021790: movs r0, 0x1 strb r0, [r4] _080217CC: - ldr r1, _080217DC @ =gUnknown_02024C10 + ldr r1, _080217DC @ =gBattlescriptCurrInstr b _080217E2 .align 2, 0 _080217D0: .4byte 0x02000000 _080217D4: .4byte 0x000160dc -_080217D8: .4byte gUnknown_02024A60 -_080217DC: .4byte gUnknown_02024C10 +_080217D8: .4byte gActiveBank +_080217DC: .4byte gBattlescriptCurrInstr _080217E0: mov r1, r9 _080217E2: @@ -11484,14 +11484,14 @@ sub_80217F8: @ 80217F8 sub sp, 0x18 movs r0, 0 mov r10, r0 - ldr r0, _08021834 @ =gUnknown_02024C10 + ldr r0, _08021834 @ =gBattlescriptCurrInstr ldr r0, [r0] ldrb r1, [r0, 0x1] str r1, [sp, 0x10] ldrb r0, [r0, 0x2] str r0, [sp, 0x14] ldr r1, _08021838 @ =gBattleMons - ldr r0, _0802183C @ =gPlayerMonIndex + ldr r0, _0802183C @ =gBankAttacker ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -11507,9 +11507,9 @@ sub_80217F8: @ 80217F8 ldrb r0, [r0, 0x7] b _0802184E .align 2, 0 -_08021834: .4byte gUnknown_02024C10 +_08021834: .4byte gBattlescriptCurrInstr _08021838: .4byte gBattleMons -_0802183C: .4byte gPlayerMonIndex +_0802183C: .4byte gBankAttacker _08021840: .4byte gEnigmaBerries _08021844: ldrh r0, [r1, 0x2E] @@ -11518,7 +11518,7 @@ _08021844: lsrs r0, 24 _0802184E: str r0, [sp, 0x8] - ldr r0, _0802186C @ =gPlayerMonIndex + ldr r0, _0802186C @ =gBankAttacker ldrb r1, [r0] lsls r1, 1 ldr r0, _08021870 @ =0x020160e8 @@ -11533,7 +11533,7 @@ _0802184E: str r2, [sp, 0x4] b _080218D2 .align 2, 0 -_0802186C: .4byte gPlayerMonIndex +_0802186C: .4byte gBankAttacker _08021870: .4byte 0x020160e8 _08021874: strb r2, [r7] @@ -11557,18 +11557,18 @@ _08021874: adds r0, r2 ldr r0, [r0] bl b_movescr_stack_push - ldr r1, _080218B8 @ =gUnknown_02024C10 + ldr r1, _080218B8 @ =gBattlescriptCurrInstr ldr r0, _080218BC @ =gUnknown_081D9B2D bl _0802229C .align 2, 0 _080218AC: .4byte 0x02000000 _080218B0: .4byte 0x0001600c _080218B4: .4byte gUnknown_081D6BBC -_080218B8: .4byte gUnknown_02024C10 +_080218B8: .4byte gBattlescriptCurrInstr _080218BC: .4byte gUnknown_081D9B2D _080218C0: ldr r2, _080218D8 @ =gBattleMoves - ldr r0, _080218DC @ =gUnknown_02024BE6 + ldr r0, _080218DC @ =gCurrentMove ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -11582,7 +11582,7 @@ _080218D2: b _080218EE .align 2, 0 _080218D8: .4byte gBattleMoves -_080218DC: .4byte gUnknown_02024BE6 +_080218DC: .4byte gCurrentMove _080218E0: .4byte 0x02000000 _080218E4: mov r0, r10 @@ -11627,7 +11627,7 @@ _08021910: .4byte _0802224E _08021958: ldr r5, _08021A08 @ =gBattleMons - ldr r2, _08021A0C @ =gEnemyMonIndex + ldr r2, _08021A0C @ =gBankTarget ldrb r4, [r2] movs r6, 0x58 adds r3, r4, 0 @@ -11645,16 +11645,16 @@ _08021958: ldrh r0, [r0, 0x28] cmp r0, 0 beq _080219FE - ldr r0, _08021A10 @ =gPlayerMonIndex + ldr r0, _08021A10 @ =gBankAttacker ldrb r1, [r0] cmp r1, r4 beq _080219FE adds r0, r1, 0 - bl battle_side_get_owner + bl GetBankSide adds r4, r0, 0 - ldr r1, _08021A0C @ =gEnemyMonIndex + ldr r1, _08021A0C @ =gBankTarget ldrb r0, [r1] - bl battle_side_get_owner + bl GetBankSide lsls r4, 24 lsls r0, 24 cmp r4, r0 @@ -11665,8 +11665,8 @@ _08021958: ands r0, r1 cmp r0, 0 bne _080219FE - ldr r2, _08021A18 @ =gUnknown_02024D28 - ldr r4, _08021A0C @ =gEnemyMonIndex + ldr r2, _08021A18 @ =gProtectStructs + ldr r4, _08021A0C @ =gBankTarget ldrb r3, [r4] lsls r1, r3, 4 adds r0, r2, 0x4 @@ -11682,7 +11682,7 @@ _08021958: beq _080219FE _080219C8: ldr r2, _08021A1C @ =gBattleMoves - ldr r0, _08021A20 @ =gUnknown_02024BE6 + ldr r0, _08021A20 @ =gCurrentMove ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -11702,7 +11702,7 @@ _080219C8: adds r0, r2, 0x1 strb r0, [r1, 0x19] bl b_movescr_stack_push_cursor - ldr r1, _08021A24 @ =gUnknown_02024C10 + ldr r1, _08021A24 @ =gBattlescriptCurrInstr ldr r0, _08021A28 @ =gUnknown_081D9132 str r0, [r1] movs r5, 0x1 @@ -11714,19 +11714,19 @@ _080219FE: b _08021E00 .align 2, 0 _08021A08: .4byte gBattleMons -_08021A0C: .4byte gEnemyMonIndex -_08021A10: .4byte gPlayerMonIndex +_08021A0C: .4byte gBankTarget +_08021A10: .4byte gBankAttacker _08021A14: .4byte gBattleMoveFlags -_08021A18: .4byte gUnknown_02024D28 +_08021A18: .4byte gProtectStructs _08021A1C: .4byte gBattleMoves -_08021A20: .4byte gUnknown_02024BE6 -_08021A24: .4byte gUnknown_02024C10 +_08021A20: .4byte gCurrentMove +_08021A24: .4byte gBattlescriptCurrInstr _08021A28: .4byte gUnknown_081D9132 _08021A2C: .4byte 0x02000000 _08021A30: .4byte 0x0001600c _08021A34: ldr r2, _08021AD0 @ =gBattleMons - ldr r1, _08021AD4 @ =gEnemyMonIndex + ldr r1, _08021AD4 @ =gBankTarget ldrb r4, [r1] movs r3, 0x58 mov r12, r3 @@ -11748,13 +11748,13 @@ _08021A54: bne _08021A5E b _08021DFA _08021A5E: - ldr r0, _08021AD8 @ =gPlayerMonIndex + ldr r0, _08021AD8 @ =gBankAttacker ldrb r0, [r0] cmp r0, r4 bne _08021A68 b _08021DFA _08021A68: - ldr r0, _08021ADC @ =gUnknown_02024D68 + ldr r0, _08021ADC @ =gSpecialStatuses lsls r1, r4, 2 adds r1, r4 lsls r1, 2 @@ -11782,8 +11782,8 @@ _08021A92: negs r0, r0 ands r5, r0 str r5, [r6] - ldr r4, _08021AE4 @ =gUnknown_02024A60 - ldr r5, _08021AD4 @ =gEnemyMonIndex + ldr r4, _08021AE4 @ =gActiveBank + ldr r5, _08021AD4 @ =gBankTarget ldrb r0, [r5] strb r0, [r4] ldrb r0, [r5] @@ -11796,11 +11796,11 @@ _08021A92: movs r1, 0x28 movs r2, 0 movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs + bl EmitSetAttributes ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution bl b_movescr_stack_push_cursor - ldr r1, _08021AE8 @ =gUnknown_02024C10 + ldr r1, _08021AE8 @ =gBattlescriptCurrInstr ldr r0, _08021AEC @ =gUnknown_081D955D str r0, [r1] movs r2, 0x1 @@ -11808,22 +11808,22 @@ _08021A92: b _08021DFA .align 2, 0 _08021AD0: .4byte gBattleMons -_08021AD4: .4byte gEnemyMonIndex -_08021AD8: .4byte gPlayerMonIndex -_08021ADC: .4byte gUnknown_02024D68 +_08021AD4: .4byte gBankTarget +_08021AD8: .4byte gBankAttacker +_08021ADC: .4byte gSpecialStatuses _08021AE0: .4byte gBattleMoveFlags -_08021AE4: .4byte gUnknown_02024A60 -_08021AE8: .4byte gUnknown_02024C10 +_08021AE4: .4byte gActiveBank +_08021AE8: .4byte gBattlescriptCurrInstr _08021AEC: .4byte gUnknown_081D955D _08021AF0: - ldr r0, _08021B14 @ =gEnemyMonIndex + ldr r0, _08021B14 @ =gBankTarget ldrb r1, [r0] movs r0, 0 str r0, [sp] movs r0, 0x7 movs r2, 0 movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 beq _08021B0C @@ -11835,18 +11835,18 @@ _08021B0C: adds r1, r2, r5 b _08021E00 .align 2, 0 -_08021B14: .4byte gEnemyMonIndex +_08021B14: .4byte gBankTarget _08021B18: .4byte 0x02000000 _08021B1C: .4byte 0x0001600c _08021B20: - ldr r0, _08021B40 @ =gEnemyMonIndex + ldr r0, _08021B40 @ =gBankTarget ldrb r1, [r0] movs r0, 0 str r0, [sp] movs r0, 0x4 movs r2, 0 movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 bne _08021B3A @@ -11856,7 +11856,7 @@ _08021B3A: mov r10, r0 b _08021DFA .align 2, 0 -_08021B40: .4byte gEnemyMonIndex +_08021B40: .4byte gBankTarget _08021B44: movs r0, 0 str r0, [sp] @@ -11864,7 +11864,7 @@ _08021B44: movs r1, 0 movs r2, 0 movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 beq _08021B68 @@ -11884,14 +11884,14 @@ _08021B68: _08021B70: .4byte 0x02000000 _08021B74: .4byte 0x0001600c _08021B78: - ldr r0, _08021B98 @ =gPlayerMonIndex + ldr r0, _08021B98 @ =gBankAttacker ldrb r1, [r0] movs r0, 0 str r0, [sp] movs r0, 0x8 movs r2, 0 movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 bne _08021B92 @@ -11901,9 +11901,9 @@ _08021B92: mov r10, r1 b _08021DFA .align 2, 0 -_08021B98: .4byte gPlayerMonIndex +_08021B98: .4byte gBankAttacker _08021B9C: - ldr r0, _08021C28 @ =gUnknown_02024C6C + ldr r0, _08021C28 @ =gHitMarker ldr r0, [r0] movs r1, 0x80 lsls r1, 18 @@ -11942,7 +11942,7 @@ _08021BDA: _08021BE0: movs r4, 0 ldr r2, _08021C38 @ =gBattleMons - ldr r3, _08021C3C @ =gPlayerMonIndex + ldr r3, _08021C3C @ =gBankAttacker ldrb r1, [r3] movs r0, 0x58 muls r0, r1 @@ -11980,15 +11980,15 @@ _08021C22: strh r0, [r1] b _08022244 .align 2, 0 -_08021C28: .4byte gUnknown_02024C6C +_08021C28: .4byte gHitMarker _08021C2C: .4byte gUnknown_02024BE8 _08021C30: .4byte 0x0000ffff _08021C34: .4byte gBattleMoveFlags _08021C38: .4byte gBattleMons -_08021C3C: .4byte gPlayerMonIndex +_08021C3C: .4byte gBankAttacker _08021C40: movs r4, 0 - ldr r0, _08021C6C @ =gUnknown_02024A68 + ldr r0, _08021C6C @ =gNoOfAllBanks ldrb r2, [r0] cmp r4, r2 blt _08021C4C @@ -12012,7 +12012,7 @@ _08021C5C: blt _08021C52 b _08022244 .align 2, 0 -_08021C6C: .4byte gUnknown_02024A68 +_08021C6C: .4byte gNoOfAllBanks _08021C70: .4byte 0x020160f0 _08021C74: .4byte gBattleMons _08021C78: @@ -12057,8 +12057,8 @@ _08021CBC: _08021CC4: .4byte 0x02000000 _08021CC8: .4byte 0x0001600c _08021CCC: - ldr r1, _08021D04 @ =gUnknown_02024C98 - ldr r0, _08021D08 @ =gPlayerMonIndex + ldr r1, _08021D04 @ =gStatuses3 + ldr r0, _08021D08 @ =gBankAttacker ldrb r2, [r0] lsls r0, r2, 2 adds r0, r1 @@ -12069,7 +12069,7 @@ _08021CCC: bne _08021CE2 b _08021DFA _08021CE2: - ldr r0, _08021D10 @ =gUnknown_02024C6C + ldr r0, _08021D10 @ =gHitMarker ldr r0, [r0] movs r1, 0x80 ands r0, r1 @@ -12077,20 +12077,20 @@ _08021CE2: bne _08021CF0 b _08021DFA _08021CF0: - ldr r4, _08021D14 @ =gUnknown_02024A60 + ldr r4, _08021D14 @ =gActiveBank strb r2, [r4] movs r0, 0 movs r1, 0x1 - bl dp01_build_cmdbuf_x33_a_33_33 + bl EmitSpriteInvisibility ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution b _08021DFA .align 2, 0 -_08021D04: .4byte gUnknown_02024C98 -_08021D08: .4byte gPlayerMonIndex +_08021D04: .4byte gStatuses3 +_08021D08: .4byte gBankAttacker _08021D0C: .4byte 0x000400c0 -_08021D10: .4byte gUnknown_02024C6C -_08021D14: .4byte gUnknown_02024A60 +_08021D10: .4byte gHitMarker +_08021D14: .4byte gActiveBank _08021D18: ldr r0, _08021D88 @ =gBattleMoveFlags ldrb r1, [r0] @@ -12098,8 +12098,8 @@ _08021D18: ands r0, r1 cmp r0, 0 bne _08021D44 - ldr r1, _08021D8C @ =gUnknown_02024C98 - ldr r0, _08021D90 @ =gPlayerMonIndex + ldr r1, _08021D8C @ =gStatuses3 + ldr r0, _08021D90 @ =gBankAttacker ldrb r2, [r0] lsls r0, r2, 2 adds r0, r1 @@ -12114,16 +12114,16 @@ _08021D18: cmp r0, 0 beq _08021D7E _08021D44: - ldr r4, _08021D98 @ =gUnknown_02024A60 - ldr r5, _08021D90 @ =gPlayerMonIndex + ldr r4, _08021D98 @ =gActiveBank + ldr r5, _08021D90 @ =gBankAttacker ldrb r0, [r5] strb r0, [r4] movs r0, 0 movs r1, 0 - bl dp01_build_cmdbuf_x33_a_33_33 + bl EmitSpriteInvisibility ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, _08021D8C @ =gUnknown_02024C98 + bl MarkBufferBankForExecution + ldr r0, _08021D8C @ =gStatuses3 ldrb r2, [r5] lsls r2, 2 adds r2, r0 @@ -12131,7 +12131,7 @@ _08021D44: ldr r1, _08021D9C @ =0xfffbff3f ands r0, r1 str r0, [r2] - ldr r2, _08021DA0 @ =gUnknown_02024D68 + ldr r2, _08021DA0 @ =gSpecialStatuses ldrb r1, [r5] lsls r0, r1, 2 adds r0, r1 @@ -12148,17 +12148,17 @@ _08021D7E: b _08021E00 .align 2, 0 _08021D88: .4byte gBattleMoveFlags -_08021D8C: .4byte gUnknown_02024C98 -_08021D90: .4byte gPlayerMonIndex +_08021D8C: .4byte gStatuses3 +_08021D90: .4byte gBankAttacker _08021D94: .4byte 0x000400c0 -_08021D98: .4byte gUnknown_02024A60 +_08021D98: .4byte gActiveBank _08021D9C: .4byte 0xfffbff3f -_08021DA0: .4byte gUnknown_02024D68 +_08021DA0: .4byte gSpecialStatuses _08021DA4: .4byte 0x02000000 _08021DA8: .4byte 0x0001600c _08021DAC: - ldr r2, _08021E0C @ =gUnknown_02024D68 - ldr r1, _08021E10 @ =gEnemyMonIndex + ldr r2, _08021E0C @ =gSpecialStatuses + ldr r1, _08021E10 @ =gBankTarget ldrb r3, [r1] lsls r4, r3, 2 adds r0, r4, r3 @@ -12168,25 +12168,25 @@ _08021DAC: lsls r0, 29 cmp r0, 0 blt _08021DFA - ldr r0, _08021E14 @ =gUnknown_02024A68 + ldr r0, _08021E14 @ =gNoOfAllBanks ldrb r0, [r0] cmp r3, r0 bcs _08021DFA - ldr r5, _08021E18 @ =gUnknown_02024C98 + ldr r5, _08021E18 @ =gStatuses3 adds r0, r4, r5 ldr r0, [r0] ldr r1, _08021E1C @ =0x000400c0 ands r0, r1 cmp r0, 0 bne _08021DFA - ldr r4, _08021E20 @ =gUnknown_02024A60 + ldr r4, _08021E20 @ =gActiveBank strb r3, [r4] movs r0, 0 movs r1, 0 - bl dp01_build_cmdbuf_x33_a_33_33 + bl EmitSpriteInvisibility ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, _08021E10 @ =gEnemyMonIndex + bl MarkBufferBankForExecution + ldr r0, _08021E10 @ =gBankTarget ldrb r2, [r0] lsls r2, 2 adds r2, r5 @@ -12205,24 +12205,24 @@ _08021E00: mov r12, r2 b _0802224E .align 2, 0 -_08021E0C: .4byte gUnknown_02024D68 -_08021E10: .4byte gEnemyMonIndex -_08021E14: .4byte gUnknown_02024A68 -_08021E18: .4byte gUnknown_02024C98 +_08021E0C: .4byte gSpecialStatuses +_08021E10: .4byte gBankTarget +_08021E14: .4byte gNoOfAllBanks +_08021E18: .4byte gStatuses3 _08021E1C: .4byte 0x000400c0 -_08021E20: .4byte gUnknown_02024A60 +_08021E20: .4byte gActiveBank _08021E24: .4byte 0xfffbff3f _08021E28: .4byte 0x02000000 _08021E2C: .4byte 0x0001600c _08021E30: movs r4, 0 - ldr r0, _08021E60 @ =gUnknown_02024A68 + ldr r0, _08021E60 @ =gNoOfAllBanks ldrb r5, [r0] cmp r4, r5 blt _08021E3C b _08022244 _08021E3C: - ldr r2, _08021E64 @ =gUnknown_02024CA8 + ldr r2, _08021E64 @ =gDisableStructs ldr r5, _08021E68 @ =0xfeffffff adds r3, r0, 0 ldr r1, _08021E6C @ =gUnknown_02024AD0 @@ -12242,25 +12242,25 @@ _08021E50: blt _08021E44 b _08022244 .align 2, 0 -_08021E60: .4byte gUnknown_02024A68 -_08021E64: .4byte gUnknown_02024CA8 +_08021E60: .4byte gNoOfAllBanks +_08021E64: .4byte gDisableStructs _08021E68: .4byte 0xfeffffff _08021E6C: .4byte gUnknown_02024AD0 _08021E70: - ldr r1, _08021F2C @ =gUnknown_02024C6C + ldr r1, _08021F2C @ =gHitMarker ldr r3, [r1] movs r0, 0x80 lsls r0, 5 ands r0, r3 - ldr r2, _08021F30 @ =gPlayerMonIndex + ldr r2, _08021F30 @ =gBankAttacker mov r9, r2 adds r5, r1, 0 cmp r0, 0 beq _08021E9A - ldr r0, _08021F34 @ =gUnknown_02024A60 + ldr r0, _08021F34 @ =gActiveBank ldrb r2, [r2] strb r2, [r0] - ldr r1, _08021F38 @ =gEnemyMonIndex + ldr r1, _08021F38 @ =gBankTarget ldrb r0, [r1] mov r4, r9 strb r0, [r4] @@ -12295,7 +12295,7 @@ _08021EBE: adds r0, r1 strh r3, [r0] _08021ECA: - ldr r0, _08021F50 @ =gUnknown_02024C0C + ldr r0, _08021F50 @ =gAbsentBankFlags ldrb r1, [r0] ldr r2, _08021F54 @ =gBitTable mov r3, r9 @@ -12333,7 +12333,7 @@ _08021F04: ands r0, r1 cmp r0, 0 beq _08021F68 - ldr r1, _08021F5C @ =gUnknown_02024C34 + ldr r1, _08021F5C @ =gLastUsedMove lsls r0, r4, 1 adds r0, r1 strh r2, [r0] @@ -12342,28 +12342,28 @@ _08021F04: ldrb r1, [r4] lsls r1, 1 adds r1, r0 - ldr r0, _08021F64 @ =gUnknown_02024BE6 + ldr r0, _08021F64 @ =gCurrentMove ldrh r0, [r0] strh r0, [r1] b _08021F82 .align 2, 0 -_08021F2C: .4byte gUnknown_02024C6C -_08021F30: .4byte gPlayerMonIndex -_08021F34: .4byte gUnknown_02024A60 -_08021F38: .4byte gEnemyMonIndex +_08021F2C: .4byte gHitMarker +_08021F30: .4byte gBankAttacker +_08021F34: .4byte gActiveBank +_08021F38: .4byte gBankTarget _08021F3C: .4byte 0xffffefff _08021F40: .4byte gBattleMoves _08021F44: .4byte gUnknown_02024BE8 _08021F48: .4byte gBattleMoveFlags _08021F4C: .4byte gUnknown_02024C2C -_08021F50: .4byte gUnknown_02024C0C +_08021F50: .4byte gAbsentBankFlags _08021F54: .4byte gBitTable _08021F58: .4byte 0x000160a6 -_08021F5C: .4byte gUnknown_02024C34 +_08021F5C: .4byte gLastUsedMove _08021F60: .4byte gUnknown_02024C4C -_08021F64: .4byte gUnknown_02024BE6 +_08021F64: .4byte gCurrentMove _08021F68: - ldr r1, _08021FD0 @ =gUnknown_02024C34 + ldr r1, _08021FD0 @ =gLastUsedMove lsls r0, r4, 1 adds r0, r1 ldr r1, _08021FD4 @ =0x0000ffff @@ -12377,7 +12377,7 @@ _08021F68: negs r1, r1 strh r1, [r0] _08021F82: - ldr r2, _08021FDC @ =gEnemyMonIndex + ldr r2, _08021FDC @ =gBankTarget ldrb r3, [r2] lsls r0, r3, 2 adds r0, r6 @@ -12409,28 +12409,28 @@ _08021FA0: ldr r0, _08021FD4 @ =0x0000ffff cmp r2, r0 bne _08021FEC - ldr r1, _08021FE8 @ =gUnknown_02024C3C - ldr r4, _08021FDC @ =gEnemyMonIndex + ldr r1, _08021FE8 @ =gMoveHitWith + ldr r4, _08021FDC @ =gBankTarget ldrb r0, [r4] lsls r0, 1 adds r0, r1 strh r2, [r0] b _08022244 .align 2, 0 -_08021FD0: .4byte gUnknown_02024C34 +_08021FD0: .4byte gLastUsedMove _08021FD4: .4byte 0x0000ffff _08021FD8: .4byte gUnknown_02024C4C -_08021FDC: .4byte gEnemyMonIndex +_08021FDC: .4byte gBankTarget _08021FE0: .4byte gUnknown_02024C5C _08021FE4: .4byte gBattleMoveFlags -_08021FE8: .4byte gUnknown_02024C3C +_08021FE8: .4byte gMoveHitWith _08021FEC: - ldr r0, _08022014 @ =gUnknown_02024C3C - ldr r5, _08022018 @ =gEnemyMonIndex + ldr r0, _08022014 @ =gMoveHitWith + ldr r5, _08022018 @ =gBankTarget ldrb r1, [r5] lsls r1, 1 adds r1, r0 - ldr r4, _0802201C @ =gUnknown_02024BE6 + ldr r4, _0802201C @ =gCurrentMove ldrh r0, [r4] strh r0, [r1] ldr r0, _08022020 @ =0x0001601c @@ -12446,14 +12446,14 @@ _08021FEC: ands r0, r3 b _08021C22 .align 2, 0 -_08022014: .4byte gUnknown_02024C3C -_08022018: .4byte gEnemyMonIndex -_0802201C: .4byte gUnknown_02024BE6 +_08022014: .4byte gMoveHitWith +_08022018: .4byte gBankTarget +_0802201C: .4byte gCurrentMove _08022020: .4byte 0x0001601c _08022024: .4byte gUnknown_02024C44 _08022028: ldr r0, _08022044 @ =gUnknown_02024C44 - ldr r1, _08022048 @ =gEnemyMonIndex + ldr r1, _08022048 @ =gBankTarget ldrb r2, [r1] lsls r2, 1 adds r2, r0 @@ -12467,24 +12467,24 @@ _08022028: b _08022244 .align 2, 0 _08022044: .4byte gUnknown_02024C44 -_08022048: .4byte gEnemyMonIndex +_08022048: .4byte gBankTarget _0802204C: - ldr r0, _0802205C @ =gUnknown_02024C3C - ldr r2, _08022060 @ =gEnemyMonIndex + ldr r0, _0802205C @ =gMoveHitWith + ldr r2, _08022060 @ =gBankTarget ldrb r1, [r2] lsls r1, 1 adds r1, r0 ldr r0, _08022064 @ =0x0000ffff b _08021C22 .align 2, 0 -_0802205C: .4byte gUnknown_02024C3C -_08022060: .4byte gEnemyMonIndex +_0802205C: .4byte gMoveHitWith +_08022060: .4byte gBankTarget _08022064: .4byte 0x0000ffff _08022068: - ldr r0, _0802212C @ =gUnknown_02024C0C + ldr r0, _0802212C @ =gAbsentBankFlags ldrb r1, [r0] ldr r6, _08022130 @ =gBitTable - ldr r2, _08022134 @ =gPlayerMonIndex + ldr r2, _08022134 @ =gBankAttacker ldrb r5, [r2] lsls r0, r5, 2 adds r0, r6 @@ -12515,14 +12515,14 @@ _08022090: ands r0, r1 cmp r0, 0 beq _0802215C - ldr r0, _08022144 @ =gUnknown_02024C6C + ldr r0, _08022144 @ =gHitMarker ldr r1, [r0] movs r0, 0x80 lsls r0, 18 ands r0, r1 cmp r0, 0 beq _0802215C - ldr r2, _08022148 @ =gEnemyMonIndex + ldr r2, _08022148 @ =gBankTarget ldrb r0, [r2] cmp r5, r0 bne _080220C0 @@ -12547,7 +12547,7 @@ _080220C0: adds r0, r5 add r0, r12 strb r3, [r0] - ldr r0, _08022148 @ =gEnemyMonIndex + ldr r0, _08022148 @ =gBankTarget ldrb r1, [r0] lsls r1, 1 ldr r2, _08022154 @ =0x000160ad @@ -12556,7 +12556,7 @@ _080220C0: ldrh r0, [r4] lsrs r0, 8 strb r0, [r1] - ldr r3, _08022148 @ =gEnemyMonIndex + ldr r3, _08022148 @ =gBankTarget ldrb r2, [r3] lsls r2, 2 mov r5, r9 @@ -12583,14 +12583,14 @@ _080220C0: strb r0, [r2] b _08022244 .align 2, 0 -_0802212C: .4byte gUnknown_02024C0C +_0802212C: .4byte gAbsentBankFlags _08022130: .4byte gBitTable -_08022134: .4byte gPlayerMonIndex +_08022134: .4byte gBankAttacker _08022138: .4byte 0x000160a6 _0802213C: .4byte gBattleMoves _08022140: .4byte gUnknown_02024BE8 -_08022144: .4byte gUnknown_02024C6C -_08022148: .4byte gEnemyMonIndex +_08022144: .4byte gHitMarker +_08022148: .4byte gBankTarget _0802214C: .4byte gBattleMoveFlags _08022150: .4byte 0x000160ac _08022154: .4byte 0x000160ad @@ -12598,11 +12598,11 @@ _08022158: .4byte 0x00016100 _0802215C: mov r1, r9 ldrb r0, [r1] - ldr r2, _080221B4 @ =gEnemyMonIndex + ldr r2, _080221B4 @ =gBankTarget ldrb r2, [r2] cmp r0, r2 beq _08022244 - ldr r3, _080221B4 @ =gEnemyMonIndex + ldr r3, _080221B4 @ =gBankTarget ldrb r0, [r3] lsls r0, 1 ldr r4, _080221B8 @ =0x000160ac @@ -12610,7 +12610,7 @@ _0802215C: add r0, r12 movs r3, 0 strb r3, [r0] - ldr r5, _080221B4 @ =gEnemyMonIndex + ldr r5, _080221B4 @ =gBankTarget ldrb r0, [r5] lsls r0, 1 ldr r1, _080221BC @ =0x000160ad @@ -12640,11 +12640,11 @@ _0802215C: strb r3, [r2] b _08022244 .align 2, 0 -_080221B4: .4byte gEnemyMonIndex +_080221B4: .4byte gBankTarget _080221B8: .4byte 0x000160ac _080221BC: .4byte 0x000160ad _080221C0: - ldr r5, _080222B0 @ =gUnknown_02024C6C + ldr r5, _080222B0 @ =gHitMarker ldr r2, [r5] movs r0, 0x80 lsls r0, 12 @@ -12657,8 +12657,8 @@ _080221C0: ands r0, r1 cmp r0, 0 beq _08022244 - ldr r1, _080222B8 @ =gUnknown_02024D28 - ldr r0, _080222BC @ =gPlayerMonIndex + ldr r1, _080222B8 @ =gProtectStructs + ldr r0, _080222BC @ =gBankAttacker ldrb r0, [r0] lsls r0, 4 adds r0, r1 @@ -12668,7 +12668,7 @@ _080221C0: blt _08022244 ldr r0, _080222C0 @ =gBattleMoves mov r9, r0 - ldr r1, _080222C4 @ =gUnknown_02024BE6 + ldr r1, _080222C4 @ =gCurrentMove mov r8, r1 ldrh r0, [r1] lsls r1, r0, 1 @@ -12684,14 +12684,14 @@ _080221C0: ands r4, r2 cmp r4, 0 bne _08022244 - ldr r7, _080222C8 @ =gEnemyMonIndex + ldr r7, _080222C8 @ =gBankTarget ldrb r0, [r7] - bl battle_get_per_side_status + bl GetBankIdentity movs r1, 0x2 eors r0, r1 lsls r0, 24 lsrs r0, 24 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r2, r0, 24 ldr r1, _080222CC @ =gBattleMons @@ -12753,7 +12753,7 @@ _08022286: mov r3, r10 cmp r3, 0 bne _0802229E - ldr r1, _080222D8 @ =gUnknown_02024C10 + ldr r1, _080222D8 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x3 _0802229C: @@ -12768,17 +12768,17 @@ _0802229E: pop {r0} bx r0 .align 2, 0 -_080222B0: .4byte gUnknown_02024C6C +_080222B0: .4byte gHitMarker _080222B4: .4byte gBattleTypeFlags -_080222B8: .4byte gUnknown_02024D28 -_080222BC: .4byte gPlayerMonIndex +_080222B8: .4byte gProtectStructs +_080222BC: .4byte gBankAttacker _080222C0: .4byte gBattleMoves -_080222C4: .4byte gUnknown_02024BE6 -_080222C8: .4byte gEnemyMonIndex +_080222C4: .4byte gCurrentMove +_080222C8: .4byte gBankTarget _080222CC: .4byte gBattleMons _080222D0: .4byte 0x02000000 _080222D4: .4byte 0x0001600c -_080222D8: .4byte gUnknown_02024C10 +_080222D8: .4byte gBattlescriptCurrInstr thumb_func_end sub_80217F8 thumb_func_start atk4A_damageflags @@ -12789,7 +12789,7 @@ atk4A_damageflags: @ 80222DC movs r4, 0 movs r5, 0 ldr r2, _08022340 @ =gBattleMoves - ldr r0, _08022344 @ =gUnknown_02024BE6 + ldr r0, _08022344 @ =gCurrentMove ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -12798,7 +12798,7 @@ atk4A_damageflags: @ 80222DC ldrb r0, [r0, 0x2] mov r8, r0 ldr r2, _08022348 @ =gBattleMons - ldr r3, _0802234C @ =gEnemyMonIndex + ldr r3, _0802234C @ =gBankTarget ldrb r1, [r3] movs r0, 0x58 muls r0, r1 @@ -12812,19 +12812,19 @@ atk4A_damageflags: @ 80222DC mov r1, r8 cmp r1, 0x4 bne _08022370 - ldr r3, _08022350 @ =byte_2024C06 + ldr r3, _08022350 @ =gLastUsedAbility strb r0, [r3] ldr r2, _08022354 @ =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x9 orrs r0, r1 strb r0, [r2] - ldr r1, _08022358 @ =gUnknown_02024C3C + ldr r1, _08022358 @ =gMoveHitWith ldrb r0, [r7] lsls r0, 1 adds r0, r1 strh r4, [r0] - ldr r0, _0802235C @ =gUnknown_02024D1E + ldr r0, _0802235C @ =gBattleCommunication mov r2, r8 strb r2, [r0, 0x6] ldrb r0, [r7] @@ -12833,13 +12833,13 @@ atk4A_damageflags: @ 80222DC b _08022452 .align 2, 0 _08022340: .4byte gBattleMoves -_08022344: .4byte gUnknown_02024BE6 +_08022344: .4byte gCurrentMove _08022348: .4byte gBattleMons -_0802234C: .4byte gEnemyMonIndex -_08022350: .4byte byte_2024C06 +_0802234C: .4byte gBankTarget +_08022350: .4byte gLastUsedAbility _08022354: .4byte gBattleMoveFlags -_08022358: .4byte gUnknown_02024C3C -_0802235C: .4byte gUnknown_02024D1E +_08022358: .4byte gMoveHitWith +_0802235C: .4byte gBattleCommunication _08022360: ldr r0, _0802236C @ =gBattleMoveFlags ldrb r1, [r0] @@ -12971,7 +12971,7 @@ _08022432: beq _0802242C _08022452: ldr r2, _08022500 @ =gBattleMons - ldr r0, _08022504 @ =gEnemyMonIndex + ldr r0, _08022504 @ =gBankTarget mov r8, r0 ldrb r1, [r0] movs r0, 0x58 @@ -12985,9 +12985,9 @@ _08022452: ands r5, r4 cmp r5, 0 bne _080224CE - ldr r0, _08022508 @ =gPlayerMonIndex + ldr r0, _08022508 @ =gBankAttacker ldrb r0, [r0] - ldr r7, _0802250C @ =gUnknown_02024BE6 + ldr r7, _0802250C @ =gCurrentMove ldrh r1, [r7] bl move_weather_interaction lsls r0, 24 @@ -13012,20 +13012,20 @@ _08022494: ldrb r0, [r0, 0x1] cmp r0, 0 beq _080224CE - ldr r3, _08022514 @ =byte_2024C06 + ldr r3, _08022514 @ =gLastUsedAbility strb r6, [r3] ldr r2, _08022518 @ =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] - ldr r1, _0802251C @ =gUnknown_02024C3C + ldr r1, _0802251C @ =gMoveHitWith mov r2, r8 ldrb r0, [r2] lsls r0, 1 adds r0, r1 strh r5, [r0] - ldr r1, _08022520 @ =gUnknown_02024D1E + ldr r1, _08022520 @ =gBattleCommunication movs r0, 0x3 strb r0, [r1, 0x6] ldrb r0, [r2] @@ -13038,8 +13038,8 @@ _080224CE: ands r0, r1 cmp r0, 0 beq _080224EC - ldr r2, _08022524 @ =gUnknown_02024D28 - ldr r0, _08022508 @ =gPlayerMonIndex + ldr r2, _08022524 @ =gProtectStructs + ldr r0, _08022508 @ =gBankAttacker ldrb r1, [r0] lsls r1, 4 adds r1, r2 @@ -13048,7 +13048,7 @@ _080224CE: orrs r0, r2 strb r0, [r1, 0x1] _080224EC: - ldr r1, _08022528 @ =gUnknown_02024C10 + ldr r1, _08022528 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -13059,26 +13059,26 @@ _080224EC: bx r0 .align 2, 0 _08022500: .4byte gBattleMons -_08022504: .4byte gEnemyMonIndex -_08022508: .4byte gPlayerMonIndex -_0802250C: .4byte gUnknown_02024BE6 +_08022504: .4byte gBankTarget +_08022508: .4byte gBankAttacker +_0802250C: .4byte gCurrentMove _08022510: .4byte gBattleMoves -_08022514: .4byte byte_2024C06 +_08022514: .4byte gLastUsedAbility _08022518: .4byte gBattleMoveFlags -_0802251C: .4byte gUnknown_02024C3C -_08022520: .4byte gUnknown_02024D1E -_08022524: .4byte gUnknown_02024D28 -_08022528: .4byte gUnknown_02024C10 +_0802251C: .4byte gMoveHitWith +_08022520: .4byte gBattleCommunication +_08022524: .4byte gProtectStructs +_08022528: .4byte gBattlescriptCurrInstr thumb_func_end atk4A_damageflags thumb_func_start atk4B_cmd4b atk4B_cmd4b: @ 802252C push {r4,lr} - ldr r4, _08022568 @ =gUnknown_02024A60 - ldr r0, _0802256C @ =gPlayerMonIndex + ldr r4, _08022568 @ =gActiveBank + ldr r0, _0802256C @ =gBankAttacker ldrb r0, [r0] strb r0, [r4] - ldr r2, _08022570 @ =gUnknown_02024C6C + ldr r2, _08022570 @ =gHitMarker ldr r1, _08022574 @ =gBitTable ldrb r0, [r4] lsls r0, 2 @@ -13093,9 +13093,9 @@ atk4B_cmd4b: @ 802252C movs r1, 0 bl dp01_build_cmdbuf_x06_a ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution _0802255A: - ldr r1, _08022578 @ =gUnknown_02024C10 + ldr r1, _08022578 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -13103,27 +13103,27 @@ _0802255A: pop {r0} bx r0 .align 2, 0 -_08022568: .4byte gUnknown_02024A60 -_0802256C: .4byte gPlayerMonIndex -_08022570: .4byte gUnknown_02024C6C +_08022568: .4byte gActiveBank +_0802256C: .4byte gBankAttacker +_08022570: .4byte gHitMarker _08022574: .4byte gBitTable -_08022578: .4byte gUnknown_02024C10 +_08022578: .4byte gBattlescriptCurrInstr thumb_func_end atk4B_cmd4b thumb_func_start atk4C_switch1 atk4C_switch1: @ 802257C push {r4-r6,lr} - ldr r0, _080225D4 @ =gUnknown_02024A64 + ldr r0, _080225D4 @ =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 bne _080225CC - ldr r5, _080225D8 @ =gUnknown_02024C10 + ldr r5, _080225D8 @ =gBattlescriptCurrInstr ldr r0, [r5] ldrb r0, [r0, 0x1] bl sub_8015150 - ldr r4, _080225DC @ =gUnknown_02024A60 + ldr r4, _080225DC @ =gActiveBank strb r0, [r4] - ldr r3, _080225E0 @ =gUnknown_02024A6A + ldr r3, _080225E0 @ =gBattlePartyID ldrb r0, [r4] lsls r1, r0, 1 adds r1, r3 @@ -13143,9 +13143,9 @@ atk4C_switch1: @ 802257C ldrb r2, [r0] movs r0, 0 movs r1, 0 - bl dp01_build_cmdbuf_x00_a_b_0 + bl EmitGetAttributes ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution ldr r0, [r5] adds r0, 0x2 str r0, [r5] @@ -13154,10 +13154,10 @@ _080225CC: pop {r0} bx r0 .align 2, 0 -_080225D4: .4byte gUnknown_02024A64 -_080225D8: .4byte gUnknown_02024C10 -_080225DC: .4byte gUnknown_02024A60 -_080225E0: .4byte gUnknown_02024A6A +_080225D4: .4byte gBattleExecBuffer +_080225D8: .4byte gBattlescriptCurrInstr +_080225DC: .4byte gActiveBank +_080225E0: .4byte gBattlePartyID _080225E4: .4byte 0x02000000 _080225E8: .4byte 0x00016068 _080225EC: .4byte gBitTable @@ -13167,17 +13167,17 @@ _080225EC: .4byte gBitTable sub_80225F0: @ 80225F0 push {r4-r7,lr} sub sp, 0x58 - ldr r0, _0802274C @ =gUnknown_02024A64 + ldr r0, _0802274C @ =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 beq _080225FE b _08022744 _080225FE: - ldr r0, _08022750 @ =gUnknown_02024C10 + ldr r0, _08022750 @ =gBattlescriptCurrInstr ldr r0, [r0] ldrb r0, [r0, 0x1] bl sub_8015150 - ldr r4, _08022754 @ =gUnknown_02024A60 + ldr r4, _08022754 @ =gActiveBank strb r0, [r4] ldr r6, _08022758 @ =gBattleMons ldrb r0, [r4] @@ -13192,7 +13192,7 @@ _080225FE: muls r0, r5 adds r3, r0, r6 movs r2, 0 - ldr r5, _0802275C @ =gUnknown_02024260 + ldr r5, _0802275C @ =gBattleBufferB adds r7, r4, 0 _0802262C: adds r0, r3, r2 @@ -13247,15 +13247,15 @@ _0802262C: adds r1, 0x20 strb r0, [r1] ldrb r0, [r7] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r2, r0, 24 - ldr r0, _08022764 @ =gUnknown_02024DBC + ldr r0, _08022764 @ =gWishFutureKnock adds r0, 0x29 adds r0, r2, r0 ldrb r1, [r0] ldr r3, _08022768 @ =gBitTable - ldr r2, _0802276C @ =gUnknown_02024A6A + ldr r2, _0802276C @ =gBattlePartyID ldrb r5, [r7] lsls r0, r5, 1 adds r0, r2 @@ -13274,7 +13274,7 @@ _0802262C: strh r1, [r0, 0x2E] _080226CA: ldr r2, _08022770 @ =gBattleMoves - ldr r0, _08022774 @ =gUnknown_02024BE6 + ldr r0, _08022774 @ =gCurrentMove ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -13312,18 +13312,18 @@ _080226EA: _08022710: bl sub_8010B88 ldr r0, _08022778 @ =0x02000000 - ldr r3, _08022754 @ =gUnknown_02024A60 + ldr r3, _08022754 @ =gActiveBank ldrb r2, [r3] ldr r1, _0802277C @ =0x00016003 adds r0, r1 strb r2, [r0] - ldr r1, _08022780 @ =gUnknown_030041C0 + ldr r1, _08022780 @ =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x7 strb r0, [r1, 0x1] strb r2, [r1, 0x2] - ldr r2, _0802276C @ =gUnknown_02024A6A + ldr r2, _0802276C @ =gBattlePartyID ldrb r0, [r3] lsls r0, 1 adds r0, r2 @@ -13331,7 +13331,7 @@ _08022710: strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] - ldr r1, _08022750 @ =gUnknown_02024C10 + ldr r1, _08022750 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x2 str r0, [r1] @@ -13341,37 +13341,37 @@ _08022744: pop {r0} bx r0 .align 2, 0 -_0802274C: .4byte gUnknown_02024A64 -_08022750: .4byte gUnknown_02024C10 -_08022754: .4byte gUnknown_02024A60 +_0802274C: .4byte gBattleExecBuffer +_08022750: .4byte gBattlescriptCurrInstr +_08022754: .4byte gActiveBank _08022758: .4byte gBattleMons -_0802275C: .4byte gUnknown_02024260 +_0802275C: .4byte gBattleBufferB _08022760: .4byte gBaseStats -_08022764: .4byte gUnknown_02024DBC +_08022764: .4byte gWishFutureKnock _08022768: .4byte gBitTable -_0802276C: .4byte gUnknown_02024A6A +_0802276C: .4byte gBattlePartyID _08022770: .4byte gBattleMoves -_08022774: .4byte gUnknown_02024BE6 +_08022774: .4byte gCurrentMove _08022778: .4byte 0x02000000 _0802277C: .4byte 0x00016003 -_08022780: .4byte gUnknown_030041C0 +_08022780: .4byte gBattleTextBuff1 thumb_func_end sub_80225F0 thumb_func_start sub_8022784 sub_8022784: @ 8022784 push {r4,r5,lr} - ldr r0, _0802280C @ =gUnknown_02024A64 + ldr r0, _0802280C @ =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 bne _08022806 - ldr r0, _08022810 @ =gUnknown_02024C10 + ldr r0, _08022810 @ =gBattlescriptCurrInstr ldr r0, [r0] ldrb r0, [r0, 0x1] bl sub_8015150 - ldr r4, _08022814 @ =gUnknown_02024A60 + ldr r4, _08022814 @ =gActiveBank strb r0, [r4] ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -13392,11 +13392,11 @@ sub_8022784: @ 8022784 lsls r0, 16 lsrs r0, 16 movs r1, 0x2 - bl sub_8090D90 + bl GetNationalPokedexFlag _080227D0: - ldr r2, _08022824 @ =gUnknown_02024C0C + ldr r2, _08022824 @ =gAbsentBankFlags ldr r1, _08022828 @ =gBitTable - ldr r5, _08022814 @ =gUnknown_02024A60 + ldr r5, _08022814 @ =gActiveBank ldrb r0, [r5] lsls r0, 2 adds r0, r1 @@ -13404,18 +13404,18 @@ _080227D0: ldrb r0, [r2] bics r0, r1 strb r0, [r2] - ldr r1, _0802282C @ =gUnknown_02024A6A + ldr r1, _0802282C @ =gBattlePartyID ldrb r0, [r5] lsls r0, 1 adds r0, r1 ldrb r1, [r0] - ldr r4, _08022810 @ =gUnknown_02024C10 + ldr r4, _08022810 @ =gBattlescriptCurrInstr ldr r0, [r4] ldrb r2, [r0, 0x2] movs r0, 0 bl sub_800C704 ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution ldr r0, [r4] adds r0, 0x3 str r0, [r4] @@ -13424,15 +13424,15 @@ _08022806: pop {r0} bx r0 .align 2, 0 -_0802280C: .4byte gUnknown_02024A64 -_08022810: .4byte gUnknown_02024C10 -_08022814: .4byte gUnknown_02024A60 +_0802280C: .4byte gBattleExecBuffer +_08022810: .4byte gBattlescriptCurrInstr +_08022814: .4byte gActiveBank _08022818: .4byte gBattleTypeFlags _0802281C: .4byte 0x00000902 _08022820: .4byte gBattleMons -_08022824: .4byte gUnknown_02024C0C +_08022824: .4byte gAbsentBankFlags _08022828: .4byte gBitTable -_0802282C: .4byte gUnknown_02024A6A +_0802282C: .4byte gBattlePartyID thumb_func_end sub_8022784 thumb_func_start sub_8022830 @@ -13440,13 +13440,13 @@ sub_8022830: @ 8022830 push {r4-r7,lr} mov r7, r8 push {r7} - ldr r4, _08022894 @ =gUnknown_02024C10 + ldr r4, _08022894 @ =gBattlescriptCurrInstr ldr r0, [r4] ldrb r1, [r0, 0x1] movs r0, 0x7F ands r0, r1 bl sub_8015150 - ldr r3, _08022898 @ =gUnknown_02024A60 + ldr r3, _08022898 @ =gActiveBank strb r0, [r3] ldr r2, [r4] ldrb r1, [r2, 0x1] @@ -13465,7 +13465,7 @@ sub_8022830: @ 8022830 ands r0, r1 cmp r0, 0 bne _0802287C - ldr r1, _080228A4 @ =gUnknown_02024C98 + ldr r1, _080228A4 @ =gStatuses3 lsls r0, r3, 2 adds r0, r1 ldr r0, [r0] @@ -13488,11 +13488,11 @@ _0802287C: str r1, [r4] b _08022A2C .align 2, 0 -_08022894: .4byte gUnknown_02024C10 -_08022898: .4byte gUnknown_02024A60 +_08022894: .4byte gBattlescriptCurrInstr +_08022898: .4byte gActiveBank _0802289C: .4byte gBattleMons _080228A0: .4byte 0x0400e000 -_080228A4: .4byte gUnknown_02024C98 +_080228A4: .4byte gStatuses3 _080228A8: ldr r5, _08022934 @ =gBattleTypeFlags ldrh r1, [r5] @@ -13500,9 +13500,9 @@ _080228A8: ands r0, r1 cmp r0, 0 beq _08022948 - ldr r4, _08022938 @ =gUnknown_02024A60 + ldr r4, _08022938 @ =gActiveBank ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 ldr r1, _0802293C @ =gPlayerParty @@ -13527,7 +13527,7 @@ _080228E6: adds r6, r5, 0x3 cmp r5, r6 bge _0802292E - ldr r7, _08022944 @ =gUnknown_02024A6A + ldr r7, _08022944 @ =gBattlePartyID _080228EE: movs r0, 0x64 muls r0, r5 @@ -13548,7 +13548,7 @@ _080228EE: bl GetMonData cmp r0, 0 beq _08022928 - ldr r0, _08022938 @ =gUnknown_02024A60 + ldr r0, _08022938 @ =gActiveBank ldrb r0, [r0] lsls r0, 1 adds r0, r7 @@ -13565,20 +13565,20 @@ _0802292E: b _08022A24 .align 2, 0 _08022934: .4byte gBattleTypeFlags -_08022938: .4byte gUnknown_02024A60 +_08022938: .4byte gActiveBank _0802293C: .4byte gPlayerParty _08022940: .4byte gEnemyParty -_08022944: .4byte gUnknown_02024A6A +_08022944: .4byte gBattlePartyID _08022948: - ldr r0, _08022978 @ =gUnknown_02024A60 + ldr r0, _08022978 @ =gActiveBank ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 bne _08022988 movs r0, 0x1 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r7, r0, 24 ldrh r1, [r5] @@ -13587,12 +13587,12 @@ _08022948: cmp r0, 0 beq _0802297C movs r0, 0x3 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r6, r0, 24 b _0802297E .align 2, 0 -_08022978: .4byte gUnknown_02024A60 +_08022978: .4byte gActiveBank _0802297C: adds r6, r7, 0 _0802297E: @@ -13603,7 +13603,7 @@ _0802297E: _08022984: .4byte gEnemyParty _08022988: movs r0, 0 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r7, r0, 24 ldrh r1, [r5] @@ -13612,7 +13612,7 @@ _08022988: cmp r0, 0 beq _080229A8 movs r0, 0x2 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r6, r0, 24 b _080229AA @@ -13643,7 +13643,7 @@ _080229B0: bl GetMonData cmp r0, 0 bne _080229F2 - ldr r1, _08022A1C @ =gUnknown_02024A6A + ldr r1, _08022A1C @ =gBattlePartyID lsls r0, r7, 1 adds r0, r1 ldrh r0, [r0] @@ -13662,7 +13662,7 @@ _080229F8: cmp r5, 0x6 bne _08022A24 _080229FC: - ldr r3, _08022A20 @ =gUnknown_02024C10 + ldr r3, _08022A20 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x3] @@ -13678,10 +13678,10 @@ _080229FC: b _08022A2C .align 2, 0 _08022A18: .4byte gPlayerParty -_08022A1C: .4byte gUnknown_02024A6A -_08022A20: .4byte gUnknown_02024C10 +_08022A1C: .4byte gBattlePartyID +_08022A20: .4byte gBattlescriptCurrInstr _08022A24: - ldr r1, _08022A38 @ =gUnknown_02024C10 + ldr r1, _08022A38 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x6 str r0, [r1] @@ -13692,7 +13692,7 @@ _08022A2C: pop {r0} bx r0 .align 2, 0 -_08022A38: .4byte gUnknown_02024C10 +_08022A38: .4byte gBattlescriptCurrInstr thumb_func_end sub_8022830 thumb_func_start sub_8022A3C @@ -13703,12 +13703,12 @@ sub_8022A3C: @ 8022A3C lsls r2, 24 lsrs r2, 24 ldr r4, _08022A84 @ =0x02000000 - ldr r5, _08022A88 @ =gUnknown_02024A60 + ldr r5, _08022A88 @ =gActiveBank ldrb r0, [r5] ldr r3, _08022A8C @ =0x00016064 adds r1, r0, r3 adds r1, r4 - ldr r3, _08022A90 @ =gUnknown_02024A6A + ldr r3, _08022A90 @ =gBattlePartyID lsls r0, 1 adds r0, r3 ldrh r0, [r0] @@ -13725,16 +13725,16 @@ sub_8022A3C: @ 8022A3C movs r3, 0 bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08022A84: .4byte 0x02000000 -_08022A88: .4byte gUnknown_02024A60 +_08022A88: .4byte gActiveBank _08022A8C: .4byte 0x00016064 -_08022A90: .4byte gUnknown_02024A6A +_08022A90: .4byte gBattlePartyID _08022A94: .4byte 0x0001606c thumb_func_end sub_8022A3C @@ -13748,7 +13748,7 @@ atk50_openpartyscreen: @ 8022A98 movs r7, 0 movs r0, 0 mov r9, r0 - ldr r6, _08022B44 @ =gUnknown_02024C10 + ldr r6, _08022B44 @ =gBattlescriptCurrInstr ldr r1, [r6] ldrb r2, [r1, 0x2] ldrb r0, [r1, 0x3] @@ -13774,18 +13774,18 @@ _08022ACE: ands r1, r0 cmp r1, 0x1 beq _08022BBC - ldr r1, _08022B4C @ =gUnknown_02024A60 + ldr r1, _08022B4C @ =gActiveBank strb r7, [r1] - ldr r0, _08022B50 @ =gUnknown_02024A68 + ldr r0, _08022B50 @ =gNoOfAllBanks ldrb r0, [r0] cmp r7, r0 bcc _08022AE8 b _08022F62 _08022AE8: - ldr r7, _08022B54 @ =gUnknown_02024C6C + ldr r7, _08022B54 @ =gHitMarker ldr r6, _08022B58 @ =gBitTable adds r4, r1, 0 - ldr r0, _08022B5C @ =gUnknown_02024C0C + ldr r0, _08022B5C @ =gAbsentBankFlags mov r8, r0 _08022AF2: ldrb r2, [r4] @@ -13822,20 +13822,20 @@ _08022AF2: str r0, [r7] movs r0, 0 movs r1, 0x2 - bl sub_800D1D8 + bl EmitLinkStandbyMsg ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution b _08022BA2 .align 2, 0 -_08022B44: .4byte gUnknown_02024C10 +_08022B44: .4byte gBattlescriptCurrInstr _08022B48: .4byte gBattleTypeFlags -_08022B4C: .4byte gUnknown_02024A60 -_08022B50: .4byte gUnknown_02024A68 -_08022B54: .4byte gUnknown_02024C6C +_08022B4C: .4byte gActiveBank +_08022B50: .4byte gNoOfAllBanks +_08022B54: .4byte gHitMarker _08022B58: .4byte gBitTable -_08022B5C: .4byte gUnknown_02024C0C +_08022B5C: .4byte gAbsentBankFlags _08022B60: - ldr r5, _08022B90 @ =gUnknown_02024D68 + ldr r5, _08022B90 @ =gSpecialStatuses ldrb r0, [r4] lsls r1, r0, 2 adds r1, r0 @@ -13858,18 +13858,18 @@ _08022B60: strb r1, [r0] b _08022BA2 .align 2, 0 -_08022B90: .4byte gUnknown_02024D68 +_08022B90: .4byte gSpecialStatuses _08022B94: movs r0, 0 movs r1, 0x2 - bl sub_800D1D8 + bl EmitLinkStandbyMsg ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution _08022BA2: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] - ldr r1, _08022BB8 @ =gUnknown_02024A68 + ldr r1, _08022BB8 @ =gNoOfAllBanks lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] @@ -13877,14 +13877,14 @@ _08022BA2: bcc _08022AF2 b _08022F62 .align 2, 0 -_08022BB8: .4byte gUnknown_02024A68 +_08022BB8: .4byte gNoOfAllBanks _08022BBC: ands r1, r0 cmp r1, 0 bne _08022BC4 b _08022F62 _08022BC4: - ldr r0, _08022C1C @ =gUnknown_02024C6C + ldr r0, _08022C1C @ =gHitMarker mov r8, r0 ldr r0, [r0] lsrs r5, r0, 28 @@ -13893,7 +13893,7 @@ _08022BC4: ands r0, r5 cmp r0, 0 beq _08022C7E - ldr r4, _08022C24 @ =gUnknown_02024A60 + ldr r4, _08022C24 @ =gActiveBank strb r7, [r4] movs r0, 0 movs r1, 0x6 @@ -13902,7 +13902,7 @@ _08022BC4: lsls r0, 24 cmp r0, 0 beq _08022C2C - ldr r2, _08022C28 @ =gUnknown_02024C0C + ldr r2, _08022C28 @ =gAbsentBankFlags ldrb r0, [r4] lsls r0, 2 adds r0, r6 @@ -13922,15 +13922,15 @@ _08022BC4: movs r0, 0 bl dp01_build_cmdbuf_x2A_2A_2A_2A ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution b _08022C7E .align 2, 0 -_08022C1C: .4byte gUnknown_02024C6C +_08022C1C: .4byte gHitMarker _08022C20: .4byte gBitTable -_08022C24: .4byte gUnknown_02024A60 -_08022C28: .4byte gUnknown_02024C0C +_08022C24: .4byte gActiveBank +_08022C28: .4byte gAbsentBankFlags _08022C2C: - ldr r6, _08022C60 @ =gUnknown_02024D68 + ldr r6, _08022C60 @ =gSpecialStatuses ldrb r0, [r4] lsls r1, r0, 2 adds r1, r0 @@ -13956,15 +13956,15 @@ _08022C2C: strb r1, [r0] b _08022C7E .align 2, 0 -_08022C60: .4byte gUnknown_02024D68 +_08022C60: .4byte gSpecialStatuses _08022C64: .4byte 0x02000000 _08022C68: .4byte 0x0001606a _08022C6C: movs r0, 0 movs r1, 0x2 - bl sub_800D1D8 + bl EmitLinkStandbyMsg ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution movs r2, 0x1 mov r9, r2 _08022C7E: @@ -13977,7 +13977,7 @@ _08022C7E: ands r0, r5 cmp r0, 0 bne _08022D40 - ldr r4, _08022CDC @ =gUnknown_02024A60 + ldr r4, _08022CDC @ =gActiveBank movs r0, 0x2 strb r0, [r4] movs r0, 0x2 @@ -13987,7 +13987,7 @@ _08022C7E: lsls r0, 24 cmp r0, 0 beq _08022CE8 - ldr r2, _08022CE0 @ =gUnknown_02024C0C + ldr r2, _08022CE0 @ =gAbsentBankFlags ldrb r0, [r4] lsls r0, 2 adds r0, r6 @@ -13995,7 +13995,7 @@ _08022C7E: ldrb r1, [r2] orrs r0, r1 strb r0, [r2] - ldr r2, _08022CE4 @ =gUnknown_02024C6C + ldr r2, _08022CE4 @ =gHitMarker ldrb r0, [r4] lsls r0, 2 adds r0, r6 @@ -14007,15 +14007,15 @@ _08022C7E: movs r0, 0 bl dp01_build_cmdbuf_x2A_2A_2A_2A ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution b _08022D40 .align 2, 0 _08022CD8: .4byte gBitTable -_08022CDC: .4byte gUnknown_02024A60 -_08022CE0: .4byte gUnknown_02024C0C -_08022CE4: .4byte gUnknown_02024C6C +_08022CDC: .4byte gActiveBank +_08022CE0: .4byte gAbsentBankFlags +_08022CE4: .4byte gHitMarker _08022CE8: - ldr r6, _08022D1C @ =gUnknown_02024D68 + ldr r6, _08022D1C @ =gSpecialStatuses ldrb r0, [r4] lsls r1, r0, 2 adds r1, r0 @@ -14041,7 +14041,7 @@ _08022CE8: strb r1, [r0] b _08022D40 .align 2, 0 -_08022D1C: .4byte gUnknown_02024D68 +_08022D1C: .4byte gSpecialStatuses _08022D20: .4byte 0x02000000 _08022D24: .4byte 0x00016068 _08022D28: @@ -14052,16 +14052,16 @@ _08022D28: bne _08022D40 movs r0, 0 movs r1, 0x2 - bl sub_800D1D8 + bl EmitLinkStandbyMsg ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution _08022D40: ldr r6, _08022D90 @ =gBitTable ldr r0, [r6, 0x4] ands r0, r5 cmp r0, 0 beq _08022DF6 - ldr r4, _08022D94 @ =gUnknown_02024A60 + ldr r4, _08022D94 @ =gActiveBank movs r0, 0x1 strb r0, [r4] movs r0, 0x1 @@ -14071,7 +14071,7 @@ _08022D40: lsls r0, 24 cmp r0, 0 beq _08022DA0 - ldr r2, _08022D98 @ =gUnknown_02024C0C + ldr r2, _08022D98 @ =gAbsentBankFlags ldrb r0, [r4] lsls r0, 2 adds r0, r6 @@ -14079,7 +14079,7 @@ _08022D40: ldrb r1, [r2] orrs r0, r1 strb r0, [r2] - ldr r2, _08022D9C @ =gUnknown_02024C6C + ldr r2, _08022D9C @ =gHitMarker ldrb r0, [r4] lsls r0, 2 adds r0, r6 @@ -14091,15 +14091,15 @@ _08022D40: movs r0, 0 bl dp01_build_cmdbuf_x2A_2A_2A_2A ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution b _08022DF6 .align 2, 0 _08022D90: .4byte gBitTable -_08022D94: .4byte gUnknown_02024A60 -_08022D98: .4byte gUnknown_02024C0C -_08022D9C: .4byte gUnknown_02024C6C +_08022D94: .4byte gActiveBank +_08022D98: .4byte gAbsentBankFlags +_08022D9C: .4byte gHitMarker _08022DA0: - ldr r6, _08022DD4 @ =gUnknown_02024D68 + ldr r6, _08022DD4 @ =gSpecialStatuses ldrb r0, [r4] lsls r1, r0, 2 adds r1, r0 @@ -14125,15 +14125,15 @@ _08022DA0: strb r1, [r0] b _08022DF6 .align 2, 0 -_08022DD4: .4byte gUnknown_02024D68 +_08022DD4: .4byte gSpecialStatuses _08022DD8: .4byte 0x02000000 _08022DDC: .4byte 0x0001606b _08022DE0: movs r0, 0 movs r1, 0x2 - bl sub_800D1D8 + bl EmitLinkStandbyMsg ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution movs r0, 0x2 mov r2, r9 orrs r2, r0 @@ -14148,7 +14148,7 @@ _08022DF6: ands r0, r5 cmp r0, 0 bne _08022EB8 - ldr r4, _08022E54 @ =gUnknown_02024A60 + ldr r4, _08022E54 @ =gActiveBank movs r0, 0x3 strb r0, [r4] movs r0, 0x3 @@ -14158,7 +14158,7 @@ _08022DF6: lsls r0, 24 cmp r0, 0 beq _08022E60 - ldr r2, _08022E58 @ =gUnknown_02024C0C + ldr r2, _08022E58 @ =gAbsentBankFlags ldrb r0, [r4] lsls r0, 2 adds r0, r6 @@ -14166,7 +14166,7 @@ _08022DF6: ldrb r1, [r2] orrs r0, r1 strb r0, [r2] - ldr r2, _08022E5C @ =gUnknown_02024C6C + ldr r2, _08022E5C @ =gHitMarker ldrb r0, [r4] lsls r0, 2 adds r0, r6 @@ -14178,15 +14178,15 @@ _08022DF6: movs r0, 0 bl dp01_build_cmdbuf_x2A_2A_2A_2A ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution b _08022EB8 .align 2, 0 _08022E50: .4byte gBitTable -_08022E54: .4byte gUnknown_02024A60 -_08022E58: .4byte gUnknown_02024C0C -_08022E5C: .4byte gUnknown_02024C6C +_08022E54: .4byte gActiveBank +_08022E58: .4byte gAbsentBankFlags +_08022E5C: .4byte gHitMarker _08022E60: - ldr r6, _08022E94 @ =gUnknown_02024D68 + ldr r6, _08022E94 @ =gSpecialStatuses ldrb r0, [r4] lsls r1, r0, 2 adds r1, r0 @@ -14212,7 +14212,7 @@ _08022E60: strb r1, [r0] b _08022EB8 .align 2, 0 -_08022E94: .4byte gUnknown_02024D68 +_08022E94: .4byte gSpecialStatuses _08022E98: .4byte 0x02000000 _08022E9C: .4byte 0x00016069 _08022EA0: @@ -14223,11 +14223,11 @@ _08022EA0: bne _08022EB8 movs r0, 0 movs r1, 0x2 - bl sub_800D1D8 + bl EmitLinkStandbyMsg ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution _08022EB8: - ldr r1, _08022EE8 @ =gUnknown_02024D68 + ldr r1, _08022EE8 @ =gSpecialStatuses ldrb r0, [r1] lsls r0, 25 cmp r0, 0 @@ -14240,34 +14240,34 @@ _08022EB8: blt _08022F0C cmp r5, 0 beq _08022F0C - ldr r0, _08022EEC @ =gUnknown_02024C0C + ldr r0, _08022EEC @ =gAbsentBankFlags ldrb r1, [r0] ldr r0, _08022EF0 @ =gBitTable ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _08022EF8 - ldr r1, _08022EF4 @ =gUnknown_02024A60 + ldr r1, _08022EF4 @ =gActiveBank movs r0, 0x2 strb r0, [r1] b _08022EFC .align 2, 0 -_08022EE8: .4byte gUnknown_02024D68 -_08022EEC: .4byte gUnknown_02024C0C +_08022EE8: .4byte gSpecialStatuses +_08022EEC: .4byte gAbsentBankFlags _08022EF0: .4byte gBitTable -_08022EF4: .4byte gUnknown_02024A60 +_08022EF4: .4byte gActiveBank _08022EF8: - ldr r0, _08022F3C @ =gUnknown_02024A60 + ldr r0, _08022F3C @ =gActiveBank strb r1, [r0] _08022EFC: movs r0, 0 movs r1, 0x2 - bl sub_800D1D8 - ldr r0, _08022F3C @ =gUnknown_02024A60 + bl EmitLinkStandbyMsg + ldr r0, _08022F3C @ =gActiveBank ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution _08022F0C: - ldr r1, _08022F40 @ =gUnknown_02024D68 + ldr r1, _08022F40 @ =gSpecialStatuses ldrb r0, [r1, 0x14] lsls r0, 25 cmp r0, 0 @@ -14280,41 +14280,41 @@ _08022F0C: blt _08022F62 cmp r5, 0 beq _08022F62 - ldr r0, _08022F44 @ =gUnknown_02024C0C + ldr r0, _08022F44 @ =gAbsentBankFlags ldrb r0, [r0] ldr r1, _08022F48 @ =gBitTable ldr r1, [r1, 0x4] ands r0, r1 cmp r0, 0 beq _08022F4C - ldr r1, _08022F3C @ =gUnknown_02024A60 + ldr r1, _08022F3C @ =gActiveBank movs r0, 0x3 b _08022F50 .align 2, 0 -_08022F3C: .4byte gUnknown_02024A60 -_08022F40: .4byte gUnknown_02024D68 -_08022F44: .4byte gUnknown_02024C0C +_08022F3C: .4byte gActiveBank +_08022F40: .4byte gSpecialStatuses +_08022F44: .4byte gAbsentBankFlags _08022F48: .4byte gBitTable _08022F4C: - ldr r1, _08022F6C @ =gUnknown_02024A60 + ldr r1, _08022F6C @ =gActiveBank movs r0, 0x1 _08022F50: strb r0, [r1] movs r0, 0 movs r1, 0x2 - bl sub_800D1D8 - ldr r0, _08022F6C @ =gUnknown_02024A60 + bl EmitLinkStandbyMsg + ldr r0, _08022F6C @ =gActiveBank ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution _08022F62: - ldr r1, _08022F70 @ =gUnknown_02024C10 + ldr r1, _08022F70 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x6 str r0, [r1] b _08023302 .align 2, 0 -_08022F6C: .4byte gUnknown_02024A60 -_08022F70: .4byte gUnknown_02024C10 +_08022F6C: .4byte gActiveBank +_08022F70: .4byte gBattlescriptCurrInstr _08022F74: cmp r0, 0x6 beq _08022F7A @@ -14334,7 +14334,7 @@ _08022F88: bne _08022F92 b _0802310C _08022F92: - ldr r7, _08022FF4 @ =gUnknown_02024C6C + ldr r7, _08022FF4 @ =gHitMarker ldr r0, [r7] lsrs r5, r0, 28 ldr r4, _08022FF8 @ =gBitTable @@ -14346,10 +14346,10 @@ _08022F92: ands r0, r5 cmp r0, 0 beq _0802303A - ldr r6, _08022FFC @ =gUnknown_02024A60 + ldr r6, _08022FFC @ =gActiveBank movs r0, 0x2 strb r0, [r6] - ldr r0, _08023000 @ =gUnknown_02024260 + ldr r0, _08023000 @ =gBattleBufferB ldrb r1, [r0, 0x1] movs r0, 0x2 movs r2, 0x6 @@ -14357,7 +14357,7 @@ _08022F92: lsls r0, 24 cmp r0, 0 beq _08023008 - ldr r2, _08023004 @ =gUnknown_02024C0C + ldr r2, _08023004 @ =gAbsentBankFlags ldrb r0, [r6] lsls r0, 2 adds r0, r4 @@ -14376,17 +14376,17 @@ _08022F92: movs r0, 0 bl dp01_build_cmdbuf_x2A_2A_2A_2A ldrb r0, [r6] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution b _0802303A .align 2, 0 _08022FF0: .4byte gBattleTypeFlags -_08022FF4: .4byte gUnknown_02024C6C +_08022FF4: .4byte gHitMarker _08022FF8: .4byte gBitTable -_08022FFC: .4byte gUnknown_02024A60 -_08023000: .4byte gUnknown_02024260 -_08023004: .4byte gUnknown_02024C0C +_08022FFC: .4byte gActiveBank +_08023000: .4byte gBattleBufferB +_08023004: .4byte gAbsentBankFlags _08023008: - ldr r4, _08023098 @ =gUnknown_02024D68 + ldr r4, _08023098 @ =gSpecialStatuses ldrb r0, [r6] lsls r1, r0, 2 adds r1, r0 @@ -14420,10 +14420,10 @@ _0802303A: ands r5, r0 cmp r5, 0 beq _080230EE - ldr r5, _080230A8 @ =gUnknown_02024A60 + ldr r5, _080230A8 @ =gActiveBank movs r0, 0x3 strb r0, [r5] - ldr r0, _080230AC @ =gUnknown_02024260 + ldr r0, _080230AC @ =gBattleBufferB ldr r2, _080230B0 @ =0x00000201 adds r0, r2 ldrb r1, [r0] @@ -14433,7 +14433,7 @@ _0802303A: lsls r0, 24 cmp r0, 0 beq _080230BC - ldr r2, _080230B4 @ =gUnknown_02024C0C + ldr r2, _080230B4 @ =gAbsentBankFlags ldrb r0, [r5] lsls r0, 2 adds r0, r4 @@ -14441,7 +14441,7 @@ _0802303A: ldrb r1, [r2] orrs r0, r1 strb r0, [r2] - ldr r2, _080230B8 @ =gUnknown_02024C6C + ldr r2, _080230B8 @ =gHitMarker ldrb r0, [r5] lsls r0, 2 adds r0, r4 @@ -14453,20 +14453,20 @@ _0802303A: movs r0, 0 bl dp01_build_cmdbuf_x2A_2A_2A_2A ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution b _080230EE .align 2, 0 -_08023098: .4byte gUnknown_02024D68 +_08023098: .4byte gSpecialStatuses _0802309C: .4byte 0x02000000 _080230A0: .4byte 0x00016068 _080230A4: .4byte gBitTable -_080230A8: .4byte gUnknown_02024A60 -_080230AC: .4byte gUnknown_02024260 +_080230A8: .4byte gActiveBank +_080230AC: .4byte gBattleBufferB _080230B0: .4byte 0x00000201 -_080230B4: .4byte gUnknown_02024C0C -_080230B8: .4byte gUnknown_02024C6C +_080230B4: .4byte gAbsentBankFlags +_080230B8: .4byte gHitMarker _080230BC: - ldr r4, _080230FC @ =gUnknown_02024D68 + ldr r4, _080230FC @ =gSpecialStatuses ldrb r0, [r5] lsls r1, r0, 2 adds r1, r0 @@ -14491,31 +14491,31 @@ _080230BC: orrs r1, r2 strb r1, [r0] _080230EE: - ldr r1, _08023108 @ =gUnknown_02024C10 + ldr r1, _08023108 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x6 str r0, [r1] mov r12, r1 b _08023110 .align 2, 0 -_080230FC: .4byte gUnknown_02024D68 +_080230FC: .4byte gSpecialStatuses _08023100: .4byte 0x02000000 _08023104: .4byte 0x00016069 -_08023108: .4byte gUnknown_02024C10 +_08023108: .4byte gBattlescriptCurrInstr _0802310C: adds r0, r1, 0x6 str r0, [r6] _08023110: - ldr r0, _08023160 @ =gUnknown_02024C6C + ldr r0, _08023160 @ =gHitMarker ldr r0, [r0] lsrs r5, r0, 28 - ldr r1, _08023164 @ =gUnknown_02024C09 + ldr r1, _08023164 @ =gBank1 movs r0, 0 strb r0, [r1] ldr r4, _08023168 @ =gBitTable ldr r2, [r4] ands r2, r5 - ldr r6, _0802316C @ =gUnknown_02024A68 + ldr r6, _0802316C @ =gNoOfAllBanks cmp r2, 0 bne _0802314C adds r7, r6, 0 @@ -14549,10 +14549,10 @@ _08023156: str r1, [r2] b _08023302 .align 2, 0 -_08023160: .4byte gUnknown_02024C6C -_08023164: .4byte gUnknown_02024C09 +_08023160: .4byte gHitMarker +_08023164: .4byte gBank1 _08023168: .4byte gBitTable -_0802316C: .4byte gUnknown_02024A68 +_0802316C: .4byte gNoOfAllBanks _08023170: movs r0, 0x80 ands r0, r2 @@ -14566,7 +14566,7 @@ _0802317C: bl sub_8015150 lsls r0, 24 lsrs r7, r0, 24 - ldr r1, _080231A4 @ =gUnknown_02024D68 + ldr r1, _080231A4 @ =gSpecialStatuses lsls r0, r7, 2 adds r0, r7 lsls r0, 2 @@ -14580,7 +14580,7 @@ _0802317C: str r0, [r6] b _08023302 .align 2, 0 -_080231A4: .4byte gUnknown_02024D68 +_080231A4: .4byte gSpecialStatuses _080231A8: adds r0, r7, 0 movs r1, 0x6 @@ -14589,9 +14589,9 @@ _080231A8: lsls r0, 24 cmp r0, 0 beq _080231F8 - ldr r2, _080231E8 @ =gUnknown_02024A60 + ldr r2, _080231E8 @ =gActiveBank strb r7, [r2] - ldr r3, _080231EC @ =gUnknown_02024C0C + ldr r3, _080231EC @ =gAbsentBankFlags ldr r4, _080231F0 @ =gBitTable ldrb r0, [r2] lsls r0, 2 @@ -14600,7 +14600,7 @@ _080231A8: ldrb r1, [r3] orrs r0, r1 strb r0, [r3] - ldr r3, _080231F4 @ =gUnknown_02024C6C + ldr r3, _080231F4 @ =gHitMarker ldrb r0, [r2] lsls r0, 2 adds r0, r4 @@ -14613,19 +14613,19 @@ _080231A8: str r0, [r6] b _08023302 .align 2, 0 -_080231E8: .4byte gUnknown_02024A60 -_080231EC: .4byte gUnknown_02024C0C +_080231E8: .4byte gActiveBank +_080231EC: .4byte gAbsentBankFlags _080231F0: .4byte gBitTable -_080231F4: .4byte gUnknown_02024C6C +_080231F4: .4byte gHitMarker _080231F8: - ldr r4, _080232A0 @ =gUnknown_02024A60 + ldr r4, _080232A0 @ =gActiveBank strb r7, [r4] ldr r3, _080232A4 @ =0x02000000 ldrb r0, [r4] ldr r2, _080232A8 @ =0x00016064 adds r1, r0, r2 adds r1, r3 - ldr r2, _080232AC @ =gUnknown_02024A6A + ldr r2, _080232AC @ =gBattlePartyID lsls r0, 1 adds r0, r2 ldrh r0, [r0] @@ -14649,16 +14649,16 @@ _080231F8: movs r3, 0 bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution ldr r0, [r6] adds r0, 0x6 str r0, [r6] ldrb r0, [r4] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 cmp r0, 0 bne _0802325A - ldr r1, _080232B8 @ =gUnknown_030042E0 + ldr r1, _080232B8 @ =gBattleResults ldrb r0, [r1, 0x2] cmp r0, 0xFE bhi _0802325A @@ -14671,10 +14671,10 @@ _0802325A: ands r0, r1 cmp r0, 0 beq _080232C4 - ldr r1, _080232A0 @ =gUnknown_02024A60 + ldr r1, _080232A0 @ =gActiveBank movs r0, 0 strb r0, [r1] - ldr r0, _080232C0 @ =gUnknown_02024A68 + ldr r0, _080232C0 @ =gNoOfAllBanks ldrb r0, [r0] cmp r0, 0 beq _08023302 @@ -14685,14 +14685,14 @@ _08023276: beq _0802328A movs r0, 0 movs r1, 0x2 - bl sub_800D1D8 + bl EmitLinkStandbyMsg ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution _0802328A: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] - ldr r1, _080232C0 @ =gUnknown_02024A68 + ldr r1, _080232C0 @ =gNoOfAllBanks lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] @@ -14700,26 +14700,26 @@ _0802328A: bcc _08023276 b _08023302 .align 2, 0 -_080232A0: .4byte gUnknown_02024A60 +_080232A0: .4byte gActiveBank _080232A4: .4byte 0x02000000 _080232A8: .4byte 0x00016064 -_080232AC: .4byte gUnknown_02024A6A +_080232AC: .4byte gBattlePartyID _080232B0: .4byte 0x00016068 _080232B4: .4byte 0x0001606c -_080232B8: .4byte gUnknown_030042E0 +_080232B8: .4byte gBattleResults _080232BC: .4byte gBattleTypeFlags -_080232C0: .4byte gUnknown_02024A68 +_080232C0: .4byte gNoOfAllBanks _080232C4: adds r0, r7, 0 - bl battle_get_per_side_status + bl GetBankIdentity movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r0, 24 - bl battle_get_side_with_given_state - ldr r4, _08023310 @ =gUnknown_02024A60 + bl GetBankByPlayerAI + ldr r4, _08023310 @ =gActiveBank strb r0, [r4] - ldr r0, _08023314 @ =gUnknown_02024C0C + ldr r0, _08023314 @ =gAbsentBankFlags ldrb r1, [r0] ldr r2, _08023318 @ =gBitTable ldrb r3, [r4] @@ -14735,9 +14735,9 @@ _080232C4: _080232F4: movs r0, 0 movs r1, 0x2 - bl sub_800D1D8 + bl EmitLinkStandbyMsg ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution _08023302: add sp, 0x4 pop {r3,r4} @@ -14747,8 +14747,8 @@ _08023302: pop {r0} bx r0 .align 2, 0 -_08023310: .4byte gUnknown_02024A60 -_08023314: .4byte gUnknown_02024C0C +_08023310: .4byte gActiveBank +_08023314: .4byte gAbsentBankFlags _08023318: .4byte gBitTable thumb_func_end atk50_openpartyscreen @@ -14757,17 +14757,17 @@ sub_802331C: @ 802331C push {r4-r7,lr} mov r7, r8 push {r7} - ldr r0, _0802334C @ =gUnknown_02024A64 + ldr r0, _0802334C @ =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 beq _0802332C b _080234FE _0802332C: - ldr r4, _08023350 @ =gUnknown_02024C10 + ldr r4, _08023350 @ =gBattlescriptCurrInstr ldr r0, [r4] ldrb r0, [r0, 0x1] bl sub_8015150 - ldr r7, _08023354 @ =gUnknown_02024A60 + ldr r7, _08023354 @ =gActiveBank strb r0, [r7] ldr r0, [r4] ldrb r0, [r0, 0x2] @@ -14779,23 +14779,23 @@ _0802332C: beq _0802335E b _080234F6 .align 2, 0 -_0802334C: .4byte gUnknown_02024A64 -_08023350: .4byte gUnknown_02024C10 -_08023354: .4byte gUnknown_02024A60 +_0802334C: .4byte gBattleExecBuffer +_08023350: .4byte gBattlescriptCurrInstr +_08023354: .4byte gActiveBank _08023358: cmp r0, 0x2 beq _080233BC b _080234F6 _0802335E: movs r3, 0 - ldr r2, _08023390 @ =gUnknown_02024A68 + ldr r2, _08023390 @ =gNoOfAllBanks ldrb r0, [r2] cmp r3, r0 blt _0802336A b _080234F6 _0802336A: ldr r0, _08023394 @ =0x02000000 - ldr r1, _08023398 @ =gUnknown_02024260 + ldr r1, _08023398 @ =gBattleBufferB movs r5, 0x80 lsls r5, 2 adds r4, r2, 0 @@ -14816,9 +14816,9 @@ _08023382: blt _08023378 b _080234F6 .align 2, 0 -_08023390: .4byte gUnknown_02024A68 +_08023390: .4byte gNoOfAllBanks _08023394: .4byte 0x02000000 -_08023398: .4byte gUnknown_02024260 +_08023398: .4byte gBattleBufferB _0802339C: .4byte 0x00016068 _080233A0: ldr r0, _080233B8 @ =gBattleTypeFlags @@ -14835,8 +14835,8 @@ _080233AE: .align 2, 0 _080233B8: .4byte gBattleTypeFlags _080233BC: - ldr r1, _08023484 @ =gUnknown_02024D1E - ldr r4, _08023488 @ =gUnknown_02024260 + ldr r1, _08023484 @ =gBattleCommunication + ldr r4, _08023488 @ =gBattleBufferB ldrb r0, [r7] lsls r0, 9 adds r2, r4, 0x1 @@ -14936,8 +14936,8 @@ _080233BC: strb r0, [r1] b _080234AA .align 2, 0 -_08023484: .4byte gUnknown_02024D1E -_08023488: .4byte gUnknown_02024260 +_08023484: .4byte gBattleCommunication +_08023488: .4byte gBattleBufferB _0802348C: .4byte 0x02000000 _08023490: .4byte 0x00016068 _08023494: .4byte gBattleTypeFlags @@ -14948,13 +14948,13 @@ _080234A4: ldrb r0, [r7] bl sub_8012258 _080234AA: - ldr r1, _08023508 @ =gUnknown_030041C0 + ldr r1, _08023508 @ =gBattleTextBuff1 movs r5, 0xFD strb r5, [r1] movs r0, 0x6 strb r0, [r1, 0x1] ldr r4, _0802350C @ =gBattleMons - ldr r3, _08023510 @ =gPlayerMonIndex + ldr r3, _08023510 @ =gBankAttacker ldrb r0, [r3] movs r2, 0x58 muls r0, r2 @@ -14969,14 +14969,14 @@ _080234AA: strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] - ldr r2, _08023514 @ =gUnknown_03004290 + ldr r2, _08023514 @ =gBattleTextBuff2 strb r5, [r2] movs r0, 0x7 strb r0, [r2, 0x1] - ldr r3, _08023518 @ =gUnknown_02024A60 + ldr r3, _08023518 @ =gActiveBank ldrb r0, [r3] strb r0, [r2, 0x2] - ldr r1, _0802351C @ =gUnknown_02024260 + ldr r1, _0802351C @ =gBattleBufferB ldrb r0, [r3] lsls r0, 9 adds r1, 0x1 @@ -14987,7 +14987,7 @@ _080234AA: negs r0, r0 strb r0, [r2, 0x4] _080234F6: - ldr r1, _08023520 @ =gUnknown_02024C10 + ldr r1, _08023520 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x3 str r0, [r1] @@ -14998,13 +14998,13 @@ _080234FE: pop {r0} bx r0 .align 2, 0 -_08023508: .4byte gUnknown_030041C0 +_08023508: .4byte gBattleTextBuff1 _0802350C: .4byte gBattleMons -_08023510: .4byte gPlayerMonIndex -_08023514: .4byte gUnknown_03004290 -_08023518: .4byte gUnknown_02024A60 -_0802351C: .4byte gUnknown_02024260 -_08023520: .4byte gUnknown_02024C10 +_08023510: .4byte gBankAttacker +_08023514: .4byte gBattleTextBuff2 +_08023518: .4byte gActiveBank +_0802351C: .4byte gBattleBufferB +_08023520: .4byte gBattlescriptCurrInstr thumb_func_end sub_802331C thumb_func_start sub_8023524 @@ -15014,15 +15014,15 @@ sub_8023524: @ 8023524 mov r6, r8 push {r6,r7} sub sp, 0x4 - ldr r6, _08023630 @ =gUnknown_02024C10 + ldr r6, _08023630 @ =gBattlescriptCurrInstr ldr r0, [r6] ldrb r0, [r0, 0x1] bl sub_8015150 - ldr r4, _08023634 @ =gUnknown_02024A60 + ldr r4, _08023634 @ =gActiveBank strb r0, [r4] ldrb r0, [r4] bl sub_80157C4 - ldr r2, _08023638 @ =gUnknown_02024C6C + ldr r2, _08023638 @ =gHitMarker ldr r1, _0802363C @ =gBitTable ldrb r0, [r4] lsls r0, 2 @@ -15032,7 +15032,7 @@ sub_8023524: @ 8023524 ldr r0, [r2] bics r0, r1 str r0, [r2] - ldr r2, _08023640 @ =gUnknown_02024D68 + ldr r2, _08023640 @ =gSpecialStatuses ldrb r0, [r4] lsls r1, r0, 2 adds r1, r0 @@ -15044,8 +15044,8 @@ sub_8023524: @ 8023524 ands r0, r2 strb r0, [r1] ldrb r0, [r4] - bl battle_side_get_owner - ldr r5, _08023644 @ =gUnknown_02024C7A + bl GetBankSide + ldr r5, _08023644 @ =gSideAffecting lsls r0, 24 lsrs r0, 23 adds r0, r5 @@ -15057,7 +15057,7 @@ sub_8023524: @ 8023524 cmp r0, 0 bne _0802367C ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 23 adds r0, r5 @@ -15089,7 +15089,7 @@ sub_8023524: @ 8023524 cmp r0, 0x1A beq _0802367C adds r0, r2, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 23 adds r0, r5 @@ -15098,8 +15098,8 @@ sub_8023524: @ 8023524 orrs r1, r2 strh r1, [r0] ldrb r0, [r4] - bl battle_side_get_owner - ldr r2, _0802364C @ =gUnknown_02024C80 + bl GetBankSide + ldr r2, _0802364C @ =gSideTimer lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 @@ -15137,14 +15137,14 @@ _08023614: str r0, [r6] b _080237B6 .align 2, 0 -_08023630: .4byte gUnknown_02024C10 -_08023634: .4byte gUnknown_02024A60 -_08023638: .4byte gUnknown_02024C6C +_08023630: .4byte gBattlescriptCurrInstr +_08023634: .4byte gActiveBank +_08023638: .4byte gHitMarker _0802363C: .4byte gBitTable -_08023640: .4byte gUnknown_02024D68 -_08023644: .4byte gUnknown_02024C7A +_08023640: .4byte gSpecialStatuses +_08023644: .4byte gSideAffecting _08023648: .4byte gBattleMons -_0802364C: .4byte gUnknown_02024C80 +_0802364C: .4byte gSideTimer _08023650: .4byte gBattleMoveDamage _08023654: .4byte 0x02000000 _08023658: .4byte 0x00016003 @@ -15165,7 +15165,7 @@ _08023670: _08023678: .4byte gUnknown_081D91CD _0802367C: ldr r1, _08023754 @ =gBattleMons - ldr r5, _08023758 @ =gUnknown_02024A60 + ldr r5, _08023758 @ =gActiveBank ldrb r2, [r5] movs r0, 0x58 muls r0, r2 @@ -15174,7 +15174,7 @@ _0802367C: ldrb r0, [r0] cmp r0, 0x36 bne _080236A2 - ldr r1, _0802375C @ =gUnknown_02024CA8 + ldr r1, _0802375C @ =gDisableStructs lsls r0, r2, 3 subs r0, r2 lsls r0, 2 @@ -15189,7 +15189,7 @@ _080236A2: str r0, [sp] movs r2, 0 movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 beq _080236B8 @@ -15203,8 +15203,8 @@ _080236B8: cmp r0, 0 bne _080237B6 ldrb r0, [r5] - bl battle_side_get_owner - ldr r1, _08023760 @ =gUnknown_02024C7A + bl GetBankSide + ldr r1, _08023760 @ =gSideAffecting lsls r0, 24 lsrs r0, 23 adds r0, r1 @@ -15213,11 +15213,11 @@ _080236B8: ands r1, r2 strh r1, [r0] movs r4, 0 - ldr r0, _08023768 @ =gUnknown_02024A68 + ldr r0, _08023768 @ =gNoOfAllBanks ldrb r3, [r0] cmp r4, r3 bge _08023706 - ldr r6, _0802376C @ =gUnknown_02024A7A + ldr r6, _0802376C @ =gTurnOrder ldr r3, _08023770 @ =gUnknown_02024A76 movs r2, 0xC adds r1, r0, 0 @@ -15236,7 +15236,7 @@ _080236FE: blt _080236F0 _08023706: movs r4, 0 - ldr r0, _08023768 @ =gUnknown_02024A68 + ldr r0, _08023768 @ =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 bge _08023736 @@ -15244,7 +15244,7 @@ _08023706: _08023712: lsls r0, r4, 24 lsrs r0, 24 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 23 ldr r1, _08023774 @ =0x020160bc @@ -15255,21 +15255,21 @@ _08023712: ldrh r1, [r1, 0x28] strh r1, [r0] adds r4, 0x1 - ldr r0, _08023768 @ =gUnknown_02024A68 + ldr r0, _08023768 @ =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 blt _08023712 _08023736: - ldr r0, _08023778 @ =gUnknown_02024C10 + ldr r0, _08023778 @ =gBattlescriptCurrInstr ldr r1, [r0] ldrb r1, [r1, 0x1] adds r5, r0, 0 cmp r1, 0x5 bne _080237B0 - ldr r0, _0802377C @ =gUnknown_02024C6C + ldr r0, _0802377C @ =gHitMarker ldr r0, [r0] lsrs r4, r0, 28 - ldr r1, _08023780 @ =gUnknown_02024C09 + ldr r1, _08023780 @ =gBank1 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] @@ -15277,20 +15277,20 @@ _08023736: b _08023796 .align 2, 0 _08023754: .4byte gBattleMons -_08023758: .4byte gUnknown_02024A60 -_0802375C: .4byte gUnknown_02024CA8 -_08023760: .4byte gUnknown_02024C7A +_08023758: .4byte gActiveBank +_0802375C: .4byte gDisableStructs +_08023760: .4byte gSideAffecting _08023764: .4byte 0x0000fdff -_08023768: .4byte gUnknown_02024A68 -_0802376C: .4byte gUnknown_02024A7A +_08023768: .4byte gNoOfAllBanks +_0802376C: .4byte gTurnOrder _08023770: .4byte gUnknown_02024A76 _08023774: .4byte 0x020160bc -_08023778: .4byte gUnknown_02024C10 -_0802377C: .4byte gUnknown_02024C6C -_08023780: .4byte gUnknown_02024C09 +_08023778: .4byte gBattlescriptCurrInstr +_0802377C: .4byte gHitMarker +_08023780: .4byte gBank1 _08023784: .4byte gBitTable _08023788: - ldr r0, _080237C4 @ =gUnknown_02024A68 + ldr r0, _080237C4 @ =gNoOfAllBanks ldrb r3, [r1] ldrb r0, [r0] cmp r3, r0 @@ -15306,7 +15306,7 @@ _08023796: ands r0, r3 cmp r0, 0 beq _08023788 - ldr r0, _080237C8 @ =gUnknown_02024C0C + ldr r0, _080237C8 @ =gAbsentBankFlags ldrb r0, [r0] ands r0, r3 cmp r0, 0 @@ -15324,14 +15324,14 @@ _080237B6: pop {r0} bx r0 .align 2, 0 -_080237C4: .4byte gUnknown_02024A68 -_080237C8: .4byte gUnknown_02024C0C +_080237C4: .4byte gNoOfAllBanks +_080237C8: .4byte gAbsentBankFlags thumb_func_end sub_8023524 thumb_func_start sub_80237CC sub_80237CC: @ 80237CC push {lr} - ldr r0, _080237DC @ =gUnknown_02024C10 + ldr r0, _080237DC @ =gBattlescriptCurrInstr ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0 @@ -15339,46 +15339,46 @@ sub_80237CC: @ 80237CC movs r0, 0 b _080237E2 .align 2, 0 -_080237DC: .4byte gUnknown_02024C10 +_080237DC: .4byte gBattlescriptCurrInstr _080237E0: movs r0, 0x1 _080237E2: - bl battle_get_side_with_given_state - ldr r1, _08023804 @ =gUnknown_02024A60 + bl GetBankByPlayerAI + ldr r1, _08023804 @ =gActiveBank strb r0, [r1] movs r0, 0 bl dp01_build_cmdbuf_x08_8_8_8 - ldr r0, _08023804 @ =gUnknown_02024A60 + ldr r0, _08023804 @ =gActiveBank ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _08023808 @ =gUnknown_02024C10 + bl MarkBufferBankForExecution + ldr r1, _08023808 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x2 str r0, [r1] pop {r0} bx r0 .align 2, 0 -_08023804: .4byte gUnknown_02024A60 -_08023808: .4byte gUnknown_02024C10 +_08023804: .4byte gActiveBank +_08023808: .4byte gBattlescriptCurrInstr thumb_func_end sub_80237CC thumb_func_start atk54_802511C atk54_802511C: @ 802380C push {r4,r5,lr} - ldr r5, _0802383C @ =gUnknown_02024A60 - ldr r0, _08023840 @ =gPlayerMonIndex + ldr r5, _0802383C @ =gActiveBank + ldr r0, _08023840 @ =gBankAttacker ldrb r0, [r0] strb r0, [r5] - ldr r4, _08023844 @ =gUnknown_02024C10 + ldr r4, _08023844 @ =gBattlescriptCurrInstr ldr r0, [r4] ldrb r1, [r0, 0x1] ldrb r0, [r0, 0x2] lsls r0, 8 orrs r1, r0 movs r0, 0 - bl dp01_build_cmdbuf_x2B_aa_0 + bl EmitEffectivenessSound ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution ldr r0, [r4] adds r0, 0x3 str r0, [r4] @@ -15386,19 +15386,19 @@ atk54_802511C: @ 802380C pop {r0} bx r0 .align 2, 0 -_0802383C: .4byte gUnknown_02024A60 -_08023840: .4byte gPlayerMonIndex -_08023844: .4byte gUnknown_02024C10 +_0802383C: .4byte gActiveBank +_08023840: .4byte gBankAttacker +_08023844: .4byte gBattlescriptCurrInstr thumb_func_end atk54_802511C thumb_func_start sub_8023848 sub_8023848: @ 8023848 push {r4,r5,lr} - ldr r5, _08023878 @ =gUnknown_02024A60 - ldr r0, _0802387C @ =gPlayerMonIndex + ldr r5, _08023878 @ =gActiveBank + ldr r0, _0802387C @ =gBankAttacker ldrb r0, [r0] strb r0, [r5] - ldr r4, _08023880 @ =gUnknown_02024C10 + ldr r4, _08023880 @ =gBattlescriptCurrInstr ldr r0, [r4] ldrb r1, [r0, 0x1] ldrb r0, [r0, 0x2] @@ -15407,7 +15407,7 @@ sub_8023848: @ 8023848 movs r0, 0 bl sub_800D074 ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution ldr r0, [r4] adds r0, 0x3 str r0, [r4] @@ -15415,24 +15415,24 @@ sub_8023848: @ 8023848 pop {r0} bx r0 .align 2, 0 -_08023878: .4byte gUnknown_02024A60 -_0802387C: .4byte gPlayerMonIndex -_08023880: .4byte gUnknown_02024C10 +_08023878: .4byte gActiveBank +_0802387C: .4byte gBankAttacker +_08023880: .4byte gBattlescriptCurrInstr thumb_func_end sub_8023848 thumb_func_start atk56_8025194 atk56_8025194: @ 8023884 push {r4,r5,lr} - ldr r5, _080238AC @ =gUnknown_02024C10 + ldr r5, _080238AC @ =gBattlescriptCurrInstr ldr r0, [r5] ldrb r0, [r0, 0x1] bl sub_8015150 - ldr r4, _080238B0 @ =gUnknown_02024A60 + ldr r4, _080238B0 @ =gActiveBank strb r0, [r4] movs r0, 0 - bl dp01_build_cmdbuf_x2D_2D_2D_2D + bl EmitFaintingCry ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution ldr r0, [r5] adds r0, 0x2 str r0, [r5] @@ -15440,24 +15440,24 @@ atk56_8025194: @ 8023884 pop {r0} bx r0 .align 2, 0 -_080238AC: .4byte gUnknown_02024C10 -_080238B0: .4byte gUnknown_02024A60 +_080238AC: .4byte gBattlescriptCurrInstr +_080238B0: .4byte gActiveBank thumb_func_end atk56_8025194 thumb_func_start atk57_80251C4_flee atk57_80251C4_flee: @ 80238B4 push {r4,lr} movs r0, 0 - bl battle_get_side_with_given_state - ldr r4, _080238E0 @ =gUnknown_02024A60 + bl GetBankByPlayerAI + ldr r4, _080238E0 @ =gActiveBank strb r0, [r4] - ldr r0, _080238E4 @ =gUnknown_02024D26 + ldr r0, _080238E4 @ =gBattleOutcome ldrb r1, [r0] movs r0, 0 bl dp01_build_cmdbuf_x37_a ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _080238E8 @ =gUnknown_02024C10 + bl MarkBufferBankForExecution + ldr r1, _080238E8 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -15465,25 +15465,25 @@ atk57_80251C4_flee: @ 80238B4 pop {r0} bx r0 .align 2, 0 -_080238E0: .4byte gUnknown_02024A60 -_080238E4: .4byte gUnknown_02024D26 -_080238E8: .4byte gUnknown_02024C10 +_080238E0: .4byte gActiveBank +_080238E4: .4byte gBattleOutcome +_080238E8: .4byte gBattlescriptCurrInstr thumb_func_end atk57_80251C4_flee thumb_func_start atk58_cmd58 atk58_cmd58: @ 80238EC push {r4,r5,lr} - ldr r5, _08023918 @ =gUnknown_02024C10 + ldr r5, _08023918 @ =gBattlescriptCurrInstr ldr r0, [r5] ldrb r0, [r0, 0x1] bl sub_8015150 - ldr r4, _0802391C @ =gUnknown_02024A60 + ldr r4, _0802391C @ =gActiveBank strb r0, [r4] movs r0, 0 movs r1, 0x1 bl dp01_build_cmdbuf_x06_a ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution ldr r0, [r5] adds r0, 0x2 str r0, [r5] @@ -15491,8 +15491,8 @@ atk58_cmd58: @ 80238EC pop {r0} bx r0 .align 2, 0 -_08023918: .4byte gUnknown_02024C10 -_0802391C: .4byte gUnknown_02024A60 +_08023918: .4byte gBattlescriptCurrInstr +_0802391C: .4byte gActiveBank thumb_func_end atk58_cmd58 thumb_func_start atk59_8025230 @@ -15501,7 +15501,7 @@ atk59_8025230: @ 8023920 mov r7, r9 mov r6, r8 push {r6,r7} - ldr r0, _0802399C @ =gUnknown_02024C10 + ldr r0, _0802399C @ =gBattlescriptCurrInstr ldr r2, [r0] ldrb r6, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -15556,11 +15556,11 @@ _0802397A: _08023992: cmp r5, 0 bne _080239B0 - ldr r0, _0802399C @ =gUnknown_02024C10 + ldr r0, _0802399C @ =gBattlescriptCurrInstr str r4, [r0] b _08023A58 .align 2, 0 -_0802399C: .4byte gUnknown_02024C10 +_0802399C: .4byte gBattlescriptCurrInstr _080239A0: .4byte 0x02000000 _080239A4: .4byte 0x00016018 _080239A8: .4byte gPlayerParty @@ -15569,20 +15569,20 @@ _080239B0: ldr r0, _080239C0 @ =0x0000ffff cmp r5, r0 bne _080239C8 - ldr r1, _080239C4 @ =gUnknown_02024C10 + ldr r1, _080239C4 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0xA str r0, [r1] b _08023A58 .align 2, 0 _080239C0: .4byte 0x0000ffff -_080239C4: .4byte gUnknown_02024C10 +_080239C4: .4byte gBattlescriptCurrInstr _080239C8: movs r0, 0 - bl battle_get_side_with_given_state - ldr r1, _08023A64 @ =gUnknown_02024A60 + bl GetBankByPlayerAI + ldr r1, _08023A64 @ =gActiveBank strb r0, [r1] - ldr r0, _08023A68 @ =gUnknown_02024A6A + ldr r0, _08023A68 @ =gBattlePartyID ldrb r2, [r1] lsls r1, r2, 1 adds r1, r0 @@ -15616,10 +15616,10 @@ _08023A08: cmp r0, 0 beq _08023A54 movs r0, 0x2 - bl battle_get_side_with_given_state - ldr r1, _08023A64 @ =gUnknown_02024A60 + bl GetBankByPlayerAI + ldr r1, _08023A64 @ =gActiveBank strb r0, [r1] - ldr r0, _08023A68 @ =gUnknown_02024A6A + ldr r0, _08023A68 @ =gBattlePartyID ldrb r2, [r1] lsls r1, r2, 1 adds r1, r0 @@ -15646,7 +15646,7 @@ _08023A08: adds r1, r5, 0 bl GiveMoveToBattleMon _08023A54: - ldr r0, _08023A7C @ =gUnknown_02024C10 + ldr r0, _08023A7C @ =gBattlescriptCurrInstr str r6, [r0] _08023A58: pop {r3,r4} @@ -15656,13 +15656,13 @@ _08023A58: pop {r0} bx r0 .align 2, 0 -_08023A64: .4byte gUnknown_02024A60 -_08023A68: .4byte gUnknown_02024A6A +_08023A64: .4byte gActiveBank +_08023A68: .4byte gBattlePartyID _08023A6C: .4byte 0x02000000 _08023A70: .4byte 0x00016018 _08023A74: .4byte gBattleMons _08023A78: .4byte gBattleTypeFlags -_08023A7C: .4byte gUnknown_02024C10 +_08023A7C: .4byte gBattlescriptCurrInstr thumb_func_end atk59_8025230 thumb_func_start sub_8023A80 @@ -15716,7 +15716,7 @@ sub_8023AD8: @ 8023AD8 movs r2, 0x1D movs r3, 0xD bl sub_802BBD4 - bl sub_814A7FC + bl DestroyMenuCursor add sp, 0x4 pop {r0} bx r0 @@ -15729,7 +15729,7 @@ sub_8023AF8: @ 8023AF8 mov r6, r8 push {r6,r7} sub sp, 0x4 - ldr r1, _08023B24 @ =gUnknown_02024A60 + ldr r1, _08023B24 @ =gActiveBank movs r0, 0 strb r0, [r1] ldr r1, _08023B28 @ =0x02000000 @@ -15747,7 +15747,7 @@ _08023B18: ldr r0, [r0] mov pc, r0 .align 2, 0 -_08023B24: .4byte gUnknown_02024A60 +_08023B24: .4byte gActiveBank _08023B28: .4byte 0x02000000 _08023B2C: .4byte 0x0001601a _08023B30: .4byte _08023B34 @@ -15768,14 +15768,14 @@ _08023B4C: adds r0, 0x1 movs r2, 0 strb r0, [r1] - ldr r0, _08023B70 @ =gUnknown_02024D1E + ldr r0, _08023B70 @ =gBattleCommunication strb r2, [r0, 0x1] bl sub_802BC6C b _08023E5C .align 2, 0 _08023B68: .4byte 0x02000000 _08023B6C: .4byte 0x0001601a -_08023B70: .4byte gUnknown_02024D1E +_08023B70: .4byte gBattleCommunication _08023B74: ldr r0, _08023BFC @ =gMain ldrh r1, [r0, 0x2E] @@ -15783,7 +15783,7 @@ _08023B74: ands r0, r1 cmp r0, 0 beq _08023B9A - ldr r4, _08023C00 @ =gUnknown_02024D1E + ldr r4, _08023C00 @ =gBattleCommunication ldrb r0, [r4, 0x1] cmp r0, 0 beq _08023B9A @@ -15800,7 +15800,7 @@ _08023B9A: ands r0, r1 cmp r0, 0 beq _08023BC0 - ldr r4, _08023C00 @ =gUnknown_02024D1E + ldr r4, _08023C00 @ =gBattleCommunication ldrb r0, [r4, 0x1] cmp r0, 0 bne _08023BC0 @@ -15819,7 +15819,7 @@ _08023BC0: beq _08023C0C movs r0, 0x5 bl PlaySE - ldr r0, _08023C00 @ =gUnknown_02024D1E + ldr r0, _08023C00 @ =gBattleCommunication ldrb r4, [r0, 0x1] cmp r4, 0 bne _08023C1C @@ -15839,7 +15839,7 @@ _08023BC0: b _08023E5A .align 2, 0 _08023BFC: .4byte gMain -_08023C00: .4byte gUnknown_02024D1E +_08023C00: .4byte gBattleCommunication _08023C04: .4byte 0x02000000 _08023C08: .4byte 0x0001601a _08023C0C: @@ -15952,9 +15952,9 @@ _08023CC8: cmp r0, 0 beq _08023D20 ldr r0, _08023D14 @ =0x0000013f - ldr r1, _08023D18 @ =gUnknown_02024A60 + ldr r1, _08023D18 @ =gActiveBank ldrb r1, [r1] - bl b_std_message + bl PrepareStringBattle ldr r1, _08023D1C @ =0x0001601a add r1, r9 movs r0, 0x5 @@ -15964,10 +15964,10 @@ _08023D08: .4byte 0x02000000 _08023D0C: .4byte 0x00016018 _08023D10: .4byte gPlayerParty _08023D14: .4byte 0x0000013f -_08023D18: .4byte gUnknown_02024A60 +_08023D18: .4byte gActiveBank _08023D1C: .4byte 0x0001601a _08023D20: - ldr r3, _08023E10 @ =gUnknown_02024C10 + ldr r3, _08023E10 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -15980,7 +15980,7 @@ _08023D20: lsls r0, 24 orrs r1, r0 str r1, [r3] - ldr r1, _08023E14 @ =gUnknown_03004290 + ldr r1, _08023E14 @ =gBattleTextBuff2 movs r0, 0xFD strb r0, [r1] movs r0, 0x2 @@ -16006,7 +16006,7 @@ _08023D20: ldrh r1, [r7] adds r2, r5, 0 bl SetMonMoveSlot - ldr r0, _08023E1C @ =gUnknown_02024A6A + ldr r0, _08023E1C @ =gBattlePartyID ldrh r0, [r0] ldrb r6, [r6] cmp r0, r6 @@ -16018,7 +16018,7 @@ _08023D20: ands r0, r1 cmp r0, 0 bne _08023DB0 - ldr r0, _08023E24 @ =gUnknown_02024CA8 + ldr r0, _08023E24 @ =gDisableStructs ldrb r1, [r0, 0x18] lsrs r1, 4 ldr r2, _08023E28 @ =gBitTable @@ -16042,7 +16042,7 @@ _08023DB0: ands r0, r1 cmp r0, 0 beq _08023E5C - ldr r0, _08023E1C @ =gUnknown_02024A6A + ldr r0, _08023E1C @ =gBattlePartyID ldr r1, _08023E30 @ =0x02000000 ldr r2, _08023E34 @ =0x00016018 adds r1, r2 @@ -16060,7 +16060,7 @@ _08023DB0: ands r0, r1 cmp r0, 0 bne _08023E5C - ldr r0, _08023E24 @ =gUnknown_02024CA8 + ldr r0, _08023E24 @ =gDisableStructs adds r0, 0x50 ldrb r1, [r0] lsrs r1, 4 @@ -16082,27 +16082,27 @@ _08023DB0: bl SetBattleMonMoveSlot b _08023E5C .align 2, 0 -_08023E10: .4byte gUnknown_02024C10 -_08023E14: .4byte gUnknown_03004290 +_08023E10: .4byte gBattlescriptCurrInstr +_08023E14: .4byte gBattleTextBuff2 _08023E18: .4byte word_2024E82 -_08023E1C: .4byte gUnknown_02024A6A +_08023E1C: .4byte gBattlePartyID _08023E20: .4byte gBattleMons -_08023E24: .4byte gUnknown_02024CA8 +_08023E24: .4byte gDisableStructs _08023E28: .4byte gBitTable _08023E2C: .4byte gBattleTypeFlags _08023E30: .4byte 0x02000000 _08023E34: .4byte 0x00016018 _08023E38: bl sub_8023AD8 - ldr r1, _08023E48 @ =gUnknown_02024C10 + ldr r1, _08023E48 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _08023E5C .align 2, 0 -_08023E48: .4byte gUnknown_02024C10 +_08023E48: .4byte gBattlescriptCurrInstr _08023E4C: - ldr r0, _08023E6C @ =gUnknown_02024A64 + ldr r0, _08023E6C @ =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 bne _08023E5C @@ -16120,7 +16120,7 @@ _08023E5C: pop {r0} bx r0 .align 2, 0 -_08023E6C: .4byte gUnknown_02024A64 +_08023E6C: .4byte gBattleExecBuffer _08023E70: .4byte 0x0001601a thumb_func_end sub_8023AF8 @@ -16144,12 +16144,12 @@ _08023E90: ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] - ldr r0, _08023EA4 @ =gUnknown_02024D1E + ldr r0, _08023EA4 @ =gBattleCommunication strb r4, [r0, 0x1] bl sub_802BC6C b _08023F78 .align 2, 0 -_08023EA4: .4byte gUnknown_02024D1E +_08023EA4: .4byte gBattleCommunication _08023EA8: ldr r0, _08023F2C @ =gMain ldrh r1, [r0, 0x2E] @@ -16157,7 +16157,7 @@ _08023EA8: ands r0, r1 cmp r0, 0 beq _08023ECE - ldr r4, _08023F30 @ =gUnknown_02024D1E + ldr r4, _08023F30 @ =gBattleCommunication ldrb r0, [r4, 0x1] cmp r0, 0 beq _08023ECE @@ -16174,7 +16174,7 @@ _08023ECE: ands r0, r1 cmp r0, 0 beq _08023EF4 - ldr r4, _08023F30 @ =gUnknown_02024D1E + ldr r4, _08023F30 @ =gBattleCommunication ldrb r0, [r4, 0x1] cmp r0, 0 bne _08023EF4 @@ -16193,11 +16193,11 @@ _08023EF4: beq _08023F4C movs r0, 0x5 bl PlaySE - ldr r0, _08023F30 @ =gUnknown_02024D1E + ldr r0, _08023F30 @ =gBattleCommunication ldrb r0, [r0, 0x1] cmp r0, 0 beq _08023F38 - ldr r3, _08023F34 @ =gUnknown_02024C10 + ldr r3, _08023F34 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -16213,10 +16213,10 @@ _08023EF4: b _08023F40 .align 2, 0 _08023F2C: .4byte gMain -_08023F30: .4byte gUnknown_02024D1E -_08023F34: .4byte gUnknown_02024C10 +_08023F30: .4byte gBattleCommunication +_08023F34: .4byte gBattlescriptCurrInstr _08023F38: - ldr r1, _08023F48 @ =gUnknown_02024C10 + ldr r1, _08023F48 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] @@ -16224,7 +16224,7 @@ _08023F40: bl sub_8023AD8 b _08023F78 .align 2, 0 -_08023F48: .4byte gUnknown_02024C10 +_08023F48: .4byte gBattlescriptCurrInstr _08023F4C: movs r0, 0x2 ands r0, r1 @@ -16232,7 +16232,7 @@ _08023F4C: beq _08023F78 movs r0, 0x5 bl PlaySE - ldr r3, _08023F80 @ =gUnknown_02024C10 + ldr r3, _08023F80 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -16251,17 +16251,17 @@ _08023F78: pop {r0} bx r0 .align 2, 0 -_08023F80: .4byte gUnknown_02024C10 +_08023F80: .4byte gBattlescriptCurrInstr thumb_func_end atk5B_80256E0 thumb_func_start atk5C_cmd5c atk5C_cmd5c: @ 8023F84 push {r4,lr} - ldr r4, _08023FF0 @ =gUnknown_02024C10 + ldr r4, _08023FF0 @ =gBattlescriptCurrInstr ldr r0, [r4] ldrb r0, [r0, 0x1] bl sub_8015150 - ldr r2, _08023FF4 @ =gUnknown_02024A60 + ldr r2, _08023FF4 @ =gActiveBank strb r0, [r2] ldr r0, _08023FF8 @ =gBattleMoveFlags ldrb r1, [r0] @@ -16269,7 +16269,7 @@ atk5C_cmd5c: @ 8023F84 ands r0, r1 cmp r0, 0 bne _08024008 - ldr r0, _08023FFC @ =gUnknown_02024C6C + ldr r0, _08023FFC @ =gHitMarker ldr r0, [r0] movs r1, 0x80 lsls r1, 1 @@ -16288,7 +16288,7 @@ atk5C_cmd5c: @ 8023F84 ands r0, r1 cmp r0, 0 beq _08023FD6 - ldr r0, _08024004 @ =gUnknown_02024CA8 + ldr r0, _08024004 @ =gDisableStructs lsls r1, r2, 3 subs r1, r2 lsls r1, 2 @@ -16298,22 +16298,22 @@ atk5C_cmd5c: @ 8023F84 bne _08024008 _08023FD6: movs r0, 0 - bl dp01_build_cmdbuf_x29_29_29_29 - ldr r0, _08023FF4 @ =gUnknown_02024A60 + bl EmitHitAnimation + ldr r0, _08023FF4 @ =gActiveBank ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _08023FF0 @ =gUnknown_02024C10 + bl MarkBufferBankForExecution + ldr r1, _08023FF0 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x2 str r0, [r1] b _0802400E .align 2, 0 -_08023FF0: .4byte gUnknown_02024C10 -_08023FF4: .4byte gUnknown_02024A60 +_08023FF0: .4byte gBattlescriptCurrInstr +_08023FF4: .4byte gActiveBank _08023FF8: .4byte gBattleMoveFlags -_08023FFC: .4byte gUnknown_02024C6C +_08023FFC: .4byte gHitMarker _08024000: .4byte gBattleMons -_08024004: .4byte gUnknown_02024CA8 +_08024004: .4byte gDisableStructs _08024008: ldr r0, [r4] adds r0, 0x2 @@ -16481,7 +16481,7 @@ _08024140: mov r0, r8 adds r1, r4, 0 bl sub_80B79B8 - ldr r1, _0802418C @ =gUnknown_030041C0 + ldr r1, _0802418C @ =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x1 @@ -16505,7 +16505,7 @@ _08024140: strb r0, [r1, 0x7] movs r0, 0xFF strb r0, [r1, 0x8] - ldr r1, _08024190 @ =gUnknown_02024C10 + ldr r1, _08024190 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -16515,8 +16515,8 @@ _08024140: pop {r0} bx r0 .align 2, 0 -_0802418C: .4byte gUnknown_030041C0 -_08024190: .4byte gUnknown_02024C10 +_0802418C: .4byte gBattleTextBuff1 +_08024190: .4byte gBattlescriptCurrInstr thumb_func_end sub_8024014 thumb_func_start atk5E_8025A70 @@ -16524,13 +16524,13 @@ atk5E_8025A70: @ 8024194 push {r4-r7,lr} mov r7, r8 push {r7} - ldr r4, _080241B8 @ =gUnknown_02024C10 + ldr r4, _080241B8 @ =gBattlescriptCurrInstr ldr r0, [r4] ldrb r0, [r0, 0x1] bl sub_8015150 - ldr r6, _080241BC @ =gUnknown_02024A60 + ldr r6, _080241BC @ =gActiveBank strb r0, [r6] - ldr r5, _080241C0 @ =gUnknown_02024D1E + ldr r5, _080241C0 @ =gBattleCommunication ldrb r0, [r5] mov r8, r4 cmp r0, 0 @@ -16539,22 +16539,22 @@ atk5E_8025A70: @ 8024194 beq _080241DC b _08024230 .align 2, 0 -_080241B8: .4byte gUnknown_02024C10 -_080241BC: .4byte gUnknown_02024A60 -_080241C0: .4byte gUnknown_02024D1E +_080241B8: .4byte gBattlescriptCurrInstr +_080241BC: .4byte gActiveBank +_080241C0: .4byte gBattleCommunication _080241C4: movs r0, 0 movs r1, 0 movs r2, 0 - bl dp01_build_cmdbuf_x00_a_b_0 + bl EmitGetAttributes ldrb r0, [r6] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] b _08024230 _080241DC: - ldr r0, _0802423C @ =gUnknown_02024A64 + ldr r0, _0802423C @ =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 bne _08024230 @@ -16604,7 +16604,7 @@ _08024230: pop {r0} bx r0 .align 2, 0 -_0802423C: .4byte gUnknown_02024A64 +_0802423C: .4byte gBattleExecBuffer _08024240: .4byte gUnknown_02024264 _08024244: .4byte gUnknown_02024AA4 thumb_func_end atk5E_8025A70 @@ -16612,15 +16612,15 @@ _08024244: .4byte gUnknown_02024AA4 thumb_func_start atk5F_8025B24 atk5F_8025B24: @ 8024248 push {lr} - ldr r0, _08024270 @ =gUnknown_02024A60 - ldr r2, _08024274 @ =gPlayerMonIndex + ldr r0, _08024270 @ =gActiveBank + ldr r2, _08024274 @ =gBankAttacker ldrb r3, [r2] strb r3, [r0] - ldr r1, _08024278 @ =gEnemyMonIndex + ldr r1, _08024278 @ =gBankTarget ldrb r0, [r1] strb r0, [r2] strb r3, [r1] - ldr r2, _0802427C @ =gUnknown_02024C6C + ldr r2, _0802427C @ =gHitMarker ldr r1, [r2] movs r3, 0x80 lsls r3, 5 @@ -16632,48 +16632,48 @@ atk5F_8025B24: @ 8024248 ands r1, r0 b _08024286 .align 2, 0 -_08024270: .4byte gUnknown_02024A60 -_08024274: .4byte gPlayerMonIndex -_08024278: .4byte gEnemyMonIndex -_0802427C: .4byte gUnknown_02024C6C +_08024270: .4byte gActiveBank +_08024274: .4byte gBankAttacker +_08024278: .4byte gBankTarget +_0802427C: .4byte gHitMarker _08024280: .4byte 0xffffefff _08024284: orrs r1, r3 _08024286: str r1, [r2] - ldr r1, _08024294 @ =gUnknown_02024C10 + ldr r1, _08024294 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .align 2, 0 -_08024294: .4byte gUnknown_02024C10 +_08024294: .4byte gBattlescriptCurrInstr thumb_func_end atk5F_8025B24 thumb_func_start atk60_cmd60 atk60_cmd60: @ 8024298 push {lr} - ldr r0, _080242C0 @ =gPlayerMonIndex + ldr r0, _080242C0 @ =gBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080242B2 - ldr r0, _080242C4 @ =gUnknown_02024C10 + ldr r0, _080242C4 @ =gBattlescriptCurrInstr ldr r0, [r0] ldrb r0, [r0, 0x1] bl IncrementGameStat _080242B2: - ldr r1, _080242C4 @ =gUnknown_02024C10 + ldr r1, _080242C4 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x2 str r0, [r1] pop {r0} bx r0 .align 2, 0 -_080242C0: .4byte gPlayerMonIndex -_080242C4: .4byte gUnknown_02024C10 +_080242C0: .4byte gBankAttacker +_080242C4: .4byte gBattlescriptCurrInstr thumb_func_end atk60_cmd60 thumb_func_start atk61_8025BA4 @@ -16682,18 +16682,18 @@ atk61_8025BA4: @ 80242C8 mov r7, r8 push {r7} sub sp, 0x30 - ldr r0, _0802432C @ =gUnknown_02024A64 + ldr r0, _0802432C @ =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 bne _0802437C - ldr r0, _08024330 @ =gUnknown_02024C10 + ldr r0, _08024330 @ =gBattlescriptCurrInstr ldr r0, [r0] ldrb r0, [r0, 0x1] bl sub_8015150 - ldr r1, _08024334 @ =gUnknown_02024A60 + ldr r1, _08024334 @ =gActiveBank strb r0, [r1] ldrb r0, [r1] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 ldr r1, _08024338 @ =gEnemyParty mov r8, r1 @@ -16728,9 +16728,9 @@ _08024324: movs r0, 0 b _08024356 .align 2, 0 -_0802432C: .4byte gUnknown_02024A64 -_08024330: .4byte gUnknown_02024C10 -_08024334: .4byte gUnknown_02024A60 +_0802432C: .4byte gBattleExecBuffer +_08024330: .4byte gBattlescriptCurrInstr +_08024334: .4byte gActiveBank _08024338: .4byte gEnemyParty _0802433C: .4byte gPlayerParty _08024340: .4byte 0x0000ffff @@ -16753,10 +16753,10 @@ _08024356: mov r1, sp movs r2, 0x1 bl dp01_build_cmdbuf_x30_TODO - ldr r0, _08024388 @ =gUnknown_02024A60 + ldr r0, _08024388 @ =gActiveBank ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _0802438C @ =gUnknown_02024C10 + bl MarkBufferBankForExecution + ldr r1, _0802438C @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x2 str r0, [r1] @@ -16768,23 +16768,23 @@ _0802437C: pop {r0} bx r0 .align 2, 0 -_08024388: .4byte gUnknown_02024A60 -_0802438C: .4byte gUnknown_02024C10 +_08024388: .4byte gActiveBank +_0802438C: .4byte gBattlescriptCurrInstr thumb_func_end atk61_8025BA4 thumb_func_start atk62_08025C6C atk62_08025C6C: @ 8024390 push {r4,r5,lr} - ldr r5, _080243B8 @ =gUnknown_02024C10 + ldr r5, _080243B8 @ =gBattlescriptCurrInstr ldr r0, [r5] ldrb r0, [r0, 0x1] bl sub_8015150 - ldr r4, _080243BC @ =gUnknown_02024A60 + ldr r4, _080243BC @ =gActiveBank strb r0, [r4] movs r0, 0 bl dp01_build_cmdbuf_x31_31_31_31 ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution ldr r0, [r5] adds r0, 0x2 str r0, [r5] @@ -16792,31 +16792,31 @@ atk62_08025C6C: @ 8024390 pop {r0} bx r0 .align 2, 0 -_080243B8: .4byte gUnknown_02024C10 -_080243BC: .4byte gUnknown_02024A60 +_080243B8: .4byte gBattlescriptCurrInstr +_080243BC: .4byte gActiveBank thumb_func_end atk62_08025C6C thumb_func_start atk63_jumptoattack atk63_jumptoattack: @ 80243C0 push {r4,lr} - ldr r0, _080243D8 @ =gUnknown_02024C10 + ldr r0, _080243D8 @ =gBattlescriptCurrInstr ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 cmp r1, 0 beq _080243E4 - ldr r0, _080243DC @ =gUnknown_02024BE6 + ldr r0, _080243DC @ =gCurrentMove ldr r1, _080243E0 @ =gUnknown_02024BEA ldrh r1, [r1] strh r1, [r0] b _080243F2 .align 2, 0 -_080243D8: .4byte gUnknown_02024C10 -_080243DC: .4byte gUnknown_02024BE6 +_080243D8: .4byte gBattlescriptCurrInstr +_080243DC: .4byte gCurrentMove _080243E0: .4byte gUnknown_02024BEA _080243E4: ldr r2, _08024410 @ =gUnknown_02024BE8 - ldr r1, _08024414 @ =gUnknown_02024BE6 + ldr r1, _08024414 @ =gCurrentMove ldr r0, _08024418 @ =gUnknown_02024BEA ldrh r0, [r0] strh r0, [r1] @@ -16840,7 +16840,7 @@ _080243F2: bx r0 .align 2, 0 _08024410: .4byte gUnknown_02024BE8 -_08024414: .4byte gUnknown_02024BE6 +_08024414: .4byte gCurrentMove _08024418: .4byte gUnknown_02024BEA _0802441C: .4byte gUnknown_081D6BBC _08024420: .4byte gBattleMoves @@ -16849,17 +16849,17 @@ _08024420: .4byte gBattleMoves thumb_func_start atk64_statusanimation atk64_statusanimation: @ 8024424 push {r4,lr} - ldr r0, _08024494 @ =gUnknown_02024A64 + ldr r0, _08024494 @ =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 bne _0802448C - ldr r0, _08024498 @ =gUnknown_02024C10 + ldr r0, _08024498 @ =gBattlescriptCurrInstr ldr r0, [r0] ldrb r0, [r0, 0x1] bl sub_8015150 - ldr r4, _0802449C @ =gUnknown_02024A60 + ldr r4, _0802449C @ =gActiveBank strb r0, [r4] - ldr r1, _080244A0 @ =gUnknown_02024C98 + ldr r1, _080244A0 @ =gStatuses3 ldrb r2, [r4] lsls r0, r2, 2 adds r0, r1 @@ -16868,7 +16868,7 @@ atk64_statusanimation: @ 8024424 ands r0, r1 cmp r0, 0 bne _08024484 - ldr r0, _080244A8 @ =gUnknown_02024CA8 + ldr r0, _080244A8 @ =gDisableStructs lsls r1, r2, 3 subs r1, r2 lsls r1, 2 @@ -16876,7 +16876,7 @@ atk64_statusanimation: @ 8024424 ldrb r0, [r1, 0xA] cmp r0, 0 bne _08024484 - ldr r0, _080244AC @ =gUnknown_02024C6C + ldr r0, _080244AC @ =gHitMarker ldr r0, [r0] movs r1, 0x80 ands r0, r1 @@ -16890,11 +16890,11 @@ atk64_statusanimation: @ 8024424 ldr r2, [r0] movs r0, 0 movs r1, 0 - bl dp01_build_cmdbuf_x1B_aaaa_b + bl EmitStatusAnimation ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution _08024484: - ldr r1, _08024498 @ =gUnknown_02024C10 + ldr r1, _08024498 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x2 str r0, [r1] @@ -16903,28 +16903,28 @@ _0802448C: pop {r0} bx r0 .align 2, 0 -_08024494: .4byte gUnknown_02024A64 -_08024498: .4byte gUnknown_02024C10 -_0802449C: .4byte gUnknown_02024A60 -_080244A0: .4byte gUnknown_02024C98 +_08024494: .4byte gBattleExecBuffer +_08024498: .4byte gBattlescriptCurrInstr +_0802449C: .4byte gActiveBank +_080244A0: .4byte gStatuses3 _080244A4: .4byte 0x000400c0 -_080244A8: .4byte gUnknown_02024CA8 -_080244AC: .4byte gUnknown_02024C6C +_080244A8: .4byte gDisableStructs +_080244AC: .4byte gHitMarker _080244B0: .4byte gBattleMons thumb_func_end atk64_statusanimation thumb_func_start atk65_8025D90 atk65_8025D90: @ 80244B4 push {r4,r5,lr} - ldr r0, _0802453C @ =gUnknown_02024A64 + ldr r0, _0802453C @ =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 bne _08024534 - ldr r4, _08024540 @ =gUnknown_02024C10 + ldr r4, _08024540 @ =gBattlescriptCurrInstr ldr r0, [r4] ldrb r0, [r0, 0x1] bl sub_8015150 - ldr r5, _08024544 @ =gUnknown_02024A60 + ldr r5, _08024544 @ =gActiveBank strb r0, [r5] ldr r1, [r4] ldrb r3, [r1, 0x2] @@ -16937,7 +16937,7 @@ atk65_8025D90: @ 80244B4 ldrb r0, [r1, 0x5] lsls r0, 24 orrs r3, r0 - ldr r1, _08024548 @ =gUnknown_02024C98 + ldr r1, _08024548 @ =gStatuses3 ldrb r2, [r5] lsls r0, r2, 2 adds r0, r1 @@ -16946,7 +16946,7 @@ atk65_8025D90: @ 80244B4 ands r0, r1 cmp r0, 0 bne _0802452C - ldr r0, _08024550 @ =gUnknown_02024CA8 + ldr r0, _08024550 @ =gDisableStructs lsls r1, r2, 3 subs r1, r2 lsls r1, 2 @@ -16954,7 +16954,7 @@ atk65_8025D90: @ 80244B4 ldrb r0, [r1, 0xA] cmp r0, 0 bne _0802452C - ldr r0, _08024554 @ =gUnknown_02024C6C + ldr r0, _08024554 @ =gHitMarker ldr r0, [r0] movs r1, 0x80 ands r0, r1 @@ -16969,11 +16969,11 @@ atk65_8025D90: @ 80244B4 ands r2, r3 movs r0, 0 movs r1, 0x1 - bl dp01_build_cmdbuf_x1B_aaaa_b + bl EmitStatusAnimation ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution _0802452C: - ldr r1, _08024540 @ =gUnknown_02024C10 + ldr r1, _08024540 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x6 str r0, [r1] @@ -16982,28 +16982,28 @@ _08024534: pop {r0} bx r0 .align 2, 0 -_0802453C: .4byte gUnknown_02024A64 -_08024540: .4byte gUnknown_02024C10 -_08024544: .4byte gUnknown_02024A60 -_08024548: .4byte gUnknown_02024C98 +_0802453C: .4byte gBattleExecBuffer +_08024540: .4byte gBattlescriptCurrInstr +_08024544: .4byte gActiveBank +_08024548: .4byte gStatuses3 _0802454C: .4byte 0x000400c0 -_08024550: .4byte gUnknown_02024CA8 -_08024554: .4byte gUnknown_02024C6C +_08024550: .4byte gDisableStructs +_08024554: .4byte gHitMarker _08024558: .4byte gBattleMons thumb_func_end atk65_8025D90 thumb_func_start atk66_8025E38 atk66_8025E38: @ 802455C push {r4,r5,lr} - ldr r0, _080245D4 @ =gUnknown_02024A64 + ldr r0, _080245D4 @ =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 bne _080245CE - ldr r4, _080245D8 @ =gUnknown_02024C10 + ldr r4, _080245D8 @ =gBattlescriptCurrInstr ldr r0, [r4] ldrb r0, [r0, 0x1] bl sub_8015150 - ldr r5, _080245DC @ =gUnknown_02024A60 + ldr r5, _080245DC @ =gActiveBank strb r0, [r5] ldr r4, [r4] ldrb r2, [r4, 0x3] @@ -17016,7 +17016,7 @@ atk66_8025E38: @ 802455C ldrb r0, [r4, 0x6] lsls r0, 24 orrs r2, r0 - ldr r1, _080245E0 @ =gUnknown_02024C98 + ldr r1, _080245E0 @ =gStatuses3 ldrb r3, [r5] lsls r0, r3, 2 adds r0, r1 @@ -17025,7 +17025,7 @@ atk66_8025E38: @ 802455C ands r0, r1 cmp r0, 0 bne _080245C6 - ldr r0, _080245E8 @ =gUnknown_02024CA8 + ldr r0, _080245E8 @ =gDisableStructs lsls r1, r3, 3 subs r1, r3 lsls r1, 2 @@ -17033,7 +17033,7 @@ atk66_8025E38: @ 802455C ldrb r0, [r1, 0xA] cmp r0, 0 bne _080245C6 - ldr r0, _080245EC @ =gUnknown_02024C6C + ldr r0, _080245EC @ =gHitMarker ldr r0, [r0] movs r1, 0x80 ands r0, r1 @@ -17041,11 +17041,11 @@ atk66_8025E38: @ 802455C bne _080245C6 ldrb r1, [r4, 0x2] movs r0, 0 - bl dp01_build_cmdbuf_x1B_aaaa_b + bl EmitStatusAnimation ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution _080245C6: - ldr r1, _080245D8 @ =gUnknown_02024C10 + ldr r1, _080245D8 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x7 str r0, [r1] @@ -17054,19 +17054,19 @@ _080245CE: pop {r0} bx r0 .align 2, 0 -_080245D4: .4byte gUnknown_02024A64 -_080245D8: .4byte gUnknown_02024C10 -_080245DC: .4byte gUnknown_02024A60 -_080245E0: .4byte gUnknown_02024C98 +_080245D4: .4byte gBattleExecBuffer +_080245D8: .4byte gBattlescriptCurrInstr +_080245DC: .4byte gActiveBank +_080245E0: .4byte gStatuses3 _080245E4: .4byte 0x000400c0 -_080245E8: .4byte gUnknown_02024CA8 -_080245EC: .4byte gUnknown_02024C6C +_080245E8: .4byte gDisableStructs +_080245EC: .4byte gHitMarker thumb_func_end atk66_8025E38 thumb_func_start atk67_8025ECC atk67_8025ECC: @ 80245F0 push {r4,r5,lr} - ldr r5, _08024600 @ =gUnknown_02024D1E + ldr r5, _08024600 @ =gBattleCommunication ldrb r4, [r5] cmp r4, 0 beq _08024604 @@ -17074,7 +17074,7 @@ atk67_8025ECC: @ 80245F0 beq _08024616 b _08024696 .align 2, 0 -_08024600: .4byte gUnknown_02024D1E +_08024600: .4byte gBattleCommunication _08024604: bl sub_8023A80 ldrb r0, [r5] @@ -17106,7 +17106,7 @@ _0802463A: ands r0, r1 cmp r0, 0 beq _08024660 - ldr r4, _08024678 @ =gUnknown_02024D1E + ldr r4, _08024678 @ =gBattleCommunication ldrb r0, [r4, 0x1] cmp r0, 0 bne _08024660 @@ -17123,13 +17123,13 @@ _08024660: ands r0, r1 cmp r0, 0 beq _0802467C - ldr r1, _08024678 @ =gUnknown_02024D1E + ldr r1, _08024678 @ =gBattleCommunication movs r0, 0x1 strb r0, [r1, 0x1] b _08024684 .align 2, 0 _08024674: .4byte gMain -_08024678: .4byte gUnknown_02024D1E +_08024678: .4byte gBattleCommunication _0802467C: movs r0, 0x1 ands r0, r1 @@ -17139,7 +17139,7 @@ _08024684: movs r0, 0x5 bl PlaySE bl sub_8023AD8 - ldr r1, _0802469C @ =gUnknown_02024C10 + ldr r1, _0802469C @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -17148,15 +17148,15 @@ _08024696: pop {r0} bx r0 .align 2, 0 -_0802469C: .4byte gUnknown_02024C10 +_0802469C: .4byte gBattlescriptCurrInstr thumb_func_end atk67_8025ECC thumb_func_start sub_80246A0 sub_80246A0: @ 80246A0 push {r4,r5,lr} movs r1, 0 - ldr r2, _080246CC @ =gUnknown_02024A68 - ldr r5, _080246D0 @ =gUnknown_02024C10 + ldr r2, _080246CC @ =gNoOfAllBanks + ldr r5, _080246D0 @ =gBattlescriptCurrInstr ldrb r0, [r2] cmp r1, r0 bge _080246BE @@ -17177,8 +17177,8 @@ _080246BE: pop {r0} bx r0 .align 2, 0 -_080246CC: .4byte gUnknown_02024A68 -_080246D0: .4byte gUnknown_02024C10 +_080246CC: .4byte gNoOfAllBanks +_080246D0: .4byte gBattlescriptCurrInstr _080246D4: .4byte gUnknown_02024A76 thumb_func_end sub_80246A0 @@ -17186,7 +17186,7 @@ _080246D4: .4byte gUnknown_02024A76 atk69_8025FE0: @ 80246D8 push {r4-r7,lr} ldr r7, _08024700 @ =gBattleMons - ldr r6, _08024704 @ =gEnemyMonIndex + ldr r6, _08024704 @ =gBankTarget ldrb r2, [r6] movs r5, 0x58 adds r0, r2, 0 @@ -17205,7 +17205,7 @@ atk69_8025FE0: @ 80246D8 b _08024726 .align 2, 0 _08024700: .4byte gBattleMons -_08024704: .4byte gEnemyMonIndex +_08024704: .4byte gBankTarget _08024708: .4byte gEnigmaBerries _0802470C: ldrh r0, [r1, 0x2E] @@ -17220,8 +17220,8 @@ _0802470C: lsls r0, 24 lsrs r6, r0, 24 _08024726: - ldr r1, _080247E8 @ =gUnknown_02024C0B - ldr r5, _080247EC @ =gEnemyMonIndex + ldr r1, _080247E8 @ =gStringBank + ldr r5, _080247EC @ =gBankTarget ldrb r0, [r5] strb r0, [r1] cmp r4, 0x27 @@ -17238,7 +17238,7 @@ _08024726: ldrb r0, [r5] movs r1, 0x27 bl sub_81074F8 - ldr r2, _080247F0 @ =gUnknown_02024D68 + ldr r2, _080247F0 @ =gSpecialStatuses ldrb r1, [r5] lsls r0, r1, 2 adds r0, r1 @@ -17250,7 +17250,7 @@ _08024726: strb r1, [r0] _08024764: ldr r2, _080247F4 @ =gBattleMons - ldr r3, _080247EC @ =gEnemyMonIndex + ldr r3, _080247EC @ =gBankTarget ldrb r4, [r3] movs r0, 0x58 muls r0, r4 @@ -17265,7 +17265,7 @@ _08024764: cmp r1, 0 bne _08024834 ldr r2, _080247F8 @ =gBattleMoves - ldr r0, _080247FC @ =gUnknown_02024BE6 + ldr r0, _080247FC @ =gCurrentMove ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -17274,14 +17274,14 @@ _08024764: ldrb r0, [r0] cmp r0, 0x65 beq _080247B6 - ldr r0, _08024800 @ =gUnknown_02024D28 + ldr r0, _08024800 @ =gProtectStructs lsls r1, r4, 4 adds r1, r0 ldrb r0, [r1] lsls r0, 30 cmp r0, 0 blt _080247B6 - ldr r0, _080247F0 @ =gUnknown_02024D68 + ldr r0, _080247F0 @ =gSpecialStatuses lsls r1, r4, 2 adds r1, r4 lsls r1, 2 @@ -17302,7 +17302,7 @@ _080247B6: bgt _08024834 subs r0, r1, 0x1 str r0, [r2] - ldr r1, _08024800 @ =gUnknown_02024D28 + ldr r1, _08024800 @ =gProtectStructs ldrb r3, [r3] lsls r0, r3, 4 adds r0, r1 @@ -17317,17 +17317,17 @@ _080247B6: strb r1, [r0] b _08024834 .align 2, 0 -_080247E8: .4byte gUnknown_02024C0B -_080247EC: .4byte gEnemyMonIndex -_080247F0: .4byte gUnknown_02024D68 +_080247E8: .4byte gStringBank +_080247EC: .4byte gBankTarget +_080247F0: .4byte gSpecialStatuses _080247F4: .4byte gBattleMons _080247F8: .4byte gBattleMoves -_080247FC: .4byte gUnknown_02024BE6 -_08024800: .4byte gUnknown_02024D28 +_080247FC: .4byte gCurrentMove +_08024800: .4byte gProtectStructs _08024804: .4byte gBattleMoveDamage _08024808: .4byte gBattleMoveFlags _0802480C: - ldr r0, _08024844 @ =gUnknown_02024D68 + ldr r0, _08024844 @ =gSpecialStatuses lsls r1, r3, 2 adds r1, r3 lsls r1, 2 @@ -17341,14 +17341,14 @@ _0802480C: movs r1, 0x80 orrs r0, r1 strb r0, [r2] - ldr r1, _0802484C @ =gUnknown_02024C04 + ldr r1, _0802484C @ =gLastUsedItem adds r0, r3, 0 muls r0, r4 adds r0, r5 ldrh r0, [r0, 0x2E] strh r0, [r1] _08024834: - ldr r1, _08024850 @ =gUnknown_02024C10 + ldr r1, _08024850 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -17356,21 +17356,21 @@ _08024834: pop {r0} bx r0 .align 2, 0 -_08024844: .4byte gUnknown_02024D68 +_08024844: .4byte gSpecialStatuses _08024848: .4byte gBattleMoveFlags -_0802484C: .4byte gUnknown_02024C04 -_08024850: .4byte gUnknown_02024C10 +_0802484C: .4byte gLastUsedItem +_08024850: .4byte gBattlescriptCurrInstr thumb_func_end atk69_8025FE0 thumb_func_start atk6A_stash_item_for_side atk6A_stash_item_for_side: @ 8024854 push {r4-r6,lr} sub sp, 0x4 - ldr r6, _080248B0 @ =gUnknown_02024C10 + ldr r6, _080248B0 @ =gBattlescriptCurrInstr ldr r0, [r6] ldrb r0, [r0, 0x1] bl sub_8015150 - ldr r5, _080248B4 @ =gUnknown_02024A60 + ldr r5, _080248B4 @ =gActiveBank strb r0, [r5] ldrb r4, [r5] lsls r1, r4, 1 @@ -17397,9 +17397,9 @@ atk6A_stash_item_for_side: @ 8024854 movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl dp01_build_cmdbuf_x02_a_b_varargs + bl EmitSetAttributes ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution ldr r0, [r6] adds r0, 0x2 str r0, [r6] @@ -17408,23 +17408,23 @@ atk6A_stash_item_for_side: @ 8024854 pop {r0} bx r0 .align 2, 0 -_080248B0: .4byte gUnknown_02024C10 -_080248B4: .4byte gUnknown_02024A60 +_080248B0: .4byte gBattlescriptCurrInstr +_080248B4: .4byte gActiveBank _080248B8: .4byte 0x020160cc _080248BC: .4byte gBattleMons thumb_func_end atk6A_stash_item_for_side thumb_func_start sub_80248C0 sub_80248C0: @ 80248C0 - ldr r1, _080248EC @ =gUnknown_030041C0 + ldr r1, _080248EC @ =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x7 strb r0, [r1, 0x1] - ldr r2, _080248F0 @ =gPlayerMonIndex + ldr r2, _080248F0 @ =gBankAttacker ldrb r0, [r2] strb r0, [r1, 0x2] - ldr r3, _080248F4 @ =gUnknown_02024A6A + ldr r3, _080248F4 @ =gBattlePartyID ldrb r0, [r2] lsls r0, 1 adds r0, r3 @@ -17432,16 +17432,16 @@ sub_80248C0: @ 80248C0 strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] - ldr r1, _080248F8 @ =gUnknown_02024C10 + ldr r1, _080248F8 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 -_080248EC: .4byte gUnknown_030041C0 -_080248F0: .4byte gPlayerMonIndex -_080248F4: .4byte gUnknown_02024A6A -_080248F8: .4byte gUnknown_02024C10 +_080248EC: .4byte gBattleTextBuff1 +_080248F0: .4byte gBankAttacker +_080248F4: .4byte gBattlePartyID +_080248F8: .4byte gBattlescriptCurrInstr thumb_func_end sub_80248C0 thumb_func_start sub_80248FC @@ -17833,7 +17833,7 @@ _08024C04: .align 2, 0 _08024C2C: .4byte gMain _08024C30: - ldr r1, _08024C48 @ =gUnknown_02024C10 + ldr r1, _08024C48 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -17847,55 +17847,55 @@ _08024C38: pop {r0} bx r0 .align 2, 0 -_08024C48: .4byte gUnknown_02024C10 +_08024C48: .4byte gBattlescriptCurrInstr thumb_func_end sub_80248FC thumb_func_start sub_8024C4C sub_8024C4C: @ 8024C4C push {lr} bl sub_80156DC - ldr r1, _08024C60 @ =gUnknown_02024C10 + ldr r1, _08024C60 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .align 2, 0 -_08024C60: .4byte gUnknown_02024C10 +_08024C60: .4byte gBattlescriptCurrInstr thumb_func_end sub_8024C4C thumb_func_start atk6E_state0_side_becomes_attacker atk6E_state0_side_becomes_attacker: @ 8024C64 push {lr} movs r0, 0 - bl battle_get_side_with_given_state - ldr r1, _08024C7C @ =gPlayerMonIndex + bl GetBankByPlayerAI + ldr r1, _08024C7C @ =gBankAttacker strb r0, [r1] - ldr r1, _08024C80 @ =gUnknown_02024C10 + ldr r1, _08024C80 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .align 2, 0 -_08024C7C: .4byte gPlayerMonIndex -_08024C80: .4byte gUnknown_02024C10 +_08024C7C: .4byte gBankAttacker +_08024C80: .4byte gBattlescriptCurrInstr thumb_func_end atk6E_state0_side_becomes_attacker thumb_func_start atk6F_8026810 atk6F_8026810: @ 8024C84 push {r4,r5,lr} - ldr r5, _08024CB0 @ =gUnknown_02024C10 + ldr r5, _08024CB0 @ =gBattlescriptCurrInstr ldr r0, [r5] ldrb r0, [r0, 0x1] bl sub_8015150 - ldr r4, _08024CB4 @ =gUnknown_02024A60 + ldr r4, _08024CB4 @ =gActiveBank strb r0, [r4] movs r0, 0 movs r1, 0 - bl dp01_build_cmdbuf_x33_a_33_33 + bl EmitSpriteInvisibility ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution ldr r0, [r5] adds r0, 0x2 str r0, [r5] @@ -17903,21 +17903,21 @@ atk6F_8026810: @ 8024C84 pop {r0} bx r0 .align 2, 0 -_08024CB0: .4byte gUnknown_02024C10 -_08024CB4: .4byte gUnknown_02024A60 +_08024CB0: .4byte gBattlescriptCurrInstr +_08024CB4: .4byte gActiveBank thumb_func_end atk6F_8026810 thumb_func_start atk70_record_ability_usage_of_side atk70_record_ability_usage_of_side: @ 8024CB8 push {r4,lr} - ldr r4, _08024CE0 @ =gUnknown_02024C10 + ldr r4, _08024CE0 @ =gBattlescriptCurrInstr ldr r0, [r4] ldrb r0, [r0, 0x1] bl sub_8015150 - ldr r1, _08024CE4 @ =gUnknown_02024A60 + ldr r1, _08024CE4 @ =gActiveBank strb r0, [r1] ldrb r0, [r1] - ldr r1, _08024CE8 @ =byte_2024C06 + ldr r1, _08024CE8 @ =gLastUsedAbility ldrb r1, [r1] bl sub_81074C4 ldr r0, [r4] @@ -17927,14 +17927,14 @@ atk70_record_ability_usage_of_side: @ 8024CB8 pop {r0} bx r0 .align 2, 0 -_08024CE0: .4byte gUnknown_02024C10 -_08024CE4: .4byte gUnknown_02024A60 -_08024CE8: .4byte byte_2024C06 +_08024CE0: .4byte gBattlescriptCurrInstr +_08024CE4: .4byte gActiveBank +_08024CE8: .4byte gLastUsedAbility thumb_func_end atk70_record_ability_usage_of_side thumb_func_start sub_8024CEC sub_8024CEC: @ 8024CEC - ldr r2, _08024D0C @ =gUnknown_03004290 + ldr r2, _08024D0C @ =gBattleTextBuff2 movs r0, 0xFD strb r0, [r2] movs r0, 0x2 @@ -17951,7 +17951,7 @@ sub_8024CEC: @ 8024CEC strb r0, [r2, 0x4] bx lr .align 2, 0 -_08024D0C: .4byte gUnknown_03004290 +_08024D0C: .4byte gBattleTextBuff2 _08024D10: .4byte word_2024E82 thumb_func_end sub_8024CEC @@ -17959,26 +17959,26 @@ _08024D10: .4byte word_2024E82 atk71_80268A0: @ 8024D14 push {lr} bl sub_8024CEC - ldr r1, _08024D28 @ =gUnknown_02024C10 + ldr r1, _08024D28 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .align 2, 0 -_08024D28: .4byte gUnknown_02024C10 +_08024D28: .4byte gBattlescriptCurrInstr thumb_func_end atk71_80268A0 thumb_func_start atk72_flee atk72_flee: @ 8024D2C push {lr} - ldr r0, _08024D58 @ =gUnknown_02024C09 + ldr r0, _08024D58 @ =gBank1 ldrb r0, [r0] bl sub_8014AB8 lsls r0, 24 cmp r0, 0 beq _08024D60 - ldr r3, _08024D5C @ =gUnknown_02024C10 + ldr r3, _08024D5C @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -17993,10 +17993,10 @@ atk72_flee: @ 8024D2C str r1, [r3] b _08024D68 .align 2, 0 -_08024D58: .4byte gUnknown_02024C09 -_08024D5C: .4byte gUnknown_02024C10 +_08024D58: .4byte gBank1 +_08024D5C: .4byte gBattlescriptCurrInstr _08024D60: - ldr r1, _08024D6C @ =gUnknown_02024C10 + ldr r1, _08024D6C @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] @@ -18004,7 +18004,7 @@ _08024D68: pop {r0} bx r0 .align 2, 0 -_08024D6C: .4byte gUnknown_02024C10 +_08024D6C: .4byte gBattlescriptCurrInstr thumb_func_end atk72_flee thumb_func_start atk73_cmd73 @@ -18016,11 +18016,11 @@ atk73_cmd73: @ 8024D70 ands r5, r0 cmp r5, 0 bne _08024E12 - ldr r0, _08024DC4 @ =gUnknown_02024C10 + ldr r0, _08024DC4 @ =gBattlescriptCurrInstr ldr r0, [r0] ldrb r0, [r0, 0x1] bl sub_8015150 - ldr r1, _08024DC8 @ =gUnknown_02024A60 + ldr r1, _08024DC8 @ =gActiveBank strb r0, [r1] movs r1, 0x1 eors r0, r1 @@ -18051,8 +18051,8 @@ _08024DB6: b _08024E12 .align 2, 0 _08024DC0: .4byte gBattleTypeFlags -_08024DC4: .4byte gUnknown_02024C10 -_08024DC8: .4byte gUnknown_02024A60 +_08024DC4: .4byte gBattlescriptCurrInstr +_08024DC8: .4byte gActiveBank _08024DCC: .4byte gBattleMons _08024DD0: .4byte 0x02000000 _08024DD4: .4byte 0x000160c1 @@ -18086,7 +18086,7 @@ _08024E08: _08024E10: strb r1, [r0] _08024E12: - ldr r1, _08024E28 @ =gUnknown_02024C10 + ldr r1, _08024E28 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x2 str r0, [r1] @@ -18096,7 +18096,7 @@ _08024E12: .align 2, 0 _08024E20: .4byte 0x02000000 _08024E24: .4byte 0x000160c1 -_08024E28: .4byte gUnknown_02024C10 +_08024E28: .4byte gBattlescriptCurrInstr thumb_func_end atk73_cmd73 thumb_func_start atk74_hp_tresholds_2 @@ -18108,12 +18108,12 @@ atk74_hp_tresholds_2: @ 8024E2C ands r7, r0 cmp r7, 0 bne _08024ED0 - ldr r0, _08024E90 @ =gUnknown_02024C10 + ldr r0, _08024E90 @ =gBattlescriptCurrInstr ldr r0, [r0] ldrb r0, [r0, 0x1] bl sub_8015150 adds r4, r0, 0 - ldr r0, _08024E94 @ =gUnknown_02024A60 + ldr r0, _08024E94 @ =gActiveBank strb r4, [r0] movs r0, 0x1 eors r4, r0 @@ -18121,7 +18121,7 @@ atk74_hp_tresholds_2: @ 8024E2C lsrs r4, 24 ldr r6, _08024E98 @ =0x02000000 adds r0, r4, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 23 ldr r1, _08024E9C @ =0x000160bc @@ -18147,8 +18147,8 @@ atk74_hp_tresholds_2: @ 8024E2C b _08024ED0 .align 2, 0 _08024E8C: .4byte gBattleTypeFlags -_08024E90: .4byte gUnknown_02024C10 -_08024E94: .4byte gUnknown_02024A60 +_08024E90: .4byte gBattlescriptCurrInstr +_08024E94: .4byte gActiveBank _08024E98: .4byte 0x02000000 _08024E9C: .4byte 0x000160bc _08024EA0: .4byte gBattleMons @@ -18178,7 +18178,7 @@ _08024EC8: _08024ECE: strb r0, [r1] _08024ED0: - ldr r1, _08024EE4 @ =gUnknown_02024C10 + ldr r1, _08024EE4 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x2 str r0, [r1] @@ -18187,18 +18187,18 @@ _08024ED0: bx r0 .align 2, 0 _08024EE0: .4byte 0x000160c1 -_08024EE4: .4byte gUnknown_02024C10 +_08024EE4: .4byte gBattlescriptCurrInstr thumb_func_end atk74_hp_tresholds_2 thumb_func_start atk75_8026A58 atk75_8026A58: @ 8024EE8 push {lr} sub sp, 0x4 - ldr r2, _08024F28 @ =gUnknown_02024E6C - ldr r1, _08024F2C @ =gPlayerMonIndex + ldr r2, _08024F28 @ =gBankInMenu + ldr r1, _08024F2C @ =gBankAttacker ldrb r0, [r1] strb r0, [r2] - ldr r2, _08024F30 @ =gUnknown_02024A6A + ldr r2, _08024F30 @ =gBattlePartyID ldrb r0, [r1] lsls r0, 1 adds r0, r2 @@ -18207,7 +18207,7 @@ atk75_8026A58: @ 8024EE8 muls r0, r2 ldr r1, _08024F34 @ =gEnemyParty adds r0, r1 - ldr r1, _08024F38 @ =gUnknown_02024C04 + ldr r1, _08024F38 @ =gLastUsedItem ldrh r1, [r1] lsls r2, 24 lsrs r2, 24 @@ -18215,7 +18215,7 @@ atk75_8026A58: @ 8024EE8 str r3, [sp] movs r3, 0 bl sub_803E1B0 - ldr r1, _08024F3C @ =gUnknown_02024C10 + ldr r1, _08024F3C @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -18223,22 +18223,22 @@ atk75_8026A58: @ 8024EE8 pop {r0} bx r0 .align 2, 0 -_08024F28: .4byte gUnknown_02024E6C -_08024F2C: .4byte gPlayerMonIndex -_08024F30: .4byte gUnknown_02024A6A +_08024F28: .4byte gBankInMenu +_08024F2C: .4byte gBankAttacker +_08024F30: .4byte gBattlePartyID _08024F34: .4byte gEnemyParty -_08024F38: .4byte gUnknown_02024C04 -_08024F3C: .4byte gUnknown_02024C10 +_08024F38: .4byte gLastUsedItem +_08024F3C: .4byte gBattlescriptCurrInstr thumb_func_end atk75_8026A58 thumb_func_start sub_8024F40 sub_8024F40: @ 8024F40 push {r4-r6,lr} - ldr r4, _08024F64 @ =gUnknown_02024C10 + ldr r4, _08024F64 @ =gBattlescriptCurrInstr ldr r0, [r4] ldrb r0, [r0, 0x1] bl sub_8015150 - ldr r1, _08024F68 @ =gUnknown_02024A60 + ldr r1, _08024F68 @ =gActiveBank strb r0, [r1] ldr r0, [r4] ldrb r0, [r0, 0x2] @@ -18252,8 +18252,8 @@ _08024F5A: ldr r0, [r0] mov pc, r0 .align 2, 0 -_08024F64: .4byte gUnknown_02024C10 -_08024F68: .4byte gUnknown_02024A60 +_08024F64: .4byte gBattlescriptCurrInstr +_08024F68: .4byte gActiveBank _08024F6C: .4byte _08024F70 .align 2, 0 _08024F70: @@ -18265,24 +18265,24 @@ _08024F70: .4byte _08025060 .4byte _08025098 _08024F8C: - ldr r0, _08024F98 @ =gUnknown_02024A60 + ldr r0, _08024F98 @ =gActiveBank ldrb r0, [r0] - bl b_cancel_multi_turn_move_maybe + bl CancelMultiTurnMoves b _08025112 .align 2, 0 -_08024F98: .4byte gUnknown_02024A60 +_08024F98: .4byte gActiveBank _08024F9C: - ldr r1, _08024FD8 @ =gPlayerMonIndex - ldr r4, _08024FDC @ =gEnemyMonIndex + ldr r1, _08024FD8 @ =gBankAttacker + ldr r4, _08024FDC @ =gBankTarget ldrb r0, [r4] strb r0, [r1] ldrb r0, [r1] - bl battle_side_get_owner + bl GetBankSide movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r0, 24 - ldr r2, _08024FE0 @ =gUnknown_02024C80 + ldr r2, _08024FE0 @ =gSideTimer lsls r1, r0, 1 adds r1, r0 lsls r1, 2 @@ -18301,41 +18301,41 @@ _08024F9C: strb r2, [r4] b _08025112 .align 2, 0 -_08024FD8: .4byte gPlayerMonIndex -_08024FDC: .4byte gEnemyMonIndex -_08024FE0: .4byte gUnknown_02024C80 +_08024FD8: .4byte gBankAttacker +_08024FDC: .4byte gBankTarget +_08024FE0: .4byte gSideTimer _08024FE4: .4byte gBattleMons _08024FE8: - ldr r0, _08024FF4 @ =gEnemyMonIndex - ldr r1, _08024FF8 @ =gUnknown_02024A60 + ldr r0, _08024FF4 @ =gBankTarget + ldr r1, _08024FF8 @ =gActiveBank ldrb r1, [r1] strb r1, [r0] b _08025112 .align 2, 0 -_08024FF4: .4byte gEnemyMonIndex -_08024FF8: .4byte gUnknown_02024A60 +_08024FF4: .4byte gBankTarget +_08024FF8: .4byte gActiveBank _08024FFC: - bl sub_8012028 - ldr r1, _08025008 @ =gUnknown_02024D1E + bl CanRunFromBattle + ldr r1, _08025008 @ =gBattleCommunication strb r0, [r1] b _08025112 .align 2, 0 -_08025008: .4byte gUnknown_02024D1E +_08025008: .4byte gBattleCommunication _0802500C: - ldr r0, _0802501C @ =gUnknown_02024BE6 + ldr r0, _0802501C @ =gCurrentMove ldrh r0, [r0] movs r1, 0 bl sub_801B5C0 - ldr r1, _08025020 @ =gEnemyMonIndex + ldr r1, _08025020 @ =gBankTarget strb r0, [r1] b _08025112 .align 2, 0 -_0802501C: .4byte gUnknown_02024BE6 -_08025020: .4byte gEnemyMonIndex +_0802501C: .4byte gCurrentMove +_08025020: .4byte gBankTarget _08025024: - ldr r2, _08025044 @ =gUnknown_02024C6C + ldr r2, _08025044 @ =gHitMarker ldr r1, _08025048 @ =gBitTable - ldr r0, _0802504C @ =gUnknown_02024A60 + ldr r0, _0802504C @ =gActiveBank ldrb r0, [r0] lsls r0, 2 adds r0, r1 @@ -18345,24 +18345,24 @@ _08025024: ands r2, r0 cmp r2, 0 beq _08025054 - ldr r1, _08025050 @ =gUnknown_02024D1E + ldr r1, _08025050 @ =gBattleCommunication movs r0, 0x1 strb r0, [r1] b _08025112 .align 2, 0 -_08025044: .4byte gUnknown_02024C6C +_08025044: .4byte gHitMarker _08025048: .4byte gBitTable -_0802504C: .4byte gUnknown_02024A60 -_08025050: .4byte gUnknown_02024D1E +_0802504C: .4byte gActiveBank +_08025050: .4byte gBattleCommunication _08025054: - ldr r0, _0802505C @ =gUnknown_02024D1E + ldr r0, _0802505C @ =gBattleCommunication strb r2, [r0] b _08025112 .align 2, 0 -_0802505C: .4byte gUnknown_02024D1E +_0802505C: .4byte gBattleCommunication _08025060: - ldr r4, _08025090 @ =gUnknown_02024D68 - ldr r3, _08025094 @ =gUnknown_02024A60 + ldr r4, _08025090 @ =gSpecialStatuses + ldr r3, _08025094 @ =gActiveBank ldrb r0, [r3] lsls r1, r0, 2 adds r1, r0 @@ -18385,10 +18385,10 @@ _08025060: strb r0, [r1] b _08025112 .align 2, 0 -_08025090: .4byte gUnknown_02024D68 -_08025094: .4byte gUnknown_02024A60 +_08025090: .4byte gSpecialStatuses +_08025094: .4byte gActiveBank _08025098: - ldr r3, _080250B8 @ =gUnknown_02024A6A + ldr r3, _080250B8 @ =gBattlePartyID ldr r0, _080250BC @ =0x02000000 ldr r1, _080250C0 @ =0x00016018 adds r0, r1 @@ -18402,16 +18402,16 @@ _08025098: cmp r2, r0 bne _080250C8 _080250B2: - ldr r1, _080250C4 @ =gUnknown_02024A60 + ldr r1, _080250C4 @ =gActiveBank movs r0, 0 b _080250CC .align 2, 0 -_080250B8: .4byte gUnknown_02024A6A +_080250B8: .4byte gBattlePartyID _080250BC: .4byte 0x02000000 _080250C0: .4byte 0x00016018 -_080250C4: .4byte gUnknown_02024A60 +_080250C4: .4byte gActiveBank _080250C8: - ldr r1, _08025120 @ =gUnknown_02024A60 + ldr r1, _08025120 @ =gActiveBank movs r0, 0x2 _080250CC: strb r0, [r1] @@ -18452,7 +18452,7 @@ _0802510A: movs r0, 0 strh r0, [r4] _08025112: - ldr r1, _0802512C @ =gUnknown_02024C10 + ldr r1, _0802512C @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x3 str r0, [r1] @@ -18460,10 +18460,10 @@ _08025112: pop {r0} bx r0 .align 2, 0 -_08025120: .4byte gUnknown_02024A60 +_08025120: .4byte gActiveBank _08025124: .4byte 0x020160e8 _08025128: .4byte gBattleMons -_0802512C: .4byte gUnknown_02024C10 +_0802512C: .4byte gBattlescriptCurrInstr thumb_func_end sub_8024F40 thumb_func_start atk77_setprotect @@ -18473,13 +18473,13 @@ atk77_setprotect: @ 8025130 push {r7} movs r6, 0x1 ldr r2, _080251FC @ =gUnknown_02024C4C - ldr r1, _08025200 @ =gPlayerMonIndex + ldr r1, _08025200 @ =gBankAttacker ldrb r3, [r1] lsls r0, r3, 1 adds r0, r2 ldrh r0, [r0] mov r8, r1 - ldr r7, _08025204 @ =gUnknown_02024CA8 + ldr r7, _08025204 @ =gDisableStructs cmp r0, 0xB6 beq _08025160 cmp r0, 0xC5 @@ -18493,9 +18493,9 @@ atk77_setprotect: @ 8025130 movs r1, 0 strb r1, [r0, 0x8] _08025160: - ldr r0, _08025208 @ =gUnknown_02024A7E + ldr r0, _08025208 @ =gCurrentMoveTurn ldrb r1, [r0] - ldr r0, _0802520C @ =gUnknown_02024A68 + ldr r0, _0802520C @ =gNoOfAllBanks ldrb r0, [r0] subs r0, 0x1 cmp r1, r0 @@ -18521,7 +18521,7 @@ _08025170: cmp r6, 0 beq _08025224 ldr r4, _08025214 @ =gBattleMoves - ldr r3, _08025218 @ =gUnknown_02024BE6 + ldr r3, _08025218 @ =gCurrentMove ldrh r0, [r3] lsls r1, r0, 1 adds r1, r0 @@ -18530,7 +18530,7 @@ _08025170: ldrb r0, [r1] cmp r0, 0x6F bne _080251C0 - ldr r0, _0802521C @ =gUnknown_02024D28 + ldr r0, _0802521C @ =gProtectStructs ldrb r1, [r5] lsls r1, 4 adds r1, r0 @@ -18538,7 +18538,7 @@ _08025170: movs r2, 0x1 orrs r0, r2 strb r0, [r1] - ldr r1, _08025220 @ =gUnknown_02024D1E + ldr r1, _08025220 @ =gBattleCommunication movs r0, 0 strb r0, [r1, 0x5] _080251C0: @@ -18550,7 +18550,7 @@ _080251C0: ldrb r0, [r1] cmp r0, 0x74 bne _080251E6 - ldr r0, _0802521C @ =gUnknown_02024D28 + ldr r0, _0802521C @ =gProtectStructs ldrb r1, [r5] lsls r1, 4 adds r1, r0 @@ -18558,7 +18558,7 @@ _080251C0: movs r2, 0x2 orrs r0, r2 strb r0, [r1] - ldr r1, _08025220 @ =gUnknown_02024D1E + ldr r1, _08025220 @ =gBattleCommunication movs r0, 0x1 strb r0, [r1, 0x5] _080251E6: @@ -18574,18 +18574,18 @@ _080251E6: b _08025246 .align 2, 0 _080251FC: .4byte gUnknown_02024C4C -_08025200: .4byte gPlayerMonIndex -_08025204: .4byte gUnknown_02024CA8 -_08025208: .4byte gUnknown_02024A7E -_0802520C: .4byte gUnknown_02024A68 +_08025200: .4byte gBankAttacker +_08025204: .4byte gDisableStructs +_08025208: .4byte gCurrentMoveTurn +_0802520C: .4byte gNoOfAllBanks _08025210: .4byte gProtectSuccessRates _08025214: .4byte gBattleMoves -_08025218: .4byte gUnknown_02024BE6 -_0802521C: .4byte gUnknown_02024D28 -_08025220: .4byte gUnknown_02024D1E +_08025218: .4byte gCurrentMove +_0802521C: .4byte gProtectStructs +_08025220: .4byte gBattleCommunication _08025224: - ldr r2, _08025258 @ =gUnknown_02024CA8 - ldr r0, _0802525C @ =gPlayerMonIndex + ldr r2, _08025258 @ =gDisableStructs + ldr r0, _0802525C @ =gBankAttacker ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 @@ -18593,7 +18593,7 @@ _08025224: adds r0, r2 movs r1, 0 strb r1, [r0, 0x8] - ldr r1, _08025260 @ =gUnknown_02024D1E + ldr r1, _08025260 @ =gBattleCommunication movs r0, 0x2 strb r0, [r1, 0x5] ldr r2, _08025264 @ =gBattleMoveFlags @@ -18602,7 +18602,7 @@ _08025224: orrs r0, r1 strb r0, [r2] _08025246: - ldr r1, _08025268 @ =gUnknown_02024C10 + ldr r1, _08025268 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -18612,11 +18612,11 @@ _08025246: pop {r0} bx r0 .align 2, 0 -_08025258: .4byte gUnknown_02024CA8 -_0802525C: .4byte gPlayerMonIndex -_08025260: .4byte gUnknown_02024D1E +_08025258: .4byte gDisableStructs +_0802525C: .4byte gBankAttacker +_08025260: .4byte gBattleCommunication _08025264: .4byte gBattleMoveFlags -_08025268: .4byte gUnknown_02024C10 +_08025268: .4byte gBattlescriptCurrInstr thumb_func_end atk77_setprotect thumb_func_start atk78_faintifabilitynotdamp @@ -18624,13 +18624,13 @@ atk78_faintifabilitynotdamp: @ 802526C push {r4-r7,lr} mov r7, r8 push {r7} - ldr r0, _08025328 @ =gUnknown_02024A64 + ldr r0, _08025328 @ =gBattleExecBuffer ldr r2, [r0] cmp r2, 0 bne _08025370 - ldr r1, _0802532C @ =gEnemyMonIndex + ldr r1, _0802532C @ =gBankTarget strb r2, [r1] - ldr r0, _08025330 @ =gUnknown_02024A68 + ldr r0, _08025330 @ =gNoOfAllBanks ldrb r3, [r0] adds r5, r1, 0 mov r8, r0 @@ -18666,8 +18666,8 @@ _080252B8: ldrb r1, [r1] cmp r0, r1 bne _08025354 - ldr r4, _08025338 @ =gUnknown_02024A60 - ldr r7, _0802533C @ =gPlayerMonIndex + ldr r4, _08025338 @ =gActiveBank + ldr r7, _0802533C @ =gBankAttacker ldrb r0, [r7] strb r0, [r4] ldr r2, _08025340 @ =gBattleMoveDamage @@ -18679,10 +18679,10 @@ _080252B8: str r0, [r2] ldr r1, _08025344 @ =0x00007fff movs r0, 0 - bl dp01_build_cmdbuf_x18_0_aa_health_bar_update + bl EmitHealthBarUpdate ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _08025348 @ =gUnknown_02024C10 + bl MarkBufferBankForExecution + ldr r1, _08025348 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -18696,7 +18696,7 @@ _080252B8: ldrb r5, [r7] ldr r7, _0802534C @ =gBitTable adds r4, r0, 0 - ldr r6, _08025350 @ =gUnknown_02024C0C + ldr r6, _08025350 @ =gAbsentBankFlags _08025304: ldrb r2, [r3] cmp r2, r5 @@ -18718,19 +18718,19 @@ _0802531A: bcc _08025304 b _08025370 .align 2, 0 -_08025328: .4byte gUnknown_02024A64 -_0802532C: .4byte gEnemyMonIndex -_08025330: .4byte gUnknown_02024A68 +_08025328: .4byte gBattleExecBuffer +_0802532C: .4byte gBankTarget +_08025330: .4byte gNoOfAllBanks _08025334: .4byte gBattleMons -_08025338: .4byte gUnknown_02024A60 -_0802533C: .4byte gPlayerMonIndex +_08025338: .4byte gActiveBank +_0802533C: .4byte gBankAttacker _08025340: .4byte gBattleMoveDamage _08025344: .4byte 0x00007fff -_08025348: .4byte gUnknown_02024C10 +_08025348: .4byte gBattlescriptCurrInstr _0802534C: .4byte gBitTable -_08025350: .4byte gUnknown_02024C0C +_08025350: .4byte gAbsentBankFlags _08025354: - ldr r1, _0802537C @ =byte_2024C06 + ldr r1, _0802537C @ =gLastUsedAbility movs r0, 0x6 strb r0, [r1] ldrb r0, [r5] @@ -18740,7 +18740,7 @@ _08025354: adds r1, 0x20 ldrb r1, [r1] bl sub_81074C4 - ldr r1, _08025380 @ =gUnknown_02024C10 + ldr r1, _08025380 @ =gBattlescriptCurrInstr ldr r0, _08025384 @ =gUnknown_081D9834 str r0, [r1] _08025370: @@ -18750,8 +18750,8 @@ _08025370: pop {r0} bx r0 .align 2, 0 -_0802537C: .4byte byte_2024C06 -_08025380: .4byte gUnknown_02024C10 +_0802537C: .4byte gLastUsedAbility +_08025380: .4byte gBattlescriptCurrInstr _08025384: .4byte gUnknown_081D9834 thumb_func_end atk78_faintifabilitynotdamp @@ -18759,12 +18759,12 @@ _08025384: .4byte gUnknown_081D9834 atk79_setuserhptozero: @ 8025388 push {r4,lr} sub sp, 0x4 - ldr r0, _080253D4 @ =gUnknown_02024A64 + ldr r0, _080253D4 @ =gBattleExecBuffer ldr r3, [r0] cmp r3, 0 bne _080253CC - ldr r4, _080253D8 @ =gUnknown_02024A60 - ldr r0, _080253DC @ =gPlayerMonIndex + ldr r4, _080253D8 @ =gActiveBank + ldr r0, _080253DC @ =gBankAttacker ldrb r0, [r0] strb r0, [r4] ldr r1, _080253E0 @ =gBattleMons @@ -18782,10 +18782,10 @@ atk79_setuserhptozero: @ 8025388 movs r1, 0x2A movs r2, 0 movs r3, 0x2 - bl dp01_build_cmdbuf_x02_a_b_varargs + bl EmitSetAttributes ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _080253E4 @ =gUnknown_02024C10 + bl MarkBufferBankForExecution + ldr r1, _080253E4 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -18795,17 +18795,17 @@ _080253CC: pop {r0} bx r0 .align 2, 0 -_080253D4: .4byte gUnknown_02024A64 -_080253D8: .4byte gUnknown_02024A60 -_080253DC: .4byte gPlayerMonIndex +_080253D4: .4byte gBattleExecBuffer +_080253D8: .4byte gActiveBank +_080253DC: .4byte gBankAttacker _080253E0: .4byte gBattleMons -_080253E4: .4byte gUnknown_02024C10 +_080253E4: .4byte gBattlescriptCurrInstr thumb_func_end atk79_setuserhptozero thumb_func_start sub_80253E8 sub_80253E8: @ 80253E8 push {r4-r7,lr} - ldr r3, _08025460 @ =gUnknown_02024C10 + ldr r3, _08025460 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r4, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -18824,17 +18824,17 @@ sub_80253E8: @ 80253E8 adds r7, r3, 0 cmp r0, 0 beq _08025480 - ldr r0, _08025468 @ =gEnemyMonIndex + ldr r0, _08025468 @ =gBankTarget ldrb r1, [r0] adds r1, 0x1 strb r1, [r0] - ldr r2, _0802546C @ =gPlayerMonIndex + ldr r2, _0802546C @ =gBankAttacker lsls r1, 24 lsrs r1, 24 adds r3, r0, 0 - ldr r6, _08025470 @ =gUnknown_02024C0C + ldr r6, _08025470 @ =gAbsentBankFlags ldr r5, _08025474 @ =gBitTable - ldr r0, _08025478 @ =gUnknown_02024A68 + ldr r0, _08025478 @ =gNoOfAllBanks mov r12, r0 ldrb r0, [r2] cmp r1, r0 @@ -18867,13 +18867,13 @@ _0802543E: str r0, [r7] b _08025484 .align 2, 0 -_08025460: .4byte gUnknown_02024C10 +_08025460: .4byte gBattlescriptCurrInstr _08025464: .4byte gBattleTypeFlags -_08025468: .4byte gEnemyMonIndex -_0802546C: .4byte gPlayerMonIndex -_08025470: .4byte gUnknown_02024C0C +_08025468: .4byte gBankTarget +_0802546C: .4byte gBankAttacker +_08025470: .4byte gAbsentBankFlags _08025474: .4byte gBitTable -_08025478: .4byte gUnknown_02024A68 +_08025478: .4byte gNoOfAllBanks _0802547C: str r4, [r7] b _08025484 @@ -18889,7 +18889,7 @@ _08025484: thumb_func_start sub_802548C sub_802548C: @ 802548C push {r4-r6,lr} - ldr r4, _080254E8 @ =gUnknown_02024C10 + ldr r4, _080254E8 @ =gBattlescriptCurrInstr ldr r1, [r4] ldrb r2, [r1, 0x1] ldrb r0, [r1, 0x2] @@ -18902,10 +18902,10 @@ sub_802548C: @ 802548C lsls r0, 24 orrs r2, r0 ldrb r0, [r1, 0x5] - ldr r3, _080254EC @ =gEnemyMonIndex + ldr r3, _080254EC @ =gBankTarget cmp r0, 0x1 bne _080254B4 - ldr r0, _080254F0 @ =gPlayerMonIndex + ldr r0, _080254F0 @ =gBankAttacker ldrb r0, [r0] strb r0, [r3] _080254B4: @@ -18936,9 +18936,9 @@ _080254CE: str r2, [r4] b _08025502 .align 2, 0 -_080254E8: .4byte gUnknown_02024C10 -_080254EC: .4byte gEnemyMonIndex -_080254F0: .4byte gPlayerMonIndex +_080254E8: .4byte gBattlescriptCurrInstr +_080254EC: .4byte gBankTarget +_080254F0: .4byte gBankAttacker _080254F4: .4byte gBattleMoveDamage _080254F8: .4byte gBattleMons _080254FC: @@ -18955,7 +18955,7 @@ _08025502: sub_8025508: @ 8025508 push {r4-r7,lr} ldr r3, _0802556C @ =0x02000000 - ldr r4, _08025570 @ =gPlayerMonIndex + ldr r4, _08025570 @ =gBankAttacker ldrb r2, [r4] lsls r1, r2, 1 ldr r5, _08025574 @ =0x000160ac @@ -18994,25 +18994,25 @@ sub_8025508: @ 8025508 ldr r0, _08025584 @ =0x0000ffff cmp r7, r0 beq _08025594 - ldr r2, _08025588 @ =gUnknown_02024C6C + ldr r2, _08025588 @ =gHitMarker ldr r0, [r2] ldr r1, _0802558C @ =0xfffffbff ands r0, r1 str r0, [r2] - ldr r4, _08025590 @ =gUnknown_02024BE6 + ldr r4, _08025590 @ =gCurrentMove strh r7, [r4] b _0802565C .align 2, 0 _0802556C: .4byte 0x02000000 -_08025570: .4byte gPlayerMonIndex +_08025570: .4byte gBankAttacker _08025574: .4byte 0x000160ac _08025578: .4byte 0x000160ad _0802557C: .4byte 0x00016100 _08025580: .4byte 0x00016103 _08025584: .4byte 0x0000ffff -_08025588: .4byte gUnknown_02024C6C +_08025588: .4byte gHitMarker _0802558C: .4byte 0xfffffbff -_08025590: .4byte gUnknown_02024BE6 +_08025590: .4byte gCurrentMove _08025594: cmp r6, 0 beq _08025644 @@ -19023,7 +19023,7 @@ _08025594: beq _08025618 cmp r5, r0 beq _08025618 - ldr r2, _080255C8 @ =gUnknown_02024C6C + ldr r2, _080255C8 @ =gHitMarker ldr r0, [r2] ldr r1, _080255CC @ =0xfffffbff ands r0, r1 @@ -19033,25 +19033,25 @@ _08025594: ands r1, r0 cmp r1, 0 beq _080255D4 - ldr r0, _080255D0 @ =gUnknown_02024BE6 + ldr r0, _080255D0 @ =gCurrentMove strh r6, [r0] b _080255D8 .align 2, 0 _080255C4: .4byte 0x0000ffff -_080255C8: .4byte gUnknown_02024C6C +_080255C8: .4byte gHitMarker _080255CC: .4byte 0xfffffbff -_080255D0: .4byte gUnknown_02024BE6 +_080255D0: .4byte gCurrentMove _080255D4: - ldr r0, _08025604 @ =gUnknown_02024BE6 + ldr r0, _08025604 @ =gCurrentMove strh r5, [r0] _080255D8: adds r5, r0, 0 ldrh r0, [r5] movs r1, 0 bl sub_801B5C0 - ldr r1, _08025608 @ =gEnemyMonIndex + ldr r1, _08025608 @ =gBankTarget strb r0, [r1] - ldr r4, _0802560C @ =gUnknown_02024C10 + ldr r4, _0802560C @ =gBattlescriptCurrInstr ldr r3, _08025610 @ =gUnknown_081D6BBC ldr r2, _08025614 @ =gBattleMoves ldrh r1, [r5] @@ -19066,9 +19066,9 @@ _080255D8: str r0, [r4] b _080256C0 .align 2, 0 -_08025604: .4byte gUnknown_02024BE6 -_08025608: .4byte gEnemyMonIndex -_0802560C: .4byte gUnknown_02024C10 +_08025604: .4byte gCurrentMove +_08025608: .4byte gBankTarget +_0802560C: .4byte gBattlescriptCurrInstr _08025610: .4byte gUnknown_081D6BBC _08025614: .4byte gBattleMoves _08025618: @@ -19077,39 +19077,39 @@ _08025618: ldr r0, _08025634 @ =0x0000ffff cmp r6, r0 beq _08025644 - ldr r2, _08025638 @ =gUnknown_02024C6C + ldr r2, _08025638 @ =gHitMarker ldr r0, [r2] ldr r1, _0802563C @ =0xfffffbff ands r0, r1 str r0, [r2] - ldr r4, _08025640 @ =gUnknown_02024BE6 + ldr r4, _08025640 @ =gCurrentMove strh r6, [r4] b _0802565C .align 2, 0 _08025634: .4byte 0x0000ffff -_08025638: .4byte gUnknown_02024C6C +_08025638: .4byte gHitMarker _0802563C: .4byte 0xfffffbff -_08025640: .4byte gUnknown_02024BE6 +_08025640: .4byte gCurrentMove _08025644: cmp r5, 0 beq _080256A4 ldr r0, _08025684 @ =0x0000ffff cmp r5, r0 beq _080256A4 - ldr r2, _08025688 @ =gUnknown_02024C6C + ldr r2, _08025688 @ =gHitMarker ldr r0, [r2] ldr r1, _0802568C @ =0xfffffbff ands r0, r1 str r0, [r2] - ldr r4, _08025690 @ =gUnknown_02024BE6 + ldr r4, _08025690 @ =gCurrentMove strh r5, [r4] _0802565C: ldrh r0, [r4] movs r1, 0 bl sub_801B5C0 - ldr r1, _08025694 @ =gEnemyMonIndex + ldr r1, _08025694 @ =gBankTarget strb r0, [r1] - ldr r5, _08025698 @ =gUnknown_02024C10 + ldr r5, _08025698 @ =gBattlescriptCurrInstr ldr r3, _0802569C @ =gUnknown_081D6BBC ldr r2, _080256A0 @ =gBattleMoves ldrh r1, [r4] @@ -19125,15 +19125,15 @@ _0802565C: b _080256C0 .align 2, 0 _08025684: .4byte 0x0000ffff -_08025688: .4byte gUnknown_02024C6C +_08025688: .4byte gHitMarker _0802568C: .4byte 0xfffffbff -_08025690: .4byte gUnknown_02024BE6 -_08025694: .4byte gEnemyMonIndex -_08025698: .4byte gUnknown_02024C10 +_08025690: .4byte gCurrentMove +_08025694: .4byte gBankTarget +_08025698: .4byte gBattlescriptCurrInstr _0802569C: .4byte gUnknown_081D6BBC _080256A0: .4byte gBattleMoves _080256A4: - ldr r2, _080256C8 @ =gUnknown_02024D68 + ldr r2, _080256C8 @ =gSpecialStatuses ldrb r1, [r4] lsls r0, r1, 2 adds r0, r1 @@ -19143,7 +19143,7 @@ _080256A4: movs r2, 0x20 orrs r1, r2 strb r1, [r0] - ldr r1, _080256CC @ =gUnknown_02024C10 + ldr r1, _080256CC @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -19152,8 +19152,8 @@ _080256C0: pop {r0} bx r0 .align 2, 0 -_080256C8: .4byte gUnknown_02024D68 -_080256CC: .4byte gUnknown_02024C10 +_080256C8: .4byte gSpecialStatuses +_080256CC: .4byte gBattlescriptCurrInstr thumb_func_end sub_8025508 thumb_func_start sub_80256D0 @@ -19170,43 +19170,43 @@ sub_80256D0: @ 80256D0 movs r1, 0x1 orrs r0, r1 strb r0, [r2] - ldr r1, _080256F8 @ =gUnknown_02024D1E + ldr r1, _080256F8 @ =gBattleCommunication movs r0, 0x2 strb r0, [r1, 0x5] b _0802570C .align 2, 0 _080256F0: .4byte gBattleWeather _080256F4: .4byte gBattleMoveFlags -_080256F8: .4byte gUnknown_02024D1E +_080256F8: .4byte gBattleCommunication _080256FC: movs r0, 0x1 strh r0, [r2] - ldr r0, _08025718 @ =gUnknown_02024D1E + ldr r0, _08025718 @ =gBattleCommunication strb r1, [r0, 0x5] - ldr r0, _0802571C @ =gUnknown_02024DBC + ldr r0, _0802571C @ =gWishFutureKnock adds r0, 0x28 movs r1, 0x5 strb r1, [r0] _0802570C: - ldr r1, _08025720 @ =gUnknown_02024C10 + ldr r1, _08025720 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .align 2, 0 -_08025718: .4byte gUnknown_02024D1E -_0802571C: .4byte gUnknown_02024DBC -_08025720: .4byte gUnknown_02024C10 +_08025718: .4byte gBattleCommunication +_0802571C: .4byte gWishFutureKnock +_08025720: .4byte gBattlescriptCurrInstr thumb_func_end sub_80256D0 thumb_func_start atk7E_setreflect atk7E_setreflect: @ 8025724 push {r4-r6,lr} - ldr r5, _08025754 @ =gPlayerMonIndex + ldr r5, _08025754 @ =gBankAttacker ldrb r0, [r5] - bl battle_get_per_side_status - ldr r6, _08025758 @ =gUnknown_02024C7A + bl GetBankIdentity + ldr r6, _08025758 @ =gSideAffecting movs r4, 0x1 adds r1, r4, 0 ands r1, r0 @@ -19222,17 +19222,17 @@ atk7E_setreflect: @ 8025724 movs r1, 0x1 orrs r0, r1 strb r0, [r2] - ldr r1, _08025760 @ =gUnknown_02024D1E + ldr r1, _08025760 @ =gBattleCommunication movs r0, 0 b _080257C4 .align 2, 0 -_08025754: .4byte gPlayerMonIndex -_08025758: .4byte gUnknown_02024C7A +_08025754: .4byte gBankAttacker +_08025758: .4byte gSideAffecting _0802575C: .4byte gBattleMoveFlags -_08025760: .4byte gUnknown_02024D1E +_08025760: .4byte gBattleCommunication _08025764: ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r4, 0 ands r1, r0 lsls r1, 1 @@ -19242,8 +19242,8 @@ _08025764: orrs r0, r2 strh r0, [r1] ldrb r0, [r5] - bl battle_get_per_side_status - ldr r2, _080257B4 @ =gUnknown_02024C80 + bl GetBankIdentity + ldr r2, _080257B4 @ =gSideTimer adds r1, r4, 0 ands r1, r0 lsls r0, r1, 1 @@ -19259,25 +19259,25 @@ _08025764: cmp r0, 0 beq _080257C0 movs r0, 0x1 - bl sub_803C348 + bl CountAliveMons lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x2 bne _080257C0 - ldr r0, _080257BC @ =gUnknown_02024D1E + ldr r0, _080257BC @ =gBattleCommunication strb r1, [r0, 0x5] b _080257C6 .align 2, 0 -_080257B4: .4byte gUnknown_02024C80 +_080257B4: .4byte gSideTimer _080257B8: .4byte gBattleTypeFlags -_080257BC: .4byte gUnknown_02024D1E +_080257BC: .4byte gBattleCommunication _080257C0: - ldr r1, _080257D4 @ =gUnknown_02024D1E + ldr r1, _080257D4 @ =gBattleCommunication movs r0, 0x1 _080257C4: strb r0, [r1, 0x5] _080257C6: - ldr r1, _080257D8 @ =gUnknown_02024C10 + ldr r1, _080257D8 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -19285,8 +19285,8 @@ _080257C6: pop {r0} bx r0 .align 2, 0 -_080257D4: .4byte gUnknown_02024D1E -_080257D8: .4byte gUnknown_02024C10 +_080257D4: .4byte gBattleCommunication +_080257D8: .4byte gBattlescriptCurrInstr thumb_func_end atk7E_setreflect thumb_func_start sub_80257DC @@ -19301,9 +19301,9 @@ sub_80257DC: @ 80257DC ands r0, r5 cmp r0, 0 bne _0802580E - ldr r0, _08025820 @ =gUnknown_02024C98 + ldr r0, _08025820 @ =gStatuses3 mov r9, r0 - ldr r1, _08025824 @ =gEnemyMonIndex + ldr r1, _08025824 @ =gBankTarget mov r8, r1 ldrb r4, [r1] lsls r0, r4, 2 @@ -19320,15 +19320,15 @@ _0802580E: movs r0, 0x1 orrs r0, r5 strb r0, [r7] - ldr r1, _08025828 @ =gUnknown_02024D1E + ldr r1, _08025828 @ =gBattleCommunication movs r0, 0x1 strb r0, [r1, 0x5] b _0802587C .align 2, 0 _0802581C: .4byte gBattleMoveFlags -_08025820: .4byte gUnknown_02024C98 -_08025824: .4byte gEnemyMonIndex -_08025828: .4byte gUnknown_02024D1E +_08025820: .4byte gStatuses3 +_08025824: .4byte gBankTarget +_08025828: .4byte gBattleCommunication _0802582C: ldr r1, _08025858 @ =gBattleMons movs r0, 0x58 @@ -19348,15 +19348,15 @@ _08025848: movs r0, 0x1 orrs r0, r5 strb r0, [r7] - ldr r1, _0802585C @ =gUnknown_02024D1E + ldr r1, _0802585C @ =gBattleCommunication movs r0, 0x2 strb r0, [r1, 0x5] b _0802587C .align 2, 0 _08025858: .4byte gBattleMons -_0802585C: .4byte gUnknown_02024D1E +_0802585C: .4byte gBattleCommunication _08025860: - ldr r0, _08025890 @ =gPlayerMonIndex + ldr r0, _08025890 @ =gBankAttacker ldrb r0, [r0] orrs r2, r0 str r2, [r6] @@ -19368,10 +19368,10 @@ _08025860: mov r2, r12 orrs r0, r2 str r0, [r1] - ldr r0, _08025894 @ =gUnknown_02024D1E + ldr r0, _08025894 @ =gBattleCommunication strb r3, [r0, 0x5] _0802587C: - ldr r1, _08025898 @ =gUnknown_02024C10 + ldr r1, _08025898 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -19382,15 +19382,15 @@ _0802587C: pop {r0} bx r0 .align 2, 0 -_08025890: .4byte gPlayerMonIndex -_08025894: .4byte gUnknown_02024D1E -_08025898: .4byte gUnknown_02024C10 +_08025890: .4byte gBankAttacker +_08025894: .4byte gBattleCommunication +_08025898: .4byte gBattlescriptCurrInstr thumb_func_end sub_80257DC thumb_func_start atk80_manipulatedamage atk80_manipulatedamage: @ 802589C push {r4,lr} - ldr r1, _080258B4 @ =gUnknown_02024C10 + ldr r1, _080258B4 @ =gBattlescriptCurrInstr ldr r0, [r1] ldrb r2, [r0, 0x1] adds r4, r1, 0 @@ -19402,7 +19402,7 @@ atk80_manipulatedamage: @ 802589C beq _080258BE b _0802590C .align 2, 0 -_080258B4: .4byte gUnknown_02024C10 +_080258B4: .4byte gBattlescriptCurrInstr _080258B8: cmp r2, 0x2 beq _08025904 @@ -19426,7 +19426,7 @@ _080258CC: str r2, [r3] _080258DE: ldr r2, _080258FC @ =gBattleMons - ldr r0, _08025900 @ =gEnemyMonIndex + ldr r0, _08025900 @ =gBankTarget ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -19441,7 +19441,7 @@ _080258DE: .align 2, 0 _080258F8: .4byte gBattleMoveDamage _080258FC: .4byte gBattleMons -_08025900: .4byte gEnemyMonIndex +_08025900: .4byte gBankTarget _08025904: ldr r1, _08025918 @ =gBattleMoveDamage ldr r0, [r1] @@ -19463,7 +19463,7 @@ _08025918: .4byte gBattleMoveDamage atk81_setrest: @ 802591C push {r4-r7,lr} sub sp, 0x4 - ldr r0, _08025974 @ =gUnknown_02024C10 + ldr r0, _08025974 @ =gBattlescriptCurrInstr mov r12, r0 ldr r1, [r0] ldrb r6, [r1, 0x1] @@ -19476,9 +19476,9 @@ atk81_setrest: @ 802591C ldrb r0, [r1, 0x4] lsls r0, 24 orrs r6, r0 - ldr r5, _08025978 @ =gUnknown_02024A60 - ldr r2, _0802597C @ =gEnemyMonIndex - ldr r0, _08025980 @ =gPlayerMonIndex + ldr r5, _08025978 @ =gActiveBank + ldr r2, _0802597C @ =gBankTarget + ldr r0, _08025980 @ =gBankAttacker ldrb r0, [r0] strb r0, [r2] strb r0, [r5] @@ -19506,10 +19506,10 @@ atk81_setrest: @ 802591C str r6, [r0] b _080259DC .align 2, 0 -_08025974: .4byte gUnknown_02024C10 -_08025978: .4byte gUnknown_02024A60 -_0802597C: .4byte gEnemyMonIndex -_08025980: .4byte gPlayerMonIndex +_08025974: .4byte gBattlescriptCurrInstr +_08025978: .4byte gActiveBank +_0802597C: .4byte gBankTarget +_08025980: .4byte gBankAttacker _08025984: .4byte gBattleMoveDamage _08025988: .4byte gBattleMons _0802598C: @@ -19521,14 +19521,14 @@ _0802598C: ands r1, r0 cmp r1, 0 beq _080259A8 - ldr r1, _080259A4 @ =gUnknown_02024D1E + ldr r1, _080259A4 @ =gBattleCommunication movs r0, 0x1 strb r0, [r1, 0x5] b _080259AC .align 2, 0 -_080259A4: .4byte gUnknown_02024D1E +_080259A4: .4byte gBattleCommunication _080259A8: - ldr r0, _080259E4 @ =gUnknown_02024D1E + ldr r0, _080259E4 @ =gBattleCommunication strb r1, [r0, 0x5] _080259AC: ldrb r0, [r5] @@ -19546,10 +19546,10 @@ _080259AC: movs r1, 0x28 movs r2, 0 movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs + bl EmitSetAttributes ldrb r0, [r7] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _080259E8 @ =gUnknown_02024C10 + bl MarkBufferBankForExecution + ldr r1, _080259E8 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] @@ -19559,14 +19559,14 @@ _080259DC: pop {r0} bx r0 .align 2, 0 -_080259E4: .4byte gUnknown_02024D1E -_080259E8: .4byte gUnknown_02024C10 +_080259E4: .4byte gBattleCommunication +_080259E8: .4byte gBattlescriptCurrInstr thumb_func_end atk81_setrest thumb_func_start atk82_jumpifnotfirstturn atk82_jumpifnotfirstturn: @ 80259EC push {r4,r5,lr} - ldr r5, _08025A20 @ =gUnknown_02024C10 + ldr r5, _08025A20 @ =gBattlescriptCurrInstr ldr r4, [r5] ldrb r3, [r4, 0x1] ldrb r0, [r4, 0x2] @@ -19578,8 +19578,8 @@ atk82_jumpifnotfirstturn: @ 80259EC ldrb r0, [r4, 0x4] lsls r0, 24 orrs r3, r0 - ldr r2, _08025A24 @ =gUnknown_02024CA8 - ldr r0, _08025A28 @ =gPlayerMonIndex + ldr r2, _08025A24 @ =gDisableStructs + ldr r0, _08025A28 @ =gBankAttacker ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 @@ -19592,9 +19592,9 @@ atk82_jumpifnotfirstturn: @ 80259EC str r0, [r5] b _08025A2E .align 2, 0 -_08025A20: .4byte gUnknown_02024C10 -_08025A24: .4byte gUnknown_02024CA8 -_08025A28: .4byte gPlayerMonIndex +_08025A20: .4byte gBattlescriptCurrInstr +_08025A24: .4byte gDisableStructs +_08025A28: .4byte gBankAttacker _08025A2C: str r3, [r5] _08025A2E: @@ -19605,13 +19605,13 @@ _08025A2E: thumb_func_start sub_8025A34 sub_8025A34: @ 8025A34 - ldr r1, _08025A40 @ =gUnknown_02024C10 + ldr r1, _08025A40 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 -_08025A40: .4byte gUnknown_02024C10 +_08025A40: .4byte gBattlescriptCurrInstr thumb_func_end sub_8025A34 thumb_func_start sub_8025A44 @@ -19622,7 +19622,7 @@ sub_8025A44: @ 8025A44 lsls r0, 24 lsrs r3, r0, 24 movs r2, 0 - ldr r0, _08025A9C @ =gUnknown_02024A68 + ldr r0, _08025A9C @ =gNoOfAllBanks ldrb r1, [r0] mov r8, r0 cmp r2, r1 @@ -19636,7 +19636,7 @@ sub_8025A44: @ 8025A44 adds r5, 0x20 ldr r6, _08025AA4 @ =0x02016003 movs r3, 0 - ldr r7, _08025AA8 @ =gUnknown_02024D1E + ldr r7, _08025AA8 @ =gBattleCommunication adds r4, r1, 0 _08025A70: mov r0, r12 @@ -19652,7 +19652,7 @@ _08025A70: beq _08025AB0 movs r3, 0 strb r2, [r6] - ldr r1, _08025AAC @ =gEnemyMonIndex + ldr r1, _08025AAC @ =gBankTarget ldrb r0, [r1] cmp r0, 0xFF beq _08025AD0 @@ -19662,11 +19662,11 @@ _08025A70: strb r0, [r7, 0x5] b _08025AB8 .align 2, 0 -_08025A9C: .4byte gUnknown_02024A68 +_08025A9C: .4byte gNoOfAllBanks _08025AA0: .4byte gBattleMons _08025AA4: .4byte 0x02016003 -_08025AA8: .4byte gUnknown_02024D1E -_08025AAC: .4byte gEnemyMonIndex +_08025AA8: .4byte gBattleCommunication +_08025AAC: .4byte gBankTarget _08025AB0: adds r3, 0x58 adds r2, 0x1 @@ -19680,11 +19680,11 @@ _08025AB8: movs r0, 0x1 b _08025AD6 _08025AC4: - ldr r0, _08025ACC @ =gUnknown_02024D1E + ldr r0, _08025ACC @ =gBattleCommunication strb r3, [r0, 0x5] b _08025AB8 .align 2, 0 -_08025ACC: .4byte gUnknown_02024D1E +_08025ACC: .4byte gBattleCommunication _08025AD0: strb r2, [r1] b _08025AB8 @@ -19701,7 +19701,7 @@ _08025AD6: thumb_func_start sub_8025AE0 sub_8025AE0: @ 8025AE0 push {r4-r6,lr} - ldr r5, _08025B0C @ =gUnknown_02024C10 + ldr r5, _08025B0C @ =gBattlescriptCurrInstr ldr r1, [r5] ldrb r4, [r1, 0x1] ldrb r0, [r1, 0x2] @@ -19713,7 +19713,7 @@ sub_8025AE0: @ 8025AE0 ldrb r0, [r1, 0x4] lsls r0, 24 orrs r4, r0 - ldr r6, _08025B10 @ =gEnemyMonIndex + ldr r6, _08025B10 @ =gBankTarget ldrb r0, [r6] bl sub_8025A44 lsls r0, 24 @@ -19722,8 +19722,8 @@ sub_8025AE0: @ 8025AE0 str r4, [r5] b _08025B56 .align 2, 0 -_08025B0C: .4byte gUnknown_02024C10 -_08025B10: .4byte gEnemyMonIndex +_08025B0C: .4byte gBattlescriptCurrInstr +_08025B10: .4byte gBankTarget _08025B14: ldr r1, _08025B44 @ =gBattleMons ldrb r3, [r6] @@ -19738,9 +19738,9 @@ _08025B14: cmp r1, 0x48 bne _08025B50 _08025B2C: - ldr r2, _08025B48 @ =byte_2024C06 + ldr r2, _08025B48 @ =gLastUsedAbility strb r0, [r2] - ldr r1, _08025B4C @ =gUnknown_02024D1E + ldr r1, _08025B4C @ =gBattleCommunication movs r0, 0x2 strb r0, [r1, 0x5] str r4, [r5] @@ -19750,8 +19750,8 @@ _08025B2C: b _08025B56 .align 2, 0 _08025B44: .4byte gBattleMons -_08025B48: .4byte byte_2024C06 -_08025B4C: .4byte gUnknown_02024D1E +_08025B48: .4byte gLastUsedAbility +_08025B4C: .4byte gBattleCommunication _08025B50: ldr r0, [r5] adds r0, 0x5 @@ -19765,8 +19765,8 @@ _08025B56: thumb_func_start sub_8025B5C sub_8025B5C: @ 8025B5C push {r4,r5,lr} - ldr r5, _08025B84 @ =gUnknown_02024CA8 - ldr r4, _08025B88 @ =gPlayerMonIndex + ldr r5, _08025B84 @ =gDisableStructs + ldr r4, _08025B88 @ =gBankAttacker ldrb r1, [r4] lsls r0, r1, 3 subs r0, r1 @@ -19780,20 +19780,20 @@ sub_8025B5C: @ 8025B5C movs r1, 0x1 orrs r0, r1 strb r0, [r2] - ldr r1, _08025B90 @ =gUnknown_02024D1E + ldr r1, _08025B90 @ =gBattleCommunication movs r0, 0x1 strb r0, [r1, 0x5] b _08025BBE .align 2, 0 -_08025B84: .4byte gUnknown_02024CA8 -_08025B88: .4byte gPlayerMonIndex +_08025B84: .4byte gDisableStructs +_08025B88: .4byte gBankAttacker _08025B8C: .4byte gBattleMoveFlags -_08025B90: .4byte gUnknown_02024D1E +_08025B90: .4byte gBattleCommunication _08025B94: adds r0, 0x1 movs r3, 0 strb r0, [r1, 0x9] - ldr r2, _08025BCC @ =gUnknown_030041C0 + ldr r2, _08025BCC @ =gBattleTextBuff1 movs r0, 0xFD strb r0, [r2] movs r0, 0x1 @@ -19809,10 +19809,10 @@ _08025B94: strb r0, [r2, 0x4] movs r0, 0xFF strb r0, [r2, 0x5] - ldr r0, _08025BD0 @ =gUnknown_02024D1E + ldr r0, _08025BD0 @ =gBattleCommunication strb r3, [r0, 0x5] _08025BBE: - ldr r1, _08025BD4 @ =gUnknown_02024C10 + ldr r1, _08025BD4 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -19820,9 +19820,9 @@ _08025BBE: pop {r0} bx r0 .align 2, 0 -_08025BCC: .4byte gUnknown_030041C0 -_08025BD0: .4byte gUnknown_02024D1E -_08025BD4: .4byte gUnknown_02024C10 +_08025BCC: .4byte gBattleTextBuff1 +_08025BD0: .4byte gBattleCommunication +_08025BD4: .4byte gBattlescriptCurrInstr thumb_func_end sub_8025B5C thumb_func_start atk86_stockpiletobasedamage @@ -19831,7 +19831,7 @@ atk86_stockpiletobasedamage: @ 8025BD8 mov r7, r8 push {r7} sub sp, 0x10 - ldr r3, _08025C10 @ =gUnknown_02024C10 + ldr r3, _08025C10 @ =gBattlescriptCurrInstr ldr r1, [r3] ldrb r2, [r1, 0x1] ldrb r0, [r1, 0x2] @@ -19843,8 +19843,8 @@ atk86_stockpiletobasedamage: @ 8025BD8 ldrb r0, [r1, 0x4] lsls r0, 24 orrs r2, r0 - ldr r7, _08025C14 @ =gUnknown_02024CA8 - ldr r6, _08025C18 @ =gPlayerMonIndex + ldr r7, _08025C14 @ =gDisableStructs + ldr r6, _08025C18 @ =gBankAttacker ldrb r1, [r6] lsls r0, r1, 3 subs r0, r1 @@ -19856,20 +19856,20 @@ atk86_stockpiletobasedamage: @ 8025BD8 str r2, [r3] b _08025CC2 .align 2, 0 -_08025C10: .4byte gUnknown_02024C10 -_08025C14: .4byte gUnknown_02024CA8 -_08025C18: .4byte gPlayerMonIndex +_08025C10: .4byte gBattlescriptCurrInstr +_08025C14: .4byte gDisableStructs +_08025C18: .4byte gBankAttacker _08025C1C: - ldr r0, _08025CD0 @ =gUnknown_02024D1E + ldr r0, _08025CD0 @ =gBattleCommunication ldrb r0, [r0, 0x6] cmp r0, 0x1 beq _08025CA8 ldr r0, _08025CD4 @ =gBattleMoveDamage mov r8, r0 - ldr r4, _08025CD8 @ =gUnknown_02024C7A - ldr r5, _08025CDC @ =gEnemyMonIndex + ldr r4, _08025CD8 @ =gSideAffecting + ldr r5, _08025CDC @ =gBankTarget ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity movs r1, 0x1 ands r1, r0 lsls r1, 1 @@ -19883,7 +19883,7 @@ _08025C1C: ldrb r1, [r5] muls r1, r4 adds r1, r2 - ldr r2, _08025CE4 @ =gUnknown_02024BE6 + ldr r2, _08025CE4 @ =gCurrentMove ldrh r2, [r2] movs r4, 0 str r4, [sp] @@ -19913,7 +19913,7 @@ _08025C1C: ldr r1, _08025CEC @ =0x00016002 adds r2, r1 strb r0, [r2] - ldr r1, _08025CF0 @ =gUnknown_02024D28 + ldr r1, _08025CF0 @ =gProtectStructs ldrb r0, [r6] lsls r0, 4 adds r0, r1 @@ -19928,8 +19928,8 @@ _08025C1C: mov r1, r8 str r0, [r1] _08025CA8: - ldr r2, _08025CF4 @ =gUnknown_02024CA8 - ldr r0, _08025CF8 @ =gPlayerMonIndex + ldr r2, _08025CF4 @ =gDisableStructs + ldr r0, _08025CF8 @ =gBankAttacker ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 @@ -19937,7 +19937,7 @@ _08025CA8: adds r0, r2 movs r1, 0 strb r1, [r0, 0x9] - ldr r1, _08025CFC @ =gUnknown_02024C10 + ldr r1, _08025CFC @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] @@ -19949,18 +19949,18 @@ _08025CC2: pop {r0} bx r0 .align 2, 0 -_08025CD0: .4byte gUnknown_02024D1E +_08025CD0: .4byte gBattleCommunication _08025CD4: .4byte gBattleMoveDamage -_08025CD8: .4byte gUnknown_02024C7A -_08025CDC: .4byte gEnemyMonIndex +_08025CD8: .4byte gSideAffecting +_08025CDC: .4byte gBankTarget _08025CE0: .4byte gBattleMons -_08025CE4: .4byte gUnknown_02024BE6 +_08025CE4: .4byte gCurrentMove _08025CE8: .4byte 0x02000000 _08025CEC: .4byte 0x00016002 -_08025CF0: .4byte gUnknown_02024D28 -_08025CF4: .4byte gUnknown_02024CA8 -_08025CF8: .4byte gPlayerMonIndex -_08025CFC: .4byte gUnknown_02024C10 +_08025CF0: .4byte gProtectStructs +_08025CF4: .4byte gDisableStructs +_08025CF8: .4byte gBankAttacker +_08025CFC: .4byte gBattlescriptCurrInstr thumb_func_end atk86_stockpiletobasedamage thumb_func_start sub_8025D00 @@ -19968,7 +19968,7 @@ sub_8025D00: @ 8025D00 push {r4-r7,lr} mov r7, r8 push {r7} - ldr r7, _08025D40 @ =gUnknown_02024C10 + ldr r7, _08025D40 @ =gBattlescriptCurrInstr ldr r1, [r7] ldrb r2, [r1, 0x1] ldrb r0, [r1, 0x2] @@ -19980,9 +19980,9 @@ sub_8025D00: @ 8025D00 ldrb r0, [r1, 0x4] lsls r0, 24 orrs r2, r0 - ldr r0, _08025D44 @ =gUnknown_02024CA8 + ldr r0, _08025D44 @ =gDisableStructs mov r8, r0 - ldr r6, _08025D48 @ =gPlayerMonIndex + ldr r6, _08025D48 @ =gBankAttacker ldrb r3, [r6] lsls r0, r3, 3 subs r0, r3 @@ -19993,14 +19993,14 @@ sub_8025D00: @ 8025D00 cmp r1, 0 bne _08025D50 str r2, [r7] - ldr r0, _08025D4C @ =gUnknown_02024D1E + ldr r0, _08025D4C @ =gBattleCommunication strb r1, [r0, 0x5] b _08025DD0 .align 2, 0 -_08025D40: .4byte gUnknown_02024C10 -_08025D44: .4byte gUnknown_02024CA8 -_08025D48: .4byte gPlayerMonIndex -_08025D4C: .4byte gUnknown_02024D1E +_08025D40: .4byte gBattlescriptCurrInstr +_08025D44: .4byte gDisableStructs +_08025D48: .4byte gBankAttacker +_08025D4C: .4byte gBattleCommunication _08025D50: ldr r1, _08025D74 @ =gBattleMons movs r0, 0x58 @@ -20013,17 +20013,17 @@ _08025D50: movs r0, 0 strb r0, [r4, 0x9] str r2, [r7] - ldr r1, _08025D78 @ =gEnemyMonIndex + ldr r1, _08025D78 @ =gBankTarget ldrb r0, [r6] strb r0, [r1] - ldr r1, _08025D7C @ =gUnknown_02024D1E + ldr r1, _08025D7C @ =gBattleCommunication movs r0, 0x1 strb r0, [r1, 0x5] b _08025DD0 .align 2, 0 _08025D74: .4byte gBattleMons -_08025D78: .4byte gEnemyMonIndex -_08025D7C: .4byte gUnknown_02024D1E +_08025D78: .4byte gBankTarget +_08025D7C: .4byte gBattleCommunication _08025D80: ldr r5, _08025DDC @ =gBattleMoveDamage ldrh r0, [r1, 0x2C] @@ -20062,7 +20062,7 @@ _08025D9C: ldr r0, [r7] adds r0, 0x5 str r0, [r7] - ldr r1, _08025DE8 @ =gEnemyMonIndex + ldr r1, _08025DE8 @ =gBankTarget ldrb r0, [r6] strb r0, [r1] _08025DD0: @@ -20075,14 +20075,14 @@ _08025DD0: _08025DDC: .4byte gBattleMoveDamage _08025DE0: .4byte 0x02000000 _08025DE4: .4byte 0x00016002 -_08025DE8: .4byte gEnemyMonIndex +_08025DE8: .4byte gBankTarget thumb_func_end sub_8025D00 thumb_func_start atk88_negativedamage atk88_negativedamage: @ 8025DEC push {lr} ldr r2, _08025E14 @ =gBattleMoveDamage - ldr r0, _08025E18 @ =gUnknown_02024BF0 + ldr r0, _08025E18 @ =gHP_dealt ldr r0, [r0] lsrs r1, r0, 31 adds r0, r1 @@ -20095,7 +20095,7 @@ atk88_negativedamage: @ 8025DEC negs r0, r0 str r0, [r2] _08025E08: - ldr r1, _08025E1C @ =gUnknown_02024C10 + ldr r1, _08025E1C @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -20103,8 +20103,8 @@ _08025E08: bx r0 .align 2, 0 _08025E14: .4byte gBattleMoveDamage -_08025E18: .4byte gUnknown_02024BF0 -_08025E1C: .4byte gUnknown_02024C10 +_08025E18: .4byte gHP_dealt +_08025E1C: .4byte gBattlescriptCurrInstr thumb_func_end atk88_negativedamage thumb_func_start sub_8025E20 @@ -20128,15 +20128,15 @@ sub_8025E20: @ 8025E20 ands r0, r5 cmp r0, 0 beq _08025E54 - ldr r0, _08025E4C @ =gUnknown_02024A60 - ldr r1, _08025E50 @ =gPlayerMonIndex + ldr r0, _08025E4C @ =gActiveBank + ldr r1, _08025E50 @ =gBankAttacker b _08025E58 .align 2, 0 -_08025E4C: .4byte gUnknown_02024A60 -_08025E50: .4byte gPlayerMonIndex +_08025E4C: .4byte gActiveBank +_08025E50: .4byte gBankAttacker _08025E54: - ldr r0, _08025EF8 @ =gUnknown_02024A60 - ldr r1, _08025EFC @ =gEnemyMonIndex + ldr r0, _08025EF8 @ =gActiveBank + ldr r1, _08025EFC @ =gBankTarget _08025E58: ldrb r1, [r1] strb r1, [r0] @@ -20166,7 +20166,7 @@ _08025E72: _08025E88: movs r0, 0xDF ands r5, r0 - ldr r1, _08025F00 @ =gUnknown_030041C0 + ldr r1, _08025F00 @ =gBattleTextBuff1 movs r4, 0 movs r2, 0xFD strb r2, [r1] @@ -20183,10 +20183,10 @@ _08025E88: blt _08025EAC b _080261B0 _08025EAC: - ldr r4, _08025F04 @ =gUnknown_02024C80 - ldr r1, _08025EF8 @ =gUnknown_02024A60 + ldr r4, _08025F04 @ =gSideTimer + ldr r1, _08025EF8 @ =gActiveBank ldrb r0, [r1] - bl battle_get_per_side_status + bl GetBankIdentity movs r1, 0x1 ands r1, r0 lsls r0, r1, 1 @@ -20199,14 +20199,14 @@ _08025EAC: mov r2, r9 cmp r2, 0 bne _08025F54 - ldr r0, _08025F08 @ =gUnknown_02024BE6 + ldr r0, _08025F08 @ =gCurrentMove ldrh r0, [r0] cmp r0, 0xAE beq _08025F84 cmp r5, 0x1 bne _08025F74 - ldr r4, _08025F0C @ =gUnknown_02024D68 - ldr r3, _08025EF8 @ =gUnknown_02024A60 + ldr r4, _08025F0C @ =gSpecialStatuses + ldr r3, _08025EF8 @ =gActiveBank ldrb r0, [r3] lsls r1, r0, 2 adds r1, r0 @@ -20216,28 +20216,28 @@ _08025EAC: lsls r0, 31 cmp r0, 0 beq _08025F14 - ldr r0, _08025F10 @ =gUnknown_02024C10 + ldr r0, _08025F10 @ =gBattlescriptCurrInstr mov r4, r8 str r4, [r0] b _08025F74 .align 2, 0 -_08025EF8: .4byte gUnknown_02024A60 -_08025EFC: .4byte gEnemyMonIndex -_08025F00: .4byte gUnknown_030041C0 -_08025F04: .4byte gUnknown_02024C80 -_08025F08: .4byte gUnknown_02024BE6 -_08025F0C: .4byte gUnknown_02024D68 -_08025F10: .4byte gUnknown_02024C10 +_08025EF8: .4byte gActiveBank +_08025EFC: .4byte gBankTarget +_08025F00: .4byte gBattleTextBuff1 +_08025F04: .4byte gSideTimer +_08025F08: .4byte gCurrentMove +_08025F0C: .4byte gSpecialStatuses +_08025F10: .4byte gBattlescriptCurrInstr _08025F14: mov r0, r8 bl b_movescr_stack_push ldr r0, _08025F40 @ =0x02000000 - ldr r6, _08025F44 @ =gUnknown_02024A60 + ldr r6, _08025F44 @ =gActiveBank ldrb r1, [r6] ldr r2, _08025F48 @ =0x00016003 adds r0, r2 strb r1, [r0] - ldr r1, _08025F4C @ =gUnknown_02024C10 + ldr r1, _08025F4C @ =gBattlescriptCurrInstr ldr r0, _08025F50 @ =gUnknown_081D9128 str r0, [r1] ldrb r1, [r6] @@ -20252,12 +20252,12 @@ _08025F14: b _08025F74 .align 2, 0 _08025F40: .4byte 0x02000000 -_08025F44: .4byte gUnknown_02024A60 +_08025F44: .4byte gActiveBank _08025F48: .4byte 0x00016003 -_08025F4C: .4byte gUnknown_02024C10 +_08025F4C: .4byte gBattlescriptCurrInstr _08025F50: .4byte gUnknown_081D9128 _08025F54: - ldr r0, _08025F78 @ =gUnknown_02024BE6 + ldr r0, _08025F78 @ =gCurrentMove ldrh r0, [r0] cmp r0, 0xAE beq _08025F84 @@ -20269,19 +20269,19 @@ _08025F54: lsls r0, 24 cmp r0, 0 beq _08025F84 - ldr r1, _08025F7C @ =gUnknown_02024C10 + ldr r1, _08025F7C @ =gBattlescriptCurrInstr ldr r0, _08025F80 @ =BattleScript_1D83D6 str r0, [r1] _08025F74: movs r0, 0x1 b _080262A4 .align 2, 0 -_08025F78: .4byte gUnknown_02024BE6 -_08025F7C: .4byte gUnknown_02024C10 +_08025F78: .4byte gCurrentMove +_08025F7C: .4byte gBattlescriptCurrInstr _08025F80: .4byte BattleScript_1D83D6 _08025F84: ldr r2, _08025FCC @ =gBattleMons - ldr r1, _08025FD0 @ =gUnknown_02024A60 + ldr r1, _08025FD0 @ =gActiveBank ldrb r3, [r1] movs r4, 0x58 adds r0, r3, 0 @@ -20298,13 +20298,13 @@ _08025FA0: mov r0, r9 cmp r0, 0 bne _08026040 - ldr r0, _08025FD4 @ =gUnknown_02024BE6 + ldr r0, _08025FD4 @ =gCurrentMove ldrh r0, [r0] cmp r0, 0xAE beq _08026040 cmp r5, 0x1 bne _08025F74 - ldr r4, _08025FD8 @ =gUnknown_02024D68 + ldr r4, _08025FD8 @ =gSpecialStatuses lsls r0, r3, 2 adds r0, r3 lsls r0, 2 @@ -20313,29 +20313,29 @@ _08025FA0: lsls r0, 31 cmp r0, 0 beq _08025FE0 - ldr r0, _08025FDC @ =gUnknown_02024C10 + ldr r0, _08025FDC @ =gBattlescriptCurrInstr mov r1, r8 str r1, [r0] b _08025F74 .align 2, 0 _08025FCC: .4byte gBattleMons -_08025FD0: .4byte gUnknown_02024A60 -_08025FD4: .4byte gUnknown_02024BE6 -_08025FD8: .4byte gUnknown_02024D68 -_08025FDC: .4byte gUnknown_02024C10 +_08025FD0: .4byte gActiveBank +_08025FD4: .4byte gCurrentMove +_08025FD8: .4byte gSpecialStatuses +_08025FDC: .4byte gBattlescriptCurrInstr _08025FE0: mov r0, r8 bl b_movescr_stack_push ldr r0, _08026028 @ =0x02000000 - ldr r2, _0802602C @ =gUnknown_02024A60 + ldr r2, _0802602C @ =gActiveBank ldrb r1, [r2] ldr r3, _08026030 @ =0x00016003 adds r0, r3 strb r1, [r0] - ldr r1, _08026034 @ =gUnknown_02024C10 + ldr r1, _08026034 @ =gBattlescriptCurrInstr ldr r0, _08026038 @ =gUnknown_081D989B str r0, [r1] - ldr r1, _0802603C @ =byte_2024C06 + ldr r1, _0802603C @ =gLastUsedAbility ldrb r0, [r2] movs r6, 0x58 muls r0, r6 @@ -20346,7 +20346,7 @@ _08025FE0: ldrb r0, [r2] ldrb r1, [r1] bl sub_81074C4 - ldr r0, _0802602C @ =gUnknown_02024A60 + ldr r0, _0802602C @ =gActiveBank ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 @@ -20359,13 +20359,13 @@ _08025FE0: b _08025F74 .align 2, 0 _08026028: .4byte 0x02000000 -_0802602C: .4byte gUnknown_02024A60 +_0802602C: .4byte gActiveBank _08026030: .4byte 0x00016003 -_08026034: .4byte gUnknown_02024C10 +_08026034: .4byte gBattlescriptCurrInstr _08026038: .4byte gUnknown_081D989B -_0802603C: .4byte byte_2024C06 +_0802603C: .4byte gLastUsedAbility _08026040: - ldr r1, _08026090 @ =gUnknown_02024A60 + ldr r1, _08026090 @ =gActiveBank ldrb r0, [r1] movs r4, 0x58 muls r0, r4 @@ -20384,15 +20384,15 @@ _08026040: mov r0, r8 bl b_movescr_stack_push ldr r0, _08026094 @ =0x02000000 - ldr r3, _08026090 @ =gUnknown_02024A60 + ldr r3, _08026090 @ =gActiveBank ldrb r1, [r3] ldr r6, _08026098 @ =0x00016003 adds r0, r6 strb r1, [r0] - ldr r1, _0802609C @ =gUnknown_02024C10 + ldr r1, _0802609C @ =gBattlescriptCurrInstr ldr r0, _080260A0 @ =gUnknown_081D9903 str r0, [r1] - ldr r1, _080260A4 @ =byte_2024C06 + ldr r1, _080260A4 @ =gLastUsedAbility ldrb r0, [r3] muls r0, r4 add r0, r10 @@ -20404,14 +20404,14 @@ _08026040: bl sub_81074C4 b _08025F74 .align 2, 0 -_08026090: .4byte gUnknown_02024A60 +_08026090: .4byte gActiveBank _08026094: .4byte 0x02000000 _08026098: .4byte 0x00016003 -_0802609C: .4byte gUnknown_02024C10 +_0802609C: .4byte gBattlescriptCurrInstr _080260A0: .4byte gUnknown_081D9903 -_080260A4: .4byte byte_2024C06 +_080260A4: .4byte gLastUsedAbility _080260A8: - ldr r1, _080260FC @ =gUnknown_02024A60 + ldr r1, _080260FC @ =gActiveBank ldrb r0, [r1] movs r4, 0x58 muls r0, r4 @@ -20432,15 +20432,15 @@ _080260CA: mov r0, r8 bl b_movescr_stack_push ldr r0, _08026100 @ =0x02000000 - ldr r3, _080260FC @ =gUnknown_02024A60 + ldr r3, _080260FC @ =gActiveBank ldrb r1, [r3] ldr r6, _08026104 @ =0x00016003 adds r0, r6 strb r1, [r0] - ldr r1, _08026108 @ =gUnknown_02024C10 + ldr r1, _08026108 @ =gBattlescriptCurrInstr ldr r0, _0802610C @ =gUnknown_081D9903 str r0, [r1] - ldr r1, _08026110 @ =byte_2024C06 + ldr r1, _08026110 @ =gLastUsedAbility ldrb r0, [r3] muls r0, r4 add r0, r10 @@ -20452,14 +20452,14 @@ _080260CA: bl sub_81074C4 b _08025F74 .align 2, 0 -_080260FC: .4byte gUnknown_02024A60 +_080260FC: .4byte gActiveBank _08026100: .4byte 0x02000000 _08026104: .4byte 0x00016003 -_08026108: .4byte gUnknown_02024C10 +_08026108: .4byte gBattlescriptCurrInstr _0802610C: .4byte gUnknown_081D9903 -_08026110: .4byte byte_2024C06 +_08026110: .4byte gLastUsedAbility _08026114: - ldr r0, _080261A0 @ =gUnknown_02024A60 + ldr r0, _080261A0 @ =gActiveBank ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -20478,7 +20478,7 @@ _0802612C: ands r0, r1 negs r0, r0 lsls r0, 24 - ldr r3, _080261A4 @ =gUnknown_03004290 + ldr r3, _080261A4 @ =gBattleTextBuff2 movs r4, 0 movs r1, 0xFD strb r1, [r3] @@ -20507,7 +20507,7 @@ _08026156: adds r1, r2, r3 movs r0, 0xFF strb r0, [r1] - ldr r1, _080261A0 @ =gUnknown_02024A60 + ldr r1, _080261A0 @ =gActiveBank ldrb r2, [r1] movs r0, 0x58 muls r0, r2 @@ -20521,9 +20521,9 @@ _08026156: cmp r0, 0 beq _08026206 movs r1, 0 - ldr r0, _080261A8 @ =gEnemyMonIndex + ldr r0, _080261A8 @ =gBankTarget ldrb r0, [r0] - ldr r3, _080261AC @ =gUnknown_02024D1E + ldr r3, _080261AC @ =gBattleCommunication mov r8, r3 cmp r0, r2 bne _0802619A @@ -20533,15 +20533,15 @@ _0802619A: strb r1, [r4, 0x5] b _08026234 .align 2, 0 -_080261A0: .4byte gUnknown_02024A60 -_080261A4: .4byte gUnknown_03004290 -_080261A8: .4byte gEnemyMonIndex -_080261AC: .4byte gUnknown_02024D1E +_080261A0: .4byte gActiveBank +_080261A4: .4byte gBattleTextBuff2 +_080261A8: .4byte gBankTarget +_080261AC: .4byte gBattleCommunication _080261B0: asrs r6, r0, 28 movs r0, 0x7 ands r6, r0 - ldr r3, _08026210 @ =gUnknown_03004290 + ldr r3, _08026210 @ =gBattleTextBuff2 strb r2, [r3] movs r2, 0x1 cmp r6, 0x2 @@ -20568,7 +20568,7 @@ _080261CA: orrs r0, r2 strb r0, [r1] ldr r2, _08026214 @ =gBattleMons - ldr r4, _08026218 @ =gUnknown_02024A60 + ldr r4, _08026218 @ =gActiveBank ldrb r3, [r4] movs r0, 0x58 muls r0, r3 @@ -20583,21 +20583,21 @@ _080261CA: cmp r0, 0xC bne _08026220 _08026206: - ldr r1, _0802621C @ =gUnknown_02024D1E + ldr r1, _0802621C @ =gBattleCommunication movs r0, 0x2 strb r0, [r1, 0x5] mov r8, r1 b _08026234 .align 2, 0 -_08026210: .4byte gUnknown_03004290 +_08026210: .4byte gBattleTextBuff2 _08026214: .4byte gBattleMons -_08026218: .4byte gUnknown_02024A60 -_0802621C: .4byte gUnknown_02024D1E +_08026218: .4byte gActiveBank +_0802621C: .4byte gBattleCommunication _08026220: movs r1, 0 - ldr r0, _080262B4 @ =gEnemyMonIndex + ldr r0, _080262B4 @ =gBankTarget ldrb r0, [r0] - ldr r2, _080262B8 @ =gUnknown_02024D1E + ldr r2, _080262B8 @ =gBattleCommunication mov r8, r2 cmp r0, r3 bne _08026230 @@ -20606,7 +20606,7 @@ _08026230: mov r3, r8 strb r1, [r3, 0x5] _08026234: - ldr r2, _080262BC @ =gUnknown_02024A60 + ldr r2, _080262BC @ =gActiveBank ldrb r0, [r2] movs r4, 0x58 adds r1, r0, 0 @@ -20631,7 +20631,7 @@ _08026234: movs r0, 0 strb r0, [r1] _08026264: - ldr r1, _080262BC @ =gUnknown_02024A60 + ldr r1, _080262BC @ =gActiveBank ldrb r0, [r1] muls r0, r4 adds r0, r7, r0 @@ -20675,16 +20675,16 @@ _080262A4: pop {r1} bx r1 .align 2, 0 -_080262B4: .4byte gEnemyMonIndex -_080262B8: .4byte gUnknown_02024D1E -_080262BC: .4byte gUnknown_02024A60 +_080262B4: .4byte gBankTarget +_080262B8: .4byte gBattleCommunication +_080262BC: .4byte gActiveBank _080262C0: .4byte gBattleMoveFlags thumb_func_end sub_8025E20 thumb_func_start atk89_statbuffchange atk89_statbuffchange: @ 80262C4 push {r4,r5,lr} - ldr r5, _0802630C @ =gUnknown_02024C10 + ldr r5, _0802630C @ =gBattlescriptCurrInstr ldr r2, [r5] ldrb r3, [r2, 0x2] ldrb r0, [r2, 0x3] @@ -20719,7 +20719,7 @@ _08026304: pop {r0} bx r0 .align 2, 0 -_0802630C: .4byte gUnknown_02024C10 +_0802630C: .4byte gBattlescriptCurrInstr _08026310: .4byte 0x02000000 _08026314: .4byte 0x0001601e thumb_func_end atk89_statbuffchange @@ -20728,9 +20728,9 @@ _08026314: .4byte 0x0001601e atk8A_normalisebuffs: @ 8026318 push {r4-r7,lr} movs r2, 0 - ldr r0, _08026360 @ =gUnknown_02024A68 + ldr r0, _08026360 @ =gNoOfAllBanks ldrb r1, [r0] - ldr r0, _08026364 @ =gUnknown_02024C10 + ldr r0, _08026364 @ =gBattlescriptCurrInstr mov r12, r0 cmp r2, r1 bge _08026350 @@ -20765,8 +20765,8 @@ _08026350: pop {r0} bx r0 .align 2, 0 -_08026360: .4byte gUnknown_02024A68 -_08026364: .4byte gUnknown_02024C10 +_08026360: .4byte gNoOfAllBanks +_08026364: .4byte gBattlescriptCurrInstr _08026368: .4byte gBattleMons thumb_func_end atk8A_normalisebuffs @@ -20774,7 +20774,7 @@ _08026368: .4byte gBattleMons atk8B_setbide: @ 802636C push {r4,r5,lr} ldr r4, _080263C4 @ =gBattleMons - ldr r3, _080263C8 @ =gPlayerMonIndex + ldr r3, _080263C8 @ =gBankAttacker ldrb r0, [r3] movs r5, 0x58 adds r2, r0, 0 @@ -20786,15 +20786,15 @@ atk8B_setbide: @ 802636C lsls r1, 5 orrs r0, r1 str r0, [r2] - ldr r1, _080263CC @ =gUnknown_02024C54 + ldr r1, _080263CC @ =gLockedMove ldrb r0, [r3] lsls r0, 1 adds r0, r1 - ldr r1, _080263D0 @ =gUnknown_02024BE6 + ldr r1, _080263D0 @ =gCurrentMove ldrh r1, [r1] movs r2, 0 strh r1, [r0] - ldr r1, _080263D4 @ =gUnknown_02024BF4 + ldr r1, _080263D4 @ =gTakenDmg ldrb r0, [r3] lsls r0, 2 adds r0, r1 @@ -20808,7 +20808,7 @@ atk8B_setbide: @ 802636C lsls r2, 2 orrs r0, r2 str r0, [r1] - ldr r1, _080263D8 @ =gUnknown_02024C10 + ldr r1, _080263D8 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -20817,18 +20817,18 @@ atk8B_setbide: @ 802636C bx r0 .align 2, 0 _080263C4: .4byte gBattleMons -_080263C8: .4byte gPlayerMonIndex -_080263CC: .4byte gUnknown_02024C54 -_080263D0: .4byte gUnknown_02024BE6 -_080263D4: .4byte gUnknown_02024BF4 -_080263D8: .4byte gUnknown_02024C10 +_080263C8: .4byte gBankAttacker +_080263CC: .4byte gLockedMove +_080263D0: .4byte gCurrentMove +_080263D4: .4byte gTakenDmg +_080263D8: .4byte gBattlescriptCurrInstr thumb_func_end atk8B_setbide thumb_func_start atk8C_confuseifrepeatingattackends atk8C_confuseifrepeatingattackends: @ 80263DC push {lr} ldr r1, _0802640C @ =gBattleMons - ldr r0, _08026410 @ =gPlayerMonIndex + ldr r0, _08026410 @ =gBankAttacker ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -20840,11 +20840,11 @@ atk8C_confuseifrepeatingattackends: @ 80263DC ands r0, r1 cmp r0, 0 bne _080263FE - ldr r1, _08026414 @ =gUnknown_02024D1E + ldr r1, _08026414 @ =gBattleCommunication movs r0, 0x75 strb r0, [r1, 0x3] _080263FE: - ldr r1, _08026418 @ =gUnknown_02024C10 + ldr r1, _08026418 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -20852,27 +20852,27 @@ _080263FE: bx r0 .align 2, 0 _0802640C: .4byte gBattleMons -_08026410: .4byte gPlayerMonIndex -_08026414: .4byte gUnknown_02024D1E -_08026418: .4byte gUnknown_02024C10 +_08026410: .4byte gBankAttacker +_08026414: .4byte gBattleCommunication +_08026418: .4byte gBattlescriptCurrInstr thumb_func_end atk8C_confuseifrepeatingattackends thumb_func_start atk8D_setloopcounter atk8D_setloopcounter: @ 802641C push {r4,r5,lr} - ldr r0, _08026430 @ =gUnknown_02024C10 + ldr r0, _08026430 @ =gBattlescriptCurrInstr ldr r0, [r0] ldrb r1, [r0, 0x1] cmp r1, 0 beq _08026438 - ldr r0, _08026434 @ =gUnknown_02024C0E + ldr r0, _08026434 @ =gMultiHitCounter strb r1, [r0] b _08026452 .align 2, 0 -_08026430: .4byte gUnknown_02024C10 -_08026434: .4byte gUnknown_02024C0E +_08026430: .4byte gBattlescriptCurrInstr +_08026434: .4byte gMultiHitCounter _08026438: - ldr r4, _08026460 @ =gUnknown_02024C0E + ldr r4, _08026460 @ =gMultiHitCounter bl Random movs r5, 0x3 ands r0, r5 @@ -20885,7 +20885,7 @@ _0802644E: adds r0, 0x2 strb r0, [r4] _08026452: - ldr r1, _08026464 @ =gUnknown_02024C10 + ldr r1, _08026464 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x2 str r0, [r1] @@ -20893,8 +20893,8 @@ _08026452: pop {r0} bx r0 .align 2, 0 -_08026460: .4byte gUnknown_02024C0E -_08026464: .4byte gUnknown_02024C10 +_08026460: .4byte gMultiHitCounter +_08026464: .4byte gBattlescriptCurrInstr thumb_func_end atk8D_setloopcounter thumb_func_start sub_8026468 @@ -20923,7 +20923,7 @@ sub_8026468: @ 8026468 adds r1, r4 movs r0, 0xFF strb r0, [r1] - ldr r1, _080264BC @ =gUnknown_02024C10 + ldr r1, _080264BC @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -20936,21 +20936,21 @@ _080264AC: .4byte 0x000160e0 _080264B0: .4byte 0x000160e1 _080264B4: .4byte 0x000160e2 _080264B8: .4byte 0x000160e4 -_080264BC: .4byte gUnknown_02024C10 +_080264BC: .4byte gBattlescriptCurrInstr thumb_func_end sub_8026468 thumb_func_start sub_80264C0 sub_80264C0: @ 80264C0 push {r4-r7,lr} ldr r6, _080264F4 @ =gBattleMons - ldr r7, _080264F8 @ =gPlayerMonIndex + ldr r7, _080264F8 @ =gBankAttacker ldrb r0, [r7] movs r5, 0x58 adds r1, r0, 0 muls r1, r5 adds r1, r6 adds r1, 0x2A - ldr r4, _080264FC @ =gEnemyMonIndex + ldr r4, _080264FC @ =gBankTarget ldrb r3, [r4] adds r0, r3, 0 muls r0, r5 @@ -20964,16 +20964,16 @@ sub_80264C0: @ 80264C0 ldr r2, _08026504 @ =0x00016064 adds r1, r3, r2 adds r1, r0 - ldr r2, _08026508 @ =gUnknown_02024A6A + ldr r2, _08026508 @ =gBattlePartyID lsls r0, r3, 1 b _08026568 .align 2, 0 _080264F4: .4byte gBattleMons -_080264F8: .4byte gPlayerMonIndex -_080264FC: .4byte gEnemyMonIndex +_080264F8: .4byte gBankAttacker +_080264FC: .4byte gBankTarget _08026500: .4byte 0x02000000 _08026504: .4byte 0x00016064 -_08026508: .4byte gUnknown_02024A6A +_08026508: .4byte gBattlePartyID _0802650C: bl Random movs r3, 0xFF @@ -20997,7 +20997,7 @@ _0802650C: lsrs r1, 2 cmp r0, r1 bhi _0802655C - ldr r3, _08026558 @ =gUnknown_02024C10 + ldr r3, _08026558 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -21013,19 +21013,19 @@ _0802650C: movs r0, 0 b _08026576 .align 2, 0 -_08026558: .4byte gUnknown_02024C10 +_08026558: .4byte gBattlescriptCurrInstr _0802655C: ldr r0, _0802657C @ =0x02000000 ldr r2, _08026580 @ =0x00016064 adds r1, r4, r2 adds r1, r0 - ldr r2, _08026584 @ =gUnknown_02024A6A + ldr r2, _08026584 @ =gBattlePartyID lsls r0, r4, 1 _08026568: adds r0, r2 ldrh r0, [r0] strb r0, [r1] - ldr r1, _08026588 @ =gUnknown_02024C10 + ldr r1, _08026588 @ =gBattlescriptCurrInstr ldr r0, _0802658C @ =gUnknown_081D90FC str r0, [r1] movs r0, 0x1 @@ -21036,8 +21036,8 @@ _08026576: .align 2, 0 _0802657C: .4byte 0x02000000 _08026580: .4byte 0x00016064 -_08026584: .4byte gUnknown_02024A6A -_08026588: .4byte gUnknown_02024C10 +_08026584: .4byte gBattlePartyID +_08026588: .4byte gBattlescriptCurrInstr _0802658C: .4byte gUnknown_081D90FC thumb_func_end sub_80264C0 @@ -21054,9 +21054,9 @@ sub_8026590: @ 8026590 bne _080265A4 b _0802687C _080265A4: - ldr r5, _0802662C @ =gEnemyMonIndex + ldr r5, _0802662C @ =gBankTarget ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 ldr r1, _08026630 @ =gEnemyParty mov r8, r1 @@ -21120,7 +21120,7 @@ _0802661A: b _08026678 .align 2, 0 _08026628: .4byte gBattleTypeFlags -_0802662C: .4byte gEnemyMonIndex +_0802662C: .4byte gBankTarget _08026630: .4byte gEnemyParty _08026634: .4byte gPlayerParty _08026638: @@ -21178,7 +21178,7 @@ _08026688: cmp r0, 0 bne _080266C4 _080266A0: - ldr r3, _080266C0 @ =gUnknown_02024C10 + ldr r3, _080266C0 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -21194,7 +21194,7 @@ _080266A0: b _08026880 .align 2, 0 _080266BC: .4byte gBattleTypeFlags -_080266C0: .4byte gUnknown_02024C10 +_080266C0: .4byte gBattlescriptCurrInstr _080266C4: bl sub_80264C0 lsls r0, 24 @@ -21216,7 +21216,7 @@ _080266DC: bl __umodsi3 lsls r0, 24 lsrs r6, r0, 24 - ldr r0, _08026714 @ =gEnemyMonIndex + ldr r0, _08026714 @ =gBankTarget ldrb r0, [r0] bl sub_803FC34 lsls r0, 24 @@ -21232,12 +21232,12 @@ _080266DC: b _0802671A .align 2, 0 _08026710: .4byte gBattleTypeFlags -_08026714: .4byte gEnemyMonIndex +_08026714: .4byte gBankTarget _08026718: adds r5, r6, 0 _0802671A: - ldr r4, _0802676C @ =gUnknown_02024A6A - ldr r0, _08026770 @ =gEnemyMonIndex + ldr r4, _0802676C @ =gBattlePartyID + ldr r0, _08026770 @ =gBankTarget ldrb r2, [r0] lsls r1, r2, 1 adds r1, r4 @@ -21274,14 +21274,14 @@ _0802671A: beq _080266DC b _08026832 .align 2, 0 -_0802676C: .4byte gUnknown_02024A6A -_08026770: .4byte gEnemyMonIndex +_0802676C: .4byte gBattlePartyID +_08026770: .4byte gBankTarget _08026774: movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080267E4 - ldr r6, _080267DC @ =gUnknown_02024A6A + ldr r6, _080267DC @ =gBattlePartyID _0802677E: bl Random lsls r0, 16 @@ -21290,7 +21290,7 @@ _0802677E: bl __umodsi3 lsls r0, 24 lsrs r5, r0, 24 - ldr r0, _080267E0 @ =gEnemyMonIndex + ldr r0, _080267E0 @ =gBankTarget ldrb r1, [r0] lsls r0, r1, 1 adds r0, r6 @@ -21326,10 +21326,10 @@ _0802677E: beq _0802677E b _08026832 .align 2, 0 -_080267DC: .4byte gUnknown_02024A6A -_080267E0: .4byte gEnemyMonIndex +_080267DC: .4byte gBattlePartyID +_080267E0: .4byte gBankTarget _080267E4: - ldr r6, _0802686C @ =gUnknown_02024A6A + ldr r6, _0802686C @ =gBattlePartyID _080267E6: bl Random lsls r0, 16 @@ -21338,7 +21338,7 @@ _080267E6: bl __umodsi3 lsls r0, 24 lsrs r5, r0, 24 - ldr r0, _08026870 @ =gEnemyMonIndex + ldr r0, _08026870 @ =gBankTarget ldrb r0, [r0] lsls r0, 1 adds r0, r6 @@ -21366,7 +21366,7 @@ _080267E6: beq _080267E6 _08026832: ldr r0, _08026874 @ =0x02000000 - ldr r4, _08026870 @ =gEnemyMonIndex + ldr r4, _08026870 @ =gBankTarget ldrb r1, [r4] ldr r2, _08026878 @ =0x00016068 adds r1, r2 @@ -21391,8 +21391,8 @@ _08026850: bl sub_8094B6C b _08026880 .align 2, 0 -_0802686C: .4byte gUnknown_02024A6A -_08026870: .4byte gEnemyMonIndex +_0802686C: .4byte gBattlePartyID +_08026870: .4byte gBankTarget _08026874: .4byte 0x02000000 _08026878: .4byte 0x00016068 _0802687C: @@ -21414,7 +21414,7 @@ sub_802688C: @ 802688C push {r5-r7} movs r6, 0 ldr r2, _08026920 @ =gBattleMons - ldr r3, _08026924 @ =gPlayerMonIndex + ldr r3, _08026924 @ =gBankAttacker ldrb r1, [r3] movs r0, 0x58 muls r0, r1 @@ -21449,7 +21449,7 @@ _080268CE: mov r10, r0 ldr r5, _08026920 @ =gBattleMons mov r12, r5 - ldr r7, _08026924 @ =gPlayerMonIndex + ldr r7, _08026924 @ =gBankAttacker ldrb r0, [r7] movs r4, 0x58 adds r5, r0, 0 @@ -21486,7 +21486,7 @@ _0802691A: b _0802692E .align 2, 0 _08026920: .4byte gBattleMons -_08026924: .4byte gPlayerMonIndex +_08026924: .4byte gBankAttacker _08026928: .4byte gBattleMoves _0802692C: movs r2, 0 @@ -21512,7 +21512,7 @@ _08026946: _08026950: cmp r3, r6 bne _08026974 - ldr r3, _08026970 @ =gUnknown_02024C10 + ldr r3, _08026970 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -21527,7 +21527,7 @@ _08026950: str r1, [r3] b _08026A18 .align 2, 0 -_08026970: .4byte gUnknown_02024C10 +_08026970: .4byte gBattlescriptCurrInstr _08026974: movs r7, 0x3 ldr r5, _080269CC @ =gBattleMoves @@ -21540,7 +21540,7 @@ _0802697A: bcs _0802697A ldr r4, _080269D0 @ =gBattleMons lsls r1, r3, 1 - ldr r3, _080269D4 @ =gPlayerMonIndex + ldr r3, _080269D4 @ =gBankAttacker ldrb r2, [r3] movs r0, 0x58 adds r5, r2, 0 @@ -21577,7 +21577,7 @@ _080269C8: .align 2, 0 _080269CC: .4byte gBattleMoves _080269D0: .4byte gBattleMons -_080269D4: .4byte gPlayerMonIndex +_080269D4: .4byte gBankAttacker _080269D8: movs r2, 0 _080269DA: @@ -21600,7 +21600,7 @@ _080269DA: add r0, r8 adds r0, 0x22 strb r2, [r0] - ldr r1, _08026A28 @ =gUnknown_030041C0 + ldr r1, _08026A28 @ =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x3 @@ -21608,7 +21608,7 @@ _080269DA: strb r2, [r1, 0x2] movs r0, 0xFF strb r0, [r1, 0x3] - ldr r1, _08026A2C @ =gUnknown_02024C10 + ldr r1, _08026A2C @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] @@ -21621,8 +21621,8 @@ _08026A18: pop {r0} bx r0 .align 2, 0 -_08026A28: .4byte gUnknown_030041C0 -_08026A2C: .4byte gUnknown_02024C10 +_08026A28: .4byte gBattleTextBuff1 +_08026A2C: .4byte gBattlescriptCurrInstr thumb_func_end sub_802688C thumb_func_start atk91_givemoney @@ -21634,7 +21634,7 @@ atk91_givemoney: @ 8026A30 ands r0, r1 cmp r0, 0 bne _08026AAC - ldr r4, _08026A90 @ =gUnknown_02024D1A + ldr r4, _08026A90 @ =gPaydayMoney ldrh r0, [r4] cmp r0, 0 beq _08026AAC @@ -21646,7 +21646,7 @@ atk91_givemoney: @ 8026A30 ldrb r1, [r1] muls r1, r2 bl sub_80B79B8 - ldr r1, _08026AA0 @ =gUnknown_030041C0 + ldr r1, _08026AA0 @ =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x1 @@ -21664,7 +21664,7 @@ atk91_givemoney: @ 8026A30 strb r0, [r1, 0x5] movs r0, 0xFF strb r0, [r1, 0x6] - ldr r4, _08026AA4 @ =gUnknown_02024C10 + ldr r4, _08026AA4 @ =gBattlescriptCurrInstr ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push @@ -21673,15 +21673,15 @@ atk91_givemoney: @ 8026A30 b _08026AB4 .align 2, 0 _08026A8C: .4byte gBattleTypeFlags -_08026A90: .4byte gUnknown_02024D1A +_08026A90: .4byte gPaydayMoney _08026A94: .4byte gSaveBlock1 + 0x490 _08026A98: .4byte 0x02000000 _08026A9C: .4byte 0x00016056 -_08026AA0: .4byte gUnknown_030041C0 -_08026AA4: .4byte gUnknown_02024C10 +_08026AA0: .4byte gBattleTextBuff1 +_08026AA4: .4byte gBattlescriptCurrInstr _08026AA8: .4byte gUnknown_081D95DB _08026AAC: - ldr r1, _08026ABC @ =gUnknown_02024C10 + ldr r1, _08026ABC @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -21690,16 +21690,16 @@ _08026AB4: pop {r0} bx r0 .align 2, 0 -_08026ABC: .4byte gUnknown_02024C10 +_08026ABC: .4byte gBattlescriptCurrInstr thumb_func_end atk91_givemoney thumb_func_start atk92_setlightscreen atk92_setlightscreen: @ 8026AC0 push {r4-r6,lr} - ldr r4, _08026AF0 @ =gPlayerMonIndex + ldr r4, _08026AF0 @ =gBankAttacker ldrb r0, [r4] - bl battle_get_per_side_status - ldr r6, _08026AF4 @ =gUnknown_02024C7A + bl GetBankIdentity + ldr r6, _08026AF4 @ =gSideAffecting movs r5, 0x1 adds r1, r5, 0 ands r1, r0 @@ -21715,17 +21715,17 @@ atk92_setlightscreen: @ 8026AC0 movs r1, 0x1 orrs r0, r1 strb r0, [r2] - ldr r1, _08026AFC @ =gUnknown_02024D1E + ldr r1, _08026AFC @ =gBattleCommunication movs r0, 0 b _08026B60 .align 2, 0 -_08026AF0: .4byte gPlayerMonIndex -_08026AF4: .4byte gUnknown_02024C7A +_08026AF0: .4byte gBankAttacker +_08026AF4: .4byte gSideAffecting _08026AF8: .4byte gBattleMoveFlags -_08026AFC: .4byte gUnknown_02024D1E +_08026AFC: .4byte gBattleCommunication _08026B00: ldrb r0, [r4] - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r5, 0 ands r1, r0 lsls r1, 1 @@ -21735,8 +21735,8 @@ _08026B00: orrs r0, r2 strh r0, [r1] ldrb r0, [r4] - bl battle_get_per_side_status - ldr r2, _08026B50 @ =gUnknown_02024C80 + bl GetBankIdentity + ldr r2, _08026B50 @ =gSideTimer adds r1, r5, 0 ands r1, r0 lsls r0, r1, 1 @@ -21752,24 +21752,24 @@ _08026B00: cmp r0, 0 beq _08026B5C movs r0, 0x1 - bl sub_803C348 + bl CountAliveMons lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _08026B5C - ldr r1, _08026B58 @ =gUnknown_02024D1E + ldr r1, _08026B58 @ =gBattleCommunication movs r0, 0x4 b _08026B60 .align 2, 0 -_08026B50: .4byte gUnknown_02024C80 +_08026B50: .4byte gSideTimer _08026B54: .4byte gBattleTypeFlags -_08026B58: .4byte gUnknown_02024D1E +_08026B58: .4byte gBattleCommunication _08026B5C: - ldr r1, _08026B70 @ =gUnknown_02024D1E + ldr r1, _08026B70 @ =gBattleCommunication movs r0, 0x3 _08026B60: strb r0, [r1, 0x5] - ldr r1, _08026B74 @ =gUnknown_02024C10 + ldr r1, _08026B74 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -21777,8 +21777,8 @@ _08026B60: pop {r0} bx r0 .align 2, 0 -_08026B70: .4byte gUnknown_02024D1E -_08026B74: .4byte gUnknown_02024C10 +_08026B70: .4byte gBattleCommunication +_08026B74: .4byte gBattlescriptCurrInstr thumb_func_end atk92_setlightscreen thumb_func_start sub_8026B78 @@ -21789,7 +21789,7 @@ sub_8026B78: @ 8026B78 mov r5, r8 push {r5-r7} ldr r7, _08026BA8 @ =gBattleMons - ldr r6, _08026BAC @ =gEnemyMonIndex + ldr r6, _08026BAC @ =gBankTarget ldrb r2, [r6] movs r5, 0x58 adds r0, r2, 0 @@ -21808,7 +21808,7 @@ sub_8026B78: @ 8026B78 b _08026BCE .align 2, 0 _08026BA8: .4byte gBattleMons -_08026BAC: .4byte gEnemyMonIndex +_08026BAC: .4byte gBankTarget _08026BB0: .4byte gEnigmaBerries _08026BB4: ldrh r0, [r1, 0x2E] @@ -21823,8 +21823,8 @@ _08026BB4: lsls r0, 24 lsrs r6, r0, 24 _08026BCE: - ldr r1, _08026C4C @ =gUnknown_02024C0B - ldr r5, _08026C50 @ =gEnemyMonIndex + ldr r1, _08026C4C @ =gStringBank + ldr r5, _08026C50 @ =gBankTarget ldrb r0, [r5] strb r0, [r1] cmp r4, 0x27 @@ -21841,7 +21841,7 @@ _08026BCE: ldrb r0, [r5] movs r1, 0x27 bl sub_81074F8 - ldr r2, _08026C54 @ =gUnknown_02024D68 + ldr r2, _08026C54 @ =gSpecialStatuses ldrb r1, [r5] lsls r0, r1, 2 adds r0, r1 @@ -21854,7 +21854,7 @@ _08026BCE: _08026C0C: ldr r0, _08026C58 @ =gBattleMons mov r8, r0 - ldr r1, _08026C50 @ =gEnemyMonIndex + ldr r1, _08026C50 @ =gBankTarget ldrb r2, [r1] movs r6, 0x58 adds r0, r2, 0 @@ -21872,27 +21872,27 @@ _08026C0C: movs r1, 0x1 orrs r0, r1 strb r0, [r2] - ldr r0, _08026C60 @ =byte_2024C06 + ldr r0, _08026C60 @ =gLastUsedAbility strb r3, [r0] - ldr r1, _08026C64 @ =gUnknown_02024C10 + ldr r1, _08026C64 @ =gBattlescriptCurrInstr ldr r0, _08026C68 @ =gUnknown_081D9826 str r0, [r1] - ldr r1, _08026C50 @ =gEnemyMonIndex + ldr r1, _08026C50 @ =gBankTarget ldrb r0, [r1] movs r1, 0x5 bl sub_81074C4 b _08026E40 .align 2, 0 -_08026C4C: .4byte gUnknown_02024C0B -_08026C50: .4byte gEnemyMonIndex -_08026C54: .4byte gUnknown_02024D68 +_08026C4C: .4byte gStringBank +_08026C50: .4byte gBankTarget +_08026C54: .4byte gSpecialStatuses _08026C58: .4byte gBattleMons _08026C5C: .4byte gBattleMoveFlags -_08026C60: .4byte byte_2024C06 -_08026C64: .4byte gUnknown_02024C10 +_08026C60: .4byte gLastUsedAbility +_08026C64: .4byte gBattlescriptCurrInstr _08026C68: .4byte gUnknown_081D9826 _08026C6C: - ldr r1, _08026CE0 @ =gUnknown_02024C98 + ldr r1, _08026CE0 @ =gStatuses3 lsls r0, r2, 2 adds r0, r1 ldr r0, [r0] @@ -21901,13 +21901,13 @@ _08026C6C: cmp r0, 0 bne _08026CF4 ldr r1, _08026CE4 @ =gBattleMoves - ldr r0, _08026CE8 @ =gUnknown_02024BE6 + ldr r0, _08026CE8 @ =gCurrentMove ldrh r0, [r0] lsls r2, r0, 1 adds r2, r0 lsls r2, 2 adds r2, r1 - ldr r7, _08026CEC @ =gPlayerMonIndex + ldr r7, _08026CEC @ =gBankAttacker ldrb r0, [r7] muls r0, r6 add r0, r10 @@ -21936,7 +21936,7 @@ _08026C6C: muls r1, r6 add r1, r10 adds r1, 0x2A - ldr r2, _08026CF0 @ =gEnemyMonIndex + ldr r2, _08026CF0 @ =gBankTarget ldrb r0, [r2] muls r0, r6 add r0, r10 @@ -21950,18 +21950,18 @@ _08026CDC: mov r10, r8 b _08026DE0 .align 2, 0 -_08026CE0: .4byte gUnknown_02024C98 +_08026CE0: .4byte gStatuses3 _08026CE4: .4byte gBattleMoves -_08026CE8: .4byte gUnknown_02024BE6 -_08026CEC: .4byte gPlayerMonIndex -_08026CF0: .4byte gEnemyMonIndex +_08026CE8: .4byte gCurrentMove +_08026CEC: .4byte gBankAttacker +_08026CF0: .4byte gBankTarget _08026CF4: - ldr r0, _08026D4C @ =gUnknown_02024CA8 + ldr r0, _08026D4C @ =gDisableStructs lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r1, r0 - ldr r2, _08026D50 @ =gPlayerMonIndex + ldr r2, _08026D50 @ =gBankAttacker ldrb r0, [r1, 0x15] movs r4, 0 ldrb r3, [r2] @@ -21981,8 +21981,8 @@ _08026CF4: _08026D20: cmp r4, 0 beq _08026DE0 - ldr r0, _08026D54 @ =gUnknown_02024D28 - ldr r1, _08026D58 @ =gEnemyMonIndex + ldr r0, _08026D54 @ =gProtectStructs + ldr r1, _08026D58 @ =gBankTarget ldrb r2, [r1] lsls r1, r2, 4 adds r1, r0 @@ -22002,14 +22002,14 @@ _08026D20: movs r1, 0x40 b _08026DC6 .align 2, 0 -_08026D4C: .4byte gUnknown_02024CA8 -_08026D50: .4byte gPlayerMonIndex -_08026D54: .4byte gUnknown_02024D28 -_08026D58: .4byte gEnemyMonIndex +_08026D4C: .4byte gDisableStructs +_08026D50: .4byte gBankAttacker +_08026D54: .4byte gProtectStructs +_08026D58: .4byte gBankTarget _08026D5C: .4byte gBattleMoveDamage _08026D60: .4byte gBattleMoveFlags _08026D64: - ldr r0, _08026DA0 @ =gUnknown_02024D68 + ldr r0, _08026DA0 @ =gSpecialStatuses lsls r1, r2, 2 adds r1, r2 lsls r1, 2 @@ -22031,8 +22031,8 @@ _08026D64: movs r1, 0x80 orrs r0, r1 strb r0, [r2] - ldr r1, _08026DAC @ =gUnknown_02024C04 - ldr r2, _08026DB0 @ =gEnemyMonIndex + ldr r1, _08026DAC @ =gLastUsedItem + ldr r2, _08026DB0 @ =gBankTarget ldrb r0, [r2] muls r0, r3 add r0, r10 @@ -22040,11 +22040,11 @@ _08026D64: strh r0, [r1] b _08026DCA .align 2, 0 -_08026DA0: .4byte gUnknown_02024D68 +_08026DA0: .4byte gSpecialStatuses _08026DA4: .4byte gBattleMoveDamage _08026DA8: .4byte gBattleMoveFlags -_08026DAC: .4byte gUnknown_02024C04 -_08026DB0: .4byte gEnemyMonIndex +_08026DAC: .4byte gLastUsedItem +_08026DB0: .4byte gBankTarget _08026DB4: ldr r1, _08026DD4 @ =gBattleMoveDamage movs r0, 0x58 @@ -22059,7 +22059,7 @@ _08026DC6: orrs r0, r1 strb r0, [r2] _08026DCA: - ldr r1, _08026DDC @ =gUnknown_02024C10 + ldr r1, _08026DDC @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] @@ -22067,21 +22067,21 @@ _08026DCA: .align 2, 0 _08026DD4: .4byte gBattleMoveDamage _08026DD8: .4byte gBattleMoveFlags -_08026DDC: .4byte gUnknown_02024C10 +_08026DDC: .4byte gBattlescriptCurrInstr _08026DE0: ldr r2, _08026E10 @ =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] - ldr r0, _08026E14 @ =gPlayerMonIndex + ldr r0, _08026E14 @ =gBankAttacker ldrb r0, [r0] movs r2, 0x58 adds r1, r0, 0 muls r1, r2 add r1, r10 adds r1, 0x2A - ldr r3, _08026E18 @ =gEnemyMonIndex + ldr r3, _08026E18 @ =gBankTarget ldrb r0, [r3] muls r0, r2 add r0, r10 @@ -22090,20 +22090,20 @@ _08026DE0: ldrb r0, [r0] cmp r1, r0 bcc _08026E20 - ldr r1, _08026E1C @ =gUnknown_02024D1E + ldr r1, _08026E1C @ =gBattleCommunication movs r0, 0 b _08026E24 .align 2, 0 _08026E10: .4byte gBattleMoveFlags -_08026E14: .4byte gPlayerMonIndex -_08026E18: .4byte gEnemyMonIndex -_08026E1C: .4byte gUnknown_02024D1E +_08026E14: .4byte gBankAttacker +_08026E18: .4byte gBankTarget +_08026E1C: .4byte gBattleCommunication _08026E20: - ldr r1, _08026E50 @ =gUnknown_02024D1E + ldr r1, _08026E50 @ =gBattleCommunication movs r0, 0x1 _08026E24: strb r0, [r1, 0x5] - ldr r3, _08026E54 @ =gUnknown_02024C10 + ldr r3, _08026E54 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -22125,8 +22125,8 @@ _08026E40: pop {r0} bx r0 .align 2, 0 -_08026E50: .4byte gUnknown_02024D1E -_08026E54: .4byte gUnknown_02024C10 +_08026E50: .4byte gBattleCommunication +_08026E54: .4byte gBattlescriptCurrInstr thumb_func_end sub_8026B78 thumb_func_start atk94_gethalfcurrentenemyhp @@ -22134,7 +22134,7 @@ atk94_gethalfcurrentenemyhp: @ 8026E58 push {lr} ldr r3, _08026E84 @ =gBattleMoveDamage ldr r2, _08026E88 @ =gBattleMons - ldr r0, _08026E8C @ =gEnemyMonIndex + ldr r0, _08026E8C @ =gBankTarget ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -22147,7 +22147,7 @@ atk94_gethalfcurrentenemyhp: @ 8026E58 movs r0, 0x1 str r0, [r3] _08026E76: - ldr r1, _08026E90 @ =gUnknown_02024C10 + ldr r1, _08026E90 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -22156,8 +22156,8 @@ _08026E76: .align 2, 0 _08026E84: .4byte gBattleMoveDamage _08026E88: .4byte gBattleMons -_08026E8C: .4byte gEnemyMonIndex -_08026E90: .4byte gUnknown_02024C10 +_08026E8C: .4byte gBankTarget +_08026E90: .4byte gBattlescriptCurrInstr thumb_func_end atk94_gethalfcurrentenemyhp thumb_func_start sub_8026E94 @@ -22174,35 +22174,35 @@ sub_8026E94: @ 8026E94 movs r1, 0x1 orrs r0, r1 strb r0, [r2] - ldr r1, _08026EBC @ =gUnknown_02024D1E + ldr r1, _08026EBC @ =gBattleCommunication movs r0, 0x2 strb r0, [r1, 0x5] b _08026ED2 .align 2, 0 _08026EB4: .4byte gBattleWeather _08026EB8: .4byte gBattleMoveFlags -_08026EBC: .4byte gUnknown_02024D1E +_08026EBC: .4byte gBattleCommunication _08026EC0: movs r0, 0x8 strh r0, [r2] - ldr r1, _08026EE0 @ =gUnknown_02024D1E + ldr r1, _08026EE0 @ =gBattleCommunication movs r0, 0x3 strb r0, [r1, 0x5] - ldr r0, _08026EE4 @ =gUnknown_02024DBC + ldr r0, _08026EE4 @ =gWishFutureKnock adds r0, 0x28 movs r1, 0x5 strb r1, [r0] _08026ED2: - ldr r1, _08026EE8 @ =gUnknown_02024C10 + ldr r1, _08026EE8 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .align 2, 0 -_08026EE0: .4byte gUnknown_02024D1E -_08026EE4: .4byte gUnknown_02024DBC -_08026EE8: .4byte gUnknown_02024C10 +_08026EE0: .4byte gBattleCommunication +_08026EE4: .4byte gWishFutureKnock +_08026EE8: .4byte gBattlescriptCurrInstr thumb_func_end sub_8026E94 thumb_func_start sub_8026EEC @@ -22215,7 +22215,7 @@ sub_8026EEC: @ 8026EEC movs r1, 0 movs r2, 0xD movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 lsrs r0, 24 cmp r0, 0 @@ -22227,7 +22227,7 @@ _08026F0A: movs r1, 0 movs r2, 0x4D movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 beq _08026F20 @@ -22238,7 +22238,7 @@ _08026F20: movs r0, 0x18 ands r0, r1 adds r4, r2, 0 - ldr r5, _08026F98 @ =gPlayerMonIndex + ldr r5, _08026F98 @ =gBankAttacker cmp r0, 0 beq _08026FAE ldr r0, _08026F9C @ =gBattleMons @@ -22269,7 +22269,7 @@ _08026F20: ldrb r0, [r0] cmp r0, 0x8 beq _08026FA8 - ldr r0, _08026FA0 @ =gUnknown_02024C98 + ldr r0, _08026FA0 @ =gStatuses3 lsls r1, r2, 2 adds r1, r0 ldr r1, [r1] @@ -22292,9 +22292,9 @@ _08026F20: b _08026FAC .align 2, 0 _08026F94: .4byte gBattleWeather -_08026F98: .4byte gPlayerMonIndex +_08026F98: .4byte gBankAttacker _08026F9C: .4byte gBattleMons -_08026FA0: .4byte gUnknown_02024C98 +_08026FA0: .4byte gStatuses3 _08026FA4: .4byte gBattleMoveDamage _08026FA8: ldr r1, _08027004 @ =gBattleMoveDamage @@ -22323,7 +22323,7 @@ _08026FAE: ldrb r0, [r0] cmp r0, 0xF beq _08027010 - ldr r0, _0802700C @ =gUnknown_02024C98 + ldr r0, _0802700C @ =gStatuses3 lsls r1, r3, 2 adds r1, r0 ldr r1, [r1] @@ -22348,7 +22348,7 @@ _08026FAE: .align 2, 0 _08027004: .4byte gBattleMoveDamage _08027008: .4byte gBattleMons -_0802700C: .4byte gUnknown_02024C98 +_0802700C: .4byte gStatuses3 _08027010: ldr r1, _08027018 @ =gBattleMoveDamage movs r0, 0 @@ -22360,9 +22360,9 @@ _0802701C: ldr r1, _08027050 @ =gBattleMoveDamage movs r0, 0 str r0, [r1] - ldr r5, _08027054 @ =gPlayerMonIndex + ldr r5, _08027054 @ =gBankAttacker _08027024: - ldr r0, _08027058 @ =gUnknown_02024C0C + ldr r0, _08027058 @ =gAbsentBankFlags ldrb r1, [r0] ldr r2, _0802705C @ =gBitTable ldrb r0, [r5] @@ -22376,7 +22376,7 @@ _08027024: movs r0, 0 str r0, [r1] _0802703E: - ldr r1, _08027060 @ =gUnknown_02024C10 + ldr r1, _08027060 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -22386,10 +22386,10 @@ _0802703E: bx r0 .align 2, 0 _08027050: .4byte gBattleMoveDamage -_08027054: .4byte gPlayerMonIndex -_08027058: .4byte gUnknown_02024C0C +_08027054: .4byte gBankAttacker +_08027058: .4byte gAbsentBankFlags _0802705C: .4byte gBitTable -_08027060: .4byte gUnknown_02024C10 +_08027060: .4byte gBattlescriptCurrInstr thumb_func_end sub_8026EEC thumb_func_start sub_8027064 @@ -22399,13 +22399,13 @@ sub_8027064: @ 8027064 mov r6, r9 mov r5, r8 push {r5-r7} - ldr r4, _08027090 @ =gPlayerMonIndex + ldr r4, _08027090 @ =gBankAttacker ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0802709C - ldr r1, _08027094 @ =gUnknown_02024A6A + ldr r1, _08027094 @ =gBattlePartyID ldrb r0, [r4] lsls r0, 1 adds r0, r1 @@ -22415,11 +22415,11 @@ sub_8027064: @ 8027064 ldr r0, _08027098 @ =gPlayerParty b _080270AC .align 2, 0 -_08027090: .4byte gPlayerMonIndex -_08027094: .4byte gUnknown_02024A6A +_08027090: .4byte gBankAttacker +_08027094: .4byte gBattlePartyID _08027098: .4byte gPlayerParty _0802709C: - ldr r1, _080270D0 @ =gUnknown_02024A6A + ldr r1, _080270D0 @ =gBattlePartyID ldrb r0, [r4] lsls r0, 1 adds r0, r1 @@ -22429,13 +22429,13 @@ _0802709C: ldr r0, _080270D4 @ =gEnemyParty _080270AC: adds r5, r1, r0 - ldr r4, _080270D8 @ =gEnemyMonIndex + ldr r4, _080270D8 @ =gBankTarget ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080270E0 - ldr r1, _080270D0 @ =gUnknown_02024A6A + ldr r1, _080270D0 @ =gBattlePartyID ldrb r0, [r4] lsls r0, 1 adds r0, r1 @@ -22445,12 +22445,12 @@ _080270AC: ldr r0, _080270DC @ =gPlayerParty b _080270F0 .align 2, 0 -_080270D0: .4byte gUnknown_02024A6A +_080270D0: .4byte gBattlePartyID _080270D4: .4byte gEnemyParty -_080270D8: .4byte gEnemyMonIndex +_080270D8: .4byte gBankTarget _080270DC: .4byte gPlayerParty _080270E0: - ldr r1, _0802714C @ =gUnknown_02024A6A + ldr r1, _0802714C @ =gBattlePartyID ldrb r0, [r4] lsls r0, 1 adds r0, r1 @@ -22480,7 +22480,7 @@ _080270F0: movs r1, 0 bl GetMonData adds r7, r0, 0 - ldr r5, _08027154 @ =gEnemyMonIndex + ldr r5, _08027154 @ =gBankTarget ldrb r0, [r5] movs r6, 0x58 muls r0, r6 @@ -22490,23 +22490,23 @@ _080270F0: ldrb r2, [r0] cmp r2, 0xC bne _08027168 - ldr r1, _0802715C @ =gUnknown_02024C10 + ldr r1, _0802715C @ =gBattlescriptCurrInstr ldr r0, _08027160 @ =gUnknown_081D98C9 str r0, [r1] - ldr r0, _08027164 @ =byte_2024C06 + ldr r0, _08027164 @ =gLastUsedAbility strb r2, [r0] ldrb r0, [r5] movs r1, 0xC bl sub_81074C4 b _0802721C .align 2, 0 -_0802714C: .4byte gUnknown_02024A6A +_0802714C: .4byte gBattlePartyID _08027150: .4byte gEnemyParty -_08027154: .4byte gEnemyMonIndex +_08027154: .4byte gBankTarget _08027158: .4byte gBattleMons -_0802715C: .4byte gUnknown_02024C10 +_0802715C: .4byte gBattlescriptCurrInstr _08027160: .4byte gUnknown_081D98C9 -_08027164: .4byte byte_2024C06 +_08027164: .4byte gLastUsedAbility _08027168: mov r0, r10 mov r1, r9 @@ -22519,7 +22519,7 @@ _08027168: lsls r0, 24 cmp r4, r0 beq _080271CA - ldr r1, _080271E8 @ =gUnknown_02024C98 + ldr r1, _080271E8 @ =gStatuses3 ldrb r2, [r5] lsls r0, r2, 2 adds r0, r1 @@ -22554,7 +22554,7 @@ _08027168: cmp r0, 0xFF bne _080271F8 _080271CA: - ldr r3, _080271F4 @ =gUnknown_02024C10 + ldr r3, _080271F4 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -22569,17 +22569,17 @@ _080271CA: str r1, [r3] b _0802721C .align 2, 0 -_080271E8: .4byte gUnknown_02024C98 +_080271E8: .4byte gStatuses3 _080271EC: .4byte 0x000400c0 _080271F0: .4byte gBattleMons -_080271F4: .4byte gUnknown_02024C10 +_080271F4: .4byte gBattlescriptCurrInstr _080271F8: ldrb r0, [r5] adds r2, r0, 0 muls r2, r6 adds r2, r4 ldr r1, _0802722C @ =gBitTable - ldr r0, _08027230 @ =gPlayerMonIndex + ldr r0, _08027230 @ =gBankAttacker ldrb r0, [r0] lsls r0, 2 adds r0, r1 @@ -22588,7 +22588,7 @@ _080271F8: ldr r0, [r2] orrs r0, r1 str r0, [r2] - ldr r1, _08027234 @ =gUnknown_02024C10 + ldr r1, _08027234 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] @@ -22602,24 +22602,24 @@ _0802721C: bx r0 .align 2, 0 _0802722C: .4byte gBitTable -_08027230: .4byte gPlayerMonIndex -_08027234: .4byte gUnknown_02024C10 +_08027230: .4byte gBankAttacker +_08027234: .4byte gBattlescriptCurrInstr thumb_func_end sub_8027064 thumb_func_start sub_8027238 sub_8027238: @ 8027238 push {r4-r7,lr} - ldr r0, _08027280 @ =gUnknown_02024A64 + ldr r0, _08027280 @ =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 bne _08027324 - ldr r5, _08027284 @ =gUnknown_02024C10 + ldr r5, _08027284 @ =gBattlescriptCurrInstr ldr r1, [r5] ldrb r0, [r1, 0x1] cmp r0, 0x4 beq _08027290 bl sub_8015150 - ldr r4, _08027288 @ =gUnknown_02024A60 + ldr r4, _08027288 @ =gActiveBank strb r0, [r4] ldr r3, _0802728C @ =gBattleMons ldrb r1, [r4] @@ -22634,24 +22634,24 @@ sub_8027238: @ 8027238 adds r2, r3 ldr r2, [r2] movs r0, 0 - bl dp01_build_cmdbuf_x1A_aaaa_bbbb + bl EmitStatusIconUpdate ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution ldr r0, [r5] adds r0, 0x2 str r0, [r5] b _08027324 .align 2, 0 -_08027280: .4byte gUnknown_02024A64 -_08027284: .4byte gUnknown_02024C10 -_08027288: .4byte gUnknown_02024A60 +_08027280: .4byte gBattleExecBuffer +_08027284: .4byte gBattlescriptCurrInstr +_08027288: .4byte gActiveBank _0802728C: .4byte gBattleMons _08027290: - ldr r4, _0802732C @ =gUnknown_02024A60 - ldr r5, _08027330 @ =gPlayerMonIndex + ldr r4, _0802732C @ =gActiveBank + ldr r5, _08027330 @ =gBankAttacker ldrb r0, [r5] strb r0, [r4] - ldr r6, _08027334 @ =gUnknown_02024C0C + ldr r6, _08027334 @ =gAbsentBankFlags ldrb r1, [r6] ldr r7, _08027338 @ =gBitTable ldrb r2, [r4] @@ -22672,9 +22672,9 @@ _08027290: adds r2, r3 ldr r2, [r2] movs r0, 0 - bl dp01_build_cmdbuf_x1A_aaaa_bbbb + bl EmitStatusIconUpdate ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution _080272CC: ldr r0, _08027340 @ =gBattleTypeFlags ldrh r1, [r0] @@ -22683,12 +22683,12 @@ _080272CC: cmp r0, 0 beq _0802731C ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity movs r1, 0x2 eors r0, r1 lsls r0, 24 lsrs r0, 24 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI strb r0, [r4] ldrb r1, [r6] ldrb r2, [r4] @@ -22709,11 +22709,11 @@ _080272CC: adds r2, r3 ldr r2, [r2] movs r0, 0 - bl dp01_build_cmdbuf_x1A_aaaa_bbbb + bl EmitStatusIconUpdate ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution _0802731C: - ldr r1, _08027344 @ =gUnknown_02024C10 + ldr r1, _08027344 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x2 str r0, [r1] @@ -22722,22 +22722,22 @@ _08027324: pop {r0} bx r0 .align 2, 0 -_0802732C: .4byte gUnknown_02024A60 -_08027330: .4byte gPlayerMonIndex -_08027334: .4byte gUnknown_02024C0C +_0802732C: .4byte gActiveBank +_08027330: .4byte gBankAttacker +_08027334: .4byte gAbsentBankFlags _08027338: .4byte gBitTable _0802733C: .4byte gBattleMons _08027340: .4byte gBattleTypeFlags -_08027344: .4byte gUnknown_02024C10 +_08027344: .4byte gBattlescriptCurrInstr thumb_func_end sub_8027238 thumb_func_start sub_8027348 sub_8027348: @ 8027348 push {r4-r6,lr} - ldr r6, _08027378 @ =gUnknown_02024C80 - ldr r4, _0802737C @ =gPlayerMonIndex + ldr r6, _08027378 @ =gSideTimer + ldr r4, _0802737C @ =gBankAttacker ldrb r0, [r4] - bl battle_get_per_side_status + bl GetBankIdentity movs r5, 0x1 adds r1, r5, 0 ands r1, r0 @@ -22753,17 +22753,17 @@ sub_8027348: @ 8027348 movs r1, 0x20 orrs r0, r1 strb r0, [r2] - ldr r0, _08027384 @ =gUnknown_02024D1E + ldr r0, _08027384 @ =gBattleCommunication strb r5, [r0, 0x5] b _080273C0 .align 2, 0 -_08027378: .4byte gUnknown_02024C80 -_0802737C: .4byte gPlayerMonIndex +_08027378: .4byte gSideTimer +_0802737C: .4byte gBankAttacker _08027380: .4byte gBattleMoveFlags -_08027384: .4byte gUnknown_02024D1E +_08027384: .4byte gBattleCommunication _08027388: ldrb r0, [r4] - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r5, 0 ands r1, r0 lsls r0, r1, 1 @@ -22773,8 +22773,8 @@ _08027388: movs r1, 0x5 strb r1, [r0, 0x2] ldrb r0, [r4] - bl battle_get_per_side_status - ldr r2, _080273D0 @ =gUnknown_02024C7A + bl GetBankIdentity + ldr r2, _080273D0 @ =gSideAffecting adds r1, r5, 0 ands r1, r0 lsls r1, 1 @@ -22786,10 +22786,10 @@ _08027388: movs r3, 0 orrs r0, r2 strh r0, [r1] - ldr r0, _080273D4 @ =gUnknown_02024D1E + ldr r0, _080273D4 @ =gBattleCommunication strb r3, [r0, 0x5] _080273C0: - ldr r1, _080273D8 @ =gUnknown_02024C10 + ldr r1, _080273D8 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -22797,16 +22797,16 @@ _080273C0: pop {r0} bx r0 .align 2, 0 -_080273D0: .4byte gUnknown_02024C7A -_080273D4: .4byte gUnknown_02024D1E -_080273D8: .4byte gUnknown_02024C10 +_080273D0: .4byte gSideAffecting +_080273D4: .4byte gBattleCommunication +_080273D8: .4byte gBattlescriptCurrInstr thumb_func_end sub_8027348 thumb_func_start atk9A_setincreasedcriticalchance atk9A_setincreasedcriticalchance: @ 80273DC push {lr} ldr r1, _0802740C @ =gBattleMons - ldr r0, _08027410 @ =gPlayerMonIndex + ldr r0, _08027410 @ =gBankAttacker ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -22824,30 +22824,30 @@ atk9A_setincreasedcriticalchance: @ 80273DC movs r1, 0x20 orrs r0, r1 strb r0, [r2] - ldr r1, _08027418 @ =gUnknown_02024D1E + ldr r1, _08027418 @ =gBattleCommunication movs r0, 0x1 strb r0, [r1, 0x5] b _08027424 .align 2, 0 _0802740C: .4byte gBattleMons -_08027410: .4byte gPlayerMonIndex +_08027410: .4byte gBankAttacker _08027414: .4byte gBattleMoveFlags -_08027418: .4byte gUnknown_02024D1E +_08027418: .4byte gBattleCommunication _0802741C: orrs r1, r3 str r1, [r0] - ldr r0, _08027430 @ =gUnknown_02024D1E + ldr r0, _08027430 @ =gBattleCommunication strb r2, [r0, 0x5] _08027424: - ldr r1, _08027434 @ =gUnknown_02024C10 + ldr r1, _08027434 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .align 2, 0 -_08027430: .4byte gUnknown_02024D1E -_08027434: .4byte gUnknown_02024C10 +_08027430: .4byte gBattleCommunication +_08027434: .4byte gBattlescriptCurrInstr thumb_func_end atk9A_setincreasedcriticalchance thumb_func_start atk9B_transformdataexecution @@ -22859,12 +22859,12 @@ atk9B_transformdataexecution: @ 8027438 ldr r2, _08027494 @ =0x0000ffff adds r0, r2, 0 strh r0, [r1] - ldr r1, _08027498 @ =gUnknown_02024C10 + ldr r1, _08027498 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] ldr r7, _0802749C @ =gBattleMons - ldr r0, _080274A0 @ =gEnemyMonIndex + ldr r0, _080274A0 @ =gBankTarget mov r12, r0 ldrb r1, [r0] movs r6, 0x58 @@ -22879,7 +22879,7 @@ atk9B_transformdataexecution: @ 8027438 ands r0, r4 cmp r0, 0 bne _0802747E - ldr r0, _080274A4 @ =gUnknown_02024C98 + ldr r0, _080274A4 @ =gStatuses3 lsls r1, 2 adds r1, r0 ldr r2, [r1] @@ -22893,21 +22893,21 @@ _0802747E: movs r1, 0x20 orrs r0, r1 strb r0, [r2] - ldr r1, _080274B0 @ =gUnknown_02024D1E + ldr r1, _080274B0 @ =gBattleCommunication movs r0, 0x1 b _080275C8 .align 2, 0 _08027490: .4byte gUnknown_02024BE8 _08027494: .4byte 0x0000ffff -_08027498: .4byte gUnknown_02024C10 +_08027498: .4byte gBattlescriptCurrInstr _0802749C: .4byte gBattleMons -_080274A0: .4byte gEnemyMonIndex -_080274A4: .4byte gUnknown_02024C98 +_080274A0: .4byte gBankTarget +_080274A4: .4byte gStatuses3 _080274A8: .4byte 0x000400c0 _080274AC: .4byte gBattleMoveFlags -_080274B0: .4byte gUnknown_02024D1E +_080274B0: .4byte gBattleCommunication _080274B4: - ldr r3, _08027588 @ =gPlayerMonIndex + ldr r3, _08027588 @ =gBankAttacker ldrb r0, [r3] adds r1, r0, 0 muls r1, r6 @@ -22915,7 +22915,7 @@ _080274B4: ldr r0, [r1] orrs r0, r4 str r0, [r1] - ldr r4, _0802758C @ =gUnknown_02024CA8 + ldr r4, _0802758C @ =gDisableStructs ldrb r1, [r3] lsls r0, r1, 3 subs r0, r1 @@ -22954,7 +22954,7 @@ _080274B4: movs r0, 0xF ands r0, r2 strb r0, [r1, 0x18] - ldr r1, _08027590 @ =gUnknown_030041C0 + ldr r1, _08027590 @ =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x6 @@ -22981,7 +22981,7 @@ _080274B4: adds r2, r0, r7 movs r4, 0 adds r6, r3, 0 - ldr r0, _08027594 @ =gUnknown_02024A60 + ldr r0, _08027594 @ =gActiveBank mov r8, r0 _0802754C: adds r0, r5, r4 @@ -23015,10 +23015,10 @@ _08027564: adds r0, r5 b _080275A6 .align 2, 0 -_08027588: .4byte gPlayerMonIndex -_0802758C: .4byte gUnknown_02024CA8 -_08027590: .4byte gUnknown_030041C0 -_08027594: .4byte gUnknown_02024A60 +_08027588: .4byte gBankAttacker +_0802758C: .4byte gDisableStructs +_08027590: .4byte gBattleTextBuff1 +_08027594: .4byte gActiveBank _08027598: .4byte gBattleMoves _0802759C: .4byte gUnknown_02024A8C _080275A0: @@ -23035,11 +23035,11 @@ _080275A6: strb r0, [r1] movs r0, 0 movs r1, 0x2 - bl dp01_build_cmdbuf_x38_a + bl EmitResetActionMoveSelection mov r2, r8 ldrb r0, [r2] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _080275D4 @ =gUnknown_02024D1E + bl MarkBufferBankForExecution + ldr r1, _080275D4 @ =gBattleCommunication movs r0, 0 _080275C8: strb r0, [r1, 0x5] @@ -23049,14 +23049,14 @@ _080275C8: pop {r0} bx r0 .align 2, 0 -_080275D4: .4byte gUnknown_02024D1E +_080275D4: .4byte gBattleCommunication thumb_func_end atk9B_transformdataexecution thumb_func_start sub_80275D8 sub_80275D8: @ 80275D8 push {r4-r7,lr} ldr r7, _08027608 @ =gBattleMons - ldr r6, _0802760C @ =gPlayerMonIndex + ldr r6, _0802760C @ =gBankAttacker ldrb r0, [r6] movs r5, 0x58 muls r0, r5 @@ -23074,15 +23074,15 @@ _080275F2: ldr r1, _08027610 @ =gBattleMoveDamage movs r0, 0 str r0, [r1] - ldr r1, _08027614 @ =gUnknown_02024D1E + ldr r1, _08027614 @ =gBattleCommunication movs r0, 0x1 strb r0, [r1, 0x5] b _0802766C .align 2, 0 _08027608: .4byte gBattleMons -_0802760C: .4byte gPlayerMonIndex +_0802760C: .4byte gBankAttacker _08027610: .4byte gBattleMoveDamage -_08027614: .4byte gUnknown_02024D1E +_08027614: .4byte gBattleCommunication _08027618: ldr r4, _0802767C @ =gBattleMoveDamage str r1, [r4] @@ -23110,7 +23110,7 @@ _08027624: ldr r2, _08027680 @ =0xffff1fff ands r0, r2 str r0, [r1] - ldr r2, _08027684 @ =gUnknown_02024CA8 + ldr r2, _08027684 @ =gDisableStructs ldrb r1, [r6] lsls r0, r1, 3 subs r0, r1 @@ -23119,16 +23119,16 @@ _08027624: ldr r1, [r4] movs r2, 0 strb r1, [r0, 0xA] - ldr r0, _08027688 @ =gUnknown_02024D1E + ldr r0, _08027688 @ =gBattleCommunication strb r2, [r0, 0x5] - ldr r2, _0802768C @ =gUnknown_02024C6C + ldr r2, _0802768C @ =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 1 orrs r0, r1 str r0, [r2] _0802766C: - ldr r1, _08027690 @ =gUnknown_02024C10 + ldr r1, _08027690 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -23138,10 +23138,10 @@ _0802766C: .align 2, 0 _0802767C: .4byte gBattleMoveDamage _08027680: .4byte 0xffff1fff -_08027684: .4byte gUnknown_02024CA8 -_08027688: .4byte gUnknown_02024D1E -_0802768C: .4byte gUnknown_02024C6C -_08027690: .4byte gUnknown_02024C10 +_08027684: .4byte gDisableStructs +_08027688: .4byte gBattleCommunication +_0802768C: .4byte gHitMarker +_08027690: .4byte gBattlescriptCurrInstr thumb_func_end sub_80275D8 thumb_func_start sub_8027694 @@ -23195,8 +23195,8 @@ atk9D_copyattack: @ 80276DC ldr r1, _08027758 @ =0x0000ffff adds r7, r1, 0 strh r7, [r0] - ldr r5, _0802775C @ =gUnknown_02024C34 - ldr r6, _08027760 @ =gEnemyMonIndex + ldr r5, _0802775C @ =gLastUsedMove + ldr r6, _08027760 @ =gBankTarget ldrb r0, [r6] lsls r0, 1 adds r0, r5 @@ -23206,7 +23206,7 @@ atk9D_copyattack: @ 80276DC cmp r0, 0 bne _08027736 ldr r3, _08027764 @ =gBattleMons - ldr r2, _08027768 @ =gPlayerMonIndex + ldr r2, _08027768 @ =gBankAttacker ldrb r1, [r2] movs r0, 0x58 adds r4, r1, 0 @@ -23231,7 +23231,7 @@ atk9D_copyattack: @ 80276DC cmp r1, r7 bne _08027770 _08027736: - ldr r3, _0802776C @ =gUnknown_02024C10 + ldr r3, _0802776C @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -23248,18 +23248,18 @@ _08027736: .align 2, 0 _08027754: .4byte gUnknown_02024BE8 _08027758: .4byte 0x0000ffff -_0802775C: .4byte gUnknown_02024C34 -_08027760: .4byte gEnemyMonIndex +_0802775C: .4byte gLastUsedMove +_08027760: .4byte gBankTarget _08027764: .4byte gBattleMons -_08027768: .4byte gPlayerMonIndex -_0802776C: .4byte gUnknown_02024C10 +_08027768: .4byte gBankAttacker +_0802776C: .4byte gBattlescriptCurrInstr _08027770: movs r2, 0 mov r3, r12 adds r3, 0xC adds r0, r4, r3 ldrh r0, [r0] - ldr r4, _08027800 @ =gUnknown_02024C10 + ldr r4, _08027800 @ =gBattlescriptCurrInstr mov r10, r4 cmp r0, r1 beq _080277AA @@ -23287,7 +23287,7 @@ _0802778C: _080277AA: cmp r2, 0x4 bne _0802788C - ldr r5, _08027804 @ =gUnknown_02024BE4 + ldr r5, _08027804 @ =gCurrMovePos ldrb r1, [r5] lsls r1, 1 mov r2, r9 @@ -23298,8 +23298,8 @@ _080277AA: mov r0, r12 adds r0, 0xC adds r1, r0 - ldr r2, _08027808 @ =gUnknown_02024C34 - ldr r3, _0802780C @ =gEnemyMonIndex + ldr r2, _08027808 @ =gLastUsedMove + ldr r3, _0802780C @ =gBankTarget ldrb r0, [r3] lsls r0, 1 adds r0, r2 @@ -23328,10 +23328,10 @@ _080277AA: strb r4, [r0] b _08027828 .align 2, 0 -_08027800: .4byte gUnknown_02024C10 -_08027804: .4byte gUnknown_02024BE4 -_08027808: .4byte gUnknown_02024C34 -_0802780C: .4byte gEnemyMonIndex +_08027800: .4byte gBattlescriptCurrInstr +_08027804: .4byte gCurrMovePos +_08027808: .4byte gLastUsedMove +_0802780C: .4byte gBankTarget _08027810: .4byte gBattleMoves _08027814: mov r4, r9 @@ -23345,7 +23345,7 @@ _08027814: movs r1, 0x5 strb r1, [r0] _08027828: - ldr r1, _08027880 @ =gUnknown_030041C0 + ldr r1, _08027880 @ =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x2 @@ -23363,7 +23363,7 @@ _08027828: strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] - ldr r1, _08027884 @ =gUnknown_02024CA8 + ldr r1, _08027884 @ =gDisableStructs mov r2, r9 ldrb r0, [r2] lsls r2, r0, 3 @@ -23389,8 +23389,8 @@ _08027828: str r0, [r4] b _080278A8 .align 2, 0 -_08027880: .4byte gUnknown_030041C0 -_08027884: .4byte gUnknown_02024CA8 +_08027880: .4byte gBattleTextBuff1 +_08027884: .4byte gDisableStructs _08027888: .4byte gBitTable _0802788C: mov r0, r10 @@ -23422,11 +23422,11 @@ sub_80278B8: @ 80278B8 push {r4-r7,lr} mov r7, r8 push {r7} - ldr r7, _08027938 @ =gUnknown_02024BE6 + ldr r7, _08027938 @ =gCurrentMove movs r6, 0xB1 lsls r6, 1 ldr r5, _0802793C @ =gUnknown_081FACFE - ldr r0, _08027940 @ =gUnknown_02024C10 + ldr r0, _08027940 @ =gBattlescriptCurrInstr mov r8, r0 _080278CA: bl Random @@ -23442,7 +23442,7 @@ _080278DE: subs r0, 0x1 cmp r0, 0 bge _080278DE - ldr r4, _08027938 @ =gUnknown_02024BE6 + ldr r4, _08027938 @ =gCurrentMove ldrh r2, [r4] ldr r3, _08027948 @ =0x0000ffff subs r0, r5, 0x2 @@ -23457,7 +23457,7 @@ _080278F8: ldr r0, _08027948 @ =0x0000ffff cmp r1, r0 bne _080278CA - ldr r2, _0802794C @ =gUnknown_02024C6C + ldr r2, _0802794C @ =gHitMarker ldr r0, [r2] ldr r1, _08027950 @ =0xfffffbff ands r0, r1 @@ -23478,7 +23478,7 @@ _080278F8: ldrh r0, [r4] movs r1, 0 bl sub_801B5C0 - ldr r1, _0802795C @ =gEnemyMonIndex + ldr r1, _0802795C @ =gBankTarget strb r0, [r1] pop {r3} mov r8, r3 @@ -23486,23 +23486,23 @@ _080278F8: pop {r0} bx r0 .align 2, 0 -_08027938: .4byte gUnknown_02024BE6 +_08027938: .4byte gCurrentMove _0802793C: .4byte gUnknown_081FACFE -_08027940: .4byte gUnknown_02024C10 +_08027940: .4byte gBattlescriptCurrInstr _08027944: .4byte 0x000001ff _08027948: .4byte 0x0000ffff -_0802794C: .4byte gUnknown_02024C6C +_0802794C: .4byte gHitMarker _08027950: .4byte 0xfffffbff _08027954: .4byte gUnknown_081D6BBC _08027958: .4byte gBattleMoves -_0802795C: .4byte gEnemyMonIndex +_0802795C: .4byte gBankTarget thumb_func_end sub_80278B8 thumb_func_start sub_8027960 sub_8027960: @ 8027960 ldr r3, _08027980 @ =gBattleMoveDamage ldr r2, _08027984 @ =gBattleMons - ldr r0, _08027988 @ =gPlayerMonIndex + ldr r0, _08027988 @ =gBankAttacker ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -23510,7 +23510,7 @@ sub_8027960: @ 8027960 adds r0, 0x2A ldrb r0, [r0] str r0, [r3] - ldr r1, _0802798C @ =gUnknown_02024C10 + ldr r1, _0802798C @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -23518,8 +23518,8 @@ sub_8027960: @ 8027960 .align 2, 0 _08027980: .4byte gBattleMoveDamage _08027984: .4byte gBattleMons -_08027988: .4byte gPlayerMonIndex -_0802798C: .4byte gUnknown_02024C10 +_08027988: .4byte gBankAttacker +_0802798C: .4byte gBattlescriptCurrInstr thumb_func_end sub_8027960 thumb_func_start atkA0_psywavedamageeffect @@ -23537,7 +23537,7 @@ _08027994: lsls r3, r0, 1 ldr r4, _080279D4 @ =gBattleMoveDamage ldr r2, _080279D8 @ =gBattleMons - ldr r0, _080279DC @ =gPlayerMonIndex + ldr r0, _080279DC @ =gBankAttacker ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -23550,7 +23550,7 @@ _08027994: movs r1, 0x64 bl __divsi3 str r0, [r4] - ldr r1, _080279E0 @ =gUnknown_02024C10 + ldr r1, _080279E0 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -23560,24 +23560,24 @@ _08027994: .align 2, 0 _080279D4: .4byte gBattleMoveDamage _080279D8: .4byte gBattleMons -_080279DC: .4byte gPlayerMonIndex -_080279E0: .4byte gUnknown_02024C10 +_080279DC: .4byte gBankAttacker +_080279E0: .4byte gBattlescriptCurrInstr thumb_func_end atkA0_psywavedamageeffect thumb_func_start atkA1_counterdamagecalculator atkA1_counterdamagecalculator: @ 80279E4 push {r4-r6,lr} - ldr r4, _08027A54 @ =gPlayerMonIndex + ldr r4, _08027A54 @ =gBankAttacker ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r6, r0, 24 - ldr r5, _08027A58 @ =gUnknown_02024D28 + ldr r5, _08027A58 @ =gProtectStructs ldrb r0, [r4] lsls r0, 4 adds r0, r5 ldrb r0, [r0, 0xC] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r2, r0, 24 ldrb r0, [r4] @@ -23601,7 +23601,7 @@ atkA1_counterdamagecalculator: @ 80279E4 ldr r1, _08027A60 @ =gBattleMoveDamage lsls r0, r3, 1 str r0, [r1] - ldr r1, _08027A64 @ =gUnknown_02024C80 + ldr r1, _08027A64 @ =gSideTimer lsls r0, r2, 1 adds r0, r2 lsls r0, 2 @@ -23616,39 +23616,39 @@ atkA1_counterdamagecalculator: @ 80279E4 ldrh r0, [r0, 0x28] cmp r0, 0 beq _08027A6C - ldr r0, _08027A68 @ =gEnemyMonIndex + ldr r0, _08027A68 @ =gBankTarget strb r1, [r0] b _08027A7C .align 2, 0 -_08027A54: .4byte gPlayerMonIndex -_08027A58: .4byte gUnknown_02024D28 +_08027A54: .4byte gBankAttacker +_08027A58: .4byte gProtectStructs _08027A5C: .4byte gBattleMons _08027A60: .4byte gBattleMoveDamage -_08027A64: .4byte gUnknown_02024C80 -_08027A68: .4byte gEnemyMonIndex +_08027A64: .4byte gSideTimer +_08027A68: .4byte gBankTarget _08027A6C: - ldr r2, _08027A88 @ =gEnemyMonIndex - ldr r1, _08027A8C @ =gUnknown_02024D28 - ldr r0, _08027A90 @ =gPlayerMonIndex + ldr r2, _08027A88 @ =gBankTarget + ldr r1, _08027A8C @ =gProtectStructs + ldr r0, _08027A90 @ =gBankAttacker ldrb r0, [r0] lsls r0, 4 adds r0, r1 ldrb r0, [r0, 0xC] strb r0, [r2] _08027A7C: - ldr r1, _08027A94 @ =gUnknown_02024C10 + ldr r1, _08027A94 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _08027AC8 .align 2, 0 -_08027A88: .4byte gEnemyMonIndex -_08027A8C: .4byte gUnknown_02024D28 -_08027A90: .4byte gPlayerMonIndex -_08027A94: .4byte gUnknown_02024C10 +_08027A88: .4byte gBankTarget +_08027A8C: .4byte gProtectStructs +_08027A90: .4byte gBankAttacker +_08027A94: .4byte gBattlescriptCurrInstr _08027A98: - ldr r2, _08027AD0 @ =gUnknown_02024D68 - ldr r0, _08027AD4 @ =gPlayerMonIndex + ldr r2, _08027AD0 @ =gSpecialStatuses + ldr r0, _08027AD4 @ =gBankAttacker ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 @@ -23658,7 +23658,7 @@ _08027A98: movs r2, 0x20 orrs r1, r2 strb r1, [r0] - ldr r3, _08027AD8 @ =gUnknown_02024C10 + ldr r3, _08027AD8 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -23676,25 +23676,25 @@ _08027AC8: pop {r0} bx r0 .align 2, 0 -_08027AD0: .4byte gUnknown_02024D68 -_08027AD4: .4byte gPlayerMonIndex -_08027AD8: .4byte gUnknown_02024C10 +_08027AD0: .4byte gSpecialStatuses +_08027AD4: .4byte gBankAttacker +_08027AD8: .4byte gBattlescriptCurrInstr thumb_func_end atkA1_counterdamagecalculator thumb_func_start atkA2_mirrorcoatdamagecalculator atkA2_mirrorcoatdamagecalculator: @ 8027ADC push {r4-r6,lr} - ldr r4, _08027B4C @ =gPlayerMonIndex + ldr r4, _08027B4C @ =gBankAttacker ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r6, r0, 24 - ldr r5, _08027B50 @ =gUnknown_02024D28 + ldr r5, _08027B50 @ =gProtectStructs ldrb r0, [r4] lsls r0, 4 adds r0, r5 ldrb r0, [r0, 0xD] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r2, r0, 24 ldrb r0, [r4] @@ -23719,7 +23719,7 @@ atkA2_mirrorcoatdamagecalculator: @ 8027ADC ldr r1, _08027B58 @ =gBattleMoveDamage lsls r0, r3, 1 str r0, [r1] - ldr r1, _08027B5C @ =gUnknown_02024C80 + ldr r1, _08027B5C @ =gSideTimer lsls r0, r2, 1 adds r0, r2 lsls r0, 2 @@ -23734,39 +23734,39 @@ atkA2_mirrorcoatdamagecalculator: @ 8027ADC ldrh r0, [r0, 0x28] cmp r0, 0 beq _08027B64 - ldr r0, _08027B60 @ =gEnemyMonIndex + ldr r0, _08027B60 @ =gBankTarget strb r1, [r0] b _08027B74 .align 2, 0 -_08027B4C: .4byte gPlayerMonIndex -_08027B50: .4byte gUnknown_02024D28 +_08027B4C: .4byte gBankAttacker +_08027B50: .4byte gProtectStructs _08027B54: .4byte gBattleMons _08027B58: .4byte gBattleMoveDamage -_08027B5C: .4byte gUnknown_02024C80 -_08027B60: .4byte gEnemyMonIndex +_08027B5C: .4byte gSideTimer +_08027B60: .4byte gBankTarget _08027B64: - ldr r2, _08027B80 @ =gEnemyMonIndex - ldr r1, _08027B84 @ =gUnknown_02024D28 - ldr r0, _08027B88 @ =gPlayerMonIndex + ldr r2, _08027B80 @ =gBankTarget + ldr r1, _08027B84 @ =gProtectStructs + ldr r0, _08027B88 @ =gBankAttacker ldrb r0, [r0] lsls r0, 4 adds r0, r1 ldrb r0, [r0, 0xD] strb r0, [r2] _08027B74: - ldr r1, _08027B8C @ =gUnknown_02024C10 + ldr r1, _08027B8C @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _08027BC0 .align 2, 0 -_08027B80: .4byte gEnemyMonIndex -_08027B84: .4byte gUnknown_02024D28 -_08027B88: .4byte gPlayerMonIndex -_08027B8C: .4byte gUnknown_02024C10 +_08027B80: .4byte gBankTarget +_08027B84: .4byte gProtectStructs +_08027B88: .4byte gBankAttacker +_08027B8C: .4byte gBattlescriptCurrInstr _08027B90: - ldr r2, _08027BC8 @ =gUnknown_02024D68 - ldr r0, _08027BCC @ =gPlayerMonIndex + ldr r2, _08027BC8 @ =gSpecialStatuses + ldr r0, _08027BCC @ =gBankAttacker ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 @@ -23776,7 +23776,7 @@ _08027B90: movs r2, 0x20 orrs r1, r2 strb r1, [r0] - ldr r3, _08027BD0 @ =gUnknown_02024C10 + ldr r3, _08027BD0 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -23794,9 +23794,9 @@ _08027BC0: pop {r0} bx r0 .align 2, 0 -_08027BC8: .4byte gUnknown_02024D68 -_08027BCC: .4byte gPlayerMonIndex -_08027BD0: .4byte gUnknown_02024C10 +_08027BC8: .4byte gSpecialStatuses +_08027BCC: .4byte gBankAttacker +_08027BD0: .4byte gBattlescriptCurrInstr thumb_func_end atkA2_mirrorcoatdamagecalculator thumb_func_start atkA3_disablelastusedattack @@ -23807,20 +23807,20 @@ atkA3_disablelastusedattack: @ 8027BD4 push {r6,r7} movs r4, 0 ldr r2, _08027CD4 @ =gBattleMons - ldr r3, _08027CD8 @ =gEnemyMonIndex + ldr r3, _08027CD8 @ =gBankTarget ldrb r1, [r3] movs r0, 0x58 muls r0, r1 adds r7, r2, 0 adds r7, 0xC adds r0, r7 - ldr r5, _08027CDC @ =gUnknown_02024C34 + ldr r5, _08027CDC @ =gLastUsedMove lsls r1, 1 adds r1, r5 ldrh r0, [r0] mov r9, r2 adds r6, r3, 0 - ldr r2, _08027CE0 @ =gUnknown_02024CA8 + ldr r2, _08027CE0 @ =gDisableStructs mov r8, r2 ldrh r1, [r1] cmp r0, r1 @@ -23865,7 +23865,7 @@ _08027C28: ldrb r0, [r0] cmp r0, 0 beq _08027CEC - ldr r1, _08027CE4 @ =gUnknown_030041C0 + ldr r1, _08027CE4 @ =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x2 @@ -23925,20 +23925,20 @@ _08027C28: ands r0, r3 orrs r0, r2 strb r0, [r1, 0xB] - ldr r1, _08027CE8 @ =gUnknown_02024C10 + ldr r1, _08027CE8 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _08027D06 .align 2, 0 _08027CD4: .4byte gBattleMons -_08027CD8: .4byte gEnemyMonIndex -_08027CDC: .4byte gUnknown_02024C34 -_08027CE0: .4byte gUnknown_02024CA8 -_08027CE4: .4byte gUnknown_030041C0 -_08027CE8: .4byte gUnknown_02024C10 +_08027CD8: .4byte gBankTarget +_08027CDC: .4byte gLastUsedMove +_08027CE0: .4byte gDisableStructs +_08027CE4: .4byte gBattleTextBuff1 +_08027CE8: .4byte gBattlescriptCurrInstr _08027CEC: - ldr r3, _08027D14 @ =gUnknown_02024C10 + ldr r3, _08027D14 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -23959,7 +23959,7 @@ _08027D06: pop {r0} bx r0 .align 2, 0 -_08027D14: .4byte gUnknown_02024C10 +_08027D14: .4byte gBattlescriptCurrInstr thumb_func_end atkA3_disablelastusedattack thumb_func_start atkA4_setencore @@ -23971,20 +23971,20 @@ atkA4_setencore: @ 8027D18 push {r5-r7} movs r5, 0 ldr r3, _08027E0C @ =gBattleMons - ldr r4, _08027E10 @ =gEnemyMonIndex + ldr r4, _08027E10 @ =gBankTarget ldrb r1, [r4] movs r0, 0x58 muls r0, r1 adds r6, r3, 0 adds r6, 0xC adds r0, r6 - ldr r2, _08027E14 @ =gUnknown_02024C34 + ldr r2, _08027E14 @ =gLastUsedMove lsls r1, 1 adds r1, r2 ldrh r0, [r0] mov r10, r3 mov r8, r2 - ldr r2, _08027E18 @ =gUnknown_02024CA8 + ldr r2, _08027E18 @ =gDisableStructs mov r9, r2 ldrh r1, [r1] cmp r0, r1 @@ -24084,19 +24084,19 @@ _08027D88: ands r0, r3 orrs r0, r2 strb r0, [r1, 0xE] - ldr r1, _08027E1C @ =gUnknown_02024C10 + ldr r1, _08027E1C @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _08027E3A .align 2, 0 _08027E0C: .4byte gBattleMons -_08027E10: .4byte gEnemyMonIndex -_08027E14: .4byte gUnknown_02024C34 -_08027E18: .4byte gUnknown_02024CA8 -_08027E1C: .4byte gUnknown_02024C10 +_08027E10: .4byte gBankTarget +_08027E14: .4byte gLastUsedMove +_08027E18: .4byte gDisableStructs +_08027E1C: .4byte gBattlescriptCurrInstr _08027E20: - ldr r3, _08027E48 @ =gUnknown_02024C10 + ldr r3, _08027E48 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -24118,7 +24118,7 @@ _08027E3A: pop {r0} bx r0 .align 2, 0 -_08027E48: .4byte gUnknown_02024C10 +_08027E48: .4byte gBattlescriptCurrInstr thumb_func_end atkA4_setencore thumb_func_start sub_8027E4C @@ -24128,7 +24128,7 @@ sub_8027E4C: @ 8027E4C mov r6, r8 push {r6,r7} ldr r7, _08027EEC @ =gBattleMons - ldr r0, _08027EF0 @ =gEnemyMonIndex + ldr r0, _08027EF0 @ =gBankTarget mov r8, r0 ldrb r0, [r0] movs r6, 0x58 @@ -24143,7 +24143,7 @@ sub_8027E4C: @ 8027E4C ands r0, r1 cmp r0, 0 bne _08027F18 - ldr r1, _08027EF4 @ =gPlayerMonIndex + ldr r1, _08027EF4 @ =gBankAttacker mov r12, r1 ldrb r0, [r1] muls r0, r6 @@ -24187,7 +24187,7 @@ sub_8027E4C: @ 8027E4C subs r0, r4 mov r5, r9 str r0, [r5] - ldr r2, _08027F0C @ =gUnknown_02024D68 + ldr r2, _08027F0C @ =gSpecialStatuses mov r0, r8 ldrb r1, [r0] lsls r0, r1, 2 @@ -24197,25 +24197,25 @@ sub_8027E4C: @ 8027E4C adds r0, r2 ldr r1, _08027F10 @ =0x0000ffff str r1, [r0] - ldr r1, _08027F14 @ =gUnknown_02024C10 + ldr r1, _08027F14 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _08027F32 .align 2, 0 _08027EEC: .4byte gBattleMons -_08027EF0: .4byte gEnemyMonIndex -_08027EF4: .4byte gPlayerMonIndex +_08027EF0: .4byte gBankTarget +_08027EF4: .4byte gBankAttacker _08027EF8: .4byte gBattleMoveDamage _08027EFC: .4byte 0x02000000 _08027F00: .4byte 0x00016014 _08027F04: .4byte 0x00016015 _08027F08: .4byte 0x00016017 -_08027F0C: .4byte gUnknown_02024D68 +_08027F0C: .4byte gSpecialStatuses _08027F10: .4byte 0x0000ffff -_08027F14: .4byte gUnknown_02024C10 +_08027F14: .4byte gBattlescriptCurrInstr _08027F18: - ldr r3, _08027F40 @ =gUnknown_02024C10 + ldr r3, _08027F40 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -24236,7 +24236,7 @@ _08027F32: pop {r0} bx r0 .align 2, 0 -_08027F40: .4byte gUnknown_02024C10 +_08027F40: .4byte gBattlescriptCurrInstr thumb_func_end sub_8027E4C thumb_func_start sub_8027F44 @@ -24246,8 +24246,8 @@ sub_8027F44: @ 8027F44 mov r6, r9 mov r5, r8 push {r5-r7} - ldr r1, _08027FA8 @ =gUnknown_02024C3C - ldr r4, _08027FAC @ =gPlayerMonIndex + ldr r1, _08027FA8 @ =gMoveHitWith + ldr r4, _08027FAC @ =gBankAttacker ldrb r0, [r4] lsls r0, 1 adds r2, r0, r1 @@ -24262,7 +24262,7 @@ sub_8027F44: @ 8027F44 lsls r0, 24 cmp r0, 0 beq _08028024 - ldr r2, _08027FB4 @ =gUnknown_02024D28 + ldr r2, _08027FB4 @ =gProtectStructs ldrb r0, [r4] lsls r1, r0, 4 adds r0, r2, 0x4 @@ -24277,7 +24277,7 @@ sub_8027F44: @ 8027F44 cmp r0, 0 bne _08028024 _08027F8C: - ldr r3, _08027FB8 @ =gUnknown_02024C10 + ldr r3, _08027FB8 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -24292,11 +24292,11 @@ _08027F8C: str r1, [r3] b _08028110 .align 2, 0 -_08027FA8: .4byte gUnknown_02024C3C -_08027FAC: .4byte gPlayerMonIndex +_08027FA8: .4byte gMoveHitWith +_08027FAC: .4byte gBankAttacker _08027FB0: .4byte 0x0000ffff -_08027FB4: .4byte gUnknown_02024D28 -_08027FB8: .4byte gUnknown_02024C10 +_08027FB4: .4byte gProtectStructs +_08027FB8: .4byte gBattlescriptCurrInstr _08027FBC: mov r0, r12 strb r5, [r0] @@ -24306,7 +24306,7 @@ _08027FBC: adds r0, r7 adds r0, 0x22 strb r5, [r0] - ldr r1, _08027FE0 @ =gUnknown_030041C0 + ldr r1, _08027FE0 @ =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x3 @@ -24314,11 +24314,11 @@ _08027FBC: strb r5, [r1, 0x2] movs r0, 0xFF strb r0, [r1, 0x3] - ldr r1, _08027FE4 @ =gUnknown_02024C10 + ldr r1, _08027FE4 @ =gBattlescriptCurrInstr b _08028012 .align 2, 0 -_08027FE0: .4byte gUnknown_030041C0 -_08027FE4: .4byte gUnknown_02024C10 +_08027FE0: .4byte gBattleTextBuff1 +_08027FE4: .4byte gBattlescriptCurrInstr _08027FE8: mov r0, r8 adds r0, 0x1 @@ -24332,7 +24332,7 @@ _08027FE8: adds r0, r7 adds r0, 0x22 strb r2, [r0] - ldr r1, _08028020 @ =gUnknown_030041C0 + ldr r1, _08028020 @ =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x3 @@ -24348,7 +24348,7 @@ _08028012: b _08028110 .align 2, 0 _0802801C: .4byte gBattleMons -_08028020: .4byte gUnknown_030041C0 +_08028020: .4byte gBattleTextBuff1 _08028024: movs r4, 0 mov r8, r4 @@ -24365,7 +24365,7 @@ _0802802C: ldr r6, _08028120 @ =gTypeEffectiveness adds r3, r4, r6 ldr r1, _08028124 @ =gUnknown_02024C44 - ldr r2, _08028128 @ =gPlayerMonIndex + ldr r2, _08028128 @ =gBankAttacker ldrb r5, [r2] lsls r0, r5, 1 adds r0, r1 @@ -24408,7 +24408,7 @@ _08028088: ble _0802802C movs r0, 0 mov r8, r0 - ldr r1, _08028134 @ =gUnknown_02024C10 + ldr r1, _08028134 @ =gBattlescriptCurrInstr mov r12, r1 ldr r3, _08028120 @ =gTypeEffectiveness adds r0, r4, 0x1 @@ -24483,18 +24483,18 @@ _08028110: .align 2, 0 _08028120: .4byte gTypeEffectiveness _08028124: .4byte gUnknown_02024C44 -_08028128: .4byte gPlayerMonIndex +_08028128: .4byte gBankAttacker _0802812C: .4byte gBattleMons _08028130: .4byte 0x000003e7 -_08028134: .4byte gUnknown_02024C10 +_08028134: .4byte gBattlescriptCurrInstr _08028138: .4byte 0x0000014f thumb_func_end sub_8027F44 thumb_func_start atkA7_setalwayshitflag atkA7_setalwayshitflag: @ 802813C push {r4,lr} - ldr r4, _08028180 @ =gUnknown_02024C98 - ldr r3, _08028184 @ =gEnemyMonIndex + ldr r4, _08028180 @ =gStatuses3 + ldr r3, _08028184 @ =gBankTarget ldrb r1, [r3] lsls r1, 2 adds r1, r4 @@ -24510,16 +24510,16 @@ atkA7_setalwayshitflag: @ 802813C movs r2, 0x10 orrs r0, r2 str r0, [r1] - ldr r2, _08028188 @ =gUnknown_02024CA8 + ldr r2, _08028188 @ =gDisableStructs ldrb r1, [r3] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 - ldr r1, _0802818C @ =gPlayerMonIndex + ldr r1, _0802818C @ =gBankAttacker ldrb r1, [r1] strb r1, [r0, 0x15] - ldr r1, _08028190 @ =gUnknown_02024C10 + ldr r1, _08028190 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -24527,11 +24527,11 @@ atkA7_setalwayshitflag: @ 802813C pop {r0} bx r0 .align 2, 0 -_08028180: .4byte gUnknown_02024C98 -_08028184: .4byte gEnemyMonIndex -_08028188: .4byte gUnknown_02024CA8 -_0802818C: .4byte gPlayerMonIndex -_08028190: .4byte gUnknown_02024C10 +_08028180: .4byte gStatuses3 +_08028184: .4byte gBankTarget +_08028188: .4byte gDisableStructs +_0802818C: .4byte gBankAttacker +_08028190: .4byte gBattlescriptCurrInstr thumb_func_end atkA7_setalwayshitflag thumb_func_start atkA8_copymovepermanently @@ -24547,7 +24547,7 @@ atkA8_copymovepermanently: @ 8028194 adds r5, r1, 0 strh r5, [r0] ldr r3, _080282FC @ =gBattleMons - ldr r2, _08028300 @ =gPlayerMonIndex + ldr r2, _08028300 @ =gBankAttacker ldrb r1, [r2] movs r0, 0x58 adds r4, r1, 0 @@ -24566,7 +24566,7 @@ atkA8_copymovepermanently: @ 8028194 b _08028320 _080281CC: ldr r0, _08028304 @ =gUnknown_02024C2C - ldr r2, _08028308 @ =gEnemyMonIndex + ldr r2, _08028308 @ =gBankTarget ldrb r1, [r2] lsls r1, 1 adds r1, r0 @@ -24615,7 +24615,7 @@ _0802821A: beq _08028220 b _08028320 _08028220: - ldr r4, _0802830C @ =gUnknown_02024BE4 + ldr r4, _0802830C @ =gCurrMovePos ldrb r1, [r4] lsls r1, 1 mov r2, r10 @@ -24653,7 +24653,7 @@ _08028220: adds r0, r4 ldrb r0, [r0, 0x4] strb r0, [r2] - ldr r1, _08028314 @ =gUnknown_02024A60 + ldr r1, _08028314 @ =gActiveBank mov r2, r10 ldrb r0, [r2] strb r0, [r1] @@ -24691,17 +24691,17 @@ _08028282: movs r1, 0x3 movs r2, 0 movs r3, 0x10 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldr r0, _08028314 @ =gUnknown_02024A60 + bl EmitSetAttributes + ldr r0, _08028314 @ =gActiveBank ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _08028318 @ =gUnknown_030041C0 + bl MarkBufferBankForExecution + ldr r1, _08028318 @ =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x2 strb r0, [r1, 0x1] ldr r3, _08028304 @ =gUnknown_02024C2C - ldr r2, _08028308 @ =gEnemyMonIndex + ldr r2, _08028308 @ =gBankTarget ldrb r0, [r2] lsls r0, 1 adds r0, r3 @@ -24715,7 +24715,7 @@ _08028282: strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] - ldr r1, _0802831C @ =gUnknown_02024C10 + ldr r1, _0802831C @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] @@ -24724,16 +24724,16 @@ _08028282: _080282F4: .4byte gUnknown_02024BE8 _080282F8: .4byte 0x0000ffff _080282FC: .4byte gBattleMons -_08028300: .4byte gPlayerMonIndex +_08028300: .4byte gBankAttacker _08028304: .4byte gUnknown_02024C2C -_08028308: .4byte gEnemyMonIndex -_0802830C: .4byte gUnknown_02024BE4 +_08028308: .4byte gBankTarget +_0802830C: .4byte gCurrMovePos _08028310: .4byte gBattleMoves -_08028314: .4byte gUnknown_02024A60 -_08028318: .4byte gUnknown_030041C0 -_0802831C: .4byte gUnknown_02024C10 +_08028314: .4byte gActiveBank +_08028318: .4byte gBattleTextBuff1 +_0802831C: .4byte gBattlescriptCurrInstr _08028320: - ldr r3, _0802834C @ =gUnknown_02024C10 + ldr r3, _0802834C @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -24756,7 +24756,7 @@ _0802833A: pop {r0} bx r0 .align 2, 0 -_0802834C: .4byte gUnknown_02024C10 +_0802834C: .4byte gBattlescriptCurrInstr thumb_func_end atkA8_copymovepermanently thumb_func_start sub_8028350 @@ -24860,7 +24860,7 @@ _080283D8: cmp r0, 0x1A bne _08028418 _080283FA: - ldr r0, _08028414 @ =gUnknown_02024C6C + ldr r0, _08028414 @ =gHitMarker ldr r0, [r0] movs r1, 0x80 lsls r1, 20 @@ -24872,7 +24872,7 @@ _080283FA: .align 2, 0 _0802840C: .4byte gBattleMoves _08028410: .4byte gBattleWeather -_08028414: .4byte gUnknown_02024C6C +_08028414: .4byte gHitMarker _08028418: movs r0, 0x2 _0802841A: @@ -24889,7 +24889,7 @@ sub_8028420: @ 8028420 push {r5-r7} movs r6, 0 movs r5, 0 - ldr r0, _080284B0 @ =gPlayerMonIndex + ldr r0, _080284B0 @ =gBankAttacker mov r9, r0 movs r1, 0x58 mov r8, r1 @@ -24940,7 +24940,7 @@ _0802848C: adds r5, 0x1 cmp r5, 0x3 ble _0802843E - ldr r0, _080284B0 @ =gPlayerMonIndex + ldr r0, _080284B0 @ =gBankAttacker ldrb r0, [r0] adds r1, r6, 0 movs r2, 0xFD @@ -24949,16 +24949,16 @@ _0802848C: lsrs r6, r0, 24 cmp r6, 0xF bne _080284C0 - ldr r1, _080284BC @ =gUnknown_02024C10 + ldr r1, _080284BC @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _08028524 .align 2, 0 -_080284B0: .4byte gPlayerMonIndex +_080284B0: .4byte gBankAttacker _080284B4: .4byte gUnknown_02024A8C _080284B8: .4byte gBitTable -_080284BC: .4byte gUnknown_02024C10 +_080284BC: .4byte gBattlescriptCurrInstr _080284C0: movs r7, 0x3 ldr r4, _08028534 @ =gBitTable @@ -24975,7 +24975,7 @@ _080284C4: ldr r4, _08028538 @ =gUnknown_02024BEA ldr r2, _0802853C @ =gBattleMons lsls r1, r5, 1 - ldr r0, _08028540 @ =gPlayerMonIndex + ldr r0, _08028540 @ =gBankAttacker ldrb r3, [r0] movs r0, 0x58 muls r0, r3 @@ -24984,9 +24984,9 @@ _080284C4: adds r1, r2 ldrh r0, [r1] strh r0, [r4] - ldr r0, _08028544 @ =gUnknown_02024BE4 + ldr r0, _08028544 @ =gCurrMovePos strb r5, [r0] - ldr r2, _08028548 @ =gUnknown_02024C6C + ldr r2, _08028548 @ =gHitMarker ldr r0, [r2] ldr r1, _0802854C @ =0xfffffbff ands r0, r1 @@ -24994,9 +24994,9 @@ _080284C4: ldrh r0, [r4] movs r1, 0 bl sub_801B5C0 - ldr r1, _08028550 @ =gEnemyMonIndex + ldr r1, _08028550 @ =gBankTarget strb r0, [r1] - ldr r3, _08028554 @ =gUnknown_02024C10 + ldr r3, _08028554 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -25021,18 +25021,18 @@ _08028524: _08028534: .4byte gBitTable _08028538: .4byte gUnknown_02024BEA _0802853C: .4byte gBattleMons -_08028540: .4byte gPlayerMonIndex -_08028544: .4byte gUnknown_02024BE4 -_08028548: .4byte gUnknown_02024C6C +_08028540: .4byte gBankAttacker +_08028544: .4byte gCurrMovePos +_08028548: .4byte gHitMarker _0802854C: .4byte 0xfffffbff -_08028550: .4byte gEnemyMonIndex -_08028554: .4byte gUnknown_02024C10 +_08028550: .4byte gBankTarget +_08028554: .4byte gBattlescriptCurrInstr thumb_func_end sub_8028420 thumb_func_start sub_8028558 sub_8028558: @ 8028558 ldr r1, _0802857C @ =gBattleMons - ldr r0, _08028580 @ =gPlayerMonIndex + ldr r0, _08028580 @ =gBankAttacker ldrb r2, [r0] movs r0, 0x58 muls r2, r0 @@ -25043,28 +25043,28 @@ sub_8028558: @ 8028558 lsls r1, 18 orrs r0, r1 str r0, [r2] - ldr r1, _08028584 @ =gUnknown_02024C10 + ldr r1, _08028584 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _0802857C: .4byte gBattleMons -_08028580: .4byte gPlayerMonIndex -_08028584: .4byte gUnknown_02024C10 +_08028580: .4byte gBankAttacker +_08028584: .4byte gBattlescriptCurrInstr thumb_func_end sub_8028558 thumb_func_start b_feature_update_destiny_bond b_feature_update_destiny_bond: @ 8028588 push {r4,r5,lr} - ldr r0, _080285D8 @ =gPlayerMonIndex + ldr r0, _080285D8 @ =gBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r5, r0, 24 - ldr r4, _080285DC @ =gEnemyMonIndex + ldr r4, _080285DC @ =gBankTarget ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r3, r0, 24 ldr r1, _080285E0 @ =gBattleMons @@ -25081,7 +25081,7 @@ b_feature_update_destiny_bond: @ 8028588 beq _080285D2 cmp r5, r3 beq _080285D2 - ldr r2, _080285E4 @ =gUnknown_02024C6C + ldr r2, _080285E4 @ =gHitMarker ldr r1, [r2] movs r0, 0x80 lsls r0, 17 @@ -25096,31 +25096,31 @@ _080285D2: pop {r0} bx r0 .align 2, 0 -_080285D8: .4byte gPlayerMonIndex -_080285DC: .4byte gEnemyMonIndex +_080285D8: .4byte gBankAttacker +_080285DC: .4byte gBankTarget _080285E0: .4byte gBattleMons -_080285E4: .4byte gUnknown_02024C6C +_080285E4: .4byte gHitMarker thumb_func_end b_feature_update_destiny_bond thumb_func_start atkAB_802A458 atkAB_802A458: @ 80285E8 push {lr} bl b_feature_update_destiny_bond - ldr r1, _080285FC @ =gUnknown_02024C10 + ldr r1, _080285FC @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .align 2, 0 -_080285FC: .4byte gUnknown_02024C10 +_080285FC: .4byte gBattlescriptCurrInstr thumb_func_end atkAB_802A458 thumb_func_start atkAC_remaininghptopower atkAC_remaininghptopower: @ 8028600 push {lr} ldr r2, _08028654 @ =gBattleMons - ldr r0, _08028658 @ =gPlayerMonIndex + ldr r0, _08028658 @ =gBankAttacker ldrb r1, [r0] movs r0, 0x58 muls r1, r0 @@ -25148,13 +25148,13 @@ _0802862C: cmp r1, r0 bgt _0802862C _0802863A: - ldr r2, _08028660 @ =gUnknown_02024DEC + ldr r2, _08028660 @ =gDynamicBasePower ldr r1, _0802865C @ =gUnknown_081FAD26 adds r0, r3, 0x1 adds r0, r1 ldrb r0, [r0] strh r0, [r2] - ldr r1, _08028664 @ =gUnknown_02024C10 + ldr r1, _08028664 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -25162,10 +25162,10 @@ _0802863A: bx r0 .align 2, 0 _08028654: .4byte gBattleMons -_08028658: .4byte gPlayerMonIndex +_08028658: .4byte gBankAttacker _0802865C: .4byte gUnknown_081FAD26 -_08028660: .4byte gUnknown_02024DEC -_08028664: .4byte gUnknown_02024C10 +_08028660: .4byte gDynamicBasePower +_08028664: .4byte gBattlescriptCurrInstr thumb_func_end atkAC_remaininghptopower thumb_func_start sub_8028668 @@ -25176,8 +25176,8 @@ sub_8028668: @ 8028668 mov r5, r8 push {r5-r7} sub sp, 0x4 - ldr r4, _080287F8 @ =gUnknown_02024C34 - ldr r1, _080287FC @ =gEnemyMonIndex + ldr r4, _080287F8 @ =gLastUsedMove + ldr r1, _080287FC @ =gBankTarget ldrb r2, [r1] lsls r0, r2, 1 adds r0, r4 @@ -25192,7 +25192,7 @@ _08028688: bne _08028690 b _08028828 _08028690: - ldr r1, _08028804 @ =gUnknown_02024C98 + ldr r1, _08028804 @ =gStatuses3 lsls r0, r2, 2 adds r0, r1 ldr r0, [r0] @@ -25268,12 +25268,12 @@ _08028700: bge _0802871E adds r6, r0, 0 _0802871E: - ldr r1, _08028810 @ =gUnknown_030041C0 + ldr r1, _08028810 @ =gBattleTextBuff1 movs r5, 0xFD strb r5, [r1] movs r0, 0x2 strb r0, [r1, 0x1] - ldr r2, _080287F8 @ =gUnknown_02024C34 + ldr r2, _080287F8 @ =gLastUsedMove mov r3, r8 ldrb r0, [r3] lsls r0, 1 @@ -25288,7 +25288,7 @@ _0802871E: strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] - ldr r4, _08028814 @ =gUnknown_03004290 + ldr r4, _08028814 @ =gBattleTextBuff2 adds r0, r4, 0 adds r1, r6, 0 movs r2, 0 @@ -25311,11 +25311,11 @@ _0802871E: ldrb r0, [r1] subs r0, r6 strb r0, [r1] - ldr r4, _08028818 @ =gUnknown_02024A60 + ldr r4, _08028818 @ =gActiveBank mov r3, r8 ldrb r0, [r3] strb r0, [r4] - ldr r1, _0802881C @ =gUnknown_02024CA8 + ldr r1, _0802881C @ =gDisableStructs ldrb r3, [r4] lsls r0, r3, 3 subs r0, r3 @@ -25352,16 +25352,16 @@ _0802871E: movs r0, 0 movs r2, 0 movs r3, 0x1 - bl dp01_build_cmdbuf_x02_a_b_varargs + bl EmitSetAttributes ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution _080287D2: - ldr r1, _08028824 @ =gUnknown_02024C10 + ldr r1, _08028824 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] ldr r1, _0802880C @ =gBattleMons - ldr r0, _080287FC @ =gEnemyMonIndex + ldr r0, _080287FC @ =gBankTarget ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -25372,23 +25372,23 @@ _080287D2: cmp r0, 0 bne _08028842 adds r0, r2, 0 - bl b_cancel_multi_turn_move_maybe + bl CancelMultiTurnMoves b _08028842 .align 2, 0 -_080287F8: .4byte gUnknown_02024C34 -_080287FC: .4byte gEnemyMonIndex +_080287F8: .4byte gLastUsedMove +_080287FC: .4byte gBankTarget _08028800: .4byte 0x0000ffff -_08028804: .4byte gUnknown_02024C98 +_08028804: .4byte gStatuses3 _08028808: .4byte 0x000400c0 _0802880C: .4byte gBattleMons -_08028810: .4byte gUnknown_030041C0 -_08028814: .4byte gUnknown_03004290 -_08028818: .4byte gUnknown_02024A60 -_0802881C: .4byte gUnknown_02024CA8 +_08028810: .4byte gBattleTextBuff1 +_08028814: .4byte gBattleTextBuff2 +_08028818: .4byte gActiveBank +_0802881C: .4byte gDisableStructs _08028820: .4byte gBitTable -_08028824: .4byte gUnknown_02024C10 +_08028824: .4byte gBattlescriptCurrInstr _08028828: - ldr r3, _08028854 @ =gUnknown_02024C10 + ldr r3, _08028854 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -25411,7 +25411,7 @@ _08028842: pop {r0} bx r0 .align 2, 0 -_08028854: .4byte gUnknown_02024C10 +_08028854: .4byte gBattlescriptCurrInstr thumb_func_end sub_8028668 thumb_func_start sub_8028858 @@ -25424,17 +25424,17 @@ sub_8028858: @ 8028858 movs r4, 0 str r4, [sp, 0x4] movs r7, 0 - ldr r0, _080288AC @ =gUnknown_02024BE6 + ldr r0, _080288AC @ =gCurrentMove ldrh r0, [r0] cmp r0, 0xD7 beq _08028872 b _08028A26 _08028872: - ldr r5, _080288B0 @ =gUnknown_02024D1E + ldr r5, _080288B0 @ =gBattleCommunication strb r7, [r5, 0x5] - ldr r6, _080288B4 @ =gPlayerMonIndex + ldr r6, _080288B4 @ =gBankAttacker ldrb r0, [r6] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 ldr r1, _080288B8 @ =gEnemyParty mov r9, r1 @@ -25460,9 +25460,9 @@ _0802888C: str r7, [r0] b _080288D4 .align 2, 0 -_080288AC: .4byte gUnknown_02024BE6 -_080288B0: .4byte gUnknown_02024D1E -_080288B4: .4byte gPlayerMonIndex +_080288AC: .4byte gCurrentMove +_080288B0: .4byte gBattleCommunication +_080288B4: .4byte gBankAttacker _080288B8: .4byte gEnemyParty _080288BC: .4byte gPlayerParty _080288C0: .4byte gBattleMons @@ -25475,15 +25475,15 @@ _080288C4: orrs r0, r1 strb r0, [r5, 0x5] _080288D4: - ldr r4, _08028934 @ =gUnknown_02024A60 - ldr r0, _08028938 @ =gPlayerMonIndex + ldr r4, _08028934 @ =gActiveBank + ldr r0, _08028938 @ =gBankAttacker ldrb r0, [r0] - bl battle_get_per_side_status + bl GetBankIdentity movs r6, 0x2 eors r0, r6 lsls r0, 24 lsrs r0, 24 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI ldr r1, _0802893C @ =0x02000000 ldr r2, _08028940 @ =0x00016003 adds r1, r2 @@ -25495,7 +25495,7 @@ _080288D4: ands r0, r1 cmp r0, 0 beq _08028964 - ldr r0, _08028948 @ =gUnknown_02024C0C + ldr r0, _08028948 @ =gAbsentBankFlags ldrb r2, [r0] ldr r1, _0802894C @ =gBitTable ldrb r3, [r4] @@ -25521,19 +25521,19 @@ _080288D4: str r2, [r0] b _08028964 .align 2, 0 -_08028934: .4byte gUnknown_02024A60 -_08028938: .4byte gPlayerMonIndex +_08028934: .4byte gActiveBank +_08028938: .4byte gBankAttacker _0802893C: .4byte 0x02000000 _08028940: .4byte 0x00016003 _08028944: .4byte gBattleTypeFlags -_08028948: .4byte gUnknown_02024C0C +_08028948: .4byte gAbsentBankFlags _0802894C: .4byte gBitTable _08028950: .4byte gBattleMons _08028954: ldrb r1, [r1] adds r0, r3, 0 bl sub_81074C4 - ldr r1, _080289AC @ =gUnknown_02024D1E + ldr r1, _080289AC @ =gBattleCommunication ldrb r0, [r1, 0x5] orrs r0, r6 strb r0, [r1, 0x5] @@ -25562,8 +25562,8 @@ _0802896A: lsls r0, 1 cmp r5, r0 beq _08028A1E - ldr r2, _080289B4 @ =gUnknown_02024A6A - ldr r0, _080289B8 @ =gPlayerMonIndex + ldr r2, _080289B4 @ =gBattlePartyID + ldr r0, _080289B8 @ =gBankAttacker ldrb r1, [r0] lsls r0, r1, 1 adds r0, r2 @@ -25574,10 +25574,10 @@ _0802896A: muls r0, r1 b _080289EC .align 2, 0 -_080289AC: .4byte gUnknown_02024D1E +_080289AC: .4byte gBattleCommunication _080289B0: .4byte gBattleMons -_080289B4: .4byte gUnknown_02024A6A -_080289B8: .4byte gPlayerMonIndex +_080289B4: .4byte gBattlePartyID +_080289B8: .4byte gBankAttacker _080289BC: ldr r0, _080289F4 @ =gBattleTypeFlags ldrh r1, [r0] @@ -25585,14 +25585,14 @@ _080289BC: ands r0, r1 cmp r0, 0 beq _08028A04 - ldr r0, _080289F8 @ =gUnknown_02024A60 + ldr r0, _080289F8 @ =gActiveBank ldrb r3, [r0] lsls r0, r3, 1 adds r0, r2 ldrh r0, [r0] cmp r0, r6 bne _08028A04 - ldr r0, _080289FC @ =gUnknown_02024C0C + ldr r0, _080289FC @ =gAbsentBankFlags ldrb r1, [r0] ldr r2, _08028A00 @ =gBitTable lsls r0, r3, 2 @@ -25610,8 +25610,8 @@ _080289EC: b _08028A10 .align 2, 0 _080289F4: .4byte gBattleTypeFlags -_080289F8: .4byte gUnknown_02024A60 -_080289FC: .4byte gUnknown_02024C0C +_080289F8: .4byte gActiveBank +_080289FC: .4byte gAbsentBankFlags _08028A00: .4byte gBitTable _08028A04: adds r0, r5, 0 @@ -25633,12 +25633,12 @@ _08028A1E: ble _0802896A b _08028A7E _08028A26: - ldr r1, _08028AB4 @ =gUnknown_02024D1E + ldr r1, _08028AB4 @ =gBattleCommunication movs r0, 0x4 strb r0, [r1, 0x5] movs r7, 0x3F ldr r2, _08028AB8 @ =gBattleMons - ldr r1, _08028ABC @ =gPlayerMonIndex + ldr r1, _08028ABC @ =gBankAttacker ldrb r0, [r1] movs r6, 0x58 muls r0, r6 @@ -25647,13 +25647,13 @@ _08028A26: adds r0, r5 str r4, [r0] ldrb r0, [r1] - bl battle_get_per_side_status + bl GetBankIdentity movs r1, 0x2 eors r0, r1 lsls r0, 24 lsrs r0, 24 - bl battle_get_side_with_given_state - ldr r3, _08028AC0 @ =gUnknown_02024A60 + bl GetBankByPlayerAI + ldr r3, _08028AC0 @ =gActiveBank strb r0, [r3] ldr r0, _08028AC4 @ =gBattleTypeFlags ldrh r1, [r0] @@ -25661,7 +25661,7 @@ _08028A26: ands r0, r1 cmp r0, 0 beq _08028A7E - ldr r0, _08028AC8 @ =gUnknown_02024C0C + ldr r0, _08028AC8 @ =gAbsentBankFlags ldrb r2, [r0] ldr r1, _08028ACC @ =gBitTable ldrb r3, [r3] @@ -25676,8 +25676,8 @@ _08028A26: adds r0, r5 str r2, [r0] _08028A7E: - ldr r4, _08028AC0 @ =gUnknown_02024A60 - ldr r0, _08028ABC @ =gPlayerMonIndex + ldr r4, _08028AC0 @ =gActiveBank + ldr r0, _08028ABC @ =gBankAttacker ldrb r0, [r0] strb r0, [r4] add r1, sp, 0x4 @@ -25686,10 +25686,10 @@ _08028A7E: movs r1, 0x28 adds r2, r7, 0 movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs + bl EmitSetAttributes ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _08028AD0 @ =gUnknown_02024C10 + bl MarkBufferBankForExecution + ldr r1, _08028AD0 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -25701,21 +25701,21 @@ _08028A7E: pop {r0} bx r0 .align 2, 0 -_08028AB4: .4byte gUnknown_02024D1E +_08028AB4: .4byte gBattleCommunication _08028AB8: .4byte gBattleMons -_08028ABC: .4byte gPlayerMonIndex -_08028AC0: .4byte gUnknown_02024A60 +_08028ABC: .4byte gBankAttacker +_08028AC0: .4byte gActiveBank _08028AC4: .4byte gBattleTypeFlags -_08028AC8: .4byte gUnknown_02024C0C +_08028AC8: .4byte gAbsentBankFlags _08028ACC: .4byte gBitTable -_08028AD0: .4byte gUnknown_02024C10 +_08028AD0: .4byte gBattlescriptCurrInstr thumb_func_end sub_8028858 thumb_func_start sub_8028AD4 sub_8028AD4: @ 8028AD4 push {r4-r7,lr} ldr r7, _08028B24 @ =gBattleMons - ldr r0, _08028B28 @ =gEnemyMonIndex + ldr r0, _08028B28 @ =gBankTarget ldrb r3, [r0] movs r6, 0x58 adds r1, r3, 0 @@ -25730,7 +25730,7 @@ sub_8028AD4: @ 8028AD4 ands r0, r5 cmp r0, 0 bne _08028B06 - ldr r1, _08028B2C @ =gUnknown_02024C98 + ldr r1, _08028B2C @ =gStatuses3 lsls r0, r3, 2 adds r0, r1 ldr r0, [r0] @@ -25739,7 +25739,7 @@ sub_8028AD4: @ 8028AD4 cmp r0, 0 beq _08028B38 _08028B06: - ldr r3, _08028B34 @ =gUnknown_02024C10 + ldr r3, _08028B34 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -25755,15 +25755,15 @@ _08028B06: b _08028B5C .align 2, 0 _08028B24: .4byte gBattleMons -_08028B28: .4byte gEnemyMonIndex -_08028B2C: .4byte gUnknown_02024C98 +_08028B28: .4byte gBankTarget +_08028B2C: .4byte gStatuses3 _08028B30: .4byte 0x000400c0 -_08028B34: .4byte gUnknown_02024C10 +_08028B34: .4byte gBattlescriptCurrInstr _08028B38: orrs r2, r5 str r2, [r4] ldr r1, _08028B64 @ =gBattleMoveDamage - ldr r0, _08028B68 @ =gPlayerMonIndex + ldr r0, _08028B68 @ =gBankAttacker ldrb r0, [r0] muls r0, r6 adds r0, r7 @@ -25775,7 +25775,7 @@ _08028B38: movs r0, 0x1 str r0, [r1] _08028B54: - ldr r1, _08028B6C @ =gUnknown_02024C10 + ldr r1, _08028B6C @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] @@ -25785,21 +25785,21 @@ _08028B5C: bx r0 .align 2, 0 _08028B64: .4byte gBattleMoveDamage -_08028B68: .4byte gPlayerMonIndex -_08028B6C: .4byte gUnknown_02024C10 +_08028B68: .4byte gBankAttacker +_08028B6C: .4byte gBattlescriptCurrInstr thumb_func_end sub_8028AD4 thumb_func_start sub_8028B70 sub_8028B70: @ 8028B70 push {r4,lr} - ldr r4, _08028BC4 @ =gPlayerMonIndex + ldr r4, _08028BC4 @ =gBankAttacker ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r0, 24 - ldr r1, _08028BC8 @ =gUnknown_02024C80 + ldr r1, _08028BC8 @ =gSideTimer lsls r2, r0, 1 adds r0, r2, r0 lsls r0, 2 @@ -25807,7 +25807,7 @@ sub_8028B70: @ 8028B70 ldrb r0, [r3, 0x6] cmp r0, 0x3 bne _08028BD4 - ldr r2, _08028BCC @ =gUnknown_02024D68 + ldr r2, _08028BCC @ =gSpecialStatuses ldrb r1, [r4] lsls r0, r1, 2 adds r0, r1 @@ -25817,7 +25817,7 @@ sub_8028B70: @ 8028B70 movs r2, 0x20 orrs r1, r2 strb r1, [r0] - ldr r3, _08028BD0 @ =gUnknown_02024C10 + ldr r3, _08028BD0 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -25832,12 +25832,12 @@ sub_8028B70: @ 8028B70 str r1, [r3] b _08028BEE .align 2, 0 -_08028BC4: .4byte gPlayerMonIndex -_08028BC8: .4byte gUnknown_02024C80 -_08028BCC: .4byte gUnknown_02024D68 -_08028BD0: .4byte gUnknown_02024C10 +_08028BC4: .4byte gBankAttacker +_08028BC8: .4byte gSideTimer +_08028BCC: .4byte gSpecialStatuses +_08028BD0: .4byte gBattlescriptCurrInstr _08028BD4: - ldr r1, _08028BF4 @ =gUnknown_02024C7A + ldr r1, _08028BF4 @ =gSideAffecting adds r1, r2, r1 ldrh r2, [r1] movs r0, 0x10 @@ -25846,7 +25846,7 @@ _08028BD4: ldrb r0, [r3, 0x6] adds r0, 0x1 strb r0, [r3, 0x6] - ldr r1, _08028BF8 @ =gUnknown_02024C10 + ldr r1, _08028BF8 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] @@ -25855,14 +25855,14 @@ _08028BEE: pop {r0} bx r0 .align 2, 0 -_08028BF4: .4byte gUnknown_02024C7A -_08028BF8: .4byte gUnknown_02024C10 +_08028BF4: .4byte gSideAffecting +_08028BF8: .4byte gBattlescriptCurrInstr thumb_func_end sub_8028B70 thumb_func_start sub_8028BFC sub_8028BFC: @ 8028BFC ldr r1, _08028C20 @ =gBattleMons - ldr r0, _08028C24 @ =gEnemyMonIndex + ldr r0, _08028C24 @ =gBankTarget ldrb r2, [r0] movs r0, 0x58 muls r2, r0 @@ -25873,15 +25873,15 @@ sub_8028BFC: @ 8028BFC lsls r1, 22 orrs r0, r1 str r0, [r2] - ldr r1, _08028C28 @ =gUnknown_02024C10 + ldr r1, _08028C28 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _08028C20: .4byte gBattleMons -_08028C24: .4byte gEnemyMonIndex -_08028C28: .4byte gUnknown_02024C10 +_08028C24: .4byte gBankTarget +_08028C28: .4byte gBattlescriptCurrInstr thumb_func_end sub_8028BFC thumb_func_start atkB2_setperishsong @@ -25892,9 +25892,9 @@ atkB2_setperishsong: @ 8028C2C push {r6,r7} movs r6, 0 movs r3, 0 - ldr r0, _08028C70 @ =gUnknown_02024A68 + ldr r0, _08028C70 @ =gNoOfAllBanks adds r7, r0, 0 - ldr r0, _08028C74 @ =gPlayerMonIndex + ldr r0, _08028C74 @ =gBankAttacker mov r8, r0 ldrb r1, [r7] cmp r6, r1 @@ -25902,10 +25902,10 @@ atkB2_setperishsong: @ 8028C2C movs r5, 0x20 ldr r0, _08028C78 @ =gBattleMons mov r12, r0 - ldr r0, _08028C7C @ =gUnknown_02024CA8 + ldr r0, _08028C7C @ =gDisableStructs adds r4, r0, 0 adds r4, 0xF - ldr r2, _08028C80 @ =gUnknown_02024C98 + ldr r2, _08028C80 @ =gStatuses3 _08028C54: ldr r1, [r2] adds r0, r1, 0 @@ -25923,11 +25923,11 @@ _08028C6C: adds r6, 0x1 b _08028C8C .align 2, 0 -_08028C70: .4byte gUnknown_02024A68 -_08028C74: .4byte gPlayerMonIndex +_08028C70: .4byte gNoOfAllBanks +_08028C74: .4byte gBankAttacker _08028C78: .4byte gBattleMons -_08028C7C: .4byte gUnknown_02024CA8 -_08028C80: .4byte gUnknown_02024C98 +_08028C7C: .4byte gDisableStructs +_08028C80: .4byte gStatuses3 _08028C84: orrs r1, r5 str r1, [r2] @@ -25944,11 +25944,11 @@ _08028C98: mov r1, r8 ldrb r0, [r1] bl sub_80153D0 - ldr r0, _08028CC4 @ =gUnknown_02024A68 + ldr r0, _08028CC4 @ =gNoOfAllBanks ldrb r0, [r0] cmp r6, r0 bne _08028CCC - ldr r3, _08028CC8 @ =gUnknown_02024C10 + ldr r3, _08028CC8 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -25963,10 +25963,10 @@ _08028C98: str r1, [r3] b _08028CD4 .align 2, 0 -_08028CC4: .4byte gUnknown_02024A68 -_08028CC8: .4byte gUnknown_02024C10 +_08028CC4: .4byte gNoOfAllBanks +_08028CC8: .4byte gBattlescriptCurrInstr _08028CCC: - ldr r1, _08028CE0 @ =gUnknown_02024C10 + ldr r1, _08028CE0 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] @@ -25978,7 +25978,7 @@ _08028CD4: pop {r0} bx r0 .align 2, 0 -_08028CE0: .4byte gUnknown_02024C10 +_08028CE0: .4byte gBattlescriptCurrInstr thumb_func_end atkB2_setperishsong thumb_func_start atkB3_rolloutdamagecalculation @@ -25993,21 +25993,21 @@ atkB3_rolloutdamagecalculation: @ 8028CE4 ands r0, r1 cmp r0, 0 beq _08028D18 - ldr r0, _08028D0C @ =gPlayerMonIndex + ldr r0, _08028D0C @ =gBankAttacker ldrb r0, [r0] - bl b_cancel_multi_turn_move_maybe - ldr r1, _08028D10 @ =gUnknown_02024C10 + bl CancelMultiTurnMoves + ldr r1, _08028D10 @ =gBattlescriptCurrInstr ldr r0, _08028D14 @ =BattleScript_1D6F74 str r0, [r1] b _08028E30 .align 2, 0 _08028D08: .4byte gBattleMoveFlags -_08028D0C: .4byte gPlayerMonIndex -_08028D10: .4byte gUnknown_02024C10 +_08028D0C: .4byte gBankAttacker +_08028D10: .4byte gBattlescriptCurrInstr _08028D14: .4byte BattleScript_1D6F74 _08028D18: ldr r2, _08028E3C @ =gBattleMons - ldr r1, _08028E40 @ =gPlayerMonIndex + ldr r1, _08028E40 @ =gBankAttacker ldrb r3, [r1] movs r5, 0x58 adds r0, r3, 0 @@ -26021,9 +26021,9 @@ _08028D18: ands r0, r7 adds r6, r1, 0 mov r9, r2 - ldr r1, _08028E44 @ =gUnknown_02024CA8 + ldr r1, _08028E44 @ =gDisableStructs mov r12, r1 - ldr r2, _08028E48 @ =gUnknown_02024BE6 + ldr r2, _08028E48 @ =gCurrentMove mov r8, r2 cmp r0, 0 bne _08028D8A @@ -26056,7 +26056,7 @@ _08028D18: ldr r0, [r1] orrs r0, r7 str r0, [r1] - ldr r1, _08028E4C @ =gUnknown_02024C54 + ldr r1, _08028E4C @ =gLockedMove ldrb r0, [r6] lsls r0, 1 adds r0, r1 @@ -26091,7 +26091,7 @@ _08028D8A: ands r0, r2 str r0, [r1] _08028DBE: - ldr r3, _08028E54 @ =gUnknown_02024DEC + ldr r3, _08028E54 @ =gDynamicBasePower ldr r2, _08028E58 @ =gBattleMoves mov r0, r8 ldrh r1, [r0] @@ -26113,7 +26113,7 @@ _08028DBE: lsrs r0, 28 movs r1, 0x5 subs r1, r0 - ldr r7, _08028E5C @ =gUnknown_02024C10 + ldr r7, _08028E5C @ =gBattlescriptCurrInstr adds r5, r3, 0 cmp r2, r1 bge _08028E0C @@ -26160,21 +26160,21 @@ _08028E30: bx r0 .align 2, 0 _08028E3C: .4byte gBattleMons -_08028E40: .4byte gPlayerMonIndex -_08028E44: .4byte gUnknown_02024CA8 -_08028E48: .4byte gUnknown_02024BE6 -_08028E4C: .4byte gUnknown_02024C54 +_08028E40: .4byte gBankAttacker +_08028E44: .4byte gDisableStructs +_08028E48: .4byte gCurrentMove +_08028E4C: .4byte gLockedMove _08028E50: .4byte 0xffffefff -_08028E54: .4byte gUnknown_02024DEC +_08028E54: .4byte gDynamicBasePower _08028E58: .4byte gBattleMoves -_08028E5C: .4byte gUnknown_02024C10 +_08028E5C: .4byte gBattlescriptCurrInstr thumb_func_end atkB3_rolloutdamagecalculation thumb_func_start atkB4_jumpifconfusedandattackmaxed atkB4_jumpifconfusedandattackmaxed: @ 8028E60 push {r4,r5,lr} ldr r5, _08028EB0 @ =gBattleMons - ldr r0, _08028EB4 @ =gEnemyMonIndex + ldr r0, _08028EB4 @ =gBankTarget ldrb r1, [r0] movs r0, 0x58 adds r3, r1, 0 @@ -26185,7 +26185,7 @@ atkB4_jumpifconfusedandattackmaxed: @ 8028E60 ldr r0, [r0] movs r1, 0x7 ands r0, r1 - ldr r4, _08028EB8 @ =gUnknown_02024C10 + ldr r4, _08028EB8 @ =gBattlescriptCurrInstr cmp r0, 0 beq _08028EBC ldr r2, [r4] @@ -26213,8 +26213,8 @@ atkB4_jumpifconfusedandattackmaxed: @ 8028E60 b _08028EC2 .align 2, 0 _08028EB0: .4byte gBattleMons -_08028EB4: .4byte gEnemyMonIndex -_08028EB8: .4byte gUnknown_02024C10 +_08028EB4: .4byte gBankTarget +_08028EB8: .4byte gBattlescriptCurrInstr _08028EBC: ldr r0, [r4] adds r0, 0x6 @@ -26234,8 +26234,8 @@ sub_8028EC8: @ 8028EC8 ands r0, r1 cmp r0, 0 beq _08028F04 - ldr r2, _08028EF4 @ =gUnknown_02024CA8 - ldr r0, _08028EF8 @ =gPlayerMonIndex + ldr r2, _08028EF4 @ =gDisableStructs + ldr r0, _08028EF8 @ =gBankAttacker ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 @@ -26243,19 +26243,19 @@ sub_8028EC8: @ 8028EC8 adds r0, r2 movs r1, 0 strb r1, [r0, 0x10] - ldr r1, _08028EFC @ =gUnknown_02024C10 + ldr r1, _08028EFC @ =gBattlescriptCurrInstr ldr r0, _08028F00 @ =BattleScript_1D6F74 str r0, [r1] b _08028F5C .align 2, 0 _08028EF0: .4byte gBattleMoveFlags -_08028EF4: .4byte gUnknown_02024CA8 -_08028EF8: .4byte gPlayerMonIndex -_08028EFC: .4byte gUnknown_02024C10 +_08028EF4: .4byte gDisableStructs +_08028EF8: .4byte gBankAttacker +_08028EFC: .4byte gBattlescriptCurrInstr _08028F00: .4byte BattleScript_1D6F74 _08028F04: - ldr r5, _08028F64 @ =gUnknown_02024CA8 - ldr r4, _08028F68 @ =gPlayerMonIndex + ldr r5, _08028F64 @ =gDisableStructs + ldr r4, _08028F68 @ =gBankAttacker ldrb r1, [r4] lsls r0, r1, 3 subs r0, r1 @@ -26267,9 +26267,9 @@ _08028F04: adds r0, 0x1 strb r0, [r1, 0x10] _08028F1C: - ldr r3, _08028F6C @ =gUnknown_02024DEC + ldr r3, _08028F6C @ =gDynamicBasePower ldr r2, _08028F70 @ =gBattleMoves - ldr r0, _08028F74 @ =gUnknown_02024BE6 + ldr r0, _08028F74 @ =gCurrentMove ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -26283,7 +26283,7 @@ _08028F1C: subs r0, r1 lsls r0, 2 adds r0, r5 - ldr r4, _08028F78 @ =gUnknown_02024C10 + ldr r4, _08028F78 @ =gBattlescriptCurrInstr ldrb r1, [r0, 0x10] cmp r2, r1 bge _08028F56 @@ -26306,19 +26306,19 @@ _08028F5C: pop {r0} bx r0 .align 2, 0 -_08028F64: .4byte gUnknown_02024CA8 -_08028F68: .4byte gPlayerMonIndex -_08028F6C: .4byte gUnknown_02024DEC +_08028F64: .4byte gDisableStructs +_08028F68: .4byte gBankAttacker +_08028F6C: .4byte gDynamicBasePower _08028F70: .4byte gBattleMoves -_08028F74: .4byte gUnknown_02024BE6 -_08028F78: .4byte gUnknown_02024C10 +_08028F74: .4byte gCurrentMove +_08028F78: .4byte gBattlescriptCurrInstr thumb_func_end sub_8028EC8 thumb_func_start atkB6_happinesstodamagecalculation atkB6_happinesstodamagecalculation: @ 8028F7C push {r4,lr} ldr r2, _08028FA8 @ =gBattleMoves - ldr r0, _08028FAC @ =gUnknown_02024BE6 + ldr r0, _08028FAC @ =gCurrentMove ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -26327,9 +26327,9 @@ atkB6_happinesstodamagecalculation: @ 8028F7C ldrb r0, [r0] cmp r0, 0x79 bne _08028FBC - ldr r4, _08028FB0 @ =gUnknown_02024DEC + ldr r4, _08028FB0 @ =gDynamicBasePower ldr r2, _08028FB4 @ =gBattleMons - ldr r0, _08028FB8 @ =gPlayerMonIndex + ldr r0, _08028FB8 @ =gBankAttacker ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -26339,14 +26339,14 @@ atkB6_happinesstodamagecalculation: @ 8028F7C b _08028FD2 .align 2, 0 _08028FA8: .4byte gBattleMoves -_08028FAC: .4byte gUnknown_02024BE6 -_08028FB0: .4byte gUnknown_02024DEC +_08028FAC: .4byte gCurrentMove +_08028FB0: .4byte gDynamicBasePower _08028FB4: .4byte gBattleMons -_08028FB8: .4byte gPlayerMonIndex +_08028FB8: .4byte gBankAttacker _08028FBC: - ldr r4, _08028FF0 @ =gUnknown_02024DEC + ldr r4, _08028FF0 @ =gDynamicBasePower ldr r2, _08028FF4 @ =gBattleMons - ldr r0, _08028FF8 @ =gPlayerMonIndex + ldr r0, _08028FF8 @ =gBankAttacker ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -26362,7 +26362,7 @@ _08028FD2: movs r1, 0x19 bl __divsi3 strh r0, [r4] - ldr r1, _08028FFC @ =gUnknown_02024C10 + ldr r1, _08028FFC @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -26370,10 +26370,10 @@ _08028FD2: pop {r0} bx r0 .align 2, 0 -_08028FF0: .4byte gUnknown_02024DEC +_08028FF0: .4byte gDynamicBasePower _08028FF4: .4byte gBattleMons -_08028FF8: .4byte gPlayerMonIndex -_08028FFC: .4byte gUnknown_02024C10 +_08028FF8: .4byte gBankAttacker +_08028FFC: .4byte gBattlescriptCurrInstr thumb_func_end atkB6_happinesstodamagecalculation thumb_func_start atkB7_presentdamagecalculation @@ -26384,34 +26384,34 @@ atkB7_presentdamagecalculation: @ 8029000 ands r4, r0 cmp r4, 0x65 bgt _0802901C - ldr r1, _08029018 @ =gUnknown_02024DEC + ldr r1, _08029018 @ =gDynamicBasePower movs r0, 0x28 strh r0, [r1] b _0802905E .align 2, 0 -_08029018: .4byte gUnknown_02024DEC +_08029018: .4byte gDynamicBasePower _0802901C: cmp r4, 0xB1 bgt _0802902C - ldr r1, _08029028 @ =gUnknown_02024DEC + ldr r1, _08029028 @ =gDynamicBasePower movs r0, 0x50 strh r0, [r1] b _0802905E .align 2, 0 -_08029028: .4byte gUnknown_02024DEC +_08029028: .4byte gDynamicBasePower _0802902C: cmp r4, 0xCB bgt _0802903C - ldr r1, _08029038 @ =gUnknown_02024DEC + ldr r1, _08029038 @ =gDynamicBasePower movs r0, 0x78 strh r0, [r1] b _0802905E .align 2, 0 -_08029038: .4byte gUnknown_02024DEC +_08029038: .4byte gDynamicBasePower _0802903C: ldr r3, _08029068 @ =gBattleMoveDamage ldr r2, _0802906C @ =gBattleMons - ldr r0, _08029070 @ =gEnemyMonIndex + ldr r0, _08029070 @ =gBankTarget ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -26430,18 +26430,18 @@ _08029058: _0802905E: cmp r4, 0xCB bgt _0802907C - ldr r1, _08029074 @ =gUnknown_02024C10 + ldr r1, _08029074 @ =gBattlescriptCurrInstr ldr r0, _08029078 @ =BattleScript_1D6F44 b _080290AC .align 2, 0 _08029068: .4byte gBattleMoveDamage _0802906C: .4byte gBattleMons -_08029070: .4byte gEnemyMonIndex -_08029074: .4byte gUnknown_02024C10 +_08029070: .4byte gBankTarget +_08029074: .4byte gBattlescriptCurrInstr _08029078: .4byte BattleScript_1D6F44 _0802907C: ldr r2, _08029098 @ =gBattleMons - ldr r0, _0802909C @ =gEnemyMonIndex + ldr r0, _0802909C @ =gBankTarget ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -26450,16 +26450,16 @@ _0802907C: ldrh r0, [r0, 0x28] cmp r1, r0 bne _080290A8 - ldr r1, _080290A0 @ =gUnknown_02024C10 + ldr r1, _080290A0 @ =gBattlescriptCurrInstr ldr r0, _080290A4 @ =BattleScript_1D83B5 b _080290AC .align 2, 0 _08029098: .4byte gBattleMons -_0802909C: .4byte gEnemyMonIndex -_080290A0: .4byte gUnknown_02024C10 +_0802909C: .4byte gBankTarget +_080290A0: .4byte gBattlescriptCurrInstr _080290A4: .4byte BattleScript_1D83B5 _080290A8: - ldr r1, _080290B4 @ =gUnknown_02024C10 + ldr r1, _080290B4 @ =gBattlescriptCurrInstr ldr r0, _080290B8 @ =BattleScript_1D839B _080290AC: str r0, [r1] @@ -26467,17 +26467,17 @@ _080290AC: pop {r0} bx r0 .align 2, 0 -_080290B4: .4byte gUnknown_02024C10 +_080290B4: .4byte gBattlescriptCurrInstr _080290B8: .4byte BattleScript_1D839B thumb_func_end atkB7_presentdamagecalculation thumb_func_start sub_80290BC sub_80290BC: @ 80290BC push {r4-r6,lr} - ldr r4, _080290F0 @ =gPlayerMonIndex + ldr r4, _080290F0 @ =gBankAttacker ldrb r0, [r4] - bl battle_get_per_side_status - ldr r6, _080290F4 @ =gUnknown_02024C7A + bl GetBankIdentity + ldr r6, _080290F4 @ =gSideAffecting movs r5, 0x1 adds r1, r5, 0 ands r1, r0 @@ -26493,18 +26493,18 @@ sub_80290BC: @ 80290BC movs r1, 0x1 orrs r0, r1 strb r0, [r2] - ldr r1, _080290FC @ =gUnknown_02024D1E + ldr r1, _080290FC @ =gBattleCommunication movs r0, 0 strb r0, [r1, 0x5] b _08029132 .align 2, 0 -_080290F0: .4byte gPlayerMonIndex -_080290F4: .4byte gUnknown_02024C7A +_080290F0: .4byte gBankAttacker +_080290F4: .4byte gSideAffecting _080290F8: .4byte gBattleMoveFlags -_080290FC: .4byte gUnknown_02024D1E +_080290FC: .4byte gBattleCommunication _08029100: ldrb r0, [r4] - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r5, 0 ands r1, r0 lsls r1, 1 @@ -26514,8 +26514,8 @@ _08029100: orrs r0, r2 strh r0, [r1] ldrb r0, [r4] - bl battle_get_per_side_status - ldr r2, _08029140 @ =gUnknown_02024C80 + bl GetBankIdentity + ldr r2, _08029140 @ =gSideTimer adds r1, r5, 0 ands r1, r0 lsls r0, r1, 1 @@ -26524,10 +26524,10 @@ _08029100: adds r0, r2 movs r1, 0x5 strb r1, [r0, 0x7] - ldr r0, _08029144 @ =gUnknown_02024D1E + ldr r0, _08029144 @ =gBattleCommunication strb r1, [r0, 0x5] _08029132: - ldr r1, _08029148 @ =gUnknown_02024C10 + ldr r1, _08029148 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -26535,9 +26535,9 @@ _08029132: pop {r0} bx r0 .align 2, 0 -_08029140: .4byte gUnknown_02024C80 -_08029144: .4byte gUnknown_02024D1E -_08029148: .4byte gUnknown_02024C10 +_08029140: .4byte gSideTimer +_08029144: .4byte gBattleCommunication +_08029148: .4byte gBattlescriptCurrInstr thumb_func_end sub_80290BC thumb_func_start atkB9_magnitudedamagecalculation @@ -26554,70 +26554,70 @@ atkB9_magnitudedamagecalculation: @ 802914C lsrs r3, r0, 16 cmp r3, 0x4 bgt _08029178 - ldr r1, _08029174 @ =gUnknown_02024DEC + ldr r1, _08029174 @ =gDynamicBasePower movs r0, 0xA strh r0, [r1] movs r3, 0x4 b _080291E4 .align 2, 0 -_08029174: .4byte gUnknown_02024DEC +_08029174: .4byte gDynamicBasePower _08029178: cmp r3, 0xE bgt _0802918C - ldr r1, _08029188 @ =gUnknown_02024DEC + ldr r1, _08029188 @ =gDynamicBasePower movs r0, 0x1E strh r0, [r1] movs r3, 0x5 b _080291E4 .align 2, 0 -_08029188: .4byte gUnknown_02024DEC +_08029188: .4byte gDynamicBasePower _0802918C: cmp r3, 0x22 bgt _080291A0 - ldr r1, _0802919C @ =gUnknown_02024DEC + ldr r1, _0802919C @ =gDynamicBasePower movs r0, 0x32 strh r0, [r1] movs r3, 0x6 b _080291E4 .align 2, 0 -_0802919C: .4byte gUnknown_02024DEC +_0802919C: .4byte gDynamicBasePower _080291A0: cmp r3, 0x40 bgt _080291B4 - ldr r1, _080291B0 @ =gUnknown_02024DEC + ldr r1, _080291B0 @ =gDynamicBasePower movs r0, 0x46 strh r0, [r1] movs r3, 0x7 b _080291E4 .align 2, 0 -_080291B0: .4byte gUnknown_02024DEC +_080291B0: .4byte gDynamicBasePower _080291B4: cmp r3, 0x54 bgt _080291C8 - ldr r1, _080291C4 @ =gUnknown_02024DEC + ldr r1, _080291C4 @ =gDynamicBasePower movs r0, 0x5A strh r0, [r1] movs r3, 0x8 b _080291E4 .align 2, 0 -_080291C4: .4byte gUnknown_02024DEC +_080291C4: .4byte gDynamicBasePower _080291C8: cmp r3, 0x5E bgt _080291DC - ldr r1, _080291D8 @ =gUnknown_02024DEC + ldr r1, _080291D8 @ =gDynamicBasePower movs r0, 0x6E strh r0, [r1] movs r3, 0x9 b _080291E4 .align 2, 0 -_080291D8: .4byte gUnknown_02024DEC +_080291D8: .4byte gDynamicBasePower _080291DC: - ldr r1, _08029250 @ =gUnknown_02024DEC + ldr r1, _08029250 @ =gDynamicBasePower movs r0, 0x96 strh r0, [r1] movs r3, 0xA _080291E4: - ldr r1, _08029254 @ =gUnknown_030041C0 + ldr r1, _08029254 @ =gBattleTextBuff1 movs r2, 0 movs r0, 0xFD strb r0, [r1] @@ -26629,21 +26629,21 @@ _080291E4: strb r3, [r1, 0x4] movs r0, 0xFF strb r0, [r1, 0x5] - ldr r1, _08029258 @ =gEnemyMonIndex + ldr r1, _08029258 @ =gBankTarget strb r2, [r1] - ldr r0, _0802925C @ =gUnknown_02024A68 + ldr r0, _0802925C @ =gNoOfAllBanks ldrb r3, [r0] adds r6, r1, 0 - ldr r0, _08029260 @ =gUnknown_02024C10 + ldr r0, _08029260 @ =gBattlescriptCurrInstr mov r8, r0 cmp r2, r3 bcs _0802923C adds r4, r6, 0 - ldr r0, _08029264 @ =gPlayerMonIndex + ldr r0, _08029264 @ =gBankAttacker ldrb r5, [r0] ldr r1, _08029268 @ =gBitTable mov r12, r1 - ldr r7, _0802926C @ =gUnknown_02024C0C + ldr r7, _0802926C @ =gAbsentBankFlags _0802921A: ldrb r2, [r4] cmp r2, r5 @@ -26674,14 +26674,14 @@ _0802923C: pop {r0} bx r0 .align 2, 0 -_08029250: .4byte gUnknown_02024DEC -_08029254: .4byte gUnknown_030041C0 -_08029258: .4byte gEnemyMonIndex -_0802925C: .4byte gUnknown_02024A68 -_08029260: .4byte gUnknown_02024C10 -_08029264: .4byte gPlayerMonIndex +_08029250: .4byte gDynamicBasePower +_08029254: .4byte gBattleTextBuff1 +_08029258: .4byte gBankTarget +_0802925C: .4byte gNoOfAllBanks +_08029260: .4byte gBattlescriptCurrInstr +_08029264: .4byte gBankAttacker _08029268: .4byte gBitTable -_0802926C: .4byte gUnknown_02024C0C +_0802926C: .4byte gAbsentBankFlags thumb_func_end atkB9_magnitudedamagecalculation thumb_func_start sub_8029270 @@ -26691,50 +26691,50 @@ sub_8029270: @ 8029270 mov r6, r9 mov r5, r8 push {r5-r7} - ldr r0, _08029294 @ =gUnknown_02024C0E + ldr r0, _08029294 @ =gMultiHitCounter ldrb r0, [r0] cmp r0, 0x1 bne _080292A0 - ldr r0, _08029298 @ =gPlayerMonIndex + ldr r0, _08029298 @ =gBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0802929C movs r0, 0x1 b _080292BA .align 2, 0 -_08029294: .4byte gUnknown_02024C0E -_08029298: .4byte gPlayerMonIndex +_08029294: .4byte gMultiHitCounter +_08029298: .4byte gBankAttacker _0802929C: movs r0, 0 b _080292BA _080292A0: - ldr r0, _080292B4 @ =gPlayerMonIndex + ldr r0, _080292B4 @ =gBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080292B8 movs r0, 0x3 b _080292BA .align 2, 0 -_080292B4: .4byte gPlayerMonIndex +_080292B4: .4byte gBankAttacker _080292B8: movs r0, 0x2 _080292BA: - bl battle_get_side_with_given_state - ldr r1, _0802937C @ =gEnemyMonIndex + bl GetBankByPlayerAI + ldr r1, _0802937C @ =gBankTarget strb r0, [r1] - ldr r0, _08029380 @ =gUnknown_02024C18 - ldr r1, _0802937C @ =gEnemyMonIndex + ldr r0, _08029380 @ =gActionForBanks + ldr r1, _0802937C @ =gBankTarget mov r9, r1 ldrb r3, [r1] adds r0, r3, r0 ldrb r0, [r0] cmp r0, 0 bne _080293BC - ldr r5, _08029384 @ =gPlayerMonIndex + ldr r5, _08029384 @ =gBankAttacker ldr r0, _08029388 @ =0x02000000 ldr r2, _0802938C @ =0x00016010 adds r1, r3, r2 @@ -26762,7 +26762,7 @@ _080292BA: ldrh r0, [r0, 0x28] cmp r0, 0 beq _080293BC - ldr r0, _08029394 @ =gUnknown_02024CA8 + ldr r0, _08029394 @ =gDisableStructs lsls r1, r3, 3 subs r1, r3 lsls r1, 2 @@ -26771,22 +26771,22 @@ _080292BA: lsls r0, 31 cmp r0, 0 bne _080293BC - ldr r0, _08029398 @ =gUnknown_02024C60 + ldr r0, _08029398 @ =gChosenMovesByBanks lsls r1, r3, 1 adds r1, r0 ldrh r0, [r1] cmp r0, 0xE4 bne _080293BC movs r1, 0 - ldr r0, _0802939C @ =gUnknown_02024A68 - ldr r7, _080293A0 @ =gUnknown_02024BE6 + ldr r0, _0802939C @ =gNoOfAllBanks + ldr r7, _080293A0 @ =gCurrentMove mov r8, r7 - ldr r2, _080293A4 @ =gUnknown_02024C6C + ldr r2, _080293A4 @ =gHitMarker mov r12, r2 ldrb r7, [r0] cmp r1, r7 bge _0802935A - ldr r6, _080293A8 @ =gUnknown_02024A7A + ldr r6, _080293A8 @ =gTurnOrder mov r5, r9 ldr r4, _080293AC @ =gUnknown_02024A76 movs r3, 0xB @@ -26808,7 +26808,7 @@ _0802935A: movs r0, 0xE4 mov r1, r8 strh r0, [r1] - ldr r2, _080293B0 @ =gUnknown_02024C10 + ldr r2, _080293B0 @ =gBattlescriptCurrInstr ldr r0, [r2] adds r0, 0x5 str r0, [r2] @@ -26823,24 +26823,24 @@ _0802935A: str r0, [r7] b _080293D6 .align 2, 0 -_0802937C: .4byte gEnemyMonIndex -_08029380: .4byte gUnknown_02024C18 -_08029384: .4byte gPlayerMonIndex +_0802937C: .4byte gBankTarget +_08029380: .4byte gActionForBanks +_08029384: .4byte gBankAttacker _08029388: .4byte 0x02000000 _0802938C: .4byte 0x00016010 _08029390: .4byte gBattleMons -_08029394: .4byte gUnknown_02024CA8 -_08029398: .4byte gUnknown_02024C60 -_0802939C: .4byte gUnknown_02024A68 -_080293A0: .4byte gUnknown_02024BE6 -_080293A4: .4byte gUnknown_02024C6C -_080293A8: .4byte gUnknown_02024A7A +_08029394: .4byte gDisableStructs +_08029398: .4byte gChosenMovesByBanks +_0802939C: .4byte gNoOfAllBanks +_080293A0: .4byte gCurrentMove +_080293A4: .4byte gHitMarker +_080293A8: .4byte gTurnOrder _080293AC: .4byte gUnknown_02024A76 -_080293B0: .4byte gUnknown_02024C10 +_080293B0: .4byte gBattlescriptCurrInstr _080293B4: .4byte 0x00016002 _080293B8: .4byte 0xfffffbff _080293BC: - ldr r3, _080293E4 @ =gUnknown_02024C10 + ldr r3, _080293E4 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -26862,7 +26862,7 @@ _080293D6: pop {r0} bx r0 .align 2, 0 -_080293E4: .4byte gUnknown_02024C10 +_080293E4: .4byte gBattlescriptCurrInstr thumb_func_end sub_8029270 thumb_func_start sub_80293E8 @@ -26879,42 +26879,42 @@ sub_80293E8: @ 80293E8 movs r1, 0x1 orrs r0, r1 strb r0, [r2] - ldr r1, _08029410 @ =gUnknown_02024D1E + ldr r1, _08029410 @ =gBattleCommunication movs r0, 0x2 strb r0, [r1, 0x5] b _08029426 .align 2, 0 _08029408: .4byte gBattleWeather _0802940C: .4byte gBattleMoveFlags -_08029410: .4byte gUnknown_02024D1E +_08029410: .4byte gBattleCommunication _08029414: movs r0, 0x20 strh r0, [r2] - ldr r1, _08029434 @ =gUnknown_02024D1E + ldr r1, _08029434 @ =gBattleCommunication movs r0, 0x4 strb r0, [r1, 0x5] - ldr r0, _08029438 @ =gUnknown_02024DBC + ldr r0, _08029438 @ =gWishFutureKnock adds r0, 0x28 movs r1, 0x5 strb r1, [r0] _08029426: - ldr r1, _0802943C @ =gUnknown_02024C10 + ldr r1, _0802943C @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .align 2, 0 -_08029434: .4byte gUnknown_02024D1E -_08029438: .4byte gUnknown_02024DBC -_0802943C: .4byte gUnknown_02024C10 +_08029434: .4byte gBattleCommunication +_08029438: .4byte gWishFutureKnock +_0802943C: .4byte gBattlescriptCurrInstr thumb_func_end sub_80293E8 thumb_func_start atkBC_maxattackhalvehp atkBC_maxattackhalvehp: @ 8029440 push {r4,r5,lr} ldr r5, _0802948C @ =gBattleMons - ldr r4, _08029490 @ =gPlayerMonIndex + ldr r4, _08029490 @ =gBankAttacker ldrb r0, [r4] movs r3, 0x58 muls r0, r3 @@ -26946,18 +26946,18 @@ _08029458: movs r0, 0x1 str r0, [r1] _08029480: - ldr r1, _08029498 @ =gUnknown_02024C10 + ldr r1, _08029498 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _080294B6 .align 2, 0 _0802948C: .4byte gBattleMons -_08029490: .4byte gPlayerMonIndex +_08029490: .4byte gBankAttacker _08029494: .4byte gBattleMoveDamage -_08029498: .4byte gUnknown_02024C10 +_08029498: .4byte gBattlescriptCurrInstr _0802949C: - ldr r3, _080294BC @ =gUnknown_02024C10 + ldr r3, _080294BC @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -26975,18 +26975,18 @@ _080294B6: pop {r0} bx r0 .align 2, 0 -_080294BC: .4byte gUnknown_02024C10 +_080294BC: .4byte gBattlescriptCurrInstr thumb_func_end atkBC_maxattackhalvehp thumb_func_start atkBD_copyfoestats atkBD_copyfoestats: @ 80294C0 push {r4-r7,lr} movs r2, 0 - ldr r7, _080294F8 @ =gUnknown_02024C10 - ldr r6, _080294FC @ =gPlayerMonIndex + ldr r7, _080294F8 @ =gBattlescriptCurrInstr + ldr r6, _080294FC @ =gBankAttacker movs r4, 0x58 ldr r3, _08029500 @ =gUnknown_02024A98 - ldr r5, _08029504 @ =gEnemyMonIndex + ldr r5, _08029504 @ =gBankTarget _080294CE: ldrb r0, [r6] adds r1, r0, 0 @@ -27009,17 +27009,17 @@ _080294CE: pop {r0} bx r0 .align 2, 0 -_080294F8: .4byte gUnknown_02024C10 -_080294FC: .4byte gPlayerMonIndex +_080294F8: .4byte gBattlescriptCurrInstr +_080294FC: .4byte gBankAttacker _08029500: .4byte gUnknown_02024A98 -_08029504: .4byte gEnemyMonIndex +_08029504: .4byte gBankTarget thumb_func_end atkBD_copyfoestats thumb_func_start atkBE_breakfree atkBE_breakfree: @ 8029508 push {r4,r5,lr} ldr r1, _08029570 @ =gBattleMons - ldr r5, _08029574 @ =gPlayerMonIndex + ldr r5, _08029574 @ =gBankAttacker ldrb r2, [r5] movs r0, 0x58 muls r0, r2 @@ -27034,7 +27034,7 @@ atkBE_breakfree: @ 8029508 ldr r0, _08029578 @ =0xffff1fff ands r1, r0 str r1, [r3] - ldr r1, _0802957C @ =gEnemyMonIndex + ldr r1, _0802957C @ =gBankTarget ldr r2, _08029580 @ =0x02000000 ldrb r0, [r5] ldr r3, _08029584 @ =0x00016020 @@ -27042,7 +27042,7 @@ atkBE_breakfree: @ 8029508 adds r0, r2 ldrb r0, [r0] strb r0, [r1] - ldr r1, _08029588 @ =gUnknown_030041C0 + ldr r1, _08029588 @ =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x2 @@ -27064,21 +27064,21 @@ atkBE_breakfree: @ 8029508 movs r0, 0xFF strb r0, [r1, 0x4] bl b_movescr_stack_push_cursor - ldr r1, _0802958C @ =gUnknown_02024C10 + ldr r1, _0802958C @ =gBattlescriptCurrInstr ldr r0, _08029590 @ =gUnknown_081D92C2 b _0802963E .align 2, 0 _08029570: .4byte gBattleMons -_08029574: .4byte gPlayerMonIndex +_08029574: .4byte gBankAttacker _08029578: .4byte 0xffff1fff -_0802957C: .4byte gEnemyMonIndex +_0802957C: .4byte gBankTarget _08029580: .4byte 0x02000000 _08029584: .4byte 0x00016020 -_08029588: .4byte gUnknown_030041C0 -_0802958C: .4byte gUnknown_02024C10 +_08029588: .4byte gBattleTextBuff1 +_0802958C: .4byte gBattlescriptCurrInstr _08029590: .4byte gUnknown_081D92C2 _08029594: - ldr r4, _080295C8 @ =gUnknown_02024C98 + ldr r4, _080295C8 @ =gStatuses3 lsls r0, r2, 2 adds r3, r0, r4 ldr r1, [r3] @@ -27099,17 +27099,17 @@ _08029594: ands r0, r2 str r0, [r1] bl b_movescr_stack_push_cursor - ldr r1, _080295CC @ =gUnknown_02024C10 + ldr r1, _080295CC @ =gBattlescriptCurrInstr ldr r0, _080295D0 @ =gUnknown_081D92C9 b _0802963E .align 2, 0 -_080295C8: .4byte gUnknown_02024C98 -_080295CC: .4byte gUnknown_02024C10 +_080295C8: .4byte gStatuses3 +_080295CC: .4byte gBattlescriptCurrInstr _080295D0: .4byte gUnknown_081D92C9 _080295D4: adds r0, r2, 0 - bl battle_side_get_owner - ldr r4, _08029624 @ =gUnknown_02024C7A + bl GetBankSide + ldr r4, _08029624 @ =gSideAffecting lsls r0, 24 lsrs r0, 23 adds r0, r4 @@ -27119,7 +27119,7 @@ _080295D4: cmp r0, 0 beq _08029638 ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 23 adds r0, r4 @@ -27129,8 +27129,8 @@ _080295D4: movs r4, 0 strh r1, [r0] ldrb r0, [r5] - bl battle_side_get_owner - ldr r2, _0802962C @ =gUnknown_02024C80 + bl GetBankSide + ldr r2, _0802962C @ =gSideTimer lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 @@ -27139,17 +27139,17 @@ _080295D4: adds r1, r2 strb r4, [r1, 0x6] bl b_movescr_stack_push_cursor - ldr r1, _08029630 @ =gUnknown_02024C10 + ldr r1, _08029630 @ =gBattlescriptCurrInstr ldr r0, _08029634 @ =gUnknown_081D92D0 b _0802963E .align 2, 0 -_08029624: .4byte gUnknown_02024C7A +_08029624: .4byte gSideAffecting _08029628: .4byte 0x0000ffef -_0802962C: .4byte gUnknown_02024C80 -_08029630: .4byte gUnknown_02024C10 +_0802962C: .4byte gSideTimer +_08029630: .4byte gBattlescriptCurrInstr _08029634: .4byte gUnknown_081D92D0 _08029638: - ldr r1, _08029648 @ =gUnknown_02024C10 + ldr r1, _08029648 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 _0802963E: @@ -27158,13 +27158,13 @@ _0802963E: pop {r0} bx r0 .align 2, 0 -_08029648: .4byte gUnknown_02024C10 +_08029648: .4byte gBattlescriptCurrInstr thumb_func_end atkBE_breakfree thumb_func_start sub_802964C sub_802964C: @ 802964C ldr r1, _08029670 @ =gBattleMons - ldr r0, _08029674 @ =gPlayerMonIndex + ldr r0, _08029674 @ =gBankAttacker ldrb r2, [r0] movs r0, 0x58 muls r2, r0 @@ -27175,23 +27175,23 @@ sub_802964C: @ 802964C lsls r1, 23 orrs r0, r1 str r0, [r2] - ldr r1, _08029678 @ =gUnknown_02024C10 + ldr r1, _08029678 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _08029670: .4byte gBattleMons -_08029674: .4byte gPlayerMonIndex -_08029678: .4byte gUnknown_02024C10 +_08029674: .4byte gBankAttacker +_08029678: .4byte gBattlescriptCurrInstr thumb_func_end sub_802964C thumb_func_start atkC0_recoverbasedonsunlight atkC0_recoverbasedonsunlight: @ 802967C push {r4-r7,lr} sub sp, 0x4 - ldr r1, _080296E8 @ =gEnemyMonIndex - ldr r5, _080296EC @ =gPlayerMonIndex + ldr r1, _080296E8 @ =gBankTarget + ldr r5, _080296EC @ =gBankAttacker ldrb r0, [r5] strb r0, [r1] ldr r7, _080296F0 @ =gBattleMons @@ -27213,7 +27213,7 @@ atkC0_recoverbasedonsunlight: @ 802967C movs r1, 0 movs r2, 0xD movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 lsrs r0, 24 cmp r0, 0 @@ -27223,14 +27223,14 @@ atkC0_recoverbasedonsunlight: @ 802967C movs r1, 0 movs r2, 0x4D movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 beq _080296FC _080296CE: ldr r3, _080296F8 @ =gBattleMoveDamage ldr r2, _080296F0 @ =gBattleMons - ldr r0, _080296EC @ =gPlayerMonIndex + ldr r0, _080296EC @ =gBankAttacker ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -27241,8 +27241,8 @@ _080296CE: adds r1, r3, 0 b _08029736 .align 2, 0 -_080296E8: .4byte gEnemyMonIndex -_080296EC: .4byte gPlayerMonIndex +_080296E8: .4byte gBankTarget +_080296EC: .4byte gBankAttacker _080296F0: .4byte gBattleMons _080296F4: .4byte gBattleWeather _080296F8: .4byte gBattleMoveDamage @@ -27286,16 +27286,16 @@ _08029742: ldr r0, [r1] negs r0, r0 str r0, [r1] - ldr r1, _08029758 @ =gUnknown_02024C10 + ldr r1, _08029758 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _08029776 .align 2, 0 _08029754: .4byte gBattleMoveDamage -_08029758: .4byte gUnknown_02024C10 +_08029758: .4byte gBattlescriptCurrInstr _0802975C: - ldr r3, _08029780 @ =gUnknown_02024C10 + ldr r3, _08029780 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -27314,7 +27314,7 @@ _08029776: pop {r0} bx r0 .align 2, 0 -_08029780: .4byte gUnknown_02024C10 +_08029780: .4byte gBattlescriptCurrInstr thumb_func_end atkC0_recoverbasedonsunlight thumb_func_start sub_8029784 @@ -27325,7 +27325,7 @@ sub_8029784: @ 8029784 mov r5, r8 push {r5-r7} ldr r2, _08029894 @ =gBattleMons - ldr r0, _08029898 @ =gPlayerMonIndex + ldr r0, _08029898 @ =gBankAttacker ldrb r1, [r0] movs r0, 0x58 adds r4, r1, 0 @@ -27415,7 +27415,7 @@ sub_8029784: @ 8029784 ands r1, r3 lsls r1, 5 orrs r4, r1 - ldr r5, _0802989C @ =gUnknown_02024DEC + ldr r5, _0802989C @ =gDynamicBasePower lsls r0, r2, 2 adds r0, r2 lsls r0, 3 @@ -27443,7 +27443,7 @@ _08029876: movs r1, 0xC0 orrs r0, r1 strb r0, [r5] - ldr r1, _080298A8 @ =gUnknown_02024C10 + ldr r1, _080298A8 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -27456,11 +27456,11 @@ _08029876: bx r0 .align 2, 0 _08029894: .4byte gBattleMons -_08029898: .4byte gPlayerMonIndex -_0802989C: .4byte gUnknown_02024DEC +_08029898: .4byte gBankAttacker +_0802989C: .4byte gDynamicBasePower _080298A0: .4byte 0x02000000 _080298A4: .4byte 0x0001601c -_080298A8: .4byte gUnknown_02024C10 +_080298A8: .4byte gBattlescriptCurrInstr thumb_func_end sub_8029784 thumb_func_start atkC2_selectnexttarget @@ -27468,23 +27468,23 @@ atkC2_selectnexttarget: @ 80298AC push {r4-r7,lr} mov r7, r8 push {r7} - ldr r0, _08029908 @ =gEnemyMonIndex + ldr r0, _08029908 @ =gBankTarget movs r1, 0 strb r1, [r0] - ldr r1, _0802990C @ =gUnknown_02024A68 + ldr r1, _0802990C @ =gNoOfAllBanks ldrb r1, [r1] adds r6, r0, 0 - ldr r0, _08029910 @ =gUnknown_02024C10 + ldr r0, _08029910 @ =gBattlescriptCurrInstr mov r8, r0 cmp r1, 0 beq _080298F6 adds r3, r6, 0 - ldr r0, _08029914 @ =gPlayerMonIndex + ldr r0, _08029914 @ =gBankAttacker ldrb r5, [r0] ldr r0, _08029918 @ =gBitTable mov r12, r0 adds r4, r1, 0 - ldr r7, _0802991C @ =gUnknown_02024C0C + ldr r7, _0802991C @ =gAbsentBankFlags _080298D4: ldrb r2, [r3] cmp r2, r5 @@ -27515,12 +27515,12 @@ _080298F6: pop {r0} bx r0 .align 2, 0 -_08029908: .4byte gEnemyMonIndex -_0802990C: .4byte gUnknown_02024A68 -_08029910: .4byte gUnknown_02024C10 -_08029914: .4byte gPlayerMonIndex +_08029908: .4byte gBankTarget +_0802990C: .4byte gNoOfAllBanks +_08029910: .4byte gBattlescriptCurrInstr +_08029914: .4byte gBankAttacker _08029918: .4byte gBitTable -_0802991C: .4byte gUnknown_02024C0C +_0802991C: .4byte gAbsentBankFlags thumb_func_end atkC2_selectnexttarget thumb_func_start atkC3_setfutureattack @@ -27531,15 +27531,15 @@ atkC3_setfutureattack: @ 8029920 mov r5, r8 push {r5-r7} sub sp, 0x10 - ldr r0, _08029958 @ =gUnknown_02024DBC + ldr r0, _08029958 @ =gWishFutureKnock mov r8, r0 - ldr r7, _0802995C @ =gEnemyMonIndex + ldr r7, _0802995C @ =gBankTarget ldrb r1, [r7] adds r0, r1, r0 ldrb r6, [r0] cmp r6, 0 beq _08029964 - ldr r3, _08029960 @ =gUnknown_02024C10 + ldr r3, _08029960 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -27554,15 +27554,15 @@ atkC3_setfutureattack: @ 8029920 str r1, [r3] b _08029A2E .align 2, 0 -_08029958: .4byte gUnknown_02024DBC -_0802995C: .4byte gEnemyMonIndex -_08029960: .4byte gUnknown_02024C10 +_08029958: .4byte gWishFutureKnock +_0802995C: .4byte gBankTarget +_08029960: .4byte gBattlescriptCurrInstr _08029964: lsls r1, 1 mov r0, r8 adds r0, 0x18 adds r1, r0 - ldr r2, _08029A04 @ =gUnknown_02024BE6 + ldr r2, _08029A04 @ =gCurrentMove mov r9, r2 ldrh r0, [r2] strh r0, [r1] @@ -27570,16 +27570,16 @@ _08029964: adds r0, 0x4 ldrb r4, [r7] adds r0, r4 - ldr r5, _08029A08 @ =gPlayerMonIndex + ldr r5, _08029A08 @ =gBankAttacker ldrb r1, [r5] strb r1, [r0] ldrb r0, [r7] add r0, r8 movs r1, 0x3 strb r1, [r0] - ldr r4, _08029A0C @ =gUnknown_02024C7A + ldr r4, _08029A0C @ =gSideAffecting ldrb r0, [r7] - bl battle_get_per_side_status + bl GetBankIdentity movs r1, 0x1 mov r10, r1 ands r1, r0 @@ -27609,7 +27609,7 @@ _08029964: adds r2, 0x8 adds r1, r2 str r0, [r1] - ldr r1, _08029A14 @ =gUnknown_02024D28 + ldr r1, _08029A14 @ =gProtectStructs ldrb r0, [r5] lsls r0, 4 adds r0, r1 @@ -27632,24 +27632,24 @@ _080299F2: ldr r0, _08029A18 @ =0x00000161 cmp r1, r0 bne _08029A20 - ldr r0, _08029A1C @ =gUnknown_02024D1E + ldr r0, _08029A1C @ =gBattleCommunication mov r1, r10 strb r1, [r0, 0x5] b _08029A26 .align 2, 0 -_08029A04: .4byte gUnknown_02024BE6 -_08029A08: .4byte gPlayerMonIndex -_08029A0C: .4byte gUnknown_02024C7A +_08029A04: .4byte gCurrentMove +_08029A08: .4byte gBankAttacker +_08029A0C: .4byte gSideAffecting _08029A10: .4byte gBattleMons -_08029A14: .4byte gUnknown_02024D28 +_08029A14: .4byte gProtectStructs _08029A18: .4byte 0x00000161 -_08029A1C: .4byte gUnknown_02024D1E +_08029A1C: .4byte gBattleCommunication _08029A20: - ldr r1, _08029A40 @ =gUnknown_02024D1E + ldr r1, _08029A40 @ =gBattleCommunication movs r0, 0 strb r0, [r1, 0x5] _08029A26: - ldr r1, _08029A44 @ =gUnknown_02024C10 + ldr r1, _08029A44 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] @@ -27663,8 +27663,8 @@ _08029A2E: pop {r0} bx r0 .align 2, 0 -_08029A40: .4byte gUnknown_02024D1E -_08029A44: .4byte gUnknown_02024C10 +_08029A40: .4byte gBattleCommunication +_08029A44: .4byte gBattlescriptCurrInstr thumb_func_end atkC3_setfutureattack thumb_func_start atkC4_802B910 @@ -27673,9 +27673,9 @@ atkC4_802B910: @ 8029A48 mov r7, r9 mov r6, r8 push {r6,r7} - ldr r0, _08029A8C @ =gPlayerMonIndex + ldr r0, _08029A8C @ =gBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 ldr r7, _08029A90 @ =gEnemyParty cmp r0, 0 @@ -27683,7 +27683,7 @@ atkC4_802B910: @ 8029A48 ldr r7, _08029A94 @ =gPlayerParty _08029A62: ldr r2, _08029A98 @ =gBattleMons - ldr r0, _08029A9C @ =gEnemyMonIndex + ldr r0, _08029A9C @ =gBankTarget ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -27691,7 +27691,7 @@ _08029A62: ldrh r0, [r0, 0x28] cmp r0, 0 bne _08029AA4 - ldr r3, _08029AA0 @ =gUnknown_02024C10 + ldr r3, _08029AA0 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -27703,14 +27703,14 @@ _08029A62: ldrb r0, [r2, 0x4] b _08029C40 .align 2, 0 -_08029A8C: .4byte gPlayerMonIndex +_08029A8C: .4byte gBankAttacker _08029A90: .4byte gEnemyParty _08029A94: .4byte gPlayerParty _08029A98: .4byte gBattleMons -_08029A9C: .4byte gEnemyMonIndex -_08029AA0: .4byte gUnknown_02024C10 +_08029A9C: .4byte gBankTarget +_08029AA0: .4byte gBattlescriptCurrInstr _08029AA4: - ldr r6, _08029BE0 @ =gUnknown_02024D1E + ldr r6, _08029BE0 @ =gBattleCommunication ldrb r0, [r6] mov r8, r0 cmp r0, 0x5 @@ -27760,23 +27760,23 @@ _08029AF8: cmp r0, 0x5 bls _08029AB4 _08029B08: - ldr r1, _08029BE0 @ =gUnknown_02024D1E + ldr r1, _08029BE0 @ =gBattleCommunication mov r9, r1 ldrb r2, [r1] cmp r2, 0x5 bhi _08029C0C - ldr r1, _08029BE4 @ =gUnknown_030041C0 + ldr r1, _08029BE4 @ =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x4 strb r0, [r1, 0x1] - ldr r6, _08029BE8 @ =gPlayerMonIndex + ldr r6, _08029BE8 @ =gBankAttacker ldrb r0, [r6] strb r0, [r1, 0x2] strb r2, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] - ldr r1, _08029BEC @ =gUnknown_02024C10 + ldr r1, _08029BEC @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x9 str r0, [r1] @@ -27798,7 +27798,7 @@ _08029B08: mov r2, r8 str r3, [r2] ldr r2, _08029BF8 @ =gBattleMoves - ldr r0, _08029BFC @ =gUnknown_02024BE6 + ldr r0, _08029BFC @ =gCurrentMove ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -27823,7 +27823,7 @@ _08029B08: muls r0, r1 str r0, [r2] ldr r3, _08029C00 @ =gBattleMons - ldr r1, _08029C04 @ =gEnemyMonIndex + ldr r1, _08029C04 @ =gBankTarget ldrb r2, [r1] movs r1, 0x58 muls r1, r2 @@ -27842,7 +27842,7 @@ _08029B08: adds r2, r0, 0x2 mov r0, r8 str r2, [r0] - ldr r1, _08029C08 @ =gUnknown_02024D28 + ldr r1, _08029C08 @ =gProtectStructs ldrb r0, [r6] lsls r0, 4 adds r0, r1 @@ -27863,22 +27863,22 @@ _08029BD4: strb r0, [r2] b _08029C46 .align 2, 0 -_08029BE0: .4byte gUnknown_02024D1E -_08029BE4: .4byte gUnknown_030041C0 -_08029BE8: .4byte gPlayerMonIndex -_08029BEC: .4byte gUnknown_02024C10 +_08029BE0: .4byte gBattleCommunication +_08029BE4: .4byte gBattleTextBuff1 +_08029BE8: .4byte gBankAttacker +_08029BEC: .4byte gBattlescriptCurrInstr _08029BF0: .4byte gBattleMoveDamage _08029BF4: .4byte gBaseStats _08029BF8: .4byte gBattleMoves -_08029BFC: .4byte gUnknown_02024BE6 +_08029BFC: .4byte gCurrentMove _08029C00: .4byte gBattleMons -_08029C04: .4byte gEnemyMonIndex -_08029C08: .4byte gUnknown_02024D28 +_08029C04: .4byte gBankTarget +_08029C08: .4byte gProtectStructs _08029C0C: mov r0, r8 cmp r0, 0 beq _08029C2C - ldr r3, _08029C28 @ =gUnknown_02024C10 + ldr r3, _08029C28 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -27890,9 +27890,9 @@ _08029C0C: ldrb r0, [r2, 0x4] b _08029C40 .align 2, 0 -_08029C28: .4byte gUnknown_02024C10 +_08029C28: .4byte gBattlescriptCurrInstr _08029C2C: - ldr r3, _08029C54 @ =gUnknown_02024C10 + ldr r3, _08029C54 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x5] ldrb r0, [r2, 0x6] @@ -27914,13 +27914,13 @@ _08029C46: pop {r0} bx r0 .align 2, 0 -_08029C54: .4byte gUnknown_02024C10 +_08029C54: .4byte gBattlescriptCurrInstr thumb_func_end atkC4_802B910 thumb_func_start atkC5_hidepreattack atkC5_hidepreattack: @ 8029C58 push {lr} - ldr r0, _08029C6C @ =gUnknown_02024BE6 + ldr r0, _08029C6C @ =gCurrentMove ldrh r1, [r0] cmp r1, 0x5B beq _08029C98 @@ -27930,7 +27930,7 @@ atkC5_hidepreattack: @ 8029C58 beq _08029C7C b _08029CC4 .align 2, 0 -_08029C6C: .4byte gUnknown_02024BE6 +_08029C6C: .4byte gCurrentMove _08029C70: ldr r0, _08029C8C @ =0x00000123 cmp r1, r0 @@ -27939,8 +27939,8 @@ _08029C70: cmp r1, r0 bne _08029CC4 _08029C7C: - ldr r2, _08029C90 @ =gUnknown_02024C98 - ldr r0, _08029C94 @ =gPlayerMonIndex + ldr r2, _08029C90 @ =gStatuses3 + ldr r0, _08029C94 @ =gBankAttacker ldrb r1, [r0] lsls r1, 2 adds r1, r2 @@ -27949,11 +27949,11 @@ _08029C7C: b _08029CC0 .align 2, 0 _08029C8C: .4byte 0x00000123 -_08029C90: .4byte gUnknown_02024C98 -_08029C94: .4byte gPlayerMonIndex +_08029C90: .4byte gStatuses3 +_08029C94: .4byte gBankAttacker _08029C98: - ldr r2, _08029CA8 @ =gUnknown_02024C98 - ldr r0, _08029CAC @ =gPlayerMonIndex + ldr r2, _08029CA8 @ =gStatuses3 + ldr r0, _08029CAC @ =gBankAttacker ldrb r1, [r0] lsls r1, 2 adds r1, r2 @@ -27961,11 +27961,11 @@ _08029C98: movs r2, 0x80 b _08029CC0 .align 2, 0 -_08029CA8: .4byte gUnknown_02024C98 -_08029CAC: .4byte gPlayerMonIndex +_08029CA8: .4byte gStatuses3 +_08029CAC: .4byte gBankAttacker _08029CB0: - ldr r2, _08029CD0 @ =gUnknown_02024C98 - ldr r0, _08029CD4 @ =gPlayerMonIndex + ldr r2, _08029CD0 @ =gStatuses3 + ldr r0, _08029CD4 @ =gBankAttacker ldrb r1, [r0] lsls r1, 2 adds r1, r2 @@ -27976,22 +27976,22 @@ _08029CC0: orrs r0, r2 str r0, [r1] _08029CC4: - ldr r1, _08029CD8 @ =gUnknown_02024C10 + ldr r1, _08029CD8 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .align 2, 0 -_08029CD0: .4byte gUnknown_02024C98 -_08029CD4: .4byte gPlayerMonIndex -_08029CD8: .4byte gUnknown_02024C10 +_08029CD0: .4byte gStatuses3 +_08029CD4: .4byte gBankAttacker +_08029CD8: .4byte gBattlescriptCurrInstr thumb_func_end atkC5_hidepreattack thumb_func_start atkC6_unhidepostattack atkC6_unhidepostattack: @ 8029CDC push {lr} - ldr r0, _08029CF0 @ =gUnknown_02024BE6 + ldr r0, _08029CF0 @ =gCurrentMove ldrh r1, [r0] cmp r1, 0x5B beq _08029D20 @@ -28001,7 +28001,7 @@ atkC6_unhidepostattack: @ 8029CDC beq _08029D00 b _08029D4E .align 2, 0 -_08029CF0: .4byte gUnknown_02024BE6 +_08029CF0: .4byte gCurrentMove _08029CF4: ldr r0, _08029D14 @ =0x00000123 cmp r1, r0 @@ -28010,8 +28010,8 @@ _08029CF4: cmp r1, r0 bne _08029D4E _08029D00: - ldr r2, _08029D18 @ =gUnknown_02024C98 - ldr r0, _08029D1C @ =gPlayerMonIndex + ldr r2, _08029D18 @ =gStatuses3 + ldr r0, _08029D1C @ =gBankAttacker ldrb r1, [r0] lsls r1, 2 adds r1, r2 @@ -28021,11 +28021,11 @@ _08029D00: b _08029D4A .align 2, 0 _08029D14: .4byte 0x00000123 -_08029D18: .4byte gUnknown_02024C98 -_08029D1C: .4byte gPlayerMonIndex +_08029D18: .4byte gStatuses3 +_08029D1C: .4byte gBankAttacker _08029D20: - ldr r2, _08029D34 @ =gUnknown_02024C98 - ldr r0, _08029D38 @ =gPlayerMonIndex + ldr r2, _08029D34 @ =gStatuses3 + ldr r0, _08029D38 @ =gBankAttacker ldrb r1, [r0] lsls r1, 2 adds r1, r2 @@ -28034,11 +28034,11 @@ _08029D20: negs r2, r2 b _08029D4A .align 2, 0 -_08029D34: .4byte gUnknown_02024C98 -_08029D38: .4byte gPlayerMonIndex +_08029D34: .4byte gStatuses3 +_08029D38: .4byte gBankAttacker _08029D3C: - ldr r2, _08029D5C @ =gUnknown_02024C98 - ldr r0, _08029D60 @ =gPlayerMonIndex + ldr r2, _08029D5C @ =gStatuses3 + ldr r0, _08029D60 @ =gBankAttacker ldrb r1, [r0] lsls r1, 2 adds r1, r2 @@ -28048,31 +28048,31 @@ _08029D4A: ands r0, r2 str r0, [r1] _08029D4E: - ldr r1, _08029D68 @ =gUnknown_02024C10 + ldr r1, _08029D68 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .align 2, 0 -_08029D5C: .4byte gUnknown_02024C98 -_08029D60: .4byte gPlayerMonIndex +_08029D5C: .4byte gStatuses3 +_08029D60: .4byte gBankAttacker _08029D64: .4byte 0xfffbffff -_08029D68: .4byte gUnknown_02024C10 +_08029D68: .4byte gBattlescriptCurrInstr thumb_func_end atkC6_unhidepostattack thumb_func_start atkC7_setminimize atkC7_setminimize: @ 8029D6C push {lr} - ldr r0, _08029D9C @ =gUnknown_02024C6C + ldr r0, _08029D9C @ =gHitMarker ldr r0, [r0] movs r1, 0x80 lsls r1, 18 ands r0, r1 cmp r0, 0 beq _08029D90 - ldr r2, _08029DA0 @ =gUnknown_02024C98 - ldr r0, _08029DA4 @ =gPlayerMonIndex + ldr r2, _08029DA0 @ =gStatuses3 + ldr r0, _08029DA4 @ =gBankAttacker ldrb r1, [r0] lsls r1, 2 adds r1, r2 @@ -28082,17 +28082,17 @@ atkC7_setminimize: @ 8029D6C orrs r0, r2 str r0, [r1] _08029D90: - ldr r1, _08029DA8 @ =gUnknown_02024C10 + ldr r1, _08029DA8 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .align 2, 0 -_08029D9C: .4byte gUnknown_02024C6C -_08029DA0: .4byte gUnknown_02024C98 -_08029DA4: .4byte gPlayerMonIndex -_08029DA8: .4byte gUnknown_02024C10 +_08029D9C: .4byte gHitMarker +_08029DA0: .4byte gStatuses3 +_08029DA4: .4byte gBankAttacker +_08029DA8: .4byte gBattlescriptCurrInstr thumb_func_end atkC7_setminimize thumb_func_start sub_8029DAC @@ -28110,40 +28110,40 @@ sub_8029DAC: @ 8029DAC movs r1, 0x1 orrs r0, r1 strb r0, [r2] - ldr r1, _08029DD8 @ =gUnknown_02024D1E + ldr r1, _08029DD8 @ =gBattleCommunication movs r0, 0x2 strb r0, [r1, 0x5] b _08029DEA .align 2, 0 _08029DD0: .4byte gBattleWeather _08029DD4: .4byte gBattleMoveFlags -_08029DD8: .4byte gUnknown_02024D1E +_08029DD8: .4byte gBattleCommunication _08029DDC: strh r2, [r3] - ldr r0, _08029DF8 @ =gUnknown_02024D1E + ldr r0, _08029DF8 @ =gBattleCommunication movs r1, 0x5 strb r1, [r0, 0x5] - ldr r0, _08029DFC @ =gUnknown_02024DBC + ldr r0, _08029DFC @ =gWishFutureKnock adds r0, 0x28 strb r1, [r0] _08029DEA: - ldr r1, _08029E00 @ =gUnknown_02024C10 + ldr r1, _08029E00 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .align 2, 0 -_08029DF8: .4byte gUnknown_02024D1E -_08029DFC: .4byte gUnknown_02024DBC -_08029E00: .4byte gUnknown_02024C10 +_08029DF8: .4byte gBattleCommunication +_08029DFC: .4byte gWishFutureKnock +_08029E00: .4byte gBattlescriptCurrInstr thumb_func_end sub_8029DAC thumb_func_start atkC9_jumpifattackandspecialattackcannotfall atkC9_jumpifattackandspecialattackcannotfall: @ 8029E04 push {r4,lr} ldr r2, _08029E48 @ =gBattleMons - ldr r0, _08029E4C @ =gEnemyMonIndex + ldr r0, _08029E4C @ =gBankTarget ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -28157,11 +28157,11 @@ atkC9_jumpifattackandspecialattackcannotfall: @ 8029E04 ldrsb r0, [r1, r0] cmp r0, 0 bne _08029E58 - ldr r0, _08029E50 @ =gUnknown_02024D1E + ldr r0, _08029E50 @ =gBattleCommunication ldrb r0, [r0, 0x6] cmp r0, 0x1 beq _08029E58 - ldr r3, _08029E54 @ =gUnknown_02024C10 + ldr r3, _08029E54 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -28177,12 +28177,12 @@ atkC9_jumpifattackandspecialattackcannotfall: @ 8029E04 b _08029E84 .align 2, 0 _08029E48: .4byte gBattleMons -_08029E4C: .4byte gEnemyMonIndex -_08029E50: .4byte gUnknown_02024D1E -_08029E54: .4byte gUnknown_02024C10 +_08029E4C: .4byte gBankTarget +_08029E50: .4byte gBattleCommunication +_08029E54: .4byte gBattlescriptCurrInstr _08029E58: - ldr r4, _08029E8C @ =gUnknown_02024A60 - ldr r0, _08029E90 @ =gPlayerMonIndex + ldr r4, _08029E8C @ =gActiveBank + ldr r0, _08029E90 @ =gBankAttacker ldrb r0, [r0] strb r0, [r4] ldr r2, _08029E94 @ =gBattleMoveDamage @@ -28194,10 +28194,10 @@ _08029E58: str r0, [r2] ldr r1, _08029E98 @ =0x00007fff movs r0, 0 - bl dp01_build_cmdbuf_x18_0_aa_health_bar_update + bl EmitHealthBarUpdate ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _08029E9C @ =gUnknown_02024C10 + bl MarkBufferBankForExecution + ldr r1, _08029E9C @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] @@ -28206,20 +28206,20 @@ _08029E84: pop {r0} bx r0 .align 2, 0 -_08029E8C: .4byte gUnknown_02024A60 -_08029E90: .4byte gPlayerMonIndex +_08029E8C: .4byte gActiveBank +_08029E90: .4byte gBankAttacker _08029E94: .4byte gBattleMoveDamage _08029E98: .4byte 0x00007fff -_08029E9C: .4byte gUnknown_02024C10 +_08029E9C: .4byte gBattlescriptCurrInstr thumb_func_end atkC9_jumpifattackandspecialattackcannotfall thumb_func_start atkCA_setforcedtarget atkCA_setforcedtarget: @ 8029EA0 push {r4,r5,lr} - ldr r4, _08029EE0 @ =gPlayerMonIndex + ldr r4, _08029EE0 @ =gBankAttacker ldrb r0, [r4] - bl battle_side_get_owner - ldr r5, _08029EE4 @ =gUnknown_02024C80 + bl GetBankSide + ldr r5, _08029EE4 @ =gSideTimer lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 @@ -28229,7 +28229,7 @@ atkCA_setforcedtarget: @ 8029EA0 movs r0, 0x1 strb r0, [r1, 0x8] ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 @@ -28238,7 +28238,7 @@ atkCA_setforcedtarget: @ 8029EA0 adds r1, r5 ldrb r0, [r4] strb r0, [r1, 0x9] - ldr r1, _08029EE8 @ =gUnknown_02024C10 + ldr r1, _08029EE8 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -28246,16 +28246,16 @@ atkCA_setforcedtarget: @ 8029EA0 pop {r0} bx r0 .align 2, 0 -_08029EE0: .4byte gPlayerMonIndex -_08029EE4: .4byte gUnknown_02024C80 -_08029EE8: .4byte gUnknown_02024C10 +_08029EE0: .4byte gBankAttacker +_08029EE4: .4byte gSideTimer +_08029EE8: .4byte gBattlescriptCurrInstr thumb_func_end atkCA_setforcedtarget thumb_func_start atkCB_setcharge atkCB_setcharge: @ 8029EEC push {r4,lr} - ldr r0, _08029F40 @ =gUnknown_02024C98 - ldr r3, _08029F44 @ =gPlayerMonIndex + ldr r0, _08029F40 @ =gStatuses3 + ldr r3, _08029F44 @ =gBankAttacker ldrb r1, [r3] lsls r1, 2 adds r1, r0 @@ -28264,7 +28264,7 @@ atkCB_setcharge: @ 8029EEC lsls r2, 2 orrs r0, r2 str r0, [r1] - ldr r4, _08029F48 @ =gUnknown_02024CA8 + ldr r4, _08029F48 @ =gDisableStructs ldrb r1, [r3] lsls r0, r1, 3 subs r0, r1 @@ -28288,7 +28288,7 @@ atkCB_setcharge: @ 8029EEC movs r2, 0x20 orrs r1, r2 strb r1, [r0, 0x12] - ldr r1, _08029F4C @ =gUnknown_02024C10 + ldr r1, _08029F4C @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -28296,21 +28296,21 @@ atkCB_setcharge: @ 8029EEC pop {r0} bx r0 .align 2, 0 -_08029F40: .4byte gUnknown_02024C98 -_08029F44: .4byte gPlayerMonIndex -_08029F48: .4byte gUnknown_02024CA8 -_08029F4C: .4byte gUnknown_02024C10 +_08029F40: .4byte gStatuses3 +_08029F44: .4byte gBankAttacker +_08029F48: .4byte gDisableStructs +_08029F4C: .4byte gBattlescriptCurrInstr thumb_func_end atkCB_setcharge thumb_func_start atkCC_callterrainattack atkCC_callterrainattack: @ 8029F50 push {r4,lr} - ldr r2, _08029FA0 @ =gUnknown_02024C6C + ldr r2, _08029FA0 @ =gHitMarker ldr r0, [r2] ldr r1, _08029FA4 @ =0xfffffbff ands r0, r1 str r0, [r2] - ldr r4, _08029FA8 @ =gUnknown_02024BE6 + ldr r4, _08029FA8 @ =gCurrentMove ldr r1, _08029FAC @ =gNaturePowerMoves ldr r0, _08029FB0 @ =gBattleTerrain ldrb r0, [r0] @@ -28321,7 +28321,7 @@ atkCC_callterrainattack: @ 8029F50 ldrh r0, [r4] movs r1, 0 bl sub_801B5C0 - ldr r1, _08029FB4 @ =gEnemyMonIndex + ldr r1, _08029FB4 @ =gBankTarget strb r0, [r1] ldr r3, _08029FB8 @ =gUnknown_081D6BBC ldr r2, _08029FBC @ =gBattleMoves @@ -28335,7 +28335,7 @@ atkCC_callterrainattack: @ 8029F50 adds r0, r3 ldr r0, [r0] bl b_movescr_stack_push - ldr r1, _08029FC0 @ =gUnknown_02024C10 + ldr r1, _08029FC0 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -28343,15 +28343,15 @@ atkCC_callterrainattack: @ 8029F50 pop {r0} bx r0 .align 2, 0 -_08029FA0: .4byte gUnknown_02024C6C +_08029FA0: .4byte gHitMarker _08029FA4: .4byte 0xfffffbff -_08029FA8: .4byte gUnknown_02024BE6 +_08029FA8: .4byte gCurrentMove _08029FAC: .4byte gNaturePowerMoves _08029FB0: .4byte gBattleTerrain -_08029FB4: .4byte gEnemyMonIndex +_08029FB4: .4byte gBankTarget _08029FB8: .4byte gUnknown_081D6BBC _08029FBC: .4byte gBattleMoves -_08029FC0: .4byte gUnknown_02024C10 +_08029FC0: .4byte gBattlescriptCurrInstr thumb_func_end atkCC_callterrainattack thumb_func_start atkCD_cureifburnedparalysedorpoisoned @@ -28359,7 +28359,7 @@ atkCD_cureifburnedparalysedorpoisoned: @ 8029FC4 push {r4-r6,lr} sub sp, 0x4 ldr r1, _0802A010 @ =gBattleMons - ldr r3, _0802A014 @ =gPlayerMonIndex + ldr r3, _0802A014 @ =gBankAttacker ldrb r0, [r3] movs r6, 0x58 muls r0, r6 @@ -28373,11 +28373,11 @@ atkCD_cureifburnedparalysedorpoisoned: @ 8029FC4 beq _0802A020 movs r0, 0 str r0, [r2] - ldr r1, _0802A018 @ =gUnknown_02024C10 + ldr r1, _0802A018 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] - ldr r4, _0802A01C @ =gUnknown_02024A60 + ldr r4, _0802A01C @ =gActiveBank ldrb r0, [r3] strb r0, [r4] ldrb r0, [r4] @@ -28388,17 +28388,17 @@ atkCD_cureifburnedparalysedorpoisoned: @ 8029FC4 movs r1, 0x28 movs r2, 0 movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs + bl EmitSetAttributes ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution b _0802A03A .align 2, 0 _0802A010: .4byte gBattleMons -_0802A014: .4byte gPlayerMonIndex -_0802A018: .4byte gUnknown_02024C10 -_0802A01C: .4byte gUnknown_02024A60 +_0802A014: .4byte gBankAttacker +_0802A018: .4byte gBattlescriptCurrInstr +_0802A01C: .4byte gActiveBank _0802A020: - ldr r3, _0802A044 @ =gUnknown_02024C10 + ldr r3, _0802A044 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -28417,14 +28417,14 @@ _0802A03A: pop {r0} bx r0 .align 2, 0 -_0802A044: .4byte gUnknown_02024C10 +_0802A044: .4byte gBattlescriptCurrInstr thumb_func_end atkCD_cureifburnedparalysedorpoisoned thumb_func_start atkCE_settorment atkCE_settorment: @ 802A048 push {lr} ldr r1, _0802A080 @ =gBattleMons - ldr r0, _0802A084 @ =gEnemyMonIndex + ldr r0, _0802A084 @ =gBankTarget ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -28435,7 +28435,7 @@ atkCE_settorment: @ 802A048 lsls r2, 24 cmp r1, 0 bge _0802A08C - ldr r3, _0802A088 @ =gUnknown_02024C10 + ldr r3, _0802A088 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -28451,12 +28451,12 @@ atkCE_settorment: @ 802A048 b _0802A098 .align 2, 0 _0802A080: .4byte gBattleMons -_0802A084: .4byte gEnemyMonIndex -_0802A088: .4byte gUnknown_02024C10 +_0802A084: .4byte gBankTarget +_0802A088: .4byte gBattlescriptCurrInstr _0802A08C: orrs r1, r2 str r1, [r0] - ldr r1, _0802A09C @ =gUnknown_02024C10 + ldr r1, _0802A09C @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] @@ -28464,14 +28464,14 @@ _0802A098: pop {r0} bx r0 .align 2, 0 -_0802A09C: .4byte gUnknown_02024C10 +_0802A09C: .4byte gBattlescriptCurrInstr thumb_func_end atkCE_settorment thumb_func_start atkCF_jumpifnodamage atkCF_jumpifnodamage: @ 802A0A0 push {lr} - ldr r2, _0802A0CC @ =gUnknown_02024D28 - ldr r0, _0802A0D0 @ =gPlayerMonIndex + ldr r2, _0802A0CC @ =gProtectStructs + ldr r0, _0802A0D0 @ =gBankAttacker ldrb r0, [r0] lsls r1, r0, 4 adds r0, r2, 0x4 @@ -28486,17 +28486,17 @@ atkCF_jumpifnodamage: @ 802A0A0 cmp r0, 0 beq _0802A0D8 _0802A0C0: - ldr r1, _0802A0D4 @ =gUnknown_02024C10 + ldr r1, _0802A0D4 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _0802A0F2 .align 2, 0 -_0802A0CC: .4byte gUnknown_02024D28 -_0802A0D0: .4byte gPlayerMonIndex -_0802A0D4: .4byte gUnknown_02024C10 +_0802A0CC: .4byte gProtectStructs +_0802A0D0: .4byte gBankAttacker +_0802A0D4: .4byte gBattlescriptCurrInstr _0802A0D8: - ldr r3, _0802A0F8 @ =gUnknown_02024C10 + ldr r3, _0802A0F8 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -28513,14 +28513,14 @@ _0802A0F2: pop {r0} bx r0 .align 2, 0 -_0802A0F8: .4byte gUnknown_02024C10 +_0802A0F8: .4byte gBattlescriptCurrInstr thumb_func_end atkCF_jumpifnodamage thumb_func_start atkD0_settaunt atkD0_settaunt: @ 802A0FC push {r4,lr} - ldr r4, _0802A140 @ =gUnknown_02024CA8 - ldr r3, _0802A144 @ =gEnemyMonIndex + ldr r4, _0802A140 @ =gDisableStructs + ldr r3, _0802A144 @ =gBankTarget ldrb r0, [r3] lsls r1, r0, 3 subs r1, r0 @@ -28547,17 +28547,17 @@ atkD0_settaunt: @ 802A0FC movs r2, 0x20 orrs r1, r2 strb r1, [r0, 0x13] - ldr r1, _0802A148 @ =gUnknown_02024C10 + ldr r1, _0802A148 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _0802A166 .align 2, 0 -_0802A140: .4byte gUnknown_02024CA8 -_0802A144: .4byte gEnemyMonIndex -_0802A148: .4byte gUnknown_02024C10 +_0802A140: .4byte gDisableStructs +_0802A144: .4byte gBankTarget +_0802A148: .4byte gBattlescriptCurrInstr _0802A14C: - ldr r3, _0802A16C @ =gUnknown_02024C10 + ldr r3, _0802A16C @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -28575,21 +28575,21 @@ _0802A166: pop {r0} bx r0 .align 2, 0 -_0802A16C: .4byte gUnknown_02024C10 +_0802A16C: .4byte gBattlescriptCurrInstr thumb_func_end atkD0_settaunt thumb_func_start sub_802A170 sub_802A170: @ 802A170 push {r4,lr} - ldr r4, _0802A1D8 @ =gPlayerMonIndex + ldr r4, _0802A1D8 @ =gBankAttacker ldrb r0, [r4] - bl battle_get_per_side_status + bl GetBankIdentity movs r1, 0x2 eors r0, r1 lsls r0, 24 lsrs r0, 24 - bl battle_get_side_with_given_state - ldr r3, _0802A1DC @ =gEnemyMonIndex + bl GetBankByPlayerAI + ldr r3, _0802A1DC @ =gBankTarget strb r0, [r3] ldr r0, _0802A1E0 @ =gBattleTypeFlags ldrh r1, [r0] @@ -28597,7 +28597,7 @@ sub_802A170: @ 802A170 ands r0, r1 cmp r0, 0 beq _0802A1F4 - ldr r0, _0802A1E4 @ =gUnknown_02024C0C + ldr r0, _0802A1E4 @ =gAbsentBankFlags ldrb r1, [r0] ldr r2, _0802A1E8 @ =gBitTable ldrb r3, [r3] @@ -28607,7 +28607,7 @@ sub_802A170: @ 802A170 ands r1, r0 cmp r1, 0 bne _0802A1F4 - ldr r1, _0802A1EC @ =gUnknown_02024D28 + ldr r1, _0802A1EC @ =gProtectStructs ldrb r0, [r4] lsls r0, 4 adds r0, r1 @@ -28624,21 +28624,21 @@ sub_802A170: @ 802A170 movs r0, 0x8 orrs r0, r1 strb r0, [r2] - ldr r1, _0802A1F0 @ =gUnknown_02024C10 + ldr r1, _0802A1F0 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _0802A20E .align 2, 0 -_0802A1D8: .4byte gPlayerMonIndex -_0802A1DC: .4byte gEnemyMonIndex +_0802A1D8: .4byte gBankAttacker +_0802A1DC: .4byte gBankTarget _0802A1E0: .4byte gBattleTypeFlags -_0802A1E4: .4byte gUnknown_02024C0C +_0802A1E4: .4byte gAbsentBankFlags _0802A1E8: .4byte gBitTable -_0802A1EC: .4byte gUnknown_02024D28 -_0802A1F0: .4byte gUnknown_02024C10 +_0802A1EC: .4byte gProtectStructs +_0802A1F0: .4byte gBattlescriptCurrInstr _0802A1F4: - ldr r3, _0802A214 @ =gUnknown_02024C10 + ldr r3, _0802A214 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -28656,7 +28656,7 @@ _0802A20E: pop {r0} bx r0 .align 2, 0 -_0802A214: .4byte gUnknown_02024C10 +_0802A214: .4byte gBattlescriptCurrInstr thumb_func_end sub_802A170 thumb_func_start sub_802A218 @@ -28667,9 +28667,9 @@ sub_802A218: @ 802A218 mov r5, r8 push {r5-r7} sub sp, 0x4 - ldr r0, _0802A30C @ =gPlayerMonIndex + ldr r0, _0802A30C @ =gBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -28687,9 +28687,9 @@ sub_802A218: @ 802A218 cmp r1, r0 bne _0802A2EE _0802A24C: - ldr r4, _0802A30C @ =gPlayerMonIndex + ldr r4, _0802A30C @ =gBankAttacker ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r2, r0, 24 ldr r0, _0802A310 @ =gBattleTypeFlags @@ -28704,12 +28704,12 @@ _0802A24C: lsls r0, 3 cmp r1, r0 beq _0802A290 - ldr r0, _0802A31C @ =gUnknown_02024DBC + ldr r0, _0802A31C @ =gWishFutureKnock adds r0, 0x29 adds r0, r2, r0 ldrb r1, [r0] ldr r3, _0802A320 @ =gBitTable - ldr r2, _0802A324 @ =gUnknown_02024A6A + ldr r2, _0802A324 @ =gBattlePartyID ldrb r0, [r4] lsls r0, 1 adds r0, r2 @@ -28723,7 +28723,7 @@ _0802A24C: _0802A290: ldr r0, _0802A328 @ =gBattleMons mov r9, r0 - ldr r1, _0802A30C @ =gPlayerMonIndex + ldr r1, _0802A30C @ =gBankAttacker ldrb r4, [r1] movs r2, 0x58 mov r8, r2 @@ -28735,7 +28735,7 @@ _0802A290: adds r1, r3, 0 cmp r1, 0 bne _0802A2BE - ldr r0, _0802A32C @ =gEnemyMonIndex + ldr r0, _0802A32C @ =gBankTarget ldrb r0, [r0] mov r2, r8 muls r2, r0 @@ -28747,7 +28747,7 @@ _0802A290: _0802A2BE: cmp r1, 0xAF beq _0802A2EE - ldr r7, _0802A32C @ =gEnemyMonIndex + ldr r7, _0802A32C @ =gBankTarget ldrb r0, [r7] mov r1, r8 muls r1, r0 @@ -28770,7 +28770,7 @@ _0802A2BE: cmp r0, 0xB bhi _0802A334 _0802A2EE: - ldr r3, _0802A330 @ =gUnknown_02024C10 + ldr r3, _0802A330 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -28785,26 +28785,26 @@ _0802A2EE: str r1, [r3] b _0802A49A .align 2, 0 -_0802A30C: .4byte gPlayerMonIndex +_0802A30C: .4byte gBankAttacker _0802A310: .4byte gBattleTypeFlags _0802A314: .4byte 0x00000902 _0802A318: .4byte gTrainerBattleOpponent -_0802A31C: .4byte gUnknown_02024DBC +_0802A31C: .4byte gWishFutureKnock _0802A320: .4byte gBitTable -_0802A324: .4byte gUnknown_02024A6A +_0802A324: .4byte gBattlePartyID _0802A328: .4byte gBattleMons -_0802A32C: .4byte gEnemyMonIndex -_0802A330: .4byte gUnknown_02024C10 +_0802A32C: .4byte gBankTarget +_0802A330: .4byte gBattlescriptCurrInstr _0802A334: adds r0, r2, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x3C bne _0802A36C - ldr r1, _0802A360 @ =gUnknown_02024C10 - ldr r0, _0802A364 @ =gUnknown_081D9913 + ldr r1, _0802A360 @ =gBattlescriptCurrInstr + ldr r0, _0802A364 @ =BattleScript_NoItemSteal str r0, [r1] - ldr r1, _0802A368 @ =byte_2024C06 + ldr r1, _0802A368 @ =gLastUsedAbility ldrb r0, [r7] mov r2, r8 muls r2, r0 @@ -28818,9 +28818,9 @@ _0802A334: bl sub_81074C4 b _0802A49A .align 2, 0 -_0802A360: .4byte gUnknown_02024C10 -_0802A364: .4byte gUnknown_081D9913 -_0802A368: .4byte byte_2024C06 +_0802A360: .4byte gBattlescriptCurrInstr +_0802A364: .4byte BattleScript_NoItemSteal +_0802A368: .4byte gLastUsedAbility _0802A36C: lsls r0, r4, 1 ldr r4, _0802A458 @ =0x020160f0 @@ -28828,7 +28828,7 @@ _0802A36C: ldrh r5, [r5, 0x2E] mov r10, r5 strh r1, [r6] - ldr r3, _0802A45C @ =gPlayerMonIndex + ldr r3, _0802A45C @ =gBankAttacker ldrb r0, [r3] mov r1, r8 muls r1, r0 @@ -28843,8 +28843,8 @@ _0802A36C: add r0, r9 mov r3, r10 strh r3, [r0, 0x2E] - ldr r5, _0802A460 @ =gUnknown_02024A60 - ldr r1, _0802A45C @ =gPlayerMonIndex + ldr r5, _0802A460 @ =gActiveBank + ldr r1, _0802A45C @ =gBankAttacker ldrb r0, [r1] strb r0, [r5] str r6, [sp] @@ -28852,10 +28852,10 @@ _0802A36C: movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldr r2, _0802A45C @ =gPlayerMonIndex + bl EmitSetAttributes + ldr r2, _0802A45C @ =gBankAttacker ldrb r0, [r2] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution ldrb r0, [r7] strb r0, [r5] ldrb r0, [r7] @@ -28870,9 +28870,9 @@ _0802A36C: movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl dp01_build_cmdbuf_x02_a_b_varargs + bl EmitSetAttributes ldrb r0, [r7] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution ldr r0, _0802A464 @ =0xfffe9f10 adds r4, r0 ldrb r0, [r7] @@ -28889,7 +28889,7 @@ _0802A36C: adds r0, r4 movs r3, 0 strb r3, [r0] - ldr r3, _0802A45C @ =gPlayerMonIndex + ldr r3, _0802A45C @ =gBankAttacker ldrb r0, [r3] lsls r0, 1 adds r0, r2 @@ -28901,11 +28901,11 @@ _0802A36C: adds r0, r1 adds r0, r4 strb r2, [r0] - ldr r1, _0802A470 @ =gUnknown_02024C10 + ldr r1, _0802A470 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] - ldr r1, _0802A474 @ =gUnknown_030041C0 + ldr r1, _0802A474 @ =gBattleTextBuff1 movs r3, 0xFD strb r3, [r1] movs r2, 0xA @@ -28917,7 +28917,7 @@ _0802A36C: strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] - ldr r1, _0802A478 @ =gUnknown_03004290 + ldr r1, _0802A478 @ =gBattleTextBuff2 strb r3, [r1] strb r2, [r1, 0x1] mov r3, r10 @@ -28933,32 +28933,32 @@ _0802A36C: ldrh r0, [r6] cmp r0, 0 beq _0802A494 - ldr r1, _0802A47C @ =gUnknown_02024D1E + ldr r1, _0802A47C @ =gBattleCommunication movs r0, 0x2 b _0802A498 .align 2, 0 _0802A458: .4byte 0x020160f0 -_0802A45C: .4byte gPlayerMonIndex -_0802A460: .4byte gUnknown_02024A60 +_0802A45C: .4byte gBankAttacker +_0802A460: .4byte gActiveBank _0802A464: .4byte 0xfffe9f10 _0802A468: .4byte 0x000160e8 _0802A46C: .4byte 0x000160e9 -_0802A470: .4byte gUnknown_02024C10 -_0802A474: .4byte gUnknown_030041C0 -_0802A478: .4byte gUnknown_03004290 -_0802A47C: .4byte gUnknown_02024D1E +_0802A470: .4byte gBattlescriptCurrInstr +_0802A474: .4byte gBattleTextBuff1 +_0802A478: .4byte gBattleTextBuff2 +_0802A47C: .4byte gBattleCommunication _0802A480: ldrh r0, [r6] cmp r0, 0 beq _0802A494 - ldr r0, _0802A490 @ =gUnknown_02024D1E + ldr r0, _0802A490 @ =gBattleCommunication movs r3, 0 strb r3, [r0, 0x5] b _0802A49A .align 2, 0 -_0802A490: .4byte gUnknown_02024D1E +_0802A490: .4byte gBattleCommunication _0802A494: - ldr r1, _0802A4AC @ =gUnknown_02024D1E + ldr r1, _0802A4AC @ =gBattleCommunication movs r0, 0x1 _0802A498: strb r0, [r1, 0x5] @@ -28972,14 +28972,14 @@ _0802A49A: pop {r0} bx r0 .align 2, 0 -_0802A4AC: .4byte gUnknown_02024D1E +_0802A4AC: .4byte gBattleCommunication thumb_func_end sub_802A218 thumb_func_start sub_802A4B0 sub_802A4B0: @ 802A4B0 push {r4,lr} ldr r3, _0802A4F0 @ =gBattleMons - ldr r4, _0802A4F4 @ =gEnemyMonIndex + ldr r4, _0802A4F4 @ =gBankTarget ldrb r0, [r4] movs r2, 0x58 muls r0, r2 @@ -28991,32 +28991,32 @@ sub_802A4B0: @ 802A4B0 beq _0802A504 cmp r0, 0x19 beq _0802A504 - ldr r0, _0802A4F8 @ =gPlayerMonIndex + ldr r0, _0802A4F8 @ =gBankAttacker ldrb r0, [r0] muls r0, r2 adds r0, r3 adds r0, 0x20 strb r1, [r0] - ldr r1, _0802A4FC @ =byte_2024C06 + ldr r1, _0802A4FC @ =gLastUsedAbility ldrb r0, [r4] muls r0, r2 adds r0, r3 adds r0, 0x20 ldrb r0, [r0] strb r0, [r1] - ldr r1, _0802A500 @ =gUnknown_02024C10 + ldr r1, _0802A500 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _0802A51E .align 2, 0 _0802A4F0: .4byte gBattleMons -_0802A4F4: .4byte gEnemyMonIndex -_0802A4F8: .4byte gPlayerMonIndex -_0802A4FC: .4byte byte_2024C06 -_0802A500: .4byte gUnknown_02024C10 +_0802A4F4: .4byte gBankTarget +_0802A4F8: .4byte gBankAttacker +_0802A4FC: .4byte gLastUsedAbility +_0802A500: .4byte gBattlescriptCurrInstr _0802A504: - ldr r3, _0802A524 @ =gUnknown_02024C10 + ldr r3, _0802A524 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -29034,13 +29034,13 @@ _0802A51E: pop {r0} bx r0 .align 2, 0 -_0802A524: .4byte gUnknown_02024C10 +_0802A524: .4byte gBattlescriptCurrInstr thumb_func_end sub_802A4B0 thumb_func_start atkD4_802C408 atkD4_802C408: @ 802A528 push {r4-r7,lr} - ldr r7, _0802A53C @ =gUnknown_02024C10 + ldr r7, _0802A53C @ =gBattlescriptCurrInstr ldr r2, [r7] ldrb r3, [r2, 0x1] cmp r3, 0 @@ -29049,10 +29049,10 @@ atkD4_802C408: @ 802A528 beq _0802A578 b _0802A5F4 .align 2, 0 -_0802A53C: .4byte gUnknown_02024C10 +_0802A53C: .4byte gBattlescriptCurrInstr _0802A540: - ldr r1, _0802A56C @ =gUnknown_02024DBC - ldr r4, _0802A570 @ =gPlayerMonIndex + ldr r1, _0802A56C @ =gWishFutureKnock + ldr r4, _0802A570 @ =gBankAttacker adds r0, r1, 0 adds r0, 0x20 ldrb r5, [r4] @@ -29065,7 +29065,7 @@ _0802A540: ldrb r0, [r4] adds r1, 0x24 adds r1, r0, r1 - ldr r2, _0802A574 @ =gUnknown_02024A6A + ldr r2, _0802A574 @ =gBattlePartyID lsls r0, 1 adds r0, r2 ldrh r0, [r0] @@ -29074,19 +29074,19 @@ _0802A540: adds r0, 0x6 b _0802A5F2 .align 2, 0 -_0802A56C: .4byte gUnknown_02024DBC -_0802A570: .4byte gPlayerMonIndex -_0802A574: .4byte gUnknown_02024A6A +_0802A56C: .4byte gWishFutureKnock +_0802A570: .4byte gBankAttacker +_0802A574: .4byte gBattlePartyID _0802A578: - ldr r1, _0802A5DC @ =gUnknown_030041C0 + ldr r1, _0802A5DC @ =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x4 strb r0, [r1, 0x1] - ldr r4, _0802A5E0 @ =gEnemyMonIndex + ldr r4, _0802A5E0 @ =gBankTarget ldrb r0, [r4] strb r0, [r1, 0x2] - ldr r0, _0802A5E4 @ =gUnknown_02024DBC + ldr r0, _0802A5E4 @ =gWishFutureKnock adds r0, 0x24 ldrb r5, [r4] adds r0, r5 @@ -29131,9 +29131,9 @@ _0802A5C4: str r1, [r7] b _0802A5F4 .align 2, 0 -_0802A5DC: .4byte gUnknown_030041C0 -_0802A5E0: .4byte gEnemyMonIndex -_0802A5E4: .4byte gUnknown_02024DBC +_0802A5DC: .4byte gBattleTextBuff1 +_0802A5E0: .4byte gBankTarget +_0802A5E4: .4byte gWishFutureKnock _0802A5E8: .4byte gBattleMoveDamage _0802A5EC: .4byte gBattleMons _0802A5F0: @@ -29149,8 +29149,8 @@ _0802A5F4: thumb_func_start sub_802A5FC sub_802A5FC: @ 802A5FC push {lr} - ldr r1, _0802A634 @ =gUnknown_02024C98 - ldr r0, _0802A638 @ =gPlayerMonIndex + ldr r1, _0802A634 @ =gStatuses3 + ldr r0, _0802A638 @ =gBankAttacker ldrb r0, [r0] lsls r0, 2 adds r2, r0, r1 @@ -29161,7 +29161,7 @@ sub_802A5FC: @ 802A5FC ands r0, r3 cmp r0, 0 beq _0802A640 - ldr r3, _0802A63C @ =gUnknown_02024C10 + ldr r3, _0802A63C @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -29176,13 +29176,13 @@ sub_802A5FC: @ 802A5FC str r1, [r3] b _0802A64C .align 2, 0 -_0802A634: .4byte gUnknown_02024C98 -_0802A638: .4byte gPlayerMonIndex -_0802A63C: .4byte gUnknown_02024C10 +_0802A634: .4byte gStatuses3 +_0802A638: .4byte gBankAttacker +_0802A63C: .4byte gBattlescriptCurrInstr _0802A640: orrs r1, r3 str r1, [r2] - ldr r1, _0802A650 @ =gUnknown_02024C10 + ldr r1, _0802A650 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] @@ -29190,14 +29190,14 @@ _0802A64C: pop {r0} bx r0 .align 2, 0 -_0802A650: .4byte gUnknown_02024C10 +_0802A650: .4byte gBattlescriptCurrInstr thumb_func_end sub_802A5FC thumb_func_start atkD6_doubledamagedealtifdamaged atkD6_doubledamagedealtifdamaged: @ 802A654 push {lr} - ldr r3, _0802A6A4 @ =gUnknown_02024D28 - ldr r0, _0802A6A8 @ =gPlayerMonIndex + ldr r3, _0802A6A4 @ =gProtectStructs + ldr r0, _0802A6A8 @ =gBankAttacker ldrb r0, [r0] lsls r2, r0, 4 adds r0, r3, 0x4 @@ -29206,7 +29206,7 @@ atkD6_doubledamagedealtifdamaged: @ 802A654 cmp r0, 0 beq _0802A674 adds r0, r2, r3 - ldr r1, _0802A6AC @ =gEnemyMonIndex + ldr r1, _0802A6AC @ =gBankTarget ldrb r0, [r0, 0xC] ldrb r1, [r1] cmp r0, r1 @@ -29219,7 +29219,7 @@ _0802A674: cmp r0, 0 beq _0802A696 adds r0, r2, r3 - ldr r1, _0802A6AC @ =gEnemyMonIndex + ldr r1, _0802A6AC @ =gBankTarget ldrb r0, [r0, 0xD] ldrb r1, [r1] cmp r0, r1 @@ -29231,26 +29231,26 @@ _0802A68C: movs r1, 0x2 strb r1, [r0] _0802A696: - ldr r1, _0802A6B8 @ =gUnknown_02024C10 + ldr r1, _0802A6B8 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .align 2, 0 -_0802A6A4: .4byte gUnknown_02024D28 -_0802A6A8: .4byte gPlayerMonIndex -_0802A6AC: .4byte gEnemyMonIndex +_0802A6A4: .4byte gProtectStructs +_0802A6A8: .4byte gBankAttacker +_0802A6AC: .4byte gBankTarget _0802A6B0: .4byte 0x02000000 _0802A6B4: .4byte 0x0001601f -_0802A6B8: .4byte gUnknown_02024C10 +_0802A6B8: .4byte gBattlescriptCurrInstr thumb_func_end atkD6_doubledamagedealtifdamaged thumb_func_start sub_802A6BC sub_802A6BC: @ 802A6BC push {r4,lr} - ldr r1, _0802A700 @ =gUnknown_02024C98 - ldr r0, _0802A704 @ =gEnemyMonIndex + ldr r1, _0802A700 @ =gStatuses3 + ldr r0, _0802A704 @ =gBankTarget ldrb r3, [r0] lsls r0, r3, 2 adds r4, r0, r1 @@ -29269,7 +29269,7 @@ sub_802A6BC: @ 802A6BC cmp r0, 0 beq _0802A710 _0802A6E4: - ldr r3, _0802A70C @ =gUnknown_02024C10 + ldr r3, _0802A70C @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -29284,16 +29284,16 @@ _0802A6E4: str r1, [r3] b _0802A720 .align 2, 0 -_0802A700: .4byte gUnknown_02024C98 -_0802A704: .4byte gEnemyMonIndex +_0802A700: .4byte gStatuses3 +_0802A704: .4byte gBankTarget _0802A708: .4byte gBattleMons -_0802A70C: .4byte gUnknown_02024C10 +_0802A70C: .4byte gBattlescriptCurrInstr _0802A710: movs r0, 0x80 lsls r0, 5 orrs r2, r0 str r2, [r4] - ldr r1, _0802A728 @ =gUnknown_02024C10 + ldr r1, _0802A728 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] @@ -29302,19 +29302,19 @@ _0802A720: pop {r0} bx r0 .align 2, 0 -_0802A728: .4byte gUnknown_02024C10 +_0802A728: .4byte gBattlescriptCurrInstr thumb_func_end sub_802A6BC thumb_func_start atkD8_setdamagetohealthdifference atkD8_setdamagetohealthdifference: @ 802A72C push {lr} ldr r2, _0802A768 @ =gBattleMons - ldr r0, _0802A76C @ =gEnemyMonIndex + ldr r0, _0802A76C @ =gBankTarget ldrb r0, [r0] movs r1, 0x58 muls r0, r1 adds r3, r0, r2 - ldr r0, _0802A770 @ =gPlayerMonIndex + ldr r0, _0802A770 @ =gBankAttacker ldrb r0, [r0] muls r0, r1 adds r1, r0, r2 @@ -29322,7 +29322,7 @@ atkD8_setdamagetohealthdifference: @ 802A72C ldrh r2, [r1, 0x28] cmp r0, r2 bhi _0802A778 - ldr r3, _0802A774 @ =gUnknown_02024C10 + ldr r3, _0802A774 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -29338,16 +29338,16 @@ atkD8_setdamagetohealthdifference: @ 802A72C b _0802A78A .align 2, 0 _0802A768: .4byte gBattleMons -_0802A76C: .4byte gEnemyMonIndex -_0802A770: .4byte gPlayerMonIndex -_0802A774: .4byte gUnknown_02024C10 +_0802A76C: .4byte gBankTarget +_0802A770: .4byte gBankAttacker +_0802A774: .4byte gBattlescriptCurrInstr _0802A778: ldr r2, _0802A790 @ =gBattleMoveDamage ldrh r0, [r3, 0x28] ldrh r1, [r1, 0x28] subs r0, r1 str r0, [r2] - ldr r1, _0802A794 @ =gUnknown_02024C10 + ldr r1, _0802A794 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] @@ -29356,18 +29356,18 @@ _0802A78A: bx r0 .align 2, 0 _0802A790: .4byte gBattleMoveDamage -_0802A794: .4byte gUnknown_02024C10 +_0802A794: .4byte gBattlescriptCurrInstr thumb_func_end atkD8_setdamagetohealthdifference thumb_func_start atkD9_scaledamagebyhealthratio atkD9_scaledamagebyhealthratio: @ 802A798 push {r4,lr} - ldr r4, _0802A7E4 @ =gUnknown_02024DEC + ldr r4, _0802A7E4 @ =gDynamicBasePower ldrh r0, [r4] cmp r0, 0 bne _0802A7D4 ldr r2, _0802A7E8 @ =gBattleMoves - ldr r0, _0802A7EC @ =gUnknown_02024BE6 + ldr r0, _0802A7EC @ =gCurrentMove ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -29375,7 +29375,7 @@ atkD9_scaledamagebyhealthratio: @ 802A798 adds r0, r2 ldrb r3, [r0, 0x1] ldr r2, _0802A7F0 @ =gBattleMons - ldr r0, _0802A7F4 @ =gPlayerMonIndex + ldr r0, _0802A7F4 @ =gBankAttacker ldrb r1, [r0] movs r0, 0x58 muls r1, r0 @@ -29391,7 +29391,7 @@ atkD9_scaledamagebyhealthratio: @ 802A798 movs r0, 0x1 strh r0, [r4] _0802A7D4: - ldr r1, _0802A7F8 @ =gUnknown_02024C10 + ldr r1, _0802A7F8 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -29399,19 +29399,19 @@ _0802A7D4: pop {r0} bx r0 .align 2, 0 -_0802A7E4: .4byte gUnknown_02024DEC +_0802A7E4: .4byte gDynamicBasePower _0802A7E8: .4byte gBattleMoves -_0802A7EC: .4byte gUnknown_02024BE6 +_0802A7EC: .4byte gCurrentMove _0802A7F0: .4byte gBattleMons -_0802A7F4: .4byte gPlayerMonIndex -_0802A7F8: .4byte gUnknown_02024C10 +_0802A7F4: .4byte gBankAttacker +_0802A7F8: .4byte gBattlescriptCurrInstr thumb_func_end atkD9_scaledamagebyhealthratio thumb_func_start atkDA_abilityswap atkDA_abilityswap: @ 802A7FC push {r4-r6,lr} ldr r5, _0802A860 @ =gBattleMons - ldr r0, _0802A864 @ =gPlayerMonIndex + ldr r0, _0802A864 @ =gBankAttacker ldrb r0, [r0] movs r4, 0x58 muls r0, r4 @@ -29421,7 +29421,7 @@ atkDA_abilityswap: @ 802A7FC ldrb r1, [r2] cmp r1, 0 bne _0802A824 - ldr r0, _0802A868 @ =gEnemyMonIndex + ldr r0, _0802A868 @ =gBankTarget ldrb r0, [r0] muls r0, r4 adds r0, r5 @@ -29432,7 +29432,7 @@ atkDA_abilityswap: @ 802A7FC _0802A824: cmp r1, 0x19 beq _0802A844 - ldr r6, _0802A868 @ =gEnemyMonIndex + ldr r6, _0802A868 @ =gBankTarget ldrb r0, [r6] muls r0, r4 adds r0, r5 @@ -29447,7 +29447,7 @@ _0802A824: cmp r0, 0 beq _0802A874 _0802A844: - ldr r3, _0802A870 @ =gUnknown_02024C10 + ldr r3, _0802A870 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -29463,10 +29463,10 @@ _0802A844: b _0802A88A .align 2, 0 _0802A860: .4byte gBattleMons -_0802A864: .4byte gPlayerMonIndex -_0802A868: .4byte gEnemyMonIndex +_0802A864: .4byte gBankAttacker +_0802A868: .4byte gBankTarget _0802A86C: .4byte gBattleMoveFlags -_0802A870: .4byte gUnknown_02024C10 +_0802A870: .4byte gBattlescriptCurrInstr _0802A874: ldrb r1, [r2] strb r3, [r2] @@ -29475,7 +29475,7 @@ _0802A874: adds r0, r5 adds r0, 0x20 strb r1, [r0] - ldr r1, _0802A890 @ =gUnknown_02024C10 + ldr r1, _0802A890 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] @@ -29484,7 +29484,7 @@ _0802A88A: pop {r0} bx r0 .align 2, 0 -_0802A890: .4byte gUnknown_02024C10 +_0802A890: .4byte gBattlescriptCurrInstr thumb_func_end atkDA_abilityswap thumb_func_start atkDB_imprisoneffect @@ -29495,8 +29495,8 @@ atkDB_imprisoneffect: @ 802A894 push {r6,r7} movs r0, 0 mov r8, r0 - ldr r1, _0802A8B8 @ =gUnknown_02024C98 - ldr r0, _0802A8BC @ =gPlayerMonIndex + ldr r1, _0802A8B8 @ =gStatuses3 + ldr r0, _0802A8BC @ =gBankAttacker ldrb r2, [r0] lsls r0, r2, 2 adds r0, r1 @@ -29508,10 +29508,10 @@ atkDB_imprisoneffect: @ 802A894 beq _0802A8E8 b _0802A95E .align 2, 0 -_0802A8B8: .4byte gUnknown_02024C98 -_0802A8BC: .4byte gPlayerMonIndex +_0802A8B8: .4byte gStatuses3 +_0802A8BC: .4byte gBankAttacker _0802A8C0: - ldr r0, _0802A8E0 @ =gUnknown_02024C98 + ldr r0, _0802A8E0 @ =gStatuses3 mov r2, r9 ldrb r1, [r2] lsls r1, 2 @@ -29521,14 +29521,14 @@ _0802A8C0: lsls r2, 6 orrs r0, r2 str r0, [r1] - ldr r1, _0802A8E4 @ =gUnknown_02024C10 + ldr r1, _0802A8E4 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _0802A956 .align 2, 0 -_0802A8E0: .4byte gUnknown_02024C98 -_0802A8E4: .4byte gUnknown_02024C10 +_0802A8E0: .4byte gStatuses3 +_0802A8E4: .4byte gBattlescriptCurrInstr _0802A8E8: adds r0, r2, 0 bl sub_801529C @@ -29536,13 +29536,13 @@ _0802A8E8: b _0802A94E _0802A8F2: adds r0, r6, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r8, r0 beq _0802A948 movs r4, 0 - ldr r7, _0802A984 @ =gPlayerMonIndex + ldr r7, _0802A984 @ =gBankAttacker mov r9, r7 ldr r0, _0802A988 @ =gBattleMons mov r12, r0 @@ -29587,17 +29587,17 @@ _0802A948: lsls r0, 24 lsrs r6, r0, 24 _0802A94E: - ldr r0, _0802A98C @ =gUnknown_02024A68 + ldr r0, _0802A98C @ =gNoOfAllBanks ldrb r0, [r0] cmp r6, r0 bcc _0802A8F2 _0802A956: - ldr r0, _0802A98C @ =gUnknown_02024A68 + ldr r0, _0802A98C @ =gNoOfAllBanks ldrb r0, [r0] cmp r6, r0 bne _0802A978 _0802A95E: - ldr r3, _0802A990 @ =gUnknown_02024C10 + ldr r3, _0802A990 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -29618,17 +29618,17 @@ _0802A978: pop {r0} bx r0 .align 2, 0 -_0802A984: .4byte gPlayerMonIndex +_0802A984: .4byte gBankAttacker _0802A988: .4byte gBattleMons -_0802A98C: .4byte gUnknown_02024A68 -_0802A990: .4byte gUnknown_02024C10 +_0802A98C: .4byte gNoOfAllBanks +_0802A990: .4byte gBattlescriptCurrInstr thumb_func_end atkDB_imprisoneffect thumb_func_start atkDC_setgrudge atkDC_setgrudge: @ 802A994 push {lr} - ldr r1, _0802A9CC @ =gUnknown_02024C98 - ldr r0, _0802A9D0 @ =gPlayerMonIndex + ldr r1, _0802A9CC @ =gStatuses3 + ldr r0, _0802A9D0 @ =gBankAttacker ldrb r0, [r0] lsls r0, 2 adds r2, r0, r1 @@ -29639,7 +29639,7 @@ atkDC_setgrudge: @ 802A994 ands r0, r3 cmp r0, 0 beq _0802A9D8 - ldr r3, _0802A9D4 @ =gUnknown_02024C10 + ldr r3, _0802A9D4 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -29654,13 +29654,13 @@ atkDC_setgrudge: @ 802A994 str r1, [r3] b _0802A9E4 .align 2, 0 -_0802A9CC: .4byte gUnknown_02024C98 -_0802A9D0: .4byte gPlayerMonIndex -_0802A9D4: .4byte gUnknown_02024C10 +_0802A9CC: .4byte gStatuses3 +_0802A9D0: .4byte gBankAttacker +_0802A9D4: .4byte gBattlescriptCurrInstr _0802A9D8: orrs r1, r3 str r1, [r2] - ldr r1, _0802A9E8 @ =gUnknown_02024C10 + ldr r1, _0802A9E8 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] @@ -29668,7 +29668,7 @@ _0802A9E4: pop {r0} bx r0 .align 2, 0 -_0802A9E8: .4byte gUnknown_02024C10 +_0802A9E8: .4byte gBattlescriptCurrInstr thumb_func_end atkDC_setgrudge thumb_func_start atkDD_weightdamagecalculation @@ -29688,7 +29688,7 @@ atkDD_weightdamagecalculation: @ 802A9EC adds r7, r1, 0 adds r4, r6, 0 _0802AA08: - ldr r0, _0802AA5C @ =gEnemyMonIndex + ldr r0, _0802AA5C @ =gBankTarget ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -29716,7 +29716,7 @@ _0802AA36: ldr r0, _0802AA54 @ =0x0000ffff cmp r1, r0 beq _0802AA64 - ldr r0, _0802AA60 @ =gUnknown_02024DEC + ldr r0, _0802AA60 @ =gDynamicBasePower adds r1, r5, 0x1 lsls r1, 1 adds r1, r6 @@ -29727,14 +29727,14 @@ _0802AA36: _0802AA50: .4byte gWeightDamage _0802AA54: .4byte 0x0000ffff _0802AA58: .4byte gBattleMons -_0802AA5C: .4byte gEnemyMonIndex -_0802AA60: .4byte gUnknown_02024DEC +_0802AA5C: .4byte gBankTarget +_0802AA60: .4byte gDynamicBasePower _0802AA64: - ldr r1, _0802AA7C @ =gUnknown_02024DEC + ldr r1, _0802AA7C @ =gDynamicBasePower movs r0, 0x78 strh r0, [r1] _0802AA6A: - ldr r1, _0802AA80 @ =gUnknown_02024C10 + ldr r1, _0802AA80 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -29744,8 +29744,8 @@ _0802AA6A: pop {r0} bx r0 .align 2, 0 -_0802AA7C: .4byte gUnknown_02024DEC -_0802AA80: .4byte gUnknown_02024C10 +_0802AA7C: .4byte gDynamicBasePower +_0802AA80: .4byte gBattlescriptCurrInstr thumb_func_end atkDD_weightdamagecalculation thumb_func_start atkDE_asistattackselect @@ -29758,9 +29758,9 @@ atkDE_asistattackselect: @ 802AA84 sub sp, 0x8 movs r0, 0 mov r10, r0 - ldr r0, _0802AB9C @ =gPlayerMonIndex + ldr r0, _0802AB9C @ =gBankAttacker ldrb r0, [r0] - bl battle_get_per_side_status + bl GetBankIdentity movs r1, 0x1 ands r1, r0 ldr r0, _0802ABA0 @ =gPlayerParty @@ -29772,8 +29772,8 @@ atkDE_asistattackselect: @ 802AA84 _0802AAAC: movs r2, 0 _0802AAAE: - ldr r1, _0802ABA8 @ =gUnknown_02024A6A - ldr r0, _0802AB9C @ =gPlayerMonIndex + ldr r1, _0802ABA8 @ =gBattlePartyID + ldr r0, _0802AB9C @ =gBankAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -29863,7 +29863,7 @@ _0802AB54: mov r1, r10 cmp r1, 0 beq _0802ABCC - ldr r2, _0802ABB8 @ =gUnknown_02024C6C + ldr r2, _0802ABB8 @ =gHitMarker ldr r0, [r2] ldr r1, _0802ABBC @ =0xfffffbff ands r0, r1 @@ -29883,28 +29883,28 @@ _0802AB54: ldrh r0, [r4] movs r1, 0 bl sub_801B5C0 - ldr r1, _0802ABC4 @ =gEnemyMonIndex + ldr r1, _0802ABC4 @ =gBankTarget strb r0, [r1] - ldr r1, _0802ABC8 @ =gUnknown_02024C10 + ldr r1, _0802ABC8 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _0802ABE6 .align 2, 0 -_0802AB9C: .4byte gPlayerMonIndex +_0802AB9C: .4byte gBankAttacker _0802ABA0: .4byte gPlayerParty _0802ABA4: .4byte gEnemyParty -_0802ABA8: .4byte gUnknown_02024A6A +_0802ABA8: .4byte gBattlePartyID _0802ABAC: .4byte 0x0000ffff _0802ABB0: .4byte 0x02016024 _0802ABB4: .4byte gUnknown_081FACFE -_0802ABB8: .4byte gUnknown_02024C6C +_0802ABB8: .4byte gHitMarker _0802ABBC: .4byte 0xfffffbff _0802ABC0: .4byte gUnknown_02024BEA -_0802ABC4: .4byte gEnemyMonIndex -_0802ABC8: .4byte gUnknown_02024C10 +_0802ABC4: .4byte gBankTarget +_0802ABC8: .4byte gBattlescriptCurrInstr _0802ABCC: - ldr r3, _0802ABF8 @ =gUnknown_02024C10 + ldr r3, _0802ABF8 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -29927,17 +29927,17 @@ _0802ABE6: pop {r0} bx r0 .align 2, 0 -_0802ABF8: .4byte gUnknown_02024C10 +_0802ABF8: .4byte gBattlescriptCurrInstr thumb_func_end atkDE_asistattackselect thumb_func_start atkDF_setmagiccoat atkDF_setmagiccoat: @ 802ABFC push {lr} - ldr r1, _0802AC44 @ =gEnemyMonIndex - ldr r3, _0802AC48 @ =gPlayerMonIndex + ldr r1, _0802AC44 @ =gBankTarget + ldr r3, _0802AC48 @ =gBankAttacker ldrb r0, [r3] strb r0, [r1] - ldr r2, _0802AC4C @ =gUnknown_02024D68 + ldr r2, _0802AC4C @ =gSpecialStatuses ldrb r1, [r3] lsls r0, r1, 2 adds r0, r1 @@ -29947,14 +29947,14 @@ atkDF_setmagiccoat: @ 802ABFC movs r2, 0x20 orrs r1, r2 strb r1, [r0] - ldr r0, _0802AC50 @ =gUnknown_02024A7E + ldr r0, _0802AC50 @ =gCurrentMoveTurn ldrb r1, [r0] - ldr r0, _0802AC54 @ =gUnknown_02024A68 + ldr r0, _0802AC54 @ =gNoOfAllBanks ldrb r0, [r0] subs r0, 0x1 cmp r1, r0 bne _0802AC5C - ldr r3, _0802AC58 @ =gUnknown_02024C10 + ldr r3, _0802AC58 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -29969,14 +29969,14 @@ atkDF_setmagiccoat: @ 802ABFC str r1, [r3] b _0802AC74 .align 2, 0 -_0802AC44: .4byte gEnemyMonIndex -_0802AC48: .4byte gPlayerMonIndex -_0802AC4C: .4byte gUnknown_02024D68 -_0802AC50: .4byte gUnknown_02024A7E -_0802AC54: .4byte gUnknown_02024A68 -_0802AC58: .4byte gUnknown_02024C10 +_0802AC44: .4byte gBankTarget +_0802AC48: .4byte gBankAttacker +_0802AC4C: .4byte gSpecialStatuses +_0802AC50: .4byte gCurrentMoveTurn +_0802AC54: .4byte gNoOfAllBanks +_0802AC58: .4byte gBattlescriptCurrInstr _0802AC5C: - ldr r0, _0802AC78 @ =gUnknown_02024D28 + ldr r0, _0802AC78 @ =gProtectStructs ldrb r1, [r3] lsls r1, 4 adds r1, r0 @@ -29984,7 +29984,7 @@ _0802AC5C: movs r2, 0x10 orrs r0, r2 strb r0, [r1] - ldr r1, _0802AC7C @ =gUnknown_02024C10 + ldr r1, _0802AC7C @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] @@ -29992,15 +29992,15 @@ _0802AC74: pop {r0} bx r0 .align 2, 0 -_0802AC78: .4byte gUnknown_02024D28 -_0802AC7C: .4byte gUnknown_02024C10 +_0802AC78: .4byte gProtectStructs +_0802AC7C: .4byte gBattlescriptCurrInstr thumb_func_end atkDF_setmagiccoat thumb_func_start atkE0_setstealstatchange atkE0_setstealstatchange: @ 802AC80 push {lr} - ldr r2, _0802ACC4 @ =gUnknown_02024D68 - ldr r3, _0802ACC8 @ =gPlayerMonIndex + ldr r2, _0802ACC4 @ =gSpecialStatuses + ldr r3, _0802ACC8 @ =gBankAttacker ldrb r1, [r3] lsls r0, r1, 2 adds r0, r1 @@ -30010,14 +30010,14 @@ atkE0_setstealstatchange: @ 802AC80 movs r2, 0x20 orrs r1, r2 strb r1, [r0] - ldr r0, _0802ACCC @ =gUnknown_02024A7E + ldr r0, _0802ACCC @ =gCurrentMoveTurn ldrb r1, [r0] - ldr r0, _0802ACD0 @ =gUnknown_02024A68 + ldr r0, _0802ACD0 @ =gNoOfAllBanks ldrb r0, [r0] subs r0, 0x1 cmp r1, r0 bne _0802ACD8 - ldr r3, _0802ACD4 @ =gUnknown_02024C10 + ldr r3, _0802ACD4 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -30032,20 +30032,20 @@ atkE0_setstealstatchange: @ 802AC80 str r1, [r3] b _0802ACEE .align 2, 0 -_0802ACC4: .4byte gUnknown_02024D68 -_0802ACC8: .4byte gPlayerMonIndex -_0802ACCC: .4byte gUnknown_02024A7E -_0802ACD0: .4byte gUnknown_02024A68 -_0802ACD4: .4byte gUnknown_02024C10 +_0802ACC4: .4byte gSpecialStatuses +_0802ACC8: .4byte gBankAttacker +_0802ACCC: .4byte gCurrentMoveTurn +_0802ACD0: .4byte gNoOfAllBanks +_0802ACD4: .4byte gBattlescriptCurrInstr _0802ACD8: - ldr r0, _0802ACF4 @ =gUnknown_02024D28 + ldr r0, _0802ACF4 @ =gProtectStructs ldrb r1, [r3] lsls r1, 4 adds r1, r0 ldrb r0, [r1] orrs r0, r2 strb r0, [r1] - ldr r1, _0802ACF8 @ =gUnknown_02024C10 + ldr r1, _0802ACF8 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] @@ -30053,8 +30053,8 @@ _0802ACEE: pop {r0} bx r0 .align 2, 0 -_0802ACF4: .4byte gUnknown_02024D28 -_0802ACF8: .4byte gUnknown_02024C10 +_0802ACF4: .4byte gProtectStructs +_0802ACF8: .4byte gBattlescriptCurrInstr thumb_func_end atkE0_setstealstatchange thumb_func_start atkE1_802CBE4 @@ -30068,10 +30068,10 @@ atkE1_802CBE4: @ 802ACFC adds r4, r1 strb r0, [r4] ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r5, r0, 24 - ldr r2, _0802ADA8 @ =gUnknown_030041C0 + ldr r2, _0802ADA8 @ =gBattleTextBuff1 movs r0, 0xFD strb r0, [r2] movs r0, 0x9 @@ -30086,8 +30086,8 @@ atkE1_802CBE4: @ 802ACFC strb r0, [r2, 0x2] movs r0, 0xFF strb r0, [r2, 0x3] - ldr r2, _0802ADB0 @ =gEnemyMonIndex - ldr r1, _0802ADB4 @ =gUnknown_02024A68 + ldr r2, _0802ADB0 @ =gBankTarget + ldr r1, _0802ADB4 @ =gNoOfAllBanks ldrb r0, [r2] ldrb r1, [r1] cmp r0, r1 @@ -30096,26 +30096,26 @@ atkE1_802CBE4: @ 802ACFC ldr r6, _0802ADB8 @ =gBitTable _0802AD44: ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, r5 beq _0802AD66 - ldr r0, _0802ADBC @ =gUnknown_02024C0C + ldr r0, _0802ADBC @ =gAbsentBankFlags ldrb r1, [r0] ldrb r0, [r4] lsls r0, 2 adds r0, r6 ldr r0, [r0] ands r1, r0 - ldr r2, _0802ADB4 @ =gUnknown_02024A68 + ldr r2, _0802ADB4 @ =gNoOfAllBanks cmp r1, 0 beq _0802AD7A _0802AD66: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] - ldr r1, _0802ADB4 @ =gUnknown_02024A68 + ldr r1, _0802ADB4 @ =gNoOfAllBanks lsls r0, 24 lsrs r0, 24 adds r2, r1, 0 @@ -30123,13 +30123,13 @@ _0802AD66: cmp r0, r1 bcc _0802AD44 _0802AD7A: - ldr r0, _0802ADB0 @ =gEnemyMonIndex + ldr r0, _0802ADB0 @ =gBankTarget ldrb r0, [r0] ldrb r2, [r2] cmp r0, r2 bcc _0802ADC4 _0802AD84: - ldr r3, _0802ADC0 @ =gUnknown_02024C10 + ldr r3, _0802ADC0 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -30146,15 +30146,15 @@ _0802AD84: .align 2, 0 _0802ADA0: .4byte 0x02000000 _0802ADA4: .4byte 0x000160dd -_0802ADA8: .4byte gUnknown_030041C0 +_0802ADA8: .4byte gBattleTextBuff1 _0802ADAC: .4byte gBattleMons -_0802ADB0: .4byte gEnemyMonIndex -_0802ADB4: .4byte gUnknown_02024A68 +_0802ADB0: .4byte gBankTarget +_0802ADB4: .4byte gNoOfAllBanks _0802ADB8: .4byte gBitTable -_0802ADBC: .4byte gUnknown_02024C0C -_0802ADC0: .4byte gUnknown_02024C10 +_0802ADBC: .4byte gAbsentBankFlags +_0802ADC0: .4byte gBattlescriptCurrInstr _0802ADC4: - ldr r1, _0802ADD4 @ =gUnknown_02024C10 + ldr r1, _0802ADD4 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] @@ -30163,18 +30163,18 @@ _0802ADCC: pop {r0} bx r0 .align 2, 0 -_0802ADD4: .4byte gUnknown_02024C10 +_0802ADD4: .4byte gBattlescriptCurrInstr thumb_func_end atkE1_802CBE4 thumb_func_start sub_802ADD8 sub_802ADD8: @ 802ADD8 push {r4-r7,lr} sub sp, 0x4 - ldr r6, _0802AE44 @ =gUnknown_02024C10 + ldr r6, _0802AE44 @ =gBattlescriptCurrInstr ldr r0, [r6] ldrb r0, [r0, 0x1] bl sub_8015150 - ldr r5, _0802AE48 @ =gUnknown_02024A60 + ldr r5, _0802AE48 @ =gActiveBank strb r0, [r5] ldr r4, _0802AE4C @ =gBattleMons ldrb r0, [r5] @@ -30208,9 +30208,9 @@ sub_802ADD8: @ 802ADD8 movs r0, 0 movs r1, 0x28 movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs + bl EmitSetAttributes ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution _0802AE34: ldr r0, [r6] adds r0, 0x2 @@ -30220,8 +30220,8 @@ _0802AE34: pop {r0} bx r0 .align 2, 0 -_0802AE44: .4byte gUnknown_02024C10 -_0802AE48: .4byte gUnknown_02024A60 +_0802AE44: .4byte gBattlescriptCurrInstr +_0802AE48: .4byte gActiveBank _0802AE4C: .4byte gBattleMons _0802AE50: .4byte gBitTable _0802AE54: .4byte 0x02000000 @@ -30231,11 +30231,11 @@ _0802AE58: .4byte 0x00016064 thumb_func_start atkE3_jumpiffainted atkE3_jumpiffainted: @ 802AE5C push {r4,lr} - ldr r4, _0802AE98 @ =gUnknown_02024C10 + ldr r4, _0802AE98 @ =gBattlescriptCurrInstr ldr r0, [r4] ldrb r0, [r0, 0x1] bl sub_8015150 - ldr r1, _0802AE9C @ =gUnknown_02024A60 + ldr r1, _0802AE9C @ =gActiveBank strb r0, [r1] ldr r2, _0802AEA0 @ =gBattleMons ldrb r1, [r1] @@ -30259,8 +30259,8 @@ atkE3_jumpiffainted: @ 802AE5C str r1, [r4] b _0802AEAA .align 2, 0 -_0802AE98: .4byte gUnknown_02024C10 -_0802AE9C: .4byte gUnknown_02024A60 +_0802AE98: .4byte gBattlescriptCurrInstr +_0802AE9C: .4byte gActiveBank _0802AEA0: .4byte gBattleMons _0802AEA4: ldr r0, [r4] @@ -30298,67 +30298,67 @@ _0802AECC: .4byte _0802AF34 .4byte _0802AF40 _0802AEEC: - ldr r1, _0802AEF4 @ =gUnknown_02024D1E + ldr r1, _0802AEF4 @ =gBattleCommunication movs r0, 0x2 b _0802AF50 .align 2, 0 -_0802AEF4: .4byte gUnknown_02024D1E +_0802AEF4: .4byte gBattleCommunication _0802AEF8: - ldr r1, _0802AF00 @ =gUnknown_02024D1E + ldr r1, _0802AF00 @ =gBattleCommunication movs r0, 0x1 b _0802AF50 .align 2, 0 -_0802AF00: .4byte gUnknown_02024D1E +_0802AF00: .4byte gBattleCommunication _0802AF04: - ldr r1, _0802AF0C @ =gUnknown_02024D1E + ldr r1, _0802AF0C @ =gBattleCommunication movs r0, 0x1B b _0802AF50 .align 2, 0 -_0802AF0C: .4byte gUnknown_02024D1E +_0802AF0C: .4byte gBattleCommunication _0802AF10: - ldr r1, _0802AF18 @ =gUnknown_02024D1E + ldr r1, _0802AF18 @ =gBattleCommunication movs r0, 0x17 b _0802AF50 .align 2, 0 -_0802AF18: .4byte gUnknown_02024D1E +_0802AF18: .4byte gBattleCommunication _0802AF1C: - ldr r1, _0802AF24 @ =gUnknown_02024D1E + ldr r1, _0802AF24 @ =gBattleCommunication movs r0, 0x16 b _0802AF50 .align 2, 0 -_0802AF24: .4byte gUnknown_02024D1E +_0802AF24: .4byte gBattleCommunication _0802AF28: - ldr r1, _0802AF30 @ =gUnknown_02024D1E + ldr r1, _0802AF30 @ =gBattleCommunication movs r0, 0x18 b _0802AF50 .align 2, 0 -_0802AF30: .4byte gUnknown_02024D1E +_0802AF30: .4byte gBattleCommunication _0802AF34: - ldr r1, _0802AF3C @ =gUnknown_02024D1E + ldr r1, _0802AF3C @ =gBattleCommunication movs r0, 0x7 b _0802AF50 .align 2, 0 -_0802AF3C: .4byte gUnknown_02024D1E +_0802AF3C: .4byte gBattleCommunication _0802AF40: - ldr r1, _0802AF48 @ =gUnknown_02024D1E + ldr r1, _0802AF48 @ =gBattleCommunication movs r0, 0x8 b _0802AF50 .align 2, 0 -_0802AF48: .4byte gUnknown_02024D1E +_0802AF48: .4byte gBattleCommunication _0802AF4C: - ldr r1, _0802AF60 @ =gUnknown_02024D1E + ldr r1, _0802AF60 @ =gBattleCommunication movs r0, 0x5 _0802AF50: strb r0, [r1, 0x3] - ldr r1, _0802AF64 @ =gUnknown_02024C10 + ldr r1, _0802AF64 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .align 2, 0 -_0802AF60: .4byte gUnknown_02024D1E -_0802AF64: .4byte gUnknown_02024C10 +_0802AF60: .4byte gBattleCommunication +_0802AF64: .4byte gBattlescriptCurrInstr thumb_func_end sub_802AEB0 thumb_func_start sub_802AF68 @@ -30463,7 +30463,7 @@ _0802B032: adds r7, r4, 0 cmp r7, 0x5 ble _0802AF7A - ldr r1, _0802B050 @ =gUnknown_02024C10 + ldr r1, _0802B050 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -30475,13 +30475,13 @@ _0802B032: bx r0 .align 2, 0 _0802B04C: .4byte gPlayerParty -_0802B050: .4byte gUnknown_02024C10 +_0802B050: .4byte gBattlescriptCurrInstr thumb_func_end sub_802AF68 thumb_func_start atkE6_castform_transform atkE6_castform_transform: @ 802B054 push {r4,lr} - ldr r4, _0802B0A8 @ =gUnknown_02024A60 + ldr r4, _0802B0A8 @ =gActiveBank ldr r3, _0802B0AC @ =0x02000000 ldr r1, _0802B0B0 @ =0x00016003 adds r0, r3, r1 @@ -30511,10 +30511,10 @@ _0802B086: ldrb r2, [r0] movs r0, 0 movs r1, 0 - bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim + bl EmitBattleAnimation ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _0802B0BC @ =gUnknown_02024C10 + bl MarkBufferBankForExecution + ldr r1, _0802B0BC @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -30522,18 +30522,18 @@ _0802B086: pop {r0} bx r0 .align 2, 0 -_0802B0A8: .4byte gUnknown_02024A60 +_0802B0A8: .4byte gActiveBank _0802B0AC: .4byte 0x02000000 _0802B0B0: .4byte 0x00016003 _0802B0B4: .4byte gBattleMons _0802B0B8: .4byte 0x0001609b -_0802B0BC: .4byte gUnknown_02024C10 +_0802B0BC: .4byte gBattlescriptCurrInstr thumb_func_end atkE6_castform_transform thumb_func_start atkE7_castform_switch atkE7_castform_switch: @ 802B0C0 push {r4,r5,lr} - ldr r1, _0802B0F4 @ =gUnknown_02024C10 + ldr r1, _0802B0F4 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -30557,7 +30557,7 @@ _0802B0EC: pop {r0} bx r0 .align 2, 0 -_0802B0F4: .4byte gUnknown_02024C10 +_0802B0F4: .4byte gBattlescriptCurrInstr _0802B0F8: .4byte 0x02000000 _0802B0FC: .4byte 0x00016003 _0802B100: .4byte gUnknown_081D977D @@ -30569,7 +30569,7 @@ atkE8_settypebasedhalvers: @ 802B108 push {r4,lr} movs r4, 0 ldr r2, _0802B144 @ =gBattleMoves - ldr r0, _0802B148 @ =gUnknown_02024BE6 + ldr r0, _0802B148 @ =gCurrentMove ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -30578,8 +30578,8 @@ atkE8_settypebasedhalvers: @ 802B108 ldrb r0, [r0] cmp r0, 0xC9 bne _0802B158 - ldr r1, _0802B14C @ =gUnknown_02024C98 - ldr r0, _0802B150 @ =gPlayerMonIndex + ldr r1, _0802B14C @ =gStatuses3 + ldr r0, _0802B150 @ =gBankAttacker ldrb r0, [r0] lsls r0, 2 adds r2, r0, r1 @@ -30592,18 +30592,18 @@ atkE8_settypebasedhalvers: @ 802B108 bne _0802B17C orrs r1, r3 str r1, [r2] - ldr r0, _0802B154 @ =gUnknown_02024D1E + ldr r0, _0802B154 @ =gBattleCommunication strb r4, [r0, 0x5] b _0802B180 .align 2, 0 _0802B144: .4byte gBattleMoves -_0802B148: .4byte gUnknown_02024BE6 -_0802B14C: .4byte gUnknown_02024C98 -_0802B150: .4byte gPlayerMonIndex -_0802B154: .4byte gUnknown_02024D1E +_0802B148: .4byte gCurrentMove +_0802B14C: .4byte gStatuses3 +_0802B150: .4byte gBankAttacker +_0802B154: .4byte gBattleCommunication _0802B158: - ldr r1, _0802B18C @ =gUnknown_02024C98 - ldr r0, _0802B190 @ =gPlayerMonIndex + ldr r1, _0802B18C @ =gStatuses3 + ldr r0, _0802B190 @ =gBankAttacker ldrb r0, [r0] lsls r0, 2 adds r2, r0, r1 @@ -30616,7 +30616,7 @@ _0802B158: bne _0802B17C orrs r1, r3 str r1, [r2] - ldr r1, _0802B194 @ =gUnknown_02024D1E + ldr r1, _0802B194 @ =gBattleCommunication movs r0, 0x1 strb r0, [r1, 0x5] movs r4, 0x1 @@ -30624,18 +30624,18 @@ _0802B17C: cmp r4, 0 beq _0802B19C _0802B180: - ldr r1, _0802B198 @ =gUnknown_02024C10 + ldr r1, _0802B198 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _0802B1B6 .align 2, 0 -_0802B18C: .4byte gUnknown_02024C98 -_0802B190: .4byte gPlayerMonIndex -_0802B194: .4byte gUnknown_02024D1E -_0802B198: .4byte gUnknown_02024C10 +_0802B18C: .4byte gStatuses3 +_0802B190: .4byte gBankAttacker +_0802B194: .4byte gBattleCommunication +_0802B198: .4byte gBattlescriptCurrInstr _0802B19C: - ldr r3, _0802B1BC @ =gUnknown_02024C10 + ldr r3, _0802B1BC @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -30653,7 +30653,7 @@ _0802B1B6: pop {r0} bx r0 .align 2, 0 -_0802B1BC: .4byte gUnknown_02024C10 +_0802B1BC: .4byte gBattlescriptCurrInstr thumb_func_end atkE8_settypebasedhalvers thumb_func_start sub_802B1C0 @@ -30666,7 +30666,7 @@ sub_802B1C0: @ 802B1C0 movs r1, 0 movs r2, 0xD movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 lsrs r0, 24 cmp r0, 0 @@ -30676,7 +30676,7 @@ sub_802B1C0: @ 802B1C0 movs r1, 0 movs r2, 0x4D movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 bne _0802B276 @@ -30747,7 +30747,7 @@ _0802B270: adds r0, r2, r1 strb r3, [r0] _0802B276: - ldr r1, _0802B288 @ =gUnknown_02024C10 + ldr r1, _0802B288 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -30756,15 +30756,15 @@ _0802B276: bx r0 .align 2, 0 _0802B284: .4byte 0x0001601c -_0802B288: .4byte gUnknown_02024C10 +_0802B288: .4byte gBattlescriptCurrInstr thumb_func_end sub_802B1C0 thumb_func_start atkEA_recycleitem atkEA_recycleitem: @ 802B28C push {r4-r7,lr} sub sp, 0x4 - ldr r7, _0802B2F0 @ =gUnknown_02024A60 - ldr r0, _0802B2F4 @ =gPlayerMonIndex + ldr r7, _0802B2F0 @ =gActiveBank + ldr r0, _0802B2F4 @ =gBankAttacker ldrb r0, [r0] strb r0, [r7] ldrb r2, [r7] @@ -30782,7 +30782,7 @@ atkEA_recycleitem: @ 802B28C ldrh r0, [r0, 0x2E] cmp r0, 0 bne _0802B308 - ldr r1, _0802B300 @ =gUnknown_02024C04 + ldr r1, _0802B300 @ =gLastUsedItem strh r5, [r1] strh r0, [r6] ldrb r0, [r7] @@ -30800,23 +30800,23 @@ atkEA_recycleitem: @ 802B28C movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl dp01_build_cmdbuf_x02_a_b_varargs + bl EmitSetAttributes ldrb r0, [r7] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _0802B304 @ =gUnknown_02024C10 + bl MarkBufferBankForExecution + ldr r1, _0802B304 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _0802B322 .align 2, 0 -_0802B2F0: .4byte gUnknown_02024A60 -_0802B2F4: .4byte gPlayerMonIndex +_0802B2F0: .4byte gActiveBank +_0802B2F4: .4byte gBankAttacker _0802B2F8: .4byte 0x020160cc _0802B2FC: .4byte gBattleMons -_0802B300: .4byte gUnknown_02024C04 -_0802B304: .4byte gUnknown_02024C10 +_0802B300: .4byte gLastUsedItem +_0802B304: .4byte gBattlescriptCurrInstr _0802B308: - ldr r3, _0802B32C @ =gUnknown_02024C10 + ldr r3, _0802B32C @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -30835,7 +30835,7 @@ _0802B322: pop {r0} bx r0 .align 2, 0 -_0802B32C: .4byte gUnknown_02024C10 +_0802B32C: .4byte gBattlescriptCurrInstr thumb_func_end atkEA_recycleitem thumb_func_start atkEB_settypetoterrain @@ -30845,7 +30845,7 @@ atkEB_settypetoterrain: @ 802B330 push {r7} ldr r0, _0802B3A0 @ =gBattleMons mov r8, r0 - ldr r7, _0802B3A4 @ =gPlayerMonIndex + ldr r7, _0802B3A4 @ =gBankAttacker ldrb r0, [r7] movs r6, 0x58 muls r0, r6 @@ -30880,7 +30880,7 @@ atkEB_settypetoterrain: @ 802B330 ldrb r0, [r0] adds r1, 0x22 strb r0, [r1] - ldr r1, _0802B3B0 @ =gUnknown_030041C0 + ldr r1, _0802B3B0 @ =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x3 @@ -30891,20 +30891,20 @@ atkEB_settypetoterrain: @ 802B330 strb r0, [r1, 0x2] movs r0, 0xFF strb r0, [r1, 0x3] - ldr r1, _0802B3B4 @ =gUnknown_02024C10 + ldr r1, _0802B3B4 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _0802B3D2 .align 2, 0 _0802B3A0: .4byte gBattleMons -_0802B3A4: .4byte gPlayerMonIndex +_0802B3A4: .4byte gBankAttacker _0802B3A8: .4byte gTerrainToType _0802B3AC: .4byte gBattleTerrain -_0802B3B0: .4byte gUnknown_030041C0 -_0802B3B4: .4byte gUnknown_02024C10 +_0802B3B0: .4byte gBattleTextBuff1 +_0802B3B4: .4byte gBattlescriptCurrInstr _0802B3B8: - ldr r3, _0802B3DC @ =gUnknown_02024C10 + ldr r3, _0802B3DC @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -30924,21 +30924,21 @@ _0802B3D2: pop {r0} bx r0 .align 2, 0 -_0802B3DC: .4byte gUnknown_02024C10 +_0802B3DC: .4byte gBattlescriptCurrInstr thumb_func_end atkEB_settypetoterrain thumb_func_start sub_802B3E0 sub_802B3E0: @ 802B3E0 push {r4,r5,lr} - ldr r5, _0802B45C @ =gPlayerMonIndex + ldr r5, _0802B45C @ =gBankAttacker ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity movs r1, 0x2 eors r0, r1 lsls r0, 24 lsrs r0, 24 - bl battle_get_side_with_given_state - ldr r4, _0802B460 @ =gUnknown_02024A60 + bl GetBankByPlayerAI + ldr r4, _0802B460 @ =gActiveBank strb r0, [r4] ldr r0, _0802B464 @ =gBattleTypeFlags ldrh r1, [r0] @@ -30946,7 +30946,7 @@ sub_802B3E0: @ 802B3E0 ands r0, r1 cmp r0, 0 beq _0802B490 - ldr r0, _0802B468 @ =gUnknown_02024C0C + ldr r0, _0802B468 @ =gAbsentBankFlags ldrb r1, [r0] ldr r2, _0802B46C @ =gBitTable ldrb r3, [r4] @@ -30956,12 +30956,12 @@ sub_802B3E0: @ 802B3E0 ands r1, r0 cmp r1, 0 bne _0802B490 - ldr r0, _0802B470 @ =gUnknown_02024C18 + ldr r0, _0802B470 @ =gActionForBanks adds r0, r3, r0 ldrb r0, [r0] cmp r0, 0 bne _0802B490 - ldr r1, _0802B474 @ =gUnknown_02024C60 + ldr r1, _0802B474 @ =gChosenMovesByBanks lsls r0, r3, 1 adds r0, r1 ldrh r2, [r0] @@ -30971,9 +30971,9 @@ sub_802B3E0: @ 802B3E0 adds r0, r3, r0 movs r1, 0xB strb r1, [r0] - ldr r0, _0802B47C @ =gUnknown_02024BE6 + ldr r0, _0802B47C @ =gCurrentMove strh r2, [r0] - ldr r1, _0802B480 @ =gUnknown_02024C10 + ldr r1, _0802B480 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] @@ -30990,21 +30990,21 @@ sub_802B3E0: @ 802B3E0 strb r0, [r5] b _0802B4AA .align 2, 0 -_0802B45C: .4byte gPlayerMonIndex -_0802B460: .4byte gUnknown_02024A60 +_0802B45C: .4byte gBankAttacker +_0802B460: .4byte gActiveBank _0802B464: .4byte gBattleTypeFlags -_0802B468: .4byte gUnknown_02024C0C +_0802B468: .4byte gAbsentBankFlags _0802B46C: .4byte gBitTable -_0802B470: .4byte gUnknown_02024C18 -_0802B474: .4byte gUnknown_02024C60 +_0802B470: .4byte gActionForBanks +_0802B474: .4byte gChosenMovesByBanks _0802B478: .4byte gUnknown_02024A76 -_0802B47C: .4byte gUnknown_02024BE6 -_0802B480: .4byte gUnknown_02024C10 +_0802B47C: .4byte gCurrentMove +_0802B480: .4byte gBattlescriptCurrInstr _0802B484: .4byte 0x02000000 _0802B488: .4byte 0x00016002 _0802B48C: .4byte 0x000160a7 _0802B490: - ldr r3, _0802B4B0 @ =gUnknown_02024C10 + ldr r3, _0802B4B0 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -31022,17 +31022,17 @@ _0802B4AA: pop {r0} bx r0 .align 2, 0 -_0802B4B0: .4byte gUnknown_02024C10 +_0802B4B0: .4byte gBattlescriptCurrInstr thumb_func_end sub_802B3E0 thumb_func_start sub_802B4B4 sub_802B4B4: @ 802B4B4 push {r4,r5,lr} - ldr r1, _0802B4DC @ =gUnknown_02024C0A - ldr r3, _0802B4E0 @ =gPlayerMonIndex + ldr r1, _0802B4DC @ =gEffectBank + ldr r3, _0802B4E0 @ =gBankAttacker ldrb r0, [r3] strb r0, [r1] - ldr r2, _0802B4E4 @ =gEnemyMonIndex + ldr r2, _0802B4E4 @ =gBankTarget lsls r0, 24 lsrs r0, 24 adds r4, r1, 0 @@ -31047,9 +31047,9 @@ sub_802B4B4: @ 802B4B4 strb r1, [r3] b _0802B4FA .align 2, 0 -_0802B4DC: .4byte gUnknown_02024C0A -_0802B4E0: .4byte gPlayerMonIndex -_0802B4E4: .4byte gEnemyMonIndex +_0802B4DC: .4byte gEffectBank +_0802B4E0: .4byte gBankAttacker +_0802B4E4: .4byte gBankTarget _0802B4E8: .4byte 0x02000000 _0802B4EC: .4byte 0x00016003 _0802B4F0: @@ -31063,7 +31063,7 @@ _0802B4FA: ldr r5, _0802B514 @ =0x00016003 adds r0, r5 strb r1, [r0] - ldr r1, _0802B518 @ =gUnknown_02024C10 + ldr r1, _0802B518 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -31073,20 +31073,20 @@ _0802B4FA: .align 2, 0 _0802B510: .4byte 0x02000000 _0802B514: .4byte 0x00016003 -_0802B518: .4byte gUnknown_02024C10 +_0802B518: .4byte gBattlescriptCurrInstr thumb_func_end sub_802B4B4 thumb_func_start sub_802B51C sub_802B51C: @ 802B51C push {r4,lr} - ldr r0, _0802B56C @ =gPlayerMonIndex + ldr r0, _0802B56C @ =gBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r0, 24 - ldr r1, _0802B570 @ =gUnknown_02024C80 + ldr r1, _0802B570 @ =gSideTimer lsls r3, r0, 1 adds r0, r3, r0 lsls r0, 2 @@ -31098,7 +31098,7 @@ sub_802B51C: @ 802B51C cmp r2, 0 beq _0802B58C _0802B544: - ldr r2, _0802B574 @ =gUnknown_02024C7A + ldr r2, _0802B574 @ =gSideAffecting adds r2, r3, r2 ldrh r1, [r2] ldr r0, _0802B578 @ =0x0000fffe @@ -31118,9 +31118,9 @@ _0802B544: adds r0, r3 b _0802B598 .align 2, 0 -_0802B56C: .4byte gPlayerMonIndex -_0802B570: .4byte gUnknown_02024C80 -_0802B574: .4byte gUnknown_02024C7A +_0802B56C: .4byte gBankAttacker +_0802B570: .4byte gSideTimer +_0802B574: .4byte gSideAffecting _0802B578: .4byte 0x0000fffe _0802B57C: .4byte 0x0000fffd _0802B580: .4byte 0x02000000 @@ -31135,7 +31135,7 @@ _0802B58C: adds r0, r1 _0802B598: strb r2, [r0] - ldr r1, _0802B5B4 @ =gUnknown_02024C10 + ldr r1, _0802B5B4 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -31146,24 +31146,24 @@ _0802B598: _0802B5A8: .4byte 0x02000000 _0802B5AC: .4byte 0x00016002 _0802B5B0: .4byte 0x000160a1 -_0802B5B4: .4byte gUnknown_02024C10 +_0802B5B4: .4byte gBattlescriptCurrInstr thumb_func_end sub_802B51C thumb_func_start sub_802B5B8 sub_802B5B8: @ 802B5B8 push {r4-r7,lr} movs r4, 0 - ldr r0, _0802B5F8 @ =gUnknown_02024A64 + ldr r0, _0802B5F8 @ =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 beq _0802B5C6 b _0802B94E _0802B5C6: - ldr r5, _0802B5FC @ =gUnknown_02024A60 - ldr r0, _0802B600 @ =gPlayerMonIndex + ldr r5, _0802B5FC @ =gActiveBank + ldr r0, _0802B600 @ =gBankAttacker ldrb r0, [r0] strb r0, [r5] - ldr r6, _0802B604 @ =gEnemyMonIndex + ldr r6, _0802B604 @ =gBankTarget movs r1, 0x1 eors r0, r1 strb r0, [r6] @@ -31177,17 +31177,17 @@ _0802B5C6: movs r1, 0x5 bl dp01_build_cmdbuf_x0D_a ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _0802B60C @ =gUnknown_02024C10 + bl MarkBufferBankForExecution + ldr r1, _0802B60C @ =gBattlescriptCurrInstr ldr r0, _0802B610 @ =gUnknown_081D9F35 b _0802B94C .align 2, 0 -_0802B5F8: .4byte gUnknown_02024A64 -_0802B5FC: .4byte gUnknown_02024A60 -_0802B600: .4byte gPlayerMonIndex -_0802B604: .4byte gEnemyMonIndex +_0802B5F8: .4byte gBattleExecBuffer +_0802B5FC: .4byte gActiveBank +_0802B600: .4byte gBankAttacker +_0802B604: .4byte gBankTarget _0802B608: .4byte gBattleTypeFlags -_0802B60C: .4byte gUnknown_02024C10 +_0802B60C: .4byte gBattlescriptCurrInstr _0802B610: .4byte gUnknown_081D9F35 _0802B614: movs r0, 0x80 @@ -31199,15 +31199,15 @@ _0802B614: movs r1, 0x4 bl dp01_build_cmdbuf_x0D_a ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _0802B634 @ =gUnknown_02024C10 + bl MarkBufferBankForExecution + ldr r1, _0802B634 @ =gBattlescriptCurrInstr ldr r0, _0802B638 @ =gUnknown_081D9F00 b _0802B94C .align 2, 0 -_0802B634: .4byte gUnknown_02024C10 +_0802B634: .4byte gBattlescriptCurrInstr _0802B638: .4byte gUnknown_081D9F00 _0802B63C: - ldr r0, _0802B660 @ =gUnknown_02024C04 + ldr r0, _0802B660 @ =gLastUsedItem ldrh r0, [r0] cmp r0, 0x5 bne _0802B66C @@ -31225,7 +31225,7 @@ _0802B63C: lsrs r5, r0, 24 b _0802B684 .align 2, 0 -_0802B660: .4byte gUnknown_02024C04 +_0802B660: .4byte gLastUsedItem _0802B664: .4byte 0x02000000 _0802B668: .4byte 0x00016089 _0802B66C: @@ -31242,7 +31242,7 @@ _0802B66C: adds r0, r3 ldrb r5, [r0, 0x8] _0802B684: - ldr r2, _0802B6A8 @ =gUnknown_02024C04 + ldr r2, _0802B6A8 @ =gLastUsedItem ldrh r0, [r2] cmp r0, 0x5 bhi _0802B68E @@ -31261,7 +31261,7 @@ _0802B696: .align 2, 0 _0802B6A0: .4byte gBaseStats _0802B6A4: .4byte gBattleMons -_0802B6A8: .4byte gUnknown_02024C04 +_0802B6A8: .4byte gLastUsedItem _0802B6AC: .4byte _0802B6B0 .align 2, 0 _0802B6B0: @@ -31274,7 +31274,7 @@ _0802B6B0: .4byte _0802B72E _0802B6CC: ldr r2, _0802B6F4 @ =gBattleMons - ldr r0, _0802B6F8 @ =gEnemyMonIndex + ldr r0, _0802B6F8 @ =gBankTarget ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -31295,7 +31295,7 @@ _0802B6CC: b _0802B72E .align 2, 0 _0802B6F4: .4byte gBattleMons -_0802B6F8: .4byte gEnemyMonIndex +_0802B6F8: .4byte gBankTarget _0802B6FC: bl sav1_map_get_light_level lsls r0, 24 @@ -31307,7 +31307,7 @@ _0802B6FC: b _0802B78E _0802B70E: ldr r2, _0802B734 @ =gBattleMons - ldr r0, _0802B738 @ =gEnemyMonIndex + ldr r0, _0802B738 @ =gBankTarget ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -31327,10 +31327,10 @@ _0802B72E: b _0802B78E .align 2, 0 _0802B734: .4byte gBattleMons -_0802B738: .4byte gEnemyMonIndex +_0802B738: .4byte gBankTarget _0802B73C: ldr r2, _0802B764 @ =gBattleMons - ldr r0, _0802B768 @ =gEnemyMonIndex + ldr r0, _0802B768 @ =gBankTarget ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -31340,7 +31340,7 @@ _0802B73C: lsls r0, 16 lsrs r0, 16 movs r1, 0x1 - bl sub_8090D90 + bl GetNationalPokedexFlag lsls r0, 24 movs r4, 0xA cmp r0, 0 @@ -31350,9 +31350,9 @@ _0802B760: b _0802B78E .align 2, 0 _0802B764: .4byte gBattleMons -_0802B768: .4byte gEnemyMonIndex +_0802B768: .4byte gBankTarget _0802B76C: - ldr r0, _0802B780 @ =gUnknown_030042E0 + ldr r0, _0802B780 @ =gBattleResults ldrb r0, [r0, 0x13] adds r0, 0xA lsls r0, 24 @@ -31362,7 +31362,7 @@ _0802B76C: movs r4, 0x28 b _0802B78E .align 2, 0 -_0802B780: .4byte gUnknown_030042E0 +_0802B780: .4byte gBattleResults _0802B784: ldr r1, _0802B7F4 @ =gBallCatchBonuses ldrh r0, [r2] @@ -31375,7 +31375,7 @@ _0802B78E: movs r1, 0xA bl __divsi3 ldr r5, _0802B7F8 @ =gBattleMons - ldr r1, _0802B7FC @ =gEnemyMonIndex + ldr r1, _0802B7FC @ =gBankTarget ldrb r1, [r1] movs r7, 0x58 adds r4, r1, 0 @@ -31408,13 +31408,13 @@ _0802B7CA: bl __udivsi3 adds r6, r0, 0 _0802B7DC: - ldr r1, _0802B800 @ =gUnknown_02024C04 + ldr r1, _0802B800 @ =gLastUsedItem ldrh r0, [r1] cmp r0, 0x5 beq _0802B81C cmp r0, 0x1 bne _0802B808 - ldr r0, _0802B804 @ =gUnknown_030042E0 + ldr r0, _0802B804 @ =gBattleResults ldrb r1, [r0, 0x5] movs r2, 0x2 orrs r1, r2 @@ -31423,11 +31423,11 @@ _0802B7DC: .align 2, 0 _0802B7F4: .4byte gBallCatchBonuses _0802B7F8: .4byte gBattleMons -_0802B7FC: .4byte gEnemyMonIndex -_0802B800: .4byte gUnknown_02024C04 -_0802B804: .4byte gUnknown_030042E0 +_0802B7FC: .4byte gBankTarget +_0802B800: .4byte gLastUsedItem +_0802B804: .4byte gBattleResults _0802B808: - ldr r0, _0802B860 @ =gUnknown_030042E0 + ldr r0, _0802B860 @ =gBattleResults ldrh r1, [r1] adds r0, r1 adds r1, r0, 0 @@ -31443,14 +31443,14 @@ _0802B81C: movs r0, 0 movs r1, 0x4 bl dp01_build_cmdbuf_x0D_a - ldr r0, _0802B864 @ =gUnknown_02024A60 + ldr r0, _0802B864 @ =gActiveBank ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _0802B868 @ =gUnknown_02024C10 + bl MarkBufferBankForExecution + ldr r1, _0802B868 @ =gBattlescriptCurrInstr ldr r0, _0802B86C @ =gUnknown_081D9EC2 str r0, [r1] - ldr r1, _0802B870 @ =gUnknown_02024A6A - ldr r0, _0802B874 @ =gEnemyMonIndex + ldr r1, _0802B870 @ =gBattlePartyID + ldr r0, _0802B874 @ =gBankTarget ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -31459,7 +31459,7 @@ _0802B81C: muls r0, r1 ldr r1, _0802B878 @ =gEnemyParty adds r0, r1 - ldr r2, _0802B87C @ =gUnknown_02024C04 + ldr r2, _0802B87C @ =gLastUsedItem movs r1, 0x26 bl SetMonData bl CalculatePlayerPartyCount @@ -31469,14 +31469,14 @@ _0802B81C: beq _0802B90E b _0802B938 .align 2, 0 -_0802B860: .4byte gUnknown_030042E0 -_0802B864: .4byte gUnknown_02024A60 -_0802B868: .4byte gUnknown_02024C10 +_0802B860: .4byte gBattleResults +_0802B864: .4byte gActiveBank +_0802B868: .4byte gBattlescriptCurrInstr _0802B86C: .4byte gUnknown_081D9EC2 -_0802B870: .4byte gUnknown_02024A6A -_0802B874: .4byte gEnemyMonIndex +_0802B870: .4byte gBattlePartyID +_0802B874: .4byte gBankTarget _0802B878: .4byte gEnemyParty -_0802B87C: .4byte gUnknown_02024C04 +_0802B87C: .4byte gLastUsedItem _0802B880: movs r0, 0xFF lsls r0, 16 @@ -31509,7 +31509,7 @@ _0802B8B2: cmp r0, r6 bcc _0802B8AC _0802B8C2: - ldr r5, _0802B918 @ =gUnknown_02024C04 + ldr r5, _0802B918 @ =gLastUsedItem ldrh r0, [r5] cmp r0, 0x1 bne _0802B8CC @@ -31518,16 +31518,16 @@ _0802B8CC: movs r0, 0 adds r1, r4, 0 bl dp01_build_cmdbuf_x0D_a - ldr r0, _0802B91C @ =gUnknown_02024A60 + ldr r0, _0802B91C @ =gActiveBank ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution cmp r4, 0x4 bne _0802B944 - ldr r1, _0802B920 @ =gUnknown_02024C10 + ldr r1, _0802B920 @ =gBattlescriptCurrInstr ldr r0, _0802B924 @ =gUnknown_081D9EC2 str r0, [r1] - ldr r1, _0802B928 @ =gUnknown_02024A6A - ldr r0, _0802B92C @ =gEnemyMonIndex + ldr r1, _0802B928 @ =gBattlePartyID + ldr r0, _0802B92C @ =gBankTarget ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -31545,30 +31545,30 @@ _0802B8CC: cmp r0, 0x6 bne _0802B938 _0802B90E: - ldr r1, _0802B934 @ =gUnknown_02024D1E + ldr r1, _0802B934 @ =gBattleCommunication movs r0, 0 strb r0, [r1, 0x5] b _0802B94E .align 2, 0 -_0802B918: .4byte gUnknown_02024C04 -_0802B91C: .4byte gUnknown_02024A60 -_0802B920: .4byte gUnknown_02024C10 +_0802B918: .4byte gLastUsedItem +_0802B91C: .4byte gActiveBank +_0802B920: .4byte gBattlescriptCurrInstr _0802B924: .4byte gUnknown_081D9EC2 -_0802B928: .4byte gUnknown_02024A6A -_0802B92C: .4byte gEnemyMonIndex +_0802B928: .4byte gBattlePartyID +_0802B92C: .4byte gBankTarget _0802B930: .4byte gEnemyParty -_0802B934: .4byte gUnknown_02024D1E +_0802B934: .4byte gBattleCommunication _0802B938: - ldr r1, _0802B940 @ =gUnknown_02024D1E + ldr r1, _0802B940 @ =gBattleCommunication movs r0, 0x1 strb r0, [r1, 0x5] b _0802B94E .align 2, 0 -_0802B940: .4byte gUnknown_02024D1E +_0802B940: .4byte gBattleCommunication _0802B944: - ldr r0, _0802B954 @ =gUnknown_02024D1E + ldr r0, _0802B954 @ =gBattleCommunication strb r4, [r0, 0x5] - ldr r1, _0802B958 @ =gUnknown_02024C10 + ldr r1, _0802B958 @ =gBattlescriptCurrInstr ldr r0, _0802B95C @ =gUnknown_081D9F0A _0802B94C: str r0, [r1] @@ -31577,8 +31577,8 @@ _0802B94E: pop {r0} bx r0 .align 2, 0 -_0802B954: .4byte gUnknown_02024D1E -_0802B958: .4byte gUnknown_02024C10 +_0802B954: .4byte gBattleCommunication +_0802B958: .4byte gBattlescriptCurrInstr _0802B95C: .4byte gUnknown_081D9F0A thumb_func_end sub_802B5B8 @@ -31588,9 +31588,9 @@ sub_802B960: @ 802B960 mov r6, r9 mov r5, r8 push {r5,r6} - ldr r0, _0802B9C8 @ =gUnknown_02024A6A + ldr r0, _0802B9C8 @ =gBattlePartyID mov r9, r0 - ldr r5, _0802B9CC @ =gPlayerMonIndex + ldr r5, _0802B9CC @ =gBankAttacker ldrb r0, [r5] movs r4, 0x1 eors r0, r4 @@ -31605,7 +31605,7 @@ sub_802B960: @ 802B960 ldr r6, _0802B9D0 @ =gEnemyParty adds r0, r6 bl GiveMonToPlayer - ldr r2, _0802B9D4 @ =gUnknown_030042E0 + ldr r2, _0802B9D4 @ =gBattleResults ldr r1, _0802B9D8 @ =gBattleMons ldrb r0, [r5] eors r4, r0 @@ -31624,7 +31624,7 @@ sub_802B960: @ 802B960 adds r2, 0x2A movs r1, 0x2 bl GetMonData - ldr r1, _0802B9DC @ =gUnknown_02024C10 + ldr r1, _0802B9DC @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -31635,19 +31635,19 @@ sub_802B960: @ 802B960 pop {r0} bx r0 .align 2, 0 -_0802B9C8: .4byte gUnknown_02024A6A -_0802B9CC: .4byte gPlayerMonIndex +_0802B9C8: .4byte gBattlePartyID +_0802B9CC: .4byte gBankAttacker _0802B9D0: .4byte gEnemyParty -_0802B9D4: .4byte gUnknown_030042E0 +_0802B9D4: .4byte gBattleResults _0802B9D8: .4byte gBattleMons -_0802B9DC: .4byte gUnknown_02024C10 +_0802B9DC: .4byte gBattlescriptCurrInstr thumb_func_end sub_802B960 thumb_func_start sub_802B9E0 sub_802B9E0: @ 802B9E0 push {r4-r6,lr} ldr r4, _0802BA20 @ =gBattleMons - ldr r6, _0802BA24 @ =gEnemyMonIndex + ldr r6, _0802BA24 @ =gBankTarget ldrb r0, [r6] movs r5, 0x58 muls r0, r5 @@ -31657,11 +31657,11 @@ sub_802B9E0: @ 802B9E0 lsls r0, 16 lsrs r0, 16 movs r1, 0x1 - bl sub_8090D90 + bl GetNationalPokedexFlag lsls r0, 24 cmp r0, 0 beq _0802BA2C - ldr r3, _0802BA28 @ =gUnknown_02024C10 + ldr r3, _0802BA28 @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -31677,8 +31677,8 @@ sub_802B9E0: @ 802B9E0 b _0802BA82 .align 2, 0 _0802BA20: .4byte gBattleMons -_0802BA24: .4byte gEnemyMonIndex -_0802BA28: .4byte gUnknown_02024C10 +_0802BA24: .4byte gBankTarget +_0802BA28: .4byte gBattlescriptCurrInstr _0802BA2C: ldrb r0, [r6] muls r0, r5 @@ -31688,7 +31688,7 @@ _0802BA2C: lsls r0, 16 lsrs r0, 16 movs r1, 0x3 - bl sub_8090D90 + bl GetNationalPokedexFlag ldrb r0, [r6] adds r2, r0, 0 muls r2, r5 @@ -31719,7 +31719,7 @@ _0802BA5C: ldr r1, [r1] str r1, [r0, 0x20] _0802BA7A: - ldr r1, _0802BA8C @ =gUnknown_02024C10 + ldr r1, _0802BA8C @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] @@ -31729,14 +31729,14 @@ _0802BA82: bx r0 .align 2, 0 _0802BA88: .4byte gSaveBlock2 -_0802BA8C: .4byte gUnknown_02024C10 +_0802BA8C: .4byte gBattlescriptCurrInstr thumb_func_end sub_802B9E0 thumb_func_start sub_802BA90 sub_802BA90: @ 802BA90 push {r4-r7,lr} sub sp, 0x4 - ldr r7, _0802BAA8 @ =gUnknown_02024D1E + ldr r7, _0802BAA8 @ =gBattleCommunication ldrb r1, [r7] cmp r1, 0x1 beq _0802BAC6 @@ -31746,7 +31746,7 @@ sub_802BA90: @ 802BA90 beq _0802BAB8 b _0802BBC4 .align 2, 0 -_0802BAA8: .4byte gUnknown_02024D1E +_0802BAA8: .4byte gBattleCommunication _0802BAAC: cmp r1, 0x2 beq _0802BB10 @@ -31771,7 +31771,7 @@ _0802BAC6: cmp r0, 0 bne _0802BBC4 ldr r4, _0802BB08 @ =gBattleMons - ldr r6, _0802BB0C @ =gEnemyMonIndex + ldr r6, _0802BB0C @ =gBankTarget ldrb r0, [r6] movs r5, 0x58 muls r0, r5 @@ -31796,7 +31796,7 @@ _0802BAC6: .align 2, 0 _0802BB04: .4byte gPaletteFade _0802BB08: .4byte gBattleMons -_0802BB0C: .4byte gEnemyMonIndex +_0802BB0C: .4byte gBankTarget _0802BB10: ldr r0, _0802BB7C @ =gPaletteFade ldrb r1, [r0, 0x7] @@ -31870,7 +31870,7 @@ _0802BBB0: ands r0, r1 cmp r0, 0 bne _0802BBC4 - ldr r1, _0802BBD0 @ =gUnknown_02024C10 + ldr r1, _0802BBD0 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -31881,7 +31881,7 @@ _0802BBC4: bx r0 .align 2, 0 _0802BBCC: .4byte gPaletteFade -_0802BBD0: .4byte gUnknown_02024C10 +_0802BBD0: .4byte gBattlescriptCurrInstr thumb_func_end sub_802BA90 thumb_func_start sub_802BBD4 @@ -31974,7 +31974,7 @@ _0802BC68: .4byte 0x00001025 thumb_func_start sub_802BC6C sub_802BC6C: @ 802BC6C push {lr} - ldr r0, _0802BC88 @ =gUnknown_02024D1E + ldr r0, _0802BC88 @ =gBattleCommunication ldrb r1, [r0, 0x1] lsls r1, 28 movs r0, 0x90 @@ -31986,7 +31986,7 @@ sub_802BC6C: @ 802BC6C pop {r0} bx r0 .align 2, 0 -_0802BC88: .4byte gUnknown_02024D1E +_0802BC88: .4byte gBattleCommunication thumb_func_end sub_802BC6C thumb_func_start nullsub_6 @@ -32002,7 +32002,7 @@ atkF3_receive_new_pokemon_maybe: @ 802BC90 mov r5, r8 push {r5-r7} sub sp, 0x8 - ldr r0, _0802BCB4 @ =gUnknown_02024D1E + ldr r0, _0802BCB4 @ =gBattleCommunication ldrb r1, [r0] adds r4, r0, 0 cmp r1, 0x4 @@ -32015,7 +32015,7 @@ _0802BCA8: ldr r0, [r0] mov pc, r0 .align 2, 0 -_0802BCB4: .4byte gUnknown_02024D1E +_0802BCB4: .4byte gBattleCommunication _0802BCB8: .4byte _0802BCBC .align 2, 0 _0802BCBC: @@ -32026,7 +32026,7 @@ _0802BCBC: .4byte _0802BEA4 _0802BCD0: bl sub_8023A80 - ldr r0, _0802BCE8 @ =gUnknown_02024D1E + ldr r0, _0802BCE8 @ =gBattleCommunication ldrb r1, [r0] adds r1, 0x1 movs r2, 0 @@ -32035,7 +32035,7 @@ _0802BCD0: bl sub_802BC6C b _0802BEDA .align 2, 0 -_0802BCE8: .4byte gUnknown_02024D1E +_0802BCE8: .4byte gBattleCommunication _0802BCEC: ldr r0, _0802BD60 @ =gMain ldrh r1, [r0, 0x2E] @@ -32059,7 +32059,7 @@ _0802BD10: ands r0, r1 cmp r0, 0 beq _0802BD36 - ldr r4, _0802BD64 @ =gUnknown_02024D1E + ldr r4, _0802BD64 @ =gBattleCommunication ldrb r0, [r4, 0x1] cmp r0, 0 bne _0802BD36 @@ -32078,7 +32078,7 @@ _0802BD36: beq _0802BD68 movs r0, 0x5 bl PlaySE - ldr r1, _0802BD64 @ =gUnknown_02024D1E + ldr r1, _0802BD64 @ =gBattleCommunication ldrb r0, [r1, 0x1] cmp r0, 0 bne _0802BD7A @@ -32090,7 +32090,7 @@ _0802BD36: b _0802BEDA .align 2, 0 _0802BD60: .4byte gMain -_0802BD64: .4byte gUnknown_02024D1E +_0802BD64: .4byte gBattleCommunication _0802BD68: movs r0, 0x2 ands r0, r1 @@ -32100,13 +32100,13 @@ _0802BD68: _0802BD72: movs r0, 0x5 bl PlaySE - ldr r1, _0802BD80 @ =gUnknown_02024D1E + ldr r1, _0802BD80 @ =gBattleCommunication _0802BD7A: movs r0, 0x4 strb r0, [r1] b _0802BEDA .align 2, 0 -_0802BD80: .4byte gUnknown_02024D1E +_0802BD80: .4byte gBattleCommunication _0802BD84: ldr r0, _0802BE34 @ =gPaletteFade ldrb r1, [r0, 0x7] @@ -32116,8 +32116,8 @@ _0802BD84: beq _0802BD92 b _0802BEDA _0802BD92: - ldr r7, _0802BE38 @ =gUnknown_02024A6A - ldr r0, _0802BE3C @ =gPlayerMonIndex + ldr r7, _0802BE38 @ =gBattlePartyID + ldr r0, _0802BE3C @ =gBankAttacker mov r10, r0 ldrb r0, [r0] movs r4, 0x1 @@ -32186,19 +32186,19 @@ _0802BD92: adds r2, r6, 0 adds r3, r5, 0 bl DoNamingScreen - ldr r1, _0802BE4C @ =gUnknown_02024D1E + ldr r1, _0802BE4C @ =gBattleCommunication ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0802BEDA .align 2, 0 _0802BE34: .4byte gPaletteFade -_0802BE38: .4byte gUnknown_02024A6A -_0802BE3C: .4byte gPlayerMonIndex +_0802BE38: .4byte gBattlePartyID +_0802BE3C: .4byte gBankAttacker _0802BE40: .4byte gEnemyParty _0802BE44: .4byte 0x02016079 _0802BE48: .4byte sub_800F808 -_0802BE4C: .4byte gUnknown_02024D1E +_0802BE4C: .4byte gBattleCommunication _0802BE50: ldr r0, _0802BE88 @ =gMain ldr r1, [r0, 0x4] @@ -32211,8 +32211,8 @@ _0802BE50: ands r0, r1 cmp r0, 0 bne _0802BEDA - ldr r2, _0802BE94 @ =gUnknown_02024A6A - ldr r0, _0802BE98 @ =gPlayerMonIndex + ldr r2, _0802BE94 @ =gBattlePartyID + ldr r0, _0802BE98 @ =gBankAttacker ldrb r1, [r0] movs r0, 0x1 eors r0, r1 @@ -32231,8 +32231,8 @@ _0802BE50: _0802BE88: .4byte gMain _0802BE8C: .4byte sub_800F808 _0802BE90: .4byte gPaletteFade -_0802BE94: .4byte gUnknown_02024A6A -_0802BE98: .4byte gPlayerMonIndex +_0802BE94: .4byte gBattlePartyID +_0802BE98: .4byte gBankAttacker _0802BE9C: .4byte gEnemyParty _0802BEA0: .4byte 0x02016079 _0802BEA4: @@ -32241,15 +32241,15 @@ _0802BEA4: lsrs r0, 24 cmp r0, 0x6 bne _0802BEC0 - ldr r1, _0802BEBC @ =gUnknown_02024C10 + ldr r1, _0802BEBC @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _0802BEDA .align 2, 0 -_0802BEBC: .4byte gUnknown_02024C10 +_0802BEBC: .4byte gBattlescriptCurrInstr _0802BEC0: - ldr r3, _0802BEEC @ =gUnknown_02024C10 + ldr r3, _0802BEEC @ =gBattlescriptCurrInstr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -32272,13 +32272,13 @@ _0802BEDA: pop {r0} bx r0 .align 2, 0 -_0802BEEC: .4byte gUnknown_02024C10 +_0802BEEC: .4byte gBattlescriptCurrInstr thumb_func_end atkF3_receive_new_pokemon_maybe thumb_func_start sub_802BEF0 sub_802BEF0: @ 802BEF0 ldr r2, _0802BF10 @ =gBattleMons - ldr r0, _0802BF14 @ =gPlayerMonIndex + ldr r0, _0802BF14 @ =gBankAttacker ldrb r1, [r0] movs r0, 0x58 muls r1, r0 @@ -32288,22 +32288,22 @@ sub_802BEF0: @ 802BEF0 ldrh r0, [r1, 0x28] subs r0, r2 strh r0, [r1, 0x28] - ldr r1, _0802BF1C @ =gUnknown_02024C10 + ldr r1, _0802BF1C @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _0802BF10: .4byte gBattleMons -_0802BF14: .4byte gPlayerMonIndex +_0802BF14: .4byte gBankAttacker _0802BF18: .4byte gBattleMoveDamage -_0802BF1C: .4byte gUnknown_02024C10 +_0802BF1C: .4byte gBattlescriptCurrInstr thumb_func_end sub_802BEF0 thumb_func_start sub_802BF20 sub_802BF20: @ 802BF20 ldr r1, _0802BF3C @ =gBattleMons - ldr r0, _0802BF40 @ =gPlayerMonIndex + ldr r0, _0802BF40 @ =gBankAttacker ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -32311,41 +32311,41 @@ sub_802BF20: @ 802BF20 adds r0, r1 movs r1, 0 str r1, [r0] - ldr r1, _0802BF44 @ =gUnknown_02024C10 + ldr r1, _0802BF44 @ =gBattlescriptCurrInstr ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _0802BF3C: .4byte gBattleMons -_0802BF40: .4byte gPlayerMonIndex -_0802BF44: .4byte gUnknown_02024C10 +_0802BF40: .4byte gBankAttacker +_0802BF44: .4byte gBattlescriptCurrInstr thumb_func_end sub_802BF20 thumb_func_start sub_802BF48 sub_802BF48: @ 802BF48 - ldr r1, _0802BF50 @ =gUnknown_02024A7F + ldr r1, _0802BF50 @ =gFightStateTracker movs r0, 0xC strb r0, [r1] bx lr .align 2, 0 -_0802BF50: .4byte gUnknown_02024A7F +_0802BF50: .4byte gFightStateTracker thumb_func_end sub_802BF48 thumb_func_start sub_802BF54 sub_802BF54: @ 802BF54 - ldr r1, _0802BF64 @ =gUnknown_02024A7F + ldr r1, _0802BF64 @ =gFightStateTracker movs r0, 0xC strb r0, [r1] - ldr r1, _0802BF68 @ =gUnknown_02024A7E - ldr r0, _0802BF6C @ =gUnknown_02024A68 + ldr r1, _0802BF68 @ =gCurrentMoveTurn + ldr r0, _0802BF6C @ =gNoOfAllBanks ldrb r0, [r0] strb r0, [r1] bx lr .align 2, 0 -_0802BF64: .4byte gUnknown_02024A7F -_0802BF68: .4byte gUnknown_02024A7E -_0802BF6C: .4byte gUnknown_02024A68 +_0802BF64: .4byte gFightStateTracker +_0802BF68: .4byte gCurrentMoveTurn +_0802BF6C: .4byte gNoOfAllBanks thumb_func_end sub_802BF54 .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_5.s b/asm/battle_5.s index 01541c120..b72266193 100644 --- a/asm/battle_5.s +++ b/asm/battle_5.s @@ -11,36 +11,36 @@ nullsub_91: @ 802BF70 bx lr thumb_func_end nullsub_91 - thumb_func_start sub_802BF74 -sub_802BF74: @ 802BF74 - ldr r1, _0802BF8C @ =gUnknown_03004330 - ldr r0, _0802BF90 @ =gUnknown_02024A60 + thumb_func_start SetBankFuncToPlayerBufferRunCommand +SetBankFuncToPlayerBufferRunCommand: @ 802BF74 + ldr r1, _0802BF8C @ =gBattleBankFunc + ldr r0, _0802BF90 @ =gActiveBank ldrb r0, [r0] lsls r0, 2 adds r0, r1 - ldr r1, _0802BF94 @ =sub_802C014 + ldr r1, _0802BF94 @ =PlayerBufferRunCommand str r1, [r0] - ldr r1, _0802BF98 @ =gUnknown_02024E6D + ldr r1, _0802BF98 @ =gDoingBattleAnim movs r0, 0 strb r0, [r1] bx lr .align 2, 0 -_0802BF8C: .4byte gUnknown_03004330 -_0802BF90: .4byte gUnknown_02024A60 -_0802BF94: .4byte sub_802C014 -_0802BF98: .4byte gUnknown_02024E6D - thumb_func_end sub_802BF74 +_0802BF8C: .4byte gBattleBankFunc +_0802BF90: .4byte gActiveBank +_0802BF94: .4byte PlayerBufferRunCommand +_0802BF98: .4byte gDoingBattleAnim + thumb_func_end SetBankFuncToPlayerBufferRunCommand - thumb_func_start dp01_tbl1_exec_completed -dp01_tbl1_exec_completed: @ 802BF9C + thumb_func_start PlayerBufferExecCompleted +PlayerBufferExecCompleted: @ 802BF9C push {r4,lr} sub sp, 0x4 - ldr r1, _0802BFDC @ =gUnknown_03004330 - ldr r4, _0802BFE0 @ =gUnknown_02024A60 + ldr r1, _0802BFDC @ =gBattleBankFunc + ldr r4, _0802BFE0 @ =gActiveBank ldrb r0, [r4] lsls r0, 2 adds r0, r1 - ldr r1, _0802BFE4 @ =sub_802C014 + ldr r1, _0802BFE4 @ =PlayerBufferRunCommand str r1, [r0] ldr r0, _0802BFE8 @ =gBattleTypeFlags ldrh r1, [r0] @@ -55,7 +55,7 @@ dp01_tbl1_exec_completed: @ 802BF9C movs r1, 0x4 mov r2, sp bl dp01_prepare_buffer_wireless_probably - ldr r1, _0802BFEC @ =gUnknown_02023A60 + ldr r1, _0802BFEC @ =gBattleBufferA ldrb r0, [r4] lsls r0, 9 adds r0, r1 @@ -63,13 +63,13 @@ dp01_tbl1_exec_completed: @ 802BF9C strb r1, [r0] b _0802C002 .align 2, 0 -_0802BFDC: .4byte gUnknown_03004330 -_0802BFE0: .4byte gUnknown_02024A60 -_0802BFE4: .4byte sub_802C014 +_0802BFDC: .4byte gBattleBankFunc +_0802BFE0: .4byte gActiveBank +_0802BFE4: .4byte PlayerBufferRunCommand _0802BFE8: .4byte gBattleTypeFlags -_0802BFEC: .4byte gUnknown_02023A60 +_0802BFEC: .4byte gBattleBufferA _0802BFF0: - ldr r2, _0802C00C @ =gUnknown_02024A64 + ldr r2, _0802C00C @ =gBattleExecBuffer ldr r1, _0802C010 @ =gBitTable ldrb r0, [r4] lsls r0, 2 @@ -84,16 +84,16 @@ _0802C002: pop {r0} bx r0 .align 2, 0 -_0802C00C: .4byte gUnknown_02024A64 +_0802C00C: .4byte gBattleExecBuffer _0802C010: .4byte gBitTable - thumb_func_end dp01_tbl1_exec_completed + thumb_func_end PlayerBufferExecCompleted - thumb_func_start sub_802C014 -sub_802C014: @ 802C014 + thumb_func_start PlayerBufferRunCommand +PlayerBufferRunCommand: @ 802C014 push {lr} - ldr r2, _0802C048 @ =gUnknown_02024A64 + ldr r2, _0802C048 @ =gBattleExecBuffer ldr r1, _0802C04C @ =gBitTable - ldr r0, _0802C050 @ =gUnknown_02024A60 + ldr r0, _0802C050 @ =gActiveBank ldrb r3, [r0] lsls r0, r3, 2 adds r0, r1 @@ -102,13 +102,13 @@ sub_802C014: @ 802C014 ands r1, r0 cmp r1, 0 beq _0802C060 - ldr r0, _0802C054 @ =gUnknown_02023A60 + ldr r0, _0802C054 @ =gBattleBufferA lsls r1, r3, 9 adds r1, r0 ldrb r0, [r1] cmp r0, 0x38 bhi _0802C05C - ldr r0, _0802C058 @ =gUnknown_081FAD98 + ldr r0, _0802C058 @ =gPlayerBufferCommands ldrb r1, [r1] lsls r1, 2 adds r1, r0 @@ -116,24 +116,24 @@ sub_802C014: @ 802C014 bl _call_via_r0 b _0802C060 .align 2, 0 -_0802C048: .4byte gUnknown_02024A64 +_0802C048: .4byte gBattleExecBuffer _0802C04C: .4byte gBitTable -_0802C050: .4byte gUnknown_02024A60 -_0802C054: .4byte gUnknown_02023A60 -_0802C058: .4byte gUnknown_081FAD98 +_0802C050: .4byte gActiveBank +_0802C054: .4byte gBattleBufferA +_0802C058: .4byte gPlayerBufferCommands _0802C05C: - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted _0802C060: pop {r0} bx r0 - thumb_func_end sub_802C014 + thumb_func_end PlayerBufferRunCommand thumb_func_start bx_0802E404 bx_0802E404: @ 802C064 push {lr} ldr r2, _0802C08C @ =gSprites - ldr r1, _0802C090 @ =gUnknown_02024BE0 - ldr r0, _0802C094 @ =gUnknown_02024A60 + ldr r1, _0802C090 @ =gObjectBankIDs + ldr r0, _0802C094 @ =gActiveBank ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -145,14 +145,14 @@ bx_0802E404: @ 802C064 ldrsh r0, [r0, r1] cmp r0, 0 bne _0802C086 - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted _0802C086: pop {r0} bx r0 .align 2, 0 _0802C08C: .4byte gSprites -_0802C090: .4byte gUnknown_02024BE0 -_0802C094: .4byte gUnknown_02024A60 +_0802C090: .4byte gObjectBankIDs +_0802C094: .4byte gActiveBank thumb_func_end bx_0802E404 thumb_func_start sub_802C098 @@ -160,8 +160,8 @@ sub_802C098: @ 802C098 push {r4-r7,lr} mov r7, r8 push {r7} - ldr r7, _0802C0FC @ =gUnknown_02023A60 - ldr r4, _0802C100 @ =gUnknown_02024A60 + ldr r7, _0802C0FC @ =gBattleBufferA + ldr r4, _0802C100 @ =gActiveBank ldrb r0, [r4] lsls r2, r0, 9 adds r1, r7, 0x2 @@ -190,8 +190,8 @@ sub_802C098: @ 802C098 beq _0802C13E movs r0, 0x5 bl PlaySE - bl sub_814A7FC - ldr r1, _0802C108 @ =gUnknown_02024E60 + bl DestroyMenuCursor + ldr r1, _0802C108 @ =gActionSelectionCursor ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] @@ -203,10 +203,10 @@ sub_802C098: @ 802C098 beq _0802C116 b _0802C138 .align 2, 0 -_0802C0FC: .4byte gUnknown_02023A60 -_0802C100: .4byte gUnknown_02024A60 +_0802C0FC: .4byte gBattleBufferA +_0802C100: .4byte gActiveBank _0802C104: .4byte gMain -_0802C108: .4byte gUnknown_02024E60 +_0802C108: .4byte gActionSelectionCursor _0802C10C: cmp r0, 0x2 beq _0802C122 @@ -234,14 +234,14 @@ _0802C12E: movs r2, 0 bl dp01_build_cmdbuf_x21_a_bb _0802C138: - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted b _0802C2AC _0802C13E: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0802C178 - ldr r5, _0802C174 @ =gUnknown_02024E60 + ldr r5, _0802C174 @ =gActionSelectionCursor ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] @@ -263,13 +263,13 @@ _0802C158: movs r2, 0x1 b _0802C200 .align 2, 0 -_0802C174: .4byte gUnknown_02024E60 +_0802C174: .4byte gActionSelectionCursor _0802C178: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0802C1B0 - ldr r5, _0802C1AC @ =gUnknown_02024E60 + ldr r5, _0802C1AC @ =gActionSelectionCursor ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] @@ -291,14 +291,14 @@ _0802C192: movs r2, 0x1 b _0802C200 .align 2, 0 -_0802C1AC: .4byte gUnknown_02024E60 +_0802C1AC: .4byte gActionSelectionCursor _0802C1B0: movs r0, 0x40 mov r8, r0 ands r0, r1 cmp r0, 0 beq _0802C1D0 - ldr r5, _0802C1CC @ =gUnknown_02024E60 + ldr r5, _0802C1CC @ =gActionSelectionCursor ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] @@ -308,13 +308,13 @@ _0802C1B0: beq _0802C2AC b _0802C1E8 .align 2, 0 -_0802C1CC: .4byte gUnknown_02024E60 +_0802C1CC: .4byte gActionSelectionCursor _0802C1D0: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0802C218 - ldr r5, _0802C214 @ =gUnknown_02024E60 + ldr r5, _0802C214 @ =gActionSelectionCursor ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] @@ -343,7 +343,7 @@ _0802C200: bl sub_802E3E4 b _0802C2AC .align 2, 0 -_0802C214: .4byte gUnknown_02024E60 +_0802C214: .4byte gActionSelectionCursor _0802C218: movs r0, 0x2 ands r0, r1 @@ -356,14 +356,14 @@ _0802C218: cmp r0, 0 beq _0802C2AC ldrb r0, [r4] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _0802C2AC movs r0, 0 - bl battle_get_side_with_given_state - ldr r1, _0802C298 @ =gUnknown_02024C0C + bl GetBankByPlayerAI + ldr r1, _0802C298 @ =gAbsentBankFlags ldrb r1, [r1] ldr r2, _0802C29C @ =gBitTable lsls r0, 24 @@ -397,12 +397,12 @@ _0802C278: movs r1, 0xC movs r2, 0 bl dp01_build_cmdbuf_x21_a_bb - bl dp01_tbl1_exec_completed - bl sub_814A7FC + bl PlayerBufferExecCompleted + bl DestroyMenuCursor b _0802C2AC .align 2, 0 _0802C294: .4byte gBattleTypeFlags -_0802C298: .4byte gUnknown_02024C0C +_0802C298: .4byte gAbsentBankFlags _0802C29C: .4byte gBitTable _0802C2A0: movs r0, 0x8 @@ -421,14 +421,14 @@ _0802C2AC: thumb_func_start unref_sub_802C2B8 unref_sub_802C2B8: @ 802C2B8 push {r4,lr} - ldr r4, _0802C2E0 @ =gUnknown_02024A60 + ldr r4, _0802C2E0 @ =gActiveBank ldrb r0, [r4] movs r1, 0x1 bl dp11b_obj_free ldrb r0, [r4] movs r1, 0 bl dp11b_obj_free - ldr r1, _0802C2E4 @ =gUnknown_03004330 + ldr r1, _0802C2E4 @ =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 adds r0, r1 @@ -438,8 +438,8 @@ unref_sub_802C2B8: @ 802C2B8 pop {r0} bx r0 .align 2, 0 -_0802C2E0: .4byte gUnknown_02024A60 -_0802C2E4: .4byte gUnknown_03004330 +_0802C2E0: .4byte gActiveBank +_0802C2E4: .4byte gBattleBankFunc _0802C2E8: .4byte sub_802C2EC thumb_func_end unref_sub_802C2B8 @@ -458,7 +458,7 @@ sub_802C2EC: @ 802C2EC movs r3, 0x1 bl dp11b_obj_instanciate movs r4, 0 - ldr r0, _0802C38C @ =gUnknown_02024A68 + ldr r0, _0802C38C @ =gNoOfAllBanks ldrb r0, [r0] cmp r0, 0 beq _0802C32E @@ -473,7 +473,7 @@ _0802C312: bl dp11b_obj_free _0802C324: adds r4, 0x1 - ldr r0, _0802C38C @ =gUnknown_02024A68 + ldr r0, _0802C38C @ =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 blt _0802C312 @@ -484,11 +484,11 @@ _0802C32E: ands r0, r1 cmp r0, 0 beq _0802C3A8 - bl sub_814A7FC + bl DestroyMenuCursor movs r0, 0x5 bl PlaySE ldr r2, _0802C394 @ =gSprites - ldr r1, _0802C398 @ =gUnknown_02024BE0 + ldr r1, _0802C398 @ =gObjectBankIDs ldr r4, _0802C388 @ =gUnknown_03004344 ldrb r0, [r4] adds r0, r1 @@ -500,8 +500,8 @@ _0802C32E: adds r0, r2 ldr r1, _0802C39C @ =sub_8010574 str r1, [r0] - ldr r1, _0802C3A0 @ =gUnknown_02024E64 - ldr r0, _0802C3A4 @ =gUnknown_02024A60 + ldr r1, _0802C3A0 @ =gMoveSelectionCursor + ldr r0, _0802C3A4 @ =gActiveBank ldrb r0, [r0] adds r0, r1 ldrb r2, [r0] @@ -514,18 +514,18 @@ _0802C32E: ldrb r0, [r4] movs r1, 0x1 bl dp11b_obj_free - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted b _0802C658 .align 2, 0 _0802C384: .4byte gUnknown_081FAE7C _0802C388: .4byte gUnknown_03004344 -_0802C38C: .4byte gUnknown_02024A68 +_0802C38C: .4byte gNoOfAllBanks _0802C390: .4byte gMain _0802C394: .4byte gSprites -_0802C398: .4byte gUnknown_02024BE0 +_0802C398: .4byte gObjectBankIDs _0802C39C: .4byte sub_8010574 -_0802C3A0: .4byte gUnknown_02024E64 -_0802C3A4: .4byte gUnknown_02024A60 +_0802C3A0: .4byte gMoveSelectionCursor +_0802C3A4: .4byte gActiveBank _0802C3A8: movs r0, 0x2 ands r0, r1 @@ -534,7 +534,7 @@ _0802C3A8: movs r0, 0x5 bl PlaySE ldr r2, _0802C400 @ =gSprites - ldr r1, _0802C404 @ =gUnknown_02024BE0 + ldr r1, _0802C404 @ =gObjectBankIDs ldr r5, _0802C408 @ =gUnknown_03004344 ldrb r0, [r5] adds r0, r1 @@ -546,8 +546,8 @@ _0802C3A8: adds r0, r2 ldr r1, _0802C40C @ =sub_8010574 str r1, [r0] - ldr r1, _0802C410 @ =gUnknown_03004330 - ldr r4, _0802C414 @ =gUnknown_02024A60 + ldr r1, _0802C410 @ =gBattleBankFunc + ldr r4, _0802C414 @ =gActiveBank ldrb r0, [r4] lsls r0, 2 adds r0, r1 @@ -569,11 +569,11 @@ _0802C3A8: b _0802C658 .align 2, 0 _0802C400: .4byte gSprites -_0802C404: .4byte gUnknown_02024BE0 +_0802C404: .4byte gObjectBankIDs _0802C408: .4byte gUnknown_03004344 _0802C40C: .4byte sub_8010574 -_0802C410: .4byte gUnknown_03004330 -_0802C414: .4byte gUnknown_02024A60 +_0802C410: .4byte gBattleBankFunc +_0802C414: .4byte gActiveBank _0802C418: .4byte sub_802C68C _0802C41C: movs r0, 0x60 @@ -585,7 +585,7 @@ _0802C426: movs r0, 0x5 bl PlaySE ldr r2, _0802C458 @ =gSprites - ldr r1, _0802C45C @ =gUnknown_02024BE0 + ldr r1, _0802C45C @ =gObjectBankIDs ldr r3, _0802C460 @ =gUnknown_03004344 ldrb r0, [r3] adds r0, r1 @@ -600,7 +600,7 @@ _0802C426: adds r5, r3, 0 _0802C448: ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r1, r0, 24 movs r4, 0 @@ -608,7 +608,7 @@ _0802C448: b _0802C472 .align 2, 0 _0802C458: .4byte gSprites -_0802C45C: .4byte gUnknown_02024BE0 +_0802C45C: .4byte gObjectBankIDs _0802C460: .4byte gUnknown_03004344 _0802C464: .4byte sub_8010574 _0802C468: @@ -630,9 +630,9 @@ _0802C480: mov r1, sp adds r0, r1, r4 ldrb r0, [r0] - bl battle_get_side_with_given_state + bl GetBankByPlayerAI strb r0, [r5] - ldr r1, _0802C4B4 @ =gUnknown_02024A68 + ldr r1, _0802C4B4 @ =gNoOfAllBanks lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] @@ -640,7 +640,7 @@ _0802C480: beq _0802C478 movs r4, 0 ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -651,7 +651,7 @@ _0802C480: beq _0802C4C2 b _0802C500 .align 2, 0 -_0802C4B4: .4byte gUnknown_02024A68 +_0802C4B4: .4byte gNoOfAllBanks _0802C4B8: cmp r0, 0x2 beq _0802C4C2 @@ -659,12 +659,12 @@ _0802C4B8: beq _0802C4FE b _0802C500 _0802C4C2: - ldr r2, _0802C520 @ =gUnknown_02024A60 + ldr r2, _0802C520 @ =gActiveBank ldrb r0, [r2] ldrb r1, [r5] cmp r0, r1 bne _0802C4FE - ldr r1, _0802C524 @ =gUnknown_02024A6A + ldr r1, _0802C524 @ =gBattlePartyID ldrb r2, [r2] lsls r0, r2, 1 adds r0, r1 @@ -673,7 +673,7 @@ _0802C4C2: muls r0, r1 ldr r1, _0802C528 @ =gPlayerParty adds r0, r1 - ldr r1, _0802C52C @ =gUnknown_02024E64 + ldr r1, _0802C52C @ =gMoveSelectionCursor adds r2, r1 ldrb r1, [r2] adds r1, 0xD @@ -691,7 +691,7 @@ _0802C4C2: _0802C4FE: adds r4, 0x1 _0802C500: - ldr r0, _0802C534 @ =gUnknown_02024C0C + ldr r0, _0802C534 @ =gAbsentBankFlags ldrb r1, [r0] ldr r2, _0802C538 @ =gBitTable ldrb r0, [r5] @@ -708,12 +708,12 @@ _0802C518: beq _0802C448 b _0802C640 .align 2, 0 -_0802C520: .4byte gUnknown_02024A60 -_0802C524: .4byte gUnknown_02024A6A +_0802C520: .4byte gActiveBank +_0802C524: .4byte gBattlePartyID _0802C528: .4byte gPlayerParty -_0802C52C: .4byte gUnknown_02024E64 +_0802C52C: .4byte gMoveSelectionCursor _0802C530: .4byte gBattleMoves -_0802C534: .4byte gUnknown_02024C0C +_0802C534: .4byte gAbsentBankFlags _0802C538: .4byte gBitTable _0802C53C: .4byte gUnknown_03004344 _0802C540: @@ -726,7 +726,7 @@ _0802C54A: movs r0, 0x5 bl PlaySE ldr r2, _0802C57C @ =gSprites - ldr r1, _0802C580 @ =gUnknown_02024BE0 + ldr r1, _0802C580 @ =gObjectBankIDs ldr r3, _0802C584 @ =gUnknown_03004344 ldrb r0, [r3] adds r0, r1 @@ -741,7 +741,7 @@ _0802C54A: adds r5, r3, 0 _0802C56C: ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r1, r0, 24 movs r4, 0 @@ -749,7 +749,7 @@ _0802C56C: b _0802C596 .align 2, 0 _0802C57C: .4byte gSprites -_0802C580: .4byte gUnknown_02024BE0 +_0802C580: .4byte gObjectBankIDs _0802C584: .4byte gUnknown_03004344 _0802C588: .4byte sub_8010574 _0802C58C: @@ -771,9 +771,9 @@ _0802C5A4: mov r1, sp adds r0, r1, r4 ldrb r0, [r0] - bl battle_get_side_with_given_state + bl GetBankByPlayerAI strb r0, [r5] - ldr r1, _0802C5D8 @ =gUnknown_02024A68 + ldr r1, _0802C5D8 @ =gNoOfAllBanks lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] @@ -781,7 +781,7 @@ _0802C5A4: beq _0802C59C movs r4, 0 ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -792,7 +792,7 @@ _0802C5A4: beq _0802C5E6 b _0802C624 .align 2, 0 -_0802C5D8: .4byte gUnknown_02024A68 +_0802C5D8: .4byte gNoOfAllBanks _0802C5DC: cmp r0, 0x2 beq _0802C5E6 @@ -800,12 +800,12 @@ _0802C5DC: beq _0802C622 b _0802C624 _0802C5E6: - ldr r2, _0802C660 @ =gUnknown_02024A60 + ldr r2, _0802C660 @ =gActiveBank ldrb r0, [r2] ldrb r1, [r5] cmp r0, r1 bne _0802C622 - ldr r1, _0802C664 @ =gUnknown_02024A6A + ldr r1, _0802C664 @ =gBattlePartyID ldrb r2, [r2] lsls r0, r2, 1 adds r0, r1 @@ -814,7 +814,7 @@ _0802C5E6: muls r0, r1 ldr r1, _0802C668 @ =gPlayerParty adds r0, r1 - ldr r1, _0802C66C @ =gUnknown_02024E64 + ldr r1, _0802C66C @ =gMoveSelectionCursor adds r2, r1 ldrb r1, [r2] adds r1, 0xD @@ -832,7 +832,7 @@ _0802C5E6: _0802C622: adds r4, 0x1 _0802C624: - ldr r0, _0802C674 @ =gUnknown_02024C0C + ldr r0, _0802C674 @ =gAbsentBankFlags ldrb r1, [r0] ldr r2, _0802C678 @ =gBitTable ldrb r0, [r5] @@ -849,7 +849,7 @@ _0802C63C: beq _0802C56C _0802C640: ldr r2, _0802C680 @ =gSprites - ldr r1, _0802C684 @ =gUnknown_02024BE0 + ldr r1, _0802C684 @ =gObjectBankIDs ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -866,16 +866,16 @@ _0802C658: pop {r0} bx r0 .align 2, 0 -_0802C660: .4byte gUnknown_02024A60 -_0802C664: .4byte gUnknown_02024A6A +_0802C660: .4byte gActiveBank +_0802C664: .4byte gBattlePartyID _0802C668: .4byte gPlayerParty -_0802C66C: .4byte gUnknown_02024E64 +_0802C66C: .4byte gMoveSelectionCursor _0802C670: .4byte gBattleMoves -_0802C674: .4byte gUnknown_02024C0C +_0802C674: .4byte gAbsentBankFlags _0802C678: .4byte gBitTable _0802C67C: .4byte gUnknown_03004344 _0802C680: .4byte gSprites -_0802C684: .4byte gUnknown_02024BE0 +_0802C684: .4byte gObjectBankIDs _0802C688: .4byte sub_8010520 thumb_func_end sub_802C2EC @@ -887,7 +887,7 @@ sub_802C68C: @ 802C68C sub sp, 0x8 movs r0, 0 mov r8, r0 - ldr r7, _0802C6E4 @ =gUnknown_02024A60 + ldr r7, _0802C6E4 @ =gActiveBank ldrb r2, [r7] lsls r0, r2, 9 ldr r1, _0802C6E8 @ =gUnknown_02023A64 @@ -903,7 +903,7 @@ sub_802C68C: @ 802C68C _0802C6B2: movs r0, 0x5 bl PlaySE - ldr r1, _0802C6F0 @ =gUnknown_02024E64 + ldr r1, _0802C6F0 @ =gMoveSelectionCursor ldrb r0, [r7] adds r0, r1 ldrb r0, [r0] @@ -926,10 +926,10 @@ _0802C6B2: ands r4, r0 b _0802C702 .align 2, 0 -_0802C6E4: .4byte gUnknown_02024A60 +_0802C6E4: .4byte gActiveBank _0802C6E8: .4byte gUnknown_02023A64 _0802C6EC: .4byte gMain -_0802C6F0: .4byte gUnknown_02024E64 +_0802C6F0: .4byte gMoveSelectionCursor _0802C6F4: ldr r2, _0802C714 @ =gBattleMoves ldrh r1, [r1] @@ -944,29 +944,29 @@ _0802C702: cmp r0, 0 beq _0802C720 ldr r0, _0802C718 @ =gUnknown_03004344 - ldr r1, _0802C71C @ =gUnknown_02024A60 + ldr r1, _0802C71C @ =gActiveBank ldrb r1, [r1] strb r1, [r0] b _0802C73A .align 2, 0 _0802C714: .4byte gBattleMoves _0802C718: .4byte gUnknown_03004344 -_0802C71C: .4byte gUnknown_02024A60 +_0802C71C: .4byte gActiveBank _0802C720: - ldr r0, _0802C764 @ =gUnknown_02024A60 + ldr r0, _0802C764 @ =gActiveBank ldrb r0, [r0] - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r0, 0 movs r2, 0x1 movs r0, 0x1 ands r0, r1 eors r0, r2 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI ldr r1, _0802C768 @ =gUnknown_03004344 strb r0, [r1] _0802C73A: - ldr r3, _0802C76C @ =gUnknown_02023A60 - ldr r5, _0802C764 @ =gUnknown_02024A60 + ldr r3, _0802C76C @ =gBattleBufferA + ldr r5, _0802C764 @ =gActiveBank ldrb r2, [r5] lsls r1, r2, 9 adds r0, r3, 0x1 @@ -987,9 +987,9 @@ _0802C73A: add r8, r2 b _0802C7B2 .align 2, 0 -_0802C764: .4byte gUnknown_02024A60 +_0802C764: .4byte gActiveBank _0802C768: .4byte gUnknown_03004344 -_0802C76C: .4byte gUnknown_02023A60 +_0802C76C: .4byte gBattleBufferA _0802C770: movs r0, 0x7D ands r0, r4 @@ -998,7 +998,7 @@ _0802C770: movs r0, 0x1 add r8, r0 _0802C77C: - ldr r0, _0802C7D0 @ =gUnknown_02024E64 + ldr r0, _0802C7D0 @ =gMoveSelectionCursor adds r0, r2, r0 adds r1, r6, 0 adds r1, 0x8 @@ -1012,7 +1012,7 @@ _0802C77C: cmp r0, 0 bne _0802C7B2 movs r0, 0 - bl sub_803C348 + bl CountAliveMons lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1028,9 +1028,9 @@ _0802C7B2: cmp r0, 0 bne _0802C7DC _0802C7B8: - bl sub_814A7FC - ldr r1, _0802C7D0 @ =gUnknown_02024E64 - ldr r0, _0802C7D8 @ =gUnknown_02024A60 + bl DestroyMenuCursor + ldr r1, _0802C7D0 @ =gMoveSelectionCursor + ldr r0, _0802C7D8 @ =gActiveBank ldrb r0, [r0] adds r0, r1 ldrb r2, [r0] @@ -1040,12 +1040,12 @@ _0802C7B8: orrs r2, r0 b _0802C888 .align 2, 0 -_0802C7D0: .4byte gUnknown_02024E64 +_0802C7D0: .4byte gMoveSelectionCursor _0802C7D4: .4byte gUnknown_03004344 -_0802C7D8: .4byte gUnknown_02024A60 +_0802C7D8: .4byte gActiveBank _0802C7DC: - ldr r1, _0802C7F8 @ =gUnknown_03004330 - ldr r2, _0802C7FC @ =gUnknown_02024A60 + ldr r1, _0802C7F8 @ =gBattleBankFunc + ldr r2, _0802C7FC @ =gActiveBank ldrb r0, [r2] lsls r0, 2 adds r0, r1 @@ -1059,14 +1059,14 @@ _0802C7DC: ldrb r0, [r2] b _0802C838 .align 2, 0 -_0802C7F8: .4byte gUnknown_03004330 -_0802C7FC: .4byte gUnknown_02024A60 +_0802C7F8: .4byte gBattleBankFunc +_0802C7FC: .4byte gActiveBank _0802C800: .4byte sub_802C2EC _0802C804: .4byte gUnknown_03004344 _0802C808: movs r0, 0x1 - bl battle_get_side_with_given_state - ldr r1, _0802C828 @ =gUnknown_02024C0C + bl GetBankByPlayerAI + ldr r1, _0802C828 @ =gAbsentBankFlags ldrb r1, [r1] ldr r2, _0802C82C @ =gBitTable lsls r0, 24 @@ -1079,17 +1079,17 @@ _0802C808: movs r0, 0x3 b _0802C832 .align 2, 0 -_0802C828: .4byte gUnknown_02024C0C +_0802C828: .4byte gAbsentBankFlags _0802C82C: .4byte gBitTable _0802C830: movs r0, 0x1 _0802C832: - bl battle_get_side_with_given_state + bl GetBankByPlayerAI ldr r1, _0802C854 @ =gUnknown_03004344 _0802C838: strb r0, [r1] ldr r2, _0802C858 @ =gSprites - ldr r1, _0802C85C @ =gUnknown_02024BE0 + ldr r1, _0802C85C @ =gObjectBankIDs ldr r0, _0802C854 @ =gUnknown_03004344 ldrb r0, [r0] adds r0, r1 @@ -1104,7 +1104,7 @@ _0802C838: .align 2, 0 _0802C854: .4byte gUnknown_03004344 _0802C858: .4byte gSprites -_0802C85C: .4byte gUnknown_02024BE0 +_0802C85C: .4byte gObjectBankIDs _0802C860: .4byte sub_8010520 _0802C864: movs r6, 0x2 @@ -1112,7 +1112,7 @@ _0802C864: ands r0, r1 cmp r0, 0 beq _0802C8A4 - bl sub_814A7FC + bl DestroyMenuCursor movs r0, 0x5 bl PlaySE ldr r0, _0802C898 @ =gUnknown_030042A4 @@ -1127,7 +1127,7 @@ _0802C888: movs r0, 0x1 movs r1, 0xA bl dp01_build_cmdbuf_x21_a_bb - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted b _0802CA38 .align 2, 0 _0802C898: .4byte gUnknown_030042A4 @@ -1138,7 +1138,7 @@ _0802C8A4: ands r0, r1 cmp r0, 0 beq _0802C8D4 - ldr r4, _0802C8D0 @ =gUnknown_02024E64 + ldr r4, _0802C8D0 @ =gMoveSelectionCursor adds r2, r4 ldrb r1, [r2] adds r0, r5, 0 @@ -1156,13 +1156,13 @@ _0802C8BC: eors r0, r2 b _0802C976 .align 2, 0 -_0802C8D0: .4byte gUnknown_02024E64 +_0802C8D0: .4byte gMoveSelectionCursor _0802C8D4: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0802C914 - ldr r4, _0802C90C @ =gUnknown_02024E64 + ldr r4, _0802C90C @ =gMoveSelectionCursor adds r3, r2, r4 ldrb r2, [r3] movs r6, 0x1 @@ -1188,14 +1188,14 @@ _0802C8FC: eors r0, r6 b _0802C976 .align 2, 0 -_0802C90C: .4byte gUnknown_02024E64 +_0802C90C: .4byte gMoveSelectionCursor _0802C910: .4byte gUnknown_03004348 _0802C914: movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0802C944 - ldr r4, _0802C940 @ =gUnknown_02024E64 + ldr r4, _0802C940 @ =gMoveSelectionCursor adds r2, r4 ldrb r1, [r2] adds r0, r6, 0 @@ -1213,13 +1213,13 @@ _0802C92C: eors r0, r2 b _0802C976 .align 2, 0 -_0802C940: .4byte gUnknown_02024E64 +_0802C940: .4byte gMoveSelectionCursor _0802C944: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0802C99C - ldr r4, _0802C994 @ =gUnknown_02024E64 + ldr r4, _0802C994 @ =gMoveSelectionCursor adds r3, r2, r4 ldrb r2, [r3] movs r5, 0x2 @@ -1252,7 +1252,7 @@ _0802C976: bl sub_802E2D4 b _0802CA38 .align 2, 0 -_0802C994: .4byte gUnknown_02024E64 +_0802C994: .4byte gMoveSelectionCursor _0802C998: .4byte gUnknown_03004348 _0802C99C: movs r0, 0x4 @@ -1271,7 +1271,7 @@ _0802C99C: lsrs r5, r0, 16 cmp r5, 0 bne _0802CA38 - ldr r4, _0802C9E0 @ =gUnknown_02024E64 + ldr r4, _0802C9E0 @ =gMoveSelectionCursor adds r0, r2, r4 ldrb r0, [r0] ldr r1, _0802C9E4 @ =gUnknown_081FAE80 @@ -1287,7 +1287,7 @@ _0802C99C: .align 2, 0 _0802C9D8: .4byte gUnknown_03004348 _0802C9DC: .4byte gBattleTypeFlags -_0802C9E0: .4byte gUnknown_02024E64 +_0802C9E0: .4byte gMoveSelectionCursor _0802C9E4: .4byte gUnknown_081FAE80 _0802C9E8: .4byte gUnknown_03004344 _0802C9EC: @@ -1319,8 +1319,8 @@ _0802C9F4: bl InitWindow adds r0, r4, 0 bl sub_8002F44 - ldr r1, _0802CA54 @ =gUnknown_03004330 - ldr r0, _0802CA58 @ =gUnknown_02024A60 + ldr r1, _0802CA54 @ =gBattleBankFunc + ldr r0, _0802CA58 @ =gActiveBank ldrb r0, [r0] lsls r0, 2 adds r0, r1 @@ -1339,8 +1339,8 @@ _0802CA44: .4byte gUnknown_03004344 _0802CA48: .4byte gUnknown_03004210 _0802CA4C: .4byte 0x00001016 _0802CA50: .4byte gUnknown_08400D89 -_0802CA54: .4byte gUnknown_03004330 -_0802CA58: .4byte gUnknown_02024A60 +_0802CA54: .4byte gBattleBankFunc +_0802CA58: .4byte gActiveBank _0802CA5C: .4byte sub_802CA60 thumb_func_end sub_802C68C @@ -1362,9 +1362,9 @@ sub_802CA60: @ 802CA60 _0802CA7A: movs r0, 0x5 bl PlaySE - ldr r0, _0802CDF0 @ =gUnknown_02024E64 + ldr r0, _0802CDF0 @ =gMoveSelectionCursor mov r10, r0 - ldr r1, _0802CDF4 @ =gUnknown_02024A60 + ldr r1, _0802CDF4 @ =gActiveBank mov r8, r1 ldrb r1, [r1] adds r2, r1, r0 @@ -1427,7 +1427,7 @@ _0802CA98: lsls r0, r1, 3 subs r0, r1 lsls r0, 2 - ldr r2, _0802CE00 @ =gUnknown_02024CA8 + ldr r2, _0802CE00 @ =gDisableStructs adds r6, r0, r2 ldrb r4, [r6, 0x18] lsls r3, r4, 24 @@ -1455,7 +1455,7 @@ _0802CA98: lsls r1, r0, 3 subs r1, r0 lsls r1, 2 - ldr r3, _0802CE00 @ =gUnknown_02024CA8 + ldr r3, _0802CE00 @ =gDisableStructs adds r1, r3 ldrb r4, [r1, 0x18] lsrs r3, r4, 4 @@ -1500,7 +1500,7 @@ _0802CB76: adds r6, 0x1 cmp r6, 0x3 ble _0802CB76 - ldr r1, _0802CDF0 @ =gUnknown_02024E64 + ldr r1, _0802CDF0 @ =gMoveSelectionCursor ldrb r0, [r7] adds r0, r1 ldrb r0, [r0] @@ -1583,7 +1583,7 @@ _0802CC0C: adds r6, 0x1 cmp r6, 0x3 ble _0802CC0C - ldr r2, _0802CDF4 @ =gUnknown_02024A60 + ldr r2, _0802CDF4 @ =gActiveBank ldrb r1, [r2] movs r0, 0x58 muls r0, r1 @@ -1604,7 +1604,7 @@ _0802CC4E: str r0, [sp, 0x24] add r1, sp, 0x14 mov r10, r1 - ldr r3, _0802CE0C @ =gUnknown_02024A6A + ldr r3, _0802CE0C @ =gBattlePartyID mov r9, r3 mov r8, r2 movs r7, 0x64 @@ -1639,8 +1639,8 @@ _0802CC66: adds r6, 0x1 cmp r6, 0x3 ble _0802CC66 - ldr r1, _0802CE0C @ =gUnknown_02024A6A - ldr r0, _0802CDF4 @ =gUnknown_02024A60 + ldr r1, _0802CE0C @ =gBattlePartyID + ldr r0, _0802CDF4 @ =gActiveBank ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -1670,8 +1670,8 @@ _0802CCC6: adds r6, 0x1 cmp r6, 0x3 ble _0802CCC6 - ldr r4, _0802CDF0 @ =gUnknown_02024E64 - ldr r3, _0802CDF4 @ =gUnknown_02024A60 + ldr r4, _0802CDF0 @ =gMoveSelectionCursor + ldr r3, _0802CDF4 @ =gActiveBank ldrb r0, [r3] adds r0, r4 ldrb r1, [r0] @@ -1747,9 +1747,9 @@ _0802CD5E: cmp r6, 0x3 ble _0802CD5E movs r6, 0 - ldr r3, _0802CE0C @ =gUnknown_02024A6A + ldr r3, _0802CE0C @ =gBattlePartyID mov r10, r3 - ldr r5, _0802CDF4 @ =gUnknown_02024A60 + ldr r5, _0802CDF4 @ =gActiveBank mov r9, r5 movs r0, 0x64 mov r8, r0 @@ -1789,8 +1789,8 @@ _0802CD8C: adds r6, 0x1 cmp r6, 0x3 ble _0802CD8C - ldr r1, _0802CE0C @ =gUnknown_02024A6A - ldr r0, _0802CDF4 @ =gUnknown_02024A60 + ldr r1, _0802CE0C @ =gBattlePartyID + ldr r0, _0802CDF4 @ =gActiveBank ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -1805,28 +1805,28 @@ _0802CD8C: b _0802CE1C .align 2, 0 _0802CDEC: .4byte gMain -_0802CDF0: .4byte gUnknown_02024E64 -_0802CDF4: .4byte gUnknown_02024A60 +_0802CDF0: .4byte gMoveSelectionCursor +_0802CDF4: .4byte gActiveBank _0802CDF8: .4byte gUnknown_03004344 _0802CDFC: .4byte gUnknown_02023A64 -_0802CE00: .4byte gUnknown_02024CA8 +_0802CE00: .4byte gDisableStructs _0802CE04: .4byte gBitTable _0802CE08: .4byte gBattleMons -_0802CE0C: .4byte gUnknown_02024A6A +_0802CE0C: .4byte gBattlePartyID _0802CE10: .4byte gPlayerParty _0802CE14: ldrb r0, [r5] ldr r1, _0802CF20 @ =gUnknown_08400D49 bl sub_802E12C _0802CE1C: - ldr r1, _0802CF24 @ =gUnknown_03004330 - ldr r2, _0802CF28 @ =gUnknown_02024A60 + ldr r1, _0802CF24 @ =gBattleBankFunc + ldr r2, _0802CF28 @ =gActiveBank ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, _0802CF2C @ =sub_802C68C str r1, [r0] - ldr r3, _0802CF30 @ =gUnknown_02024E64 + ldr r3, _0802CF30 @ =gMoveSelectionCursor ldrb r0, [r2] adds r0, r3 ldr r1, _0802CF34 @ =gUnknown_03004344 @@ -1871,8 +1871,8 @@ _0802CE78: ldr r0, _0802CF34 @ =gUnknown_03004344 ldrb r0, [r0] bl nullsub_7 - ldr r5, _0802CF30 @ =gUnknown_02024E64 - ldr r4, _0802CF28 @ =gUnknown_02024A60 + ldr r5, _0802CF30 @ =gMoveSelectionCursor + ldr r4, _0802CF28 @ =gActiveBank ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] @@ -1883,7 +1883,7 @@ _0802CE78: ldrb r0, [r0] ldr r1, _0802CF20 @ =gUnknown_08400D49 bl sub_802E12C - ldr r1, _0802CF24 @ =gUnknown_03004330 + ldr r1, _0802CF24 @ =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 adds r0, r1 @@ -1923,8 +1923,8 @@ _0802CEF0: ands r0, r2 cmp r0, 0 beq _0802CF8C - ldr r0, _0802CF30 @ =gUnknown_02024E64 - ldr r1, _0802CF28 @ =gUnknown_02024A60 + ldr r0, _0802CF30 @ =gMoveSelectionCursor + ldr r1, _0802CF28 @ =gActiveBank ldrb r1, [r1] adds r1, r0 ldrb r5, [r1] @@ -1936,10 +1936,10 @@ _0802CEF0: b _0802CF4E .align 2, 0 _0802CF20: .4byte gUnknown_08400D49 -_0802CF24: .4byte gUnknown_03004330 -_0802CF28: .4byte gUnknown_02024A60 +_0802CF24: .4byte gBattleBankFunc +_0802CF28: .4byte gActiveBank _0802CF2C: .4byte sub_802C68C -_0802CF30: .4byte gUnknown_02024E64 +_0802CF30: .4byte gMoveSelectionCursor _0802CF34: .4byte gUnknown_03004344 _0802CF38: .4byte gUnknown_03004210 _0802CF3C: .4byte 0x00001016 @@ -1956,8 +1956,8 @@ _0802CF4E: strb r0, [r4] movs r0, 0x5 bl PlaySE - ldr r1, _0802CF7C @ =gUnknown_02024E64 - ldr r0, _0802CF80 @ =gUnknown_02024A60 + ldr r1, _0802CF7C @ =gMoveSelectionCursor + ldr r0, _0802CF80 @ =gActiveBank ldrb r0, [r0] adds r0, r1 ldrb r1, [r4] @@ -1970,8 +1970,8 @@ _0802CF4E: b _0802CF8C .align 2, 0 _0802CF78: .4byte gUnknown_03004344 -_0802CF7C: .4byte gUnknown_02024E64 -_0802CF80: .4byte gUnknown_02024A60 +_0802CF7C: .4byte gMoveSelectionCursor +_0802CF80: .4byte gActiveBank _0802CF84: ldrb r0, [r4] movs r1, 0x1B @@ -1995,8 +1995,8 @@ _0802CF8C: ldrb r1, [r1] cmp r0, r1 bcs _0802D020 - ldr r0, _0802CFD4 @ =gUnknown_02024E64 - ldr r1, _0802CFD8 @ =gUnknown_02024A60 + ldr r0, _0802CFD4 @ =gMoveSelectionCursor + ldr r1, _0802CFD8 @ =gActiveBank ldrb r1, [r1] adds r1, r0 ldrb r0, [r1] @@ -2010,8 +2010,8 @@ _0802CF8C: _0802CFC8: .4byte gMain _0802CFCC: .4byte gUnknown_03004344 _0802CFD0: .4byte gUnknown_03004348 -_0802CFD4: .4byte gUnknown_02024E64 -_0802CFD8: .4byte gUnknown_02024A60 +_0802CFD4: .4byte gMoveSelectionCursor +_0802CFD8: .4byte gActiveBank _0802CFDC: ldrb r0, [r3] bl nullsub_7 @@ -2023,8 +2023,8 @@ _0802CFE2: strb r0, [r4] movs r0, 0x5 bl PlaySE - ldr r1, _0802D010 @ =gUnknown_02024E64 - ldr r0, _0802D014 @ =gUnknown_02024A60 + ldr r1, _0802D010 @ =gMoveSelectionCursor + ldr r0, _0802D014 @ =gActiveBank ldrb r0, [r0] adds r0, r1 ldrb r1, [r4] @@ -2037,8 +2037,8 @@ _0802CFE2: b _0802D020 .align 2, 0 _0802D00C: .4byte gUnknown_03004344 -_0802D010: .4byte gUnknown_02024E64 -_0802D014: .4byte gUnknown_02024A60 +_0802D010: .4byte gMoveSelectionCursor +_0802D014: .4byte gActiveBank _0802D018: ldrb r0, [r4] movs r1, 0x1B @@ -2056,8 +2056,8 @@ _0802D020: ands r0, r2 cmp r0, 0 beq _0802D0A4 - ldr r0, _0802D058 @ =gUnknown_02024E64 - ldr r1, _0802D05C @ =gUnknown_02024A60 + ldr r0, _0802D058 @ =gMoveSelectionCursor + ldr r1, _0802D05C @ =gActiveBank ldrb r1, [r1] adds r1, r0 ldrb r5, [r1] @@ -2070,8 +2070,8 @@ _0802D020: .align 2, 0 _0802D050: .4byte gMain _0802D054: .4byte gUnknown_03004344 -_0802D058: .4byte gUnknown_02024E64 -_0802D05C: .4byte gUnknown_02024A60 +_0802D058: .4byte gMoveSelectionCursor +_0802D05C: .4byte gActiveBank _0802D060: ldrb r0, [r3] bl nullsub_7 @@ -2083,8 +2083,8 @@ _0802D066: strb r0, [r4] movs r0, 0x5 bl PlaySE - ldr r1, _0802D094 @ =gUnknown_02024E64 - ldr r0, _0802D098 @ =gUnknown_02024A60 + ldr r1, _0802D094 @ =gMoveSelectionCursor + ldr r0, _0802D098 @ =gActiveBank ldrb r0, [r0] adds r0, r1 ldrb r1, [r4] @@ -2097,8 +2097,8 @@ _0802D066: b _0802D0A4 .align 2, 0 _0802D090: .4byte gUnknown_03004344 -_0802D094: .4byte gUnknown_02024E64 -_0802D098: .4byte gUnknown_02024A60 +_0802D094: .4byte gMoveSelectionCursor +_0802D098: .4byte gActiveBank _0802D09C: ldrb r0, [r4] movs r1, 0x1B @@ -2122,8 +2122,8 @@ _0802D0A4: ldrb r1, [r1] cmp r0, r1 bcs _0802D138 - ldr r0, _0802D0EC @ =gUnknown_02024E64 - ldr r1, _0802D0F0 @ =gUnknown_02024A60 + ldr r0, _0802D0EC @ =gMoveSelectionCursor + ldr r1, _0802D0F0 @ =gActiveBank ldrb r1, [r1] adds r1, r0 ldrb r0, [r1] @@ -2137,8 +2137,8 @@ _0802D0A4: _0802D0E0: .4byte gMain _0802D0E4: .4byte gUnknown_03004344 _0802D0E8: .4byte gUnknown_03004348 -_0802D0EC: .4byte gUnknown_02024E64 -_0802D0F0: .4byte gUnknown_02024A60 +_0802D0EC: .4byte gMoveSelectionCursor +_0802D0F0: .4byte gActiveBank _0802D0F4: ldrb r0, [r3] bl nullsub_7 @@ -2150,8 +2150,8 @@ _0802D0FA: strb r0, [r4] movs r0, 0x5 bl PlaySE - ldr r1, _0802D128 @ =gUnknown_02024E64 - ldr r0, _0802D12C @ =gUnknown_02024A60 + ldr r1, _0802D128 @ =gMoveSelectionCursor + ldr r0, _0802D12C @ =gActiveBank ldrb r0, [r0] adds r0, r1 ldrb r1, [r4] @@ -2164,8 +2164,8 @@ _0802D0FA: b _0802D138 .align 2, 0 _0802D124: .4byte gUnknown_03004344 -_0802D128: .4byte gUnknown_02024E64 -_0802D12C: .4byte gUnknown_02024A60 +_0802D128: .4byte gMoveSelectionCursor +_0802D12C: .4byte gActiveBank _0802D130: ldrb r0, [r4] movs r1, 0x1B @@ -2198,7 +2198,7 @@ sub_802D148: @ 802D148 negs r0, r0 ands r0, r1 strb r0, [r2] - ldr r0, _0802D184 @ =gUnknown_030042D0 + ldr r0, _0802D184 @ =gPreBattleCallback1 ldr r0, [r0] str r0, [r3] ldr r0, _0802D188 @ =c2_8011A1C @@ -2210,7 +2210,7 @@ _0802D174: _0802D178: .4byte gReceivedRemoteLinkPlayers _0802D17C: .4byte gMain _0802D180: .4byte 0x0000043d -_0802D184: .4byte gUnknown_030042D0 +_0802D184: .4byte gPreBattleCallback1 _0802D188: .4byte c2_8011A1C thumb_func_end sub_802D148 @@ -2230,8 +2230,8 @@ sub_802D18C: @ 802D18C cmp r0, 0 beq _0802D1D0 bl sub_800832C - ldr r1, _0802D1C4 @ =gUnknown_03004330 - ldr r0, _0802D1C8 @ =gUnknown_02024A60 + ldr r1, _0802D1C4 @ =gBattleBankFunc + ldr r0, _0802D1C8 @ =gActiveBank ldrb r0, [r0] lsls r0, 2 adds r0, r1 @@ -2241,8 +2241,8 @@ sub_802D18C: @ 802D18C .align 2, 0 _0802D1BC: .4byte gPaletteFade _0802D1C0: .4byte gBattleTypeFlags -_0802D1C4: .4byte gUnknown_03004330 -_0802D1C8: .4byte gUnknown_02024A60 +_0802D1C4: .4byte gBattleBankFunc +_0802D1C8: .4byte gActiveBank _0802D1CC: .4byte sub_802D148 _0802D1D0: movs r0, 0x5A @@ -2255,7 +2255,7 @@ _0802D1D0: negs r0, r0 ands r0, r1 strb r0, [r3] - ldr r0, _0802D200 @ =gUnknown_030042D0 + ldr r0, _0802D200 @ =gPreBattleCallback1 ldr r0, [r0] str r0, [r2] ldr r0, [r2, 0x8] @@ -2266,15 +2266,15 @@ _0802D1F2: .align 2, 0 _0802D1F8: .4byte gMain _0802D1FC: .4byte 0x0000043d -_0802D200: .4byte gUnknown_030042D0 +_0802D200: .4byte gPreBattleCallback1 thumb_func_end sub_802D18C thumb_func_start sub_802D204 sub_802D204: @ 802D204 push {lr} ldr r2, _0802D22C @ =gSprites - ldr r1, _0802D230 @ =gUnknown_02024BE0 - ldr r0, _0802D234 @ =gUnknown_02024A60 + ldr r1, _0802D230 @ =gObjectBankIDs + ldr r0, _0802D234 @ =gActiveBank ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -2287,14 +2287,14 @@ sub_802D204: @ 802D204 ldr r0, _0802D238 @ =SpriteCallbackDummy cmp r1, r0 bne _0802D228 - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted _0802D228: pop {r0} bx r0 .align 2, 0 _0802D22C: .4byte gSprites -_0802D230: .4byte gUnknown_02024BE0 -_0802D234: .4byte gUnknown_02024A60 +_0802D230: .4byte gObjectBankIDs +_0802D234: .4byte gActiveBank _0802D238: .4byte SpriteCallbackDummy thumb_func_end sub_802D204 @@ -2302,8 +2302,8 @@ _0802D238: .4byte SpriteCallbackDummy sub_802D23C: @ 802D23C push {lr} ldr r2, _0802D264 @ =gSprites - ldr r1, _0802D268 @ =gUnknown_02024BE0 - ldr r0, _0802D26C @ =gUnknown_02024A60 + ldr r1, _0802D268 @ =gObjectBankIDs + ldr r0, _0802D26C @ =gActiveBank ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -2316,14 +2316,14 @@ sub_802D23C: @ 802D23C ldr r0, _0802D270 @ =SpriteCallbackDummy cmp r1, r0 bne _0802D260 - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted _0802D260: pop {r0} bx r0 .align 2, 0 _0802D264: .4byte gSprites -_0802D268: .4byte gUnknown_02024BE0 -_0802D26C: .4byte gUnknown_02024A60 +_0802D268: .4byte gObjectBankIDs +_0802D26C: .4byte gActiveBank _0802D270: .4byte SpriteCallbackDummy thumb_func_end sub_802D23C @@ -2331,8 +2331,8 @@ _0802D270: .4byte SpriteCallbackDummy sub_802D274: @ 802D274 push {r4-r6,lr} ldr r6, _0802D2CC @ =gSprites - ldr r5, _0802D2D0 @ =gUnknown_02024BE0 - ldr r4, _0802D2D4 @ =gUnknown_02024A60 + ldr r5, _0802D2D0 @ =gObjectBankIDs + ldr r4, _0802D2D4 @ =gActiveBank ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] @@ -2365,15 +2365,15 @@ sub_802D274: @ 802D274 lsls r0, 2 adds r0, r6 bl DestroySprite - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted _0802D2C6: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802D2CC: .4byte gSprites -_0802D2D0: .4byte gUnknown_02024BE0 -_0802D2D4: .4byte gUnknown_02024A60 +_0802D2D0: .4byte gObjectBankIDs +_0802D2D4: .4byte gActiveBank _0802D2D8: .4byte SpriteCallbackDummy _0802D2DC: .4byte gSaveBlock2 thumb_func_end sub_802D274 @@ -2381,7 +2381,7 @@ _0802D2DC: .4byte gSaveBlock2 thumb_func_start sub_802D2E0 sub_802D2E0: @ 802D2E0 push {lr} - ldr r3, _0802D314 @ =gUnknown_02024A60 + ldr r3, _0802D314 @ =gActiveBank ldrb r0, [r3] lsls r1, r0, 1 adds r1, r0 @@ -2402,12 +2402,12 @@ sub_802D2E0: @ 802D2E0 adds r1, r2 movs r0, 0 strb r0, [r1, 0x9] - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted _0802D310: pop {r0} bx r0 .align 2, 0 -_0802D314: .4byte gUnknown_02024A60 +_0802D314: .4byte gActiveBank _0802D318: .4byte 0x02017810 thumb_func_end sub_802D2E0 @@ -2431,8 +2431,8 @@ sub_802D31C: @ 802D31C beq _0802D374 _0802D340: ldr r2, _0802D364 @ =gSprites - ldr r1, _0802D368 @ =gUnknown_03004340 - ldr r0, _0802D36C @ =gUnknown_02024A60 + ldr r1, _0802D368 @ =gHealthboxIDs + ldr r0, _0802D36C @ =gActiveBank ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -2449,13 +2449,13 @@ _0802D340: .align 2, 0 _0802D360: .4byte gBattleTypeFlags _0802D364: .4byte gSprites -_0802D368: .4byte gUnknown_03004340 -_0802D36C: .4byte gUnknown_02024A60 +_0802D368: .4byte gHealthboxIDs +_0802D36C: .4byte gActiveBank _0802D370: .4byte SpriteCallbackDummy _0802D374: ldr r2, _0802D45C @ =gSprites - ldr r5, _0802D460 @ =gUnknown_03004340 - ldr r0, _0802D464 @ =gUnknown_02024A60 + ldr r5, _0802D460 @ =gHealthboxIDs + ldr r0, _0802D464 @ =gActiveBank ldrb r3, [r0] adds r0, r3, r5 ldrb r1, [r0] @@ -2492,7 +2492,7 @@ _0802D3B6: bne _0802D3BC b _0802D4DA _0802D3BC: - ldr r7, _0802D464 @ =gUnknown_02024A60 + ldr r7, _0802D464 @ =gActiveBank ldrb r2, [r7] lsls r0, r2, 1 adds r0, r2 @@ -2571,8 +2571,8 @@ _0802D3D8: b _0802D488 .align 2, 0 _0802D45C: .4byte gSprites -_0802D460: .4byte gUnknown_03004340 -_0802D464: .4byte gUnknown_02024A60 +_0802D460: .4byte gHealthboxIDs +_0802D464: .4byte gActiveBank _0802D468: .4byte SpriteCallbackDummy _0802D46C: .4byte 0x02017810 _0802D470: .4byte 0x000027f9 @@ -2585,8 +2585,8 @@ _0802D47C: lsls r2, 1 bl m4aMPlayVolumeControl _0802D488: - ldr r7, _0802D4E8 @ =gUnknown_02024A6A - ldr r4, _0802D4EC @ =gUnknown_02024A60 + ldr r7, _0802D4E8 @ =gBattlePartyID + ldr r4, _0802D4EC @ =gActiveBank ldrb r1, [r4] lsls r0, r1, 1 adds r0, r7 @@ -2618,7 +2618,7 @@ _0802D4BE: adds r0, r1 movs r1, 0x3 strb r1, [r0, 0x9] - ldr r1, _0802D4F8 @ =gUnknown_03004330 + ldr r1, _0802D4F8 @ =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 adds r0, r1 @@ -2631,18 +2631,18 @@ _0802D4DA: .align 2, 0 _0802D4E0: .4byte gMPlay_BGM _0802D4E4: .4byte 0x0000ffff -_0802D4E8: .4byte gUnknown_02024A6A -_0802D4EC: .4byte gUnknown_02024A60 +_0802D4E8: .4byte gBattlePartyID +_0802D4EC: .4byte gActiveBank _0802D4F0: .4byte gPlayerParty _0802D4F4: .4byte 0x02017810 -_0802D4F8: .4byte gUnknown_03004330 +_0802D4F8: .4byte gBattleBankFunc _0802D4FC: .4byte sub_802D2E0 thumb_func_end sub_802D31C thumb_func_start sub_802D500 sub_802D500: @ 802D500 push {r4-r7,lr} - ldr r5, _0802D654 @ =gUnknown_02024A60 + ldr r5, _0802D654 @ =gActiveBank ldrb r2, [r5] lsls r3, r2, 1 adds r0, r3, r2 @@ -2655,7 +2655,7 @@ sub_802D500: @ 802D500 ands r0, r1 cmp r0, 0 bne _0802D530 - ldr r0, _0802D65C @ =gUnknown_02024A6A + ldr r0, _0802D65C @ =gBattlePartyID adds r0, r3, r0 ldrh r1, [r0] movs r0, 0x64 @@ -2678,7 +2678,7 @@ _0802D530: ands r0, r1 cmp r0, 0 bne _0802D55E - ldr r0, _0802D65C @ =gUnknown_02024A6A + ldr r0, _0802D65C @ =gBattlePartyID adds r0, r3, r0 ldrh r1, [r0] movs r0, 0x64 @@ -2731,13 +2731,13 @@ _0802D55E: ldr r1, _0802D66C @ =gSprites adds r0, r1 bl DestroySprite - ldr r4, _0802D670 @ =gUnknown_03004340 + ldr r4, _0802D670 @ =gHealthboxIDs ldrb r0, [r5] adds r1, r6, 0 eors r1, r0 adds r0, r1, r4 ldrb r0, [r0] - ldr r2, _0802D65C @ =gUnknown_02024A6A + ldr r2, _0802D65C @ =gBattlePartyID lsls r1, 1 adds r1, r2 ldrh r2, [r1] @@ -2757,7 +2757,7 @@ _0802D55E: bl sub_8043DFC _0802D5EE: ldr r1, _0802D668 @ =gUnknown_0300434C - ldr r4, _0802D654 @ =gUnknown_02024A60 + ldr r4, _0802D654 @ =gActiveBank ldrb r0, [r4] adds r0, r1 ldrb r1, [r0] @@ -2767,11 +2767,11 @@ _0802D5EE: ldr r1, _0802D66C @ =gSprites adds r0, r1 bl DestroySprite - ldr r5, _0802D670 @ =gUnknown_03004340 + ldr r5, _0802D670 @ =gHealthboxIDs ldrb r1, [r4] adds r0, r1, r5 ldrb r0, [r0] - ldr r2, _0802D65C @ =gUnknown_02024A6A + ldr r2, _0802D65C @ =gBattlePartyID lsls r1, 1 adds r1, r2 ldrh r2, [r1] @@ -2793,7 +2793,7 @@ _0802D5EE: negs r0, r0 ands r0, r1 strb r0, [r2, 0x9] - ldr r1, _0802D678 @ =gUnknown_03004330 + ldr r1, _0802D678 @ =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 adds r0, r1 @@ -2804,16 +2804,16 @@ _0802D64C: pop {r0} bx r0 .align 2, 0 -_0802D654: .4byte gUnknown_02024A60 +_0802D654: .4byte gActiveBank _0802D658: .4byte 0x02017810 -_0802D65C: .4byte gUnknown_02024A6A +_0802D65C: .4byte gBattlePartyID _0802D660: .4byte gPlayerParty _0802D664: .4byte gBattleTypeFlags _0802D668: .4byte gUnknown_0300434C _0802D66C: .4byte gSprites -_0802D670: .4byte gUnknown_03004340 +_0802D670: .4byte gHealthboxIDs _0802D674: .4byte 0x02017840 -_0802D678: .4byte gUnknown_03004330 +_0802D678: .4byte gBattleBankFunc _0802D67C: .4byte sub_802D31C thumb_func_end sub_802D500 @@ -2821,8 +2821,8 @@ _0802D67C: .4byte sub_802D31C sub_802D680: @ 802D680 push {r4-r6,lr} ldr r2, _0802D710 @ =gSprites - ldr r0, _0802D714 @ =gUnknown_03004340 - ldr r6, _0802D718 @ =gUnknown_02024A60 + ldr r0, _0802D714 @ =gHealthboxIDs + ldr r6, _0802D718 @ =gActiveBank ldrb r3, [r6] adds r0, r3, r0 ldrb r1, [r0] @@ -2879,7 +2879,7 @@ sub_802D680: @ 802D680 movs r3, 0x6 bl move_anim_start_t4 _0802D6FC: - ldr r0, _0802D728 @ =gUnknown_03004330 + ldr r0, _0802D728 @ =gBattleBankFunc ldrb r1, [r6] lsls r1, 2 adds r1, r0 @@ -2891,19 +2891,19 @@ _0802D708: bx r0 .align 2, 0 _0802D710: .4byte gSprites -_0802D714: .4byte gUnknown_03004340 -_0802D718: .4byte gUnknown_02024A60 +_0802D714: .4byte gHealthboxIDs +_0802D718: .4byte gActiveBank _0802D71C: .4byte SpriteCallbackDummy _0802D720: .4byte 0x02017810 _0802D724: .4byte 0x000027f9 -_0802D728: .4byte gUnknown_03004330 +_0802D728: .4byte gBattleBankFunc _0802D72C: .4byte sub_802D730 thumb_func_end sub_802D680 thumb_func_start sub_802D730 sub_802D730: @ 802D730 push {r4,lr} - ldr r4, _0802D780 @ =gUnknown_02024A60 + ldr r4, _0802D780 @ =gActiveBank ldrb r1, [r4] lsls r0, r1, 1 adds r0, r1 @@ -2924,7 +2924,7 @@ sub_802D730: @ 802D730 movs r2, 0x80 lsls r2, 1 bl m4aMPlayVolumeControl - ldr r2, _0802D790 @ =gUnknown_02024A6A + ldr r2, _0802D790 @ =gBattlePartyID ldrb r1, [r4] lsls r0, r1, 1 adds r0, r2 @@ -2934,24 +2934,24 @@ sub_802D730: @ 802D730 ldr r2, _0802D794 @ =gPlayerParty adds r0, r2 bl sub_80324F8 - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted _0802D77A: pop {r4} pop {r0} bx r0 .align 2, 0 -_0802D780: .4byte gUnknown_02024A60 +_0802D780: .4byte gActiveBank _0802D784: .4byte 0x02017810 _0802D788: .4byte gMPlay_BGM _0802D78C: .4byte 0x0000ffff -_0802D790: .4byte gUnknown_02024A6A +_0802D790: .4byte gBattlePartyID _0802D794: .4byte gPlayerParty thumb_func_end sub_802D730 thumb_func_start sub_802D798 sub_802D798: @ 802D798 push {r4-r6,lr} - ldr r5, _0802D844 @ =gUnknown_02024A60 + ldr r5, _0802D844 @ =gActiveBank ldrb r2, [r5] lsls r3, r2, 1 adds r0, r3, r2 @@ -2963,7 +2963,7 @@ sub_802D798: @ 802D798 ands r0, r1 cmp r0, 0 bne _0802D7C6 - ldr r0, _0802D84C @ =gUnknown_02024A6A + ldr r0, _0802D84C @ =gBattlePartyID adds r0, r3, r0 ldrh r1, [r0] movs r0, 0x64 @@ -2999,11 +2999,11 @@ _0802D7C6: bne _0802D83C adds r0, r3, r4 bl DestroySprite - ldr r4, _0802D860 @ =gUnknown_03004340 + ldr r4, _0802D860 @ =gHealthboxIDs ldrb r1, [r5] adds r0, r1, r4 ldrb r0, [r0] - ldr r2, _0802D84C @ =gUnknown_02024A6A + ldr r2, _0802D84C @ =gBattlePartyID lsls r1, 1 adds r1, r2 ldrh r2, [r1] @@ -3021,7 +3021,7 @@ _0802D7C6: bl sub_8043DFC ldrb r0, [r5] bl sub_8031F88 - ldr r1, _0802D864 @ =gUnknown_03004330 + ldr r1, _0802D864 @ =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 adds r0, r1 @@ -3032,15 +3032,15 @@ _0802D83C: pop {r0} bx r0 .align 2, 0 -_0802D844: .4byte gUnknown_02024A60 +_0802D844: .4byte gActiveBank _0802D848: .4byte 0x02017810 -_0802D84C: .4byte gUnknown_02024A6A +_0802D84C: .4byte gBattlePartyID _0802D850: .4byte gPlayerParty _0802D854: .4byte gSprites _0802D858: .4byte gUnknown_0300434C _0802D85C: .4byte SpriteCallbackDummy -_0802D860: .4byte gUnknown_03004340 -_0802D864: .4byte gUnknown_03004330 +_0802D860: .4byte gHealthboxIDs +_0802D864: .4byte gBattleBankFunc _0802D868: .4byte sub_802D680 thumb_func_end sub_802D798 @@ -3072,9 +3072,9 @@ _0802D898: .4byte 0x0000ffff thumb_func_start bx_t1_healthbar_update bx_t1_healthbar_update: @ 802D89C push {r4-r6,lr} - ldr r5, _0802D8DC @ =gUnknown_02024A60 + ldr r5, _0802D8DC @ =gActiveBank ldrb r0, [r5] - ldr r6, _0802D8E0 @ =gUnknown_03004340 + ldr r6, _0802D8E0 @ =gHealthboxIDs adds r1, r0, r6 ldrb r1, [r1] movs r2, 0 @@ -3100,10 +3100,10 @@ bx_t1_healthbar_update: @ 802D89C bl sub_80440EC b _0802D8FE .align 2, 0 -_0802D8DC: .4byte gUnknown_02024A60 -_0802D8E0: .4byte gUnknown_03004340 +_0802D8DC: .4byte gActiveBank +_0802D8E0: .4byte gHealthboxIDs _0802D8E4: - ldr r2, _0802D904 @ =gUnknown_02024A6A + ldr r2, _0802D904 @ =gBattlePartyID ldrb r1, [r5] lsls r0, r1, 1 adds r0, r2 @@ -3113,13 +3113,13 @@ _0802D8E4: ldr r2, _0802D908 @ =gPlayerParty adds r0, r2 bl sub_80324F8 - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted _0802D8FE: pop {r4-r6} pop {r0} bx r0 .align 2, 0 -_0802D904: .4byte gUnknown_02024A6A +_0802D904: .4byte gBattlePartyID _0802D908: .4byte gPlayerParty thumb_func_end bx_t1_healthbar_update @@ -3130,7 +3130,7 @@ sub_802D90C: @ 802D90C ldrh r0, [r0, 0x16] cmp r0, 0 bne _0802D91A - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted _0802D91A: pop {r0} bx r0 @@ -3167,7 +3167,7 @@ sub_802D924: @ 802D924 lsrs r0, 24 cmp r0, 0x1 beq _0802D96A - ldr r1, _0802DA28 @ =gUnknown_02024A6A + ldr r1, _0802DA28 @ =gBattlePartyID lsls r0, r7, 1 adds r0, r1 ldrh r0, [r0] @@ -3230,7 +3230,7 @@ _0802D96A: subs r2, r0 ldr r0, [sp, 0xC] subs r2, r0, r2 - ldr r4, _0802DA38 @ =gUnknown_02024A60 + ldr r4, _0802DA38 @ =gActiveBank ldrb r5, [r4] strb r7, [r4] lsls r2, 16 @@ -3244,7 +3244,7 @@ _0802D96A: lsrs r0, 24 cmp r0, 0x1 bne _0802DA40 - ldr r2, _0802DA28 @ =gUnknown_02024A6A + ldr r2, _0802DA28 @ =gBattlePartyID lsls r0, r7, 1 adds r0, r2 mov r1, r10 @@ -3263,11 +3263,11 @@ _0802DA1E: b _0802DA82 .align 2, 0 _0802DA24: .4byte gTasks -_0802DA28: .4byte gUnknown_02024A6A +_0802DA28: .4byte gBattlePartyID _0802DA2C: .4byte gPlayerParty _0802DA30: .4byte gExperienceTables _0802DA34: .4byte gBaseStats -_0802DA38: .4byte gUnknown_02024A60 +_0802DA38: .4byte gActiveBank _0802DA3C: .4byte sub_802DCB0 _0802DA40: ldr r0, _0802DA50 @ =gTasks @@ -3287,7 +3287,7 @@ _0802DA58: adds r0, r6, 0 movs r1, 0x19 bl SetMonData - ldr r1, _0802DA78 @ =gUnknown_03004330 + ldr r1, _0802DA78 @ =gBattleBankFunc ldr r3, [sp, 0x8] lsls r0, r3, 2 adds r0, r1 @@ -3297,7 +3297,7 @@ _0802DA58: bl DestroyTask b _0802DA86 .align 2, 0 -_0802DA78: .4byte gUnknown_03004330 +_0802DA78: .4byte gBattleBankFunc _0802DA7C: .4byte sub_802D90C _0802DA80: ldr r0, _0802DA98 @ =sub_802DA9C @@ -3386,7 +3386,7 @@ sub_802DA9C: @ 802DA9C adds r4, r6 ldr r2, [r4] subs r2, r1 - ldr r0, _0802DB64 @ =gUnknown_03004340 + ldr r0, _0802DB64 @ =gHealthboxIDs add r0, r10 ldrb r1, [r0] mov r0, r9 @@ -3412,7 +3412,7 @@ _0802DB54: .4byte gTasks _0802DB58: .4byte gPlayerParty _0802DB5C: .4byte gExperienceTables _0802DB60: .4byte gBaseStats -_0802DB64: .4byte gUnknown_03004340 +_0802DB64: .4byte gHealthboxIDs _0802DB68: .4byte sub_802DB6C thumb_func_end sub_802DA9C @@ -3448,7 +3448,7 @@ _0802DB9C: ldrh r2, [r6, 0xA] mov r10, r2 ldrb r7, [r6, 0xC] - ldr r5, _0802DC64 @ =gUnknown_03004340 + ldr r5, _0802DC64 @ =gHealthboxIDs adds r5, r7, r5 ldrb r1, [r5] adds r0, r7, 0 @@ -3522,7 +3522,7 @@ _0802DB9C: ldrh r0, [r0] subs r2, r0 subs r2, r4, r2 - ldr r4, _0802DC74 @ =gUnknown_02024A60 + ldr r4, _0802DC74 @ =gActiveBank ldrb r5, [r4] strb r7, [r4] lsls r2, 16 @@ -3535,11 +3535,11 @@ _0802DB9C: str r0, [r6] b _0802DC98 .align 2, 0 -_0802DC64: .4byte gUnknown_03004340 +_0802DC64: .4byte gHealthboxIDs _0802DC68: .4byte gPlayerParty _0802DC6C: .4byte gExperienceTables _0802DC70: .4byte gBaseStats -_0802DC74: .4byte gUnknown_02024A60 +_0802DC74: .4byte gActiveBank _0802DC78: .4byte sub_802DCB0 _0802DC7C: str r0, [sp, 0x4] @@ -3547,7 +3547,7 @@ _0802DC7C: adds r0, r5, 0 movs r1, 0x19 bl SetMonData - ldr r1, _0802DCA8 @ =gUnknown_03004330 + ldr r1, _0802DCA8 @ =gBattleBankFunc lsls r0, r7, 2 adds r0, r1 ldr r1, _0802DCAC @ =sub_802D90C @@ -3564,7 +3564,7 @@ _0802DC98: pop {r0} bx r0 .align 2, 0 -_0802DCA8: .4byte gUnknown_03004330 +_0802DCA8: .4byte gBattleBankFunc _0802DCAC: .4byte sub_802D90C thumb_func_end sub_802DB6C @@ -3585,7 +3585,7 @@ sub_802DCB0: @ 802DCB0 lsrs r0, 24 cmp r0, 0x1 bne _0802DCE4 - ldr r1, _0802DD08 @ =gUnknown_02024A6A + ldr r1, _0802DD08 @ =gBattlePartyID movs r0, 0x2 adds r2, r4, 0 eors r2, r0 @@ -3613,7 +3613,7 @@ _0802DCE4: bx r0 .align 2, 0 _0802DD04: .4byte gTasks -_0802DD08: .4byte gUnknown_02024A6A +_0802DD08: .4byte gBattlePartyID _0802DD0C: .4byte sub_802DD10 thumb_func_end sub_802DCB0 @@ -3652,7 +3652,7 @@ sub_802DD10: @ 802DD10 lsrs r0, 24 cmp r0, 0x1 bne _0802DD8C - ldr r1, _0802DD84 @ =gUnknown_02024A6A + ldr r1, _0802DD84 @ =gBattlePartyID movs r0, 0x2 adds r2, r5, 0 eors r2, r0 @@ -3661,7 +3661,7 @@ sub_802DD10: @ 802DD10 ldrh r0, [r0] cmp r4, r0 bne _0802DD8C - ldr r0, _0802DD88 @ =gUnknown_03004340 + ldr r0, _0802DD88 @ =gHealthboxIDs adds r0, r2, r0 ldrb r0, [r0] adds r1, r7, 0 @@ -3672,10 +3672,10 @@ sub_802DD10: @ 802DD10 _0802DD78: .4byte gTasks _0802DD7C: .4byte 0x02017810 _0802DD80: .4byte gPlayerParty -_0802DD84: .4byte gUnknown_02024A6A -_0802DD88: .4byte gUnknown_03004340 +_0802DD84: .4byte gBattlePartyID +_0802DD88: .4byte gHealthboxIDs _0802DD8C: - ldr r0, _0802DDB4 @ =gUnknown_03004340 + ldr r0, _0802DDB4 @ =gHealthboxIDs adds r0, r5, r0 ldrb r0, [r0] movs r1, 0x64 @@ -3697,7 +3697,7 @@ _0802DDAE: pop {r0} bx r0 .align 2, 0 -_0802DDB4: .4byte gUnknown_03004340 +_0802DDB4: .4byte gHealthboxIDs _0802DDB8: .4byte gPlayerParty _0802DDBC: .4byte gTasks _0802DDC0: .4byte sub_802DDC4 @@ -3722,7 +3722,7 @@ sub_802DDC4: @ 802DDC4 movs r1, 0x38 bl GetMonData ldrb r0, [r4, 0xC] - ldr r1, _0802DE08 @ =gUnknown_03004330 + ldr r1, _0802DE08 @ =gBattleBankFunc lsls r0, 2 adds r0, r1 ldr r1, _0802DE0C @ =sub_802D90C @@ -3735,7 +3735,7 @@ sub_802DDC4: @ 802DDC4 .align 2, 0 _0802DE00: .4byte gTasks _0802DE04: .4byte gPlayerParty -_0802DE08: .4byte gUnknown_03004330 +_0802DE08: .4byte gBattleBankFunc _0802DE0C: .4byte sub_802D90C thumb_func_end sub_802DDC4 @@ -3743,8 +3743,8 @@ _0802DE0C: .4byte sub_802D90C sub_802DE10: @ 802DE10 push {r4-r6,lr} ldr r6, _0802DE94 @ =gSprites - ldr r5, _0802DE98 @ =gUnknown_02024BE0 - ldr r4, _0802DE9C @ =gUnknown_02024A60 + ldr r5, _0802DE98 @ =gObjectBankIDs + ldr r4, _0802DE9C @ =gActiveBank ldrb r2, [r4] adds r0, r2, r5 ldrb r1, [r0] @@ -3759,7 +3759,7 @@ sub_802DE10: @ 802DE10 adds r1, r0 cmp r1, 0xA0 ble _0802DE8C - ldr r1, _0802DEA0 @ =gUnknown_02024A6A + ldr r1, _0802DEA0 @ =gBattlePartyID lsls r0, r2, 1 adds r0, r1 ldrh r1, [r0] @@ -3791,29 +3791,29 @@ sub_802DE10: @ 802DE10 lsls r0, 2 adds r0, r6 bl DestroySprite - ldr r1, _0802DEA8 @ =gUnknown_03004340 + ldr r1, _0802DEA8 @ =gHealthboxIDs ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] bl sub_8043DB0 - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted _0802DE8C: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802DE94: .4byte gSprites -_0802DE98: .4byte gUnknown_02024BE0 -_0802DE9C: .4byte gUnknown_02024A60 -_0802DEA0: .4byte gUnknown_02024A6A +_0802DE98: .4byte gObjectBankIDs +_0802DE9C: .4byte gActiveBank +_0802DEA0: .4byte gBattlePartyID _0802DEA4: .4byte gPlayerParty -_0802DEA8: .4byte gUnknown_03004340 +_0802DEA8: .4byte gHealthboxIDs thumb_func_end sub_802DE10 thumb_func_start sub_802DEAC sub_802DEAC: @ 802DEAC push {r4-r6,lr} - ldr r6, _0802DF04 @ =gUnknown_02024A60 + ldr r6, _0802DF04 @ =gActiveBank ldrb r2, [r6] lsls r0, r2, 1 adds r0, r2 @@ -3825,7 +3825,7 @@ sub_802DEAC: @ 802DEAC ands r0, r1 cmp r0, 0 bne _0802DEFC - ldr r5, _0802DF0C @ =gUnknown_02024BE0 + ldr r5, _0802DF0C @ =gObjectBankIDs adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 @@ -3842,22 +3842,22 @@ sub_802DEAC: @ 802DEAC lsls r0, 2 adds r0, r4 bl DestroySprite - ldr r1, _0802DF14 @ =gUnknown_03004340 + ldr r1, _0802DF14 @ =gHealthboxIDs ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] bl sub_8043DB0 - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted _0802DEFC: pop {r4-r6} pop {r0} bx r0 .align 2, 0 -_0802DF04: .4byte gUnknown_02024A60 +_0802DF04: .4byte gActiveBank _0802DF08: .4byte 0x02017810 -_0802DF0C: .4byte gUnknown_02024BE0 +_0802DF0C: .4byte gObjectBankIDs _0802DF10: .4byte gSprites -_0802DF14: .4byte gUnknown_03004340 +_0802DF14: .4byte gHealthboxIDs thumb_func_end sub_802DEAC thumb_func_start sub_802DF18 @@ -3867,7 +3867,7 @@ sub_802DF18: @ 802DF18 ldrh r0, [r0, 0x16] cmp r0, 0 bne _0802DF26 - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted _0802DF26: pop {r0} bx r0 @@ -3884,8 +3884,8 @@ sub_802DF30: @ 802DF30 ands r0, r1 cmp r0, 0 bne _0802DF6A - ldr r1, _0802DF74 @ =gUnknown_03004330 - ldr r2, _0802DF78 @ =gUnknown_02024A60 + ldr r1, _0802DF74 @ =gBattleBankFunc + ldr r2, _0802DF78 @ =gActiveBank ldrb r0, [r2] lsls r0, 2 adds r0, r1 @@ -3910,8 +3910,8 @@ _0802DF6A: bx r0 .align 2, 0 _0802DF70: .4byte gPaletteFade -_0802DF74: .4byte gUnknown_03004330 -_0802DF78: .4byte gUnknown_02024A60 +_0802DF74: .4byte gBattleBankFunc +_0802DF78: .4byte gActiveBank _0802DF7C: .4byte sub_802DF88 _0802DF80: .4byte gTasks _0802DF84: .4byte gUnknown_0300434C @@ -3954,8 +3954,8 @@ _0802DFD0: movs r2, 0 bl dp01_build_cmdbuf_x22_a_three_bytes _0802DFDA: - ldr r1, _0802DFFC @ =gUnknown_02023A60 - ldr r0, _0802E000 @ =gUnknown_02024A60 + ldr r1, _0802DFFC @ =gBattleBufferA + ldr r0, _0802E000 @ =gActiveBank ldrb r0, [r0] lsls r0, 9 adds r1, 0x1 @@ -3967,13 +3967,13 @@ _0802DFDA: bne _0802DFF4 bl b_link_standby_message _0802DFF4: - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted _0802DFF8: pop {r0} bx r0 .align 2, 0 -_0802DFFC: .4byte gUnknown_02023A60 -_0802E000: .4byte gUnknown_02024A60 +_0802DFFC: .4byte gBattleBufferA +_0802E000: .4byte gActiveBank thumb_func_end sub_802DF88 thumb_func_start sub_802E004 @@ -3985,8 +3985,8 @@ sub_802E004: @ 802E004 ands r0, r1 cmp r0, 0 bne _0802E028 - ldr r1, _0802E030 @ =gUnknown_03004330 - ldr r0, _0802E034 @ =gUnknown_02024A60 + ldr r1, _0802E030 @ =gBattleBankFunc + ldr r0, _0802E034 @ =gActiveBank ldrb r0, [r0] lsls r0, 2 adds r0, r1 @@ -3999,8 +3999,8 @@ _0802E028: bx r0 .align 2, 0 _0802E02C: .4byte gPaletteFade -_0802E030: .4byte gUnknown_03004330 -_0802E034: .4byte gUnknown_02024A60 +_0802E030: .4byte gBattleBankFunc +_0802E034: .4byte gActiveBank _0802E038: .4byte sub_802E03C thumb_func_end sub_802E004 @@ -4022,7 +4022,7 @@ sub_802E03C: @ 802E03C ldrh r1, [r0] movs r0, 0x1 bl dp01_build_cmdbuf_x23_aa_0 - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted _0802E062: pop {r0} bx r0 @@ -4036,11 +4036,11 @@ _0802E074: .4byte gScriptItemId thumb_func_start bx_wait_t1 bx_wait_t1: @ 802E078 push {lr} - ldr r0, _0802E0A4 @ =gUnknown_02024E6D + ldr r0, _0802E0A4 @ =gDoingBattleAnim ldrb r0, [r0] cmp r0, 0 beq _0802E09A - ldr r0, _0802E0A8 @ =gUnknown_02024A60 + ldr r0, _0802E0A8 @ =gActiveBank ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -4053,21 +4053,21 @@ bx_wait_t1: @ 802E078 cmp r0, 0 bne _0802E09E _0802E09A: - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted _0802E09E: pop {r0} bx r0 .align 2, 0 -_0802E0A4: .4byte gUnknown_02024E6D -_0802E0A8: .4byte gUnknown_02024A60 +_0802E0A4: .4byte gDoingBattleAnim +_0802E0A8: .4byte gActiveBank _0802E0AC: .4byte 0x02017810 thumb_func_end bx_wait_t1 thumb_func_start bx_blink_t1 bx_blink_t1: @ 802E0B0 push {r4,lr} - ldr r1, _0802E0EC @ =gUnknown_02024BE0 - ldr r0, _0802E0F0 @ =gUnknown_02024A60 + ldr r1, _0802E0EC @ =gObjectBankIDs + ldr r0, _0802E0F0 @ =gActiveBank ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -4089,15 +4089,15 @@ bx_blink_t1: @ 802E0B0 subs r0, 0x5 ands r0, r1 strb r0, [r2] - ldr r0, _0802E0F8 @ =gUnknown_02024E6D + ldr r0, _0802E0F8 @ =gDoingBattleAnim strb r3, [r0] - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted b _0802E126 .align 2, 0 -_0802E0EC: .4byte gUnknown_02024BE0 -_0802E0F0: .4byte gUnknown_02024A60 +_0802E0EC: .4byte gObjectBankIDs +_0802E0F0: .4byte gActiveBank _0802E0F4: .4byte gSprites -_0802E0F8: .4byte gUnknown_02024E6D +_0802E0F8: .4byte gDoingBattleAnim _0802E0FC: ldrh r0, [r4, 0x30] movs r1, 0x3 @@ -4132,12 +4132,12 @@ sub_802E12C: @ 802E12C push {r4-r6,lr} sub sp, 0x4 adds r6, r0, 0 - ldr r0, _0802E180 @ =gUnknown_02024A60 + ldr r0, _0802E180 @ =gActiveBank ldrb r4, [r0] lsls r4, 9 ldr r0, _0802E184 @ =gUnknown_02023A64 adds r4, r0 - ldr r5, _0802E188 @ =gUnknown_020238CC + ldr r5, _0802E188 @ =gDisplayedStringBattle adds r0, r5, 0 bl StringCopy lsls r0, r6, 1 @@ -4170,9 +4170,9 @@ _0802E176: movs r0, 0x37 b _0802E196 .align 2, 0 -_0802E180: .4byte gUnknown_02024A60 +_0802E180: .4byte gActiveBank _0802E184: .4byte gUnknown_02023A64 -_0802E188: .4byte gUnknown_020238CC +_0802E188: .4byte gDisplayedStringBattle _0802E18C: .4byte gMoveNames _0802E190: .4byte gUnknown_03004210 _0802E194: @@ -4195,7 +4195,7 @@ _0802E1AC: .4byte gUnknown_03004210 sub_802E1B0: @ 802E1B0 push {r4-r6,lr} sub sp, 0x8 - ldr r0, _0802E208 @ =gUnknown_02024A60 + ldr r0, _0802E208 @ =gActiveBank ldrb r4, [r0] lsls r4, 9 ldr r0, _0802E20C @ =gUnknown_02023A64 @@ -4236,7 +4236,7 @@ _0802E1F6: pop {r0} bx r0 .align 2, 0 -_0802E208: .4byte gUnknown_02024A60 +_0802E208: .4byte gActiveBank _0802E20C: .4byte gUnknown_02023A64 _0802E210: .4byte gUnknown_03004348 _0802E214: .4byte gUnknown_03004210 @@ -4248,8 +4248,8 @@ _0802E21C: .4byte gUnknown_08400D49 sub_802E220: @ 802E220 push {r4-r6,lr} sub sp, 0x4 - ldr r4, _0802E2B8 @ =gUnknown_02023A60 - ldr r6, _0802E2BC @ =gUnknown_02024A60 + ldr r4, _0802E2B8 @ =gBattleBufferA + ldr r6, _0802E2BC @ =gActiveBank ldrb r0, [r6] lsls r1, r0, 9 adds r0, r4, 0x2 @@ -4259,7 +4259,7 @@ sub_802E220: @ 802E220 beq _0802E2B0 adds r4, 0x4 adds r4, r1, r4 - ldr r2, _0802E2C0 @ =gUnknown_020238CC + ldr r2, _0802E2C0 @ =gDisplayedStringBattle ldr r1, _0802E2C4 @ =gUnknown_08400D49 adds r0, r2, 0 bl StringCopy @@ -4277,7 +4277,7 @@ sub_802E220: @ 802E220 movs r0, 0x6 strb r0, [r2, 0x2] adds r2, 0x3 - ldr r5, _0802E2C8 @ =gUnknown_02024E64 + ldr r5, _0802E2C8 @ =gMoveSelectionCursor ldrb r1, [r6] adds r1, r5 adds r0, r4, 0 @@ -4304,7 +4304,7 @@ sub_802E220: @ 802E220 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r4, _0802E2CC @ =gUnknown_03004210 - ldr r1, _0802E2C0 @ =gUnknown_020238CC + ldr r1, _0802E2C0 @ =gDisplayedStringBattle ldr r2, _0802E2D0 @ =0x000002a2 movs r0, 0x37 str r0, [sp] @@ -4319,11 +4319,11 @@ _0802E2B0: pop {r0} bx r0 .align 2, 0 -_0802E2B8: .4byte gUnknown_02023A60 -_0802E2BC: .4byte gUnknown_02024A60 -_0802E2C0: .4byte gUnknown_020238CC +_0802E2B8: .4byte gBattleBufferA +_0802E2BC: .4byte gActiveBank +_0802E2C0: .4byte gDisplayedStringBattle _0802E2C4: .4byte gUnknown_08400D49 -_0802E2C8: .4byte gUnknown_02024E64 +_0802E2C8: .4byte gMoveSelectionCursor _0802E2CC: .4byte gUnknown_03004210 _0802E2D0: .4byte 0x000002a2 thumb_func_end sub_802E220 @@ -4332,8 +4332,8 @@ _0802E2D0: .4byte 0x000002a2 sub_802E2D4: @ 802E2D4 push {r4,r5,lr} sub sp, 0x8 - ldr r4, _0802E314 @ =gUnknown_02023A60 - ldr r5, _0802E318 @ =gUnknown_02024A60 + ldr r4, _0802E314 @ =gBattleBufferA + ldr r5, _0802E318 @ =gActiveBank ldrb r0, [r5] lsls r1, r0, 9 adds r0, r4, 0x2 @@ -4361,21 +4361,21 @@ sub_802E2D4: @ 802E2D4 bl InitWindow b _0802E388 .align 2, 0 -_0802E314: .4byte gUnknown_02023A60 -_0802E318: .4byte gUnknown_02024A60 +_0802E314: .4byte gBattleBufferA +_0802E318: .4byte gActiveBank _0802E31C: .4byte gUnknown_03004210 _0802E320: .4byte 0x00001016 _0802E324: .4byte gUnknown_08400D52 _0802E328: adds r4, 0x4 adds r4, r1, r4 - ldr r3, _0802E398 @ =gUnknown_020238CC + ldr r3, _0802E398 @ =gDisplayedStringBattle ldr r1, _0802E39C @ =gUnknown_08400D49 adds r0, r3, 0 bl StringCopy adds r3, r0, 0 ldr r2, _0802E3A0 @ =gBattleMoves - ldr r1, _0802E3A4 @ =gUnknown_02024E64 + ldr r1, _0802E3A4 @ =gMoveSelectionCursor ldrb r0, [r5] adds r0, r1 ldrb r0, [r0] @@ -4403,7 +4403,7 @@ _0802E328: movs r2, 0x17 movs r3, 0x39 bl FillWindowRect - ldr r1, _0802E398 @ =gUnknown_020238CC + ldr r1, _0802E398 @ =gDisplayedStringBattle movs r2, 0xB0 lsls r2, 2 movs r0, 0x39 @@ -4419,10 +4419,10 @@ _0802E388: pop {r0} bx r0 .align 2, 0 -_0802E398: .4byte gUnknown_020238CC +_0802E398: .4byte gDisplayedStringBattle _0802E39C: .4byte gUnknown_08400D49 _0802E3A0: .4byte gBattleMoves -_0802E3A4: .4byte gUnknown_02024E64 +_0802E3A4: .4byte gMoveSelectionCursor _0802E3A8: .4byte gTypeNames _0802E3AC: .4byte gUnknown_03004210 _0802E3B0: .4byte 0x00001016 @@ -4509,7 +4509,7 @@ _0802E430: .4byte ReshowBattleScreenAfterMenu thumb_func_start sub_802E434 sub_802E434: @ 802E434 push {lr} - ldr r0, _0802E458 @ =gUnknown_02024A60 + ldr r0, _0802E458 @ =gActiveBank ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -4521,19 +4521,19 @@ sub_802E434: @ 802E434 ands r0, r1 cmp r0, 0 bne _0802E452 - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted _0802E452: pop {r0} bx r0 .align 2, 0 -_0802E458: .4byte gUnknown_02024A60 +_0802E458: .4byte gActiveBank _0802E45C: .4byte 0x02017810 thumb_func_end sub_802E434 thumb_func_start sub_802E460 sub_802E460: @ 802E460 push {lr} - ldr r0, _0802E484 @ =gUnknown_02024A60 + ldr r0, _0802E484 @ =gActiveBank ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -4545,12 +4545,12 @@ sub_802E460: @ 802E460 ands r0, r1 cmp r0, 0 bne _0802E47E - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted _0802E47E: pop {r0} bx r0 .align 2, 0 -_0802E484: .4byte gUnknown_02024A60 +_0802E484: .4byte gActiveBank _0802E488: .4byte 0x02017810 thumb_func_end sub_802E460 diff --git a/asm/battle_6.s b/asm/battle_6.s index f277fb7f2..90c100c73 100644 --- a/asm/battle_6.s +++ b/asm/battle_6.s @@ -6,13 +6,13 @@ .text - thumb_func_start dp01t_00_1_getattr -dp01t_00_1_getattr: @ 802E4D0 + thumb_func_start PlayerHandleGetAttributes +PlayerHandleGetAttributes: @ 802E4D0 push {r4-r6,lr} sub sp, 0x100 movs r6, 0 - ldr r1, _0802E4FC @ =gUnknown_02023A60 - ldr r0, _0802E500 @ =gUnknown_02024A60 + ldr r1, _0802E4FC @ =gBattleBufferA + ldr r0, _0802E500 @ =gActiveBank ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x2 @@ -20,7 +20,7 @@ dp01t_00_1_getattr: @ 802E4D0 ldrb r0, [r1] cmp r0, 0 bne _0802E508 - ldr r0, _0802E504 @ =gUnknown_02024A6A + ldr r0, _0802E504 @ =gBattlePartyID lsls r1, r2, 1 adds r1, r0 ldrb r0, [r1] @@ -29,9 +29,9 @@ dp01t_00_1_getattr: @ 802E4D0 adds r6, r0, 0 b _0802E52A .align 2, 0 -_0802E4FC: .4byte gUnknown_02023A60 -_0802E500: .4byte gUnknown_02024A60 -_0802E504: .4byte gUnknown_02024A6A +_0802E4FC: .4byte gBattleBufferA +_0802E500: .4byte gActiveBank +_0802E504: .4byte gBattlePartyID _0802E508: ldrb r4, [r1] movs r5, 0 @@ -57,12 +57,12 @@ _0802E52A: movs r0, 0x1 mov r2, sp bl dp01_build_cmdbuf_x1D_1D_numargs_varargs - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted add sp, 0x100 pop {r4-r6} pop {r0} bx r0 - thumb_func_end dp01t_00_1_getattr + thumb_func_end PlayerHandleGetAttributes thumb_func_start dp01_getattr_by_ch1_for_player_pokemon_ dp01_getattr_by_ch1_for_player_pokemon_: @ 802E544 @@ -76,8 +76,8 @@ dp01_getattr_by_ch1_for_player_pokemon_: @ 802E544 lsls r0, 24 lsrs r5, r0, 24 movs r6, 0 - ldr r2, _0802E578 @ =gUnknown_02023A60 - ldr r3, _0802E57C @ =gUnknown_02024A60 + ldr r2, _0802E578 @ =gBattleBufferA + ldr r3, _0802E57C @ =gActiveBank ldrb r0, [r3] lsls r0, 9 adds r1, r2, 0x1 @@ -93,8 +93,8 @@ _0802E56E: ldr r0, [r0] mov pc, r0 .align 2, 0 -_0802E578: .4byte gUnknown_02023A60 -_0802E57C: .4byte gUnknown_02024A60 +_0802E578: .4byte gBattleBufferA +_0802E57C: .4byte gActiveBank _0802E580: .4byte _0802E584 .align 2, 0 _0802E584: @@ -1002,8 +1002,8 @@ _0802ECEC: .4byte gPlayerParty sub_802ECF0: @ 802ECF0 push {r4-r7,lr} sub sp, 0x58 - ldr r2, _0802ED68 @ =gUnknown_02024A6A - ldr r5, _0802ED6C @ =gUnknown_02024A60 + ldr r2, _0802ED68 @ =gBattlePartyID + ldr r5, _0802ED6C @ =gActiveBank ldrb r1, [r5] lsls r0, r1, 1 adds r0, r2 @@ -1011,7 +1011,7 @@ sub_802ECF0: @ 802ECF0 movs r0, 0x64 adds r4, r2, 0 muls r4, r0 - ldr r3, _0802ED70 @ =gUnknown_02023A60 + ldr r3, _0802ED70 @ =gBattleBufferA lsls r1, 9 adds r0, r3, 0x1 adds r0, r1, r0 @@ -1054,23 +1054,23 @@ _0802ED46: movs r0, 0x1 adds r2, r4, 0 bl dp01_build_cmdbuf_x1D_1D_numargs_varargs - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted add sp, 0x58 pop {r4-r7} pop {r0} bx r0 .align 2, 0 -_0802ED68: .4byte gUnknown_02024A6A -_0802ED6C: .4byte gUnknown_02024A60 -_0802ED70: .4byte gUnknown_02023A60 +_0802ED68: .4byte gBattlePartyID +_0802ED6C: .4byte gActiveBank +_0802ED70: .4byte gBattleBufferA _0802ED74: .4byte gPlayerParty thumb_func_end sub_802ECF0 - thumb_func_start dp01t_02_1_setattr -dp01t_02_1_setattr: @ 802ED78 + thumb_func_start PlayerHandleSetAttributes +PlayerHandleSetAttributes: @ 802ED78 push {r4,r5,lr} - ldr r1, _0802ED9C @ =gUnknown_02023A60 - ldr r0, _0802EDA0 @ =gUnknown_02024A60 + ldr r1, _0802ED9C @ =gBattleBufferA + ldr r0, _0802EDA0 @ =gActiveBank ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x2 @@ -1078,16 +1078,16 @@ dp01t_02_1_setattr: @ 802ED78 ldrb r0, [r1] cmp r0, 0 bne _0802EDA8 - ldr r0, _0802EDA4 @ =gUnknown_02024A6A + ldr r0, _0802EDA4 @ =gBattlePartyID lsls r1, r2, 1 adds r1, r0 ldrb r0, [r1] bl dp01_setattr_by_ch1_for_player_pokemon b _0802EDC6 .align 2, 0 -_0802ED9C: .4byte gUnknown_02023A60 -_0802EDA0: .4byte gUnknown_02024A60 -_0802EDA4: .4byte gUnknown_02024A6A +_0802ED9C: .4byte gBattleBufferA +_0802EDA0: .4byte gActiveBank +_0802EDA4: .4byte gBattlePartyID _0802EDA8: ldrb r4, [r1] movs r5, 0 @@ -1106,11 +1106,11 @@ _0802EDBA: cmp r5, 0x5 bls _0802EDAC _0802EDC6: - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted pop {r4,r5} pop {r0} bx r0 - thumb_func_end dp01t_02_1_setattr + thumb_func_end PlayerHandleSetAttributes thumb_func_start dp01_setattr_by_ch1_for_player_pokemon dp01_setattr_by_ch1_for_player_pokemon: @ 802EDD0 @@ -1122,7 +1122,7 @@ dp01_setattr_by_ch1_for_player_pokemon: @ 802EDD0 sub sp, 0x34 lsls r0, 24 lsrs r5, r0, 24 - ldr r0, _0802EE08 @ =gUnknown_02024A60 + ldr r0, _0802EE08 @ =gActiveBank ldrb r0, [r0] lsls r0, 9 ldr r2, _0802EE0C @ =gUnknown_02023A63 @@ -1142,7 +1142,7 @@ _0802EDFC: ldr r0, [r0] mov pc, r0 .align 2, 0 -_0802EE08: .4byte gUnknown_02024A60 +_0802EE08: .4byte gActiveBank _0802EE0C: .4byte gUnknown_02023A63 _0802EE10: .4byte _0802EE14 .align 2, 0 @@ -1394,7 +1394,7 @@ _0802F09C: muls r0, r5 ldr r1, _0802F0B4 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F0B8 @ =gUnknown_02024A60 + ldr r1, _0802F0B8 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -1403,13 +1403,13 @@ _0802F09C: b _0802F796 .align 2, 0 _0802F0B4: .4byte gPlayerParty -_0802F0B8: .4byte gUnknown_02024A60 +_0802F0B8: .4byte gActiveBank _0802F0BC: movs r0, 0x64 muls r0, r5 ldr r1, _0802F0D4 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F0D8 @ =gUnknown_02024A60 + ldr r1, _0802F0D8 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -1418,7 +1418,7 @@ _0802F0BC: b _0802F796 .align 2, 0 _0802F0D4: .4byte gPlayerParty -_0802F0D8: .4byte gUnknown_02024A60 +_0802F0D8: .4byte gActiveBank _0802F0DC: movs r0, 0 mov r8, r0 @@ -1466,8 +1466,8 @@ _0802F134: muls r0, r5 ldr r1, _0802F150 @ =gPlayerParty adds r0, r1 - ldr r3, _0802F154 @ =gUnknown_02023A60 - ldr r1, _0802F158 @ =gUnknown_02024A60 + ldr r3, _0802F154 @ =gBattleBufferA + ldr r1, _0802F158 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r1, r3, 0x1 @@ -1477,15 +1477,15 @@ _0802F134: b _0802F1D8 .align 2, 0 _0802F150: .4byte gPlayerParty -_0802F154: .4byte gUnknown_02023A60 -_0802F158: .4byte gUnknown_02024A60 +_0802F154: .4byte gBattleBufferA +_0802F158: .4byte gActiveBank _0802F15C: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _0802F1B8 @ =gPlayerParty adds r4, r0 - ldr r5, _0802F1BC @ =gUnknown_02024A60 + ldr r5, _0802F1BC @ =gActiveBank ldrb r2, [r5] lsls r2, 9 adds r2, r7 @@ -1523,14 +1523,14 @@ _0802F15C: b _0802F796 .align 2, 0 _0802F1B8: .4byte gPlayerParty -_0802F1BC: .4byte gUnknown_02024A60 +_0802F1BC: .4byte gActiveBank _0802F1C0: movs r0, 0x64 muls r0, r5 ldr r1, _0802F1E4 @ =gPlayerParty adds r0, r1 - ldr r3, _0802F1E8 @ =gUnknown_02023A60 - ldr r1, _0802F1EC @ =gUnknown_02024A60 + ldr r3, _0802F1E8 @ =gBattleBufferA + ldr r1, _0802F1EC @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r1, r3, 0x1 @@ -1544,14 +1544,14 @@ _0802F1D8: b _0802F796 .align 2, 0 _0802F1E4: .4byte gPlayerParty -_0802F1E8: .4byte gUnknown_02023A60 -_0802F1EC: .4byte gUnknown_02024A60 +_0802F1E8: .4byte gBattleBufferA +_0802F1EC: .4byte gActiveBank _0802F1F0: movs r0, 0x64 muls r0, r5 ldr r1, _0802F208 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F20C @ =gUnknown_02024A60 + ldr r1, _0802F20C @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -1560,13 +1560,13 @@ _0802F1F0: b _0802F796 .align 2, 0 _0802F208: .4byte gPlayerParty -_0802F20C: .4byte gUnknown_02024A60 +_0802F20C: .4byte gActiveBank _0802F210: movs r0, 0x64 muls r0, r5 ldr r1, _0802F228 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F22C @ =gUnknown_02024A60 + ldr r1, _0802F22C @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -1575,13 +1575,13 @@ _0802F210: b _0802F796 .align 2, 0 _0802F228: .4byte gPlayerParty -_0802F22C: .4byte gUnknown_02024A60 +_0802F22C: .4byte gActiveBank _0802F230: movs r0, 0x64 muls r0, r5 ldr r1, _0802F248 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F24C @ =gUnknown_02024A60 + ldr r1, _0802F24C @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -1590,13 +1590,13 @@ _0802F230: b _0802F796 .align 2, 0 _0802F248: .4byte gPlayerParty -_0802F24C: .4byte gUnknown_02024A60 +_0802F24C: .4byte gActiveBank _0802F250: movs r0, 0x64 muls r0, r5 ldr r1, _0802F268 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F26C @ =gUnknown_02024A60 + ldr r1, _0802F26C @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -1605,13 +1605,13 @@ _0802F250: b _0802F796 .align 2, 0 _0802F268: .4byte gPlayerParty -_0802F26C: .4byte gUnknown_02024A60 +_0802F26C: .4byte gActiveBank _0802F270: movs r0, 0x64 muls r0, r5 ldr r1, _0802F288 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F28C @ =gUnknown_02024A60 + ldr r1, _0802F28C @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -1620,13 +1620,13 @@ _0802F270: b _0802F796 .align 2, 0 _0802F288: .4byte gPlayerParty -_0802F28C: .4byte gUnknown_02024A60 +_0802F28C: .4byte gActiveBank _0802F290: movs r0, 0x64 muls r0, r5 ldr r1, _0802F2A8 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F2AC @ =gUnknown_02024A60 + ldr r1, _0802F2AC @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -1635,13 +1635,13 @@ _0802F290: b _0802F796 .align 2, 0 _0802F2A8: .4byte gPlayerParty -_0802F2AC: .4byte gUnknown_02024A60 +_0802F2AC: .4byte gActiveBank _0802F2B0: movs r0, 0x64 muls r0, r5 ldr r1, _0802F2C8 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F2CC @ =gUnknown_02024A60 + ldr r1, _0802F2CC @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -1650,13 +1650,13 @@ _0802F2B0: b _0802F796 .align 2, 0 _0802F2C8: .4byte gPlayerParty -_0802F2CC: .4byte gUnknown_02024A60 +_0802F2CC: .4byte gActiveBank _0802F2D0: movs r0, 0x64 muls r0, r5 ldr r1, _0802F2E8 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F2EC @ =gUnknown_02024A60 + ldr r1, _0802F2EC @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -1665,13 +1665,13 @@ _0802F2D0: b _0802F796 .align 2, 0 _0802F2E8: .4byte gPlayerParty -_0802F2EC: .4byte gUnknown_02024A60 +_0802F2EC: .4byte gActiveBank _0802F2F0: movs r0, 0x64 muls r0, r5 ldr r1, _0802F308 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F30C @ =gUnknown_02024A60 + ldr r1, _0802F30C @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -1680,13 +1680,13 @@ _0802F2F0: b _0802F796 .align 2, 0 _0802F308: .4byte gPlayerParty -_0802F30C: .4byte gUnknown_02024A60 +_0802F30C: .4byte gActiveBank _0802F310: movs r0, 0x64 muls r0, r5 ldr r1, _0802F328 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F32C @ =gUnknown_02024A60 + ldr r1, _0802F32C @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -1695,13 +1695,13 @@ _0802F310: b _0802F796 .align 2, 0 _0802F328: .4byte gPlayerParty -_0802F32C: .4byte gUnknown_02024A60 +_0802F32C: .4byte gActiveBank _0802F330: movs r0, 0x64 muls r0, r5 ldr r1, _0802F348 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F34C @ =gUnknown_02024A60 + ldr r1, _0802F34C @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -1710,13 +1710,13 @@ _0802F330: b _0802F796 .align 2, 0 _0802F348: .4byte gPlayerParty -_0802F34C: .4byte gUnknown_02024A60 +_0802F34C: .4byte gActiveBank _0802F350: movs r0, 0x64 muls r0, r5 ldr r1, _0802F368 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F36C @ =gUnknown_02024A60 + ldr r1, _0802F36C @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -1725,13 +1725,13 @@ _0802F350: b _0802F796 .align 2, 0 _0802F368: .4byte gPlayerParty -_0802F36C: .4byte gUnknown_02024A60 +_0802F36C: .4byte gActiveBank _0802F370: movs r0, 0x64 muls r0, r5 ldr r1, _0802F388 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F38C @ =gUnknown_02024A60 + ldr r1, _0802F38C @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -1740,13 +1740,13 @@ _0802F370: b _0802F796 .align 2, 0 _0802F388: .4byte gPlayerParty -_0802F38C: .4byte gUnknown_02024A60 +_0802F38C: .4byte gActiveBank _0802F390: movs r0, 0x64 muls r0, r5 ldr r1, _0802F3A8 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F3AC @ =gUnknown_02024A60 + ldr r1, _0802F3AC @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -1755,14 +1755,14 @@ _0802F390: b _0802F796 .align 2, 0 _0802F3A8: .4byte gPlayerParty -_0802F3AC: .4byte gUnknown_02024A60 +_0802F3AC: .4byte gActiveBank _0802F3B0: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _0802F418 @ =gPlayerParty adds r4, r0 - ldr r5, _0802F41C @ =gUnknown_02024A60 + ldr r5, _0802F41C @ =gActiveBank ldrb r2, [r5] lsls r2, 9 adds r2, r7 @@ -1805,13 +1805,13 @@ _0802F3B0: b _0802F4D0 .align 2, 0 _0802F418: .4byte gPlayerParty -_0802F41C: .4byte gUnknown_02024A60 +_0802F41C: .4byte gActiveBank _0802F420: movs r0, 0x64 muls r0, r5 ldr r1, _0802F438 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F43C @ =gUnknown_02024A60 + ldr r1, _0802F43C @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -1820,13 +1820,13 @@ _0802F420: b _0802F796 .align 2, 0 _0802F438: .4byte gPlayerParty -_0802F43C: .4byte gUnknown_02024A60 +_0802F43C: .4byte gActiveBank _0802F440: movs r0, 0x64 muls r0, r5 ldr r1, _0802F458 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F45C @ =gUnknown_02024A60 + ldr r1, _0802F45C @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -1835,13 +1835,13 @@ _0802F440: b _0802F796 .align 2, 0 _0802F458: .4byte gPlayerParty -_0802F45C: .4byte gUnknown_02024A60 +_0802F45C: .4byte gActiveBank _0802F460: movs r0, 0x64 muls r0, r5 ldr r1, _0802F478 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F47C @ =gUnknown_02024A60 + ldr r1, _0802F47C @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -1850,13 +1850,13 @@ _0802F460: b _0802F796 .align 2, 0 _0802F478: .4byte gPlayerParty -_0802F47C: .4byte gUnknown_02024A60 +_0802F47C: .4byte gActiveBank _0802F480: movs r0, 0x64 muls r0, r5 ldr r1, _0802F498 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F49C @ =gUnknown_02024A60 + ldr r1, _0802F49C @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -1865,13 +1865,13 @@ _0802F480: b _0802F796 .align 2, 0 _0802F498: .4byte gPlayerParty -_0802F49C: .4byte gUnknown_02024A60 +_0802F49C: .4byte gActiveBank _0802F4A0: movs r0, 0x64 muls r0, r5 ldr r1, _0802F4B8 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F4BC @ =gUnknown_02024A60 + ldr r1, _0802F4BC @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -1880,13 +1880,13 @@ _0802F4A0: b _0802F796 .align 2, 0 _0802F4B8: .4byte gPlayerParty -_0802F4BC: .4byte gUnknown_02024A60 +_0802F4BC: .4byte gActiveBank _0802F4C0: movs r0, 0x64 muls r0, r5 ldr r1, _0802F4D8 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F4DC @ =gUnknown_02024A60 + ldr r1, _0802F4DC @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -1896,13 +1896,13 @@ _0802F4D0: b _0802F796 .align 2, 0 _0802F4D8: .4byte gPlayerParty -_0802F4DC: .4byte gUnknown_02024A60 +_0802F4DC: .4byte gActiveBank _0802F4E0: movs r0, 0x64 muls r0, r5 ldr r1, _0802F4F8 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F4FC @ =gUnknown_02024A60 + ldr r1, _0802F4FC @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -1911,13 +1911,13 @@ _0802F4E0: b _0802F796 .align 2, 0 _0802F4F8: .4byte gPlayerParty -_0802F4FC: .4byte gUnknown_02024A60 +_0802F4FC: .4byte gActiveBank _0802F500: movs r0, 0x64 muls r0, r5 ldr r1, _0802F518 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F51C @ =gUnknown_02024A60 + ldr r1, _0802F51C @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -1926,13 +1926,13 @@ _0802F500: b _0802F796 .align 2, 0 _0802F518: .4byte gPlayerParty -_0802F51C: .4byte gUnknown_02024A60 +_0802F51C: .4byte gActiveBank _0802F520: movs r0, 0x64 muls r0, r5 ldr r1, _0802F538 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F53C @ =gUnknown_02024A60 + ldr r1, _0802F53C @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -1941,13 +1941,13 @@ _0802F520: b _0802F796 .align 2, 0 _0802F538: .4byte gPlayerParty -_0802F53C: .4byte gUnknown_02024A60 +_0802F53C: .4byte gActiveBank _0802F540: movs r0, 0x64 muls r0, r5 ldr r1, _0802F558 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F55C @ =gUnknown_02024A60 + ldr r1, _0802F55C @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -1956,13 +1956,13 @@ _0802F540: b _0802F796 .align 2, 0 _0802F558: .4byte gPlayerParty -_0802F55C: .4byte gUnknown_02024A60 +_0802F55C: .4byte gActiveBank _0802F560: movs r0, 0x64 muls r0, r5 ldr r1, _0802F578 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F57C @ =gUnknown_02024A60 + ldr r1, _0802F57C @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -1971,13 +1971,13 @@ _0802F560: b _0802F796 .align 2, 0 _0802F578: .4byte gPlayerParty -_0802F57C: .4byte gUnknown_02024A60 +_0802F57C: .4byte gActiveBank _0802F580: movs r0, 0x64 muls r0, r5 ldr r1, _0802F598 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F59C @ =gUnknown_02024A60 + ldr r1, _0802F59C @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -1986,13 +1986,13 @@ _0802F580: b _0802F796 .align 2, 0 _0802F598: .4byte gPlayerParty -_0802F59C: .4byte gUnknown_02024A60 +_0802F59C: .4byte gActiveBank _0802F5A0: movs r0, 0x64 muls r0, r5 ldr r1, _0802F5B8 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F5BC @ =gUnknown_02024A60 + ldr r1, _0802F5BC @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2001,13 +2001,13 @@ _0802F5A0: b _0802F796 .align 2, 0 _0802F5B8: .4byte gPlayerParty -_0802F5BC: .4byte gUnknown_02024A60 +_0802F5BC: .4byte gActiveBank _0802F5C0: movs r0, 0x64 muls r0, r5 ldr r1, _0802F5D8 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F5DC @ =gUnknown_02024A60 + ldr r1, _0802F5DC @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2016,13 +2016,13 @@ _0802F5C0: b _0802F796 .align 2, 0 _0802F5D8: .4byte gPlayerParty -_0802F5DC: .4byte gUnknown_02024A60 +_0802F5DC: .4byte gActiveBank _0802F5E0: movs r0, 0x64 muls r0, r5 ldr r1, _0802F5F8 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F5FC @ =gUnknown_02024A60 + ldr r1, _0802F5FC @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2031,13 +2031,13 @@ _0802F5E0: b _0802F796 .align 2, 0 _0802F5F8: .4byte gPlayerParty -_0802F5FC: .4byte gUnknown_02024A60 +_0802F5FC: .4byte gActiveBank _0802F600: movs r0, 0x64 muls r0, r5 ldr r1, _0802F618 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F61C @ =gUnknown_02024A60 + ldr r1, _0802F61C @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2046,13 +2046,13 @@ _0802F600: b _0802F796 .align 2, 0 _0802F618: .4byte gPlayerParty -_0802F61C: .4byte gUnknown_02024A60 +_0802F61C: .4byte gActiveBank _0802F620: movs r0, 0x64 muls r0, r5 ldr r1, _0802F638 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F63C @ =gUnknown_02024A60 + ldr r1, _0802F63C @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2061,13 +2061,13 @@ _0802F620: b _0802F796 .align 2, 0 _0802F638: .4byte gPlayerParty -_0802F63C: .4byte gUnknown_02024A60 +_0802F63C: .4byte gActiveBank _0802F640: movs r0, 0x64 muls r0, r5 ldr r1, _0802F658 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F65C @ =gUnknown_02024A60 + ldr r1, _0802F65C @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2076,13 +2076,13 @@ _0802F640: b _0802F796 .align 2, 0 _0802F658: .4byte gPlayerParty -_0802F65C: .4byte gUnknown_02024A60 +_0802F65C: .4byte gActiveBank _0802F660: movs r0, 0x64 muls r0, r5 ldr r1, _0802F678 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F67C @ =gUnknown_02024A60 + ldr r1, _0802F67C @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2091,13 +2091,13 @@ _0802F660: b _0802F796 .align 2, 0 _0802F678: .4byte gPlayerParty -_0802F67C: .4byte gUnknown_02024A60 +_0802F67C: .4byte gActiveBank _0802F680: movs r0, 0x64 muls r0, r5 ldr r1, _0802F698 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F69C @ =gUnknown_02024A60 + ldr r1, _0802F69C @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2106,13 +2106,13 @@ _0802F680: b _0802F796 .align 2, 0 _0802F698: .4byte gPlayerParty -_0802F69C: .4byte gUnknown_02024A60 +_0802F69C: .4byte gActiveBank _0802F6A0: movs r0, 0x64 muls r0, r5 ldr r1, _0802F6B8 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F6BC @ =gUnknown_02024A60 + ldr r1, _0802F6BC @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2121,13 +2121,13 @@ _0802F6A0: b _0802F796 .align 2, 0 _0802F6B8: .4byte gPlayerParty -_0802F6BC: .4byte gUnknown_02024A60 +_0802F6BC: .4byte gActiveBank _0802F6C0: movs r0, 0x64 muls r0, r5 ldr r1, _0802F6D8 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F6DC @ =gUnknown_02024A60 + ldr r1, _0802F6DC @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2136,13 +2136,13 @@ _0802F6C0: b _0802F796 .align 2, 0 _0802F6D8: .4byte gPlayerParty -_0802F6DC: .4byte gUnknown_02024A60 +_0802F6DC: .4byte gActiveBank _0802F6E0: movs r0, 0x64 muls r0, r5 ldr r1, _0802F6F8 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F6FC @ =gUnknown_02024A60 + ldr r1, _0802F6FC @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2151,13 +2151,13 @@ _0802F6E0: b _0802F796 .align 2, 0 _0802F6F8: .4byte gPlayerParty -_0802F6FC: .4byte gUnknown_02024A60 +_0802F6FC: .4byte gActiveBank _0802F700: movs r0, 0x64 muls r0, r5 ldr r1, _0802F718 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F71C @ =gUnknown_02024A60 + ldr r1, _0802F71C @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2166,13 +2166,13 @@ _0802F700: b _0802F796 .align 2, 0 _0802F718: .4byte gPlayerParty -_0802F71C: .4byte gUnknown_02024A60 +_0802F71C: .4byte gActiveBank _0802F720: movs r0, 0x64 muls r0, r5 ldr r1, _0802F738 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F73C @ =gUnknown_02024A60 + ldr r1, _0802F73C @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2181,13 +2181,13 @@ _0802F720: b _0802F796 .align 2, 0 _0802F738: .4byte gPlayerParty -_0802F73C: .4byte gUnknown_02024A60 +_0802F73C: .4byte gActiveBank _0802F740: movs r0, 0x64 muls r0, r5 ldr r1, _0802F758 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F75C @ =gUnknown_02024A60 + ldr r1, _0802F75C @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2196,13 +2196,13 @@ _0802F740: b _0802F796 .align 2, 0 _0802F758: .4byte gPlayerParty -_0802F75C: .4byte gUnknown_02024A60 +_0802F75C: .4byte gActiveBank _0802F760: movs r0, 0x64 muls r0, r5 ldr r1, _0802F778 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F77C @ =gUnknown_02024A60 + ldr r1, _0802F77C @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2211,21 +2211,21 @@ _0802F760: b _0802F796 .align 2, 0 _0802F778: .4byte gPlayerParty -_0802F77C: .4byte gUnknown_02024A60 +_0802F77C: .4byte gActiveBank _0802F780: movs r0, 0x64 muls r0, r5 ldr r1, _0802F7C0 @ =gPlayerParty adds r0, r1 - ldr r1, _0802F7C4 @ =gUnknown_02024A60 + ldr r1, _0802F7C4 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x36 bl SetMonData _0802F796: - ldr r2, _0802F7C8 @ =gUnknown_02024A6A - ldr r0, _0802F7C4 @ =gUnknown_02024A60 + ldr r2, _0802F7C8 @ =gBattlePartyID + ldr r0, _0802F7C4 @ =gActiveBank ldrb r1, [r0] lsls r0, r1, 1 adds r0, r2 @@ -2245,15 +2245,15 @@ _0802F796: bx r0 .align 2, 0 _0802F7C0: .4byte gPlayerParty -_0802F7C4: .4byte gUnknown_02024A60 -_0802F7C8: .4byte gUnknown_02024A6A +_0802F7C4: .4byte gActiveBank +_0802F7C8: .4byte gBattlePartyID thumb_func_end dp01_setattr_by_ch1_for_player_pokemon thumb_func_start sub_802F7CC sub_802F7CC: @ 802F7CC push {r4-r7,lr} - ldr r1, _0802F830 @ =gUnknown_02024A6A - ldr r7, _0802F834 @ =gUnknown_02024A60 + ldr r1, _0802F830 @ =gBattlePartyID + ldr r7, _0802F834 @ =gActiveBank ldrb r2, [r7] lsls r0, r2, 1 adds r0, r1 @@ -2261,7 +2261,7 @@ sub_802F7CC: @ 802F7CC movs r0, 0x64 adds r3, r1, 0 muls r3, r0 - ldr r4, _0802F838 @ =gUnknown_02023A60 + ldr r4, _0802F838 @ =gBattleBufferA lsls r2, 9 adds r0, r4, 0x1 adds r0, r2, r0 @@ -2297,22 +2297,22 @@ _0802F802: cmp r3, r0 bcc _0802F802 _0802F824: - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted pop {r4-r7} pop {r0} bx r0 .align 2, 0 -_0802F830: .4byte gUnknown_02024A6A -_0802F834: .4byte gUnknown_02024A60 -_0802F838: .4byte gUnknown_02023A60 +_0802F830: .4byte gBattlePartyID +_0802F834: .4byte gActiveBank +_0802F838: .4byte gBattleBufferA _0802F83C: .4byte gPlayerParty thumb_func_end sub_802F7CC - thumb_func_start sub_802F840 -sub_802F840: @ 802F840 + thumb_func_start PlayerHandleLoadPokeSprite +PlayerHandleLoadPokeSprite: @ 802F840 push {r4,lr} - ldr r2, _0802F88C @ =gUnknown_02024A6A - ldr r4, _0802F890 @ =gUnknown_02024A60 + ldr r2, _0802F88C @ =gBattlePartyID + ldr r4, _0802F890 @ =gActiveBank ldrb r1, [r4] lsls r0, r1, 1 adds r0, r2 @@ -2323,7 +2323,7 @@ sub_802F840: @ 802F840 adds r0, r2 bl sub_80318FC ldr r2, _0802F898 @ =gSprites - ldr r0, _0802F89C @ =gUnknown_02024BE0 + ldr r0, _0802F89C @ =gObjectBankIDs ldrb r3, [r4] adds r0, r3, r0 ldrb r0, [r0] @@ -2337,7 +2337,7 @@ sub_802F840: @ 802F840 ands r0, r2 orrs r0, r3 strb r0, [r1, 0x5] - ldr r1, _0802F8A0 @ =gUnknown_03004330 + ldr r1, _0802F8A0 @ =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 adds r0, r1 @@ -2347,27 +2347,27 @@ sub_802F840: @ 802F840 pop {r0} bx r0 .align 2, 0 -_0802F88C: .4byte gUnknown_02024A6A -_0802F890: .4byte gUnknown_02024A60 +_0802F88C: .4byte gBattlePartyID +_0802F890: .4byte gActiveBank _0802F894: .4byte gPlayerParty _0802F898: .4byte gSprites -_0802F89C: .4byte gUnknown_02024BE0 -_0802F8A0: .4byte gUnknown_03004330 +_0802F89C: .4byte gObjectBankIDs +_0802F8A0: .4byte gBattleBankFunc _0802F8A4: .4byte bx_0802E404 - thumb_func_end sub_802F840 + thumb_func_end PlayerHandleLoadPokeSprite - thumb_func_start sub_802F8A8 -sub_802F8A8: @ 802F8A8 + thumb_func_start PlayerHandleSendOutPoke +PlayerHandleSendOutPoke: @ 802F8A8 push {r4-r6,lr} - ldr r5, _0802F914 @ =gUnknown_02024A60 + ldr r5, _0802F914 @ =gActiveBank ldrb r0, [r5] - ldr r4, _0802F918 @ =gUnknown_02023A60 + ldr r4, _0802F918 @ =gBattleBufferA lsls r1, r0, 9 adds r6, r4, 0x2 adds r1, r6 ldrb r1, [r1] bl sub_8032AA8 - ldr r2, _0802F91C @ =gUnknown_02024A6A + ldr r2, _0802F91C @ =gBattlePartyID ldrb r0, [r5] lsls r1, r0, 1 adds r1, r2 @@ -2386,11 +2386,11 @@ sub_802F8A8: @ 802F8A8 ldr r2, _0802F920 @ =gPlayerParty adds r0, r2 bl sub_80318FC - ldr r1, _0802F924 @ =gUnknown_02024E60 + ldr r1, _0802F924 @ =gActionSelectionCursor ldrb r0, [r5] adds r0, r1 strb r4, [r0] - ldr r1, _0802F928 @ =gUnknown_02024E64 + ldr r1, _0802F928 @ =gMoveSelectionCursor ldrb r0, [r5] adds r0, r1 strb r4, [r0] @@ -2399,7 +2399,7 @@ sub_802F8A8: @ 802F8A8 adds r1, r6 ldrb r1, [r1] bl sub_802F934 - ldr r1, _0802F92C @ =gUnknown_03004330 + ldr r1, _0802F92C @ =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 adds r0, r1 @@ -2409,15 +2409,15 @@ sub_802F8A8: @ 802F8A8 pop {r0} bx r0 .align 2, 0 -_0802F914: .4byte gUnknown_02024A60 -_0802F918: .4byte gUnknown_02023A60 -_0802F91C: .4byte gUnknown_02024A6A +_0802F914: .4byte gActiveBank +_0802F918: .4byte gBattleBufferA +_0802F91C: .4byte gBattlePartyID _0802F920: .4byte gPlayerParty -_0802F924: .4byte gUnknown_02024E60 -_0802F928: .4byte gUnknown_02024E64 -_0802F92C: .4byte gUnknown_03004330 +_0802F924: .4byte gActionSelectionCursor +_0802F928: .4byte gMoveSelectionCursor +_0802F92C: .4byte gBattleBankFunc _0802F930: .4byte sub_802D798 - thumb_func_end sub_802F8A8 + thumb_func_end PlayerHandleSendOutPoke thumb_func_start sub_802F934 sub_802F934: @ 802F934 @@ -2433,10 +2433,10 @@ sub_802F934: @ 802F934 lsrs r1, 24 adds r0, r6, 0 bl sub_8032AA8 - ldr r0, _0802FA78 @ =gUnknown_02024A6A + ldr r0, _0802FA78 @ =gBattlePartyID lsls r2, r6, 1 adds r2, r0 - ldr r0, _0802FA7C @ =gUnknown_02023A60 + ldr r0, _0802FA7C @ =gBattleBufferA lsls r1, r6, 9 adds r0, 0x1 adds r1, r0 @@ -2461,7 +2461,7 @@ sub_802F934: @ 802F934 mov r1, r9 strb r0, [r1] adds r0, r6, 0 - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -2489,7 +2489,7 @@ sub_802F934: @ 802F934 adds r1, r5, 0 adds r2, r4, 0 bl CreateSprite - ldr r4, _0802FA90 @ =gUnknown_02024BE0 + ldr r4, _0802FA90 @ =gObjectBankIDs adds r4, r6, r4 strb r0, [r4] ldr r5, _0802FA94 @ =gSprites @@ -2573,23 +2573,23 @@ sub_802F934: @ 802F934 pop {r0} bx r0 .align 2, 0 -_0802FA78: .4byte gUnknown_02024A6A -_0802FA7C: .4byte gUnknown_02023A60 +_0802FA78: .4byte gBattlePartyID +_0802FA7C: .4byte gBattleBufferA _0802FA80: .4byte gPlayerParty _0802FA84: .4byte sub_80312F0 _0802FA88: .4byte gUnknown_0300434C _0802FA8C: .4byte gUnknown_02024E8C -_0802FA90: .4byte gUnknown_02024BE0 +_0802FA90: .4byte gObjectBankIDs _0802FA94: .4byte gSprites _0802FA98: .4byte gBattleMonForms _0802FA9C: .4byte SpriteCallbackDummy thumb_func_end sub_802F934 - thumb_func_start sub_802FAA0 -sub_802FAA0: @ 802FAA0 + thumb_func_start PlayerHandleReturnPokeToBall +PlayerHandleReturnPokeToBall: @ 802FAA0 push {r4-r6,lr} - ldr r1, _0802FAD0 @ =gUnknown_02023A60 - ldr r6, _0802FAD4 @ =gUnknown_02024A60 + ldr r1, _0802FAD0 @ =gBattleBufferA + ldr r6, _0802FAD4 @ =gActiveBank ldrb r2, [r6] lsls r0, r2, 9 adds r1, 0x1 @@ -2603,7 +2603,7 @@ sub_802FAA0: @ 802FAA0 ldr r1, _0802FAD8 @ =0x02017810 adds r0, r1 strb r3, [r0, 0x4] - ldr r1, _0802FADC @ =gUnknown_03004330 + ldr r1, _0802FADC @ =gBattleBankFunc ldrb r0, [r6] lsls r0, 2 adds r0, r1 @@ -2611,13 +2611,13 @@ sub_802FAA0: @ 802FAA0 str r1, [r0] b _0802FB1A .align 2, 0 -_0802FAD0: .4byte gUnknown_02023A60 -_0802FAD4: .4byte gUnknown_02024A60 +_0802FAD0: .4byte gBattleBufferA +_0802FAD4: .4byte gActiveBank _0802FAD8: .4byte 0x02017810 -_0802FADC: .4byte gUnknown_03004330 +_0802FADC: .4byte gBattleBankFunc _0802FAE0: .4byte sub_802FB2C _0802FAE4: - ldr r5, _0802FB20 @ =gUnknown_02024BE0 + ldr r5, _0802FB20 @ =gObjectBankIDs adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 @@ -2634,26 +2634,26 @@ _0802FAE4: lsls r0, 2 adds r0, r4 bl DestroySprite - ldr r1, _0802FB28 @ =gUnknown_03004340 + ldr r1, _0802FB28 @ =gHealthboxIDs ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] bl sub_8043DB0 - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted _0802FB1A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 -_0802FB20: .4byte gUnknown_02024BE0 +_0802FB20: .4byte gObjectBankIDs _0802FB24: .4byte gSprites -_0802FB28: .4byte gUnknown_03004340 - thumb_func_end sub_802FAA0 +_0802FB28: .4byte gHealthboxIDs + thumb_func_end PlayerHandleReturnPokeToBall thumb_func_start sub_802FB2C sub_802FB2C: @ 802FB2C push {r4,r5,lr} - ldr r5, _0802FB48 @ =gUnknown_02024A60 + ldr r5, _0802FB48 @ =gActiveBank ldrb r2, [r5] lsls r0, r2, 1 adds r0, r2 @@ -2667,7 +2667,7 @@ sub_802FB2C: @ 802FB2C beq _0802FB7C b _0802FBA4 .align 2, 0 -_0802FB48: .4byte gUnknown_02024A60 +_0802FB48: .4byte gActiveBank _0802FB4C: .4byte 0x02017810 _0802FB50: lsls r0, r2, 2 @@ -2706,7 +2706,7 @@ _0802FB7C: adds r1, r2, 0 movs r3, 0x1 bl move_anim_start_t4 - ldr r1, _0802FBAC @ =gUnknown_03004330 + ldr r1, _0802FBAC @ =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 adds r0, r1 @@ -2717,12 +2717,12 @@ _0802FBA4: pop {r0} bx r0 .align 2, 0 -_0802FBAC: .4byte gUnknown_03004330 +_0802FBAC: .4byte gBattleBankFunc _0802FBB0: .4byte sub_802DEAC thumb_func_end sub_802FB2C - thumb_func_start sub_802FBB4 -sub_802FBB4: @ 802FBB4 + thumb_func_start PlayerHandleTrainerThrow +PlayerHandleTrainerThrow: @ 802FBB4 push {r4-r7,lr} mov r7, r8 push {r7} @@ -2732,9 +2732,9 @@ sub_802FBB4: @ 802FBB4 ands r0, r1 cmp r0, 0 beq _0802FBE8 - ldr r0, _0802FBE0 @ =gUnknown_02024A60 + ldr r0, _0802FBE0 @ =gActiveBank ldrb r0, [r0] - bl battle_get_per_side_status + bl GetBankIdentity movs r1, 0x2 ands r1, r0 ldr r7, _0802FBE4 @ =0x0000fff0 @@ -2744,19 +2744,19 @@ sub_802FBB4: @ 802FBB4 b _0802FBEA .align 2, 0 _0802FBDC: .4byte gBattleTypeFlags -_0802FBE0: .4byte gUnknown_02024A60 +_0802FBE0: .4byte gActiveBank _0802FBE4: .4byte 0x0000fff0 _0802FBE8: movs r7, 0 _0802FBEA: ldr r4, _0802FCB8 @ =gSaveBlock2 ldrb r0, [r4, 0x8] - ldr r6, _0802FCBC @ =gUnknown_02024A60 + ldr r6, _0802FCBC @ =gActiveBank ldrb r1, [r6] bl sub_8031AF4 ldrb r5, [r4, 0x8] ldrb r0, [r6] - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -2790,7 +2790,7 @@ _0802FBEA: adds r1, r5, 0 adds r2, r4, 0 bl CreateSprite - ldr r5, _0802FCC8 @ =gUnknown_02024BE0 + ldr r5, _0802FCC8 @ =gObjectBankIDs ldrb r1, [r6] adds r1, r5 strb r0, [r1] @@ -2836,7 +2836,7 @@ _0802FBEA: adds r0, r4 ldr r1, _0802FCD4 @ =sub_80313A0 str r1, [r0] - ldr r1, _0802FCD8 @ =gUnknown_03004330 + ldr r1, _0802FCD8 @ =gBattleBankFunc ldrb r0, [r6] lsls r0, 2 adds r0, r1 @@ -2849,28 +2849,28 @@ _0802FBEA: bx r0 .align 2, 0 _0802FCB8: .4byte gSaveBlock2 -_0802FCBC: .4byte gUnknown_02024A60 +_0802FCBC: .4byte gActiveBank _0802FCC0: .4byte gUnknown_02024E8C _0802FCC4: .4byte gTrainerBackPicCoords -_0802FCC8: .4byte gUnknown_02024BE0 +_0802FCC8: .4byte gObjectBankIDs _0802FCCC: .4byte gSprites _0802FCD0: .4byte 0x0000fffe _0802FCD4: .4byte sub_80313A0 -_0802FCD8: .4byte gUnknown_03004330 +_0802FCD8: .4byte gBattleBankFunc _0802FCDC: .4byte sub_802D204 - thumb_func_end sub_802FBB4 + thumb_func_end PlayerHandleTrainerThrow - thumb_func_start sub_802FCE0 -sub_802FCE0: @ 802FCE0 + thumb_func_start PlayerHandleTrainerSlide +PlayerHandleTrainerSlide: @ 802FCE0 push {r4-r6,lr} ldr r4, _0802FD94 @ =gSaveBlock2 ldrb r0, [r4, 0x8] - ldr r5, _0802FD98 @ =gUnknown_02024A60 + ldr r5, _0802FD98 @ =gActiveBank ldrb r1, [r5] bl sub_8031AF4 ldrb r6, [r4, 0x8] ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -2892,7 +2892,7 @@ sub_802FCE0: @ 802FCE0 movs r1, 0x50 movs r3, 0x1E bl CreateSprite - ldr r6, _0802FDA4 @ =gUnknown_02024BE0 + ldr r6, _0802FDA4 @ =gObjectBankIDs ldrb r1, [r5] adds r1, r6 strb r0, [r1] @@ -2938,7 +2938,7 @@ sub_802FCE0: @ 802FCE0 adds r0, r4 ldr r1, _0802FDB0 @ =sub_80313A0 str r1, [r0] - ldr r1, _0802FDB4 @ =gUnknown_03004330 + ldr r1, _0802FDB4 @ =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 adds r0, r1 @@ -2949,22 +2949,22 @@ sub_802FCE0: @ 802FCE0 bx r0 .align 2, 0 _0802FD94: .4byte gSaveBlock2 -_0802FD98: .4byte gUnknown_02024A60 +_0802FD98: .4byte gActiveBank _0802FD9C: .4byte gUnknown_02024E8C _0802FDA0: .4byte gTrainerBackPicCoords -_0802FDA4: .4byte gUnknown_02024BE0 +_0802FDA4: .4byte gObjectBankIDs _0802FDA8: .4byte gSprites _0802FDAC: .4byte 0x0000ffa0 _0802FDB0: .4byte sub_80313A0 -_0802FDB4: .4byte gUnknown_03004330 +_0802FDB4: .4byte gBattleBankFunc _0802FDB8: .4byte sub_802D23C - thumb_func_end sub_802FCE0 + thumb_func_end PlayerHandleTrainerSlide - thumb_func_start sub_802FDBC -sub_802FDBC: @ 802FDBC + thumb_func_start PlayerHandleTrainerSlideBack +PlayerHandleTrainerSlideBack: @ 802FDBC push {r4-r6,lr} - ldr r5, _0802FE5C @ =gUnknown_02024BE0 - ldr r6, _0802FE60 @ =gUnknown_02024A60 + ldr r5, _0802FE5C @ =gObjectBankIDs + ldr r6, _0802FE60 @ =gActiveBank ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] @@ -3030,7 +3030,7 @@ sub_802FDBC: @ 802FDBC adds r0, r4 movs r1, 0x1 bl StartSpriteAnim - ldr r1, _0802FE74 @ =gUnknown_03004330 + ldr r1, _0802FE74 @ =gBattleBankFunc ldrb r0, [r6] lsls r0, 2 adds r0, r1 @@ -3040,20 +3040,20 @@ sub_802FDBC: @ 802FDBC pop {r0} bx r0 .align 2, 0 -_0802FE5C: .4byte gUnknown_02024BE0 -_0802FE60: .4byte gUnknown_02024A60 +_0802FE5C: .4byte gObjectBankIDs +_0802FE60: .4byte gActiveBank _0802FE64: .4byte gSprites _0802FE68: .4byte 0x0000ffd8 _0802FE6C: .4byte sub_8078B34 _0802FE70: .4byte SpriteCallbackDummy -_0802FE74: .4byte gUnknown_03004330 +_0802FE74: .4byte gBattleBankFunc _0802FE78: .4byte sub_802D274 - thumb_func_end sub_802FDBC + thumb_func_end PlayerHandleTrainerSlideBack thumb_func_start sub_802FE7C sub_802FE7C: @ 802FE7C push {r4,r5,lr} - ldr r5, _0802FEC0 @ =gUnknown_02024A60 + ldr r5, _0802FEC0 @ =gActiveBank ldrb r2, [r5] lsls r0, r2, 1 adds r0, r2 @@ -3087,7 +3087,7 @@ _0802FEAE: strb r0, [r1, 0x4] b _0802FF3E .align 2, 0 -_0802FEC0: .4byte gUnknown_02024A60 +_0802FEC0: .4byte gActiveBank _0802FEC4: .4byte 0x02017810 _0802FEC8: ldrb r1, [r3] @@ -3098,7 +3098,7 @@ _0802FEC8: cmp r4, 0 bne _0802FF3E strb r4, [r3, 0x4] - ldr r2, _0802FF44 @ =gUnknown_02024A6A + ldr r2, _0802FF44 @ =gBattlePartyID ldrb r1, [r5] lsls r0, r1, 1 adds r0, r2 @@ -3113,7 +3113,7 @@ _0802FEC8: movs r0, 0x10 bl PlaySE12WithPanning ldr r2, _0802FF4C @ =gSprites - ldr r3, _0802FF50 @ =gUnknown_02024BE0 + ldr r3, _0802FF50 @ =gObjectBankIDs ldrb r0, [r5] adds r0, r3 ldrb r1, [r0] @@ -3141,7 +3141,7 @@ _0802FEC8: adds r0, r2 ldr r1, _0802FF54 @ =sub_80105EC str r1, [r0] - ldr r1, _0802FF58 @ =gUnknown_03004330 + ldr r1, _0802FF58 @ =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 adds r0, r1 @@ -3152,12 +3152,12 @@ _0802FF3E: pop {r0} bx r0 .align 2, 0 -_0802FF44: .4byte gUnknown_02024A6A +_0802FF44: .4byte gBattlePartyID _0802FF48: .4byte gPlayerParty _0802FF4C: .4byte gSprites -_0802FF50: .4byte gUnknown_02024BE0 +_0802FF50: .4byte gObjectBankIDs _0802FF54: .4byte sub_80105EC -_0802FF58: .4byte gUnknown_03004330 +_0802FF58: .4byte gBattleBankFunc _0802FF5C: .4byte sub_802DE10 thumb_func_end sub_802FE7C @@ -3173,7 +3173,7 @@ sub_802FF60: @ 802FF60 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted add sp, 0x4 pop {r0} bx r0 @@ -3185,13 +3185,13 @@ sub_802FF80: @ 802FF80 ldr r1, _0802FFBC @ =0x02017840 movs r0, 0x4 strb r0, [r1, 0x8] - ldr r1, _0802FFC0 @ =gUnknown_02024E6D + ldr r1, _0802FFC0 @ =gDoingBattleAnim movs r0, 0x1 strb r0, [r1] - ldr r5, _0802FFC4 @ =gUnknown_02024A60 + ldr r5, _0802FFC4 @ =gActiveBank ldrb r4, [r5] movs r0, 0x1 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 @@ -3199,7 +3199,7 @@ sub_802FF80: @ 802FF80 adds r1, r4, 0 movs r3, 0x3 bl move_anim_start_t4 - ldr r1, _0802FFC8 @ =gUnknown_03004330 + ldr r1, _0802FFC8 @ =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 adds r0, r1 @@ -3210,17 +3210,17 @@ sub_802FF80: @ 802FF80 bx r0 .align 2, 0 _0802FFBC: .4byte 0x02017840 -_0802FFC0: .4byte gUnknown_02024E6D -_0802FFC4: .4byte gUnknown_02024A60 -_0802FFC8: .4byte gUnknown_03004330 +_0802FFC0: .4byte gDoingBattleAnim +_0802FFC4: .4byte gActiveBank +_0802FFC8: .4byte gBattleBankFunc _0802FFCC: .4byte bx_wait_t1 thumb_func_end sub_802FF80 - thumb_func_start sub_802FFD0 -sub_802FFD0: @ 802FFD0 + thumb_func_start PlayerHandleBallThrow +PlayerHandleBallThrow: @ 802FFD0 push {r4,r5,lr} - ldr r1, _08030014 @ =gUnknown_02023A60 - ldr r5, _08030018 @ =gUnknown_02024A60 + ldr r1, _08030014 @ =gBattleBufferA + ldr r5, _08030018 @ =gActiveBank ldrb r0, [r5] lsls r0, 9 adds r1, 0x1 @@ -3228,12 +3228,12 @@ sub_802FFD0: @ 802FFD0 ldrb r1, [r0] ldr r0, _0803001C @ =0x02017840 strb r1, [r0, 0x8] - ldr r1, _08030020 @ =gUnknown_02024E6D + ldr r1, _08030020 @ =gDoingBattleAnim movs r0, 0x1 strb r0, [r1] ldrb r4, [r5] movs r0, 0x1 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 @@ -3241,7 +3241,7 @@ sub_802FFD0: @ 802FFD0 adds r1, r4, 0 movs r3, 0x3 bl move_anim_start_t4 - ldr r1, _08030024 @ =gUnknown_03004330 + ldr r1, _08030024 @ =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 adds r0, r1 @@ -3251,19 +3251,19 @@ sub_802FFD0: @ 802FFD0 pop {r0} bx r0 .align 2, 0 -_08030014: .4byte gUnknown_02023A60 -_08030018: .4byte gUnknown_02024A60 +_08030014: .4byte gBattleBufferA +_08030018: .4byte gActiveBank _0803001C: .4byte 0x02017840 -_08030020: .4byte gUnknown_02024E6D -_08030024: .4byte gUnknown_03004330 +_08030020: .4byte gDoingBattleAnim +_08030024: .4byte gBattleBankFunc _08030028: .4byte bx_wait_t1 - thumb_func_end sub_802FFD0 + thumb_func_end PlayerHandleBallThrow - thumb_func_start sub_803002C -sub_803002C: @ 803002C + thumb_func_start PlayerHandlePuase +PlayerHandlePuase: @ 803002C push {lr} - ldr r1, _08030054 @ =gUnknown_02023A60 - ldr r0, _08030058 @ =gUnknown_02024A60 + ldr r1, _08030054 @ =gBattleBufferA + ldr r0, _08030058 @ =gActiveBank ldrb r0, [r0] lsls r0, 9 adds r1, 0x1 @@ -3278,18 +3278,18 @@ _08030040: cmp r0, 0 bne _08030040 _0803004A: - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted pop {r0} bx r0 .align 2, 0 -_08030054: .4byte gUnknown_02023A60 -_08030058: .4byte gUnknown_02024A60 - thumb_func_end sub_803002C +_08030054: .4byte gBattleBufferA +_08030058: .4byte gActiveBank + thumb_func_end PlayerHandlePuase - thumb_func_start dp01t_0F_1_move_anim -dp01t_0F_1_move_anim: @ 803005C + thumb_func_start PlayerHandleMoveAnimation +PlayerHandleMoveAnimation: @ 803005C push {r4-r6,lr} - ldr r6, _08030140 @ =gUnknown_02024A60 + ldr r6, _08030140 @ =gActiveBank ldrb r0, [r6] bl mplay_80342A4 lsls r0, 24 @@ -3297,7 +3297,7 @@ dp01t_0F_1_move_anim: @ 803005C beq _0803006E b _0803017E _0803006E: - ldr r0, _08030144 @ =gUnknown_02023A60 + ldr r0, _08030144 @ =gBattleBufferA mov r12, r0 ldrb r2, [r6] lsls r2, 9 @@ -3316,7 +3316,7 @@ _0803006E: adds r2, r1 ldrb r1, [r2] strb r1, [r5] - ldr r4, _0803014C @ =gUnknown_0202F7BC + ldr r4, _0803014C @ =gMovePowerMoveAnim ldrb r2, [r6] lsls r2, 9 mov r1, r12 @@ -3330,7 +3330,7 @@ _0803006E: lsls r1, 8 orrs r3, r1 strh r3, [r4] - ldr r4, _08030150 @ =gUnknown_0202F7B8 + ldr r4, _08030150 @ =gMoveDmgMoveAnim ldrb r2, [r6] lsls r2, 9 mov r1, r12 @@ -3356,7 +3356,7 @@ _0803006E: lsls r1, 24 orrs r3, r1 str r3, [r4] - ldr r3, _08030154 @ =gUnknown_0202F7BE + ldr r3, _08030154 @ =gHappinessMoveAnim ldrb r1, [r6] lsls r1, 9 mov r2, r12 @@ -3364,7 +3364,7 @@ _0803006E: adds r1, r2 ldrb r1, [r1] strb r1, [r3] - ldr r4, _08030158 @ =gUnknown_0202F7C0 + ldr r4, _08030158 @ =gWeatherMoveAnim ldrb r2, [r6] lsls r2, 9 mov r1, r12 @@ -3378,14 +3378,14 @@ _0803006E: lsls r1, 8 orrs r3, r1 strh r3, [r4] - ldr r3, _0803015C @ =gUnknown_0202F7B4 + ldr r3, _0803015C @ =gDisableStructMoveAnim ldrb r2, [r6] lsls r2, 9 mov r1, r12 adds r1, 0x10 adds r2, r1 str r2, [r3] - ldr r3, _08030160 @ =gUnknown_02024E70 + ldr r3, _08030160 @ =gPID_perBank ldrb r1, [r6] lsls r1, 2 adds r1, r3 @@ -3397,18 +3397,18 @@ _0803006E: lsrs r2, r0, 24 cmp r2, 0 beq _08030164 - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted b _0803017E .align 2, 0 -_08030140: .4byte gUnknown_02024A60 -_08030144: .4byte gUnknown_02023A60 +_08030140: .4byte gActiveBank +_08030144: .4byte gBattleBufferA _08030148: .4byte gUnknown_0202F7C4 -_0803014C: .4byte gUnknown_0202F7BC -_08030150: .4byte gUnknown_0202F7B8 -_08030154: .4byte gUnknown_0202F7BE -_08030158: .4byte gUnknown_0202F7C0 -_0803015C: .4byte gUnknown_0202F7B4 -_08030160: .4byte gUnknown_02024E70 +_0803014C: .4byte gMovePowerMoveAnim +_08030150: .4byte gMoveDmgMoveAnim +_08030154: .4byte gHappinessMoveAnim +_08030158: .4byte gWeatherMoveAnim +_0803015C: .4byte gDisableStructMoveAnim +_08030160: .4byte gPID_perBank _08030164: ldrb r1, [r6] lsls r0, r1, 1 @@ -3417,7 +3417,7 @@ _08030164: ldr r1, _08030184 @ =0x02017810 adds r0, r1 strb r2, [r0, 0x4] - ldr r1, _08030188 @ =gUnknown_03004330 + ldr r1, _08030188 @ =gBattleBankFunc ldrb r0, [r6] lsls r0, 2 adds r0, r1 @@ -3429,9 +3429,9 @@ _0803017E: bx r0 .align 2, 0 _08030184: .4byte 0x02017810 -_08030188: .4byte gUnknown_03004330 +_08030188: .4byte gBattleBankFunc _0803018C: .4byte sub_8030190 - thumb_func_end dp01t_0F_1_move_anim + thumb_func_end PlayerHandleMoveAnimation thumb_func_start sub_8030190 sub_8030190: @ 8030190 @@ -3439,8 +3439,8 @@ sub_8030190: @ 8030190 mov r7, r9 mov r6, r8 push {r6,r7} - ldr r2, _080301D4 @ =gUnknown_02023A60 - ldr r5, _080301D8 @ =gUnknown_02024A60 + ldr r2, _080301D4 @ =gBattleBufferA + ldr r5, _080301D8 @ =gActiveBank ldrb r3, [r5] lsls r1, r3, 9 adds r0, r2, 0x1 @@ -3470,8 +3470,8 @@ sub_8030190: @ 8030190 beq _080301EA b _080302E8 .align 2, 0 -_080301D4: .4byte gUnknown_02023A60 -_080301D8: .4byte gUnknown_02024A60 +_080301D4: .4byte gBattleBufferA +_080301D8: .4byte gActiveBank _080301DC: .4byte 0x02017810 _080301E0: cmp r2, 0x2 @@ -3559,7 +3559,7 @@ _08030244: ands r1, r2 strb r1, [r0] _0803028C: - ldr r0, _080302A8 @ =gUnknown_02024A60 + ldr r0, _080302A8 @ =gActiveBank ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -3572,7 +3572,7 @@ _0803028C: .align 2, 0 _080302A0: .4byte gAnimScriptCallback _080302A4: .4byte gAnimScriptActive -_080302A8: .4byte gUnknown_02024A60 +_080302A8: .4byte gActiveBank _080302AC: .4byte 0x02017810 _080302B0: ldrb r1, [r0] @@ -3599,7 +3599,7 @@ _080302B0: lsls r0, 2 adds r0, r6 strb r4, [r0, 0x4] - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted _080302E8: pop {r3,r4} mov r8, r3 @@ -3609,8 +3609,8 @@ _080302E8: bx r0 thumb_func_end sub_8030190 - thumb_func_start sub_80302F4 -sub_80302F4: @ 80302F4 + thumb_func_start PlayerHandlePrintString +PlayerHandlePrintString: @ 80302F4 push {r4,lr} sub sp, 0x4 ldr r0, _08030338 @ =gUnknown_030042A4 @@ -3618,21 +3618,21 @@ sub_80302F4: @ 80302F4 strh r1, [r0] ldr r0, _0803033C @ =gUnknown_030042A0 strh r1, [r0] - ldr r4, _08030340 @ =gUnknown_02024A60 + ldr r4, _08030340 @ =gActiveBank ldrb r0, [r4] lsls r0, 9 ldr r1, _08030344 @ =gUnknown_02023A62 adds r0, r1 ldrh r0, [r0] - bl sub_8120AA8 + bl BufferStringBattle ldr r0, _08030348 @ =gUnknown_03004210 - ldr r1, _0803034C @ =gUnknown_020238CC + ldr r1, _0803034C @ =gDisplayedStringBattle movs r2, 0xF str r2, [sp] movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 - ldr r1, _08030350 @ =gUnknown_03004330 + ldr r1, _08030350 @ =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 adds r0, r1 @@ -3645,33 +3645,33 @@ sub_80302F4: @ 80302F4 .align 2, 0 _08030338: .4byte gUnknown_030042A4 _0803033C: .4byte gUnknown_030042A0 -_08030340: .4byte gUnknown_02024A60 +_08030340: .4byte gActiveBank _08030344: .4byte gUnknown_02023A62 _08030348: .4byte gUnknown_03004210 -_0803034C: .4byte gUnknown_020238CC -_08030350: .4byte gUnknown_03004330 +_0803034C: .4byte gDisplayedStringBattle +_08030350: .4byte gBattleBankFunc _08030354: .4byte sub_802DF18 - thumb_func_end sub_80302F4 + thumb_func_end PlayerHandlePrintString - thumb_func_start dp01t_11_1_message_for_player_only -dp01t_11_1_message_for_player_only: @ 8030358 + thumb_func_start PlayerHandlePrintStringPlayerOnly +PlayerHandlePrintStringPlayerOnly: @ 8030358 push {lr} - ldr r0, _08030370 @ =gUnknown_02024A60 + ldr r0, _08030370 @ =gActiveBank ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08030374 - bl sub_80302F4 + bl PlayerHandlePrintString b _08030378 .align 2, 0 -_08030370: .4byte gUnknown_02024A60 +_08030370: .4byte gActiveBank _08030374: - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted _08030378: pop {r0} bx r0 - thumb_func_end dp01t_11_1_message_for_player_only + thumb_func_end PlayerHandlePrintStringPlayerOnly .section .text_8030464 @@ -3691,8 +3691,8 @@ sub_8030468: @ 8030468 movs r2, 0xC bl sub_814A5C0 bl sub_80304A8 - ldr r1, _0803049C @ =gUnknown_03004330 - ldr r0, _080304A0 @ =gUnknown_02024A60 + ldr r1, _0803049C @ =gBattleBankFunc + ldr r0, _080304A0 @ =gActiveBank ldrb r0, [r0] lsls r0, 2 adds r0, r1 @@ -3704,8 +3704,8 @@ sub_8030468: @ 8030468 .align 2, 0 _08030494: .4byte 0x0000ffff _08030498: .4byte 0x00002d9f -_0803049C: .4byte gUnknown_03004330 -_080304A0: .4byte gUnknown_02024A60 +_0803049C: .4byte gBattleBankFunc +_080304A0: .4byte gActiveBank _080304A4: .4byte sub_802C68C thumb_func_end sub_8030468 @@ -3725,14 +3725,14 @@ sub_80304A8: @ 80304A8 ldr r1, _08030518 @ =gUnknown_03004344 movs r0, 0xFF strb r0, [r1] - ldr r1, _0803051C @ =gUnknown_02024E64 - ldr r4, _08030520 @ =gUnknown_02024A60 + ldr r1, _0803051C @ =gMoveSelectionCursor + ldr r4, _08030520 @ =gActiveBank ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] movs r1, 0 bl sub_802E3B4 - ldr r1, _08030524 @ =gUnknown_02023A60 + ldr r1, _08030524 @ =gBattleBufferA ldrb r0, [r4] lsls r0, 9 adds r1, 0x2 @@ -3762,15 +3762,15 @@ _08030500: _08030510: .4byte gUnknown_030042A4 _08030514: .4byte gUnknown_030042A0 _08030518: .4byte gUnknown_03004344 -_0803051C: .4byte gUnknown_02024E64 -_08030520: .4byte gUnknown_02024A60 -_08030524: .4byte gUnknown_02023A60 +_0803051C: .4byte gMoveSelectionCursor +_08030520: .4byte gActiveBank +_08030524: .4byte gBattleBufferA _08030528: .4byte gUnknown_03004210 _0803052C: .4byte gUnknown_08400D38 thumb_func_end sub_80304A8 - thumb_func_start sub_8030530 -sub_8030530: @ 8030530 + thumb_func_start PlayerHandleOpenBag +PlayerHandleOpenBag: @ 8030530 push {r4,r5,lr} sub sp, 0x4 movs r0, 0x1 @@ -3780,19 +3780,19 @@ sub_8030530: @ 8030530 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade - ldr r1, _0803057C @ =gUnknown_03004330 - ldr r2, _08030580 @ =gUnknown_02024A60 + ldr r1, _0803057C @ =gBattleBankFunc + ldr r2, _08030580 @ =gActiveBank ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, _08030584 @ =sub_802E004 str r1, [r0] - ldr r1, _08030588 @ =gUnknown_02024E6C + ldr r1, _08030588 @ =gBankInMenu ldrb r0, [r2] strb r0, [r1] movs r3, 0 ldr r5, _0803058C @ =gUnknown_02038470 - ldr r4, _08030590 @ =gUnknown_02023A60 + ldr r4, _08030590 @ =gBattleBufferA _0803055E: adds r0, r3, r5 ldrb r1, [r2] @@ -3810,13 +3810,13 @@ _0803055E: pop {r0} bx r0 .align 2, 0 -_0803057C: .4byte gUnknown_03004330 -_08030580: .4byte gUnknown_02024A60 +_0803057C: .4byte gBattleBankFunc +_08030580: .4byte gActiveBank _08030584: .4byte sub_802E004 -_08030588: .4byte gUnknown_02024E6C +_08030588: .4byte gBankInMenu _0803058C: .4byte gUnknown_02038470 -_08030590: .4byte gUnknown_02023A60 - thumb_func_end sub_8030530 +_08030590: .4byte gBattleBufferA + thumb_func_end PlayerHandleOpenBag thumb_func_start sub_8030594 sub_8030594: @ 8030594 @@ -3826,7 +3826,7 @@ sub_8030594: @ 8030594 movs r1, 0xFF bl CreateTask ldr r3, _08030648 @ =gUnknown_0300434C - ldr r5, _0803064C @ =gUnknown_02024A60 + ldr r5, _0803064C @ =gActiveBank ldrb r1, [r5] adds r1, r3 strb r0, [r1] @@ -3838,7 +3838,7 @@ sub_8030594: @ 8030594 adds r1, r0 lsls r1, 3 adds r1, r4 - ldr r4, _08030654 @ =gUnknown_02023A60 + ldr r4, _08030654 @ =gBattleBufferA lsls r2, 9 adds r3, r4, 0x1 adds r2, r3 @@ -3892,14 +3892,14 @@ _08030600: movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade - ldr r1, _08030668 @ =gUnknown_03004330 - ldr r2, _0803064C @ =gUnknown_02024A60 + ldr r1, _08030668 @ =gBattleBankFunc + ldr r2, _0803064C @ =gActiveBank ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, _0803066C @ =sub_802DF30 str r1, [r0] - ldr r1, _08030670 @ =gUnknown_02024E6C + ldr r1, _08030670 @ =gBankInMenu ldrb r0, [r2] strb r0, [r1] add sp, 0x4 @@ -3909,16 +3909,16 @@ _08030600: .align 2, 0 _08030644: .4byte TaskDummy _08030648: .4byte gUnknown_0300434C -_0803064C: .4byte gUnknown_02024A60 +_0803064C: .4byte gActiveBank _08030650: .4byte gTasks -_08030654: .4byte gUnknown_02023A60 +_08030654: .4byte gBattleBufferA _08030658: .4byte 0x02000000 _0803065C: .4byte 0x00016054 _08030660: .4byte 0x000160c0 _08030664: .4byte gUnknown_02038470 -_08030668: .4byte gUnknown_03004330 +_08030668: .4byte gBattleBankFunc _0803066C: .4byte sub_802DF30 -_08030670: .4byte gUnknown_02024E6C +_08030670: .4byte gBankInMenu thumb_func_end sub_8030594 thumb_func_start sub_8030674 @@ -3934,14 +3934,14 @@ sub_8030674: @ 8030674 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8030674 - thumb_func_start sub_8030698 -sub_8030698: @ 8030698 + thumb_func_start PlayerHandleHealthBarUpdate +PlayerHandleHealthBarUpdate: @ 8030698 push {r4-r7,lr} mov r7, r9 mov r6, r8 @@ -3949,8 +3949,8 @@ sub_8030698: @ 8030698 sub sp, 0x4 movs r0, 0 bl load_gfxc_health_bar - ldr r3, _08030710 @ =gUnknown_02023A60 - ldr r0, _08030714 @ =gUnknown_02024A60 + ldr r3, _08030710 @ =gBattleBufferA + ldr r0, _08030714 @ =gActiveBank mov r9, r0 ldrb r4, [r0] lsls r2, r4, 9 @@ -3967,7 +3967,7 @@ sub_8030698: @ 8030698 ldr r0, _08030718 @ =0x00007fff cmp r7, r0 beq _08030728 - ldr r6, _0803071C @ =gUnknown_02024A6A + ldr r6, _0803071C @ =gBattlePartyID lsls r0, r4, 1 adds r0, r6 ldrh r0, [r0] @@ -3990,7 +3990,7 @@ sub_8030698: @ 8030698 adds r3, r0, 0 mov r1, r9 ldrb r0, [r1] - ldr r1, _08030724 @ =gUnknown_03004340 + ldr r1, _08030724 @ =gHealthboxIDs adds r1, r0, r1 ldrb r1, [r1] str r7, [sp] @@ -3998,14 +3998,14 @@ sub_8030698: @ 8030698 bl sub_8043D84 b _08030762 .align 2, 0 -_08030710: .4byte gUnknown_02023A60 -_08030714: .4byte gUnknown_02024A60 +_08030710: .4byte gBattleBufferA +_08030714: .4byte gActiveBank _08030718: .4byte 0x00007fff -_0803071C: .4byte gUnknown_02024A6A +_0803071C: .4byte gBattlePartyID _08030720: .4byte gPlayerParty -_08030724: .4byte gUnknown_03004340 +_08030724: .4byte gHealthboxIDs _08030728: - ldr r1, _08030780 @ =gUnknown_02024A6A + ldr r1, _08030780 @ =gBattlePartyID lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] @@ -4018,7 +4018,7 @@ _08030728: adds r2, r0, 0 mov r1, r9 ldrb r0, [r1] - ldr r4, _08030788 @ =gUnknown_03004340 + ldr r4, _08030788 @ =gHealthboxIDs adds r1, r0, r4 ldrb r1, [r1] str r7, [sp] @@ -4032,8 +4032,8 @@ _08030728: movs r2, 0 bl sub_80440EC _08030762: - ldr r1, _0803078C @ =gUnknown_03004330 - ldr r0, _08030790 @ =gUnknown_02024A60 + ldr r1, _0803078C @ =gBattleBankFunc + ldr r0, _08030790 @ =gActiveBank ldrb r0, [r0] lsls r0, 2 adds r0, r1 @@ -4047,19 +4047,19 @@ _08030762: pop {r0} bx r0 .align 2, 0 -_08030780: .4byte gUnknown_02024A6A +_08030780: .4byte gBattlePartyID _08030784: .4byte gPlayerParty -_08030788: .4byte gUnknown_03004340 -_0803078C: .4byte gUnknown_03004330 -_08030790: .4byte gUnknown_02024A60 +_08030788: .4byte gHealthboxIDs +_0803078C: .4byte gBattleBankFunc +_08030790: .4byte gActiveBank _08030794: .4byte bx_t1_healthbar_update - thumb_func_end sub_8030698 + thumb_func_end PlayerHandleHealthBarUpdate - thumb_func_start sub_8030798 -sub_8030798: @ 8030798 + thumb_func_start PlayerHandleExpBarUpdate +PlayerHandleExpBarUpdate: @ 8030798 push {r4-r7,lr} - ldr r5, _080307C4 @ =gUnknown_02023A60 - ldr r6, _080307C8 @ =gUnknown_02024A60 + ldr r5, _080307C4 @ =gBattleBufferA + ldr r6, _080307C8 @ =gActiveBank ldrb r0, [r6] lsls r0, 9 adds r1, r5, 0x1 @@ -4075,11 +4075,11 @@ sub_8030798: @ 8030798 bl GetMonData cmp r0, 0x63 bls _080307D0 - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted b _0803081C .align 2, 0 -_080307C4: .4byte gUnknown_02023A60 -_080307C8: .4byte gUnknown_02024A60 +_080307C4: .4byte gBattleBufferA +_080307C8: .4byte gActiveBank _080307CC: .4byte gPlayerParty _080307D0: movs r0, 0x1 @@ -4111,7 +4111,7 @@ _080307D0: strh r4, [r1, 0xA] ldrb r0, [r6] strh r0, [r1, 0xC] - ldr r1, _0803082C @ =gUnknown_03004330 + ldr r1, _0803082C @ =gBattleBankFunc ldrb r0, [r6] lsls r0, 2 adds r0, r1 @@ -4124,24 +4124,24 @@ _0803081C: .align 2, 0 _08030824: .4byte sub_802D924 _08030828: .4byte gTasks -_0803082C: .4byte gUnknown_03004330 +_0803082C: .4byte gBattleBankFunc _08030830: .4byte nullsub_91 - thumb_func_end sub_8030798 + thumb_func_end PlayerHandleExpBarUpdate - thumb_func_start sub_8030834 -sub_8030834: @ 8030834 + thumb_func_start PlayerHandleStatusIconUpdate +PlayerHandleStatusIconUpdate: @ 8030834 push {r4,lr} - ldr r4, _0803088C @ =gUnknown_02024A60 + ldr r4, _0803088C @ =gActiveBank ldrb r0, [r4] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 bne _08030884 - ldr r0, _08030890 @ =gUnknown_03004340 + ldr r0, _08030890 @ =gHealthboxIDs ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] - ldr r2, _08030894 @ =gUnknown_02024A6A + ldr r2, _08030894 @ =gBattlePartyID lsls r1, 1 adds r1, r2 ldrh r2, [r1] @@ -4162,7 +4162,7 @@ sub_8030834: @ 8030834 negs r0, r0 ands r0, r2 strb r0, [r1] - ldr r1, _080308A0 @ =gUnknown_03004330 + ldr r1, _080308A0 @ =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 adds r0, r1 @@ -4173,25 +4173,25 @@ _08030884: pop {r0} bx r0 .align 2, 0 -_0803088C: .4byte gUnknown_02024A60 -_08030890: .4byte gUnknown_03004340 -_08030894: .4byte gUnknown_02024A6A +_0803088C: .4byte gActiveBank +_08030890: .4byte gHealthboxIDs +_08030894: .4byte gBattlePartyID _08030898: .4byte gPlayerParty _0803089C: .4byte 0x02017810 -_080308A0: .4byte gUnknown_03004330 +_080308A0: .4byte gBattleBankFunc _080308A4: .4byte sub_802E434 - thumb_func_end sub_8030834 + thumb_func_end PlayerHandleStatusIconUpdate - thumb_func_start sub_80308A8 -sub_80308A8: @ 80308A8 + thumb_func_start PlayerHandleStatusAnimation +PlayerHandleStatusAnimation: @ 80308A8 push {r4,r5,lr} - ldr r5, _08030900 @ =gUnknown_02024A60 + ldr r5, _08030900 @ =gActiveBank ldrb r0, [r5] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 bne _080308F8 - ldr r4, _08030904 @ =gUnknown_02023A60 + ldr r4, _08030904 @ =gBattleBufferA ldrb r3, [r5] lsls r3, 9 adds r0, r4, 0x1 @@ -4216,7 +4216,7 @@ sub_80308A8: @ 80308A8 lsls r2, 24 orrs r1, r2 bl move_anim_start_t2_for_situation - ldr r1, _08030908 @ =gUnknown_03004330 + ldr r1, _08030908 @ =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 adds r0, r1 @@ -4227,21 +4227,21 @@ _080308F8: pop {r0} bx r0 .align 2, 0 -_08030900: .4byte gUnknown_02024A60 -_08030904: .4byte gUnknown_02023A60 -_08030908: .4byte gUnknown_03004330 +_08030900: .4byte gActiveBank +_08030904: .4byte gBattleBufferA +_08030908: .4byte gBattleBankFunc _0803090C: .4byte sub_802E434 - thumb_func_end sub_80308A8 + thumb_func_end PlayerHandleStatusAnimation - thumb_func_start sub_8030910 -sub_8030910: @ 8030910 + thumb_func_start PlayerHandleStatusXor +PlayerHandleStatusXor: @ 8030910 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x4 - ldr r0, _0803096C @ =gUnknown_02024A6A + ldr r0, _0803096C @ =gBattlePartyID mov r8, r0 - ldr r4, _08030970 @ =gUnknown_02024A60 + ldr r4, _08030970 @ =gActiveBank ldrb r0, [r4] lsls r0, 1 add r0, r8 @@ -4252,7 +4252,7 @@ sub_8030910: @ 8030910 adds r0, r5 movs r1, 0x37 bl GetMonData - ldr r2, _08030978 @ =gUnknown_02023A60 + ldr r2, _08030978 @ =gBattleBufferA ldrb r1, [r4] lsls r1, 9 adds r2, 0x1 @@ -4270,7 +4270,7 @@ sub_8030910: @ 8030910 movs r1, 0x37 mov r2, sp bl SetMonData - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted add sp, 0x4 pop {r3} mov r8, r3 @@ -4278,25 +4278,25 @@ sub_8030910: @ 8030910 pop {r0} bx r0 .align 2, 0 -_0803096C: .4byte gUnknown_02024A6A -_08030970: .4byte gUnknown_02024A60 +_0803096C: .4byte gBattlePartyID +_08030970: .4byte gActiveBank _08030974: .4byte gPlayerParty -_08030978: .4byte gUnknown_02023A60 - thumb_func_end sub_8030910 +_08030978: .4byte gBattleBufferA + thumb_func_end PlayerHandleStatusXor thumb_func_start sub_803097C sub_803097C: @ 803097C push {lr} - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_803097C - thumb_func_start sub_8030988 -sub_8030988: @ 8030988 + thumb_func_start PlayerHandleDMATransfer +PlayerHandleDMATransfer: @ 8030988 push {r4,r5,lr} - ldr r3, _080309EC @ =gUnknown_02023A60 - ldr r0, _080309F0 @ =gUnknown_02024A60 + ldr r3, _080309EC @ =gBattleBufferA + ldr r0, _080309F0 @ =gActiveBank ldrb r2, [r0] lsls r2, 9 adds r0, r3, 0x1 @@ -4344,8 +4344,8 @@ sub_8030988: @ 8030988 ldr r0, [r0, 0x8] b _08030A24 .align 2, 0 -_080309EC: .4byte gUnknown_02023A60 -_080309F0: .4byte gUnknown_02024A60 +_080309EC: .4byte gBattleBufferA +_080309F0: .4byte gActiveBank _080309F4: .4byte 0x040000d4 _080309F8: ldr r3, _08030A30 @ =0x040000d4 @@ -4371,7 +4371,7 @@ _080309F8: str r0, [r3, 0x8] ldr r0, [r3, 0x8] _08030A24: - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted pop {r4,r5} pop {r0} bx r0 @@ -4379,13 +4379,13 @@ _08030A24: _08030A30: .4byte 0x040000d4 _08030A34: .4byte 0x80000800 _08030A38: .4byte 0xfffff000 - thumb_func_end sub_8030988 + thumb_func_end PlayerHandleDMATransfer thumb_func_start sub_8030A3C sub_8030A3C: @ 8030A3C push {lr} - ldr r2, _08030A64 @ =gUnknown_02023A60 - ldr r0, _08030A68 @ =gUnknown_02024A60 + ldr r2, _08030A64 @ =gBattleBufferA + ldr r0, _08030A68 @ =gActiveBank ldrb r1, [r0] lsls r1, 9 adds r0, r2, 0x1 @@ -4397,18 +4397,18 @@ sub_8030A3C: @ 8030A3C lsls r1, 8 orrs r0, r1 bl PlayBGM - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted pop {r0} bx r0 .align 2, 0 -_08030A64: .4byte gUnknown_02023A60 -_08030A68: .4byte gUnknown_02024A60 +_08030A64: .4byte gBattleBufferA +_08030A68: .4byte gActiveBank thumb_func_end sub_8030A3C thumb_func_start sub_8030A6C sub_8030A6C: @ 8030A6C push {lr} - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_8030A6C @@ -4420,7 +4420,7 @@ sub_8030A78: @ 8030A78 movs r1, 0 movs r2, 0 bl dp01_build_cmdbuf_x21_a_bb - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_8030A78 @@ -4432,7 +4432,7 @@ sub_8030A8C: @ 8030A8C movs r1, 0 movs r2, 0 bl dp01_build_cmdbuf_x22_a_three_bytes - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_8030A8C @@ -4443,7 +4443,7 @@ sub_8030AA0: @ 8030AA0 movs r0, 0x1 movs r1, 0 bl dp01_build_cmdbuf_x23_aa_0 - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_8030AA0 @@ -4454,7 +4454,7 @@ sub_8030AB4: @ 8030AB4 movs r0, 0x1 movs r1, 0 bl dp01_build_cmdbuf_x24_aa_0 - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_8030AB4 @@ -4468,7 +4468,7 @@ sub_8030AC8: @ 8030AC8 negs r0, r0 ands r0, r1 strb r0, [r2] - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted pop {r0} bx r0 .align 2, 0 @@ -4479,8 +4479,8 @@ _08030AE0: .4byte gUnknown_020238C8 sub_8030AE4: @ 8030AE4 push {lr} ldr r3, _08030B10 @ =gUnknown_020238C8 - ldr r1, _08030B14 @ =gUnknown_02023A60 - ldr r0, _08030B18 @ =gUnknown_02024A60 + ldr r1, _08030B14 @ =gBattleBufferA + ldr r0, _08030B18 @ =gActiveBank ldrb r0, [r0] lsls r0, 9 adds r1, 0x1 @@ -4494,13 +4494,13 @@ sub_8030AE4: @ 8030AE4 ands r0, r2 orrs r0, r1 strb r0, [r3] - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted pop {r0} bx r0 .align 2, 0 _08030B10: .4byte gUnknown_020238C8 -_08030B14: .4byte gUnknown_02023A60 -_08030B18: .4byte gUnknown_02024A60 +_08030B14: .4byte gBattleBufferA +_08030B18: .4byte gActiveBank thumb_func_end sub_8030AE4 thumb_func_start sub_8030B1C @@ -4511,7 +4511,7 @@ sub_8030B1C: @ 8030B1C movs r0, 0x7F ands r0, r1 strb r0, [r2] - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted pop {r0} bx r0 .align 2, 0 @@ -4533,19 +4533,19 @@ sub_8030B34: @ 8030B34 ands r0, r2 orrs r0, r1 strb r0, [r3] - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted pop {r0} bx r0 .align 2, 0 _08030B58: .4byte gUnknown_020238C8 thumb_func_end sub_8030B34 - thumb_func_start dp01t_29_1_blink -dp01t_29_1_blink: @ 8030B5C + thumb_func_start PlayerHandleHitAnimation +PlayerHandleHitAnimation: @ 8030B5C push {r4,lr} ldr r3, _08030B84 @ =gSprites - ldr r2, _08030B88 @ =gUnknown_02024BE0 - ldr r4, _08030B8C @ =gUnknown_02024A60 + ldr r2, _08030B88 @ =gObjectBankIDs + ldr r4, _08030B8C @ =gActiveBank ldrb r0, [r4] adds r0, r2 ldrb r1, [r0] @@ -4558,14 +4558,14 @@ dp01t_29_1_blink: @ 8030B5C lsls r0, 29 cmp r0, 0 bge _08030B90 - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted b _08030BBA .align 2, 0 _08030B84: .4byte gSprites -_08030B88: .4byte gUnknown_02024BE0 -_08030B8C: .4byte gUnknown_02024A60 +_08030B88: .4byte gObjectBankIDs +_08030B8C: .4byte gActiveBank _08030B90: - ldr r1, _08030BC0 @ =gUnknown_02024E6D + ldr r1, _08030BC0 @ =gDoingBattleAnim movs r0, 0x1 strb r0, [r1] ldrb r0, [r4] @@ -4579,7 +4579,7 @@ _08030B90: strh r1, [r0, 0x30] ldrb r0, [r4] bl sub_8047858 - ldr r1, _08030BC4 @ =gUnknown_03004330 + ldr r1, _08030BC4 @ =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 adds r0, r1 @@ -4590,32 +4590,32 @@ _08030BBA: pop {r0} bx r0 .align 2, 0 -_08030BC0: .4byte gUnknown_02024E6D -_08030BC4: .4byte gUnknown_03004330 +_08030BC0: .4byte gDoingBattleAnim +_08030BC4: .4byte gBattleBankFunc _08030BC8: .4byte bx_blink_t1 - thumb_func_end dp01t_29_1_blink + thumb_func_end PlayerHandleHitAnimation thumb_func_start sub_8030BCC sub_8030BCC: @ 8030BCC push {lr} - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_8030BCC - thumb_func_start sub_8030BD8 -sub_8030BD8: @ 8030BD8 + thumb_func_start PlayerHandleEffectivenessSound +PlayerHandleEffectivenessSound: @ 8030BD8 push {r4,lr} - ldr r4, _08030C14 @ =gUnknown_02024A60 + ldr r4, _08030C14 @ =gActiveBank ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 movs r3, 0x3F cmp r0, 0 bne _08030BEC movs r3, 0xC0 _08030BEC: - ldr r2, _08030C18 @ =gUnknown_02023A60 + ldr r2, _08030C18 @ =gBattleBufferA ldrb r1, [r4] lsls r1, 9 adds r0, r2, 0x1 @@ -4629,20 +4629,20 @@ _08030BEC: lsls r1, r3, 24 asrs r1, 24 bl PlaySE12WithPanning - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted pop {r4} pop {r0} bx r0 .align 2, 0 -_08030C14: .4byte gUnknown_02024A60 -_08030C18: .4byte gUnknown_02023A60 - thumb_func_end sub_8030BD8 +_08030C14: .4byte gActiveBank +_08030C18: .4byte gBattleBufferA + thumb_func_end PlayerHandleEffectivenessSound thumb_func_start sub_8030C1C sub_8030C1C: @ 8030C1C push {lr} - ldr r2, _08030C44 @ =gUnknown_02023A60 - ldr r0, _08030C48 @ =gUnknown_02024A60 + ldr r2, _08030C44 @ =gBattleBufferA + ldr r0, _08030C48 @ =gActiveBank ldrb r1, [r0] lsls r1, 9 adds r0, r2, 0x1 @@ -4654,19 +4654,19 @@ sub_8030C1C: @ 8030C1C lsls r1, 8 orrs r0, r1 bl PlayFanfare - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted pop {r0} bx r0 .align 2, 0 -_08030C44: .4byte gUnknown_02023A60 -_08030C48: .4byte gUnknown_02024A60 +_08030C44: .4byte gBattleBufferA +_08030C48: .4byte gActiveBank thumb_func_end sub_8030C1C - thumb_func_start sub_8030C4C -sub_8030C4C: @ 8030C4C + thumb_func_start PlayerHandleFaintingCry +PlayerHandleFaintingCry: @ 8030C4C push {lr} - ldr r1, _08030C80 @ =gUnknown_02024A6A - ldr r0, _08030C84 @ =gUnknown_02024A60 + ldr r1, _08030C80 @ =gBattlePartyID + ldr r0, _08030C84 @ =gActiveBank ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -4683,20 +4683,20 @@ sub_8030C4C: @ 8030C4C negs r1, r1 movs r2, 0x5 bl PlayCry3 - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted pop {r0} bx r0 .align 2, 0 -_08030C80: .4byte gUnknown_02024A6A -_08030C84: .4byte gUnknown_02024A60 +_08030C80: .4byte gBattlePartyID +_08030C84: .4byte gActiveBank _08030C88: .4byte gPlayerParty - thumb_func_end sub_8030C4C + thumb_func_end PlayerHandleFaintingCry - thumb_func_start dp01t_2E_1_battle_intro -dp01t_2E_1_battle_intro: @ 8030C8C + thumb_func_start PlayerHandleIntroSlide +PlayerHandleIntroSlide: @ 8030C8C push {lr} - ldr r1, _08030CB4 @ =gUnknown_02023A60 - ldr r0, _08030CB8 @ =gUnknown_02024A60 + ldr r1, _08030CB4 @ =gBattleBufferA + ldr r0, _08030CB8 @ =gActiveBank ldrb r0, [r0] lsls r0, 9 adds r1, 0x1 @@ -4708,20 +4708,20 @@ dp01t_2E_1_battle_intro: @ 8030C8C movs r1, 0x1 orrs r0, r1 strh r0, [r2] - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted pop {r0} bx r0 .align 2, 0 -_08030CB4: .4byte gUnknown_02023A60 -_08030CB8: .4byte gUnknown_02024A60 +_08030CB4: .4byte gBattleBufferA +_08030CB8: .4byte gActiveBank _08030CBC: .4byte gUnknown_02024DE8 - thumb_func_end dp01t_2E_1_battle_intro + thumb_func_end PlayerHandleIntroSlide - thumb_func_start sub_8030CC0 -sub_8030CC0: @ 8030CC0 + thumb_func_start PlayerHandleTrainerBallThrow +PlayerHandleTrainerBallThrow: @ 8030CC0 push {r4-r7,lr} - ldr r6, _08030DF8 @ =gUnknown_02024BE0 - ldr r7, _08030DFC @ =gUnknown_02024A60 + ldr r6, _08030DF8 @ =gObjectBankIDs + ldr r7, _08030DFC @ =gActiveBank ldrb r0, [r7] adds r0, r6 ldrb r1, [r0] @@ -4861,7 +4861,7 @@ _08030DDC: movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x9] - ldr r1, _08030E30 @ =gUnknown_03004330 + ldr r1, _08030E30 @ =gBattleBankFunc ldrb r0, [r7] lsls r0, 2 adds r0, r1 @@ -4871,8 +4871,8 @@ _08030DDC: pop {r0} bx r0 .align 2, 0 -_08030DF8: .4byte gUnknown_02024BE0 -_08030DFC: .4byte gUnknown_02024A60 +_08030DF8: .4byte gObjectBankIDs +_08030DFC: .4byte gActiveBank _08030E00: .4byte gSprites _08030E04: .4byte 0x0000ffd8 _08030E08: .4byte sub_8078B34 @@ -4885,9 +4885,9 @@ _08030E20: .4byte gTasks _08030E24: .4byte 0x02017810 _08030E28: .4byte gUnknown_02024E68 _08030E2C: .4byte sub_8044CA0 -_08030E30: .4byte gUnknown_03004330 +_08030E30: .4byte gBattleBankFunc _08030E34: .4byte nullsub_91 - thumb_func_end sub_8030CC0 + thumb_func_end PlayerHandleTrainerBallThrow thumb_func_start sub_8030E38 sub_8030E38: @ 8030E38 @@ -4905,7 +4905,7 @@ sub_8030E38: @ 8030E38 bl FreeSpritePaletteByTag adds r0, r5, 0 bl DestroySprite - ldr r1, _08030E90 @ =gUnknown_02024A6A + ldr r1, _08030E90 @ =gBattlePartyID lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] @@ -4915,7 +4915,7 @@ sub_8030E38: @ 8030E38 adds r0, r1 adds r1, r4, 0 bl sub_80318FC - ldr r0, _08030E98 @ =gUnknown_02024BE0 + ldr r0, _08030E98 @ =gObjectBankIDs adds r4, r0 ldrb r1, [r4] lsls r0, r1, 4 @@ -4929,9 +4929,9 @@ sub_8030E38: @ 8030E38 pop {r0} bx r0 .align 2, 0 -_08030E90: .4byte gUnknown_02024A6A +_08030E90: .4byte gBattlePartyID _08030E94: .4byte gPlayerParty -_08030E98: .4byte gUnknown_02024BE0 +_08030E98: .4byte gObjectBankIDs _08030E9C: .4byte gSprites thumb_func_end sub_8030E38 @@ -4960,7 +4960,7 @@ task05_08033660: @ 8030EA0 .align 2, 0 _08030EC8: .4byte gTasks _08030ECC: - ldr r7, _08030F0C @ =gUnknown_02024A60 + ldr r7, _08030F0C @ =gActiveBank ldrb r0, [r7] mov r9, r0 ldrh r0, [r1, 0x8] @@ -4976,12 +4976,12 @@ _08030ECC: cmp r0, 0 beq _08030F1C _08030EEC: - ldr r0, _08030F14 @ =gUnknown_02023A60 + ldr r0, _08030F14 @ =gBattleBufferA ldrb r1, [r7] lsls r2, r1, 9 adds r0, 0x1 adds r2, r0 - ldr r0, _08030F18 @ =gUnknown_02024A6A + ldr r0, _08030F18 @ =gBattlePartyID lsls r1, 1 adds r1, r0 ldrh r0, [r1] @@ -4991,17 +4991,17 @@ _08030EEC: bl sub_802F934 b _08030F70 .align 2, 0 -_08030F0C: .4byte gUnknown_02024A60 +_08030F0C: .4byte gActiveBank _08030F10: .4byte gBattleTypeFlags -_08030F14: .4byte gUnknown_02023A60 -_08030F18: .4byte gUnknown_02024A6A +_08030F14: .4byte gBattleBufferA +_08030F18: .4byte gBattlePartyID _08030F1C: - ldr r4, _08030F94 @ =gUnknown_02023A60 + ldr r4, _08030F94 @ =gBattleBufferA ldrb r0, [r7] lsls r1, r0, 9 adds r4, 0x1 adds r1, r4 - ldr r5, _08030F98 @ =gUnknown_02024A6A + ldr r5, _08030F98 @ =gBattlePartyID lsls r0, 1 adds r0, r5 ldrh r0, [r0] @@ -5036,8 +5036,8 @@ _08030F1C: eors r0, r6 strb r0, [r7] _08030F70: - ldr r1, _08030FA0 @ =gUnknown_03004330 - ldr r2, _08030FA4 @ =gUnknown_02024A60 + ldr r1, _08030FA0 @ =gBattleBankFunc + ldr r2, _08030FA4 @ =gActiveBank ldrb r0, [r2] lsls r0, 2 adds r0, r1 @@ -5055,19 +5055,19 @@ _08030F88: pop {r0} bx r0 .align 2, 0 -_08030F94: .4byte gUnknown_02023A60 -_08030F98: .4byte gUnknown_02024A6A +_08030F94: .4byte gBattleBufferA +_08030F98: .4byte gBattlePartyID _08030F9C: .4byte gPlayerParty -_08030FA0: .4byte gUnknown_03004330 -_08030FA4: .4byte gUnknown_02024A60 +_08030FA0: .4byte gBattleBankFunc +_08030FA4: .4byte gActiveBank _08030FA8: .4byte sub_802D500 thumb_func_end task05_08033660 thumb_func_start sub_8030FAC sub_8030FAC: @ 8030FAC push {r4-r6,lr} - ldr r1, _08030FD4 @ =gUnknown_02023A60 - ldr r0, _08030FD8 @ =gUnknown_02024A60 + ldr r1, _08030FD4 @ =gBattleBufferA + ldr r0, _08030FD8 @ =gActiveBank ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x1 @@ -5076,17 +5076,17 @@ sub_8030FAC: @ 8030FAC cmp r0, 0 beq _08030FDC adds r0, r2, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08030FDC - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted b _08031044 .align 2, 0 -_08030FD4: .4byte gUnknown_02023A60 -_08030FD8: .4byte gUnknown_02024A60 +_08030FD4: .4byte gBattleBufferA +_08030FD8: .4byte gActiveBank _08030FDC: - ldr r5, _0803104C @ =gUnknown_02024A60 + ldr r5, _0803104C @ =gActiveBank ldrb r1, [r5] lsls r0, r1, 1 adds r0, r1 @@ -5132,7 +5132,7 @@ _08030FDC: movs r1, 0x5D strb r1, [r0, 0x5] _08031038: - ldr r0, _0803105C @ =gUnknown_03004330 + ldr r0, _0803105C @ =gBattleBankFunc ldrb r1, [r5] lsls r1, 2 adds r1, r0 @@ -5143,18 +5143,18 @@ _08031044: pop {r0} bx r0 .align 2, 0 -_0803104C: .4byte gUnknown_02024A60 +_0803104C: .4byte gActiveBank _08031050: .4byte 0x02017810 _08031054: .4byte gUnknown_02023A64 _08031058: .4byte gUnknown_02024E68 -_0803105C: .4byte gUnknown_03004330 +_0803105C: .4byte gBattleBankFunc _08031060: .4byte sub_8031064 thumb_func_end sub_8030FAC thumb_func_start sub_8031064 sub_8031064: @ 8031064 push {r4,lr} - ldr r4, _0803109C @ =gUnknown_02024A60 + ldr r4, _0803109C @ =gActiveBank ldrb r1, [r4] lsls r0, r1, 1 adds r0, r1 @@ -5175,20 +5175,20 @@ sub_8031064: @ 8031064 adds r1, r3 movs r0, 0 strb r0, [r1, 0x5] - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted _08031094: pop {r4} pop {r0} bx r0 .align 2, 0 -_0803109C: .4byte gUnknown_02024A60 +_0803109C: .4byte gActiveBank _080310A0: .4byte 0x02017810 thumb_func_end sub_8031064 thumb_func_start sub_80310A4 sub_80310A4: @ 80310A4 push {lr} - ldr r0, _080310DC @ =gUnknown_02024A60 + ldr r0, _080310DC @ =gActiveBank ldrb r3, [r0] lsls r0, r3, 1 adds r0, r3 @@ -5211,11 +5211,11 @@ sub_80310A4: @ 80310A4 ldr r1, _080310EC @ =sub_8044CA0 str r1, [r0] _080310D2: - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted pop {r0} bx r0 .align 2, 0 -_080310DC: .4byte gUnknown_02024A60 +_080310DC: .4byte gActiveBank _080310E0: .4byte 0x02017810 _080310E4: .4byte gTasks _080310E8: .4byte gUnknown_02024E68 @@ -5225,32 +5225,32 @@ _080310EC: .4byte sub_8044CA0 thumb_func_start sub_80310F0 sub_80310F0: @ 80310F0 push {r4,lr} - ldr r4, _08031110 @ =gUnknown_02024A60 + ldr r4, _08031110 @ =gActiveBank ldrb r0, [r4] movs r1, 0x1 bl dp11b_obj_free ldrb r0, [r4] movs r1, 0 bl dp11b_obj_free - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted pop {r4} pop {r0} bx r0 .align 2, 0 -_08031110: .4byte gUnknown_02024A60 +_08031110: .4byte gActiveBank thumb_func_end sub_80310F0 - thumb_func_start dp01t_33_1_enemy_move -dp01t_33_1_enemy_move: @ 8031114 + thumb_func_start PlayerHandleSpriteInvisibility +PlayerHandleSpriteInvisibility: @ 8031114 push {r4,lr} - ldr r4, _08031164 @ =gUnknown_02024A60 + ldr r4, _08031164 @ =gActiveBank ldrb r0, [r4] bl sub_8078874 lsls r0, 24 cmp r0, 0 beq _0803115A ldr r3, _08031168 @ =gSprites - ldr r0, _0803116C @ =gUnknown_02024BE0 + ldr r0, _0803116C @ =gObjectBankIDs ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] @@ -5258,7 +5258,7 @@ dp01t_33_1_enemy_move: @ 8031114 adds r2, r0 lsls r2, 2 adds r2, r3 - ldr r0, _08031170 @ =gUnknown_02023A60 + ldr r0, _08031170 @ =gBattleBufferA lsls r1, 9 adds r0, 0x1 adds r1, r0 @@ -5276,28 +5276,28 @@ dp01t_33_1_enemy_move: @ 8031114 ldrb r0, [r4] bl sub_8031F88 _0803115A: - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted pop {r4} pop {r0} bx r0 .align 2, 0 -_08031164: .4byte gUnknown_02024A60 +_08031164: .4byte gActiveBank _08031168: .4byte gSprites -_0803116C: .4byte gUnknown_02024BE0 -_08031170: .4byte gUnknown_02023A60 - thumb_func_end dp01t_33_1_enemy_move +_0803116C: .4byte gObjectBankIDs +_08031170: .4byte gBattleBufferA + thumb_func_end PlayerHandleSpriteInvisibility - thumb_func_start bx_exec_buffer_A_ch0_tbl1 -bx_exec_buffer_A_ch0_tbl1: @ 8031174 + thumb_func_start PlayerHandleBattleAnimation +PlayerHandleBattleAnimation: @ 8031174 push {r4-r6,lr} sub sp, 0x4 - ldr r6, _080311B8 @ =gUnknown_02024A60 + ldr r6, _080311B8 @ =gActiveBank ldrb r0, [r6] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 bne _080311CC - ldr r5, _080311BC @ =gUnknown_02023A60 + ldr r5, _080311BC @ =gBattleBufferA ldrb r2, [r6] lsls r1, r2, 9 adds r0, r5, 0x1 @@ -5318,13 +5318,13 @@ bx_exec_buffer_A_ch0_tbl1: @ 8031174 lsls r0, 24 cmp r0, 0 beq _080311C0 - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted b _080311CC .align 2, 0 -_080311B8: .4byte gUnknown_02024A60 -_080311BC: .4byte gUnknown_02023A60 +_080311B8: .4byte gActiveBank +_080311BC: .4byte gBattleBufferA _080311C0: - ldr r0, _080311D4 @ =gUnknown_03004330 + ldr r0, _080311D4 @ =gBattleBankFunc ldrb r1, [r6] lsls r1, 2 adds r1, r0 @@ -5336,15 +5336,15 @@ _080311CC: pop {r0} bx r0 .align 2, 0 -_080311D4: .4byte gUnknown_03004330 +_080311D4: .4byte gBattleBankFunc _080311D8: .4byte sub_802E460 - thumb_func_end bx_exec_buffer_A_ch0_tbl1 + thumb_func_end PlayerHandleBattleAnimation - thumb_func_start dp01t_35_1_link_standby_message_and_free_vram -dp01t_35_1_link_standby_message_and_free_vram: @ 80311DC + thumb_func_start PlayerHandleLinkStandbyMsg +PlayerHandleLinkStandbyMsg: @ 80311DC push {r4,lr} - ldr r1, _080311FC @ =gUnknown_02023A60 - ldr r0, _08031200 @ =gUnknown_02024A60 + ldr r1, _080311FC @ =gBattleBufferA + ldr r0, _08031200 @ =gActiveBank ldrb r0, [r0] lsls r0, 9 adds r1, 0x1 @@ -5358,8 +5358,8 @@ dp01t_35_1_link_standby_message_and_free_vram: @ 80311DC beq _0803120A b _0803122C .align 2, 0 -_080311FC: .4byte gUnknown_02023A60 -_08031200: .4byte gUnknown_02024A60 +_080311FC: .4byte gBattleBufferA +_08031200: .4byte gActiveBank _08031204: cmp r0, 0x2 beq _08031228 @@ -5367,7 +5367,7 @@ _08031204: _0803120A: bl b_link_standby_message _0803120E: - ldr r4, _08031224 @ =gUnknown_02024A60 + ldr r4, _08031224 @ =gActiveBank ldrb r0, [r4] movs r1, 0x1 bl dp11b_obj_free @@ -5376,21 +5376,21 @@ _0803120E: bl dp11b_obj_free b _0803122C .align 2, 0 -_08031224: .4byte gUnknown_02024A60 +_08031224: .4byte gActiveBank _08031228: bl b_link_standby_message _0803122C: - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted pop {r4} pop {r0} bx r0 - thumb_func_end dp01t_35_1_link_standby_message_and_free_vram + thumb_func_end PlayerHandleLinkStandbyMsg - thumb_func_start sub_8031238 -sub_8031238: @ 8031238 + thumb_func_start PlayerHandleResetActionMoveSelection +PlayerHandleResetActionMoveSelection: @ 8031238 push {r4,lr} - ldr r1, _08031258 @ =gUnknown_02023A60 - ldr r4, _0803125C @ =gUnknown_02024A60 + ldr r1, _08031258 @ =gBattleBufferA + ldr r4, _0803125C @ =gActiveBank ldrb r3, [r4] lsls r0, r3, 9 adds r1, 0x1 @@ -5404,50 +5404,50 @@ sub_8031238: @ 8031238 beq _08031266 b _08031290 .align 2, 0 -_08031258: .4byte gUnknown_02023A60 -_0803125C: .4byte gUnknown_02024A60 +_08031258: .4byte gBattleBufferA +_0803125C: .4byte gActiveBank _08031260: cmp r2, 0x2 beq _08031288 b _08031290 _08031266: - ldr r0, _08031278 @ =gUnknown_02024E60 + ldr r0, _08031278 @ =gActionSelectionCursor adds r0, r3, r0 strb r2, [r0] - ldr r1, _0803127C @ =gUnknown_02024E64 + ldr r1, _0803127C @ =gMoveSelectionCursor ldrb r0, [r4] adds r0, r1 strb r2, [r0] b _08031290 .align 2, 0 -_08031278: .4byte gUnknown_02024E60 -_0803127C: .4byte gUnknown_02024E64 +_08031278: .4byte gActionSelectionCursor +_0803127C: .4byte gMoveSelectionCursor _08031280: - ldr r0, _08031284 @ =gUnknown_02024E60 + ldr r0, _08031284 @ =gActionSelectionCursor b _0803128A .align 2, 0 -_08031284: .4byte gUnknown_02024E60 +_08031284: .4byte gActionSelectionCursor _08031288: - ldr r0, _0803129C @ =gUnknown_02024E64 + ldr r0, _0803129C @ =gMoveSelectionCursor _0803128A: adds r0, r3, r0 movs r1, 0 strb r1, [r0] _08031290: - bl dp01_tbl1_exec_completed + bl PlayerBufferExecCompleted pop {r4} pop {r0} bx r0 .align 2, 0 -_0803129C: .4byte gUnknown_02024E64 - thumb_func_end sub_8031238 +_0803129C: .4byte gMoveSelectionCursor + thumb_func_end PlayerHandleResetActionMoveSelection thumb_func_start sub_80312A0 sub_80312A0: @ 80312A0 push {r4,lr} - ldr r2, _080312D8 @ =gUnknown_02024D26 - ldr r1, _080312DC @ =gUnknown_02023A60 - ldr r4, _080312E0 @ =gUnknown_02024A60 + ldr r2, _080312D8 @ =gBattleOutcome + ldr r1, _080312DC @ =gBattleBufferA + ldr r4, _080312E0 @ =gActiveBank ldrb r0, [r4] lsls r0, 9 adds r1, 0x1 @@ -5458,8 +5458,8 @@ sub_80312A0: @ 80312A0 bl FadeOutMapMusic movs r0, 0x3 bl BeginFastPaletteFade - bl dp01_tbl1_exec_completed - ldr r1, _080312E4 @ =gUnknown_03004330 + bl PlayerBufferExecCompleted + ldr r1, _080312E4 @ =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 adds r0, r1 @@ -5469,10 +5469,10 @@ sub_80312A0: @ 80312A0 pop {r0} bx r0 .align 2, 0 -_080312D8: .4byte gUnknown_02024D26 -_080312DC: .4byte gUnknown_02023A60 -_080312E0: .4byte gUnknown_02024A60 -_080312E4: .4byte gUnknown_03004330 +_080312D8: .4byte gBattleOutcome +_080312DC: .4byte gBattleBufferA +_080312E0: .4byte gActiveBank +_080312E4: .4byte gBattleBankFunc _080312E8: .4byte sub_802D18C thumb_func_end sub_80312A0 diff --git a/asm/battle_7.s b/asm/battle_7.s deleted file mode 100644 index 593a5bbb1..000000000 --- a/asm/battle_7.s +++ /dev/null @@ -1,4290 +0,0 @@ - .include "constants/gba_constants.inc" - .include "constants/species_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_80312F0 -sub_80312F0: @ 80312F0 - push {r4-r7,lr} - adds r6, r0, 0 - ldrh r0, [r6, 0x30] - lsls r0, 24 - lsrs r0, 24 - ldr r7, _08031334 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r5, r1, 2 - adds r3, r5, r7 - adds r0, r3, 0 - adds r0, 0x3F - ldrb r4, [r0] - lsls r0, r4, 26 - cmp r0, 0 - bge _08031354 - adds r0, r3, 0 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - blt _08031354 - adds r1, r3, 0 - adds r1, 0x2C - ldrb r2, [r1] - lsls r0, r2, 25 - cmp r0, 0 - bge _08031338 - movs r0, 0x41 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - b _08031354 - .align 2, 0 -_08031334: .4byte gSprites -_08031338: - lsls r0, r4, 27 - cmp r0, 0 - bge _08031354 - adds r0, r7, 0 - adds r0, 0x1C - adds r0, r5, r0 - ldr r1, _0803135C @ =sub_80105DC - str r1, [r0] - adds r0, r3, 0 - movs r1, 0 - bl StartSpriteAffineAnim - ldr r0, _08031360 @ =SpriteCallbackDummy - str r0, [r6, 0x1C] -_08031354: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0803135C: .4byte sub_80105DC -_08031360: .4byte SpriteCallbackDummy - thumb_func_end sub_80312F0 - - thumb_func_start unref_sub_8031364 -unref_sub_8031364: @ 8031364 - push {r4,lr} - adds r4, r0, 0 - lsls r1, 24 - adds r3, r4, 0 - adds r3, 0x2C - ldrb r0, [r3] - movs r2, 0x40 - orrs r0, r2 - strb r0, [r3] - ldr r0, _08031388 @ =SpriteCallbackDummy - str r0, [r4, 0x1C] - cmp r1, 0 - bne _0803138C - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - b _08031394 - .align 2, 0 -_08031388: .4byte SpriteCallbackDummy -_0803138C: - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim -_08031394: - adds r0, r4, 0 - bl AnimateSprite - pop {r4} - pop {r0} - bx r0 - thumb_func_end unref_sub_8031364 - - thumb_func_start sub_80313A0 -sub_80313A0: @ 80313A0 - push {lr} - adds r2, r0, 0 - ldr r0, _080313C8 @ =gUnknown_02024DE8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080313C2 - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x24] - adds r0, r1 - strh r0, [r2, 0x24] - lsls r0, 16 - cmp r0, 0 - bne _080313C2 - ldr r0, _080313CC @ =SpriteCallbackDummy - str r0, [r2, 0x1C] -_080313C2: - pop {r0} - bx r0 - .align 2, 0 -_080313C8: .4byte gUnknown_02024DE8 -_080313CC: .4byte SpriteCallbackDummy - thumb_func_end sub_80313A0 - - thumb_func_start move_anim_start_t2_for_situation -move_anim_start_t2_for_situation: @ 80313D0 - push {r4-r6,lr} - adds r4, r1, 0 - lsls r0, 24 - ldr r5, _08031400 @ =gUnknown_02024A60 - ldrb r2, [r5] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - ldr r6, _08031404 @ =0x02017810 - adds r1, r6 - ldrb r2, [r1] - movs r3, 0x10 - orrs r2, r3 - strb r2, [r1] - cmp r0, 0 - bne _0803144C - cmp r4, 0x20 - bne _08031408 - ldrb r0, [r5] - movs r1, 0x6 - bl move_anim_start_t2 - b _080314C2 - .align 2, 0 -_08031400: .4byte gUnknown_02024A60 -_08031404: .4byte 0x02017810 -_08031408: - cmp r4, 0x8 - beq _08031414 - movs r0, 0x80 - ands r0, r4 - cmp r0, 0 - beq _0803141E -_08031414: - ldrb r0, [r5] - movs r1, 0 - bl move_anim_start_t2 - b _080314C2 -_0803141E: - cmp r4, 0x10 - bne _0803142C - ldrb r0, [r5] - movs r1, 0x2 - bl move_anim_start_t2 - b _080314C2 -_0803142C: - movs r0, 0x7 - ands r0, r4 - cmp r0, 0 - beq _0803143E - ldrb r0, [r5] - movs r1, 0x4 - bl move_anim_start_t2 - b _080314C2 -_0803143E: - cmp r4, 0x40 - bne _080314AE - ldrb r0, [r5] - movs r1, 0x5 - bl move_anim_start_t2 - b _080314C2 -_0803144C: - movs r0, 0xF0 - lsls r0, 12 - ands r0, r4 - cmp r0, 0 - beq _08031460 - ldrb r0, [r5] - movs r1, 0x3 - bl move_anim_start_t2 - b _080314C2 -_08031460: - movs r0, 0x7 - ands r0, r4 - cmp r0, 0 - beq _08031472 - ldrb r0, [r5] - movs r1, 0x1 - bl move_anim_start_t2 - b _080314C2 -_08031472: - movs r0, 0x80 - lsls r0, 21 - ands r0, r4 - cmp r0, 0 - beq _08031486 - ldrb r0, [r5] - movs r1, 0x7 - bl move_anim_start_t2 - b _080314C2 -_08031486: - movs r0, 0x80 - lsls r0, 20 - ands r0, r4 - cmp r0, 0 - beq _0803149A - ldrb r0, [r5] - movs r1, 0x8 - bl move_anim_start_t2 - b _080314C2 -_0803149A: - movs r0, 0xE0 - lsls r0, 8 - ands r0, r4 - cmp r0, 0 - beq _080314AE - ldrb r0, [r5] - movs r1, 0x9 - bl move_anim_start_t2 - b _080314C2 -_080314AE: - ldrb r0, [r5] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r2, [r1] - movs r0, 0x11 - negs r0, r0 - ands r0, r2 - strb r0, [r1] -_080314C2: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end move_anim_start_t2_for_situation - - thumb_func_start move_anim_start_t3 -move_anim_start_t3: @ 80314C8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r4, [sp, 0x20] - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - lsls r2, 24 - lsrs r2, 24 - mov r10, r2 - lsls r3, 24 - lsrs r5, r3, 24 - lsls r4, 16 - lsrs r7, r4, 16 - cmp r5, 0 - bne _0803150C - movs r0, 0x80 - ands r0, r7 - cmp r0, 0 - beq _0803150C - ldr r0, _08031508 @ =gBattleMonForms - adds r0, r6, r0 - movs r2, 0x7F - adds r1, r7, 0 - ands r1, r2 - strb r1, [r0] - movs r0, 0x1 - b _080315C2 - .align 2, 0 -_08031508: .4byte gBattleMonForms -_0803150C: - lsls r1, r6, 2 - ldr r0, _08031530 @ =0x02017800 - adds r4, r1, r0 - ldrb r1, [r4] - movs r0, 0x4 - mov r8, r0 - ands r0, r1 - cmp r0, 0 - beq _08031578 - adds r0, r5, 0 - bl sub_803163C - lsls r0, 24 - cmp r0, 0 - bne _08031534 - movs r0, 0x1 - b _080315C2 - .align 2, 0 -_08031530: .4byte 0x02017800 -_08031534: - ldrb r1, [r4] - mov r0, r8 - ands r0, r1 - cmp r0, 0 - beq _08031578 - cmp r5, 0x2 - bne _08031578 - ldr r1, _08031570 @ =gSprites - ldr r0, _08031574 @ =gUnknown_02024BE0 - adds r0, r6, r0 - ldrb r2, [r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - bge _08031578 - adds r0, r6, 0 - movs r1, 0x1 - bl refresh_graphics_maybe - adds r0, r6, 0 - bl sub_80324E0 - movs r0, 0x1 - b _080315C2 - .align 2, 0 -_08031570: .4byte gSprites -_08031574: .4byte gUnknown_02024BE0 -_08031578: - ldr r0, _080315D0 @ =gBattleAnimPlayerMonIndex - mov r1, r9 - strb r1, [r0] - ldr r0, _080315D4 @ =gBattleAnimEnemyMonIndex - mov r1, r10 - strb r1, [r0] - ldr r4, _080315D8 @ =0x02017840 - strh r7, [r4] - ldr r0, _080315DC @ =gBattleAnims_Unknown1 - adds r1, r5, 0 - movs r2, 0 - bl DoMoveAnim - ldr r0, _080315E0 @ =sub_80315E8 - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080315E4 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r6, [r1, 0x8] - movs r0, 0x8 - ldrsh r1, [r1, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - subs r4, 0x30 - adds r0, r4 - ldrb r1, [r0] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0] - movs r0, 0 -_080315C2: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080315D0: .4byte gBattleAnimPlayerMonIndex -_080315D4: .4byte gBattleAnimEnemyMonIndex -_080315D8: .4byte 0x02017840 -_080315DC: .4byte gBattleAnims_Unknown1 -_080315E0: .4byte sub_80315E8 -_080315E4: .4byte gTasks - thumb_func_end move_anim_start_t3 - - thumb_func_start sub_80315E8 -sub_80315E8: @ 80315E8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0803162C @ =gAnimScriptCallback - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _08031630 @ =gAnimScriptActive - ldrb r0, [r0] - cmp r0, 0 - bne _08031626 - ldr r1, _08031634 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0x8 - ldrsh r0, [r0, r1] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - ldr r0, _08031638 @ =0x02017810 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x21 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - adds r0, r4, 0 - bl DestroyTask -_08031626: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0803162C: .4byte gAnimScriptCallback -_08031630: .4byte gAnimScriptActive -_08031634: .4byte gTasks -_08031638: .4byte 0x02017810 - thumb_func_end sub_80315E8 - - thumb_func_start sub_803163C -sub_803163C: @ 803163C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xD - bgt _08031650 - cmp r0, 0xA - bge _08031654 - cmp r0, 0x2 - beq _08031654 - b _08031658 -_08031650: - cmp r0, 0x11 - bne _08031658 -_08031654: - movs r0, 0x1 - b _0803165A -_08031658: - movs r0, 0 -_0803165A: - pop {r1} - bx r1 - thumb_func_end sub_803163C - - thumb_func_start move_anim_start_t4 -move_anim_start_t4: @ 8031660 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r3, 24 - lsrs r3, 24 - ldr r0, _080316B4 @ =gBattleAnimPlayerMonIndex - strb r1, [r0] - ldr r0, _080316B8 @ =gBattleAnimEnemyMonIndex - strb r2, [r0] - ldr r0, _080316BC @ =gBattleAnims_Unknown2 - adds r1, r3, 0 - movs r2, 0 - bl DoMoveAnim - ldr r0, _080316C0 @ =sub_80316CC - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080316C4 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x8] - movs r0, 0x8 - ldrsh r1, [r1, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _080316C8 @ =0x02017810 - adds r0, r1 - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080316B4: .4byte gBattleAnimPlayerMonIndex -_080316B8: .4byte gBattleAnimEnemyMonIndex -_080316BC: .4byte gBattleAnims_Unknown2 -_080316C0: .4byte sub_80316CC -_080316C4: .4byte gTasks -_080316C8: .4byte 0x02017810 - thumb_func_end move_anim_start_t4 - - thumb_func_start sub_80316CC -sub_80316CC: @ 80316CC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08031710 @ =gAnimScriptCallback - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _08031714 @ =gAnimScriptActive - ldrb r0, [r0] - cmp r0, 0 - bne _0803170A - ldr r1, _08031718 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0x8 - ldrsh r0, [r0, r1] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - ldr r0, _0803171C @ =0x02017810 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x41 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - adds r0, r4, 0 - bl DestroyTask -_0803170A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08031710: .4byte gAnimScriptCallback -_08031714: .4byte gAnimScriptActive -_08031718: .4byte gTasks -_0803171C: .4byte 0x02017810 - thumb_func_end sub_80316CC - - thumb_func_start sub_8031720 -sub_8031720: @ 8031720 - movs r0, 0 - bx lr - thumb_func_end sub_8031720 - - thumb_func_start mplay_80342A4 -mplay_80342A4: @ 8031724 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r5, 0 - bl IsSEPlaying - lsls r0, 24 - cmp r0, 0 - beq _08031764 - lsls r1, r4, 1 - adds r1, r4 - lsls r1, 2 - ldr r2, _0803176C @ =0x02017810 - adds r1, r2 - ldrb r0, [r1, 0x8] - adds r0, 0x1 - strb r0, [r1, 0x8] - ldr r0, _08031770 @ =gUnknown_02024A60 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x8] - cmp r0, 0x1D - bls _08031768 - ldr r0, _08031774 @ =gMPlay_SE1 - bl m4aMPlayStop - ldr r0, _08031778 @ =gMPlay_SE2 - bl m4aMPlayStop -_08031764: - cmp r5, 0 - beq _0803177C -_08031768: - movs r0, 0x1 - b _0803178A - .align 2, 0 -_0803176C: .4byte 0x02017810 -_08031770: .4byte gUnknown_02024A60 -_08031774: .4byte gMPlay_SE1 -_08031778: .4byte gMPlay_SE2 -_0803177C: - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - ldr r1, _08031790 @ =0x02017810 - adds r0, r1 - strb r5, [r0, 0x8] - movs r0, 0 -_0803178A: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08031790: .4byte 0x02017810 - thumb_func_end mplay_80342A4 - - thumb_func_start sub_8031794 -sub_8031794: @ 8031794 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - mov r8, r0 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - movs r1, 0 - bl GetMonData - str r0, [sp, 0xC] - mov r0, r9 - lsls r1, r0, 2 - ldr r0, _080317D0 @ =0x02017800 - adds r2, r1, r0 - ldrh r0, [r2, 0x2] - cmp r0, 0 - bne _080317D4 - mov r0, r8 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r6, r0, 16 - ldr r7, [sp, 0xC] - b _080317DC - .align 2, 0 -_080317D0: .4byte 0x02017800 -_080317D4: - ldrh r6, [r2, 0x2] - ldr r0, _08031838 @ =gUnknown_02024E70 - adds r0, r1, r0 - ldr r7, [r0] -_080317DC: - mov r0, r8 - movs r1, 0x1 - bl GetMonData - mov r10, r0 - mov r0, r9 - bl battle_get_per_side_status - lsls r0, 24 - lsls r5, r6, 3 - ldr r1, _0803183C @ =gMonFrontPicTable - adds r5, r1 - ldr r1, _08031840 @ =gMonFrontPicCoords - lsls r2, r6, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _08031844 @ =gUnknown_081FAF4C - lsrs r0, 22 - adds r0, r4 - ldr r0, [r0] - str r0, [sp] - str r6, [sp, 0x4] - str r7, [sp, 0x8] - adds r0, r5, 0 - bl HandleLoadSpecialPokePic - mov r1, r9 - lsls r2, r1, 4 - movs r0, 0x80 - lsls r0, 1 - adds r7, r2, r0 - lsls r1, 2 - ldr r0, _08031848 @ =0x02017800 - adds r0, r1, r0 - ldrh r0, [r0, 0x2] - str r1, [sp, 0x10] - adds r4, r2, 0 - cmp r0, 0 - bne _0803184C - mov r0, r8 - bl pokemon_get_pal - b _08031856 - .align 2, 0 -_08031838: .4byte gUnknown_02024E70 -_0803183C: .4byte gMonFrontPicTable -_08031840: .4byte gMonFrontPicCoords -_08031844: .4byte gUnknown_081FAF4C -_08031848: .4byte 0x02017800 -_0803184C: - adds r0, r6, 0 - mov r1, r10 - ldr r2, [sp, 0xC] - bl species_and_otid_get_pal -_08031856: - adds r5, r0, 0 - ldr r1, _080318E0 @ =0x02000000 - mov r8, r1 - adds r0, r5, 0 - bl sub_800D238 - mov r0, r8 - adds r1, r7, 0 - movs r2, 0x20 - bl LoadPalette - adds r1, r4, 0 - adds r1, 0x80 - mov r0, r8 - movs r2, 0x20 - bl LoadPalette - ldr r0, _080318E4 @ =SPECIES_CASTFORM - cmp r6, r0 - bne _080318A2 - subs r0, 0x81 - adds r7, r4, r0 - movs r4, 0xB2 - lsls r4, 9 - add r4, r8 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_800D238 - ldr r0, _080318E8 @ =gBattleMonForms - add r0, r9 - ldrb r0, [r0] - lsls r0, 5 - adds r0, r4 - adds r1, r7, 0 - movs r2, 0x20 - bl LoadPalette -_080318A2: - movs r0, 0xBC - lsls r0, 9 - add r0, r8 - ldr r1, [sp, 0x10] - adds r0, r1, r0 - ldrh r0, [r0, 0x2] - cmp r0, 0 - beq _080318CE - ldr r3, _080318EC @ =0x00007fff - adds r0, r7, 0 - movs r1, 0x10 - movs r2, 0x6 - bl BlendPalette - lsls r1, r7, 1 - ldr r0, _080318F0 @ =gPlttBufferFaded - adds r0, r1, r0 - ldr r2, _080318F4 @ =gPlttBufferUnfaded - adds r1, r2 - ldr r2, _080318F8 @ =REG_BG0CNT - bl CpuSet -_080318CE: - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080318E0: .4byte 0x02000000 -_080318E4: .4byte SPECIES_CASTFORM -_080318E8: .4byte gBattleMonForms -_080318EC: .4byte 0x00007fff -_080318F0: .4byte gPlttBufferFaded -_080318F4: .4byte gPlttBufferUnfaded -_080318F8: .4byte REG_BG0CNT - thumb_func_end sub_8031794 - - thumb_func_start sub_80318FC -sub_80318FC: @ 80318FC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - mov r8, r0 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - movs r1, 0 - bl GetMonData - str r0, [sp, 0xC] - mov r0, r9 - lsls r1, r0, 2 - ldr r0, _08031938 @ =0x02017800 - adds r2, r1, r0 - ldrh r0, [r2, 0x2] - cmp r0, 0 - bne _0803193C - mov r0, r8 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r6, r0, 16 - ldr r7, [sp, 0xC] - b _08031944 - .align 2, 0 -_08031938: .4byte 0x02017800 -_0803193C: - ldrh r6, [r2, 0x2] - ldr r0, _080319A0 @ =gUnknown_02024E70 - adds r0, r1, r0 - ldr r7, [r0] -_08031944: - mov r0, r8 - movs r1, 0x1 - bl GetMonData - mov r10, r0 - mov r0, r9 - bl battle_get_per_side_status - lsls r0, 24 - lsls r5, r6, 3 - ldr r1, _080319A4 @ =gMonBackPicTable - adds r5, r1 - ldr r1, _080319A8 @ =gMonBackPicCoords - lsls r2, r6, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _080319AC @ =gUnknown_081FAF4C - lsrs r0, 22 - adds r0, r4 - ldr r0, [r0] - str r0, [sp] - str r6, [sp, 0x4] - str r7, [sp, 0x8] - adds r0, r5, 0 - bl HandleLoadSpecialPokePic - mov r1, r9 - lsls r2, r1, 4 - movs r0, 0x80 - lsls r0, 1 - adds r7, r2, r0 - lsls r1, 2 - ldr r0, _080319B0 @ =0x02017800 - adds r0, r1, r0 - ldrh r0, [r0, 0x2] - str r1, [sp, 0x10] - adds r4, r2, 0 - cmp r0, 0 - bne _080319B4 - mov r0, r8 - bl pokemon_get_pal - b _080319BE - .align 2, 0 -_080319A0: .4byte gUnknown_02024E70 -_080319A4: .4byte gMonBackPicTable -_080319A8: .4byte gMonBackPicCoords -_080319AC: .4byte gUnknown_081FAF4C -_080319B0: .4byte 0x02017800 -_080319B4: - adds r0, r6, 0 - mov r1, r10 - ldr r2, [sp, 0xC] - bl species_and_otid_get_pal -_080319BE: - adds r5, r0, 0 - ldr r1, _08031A48 @ =0x02000000 - mov r8, r1 - adds r0, r5, 0 - bl sub_800D238 - mov r0, r8 - adds r1, r7, 0 - movs r2, 0x20 - bl LoadPalette - adds r1, r4, 0 - adds r1, 0x80 - mov r0, r8 - movs r2, 0x20 - bl LoadPalette - ldr r0, _08031A4C @ =SPECIES_CASTFORM - cmp r6, r0 - bne _08031A0A - subs r0, 0x81 - adds r7, r4, r0 - movs r4, 0xB2 - lsls r4, 9 - add r4, r8 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_800D238 - ldr r0, _08031A50 @ =gBattleMonForms - add r0, r9 - ldrb r0, [r0] - lsls r0, 5 - adds r0, r4 - adds r1, r7, 0 - movs r2, 0x20 - bl LoadPalette -_08031A0A: - movs r0, 0xBC - lsls r0, 9 - add r0, r8 - ldr r1, [sp, 0x10] - adds r0, r1, r0 - ldrh r0, [r0, 0x2] - cmp r0, 0 - beq _08031A36 - ldr r3, _08031A54 @ =0x00007fff - adds r0, r7, 0 - movs r1, 0x10 - movs r2, 0x6 - bl BlendPalette - lsls r1, r7, 1 - ldr r0, _08031A58 @ =gPlttBufferFaded - adds r0, r1, r0 - ldr r2, _08031A5C @ =gPlttBufferUnfaded - adds r1, r2 - ldr r2, _08031A60 @ =REG_BG0CNT - bl CpuSet -_08031A36: - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08031A48: .4byte 0x02000000 -_08031A4C: .4byte SPECIES_CASTFORM -_08031A50: .4byte gBattleMonForms -_08031A54: .4byte 0x00007fff -_08031A58: .4byte gPlttBufferFaded -_08031A5C: .4byte gPlttBufferUnfaded -_08031A60: .4byte REG_BG0CNT - thumb_func_end sub_80318FC - - thumb_func_start unref_sub_8031A64 -unref_sub_8031A64: @ 8031A64 - bx lr - thumb_func_end unref_sub_8031A64 - - thumb_func_start nullsub_9 -nullsub_9: @ 8031A68 - bx lr - thumb_func_end nullsub_9 - - thumb_func_start sub_8031A6C -sub_8031A6C: @ 8031A6C - push {r4-r6,lr} - sub sp, 0x10 - adds r4, r0, 0 - adds r0, r1, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r0, 24 - lsrs r0, 24 - bl battle_get_per_side_status - lsls r0, 24 - lsls r6, r4, 3 - ldr r5, _08031ADC @ =gTrainerFrontPicTable - adds r5, r6, r5 - ldr r1, _08031AE0 @ =gTrainerFrontPicCoords - lsls r4, 2 - adds r4, r1 - ldrb r1, [r4] - ldrb r2, [r4, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _08031AE4 @ =gUnknown_081FAF4C - lsrs r0, 22 - adds r0, r4 - ldr r4, [r0] - str r4, [sp] - movs r0, 0 - str r0, [sp, 0x4] - adds r0, r5, 0 - bl DecompressPicFromTable_2 - str r4, [sp, 0x8] - ldrh r2, [r5, 0x4] - ldr r0, _08031AE8 @ =0xffff0000 - ldr r1, [sp, 0xC] - ands r1, r0 - orrs r1, r2 - str r1, [sp, 0xC] - ldrh r2, [r5, 0x6] - lsls r2, 16 - ldr r0, _08031AEC @ =0x0000ffff - ands r0, r1 - orrs r0, r2 - str r0, [sp, 0xC] - add r0, sp, 0x8 - bl LoadCompressedObjectPic - ldr r0, _08031AF0 @ =gTrainerFrontPicPaletteTable - adds r6, r0 - adds r0, r6, 0 - bl LoadCompressedObjectPalette - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08031ADC: .4byte gTrainerFrontPicTable -_08031AE0: .4byte gTrainerFrontPicCoords -_08031AE4: .4byte gUnknown_081FAF4C -_08031AE8: .4byte 0xffff0000 -_08031AEC: .4byte 0x0000ffff -_08031AF0: .4byte gTrainerFrontPicPaletteTable - thumb_func_end sub_8031A6C - - thumb_func_start sub_8031AF4 -sub_8031AF4: @ 8031AF4 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x8 - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 24 - lsrs r5, 24 - adds r0, r5, 0 - bl battle_get_per_side_status - lsls r0, 24 - lsls r1, r4, 3 - mov r8, r1 - ldr r6, _08031B60 @ =gTrainerBackPicTable - add r6, r8 - ldr r1, _08031B64 @ =gTrainerBackPicCoords - lsls r4, 2 - adds r4, r1 - ldrb r1, [r4] - ldrb r2, [r4, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _08031B68 @ =gUnknown_081FAF4C - lsrs r0, 22 - adds r0, r4 - ldr r0, [r0] - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - adds r0, r6, 0 - bl DecompressPicFromTable_2 - ldr r0, _08031B6C @ =gTrainerBackPicPaletteTable - add r8, r0 - mov r1, r8 - ldr r0, [r1] - lsls r5, 20 - movs r1, 0x80 - lsls r1, 17 - adds r5, r1 - lsrs r5, 16 - adds r1, r5, 0 - movs r2, 0x20 - bl LoadCompressedPalette - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08031B60: .4byte gTrainerBackPicTable -_08031B64: .4byte gTrainerBackPicCoords -_08031B68: .4byte gUnknown_081FAF4C -_08031B6C: .4byte gTrainerBackPicPaletteTable - thumb_func_end sub_8031AF4 - - thumb_func_start nullsub_10 -nullsub_10: @ 8031B70 - bx lr - thumb_func_end nullsub_10 - - thumb_func_start sub_8031B74 -sub_8031B74: @ 8031B74 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 16 - ldr r0, _08031B98 @ =gTrainerFrontPicPaletteTable - lsrs r4, 13 - adds r0, r4, r0 - ldrh r0, [r0, 0x4] - bl FreeSpritePaletteByTag - ldr r0, _08031B9C @ =gTrainerFrontPicTable - adds r4, r0 - ldrh r0, [r4, 0x6] - bl FreeSpriteTilesByTag - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08031B98: .4byte gTrainerFrontPicPaletteTable -_08031B9C: .4byte gTrainerFrontPicTable - thumb_func_end sub_8031B74 - - thumb_func_start unref_sub_8031BA0 -unref_sub_8031BA0: @ 8031BA0 - push {r4-r7,lr} - ldr r4, _08031BCC @ =gUnknown_0820A4D4 - adds r0, r4, 0 - bl LoadSpritePalette - adds r4, 0x8 - adds r0, r4, 0 - bl LoadSpritePalette - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - bne _08031BD8 - ldr r0, _08031BD0 @ =gUnknown_0820A47C - bl LoadCompressedObjectPic - ldr r0, _08031BD4 @ =gUnknown_0820A484 - bl LoadCompressedObjectPic - movs r5, 0x2 - b _08031BFA - .align 2, 0 -_08031BCC: .4byte gUnknown_0820A4D4 -_08031BD0: .4byte gUnknown_0820A47C -_08031BD4: .4byte gUnknown_0820A484 -_08031BD8: - ldr r4, _08031C20 @ =gUnknown_0820A48C - adds r0, r4, 0 - bl LoadCompressedObjectPic - adds r4, 0x8 - adds r0, r4, 0 - bl LoadCompressedObjectPic - ldr r4, _08031C24 @ =gUnknown_0820A49C - adds r0, r4, 0 - bl LoadCompressedObjectPic - adds r4, 0x8 - adds r0, r4, 0 - bl LoadCompressedObjectPic - movs r5, 0x4 -_08031BFA: - movs r4, 0 - cmp r4, r5 - bcs _08031C1A - ldr r7, _08031C28 @ =gUnknown_02024A72 - ldr r6, _08031C2C @ =gUnknown_0820A4B4 -_08031C04: - adds r0, r4, r7 - ldrb r0, [r0] - lsls r0, 3 - adds r0, r6 - bl LoadCompressedObjectPic - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _08031C04 -_08031C1A: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08031C20: .4byte gUnknown_0820A48C -_08031C24: .4byte gUnknown_0820A49C -_08031C28: .4byte gUnknown_02024A72 -_08031C2C: .4byte gUnknown_0820A4B4 - thumb_func_end unref_sub_8031BA0 - - thumb_func_start sub_8031C30 -sub_8031C30: @ 8031C30 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - movs r6, 0 - cmp r4, 0 - bne _08031C40 - b _08031D52 -_08031C40: - cmp r4, 0x1 - bne _08031C5C - ldr r4, _08031C58 @ =gUnknown_0820A4D4 - adds r0, r4, 0 - bl LoadSpritePalette - adds r4, 0x8 - adds r0, r4, 0 - bl LoadSpritePalette - b _08031D52 - .align 2, 0 -_08031C58: .4byte gUnknown_0820A4D4 -_08031C5C: - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - bne _08031CC4 - cmp r4, 0x2 - bne _08031C94 - ldr r0, _08031C80 @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08031C88 - ldr r0, _08031C84 @ =gUnknown_0820A4AC - bl LoadCompressedObjectPic - b _08031D52 - .align 2, 0 -_08031C80: .4byte gBattleTypeFlags -_08031C84: .4byte gUnknown_0820A4AC -_08031C88: - ldr r0, _08031C90 @ =gUnknown_0820A47C - bl LoadCompressedObjectPic - b _08031D52 - .align 2, 0 -_08031C90: .4byte gUnknown_0820A47C -_08031C94: - cmp r4, 0x3 - bne _08031CA4 - ldr r0, _08031CA0 @ =gUnknown_0820A484 - bl LoadCompressedObjectPic - b _08031D52 - .align 2, 0 -_08031CA0: .4byte gUnknown_0820A484 -_08031CA4: - cmp r4, 0x4 - bne _08031CB4 - ldr r0, _08031CB0 @ =gUnknown_02024A72 - ldrb r0, [r0] - b _08031D3C - .align 2, 0 -_08031CB0: .4byte gUnknown_02024A72 -_08031CB4: - cmp r4, 0x5 - bne _08031D50 - ldr r0, _08031CC0 @ =gUnknown_02024A72 - ldrb r0, [r0, 0x1] - b _08031D3C - .align 2, 0 -_08031CC0: .4byte gUnknown_02024A72 -_08031CC4: - cmp r4, 0x2 - bne _08031CD4 - ldr r0, _08031CD0 @ =gUnknown_0820A48C - bl LoadCompressedObjectPic - b _08031D52 - .align 2, 0 -_08031CD0: .4byte gUnknown_0820A48C -_08031CD4: - cmp r4, 0x3 - bne _08031CE4 - ldr r0, _08031CE0 @ =gUnknown_0820A494 - bl LoadCompressedObjectPic - b _08031D52 - .align 2, 0 -_08031CE0: .4byte gUnknown_0820A494 -_08031CE4: - cmp r4, 0x4 - bne _08031CF4 - ldr r0, _08031CF0 @ =gUnknown_0820A49C - bl LoadCompressedObjectPic - b _08031D52 - .align 2, 0 -_08031CF0: .4byte gUnknown_0820A49C -_08031CF4: - cmp r4, 0x5 - bne _08031D04 - ldr r0, _08031D00 @ =gUnknown_0820A4A4 - bl LoadCompressedObjectPic - b _08031D52 - .align 2, 0 -_08031D00: .4byte gUnknown_0820A4A4 -_08031D04: - cmp r4, 0x6 - bne _08031D14 - ldr r0, _08031D10 @ =gUnknown_02024A72 - ldrb r0, [r0] - b _08031D3C - .align 2, 0 -_08031D10: .4byte gUnknown_02024A72 -_08031D14: - cmp r4, 0x7 - bne _08031D24 - ldr r0, _08031D20 @ =gUnknown_02024A72 - ldrb r0, [r0, 0x1] - b _08031D3C - .align 2, 0 -_08031D20: .4byte gUnknown_02024A72 -_08031D24: - cmp r4, 0x8 - bne _08031D34 - ldr r0, _08031D30 @ =gUnknown_02024A72 - ldrb r0, [r0, 0x2] - b _08031D3C - .align 2, 0 -_08031D30: .4byte gUnknown_02024A72 -_08031D34: - cmp r5, 0x9 - bne _08031D50 - ldr r0, _08031D48 @ =gUnknown_02024A72 - ldrb r0, [r0, 0x3] -_08031D3C: - lsls r0, 3 - ldr r1, _08031D4C @ =gUnknown_0820A4B4 - adds r0, r1 - bl LoadCompressedObjectPic - b _08031D52 - .align 2, 0 -_08031D48: .4byte gUnknown_02024A72 -_08031D4C: .4byte gUnknown_0820A4B4 -_08031D50: - movs r6, 0x1 -_08031D52: - adds r0, r6, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8031C30 - - thumb_func_start load_gfxc_health_bar -load_gfxc_health_bar: @ 8031D5C - push {lr} - ldr r0, _08031D6C @ =gUnknown_08D09C48 - movs r1, 0x80 - lsls r1, 18 - bl sub_800D238 - pop {r0} - bx r0 - .align 2, 0 -_08031D6C: .4byte gUnknown_08D09C48 - thumb_func_end load_gfxc_health_bar - - thumb_func_start battle_load_something -battle_load_something: @ 8031D70 - push {r4-r6,lr} - adds r5, r0, 0 - adds r4, r1, 0 - movs r6, 0 - ldrb r0, [r5] - cmp r0, 0x6 - bls _08031D80 - b _08031EDE -_08031D80: - lsls r0, 2 - ldr r1, _08031D8C @ =_08031D90 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08031D8C: .4byte _08031D90 - .align 2, 0 -_08031D90: - .4byte _08031DAC - .4byte _08031DB2 - .4byte _08031EBC - .4byte _08031DC8 - .4byte _08031DF8 - .4byte _08031E34 - .4byte _08031ED4 -_08031DAC: - bl sub_8031F0C - b _08031EBC -_08031DB2: - ldrb r0, [r4] - bl sub_8031C30 - lsls r0, 24 - cmp r0, 0 - beq _08031DC0 - b _08031EB8 -_08031DC0: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _08031EDE -_08031DC8: - ldr r0, _08031DE0 @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08031DE4 - ldrb r0, [r4] - cmp r0, 0 - bne _08031DE4 - bl battle_make_oam_safari_battle - b _08031DEA - .align 2, 0 -_08031DE0: .4byte gBattleTypeFlags -_08031DE4: - ldrb r0, [r4] - bl battle_make_oam_normal_battle -_08031DEA: - ldr r2, _08031DF4 @ =gUnknown_03004340 - ldrb r1, [r4] - adds r1, r2 - strb r0, [r1] - b _08031EA6 - .align 2, 0 -_08031DF4: .4byte gUnknown_03004340 -_08031DF8: - ldrb r0, [r4] - bl sub_8043F44 - ldr r0, _08031E18 @ =gUnknown_02024A72 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - cmp r0, 0x1 - bhi _08031E20 - ldr r0, _08031E1C @ =gUnknown_03004340 - adds r0, r1, r0 - ldrb r0, [r0] - movs r1, 0 - bl nullsub_11 - b _08031EA6 - .align 2, 0 -_08031E18: .4byte gUnknown_02024A72 -_08031E1C: .4byte gUnknown_03004340 -_08031E20: - ldr r0, _08031E30 @ =gUnknown_03004340 - adds r0, r1, r0 - ldrb r0, [r0] - movs r1, 0x1 - bl nullsub_11 - b _08031EA6 - .align 2, 0 -_08031E30: .4byte gUnknown_03004340 -_08031E34: - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08031E7C - ldr r0, _08031E6C @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08031E9A - ldr r0, _08031E70 @ =gUnknown_03004340 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - ldr r2, _08031E74 @ =gUnknown_02024A6A - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, _08031E78 @ =gPlayerParty - adds r1, r2 - movs r2, 0 - bl sub_8045A5C - b _08031E9A - .align 2, 0 -_08031E6C: .4byte gBattleTypeFlags -_08031E70: .4byte gUnknown_03004340 -_08031E74: .4byte gUnknown_02024A6A -_08031E78: .4byte gPlayerParty -_08031E7C: - ldr r0, _08031EC4 @ =gUnknown_03004340 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - ldr r2, _08031EC8 @ =gUnknown_02024A6A - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, _08031ECC @ =gEnemyParty - adds r1, r2 - movs r2, 0 - bl sub_8045A5C -_08031E9A: - ldr r1, _08031EC4 @ =gUnknown_03004340 - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - bl sub_8043DB0 -_08031EA6: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r1, _08031ED0 @ =gUnknown_02024A68 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bne _08031EDE -_08031EB8: - movs r0, 0 - strb r0, [r4] -_08031EBC: - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - b _08031EDE - .align 2, 0 -_08031EC4: .4byte gUnknown_03004340 -_08031EC8: .4byte gUnknown_02024A6A -_08031ECC: .4byte gEnemyParty -_08031ED0: .4byte gUnknown_02024A68 -_08031ED4: - bl sub_80327CC - bl sub_8094958 - movs r6, 0x1 -_08031EDE: - adds r0, r6, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end battle_load_something - - thumb_func_start sub_8031EE8 -sub_8031EE8: @ 8031EE8 - push {r4,lr} - ldr r4, _08031F08 @ =0x02017810 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x30 - bl memset - adds r4, 0x30 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x10 - bl memset - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08031F08: .4byte 0x02017810 - thumb_func_end sub_8031EE8 - - thumb_func_start sub_8031F0C -sub_8031F0C: @ 8031F0C - push {lr} - bl sub_8031EE8 - ldr r0, _08031F20 @ =0x02017800 - movs r1, 0 - movs r2, 0x10 - bl memset - pop {r0} - bx r0 - .align 2, 0 -_08031F20: .4byte 0x02017800 - thumb_func_end sub_8031F0C - - thumb_func_start sub_8031F24 -sub_8031F24: @ 8031F24 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r4, 0 - ldr r5, _08031F78 @ =gUnknown_02024A68 - ldrb r0, [r5] - cmp r4, r0 - bge _08031F6E - ldr r0, _08031F7C @ =gSprites - mov r8, r0 - movs r7, 0x1 - movs r0, 0x2 - negs r0, r0 - mov r12, r0 - ldr r6, _08031F80 @ =gUnknown_02024BE0 - ldr r3, _08031F84 @ =0x02017800 -_08031F44: - adds r0, r4, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - adds r0, 0x3E - ldrb r1, [r0] - lsls r1, 29 - lsrs r1, 31 - ands r1, r7 - ldrb r2, [r3] - mov r0, r12 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - adds r3, 0x4 - adds r4, 0x1 - ldrb r0, [r5] - cmp r4, r0 - blt _08031F44 -_08031F6E: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08031F78: .4byte gUnknown_02024A68 -_08031F7C: .4byte gSprites -_08031F80: .4byte gUnknown_02024BE0 -_08031F84: .4byte 0x02017800 - thumb_func_end sub_8031F24 - - thumb_func_start sub_8031F88 -sub_8031F88: @ 8031F88 - lsls r0, 24 - lsrs r0, 24 - lsls r3, r0, 2 - ldr r1, _08031FB8 @ =0x02017800 - adds r3, r1 - ldr r2, _08031FBC @ =gSprites - ldr r1, _08031FC0 @ =gUnknown_02024BE0 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - lsls r1, 29 - lsrs r1, 31 - ldrb r2, [r3] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bx lr - .align 2, 0 -_08031FB8: .4byte 0x02017800 -_08031FBC: .4byte gSprites -_08031FC0: .4byte gUnknown_02024BE0 - thumb_func_end sub_8031F88 - - thumb_func_start sub_8031FC4 -sub_8031FC4: @ 8031FC4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0xC] - lsls r2, 24 - cmp r2, 0 - beq _08032088 - ldr r0, _08032064 @ =gUnknown_02024BE0 - mov r1, r8 - adds r6, r1, r0 - ldrb r1, [r6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r7, _08032068 @ =gSprites - adds r0, r7 - ldr r4, _0803206C @ =0x02017840 - ldrb r1, [r4] - bl StartSpriteAnim - mov r2, r8 - lsls r0, r2, 20 - movs r5, 0x80 - lsls r5, 17 - adds r0, r5 - lsrs r5, r0, 16 - ldrh r0, [r4] - lsls r0, 5 - ldr r2, _08032070 @ =0xffffebc0 - adds r1, r4, r2 - adds r0, r1 - adds r1, r5, 0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _08032074 @ =gBattleMonForms - add r0, r8 - ldrh r1, [r4] - strb r1, [r0] - mov r1, r8 - lsls r0, r1, 2 - subs r4, 0x40 - adds r0, r4 - ldrh r0, [r0, 0x2] - cmp r0, 0 - beq _0803204C - ldr r3, _08032078 @ =0x00007fff - adds r0, r5, 0 - movs r1, 0x10 - movs r2, 0x6 - bl BlendPalette - lsls r1, r5, 1 - ldr r0, _0803207C @ =gPlttBufferFaded - adds r0, r1, r0 - ldr r2, _08032080 @ =gPlttBufferUnfaded - adds r1, r2 - ldr r2, _08032084 @ =REG_BG0CNT - bl CpuSet -_0803204C: - mov r0, r8 - bl sub_8077F68 - ldrb r2, [r6] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r7 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x22] - b _080322F6 - .align 2, 0 -_08032064: .4byte gUnknown_02024BE0 -_08032068: .4byte gSprites -_0803206C: .4byte 0x02017840 -_08032070: .4byte 0xffffebc0 -_08032074: .4byte gBattleMonForms -_08032078: .4byte 0x00007fff -_0803207C: .4byte gPlttBufferFaded -_08032080: .4byte gPlttBufferUnfaded -_08032084: .4byte REG_BG0CNT -_08032088: - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080320D0 - movs r2, 0 - mov r10, r2 - ldr r5, _080320C0 @ =0x02019348 - ldrh r7, [r5, 0x2] - ldr r4, [r5, 0x8] - mov r9, r4 - ldr r6, [r5, 0xC] - lsls r0, r7, 3 - ldr r1, _080320C4 @ =gMonBackPicTable - adds r0, r1 - ldr r1, _080320C8 @ =gMonBackPicCoords - lsls r2, r7, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _080320CC @ =gUnknown_081FAF4C - ldr r4, [r4] - str r4, [sp] - str r7, [sp, 0x4] - ldr r4, [r5, 0x10] - b _08032184 - .align 2, 0 -_080320C0: .4byte 0x02019348 -_080320C4: .4byte gMonBackPicTable -_080320C8: .4byte gMonBackPicCoords -_080320CC: .4byte gUnknown_081FAF4C -_080320D0: - mov r0, r8 - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r0, [sp, 0xC] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08032104 - ldr r1, _080320FC @ =gUnknown_02024A6A - ldr r5, [sp, 0xC] - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08032100 @ =gEnemyParty - b _08032114 - .align 2, 0 -_080320FC: .4byte gUnknown_02024A6A -_08032100: .4byte gEnemyParty -_08032104: - ldr r1, _0803218C @ =gUnknown_02024A6A - ldr r2, [sp, 0xC] - lsls r0, r2, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08032190 @ =gPlayerParty -_08032114: - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r7, r0, 16 - mov r0, r8 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080321A4 - ldr r0, _0803218C @ =gUnknown_02024A6A - mov r5, r8 - lsls r4, r5, 1 - adds r4, r0 - ldrh r0, [r4] - movs r6, 0x64 - muls r0, r6 - ldr r5, _08032190 @ =gPlayerParty - adds r0, r5 - movs r1, 0 - bl GetMonData - mov r9, r0 - ldrh r0, [r4] - muls r0, r6 - adds r0, r5 - movs r1, 0x1 - bl GetMonData - adds r6, r0, 0 - lsls r0, r7, 3 - ldr r1, _08032194 @ =gMonBackPicTable - adds r0, r1 - ldr r1, _08032198 @ =gMonBackPicCoords - lsls r2, r7, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _0803219C @ =gUnknown_081FAF4C - mov r12, r4 - mov r5, r10 - lsls r4, r5, 2 - add r4, r12 - ldr r4, [r4] - str r4, [sp] - str r7, [sp, 0x4] - ldr r4, _080321A0 @ =gUnknown_02024E70 - mov r12, r4 - mov r5, r8 - lsls r4, r5, 2 - add r4, r12 - ldr r4, [r4] -_08032184: - str r4, [sp, 0x8] - bl HandleLoadSpecialPokePic - b _08032202 - .align 2, 0 -_0803218C: .4byte gUnknown_02024A6A -_08032190: .4byte gPlayerParty -_08032194: .4byte gMonBackPicTable -_08032198: .4byte gMonBackPicCoords -_0803219C: .4byte gUnknown_081FAF4C -_080321A0: .4byte gUnknown_02024E70 -_080321A4: - ldr r0, _08032308 @ =gUnknown_02024A6A - mov r1, r8 - lsls r4, r1, 1 - adds r4, r0 - ldrh r0, [r4] - movs r6, 0x64 - muls r0, r6 - ldr r5, _0803230C @ =gEnemyParty - adds r0, r5 - movs r1, 0 - bl GetMonData - mov r9, r0 - ldrh r0, [r4] - muls r0, r6 - adds r0, r5 - movs r1, 0x1 - bl GetMonData - adds r6, r0, 0 - lsls r0, r7, 3 - ldr r1, _08032310 @ =gMonFrontPicTable - adds r0, r1 - ldr r1, _08032314 @ =gMonFrontPicCoords - lsls r2, r7, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _08032318 @ =gUnknown_081FAF4C - mov r12, r4 - mov r5, r10 - lsls r4, r5, 2 - add r4, r12 - ldr r4, [r4] - str r4, [sp] - str r7, [sp, 0x4] - ldr r4, _0803231C @ =gUnknown_02024E70 - mov r12, r4 - mov r5, r8 - lsls r4, r5, 2 - add r4, r12 - ldr r4, [r4] - str r4, [sp, 0x8] - bl HandleLoadSpecialPokePic -_08032202: - ldr r1, _08032318 @ =gUnknown_081FAF4C - mov r2, r10 - lsls r0, r2, 2 - adds r0, r1 - ldr r2, [r0] - ldr r0, _08032320 @ =gUnknown_02024BE0 - add r0, r8 - mov r10, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _08032324 @ =gSprites - adds r0, r4 - ldrh r0, [r0, 0x4] - lsls r0, 22 - lsrs r0, 17 - ldr r1, _08032328 @ =0x06010000 - adds r0, r1 - ldr r1, _0803232C @ =0x040000d4 - str r2, [r1] - str r0, [r1, 0x4] - ldr r0, _08032330 @ =0x84000200 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - mov r5, r8 - lsls r0, r5, 20 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r5, r0, 16 - adds r0, r7, 0 - adds r1, r6, 0 - mov r2, r9 - bl species_and_otid_get_pal - adds r6, r0, 0 - ldr r2, _08032334 @ =0x02000000 - mov r9, r2 - mov r1, r9 - bl sub_800D238 - mov r0, r9 - adds r1, r5, 0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _08032338 @ =SPECIES_CASTFORM - cmp r7, r0 - bne _08032288 - movs r4, 0xB2 - lsls r4, 9 - add r4, r9 - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_800D238 - ldr r0, _0803233C @ =gBattleMonForms - ldr r1, [sp, 0xC] - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, 5 - adds r0, r4 - adds r1, r5, 0 - movs r2, 0x20 - bl LoadPalette -_08032288: - ldr r3, _08032340 @ =0x00007fff - adds r0, r5, 0 - movs r1, 0x10 - movs r2, 0x6 - bl BlendPalette - lsls r1, r5, 1 - ldr r0, _08032344 @ =gPlttBufferFaded - adds r0, r1, r0 - ldr r2, _08032348 @ =gPlttBufferUnfaded - adds r1, r2 - ldr r2, _0803234C @ =REG_BG0CNT - bl CpuSet - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080322C8 - mov r2, r8 - lsls r0, r2, 2 - movs r1, 0xBC - lsls r1, 9 - add r1, r9 - adds r0, r1 - strh r7, [r0, 0x2] - ldr r0, _0803233C @ =gBattleMonForms - adds r1, r2, r0 - ldr r4, [sp, 0xC] - adds r0, r4, r0 - ldrb r0, [r0] - strb r0, [r1] -_080322C8: - mov r0, r8 - bl sub_8077F68 - mov r5, r10 - ldrb r2, [r5] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - ldr r2, _08032324 @ =gSprites - adds r1, r2 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x22] - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, _0803233C @ =gBattleMonForms - add r1, r8 - ldrb r1, [r1] - bl StartSpriteAnim -_080322F6: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08032308: .4byte gUnknown_02024A6A -_0803230C: .4byte gEnemyParty -_08032310: .4byte gMonFrontPicTable -_08032314: .4byte gMonFrontPicCoords -_08032318: .4byte gUnknown_081FAF4C -_0803231C: .4byte gUnknown_02024E70 -_08032320: .4byte gUnknown_02024BE0 -_08032324: .4byte gSprites -_08032328: .4byte 0x06010000 -_0803232C: .4byte 0x040000d4 -_08032330: .4byte 0x84000200 -_08032334: .4byte 0x02000000 -_08032338: .4byte SPECIES_CASTFORM -_0803233C: .4byte gBattleMonForms -_08032340: .4byte 0x00007fff -_08032344: .4byte gPlttBufferFaded -_08032348: .4byte gPlttBufferUnfaded -_0803234C: .4byte REG_BG0CNT - thumb_func_end sub_8031FC4 - - thumb_func_start sub_8032350 -sub_8032350: @ 8032350 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - lsls r1, 24 - cmp r1, 0 - bne _08032408 - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _0803236C - movs r4, 0 - b _08032376 -_0803236C: - adds r0, r4, 0 - bl battle_get_per_side_status - lsls r0, 24 - lsrs r4, r0, 24 -_08032376: - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _08032388 - ldr r0, _08032384 @ =gSubstituteDollTilemap - b _08032396 - .align 2, 0 -_08032384: .4byte gSubstituteDollTilemap -_08032388: - adds r0, r5, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080323AC - ldr r0, _080323A4 @ =gSubstituteDollGfx -_08032396: - ldr r1, _080323A8 @ =gUnknown_081FAF4C - lsls r4, 2 - adds r1, r4, r1 - ldr r1, [r1] - bl LZDecompressVram - b _080323BA - .align 2, 0 -_080323A4: .4byte gSubstituteDollGfx -_080323A8: .4byte gUnknown_081FAF4C -_080323AC: - ldr r0, _080323F4 @ =gSubstituteDollTilemap - ldr r1, _080323F8 @ =gUnknown_081FAF4C - lsls r4, 2 - adds r1, r4, r1 - ldr r1, [r1] - bl LZDecompressVram -_080323BA: - lsls r7, r5, 4 - ldr r0, _080323FC @ =gSubstituteDollPal - mov r12, r0 - ldr r0, _080323F8 @ =gUnknown_081FAF4C - adds r0, r4, r0 - ldr r4, [r0] - ldr r3, _08032400 @ =0x040000d4 - ldr r6, _08032404 @ =0x84000200 - movs r0, 0x80 - lsls r0, 4 - adds r2, r4, r0 - adds r5, r0, 0 - movs r1, 0x2 -_080323D4: - str r4, [r3] - str r2, [r3, 0x4] - str r6, [r3, 0x8] - ldr r0, [r3, 0x8] - adds r2, r5 - subs r1, 0x1 - cmp r1, 0 - bge _080323D4 - movs r0, 0x80 - lsls r0, 1 - adds r1, r7, r0 - mov r0, r12 - movs r2, 0x20 - bl LoadCompressedPalette - b _08032456 - .align 2, 0 -_080323F4: .4byte gSubstituteDollTilemap -_080323F8: .4byte gUnknown_081FAF4C -_080323FC: .4byte gSubstituteDollPal -_08032400: .4byte 0x040000d4 -_08032404: .4byte 0x84000200 -_08032408: - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _08032456 - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _08032440 - ldr r1, _08032438 @ =gUnknown_02024A6A - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0803243C @ =gEnemyParty - adds r0, r1 - adds r1, r4, 0 - bl sub_8031794 - b _08032456 - .align 2, 0 -_08032438: .4byte gUnknown_02024A6A -_0803243C: .4byte gEnemyParty -_08032440: - ldr r1, _0803245C @ =gUnknown_02024A6A - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08032460 @ =gPlayerParty - adds r0, r1 - adds r1, r5, 0 - bl sub_80318FC -_08032456: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0803245C: .4byte gUnknown_02024A6A -_08032460: .4byte gPlayerParty - thumb_func_end sub_8032350 - - thumb_func_start refresh_graphics_maybe -refresh_graphics_maybe: @ 8032464 - push {r4-r6,lr} - adds r5, r1, 0 - adds r4, r2, 0 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_8032350 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, _080324A0 @ =gSprites - adds r4, r0, r1 - ldr r0, _080324A4 @ =gBattleMonForms - adds r0, r6, r0 - ldrb r1, [r0] - adds r0, r4, 0 - bl StartSpriteAnim - cmp r5, 0 - bne _080324A8 - adds r0, r6, 0 - bl sub_8077F7C - b _080324AE - .align 2, 0 -_080324A0: .4byte gSprites -_080324A4: .4byte gBattleMonForms -_080324A8: - adds r0, r6, 0 - bl sub_8077F68 -_080324AE: - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end refresh_graphics_maybe - - thumb_func_start sub_80324BC -sub_80324BC: @ 80324BC - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r1, 16 - cmp r1, 0xA4 - bne _080324D8 - lsls r2, r0, 2 - ldr r0, _080324DC @ =0x02017800 - adds r2, r0 - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_080324D8: - pop {r0} - bx r0 - .align 2, 0 -_080324DC: .4byte 0x02017800 - thumb_func_end sub_80324BC - - thumb_func_start sub_80324E0 -sub_80324E0: @ 80324E0 - lsls r0, 24 - lsrs r0, 22 - ldr r1, _080324F4 @ =0x02017800 - adds r0, r1 - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - bx lr - .align 2, 0 -_080324F4: .4byte 0x02017800 - thumb_func_end sub_80324E0 - - thumb_func_start sub_80324F8 -sub_80324F8: @ 80324F8 - push {r4-r7,lr} - adds r5, r0, 0 - lsls r1, 24 - lsrs r6, r1, 24 - adds r7, r6, 0 - movs r1, 0x39 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - movs r1, 0x3A - bl GetMonData - adds r1, r0, 0 - lsls r4, 16 - asrs r4, 16 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - bl GetHPBarLevel - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08032568 - lsls r0, r6, 2 - ldr r3, _08032564 @ =0x02017800 - adds r4, r0, r3 - ldrb r1, [r4] - movs r5, 0x2 - movs r2, 0x2 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _080325B2 - adds r0, r6, 0 - eors r0, r5 - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _0803255A - movs r0, 0x5A - bl PlaySE -_0803255A: - ldrb r0, [r4] - orrs r0, r5 - strb r0, [r4] - b _080325B2 - .align 2, 0 -_08032564: .4byte 0x02017800 -_08032568: - lsls r1, r6, 2 - ldr r4, _0803258C @ =0x02017800 - adds r1, r4 - ldrb r2, [r1] - movs r0, 0x3 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - bne _08032590 - movs r0, 0x5A - bl m4aSongNumStop - b _080325B2 - .align 2, 0 -_0803258C: .4byte 0x02017800 -_08032590: - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - beq _080325B2 - movs r0, 0x2 - eors r7, r0 - lsls r0, r7, 2 - adds r0, r4 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _080325B2 - movs r0, 0x5A - bl m4aSongNumStop -_080325B2: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80324F8 - - thumb_func_start sub_80325B8 -sub_80325B8: @ 80325B8 - push {r4-r6,lr} - movs r0, 0 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, r4, 2 - ldr r6, _08032600 @ =0x02017800 - adds r1, r6 - ldrb r2, [r1] - movs r5, 0x3 - negs r5, r5 - adds r0, r5, 0 - ands r0, r2 - strb r0, [r1] - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - beq _080325F2 - movs r0, 0x2 - adds r1, r4, 0 - eors r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r2, [r1] - adds r0, r5, 0 - ands r0, r2 - strb r0, [r1] -_080325F2: - movs r0, 0x5A - bl m4aSongNumStop - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08032600: .4byte 0x02017800 - thumb_func_end sub_80325B8 - - thumb_func_start unref_sub_8032604 -unref_sub_8032604: @ 8032604 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x39 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - movs r1, 0x3A - bl GetMonData - adds r1, r0, 0 - lsls r4, 16 - asrs r4, 16 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - bl GetHPBarLevel - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end unref_sub_8032604 - - thumb_func_start sub_8032638 -sub_8032638: @ 8032638 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, _080326DC @ =gMain - ldr r1, _080326E0 @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080326CE - movs r0, 0 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r0, 0x2 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r5, _080326E4 @ =gUnknown_02024A6A - mov r1, r8 - lsls r0, r1, 1 - adds r0, r5 - ldrb r0, [r0] - bl pokemon_order_func - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - mov r1, r9 - lsls r0, r1, 1 - adds r0, r5 - ldrb r0, [r0] - bl pokemon_order_func - lsls r0, 24 - lsrs r5, r0, 24 - movs r7, 0x64 - adds r0, r4, 0 - muls r0, r7 - ldr r6, _080326E8 @ =gPlayerParty - adds r4, r0, r6 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _080326AA - adds r0, r4, 0 - mov r1, r8 - bl sub_80324F8 -_080326AA: - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - beq _080326CE - adds r0, r5, 0 - muls r0, r7 - adds r4, r0, r6 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _080326CE - adds r0, r4, 0 - mov r1, r9 - bl sub_80324F8 -_080326CE: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080326DC: .4byte gMain -_080326E0: .4byte 0x0000043d -_080326E4: .4byte gUnknown_02024A6A -_080326E8: .4byte gPlayerParty - thumb_func_end sub_8032638 - - thumb_func_start sub_80326EC -sub_80326EC: @ 80326EC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r5, 0 - ldr r0, _08032778 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r5, r0 - bge _080327B4 - movs r0, 0x3 - mov r10, r8 - mov r1, r10 - ands r1, r0 - mov r10, r1 - movs r6, 0 - movs r2, 0x3F - negs r2, r2 - mov r9, r2 -_08032718: - lsls r0, r5, 24 - lsrs r0, 24 - bl sub_8078874 - lsls r0, 24 - cmp r0, 0 - beq _080327A8 - ldr r4, _0803277C @ =gSprites - ldr r0, _08032780 @ =gUnknown_02024BE0 - adds r3, r5, r0 - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0, 0x1] - movs r7, 0x4 - negs r7, r7 - adds r2, r7, 0 - ands r1, r2 - mov r2, r10 - orrs r1, r2 - strb r1, [r0, 0x1] - mov r7, r8 - cmp r7, 0 - bne _08032788 - ldr r2, _08032784 @ =0x02017810 - adds r2, r6, r2 - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - strb r0, [r2, 0x6] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0, 0x3] - mov r2, r9 - ands r1, r2 - strb r1, [r0, 0x3] - b _080327A8 - .align 2, 0 -_08032778: .4byte gUnknown_02024A68 -_0803277C: .4byte gSprites -_08032780: .4byte gUnknown_02024BE0 -_08032784: .4byte 0x02017810 -_08032788: - ldrb r0, [r3] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r4 - ldr r0, _080327C4 @ =0x02017810 - adds r0, r6, r0 - ldrb r1, [r0, 0x6] - movs r0, 0x1F - ands r1, r0 - lsls r1, 1 - ldrb r0, [r2, 0x3] - mov r3, r9 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x3] -_080327A8: - adds r6, 0xC - adds r5, 0x1 - ldr r0, _080327C8 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r5, r0 - blt _08032718 -_080327B4: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080327C4: .4byte 0x02017810 -_080327C8: .4byte gUnknown_02024A68 - thumb_func_end sub_80326EC - - thumb_func_start sub_80327CC -sub_80327CC: @ 80327CC - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, _08032894 @ =gUnknown_081FAF24 - bl LoadCompressedObjectPic - movs r0, 0x1 - bl battle_get_side_with_given_state - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _08032898 @ =gSpriteTemplate_81FAF34 - mov r8, r0 - adds r0, r5, 0 - movs r1, 0 - bl sub_8077ABC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8077ABC - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 8 - movs r0, 0x80 - lsls r0, 14 - adds r2, r0 - asrs r2, 16 - mov r0, r8 - adds r1, r4, 0 - movs r3, 0xC8 - bl CreateSprite - lsls r1, r5, 1 - adds r1, r5 - lsls r1, 2 - ldr r6, _0803289C @ =0x02017810 - adds r1, r6 - strb r0, [r1, 0x7] - ldr r7, _080328A0 @ =gSprites - ldrb r1, [r1, 0x7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r5, [r0, 0x2E] - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - beq _0803288A - movs r0, 0x3 - bl battle_get_side_with_given_state - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - adds r0, r5, 0 - movs r1, 0 - bl sub_8077ABC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8077ABC - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 8 - movs r0, 0x80 - lsls r0, 14 - adds r2, r0 - asrs r2, 16 - mov r0, r8 - adds r1, r4, 0 - movs r3, 0xC8 - bl CreateSprite - lsls r1, r5, 1 - adds r1, r5 - lsls r1, 2 - adds r1, r6 - strb r0, [r1, 0x7] - ldrb r1, [r1, 0x7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r5, [r0, 0x2E] -_0803288A: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08032894: .4byte gUnknown_081FAF24 -_08032898: .4byte gSpriteTemplate_81FAF34 -_0803289C: .4byte 0x02017810 -_080328A0: .4byte gSprites - thumb_func_end sub_80327CC - - thumb_func_start sub_80328A4 -sub_80328A4: @ 80328A4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - movs r0, 0 - mov r8, r0 - ldrh r0, [r5, 0x2E] - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080328E8 @ =gUnknown_02024BE0 - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080328EC @ =gSprites - adds r7, r0, r1 - adds r6, r7, 0 - adds r6, 0x3E - ldrb r1, [r6] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080328E0 - adds r0, r4, 0 - bl sub_8078874 - lsls r0, 24 - cmp r0, 0 - bne _080328F4 -_080328E0: - ldr r0, _080328F0 @ =sub_8032978 - str r0, [r5, 0x1C] - b _08032964 - .align 2, 0 -_080328E8: .4byte gUnknown_02024BE0 -_080328EC: .4byte gSprites -_080328F0: .4byte sub_8032978 -_080328F4: - ldr r0, _08032910 @ =gAnimScriptActive - ldrb r0, [r0] - cmp r0, 0 - bne _08032906 - ldrb r1, [r6] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08032918 -_08032906: - movs r0, 0x1 - mov r8, r0 - lsls r4, 2 - ldr r6, _08032914 @ =0x02017800 - b _08032938 - .align 2, 0 -_08032910: .4byte gAnimScriptActive -_08032914: .4byte 0x02017800 -_08032918: - lsls r0, r4, 2 - ldr r1, _08032970 @ =0x02017800 - adds r3, r0, r1 - ldrh r2, [r3, 0x2] - adds r4, r0, 0 - adds r6, r1, 0 - cmp r2, 0 - beq _08032938 - ldr r0, _08032974 @ =gEnemyMonElevation - adds r1, r2, 0 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0 - bne _08032938 - movs r0, 0x1 - mov r8, r0 -_08032938: - adds r0, r4, r6 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08032948 - movs r0, 0x1 - mov r8, r0 -_08032948: - ldrh r0, [r7, 0x20] - strh r0, [r5, 0x20] - ldrh r0, [r7, 0x24] - strh r0, [r5, 0x24] - adds r2, r5, 0 - adds r2, 0x3E - mov r0, r8 - lsls r3, r0, 2 - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - orrs r0, r3 - strb r0, [r2] -_08032964: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08032970: .4byte 0x02017800 -_08032974: .4byte gEnemyMonElevation - thumb_func_end sub_80328A4 - - thumb_func_start sub_8032978 -sub_8032978: @ 8032978 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - bx lr - thumb_func_end sub_8032978 - - thumb_func_start sub_8032984 -sub_8032984: @ 8032984 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - lsls r1, 16 - lsrs r5, r1, 16 - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080329FA - lsls r0, r4, 2 - ldr r3, _080329D0 @ =0x02017800 - adds r1, r0, r3 - ldrh r0, [r1, 0x2] - cmp r0, 0 - beq _080329AA - adds r5, r0, 0 -_080329AA: - ldr r0, _080329D4 @ =gEnemyMonElevation - adds r0, r5, r0 - ldrb r0, [r0] - cmp r0, 0 - beq _080329E0 - ldr r2, _080329D8 @ =gSprites - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r0, r3, r0 - ldrb r1, [r0, 0x17] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _080329DC @ =sub_80328A4 - b _080329F8 - .align 2, 0 -_080329D0: .4byte 0x02017800 -_080329D4: .4byte gEnemyMonElevation -_080329D8: .4byte gSprites -_080329DC: .4byte sub_80328A4 -_080329E0: - ldr r2, _08032A00 @ =gSprites - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 2 - adds r0, r3, r0 - ldrb r1, [r0, 0x17] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _08032A04 @ =sub_8032978 -_080329F8: - str r1, [r0] -_080329FA: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08032A00: .4byte gSprites -_08032A04: .4byte sub_8032978 - thumb_func_end sub_8032984 - - thumb_func_start sub_8032A08 -sub_8032A08: @ 8032A08 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08032A2C @ =gSprites - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - ldr r0, _08032A30 @ =0x02017810 - adds r1, r0 - ldrb r1, [r1, 0x7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _08032A34 @ =sub_8032978 - str r1, [r0] - bx lr - .align 2, 0 -_08032A2C: .4byte gSprites -_08032A30: .4byte 0x02017810 -_08032A34: .4byte sub_8032978 - thumb_func_end sub_8032A08 - - thumb_func_start sub_8032A38 -sub_8032A38: @ 8032A38 - push {r4-r6,lr} - ldr r3, _08032AA4 @ =0x06000240 - movs r0, 0 - movs r6, 0xF0 - lsls r6, 8 -_08032A42: - adds r5, r0, 0x1 - movs r4, 0xF -_08032A46: - ldrh r1, [r3] - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - bne _08032A56 - adds r0, r6, 0 - orrs r0, r1 - strh r0, [r3] -_08032A56: - ldrh r1, [r3] - movs r2, 0xF0 - lsls r2, 4 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _08032A6A - adds r0, r2, 0 - orrs r0, r1 - strh r0, [r3] -_08032A6A: - ldrh r1, [r3] - movs r2, 0xF0 - movs r0, 0xF0 - ands r0, r1 - cmp r0, 0 - bne _08032A7C - adds r0, r1, 0 - orrs r0, r2 - strh r0, [r3] -_08032A7C: - ldrh r1, [r3] - movs r2, 0xF - movs r0, 0xF - ands r0, r1 - cmp r0, 0 - bne _08032A8E - adds r0, r1, 0 - orrs r0, r2 - strh r0, [r3] -_08032A8E: - adds r3, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _08032A46 - adds r0, r5, 0 - cmp r0, 0x8 - ble _08032A42 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08032AA4: .4byte 0x06000240 - thumb_func_end sub_8032A38 - - thumb_func_start sub_8032AA8 -sub_8032AA8: @ 8032AA8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsls r2, r4, 2 - ldr r0, _08032AD4 @ =0x02017800 - adds r2, r0 - movs r3, 0 - movs r0, 0 - strh r0, [r2, 0x2] - ldr r0, _08032AD8 @ =gBattleMonForms - adds r0, r4, r0 - strb r3, [r0] - cmp r1, 0 - bne _08032ACC - adds r0, r4, 0 - bl sub_80324E0 -_08032ACC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08032AD4: .4byte 0x02017800 -_08032AD8: .4byte gBattleMonForms - thumb_func_end sub_8032AA8 - - thumb_func_start nullsub_45 -nullsub_45: @ 8032ADC - bx lr - thumb_func_end nullsub_45 - - thumb_func_start sub_8032AE0 -sub_8032AE0: @ 8032AE0 - ldr r1, _08032AF0 @ =gUnknown_03004330 - ldr r0, _08032AF4 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _08032AF8 @ =sub_8032AFC - str r1, [r0] - bx lr - .align 2, 0 -_08032AF0: .4byte gUnknown_03004330 -_08032AF4: .4byte gUnknown_02024A60 -_08032AF8: .4byte sub_8032AFC - thumb_func_end sub_8032AE0 - - thumb_func_start sub_8032AFC -sub_8032AFC: @ 8032AFC - push {lr} - ldr r2, _08032B30 @ =gUnknown_02024A64 - ldr r1, _08032B34 @ =gBitTable - ldr r0, _08032B38 @ =gUnknown_02024A60 - ldrb r3, [r0] - lsls r0, r3, 2 - adds r0, r1 - ldr r1, [r2] - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08032B48 - ldr r0, _08032B3C @ =gUnknown_02023A60 - lsls r1, r3, 9 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0x38 - bhi _08032B44 - ldr r0, _08032B40 @ =gUnknown_081FAF5C - ldrb r1, [r1] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - bl _call_via_r0 - b _08032B48 - .align 2, 0 -_08032B30: .4byte gUnknown_02024A64 -_08032B34: .4byte gBitTable -_08032B38: .4byte gUnknown_02024A60 -_08032B3C: .4byte gUnknown_02023A60 -_08032B40: .4byte gUnknown_081FAF5C -_08032B44: - bl sub_80334EC -_08032B48: - pop {r0} - bx r0 - thumb_func_end sub_8032AFC - - thumb_func_start sub_8032B4C -sub_8032B4C: @ 8032B4C - push {lr} - ldr r2, _08032B74 @ =gSprites - ldr r1, _08032B78 @ =gUnknown_02024BE0 - ldr r0, _08032B7C @ =gUnknown_02024A60 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, _08032B80 @ =SpriteCallbackDummy - cmp r1, r0 - bne _08032B70 - bl sub_80334EC -_08032B70: - pop {r0} - bx r0 - .align 2, 0 -_08032B74: .4byte gSprites -_08032B78: .4byte gUnknown_02024BE0 -_08032B7C: .4byte gUnknown_02024A60 -_08032B80: .4byte SpriteCallbackDummy - thumb_func_end sub_8032B4C - - thumb_func_start sub_8032B84 -sub_8032B84: @ 8032B84 - push {lr} - ldr r2, _08032BAC @ =gSprites - ldr r1, _08032BB0 @ =gUnknown_02024BE0 - ldr r0, _08032BB4 @ =gUnknown_02024A60 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, _08032BB8 @ =SpriteCallbackDummy - cmp r1, r0 - bne _08032BA8 - bl sub_80334EC -_08032BA8: - pop {r0} - bx r0 - .align 2, 0 -_08032BAC: .4byte gSprites -_08032BB0: .4byte gUnknown_02024BE0 -_08032BB4: .4byte gUnknown_02024A60 -_08032BB8: .4byte SpriteCallbackDummy - thumb_func_end sub_8032B84 - - thumb_func_start sub_8032BBC -sub_8032BBC: @ 8032BBC - push {r4-r6,lr} - ldr r4, _08032C34 @ =gSprites - ldr r6, _08032C38 @ =gUnknown_02024BE0 - ldr r5, _08032C3C @ =gUnknown_02024A60 - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r2, r0, 2 - adds r0, r4, 0 - adds r0, 0x1C - adds r0, r2, r0 - ldr r1, [r0] - ldr r0, _08032C40 @ =SpriteCallbackDummy - cmp r1, r0 - bne _08032C2C - adds r0, r2, r4 - ldrh r0, [r0, 0x6] - bl sub_8031B74 - ldrb r0, [r5] - adds r0, r6 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrh r0, [r1, 0x38] - ldr r2, _08032C44 @ =0x000003ff - ands r2, r0 - ldrh r3, [r1, 0x4] - ldr r0, _08032C48 @ =0xfffffc00 - ands r0, r3 - orrs r0, r2 - strh r0, [r1, 0x4] - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl FreeSpriteOamMatrix - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - bl sub_80334EC -_08032C2C: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08032C34: .4byte gSprites -_08032C38: .4byte gUnknown_02024BE0 -_08032C3C: .4byte gUnknown_02024A60 -_08032C40: .4byte SpriteCallbackDummy -_08032C44: .4byte 0x000003ff -_08032C48: .4byte 0xfffffc00 - thumb_func_end sub_8032BBC - - thumb_func_start sub_8032C4C -sub_8032C4C: @ 8032C4C - push {lr} - ldr r3, _08032C80 @ =gUnknown_02024A60 - ldrb r0, [r3] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - ldr r2, _08032C84 @ =0x02017810 - adds r1, r2 - ldrb r0, [r1, 0x9] - subs r0, 0x1 - strb r0, [r1, 0x9] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _08032C7C - ldrb r0, [r3] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0 - strb r0, [r1, 0x9] - bl sub_80334EC -_08032C7C: - pop {r0} - bx r0 - .align 2, 0 -_08032C80: .4byte gUnknown_02024A60 -_08032C84: .4byte 0x02017810 - thumb_func_end sub_8032C4C - - thumb_func_start sub_8032C88 -sub_8032C88: @ 8032C88 - push {r4-r7,lr} - movs r6, 0 - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - beq _08032CAC - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - beq _08032CE0 - ldr r0, _08032CCC @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08032CE0 -_08032CAC: - ldr r2, _08032CD0 @ =gSprites - ldr r1, _08032CD4 @ =gUnknown_03004340 - ldr r0, _08032CD8 @ =gUnknown_02024A60 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, _08032CDC @ =SpriteCallbackDummy - cmp r1, r0 - bne _08032D16 - b _08032D14 - .align 2, 0 -_08032CCC: .4byte gBattleTypeFlags -_08032CD0: .4byte gSprites -_08032CD4: .4byte gUnknown_03004340 -_08032CD8: .4byte gUnknown_02024A60 -_08032CDC: .4byte SpriteCallbackDummy -_08032CE0: - ldr r2, _08032DC4 @ =gSprites - ldr r5, _08032DC8 @ =gUnknown_03004340 - ldr r0, _08032DCC @ =gUnknown_02024A60 - ldrb r3, [r0] - adds r0, r3, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r4, [r0] - ldr r0, _08032DD0 @ =SpriteCallbackDummy - cmp r4, r0 - bne _08032D16 - movs r0, 0x2 - eors r3, r0 - adds r0, r3, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - cmp r0, r4 - bne _08032D16 -_08032D14: - movs r6, 0x1 -_08032D16: - bl IsCryPlayingOrClearCrySongs - lsls r0, 24 - cmp r0, 0 - beq _08032D22 - movs r6, 0 -_08032D22: - cmp r6, 0 - beq _08032E0E - ldr r7, _08032DCC @ =gUnknown_02024A60 - ldrb r2, [r7] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - ldr r5, _08032DD4 @ =0x02017810 - adds r4, r0, r5 - ldrb r1, [r4, 0x1] - movs r3, 0x1 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _08032E0E - movs r6, 0x2 - adds r1, r6, 0 - eors r1, r2 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r0, 0x1] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _08032E0E - ldrb r1, [r4] - movs r3, 0x7F - adds r0, r3, 0 - ands r0, r1 - strb r0, [r4] - ldrb r0, [r7] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r2, [r1, 0x1] - movs r4, 0x2 - negs r4, r4 - adds r0, r4, 0 - ands r0, r2 - strb r0, [r1, 0x1] - ldrb r0, [r7] - adds r1, r6, 0 - eors r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r0] - ands r3, r1 - strb r3, [r0] - ldrb r0, [r7] - adds r1, r6, 0 - eors r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r0, 0x1] - ands r4, r1 - strb r4, [r0, 0x1] - ldr r4, _08032DD8 @ =0x000027f9 - adds r0, r4, 0 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl FreeSpritePaletteByTag - ldr r0, _08032DDC @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08032DE4 - ldr r0, _08032DE0 @ =gMPlay_BGM - bl m4aMPlayContinue - b _08032DF0 - .align 2, 0 -_08032DC4: .4byte gSprites -_08032DC8: .4byte gUnknown_03004340 -_08032DCC: .4byte gUnknown_02024A60 -_08032DD0: .4byte SpriteCallbackDummy -_08032DD4: .4byte 0x02017810 -_08032DD8: .4byte 0x000027f9 -_08032DDC: .4byte gBattleTypeFlags -_08032DE0: .4byte gMPlay_BGM -_08032DE4: - ldr r0, _08032E14 @ =gMPlay_BGM - ldr r1, _08032E18 @ =0x0000ffff - movs r2, 0x80 - lsls r2, 1 - bl m4aMPlayVolumeControl -_08032DF0: - ldr r2, _08032E1C @ =gUnknown_02024A60 - ldrb r1, [r2] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _08032E20 @ =0x02017810 - adds r0, r1 - movs r1, 0x3 - strb r1, [r0, 0x9] - ldr r1, _08032E24 @ =gUnknown_03004330 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, _08032E28 @ =sub_8032C4C - str r1, [r0] -_08032E0E: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08032E14: .4byte gMPlay_BGM -_08032E18: .4byte 0x0000ffff -_08032E1C: .4byte gUnknown_02024A60 -_08032E20: .4byte 0x02017810 -_08032E24: .4byte gUnknown_03004330 -_08032E28: .4byte sub_8032C4C - thumb_func_end sub_8032C88 - - thumb_func_start sub_8032E2C -sub_8032E2C: @ 8032E2C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, _08032FEC @ =gUnknown_02024A60 - mov r9, r0 - ldrb r2, [r0] - lsls r3, r2, 1 - adds r0, r3, r2 - lsls r0, 2 - ldr r4, _08032FF0 @ =0x02017810 - adds r0, r4 - ldrb r1, [r0] - movs r5, 0x88 - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - bne _08032E64 - ldr r0, _08032FF4 @ =gUnknown_02024A6A - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _08032FF8 @ =gEnemyParty - adds r1, r0 - adds r0, r2, 0 - bl sub_8141828 -_08032E64: - mov r1, r9 - ldrb r0, [r1] - movs r7, 0x2 - adds r2, r7, 0 - eors r2, r0 - lsls r3, r2, 1 - adds r0, r3, r2 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - bne _08032E94 - ldr r0, _08032FF4 @ =gUnknown_02024A6A - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _08032FF8 @ =gEnemyParty - adds r1, r0 - adds r0, r2, 0 - bl sub_8141828 -_08032E94: - mov r0, r9 - ldrb r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0] - movs r3, 0x8 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _08032EAE - b _08032FE0 -_08032EAE: - adds r1, r7, 0 - eors r1, r2 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _08032EC6 - b _08032FE0 -_08032EC6: - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - beq _08032F58 - ldr r0, _08032FFC @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08032F58 - ldr r1, _08033000 @ =gUnknown_0300434C - mov r2, r9 - ldrb r0, [r2] - eors r0, r7 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08033004 @ =gSprites - adds r0, r1 - bl DestroySprite - ldr r4, _08033008 @ =gUnknown_03004340 - mov r1, r9 - ldrb r0, [r1] - adds r1, r7, 0 - eors r1, r0 - adds r0, r1, r4 - ldrb r0, [r0] - ldr r2, _08032FF4 @ =gUnknown_02024A6A - mov r8, r2 - lsls r1, 1 - add r1, r8 - ldrh r1, [r1] - movs r6, 0x64 - muls r1, r6 - ldr r5, _08032FF8 @ =gEnemyParty - adds r1, r5 - movs r2, 0 - bl sub_8045A5C - mov r1, r9 - ldrb r0, [r1] - eors r0, r7 - bl sub_804777C - mov r2, r9 - ldrb r0, [r2] - eors r0, r7 - adds r0, r4 - ldrb r0, [r0] - bl sub_8043DFC - mov r1, r9 - ldrb r0, [r1] - adds r4, r7, 0 - eors r4, r0 - lsls r0, r4, 1 - add r0, r8 - ldrh r0, [r0] - muls r0, r6 - adds r0, r5 - movs r1, 0xB - bl GetMonData - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_8032984 -_08032F58: - ldr r1, _08033000 @ =gUnknown_0300434C - ldr r4, _08032FEC @ =gUnknown_02024A60 - ldrb r0, [r4] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08033004 @ =gSprites - adds r0, r1 - bl DestroySprite - ldr r5, _08033008 @ =gUnknown_03004340 - ldrb r1, [r4] - adds r0, r1, r5 - ldrb r0, [r0] - ldr r2, _08032FF4 @ =gUnknown_02024A6A - mov r9, r2 - lsls r1, 1 - add r1, r9 - ldrh r1, [r1] - movs r2, 0x64 - mov r8, r2 - mov r2, r8 - muls r2, r1 - adds r1, r2, 0 - ldr r6, _08032FF8 @ =gEnemyParty - adds r1, r6 - movs r2, 0 - bl sub_8045A5C - ldrb r0, [r4] - bl sub_804777C - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - bl sub_8043DFC - ldrb r5, [r4] - lsls r0, r5, 1 - add r0, r9 - ldrh r0, [r0] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r6 - movs r1, 0xB - bl GetMonData - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r5, 0 - bl sub_8032984 - ldr r2, _0803300C @ =0x02017840 - ldrb r1, [r2, 0x9] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x9] - ldr r1, _08033010 @ =gUnknown_03004330 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _08033014 @ =sub_8032C88 - str r1, [r0] -_08032FE0: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08032FEC: .4byte gUnknown_02024A60 -_08032FF0: .4byte 0x02017810 -_08032FF4: .4byte gUnknown_02024A6A -_08032FF8: .4byte gEnemyParty -_08032FFC: .4byte gBattleTypeFlags -_08033000: .4byte gUnknown_0300434C -_08033004: .4byte gSprites -_08033008: .4byte gUnknown_03004340 -_0803300C: .4byte 0x02017840 -_08033010: .4byte gUnknown_03004330 -_08033014: .4byte sub_8032C88 - thumb_func_end sub_8032E2C - - thumb_func_start sub_8033018 -sub_8033018: @ 8033018 - push {r4-r7,lr} - ldr r2, _08033070 @ =gSprites - ldr r0, _08033074 @ =gUnknown_02024BE0 - ldr r7, _08033078 @ =gUnknown_02024A60 - ldrb r3, [r7] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - adds r0, r1, 0 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 27 - lsrs r2, r0, 31 - cmp r2, 0x1 - bne _080330BC - movs r4, 0x24 - ldrsh r0, [r1, r4] - cmp r0, 0 - bne _080330BC - lsls r4, r3, 1 - adds r0, r4, r3 - lsls r0, 2 - ldr r6, _0803307C @ =0x02017810 - adds r1, r0, r6 - ldrb r5, [r1] - movs r0, 0x80 - ands r0, r5 - cmp r0, 0 - bne _08033088 - ldr r0, _08033080 @ =gUnknown_02024A6A - adds r0, r4, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _08033084 @ =gEnemyParty - adds r1, r0 - adds r0, r3, 0 - bl sub_8141828 - b _080330BC - .align 2, 0 -_08033070: .4byte gSprites -_08033074: .4byte gUnknown_02024BE0 -_08033078: .4byte gUnknown_02024A60 -_0803307C: .4byte 0x02017810 -_08033080: .4byte gUnknown_02024A6A -_08033084: .4byte gEnemyParty -_08033088: - ldrb r0, [r1, 0x1] - ands r2, r0 - cmp r2, 0 - beq _080330BC - movs r0, 0x7F - ands r0, r5 - strb r0, [r1] - ldrb r0, [r7] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r2, [r1, 0x1] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - ldr r4, _080330C4 @ =0x000027f9 - adds r0, r4, 0 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl FreeSpritePaletteByTag - bl sub_80334EC -_080330BC: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080330C4: .4byte 0x000027f9 - thumb_func_end sub_8033018 - - thumb_func_start sub_80330C8 -sub_80330C8: @ 80330C8 - push {r4-r6,lr} - ldr r6, _08033108 @ =gUnknown_02024A60 - ldrb r0, [r6] - ldr r5, _0803310C @ =gUnknown_03004340 - adds r1, r0, r5 - ldrb r1, [r1] - movs r2, 0 - movs r3, 0 - bl sub_8045C78 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldrb r0, [r6] - adds r0, r5 - ldrb r0, [r0] - bl sub_8043DFC - lsls r4, 16 - asrs r1, r4, 16 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08033110 - ldrb r0, [r6] - adds r0, r5 - ldrb r0, [r0] - movs r2, 0 - bl sub_80440EC - b _08033114 - .align 2, 0 -_08033108: .4byte gUnknown_02024A60 -_0803310C: .4byte gUnknown_03004340 -_08033110: - bl sub_80334EC -_08033114: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80330C8 - - thumb_func_start sub_803311C -sub_803311C: @ 803311C - push {lr} - ldr r2, _08033150 @ =gSprites - ldr r0, _08033154 @ =gUnknown_02024BE0 - ldr r1, _08033158 @ =gUnknown_02024A60 - ldrb r3, [r1] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - bne _0803314A - ldr r0, _0803315C @ =gUnknown_03004340 - adds r0, r3, r0 - ldrb r0, [r0] - bl sub_8043DB0 - bl sub_80334EC -_0803314A: - pop {r0} - bx r0 - .align 2, 0 -_08033150: .4byte gSprites -_08033154: .4byte gUnknown_02024BE0 -_08033158: .4byte gUnknown_02024A60 -_0803315C: .4byte gUnknown_03004340 - thumb_func_end sub_803311C - - thumb_func_start sub_8033160 -sub_8033160: @ 8033160 - push {r4-r6,lr} - ldr r6, _080331BC @ =gUnknown_02024A60 - ldrb r2, [r6] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - ldr r1, _080331C0 @ =0x02017810 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _080331B6 - ldr r5, _080331C4 @ =gUnknown_02024BE0 - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _080331C8 @ =gSprites - adds r0, r4 - bl FreeSpriteOamMatrix - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - ldrb r0, [r6] - bl sub_8032A08 - ldr r1, _080331CC @ =gUnknown_03004340 - ldrb r0, [r6] - adds r0, r1 - ldrb r0, [r0] - bl sub_8043DB0 - bl sub_80334EC -_080331B6: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080331BC: .4byte gUnknown_02024A60 -_080331C0: .4byte 0x02017810 -_080331C4: .4byte gUnknown_02024BE0 -_080331C8: .4byte gSprites -_080331CC: .4byte gUnknown_03004340 - thumb_func_end sub_8033160 - - thumb_func_start sub_80331D0 -sub_80331D0: @ 80331D0 - push {lr} - ldr r0, _080331E4 @ =gUnknown_03004210 - ldrh r0, [r0, 0x16] - cmp r0, 0 - bne _080331DE - bl sub_80334EC -_080331DE: - pop {r0} - bx r0 - .align 2, 0 -_080331E4: .4byte gUnknown_03004210 - thumb_func_end sub_80331D0 - - thumb_func_start bx_blink_t7 -bx_blink_t7: @ 80331E8 - push {r4,lr} - ldr r1, _08033224 @ =gUnknown_02024BE0 - ldr r0, _08033228 @ =gUnknown_02024A60 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - ldr r2, _0803322C @ =gSprites - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, r0, r2 - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0x20 - bne _08033234 - movs r3, 0 - movs r0, 0 - strh r0, [r4, 0x30] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - subs r0, 0x5 - ands r0, r1 - strb r0, [r2] - ldr r0, _08033230 @ =gUnknown_02024E6D - strb r3, [r0] - bl sub_80334EC - b _0803325E - .align 2, 0 -_08033224: .4byte gUnknown_02024BE0 -_08033228: .4byte gUnknown_02024A60 -_0803322C: .4byte gSprites -_08033230: .4byte gUnknown_02024E6D -_08033234: - ldrh r0, [r4, 0x30] - movs r1, 0x3 - ands r0, r1 - cmp r0, 0 - bne _08033258 - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_08033258: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] -_0803325E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end bx_blink_t7 - - thumb_func_start sub_8033264 -sub_8033264: @ 8033264 - push {r4,lr} - ldr r2, _080332B4 @ =gSprites - ldr r0, _080332B8 @ =gUnknown_03004340 - ldr r4, _080332BC @ =gUnknown_02024A60 - ldrb r3, [r4] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, _080332C0 @ =SpriteCallbackDummy - cmp r1, r0 - bne _080332AC - lsls r0, r3, 2 - ldr r1, _080332C4 @ =0x02017800 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080332A0 - adds r0, r3, 0 - adds r1, r3, 0 - adds r2, r3, 0 - movs r3, 0x6 - bl move_anim_start_t4 -_080332A0: - ldr r0, _080332C8 @ =gUnknown_03004330 - ldrb r1, [r4] - lsls r1, 2 - adds r1, r0 - ldr r0, _080332CC @ =sub_80332D0 - str r0, [r1] -_080332AC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080332B4: .4byte gSprites -_080332B8: .4byte gUnknown_03004340 -_080332BC: .4byte gUnknown_02024A60 -_080332C0: .4byte SpriteCallbackDummy -_080332C4: .4byte 0x02017800 -_080332C8: .4byte gUnknown_03004330 -_080332CC: .4byte sub_80332D0 - thumb_func_end sub_8033264 - - thumb_func_start sub_80332D0 -sub_80332D0: @ 80332D0 - push {lr} - ldr r0, _080332FC @ =gUnknown_02024A60 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _08033300 @ =0x02017810 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _080332F6 - ldr r0, _08033304 @ =c3_0802FDF4 - movs r1, 0xA - bl CreateTask - bl sub_80334EC -_080332F6: - pop {r0} - bx r0 - .align 2, 0 -_080332FC: .4byte gUnknown_02024A60 -_08033300: .4byte 0x02017810 -_08033304: .4byte c3_0802FDF4 - thumb_func_end sub_80332D0 - - thumb_func_start sub_8033308 -sub_8033308: @ 8033308 - push {r4,r5,lr} - ldr r5, _080333AC @ =gUnknown_02024A60 - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r3, _080333B0 @ =0x02017810 - adds r2, r0, r3 - ldrb r1, [r2, 0x1] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080333A4 - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - ldrb r0, [r5] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r2, [r1, 0x1] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - ldr r4, _080333B4 @ =0x000027f9 - adds r0, r4, 0 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl FreeSpritePaletteByTag - ldr r1, _080333B8 @ =gUnknown_02024BE0 - ldrb r0, [r5] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080333BC @ =gSprites - adds r0, r1 - movs r1, 0 - bl StartSpriteAnim - ldr r4, _080333C0 @ =gUnknown_03004340 - ldrb r1, [r5] - adds r0, r1, r4 - ldrb r0, [r0] - ldr r2, _080333C4 @ =gUnknown_02024A6A - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, _080333C8 @ =gEnemyParty - adds r1, r2 - movs r2, 0 - bl sub_8045A5C - ldrb r0, [r5] - bl sub_804777C - ldrb r0, [r5] - adds r0, r4 - ldrb r0, [r0] - bl sub_8043DFC - ldrb r0, [r5] - bl sub_8031F88 - ldr r1, _080333CC @ =gUnknown_03004330 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, _080333D0 @ =sub_8033264 - str r1, [r0] -_080333A4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080333AC: .4byte gUnknown_02024A60 -_080333B0: .4byte 0x02017810 -_080333B4: .4byte 0x000027f9 -_080333B8: .4byte gUnknown_02024BE0 -_080333BC: .4byte gSprites -_080333C0: .4byte gUnknown_03004340 -_080333C4: .4byte gUnknown_02024A6A -_080333C8: .4byte gEnemyParty -_080333CC: .4byte gUnknown_03004330 -_080333D0: .4byte sub_8033264 - thumb_func_end sub_8033308 - - thumb_func_start sub_80333D4 -sub_80333D4: @ 80333D4 - push {r4-r6,lr} - ldr r5, _08033470 @ =gUnknown_02024A60 - ldrb r2, [r5] - lsls r3, r2, 1 - adds r0, r3, r2 - lsls r0, 2 - ldr r6, _08033474 @ =0x02017810 - adds r0, r6 - ldrb r1, [r0] - movs r0, 0x88 - ands r0, r1 - cmp r0, 0 - bne _08033402 - ldr r0, _08033478 @ =gUnknown_02024A6A - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _0803347C @ =gEnemyParty - adds r1, r0 - adds r0, r2, 0 - bl sub_8141828 -_08033402: - ldr r4, _08033480 @ =gSprites - ldr r0, _08033484 @ =gUnknown_0300434C - ldrb r2, [r5] - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r3, r0, 2 - adds r0, r4, 0 - adds r0, 0x1C - adds r0, r3, r0 - ldr r1, [r0] - ldr r0, _08033488 @ =SpriteCallbackDummy - cmp r1, r0 - bne _08033468 - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r6 - ldrb r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _08033468 - adds r0, r3, r4 - bl DestroySprite - ldrb r4, [r5] - ldr r1, _08033478 @ =gUnknown_02024A6A - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0803347C @ =gEnemyParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_8032984 - ldr r1, _0803348C @ =gUnknown_03004330 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, _08033490 @ =sub_8033308 - str r1, [r0] -_08033468: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08033470: .4byte gUnknown_02024A60 -_08033474: .4byte 0x02017810 -_08033478: .4byte gUnknown_02024A6A -_0803347C: .4byte gEnemyParty -_08033480: .4byte gSprites -_08033484: .4byte gUnknown_0300434C -_08033488: .4byte SpriteCallbackDummy -_0803348C: .4byte gUnknown_03004330 -_08033490: .4byte sub_8033308 - thumb_func_end sub_80333D4 - - thumb_func_start sub_8033494 -sub_8033494: @ 8033494 - push {lr} - ldr r0, _080334B8 @ =gUnknown_02024A60 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _080334BC @ =0x02017810 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _080334B2 - bl sub_80334EC -_080334B2: - pop {r0} - bx r0 - .align 2, 0 -_080334B8: .4byte gUnknown_02024A60 -_080334BC: .4byte 0x02017810 - thumb_func_end sub_8033494 - - thumb_func_start sub_80334C0 -sub_80334C0: @ 80334C0 - push {lr} - ldr r0, _080334E4 @ =gUnknown_02024A60 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _080334E8 @ =0x02017810 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _080334DE - bl sub_80334EC -_080334DE: - pop {r0} - bx r0 - .align 2, 0 -_080334E4: .4byte gUnknown_02024A60 -_080334E8: .4byte 0x02017810 - thumb_func_end sub_80334C0 - - thumb_func_start sub_80334EC -sub_80334EC: @ 80334EC - ldr r1, _08033510 @ =gUnknown_03004330 - ldr r2, _08033514 @ =gUnknown_02024A60 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, _08033518 @ =sub_8032AFC - str r1, [r0] - ldr r3, _0803351C @ =gUnknown_02024A64 - ldr r1, _08033520 @ =gBitTable - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - ldr r0, [r3] - bics r0, r1 - str r0, [r3] - bx lr - .align 2, 0 -_08033510: .4byte gUnknown_03004330 -_08033514: .4byte gUnknown_02024A60 -_08033518: .4byte sub_8032AFC -_0803351C: .4byte gUnknown_02024A64 -_08033520: .4byte gBitTable - thumb_func_end sub_80334EC - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_8.s b/asm/battle_8.s index 0e4925dfb..366c503f2 100644 --- a/asm/battle_8.s +++ b/asm/battle_8.s @@ -6,13 +6,13 @@ .text - thumb_func_start dp01t_00_7_getattr -dp01t_00_7_getattr: @ 8033524 + thumb_func_start OpponentHandleGetAttributes +OpponentHandleGetAttributes: @ 8033524 push {r4-r6,lr} sub sp, 0x100 movs r6, 0 - ldr r1, _08033550 @ =gUnknown_02023A60 - ldr r0, _08033554 @ =gUnknown_02024A60 + ldr r1, _08033550 @ =gBattleBufferA + ldr r0, _08033554 @ =gActiveBank ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x2 @@ -20,7 +20,7 @@ dp01t_00_7_getattr: @ 8033524 ldrb r0, [r1] cmp r0, 0 bne _0803355C - ldr r0, _08033558 @ =gUnknown_02024A6A + ldr r0, _08033558 @ =gBattlePartyID lsls r1, r2, 1 adds r1, r0 ldrb r0, [r1] @@ -29,9 +29,9 @@ dp01t_00_7_getattr: @ 8033524 adds r6, r0, 0 b _0803357E .align 2, 0 -_08033550: .4byte gUnknown_02023A60 -_08033554: .4byte gUnknown_02024A60 -_08033558: .4byte gUnknown_02024A6A +_08033550: .4byte gBattleBufferA +_08033554: .4byte gActiveBank +_08033558: .4byte gBattlePartyID _0803355C: ldrb r4, [r1] movs r5, 0 @@ -57,12 +57,12 @@ _0803357E: movs r0, 0x1 mov r2, sp bl dp01_build_cmdbuf_x1D_1D_numargs_varargs - bl sub_80334EC + bl OpponentBufferExecCompleted add sp, 0x100 pop {r4-r6} pop {r0} bx r0 - thumb_func_end dp01t_00_7_getattr + thumb_func_end OpponentHandleGetAttributes thumb_func_start sub_8033598 sub_8033598: @ 8033598 @@ -76,8 +76,8 @@ sub_8033598: @ 8033598 lsls r0, 24 lsrs r5, r0, 24 movs r6, 0 - ldr r2, _080335CC @ =gUnknown_02023A60 - ldr r3, _080335D0 @ =gUnknown_02024A60 + ldr r2, _080335CC @ =gBattleBufferA + ldr r3, _080335D0 @ =gActiveBank ldrb r0, [r3] lsls r0, 9 adds r1, r2, 0x1 @@ -93,8 +93,8 @@ _080335C2: ldr r0, [r0] mov pc, r0 .align 2, 0 -_080335CC: .4byte gUnknown_02023A60 -_080335D0: .4byte gUnknown_02024A60 +_080335CC: .4byte gBattleBufferA +_080335D0: .4byte gActiveBank _080335D4: .4byte _080335D8 .align 2, 0 _080335D8: @@ -1002,8 +1002,8 @@ _08033D40: .4byte gEnemyParty dp01t_01_2_read_pokmon_data_slice: @ 8033D44 push {r4-r7,lr} sub sp, 0x58 - ldr r2, _08033DBC @ =gUnknown_02024A6A - ldr r5, _08033DC0 @ =gUnknown_02024A60 + ldr r2, _08033DBC @ =gBattlePartyID + ldr r5, _08033DC0 @ =gActiveBank ldrb r1, [r5] lsls r0, r1, 1 adds r0, r2 @@ -1011,7 +1011,7 @@ dp01t_01_2_read_pokmon_data_slice: @ 8033D44 movs r0, 0x64 adds r4, r2, 0 muls r4, r0 - ldr r3, _08033DC4 @ =gUnknown_02023A60 + ldr r3, _08033DC4 @ =gBattleBufferA lsls r1, 9 adds r0, r3, 0x1 adds r0, r1, r0 @@ -1054,23 +1054,23 @@ _08033D9A: movs r0, 0x1 adds r2, r4, 0 bl dp01_build_cmdbuf_x1D_1D_numargs_varargs - bl sub_80334EC + bl OpponentBufferExecCompleted add sp, 0x58 pop {r4-r7} pop {r0} bx r0 .align 2, 0 -_08033DBC: .4byte gUnknown_02024A6A -_08033DC0: .4byte gUnknown_02024A60 -_08033DC4: .4byte gUnknown_02023A60 +_08033DBC: .4byte gBattlePartyID +_08033DC0: .4byte gActiveBank +_08033DC4: .4byte gBattleBufferA _08033DC8: .4byte gEnemyParty thumb_func_end dp01t_01_2_read_pokmon_data_slice - thumb_func_start dp01t_02_7_setattr -dp01t_02_7_setattr: @ 8033DCC + thumb_func_start OpponentHandleSetAttributes +OpponentHandleSetAttributes: @ 8033DCC push {r4,r5,lr} - ldr r1, _08033DF0 @ =gUnknown_02023A60 - ldr r0, _08033DF4 @ =gUnknown_02024A60 + ldr r1, _08033DF0 @ =gBattleBufferA + ldr r0, _08033DF4 @ =gActiveBank ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x2 @@ -1078,16 +1078,16 @@ dp01t_02_7_setattr: @ 8033DCC ldrb r0, [r1] cmp r0, 0 bne _08033DFC - ldr r0, _08033DF8 @ =gUnknown_02024A6A + ldr r0, _08033DF8 @ =gBattlePartyID lsls r1, r2, 1 adds r1, r0 ldrb r0, [r1] bl sub_8033E24 b _08033E1A .align 2, 0 -_08033DF0: .4byte gUnknown_02023A60 -_08033DF4: .4byte gUnknown_02024A60 -_08033DF8: .4byte gUnknown_02024A6A +_08033DF0: .4byte gBattleBufferA +_08033DF4: .4byte gActiveBank +_08033DF8: .4byte gBattlePartyID _08033DFC: ldrb r4, [r1] movs r5, 0 @@ -1106,11 +1106,11 @@ _08033E0E: cmp r5, 0x5 bls _08033E00 _08033E1A: - bl sub_80334EC + bl OpponentBufferExecCompleted pop {r4,r5} pop {r0} bx r0 - thumb_func_end dp01t_02_7_setattr + thumb_func_end OpponentHandleSetAttributes thumb_func_start sub_8033E24 sub_8033E24: @ 8033E24 @@ -1122,7 +1122,7 @@ sub_8033E24: @ 8033E24 sub sp, 0x38 lsls r0, 24 lsrs r5, r0, 24 - ldr r3, _08033E5C @ =gUnknown_02024A60 + ldr r3, _08033E5C @ =gActiveBank ldrb r0, [r3] lsls r0, 9 ldr r2, _08033E60 @ =gUnknown_02023A63 @@ -1143,7 +1143,7 @@ _08033E52: ldr r0, [r0] mov pc, r0 .align 2, 0 -_08033E5C: .4byte gUnknown_02024A60 +_08033E5C: .4byte gActiveBank _08033E60: .4byte gUnknown_02023A63 _08033E64: .4byte _08033E68 .align 2, 0 @@ -1462,7 +1462,7 @@ _0803417C: muls r0, r5 ldr r1, _08034194 @ =gEnemyParty adds r0, r1 - ldr r3, _08034198 @ =gUnknown_02023A60 + ldr r3, _08034198 @ =gBattleBufferA ldrb r2, [r6] lsls r2, 9 adds r1, r3, 0x1 @@ -1472,7 +1472,7 @@ _0803417C: b _0803421A .align 2, 0 _08034194: .4byte gEnemyParty -_08034198: .4byte gUnknown_02023A60 +_08034198: .4byte gBattleBufferA _0803419C: movs r0, 0x64 adds r4, r5, 0 @@ -1526,7 +1526,7 @@ _08034204: muls r0, r5 ldr r1, _08034224 @ =gEnemyParty adds r0, r1 - ldr r3, _08034228 @ =gUnknown_02023A60 + ldr r3, _08034228 @ =gBattleBufferA ldrb r2, [r6] lsls r2, 9 adds r1, r3, 0x1 @@ -1540,7 +1540,7 @@ _0803421A: b _08034730 .align 2, 0 _08034224: .4byte gEnemyParty -_08034228: .4byte gUnknown_02023A60 +_08034228: .4byte gBattleBufferA _0803422C: movs r0, 0x64 muls r0, r5 @@ -2155,8 +2155,8 @@ _08034740: .4byte gEnemyParty thumb_func_start sub_8034744 sub_8034744: @ 8034744 push {r4-r7,lr} - ldr r1, _080347A8 @ =gUnknown_02024A6A - ldr r7, _080347AC @ =gUnknown_02024A60 + ldr r1, _080347A8 @ =gBattlePartyID + ldr r7, _080347AC @ =gActiveBank ldrb r2, [r7] lsls r0, r2, 1 adds r0, r1 @@ -2164,7 +2164,7 @@ sub_8034744: @ 8034744 movs r0, 0x64 adds r3, r1, 0 muls r3, r0 - ldr r4, _080347B0 @ =gUnknown_02023A60 + ldr r4, _080347B0 @ =gBattleBufferA lsls r2, 9 adds r0, r4, 0x1 adds r0, r2, r0 @@ -2200,28 +2200,28 @@ _0803477A: cmp r3, r0 bcc _0803477A _0803479C: - bl sub_80334EC + bl OpponentBufferExecCompleted pop {r4-r7} pop {r0} bx r0 .align 2, 0 -_080347A8: .4byte gUnknown_02024A6A -_080347AC: .4byte gUnknown_02024A60 -_080347B0: .4byte gUnknown_02023A60 +_080347A8: .4byte gBattlePartyID +_080347AC: .4byte gActiveBank +_080347B0: .4byte gBattleBufferA _080347B4: .4byte gEnemyParty thumb_func_end sub_8034744 - thumb_func_start sub_80347B8 -sub_80347B8: @ 80347B8 + thumb_func_start OpponentHandleLoadPokeSprite +OpponentHandleLoadPokeSprite: @ 80347B8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} - ldr r6, _080348E8 @ =gUnknown_02024A60 + ldr r6, _080348E8 @ =gActiveBank ldrb r0, [r6] lsls r0, 1 - ldr r1, _080348EC @ =gUnknown_02024A6A + ldr r1, _080348EC @ =gBattlePartyID adds r0, r1 ldrh r0, [r0] movs r7, 0x64 @@ -2237,14 +2237,14 @@ sub_80347B8: @ 80347B8 mov r8, r0 ldrb r1, [r6] lsls r0, r1, 1 - ldr r2, _080348EC @ =gUnknown_02024A6A + ldr r2, _080348EC @ =gBattlePartyID adds r0, r2 ldrh r0, [r0] muls r0, r7 add r0, r10 bl sub_8031794 ldrb r0, [r6] - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -2272,7 +2272,7 @@ sub_80347B8: @ 80347B8 adds r1, r5, 0 adds r2, r4, 0 bl CreateSprite - ldr r4, _080348F8 @ =gUnknown_02024BE0 + ldr r4, _080348F8 @ =gObjectBankIDs ldrb r1, [r6] adds r1, r4 strb r0, [r1] @@ -2329,7 +2329,7 @@ sub_80347B8: @ 80347B8 bl StartSpriteAnim ldrb r4, [r6] lsls r0, r4, 1 - ldr r2, _080348EC @ =gUnknown_02024A6A + ldr r2, _080348EC @ =gBattlePartyID adds r0, r2 ldrh r0, [r0] muls r0, r7 @@ -2341,7 +2341,7 @@ sub_80347B8: @ 80347B8 lsrs r1, 16 adds r0, r4, 0 bl sub_8032984 - ldr r1, _08034908 @ =gUnknown_03004330 + ldr r1, _08034908 @ =gBattleBankFunc ldrb r0, [r6] lsls r0, 2 adds r0, r1 @@ -2355,27 +2355,27 @@ sub_80347B8: @ 80347B8 pop {r0} bx r0 .align 2, 0 -_080348E8: .4byte gUnknown_02024A60 -_080348EC: .4byte gUnknown_02024A6A +_080348E8: .4byte gActiveBank +_080348EC: .4byte gBattlePartyID _080348F0: .4byte gEnemyParty _080348F4: .4byte gUnknown_02024E8C -_080348F8: .4byte gUnknown_02024BE0 +_080348F8: .4byte gObjectBankIDs _080348FC: .4byte gSprites _08034900: .4byte 0x0000ff10 _08034904: .4byte gBattleMonForms -_08034908: .4byte gUnknown_03004330 +_08034908: .4byte gBattleBankFunc _0803490C: .4byte sub_8033018 - thumb_func_end sub_80347B8 + thumb_func_end OpponentHandleLoadPokeSprite - thumb_func_start sub_8034910 -sub_8034910: @ 8034910 + thumb_func_start OpponentHandleSendOutPoke +OpponentHandleSendOutPoke: @ 8034910 push {r4,lr} - ldr r1, _08034948 @ =gUnknown_02024A6A - ldr r4, _0803494C @ =gUnknown_02024A60 + ldr r1, _08034948 @ =gBattlePartyID + ldr r4, _0803494C @ =gActiveBank ldrb r0, [r4] lsls r2, r0, 1 adds r2, r1 - ldr r3, _08034950 @ =gUnknown_02023A60 + ldr r3, _08034950 @ =gBattleBufferA lsls r0, 9 adds r1, r3, 0x1 adds r0, r1 @@ -2387,7 +2387,7 @@ sub_8034910: @ 8034910 adds r1, r3 ldrb r1, [r1] bl sub_803495C - ldr r1, _08034954 @ =gUnknown_03004330 + ldr r1, _08034954 @ =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 adds r0, r1 @@ -2397,12 +2397,12 @@ sub_8034910: @ 8034910 pop {r0} bx r0 .align 2, 0 -_08034948: .4byte gUnknown_02024A6A -_0803494C: .4byte gUnknown_02024A60 -_08034950: .4byte gUnknown_02023A60 -_08034954: .4byte gUnknown_03004330 +_08034948: .4byte gBattlePartyID +_0803494C: .4byte gActiveBank +_08034950: .4byte gBattleBufferA +_08034954: .4byte gBattleBankFunc _08034958: .4byte sub_80333D4 - thumb_func_end sub_8034910 + thumb_func_end OpponentHandleSendOutPoke thumb_func_start sub_803495C sub_803495C: @ 803495C @@ -2418,10 +2418,10 @@ sub_803495C: @ 803495C lsrs r1, 24 adds r0, r6, 0 bl sub_8032AA8 - ldr r0, _08034AB8 @ =gUnknown_02024A6A + ldr r0, _08034AB8 @ =gBattlePartyID lsls r4, r6, 1 adds r4, r0 - ldr r0, _08034ABC @ =gUnknown_02023A60 + ldr r0, _08034ABC @ =gBattleBufferA lsls r1, r6, 9 adds r0, 0x1 adds r1, r0 @@ -2456,7 +2456,7 @@ sub_803495C: @ 803495C adds r1, r6, 0 bl sub_8031794 adds r0, r6, 0 - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -2484,7 +2484,7 @@ sub_803495C: @ 803495C adds r1, r5, 0 adds r2, r4, 0 bl CreateSprite - ldr r4, _08034AD0 @ =gUnknown_02024BE0 + ldr r4, _08034AD0 @ =gObjectBankIDs adds r4, r6, r4 strb r0, [r4] ldr r5, _08034AD4 @ =gSprites @@ -2568,23 +2568,23 @@ sub_803495C: @ 803495C pop {r0} bx r0 .align 2, 0 -_08034AB8: .4byte gUnknown_02024A6A -_08034ABC: .4byte gUnknown_02023A60 +_08034AB8: .4byte gBattlePartyID +_08034ABC: .4byte gBattleBufferA _08034AC0: .4byte gEnemyParty _08034AC4: .4byte sub_80312F0 _08034AC8: .4byte gUnknown_0300434C _08034ACC: .4byte gUnknown_02024E8C -_08034AD0: .4byte gUnknown_02024BE0 +_08034AD0: .4byte gObjectBankIDs _08034AD4: .4byte gSprites _08034AD8: .4byte gBattleMonForms _08034ADC: .4byte SpriteCallbackDummy thumb_func_end sub_803495C - thumb_func_start sub_8034AE0 -sub_8034AE0: @ 8034AE0 + thumb_func_start OpponentHandleReturnPokeToBall +OpponentHandleReturnPokeToBall: @ 8034AE0 push {r4-r6,lr} - ldr r1, _08034B10 @ =gUnknown_02023A60 - ldr r6, _08034B14 @ =gUnknown_02024A60 + ldr r1, _08034B10 @ =gBattleBufferA + ldr r6, _08034B14 @ =gActiveBank ldrb r2, [r6] lsls r0, r2, 9 adds r1, 0x1 @@ -2598,7 +2598,7 @@ sub_8034AE0: @ 8034AE0 ldr r1, _08034B18 @ =0x02017810 adds r0, r1 strb r3, [r0, 0x4] - ldr r1, _08034B1C @ =gUnknown_03004330 + ldr r1, _08034B1C @ =gBattleBankFunc ldrb r0, [r6] lsls r0, 2 adds r0, r1 @@ -2606,13 +2606,13 @@ sub_8034AE0: @ 8034AE0 str r1, [r0] b _08034B60 .align 2, 0 -_08034B10: .4byte gUnknown_02023A60 -_08034B14: .4byte gUnknown_02024A60 +_08034B10: .4byte gBattleBufferA +_08034B14: .4byte gActiveBank _08034B18: .4byte 0x02017810 -_08034B1C: .4byte gUnknown_03004330 +_08034B1C: .4byte gBattleBankFunc _08034B20: .4byte sub_8034B74 _08034B24: - ldr r5, _08034B68 @ =gUnknown_02024BE0 + ldr r5, _08034B68 @ =gObjectBankIDs adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 @@ -2631,26 +2631,26 @@ _08034B24: bl DestroySprite ldrb r0, [r6] bl sub_8032A08 - ldr r1, _08034B70 @ =gUnknown_03004340 + ldr r1, _08034B70 @ =gHealthboxIDs ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] bl sub_8043DB0 - bl sub_80334EC + bl OpponentBufferExecCompleted _08034B60: pop {r4-r6} pop {r0} bx r0 .align 2, 0 -_08034B68: .4byte gUnknown_02024BE0 +_08034B68: .4byte gObjectBankIDs _08034B6C: .4byte gSprites -_08034B70: .4byte gUnknown_03004340 - thumb_func_end sub_8034AE0 +_08034B70: .4byte gHealthboxIDs + thumb_func_end OpponentHandleReturnPokeToBall thumb_func_start sub_8034B74 sub_8034B74: @ 8034B74 push {r4,r5,lr} - ldr r5, _08034B90 @ =gUnknown_02024A60 + ldr r5, _08034B90 @ =gActiveBank ldrb r2, [r5] lsls r0, r2, 1 adds r0, r2 @@ -2664,7 +2664,7 @@ sub_8034B74: @ 8034B74 beq _08034BC4 b _08034BEC .align 2, 0 -_08034B90: .4byte gUnknown_02024A60 +_08034B90: .4byte gActiveBank _08034B94: .4byte 0x02017810 _08034B98: lsls r0, r2, 2 @@ -2703,7 +2703,7 @@ _08034BC4: adds r1, r2, 0 movs r3, 0x2 bl move_anim_start_t4 - ldr r1, _08034BF4 @ =gUnknown_03004330 + ldr r1, _08034BF4 @ =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 adds r0, r1 @@ -2714,12 +2714,12 @@ _08034BEC: pop {r0} bx r0 .align 2, 0 -_08034BF4: .4byte gUnknown_03004330 +_08034BF4: .4byte gBattleBankFunc _08034BF8: .4byte sub_8033160 thumb_func_end sub_8034B74 - thumb_func_start sub_8034BFC -sub_8034BFC: @ 8034BFC + thumb_func_start OpponentHandleTrainerThrow +OpponentHandleTrainerThrow: @ 8034BFC push {r4-r6,lr} mov r6, r9 mov r5, r8 @@ -2767,14 +2767,14 @@ _08034C48: ldrb r0, [r0, 0x3] _08034C56: mov r9, r0 - ldr r0, _08034D8C @ =gUnknown_02024A60 + ldr r0, _08034D8C @ =gActiveBank mov r8, r0 ldrb r1, [r0] mov r0, r9 bl sub_8031A6C mov r1, r8 ldrb r0, [r1] - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -2803,7 +2803,7 @@ _08034C56: movs r1, 0xB0 adds r2, r4, 0 bl CreateSprite - ldr r5, _08034D98 @ =gUnknown_02024BE0 + ldr r5, _08034D98 @ =gObjectBankIDs mov r2, r8 ldrb r1, [r2] adds r1, r5 @@ -2899,7 +2899,7 @@ _08034C56: adds r0, r4 ldr r1, _08034DB4 @ =sub_80313A0 str r1, [r0] - ldr r1, _08034DB8 @ =gUnknown_03004330 + ldr r1, _08034DB8 @ =gBattleBankFunc mov r2, r8 ldrb r0, [r2] lsls r0, 2 @@ -2914,10 +2914,10 @@ _08034C56: bx r0 .align 2, 0 _08034D88: .4byte gTrainers -_08034D8C: .4byte gUnknown_02024A60 +_08034D8C: .4byte gActiveBank _08034D90: .4byte gUnknown_02024E8C _08034D94: .4byte gTrainerFrontPicCoords -_08034D98: .4byte gUnknown_02024BE0 +_08034D98: .4byte gObjectBankIDs _08034D9C: .4byte gSprites _08034DA0: .4byte 0x0000ff10 _08034DA4: .4byte gTrainerFrontPicPaletteTable @@ -2925,12 +2925,12 @@ _08034DA8: .4byte gTrainerFrontPicTable _08034DAC: .4byte 0x000003ff _08034DB0: .4byte 0xfffffc00 _08034DB4: .4byte sub_80313A0 -_08034DB8: .4byte gUnknown_03004330 +_08034DB8: .4byte gBattleBankFunc _08034DBC: .4byte sub_8032B4C - thumb_func_end sub_8034BFC + thumb_func_end OpponentHandleTrainerThrow - thumb_func_start sub_8034DC0 -sub_8034DC0: @ 8034DC0 + thumb_func_start OpponentHandleTrainerSlide +OpponentHandleTrainerSlide: @ 8034DC0 push {r4-r6,lr} mov r6, r9 mov r5, r8 @@ -2978,14 +2978,14 @@ _08034E0C: ldrb r0, [r0, 0x3] _08034E1A: mov r9, r0 - ldr r0, _08034F50 @ =gUnknown_02024A60 + ldr r0, _08034F50 @ =gActiveBank mov r8, r0 ldrb r1, [r0] mov r0, r9 bl sub_8031A6C mov r1, r8 ldrb r0, [r1] - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -3007,7 +3007,7 @@ _08034E1A: movs r1, 0xB0 movs r3, 0x1E bl CreateSprite - ldr r5, _08034F5C @ =gUnknown_02024BE0 + ldr r5, _08034F5C @ =gObjectBankIDs mov r2, r8 ldrb r1, [r2] adds r1, r5 @@ -3112,7 +3112,7 @@ _08034E1A: adds r0, r4 ldr r1, _08034F78 @ =sub_80313A0 str r1, [r0] - ldr r1, _08034F7C @ =gUnknown_03004330 + ldr r1, _08034F7C @ =gBattleBankFunc ldrb r0, [r3] lsls r0, 2 adds r0, r1 @@ -3126,10 +3126,10 @@ _08034E1A: bx r0 .align 2, 0 _08034F4C: .4byte gTrainers -_08034F50: .4byte gUnknown_02024A60 +_08034F50: .4byte gActiveBank _08034F54: .4byte gUnknown_02024E8C _08034F58: .4byte gTrainerFrontPicCoords -_08034F5C: .4byte gUnknown_02024BE0 +_08034F5C: .4byte gObjectBankIDs _08034F60: .4byte gSprites _08034F64: .4byte 0x0000fffe _08034F68: .4byte gTrainerFrontPicPaletteTable @@ -3137,15 +3137,15 @@ _08034F6C: .4byte gTrainerFrontPicTable _08034F70: .4byte 0x000003ff _08034F74: .4byte 0xfffffc00 _08034F78: .4byte sub_80313A0 -_08034F7C: .4byte gUnknown_03004330 +_08034F7C: .4byte gBattleBankFunc _08034F80: .4byte sub_8032B84 - thumb_func_end sub_8034DC0 + thumb_func_end OpponentHandleTrainerSlide - thumb_func_start sub_8034F84 -sub_8034F84: @ 8034F84 + thumb_func_start OpponentHandleTrainerSlideBack +OpponentHandleTrainerSlideBack: @ 8034F84 push {r4-r6,lr} - ldr r6, _08035014 @ =gUnknown_02024BE0 - ldr r4, _08035018 @ =gUnknown_02024A60 + ldr r6, _08035014 @ =gObjectBankIDs + ldr r4, _08035018 @ =gActiveBank ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] @@ -3203,7 +3203,7 @@ sub_8034F84: @ 8034F84 adds r0, r5 ldr r1, _08035024 @ =SpriteCallbackDummy bl oamt_set_x3A_32 - ldr r1, _08035028 @ =gUnknown_03004330 + ldr r1, _08035028 @ =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 adds r0, r1 @@ -3213,19 +3213,19 @@ sub_8034F84: @ 8034F84 pop {r0} bx r0 .align 2, 0 -_08035014: .4byte gUnknown_02024BE0 -_08035018: .4byte gUnknown_02024A60 +_08035014: .4byte gObjectBankIDs +_08035018: .4byte gActiveBank _0803501C: .4byte gSprites _08035020: .4byte sub_8078B34 _08035024: .4byte SpriteCallbackDummy -_08035028: .4byte gUnknown_03004330 +_08035028: .4byte gBattleBankFunc _0803502C: .4byte sub_8032BBC - thumb_func_end sub_8034F84 + thumb_func_end OpponentHandleTrainerSlideBack thumb_func_start sub_8035030 sub_8035030: @ 8035030 push {r4,r5,lr} - ldr r5, _08035074 @ =gUnknown_02024A60 + ldr r5, _08035074 @ =gActiveBank ldrb r2, [r5] lsls r0, r2, 1 adds r0, r2 @@ -3259,7 +3259,7 @@ _08035062: strb r0, [r1, 0x4] b _080350B8 .align 2, 0 -_08035074: .4byte gUnknown_02024A60 +_08035074: .4byte gActiveBank _08035078: .4byte 0x02017810 _0803507C: ldrb r1, [r3] @@ -3274,7 +3274,7 @@ _0803507C: movs r1, 0x3F bl PlaySE12WithPanning ldr r2, _080350C0 @ =gSprites - ldr r1, _080350C4 @ =gUnknown_02024BE0 + ldr r1, _080350C4 @ =gObjectBankIDs ldrb r0, [r5] adds r0, r1 ldrb r1, [r0] @@ -3285,7 +3285,7 @@ _0803507C: adds r0, r2 ldr r1, _080350C8 @ =sub_8010384 str r1, [r0] - ldr r1, _080350CC @ =gUnknown_03004330 + ldr r1, _080350CC @ =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 adds r0, r1 @@ -3297,16 +3297,16 @@ _080350B8: bx r0 .align 2, 0 _080350C0: .4byte gSprites -_080350C4: .4byte gUnknown_02024BE0 +_080350C4: .4byte gObjectBankIDs _080350C8: .4byte sub_8010384 -_080350CC: .4byte gUnknown_03004330 +_080350CC: .4byte gBattleBankFunc _080350D0: .4byte sub_803311C thumb_func_end sub_8035030 thumb_func_start sub_80350D4 sub_80350D4: @ 80350D4 push {lr} - bl sub_80334EC + bl OpponentBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_80350D4 @@ -3314,31 +3314,31 @@ sub_80350D4: @ 80350D4 thumb_func_start sub_80350E0 sub_80350E0: @ 80350E0 push {lr} - bl sub_80334EC + bl OpponentBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_80350E0 - thumb_func_start sub_80350EC -sub_80350EC: @ 80350EC + thumb_func_start OpponentHandleBallThrow +OpponentHandleBallThrow: @ 80350EC push {lr} - bl sub_80334EC + bl OpponentBufferExecCompleted pop {r0} bx r0 - thumb_func_end sub_80350EC + thumb_func_end OpponentHandleBallThrow - thumb_func_start sub_80350F8 -sub_80350F8: @ 80350F8 + thumb_func_start OpponentHandlePause +OpponentHandlePause: @ 80350F8 push {lr} - bl sub_80334EC + bl OpponentBufferExecCompleted pop {r0} bx r0 - thumb_func_end sub_80350F8 + thumb_func_end OpponentHandlePause - thumb_func_start sub_8035104 -sub_8035104: @ 8035104 + thumb_func_start OpponentHandleMoveAnimation +OpponentHandleMoveAnimation: @ 8035104 push {r4-r6,lr} - ldr r6, _080351E8 @ =gUnknown_02024A60 + ldr r6, _080351E8 @ =gActiveBank ldrb r0, [r6] bl mplay_80342A4 lsls r0, 24 @@ -3346,7 +3346,7 @@ sub_8035104: @ 8035104 beq _08035116 b _08035226 _08035116: - ldr r0, _080351EC @ =gUnknown_02023A60 + ldr r0, _080351EC @ =gBattleBufferA mov r12, r0 ldrb r2, [r6] lsls r2, 9 @@ -3365,7 +3365,7 @@ _08035116: adds r2, r1 ldrb r1, [r2] strb r1, [r5] - ldr r4, _080351F4 @ =gUnknown_0202F7BC + ldr r4, _080351F4 @ =gMovePowerMoveAnim ldrb r2, [r6] lsls r2, 9 mov r1, r12 @@ -3379,7 +3379,7 @@ _08035116: lsls r1, 8 orrs r3, r1 strh r3, [r4] - ldr r4, _080351F8 @ =gUnknown_0202F7B8 + ldr r4, _080351F8 @ =gMoveDmgMoveAnim ldrb r2, [r6] lsls r2, 9 mov r1, r12 @@ -3405,7 +3405,7 @@ _08035116: lsls r1, 24 orrs r3, r1 str r3, [r4] - ldr r3, _080351FC @ =gUnknown_0202F7BE + ldr r3, _080351FC @ =gHappinessMoveAnim ldrb r1, [r6] lsls r1, 9 mov r2, r12 @@ -3413,7 +3413,7 @@ _08035116: adds r1, r2 ldrb r1, [r1] strb r1, [r3] - ldr r4, _08035200 @ =gUnknown_0202F7C0 + ldr r4, _08035200 @ =gWeatherMoveAnim ldrb r2, [r6] lsls r2, 9 mov r1, r12 @@ -3427,14 +3427,14 @@ _08035116: lsls r1, 8 orrs r3, r1 strh r3, [r4] - ldr r3, _08035204 @ =gUnknown_0202F7B4 + ldr r3, _08035204 @ =gDisableStructMoveAnim ldrb r2, [r6] lsls r2, 9 mov r1, r12 adds r1, 0x10 adds r2, r1 str r2, [r3] - ldr r3, _08035208 @ =gUnknown_02024E70 + ldr r3, _08035208 @ =gPID_perBank ldrb r1, [r6] lsls r1, 2 adds r1, r3 @@ -3446,18 +3446,18 @@ _08035116: lsrs r2, r0, 24 cmp r2, 0 beq _0803520C - bl sub_80334EC + bl OpponentBufferExecCompleted b _08035226 .align 2, 0 -_080351E8: .4byte gUnknown_02024A60 -_080351EC: .4byte gUnknown_02023A60 +_080351E8: .4byte gActiveBank +_080351EC: .4byte gBattleBufferA _080351F0: .4byte gUnknown_0202F7C4 -_080351F4: .4byte gUnknown_0202F7BC -_080351F8: .4byte gUnknown_0202F7B8 -_080351FC: .4byte gUnknown_0202F7BE -_08035200: .4byte gUnknown_0202F7C0 -_08035204: .4byte gUnknown_0202F7B4 -_08035208: .4byte gUnknown_02024E70 +_080351F4: .4byte gMovePowerMoveAnim +_080351F8: .4byte gMoveDmgMoveAnim +_080351FC: .4byte gHappinessMoveAnim +_08035200: .4byte gWeatherMoveAnim +_08035204: .4byte gDisableStructMoveAnim +_08035208: .4byte gPID_perBank _0803520C: ldrb r1, [r6] lsls r0, r1, 1 @@ -3466,7 +3466,7 @@ _0803520C: ldr r1, _0803522C @ =0x02017810 adds r0, r1 strb r2, [r0, 0x4] - ldr r1, _08035230 @ =gUnknown_03004330 + ldr r1, _08035230 @ =gBattleBankFunc ldrb r0, [r6] lsls r0, 2 adds r0, r1 @@ -3478,9 +3478,9 @@ _08035226: bx r0 .align 2, 0 _0803522C: .4byte 0x02017810 -_08035230: .4byte gUnknown_03004330 +_08035230: .4byte gBattleBankFunc _08035234: .4byte sub_8035238 - thumb_func_end sub_8035104 + thumb_func_end OpponentHandleMoveAnimation thumb_func_start sub_8035238 sub_8035238: @ 8035238 @@ -3488,8 +3488,8 @@ sub_8035238: @ 8035238 mov r7, r9 mov r6, r8 push {r6,r7} - ldr r2, _0803527C @ =gUnknown_02023A60 - ldr r5, _08035280 @ =gUnknown_02024A60 + ldr r2, _0803527C @ =gBattleBufferA + ldr r5, _08035280 @ =gActiveBank ldrb r3, [r5] lsls r1, r3, 9 adds r0, r2, 0x1 @@ -3519,8 +3519,8 @@ sub_8035238: @ 8035238 beq _08035292 b _08035390 .align 2, 0 -_0803527C: .4byte gUnknown_02023A60 -_08035280: .4byte gUnknown_02024A60 +_0803527C: .4byte gBattleBufferA +_08035280: .4byte gActiveBank _08035284: .4byte 0x02017810 _08035288: cmp r2, 0x2 @@ -3608,7 +3608,7 @@ _080352EC: ands r1, r2 strb r1, [r0] _08035334: - ldr r0, _08035350 @ =gUnknown_02024A60 + ldr r0, _08035350 @ =gActiveBank ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -3621,7 +3621,7 @@ _08035334: .align 2, 0 _08035348: .4byte gAnimScriptCallback _0803534C: .4byte gAnimScriptActive -_08035350: .4byte gUnknown_02024A60 +_08035350: .4byte gActiveBank _08035354: .4byte 0x02017810 _08035358: ldrb r1, [r0] @@ -3648,7 +3648,7 @@ _08035358: lsls r0, 2 adds r0, r6 strb r4, [r0, 0x4] - bl sub_80334EC + bl OpponentBufferExecCompleted _08035390: pop {r3,r4} mov r8, r3 @@ -3658,8 +3658,8 @@ _08035390: bx r0 thumb_func_end sub_8035238 - thumb_func_start sub_803539C -sub_803539C: @ 803539C + thumb_func_start OpponentHandlePrintString +OpponentHandlePrintString: @ 803539C push {r4,lr} sub sp, 0x4 ldr r0, _080353E0 @ =gUnknown_030042A4 @@ -3667,21 +3667,21 @@ sub_803539C: @ 803539C strh r1, [r0] ldr r0, _080353E4 @ =gUnknown_030042A0 strh r1, [r0] - ldr r4, _080353E8 @ =gUnknown_02024A60 + ldr r4, _080353E8 @ =gActiveBank ldrb r0, [r4] lsls r0, 9 ldr r1, _080353EC @ =gUnknown_02023A62 adds r0, r1 ldrh r0, [r0] - bl sub_8120AA8 + bl BufferStringBattle ldr r0, _080353F0 @ =gUnknown_03004210 - ldr r1, _080353F4 @ =gUnknown_020238CC + ldr r1, _080353F4 @ =gDisplayedStringBattle movs r2, 0xF str r2, [sp] movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 - ldr r1, _080353F8 @ =gUnknown_03004330 + ldr r1, _080353F8 @ =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 adds r0, r1 @@ -3694,27 +3694,27 @@ sub_803539C: @ 803539C .align 2, 0 _080353E0: .4byte gUnknown_030042A4 _080353E4: .4byte gUnknown_030042A0 -_080353E8: .4byte gUnknown_02024A60 +_080353E8: .4byte gActiveBank _080353EC: .4byte gUnknown_02023A62 _080353F0: .4byte gUnknown_03004210 -_080353F4: .4byte gUnknown_020238CC -_080353F8: .4byte gUnknown_03004330 +_080353F4: .4byte gDisplayedStringBattle +_080353F8: .4byte gBattleBankFunc _080353FC: .4byte sub_80331D0 - thumb_func_end sub_803539C + thumb_func_end OpponentHandlePrintString - thumb_func_start sub_8035400 -sub_8035400: @ 8035400 + thumb_func_start OpponentHandlePrintStringPlayerOnly +OpponentHandlePrintStringPlayerOnly: @ 8035400 push {lr} - bl sub_80334EC + bl OpponentBufferExecCompleted pop {r0} bx r0 - thumb_func_end sub_8035400 + thumb_func_end OpponentHandlePrintStringPlayerOnly thumb_func_start sub_803540C sub_803540C: @ 803540C push {lr} bl sub_8036B0C - bl sub_80334EC + bl OpponentBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_803540C @@ -3722,7 +3722,7 @@ sub_803540C: @ 803540C thumb_func_start sub_803541C sub_803541C: @ 803541C push {lr} - bl sub_80334EC + bl OpponentBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_803541C @@ -3730,7 +3730,7 @@ sub_803541C: @ 803541C thumb_func_start sub_8035428 sub_8035428: @ 8035428 push {r4-r6,lr} - ldr r6, _0803545C @ =gUnknown_02024A60 + ldr r6, _0803545C @ =gActiveBank ldrb r0, [r6] lsls r0, 9 ldr r1, _08035460 @ =gUnknown_02023A64 @@ -3754,7 +3754,7 @@ sub_8035428: @ 8035428 movs r1, 0x4 b _0803546C .align 2, 0 -_0803545C: .4byte gUnknown_02024A60 +_0803545C: .4byte gActiveBank _08035460: .4byte gUnknown_02023A64 _08035464: .4byte gBattleTypeFlags _08035468: @@ -3778,7 +3778,7 @@ _08035474: ands r0, r1 cmp r0, 0 beq _08035494 - ldr r1, _080354EC @ =gEnemyMonIndex + ldr r1, _080354EC @ =gBankTarget ldrb r0, [r6] strb r0, [r1] _08035494: @@ -3793,10 +3793,10 @@ _08035494: cmp r0, 0 beq _080354CE movs r0, 0 - bl battle_get_side_with_given_state - ldr r5, _080354EC @ =gEnemyMonIndex + bl GetBankByPlayerAI + ldr r5, _080354EC @ =gBankTarget strb r0, [r5] - ldr r0, _080354F0 @ =gUnknown_02024C0C + ldr r0, _080354F0 @ =gAbsentBankFlags ldrb r1, [r0] ldr r2, _080354F4 @ =gBitTable ldrb r0, [r5] @@ -3807,10 +3807,10 @@ _08035494: cmp r1, 0 beq _080354CE movs r0, 0x2 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI strb r0, [r5] _080354CE: - ldr r0, _080354EC @ =gEnemyMonIndex + ldr r0, _080354EC @ =gBankTarget ldrb r0, [r0] lsls r0, 8 orrs r4, r0 @@ -3819,12 +3819,12 @@ _080354CE: adds r2, r4, 0 bl dp01_build_cmdbuf_x21_a_bb _080354E0: - bl sub_80334EC + bl OpponentBufferExecCompleted b _0803558A .align 2, 0 _080354E8: .4byte gBattleMoves -_080354EC: .4byte gEnemyMonIndex -_080354F0: .4byte gUnknown_02024C0C +_080354EC: .4byte gBankTarget +_080354F0: .4byte gAbsentBankFlags _080354F4: .4byte gBitTable _080354F8: movs r6, 0x3 @@ -3847,7 +3847,7 @@ _080354FA: ands r0, r1 cmp r0, 0 beq _0803553C - ldr r0, _08035538 @ =gUnknown_02024A60 + ldr r0, _08035538 @ =gActiveBank ldrb r0, [r0] lsls r0, 8 orrs r4, r0 @@ -3858,7 +3858,7 @@ _080354FA: b _08035586 .align 2, 0 _08035534: .4byte gBattleMoves -_08035538: .4byte gUnknown_02024A60 +_08035538: .4byte gActiveBank _0803553C: ldr r0, _0803556C @ =gBattleTypeFlags ldrh r1, [r0] @@ -3872,7 +3872,7 @@ _0803553C: lsls r1, 24 lsrs r1, 24 adds r0, r1, 0 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI adds r2, r0, 0 lsls r2, 24 lsrs r2, 16 @@ -3885,7 +3885,7 @@ _0803553C: _0803556C: .4byte gBattleTypeFlags _08035570: movs r0, 0 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI adds r2, r0, 0 lsls r2, 24 lsrs r2, 16 @@ -3894,7 +3894,7 @@ _08035570: movs r1, 0xA bl dp01_build_cmdbuf_x21_a_bb _08035586: - bl sub_80334EC + bl OpponentBufferExecCompleted _0803558A: pop {r4-r6} pop {r0} @@ -3905,7 +3905,7 @@ _0803558A: sub_8035590: @ 8035590 push {lr} ldr r1, _080355B4 @ =0x02000000 - ldr r0, _080355B8 @ =gUnknown_02024A60 + ldr r0, _080355B8 @ =gActiveBank ldrb r0, [r0] lsrs r0, 1 lsls r0, 1 @@ -3915,12 +3915,12 @@ sub_8035590: @ 8035590 ldrb r1, [r0] movs r0, 0x1 bl dp01_build_cmdbuf_x23_aa_0 - bl sub_80334EC + bl OpponentBufferExecCompleted pop {r0} bx r0 .align 2, 0 _080355B4: .4byte 0x02000000 -_080355B8: .4byte gUnknown_02024A60 +_080355B8: .4byte gActiveBank _080355BC: .4byte 0x000160d4 thumb_func_end sub_8035590 @@ -3928,9 +3928,9 @@ _080355BC: .4byte 0x000160d4 sub_80355C0: @ 80355C0 push {r4-r6,lr} ldr r6, _08035604 @ =0x02000000 - ldr r5, _08035608 @ =gUnknown_02024A60 + ldr r5, _08035608 @ =gActiveBank ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 25 ldr r1, _0803560C @ =0x000160c8 @@ -3951,23 +3951,23 @@ sub_80355C0: @ 80355C0 cmp r0, 0 bne _08035614 movs r0, 0x1 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r5, r0, 24 adds r6, r5, 0 b _08035628 .align 2, 0 _08035604: .4byte 0x02000000 -_08035608: .4byte gUnknown_02024A60 +_08035608: .4byte gActiveBank _0803560C: .4byte 0x000160c8 _08035610: .4byte gBattleTypeFlags _08035614: movs r0, 0x1 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r6, r0, 24 movs r0, 0x3 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r5, r0, 24 _08035628: @@ -3986,7 +3986,7 @@ _0803562E: bl GetMonData cmp r0, 0 beq _0803562C - ldr r1, _08035660 @ =gUnknown_02024A6A + ldr r1, _08035660 @ =gBattlePartyID lsls r0, r6, 1 adds r0, r1 ldrh r0, [r0] @@ -4000,10 +4000,10 @@ _0803562E: b _0803568A .align 2, 0 _0803565C: .4byte gEnemyParty -_08035660: .4byte gUnknown_02024A6A +_08035660: .4byte gBattlePartyID _08035664: ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 25 ldr r2, _080356B0 @ =0x000160c8 @@ -4011,7 +4011,7 @@ _08035664: adds r0, r6 ldrb r4, [r0] ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 25 ldr r1, _080356B0 @ =0x000160c8 @@ -4021,7 +4021,7 @@ _08035664: strb r1, [r0] _0803568A: ldr r1, _080356B4 @ =0x02000000 - ldr r0, _080356B8 @ =gUnknown_02024A60 + ldr r0, _080356B8 @ =gActiveBank ldrb r0, [r0] ldr r2, _080356BC @ =0x00016068 adds r0, r2 @@ -4032,27 +4032,27 @@ _0803568A: movs r0, 0x1 movs r2, 0 bl dp01_build_cmdbuf_x22_a_three_bytes - bl sub_80334EC + bl OpponentBufferExecCompleted pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080356B0: .4byte 0x000160c8 _080356B4: .4byte 0x02000000 -_080356B8: .4byte gUnknown_02024A60 +_080356B8: .4byte gActiveBank _080356BC: .4byte 0x00016068 thumb_func_end sub_80355C0 thumb_func_start sub_80356C0 sub_80356C0: @ 80356C0 push {lr} - bl sub_80334EC + bl OpponentBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_80356C0 - thumb_func_start sub_80356CC -sub_80356CC: @ 80356CC + thumb_func_start OpponentHandleHealthBarUpdate +OpponentHandleHealthBarUpdate: @ 80356CC push {r4-r7,lr} mov r7, r9 mov r6, r8 @@ -4060,8 +4060,8 @@ sub_80356CC: @ 80356CC sub sp, 0x4 movs r0, 0 bl load_gfxc_health_bar - ldr r3, _08035744 @ =gUnknown_02023A60 - ldr r0, _08035748 @ =gUnknown_02024A60 + ldr r3, _08035744 @ =gBattleBufferA + ldr r0, _08035748 @ =gActiveBank mov r9, r0 ldrb r4, [r0] lsls r2, r4, 9 @@ -4078,7 +4078,7 @@ sub_80356CC: @ 80356CC ldr r0, _0803574C @ =0x00007fff cmp r7, r0 beq _0803575C - ldr r6, _08035750 @ =gUnknown_02024A6A + ldr r6, _08035750 @ =gBattlePartyID lsls r0, r4, 1 adds r0, r6 ldrh r0, [r0] @@ -4101,7 +4101,7 @@ sub_80356CC: @ 80356CC adds r3, r0, 0 mov r1, r9 ldrb r0, [r1] - ldr r1, _08035758 @ =gUnknown_03004340 + ldr r1, _08035758 @ =gHealthboxIDs adds r1, r0, r1 ldrb r1, [r1] str r7, [sp] @@ -4109,14 +4109,14 @@ sub_80356CC: @ 80356CC bl sub_8043D84 b _08035786 .align 2, 0 -_08035744: .4byte gUnknown_02023A60 -_08035748: .4byte gUnknown_02024A60 +_08035744: .4byte gBattleBufferA +_08035748: .4byte gActiveBank _0803574C: .4byte 0x00007fff -_08035750: .4byte gUnknown_02024A6A +_08035750: .4byte gBattlePartyID _08035754: .4byte gEnemyParty -_08035758: .4byte gUnknown_03004340 +_08035758: .4byte gHealthboxIDs _0803575C: - ldr r1, _080357A4 @ =gUnknown_02024A6A + ldr r1, _080357A4 @ =gBattlePartyID lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] @@ -4129,15 +4129,15 @@ _0803575C: adds r2, r0, 0 mov r1, r9 ldrb r0, [r1] - ldr r1, _080357AC @ =gUnknown_03004340 + ldr r1, _080357AC @ =gHealthboxIDs adds r1, r0, r1 ldrb r1, [r1] str r7, [sp] movs r3, 0 bl sub_8043D84 _08035786: - ldr r1, _080357B0 @ =gUnknown_03004330 - ldr r0, _080357B4 @ =gUnknown_02024A60 + ldr r1, _080357B0 @ =gBattleBankFunc + ldr r0, _080357B4 @ =gActiveBank ldrb r0, [r0] lsls r0, 2 adds r0, r1 @@ -4151,36 +4151,36 @@ _08035786: pop {r0} bx r0 .align 2, 0 -_080357A4: .4byte gUnknown_02024A6A +_080357A4: .4byte gBattlePartyID _080357A8: .4byte gEnemyParty -_080357AC: .4byte gUnknown_03004340 -_080357B0: .4byte gUnknown_03004330 -_080357B4: .4byte gUnknown_02024A60 +_080357AC: .4byte gHealthboxIDs +_080357B0: .4byte gBattleBankFunc +_080357B4: .4byte gActiveBank _080357B8: .4byte sub_80330C8 - thumb_func_end sub_80356CC + thumb_func_end OpponentHandleHealthBarUpdate - thumb_func_start sub_80357BC -sub_80357BC: @ 80357BC + thumb_func_start OpponentHandleExpBarUpdate +OpponentHandleExpBarUpdate: @ 80357BC push {lr} - bl sub_80334EC + bl OpponentBufferExecCompleted pop {r0} bx r0 - thumb_func_end sub_80357BC + thumb_func_end OpponentHandleExpBarUpdate - thumb_func_start sub_80357C8 -sub_80357C8: @ 80357C8 + thumb_func_start OpponentHandleStatusIconUpdate +OpponentHandleStatusIconUpdate: @ 80357C8 push {r4,lr} - ldr r4, _08035820 @ =gUnknown_02024A60 + ldr r4, _08035820 @ =gActiveBank ldrb r0, [r4] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 bne _08035818 - ldr r0, _08035824 @ =gUnknown_03004340 + ldr r0, _08035824 @ =gHealthboxIDs ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] - ldr r2, _08035828 @ =gUnknown_02024A6A + ldr r2, _08035828 @ =gBattlePartyID lsls r1, 1 adds r1, r2 ldrh r2, [r1] @@ -4201,7 +4201,7 @@ sub_80357C8: @ 80357C8 negs r0, r0 ands r0, r2 strb r0, [r1] - ldr r1, _08035834 @ =gUnknown_03004330 + ldr r1, _08035834 @ =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 adds r0, r1 @@ -4212,25 +4212,25 @@ _08035818: pop {r0} bx r0 .align 2, 0 -_08035820: .4byte gUnknown_02024A60 -_08035824: .4byte gUnknown_03004340 -_08035828: .4byte gUnknown_02024A6A +_08035820: .4byte gActiveBank +_08035824: .4byte gHealthboxIDs +_08035828: .4byte gBattlePartyID _0803582C: .4byte gEnemyParty _08035830: .4byte 0x02017810 -_08035834: .4byte gUnknown_03004330 +_08035834: .4byte gBattleBankFunc _08035838: .4byte sub_8033494 - thumb_func_end sub_80357C8 + thumb_func_end OpponentHandleStatusIconUpdate - thumb_func_start sub_803583C -sub_803583C: @ 803583C + thumb_func_start OpponentHandleStatusAnimation +OpponentHandleStatusAnimation: @ 803583C push {r4,r5,lr} - ldr r5, _08035894 @ =gUnknown_02024A60 + ldr r5, _08035894 @ =gActiveBank ldrb r0, [r5] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 bne _0803588C - ldr r4, _08035898 @ =gUnknown_02023A60 + ldr r4, _08035898 @ =gBattleBufferA ldrb r3, [r5] lsls r3, 9 adds r0, r4, 0x1 @@ -4255,7 +4255,7 @@ sub_803583C: @ 803583C lsls r2, 24 orrs r1, r2 bl move_anim_start_t2_for_situation - ldr r1, _0803589C @ =gUnknown_03004330 + ldr r1, _0803589C @ =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 adds r0, r1 @@ -4266,40 +4266,40 @@ _0803588C: pop {r0} bx r0 .align 2, 0 -_08035894: .4byte gUnknown_02024A60 -_08035898: .4byte gUnknown_02023A60 -_0803589C: .4byte gUnknown_03004330 +_08035894: .4byte gActiveBank +_08035898: .4byte gBattleBufferA +_0803589C: .4byte gBattleBankFunc _080358A0: .4byte sub_8033494 - thumb_func_end sub_803583C + thumb_func_end OpponentHandleStatusAnimation - thumb_func_start sub_80358A4 -sub_80358A4: @ 80358A4 + thumb_func_start OpponentHandleStatusXor +OpponentHandleStatusXor: @ 80358A4 push {lr} - bl sub_80334EC + bl OpponentBufferExecCompleted pop {r0} bx r0 - thumb_func_end sub_80358A4 + thumb_func_end OpponentHandleStatusXor thumb_func_start sub_80358B0 sub_80358B0: @ 80358B0 push {lr} - bl sub_80334EC + bl OpponentBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_80358B0 - thumb_func_start sub_80358BC -sub_80358BC: @ 80358BC + thumb_func_start OpponentHandleDMATransfer +OpponentHandleDMATransfer: @ 80358BC push {lr} - bl sub_80334EC + bl OpponentBufferExecCompleted pop {r0} bx r0 - thumb_func_end sub_80358BC + thumb_func_end OpponentHandleDMATransfer thumb_func_start sub_80358C8 sub_80358C8: @ 80358C8 push {lr} - bl sub_80334EC + bl OpponentBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_80358C8 @@ -4307,7 +4307,7 @@ sub_80358C8: @ 80358C8 thumb_func_start sub_80358D4 sub_80358D4: @ 80358D4 push {lr} - bl sub_80334EC + bl OpponentBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_80358D4 @@ -4315,7 +4315,7 @@ sub_80358D4: @ 80358D4 thumb_func_start sub_80358E0 sub_80358E0: @ 80358E0 push {lr} - bl sub_80334EC + bl OpponentBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_80358E0 @@ -4323,7 +4323,7 @@ sub_80358E0: @ 80358E0 thumb_func_start sub_80358EC sub_80358EC: @ 80358EC push {lr} - bl sub_80334EC + bl OpponentBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_80358EC @@ -4331,7 +4331,7 @@ sub_80358EC: @ 80358EC thumb_func_start sub_80358F8 sub_80358F8: @ 80358F8 push {lr} - bl sub_80334EC + bl OpponentBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_80358F8 @@ -4339,7 +4339,7 @@ sub_80358F8: @ 80358F8 thumb_func_start sub_8035904 sub_8035904: @ 8035904 push {lr} - bl sub_80334EC + bl OpponentBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_8035904 @@ -4353,7 +4353,7 @@ sub_8035910: @ 8035910 negs r0, r0 ands r0, r1 strb r0, [r2] - bl sub_80334EC + bl OpponentBufferExecCompleted pop {r0} bx r0 .align 2, 0 @@ -4364,8 +4364,8 @@ _08035928: .4byte gUnknown_020238C8 sub_803592C: @ 803592C push {lr} ldr r3, _08035958 @ =gUnknown_020238C8 - ldr r1, _0803595C @ =gUnknown_02023A60 - ldr r0, _08035960 @ =gUnknown_02024A60 + ldr r1, _0803595C @ =gBattleBufferA + ldr r0, _08035960 @ =gActiveBank ldrb r0, [r0] lsls r0, 9 adds r1, 0x1 @@ -4379,13 +4379,13 @@ sub_803592C: @ 803592C ands r0, r2 orrs r0, r1 strb r0, [r3] - bl sub_80334EC + bl OpponentBufferExecCompleted pop {r0} bx r0 .align 2, 0 _08035958: .4byte gUnknown_020238C8 -_0803595C: .4byte gUnknown_02023A60 -_08035960: .4byte gUnknown_02024A60 +_0803595C: .4byte gBattleBufferA +_08035960: .4byte gActiveBank thumb_func_end sub_803592C thumb_func_start sub_8035964 @@ -4396,7 +4396,7 @@ sub_8035964: @ 8035964 movs r0, 0x7F ands r0, r1 strb r0, [r2] - bl sub_80334EC + bl OpponentBufferExecCompleted pop {r0} bx r0 .align 2, 0 @@ -4418,19 +4418,19 @@ sub_803597C: @ 803597C ands r0, r2 orrs r0, r1 strb r0, [r3] - bl sub_80334EC + bl OpponentBufferExecCompleted pop {r0} bx r0 .align 2, 0 _080359A0: .4byte gUnknown_020238C8 thumb_func_end sub_803597C - thumb_func_start dp01t_29_7_blink -dp01t_29_7_blink: @ 80359A4 + thumb_func_start OpponentHandleHitAnimation +OpponentHandleHitAnimation: @ 80359A4 push {r4,lr} ldr r3, _080359CC @ =gSprites - ldr r2, _080359D0 @ =gUnknown_02024BE0 - ldr r4, _080359D4 @ =gUnknown_02024A60 + ldr r2, _080359D0 @ =gObjectBankIDs + ldr r4, _080359D4 @ =gActiveBank ldrb r0, [r4] adds r0, r2 ldrb r1, [r0] @@ -4443,14 +4443,14 @@ dp01t_29_7_blink: @ 80359A4 lsls r0, 29 cmp r0, 0 bge _080359D8 - bl sub_80334EC + bl OpponentBufferExecCompleted b _08035A02 .align 2, 0 _080359CC: .4byte gSprites -_080359D0: .4byte gUnknown_02024BE0 -_080359D4: .4byte gUnknown_02024A60 +_080359D0: .4byte gObjectBankIDs +_080359D4: .4byte gActiveBank _080359D8: - ldr r1, _08035A08 @ =gUnknown_02024E6D + ldr r1, _08035A08 @ =gDoingBattleAnim movs r0, 0x1 strb r0, [r1] ldrb r0, [r4] @@ -4464,7 +4464,7 @@ _080359D8: strh r1, [r0, 0x30] ldrb r0, [r4] bl sub_8047858 - ldr r1, _08035A0C @ =gUnknown_03004330 + ldr r1, _08035A0C @ =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 adds r0, r1 @@ -4475,32 +4475,32 @@ _08035A02: pop {r0} bx r0 .align 2, 0 -_08035A08: .4byte gUnknown_02024E6D -_08035A0C: .4byte gUnknown_03004330 +_08035A08: .4byte gDoingBattleAnim +_08035A0C: .4byte gBattleBankFunc _08035A10: .4byte bx_blink_t7 - thumb_func_end dp01t_29_7_blink + thumb_func_end OpponentHandleHitAnimation thumb_func_start sub_8035A14 sub_8035A14: @ 8035A14 push {lr} - bl sub_80334EC + bl OpponentBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_8035A14 - thumb_func_start sub_8035A20 -sub_8035A20: @ 8035A20 + thumb_func_start OpponentHandleEffectivenessSound +OpponentHandleEffectivenessSound: @ 8035A20 push {r4,lr} - ldr r4, _08035A5C @ =gUnknown_02024A60 + ldr r4, _08035A5C @ =gActiveBank ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 movs r3, 0x3F cmp r0, 0 bne _08035A34 movs r3, 0xC0 _08035A34: - ldr r2, _08035A60 @ =gUnknown_02023A60 + ldr r2, _08035A60 @ =gBattleBufferA ldrb r1, [r4] lsls r1, 9 adds r0, r2, 0x1 @@ -4514,20 +4514,20 @@ _08035A34: lsls r1, r3, 24 asrs r1, 24 bl PlaySE12WithPanning - bl sub_80334EC + bl OpponentBufferExecCompleted pop {r4} pop {r0} bx r0 .align 2, 0 -_08035A5C: .4byte gUnknown_02024A60 -_08035A60: .4byte gUnknown_02023A60 - thumb_func_end sub_8035A20 +_08035A5C: .4byte gActiveBank +_08035A60: .4byte gBattleBufferA + thumb_func_end OpponentHandleEffectivenessSound thumb_func_start sub_8035A64 sub_8035A64: @ 8035A64 push {lr} - ldr r2, _08035A8C @ =gUnknown_02023A60 - ldr r0, _08035A90 @ =gUnknown_02024A60 + ldr r2, _08035A8C @ =gBattleBufferA + ldr r0, _08035A90 @ =gActiveBank ldrb r1, [r0] lsls r1, 9 adds r0, r2, 0x1 @@ -4539,19 +4539,19 @@ sub_8035A64: @ 8035A64 lsls r1, 8 orrs r0, r1 bl PlayFanfare - bl sub_80334EC + bl OpponentBufferExecCompleted pop {r0} bx r0 .align 2, 0 -_08035A8C: .4byte gUnknown_02023A60 -_08035A90: .4byte gUnknown_02024A60 +_08035A8C: .4byte gBattleBufferA +_08035A90: .4byte gActiveBank thumb_func_end sub_8035A64 - thumb_func_start sub_8035A94 -sub_8035A94: @ 8035A94 + thumb_func_start OpponentHandleFaintingCry +OpponentHandleFaintingCry: @ 8035A94 push {lr} - ldr r1, _08035AC4 @ =gUnknown_02024A6A - ldr r0, _08035AC8 @ =gUnknown_02024A60 + ldr r1, _08035AC4 @ =gBattlePartyID + ldr r0, _08035AC8 @ =gActiveBank ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -4567,20 +4567,20 @@ sub_8035A94: @ 8035A94 movs r1, 0x19 movs r2, 0x5 bl PlayCry3 - bl sub_80334EC + bl OpponentBufferExecCompleted pop {r0} bx r0 .align 2, 0 -_08035AC4: .4byte gUnknown_02024A6A -_08035AC8: .4byte gUnknown_02024A60 +_08035AC4: .4byte gBattlePartyID +_08035AC8: .4byte gActiveBank _08035ACC: .4byte gEnemyParty - thumb_func_end sub_8035A94 + thumb_func_end OpponentHandleFaintingCry thumb_func_start dp01t_2E_7_battle_intro dp01t_2E_7_battle_intro: @ 8035AD0 push {lr} - ldr r1, _08035AF8 @ =gUnknown_02023A60 - ldr r0, _08035AFC @ =gUnknown_02024A60 + ldr r1, _08035AF8 @ =gBattleBufferA + ldr r0, _08035AFC @ =gActiveBank ldrb r0, [r0] lsls r0, 9 adds r1, 0x1 @@ -4592,20 +4592,20 @@ dp01t_2E_7_battle_intro: @ 8035AD0 movs r1, 0x1 orrs r0, r1 strh r0, [r2] - bl sub_80334EC + bl OpponentBufferExecCompleted pop {r0} bx r0 .align 2, 0 -_08035AF8: .4byte gUnknown_02023A60 -_08035AFC: .4byte gUnknown_02024A60 +_08035AF8: .4byte gBattleBufferA +_08035AFC: .4byte gActiveBank _08035B00: .4byte gUnknown_02024DE8 thumb_func_end dp01t_2E_7_battle_intro thumb_func_start sub_8035B04 sub_8035B04: @ 8035B04 push {r4-r6,lr} - ldr r5, _08035BE0 @ =gUnknown_02024BE0 - ldr r6, _08035BE4 @ =gUnknown_02024A60 + ldr r5, _08035BE0 @ =gObjectBankIDs + ldr r6, _08035BE4 @ =gActiveBank ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] @@ -4701,7 +4701,7 @@ _08035BC2: movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x9] - ldr r1, _08035C08 @ =gUnknown_03004330 + ldr r1, _08035C08 @ =gBattleBankFunc ldrb r0, [r6] lsls r0, 2 adds r0, r1 @@ -4711,8 +4711,8 @@ _08035BC2: pop {r0} bx r0 .align 2, 0 -_08035BE0: .4byte gUnknown_02024BE0 -_08035BE4: .4byte gUnknown_02024A60 +_08035BE0: .4byte gObjectBankIDs +_08035BE4: .4byte gActiveBank _08035BE8: .4byte gSprites _08035BEC: .4byte sub_8078B34 _08035BF0: .4byte sub_8035C10 @@ -4721,7 +4721,7 @@ _08035BF8: .4byte gTasks _08035BFC: .4byte 0x02017810 _08035C00: .4byte gUnknown_02024E68 _08035C04: .4byte sub_8044CA0 -_08035C08: .4byte gUnknown_03004330 +_08035C08: .4byte gBattleBankFunc _08035C0C: .4byte nullsub_45 thumb_func_end sub_8035B04 @@ -4760,7 +4760,7 @@ sub_8035C44: @ 8035C44 lsls r0, 24 lsrs r0, 24 mov r8, r0 - ldr r7, _08035C9C @ =gUnknown_02024A60 + ldr r7, _08035C9C @ =gActiveBank ldrb r0, [r7] mov r9, r0 ldr r1, _08035CA0 @ =gTasks @@ -4782,12 +4782,12 @@ sub_8035C44: @ 8035C44 cmp r0, 0 beq _08035CB0 _08035C7E: - ldr r0, _08035CA8 @ =gUnknown_02023A60 + ldr r0, _08035CA8 @ =gBattleBufferA ldrb r1, [r7] lsls r2, r1, 9 adds r0, 0x1 adds r2, r0 - ldr r0, _08035CAC @ =gUnknown_02024A6A + ldr r0, _08035CAC @ =gBattlePartyID lsls r1, 1 adds r1, r0 ldrh r0, [r1] @@ -4797,18 +4797,18 @@ _08035C7E: bl sub_803495C b _08035CF0 .align 2, 0 -_08035C9C: .4byte gUnknown_02024A60 +_08035C9C: .4byte gActiveBank _08035CA0: .4byte gTasks _08035CA4: .4byte gBattleTypeFlags -_08035CA8: .4byte gUnknown_02023A60 -_08035CAC: .4byte gUnknown_02024A6A +_08035CA8: .4byte gBattleBufferA +_08035CAC: .4byte gBattlePartyID _08035CB0: - ldr r4, _08035D14 @ =gUnknown_02023A60 + ldr r4, _08035D14 @ =gBattleBufferA ldrb r0, [r7] lsls r1, r0, 9 adds r4, 0x1 adds r1, r4 - ldr r6, _08035D18 @ =gUnknown_02024A6A + ldr r6, _08035D18 @ =gBattlePartyID lsls r0, 1 adds r0, r6 ldrh r0, [r0] @@ -4834,8 +4834,8 @@ _08035CB0: eors r0, r5 strb r0, [r7] _08035CF0: - ldr r1, _08035D1C @ =gUnknown_03004330 - ldr r2, _08035D20 @ =gUnknown_02024A60 + ldr r1, _08035D1C @ =gBattleBankFunc + ldr r2, _08035D20 @ =gActiveBank ldrb r0, [r2] lsls r0, 2 adds r0, r1 @@ -4852,18 +4852,18 @@ _08035CF0: pop {r0} bx r0 .align 2, 0 -_08035D14: .4byte gUnknown_02023A60 -_08035D18: .4byte gUnknown_02024A6A -_08035D1C: .4byte gUnknown_03004330 -_08035D20: .4byte gUnknown_02024A60 +_08035D14: .4byte gBattleBufferA +_08035D18: .4byte gBattlePartyID +_08035D1C: .4byte gBattleBankFunc +_08035D20: .4byte gActiveBank _08035D24: .4byte sub_8032E2C thumb_func_end sub_8035C44 thumb_func_start dp01t_30_7_0803D67C dp01t_30_7_0803D67C: @ 8035D28 push {r4-r6,lr} - ldr r1, _08035D50 @ =gUnknown_02023A60 - ldr r0, _08035D54 @ =gUnknown_02024A60 + ldr r1, _08035D50 @ =gBattleBufferA + ldr r0, _08035D54 @ =gActiveBank ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x1 @@ -4872,17 +4872,17 @@ dp01t_30_7_0803D67C: @ 8035D28 cmp r0, 0 beq _08035D58 adds r0, r2, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08035D58 - bl sub_80334EC + bl OpponentBufferExecCompleted b _08035E12 .align 2, 0 -_08035D50: .4byte gUnknown_02023A60 -_08035D54: .4byte gUnknown_02024A60 +_08035D50: .4byte gBattleBufferA +_08035D54: .4byte gActiveBank _08035D58: - ldr r3, _08035DA8 @ =gUnknown_02024A60 + ldr r3, _08035DA8 @ =gActiveBank ldrb r1, [r3] lsls r0, r1, 1 adds r0, r1 @@ -4893,7 +4893,7 @@ _08035D58: movs r2, 0x1 orrs r1, r2 strb r1, [r0] - ldr r1, _08035DB0 @ =gUnknown_02023A60 + ldr r1, _08035DB0 @ =gBattleBufferA ldrb r2, [r3] lsls r0, r2, 9 adds r1, 0x2 @@ -4922,9 +4922,9 @@ _08035D58: strb r1, [r3, 0x1] b _08035E12 .align 2, 0 -_08035DA8: .4byte gUnknown_02024A60 +_08035DA8: .4byte gActiveBank _08035DAC: .4byte 0x02017810 -_08035DB0: .4byte gUnknown_02023A60 +_08035DB0: .4byte gBattleBufferA _08035DB4: movs r0, 0x3F negs r0, r0 @@ -4968,7 +4968,7 @@ _08035DBC: movs r1, 0x5D strb r1, [r0, 0x5] _08035E06: - ldr r0, _08035E24 @ =gUnknown_03004330 + ldr r0, _08035E24 @ =gBattleBankFunc ldrb r1, [r6] lsls r1, 2 adds r1, r0 @@ -4982,14 +4982,14 @@ _08035E12: _08035E18: .4byte gUnknown_02023A64 _08035E1C: .4byte gUnknown_02024E68 _08035E20: .4byte 0x02017810 -_08035E24: .4byte gUnknown_03004330 +_08035E24: .4byte gBattleBankFunc _08035E28: .4byte sub_8035E2C thumb_func_end dp01t_30_7_0803D67C thumb_func_start sub_8035E2C sub_8035E2C: @ 8035E2C push {r4,lr} - ldr r4, _08035E64 @ =gUnknown_02024A60 + ldr r4, _08035E64 @ =gActiveBank ldrb r1, [r4] lsls r0, r1, 1 adds r0, r1 @@ -5010,20 +5010,20 @@ sub_8035E2C: @ 8035E2C adds r1, r3 movs r0, 0 strb r0, [r1, 0x5] - bl sub_80334EC + bl OpponentBufferExecCompleted _08035E5C: pop {r4} pop {r0} bx r0 .align 2, 0 -_08035E64: .4byte gUnknown_02024A60 +_08035E64: .4byte gActiveBank _08035E68: .4byte 0x02017810 thumb_func_end sub_8035E2C thumb_func_start sub_8035E6C sub_8035E6C: @ 8035E6C push {lr} - ldr r0, _08035EA4 @ =gUnknown_02024A60 + ldr r0, _08035EA4 @ =gActiveBank ldrb r3, [r0] lsls r0, r3, 1 adds r0, r3 @@ -5046,11 +5046,11 @@ sub_8035E6C: @ 8035E6C ldr r1, _08035EB4 @ =sub_8044CA0 str r1, [r0] _08035E9A: - bl sub_80334EC + bl OpponentBufferExecCompleted pop {r0} bx r0 .align 2, 0 -_08035EA4: .4byte gUnknown_02024A60 +_08035EA4: .4byte gActiveBank _08035EA8: .4byte 0x02017810 _08035EAC: .4byte gTasks _08035EB0: .4byte gUnknown_02024E68 @@ -5060,22 +5060,22 @@ _08035EB4: .4byte sub_8044CA0 thumb_func_start sub_8035EB8 sub_8035EB8: @ 8035EB8 push {lr} - bl sub_80334EC + bl OpponentBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_8035EB8 - thumb_func_start sub_8035EC4 -sub_8035EC4: @ 8035EC4 + thumb_func_start OpponentHandleSpriteInvisibility +OpponentHandleSpriteInvisibility: @ 8035EC4 push {r4,lr} - ldr r4, _08035F14 @ =gUnknown_02024A60 + ldr r4, _08035F14 @ =gActiveBank ldrb r0, [r4] bl sub_8078874 lsls r0, 24 cmp r0, 0 beq _08035F0A ldr r3, _08035F18 @ =gSprites - ldr r0, _08035F1C @ =gUnknown_02024BE0 + ldr r0, _08035F1C @ =gObjectBankIDs ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] @@ -5083,7 +5083,7 @@ sub_8035EC4: @ 8035EC4 adds r2, r0 lsls r2, 2 adds r2, r3 - ldr r0, _08035F20 @ =gUnknown_02023A60 + ldr r0, _08035F20 @ =gBattleBufferA lsls r1, 9 adds r0, 0x1 adds r1, r0 @@ -5101,28 +5101,28 @@ sub_8035EC4: @ 8035EC4 ldrb r0, [r4] bl sub_8031F88 _08035F0A: - bl sub_80334EC + bl OpponentBufferExecCompleted pop {r4} pop {r0} bx r0 .align 2, 0 -_08035F14: .4byte gUnknown_02024A60 +_08035F14: .4byte gActiveBank _08035F18: .4byte gSprites -_08035F1C: .4byte gUnknown_02024BE0 -_08035F20: .4byte gUnknown_02023A60 - thumb_func_end sub_8035EC4 +_08035F1C: .4byte gObjectBankIDs +_08035F20: .4byte gBattleBufferA + thumb_func_end OpponentHandleSpriteInvisibility - thumb_func_start dp01t_34_7_move_anim_start_t3 -dp01t_34_7_move_anim_start_t3: @ 8035F24 + thumb_func_start OpponentHandleBattleAnimation +OpponentHandleBattleAnimation: @ 8035F24 push {r4-r6,lr} sub sp, 0x4 - ldr r6, _08035F68 @ =gUnknown_02024A60 + ldr r6, _08035F68 @ =gActiveBank ldrb r0, [r6] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 bne _08035F7C - ldr r5, _08035F6C @ =gUnknown_02023A60 + ldr r5, _08035F6C @ =gBattleBufferA ldrb r2, [r6] lsls r1, r2, 9 adds r0, r5, 0x1 @@ -5143,13 +5143,13 @@ dp01t_34_7_move_anim_start_t3: @ 8035F24 lsls r0, 24 cmp r0, 0 beq _08035F70 - bl sub_80334EC + bl OpponentBufferExecCompleted b _08035F7C .align 2, 0 -_08035F68: .4byte gUnknown_02024A60 -_08035F6C: .4byte gUnknown_02023A60 +_08035F68: .4byte gActiveBank +_08035F6C: .4byte gBattleBufferA _08035F70: - ldr r0, _08035F84 @ =gUnknown_03004330 + ldr r0, _08035F84 @ =gBattleBankFunc ldrb r1, [r6] lsls r1, 2 adds r1, r0 @@ -5161,25 +5161,25 @@ _08035F7C: pop {r0} bx r0 .align 2, 0 -_08035F84: .4byte gUnknown_03004330 +_08035F84: .4byte gBattleBankFunc _08035F88: .4byte sub_80334C0 - thumb_func_end dp01t_34_7_move_anim_start_t3 + thumb_func_end OpponentHandleBattleAnimation - thumb_func_start sub_8035F8C -sub_8035F8C: @ 8035F8C + thumb_func_start OpponentHandleLinkStandbyMsg +OpponentHandleLinkStandbyMsg: @ 8035F8C push {lr} - bl sub_80334EC + bl OpponentBufferExecCompleted pop {r0} bx r0 - thumb_func_end sub_8035F8C + thumb_func_end OpponentHandleLinkStandbyMsg - thumb_func_start sub_8035F98 -sub_8035F98: @ 8035F98 + thumb_func_start OpponentHandleResetActionMoveSelection +OpponentHandleResetActionMoveSelection: @ 8035F98 push {lr} - bl sub_80334EC + bl OpponentBufferExecCompleted pop {r0} bx r0 - thumb_func_end sub_8035F98 + thumb_func_end OpponentHandleResetActionMoveSelection thumb_func_start sub_8035FA4 sub_8035FA4: @ 8035FA4 @@ -5198,20 +5198,20 @@ sub_8035FA4: @ 8035FA4 negs r0, r0 ands r0, r1 strb r0, [r3] - ldr r0, _08035FE4 @ =gUnknown_030042D0 + ldr r0, _08035FE4 @ =gPreBattleCallback1 ldr r0, [r0] str r0, [r2] ldr r0, [r2, 0x8] bl SetMainCallback2 _08035FCE: - bl sub_80334EC + bl OpponentBufferExecCompleted pop {r0} bx r0 .align 2, 0 _08035FD8: .4byte gBattleTypeFlags _08035FDC: .4byte gMain _08035FE0: .4byte 0x0000043d -_08035FE4: .4byte gUnknown_030042D0 +_08035FE4: .4byte gPreBattleCallback1 thumb_func_end sub_8035FA4 thumb_func_start nullsub_46 diff --git a/asm/battle_811DA74.s b/asm/battle_811DA74.s deleted file mode 100644 index 4190b2400..000000000 --- a/asm/battle_811DA74.s +++ /dev/null @@ -1,3678 +0,0 @@ - .include "constants/gba_constants.inc" - .include "constants/species_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_811EC68 -sub_811EC68: @ 811EC68 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x34 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _0811ECA0 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 9 - ldr r2, _0811ECA4 @ =gUnknown_02023A63 - adds r3, r0, r2 - adds r6, r3, 0 - subs r1, r2, 0x2 - adds r0, r1 - ldrb r0, [r0] - adds r7, r2, 0 - cmp r0, 0x3B - bls _0811EC94 - bl _0811F62E -_0811EC94: - lsls r0, 2 - ldr r1, _0811ECA8 @ =_0811ECAC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0811ECA0: .4byte gUnknown_02024A60 -_0811ECA4: .4byte gUnknown_02023A63 -_0811ECA8: .4byte _0811ECAC - .align 2, 0 -_0811ECAC: - .4byte _0811ED9C - .4byte _0811EF34 - .4byte _0811EF54 - .4byte _0811EF74 - .4byte _0811EFCC - .4byte _0811EFCC - .4byte _0811EFCC - .4byte _0811EFCC - .4byte _0811EFF4 - .4byte _0811F058 - .4byte _0811F058 - .4byte _0811F058 - .4byte _0811F058 - .4byte _0811F62E - .4byte _0811F62E - .4byte _0811F62E - .4byte _0811F62E - .4byte _0811F088 - .4byte _0811F0A8 - .4byte _0811F0C8 - .4byte _0811F0E8 - .4byte _0811F108 - .4byte _0811F128 - .4byte _0811F148 - .4byte _0811F168 - .4byte _0811F188 - .4byte _0811F1A8 - .4byte _0811F1C8 - .4byte _0811F1E8 - .4byte _0811F208 - .4byte _0811F228 - .4byte _0811F248 - .4byte _0811F2B8 - .4byte _0811F2D8 - .4byte _0811F2F8 - .4byte _0811F318 - .4byte _0811F338 - .4byte _0811F358 - .4byte _0811F378 - .4byte _0811F398 - .4byte _0811F3B8 - .4byte _0811F3D8 - .4byte _0811F3F8 - .4byte _0811F418 - .4byte _0811F438 - .4byte _0811F458 - .4byte _0811F478 - .4byte _0811F498 - .4byte _0811F4B8 - .4byte _0811F4D8 - .4byte _0811F4F8 - .4byte _0811F518 - .4byte _0811F538 - .4byte _0811F558 - .4byte _0811F578 - .4byte _0811F598 - .4byte _0811F5B8 - .4byte _0811F5D8 - .4byte _0811F5F8 - .4byte _0811F618 -_0811ED9C: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, _0811EF30 @ =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0xB - adds r2, r6, 0 - bl SetMonData - adds r2, r6, 0 - adds r2, 0x2E - adds r0, r4, 0 - movs r1, 0xC - bl SetMonData - movs r0, 0 - mov r8, r0 - movs r0, 0x3B - adds r0, r6 - mov r10, r0 - adds r0, r6, 0 - adds r0, 0x2B - str r0, [sp, 0x20] - adds r0, 0x19 - str r0, [sp, 0x28] - adds r0, 0x4 - str r0, [sp, 0x2C] - adds r0, 0x4 - str r0, [sp, 0x30] - subs r0, 0x22 - str r0, [sp, 0x1C] - subs r0, 0x2 - str r0, [sp, 0x18] - adds r0, 0x4 - str r0, [sp, 0x24] - adds r0, r6, 0x2 - str r0, [sp, 0x4] - adds r0, r6, 0x4 - str r0, [sp, 0x8] - adds r0, r6, 0x6 - str r0, [sp, 0xC] - adds r0, 0x2 - str r0, [sp, 0x10] - adds r0, 0x2 - str r0, [sp, 0x14] - mov r9, r4 - adds r7, r6, 0 - adds r7, 0x24 - adds r4, r6, 0 - adds r4, 0xC -_0811EE02: - mov r1, r8 - adds r1, 0xD - mov r0, r9 - adds r2, r4, 0 - bl SetMonData - mov r1, r8 - adds r1, 0x11 - mov r0, r9 - adds r2, r7, 0 - bl SetMonData - adds r7, 0x1 - adds r4, 0x2 - movs r0, 0x1 - add r8, r0 - mov r0, r8 - cmp r0, 0x3 - ble _0811EE02 - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, _0811EF30 @ =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x15 - mov r2, r10 - bl SetMonData - adds r0, r4, 0 - movs r1, 0x20 - ldr r2, [sp, 0x20] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x19 - ldr r2, [sp, 0x28] - bl SetMonData - ldrb r0, [r6, 0x14] - lsls r0, 27 - lsrs r0, 27 - mov r1, sp - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x27 - mov r2, sp - bl SetMonData - mov r1, sp - ldrh r0, [r6, 0x14] - lsls r0, 22 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x28 - mov r2, sp - bl SetMonData - mov r1, sp - ldrb r0, [r6, 0x15] - lsls r0, 25 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x29 - mov r2, sp - bl SetMonData - mov r1, sp - ldr r0, [r6, 0x14] - lsls r0, 12 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2A - mov r2, sp - bl SetMonData - mov r1, sp - ldrh r0, [r6, 0x16] - lsls r0, 23 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2B - mov r2, sp - bl SetMonData - mov r1, sp - ldrb r0, [r6, 0x17] - lsls r0, 26 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2C - mov r2, sp - bl SetMonData - adds r0, r4, 0 - movs r1, 0 - ldr r2, [sp, 0x2C] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x37 - ldr r2, [sp, 0x30] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x38 - ldr r2, [sp, 0x1C] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x39 - ldr r2, [sp, 0x18] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x3A - ldr r2, [sp, 0x24] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x3B - ldr r2, [sp, 0x4] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x3C - ldr r2, [sp, 0x8] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x3D - ldr r2, [sp, 0xC] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x3E - ldr r2, [sp, 0x10] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x3F - ldr r2, [sp, 0x14] - bl SetMonData - b _0811F62E - .align 2, 0 -_0811EF30: .4byte gPlayerParty -_0811EF34: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811EF4C @ =gPlayerParty - adds r0, r1 - ldr r1, _0811EF50 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0xB - bl SetMonData - b _0811F62E - .align 2, 0 -_0811EF4C: .4byte gPlayerParty -_0811EF50: .4byte gUnknown_02024A60 -_0811EF54: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811EF6C @ =gPlayerParty - adds r0, r1 - ldr r1, _0811EF70 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0xC - bl SetMonData - b _0811F62E - .align 2, 0 -_0811EF6C: .4byte gPlayerParty -_0811EF70: .4byte gUnknown_02024A60 -_0811EF74: - movs r0, 0 - mov r8, r0 - movs r0, 0xC - adds r0, r3 - mov r9, r0 - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _0811EFC8 @ =gPlayerParty - adds r7, r1, r0 - adds r6, r3, 0 - adds r6, 0x8 - adds r4, r3, 0 -_0811EF8E: - mov r1, r8 - adds r1, 0xD - adds r0, r7, 0 - adds r2, r4, 0 - bl SetMonData - mov r1, r8 - adds r1, 0x11 - adds r0, r7, 0 - adds r2, r6, 0 - bl SetMonData - adds r6, 0x1 - adds r4, 0x2 - movs r0, 0x1 - add r8, r0 - mov r0, r8 - cmp r0, 0x3 - ble _0811EF8E - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811EFC8 @ =gPlayerParty - adds r0, r1 - movs r1, 0x15 - mov r2, r9 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811EFC8: .4byte gPlayerParty -_0811EFCC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811EFE8 @ =gPlayerParty - adds r0, r1 - ldr r3, _0811EFEC @ =gUnknown_02023A60 - ldr r1, _0811EFF0 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r1, r3, 0x1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, 0x9 - b _0811F070 - .align 2, 0 -_0811EFE8: .4byte gPlayerParty -_0811EFEC: .4byte gUnknown_02023A60 -_0811EFF0: .4byte gUnknown_02024A60 -_0811EFF4: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, _0811F050 @ =gPlayerParty - adds r4, r0 - ldr r5, _0811F054 @ =gUnknown_02024A60 - ldrb r2, [r5] - lsls r2, 9 - adds r2, r7 - adds r0, r4, 0 - movs r1, 0x11 - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x1 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x12 - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x2 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x13 - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x3 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x14 - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x4 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x15 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F050: .4byte gPlayerParty -_0811F054: .4byte gUnknown_02024A60 -_0811F058: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F07C @ =gPlayerParty - adds r0, r1 - ldr r3, _0811F080 @ =gUnknown_02023A60 - ldr r1, _0811F084 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r1, r3, 0x1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, 0x8 -_0811F070: - adds r3, 0x3 - adds r2, r3 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F07C: .4byte gPlayerParty -_0811F080: .4byte gUnknown_02023A60 -_0811F084: .4byte gUnknown_02024A60 -_0811F088: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F0A0 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F0A4 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F0A0: .4byte gPlayerParty -_0811F0A4: .4byte gUnknown_02024A60 -_0811F0A8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F0C0 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F0C4 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x19 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F0C0: .4byte gPlayerParty -_0811F0C4: .4byte gUnknown_02024A60 -_0811F0C8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F0E0 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F0E4 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1A - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F0E0: .4byte gPlayerParty -_0811F0E4: .4byte gUnknown_02024A60 -_0811F0E8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F100 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F104 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1B - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F100: .4byte gPlayerParty -_0811F104: .4byte gUnknown_02024A60 -_0811F108: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F120 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F124 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1C - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F120: .4byte gPlayerParty -_0811F124: .4byte gUnknown_02024A60 -_0811F128: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F140 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F144 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1D - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F140: .4byte gPlayerParty -_0811F144: .4byte gUnknown_02024A60 -_0811F148: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F160 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F164 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1E - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F160: .4byte gPlayerParty -_0811F164: .4byte gUnknown_02024A60 -_0811F168: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F180 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F184 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1F - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F180: .4byte gPlayerParty -_0811F184: .4byte gUnknown_02024A60 -_0811F188: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F1A0 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F1A4 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x20 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F1A0: .4byte gPlayerParty -_0811F1A4: .4byte gUnknown_02024A60 -_0811F1A8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F1C0 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F1C4 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x22 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F1C0: .4byte gPlayerParty -_0811F1C4: .4byte gUnknown_02024A60 -_0811F1C8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F1E0 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F1E4 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x23 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F1E0: .4byte gPlayerParty -_0811F1E4: .4byte gUnknown_02024A60 -_0811F1E8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F200 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F204 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x24 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F200: .4byte gPlayerParty -_0811F204: .4byte gUnknown_02024A60 -_0811F208: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F220 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F224 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x25 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F220: .4byte gPlayerParty -_0811F224: .4byte gUnknown_02024A60 -_0811F228: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F240 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F244 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x26 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F240: .4byte gPlayerParty -_0811F244: .4byte gUnknown_02024A60 -_0811F248: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, _0811F2B0 @ =gPlayerParty - adds r4, r0 - ldr r5, _0811F2B4 @ =gUnknown_02024A60 - ldrb r2, [r5] - lsls r2, 9 - adds r2, r7 - adds r0, r4, 0 - movs r1, 0x27 - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x1 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x28 - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x2 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x29 - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x3 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x2A - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x4 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x2B - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x5 - adds r2, r0 - adds r0, r4, 0 - b _0811F368 - .align 2, 0 -_0811F2B0: .4byte gPlayerParty -_0811F2B4: .4byte gUnknown_02024A60 -_0811F2B8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F2D0 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F2D4 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x27 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F2D0: .4byte gPlayerParty -_0811F2D4: .4byte gUnknown_02024A60 -_0811F2D8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F2F0 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F2F4 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x28 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F2F0: .4byte gPlayerParty -_0811F2F4: .4byte gUnknown_02024A60 -_0811F2F8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F310 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F314 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x29 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F310: .4byte gPlayerParty -_0811F314: .4byte gUnknown_02024A60 -_0811F318: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F330 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F334 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x2A - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F330: .4byte gPlayerParty -_0811F334: .4byte gUnknown_02024A60 -_0811F338: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F350 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F354 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x2B - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F350: .4byte gPlayerParty -_0811F354: .4byte gUnknown_02024A60 -_0811F358: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F370 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F374 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 -_0811F368: - movs r1, 0x2C - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F370: .4byte gPlayerParty -_0811F374: .4byte gUnknown_02024A60 -_0811F378: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F390 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F394 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F390: .4byte gPlayerParty -_0811F394: .4byte gUnknown_02024A60 -_0811F398: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F3B0 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F3B4 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x9 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F3B0: .4byte gPlayerParty -_0811F3B4: .4byte gUnknown_02024A60 -_0811F3B8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F3D0 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F3D4 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x37 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F3D0: .4byte gPlayerParty -_0811F3D4: .4byte gUnknown_02024A60 -_0811F3D8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F3F0 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F3F4 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x38 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F3F0: .4byte gPlayerParty -_0811F3F4: .4byte gUnknown_02024A60 -_0811F3F8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F410 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F414 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x39 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F410: .4byte gPlayerParty -_0811F414: .4byte gUnknown_02024A60 -_0811F418: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F430 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F434 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3A - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F430: .4byte gPlayerParty -_0811F434: .4byte gUnknown_02024A60 -_0811F438: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F450 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F454 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3B - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F450: .4byte gPlayerParty -_0811F454: .4byte gUnknown_02024A60 -_0811F458: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F470 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F474 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3C - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F470: .4byte gPlayerParty -_0811F474: .4byte gUnknown_02024A60 -_0811F478: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F490 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F494 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3D - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F490: .4byte gPlayerParty -_0811F494: .4byte gUnknown_02024A60 -_0811F498: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F4B0 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F4B4 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3E - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F4B0: .4byte gPlayerParty -_0811F4B4: .4byte gUnknown_02024A60 -_0811F4B8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F4D0 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F4D4 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3F - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F4D0: .4byte gPlayerParty -_0811F4D4: .4byte gUnknown_02024A60 -_0811F4D8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F4F0 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F4F4 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x16 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F4F0: .4byte gPlayerParty -_0811F4F4: .4byte gUnknown_02024A60 -_0811F4F8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F510 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F514 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x17 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F510: .4byte gPlayerParty -_0811F514: .4byte gUnknown_02024A60 -_0811F518: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F530 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F534 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x18 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F530: .4byte gPlayerParty -_0811F534: .4byte gUnknown_02024A60 -_0811F538: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F550 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F554 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x21 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F550: .4byte gPlayerParty -_0811F554: .4byte gUnknown_02024A60 -_0811F558: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F570 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F574 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x2F - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F570: .4byte gPlayerParty -_0811F574: .4byte gUnknown_02024A60 -_0811F578: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F590 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F594 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x30 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F590: .4byte gPlayerParty -_0811F594: .4byte gUnknown_02024A60 -_0811F598: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F5B0 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F5B4 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x32 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F5B0: .4byte gPlayerParty -_0811F5B4: .4byte gUnknown_02024A60 -_0811F5B8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F5D0 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F5D4 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x33 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F5D0: .4byte gPlayerParty -_0811F5D4: .4byte gUnknown_02024A60 -_0811F5D8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F5F0 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F5F4 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x34 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F5F0: .4byte gPlayerParty -_0811F5F4: .4byte gUnknown_02024A60 -_0811F5F8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F610 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F614 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x35 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F610: .4byte gPlayerParty -_0811F614: .4byte gUnknown_02024A60 -_0811F618: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F658 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F65C @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x36 - bl SetMonData -_0811F62E: - ldr r2, _0811F660 @ =gUnknown_02024A6A - ldr r0, _0811F65C @ =gUnknown_02024A60 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, _0811F658 @ =gPlayerParty - adds r0, r2 - bl sub_80324F8 - add sp, 0x34 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0811F658: .4byte gPlayerParty -_0811F65C: .4byte gUnknown_02024A60 -_0811F660: .4byte gUnknown_02024A6A - thumb_func_end sub_811EC68 - - thumb_func_start sub_811F664 -sub_811F664: @ 811F664 - push {r4-r7,lr} - ldr r1, _0811F6C8 @ =gUnknown_02024A6A - ldr r7, _0811F6CC @ =gUnknown_02024A60 - ldrb r2, [r7] - lsls r0, r2, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - adds r3, r1, 0 - muls r3, r0 - ldr r4, _0811F6D0 @ =gUnknown_02023A60 - lsls r2, 9 - adds r0, r4, 0x1 - adds r0, r2, r0 - ldrb r0, [r0] - ldr r1, _0811F6D4 @ =gPlayerParty - adds r0, r1 - adds r5, r3, r0 - movs r3, 0 - adds r0, r4, 0x2 - adds r2, r0 - ldrb r2, [r2] - cmp r3, r2 - bcs _0811F6BC - adds r6, r4, 0 - adds r2, r7, 0 - adds r4, r0, 0 -_0811F69A: - adds r1, r5, r3 - ldrb r0, [r2] - lsls r0, 9 - adds r0, 0x3 - adds r0, r3, r0 - adds r0, r6 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - ldrb r0, [r2] - lsls r0, 9 - adds r0, r4 - ldrb r0, [r0] - cmp r3, r0 - bcc _0811F69A -_0811F6BC: - bl dp01_tbl3_exec_completed - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0811F6C8: .4byte gUnknown_02024A6A -_0811F6CC: .4byte gUnknown_02024A60 -_0811F6D0: .4byte gUnknown_02023A60 -_0811F6D4: .4byte gPlayerParty - thumb_func_end sub_811F664 - - thumb_func_start sub_811F6D8 -sub_811F6D8: @ 811F6D8 - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r0, _0811F7CC @ =gUnknown_02024A6A - mov r8, r0 - ldr r6, _0811F7D0 @ =gUnknown_02024A60 - ldrb r1, [r6] - lsls r0, r1, 1 - add r0, r8 - ldrh r0, [r0] - movs r5, 0x64 - muls r0, r5 - ldr r4, _0811F7D4 @ =gPlayerParty - adds r0, r4 - bl sub_80318FC - ldrb r0, [r6] - lsls r0, 1 - add r0, r8 - ldrh r0, [r0] - muls r0, r5 - adds r0, r4 - movs r1, 0xB - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldrb r0, [r6] - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl GetMonSpriteTemplate_803C56C - ldr r0, _0811F7D8 @ =gUnknown_02024E8C - mov r8, r0 - ldrb r0, [r6] - movs r1, 0x2 - bl sub_8077ABC - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldrb r0, [r6] - bl sub_8077F68 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldrb r0, [r6] - bl sub_8079E90 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - mov r0, r8 - adds r1, r5, 0 - adds r2, r4, 0 - bl CreateSprite - ldr r4, _0811F7DC @ =gUnknown_02024BE0 - ldrb r1, [r6] - adds r1, r4 - strb r0, [r1] - ldr r5, _0811F7E0 @ =gSprites - ldrb r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _0811F7E4 @ =0x0000ff10 - strh r1, [r0, 0x24] - ldrb r2, [r6] - adds r0, r2, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r2, [r0, 0x2E] - ldrb r3, [r6] - adds r0, r3, r4 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - lsls r3, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r2, [r6] - adds r4, r2, r4 - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _0811F7E8 @ =gBattleMonForms - adds r2, r1 - ldrb r1, [r2] - bl StartSpriteAnim - ldr r1, _0811F7EC @ =gUnknown_03004330 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, _0811F7F0 @ =sub_811DDE8 - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0811F7CC: .4byte gUnknown_02024A6A -_0811F7D0: .4byte gUnknown_02024A60 -_0811F7D4: .4byte gPlayerParty -_0811F7D8: .4byte gUnknown_02024E8C -_0811F7DC: .4byte gUnknown_02024BE0 -_0811F7E0: .4byte gSprites -_0811F7E4: .4byte 0x0000ff10 -_0811F7E8: .4byte gBattleMonForms -_0811F7EC: .4byte gUnknown_03004330 -_0811F7F0: .4byte sub_811DDE8 - thumb_func_end sub_811F6D8 - - thumb_func_start sub_811F7F4 -sub_811F7F4: @ 811F7F4 - push {r4-r6,lr} - ldr r5, _0811F84C @ =gUnknown_02024A60 - ldrb r0, [r5] - ldr r4, _0811F850 @ =gUnknown_02023A60 - lsls r1, r0, 9 - adds r6, r4, 0x2 - adds r1, r6 - ldrb r1, [r1] - bl sub_8032AA8 - ldr r2, _0811F854 @ =gUnknown_02024A6A - ldrb r0, [r5] - lsls r1, r0, 1 - adds r1, r2 - lsls r0, 9 - adds r4, 0x1 - adds r0, r4 - ldrb r0, [r0] - strh r0, [r1] - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, _0811F858 @ =gPlayerParty - adds r0, r2 - bl sub_80318FC - ldrb r0, [r5] - lsls r1, r0, 9 - adds r1, r6 - ldrb r1, [r1] - bl sub_811F864 - ldr r1, _0811F85C @ =gUnknown_03004330 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, _0811F860 @ =sub_811E1BC - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0811F84C: .4byte gUnknown_02024A60 -_0811F850: .4byte gUnknown_02023A60 -_0811F854: .4byte gUnknown_02024A6A -_0811F858: .4byte gPlayerParty -_0811F85C: .4byte gUnknown_03004330 -_0811F860: .4byte sub_811E1BC - thumb_func_end sub_811F7F4 - - thumb_func_start sub_811F864 -sub_811F864: @ 811F864 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - lsls r1, 24 - lsrs r1, 24 - adds r0, r6, 0 - bl sub_8032AA8 - ldr r0, _0811F9A8 @ =gUnknown_02024A6A - lsls r2, r6, 1 - adds r2, r0 - ldr r0, _0811F9AC @ =gUnknown_02023A60 - lsls r1, r6, 9 - adds r0, 0x1 - adds r1, r0 - ldrb r0, [r1] - strh r0, [r2] - ldrh r1, [r2] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0811F9B0 @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - mov r8, r0 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r0, _0811F9B4 @ =sub_80312F0 - bl CreateInvisibleSpriteWithCallback - ldr r1, _0811F9B8 @ =gUnknown_0300434C - mov r9, r1 - add r9, r6 - mov r1, r9 - strb r0, [r1] - adds r0, r6, 0 - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, r8 - bl GetMonSpriteTemplate_803C56C - ldr r0, _0811F9BC @ =gUnknown_02024E8C - mov r10, r0 - adds r0, r6, 0 - movs r1, 0x2 - bl sub_8077ABC - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - adds r0, r6, 0 - bl sub_8077F68 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - bl sub_8079E90 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - mov r0, r10 - adds r1, r5, 0 - adds r2, r4, 0 - bl CreateSprite - ldr r4, _0811F9C0 @ =gUnknown_02024BE0 - adds r4, r6, r4 - strb r0, [r4] - ldr r5, _0811F9C4 @ =gSprites - mov r0, r9 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r4] - strh r1, [r0, 0x30] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x2E] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - mov r1, r8 - strh r1, [r0, 0x32] - ldrb r0, [r4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - lsls r3, r6, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _0811F9C8 @ =gBattleMonForms - adds r6, r1 - ldrb r1, [r6] - bl StartSpriteAnim - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _0811F9CC @ =SpriteCallbackDummy - str r1, [r0] - movs r0, 0 - movs r1, 0xFF - bl sub_8046400 - mov r1, r9 - ldrb r2, [r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r5 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x2E] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0811F9A8: .4byte gUnknown_02024A6A -_0811F9AC: .4byte gUnknown_02023A60 -_0811F9B0: .4byte gPlayerParty -_0811F9B4: .4byte sub_80312F0 -_0811F9B8: .4byte gUnknown_0300434C -_0811F9BC: .4byte gUnknown_02024E8C -_0811F9C0: .4byte gUnknown_02024BE0 -_0811F9C4: .4byte gSprites -_0811F9C8: .4byte gBattleMonForms -_0811F9CC: .4byte SpriteCallbackDummy - thumb_func_end sub_811F864 - - thumb_func_start sub_811F9D0 -sub_811F9D0: @ 811F9D0 - push {r4-r6,lr} - ldr r1, _0811FA00 @ =gUnknown_02023A60 - ldr r6, _0811FA04 @ =gUnknown_02024A60 - ldrb r2, [r6] - lsls r0, r2, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r3, [r0] - cmp r3, 0 - bne _0811FA14 - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - ldr r1, _0811FA08 @ =0x02017810 - adds r0, r1 - strb r3, [r0, 0x4] - ldr r1, _0811FA0C @ =gUnknown_03004330 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, _0811FA10 @ =sub_811FA5C - str r1, [r0] - b _0811FA4A - .align 2, 0 -_0811FA00: .4byte gUnknown_02023A60 -_0811FA04: .4byte gUnknown_02024A60 -_0811FA08: .4byte 0x02017810 -_0811FA0C: .4byte gUnknown_03004330 -_0811FA10: .4byte sub_811FA5C -_0811FA14: - ldr r5, _0811FA50 @ =gUnknown_02024BE0 - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _0811FA54 @ =gSprites - adds r0, r4 - bl FreeSpriteOamMatrix - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - ldr r1, _0811FA58 @ =gUnknown_03004340 - ldrb r0, [r6] - adds r0, r1 - ldrb r0, [r0] - bl sub_8043DB0 - bl dp01_tbl3_exec_completed -_0811FA4A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0811FA50: .4byte gUnknown_02024BE0 -_0811FA54: .4byte gSprites -_0811FA58: .4byte gUnknown_03004340 - thumb_func_end sub_811F9D0 - - thumb_func_start sub_811FA5C -sub_811FA5C: @ 811FA5C - push {r4,r5,lr} - ldr r5, _0811FA78 @ =gUnknown_02024A60 - ldrb r2, [r5] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - ldr r4, _0811FA7C @ =0x02017810 - adds r3, r0, r4 - ldrb r0, [r3, 0x4] - cmp r0, 0 - beq _0811FA80 - cmp r0, 0x1 - beq _0811FAAC - b _0811FAD4 - .align 2, 0 -_0811FA78: .4byte gUnknown_02024A60 -_0811FA7C: .4byte 0x02017810 -_0811FA80: - lsls r0, r2, 2 - adds r1, r4, 0 - subs r1, 0x10 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0811FA9C - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x5 - bl move_anim_start_t4 -_0811FA9C: - ldrb r0, [r5] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - movs r0, 0x1 - strb r0, [r1, 0x4] - b _0811FAD4 -_0811FAAC: - ldrb r1, [r3] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _0811FAD4 - strb r0, [r3, 0x4] - ldrb r2, [r5] - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x1 - bl move_anim_start_t4 - ldr r1, _0811FADC @ =gUnknown_03004330 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, _0811FAE0 @ =sub_811DF34 - str r1, [r0] -_0811FAD4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0811FADC: .4byte gUnknown_03004330 -_0811FAE0: .4byte sub_811DF34 - thumb_func_end sub_811FA5C - - thumb_func_start sub_811FAE4 -sub_811FAE4: @ 811FAE4 - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r0, _0811FB14 @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0811FB24 - ldr r6, _0811FB18 @ =gUnknown_02024A60 - ldrb r0, [r6] - bl battle_get_per_side_status - movs r1, 0x2 - ands r1, r0 - ldr r5, _0811FB1C @ =0x0000fff0 - cmp r1, 0 - beq _0811FB0A - movs r5, 0x10 -_0811FB0A: - ldr r4, _0811FB20 @ =gLinkPlayers - ldrb r0, [r6] - bl sub_803FC34 - b _0811FB34 - .align 2, 0 -_0811FB14: .4byte gBattleTypeFlags -_0811FB18: .4byte gUnknown_02024A60 -_0811FB1C: .4byte 0x0000fff0 -_0811FB20: .4byte gLinkPlayers -_0811FB24: - movs r5, 0 - ldr r4, _0811FC08 @ =gLinkPlayers - bl GetMultiplayerId - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 -_0811FB34: - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r4, [r1, 0x13] - ldr r6, _0811FC0C @ =gUnknown_02024A60 - ldrb r1, [r6] - adds r0, r4, 0 - bl sub_8031AF4 - ldrb r0, [r6] - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl GetMonSpriteTemplate_803C5A0 - ldr r0, _0811FC10 @ =gUnknown_02024E8C - mov r8, r0 - lsls r5, 16 - movs r0, 0xA0 - lsls r0, 15 - adds r5, r0 - asrs r5, 16 - ldr r0, _0811FC14 @ =gTrainerBackPicCoords - lsls r4, 2 - adds r4, r0 - ldrb r0, [r4] - movs r4, 0x8 - subs r4, r0 - lsls r4, 18 - movs r0, 0xA0 - lsls r0, 15 - adds r4, r0 - asrs r4, 16 - ldrb r0, [r6] - bl sub_8079E90 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - mov r0, r8 - adds r1, r5, 0 - adds r2, r4, 0 - bl CreateSprite - ldr r5, _0811FC18 @ =gUnknown_02024BE0 - ldrb r1, [r6] - adds r1, r5 - strb r0, [r1] - ldr r4, _0811FC1C @ =gSprites - ldrb r3, [r6] - adds r0, r3, r5 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - lsls r3, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0xF0 - strh r1, [r0, 0x24] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, _0811FC20 @ =0x0000fffe - strh r1, [r0, 0x2E] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, 0x1C - adds r0, r4 - ldr r1, _0811FC24 @ =sub_80313A0 - str r1, [r0] - ldr r1, _0811FC28 @ =gUnknown_03004330 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, _0811FC2C @ =sub_811DAE4 - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0811FC08: .4byte gLinkPlayers -_0811FC0C: .4byte gUnknown_02024A60 -_0811FC10: .4byte gUnknown_02024E8C -_0811FC14: .4byte gTrainerBackPicCoords -_0811FC18: .4byte gUnknown_02024BE0 -_0811FC1C: .4byte gSprites -_0811FC20: .4byte 0x0000fffe -_0811FC24: .4byte sub_80313A0 -_0811FC28: .4byte gUnknown_03004330 -_0811FC2C: .4byte sub_811DAE4 - thumb_func_end sub_811FAE4 - - thumb_func_start sub_811FC30 -sub_811FC30: @ 811FC30 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_811FC30 - - thumb_func_start sub_811FC3C -sub_811FC3C: @ 811FC3C - push {r4-r6,lr} - ldr r6, _0811FCC8 @ =gUnknown_02024BE0 - ldr r4, _0811FCCC @ =gUnknown_02024A60 - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r5, _0811FCD0 @ =gSprites - adds r0, r5 - bl oamt_add_pos2_onto_pos1 - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x23 - strh r1, [r0, 0x2E] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _0811FCD4 @ =0x0000ffd8 - strh r1, [r0, 0x32] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrh r1, [r0, 0x22] - strh r1, [r0, 0x36] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _0811FCD8 @ =sub_8078B34 - str r1, [r0] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _0811FCDC @ =SpriteCallbackDummy - bl oamt_set_x3A_32 - ldr r1, _0811FCE0 @ =gUnknown_03004330 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _0811FCE4 @ =sub_811DB1C - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0811FCC8: .4byte gUnknown_02024BE0 -_0811FCCC: .4byte gUnknown_02024A60 -_0811FCD0: .4byte gSprites -_0811FCD4: .4byte 0x0000ffd8 -_0811FCD8: .4byte sub_8078B34 -_0811FCDC: .4byte SpriteCallbackDummy -_0811FCE0: .4byte gUnknown_03004330 -_0811FCE4: .4byte sub_811DB1C - thumb_func_end sub_811FC3C - - thumb_func_start sub_811FCE8 -sub_811FCE8: @ 811FCE8 - push {r4,r5,lr} - ldr r5, _0811FD2C @ =gUnknown_02024A60 - ldrb r2, [r5] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - ldr r4, _0811FD30 @ =0x02017810 - adds r3, r0, r4 - ldrb r0, [r3, 0x4] - cmp r0, 0 - bne _0811FD34 - lsls r0, r2, 2 - adds r1, r4, 0 - subs r1, 0x10 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0811FD1A - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x5 - bl move_anim_start_t4 -_0811FD1A: - ldrb r0, [r5] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r0, [r1, 0x4] - adds r0, 0x1 - strb r0, [r1, 0x4] - b _0811FDAA - .align 2, 0 -_0811FD2C: .4byte gUnknown_02024A60 -_0811FD30: .4byte 0x02017810 -_0811FD34: - ldrb r1, [r3] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _0811FDAA - strb r4, [r3, 0x4] - ldr r2, _0811FDB0 @ =gUnknown_02024A6A - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, _0811FDB4 @ =gPlayerParty - adds r0, r2 - bl sub_80324F8 - movs r1, 0x40 - negs r1, r1 - movs r0, 0x10 - bl PlaySE12WithPanning - ldr r2, _0811FDB8 @ =gSprites - ldr r3, _0811FDBC @ =gUnknown_02024BE0 - ldrb r0, [r5] - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r4, [r0, 0x30] - ldrb r0, [r5] - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x5 - strh r1, [r0, 0x32] - ldrb r0, [r5] - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _0811FDC0 @ =sub_80105EC - str r1, [r0] - ldr r1, _0811FDC4 @ =gUnknown_03004330 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, _0811FDC8 @ =sub_811DE98 - str r1, [r0] -_0811FDAA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0811FDB0: .4byte gUnknown_02024A6A -_0811FDB4: .4byte gPlayerParty -_0811FDB8: .4byte gSprites -_0811FDBC: .4byte gUnknown_02024BE0 -_0811FDC0: .4byte sub_80105EC -_0811FDC4: .4byte gUnknown_03004330 -_0811FDC8: .4byte sub_811DE98 - thumb_func_end sub_811FCE8 - - thumb_func_start sub_811FDCC -sub_811FDCC: @ 811FDCC - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_811FDCC - - thumb_func_start sub_811FDD8 -sub_811FDD8: @ 811FDD8 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_811FDD8 - - thumb_func_start sub_811FDE4 -sub_811FDE4: @ 811FDE4 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_811FDE4 - - thumb_func_start sub_811FDF0 -sub_811FDF0: @ 811FDF0 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_811FDF0 - - thumb_func_start sub_811FDFC -sub_811FDFC: @ 811FDFC - push {r4-r6,lr} - ldr r6, _0811FEE0 @ =gUnknown_02024A60 - ldrb r0, [r6] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - beq _0811FE0E - b _0811FF1E -_0811FE0E: - ldr r0, _0811FEE4 @ =gUnknown_02023A60 - mov r12, r0 - ldrb r2, [r6] - lsls r2, 9 - adds r0, 0x1 - adds r0, r2, r0 - ldrb r0, [r0] - mov r1, r12 - adds r1, 0x2 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - ldr r5, _0811FEE8 @ =gUnknown_0202F7C4 - mov r1, r12 - adds r1, 0x3 - adds r2, r1 - ldrb r1, [r2] - strb r1, [r5] - ldr r4, _0811FEEC @ =gUnknown_0202F7BC - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0x4 - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, r12 - adds r1, 0x5 - adds r2, r1 - ldrb r1, [r2] - lsls r1, 8 - orrs r3, r1 - strh r3, [r4] - ldr r4, _0811FEF0 @ =gUnknown_0202F7B8 - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0x6 - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, r12 - adds r1, 0x7 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, 8 - orrs r3, r1 - mov r1, r12 - adds r1, 0x8 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, 16 - orrs r3, r1 - mov r1, r12 - adds r1, 0x9 - adds r2, r1 - ldrb r1, [r2] - lsls r1, 24 - orrs r3, r1 - str r3, [r4] - ldr r3, _0811FEF4 @ =gUnknown_0202F7BE - ldrb r1, [r6] - lsls r1, 9 - mov r2, r12 - adds r2, 0xA - adds r1, r2 - ldrb r1, [r1] - strb r1, [r3] - ldr r4, _0811FEF8 @ =gUnknown_0202F7C0 - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0xC - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, r12 - adds r1, 0xD - adds r2, r1 - ldrb r1, [r2] - lsls r1, 8 - orrs r3, r1 - strh r3, [r4] - ldr r3, _0811FEFC @ =gUnknown_0202F7B4 - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0x10 - adds r2, r1 - str r2, [r3] - ldr r3, _0811FF00 @ =gUnknown_02024E70 - ldrb r1, [r6] - lsls r1, 2 - adds r1, r3 - ldr r2, [r2] - str r2, [r1] - ldrb r1, [r5] - bl sub_8031720 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _0811FF04 - bl dp01_tbl3_exec_completed - b _0811FF1E - .align 2, 0 -_0811FEE0: .4byte gUnknown_02024A60 -_0811FEE4: .4byte gUnknown_02023A60 -_0811FEE8: .4byte gUnknown_0202F7C4 -_0811FEEC: .4byte gUnknown_0202F7BC -_0811FEF0: .4byte gUnknown_0202F7B8 -_0811FEF4: .4byte gUnknown_0202F7BE -_0811FEF8: .4byte gUnknown_0202F7C0 -_0811FEFC: .4byte gUnknown_0202F7B4 -_0811FF00: .4byte gUnknown_02024E70 -_0811FF04: - ldrb r1, [r6] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _0811FF24 @ =0x02017810 - adds r0, r1 - strb r2, [r0, 0x4] - ldr r1, _0811FF28 @ =gUnknown_03004330 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, _0811FF2C @ =sub_811FF30 - str r1, [r0] -_0811FF1E: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0811FF24: .4byte 0x02017810 -_0811FF28: .4byte gUnknown_03004330 -_0811FF2C: .4byte sub_811FF30 - thumb_func_end sub_811FDFC - - thumb_func_start sub_811FF30 -sub_811FF30: @ 811FF30 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r2, _0811FF74 @ =gUnknown_02023A60 - ldr r5, _0811FF78 @ =gUnknown_02024A60 - ldrb r3, [r5] - lsls r1, r3, 9 - adds r0, r2, 0x1 - mov r9, r0 - adds r0, r1, r0 - ldrb r4, [r0] - adds r6, r2, 0x2 - mov r8, r6 - adds r0, r1, r6 - ldrb r0, [r0] - lsls r0, 8 - orrs r4, r0 - adds r2, 0xB - adds r1, r2 - ldrb r7, [r1] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - ldr r6, _0811FF7C @ =0x02017810 - adds r0, r6 - ldrb r2, [r0, 0x4] - cmp r2, 0x1 - beq _0811FFBE - cmp r2, 0x1 - bgt _0811FF80 - cmp r2, 0 - beq _0811FF8A - b _08120088 - .align 2, 0 -_0811FF74: .4byte gUnknown_02023A60 -_0811FF78: .4byte gUnknown_02024A60 -_0811FF7C: .4byte 0x02017810 -_0811FF80: - cmp r2, 0x2 - beq _0811FFE4 - cmp r2, 0x3 - beq _08120050 - b _08120088 -_0811FF8A: - lsls r1, r3, 2 - adds r0, r6, 0 - subs r0, 0x10 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0xC - ands r0, r2 - cmp r0, 0x4 - bne _0811FFAE - movs r0, 0x8 - orrs r0, r2 - strb r0, [r1] - ldrb r2, [r5] - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x5 - bl move_anim_start_t4 -_0811FFAE: - ldrb r0, [r5] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - movs r0, 0x1 - strb r0, [r1, 0x4] - b _08120088 -_0811FFBE: - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08120088 - movs r0, 0 - bl sub_80326EC - adds r0, r4, 0 - bl ExecuteMoveAnim - ldrb r0, [r5] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - movs r0, 0x2 - strb r0, [r1, 0x4] - b _08120088 -_0811FFE4: - ldr r0, _08120040 @ =gAnimScriptCallback - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _08120044 @ =gAnimScriptActive - ldrb r0, [r0] - cmp r0, 0 - bne _08120088 - movs r0, 0x1 - bl sub_80326EC - ldrb r2, [r5] - lsls r0, r2, 2 - adds r4, r6, 0 - subs r4, 0x10 - adds r0, r4 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0812002C - cmp r7, 0x1 - bhi _0812002C - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x6 - bl move_anim_start_t4 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r4 - ldrb r2, [r0] - movs r1, 0x9 - negs r1, r1 - ands r1, r2 - strb r1, [r0] -_0812002C: - ldr r0, _08120048 @ =gUnknown_02024A60 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _0812004C @ =0x02017810 - adds r0, r1 - movs r1, 0x3 - strb r1, [r0, 0x4] - b _08120088 - .align 2, 0 -_08120040: .4byte gAnimScriptCallback -_08120044: .4byte gAnimScriptActive -_08120048: .4byte gUnknown_02024A60 -_0812004C: .4byte 0x02017810 -_08120050: - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _08120088 - bl sub_8031F24 - ldrb r0, [r5] - lsls r2, r0, 9 - mov r3, r9 - adds r1, r2, r3 - ldrb r1, [r1] - add r2, r8 - ldrb r2, [r2] - lsls r2, 8 - orrs r1, r2 - bl sub_80324BC - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strb r4, [r0, 0x4] - bl dp01_tbl3_exec_completed -_08120088: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_811FF30 - - thumb_func_start sub_8120094 -sub_8120094: @ 8120094 - push {r4,lr} - sub sp, 0x4 - ldr r0, _081200D8 @ =gUnknown_030042A4 - movs r1, 0 - strh r1, [r0] - ldr r0, _081200DC @ =gUnknown_030042A0 - strh r1, [r0] - ldr r4, _081200E0 @ =gUnknown_02024A60 - ldrb r0, [r4] - lsls r0, 9 - ldr r1, _081200E4 @ =gUnknown_02023A62 - adds r0, r1 - ldrh r0, [r0] - bl sub_8120AA8 - ldr r0, _081200E8 @ =gUnknown_03004210 - ldr r1, _081200EC @ =gUnknown_020238CC - movs r2, 0xF - str r2, [sp] - movs r2, 0x90 - movs r3, 0x2 - bl sub_8002EB0 - ldr r1, _081200F0 @ =gUnknown_03004330 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _081200F4 @ =sub_811DFA0 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081200D8: .4byte gUnknown_030042A4 -_081200DC: .4byte gUnknown_030042A0 -_081200E0: .4byte gUnknown_02024A60 -_081200E4: .4byte gUnknown_02023A62 -_081200E8: .4byte gUnknown_03004210 -_081200EC: .4byte gUnknown_020238CC -_081200F0: .4byte gUnknown_03004330 -_081200F4: .4byte sub_811DFA0 - thumb_func_end sub_8120094 - - thumb_func_start sub_81200F8 -sub_81200F8: @ 81200F8 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_81200F8 - - thumb_func_start sub_8120104 -sub_8120104: @ 8120104 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8120104 - - thumb_func_start sub_8120110 -sub_8120110: @ 8120110 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8120110 - - thumb_func_start sub_812011C -sub_812011C: @ 812011C - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_812011C - - thumb_func_start sub_8120128 -sub_8120128: @ 8120128 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8120128 - - thumb_func_start sub_8120134 -sub_8120134: @ 8120134 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8120134 - - thumb_func_start sub_8120140 -sub_8120140: @ 8120140 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8120140 - - thumb_func_start sub_812014C -sub_812014C: @ 812014C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - movs r0, 0 - bl load_gfxc_health_bar - ldr r3, _081201C4 @ =gUnknown_02023A60 - ldr r0, _081201C8 @ =gUnknown_02024A60 - mov r9, r0 - ldrb r4, [r0] - lsls r2, r4, 9 - adds r0, r3, 0x2 - adds r0, r2, r0 - ldrb r1, [r0] - adds r3, 0x3 - adds r2, r3 - ldrb r0, [r2] - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - asrs r7, r1, 16 - ldr r0, _081201CC @ =0x00007fff - cmp r7, r0 - beq _081201DC - ldr r6, _081201D0 @ =gUnknown_02024A6A - lsls r0, r4, 1 - adds r0, r6 - ldrh r0, [r0] - movs r5, 0x64 - muls r0, r5 - ldr r4, _081201D4 @ =gPlayerParty - adds r0, r4 - movs r1, 0x3A - bl GetMonData - mov r8, r0 - mov r1, r9 - ldrb r0, [r1] - lsls r0, 1 - adds r0, r6 - ldrh r0, [r0] - muls r0, r5 - adds r0, r4 - movs r1, 0x39 - bl GetMonData - adds r3, r0, 0 - mov r1, r9 - ldrb r0, [r1] - ldr r1, _081201D8 @ =gUnknown_03004340 - adds r1, r0, r1 - ldrb r1, [r1] - str r7, [sp] - mov r2, r8 - bl sub_8043D84 - b _08120206 - .align 2, 0 -_081201C4: .4byte gUnknown_02023A60 -_081201C8: .4byte gUnknown_02024A60 -_081201CC: .4byte 0x00007fff -_081201D0: .4byte gUnknown_02024A6A -_081201D4: .4byte gPlayerParty -_081201D8: .4byte gUnknown_03004340 -_081201DC: - ldr r1, _08120224 @ =gUnknown_02024A6A - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08120228 @ =gPlayerParty - adds r0, r1 - movs r1, 0x3A - bl GetMonData - adds r2, r0, 0 - mov r1, r9 - ldrb r0, [r1] - ldr r1, _0812022C @ =gUnknown_03004340 - adds r1, r0, r1 - ldrb r1, [r1] - str r7, [sp] - movs r3, 0 - bl sub_8043D84 -_08120206: - ldr r1, _08120230 @ =gUnknown_03004330 - ldr r0, _08120234 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _08120238 @ =bx_t3_healthbar_update - str r1, [r0] - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08120224: .4byte gUnknown_02024A6A -_08120228: .4byte gPlayerParty -_0812022C: .4byte gUnknown_03004340 -_08120230: .4byte gUnknown_03004330 -_08120234: .4byte gUnknown_02024A60 -_08120238: .4byte bx_t3_healthbar_update - thumb_func_end sub_812014C - - thumb_func_start sub_812023C -sub_812023C: @ 812023C - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_812023C - - thumb_func_start sub_8120248 -sub_8120248: @ 8120248 - push {r4,lr} - ldr r4, _081202A0 @ =gUnknown_02024A60 - ldrb r0, [r4] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - bne _08120298 - ldr r0, _081202A4 @ =gUnknown_03004340 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - ldr r2, _081202A8 @ =gUnknown_02024A6A - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, _081202AC @ =gPlayerParty - adds r1, r2 - movs r2, 0x9 - bl sub_8045A5C - ldrb r0, [r4] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - ldr r0, _081202B0 @ =0x02017810 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x11 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r1, _081202B4 @ =gUnknown_03004330 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _081202B8 @ =sub_811E38C - str r1, [r0] -_08120298: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081202A0: .4byte gUnknown_02024A60 -_081202A4: .4byte gUnknown_03004340 -_081202A8: .4byte gUnknown_02024A6A -_081202AC: .4byte gPlayerParty -_081202B0: .4byte 0x02017810 -_081202B4: .4byte gUnknown_03004330 -_081202B8: .4byte sub_811E38C - thumb_func_end sub_8120248 - - thumb_func_start sub_81202BC -sub_81202BC: @ 81202BC - push {r4,r5,lr} - ldr r5, _08120314 @ =gUnknown_02024A60 - ldrb r0, [r5] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - bne _0812030C - ldr r4, _08120318 @ =gUnknown_02023A60 - ldrb r3, [r5] - lsls r3, 9 - adds r0, r4, 0x1 - adds r0, r3, r0 - ldrb r0, [r0] - adds r1, r4, 0x2 - adds r1, r3, r1 - ldrb r1, [r1] - adds r2, r4, 0x3 - adds r2, r3, r2 - ldrb r2, [r2] - lsls r2, 8 - orrs r1, r2 - adds r2, r4, 0x4 - adds r2, r3, r2 - ldrb r2, [r2] - lsls r2, 16 - orrs r1, r2 - adds r4, 0x5 - adds r3, r4 - ldrb r2, [r3] - lsls r2, 24 - orrs r1, r2 - bl move_anim_start_t2_for_situation - ldr r1, _0812031C @ =gUnknown_03004330 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, _08120320 @ =sub_811E38C - str r1, [r0] -_0812030C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08120314: .4byte gUnknown_02024A60 -_08120318: .4byte gUnknown_02023A60 -_0812031C: .4byte gUnknown_03004330 -_08120320: .4byte sub_811E38C - thumb_func_end sub_81202BC - - thumb_func_start sub_8120324 -sub_8120324: @ 8120324 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8120324 - - thumb_func_start sub_8120330 -sub_8120330: @ 8120330 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8120330 - - thumb_func_start sub_812033C -sub_812033C: @ 812033C - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_812033C - - thumb_func_start sub_8120348 -sub_8120348: @ 8120348 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8120348 - - thumb_func_start sub_8120354 -sub_8120354: @ 8120354 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8120354 - - thumb_func_start sub_8120360 -sub_8120360: @ 8120360 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8120360 - - thumb_func_start sub_812036C -sub_812036C: @ 812036C - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_812036C - - thumb_func_start sub_8120378 -sub_8120378: @ 8120378 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8120378 - - thumb_func_start sub_8120384 -sub_8120384: @ 8120384 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8120384 - - thumb_func_start sub_8120390 -sub_8120390: @ 8120390 - push {lr} - ldr r2, _081203A8 @ =gUnknown_020238C8 - ldrb r1, [r2] - movs r0, 0x80 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - .align 2, 0 -_081203A8: .4byte gUnknown_020238C8 - thumb_func_end sub_8120390 - - thumb_func_start sub_81203AC -sub_81203AC: @ 81203AC - push {lr} - ldr r3, _081203D8 @ =gUnknown_020238C8 - ldr r1, _081203DC @ =gUnknown_02023A60 - ldr r0, _081203E0 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0x7F - ands r1, r0 - ldrb r2, [r3] - movs r0, 0x80 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - .align 2, 0 -_081203D8: .4byte gUnknown_020238C8 -_081203DC: .4byte gUnknown_02023A60 -_081203E0: .4byte gUnknown_02024A60 - thumb_func_end sub_81203AC - - thumb_func_start sub_81203E4 -sub_81203E4: @ 81203E4 - push {lr} - ldr r2, _081203F8 @ =gUnknown_020238C8 - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - .align 2, 0 -_081203F8: .4byte gUnknown_020238C8 - thumb_func_end sub_81203E4 - - thumb_func_start sub_81203FC -sub_81203FC: @ 81203FC - push {lr} - ldr r3, _08120420 @ =gUnknown_020238C8 - ldr r1, [r3] - lsls r1, 24 - lsrs r1, 31 - movs r0, 0x1 - eors r1, r0 - lsls r1, 7 - ldrb r2, [r3] - movs r0, 0x7F - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - .align 2, 0 -_08120420: .4byte gUnknown_020238C8 - thumb_func_end sub_81203FC - - thumb_func_start dp01t_29_3_blink -dp01t_29_3_blink: @ 8120424 - push {r4,lr} - ldr r3, _0812044C @ =gSprites - ldr r2, _08120450 @ =gUnknown_02024BE0 - ldr r4, _08120454 @ =gUnknown_02024A60 - ldrb r0, [r4] - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - bge _08120458 - bl dp01_tbl3_exec_completed - b _08120482 - .align 2, 0 -_0812044C: .4byte gSprites -_08120450: .4byte gUnknown_02024BE0 -_08120454: .4byte gUnknown_02024A60 -_08120458: - ldr r1, _08120488 @ =gUnknown_02024E6D - movs r0, 0x1 - strb r0, [r1] - ldrb r0, [r4] - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0 - strh r1, [r0, 0x30] - ldrb r0, [r4] - bl sub_8047858 - ldr r1, _0812048C @ =gUnknown_03004330 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _08120490 @ =bx_blink_t3 - str r1, [r0] -_08120482: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08120488: .4byte gUnknown_02024E6D -_0812048C: .4byte gUnknown_03004330 -_08120490: .4byte bx_blink_t3 - thumb_func_end dp01t_29_3_blink - - thumb_func_start sub_8120494 -sub_8120494: @ 8120494 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8120494 - - thumb_func_start sub_81204A0 -sub_81204A0: @ 81204A0 - push {r4,lr} - ldr r4, _081204DC @ =gUnknown_02024A60 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - movs r3, 0x3F - cmp r0, 0 - bne _081204B4 - movs r3, 0xC0 -_081204B4: - ldr r2, _081204E0 @ =gUnknown_02023A60 - ldrb r1, [r4] - lsls r1, 9 - adds r0, r2, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, 0x2 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - lsls r1, r3, 24 - asrs r1, 24 - bl PlaySE12WithPanning - bl dp01_tbl3_exec_completed - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081204DC: .4byte gUnknown_02024A60 -_081204E0: .4byte gUnknown_02023A60 - thumb_func_end sub_81204A0 - - thumb_func_start sub_81204E4 -sub_81204E4: @ 81204E4 - push {lr} - ldr r2, _0812050C @ =gUnknown_02023A60 - ldr r0, _08120510 @ =gUnknown_02024A60 - ldrb r1, [r0] - lsls r1, 9 - adds r0, r2, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, 0x2 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - bl PlayFanfare - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - .align 2, 0 -_0812050C: .4byte gUnknown_02023A60 -_08120510: .4byte gUnknown_02024A60 - thumb_func_end sub_81204E4 - - thumb_func_start sub_8120514 -sub_8120514: @ 8120514 - push {lr} - ldr r1, _08120548 @ =gUnknown_02024A6A - ldr r0, _0812054C @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08120550 @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x19 - negs r1, r1 - movs r2, 0x5 - bl PlayCry3 - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - .align 2, 0 -_08120548: .4byte gUnknown_02024A6A -_0812054C: .4byte gUnknown_02024A60 -_08120550: .4byte gPlayerParty - thumb_func_end sub_8120514 - - thumb_func_start dp01t_2E_3_battle_intro -dp01t_2E_3_battle_intro: @ 8120554 - push {lr} - ldr r1, _0812057C @ =gUnknown_02023A60 - ldr r0, _08120580 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - bl sub_80E43C0 - ldr r2, _08120584 @ =gUnknown_02024DE8 - ldrh r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r2] - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - .align 2, 0 -_0812057C: .4byte gUnknown_02023A60 -_08120580: .4byte gUnknown_02024A60 -_08120584: .4byte gUnknown_02024DE8 - thumb_func_end dp01t_2E_3_battle_intro - - thumb_func_start sub_8120588 -sub_8120588: @ 8120588 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r6, _081206DC @ =gUnknown_02024BE0 - ldr r7, _081206E0 @ =gUnknown_02024A60 - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r5, _081206E4 @ =gSprites - adds r0, r5 - bl oamt_add_pos2_onto_pos1 - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x32 - strh r1, [r0, 0x2E] - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _081206E8 @ =0x0000ffd8 - strh r1, [r0, 0x32] - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrh r1, [r0, 0x22] - strh r1, [r0, 0x36] - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _081206EC @ =sub_8078B34 - str r1, [r0] - ldrb r2, [r7] - adds r0, r2, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r2, [r0, 0x38] - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _081206F0 @ =sub_8030E38 - bl oamt_set_x3A_32 - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x1 - bl StartSpriteAnim - ldr r0, _081206F4 @ =0x0000d6f9 - bl AllocSpritePalette - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _081206F8 @ =gTrainerBackPicPaletteTable - mov r8, r0 - ldrb r0, [r7] - bl sub_803FC34 - ldr r2, _081206FC @ =gLinkPlayers - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1, 0x13] - lsls r0, 3 - add r0, r8 - ldr r0, [r0] - lsls r4, 4 - movs r2, 0x80 - lsls r2, 1 - adds r1, r4, r2 - movs r2, 0x20 - bl LoadCompressedPalette - ldrb r0, [r7] - adds r0, r6 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r4 - strb r0, [r1, 0x5] - ldr r0, _08120700 @ =sub_812071C - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r4, _08120704 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r4 - ldrb r0, [r7] - strh r0, [r1, 0x8] - ldrb r3, [r7] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - ldr r2, _08120708 @ =0x02017810 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081206BA - ldr r0, _0812070C @ =gUnknown_02024E68 - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - ldr r1, _08120710 @ =sub_8044CA0 - str r1, [r0] -_081206BA: - adds r2, 0x30 - ldrb r0, [r2, 0x9] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2, 0x9] - ldr r1, _08120714 @ =gUnknown_03004330 - ldrb r0, [r7] - lsls r0, 2 - adds r0, r1 - ldr r1, _08120718 @ =nullsub_74 - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081206DC: .4byte gUnknown_02024BE0 -_081206E0: .4byte gUnknown_02024A60 -_081206E4: .4byte gSprites -_081206E8: .4byte 0x0000ffd8 -_081206EC: .4byte sub_8078B34 -_081206F0: .4byte sub_8030E38 -_081206F4: .4byte 0x0000d6f9 -_081206F8: .4byte gTrainerBackPicPaletteTable -_081206FC: .4byte gLinkPlayers -_08120700: .4byte sub_812071C -_08120704: .4byte gTasks -_08120708: .4byte 0x02017810 -_0812070C: .4byte gUnknown_02024E68 -_08120710: .4byte sub_8044CA0 -_08120714: .4byte gUnknown_03004330 -_08120718: .4byte nullsub_74 - thumb_func_end sub_8120588 - - thumb_func_start sub_812071C -sub_812071C: @ 812071C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r1, _08120744 @ =gTasks - lsls r0, 2 - add r0, r8 - lsls r0, 3 - adds r1, r0, r1 - ldrh r2, [r1, 0xA] - movs r3, 0xA - ldrsh r0, [r1, r3] - cmp r0, 0x17 - bgt _08120748 - adds r0, r2, 0x1 - strh r0, [r1, 0xA] - b _08120804 - .align 2, 0 -_08120744: .4byte gTasks -_08120748: - ldr r7, _08120788 @ =gUnknown_02024A60 - ldrb r0, [r7] - mov r9, r0 - ldrh r0, [r1, 0x8] - strb r0, [r7] - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - beq _08120768 - ldr r0, _0812078C @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08120798 -_08120768: - ldr r0, _08120790 @ =gUnknown_02023A60 - ldrb r1, [r7] - lsls r2, r1, 9 - adds r0, 0x1 - adds r2, r0 - ldr r0, _08120794 @ =gUnknown_02024A6A - lsls r1, 1 - adds r1, r0 - ldrh r0, [r1] - strb r0, [r2] - ldrb r0, [r7] - movs r1, 0 - bl sub_811F864 - b _081207EC - .align 2, 0 -_08120788: .4byte gUnknown_02024A60 -_0812078C: .4byte gBattleTypeFlags -_08120790: .4byte gUnknown_02023A60 -_08120794: .4byte gUnknown_02024A6A -_08120798: - ldr r4, _08120810 @ =gUnknown_02023A60 - ldrb r0, [r7] - lsls r1, r0, 9 - adds r4, 0x1 - adds r1, r4 - ldr r5, _08120814 @ =gUnknown_02024A6A - lsls r0, 1 - adds r0, r5 - ldrh r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - movs r1, 0 - bl sub_811F864 - ldrb r0, [r7] - movs r6, 0x2 - eors r0, r6 - strb r0, [r7] - ldrb r0, [r7] - lsls r1, r0, 9 - adds r1, r4 - lsls r0, 1 - adds r0, r5 - ldrh r0, [r0] - strb r0, [r1] - ldrb r1, [r7] - lsls r0, r1, 1 - adds r0, r5 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, _08120818 @ =gPlayerParty - adds r0, r2 - bl sub_80318FC - ldrb r0, [r7] - movs r1, 0 - bl sub_811F864 - ldrb r0, [r7] - eors r0, r6 - strb r0, [r7] -_081207EC: - ldr r1, _0812081C @ =gUnknown_03004330 - ldr r2, _08120820 @ =gUnknown_02024A60 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, _08120824 @ =sub_811DCA0 - str r1, [r0] - mov r3, r9 - strb r3, [r2] - mov r0, r8 - bl DestroyTask -_08120804: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08120810: .4byte gUnknown_02023A60 -_08120814: .4byte gUnknown_02024A6A -_08120818: .4byte gPlayerParty -_0812081C: .4byte gUnknown_03004330 -_08120820: .4byte gUnknown_02024A60 -_08120824: .4byte sub_811DCA0 - thumb_func_end sub_812071C - - thumb_func_start dp01t_30_3_80EB11C -dp01t_30_3_80EB11C: @ 8120828 - push {r4-r6,lr} - ldr r1, _08120850 @ =gUnknown_02023A60 - ldr r0, _08120854 @ =gUnknown_02024A60 - ldrb r2, [r0] - lsls r0, r2, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08120858 - adds r0, r2, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08120858 - bl dp01_tbl3_exec_completed - b _081208C0 - .align 2, 0 -_08120850: .4byte gUnknown_02023A60 -_08120854: .4byte gUnknown_02024A60 -_08120858: - ldr r5, _081208C8 @ =gUnknown_02024A60 - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r6, _081208CC @ =0x02017810 - adds r0, r6 - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] - ldrb r0, [r5] - lsls r3, r0, 9 - ldr r4, _081208D0 @ =gUnknown_02023A64 - adds r1, r3, r4 - subs r2, r4, 0x3 - adds r2, r3, r2 - ldrb r2, [r2] - subs r4, 0x2 - adds r3, r4 - ldrb r3, [r3] - bl sub_8044804 - ldr r2, _081208D4 @ =gUnknown_02024E68 - ldrb r1, [r5] - adds r1, r2 - movs r2, 0 - strb r0, [r1] - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strb r2, [r0, 0x5] - ldrb r1, [r5] - lsls r0, r1, 9 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _081208B4 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x5D - strb r1, [r0, 0x5] -_081208B4: - ldr r0, _081208D8 @ =gUnknown_03004330 - ldrb r1, [r5] - lsls r1, 2 - adds r1, r0 - ldr r0, _081208DC @ =sub_81208E0 - str r0, [r1] -_081208C0: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081208C8: .4byte gUnknown_02024A60 -_081208CC: .4byte 0x02017810 -_081208D0: .4byte gUnknown_02023A64 -_081208D4: .4byte gUnknown_02024E68 -_081208D8: .4byte gUnknown_03004330 -_081208DC: .4byte sub_81208E0 - thumb_func_end dp01t_30_3_80EB11C - - thumb_func_start sub_81208E0 -sub_81208E0: @ 81208E0 - push {r4,lr} - ldr r4, _08120918 @ =gUnknown_02024A60 - ldrb r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r3, _0812091C @ =0x02017810 - adds r0, r3 - ldrb r1, [r0, 0x5] - adds r2, r1, 0x1 - strb r2, [r0, 0x5] - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x5C - bls _08120910 - ldrb r0, [r4] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - movs r0, 0 - strb r0, [r1, 0x5] - bl dp01_tbl3_exec_completed -_08120910: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08120918: .4byte gUnknown_02024A60 -_0812091C: .4byte 0x02017810 - thumb_func_end sub_81208E0 - - thumb_func_start sub_8120920 -sub_8120920: @ 8120920 - push {lr} - ldr r0, _08120958 @ =gUnknown_02024A60 - ldrb r3, [r0] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - ldr r1, _0812095C @ =0x02017810 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0812094E - ldr r2, _08120960 @ =gTasks - ldr r0, _08120964 @ =gUnknown_02024E68 - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, _08120968 @ =sub_8044CA0 - str r1, [r0] -_0812094E: - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - .align 2, 0 -_08120958: .4byte gUnknown_02024A60 -_0812095C: .4byte 0x02017810 -_08120960: .4byte gTasks -_08120964: .4byte gUnknown_02024E68 -_08120968: .4byte sub_8044CA0 - thumb_func_end sub_8120920 - - thumb_func_start sub_812096C -sub_812096C: @ 812096C - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_812096C - - thumb_func_start sub_8120978 -sub_8120978: @ 8120978 - push {r4,lr} - ldr r4, _081209C8 @ =gUnknown_02024A60 - ldrb r0, [r4] - bl sub_8078874 - lsls r0, 24 - cmp r0, 0 - beq _081209BE - ldr r3, _081209CC @ =gSprites - ldr r0, _081209D0 @ =gUnknown_02024BE0 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - ldr r0, _081209D4 @ =gUnknown_02023A60 - lsls r1, 9 - adds r0, 0x1 - adds r1, r0 - adds r2, 0x3E - movs r0, 0x1 - ldrb r1, [r1] - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4] - bl sub_8031F88 -_081209BE: - bl dp01_tbl3_exec_completed - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081209C8: .4byte gUnknown_02024A60 -_081209CC: .4byte gSprites -_081209D0: .4byte gUnknown_02024BE0 -_081209D4: .4byte gUnknown_02023A60 - thumb_func_end sub_8120978 - - thumb_func_start sub_81209D8 -sub_81209D8: @ 81209D8 - push {r4-r6,lr} - sub sp, 0x4 - ldr r6, _08120A1C @ =gUnknown_02024A60 - ldrb r0, [r6] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - bne _08120A30 - ldr r5, _08120A20 @ =gUnknown_02023A60 - ldrb r2, [r6] - lsls r1, r2, 9 - adds r0, r5, 0x1 - adds r0, r1, r0 - ldrb r3, [r0] - adds r0, r5, 0x2 - adds r0, r1, r0 - ldrb r4, [r0] - adds r5, 0x3 - adds r1, r5 - ldrb r0, [r1] - lsls r0, 8 - orrs r4, r0 - str r4, [sp] - adds r0, r2, 0 - adds r1, r2, 0 - bl move_anim_start_t3 - lsls r0, 24 - cmp r0, 0 - beq _08120A24 - bl dp01_tbl3_exec_completed - b _08120A30 - .align 2, 0 -_08120A1C: .4byte gUnknown_02024A60 -_08120A20: .4byte gUnknown_02023A60 -_08120A24: - ldr r0, _08120A38 @ =gUnknown_03004330 - ldrb r1, [r6] - lsls r1, 2 - adds r1, r0 - ldr r0, _08120A3C @ =sub_811E3B8 - str r0, [r1] -_08120A30: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08120A38: .4byte gUnknown_03004330 -_08120A3C: .4byte sub_811E3B8 - thumb_func_end sub_81209D8 - - thumb_func_start sub_8120A40 -sub_8120A40: @ 8120A40 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8120A40 - - thumb_func_start sub_8120A4C -sub_8120A4C: @ 8120A4C - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8120A4C - - thumb_func_start sub_8120A58 -sub_8120A58: @ 8120A58 - push {r4,lr} - ldr r2, _08120A90 @ =gUnknown_02024D26 - ldr r1, _08120A94 @ =gUnknown_02023A60 - ldr r4, _08120A98 @ =gUnknown_02024A60 - ldrb r0, [r4] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - movs r0, 0x5 - bl FadeOutMapMusic - movs r0, 0x3 - bl BeginFastPaletteFade - bl dp01_tbl3_exec_completed - ldr r1, _08120A9C @ =gUnknown_03004330 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _08120AA0 @ =sub_811E29C - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08120A90: .4byte gUnknown_02024D26 -_08120A94: .4byte gUnknown_02023A60 -_08120A98: .4byte gUnknown_02024A60 -_08120A9C: .4byte gUnknown_03004330 -_08120AA0: .4byte sub_811E29C - thumb_func_end sub_8120A58 - - thumb_func_start nullsub_75 -nullsub_75: @ 8120AA4 - bx lr - thumb_func_end nullsub_75 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_9.s b/asm/battle_9.s index 350e13f30..887fbd702 100644 --- a/asm/battle_9.s +++ b/asm/battle_9.s @@ -9,8 +9,8 @@ thumb_func_start ai_switch_perish_song ai_switch_perish_song: @ 8035FEC push {lr} - ldr r1, _08036038 @ =gUnknown_02024C98 - ldr r0, _0803603C @ =gUnknown_02024A60 + ldr r1, _08036038 @ =gStatuses3 + ldr r0, _0803603C @ =gActiveBank ldrb r2, [r0] lsls r0, r2, 2 adds r0, r1 @@ -19,7 +19,7 @@ ai_switch_perish_song: @ 8035FEC ands r0, r1 cmp r0, 0 beq _0803604C - ldr r0, _08036040 @ =gUnknown_02024CA8 + ldr r0, _08036040 @ =gDisableStructs lsls r1, r2, 3 subs r1, r2 lsls r1, 2 @@ -29,7 +29,7 @@ ai_switch_perish_song: @ 8035FEC cmp r0, 0 bne _0803604C adds r0, r2, 0 - bl battle_get_per_side_status + bl GetBankIdentity ldr r1, _08036044 @ =0x02000000 lsls r0, 24 lsrs r0, 25 @@ -45,9 +45,9 @@ ai_switch_perish_song: @ 8035FEC movs r0, 0x1 b _0803604E .align 2, 0 -_08036038: .4byte gUnknown_02024C98 -_0803603C: .4byte gUnknown_02024A60 -_08036040: .4byte gUnknown_02024CA8 +_08036038: .4byte gStatuses3 +_0803603C: .4byte gActiveBank +_08036040: .4byte gDisableStructs _08036044: .4byte 0x02000000 _08036048: .4byte 0x000160c8 _0803604C: @@ -73,9 +73,9 @@ sub_8036054: @ 8036054 .align 2, 0 _0803606C: .4byte gBattleTypeFlags _08036070: - ldr r0, _08036094 @ =gUnknown_02024A60 + ldr r0, _08036094 @ =gActiveBank ldrb r0, [r0] - bl battle_get_per_side_status + bl GetBankIdentity ldr r1, _08036098 @ =0x02000000 lsls r0, 24 lsrs r0, 25 @@ -90,13 +90,13 @@ _08036070: movs r0, 0x1 b _080361CA .align 2, 0 -_08036094: .4byte gUnknown_02024A60 +_08036094: .4byte gActiveBank _08036098: .4byte 0x02000000 _0803609C: .4byte 0x000160c8 _080360A0: ldr r4, _080361D8 @ =gBattleMons movs r0, 0 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 movs r1, 0x58 @@ -109,7 +109,7 @@ _080360A0: b _080361C8 _080360BC: movs r0, 0 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r2, r0, 24 movs r6, 0 @@ -123,7 +123,7 @@ _080360BC: mov r8, r3 _080360D8: lsls r1, r6, 1 - ldr r0, _080361DC @ =gUnknown_02024A60 + ldr r0, _080361DC @ =gActiveBank ldrb r0, [r0] muls r0, r5 adds r1, r0 @@ -173,8 +173,8 @@ _08036110: lsls r1, 1 cmp r0, r1 beq _080361C2 - ldr r1, _080361E4 @ =gUnknown_02024A6A - ldr r0, _080361DC @ =gUnknown_02024A60 + ldr r1, _080361E4 @ =gBattlePartyID + ldr r0, _080361DC @ =gActiveBank ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -188,7 +188,7 @@ _08036110: movs r1, 0x2E bl GetMonData movs r0, 0 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r2, r0, 24 movs r4, 0 @@ -247,9 +247,9 @@ _080361CA: bx r1 .align 2, 0 _080361D8: .4byte gBattleMons -_080361DC: .4byte gUnknown_02024A60 +_080361DC: .4byte gActiveBank _080361E0: .4byte gEnemyParty -_080361E4: .4byte gUnknown_02024A6A +_080361E4: .4byte gBattlePartyID thumb_func_end sub_8036054 thumb_func_start sub_80361E8 @@ -274,8 +274,8 @@ sub_80361E8: @ 80361E8 beq _08036214 b _08036400 _08036214: - ldr r1, _0803627C @ =gUnknown_02024C3C - ldr r5, _08036280 @ =gUnknown_02024A60 + ldr r1, _0803627C @ =gMoveHitWith + ldr r5, _08036280 @ =gActiveBank ldrb r3, [r5] lsls r0, r3, 1 adds r4, r0, r1 @@ -308,13 +308,13 @@ _08036242: beq _080362AE mov r8, r3 mov r0, r8 - bl battle_get_per_side_status + bl GetBankIdentity movs r4, 0x2 eors r0, r4 lsls r0, 24 lsrs r0, 24 - bl battle_get_side_with_given_state - ldr r1, _08036290 @ =gUnknown_02024C0C + bl GetBankByPlayerAI + ldr r1, _08036290 @ =gAbsentBankFlags ldrb r1, [r1] ldr r2, _08036294 @ =gBitTable lsls r0, 24 @@ -327,20 +327,20 @@ _08036242: ldrb r7, [r5] b _080362B2 .align 2, 0 -_0803627C: .4byte gUnknown_02024C3C -_08036280: .4byte gUnknown_02024A60 +_0803627C: .4byte gMoveHitWith +_08036280: .4byte gActiveBank _08036284: .4byte 0x0000ffff _08036288: .4byte gBattleMoves _0803628C: .4byte gBattleTypeFlags -_08036290: .4byte gUnknown_02024C0C +_08036290: .4byte gAbsentBankFlags _08036294: .4byte gBitTable _08036298: ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity eors r0, r4 lsls r0, 24 lsrs r0, 24 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r7, r0, 24 b _080362B2 @@ -349,8 +349,8 @@ _080362AE: mov r8, r7 _080362B2: ldr r3, _080362D4 @ =gBattleMoves - ldr r1, _080362D8 @ =gUnknown_02024C3C - ldr r2, _080362DC @ =gUnknown_02024A60 + ldr r1, _080362D8 @ =gMoveHitWith + ldr r2, _080362DC @ =gActiveBank ldrb r0, [r2] lsls r0, 1 adds r0, r1 @@ -367,8 +367,8 @@ _080362B2: b _080362F2 .align 2, 0 _080362D4: .4byte gBattleMoves -_080362D8: .4byte gUnknown_02024C3C -_080362DC: .4byte gUnknown_02024A60 +_080362D8: .4byte gMoveHitWith +_080362DC: .4byte gActiveBank _080362E0: cmp r0, 0xB bne _080362EA @@ -397,9 +397,9 @@ _080362F4: .align 2, 0 _08036308: .4byte gBattleMons _0803630C: - ldr r0, _08036330 @ =gUnknown_02024A60 + ldr r0, _08036330 @ =gActiveBank ldrb r0, [r0] - bl battle_get_per_side_status + bl GetBankIdentity ldr r1, _08036334 @ =0x02000000 lsls r0, 24 lsrs r0, 25 @@ -414,7 +414,7 @@ _0803630C: movs r0, 0x1 b _08036402 .align 2, 0 -_08036330: .4byte gUnknown_02024A60 +_08036330: .4byte gActiveBank _08036334: .4byte 0x02000000 _08036338: .4byte 0x000160c8 _0803633C: @@ -444,7 +444,7 @@ _08036342: lsls r1, 1 cmp r0, r1 beq _080363FA - ldr r1, _080363D4 @ =gUnknown_02024A6A + ldr r1, _080363D4 @ =gBattlePartyID mov r2, r8 lsls r0, r2, 1 adds r0, r1 @@ -488,7 +488,7 @@ _08036342: .align 2, 0 _080363CC: .4byte gBaseStats _080363D0: .4byte gEnemyParty -_080363D4: .4byte gUnknown_02024A6A +_080363D4: .4byte gBattlePartyID _080363D8: .4byte 0x02000000 _080363DC: .4byte 0x00016068 _080363E0: @@ -525,7 +525,7 @@ _08036402: ai_switchout_natural_cure: @ 8036410 push {r4,r5,lr} ldr r3, _08036468 @ =gBattleMons - ldr r5, _0803646C @ =gUnknown_02024A60 + ldr r5, _0803646C @ =gActiveBank ldrb r4, [r5] movs r0, 0x58 adds r2, r4, 0 @@ -549,7 +549,7 @@ ai_switchout_natural_cure: @ 8036410 lsrs r0, 1 cmp r1, r0 bcc _080364D8 - ldr r1, _08036470 @ =gUnknown_02024C3C + ldr r1, _08036470 @ =gMoveHitWith lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] @@ -568,13 +568,13 @@ _08036456: b _080364E0 .align 2, 0 _08036468: .4byte gBattleMons -_0803646C: .4byte gUnknown_02024A60 -_08036470: .4byte gUnknown_02024C3C +_0803646C: .4byte gActiveBank +_08036470: .4byte gMoveHitWith _08036474: .4byte 0x0000ffff _08036478: ldr r2, _080364A4 @ =gBattleMoves - ldr r1, _080364A8 @ =gUnknown_02024C3C - ldr r4, _080364AC @ =gUnknown_02024A60 + ldr r1, _080364A8 @ =gMoveHitWith + ldr r4, _080364AC @ =gActiveBank ldrb r0, [r4] lsls r0, 1 adds r0, r1 @@ -595,8 +595,8 @@ _08036478: b _080364E0 .align 2, 0 _080364A4: .4byte gBattleMoves -_080364A8: .4byte gUnknown_02024C3C -_080364AC: .4byte gUnknown_02024A60 +_080364A8: .4byte gMoveHitWith +_080364AC: .4byte gActiveBank _080364B0: movs r0, 0x8 movs r1, 0x1 @@ -619,10 +619,10 @@ _080364D8: movs r0, 0 b _08036500 _080364DC: - ldr r0, _08036508 @ =gUnknown_02024A60 + ldr r0, _08036508 @ =gActiveBank ldrb r0, [r0] _080364E0: - bl battle_get_per_side_status + bl GetBankIdentity ldr r1, _0803650C @ =0x02000000 lsls r0, 24 lsrs r0, 25 @@ -642,7 +642,7 @@ _08036500: pop {r1} bx r1 .align 2, 0 -_08036508: .4byte gUnknown_02024A60 +_08036508: .4byte gActiveBank _0803650C: .4byte 0x02000000 _08036510: .4byte 0x000160c8 thumb_func_end ai_switchout_natural_cure @@ -657,10 +657,10 @@ ai_has_super_effective_move_on_field: @ 8036514 lsrs r0, 24 mov r8, r0 movs r0, 0 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r3, r0, 24 - ldr r0, _080365AC @ =gUnknown_02024C0C + ldr r0, _080365AC @ =gAbsentBankFlags ldrb r1, [r0] ldr r2, _080365B0 @ =gBitTable lsls r0, r3, 2 @@ -680,7 +680,7 @@ ai_has_super_effective_move_on_field: @ 8036514 mov r9, r0 _08036550: lsls r1, r4, 1 - ldr r0, _080365B8 @ =gUnknown_02024A60 + ldr r0, _080365B8 @ =gActiveBank ldrb r0, [r0] muls r0, r7 adds r1, r0 @@ -724,20 +724,20 @@ _0803659C: bne _080365C4 b _0803663E .align 2, 0 -_080365AC: .4byte gUnknown_02024C0C +_080365AC: .4byte gAbsentBankFlags _080365B0: .4byte gBitTable _080365B4: .4byte gBattleMons -_080365B8: .4byte gUnknown_02024A60 +_080365B8: .4byte gActiveBank _080365BC: .4byte gBattleTypeFlags _080365C0: movs r0, 0x1 b _08036640 _080365C4: movs r0, 0x2 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r3, r0, 24 - ldr r0, _0803664C @ =gUnknown_02024C0C + ldr r0, _0803664C @ =gAbsentBankFlags ldrb r1, [r0] ldr r2, _08036650 @ =gBitTable lsls r0, r3, 2 @@ -757,7 +757,7 @@ _080365C4: mov r9, r3 _080365F2: lsls r1, r4, 1 - ldr r0, _08036658 @ =gUnknown_02024A60 + ldr r0, _08036658 @ =gActiveBank ldrb r0, [r0] muls r0, r7 adds r1, r0 @@ -802,10 +802,10 @@ _08036640: pop {r1} bx r1 .align 2, 0 -_0803664C: .4byte gUnknown_02024C0C +_0803664C: .4byte gAbsentBankFlags _08036650: .4byte gBitTable _08036654: .4byte gBattleMons -_08036658: .4byte gUnknown_02024A60 +_08036658: .4byte gActiveBank thumb_func_end ai_has_super_effective_move_on_field thumb_func_start ai_is_too_invested_in_stat_buffs @@ -813,7 +813,7 @@ ai_is_too_invested_in_stat_buffs: @ 803665C push {r4,lr} movs r4, 0 ldr r1, _0803669C @ =gBattleMons - ldr r0, _080366A0 @ =gUnknown_02024A60 + ldr r0, _080366A0 @ =gActiveBank ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -847,7 +847,7 @@ _08036696: bx r1 .align 2, 0 _0803669C: .4byte gBattleMons -_080366A0: .4byte gUnknown_02024A60 +_080366A0: .4byte gActiveBank thumb_func_end ai_is_too_invested_in_stat_buffs thumb_func_start sub_80366A4 @@ -864,8 +864,8 @@ sub_80366A4: @ 80366A4 lsls r1, 24 lsrs r1, 24 str r1, [sp, 0x4] - ldr r1, _08036730 @ =gUnknown_02024C3C - ldr r5, _08036734 @ =gUnknown_02024A60 + ldr r1, _08036730 @ =gMoveHitWith + ldr r5, _08036734 @ =gActiveBank ldrb r3, [r5] lsls r0, r3, 1 adds r4, r0, r1 @@ -905,13 +905,13 @@ _080366F6: beq _08036798 mov r9, r3 mov r0, r9 - bl battle_get_per_side_status + bl GetBankIdentity movs r4, 0x2 eors r0, r4 lsls r0, 24 lsrs r0, 24 - bl battle_get_side_with_given_state - ldr r1, _08036748 @ =gUnknown_02024C0C + bl GetBankByPlayerAI + ldr r1, _08036748 @ =gAbsentBankFlags ldrb r1, [r1] ldr r2, _0803674C @ =gBitTable lsls r0, 24 @@ -925,29 +925,29 @@ _080366F6: mov r10, r5 b _0803679C .align 2, 0 -_08036730: .4byte gUnknown_02024C3C -_08036734: .4byte gUnknown_02024A60 +_08036730: .4byte gMoveHitWith +_08036734: .4byte gActiveBank _08036738: .4byte 0x0000ffff _0803673C: .4byte gUnknown_02024C5C _08036740: .4byte gBattleMoves _08036744: .4byte gBattleTypeFlags -_08036748: .4byte gUnknown_02024C0C +_08036748: .4byte gAbsentBankFlags _0803674C: .4byte gBitTable _08036750: ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity eors r0, r4 lsls r0, 24 lsrs r0, 24 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 mov r10, r0 b _0803679C _08036768: - ldr r0, _0803678C @ =gUnknown_02024A60 + ldr r0, _0803678C @ =gActiveBank ldrb r0, [r0] - bl battle_get_per_side_status + bl GetBankIdentity ldr r1, _08036790 @ =0x02000000 lsls r0, 24 lsrs r0, 25 @@ -962,7 +962,7 @@ _08036768: movs r0, 0x1 b _080368DA .align 2, 0 -_0803678C: .4byte gUnknown_02024A60 +_0803678C: .4byte gActiveBank _08036790: .4byte 0x02000000 _08036794: .4byte 0x000160c8 _08036798: @@ -997,7 +997,7 @@ _080367C4: lsls r1, 1 cmp r0, r1 beq _080368D0 - ldr r1, _08036834 @ =gUnknown_02024A6A + ldr r1, _08036834 @ =gBattlePartyID mov r2, r9 lsls r0, r2, 1 adds r0, r1 @@ -1042,7 +1042,7 @@ _080367C4: b _08036850 .align 2, 0 _08036830: .4byte gEnemyParty -_08036834: .4byte gUnknown_02024A6A +_08036834: .4byte gBattlePartyID _08036838: .4byte 0x02000000 _0803683C: .4byte 0x00016068 _08036840: .4byte gBaseStats @@ -1054,8 +1054,8 @@ _08036844: adds r0, r2 ldrb r2, [r0, 0x16] _08036850: - ldr r1, _080368F0 @ =gUnknown_02024C3C - ldr r5, _080368F4 @ =gUnknown_02024A60 + ldr r1, _080368F0 @ =gMoveHitWith + ldr r5, _080368F4 @ =gActiveBank ldrb r0, [r5] lsls r0, 1 adds r0, r1 @@ -1133,8 +1133,8 @@ _080368DA: bx r1 .align 2, 0 _080368EC: .4byte gBaseStats -_080368F0: .4byte gUnknown_02024C3C -_080368F4: .4byte gUnknown_02024A60 +_080368F0: .4byte gMoveHitWith +_080368F4: .4byte gActiveBank _080368F8: .4byte gUnknown_02024C5C _080368FC: .4byte gBattleMons _08036900: .4byte gEnemyParty @@ -1147,7 +1147,7 @@ sub_8036904: @ 8036904 push {r7} sub sp, 0x4 ldr r6, _080369E0 @ =gBattleMons - ldr r4, _080369E4 @ =gUnknown_02024A60 + ldr r4, _080369E4 @ =gActiveBank ldrb r2, [r4] movs r5, 0x58 adds r0, r2, 0 @@ -1162,7 +1162,7 @@ sub_8036904: @ 8036904 beq _0803692A b _08036AFC _0803692A: - ldr r0, _080369EC @ =gUnknown_02024C98 + ldr r0, _080369EC @ =gStatuses3 lsls r1, r2, 2 adds r1, r0 ldr r1, [r1] @@ -1178,7 +1178,7 @@ _0803693E: adds r1, r2, 0 movs r2, 0x17 movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 lsrs r0, 24 cmp r0, 0 @@ -1190,7 +1190,7 @@ _08036956: movs r0, 0xC movs r2, 0x47 movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 lsrs r0, 24 cmp r0, 0 @@ -1202,7 +1202,7 @@ _0803696E: movs r1, 0 movs r2, 0x2A movs r3, 0 - bl sub_8018324 + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 beq _080369A0 @@ -1231,16 +1231,16 @@ _080369A0: ands r0, r1 cmp r0, 0 beq _08036A12 - ldr r4, _080369E4 @ =gUnknown_02024A60 + ldr r4, _080369E4 @ =gActiveBank ldrb r7, [r4] adds r0, r7, 0 - bl battle_get_per_side_status + bl GetBankIdentity movs r5, 0x2 eors r0, r5 lsls r0, 24 lsrs r0, 24 - bl battle_get_side_with_given_state - ldr r1, _080369F4 @ =gUnknown_02024C0C + bl GetBankByPlayerAI + ldr r1, _080369F4 @ =gAbsentBankFlags ldrb r1, [r1] ldr r2, _080369F8 @ =gBitTable lsls r0, 24 @@ -1254,24 +1254,24 @@ _080369A0: b _08036A18 .align 2, 0 _080369E0: .4byte gBattleMons -_080369E4: .4byte gUnknown_02024A60 +_080369E4: .4byte gActiveBank _080369E8: .4byte 0x0400e000 -_080369EC: .4byte gUnknown_02024C98 +_080369EC: .4byte gStatuses3 _080369F0: .4byte gBattleTypeFlags -_080369F4: .4byte gUnknown_02024C0C +_080369F4: .4byte gAbsentBankFlags _080369F8: .4byte gBitTable _080369FC: ldrb r0, [r4] - bl battle_get_per_side_status + bl GetBankIdentity eors r0, r5 lsls r0, 24 lsrs r0, 24 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r6, r0, 24 b _08036A18 _08036A12: - ldr r0, _08036AE8 @ =gUnknown_02024A60 + ldr r0, _08036AE8 @ =gActiveBank ldrb r6, [r0] adds r7, r6, 0 _08036A18: @@ -1299,7 +1299,7 @@ _08036A1A: lsls r1, 1 cmp r0, r1 beq _08036A7E - ldr r1, _08036AF0 @ =gUnknown_02024A6A + ldr r1, _08036AF0 @ =gBattlePartyID lsls r0, r7, 1 adds r0, r1 ldrh r0, [r0] @@ -1372,9 +1372,9 @@ _08036AE4: movs r0, 0x1 b _08036AFE .align 2, 0 -_08036AE8: .4byte gUnknown_02024A60 +_08036AE8: .4byte gActiveBank _08036AEC: .4byte gEnemyParty -_08036AF0: .4byte gUnknown_02024A6A +_08036AF0: .4byte gBattlePartyID _08036AF4: .4byte 0x02000000 _08036AF8: .4byte 0x00016068 _08036AFC: @@ -1406,9 +1406,9 @@ _08036B1C: b _08036C24 _08036B28: ldr r4, _08036B6C @ =0x02000000 - ldr r0, _08036B70 @ =gUnknown_02024A60 + ldr r0, _08036B70 @ =gActiveBank ldrb r0, [r0] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 25 ldr r1, _08036B74 @ =0x000160c8 @@ -1428,7 +1428,7 @@ _08036B28: cmp r0, 0 bne _08036B78 movs r0, 0x1 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r5, r0, 24 adds r6, r5, 0 @@ -1436,15 +1436,15 @@ _08036B28: .align 2, 0 _08036B68: .4byte gBattleTypeFlags _08036B6C: .4byte 0x02000000 -_08036B70: .4byte gUnknown_02024A60 +_08036B70: .4byte gActiveBank _08036B74: .4byte 0x000160c8 _08036B78: movs r0, 0x1 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r6, r0, 24 movs r0, 0x3 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r5, r0, 24 _08036B8C: @@ -1458,7 +1458,7 @@ _08036B8E: bl GetMonData cmp r0, 0 beq _08036BCE - ldr r1, _08036C10 @ =gUnknown_02024A6A + ldr r1, _08036C10 @ =gBattlePartyID lsls r0, r6, 1 adds r0, r1 ldrh r0, [r0] @@ -1486,9 +1486,9 @@ _08036BCE: cmp r4, 0x5 ble _08036B8E _08036BD4: - ldr r0, _08036C1C @ =gUnknown_02024A60 + ldr r0, _08036C1C @ =gActiveBank ldrb r0, [r0] - bl battle_get_per_side_status + bl GetBankIdentity ldr r1, _08036C14 @ =0x02000000 lsls r0, 24 lsrs r0, 25 @@ -1497,9 +1497,9 @@ _08036BD4: adds r0, r1 strb r4, [r0] _08036BEA: - ldr r4, _08036C1C @ =gUnknown_02024A60 + ldr r4, _08036C1C @ =gActiveBank ldrb r0, [r4] - bl battle_get_per_side_status + bl GetBankIdentity ldr r2, _08036C14 @ =0x02000000 ldrb r1, [r4] ldr r3, _08036C18 @ =0x00016068 @@ -1515,10 +1515,10 @@ _08036BEA: b _08036C40 .align 2, 0 _08036C0C: .4byte gEnemyParty -_08036C10: .4byte gUnknown_02024A6A +_08036C10: .4byte gBattlePartyID _08036C14: .4byte 0x02000000 _08036C18: .4byte 0x00016068 -_08036C1C: .4byte gUnknown_02024A60 +_08036C1C: .4byte gActiveBank _08036C20: .4byte 0x000160c8 _08036C24: bl sub_803708C @@ -1526,7 +1526,7 @@ _08036C24: cmp r0, 0 bne _08036C40 _08036C2E: - ldr r0, _08036C48 @ =gUnknown_02024A60 + ldr r0, _08036C48 @ =gActiveBank ldrb r0, [r0] movs r2, 0x1 eors r2, r0 @@ -1539,7 +1539,7 @@ _08036C40: pop {r0} bx r0 .align 2, 0 -_08036C48: .4byte gUnknown_02024A60 +_08036C48: .4byte gActiveBank thumb_func_end sub_8036B0C thumb_func_start sub_8036C4C @@ -1629,16 +1629,16 @@ sub_8036CD4: @ 8036CD4 ands r0, r1 cmp r0, 0 beq _08036D78 - ldr r4, _08036D20 @ =gUnknown_02024A60 + ldr r4, _08036D20 @ =gActiveBank ldrb r0, [r4] str r0, [sp, 0xC] - bl battle_get_per_side_status + bl GetBankIdentity movs r5, 0x2 eors r0, r5 lsls r0, 24 lsrs r0, 24 - bl battle_get_side_with_given_state - ldr r1, _08036D24 @ =gUnknown_02024C0C + bl GetBankByPlayerAI + ldr r1, _08036D24 @ =gAbsentBankFlags ldrb r1, [r1] ldr r2, _08036D28 @ =gBitTable lsls r0, 24 @@ -1653,16 +1653,16 @@ sub_8036CD4: @ 8036CD4 b _08036D42 .align 2, 0 _08036D1C: .4byte gBattleTypeFlags -_08036D20: .4byte gUnknown_02024A60 -_08036D24: .4byte gUnknown_02024C0C +_08036D20: .4byte gActiveBank +_08036D24: .4byte gAbsentBankFlags _08036D28: .4byte gBitTable _08036D2C: ldrb r0, [r4] - bl battle_get_per_side_status + bl GetBankIdentity eors r0, r5 lsls r0, 24 lsrs r0, 24 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x10] @@ -1673,7 +1673,7 @@ _08036D42: lsls r0, 24 lsrs r0, 24 mov r10, r0 - ldr r0, _08036D70 @ =gUnknown_02024C0C + ldr r0, _08036D70 @ =gAbsentBankFlags ldrb r1, [r0] ldr r2, _08036D74 @ =gBitTable mov r4, r10 @@ -1689,15 +1689,15 @@ _08036D42: mov r10, r0 b _08036D8C .align 2, 0 -_08036D70: .4byte gUnknown_02024C0C +_08036D70: .4byte gAbsentBankFlags _08036D74: .4byte gBitTable _08036D78: movs r0, 0 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 mov r10, r0 - ldr r0, _08036E5C @ =gUnknown_02024A60 + ldr r0, _08036E5C @ =gActiveBank ldrb r0, [r0] str r0, [sp, 0x10] str r0, [sp, 0xC] @@ -1738,7 +1738,7 @@ _08036DA2: ands r0, r2 cmp r0, 0 bne _08036E7C - ldr r1, _08036E68 @ =gUnknown_02024A6A + ldr r1, _08036E68 @ =gBattlePartyID ldr r3, [sp, 0xC] lsls r0, r3, 1 adds r0, r1 @@ -1804,10 +1804,10 @@ _08036DA2: str r0, [sp, 0x8] b _08036E8A .align 2, 0 -_08036E5C: .4byte gUnknown_02024A60 +_08036E5C: .4byte gActiveBank _08036E60: .4byte gBitTable _08036E64: .4byte gEnemyParty -_08036E68: .4byte gUnknown_02024A6A +_08036E68: .4byte gBattlePartyID _08036E6C: .4byte 0x02000000 _08036E70: .4byte 0x00016068 _08036E74: .4byte gBaseStats @@ -1843,7 +1843,7 @@ _08036EA4: lsrs r4, r0, 16 cmp r4, 0 beq _08036ECA - ldr r0, _08036EF0 @ =gUnknown_02024A60 + ldr r0, _08036EF0 @ =gActiveBank ldrb r1, [r0] adds r0, r4, 0 mov r2, r10 @@ -1873,7 +1873,7 @@ _08036ED6: b _08036EFA .align 2, 0 _08036EEC: .4byte gEnemyParty -_08036EF0: .4byte gUnknown_02024A60 +_08036EF0: .4byte gActiveBank _08036EF4: .4byte gBitTable _08036EF8: movs r0, 0x3F @@ -1884,7 +1884,7 @@ _08036EFA: beq _08036F04 b _08036D94 _08036F04: - ldr r0, _08037000 @ =gUnknown_02024DEC + ldr r0, _08037000 @ =gDynamicBasePower movs r2, 0 strh r2, [r0] ldr r0, _08037004 @ =0x02000000 @@ -1923,7 +1923,7 @@ _08036F2C: bl GetMonData cmp r0, 0 beq _08036FE8 - ldr r1, _0803701C @ =gUnknown_02024A6A + ldr r1, _0803701C @ =gBattlePartyID ldr r4, [sp, 0xC] lsls r0, r4, 1 adds r0, r1 @@ -1952,7 +1952,7 @@ _08036F2C: mov r9, r6 ldr r4, _08037024 @ =gBattleMoveDamage mov r8, r4 - ldr r6, _08037028 @ =gUnknown_02024A60 + ldr r6, _08037028 @ =gActiveBank _08036F90: adds r1, r5, 0 adds r1, 0xD @@ -2012,17 +2012,17 @@ _08036FEE: pop {r1} bx r1 .align 2, 0 -_08037000: .4byte gUnknown_02024DEC +_08037000: .4byte gDynamicBasePower _08037004: .4byte 0x02000000 _08037008: .4byte 0x0001601c _0803700C: .4byte 0x0001601f _08037010: .4byte gBattleMoveFlags _08037014: .4byte gCritMultiplier _08037018: .4byte gEnemyParty -_0803701C: .4byte gUnknown_02024A6A +_0803701C: .4byte gBattlePartyID _08037020: .4byte 0x00016068 _08037024: .4byte gBattleMoveDamage -_08037028: .4byte gUnknown_02024A60 +_08037028: .4byte gActiveBank _0803702C: .4byte gBattleMoves thumb_func_end sub_8036CD4 @@ -2181,7 +2181,7 @@ _08037136: bl ai_identify_item_effect ldr r2, _08037180 @ =0xfffe9600 adds r4, r2 - ldr r3, _08037184 @ =gUnknown_02024A60 + ldr r3, _08037184 @ =gActiveBank ldrb r1, [r3] lsrs r1, 1 ldr r2, _08037188 @ =0x000160d8 @@ -2209,7 +2209,7 @@ _08037174: .4byte 0x02016a00 _08037178: .4byte gItemEffectTable _0803717C: .4byte gSaveBlock1 + 0x3676 _08037180: .4byte 0xfffe9600 -_08037184: .4byte gUnknown_02024A60 +_08037184: .4byte gActiveBank _08037188: .4byte 0x000160d8 _0803718C: .4byte _08037190 .align 2, 0 @@ -2222,7 +2222,7 @@ _08037190: .4byte _080374F8 _080371A8: ldr r2, _080371C8 @ =gBattleMons - ldr r0, _080371CC @ =gUnknown_02024A60 + ldr r0, _080371CC @ =gActiveBank ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -2241,7 +2241,7 @@ _080371C6: b _08037450 .align 2, 0 _080371C8: .4byte gBattleMons -_080371CC: .4byte gUnknown_02024A60 +_080371CC: .4byte gActiveBank _080371D0: mov r0, r10 movs r1, 0x4 @@ -2254,7 +2254,7 @@ _080371D0: b _080374A8 _080371E4: ldr r2, _08037214 @ =gBattleMons - ldr r0, _08037218 @ =gUnknown_02024A60 + ldr r0, _08037218 @ =gActiveBank ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -2281,10 +2281,10 @@ _08037210: b _08037496 .align 2, 0 _08037214: .4byte gBattleMons -_08037218: .4byte gUnknown_02024A60 +_08037218: .4byte gActiveBank _0803721C: ldr r2, _08037378 @ =0x02000000 - ldr r3, _0803737C @ =gUnknown_02024A60 + ldr r3, _0803737C @ =gActiveBank ldrb r0, [r3] lsrs r0, 1 ldr r6, _08037380 @ =0x000160da @@ -2466,12 +2466,12 @@ _08037362: b _080374AE .align 2, 0 _08037378: .4byte 0x02000000 -_0803737C: .4byte gUnknown_02024A60 +_0803737C: .4byte gActiveBank _08037380: .4byte 0x000160da _08037384: .4byte gBattleMons _08037388: ldr r6, _08037458 @ =0x02000000 - ldr r4, _0803745C @ =gUnknown_02024A60 + ldr r4, _0803745C @ =gActiveBank ldrb r0, [r4] lsrs r0, 1 ldr r3, _08037460 @ =0x000160da @@ -2481,7 +2481,7 @@ _08037388: mov r12, r1 movs r1, 0 strb r1, [r0] - ldr r1, _08037464 @ =gUnknown_02024CA8 + ldr r1, _08037464 @ =gDisableStructs ldrb r2, [r4] lsls r0, r2, 3 subs r0, r2 @@ -2581,16 +2581,16 @@ _08037450: b _080374AE .align 2, 0 _08037458: .4byte 0x02000000 -_0803745C: .4byte gUnknown_02024A60 +_0803745C: .4byte gActiveBank _08037460: .4byte 0x000160da -_08037464: .4byte gUnknown_02024CA8 +_08037464: .4byte gDisableStructs _08037468: - ldr r4, _0803749C @ =gUnknown_02024A60 + ldr r4, _0803749C @ =gActiveBank ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r3, r0, 24 - ldr r2, _080374A0 @ =gUnknown_02024CA8 + ldr r2, _080374A0 @ =gDisableStructs ldrb r1, [r4] lsls r0, r1, 3 subs r0, r1 @@ -2599,7 +2599,7 @@ _08037468: ldrb r0, [r0, 0x16] cmp r0, 0 beq _080374A8 - ldr r0, _080374A4 @ =gUnknown_02024C80 + ldr r0, _080374A4 @ =gSideTimer lsls r1, r3, 1 adds r1, r3 lsls r1, 2 @@ -2612,9 +2612,9 @@ _08037496: mov r8, r0 b _080374AE .align 2, 0 -_0803749C: .4byte gUnknown_02024A60 -_080374A0: .4byte gUnknown_02024CA8 -_080374A4: .4byte gUnknown_02024C80 +_0803749C: .4byte gActiveBank +_080374A0: .4byte gDisableStructs +_080374A4: .4byte gSideTimer _080374A8: mov r1, r8 cmp r1, 0 @@ -2625,7 +2625,7 @@ _080374AE: movs r2, 0 bl dp01_build_cmdbuf_x21_a_bb ldr r1, _080374DC @ =0x02000000 - ldr r0, _080374E0 @ =gUnknown_02024A60 + ldr r0, _080374E0 @ =gActiveBank ldrb r0, [r0] lsrs r0, 1 lsls r0, 1 @@ -2644,7 +2644,7 @@ _080374AE: b _080374FA .align 2, 0 _080374DC: .4byte 0x02000000 -_080374E0: .4byte gUnknown_02024A60 +_080374E0: .4byte gActiveBank _080374E4: .4byte 0x000160d4 _080374E8: .4byte 0x00016a24 _080374EC: @@ -2672,10 +2672,10 @@ nullsub_47: @ 803750C bx lr thumb_func_end nullsub_47 - thumb_func_start sub_8037510 -sub_8037510: @ 8037510 - ldr r1, _08037520 @ =gUnknown_03004330 - ldr r0, _08037524 @ =gUnknown_02024A60 + thumb_func_start SetBankFuncToLinkOpponentBufferRunCommand +SetBankFuncToLinkOpponentBufferRunCommand: @ 8037510 + ldr r1, _08037520 @ =gBattleBankFunc + ldr r0, _08037524 @ =gActiveBank ldrb r0, [r0] lsls r0, 2 adds r0, r1 @@ -2683,17 +2683,17 @@ sub_8037510: @ 8037510 str r1, [r0] bx lr .align 2, 0 -_08037520: .4byte gUnknown_03004330 -_08037524: .4byte gUnknown_02024A60 +_08037520: .4byte gBattleBankFunc +_08037524: .4byte gActiveBank _08037528: .4byte sub_803752C - thumb_func_end sub_8037510 + thumb_func_end SetBankFuncToLinkOpponentBufferRunCommand thumb_func_start sub_803752C sub_803752C: @ 803752C push {lr} - ldr r2, _08037560 @ =gUnknown_02024A64 + ldr r2, _08037560 @ =gBattleExecBuffer ldr r1, _08037564 @ =gBitTable - ldr r0, _08037568 @ =gUnknown_02024A60 + ldr r0, _08037568 @ =gActiveBank ldrb r3, [r0] lsls r0, r3, 2 adds r0, r1 @@ -2702,13 +2702,13 @@ sub_803752C: @ 803752C ands r1, r0 cmp r1, 0 beq _08037578 - ldr r0, _0803756C @ =gUnknown_02023A60 + ldr r0, _0803756C @ =gBattleBufferA lsls r1, r3, 9 adds r1, r0 ldrb r0, [r1] cmp r0, 0x38 bhi _08037574 - ldr r0, _08037570 @ =gUnknown_081FB048 + ldr r0, _08037570 @ =gLinkOpponentBufferCommands ldrb r1, [r1] lsls r1, 2 adds r1, r0 @@ -2716,11 +2716,11 @@ sub_803752C: @ 803752C bl _call_via_r0 b _08037578 .align 2, 0 -_08037560: .4byte gUnknown_02024A64 +_08037560: .4byte gBattleExecBuffer _08037564: .4byte gBitTable -_08037568: .4byte gUnknown_02024A60 -_0803756C: .4byte gUnknown_02023A60 -_08037570: .4byte gUnknown_081FB048 +_08037568: .4byte gActiveBank +_0803756C: .4byte gBattleBufferA +_08037570: .4byte gLinkOpponentBufferCommands _08037574: bl dp01_tbl4_exec_completed _08037578: @@ -2732,8 +2732,8 @@ _08037578: sub_803757C: @ 803757C push {lr} ldr r2, _080375A4 @ =gSprites - ldr r1, _080375A8 @ =gUnknown_02024BE0 - ldr r0, _080375AC @ =gUnknown_02024A60 + ldr r1, _080375A8 @ =gObjectBankIDs + ldr r0, _080375AC @ =gActiveBank ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -2752,8 +2752,8 @@ _080375A0: bx r0 .align 2, 0 _080375A4: .4byte gSprites -_080375A8: .4byte gUnknown_02024BE0 -_080375AC: .4byte gUnknown_02024A60 +_080375A8: .4byte gObjectBankIDs +_080375AC: .4byte gActiveBank _080375B0: .4byte SpriteCallbackDummy thumb_func_end sub_803757C @@ -2761,8 +2761,8 @@ _080375B0: .4byte SpriteCallbackDummy sub_80375B4: @ 80375B4 push {r4-r6,lr} ldr r4, _0803762C @ =gSprites - ldr r6, _08037630 @ =gUnknown_02024BE0 - ldr r5, _08037634 @ =gUnknown_02024A60 + ldr r6, _08037630 @ =gObjectBankIDs + ldr r5, _08037634 @ =gActiveBank ldrb r0, [r5] adds r0, r6 ldrb r1, [r0] @@ -2817,8 +2817,8 @@ _08037624: bx r0 .align 2, 0 _0803762C: .4byte gSprites -_08037630: .4byte gUnknown_02024BE0 -_08037634: .4byte gUnknown_02024A60 +_08037630: .4byte gObjectBankIDs +_08037634: .4byte gActiveBank _08037638: .4byte SpriteCallbackDummy _0803763C: .4byte 0x000003ff _08037640: .4byte 0xfffffc00 @@ -2827,7 +2827,7 @@ _08037640: .4byte 0xfffffc00 thumb_func_start sub_8037644 sub_8037644: @ 8037644 push {lr} - ldr r3, _08037678 @ =gUnknown_02024A60 + ldr r3, _08037678 @ =gActiveBank ldrb r0, [r3] lsls r1, r0, 1 adds r1, r0 @@ -2853,7 +2853,7 @@ _08037674: pop {r0} bx r0 .align 2, 0 -_08037678: .4byte gUnknown_02024A60 +_08037678: .4byte gActiveBank _0803767C: .4byte 0x02017810 thumb_func_end sub_8037644 @@ -2877,8 +2877,8 @@ sub_8037680: @ 8037680 beq _080376D8 _080376A4: ldr r2, _080376C8 @ =gSprites - ldr r1, _080376CC @ =gUnknown_03004340 - ldr r0, _080376D0 @ =gUnknown_02024A60 + ldr r1, _080376CC @ =gHealthboxIDs + ldr r0, _080376D0 @ =gActiveBank ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -2895,13 +2895,13 @@ _080376A4: .align 2, 0 _080376C4: .4byte gBattleTypeFlags _080376C8: .4byte gSprites -_080376CC: .4byte gUnknown_03004340 -_080376D0: .4byte gUnknown_02024A60 +_080376CC: .4byte gHealthboxIDs +_080376D0: .4byte gActiveBank _080376D4: .4byte SpriteCallbackDummy _080376D8: ldr r2, _080377D8 @ =gSprites - ldr r5, _080377DC @ =gUnknown_03004340 - ldr r0, _080377E0 @ =gUnknown_02024A60 + ldr r5, _080377DC @ =gHealthboxIDs + ldr r0, _080377E0 @ =gActiveBank ldrb r3, [r0] adds r0, r3, r5 ldrb r1, [r0] @@ -2938,9 +2938,9 @@ _0803771A: bne _08037720 b _08037822 _08037720: - ldr r7, _080377E0 @ =gUnknown_02024A60 + ldr r7, _080377E0 @ =gActiveBank ldrb r0, [r7] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x1 @@ -3017,7 +3017,7 @@ _080377B4: cmp r0, 0 beq _080377F8 ldrb r0, [r7] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -3027,8 +3027,8 @@ _080377B4: b _08037804 .align 2, 0 _080377D8: .4byte gSprites -_080377DC: .4byte gUnknown_03004340 -_080377E0: .4byte gUnknown_02024A60 +_080377DC: .4byte gHealthboxIDs +_080377E0: .4byte gActiveBank _080377E4: .4byte SpriteCallbackDummy _080377E8: .4byte 0x02017810 _080377EC: .4byte 0x000027f9 @@ -3041,7 +3041,7 @@ _080377F8: lsls r2, 1 bl m4aMPlayVolumeControl _08037804: - ldr r2, _08037830 @ =gUnknown_02024A60 + ldr r2, _08037830 @ =gActiveBank ldrb r1, [r2] lsls r0, r1, 1 adds r0, r1 @@ -3050,7 +3050,7 @@ _08037804: adds r0, r1 movs r1, 0x3 strb r1, [r0, 0x9] - ldr r1, _08037838 @ =gUnknown_03004330 + ldr r1, _08037838 @ =gBattleBankFunc ldrb r0, [r2] lsls r0, 2 adds r0, r1 @@ -3063,9 +3063,9 @@ _08037822: .align 2, 0 _08037828: .4byte gMPlay_BGM _0803782C: .4byte 0x0000ffff -_08037830: .4byte gUnknown_02024A60 +_08037830: .4byte gActiveBank _08037834: .4byte 0x02017810 -_08037838: .4byte gUnknown_03004330 +_08037838: .4byte gBattleBankFunc _0803783C: .4byte sub_8037644 thumb_func_end sub_8037680 @@ -3076,7 +3076,7 @@ sub_8037840: @ 8037840 mov r6, r9 mov r5, r8 push {r5-r7} - ldr r6, _08037A48 @ =gUnknown_02024A60 + ldr r6, _08037A48 @ =gActiveBank ldrb r2, [r6] lsls r3, r2, 1 adds r0, r3, r2 @@ -3089,7 +3089,7 @@ sub_8037840: @ 8037840 ands r0, r1 cmp r0, 0 bne _08037878 - ldr r0, _08037A50 @ =gUnknown_02024A6A + ldr r0, _08037A50 @ =gBattlePartyID adds r0, r3, r0 ldrh r1, [r0] movs r0, 0x64 @@ -3112,7 +3112,7 @@ _08037878: ands r0, r1 cmp r0, 0 bne _080378A6 - ldr r0, _08037A50 @ =gUnknown_02024A6A + ldr r0, _08037A50 @ =gBattlePartyID adds r0, r3, r0 ldrh r1, [r0] movs r0, 0x64 @@ -3157,7 +3157,7 @@ _080378DA: cmp r0, 0 beq _0803791A adds r0, r2, 0 - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 @@ -3194,7 +3194,7 @@ _0803791A: cmp r0, 0 bne _080379B2 ldr r1, _08037A5C @ =gUnknown_0300434C - ldr r5, _08037A48 @ =gUnknown_02024A60 + ldr r5, _08037A48 @ =gActiveBank ldrb r0, [r5] movs r4, 0x2 eors r0, r4 @@ -3206,7 +3206,7 @@ _0803791A: ldr r1, _08037A60 @ =gSprites adds r0, r1 bl DestroySprite - ldr r0, _08037A64 @ =gUnknown_03004340 + ldr r0, _08037A64 @ =gHealthboxIDs mov r8, r0 ldrb r0, [r5] adds r1, r4, 0 @@ -3214,7 +3214,7 @@ _0803791A: mov r2, r8 adds r0, r1, r2 ldrb r0, [r0] - ldr r2, _08037A50 @ =gUnknown_02024A6A + ldr r2, _08037A50 @ =gBattlePartyID mov r10, r2 lsls r1, 1 add r1, r10 @@ -3254,7 +3254,7 @@ _0803791A: bl sub_8032984 _080379B2: ldr r1, _08037A5C @ =gUnknown_0300434C - ldr r4, _08037A48 @ =gUnknown_02024A60 + ldr r4, _08037A48 @ =gActiveBank ldrb r0, [r4] adds r0, r1 ldrb r1, [r0] @@ -3264,11 +3264,11 @@ _080379B2: ldr r1, _08037A60 @ =gSprites adds r0, r1 bl DestroySprite - ldr r5, _08037A64 @ =gUnknown_03004340 + ldr r5, _08037A64 @ =gHealthboxIDs ldrb r1, [r4] adds r0, r1, r5 ldrb r0, [r0] - ldr r2, _08037A50 @ =gUnknown_02024A6A + ldr r2, _08037A50 @ =gBattlePartyID mov r9, r2 lsls r1, 1 add r1, r9 @@ -3309,7 +3309,7 @@ _080379B2: negs r0, r0 ands r0, r1 strb r0, [r2, 0x9] - ldr r1, _08037A6C @ =gUnknown_03004330 + ldr r1, _08037A6C @ =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 adds r0, r1 @@ -3324,16 +3324,16 @@ _08037A3A: pop {r0} bx r0 .align 2, 0 -_08037A48: .4byte gUnknown_02024A60 +_08037A48: .4byte gActiveBank _08037A4C: .4byte 0x02017810 -_08037A50: .4byte gUnknown_02024A6A +_08037A50: .4byte gBattlePartyID _08037A54: .4byte gEnemyParty _08037A58: .4byte gBattleTypeFlags _08037A5C: .4byte gUnknown_0300434C _08037A60: .4byte gSprites -_08037A64: .4byte gUnknown_03004340 +_08037A64: .4byte gHealthboxIDs _08037A68: .4byte 0x02017840 -_08037A6C: .4byte gUnknown_03004330 +_08037A6C: .4byte gBattleBankFunc _08037A70: .4byte sub_8037680 thumb_func_end sub_8037840 @@ -3341,8 +3341,8 @@ _08037A70: .4byte sub_8037680 sub_8037A74: @ 8037A74 push {r4-r7,lr} ldr r2, _08037ACC @ =gSprites - ldr r0, _08037AD0 @ =gUnknown_02024BE0 - ldr r7, _08037AD4 @ =gUnknown_02024A60 + ldr r0, _08037AD0 @ =gObjectBankIDs + ldr r7, _08037AD4 @ =gActiveBank ldrb r3, [r7] adds r0, r3, r0 ldrb r1, [r0] @@ -3371,7 +3371,7 @@ sub_8037A74: @ 8037A74 ands r0, r5 cmp r0, 0 bne _08037AE4 - ldr r0, _08037ADC @ =gUnknown_02024A6A + ldr r0, _08037ADC @ =gBattlePartyID adds r0, r4, r0 ldrh r1, [r0] movs r0, 0x64 @@ -3383,10 +3383,10 @@ sub_8037A74: @ 8037A74 b _08037B18 .align 2, 0 _08037ACC: .4byte gSprites -_08037AD0: .4byte gUnknown_02024BE0 -_08037AD4: .4byte gUnknown_02024A60 +_08037AD0: .4byte gObjectBankIDs +_08037AD4: .4byte gActiveBank _08037AD8: .4byte 0x02017810 -_08037ADC: .4byte gUnknown_02024A6A +_08037ADC: .4byte gBattlePartyID _08037AE0: .4byte gEnemyParty _08037AE4: ldrb r0, [r1, 0x1] @@ -3423,9 +3423,9 @@ _08037B20: .4byte 0x000027f9 thumb_func_start sub_8037B24 sub_8037B24: @ 8037B24 push {r4-r6,lr} - ldr r6, _08037B64 @ =gUnknown_02024A60 + ldr r6, _08037B64 @ =gActiveBank ldrb r0, [r6] - ldr r5, _08037B68 @ =gUnknown_03004340 + ldr r5, _08037B68 @ =gHealthboxIDs adds r1, r0, r5 ldrb r1, [r1] movs r2, 0 @@ -3451,8 +3451,8 @@ sub_8037B24: @ 8037B24 bl sub_80440EC b _08037B70 .align 2, 0 -_08037B64: .4byte gUnknown_02024A60 -_08037B68: .4byte gUnknown_03004340 +_08037B64: .4byte gActiveBank +_08037B68: .4byte gHealthboxIDs _08037B6C: bl dp01_tbl4_exec_completed _08037B70: @@ -3465,8 +3465,8 @@ _08037B70: sub_8037B78: @ 8037B78 push {lr} ldr r2, _08037BAC @ =gSprites - ldr r0, _08037BB0 @ =gUnknown_02024BE0 - ldr r1, _08037BB4 @ =gUnknown_02024A60 + ldr r0, _08037BB0 @ =gObjectBankIDs + ldr r1, _08037BB4 @ =gActiveBank ldrb r3, [r1] adds r0, r3, r0 ldrb r1, [r0] @@ -3479,7 +3479,7 @@ sub_8037B78: @ 8037B78 lsls r0, 31 cmp r0, 0 bne _08037BA6 - ldr r0, _08037BB8 @ =gUnknown_03004340 + ldr r0, _08037BB8 @ =gHealthboxIDs adds r0, r3, r0 ldrb r0, [r0] bl sub_8043DB0 @@ -3489,15 +3489,15 @@ _08037BA6: bx r0 .align 2, 0 _08037BAC: .4byte gSprites -_08037BB0: .4byte gUnknown_02024BE0 -_08037BB4: .4byte gUnknown_02024A60 -_08037BB8: .4byte gUnknown_03004340 +_08037BB0: .4byte gObjectBankIDs +_08037BB4: .4byte gActiveBank +_08037BB8: .4byte gHealthboxIDs thumb_func_end sub_8037B78 thumb_func_start sub_8037BBC sub_8037BBC: @ 8037BBC push {r4-r6,lr} - ldr r6, _08037C18 @ =gUnknown_02024A60 + ldr r6, _08037C18 @ =gActiveBank ldrb r2, [r6] lsls r0, r2, 1 adds r0, r2 @@ -3509,7 +3509,7 @@ sub_8037BBC: @ 8037BBC ands r0, r1 cmp r0, 0 bne _08037C12 - ldr r5, _08037C20 @ =gUnknown_02024BE0 + ldr r5, _08037C20 @ =gObjectBankIDs adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 @@ -3528,7 +3528,7 @@ sub_8037BBC: @ 8037BBC bl DestroySprite ldrb r0, [r6] bl sub_8032A08 - ldr r1, _08037C28 @ =gUnknown_03004340 + ldr r1, _08037C28 @ =gHealthboxIDs ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] @@ -3539,11 +3539,11 @@ _08037C12: pop {r0} bx r0 .align 2, 0 -_08037C18: .4byte gUnknown_02024A60 +_08037C18: .4byte gActiveBank _08037C1C: .4byte 0x02017810 -_08037C20: .4byte gUnknown_02024BE0 +_08037C20: .4byte gObjectBankIDs _08037C24: .4byte gSprites -_08037C28: .4byte gUnknown_03004340 +_08037C28: .4byte gHealthboxIDs thumb_func_end sub_8037BBC thumb_func_start sub_8037C2C @@ -3564,8 +3564,8 @@ _08037C40: .4byte gUnknown_03004210 thumb_func_start dp01t_0F_4_move_anim dp01t_0F_4_move_anim: @ 8037C44 push {r4,lr} - ldr r1, _08037C80 @ =gUnknown_02024BE0 - ldr r0, _08037C84 @ =gUnknown_02024A60 + ldr r1, _08037C80 @ =gObjectBankIDs + ldr r0, _08037C84 @ =gActiveBank ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -3587,15 +3587,15 @@ dp01t_0F_4_move_anim: @ 8037C44 subs r0, 0x5 ands r0, r1 strb r0, [r2] - ldr r0, _08037C8C @ =gUnknown_02024E6D + ldr r0, _08037C8C @ =gDoingBattleAnim strb r3, [r0] bl dp01_tbl4_exec_completed b _08037CBA .align 2, 0 -_08037C80: .4byte gUnknown_02024BE0 -_08037C84: .4byte gUnknown_02024A60 +_08037C80: .4byte gObjectBankIDs +_08037C84: .4byte gActiveBank _08037C88: .4byte gSprites -_08037C8C: .4byte gUnknown_02024E6D +_08037C8C: .4byte gDoingBattleAnim _08037C90: ldrh r0, [r4, 0x30] movs r1, 0x3 @@ -3629,8 +3629,8 @@ _08037CBA: sub_8037CC0: @ 8037CC0 push {r4,lr} ldr r2, _08037D10 @ =gSprites - ldr r0, _08037D14 @ =gUnknown_03004340 - ldr r4, _08037D18 @ =gUnknown_02024A60 + ldr r0, _08037D14 @ =gHealthboxIDs + ldr r4, _08037D18 @ =gActiveBank ldrb r3, [r4] adds r0, r3, r0 ldrb r1, [r0] @@ -3657,7 +3657,7 @@ sub_8037CC0: @ 8037CC0 movs r3, 0x6 bl move_anim_start_t4 _08037CFC: - ldr r0, _08037D24 @ =gUnknown_03004330 + ldr r0, _08037D24 @ =gBattleBankFunc ldrb r1, [r4] lsls r1, 2 adds r1, r0 @@ -3669,18 +3669,18 @@ _08037D08: bx r0 .align 2, 0 _08037D10: .4byte gSprites -_08037D14: .4byte gUnknown_03004340 -_08037D18: .4byte gUnknown_02024A60 +_08037D14: .4byte gHealthboxIDs +_08037D18: .4byte gActiveBank _08037D1C: .4byte SpriteCallbackDummy _08037D20: .4byte 0x02017800 -_08037D24: .4byte gUnknown_03004330 +_08037D24: .4byte gBattleBankFunc _08037D28: .4byte sub_8037D2C thumb_func_end sub_8037CC0 thumb_func_start sub_8037D2C sub_8037D2C: @ 8037D2C push {lr} - ldr r0, _08037D58 @ =gUnknown_02024A60 + ldr r0, _08037D58 @ =gActiveBank ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -3700,7 +3700,7 @@ _08037D52: pop {r0} bx r0 .align 2, 0 -_08037D58: .4byte gUnknown_02024A60 +_08037D58: .4byte gActiveBank _08037D5C: .4byte 0x02017810 _08037D60: .4byte c3_0802FDF4 thumb_func_end sub_8037D2C @@ -3708,7 +3708,7 @@ _08037D60: .4byte c3_0802FDF4 thumb_func_start sub_8037D64 sub_8037D64: @ 8037D64 push {r4,r5,lr} - ldr r5, _08037E08 @ =gUnknown_02024A60 + ldr r5, _08037E08 @ =gActiveBank ldrb r1, [r5] lsls r0, r1, 1 adds r0, r1 @@ -3739,7 +3739,7 @@ sub_8037D64: @ 8037D64 bl FreeSpriteTilesByTag adds r0, r4, 0 bl FreeSpritePaletteByTag - ldr r1, _08037E14 @ =gUnknown_02024BE0 + ldr r1, _08037E14 @ =gObjectBankIDs ldrb r0, [r5] adds r0, r1 ldrb r1, [r0] @@ -3750,11 +3750,11 @@ sub_8037D64: @ 8037D64 adds r0, r1 movs r1, 0 bl StartSpriteAnim - ldr r4, _08037E1C @ =gUnknown_03004340 + ldr r4, _08037E1C @ =gHealthboxIDs ldrb r1, [r5] adds r0, r1, r4 ldrb r0, [r0] - ldr r2, _08037E20 @ =gUnknown_02024A6A + ldr r2, _08037E20 @ =gBattlePartyID lsls r1, 1 adds r1, r2 ldrh r2, [r1] @@ -3772,7 +3772,7 @@ sub_8037D64: @ 8037D64 bl sub_8043DFC ldrb r0, [r5] bl sub_8031F88 - ldr r1, _08037E28 @ =gUnknown_03004330 + ldr r1, _08037E28 @ =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 adds r0, r1 @@ -3783,22 +3783,22 @@ _08037E00: pop {r0} bx r0 .align 2, 0 -_08037E08: .4byte gUnknown_02024A60 +_08037E08: .4byte gActiveBank _08037E0C: .4byte 0x02017810 _08037E10: .4byte 0x000027f9 -_08037E14: .4byte gUnknown_02024BE0 +_08037E14: .4byte gObjectBankIDs _08037E18: .4byte gSprites -_08037E1C: .4byte gUnknown_03004340 -_08037E20: .4byte gUnknown_02024A6A +_08037E1C: .4byte gHealthboxIDs +_08037E20: .4byte gBattlePartyID _08037E24: .4byte gEnemyParty -_08037E28: .4byte gUnknown_03004330 +_08037E28: .4byte gBattleBankFunc _08037E2C: .4byte sub_8037CC0 thumb_func_end sub_8037D64 thumb_func_start sub_8037E30 sub_8037E30: @ 8037E30 push {r4-r6,lr} - ldr r5, _08037ECC @ =gUnknown_02024A60 + ldr r5, _08037ECC @ =gActiveBank ldrb r2, [r5] lsls r3, r2, 1 adds r0, r3, r2 @@ -3810,7 +3810,7 @@ sub_8037E30: @ 8037E30 ands r0, r1 cmp r0, 0 bne _08037E5E - ldr r0, _08037ED4 @ =gUnknown_02024A6A + ldr r0, _08037ED4 @ =gBattlePartyID adds r0, r3, r0 ldrh r1, [r0] movs r0, 0x64 @@ -3847,7 +3847,7 @@ _08037E5E: adds r0, r3, r4 bl DestroySprite ldrb r4, [r5] - ldr r1, _08037ED4 @ =gUnknown_02024A6A + ldr r1, _08037ED4 @ =gBattlePartyID lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] @@ -3862,7 +3862,7 @@ _08037E5E: lsrs r1, 16 adds r0, r4, 0 bl sub_8032984 - ldr r1, _08037EE8 @ =gUnknown_03004330 + ldr r1, _08037EE8 @ =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 adds r0, r1 @@ -3873,14 +3873,14 @@ _08037EC4: pop {r0} bx r0 .align 2, 0 -_08037ECC: .4byte gUnknown_02024A60 +_08037ECC: .4byte gActiveBank _08037ED0: .4byte 0x02017810 -_08037ED4: .4byte gUnknown_02024A6A +_08037ED4: .4byte gBattlePartyID _08037ED8: .4byte gEnemyParty _08037EDC: .4byte gSprites _08037EE0: .4byte gUnknown_0300434C _08037EE4: .4byte SpriteCallbackDummy -_08037EE8: .4byte gUnknown_03004330 +_08037EE8: .4byte gBattleBankFunc _08037EEC: .4byte sub_8037D64 thumb_func_end sub_8037E30 @@ -3901,7 +3901,7 @@ sub_8037EF0: @ 8037EF0 negs r0, r0 ands r0, r1 strb r0, [r2] - ldr r0, _08037F2C @ =gUnknown_030042D0 + ldr r0, _08037F2C @ =gPreBattleCallback1 ldr r0, [r0] str r0, [r3] ldr r0, _08037F30 @ =c2_8011A1C @@ -3913,7 +3913,7 @@ _08037F1C: _08037F20: .4byte gReceivedRemoteLinkPlayers _08037F24: .4byte gMain _08037F28: .4byte 0x0000043d -_08037F2C: .4byte gUnknown_030042D0 +_08037F2C: .4byte gPreBattleCallback1 _08037F30: .4byte c2_8011A1C thumb_func_end sub_8037EF0 @@ -3933,8 +3933,8 @@ sub_8037F34: @ 8037F34 cmp r0, 0 beq _08037F78 bl sub_800832C - ldr r1, _08037F6C @ =gUnknown_03004330 - ldr r0, _08037F70 @ =gUnknown_02024A60 + ldr r1, _08037F6C @ =gBattleBankFunc + ldr r0, _08037F70 @ =gActiveBank ldrb r0, [r0] lsls r0, 2 adds r0, r1 @@ -3944,8 +3944,8 @@ sub_8037F34: @ 8037F34 .align 2, 0 _08037F64: .4byte gPaletteFade _08037F68: .4byte gBattleTypeFlags -_08037F6C: .4byte gUnknown_03004330 -_08037F70: .4byte gUnknown_02024A60 +_08037F6C: .4byte gBattleBankFunc +_08037F70: .4byte gActiveBank _08037F74: .4byte sub_8037EF0 _08037F78: movs r0, 0x5A @@ -3958,7 +3958,7 @@ _08037F78: negs r0, r0 ands r0, r1 strb r0, [r3] - ldr r0, _08037FA8 @ =gUnknown_030042D0 + ldr r0, _08037FA8 @ =gPreBattleCallback1 ldr r0, [r0] str r0, [r2] ldr r0, [r2, 0x8] @@ -3969,13 +3969,13 @@ _08037F9A: .align 2, 0 _08037FA0: .4byte gMain _08037FA4: .4byte 0x0000043d -_08037FA8: .4byte gUnknown_030042D0 +_08037FA8: .4byte gPreBattleCallback1 thumb_func_end sub_8037F34 thumb_func_start sub_8037FAC sub_8037FAC: @ 8037FAC push {lr} - ldr r0, _08037FD0 @ =gUnknown_02024A60 + ldr r0, _08037FD0 @ =gActiveBank ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -3992,14 +3992,14 @@ _08037FCA: pop {r0} bx r0 .align 2, 0 -_08037FD0: .4byte gUnknown_02024A60 +_08037FD0: .4byte gActiveBank _08037FD4: .4byte 0x02017810 thumb_func_end sub_8037FAC thumb_func_start sub_8037FD8 sub_8037FD8: @ 8037FD8 push {lr} - ldr r0, _08037FFC @ =gUnknown_02024A60 + ldr r0, _08037FFC @ =gActiveBank ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -4016,7 +4016,7 @@ _08037FF6: pop {r0} bx r0 .align 2, 0 -_08037FFC: .4byte gUnknown_02024A60 +_08037FFC: .4byte gActiveBank _08038000: .4byte 0x02017810 thumb_func_end sub_8037FD8 @@ -4024,8 +4024,8 @@ _08038000: .4byte 0x02017810 dp01_tbl4_exec_completed: @ 8038004 push {r4,lr} sub sp, 0x4 - ldr r1, _08038044 @ =gUnknown_03004330 - ldr r4, _08038048 @ =gUnknown_02024A60 + ldr r1, _08038044 @ =gBattleBankFunc + ldr r4, _08038048 @ =gActiveBank ldrb r0, [r4] lsls r0, 2 adds r0, r1 @@ -4044,7 +4044,7 @@ dp01_tbl4_exec_completed: @ 8038004 movs r1, 0x4 mov r2, sp bl dp01_prepare_buffer_wireless_probably - ldr r1, _08038054 @ =gUnknown_02023A60 + ldr r1, _08038054 @ =gBattleBufferA ldrb r0, [r4] lsls r0, 9 adds r0, r1 @@ -4052,13 +4052,13 @@ dp01_tbl4_exec_completed: @ 8038004 strb r1, [r0] b _0803806A .align 2, 0 -_08038044: .4byte gUnknown_03004330 -_08038048: .4byte gUnknown_02024A60 +_08038044: .4byte gBattleBankFunc +_08038048: .4byte gActiveBank _0803804C: .4byte sub_803752C _08038050: .4byte gBattleTypeFlags -_08038054: .4byte gUnknown_02023A60 +_08038054: .4byte gBattleBufferA _08038058: - ldr r2, _08038074 @ =gUnknown_02024A64 + ldr r2, _08038074 @ =gBattleExecBuffer ldr r1, _08038078 @ =gBitTable ldrb r0, [r4] lsls r0, 2 @@ -4073,7 +4073,7 @@ _0803806A: pop {r0} bx r0 .align 2, 0 -_08038074: .4byte gUnknown_02024A64 +_08038074: .4byte gBattleExecBuffer _08038078: .4byte gBitTable thumb_func_end dp01_tbl4_exec_completed diff --git a/asm/battle_anim_807B69C.s b/asm/battle_anim_807B69C.s index 8d0b355e5..e34f47f1c 100644 --- a/asm/battle_anim_807B69C.s +++ b/asm/battle_anim_807B69C.s @@ -17,7 +17,7 @@ unref_sub_807B69C: @ 807B69C lsrs r4, 24 lsls r5, 24 lsrs r5, 24 - ldr r0, _0807B740 @ =gUnknown_02024BE0 + ldr r0, _0807B740 @ =gObjectBankIDs adds r0, r4, r0 ldrb r6, [r0] ldr r0, _0807B744 @ =sub_807B7E0 @@ -89,7 +89,7 @@ _0807B734: bls _0807B6F0 b _0807B7BC .align 2, 0 -_0807B740: .4byte gUnknown_02024BE0 +_0807B740: .4byte gObjectBankIDs _0807B744: .4byte sub_807B7E0 _0807B748: .4byte gBattleAnimPicTable + (136 * 8) _0807B74C: .4byte gBattleAnimPaletteTable + (136 * 8) diff --git a/asm/battle_anim_80CA710.s b/asm/battle_anim_80CA710.s index be80cc44f..fd5b9fb88 100644 --- a/asm/battle_anim_80CA710.s +++ b/asm/battle_anim_80CA710.s @@ -25,7 +25,7 @@ sub_80CA710: @ 80CA710 strh r0, [r4, 0x30] ldr r0, _080CA748 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080CA74C @@ -413,7 +413,7 @@ sub_80CAA14: @ 80CAA14 lsrs r0, 24 strh r0, [r5, 0x22] ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080CAA60 @@ -524,7 +524,7 @@ sub_80CAB18: @ 80CAB18 bl sub_80787B0 ldr r0, _080CAB78 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080CAB38 @@ -772,7 +772,7 @@ _080CAD06: _080CAD0E: ldr r0, _080CAD2C @ =gBattleAnimEnemyMonIndex ldrb r0, [r0] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1089,7 +1089,7 @@ sub_80CAF6C: @ 80CAF6C adds r4, r0, 0 ldr r0, _080CAF8C @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080CAF90 @@ -1144,7 +1144,7 @@ sub_80CAFD0: @ 80CAFD0 bl sub_80787B0 ldr r0, _080CB024 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080CAFF0 @@ -1206,11 +1206,11 @@ _080CB050: bl sub_80786EC ldr r0, _080CB084 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide adds r4, r0, 0 ldr r0, _080CB07C @ =gBattleAnimEnemyMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r4, 24 lsls r0, 24 cmp r4, r0 @@ -1673,7 +1673,7 @@ sub_80CB3A8: @ 80CB3A8 strh r1, [r5, 0x24] ldr r0, _080CB430 @ =gBattleAnimEnemyMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080CB3F2 @@ -1802,7 +1802,7 @@ sub_80CB4CC: @ 80CB4CC _080CB4DE: ldr r6, _080CB530 @ =gBattleAnimEnemyMonIndex ldrb r0, [r6] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080CB4F6 @@ -2494,7 +2494,7 @@ sub_80CBA28: @ 80CBA28 lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0 @@ -3030,7 +3030,7 @@ sub_80CBDF4: @ 80CBDF4 bl sub_807A100 strh r0, [r5, 0x1E] ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 movs r2, 0x1 @@ -3842,7 +3842,7 @@ _080CC490: _080CC492: ldrb r6, [r0] adds r0, r6, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080CC4BC @@ -4319,7 +4319,7 @@ sub_80CC82C: @ 80CC82C adds r4, r0, 0 ldr r0, _080CC84C @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080CC854 @@ -4364,7 +4364,7 @@ sub_80CC884: @ 80CC884 adds r5, r0, 0 ldr r0, _080CC8BC @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080CC89E @@ -4448,7 +4448,7 @@ sub_80CC914: @ 80CC914 lsrs r0, 24 strh r0, [r5, 0x22] ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080CC948 @@ -4609,7 +4609,7 @@ _080CCA72: strh r4, [r6, 0x22] ldr r0, _080CCAA4 @ =gBattleAnimEnemyMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080CCA8A @@ -4863,7 +4863,7 @@ sub_80CCC50: @ 80CCC50 strh r0, [r5, 0x2E] ldr r0, _080CCC74 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080CCC78 @@ -4996,7 +4996,7 @@ _080CCD3A: adds r0, r4 strh r0, [r5, 0x22] ldrb r0, [r6] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080CCD78 @@ -5659,7 +5659,7 @@ sub_80CD274: @ 80CD274 bl sub_8078650 ldr r0, _080CD2A0 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080CD2A8 @@ -5751,7 +5751,7 @@ sub_80CD328: @ 80CD328 bl sub_8078650 ldr r0, _080CD358 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080CD360 @@ -6378,7 +6378,7 @@ sub_80CD7CC: @ 80CD7CC strh r0, [r4, 0x2E] ldr r5, _080CD80C @ =gBattleAnimPlayerMonIndex ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 movs r2, 0x2 negs r2, r2 @@ -6390,7 +6390,7 @@ _080CD7EA: strh r1, [r4, 0x30] movs r0, 0 strh r0, [r4, 0x32] - ldr r1, _080CD810 @ =gUnknown_02024BE0 + ldr r1, _080CD810 @ =gObjectBankIDs ldrb r0, [r5] adds r0, r1 ldrb r0, [r0] @@ -6405,7 +6405,7 @@ _080CD7EA: bx r0 .align 2, 0 _080CD80C: .4byte gBattleAnimPlayerMonIndex -_080CD810: .4byte gUnknown_02024BE0 +_080CD810: .4byte gObjectBankIDs _080CD814: .4byte sub_80CD81C _080CD818: .4byte sub_8078458 thumb_func_end sub_80CD7CC @@ -6418,7 +6418,7 @@ sub_80CD81C: @ 80CD81C ldrsh r6, [r5, r0] cmp r6, 0 bne _080CD858 - ldr r1, _080CD898 @ =gUnknown_02024BE0 + ldr r1, _080CD898 @ =gObjectBankIDs ldr r4, _080CD89C @ =gBattleAnimPlayerMonIndex ldrb r0, [r4] adds r0, r1 @@ -6427,7 +6427,7 @@ sub_80CD81C: @ 80CD81C movs r1, 0 bl sub_8078E70 ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x3A] @@ -6474,7 +6474,7 @@ _080CD892: pop {r0} bx r0 .align 2, 0 -_080CD898: .4byte gUnknown_02024BE0 +_080CD898: .4byte gObjectBankIDs _080CD89C: .4byte gBattleAnimPlayerMonIndex _080CD8A0: .4byte 0xfffffd00 _080CD8A4: .4byte sub_80CD9B8 @@ -6488,7 +6488,7 @@ sub_80CD8A8: @ 80CD8A8 strh r0, [r4, 0x2E] ldr r5, _080CD8E8 @ =gBattleAnimPlayerMonIndex ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 movs r1, 0x3 cmp r0, 0 @@ -6500,7 +6500,7 @@ _080CD8C6: strh r1, [r4, 0x30] movs r0, 0 strh r0, [r4, 0x32] - ldr r1, _080CD8EC @ =gUnknown_02024BE0 + ldr r1, _080CD8EC @ =gObjectBankIDs ldrb r0, [r5] adds r0, r1 ldrb r0, [r0] @@ -6515,7 +6515,7 @@ _080CD8C6: bx r0 .align 2, 0 _080CD8E8: .4byte gBattleAnimPlayerMonIndex -_080CD8EC: .4byte gUnknown_02024BE0 +_080CD8EC: .4byte gObjectBankIDs _080CD8F0: .4byte sub_80CD9B8 _080CD8F4: .4byte sub_8078458 thumb_func_end sub_80CD8A8 @@ -6550,19 +6550,19 @@ sub_80CD91C: @ 80CD91C ldrsh r0, [r5, r1] cmp r0, 0 bne _080CD96C - ldr r1, _080CD958 @ =gUnknown_02024BE0 + ldr r1, _080CD958 @ =gObjectBankIDs ldr r4, _080CD95C @ =gBattleAnimPlayerMonIndex ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] strh r0, [r5, 0x34] ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x3A] ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080CD960 @@ -6573,7 +6573,7 @@ sub_80CD91C: @ 80CD91C lsls r0, 4 b _080CD96A .align 2, 0 -_080CD958: .4byte gUnknown_02024BE0 +_080CD958: .4byte gObjectBankIDs _080CD95C: .4byte gBattleAnimPlayerMonIndex _080CD960: movs r0, 0x80 @@ -6659,14 +6659,14 @@ _080CD9EA: b _080CDAC2 _080CD9F0: strh r5, [r4, 0x30] - ldr r1, _080CDA74 @ =gUnknown_02024BE0 + ldr r1, _080CDA74 @ =gObjectBankIDs ldr r2, _080CDA78 @ =gBattleAnimPlayerMonIndex ldrb r0, [r2] adds r0, r1 ldrb r0, [r0] strh r0, [r4, 0x32] ldrb r0, [r2] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x34] @@ -6723,7 +6723,7 @@ _080CDA2E: strh r0, [r4, 0x2E] b _080CDAC2 .align 2, 0 -_080CDA74: .4byte gUnknown_02024BE0 +_080CDA74: .4byte gObjectBankIDs _080CDA78: .4byte gBattleAnimPlayerMonIndex _080CDA7C: .4byte 0xfffffe00 _080CDA80: @@ -6772,7 +6772,7 @@ sub_80CDAC8: @ 80CDAC8 adds r0, r6 lsls r0, 3 adds r5, r0, r1 - ldr r1, _080CDB10 @ =gUnknown_02024BE0 + ldr r1, _080CDB10 @ =gObjectBankIDs ldr r2, _080CDB14 @ =gBattleAnimPlayerMonIndex ldrb r0, [r2] adds r0, r1 @@ -6780,7 +6780,7 @@ sub_80CDAC8: @ 80CDAC8 movs r4, 0 strh r0, [r5, 0x8] ldrb r0, [r2] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r2, r0, 24 strh r2, [r5, 0xA] @@ -6797,7 +6797,7 @@ sub_80CDAC8: @ 80CDAC8 b _080CDB56 .align 2, 0 _080CDB0C: .4byte gTasks -_080CDB10: .4byte gUnknown_02024BE0 +_080CDB10: .4byte gObjectBankIDs _080CDB14: .4byte gBattleAnimPlayerMonIndex _080CDB18: .4byte gBattleAnimArgs _080CDB1C: @@ -7785,19 +7785,19 @@ unref_sub_80CE260: @ 80CE260 lsls r0, 24 lsrs r7, r0, 24 movs r4, 0 - ldr r0, _080CE2C8 @ =gUnknown_02024A68 + ldr r0, _080CE2C8 @ =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 bcs _080CE2BC ldr r6, _080CE2CC @ =gBattleAnimArgs - ldr r5, _080CE2D0 @ =gUnknown_03004340 + ldr r5, _080CE2D0 @ =gHealthboxIDs _080CE274: movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0x1 bne _080CE290 adds r0, r4, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080CE290 @@ -7810,7 +7810,7 @@ _080CE290: cmp r0, 0x1 bne _080CE2AE adds r0, r4, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -7822,7 +7822,7 @@ _080CE2AE: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 - ldr r0, _080CE2C8 @ =gUnknown_02024A68 + ldr r0, _080CE2C8 @ =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 bcc _080CE274 @@ -7833,9 +7833,9 @@ _080CE2BC: pop {r0} bx r0 .align 2, 0 -_080CE2C8: .4byte gUnknown_02024A68 +_080CE2C8: .4byte gNoOfAllBanks _080CE2CC: .4byte gBattleAnimArgs -_080CE2D0: .4byte gUnknown_03004340 +_080CE2D0: .4byte gHealthboxIDs thumb_func_end unref_sub_80CE260 thumb_func_start unref_sub_80CE2D4 @@ -7846,7 +7846,7 @@ unref_sub_80CE2D4: @ 80CE2D4 movs r4, 0 b _080CE2EE _080CE2DE: - ldr r0, _080CE304 @ =gUnknown_03004340 + ldr r0, _080CE304 @ =gHealthboxIDs adds r0, r4, r0 ldrb r0, [r0] bl sub_8043DFC @@ -7854,7 +7854,7 @@ _080CE2DE: lsls r0, 24 lsrs r4, r0, 24 _080CE2EE: - ldr r0, _080CE308 @ =gUnknown_02024A68 + ldr r0, _080CE308 @ =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 bcc _080CE2DE @@ -7864,8 +7864,8 @@ _080CE2EE: pop {r0} bx r0 .align 2, 0 -_080CE304: .4byte gUnknown_03004340 -_080CE308: .4byte gUnknown_02024A68 +_080CE304: .4byte gHealthboxIDs +_080CE308: .4byte gNoOfAllBanks thumb_func_end unref_sub_80CE2D4 thumb_func_start sub_80CE30C @@ -8389,7 +8389,7 @@ _080CE6FC: .4byte 0xffffec00 _080CE700: ldr r0, _080CE740 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080CE748 @@ -8617,7 +8617,7 @@ _080CE8C6: str r0, [r6] ldr r0, _080CE8EC @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -8666,7 +8666,7 @@ sub_80CE910: @ 80CE910 bne _080CE968 ldr r0, _080CE948 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -9167,7 +9167,7 @@ sub_80CECE8: @ 80CECE8 adds r6, r0, 0 ldr r7, _080CED6C @ =gBattleAnimPlayerMonIndex ldrb r0, [r7] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -9471,7 +9471,7 @@ sub_80CEF44: @ 80CEF44 lsls r0, 24 lsrs r5, r0, 24 adds r0, r5, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080CEF64 @@ -9532,7 +9532,7 @@ _080CEFBA: adds r1, r5, 0 bl sub_80CEF44 adds r0, r4, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 negs r1, r0 @@ -9821,7 +9821,7 @@ _080CF1E6: adds r1, r5, 0 bl sub_80CEF44 adds r0, r4, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080CF20C @@ -10088,13 +10088,13 @@ sub_80CF3C4: @ 80CF3C4 lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] - ldr r1, _080CF410 @ =gUnknown_02024BE0 + ldr r1, _080CF410 @ =gObjectBankIDs ldr r0, _080CF414 @ =gBattleAnimEnemyMonIndex ldrb r0, [r0] adds r0, r1 ldrb r6, [r0] ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080CF41C @@ -10107,7 +10107,7 @@ sub_80CF3C4: @ 80CF3C4 b _080CF426 .align 2, 0 _080CF40C: .4byte gBattleAnimPlayerMonIndex -_080CF410: .4byte gUnknown_02024BE0 +_080CF410: .4byte gObjectBankIDs _080CF414: .4byte gBattleAnimEnemyMonIndex _080CF418: .4byte gBattleAnimArgs _080CF41C: @@ -10216,7 +10216,7 @@ sub_80CF4D8: @ 80CF4D8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r1, _080CF504 @ =gUnknown_02024BE0 + ldr r1, _080CF504 @ =gObjectBankIDs ldr r0, _080CF508 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] adds r0, r1 @@ -10234,7 +10234,7 @@ sub_80CF4D8: @ 80CF4D8 pop {r0} bx r0 .align 2, 0 -_080CF504: .4byte gUnknown_02024BE0 +_080CF504: .4byte gObjectBankIDs _080CF508: .4byte gBattleAnimPlayerMonIndex _080CF50C: .4byte gTasks _080CF510: .4byte sub_80CF514 @@ -10245,12 +10245,12 @@ sub_80CF514: @ 80CF514 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 - ldr r1, _080CF544 @ =gUnknown_02024BE0 + ldr r1, _080CF544 @ =gObjectBankIDs ldr r0, _080CF548 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] adds r1, r0, r1 ldrb r4, [r1] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080CF550 @@ -10266,7 +10266,7 @@ sub_80CF514: @ 80CF514 adds r6, r2, 0 b _080CF55E .align 2, 0 -_080CF544: .4byte gUnknown_02024BE0 +_080CF544: .4byte gObjectBankIDs _080CF548: .4byte gBattleAnimPlayerMonIndex _080CF54C: .4byte gTasks _080CF550: @@ -10384,7 +10384,7 @@ sub_80CF610: @ 80CF610 strh r0, [r4, 0x22] ldr r0, _080CF65C @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080CF660 @@ -10491,7 +10491,7 @@ _080CF6FC: .4byte gBattleAnimArgs _080CF700: ldr r0, _080CF7C8 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080CF722 @@ -11067,7 +11067,7 @@ _080CFB68: strh r0, [r3, 0x4] b _080CFBCA _080CFB70: - ldr r1, _080CFBB4 @ =gUnknown_02024A72 + ldr r1, _080CFBB4 @ =gBanksBySide ldr r0, _080CFBB8 @ =gBattleAnimEnemyMonIndex ldrb r0, [r0] adds r0, r1 @@ -11101,7 +11101,7 @@ _080CFB70: ands r0, r1 b _080CFBC8 .align 2, 0 -_080CFBB4: .4byte gUnknown_02024A72 +_080CFBB4: .4byte gBanksBySide _080CFBB8: .4byte gBattleAnimEnemyMonIndex _080CFBBC: .4byte gTasks _080CFBC0: .4byte gBattleAnimArgs @@ -11484,7 +11484,7 @@ sub_80CFE9C: @ 80CFE9C lsrs r7, r0, 16 ldr r0, _080CFF44 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080CFEE0 @@ -11570,7 +11570,7 @@ sub_80CFF68: @ 80CFF68 strh r0, [r4, 0x24] ldr r0, _080CFFD4 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080CFF8C @@ -11783,7 +11783,7 @@ sub_80D0118: @ 80D0118 bl sub_80787B0 ldr r0, _080D0168 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080D0136 @@ -12823,7 +12823,7 @@ sub_80D0930: @ 80D0930 adds r4, r0, 0 ldr r5, _080D0960 @ =gBattleAnimPlayerMonIndex ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080D0964 @@ -12902,7 +12902,7 @@ _080D09DC: _080D09DE: ldrb r5, [r0] adds r0, r5, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -13052,7 +13052,7 @@ sub_80D0AB8: @ 80D0AB8 strh r0, [r4, 0x1A] ldr r0, _080D0B34 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -13278,7 +13278,7 @@ sub_80D0C88: @ 80D0C88 bl sub_807A100 strh r0, [r5, 0x26] ldrb r0, [r4] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -13753,7 +13753,7 @@ _080D1048: lsls r0, 24 lsrs r4, r0, 24 adds r0, r5, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080D1074 @@ -13862,7 +13862,7 @@ _080D111C: str r3, [sp, 0x4] _080D1124: adds r0, r7, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080D1180 @@ -13886,21 +13886,21 @@ _080D1124: cmp r0, 0 beq _080D1170 ldr r2, _080D1168 @ =gSprites - ldr r0, _080D116C @ =gUnknown_02024BE0 + ldr r0, _080D116C @ =gObjectBankIDs adds r0, r4, r0 b _080D120A .align 2, 0 _080D1164: .4byte gBattleAnimArgs _080D1168: .4byte gSprites -_080D116C: .4byte gUnknown_02024BE0 +_080D116C: .4byte gObjectBankIDs _080D1170: ldr r2, _080D1178 @ =gSprites - ldr r0, _080D117C @ =gUnknown_02024BE0 + ldr r0, _080D117C @ =gObjectBankIDs add r0, r8 b _080D120A .align 2, 0 _080D1178: .4byte gSprites -_080D117C: .4byte gUnknown_02024BE0 +_080D117C: .4byte gObjectBankIDs _080D1180: adds r0, r7, 0 mov r1, r10 @@ -13930,7 +13930,7 @@ _080D1180: cmp r0, 0 beq _080D1204 ldr r3, _080D11F8 @ =gSprites - ldr r2, _080D11FC @ =gUnknown_02024BE0 + ldr r2, _080D11FC @ =gObjectBankIDs adds r0, r7, r2 ldrb r1, [r0] lsls r0, r1, 4 @@ -13959,13 +13959,13 @@ _080D11EC: .4byte gBattleAnimArgs _080D11F0: .4byte gMain _080D11F4: .4byte 0x0000043d _080D11F8: .4byte gSprites -_080D11FC: .4byte gUnknown_02024BE0 +_080D11FC: .4byte gObjectBankIDs _080D1200: adds r0, r6, 0 b _080D1214 _080D1204: ldr r2, _080D1268 @ =gSprites - ldr r0, _080D126C @ =gUnknown_02024BE0 + ldr r0, _080D126C @ =gObjectBankIDs adds r0, r7, r0 _080D120A: ldrb r1, [r0] @@ -14015,7 +14015,7 @@ _080D121A: b _080D129C .align 2, 0 _080D1268: .4byte gSprites -_080D126C: .4byte gUnknown_02024BE0 +_080D126C: .4byte gObjectBankIDs _080D1270: .4byte gBattleAnimArgs _080D1274: .4byte gMain _080D1278: .4byte 0x0000043d @@ -14036,7 +14036,7 @@ _080D127C: strh r0, [r3, 0x2] _080D129C: mov r0, r8 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080D12C0 @@ -14141,7 +14141,7 @@ sub_80D1368: @ 80D1368 bl sub_80787B0 ldr r0, _080D139C @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 movs r1, 0xA0 cmp r0, 0 @@ -14186,7 +14186,7 @@ sub_80D13AC: @ 80D13AC strh r2, [r4, 0x2E] ldr r0, _080D1418 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 movs r1, 0xA0 cmp r0, 0 @@ -14533,7 +14533,7 @@ sub_80D1638: @ 80D1638 strh r0, [r4, 0x20] ldr r0, _080D1670 @ =gBattleAnimEnemyMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080D1678 @@ -15295,7 +15295,7 @@ sub_80D1C08: @ 80D1C08 bl sub_80787B0 ldr r6, _080D1C70 @ =gBattleAnimPlayerMonIndex ldrb r0, [r6] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080D1C28 @@ -16332,7 +16332,7 @@ _080D2458: .4byte gBattleAnimBackgroundTilemap_ScaryFaceContest _080D245C: ldr r0, _080D2478 @ =gBattleAnimEnemyMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -17534,7 +17534,7 @@ _080D2D84: _080D2D86: ldrb r6, [r0] adds r0, r6, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -17950,7 +17950,7 @@ sub_80D30AC: @ 80D30AC lsls r0, 24 lsrs r0, 24 ldr r3, _080D30C8 @ =gBattleAnimArgs - ldr r1, _080D30CC @ =gUnknown_0202F7B4 + ldr r1, _080D30CC @ =gDisableStructMoveAnim ldr r1, [r1] ldrb r2, [r1, 0x10] movs r1, 0x1 @@ -17961,7 +17961,7 @@ sub_80D30AC: @ 80D30AC bx r0 .align 2, 0 _080D30C8: .4byte gBattleAnimArgs -_080D30CC: .4byte gUnknown_0202F7B4 +_080D30CC: .4byte gDisableStructMoveAnim thumb_func_end sub_80D30AC thumb_func_start update_fury_cutter_counter_copy @@ -17970,7 +17970,7 @@ update_fury_cutter_counter_copy: @ 80D30D0 lsls r0, 24 lsrs r0, 24 ldr r2, _080D30E8 @ =gBattleAnimArgs - ldr r1, _080D30EC @ =gUnknown_0202F7B4 + ldr r1, _080D30EC @ =gDisableStructMoveAnim ldr r1, [r1] ldrb r1, [r1, 0x10] strh r1, [r2, 0xE] @@ -17979,7 +17979,7 @@ update_fury_cutter_counter_copy: @ 80D30D0 bx r0 .align 2, 0 _080D30E8: .4byte gBattleAnimArgs -_080D30EC: .4byte gUnknown_0202F7B4 +_080D30EC: .4byte gDisableStructMoveAnim thumb_func_end update_fury_cutter_counter_copy thumb_func_start sub_80D30F0 @@ -18101,7 +18101,7 @@ sub_80D31C8: @ 80D31C8 adds r6, r0, 0 ldr r5, _080D31F0 @ =gBattleAnimPlayerMonIndex ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080D31F8 @@ -18144,7 +18144,7 @@ _080D320A: strb r0, [r2] ldr r0, _080D32D4 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080D3240 @@ -18341,7 +18341,7 @@ sub_80D33B4: @ 80D33B4 bl sub_80787B0 ldr r0, _080D33DC @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080D33E4 @@ -18735,7 +18735,7 @@ sub_80D3698: @ 80D3698 cmp r0, 0 bne _080D36F2 ldrb r0, [r7] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080D36EC @@ -18789,11 +18789,11 @@ sub_80D3728: @ 80D3728 adds r6, r0, 0 ldr r5, _080D37E8 @ =gBattleAnimPlayerMonIndex ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide adds r4, r0, 0 ldr r0, _080D37EC @ =gBattleAnimEnemyMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r4, 24 lsls r0, 24 cmp r4, r0 @@ -18804,12 +18804,12 @@ sub_80D3728: @ 80D3728 negs r0, r0 strh r0, [r4] ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 cmp r0, 0 beq _080D376A ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -18841,7 +18841,7 @@ _080D3790: bl sub_80787B0 ldr r0, _080D37E8 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080D37AA @@ -19082,7 +19082,7 @@ _080D3920: strb r0, [r2] ldr r0, _080D39A0 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -19205,7 +19205,7 @@ _080D3A90: .4byte gUnknown_030041B4 _080D3A94: ldr r0, _080D3AC4 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x1 @@ -20376,11 +20376,11 @@ sub_80D4394: @ 80D4394 push {r4,r5,lr} ldr r4, _080D43B8 @ =gBattleAnimPlayerMonIndex ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080D43C8 - ldr r1, _080D43BC @ =gUnknown_02024A6A + ldr r1, _080D43BC @ =gBattlePartyID ldrb r0, [r4] lsls r0, 1 adds r0, r1 @@ -20391,13 +20391,13 @@ sub_80D4394: @ 80D4394 b _080D43D8 .align 2, 0 _080D43B8: .4byte gBattleAnimPlayerMonIndex -_080D43BC: .4byte gUnknown_02024A6A +_080D43BC: .4byte gBattlePartyID _080D43C0: .4byte gPlayerParty _080D43C4: adds r0, r2, 0 b _080D440A _080D43C8: - ldr r1, _080D4410 @ =gUnknown_02024A6A + ldr r1, _080D4410 @ =gBattlePartyID ldrb r0, [r4] lsls r0, 1 adds r0, r1 @@ -20435,7 +20435,7 @@ _080D440A: pop {r1} bx r1 .align 2, 0 -_080D4410: .4byte gUnknown_02024A6A +_080D4410: .4byte gBattlePartyID _080D4414: .4byte gEnemyParty thumb_func_end sub_80D4394 @@ -20683,7 +20683,7 @@ sub_80D45D8: @ 80D45D8 strh r0, [r4, 0xA] ldr r0, _080D460C @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080D4610 @@ -21094,7 +21094,7 @@ sub_80D48F4: @ 80D48F4 lsrs r0, 24 strh r0, [r5, 0x10] ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 movs r2, 0x1 negs r2, r2 @@ -21901,7 +21901,7 @@ sub_80D4F5C: @ 80D4F5C bl sub_8078650 ldr r0, _080D4F90 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080D4F98 @@ -21957,7 +21957,7 @@ sub_80D4FCC: @ 80D4FCC adds r4, r0, 0 ldr r0, _080D4FF8 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080D5000 @@ -22049,7 +22049,7 @@ sub_80D5074: @ 80D5074 bl sub_8078650 ldr r0, _080D5098 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080D50A0 @@ -22208,24 +22208,24 @@ sub_80D51A8: @ 80D51A8 adds r6, r0, 0 ldr r5, _080D5200 @ =gBattleAnimPlayerMonIndex ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide adds r4, r0, 0 ldr r0, _080D5204 @ =gBattleAnimEnemyMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r4, 24 lsls r0, 24 cmp r4, r0 bne _080D51EE movs r0, 0x2 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI ldrb r1, [r5] lsls r0, 24 lsrs r0, 24 cmp r1, r0 beq _080D51E6 movs r0, 0x3 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI ldrb r1, [r5] lsls r0, 24 lsrs r0, 24 @@ -22597,7 +22597,7 @@ sub_80D5470: @ 80D5470 strh r0, [r4, 0x10] ldr r0, _080D54D8 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x12] @@ -23023,7 +23023,7 @@ sub_80D57C4: @ 80D57C4 ldrh r4, [r0, 0x20] ldr r0, _080D5818 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080D581C @@ -23205,7 +23205,7 @@ sub_80D5940: @ 80D5940 lsrs r4, r0, 16 ldr r0, _080D597C @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080D5980 @@ -23468,7 +23468,7 @@ _080D5B28: strh r0, [r5, 0x3C] ldr r0, _080D5B54 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080D5B58 @@ -23503,7 +23503,7 @@ _080D5B80: strh r0, [r5, 0x30] ldr r0, _080D5BA0 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080D5BA4 @@ -23815,7 +23815,7 @@ sub_80D5DDC: @ 80D5DDC adds r4, r1, r0 ldr r0, _080D5E40 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 movs r2, 0x1 negs r2, r2 @@ -24221,7 +24221,7 @@ _080D60EA: ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] - ldr r1, _080D6114 @ =gUnknown_02024BE0 + ldr r1, _080D6114 @ =gObjectBankIDs ldr r0, _080D6118 @ =gBattleAnimEnemyMonIndex ldrb r0, [r0] adds r0, r1 @@ -24237,7 +24237,7 @@ _080D60EA: .align 2, 0 _080D610C: .4byte gTasks _080D6110: .4byte gBattleAnimArgs -_080D6114: .4byte gUnknown_02024BE0 +_080D6114: .4byte gObjectBankIDs _080D6118: .4byte gBattleAnimEnemyMonIndex _080D611C: .4byte gUnknown_083D9794 _080D6120: @@ -24333,7 +24333,7 @@ sub_80D61C8: @ 80D61C8 adds r4, r0, 0 ldr r0, _080D61E8 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080D61F0 @@ -24391,7 +24391,7 @@ sub_80D6234: @ 80D6234 adds r4, r0, 0 ldr r0, _080D6254 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080D625C @@ -24457,7 +24457,7 @@ sub_80D6294: @ 80D6294 strh r0, [r5, 0x22] ldr r0, _080D62DC @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080D62E4 @@ -24868,7 +24868,7 @@ sub_80D65DC: @ 80D65DC beq _080D65FE ldr r0, _080D664C @ =gBattleAnimEnemyMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080D6606 @@ -24946,7 +24946,7 @@ _080D667E: cmp r0, 0 beq _080D669C adds r0, r6, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080D66A4 @@ -25900,7 +25900,7 @@ sub_80D6DD8: @ 80D6DD8 movs r0, 0x10 strh r0, [r5, 0x3C] ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -26019,7 +26019,7 @@ _080D6ED0: lsrs r0, 24 strh r0, [r5, 0x24] ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080D6F0C @@ -26195,7 +26195,7 @@ _080D703A: _080D703C: ldr r4, _080D707C @ =gBattleAnimPlayerMonIndex ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 movs r2, 0x1 negs r2, r2 @@ -27394,7 +27394,7 @@ sub_80D792C: @ 80D792C strh r0, [r4, 0x32] ldr r0, _080D7964 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080D796C @@ -27468,7 +27468,7 @@ _080D79D0: bl sub_807A3FC ldr r0, _080D7A1C @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080D79F6 @@ -27582,7 +27582,7 @@ _080D7AB4: _080D7AC6: ldr r0, _080D7AE4 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080D7AEC @@ -27708,7 +27708,7 @@ sub_80D7BA0: @ 80D7BA0 strh r0, [r4, 0x2E] ldr r0, _080D7BFC @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 ldr r1, _080D7C00 @ =0x0000ffec cmp r0, 0 @@ -27746,7 +27746,7 @@ sub_80D7C08: @ 80D7C08 adds r4, r0, 0 ldr r0, _080D7C5C @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 ldr r1, _080D7C60 @ =0x0000ffec cmp r0, 0 @@ -27895,7 +27895,7 @@ _080D7D20: _080D7D32: ldr r0, _080D7D54 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080D7D5C @@ -28098,7 +28098,7 @@ _080D7EAC: bl sub_807A3FC ldr r0, _080D7EF0 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080D7ED2 @@ -28167,7 +28167,7 @@ _080D7F34: movs r1, 0 bl sub_807A3FC ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080D7F60 @@ -28213,7 +28213,7 @@ _080D7F92: movs r1, 0 bl sub_807A3FC ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080D7FBC @@ -28260,7 +28260,7 @@ _080D7FF6: strh r0, [r5, 0x3A] ldr r0, _080D803C @ =gBattleAnimEnemyMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080D800C @@ -29147,7 +29147,7 @@ sub_80D8700: @ 80D8700 lsls r0, 8 strh r0, [r5, 0x3C] _080D8734: - ldr r3, _080D87F4 @ =gUnknown_02024A72 + ldr r3, _080D87F4 @ =gBanksBySide ldrb r0, [r7] adds r0, r3 ldrb r1, [r0] @@ -29238,7 +29238,7 @@ _080D8794: _080D87E8: .4byte gBattleAnimArgs _080D87EC: .4byte gBattleAnimPlayerMonIndex _080D87F0: .4byte gBattleAnimEnemyMonIndex -_080D87F4: .4byte gUnknown_02024A72 +_080D87F4: .4byte gBanksBySide _080D87F8: .4byte gSprites _080D87FC: ldrh r0, [r6, 0x2] @@ -29384,7 +29384,7 @@ _080D88D6: ands r0, r1 cmp r0, 0 beq _080D8938 - ldr r1, _080D8934 @ =gUnknown_02024A72 + ldr r1, _080D8934 @ =gBanksBySide ldrb r0, [r6] adds r0, r1 ldrb r1, [r0] @@ -29399,7 +29399,7 @@ _080D88D6: _080D8928: .4byte gBattleAnimEnemyMonIndex _080D892C: .4byte gMain _080D8930: .4byte 0x0000043d -_080D8934: .4byte gUnknown_02024A72 +_080D8934: .4byte gBanksBySide _080D8938: strh r5, [r4, 0x38] _080D893A: @@ -29544,7 +29544,7 @@ _080D8A12: ands r0, r1 cmp r0, 0 beq _080D8A78 - ldr r1, _080D8A70 @ =gUnknown_02024A72 + ldr r1, _080D8A70 @ =gBanksBySide ldr r0, _080D8A74 @ =gBattleAnimEnemyMonIndex ldrb r0, [r0] adds r0, r1 @@ -29559,7 +29559,7 @@ _080D8A12: .align 2, 0 _080D8A68: .4byte gMain _080D8A6C: .4byte 0x0000043d -_080D8A70: .4byte gUnknown_02024A72 +_080D8A70: .4byte gBanksBySide _080D8A74: .4byte gBattleAnimEnemyMonIndex _080D8A78: ldr r0, _080D8A90 @ =0x0000fff0 @@ -29760,7 +29760,7 @@ sub_80D8BA8: @ 80D8BA8 ldrh r0, [r4, 0x2] lsls r0, 20 lsrs r0, 24 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r5, r0, 24 adds r0, r5, 0 @@ -30067,7 +30067,7 @@ _080D8E48: .4byte gTasks unc_080B06FC: @ 80D8E4C push {r4-r6,lr} adds r5, r0, 0 - ldr r0, _080D8ECC @ =gUnknown_0202F7B4 + ldr r0, _080D8ECC @ =gDisableStructMoveAnim ldr r0, [r0] ldrb r1, [r0, 0x11] lsrs r0, r1, 4 @@ -30091,7 +30091,7 @@ _080D8E6A: strh r0, [r5, 0x2E] ldr r0, _080D8ED4 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080D8E92 @@ -30126,7 +30126,7 @@ _080D8E92: pop {r0} bx r0 .align 2, 0 -_080D8ECC: .4byte gUnknown_0202F7B4 +_080D8ECC: .4byte gDisableStructMoveAnim _080D8ED0: .4byte gBattleAnimArgs _080D8ED4: .4byte gBattleAnimPlayerMonIndex _080D8ED8: .4byte gBattleAnimEnemyMonIndex @@ -30260,7 +30260,7 @@ sub_80D8FC0: @ 80D8FC0 ldrb r3, [r1] lsls r3, 1 adds r3, r1 - ldr r1, _080D8FEC @ =gUnknown_0202F7B4 + ldr r1, _080D8FEC @ =gDisableStructMoveAnim ldr r1, [r1] ldrb r1, [r1, 0x11] lsrs r2, r1, 4 @@ -30274,7 +30274,7 @@ sub_80D8FC0: @ 80D8FC0 bx r0 .align 2, 0 _080D8FE8: .4byte gBattleAnimArgs -_080D8FEC: .4byte gUnknown_0202F7B4 +_080D8FEC: .4byte gDisableStructMoveAnim thumb_func_end sub_80D8FC0 thumb_func_start unc_080B08A0 @@ -30317,7 +30317,7 @@ sub_80D902C: @ 80D902C bne _080D9054 ldr r0, _080D9074 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080D9054 @@ -30514,7 +30514,7 @@ _080D91C4: negs r0, r0 lsrs r4, r0, 16 _080D91D6: - ldr r0, _080D9264 @ =gUnknown_02024A72 + ldr r0, _080D9264 @ =gBanksBySide add r0, r8 ldrb r1, [r0] adds r0, r7, 0 @@ -30585,7 +30585,7 @@ _080D9250: bx r0 .align 2, 0 _080D9260: .4byte gBattleAnimEnemyMonIndex -_080D9264: .4byte gUnknown_02024A72 +_080D9264: .4byte gBanksBySide _080D9268: .4byte 0xfff00000 _080D926C: .4byte gBattleAnimSpriteTemplate_83DB4A8 _080D9270: .4byte gSprites @@ -30739,7 +30739,7 @@ sub_80D9378: @ 80D9378 cmp r0, r1 bne _080D93A4 ldrb r0, [r2] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -30755,7 +30755,7 @@ _080D93A4: bl sub_8078764 ldr r0, _080D93F4 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080D93C2 @@ -31309,7 +31309,7 @@ sub_80D97CC: @ 80D97CC ldrsh r0, [r0, r1] cmp r0, 0 bne _080D9828 - ldr r4, _080D981C @ =gPlayerMonIndex + ldr r4, _080D981C @ =gBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC @@ -31338,7 +31338,7 @@ sub_80D97CC: @ 80D97CC b _080D9844 .align 2, 0 _080D9818: .4byte gBattleAnimArgs -_080D981C: .4byte gPlayerMonIndex +_080D981C: .4byte gBankAttacker _080D9820: .4byte gBattleAnimPlayerMonIndex _080D9824: .4byte gBattleAnimEnemyMonIndex _080D9828: @@ -31614,7 +31614,7 @@ sub_80D9A38: @ 80D9A38 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D9A7C - ldr r4, _080D9A70 @ =gPlayerMonIndex + ldr r4, _080D9A70 @ =gBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC @@ -31633,7 +31633,7 @@ sub_80D9A38: @ 80D9A38 b _080D9A82 .align 2, 0 _080D9A6C: .4byte gBattleAnimArgs -_080D9A70: .4byte gPlayerMonIndex +_080D9A70: .4byte gBankAttacker _080D9A74: .4byte gBattleAnimEnemyMonIndex _080D9A78: .4byte gBattleAnimPlayerMonIndex _080D9A7C: @@ -31669,7 +31669,7 @@ _080D9AB4: .4byte gBattleAnimPlayerMonIndex _080D9AB8: .4byte gBattleAnimEnemyMonIndex _080D9ABC: adds r0, r4, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080D9ADC @@ -31768,7 +31768,7 @@ sub_80D9B48: @ 80D9B48 ldr r0, _080D9BCC @ =gUnknown_0202F7C4 ldrb r6, [r0] ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080D9B92 @@ -31839,7 +31839,7 @@ _080D9BF8: _080D9C0C: ldr r0, _080D9C34 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080D9C22 @@ -31954,7 +31954,7 @@ _080D9CDE: strh r0, [r4, 0x1C] ldr r0, _080D9D0C @ =gBattleAnimEnemyMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080D9D14 @@ -32106,7 +32106,7 @@ _080D9E08: bl sub_807A3FC ldr r0, _080D9E6C @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080D9E36 @@ -32239,7 +32239,7 @@ sub_80D9F14: @ 80D9F14 bl sub_807A3FC ldr r0, _080D9F78 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080D9F40 @@ -32306,7 +32306,7 @@ _080D9FA4: bl sub_807A3FC ldr r0, _080D9FE8 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080D9FCA @@ -32540,7 +32540,7 @@ sub_80DA16C: @ 80DA16C bl sub_80787B0 ldr r0, _080DA1D8 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080DA18C @@ -32613,7 +32613,7 @@ sub_80DA208: @ 80DA208 adds r5, r0, 0 ldr r4, _080DA2A4 @ =gBattleAnimPlayerMonIndex ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080DA234 @@ -32804,7 +32804,7 @@ sub_80DA38C: @ 80DA38C adds r5, r0, 0 ldr r0, _080DA3B4 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080DA3BC @@ -32990,7 +32990,7 @@ _080DA500: _080DA502: ldrb r6, [r0] adds r0, r6, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080DA518 @@ -34136,7 +34136,7 @@ sub_80DAD84: @ 80DAD84 ands r0, r1 cmp r0, 0 beq _080DAE44 - ldr r0, _080DADD8 @ =gUnknown_02024A72 + ldr r0, _080DADD8 @ =gBanksBySide ldr r1, _080DADDC @ =gBattleAnimEnemyMonIndex ldrb r2, [r1] adds r0, r2, r0 @@ -34157,7 +34157,7 @@ sub_80DAD84: @ 80DAD84 _080DADCC: .4byte gBattleAnimArgs _080DADD0: .4byte gMain _080DADD4: .4byte 0x0000043d -_080DADD8: .4byte gUnknown_02024A72 +_080DADD8: .4byte gBanksBySide _080DADDC: .4byte gBattleAnimEnemyMonIndex _080DADE0: adds r0, r2, 0 @@ -34465,7 +34465,7 @@ _080DB024: bne _080DB03C ldr r0, _080DB090 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080DB052 @@ -34476,7 +34476,7 @@ _080DB03C: bne _080DB058 ldr r0, _080DB094 @ =gBattleAnimEnemyMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080DB058 @@ -35423,7 +35423,7 @@ sub_80DB74C: @ 80DB74C adds r6, r0, 0 ldr r0, _080DB804 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080DB768 @@ -35449,12 +35449,12 @@ _080DB77E: cmp r0, 0 bne _080DB7DA movs r0, 0x1 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r4, r0, 24 adds r7, r4, 0 adds r0, r4, 0 - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 movs r1, 0x1 @@ -35495,7 +35495,7 @@ _080DB7DA: beq _080DB810 ldr r0, _080DB804 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080DB808 @@ -35513,7 +35513,7 @@ _080DB808: _080DB810: ldr r5, _080DB880 @ =gBattleAnimPlayerMonIndex ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080DB826 @@ -35684,7 +35684,7 @@ sub_80DB92C: @ 80DB92C cmp r0, 0 bne _080DB9BC movs r0, 0x1 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r4, r0, 24 adds r6, r4, 0 @@ -35694,7 +35694,7 @@ sub_80DB92C: @ 80DB92C cmp r0, 0 beq _080DB98E ldr r2, _080DB9D8 @ =gSprites - ldr r0, _080DB9DC @ =gUnknown_02024BE0 + ldr r0, _080DB9DC @ =gObjectBankIDs adds r0, r4, r0 ldrb r1, [r0] lsls r0, r1, 4 @@ -35717,7 +35717,7 @@ _080DB98E: cmp r0, 0 beq _080DB9BC ldr r2, _080DB9D8 @ =gSprites - ldr r0, _080DB9DC @ =gUnknown_02024BE0 + ldr r0, _080DB9DC @ =gObjectBankIDs adds r0, r4, r0 ldrb r1, [r0] lsls r0, r1, 4 @@ -35746,7 +35746,7 @@ _080DB9CC: .align 2, 0 _080DB9D4: .4byte REG_BLDALPHA _080DB9D8: .4byte gSprites -_080DB9DC: .4byte gUnknown_02024BE0 +_080DB9DC: .4byte gObjectBankIDs _080DB9E0: .4byte sub_80DB9E4 thumb_func_end sub_80DB92C @@ -35759,11 +35759,11 @@ sub_80DB9E4: @ 80DB9E4 cmp r0, 0 bne _080DBA3C movs r0, 0x1 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 movs r1, 0x1 @@ -35826,7 +35826,7 @@ _080DBA66: beq _080DBAAE ldr r0, _080DBA9C @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080DBAA0 @@ -35904,7 +35904,7 @@ sub_80DBAF4: @ 80DBAF4 lsrs r0, 24 strh r0, [r5, 0x22] ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080DBB44 @@ -35971,7 +35971,7 @@ sub_80DBB70: @ 80DBB70 lsls r1, 16 lsrs r7, r1, 16 ldrb r0, [r6] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -36168,7 +36168,7 @@ sub_80DBCFC: @ 80DBCFC strh r1, [r4, 0xC] ldr r0, _080DBD4C @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 movs r1, 0x8 cmp r0, 0 @@ -36969,7 +36969,7 @@ _080DC346: _080DC352: ldr r0, _080DC36C @ =gBattleAnimEnemyMonIndex ldrb r0, [r0] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -37614,7 +37614,7 @@ _080DC84C: .4byte gBattleAnimArgs _080DC850: ldr r0, _080DC8E4 @ =gBattleAnimEnemyMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080DC880 @@ -37707,7 +37707,7 @@ _080DC914: .4byte gBattleAnimArgs _080DC918: ldr r0, _080DC990 @ =gBattleAnimEnemyMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080DC934 @@ -37884,7 +37884,7 @@ sub_80DCA70: @ 80DCA70 bl sub_807A3FC ldr r0, _080DCAA4 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080DCAAC @@ -37912,7 +37912,7 @@ _080DCAB8: strh r0, [r4, 0x22] ldr r0, _080DCAE4 @ =gBattleAnimEnemyMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080DCAD4 @@ -38077,7 +38077,7 @@ _080DCBE8: .4byte gBattleAnimArgs _080DCBEC: ldr r0, _080DCCE8 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080DCC0E @@ -38098,22 +38098,22 @@ _080DCC0E: bne _080DCC5E ldr r0, _080DCCE8 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide adds r4, r0, 0 ldr r5, _080DCCF0 @ =gBattleAnimEnemyMonIndex ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide lsls r4, 24 lsls r0, 24 cmp r4, r0 bne _080DCC5E ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 cmp r0, 0 beq _080DCC4C ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -38207,7 +38207,7 @@ sub_80DCCFC: @ 80DCCFC bl sub_80787B0 ldr r0, _080DCD68 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080DCD1C @@ -38508,7 +38508,7 @@ sub_80DCF60: @ 80DCF60 bl AnimateSprite ldr r0, _080DCF8C @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080DCF90 @@ -38728,7 +38728,7 @@ _080DD120: beq _080DD13A ldr r0, _080DD184 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080DD13A @@ -39046,7 +39046,7 @@ sub_80DD3AC: @ 80DD3AC beq _080DD3F8 ldr r0, _080DD3F4 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080DD3F8 @@ -39681,7 +39681,7 @@ _080DD8B8: .4byte gTasks thumb_func_start sub_80DD8BC sub_80DD8BC: @ 80DD8BC push {lr} - ldr r0, _080DD8E4 @ =gUnknown_0202F7B4 + ldr r0, _080DD8E4 @ =gDisableStructMoveAnim ldr r0, [r0] ldrb r1, [r0, 0x11] lsrs r0, r1, 4 @@ -39702,7 +39702,7 @@ _080DD8DE: pop {r1} bx r1 .align 2, 0 -_080DD8E4: .4byte gUnknown_0202F7B4 +_080DD8E4: .4byte gDisableStructMoveAnim thumb_func_end sub_80DD8BC thumb_func_start sub_80DD8E8 @@ -39789,7 +39789,7 @@ sub_80DD978: @ 80DD978 adds r4, r0, 0 ldr r0, _080DD9A0 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -39896,7 +39896,7 @@ sub_80DDA4C: @ 80DDA4C push {lr} lsls r0, 24 lsrs r3, r0, 24 - ldr r2, _080DDA84 @ =gUnknown_0202F7B8 + ldr r2, _080DDA84 @ =gMoveDmgMoveAnim ldr r0, [r2] cmp r0, 0x20 bgt _080DDA60 @@ -39924,7 +39924,7 @@ _080DDA7A: pop {r0} bx r0 .align 2, 0 -_080DDA84: .4byte gUnknown_0202F7B8 +_080DDA84: .4byte gMoveDmgMoveAnim _080DDA88: .4byte gBattleAnimArgs thumb_func_end sub_80DDA4C @@ -40919,7 +40919,7 @@ _080DE1E0: strh r1, [r0, 0x2E] ldr r0, _080DE250 @ =gBattleAnimEnemyMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080DE258 @@ -41158,7 +41158,7 @@ sub_80DE3D4: @ 80DE3D4 adds r5, r0, r1 ldr r0, _080DE410 @ =gBattleAnimEnemyMonIndex ldrb r0, [r0] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r6, r0, 24 movs r1, 0x26 @@ -41518,7 +41518,7 @@ sub_80DE6B0: @ 80DE6B0 adds r4, r0, r1 ldr r0, _080DE6E4 @ =gBattleAnimEnemyMonIndex ldrb r0, [r0] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r6, r0, 24 movs r1, 0x26 @@ -42292,7 +42292,7 @@ sub_80DECB0: @ 80DECB0 strh r0, [r1] ldr r0, _080DED08 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080DECF4 @@ -42573,7 +42573,7 @@ sub_80DEF3C: @ 80DEF3C bl sub_80787B0 ldr r0, _080DEF68 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080DEF70 @@ -42777,7 +42777,7 @@ sub_80DF0B8: @ 80DF0B8 strh r0, [r4, 0x24] ldr r0, _080DF120 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080DF0DC @@ -43024,7 +43024,7 @@ _080DF292: strh r7, [r5, 0x2E] ldr r0, _080DF2FC @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide movs r1, 0 lsls r0, 24 cmp r0, 0 @@ -43288,7 +43288,7 @@ sub_80DF49C: @ 80DF49C movs r2, 0x4 orrs r1, r2 strb r1, [r3] - ldr r2, _080DF4E0 @ =gUnknown_02024BE0 + ldr r2, _080DF4E0 @ =gObjectBankIDs ldr r1, _080DF4E4 @ =gBattleAnimPlayerMonIndex ldrb r1, [r1] adds r1, r2 @@ -43317,7 +43317,7 @@ sub_80DF49C: @ 80DF49C strh r1, [r0, 0x22] bx lr .align 2, 0 -_080DF4E0: .4byte gUnknown_02024BE0 +_080DF4E0: .4byte gObjectBankIDs _080DF4E4: .4byte gBattleAnimPlayerMonIndex _080DF4E8: .4byte gBattleAnimArgs _080DF4EC: .4byte sub_80DF4F4 @@ -43429,7 +43429,7 @@ sub_80DF5A0: @ 80DF5A0 lsrs r0, 24 strh r0, [r5, 0x22] ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080DF5F0 @@ -43508,7 +43508,7 @@ sub_80DF63C: @ 80DF63C strh r0, [r5, 0x36] ldr r0, _080DF698 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080DF6A0 @@ -43631,7 +43631,7 @@ sub_80DF760: @ 80DF760 adds r4, r0, 0 ldr r0, _080DF788 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080DF77A @@ -43672,7 +43672,7 @@ sub_80DF78C: @ 80DF78C ldr r0, _080DF7E4 @ =gBattleAnimArgs ldrh r0, [r0] strh r0, [r6, 0x3A] - ldr r4, _080DF7E8 @ =gPlayerMonIndex + ldr r4, _080DF7E8 @ =gBankAttacker ldrb r0, [r4] movs r1, 0 bl sub_807A100 @@ -43690,7 +43690,7 @@ sub_80DF78C: @ 80DF78C .align 2, 0 _080DF7E0: .4byte gBattleAnimPlayerMonIndex _080DF7E4: .4byte gBattleAnimArgs -_080DF7E8: .4byte gPlayerMonIndex +_080DF7E8: .4byte gBankAttacker _080DF7EC: lsrs r0, r1, 17 _080DF7EE: @@ -43866,7 +43866,7 @@ sub_80DF924: @ 80DF924 adds r4, r1, r0 ldr r0, _080DF954 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -44257,7 +44257,7 @@ sub_80DFC24: @ 80DFC24 strh r2, [r1, 0xA] ldr r1, _080DFC64 @ =REG_BLDALPHA strh r2, [r1] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -44330,7 +44330,7 @@ sub_80DFC9C: @ 80DFC9C cmp r2, 0x10 bne _080DFD1E ldr r2, _080DFD0C @ =gSprites - ldr r1, _080DFD10 @ =gUnknown_02024BE0 + ldr r1, _080DFD10 @ =gObjectBankIDs ldr r0, _080DFD14 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] adds r0, r1 @@ -44351,7 +44351,7 @@ sub_80DFC9C: @ 80DFC9C _080DFD04: .4byte gTasks _080DFD08: .4byte REG_BLDALPHA _080DFD0C: .4byte gSprites -_080DFD10: .4byte gUnknown_02024BE0 +_080DFD10: .4byte gObjectBankIDs _080DFD14: .4byte gBattleAnimPlayerMonIndex _080DFD18: ldrh r0, [r4, 0xC] @@ -44456,7 +44456,7 @@ sub_80DFDC0: @ 80DFDC0 strh r0, [r1] ldr r0, _080DFDEC @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -44898,7 +44898,7 @@ sub_80E00EC: @ 80E00EC adds r0, 0x20 strh r0, [r5, 0x26] ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080E015C @@ -44914,7 +44914,7 @@ _080E015E: strh r0, [r5, 0x18] ldr r0, _080E01AC @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0xE] @@ -45262,7 +45262,7 @@ _080E0438: .4byte 0x00003f3f _080E043C: ldr r0, _080E045C @ =gBattleAnimEnemyMonIndex ldrb r0, [r0] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0xE] @@ -45356,7 +45356,7 @@ _080E04D0: adds r0, 0x4 strh r0, [r5, 0x26] ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080E0524 @@ -45903,7 +45903,7 @@ sub_80E0918: @ 80E0918 mov r10, r0 ldr r6, _080E09B8 @ =gBattleAnimPlayerMonIndex ldrb r0, [r6] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 movs r1, 0x1 @@ -45916,7 +45916,7 @@ sub_80E0918: @ 80E0918 bl sub_8076034 ldr r0, _080E09BC @ =gSprites mov r9, r0 - ldr r0, _080E09C0 @ =gUnknown_02024BE0 + ldr r0, _080E09C0 @ =gObjectBankIDs mov r8, r0 ldrb r0, [r6] add r0, r8 @@ -45971,7 +45971,7 @@ _080E09A2: .align 2, 0 _080E09B8: .4byte gBattleAnimPlayerMonIndex _080E09BC: .4byte gSprites -_080E09C0: .4byte gUnknown_02024BE0 +_080E09C0: .4byte gObjectBankIDs thumb_func_end sub_80E0918 thumb_func_start sub_80E09C4 @@ -45981,7 +45981,7 @@ sub_80E09C4: @ 80E09C4 lsrs r6, r0, 24 ldr r4, _080E0A0C @ =gBattleAnimPlayerMonIndex ldrb r0, [r4] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 movs r1, 0x1 @@ -46114,13 +46114,13 @@ _080E0AC4: bne _080E0B40 ldr r4, _080E0B74 @ =gBattleAnimPlayerMonIndex ldrb r0, [r4] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _080E0AF4 ldrb r0, [r4] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 cmp r0, 0 bne _080E0B40 @@ -46134,7 +46134,7 @@ _080E0AF4: cmp r0, 0x1 bne _080E0B40 ldr r3, _080E0B78 @ =gSprites - ldr r1, _080E0B7C @ =gUnknown_02024BE0 + ldr r1, _080E0B7C @ =gObjectBankIDs ldrb r0, [r4] eors r0, r6 adds r0, r1 @@ -46182,16 +46182,16 @@ _080E0B6C: .4byte 0x00000c08 _080E0B70: .4byte REG_BG1CNT _080E0B74: .4byte gBattleAnimPlayerMonIndex _080E0B78: .4byte gSprites -_080E0B7C: .4byte gUnknown_02024BE0 +_080E0B7C: .4byte gObjectBankIDs _080E0B80: .4byte 0x02019348 _080E0B84: ldr r4, _080E0BA4 @ =gBattleAnimPlayerMonIndex ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080E0BB0 - ldr r1, _080E0BA8 @ =gUnknown_02024A6A + ldr r1, _080E0BA8 @ =gBattlePartyID ldrb r0, [r4] lsls r0, 1 adds r0, r1 @@ -46202,10 +46202,10 @@ _080E0B84: b _080E0BC0 .align 2, 0 _080E0BA4: .4byte gBattleAnimPlayerMonIndex -_080E0BA8: .4byte gUnknown_02024A6A +_080E0BA8: .4byte gBattlePartyID _080E0BAC: .4byte gEnemyParty _080E0BB0: - ldr r1, _080E0C58 @ =gUnknown_02024A6A + ldr r1, _080E0C58 @ =gBattlePartyID ldrb r0, [r4] lsls r0, 1 adds r0, r1 @@ -46284,7 +46284,7 @@ _080E0BCC: bl sub_8079108 b _080E0C94 .align 2, 0 -_080E0C58: .4byte gUnknown_02024A6A +_080E0C58: .4byte gBattlePartyID _080E0C5C: .4byte gPlayerParty _080E0C60: .4byte gBattleAnimPlayerMonIndex _080E0C64: .4byte 0x040000d4 @@ -46445,7 +46445,7 @@ _080E0D84: ldrsh r0, [r4, r1] cmp r0, 0x1 bne _080E0DE2 - ldr r2, _080E0E1C @ =gUnknown_02024BE0 + ldr r2, _080E0E1C @ =gObjectBankIDs ldr r0, _080E0E20 @ =gBattleAnimPlayerMonIndex ldrb r1, [r0] movs r0, 0x2 @@ -46488,7 +46488,7 @@ _080E0E0C: .4byte REG_BLDCNT _080E0E10: .4byte gSprites _080E0E14: .4byte 0x040000d4 _080E0E18: .4byte 0x85000200 -_080E0E1C: .4byte gUnknown_02024BE0 +_080E0E1C: .4byte gObjectBankIDs _080E0E20: .4byte gBattleAnimPlayerMonIndex thumb_func_end sub_80E0CD0 @@ -46548,7 +46548,7 @@ _080E0E8A: beq _080E0EB6 _080E0E90: adds r0, r4, 0 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 @@ -46556,12 +46556,12 @@ _080E0E90: lsls r0, 24 cmp r0, 0 beq _080E0EB4 - ldr r0, _080E0EB0 @ =gUnknown_02024BE0 + ldr r0, _080E0EB0 @ =gObjectBankIDs adds r0, r4, r0 ldrb r2, [r0] b _080E0EB6 .align 2, 0 -_080E0EB0: .4byte gUnknown_02024BE0 +_080E0EB0: .4byte gObjectBankIDs _080E0EB4: movs r2, 0xFF _080E0EB6: @@ -46739,7 +46739,7 @@ sub_80E1004: @ 80E1004 bl sub_8078764 ldr r0, _080E1064 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080E1024 @@ -47092,7 +47092,7 @@ _080E12C4: strh r0, [r4, 0x1C] ldr r0, _080E12EC @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1E] @@ -47300,7 +47300,7 @@ sub_80E143C: @ 80E143C strh r4, [r1, 0x26] ldr r0, _080E1480 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -47465,7 +47465,7 @@ _080E15A0: strh r0, [r4, 0x1C] ldr r0, _080E15C4 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1E] @@ -47837,7 +47837,7 @@ sub_80E1864: @ 80E1864 _080E1888: .4byte gTasks _080E188C: .4byte gBattleAnimArgs _080E1890: - ldr r0, _080E18BC @ =gUnknown_0202F7BC + ldr r0, _080E18BC @ =gMovePowerMoveAnim ldrh r0, [r0] movs r1, 0xA bl __udivsi3 @@ -47860,7 +47860,7 @@ _080E189C: ldr r0, _080E18C4 @ =sub_80E1934 b _080E1926 .align 2, 0 -_080E18BC: .4byte gUnknown_0202F7BC +_080E18BC: .4byte gMovePowerMoveAnim _080E18C0: .4byte gUnknown_030041B0 _080E18C4: .4byte sub_80E1934 _080E18C8: @@ -47881,7 +47881,7 @@ _080E18CE: adds r1, r4, 0 adds r1, 0x8 adds r1, r0 - ldr r0, _080E1904 @ =gUnknown_02024BE0 + ldr r0, _080E1904 @ =gObjectBankIDs adds r0, r5, r0 ldrb r0, [r0] strh r0, [r1] @@ -47896,7 +47896,7 @@ _080E18F8: bls _080E18CE b _080E1924 .align 2, 0 -_080E1904: .4byte gUnknown_02024BE0 +_080E1904: .4byte gObjectBankIDs _080E1908: ldrb r0, [r6] bl obj_id_for_side_relative_to_move @@ -48254,7 +48254,7 @@ sub_80E1B88: @ 80E1B88 lsrs r1, r0, 24 ldr r3, _080E1BA8 @ =gBattleAnimArgs movs r2, 0 - ldr r0, _080E1BAC @ =gUnknown_0202F7BC + ldr r0, _080E1BAC @ =gMovePowerMoveAnim ldrh r0, [r0] cmp r0, 0x63 bls _080E1B9C @@ -48267,7 +48267,7 @@ _080E1B9C: bx r0 .align 2, 0 _080E1BA8: .4byte gBattleAnimArgs -_080E1BAC: .4byte gUnknown_0202F7BC +_080E1BAC: .4byte gMovePowerMoveAnim thumb_func_end sub_80E1B88 thumb_func_start sub_80E1BB0 @@ -48414,7 +48414,7 @@ sub_80E1CB4: @ 80E1CB4 strh r0, [r4, 0x2E] ldr r0, _080E1CF0 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 @@ -49382,7 +49382,7 @@ _080E240C: cmp r0, 0 beq _080E243C ldr r2, _080E24B0 @ =gSprites - ldr r0, _080E24B4 @ =gUnknown_03004340 + ldr r0, _080E24B4 @ =gHealthboxIDs add r0, r9 ldrb r1, [r0] lsls r0, r1, 4 @@ -49455,7 +49455,7 @@ _080E24A4: .4byte gBattleAnimPlayerMonIndex _080E24A8: .4byte gBattleAnimEnemyMonIndex _080E24AC: .4byte 0x0000ffff _080E24B0: .4byte gSprites -_080E24B4: .4byte gUnknown_03004340 +_080E24B4: .4byte gHealthboxIDs thumb_func_end unref_sub_80E23A8 thumb_func_start sub_80E24B8 @@ -49598,13 +49598,13 @@ _080E25A0: cmp r0, 0x1 bhi _080E25F4 movs r4, 0 - ldr r5, _080E2600 @ =gUnknown_02024A68 + ldr r5, _080E2600 @ =gNoOfAllBanks ldrb r0, [r5] cmp r4, r0 bcs _080E25F4 ldr r2, _080E2604 @ =gSprites mov r12, r2 - ldr r6, _080E2608 @ =gUnknown_02024BE0 + ldr r6, _080E2608 @ =gObjectBankIDs movs r7, 0x3 negs r7, r7 _080E25D2: @@ -49633,16 +49633,16 @@ _080E25FA: pop {r0} bx r0 .align 2, 0 -_080E2600: .4byte gUnknown_02024A68 +_080E2600: .4byte gNoOfAllBanks _080E2604: .4byte gSprites -_080E2608: .4byte gUnknown_02024BE0 +_080E2608: .4byte gObjectBankIDs thumb_func_end sub_80E255C thumb_func_start sub_80E260C sub_80E260C: @ 80E260C push {r4-r6,lr} ldr r6, _080E2680 @ =gSprites - ldr r4, _080E2684 @ =gUnknown_02024BE0 + ldr r4, _080E2684 @ =gObjectBankIDs ldr r5, _080E2688 @ =gBattleAnimPlayerMonIndex ldrb r0, [r5] adds r0, r4 @@ -49699,7 +49699,7 @@ sub_80E260C: @ 80E260C b _080E26B0 .align 2, 0 _080E2680: .4byte gSprites -_080E2684: .4byte gUnknown_02024BE0 +_080E2684: .4byte gObjectBankIDs _080E2688: .4byte gBattleAnimPlayerMonIndex _080E268C: .4byte gBattleAnimEnemyMonIndex _080E2690: .4byte gBattleAnimArgs @@ -49928,7 +49928,7 @@ sub_80E2838: @ 80E2838 adds r4, r0, 0 ldr r0, _080E2868 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080E285C @@ -50902,13 +50902,13 @@ _080E2FAC: bne _080E3028 ldr r5, _080E305C @ =gBattleAnimPlayerMonIndex ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _080E2FDC ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 cmp r0, 0 bne _080E3028 @@ -50922,7 +50922,7 @@ _080E2FDC: cmp r0, 0x1 bne _080E3028 ldr r3, _080E3060 @ =gSprites - ldr r1, _080E3064 @ =gUnknown_02024BE0 + ldr r1, _080E3064 @ =gObjectBankIDs ldrb r0, [r5] eors r0, r6 adds r0, r1 @@ -50970,16 +50970,16 @@ _080E3054: .4byte 0x00000c08 _080E3058: .4byte REG_BG1CNT _080E305C: .4byte gBattleAnimPlayerMonIndex _080E3060: .4byte gSprites -_080E3064: .4byte gUnknown_02024BE0 +_080E3064: .4byte gObjectBankIDs _080E3068: .4byte 0x02019348 _080E306C: ldr r4, _080E308C @ =gBattleAnimPlayerMonIndex ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080E3098 - ldr r1, _080E3090 @ =gUnknown_02024A6A + ldr r1, _080E3090 @ =gBattlePartyID ldrb r0, [r4] lsls r0, 1 adds r0, r1 @@ -50990,10 +50990,10 @@ _080E306C: b _080E30A8 .align 2, 0 _080E308C: .4byte gBattleAnimPlayerMonIndex -_080E3090: .4byte gUnknown_02024A6A +_080E3090: .4byte gBattlePartyID _080E3094: .4byte gEnemyParty _080E3098: - ldr r1, _080E3160 @ =gUnknown_02024A6A + ldr r1, _080E3160 @ =gBattlePartyID ldrb r0, [r4] lsls r0, 1 adds r0, r1 @@ -51087,7 +51087,7 @@ _080E3106: pop {r0} bx r0 .align 2, 0 -_080E3160: .4byte gUnknown_02024A6A +_080E3160: .4byte gBattlePartyID _080E3164: .4byte gPlayerParty _080E3168: .4byte gBattleAnimPlayerMonIndex _080E316C: .4byte 0x040000d4 @@ -51199,7 +51199,7 @@ _080E3208: ldrsh r0, [r4, r3] cmp r0, 0x1 bne _080E3288 - ldr r2, _080E32D8 @ =gUnknown_02024BE0 + ldr r2, _080E32D8 @ =gObjectBankIDs ldr r0, _080E32DC @ =gBattleAnimPlayerMonIndex ldrb r1, [r0] movs r0, 0x2 @@ -51252,7 +51252,7 @@ _080E32C8: .4byte REG_BLDCNT _080E32CC: .4byte gSprites _080E32D0: .4byte 0x040000d4 _080E32D4: .4byte 0x85000200 -_080E32D8: .4byte gUnknown_02024BE0 +_080E32D8: .4byte gObjectBankIDs _080E32DC: .4byte gBattleAnimPlayerMonIndex thumb_func_end sub_80E3194 @@ -51441,13 +51441,13 @@ _080E3432: cmp r0, 0 bne _080E34A4 adds r0, r5, 0 - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _080E345E adds r0, r5, 0 - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 cmp r0, 0 bne _080E34A4 @@ -51459,7 +51459,7 @@ _080E345E: cmp r0, 0x1 bne _080E34A4 ldr r1, _080E34D8 @ =gSprites - ldr r0, _080E34DC @ =gUnknown_02024BE0 + ldr r0, _080E34DC @ =gObjectBankIDs add r0, r8 ldrb r0, [r0] lsls r2, r0, 4 @@ -51505,15 +51505,15 @@ _080E34CC: .4byte REG_BLDCNT _080E34D0: .4byte 0x00003f42 _080E34D4: .4byte REG_BG1CNT _080E34D8: .4byte gSprites -_080E34DC: .4byte gUnknown_02024BE0 +_080E34DC: .4byte gObjectBankIDs _080E34E0: .4byte 0x02019348 _080E34E4: adds r0, r5, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080E3508 - ldr r1, _080E3500 @ =gUnknown_02024A6A + ldr r1, _080E3500 @ =gBattlePartyID lsls r0, r5, 1 adds r0, r1 ldrh r1, [r0] @@ -51522,10 +51522,10 @@ _080E34E4: ldr r1, _080E3504 @ =gEnemyParty b _080E3516 .align 2, 0 -_080E3500: .4byte gUnknown_02024A6A +_080E3500: .4byte gBattlePartyID _080E3504: .4byte gEnemyParty _080E3508: - ldr r1, _080E3568 @ =gUnknown_02024A6A + ldr r1, _080E3568 @ =gBattlePartyID lsls r0, r5, 1 adds r0, r1 ldrh r1, [r0] @@ -51539,7 +51539,7 @@ _080E3516: lsls r0, 16 lsrs r4, r0, 16 _080E3522: - ldr r6, _080E3570 @ =gUnknown_02024BE0 + ldr r6, _080E3570 @ =gObjectBankIDs adds r0, r5, r6 ldrb r1, [r0] adds r0, r5, 0 @@ -51572,9 +51572,9 @@ _080E3550: bl LZDecompressVram b _080E3580 .align 2, 0 -_080E3568: .4byte gUnknown_02024A6A +_080E3568: .4byte gBattlePartyID _080E356C: .4byte gPlayerParty -_080E3570: .4byte gUnknown_02024BE0 +_080E3570: .4byte gObjectBankIDs _080E3574: .4byte gBattleStatMask1_Tilemap _080E3578: ldr r0, _080E35B0 @ =gBattleStatMask2_Tilemap @@ -51734,7 +51734,7 @@ _080E3692: mov r3, sp ldrh r3, [r3, 0x20] strh r3, [r1, 0x14] - ldr r0, _080E36D8 @ =gUnknown_02024BE0 + ldr r0, _080E36D8 @ =gObjectBankIDs add r0, r8 ldrb r0, [r0] strh r0, [r1, 0x16] @@ -51754,7 +51754,7 @@ _080E3692: bl PlaySE12WithPanning b _080E36F4 .align 2, 0 -_080E36D8: .4byte gUnknown_02024BE0 +_080E36D8: .4byte gObjectBankIDs _080E36DC: .4byte sub_80E3704 _080E36E0: movs r0, 0x40 @@ -52237,7 +52237,7 @@ sub_80E3A58: @ 80E3A58 beq _080E3A94 ldr r0, _080E3AC8 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080E3A94 @@ -52345,7 +52345,7 @@ sub_80E3B4C: @ 80E3B4C lsrs r4, 24 ldr r0, _080E3B70 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide ldr r1, _080E3B74 @ =gBattleAnimArgs lsls r0, 24 lsrs r0, 24 @@ -52368,7 +52368,7 @@ sub_80E3B78: @ 80E3B78 lsrs r4, 24 ldr r0, _080E3B9C @ =gBattleAnimEnemyMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide ldr r1, _080E3BA0 @ =gBattleAnimArgs lsls r0, 24 lsrs r0, 24 @@ -52430,7 +52430,7 @@ _080E3BE6: lsls r0, 24 cmp r0, 0 beq _080E3C24 - ldr r0, _080E3C44 @ =gUnknown_02024BE0 + ldr r0, _080E3C44 @ =gObjectBankIDs adds r0, r4, r0 ldrb r0, [r0] lsls r2, r0, 4 @@ -52464,7 +52464,7 @@ _080E3C24: .align 2, 0 _080E3C3C: .4byte gSprites _080E3C40: .4byte gBattleAnimPlayerMonIndex -_080E3C44: .4byte gUnknown_02024BE0 +_080E3C44: .4byte gObjectBankIDs _080E3C48: .4byte gBattleAnimArgs thumb_func_end sub_80E3BDC @@ -52596,11 +52596,11 @@ _080E3D50: .4byte REG_BG1CNT _080E3D54: .4byte 0x02019348 _080E3D58: adds r0, r7, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080E3D7C - ldr r1, _080E3D74 @ =gUnknown_02024A6A + ldr r1, _080E3D74 @ =gBattlePartyID lsls r0, r7, 1 adds r0, r1 ldrh r1, [r0] @@ -52609,10 +52609,10 @@ _080E3D58: ldr r1, _080E3D78 @ =gEnemyParty b _080E3D8A .align 2, 0 -_080E3D74: .4byte gUnknown_02024A6A +_080E3D74: .4byte gBattlePartyID _080E3D78: .4byte gEnemyParty _080E3D7C: - ldr r1, _080E3E48 @ =gUnknown_02024A6A + ldr r1, _080E3E48 @ =gBattlePartyID lsls r0, r7, 1 adds r0, r1 ldrh r1, [r0] @@ -52626,7 +52626,7 @@ _080E3D8A: lsls r0, 16 lsrs r4, r0, 16 _080E3D96: - ldr r5, _080E3E50 @ =gUnknown_02024BE0 + ldr r5, _080E3E50 @ =gObjectBankIDs adds r0, r7, r5 ldrb r1, [r0] adds r0, r7, 0 @@ -52710,9 +52710,9 @@ _080E3DE6: pop {r0} bx r0 .align 2, 0 -_080E3E48: .4byte gUnknown_02024A6A +_080E3E48: .4byte gBattlePartyID _080E3E4C: .4byte gPlayerParty -_080E3E50: .4byte gUnknown_02024BE0 +_080E3E50: .4byte gObjectBankIDs _080E3E54: .4byte gUnknown_030042C0 _080E3E58: .4byte gUnknown_030041B4 _080E3E5C: .4byte gTasks @@ -53227,11 +53227,11 @@ sub_80E4234: @ 80E4234 lsls r0, 24 lsrs r0, 24 ldr r2, _080E4254 @ =gBattleAnimPlayerMonIndex - ldr r1, _080E4258 @ =gEnemyMonIndex + ldr r1, _080E4258 @ =gBankTarget ldrb r1, [r1] strb r1, [r2] ldr r2, _080E425C @ =gBattleAnimEnemyMonIndex - ldr r1, _080E4260 @ =gUnknown_02024C0A + ldr r1, _080E4260 @ =gEffectBank ldrb r1, [r1] strb r1, [r2] bl DestroyAnimVisualTask @@ -53239,9 +53239,9 @@ sub_80E4234: @ 80E4234 bx r0 .align 2, 0 _080E4254: .4byte gBattleAnimPlayerMonIndex -_080E4258: .4byte gEnemyMonIndex +_080E4258: .4byte gBankTarget _080E425C: .4byte gBattleAnimEnemyMonIndex -_080E4260: .4byte gUnknown_02024C0A +_080E4260: .4byte gEffectBank thumb_func_end sub_80E4234 thumb_func_start sub_80E4264 @@ -53251,11 +53251,11 @@ sub_80E4264: @ 80E4264 lsrs r5, r0, 24 ldr r0, _080E428C @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide adds r4, r0, 0 ldr r0, _080E4290 @ =gBattleAnimEnemyMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r4, 24 lsls r0, 24 cmp r4, r0 @@ -53287,7 +53287,7 @@ sub_80E42B0: @ 80E42B0 lsls r0, 24 lsrs r0, 24 ldr r2, _080E42C8 @ =gBattleAnimEnemyMonIndex - ldr r1, _080E42CC @ =gEnemyMonIndex + ldr r1, _080E42CC @ =gBankTarget ldrb r1, [r1] strb r1, [r2] bl DestroyAnimVisualTask @@ -53295,7 +53295,7 @@ sub_80E42B0: @ 80E42B0 bx r0 .align 2, 0 _080E42C8: .4byte gBattleAnimEnemyMonIndex -_080E42CC: .4byte gEnemyMonIndex +_080E42CC: .4byte gBankTarget thumb_func_end sub_80E42B0 thumb_func_start sub_80E42D0 @@ -53304,11 +53304,11 @@ sub_80E42D0: @ 80E42D0 lsls r0, 24 lsrs r0, 24 ldr r2, _080E42F0 @ =gBattleAnimPlayerMonIndex - ldr r1, _080E42F4 @ =gPlayerMonIndex + ldr r1, _080E42F4 @ =gBankAttacker ldrb r1, [r1] strb r1, [r2] ldr r2, _080E42F8 @ =gBattleAnimEnemyMonIndex - ldr r1, _080E42FC @ =gUnknown_02024C0A + ldr r1, _080E42FC @ =gEffectBank ldrb r1, [r1] strb r1, [r2] bl DestroyAnimVisualTask @@ -53316,9 +53316,9 @@ sub_80E42D0: @ 80E42D0 bx r0 .align 2, 0 _080E42F0: .4byte gBattleAnimPlayerMonIndex -_080E42F4: .4byte gPlayerMonIndex +_080E42F4: .4byte gBankAttacker _080E42F8: .4byte gBattleAnimEnemyMonIndex -_080E42FC: .4byte gUnknown_02024C0A +_080E42FC: .4byte gEffectBank thumb_func_end sub_80E42D0 thumb_func_start sub_80E4300 @@ -54884,7 +54884,7 @@ sub_80E4EF8: @ 80E4EF8 lsls r5, 24 lsrs r5, 24 adds r0, r4, 0 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 ldr r2, _080E4FCC @ =0x040000d4 diff --git a/asm/battle_anim_81258BC.s b/asm/battle_anim_81258BC.s index 86abad6f3..f2f127690 100644 --- a/asm/battle_anim_81258BC.s +++ b/asm/battle_anim_81258BC.s @@ -451,11 +451,11 @@ _0812B21A: _0812B230: .4byte gBattleAnimEnemyMonIndex _0812B234: adds r0, r4, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0812B258 - ldr r1, _0812B250 @ =gUnknown_02024A6A + ldr r1, _0812B250 @ =gBattlePartyID lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] @@ -464,10 +464,10 @@ _0812B234: ldr r1, _0812B254 @ =gEnemyParty b _0812B266 .align 2, 0 -_0812B250: .4byte gUnknown_02024A6A +_0812B250: .4byte gBattlePartyID _0812B254: .4byte gEnemyParty _0812B258: - ldr r1, _0812B290 @ =gUnknown_02024A6A + ldr r1, _0812B290 @ =gBattlePartyID lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] @@ -495,7 +495,7 @@ _0812B272: bl PlayCry1 b _0812B2AA .align 2, 0 -_0812B290: .4byte gUnknown_02024A6A +_0812B290: .4byte gBattlePartyID _0812B294: .4byte gPlayerParty _0812B298: .4byte gBattleAnimArgs _0812B29C: @@ -734,28 +734,28 @@ unref_sub_812B464: @ 812B464 bx lr thumb_func_end unref_sub_812B464 - thumb_func_start sub_812B468 -sub_812B468: @ 812B468 - ldr r1, _0812B478 @ =gUnknown_03004330 - ldr r0, _0812B47C @ =gUnknown_02024A60 + thumb_func_start SetBankFuncToSafariBufferRunCommand +SetBankFuncToSafariBufferRunCommand: @ 812B468 + ldr r1, _0812B478 @ =gBattleBankFunc + ldr r0, _0812B47C @ =gActiveBank ldrb r0, [r0] lsls r0, 2 adds r0, r1 - ldr r1, _0812B480 @ =sub_812B484 + ldr r1, _0812B480 @ =SafariBufferRunCommand str r1, [r0] bx lr .align 2, 0 -_0812B478: .4byte gUnknown_03004330 -_0812B47C: .4byte gUnknown_02024A60 -_0812B480: .4byte sub_812B484 - thumb_func_end sub_812B468 +_0812B478: .4byte gBattleBankFunc +_0812B47C: .4byte gActiveBank +_0812B480: .4byte SafariBufferRunCommand + thumb_func_end SetBankFuncToSafariBufferRunCommand - thumb_func_start sub_812B484 -sub_812B484: @ 812B484 + thumb_func_start SafariBufferRunCommand +SafariBufferRunCommand: @ 812B484 push {lr} - ldr r2, _0812B4B8 @ =gUnknown_02024A64 + ldr r2, _0812B4B8 @ =gBattleExecBuffer ldr r1, _0812B4BC @ =gBitTable - ldr r0, _0812B4C0 @ =gUnknown_02024A60 + ldr r0, _0812B4C0 @ =gActiveBank ldrb r3, [r0] lsls r0, r3, 2 adds r0, r1 @@ -764,13 +764,13 @@ sub_812B484: @ 812B484 ands r1, r0 cmp r1, 0 beq _0812B4D0 - ldr r0, _0812B4C4 @ =gUnknown_02023A60 + ldr r0, _0812B4C4 @ =gBattleBufferA lsls r1, r3, 9 adds r1, r0 ldrb r0, [r1] cmp r0, 0x38 bhi _0812B4CC - ldr r0, _0812B4C8 @ =gUnknown_08402080 + ldr r0, _0812B4C8 @ =gSafariBufferCommands ldrb r1, [r1] lsls r1, 2 adds r1, r0 @@ -778,17 +778,17 @@ sub_812B484: @ 812B484 bl _call_via_r0 b _0812B4D0 .align 2, 0 -_0812B4B8: .4byte gUnknown_02024A64 +_0812B4B8: .4byte gBattleExecBuffer _0812B4BC: .4byte gBitTable -_0812B4C0: .4byte gUnknown_02024A60 -_0812B4C4: .4byte gUnknown_02023A60 -_0812B4C8: .4byte gUnknown_08402080 +_0812B4C0: .4byte gActiveBank +_0812B4C4: .4byte gBattleBufferA +_0812B4C8: .4byte gSafariBufferCommands _0812B4CC: - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted _0812B4D0: pop {r0} bx r0 - thumb_func_end sub_812B484 + thumb_func_end SafariBufferRunCommand thumb_func_start bx_battle_menu_t6_2 bx_battle_menu_t6_2: @ 812B4D4 @@ -802,9 +802,9 @@ bx_battle_menu_t6_2: @ 812B4D4 beq _0812B546 movs r0, 0x5 bl PlaySE - bl sub_814A7FC - ldr r1, _0812B50C @ =gUnknown_02024E60 - ldr r0, _0812B510 @ =gUnknown_02024A60 + bl DestroyMenuCursor + ldr r1, _0812B50C @ =gActionSelectionCursor + ldr r0, _0812B510 @ =gActiveBank ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -817,8 +817,8 @@ bx_battle_menu_t6_2: @ 812B4D4 b _0812B540 .align 2, 0 _0812B508: .4byte gMain -_0812B50C: .4byte gUnknown_02024E60 -_0812B510: .4byte gUnknown_02024A60 +_0812B50C: .4byte gActionSelectionCursor +_0812B510: .4byte gActiveBank _0812B514: cmp r0, 0x2 beq _0812B52A @@ -846,15 +846,15 @@ _0812B536: movs r2, 0 bl dp01_build_cmdbuf_x21_a_bb _0812B540: - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted b _0812B64E _0812B546: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0812B584 - ldr r5, _0812B57C @ =gUnknown_02024E60 - ldr r4, _0812B580 @ =gUnknown_02024A60 + ldr r5, _0812B57C @ =gActionSelectionCursor + ldr r4, _0812B580 @ =gActiveBank ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] @@ -874,15 +874,15 @@ _0812B546: movs r2, 0x1 b _0812B5F2 .align 2, 0 -_0812B57C: .4byte gUnknown_02024E60 -_0812B580: .4byte gUnknown_02024A60 +_0812B57C: .4byte gActionSelectionCursor +_0812B580: .4byte gActiveBank _0812B584: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0812B5C0 - ldr r5, _0812B5B8 @ =gUnknown_02024E60 - ldr r4, _0812B5BC @ =gUnknown_02024A60 + ldr r5, _0812B5B8 @ =gActionSelectionCursor + ldr r4, _0812B5BC @ =gActiveBank ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] @@ -902,15 +902,15 @@ _0812B584: movs r2, 0x1 b _0812B5F2 .align 2, 0 -_0812B5B8: .4byte gUnknown_02024E60 -_0812B5BC: .4byte gUnknown_02024A60 +_0812B5B8: .4byte gActionSelectionCursor +_0812B5BC: .4byte gActiveBank _0812B5C0: movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0812B60C - ldr r5, _0812B604 @ =gUnknown_02024E60 - ldr r4, _0812B608 @ =gUnknown_02024A60 + ldr r5, _0812B604 @ =gActionSelectionCursor + ldr r4, _0812B608 @ =gActiveBank ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] @@ -938,15 +938,15 @@ _0812B5F2: bl sub_802E3E4 b _0812B64E .align 2, 0 -_0812B604: .4byte gUnknown_02024E60 -_0812B608: .4byte gUnknown_02024A60 +_0812B604: .4byte gActionSelectionCursor +_0812B608: .4byte gActiveBank _0812B60C: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0812B64E - ldr r5, _0812B654 @ =gUnknown_02024E60 - ldr r4, _0812B658 @ =gUnknown_02024A60 + ldr r5, _0812B654 @ =gActionSelectionCursor + ldr r4, _0812B658 @ =gActiveBank ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] @@ -976,16 +976,16 @@ _0812B64E: pop {r0} bx r0 .align 2, 0 -_0812B654: .4byte gUnknown_02024E60 -_0812B658: .4byte gUnknown_02024A60 +_0812B654: .4byte gActionSelectionCursor +_0812B658: .4byte gActiveBank thumb_func_end bx_battle_menu_t6_2 thumb_func_start sub_812B65C sub_812B65C: @ 812B65C push {lr} ldr r2, _0812B684 @ =gSprites - ldr r1, _0812B688 @ =gUnknown_02024BE0 - ldr r0, _0812B68C @ =gUnknown_02024A60 + ldr r1, _0812B688 @ =gObjectBankIDs + ldr r0, _0812B68C @ =gActiveBank ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -998,14 +998,14 @@ sub_812B65C: @ 812B65C ldr r0, _0812B690 @ =SpriteCallbackDummy cmp r1, r0 bne _0812B680 - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted _0812B680: pop {r0} bx r0 .align 2, 0 _0812B684: .4byte gSprites -_0812B688: .4byte gUnknown_02024BE0 -_0812B68C: .4byte gUnknown_02024A60 +_0812B688: .4byte gObjectBankIDs +_0812B68C: .4byte gActiveBank _0812B690: .4byte SpriteCallbackDummy thumb_func_end sub_812B65C @@ -1016,7 +1016,7 @@ sub_812B694: @ 812B694 ldrh r0, [r0, 0x16] cmp r0, 0 bne _0812B6A2 - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted _0812B6A2: pop {r0} bx r0 @@ -1041,7 +1041,7 @@ sub_812B6AC: @ 812B6AC negs r0, r0 ands r0, r1 strb r0, [r3] - ldr r0, _0812B6E8 @ =gUnknown_030042D0 + ldr r0, _0812B6E8 @ =gPreBattleCallback1 ldr r0, [r0] str r0, [r2] ldr r0, [r2, 0x8] @@ -1053,17 +1053,17 @@ _0812B6D6: _0812B6DC: .4byte gPaletteFade _0812B6E0: .4byte gMain _0812B6E4: .4byte 0x0000043d -_0812B6E8: .4byte gUnknown_030042D0 +_0812B6E8: .4byte gPreBattleCallback1 thumb_func_end sub_812B6AC thumb_func_start bx_wait_t6 bx_wait_t6: @ 812B6EC push {lr} - ldr r0, _0812B718 @ =gUnknown_02024E6D + ldr r0, _0812B718 @ =gDoingBattleAnim ldrb r0, [r0] cmp r0, 0 beq _0812B70E - ldr r0, _0812B71C @ =gUnknown_02024A60 + ldr r0, _0812B71C @ =gActiveBank ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -1076,13 +1076,13 @@ bx_wait_t6: @ 812B6EC cmp r0, 0 bne _0812B712 _0812B70E: - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted _0812B712: pop {r0} bx r0 .align 2, 0 -_0812B718: .4byte gUnknown_02024E6D -_0812B71C: .4byte gUnknown_02024A60 +_0812B718: .4byte gDoingBattleAnim +_0812B71C: .4byte gActiveBank _0812B720: .4byte 0x02017810 thumb_func_end bx_wait_t6 @@ -1095,8 +1095,8 @@ sub_812B724: @ 812B724 ands r0, r1 cmp r0, 0 bne _0812B744 - ldr r1, _0812B74C @ =gUnknown_03004330 - ldr r0, _0812B750 @ =gUnknown_02024A60 + ldr r1, _0812B74C @ =gBattleBankFunc + ldr r0, _0812B750 @ =gActiveBank ldrb r0, [r0] lsls r0, 2 adds r0, r1 @@ -1108,8 +1108,8 @@ _0812B744: bx r0 .align 2, 0 _0812B748: .4byte gPaletteFade -_0812B74C: .4byte gUnknown_03004330 -_0812B750: .4byte gUnknown_02024A60 +_0812B74C: .4byte gBattleBankFunc +_0812B750: .4byte gActiveBank _0812B754: .4byte sub_812B758 thumb_func_end sub_812B724 @@ -1131,7 +1131,7 @@ sub_812B758: @ 812B758 ldrh r1, [r0] movs r0, 0x1 bl dp01_build_cmdbuf_x23_aa_0 - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted _0812B77E: pop {r0} bx r0 @@ -1145,7 +1145,7 @@ _0812B790: .4byte gScriptItemId thumb_func_start sub_812B794 sub_812B794: @ 812B794 push {lr} - ldr r0, _0812B7B8 @ =gUnknown_02024A60 + ldr r0, _0812B7B8 @ =gActiveBank ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -1157,25 +1157,25 @@ sub_812B794: @ 812B794 ands r0, r1 cmp r0, 0 bne _0812B7B2 - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted _0812B7B2: pop {r0} bx r0 .align 2, 0 -_0812B7B8: .4byte gUnknown_02024A60 +_0812B7B8: .4byte gActiveBank _0812B7BC: .4byte 0x02017810 thumb_func_end sub_812B794 - thumb_func_start dp01_tbl6_exec_completed -dp01_tbl6_exec_completed: @ 812B7C0 + thumb_func_start SafariBufferExecCompleted +SafariBufferExecCompleted: @ 812B7C0 push {r4,lr} sub sp, 0x4 - ldr r1, _0812B800 @ =gUnknown_03004330 - ldr r4, _0812B804 @ =gUnknown_02024A60 + ldr r1, _0812B800 @ =gBattleBankFunc + ldr r4, _0812B804 @ =gActiveBank ldrb r0, [r4] lsls r0, 2 adds r0, r1 - ldr r1, _0812B808 @ =sub_812B484 + ldr r1, _0812B808 @ =SafariBufferRunCommand str r1, [r0] ldr r0, _0812B80C @ =gBattleTypeFlags ldrh r1, [r0] @@ -1190,7 +1190,7 @@ dp01_tbl6_exec_completed: @ 812B7C0 movs r1, 0x4 mov r2, sp bl dp01_prepare_buffer_wireless_probably - ldr r1, _0812B810 @ =gUnknown_02023A60 + ldr r1, _0812B810 @ =gBattleBufferA ldrb r0, [r4] lsls r0, 9 adds r0, r1 @@ -1198,13 +1198,13 @@ dp01_tbl6_exec_completed: @ 812B7C0 strb r1, [r0] b _0812B826 .align 2, 0 -_0812B800: .4byte gUnknown_03004330 -_0812B804: .4byte gUnknown_02024A60 -_0812B808: .4byte sub_812B484 +_0812B800: .4byte gBattleBankFunc +_0812B804: .4byte gActiveBank +_0812B808: .4byte SafariBufferRunCommand _0812B80C: .4byte gBattleTypeFlags -_0812B810: .4byte gUnknown_02023A60 +_0812B810: .4byte gBattleBufferA _0812B814: - ldr r2, _0812B830 @ =gUnknown_02024A64 + ldr r2, _0812B830 @ =gBattleExecBuffer ldr r1, _0812B834 @ =gBitTable ldrb r0, [r4] lsls r0, 2 @@ -1219,14 +1219,14 @@ _0812B826: pop {r0} bx r0 .align 2, 0 -_0812B830: .4byte gUnknown_02024A64 +_0812B830: .4byte gBattleExecBuffer _0812B834: .4byte gBitTable - thumb_func_end dp01_tbl6_exec_completed + thumb_func_end SafariBufferExecCompleted thumb_func_start unref_sub_812B838 unref_sub_812B838: @ 812B838 push {lr} - ldr r0, _0812B85C @ =gUnknown_02024A60 + ldr r0, _0812B85C @ =gActiveBank ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -1238,27 +1238,27 @@ unref_sub_812B838: @ 812B838 ands r0, r1 cmp r0, 0 bne _0812B856 - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted _0812B856: pop {r0} bx r0 .align 2, 0 -_0812B85C: .4byte gUnknown_02024A60 +_0812B85C: .4byte gActiveBank _0812B860: .4byte 0x02017810 thumb_func_end unref_sub_812B838 - thumb_func_start sub_812B864 -sub_812B864: @ 812B864 + thumb_func_start SafariHandleGetAttributes +SafariHandleGetAttributes: @ 812B864 push {lr} - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 - thumb_func_end sub_812B864 + thumb_func_end SafariHandleGetAttributes thumb_func_start sub_812B870 sub_812B870: @ 812B870 push {lr} - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_812B870 @@ -1266,7 +1266,7 @@ sub_812B870: @ 812B870 thumb_func_start sub_812B87C sub_812B87C: @ 812B87C push {lr} - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_812B87C @@ -1274,7 +1274,7 @@ sub_812B87C: @ 812B87C thumb_func_start sub_812B888 sub_812B888: @ 812B888 push {lr} - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_812B888 @@ -1282,7 +1282,7 @@ sub_812B888: @ 812B888 thumb_func_start sub_812B894 sub_812B894: @ 812B894 push {lr} - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_812B894 @@ -1290,7 +1290,7 @@ sub_812B894: @ 812B894 thumb_func_start sub_812B8A0 sub_812B8A0: @ 812B8A0 push {lr} - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_812B8A0 @@ -1298,7 +1298,7 @@ sub_812B8A0: @ 812B8A0 thumb_func_start sub_812B8AC sub_812B8AC: @ 812B8AC push {lr} - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_812B8AC @@ -1308,12 +1308,12 @@ sub_812B8B8: @ 812B8B8 push {r4-r6,lr} ldr r4, _0812B96C @ =gSaveBlock2 ldrb r0, [r4, 0x8] - ldr r5, _0812B970 @ =gUnknown_02024A60 + ldr r5, _0812B970 @ =gActiveBank ldrb r1, [r5] bl sub_8031AF4 ldrb r6, [r4, 0x8] ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -1335,7 +1335,7 @@ sub_812B8B8: @ 812B8B8 movs r1, 0x50 movs r3, 0x1E bl CreateSprite - ldr r6, _0812B97C @ =gUnknown_02024BE0 + ldr r6, _0812B97C @ =gObjectBankIDs ldrb r1, [r5] adds r1, r6 strb r0, [r1] @@ -1381,7 +1381,7 @@ sub_812B8B8: @ 812B8B8 adds r0, r4 ldr r1, _0812B988 @ =sub_80313A0 str r1, [r0] - ldr r1, _0812B98C @ =gUnknown_03004330 + ldr r1, _0812B98C @ =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 adds r0, r1 @@ -1392,21 +1392,21 @@ sub_812B8B8: @ 812B8B8 bx r0 .align 2, 0 _0812B96C: .4byte gSaveBlock2 -_0812B970: .4byte gUnknown_02024A60 +_0812B970: .4byte gActiveBank _0812B974: .4byte gUnknown_02024E8C _0812B978: .4byte gTrainerBackPicCoords -_0812B97C: .4byte gUnknown_02024BE0 +_0812B97C: .4byte gObjectBankIDs _0812B980: .4byte gSprites _0812B984: .4byte 0x0000fffe _0812B988: .4byte sub_80313A0 -_0812B98C: .4byte gUnknown_03004330 +_0812B98C: .4byte gBattleBankFunc _0812B990: .4byte sub_812B65C thumb_func_end sub_812B8B8 thumb_func_start sub_812B994 sub_812B994: @ 812B994 push {lr} - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_812B994 @@ -1414,7 +1414,7 @@ sub_812B994: @ 812B994 thumb_func_start sub_812B9A0 sub_812B9A0: @ 812B9A0 push {lr} - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_812B9A0 @@ -1422,7 +1422,7 @@ sub_812B9A0: @ 812B9A0 thumb_func_start sub_812B9AC sub_812B9AC: @ 812B9AC push {lr} - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_812B9AC @@ -1430,7 +1430,7 @@ sub_812B9AC: @ 812B9AC thumb_func_start sub_812B9B8 sub_812B9B8: @ 812B9B8 push {lr} - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_812B9B8 @@ -1441,13 +1441,13 @@ sub_812B9C4: @ 812B9C4 ldr r1, _0812BA00 @ =0x02017840 movs r0, 0x4 strb r0, [r1, 0x8] - ldr r1, _0812BA04 @ =gUnknown_02024E6D + ldr r1, _0812BA04 @ =gDoingBattleAnim movs r0, 0x1 strb r0, [r1] - ldr r5, _0812BA08 @ =gUnknown_02024A60 + ldr r5, _0812BA08 @ =gActiveBank ldrb r4, [r5] movs r0, 0x1 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 @@ -1455,7 +1455,7 @@ sub_812B9C4: @ 812B9C4 adds r1, r4, 0 movs r3, 0x4 bl move_anim_start_t4 - ldr r1, _0812BA0C @ =gUnknown_03004330 + ldr r1, _0812BA0C @ =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 adds r0, r1 @@ -1466,17 +1466,17 @@ sub_812B9C4: @ 812B9C4 bx r0 .align 2, 0 _0812BA00: .4byte 0x02017840 -_0812BA04: .4byte gUnknown_02024E6D -_0812BA08: .4byte gUnknown_02024A60 -_0812BA0C: .4byte gUnknown_03004330 +_0812BA04: .4byte gDoingBattleAnim +_0812BA08: .4byte gActiveBank +_0812BA0C: .4byte gBattleBankFunc _0812BA10: .4byte bx_wait_t6 thumb_func_end sub_812B9C4 thumb_func_start sub_812BA14 sub_812BA14: @ 812BA14 push {r4,r5,lr} - ldr r1, _0812BA58 @ =gUnknown_02023A60 - ldr r5, _0812BA5C @ =gUnknown_02024A60 + ldr r1, _0812BA58 @ =gBattleBufferA + ldr r5, _0812BA5C @ =gActiveBank ldrb r0, [r5] lsls r0, 9 adds r1, 0x1 @@ -1484,12 +1484,12 @@ sub_812BA14: @ 812BA14 ldrb r1, [r0] ldr r0, _0812BA60 @ =0x02017840 strb r1, [r0, 0x8] - ldr r1, _0812BA64 @ =gUnknown_02024E6D + ldr r1, _0812BA64 @ =gDoingBattleAnim movs r0, 0x1 strb r0, [r1] ldrb r4, [r5] movs r0, 0x1 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 @@ -1497,7 +1497,7 @@ sub_812BA14: @ 812BA14 adds r1, r4, 0 movs r3, 0x4 bl move_anim_start_t4 - ldr r1, _0812BA68 @ =gUnknown_03004330 + ldr r1, _0812BA68 @ =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 adds r0, r1 @@ -1507,18 +1507,18 @@ sub_812BA14: @ 812BA14 pop {r0} bx r0 .align 2, 0 -_0812BA58: .4byte gUnknown_02023A60 -_0812BA5C: .4byte gUnknown_02024A60 +_0812BA58: .4byte gBattleBufferA +_0812BA5C: .4byte gActiveBank _0812BA60: .4byte 0x02017840 -_0812BA64: .4byte gUnknown_02024E6D -_0812BA68: .4byte gUnknown_03004330 +_0812BA64: .4byte gDoingBattleAnim +_0812BA68: .4byte gBattleBankFunc _0812BA6C: .4byte bx_wait_t6 thumb_func_end sub_812BA14 thumb_func_start sub_812BA70 sub_812BA70: @ 812BA70 push {lr} - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_812BA70 @@ -1526,13 +1526,13 @@ sub_812BA70: @ 812BA70 thumb_func_start sub_812BA7C sub_812BA7C: @ 812BA7C push {lr} - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_812BA7C - thumb_func_start dp01t_10_6_message -dp01t_10_6_message: @ 812BA88 + thumb_func_start SafariHandlePrintString +SafariHandlePrintString: @ 812BA88 push {r4,lr} sub sp, 0x4 ldr r0, _0812BACC @ =gUnknown_030042A4 @@ -1540,21 +1540,21 @@ dp01t_10_6_message: @ 812BA88 strh r1, [r0] ldr r0, _0812BAD0 @ =gUnknown_030042A0 strh r1, [r0] - ldr r4, _0812BAD4 @ =gUnknown_02024A60 + ldr r4, _0812BAD4 @ =gActiveBank ldrb r0, [r4] lsls r0, 9 ldr r1, _0812BAD8 @ =gUnknown_02023A62 adds r0, r1 ldrh r0, [r0] - bl sub_8120AA8 + bl BufferStringBattle ldr r0, _0812BADC @ =gUnknown_03004210 - ldr r1, _0812BAE0 @ =gUnknown_020238CC + ldr r1, _0812BAE0 @ =gDisplayedStringBattle movs r2, 0xF str r2, [sp] movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 - ldr r1, _0812BAE4 @ =gUnknown_03004330 + ldr r1, _0812BAE4 @ =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 adds r0, r1 @@ -1567,40 +1567,40 @@ dp01t_10_6_message: @ 812BA88 .align 2, 0 _0812BACC: .4byte gUnknown_030042A4 _0812BAD0: .4byte gUnknown_030042A0 -_0812BAD4: .4byte gUnknown_02024A60 +_0812BAD4: .4byte gActiveBank _0812BAD8: .4byte gUnknown_02023A62 _0812BADC: .4byte gUnknown_03004210 -_0812BAE0: .4byte gUnknown_020238CC -_0812BAE4: .4byte gUnknown_03004330 +_0812BAE0: .4byte gDisplayedStringBattle +_0812BAE4: .4byte gBattleBankFunc _0812BAE8: .4byte sub_812B694 - thumb_func_end dp01t_10_6_message + thumb_func_end SafariHandlePrintString - thumb_func_start dp01t_11_6_message_for_player_only -dp01t_11_6_message_for_player_only: @ 812BAEC + thumb_func_start SafariHandlePrintStringPlayerOnly +SafariHandlePrintStringPlayerOnly: @ 812BAEC push {lr} - ldr r0, _0812BB04 @ =gUnknown_02024A60 + ldr r0, _0812BB04 @ =gActiveBank ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0812BB08 - bl dp01t_10_6_message + bl SafariHandlePrintString b _0812BB0C .align 2, 0 -_0812BB04: .4byte gUnknown_02024A60 +_0812BB04: .4byte gActiveBank _0812BB08: - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted _0812BB0C: pop {r0} bx r0 - thumb_func_end dp01t_11_6_message_for_player_only + thumb_func_end SafariHandlePrintStringPlayerOnly .section .text_812BBFC thumb_func_start sub_812BBFC sub_812BBFC: @ 812BBFC push {lr} - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_812BBFC @@ -1608,7 +1608,7 @@ sub_812BBFC: @ 812BBFC thumb_func_start sub_812BC08 sub_812BC08: @ 812BC08 push {lr} - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_812BC08 @@ -1624,30 +1624,30 @@ sub_812BC14: @ 812BC14 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade - ldr r1, _0812BC44 @ =gUnknown_03004330 - ldr r2, _0812BC48 @ =gUnknown_02024A60 + ldr r1, _0812BC44 @ =gBattleBankFunc + ldr r2, _0812BC48 @ =gActiveBank ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, _0812BC4C @ =sub_812B724 str r1, [r0] - ldr r1, _0812BC50 @ =gUnknown_02024E6C + ldr r1, _0812BC50 @ =gBankInMenu ldrb r0, [r2] strb r0, [r1] add sp, 0x4 pop {r0} bx r0 .align 2, 0 -_0812BC44: .4byte gUnknown_03004330 -_0812BC48: .4byte gUnknown_02024A60 +_0812BC44: .4byte gBattleBankFunc +_0812BC48: .4byte gActiveBank _0812BC4C: .4byte sub_812B724 -_0812BC50: .4byte gUnknown_02024E6C +_0812BC50: .4byte gBankInMenu thumb_func_end sub_812BC14 thumb_func_start sub_812BC54 sub_812BC54: @ 812BC54 push {lr} - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_812BC54 @@ -1655,7 +1655,7 @@ sub_812BC54: @ 812BC54 thumb_func_start sub_812BC60 sub_812BC60: @ 812BC60 push {lr} - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_812BC60 @@ -1663,7 +1663,7 @@ sub_812BC60: @ 812BC60 thumb_func_start sub_812BC6C sub_812BC6C: @ 812BC6C push {lr} - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_812BC6C @@ -1671,7 +1671,7 @@ sub_812BC6C: @ 812BC6C thumb_func_start sub_812BC78 sub_812BC78: @ 812BC78 push {lr} - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_812BC78 @@ -1679,12 +1679,12 @@ sub_812BC78: @ 812BC78 thumb_func_start sub_812BC84 sub_812BC84: @ 812BC84 push {lr} - ldr r0, _0812BCB0 @ =gUnknown_03004340 - ldr r1, _0812BCB4 @ =gUnknown_02024A60 + ldr r0, _0812BCB0 @ =gHealthboxIDs + ldr r1, _0812BCB4 @ =gActiveBank ldrb r1, [r1] adds r0, r1, r0 ldrb r0, [r0] - ldr r2, _0812BCB8 @ =gUnknown_02024A6A + ldr r2, _0812BCB8 @ =gBattlePartyID lsls r1, 1 adds r1, r2 ldrh r2, [r1] @@ -1694,20 +1694,20 @@ sub_812BC84: @ 812BC84 adds r1, r2 movs r2, 0xB bl sub_8045A5C - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 .align 2, 0 -_0812BCB0: .4byte gUnknown_03004340 -_0812BCB4: .4byte gUnknown_02024A60 -_0812BCB8: .4byte gUnknown_02024A6A +_0812BCB0: .4byte gHealthboxIDs +_0812BCB4: .4byte gActiveBank +_0812BCB8: .4byte gBattlePartyID _0812BCBC: .4byte gPlayerParty thumb_func_end sub_812BC84 thumb_func_start sub_812BCC0 sub_812BCC0: @ 812BCC0 push {lr} - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_812BCC0 @@ -1715,7 +1715,7 @@ sub_812BCC0: @ 812BCC0 thumb_func_start sub_812BCCC sub_812BCCC: @ 812BCCC push {lr} - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_812BCCC @@ -1723,7 +1723,7 @@ sub_812BCCC: @ 812BCCC thumb_func_start sub_812BCD8 sub_812BCD8: @ 812BCD8 push {lr} - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_812BCD8 @@ -1731,7 +1731,7 @@ sub_812BCD8: @ 812BCD8 thumb_func_start sub_812BCE4 sub_812BCE4: @ 812BCE4 push {lr} - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_812BCE4 @@ -1739,7 +1739,7 @@ sub_812BCE4: @ 812BCE4 thumb_func_start sub_812BCF0 sub_812BCF0: @ 812BCF0 push {lr} - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_812BCF0 @@ -1747,7 +1747,7 @@ sub_812BCF0: @ 812BCF0 thumb_func_start sub_812BCFC sub_812BCFC: @ 812BCFC push {lr} - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_812BCFC @@ -1755,7 +1755,7 @@ sub_812BCFC: @ 812BCFC thumb_func_start sub_812BD08 sub_812BD08: @ 812BD08 push {lr} - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_812BD08 @@ -1763,7 +1763,7 @@ sub_812BD08: @ 812BD08 thumb_func_start sub_812BD14 sub_812BD14: @ 812BD14 push {lr} - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_812BD14 @@ -1771,7 +1771,7 @@ sub_812BD14: @ 812BD14 thumb_func_start sub_812BD20 sub_812BD20: @ 812BD20 push {lr} - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_812BD20 @@ -1779,7 +1779,7 @@ sub_812BD20: @ 812BD20 thumb_func_start sub_812BD2C sub_812BD2C: @ 812BD2C push {lr} - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_812BD2C @@ -1787,7 +1787,7 @@ sub_812BD2C: @ 812BD2C thumb_func_start sub_812BD38 sub_812BD38: @ 812BD38 push {lr} - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_812BD38 @@ -1795,7 +1795,7 @@ sub_812BD38: @ 812BD38 thumb_func_start sub_812BD44 sub_812BD44: @ 812BD44 push {lr} - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_812BD44 @@ -1803,7 +1803,7 @@ sub_812BD44: @ 812BD44 thumb_func_start sub_812BD50 sub_812BD50: @ 812BD50 push {lr} - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_812BD50 @@ -1811,7 +1811,7 @@ sub_812BD50: @ 812BD50 thumb_func_start sub_812BD5C sub_812BD5C: @ 812BD5C push {lr} - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_812BD5C @@ -1819,7 +1819,7 @@ sub_812BD5C: @ 812BD5C thumb_func_start sub_812BD68 sub_812BD68: @ 812BD68 push {lr} - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_812BD68 @@ -1827,7 +1827,7 @@ sub_812BD68: @ 812BD68 thumb_func_start sub_812BD74 sub_812BD74: @ 812BD74 push {lr} - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_812BD74 @@ -1835,16 +1835,16 @@ sub_812BD74: @ 812BD74 thumb_func_start sub_812BD80 sub_812BD80: @ 812BD80 push {r4,lr} - ldr r4, _0812BDBC @ =gUnknown_02024A60 + ldr r4, _0812BDBC @ =gActiveBank ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 movs r3, 0x3F cmp r0, 0 bne _0812BD94 movs r3, 0xC0 _0812BD94: - ldr r2, _0812BDC0 @ =gUnknown_02023A60 + ldr r2, _0812BDC0 @ =gBattleBufferA ldrb r1, [r4] lsls r1, 9 adds r0, r2, 0x1 @@ -1858,20 +1858,20 @@ _0812BD94: lsls r1, r3, 24 asrs r1, 24 bl PlaySE12WithPanning - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r4} pop {r0} bx r0 .align 2, 0 -_0812BDBC: .4byte gUnknown_02024A60 -_0812BDC0: .4byte gUnknown_02023A60 +_0812BDBC: .4byte gActiveBank +_0812BDC0: .4byte gBattleBufferA thumb_func_end sub_812BD80 thumb_func_start sub_812BDC4 sub_812BDC4: @ 812BDC4 push {lr} - ldr r2, _0812BDEC @ =gUnknown_02023A60 - ldr r0, _0812BDF0 @ =gUnknown_02024A60 + ldr r2, _0812BDEC @ =gBattleBufferA + ldr r0, _0812BDF0 @ =gActiveBank ldrb r1, [r0] lsls r1, 9 adds r0, r2, 0x1 @@ -1883,19 +1883,19 @@ sub_812BDC4: @ 812BDC4 lsls r1, 8 orrs r0, r1 bl PlayFanfare - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 .align 2, 0 -_0812BDEC: .4byte gUnknown_02023A60 -_0812BDF0: .4byte gUnknown_02024A60 +_0812BDEC: .4byte gBattleBufferA +_0812BDF0: .4byte gActiveBank thumb_func_end sub_812BDC4 thumb_func_start sub_812BDF4 sub_812BDF4: @ 812BDF4 push {lr} - ldr r1, _0812BE24 @ =gUnknown_02024A6A - ldr r0, _0812BE28 @ =gUnknown_02024A60 + ldr r1, _0812BE24 @ =gBattlePartyID + ldr r0, _0812BE28 @ =gActiveBank ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -1910,20 +1910,20 @@ sub_812BDF4: @ 812BDF4 lsrs r0, 16 movs r1, 0x19 bl PlayCry1 - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 .align 2, 0 -_0812BE24: .4byte gUnknown_02024A6A -_0812BE28: .4byte gUnknown_02024A60 +_0812BE24: .4byte gBattlePartyID +_0812BE28: .4byte gActiveBank _0812BE2C: .4byte gPlayerParty thumb_func_end sub_812BDF4 thumb_func_start dp01t_2E_6_battle_intro dp01t_2E_6_battle_intro: @ 812BE30 push {lr} - ldr r1, _0812BE58 @ =gUnknown_02023A60 - ldr r0, _0812BE5C @ =gUnknown_02024A60 + ldr r1, _0812BE58 @ =gBattleBufferA + ldr r0, _0812BE5C @ =gActiveBank ldrb r0, [r0] lsls r0, 9 adds r1, 0x1 @@ -1935,24 +1935,24 @@ dp01t_2E_6_battle_intro: @ 812BE30 movs r1, 0x1 orrs r0, r1 strh r0, [r2] - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 .align 2, 0 -_0812BE58: .4byte gUnknown_02023A60 -_0812BE5C: .4byte gUnknown_02024A60 +_0812BE58: .4byte gBattleBufferA +_0812BE5C: .4byte gActiveBank _0812BE60: .4byte gUnknown_02024DE8 thumb_func_end dp01t_2E_6_battle_intro thumb_func_start sub_812BE64 sub_812BE64: @ 812BE64 push {r4,r5,lr} - ldr r5, _0812BEA0 @ =gUnknown_03004340 - ldr r4, _0812BEA4 @ =gUnknown_02024A60 + ldr r5, _0812BEA0 @ =gHealthboxIDs + ldr r4, _0812BEA4 @ =gActiveBank ldrb r1, [r4] adds r0, r1, r5 ldrb r0, [r0] - ldr r2, _0812BEA8 @ =gUnknown_02024A6A + ldr r2, _0812BEA8 @ =gBattlePartyID lsls r1, 1 adds r1, r2 ldrh r2, [r1] @@ -1968,21 +1968,21 @@ sub_812BE64: @ 812BE64 adds r0, r5 ldrb r0, [r0] bl sub_8043DFC - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r4,r5} pop {r0} bx r0 .align 2, 0 -_0812BEA0: .4byte gUnknown_03004340 -_0812BEA4: .4byte gUnknown_02024A60 -_0812BEA8: .4byte gUnknown_02024A6A +_0812BEA0: .4byte gHealthboxIDs +_0812BEA4: .4byte gActiveBank +_0812BEA8: .4byte gBattlePartyID _0812BEAC: .4byte gPlayerParty thumb_func_end sub_812BE64 thumb_func_start sub_812BEB0 sub_812BEB0: @ 812BEB0 push {lr} - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_812BEB0 @@ -1990,7 +1990,7 @@ sub_812BEB0: @ 812BEB0 thumb_func_start sub_812BEBC sub_812BEBC: @ 812BEBC push {lr} - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_812BEBC @@ -1998,7 +1998,7 @@ sub_812BEBC: @ 812BEBC thumb_func_start sub_812BEC8 sub_812BEC8: @ 812BEC8 push {lr} - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_812BEC8 @@ -2006,7 +2006,7 @@ sub_812BEC8: @ 812BEC8 thumb_func_start sub_812BED4 sub_812BED4: @ 812BED4 push {lr} - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_812BED4 @@ -2015,8 +2015,8 @@ sub_812BED4: @ 812BED4 sub_812BEE0: @ 812BEE0 push {r4-r6,lr} sub sp, 0x4 - ldr r5, _0812BF18 @ =gUnknown_02023A60 - ldr r6, _0812BF1C @ =gUnknown_02024A60 + ldr r5, _0812BF18 @ =gBattleBufferA + ldr r6, _0812BF1C @ =gActiveBank ldrb r2, [r6] lsls r1, r2, 9 adds r0, r5, 0x1 @@ -2037,13 +2037,13 @@ sub_812BEE0: @ 812BEE0 lsls r0, 24 cmp r0, 0 beq _0812BF20 - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted b _0812BF2C .align 2, 0 -_0812BF18: .4byte gUnknown_02023A60 -_0812BF1C: .4byte gUnknown_02024A60 +_0812BF18: .4byte gBattleBufferA +_0812BF1C: .4byte gActiveBank _0812BF20: - ldr r0, _0812BF34 @ =gUnknown_03004330 + ldr r0, _0812BF34 @ =gBattleBankFunc ldrb r1, [r6] lsls r1, 2 adds r1, r0 @@ -2055,14 +2055,14 @@ _0812BF2C: pop {r0} bx r0 .align 2, 0 -_0812BF34: .4byte gUnknown_03004330 +_0812BF34: .4byte gBattleBankFunc _0812BF38: .4byte sub_812B794 thumb_func_end sub_812BEE0 thumb_func_start sub_812BF3C sub_812BF3C: @ 812BF3C push {lr} - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_812BF3C @@ -2070,7 +2070,7 @@ sub_812BF3C: @ 812BF3C thumb_func_start sub_812BF48 sub_812BF48: @ 812BF48 push {lr} - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_812BF48 @@ -2078,9 +2078,9 @@ sub_812BF48: @ 812BF48 thumb_func_start sub_812BF54 sub_812BF54: @ 812BF54 push {r4,lr} - ldr r2, _0812BF98 @ =gUnknown_02024D26 - ldr r1, _0812BF9C @ =gUnknown_02023A60 - ldr r4, _0812BFA0 @ =gUnknown_02024A60 + ldr r2, _0812BF98 @ =gBattleOutcome + ldr r1, _0812BF9C @ =gBattleBufferA + ldr r4, _0812BFA0 @ =gActiveBank ldrb r0, [r4] lsls r0, 9 adds r1, 0x1 @@ -2091,14 +2091,14 @@ sub_812BF54: @ 812BF54 bl FadeOutMapMusic movs r0, 0x3 bl BeginFastPaletteFade - bl dp01_tbl6_exec_completed + bl SafariBufferExecCompleted ldr r0, _0812BFA4 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x6 ands r0, r1 cmp r0, 0x2 bne _0812BF90 - ldr r0, _0812BFA8 @ =gUnknown_03004330 + ldr r0, _0812BFA8 @ =gBattleBankFunc ldrb r1, [r4] lsls r1, 2 adds r1, r0 @@ -2109,11 +2109,11 @@ _0812BF90: pop {r0} bx r0 .align 2, 0 -_0812BF98: .4byte gUnknown_02024D26 -_0812BF9C: .4byte gUnknown_02023A60 -_0812BFA0: .4byte gUnknown_02024A60 +_0812BF98: .4byte gBattleOutcome +_0812BF9C: .4byte gBattleBufferA +_0812BFA0: .4byte gActiveBank _0812BFA4: .4byte gBattleTypeFlags -_0812BFA8: .4byte gUnknown_03004330 +_0812BFA8: .4byte gBattleBankFunc _0812BFAC: .4byte sub_812B6AC thumb_func_end sub_812BF54 diff --git a/asm/battle_anim_812C144.s b/asm/battle_anim_812C144.s index 28f6f9ada..bae3d9bc2 100644 --- a/asm/battle_anim_812C144.s +++ b/asm/battle_anim_812C144.s @@ -807,7 +807,7 @@ sub_812C720: @ 812C720 bl sub_807A3FC ldr r0, _0812C788 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0812C754 @@ -960,7 +960,7 @@ sub_812C848: @ 812C848 bne _0812C89C ldr r0, _0812C888 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0812C88C @@ -1060,7 +1060,7 @@ sub_812C924: @ 812C924 lsrs r4, r0, 24 ldr r0, _0812C940 @ =gBattleAnimEnemyMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1090,7 +1090,7 @@ sub_812C960: @ 812C960 push {lr} lsls r0, 24 lsrs r2, r0, 24 - ldr r0, _0812C974 @ =gUnknown_0202F7B8 + ldr r0, _0812C974 @ =gMoveDmgMoveAnim ldr r0, [r0] cmp r0, 0 ble _0812C97C @@ -1098,7 +1098,7 @@ sub_812C960: @ 812C960 movs r0, 0 b _0812C980 .align 2, 0 -_0812C974: .4byte gUnknown_0202F7B8 +_0812C974: .4byte gMoveDmgMoveAnim _0812C978: .4byte gBattleAnimArgs _0812C97C: ldr r1, _0812C98C @ =gBattleAnimArgs @@ -1689,7 +1689,7 @@ _0812CDF6: lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r7, r0, 24 adds r0, r6, 0 @@ -2577,7 +2577,7 @@ sub_812D4B4: @ 812D4B4 adds r4, r0, 0 ldr r0, _0812D4CC @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0812D4D4 @@ -2611,7 +2611,7 @@ sub_812D4EC: @ 812D4EC strh r0, [r4, 0x2E] ldr r0, _0812D50C @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0812D510 @@ -3046,7 +3046,7 @@ _0812D834: strh r0, [r1] ldr r0, _0812D854 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -3137,7 +3137,7 @@ _0812D8F4: .4byte gBattleAnimPlayerMonIndex _0812D8F8: .4byte gBattleAnimEnemyMonIndex _0812D8FC: ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r1, r0, 24 _0812D906: @@ -3228,7 +3228,7 @@ _0812D9A2: cmp r0, 0 beq _0812D9F0 ldr r3, _0812D9E4 @ =gSprites - ldr r4, _0812D9E8 @ =gUnknown_02024BE0 + ldr r4, _0812D9E8 @ =gObjectBankIDs ldr r2, _0812D9D4 @ =gBattleAnimPlayerMonIndex ldrb r0, [r2] adds r0, r4 @@ -3249,11 +3249,11 @@ _0812D9D8: .4byte 0x040000d4 _0812D9DC: .4byte 0x84000200 _0812D9E0: .4byte 0x02019348 _0812D9E4: .4byte gSprites -_0812D9E8: .4byte gUnknown_02024BE0 +_0812D9E8: .4byte gObjectBankIDs _0812D9EC: .4byte gSpriteAffineAnimTable_81E7C18 _0812D9F0: ldr r3, _0812DA34 @ =gSprites - ldr r4, _0812DA38 @ =gUnknown_02024BE0 + ldr r4, _0812DA38 @ =gObjectBankIDs ldr r2, _0812DA3C @ =gBattleAnimPlayerMonIndex ldrb r0, [r2] adds r0, r4 @@ -3289,7 +3289,7 @@ _0812DA2A: b _0812DAFA .align 2, 0 _0812DA34: .4byte gSprites -_0812DA38: .4byte gUnknown_02024BE0 +_0812DA38: .4byte gObjectBankIDs _0812DA3C: .4byte gBattleAnimPlayerMonIndex _0812DA40: .4byte gSpriteAffineAnimTable_81E7BEC _0812DA44: .4byte gTasks @@ -3331,7 +3331,7 @@ _0812DA84: strh r0, [r1] ldr r0, _0812DAA4 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -3356,7 +3356,7 @@ _0812DAAE: bne _0812DAF4 ldr r4, _0812DB0C @ =gBattleAnimPlayerMonIndex ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -3402,7 +3402,7 @@ c3_80DFBE4: @ 812DB18 lsrs r0, 24 ldr r4, _0812DB48 @ =gBattleAnimArgs ldr r3, _0812DB4C @ =gSprites - ldr r2, _0812DB50 @ =gUnknown_02024BE0 + ldr r2, _0812DB50 @ =gObjectBankIDs ldr r1, _0812DB54 @ =gBattleAnimPlayerMonIndex ldrb r1, [r1] adds r1, r2 @@ -3423,7 +3423,7 @@ c3_80DFBE4: @ 812DB18 .align 2, 0 _0812DB48: .4byte gBattleAnimArgs _0812DB4C: .4byte gSprites -_0812DB50: .4byte gUnknown_02024BE0 +_0812DB50: .4byte gObjectBankIDs _0812DB54: .4byte gBattleAnimPlayerMonIndex thumb_func_end c3_80DFBE4 @@ -3574,7 +3574,7 @@ _0812DC98: .4byte gUnknown_030041B4 _0812DC9C: ldr r0, _0812DCB4 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0812DCC0 @@ -4294,7 +4294,7 @@ _0812E25C: .4byte gUnknown_030041B4 _0812E260: ldr r0, _0812E2A0 @ =gBattleAnimEnemyMonIndex ldrb r0, [r0] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r4, r0, 24 bl IsDoubleBattle @@ -4379,7 +4379,7 @@ _0812E300: strh r0, [r5, 0xE] ldr r0, _0812E338 @ =gBattleAnimEnemyMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -4645,7 +4645,7 @@ _0812E50E: strh r0, [r4, 0x32] ldr r0, _0812E53C @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0812E540 @@ -4756,7 +4756,7 @@ _0812E5F8: ldr r0, _0812E630 @ =gBattleAnimEnemyMonIndex _0812E5FA: ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -4973,7 +4973,7 @@ sub_812E7A0: @ 812E7A0 adds r4, r0, 0 ldr r0, _0812E7BC @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0 @@ -5017,7 +5017,7 @@ sub_812E7F0: @ 812E7F0 strh r0, [r4, 0x2E] ldr r0, _0812E830 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0812E834 @@ -5518,7 +5518,7 @@ _0812EBC2: cmp r0, 0 bne _0812EBE8 ldrb r0, [r6, 0x1E] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsls r2, r5, 4 cmp r0, 0 @@ -6066,13 +6066,13 @@ _0812F000: .4byte 0x02019348 _0812F004: ldr r0, _0812F070 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0812F0AC movs r0, 0 str r0, [sp, 0x14] - ldr r6, _0812F074 @ =gUnknown_02024A6A + ldr r6, _0812F074 @ =gBattlePartyID ldr r4, _0812F078 @ =gBattleAnimEnemyMonIndex ldrb r0, [r4] lsls r0, 1 @@ -6102,7 +6102,7 @@ _0812F004: cmp r0, 0 bne _0812F0A4 adds r0, r2, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0812F084 @@ -6115,7 +6115,7 @@ _0812F004: b _0812F092 .align 2, 0 _0812F070: .4byte gBattleAnimPlayerMonIndex -_0812F074: .4byte gUnknown_02024A6A +_0812F074: .4byte gBattlePartyID _0812F078: .4byte gBattleAnimEnemyMonIndex _0812F07C: .4byte gPlayerParty _0812F080: .4byte 0x02017800 @@ -6144,7 +6144,7 @@ _0812F0A6: _0812F0AC: movs r2, 0x1 str r2, [sp, 0x14] - ldr r6, _0812F10C @ =gUnknown_02024A6A + ldr r6, _0812F10C @ =gBattlePartyID ldr r4, _0812F110 @ =gBattleAnimEnemyMonIndex ldrb r0, [r4] lsls r0, 1 @@ -6174,7 +6174,7 @@ _0812F0AC: cmp r0, 0 bne _0812F138 adds r0, r2, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0812F120 @@ -6187,7 +6187,7 @@ _0812F0AC: adds r0, r1 b _0812F12C .align 2, 0 -_0812F10C: .4byte gUnknown_02024A6A +_0812F10C: .4byte gBattlePartyID _0812F110: .4byte gBattleAnimEnemyMonIndex _0812F114: .4byte gEnemyParty _0812F118: .4byte 0x02017800 @@ -6479,7 +6479,7 @@ _0812F342: movs r0, 0x18 strh r0, [r4, 0x18] adds r0, r5, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -6509,7 +6509,7 @@ _0812F388: lsrs r0, 24 strh r0, [r4, 0x26] adds r0, r5, 0 - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -6621,7 +6621,7 @@ sub_812F474: @ 812F474 ldr r1, _0812F4A8 @ =gTasks adds r6, r0, r1 ldrb r0, [r6, 0x12] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -7252,7 +7252,7 @@ sub_812F948: @ 812F948 bl StartSpriteAffineAnim ldr r0, _0812F9A4 @ =gBattleAnimEnemyMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0812F96E @@ -7673,7 +7673,7 @@ sub_812FC68: @ 812FC68 lsls r0, 3 mov r1, r8 adds r4, r0, r1 - ldr r1, _0812FCCC @ =gUnknown_02024BE0 + ldr r1, _0812FCCC @ =gObjectBankIDs ldr r2, _0812FCD0 @ =gBattleAnimPlayerMonIndex ldrb r0, [r2] adds r0, r1 @@ -7697,7 +7697,7 @@ sub_812FC68: @ 812FC68 strh r0, [r4, 0x14] _0812FCAC: ldrb r0, [r2] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0812FCDC @@ -7710,7 +7710,7 @@ _0812FCAC: b _0812FD4C .align 2, 0 _0812FCC8: .4byte gTasks -_0812FCCC: .4byte gUnknown_02024BE0 +_0812FCCC: .4byte gObjectBankIDs _0812FCD0: .4byte gBattleAnimPlayerMonIndex _0812FCD4: .4byte gBattleAnimArgs _0812FCD8: .4byte 0xffff8000 @@ -8251,7 +8251,7 @@ sub_81300F4: @ 81300F4 adds r5, r0, 0 ldr r6, _0813014C @ =gBattleAnimPlayerMonIndex ldrb r0, [r6] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -8316,7 +8316,7 @@ _08130172: _08130180: ldr r0, _081301AC @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _081301A0 @@ -8405,7 +8405,7 @@ _0813021C: _08130226: ldr r5, _0813025C @ =gBattleAnimPlayerMonIndex ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08130260 @@ -8943,7 +8943,7 @@ _081305C6: bl sub_80786EC mov r1, r10 ldrb r0, [r1] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -9901,7 +9901,7 @@ _08130D88: .4byte 0x0000ffff _08130D8C: ldr r0, _08130DA0 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08130DA8 @@ -10166,7 +10166,7 @@ _08130F82: ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -10553,7 +10553,7 @@ sub_8131264: @ 8131264 movs r1, 0x3 bl sub_8077ABC ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _08131290 @@ -10695,7 +10695,7 @@ _08131384: cmp r0, 0 beq _081313C6 ldr r3, _081313F8 @ =gSprites - ldr r2, _081313FC @ =gUnknown_02024BE0 + ldr r2, _081313FC @ =gObjectBankIDs ldrb r0, [r4] adds r0, r2 ldrb r1, [r0] @@ -10745,7 +10745,7 @@ _081313E8: .align 2, 0 _081313F4: .4byte gBattleAnimPlayerMonIndex _081313F8: .4byte gSprites -_081313FC: .4byte gUnknown_02024BE0 +_081313FC: .4byte gObjectBankIDs _08131400: .4byte gSpriteAffineAnimTable_81E7C18 _08131404: .4byte sub_8131408 thumb_func_end sub_81312E4 @@ -10934,7 +10934,7 @@ sub_8131564: @ 8131564 adds r5, r0, 0 ldr r4, _08131588 @ =gBattleAnimEnemyMonIndex ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08131590 @@ -11396,7 +11396,7 @@ sub_81318F0: @ 81318F0 ldr r3, _0813193C @ =gBattleAnimArgs movs r2, 0 strh r2, [r3, 0xE] - ldr r1, _08131940 @ =gUnknown_0202F7BE + ldr r1, _08131940 @ =gHappinessMoveAnim ldrb r0, [r1] ldrb r1, [r1] adds r0, r1, 0 @@ -11432,7 +11432,7 @@ _08131930: bx r0 .align 2, 0 _0813193C: .4byte gBattleAnimArgs -_08131940: .4byte gUnknown_0202F7BE +_08131940: .4byte gHappinessMoveAnim thumb_func_end sub_81318F0 thumb_func_start sub_8131944 @@ -11491,7 +11491,7 @@ _08131990: strh r0, [r6, 0xA] ldr r0, _081319E0 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 mov r9, r4 cmp r0, 0 @@ -11583,11 +11583,11 @@ _08131A70: .4byte gBattleAnimPlayerMonIndex _08131A74: ldr r4, _08131AD4 @ =gBattleAnimPlayerMonIndex ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08131B10 - ldr r7, _08131AD8 @ =gUnknown_02024A6A + ldr r7, _08131AD8 @ =gBattlePartyID ldrb r0, [r4] lsls r0, 1 adds r0, r7 @@ -11627,7 +11627,7 @@ _08131A74: b _08131AE6 .align 2, 0 _08131AD4: .4byte gBattleAnimPlayerMonIndex -_08131AD8: .4byte gUnknown_02024A6A +_08131AD8: .4byte gBattlePartyID _08131ADC: .4byte gPlayerParty _08131AE0: .4byte 0x02017800 _08131AE4: @@ -11654,7 +11654,7 @@ _08131AE6: .align 2, 0 _08131B0C: .4byte gSprites _08131B10: - ldr r7, _08131B64 @ =gUnknown_02024A6A + ldr r7, _08131B64 @ =gBattlePartyID ldrb r0, [r4] lsls r0, 1 adds r0, r7 @@ -11693,7 +11693,7 @@ _08131B10: lsrs r5, r0, 16 b _08131B72 .align 2, 0 -_08131B64: .4byte gUnknown_02024A6A +_08131B64: .4byte gBattlePartyID _08131B68: .4byte gEnemyParty _08131B6C: .4byte 0x02017800 _08131B70: @@ -11796,7 +11796,7 @@ _08131C20: strh r0, [r6, 0xA] ldr r0, _08131C70 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 mov r9, r4 cmp r0, 0 @@ -11853,7 +11853,7 @@ _08131C8E: bne _08131D0E ldr r0, _08131CE4 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08131CEC @@ -11937,7 +11937,7 @@ _08131D40: bl sub_807A0F4 ldr r0, _08131D94 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 mov r9, r4 cmp r0, 0 @@ -12000,7 +12000,7 @@ _08131DC4: mov r10, r0 ldrb r0, [r0] str r2, [sp, 0x10] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 mov r9, r4 ldr r2, [sp, 0x10] @@ -12146,7 +12146,7 @@ _08131ECA: strb r0, [r2] ldr r0, _08131F5C @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -12220,7 +12220,7 @@ _08131FA6: strh r0, [r4, 0x32] ldr r0, _08131FD0 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08131FD4 @@ -12327,7 +12327,7 @@ _08132084: .4byte gBattleAnimPlayerMonIndex _08132088: .4byte gBattleAnimEnemyMonIndex _0813208C: .4byte gTasks _08132090: - ldr r1, _081320CC @ =gUnknown_02024BE0 + ldr r1, _081320CC @ =gObjectBankIDs ldr r0, _081320D0 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] adds r0, r1 @@ -12358,7 +12358,7 @@ _08132090: ldrsh r1, [r2, r3] b _0813215E .align 2, 0 -_081320CC: .4byte gUnknown_02024BE0 +_081320CC: .4byte gObjectBankIDs _081320D0: .4byte gBattleAnimPlayerMonIndex _081320D4: .4byte gSprites _081320D8: @@ -12386,7 +12386,7 @@ _081320EC: strh r1, [r0, 0x26] b _08132188 _08132104: - ldr r1, _08132144 @ =gUnknown_02024BE0 + ldr r1, _08132144 @ =gObjectBankIDs ldr r0, _08132148 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] adds r0, r1 @@ -12419,7 +12419,7 @@ _08132104: bgt _08132188 b _08132162 .align 2, 0 -_08132144: .4byte gUnknown_02024BE0 +_08132144: .4byte gObjectBankIDs _08132148: .4byte gBattleAnimPlayerMonIndex _0813214C: .4byte gSprites _08132150: @@ -12439,7 +12439,7 @@ _08132162: strh r0, [r2, 0x26] b _08132188 _0813216A: - ldr r1, _08132190 @ =gUnknown_02024BE0 + ldr r1, _08132190 @ =gObjectBankIDs ldr r0, _08132194 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] adds r0, r1 @@ -12458,7 +12458,7 @@ _08132188: pop {r0} bx r0 .align 2, 0 -_08132190: .4byte gUnknown_02024BE0 +_08132190: .4byte gObjectBankIDs _08132194: .4byte gBattleAnimPlayerMonIndex _08132198: .4byte gSprites thumb_func_end sub_8131FFC @@ -12481,7 +12481,7 @@ sub_813219C: @ 813219C strh r0, [r4, 0xE] ldr r0, _08132208 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 movs r2, 0x1 negs r2, r2 @@ -12664,7 +12664,7 @@ sub_8132318: @ 8132318 adds r4, r0, 0 ldr r0, _0813236C @ =gBattleAnimEnemyMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 ldrh r0, [r4, 0x2E] ldrh r1, [r4, 0x30] @@ -12708,7 +12708,7 @@ sub_8132370: @ 8132370 adds r4, r0, 0 ldr r0, _081323A8 @ =gBattleAnimEnemyMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _081323B4 @@ -12943,7 +12943,7 @@ sub_8132528: @ 8132528 ldr r2, _08132544 @ =gBattleAnimArgs movs r0, 0 strh r0, [r2, 0xE] - ldr r0, _08132548 @ =gUnknown_0202F7C0 + ldr r0, _08132548 @ =gWeatherMoveAnim ldrh r1, [r0] movs r0, 0x60 ands r0, r1 @@ -12953,7 +12953,7 @@ sub_8132528: @ 8132528 b _0813256E .align 2, 0 _08132544: .4byte gBattleAnimArgs -_08132548: .4byte gUnknown_0202F7C0 +_08132548: .4byte gWeatherMoveAnim _0813254C: movs r0, 0x7 ands r0, r1 diff --git a/asm/battle_anim_8137220.s b/asm/battle_anim_8137220.s index 134e18e6f..f88a938e7 100644 --- a/asm/battle_anim_8137220.s +++ b/asm/battle_anim_8137220.s @@ -11,14 +11,14 @@ unref_sub_8137220: @ 8137220 bx lr thumb_func_end unref_sub_8137220 - thumb_func_start sub_8137224 -sub_8137224: @ 8137224 - ldr r1, _08137250 @ =gUnknown_03004330 - ldr r0, _08137254 @ =gUnknown_02024A60 + thumb_func_start SetBankFuncToWallyBufferRunCommand +SetBankFuncToWallyBufferRunCommand: @ 8137224 + ldr r1, _08137250 @ =gBattleBankFunc + ldr r0, _08137254 @ =gActiveBank ldrb r0, [r0] lsls r0, 2 adds r0, r1 - ldr r1, _08137258 @ =sub_813726C + ldr r1, _08137258 @ =WallyBufferRunCommand str r1, [r0] ldr r1, _0813725C @ =0x02000000 ldr r2, _08137260 @ =0x000160a8 @@ -36,21 +36,21 @@ sub_8137224: @ 8137224 strb r2, [r1] bx lr .align 2, 0 -_08137250: .4byte gUnknown_03004330 -_08137254: .4byte gUnknown_02024A60 -_08137258: .4byte sub_813726C +_08137250: .4byte gBattleBankFunc +_08137254: .4byte gActiveBank +_08137258: .4byte WallyBufferRunCommand _0813725C: .4byte 0x02000000 _08137260: .4byte 0x000160a8 _08137264: .4byte 0x000160a9 _08137268: .4byte 0x000160ab - thumb_func_end sub_8137224 + thumb_func_end SetBankFuncToWallyBufferRunCommand - thumb_func_start sub_813726C -sub_813726C: @ 813726C + thumb_func_start WallyBufferRunCommand +WallyBufferRunCommand: @ 813726C push {lr} - ldr r2, _081372A0 @ =gUnknown_02024A64 + ldr r2, _081372A0 @ =gBattleExecBuffer ldr r1, _081372A4 @ =gBitTable - ldr r0, _081372A8 @ =gUnknown_02024A60 + ldr r0, _081372A8 @ =gActiveBank ldrb r3, [r0] lsls r0, r3, 2 adds r0, r1 @@ -59,13 +59,13 @@ sub_813726C: @ 813726C ands r1, r0 cmp r1, 0 beq _081372B8 - ldr r0, _081372AC @ =gUnknown_02023A60 + ldr r0, _081372AC @ =gBattleBufferA lsls r1, r3, 9 adds r1, r0 ldrb r0, [r1] cmp r0, 0x38 bhi _081372B4 - ldr r0, _081372B0 @ =gUnknown_084061A4 + ldr r0, _081372B0 @ =gWallyBufferCommands ldrb r1, [r1] lsls r1, 2 adds r1, r0 @@ -73,17 +73,17 @@ sub_813726C: @ 813726C bl _call_via_r0 b _081372B8 .align 2, 0 -_081372A0: .4byte gUnknown_02024A64 +_081372A0: .4byte gBattleExecBuffer _081372A4: .4byte gBitTable -_081372A8: .4byte gUnknown_02024A60 -_081372AC: .4byte gUnknown_02023A60 -_081372B0: .4byte gUnknown_084061A4 +_081372A8: .4byte gActiveBank +_081372AC: .4byte gBattleBufferA +_081372B0: .4byte gWallyBufferCommands _081372B4: - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted _081372B8: pop {r0} bx r0 - thumb_func_end sub_813726C + thumb_func_end WallyBufferRunCommand thumb_func_start sub_81372BC sub_81372BC: @ 81372BC @@ -140,7 +140,7 @@ _0813730E: movs r1, 0 movs r2, 0 bl dp01_build_cmdbuf_x21_a_bb - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted ldr r2, _08137340 @ =0x000160a8 adds r1, r5, r2 b _0813738C @@ -179,7 +179,7 @@ _08137368: _0813737E: movs r2, 0 bl dp01_build_cmdbuf_x21_a_bb - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted ldr r0, _081373A4 @ =0x000160a8 adds r1, r5, r0 _0813738C: @@ -234,12 +234,12 @@ _081373E8: bne _08137410 movs r0, 0x5 bl PlaySE - bl sub_814A7FC + bl DestroyMenuCursor movs r0, 0x1 movs r1, 0x1 movs r2, 0 bl dp01_build_cmdbuf_x21_a_bb - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted _08137410: pop {r4-r6} pop {r0} @@ -252,8 +252,8 @@ _08137418: .4byte 0x000160aa sub_813741C: @ 813741C push {lr} ldr r2, _08137444 @ =gSprites - ldr r1, _08137448 @ =gUnknown_02024BE0 - ldr r0, _0813744C @ =gUnknown_02024A60 + ldr r1, _08137448 @ =gObjectBankIDs + ldr r0, _0813744C @ =gActiveBank ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -266,14 +266,14 @@ sub_813741C: @ 813741C ldr r0, _08137450 @ =SpriteCallbackDummy cmp r1, r0 bne _08137440 - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted _08137440: pop {r0} bx r0 .align 2, 0 _08137444: .4byte gSprites -_08137448: .4byte gUnknown_02024BE0 -_0813744C: .4byte gUnknown_02024A60 +_08137448: .4byte gObjectBankIDs +_0813744C: .4byte gActiveBank _08137450: .4byte SpriteCallbackDummy thumb_func_end sub_813741C @@ -284,7 +284,7 @@ sub_8137454: @ 8137454 ldrh r0, [r0, 0x16] cmp r0, 0 bne _08137462 - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted _08137462: pop {r0} bx r0 @@ -309,7 +309,7 @@ sub_813746C: @ 813746C negs r0, r0 ands r0, r1 strb r0, [r3] - ldr r0, _081374A8 @ =gUnknown_030042D0 + ldr r0, _081374A8 @ =gPreBattleCallback1 ldr r0, [r0] str r0, [r2] ldr r0, [r2, 0x8] @@ -321,22 +321,22 @@ _08137496: _0813749C: .4byte gPaletteFade _081374A0: .4byte gMain _081374A4: .4byte 0x0000043d -_081374A8: .4byte gUnknown_030042D0 +_081374A8: .4byte gPreBattleCallback1 thumb_func_end sub_813746C thumb_func_start bx_wait_t5 bx_wait_t5: @ 81374AC push {lr} - ldr r0, _081374C0 @ =gUnknown_02024E6D + ldr r0, _081374C0 @ =gDoingBattleAnim ldrb r0, [r0] cmp r0, 0 bne _081374BA - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted _081374BA: pop {r0} bx r0 .align 2, 0 -_081374C0: .4byte gUnknown_02024E6D +_081374C0: .4byte gDoingBattleAnim thumb_func_end bx_wait_t5 thumb_func_start sub_81374C4 @@ -348,8 +348,8 @@ sub_81374C4: @ 81374C4 ands r0, r1 cmp r0, 0 bne _081374E8 - ldr r1, _081374F0 @ =gUnknown_03004330 - ldr r0, _081374F4 @ =gUnknown_02024A60 + ldr r1, _081374F0 @ =gBattleBankFunc + ldr r0, _081374F4 @ =gActiveBank ldrb r0, [r0] lsls r0, 2 adds r0, r1 @@ -362,8 +362,8 @@ _081374E8: bx r0 .align 2, 0 _081374EC: .4byte gPaletteFade -_081374F0: .4byte gUnknown_03004330 -_081374F4: .4byte gUnknown_02024A60 +_081374F0: .4byte gBattleBankFunc +_081374F4: .4byte gActiveBank _081374F8: .4byte sub_81374FC thumb_func_end sub_81374C4 @@ -385,7 +385,7 @@ sub_81374FC: @ 81374FC ldrh r1, [r0] movs r0, 0x1 bl dp01_build_cmdbuf_x23_aa_0 - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted _08137522: pop {r0} bx r0 @@ -399,7 +399,7 @@ _08137534: .4byte gScriptItemId thumb_func_start sub_8137538 sub_8137538: @ 8137538 push {r4-r7,lr} - ldr r5, _0813768C @ =gUnknown_02024A60 + ldr r5, _0813768C @ =gActiveBank ldrb r2, [r5] lsls r3, r2, 1 adds r0, r3, r2 @@ -412,7 +412,7 @@ sub_8137538: @ 8137538 ands r0, r1 cmp r0, 0 bne _08137568 - ldr r0, _08137694 @ =gUnknown_02024A6A + ldr r0, _08137694 @ =gBattlePartyID adds r0, r3, r0 ldrh r1, [r0] movs r0, 0x64 @@ -435,7 +435,7 @@ _08137568: ands r0, r1 cmp r0, 0 bne _08137596 - ldr r0, _08137694 @ =gUnknown_02024A6A + ldr r0, _08137694 @ =gBattlePartyID adds r0, r3, r0 ldrh r1, [r0] movs r0, 0x64 @@ -488,13 +488,13 @@ _08137596: ldr r1, _081376A4 @ =gSprites adds r0, r1 bl DestroySprite - ldr r4, _081376A8 @ =gUnknown_03004340 + ldr r4, _081376A8 @ =gHealthboxIDs ldrb r0, [r5] adds r1, r6, 0 eors r1, r0 adds r0, r1, r4 ldrb r0, [r0] - ldr r2, _08137694 @ =gUnknown_02024A6A + ldr r2, _08137694 @ =gBattlePartyID lsls r1, 1 adds r1, r2 ldrh r2, [r1] @@ -514,7 +514,7 @@ _08137596: bl sub_8043DFC _08137626: ldr r1, _081376A0 @ =gUnknown_0300434C - ldr r4, _0813768C @ =gUnknown_02024A60 + ldr r4, _0813768C @ =gActiveBank ldrb r0, [r4] adds r0, r1 ldrb r1, [r0] @@ -524,11 +524,11 @@ _08137626: ldr r1, _081376A4 @ =gSprites adds r0, r1 bl DestroySprite - ldr r5, _081376A8 @ =gUnknown_03004340 + ldr r5, _081376A8 @ =gHealthboxIDs ldrb r1, [r4] adds r0, r1, r5 ldrb r0, [r0] - ldr r2, _08137694 @ =gUnknown_02024A6A + ldr r2, _08137694 @ =gBattlePartyID lsls r1, 1 adds r1, r2 ldrh r2, [r1] @@ -550,7 +550,7 @@ _08137626: negs r0, r0 ands r0, r1 strb r0, [r2, 0x9] - ldr r1, _081376B0 @ =gUnknown_03004330 + ldr r1, _081376B0 @ =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 adds r0, r1 @@ -561,16 +561,16 @@ _08137684: pop {r0} bx r0 .align 2, 0 -_0813768C: .4byte gUnknown_02024A60 +_0813768C: .4byte gActiveBank _08137690: .4byte 0x02017810 -_08137694: .4byte gUnknown_02024A6A +_08137694: .4byte gBattlePartyID _08137698: .4byte gPlayerParty _0813769C: .4byte gBattleTypeFlags _081376A0: .4byte gUnknown_0300434C _081376A4: .4byte gSprites -_081376A8: .4byte gUnknown_03004340 +_081376A8: .4byte gHealthboxIDs _081376AC: .4byte 0x02017840 -_081376B0: .4byte gUnknown_03004330 +_081376B0: .4byte gBattleBankFunc _081376B4: .4byte sub_81376B8 thumb_func_end sub_8137538 @@ -579,8 +579,8 @@ sub_81376B8: @ 81376B8 push {r4-r7,lr} movs r4, 0 ldr r2, _0813778C @ =gSprites - ldr r0, _08137790 @ =gUnknown_03004340 - ldr r7, _08137794 @ =gUnknown_02024A60 + ldr r0, _08137790 @ =gHealthboxIDs + ldr r7, _08137794 @ =gActiveBank ldrb r3, [r7] adds r0, r3, r0 ldrb r1, [r0] @@ -663,7 +663,7 @@ _081376DC: ldr r0, _081377A4 @ =c3_0802FDF4 movs r1, 0xA bl CreateTask - ldr r2, _081377A8 @ =gUnknown_02024A6A + ldr r2, _081377A8 @ =gBattlePartyID ldrb r1, [r7] lsls r0, r1, 1 adds r0, r2 @@ -673,29 +673,29 @@ _081376DC: ldr r2, _081377AC @ =gPlayerParty adds r0, r2 bl sub_80324F8 - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted _08137784: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813778C: .4byte gSprites -_08137790: .4byte gUnknown_03004340 -_08137794: .4byte gUnknown_02024A60 +_08137790: .4byte gHealthboxIDs +_08137794: .4byte gActiveBank _08137798: .4byte SpriteCallbackDummy _0813779C: .4byte 0x02017810 _081377A0: .4byte 0x000027f9 _081377A4: .4byte c3_0802FDF4 -_081377A8: .4byte gUnknown_02024A6A +_081377A8: .4byte gBattlePartyID _081377AC: .4byte gPlayerParty thumb_func_end sub_81376B8 thumb_func_start sub_81377B0 sub_81377B0: @ 81377B0 push {r4-r6,lr} - ldr r5, _081377F0 @ =gUnknown_02024A60 + ldr r5, _081377F0 @ =gActiveBank ldrb r0, [r5] - ldr r6, _081377F4 @ =gUnknown_03004340 + ldr r6, _081377F4 @ =gHealthboxIDs adds r1, r0, r6 ldrb r1, [r1] movs r2, 0 @@ -721,10 +721,10 @@ sub_81377B0: @ 81377B0 bl sub_80440EC b _08137812 .align 2, 0 -_081377F0: .4byte gUnknown_02024A60 -_081377F4: .4byte gUnknown_03004340 +_081377F0: .4byte gActiveBank +_081377F4: .4byte gHealthboxIDs _081377F8: - ldr r2, _08137818 @ =gUnknown_02024A6A + ldr r2, _08137818 @ =gBattlePartyID ldrb r1, [r5] lsls r0, r1, 1 adds r0, r2 @@ -734,21 +734,21 @@ _081377F8: ldr r2, _0813781C @ =gPlayerParty adds r0, r2 bl sub_80324F8 - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted _08137812: pop {r4-r6} pop {r0} bx r0 .align 2, 0 -_08137818: .4byte gUnknown_02024A6A +_08137818: .4byte gBattlePartyID _0813781C: .4byte gPlayerParty thumb_func_end sub_81377B0 thumb_func_start bx_blink_t5 bx_blink_t5: @ 8137820 push {r4,lr} - ldr r1, _0813785C @ =gUnknown_02024BE0 - ldr r0, _08137860 @ =gUnknown_02024A60 + ldr r1, _0813785C @ =gObjectBankIDs + ldr r0, _08137860 @ =gActiveBank ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -770,15 +770,15 @@ bx_blink_t5: @ 8137820 subs r0, 0x5 ands r0, r1 strb r0, [r2] - ldr r0, _08137868 @ =gUnknown_02024E6D + ldr r0, _08137868 @ =gDoingBattleAnim strb r3, [r0] - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted b _08137896 .align 2, 0 -_0813785C: .4byte gUnknown_02024BE0 -_08137860: .4byte gUnknown_02024A60 +_0813785C: .4byte gObjectBankIDs +_08137860: .4byte gActiveBank _08137864: .4byte gSprites -_08137868: .4byte gUnknown_02024E6D +_08137868: .4byte gDoingBattleAnim _0813786C: ldrh r0, [r4, 0x30] movs r1, 0x3 @@ -811,7 +811,7 @@ _08137896: thumb_func_start sub_813789C sub_813789C: @ 813789C push {r4-r6,lr} - ldr r6, _081378F4 @ =gUnknown_02024A60 + ldr r6, _081378F4 @ =gActiveBank ldrb r2, [r6] lsls r0, r2, 1 adds r0, r2 @@ -823,7 +823,7 @@ sub_813789C: @ 813789C ands r0, r1 cmp r0, 0 bne _081378EC - ldr r5, _081378FC @ =gUnknown_02024BE0 + ldr r5, _081378FC @ =gObjectBankIDs adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 @@ -840,30 +840,30 @@ sub_813789C: @ 813789C lsls r0, 2 adds r0, r4 bl DestroySprite - ldr r1, _08137904 @ =gUnknown_03004340 + ldr r1, _08137904 @ =gHealthboxIDs ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] bl sub_8043DB0 - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted _081378EC: pop {r4-r6} pop {r0} bx r0 .align 2, 0 -_081378F4: .4byte gUnknown_02024A60 +_081378F4: .4byte gActiveBank _081378F8: .4byte 0x02017810 -_081378FC: .4byte gUnknown_02024BE0 +_081378FC: .4byte gObjectBankIDs _08137900: .4byte gSprites -_08137904: .4byte gUnknown_03004340 +_08137904: .4byte gHealthboxIDs thumb_func_end sub_813789C thumb_func_start sub_8137908 sub_8137908: @ 8137908 push {lr} ldr r2, _08137930 @ =gSprites - ldr r1, _08137934 @ =gUnknown_02024BE0 - ldr r0, _08137938 @ =gUnknown_02024A60 + ldr r1, _08137934 @ =gObjectBankIDs + ldr r0, _08137938 @ =gActiveBank ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -876,21 +876,21 @@ sub_8137908: @ 8137908 ldr r0, _0813793C @ =SpriteCallbackDummy cmp r1, r0 bne _0813792C - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted _0813792C: pop {r0} bx r0 .align 2, 0 _08137930: .4byte gSprites -_08137934: .4byte gUnknown_02024BE0 -_08137938: .4byte gUnknown_02024A60 +_08137934: .4byte gObjectBankIDs +_08137938: .4byte gActiveBank _0813793C: .4byte SpriteCallbackDummy thumb_func_end sub_8137908 thumb_func_start sub_8137940 sub_8137940: @ 8137940 push {lr} - ldr r0, _08137964 @ =gUnknown_02024A60 + ldr r0, _08137964 @ =gActiveBank ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -902,25 +902,25 @@ sub_8137940: @ 8137940 ands r0, r1 cmp r0, 0 bne _0813795E - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted _0813795E: pop {r0} bx r0 .align 2, 0 -_08137964: .4byte gUnknown_02024A60 +_08137964: .4byte gActiveBank _08137968: .4byte 0x02017810 thumb_func_end sub_8137940 - thumb_func_start dp01_tbl5_exec_completed -dp01_tbl5_exec_completed: @ 813796C + thumb_func_start WallyBufferExecCompleted +WallyBufferExecCompleted: @ 813796C push {r4,lr} sub sp, 0x4 - ldr r1, _081379AC @ =gUnknown_03004330 - ldr r4, _081379B0 @ =gUnknown_02024A60 + ldr r1, _081379AC @ =gBattleBankFunc + ldr r4, _081379B0 @ =gActiveBank ldrb r0, [r4] lsls r0, 2 adds r0, r1 - ldr r1, _081379B4 @ =sub_813726C + ldr r1, _081379B4 @ =WallyBufferRunCommand str r1, [r0] ldr r0, _081379B8 @ =gBattleTypeFlags ldrh r1, [r0] @@ -935,7 +935,7 @@ dp01_tbl5_exec_completed: @ 813796C movs r1, 0x4 mov r2, sp bl dp01_prepare_buffer_wireless_probably - ldr r1, _081379BC @ =gUnknown_02023A60 + ldr r1, _081379BC @ =gBattleBufferA ldrb r0, [r4] lsls r0, 9 adds r0, r1 @@ -943,13 +943,13 @@ dp01_tbl5_exec_completed: @ 813796C strb r1, [r0] b _081379D2 .align 2, 0 -_081379AC: .4byte gUnknown_03004330 -_081379B0: .4byte gUnknown_02024A60 -_081379B4: .4byte sub_813726C +_081379AC: .4byte gBattleBankFunc +_081379B0: .4byte gActiveBank +_081379B4: .4byte WallyBufferRunCommand _081379B8: .4byte gBattleTypeFlags -_081379BC: .4byte gUnknown_02023A60 +_081379BC: .4byte gBattleBufferA _081379C0: - ldr r2, _081379DC @ =gUnknown_02024A64 + ldr r2, _081379DC @ =gBattleExecBuffer ldr r1, _081379E0 @ =gBitTable ldrb r0, [r4] lsls r0, 2 @@ -964,14 +964,14 @@ _081379D2: pop {r0} bx r0 .align 2, 0 -_081379DC: .4byte gUnknown_02024A64 +_081379DC: .4byte gBattleExecBuffer _081379E0: .4byte gBitTable - thumb_func_end dp01_tbl5_exec_completed + thumb_func_end WallyBufferExecCompleted thumb_func_start unref_sub_81379E4 unref_sub_81379E4: @ 81379E4 push {lr} - ldr r0, _08137A08 @ =gUnknown_02024A60 + ldr r0, _08137A08 @ =gActiveBank ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -983,12 +983,12 @@ unref_sub_81379E4: @ 81379E4 ands r0, r1 cmp r0, 0 bne _08137A02 - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted _08137A02: pop {r0} bx r0 .align 2, 0 -_08137A08: .4byte gUnknown_02024A60 +_08137A08: .4byte gActiveBank _08137A0C: .4byte 0x02017810 thumb_func_end unref_sub_81379E4 @@ -997,8 +997,8 @@ dp01t_00_5_getattr: @ 8137A10 push {r4-r6,lr} sub sp, 0x100 movs r6, 0 - ldr r1, _08137A3C @ =gUnknown_02023A60 - ldr r0, _08137A40 @ =gUnknown_02024A60 + ldr r1, _08137A3C @ =gBattleBufferA + ldr r0, _08137A40 @ =gActiveBank ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x2 @@ -1006,7 +1006,7 @@ dp01t_00_5_getattr: @ 8137A10 ldrb r0, [r1] cmp r0, 0 bne _08137A48 - ldr r0, _08137A44 @ =gUnknown_02024A6A + ldr r0, _08137A44 @ =gBattlePartyID lsls r1, r2, 1 adds r1, r0 ldrb r0, [r1] @@ -1015,9 +1015,9 @@ dp01t_00_5_getattr: @ 8137A10 adds r6, r0, 0 b _08137A6A .align 2, 0 -_08137A3C: .4byte gUnknown_02023A60 -_08137A40: .4byte gUnknown_02024A60 -_08137A44: .4byte gUnknown_02024A6A +_08137A3C: .4byte gBattleBufferA +_08137A40: .4byte gActiveBank +_08137A44: .4byte gBattlePartyID _08137A48: ldrb r4, [r1] movs r5, 0 @@ -1043,7 +1043,7 @@ _08137A6A: movs r0, 0x1 mov r2, sp bl dp01_build_cmdbuf_x1D_1D_numargs_varargs - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted add sp, 0x100 pop {r4-r6} pop {r0} @@ -1062,8 +1062,8 @@ sub_8137A84: @ 8137A84 lsls r0, 24 lsrs r5, r0, 24 movs r6, 0 - ldr r2, _08137AB8 @ =gUnknown_02023A60 - ldr r3, _08137ABC @ =gUnknown_02024A60 + ldr r2, _08137AB8 @ =gBattleBufferA + ldr r3, _08137ABC @ =gActiveBank ldrb r0, [r3] lsls r0, 9 adds r1, r2, 0x1 @@ -1079,8 +1079,8 @@ _08137AAE: ldr r0, [r0] mov pc, r0 .align 2, 0 -_08137AB8: .4byte gUnknown_02023A60 -_08137ABC: .4byte gUnknown_02024A60 +_08137AB8: .4byte gBattleBufferA +_08137ABC: .4byte gActiveBank _08137AC0: .4byte _08137AC4 .align 2, 0 _08137AC4: @@ -1995,8 +1995,8 @@ sub_8138230: @ 8138230 thumb_func_start sub_813823C sub_813823C: @ 813823C push {r4,r5,lr} - ldr r1, _08138260 @ =gUnknown_02023A60 - ldr r0, _08138264 @ =gUnknown_02024A60 + ldr r1, _08138260 @ =gBattleBufferA + ldr r0, _08138264 @ =gActiveBank ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x2 @@ -2004,16 +2004,16 @@ sub_813823C: @ 813823C ldrb r0, [r1] cmp r0, 0 bne _0813826C - ldr r0, _08138268 @ =gUnknown_02024A6A + ldr r0, _08138268 @ =gBattlePartyID lsls r1, r2, 1 adds r1, r0 ldrb r0, [r1] bl sub_8138294 b _0813828A .align 2, 0 -_08138260: .4byte gUnknown_02023A60 -_08138264: .4byte gUnknown_02024A60 -_08138268: .4byte gUnknown_02024A6A +_08138260: .4byte gBattleBufferA +_08138264: .4byte gActiveBank +_08138268: .4byte gBattlePartyID _0813826C: ldrb r4, [r1] movs r5, 0 @@ -2032,7 +2032,7 @@ _0813827E: cmp r5, 0x5 bls _08138270 _0813828A: - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted pop {r4,r5} pop {r0} bx r0 @@ -2048,7 +2048,7 @@ sub_8138294: @ 8138294 sub sp, 0x34 lsls r0, 24 lsrs r5, r0, 24 - ldr r0, _081382CC @ =gUnknown_02024A60 + ldr r0, _081382CC @ =gActiveBank ldrb r0, [r0] lsls r0, 9 ldr r2, _081382D0 @ =gUnknown_02023A63 @@ -2068,7 +2068,7 @@ _081382C0: ldr r0, [r0] mov pc, r0 .align 2, 0 -_081382CC: .4byte gUnknown_02024A60 +_081382CC: .4byte gActiveBank _081382D0: .4byte gUnknown_02023A63 _081382D4: .4byte _081382D8 .align 2, 0 @@ -2320,7 +2320,7 @@ _08138560: muls r0, r5 ldr r1, _08138578 @ =gPlayerParty adds r0, r1 - ldr r1, _0813857C @ =gUnknown_02024A60 + ldr r1, _0813857C @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2329,13 +2329,13 @@ _08138560: b _08138C5A .align 2, 0 _08138578: .4byte gPlayerParty -_0813857C: .4byte gUnknown_02024A60 +_0813857C: .4byte gActiveBank _08138580: movs r0, 0x64 muls r0, r5 ldr r1, _08138598 @ =gPlayerParty adds r0, r1 - ldr r1, _0813859C @ =gUnknown_02024A60 + ldr r1, _0813859C @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2344,7 +2344,7 @@ _08138580: b _08138C5A .align 2, 0 _08138598: .4byte gPlayerParty -_0813859C: .4byte gUnknown_02024A60 +_0813859C: .4byte gActiveBank _081385A0: movs r0, 0 mov r8, r0 @@ -2392,8 +2392,8 @@ _081385F8: muls r0, r5 ldr r1, _08138614 @ =gPlayerParty adds r0, r1 - ldr r3, _08138618 @ =gUnknown_02023A60 - ldr r1, _0813861C @ =gUnknown_02024A60 + ldr r3, _08138618 @ =gBattleBufferA + ldr r1, _0813861C @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r1, r3, 0x1 @@ -2403,15 +2403,15 @@ _081385F8: b _0813869C .align 2, 0 _08138614: .4byte gPlayerParty -_08138618: .4byte gUnknown_02023A60 -_0813861C: .4byte gUnknown_02024A60 +_08138618: .4byte gBattleBufferA +_0813861C: .4byte gActiveBank _08138620: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _0813867C @ =gPlayerParty adds r4, r0 - ldr r5, _08138680 @ =gUnknown_02024A60 + ldr r5, _08138680 @ =gActiveBank ldrb r2, [r5] lsls r2, 9 adds r2, r7 @@ -2449,14 +2449,14 @@ _08138620: b _08138C5A .align 2, 0 _0813867C: .4byte gPlayerParty -_08138680: .4byte gUnknown_02024A60 +_08138680: .4byte gActiveBank _08138684: movs r0, 0x64 muls r0, r5 ldr r1, _081386A8 @ =gPlayerParty adds r0, r1 - ldr r3, _081386AC @ =gUnknown_02023A60 - ldr r1, _081386B0 @ =gUnknown_02024A60 + ldr r3, _081386AC @ =gBattleBufferA + ldr r1, _081386B0 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r1, r3, 0x1 @@ -2470,14 +2470,14 @@ _0813869C: b _08138C5A .align 2, 0 _081386A8: .4byte gPlayerParty -_081386AC: .4byte gUnknown_02023A60 -_081386B0: .4byte gUnknown_02024A60 +_081386AC: .4byte gBattleBufferA +_081386B0: .4byte gActiveBank _081386B4: movs r0, 0x64 muls r0, r5 ldr r1, _081386CC @ =gPlayerParty adds r0, r1 - ldr r1, _081386D0 @ =gUnknown_02024A60 + ldr r1, _081386D0 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2486,13 +2486,13 @@ _081386B4: b _08138C5A .align 2, 0 _081386CC: .4byte gPlayerParty -_081386D0: .4byte gUnknown_02024A60 +_081386D0: .4byte gActiveBank _081386D4: movs r0, 0x64 muls r0, r5 ldr r1, _081386EC @ =gPlayerParty adds r0, r1 - ldr r1, _081386F0 @ =gUnknown_02024A60 + ldr r1, _081386F0 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2501,13 +2501,13 @@ _081386D4: b _08138C5A .align 2, 0 _081386EC: .4byte gPlayerParty -_081386F0: .4byte gUnknown_02024A60 +_081386F0: .4byte gActiveBank _081386F4: movs r0, 0x64 muls r0, r5 ldr r1, _0813870C @ =gPlayerParty adds r0, r1 - ldr r1, _08138710 @ =gUnknown_02024A60 + ldr r1, _08138710 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2516,13 +2516,13 @@ _081386F4: b _08138C5A .align 2, 0 _0813870C: .4byte gPlayerParty -_08138710: .4byte gUnknown_02024A60 +_08138710: .4byte gActiveBank _08138714: movs r0, 0x64 muls r0, r5 ldr r1, _0813872C @ =gPlayerParty adds r0, r1 - ldr r1, _08138730 @ =gUnknown_02024A60 + ldr r1, _08138730 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2531,13 +2531,13 @@ _08138714: b _08138C5A .align 2, 0 _0813872C: .4byte gPlayerParty -_08138730: .4byte gUnknown_02024A60 +_08138730: .4byte gActiveBank _08138734: movs r0, 0x64 muls r0, r5 ldr r1, _0813874C @ =gPlayerParty adds r0, r1 - ldr r1, _08138750 @ =gUnknown_02024A60 + ldr r1, _08138750 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2546,13 +2546,13 @@ _08138734: b _08138C5A .align 2, 0 _0813874C: .4byte gPlayerParty -_08138750: .4byte gUnknown_02024A60 +_08138750: .4byte gActiveBank _08138754: movs r0, 0x64 muls r0, r5 ldr r1, _0813876C @ =gPlayerParty adds r0, r1 - ldr r1, _08138770 @ =gUnknown_02024A60 + ldr r1, _08138770 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2561,13 +2561,13 @@ _08138754: b _08138C5A .align 2, 0 _0813876C: .4byte gPlayerParty -_08138770: .4byte gUnknown_02024A60 +_08138770: .4byte gActiveBank _08138774: movs r0, 0x64 muls r0, r5 ldr r1, _0813878C @ =gPlayerParty adds r0, r1 - ldr r1, _08138790 @ =gUnknown_02024A60 + ldr r1, _08138790 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2576,13 +2576,13 @@ _08138774: b _08138C5A .align 2, 0 _0813878C: .4byte gPlayerParty -_08138790: .4byte gUnknown_02024A60 +_08138790: .4byte gActiveBank _08138794: movs r0, 0x64 muls r0, r5 ldr r1, _081387AC @ =gPlayerParty adds r0, r1 - ldr r1, _081387B0 @ =gUnknown_02024A60 + ldr r1, _081387B0 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2591,13 +2591,13 @@ _08138794: b _08138C5A .align 2, 0 _081387AC: .4byte gPlayerParty -_081387B0: .4byte gUnknown_02024A60 +_081387B0: .4byte gActiveBank _081387B4: movs r0, 0x64 muls r0, r5 ldr r1, _081387CC @ =gPlayerParty adds r0, r1 - ldr r1, _081387D0 @ =gUnknown_02024A60 + ldr r1, _081387D0 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2606,13 +2606,13 @@ _081387B4: b _08138C5A .align 2, 0 _081387CC: .4byte gPlayerParty -_081387D0: .4byte gUnknown_02024A60 +_081387D0: .4byte gActiveBank _081387D4: movs r0, 0x64 muls r0, r5 ldr r1, _081387EC @ =gPlayerParty adds r0, r1 - ldr r1, _081387F0 @ =gUnknown_02024A60 + ldr r1, _081387F0 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2621,13 +2621,13 @@ _081387D4: b _08138C5A .align 2, 0 _081387EC: .4byte gPlayerParty -_081387F0: .4byte gUnknown_02024A60 +_081387F0: .4byte gActiveBank _081387F4: movs r0, 0x64 muls r0, r5 ldr r1, _0813880C @ =gPlayerParty adds r0, r1 - ldr r1, _08138810 @ =gUnknown_02024A60 + ldr r1, _08138810 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2636,13 +2636,13 @@ _081387F4: b _08138C5A .align 2, 0 _0813880C: .4byte gPlayerParty -_08138810: .4byte gUnknown_02024A60 +_08138810: .4byte gActiveBank _08138814: movs r0, 0x64 muls r0, r5 ldr r1, _0813882C @ =gPlayerParty adds r0, r1 - ldr r1, _08138830 @ =gUnknown_02024A60 + ldr r1, _08138830 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2651,13 +2651,13 @@ _08138814: b _08138C5A .align 2, 0 _0813882C: .4byte gPlayerParty -_08138830: .4byte gUnknown_02024A60 +_08138830: .4byte gActiveBank _08138834: movs r0, 0x64 muls r0, r5 ldr r1, _0813884C @ =gPlayerParty adds r0, r1 - ldr r1, _08138850 @ =gUnknown_02024A60 + ldr r1, _08138850 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2666,13 +2666,13 @@ _08138834: b _08138C5A .align 2, 0 _0813884C: .4byte gPlayerParty -_08138850: .4byte gUnknown_02024A60 +_08138850: .4byte gActiveBank _08138854: movs r0, 0x64 muls r0, r5 ldr r1, _0813886C @ =gPlayerParty adds r0, r1 - ldr r1, _08138870 @ =gUnknown_02024A60 + ldr r1, _08138870 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2681,14 +2681,14 @@ _08138854: b _08138C5A .align 2, 0 _0813886C: .4byte gPlayerParty -_08138870: .4byte gUnknown_02024A60 +_08138870: .4byte gActiveBank _08138874: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _081388DC @ =gPlayerParty adds r4, r0 - ldr r5, _081388E0 @ =gUnknown_02024A60 + ldr r5, _081388E0 @ =gActiveBank ldrb r2, [r5] lsls r2, 9 adds r2, r7 @@ -2731,13 +2731,13 @@ _08138874: b _08138994 .align 2, 0 _081388DC: .4byte gPlayerParty -_081388E0: .4byte gUnknown_02024A60 +_081388E0: .4byte gActiveBank _081388E4: movs r0, 0x64 muls r0, r5 ldr r1, _081388FC @ =gPlayerParty adds r0, r1 - ldr r1, _08138900 @ =gUnknown_02024A60 + ldr r1, _08138900 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2746,13 +2746,13 @@ _081388E4: b _08138C5A .align 2, 0 _081388FC: .4byte gPlayerParty -_08138900: .4byte gUnknown_02024A60 +_08138900: .4byte gActiveBank _08138904: movs r0, 0x64 muls r0, r5 ldr r1, _0813891C @ =gPlayerParty adds r0, r1 - ldr r1, _08138920 @ =gUnknown_02024A60 + ldr r1, _08138920 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2761,13 +2761,13 @@ _08138904: b _08138C5A .align 2, 0 _0813891C: .4byte gPlayerParty -_08138920: .4byte gUnknown_02024A60 +_08138920: .4byte gActiveBank _08138924: movs r0, 0x64 muls r0, r5 ldr r1, _0813893C @ =gPlayerParty adds r0, r1 - ldr r1, _08138940 @ =gUnknown_02024A60 + ldr r1, _08138940 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2776,13 +2776,13 @@ _08138924: b _08138C5A .align 2, 0 _0813893C: .4byte gPlayerParty -_08138940: .4byte gUnknown_02024A60 +_08138940: .4byte gActiveBank _08138944: movs r0, 0x64 muls r0, r5 ldr r1, _0813895C @ =gPlayerParty adds r0, r1 - ldr r1, _08138960 @ =gUnknown_02024A60 + ldr r1, _08138960 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2791,13 +2791,13 @@ _08138944: b _08138C5A .align 2, 0 _0813895C: .4byte gPlayerParty -_08138960: .4byte gUnknown_02024A60 +_08138960: .4byte gActiveBank _08138964: movs r0, 0x64 muls r0, r5 ldr r1, _0813897C @ =gPlayerParty adds r0, r1 - ldr r1, _08138980 @ =gUnknown_02024A60 + ldr r1, _08138980 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2806,13 +2806,13 @@ _08138964: b _08138C5A .align 2, 0 _0813897C: .4byte gPlayerParty -_08138980: .4byte gUnknown_02024A60 +_08138980: .4byte gActiveBank _08138984: movs r0, 0x64 muls r0, r5 ldr r1, _0813899C @ =gPlayerParty adds r0, r1 - ldr r1, _081389A0 @ =gUnknown_02024A60 + ldr r1, _081389A0 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2822,13 +2822,13 @@ _08138994: b _08138C5A .align 2, 0 _0813899C: .4byte gPlayerParty -_081389A0: .4byte gUnknown_02024A60 +_081389A0: .4byte gActiveBank _081389A4: movs r0, 0x64 muls r0, r5 ldr r1, _081389BC @ =gPlayerParty adds r0, r1 - ldr r1, _081389C0 @ =gUnknown_02024A60 + ldr r1, _081389C0 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2837,13 +2837,13 @@ _081389A4: b _08138C5A .align 2, 0 _081389BC: .4byte gPlayerParty -_081389C0: .4byte gUnknown_02024A60 +_081389C0: .4byte gActiveBank _081389C4: movs r0, 0x64 muls r0, r5 ldr r1, _081389DC @ =gPlayerParty adds r0, r1 - ldr r1, _081389E0 @ =gUnknown_02024A60 + ldr r1, _081389E0 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2852,13 +2852,13 @@ _081389C4: b _08138C5A .align 2, 0 _081389DC: .4byte gPlayerParty -_081389E0: .4byte gUnknown_02024A60 +_081389E0: .4byte gActiveBank _081389E4: movs r0, 0x64 muls r0, r5 ldr r1, _081389FC @ =gPlayerParty adds r0, r1 - ldr r1, _08138A00 @ =gUnknown_02024A60 + ldr r1, _08138A00 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2867,13 +2867,13 @@ _081389E4: b _08138C5A .align 2, 0 _081389FC: .4byte gPlayerParty -_08138A00: .4byte gUnknown_02024A60 +_08138A00: .4byte gActiveBank _08138A04: movs r0, 0x64 muls r0, r5 ldr r1, _08138A1C @ =gPlayerParty adds r0, r1 - ldr r1, _08138A20 @ =gUnknown_02024A60 + ldr r1, _08138A20 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2882,13 +2882,13 @@ _08138A04: b _08138C5A .align 2, 0 _08138A1C: .4byte gPlayerParty -_08138A20: .4byte gUnknown_02024A60 +_08138A20: .4byte gActiveBank _08138A24: movs r0, 0x64 muls r0, r5 ldr r1, _08138A3C @ =gPlayerParty adds r0, r1 - ldr r1, _08138A40 @ =gUnknown_02024A60 + ldr r1, _08138A40 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2897,13 +2897,13 @@ _08138A24: b _08138C5A .align 2, 0 _08138A3C: .4byte gPlayerParty -_08138A40: .4byte gUnknown_02024A60 +_08138A40: .4byte gActiveBank _08138A44: movs r0, 0x64 muls r0, r5 ldr r1, _08138A5C @ =gPlayerParty adds r0, r1 - ldr r1, _08138A60 @ =gUnknown_02024A60 + ldr r1, _08138A60 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2912,13 +2912,13 @@ _08138A44: b _08138C5A .align 2, 0 _08138A5C: .4byte gPlayerParty -_08138A60: .4byte gUnknown_02024A60 +_08138A60: .4byte gActiveBank _08138A64: movs r0, 0x64 muls r0, r5 ldr r1, _08138A7C @ =gPlayerParty adds r0, r1 - ldr r1, _08138A80 @ =gUnknown_02024A60 + ldr r1, _08138A80 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2927,13 +2927,13 @@ _08138A64: b _08138C5A .align 2, 0 _08138A7C: .4byte gPlayerParty -_08138A80: .4byte gUnknown_02024A60 +_08138A80: .4byte gActiveBank _08138A84: movs r0, 0x64 muls r0, r5 ldr r1, _08138A9C @ =gPlayerParty adds r0, r1 - ldr r1, _08138AA0 @ =gUnknown_02024A60 + ldr r1, _08138AA0 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2942,13 +2942,13 @@ _08138A84: b _08138C5A .align 2, 0 _08138A9C: .4byte gPlayerParty -_08138AA0: .4byte gUnknown_02024A60 +_08138AA0: .4byte gActiveBank _08138AA4: movs r0, 0x64 muls r0, r5 ldr r1, _08138ABC @ =gPlayerParty adds r0, r1 - ldr r1, _08138AC0 @ =gUnknown_02024A60 + ldr r1, _08138AC0 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2957,13 +2957,13 @@ _08138AA4: b _08138C5A .align 2, 0 _08138ABC: .4byte gPlayerParty -_08138AC0: .4byte gUnknown_02024A60 +_08138AC0: .4byte gActiveBank _08138AC4: movs r0, 0x64 muls r0, r5 ldr r1, _08138ADC @ =gPlayerParty adds r0, r1 - ldr r1, _08138AE0 @ =gUnknown_02024A60 + ldr r1, _08138AE0 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2972,13 +2972,13 @@ _08138AC4: b _08138C5A .align 2, 0 _08138ADC: .4byte gPlayerParty -_08138AE0: .4byte gUnknown_02024A60 +_08138AE0: .4byte gActiveBank _08138AE4: movs r0, 0x64 muls r0, r5 ldr r1, _08138AFC @ =gPlayerParty adds r0, r1 - ldr r1, _08138B00 @ =gUnknown_02024A60 + ldr r1, _08138B00 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -2987,13 +2987,13 @@ _08138AE4: b _08138C5A .align 2, 0 _08138AFC: .4byte gPlayerParty -_08138B00: .4byte gUnknown_02024A60 +_08138B00: .4byte gActiveBank _08138B04: movs r0, 0x64 muls r0, r5 ldr r1, _08138B1C @ =gPlayerParty adds r0, r1 - ldr r1, _08138B20 @ =gUnknown_02024A60 + ldr r1, _08138B20 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -3002,13 +3002,13 @@ _08138B04: b _08138C5A .align 2, 0 _08138B1C: .4byte gPlayerParty -_08138B20: .4byte gUnknown_02024A60 +_08138B20: .4byte gActiveBank _08138B24: movs r0, 0x64 muls r0, r5 ldr r1, _08138B3C @ =gPlayerParty adds r0, r1 - ldr r1, _08138B40 @ =gUnknown_02024A60 + ldr r1, _08138B40 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -3017,13 +3017,13 @@ _08138B24: b _08138C5A .align 2, 0 _08138B3C: .4byte gPlayerParty -_08138B40: .4byte gUnknown_02024A60 +_08138B40: .4byte gActiveBank _08138B44: movs r0, 0x64 muls r0, r5 ldr r1, _08138B5C @ =gPlayerParty adds r0, r1 - ldr r1, _08138B60 @ =gUnknown_02024A60 + ldr r1, _08138B60 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -3032,13 +3032,13 @@ _08138B44: b _08138C5A .align 2, 0 _08138B5C: .4byte gPlayerParty -_08138B60: .4byte gUnknown_02024A60 +_08138B60: .4byte gActiveBank _08138B64: movs r0, 0x64 muls r0, r5 ldr r1, _08138B7C @ =gPlayerParty adds r0, r1 - ldr r1, _08138B80 @ =gUnknown_02024A60 + ldr r1, _08138B80 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -3047,13 +3047,13 @@ _08138B64: b _08138C5A .align 2, 0 _08138B7C: .4byte gPlayerParty -_08138B80: .4byte gUnknown_02024A60 +_08138B80: .4byte gActiveBank _08138B84: movs r0, 0x64 muls r0, r5 ldr r1, _08138B9C @ =gPlayerParty adds r0, r1 - ldr r1, _08138BA0 @ =gUnknown_02024A60 + ldr r1, _08138BA0 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -3062,13 +3062,13 @@ _08138B84: b _08138C5A .align 2, 0 _08138B9C: .4byte gPlayerParty -_08138BA0: .4byte gUnknown_02024A60 +_08138BA0: .4byte gActiveBank _08138BA4: movs r0, 0x64 muls r0, r5 ldr r1, _08138BBC @ =gPlayerParty adds r0, r1 - ldr r1, _08138BC0 @ =gUnknown_02024A60 + ldr r1, _08138BC0 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -3077,13 +3077,13 @@ _08138BA4: b _08138C5A .align 2, 0 _08138BBC: .4byte gPlayerParty -_08138BC0: .4byte gUnknown_02024A60 +_08138BC0: .4byte gActiveBank _08138BC4: movs r0, 0x64 muls r0, r5 ldr r1, _08138BDC @ =gPlayerParty adds r0, r1 - ldr r1, _08138BE0 @ =gUnknown_02024A60 + ldr r1, _08138BE0 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -3092,13 +3092,13 @@ _08138BC4: b _08138C5A .align 2, 0 _08138BDC: .4byte gPlayerParty -_08138BE0: .4byte gUnknown_02024A60 +_08138BE0: .4byte gActiveBank _08138BE4: movs r0, 0x64 muls r0, r5 ldr r1, _08138BFC @ =gPlayerParty adds r0, r1 - ldr r1, _08138C00 @ =gUnknown_02024A60 + ldr r1, _08138C00 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -3107,13 +3107,13 @@ _08138BE4: b _08138C5A .align 2, 0 _08138BFC: .4byte gPlayerParty -_08138C00: .4byte gUnknown_02024A60 +_08138C00: .4byte gActiveBank _08138C04: movs r0, 0x64 muls r0, r5 ldr r1, _08138C1C @ =gPlayerParty adds r0, r1 - ldr r1, _08138C20 @ =gUnknown_02024A60 + ldr r1, _08138C20 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -3122,13 +3122,13 @@ _08138C04: b _08138C5A .align 2, 0 _08138C1C: .4byte gPlayerParty -_08138C20: .4byte gUnknown_02024A60 +_08138C20: .4byte gActiveBank _08138C24: movs r0, 0x64 muls r0, r5 ldr r1, _08138C3C @ =gPlayerParty adds r0, r1 - ldr r1, _08138C40 @ =gUnknown_02024A60 + ldr r1, _08138C40 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 @@ -3137,21 +3137,21 @@ _08138C24: b _08138C5A .align 2, 0 _08138C3C: .4byte gPlayerParty -_08138C40: .4byte gUnknown_02024A60 +_08138C40: .4byte gActiveBank _08138C44: movs r0, 0x64 muls r0, r5 ldr r1, _08138C84 @ =gPlayerParty adds r0, r1 - ldr r1, _08138C88 @ =gUnknown_02024A60 + ldr r1, _08138C88 @ =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x36 bl SetMonData _08138C5A: - ldr r2, _08138C8C @ =gUnknown_02024A6A - ldr r0, _08138C88 @ =gUnknown_02024A60 + ldr r2, _08138C8C @ =gBattlePartyID + ldr r0, _08138C88 @ =gActiveBank ldrb r1, [r0] lsls r0, r1, 1 adds r0, r2 @@ -3171,14 +3171,14 @@ _08138C5A: bx r0 .align 2, 0 _08138C84: .4byte gPlayerParty -_08138C88: .4byte gUnknown_02024A60 -_08138C8C: .4byte gUnknown_02024A6A +_08138C88: .4byte gActiveBank +_08138C8C: .4byte gBattlePartyID thumb_func_end sub_8138294 thumb_func_start sub_8138C90 sub_8138C90: @ 8138C90 push {lr} - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_8138C90 @@ -3186,7 +3186,7 @@ sub_8138C90: @ 8138C90 thumb_func_start sub_8138C9C sub_8138C9C: @ 8138C9C push {lr} - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_8138C9C @@ -3194,7 +3194,7 @@ sub_8138C9C: @ 8138C9C thumb_func_start sub_8138CA8 sub_8138CA8: @ 8138CA8 push {lr} - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_8138CA8 @@ -3202,8 +3202,8 @@ sub_8138CA8: @ 8138CA8 thumb_func_start sub_8138CB4 sub_8138CB4: @ 8138CB4 push {r4-r6,lr} - ldr r0, _08138CE0 @ =gUnknown_02023A60 - ldr r6, _08138CE4 @ =gUnknown_02024A60 + ldr r0, _08138CE0 @ =gBattleBufferA + ldr r6, _08138CE4 @ =gActiveBank ldrb r2, [r6] lsls r1, r2, 9 adds r0, 0x1 @@ -3215,7 +3215,7 @@ sub_8138CB4: @ 8138CB4 adds r1, r2, 0 movs r3, 0x1 bl move_anim_start_t4 - ldr r0, _08138CE8 @ =gUnknown_03004330 + ldr r0, _08138CE8 @ =gBattleBankFunc ldrb r1, [r6] lsls r1, 2 adds r1, r0 @@ -3223,12 +3223,12 @@ sub_8138CB4: @ 8138CB4 str r0, [r1] b _08138D26 .align 2, 0 -_08138CE0: .4byte gUnknown_02023A60 -_08138CE4: .4byte gUnknown_02024A60 -_08138CE8: .4byte gUnknown_03004330 +_08138CE0: .4byte gBattleBufferA +_08138CE4: .4byte gActiveBank +_08138CE8: .4byte gBattleBankFunc _08138CEC: .4byte sub_813789C _08138CF0: - ldr r5, _08138D2C @ =gUnknown_02024BE0 + ldr r5, _08138D2C @ =gObjectBankIDs adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 @@ -3245,31 +3245,31 @@ _08138CF0: lsls r0, 2 adds r0, r4 bl DestroySprite - ldr r1, _08138D34 @ =gUnknown_03004340 + ldr r1, _08138D34 @ =gHealthboxIDs ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] bl sub_8043DB0 - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted _08138D26: pop {r4-r6} pop {r0} bx r0 .align 2, 0 -_08138D2C: .4byte gUnknown_02024BE0 +_08138D2C: .4byte gObjectBankIDs _08138D30: .4byte gSprites -_08138D34: .4byte gUnknown_03004340 +_08138D34: .4byte gHealthboxIDs thumb_func_end sub_8138CB4 thumb_func_start sub_8138D38 sub_8138D38: @ 8138D38 push {r4-r6,lr} - ldr r4, _08138DE0 @ =gUnknown_02024A60 + ldr r4, _08138DE0 @ =gActiveBank ldrb r1, [r4] movs r0, 0x2 bl sub_8031AF4 ldrb r0, [r4] - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -3288,7 +3288,7 @@ sub_8138D38: @ 8138D38 movs r1, 0x50 movs r3, 0x1E bl CreateSprite - ldr r6, _08138DEC @ =gUnknown_02024BE0 + ldr r6, _08138DEC @ =gObjectBankIDs ldrb r1, [r4] adds r1, r6 strb r0, [r1] @@ -3334,7 +3334,7 @@ sub_8138D38: @ 8138D38 adds r0, r5 ldr r1, _08138DF8 @ =sub_80313A0 str r1, [r0] - ldr r1, _08138DFC @ =gUnknown_03004330 + ldr r1, _08138DFC @ =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 adds r0, r1 @@ -3344,26 +3344,26 @@ sub_8138D38: @ 8138D38 pop {r0} bx r0 .align 2, 0 -_08138DE0: .4byte gUnknown_02024A60 +_08138DE0: .4byte gActiveBank _08138DE4: .4byte gUnknown_02024E8C _08138DE8: .4byte gTrainerBackPicCoords -_08138DEC: .4byte gUnknown_02024BE0 +_08138DEC: .4byte gObjectBankIDs _08138DF0: .4byte gSprites _08138DF4: .4byte 0x0000fffe _08138DF8: .4byte sub_80313A0 -_08138DFC: .4byte gUnknown_03004330 +_08138DFC: .4byte gBattleBankFunc _08138E00: .4byte sub_813741C thumb_func_end sub_8138D38 thumb_func_start sub_8138E04 sub_8138E04: @ 8138E04 push {r4-r6,lr} - ldr r4, _08138EAC @ =gUnknown_02024A60 + ldr r4, _08138EAC @ =gActiveBank ldrb r1, [r4] movs r0, 0x2 bl sub_8031AF4 ldrb r0, [r4] - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -3382,7 +3382,7 @@ sub_8138E04: @ 8138E04 movs r1, 0x50 movs r3, 0x1E bl CreateSprite - ldr r6, _08138EB8 @ =gUnknown_02024BE0 + ldr r6, _08138EB8 @ =gObjectBankIDs ldrb r1, [r4] adds r1, r6 strb r0, [r1] @@ -3428,7 +3428,7 @@ sub_8138E04: @ 8138E04 adds r0, r5 ldr r1, _08138EC4 @ =sub_80313A0 str r1, [r0] - ldr r1, _08138EC8 @ =gUnknown_03004330 + ldr r1, _08138EC8 @ =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 adds r0, r1 @@ -3438,21 +3438,21 @@ sub_8138E04: @ 8138E04 pop {r0} bx r0 .align 2, 0 -_08138EAC: .4byte gUnknown_02024A60 +_08138EAC: .4byte gActiveBank _08138EB0: .4byte gUnknown_02024E8C _08138EB4: .4byte gTrainerBackPicCoords -_08138EB8: .4byte gUnknown_02024BE0 +_08138EB8: .4byte gObjectBankIDs _08138EBC: .4byte gSprites _08138EC0: .4byte 0x0000ffa0 _08138EC4: .4byte sub_80313A0 -_08138EC8: .4byte gUnknown_03004330 +_08138EC8: .4byte gBattleBankFunc _08138ECC: .4byte sub_8137908 thumb_func_end sub_8138E04 thumb_func_start sub_8138ED0 sub_8138ED0: @ 8138ED0 push {lr} - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_8138ED0 @@ -3460,7 +3460,7 @@ sub_8138ED0: @ 8138ED0 thumb_func_start sub_8138EDC sub_8138EDC: @ 8138EDC push {lr} - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_8138EDC @@ -3468,7 +3468,7 @@ sub_8138EDC: @ 8138EDC thumb_func_start sub_8138EE8 sub_8138EE8: @ 8138EE8 push {lr} - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_8138EE8 @@ -3479,13 +3479,13 @@ sub_8138EF4: @ 8138EF4 ldr r1, _08138F30 @ =0x02017840 movs r0, 0x4 strb r0, [r1, 0x8] - ldr r1, _08138F34 @ =gUnknown_02024E6D + ldr r1, _08138F34 @ =gDoingBattleAnim movs r0, 0x1 strb r0, [r1] - ldr r5, _08138F38 @ =gUnknown_02024A60 + ldr r5, _08138F38 @ =gActiveBank ldrb r4, [r5] movs r0, 0x1 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 @@ -3493,7 +3493,7 @@ sub_8138EF4: @ 8138EF4 adds r1, r4, 0 movs r3, 0x4 bl move_anim_start_t4 - ldr r1, _08138F3C @ =gUnknown_03004330 + ldr r1, _08138F3C @ =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 adds r0, r1 @@ -3504,17 +3504,17 @@ sub_8138EF4: @ 8138EF4 bx r0 .align 2, 0 _08138F30: .4byte 0x02017840 -_08138F34: .4byte gUnknown_02024E6D -_08138F38: .4byte gUnknown_02024A60 -_08138F3C: .4byte gUnknown_03004330 +_08138F34: .4byte gDoingBattleAnim +_08138F38: .4byte gActiveBank +_08138F3C: .4byte gBattleBankFunc _08138F40: .4byte bx_wait_t5 thumb_func_end sub_8138EF4 thumb_func_start sub_8138F44 sub_8138F44: @ 8138F44 push {r4,r5,lr} - ldr r1, _08138F88 @ =gUnknown_02023A60 - ldr r5, _08138F8C @ =gUnknown_02024A60 + ldr r1, _08138F88 @ =gBattleBufferA + ldr r5, _08138F8C @ =gActiveBank ldrb r0, [r5] lsls r0, 9 adds r1, 0x1 @@ -3522,12 +3522,12 @@ sub_8138F44: @ 8138F44 ldrb r1, [r0] ldr r0, _08138F90 @ =0x02017840 strb r1, [r0, 0x8] - ldr r1, _08138F94 @ =gUnknown_02024E6D + ldr r1, _08138F94 @ =gDoingBattleAnim movs r0, 0x1 strb r0, [r1] ldrb r4, [r5] movs r0, 0x1 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 @@ -3535,7 +3535,7 @@ sub_8138F44: @ 8138F44 adds r1, r4, 0 movs r3, 0x4 bl move_anim_start_t4 - ldr r1, _08138F98 @ =gUnknown_03004330 + ldr r1, _08138F98 @ =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 adds r0, r1 @@ -3545,18 +3545,18 @@ sub_8138F44: @ 8138F44 pop {r0} bx r0 .align 2, 0 -_08138F88: .4byte gUnknown_02023A60 -_08138F8C: .4byte gUnknown_02024A60 +_08138F88: .4byte gBattleBufferA +_08138F8C: .4byte gActiveBank _08138F90: .4byte 0x02017840 -_08138F94: .4byte gUnknown_02024E6D -_08138F98: .4byte gUnknown_03004330 +_08138F94: .4byte gDoingBattleAnim +_08138F98: .4byte gBattleBankFunc _08138F9C: .4byte bx_wait_t5 thumb_func_end sub_8138F44 thumb_func_start sub_8138FA0 sub_8138FA0: @ 8138FA0 push {lr} - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_8138FA0 @@ -3564,9 +3564,9 @@ sub_8138FA0: @ 8138FA0 thumb_func_start sub_8138FAC sub_8138FAC: @ 8138FAC push {r4-r6,lr} - ldr r0, _08139080 @ =gUnknown_02023A60 + ldr r0, _08139080 @ =gBattleBufferA mov r12, r0 - ldr r6, _08139084 @ =gUnknown_02024A60 + ldr r6, _08139084 @ =gActiveBank ldrb r2, [r6] lsls r2, 9 adds r0, 0x1 @@ -3584,7 +3584,7 @@ sub_8138FAC: @ 8138FAC adds r2, r1 ldrb r1, [r2] strb r1, [r5] - ldr r4, _0813908C @ =gUnknown_0202F7BC + ldr r4, _0813908C @ =gMovePowerMoveAnim ldrb r2, [r6] lsls r2, 9 mov r1, r12 @@ -3598,7 +3598,7 @@ sub_8138FAC: @ 8138FAC lsls r1, 8 orrs r3, r1 strh r3, [r4] - ldr r4, _08139090 @ =gUnknown_0202F7B8 + ldr r4, _08139090 @ =gMoveDmgMoveAnim ldrb r2, [r6] lsls r2, 9 mov r1, r12 @@ -3624,7 +3624,7 @@ sub_8138FAC: @ 8138FAC lsls r1, 24 orrs r3, r1 str r3, [r4] - ldr r3, _08139094 @ =gUnknown_0202F7BE + ldr r3, _08139094 @ =gHappinessMoveAnim ldrb r1, [r6] lsls r1, 9 mov r2, r12 @@ -3632,7 +3632,7 @@ sub_8138FAC: @ 8138FAC adds r1, r2 ldrb r1, [r1] strb r1, [r3] - ldr r4, _08139098 @ =gUnknown_0202F7C0 + ldr r4, _08139098 @ =gWeatherMoveAnim ldrb r2, [r6] lsls r2, 9 mov r1, r12 @@ -3646,14 +3646,14 @@ sub_8138FAC: @ 8138FAC lsls r1, 8 orrs r3, r1 strh r3, [r4] - ldr r3, _0813909C @ =gUnknown_0202F7B4 + ldr r3, _0813909C @ =gDisableStructMoveAnim ldrb r2, [r6] lsls r2, 9 mov r1, r12 adds r1, 0x10 adds r2, r1 str r2, [r3] - ldr r3, _081390A0 @ =gUnknown_02024E70 + ldr r3, _081390A0 @ =gPID_perBank ldrb r1, [r6] lsls r1, 2 adds r1, r3 @@ -3665,18 +3665,18 @@ sub_8138FAC: @ 8138FAC lsrs r2, r0, 24 cmp r2, 0 beq _081390A4 - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted b _081390BE .align 2, 0 -_08139080: .4byte gUnknown_02023A60 -_08139084: .4byte gUnknown_02024A60 +_08139080: .4byte gBattleBufferA +_08139084: .4byte gActiveBank _08139088: .4byte gUnknown_0202F7C4 -_0813908C: .4byte gUnknown_0202F7BC -_08139090: .4byte gUnknown_0202F7B8 -_08139094: .4byte gUnknown_0202F7BE -_08139098: .4byte gUnknown_0202F7C0 -_0813909C: .4byte gUnknown_0202F7B4 -_081390A0: .4byte gUnknown_02024E70 +_0813908C: .4byte gMovePowerMoveAnim +_08139090: .4byte gMoveDmgMoveAnim +_08139094: .4byte gHappinessMoveAnim +_08139098: .4byte gWeatherMoveAnim +_0813909C: .4byte gDisableStructMoveAnim +_081390A0: .4byte gPID_perBank _081390A4: ldrb r1, [r6] lsls r0, r1, 1 @@ -3685,7 +3685,7 @@ _081390A4: ldr r1, _081390C4 @ =0x02017810 adds r0, r1 strb r2, [r0, 0x4] - ldr r1, _081390C8 @ =gUnknown_03004330 + ldr r1, _081390C8 @ =gBattleBankFunc ldrb r0, [r6] lsls r0, 2 adds r0, r1 @@ -3697,7 +3697,7 @@ _081390BE: bx r0 .align 2, 0 _081390C4: .4byte 0x02017810 -_081390C8: .4byte gUnknown_03004330 +_081390C8: .4byte gBattleBankFunc _081390CC: .4byte sub_81390D0 thumb_func_end sub_8138FAC @@ -3706,8 +3706,8 @@ sub_81390D0: @ 81390D0 push {r4-r7,lr} mov r7, r8 push {r7} - ldr r2, _0813910C @ =gUnknown_02023A60 - ldr r5, _08139110 @ =gUnknown_02024A60 + ldr r2, _0813910C @ =gBattleBufferA + ldr r5, _08139110 @ =gActiveBank ldrb r3, [r5] lsls r1, r3, 9 adds r0, r2, 0x1 @@ -3733,8 +3733,8 @@ sub_81390D0: @ 81390D0 beq _08139122 b _081391FC .align 2, 0 -_0813910C: .4byte gUnknown_02023A60 -_08139110: .4byte gUnknown_02024A60 +_0813910C: .4byte gBattleBufferA +_08139110: .4byte gActiveBank _08139114: .4byte 0x02017810 _08139118: cmp r2, 0x2 @@ -3845,7 +3845,7 @@ _081391C4: lsls r0, 2 adds r0, r6 strb r4, [r0, 0x4] - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted _081391FC: pop {r3} mov r8, r3 @@ -3863,7 +3863,7 @@ sub_8139208: @ 8139208 strh r1, [r0] ldr r0, _08139258 @ =gUnknown_030042A0 strh r1, [r0] - ldr r5, _0813925C @ =gUnknown_02024A60 + ldr r5, _0813925C @ =gActiveBank ldrb r0, [r5] lsls r0, 9 ldr r1, _08139260 @ =gUnknown_02023A62 @@ -3871,18 +3871,18 @@ sub_8139208: @ 8139208 ldrh r0, [r4] cmp r0, 0x2 bne _0813922A - bl sub_814A7FC + bl DestroyMenuCursor _0813922A: ldrh r0, [r4] - bl sub_8120AA8 + bl BufferStringBattle ldr r0, _08139264 @ =gUnknown_03004210 - ldr r1, _08139268 @ =gUnknown_020238CC + ldr r1, _08139268 @ =gDisplayedStringBattle movs r2, 0xF str r2, [sp] movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 - ldr r1, _0813926C @ =gUnknown_03004330 + ldr r1, _0813926C @ =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 adds r0, r1 @@ -3895,29 +3895,29 @@ _0813922A: .align 2, 0 _08139254: .4byte gUnknown_030042A4 _08139258: .4byte gUnknown_030042A0 -_0813925C: .4byte gUnknown_02024A60 +_0813925C: .4byte gActiveBank _08139260: .4byte gUnknown_02023A62 _08139264: .4byte gUnknown_03004210 -_08139268: .4byte gUnknown_020238CC -_0813926C: .4byte gUnknown_03004330 +_08139268: .4byte gDisplayedStringBattle +_0813926C: .4byte gBattleBankFunc _08139270: .4byte sub_8137454 thumb_func_end sub_8139208 thumb_func_start dp01t_11_5_message_for_player_only dp01t_11_5_message_for_player_only: @ 8139274 push {lr} - ldr r0, _0813928C @ =gUnknown_02024A60 + ldr r0, _0813928C @ =gActiveBank ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08139290 bl sub_8139208 b _08139294 .align 2, 0 -_0813928C: .4byte gUnknown_02024A60 +_0813928C: .4byte gActiveBank _08139290: - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted _08139294: pop {r0} bx r0 @@ -3954,8 +3954,8 @@ sub_8139298: @ 8139298 movs r2, 0x2 movs r3, 0x23 bl FillWindowRect_DefaultPalette - ldr r1, _08139358 @ =gUnknown_03004330 - ldr r0, _0813935C @ =gUnknown_02024A60 + ldr r1, _08139358 @ =gBattleBankFunc + ldr r0, _0813935C @ =gActiveBank ldrb r0, [r0] lsls r0, 2 adds r0, r1 @@ -3989,9 +3989,9 @@ _0813930C: movs r1, 0 bl sub_802E3E4 ldr r0, _08139370 @ =gUnknown_08400CCC - bl get_battle_strings_ + bl StrCpyDecodeToDisplayedStringBattle ldr r4, _08139354 @ =gUnknown_03004210 - ldr r1, _08139374 @ =gUnknown_020238CC + ldr r1, _08139374 @ =gDisplayedStringBattle movs r2, 0xDC lsls r2, 1 movs r0, 0x23 @@ -4009,20 +4009,20 @@ _0813930C: _0813934C: .4byte gUnknown_030042A4 _08139350: .4byte gUnknown_030042A0 _08139354: .4byte gUnknown_03004210 -_08139358: .4byte gUnknown_03004330 -_0813935C: .4byte gUnknown_02024A60 +_08139358: .4byte gBattleBankFunc +_0813935C: .4byte gActiveBank _08139360: .4byte sub_81372BC _08139364: .4byte gUnknown_08400CF3 _08139368: .4byte 0x0000ffff _0813936C: .4byte 0x00002d9f _08139370: .4byte gUnknown_08400CCC -_08139374: .4byte gUnknown_020238CC +_08139374: .4byte gDisplayedStringBattle thumb_func_end sub_8139298 thumb_func_start sub_8139378 sub_8139378: @ 8139378 push {lr} - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_8139378 @@ -4061,7 +4061,7 @@ _081393B2: lsls r0, 24 cmp r0, 0 bne _081393DE - bl sub_814A7FC + bl DestroyMenuCursor movs r0, 0x5 bl PlaySE movs r2, 0x80 @@ -4069,7 +4069,7 @@ _081393B2: movs r0, 0x1 movs r1, 0xA bl dp01_build_cmdbuf_x21_a_bb - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted _081393DE: pop {r4,r5} pop {r0} @@ -4090,30 +4090,30 @@ sub_81393EC: @ 81393EC movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade - ldr r1, _0813941C @ =gUnknown_03004330 - ldr r2, _08139420 @ =gUnknown_02024A60 + ldr r1, _0813941C @ =gBattleBankFunc + ldr r2, _08139420 @ =gActiveBank ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, _08139424 @ =sub_81374C4 str r1, [r0] - ldr r1, _08139428 @ =gUnknown_02024E6C + ldr r1, _08139428 @ =gBankInMenu ldrb r0, [r2] strb r0, [r1] add sp, 0x4 pop {r0} bx r0 .align 2, 0 -_0813941C: .4byte gUnknown_03004330 -_08139420: .4byte gUnknown_02024A60 +_0813941C: .4byte gBattleBankFunc +_08139420: .4byte gActiveBank _08139424: .4byte sub_81374C4 -_08139428: .4byte gUnknown_02024E6C +_08139428: .4byte gBankInMenu thumb_func_end sub_81393EC thumb_func_start sub_813942C sub_813942C: @ 813942C push {lr} - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_813942C @@ -4121,7 +4121,7 @@ sub_813942C: @ 813942C thumb_func_start sub_8139438 sub_8139438: @ 8139438 push {lr} - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_8139438 @@ -4135,8 +4135,8 @@ sub_8139444: @ 8139444 sub sp, 0x4 movs r0, 0 bl load_gfxc_health_bar - ldr r3, _081394BC @ =gUnknown_02023A60 - ldr r0, _081394C0 @ =gUnknown_02024A60 + ldr r3, _081394BC @ =gBattleBufferA + ldr r0, _081394C0 @ =gActiveBank mov r9, r0 ldrb r4, [r0] lsls r2, r4, 9 @@ -4153,7 +4153,7 @@ sub_8139444: @ 8139444 ldr r0, _081394C4 @ =0x00007fff cmp r7, r0 beq _081394D4 - ldr r6, _081394C8 @ =gUnknown_02024A6A + ldr r6, _081394C8 @ =gBattlePartyID lsls r0, r4, 1 adds r0, r6 ldrh r0, [r0] @@ -4176,7 +4176,7 @@ sub_8139444: @ 8139444 adds r3, r0, 0 mov r1, r9 ldrb r0, [r1] - ldr r1, _081394D0 @ =gUnknown_03004340 + ldr r1, _081394D0 @ =gHealthboxIDs adds r1, r0, r1 ldrb r1, [r1] str r7, [sp] @@ -4184,14 +4184,14 @@ sub_8139444: @ 8139444 bl sub_8043D84 b _0813950E .align 2, 0 -_081394BC: .4byte gUnknown_02023A60 -_081394C0: .4byte gUnknown_02024A60 +_081394BC: .4byte gBattleBufferA +_081394C0: .4byte gActiveBank _081394C4: .4byte 0x00007fff -_081394C8: .4byte gUnknown_02024A6A +_081394C8: .4byte gBattlePartyID _081394CC: .4byte gPlayerParty -_081394D0: .4byte gUnknown_03004340 +_081394D0: .4byte gHealthboxIDs _081394D4: - ldr r1, _0813952C @ =gUnknown_02024A6A + ldr r1, _0813952C @ =gBattlePartyID lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] @@ -4204,7 +4204,7 @@ _081394D4: adds r2, r0, 0 mov r1, r9 ldrb r0, [r1] - ldr r4, _08139534 @ =gUnknown_03004340 + ldr r4, _08139534 @ =gHealthboxIDs adds r1, r0, r4 ldrb r1, [r1] str r7, [sp] @@ -4218,8 +4218,8 @@ _081394D4: movs r2, 0 bl sub_80440EC _0813950E: - ldr r1, _08139538 @ =gUnknown_03004330 - ldr r0, _0813953C @ =gUnknown_02024A60 + ldr r1, _08139538 @ =gBattleBankFunc + ldr r0, _0813953C @ =gActiveBank ldrb r0, [r0] lsls r0, 2 adds r0, r1 @@ -4233,18 +4233,18 @@ _0813950E: pop {r0} bx r0 .align 2, 0 -_0813952C: .4byte gUnknown_02024A6A +_0813952C: .4byte gBattlePartyID _08139530: .4byte gPlayerParty -_08139534: .4byte gUnknown_03004340 -_08139538: .4byte gUnknown_03004330 -_0813953C: .4byte gUnknown_02024A60 +_08139534: .4byte gHealthboxIDs +_08139538: .4byte gBattleBankFunc +_0813953C: .4byte gActiveBank _08139540: .4byte sub_81377B0 thumb_func_end sub_8139444 thumb_func_start sub_8139544 sub_8139544: @ 8139544 push {lr} - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_8139544 @@ -4252,7 +4252,7 @@ sub_8139544: @ 8139544 thumb_func_start sub_8139550 sub_8139550: @ 8139550 push {lr} - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_8139550 @@ -4260,7 +4260,7 @@ sub_8139550: @ 8139550 thumb_func_start sub_813955C sub_813955C: @ 813955C push {lr} - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_813955C @@ -4268,7 +4268,7 @@ sub_813955C: @ 813955C thumb_func_start sub_8139568 sub_8139568: @ 8139568 push {lr} - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_8139568 @@ -4276,7 +4276,7 @@ sub_8139568: @ 8139568 thumb_func_start sub_8139574 sub_8139574: @ 8139574 push {lr} - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_8139574 @@ -4284,7 +4284,7 @@ sub_8139574: @ 8139574 thumb_func_start sub_8139580 sub_8139580: @ 8139580 push {lr} - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_8139580 @@ -4292,7 +4292,7 @@ sub_8139580: @ 8139580 thumb_func_start sub_813958C sub_813958C: @ 813958C push {lr} - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_813958C @@ -4300,7 +4300,7 @@ sub_813958C: @ 813958C thumb_func_start sub_8139598 sub_8139598: @ 8139598 push {lr} - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_8139598 @@ -4308,7 +4308,7 @@ sub_8139598: @ 8139598 thumb_func_start sub_81395A4 sub_81395A4: @ 81395A4 push {lr} - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_81395A4 @@ -4316,7 +4316,7 @@ sub_81395A4: @ 81395A4 thumb_func_start sub_81395B0 sub_81395B0: @ 81395B0 push {lr} - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_81395B0 @@ -4324,7 +4324,7 @@ sub_81395B0: @ 81395B0 thumb_func_start sub_81395BC sub_81395BC: @ 81395BC push {lr} - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_81395BC @@ -4332,7 +4332,7 @@ sub_81395BC: @ 81395BC thumb_func_start sub_81395C8 sub_81395C8: @ 81395C8 push {lr} - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_81395C8 @@ -4340,7 +4340,7 @@ sub_81395C8: @ 81395C8 thumb_func_start sub_81395D4 sub_81395D4: @ 81395D4 push {lr} - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_81395D4 @@ -4348,7 +4348,7 @@ sub_81395D4: @ 81395D4 thumb_func_start sub_81395E0 sub_81395E0: @ 81395E0 push {lr} - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_81395E0 @@ -4356,7 +4356,7 @@ sub_81395E0: @ 81395E0 thumb_func_start sub_81395EC sub_81395EC: @ 81395EC push {lr} - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_81395EC @@ -4364,7 +4364,7 @@ sub_81395EC: @ 81395EC thumb_func_start sub_81395F8 sub_81395F8: @ 81395F8 push {lr} - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_81395F8 @@ -4373,8 +4373,8 @@ sub_81395F8: @ 81395F8 sub_8139604: @ 8139604 push {r4,lr} ldr r3, _0813962C @ =gSprites - ldr r2, _08139630 @ =gUnknown_02024BE0 - ldr r4, _08139634 @ =gUnknown_02024A60 + ldr r2, _08139630 @ =gObjectBankIDs + ldr r4, _08139634 @ =gActiveBank ldrb r0, [r4] adds r0, r2 ldrb r1, [r0] @@ -4387,14 +4387,14 @@ sub_8139604: @ 8139604 lsls r0, 29 cmp r0, 0 bge _08139638 - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted b _08139662 .align 2, 0 _0813962C: .4byte gSprites -_08139630: .4byte gUnknown_02024BE0 -_08139634: .4byte gUnknown_02024A60 +_08139630: .4byte gObjectBankIDs +_08139634: .4byte gActiveBank _08139638: - ldr r1, _08139668 @ =gUnknown_02024E6D + ldr r1, _08139668 @ =gDoingBattleAnim movs r0, 0x1 strb r0, [r1] ldrb r0, [r4] @@ -4408,7 +4408,7 @@ _08139638: strh r1, [r0, 0x30] ldrb r0, [r4] bl sub_8047858 - ldr r1, _0813966C @ =gUnknown_03004330 + ldr r1, _0813966C @ =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 adds r0, r1 @@ -4419,15 +4419,15 @@ _08139662: pop {r0} bx r0 .align 2, 0 -_08139668: .4byte gUnknown_02024E6D -_0813966C: .4byte gUnknown_03004330 +_08139668: .4byte gDoingBattleAnim +_0813966C: .4byte gBattleBankFunc _08139670: .4byte bx_blink_t5 thumb_func_end sub_8139604 thumb_func_start sub_8139674 sub_8139674: @ 8139674 push {lr} - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_8139674 @@ -4435,8 +4435,8 @@ sub_8139674: @ 8139674 thumb_func_start sub_8139680 sub_8139680: @ 8139680 push {lr} - ldr r2, _081396A8 @ =gUnknown_02023A60 - ldr r0, _081396AC @ =gUnknown_02024A60 + ldr r2, _081396A8 @ =gBattleBufferA + ldr r0, _081396AC @ =gActiveBank ldrb r1, [r0] lsls r1, 9 adds r0, r2, 0x1 @@ -4448,19 +4448,19 @@ sub_8139680: @ 8139680 lsls r1, 8 orrs r0, r1 bl PlaySE - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted pop {r0} bx r0 .align 2, 0 -_081396A8: .4byte gUnknown_02023A60 -_081396AC: .4byte gUnknown_02024A60 +_081396A8: .4byte gBattleBufferA +_081396AC: .4byte gActiveBank thumb_func_end sub_8139680 thumb_func_start sub_81396B0 sub_81396B0: @ 81396B0 push {lr} - ldr r2, _081396D8 @ =gUnknown_02023A60 - ldr r0, _081396DC @ =gUnknown_02024A60 + ldr r2, _081396D8 @ =gBattleBufferA + ldr r0, _081396DC @ =gActiveBank ldrb r1, [r0] lsls r1, 9 adds r0, r2, 0x1 @@ -4472,19 +4472,19 @@ sub_81396B0: @ 81396B0 lsls r1, 8 orrs r0, r1 bl PlayFanfare - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted pop {r0} bx r0 .align 2, 0 -_081396D8: .4byte gUnknown_02023A60 -_081396DC: .4byte gUnknown_02024A60 +_081396D8: .4byte gBattleBufferA +_081396DC: .4byte gActiveBank thumb_func_end sub_81396B0 thumb_func_start sub_81396E0 sub_81396E0: @ 81396E0 push {lr} - ldr r1, _08139710 @ =gUnknown_02024A6A - ldr r0, _08139714 @ =gUnknown_02024A60 + ldr r1, _08139710 @ =gBattlePartyID + ldr r0, _08139714 @ =gActiveBank ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -4499,20 +4499,20 @@ sub_81396E0: @ 81396E0 lsrs r0, 16 movs r1, 0x19 bl PlayCry1 - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted pop {r0} bx r0 .align 2, 0 -_08139710: .4byte gUnknown_02024A6A -_08139714: .4byte gUnknown_02024A60 +_08139710: .4byte gBattlePartyID +_08139714: .4byte gActiveBank _08139718: .4byte gPlayerParty thumb_func_end sub_81396E0 thumb_func_start dp01t_2E_5_battle_intro dp01t_2E_5_battle_intro: @ 813971C push {lr} - ldr r1, _08139744 @ =gUnknown_02023A60 - ldr r0, _08139748 @ =gUnknown_02024A60 + ldr r1, _08139744 @ =gBattleBufferA + ldr r0, _08139748 @ =gActiveBank ldrb r0, [r0] lsls r0, 9 adds r1, 0x1 @@ -4524,20 +4524,20 @@ dp01t_2E_5_battle_intro: @ 813971C movs r1, 0x1 orrs r0, r1 strh r0, [r2] - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted pop {r0} bx r0 .align 2, 0 -_08139744: .4byte gUnknown_02023A60 -_08139748: .4byte gUnknown_02024A60 +_08139744: .4byte gBattleBufferA +_08139748: .4byte gActiveBank _0813974C: .4byte gUnknown_02024DE8 thumb_func_end dp01t_2E_5_battle_intro thumb_func_start sub_8139750 sub_8139750: @ 8139750 push {r4-r7,lr} - ldr r6, _08139880 @ =gUnknown_02024BE0 - ldr r7, _08139884 @ =gUnknown_02024A60 + ldr r6, _08139880 @ =gObjectBankIDs + ldr r7, _08139884 @ =gActiveBank ldrb r0, [r7] adds r0, r6 ldrb r1, [r0] @@ -4673,7 +4673,7 @@ _08139864: movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x9] - ldr r1, _081398B4 @ =gUnknown_03004330 + ldr r1, _081398B4 @ =gBattleBankFunc ldrb r0, [r7] lsls r0, 2 adds r0, r1 @@ -4683,8 +4683,8 @@ _08139864: pop {r0} bx r0 .align 2, 0 -_08139880: .4byte gUnknown_02024BE0 -_08139884: .4byte gUnknown_02024A60 +_08139880: .4byte gObjectBankIDs +_08139884: .4byte gActiveBank _08139888: .4byte gSprites _0813988C: .4byte 0x0000ffd8 _08139890: .4byte sub_8078B34 @@ -4696,7 +4696,7 @@ _081398A4: .4byte gTasks _081398A8: .4byte 0x02017810 _081398AC: .4byte gUnknown_02024E68 _081398B0: .4byte sub_8044CA0 -_081398B4: .4byte gUnknown_03004330 +_081398B4: .4byte gBattleBankFunc _081398B8: .4byte nullsub_91 thumb_func_end sub_8139750 @@ -4715,10 +4715,10 @@ sub_81398BC: @ 81398BC adds r0, r1 movs r1, 0 strh r1, [r0, 0x2] - ldr r0, _08139A04 @ =gUnknown_02024A6A + ldr r0, _08139A04 @ =gBattlePartyID lsls r2, r6, 1 adds r2, r0 - ldr r0, _08139A08 @ =gUnknown_02023A60 + ldr r0, _08139A08 @ =gBattleBufferA lsls r1, r6, 9 adds r0, 0x1 adds r1, r0 @@ -4743,7 +4743,7 @@ sub_81398BC: @ 81398BC mov r1, r9 strb r0, [r1] adds r0, r6, 0 - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -4771,7 +4771,7 @@ sub_81398BC: @ 81398BC adds r1, r5, 0 adds r2, r4, 0 bl CreateSprite - ldr r4, _08139A1C @ =gUnknown_02024BE0 + ldr r4, _08139A1C @ =gObjectBankIDs adds r4, r6, r4 strb r0, [r4] ldr r5, _08139A20 @ =gSprites @@ -4856,13 +4856,13 @@ sub_81398BC: @ 81398BC bx r0 .align 2, 0 _08139A00: .4byte 0x02017800 -_08139A04: .4byte gUnknown_02024A6A -_08139A08: .4byte gUnknown_02023A60 +_08139A04: .4byte gBattlePartyID +_08139A08: .4byte gBattleBufferA _08139A0C: .4byte gPlayerParty _08139A10: .4byte sub_80312F0 _08139A14: .4byte gUnknown_0300434C _08139A18: .4byte gUnknown_02024E8C -_08139A1C: .4byte gUnknown_02024BE0 +_08139A1C: .4byte gObjectBankIDs _08139A20: .4byte gSprites _08139A24: .4byte gBattleMonForms _08139A28: .4byte SpriteCallbackDummy @@ -4889,23 +4889,23 @@ sub_8139A2C: @ 8139A2C .align 2, 0 _08139A4C: .4byte gTasks _08139A50: - ldr r4, _08139A8C @ =gUnknown_02024A60 + ldr r4, _08139A8C @ =gActiveBank ldrb r5, [r4] ldrh r0, [r1, 0x8] strb r0, [r4] - ldr r0, _08139A90 @ =gUnknown_02023A60 + ldr r0, _08139A90 @ =gBattleBufferA ldrb r1, [r4] lsls r2, r1, 9 adds r0, 0x1 adds r2, r0 - ldr r0, _08139A94 @ =gUnknown_02024A6A + ldr r0, _08139A94 @ =gBattlePartyID lsls r1, 1 adds r1, r0 ldrh r0, [r1] strb r0, [r2] ldrb r0, [r4] bl sub_81398BC - ldr r1, _08139A98 @ =gUnknown_03004330 + ldr r1, _08139A98 @ =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 adds r0, r1 @@ -4919,18 +4919,18 @@ _08139A86: pop {r0} bx r0 .align 2, 0 -_08139A8C: .4byte gUnknown_02024A60 -_08139A90: .4byte gUnknown_02023A60 -_08139A94: .4byte gUnknown_02024A6A -_08139A98: .4byte gUnknown_03004330 +_08139A8C: .4byte gActiveBank +_08139A90: .4byte gBattleBufferA +_08139A94: .4byte gBattlePartyID +_08139A98: .4byte gBattleBankFunc _08139A9C: .4byte sub_8137538 thumb_func_end sub_8139A2C thumb_func_start sub_8139AA0 sub_8139AA0: @ 8139AA0 push {r4,r5,lr} - ldr r1, _08139AC8 @ =gUnknown_02023A60 - ldr r0, _08139ACC @ =gUnknown_02024A60 + ldr r1, _08139AC8 @ =gBattleBufferA + ldr r0, _08139ACC @ =gActiveBank ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x1 @@ -4939,17 +4939,17 @@ sub_8139AA0: @ 8139AA0 cmp r0, 0 beq _08139AD0 adds r0, r2, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08139AD0 - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted b _08139B0A .align 2, 0 -_08139AC8: .4byte gUnknown_02023A60 -_08139ACC: .4byte gUnknown_02024A60 +_08139AC8: .4byte gBattleBufferA +_08139ACC: .4byte gActiveBank _08139AD0: - ldr r5, _08139B10 @ =gUnknown_02024A60 + ldr r5, _08139B10 @ =gActiveBank ldrb r1, [r5] lsls r0, r1, 1 adds r0, r1 @@ -4975,13 +4975,13 @@ _08139AD0: ldrb r1, [r5] adds r1, r2 strb r0, [r1] - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted _08139B0A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 -_08139B10: .4byte gUnknown_02024A60 +_08139B10: .4byte gActiveBank _08139B14: .4byte 0x02017810 _08139B18: .4byte gUnknown_02023A64 _08139B1C: .4byte gUnknown_02024E68 @@ -4990,7 +4990,7 @@ _08139B1C: .4byte gUnknown_02024E68 thumb_func_start sub_8139B20 sub_8139B20: @ 8139B20 push {lr} - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_8139B20 @@ -4998,7 +4998,7 @@ sub_8139B20: @ 8139B20 thumb_func_start sub_8139B2C sub_8139B2C: @ 8139B2C push {lr} - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_8139B2C @@ -5006,7 +5006,7 @@ sub_8139B2C: @ 8139B2C thumb_func_start sub_8139B38 sub_8139B38: @ 8139B38 push {lr} - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_8139B38 @@ -5015,8 +5015,8 @@ sub_8139B38: @ 8139B38 sub_8139B44: @ 8139B44 push {r4-r6,lr} sub sp, 0x4 - ldr r5, _08139B7C @ =gUnknown_02023A60 - ldr r6, _08139B80 @ =gUnknown_02024A60 + ldr r5, _08139B7C @ =gBattleBufferA + ldr r6, _08139B80 @ =gActiveBank ldrb r2, [r6] lsls r1, r2, 9 adds r0, r5, 0x1 @@ -5037,13 +5037,13 @@ sub_8139B44: @ 8139B44 lsls r0, 24 cmp r0, 0 beq _08139B84 - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted b _08139B90 .align 2, 0 -_08139B7C: .4byte gUnknown_02023A60 -_08139B80: .4byte gUnknown_02024A60 +_08139B7C: .4byte gBattleBufferA +_08139B80: .4byte gActiveBank _08139B84: - ldr r0, _08139B98 @ =gUnknown_03004330 + ldr r0, _08139B98 @ =gBattleBankFunc ldrb r1, [r6] lsls r1, 2 adds r1, r0 @@ -5055,14 +5055,14 @@ _08139B90: pop {r0} bx r0 .align 2, 0 -_08139B98: .4byte gUnknown_03004330 +_08139B98: .4byte gBattleBankFunc _08139B9C: .4byte sub_8137940 thumb_func_end sub_8139B44 thumb_func_start sub_8139BA0 sub_8139BA0: @ 8139BA0 push {lr} - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_8139BA0 @@ -5070,7 +5070,7 @@ sub_8139BA0: @ 8139BA0 thumb_func_start sub_8139BAC sub_8139BAC: @ 8139BAC push {lr} - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_8139BAC @@ -5078,9 +5078,9 @@ sub_8139BAC: @ 8139BAC thumb_func_start sub_8139BB8 sub_8139BB8: @ 8139BB8 push {r4,lr} - ldr r2, _08139BFC @ =gUnknown_02024D26 - ldr r1, _08139C00 @ =gUnknown_02023A60 - ldr r4, _08139C04 @ =gUnknown_02024A60 + ldr r2, _08139BFC @ =gBattleOutcome + ldr r1, _08139C00 @ =gBattleBufferA + ldr r4, _08139C04 @ =gActiveBank ldrb r0, [r4] lsls r0, 9 adds r1, 0x1 @@ -5091,14 +5091,14 @@ sub_8139BB8: @ 8139BB8 bl FadeOutMapMusic movs r0, 0x3 bl BeginFastPaletteFade - bl dp01_tbl5_exec_completed + bl WallyBufferExecCompleted ldr r0, _08139C08 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x6 ands r0, r1 cmp r0, 0x2 bne _08139BF4 - ldr r0, _08139C0C @ =gUnknown_03004330 + ldr r0, _08139C0C @ =gBattleBankFunc ldrb r1, [r4] lsls r1, 2 adds r1, r0 @@ -5109,11 +5109,11 @@ _08139BF4: pop {r0} bx r0 .align 2, 0 -_08139BFC: .4byte gUnknown_02024D26 -_08139C00: .4byte gUnknown_02023A60 -_08139C04: .4byte gUnknown_02024A60 +_08139BFC: .4byte gBattleOutcome +_08139C00: .4byte gBattleBufferA +_08139C04: .4byte gActiveBank _08139C08: .4byte gBattleTypeFlags -_08139C0C: .4byte gUnknown_03004330 +_08139C0C: .4byte gBattleBankFunc _08139C10: .4byte sub_813746C thumb_func_end sub_8139BB8 diff --git a/asm/battle_anim_813F0F4.s b/asm/battle_anim_813F0F4.s index 25ac4470e..a5ab2fb83 100644 --- a/asm/battle_anim_813F0F4.s +++ b/asm/battle_anim_813F0F4.s @@ -73,7 +73,7 @@ unref_sub_813F0F4: @ 813F0F4 mov r4, r8 orrs r0, r4 strb r0, [r2] - ldr r0, _0813F2D0 @ =gUnknown_03004340 + ldr r0, _0813F2D0 @ =gHealthboxIDs adds r3, r0 ldrb r0, [r3] ldr r1, _0813F2D4 @ =gSprites @@ -229,7 +229,7 @@ _0813F2C0: .4byte 0x00003f3d _0813F2C4: .4byte REG_BLDCNT _0813F2C8: .4byte 0x00003f42 _0813F2CC: .4byte REG_BG1CNT -_0813F2D0: .4byte gUnknown_03004340 +_0813F2D0: .4byte gHealthboxIDs _0813F2D4: .4byte gSprites _0813F2D8: .4byte SpriteCallbackDummy _0813F2DC: .4byte 0x040000d4 @@ -423,7 +423,7 @@ _0813F406: negs r0, r0 ands r0, r1 strb r0, [r2, 0x1] - ldr r0, _0813F4E8 @ =gUnknown_03004340 + ldr r0, _0813F4E8 @ =gHealthboxIDs add r0, r9 ldrb r0, [r0] lsls r1, r0, 4 @@ -480,7 +480,7 @@ _0813F4D8: .4byte REG_BLDCNT _0813F4DC: .4byte gSprites _0813F4E0: .4byte 0x040000d4 _0813F4E4: .4byte 0x85000200 -_0813F4E8: .4byte gUnknown_03004340 +_0813F4E8: .4byte gHealthboxIDs thumb_func_end sub_813F300 thumb_func_start sub_813F4EC @@ -494,7 +494,7 @@ sub_813F4EC: @ 813F4EC lsls r0, 24 lsrs r0, 24 str r0, [sp] - ldr r1, _0813F5D0 @ =gUnknown_03004340 + ldr r1, _0813F5D0 @ =gHealthboxIDs ldr r0, _0813F5D4 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] adds r0, r1 @@ -594,7 +594,7 @@ sub_813F4EC: @ 813F4EC pop {r0} bx r0 .align 2, 0 -_0813F5D0: .4byte gUnknown_03004340 +_0813F5D0: .4byte gHealthboxIDs _0813F5D4: .4byte gBattleAnimPlayerMonIndex _0813F5D8: .4byte gSprites _0813F5DC: .4byte 0x0000d709 @@ -613,7 +613,7 @@ sub_813F5E8: @ 813F5E8 lsls r0, 24 lsrs r0, 24 mov r8, r0 - ldr r1, _0813F684 @ =gUnknown_03004340 + ldr r1, _0813F684 @ =gHealthboxIDs ldr r0, _0813F688 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] adds r0, r1 @@ -677,7 +677,7 @@ sub_813F5E8: @ 813F5E8 pop {r0} bx r0 .align 2, 0 -_0813F684: .4byte gUnknown_03004340 +_0813F684: .4byte gHealthboxIDs _0813F688: .4byte gBattleAnimPlayerMonIndex _0813F68C: .4byte gSprites _0813F690: .4byte 0x0000d709 @@ -819,7 +819,7 @@ sub_813F798: @ 813F798 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 - ldr r1, _0813F7C4 @ =gUnknown_02024BE0 + ldr r1, _0813F7C4 @ =gObjectBankIDs ldr r0, _0813F7C8 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] adds r0, r1 @@ -839,7 +839,7 @@ sub_813F798: @ 813F798 beq _0813F7D6 b _0813F838 .align 2, 0 -_0813F7C4: .4byte gUnknown_02024BE0 +_0813F7C4: .4byte gObjectBankIDs _0813F7C8: .4byte gBattleAnimPlayerMonIndex _0813F7CC: .4byte gTasks _0813F7D0: @@ -910,17 +910,17 @@ sub_813F844: @ 813F844 sub sp, 0xC lsls r0, 24 lsrs r5, r0, 24 - ldr r1, _0813F87C @ =gUnknown_02024BE0 + ldr r1, _0813F87C @ =gObjectBankIDs ldr r4, _0813F880 @ =gBattleAnimPlayerMonIndex ldrb r0, [r4] adds r1, r0, r1 ldrb r1, [r1] mov r9, r1 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0813F88C - ldr r1, _0813F884 @ =gUnknown_02024A6A + ldr r1, _0813F884 @ =gBattlePartyID ldrb r0, [r4] lsls r0, 1 adds r0, r1 @@ -930,12 +930,12 @@ sub_813F844: @ 813F844 ldr r1, _0813F888 @ =gPlayerParty b _0813F89C .align 2, 0 -_0813F87C: .4byte gUnknown_02024BE0 +_0813F87C: .4byte gObjectBankIDs _0813F880: .4byte gBattleAnimPlayerMonIndex -_0813F884: .4byte gUnknown_02024A6A +_0813F884: .4byte gBattlePartyID _0813F888: .4byte gPlayerParty _0813F88C: - ldr r1, _0813F8CC @ =gUnknown_02024A6A + ldr r1, _0813F8CC @ =gBattlePartyID ldrb r0, [r4] lsls r0, 1 adds r0, r1 @@ -966,7 +966,7 @@ _0813F89C: beq _0813F958 b _0813F982 .align 2, 0 -_0813F8CC: .4byte gUnknown_02024A6A +_0813F8CC: .4byte gBattlePartyID _0813F8D0: .4byte gEnemyParty _0813F8D4: .4byte gTasks _0813F8D8: @@ -1064,7 +1064,7 @@ sub_813F990: @ 813F990 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, _0813F9B4 @ =gUnknown_02024C04 + ldr r0, _0813F9B4 @ =gLastUsedItem ldrh r0, [r0] bl ball_number_to_ball_processing_index lsls r0, 24 @@ -1076,7 +1076,7 @@ sub_813F990: @ 813F990 pop {r0} bx r0 .align 2, 0 -_0813F9B4: .4byte gUnknown_02024C04 +_0813F9B4: .4byte gLastUsedItem thumb_func_end sub_813F990 thumb_func_start sub_813F9B8 @@ -1085,7 +1085,7 @@ sub_813F9B8: @ 813F9B8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, _0813F9DC @ =gUnknown_02024C04 + ldr r0, _0813F9DC @ =gLastUsedItem ldrh r0, [r0] bl ball_number_to_ball_processing_index lsls r0, 24 @@ -1097,7 +1097,7 @@ sub_813F9B8: @ 813F9B8 pop {r0} bx r0 .align 2, 0 -_0813F9DC: .4byte gUnknown_02024C04 +_0813F9DC: .4byte gLastUsedItem thumb_func_end sub_813F9B8 thumb_func_start sub_813F9E0 @@ -1209,7 +1209,7 @@ sub_813FA94: @ 813FA94 lsls r0, 24 lsrs r0, 24 mov r10, r0 - ldr r0, _0813FB58 @ =gUnknown_02024C04 + ldr r0, _0813FB58 @ =gLastUsedItem ldrh r0, [r0] bl ball_number_to_ball_processing_index adds r1, r0, 0 @@ -1218,7 +1218,7 @@ sub_813FA94: @ 813FA94 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 - ldr r1, _0813FB5C @ =gSpriteTemplate_820AAB4 + ldr r1, _0813FB5C @ =gBallSpriteTemplates adds r0, r1 movs r1, 0x20 movs r2, 0x50 @@ -1257,7 +1257,7 @@ sub_813FA94: @ 813FA94 ldr r0, _0813FB68 @ =sub_813FD90 str r0, [r4] ldr r3, _0813FB6C @ =0x02017840 - ldr r1, _0813FB70 @ =gUnknown_02024BE0 + ldr r1, _0813FB70 @ =gObjectBankIDs mov r2, r8 ldrb r0, [r2] adds r0, r1 @@ -1294,13 +1294,13 @@ sub_813FA94: @ 813FA94 pop {r0} bx r0 .align 2, 0 -_0813FB58: .4byte gUnknown_02024C04 -_0813FB5C: .4byte gSpriteTemplate_820AAB4 +_0813FB58: .4byte gLastUsedItem +_0813FB5C: .4byte gBallSpriteTemplates _0813FB60: .4byte gSprites _0813FB64: .4byte gBattleAnimEnemyMonIndex _0813FB68: .4byte sub_813FD90 _0813FB6C: .4byte 0x02017840 -_0813FB70: .4byte gUnknown_02024BE0 +_0813FB70: .4byte gObjectBankIDs _0813FB74: .4byte gTasks _0813FB78: .4byte sub_813FB7C thumb_func_end sub_813FA94 @@ -1360,14 +1360,14 @@ _0813FBDC: movs r6, 0x17 movs r5, 0x5 _0813FBE0: - ldr r0, _0813FC9C @ =gUnknown_02024C04 + ldr r0, _0813FC9C @ =gLastUsedItem ldrh r0, [r0] bl ball_number_to_ball_processing_index adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 bl sub_8079E90 @@ -1378,7 +1378,7 @@ _0813FBE0: lsls r0, r4, 1 adds r0, r4 lsls r0, 3 - ldr r1, _0813FCA0 @ =gSpriteTemplate_820AAB4 + ldr r1, _0813FCA0 @ =gBallSpriteTemplates adds r0, r1 adds r1, r6, 0 adds r1, 0x20 @@ -1419,8 +1419,8 @@ _0813FBE0: ldr r0, _0813FCAC @ =SpriteCallbackDummy str r0, [r4] movs r0, 0 - bl battle_get_side_with_given_state - ldr r1, _0813FCB0 @ =gUnknown_02024BE0 + bl GetBankByPlayerAI + ldr r1, _0813FCB0 @ =gObjectBankIDs lsls r0, 24 lsrs r0, 24 adds r0, r1 @@ -1446,12 +1446,12 @@ _0813FBE0: pop {r0} bx r0 .align 2, 0 -_0813FC9C: .4byte gUnknown_02024C04 -_0813FCA0: .4byte gSpriteTemplate_820AAB4 +_0813FC9C: .4byte gLastUsedItem +_0813FCA0: .4byte gBallSpriteTemplates _0813FCA4: .4byte gSprites _0813FCA8: .4byte gBattleAnimEnemyMonIndex _0813FCAC: .4byte SpriteCallbackDummy -_0813FCB0: .4byte gUnknown_02024BE0 +_0813FCB0: .4byte gObjectBankIDs _0813FCB4: .4byte gTasks _0813FCB8: .4byte sub_813FCBC thumb_func_end sub_813FBB8 @@ -1463,8 +1463,8 @@ sub_813FCBC: @ 813FCBC lsrs r5, r0, 24 ldr r6, _0813FD1C @ =gSprites movs r0, 0 - bl battle_get_side_with_given_state - ldr r1, _0813FD20 @ =gUnknown_02024BE0 + bl GetBankByPlayerAI + ldr r1, _0813FD20 @ =gObjectBankIDs lsls r0, 24 lsrs r0, 24 adds r0, r1 @@ -1506,7 +1506,7 @@ _0813FD16: bx r0 .align 2, 0 _0813FD1C: .4byte gSprites -_0813FD20: .4byte gUnknown_02024BE0 +_0813FD20: .4byte gObjectBankIDs _0813FD24: .4byte gTasks _0813FD28: .4byte sub_813FD90 _0813FD2C: .4byte sub_813FD34 @@ -1520,8 +1520,8 @@ sub_813FD34: @ 813FD34 lsrs r5, r0, 24 ldr r6, _0813FD88 @ =gSprites movs r0, 0 - bl battle_get_side_with_given_state - ldr r4, _0813FD8C @ =gUnknown_02024BE0 + bl GetBankByPlayerAI + ldr r4, _0813FD8C @ =gObjectBankIDs lsls r0, 24 lsrs r0, 24 adds r0, r4 @@ -1536,7 +1536,7 @@ sub_813FD34: @ 813FD34 cmp r0, 0 bge _0813FD80 movs r0, 0 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 adds r0, r4 @@ -1555,7 +1555,7 @@ _0813FD80: bx r0 .align 2, 0 _0813FD88: .4byte gSprites -_0813FD8C: .4byte gUnknown_02024BE0 +_0813FD8C: .4byte gObjectBankIDs thumb_func_end sub_813FD34 thumb_func_start sub_813FD90 @@ -1632,7 +1632,7 @@ _0813FE10: strh r0, [r4, 0x38] ldr r0, _0813FE64 @ =sub_813FE70 str r0, [r4, 0x1C] - ldr r0, _0813FE68 @ =gUnknown_02024C04 + ldr r0, _0813FE68 @ =gLastUsedItem ldrh r0, [r0] bl ball_number_to_ball_processing_index lsls r0, 24 @@ -1665,7 +1665,7 @@ _0813FE5A: bx r0 .align 2, 0 _0813FE64: .4byte sub_813FE70 -_0813FE68: .4byte gUnknown_02024C04 +_0813FE68: .4byte gLastUsedItem _0813FE6C: .4byte gBattleAnimEnemyMonIndex thumb_func_end sub_813FDC0 @@ -1689,7 +1689,7 @@ sub_813FE70: @ 813FE70 ldr r0, _0813FEB8 @ =sub_813FEC8 str r0, [r4, 0x1C] ldr r2, _0813FEBC @ =gSprites - ldr r1, _0813FEC0 @ =gUnknown_02024BE0 + ldr r1, _0813FEC0 @ =gObjectBankIDs ldr r0, _0813FEC4 @ =gBattleAnimEnemyMonIndex ldrb r0, [r0] adds r0, r1 @@ -1708,7 +1708,7 @@ _0813FEAC: _0813FEB4: .4byte TaskDummy _0813FEB8: .4byte sub_813FEC8 _0813FEBC: .4byte gSprites -_0813FEC0: .4byte gUnknown_02024BE0 +_0813FEC0: .4byte gObjectBankIDs _0813FEC4: .4byte gBattleAnimEnemyMonIndex thumb_func_end sub_813FE70 @@ -1716,7 +1716,7 @@ _0813FEC4: .4byte gBattleAnimEnemyMonIndex sub_813FEC8: @ 813FEC8 push {r4-r7,lr} adds r7, r0, 0 - ldr r1, _0813FF0C @ =gUnknown_02024BE0 + ldr r1, _0813FF0C @ =gObjectBankIDs ldr r0, _0813FF10 @ =gBattleAnimEnemyMonIndex ldrb r0, [r0] adds r0, r1 @@ -1749,7 +1749,7 @@ _0813FEFA: beq _0813FF1E b _0813FFDC .align 2, 0 -_0813FF0C: .4byte gUnknown_02024BE0 +_0813FF0C: .4byte gObjectBankIDs _0813FF10: .4byte gBattleAnimEnemyMonIndex _0813FF14: .4byte gTasks _0813FF18: @@ -2461,7 +2461,7 @@ sub_8140454: @ 8140454 beq _081404CC cmp r1, 0x5F bne _08140490 - ldr r0, _08140488 @ =gUnknown_02024E6D + ldr r0, _08140488 @ =gDoingBattleAnim movs r1, 0 strb r1, [r0] movs r0, 0x1 @@ -2472,14 +2472,14 @@ sub_8140454: @ 8140454 b _081404CC .align 2, 0 _08140484: .4byte gBattleAnimEnemyMonIndex -_08140488: .4byte gUnknown_02024E6D +_08140488: .4byte gDoingBattleAnim _0814048C: .4byte 0x00000173 _08140490: ldr r0, _081404D4 @ =0x0000013b cmp r1, r0 bne _081404CC ldr r5, _081404D8 @ =gSprites - ldr r4, _081404DC @ =gUnknown_02024BE0 + ldr r4, _081404DC @ =gObjectBankIDs ldrb r0, [r7] adds r0, r4 ldrb r1, [r0] @@ -2510,7 +2510,7 @@ _081404CC: .align 2, 0 _081404D4: .4byte 0x0000013b _081404D8: .4byte gSprites -_081404DC: .4byte gUnknown_02024BE0 +_081404DC: .4byte gObjectBankIDs _081404E0: .4byte sub_81404E4 thumb_func_end sub_8140454 @@ -2670,7 +2670,7 @@ sub_81405F4: @ 81405F4 bl StartSpriteAffineAnim ldr r0, _081406A8 @ =sub_81406BC str r0, [r4, 0x1C] - ldr r0, _081406AC @ =gUnknown_02024C04 + ldr r0, _081406AC @ =gLastUsedItem ldrh r0, [r0] bl ball_number_to_ball_processing_index lsls r0, 24 @@ -2698,7 +2698,7 @@ sub_81405F4: @ 81405F4 bl sub_8141314 _08140646: ldr r6, _081406B4 @ =gSprites - ldr r5, _081406B8 @ =gUnknown_02024BE0 + ldr r5, _081406B8 @ =gObjectBankIDs ldr r4, _081406B0 @ =gBattleAnimEnemyMonIndex ldrb r0, [r4] adds r0, r5 @@ -2746,10 +2746,10 @@ _08140646: bx r0 .align 2, 0 _081406A8: .4byte sub_81406BC -_081406AC: .4byte gUnknown_02024C04 +_081406AC: .4byte gLastUsedItem _081406B0: .4byte gBattleAnimEnemyMonIndex _081406B4: .4byte gSprites -_081406B8: .4byte gUnknown_02024BE0 +_081406B8: .4byte gObjectBankIDs thumb_func_end sub_81405F4 thumb_func_start sub_81406BC @@ -2771,7 +2771,7 @@ sub_81406BC: @ 81406BC strb r0, [r2] _081406DA: ldr r4, _08140708 @ =gSprites - ldr r3, _0814070C @ =gUnknown_02024BE0 + ldr r3, _0814070C @ =gObjectBankIDs ldr r2, _08140710 @ =gBattleAnimEnemyMonIndex ldrb r0, [r2] adds r0, r3 @@ -2793,7 +2793,7 @@ _081406DA: b _08140734 .align 2, 0 _08140708: .4byte gSprites -_0814070C: .4byte gUnknown_02024BE0 +_0814070C: .4byte gObjectBankIDs _08140710: .4byte gBattleAnimEnemyMonIndex _08140714: ldr r6, _0814079C @ =0xfffffee0 @@ -2823,7 +2823,7 @@ _08140734: cmp r5, 0 beq _08140796 ldr r4, _081407A0 @ =gSprites - ldr r3, _081407A4 @ =gUnknown_02024BE0 + ldr r3, _081407A4 @ =gObjectBankIDs ldr r2, _081407A8 @ =gBattleAnimEnemyMonIndex ldrb r0, [r2] adds r0, r3 @@ -2857,7 +2857,7 @@ _08140734: strh r5, [r7, 0x2E] ldr r0, _081407B0 @ =sub_81405C8 str r0, [r7, 0x1C] - ldr r0, _081407B4 @ =gUnknown_02024E6D + ldr r0, _081407B4 @ =gDoingBattleAnim strb r6, [r0] movs r0, 0x1 bl sub_8043EB4 @@ -2868,11 +2868,11 @@ _08140796: .align 2, 0 _0814079C: .4byte 0xfffffee0 _081407A0: .4byte gSprites -_081407A4: .4byte gUnknown_02024BE0 +_081407A4: .4byte gObjectBankIDs _081407A8: .4byte gBattleAnimEnemyMonIndex _081407AC: .4byte 0x02017840 _081407B0: .4byte sub_81405C8 -_081407B4: .4byte gUnknown_02024E6D +_081407B4: .4byte gDoingBattleAnim thumb_func_end sub_81406BC thumb_func_start sub_81407B8 @@ -2959,7 +2959,7 @@ _0814084A: strh r0, [r4, 0x2E] ldr r0, _08140864 @ =sub_81405C8 str r0, [r4, 0x1C] - ldr r1, _08140868 @ =gUnknown_02024E6D + ldr r1, _08140868 @ =gDoingBattleAnim movs r0, 0 strb r0, [r1] movs r0, 0x1 @@ -2970,7 +2970,7 @@ _0814085E: bx r0 .align 2, 0 _08140864: .4byte sub_81405C8 -_08140868: .4byte gUnknown_02024E6D +_08140868: .4byte gDoingBattleAnim thumb_func_end sub_81407F4 thumb_func_start sub_814086C @@ -4582,7 +4582,7 @@ sub_814151C: @ 814151C lsrs r7, r0, 24 movs r0, 0 mov r8, r0 - ldr r0, _08141550 @ =gUnknown_02024BE0 + ldr r0, _08141550 @ =gObjectBankIDs ldr r3, _08141554 @ =gBattleAnimPlayerMonIndex ldrb r2, [r3] adds r0, r2, r0 @@ -4602,7 +4602,7 @@ sub_814151C: @ 814151C beq _08141562 b _081416B6 .align 2, 0 -_08141550: .4byte gUnknown_02024BE0 +_08141550: .4byte gObjectBankIDs _08141554: .4byte gBattleAnimPlayerMonIndex _08141558: .4byte gTasks _0814155C: @@ -4620,7 +4620,7 @@ _08141562: adds r0, r4 strh r0, [r5, 0x8] ldrb r0, [r3] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _081415A4 @@ -4698,7 +4698,7 @@ _08141606: adds r0, r2 strh r0, [r5, 0x8] ldrb r0, [r3] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0814163C @@ -4740,7 +4740,7 @@ _08141654: strh r1, [r0, 0x8] ldr r0, _08141690 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 @@ -4818,7 +4818,7 @@ _081416EC: _081416F2: ldr r0, _08141708 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -4883,7 +4883,7 @@ _08141744: .align 2, 0 _08141778: .4byte REG_BLDALPHA _0814177C: - ldr r1, _081417C0 @ =gUnknown_02024BE0 + ldr r1, _081417C0 @ =gObjectBankIDs ldr r3, _081417C4 @ =gBattleAnimPlayerMonIndex ldrb r0, [r3] adds r0, r1 @@ -4917,7 +4917,7 @@ _081417B8: pop {r0} bx r0 .align 2, 0 -_081417C0: .4byte gUnknown_02024BE0 +_081417C0: .4byte gObjectBankIDs _081417C4: .4byte gBattleAnimPlayerMonIndex _081417C8: .4byte gSprites _081417CC: .4byte 0x06010000 @@ -4955,7 +4955,7 @@ sub_8141808: @ 8141808 lsls r0, 24 lsrs r0, 24 ldr r2, _08141820 @ =gBattleAnimEnemyMonIndex - ldr r1, _08141824 @ =gUnknown_02024C0A + ldr r1, _08141824 @ =gEffectBank ldrb r1, [r1] strb r1, [r2] bl DestroyAnimVisualTask @@ -4963,7 +4963,7 @@ sub_8141808: @ 8141808 bx r0 .align 2, 0 _08141820: .4byte gBattleAnimEnemyMonIndex -_08141824: .4byte gUnknown_02024C0A +_08141824: .4byte gEffectBank thumb_func_end sub_8141808 thumb_func_start sub_8141828 @@ -5248,7 +5248,7 @@ _08141A44: cmp r0, 0 bne _08141A8C mov r0, r8 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 movs r1, 0x3F cmp r0, 0 @@ -5484,7 +5484,7 @@ sub_8141C30: @ 8141C30 movs r0, 0x1E strh r0, [r4, 0x2E] movs r0, 0x1 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 movs r1, 0 @@ -5496,7 +5496,7 @@ sub_8141C30: @ 8141C30 adds r0, r1 strh r0, [r4, 0x32] movs r0, 0x1 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 movs r1, 0x1 @@ -5510,7 +5510,7 @@ sub_8141C30: @ 8141C30 strh r0, [r4, 0x38] adds r0, r4, 0 bl sub_80786EC - ldr r1, _08141CAC @ =gUnknown_02024BE0 + ldr r1, _08141CAC @ =gObjectBankIDs ldr r0, _08141CB0 @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] adds r0, r1 @@ -5530,7 +5530,7 @@ sub_8141C30: @ 8141C30 .align 2, 0 _08141CA4: .4byte gBattleAnimArgs _08141CA8: .4byte 0x0000ffe0 -_08141CAC: .4byte gUnknown_02024BE0 +_08141CAC: .4byte gObjectBankIDs _08141CB0: .4byte gBattleAnimPlayerMonIndex _08141CB4: .4byte gSprites _08141CB8: .4byte sub_8141CBC @@ -5541,7 +5541,7 @@ sub_8141CBC: @ 8141CBC push {lr} adds r3, r0, 0 ldr r2, _08141CE4 @ =gSprites - ldr r1, _08141CE8 @ =gUnknown_02024BE0 + ldr r1, _08141CE8 @ =gObjectBankIDs ldr r0, _08141CEC @ =gBattleAnimPlayerMonIndex ldrb r0, [r0] adds r0, r1 @@ -5561,7 +5561,7 @@ _08141CE0: bx r0 .align 2, 0 _08141CE4: .4byte gSprites -_08141CE8: .4byte gUnknown_02024BE0 +_08141CE8: .4byte gObjectBankIDs _08141CEC: .4byte gBattleAnimPlayerMonIndex _08141CF0: .4byte sub_8141CF4 thumb_func_end sub_8141CBC @@ -5597,7 +5597,7 @@ sub_8141D20: @ 8141D20 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _08141D70 @ =gSprites - ldr r3, _08141D74 @ =gUnknown_02024BE0 + ldr r3, _08141D74 @ =gObjectBankIDs ldr r2, _08141D78 @ =gBattleAnimPlayerMonIndex ldrb r0, [r2] adds r0, r3 @@ -5634,7 +5634,7 @@ _08141D68: bx r0 .align 2, 0 _08141D70: .4byte gSprites -_08141D74: .4byte gUnknown_02024BE0 +_08141D74: .4byte gObjectBankIDs _08141D78: .4byte gBattleAnimPlayerMonIndex thumb_func_end sub_8141D20 @@ -5645,11 +5645,11 @@ sub_8141D7C: @ 8141D7C lsls r4, 24 lsrs r4, 24 movs r0, 0 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI ldr r1, _08141DA4 @ =gBattleAnimPlayerMonIndex strb r0, [r1] movs r0, 0x1 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI ldr r1, _08141DA8 @ =gBattleAnimEnemyMonIndex strb r0, [r1] adds r0, r4, 0 diff --git a/asm/battle_message.s b/asm/battle_message.s index 0e3588d14..414213737 100644 --- a/asm/battle_message.s +++ b/asm/battle_message.s @@ -6,8 +6,8 @@ .text - thumb_func_start sub_8120AA8 -sub_8120AA8: @ 8120AA8 + thumb_func_start BufferStringBattle +BufferStringBattle: @ 8120AA8 push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -16,17 +16,17 @@ sub_8120AA8: @ 8120AA8 lsls r0, 16 lsrs r7, r0, 16 movs r6, 0 - ldr r5, _08120B70 @ =gSelectedOrderFromParty - ldr r4, _08120B74 @ =gUnknown_02024A60 + ldr r5, _08120B70 @ =gBufferedMoves + ldr r4, _08120B74 @ =gActiveBank ldrb r1, [r4] lsls r1, 9 ldr r0, _08120B78 @ =gUnknown_02023A64 adds r1, r0 str r1, [r5] - ldr r2, _08120B7C @ =gUnknown_02024C04 + ldr r2, _08120B7C @ =gLastUsedItem ldrh r0, [r1, 0x4] strh r0, [r2] - ldr r2, _08120B80 @ =byte_2024C06 + ldr r2, _08120B80 @ =gLastUsedAbility ldrb r0, [r1, 0x6] strb r0, [r2] ldr r3, _08120B84 @ =0x02000000 @@ -48,7 +48,7 @@ sub_8120AA8: @ 8120AA8 adds r0, r3, r2 mov r2, r8 strb r2, [r0] - ldr r2, _08120B94 @ =gUnknown_02024C0B + ldr r2, _08120B94 @ =gStringBank ldrb r0, [r1, 0xA] strb r0, [r2] ldrb r1, [r1, 0xB] @@ -57,9 +57,9 @@ sub_8120AA8: @ 8120AA8 strb r1, [r0] movs r2, 0 mov r9, r3 - ldr r3, _08120B9C @ =gUnknown_030041C0 + ldr r3, _08120B9C @ =gBattleTextBuff1 mov r10, r3 - ldr r3, _08120BA0 @ =gUnknown_0203926C + ldr r3, _08120BA0 @ =gAbilitiesPerBank _08120B10: adds r0, r2, r3 ldr r1, [r5] @@ -71,12 +71,12 @@ _08120B10: cmp r2, 0x3 ble _08120B10 movs r2, 0 - ldr r0, _08120B9C @ =gUnknown_030041C0 + ldr r0, _08120B9C @ =gBattleTextBuff1 mov r8, r0 - ldr r3, _08120B70 @ =gSelectedOrderFromParty - ldr r1, _08120BA4 @ =gUnknown_03004290 + ldr r3, _08120B70 @ =gBufferedMoves + ldr r1, _08120BA4 @ =gBattleTextBuff2 mov r12, r1 - ldr r5, _08120BA8 @ =gUnknown_030042B0 + ldr r5, _08120BA8 @ =gBattleTextBuff3 _08120B30: mov r0, r8 adds r1, r2, r0 @@ -111,21 +111,21 @@ _08120B64: ldr r0, [r0] mov pc, r0 .align 2, 0 -_08120B70: .4byte gSelectedOrderFromParty -_08120B74: .4byte gUnknown_02024A60 +_08120B70: .4byte gBufferedMoves +_08120B74: .4byte gActiveBank _08120B78: .4byte gUnknown_02023A64 -_08120B7C: .4byte gUnknown_02024C04 -_08120B80: .4byte byte_2024C06 +_08120B7C: .4byte gLastUsedItem +_08120B80: .4byte gLastUsedAbility _08120B84: .4byte 0x02000000 _08120B88: .4byte 0x00016003 _08120B8C: .4byte 0x0001605e _08120B90: .4byte 0x000160c1 -_08120B94: .4byte gUnknown_02024C0B +_08120B94: .4byte gStringBank _08120B98: .4byte 0x000160a0 -_08120B9C: .4byte gUnknown_030041C0 -_08120BA0: .4byte gUnknown_0203926C -_08120BA4: .4byte gUnknown_03004290 -_08120BA8: .4byte gUnknown_030042B0 +_08120B9C: .4byte gBattleTextBuff1 +_08120BA0: .4byte gAbilitiesPerBank +_08120BA4: .4byte gBattleTextBuff2 +_08120BA8: .4byte gBattleTextBuff3 _08120BAC: .4byte _08120BB0 .align 2, 0 _08120BB0: @@ -199,7 +199,7 @@ _08120C38: .4byte gUnknown_08400555 _08120C3C: .4byte gUnknown_0840057B _08120C40: ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08120C7C @@ -271,7 +271,7 @@ _08120CC4: .4byte gUnknown_084005F5 _08120CC8: .4byte gUnknown_08400635 _08120CCC: ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08120D24 @@ -345,7 +345,7 @@ _08120D5C: ldr r0, _08120D88 @ =0x00016003 add r0, r9 ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08120DB8 @@ -414,14 +414,14 @@ _08120DE4: .4byte gUnknown_08400622 _08120DE8: mov r0, r10 bl sub_8121D1C - ldr r0, _08120E14 @ =gSelectedOrderFromParty + ldr r0, _08120E14 @ =gBufferedMoves ldr r2, [r0] ldrh r1, [r2] movs r0, 0xB1 lsls r0, 1 cmp r1, r0 bls _08120E28 - ldr r0, _08120E18 @ =gUnknown_03004290 + ldr r0, _08120E18 @ =gBattleTextBuff2 ldr r2, _08120E1C @ =gUnknown_08401674 ldr r1, _08120E20 @ =0x02000000 ldr r3, _08120E24 @ =0x000160a0 @@ -433,13 +433,13 @@ _08120DE8: bl StringCopy b _08120E38 .align 2, 0 -_08120E14: .4byte gSelectedOrderFromParty -_08120E18: .4byte gUnknown_03004290 +_08120E14: .4byte gBufferedMoves +_08120E18: .4byte gBattleTextBuff2 _08120E1C: .4byte gUnknown_08401674 _08120E20: .4byte 0x02000000 _08120E24: .4byte 0x000160a0 _08120E28: - ldr r0, _08120E44 @ =gUnknown_03004290 + ldr r0, _08120E44 @ =gBattleTextBuff2 ldrh r2, [r2] movs r1, 0xD muls r1, r2 @@ -447,16 +447,16 @@ _08120E28: adds r1, r2 bl StringCopy _08120E38: - ldr r0, _08120E44 @ =gUnknown_03004290 + ldr r0, _08120E44 @ =gBattleTextBuff2 bl sub_8121D74 ldr r6, _08120E4C @ =gUnknown_084007BD b _08120F70 .align 2, 0 -_08120E44: .4byte gUnknown_03004290 +_08120E44: .4byte gBattleTextBuff2 _08120E48: .4byte gMoveNames _08120E4C: .4byte gUnknown_084007BD _08120E50: - ldr r5, _08120E90 @ =gUnknown_030041C0 + ldr r5, _08120E90 @ =gBattleTextBuff1 ldrb r1, [r5] movs r0, 0x80 ands r0, r1 @@ -466,7 +466,7 @@ _08120E50: ands r0, r1 strb r0, [r5] ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -478,7 +478,7 @@ _08120E50: eors r0, r1 strb r0, [r5] _08120E7C: - ldr r0, _08120E90 @ =gUnknown_030041C0 + ldr r0, _08120E90 @ =gBattleTextBuff1 ldrb r0, [r0] subs r0, 0x2 lsls r0, 24 @@ -488,7 +488,7 @@ _08120E7C: ldr r6, _08120E94 @ =gUnknown_083FFEFC b _08120F70 .align 2, 0 -_08120E90: .4byte gUnknown_030041C0 +_08120E90: .4byte gBattleTextBuff1 _08120E94: .4byte gUnknown_083FFEFC _08120E98: ldr r0, _08120EAC @ =gBattleTypeFlags @@ -506,7 +506,7 @@ _08120EB0: .4byte gUnknown_083FFFEA _08120EB4: .4byte gUnknown_083FFFF7 _08120EB8: ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -524,7 +524,7 @@ _08120ED2: ands r0, r1 cmp r0, 0 beq _08120F18 - ldr r0, _08120EF4 @ =gUnknown_030041C0 + ldr r0, _08120EF4 @ =gBattleTextBuff1 ldrb r0, [r0] cmp r0, 0x2 beq _08120F08 @@ -535,7 +535,7 @@ _08120ED2: b _08120F70 .align 2, 0 _08120EF0: .4byte gBattleTypeFlags -_08120EF4: .4byte gUnknown_030041C0 +_08120EF4: .4byte gBattleTextBuff1 _08120EF8: cmp r0, 0x3 beq _08120F10 @@ -556,7 +556,7 @@ _08120F10: .align 2, 0 _08120F14: .4byte gUnknown_083FFFCB _08120F18: - ldr r0, _08120F2C @ =gUnknown_030041C0 + ldr r0, _08120F2C @ =gBattleTextBuff1 ldrb r0, [r0] cmp r0, 0x2 beq _08120F40 @@ -566,7 +566,7 @@ _08120F18: beq _08120F36 b _08120F70 .align 2, 0 -_08120F2C: .4byte gUnknown_030041C0 +_08120F2C: .4byte gBattleTextBuff1 _08120F30: cmp r0, 0x3 beq _08120F48 @@ -591,14 +591,14 @@ _08120F50: lsls r0, 1 cmp r7, r0 bls _08120F64 - ldr r1, _08120F60 @ =gUnknown_020238CC + ldr r1, _08120F60 @ =gDisplayedStringBattle movs r0, 0xFF strb r0, [r1] b _08120F76 .align 2, 0 -_08120F60: .4byte gUnknown_020238CC +_08120F60: .4byte gDisplayedStringBattle _08120F64: - ldr r1, _08120F84 @ =gUnknown_08400F8C + ldr r1, _08120F84 @ =gBattleStringsTable adds r0, r7, 0 subs r0, 0xC lsls r0, 2 @@ -606,7 +606,7 @@ _08120F64: ldr r6, [r0] _08120F70: adds r0, r6, 0 - bl get_battle_strings_ + bl StrCpyDecodeToDisplayedStringBattle _08120F76: pop {r3-r5} mov r8, r3 @@ -616,19 +616,19 @@ _08120F76: pop {r0} bx r0 .align 2, 0 -_08120F84: .4byte gUnknown_08400F8C - thumb_func_end sub_8120AA8 +_08120F84: .4byte gBattleStringsTable + thumb_func_end BufferStringBattle - thumb_func_start get_battle_strings_ -get_battle_strings_: @ 8120F88 + thumb_func_start StrCpyDecodeToDisplayedStringBattle +StrCpyDecodeToDisplayedStringBattle: @ 8120F88 push {lr} - ldr r1, _08120F94 @ =gUnknown_020238CC - bl sub_8120FFC + ldr r1, _08120F94 @ =gDisplayedStringBattle + bl StrCpyDecodeBattle pop {r1} bx r1 .align 2, 0 -_08120F94: .4byte gUnknown_020238CC - thumb_func_end get_battle_strings_ +_08120F94: .4byte gDisplayedStringBattle + thumb_func_end StrCpyDecodeToDisplayedStringBattle thumb_func_start sub_8120F98 sub_8120F98: @ 8120F98 @@ -686,8 +686,8 @@ _08120FF2: bx r1 thumb_func_end sub_8120F98 - thumb_func_start sub_8120FFC -sub_8120FFC: @ 8120FFC + thumb_func_start StrCpyDecodeBattle +StrCpyDecodeBattle: @ 8120FFC push {r4-r7,lr} mov r7, r9 mov r6, r8 @@ -769,7 +769,7 @@ _08121044: .4byte _081219D4 .4byte _08121134 _081210F0: - ldr r5, _08121100 @ =gUnknown_030041C0 + ldr r5, _08121100 @ =gBattleTextBuff1 ldrb r0, [r5] cmp r0, 0xFD bne _08121108 @@ -777,7 +777,7 @@ _081210F0: adds r0, r5, 0 b _08121140 .align 2, 0 -_08121100: .4byte gUnknown_030041C0 +_08121100: .4byte gBattleTextBuff1 _08121104: .4byte gStringVar1 _08121108: adds r0, r5, 0 @@ -790,17 +790,17 @@ _08121118: adds r4, r5, 0 bl _081219E6 _0812111E: - ldr r1, _0812112C @ =gUnknown_03004290 + ldr r1, _0812112C @ =gBattleTextBuff2 ldrb r0, [r1] cmp r0, 0xFD bne _08121154 ldr r4, _08121130 @ =gStringVar2 b _0812113E .align 2, 0 -_0812112C: .4byte gUnknown_03004290 +_0812112C: .4byte gBattleTextBuff2 _08121130: .4byte gStringVar2 _08121134: - ldr r1, _0812114C @ =gUnknown_030042B0 + ldr r1, _0812114C @ =gBattleTextBuff3 ldrb r0, [r1] cmp r0, 0xFD bne _08121154 @@ -812,15 +812,15 @@ _08121140: bl sub_8121A68 bl _081219E6 .align 2, 0 -_0812114C: .4byte gUnknown_030042B0 +_0812114C: .4byte gBattleTextBuff3 _08121150: .4byte gStringVar3 _08121154: adds r4, r1, 0 bl _081219E6 _0812115A: movs r0, 0 - bl battle_get_side_with_given_state - ldr r1, _08121178 @ =gUnknown_02024A6A + bl GetBankByPlayerAI + ldr r1, _08121178 @ =gBattlePartyID lsls r0, 24 lsrs r0, 23 adds r0, r1 @@ -831,12 +831,12 @@ _0812115A: adds r0, r1 bl _0812190E .align 2, 0 -_08121178: .4byte gUnknown_02024A6A +_08121178: .4byte gBattlePartyID _0812117C: .4byte gPlayerParty _08121180: movs r0, 0x1 - bl battle_get_side_with_given_state - ldr r1, _0812119C @ =gUnknown_02024A6A + bl GetBankByPlayerAI + ldr r1, _0812119C @ =gBattlePartyID lsls r0, 24 lsrs r0, 23 adds r0, r1 @@ -847,12 +847,12 @@ _08121180: adds r0, r1 b _0812190E .align 2, 0 -_0812119C: .4byte gUnknown_02024A6A +_0812119C: .4byte gBattlePartyID _081211A0: .4byte gEnemyParty _081211A4: movs r0, 0x2 - bl battle_get_side_with_given_state - ldr r1, _081211C0 @ =gUnknown_02024A6A + bl GetBankByPlayerAI + ldr r1, _081211C0 @ =gBattlePartyID lsls r0, 24 lsrs r0, 23 adds r0, r1 @@ -863,12 +863,12 @@ _081211A4: adds r0, r1 b _0812190E .align 2, 0 -_081211C0: .4byte gUnknown_02024A6A +_081211C0: .4byte gBattlePartyID _081211C4: .4byte gPlayerParty _081211C8: movs r0, 0x3 - bl battle_get_side_with_given_state - ldr r1, _081211E4 @ =gUnknown_02024A6A + bl GetBankByPlayerAI + ldr r1, _081211E4 @ =gBattlePartyID lsls r0, 24 lsrs r0, 23 adds r0, r1 @@ -879,10 +879,10 @@ _081211C8: adds r0, r1 b _0812190E .align 2, 0 -_081211E4: .4byte gUnknown_02024A6A +_081211E4: .4byte gBattlePartyID _081211E8: .4byte gEnemyParty _081211EC: - ldr r2, _0812120C @ =gUnknown_02024A6A + ldr r2, _0812120C @ =gBattlePartyID ldr r1, _08121210 @ =gLinkPlayers lsls r0, r7, 3 subs r0, r7 @@ -898,11 +898,11 @@ _081211EC: adds r0, r1 b _0812190E .align 2, 0 -_0812120C: .4byte gUnknown_02024A6A +_0812120C: .4byte gBattlePartyID _08121210: .4byte gLinkPlayers _08121214: .4byte gPlayerParty _08121218: - ldr r2, _0812123C @ =gUnknown_02024A6A + ldr r2, _0812123C @ =gBattlePartyID ldr r1, _08121240 @ =gLinkPlayers lsls r0, r7, 3 subs r0, r7 @@ -920,11 +920,11 @@ _08121218: adds r0, r1 b _0812190E .align 2, 0 -_0812123C: .4byte gUnknown_02024A6A +_0812123C: .4byte gBattlePartyID _08121240: .4byte gLinkPlayers _08121244: .4byte gEnemyParty _08121248: - ldr r2, _0812126C @ =gUnknown_02024A6A + ldr r2, _0812126C @ =gBattlePartyID ldr r1, _08121270 @ =gLinkPlayers lsls r0, r7, 3 subs r0, r7 @@ -942,11 +942,11 @@ _08121248: adds r0, r1 b _0812190E .align 2, 0 -_0812126C: .4byte gUnknown_02024A6A +_0812126C: .4byte gBattlePartyID _08121270: .4byte gLinkPlayers _08121274: .4byte gPlayerParty _08121278: - ldr r2, _0812129C @ =gUnknown_02024A6A + ldr r2, _0812129C @ =gBattlePartyID ldr r1, _081212A0 @ =gLinkPlayers lsls r0, r7, 3 subs r0, r7 @@ -964,13 +964,13 @@ _08121278: adds r0, r1 b _0812190E .align 2, 0 -_0812129C: .4byte gUnknown_02024A6A +_0812129C: .4byte gBattlePartyID _081212A0: .4byte gLinkPlayers _081212A4: .4byte gEnemyParty _081212A8: - ldr r4, _081212CC @ =gPlayerMonIndex + ldr r4, _081212CC @ =gBankAttacker ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 adds r2, r4, 0 cmp r0, 0 @@ -985,7 +985,7 @@ _081212A8: ldr r4, _081212D8 @ =gUnknown_08400797 b _081212E6 .align 2, 0 -_081212CC: .4byte gPlayerMonIndex +_081212CC: .4byte gBankAttacker _081212D0: .4byte gBattleTypeFlags _081212D4: .4byte gUnknown_08400791 _081212D8: .4byte gUnknown_08400797 @@ -1001,12 +1001,12 @@ _081212E6: cmp r0, 0xFF bne _081212DC ldrb r0, [r2] - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r0, 0 movs r0, 0x1 ands r0, r1 - bl battle_get_side_with_given_state - ldr r1, _08121314 @ =gUnknown_02024A6A + bl GetBankByPlayerAI + ldr r1, _08121314 @ =gBattlePartyID lsls r0, 24 lsrs r0, 23 adds r0, r1 @@ -1017,37 +1017,37 @@ _081212E6: adds r0, r1 b _0812190E .align 2, 0 -_08121314: .4byte gUnknown_02024A6A +_08121314: .4byte gBattlePartyID _08121318: .4byte gEnemyParty _0812131C: ldrb r0, [r2] - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r0, 0 movs r0, 0x1 ands r0, r1 - bl battle_get_side_with_given_state - ldr r1, _08121338 @ =gUnknown_02024A6A + bl GetBankByPlayerAI + ldr r1, _08121338 @ =gBattlePartyID lsls r0, 24 lsrs r0, 23 adds r0, r1 ldrh r1, [r0] b _0812193A .align 2, 0 -_08121338: .4byte gUnknown_02024A6A +_08121338: .4byte gBattlePartyID _0812133C: - ldr r4, _08121370 @ =gPlayerMonIndex + ldr r4, _08121370 @ =gBankAttacker ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0812137C ldrb r0, [r4] - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r0, 0 movs r0, 0x1 ands r0, r1 - bl battle_get_side_with_given_state - ldr r1, _08121374 @ =gUnknown_02024A6A + bl GetBankByPlayerAI + ldr r1, _08121374 @ =gBattlePartyID lsls r0, 24 lsrs r0, 23 adds r0, 0x4 @@ -1059,17 +1059,17 @@ _0812133C: adds r0, r1 b _0812190E .align 2, 0 -_08121370: .4byte gPlayerMonIndex -_08121374: .4byte gUnknown_02024A6A +_08121370: .4byte gBankAttacker +_08121374: .4byte gBattlePartyID _08121378: .4byte gPlayerParty _0812137C: ldrb r0, [r4] - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r0, 0 movs r0, 0x1 ands r0, r1 - bl battle_get_side_with_given_state - ldr r1, _081213A0 @ =gUnknown_02024A6A + bl GetBankByPlayerAI + ldr r1, _081213A0 @ =gBattlePartyID lsls r0, 24 lsrs r0, 23 adds r0, 0x4 @@ -1080,12 +1080,12 @@ _0812137C: ldr r1, _081213A4 @ =gEnemyParty b _08121940 .align 2, 0 -_081213A0: .4byte gUnknown_02024A6A +_081213A0: .4byte gBattlePartyID _081213A4: .4byte gEnemyParty _081213A8: - ldr r5, _081213F4 @ =gPlayerMonIndex + ldr r5, _081213F4 @ =gBankAttacker ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0812140C @@ -1100,7 +1100,7 @@ _081213A8: _081213C6: ldrb r1, [r4] adds r0, r1, 0 - ldr r3, _08121404 @ =gUnknown_02024A6A + ldr r3, _08121404 @ =gBattlePartyID ldr r2, _08121408 @ =gEnemyParty mov r12, r2 adds r2, r5, 0 @@ -1123,25 +1123,25 @@ _081213E8: ldrh r1, [r0] b _08121908 .align 2, 0 -_081213F4: .4byte gPlayerMonIndex +_081213F4: .4byte gBankAttacker _081213F8: .4byte gBattleTypeFlags _081213FC: .4byte gUnknown_08400791 _08121400: .4byte gUnknown_08400797 -_08121404: .4byte gUnknown_02024A6A +_08121404: .4byte gBattlePartyID _08121408: .4byte gEnemyParty _0812140C: - ldr r1, _08121418 @ =gUnknown_02024A6A + ldr r1, _08121418 @ =gBattlePartyID ldrb r0, [r5] lsls r0, 1 adds r0, r1 ldrh r1, [r0] b _0812193A .align 2, 0 -_08121418: .4byte gUnknown_02024A6A +_08121418: .4byte gBattlePartyID _0812141C: - ldr r5, _08121468 @ =gEnemyMonIndex + ldr r5, _08121468 @ =gBankTarget ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _08121480 @@ -1156,7 +1156,7 @@ _0812141C: _0812143A: ldrb r1, [r4] adds r0, r1, 0 - ldr r3, _08121478 @ =gUnknown_02024A6A + ldr r3, _08121478 @ =gBattlePartyID ldr r2, _0812147C @ =gEnemyParty mov r12, r2 adds r2, r5, 0 @@ -1179,25 +1179,25 @@ _0812145C: ldrh r1, [r0] b _08121908 .align 2, 0 -_08121468: .4byte gEnemyMonIndex +_08121468: .4byte gBankTarget _0812146C: .4byte gBattleTypeFlags _08121470: .4byte gUnknown_08400791 _08121474: .4byte gUnknown_08400797 -_08121478: .4byte gUnknown_02024A6A +_08121478: .4byte gBattlePartyID _0812147C: .4byte gEnemyParty _08121480: - ldr r1, _0812148C @ =gUnknown_02024A6A + ldr r1, _0812148C @ =gBattlePartyID ldrb r0, [r5] lsls r0, 1 adds r0, r1 ldrh r1, [r0] b _0812193A .align 2, 0 -_0812148C: .4byte gUnknown_02024A6A +_0812148C: .4byte gBattlePartyID _08121490: - ldr r5, _081214DC @ =gUnknown_02024C0A + ldr r5, _081214DC @ =gEffectBank ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _081214F4 @@ -1212,7 +1212,7 @@ _08121490: _081214AE: ldrb r1, [r4] adds r0, r1, 0 - ldr r3, _081214EC @ =gUnknown_02024A6A + ldr r3, _081214EC @ =gBattlePartyID ldr r2, _081214F0 @ =gEnemyParty mov r12, r2 adds r2, r5, 0 @@ -1235,25 +1235,25 @@ _081214D0: ldrh r1, [r0] b _08121908 .align 2, 0 -_081214DC: .4byte gUnknown_02024C0A +_081214DC: .4byte gEffectBank _081214E0: .4byte gBattleTypeFlags _081214E4: .4byte gUnknown_08400791 _081214E8: .4byte gUnknown_08400797 -_081214EC: .4byte gUnknown_02024A6A +_081214EC: .4byte gBattlePartyID _081214F0: .4byte gEnemyParty _081214F4: - ldr r1, _08121500 @ =gUnknown_02024A6A + ldr r1, _08121500 @ =gBattlePartyID ldrb r0, [r5] lsls r0, 1 adds r0, r1 ldrh r1, [r0] b _0812193A .align 2, 0 -_08121500: .4byte gUnknown_02024A6A +_08121500: .4byte gBattlePartyID _08121504: - ldr r5, _08121550 @ =gUnknown_02024A60 + ldr r5, _08121550 @ =gActiveBank ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _08121568 @@ -1268,7 +1268,7 @@ _08121504: _08121522: ldrb r1, [r4] adds r0, r1, 0 - ldr r3, _08121560 @ =gUnknown_02024A6A + ldr r3, _08121560 @ =gBattlePartyID ldr r2, _08121564 @ =gEnemyParty mov r12, r2 adds r2, r5, 0 @@ -1291,27 +1291,27 @@ _08121544: ldrh r1, [r0] b _08121908 .align 2, 0 -_08121550: .4byte gUnknown_02024A60 +_08121550: .4byte gActiveBank _08121554: .4byte gBattleTypeFlags _08121558: .4byte gUnknown_08400791 _0812155C: .4byte gUnknown_08400797 -_08121560: .4byte gUnknown_02024A6A +_08121560: .4byte gBattlePartyID _08121564: .4byte gEnemyParty _08121568: - ldr r1, _08121574 @ =gUnknown_02024A6A + ldr r1, _08121574 @ =gBattlePartyID ldrb r0, [r5] lsls r0, 1 adds r0, r1 ldrh r1, [r0] b _0812193A .align 2, 0 -_08121574: .4byte gUnknown_02024A6A +_08121574: .4byte gBattlePartyID _08121578: ldr r4, _081215CC @ =0x02000000 ldr r0, _081215D0 @ =0x00016003 adds r5, r4, r0 ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 adds r2, r4, 0 cmp r0, 0 @@ -1327,7 +1327,7 @@ _08121578: _0812159C: ldrb r1, [r4] adds r0, r1, 0 - ldr r3, _081215E0 @ =gUnknown_02024A6A + ldr r3, _081215E0 @ =gBattlePartyID ldr r5, _081215E4 @ =gEnemyParty mov r12, r5 cmp r0, 0xFF @@ -1356,19 +1356,19 @@ _081215D0: .4byte 0x00016003 _081215D4: .4byte gBattleTypeFlags _081215D8: .4byte gUnknown_08400791 _081215DC: .4byte gUnknown_08400797 -_081215E0: .4byte gUnknown_02024A6A +_081215E0: .4byte gBattlePartyID _081215E4: .4byte gEnemyParty _081215E8: - ldr r1, _081215F4 @ =gUnknown_02024A6A + ldr r1, _081215F4 @ =gBattlePartyID ldrb r0, [r5] lsls r0, 1 adds r0, r1 ldrh r1, [r0] b _0812193A .align 2, 0 -_081215F4: .4byte gUnknown_02024A6A +_081215F4: .4byte gBattlePartyID _081215F8: - ldr r0, _08121610 @ =gSelectedOrderFromParty + ldr r0, _08121610 @ =gBufferedMoves ldr r2, [r0] ldrh r1, [r2] movs r0, 0xB1 @@ -1380,14 +1380,14 @@ _081215F8: adds r0, r2 b _08121634 .align 2, 0 -_08121610: .4byte gSelectedOrderFromParty +_08121610: .4byte gBufferedMoves _08121614: .4byte 0x02000000 _08121618: .4byte 0x000160a0 _0812161C: ldrh r1, [r2] b _08121652 _08121620: - ldr r0, _08121640 @ =gSelectedOrderFromParty + ldr r0, _08121640 @ =gBufferedMoves ldr r2, [r0] ldrh r1, [r2, 0x2] movs r0, 0xB1 @@ -1404,7 +1404,7 @@ _08121634: adds r4, r0, r1 b _081219E6 .align 2, 0 -_08121640: .4byte gSelectedOrderFromParty +_08121640: .4byte gBufferedMoves _08121644: .4byte 0x02000000 _08121648: .4byte 0x000160a0 _0812164C: .4byte gUnknown_08401674 @@ -1425,7 +1425,7 @@ _08121660: ands r0, r1 cmp r0, 0 beq _081216D8 - ldr r1, _081216B0 @ =gUnknown_02024C04 + ldr r1, _081216B0 @ =gLastUsedItem ldrh r0, [r1] cmp r0, 0xAF bne _081216D4 @@ -1438,7 +1438,7 @@ _08121660: subs r0, r1 lsls r0, 2 adds r0, r2 - ldr r1, _081216C0 @ =gUnknown_02024C0B + ldr r1, _081216C0 @ =gStringBank ldrb r2, [r1] ldrh r0, [r0, 0x18] cmp r0, r2 @@ -1457,11 +1457,11 @@ _08121660: b _081219E6 .align 2, 0 _081216AC: .4byte gBattleTypeFlags -_081216B0: .4byte gUnknown_02024C04 +_081216B0: .4byte gLastUsedItem _081216B4: .4byte gLinkPlayers _081216B8: .4byte 0x02000000 _081216BC: .4byte 0x000160cb -_081216C0: .4byte gUnknown_02024C0B +_081216C0: .4byte gStringBank _081216C4: .4byte gEnigmaBerries _081216C8: .4byte gUnknown_08400A85 _081216CC: @@ -1473,7 +1473,7 @@ _081216D4: ldrh r0, [r1] b _081216DC _081216D8: - ldr r0, _081216E8 @ =gUnknown_02024C04 + ldr r0, _081216E8 @ =gLastUsedItem ldrh r0, [r0] _081216DC: mov r1, sp @@ -1481,39 +1481,39 @@ _081216DC: mov r4, sp b _081219E6 .align 2, 0 -_081216E8: .4byte gUnknown_02024C04 +_081216E8: .4byte gLastUsedItem _081216EC: - ldr r0, _081216F0 @ =byte_2024C06 + ldr r0, _081216F0 @ =gLastUsedAbility b _08121734 .align 2, 0 -_081216F0: .4byte byte_2024C06 +_081216F0: .4byte gLastUsedAbility _081216F4: - ldr r1, _081216FC @ =gUnknown_0203926C - ldr r0, _08121700 @ =gPlayerMonIndex + ldr r1, _081216FC @ =gAbilitiesPerBank + ldr r0, _08121700 @ =gBankAttacker b _08121730 .align 2, 0 -_081216FC: .4byte gUnknown_0203926C -_08121700: .4byte gPlayerMonIndex +_081216FC: .4byte gAbilitiesPerBank +_08121700: .4byte gBankAttacker _08121704: - ldr r1, _0812170C @ =gUnknown_0203926C - ldr r0, _08121710 @ =gEnemyMonIndex + ldr r1, _0812170C @ =gAbilitiesPerBank + ldr r0, _08121710 @ =gBankTarget b _08121730 .align 2, 0 -_0812170C: .4byte gUnknown_0203926C -_08121710: .4byte gEnemyMonIndex +_0812170C: .4byte gAbilitiesPerBank +_08121710: .4byte gBankTarget _08121714: - ldr r1, _08121720 @ =gUnknown_0203926C + ldr r1, _08121720 @ =gAbilitiesPerBank ldr r0, _08121724 @ =0x02000000 ldr r2, _08121728 @ =0x00016003 adds r0, r2 b _08121730 .align 2, 0 -_08121720: .4byte gUnknown_0203926C +_08121720: .4byte gAbilitiesPerBank _08121724: .4byte 0x02000000 _08121728: .4byte 0x00016003 _0812172C: - ldr r1, _08121740 @ =gUnknown_0203926C - ldr r0, _08121744 @ =gUnknown_02024C0A + ldr r1, _08121740 @ =gAbilitiesPerBank + ldr r0, _08121744 @ =gEffectBank _08121730: ldrb r0, [r0] adds r0, r1 @@ -1525,8 +1525,8 @@ _08121734: adds r4, r1, r0 b _081219E6 .align 2, 0 -_08121740: .4byte gUnknown_0203926C -_08121744: .4byte gUnknown_02024C0A +_08121740: .4byte gAbilitiesPerBank +_08121744: .4byte gEffectBank _08121748: .4byte gAbilityNames _0812174C: ldr r3, _08121764 @ =gTrainerBattleOpponent @@ -1719,7 +1719,7 @@ _081218C0: ldr r1, _0812191C @ =0x00016003 adds r0, r5, r1 ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _08121934 @@ -1805,15 +1805,15 @@ _08121970: .4byte 0x0000084b _08121974: .4byte gUnknown_084009ED _08121978: .4byte gUnknown_084009F7 _0812197C: - ldr r0, _08121980 @ =gPlayerMonIndex + ldr r0, _08121980 @ =gBankAttacker b _08121986 .align 2, 0 -_08121980: .4byte gPlayerMonIndex +_08121980: .4byte gBankAttacker _08121984: - ldr r0, _08121998 @ =gEnemyMonIndex + ldr r0, _08121998 @ =gBankTarget _08121986: ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 ldr r4, _0812199C @ =gUnknown_084007A7 cmp r0, 0 @@ -1821,19 +1821,19 @@ _08121986: ldr r4, _081219A0 @ =gUnknown_084007AC b _081219E6 .align 2, 0 -_08121998: .4byte gEnemyMonIndex +_08121998: .4byte gBankTarget _0812199C: .4byte gUnknown_084007A7 _081219A0: .4byte gUnknown_084007AC _081219A4: - ldr r0, _081219A8 @ =gPlayerMonIndex + ldr r0, _081219A8 @ =gBankAttacker b _081219AE .align 2, 0 -_081219A8: .4byte gPlayerMonIndex +_081219A8: .4byte gBankAttacker _081219AC: - ldr r0, _081219C0 @ =gEnemyMonIndex + ldr r0, _081219C0 @ =gBankTarget _081219AE: ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 ldr r4, _081219C4 @ =gUnknown_0840079C cmp r0, 0 @@ -1841,19 +1841,19 @@ _081219AE: ldr r4, _081219C8 @ =gUnknown_084007A1 b _081219E6 .align 2, 0 -_081219C0: .4byte gEnemyMonIndex +_081219C0: .4byte gBankTarget _081219C4: .4byte gUnknown_0840079C _081219C8: .4byte gUnknown_084007A1 _081219CC: - ldr r0, _081219D0 @ =gPlayerMonIndex + ldr r0, _081219D0 @ =gBankAttacker b _081219D6 .align 2, 0 -_081219D0: .4byte gPlayerMonIndex +_081219D0: .4byte gBankAttacker _081219D4: - ldr r0, _08121A24 @ =gEnemyMonIndex + ldr r0, _08121A24 @ =gBankTarget _081219D6: ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 ldr r4, _08121A28 @ =gUnknown_084007B2 cmp r0, 0 @@ -1894,7 +1894,7 @@ _08121A06: adds r6, 0x1 b _08121A3C .align 2, 0 -_08121A24: .4byte gEnemyMonIndex +_08121A24: .4byte gBankTarget _08121A28: .4byte gUnknown_084007B2 _08121A2C: .4byte gUnknown_084007B7 _08121A30: @@ -1927,7 +1927,7 @@ _08121A4A: pop {r4-r7} pop {r1} bx r1 - thumb_func_end sub_8120FFC + thumb_func_end StrCpyDecodeBattle thumb_func_start sub_8121A68 sub_8121A68: @ 8121A68 @@ -1980,14 +1980,14 @@ _08121ACC: ldrb r0, [r0, 0x2] lsls r0, 8 orrs r1, r0 - ldr r0, _08121AE4 @ =gUnknown_08400F8C + ldr r0, _08121AE4 @ =gBattleStringsTable subs r1, 0xC lsls r1, 2 adds r1, r0 ldr r1, [r1] b _08121CE2 .align 2, 0 -_08121AE4: .4byte gUnknown_08400F8C +_08121AE4: .4byte gBattleStringsTable _08121AE8: ldrb r0, [r4, 0x1] cmp r0, 0x2 @@ -2060,7 +2060,7 @@ _08121B54: _08121B60: .4byte gTypeNames _08121B64: ldrb r0, [r4, 0x1] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08121B88 @@ -2135,7 +2135,7 @@ _08121BF0: _08121C02: adds r4, r5, r7 ldrb r0, [r4, 0x1] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08121C28 @@ -2213,7 +2213,7 @@ _08121C78: subs r0, r1 lsls r0, 2 adds r0, r2 - ldr r1, _08121CD4 @ =gUnknown_02024C0B + ldr r1, _08121CD4 @ =gStringBank ldrb r2, [r1] ldrh r0, [r0, 0x18] cmp r0, r2 @@ -2232,7 +2232,7 @@ _08121CC4: .4byte gBattleTypeFlags _08121CC8: .4byte gLinkPlayers _08121CCC: .4byte 0x02000000 _08121CD0: .4byte 0x000160cb -_08121CD4: .4byte gUnknown_02024C0B +_08121CD4: .4byte gStringBank _08121CD8: .4byte gEnigmaBerries _08121CDC: .4byte gUnknown_08400A85 _08121CE0: @@ -2274,7 +2274,7 @@ sub_8121D1C: @ 8121D1C push {r4,r5,lr} adds r4, r0, 0 movs r2, 0 - ldr r5, _08121D50 @ =gSelectedOrderFromParty + ldr r5, _08121D50 @ =gBufferedMoves ldr r3, _08121D54 @ =gUnknown_084016BC _08121D26: cmp r2, 0x4 @@ -2299,7 +2299,7 @@ _08121D3C: bl StringCopy b _08121D68 .align 2, 0 -_08121D50: .4byte gSelectedOrderFromParty +_08121D50: .4byte gBufferedMoves _08121D54: .4byte gUnknown_084016BC _08121D58: .4byte gUnknown_08400E5E _08121D5C: @@ -2329,7 +2329,7 @@ _08121D7E: cmp r0, 0xFF bne _08121D7C ldr r1, _08121DB4 @ =gUnknown_084016BC - ldr r5, _08121DB8 @ =gSelectedOrderFromParty + ldr r5, _08121DB8 @ =gBufferedMoves movs r0, 0 lsls r0, 1 adds r2, r0, r1 @@ -2356,7 +2356,7 @@ _08121DA8: mov pc, r0 .align 2, 0 _08121DB4: .4byte gUnknown_084016BC -_08121DB8: .4byte gSelectedOrderFromParty +_08121DB8: .4byte gBufferedMoves _08121DBC: .4byte _08121DC0 .align 2, 0 _08121DC0: diff --git a/asm/battle_records.s b/asm/battle_records.s index e10f2f4e5..cfe822acc 100644 --- a/asm/battle_records.s +++ b/asm/battle_records.s @@ -415,7 +415,7 @@ _08110250: .4byte 0x0000270f sub_8110254: @ 8110254 push {r4,lr} adds r4, r0, 0 - ldr r0, _08110268 @ =gUnknown_02024D26 + ldr r0, _08110268 @ =gBattleOutcome ldrb r0, [r0] cmp r0, 0x1 beq _0811026C @@ -423,7 +423,7 @@ sub_8110254: @ 8110254 beq _0811027A b _08110288 .align 2, 0 -_08110268: .4byte gUnknown_02024D26 +_08110268: .4byte gBattleOutcome _0811026C: eors r0, r4 bl sub_81101FC @@ -457,7 +457,7 @@ sub_8110290: @ 8110290 subs r3, 0x30 adds r2, r3 ldrh r2, [r2, 0xE] - ldr r3, _081102DC @ =gUnknown_02024D26 + ldr r3, _081102DC @ =gBattleOutcome ldrb r3, [r3] ldr r6, _081102E0 @ =gLinkPlayers ldr r5, _081102E4 @ =gLinkPlayerMapObjects @@ -478,7 +478,7 @@ sub_8110290: @ 8110290 .align 2, 0 _081102D4: .4byte gSaveBlock1 + 0x30B8 _081102D8: .4byte gTrainerCards + 0x30 -_081102DC: .4byte gUnknown_02024D26 +_081102DC: .4byte gBattleOutcome _081102E0: .4byte gLinkPlayers _081102E4: .4byte gLinkPlayerMapObjects thumb_func_end sub_8110290 diff --git a/asm/battle_tower.s b/asm/battle_tower.s index 9dfce6c1c..ee8e18198 100644 --- a/asm/battle_tower.s +++ b/asm/battle_tower.s @@ -1522,7 +1522,7 @@ _081350AE: lsls r0, 16 lsrs r0, 16 movs r1, 0x1 - bl sub_8090D90 + bl GetNationalPokedexFlag lsls r0, 24 cmp r0, 0 beq _081350C6 @@ -1555,7 +1555,7 @@ AppendBattleTowerBannedSpeciesName: @ 81350E0 lsls r0, 16 lsrs r0, 16 movs r1, 0x1 - bl sub_8090D90 + bl GetNationalPokedexFlag lsls r0, 24 cmp r0, 0 beq _081351E6 @@ -2324,7 +2324,7 @@ _08135750: .4byte 0x00000564 _08135754: movs r2, 0 ldr r4, _0813576C @ =gSaveBlock2 + 0x565 - ldr r3, _08135770 @ =gSelectedOrderFromParty + ldr r3, _08135770 @ =gBufferedMoves _0813575A: adds r0, r2, r4 adds r1, r2, r3 @@ -2336,7 +2336,7 @@ _0813575A: b _0813589A .align 2, 0 _0813576C: .4byte gSaveBlock2 + 0x565 -_08135770: .4byte gSelectedOrderFromParty +_08135770: .4byte gBufferedMoves _08135774: ldr r3, _081357C0 @ =0x00000564 adds r0, r5, r3 @@ -2665,7 +2665,7 @@ _08135A10: .4byte 0x00000554 sub_8135A14: @ 8135A14 push {r4,lr} movs r2, 0 - ldr r4, _08135A34 @ =gSelectedOrderFromParty + ldr r4, _08135A34 @ =gBufferedMoves ldr r3, _08135A38 @ =gSaveBlock2 + 0x565 _08135A1C: adds r0, r2, r4 @@ -2680,7 +2680,7 @@ _08135A1C: pop {r0} bx r0 .align 2, 0 -_08135A34: .4byte gSelectedOrderFromParty +_08135A34: .4byte gBufferedMoves _08135A38: .4byte gSaveBlock2 + 0x565 thumb_func_end sub_8135A14 @@ -2891,7 +2891,7 @@ _08135BD4: _08135BD8: bl sub_8135CFC ldr r4, _08135C1C @ =gSaveBlock2 - ldr r0, _08135C2C @ =gUnknown_02024D26 + ldr r0, _08135C2C @ =gBattleOutcome ldrb r1, [r0] ldr r2, _08135C30 @ =0x00000555 adds r0, r4, r2 @@ -2925,7 +2925,7 @@ _08135C1C: .4byte gSaveBlock2 _08135C20: .4byte 0x00000554 _08135C24: .4byte gSpecialVar_0x8004 _08135C28: .4byte 0x0000055c -_08135C2C: .4byte gUnknown_02024D26 +_08135C2C: .4byte gBattleOutcome _08135C30: .4byte 0x00000555 _08135C34: .4byte 0x00000556 thumb_func_end sub_8135BA0 @@ -3553,7 +3553,7 @@ _081360CC: .4byte gSaveBlock2 + 0x4A8 thumb_func_start sub_81360D0 sub_81360D0: @ 81360D0 push {lr} - ldr r0, _081360E4 @ =gUnknown_02024D26 + ldr r0, _081360E4 @ =gBattleOutcome ldrb r0, [r0] cmp r0, 0x3 bne _081360EC @@ -3562,7 +3562,7 @@ sub_81360D0: @ 81360D0 strb r0, [r1] b _08136102 .align 2, 0 -_081360E4: .4byte gUnknown_02024D26 +_081360E4: .4byte gBattleOutcome _081360E8: .4byte gStringVar4 _081360EC: cmp r0, 0x1 diff --git a/asm/berry_blender.s b/asm/berry_blender.s index 666882c04..b6ee5f9f3 100644 --- a/asm/berry_blender.s +++ b/asm/berry_blender.s @@ -5484,7 +5484,7 @@ _08050ED8: adds r0, 0x6F movs r1, 0x3 strb r1, [r0] - bl sub_814A7FC + bl DestroyMenuCursor movs r0, 0x17 movs r1, 0x8 movs r2, 0x1C @@ -5513,7 +5513,7 @@ _08050F18: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] - bl sub_814A7FC + bl DestroyMenuCursor movs r0, 0x17 movs r1, 0x8 movs r2, 0x1C @@ -5794,7 +5794,7 @@ _0805116E: adds r0, 0x6F movs r1, 0x3 strb r1, [r0] - bl sub_814A7FC + bl DestroyMenuCursor movs r0, 0x17 movs r1, 0x8 movs r2, 0x1C @@ -5810,7 +5810,7 @@ _08051190: ldrb r1, [r0] adds r1, 0x1 strb r1, [r0] - bl sub_814A7FC + bl DestroyMenuCursor movs r0, 0x17 movs r1, 0x8 movs r2, 0x1C diff --git a/asm/cable_car.s b/asm/cable_car.s index 47afb097f..e4d989844 100644 --- a/asm/cable_car.s +++ b/asm/cable_car.s @@ -742,7 +742,7 @@ _081237E0: str r3, [r2, 0x8] ldr r0, [r2, 0x8] bl warp_in - ldr r0, _08123870 @ =gUnknown_0300485C + ldr r0, _08123870 @ =gFieldCallback str r4, [r0] ldr r0, _08123874 @ =CB2_LoadMap bl SetMainCallback2 @@ -760,7 +760,7 @@ _08123860: .4byte 0x040000d4 _08123864: .4byte 0x85000400 _08123868: .4byte gUnknown_02039274 _0812386C: .4byte 0x81000800 -_08123870: .4byte gUnknown_0300485C +_08123870: .4byte gFieldCallback _08123874: .4byte CB2_LoadMap thumb_func_end sub_8123740 diff --git a/asm/choose_party.s b/asm/choose_party.s index 25122e4ef..efa50dcf5 100644 --- a/asm/choose_party.s +++ b/asm/choose_party.s @@ -47,7 +47,7 @@ _08121E54: .4byte 0x00000263 sub_8121E58: @ 8121E58 push {lr} movs r1, 0 - ldr r3, _08121E74 @ =gSelectedOrderFromParty + ldr r3, _08121E74 @ =gBufferedMoves movs r2, 0 _08121E60: adds r0, r1, r3 @@ -60,7 +60,7 @@ _08121E60: pop {r0} bx r0 .align 2, 0 -_08121E74: .4byte gSelectedOrderFromParty +_08121E74: .4byte gBufferedMoves thumb_func_end sub_8121E58 thumb_func_start sub_8121E78 @@ -192,7 +192,7 @@ _08121F78: _08121F7E: cmp r4, 0x2 bhi _08121FA0 - ldr r0, _08121FC4 @ =gSelectedOrderFromParty + ldr r0, _08121FC4 @ =gBufferedMoves adds r0, r4, r0 ldrb r0, [r0] cmp r0, r6 @@ -223,7 +223,7 @@ _08121FA0: bl sub_806BC3C b _08121FD4 .align 2, 0 -_08121FC4: .4byte gSelectedOrderFromParty +_08121FC4: .4byte gBufferedMoves _08121FC8: .4byte gPlayerParty _08121FCC: adds r0, r5, 0 @@ -372,7 +372,7 @@ sub_81220C8: @ 81220C8 ldrb r0, [r0] cmp r0, 0 beq _081221A2 - ldr r0, _081220F4 @ =gSelectedOrderFromParty + ldr r0, _081220F4 @ =gBufferedMoves ldrb r0, [r0, 0x2] cmp r0, 0 bne _08122100 @@ -381,7 +381,7 @@ sub_81220C8: @ 81220C8 .align 2, 0 _081220EC: .4byte 0x0201b000 _081220F0: .4byte 0x00000263 -_081220F4: .4byte gSelectedOrderFromParty +_081220F4: .4byte gBufferedMoves _081220F8: movs r0, 0x12 b _081221A4 @@ -391,7 +391,7 @@ _081220FC: _08122100: movs r5, 0 _08122102: - ldr r4, _081221B4 @ =gSelectedOrderFromParty + ldr r4, _081221B4 @ =gBufferedMoves adds r4, r5, r4 ldrb r0, [r4] movs r1, 0x64 @@ -430,7 +430,7 @@ _0812214A: add r0, r9 movs r1, 0 ldrsh r4, [r0, r1] - ldr r0, _081221B4 @ =gSelectedOrderFromParty + ldr r0, _081221B4 @ =gBufferedMoves adds r6, r5, r0 ldrb r0, [r6] mov r2, r8 @@ -481,7 +481,7 @@ _081221A4: pop {r1} bx r1 .align 2, 0 -_081221B4: .4byte gSelectedOrderFromParty +_081221B4: .4byte gBufferedMoves _081221B8: .4byte gUnknown_030042FC _081221BC: .4byte 0x0201b000 _081221C0: .4byte 0x00000282 @@ -495,7 +495,7 @@ sub_81221CC: @ 81221CC lsls r0, 24 lsrs r2, r0, 24 movs r1, 0 - ldr r3, _081221E4 @ =gSelectedOrderFromParty + ldr r3, _081221E4 @ =gBufferedMoves _081221D6: adds r0, r1, r3 ldrb r0, [r0] @@ -504,7 +504,7 @@ _081221D6: movs r0, 0x1 b _081221F4 .align 2, 0 -_081221E4: .4byte gSelectedOrderFromParty +_081221E4: .4byte gBufferedMoves _081221E8: adds r0, r1, 0x1 lsls r0, 24 @@ -868,7 +868,7 @@ sub_81224A8: @ 81224A8 .align 2, 0 _081224CC: .4byte gTasks _081224D0: - ldr r0, _081224F8 @ =gSelectedOrderFromParty + ldr r0, _081224F8 @ =gBufferedMoves ldrb r0, [r0] cmp r0, 0 beq _08122504 @@ -888,7 +888,7 @@ _081224D0: str r1, [r0] b _08122520 .align 2, 0 -_081224F8: .4byte gSelectedOrderFromParty +_081224F8: .4byte gBufferedMoves _081224FC: .4byte gTasks _08122500: .4byte sub_8122450 _08122504: @@ -1088,7 +1088,7 @@ sub_8122694: @ 8122694 lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 - ldr r3, _081226D4 @ =gSelectedOrderFromParty + ldr r3, _081226D4 @ =gBufferedMoves ldr r2, _081226D8 @ =gLastFieldPokeMenuOpened _081226A0: adds r1, r4, r3 @@ -1116,7 +1116,7 @@ _081226CC: bl sub_8122838 b _08122716 .align 2, 0 -_081226D4: .4byte gSelectedOrderFromParty +_081226D4: .4byte gBufferedMoves _081226D8: .4byte gLastFieldPokeMenuOpened _081226DC: adds r0, r4, 0x1 @@ -1131,7 +1131,7 @@ _081226DC: movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect - bl sub_8072DEC + bl HandleDestroyMenuCursors bl sub_806D5A4 ldr r0, _0812271C @ =gOtherText_NoMoreThreePoke movs r1, 0x1 @@ -1178,7 +1178,7 @@ _0812274A: movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect - bl sub_8072DEC + bl HandleDestroyMenuCursors adds r0, r4, 0 bl sub_8122838 _08122760: @@ -1197,7 +1197,7 @@ sub_8122770: @ 8122770 lsrs r6, r0, 24 movs r4, 0 ldr r5, _08122798 @ =gLastFieldPokeMenuOpened - ldr r3, _0812279C @ =gSelectedOrderFromParty + ldr r3, _0812279C @ =gBufferedMoves _0812277C: adds r2, r4, r3 ldrb r1, [r2] @@ -1214,7 +1214,7 @@ _0812277C: b _081227BE .align 2, 0 _08122798: .4byte gLastFieldPokeMenuOpened -_0812279C: .4byte gSelectedOrderFromParty +_0812279C: .4byte gBufferedMoves _081227A0: ldrb r0, [r3, 0x1] strb r0, [r3] @@ -1237,7 +1237,7 @@ _081227BE: ldrb r0, [r5] movs r1, 0x70 bl sub_806BC3C - ldr r4, _081227F8 @ =gSelectedOrderFromParty + ldr r4, _081227F8 @ =gBufferedMoves ldrb r0, [r4] cmp r0, 0 beq _081227DA @@ -1262,7 +1262,7 @@ _081227EC: pop {r0} bx r0 .align 2, 0 -_081227F8: .4byte gSelectedOrderFromParty +_081227F8: .4byte gBufferedMoves thumb_func_end sub_8122770 thumb_func_start sub_81227FC @@ -1276,7 +1276,7 @@ sub_81227FC: @ 81227FC movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect - bl sub_8072DEC + bl HandleDestroyMenuCursors movs r0, 0 movs r1, 0 bl sub_806D538 @@ -2395,7 +2395,7 @@ sub_81230F4: @ 81230F4 movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect - bl sub_8072DEC + bl HandleDestroyMenuCursors movs r0, 0xF movs r1, 0 bl sub_806D538 @@ -2455,7 +2455,7 @@ sub_8123170: @ 8123170 ands r0, r1 cmp r0, 0 bne _08123194 - ldr r0, _081231A0 @ =gUnknown_0300485C + ldr r0, _081231A0 @ =gFieldCallback ldr r1, _081231A4 @ =sub_81231AC str r1, [r0] ldr r0, _081231A8 @ =c2_exit_to_overworld_2_switch @@ -2468,7 +2468,7 @@ _08123194: bx r0 .align 2, 0 _0812319C: .4byte gPaletteFade -_081231A0: .4byte gUnknown_0300485C +_081231A0: .4byte gFieldCallback _081231A4: .4byte sub_81231AC _081231A8: .4byte c2_exit_to_overworld_2_switch thumb_func_end sub_8123170 diff --git a/asm/contest.s b/asm/contest.s index 214935952..4a85f3d16 100644 --- a/asm/contest.s +++ b/asm/contest.s @@ -868,7 +868,7 @@ _080AB8CC: bl sub_80B00C8 bl sub_80B0324 bl sub_80B0518 - ldr r1, _080AB928 @ =gUnknown_02024A72 + ldr r1, _080AB928 @ =gBanksBySide strb r4, [r1] movs r0, 0x1 strb r0, [r1, 0x1] @@ -878,12 +878,12 @@ _080AB8CC: strb r2, [r1, 0x3] ldr r0, _080AB92C @ =gBattleTypeFlags strh r4, [r0] - ldr r4, _080AB930 @ =gPlayerMonIndex + ldr r4, _080AB930 @ =gBankAttacker strb r2, [r4] - ldr r0, _080AB934 @ =gEnemyMonIndex + ldr r0, _080AB934 @ =gBankTarget strb r3, [r0] bl sub_80AE858 - ldr r2, _080AB938 @ =gUnknown_02024BE0 + ldr r2, _080AB938 @ =gObjectBankIDs ldrb r1, [r4] adds r1, r2 strb r0, [r1] @@ -891,11 +891,11 @@ _080AB8CC: b _080AB946 .align 2, 0 _080AB924: .4byte 0x02019204 -_080AB928: .4byte gUnknown_02024A72 +_080AB928: .4byte gBanksBySide _080AB92C: .4byte gBattleTypeFlags -_080AB930: .4byte gPlayerMonIndex -_080AB934: .4byte gEnemyMonIndex -_080AB938: .4byte gUnknown_02024BE0 +_080AB930: .4byte gBankAttacker +_080AB934: .4byte gBankTarget +_080AB938: .4byte gObjectBankIDs _080AB93C: movs r0, 0 mov r1, r10 @@ -1197,7 +1197,7 @@ sub_80ABB70: @ 80ABB70 lsls r0, 24 cmp r0, 0 bne _080ABBD4 - ldr r0, _080ABBCC @ =gUnknown_020238CC + ldr r0, _080ABBCC @ =gDisplayedStringBattle ldr r1, _080ABBD0 @ =gUnknown_083CAF84 bl StringCopy b _080ABBDC @@ -1209,14 +1209,14 @@ _080ABBBC: .4byte 0x02018204 _080ABBC0: .4byte 0x040000d4 _080ABBC4: .4byte 0x84000100 _080ABBC8: .4byte gContestPlayerMonIndex -_080ABBCC: .4byte gUnknown_020238CC +_080ABBCC: .4byte gDisplayedStringBattle _080ABBD0: .4byte gUnknown_083CAF84 _080ABBD4: - ldr r0, _080ABC20 @ =gUnknown_020238CC + ldr r0, _080ABC20 @ =gDisplayedStringBattle ldr r1, _080ABC24 @ =gUnknown_083CAFAE bl StringCopy _080ABBDC: - ldr r5, _080ABC20 @ =gUnknown_020238CC + ldr r5, _080ABC20 @ =gDisplayedStringBattle ldr r0, _080ABC28 @ =0x02019204 ldrb r1, [r0, 0x1] adds r1, 0x1 @@ -1247,7 +1247,7 @@ _080ABBDC: pop {r0} bx r0 .align 2, 0 -_080ABC20: .4byte gUnknown_020238CC +_080ABC20: .4byte gDisplayedStringBattle _080ABC24: .4byte gUnknown_083CAFAE _080ABC28: .4byte 0x02019204 _080ABC2C: .4byte gStringVar4 @@ -1577,7 +1577,7 @@ _080ABEC6: ands r5, r0 cmp r5, 0 beq _080ABF08 - bl sub_814A7FC + bl DestroyMenuCursor movs r0, 0x5 bl PlaySE ldr r0, _080ABF00 @ =gTasks @@ -1635,7 +1635,7 @@ _080ABF26: lsls r0, 24 cmp r0, 0 bne _080ABF78 - ldr r0, _080ABF70 @ =gUnknown_020238CC + ldr r0, _080ABF70 @ =gDisplayedStringBattle ldr r1, _080ABF74 @ =gUnknown_083CAF84 bl StringCopy b _080ABF80 @@ -1643,14 +1643,14 @@ _080ABF26: _080ABF64: .4byte gUnknown_03004210 _080ABF68: .4byte gUnknown_083CA340 _080ABF6C: .4byte gContestPlayerMonIndex -_080ABF70: .4byte gUnknown_020238CC +_080ABF70: .4byte gDisplayedStringBattle _080ABF74: .4byte gUnknown_083CAF84 _080ABF78: - ldr r0, _080ABFC8 @ =gUnknown_020238CC + ldr r0, _080ABFC8 @ =gDisplayedStringBattle ldr r1, _080ABFCC @ =gUnknown_083CAFAE bl StringCopy _080ABF80: - ldr r5, _080ABFC8 @ =gUnknown_020238CC + ldr r5, _080ABFC8 @ =gDisplayedStringBattle ldr r0, _080ABFD0 @ =0x02019204 ldrb r1, [r0, 0x1] adds r1, 0x1 @@ -1683,7 +1683,7 @@ _080ABF80: str r1, [r0] b _080AC098 .align 2, 0 -_080ABFC8: .4byte gUnknown_020238CC +_080ABFC8: .4byte gDisplayedStringBattle _080ABFCC: .4byte gUnknown_083CAFAE _080ABFD0: .4byte 0x02019204 _080ABFD4: .4byte gStringVar4 @@ -2343,8 +2343,8 @@ _080AC542: lsls r4, 3 adds r4, r0 strh r5, [r4, 0xC] - ldr r1, _080AC5E0 @ =gUnknown_02024BE0 - ldr r0, _080AC5E4 @ =gPlayerMonIndex + ldr r1, _080AC5E0 @ =gObjectBankIDs + ldr r0, _080AC5E4 @ =gBankAttacker ldrb r0, [r0] adds r0, r1 strb r5, [r0] @@ -2364,8 +2364,8 @@ _080AC5D0: .4byte gContestMons _080AC5D4: .4byte gSprites _080AC5D8: .4byte sub_80AD8FC _080AC5DC: .4byte gTasks -_080AC5E0: .4byte gUnknown_02024BE0 -_080AC5E4: .4byte gPlayerMonIndex +_080AC5E0: .4byte gObjectBankIDs +_080AC5E4: .4byte gBankAttacker _080AC5E8: mov r1, r8 lsls r0, r1, 2 @@ -5585,7 +5585,7 @@ sub_80ADFD8: @ 80ADFD8 bne _080ADFFC adds r0, r2, 0 bl DestroyTask - ldr r0, _080AE004 @ =gUnknown_0300485C + ldr r0, _080AE004 @ =gFieldCallback ldr r1, _080AE008 @ =sub_80AE010 str r1, [r0] ldr r0, _080AE00C @ =c2_exit_to_overworld_2_switch @@ -5595,7 +5595,7 @@ _080ADFFC: bx r0 .align 2, 0 _080AE000: .4byte gPaletteFade -_080AE004: .4byte gUnknown_0300485C +_080AE004: .4byte gFieldCallback _080AE008: .4byte sub_80AE010 _080AE00C: .4byte c2_exit_to_overworld_2_switch thumb_func_end sub_80ADFD8 @@ -6359,7 +6359,7 @@ sub_80AE5D4: @ 80AE5D4 lsrs r4, r0, 24 lsls r2, 24 lsrs r2, 24 - ldr r3, _080AE660 @ =gUnknown_020238CC + ldr r3, _080AE660 @ =gDisplayedStringBattle ldr r1, _080AE664 @ =gEmptyString_81E72B0 adds r0, r3, 0 bl sub_80AE598 @@ -6393,7 +6393,7 @@ sub_80AE5D4: @ 80AE5D4 adds r0, r3, 0 bl StringCopy ldr r0, _080AE670 @ =gUnknown_03004210 - ldr r1, _080AE660 @ =gUnknown_020238CC + ldr r1, _080AE660 @ =gDisplayedStringBattle ldr r2, _080AE674 @ =gUnknown_02038696 adds r2, r4, r2 ldrb r4, [r2] @@ -6420,7 +6420,7 @@ sub_80AE5D4: @ 80AE5D4 bl sub_8004D04 b _080AE6B0 .align 2, 0 -_080AE660: .4byte gUnknown_020238CC +_080AE660: .4byte gDisplayedStringBattle _080AE664: .4byte gEmptyString_81E72B0 _080AE668: .4byte gIsLinkContest _080AE66C: .4byte gLinkPlayers @@ -6434,7 +6434,7 @@ _080AE67C: adds r0, r3, 0 bl StringCopy ldr r0, _080AE6BC @ =gUnknown_03004210 - ldr r1, _080AE6C0 @ =gUnknown_020238CC + ldr r1, _080AE6C0 @ =gDisplayedStringBattle ldr r2, _080AE6C4 @ =gUnknown_02038696 adds r2, r4, r2 ldrb r4, [r2] @@ -6460,7 +6460,7 @@ _080AE6B0: .align 2, 0 _080AE6B8: .4byte gUnknown_0203857D _080AE6BC: .4byte gUnknown_03004210 -_080AE6C0: .4byte gUnknown_020238CC +_080AE6C0: .4byte gDisplayedStringBattle _080AE6C4: .4byte gUnknown_02038696 _080AE6C8: .4byte gUnknown_083CA310 thumb_func_end sub_80AE5D4 @@ -6490,7 +6490,7 @@ sub_80AE6E4: @ 80AE6E4 lsrs r4, 24 lsls r2, 24 lsrs r2, 24 - ldr r3, _080AE75C @ =gUnknown_020238CC + ldr r3, _080AE75C @ =gDisplayedStringBattle movs r0, 0xFC strb r0, [r3] movs r0, 0x6 @@ -6507,7 +6507,7 @@ sub_80AE6E4: @ 80AE6E4 movs r0, 0xFF strb r0, [r3] ldr r0, _080AE764 @ =gUnknown_03004210 - ldr r1, _080AE75C @ =gUnknown_020238CC + ldr r1, _080AE75C @ =gDisplayedStringBattle ldr r2, _080AE768 @ =gUnknown_02038696 adds r4, r2 ldrb r4, [r4] @@ -6540,7 +6540,7 @@ sub_80AE6E4: @ 80AE6E4 pop {r0} bx r0 .align 2, 0 -_080AE75C: .4byte gUnknown_020238CC +_080AE75C: .4byte gDisplayedStringBattle _080AE760: .4byte gContestMons + 0x2 _080AE764: .4byte gUnknown_03004210 _080AE768: .4byte gUnknown_02038696 @@ -7941,17 +7941,17 @@ _080AF1FE: ldrh r0, [r1, 0x6] cmp r0, 0 bne _080AF228 - ldr r0, _080AF220 @ =gUnknown_020238CC + ldr r0, _080AF220 @ =gDisplayedStringBattle ldr r1, _080AF224 @ =gUnknownText_MissedTurn adds r2, r3, 0 bl sub_80AE598 b _080AF23A .align 2, 0 _080AF21C: .4byte 0x02019260 -_080AF220: .4byte gUnknown_020238CC +_080AF220: .4byte gDisplayedStringBattle _080AF224: .4byte gUnknownText_MissedTurn _080AF228: - ldr r0, _080AF270 @ =gUnknown_020238CC + ldr r0, _080AF270 @ =gDisplayedStringBattle ldrh r2, [r1, 0x6] movs r1, 0xD muls r1, r2 @@ -7963,7 +7963,7 @@ _080AF23A: adds r0, r5, 0 bl sub_80AF2A0 ldr r0, _080AF278 @ =gUnknown_03004210 - ldr r1, _080AF270 @ =gUnknown_020238CC + ldr r1, _080AF270 @ =gDisplayedStringBattle lsls r2, r5, 2 adds r2, r5 lsls r2, 18 @@ -7985,7 +7985,7 @@ _080AF23A: pop {r0} bx r0 .align 2, 0 -_080AF270: .4byte gUnknown_020238CC +_080AF270: .4byte gDisplayedStringBattle _080AF274: .4byte gMoveNames _080AF278: .4byte gUnknown_03004210 _080AF27C: .4byte gUnknown_083CA318 @@ -15126,17 +15126,17 @@ _080B2848: _080B2878: .4byte 0x02019260 _080B287C: .4byte gContestMons _080B2880: - ldr r1, _080B2888 @ =gUnknown_0202F7BE + ldr r1, _080B2888 @ =gHappinessMoveAnim movs r0, 0xFF b _080B28BC .align 2, 0 -_080B2888: .4byte gUnknown_0202F7BE +_080B2888: .4byte gHappinessMoveAnim _080B288C: - ldr r1, _080B2894 @ =gUnknown_0202F7BE + ldr r1, _080B2894 @ =gHappinessMoveAnim movs r0, 0 b _080B28BC .align 2, 0 -_080B2894: .4byte gUnknown_0202F7BE +_080B2894: .4byte gHappinessMoveAnim _080B2898: ldr r0, _080B28B0 @ =0x02019204 adds r2, r0, 0 @@ -15224,9 +15224,9 @@ sub_80B292C: @ 80B292C push {lr} ldr r0, _080B2958 @ =SpriteCallbackDummy bl CreateInvisibleSpriteWithCallback - ldr r1, _080B295C @ =gUnknown_02024BE0 + ldr r1, _080B295C @ =gObjectBankIDs strb r0, [r1, 0x3] - ldr r0, _080B2960 @ =gEnemyMonIndex + ldr r0, _080B2960 @ =gBankTarget ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -15241,15 +15241,15 @@ sub_80B292C: @ 80B292C bx r0 .align 2, 0 _080B2958: .4byte SpriteCallbackDummy -_080B295C: .4byte gUnknown_02024BE0 -_080B2960: .4byte gEnemyMonIndex +_080B295C: .4byte gObjectBankIDs +_080B2960: .4byte gBankTarget _080B2964: .4byte gSprites thumb_func_end sub_80B292C thumb_func_start sub_80B2968 sub_80B2968: @ 80B2968 push {r4,lr} - ldr r0, _080B29AC @ =gUnknown_02024BE0 + ldr r0, _080B29AC @ =gObjectBankIDs ldrb r0, [r0, 0x3] lsls r4, r0, 4 adds r4, r0 @@ -15280,7 +15280,7 @@ sub_80B2968: @ 80B2968 pop {r0} bx r0 .align 2, 0 -_080B29AC: .4byte gUnknown_02024BE0 +_080B29AC: .4byte gObjectBankIDs _080B29B0: .4byte gSprites thumb_func_end sub_80B2968 @@ -15341,20 +15341,20 @@ _080B29DC: .4byte _080B2A6C .4byte _080B2A6C _080B2A60: - ldr r1, _080B2A68 @ =gEnemyMonIndex + ldr r1, _080B2A68 @ =gBankTarget movs r0, 0x2 b _080B2A70 .align 2, 0 -_080B2A68: .4byte gEnemyMonIndex +_080B2A68: .4byte gBankTarget _080B2A6C: - ldr r1, _080B2A78 @ =gEnemyMonIndex + ldr r1, _080B2A78 @ =gBankTarget movs r0, 0x3 _080B2A70: strb r0, [r1] pop {r0} bx r0 .align 2, 0 -_080B2A78: .4byte gEnemyMonIndex +_080B2A78: .4byte gBankTarget thumb_func_end sub_80B29B4 thumb_func_start sub_80B2A7C diff --git a/asm/contest_link_80C2020.s b/asm/contest_link_80C2020.s index 672eb4c1a..93dd26eee 100644 --- a/asm/contest_link_80C2020.s +++ b/asm/contest_link_80C2020.s @@ -281,17 +281,17 @@ sub_80C226C: @ 80C226C ldrb r0, [r0] cmp r5, r0 bne _080C2294 - ldr r0, _080C228C @ =gUnknown_020238CC + ldr r0, _080C228C @ =gDisplayedStringBattle ldr r1, _080C2290 @ =gUnknown_083D17DC bl StringCopy adds r2, r0, 0 b _080C2296 .align 2, 0 _080C2288: .4byte gContestPlayerMonIndex -_080C228C: .4byte gUnknown_020238CC +_080C228C: .4byte gDisplayedStringBattle _080C2290: .4byte gUnknown_083D17DC _080C2294: - ldr r2, _080C22E8 @ =gUnknown_020238CC + ldr r2, _080C22E8 @ =gDisplayedStringBattle _080C2296: movs r4, 0xFC strb r4, [r2] @@ -331,7 +331,7 @@ _080C2296: bl StringCopy b _080C230A .align 2, 0 -_080C22E8: .4byte gUnknown_020238CC +_080C22E8: .4byte gDisplayedStringBattle _080C22EC: .4byte gContestMons + 0x2 _080C22F0: .4byte gUnknown_083D17E0 _080C22F4: .4byte gIsLinkContest @@ -345,7 +345,7 @@ _080C22FC: lsls r4, r5, 3 _080C230A: ldr r0, _080C2334 @ =gMenuWindow - ldr r1, _080C2338 @ =gUnknown_020238CC + ldr r1, _080C2338 @ =gDisplayedStringBattle adds r2, r4, r5 lsls r2, 18 ldr r3, _080C233C @ =0x03020000 @@ -365,7 +365,7 @@ _080C230A: bx r0 .align 2, 0 _080C2334: .4byte gMenuWindow -_080C2338: .4byte gUnknown_020238CC +_080C2338: .4byte gDisplayedStringBattle _080C233C: .4byte 0x03020000 thumb_func_end sub_80C226C @@ -1601,7 +1601,7 @@ _080C2D42: lsls r0, 16 lsrs r0, 16 movs r1, 0x2 - bl sub_8090D90 + bl GetNationalPokedexFlag adds r5, 0x40 subs r4, 0x1 cmp r4, 0 @@ -2198,7 +2198,7 @@ _080C31CE: bl GetStringWidthGivenWindowConfig lsls r0, 24 lsrs r5, r0, 24 - ldr r2, _080C32D4 @ =gUnknown_020238CC + ldr r2, _080C32D4 @ =gDisplayedStringBattle ldr r1, _080C32D8 @ =gUnknown_083D17E2 adds r0, r2, 0 bl StringCopy @@ -2237,7 +2237,7 @@ _080C3218: strb r0, [r2, 0x3] ldr r0, _080C32DC @ =0x02018068 mov r10, r0 - ldr r1, _080C32D4 @ =gUnknown_020238CC + ldr r1, _080C32D4 @ =gDisplayedStringBattle bl sub_80034D4 mov r0, sp ldrh r4, [r0] @@ -2301,7 +2301,7 @@ _080C32C4: .4byte gWindowConfig_81E7278 _080C32C8: .4byte 0x06010000 _080C32CC: .4byte 0x040000d4 _080C32D0: .4byte 0x85000100 -_080C32D4: .4byte gUnknown_020238CC +_080C32D4: .4byte gDisplayedStringBattle _080C32D8: .4byte gUnknown_083D17E2 _080C32DC: .4byte 0x02018068 _080C32E0: .4byte gUnknown_083D1624 diff --git a/asm/daycare.s b/asm/daycare.s index 2944f7565..a0ea9124a 100644 --- a/asm/daycare.s +++ b/asm/daycare.s @@ -2279,7 +2279,7 @@ _0804279C: ands r0, r1 cmp r0, 0 beq _080427E8 - bl sub_8072DEC + bl HandleDestroyMenuCursors movs r0, 0x5 bl PlaySE ldr r3, _080427DC @ =gLastFieldPokeMenuOpened @@ -2311,7 +2311,7 @@ _080427E8: ands r0, r1 cmp r0, 0 beq _08042816 - bl sub_8072DEC + bl HandleDestroyMenuCursors ldr r0, _0804281C @ =gLastFieldPokeMenuOpened ldr r1, _08042820 @ =gScriptResult strh r4, [r1] diff --git a/asm/decoration.s b/asm/decoration.s deleted file mode 100644 index 221c749c5..000000000 --- a/asm/decoration.s +++ /dev/null @@ -1,7033 +0,0 @@ - .include "constants/gba_constants.inc" - .include "constants/species_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_80FE1DC -sub_80FE1DC: @ 80FE1DC - push {lr} - sub sp, 0x8 - bl sub_80FE2B4 - movs r0, 0 - movs r1, 0 - movs r2, 0xA - movs r3, 0x9 - bl MenuDrawTextWindow - ldr r3, _080FE218 @ =gUnknown_083EC604 - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0x4 - bl PrintMenuItems - ldr r0, _080FE21C @ =gUnknown_020388D4 - ldrb r0, [r0] - str r0, [sp] - movs r0, 0x9 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0x4 - bl InitMenu - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_080FE218: .4byte gUnknown_083EC604 -_080FE21C: .4byte gUnknown_020388D4 - thumb_func_end sub_80FE1DC - - thumb_func_start sub_80FE220 -sub_80FE220: @ 80FE220 - push {lr} - ldr r1, _080FE238 @ =gUnknown_020388D4 - movs r0, 0 - strb r0, [r1] - bl ScriptContext2_Enable - bl sub_80FE1DC - bl sub_80FE394 - pop {r0} - bx r0 - .align 2, 0 -_080FE238: .4byte gUnknown_020388D4 - thumb_func_end sub_80FE220 - - thumb_func_start DecorationPC -DecorationPC: @ 80FE23C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_80FE220 - ldr r1, _080FE25C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080FE260 @ =Task_DecorationPCProcessMenuInput - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FE25C: .4byte gTasks -_080FE260: .4byte Task_DecorationPCProcessMenuInput - thumb_func_end DecorationPC - - thumb_func_start Task_SecretBasePC_Decoration -Task_SecretBasePC_Decoration: @ 80FE264 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl DecorationPC - ldr r1, _080FE284 @ =0x0201f000 - ldr r0, _080FE288 @ =gSaveBlock1 + 0x1A1A - str r0, [r1] - adds r0, 0x10 - str r0, [r1, 0x4] - movs r2, 0 - movs r0, 0x10 - strb r0, [r1, 0x8] - strb r2, [r1, 0x9] - pop {r0} - bx r0 - .align 2, 0 -_080FE284: .4byte 0x0201f000 -_080FE288: .4byte gSaveBlock1 + 0x1A1A - thumb_func_end Task_SecretBasePC_Decoration - - thumb_func_start DoPlayerPCDecoration -DoPlayerPCDecoration: @ 80FE28C - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl DecorationPC - ldr r1, _080FE2AC @ =0x0201f000 - ldr r0, _080FE2B0 @ =gSaveBlock1 + 0x2688 - str r0, [r1] - adds r0, 0xC - str r0, [r1, 0x4] - movs r0, 0xC - strb r0, [r1, 0x8] - movs r0, 0x1 - strb r0, [r1, 0x9] - pop {r0} - bx r0 - .align 2, 0 -_080FE2AC: .4byte 0x0201f000 -_080FE2B0: .4byte gSaveBlock1 + 0x2688 - thumb_func_end DoPlayerPCDecoration - - thumb_func_start sub_80FE2B4 -sub_80FE2B4: @ 80FE2B4 - push {lr} - sub sp, 0x8 - ldr r1, _080FE2E8 @ =gUnknown_083EC654 - mov r0, sp - movs r2, 0x6 - bl memcpy - add r0, sp, 0x4 - movs r1, 0xDF - movs r2, 0x2 - bl LoadPalette - mov r0, sp - adds r0, 0x2 - movs r1, 0xD1 - movs r2, 0x2 - bl LoadPalette - mov r0, sp - movs r1, 0xD8 - movs r2, 0x2 - bl LoadPalette - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_080FE2E8: .4byte gUnknown_083EC654 - thumb_func_end sub_80FE2B4 - - thumb_func_start Task_DecorationPCProcessMenuInput -Task_DecorationPCProcessMenuInput: @ 80FE2EC - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - adds r7, r6, 0 - ldr r0, _080FE368 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r5, 0x80 - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - bne _080FE38C - ldr r4, _080FE36C @ =gMain - ldrh r1, [r4, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080FE324 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - bl MoveMenuCursor - ldr r1, _080FE370 @ =gUnknown_020388D4 - strb r0, [r1] - bl sub_80FE394 -_080FE324: - ldrh r1, [r4, 0x2E] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _080FE342 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl MoveMenuCursor - ldr r1, _080FE370 @ =gUnknown_020388D4 - strb r0, [r1] - bl sub_80FE394 -_080FE342: - ldrh r1, [r4, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080FE378 - movs r0, 0x5 - bl PlaySE - ldr r1, _080FE374 @ =gUnknown_083EC604 - ldr r0, _080FE370 @ =gUnknown_020388D4 - ldrb r0, [r0] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r1, [r0] - adds r0, r6, 0 - bl _call_via_r1 - b _080FE38C - .align 2, 0 -_080FE368: .4byte gPaletteFade -_080FE36C: .4byte gMain -_080FE370: .4byte gUnknown_020388D4 -_080FE374: .4byte gUnknown_083EC604 -_080FE378: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080FE38C - movs r0, 0x5 - bl PlaySE - adds r0, r7, 0 - bl gpu_pal_decompress_alloc_tag_and_upload -_080FE38C: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end Task_DecorationPCProcessMenuInput - - thumb_func_start sub_80FE394 -sub_80FE394: @ 80FE394 - push {lr} - movs r0, 0x2 - movs r1, 0xF - movs r2, 0x1B - movs r3, 0x12 - bl MenuFillWindowRectWithBlankTile - ldr r1, _080FE3BC @ =gUnknown_083EC624 - ldr r0, _080FE3C0 @ =gUnknown_020388D4 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x2 - movs r2, 0xF - bl MenuPrint - pop {r0} - bx r0 - .align 2, 0 -_080FE3BC: .4byte gUnknown_083EC624 -_080FE3C0: .4byte gUnknown_020388D4 - thumb_func_end sub_80FE394 - - thumb_func_start gpu_pal_decompress_alloc_tag_and_upload -gpu_pal_decompress_alloc_tag_and_upload: @ 80FE3C4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8072DEC - movs r0, 0 - movs r1, 0 - movs r2, 0xA - movs r3, 0x9 - bl MenuZeroFillWindowRect - movs r0, 0x2 - movs r1, 0xF - movs r2, 0x1B - movs r3, 0x12 - bl MenuFillWindowRectWithBlankTile - movs r0, 0x6 - bl FreeSpritePaletteByTag - ldr r0, _080FE404 @ =0x0201f000 - ldrb r0, [r0, 0x9] - cmp r0, 0 - bne _080FE40C - ldr r0, _080FE408 @ =gUnknown_0815F399 - bl ScriptContext1_SetupScript - adds r0, r4, 0 - bl DestroyTask - b _080FE412 - .align 2, 0 -_080FE404: .4byte 0x0201f000 -_080FE408: .4byte gUnknown_0815F399 -_080FE40C: - adds r0, r4, 0 - bl ReshowPlayerPC -_080FE412: - pop {r4} - pop {r0} - bx r0 - thumb_func_end gpu_pal_decompress_alloc_tag_and_upload - - thumb_func_start sub_80FE418 -sub_80FE418: @ 80FE418 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_80FE5AC - pop {r0} - bx r0 - thumb_func_end sub_80FE418 - - thumb_func_start sub_80FE428 -sub_80FE428: @ 80FE428 - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080FE464 @ =gUnknown_020388D4 - ldrb r0, [r0] - str r0, [sp] - movs r0, 0x9 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0x4 - bl InitMenu - bl sub_80FE394 - ldr r1, _080FE468 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080FE46C @ =Task_DecorationPCProcessMenuInput - str r1, [r0] - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FE464: .4byte gUnknown_020388D4 -_080FE468: .4byte gTasks -_080FE46C: .4byte Task_DecorationPCProcessMenuInput - thumb_func_end sub_80FE428 - - thumb_func_start sub_80FE470 -sub_80FE470: @ 80FE470 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r4, r0, 0 - mov r8, r1 - mov r9, r2 - adds r5, r3, 0 - lsls r4, 24 - lsrs r4, 24 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - mov r0, r9 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r5, 24 - lsrs r5, 24 - bl sub_8072CBC - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - ldr r7, _080FE51C @ =gStringVar4 - movs r0, 0xFC - strb r0, [r7] - movs r0, 0x5 - mov r10, r0 - strb r0, [r7, 0x1] - strb r5, [r7, 0x2] - adds r7, 0x3 - ldr r1, _080FE520 @ =gUnknown_083EC5E4 - lsls r0, r4, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r7, 0 - bl StringCopy - adds r7, r0, 0 - adds r0, r4, 0 - bl sub_8134194 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r7, 0 - movs r2, 0x56 - movs r3, 0x1 - bl sub_8072C14 - adds r7, r0, 0 - movs r0, 0xBA - strb r0, [r7] - adds r7, 0x1 - ldr r0, _080FE524 @ =gDecorationInventories - lsls r4, 3 - adds r4, r0 - ldrb r1, [r4, 0x4] - adds r0, r7, 0 - movs r2, 0x68 - movs r3, 0x1 - bl sub_8072C14 - adds r7, r0, 0 - movs r0, 0xFC - strb r0, [r7] - mov r0, r10 - strb r0, [r7, 0x1] - strb r6, [r7, 0x2] - movs r0, 0xFF - strb r0, [r7, 0x3] - ldr r0, _080FE51C @ =gStringVar4 - mov r1, r8 - mov r2, r9 - bl MenuPrint - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FE51C: .4byte gStringVar4 -_080FE520: .4byte gUnknown_083EC5E4 -_080FE524: .4byte gDecorationInventories - thumb_func_end sub_80FE470 - - thumb_func_start sub_80FE528 -sub_80FE528: @ 80FE528 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0 - movs r2, 0xE - movs r3, 0x13 - bl MenuDrawTextWindow - movs r5, 0 - ldr r1, _080FE574 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r4, r0, r1 -_080FE548: - ldr r0, _080FE578 @ =0x0201f000 - ldrb r0, [r0, 0x9] - cmp r0, 0x1 - bne _080FE57C - movs r1, 0x1E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080FE57C - cmp r5, 0x6 - beq _080FE57C - cmp r5, 0x7 - beq _080FE57C - lsls r2, r5, 1 - adds r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - adds r0, r5, 0 - movs r1, 0x1 - movs r3, 0xD - bl sub_80FE470 - b _080FE58E - .align 2, 0 -_080FE574: .4byte gTasks -_080FE578: .4byte 0x0201f000 -_080FE57C: - lsls r2, r5, 1 - adds r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - adds r0, r5, 0 - movs r1, 0x1 - movs r3, 0xFF - bl sub_80FE470 -_080FE58E: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x7 - bls _080FE548 - ldr r0, _080FE5A8 @ =gUnknownText_Exit - movs r1, 0x1 - movs r2, 0x11 - bl MenuPrint - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080FE5A8: .4byte gUnknownText_Exit - thumb_func_end sub_80FE528 - - thumb_func_start sub_80FE5AC -sub_80FE5AC: @ 80FE5AC - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8072DEC - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - adds r0, r4, 0 - bl sub_80FE528 - ldr r0, _080FE5F8 @ =gUnknown_020388F6 - ldrb r0, [r0] - str r0, [sp] - movs r0, 0xD - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0x9 - bl InitMenu - ldr r1, _080FE5FC @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080FE600 @ =sub_80FE604 - str r1, [r0] - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FE5F8: .4byte gUnknown_020388F6 -_080FE5FC: .4byte gTasks -_080FE600: .4byte sub_80FE604 - thumb_func_end sub_80FE5AC - - thumb_func_start sub_80FE604 -sub_80FE604: @ 80FE604 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r4, r5, 0 - ldr r0, _080FE638 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r3, 0x80 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _080FE61C - b _080FE720 -_080FE61C: - ldr r2, _080FE63C @ =gMain - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080FE640 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - bl MoveMenuCursor - b _080FE720 - .align 2, 0 -_080FE638: .4byte gPaletteFade -_080FE63C: .4byte gMain -_080FE640: - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _080FE656 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl MoveMenuCursor - b _080FE720 -_080FE656: - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080FE70C - movs r0, 0x5 - bl PlaySE - bl GetMenuCursorPos - ldr r4, _080FE6C0 @ =gUnknown_020388F6 - strb r0, [r4] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x8 - beq _080FE704 - ldrb r0, [r4] - bl sub_8134194 - ldr r1, _080FE6C4 @ =gUnknown_020388D5 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - beq _080FE6DC - ldrb r0, [r4] - bl sub_8134104 - ldr r2, _080FE6C8 @ =gUnknown_020388D0 - ldr r1, _080FE6CC @ =gDecorationInventories - ldrb r0, [r4] - lsls r0, 3 - adds r0, r1 - ldr r0, [r0] - str r0, [r2] - adds r0, r5, 0 - bl sub_80FEF50 - bl sub_80F944C - ldr r0, _080FE6D0 @ =gUnknown_020388F7 - movs r1, 0x8 - bl sub_80F9480 - bl LoadScrollIndicatorPalette - ldr r1, _080FE6D4 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _080FE6D8 @ =sub_80FE868 - str r1, [r0] - b _080FE720 - .align 2, 0 -_080FE6C0: .4byte gUnknown_020388F6 -_080FE6C4: .4byte gUnknown_020388D5 -_080FE6C8: .4byte gUnknown_020388D0 -_080FE6CC: .4byte gDecorationInventories -_080FE6D0: .4byte gUnknown_020388F7 -_080FE6D4: .4byte gTasks -_080FE6D8: .4byte sub_80FE868 -_080FE6DC: - bl sub_8072DEC - movs r0, 0 - movs r1, 0 - movs r2, 0xE - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r1, _080FE6FC @ =gSecretBaseText_NoDecors - ldr r2, _080FE700 @ =sub_80FE418 - adds r0, r5, 0 - movs r3, 0 - bl DisplayItemMessageOnField - b _080FE720 - .align 2, 0 -_080FE6FC: .4byte gSecretBaseText_NoDecors -_080FE700: .4byte sub_80FE418 -_080FE704: - adds r0, r5, 0 - bl sub_80FE728 - b _080FE720 -_080FE70C: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080FE720 - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_80FE728 -_080FE720: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80FE604 - - thumb_func_start sub_80FE728 -sub_80FE728: @ 80FE728 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080FE748 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - movs r1, 0x1E - ldrsh r0, [r0, r1] - cmp r0, 0x3 - beq _080FE74C - adds r0, r2, 0 - bl sub_80FE758 - b _080FE752 - .align 2, 0 -_080FE748: .4byte gTasks -_080FE74C: - adds r0, r2, 0 - bl sub_8109DAC -_080FE752: - pop {r0} - bx r0 - thumb_func_end sub_80FE728 - - thumb_func_start sub_80FE758 -sub_80FE758: @ 80FE758 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8072DEC - movs r0, 0 - movs r1, 0 - movs r2, 0xE - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r1, _080FE794 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0x1E - ldrsh r0, [r5, r1] - cmp r0, 0x2 - beq _080FE79C - bl sub_80FE1DC - bl MenuDisplayMessageBox - bl sub_80FE394 - ldr r0, _080FE798 @ =Task_DecorationPCProcessMenuInput - str r0, [r5] - b _080FE7A2 - .align 2, 0 -_080FE794: .4byte gTasks -_080FE798: .4byte Task_DecorationPCProcessMenuInput -_080FE79C: - adds r0, r4, 0 - bl sub_80B3068 -_080FE7A2: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80FE758 - - thumb_func_start sub_80FE7A8 -sub_80FE7A8: @ 80FE7A8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080FE7CC @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r3, 0 - movs r2, 0x3 - strh r2, [r1, 0x1E] - ldr r1, _080FE7D0 @ =gUnknown_020388F6 - strb r3, [r1] - bl sub_80FE5AC - pop {r0} - bx r0 - .align 2, 0 -_080FE7CC: .4byte gTasks -_080FE7D0: .4byte gUnknown_020388F6 - thumb_func_end sub_80FE7A8 - - thumb_func_start sub_80FE7D4 -sub_80FE7D4: @ 80FE7D4 - push {lr} - lsls r1, 24 - ldr r2, _080FE7E8 @ =gUnknown_083EC5E4 - lsrs r1, 22 - adds r1, r2 - ldr r1, [r1] - bl StringCopy - pop {r0} - bx r0 - .align 2, 0 -_080FE7E8: .4byte gUnknown_083EC5E4 - thumb_func_end sub_80FE7D4 - - .section .text_80FE868 - - thumb_func_start sub_80FE868 -sub_80FE868: @ 80FE868 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_80FE7EC - ldr r1, _080FE88C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080FE890 @ =sub_80FE948 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FE88C: .4byte gTasks -_080FE890: .4byte sub_80FE948 - thumb_func_end sub_80FE868 - - thumb_func_start sub_80FE894 -sub_80FE894: @ 80FE894 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 24 - lsrs r7, r2, 24 - movs r0, 0 - mov r10, r0 - ldr r6, _080FE920 @ =gUnknown_020388F2 - ldrb r1, [r6] - ldr r4, _080FE924 @ =gUnknown_020388F4 - ldrb r0, [r4] - adds r1, r0 - ldr r2, _080FE928 @ =gUnknown_020388D5 - mov r9, r2 - ldrb r0, [r2] - cmp r1, r0 - bne _080FE8C8 - movs r1, 0x1 - mov r10, r1 -_080FE8C8: - movs r0, 0x5 - bl PlaySE - lsls r0, r5, 24 - asrs r0, 24 - cmp r0, 0 - beq _080FE8DC - bl MoveMenuCursor - strb r0, [r6] -_080FE8DC: - cmp r7, 0 - beq _080FE8EE - ldrb r0, [r4] - adds r0, r7 - strb r0, [r4] - mov r0, r8 - movs r1, 0x1 - bl sub_80FEABC -_080FE8EE: - ldrb r0, [r6] - ldrb r1, [r4] - adds r0, r1 - mov r2, r9 - ldrb r2, [r2] - cmp r0, r2 - beq _080FE92C - mov r0, r10 - cmp r0, 0 - beq _080FE90E - movs r0, 0xF - movs r1, 0xC - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow -_080FE90E: - ldrb r0, [r4] - ldrb r6, [r6] - adds r0, r6 - lsls r0, 24 - lsrs r0, 24 - bl sub_80FECE0 - b _080FE938 - .align 2, 0 -_080FE920: .4byte gUnknown_020388F2 -_080FE924: .4byte gUnknown_020388F4 -_080FE928: .4byte gUnknown_020388D5 -_080FE92C: - movs r0, 0xF - movs r1, 0xC - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect -_080FE938: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80FE894 - - thumb_func_start sub_80FE948 -sub_80FE948: @ 80FE948 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080FE980 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080FE95C - b _080FEAAC -_080FE95C: - ldr r0, _080FE984 @ =gMain - ldrh r1, [r0, 0x30] - movs r0, 0xF0 - ands r0, r1 - cmp r0, 0x40 - bne _080FE9A0 - ldr r0, _080FE988 @ =gUnknown_020388F2 - ldrb r0, [r0] - cmp r0, 0 - beq _080FE98C - movs r1, 0x1 - negs r1, r1 - adds r0, r4, 0 - movs r2, 0 - bl sub_80FE894 - b _080FE9A0 - .align 2, 0 -_080FE980: .4byte gPaletteFade -_080FE984: .4byte gMain -_080FE988: .4byte gUnknown_020388F2 -_080FE98C: - ldr r0, _080FE9C4 @ =gUnknown_020388F4 - ldrb r0, [r0] - cmp r0, 0 - beq _080FE9A0 - movs r2, 0x1 - negs r2, r2 - adds r0, r4, 0 - movs r1, 0 - bl sub_80FE894 -_080FE9A0: - ldr r0, _080FE9C8 @ =gMain - ldrh r1, [r0, 0x30] - movs r0, 0xF0 - ands r0, r1 - cmp r0, 0x80 - bne _080FE9EE - ldr r2, _080FE9CC @ =gUnknown_020388F2 - ldr r1, _080FE9D0 @ =gUnknown_020388F3 - ldrb r0, [r2] - ldrb r1, [r1] - cmp r0, r1 - beq _080FE9D4 - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0 - bl sub_80FE894 - b _080FE9EE - .align 2, 0 -_080FE9C4: .4byte gUnknown_020388F4 -_080FE9C8: .4byte gMain -_080FE9CC: .4byte gUnknown_020388F2 -_080FE9D0: .4byte gUnknown_020388F3 -_080FE9D4: - ldr r0, _080FEA38 @ =gUnknown_020388F4 - ldrb r0, [r0] - ldrb r1, [r2] - adds r0, r1 - ldr r1, _080FEA3C @ =gUnknown_020388D5 - ldrb r1, [r1] - cmp r0, r1 - beq _080FE9EE - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x1 - bl sub_80FE894 -_080FE9EE: - ldr r0, _080FEA40 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080FEA7C - bl sub_8072DEC - movs r0, 0x5 - bl PlaySE - ldr r2, _080FEA44 @ =gUnknown_020388F5 - ldr r1, _080FEA48 @ =gUnknown_020388F2 - ldr r0, _080FEA38 @ =gUnknown_020388F4 - ldrb r0, [r0] - ldrb r1, [r1] - adds r0, r1 - strb r0, [r2] - ldr r1, _080FEA3C @ =gUnknown_020388D5 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bne _080FEA54 - ldr r1, _080FEA4C @ =gUnknown_083EC634 - ldr r2, _080FEA50 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r2 - movs r2, 0x1E - ldrsh r0, [r0, r2] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - b _080FEA68 - .align 2, 0 -_080FEA38: .4byte gUnknown_020388F4 -_080FEA3C: .4byte gUnknown_020388D5 -_080FEA40: .4byte gMain -_080FEA44: .4byte gUnknown_020388F5 -_080FEA48: .4byte gUnknown_020388F2 -_080FEA4C: .4byte gUnknown_083EC634 -_080FEA50: .4byte gTasks -_080FEA54: - ldr r2, _080FEA74 @ =gUnknown_083EC634 - ldr r1, _080FEA78 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0x1E - ldrsh r0, [r0, r1] - lsls r0, 3 - adds r0, r2 -_080FEA68: - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - b _080FEAAC - .align 2, 0 -_080FEA74: .4byte gUnknown_083EC634 -_080FEA78: .4byte gTasks -_080FEA7C: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080FEAAC - bl sub_8072DEC - movs r0, 0x5 - bl PlaySE - ldr r1, _080FEAB4 @ =gUnknown_083EC634 - ldr r2, _080FEAB8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r2 - movs r2, 0x1E - ldrsh r0, [r0, r2] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 -_080FEAAC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FEAB4: .4byte gUnknown_083EC634 -_080FEAB8: .4byte gTasks - thumb_func_end sub_80FE948 - - thumb_func_start sub_80FEABC -sub_80FEABC: @ 80FEABC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r4, _080FEB58 @ =gUnknown_020388F4 - ldrb r0, [r4] - cmp r0, 0 - bne _080FEADE - movs r0, 0 - bl DestroyVerticalScrollIndicator - ldrb r0, [r4] - cmp r0, 0 - beq _080FEAE8 -_080FEADE: - movs r0, 0 - movs r1, 0x3C - movs r2, 0x8 - bl CreateVerticalScrollIndicators -_080FEAE8: - ldr r5, _080FEB58 @ =gUnknown_020388F4 - ldrb r0, [r5] - adds r0, 0x7 - ldr r4, _080FEB5C @ =gUnknown_020388D5 - ldrb r1, [r4] - cmp r0, r1 - bne _080FEAFC - movs r0, 0x1 - bl DestroyVerticalScrollIndicator -_080FEAFC: - ldrb r0, [r5] - adds r0, 0x7 - ldrb r4, [r4] - cmp r0, r4 - bge _080FEB10 - movs r0, 0x1 - movs r1, 0x3C - movs r2, 0x98 - bl CreateVerticalScrollIndicators -_080FEB10: - ldrb r4, [r5] - adds r0, r4, 0 - adds r0, 0x8 - cmp r4, r0 - blt _080FEB1C - b _080FEC7E -_080FEB1C: - adds r7, r5, 0 -_080FEB1E: - ldrb r1, [r7] - subs r1, r4, r1 - lsls r0, r1, 25 - movs r2, 0x80 - lsls r2, 18 - adds r0, r2 - lsrs r6, r0, 24 - ldr r0, _080FEB60 @ =gUnknown_020388F7 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _080FEB3C - adds r0, r1, 0 - bl sub_80F94F8 -_080FEB3C: - ldr r0, _080FEB5C @ =gUnknown_020388D5 - ldrb r0, [r0] - cmp r4, r0 - bne _080FEB68 - lsls r2, r6, 3 - movs r0, 0x1 - str r0, [sp] - ldr r0, _080FEB64 @ =gUnknownText_Exit - movs r1, 0x8 - movs r3, 0x68 - bl sub_8072A18 - b _080FEC7E - .align 2, 0 -_080FEB58: .4byte gUnknown_020388F4 -_080FEB5C: .4byte gUnknown_020388D5 -_080FEB60: .4byte gUnknown_020388F7 -_080FEB64: .4byte gUnknownText_Exit -_080FEB68: - ldr r0, _080FEBC0 @ =gUnknown_020388D0 - ldr r1, [r0] - adds r2, r1, r4 - ldrb r1, [r2] - mov r12, r0 - adds r5, r4, 0x1 - cmp r1, 0 - bne _080FEB7A - b _080FEC70 -_080FEB7A: - ldr r0, _080FEBC4 @ =0x0201f000 - ldrb r5, [r0, 0x9] - cmp r5, 0x1 - bne _080FEBDC - ldr r0, _080FEBC8 @ =gUnknown_020388F6 - ldrb r0, [r0] - cmp r0, 0x6 - beq _080FEBDC - cmp r0, 0x7 - beq _080FEBDC - ldr r0, _080FEBCC @ =gTasks - mov r3, r8 - lsls r1, r3, 2 - add r1, r8 - lsls r1, 3 - adds r1, r0 - movs r3, 0x1E - ldrsh r0, [r1, r3] - cmp r0, 0 - bne _080FEBDC - ldrb r1, [r2] - lsls r1, 5 - ldr r0, _080FEBD0 @ =gDecorations + 0x1 - adds r1, r0 - ldr r0, _080FEBD4 @ =gStringVar1 - bl StringCopy - lsls r2, r6, 3 - str r5, [sp] - ldr r0, _080FEBD8 @ =gUnknown_083EC65A - movs r1, 0x8 - movs r3, 0x68 - bl sub_8072A18 - b _080FEBF8 - .align 2, 0 -_080FEBC0: .4byte gUnknown_020388D0 -_080FEBC4: .4byte 0x0201f000 -_080FEBC8: .4byte gUnknown_020388F6 -_080FEBCC: .4byte gTasks -_080FEBD0: .4byte gDecorations + 0x1 -_080FEBD4: .4byte gStringVar1 -_080FEBD8: .4byte gUnknown_083EC65A -_080FEBDC: - mov r1, r12 - ldr r0, [r1] - adds r0, r4 - ldrb r0, [r0] - lsls r0, 5 - ldr r1, _080FEC00 @ =gDecorations + 0x1 - adds r0, r1 - lsls r2, r6, 3 - movs r1, 0x1 - str r1, [sp] - movs r1, 0x8 - movs r3, 0x68 - bl sub_8072A18 -_080FEBF8: - movs r1, 0 - adds r5, r4, 0x1 - b _080FEC0A - .align 2, 0 -_080FEC00: .4byte gDecorations + 0x1 -_080FEC04: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 -_080FEC0A: - cmp r1, 0xF - bhi _080FEC34 - ldr r0, _080FEC38 @ =gUnknown_020388D6 - adds r0, r1, r0 - ldrb r0, [r0] - subs r0, 0x1 - cmp r0, r4 - bne _080FEC04 - ldrb r3, [r7] - subs r3, r4, r3 - ldr r1, _080FEC3C @ =gUnknown_020388F7 - adds r1, r3, r1 - lsls r3, 20 - movs r2, 0xC0 - lsls r2, 13 - adds r3, r2 - asrs r3, 16 - movs r0, 0x4 - movs r2, 0x6C - bl sub_80F94A4 -_080FEC34: - movs r1, 0 - b _080FEC46 - .align 2, 0 -_080FEC38: .4byte gUnknown_020388D6 -_080FEC3C: .4byte gUnknown_020388F7 -_080FEC40: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 -_080FEC46: - cmp r1, 0xB - bhi _080FEC70 - ldr r0, _080FEC8C @ =gUnknown_020388E6 - adds r0, r1, r0 - ldrb r0, [r0] - subs r0, 0x1 - cmp r0, r4 - bne _080FEC40 - ldrb r3, [r7] - subs r3, r4, r3 - ldr r1, _080FEC90 @ =gUnknown_020388F7 - adds r1, r3, r1 - lsls r3, 20 - movs r0, 0xC0 - lsls r0, 13 - adds r3, r0 - asrs r3, 16 - movs r0, 0x5 - movs r2, 0x6C - bl sub_80F94A4 -_080FEC70: - lsls r0, r5, 16 - lsrs r4, r0, 16 - ldrb r0, [r7] - adds r0, 0x8 - cmp r4, r0 - bge _080FEC7E - b _080FEB1E -_080FEC7E: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FEC8C: .4byte gUnknown_020388E6 -_080FEC90: .4byte gUnknown_020388F7 - thumb_func_end sub_80FEABC - - thumb_func_start sub_80FEC94 -sub_80FEC94: @ 80FEC94 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0 - movs r2, 0xE - movs r3, 0x13 - bl MenuDrawTextWindow - adds r0, r4, 0 - movs r1, 0 - bl sub_80FEABC - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80FEC94 - - thumb_func_start sub_80FECB8 -sub_80FECB8: @ 80FECB8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0xF - movs r1, 0 - movs r2, 0x1D - movs r3, 0x3 - bl MenuDrawTextWindow - adds r0, r4, 0 - movs r1, 0x10 - movs r2, 0x1 - movs r3, 0xFF - bl sub_80FE470 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80FECB8 - - thumb_func_start sub_80FECE0 -sub_80FECE0: @ 80FECE0 - push {lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080FED14 @ =gDecorations - ldr r1, _080FED18 @ =gUnknown_020388D0 - ldr r1, [r1] - adds r1, r0 - ldrb r0, [r1] - lsls r0, 5 - adds r2, 0x18 - adds r0, r2 - ldr r0, [r0] - movs r1, 0x30 - str r1, [sp] - movs r1, 0x1 - str r1, [sp, 0x4] - movs r1, 0x80 - movs r2, 0x68 - movs r3, 0x68 - bl sub_8072AB0 - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_080FED14: .4byte gDecorations -_080FED18: .4byte gUnknown_020388D0 - thumb_func_end sub_80FECE0 - - thumb_func_start sub_80FED1C -sub_80FED1C: @ 80FED1C - push {lr} - movs r0, 0xF - movs r1, 0 - movs r2, 0x1D - movs r3, 0x3 - bl MenuZeroFillWindowRect - movs r0, 0xF - movs r1, 0xC - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - pop {r0} - bx r0 - thumb_func_end sub_80FED1C - - thumb_func_start sub_80FED3C -sub_80FED3C: @ 80FED3C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl LoadScrollIndicatorPalette - ldr r1, _080FED5C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080FED60 @ =sub_80FE868 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FED5C: .4byte gTasks -_080FED60: .4byte sub_80FE868 - thumb_func_end sub_80FED3C - - thumb_func_start sub_80FED64 -sub_80FED64: @ 80FED64 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - movs r1, 0 - ldr r3, _080FED7C @ =gUnknown_020388D6 -_080FED6E: - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _080FED80 - movs r0, 0x1 - b _080FED8C - .align 2, 0 -_080FED7C: .4byte gUnknown_020388D6 -_080FED80: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xF - bls _080FED6E - movs r0, 0 -_080FED8C: - pop {r1} - bx r1 - thumb_func_end sub_80FED64 - - thumb_func_start sub_80FED90 -sub_80FED90: @ 80FED90 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r6, 0 - movs r3, 0 - ldr r4, _080FEE30 @ =gUnknown_020388D6 - movs r1, 0 - ldr r2, _080FEE34 @ =gUnknown_020388E6 -_080FEDA4: - adds r0, r3, r4 - strb r1, [r0] - cmp r3, 0xB - bhi _080FEDB0 - adds r0, r3, r2 - strb r1, [r0] -_080FEDB0: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0xF - bls _080FEDA4 - movs r3, 0 - ldr r0, _080FEE38 @ =gSaveBlock1 + 0x1A1A - mov r10, r0 - ldr r1, _080FEE3C @ =gDecorationInventories - mov r9, r1 - ldr r2, _080FEE40 @ =gUnknown_020388F6 - mov r8, r2 -_080FEDC8: - mov r1, r10 - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080FEE5A - movs r1, 0 - mov r2, r8 - ldrb r0, [r2] - lsls r0, 3 - add r0, r9 - ldrb r0, [r0, 0x4] - cmp r1, r0 - bcs _080FEE5A - ldr r0, _080FEE38 @ =gSaveBlock1 + 0x1A1A - adds r0, r3 - mov r12, r0 - ldr r7, _080FEE30 @ =gUnknown_020388D6 -_080FEDEA: - ldr r0, _080FEE44 @ =gUnknown_020388D0 - ldr r0, [r0] - adds r0, r1 - ldrb r0, [r0] - adds r4, r1, 0x1 - mov r1, r12 - ldrb r1, [r1] - cmp r0, r1 - bne _080FEE48 - movs r1, 0 - cmp r1, r6 - bcs _080FEE1E - ldrb r0, [r7] - cmp r0, r4 - beq _080FEE1E - ldr r5, _080FEE30 @ =gUnknown_020388D6 - adds r2, r4, 0 -_080FEE0C: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r6 - bcs _080FEE1E - adds r0, r1, r5 - ldrb r0, [r0] - cmp r0, r2 - bne _080FEE0C -_080FEE1E: - cmp r1, r6 - bne _080FEE48 - adds r0, r6, r7 - strb r4, [r0] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - b _080FEE5A - .align 2, 0 -_080FEE30: .4byte gUnknown_020388D6 -_080FEE34: .4byte gUnknown_020388E6 -_080FEE38: .4byte gSaveBlock1 + 0x1A1A -_080FEE3C: .4byte gDecorationInventories -_080FEE40: .4byte gUnknown_020388F6 -_080FEE44: .4byte gUnknown_020388D0 -_080FEE48: - lsls r0, r4, 16 - lsrs r1, r0, 16 - mov r2, r8 - ldrb r0, [r2] - lsls r0, 3 - add r0, r9 - ldrb r0, [r0, 0x4] - cmp r1, r0 - bcc _080FEDEA -_080FEE5A: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0xF - bls _080FEDC8 - movs r6, 0 - movs r3, 0 - ldr r0, _080FEEE4 @ =gDecorationInventories - mov r8, r0 -_080FEE6C: - ldr r0, _080FEEE8 @ =gSaveBlock1 - ldr r1, _080FEEEC @ =0x00002688 - adds r0, r1 - adds r2, r3, r0 - ldrb r0, [r2] - adds r7, r3, 0x1 - cmp r0, 0 - beq _080FEF0E - movs r1, 0 - ldr r0, _080FEEF0 @ =gUnknown_020388F6 - ldrb r0, [r0] - lsls r0, 3 - add r0, r8 - ldrb r0, [r0, 0x4] - cmp r1, r0 - bcs _080FEF0E - adds r5, r2, 0 -_080FEE8E: - ldr r0, _080FEEF4 @ =gUnknown_020388D0 - ldr r0, [r0] - adds r0, r1 - ldrb r0, [r0] - adds r4, r1, 0x1 - ldrb r2, [r5] - cmp r0, r2 - bne _080FEEFC - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_80FED64 - lsls r0, 24 - cmp r0, 0 - bne _080FEEFC - movs r1, 0 - cmp r1, r6 - bcs _080FEED0 - ldr r2, _080FEEF8 @ =gUnknown_020388E6 - ldrb r0, [r2] - cmp r0, r4 - beq _080FEED0 - adds r3, r2, 0 - adds r2, r4, 0 -_080FEEBE: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r6 - bcs _080FEED0 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _080FEEBE -_080FEED0: - cmp r1, r6 - bne _080FEEFC - ldr r0, _080FEEF8 @ =gUnknown_020388E6 - adds r0, r6, r0 - strb r4, [r0] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - b _080FEF0E - .align 2, 0 -_080FEEE4: .4byte gDecorationInventories -_080FEEE8: .4byte gSaveBlock1 -_080FEEEC: .4byte 0x00002688 -_080FEEF0: .4byte gUnknown_020388F6 -_080FEEF4: .4byte gUnknown_020388D0 -_080FEEF8: .4byte gUnknown_020388E6 -_080FEEFC: - lsls r0, r4, 16 - lsrs r1, r0, 16 - ldr r0, _080FEF24 @ =gUnknown_020388F6 - ldrb r0, [r0] - lsls r0, 3 - add r0, r8 - ldrb r0, [r0, 0x4] - cmp r1, r0 - bcc _080FEE8E -_080FEF0E: - lsls r0, r7, 16 - lsrs r3, r0, 16 - cmp r3, 0xB - bls _080FEE6C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FEF24: .4byte gUnknown_020388F6 - thumb_func_end sub_80FED90 - - thumb_func_start sub_80FEF28 -sub_80FEF28: @ 80FEF28 - push {lr} - ldr r0, _080FEF38 @ =gUnknown_020388D5 - ldrb r1, [r0] - cmp r1, 0x7 - bhi _080FEF40 - ldr r0, _080FEF3C @ =gUnknown_020388F3 - strb r1, [r0] - b _080FEF46 - .align 2, 0 -_080FEF38: .4byte gUnknown_020388D5 -_080FEF3C: .4byte gUnknown_020388F3 -_080FEF40: - ldr r1, _080FEF4C @ =gUnknown_020388F3 - movs r0, 0x7 - strb r0, [r1] -_080FEF46: - pop {r0} - bx r0 - .align 2, 0 -_080FEF4C: .4byte gUnknown_020388F3 - thumb_func_end sub_80FEF28 - - thumb_func_start sub_80FEF50 -sub_80FEF50: @ 80FEF50 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_80FED90 - bl sub_80FEF28 - ldr r0, _080FEF6C @ =gUnknown_020388F2 - movs r1, 0 - strb r1, [r0] - ldr r0, _080FEF70 @ =gUnknown_020388F4 - strb r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_080FEF6C: .4byte gUnknown_020388F2 -_080FEF70: .4byte gUnknown_020388F4 - thumb_func_end sub_80FEF50 - - thumb_func_start sub_80FEF74 -sub_80FEF74: @ 80FEF74 - push {lr} - ldr r0, _080FEFA0 @ =gUnknown_020388F7 - movs r1, 0x8 - bl sub_80F9520 - movs r0, 0 - bl DestroyVerticalScrollIndicator - movs r0, 0x1 - bl DestroyVerticalScrollIndicator - bl sub_8072DEC - movs r0, 0 - movs r1, 0 - movs r2, 0xE - movs r3, 0x13 - bl MenuZeroFillWindowRect - pop {r0} - bx r0 - .align 2, 0 -_080FEFA0: .4byte gUnknown_020388F7 - thumb_func_end sub_80FEF74 - - thumb_func_start sub_80FEFA4 -sub_80FEFA4: @ 80FEFA4 - push {r4,lr} - movs r2, 0 - ldr r0, _080FEFD0 @ =gUnknown_020388F4 - ldrb r0, [r0] - ldr r1, _080FEFD4 @ =gUnknown_020388F2 - ldrb r1, [r1] - adds r0, r1 - adds r1, r0, 0x1 - ldr r4, _080FEFD8 @ =gUnknown_020388D6 - ldr r3, _080FEFDC @ =gUnknown_020388E6 -_080FEFB8: - adds r0, r2, r4 - ldrb r0, [r0] - cmp r0, r1 - beq _080FEFCC - cmp r2, 0xB - bhi _080FEFE0 - adds r0, r2, r3 - ldrb r0, [r0] - cmp r0, r1 - bne _080FEFE0 -_080FEFCC: - movs r0, 0 - b _080FEFEC - .align 2, 0 -_080FEFD0: .4byte gUnknown_020388F4 -_080FEFD4: .4byte gUnknown_020388F2 -_080FEFD8: .4byte gUnknown_020388D6 -_080FEFDC: .4byte gUnknown_020388E6 -_080FEFE0: - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0xF - bls _080FEFB8 - movs r0, 0x1 -_080FEFEC: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80FEFA4 - - thumb_func_start sub_80FEFF4 -sub_80FEFF4: @ 80FEFF4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080FF028 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080FF00E - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080FF020 -_080FF00E: - bl LoadScrollIndicatorPalette - ldr r0, _080FF02C @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080FF030 @ =sub_80FE868 - str r0, [r1] -_080FF020: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FF028: .4byte gMain -_080FF02C: .4byte gTasks -_080FF030: .4byte sub_80FE868 - thumb_func_end sub_80FEFF4 - - thumb_func_start sub_80FF034 -sub_80FF034: @ 80FF034 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8072DEC - movs r0, 0 - movs r1, 0 - movs r2, 0xE - movs r3, 0x13 - bl MenuZeroFillWindowRect - adds r0, r4, 0 - bl sub_80FE5AC - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80FF034 - - thumb_func_start sub_80FF058 -sub_80FF058: @ 80FF058 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080FF08C @ =gUnknown_020388F7 - movs r1, 0x8 - bl sub_80F9520 - movs r0, 0 - bl DestroyVerticalScrollIndicator - movs r0, 0x1 - bl DestroyVerticalScrollIndicator - bl BuyMenuFreeMemory - ldr r1, _080FF090 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080FF094 @ =sub_80FF034 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FF08C: .4byte gUnknown_020388F7 -_080FF090: .4byte gTasks -_080FF094: .4byte sub_80FF034 - thumb_func_end sub_80FF058 - - thumb_func_start sub_80FF098 -sub_80FF098: @ 80FF098 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080FF0D4 @ =gUnknown_020388D5 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - ldr r3, _080FF0D8 @ =gUnknown_020388F4 - ldrb r2, [r3] - adds r0, r2, 0x7 - ldrb r1, [r1] - cmp r0, r1 - ble _080FF0BA - cmp r2, 0 - beq _080FF0BA - subs r0, r2, 0x1 - strb r0, [r3] -_080FF0BA: - ldr r0, _080FF0DC @ =gUnknown_020388F6 - ldrb r0, [r0] - bl sub_8134104 - adds r0, r4, 0 - bl sub_80FED90 - bl sub_80FEF28 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FF0D4: .4byte gUnknown_020388D5 -_080FF0D8: .4byte gUnknown_020388F4 -_080FF0DC: .4byte gUnknown_020388F6 - thumb_func_end sub_80FF098 - - thumb_func_start sub_80FF0E0 -sub_80FF0E0: @ 80FF0E0 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r3, _080FF10C @ =gTasks - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - adds r4, r2, r3 - ldr r1, _080FF110 @ =gSaveBlock1 - ldrh r0, [r1] - strh r0, [r4, 0xE] - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x10] - adds r3, 0x8 - adds r2, r3 - adds r1, r2, 0x2 - adds r0, r2, 0 - bl PlayerGetDestCoords - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FF10C: .4byte gTasks -_080FF110: .4byte gSaveBlock1 - thumb_func_end sub_80FF0E0 - - thumb_func_start sub_80FF114 -sub_80FF114: @ 80FF114 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - bl DrawWholeMapView - ldr r1, _080FF158 @ =gSaveBlock1 - movs r0, 0x4 - ldrsb r0, [r1, r0] - ldrb r1, [r1, 0x5] - lsls r1, 24 - asrs r1, 24 - movs r2, 0x1 - negs r2, r2 - ldr r3, _080FF15C @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r3 - movs r3, 0xE - ldrsb r3, [r4, r3] - ldrb r4, [r4, 0x10] - lsls r4, 24 - asrs r4, 24 - str r4, [sp] - bl warp1_set - bl warp_in - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080FF158: .4byte gSaveBlock1 -_080FF15C: .4byte gTasks - thumb_func_end sub_80FF114 - - thumb_func_start sub_80FF160 -sub_80FF160: @ 80FF160 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_81341D4 - lsls r0, 24 - cmp r0, 0 - bne _080FF188 - ldr r1, _080FF180 @ =gSecretBaseText_NoDecors - ldr r2, _080FF184 @ =sub_80FE428 - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField - b _080FF1A2 - .align 2, 0 -_080FF180: .4byte gSecretBaseText_NoDecors -_080FF184: .4byte sub_80FE428 -_080FF188: - ldr r1, _080FF1A8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r2, 0 - movs r1, 0 - strh r1, [r0, 0x1E] - ldr r0, _080FF1AC @ =gUnknown_020388F6 - strb r2, [r0] - adds r0, r4, 0 - bl sub_80FE5AC -_080FF1A2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FF1A8: .4byte gTasks -_080FF1AC: .4byte gUnknown_020388F6 - thumb_func_end sub_80FF160 - - thumb_func_start sub_80FF1B0 -sub_80FF1B0: @ 80FF1B0 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _080FF1D0 @ =0x0000ffff - cmp r2, 0x22 - beq _080FF1D8 - cmp r2, 0x26 - bne _080FF1E2 - ldr r0, _080FF1D4 @ =gUnknown_083EC97C - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, 28 - lsrs r0, 16 - b _080FF1E2 - .align 2, 0 -_080FF1D0: .4byte 0x0000ffff -_080FF1D4: .4byte gUnknown_083EC97C -_080FF1D8: - ldr r0, _080FF1E8 @ =gUnknown_083EC984 - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, 28 - lsrs r0, 16 -_080FF1E2: - pop {r1} - bx r1 - .align 2, 0 -_080FF1E8: .4byte gUnknown_083EC984 - thumb_func_end sub_80FF1B0 - - thumb_func_start sub_80FF1EC -sub_80FF1EC: @ 80FF1EC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x34 - ldr r4, [sp, 0x54] - lsls r0, 16 - lsrs r0, 16 - str r0, [sp] - lsls r1, 16 - lsrs r1, 16 - str r1, [sp, 0x4] - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x8] - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0xC] - lsls r4, 16 - lsrs r4, 16 - str r4, [sp, 0x10] - movs r2, 0 - lsls r0, r3, 16 - cmp r2, r3 - bcc _080FF222 - b _080FF384 -_080FF222: - ldr r1, [sp, 0x8] - str r1, [sp, 0x28] - str r0, [sp, 0x2C] -_080FF228: - ldr r3, [sp, 0x4] - ldr r4, [sp, 0xC] - subs r1, r3, r4 - lsls r0, r2, 16 - asrs r0, 16 - adds r0, 0x1 - adds r1, r0 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp, 0x14] - movs r0, 0 - mov r10, r0 - adds r1, r2, 0x1 - str r1, [sp, 0x30] - ldr r3, [sp, 0x28] - cmp r10, r3 - bcc _080FF24C - b _080FF374 -_080FF24C: - ldr r4, [sp, 0x10] - lsls r4, 5 - str r4, [sp, 0x18] - ldr r0, _080FF2B4 @ =gDecorations + 0x1C - adds r0, r4, r0 - str r0, [sp, 0x1C] - ldr r0, _080FF2B8 @ =gDecorations - adds r0, r4, r0 - str r0, [sp, 0x24] - ldr r3, [sp, 0x8] - adds r1, r2, 0 - muls r1, r3 - str r1, [sp, 0x20] -_080FF266: - ldr r0, [sp] - add r0, r10 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r1, [sp, 0x20] - add r1, r10 - ldr r4, [sp, 0x1C] - ldr r0, [r4] - lsls r1, 1 - adds r1, r0 - movs r2, 0x80 - lsls r2, 2 - adds r0, r2, 0 - ldrh r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - bl GetBehaviorByMetatileId - lsls r4, r0, 16 - lsls r0, r4, 8 - lsrs r0, 24 - bl sub_8057288 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080FF2AC - ldr r3, [sp, 0x24] - ldrb r0, [r3, 0x11] - cmp r0, 0x1 - beq _080FF2BC - lsrs r0, r4, 28 - cmp r0, 0 - beq _080FF2BC -_080FF2AC: - movs r4, 0xC0 - lsls r4, 4 - mov r8, r4 - b _080FF2C0 - .align 2, 0 -_080FF2B4: .4byte gDecorations + 0x1C -_080FF2B8: .4byte gDecorations -_080FF2BC: - movs r0, 0 - mov r8, r0 -_080FF2C0: - ldr r1, [sp, 0x24] - ldrb r0, [r1, 0x11] - lsls r7, r5, 16 - ldr r2, [sp, 0x14] - lsls r2, 16 - mov r9, r2 - cmp r0, 0x3 - beq _080FF2EA - asrs r0, r7, 16 - asrs r1, r2, 16 - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - bl sub_80572B0 - lsls r0, 24 - lsrs r0, 24 - movs r6, 0x1 - cmp r0, 0x1 - beq _080FF2EC -_080FF2EA: - movs r6, 0 -_080FF2EC: - ldr r3, [sp, 0x18] - ldr r4, _080FF334 @ =gDecorations - adds r0, r3, r4 - ldrb r0, [r0] - ldr r4, [sp, 0x20] - add r4, r10 - lsls r1, r4, 24 - lsrs r1, 24 - bl sub_80FF1B0 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, _080FF338 @ =0x0000ffff - cmp r5, r0 - beq _080FF33C - asrs r0, r7, 16 - mov r2, r9 - asrs r1, r2, 16 - ldr r3, [sp, 0x1C] - ldr r2, [r3] - lsls r3, r4, 1 - adds r3, r2 - movs r4, 0x80 - lsls r4, 2 - adds r2, r4, 0 - orrs r6, r2 - ldrh r3, [r3] - adds r2, r6, r3 - mov r3, r8 - orrs r3, r2 - orrs r3, r5 - lsls r2, r3, 16 - lsrs r2, 16 - bl MapGridSetMetatileEntryAt - b _080FF362 - .align 2, 0 -_080FF334: .4byte gDecorations -_080FF338: .4byte 0x0000ffff -_080FF33C: - asrs r0, r7, 16 - mov r2, r9 - asrs r1, r2, 16 - ldr r3, [sp, 0x1C] - ldr r2, [r3] - lsls r3, r4, 1 - adds r3, r2 - movs r4, 0x80 - lsls r4, 2 - adds r2, r4, 0 - orrs r6, r2 - ldrh r3, [r3] - adds r2, r6, r3 - mov r3, r8 - orrs r3, r2 - lsls r2, r3, 16 - lsrs r2, 16 - bl MapGridSetMetatileIdAt -_080FF362: - mov r0, r10 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - ldr r4, [sp, 0x28] - cmp r10, r4 - bcs _080FF374 - b _080FF266 -_080FF374: - ldr r1, [sp, 0x30] - lsls r0, r1, 16 - lsrs r2, r0, 16 - ldr r3, [sp, 0x2C] - lsrs r0, r3, 16 - cmp r2, r0 - bcs _080FF384 - b _080FF228 -_080FF384: - add sp, 0x34 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80FF1EC - - thumb_func_start sub_80FF394 -sub_80FF394: @ 80FF394 - push {r4,lr} - sub sp, 0x4 - lsls r0, 16 - lsrs r3, r0, 16 - lsls r1, 16 - lsrs r4, r1, 16 - lsls r2, 16 - lsrs r2, 16 - ldr r1, _080FF3BC @ =gDecorations - lsls r0, r2, 5 - adds r0, r1 - ldrb r0, [r0, 0x12] - cmp r0, 0x9 - bhi _080FF46C - lsls r0, 2 - ldr r1, _080FF3C0 @ =_080FF3C4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080FF3BC: .4byte gDecorations -_080FF3C0: .4byte _080FF3C4 - .align 2, 0 -_080FF3C4: - .4byte _080FF3EC - .4byte _080FF3F6 - .4byte _080FF400 - .4byte _080FF410 - .4byte _080FF41A - .4byte _080FF424 - .4byte _080FF434 - .4byte _080FF43E - .4byte _080FF44E - .4byte _080FF45E -_080FF3EC: - str r2, [sp] - adds r0, r3, 0 - adds r1, r4, 0 - movs r2, 0x1 - b _080FF408 -_080FF3F6: - str r2, [sp] - adds r0, r3, 0 - adds r1, r4, 0 - movs r2, 0x2 - b _080FF408 -_080FF400: - str r2, [sp] - adds r0, r3, 0 - adds r1, r4, 0 - movs r2, 0x3 -_080FF408: - movs r3, 0x1 - bl sub_80FF1EC - b _080FF46C -_080FF410: - str r2, [sp] - adds r0, r3, 0 - adds r1, r4, 0 - movs r2, 0x4 - b _080FF42C -_080FF41A: - str r2, [sp] - adds r0, r3, 0 - adds r1, r4, 0 - movs r2, 0x2 - b _080FF42C -_080FF424: - str r2, [sp] - adds r0, r3, 0 - adds r1, r4, 0 - movs r2, 0x1 -_080FF42C: - movs r3, 0x2 - bl sub_80FF1EC - b _080FF46C -_080FF434: - str r2, [sp] - adds r0, r3, 0 - adds r1, r4, 0 - movs r2, 0x1 - b _080FF456 -_080FF43E: - str r2, [sp] - adds r0, r3, 0 - adds r1, r4, 0 - movs r2, 0x2 - movs r3, 0x4 - bl sub_80FF1EC - b _080FF46C -_080FF44E: - str r2, [sp] - adds r0, r3, 0 - adds r1, r4, 0 - movs r2, 0x3 -_080FF456: - movs r3, 0x3 - bl sub_80FF1EC - b _080FF46C -_080FF45E: - str r2, [sp] - adds r0, r3, 0 - adds r1, r4, 0 - movs r2, 0x3 - movs r3, 0x2 - bl sub_80FF1EC -_080FF46C: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80FF394 - - thumb_func_start sub_80FF474 -sub_80FF474: @ 80FF474 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - movs r6, 0 - ldr r0, _080FF54C @ =gMapHeader - mov r8, r0 - ldr r1, _080FF550 @ =gSpecialVar_0x8005 - mov r9, r1 - ldr r2, _080FF554 @ =gSpecialVar_0x8006 - mov r10, r2 - ldr r7, _080FF558 @ =gSaveBlock1 -_080FF490: - adds r5, r6, 0 - adds r5, 0xAE - adds r4, r5, 0 - adds r0, r4, 0 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080FF570 - adds r0, r4, 0 - bl FlagReset - movs r2, 0 - mov r4, r8 - ldr r0, [r4, 0x4] - ldrb r6, [r0] - cmp r2, r6 - bcs _080FF4E0 - ldr r0, [r0, 0x4] - ldrh r0, [r0, 0x14] - cmp r0, r5 - beq _080FF4E0 - ldr r0, _080FF54C @ =gMapHeader - ldr r3, [r0, 0x4] - ldrb r6, [r3] - adds r4, r5, 0 -_080FF4C6: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, r6 - bcs _080FF4E0 - ldr r0, [r3, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x14] - cmp r0, r4 - bne _080FF4C6 -_080FF4E0: - mov r1, r8 - ldr r0, [r1, 0x4] - ldr r1, [r0, 0x4] - lsls r4, r2, 1 - adds r4, r2 - lsls r4, 3 - adds r1, r4, r1 - ldr r2, _080FF55C @ =0x00003f20 - adds r0, r2, 0 - ldrb r1, [r1, 0x1] - adds r0, r1 - ldr r1, _080FF560 @ =gUnknown_02038900 - ldr r1, [r1] - ldr r1, [r1, 0x1C] - ldrh r1, [r1] - bl VarSet - mov r5, r8 - ldr r0, [r5, 0x4] - ldr r0, [r0, 0x4] - adds r4, r0 - ldrb r0, [r4] - mov r6, r9 - strh r0, [r6] - ldr r1, _080FF564 @ =gUnknown_020391A4 - ldrh r1, [r1] - mov r2, r10 - strh r1, [r2] - ldr r1, _080FF568 @ =gUnknown_020391A6 - ldrh r1, [r1] - ldr r4, _080FF56C @ =gSpecialVar_0x8007 - strh r1, [r4] - ldrb r1, [r7, 0x5] - ldrb r2, [r7, 0x4] - bl show_sprite - ldrb r0, [r6] - ldrb r1, [r7, 0x5] - ldrb r2, [r7, 0x4] - mov r5, r10 - movs r6, 0 - ldrsh r3, [r5, r6] - movs r5, 0 - ldrsh r4, [r4, r5] - str r4, [sp] - bl sub_805C0F8 - mov r6, r9 - ldrb r0, [r6] - ldrb r1, [r7, 0x5] - ldrb r2, [r7, 0x4] - bl sub_805C78C - b _080FF57A - .align 2, 0 -_080FF54C: .4byte gMapHeader -_080FF550: .4byte gSpecialVar_0x8005 -_080FF554: .4byte gSpecialVar_0x8006 -_080FF558: .4byte gSaveBlock1 -_080FF55C: .4byte 0x00003f20 -_080FF560: .4byte gUnknown_02038900 -_080FF564: .4byte gUnknown_020391A4 -_080FF568: .4byte gUnknown_020391A6 -_080FF56C: .4byte gSpecialVar_0x8007 -_080FF570: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0xD - bls _080FF490 -_080FF57A: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80FF474 - - thumb_func_start sub_80FF58C -sub_80FF58C: @ 80FF58C - push {lr} - movs r1, 0 - ldr r0, _080FF5A8 @ =0x0201f000 - ldrb r2, [r0, 0x8] - cmp r1, r2 - bcs _080FF5B6 - ldr r3, [r0] -_080FF59A: - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080FF5AC - movs r0, 0x1 - b _080FF5B8 - .align 2, 0 -_080FF5A8: .4byte 0x0201f000 -_080FF5AC: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r2 - bcc _080FF59A -_080FF5B6: - movs r0, 0 -_080FF5B8: - pop {r1} - bx r1 - thumb_func_end sub_80FF58C - - thumb_func_start sub_80FF5BC -sub_80FF5BC: @ 80FF5BC - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080FF5E4 @ =0x0201f000 - ldrb r0, [r0, 0x9] - cmp r0, 0x1 - bne _080FF5F0 - ldr r0, _080FF5E8 @ =gUnknown_020388F6 - ldrb r0, [r0] - cmp r0, 0x6 - beq _080FF5F0 - cmp r0, 0x7 - beq _080FF5F0 - bl sub_80FEF74 - bl sub_80FED1C - ldr r1, _080FF5EC @ =gSecretBaseText_DecorCantPlace - b _080FF66E - .align 2, 0 -_080FF5E4: .4byte 0x0201f000 -_080FF5E8: .4byte gUnknown_020388F6 -_080FF5EC: .4byte gSecretBaseText_DecorCantPlace -_080FF5F0: - bl sub_80FEFA4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080FF688 - bl sub_80FF58C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080FF62C - movs r0, 0x1 - movs r1, 0 - bl fade_screen - ldr r1, _080FF624 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xC] - ldr r1, _080FF628 @ =sub_80FF6AC - str r1, [r0] - b _080FF69C - .align 2, 0 -_080FF624: .4byte gTasks -_080FF628: .4byte sub_80FF6AC -_080FF62C: - bl sub_80FEF74 - bl sub_80FED1C - ldr r0, _080FF654 @ =gStringVar1 - ldr r4, _080FF658 @ =0x0201f000 - ldrb r1, [r4, 0x8] - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldrb r0, [r4, 0x9] - cmp r0, 0 - bne _080FF664 - ldr r0, _080FF65C @ =gStringVar4 - ldr r1, _080FF660 @ =gSecretBaseText_NoMoreDecor - bl StringExpandPlaceholders - b _080FF66C - .align 2, 0 -_080FF654: .4byte gStringVar1 -_080FF658: .4byte 0x0201f000 -_080FF65C: .4byte gStringVar4 -_080FF660: .4byte gSecretBaseText_NoMoreDecor -_080FF664: - ldr r0, _080FF67C @ =gStringVar4 - ldr r1, _080FF680 @ =gSecretBaseText_NoMoreDecor2 - bl StringExpandPlaceholders -_080FF66C: - ldr r1, _080FF67C @ =gStringVar4 -_080FF66E: - ldr r2, _080FF684 @ =sub_80FEFF4 - adds r0, r5, 0 - movs r3, 0 - bl DisplayItemMessageOnField - b _080FF69C - .align 2, 0 -_080FF67C: .4byte gStringVar4 -_080FF680: .4byte gSecretBaseText_NoMoreDecor2 -_080FF684: .4byte sub_80FEFF4 -_080FF688: - bl sub_80FEF74 - bl sub_80FED1C - ldr r1, _080FF6A4 @ =gSecretBaseText_InUseAlready - ldr r2, _080FF6A8 @ =sub_80FEFF4 - adds r0, r5, 0 - movs r3, 0 - bl DisplayItemMessageOnField -_080FF69C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080FF6A4: .4byte gSecretBaseText_InUseAlready -_080FF6A8: .4byte sub_80FEFF4 - thumb_func_end sub_80FF5BC - - thumb_func_start sub_80FF6AC -sub_80FF6AC: @ 80FF6AC - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080FF6D0 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r7, r0, r1 - movs r1, 0xC - ldrsh r0, [r7, r1] - cmp r0, 0x1 - beq _080FF714 - cmp r0, 0x1 - bgt _080FF6D4 - cmp r0, 0 - beq _080FF6DA - b _080FF77A - .align 2, 0 -_080FF6D0: .4byte gTasks -_080FF6D4: - cmp r0, 0x2 - beq _080FF764 - b _080FF77A -_080FF6DA: - ldr r0, _080FF70C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080FF77A - adds r0, r6, 0 - bl sub_80FF0E0 - movs r0, 0 - bl DestroyVerticalScrollIndicator - movs r0, 0x1 - bl DestroyVerticalScrollIndicator - ldr r0, _080FF710 @ =gUnknown_020388F7 - movs r1, 0x8 - bl sub_80F9520 - bl BuyMenuFreeMemory - movs r0, 0x1 - strh r0, [r7, 0xC] - b _080FF77A - .align 2, 0 -_080FF70C: .4byte gPaletteFade -_080FF710: .4byte gUnknown_020388F7 -_080FF714: - ldr r4, _080FF754 @ =gPaletteFade - ldrb r0, [r4, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r4, 0x8] - ldr r5, _080FF758 @ =gUnknown_02038900 - ldr r0, _080FF75C @ =gUnknown_020388F5 - ldrb r1, [r0] - ldr r0, _080FF760 @ =gUnknown_020388D0 - ldr r0, [r0] - adds r0, r1 - ldrb r1, [r0] - adds r0, r5, 0 - bl AddDecorationIconObjectFromFieldObject - adds r0, r6, 0 - bl sub_80FF960 - adds r0, r6, 0 - adds r1, r5, 0 - bl SetUpPlacingDecorationPlayerAvatar - bl pal_fill_black - ldrb r1, [r4, 0x8] - movs r0, 0x7F - ands r0, r1 - strb r0, [r4, 0x8] - movs r0, 0x2 - strh r0, [r7, 0xC] - b _080FF77A - .align 2, 0 -_080FF754: .4byte gPaletteFade -_080FF758: .4byte gUnknown_02038900 -_080FF75C: .4byte gUnknown_020388F5 -_080FF760: .4byte gUnknown_020388D0 -_080FF764: - bl sub_807D770 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080FF77A - movs r0, 0 - strh r0, [r7, 0x20] - adds r0, r6, 0 - bl sub_810065C -_080FF77A: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80FF6AC - - thumb_func_start AddDecorationIconObjectFromFieldObject -AddDecorationIconObjectFromFieldObject: @ 80FF780 - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - lsls r4, r1, 24 - lsrs r4, 24 - bl sub_80FEF74 - bl sub_80FED1C - adds r0, r5, 0 - bl sub_81006D0 - lsls r4, 5 - ldr r0, _080FF810 @ =gDecorations - adds r4, r0 - str r4, [r5] - ldrb r0, [r4, 0x11] - cmp r0, 0x4 - beq _080FF834 - adds r0, r5, 0 - bl sub_81008BC - ldr r0, [r5] - ldrb r0, [r0, 0x12] - bl sub_8100930 - adds r0, r5, 0 - bl sub_8100874 - ldr r1, _080FF814 @ =0x00000884 - adds r0, r5, r1 - ldr r1, _080FF818 @ =gMapHeader - ldr r1, [r1] - ldr r2, [r1, 0x14] - ldr r1, [r5] - ldr r1, [r1, 0x1C] - ldrh r1, [r1] - ldr r2, [r2, 0xC] - lsls r1, 4 - adds r1, r2 - ldrh r1, [r1, 0xE] - lsrs r1, 12 - bl sub_810070C - ldr r0, _080FF81C @ =gUnknown_083EC954 - bl LoadSpritePalette - ldr r3, _080FF820 @ =gUnknown_020391A8 - ldr r2, _080FF824 @ =gSprites - ldr r4, _080FF828 @ =gUnknown_03004880 - ldr r1, [r4, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x2E] - strb r0, [r3] - ldr r0, _080FF82C @ =gSpriteTemplate_83EC93C - ldr r3, _080FF830 @ =gUnknown_083EC900 - ldr r1, [r5] - ldrb r2, [r1, 0x12] - lsls r2, 2 - adds r2, r3 - ldrb r1, [r2, 0x2] - ldrb r2, [r2, 0x3] - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - str r0, [r4, 0x4] - b _080FF87E - .align 2, 0 -_080FF810: .4byte gDecorations -_080FF814: .4byte 0x00000884 -_080FF818: .4byte gMapHeader -_080FF81C: .4byte gUnknown_083EC954 -_080FF820: .4byte gUnknown_020391A8 -_080FF824: .4byte gSprites -_080FF828: .4byte gUnknown_03004880 -_080FF82C: .4byte gSpriteTemplate_83EC93C -_080FF830: .4byte gUnknown_083EC900 -_080FF834: - ldr r2, _080FF888 @ =gUnknown_020391A8 - ldr r6, _080FF88C @ =gSprites - ldr r5, _080FF890 @ =gUnknown_03004880 - ldr r1, [r5, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrh r0, [r0, 0x2E] - strb r0, [r2] - ldr r0, [r4, 0x1C] - ldrh r0, [r0] - ldr r1, _080FF894 @ =sub_81009A8 - ldr r2, _080FF898 @ =gUnknown_083EC900 - ldrb r3, [r4, 0x12] - lsls r3, 2 - adds r3, r2 - ldrb r2, [r3, 0x2] - ldrb r3, [r3, 0x3] - movs r4, 0x1 - str r4, [sp] - bl AddPseudoFieldObject - lsls r0, 24 - lsrs r0, 24 - str r0, [r5, 0x4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1, 0x5] -_080FF87E: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080FF888: .4byte gUnknown_020391A8 -_080FF88C: .4byte gSprites -_080FF890: .4byte gUnknown_03004880 -_080FF894: .4byte sub_81009A8 -_080FF898: .4byte gUnknown_083EC900 - thumb_func_end AddDecorationIconObjectFromFieldObject - - thumb_func_start SetUpPlacingDecorationPlayerAvatar -SetUpPlacingDecorationPlayerAvatar: @ 80FF89C - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - ldr r3, _080FF8F0 @ =gTasks - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - adds r2, r3 - ldrb r2, [r2, 0x12] - ldr r3, _080FF8F4 @ =gUnknown_083EC900 - ldr r0, [r1] - ldrb r4, [r0, 0x12] - lsls r1, r4, 2 - adds r1, r3 - lsls r0, r2, 4 - ldrb r1, [r1, 0x2] - adds r0, r1 - subs r2, 0x1 - lsls r2, 3 - subs r0, r2 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r4, 0x2 - beq _080FF8D6 - cmp r4, 0x8 - beq _080FF8D6 - cmp r4, 0x9 - bne _080FF8DE -_080FF8D6: - adds r0, r2, 0 - subs r0, 0x8 - lsls r0, 24 - lsrs r2, r0, 24 -_080FF8DE: - ldr r0, _080FF8F8 @ =gSaveBlock2 - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _080FF900 - ldr r1, _080FF8FC @ =SpriteCallbackDummy - str r0, [sp] - movs r0, 0xC1 - b _080FF908 - .align 2, 0 -_080FF8F0: .4byte gTasks -_080FF8F4: .4byte gUnknown_083EC900 -_080FF8F8: .4byte gSaveBlock2 -_080FF8FC: .4byte SpriteCallbackDummy -_080FF900: - ldr r1, _080FF94C @ =SpriteCallbackDummy - movs r0, 0 - str r0, [sp] - movs r0, 0xC2 -_080FF908: - movs r3, 0x48 - bl AddPseudoFieldObject - ldr r1, _080FF950 @ =gUnknown_020391A9 - strb r0, [r1] - ldr r3, _080FF954 @ =gSprites - ldr r0, _080FF950 @ =gUnknown_020391A9 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0, 0x5] - ldr r4, _080FF958 @ =gUnknown_020391A8 - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - bl DestroySprite - ldr r0, _080FF95C @ =gUnknown_03004880 - ldr r0, [r0, 0x4] - strb r0, [r4] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FF94C: .4byte SpriteCallbackDummy -_080FF950: .4byte gUnknown_020391A9 -_080FF954: .4byte gSprites -_080FF958: .4byte gUnknown_020391A8 -_080FF95C: .4byte gUnknown_03004880 - thumb_func_end SetUpPlacingDecorationPlayerAvatar - - thumb_func_start sub_80FF960 -sub_80FF960: @ 80FF960 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, _080FF98C @ =gDecorations - ldr r0, _080FF990 @ =gUnknown_020388F5 - ldrb r1, [r0] - ldr r0, _080FF994 @ =gUnknown_020388D0 - ldr r0, [r0] - adds r0, r1 - ldrb r0, [r0] - lsls r0, 5 - adds r0, r2 - ldrb r0, [r0, 0x12] - cmp r0, 0x9 - bls _080FF980 - b _080FFAA6 -_080FF980: - lsls r0, 2 - ldr r1, _080FF998 @ =_080FF99C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080FF98C: .4byte gDecorations -_080FF990: .4byte gUnknown_020388F5 -_080FF994: .4byte gUnknown_020388D0 -_080FF998: .4byte _080FF99C - .align 2, 0 -_080FF99C: - .4byte _080FF9C4 - .4byte _080FF9D8 - .4byte _080FF9F0 - .4byte _080FFA08 - .4byte _080FFA1C - .4byte _080FFA30 - .4byte _080FFA44 - .4byte _080FFA64 - .4byte _080FFA7C - .4byte _080FFA94 -_080FF9C4: - ldr r0, _080FF9D4 @ =gTasks - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - b _080FFA88 - .align 2, 0 -_080FF9D4: .4byte gTasks -_080FF9D8: - ldr r1, _080FF9EC @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - movs r1, 0x2 - strh r1, [r0, 0x12] - movs r1, 0x1 - b _080FFAA4 - .align 2, 0 -_080FF9EC: .4byte gTasks -_080FF9F0: - ldr r1, _080FFA04 @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - movs r1, 0x3 - strh r1, [r0, 0x12] - movs r1, 0x1 - b _080FFAA4 - .align 2, 0 -_080FFA04: .4byte gTasks -_080FFA08: - ldr r1, _080FFA18 @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - movs r1, 0x4 - b _080FFAA0 - .align 2, 0 -_080FFA18: .4byte gTasks -_080FFA1C: - ldr r0, _080FFA2C @ =gTasks - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 3 - adds r1, r0 - movs r0, 0x2 - b _080FFA88 - .align 2, 0 -_080FFA2C: .4byte gTasks -_080FFA30: - ldr r1, _080FFA40 @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - movs r1, 0x1 - b _080FFAA0 - .align 2, 0 -_080FFA40: .4byte gTasks -_080FFA44: - ldr r0, _080FFA60 @ =gTasks - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - strh r0, [r1, 0x12] - movs r0, 0x3 - strh r0, [r1, 0x14] - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] - b _080FFAA6 - .align 2, 0 -_080FFA60: .4byte gTasks -_080FFA64: - ldr r1, _080FFA78 @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - movs r1, 0x2 - strh r1, [r0, 0x12] - movs r1, 0x4 - b _080FFAA4 - .align 2, 0 -_080FFA78: .4byte gTasks -_080FFA7C: - ldr r0, _080FFA90 @ =gTasks - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 3 - adds r1, r0 - movs r0, 0x3 -_080FFA88: - strh r0, [r1, 0x12] - strh r0, [r1, 0x14] - b _080FFAA6 - .align 2, 0 -_080FFA90: .4byte gTasks -_080FFA94: - ldr r1, _080FFAAC @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - movs r1, 0x3 -_080FFAA0: - strh r1, [r0, 0x12] - movs r1, 0x2 -_080FFAA4: - strh r1, [r0, 0x14] -_080FFAA6: - pop {r0} - bx r0 - .align 2, 0 -_080FFAAC: .4byte gTasks - thumb_func_end sub_80FF960 - - thumb_func_start sub_80FFAB0 -sub_80FFAB0: @ 80FFAB0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _080FFAF8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x1C] - ldr r3, _080FFAFC @ =gSprites - ldr r0, _080FFB00 @ =gUnknown_020391A8 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r2, 0x1 - strh r2, [r0, 0x3C] - ldr r0, _080FFB04 @ =gUnknown_020391A9 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r2, [r0, 0x3C] - bl sub_810045C - adds r0, r4, 0 - bl sub_8100038 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FFAF8: .4byte gTasks -_080FFAFC: .4byte gSprites -_080FFB00: .4byte gUnknown_020391A8 -_080FFB04: .4byte gUnknown_020391A9 - thumb_func_end sub_80FFAB0 - - thumb_func_start sub_80FFB08 -sub_80FFB08: @ 80FFB08 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _080FFB54 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x1C] - ldr r3, _080FFB58 @ =gSprites - ldr r0, _080FFB5C @ =gUnknown_020391A8 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r2, 0x1 - strh r2, [r0, 0x3C] - ldr r0, _080FFB60 @ =gUnknown_020391A9 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r2, [r0, 0x3C] - bl sub_810045C - ldr r1, _080FFB64 @ =gSecretBaseText_CancelDecorating - ldr r2, _080FFB68 @ =sub_8100248 - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FFB54: .4byte gTasks -_080FFB58: .4byte gSprites -_080FFB5C: .4byte gUnknown_020391A8 -_080FFB60: .4byte gUnknown_020391A9 -_080FFB64: .4byte gSecretBaseText_CancelDecorating -_080FFB68: .4byte sub_8100248 - thumb_func_end sub_80FFB08 - - thumb_func_start sub_80FFB6C -sub_80FFB6C: @ 80FFB6C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r4, r1, 16 - bl sub_8057274 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080FFB86 - cmp r4, 0 - beq _080FFB8A -_080FFB86: - movs r0, 0 - b _080FFB8C -_080FFB8A: - movs r0, 0x1 -_080FFB8C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80FFB6C - - thumb_func_start sub_80FFB94 -sub_80FFB94: @ 80FFB94 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r2, 16 - lsrs r4, r2, 16 - lsls r3, 16 - lsrs r5, r3, 16 - lsls r1, 16 - asrs r1, 16 - ldr r3, _080FFBD0 @ =gTasks - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - adds r2, r3 - movs r3, 0xE - ldrsh r0, [r2, r3] - adds r0, 0x7 - cmp r1, r0 - bne _080FFBD4 - lsls r1, r4, 16 - asrs r1, 16 - movs r3, 0x10 - ldrsh r0, [r2, r3] - adds r0, 0x7 - cmp r1, r0 - bne _080FFBD4 - cmp r5, 0 - beq _080FFBD4 - movs r0, 0 - b _080FFBD6 - .align 2, 0 -_080FFBD0: .4byte gTasks -_080FFBD4: - movs r0, 0x1 -_080FFBD6: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80FFB94 - - thumb_func_start sub_80FFBDC -sub_80FFBDC: @ 80FFBDC - push {r4-r6,lr} - adds r5, r1, 0 - lsls r0, 16 - lsrs r6, r0, 16 - lsls r0, r6, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_8057274 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080FFC1C - ldrb r0, [r5] - cmp r0, 0x21 - bne _080FFC0A - adds r0, r4, 0 - bl sub_8057300 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080FFC18 -_080FFC0A: - lsls r0, r6, 24 - lsrs r0, 24 - bl sub_805729C - lsls r0, 24 - cmp r0, 0 - beq _080FFC1C -_080FFC18: - movs r0, 0x1 - b _080FFC1E -_080FFC1C: - movs r0, 0 -_080FFC1E: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80FFBDC - - thumb_func_start sub_80FFC24 -sub_80FFC24: @ 80FFC24 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - str r1, [sp] - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r1, _080FFC60 @ =gTasks - lsls r0, 2 - add r0, r10 - lsls r0, 3 - adds r0, r1 - ldrb r2, [r0, 0x14] - str r2, [sp, 0x4] - ldrb r0, [r0, 0x12] - str r0, [sp, 0x8] - ldr r3, [sp] - ldrb r0, [r3, 0x11] - adds r2, r1, 0 - cmp r0, 0x4 - bls _080FFC56 - b _08100024 -_080FFC56: - lsls r0, 2 - ldr r1, _080FFC64 @ =_080FFC68 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080FFC60: .4byte gTasks -_080FFC64: .4byte _080FFC68 - .align 2, 0 -_080FFC68: - .4byte _080FFC7C - .4byte _080FFC7C - .4byte _080FFD68 - .4byte _080FFF1C - .4byte _080FFFA0 -_080FFC7C: - movs r6, 0 - ldr r0, [sp, 0x4] - cmp r6, r0 - bcc _080FFC86 - b _08100024 -_080FFC86: - mov r1, r10 - lsls r1, 2 - str r1, [sp, 0x1C] -_080FFC8C: - mov r2, r10 - lsls r0, r2, 2 - add r0, r10 - lsls r0, 3 - ldr r3, _080FFD64 @ =gTasks - adds r0, r3 - ldrh r0, [r0, 0xA] - subs r0, r6 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - movs r7, 0 - adds r6, 0x1 - str r6, [sp, 0x14] - ldr r0, [sp, 0x8] - cmp r7, r0 - bcs _080FFD56 - mov r1, r9 - lsls r1, 16 - str r1, [sp, 0xC] - asrs r1, 16 - mov r9, r1 -_080FFCB8: - ldr r0, [sp, 0x1C] - add r0, r10 - lsls r0, 3 - ldr r2, _080FFD64 @ =gTasks - adds r0, r2 - ldrh r0, [r0, 0x8] - adds r0, r7 - lsls r0, 16 - mov r8, r0 - asrs r6, r0, 16 - adds r0, r6, 0 - mov r1, r9 - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r4, r0, 24 - ldr r3, [sp, 0x4] - ldr r1, [sp, 0x14] - subs r0, r3, r1 - ldr r2, [sp, 0x8] - adds r1, r0, 0 - muls r1, r2 - adds r1, r7 - ldr r3, [sp] - ldr r0, [r3, 0x1C] - lsls r1, 1 - adds r1, r0 - movs r2, 0x80 - lsls r2, 2 - adds r0, r2, 0 - ldrh r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - bl GetBehaviorByMetatileId - movs r3, 0xF0 - lsls r3, 8 - adds r1, r3, 0 - adds r5, r1, 0 - ands r5, r0 - adds r0, r4, 0 - ldr r1, [sp] - bl sub_80FFBDC - lsls r0, 24 - cmp r0, 0 - bne _080FFD1A - b _080FFFF4 -_080FFD1A: - mov r0, r10 - adds r1, r6, 0 - mov r2, r9 - adds r3, r5, 0 - bl sub_80FFB94 - lsls r0, 24 - cmp r0, 0 - bne _080FFD2E - b _080FFFF4 -_080FFD2E: - mov r1, r8 - lsrs r0, r1, 16 - ldr r2, [sp, 0xC] - lsrs r1, r2, 16 - movs r2, 0 - bl GetFieldObjectIdByXYZ - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _080FFD4A - cmp r4, 0x10 - beq _080FFD4A - b _080FFFF4 -_080FFD4A: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r3, [sp, 0x8] - cmp r7, r3 - bcc _080FFCB8 -_080FFD56: - ldr r1, [sp, 0x14] - lsls r0, r1, 24 - lsrs r6, r0, 24 - ldr r2, [sp, 0x4] - cmp r6, r2 - bcc _080FFC8C - b _08100024 - .align 2, 0 -_080FFD64: .4byte gTasks -_080FFD68: - movs r6, 0 - mov r3, r10 - lsls r3, 2 - str r3, [sp, 0x1C] - ldr r0, [sp, 0x4] - subs r0, 0x1 - str r0, [sp, 0x18] - cmp r6, r0 - bge _080FFE54 - adds r0, r3, 0 - add r0, r10 - lsls r0, 3 - str r0, [sp, 0x10] -_080FFD82: - ldr r1, [sp, 0x10] - adds r0, r1, r2 - ldrh r0, [r0, 0xA] - subs r0, r6 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - movs r7, 0 - adds r6, 0x1 - str r6, [sp, 0x14] - ldr r3, [sp, 0x8] - cmp r7, r3 - bcs _080FFE48 - lsls r0, 16 - str r0, [sp, 0x20] -_080FFDA0: - ldr r1, [sp, 0x10] - adds r0, r1, r2 - ldrh r0, [r0, 0x8] - adds r0, r7 - lsls r0, 16 - mov r8, r0 - asrs r6, r0, 16 - mov r2, r9 - lsls r1, r2, 16 - adds r0, r6, 0 - asrs r1, 16 - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r4, r0, 24 - ldr r3, [sp, 0x4] - ldr r1, [sp, 0x14] - subs r0, r3, r1 - ldr r2, [sp, 0x8] - adds r1, r0, 0 - muls r1, r2 - adds r1, r7 - ldr r3, [sp] - ldr r0, [r3, 0x1C] - lsls r1, 1 - adds r1, r0 - movs r2, 0x80 - lsls r2, 2 - adds r0, r2, 0 - ldrh r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - bl GetBehaviorByMetatileId - movs r3, 0xF0 - lsls r3, 8 - adds r1, r3, 0 - adds r5, r1, 0 - ands r5, r0 - adds r0, r4, 0 - bl sub_805729C - lsls r0, 24 - cmp r0, 0 - bne _080FFE0C - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80FFB6C - lsls r0, 24 - cmp r0, 0 - bne _080FFE0C - b _080FFFF4 -_080FFE0C: - mov r0, r10 - adds r1, r6, 0 - ldr r3, [sp, 0x20] - asrs r2, r3, 16 - adds r3, r5, 0 - bl sub_80FFB94 - lsls r0, 24 - cmp r0, 0 - bne _080FFE22 - b _080FFFF4 -_080FFE22: - mov r1, r8 - lsrs r0, r1, 16 - ldr r2, [sp, 0x20] - lsrs r1, r2, 16 - movs r2, 0 - bl GetFieldObjectIdByXYZ - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x10 - beq _080FFE3A - b _080FFFF4 -_080FFE3A: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r2, _080FFF18 @ =gTasks - ldr r3, [sp, 0x8] - cmp r7, r3 - bcc _080FFDA0 -_080FFE48: - ldr r1, [sp, 0x14] - lsls r0, r1, 24 - lsrs r6, r0, 24 - ldr r3, [sp, 0x18] - cmp r6, r3 - blt _080FFD82 -_080FFE54: - ldr r0, [sp, 0x1C] - add r0, r10 - lsls r0, 3 - adds r0, r2 - ldrh r0, [r0, 0xA] - ldr r1, [sp, 0x4] - subs r0, r1 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - movs r7, 0 - ldr r3, [sp, 0x8] - cmp r7, r3 - bcc _080FFE74 - b _08100024 -_080FFE74: - lsls r0, 16 - str r0, [sp, 0x20] -_080FFE78: - ldr r0, [sp, 0x1C] - add r0, r10 - lsls r0, 3 - ldr r1, _080FFF18 @ =gTasks - adds r0, r1 - ldrh r0, [r0, 0x8] - adds r0, r7 - lsls r0, 16 - mov r8, r0 - asrs r6, r0, 16 - mov r2, r9 - lsls r1, r2, 16 - adds r0, r6, 0 - asrs r1, 16 - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r4, r0, 24 - ldr r3, [sp] - ldr r0, [r3, 0x1C] - lsls r1, r7, 1 - adds r1, r0 - movs r2, 0x80 - lsls r2, 2 - adds r0, r2, 0 - ldrh r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - bl GetBehaviorByMetatileId - movs r3, 0xF0 - lsls r3, 8 - adds r1, r3, 0 - adds r5, r1, 0 - ands r5, r0 - adds r0, r4, 0 - bl sub_805729C - lsls r0, 24 - cmp r0, 0 - bne _080FFEDA - adds r0, r4, 0 - bl sub_80572B0 - lsls r0, 24 - cmp r0, 0 - bne _080FFEDA - b _080FFFF4 -_080FFEDA: - mov r0, r10 - adds r1, r6, 0 - ldr r3, [sp, 0x20] - asrs r2, r3, 16 - adds r3, r5, 0 - bl sub_80FFB94 - lsls r0, 24 - cmp r0, 0 - bne _080FFEF0 - b _080FFFF4 -_080FFEF0: - mov r1, r8 - lsrs r0, r1, 16 - ldr r2, [sp, 0x20] - lsrs r1, r2, 16 - movs r2, 0 - bl GetFieldObjectIdByXYZ - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _080FFF0A - cmp r4, 0x10 - bne _080FFFF4 -_080FFF0A: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r3, [sp, 0x8] - cmp r7, r3 - bcc _080FFE78 - b _08100024 - .align 2, 0 -_080FFF18: .4byte gTasks -_080FFF1C: - movs r6, 0 - ldr r0, [sp, 0x4] - cmp r6, r0 - bcc _080FFF26 - b _08100024 -_080FFF26: - mov r1, r10 - lsls r0, r1, 2 - add r0, r10 - lsls r1, r0, 3 - ldr r2, _080FFF9C @ =gTasks - adds r0, r1, r2 - ldrh r0, [r0, 0xA] - subs r0, r6 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - movs r7, 0 - ldr r3, [sp, 0x8] - cmp r7, r3 - bcs _080FFF8C - adds r0, r2, 0 - adds r1, r0 - mov r8, r1 - mov r1, r9 - lsls r0, r1, 16 - asrs r5, r0, 16 -_080FFF50: - mov r2, r8 - ldrh r0, [r2, 0x8] - adds r0, r7 - lsls r0, 16 - asrs r4, r0, 16 - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - bl sub_80572B0 - lsls r0, 24 - cmp r0, 0 - beq _080FFFF4 - adds r0, r4, 0 - adds r1, r5, 0x1 - bl MapGridGetMetatileIdAt - movs r1, 0xA3 - lsls r1, 2 - cmp r0, r1 - beq _080FFFF4 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r3, [sp, 0x8] - cmp r7, r3 - bcc _080FFF50 -_080FFF8C: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, [sp, 0x4] - cmp r6, r0 - bcc _080FFF26 - b _08100024 - .align 2, 0 -_080FFF9C: .4byte gTasks -_080FFFA0: - mov r3, r10 - lsls r1, r3, 2 - adds r0, r1, r3 - lsls r0, 3 - adds r0, r2 - ldrh r0, [r0, 0xA] - mov r9, r0 - movs r7, 0 - str r1, [sp, 0x1C] - ldr r0, [sp, 0x8] - cmp r7, r0 - bcs _08100024 - adds r6, r2, 0 - mov r1, r9 - lsls r1, 16 - str r1, [sp, 0x20] -_080FFFC0: - ldr r0, [sp, 0x1C] - add r0, r10 - lsls r0, 3 - adds r0, r6 - ldrh r0, [r0, 0x8] - adds r0, r7 - lsls r0, 16 - lsrs r5, r0, 16 - asrs r0, 16 - mov r2, r9 - lsls r1, r2, 16 - asrs r1, 16 - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r4, r0, 24 - ldr r3, [sp] - ldrb r0, [r3, 0x12] - cmp r0, 0x5 - bne _080FFFF8 -_080FFFE8: - adds r0, r4, 0 - bl sub_80572EC - lsls r0, 24 - cmp r0, 0 - bne _08100004 -_080FFFF4: - movs r0, 0 - b _08100026 -_080FFFF8: - adds r0, r4, 0 - bl sub_80572D8 - lsls r0, 24 - cmp r0, 0 - beq _080FFFE8 -_08100004: - adds r0, r5, 0 - ldr r2, [sp, 0x20] - lsrs r1, r2, 16 - movs r2, 0 - bl GetFieldObjectIdByXYZ - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x10 - bne _080FFFF4 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r3, [sp, 0x8] - cmp r7, r3 - bcc _080FFFC0 -_08100024: - movs r0, 0x1 -_08100026: - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80FFC24 - - thumb_func_start sub_8100038 -sub_8100038: @ 8100038 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0810006C @ =gUnknown_020388F5 - ldrb r1, [r0] - ldr r0, _08100070 @ =gUnknown_020388D0 - ldr r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r1, 5 - ldr r0, _08100074 @ =gDecorations - adds r1, r0 - adds r0, r4, 0 - bl sub_80FFC24 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08100080 - ldr r1, _08100078 @ =gSecretBaseText_PlaceItHere - ldr r2, _0810007C @ =sub_81000A0 - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField - b _08100092 - .align 2, 0 -_0810006C: .4byte gUnknown_020388F5 -_08100070: .4byte gUnknown_020388D0 -_08100074: .4byte gDecorations -_08100078: .4byte gSecretBaseText_PlaceItHere -_0810007C: .4byte sub_81000A0 -_08100080: - movs r0, 0x20 - bl PlaySE - ldr r1, _08100098 @ =gSecretBaseText_CantBePlacedHere - ldr r2, _0810009C @ =sub_81006A8 - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField -_08100092: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08100098: .4byte gSecretBaseText_CantBePlacedHere -_0810009C: .4byte sub_81006A8 - thumb_func_end sub_8100038 - - thumb_func_start sub_81000A0 -sub_81000A0: @ 81000A0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x14 - movs r1, 0x8 - movs r2, 0x1 - bl DisplayYesNoMenu - ldr r1, _081000C0 @ =gUnknown_083EC95C - adds r0, r4, 0 - bl sub_80F914C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081000C0: .4byte gUnknown_083EC95C - thumb_func_end sub_81000A0 - - thumb_func_start sub_81000C4 -sub_81000C4: @ 81000C4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - adds r0, r4, 0 - bl sub_8100174 - ldr r2, _0810010C @ =gDecorations - ldr r0, _08100110 @ =gUnknown_020388F5 - ldrb r1, [r0] - ldr r0, _08100114 @ =gUnknown_020388D0 - ldr r0, [r0] - adds r0, r1 - ldrb r3, [r0] - lsls r0, r3, 5 - adds r0, r2 - ldrb r0, [r0, 0x11] - cmp r0, 0x4 - beq _0810011C - ldr r0, _08100118 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - ldrh r1, [r1, 0xA] - adds r2, r3, 0 - bl sub_80FF394 - b _0810013C - .align 2, 0 -_0810010C: .4byte gDecorations -_08100110: .4byte gUnknown_020388F5 -_08100114: .4byte gUnknown_020388D0 -_08100118: .4byte gTasks -_0810011C: - ldr r2, _0810015C @ =gUnknown_020391A4 - ldr r0, _08100160 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - subs r0, 0x7 - strh r0, [r2] - ldr r2, _08100164 @ =gUnknown_020391A6 - ldrh r0, [r1, 0xA] - subs r0, 0x7 - strh r0, [r2] - ldr r0, _08100168 @ =gUnknown_081A2F7B - bl ScriptContext1_SetupScript -_0810013C: - ldr r2, _0810016C @ =gSprites - ldr r0, _08100170 @ =gUnknown_020391A8 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - adds r1, 0x2 - strh r1, [r0, 0x22] - adds r0, r4, 0 - bl sub_810028C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810015C: .4byte gUnknown_020391A4 -_08100160: .4byte gTasks -_08100164: .4byte gUnknown_020391A6 -_08100168: .4byte gUnknown_081A2F7B -_0810016C: .4byte gSprites -_08100170: .4byte gUnknown_020391A8 - thumb_func_end sub_81000C4 - - thumb_func_start sub_8100174 -sub_8100174: @ 8100174 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r3, 0 - ldr r0, _081001B0 @ =0x0201f000 - ldrb r1, [r0, 0x8] - adds r5, r0, 0 - cmp r3, r1 - bcs _0810019A - ldr r4, [r5] -_08100188: - adds r2, r4, r3 - ldrb r0, [r2] - cmp r0, 0 - beq _081001B8 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r1 - bcc _08100188 -_0810019A: - ldrb r0, [r5, 0x9] - cmp r0, 0 - bne _08100204 - movs r3, 0 - ldr r0, _081001B4 @ =gUnknown_020388D6 - ldrb r1, [r0] - adds r2, r0, 0 - cmp r1, 0 - bne _081001F0 - b _08100210 - .align 2, 0 -_081001B0: .4byte 0x0201f000 -_081001B4: .4byte gUnknown_020388D6 -_081001B8: - ldr r0, _081001E4 @ =gUnknown_020388F5 - ldrb r1, [r0] - ldr r0, _081001E8 @ =gUnknown_020388D0 - ldr r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r2, [r5, 0x4] - adds r2, r3 - ldr r0, _081001EC @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldrb r0, [r1, 0x8] - subs r0, 0x7 - lsls r0, 4 - ldrb r1, [r1, 0xA] - subs r1, 0x7 - adds r0, r1 - strb r0, [r2] - b _0810019A - .align 2, 0 -_081001E4: .4byte gUnknown_020388F5 -_081001E8: .4byte gUnknown_020388D0 -_081001EC: .4byte gTasks -_081001F0: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0xF - bhi _0810023E - adds r1, r3, r2 - ldrb r0, [r1] - cmp r0, 0 - bne _081001F0 - b _08100236 -_08100204: - movs r3, 0 - ldr r0, _0810021C @ =gUnknown_020388E6 - ldrb r1, [r0] - adds r2, r0, 0 - cmp r1, 0 - bne _08100224 -_08100210: - ldr r0, _08100220 @ =gUnknown_020388F5 - ldrb r0, [r0] - adds r0, 0x1 - strb r0, [r2] - b _0810023E - .align 2, 0 -_0810021C: .4byte gUnknown_020388E6 -_08100220: .4byte gUnknown_020388F5 -_08100224: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0xB - bhi _0810023E - adds r1, r3, r2 - ldrb r0, [r1] - cmp r0, 0 - bne _08100224 -_08100236: - ldr r0, _08100244 @ =gUnknown_020388F5 - ldrb r0, [r0] - adds r0, 0x1 - strb r0, [r1] -_0810023E: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08100244: .4byte gUnknown_020388F5 - thumb_func_end sub_8100174 - - thumb_func_start sub_8100248 -sub_8100248: @ 8100248 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x14 - movs r1, 0x8 - movs r2, 0x1 - bl DisplayYesNoMenu - ldr r1, _08100268 @ =gUnknown_083EC964 - adds r0, r4, 0 - bl sub_80F914C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08100268: .4byte gUnknown_083EC964 - thumb_func_end sub_8100248 - - thumb_func_start sub_810026C -sub_810026C: @ 810026C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - adds r0, r4, 0 - bl sub_810028C - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_810026C - - thumb_func_start sub_810028C -sub_810028C: @ 810028C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - movs r1, 0 - bl fade_screen - ldr r1, _081002B4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xC] - ldr r1, _081002B8 @ =c1_overworld_prev_quest - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081002B4: .4byte gTasks -_081002B8: .4byte c1_overworld_prev_quest - thumb_func_end sub_810028C - - thumb_func_start c1_overworld_prev_quest -c1_overworld_prev_quest: @ 81002BC - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _081002DC @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0xC - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _081002E0 - cmp r0, 0x1 - beq _08100300 - b _0810031C - .align 2, 0 -_081002DC: .4byte gTasks -_081002E0: - bl ScriptContext2_Enable - ldr r0, _081002FC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0810031C - adds r0, r4, 0 - bl sub_80FF114 - movs r0, 0x1 - strh r0, [r5, 0xC] - b _0810031C - .align 2, 0 -_081002FC: .4byte gPaletteFade -_08100300: - bl sub_81016F4 - ldr r0, _08100324 @ =0x00000bb8 - bl FreeSpritePaletteByTag - ldr r1, _08100328 @ =gUnknown_0300485C - ldr r0, _0810032C @ =sub_8100364 - str r0, [r1] - ldr r0, _08100330 @ =c2_exit_to_overworld_2_switch - bl SetMainCallback2 - adds r0, r4, 0 - bl DestroyTask -_0810031C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08100324: .4byte 0x00000bb8 -_08100328: .4byte gUnknown_0300485C -_0810032C: .4byte sub_8100364 -_08100330: .4byte c2_exit_to_overworld_2_switch - thumb_func_end c1_overworld_prev_quest - - thumb_func_start sub_8100334 -sub_8100334: @ 8100334 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_807D770 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08100354 - ldr r0, _0810035C @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _08100360 @ =sub_80FE948 - str r0, [r1] -_08100354: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810035C: .4byte gTasks -_08100360: .4byte sub_80FE948 - thumb_func_end sub_8100334 - - thumb_func_start sub_8100364 -sub_8100364: @ 8100364 - push {lr} - bl ScriptContext2_Enable - bl LoadScrollIndicatorPalette - bl pal_fill_black - ldr r0, _08100388 @ =sub_8100334 - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - bl sub_80FE7EC - pop {r0} - bx r0 - .align 2, 0 -_08100388: .4byte sub_8100334 - thumb_func_end sub_8100364 - - thumb_func_start sub_810038C -sub_810038C: @ 810038C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _081003BC @ =gTasks + 0x8 - adds r2, r1, r0 - ldr r0, _081003C0 @ =gUnknown_020391AA - ldrb r1, [r0] - adds r3, r0, 0 - cmp r1, 0x1 - bne _081003C4 - movs r1, 0x2 - ldrsh r0, [r2, r1] - movs r4, 0xC - ldrsh r1, [r2, r4] - subs r0, r1 - subs r0, 0x6 - cmp r0, 0 - bge _081003C4 - ldrh r0, [r2, 0x2] - adds r0, 0x1 - b _081003DE - .align 2, 0 -_081003BC: .4byte gTasks + 0x8 -_081003C0: .4byte gUnknown_020391AA -_081003C4: - ldrb r0, [r3] - cmp r0, 0x2 - bne _081003E8 - movs r0, 0x2 - ldrsh r1, [r2, r0] - subs r1, 0x7 - ldr r0, _081003E4 @ =gMapHeader - ldr r0, [r0] - ldr r0, [r0, 0x4] - cmp r1, r0 - blt _081003E8 - ldrh r0, [r2, 0x2] - subs r0, 0x1 -_081003DE: - strh r0, [r2, 0x2] - movs r0, 0 - b _0810042A - .align 2, 0 -_081003E4: .4byte gMapHeader -_081003E8: - ldrb r0, [r3] - cmp r0, 0x3 - bne _081003FE - movs r1, 0 - ldrsh r0, [r2, r1] - subs r0, 0x7 - cmp r0, 0 - bge _081003FE - ldrh r0, [r2] - adds r0, 0x1 - b _0810041E -_081003FE: - ldrb r0, [r3] - cmp r0, 0x4 - bne _08100428 - movs r3, 0 - ldrsh r1, [r2, r3] - movs r4, 0xA - ldrsh r0, [r2, r4] - adds r1, r0 - subs r1, 0x8 - ldr r0, _08100424 @ =gMapHeader - ldr r0, [r0] - ldr r0, [r0] - cmp r1, r0 - blt _08100428 - ldrh r0, [r2] - subs r0, 0x1 -_0810041E: - strh r0, [r2] - movs r0, 0 - b _0810042A - .align 2, 0 -_08100424: .4byte gMapHeader -_08100428: - movs r0, 0x1 -_0810042A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_810038C - - thumb_func_start sub_8100430 -sub_8100430: @ 8100430 - push {lr} - ldr r0, _08100450 @ =gMain - ldrh r0, [r0, 0x2C] - movs r1, 0xF0 - ands r1, r0 - cmp r1, 0x40 - beq _08100454 - cmp r1, 0x80 - beq _08100454 - cmp r1, 0x20 - beq _08100454 - cmp r1, 0x10 - beq _08100454 - movs r0, 0 - b _08100456 - .align 2, 0 -_08100450: .4byte gMain -_08100454: - movs r0, 0x1 -_08100456: - pop {r1} - bx r1 - thumb_func_end sub_8100430 - - thumb_func_start sub_810045C -sub_810045C: @ 810045C - push {r4,lr} - ldr r1, _08100488 @ =gUnknown_020391AA - movs r0, 0 - strb r0, [r1] - ldr r4, _0810048C @ =gSprites - ldr r3, _08100490 @ =gUnknown_020391A8 - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r2, 0 - strh r2, [r0, 0x32] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r2, [r0, 0x34] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08100488: .4byte gUnknown_020391AA -_0810048C: .4byte gSprites -_08100490: .4byte gUnknown_020391A8 - thumb_func_end sub_810045C - - thumb_func_start sub_8100494 -sub_8100494: @ 8100494 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r5, _081004D0 @ =gSprites - ldr r3, _081004D4 @ =gUnknown_020391A8 - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x36 - ldrsh r6, [r0, r1] - cmp r6, 0 - beq _081004B2 - b _081005DE -_081004B2: - ldr r1, _081004D8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r1 - movs r1, 0x1C - ldrsh r0, [r2, r1] - cmp r0, 0x1 - bne _081004E0 - ldr r0, _081004DC @ =gUnknown_083EC96C - movs r3, 0x20 - ldrsh r1, [r2, r3] - lsls r1, 3 - b _081004EE - .align 2, 0 -_081004D0: .4byte gSprites -_081004D4: .4byte gUnknown_020391A8 -_081004D8: .4byte gTasks -_081004DC: .4byte gUnknown_083EC96C -_081004E0: - cmp r0, 0x2 - bne _08100500 - ldr r0, _081004FC @ =gUnknown_083EC96C - movs r3, 0x20 - ldrsh r1, [r2, r3] - lsls r1, 3 - adds r0, 0x4 -_081004EE: - adds r1, r0 - ldr r1, [r1] - adds r0, r4, 0 - bl _call_via_r1 - b _0810063C - .align 2, 0 -_081004FC: .4byte gUnknown_083EC96C -_08100500: - ldr r7, _08100644 @ =gMain - ldrh r1, [r7, 0x2C] - movs r0, 0xF0 - mov r12, r0 - ands r0, r1 - cmp r0, 0x40 - bne _08100534 - ldr r1, _08100648 @ =gUnknown_020391AA - movs r0, 0x1 - strb r0, [r1] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x32] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _0810064C @ =0x0000fffe - strh r1, [r0, 0x34] - ldrh r0, [r2, 0xA] - subs r0, 0x1 - strh r0, [r2, 0xA] -_08100534: - ldrh r1, [r7, 0x2C] - mov r0, r12 - ands r0, r1 - cmp r0, 0x80 - bne _08100564 - ldr r1, _08100648 @ =gUnknown_020391AA - movs r0, 0x2 - strb r0, [r1] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x32] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x2 - strh r1, [r0, 0x34] - ldrh r0, [r2, 0xA] - adds r0, 0x1 - strh r0, [r2, 0xA] -_08100564: - ldrh r1, [r7, 0x2C] - mov r0, r12 - ands r0, r1 - cmp r0, 0x20 - bne _08100594 - ldr r1, _08100648 @ =gUnknown_020391AA - movs r0, 0x3 - strb r0, [r1] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _0810064C @ =0x0000fffe - strh r1, [r0, 0x32] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x34] - ldrh r0, [r2, 0x8] - subs r0, 0x1 - strh r0, [r2, 0x8] -_08100594: - ldrh r1, [r7, 0x2C] - mov r0, r12 - ands r0, r1 - cmp r0, 0x10 - bne _081005C4 - ldr r1, _08100648 @ =gUnknown_020391AA - movs r0, 0x4 - strb r0, [r1] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x2 - strh r1, [r0, 0x32] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x34] - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] -_081005C4: - bl sub_8100430 - lsls r0, 24 - cmp r0, 0 - beq _081005DA - adds r0, r4, 0 - bl sub_810038C - lsls r0, 24 - cmp r0, 0 - bne _081005DE -_081005DA: - bl sub_810045C -_081005DE: - ldr r0, _08100648 @ =gUnknown_020391AA - ldrb r0, [r0] - cmp r0, 0 - beq _0810060C - ldr r3, _08100650 @ =gSprites - ldr r2, _08100654 @ =gUnknown_020391A8 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x36] - adds r1, 0x1 - strh r1, [r0, 0x36] - ldrb r0, [r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrh r2, [r1, 0x36] - movs r0, 0x7 - ands r0, r2 - strh r0, [r1, 0x36] -_0810060C: - ldr r0, _08100658 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r2, r1, r0 - movs r1, 0x1C - ldrsh r0, [r2, r1] - cmp r0, 0 - bne _0810063C - ldr r4, _08100644 @ =gMain - ldrh r1, [r4, 0x2E] - movs r3, 0x1 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _0810062E - strh r3, [r2, 0x1C] -_0810062E: - ldrh r1, [r4, 0x2E] - movs r3, 0x2 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _0810063C - strh r3, [r2, 0x1C] -_0810063C: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08100644: .4byte gMain -_08100648: .4byte gUnknown_020391AA -_0810064C: .4byte 0x0000fffe -_08100650: .4byte gSprites -_08100654: .4byte gUnknown_020391A8 -_08100658: .4byte gTasks - thumb_func_end sub_8100494 - - thumb_func_start sub_810065C -sub_810065C: @ 810065C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r2, _08100698 @ =gSprites - ldr r0, _0810069C @ =gUnknown_020391A8 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r2, 0 - strh r2, [r0, 0x3C] - ldr r1, _081006A0 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - strh r2, [r0, 0x1C] - ldr r1, _081006A4 @ =sub_8100494 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08100698: .4byte gSprites -_0810069C: .4byte gUnknown_020391A8 -_081006A0: .4byte gTasks -_081006A4: .4byte sub_8100494 - thumb_func_end sub_810065C - - thumb_func_start sub_81006A8 -sub_81006A8: @ 81006A8 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _081006CC @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _081006C2 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081006C8 -_081006C2: - adds r0, r2, 0 - bl sub_810065C -_081006C8: - pop {r0} - bx r0 - .align 2, 0 -_081006CC: .4byte gMain - thumb_func_end sub_81006A8 - - thumb_func_start sub_81006D0 -sub_81006D0: @ 81006D0 - push {r4,r5,lr} - adds r3, r0, 0 - movs r1, 0 - adds r2, r3, 0 - adds r2, 0x84 - movs r5, 0 - ldr r4, _08100708 @ =0x000007ff -_081006DE: - adds r0, r2, r1 - strb r5, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r4 - bls _081006DE - movs r1, 0 - adds r2, r3, 0x4 - movs r3, 0 -_081006F2: - lsls r0, r1, 1 - adds r0, r2, r0 - strh r3, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x3F - bls _081006F2 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08100708: .4byte 0x000007ff - thumb_func_end sub_81006D0 - - thumb_func_start sub_810070C -sub_810070C: @ 810070C - push {r4,r5,lr} - adds r5, r0, 0 - lsls r1, 16 - movs r2, 0 - ldr r0, _0810073C @ =gMapHeader - ldr r0, [r0] - ldr r0, [r0, 0x10] - lsrs r4, r1, 12 - ldr r3, [r0, 0x8] -_0810071E: - lsls r1, r2, 1 - adds r1, r5 - adds r0, r4, r2 - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0xF - bls _0810071E - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810073C: .4byte gMapHeader - thumb_func_end sub_810070C - - thumb_func_start sub_8100740 -sub_8100740: @ 8100740 - push {r4-r7,lr} - sub sp, 0x20 - adds r7, r0, 0 - lsls r1, 16 - lsrs r2, r1, 16 - lsrs r3, r1, 26 - cmp r2, 0 - beq _08100754 - ldr r0, _08100784 @ =0x000003ff - ands r2, r0 -_08100754: - movs r5, 0 - ldr r0, _08100788 @ =gMapHeader - ldr r6, [r0] - lsls r4, r2, 5 -_0810075C: - mov r0, sp - adds r2, r0, r5 - ldr r0, [r6, 0x10] - ldr r0, [r0, 0x4] - adds r1, r4, r5 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1F - bls _0810075C - cmp r3, 0x1 - beq _081007AE - cmp r3, 0x1 - bgt _0810078C - cmp r3, 0 - beq _08100796 - b _0810086A - .align 2, 0 -_08100784: .4byte 0x000003ff -_08100788: .4byte gMapHeader -_0810078C: - cmp r3, 0x2 - beq _0810080E - cmp r3, 0x3 - beq _08100846 - b _0810086A -_08100796: - movs r5, 0 -_08100798: - adds r1, r7, r5 - mov r2, sp - adds r0, r2, r5 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1F - bls _08100798 - b _0810086A -_081007AE: - movs r5, 0 - movs r6, 0xF -_081007B2: - lsls r4, r5, 2 - adds r4, r7 - adds r5, 0x1 - lsls r3, r5, 2 - subs r0, r3, 0x1 - add r0, sp - ldrb r2, [r0] - lsrs r1, r2, 4 - adds r0, r6, 0 - ands r0, r2 - lsls r0, 4 - adds r1, r0 - strb r1, [r4] - subs r0, r3, 0x2 - add r0, sp - ldrb r2, [r0] - lsrs r1, r2, 4 - adds r0, r6, 0 - ands r0, r2 - lsls r0, 4 - adds r1, r0 - strb r1, [r4, 0x1] - subs r0, r3, 0x3 - add r0, sp - ldrb r2, [r0] - lsrs r1, r2, 4 - adds r0, r6, 0 - ands r0, r2 - lsls r0, 4 - adds r1, r0 - strb r1, [r4, 0x2] - subs r3, 0x4 - mov r1, sp - adds r0, r1, r3 - ldrb r2, [r0] - lsrs r1, r2, 4 - adds r0, r6, 0 - ands r0, r2 - lsls r0, 4 - adds r1, r0 - strb r1, [r4, 0x3] - lsls r5, 16 - lsrs r5, 16 - cmp r5, 0x7 - bls _081007B2 - b _0810086A -_0810080E: - movs r5, 0 - movs r3, 0x7 -_08100812: - lsls r2, r5, 2 - adds r2, r7 - subs r1, r3, r5 - lsls r1, 2 - mov r4, sp - adds r0, r4, r1 - ldrb r0, [r0] - strb r0, [r2] - adds r0, r1, 0x1 - add r0, sp - ldrb r0, [r0] - strb r0, [r2, 0x1] - adds r0, r1, 0x2 - add r0, sp - ldrb r0, [r0] - strb r0, [r2, 0x2] - adds r1, 0x3 - adds r0, r4, r1 - ldrb r0, [r0] - strb r0, [r2, 0x3] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x7 - bls _08100812 - b _0810086A -_08100846: - movs r5, 0 - movs r4, 0x1F - movs r6, 0xF -_0810084C: - adds r3, r7, r5 - subs r0, r4, r5 - add r0, sp - ldrb r2, [r0] - lsrs r1, r2, 4 - adds r0, r6, 0 - ands r0, r2 - lsls r0, 4 - adds r1, r0 - strb r1, [r3] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1F - bls _0810084C -_0810086A: - add sp, 0x20 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8100740 - - thumb_func_start sub_8100874 -sub_8100874: @ 8100874 - push {r4,r5,lr} - adds r5, r0, 0 - movs r4, 0 -_0810087A: - lsls r0, r4, 5 - adds r0, 0x84 - adds r0, r5, r0 - lsls r2, r4, 1 - adds r1, r5, 0x4 - adds r1, r2 - ldrh r1, [r1] - bl sub_8100740 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x3F - bls _0810087A - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8100874 - - thumb_func_start sub_810089C -sub_810089C: @ 810089C - lsls r0, 16 - ldr r1, _081008B4 @ =gMapHeader - ldr r1, [r1] - ldr r1, [r1, 0x14] - ldr r1, [r1, 0xC] - lsrs r0, 15 - adds r0, r1 - ldrh r1, [r0] - ldr r0, _081008B8 @ =0x00000fff - ands r0, r1 - bx lr - .align 2, 0 -_081008B4: .4byte gMapHeader -_081008B8: .4byte 0x00000fff - thumb_func_end sub_810089C - - thumb_func_start sub_81008BC -sub_81008BC: @ 81008BC - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r0 - ldr r0, [r0] - ldrb r0, [r0, 0x12] - movs r6, 0 - ldr r1, _0810092C @ =gUnknown_083EC860 - lsls r5, r0, 4 - adds r0, r5, r1 - ldrb r0, [r0, 0xC] - cmp r6, r0 - bcs _08100920 - adds r7, r1, 0 -_081008D8: - mov r4, r8 - ldm r4!, {r1} - adds r0, r7, 0x4 - adds r0, r5, r0 - ldr r0, [r0] - adds r0, r6 - ldrb r0, [r0] - ldr r1, [r1, 0x1C] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - adds r1, r7, 0 - adds r1, 0x8 - adds r1, r5, r1 - ldr r1, [r1] - adds r1, r6 - lsls r0, 3 - ldrb r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - bl sub_810089C - adds r2, r5, r7 - ldr r1, [r2] - adds r1, r6 - ldrb r1, [r1] - lsls r1, 1 - adds r4, r1 - strh r0, [r4] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r2, [r2, 0xC] - cmp r6, r2 - bcc _081008D8 -_08100920: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810092C: .4byte gUnknown_083EC860 - thumb_func_end sub_81008BC - - thumb_func_start sub_8100930 -sub_8100930: @ 8100930 - push {r4,r5,lr} - lsls r0, 24 - ldr r3, _08100998 @ =gUnknown_020391AC - movs r1, 0 - strb r1, [r3] - ldrb r2, [r3, 0x1] - subs r1, 0x4 - ands r1, r2 - movs r4, 0xD - negs r4, r4 - ands r1, r4 - movs r2, 0x11 - negs r2, r2 - ands r1, r2 - subs r2, 0x10 - ands r1, r2 - strb r1, [r3, 0x1] - ldr r1, _0810099C @ =gUnknown_083EC900 - lsrs r0, 22 - adds r0, r1 - ldrb r1, [r0] - movs r5, 0x3F - lsls r1, 6 - strb r1, [r3, 0x1] - ldrh r2, [r3, 0x2] - ldr r1, _081009A0 @ =0xfffffe00 - ands r1, r2 - strh r1, [r3, 0x2] - ldrb r2, [r3, 0x3] - movs r1, 0x3F - negs r1, r1 - ands r1, r2 - strb r1, [r3, 0x3] - ldrb r0, [r0, 0x1] - lsls r0, 6 - ands r5, r1 - orrs r5, r0 - strb r5, [r3, 0x3] - ldrh r1, [r3, 0x4] - ldr r0, _081009A4 @ =0xfffffc00 - ands r0, r1 - strh r0, [r3, 0x4] - ldrb r0, [r3, 0x5] - ands r4, r0 - movs r0, 0x4 - orrs r4, r0 - movs r0, 0xF - ands r4, r0 - strb r4, [r3, 0x5] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08100998: .4byte gUnknown_020391AC -_0810099C: .4byte gUnknown_083EC900 -_081009A0: .4byte 0xfffffe00 -_081009A4: .4byte 0xfffffc00 - thumb_func_end sub_8100930 - - thumb_func_start sub_81009A8 -sub_81009A8: @ 81009A8 - movs r1, 0 - strh r1, [r0, 0x32] - strh r1, [r0, 0x34] - strh r1, [r0, 0x36] - strh r1, [r0, 0x38] - strh r1, [r0, 0x3A] - strh r1, [r0, 0x3C] - ldr r1, _081009BC @ =sub_81009C0 - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_081009BC: .4byte sub_81009C0 - thumb_func_end sub_81009A8 - - thumb_func_start sub_81009C0 -sub_81009C0: @ 81009C0 - push {lr} - adds r2, r0, 0 - movs r1, 0x3C - ldrsh r0, [r2, r1] - cmp r0, 0 - bne _081009FA - movs r1, 0x3A - ldrsh r0, [r2, r1] - cmp r0, 0xE - bgt _081009E2 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - b _081009EC -_081009E2: - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 -_081009EC: - strb r0, [r3] - ldrh r0, [r2, 0x3A] - adds r0, 0x1 - movs r1, 0x1F - ands r0, r1 - strh r0, [r2, 0x3A] - b _08100A06 -_081009FA: - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_08100A06: - pop {r0} - bx r0 - thumb_func_end sub_81009C0 - - thumb_func_start sub_8100A0C -sub_8100A0C: @ 8100A0C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_8100D38 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08100A44 - movs r0, 0x1 - movs r1, 0 - bl fade_screen - ldr r1, _08100A3C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xC] - ldr r1, _08100A40 @ =sub_8100E70 - str r1, [r0] - b _08100A50 - .align 2, 0 -_08100A3C: .4byte gTasks -_08100A40: .4byte sub_8100E70 -_08100A44: - ldr r1, _08100A58 @ =gSecretBaseText_NoDecorInUse - ldr r2, _08100A5C @ =sub_80FE428 - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField -_08100A50: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08100A58: .4byte gSecretBaseText_NoDecorInUse -_08100A5C: .4byte sub_80FE428 - thumb_func_end sub_8100A0C - - thumb_func_start sub_8100A60 -sub_8100A60: @ 8100A60 - lsls r0, 24 - lsrs r0, 24 - ldr r3, _08100A78 @ =0x0201f000 - ldr r1, [r3] - adds r1, r0 - movs r2, 0 - strb r2, [r1] - ldr r1, [r3, 0x4] - adds r1, r0 - strb r2, [r1] - bx lr - .align 2, 0 -_08100A78: .4byte 0x0201f000 - thumb_func_end sub_8100A60 - - thumb_func_start sub_8100A7C -sub_8100A7C: @ 8100A7C - push {r4-r6,lr} - ldr r6, _08100A9C @ =gSpecialVar_0x8005 - movs r0, 0 - strh r0, [r6] - ldr r2, _08100AA0 @ =gScriptResult - strh r0, [r2] - ldr r4, _08100AA4 @ =gSpecialVar_0x8004 - ldr r1, _08100AA8 @ =gUnknown_02039234 - ldrh r0, [r4] - ldrb r1, [r1] - cmp r0, r1 - bne _08100AB8 - movs r0, 0x1 - strh r0, [r2] - b _08100B0A - .align 2, 0 -_08100A9C: .4byte gSpecialVar_0x8005 -_08100AA0: .4byte gScriptResult -_08100AA4: .4byte gSpecialVar_0x8004 -_08100AA8: .4byte gUnknown_02039234 -_08100AAC: - ldr r1, _08100AB4 @ =gSpecialVar_0x8006 - ldrb r0, [r2] - strh r0, [r1] - b _08100B0A - .align 2, 0 -_08100AB4: .4byte gSpecialVar_0x8006 -_08100AB8: - ldr r3, _08100B10 @ =gDecorations - ldr r2, _08100B14 @ =0x0201f000 - ldr r1, _08100B18 @ =gUnknown_020391B4 - ldrh r0, [r4] - lsls r0, 3 - adds r4, r0, r1 - ldrb r1, [r4] - ldr r0, [r2] - adds r0, r1 - ldrb r0, [r0] - lsls r0, 5 - adds r0, r3 - ldrb r0, [r0, 0x11] - cmp r0, 0x4 - bne _08100B0A - ldrh r0, [r4, 0x4] - strh r0, [r6] - ldrb r0, [r4] - bl sub_8100A60 - movs r1, 0 - ldr r0, _08100B1C @ =gMapHeader - ldr r0, [r0, 0x4] - ldrb r2, [r0] - cmp r1, r2 - bcs _08100B0A - ldr r5, [r0, 0x4] - ldrh r4, [r6] - adds r3, r2, 0 -_08100AF2: - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r2, r0, r5 - ldrh r0, [r2, 0x14] - cmp r0, r4 - beq _08100AAC - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r3 - bcc _08100AF2 -_08100B0A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08100B10: .4byte gDecorations -_08100B14: .4byte 0x0201f000 -_08100B18: .4byte gUnknown_020391B4 -_08100B1C: .4byte gMapHeader - thumb_func_end sub_8100A7C - - thumb_func_start sub_8100B20 -sub_8100B20: @ 8100B20 - push {r4-r6,lr} - movs r2, 0 - ldr r0, _08100B4C @ =gMapHeader - ldr r0, [r0, 0x4] - ldrb r1, [r0] - cmp r2, r1 - bcs _08100B64 - adds r3, r0, 0 - ldr r5, [r3, 0x4] - ldr r0, _08100B50 @ =gSpecialVar_0x8004 - ldrh r4, [r0] - ldr r6, _08100B54 @ =gSpecialVar_0x8005 -_08100B38: - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - adds r1, r0, r5 - ldrh r0, [r1, 0x14] - cmp r0, r4 - bne _08100B58 - ldrb r0, [r1] - strh r0, [r6] - b _08100B64 - .align 2, 0 -_08100B4C: .4byte gMapHeader -_08100B50: .4byte gSpecialVar_0x8004 -_08100B54: .4byte gSpecialVar_0x8005 -_08100B58: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - ldrb r0, [r3] - cmp r2, r0 - bcc _08100B38 -_08100B64: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8100B20 - - thumb_func_start sub_8100B6C -sub_8100B6C: @ 8100B6C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - movs r7, 0 - b _08100C64 -_08100B7C: - lsls r3, r7, 3 - ldr r0, _08100BE0 @ =gUnknown_020391B4 - adds r4, r3, r0 - ldrb r1, [r4] - ldr r2, _08100BE4 @ =0x0201f000 - ldr r0, [r2] - adds r0, r1 - ldrb r6, [r0] - lsls r0, r6, 5 - ldr r5, _08100BE8 @ =gDecorations - adds r0, r5 - ldrb r2, [r0, 0x11] - ldr r5, _08100BE4 @ =0x0201f000 - ldr r0, [r5, 0x4] - adds r0, r1 - ldrb r0, [r0] - lsrs r1, r0, 4 - mov r9, r1 - movs r5, 0xF - mov r10, r5 - mov r1, r10 - ands r1, r0 - mov r10, r1 - adds r5, r3, 0 - adds r3, r7, 0x1 - str r3, [sp] - cmp r2, 0x4 - beq _08100C5E - cmp r6, 0x29 - bne _08100BD0 - mov r0, r9 - adds r0, 0x7 - adds r1, 0x7 - bl MapGridGetMetatileIdAt - movs r1, 0xA3 - lsls r1, 2 - cmp r0, r1 - bne _08100BD0 - ldrb r0, [r4, 0x2] - adds r0, 0x1 - strb r0, [r4, 0x2] -_08100BD0: - movs r6, 0 - ldr r1, _08100BE0 @ =gUnknown_020391B4 - adds r2, r5, 0 - adds r0, r5, r1 - adds r3, r7, 0x1 - str r3, [sp] - b _08100C4E - .align 2, 0 -_08100BE0: .4byte gUnknown_020391B4 -_08100BE4: .4byte 0x0201f000 -_08100BE8: .4byte gDecorations -_08100BEC: - movs r4, 0 - adds r0, r2, r1 - adds r7, r6, 0x1 - str r7, [sp, 0x4] - ldrb r0, [r0, 0x1] - cmp r4, r0 - bcs _08100C42 - ldr r0, _08100C7C @ =gUnknown_020391B4 - adds r0, r5 - mov r8, r0 - subs r1, r6, 0x7 - str r1, [sp, 0x8] -_08100C04: - adds r0, r4, 0x7 - add r0, r9 - ldr r1, _08100C80 @ =gMapHeader - ldr r3, [r1] - mov r7, r10 - subs r2, r7, r6 - ldr r1, [r3] - muls r2, r1 - mov r7, r9 - adds r1, r7, r4 - adds r1, r2 - ldr r2, [r3, 0xC] - lsls r1, 1 - adds r1, r2 - ldrh r1, [r1] - movs r3, 0xC0 - lsls r3, 6 - adds r2, r3, 0 - orrs r2, r1 - mov r7, r10 - ldr r3, [sp, 0x8] - subs r1, r7, r3 - bl MapGridSetMetatileEntryAt - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - mov r7, r8 - ldrb r7, [r7, 0x1] - cmp r4, r7 - bcc _08100C04 -_08100C42: - ldr r1, [sp, 0x4] - lsls r0, r1, 24 - lsrs r6, r0, 24 - ldr r1, _08100C7C @ =gUnknown_020391B4 - adds r2, r5, 0 - adds r0, r5, r1 -_08100C4E: - ldrb r0, [r0, 0x2] - cmp r6, r0 - bcc _08100BEC - ldr r2, _08100C7C @ =gUnknown_020391B4 - adds r0, r5, r2 - ldrb r0, [r0] - bl sub_8100A60 -_08100C5E: - ldr r3, [sp] - lsls r0, r3, 24 - lsrs r7, r0, 24 -_08100C64: - ldr r0, _08100C84 @ =gUnknown_02039234 - ldrb r0, [r0] - cmp r7, r0 - bcc _08100B7C - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08100C7C: .4byte gUnknown_020391B4 -_08100C80: .4byte gMapHeader -_08100C84: .4byte gUnknown_02039234 - thumb_func_end sub_8100B6C - - thumb_func_start sub_8100C88 -sub_8100C88: @ 8100C88 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _08100CAC @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0xC - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _08100CC4 - cmp r0, 0x1 - bgt _08100CB0 - cmp r0, 0 - beq _08100CBA - b _08100D24 - .align 2, 0 -_08100CAC: .4byte gTasks -_08100CB0: - cmp r0, 0x2 - beq _08100CF4 - cmp r0, 0x3 - beq _08100D08 - b _08100D24 -_08100CBA: - bl sub_8100B6C - movs r0, 0x1 - strh r0, [r5, 0xC] - b _08100D24 -_08100CC4: - ldr r0, _08100CEC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08100D24 - bl DrawWholeMapView - ldr r0, _08100CF0 @ =gUnknown_081A2F8A - bl ScriptContext1_SetupScript - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - movs r0, 0x2 - strh r0, [r5, 0xC] - b _08100D24 - .align 2, 0 -_08100CEC: .4byte gPaletteFade -_08100CF0: .4byte gUnknown_081A2F8A -_08100CF4: - bl ScriptContext2_Enable - adds r0, r4, 0 - bl sub_80FED90 - bl pal_fill_black - movs r0, 0x3 - strh r0, [r5, 0xC] - b _08100D24 -_08100D08: - bl sub_807D770 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08100D24 - ldr r0, _08100D2C @ =0x0000ffff - strh r0, [r5, 0x22] - ldr r1, _08100D30 @ =gSecretBaseText_DecorReturned - ldr r2, _08100D34 @ =sub_81010F0 - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField -_08100D24: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08100D2C: .4byte 0x0000ffff -_08100D30: .4byte gSecretBaseText_DecorReturned -_08100D34: .4byte sub_81010F0 - thumb_func_end sub_8100C88 - - thumb_func_start sub_8100D38 -sub_8100D38: @ 8100D38 - push {r4,r5,lr} - lsls r0, 24 - lsrs r3, r0, 24 - movs r2, 0 - ldr r0, _08100D68 @ =0x0201f000 - adds r4, r0, 0 - ldrb r0, [r4, 0x8] - cmp r2, r0 - bcs _08100D7C - adds r5, r4, 0 - ldr r1, _08100D6C @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r1, r0, r1 -_08100D56: - ldr r0, [r5] - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _08100D70 - strh r2, [r1, 0x22] - movs r0, 0x1 - b _08100D7E - .align 2, 0 -_08100D68: .4byte 0x0201f000 -_08100D6C: .4byte gTasks -_08100D70: - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldrb r0, [r4, 0x8] - cmp r2, r0 - bcc _08100D56 -_08100D7C: - movs r0, 0 -_08100D7E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8100D38 - - thumb_func_start SetUpPuttingAwayDecorationPlayerAvatar -SetUpPuttingAwayDecorationPlayerAvatar: @ 8100D84 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - bl player_get_direction_lower_nybble - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r3, _08100DD8 @ =gUnknown_020391A8 - ldr r2, _08100DDC @ =gSprites - ldr r4, _08100DE0 @ =gUnknown_03004880 - ldr r1, [r4, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x2E] - strb r0, [r3] - bl sub_81016C8 - ldr r0, _08100DE4 @ =gSpriteTemplate_83ECA88 - movs r1, 0x78 - movs r2, 0x50 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - str r0, [r4, 0x4] - ldr r0, _08100DE8 @ =gSaveBlock2 - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _08100DF0 - ldr r1, _08100DEC @ =SpriteCallbackDummy - str r0, [sp] - movs r0, 0xC1 - b _08100DF8 - .align 2, 0 -_08100DD8: .4byte gUnknown_020391A8 -_08100DDC: .4byte gSprites -_08100DE0: .4byte gUnknown_03004880 -_08100DE4: .4byte gSpriteTemplate_83ECA88 -_08100DE8: .4byte gSaveBlock2 -_08100DEC: .4byte SpriteCallbackDummy -_08100DF0: - ldr r1, _08100E5C @ =SpriteCallbackDummy - movs r0, 0 - str r0, [sp] - movs r0, 0xC2 -_08100DF8: - movs r2, 0x88 - movs r3, 0x48 - bl AddPseudoFieldObject - ldr r1, _08100E60 @ =gUnknown_020391A9 - strb r0, [r1] - ldr r6, _08100E64 @ =gSprites - ldr r0, _08100E60 @ =gUnknown_020391A9 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r2, [r1, 0x5] - movs r4, 0xD - negs r4, r4 - adds r0, r4, 0 - ands r0, r2 - movs r2, 0x4 - mov r8, r2 - mov r2, r8 - orrs r0, r2 - strb r0, [r1, 0x5] - ldr r5, _08100E68 @ =gUnknown_020391A8 - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - bl DestroySprite - ldr r0, _08100E6C @ =gUnknown_03004880 - ldr r0, [r0, 0x4] - strb r0, [r5] - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r1, [r0, 0x5] - ands r4, r1 - mov r1, r8 - orrs r4, r1 - strb r4, [r0, 0x5] - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08100E5C: .4byte SpriteCallbackDummy -_08100E60: .4byte gUnknown_020391A9 -_08100E64: .4byte gSprites -_08100E68: .4byte gUnknown_020391A8 -_08100E6C: .4byte gUnknown_03004880 - thumb_func_end SetUpPuttingAwayDecorationPlayerAvatar - - thumb_func_start sub_8100E70 -sub_8100E70: @ 8100E70 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _08100E94 @ =gTasks + 0x8 - adds r4, r0, r1 - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _08100EC4 - cmp r0, 0x1 - bgt _08100E98 - cmp r0, 0 - beq _08100E9E - b _08100EE6 - .align 2, 0 -_08100E94: .4byte gTasks + 0x8 -_08100E98: - cmp r0, 0x2 - beq _08100ED2 - b _08100EE6 -_08100E9E: - ldr r0, _08100EC0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08100EE6 - adds r0, r5, 0 - bl sub_80FF0E0 - movs r0, 0x1 - strh r0, [r4, 0x4] - strh r0, [r4, 0xC] - strh r0, [r4, 0xA] - bl sub_8072DEC - b _08100EE6 - .align 2, 0 -_08100EC0: .4byte gPaletteFade -_08100EC4: - bl SetUpPuttingAwayDecorationPlayerAvatar - bl pal_fill_black - movs r0, 0x2 - strh r0, [r4, 0x4] - b _08100EE6 -_08100ED2: - bl sub_807D770 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08100EE6 - strh r0, [r4, 0x18] - adds r0, r5, 0 - bl sub_8100EEC -_08100EE6: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8100E70 - - thumb_func_start sub_8100EEC -sub_8100EEC: @ 8100EEC - push {r4-r6,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r4, _08100F70 @ =gSprites - ldr r3, _08100F74 @ =gUnknown_020391A8 - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r6, 0 - strh r6, [r0, 0x3C] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r4, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _08100F78 @ =sub_8101698 - str r1, [r0] - ldr r2, _08100F7C @ =gUnknown_020391A9 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x88 - strh r1, [r0, 0x20] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x48 - strh r1, [r0, 0x22] - ldr r1, _08100F80 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - strh r6, [r0, 0x1C] - ldr r1, _08100F84 @ =sub_8100494 - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08100F70: .4byte gSprites -_08100F74: .4byte gUnknown_020391A8 -_08100F78: .4byte sub_8101698 -_08100F7C: .4byte gUnknown_020391A9 -_08100F80: .4byte gTasks -_08100F84: .4byte sub_8100494 - thumb_func_end sub_8100EEC - - thumb_func_start sub_8100F88 -sub_8100F88: @ 8100F88 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _08100FB0 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x1C] - bl sub_810045C - adds r0, r4, 0 - bl sub_8101024 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08100FB0: .4byte gTasks - thumb_func_end sub_8100F88 - - thumb_func_start sub_8100FB4 -sub_8100FB4: @ 8100FB4 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _0810100C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x1C] - bl sub_810045C - ldr r3, _08101010 @ =gSprites - ldr r5, _08101014 @ =gUnknown_020391A8 - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r3, 0x1C - adds r0, r3 - ldr r1, _08101018 @ =SpriteCallbackDummy - str r1, [r0] - ldr r1, _0810101C @ =gSecretBaseText_StopPuttingAwayDecor - ldr r2, _08101020 @ =sub_810156C - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810100C: .4byte gTasks -_08101010: .4byte gSprites -_08101014: .4byte gUnknown_020391A8 -_08101018: .4byte SpriteCallbackDummy -_0810101C: .4byte gSecretBaseText_StopPuttingAwayDecor -_08101020: .4byte sub_810156C - thumb_func_end sub_8100FB4 - - thumb_func_start sub_8101024 -sub_8101024: @ 8101024 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - bl sub_8101460 - ldr r0, _08101040 @ =gUnknown_02039234 - ldrb r0, [r0] - cmp r0, 0 - beq _0810104C - ldr r1, _08101044 @ =gSecretBaseText_ReturnDecor - ldr r2, _08101048 @ =sub_8101518 - b _081010B0 - .align 2, 0 -_08101040: .4byte gUnknown_02039234 -_08101044: .4byte gSecretBaseText_ReturnDecor -_08101048: .4byte sub_8101518 -_0810104C: - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - ldr r0, _081010BC @ =gTasks + 0x8 - adds r1, r0 - movs r2, 0 - ldrsh r0, [r1, r2] - movs r2, 0x2 - ldrsh r1, [r1, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl MetatileBehavior_IsSecretBasePC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08101082 - adds r0, r4, 0 - bl sub_805738C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081010D4 -_08101082: - ldr r3, _081010C0 @ =gSprites - ldr r4, _081010C4 @ =gUnknown_020391A8 - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r3, 0x1C - adds r0, r3 - ldr r1, _081010C8 @ =SpriteCallbackDummy - str r1, [r0] - ldr r1, _081010CC @ =gSecretBaseText_StopPuttingAwayDecor - ldr r2, _081010D0 @ =sub_810156C -_081010B0: - adds r0, r5, 0 - movs r3, 0 - bl DisplayItemMessageOnField - b _081010E0 - .align 2, 0 -_081010BC: .4byte gTasks + 0x8 -_081010C0: .4byte gSprites -_081010C4: .4byte gUnknown_020391A8 -_081010C8: .4byte SpriteCallbackDummy -_081010CC: .4byte gSecretBaseText_StopPuttingAwayDecor -_081010D0: .4byte sub_810156C -_081010D4: - ldr r1, _081010E8 @ =gSecretBaseText_NoDecor - ldr r2, _081010EC @ =sub_81010F0 - adds r0, r5, 0 - movs r3, 0 - bl DisplayItemMessageOnField -_081010E0: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081010E8: .4byte gSecretBaseText_NoDecor -_081010EC: .4byte sub_81010F0 - thumb_func_end sub_8101024 - - thumb_func_start sub_81010F0 -sub_81010F0: @ 81010F0 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _08101114 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0810110A - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08101110 -_0810110A: - adds r0, r2, 0 - bl sub_8100EEC -_08101110: - pop {r0} - bx r0 - .align 2, 0 -_08101114: .4byte gMain - thumb_func_end sub_81010F0 - - thumb_func_start sub_8101118 -sub_8101118: @ 8101118 - push {lr} - adds r2, r1, 0 - lsls r0, 24 - ldr r1, _08101130 @ =gDecorations - lsrs r0, 19 - adds r0, r1 - ldrb r1, [r0, 0x12] - cmp r1, 0 - bne _08101134 - movs r0, 0x1 - strb r0, [r2, 0x1] - b _08101192 - .align 2, 0 -_08101130: .4byte gDecorations -_08101134: - cmp r1, 0x1 - bne _08101140 - movs r0, 0x2 - strb r0, [r2, 0x1] - strb r1, [r2, 0x2] - b _08101194 -_08101140: - cmp r1, 0x2 - bne _0810114C - movs r0, 0x3 - strb r0, [r2, 0x1] - movs r0, 0x1 - b _08101192 -_0810114C: - cmp r1, 0x3 - bne _08101154 - movs r0, 0x4 - b _0810118E -_08101154: - cmp r1, 0x4 - bne _0810115E - movs r0, 0x2 - strb r0, [r2, 0x1] - b _08101192 -_0810115E: - cmp r1, 0x5 - bne _08101166 - movs r0, 0x1 - b _0810118E -_08101166: - cmp r1, 0x6 - bne _08101172 - movs r0, 0x1 - strb r0, [r2, 0x1] - movs r0, 0x3 - b _08101192 -_08101172: - cmp r1, 0x7 - bne _0810117E - movs r0, 0x2 - strb r0, [r2, 0x1] - movs r0, 0x4 - b _08101192 -_0810117E: - cmp r1, 0x8 - bne _08101188 - movs r0, 0x3 - strb r0, [r2, 0x1] - b _08101192 -_08101188: - cmp r1, 0x9 - bne _08101194 - movs r0, 0x3 -_0810118E: - strb r0, [r2, 0x1] - movs r0, 0x2 -_08101192: - strb r0, [r2, 0x2] -_08101194: - pop {r0} - bx r0 - thumb_func_end sub_8101118 - - thumb_func_start sub_8101198 -sub_8101198: @ 8101198 - push {r4-r6,lr} - lsls r0, 24 - lsls r1, 24 - ldr r5, _081011F0 @ =gSprites - ldr r6, _081011F4 @ =gUnknown_020391A8 - ldrb r3, [r6] - lsls r2, r3, 4 - adds r2, r3 - lsls r2, 2 - adds r2, r5 - adds r2, 0x3E - ldrb r3, [r2] - movs r4, 0x4 - orrs r3, r4 - strb r3, [r2] - ldrb r3, [r6] - lsls r2, r3, 4 - adds r2, r3 - lsls r2, 2 - adds r3, r5, 0 - adds r3, 0x1C - adds r2, r3 - ldr r3, _081011F8 @ =SpriteCallbackDummy - str r3, [r2] - ldr r4, _081011FC @ =gUnknown_020391A9 - ldrb r3, [r4] - lsls r2, r3, 4 - adds r2, r3 - lsls r2, 2 - adds r2, r5 - lsrs r0, 20 - adds r0, 0x88 - strh r0, [r2, 0x20] - ldrb r2, [r4] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r5 - lsrs r1, 20 - adds r1, 0x48 - strh r1, [r0, 0x22] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081011F0: .4byte gSprites -_081011F4: .4byte gUnknown_020391A8 -_081011F8: .4byte SpriteCallbackDummy -_081011FC: .4byte gUnknown_020391A9 - thumb_func_end sub_8101198 - - thumb_func_start sub_8101200 -sub_8101200: @ 8101200 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _0810128C @ =gTasks - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - adds r2, r3 - ldrb r0, [r2, 0x8] - subs r0, 0x7 - lsls r0, 24 - lsrs r7, r0, 24 - ldrb r0, [r2, 0xA] - subs r0, 0x7 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r2, _08101290 @ =0x0201f000 - ldr r0, [r2, 0x4] - adds r0, r1 - ldrb r0, [r0] - lsrs r4, r0, 4 - movs r5, 0xF - ands r5, r0 - ldr r0, [r2] - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x29 - bne _0810125A - adds r0, r4, 0x7 - adds r1, r5, 0x7 - bl MapGridGetMetatileIdAt - movs r1, 0xA3 - lsls r1, 2 - cmp r0, r1 - bne _0810125A - ldrb r0, [r6, 0x2] - subs r0, 0x1 - strb r0, [r6, 0x2] -_0810125A: - cmp r7, r4 - bcc _08101294 - ldrb r1, [r6, 0x1] - adds r0, r4, r1 - cmp r7, r0 - bge _08101294 - ldrb r0, [r6, 0x2] - subs r0, r5, r0 - cmp r8, r0 - ble _08101294 - cmp r8, r5 - bhi _08101294 - subs r0, r7, r4 - adds r0, 0x1 - subs r0, r1, r0 - lsls r0, 24 - lsrs r0, 24 - mov r2, r8 - subs r1, r5, r2 - lsls r1, 24 - lsrs r1, 24 - bl sub_8101198 - movs r0, 0x1 - b _08101296 - .align 2, 0 -_0810128C: .4byte gTasks -_08101290: .4byte 0x0201f000 -_08101294: - movs r0, 0 -_08101296: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8101200 - - thumb_func_start sub_81012A0 -sub_81012A0: @ 81012A0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r2, _0810130C @ =0x0201f000 - ldr r3, _08101310 @ =gUnknown_020391B4 - ldr r0, _08101314 @ =gUnknown_02039234 - ldrb r0, [r0] - lsls r0, 3 - adds r0, r3 - ldrb r1, [r0] - ldr r0, [r2, 0x4] - adds r0, r1 - ldrb r0, [r0] - lsrs r7, r0, 4 - movs r6, 0xF - ands r6, r0 - movs r5, 0 - ldr r0, _08101318 @ =gSaveBlock1 - mov r8, r0 - mov r9, r3 -_081012CA: - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 3 - mov r2, r8 - adds r1, r0, r2 - ldr r2, _0810131C @ =0x00000c24 - adds r0, r1, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, r7 - bne _08101328 - ldr r2, _08101320 @ =0x00000c26 - adds r0, r1, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, r6 - bne _08101328 - ldr r0, _08101324 @ =0x00000c34 - adds r4, r1, r0 - ldrh r0, [r4] - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _08101328 - ldr r0, _08101314 @ =gUnknown_02039234 - ldrb r0, [r0] - lsls r0, 3 - add r0, r9 - ldrh r1, [r4] - strh r1, [r0, 0x4] - b _08101332 - .align 2, 0 -_0810130C: .4byte 0x0201f000 -_08101310: .4byte gUnknown_020391B4 -_08101314: .4byte gUnknown_02039234 -_08101318: .4byte gSaveBlock1 -_0810131C: .4byte 0x00000c24 -_08101320: .4byte 0x00000c26 -_08101324: .4byte 0x00000c34 -_08101328: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x3F - bls _081012CA -_08101332: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81012A0 - - thumb_func_start sub_8101340 -sub_8101340: @ 8101340 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - movs r6, 0 - b _081013A2 -_0810134A: - ldr r0, [r0] - adds r1, r0, r6 - ldrb r0, [r1] - cmp r0, 0 - beq _0810139C - ldr r0, _08101390 @ =gDecorations - ldrb r2, [r1] - lsls r1, r2, 5 - adds r1, r0 - ldrb r0, [r1, 0x11] - cmp r0, 0x4 - bne _0810139C - ldr r5, _08101394 @ =gUnknown_020391B4 - adds r0, r2, 0 - adds r1, r5, 0 - bl sub_8101118 - lsls r1, r6, 24 - lsrs r1, 24 - adds r0, r7, 0 - adds r2, r5, 0 - bl sub_8101200 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bne _0810139C - strb r6, [r5] - bl sub_81012A0 - ldr r0, _08101398 @ =gUnknown_02039234 - strb r4, [r0] - movs r0, 0x1 - b _081013AC - .align 2, 0 -_08101390: .4byte gDecorations -_08101394: .4byte gUnknown_020391B4 -_08101398: .4byte gUnknown_02039234 -_0810139C: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_081013A2: - ldr r0, _081013B4 @ =0x0201f000 - ldrb r1, [r0, 0x8] - cmp r6, r1 - bcc _0810134A - movs r0, 0 -_081013AC: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_081013B4: .4byte 0x0201f000 - thumb_func_end sub_8101340 - - thumb_func_start sub_81013B8 -sub_81013B8: @ 81013B8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - lsls r2, 24 - lsrs r2, 24 - mov r9, r2 - lsls r3, 24 - lsrs r3, 24 - mov r8, r3 - movs r4, 0 - ldr r7, _08101450 @ =0x0201f000 - ldrb r0, [r7, 0x8] - cmp r4, r0 - bcs _0810143E - adds r6, r7, 0 - ldr r5, _08101454 @ =gUnknown_02039234 -_081013EA: - ldr r0, [r6] - adds r0, r4 - ldrb r1, [r0] - ldr r0, [r6, 0x4] - adds r0, r4 - ldrb r0, [r0] - lsrs r3, r0, 4 - movs r2, 0xF - ands r2, r0 - cmp r1, 0 - beq _08101432 - ldr r0, _08101458 @ =gDecorations - lsls r1, 5 - adds r1, r0 - ldrb r0, [r1, 0x11] - cmp r0, 0x4 - bne _08101432 - ldr r0, [sp] - cmp r0, r3 - bhi _08101432 - cmp r10, r2 - bhi _08101432 - cmp r9, r3 - bcc _08101432 - cmp r8, r2 - bcc _08101432 - ldr r0, _0810145C @ =gUnknown_020391B4 - ldrb r1, [r5] - lsls r1, 3 - adds r1, r0 - strb r4, [r1] - bl sub_81012A0 - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] -_08101432: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldrb r0, [r7, 0x8] - cmp r4, r0 - bcc _081013EA -_0810143E: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08101450: .4byte 0x0201f000 -_08101454: .4byte gUnknown_02039234 -_08101458: .4byte gDecorations -_0810145C: .4byte gUnknown_020391B4 - thumb_func_end sub_81013B8 - - thumb_func_start sub_8101460 -sub_8101460: @ 8101460 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r4, _081014B8 @ =gUnknown_02039234 - movs r0, 0 - strb r0, [r4] - adds r0, r6, 0 - bl sub_8101340 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08101504 - movs r5, 0 - ldr r0, _081014BC @ =0x0201f000 - ldrb r1, [r0, 0x8] - cmp r5, r1 - bcs _081014D2 - adds r7, r4, 0 -_08101486: - ldr r0, [r0] - adds r0, r5 - ldrb r1, [r0] - cmp r1, 0 - beq _081014C4 - ldr r4, _081014C0 @ =gUnknown_020391B4 - adds r0, r1, 0 - adds r1, r4, 0 - bl sub_8101118 - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_8101200 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081014C4 - strb r5, [r4] - ldrb r0, [r7] - adds r0, 0x1 - strb r0, [r7] - b _081014D2 - .align 2, 0 -_081014B8: .4byte gUnknown_02039234 -_081014BC: .4byte 0x0201f000 -_081014C0: .4byte gUnknown_020391B4 -_081014C4: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _0810150C @ =0x0201f000 - ldrb r1, [r0, 0x8] - cmp r5, r1 - bcc _08101486 -_081014D2: - ldr r0, _08101510 @ =gUnknown_02039234 - ldrb r0, [r0] - cmp r0, 0 - beq _08101504 - ldr r0, _0810150C @ =0x0201f000 - ldr r2, _08101514 @ =gUnknown_020391B4 - ldrb r1, [r2] - ldr r0, [r0, 0x4] - adds r0, r1 - ldrb r1, [r0] - lsrs r0, r1, 4 - movs r3, 0xF - ands r3, r1 - ldrb r1, [r2, 0x2] - subs r1, r3, r1 - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - ldrb r2, [r2, 0x1] - adds r2, r0 - subs r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - bl sub_81013B8 -_08101504: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810150C: .4byte 0x0201f000 -_08101510: .4byte gUnknown_02039234 -_08101514: .4byte gUnknown_020391B4 - thumb_func_end sub_8101460 - - thumb_func_start sub_8101518 -sub_8101518: @ 8101518 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x14 - movs r1, 0x8 - movs r2, 0x1 - bl DisplayYesNoMenu - ldr r1, _08101538 @ =gUnknown_083EC9CC - adds r0, r4, 0 - bl sub_80F914C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08101538: .4byte gUnknown_083EC9CC - thumb_func_end sub_8101518 - - thumb_func_start sub_810153C -sub_810153C: @ 810153C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - movs r1, 0 - bl fade_screen - ldr r1, _08101564 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xC] - ldr r1, _08101568 @ =sub_8100C88 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08101564: .4byte gTasks -_08101568: .4byte sub_8100C88 - thumb_func_end sub_810153C - - thumb_func_start sub_810156C -sub_810156C: @ 810156C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x14 - movs r1, 0x8 - movs r2, 0x1 - bl DisplayYesNoMenu - ldr r1, _0810158C @ =gUnknown_083EC9D4 - adds r0, r4, 0 - bl sub_80F914C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810158C: .4byte gUnknown_083EC9D4 - thumb_func_end sub_810156C - - thumb_func_start sub_8101590 -sub_8101590: @ 8101590 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - adds r0, r4, 0 - bl sub_81015B0 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8101590 - - thumb_func_start sub_81015B0 -sub_81015B0: @ 81015B0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - movs r1, 0 - bl fade_screen - ldr r1, _081015D8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xC] - ldr r1, _081015DC @ =sub_81015E0 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081015D8: .4byte gTasks -_081015DC: .4byte sub_81015E0 - thumb_func_end sub_81015B0 - - thumb_func_start sub_81015E0 -sub_81015E0: @ 81015E0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _08101600 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0xC - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _08101604 - cmp r0, 0x1 - beq _08101620 - b _08101636 - .align 2, 0 -_08101600: .4byte gTasks -_08101604: - ldr r0, _0810161C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08101636 - adds r0, r4, 0 - bl sub_80FF114 - movs r0, 0x1 - strh r0, [r5, 0xC] - b _08101636 - .align 2, 0 -_0810161C: .4byte gPaletteFade -_08101620: - bl sub_81016F4 - ldr r0, _0810163C @ =gUnknown_0300485C - ldr r1, _08101640 @ =sub_8101678 - str r1, [r0] - ldr r0, _08101644 @ =c2_exit_to_overworld_2_switch - bl SetMainCallback2 - adds r0, r4, 0 - bl DestroyTask -_08101636: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810163C: .4byte gUnknown_0300485C -_08101640: .4byte sub_8101678 -_08101644: .4byte c2_exit_to_overworld_2_switch - thumb_func_end sub_81015E0 - - thumb_func_start sub_8101648 -sub_8101648: @ 8101648 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_807D770 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08101668 - ldr r0, _08101670 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _08101674 @ =Task_DecorationPCProcessMenuInput - str r0, [r1] -_08101668: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08101670: .4byte gTasks -_08101674: .4byte Task_DecorationPCProcessMenuInput - thumb_func_end sub_8101648 - - thumb_func_start sub_8101678 -sub_8101678: @ 8101678 - push {lr} - bl pal_fill_black - bl MenuDisplayMessageBox - bl sub_80FE220 - ldr r0, _08101694 @ =sub_8101648 - movs r1, 0x8 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_08101694: .4byte sub_8101648 - thumb_func_end sub_8101678 - - thumb_func_start sub_8101698 -sub_8101698: @ 8101698 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - movs r1, 0x1F - ands r0, r1 - strh r0, [r2, 0x2E] - cmp r0, 0xF - ble _081016B8 - adds r0, r2, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - b _081016C4 -_081016B8: - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_081016C4: - pop {r0} - bx r0 - thumb_func_end sub_8101698 - - thumb_func_start sub_81016C8 -sub_81016C8: @ 81016C8 - push {lr} - ldr r0, _081016DC @ =gSaveBlock2 - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _081016E4 - ldr r0, _081016E0 @ =gUnknown_083ECA5C - bl LoadSpritePalette - b _081016EA - .align 2, 0 -_081016DC: .4byte gSaveBlock2 -_081016E0: .4byte gUnknown_083ECA5C -_081016E4: - ldr r0, _081016F0 @ =gUnknown_083ECA64 - bl LoadSpritePalette -_081016EA: - pop {r0} - bx r0 - .align 2, 0 -_081016F0: .4byte gUnknown_083ECA64 - thumb_func_end sub_81016C8 - - thumb_func_start sub_81016F4 -sub_81016F4: @ 81016F4 - push {lr} - movs r0, 0x8 - bl FreeSpritePaletteByTag - pop {r0} - bx r0 - thumb_func_end sub_81016F4 - - thumb_func_start sub_8101700 -sub_8101700: @ 8101700 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_81341D4 - lsls r0, 24 - cmp r0, 0 - bne _08101728 - ldr r1, _08101720 @ =gSecretBaseText_NoDecors - ldr r2, _08101724 @ =sub_80FE428 - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField - b _08101742 - .align 2, 0 -_08101720: .4byte gSecretBaseText_NoDecors -_08101724: .4byte sub_80FE428 -_08101728: - ldr r1, _08101748 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r2, 0 - movs r1, 0x1 - strh r1, [r0, 0x1E] - ldr r0, _0810174C @ =gUnknown_020388F6 - strb r2, [r0] - adds r0, r4, 0 - bl sub_80FE5AC -_08101742: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08101748: .4byte gTasks -_0810174C: .4byte gUnknown_020388F6 - thumb_func_end sub_8101700 - - thumb_func_start unref_sub_8101750 -unref_sub_8101750: @ 8101750 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_81341D4 - lsls r0, 24 - cmp r0, 0 - bne _08101778 - ldr r1, _08101770 @ =gSecretBaseText_NoDecors - ldr r2, _08101774 @ =sub_80FE428 - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField - b _08101792 - .align 2, 0 -_08101770: .4byte gSecretBaseText_NoDecors -_08101774: .4byte sub_80FE428 -_08101778: - ldr r1, _08101798 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r2, 0 - movs r1, 0x2 - strh r1, [r0, 0x1E] - ldr r0, _0810179C @ =gUnknown_020388F6 - strb r2, [r0] - adds r0, r4, 0 - bl sub_80FE5AC -_08101792: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08101798: .4byte gTasks -_0810179C: .4byte gUnknown_020388F6 - thumb_func_end unref_sub_8101750 - - thumb_func_start sub_81017A0 -sub_81017A0: @ 81017A0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_80FEF74 - bl sub_80FED1C - bl sub_80FEFA4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08101808 - ldr r0, _081017EC @ =gStringVar1 - ldr r1, _081017F0 @ =gUnknown_020388F5 - ldrb r2, [r1] - ldr r1, _081017F4 @ =gUnknown_020388D0 - ldr r1, [r1] - adds r1, r2 - ldrb r1, [r1] - lsls r1, 5 - ldr r2, _081017F8 @ =gDecorations + 0x1 - adds r1, r2 - bl StringCopy - ldr r4, _081017FC @ =gStringVar4 - ldr r1, _08101800 @ =gSecretBaseText_WillBeDiscarded - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, _08101804 @ =sub_8101824 - adds r0, r5, 0 - adds r1, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField - b _08101814 - .align 2, 0 -_081017EC: .4byte gStringVar1 -_081017F0: .4byte gUnknown_020388F5 -_081017F4: .4byte gUnknown_020388D0 -_081017F8: .4byte gDecorations + 0x1 -_081017FC: .4byte gStringVar4 -_08101800: .4byte gSecretBaseText_WillBeDiscarded -_08101804: .4byte sub_8101824 -_08101808: - ldr r1, _0810181C @ =gSecretBaseText_DecorInUse - ldr r2, _08101820 @ =sub_80FEFF4 - adds r0, r5, 0 - movs r3, 0 - bl DisplayItemMessageOnField -_08101814: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810181C: .4byte gSecretBaseText_DecorInUse -_08101820: .4byte sub_80FEFF4 - thumb_func_end sub_81017A0 - - thumb_func_start sub_8101824 -sub_8101824: @ 8101824 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x14 - movs r1, 0x8 - movs r2, 0x1 - bl DisplayYesNoMenu - ldr r1, _08101844 @ =gUnknown_083ECAA0 - adds r0, r4, 0 - bl sub_80F914C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08101844: .4byte gUnknown_083ECAA0 - thumb_func_end sub_8101824 - - thumb_func_start sub_8101848 -sub_8101848: @ 8101848 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x14 - movs r1, 0x8 - movs r2, 0x1A - movs r3, 0xE - bl MenuZeroFillWindowRect - ldr r6, _08101890 @ =gUnknown_020388F5 - ldrb r1, [r6] - ldr r5, _08101894 @ =gUnknown_020388D0 - ldr r0, [r5] - adds r0, r1 - ldrb r0, [r0] - bl sub_8109A30 - ldrb r1, [r6] - ldr r0, [r5] - adds r0, r1 - movs r1, 0 - strb r1, [r0] - adds r0, r4, 0 - bl sub_80FF098 - ldr r1, _08101898 @ =gSecretBaseText_DecorThrownAway - ldr r2, _0810189C @ =sub_80FEFF4 - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08101890: .4byte gUnknown_020388F5 -_08101894: .4byte gUnknown_020388D0 -_08101898: .4byte gSecretBaseText_DecorThrownAway -_0810189C: .4byte sub_80FEFF4 - thumb_func_end sub_8101848 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/decoration_inventory.s b/asm/decoration_inventory.s deleted file mode 100644 index 953d770ae..000000000 --- a/asm/decoration_inventory.s +++ /dev/null @@ -1,404 +0,0 @@ - .include "constants/gba_constants.inc" - .include "constants/species_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start ClearDecorationInventory -ClearDecorationInventory: @ 8133F4C - push {r4,r5,lr} - lsls r0, 24 - movs r3, 0 - ldr r1, _08133F7C @ =gDecorationInventories - lsrs r2, r0, 21 - adds r0, r2, r1 - ldrb r0, [r0, 0x4] - cmp r3, r0 - bcs _08133F76 - adds r5, r1, 0 - movs r4, 0 -_08133F62: - adds r0, r2, r5 - ldr r1, [r0] - adds r1, r3 - strb r4, [r1] - adds r1, r3, 0x1 - lsls r1, 24 - lsrs r3, r1, 24 - ldrb r0, [r0, 0x4] - cmp r3, r0 - bcc _08133F62 -_08133F76: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08133F7C: .4byte gDecorationInventories - thumb_func_end ClearDecorationInventory - - thumb_func_start ClearDecorationInventories -ClearDecorationInventories: @ 8133F80 - push {r4,lr} - movs r4, 0 -_08133F84: - adds r0, r4, 0 - bl ClearDecorationInventory - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bls _08133F84 - pop {r4} - pop {r0} - bx r0 - thumb_func_end ClearDecorationInventories - - thumb_func_start sub_8133F9C -sub_8133F9C: @ 8133F9C - push {r4,lr} - lsls r0, 24 - movs r2, 0 - ldr r1, _08133FC8 @ =gDecorationInventories - lsrs r0, 21 - adds r0, r1 - movs r1, 0x4 - ldrsb r1, [r0, r1] - cmp r2, r1 - bge _08133FD8 - adds r4, r0, 0 - adds r3, r1, 0 -_08133FB4: - lsls r0, r2, 24 - asrs r1, r0, 24 - ldr r0, [r4] - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _08133FCC - adds r0, r1, 0 - b _08133FDC - .align 2, 0 -_08133FC8: .4byte gDecorationInventories -_08133FCC: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - asrs r0, 24 - cmp r0, r3 - blt _08133FB4 -_08133FD8: - movs r0, 0x1 - negs r0, r0 -_08133FDC: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8133F9C - - thumb_func_start sub_8133FE4 -sub_8133FE4: @ 8133FE4 - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r1, _08134010 @ =gDecorations - lsls r0, r3, 5 - adds r0, r1 - ldrb r0, [r0, 0x13] - movs r2, 0 - ldr r1, _08134014 @ =gDecorationInventories - lsls r0, 3 - adds r0, r1 - ldrb r1, [r0, 0x4] - cmp r2, r1 - bcs _08134022 - ldr r4, [r0] -_08134002: - adds r0, r4, r2 - ldrb r0, [r0] - cmp r0, r3 - bne _08134018 - movs r0, 0x1 - b _08134024 - .align 2, 0 -_08134010: .4byte gDecorations -_08134014: .4byte gDecorationInventories -_08134018: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, r1 - bcc _08134002 -_08134022: - movs r0, 0 -_08134024: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8133FE4 - - thumb_func_start IsThereStorageSpaceForDecoration -IsThereStorageSpaceForDecoration: @ 813402C - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - cmp r4, 0 - beq _0813406C - ldr r1, _08134064 @ =gDecorations - lsls r0, r4, 5 - adds r0, r1 - ldrb r5, [r0, 0x13] - adds r0, r5, 0 - bl sub_8133F9C - lsls r0, 24 - asrs r2, r0, 24 - movs r0, 0x1 - negs r0, r0 - cmp r2, r0 - beq _0813406C - ldr r0, _08134068 @ =gDecorationInventories - lsls r1, r5, 3 - adds r1, r0 - ldr r0, [r1] - adds r0, r2 - strb r4, [r0] - movs r0, 0x1 - b _0813406E - .align 2, 0 -_08134064: .4byte gDecorations -_08134068: .4byte gDecorationInventories -_0813406C: - movs r0, 0 -_0813406E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end IsThereStorageSpaceForDecoration - - thumb_func_start sub_8134074 -sub_8134074: @ 8134074 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _081340A0 - ldr r1, _0813409C @ =gDecorations - lsls r0, 5 - adds r0, r1 - ldrb r0, [r0, 0x13] - bl sub_8133F9C - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _081340A0 - movs r0, 0x1 - b _081340A2 - .align 2, 0 -_0813409C: .4byte gDecorations -_081340A0: - movs r0, 0 -_081340A2: - pop {r1} - bx r1 - thumb_func_end sub_8134074 - - thumb_func_start sub_81340A8 -sub_81340A8: @ 81340A8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r3, 0 - cmp r5, 0 - bne _081340C4 - b _081340F2 -_081340B6: - movs r0, 0 - strb r0, [r1] - adds r0, r6, 0 - bl sub_8134104 - movs r0, 0x1 - b _081340F4 -_081340C4: - ldr r2, _081340FC @ =gDecorationInventories - ldr r1, _08134100 @ =gDecorations - lsls r0, r5, 5 - adds r0, r1 - ldrb r4, [r0, 0x13] - lsls r0, r4, 3 - adds r0, r2 - ldrb r1, [r0, 0x4] - cmp r3, r1 - bcs _081340F2 - adds r6, r4, 0 - adds r4, r0, 0 - adds r2, r1, 0 -_081340DE: - ldr r0, [r4] - adds r1, r0, r3 - ldrb r0, [r1] - cmp r0, r5 - beq _081340B6 - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, r2 - bcc _081340DE -_081340F2: - movs r0, 0 -_081340F4: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_081340FC: .4byte gDecorationInventories -_08134100: .4byte gDecorations - thumb_func_end sub_81340A8 - - thumb_func_start sub_8134104 -sub_8134104: @ 8134104 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - movs r6, 0 - ldr r2, _08134190 @ =gDecorationInventories - lsrs r1, r0, 21 - adds r0, r1, r2 - ldrb r0, [r0, 0x4] - cmp r6, r0 - bcs _08134180 - adds r7, r1, 0 - mov r8, r0 - str r0, [sp] -_08134126: - adds r1, r6, 0x1 - lsls r0, r1, 24 - lsrs r3, r0, 24 - adds r2, r7, 0 - mov r12, r1 - cmp r3, r8 - bcs _08134174 - ldr r1, _08134190 @ =gDecorationInventories - mov r10, r1 - adds r0, r1, 0 - mov r9, r0 -_0813413C: - mov r1, r10 - adds r5, r2, r1 - ldr r1, [r5] - adds r0, r1, r3 - ldrb r4, [r0] - adds r2, r4, 0 - cmp r2, 0 - beq _08134162 - adds r0, r1, r6 - ldrb r1, [r0] - cmp r1, 0 - beq _08134158 - cmp r1, r2 - bls _08134162 -_08134158: - ldrb r1, [r0] - strb r4, [r0] - ldr r0, [r5] - adds r0, r3 - strb r1, [r0] -_08134162: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - adds r2, r7, 0 - mov r1, r9 - adds r0, r2, r1 - ldrb r0, [r0, 0x4] - cmp r3, r0 - bcc _0813413C -_08134174: - mov r1, r12 - lsls r0, r1, 24 - lsrs r6, r0, 24 - ldr r0, [sp] - cmp r6, r0 - bcc _08134126 -_08134180: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08134190: .4byte gDecorationInventories - thumb_func_end sub_8134104 - - thumb_func_start sub_8134194 -sub_8134194: @ 8134194 - push {r4,r5,lr} - lsls r0, 24 - movs r4, 0 - movs r3, 0 - ldr r2, _081341D0 @ =gDecorationInventories - lsrs r1, r0, 21 - adds r0, r1, r2 - ldrb r0, [r0, 0x4] - cmp r4, r0 - bcs _081341C8 - adds r5, r2, 0 -_081341AA: - adds r2, r1, r5 - ldr r0, [r2] - adds r0, r3 - ldrb r0, [r0] - cmp r0, 0 - beq _081341BC - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_081341BC: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - ldrb r2, [r2, 0x4] - cmp r3, r2 - bcc _081341AA -_081341C8: - adds r0, r4, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_081341D0: .4byte gDecorationInventories - thumb_func_end sub_8134194 - - thumb_func_start sub_81341D4 -sub_81341D4: @ 81341D4 - push {r4,r5,lr} - movs r5, 0 - movs r4, 0 -_081341DA: - adds r0, r4, 0 - bl sub_8134194 - adds r0, r5, r0 - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bls _081341DA - adds r0, r5, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81341D4 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/easy_chat.s b/asm/easy_chat.s index 2983deea0..c34212a24 100644 --- a/asm/easy_chat.s +++ b/asm/easy_chat.s @@ -1595,7 +1595,7 @@ _080E6D58: .align 2, 0 _080E6D60: .4byte 0x02001000 _080E6D64: - bl sub_8072DEC + bl HandleDestroyMenuCursors bl sub_80E81FC ldr r0, _080E6D78 @ =sub_80E6AC4 bl sub_80E682C @@ -1781,7 +1781,7 @@ _080E6ED0: .4byte 0x00009c7c _080E6ED4: .4byte 0x0000ffff _080E6ED8: .4byte sub_80E752C _080E6EDC: - bl sub_8072DEC + bl HandleDestroyMenuCursors bl sub_80E81FC ldr r4, _080E6EFC @ =0x02001000 ldrb r0, [r4, 0x8] @@ -9975,7 +9975,7 @@ _080EAE50: lsls r0, 16 lsrs r0, 16 movs r1, 0 - bl sub_8090D90 + bl GetNationalPokedexFlag b _080EAE7C _080EAE62: ldr r0, _080EAE74 @ =gUnknown_083DB694 diff --git a/asm/egg_hatch.s b/asm/egg_hatch.s index 2f11d4111..7365f4da6 100644 --- a/asm/egg_hatch.s +++ b/asm/egg_hatch.s @@ -46,10 +46,10 @@ AddHatchedMonToParty: @ 80429EC lsrs r4, 16 adds r0, r4, 0 movs r1, 0x2 - bl sub_8090D90 + bl GetNationalPokedexFlag adds r0, r4, 0 movs r1, 0x3 - bl sub_8090D90 + bl GetNationalPokedexFlag ldr r1, _08042AA4 @ =gStringVar1 adds r0, r5, 0 bl GetMonNick @@ -351,7 +351,7 @@ Task_EggHatch: @ 8042CAC bne _08042CD0 ldr r0, _08042CDC @ =CB2_EggHatch_0 bl SetMainCallback2 - ldr r1, _08042CE0 @ =gUnknown_0300485C + ldr r1, _08042CE0 @ =gFieldCallback ldr r0, _08042CE4 @ =sub_8080990 str r0, [r1] adds r0, r4, 0 @@ -363,7 +363,7 @@ _08042CD0: .align 2, 0 _08042CD8: .4byte gPaletteFade _08042CDC: .4byte CB2_EggHatch_0 -_08042CE0: .4byte gUnknown_0300485C +_08042CE0: .4byte gFieldCallback _08042CE4: .4byte sub_8080990 thumb_func_end Task_EggHatch diff --git a/asm/evolution_scene.s b/asm/evolution_scene.s index 404270195..c6d3c0978 100644 --- a/asm/evolution_scene.s +++ b/asm/evolution_scene.s @@ -1233,13 +1233,13 @@ _08112354: lsls r0, 16 lsrs r0, 16 movs r1, 0x2 - bl sub_8090D90 + bl GetNationalPokedexFlag ldrh r0, [r4, 0xC] bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0x3 - bl sub_8090D90 + bl GetNationalPokedexFlag adds r0, r5, 0 movs r1, 0xB bl GetMonData @@ -1321,7 +1321,7 @@ Task_EvolutionScene: @ 811240C beq _0811246E movs r0, 0x10 strh r0, [r3, 0x8] - ldr r0, _08112498 @ =gUnknown_02024D1E + ldr r0, _08112498 @ =gBattleCommunication ldrb r1, [r0, 0x2] lsls r0, r1, 2 adds r0, r1 @@ -1351,7 +1351,7 @@ _08112484: .align 2, 0 _08112490: .4byte gTasks _08112494: .4byte gMain -_08112498: .4byte gUnknown_02024D1E +_08112498: .4byte gBattleCommunication _0811249C: .4byte _081124A0 .align 2, 0 _081124A0: @@ -1503,7 +1503,7 @@ _081125FC: _0811260C: movs r0, 0x11 bl sub_8149970 - ldr r1, _08112628 @ =gUnknown_02024D1E + ldr r1, _08112628 @ =gBattleCommunication strb r0, [r1, 0x2] ldr r0, _0811262C @ =gTasks mov r2, r8 @@ -1513,10 +1513,10 @@ _0811260C: b _08112A2E .align 2, 0 _08112624: .4byte gPaletteFade -_08112628: .4byte gUnknown_02024D1E +_08112628: .4byte gBattleCommunication _0811262C: .4byte gTasks _08112630: - ldr r4, _08112664 @ =gUnknown_02024D1E + ldr r4, _08112664 @ =gBattleCommunication ldrb r0, [r4, 0x2] lsls r1, r0, 2 adds r1, r0 @@ -1541,10 +1541,10 @@ _08112646: strb r0, [r4, 0x2] bl _08112FD0 .align 2, 0 -_08112664: .4byte gUnknown_02024D1E +_08112664: .4byte gBattleCommunication _08112668: .4byte 0x02014800 _0811266C: - ldr r4, _08112698 @ =gUnknown_02024D1E + ldr r4, _08112698 @ =gBattleCommunication ldrb r0, [r4, 0x2] lsls r1, r0, 2 adds r1, r0 @@ -1566,7 +1566,7 @@ _08112682: adds r1, r6 b _08112A2E .align 2, 0 -_08112698: .4byte gUnknown_02024D1E +_08112698: .4byte gBattleCommunication _0811269C: .4byte 0x02014800 _081126A0: ldr r1, _081126D8 @ =0x02014800 @@ -1580,7 +1580,7 @@ _081126A0: _081126B2: movs r0, 0x3 strb r0, [r1, 0x3] - ldr r0, _081126DC @ =gUnknown_02024D1E + ldr r0, _081126DC @ =gBattleCommunication ldrb r1, [r0, 0x2] lsls r0, r1, 2 adds r0, r1 @@ -1598,10 +1598,10 @@ _081126CC: b _08112A2E .align 2, 0 _081126D8: .4byte 0x02014800 -_081126DC: .4byte gUnknown_02024D1E +_081126DC: .4byte gBattleCommunication _081126E0: bl sub_8149B44 - ldr r1, _081126F4 @ =gUnknown_02024D1E + ldr r1, _081126F4 @ =gBattleCommunication strb r0, [r1, 0x2] ldr r0, _081126F8 @ =gTasks mov r3, r8 @@ -1610,10 +1610,10 @@ _081126E0: adds r1, r0 b _08112A2E .align 2, 0 -_081126F4: .4byte gUnknown_02024D1E +_081126F4: .4byte gBattleCommunication _081126F8: .4byte gTasks _081126FC: - ldr r5, _08112724 @ =gUnknown_02024D1E + ldr r5, _08112724 @ =gBattleCommunication ldrb r0, [r5, 0x2] lsls r1, r0, 2 adds r1, r0 @@ -1633,9 +1633,9 @@ _08112712: strb r0, [r5, 0x2] b _08112992 .align 2, 0 -_08112724: .4byte gUnknown_02024D1E +_08112724: .4byte gBattleCommunication _08112728: - ldr r0, _08112750 @ =gUnknown_02024D1E + ldr r0, _08112750 @ =gBattleCommunication ldrb r1, [r0, 0x2] lsls r0, r1, 2 adds r0, r1 @@ -1654,7 +1654,7 @@ _0811273E: adds r1, r6 b _08112A2E .align 2, 0 -_08112750: .4byte gUnknown_02024D1E +_08112750: .4byte gBattleCommunication _08112754: bl IsSEPlaying lsls r0, 24 @@ -1739,13 +1739,13 @@ _081127BE: lsls r0, 16 lsrs r0, 16 movs r1, 0x2 - bl sub_8090D90 + bl GetNationalPokedexFlag ldrh r0, [r4, 0x10] bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0x3 - bl sub_8090D90 + bl GetNationalPokedexFlag movs r0, 0xE bl IncrementGameStat b _08112FD0 @@ -1789,7 +1789,7 @@ _08112856: movs r1, 0x2 add r2, sp, 0x4 bl GetMonData - ldr r0, _081128A8 @ =gUnknown_030041C0 + ldr r0, _081128A8 @ =gBattleTextBuff1 add r1, sp, 0x4 bl StringCopy10 ldr r0, _081128AC @ =0x0000ffff @@ -1800,7 +1800,7 @@ _08112856: b _08112FD0 .align 2, 0 _081128A4: .4byte gUnknown_03004210 -_081128A8: .4byte gUnknown_030041C0 +_081128A8: .4byte gBattleTextBuff1 _081128AC: .4byte 0x0000ffff _081128B0: ldr r0, _081128C0 @ =0x0000fffe @@ -1868,7 +1868,7 @@ _0811291A: _0811292C: .4byte gPaletteFade _08112930: .4byte gUnknown_03005E94 _08112934: - ldr r0, _08112968 @ =gUnknown_02024D1E + ldr r0, _08112968 @ =gBattleCommunication ldrb r1, [r0, 0x2] lsls r0, r1, 2 adds r0, r1 @@ -1893,7 +1893,7 @@ _08112948: adds r1, r6 b _08112A2E .align 2, 0 -_08112968: .4byte gUnknown_02024D1E +_08112968: .4byte gBattleCommunication _0811296C: .4byte 0x0006001c _08112970: .4byte 0x00007fff _08112974: @@ -1967,10 +1967,10 @@ _081129FE: bl sub_8024CEC ldr r0, _08112A3C @ =0x0000016f bl PlayFanfare - ldr r0, _08112A40 @ =gUnknown_08400F8C + ldr r0, _08112A40 @ =gBattleStringsTable ldr r0, [r0, 0xC] - bl get_battle_strings_ - ldr r1, _08112A44 @ =gUnknown_020238CC + bl StrCpyDecodeToDisplayedStringBattle + ldr r1, _08112A44 @ =gDisplayedStringBattle movs r0, 0xF str r0, [sp] adds r0, r4, 0 @@ -1992,8 +1992,8 @@ _08112A2E: .align 2, 0 _08112A38: .4byte gUnknown_03004210 _08112A3C: .4byte 0x0000016f -_08112A40: .4byte gUnknown_08400F8C -_08112A44: .4byte gUnknown_020238CC +_08112A40: .4byte gBattleStringsTable +_08112A44: .4byte gDisplayedStringBattle _08112A48: .4byte gTasks _08112A4C: ldr r0, _08112A80 @ =gUnknown_03004210 @@ -2073,10 +2073,10 @@ _08112AE2: b _08112FD0 _08112AEE: bl sub_8024CEC - ldr r0, _08112B20 @ =gUnknown_08400F8C + ldr r0, _08112B20 @ =gBattleStringsTable ldr r0, [r0, 0x10] - bl get_battle_strings_ - ldr r1, _08112B24 @ =gUnknown_020238CC + bl StrCpyDecodeToDisplayedStringBattle + ldr r1, _08112B24 @ =gDisplayedStringBattle movs r0, 0xF str r0, [sp] adds r0, r4, 0 @@ -2093,8 +2093,8 @@ _08112AEE: b _08112FCE .align 2, 0 _08112B1C: .4byte gUnknown_03004210 -_08112B20: .4byte gUnknown_08400F8C -_08112B24: .4byte gUnknown_020238CC +_08112B20: .4byte gBattleStringsTable +_08112B24: .4byte gDisplayedStringBattle _08112B28: .4byte gTasks _08112B2C: ldr r4, _08112B6C @ =gUnknown_03004210 @@ -2109,10 +2109,10 @@ _08112B36: beq _08112B42 b _08112FD0 _08112B42: - ldr r0, _08112B70 @ =gUnknown_08400F8C + ldr r0, _08112B70 @ =gBattleStringsTable ldr r0, [r0, 0x14] - bl get_battle_strings_ - ldr r1, _08112B74 @ =gUnknown_020238CC + bl StrCpyDecodeToDisplayedStringBattle + ldr r1, _08112B74 @ =gDisplayedStringBattle movs r0, 0xF str r0, [sp] adds r0, r4, 0 @@ -2129,8 +2129,8 @@ _08112B42: b _08112FCE .align 2, 0 _08112B6C: .4byte gUnknown_03004210 -_08112B70: .4byte gUnknown_08400F8C -_08112B74: .4byte gUnknown_020238CC +_08112B70: .4byte gBattleStringsTable +_08112B74: .4byte gDisplayedStringBattle _08112B78: .4byte gTasks _08112B7C: ldr r4, _08112BF8 @ =gUnknown_03004210 @@ -2143,10 +2143,10 @@ _08112B86: lsls r0, 24 cmp r0, 0 bne _08112BC0 - ldr r0, _08112BFC @ =gUnknown_08400F8C + ldr r0, _08112BFC @ =gBattleStringsTable ldr r0, [r0, 0x18] - bl get_battle_strings_ - ldr r1, _08112C00 @ =gUnknown_020238CC + bl StrCpyDecodeToDisplayedStringBattle + ldr r1, _08112C00 @ =gDisplayedStringBattle movs r0, 0xF str r0, [sp] adds r0, r4, 0 @@ -2188,16 +2188,16 @@ _08112BD6: adds r0, 0x1 movs r2, 0 strh r0, [r1, 0x18] - ldr r0, _08112C08 @ =gUnknown_02024D1E + ldr r0, _08112C08 @ =gBattleCommunication strb r2, [r0, 0x1] bl sub_802BC6C b _08112FD0 .align 2, 0 _08112BF8: .4byte gUnknown_03004210 -_08112BFC: .4byte gUnknown_08400F8C -_08112C00: .4byte gUnknown_020238CC +_08112BFC: .4byte gBattleStringsTable +_08112C00: .4byte gDisplayedStringBattle _08112C04: .4byte gTasks -_08112C08: .4byte gUnknown_02024D1E +_08112C08: .4byte gBattleCommunication _08112C0C: ldr r0, _08112CA4 @ =gMain ldrh r1, [r0, 0x2E] @@ -2205,7 +2205,7 @@ _08112C0C: ands r0, r1 cmp r0, 0 beq _08112C32 - ldr r4, _08112CA8 @ =gUnknown_02024D1E + ldr r4, _08112CA8 @ =gBattleCommunication ldrb r0, [r4, 0x1] cmp r0, 0 beq _08112C32 @@ -2222,7 +2222,7 @@ _08112C32: ands r0, r1 cmp r0, 0 beq _08112C58 - ldr r4, _08112CA8 @ =gUnknown_02024D1E + ldr r4, _08112CA8 @ =gBattleCommunication ldrb r0, [r4, 0x1] cmp r0, 0 bne _08112C58 @@ -2240,14 +2240,14 @@ _08112C58: cmp r0, 0 beq _08112CE2 bl sub_8023AD8 - ldr r0, _08112CAC @ =gUnknown_08400F8C + ldr r0, _08112CAC @ =gBattleStringsTable movs r1, 0x92 lsls r1, 3 adds r0, r1 ldr r0, [r0] - bl get_battle_strings_ + bl StrCpyDecodeToDisplayedStringBattle ldr r0, _08112CB0 @ =gUnknown_03004210 - ldr r1, _08112CB4 @ =gUnknown_020238CC + ldr r1, _08112CB4 @ =gDisplayedStringBattle movs r2, 0xF str r2, [sp] movs r2, 0x90 @@ -2255,7 +2255,7 @@ _08112C58: bl sub_8002EB0 movs r0, 0x5 bl PlaySE - ldr r0, _08112CA8 @ =gUnknown_02024D1E + ldr r0, _08112CA8 @ =gBattleCommunication ldrb r2, [r0, 0x1] cmp r2, 0 beq _08112CBC @@ -2269,10 +2269,10 @@ _08112C58: b _08112CE2 .align 2, 0 _08112CA4: .4byte gMain -_08112CA8: .4byte gUnknown_02024D1E -_08112CAC: .4byte gUnknown_08400F8C +_08112CA8: .4byte gBattleCommunication +_08112CAC: .4byte gBattleStringsTable _08112CB0: .4byte gUnknown_03004210 -_08112CB4: .4byte gUnknown_020238CC +_08112CB4: .4byte gDisplayedStringBattle _08112CB8: .4byte gTasks _08112CBC: ldr r0, _08112D28 @ =gTasks @@ -2303,14 +2303,14 @@ _08112CE2: b _08112FD0 _08112CF0: bl sub_8023AD8 - ldr r0, _08112D30 @ =gUnknown_08400F8C + ldr r0, _08112D30 @ =gBattleStringsTable movs r1, 0x92 lsls r1, 3 adds r0, r1 ldr r0, [r0] - bl get_battle_strings_ + bl StrCpyDecodeToDisplayedStringBattle ldr r0, _08112D34 @ =gUnknown_03004210 - ldr r1, _08112D38 @ =gUnknown_020238CC + ldr r1, _08112D38 @ =gDisplayedStringBattle movs r2, 0xF str r2, [sp] movs r2, 0x90 @@ -2329,9 +2329,9 @@ _08112CF0: .align 2, 0 _08112D28: .4byte gTasks _08112D2C: .4byte gMain -_08112D30: .4byte gUnknown_08400F8C +_08112D30: .4byte gBattleStringsTable _08112D34: .4byte gUnknown_03004210 -_08112D38: .4byte gUnknown_020238CC +_08112D38: .4byte gDisplayedStringBattle _08112D3C: ldr r0, _08112D78 @ =gPaletteFade ldrb r1, [r0, 0x7] @@ -2411,13 +2411,13 @@ _08112DCC: bl IsHMMove2 cmp r0, 0 beq _08112E24 - ldr r0, _08112E10 @ =gUnknown_08400F8C + ldr r0, _08112E10 @ =gBattleStringsTable ldr r3, _08112E14 @ =0x000004cc adds r0, r3 ldr r0, [r0] - bl get_battle_strings_ + bl StrCpyDecodeToDisplayedStringBattle ldr r0, _08112E18 @ =gUnknown_03004210 - ldr r1, _08112E1C @ =gUnknown_020238CC + ldr r1, _08112E1C @ =gDisplayedStringBattle movs r2, 0xF str r2, [sp] movs r2, 0x90 @@ -2432,13 +2432,13 @@ _08112DCC: strh r1, [r0, 0x18] b _08112FD0 .align 2, 0 -_08112E10: .4byte gUnknown_08400F8C +_08112E10: .4byte gBattleStringsTable _08112E14: .4byte 0x000004cc _08112E18: .4byte gUnknown_03004210 -_08112E1C: .4byte gUnknown_020238CC +_08112E1C: .4byte gDisplayedStringBattle _08112E20: .4byte gTasks _08112E24: - ldr r1, _08112E80 @ =gUnknown_03004290 + ldr r1, _08112E80 @ =gBattleTextBuff2 movs r0, 0xFD strb r0, [r1] movs r0, 0x2 @@ -2458,14 +2458,14 @@ _08112E24: mov r0, r9 adds r2, r4, 0 bl SetMonMoveSlot - ldr r0, _08112E88 @ =gUnknown_08400F8C + ldr r0, _08112E88 @ =gBattleStringsTable movs r3, 0xCF lsls r3, 2 adds r0, r3 ldr r0, [r0] - bl get_battle_strings_ + bl StrCpyDecodeToDisplayedStringBattle ldr r0, _08112E8C @ =gUnknown_03004210 - ldr r1, _08112E90 @ =gUnknown_020238CC + ldr r1, _08112E90 @ =gDisplayedStringBattle movs r2, 0xF str r2, [sp] movs r2, 0x90 @@ -2480,11 +2480,11 @@ _08112E24: adds r0, 0x1 b _08112FCE .align 2, 0 -_08112E80: .4byte gUnknown_03004290 +_08112E80: .4byte gBattleTextBuff2 _08112E84: .4byte word_2024E82 -_08112E88: .4byte gUnknown_08400F8C +_08112E88: .4byte gBattleStringsTable _08112E8C: .4byte gUnknown_03004210 -_08112E90: .4byte gUnknown_020238CC +_08112E90: .4byte gDisplayedStringBattle _08112E94: .4byte gTasks _08112E98: ldr r4, _08112ED8 @ =gUnknown_03004210 @@ -2499,10 +2499,10 @@ _08112EA2: beq _08112EAE b _08112FD0 _08112EAE: - ldr r0, _08112EDC @ =gUnknown_08400F8C + ldr r0, _08112EDC @ =gBattleStringsTable ldr r0, [r0, 0x1C] - bl get_battle_strings_ - ldr r1, _08112EE0 @ =gUnknown_020238CC + bl StrCpyDecodeToDisplayedStringBattle + ldr r1, _08112EE0 @ =gDisplayedStringBattle movs r0, 0xF str r0, [sp] adds r0, r4, 0 @@ -2519,8 +2519,8 @@ _08112EAE: b _08112FCE .align 2, 0 _08112ED8: .4byte gUnknown_03004210 -_08112EDC: .4byte gUnknown_08400F8C -_08112EE0: .4byte gUnknown_020238CC +_08112EDC: .4byte gBattleStringsTable +_08112EE0: .4byte gDisplayedStringBattle _08112EE4: .4byte gTasks _08112EE8: ldr r4, _08112F28 @ =gUnknown_03004210 @@ -2531,13 +2531,13 @@ _08112EE8: lsls r0, 24 cmp r0, 0 bne _08112FD0 - ldr r0, _08112F2C @ =gUnknown_08400F8C + ldr r0, _08112F2C @ =gBattleStringsTable movs r1, 0xD0 lsls r1, 2 adds r0, r1 ldr r0, [r0] - bl get_battle_strings_ - ldr r1, _08112F30 @ =gUnknown_020238CC + bl StrCpyDecodeToDisplayedStringBattle + ldr r1, _08112F30 @ =gDisplayedStringBattle movs r0, 0xF str r0, [sp] adds r0, r4, 0 @@ -2554,15 +2554,15 @@ _08112EE8: b _08112FD0 .align 2, 0 _08112F28: .4byte gUnknown_03004210 -_08112F2C: .4byte gUnknown_08400F8C -_08112F30: .4byte gUnknown_020238CC +_08112F2C: .4byte gBattleStringsTable +_08112F30: .4byte gDisplayedStringBattle _08112F34: .4byte gTasks _08112F38: - ldr r0, _08112F68 @ =gUnknown_08400F8C + ldr r0, _08112F68 @ =gBattleStringsTable ldr r0, [r0, 0x20] - bl get_battle_strings_ + bl StrCpyDecodeToDisplayedStringBattle ldr r0, _08112F6C @ =gUnknown_03004210 - ldr r1, _08112F70 @ =gUnknown_020238CC + ldr r1, _08112F70 @ =gDisplayedStringBattle movs r2, 0xF str r2, [sp] movs r2, 0x90 @@ -2581,16 +2581,16 @@ _08112F38: strh r1, [r0, 0x18] b _08112FD0 .align 2, 0 -_08112F68: .4byte gUnknown_08400F8C +_08112F68: .4byte gBattleStringsTable _08112F6C: .4byte gUnknown_03004210 -_08112F70: .4byte gUnknown_020238CC +_08112F70: .4byte gDisplayedStringBattle _08112F74: .4byte gTasks _08112F78: - ldr r0, _08112FA0 @ =gUnknown_08400F8C + ldr r0, _08112FA0 @ =gBattleStringsTable ldr r0, [r0, 0x24] - bl get_battle_strings_ + bl StrCpyDecodeToDisplayedStringBattle ldr r0, _08112FA4 @ =gUnknown_03004210 - ldr r1, _08112FA8 @ =gUnknown_020238CC + ldr r1, _08112FA8 @ =gDisplayedStringBattle movs r2, 0xF str r2, [sp] movs r2, 0x90 @@ -2606,9 +2606,9 @@ _08112F9A: strh r1, [r0, 0x8] b _08112FD0 .align 2, 0 -_08112FA0: .4byte gUnknown_08400F8C +_08112FA0: .4byte gBattleStringsTable _08112FA4: .4byte gUnknown_03004210 -_08112FA8: .4byte gUnknown_020238CC +_08112FA8: .4byte gDisplayedStringBattle _08112FAC: .4byte gTasks _08112FB0: ldr r0, _08112FE0 @ =gUnknown_03004210 @@ -2808,7 +2808,7 @@ _0811315C: strh r0, [r1] movs r0, 0x11 bl sub_8149970 - ldr r1, _08113184 @ =gUnknown_02024D1E + ldr r1, _08113184 @ =gBattleCommunication strb r0, [r1, 0x2] ldr r1, _08113188 @ =gTasks lsls r0, r7, 2 @@ -2818,10 +2818,10 @@ _0811315C: b _08113298 .align 2, 0 _08113180: .4byte gPaletteFade -_08113184: .4byte gUnknown_02024D1E +_08113184: .4byte gBattleCommunication _08113188: .4byte gTasks _0811318C: - ldr r4, _081131C0 @ =gUnknown_02024D1E + ldr r4, _081131C0 @ =gBattleCommunication ldrb r0, [r4, 0x2] lsls r1, r0, 2 adds r1, r0 @@ -2846,10 +2846,10 @@ _081131A2: strb r0, [r4, 0x2] bl _08113B3A .align 2, 0 -_081131C0: .4byte gUnknown_02024D1E +_081131C0: .4byte gBattleCommunication _081131C4: .4byte 0x02014800 _081131C8: - ldr r4, _081131EC @ =gUnknown_02024D1E + ldr r4, _081131EC @ =gBattleCommunication ldrb r0, [r4, 0x2] lsls r1, r0, 2 adds r1, r0 @@ -2867,7 +2867,7 @@ _081131DE: strb r0, [r4, 0x2] b _08113290 .align 2, 0 -_081131EC: .4byte gUnknown_02024D1E +_081131EC: .4byte gBattleCommunication _081131F0: .4byte 0x02014800 _081131F4: ldr r1, _08113224 @ =0x02014800 @@ -2881,7 +2881,7 @@ _081131F4: _08113206: movs r0, 0x3 strb r0, [r1, 0x3] - ldr r0, _08113228 @ =gUnknown_02024D1E + ldr r0, _08113228 @ =gBattleCommunication ldrb r1, [r0, 0x2] lsls r0, r1, 2 adds r0, r1 @@ -2895,10 +2895,10 @@ _08113220: b _08113290 .align 2, 0 _08113224: .4byte 0x02014800 -_08113228: .4byte gUnknown_02024D1E +_08113228: .4byte gBattleCommunication _0811322C: bl sub_8149B44 - ldr r1, _08113240 @ =gUnknown_02024D1E + ldr r1, _08113240 @ =gBattleCommunication strb r0, [r1, 0x2] ldr r1, _08113244 @ =gTasks lsls r0, r7, 2 @@ -2907,10 +2907,10 @@ _0811322C: adds r0, r1 b _08113298 .align 2, 0 -_08113240: .4byte gUnknown_02024D1E +_08113240: .4byte gBattleCommunication _08113244: .4byte gTasks _08113248: - ldr r5, _08113270 @ =gUnknown_02024D1E + ldr r5, _08113270 @ =gBattleCommunication ldrb r0, [r5, 0x2] lsls r1, r0, 2 adds r1, r0 @@ -2930,9 +2930,9 @@ _0811325E: strb r0, [r5, 0x2] b _081132E2 .align 2, 0 -_08113270: .4byte gUnknown_02024D1E +_08113270: .4byte gBattleCommunication _08113274: - ldr r0, _081132A4 @ =gUnknown_02024D1E + ldr r0, _081132A4 @ =gBattleCommunication ldrb r1, [r0, 0x2] lsls r0, r1, 2 adds r0, r1 @@ -2956,7 +2956,7 @@ _08113298: strh r1, [r0, 0x8] bl _08113B3A .align 2, 0 -_081132A4: .4byte gUnknown_02024D1E +_081132A4: .4byte gBattleCommunication _081132A8: bl IsSEPlaying lsls r0, 24 @@ -3047,13 +3047,13 @@ _08113316: lsls r0, 16 lsrs r0, 16 movs r1, 0x2 - bl sub_8090D90 + bl GetNationalPokedexFlag ldrh r0, [r4, 0x10] bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0x3 - bl sub_8090D90 + bl GetNationalPokedexFlag movs r0, 0xE bl IncrementGameStat b _08113B3A @@ -3106,7 +3106,7 @@ _081133C2: movs r1, 0x2 add r2, sp, 0x4 bl GetMonData - ldr r0, _08113418 @ =gUnknown_030041C0 + ldr r0, _08113418 @ =gBattleTextBuff1 add r1, sp, 0x4 bl StringCopy10 ldr r0, _0811341C @ =0x0000ffff @@ -3118,7 +3118,7 @@ _081133C2: .align 2, 0 _08113410: .4byte gUnknown_03004828 _08113414: .4byte gTasks -_08113418: .4byte gUnknown_030041C0 +_08113418: .4byte gBattleTextBuff1 _0811341C: .4byte 0x0000ffff _08113420: ldr r0, _08113430 @ =0x0000fffe @@ -3189,12 +3189,12 @@ _081134A8: bl sub_8024CEC ldr r0, _081134E8 @ =0x0000016f bl PlayFanfare - ldr r0, _081134EC @ =gUnknown_08400F8C + ldr r0, _081134EC @ =gBattleStringsTable ldr r0, [r0, 0xC] - bl get_battle_strings_ + bl StrCpyDecodeToDisplayedStringBattle ldr r2, [r4] adds r0, r2, 0x4 - ldr r1, _081134F0 @ =gUnknown_020238CC + ldr r1, _081134F0 @ =gDisplayedStringBattle adds r2, 0x34 ldrb r2, [r2] movs r3, 0xF @@ -3216,8 +3216,8 @@ _081134DC: .align 2, 0 _081134E4: .4byte gUnknown_03004828 _081134E8: .4byte 0x0000016f -_081134EC: .4byte gUnknown_08400F8C -_081134F0: .4byte gUnknown_020238CC +_081134EC: .4byte gBattleStringsTable +_081134F0: .4byte gDisplayedStringBattle _081134F4: .4byte gTasks _081134F8: ldr r0, _08113530 @ =gUnknown_03004828 @@ -3301,12 +3301,12 @@ _08113598: b _08113B3A _081135A4: bl sub_8024CEC - ldr r0, _081135D8 @ =gUnknown_08400F8C + ldr r0, _081135D8 @ =gBattleStringsTable ldr r0, [r0, 0x10] - bl get_battle_strings_ + bl StrCpyDecodeToDisplayedStringBattle ldr r2, [r4] adds r0, r2, 0x4 - ldr r1, _081135DC @ =gUnknown_020238CC + ldr r1, _081135DC @ =gDisplayedStringBattle adds r2, 0x34 ldrb r2, [r2] movs r3, 0xF @@ -3323,8 +3323,8 @@ _081135A4: b _08113B38 .align 2, 0 _081135D4: .4byte gUnknown_03004828 -_081135D8: .4byte gUnknown_08400F8C -_081135DC: .4byte gUnknown_020238CC +_081135D8: .4byte gBattleStringsTable +_081135DC: .4byte gDisplayedStringBattle _081135E0: .4byte gTasks _081135E4: ldr r4, _08113628 @ =gUnknown_03004828 @@ -3340,12 +3340,12 @@ _081135F0: beq _081135FC b _08113B3A _081135FC: - ldr r0, _0811362C @ =gUnknown_08400F8C + ldr r0, _0811362C @ =gBattleStringsTable ldr r0, [r0, 0x14] - bl get_battle_strings_ + bl StrCpyDecodeToDisplayedStringBattle ldr r2, [r4] adds r0, r2, 0x4 - ldr r1, _08113630 @ =gUnknown_020238CC + ldr r1, _08113630 @ =gDisplayedStringBattle adds r2, 0x34 ldrb r2, [r2] movs r3, 0xF @@ -3362,8 +3362,8 @@ _081135FC: b _08113B38 .align 2, 0 _08113628: .4byte gUnknown_03004828 -_0811362C: .4byte gUnknown_08400F8C -_08113630: .4byte gUnknown_020238CC +_0811362C: .4byte gBattleStringsTable +_08113630: .4byte gDisplayedStringBattle _08113634: .4byte gTasks _08113638: ldr r4, _081136FC @ =gUnknown_03004828 @@ -3377,12 +3377,12 @@ _08113644: lsls r0, 24 cmp r0, 0 bne _08113682 - ldr r0, _08113700 @ =gUnknown_08400F8C + ldr r0, _08113700 @ =gBattleStringsTable ldr r0, [r0, 0x18] - bl get_battle_strings_ + bl StrCpyDecodeToDisplayedStringBattle ldr r2, [r4] adds r0, r2, 0x4 - ldr r1, _08113704 @ =gUnknown_020238CC + ldr r1, _08113704 @ =gDisplayedStringBattle adds r2, 0x34 ldrb r2, [r2] movs r3, 0xF @@ -3424,7 +3424,7 @@ _0811369C: movs r2, 0x8 movs r3, 0x1D bl DrawTextWindow - ldr r4, _0811370C @ =gUnknown_02024D1E + ldr r4, _0811370C @ =gBattleCommunication strb r6, [r4, 0x1] ldr r2, [r5] adds r0, r2, 0x4 @@ -3460,10 +3460,10 @@ _0811369C: b _08113B3A .align 2, 0 _081136FC: .4byte gUnknown_03004828 -_08113700: .4byte gUnknown_08400F8C -_08113704: .4byte gUnknown_020238CC +_08113700: .4byte gBattleStringsTable +_08113704: .4byte gDisplayedStringBattle _08113708: .4byte gTasks -_0811370C: .4byte gUnknown_02024D1E +_0811370C: .4byte gBattleCommunication _08113710: .4byte gOtherText_YesNoAndPlayer _08113714: .4byte 0x0000ffff _08113718: .4byte 0x00002d9f @@ -3474,7 +3474,7 @@ _0811371C: ands r0, r1 cmp r0, 0 beq _08113742 - ldr r4, _081137D0 @ =gUnknown_02024D1E + ldr r4, _081137D0 @ =gBattleCommunication ldrb r0, [r4, 0x1] cmp r0, 0 beq _08113742 @@ -3491,7 +3491,7 @@ _08113742: ands r0, r1 cmp r0, 0 beq _08113768 - ldr r4, _081137D0 @ =gUnknown_02024D1E + ldr r4, _081137D0 @ =gBattleCommunication ldrb r0, [r4, 0x1] cmp r0, 0 bne _08113768 @@ -3517,16 +3517,16 @@ _08113768: movs r2, 0x8 movs r3, 0x1D bl ZeroFillWindowRect - bl sub_814A7FC - ldr r0, _081137D8 @ =gUnknown_08400F8C + bl DestroyMenuCursor + ldr r0, _081137D8 @ =gBattleStringsTable movs r1, 0x92 lsls r1, 3 adds r0, r1 ldr r0, [r0] - bl get_battle_strings_ + bl StrCpyDecodeToDisplayedStringBattle ldr r2, [r4] adds r0, r2, 0x4 - ldr r1, _081137DC @ =gUnknown_020238CC + ldr r1, _081137DC @ =gDisplayedStringBattle adds r2, 0x34 ldrb r2, [r2] movs r3, 0xF @@ -3535,7 +3535,7 @@ _08113768: bl sub_8002EB0 movs r0, 0x5 bl PlaySE - ldr r0, _081137D0 @ =gUnknown_02024D1E + ldr r0, _081137D0 @ =gBattleCommunication ldrb r2, [r0, 0x1] cmp r2, 0 beq _081137E4 @@ -3549,10 +3549,10 @@ _08113768: b _0811380A .align 2, 0 _081137CC: .4byte gMain -_081137D0: .4byte gUnknown_02024D1E +_081137D0: .4byte gBattleCommunication _081137D4: .4byte gUnknown_03004828 -_081137D8: .4byte gUnknown_08400F8C -_081137DC: .4byte gUnknown_020238CC +_081137D8: .4byte gBattleStringsTable +_081137DC: .4byte gDisplayedStringBattle _081137E0: .4byte gTasks _081137E4: ldr r0, _08113868 @ =gTasks @@ -3591,16 +3591,16 @@ _08113818: movs r2, 0x8 movs r3, 0x1D bl ZeroFillWindowRect - bl sub_814A7FC - ldr r0, _08113874 @ =gUnknown_08400F8C + bl DestroyMenuCursor + ldr r0, _08113874 @ =gBattleStringsTable movs r1, 0x92 lsls r1, 3 adds r0, r1 ldr r0, [r0] - bl get_battle_strings_ + bl StrCpyDecodeToDisplayedStringBattle ldr r2, [r4] adds r0, r2, 0x4 - ldr r1, _08113878 @ =gUnknown_020238CC + ldr r1, _08113878 @ =gDisplayedStringBattle adds r2, 0x34 ldrb r2, [r2] movs r3, 0xF @@ -3621,8 +3621,8 @@ _08113818: _08113868: .4byte gTasks _0811386C: .4byte gMain _08113870: .4byte gUnknown_03004828 -_08113874: .4byte gUnknown_08400F8C -_08113878: .4byte gUnknown_020238CC +_08113874: .4byte gBattleStringsTable +_08113878: .4byte gDisplayedStringBattle _0811387C: ldr r0, _081138B8 @ =gPaletteFade ldrb r1, [r0, 0x7] @@ -3704,15 +3704,15 @@ _08113910: bl IsHMMove2 cmp r0, 0 beq _08113970 - ldr r0, _0811395C @ =gUnknown_08400F8C + ldr r0, _0811395C @ =gBattleStringsTable ldr r3, _08113960 @ =0x000004cc adds r0, r3 ldr r0, [r0] - bl get_battle_strings_ + bl StrCpyDecodeToDisplayedStringBattle ldr r0, _08113964 @ =gUnknown_03004828 ldr r2, [r0] adds r0, r2, 0x4 - ldr r1, _08113968 @ =gUnknown_020238CC + ldr r1, _08113968 @ =gDisplayedStringBattle adds r2, 0x34 ldrb r2, [r2] movs r3, 0xF @@ -3728,13 +3728,13 @@ _08113910: strh r1, [r0, 0x18] b _08113B3A .align 2, 0 -_0811395C: .4byte gUnknown_08400F8C +_0811395C: .4byte gBattleStringsTable _08113960: .4byte 0x000004cc _08113964: .4byte gUnknown_03004828 -_08113968: .4byte gUnknown_020238CC +_08113968: .4byte gDisplayedStringBattle _0811396C: .4byte gTasks _08113970: - ldr r1, _081139D0 @ =gUnknown_03004290 + ldr r1, _081139D0 @ =gBattleTextBuff2 movs r0, 0xFD strb r0, [r1] movs r0, 0x2 @@ -3754,16 +3754,16 @@ _08113970: mov r0, r8 adds r2, r4, 0 bl SetMonMoveSlot - ldr r0, _081139D8 @ =gUnknown_08400F8C + ldr r0, _081139D8 @ =gBattleStringsTable movs r3, 0xCF lsls r3, 2 adds r0, r3 ldr r0, [r0] - bl get_battle_strings_ + bl StrCpyDecodeToDisplayedStringBattle ldr r0, _081139DC @ =gUnknown_03004828 ldr r2, [r0] adds r0, r2, 0x4 - ldr r1, _081139E0 @ =gUnknown_020238CC + ldr r1, _081139E0 @ =gDisplayedStringBattle adds r2, 0x34 ldrb r2, [r2] movs r3, 0xF @@ -3779,11 +3779,11 @@ _08113970: adds r0, 0x1 b _08113B38 .align 2, 0 -_081139D0: .4byte gUnknown_03004290 +_081139D0: .4byte gBattleTextBuff2 _081139D4: .4byte word_2024E82 -_081139D8: .4byte gUnknown_08400F8C +_081139D8: .4byte gBattleStringsTable _081139DC: .4byte gUnknown_03004828 -_081139E0: .4byte gUnknown_020238CC +_081139E0: .4byte gDisplayedStringBattle _081139E4: .4byte gTasks _081139E8: ldr r4, _08113A2C @ =gUnknown_03004828 @@ -3799,12 +3799,12 @@ _081139F4: beq _08113A00 b _08113B3A _08113A00: - ldr r0, _08113A30 @ =gUnknown_08400F8C + ldr r0, _08113A30 @ =gBattleStringsTable ldr r0, [r0, 0x1C] - bl get_battle_strings_ + bl StrCpyDecodeToDisplayedStringBattle ldr r2, [r4] adds r0, r2, 0x4 - ldr r1, _08113A34 @ =gUnknown_020238CC + ldr r1, _08113A34 @ =gDisplayedStringBattle adds r2, 0x34 ldrb r2, [r2] movs r3, 0xF @@ -3821,8 +3821,8 @@ _08113A00: b _08113B38 .align 2, 0 _08113A2C: .4byte gUnknown_03004828 -_08113A30: .4byte gUnknown_08400F8C -_08113A34: .4byte gUnknown_020238CC +_08113A30: .4byte gBattleStringsTable +_08113A34: .4byte gDisplayedStringBattle _08113A38: .4byte gTasks _08113A3C: ldr r4, _08113A80 @ =gUnknown_03004828 @@ -3834,15 +3834,15 @@ _08113A3C: lsls r0, 24 cmp r0, 0 bne _08113B3A - ldr r0, _08113A84 @ =gUnknown_08400F8C + ldr r0, _08113A84 @ =gBattleStringsTable movs r1, 0xD0 lsls r1, 2 adds r0, r1 ldr r0, [r0] - bl get_battle_strings_ + bl StrCpyDecodeToDisplayedStringBattle ldr r2, [r4] adds r0, r2, 0x4 - ldr r1, _08113A88 @ =gUnknown_020238CC + ldr r1, _08113A88 @ =gDisplayedStringBattle adds r2, 0x34 ldrb r2, [r2] movs r4, 0xF @@ -3858,17 +3858,17 @@ _08113A3C: b _08113B3A .align 2, 0 _08113A80: .4byte gUnknown_03004828 -_08113A84: .4byte gUnknown_08400F8C -_08113A88: .4byte gUnknown_020238CC +_08113A84: .4byte gBattleStringsTable +_08113A88: .4byte gDisplayedStringBattle _08113A8C: .4byte gTasks _08113A90: - ldr r0, _08113AC8 @ =gUnknown_08400F8C + ldr r0, _08113AC8 @ =gBattleStringsTable ldr r0, [r0, 0x20] - bl get_battle_strings_ + bl StrCpyDecodeToDisplayedStringBattle ldr r0, _08113ACC @ =gUnknown_03004828 ldr r2, [r0] adds r0, r2, 0x4 - ldr r1, _08113AD0 @ =gUnknown_020238CC + ldr r1, _08113AD0 @ =gDisplayedStringBattle adds r2, 0x34 ldrb r2, [r2] movs r3, 0xF @@ -3888,18 +3888,18 @@ _08113A90: strh r1, [r0, 0x18] b _08113B3A .align 2, 0 -_08113AC8: .4byte gUnknown_08400F8C +_08113AC8: .4byte gBattleStringsTable _08113ACC: .4byte gUnknown_03004828 -_08113AD0: .4byte gUnknown_020238CC +_08113AD0: .4byte gDisplayedStringBattle _08113AD4: .4byte gTasks _08113AD8: - ldr r0, _08113B08 @ =gUnknown_08400F8C + ldr r0, _08113B08 @ =gBattleStringsTable ldr r0, [r0, 0x24] - bl get_battle_strings_ + bl StrCpyDecodeToDisplayedStringBattle ldr r0, _08113B0C @ =gUnknown_03004828 ldr r2, [r0] adds r0, r2, 0x4 - ldr r1, _08113B10 @ =gUnknown_020238CC + ldr r1, _08113B10 @ =gDisplayedStringBattle adds r2, 0x34 ldrb r2, [r2] movs r3, 0xF @@ -3915,9 +3915,9 @@ _08113AD8: strh r1, [r0, 0x8] b _08113B3A .align 2, 0 -_08113B08: .4byte gUnknown_08400F8C +_08113B08: .4byte gBattleStringsTable _08113B0C: .4byte gUnknown_03004828 -_08113B10: .4byte gUnknown_020238CC +_08113B10: .4byte gDisplayedStringBattle _08113B14: .4byte gTasks _08113B18: ldr r0, _08113B48 @ =gUnknown_03004828 @@ -6694,7 +6694,7 @@ _081150D4: .4byte gUnknown_030041B8 thumb_func_start sub_81150D8 sub_81150D8: @ 81150D8 push {lr} - ldr r0, _081150F4 @ =gUnknown_02024D1E + ldr r0, _081150F4 @ =gBattleCommunication ldrb r1, [r0, 0x1] lsls r1, 28 movs r0, 0x90 @@ -6706,7 +6706,7 @@ sub_81150D8: @ 81150D8 pop {r0} bx r0 .align 2, 0 -_081150F4: .4byte gUnknown_02024D1E +_081150F4: .4byte gBattleCommunication thumb_func_end sub_81150D8 thumb_func_start HBlankCB_TradeEvolutionScene diff --git a/asm/field_effect.s b/asm/field_effect.s deleted file mode 100644 index 2dfa491dc..000000000 --- a/asm/field_effect.s +++ /dev/null @@ -1,7738 +0,0 @@ - .include "constants/gba_constants.inc" - .include "constants/species_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start CreateTrainerSprite_BirchSpeech -CreateTrainerSprite_BirchSpeech: @ 80859BC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x18 - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - mov r9, r3 - ldr r7, [sp, 0x34] - lsls r4, 24 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 16 - lsrs r6, 16 - mov r0, r9 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsrs r4, 21 - ldr r3, _08085A44 @ =gTrainerFrontPicPaletteTable - mov r8, r3 - add r8, r4 - mov r0, r8 - adds r1, r7, 0 - bl LoadCompressedObjectPaletteOverrideBuffer - ldr r0, _08085A48 @ =gTrainerFrontPicTable - adds r4, r0 - adds r0, r4, 0 - adds r1, r7, 0 - bl LoadCompressedObjectPicOverrideBuffer - mov r1, sp - ldrh r0, [r4, 0x6] - movs r2, 0 - strh r0, [r1] - mov r3, r8 - ldrh r0, [r3, 0x4] - strh r0, [r1, 0x2] - ldr r0, _08085A4C @ =gOamData_839F0F4 - str r0, [sp, 0x4] - ldr r0, _08085A50 @ =gDummySpriteAnimTable - str r0, [sp, 0x8] - str r2, [sp, 0xC] - ldr r0, _08085A54 @ =gDummySpriteAffineAnimTable - str r0, [sp, 0x10] - ldr r0, _08085A58 @ =SpriteCallbackDummy - str r0, [sp, 0x14] - lsls r5, 16 - asrs r5, 16 - lsls r6, 16 - asrs r6, 16 - mov r0, sp - adds r1, r5, 0 - adds r2, r6, 0 - mov r3, r9 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - add sp, 0x18 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08085A44: .4byte gTrainerFrontPicPaletteTable -_08085A48: .4byte gTrainerFrontPicTable -_08085A4C: .4byte gOamData_839F0F4 -_08085A50: .4byte gDummySpriteAnimTable -_08085A54: .4byte gDummySpriteAffineAnimTable -_08085A58: .4byte SpriteCallbackDummy - thumb_func_end CreateTrainerSprite_BirchSpeech - - thumb_func_start LoadTrainerGfx_TrainerCard -LoadTrainerGfx_TrainerCard: @ 8085A5C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r1, r2, 0 - lsls r4, 24 - lsls r5, 16 - lsrs r5, 16 - ldr r0, _08085A8C @ =gTrainerFrontPicTable - lsrs r4, 21 - adds r0, r4, r0 - ldr r0, [r0] - bl LZDecompressVram - ldr r0, _08085A90 @ =gTrainerFrontPicPaletteTable - adds r4, r0 - ldr r0, [r4] - adds r1, r5, 0 - movs r2, 0x20 - bl LoadCompressedPalette - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08085A8C: .4byte gTrainerFrontPicTable -_08085A90: .4byte gTrainerFrontPicPaletteTable - thumb_func_end LoadTrainerGfx_TrainerCard - - thumb_func_start CreateBirchSprite -CreateBirchSprite: @ 8085A94 - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 24 - lsrs r6, 24 - ldr r0, _08085ACC @ =gUnknown_0839F114 - bl LoadSpritePalette - ldr r0, _08085AD0 @ =gSpriteTemplate_839F128 - lsls r4, 16 - asrs r4, 16 - lsls r5, 16 - asrs r5, 16 - adds r1, r4, 0 - adds r2, r5, 0 - adds r3, r6, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08085ACC: .4byte gUnknown_0839F114 -_08085AD0: .4byte gSpriteTemplate_839F128 - thumb_func_end CreateBirchSprite - - thumb_func_start CreateMonSprite_PicBox -CreateMonSprite_PicBox: @ 8085AD4 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0x8 - adds r4, r0, 0 - adds r6, r1, 0 - mov r8, r2 - mov r10, r3 - lsls r4, 16 - lsrs r4, 16 - lsls r6, 16 - lsrs r6, 16 - mov r0, r8 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - mov r0, r10 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - lsls r0, r4, 3 - mov r9, r0 - ldr r0, _08085B74 @ =gMonFrontPicTable - add r0, r9 - ldr r1, _08085B78 @ =gMonFrontPicCoords - lsls r2, r4, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - ldr r3, _08085B7C @ =gUnknown_081FAF4C - ldr r3, [r3, 0xC] - str r3, [sp] - str r4, [sp, 0x4] - bl DecompressPicFromTable_2 - ldr r5, _08085B80 @ =gMonPaletteTable - add r9, r5 - mov r0, r9 - bl LoadCompressedObjectPalette - adds r0, r4, 0 - movs r1, 0x3 - bl GetMonSpriteTemplate_803C56C - ldr r4, _08085B84 @ =gUnknown_02024E8C - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x2] - ldrh r0, [r5, 0x4] - bl IndexOfSpritePaletteTag - adds r0, 0x10 - lsls r0, 24 - lsrs r0, 24 - bl sub_807DE38 - lsls r6, 16 - asrs r6, 16 - mov r0, r8 - lsls r0, 16 - asrs r0, 16 - mov r8, r0 - adds r0, r4, 0 - adds r1, r6, 0 - mov r2, r8 - mov r3, r10 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08085B74: .4byte gMonFrontPicTable -_08085B78: .4byte gMonFrontPicCoords -_08085B7C: .4byte gUnknown_081FAF4C -_08085B80: .4byte gMonPaletteTable -_08085B84: .4byte gUnknown_02024E8C - thumb_func_end CreateMonSprite_PicBox - - thumb_func_start CreateMonSprite_FieldMove -CreateMonSprite_FieldMove: @ 8085B88 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0xC - adds r5, r0, 0 - mov r10, r1 - adds r4, r2, 0 - adds r6, r3, 0 - ldr r0, [sp, 0x28] - mov r8, r0 - ldr r0, [sp, 0x2C] - mov r9, r0 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 16 - lsrs r6, 16 - mov r0, r8 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - mov r0, r9 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r0, r5, 3 - ldr r1, _08085C34 @ =gMonFrontPicTable - adds r0, r1 - ldr r1, _08085C38 @ =gMonFrontPicCoords - lsls r2, r5, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - ldr r3, _08085C3C @ =gUnknown_081FAF4C - ldr r3, [r3, 0xC] - str r3, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - bl HandleLoadSpecialPokePic - adds r0, r5, 0 - mov r1, r10 - adds r2, r4, 0 - bl sub_80409C8 - adds r4, r0, 0 - bl LoadCompressedObjectPalette - adds r0, r5, 0 - movs r1, 0x3 - bl GetMonSpriteTemplate_803C56C - ldr r5, _08085C40 @ =gUnknown_02024E8C - ldrh r0, [r4, 0x4] - strh r0, [r5, 0x2] - ldrh r0, [r4, 0x4] - bl IndexOfSpritePaletteTag - adds r0, 0x10 - lsls r0, 24 - lsrs r0, 24 - bl sub_807DE38 - lsls r6, 16 - asrs r6, 16 - mov r0, r8 - lsls r0, 16 - asrs r0, 16 - mov r8, r0 - adds r0, r5, 0 - adds r1, r6, 0 - mov r2, r8 - mov r3, r9 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08085C34: .4byte gMonFrontPicTable -_08085C38: .4byte gMonFrontPicCoords -_08085C3C: .4byte gUnknown_081FAF4C -_08085C40: .4byte gUnknown_02024E8C - thumb_func_end CreateMonSprite_FieldMove - - thumb_func_start FreeResourcesAndDestroySprite -FreeResourcesAndDestroySprite: @ 8085C44 - push {r4,lr} - adds r4, r0, 0 - bl sub_807DE68 - ldrb r0, [r4, 0x5] - lsrs r0, 4 - bl GetSpritePaletteTagByPaletteNum - lsls r0, 16 - lsrs r0, 16 - bl FreeSpritePaletteByTag - ldrb r0, [r4, 0x1] - lsls r0, 30 - cmp r0, 0 - beq _08085C6E - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix -_08085C6E: - adds r0, r4, 0 - bl DestroySprite - pop {r4} - pop {r0} - bx r0 - thumb_func_end FreeResourcesAndDestroySprite - - thumb_func_start MultiplyInvertedPaletteRGBComponents -MultiplyInvertedPaletteRGBComponents: @ 8085C7C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 16 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - ldr r4, _08085D00 @ =gPlttBufferUnfaded - lsrs r0, 15 - adds r4, r0, r4 - ldrh r4, [r4] - movs r5, 0x1F - mov r9, r5 - mov r8, r4 - mov r6, r8 - ands r6, r5 - mov r8, r6 - movs r6, 0xF8 - lsls r6, 2 - ands r6, r4 - lsrs r6, 5 - movs r5, 0xF8 - lsls r5, 7 - ands r4, r5 - lsrs r4, 10 - mov r7, r9 - mov r5, r8 - subs r7, r5 - mov r12, r7 - mov r7, r12 - muls r7, r1 - adds r1, r7, 0 - asrs r1, 4 - add r8, r1 - mov r5, r9 - subs r1, r5, r6 - muls r1, r2 - asrs r1, 4 - adds r6, r1 - subs r5, r4 - mov r9, r5 - mov r1, r9 - muls r1, r3 - asrs r1, 4 - adds r4, r1 - mov r7, r8 - lsls r7, 16 - lsls r6, 21 - orrs r6, r7 - lsls r4, 26 - orrs r4, r6 - lsrs r4, 16 - ldr r1, _08085D04 @ =gPlttBufferFaded - adds r0, r1 - strh r4, [r0] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08085D00: .4byte gPlttBufferUnfaded -_08085D04: .4byte gPlttBufferFaded - thumb_func_end MultiplyInvertedPaletteRGBComponents - - thumb_func_start MultiplyPaletteRGBComponents -MultiplyPaletteRGBComponents: @ 8085D08 - push {r4-r6,lr} - mov r6, r8 - push {r6} - lsls r0, 16 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - ldr r4, _08085D78 @ =gPlttBufferUnfaded - lsrs r0, 15 - adds r4, r0, r4 - ldrh r4, [r4] - movs r5, 0x1F - mov r8, r5 - mov r6, r8 - ands r6, r4 - mov r8, r6 - movs r5, 0xF8 - lsls r5, 2 - ands r5, r4 - lsrs r5, 5 - movs r6, 0xF8 - lsls r6, 7 - ands r4, r6 - lsrs r4, 10 - mov r6, r8 - muls r6, r1 - adds r1, r6, 0 - asrs r1, 4 - mov r6, r8 - subs r6, r1 - adds r1, r5, 0 - muls r1, r2 - asrs r1, 4 - subs r5, r1 - adds r1, r4, 0 - muls r1, r3 - asrs r1, 4 - subs r4, r1 - lsls r6, 16 - lsls r5, 21 - orrs r5, r6 - lsls r4, 26 - orrs r4, r5 - lsrs r4, 16 - ldr r1, _08085D7C @ =gPlttBufferFaded - adds r0, r1 - strh r4, [r0] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08085D78: .4byte gPlttBufferUnfaded -_08085D7C: .4byte gPlttBufferFaded - thumb_func_end MultiplyPaletteRGBComponents - - thumb_func_start FldEff_PokecenterHeal -FldEff_PokecenterHeal: @ 8085D80 - push {r4,lr} - bl CalculatePlayerPartyCount - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _08085DBC @ =Task_PokecenterHeal - movs r1, 0xFF - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _08085DC0 @ =gTasks - adds r1, r0 - strh r4, [r1, 0xA] - movs r0, 0x5D - strh r0, [r1, 0xC] - movs r0, 0x24 - strh r0, [r1, 0xE] - movs r0, 0x7C - strh r0, [r1, 0x10] - movs r0, 0x18 - strh r0, [r1, 0x12] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08085DBC: .4byte Task_PokecenterHeal -_08085DC0: .4byte gTasks - thumb_func_end FldEff_PokecenterHeal - - thumb_func_start Task_PokecenterHeal -Task_PokecenterHeal: @ 8085DC4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _08085DEC @ =gTasks - adds r1, r0 - ldr r2, _08085DF0 @ =gUnknown_0839F268 - movs r3, 0x8 - ldrsh r0, [r1, r3] - lsls r0, 2 - adds r0, r2 - ldr r2, [r0] - adds r0, r1, 0 - bl _call_via_r2 - pop {r0} - bx r0 - .align 2, 0 -_08085DEC: .4byte gTasks -_08085DF0: .4byte gUnknown_0839F268 - thumb_func_end Task_PokecenterHeal - - thumb_func_start PokecenterHealEffect_0 -PokecenterHealEffect_0: @ 8085DF4 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r1, 0xA - ldrsh r0, [r4, r1] - movs r2, 0xC - ldrsh r1, [r4, r2] - movs r3, 0xE - ldrsh r2, [r4, r3] - movs r3, 0x1 - bl CreatePokeballGlowSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x14] - movs r1, 0x10 - ldrsh r0, [r4, r1] - movs r2, 0x12 - ldrsh r1, [r4, r2] - bl PokecenterHealEffectHelper - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x16] - pop {r4} - pop {r0} - bx r0 - thumb_func_end PokecenterHealEffect_0 - - thumb_func_start PokecenterHealEffect_1 -PokecenterHealEffect_1: @ 8085E30 - push {r4,lr} - adds r2, r0, 0 - ldr r3, _08085E68 @ =gSprites - movs r1, 0x14 - ldrsh r0, [r2, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - movs r4, 0x2E - ldrsh r0, [r1, r4] - cmp r0, 0x1 - ble _08085E62 - movs r0, 0x16 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x2E] - adds r1, 0x1 - strh r1, [r0, 0x2E] - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] -_08085E62: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08085E68: .4byte gSprites - thumb_func_end PokecenterHealEffect_1 - - thumb_func_start PokecenterHealEffect_2 -PokecenterHealEffect_2: @ 8085E6C - push {lr} - adds r3, r0, 0 - ldr r2, _08085E90 @ =gSprites - movs r0, 0x14 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x2E - ldrsh r0, [r0, r1] - cmp r0, 0x4 - ble _08085E8C - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] -_08085E8C: - pop {r0} - bx r0 - .align 2, 0 -_08085E90: .4byte gSprites - thumb_func_end PokecenterHealEffect_2 - - thumb_func_start PokecenterHealEffect_3 -PokecenterHealEffect_3: @ 8085E94 - push {lr} - ldr r2, _08085ECC @ =gSprites - movs r3, 0x14 - ldrsh r1, [r0, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0x6 - ble _08085EC6 - adds r0, r1, 0 - bl DestroySprite - movs r0, 0x19 - bl FieldEffectActiveListRemove - ldr r0, _08085ED0 @ =Task_PokecenterHeal - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_08085EC6: - pop {r0} - bx r0 - .align 2, 0 -_08085ECC: .4byte gSprites -_08085ED0: .4byte Task_PokecenterHeal - thumb_func_end PokecenterHealEffect_3 - - thumb_func_start FldEff_HallOfFameRecord -FldEff_HallOfFameRecord: @ 8085ED4 - push {r4,lr} - bl CalculatePlayerPartyCount - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _08085F08 @ =Task_HallOfFameRecord - movs r1, 0xFF - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _08085F0C @ =gTasks - adds r1, r0 - strh r4, [r1, 0xA] - movs r0, 0x75 - strh r0, [r1, 0xC] - movs r0, 0x34 - strh r0, [r1, 0xE] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08085F08: .4byte Task_HallOfFameRecord -_08085F0C: .4byte gTasks - thumb_func_end FldEff_HallOfFameRecord - - thumb_func_start Task_HallOfFameRecord -Task_HallOfFameRecord: @ 8085F10 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _08085F38 @ =gTasks - adds r1, r0 - ldr r2, _08085F3C @ =gUnknown_0839F278 - movs r3, 0x8 - ldrsh r0, [r1, r3] - lsls r0, 2 - adds r0, r2 - ldr r2, [r0] - adds r0, r1, 0 - bl _call_via_r2 - pop {r0} - bx r0 - .align 2, 0 -_08085F38: .4byte gTasks -_08085F3C: .4byte gUnknown_0839F278 - thumb_func_end Task_HallOfFameRecord - - thumb_func_start HallOfFameRecordEffect_0 -HallOfFameRecordEffect_0: @ 8085F40 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r1, 0xA - ldrsh r0, [r4, r1] - movs r2, 0xC - ldrsh r1, [r4, r2] - movs r3, 0xE - ldrsh r2, [r4, r3] - movs r3, 0 - bl CreatePokeballGlowSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x14] - ldr r0, _08085FB0 @ =Task_HallOfFameRecord - bl FindTaskIdByFunc - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - movs r1, 0x78 - movs r2, 0x18 - movs r3, 0 - bl HallOfFameRecordEffectHelper - adds r0, r4, 0 - movs r1, 0x28 - movs r2, 0x8 - movs r3, 0x1 - bl HallOfFameRecordEffectHelper - adds r0, r4, 0 - movs r1, 0x48 - movs r2, 0x8 - movs r3, 0x1 - bl HallOfFameRecordEffectHelper - adds r0, r4, 0 - movs r1, 0xA8 - movs r2, 0x8 - movs r3, 0x1 - bl HallOfFameRecordEffectHelper - adds r0, r4, 0 - movs r1, 0xC8 - movs r2, 0x8 - movs r3, 0x1 - bl HallOfFameRecordEffectHelper - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08085FB0: .4byte Task_HallOfFameRecord - thumb_func_end HallOfFameRecordEffect_0 - - thumb_func_start HallOfFameRecordEffect_1 -HallOfFameRecordEffect_1: @ 8085FB4 - push {lr} - adds r3, r0, 0 - ldr r2, _08085FE0 @ =gSprites - movs r0, 0x14 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x2E - ldrsh r0, [r0, r1] - cmp r0, 0x1 - ble _08085FDA - ldrh r0, [r3, 0x26] - adds r0, 0x1 - strh r0, [r3, 0x26] - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] -_08085FDA: - pop {r0} - bx r0 - .align 2, 0 -_08085FE0: .4byte gSprites - thumb_func_end HallOfFameRecordEffect_1 - - thumb_func_start HallOfFameRecordEffect_2 -HallOfFameRecordEffect_2: @ 8085FE4 - push {lr} - adds r3, r0, 0 - ldr r2, _08086008 @ =gSprites - movs r0, 0x14 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x2E - ldrsh r0, [r0, r1] - cmp r0, 0x4 - ble _08086004 - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] -_08086004: - pop {r0} - bx r0 - .align 2, 0 -_08086008: .4byte gSprites - thumb_func_end HallOfFameRecordEffect_2 - - thumb_func_start HallOfFameRecordEffect_3 -HallOfFameRecordEffect_3: @ 808600C - push {lr} - ldr r2, _08086044 @ =gSprites - movs r3, 0x14 - ldrsh r1, [r0, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0x6 - ble _0808603E - adds r0, r1, 0 - bl DestroySprite - movs r0, 0x3E - bl FieldEffectActiveListRemove - ldr r0, _08086048 @ =Task_HallOfFameRecord - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_0808603E: - pop {r0} - bx r0 - .align 2, 0 -_08086044: .4byte gSprites -_08086048: .4byte Task_HallOfFameRecord - thumb_func_end HallOfFameRecordEffect_3 - - thumb_func_start CreatePokeballGlowSprite -CreatePokeballGlowSprite: @ 808604C - push {r4-r6,lr} - mov r6, r8 - push {r6} - mov r8, r0 - adds r4, r1, 0 - adds r5, r2, 0 - adds r6, r3, 0 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 16 - lsrs r6, 16 - ldr r0, _08086098 @ =SpriteCB_PokeballGlowEffect - bl CreateInvisibleSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r2, _0808609C @ =gSprites - adds r1, r2 - strh r4, [r1, 0x24] - strh r5, [r1, 0x26] - strh r6, [r1, 0x38] - mov r2, r8 - strh r2, [r1, 0x3A] - strh r0, [r1, 0x3C] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08086098: .4byte SpriteCB_PokeballGlowEffect -_0808609C: .4byte gSprites - thumb_func_end CreatePokeballGlowSprite - - thumb_func_start SpriteCB_PokeballGlowEffect -SpriteCB_PokeballGlowEffect: @ 80860A0 - push {lr} - ldr r2, _080860B8 @ =gUnknown_0839F288 - movs r3, 0x2E - ldrsh r1, [r0, r3] - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_080860B8: .4byte gUnknown_0839F288 - thumb_func_end SpriteCB_PokeballGlowEffect - - thumb_func_start PokeballGlowEffect_0 -PokeballGlowEffect_0: @ 80860BC - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x30] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080860D4 - subs r0, r1, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - cmp r0, 0 - bne _08086130 -_080860D4: - movs r0, 0x19 - strh r0, [r4, 0x30] - ldr r0, _08086148 @ =gSpriteTemplate_839F208 - ldr r1, _0808614C @ =gUnknown_0839F2A8 - movs r2, 0x32 - ldrsh r3, [r4, r2] - lsls r3, 2 - adds r3, r1 - ldrh r1, [r4, 0x24] - ldrh r2, [r3] - adds r1, r2 - lsls r1, 16 - asrs r1, 16 - ldrh r2, [r4, 0x26] - ldrh r3, [r3, 0x2] - adds r2, r3 - lsls r2, 16 - asrs r2, 16 - movs r3, 0 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08086150 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - movs r2, 0x8 - orrs r0, r2 - strb r0, [r1, 0x5] - ldrh r0, [r4, 0x3C] - strh r0, [r1, 0x2E] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x3A] - subs r0, 0x1 - strh r0, [r4, 0x3A] - movs r0, 0x17 - bl PlaySE -_08086130: - movs r1, 0x3A - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08086142 - movs r0, 0x20 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] -_08086142: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08086148: .4byte gSpriteTemplate_839F208 -_0808614C: .4byte gUnknown_0839F2A8 -_08086150: .4byte gSprites - thumb_func_end PokeballGlowEffect_0 - - thumb_func_start PokeballGlowEffect_1 -PokeballGlowEffect_1: @ 8086154 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x30] - subs r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r2, r0, 16 - cmp r2, 0 - bne _08086184 - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - movs r0, 0x8 - strh r0, [r1, 0x30] - strh r2, [r1, 0x32] - strh r2, [r1, 0x34] - movs r2, 0x38 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _08086184 - movs r0, 0xB8 - lsls r0, 1 - bl PlayFanfare -_08086184: - pop {r0} - bx r0 - thumb_func_end PokeballGlowEffect_1 - - thumb_func_start PokeballGlowEffect_2 -PokeballGlowEffect_2: @ 8086188 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r7, r0, 0 - ldrh r0, [r7, 0x30] - subs r0, 0x1 - strh r0, [r7, 0x30] - lsls r0, 16 - cmp r0, 0 - bne _080861B8 - movs r0, 0x8 - strh r0, [r7, 0x30] - ldrh r0, [r7, 0x32] - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - strh r0, [r7, 0x32] - cmp r0, 0 - bne _080861B8 - ldrh r0, [r7, 0x34] - adds r0, 0x1 - strh r0, [r7, 0x34] -_080861B8: - ldrh r4, [r7, 0x32] - adds r4, 0x3 - movs r0, 0x3 - mov r8, r0 - mov r1, r8 - ands r4, r1 - ldr r3, _080862B0 @ =0x00001007 - mov r10, r3 - mov r0, r10 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 4 - movs r1, 0x84 - lsls r1, 17 - adds r0, r1 - lsrs r0, 16 - ldr r6, _080862B4 @ =gUnknown_0839F2C0 - adds r1, r4, r6 - ldrb r1, [r1] - ldr r5, _080862B8 @ =gUnknown_0839F2C4 - adds r2, r4, r5 - ldrb r2, [r2] - ldr r3, _080862BC @ =gUnknown_0839F2C8 - mov r9, r3 - add r4, r9 - ldrb r3, [r4] - bl MultiplyInvertedPaletteRGBComponents - ldrh r4, [r7, 0x32] - adds r4, 0x2 - mov r0, r8 - ands r4, r0 - mov r0, r10 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 4 - movs r1, 0x83 - lsls r1, 17 - adds r0, r1 - lsrs r0, 16 - adds r1, r4, r6 - ldrb r1, [r1] - adds r2, r4, r5 - ldrb r2, [r2] - add r4, r9 - ldrb r3, [r4] - bl MultiplyInvertedPaletteRGBComponents - ldrh r4, [r7, 0x32] - adds r4, 0x1 - mov r3, r8 - ands r4, r3 - mov r0, r10 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 4 - movs r1, 0x81 - lsls r1, 17 - adds r0, r1 - lsrs r0, 16 - adds r1, r4, r6 - ldrb r1, [r1] - adds r2, r4, r5 - ldrb r2, [r2] - add r4, r9 - ldrb r3, [r4] - bl MultiplyInvertedPaletteRGBComponents - ldrh r4, [r7, 0x32] - lsls r4, 24 - lsrs r4, 24 - mov r0, r10 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 4 - ldr r3, _080862C0 @ =0x01050000 - adds r0, r3 - lsrs r0, 16 - adds r6, r4, r6 - ldrb r6, [r6] - adds r5, r4, r5 - ldrb r5, [r5] - add r4, r9 - ldrb r4, [r4] - adds r1, r6, 0 - adds r2, r5, 0 - adds r3, r4, 0 - bl MultiplyInvertedPaletteRGBComponents - mov r0, r10 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 4 - ldr r1, _080862C4 @ =0x01030000 - adds r0, r1 - lsrs r0, 16 - adds r1, r6, 0 - adds r2, r5, 0 - adds r3, r4, 0 - bl MultiplyInvertedPaletteRGBComponents - movs r3, 0x34 - ldrsh r0, [r7, r3] - cmp r0, 0x2 - ble _080862A2 - ldrh r0, [r7, 0x2E] - adds r0, 0x1 - movs r1, 0 - strh r0, [r7, 0x2E] - movs r0, 0x8 - strh r0, [r7, 0x30] - strh r1, [r7, 0x32] -_080862A2: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080862B0: .4byte 0x00001007 -_080862B4: .4byte gUnknown_0839F2C0 -_080862B8: .4byte gUnknown_0839F2C4 -_080862BC: .4byte gUnknown_0839F2C8 -_080862C0: .4byte 0x01050000 -_080862C4: .4byte 0x01030000 - thumb_func_end PokeballGlowEffect_2 - - thumb_func_start PokeballGlowEffect_3 -PokeballGlowEffect_3: @ 80862C8 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r2, r0, 0 - ldrh r0, [r2, 0x30] - subs r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - cmp r0, 0 - bne _080862F8 - movs r0, 0x8 - strh r0, [r2, 0x30] - ldrh r0, [r2, 0x32] - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - strh r0, [r2, 0x32] - cmp r0, 0x3 - bne _080862F8 - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - movs r0, 0x1E - strh r0, [r2, 0x30] -_080862F8: - ldrh r4, [r2, 0x32] - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080863A4 @ =0x00001007 - mov r8, r0 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 4 - movs r1, 0x84 - lsls r1, 17 - adds r0, r1 - lsrs r0, 16 - ldr r1, _080863A8 @ =gUnknown_0839F2C0 - adds r1, r4, r1 - ldrb r6, [r1] - ldr r1, _080863AC @ =gUnknown_0839F2C4 - adds r1, r4, r1 - ldrb r5, [r1] - ldr r1, _080863B0 @ =gUnknown_0839F2C8 - adds r4, r1 - ldrb r4, [r4] - adds r1, r6, 0 - adds r2, r5, 0 - adds r3, r4, 0 - bl MultiplyInvertedPaletteRGBComponents - mov r0, r8 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 4 - movs r1, 0x83 - lsls r1, 17 - adds r0, r1 - lsrs r0, 16 - adds r1, r6, 0 - adds r2, r5, 0 - adds r3, r4, 0 - bl MultiplyInvertedPaletteRGBComponents - mov r0, r8 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 4 - movs r1, 0x81 - lsls r1, 17 - adds r0, r1 - lsrs r0, 16 - adds r1, r6, 0 - adds r2, r5, 0 - adds r3, r4, 0 - bl MultiplyInvertedPaletteRGBComponents - mov r0, r8 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 4 - ldr r1, _080863B4 @ =0x01050000 - adds r0, r1 - lsrs r0, 16 - adds r1, r6, 0 - adds r2, r5, 0 - adds r3, r4, 0 - bl MultiplyInvertedPaletteRGBComponents - mov r0, r8 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 4 - ldr r1, _080863B8 @ =0x01030000 - adds r0, r1 - lsrs r0, 16 - adds r1, r6, 0 - adds r2, r5, 0 - adds r3, r4, 0 - bl MultiplyInvertedPaletteRGBComponents - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080863A4: .4byte 0x00001007 -_080863A8: .4byte gUnknown_0839F2C0 -_080863AC: .4byte gUnknown_0839F2C4 -_080863B0: .4byte gUnknown_0839F2C8 -_080863B4: .4byte 0x01050000 -_080863B8: .4byte 0x01030000 - thumb_func_end PokeballGlowEffect_3 - - thumb_func_start PokeballGlowEffect_4 -PokeballGlowEffect_4: @ 80863BC - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x30] - subs r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - cmp r0, 0 - bne _080863D2 - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] -_080863D2: - pop {r0} - bx r0 - thumb_func_end PokeballGlowEffect_4 - - thumb_func_start PokeballGlowEffect_5 -PokeballGlowEffect_5: @ 80863D8 - ldrh r1, [r0, 0x2E] - adds r1, 0x1 - strh r1, [r0, 0x2E] - bx lr - thumb_func_end PokeballGlowEffect_5 - - thumb_func_start PokeballGlowEffect_6 -PokeballGlowEffect_6: @ 80863E0 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x38 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080863F6 - bl IsFanfareTaskInactive - lsls r0, 24 - cmp r0, 0 - beq _080863FC -_080863F6: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] -_080863FC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end PokeballGlowEffect_6 - - thumb_func_start PokeballGlowEffect_7 -PokeballGlowEffect_7: @ 8086404 - bx lr - thumb_func_end PokeballGlowEffect_7 - - thumb_func_start SpriteCB_PokeballGlow -SpriteCB_PokeballGlow: @ 8086408 - push {lr} - adds r3, r0, 0 - ldr r2, _0808642C @ =gSprites - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x2E - ldrsh r0, [r0, r1] - cmp r0, 0x4 - ble _08086428 - adds r0, r3, 0 - bl FieldEffectFreeGraphicsResources -_08086428: - pop {r0} - bx r0 - .align 2, 0 -_0808642C: .4byte gSprites - thumb_func_end SpriteCB_PokeballGlow - - thumb_func_start PokecenterHealEffectHelper -PokecenterHealEffectHelper: @ 8086430 - push {r4,lr} - adds r3, r0, 0 - adds r2, r1, 0 - ldr r0, _08086480 @ =gSpriteTemplate_839F220 - lsls r3, 16 - asrs r3, 16 - lsls r2, 16 - asrs r2, 16 - adds r1, r3, 0 - movs r3, 0 - bl CreateSpriteAtEnd - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, _08086484 @ =gSprites - adds r0, r1 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0, 0x5] - adds r3, r0, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r3] - ldr r1, _08086488 @ =gUnknown_0839F1A0 - bl SetSubspriteTables - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08086480: .4byte gSpriteTemplate_839F220 -_08086484: .4byte gSprites -_08086488: .4byte gUnknown_0839F1A0 - thumb_func_end PokecenterHealEffectHelper - - thumb_func_start SpriteCB_PokecenterMonitor -SpriteCB_PokecenterMonitor: @ 808648C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080864B0 - movs r0, 0 - strh r0, [r4, 0x2E] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - subs r0, 0x5 - ands r0, r1 - strb r0, [r2] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim -_080864B0: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080864C4 - adds r0, r4, 0 - bl FieldEffectFreeGraphicsResources -_080864C4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end SpriteCB_PokecenterMonitor - - thumb_func_start HallOfFameRecordEffectHelper -HallOfFameRecordEffectHelper: @ 80864CC - push {r4,r5,lr} - lsls r0, 16 - lsrs r5, r0, 16 - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsrs r2, 16 - lsls r3, 24 - cmp r3, 0 - bne _08086514 - ldr r0, _08086508 @ =gSpriteTemplate_839F238 - lsls r1, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - movs r3, 0 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, _0808650C @ =gSprites - adds r0, r1 - ldr r1, _08086510 @ =gUnknown_0839F1C8 - bl SetSubspriteTables - b _08086528 - .align 2, 0 -_08086508: .4byte gSpriteTemplate_839F238 -_0808650C: .4byte gSprites -_08086510: .4byte gUnknown_0839F1C8 -_08086514: - ldr r0, _08086548 @ =gSpriteTemplate_839F250 - lsls r1, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - movs r3, 0 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r4, r0, 24 -_08086528: - ldr r1, _0808654C @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - adds r3, r0, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r3] - strh r5, [r0, 0x2E] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08086548: .4byte gSpriteTemplate_839F250 -_0808654C: .4byte gSprites - thumb_func_end HallOfFameRecordEffectHelper - - thumb_func_start SpriteCB_HallOfFameMonitor -SpriteCB_HallOfFameMonitor: @ 8086550 - push {lr} - adds r3, r0, 0 - ldr r2, _080865B8 @ =gTasks - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r1, 0x26 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080865A6 - ldrh r1, [r3, 0x30] - movs r2, 0x30 - ldrsh r0, [r3, r2] - cmp r0, 0 - beq _0808657E - subs r0, r1, 0x1 - strh r0, [r3, 0x30] - lsls r0, 16 - cmp r0, 0 - bne _080865A0 -_0808657E: - movs r0, 0x10 - strh r0, [r3, 0x30] - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - ldrb r2, [r0] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] -_080865A0: - ldrh r0, [r3, 0x32] - adds r0, 0x1 - strh r0, [r3, 0x32] -_080865A6: - movs r2, 0x32 - ldrsh r0, [r3, r2] - cmp r0, 0x7F - ble _080865B4 - adds r0, r3, 0 - bl FieldEffectFreeGraphicsResources -_080865B4: - pop {r0} - bx r0 - .align 2, 0 -_080865B8: .4byte gTasks - thumb_func_end SpriteCB_HallOfFameMonitor - - thumb_func_start sub_80865BC -sub_80865BC: @ 80865BC - push {lr} - ldr r0, _080865D0 @ =c2_exit_to_overworld_2_switch - bl SetMainCallback2 - ldr r1, _080865D4 @ =gUnknown_0300485C - ldr r0, _080865D8 @ =mapldr_080842E8 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080865D0: .4byte c2_exit_to_overworld_2_switch -_080865D4: .4byte gUnknown_0300485C -_080865D8: .4byte mapldr_080842E8 - thumb_func_end sub_80865BC - - thumb_func_start mapldr_080842E8 -mapldr_080842E8: @ 80865DC - push {lr} - bl pal_fill_black - ldr r0, _080865FC @ =task00_8084310 - movs r1, 0 - bl CreateTask - bl ScriptContext2_Enable - bl FreezeMapObjects - ldr r1, _08086600 @ =gUnknown_0300485C - movs r0, 0 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080865FC: .4byte task00_8084310 -_08086600: .4byte gUnknown_0300485C - thumb_func_end mapldr_080842E8 - - thumb_func_start task00_8084310 -task00_8084310: @ 8086604 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _0808666C @ =gTasks - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r5, [r4, r0] - cmp r5, 0 - bne _08086640 - bl sub_807D770 - lsls r0, 24 - cmp r0, 0 - beq _08086666 - ldr r1, _08086670 @ =gUnknown_0202FF84 - ldr r0, _08086674 @ =gLastFieldPokeMenuOpened - ldrb r0, [r0] - str r0, [r1] - cmp r0, 0x5 - ble _08086634 - str r5, [r1] -_08086634: - movs r0, 0x1F - bl FieldEffectStart - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_08086640: - movs r0, 0x1F - bl FieldEffectActiveListContains - lsls r0, 24 - cmp r0, 0 - bne _08086666 - bl flag_var_implications_of_teleport_ - bl warp_in - ldr r0, _08086678 @ =CB2_LoadMap - bl SetMainCallback2 - ldr r1, _0808667C @ =gUnknown_0300485C - ldr r0, _08086680 @ =mapldr_08084390 - str r0, [r1] - adds r0, r6, 0 - bl DestroyTask -_08086666: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0808666C: .4byte gTasks -_08086670: .4byte gUnknown_0202FF84 -_08086674: .4byte gLastFieldPokeMenuOpened -_08086678: .4byte CB2_LoadMap -_0808667C: .4byte gUnknown_0300485C -_08086680: .4byte mapldr_08084390 - thumb_func_end task00_8084310 - - thumb_func_start mapldr_08084390 -mapldr_08084390: @ 8086684 - push {r4,lr} - bl sub_8053E90 - bl pal_fill_black - ldr r0, _080866DC @ =c3_080843F8 - movs r1, 0 - bl CreateTask - ldr r4, _080866E0 @ =gMapObjects - ldr r3, _080866E4 @ =gPlayerAvatar - ldrb r1, [r3, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0, 0x1] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0, 0x1] - ldrb r1, [r3] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080866C6 - ldrb r1, [r3, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x3 - bl FieldObjectTurn -_080866C6: - bl ScriptContext2_Enable - bl FreezeMapObjects - ldr r1, _080866E8 @ =gUnknown_0300485C - movs r0, 0 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080866DC: .4byte c3_080843F8 -_080866E0: .4byte gMapObjects -_080866E4: .4byte gPlayerAvatar -_080866E8: .4byte gUnknown_0300485C - thumb_func_end mapldr_08084390 - - thumb_func_start c3_080843F8 -c3_080843F8: @ 80866EC - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _08086740 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _0808671E - ldr r0, _08086744 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08086738 - movs r0, 0x20 - bl FieldEffectStart - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_0808671E: - movs r0, 0x20 - bl FieldEffectActiveListContains - lsls r0, 24 - cmp r0, 0 - bne _08086738 - bl ScriptContext2_Disable - bl UnfreezeMapObjects - adds r0, r5, 0 - bl DestroyTask -_08086738: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08086740: .4byte gTasks -_08086744: .4byte gPaletteFade - thumb_func_end c3_080843F8 - - thumb_func_start sub_8086748 -sub_8086748: @ 8086748 - push {lr} - bl sub_8053E90 - bl pal_fill_for_map_transition - bl ScriptContext2_Enable - bl FreezeMapObjects - ldr r0, _0808676C @ =sub_8086774 - movs r1, 0 - bl CreateTask - ldr r1, _08086770 @ =gUnknown_0300485C - movs r0, 0 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0808676C: .4byte sub_8086774 -_08086770: .4byte gUnknown_0300485C - thumb_func_end sub_8086748 - - thumb_func_start sub_8086774 -sub_8086774: @ 8086774 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080867A4 @ =gTasks - adds r4, r1, r0 - ldr r5, _080867A8 @ =gUnknown_0839F2CC -_08086786: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _08086786 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080867A4: .4byte gTasks -_080867A8: .4byte gUnknown_0839F2CC - thumb_func_end sub_8086774 - - thumb_func_start sub_80867AC -sub_80867AC: @ 80867AC - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - mov r9, r0 - ldr r6, _08086848 @ =gPlayerAvatar - ldrb r0, [r6, 0x5] - lsls r5, r0, 3 - adds r5, r0 - lsls r5, 2 - ldr r0, _0808684C @ =gMapObjects - mov r8, r0 - add r5, r8 - ldrb r0, [r6, 0x4] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _08086850 @ =gSprites - adds r4, r0 - bl CameraObjectReset2 - ldrb r1, [r6, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - add r0, r8 - ldrb r1, [r0, 0x1] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0, 0x1] - movs r0, 0x1 - strb r0, [r6, 0x6] - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - bl GetFaceDirectionAnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl FieldObjectSetSpecialAnim - adds r3, r4, 0 - adds r3, 0x42 - ldrb r0, [r3] - lsrs r0, 6 - mov r1, r9 - strh r0, [r1, 0x10] - ldrb r0, [r5, 0x3] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r5, 0x3] - ldrb r1, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x5] - ldrb r1, [r3] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x80 - orrs r0, r1 - strb r0, [r3] - mov r1, r9 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - movs r0, 0x1 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08086848: .4byte gPlayerAvatar -_0808684C: .4byte gMapObjects -_08086850: .4byte gSprites - thumb_func_end sub_80867AC - - thumb_func_start sub_8086854 -sub_8086854: @ 8086854 - push {r4,lr} - adds r4, r0, 0 - bl sub_807D770 - lsls r0, 24 - cmp r0, 0 - beq _08086868 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_08086868: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8086854 - - thumb_func_start sub_8086870 -sub_8086870: @ 8086870 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r6, _080868D4 @ =gPlayerAvatar - ldrb r0, [r6, 0x4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, _080868D8 @ =gSprites - adds r2, r0 - adds r0, r2, 0 - adds r0, 0x29 - movs r4, 0 - ldrsb r4, [r0, r4] - lsls r0, r4, 17 - negs r0, r0 - ldrh r1, [r2, 0x22] - ldr r3, _080868DC @ =gSpriteCoordOffsetY - adds r1, r4 - ldrh r3, [r3] - adds r1, r3 - asrs r0, 16 - adds r0, r1 - negs r0, r0 - movs r1, 0 - strh r0, [r2, 0x26] - movs r0, 0x1 - strh r0, [r5, 0xA] - strh r1, [r5, 0xC] - ldr r2, _080868E0 @ =gMapObjects - ldrb r0, [r6, 0x5] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r2, [r1, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - movs r0, 0x2B - bl PlaySE - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080868D4: .4byte gPlayerAvatar -_080868D8: .4byte gSprites -_080868DC: .4byte gSpriteCoordOffsetY -_080868E0: .4byte gMapObjects - thumb_func_end sub_8086870 - - thumb_func_start sub_80868E4 -sub_80868E4: @ 80868E4 - push {r4-r6,lr} - adds r4, r0, 0 - ldr r2, _08086990 @ =gPlayerAvatar - ldrb r1, [r2, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08086994 @ =gMapObjects - adds r6, r0, r1 - ldrb r1, [r2, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08086998 @ =gSprites - adds r5, r0, r1 - ldrh r0, [r4, 0xA] - ldrh r1, [r5, 0x26] - adds r0, r1 - strh r0, [r5, 0x26] - ldrh r2, [r4, 0xA] - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0x7 - bgt _08086926 - ldrh r1, [r4, 0xC] - adds r0, r2, r1 - strh r0, [r4, 0xC] - movs r1, 0xF - ands r0, r1 - cmp r0, 0 - beq _08086926 - lsls r0, r2, 1 - strh r0, [r4, 0xA] -_08086926: - ldrh r2, [r4, 0xE] - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08086964 - movs r0, 0x26 - ldrsh r1, [r5, r0] - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - blt _08086964 - adds r0, r2, 0x1 - strh r0, [r4, 0xE] - ldrb r1, [r6, 0x3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r6, 0x3] - ldrb r1, [r4, 0x10] - adds r3, r5, 0 - adds r3, 0x42 - lsls r1, 6 - ldrb r2, [r3] - movs r0, 0x3F - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrb r0, [r6] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r6] -_08086964: - movs r1, 0x26 - ldrsh r0, [r5, r1] - cmp r0, 0 - blt _08086988 - movs r0, 0xD6 - bl PlaySE - ldrb r0, [r6] - movs r1, 0x8 - orrs r0, r1 - movs r1, 0x20 - orrs r0, r1 - strb r0, [r6] - movs r0, 0 - strh r0, [r5, 0x26] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_08086988: - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08086990: .4byte gPlayerAvatar -_08086994: .4byte gMapObjects -_08086998: .4byte gSprites - thumb_func_end sub_80868E4 - - thumb_func_start sub_808699C -sub_808699C: @ 808699C - push {lr} - ldrh r1, [r0, 0x8] - adds r1, 0x1 - movs r2, 0 - strh r1, [r0, 0x8] - movs r1, 0x4 - strh r1, [r0, 0xA] - strh r2, [r0, 0xC] - movs r0, 0 - bl SetCameraPanningCallback - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_808699C - - thumb_func_start sub_80869B8 -sub_80869B8: @ 80869B8 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0xA - ldrsh r1, [r4, r0] - movs r0, 0 - bl SetCameraPanning - ldrh r0, [r4, 0xA] - negs r2, r0 - strh r2, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0x3 - ands r0, r1 - cmp r0, 0 - bne _080869E0 - lsls r0, r2, 16 - asrs r0, 17 - strh r0, [r4, 0xA] -_080869E0: - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080869EE - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080869EE: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80869B8 - - thumb_func_start sub_80869F8 -sub_80869F8: @ 80869F8 - push {lr} - ldr r1, _08086A24 @ =gPlayerAvatar - movs r0, 0 - strb r0, [r1, 0x6] - bl ScriptContext2_Disable - bl CameraObjectReset1 - bl UnfreezeMapObjects - bl InstallCameraPanAheadCallback - ldr r0, _08086A28 @ =sub_8086774 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08086A24: .4byte gPlayerAvatar -_08086A28: .4byte sub_8086774 - thumb_func_end sub_80869F8 - - thumb_func_start sub_8086A2C -sub_8086A2C: @ 8086A2C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _08086A60 @ =sub_8086A68 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08086A64 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0xA] - cmp r4, 0x6A - bne _08086A58 - movs r0, 0x1 - strh r0, [r1, 0xA] -_08086A58: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08086A60: .4byte sub_8086A68 -_08086A64: .4byte gTasks - thumb_func_end sub_8086A2C - - thumb_func_start sub_8086A68 -sub_8086A68: @ 8086A68 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _08086A98 @ =gTasks - adds r4, r1, r0 - ldr r5, _08086A9C @ =gUnknown_0839F2E8 -_08086A7A: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _08086A7A - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08086A98: .4byte gTasks -_08086A9C: .4byte gUnknown_0839F2E8 - thumb_func_end sub_8086A68 - - thumb_func_start sub_8086AA0 -sub_8086AA0: @ 8086AA0 - push {r4,lr} - adds r4, r0, 0 - bl FreezeMapObjects - bl CameraObjectReset2 - ldrb r0, [r4, 0xA] - bl sub_80B4824 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8086AA0 - - thumb_func_start sub_8086AC0 -sub_8086AC0: @ 8086AC0 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _08086B28 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08086B2C @ =gMapObjects - adds r4, r0, r1 - adds r0, r4, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive - lsls r0, 24 - cmp r0, 0 - beq _08086AEA - adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _08086B1E -_08086AEA: - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - bl GetFaceDirectionAnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldObjectSetSpecialAnim - ldrh r0, [r5, 0x8] - adds r0, 0x1 - movs r1, 0 - strh r0, [r5, 0x8] - strh r1, [r5, 0xC] - strh r1, [r5, 0xE] - ldrb r0, [r5, 0xA] - cmp r0, 0 - bne _08086B18 - movs r0, 0x4 - strh r0, [r5, 0x8] -_08086B18: - movs r0, 0x50 - bl PlaySE -_08086B1E: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08086B28: .4byte gPlayerAvatar -_08086B2C: .4byte gMapObjects - thumb_func_end sub_8086AC0 - - thumb_func_start sub_8086B30 -sub_8086B30: @ 8086B30 - push {r4,lr} - adds r4, r0, 0 - bl sub_8086B98 - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0x3 - ble _08086B4A - bl sub_8086C30 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_08086B4A: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8086B30 - - thumb_func_start sub_8086B54 -sub_8086B54: @ 8086B54 - push {lr} - bl sub_8086B98 - bl sub_8086C40 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_8086B54 - - thumb_func_start sub_8086B64 -sub_8086B64: @ 8086B64 - push {r4,lr} - adds r4, r0, 0 - bl sub_8086BE4 - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0x3 - ble _08086B7E - bl sub_8086C30 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_08086B7E: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8086B64 - - thumb_func_start sub_8086B88 -sub_8086B88: @ 8086B88 - push {lr} - bl sub_8086BE4 - bl sub_8086C40 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_8086B88 - - thumb_func_start sub_8086B98 -sub_8086B98: @ 8086B98 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _08086BDC @ =gPlayerAvatar - ldrb r0, [r0, 0x4] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _08086BE0 @ =gSprites - adds r4, r0 - movs r0, 0xC - ldrsh r1, [r5, r0] - movs r0, 0x84 - bl Cos - strh r0, [r4, 0x24] - movs r0, 0xC - ldrsh r1, [r5, r0] - movs r0, 0x94 - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r5, 0xE] - adds r0, 0x1 - strh r0, [r5, 0xE] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08086BD6 - ldrh r0, [r5, 0xC] - adds r0, 0x1 - strh r0, [r5, 0xC] -_08086BD6: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08086BDC: .4byte gPlayerAvatar -_08086BE0: .4byte gSprites - thumb_func_end sub_8086B98 - - thumb_func_start sub_8086BE4 -sub_8086BE4: @ 8086BE4 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _08086C28 @ =gPlayerAvatar - ldrb r0, [r0, 0x4] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _08086C2C @ =gSprites - adds r4, r0 - movs r0, 0xC - ldrsh r1, [r5, r0] - movs r0, 0x7C - bl Cos - strh r0, [r4, 0x24] - movs r0, 0xC - ldrsh r1, [r5, r0] - movs r0, 0x76 - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r5, 0xE] - adds r0, 0x1 - strh r0, [r5, 0xE] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08086C22 - ldrh r0, [r5, 0xC] - adds r0, 0x1 - strh r0, [r5, 0xC] -_08086C22: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08086C28: .4byte gPlayerAvatar -_08086C2C: .4byte gSprites - thumb_func_end sub_8086BE4 - - thumb_func_start sub_8086C30 -sub_8086C30: @ 8086C30 - push {lr} - bl sub_8053FF8 - bl fade_8080918 - pop {r0} - bx r0 - thumb_func_end sub_8086C30 - - thumb_func_start sub_8086C40 -sub_8086C40: @ 8086C40 - push {lr} - ldr r0, _08086C80 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08086C7C - bl sub_8054034 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08086C7C - bl sub_80B483C - bl warp_in - ldr r1, _08086C84 @ =gUnknown_0300485C - ldr r0, _08086C88 @ =sub_8086C94 - str r0, [r1] - ldr r0, _08086C8C @ =CB2_LoadMap - bl SetMainCallback2 - ldr r0, _08086C90 @ =sub_8086A68 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_08086C7C: - pop {r0} - bx r0 - .align 2, 0 -_08086C80: .4byte gPaletteFade -_08086C84: .4byte gUnknown_0300485C -_08086C88: .4byte sub_8086C94 -_08086C8C: .4byte CB2_LoadMap -_08086C90: .4byte sub_8086A68 - thumb_func_end sub_8086C40 - - thumb_func_start sub_8086C94 -sub_8086C94: @ 8086C94 - push {lr} - bl sub_8053E90 - bl pal_fill_for_map_transition - bl ScriptContext2_Enable - ldr r0, _08086CB4 @ =sub_8086CBC - movs r1, 0 - bl CreateTask - ldr r1, _08086CB8 @ =gUnknown_0300485C - movs r0, 0 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08086CB4: .4byte sub_8086CBC -_08086CB8: .4byte gUnknown_0300485C - thumb_func_end sub_8086C94 - - thumb_func_start sub_8086CBC -sub_8086CBC: @ 8086CBC - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _08086CEC @ =gTasks - adds r4, r1, r0 - ldr r5, _08086CF0 @ =gUnknown_0839F300 -_08086CCE: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _08086CCE - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08086CEC: .4byte gTasks -_08086CF0: .4byte gUnknown_0839F300 - thumb_func_end sub_8086CBC - - thumb_func_start sub_8086CF4 -sub_8086CF4: @ 8086CF4 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - bl CameraObjectReset2 - ldr r0, _08086D54 @ =gPlayerAvatar - ldrb r0, [r0, 0x5] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _08086D58 @ =gMapObjects - adds r4, r0 - movs r0, 0x4 - bl GetFaceDirectionAnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldObjectSetSpecialAnim - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl PlayerGetDestCoords - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r1, r0, 24 - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - movs r0, 0x10 - strh r0, [r5, 0xA] - cmp r1, 0x6B - bne _08086D5C - movs r1, 0x1 - movs r0, 0x3 - strh r0, [r5, 0x8] - b _08086D5E - .align 2, 0 -_08086D54: .4byte gPlayerAvatar -_08086D58: .4byte gMapObjects -_08086D5C: - movs r1, 0 -_08086D5E: - adds r0, r1, 0 - bl sub_80B4824 - movs r0, 0x1 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8086CF4 - - thumb_func_start sub_8086D70 -sub_8086D70: @ 8086D70 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _08086DA8 @ =gPlayerAvatar - ldrb r0, [r0, 0x4] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _08086DAC @ =gSprites - adds r4, r0 - movs r0, 0xA - ldrsh r1, [r5, r0] - movs r0, 0x84 - bl Cos - strh r0, [r4, 0x24] - movs r0, 0xA - ldrsh r1, [r5, r0] - movs r0, 0x94 - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08086DA8: .4byte gPlayerAvatar -_08086DAC: .4byte gSprites - thumb_func_end sub_8086D70 - - thumb_func_start sub_8086DB0 -sub_8086DB0: @ 8086DB0 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, _08086E08 @ =gPlayerAvatar - ldrb r1, [r0, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08086E0C @ =gSprites - adds r5, r0, r1 - movs r0, 0xA - ldrsh r1, [r4, r0] - movs r0, 0x84 - bl Cos - strh r0, [r5, 0x24] - movs r0, 0xA - ldrsh r1, [r4, r0] - movs r0, 0x94 - bl Sin - strh r0, [r5, 0x26] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08086DEE - ldrh r0, [r4, 0xA] - subs r0, 0x1 - strh r0, [r4, 0xA] -_08086DEE: - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08086DFE - strh r0, [r5, 0x24] - strh r0, [r5, 0x26] - movs r0, 0x5 - strh r0, [r4, 0x8] -_08086DFE: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08086E08: .4byte gPlayerAvatar -_08086E0C: .4byte gSprites - thumb_func_end sub_8086DB0 - - thumb_func_start sub_8086E10 -sub_8086E10: @ 8086E10 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _08086E48 @ =gPlayerAvatar - ldrb r0, [r0, 0x4] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _08086E4C @ =gSprites - adds r4, r0 - movs r0, 0xA - ldrsh r1, [r5, r0] - movs r0, 0x7C - bl Cos - strh r0, [r4, 0x24] - movs r0, 0xA - ldrsh r1, [r5, r0] - movs r0, 0x76 - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08086E48: .4byte gPlayerAvatar -_08086E4C: .4byte gSprites - thumb_func_end sub_8086E10 - - thumb_func_start sub_8086E50 -sub_8086E50: @ 8086E50 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, _08086EA8 @ =gPlayerAvatar - ldrb r1, [r0, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08086EAC @ =gSprites - adds r5, r0, r1 - movs r0, 0xA - ldrsh r1, [r4, r0] - movs r0, 0x7C - bl Cos - strh r0, [r5, 0x24] - movs r0, 0xA - ldrsh r1, [r4, r0] - movs r0, 0x76 - bl Sin - strh r0, [r5, 0x26] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08086E8E - ldrh r0, [r4, 0xA] - subs r0, 0x1 - strh r0, [r4, 0xA] -_08086E8E: - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08086EA0 - strh r0, [r5, 0x24] - strh r0, [r5, 0x26] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_08086EA0: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08086EA8: .4byte gPlayerAvatar -_08086EAC: .4byte gSprites - thumb_func_end sub_8086E50 - - thumb_func_start sub_8086EB0 -sub_8086EB0: @ 8086EB0 - push {r4,lr} - adds r4, r0, 0 - bl sub_80B4850 - lsls r0, 24 - cmp r0, 0 - bne _08086ECC - bl sub_80B483C - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0x1 - b _08086ECE -_08086ECC: - movs r0, 0 -_08086ECE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8086EB0 - - thumb_func_start sub_8086ED4 -sub_8086ED4: @ 8086ED4 - push {r4,lr} - ldr r0, _08086F20 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08086F24 @ =gMapObjects - adds r4, r0, r1 - adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _08086F18 - bl CameraObjectReset1 - bl ScriptContext2_Disable - movs r0, 0x4 - bl GetGoSpeed0AnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldObjectSetSpecialAnim - ldr r0, _08086F28 @ =sub_8086CBC - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_08086F18: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08086F20: .4byte gPlayerAvatar -_08086F24: .4byte gMapObjects -_08086F28: .4byte sub_8086CBC - thumb_func_end sub_8086ED4 - - thumb_func_start FldEff_UseWaterfall -FldEff_UseWaterfall: @ 8086F2C - push {r4,lr} - ldr r4, _08086F58 @ =sub_8086F64 - adds r0, r4, 0 - movs r1, 0xFF - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08086F5C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, _08086F60 @ =gUnknown_0202FF84 - ldr r2, [r2] - strh r2, [r1, 0xA] - bl _call_via_r4 - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08086F58: .4byte sub_8086F64 -_08086F5C: .4byte gTasks -_08086F60: .4byte gUnknown_0202FF84 - thumb_func_end FldEff_UseWaterfall - - thumb_func_start sub_8086F64 -sub_8086F64: @ 8086F64 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, _08086FA0 @ =gUnknown_0839F31C - ldr r2, _08086FA4 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_08086F76: - movs r0, 0x8 - ldrsh r2, [r4, r0] - lsls r2, 2 - adds r2, r5 - ldr r0, _08086FA8 @ =gPlayerAvatar - ldrb r0, [r0, 0x5] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, _08086FAC @ =gMapObjects - adds r1, r0 - ldr r2, [r2] - adds r0, r4, 0 - bl _call_via_r2 - lsls r0, 24 - cmp r0, 0 - bne _08086F76 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08086FA0: .4byte gUnknown_0839F31C -_08086FA4: .4byte gTasks -_08086FA8: .4byte gPlayerAvatar -_08086FAC: .4byte gMapObjects - thumb_func_end sub_8086F64 - - thumb_func_start sub_8086FB0 -sub_8086FB0: @ 8086FB0 - push {r4,lr} - adds r4, r0, 0 - bl ScriptContext2_Enable - ldr r1, _08086FCC @ =gPlayerAvatar - movs r0, 0x1 - strb r0, [r1, 0x6] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08086FCC: .4byte gPlayerAvatar - thumb_func_end sub_8086FB0 - - thumb_func_start waterfall_1_do_anim_probably -waterfall_1_do_anim_probably: @ 8086FD0 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl ScriptContext2_Enable - adds r0, r5, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive - lsls r0, 24 - cmp r0, 0 - bne _08087000 - adds r0, r5, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - ldr r1, _08087008 @ =gUnknown_0202FF84 - movs r2, 0xA - ldrsh r0, [r4, r2] - str r0, [r1] - movs r0, 0x3B - bl FieldEffectStart - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_08087000: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08087008: .4byte gUnknown_0202FF84 - thumb_func_end waterfall_1_do_anim_probably - - thumb_func_start waterfall_2_wait_anim_finish_probably -waterfall_2_wait_anim_finish_probably: @ 808700C - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x6 - bl FieldEffectActiveListContains - lsls r0, 24 - cmp r0, 0 - bne _08087026 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0x1 - b _08087028 -_08087026: - movs r0, 0 -_08087028: - pop {r4} - pop {r1} - bx r1 - thumb_func_end waterfall_2_wait_anim_finish_probably - - thumb_func_start sub_8087030 -sub_8087030: @ 8087030 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - movs r0, 0x2 - bl GetSimpleGoAnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldObjectSetSpecialAnim - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8087030 - - thumb_func_start sub_8087058 -sub_8087058: @ 8087058 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - bne _0808706E - movs r0, 0 - b _080870AA -_0808706E: - ldrb r0, [r4, 0x1E] - bl MetatileBehavior_IsWaterfall - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080870A4 - bl ScriptContext2_Disable - ldr r0, _0808709C @ =gPlayerAvatar - strb r4, [r0, 0x6] - ldr r0, _080870A0 @ =sub_8086F64 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - movs r0, 0x2B - bl FieldEffectActiveListRemove - movs r0, 0 - b _080870AA - .align 2, 0 -_0808709C: .4byte gPlayerAvatar -_080870A0: .4byte sub_8086F64 -_080870A4: - movs r0, 0x3 - strh r0, [r5, 0x8] - movs r0, 0x1 -_080870AA: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8087058 - - thumb_func_start FldEff_UseDive -FldEff_UseDive: @ 80870B0 - push {r4,lr} - ldr r4, _080870E0 @ =Task_Dive - adds r0, r4, 0 - movs r1, 0xFF - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080870E4 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r3, _080870E8 @ =gUnknown_0202FF84 - ldr r2, [r3] - strh r2, [r1, 0x26] - ldr r2, [r3, 0x4] - strh r2, [r1, 0x24] - bl _call_via_r4 - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080870E0: .4byte Task_Dive -_080870E4: .4byte gTasks -_080870E8: .4byte gUnknown_0202FF84 - thumb_func_end FldEff_UseDive - - thumb_func_start Task_Dive -Task_Dive: @ 80870EC - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, _0808711C @ =gUnknown_0839F330 - ldr r2, _08087120 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_080870FE: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _080870FE - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0808711C: .4byte gUnknown_0839F330 -_08087120: .4byte gTasks - thumb_func_end Task_Dive - - thumb_func_start sub_8087124 -sub_8087124: @ 8087124 - ldr r2, _08087134 @ =gPlayerAvatar - movs r1, 0x1 - strb r1, [r2, 0x6] - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - movs r0, 0 - bx lr - .align 2, 0 -_08087134: .4byte gPlayerAvatar - thumb_func_end sub_8087124 - - thumb_func_start dive_2_unknown -dive_2_unknown: @ 8087138 - push {r4,lr} - adds r4, r0, 0 - bl ScriptContext2_Enable - ldr r1, _0808715C @ =gUnknown_0202FF84 - movs r2, 0x26 - ldrsh r0, [r4, r2] - str r0, [r1] - movs r0, 0x3B - bl FieldEffectStart - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0808715C: .4byte gUnknown_0202FF84 - thumb_func_end dive_2_unknown - - thumb_func_start dive_3_unknown -dive_3_unknown: @ 8087160 - push {lr} - sub sp, 0x8 - mov r1, sp - adds r1, 0x2 - mov r0, sp - bl PlayerGetDestCoords - movs r0, 0x6 - bl FieldEffectActiveListContains - lsls r0, 24 - cmp r0, 0 - bne _080871A4 - ldr r2, _080871AC @ =gMapObjects - ldr r0, _080871B0 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x1E] - mov r0, sp - bl dive_warp - ldr r0, _080871B4 @ =Task_Dive - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - movs r0, 0x2C - bl FieldEffectActiveListRemove -_080871A4: - movs r0, 0 - add sp, 0x8 - pop {r1} - bx r1 - .align 2, 0 -_080871AC: .4byte gMapObjects -_080871B0: .4byte gPlayerAvatar -_080871B4: .4byte Task_Dive - thumb_func_end dive_3_unknown - - thumb_func_start sub_80871B8 -sub_80871B8: @ 80871B8 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _080871CC @ =sub_80871D0 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080871CC: .4byte sub_80871D0 - thumb_func_end sub_80871B8 - - thumb_func_start sub_80871D0 -sub_80871D0: @ 80871D0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r6, _08087218 @ =gUnknown_0839F33C - ldr r2, _0808721C @ =gTasks - ldr r5, _08087220 @ =gPlayerAvatar - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_080871E4: - movs r0, 0x8 - ldrsh r3, [r4, r0] - lsls r3, 2 - adds r3, r6 - ldrb r0, [r5, 0x5] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, _08087224 @ =gMapObjects - adds r1, r0 - ldrb r0, [r5, 0x4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, _08087228 @ =gSprites - adds r2, r0 - ldr r3, [r3] - adds r0, r4, 0 - bl _call_via_r3 - lsls r0, 24 - cmp r0, 0 - bne _080871E4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08087218: .4byte gUnknown_0839F33C -_0808721C: .4byte gTasks -_08087220: .4byte gPlayerAvatar -_08087224: .4byte gMapObjects -_08087228: .4byte gSprites - thumb_func_end sub_80871D0 - - thumb_func_start sub_808722C -sub_808722C: @ 808722C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl FreezeMapObjects - bl CameraObjectReset2 - movs r0, 0 - bl SetCameraPanningCallback - ldr r0, _08087260 @ =gPlayerAvatar - movs r2, 0x1 - strb r2, [r0, 0x6] - ldrb r0, [r5, 0x3] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r5, 0x3] - strh r2, [r4, 0xA] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08087260: .4byte gPlayerAvatar - thumb_func_end sub_808722C - - thumb_func_start sub_8087264 -sub_8087264: @ 8087264 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0xA - ldrsh r1, [r4, r0] - movs r0, 0 - bl SetCameraPanning - ldrh r0, [r4, 0xA] - negs r0, r0 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _08087290 - movs r0, 0 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_08087290: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8087264 - - thumb_func_start sub_8087298 -sub_8087298: @ 8087298 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0 - strh r0, [r2, 0x26] - movs r0, 0x1 - strh r0, [r4, 0xE] - ldr r3, _080872E0 @ =gUnknown_0202FF84 - movs r5, 0x10 - ldrsh r0, [r1, r5] - str r0, [r3] - movs r5, 0x12 - ldrsh r0, [r1, r5] - str r0, [r3, 0x4] - adds r0, r2, 0 - adds r0, 0x43 - ldrb r0, [r0] - subs r0, 0x1 - str r0, [r3, 0x8] - ldrb r0, [r2, 0x5] - lsls r0, 28 - lsrs r0, 30 - str r0, [r3, 0xC] - movs r0, 0x32 - bl FieldEffectStart - movs r0, 0xB2 - bl PlaySE - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080872E0: .4byte gUnknown_0202FF84 - thumb_func_end sub_8087298 - - thumb_func_start sub_80872E4 -sub_80872E4: @ 80872E4 - push {r4-r7,lr} - adds r4, r0, 0 - adds r6, r1, 0 - adds r5, r2, 0 - movs r0, 0xA - ldrsh r1, [r4, r0] - movs r0, 0 - bl SetCameraPanning - ldrh r0, [r4, 0xA] - negs r2, r0 - strh r2, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r1, r0, 0x1 - strh r1, [r4, 0xC] - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x11 - bgt _0808731E - movs r0, 0x1 - ands r1, r0 - cmp r1, 0 - bne _08087330 - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0x3 - bgt _08087330 - lsls r0, r2, 1 - b _0808732E -_0808731E: - movs r0, 0x4 - ands r1, r0 - cmp r1, 0 - bne _08087330 - lsls r0, r2, 16 - cmp r0, 0 - ble _08087330 - asrs r0, 17 -_0808732E: - strh r0, [r4, 0xA] -_08087330: - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0x6 - ble _0808737C - adds r0, r5, 0 - adds r0, 0x29 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r2, r1, 17 - negs r2, r2 - movs r7, 0x26 - ldrsh r3, [r5, r7] - movs r7, 0x22 - ldrsh r0, [r5, r7] - adds r0, r1 - ldr r1, _08087374 @ =gSpriteCoordOffsetY - movs r7, 0 - ldrsh r1, [r1, r7] - adds r0, r1 - asrs r2, 16 - adds r0, r2 - cmn r3, r0 - ble _08087378 - ldrh r0, [r5, 0x26] - ldrh r1, [r4, 0xE] - subs r0, r1 - strh r0, [r5, 0x26] - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x7 - bgt _0808737C - adds r0, r1, 0x1 - strh r0, [r4, 0xE] - b _0808737C - .align 2, 0 -_08087374: .4byte gSpriteCoordOffsetY -_08087378: - movs r0, 0x1 - strh r0, [r4, 0x10] -_0808737C: - ldrh r2, [r4, 0x12] - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080873BA - movs r7, 0x26 - ldrsh r1, [r5, r7] - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - bge _080873BA - adds r0, r2, 0x1 - strh r0, [r4, 0x12] - ldrb r0, [r6, 0x3] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r6, 0x3] - ldrb r1, [r5, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, 0x5] - adds r2, r5, 0 - adds r2, 0x42 - ldrb r1, [r2] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] -_080873BA: - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080873D0 - movs r7, 0x10 - ldrsh r0, [r4, r7] - cmp r0, 0 - beq _080873D0 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080873D0: - movs r0, 0 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80872E4 - - thumb_func_start sub_80873D8 -sub_80873D8: @ 80873D8 - push {r4,lr} - adds r4, r0, 0 - bl sub_8053FF8 - bl fade_8080918 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80873D8 - - thumb_func_start sub_80873F4 -sub_80873F4: @ 80873F4 - push {lr} - ldr r0, _08087434 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0808742C - bl sub_8054034 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0808742C - bl warp_in - ldr r1, _08087438 @ =gUnknown_0300485C - ldr r0, _0808743C @ =mapldr_080851BC - str r0, [r1] - ldr r0, _08087440 @ =CB2_LoadMap - bl SetMainCallback2 - ldr r0, _08087444 @ =sub_80871D0 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_0808742C: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08087434: .4byte gPaletteFade -_08087438: .4byte gUnknown_0300485C -_0808743C: .4byte mapldr_080851BC -_08087440: .4byte CB2_LoadMap -_08087444: .4byte sub_80871D0 - thumb_func_end sub_80873F4 - - thumb_func_start mapldr_080851BC -mapldr_080851BC: @ 8087448 - push {lr} - bl sub_8053E90 - bl pal_fill_for_map_transition - bl ScriptContext2_Enable - ldr r0, _08087468 @ =gUnknown_0300485C - movs r1, 0 - str r1, [r0] - ldr r0, _0808746C @ =sub_8087470 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_08087468: .4byte gUnknown_0300485C -_0808746C: .4byte sub_8087470 - thumb_func_end mapldr_080851BC - - thumb_func_start sub_8087470 -sub_8087470: @ 8087470 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r6, _080874B8 @ =gUnknown_0839F354 - ldr r2, _080874BC @ =gTasks - ldr r5, _080874C0 @ =gPlayerAvatar - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_08087484: - movs r0, 0x8 - ldrsh r3, [r4, r0] - lsls r3, 2 - adds r3, r6 - ldrb r0, [r5, 0x5] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, _080874C4 @ =gMapObjects - adds r1, r0 - ldrb r0, [r5, 0x4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, _080874C8 @ =gSprites - adds r2, r0 - ldr r3, [r3] - adds r0, r4, 0 - bl _call_via_r3 - lsls r0, 24 - cmp r0, 0 - bne _08087484 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080874B8: .4byte gUnknown_0839F354 -_080874BC: .4byte gTasks -_080874C0: .4byte gPlayerAvatar -_080874C4: .4byte gMapObjects -_080874C8: .4byte gSprites - thumb_func_end sub_8087470 - - thumb_func_start sub_80874CC -sub_80874CC: @ 80874CC - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - bl CameraObjectReset2 - bl FreezeMapObjects - ldr r1, _080874F8 @ =gPlayerAvatar - movs r0, 0x1 - strb r0, [r1, 0x6] - ldrb r0, [r4, 0x1] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r4, 0x1] - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080874F8: .4byte gPlayerAvatar - thumb_func_end sub_80874CC - - thumb_func_start sub_80874FC -sub_80874FC: @ 80874FC - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - bl sub_807D770 - lsls r0, 24 - cmp r0, 0 - beq _0808753C - ldr r1, _08087544 @ =gUnknown_0202FF84 - movs r2, 0x10 - ldrsh r0, [r5, r2] - str r0, [r1] - movs r2, 0x12 - ldrsh r0, [r5, r2] - str r0, [r1, 0x4] - adds r0, r6, 0 - adds r0, 0x43 - ldrb r0, [r0] - subs r0, 0x1 - str r0, [r1, 0x8] - ldrb r0, [r6, 0x5] - lsls r0, 28 - lsrs r0, 30 - str r0, [r1, 0xC] - movs r0, 0x31 - bl FieldEffectStart - strh r0, [r4, 0xA] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_0808753C: - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08087544: .4byte gUnknown_0202FF84 - thumb_func_end sub_80874FC - - thumb_func_start sub_8087548 -sub_8087548: @ 8087548 - push {r4,lr} - adds r2, r0, 0 - adds r4, r1, 0 - movs r0, 0xA - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08087598 @ =gSprites - adds r0, r1 - adds r0, 0x2B - ldrb r0, [r0] - cmp r0, 0x1 - bls _08087590 - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - ldrb r1, [r4, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x1] - bl CameraObjectReset1 - movs r0, 0xAF - bl PlaySE - movs r0, 0x4 - bl sub_80608A4 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldObjectSetSpecialAnim -_08087590: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08087598: .4byte gSprites - thumb_func_end sub_8087548 - - thumb_func_start sub_808759C -sub_808759C: @ 808759C - push {lr} - adds r0, r1, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _080875C6 - ldr r1, _080875CC @ =gPlayerAvatar - movs r0, 0 - strb r0, [r1, 0x6] - bl ScriptContext2_Disable - bl UnfreezeMapObjects - ldr r0, _080875D0 @ =sub_8087470 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_080875C6: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_080875CC: .4byte gPlayerAvatar -_080875D0: .4byte sub_8087470 - thumb_func_end sub_808759C - - thumb_func_start FldEff_LavaridgeGymWarp -FldEff_LavaridgeGymWarp: @ 80875D4 - push {r4,lr} - ldr r4, _0808762C @ =gUnknown_0202FF84 - adds r1, r4, 0x4 - adds r0, r4, 0 - movs r2, 0x8 - movs r3, 0x8 - bl sub_8060470 - ldr r0, _08087630 @ =gFieldEffectObjectTemplatePointers - adds r0, 0x84 - ldr r0, [r0] - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0x4 - ldrsh r2, [r4, r3] - ldrb r3, [r4, 0x8] - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08087634 @ =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - movs r1, 0x3 - ldrb r3, [r4, 0xC] - ands r3, r1 - lsls r3, 2 - ldrb r4, [r2, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r4 - orrs r1, r3 - strb r1, [r2, 0x5] - adds r2, 0x3E - ldrb r1, [r2] - movs r3, 0x2 - orrs r1, r3 - strb r1, [r2] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0808762C: .4byte gUnknown_0202FF84 -_08087630: .4byte gFieldEffectObjectTemplatePointers -_08087634: .4byte gSprites - thumb_func_end FldEff_LavaridgeGymWarp - - thumb_func_start sub_8087638 -sub_8087638: @ 8087638 - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08087650 - adds r0, r2, 0 - movs r1, 0x32 - bl FieldEffectStop -_08087650: - pop {r0} - bx r0 - thumb_func_end sub_8087638 - - thumb_func_start sub_8087654 -sub_8087654: @ 8087654 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _08087668 @ =sub_808766C - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_08087668: .4byte sub_808766C - thumb_func_end sub_8087654 - - thumb_func_start sub_808766C -sub_808766C: @ 808766C - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r6, _080876B4 @ =gUnknown_0839F364 - ldr r2, _080876B8 @ =gTasks - ldr r5, _080876BC @ =gPlayerAvatar - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_08087680: - movs r0, 0x8 - ldrsh r3, [r4, r0] - lsls r3, 2 - adds r3, r6 - ldrb r0, [r5, 0x5] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, _080876C0 @ =gMapObjects - adds r1, r0 - ldrb r0, [r5, 0x4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, _080876C4 @ =gSprites - adds r2, r0 - ldr r3, [r3] - adds r0, r4, 0 - bl _call_via_r3 - lsls r0, 24 - cmp r0, 0 - bne _08087680 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080876B4: .4byte gUnknown_0839F364 -_080876B8: .4byte gTasks -_080876BC: .4byte gPlayerAvatar -_080876C0: .4byte gMapObjects -_080876C4: .4byte gSprites - thumb_func_end sub_808766C - - thumb_func_start sub_80876C8 -sub_80876C8: @ 80876C8 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - bl FreezeMapObjects - bl CameraObjectReset2 - ldr r1, _080876F4 @ =gPlayerAvatar - movs r0, 0x1 - strb r0, [r1, 0x6] - ldrb r0, [r4, 0x3] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r4, 0x3] - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080876F4: .4byte gPlayerAvatar - thumb_func_end sub_80876C8 - - thumb_func_start sub_80876F8 -sub_80876F8: @ 80876F8 - push {r4-r6,lr} - adds r5, r0, 0 - adds r4, r1, 0 - adds r6, r2, 0 - adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _0808776C - ldrh r1, [r5, 0xA] - movs r2, 0xA - ldrsh r0, [r5, r2] - cmp r0, 0x3 - ble _0808774C - ldr r1, _08087748 @ =gUnknown_0202FF84 - movs r2, 0x10 - ldrsh r0, [r4, r2] - str r0, [r1] - movs r2, 0x12 - ldrsh r0, [r4, r2] - str r0, [r1, 0x4] - adds r0, r6, 0 - adds r0, 0x43 - ldrb r0, [r0] - subs r0, 0x1 - str r0, [r1, 0x8] - ldrb r0, [r6, 0x5] - lsls r0, 28 - lsrs r0, 30 - str r0, [r1, 0xC] - movs r0, 0x31 - bl FieldEffectStart - strh r0, [r5, 0xA] - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _0808776C - .align 2, 0 -_08087748: .4byte gUnknown_0202FF84 -_0808774C: - adds r0, r1, 0x1 - strh r0, [r5, 0xA] - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl GetStepInPlaceDelay4AnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldObjectSetSpecialAnim - movs r0, 0x27 - bl PlaySE -_0808776C: - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80876F8 - - thumb_func_start sub_8087774 -sub_8087774: @ 8087774 - push {r4,lr} - adds r3, r0, 0 - adds r4, r1, 0 - ldr r2, _080877A8 @ =gSprites - movs r0, 0xA - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x2B - ldrb r0, [r0] - cmp r0, 0x2 - bne _0808779E - ldrb r0, [r4, 0x1] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r4, 0x1] - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] -_0808779E: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080877A8: .4byte gSprites - thumb_func_end sub_8087774 - - thumb_func_start sub_80877AC -sub_80877AC: @ 80877AC - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x31 - bl FieldEffectActiveListContains - lsls r0, 24 - cmp r0, 0 - bne _080877CA - bl sub_8053FF8 - bl fade_8080918 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080877CA: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80877AC - - thumb_func_start sub_80877D4 -sub_80877D4: @ 80877D4 - push {lr} - ldr r0, _08087814 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0808780C - bl sub_8054034 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0808780C - bl warp_in - ldr r1, _08087818 @ =gUnknown_0300485C - ldr r0, _0808781C @ =sub_8086748 - str r0, [r1] - ldr r0, _08087820 @ =CB2_LoadMap - bl SetMainCallback2 - ldr r0, _08087824 @ =sub_808766C - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_0808780C: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08087814: .4byte gPaletteFade -_08087818: .4byte gUnknown_0300485C -_0808781C: .4byte sub_8086748 -_08087820: .4byte CB2_LoadMap -_08087824: .4byte sub_808766C - thumb_func_end sub_80877D4 - - thumb_func_start FldEff_PopOutOfAsh -FldEff_PopOutOfAsh: @ 8087828 - push {r4,lr} - ldr r4, _08087880 @ =gUnknown_0202FF84 - adds r1, r4, 0x4 - adds r0, r4, 0 - movs r2, 0x8 - movs r3, 0x8 - bl sub_8060470 - ldr r0, _08087884 @ =gFieldEffectObjectTemplatePointers - adds r0, 0x80 - ldr r0, [r0] - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0x4 - ldrsh r2, [r4, r3] - ldrb r3, [r4, 0x8] - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08087888 @ =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - movs r1, 0x3 - ldrb r3, [r4, 0xC] - ands r3, r1 - lsls r3, 2 - ldrb r4, [r2, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r4 - orrs r1, r3 - strb r1, [r2, 0x5] - adds r2, 0x3E - ldrb r1, [r2] - movs r3, 0x2 - orrs r1, r3 - strb r1, [r2] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08087880: .4byte gUnknown_0202FF84 -_08087884: .4byte gFieldEffectObjectTemplatePointers -_08087888: .4byte gSprites - thumb_func_end FldEff_PopOutOfAsh - - thumb_func_start sub_808788C -sub_808788C: @ 808788C - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080878A4 - adds r0, r2, 0 - movs r1, 0x31 - bl FieldEffectStop -_080878A4: - pop {r0} - bx r0 - thumb_func_end sub_808788C - - thumb_func_start sub_80878A8 -sub_80878A8: @ 80878A8 - push {lr} - bl ScriptContext2_Enable - bl FreezeMapObjects - ldr r0, _080878C0 @ =sub_80878C4 - movs r1, 0x50 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080878C0: .4byte sub_80878C4 - thumb_func_end sub_80878A8 - - thumb_func_start sub_80878C4 -sub_80878C4: @ 80878C4 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _080878EC @ =gUnknown_0839F378 - ldr r2, _080878F0 @ =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r1, [r0, r2] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_080878EC: .4byte gUnknown_0839F378 -_080878F0: .4byte gTasks - thumb_func_end sub_80878C4 - - thumb_func_start sub_80878F4 -sub_80878F4: @ 80878F4 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0x40 - strh r0, [r4, 0x24] - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x26] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80878F4 - - thumb_func_start sub_8087914 -sub_8087914: @ 8087914 - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - ldr r1, _080879B8 @ =gUnknown_0839F380 - mov r0, sp - movs r2, 0x5 - bl memcpy - ldrh r1, [r4, 0x24] - movs r2, 0x24 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _08087940 - subs r0, r1, 0x1 - strh r0, [r4, 0x24] - lsls r0, 16 - cmp r0, 0 - bne _08087940 - bl sub_8053FF8 - bl fade_8080918 -_08087940: - ldr r0, _080879BC @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080879C0 @ =gMapObjects - adds r5, r0, r1 - adds r0, r5, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive - lsls r0, 24 - cmp r0, 0 - beq _08087966 - adds r0, r5, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _08087A20 -_08087966: - movs r1, 0x24 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080879D8 - ldr r0, _080879C4 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080879D8 - bl sub_8054034 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080879D8 - ldrh r1, [r4, 0x26] - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl FieldObjectSetDirection - bl sub_8053678 - bl warp_in - ldr r1, _080879C8 @ =gUnknown_0300485C - ldr r0, _080879CC @ =mapldr_080859D4 - str r0, [r1] - ldr r0, _080879D0 @ =CB2_LoadMap - bl SetMainCallback2 - ldr r0, _080879D4 @ =sub_80878C4 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - b _08087A20 - .align 2, 0 -_080879B8: .4byte gUnknown_0839F380 -_080879BC: .4byte gPlayerAvatar -_080879C0: .4byte gMapObjects -_080879C4: .4byte gPaletteFade -_080879C8: .4byte gUnknown_0300485C -_080879CC: .4byte mapldr_080859D4 -_080879D0: .4byte CB2_LoadMap -_080879D4: .4byte sub_80878C4 -_080879D8: - ldrh r1, [r4, 0xA] - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080879EC - subs r0, r1, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - cmp r0, 0 - bne _08087A20 -_080879EC: - ldrb r0, [r5, 0x18] - lsls r0, 28 - lsrs r0, 28 - add r0, sp - ldrb r0, [r0] - bl GetFaceDirectionAnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl FieldObjectSetSpecialAnim - ldrh r1, [r4, 0xC] - movs r2, 0xC - ldrsh r0, [r4, r2] - cmp r0, 0xB - bgt _08087A14 - adds r0, r1, 0x1 - strh r0, [r4, 0xC] -_08087A14: - ldrh r1, [r4, 0xC] - lsls r1, 16 - asrs r1, 18 - movs r0, 0x8 - asrs r0, r1 - strh r0, [r4, 0xA] -_08087A20: - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8087914 - - thumb_func_start mapldr_080859D4 -mapldr_080859D4: @ 8087A28 - push {lr} - bl sub_8053E90 - bl pal_fill_for_map_transition - bl ScriptContext2_Enable - bl FreezeMapObjects - ldr r1, _08087A64 @ =gUnknown_0300485C - movs r0, 0 - str r0, [r1] - ldr r2, _08087A68 @ =gMapObjects - ldr r0, _08087A6C @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x1] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0, 0x1] - ldr r0, _08087A70 @ =sub_8087A74 - movs r1, 0 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_08087A64: .4byte gUnknown_0300485C -_08087A68: .4byte gMapObjects -_08087A6C: .4byte gPlayerAvatar -_08087A70: .4byte sub_8087A74 - thumb_func_end mapldr_080859D4 - - thumb_func_start sub_8087A74 -sub_8087A74: @ 8087A74 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _08087A9C @ =gUnknown_0839F388 - ldr r2, _08087AA0 @ =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r1, [r0, r2] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_08087A9C: .4byte gUnknown_0839F388 -_08087AA0: .4byte gTasks - thumb_func_end sub_8087A74 - - thumb_func_start sub_8087AA4 -sub_8087AA4: @ 8087AA4 - push {r4,lr} - adds r4, r0, 0 - bl sub_807D770 - lsls r0, 24 - cmp r0, 0 - beq _08087AC2 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x26] -_08087AC2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8087AA4 - - thumb_func_start sub_8087AC8 -sub_8087AC8: @ 8087AC8 - push {r4-r6,lr} - sub sp, 0x8 - adds r5, r0, 0 - ldr r1, _08087B4C @ =gUnknown_0839F380 - mov r0, sp - movs r2, 0x5 - bl memcpy - ldr r0, _08087B50 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08087B54 @ =gMapObjects - adds r6, r0, r1 - ldrh r1, [r5, 0xA] - movs r2, 0xA - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _08087AFA - subs r0, r1, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - cmp r0, 0 - bne _08087B8C -_08087AFA: - adds r0, r6, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive - lsls r0, 24 - cmp r0, 0 - beq _08087B12 - adds r0, r6, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _08087BA0 -_08087B12: - movs r1, 0xC - ldrsh r0, [r5, r1] - cmp r0, 0x1F - ble _08087B5C - movs r2, 0x26 - ldrsh r4, [r5, r2] - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bne _08087B5C - ldrb r1, [r6, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r1 - strb r0, [r6, 0x1] - bl ScriptContext2_Disable - bl UnfreezeMapObjects - ldr r0, _08087B58 @ =sub_8087A74 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - b _08087BA0 - .align 2, 0 -_08087B4C: .4byte gUnknown_0839F380 -_08087B50: .4byte gPlayerAvatar -_08087B54: .4byte gMapObjects -_08087B58: .4byte sub_8087A74 -_08087B5C: - ldrb r0, [r6, 0x18] - lsls r0, 28 - lsrs r0, 28 - add r0, sp - ldrb r0, [r0] - bl GetFaceDirectionAnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r6, 0 - bl FieldObjectSetSpecialAnim - ldrh r1, [r5, 0xC] - movs r2, 0xC - ldrsh r0, [r5, r2] - cmp r0, 0x1F - bgt _08087B84 - adds r0, r1, 0x1 - strh r0, [r5, 0xC] -_08087B84: - ldrh r0, [r5, 0xC] - lsls r0, 16 - asrs r0, 18 - strh r0, [r5, 0xA] -_08087B8C: - ldrb r2, [r6, 0x1] - lsls r1, r2, 26 - lsrs r1, 31 - movs r0, 0x1 - eors r1, r0 - lsls r1, 5 - subs r0, 0x22 - ands r0, r2 - orrs r0, r1 - strb r0, [r6, 0x1] -_08087BA0: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8087AC8 - - thumb_func_start sub_8087BA8 -sub_8087BA8: @ 8087BA8 - push {lr} - ldr r0, _08087BB8 @ =sub_8087BBC - movs r1, 0 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_08087BB8: .4byte sub_8087BBC - thumb_func_end sub_8087BA8 - - thumb_func_start sub_8087BBC -sub_8087BBC: @ 8087BBC - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _08087BE4 @ =gUnknown_0839F390 - ldr r2, _08087BE8 @ =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r1, [r0, r2] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_08087BE4: .4byte gUnknown_0839F390 -_08087BE8: .4byte gTasks - thumb_func_end sub_8087BBC - - thumb_func_start sub_8087BEC -sub_8087BEC: @ 8087BEC - push {r4,lr} - adds r4, r0, 0 - bl ScriptContext2_Enable - bl FreezeMapObjects - bl CameraObjectReset2 - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8087BEC - - thumb_func_start sub_8087C14 -sub_8087C14: @ 8087C14 - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - ldr r1, _08087C98 @ =gUnknown_0839F380 - mov r0, sp - movs r2, 0x5 - bl memcpy - ldr r0, _08087C9C @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08087CA0 @ =gMapObjects - adds r5, r0, r1 - ldrh r1, [r4, 0xA] - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _08087C46 - subs r0, r1, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - cmp r0, 0 - bne _08087C60 -_08087C46: - ldrb r0, [r5, 0x18] - lsls r0, 28 - lsrs r0, 28 - add r0, sp - ldrb r1, [r0] - adds r0, r5, 0 - bl FieldObjectTurn - movs r0, 0x8 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] -_08087C60: - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0x7 - ble _08087C8E - movs r2, 0x26 - ldrsh r1, [r4, r2] - ldrb r0, [r5, 0x18] - lsls r0, 28 - lsrs r0, 28 - cmp r1, r0 - bne _08087C8E - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0x4 - strh r0, [r4, 0xA] - movs r0, 0x8 - strh r0, [r4, 0xC] - movs r0, 0x1 - strh r0, [r4, 0xE] - movs r0, 0x2D - bl PlaySE -_08087C8E: - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08087C98: .4byte gUnknown_0839F380 -_08087C9C: .4byte gPlayerAvatar -_08087CA0: .4byte gMapObjects - thumb_func_end sub_8087C14 - - thumb_func_start sub_8087CA4 -sub_8087CA4: @ 8087CA4 - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - ldr r1, _08087D68 @ =gUnknown_0839F380 - mov r0, sp - movs r2, 0x5 - bl memcpy - ldr r2, _08087D6C @ =gPlayerAvatar - ldrb r1, [r2, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08087D70 @ =gMapObjects - adds r3, r0, r1 - ldrb r1, [r2, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08087D74 @ =gSprites - adds r5, r0, r1 - ldrh r0, [r4, 0xA] - subs r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - cmp r0, 0 - bgt _08087CEE - movs r0, 0x4 - strh r0, [r4, 0xA] - ldrb r0, [r3, 0x18] - lsls r0, 28 - lsrs r0, 28 - add r0, sp - ldrb r1, [r0] - adds r0, r3, 0 - bl FieldObjectTurn -_08087CEE: - ldrh r0, [r5, 0x22] - ldrh r1, [r4, 0xE] - subs r0, r1 - strh r0, [r5, 0x22] - ldrh r1, [r4, 0xE] - ldrh r2, [r4, 0x10] - adds r0, r1, r2 - strh r0, [r4, 0x10] - ldrh r0, [r4, 0xC] - subs r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - cmp r0, 0 - bgt _08087D1A - movs r0, 0x4 - strh r0, [r4, 0xC] - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x7 - bgt _08087D1A - lsls r0, r1, 1 - strh r0, [r4, 0xE] -_08087D1A: - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r0, 0x8 - ble _08087D48 - ldrb r1, [r5, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r5, 0x5] - adds r2, r5, 0 - adds r2, 0x42 - ldrb r1, [r2] - movs r0, 0xC0 - ands r0, r1 - cmp r0, 0 - beq _08087D48 - movs r0, 0x3F - ands r0, r1 - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] -_08087D48: - movs r2, 0x10 - ldrsh r0, [r4, r2] - cmp r0, 0xA7 - ble _08087D5E - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - bl sub_8053FF8 - bl fade_8080918 -_08087D5E: - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08087D68: .4byte gUnknown_0839F380 -_08087D6C: .4byte gPlayerAvatar -_08087D70: .4byte gMapObjects -_08087D74: .4byte gSprites - thumb_func_end sub_8087CA4 - - thumb_func_start sub_8087D78 -sub_8087D78: @ 8087D78 - push {lr} - ldr r0, _08087DB8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08087DB4 - bl sub_8054034 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08087DB4 - bl sub_8053570 - bl warp_in - ldr r0, _08087DBC @ =CB2_LoadMap - bl SetMainCallback2 - ldr r1, _08087DC0 @ =gUnknown_0300485C - ldr r0, _08087DC4 @ =mapldr_08085D88 - str r0, [r1] - ldr r0, _08087DC8 @ =sub_8087BBC - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_08087DB4: - pop {r0} - bx r0 - .align 2, 0 -_08087DB8: .4byte gPaletteFade -_08087DBC: .4byte CB2_LoadMap -_08087DC0: .4byte gUnknown_0300485C -_08087DC4: .4byte mapldr_08085D88 -_08087DC8: .4byte sub_8087BBC - thumb_func_end sub_8087D78 - - thumb_func_start mapldr_08085D88 -mapldr_08085D88: @ 8087DCC - push {lr} - bl sub_8053E90 - bl pal_fill_for_map_transition - bl ScriptContext2_Enable - bl FreezeMapObjects - ldr r1, _08087E0C @ =gUnknown_0300485C - movs r0, 0 - str r0, [r1] - ldr r2, _08087E10 @ =gMapObjects - ldr r0, _08087E14 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x1] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0, 0x1] - bl CameraObjectReset2 - ldr r0, _08087E18 @ =sub_8087E1C - movs r1, 0 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_08087E0C: .4byte gUnknown_0300485C -_08087E10: .4byte gMapObjects -_08087E14: .4byte gPlayerAvatar -_08087E18: .4byte sub_8087E1C - thumb_func_end mapldr_08085D88 - - thumb_func_start sub_8087E1C -sub_8087E1C: @ 8087E1C - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _08087E44 @ =gUnknown_0839F3A0 - ldr r2, _08087E48 @ =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r1, [r0, r2] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_08087E44: .4byte gUnknown_0839F3A0 -_08087E48: .4byte gTasks - thumb_func_end sub_8087E1C - - thumb_func_start sub_8087E4C -sub_8087E4C: @ 8087E4C - push {r4-r6,lr} - adds r6, r0, 0 - bl sub_807D770 - lsls r0, 24 - cmp r0, 0 - beq _08087EC2 - ldr r5, _08087EC8 @ =gPlayerAvatar - ldrb r0, [r5, 0x4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, _08087ECC @ =gSprites - adds r2, r0 - adds r0, r2, 0 - adds r0, 0x29 - movs r4, 0 - ldrsb r4, [r0, r4] - lsls r0, r4, 17 - negs r0, r0 - ldrh r1, [r2, 0x22] - ldr r3, _08087ED0 @ =gSpriteCoordOffsetY - adds r1, r4 - ldrh r3, [r3] - adds r1, r3 - asrs r0, 16 - adds r0, r1 - negs r0, r0 - strh r0, [r2, 0x26] - ldr r3, _08087ED4 @ =gMapObjects - ldrb r0, [r5, 0x5] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r3, [r1, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r3 - strb r0, [r1, 0x1] - ldrh r0, [r6, 0x8] - adds r0, 0x1 - strh r0, [r6, 0x8] - movs r0, 0x8 - strh r0, [r6, 0xA] - movs r0, 0x1 - strh r0, [r6, 0xC] - adds r2, 0x42 - ldrb r0, [r2] - lsrs r0, 6 - strh r0, [r6, 0x24] - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x26] - movs r0, 0x2D - bl PlaySE -_08087EC2: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08087EC8: .4byte gPlayerAvatar -_08087ECC: .4byte gSprites -_08087ED0: .4byte gSpriteCoordOffsetY -_08087ED4: .4byte gMapObjects - thumb_func_end sub_8087E4C - - thumb_func_start sub_8087ED8 -sub_8087ED8: @ 8087ED8 - push {r4-r7,lr} - sub sp, 0x8 - adds r4, r0, 0 - ldr r1, _08087F40 @ =gUnknown_0839F380 - mov r0, sp - movs r2, 0x5 - bl memcpy - ldr r2, _08087F44 @ =gPlayerAvatar - ldrb r1, [r2, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08087F48 @ =gMapObjects - adds r6, r0, r1 - ldrb r1, [r2, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08087F4C @ =gSprites - adds r5, r0, r1 - ldrh r0, [r4, 0xA] - ldrh r1, [r5, 0x26] - adds r0, r1 - strh r0, [r5, 0x26] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x8 - negs r1, r1 - cmp r0, r1 - blt _08087F50 - ldrh r1, [r4, 0x22] - movs r2, 0x22 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _08087F76 - adds r0, r1, 0x1 - strh r0, [r4, 0x22] - ldrb r0, [r6] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r6] - ldrh r1, [r4, 0x24] - adds r3, r5, 0 - adds r3, 0x42 - lsls r1, 6 - ldrb r2, [r3] - movs r0, 0x3F - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _08087F76 - .align 2, 0 -_08087F40: .4byte gUnknown_0839F380 -_08087F44: .4byte gPlayerAvatar -_08087F48: .4byte gMapObjects -_08087F4C: .4byte gSprites -_08087F50: - ldrb r1, [r5, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r5, 0x5] - adds r2, r5, 0 - adds r2, 0x42 - ldrb r1, [r2] - movs r0, 0xC0 - ands r0, r1 - cmp r0, 0 - beq _08087F76 - movs r0, 0x3F - ands r0, r1 - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] -_08087F76: - ldrh r2, [r5, 0x26] - movs r3, 0x26 - ldrsh r1, [r5, r3] - movs r0, 0x30 - negs r0, r0 - cmp r1, r0 - blt _08087F9A - ldrh r1, [r4, 0xA] - movs r3, 0xA - ldrsh r0, [r4, r3] - cmp r0, 0x1 - ble _08087F9A - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - bne _08087F9A - subs r0, r1, 0x1 - strh r0, [r4, 0xA] -_08087F9A: - ldrh r0, [r4, 0xC] - subs r0, 0x1 - movs r7, 0 - strh r0, [r4, 0xC] - lsls r0, 16 - cmp r0, 0 - bne _08087FBC - movs r0, 0x4 - strh r0, [r4, 0xC] - ldrb r0, [r6, 0x18] - lsls r0, 28 - lsrs r0, 28 - add r0, sp - ldrb r1, [r0] - adds r0, r6, 0 - bl FieldObjectTurn -_08087FBC: - movs r1, 0x26 - ldrsh r0, [r5, r1] - cmp r0, 0 - blt _08087FD2 - strh r7, [r5, 0x26] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0x1 - strh r0, [r4, 0xA] - strh r7, [r4, 0xC] -_08087FD2: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8087ED8 - - thumb_func_start sub_8087FDC -sub_8087FDC: @ 8087FDC - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - ldr r1, _08088058 @ =gUnknown_0839F380 - mov r0, sp - movs r2, 0x5 - bl memcpy - ldr r0, _0808805C @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08088060 @ =gMapObjects - adds r5, r0, r1 - ldrh r0, [r4, 0xA] - subs r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - cmp r0, 0 - bne _08088050 - ldrb r0, [r5, 0x18] - lsls r0, 28 - lsrs r0, 28 - add r0, sp - ldrb r1, [r0] - adds r0, r5, 0 - bl FieldObjectTurn - movs r0, 0x8 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _08088050 - movs r0, 0x24 - ldrsh r1, [r4, r0] - ldrb r0, [r5, 0x18] - lsls r0, 28 - lsrs r0, 28 - cmp r1, r0 - bne _08088050 - bl ScriptContext2_Disable - bl CameraObjectReset1 - bl UnfreezeMapObjects - ldr r0, _08088064 @ =sub_8087E1C - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_08088050: - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08088058: .4byte gUnknown_0839F380 -_0808805C: .4byte gPlayerAvatar -_08088060: .4byte gMapObjects -_08088064: .4byte sub_8087E1C - thumb_func_end sub_8087FDC - - thumb_func_start FldEff_FieldMoveShowMon -FldEff_FieldMoveShowMon: @ 8088068 - push {r4,lr} - bl sav1_map_get_light_level - lsls r0, 24 - lsrs r0, 24 - bl is_light_level_1_2_3_5_or_6 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08088088 - ldr r0, _08088084 @ =sub_8088120 - b _0808808A - .align 2, 0 -_08088084: .4byte sub_8088120 -_08088088: - ldr r0, _080880B8 @ =sub_808847C -_0808808A: - movs r1, 0xFF - bl CreateTask - lsls r0, 24 - lsrs r4, r0, 24 - ldr r2, _080880BC @ =gUnknown_0202FF84 - ldr r0, [r2] - ldr r1, [r2, 0x4] - ldr r2, [r2, 0x8] - bl sub_8088830 - ldr r2, _080880C0 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r2 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x26] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080880B8: .4byte sub_808847C -_080880BC: .4byte gUnknown_0202FF84 -_080880C0: .4byte gTasks - thumb_func_end FldEff_FieldMoveShowMon - - thumb_func_start FldEff_FieldMoveShowMonInit -FldEff_FieldMoveShowMonInit: @ 80880C4 - push {r4-r6,lr} - ldr r5, _08088118 @ =gUnknown_0202FF84 - ldr r0, [r5] - movs r6, 0x80 - lsls r6, 24 - ands r6, r0 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - adds r4, r0, 0 - muls r4, r1 - ldr r0, _0808811C @ =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - str r0, [r5] - adds r0, r4, 0 - movs r1, 0x1 - bl GetMonData - str r0, [r5, 0x4] - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - str r0, [r5, 0x8] - ldr r0, [r5] - orrs r0, r6 - str r0, [r5] - movs r0, 0x6 - bl FieldEffectStart - movs r0, 0x3B - bl FieldEffectActiveListRemove - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08088118: .4byte gUnknown_0202FF84 -_0808811C: .4byte gPlayerParty - thumb_func_end FldEff_FieldMoveShowMonInit - - thumb_func_start sub_8088120 -sub_8088120: @ 8088120 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _08088148 @ =gUnknown_0839F3AC - ldr r2, _0808814C @ =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r1, [r0, r2] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_08088148: .4byte gUnknown_0839F3AC -_0808814C: .4byte gTasks - thumb_func_end sub_8088120 - - thumb_func_start sub_8088150 -sub_8088150: @ 8088150 - push {r4-r6,lr} - adds r4, r0, 0 - ldr r6, _080881A0 @ =REG_WININ - ldrh r0, [r6] - strh r0, [r4, 0x1E] - ldr r5, _080881A4 @ =REG_WINOUT - ldrh r0, [r5] - strh r0, [r4, 0x20] - adds r0, r4, 0 - adds r0, 0x22 - ldr r1, _080881A8 @ =gMain - ldr r1, [r1, 0xC] - bl StoreWordInTwoHalfwords - ldr r1, _080881AC @ =0x0000f0f1 - strh r1, [r4, 0xA] - ldr r0, _080881B0 @ =0x00005051 - strh r0, [r4, 0xC] - movs r0, 0x3F - strh r0, [r4, 0xE] - movs r0, 0x3E - strh r0, [r4, 0x10] - ldr r0, _080881B4 @ =REG_WIN0H - strh r1, [r0] - ldr r1, _080881B8 @ =REG_WIN0V - ldrh r0, [r4, 0xC] - strh r0, [r1] - ldrh r0, [r4, 0xE] - strh r0, [r6] - ldrh r0, [r4, 0x10] - strh r0, [r5] - ldr r0, _080881BC @ =sub_80883DC - bl SetVBlankCallback - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080881A0: .4byte REG_WININ -_080881A4: .4byte REG_WINOUT -_080881A8: .4byte gMain -_080881AC: .4byte 0x0000f0f1 -_080881B0: .4byte 0x00005051 -_080881B4: .4byte REG_WIN0H -_080881B8: .4byte REG_WIN0V -_080881BC: .4byte sub_80883DC - thumb_func_end sub_8088150 - - thumb_func_start sub_80881C0 -sub_80881C0: @ 80881C0 - push {r4-r6,lr} - sub sp, 0x4 - adds r6, r0, 0 - ldr r0, _08088218 @ =REG_BG0CNT - ldrh r1, [r0] - lsrs r1, 2 - lsls r1, 30 - lsrs r1, 16 - ldrh r4, [r0] - lsrs r4, 8 - lsls r4, 27 - lsrs r4, 16 - ldr r0, _0808821C @ =gFieldMoveStreaksTiles - movs r5, 0xC0 - lsls r5, 19 - adds r1, r5 - movs r2, 0x80 - lsls r2, 1 - bl CpuSet - movs r0, 0 - str r0, [sp] - adds r5, r4, r5 - ldr r2, _08088220 @ =0x05000200 - mov r0, sp - adds r1, r5, 0 - bl CpuSet - ldr r0, _08088224 @ =gFieldMoveStreaksPalette - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - adds r0, r4, 0 - bl sub_808843C - ldrh r0, [r6, 0x8] - adds r0, 0x1 - strh r0, [r6, 0x8] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08088218: .4byte REG_BG0CNT -_0808821C: .4byte gFieldMoveStreaksTiles -_08088220: .4byte 0x05000200 -_08088224: .4byte gFieldMoveStreaksPalette - thumb_func_end sub_80881C0 - - thumb_func_start sub_8088228 -sub_8088228: @ 8088228 - push {r4-r7,lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x12] - subs r0, 0x10 - strh r0, [r3, 0x12] - ldrh r6, [r3, 0xA] - ldrh r2, [r3, 0xC] - movs r7, 0xFF - lsrs r1, r6, 8 - subs r1, 0x10 - lsls r1, 16 - lsrs r0, r2, 8 - subs r0, 0x2 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r7, 0 - ands r0, r2 - adds r5, r0, 0x2 - lsrs r2, r1, 16 - cmp r1, 0 - bge _08088254 - movs r2, 0 -_08088254: - lsls r0, r4, 16 - asrs r0, 16 - cmp r0, 0x27 - bgt _0808825E - movs r4, 0x28 -_0808825E: - cmp r5, 0x78 - ble _08088264 - movs r5, 0x78 -_08088264: - lsls r2, 16 - asrs r2, 16 - lsls r1, r2, 8 - adds r0, r7, 0 - ands r0, r6 - orrs r1, r0 - strh r1, [r3, 0xA] - lsls r0, r4, 16 - asrs r4, r0, 16 - lsls r0, r4, 8 - adds r1, r5, 0 - orrs r0, r1 - strh r0, [r3, 0xC] - cmp r2, 0 - bne _080882A4 - cmp r4, 0x28 - bne _080882A4 - cmp r1, 0x78 - bne _080882A4 - ldr r2, _080882AC @ =gSprites - movs r0, 0x26 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _080882B0 @ =sub_8088890 - str r1, [r0] - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] -_080882A4: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080882AC: .4byte gSprites -_080882B0: .4byte sub_8088890 - thumb_func_end sub_8088228 - - thumb_func_start sub_80882B4 -sub_80882B4: @ 80882B4 - push {lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x12] - subs r0, 0x10 - strh r0, [r3, 0x12] - ldr r2, _080882E0 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x3C - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080882DA - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] -_080882DA: - pop {r0} - bx r0 - .align 2, 0 -_080882E0: .4byte gSprites - thumb_func_end sub_80882B4 - - thumb_func_start sub_80882E4 -sub_80882E4: @ 80882E4 - push {r4,lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x12] - subs r0, 0x10 - strh r0, [r3, 0x12] - ldrh r2, [r3, 0xC] - lsls r1, r2, 16 - movs r0, 0xFF - asrs r1, 24 - adds r1, 0x6 - lsls r1, 16 - ands r0, r2 - subs r0, 0x6 - lsls r0, 16 - lsrs r2, r0, 16 - lsrs r4, r1, 16 - asrs r1, 16 - cmp r1, 0x50 - ble _0808830C - movs r4, 0x50 -_0808830C: - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0x50 - bgt _08088316 - movs r2, 0x51 -_08088316: - lsls r0, r4, 16 - asrs r0, 16 - lsls r1, r0, 8 - lsls r2, 16 - asrs r2, 16 - orrs r1, r2 - strh r1, [r3, 0xC] - cmp r0, 0x50 - bne _08088332 - cmp r2, 0x51 - bne _08088332 - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] -_08088332: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80882E4 - - thumb_func_start sub_8088338 -sub_8088338: @ 8088338 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldr r0, _08088378 @ =REG_BG0CNT - ldrh r1, [r0] - lsrs r1, 8 - lsls r1, 27 - lsrs r1, 16 - movs r0, 0 - str r0, [sp] - movs r0, 0xC0 - lsls r0, 19 - adds r1, r0 - ldr r2, _0808837C @ =0x05000200 - mov r0, sp - bl CpuSet - movs r0, 0xF1 - strh r0, [r4, 0xA] - movs r0, 0xA1 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x1E] - strh r0, [r4, 0xE] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x10] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08088378: .4byte REG_BG0CNT -_0808837C: .4byte 0x05000200 - thumb_func_end sub_8088338 - - thumb_func_start sub_8088380 -sub_8088380: @ 8088380 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r0, 0x22 - mov r1, sp - bl LoadWordFromTwoHalfwords - ldr r0, [sp] - bl SetVBlankCallback - ldr r4, _080883D0 @ =gWindowConfig_81E6CE4 - adds r0, r4, 0 - bl SetUpWindowConfig - adds r0, r4, 0 - bl InitMenuWindow - movs r0, 0x26 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080883D4 @ =gSprites - adds r0, r1 - bl FreeResourcesAndDestroySprite - movs r0, 0x6 - bl FieldEffectActiveListRemove - ldr r0, _080883D8 @ =sub_8088120 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080883D0: .4byte gWindowConfig_81E6CE4 -_080883D4: .4byte gSprites -_080883D8: .4byte sub_8088120 - thumb_func_end sub_8088380 - - thumb_func_start sub_80883DC -sub_80883DC: @ 80883DC - push {r4,lr} - sub sp, 0x4 - ldr r0, _08088430 @ =sub_8088120 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _08088434 @ =gTasks - adds r4, r0 - adds r0, r4, 0 - adds r0, 0x22 - mov r1, sp - bl LoadWordFromTwoHalfwords - ldr r0, [sp] - bl _call_via_r0 - ldr r1, _08088438 @ =REG_WIN0H - ldrh r0, [r4, 0xA] - strh r0, [r1] - adds r1, 0x4 - ldrh r0, [r4, 0xC] - strh r0, [r1] - adds r1, 0x4 - ldrh r0, [r4, 0xE] - strh r0, [r1] - adds r1, 0x2 - ldrh r0, [r4, 0x10] - strh r0, [r1] - subs r1, 0x3A - ldrh r0, [r4, 0x12] - strh r0, [r1] - adds r1, 0x2 - ldrh r0, [r4, 0x14] - strh r0, [r1] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08088430: .4byte sub_8088120 -_08088434: .4byte gTasks -_08088438: .4byte REG_WIN0H - thumb_func_end sub_80883DC - - thumb_func_start sub_808843C -sub_808843C: @ 808843C - push {r4,r5,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r1, _08088470 @ =0x06000140 - adds r2, r0, r1 - movs r1, 0 - ldr r5, _08088474 @ =gFieldMoveStreaksTilemap - movs r0, 0xF0 - lsls r0, 8 - adds r4, r0, 0 - ldr r3, _08088478 @ =0x0000013f -_08088452: - lsls r0, r1, 1 - adds r0, r5 - ldrh r0, [r0] - orrs r0, r4 - strh r0, [r2] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - adds r2, 0x2 - cmp r1, r3 - bls _08088452 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08088470: .4byte 0x06000140 -_08088474: .4byte gFieldMoveStreaksTilemap -_08088478: .4byte 0x0000013f - thumb_func_end sub_808843C - - thumb_func_start sub_808847C -sub_808847C: @ 808847C - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _080884A4 @ =gUnknown_0839F3C8 - ldr r2, _080884A8 @ =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r1, [r0, r2] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_080884A4: .4byte gUnknown_0839F3C8 -_080884A8: .4byte gTasks - thumb_func_end sub_808847C - - thumb_func_start sub_80884AC -sub_80884AC: @ 80884AC - push {r4,lr} - adds r4, r0, 0 - ldr r1, _080884DC @ =REG_BG0HOFS - ldrh r0, [r4, 0xA] - strh r0, [r1] - adds r1, 0x2 - ldrh r0, [r4, 0xC] - strh r0, [r1] - adds r0, r4, 0 - adds r0, 0x22 - ldr r1, _080884E0 @ =gMain - ldr r1, [r1, 0xC] - bl StoreWordInTwoHalfwords - ldr r0, _080884E4 @ =sub_80886B0 - bl SetVBlankCallback - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080884DC: .4byte REG_BG0HOFS -_080884E0: .4byte gMain -_080884E4: .4byte sub_80886B0 - thumb_func_end sub_80884AC - - thumb_func_start sub_80884E8 -sub_80884E8: @ 80884E8 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - adds r6, r0, 0 - ldr r0, _08088544 @ =REG_BG0CNT - ldrh r1, [r0] - lsrs r1, 2 - lsls r1, 30 - lsrs r1, 16 - ldrh r4, [r0] - lsrs r4, 8 - lsls r4, 27 - lsrs r4, 16 - movs r0, 0 - mov r8, r0 - strh r4, [r6, 0x20] - ldr r0, _08088548 @ =gDarknessFieldMoveStreaksTiles - movs r5, 0xC0 - lsls r5, 19 - adds r1, r5 - movs r2, 0x40 - bl CpuSet - mov r0, r8 - str r0, [sp] - adds r4, r5 - ldr r2, _0808854C @ =0x05000200 - mov r0, sp - adds r1, r4, 0 - bl CpuSet - ldr r0, _08088550 @ =gDarknessFieldMoveStreaksPalette - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - ldrh r0, [r6, 0x8] - adds r0, 0x1 - strh r0, [r6, 0x8] - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08088544: .4byte REG_BG0CNT -_08088548: .4byte gDarknessFieldMoveStreaksTiles -_0808854C: .4byte 0x05000200 -_08088550: .4byte gDarknessFieldMoveStreaksPalette - thumb_func_end sub_80884E8 - - thumb_func_start sub_8088554 -sub_8088554: @ 8088554 - push {r4,lr} - adds r4, r0, 0 - bl sub_8088708 - lsls r0, 24 - cmp r0, 0 - beq _0808858A - ldr r1, _08088598 @ =REG_WIN1H - movs r0, 0xF0 - strh r0, [r1] - adds r1, 0x4 - ldr r2, _0808859C @ =0x00002878 - adds r0, r2, 0 - strh r0, [r1] - ldr r2, _080885A0 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _080885A4 @ =sub_8088890 - str r1, [r0] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_0808858A: - adds r0, r4, 0 - bl sub_80886F8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08088598: .4byte REG_WIN1H -_0808859C: .4byte 0x00002878 -_080885A0: .4byte gSprites -_080885A4: .4byte sub_8088890 - thumb_func_end sub_8088554 - - thumb_func_start sub_80885A8 -sub_80885A8: @ 80885A8 - push {r4,lr} - adds r4, r0, 0 - bl sub_80886F8 - ldr r2, _080885D4 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x3C - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080885CC - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080885CC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080885D4: .4byte gSprites - thumb_func_end sub_80885A8 - - thumb_func_start sub_80885D8 -sub_80885D8: @ 80885D8 - push {r4,lr} - adds r4, r0, 0 - bl sub_80886F8 - ldrh r1, [r4, 0xA] - movs r0, 0x7 - ands r0, r1 - movs r1, 0 - strh r0, [r4, 0xE] - strh r1, [r4, 0x10] - ldr r0, _08088604 @ =REG_WIN1H - ldr r2, _08088608 @ =0x0000ffff - adds r1, r2, 0 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08088604: .4byte REG_WIN1H -_08088608: .4byte 0x0000ffff - thumb_func_end sub_80885D8 - - thumb_func_start sub_808860C -sub_808860C: @ 808860C - push {r4,lr} - adds r4, r0, 0 - bl sub_80886F8 - adds r0, r4, 0 - bl sub_80887C0 - lsls r0, 24 - cmp r0, 0 - beq _08088626 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_08088626: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_808860C - - thumb_func_start sub_808862C -sub_808862C: @ 808862C - push {r4,r5,lr} - sub sp, 0x8 - adds r5, r0, 0 - ldr r0, _0808869C @ =REG_BG0CNT - ldrh r1, [r0] - lsrs r1, 8 - lsls r1, 27 - lsrs r1, 16 - movs r0, 0 - str r0, [sp] - movs r0, 0xC0 - lsls r0, 19 - adds r1, r0 - ldr r2, _080886A0 @ =0x05000200 - mov r0, sp - bl CpuSet - adds r0, r5, 0 - adds r0, 0x22 - add r1, sp, 0x4 - bl LoadWordFromTwoHalfwords - ldr r0, [sp, 0x4] - bl SetVBlankCallback - ldr r4, _080886A4 @ =gWindowConfig_81E6CE4 - adds r0, r4, 0 - bl SetUpWindowConfig - adds r0, r4, 0 - bl InitMenuWindow - movs r0, 0x26 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080886A8 @ =gSprites - adds r0, r1 - bl FreeResourcesAndDestroySprite - movs r0, 0x6 - bl FieldEffectActiveListRemove - ldr r0, _080886AC @ =sub_808847C - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0808869C: .4byte REG_BG0CNT -_080886A0: .4byte 0x05000200 -_080886A4: .4byte gWindowConfig_81E6CE4 -_080886A8: .4byte gSprites -_080886AC: .4byte sub_808847C - thumb_func_end sub_808862C - - thumb_func_start sub_80886B0 -sub_80886B0: @ 80886B0 - push {r4,lr} - sub sp, 0x4 - ldr r0, _080886EC @ =sub_808847C - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080886F0 @ =gTasks - adds r4, r0 - adds r0, r4, 0 - adds r0, 0x22 - mov r1, sp - bl LoadWordFromTwoHalfwords - ldr r0, [sp] - bl _call_via_r0 - ldr r1, _080886F4 @ =REG_BG0HOFS - ldrh r0, [r4, 0xA] - strh r0, [r1] - adds r1, 0x2 - ldrh r0, [r4, 0xC] - strh r0, [r1] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080886EC: .4byte sub_808847C -_080886F0: .4byte gTasks -_080886F4: .4byte REG_BG0HOFS - thumb_func_end sub_80886B0 - - thumb_func_start sub_80886F8 -sub_80886F8: @ 80886F8 - ldrh r1, [r0, 0xA] - subs r1, 0x10 - strh r1, [r0, 0xA] - ldrh r1, [r0, 0xE] - adds r1, 0x10 - strh r1, [r0, 0xE] - bx lr - thumb_func_end sub_80886F8 - - thumb_func_start sub_8088708 -sub_8088708: @ 8088708 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r5, r0, 0 - ldrh r2, [r5, 0x10] - movs r1, 0x10 - ldrsh r0, [r5, r1] - cmp r0, 0x1F - ble _08088724 - movs r0, 0x1 - b _080887A8 -_08088724: - ldrh r0, [r5, 0xE] - lsls r0, 16 - asrs r3, r0, 19 - movs r1, 0x1F - ands r3, r1 - movs r4, 0x10 - ldrsh r0, [r5, r4] - cmp r3, r0 - blt _080887A6 - movs r0, 0x20 - subs r3, r0, r3 - ands r3, r1 - subs r0, r2 - mov r12, r0 - mov r7, r12 - ands r7, r1 - mov r12, r7 - ldrh r0, [r5, 0x20] - ldr r1, _080887B8 @ =0x06000140 - adds r1, r0 - mov r8, r1 - movs r4, 0 - ldr r7, _080887BC @ =gDarknessFieldMoveStreaksTilemap - mov r10, r7 - movs r0, 0xF0 - lsls r0, 8 - mov r9, r0 - adds r1, r3, 0x1 - movs r0, 0x1F - ands r1, r0 - str r1, [sp] - mov r6, r12 - adds r6, 0x1 - ands r6, r0 -_08088768: - lsls r1, r4, 5 - adds r2, r1, r3 - lsls r2, 1 - add r2, r8 - mov r7, r12 - adds r0, r7, r1 - lsls r0, 1 - add r0, r10 - ldrh r0, [r0] - mov r7, r9 - orrs r0, r7 - strh r0, [r2] - ldr r0, [sp] - adds r2, r1, r0 - lsls r2, 1 - add r2, r8 - adds r1, r6, r1 - lsls r1, 1 - add r1, r10 - ldrh r0, [r1] - mov r1, r9 - orrs r0, r1 - strh r0, [r2] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x9 - bls _08088768 - ldrh r0, [r5, 0x10] - adds r0, 0x2 - strh r0, [r5, 0x10] -_080887A6: - movs r0, 0 -_080887A8: - 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 -_080887B8: .4byte 0x06000140 -_080887BC: .4byte gDarknessFieldMoveStreaksTilemap - thumb_func_end sub_8088708 - - thumb_func_start sub_80887C0 -sub_80887C0: @ 80887C0 - push {r4-r7,lr} - adds r5, r0, 0 - movs r1, 0x10 - ldrsh r0, [r5, r1] - cmp r0, 0x1F - ble _080887D0 - movs r0, 0x1 - b _08088824 -_080887D0: - ldrh r0, [r5, 0xE] - lsls r0, 16 - asrs r0, 19 - lsls r0, 16 - lsrs r2, r0, 16 - movs r1, 0x10 - ldrsh r0, [r5, r1] - cmp r2, r0 - blt _08088822 - ldrh r0, [r5, 0xA] - lsls r0, 16 - asrs r2, r0, 19 - movs r0, 0x1F - ands r2, r0 - ldrh r0, [r5, 0x20] - ldr r1, _0808882C @ =0x06000140 - adds r6, r0, r1 - movs r3, 0 - movs r0, 0xF0 - lsls r0, 8 - adds r7, r0, 0 - adds r4, r2, 0x1 - movs r0, 0x1F - ands r4, r0 -_08088800: - lsls r0, r3, 5 - adds r1, r0, r2 - lsls r1, 1 - adds r1, r6 - strh r7, [r1] - adds r0, r4 - lsls r0, 1 - adds r0, r6 - strh r7, [r0] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x9 - bls _08088800 - ldrh r0, [r5, 0x10] - adds r0, 0x2 - strh r0, [r5, 0x10] -_08088822: - movs r0, 0 -_08088824: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0808882C: .4byte 0x06000140 - thumb_func_end sub_80887C0 - - thumb_func_start sub_8088830 -sub_8088830: @ 8088830 - push {r4-r6,lr} - sub sp, 0x8 - adds r6, r0, 0 - movs r5, 0x80 - lsls r5, 24 - ands r5, r6 - lsrs r5, 16 - lsls r5, 16 - lsrs r5, 16 - ldr r0, _08088884 @ =0x7fffffff - ands r6, r0 - lsls r0, r6, 16 - lsrs r0, 16 - movs r3, 0xA0 - lsls r3, 1 - movs r4, 0x50 - str r4, [sp] - movs r4, 0 - str r4, [sp, 0x4] - bl CreateMonSprite_FieldMove - lsls r0, 24 - lsrs r0, 24 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r1, _08088888 @ =gSprites - adds r2, r1 - ldr r1, _0808888C @ =SpriteCallbackDummy - str r1, [r2, 0x1C] - ldrb r3, [r2, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r3 - strb r1, [r2, 0x5] - strh r6, [r2, 0x2E] - strh r5, [r2, 0x3A] - add sp, 0x8 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08088884: .4byte 0x7fffffff -_08088888: .4byte gSprites -_0808888C: .4byte SpriteCallbackDummy - thumb_func_end sub_8088830 - - thumb_func_start sub_8088890 -sub_8088890: @ 8088890 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x20] - subs r0, 0x14 - strh r0, [r1, 0x20] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x78 - bgt _080888D0 - movs r0, 0x78 - strh r0, [r1, 0x20] - movs r0, 0x1E - strh r0, [r1, 0x30] - ldr r0, _080888C4 @ =sub_80888D4 - str r0, [r1, 0x1C] - movs r2, 0x3A - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _080888C8 - ldrh r0, [r1, 0x2E] - movs r1, 0 - movs r2, 0x7D - movs r3, 0xA - bl PlayCry2 - b _080888D0 - .align 2, 0 -_080888C4: .4byte sub_80888D4 -_080888C8: - ldrh r0, [r1, 0x2E] - movs r1, 0 - bl PlayCry1 -_080888D0: - pop {r0} - bx r0 - thumb_func_end sub_8088890 - - thumb_func_start sub_80888D4 -sub_80888D4: @ 80888D4 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x30] - subs r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - cmp r0, 0 - bne _080888E8 - ldr r0, _080888EC @ =sub_80888F0 - str r0, [r1, 0x1C] -_080888E8: - pop {r0} - bx r0 - .align 2, 0 -_080888EC: .4byte sub_80888F0 - thumb_func_end sub_80888D4 - - thumb_func_start sub_80888F0 -sub_80888F0: @ 80888F0 - push {lr} - adds r2, r0, 0 - ldrh r3, [r2, 0x20] - movs r0, 0x20 - ldrsh r1, [r2, r0] - movs r0, 0x40 - negs r0, r0 - cmp r1, r0 - bge _08088908 - movs r0, 0x1 - strh r0, [r2, 0x3C] - b _0808890E -_08088908: - adds r0, r3, 0 - subs r0, 0x14 - strh r0, [r2, 0x20] -_0808890E: - pop {r0} - bx r0 - thumb_func_end sub_80888F0 - - thumb_func_start FldEff_UseSurf -FldEff_UseSurf: @ 8088914 - push {lr} - ldr r0, _08088944 @ =sub_8088954 - movs r1, 0xFF - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08088948 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _0808894C @ =gUnknown_0202FF84 - ldr r0, [r0] - strh r0, [r1, 0x26] - bl sav1_reset_battle_music_maybe - ldr r0, _08088950 @ =0x0000016d - bl sub_8053FB0 - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08088944: .4byte sub_8088954 -_08088948: .4byte gTasks -_0808894C: .4byte gUnknown_0202FF84 -_08088950: .4byte 0x0000016d - thumb_func_end FldEff_UseSurf - - thumb_func_start sub_8088954 -sub_8088954: @ 8088954 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _0808897C @ =gUnknown_0839F3E4 - ldr r2, _08088980 @ =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r1, [r0, r2] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_0808897C: .4byte gUnknown_0839F3E4 -_08088980: .4byte gTasks - thumb_func_end sub_8088954 - - thumb_func_start sub_8088984 -sub_8088984: @ 8088984 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r4, r0, 0 - bl ScriptContext2_Enable - bl FreezeMapObjects - ldr r5, _080889DC @ =gPlayerAvatar - movs r0, 0x1 - strb r0, [r5, 0x6] - movs r0, 0x8 - bl SetPlayerAvatarStateMask - adds r6, r4, 0 - adds r6, 0xA - movs r0, 0xC - adds r0, r4 - mov r8, r0 - adds r0, r6, 0 - mov r1, r8 - bl PlayerGetDestCoords - ldr r2, _080889E0 @ =gMapObjects - ldrb r1, [r5, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x18] - lsrs r0, 4 - adds r1, r6, 0 - mov r2, r8 - bl MoveCoords - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080889DC: .4byte gPlayerAvatar -_080889E0: .4byte gMapObjects - thumb_func_end sub_8088984 - - thumb_func_start sub_80889E4 -sub_80889E4: @ 80889E4 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _08088A28 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08088A2C @ =gMapObjects - adds r4, r0, r1 - adds r0, r4, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive - lsls r0, 24 - cmp r0, 0 - beq _08088A0E - adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _08088A20 -_08088A0E: - bl sub_8059BF4 - adds r0, r4, 0 - movs r1, 0x39 - bl FieldObjectSetSpecialAnim - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] -_08088A20: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08088A28: .4byte gPlayerAvatar -_08088A2C: .4byte gMapObjects - thumb_func_end sub_80889E4 - - thumb_func_start sub_8088A30 -sub_8088A30: @ 8088A30 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _08088A6C @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08088A70 @ =gMapObjects - adds r0, r1 - bl FieldObjectCheckIfSpecialAnimFinishedOrInactive - lsls r0, 24 - cmp r0, 0 - beq _08088A66 - ldr r2, _08088A74 @ =gUnknown_0202FF84 - movs r1, 0x26 - ldrsh r0, [r4, r1] - movs r1, 0x80 - lsls r1, 24 - orrs r0, r1 - str r0, [r2] - movs r0, 0x3B - bl FieldEffectStart - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_08088A66: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08088A6C: .4byte gPlayerAvatar -_08088A70: .4byte gMapObjects -_08088A74: .4byte gUnknown_0202FF84 - thumb_func_end sub_8088A30 - - thumb_func_start sub_8088A78 -sub_8088A78: @ 8088A78 - push {r4-r6,lr} - adds r6, r0, 0 - movs r0, 0x6 - bl FieldEffectActiveListContains - lsls r0, 24 - cmp r0, 0 - bne _08088AE2 - ldr r5, _08088AE8 @ =gPlayerAvatar - ldrb r0, [r5, 0x5] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _08088AEC @ =gMapObjects - adds r4, r0 - movs r0, 0x3 - bl GetPlayerAvatarGraphicsIdByStateId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_805B980 - adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - ldrb r0, [r4, 0x18] - lsrs r0, 4 - bl sub_80608D0 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldObjectSetSpecialAnim - ldr r1, _08088AF0 @ =gUnknown_0202FF84 - movs r2, 0xA - ldrsh r0, [r6, r2] - str r0, [r1] - movs r2, 0xC - ldrsh r0, [r6, r2] - str r0, [r1, 0x4] - ldrb r0, [r5, 0x5] - str r0, [r1, 0x8] - movs r0, 0x8 - bl FieldEffectStart - strb r0, [r4, 0x1A] - ldrh r0, [r6, 0x8] - adds r0, 0x1 - strh r0, [r6, 0x8] -_08088AE2: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08088AE8: .4byte gPlayerAvatar -_08088AEC: .4byte gMapObjects -_08088AF0: .4byte gUnknown_0202FF84 - thumb_func_end sub_8088A78 - - thumb_func_start sub_8088AF4 -sub_8088AF4: @ 8088AF4 - push {r4,r5,lr} - ldr r5, _08088B5C @ =gPlayerAvatar - ldrb r1, [r5, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08088B60 @ =gMapObjects - adds r4, r0, r1 - adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _08088B54 - movs r0, 0 - strb r0, [r5, 0x6] - ldrb r1, [r5] - movs r0, 0xDF - ands r0, r1 - strb r0, [r5] - ldrb r0, [r4, 0x18] - lsrs r0, 4 - bl GetFaceDirectionAnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldObjectSetSpecialAnim - ldrb r0, [r4, 0x1A] - movs r1, 0x1 - bl sub_8127ED0 - bl UnfreezeMapObjects - bl ScriptContext2_Disable - movs r0, 0x9 - bl FieldEffectActiveListRemove - ldr r0, _08088B64 @ =sub_8088954 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_08088B54: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08088B5C: .4byte gPlayerAvatar -_08088B60: .4byte gMapObjects -_08088B64: .4byte sub_8088954 - thumb_func_end sub_8088AF4 - - thumb_func_start FldEff_NPCFlyOut -FldEff_NPCFlyOut: @ 8088B68 - push {r4,lr} - ldr r0, _08088BB4 @ =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x68] - movs r1, 0x78 - movs r2, 0 - movs r3, 0x1 - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r2, r4, 4 - adds r2, r4 - lsls r2, 2 - ldr r0, _08088BB8 @ =gSprites - adds r2, r0 - ldrb r1, [r2, 0x5] - movs r0, 0xF - ands r0, r1 - movs r1, 0xD - negs r1, r1 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2, 0x5] - ldr r0, _08088BBC @ =sub_8088BC4 - str r0, [r2, 0x1C] - ldr r0, _08088BC0 @ =gUnknown_0202FF84 - ldr r0, [r0] - strh r0, [r2, 0x30] - movs r0, 0x9E - bl PlaySE - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08088BB4: .4byte gFieldEffectObjectTemplatePointers -_08088BB8: .4byte gSprites -_08088BBC: .4byte sub_8088BC4 -_08088BC0: .4byte gUnknown_0202FF84 - thumb_func_end FldEff_NPCFlyOut - - thumb_func_start sub_8088BC4 -sub_8088BC4: @ 8088BC4 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x32 - ldrsh r0, [r4, r1] - movs r1, 0x8C - bl Cos - movs r5, 0 - strh r0, [r4, 0x24] - movs r2, 0x32 - ldrsh r0, [r4, r2] - movs r1, 0x48 - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - adds r0, 0x4 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x32] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _08088C26 - movs r2, 0x30 - ldrsh r0, [r4, r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _08088C3C @ =gSprites - adds r1, r0 - adds r3, r1, 0 - adds r3, 0x3E - ldrb r2, [r3] - movs r0, 0x3 - negs r0, r0 - ands r0, r2 - strb r0, [r3] - ldrh r0, [r4, 0x24] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r1, 0x20] - ldrh r0, [r4, 0x26] - ldrh r2, [r4, 0x22] - adds r0, r2 - subs r0, 0x8 - strh r0, [r1, 0x22] - strh r5, [r1, 0x24] - strh r5, [r1, 0x26] -_08088C26: - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0x7F - ble _08088C36 - adds r0, r4, 0 - movs r1, 0x1E - bl FieldEffectStop -_08088C36: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08088C3C: .4byte gSprites - thumb_func_end sub_8088BC4 - - thumb_func_start FldEff_UseFly -FldEff_UseFly: @ 8088C40 - push {lr} - ldr r0, _08088C64 @ =sub_8088C70 - movs r1, 0xFE - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08088C68 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _08088C6C @ =gUnknown_0202FF84 - ldr r0, [r0] - strh r0, [r1, 0xA] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08088C64: .4byte sub_8088C70 -_08088C68: .4byte gTasks -_08088C6C: .4byte gUnknown_0202FF84 - thumb_func_end FldEff_UseFly - - thumb_func_start sub_8088C70 -sub_8088C70: @ 8088C70 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _08088C98 @ =gUnknown_0839F3F8 - ldr r2, _08088C9C @ =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r1, [r0, r2] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_08088C98: .4byte gUnknown_0839F3F8 -_08088C9C: .4byte gTasks - thumb_func_end sub_8088C70 - - thumb_func_start sub_8088CA0 -sub_8088CA0: @ 8088CA0 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r6, _08088CF0 @ =gPlayerAvatar - ldrb r1, [r6, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08088CF4 @ =gMapObjects - adds r4, r0, r1 - adds r0, r4, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive - lsls r0, 24 - cmp r0, 0 - beq _08088CCA - adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _08088CE8 -_08088CCA: - ldrb r0, [r6] - strh r0, [r5, 0x26] - movs r0, 0x1 - strb r0, [r6, 0x6] - bl SetPlayerAvatarStateMask - bl sub_8059BF4 - adds r0, r4, 0 - movs r1, 0x39 - bl FieldObjectSetSpecialAnim - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] -_08088CE8: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08088CF0: .4byte gPlayerAvatar -_08088CF4: .4byte gMapObjects - thumb_func_end sub_8088CA0 - - thumb_func_start sub_8088CF8 -sub_8088CF8: @ 8088CF8 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _08088D30 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08088D34 @ =gMapObjects - adds r0, r1 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _08088D28 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - ldr r1, _08088D38 @ =gUnknown_0202FF84 - movs r2, 0xA - ldrsh r0, [r4, r2] - str r0, [r1] - movs r0, 0x3B - bl FieldEffectStart -_08088D28: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08088D30: .4byte gPlayerAvatar -_08088D34: .4byte gMapObjects -_08088D38: .4byte gUnknown_0202FF84 - thumb_func_end sub_8088CF8 - - thumb_func_start sub_8088D3C -sub_8088D3C: @ 8088D3C - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x6 - bl FieldEffectActiveListContains - lsls r0, 24 - cmp r0, 0 - bne _08088D84 - ldr r0, _08088D8C @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08088D90 @ =gMapObjects - adds r5, r0, r1 - ldrh r1, [r4, 0x26] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08088D74 - ldrb r0, [r5, 0x1A] - movs r1, 0x2 - bl sub_8127ED0 - ldrb r0, [r5, 0x1A] - movs r1, 0 - bl sub_8127EFC -_08088D74: - bl sub_8088F60 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_08088D84: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08088D8C: .4byte gPlayerAvatar -_08088D90: .4byte gMapObjects - thumb_func_end sub_8088D3C - - thumb_func_start sub_8088D94 -sub_8088D94: @ 8088D94 - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4, 0xA] - bl sub_8088FA4 - lsls r0, 24 - cmp r0, 0 - beq _08088DC8 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0x10 - strh r0, [r4, 0xC] - movs r0, 0x1 - bl SetPlayerAvatarTransitionFlags - ldr r0, _08088DD0 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08088DD4 @ =gMapObjects - adds r0, r1 - movs r1, 0x2 - bl FieldObjectSetSpecialAnim -_08088DC8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08088DD0: .4byte gPlayerAvatar -_08088DD4: .4byte gMapObjects - thumb_func_end sub_8088D94 - - thumb_func_start sub_8088DD8 -sub_8088DD8: @ 8088DD8 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _08088E24 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08088E28 @ =gMapObjects - adds r2, r0, r1 - ldrh r1, [r4, 0xC] - movs r3, 0xC - ldrsh r0, [r4, r3] - cmp r0, 0 - beq _08088DFE - subs r0, r1, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - cmp r0, 0 - bne _08088E1C -_08088DFE: - adds r0, r2, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _08088E1C - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0x9E - bl PlaySE - ldrb r0, [r4, 0xA] - bl sub_8088FC0 -_08088E1C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08088E24: .4byte gPlayerAvatar -_08088E28: .4byte gMapObjects - thumb_func_end sub_8088DD8 - - thumb_func_start sub_8088E2C -sub_8088E2C: @ 8088E2C - push {r4-r6,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0xC] - adds r0, 0x1 - strh r0, [r5, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _08088EA2 - ldr r0, _08088EA8 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08088EAC @ =gMapObjects - adds r4, r0, r1 - movs r0, 0x3 - bl GetPlayerAvatarGraphicsIdByStateId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_805B980 - ldrb r1, [r4, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r6, _08088EB0 @ =gSprites - adds r0, r6 - movs r1, 0x16 - bl StartSpriteAnim - ldrb r0, [r4, 0x1] - movs r1, 0x10 - orrs r0, r1 - strb r0, [r4, 0x1] - adds r0, r4, 0 - movs r1, 0x48 - bl FieldObjectSetSpecialAnim - ldrh r1, [r5, 0x26] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08088E98 - ldrb r1, [r4, 0x1A] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - bl DestroySprite -_08088E98: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - movs r0, 0 - strh r0, [r5, 0xC] -_08088EA2: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08088EA8: .4byte gPlayerAvatar -_08088EAC: .4byte gMapObjects -_08088EB0: .4byte gSprites - thumb_func_end sub_8088E2C - - thumb_func_start sub_8088EB4 -sub_8088EB4: @ 8088EB4 - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0xC] - adds r0, 0x1 - strh r0, [r5, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x9 - ble _08088F00 - ldr r0, _08088F08 @ =gPlayerAvatar - ldrb r0, [r0, 0x5] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _08088F0C @ =gMapObjects - adds r4, r0 - adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimActive - ldrb r1, [r4, 0x1] - movs r0, 0x11 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x1] - ldrb r1, [r4, 0x2] - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x2] - ldrb r0, [r5, 0xA] - ldrb r1, [r4, 0x4] - bl sub_8088FFC - bl CameraObjectReset2 - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] -_08088F00: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08088F08: .4byte gPlayerAvatar -_08088F0C: .4byte gMapObjects - thumb_func_end sub_8088EB4 - - thumb_func_start sub_8088F10 -sub_8088F10: @ 8088F10 - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4, 0xA] - bl sub_8088FA4 - lsls r0, 24 - cmp r0, 0 - beq _08088F2A - bl fade_8080918 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_08088F2A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8088F10 - - thumb_func_start sub_8088F30 -sub_8088F30: @ 8088F30 - push {lr} - ldr r0, _08088F58 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08088F52 - movs r0, 0x1F - bl FieldEffectActiveListRemove - ldr r0, _08088F5C @ =sub_8088C70 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_08088F52: - pop {r0} - bx r0 - .align 2, 0 -_08088F58: .4byte gPaletteFade -_08088F5C: .4byte sub_8088C70 - thumb_func_end sub_8088F30 - - thumb_func_start sub_8088F60 -sub_8088F60: @ 8088F60 - push {lr} - ldr r0, _08088F98 @ =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x68] - movs r1, 0xFF - movs r2, 0xB4 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r1, _08088F9C @ =gSprites - adds r2, r1 - ldrb r3, [r2, 0x5] - movs r1, 0xF - ands r1, r3 - movs r3, 0xD - negs r3, r3 - ands r1, r3 - movs r3, 0x4 - orrs r1, r3 - strb r1, [r2, 0x5] - ldr r1, _08088FA0 @ =sub_8089018 - str r1, [r2, 0x1C] - pop {r1} - bx r1 - .align 2, 0 -_08088F98: .4byte gFieldEffectObjectTemplatePointers -_08088F9C: .4byte gSprites -_08088FA0: .4byte sub_8089018 - thumb_func_end sub_8088F60 - - thumb_func_start sub_8088FA4 -sub_8088FA4: @ 8088FA4 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08088FBC @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrh r0, [r1, 0x3C] - lsls r0, 24 - lsrs r0, 24 - bx lr - .align 2, 0 -_08088FBC: .4byte gSprites - thumb_func_end sub_8088FA4 - - thumb_func_start sub_8088FC0 -sub_8088FC0: @ 8088FC0 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _08088FF4 @ =gSprites - adds r4, r0 - ldr r0, _08088FF8 @ =sub_80890D8 - str r0, [r4, 0x1C] - movs r1, 0 - movs r0, 0x78 - strh r0, [r4, 0x20] - strh r1, [r4, 0x22] - strh r1, [r4, 0x24] - strh r1, [r4, 0x26] - adds r0, r4, 0 - adds r0, 0x2E - movs r2, 0x10 - bl memset - movs r0, 0x40 - strh r0, [r4, 0x3A] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08088FF4: .4byte gSprites -_08088FF8: .4byte sub_80890D8 - thumb_func_end sub_8088FC0 - - thumb_func_start sub_8088FFC -sub_8088FFC: @ 8088FFC - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _08089014 @ =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - strh r1, [r2, 0x3A] - bx lr - .align 2, 0 -_08089014: .4byte gSprites - thumb_func_end sub_8088FFC - - thumb_func_start sub_8089018 -sub_8089018: @ 8089018 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080890C4 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _0808905C - ldrb r0, [r4, 0x1] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r4, 0x1] - ldr r0, _080890CC @ =gSpriteAffineAnimTable_0839F44C - str r0, [r4, 0x10] - adds r0, r4, 0 - bl InitSpriteAffineAnim - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAffineAnim - movs r0, 0x76 - strh r0, [r4, 0x20] - ldr r0, _080890D0 @ =0x0000ffd0 - strh r0, [r4, 0x22] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - movs r0, 0x40 - strh r0, [r4, 0x30] - adds r0, 0xC0 - strh r0, [r4, 0x32] -_0808905C: - ldrh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 24 - ldrh r1, [r4, 0x30] - adds r0, r1 - strh r0, [r4, 0x30] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x78 - bl Cos - strh r0, [r4, 0x24] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x78 - bl Sin - strh r0, [r4, 0x26] - ldrh r2, [r4, 0x32] - movs r0, 0x32 - ldrsh r1, [r4, r0] - ldr r0, _080890D4 @ =0x000007ff - cmp r1, r0 - bgt _08089092 - adds r0, r2, 0 - adds r0, 0x60 - strh r0, [r4, 0x32] -_08089092: - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0x81 - ble _080890C4 - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldrb r1, [r4, 0x1] - lsrs r1, 6 - ldrb r2, [r4, 0x3] - lsrs r2, 6 - adds r0, r4, 0 - movs r3, 0 - bl CalcCenterToCornerVec -_080890C4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080890CC: .4byte gSpriteAffineAnimTable_0839F44C -_080890D0: .4byte 0x0000ffd0 -_080890D4: .4byte 0x000007ff - thumb_func_end sub_8089018 - - thumb_func_start sub_80890D8 -sub_80890D8: @ 80890D8 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x32 - ldrsh r0, [r4, r1] - movs r1, 0x8C - bl Cos - movs r5, 0 - strh r0, [r4, 0x24] - movs r2, 0x32 - ldrsh r0, [r4, r2] - movs r1, 0x48 - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - adds r0, 0x4 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x32] - movs r1, 0x3A - ldrsh r0, [r4, r1] - cmp r0, 0x40 - beq _08089136 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _08089148 @ =gSprites - adds r1, r0 - adds r3, r1, 0 - adds r3, 0x3E - ldrb r2, [r3] - movs r0, 0x3 - negs r0, r0 - ands r0, r2 - strb r0, [r3] - ldrh r0, [r4, 0x24] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r1, 0x20] - ldrh r0, [r4, 0x26] - ldrh r2, [r4, 0x22] - adds r0, r2 - subs r0, 0x8 - strh r0, [r1, 0x22] - strh r5, [r1, 0x24] - strh r5, [r1, 0x26] -_08089136: - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0x7F - ble _08089142 - movs r0, 0x1 - strh r0, [r4, 0x3C] -_08089142: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08089148: .4byte gSprites - thumb_func_end sub_80890D8 - - thumb_func_start sub_808914C -sub_808914C: @ 808914C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08089220 - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _08089196 - ldrb r0, [r4, 0x1] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r4, 0x1] - ldr r0, _08089228 @ =gSpriteAffineAnimTable_0839F44C - str r0, [r4, 0x10] - adds r0, r4, 0 - bl InitSpriteAffineAnim - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - movs r0, 0x5E - strh r0, [r4, 0x20] - ldr r0, _0808922C @ =0x0000ffe0 - strh r0, [r4, 0x22] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - movs r0, 0xF0 - strh r0, [r4, 0x30] - movs r0, 0x80 - lsls r0, 4 - strh r0, [r4, 0x32] - movs r0, 0x80 - strh r0, [r4, 0x36] -_08089196: - ldrh r1, [r4, 0x32] - lsls r1, 16 - asrs r1, 24 - ldrh r2, [r4, 0x30] - adds r2, r1 - ldrh r0, [r4, 0x34] - adds r0, r1 - strh r0, [r4, 0x34] - movs r0, 0xFF - ands r2, r0 - strh r2, [r4, 0x30] - movs r3, 0x30 - ldrsh r0, [r4, r3] - movs r1, 0x20 - bl Cos - strh r0, [r4, 0x24] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x78 - bl Sin - strh r0, [r4, 0x26] - ldrh r1, [r4, 0x32] - movs r2, 0x32 - ldrsh r0, [r4, r2] - movs r2, 0x80 - lsls r2, 1 - cmp r0, r2 - ble _080891D8 - ldrh r0, [r4, 0x36] - subs r0, r1, r0 - strh r0, [r4, 0x32] -_080891D8: - ldrh r1, [r4, 0x36] - movs r3, 0x36 - ldrsh r0, [r4, r3] - cmp r0, 0xFF - bgt _080891E8 - adds r0, r1, 0 - adds r0, 0x18 - strh r0, [r4, 0x36] -_080891E8: - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0xFF - bgt _080891F2 - strh r2, [r4, 0x32] -_080891F2: - movs r2, 0x34 - ldrsh r0, [r4, r2] - cmp r0, 0x3B - ble _08089220 - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_08089220: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08089228: .4byte gSpriteAffineAnimTable_0839F44C -_0808922C: .4byte 0x0000ffe0 - thumb_func_end sub_808914C - - thumb_func_start sub_8089230 -sub_8089230: @ 8089230 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_8088FC0 - ldr r1, _08089254 @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r1, 0x1C - adds r0, r1 - ldr r1, _08089258 @ =sub_808914C - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08089254: .4byte gSprites -_08089258: .4byte sub_808914C - thumb_func_end sub_8089230 - - thumb_func_start FldEff_FlyIn -FldEff_FlyIn: @ 808925C - push {lr} - ldr r0, _0808926C @ =sub_8089270 - movs r1, 0xFE - bl CreateTask - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0808926C: .4byte sub_8089270 - thumb_func_end FldEff_FlyIn - - thumb_func_start sub_8089270 -sub_8089270: @ 8089270 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _08089298 @ =gUnknown_0839F454 - ldr r2, _0808929C @ =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r1, [r0, r2] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_08089298: .4byte gUnknown_0839F454 -_0808929C: .4byte gTasks - thumb_func_end sub_8089270 - - thumb_func_start sub_80892A0 -sub_80892A0: @ 80892A0 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r6, _08089348 @ =gPlayerAvatar - ldrb r1, [r6, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _0808934C @ =gMapObjects - adds r4, r0, r1 - adds r0, r4, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive - lsls r0, 24 - cmp r0, 0 - beq _080892CA - adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _08089342 -_080892CA: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - movs r0, 0x11 - strh r0, [r5, 0xC] - ldrb r0, [r6] - strh r0, [r5, 0x26] - movs r0, 0x1 - strb r0, [r6, 0x6] - bl SetPlayerAvatarStateMask - ldrh r1, [r5, 0x26] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080892F2 - ldrb r0, [r4, 0x1A] - movs r1, 0 - bl sub_8127ED0 -_080892F2: - movs r0, 0x3 - bl GetPlayerAvatarGraphicsIdByStateId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_805B980 - bl CameraObjectReset2 - adds r0, r4, 0 - movs r1, 0x3 - bl FieldObjectTurn - ldrb r1, [r4, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08089350 @ =gSprites - adds r0, r1 - movs r1, 0x16 - bl StartSpriteAnim - ldrb r1, [r4, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x1] - bl sub_8088F60 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0xA] - bl sub_8088FC0 - ldrb r0, [r5, 0xA] - ldrb r1, [r4, 0x4] - bl sub_8088FFC -_08089342: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08089348: .4byte gPlayerAvatar -_0808934C: .4byte gMapObjects -_08089350: .4byte gSprites - thumb_func_end sub_80892A0 - - thumb_func_start sub_8089354 -sub_8089354: @ 8089354 - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r1, [r5, 0xC] - movs r2, 0xC - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _0808936C - subs r0, r1, 0x1 - strh r0, [r5, 0xC] - lsls r0, 16 - cmp r0, 0 - bne _080893AC -_0808936C: - ldr r0, _080893B4 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080893B8 @ =gMapObjects - adds r0, r1 - ldrb r0, [r0, 0x4] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _080893BC @ =gSprites - adds r4, r0 - ldrb r0, [r5, 0xA] - movs r1, 0x40 - bl sub_8088FFC - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - movs r1, 0 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x26] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - strh r1, [r4, 0x24] - strh r1, [r4, 0x26] - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - strh r1, [r5, 0xC] -_080893AC: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080893B4: .4byte gPlayerAvatar -_080893B8: .4byte gMapObjects -_080893BC: .4byte gSprites - thumb_func_end sub_8089354 - - thumb_func_start sub_80893C0 -sub_80893C0: @ 80893C0 - push {r4,lr} - sub sp, 0x24 - adds r4, r0, 0 - ldr r1, _08089408 @ =gUnknown_0839F470 - mov r0, sp - movs r2, 0x24 - bl memcpy - ldr r0, _0808940C @ =gPlayerAvatar - ldrb r0, [r0, 0x4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _08089410 @ =gSprites - adds r1, r0 - movs r2, 0xC - ldrsh r0, [r4, r2] - lsls r0, 1 - add r0, sp - ldrh r0, [r0] - strh r0, [r1, 0x26] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x11 - ble _080893FE - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080893FE: - add sp, 0x24 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08089408: .4byte gUnknown_0839F470 -_0808940C: .4byte gPlayerAvatar -_08089410: .4byte gSprites - thumb_func_end sub_80893C0 - - thumb_func_start sub_8089414 -sub_8089414: @ 8089414 - push {r4-r6,lr} - adds r6, r0, 0 - ldrb r0, [r6, 0xA] - bl sub_8088FA4 - lsls r0, 24 - cmp r0, 0 - beq _08089478 - ldr r0, _08089480 @ =gPlayerAvatar - ldrb r0, [r0, 0x5] - lsls r5, r0, 3 - adds r5, r0 - lsls r5, 2 - ldr r0, _08089484 @ =gMapObjects - adds r5, r0 - ldrb r0, [r5, 0x4] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _08089488 @ =gSprites - adds r4, r0 - ldrb r1, [r5, 0x1] - movs r0, 0x11 - negs r0, r0 - ands r0, r1 - strb r0, [r5, 0x1] - movs r0, 0x10 - ldrsh r1, [r5, r0] - movs r0, 0x12 - ldrsh r2, [r5, r0] - adds r0, r5, 0 - bl sub_805C058 - movs r0, 0 - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - adds r4, 0x3E - ldrb r0, [r4] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r4] - bl sub_8059BF4 - adds r0, r5, 0 - movs r1, 0x39 - bl FieldObjectSetSpecialAnim - ldrh r0, [r6, 0x8] - adds r0, 0x1 - strh r0, [r6, 0x8] -_08089478: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08089480: .4byte gPlayerAvatar -_08089484: .4byte gMapObjects -_08089488: .4byte gSprites - thumb_func_end sub_8089414 - - thumb_func_start sub_808948C -sub_808948C: @ 808948C - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080894BC @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080894C0 @ =gMapObjects - adds r0, r1 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _080894B4 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - ldrb r0, [r4, 0xA] - bl sub_8089230 -_080894B4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080894BC: .4byte gPlayerAvatar -_080894C0: .4byte gMapObjects - thumb_func_end sub_808948C - - thumb_func_start sub_80894C4 -sub_80894C4: @ 80894C4 - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4, 0xA] - bl sub_8088FA4 - lsls r0, 24 - cmp r0, 0 - beq _080894F0 - movs r0, 0xA - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080894F8 @ =gSprites - adds r0, r1 - bl DestroySprite - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0x10 - strh r0, [r4, 0xA] -_080894F0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080894F8: .4byte gSprites - thumb_func_end sub_80894C4 - - thumb_func_start fishE -fishE: @ 80894FC - push {r4-r7,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0xA] - subs r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - cmp r0, 0 - bne _08089566 - ldr r6, _0808956C @ =gPlayerAvatar - ldrb r1, [r6, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08089570 @ =gMapObjects - adds r4, r0, r1 - movs r7, 0 - ldrh r1, [r5, 0x26] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08089530 - movs r7, 0x3 - ldrb r0, [r4, 0x1A] - movs r1, 0x1 - bl sub_8127ED0 -_08089530: - adds r0, r7, 0 - bl GetPlayerAvatarGraphicsIdByStateId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_805B980 - adds r0, r4, 0 - movs r1, 0x1 - bl FieldObjectTurn - ldrh r0, [r5, 0x26] - strb r0, [r6] - movs r0, 0 - strb r0, [r6, 0x6] - movs r0, 0x20 - bl FieldEffectActiveListRemove - ldr r0, _08089574 @ =sub_8089270 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_08089566: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0808956C: .4byte gPlayerAvatar -_08089570: .4byte gMapObjects -_08089574: .4byte sub_8089270 - thumb_func_end fishE - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/field_fadetransition.s b/asm/field_fadetransition.s index 798285a45..e882e7030 100644 --- a/asm/field_fadetransition.s +++ b/asm/field_fadetransition.s @@ -617,7 +617,7 @@ sub_8080E88: @ 8080E88 bl PlayRainSoundEffect movs r0, 0x9 bl PlaySE - ldr r0, _08080EB4 @ =gUnknown_0300485C + ldr r0, _08080EB4 @ =gFieldCallback ldr r1, _08080EB8 @ =mapldr_default str r1, [r0] ldr r0, _08080EBC @ =task0A_fade_n_map_maybe @@ -626,7 +626,7 @@ sub_8080E88: @ 8080E88 pop {r0} bx r0 .align 2, 0 -_08080EB4: .4byte gUnknown_0300485C +_08080EB4: .4byte gFieldCallback _08080EB8: .4byte mapldr_default _08080EBC: .4byte task0A_fade_n_map_maybe thumb_func_end sub_8080E88 @@ -638,7 +638,7 @@ sp13E_warp_to_last_warp: @ 8080EC0 bl sub_8053FF8 bl fade_8080918 bl PlayRainSoundEffect - ldr r0, _08080EE4 @ =gUnknown_0300485C + ldr r0, _08080EE4 @ =gFieldCallback ldr r1, _08080EE8 @ =mapldr_default str r1, [r0] ldr r0, _08080EEC @ =task0A_fade_n_map_maybe @@ -647,7 +647,7 @@ sp13E_warp_to_last_warp: @ 8080EC0 pop {r0} bx r0 .align 2, 0 -_08080EE4: .4byte gUnknown_0300485C +_08080EE4: .4byte gFieldCallback _08080EE8: .4byte mapldr_default _08080EEC: .4byte task0A_fade_n_map_maybe thumb_func_end sp13E_warp_to_last_warp @@ -656,7 +656,7 @@ _08080EEC: .4byte task0A_fade_n_map_maybe sub_8080EF0: @ 8080EF0 push {lr} bl ScriptContext2_Enable - ldr r0, _08080F08 @ =gUnknown_0300485C + ldr r0, _08080F08 @ =gFieldCallback ldr r1, _08080F0C @ =mapldr_default str r1, [r0] ldr r0, _08080F10 @ =sub_808115C @@ -665,7 +665,7 @@ sub_8080EF0: @ 8080EF0 pop {r0} bx r0 .align 2, 0 -_08080F08: .4byte gUnknown_0300485C +_08080F08: .4byte gFieldCallback _08080F0C: .4byte mapldr_default _08080F10: .4byte sub_808115C thumb_func_end sub_8080EF0 @@ -674,13 +674,13 @@ _08080F10: .4byte sub_808115C sp13F_fall_to_last_warp: @ 8080F14 push {lr} bl sp13E_warp_to_last_warp - ldr r1, _08080F24 @ =gUnknown_0300485C + ldr r1, _08080F24 @ =gFieldCallback ldr r0, _08080F28 @ =sub_8086748 str r0, [r1] pop {r0} bx r0 .align 2, 0 -_08080F24: .4byte gUnknown_0300485C +_08080F24: .4byte gFieldCallback _08080F28: .4byte sub_8086748 thumb_func_end sp13F_fall_to_last_warp @@ -730,14 +730,14 @@ sub_8080F68: @ 8080F68 ldr r0, _08080F90 @ =task0A_fade_n_map_maybe movs r1, 0xA bl CreateTask - ldr r1, _08080F94 @ =gUnknown_0300485C + ldr r1, _08080F94 @ =gFieldCallback ldr r0, _08080F98 @ =sub_8080B78 str r0, [r1] pop {r0} bx r0 .align 2, 0 _08080F90: .4byte task0A_fade_n_map_maybe -_08080F94: .4byte gUnknown_0300485C +_08080F94: .4byte gFieldCallback _08080F98: .4byte sub_8080B78 thumb_func_end sub_8080F68 @@ -749,14 +749,14 @@ sub_8080F9C: @ 8080F9C ldr r0, _08080FB8 @ =task0A_fade_n_map_maybe movs r1, 0xA bl CreateTask - ldr r1, _08080FBC @ =gUnknown_0300485C + ldr r1, _08080FBC @ =gFieldCallback ldr r0, _08080FC0 @ =sub_80C791C str r0, [r1] pop {r0} bx r0 .align 2, 0 _08080FB8: .4byte task0A_fade_n_map_maybe -_08080FBC: .4byte gUnknown_0300485C +_08080FBC: .4byte gFieldCallback _08080FC0: .4byte sub_80C791C thumb_func_end sub_8080F9C @@ -1204,7 +1204,7 @@ sub_8081334: @ 8081334 bl PlayRainSoundEffect movs r0, 0x9 bl PlaySE - ldr r0, _08081360 @ =gUnknown_0300485C + ldr r0, _08081360 @ =gFieldCallback ldr r1, _08081364 @ =sub_8080B60 str r1, [r0] ldr r0, _08081368 @ =sub_80812C8 @@ -1213,7 +1213,7 @@ sub_8081334: @ 8081334 pop {r0} bx r0 .align 2, 0 -_08081360: .4byte gUnknown_0300485C +_08081360: .4byte gFieldCallback _08081364: .4byte sub_8080B60 _08081368: .4byte sub_80812C8 thumb_func_end sub_8081334 diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s index 6051dc6e6..c8c402217 100644 --- a/asm/field_map_obj.s +++ b/asm/field_map_obj.s @@ -6,138 +6,7 @@ .text - thumb_func_start sub_805F2FC -sub_805F2FC: @ 805F2FC - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, _0805F318 @ =gMapObjects - adds r0, r2 - ldr r2, _0805F31C @ =sub_805F320 - bl meta_step - pop {r0} - bx r0 - .align 2, 0 -_0805F318: .4byte gMapObjects -_0805F31C: .4byte sub_805F320 - thumb_func_end sub_805F2FC - - thumb_func_start sub_805F320 -sub_805F320: @ 805F320 - push {r4,lr} - ldr r3, _0805F33C @ =gUnknown_08375588 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0805F33C: .4byte gUnknown_08375588 - thumb_func_end sub_805F320 - - thumb_func_start mss_npc_reset_oampriv3_1_unk2_unk3 -mss_npc_reset_oampriv3_1_unk2_unk3: @ 805F340 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl npc_reset - adds r4, 0x21 - ldrb r0, [r4] - cmp r0, 0 - bne _0805F358 - bl player_get_direction_lower_nybble - strb r0, [r4] -_0805F358: - movs r0, 0x1 - strh r0, [r5, 0x30] - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end mss_npc_reset_oampriv3_1_unk2_unk3 - - thumb_func_start sub_805F364 -sub_805F364: @ 805F364 - push {r4-r7,lr} - adds r6, r0, 0 - adds r7, r1, 0 - ldr r2, _0805F388 @ =gMapObjects - ldr r3, _0805F38C @ =gPlayerAvatar - ldrb r1, [r3, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1C] - cmp r0, 0xFF - beq _0805F384 - ldrb r0, [r3, 0x3] - cmp r0, 0x2 - bne _0805F390 -_0805F384: - movs r0, 0 - b _0805F3B8 - .align 2, 0 -_0805F388: .4byte gMapObjects -_0805F38C: .4byte gPlayerAvatar -_0805F390: - ldr r5, _0805F3C0 @ =gUnknown_08375594 - bl player_get_x22 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 22 - adds r4, r5 - bl player_get_direction_upper_nybble - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - ldr r4, [r4] - adds r0, r6, 0 - adds r1, r7, 0 - movs r3, 0 - bl _call_via_r4 - lsls r0, 24 - lsrs r0, 24 -_0805F3B8: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0805F3C0: .4byte gUnknown_08375594 - thumb_func_end sub_805F364 - - thumb_func_start sub_805F3C4 -sub_805F3C4: @ 805F3C4 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl FieldObjectExecRegularAnim - lsls r0, 24 - cmp r0, 0 - beq _0805F3E2 - ldrb r0, [r4] - movs r1, 0x3 - negs r1, r1 - ands r1, r0 - strb r1, [r4] - movs r0, 0x1 - strh r0, [r5, 0x30] -_0805F3E2: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_805F3C4 - +.ifndef NONMATCHING thumb_func_start sub_805F3EC sub_805F3EC: @ 805F3EC movs r0, 0 @@ -268,6 +137,7 @@ _0805F4D2: .align 2, 0 _0805F4EC: .4byte gUnknown_0836DC09 thumb_func_end sub_805F438 +.endif thumb_func_start sub_805F4F0 sub_805F4F0: @ 805F4F0 @@ -756,5847 +626,3 @@ _0805F8C0: .align 2, 0 _0805F8DC: .4byte gUnknown_0836DC09 thumb_func_end oac_hopping - - thumb_func_start sub_805F8E0 -sub_805F8E0: @ 805F8E0 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, _0805F8FC @ =gMapObjects - adds r0, r2 - ldr r2, _0805F900 @ =sub_805F904 - bl meta_step - pop {r0} - bx r0 - .align 2, 0 -_0805F8FC: .4byte gMapObjects -_0805F900: .4byte sub_805F904 - thumb_func_end sub_805F8E0 - - thumb_func_start sub_805F904 -sub_805F904: @ 805F904 - push {r4,lr} - ldr r3, _0805F920 @ =gUnknown_083755C0 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0805F920: .4byte gUnknown_083755C0 - thumb_func_end sub_805F904 - - thumb_func_start mss_08062EA4 -mss_08062EA4: @ 805F924 - push {r4-r7,lr} - adds r6, r0, 0 - adds r7, r1, 0 - ldr r2, _0805F948 @ =gMapObjects - ldr r3, _0805F94C @ =gPlayerAvatar - ldrb r1, [r3, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1C] - cmp r0, 0xFF - beq _0805F944 - ldrb r0, [r3, 0x3] - cmp r0, 0x2 - bne _0805F950 -_0805F944: - movs r0, 0 - b _0805F978 - .align 2, 0 -_0805F948: .4byte gMapObjects -_0805F94C: .4byte gPlayerAvatar -_0805F950: - ldr r5, _0805F980 @ =gUnknown_08375594 - bl player_get_x22 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 22 - adds r4, r5 - bl player_get_direction_upper_nybble - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - ldr r3, _0805F984 @ =MetatileBehavior_IsPokeGrass - ldr r4, [r4] - adds r0, r6, 0 - adds r1, r7, 0 - bl _call_via_r4 - lsls r0, 24 - lsrs r0, 24 -_0805F978: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0805F980: .4byte gUnknown_08375594 -_0805F984: .4byte MetatileBehavior_IsPokeGrass - thumb_func_end mss_08062EA4 - - thumb_func_start FieldObjectCB_TreeDisguise -FieldObjectCB_TreeDisguise: @ 805F988 - push {r4-r6,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, _0805F9EC @ =gMapObjects - adds r4, r1, r0 - adds r6, r4, 0 - adds r6, 0x21 - ldrb r0, [r6] - cmp r0, 0 - beq _0805F9B0 - cmp r0, 0x1 - bne _0805F9D0 - movs r1, 0x3C - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _0805F9D0 -_0805F9B0: - ldr r1, _0805F9F0 @ =gUnknown_0202FF84 - adds r2, r1, 0x4 - adds r3, r1, 0 - adds r3, 0x8 - adds r0, r4, 0 - bl FieldObjectGetLocalIdAndMap - movs r0, 0x1C - bl FieldEffectStart - strb r0, [r4, 0x1A] - movs r0, 0x1 - strb r0, [r6] - ldrh r0, [r5, 0x3C] - adds r0, 0x1 - strh r0, [r5, 0x3C] -_0805F9D0: - movs r0, 0x2E - ldrsh r1, [r5, r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _0805F9EC @ =gMapObjects - adds r0, r1 - ldr r2, _0805F9F4 @ =sub_805F9F8 - adds r1, r5, 0 - bl meta_step - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0805F9EC: .4byte gMapObjects -_0805F9F0: .4byte gUnknown_0202FF84 -_0805F9F4: .4byte sub_805F9F8 - thumb_func_end FieldObjectCB_TreeDisguise - - thumb_func_start sub_805F9F8 -sub_805F9F8: @ 805F9F8 - push {lr} - bl npc_reset - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_805F9F8 - - thumb_func_start FieldObjectCB_MountainDisguise -FieldObjectCB_MountainDisguise: @ 805FA04 - push {r4-r6,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, _0805FA68 @ =gMapObjects - adds r4, r1, r0 - adds r6, r4, 0 - adds r6, 0x21 - ldrb r0, [r6] - cmp r0, 0 - beq _0805FA2C - cmp r0, 0x1 - bne _0805FA4C - movs r1, 0x3C - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _0805FA4C -_0805FA2C: - ldr r1, _0805FA6C @ =gUnknown_0202FF84 - adds r2, r1, 0x4 - adds r3, r1, 0 - adds r3, 0x8 - adds r0, r4, 0 - bl FieldObjectGetLocalIdAndMap - movs r0, 0x1D - bl FieldEffectStart - strb r0, [r4, 0x1A] - movs r0, 0x1 - strb r0, [r6] - ldrh r0, [r5, 0x3C] - adds r0, 0x1 - strh r0, [r5, 0x3C] -_0805FA4C: - movs r0, 0x2E - ldrsh r1, [r5, r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _0805FA68 @ =gMapObjects - adds r0, r1 - ldr r2, _0805FA70 @ =sub_805F9F8 - adds r1, r5, 0 - bl meta_step - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0805FA68: .4byte gMapObjects -_0805FA6C: .4byte gUnknown_0202FF84 -_0805FA70: .4byte sub_805F9F8 - thumb_func_end FieldObjectCB_MountainDisguise - - thumb_func_start FieldObjectCB_Hidden1 -FieldObjectCB_Hidden1: @ 805FA74 - push {r4,lr} - adds r3, r0, 0 - movs r1, 0x3C - ldrsh r0, [r3, r1] - ldr r4, _0805FAD0 @ =gMapObjects - cmp r0, 0 - bne _0805FAB4 - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0, 0x3] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0, 0x3] - adds r2, r3, 0 - adds r2, 0x42 - ldrb r1, [r2] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r3, 0x5] - movs r1, 0xC - orrs r0, r1 - strb r0, [r3, 0x5] - ldrh r0, [r3, 0x3C] - adds r0, 0x1 - strh r0, [r3, 0x3C] -_0805FAB4: - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r2, _0805FAD4 @ =sub_805FAD8 - adds r1, r3, 0 - bl meta_step - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0805FAD0: .4byte gMapObjects -_0805FAD4: .4byte sub_805FAD8 - thumb_func_end FieldObjectCB_Hidden1 - - thumb_func_start sub_805FAD8 -sub_805FAD8: @ 805FAD8 - push {r4,lr} - ldr r3, _0805FAF4 @ =gUnknown_083755CC - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0805FAF4: .4byte gUnknown_083755CC - thumb_func_end sub_805FAD8 - - thumb_func_start sub_805FAF8 -sub_805FAF8: @ 805FAF8 - push {lr} - bl npc_reset - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_805FAF8 - - thumb_func_start sub_805FB04 -sub_805FB04: @ 805FB04 - push {r4,lr} - adds r4, r1, 0 - bl FieldObjectExecRegularAnim - lsls r0, 24 - cmp r0, 0 - beq _0805FB16 - movs r0, 0 - strh r0, [r4, 0x30] -_0805FB16: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_805FB04 - - thumb_func_start sub_805FB20 -sub_805FB20: @ 805FB20 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, _0805FB3C @ =gMapObjects - adds r0, r2 - ldr r2, _0805FB40 @ =sub_805FB44 - bl meta_step - pop {r0} - bx r0 - .align 2, 0 -_0805FB3C: .4byte gMapObjects -_0805FB40: .4byte sub_805FB44 - thumb_func_end sub_805FB20 - - thumb_func_start sub_805FB44 -sub_805FB44: @ 805FB44 - push {r4,lr} - ldr r3, _0805FB60 @ =gUnknown_083755D0 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0805FB60: .4byte gUnknown_083755D0 - thumb_func_end sub_805FB44 - - thumb_func_start sub_805FB64 -sub_805FB64: @ 805FB64 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl npc_reset - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl GetStepInPlaceDelay16AnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl FieldObjectSetRegularAnim - movs r0, 0x1 - strh r0, [r5, 0x30] - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_805FB64 - - thumb_func_start sub_805FB90 -sub_805FB90: @ 805FB90 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, _0805FBAC @ =gMapObjects - adds r0, r2 - ldr r2, _0805FBB0 @ =sub_805FBB4 - bl meta_step - pop {r0} - bx r0 - .align 2, 0 -_0805FBAC: .4byte gMapObjects -_0805FBB0: .4byte sub_805FBB4 - thumb_func_end sub_805FB90 - - thumb_func_start sub_805FBB4 -sub_805FBB4: @ 805FBB4 - push {r4,lr} - ldr r3, _0805FBD0 @ =gUnknown_083755D8 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0805FBD0: .4byte gUnknown_083755D8 - thumb_func_end sub_805FBB4 - - thumb_func_start sub_805FBD4 -sub_805FBD4: @ 805FBD4 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl npc_reset - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl GetStepInPlaceDelay8AnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl FieldObjectSetRegularAnim - movs r0, 0x1 - strh r0, [r5, 0x30] - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_805FBD4 - - thumb_func_start sub_805FC00 -sub_805FC00: @ 805FC00 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, _0805FC1C @ =gMapObjects - adds r0, r2 - ldr r2, _0805FC20 @ =sub_805FC24 - bl meta_step - pop {r0} - bx r0 - .align 2, 0 -_0805FC1C: .4byte gMapObjects -_0805FC20: .4byte sub_805FC24 - thumb_func_end sub_805FC00 - - thumb_func_start sub_805FC24 -sub_805FC24: @ 805FC24 - push {r4,lr} - ldr r3, _0805FC40 @ =gUnknown_083755E0 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0805FC40: .4byte gUnknown_083755E0 - thumb_func_end sub_805FC24 - - thumb_func_start sub_805FC44 -sub_805FC44: @ 805FC44 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl npc_reset - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl GetStepInPlaceDelay4AnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl FieldObjectSetRegularAnim - movs r0, 0x1 - strh r0, [r5, 0x30] - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_805FC44 - - thumb_func_start sub_805FC70 -sub_805FC70: @ 805FC70 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, _0805FC8C @ =gMapObjects - adds r0, r2 - ldr r2, _0805FC90 @ =sub_805FC94 - bl meta_step - pop {r0} - bx r0 - .align 2, 0 -_0805FC8C: .4byte gMapObjects -_0805FC90: .4byte sub_805FC94 - thumb_func_end sub_805FC70 - - thumb_func_start sub_805FC94 -sub_805FC94: @ 805FC94 - push {r4,lr} - ldr r3, _0805FCB0 @ =gUnknown_083755E8 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0805FCB0: .4byte gUnknown_083755E8 - thumb_func_end sub_805FC94 - - thumb_func_start sub_805FCB4 -sub_805FCB4: @ 805FCB4 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl npc_reset - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl GetFaceDirectionAnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl FieldObjectSetRegularAnim - ldrb r0, [r4, 0x1] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r4, 0x1] - movs r0, 0x1 - strh r0, [r5, 0x30] - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_805FCB4 - - thumb_func_start sub_805FCE8 -sub_805FCE8: @ 805FCE8 - push {r4,lr} - adds r4, r1, 0 - bl FieldObjectExecRegularAnim - lsls r0, 24 - cmp r0, 0 - bne _0805FCFA - movs r0, 0 - b _0805FD00 -_0805FCFA: - movs r0, 0x2 - strh r0, [r4, 0x30] - movs r0, 0x1 -_0805FD00: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_805FCE8 - - thumb_func_start sub_805FD08 -sub_805FD08: @ 805FD08 - ldrb r2, [r0] - movs r1, 0x3 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - movs r0, 0 - bx lr - .align 2, 0 - thumb_func_end sub_805FD08 - - .section .text_805fd18 - - thumb_func_start sub_806113C -sub_806113C: @ 806113C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - adds r7, r0, 0 - mov r10, r1 - adds r4, r2, 0 - mov r8, r3 - ldr r0, [sp, 0x30] - lsls r4, 24 - lsrs r4, 24 - mov r1, r8 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r1, _080611F4 @ =gUnknown_08375A34 - add r0, sp, 0x4 - movs r2, 0x6 - bl memcpy - add r5, sp, 0xC - movs r0, 0 - strh r0, [r5] - mov r6, sp - adds r6, 0xE - strh r0, [r6] - adds r0, r7, 0 - adds r1, r4, 0 - bl FieldObjectSetDirection - mov r1, r8 - lsls r0, r1, 1 - add r0, sp - adds r0, 0x4 - movs r1, 0 - ldrsh r3, [r0, r1] - str r3, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl sub_8060320 - ldrh r1, [r5] - ldrh r0, [r7, 0x10] - adds r1, r0 - lsls r1, 16 - asrs r1, 16 - ldrh r2, [r6] - ldrh r0, [r7, 0x12] - adds r2, r0 - lsls r2, 16 - asrs r2, 16 - adds r0, r7, 0 - bl npc_coords_shift - mov r0, r10 - adds r1, r4, 0 - mov r2, r8 - mov r3, r9 - bl sub_80646E4 - movs r0, 0x1 - mov r1, r10 - strh r0, [r1, 0x32] - movs r0, 0x2C - add r10, r0 - mov r0, r10 - ldrb r1, [r0] - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - mov r1, r10 - strb r0, [r1] - ldrb r0, [r7] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x10 - orrs r0, r1 - strb r0, [r7] - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080611F4: .4byte gUnknown_08375A34 - thumb_func_end sub_806113C - - thumb_func_start maybe_shadow_1 -maybe_shadow_1: @ 80611F8 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r0, [sp, 0x10] - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - adds r0, r4, 0 - bl sub_806113C - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl get_go_image_anim_num - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_805FE28 - adds r0, r4, 0 - bl DoShadowFieldEffect - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end maybe_shadow_1 - - thumb_func_start sub_806123C -sub_806123C: @ 806123C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - adds r6, r0, 0 - adds r7, r1, 0 - adds r4, r2, 0 - ldr r1, _080612C8 @ =gUnknown_08375A3A - add r0, sp, 0x4 - movs r2, 0x6 - bl memcpy - adds r0, r7, 0 - bl _call_via_r4 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - cmp r0, 0x1 - bne _080612CC - movs r1, 0x36 - ldrsh r0, [r7, r1] - lsls r0, 1 - add r0, sp - adds r0, 0x4 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0 - beq _080612CC - add r4, sp, 0xC - movs r0, 0 - strh r0, [r4] - mov r5, sp - adds r5, 0xE - strh r0, [r5] - ldrb r0, [r6, 0x18] - lsrs r0, 4 - movs r2, 0x36 - ldrsh r1, [r7, r2] - lsls r1, 1 - add r1, sp - adds r1, 0x4 - movs r2, 0 - ldrsh r3, [r1, r2] - str r3, [sp] - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_8060320 - ldrh r1, [r4] - ldrh r0, [r6, 0x10] - adds r1, r0 - lsls r1, 16 - asrs r1, 16 - ldrh r2, [r5] - ldrh r0, [r6, 0x12] - adds r2, r0 - lsls r2, 16 - asrs r2, 16 - adds r0, r6, 0 - bl npc_coords_shift - ldrb r0, [r6] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x10 - orrs r0, r1 - strb r0, [r6] - b _080612F0 - .align 2, 0 -_080612C8: .4byte gUnknown_08375A3A -_080612CC: - mov r1, r8 - cmp r1, 0xFF - bne _080612F0 - adds r0, r6, 0 - bl npc_coords_shift_still - ldrb r0, [r6] - movs r1, 0x8 - orrs r0, r1 - movs r1, 0x20 - orrs r0, r1 - strb r0, [r6] - adds r2, r7, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] -_080612F0: - mov r0, r8 - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_806123C - - thumb_func_start sub_8061300 -sub_8061300: @ 8061300 - push {lr} - ldr r2, _08061310 @ =sub_8064704 - bl sub_806123C - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08061310: .4byte sub_8064704 - thumb_func_end sub_8061300 - - thumb_func_start sub_8061314 -sub_8061314: @ 8061314 - push {lr} - ldr r2, _08061324 @ =sub_806478C - bl sub_806123C - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08061324: .4byte sub_806478C - thumb_func_end sub_8061314 - - thumb_func_start sub_8061328 -sub_8061328: @ 8061328 - push {lr} - bl sub_8061300 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _0806133A - movs r0, 0 - b _0806133C -_0806133A: - movs r0, 0x1 -_0806133C: - pop {r1} - bx r1 - thumb_func_end sub_8061328 - - thumb_func_start sub_8061340 -sub_8061340: @ 8061340 - push {lr} - bl sub_8061314 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _08061352 - movs r0, 0 - b _08061354 -_08061352: - movs r0, 0x1 -_08061354: - pop {r1} - bx r1 - thumb_func_end sub_8061340 - - thumb_func_start sub_8061358 -sub_8061358: @ 8061358 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_8061300 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08061372 - cmp r0, 0xFF - bne _0806139E - movs r0, 0x1 - b _080613A0 -_08061372: - ldrb r0, [r4, 0x18] - lsrs r0, 4 - bl GetOppositeDirection - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldObjectSetDirection - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl get_go_image_anim_num - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_805FE64 -_0806139E: - movs r0, 0 -_080613A0: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8061358 - - thumb_func_start sub_80613A8 -sub_80613A8: @ 80613A8 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x2 - bl maybe_shadow_1 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80613D4 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80613A8 - - thumb_func_start sub_80613D4 -sub_80613D4: @ 80613D4 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_8061328 - lsls r0, 24 - cmp r0, 0 - bne _080613E8 - movs r0, 0 - b _080613F8 -_080613E8: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_080613F8: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80613D4 - - thumb_func_start sub_8061400 -sub_8061400: @ 8061400 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x2 - movs r3, 0x2 - bl maybe_shadow_1 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_806142C - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8061400 - - thumb_func_start sub_806142C -sub_806142C: @ 806142C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_8061328 - lsls r0, 24 - cmp r0, 0 - bne _08061440 - movs r0, 0 - b _08061450 -_08061440: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08061450: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_806142C - - thumb_func_start sub_8061458 -sub_8061458: @ 8061458 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x3 - movs r3, 0x2 - bl maybe_shadow_1 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8061484 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8061458 - - thumb_func_start sub_8061484 -sub_8061484: @ 8061484 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_8061328 - lsls r0, 24 - cmp r0, 0 - bne _08061498 - movs r0, 0 - b _080614A8 -_08061498: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_080614A8: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8061484 - - thumb_func_start sub_80614B0 -sub_80614B0: @ 80614B0 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x4 - movs r3, 0x2 - bl maybe_shadow_1 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80614DC - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80614B0 - - thumb_func_start sub_80614DC -sub_80614DC: @ 80614DC - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_8061328 - lsls r0, 24 - cmp r0, 0 - bne _080614F0 - movs r0, 0 - b _08061500 -_080614F0: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08061500: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80614DC - - thumb_func_start sub_8061508 -sub_8061508: @ 8061508 - movs r2, 0x1 - strh r2, [r0, 0x32] - strh r1, [r0, 0x34] - bx lr - thumb_func_end sub_8061508 - - thumb_func_start sub_8061510 -sub_8061510: @ 8061510 - push {lr} - ldrh r0, [r1, 0x34] - subs r0, 0x1 - strh r0, [r1, 0x34] - lsls r0, 16 - cmp r0, 0 - beq _08061522 - movs r0, 0 - b _08061528 -_08061522: - movs r0, 0x2 - strh r0, [r1, 0x32] - movs r0, 0x1 -_08061528: - pop {r1} - bx r1 - thumb_func_end sub_8061510 - - thumb_func_start sub_806152C -sub_806152C: @ 806152C - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8061508 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8061510 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_806152C - - thumb_func_start sub_806154C -sub_806154C: @ 806154C - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - adds r0, r4, 0 - movs r1, 0x2 - bl sub_8061508 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8061510 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_806154C - - thumb_func_start sub_806156C -sub_806156C: @ 806156C - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - adds r0, r4, 0 - movs r1, 0x4 - bl sub_8061508 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8061510 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_806156C - - thumb_func_start sub_806158C -sub_806158C: @ 806158C - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - adds r0, r4, 0 - movs r1, 0x8 - bl sub_8061508 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8061510 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_806158C - - thumb_func_start sub_80615AC -sub_80615AC: @ 80615AC - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - adds r0, r4, 0 - movs r1, 0x10 - bl sub_8061508 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8061510 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80615AC - - thumb_func_start sub_80615CC -sub_80615CC: @ 80615CC - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x1 - movs r3, 0x1 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80615EC - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80615CC - - thumb_func_start sub_80615EC -sub_80615EC: @ 80615EC - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _080615FE - movs r0, 0 - b _08061604 -_080615FE: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08061604: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80615EC - - thumb_func_start sub_806160C -sub_806160C: @ 806160C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x2 - movs r3, 0x1 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_806162C - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_806160C - - thumb_func_start sub_806162C -sub_806162C: @ 806162C - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _0806163E - movs r0, 0 - b _08061644 -_0806163E: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08061644: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_806162C - - thumb_func_start sub_806164C -sub_806164C: @ 806164C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x3 - movs r3, 0x1 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_806166C - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_806164C - - thumb_func_start sub_806166C -sub_806166C: @ 806166C - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _0806167E - movs r0, 0 - b _08061684 -_0806167E: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08061684: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_806166C - - thumb_func_start sub_806168C -sub_806168C: @ 806168C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x4 - movs r3, 0x1 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80616AC - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_806168C - - thumb_func_start sub_80616AC -sub_80616AC: @ 80616AC - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _080616BE - movs r0, 0 - b _080616C4 -_080616BE: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_080616C4: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80616AC - - thumb_func_start sub_80616CC -sub_80616CC: @ 80616CC - push {r4-r6,lr} - mov r6, r8 - push {r6} - mov r8, r0 - adds r6, r1, 0 - adds r1, r2, 0 - adds r4, r3, 0 - ldr r5, [sp, 0x14] - lsls r1, 24 - lsrs r1, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 16 - lsrs r5, 16 - bl FieldObjectSetDirection - mov r0, r8 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_805FE28 - adds r2, r6, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - movs r0, 0x1 - strh r0, [r6, 0x32] - strh r5, [r6, 0x34] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80616CC - - thumb_func_start sub_8061714 -sub_8061714: @ 8061714 - push {lr} - ldrh r0, [r1, 0x34] - subs r0, 0x1 - strh r0, [r1, 0x34] - lsls r0, 16 - cmp r0, 0 - beq _08061726 - movs r0, 0 - b _08061738 -_08061726: - movs r0, 0x2 - strh r0, [r1, 0x32] - adds r2, r1, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x1 -_08061738: - pop {r1} - bx r1 - thumb_func_end sub_8061714 - - thumb_func_start sub_806173C -sub_806173C: @ 806173C - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - ldrh r1, [r4, 0x34] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08061766 - adds r3, r4, 0 - adds r3, 0x2C - ldrb r2, [r3] - lsls r1, r2, 26 - lsrs r1, 26 - adds r1, 0x1 - movs r0, 0x3F - ands r1, r0 - movs r0, 0x40 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_08061766: - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8061714 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_806173C - - thumb_func_start sub_8061778 -sub_8061778: @ 8061778 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x1 - bl get_go_image_anim_num - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x20 - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x1 - bl sub_80616CC - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_806173C - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8061778 - - thumb_func_start sub_80617B0 -sub_80617B0: @ 80617B0 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x2 - bl get_go_image_anim_num - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x20 - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x2 - bl sub_80616CC - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_806173C - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80617B0 - - thumb_func_start sub_80617E8 -sub_80617E8: @ 80617E8 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x3 - bl get_go_image_anim_num - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x20 - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x3 - bl sub_80616CC - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_806173C - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80617E8 - - thumb_func_start sub_8061820 -sub_8061820: @ 8061820 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x4 - bl get_go_image_anim_num - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x20 - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x4 - bl sub_80616CC - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_806173C - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8061820 - - thumb_func_start sub_8061858 -sub_8061858: @ 8061858 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x1 - bl get_go_image_anim_num - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x10 - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x1 - bl sub_80616CC - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8061714 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8061858 - - thumb_func_start sub_8061890 -sub_8061890: @ 8061890 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x2 - bl get_go_image_anim_num - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x10 - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x2 - bl sub_80616CC - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8061714 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8061890 - - thumb_func_start sub_80618C8 -sub_80618C8: @ 80618C8 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x3 - bl get_go_image_anim_num - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x10 - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x3 - bl sub_80616CC - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8061714 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80618C8 - - thumb_func_start sub_8061900 -sub_8061900: @ 8061900 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x4 - bl get_go_image_anim_num - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x10 - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x4 - bl sub_80616CC - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8061714 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8061900 - - thumb_func_start sub_8061938 -sub_8061938: @ 8061938 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x1 - bl get_go_fast_image_anim_num - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x8 - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x1 - bl sub_80616CC - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8061714 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8061938 - - thumb_func_start sub_8061970 -sub_8061970: @ 8061970 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x2 - bl get_go_fast_image_anim_num - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x8 - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x2 - bl sub_80616CC - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8061714 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8061970 - - thumb_func_start sub_80619A8 -sub_80619A8: @ 80619A8 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x3 - bl get_go_fast_image_anim_num - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x8 - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x3 - bl sub_80616CC - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8061714 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80619A8 - - thumb_func_start sub_80619E0 -sub_80619E0: @ 80619E0 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x4 - bl get_go_fast_image_anim_num - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x8 - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x4 - bl sub_80616CC - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8061714 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80619E0 - - thumb_func_start sub_8061A18 -sub_8061A18: @ 8061A18 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x1 - bl get_go_faster_image_anim_num - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x4 - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x1 - bl sub_80616CC - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8061714 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8061A18 - - thumb_func_start sub_8061A50 -sub_8061A50: @ 8061A50 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x2 - bl get_go_faster_image_anim_num - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x4 - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x2 - bl sub_80616CC - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8061714 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8061A50 - - thumb_func_start sub_8061A88 -sub_8061A88: @ 8061A88 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x3 - bl get_go_faster_image_anim_num - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x4 - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x3 - bl sub_80616CC - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8061714 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8061A88 - - thumb_func_start sub_8061AC0 -sub_8061AC0: @ 8061AC0 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x4 - bl get_go_faster_image_anim_num - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x4 - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x4 - bl sub_80616CC - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8061714 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8061AC0 - - thumb_func_start sub_8061AF8 -sub_8061AF8: @ 8061AF8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x1 - movs r3, 0x2 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8061B18 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8061AF8 - - thumb_func_start sub_8061B18 -sub_8061B18: @ 8061B18 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08061B2A - movs r0, 0 - b _08061B30 -_08061B2A: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08061B30: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8061B18 - - thumb_func_start sub_8061B38 -sub_8061B38: @ 8061B38 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x2 - movs r3, 0x2 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8061B58 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8061B38 - - thumb_func_start sub_8061B58 -sub_8061B58: @ 8061B58 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08061B6A - movs r0, 0 - b _08061B70 -_08061B6A: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08061B70: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8061B58 - - thumb_func_start sub_8061B78 -sub_8061B78: @ 8061B78 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x3 - movs r3, 0x2 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8061B98 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8061B78 - - thumb_func_start sub_8061B98 -sub_8061B98: @ 8061B98 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08061BAA - movs r0, 0 - b _08061BB0 -_08061BAA: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08061BB0: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8061B98 - - thumb_func_start sub_8061BB8 -sub_8061BB8: @ 8061BB8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x4 - movs r3, 0x2 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8061BD8 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8061BB8 - - thumb_func_start sub_8061BD8 -sub_8061BD8: @ 8061BD8 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08061BEA - movs r0, 0 - b _08061BF0 -_08061BEA: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08061BF0: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8061BD8 - - thumb_func_start sub_8061BF8 -sub_8061BF8: @ 8061BF8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x1 - movs r3, 0x3 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8061C18 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8061BF8 - - thumb_func_start sub_8061C18 -sub_8061C18: @ 8061C18 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08061C2A - movs r0, 0 - b _08061C30 -_08061C2A: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08061C30: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8061C18 - - thumb_func_start sub_8061C38 -sub_8061C38: @ 8061C38 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x2 - movs r3, 0x3 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8061C58 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8061C38 - - thumb_func_start sub_8061C58 -sub_8061C58: @ 8061C58 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08061C6A - movs r0, 0 - b _08061C70 -_08061C6A: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08061C70: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8061C58 - - thumb_func_start sub_8061C78 -sub_8061C78: @ 8061C78 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x3 - movs r3, 0x3 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8061C98 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8061C78 - - thumb_func_start sub_8061C98 -sub_8061C98: @ 8061C98 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08061CAA - movs r0, 0 - b _08061CB0 -_08061CAA: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08061CB0: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8061C98 - - thumb_func_start sub_8061CB8 -sub_8061CB8: @ 8061CB8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x4 - movs r3, 0x3 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8061CD8 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8061CB8 - - thumb_func_start sub_8061CD8 -sub_8061CD8: @ 8061CD8 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08061CEA - movs r0, 0 - b _08061CF0 -_08061CEA: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08061CF0: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8061CD8 - - thumb_func_start sub_8061CF8 -sub_8061CF8: @ 8061CF8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x1 - movs r3, 0x4 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8061D18 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8061CF8 - - thumb_func_start sub_8061D18 -sub_8061D18: @ 8061D18 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08061D2A - movs r0, 0 - b _08061D30 -_08061D2A: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08061D30: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8061D18 - - thumb_func_start sub_8061D38 -sub_8061D38: @ 8061D38 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x2 - movs r3, 0x4 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8061D58 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8061D38 - - thumb_func_start sub_8061D58 -sub_8061D58: @ 8061D58 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08061D6A - movs r0, 0 - b _08061D70 -_08061D6A: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08061D70: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8061D58 - - thumb_func_start sub_8061D78 -sub_8061D78: @ 8061D78 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x3 - movs r3, 0x4 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8061D98 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8061D78 - - thumb_func_start sub_8061D98 -sub_8061D98: @ 8061D98 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08061DAA - movs r0, 0 - b _08061DB0 -_08061DAA: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08061DB0: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8061D98 - - thumb_func_start sub_8061DB8 -sub_8061DB8: @ 8061DB8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x4 - movs r3, 0x4 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8061DD8 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8061DB8 - - thumb_func_start sub_8061DD8 -sub_8061DD8: @ 8061DD8 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08061DEA - movs r0, 0 - b _08061DF0 -_08061DEA: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08061DF0: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8061DD8 - - thumb_func_start do_run_south_anim -do_run_south_anim: @ 8061DF8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x1 - bl do_run_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8061E18 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end do_run_south_anim - - thumb_func_start sub_8061E18 -sub_8061E18: @ 8061E18 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08061E2A - movs r0, 0 - b _08061E30 -_08061E2A: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08061E30: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8061E18 - - thumb_func_start do_run_north_anim -do_run_north_anim: @ 8061E38 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x2 - bl do_run_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8061E58 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end do_run_north_anim - - thumb_func_start sub_8061E58 -sub_8061E58: @ 8061E58 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08061E6A - movs r0, 0 - b _08061E70 -_08061E6A: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08061E70: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8061E58 - - thumb_func_start do_run_west_anim -do_run_west_anim: @ 8061E78 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x3 - bl do_run_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8061E98 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end do_run_west_anim - - thumb_func_start sub_8061E98 -sub_8061E98: @ 8061E98 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08061EAA - movs r0, 0 - b _08061EB0 -_08061EAA: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08061EB0: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8061E98 - - thumb_func_start do_run_east_anim -do_run_east_anim: @ 8061EB8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x4 - bl do_run_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8061ED8 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end do_run_east_anim - - thumb_func_start sub_8061ED8 -sub_8061ED8: @ 8061ED8 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08061EEA - movs r0, 0 - b _08061EF0 -_08061EEA: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08061EF0: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8061ED8 - - thumb_func_start npc_set_direction_and_anim__an_proceed -npc_set_direction_and_anim__an_proceed: @ 8061EF8 - push {r4-r6,lr} - adds r6, r0, 0 - adds r5, r1, 0 - adds r4, r2, 0 - adds r1, r3, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - movs r2, 0 - bl obj_anim_image_set_and_seek - adds r0, r6, 0 - adds r1, r4, 0 - bl FieldObjectSetDirection - movs r0, 0x1 - strh r0, [r5, 0x32] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end npc_set_direction_and_anim__an_proceed - - thumb_func_start sub_8061F24 -sub_8061F24: @ 8061F24 - push {lr} - ldrb r2, [r0, 0x18] - lsrs r2, 4 - adds r3, r1, 0 - adds r3, 0x2A - ldrb r3, [r3] - bl npc_set_direction_and_anim__an_proceed - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_8061F24 - - thumb_func_start sub_8061F3C -sub_8061F3C: @ 8061F3C - push {r4,lr} - adds r4, r1, 0 - adds r0, r4, 0 - bl sub_8064864 - lsls r0, 24 - cmp r0, 0 - bne _08061F50 - movs r0, 0 - b _08061F56 -_08061F50: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08061F56: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8061F3C - - thumb_func_start sub_8061F5C -sub_8061F5C: @ 8061F5C - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r1, 0 - lsls r4, r2, 24 - lsrs r4, 24 - movs r1, 0 - str r1, [sp] - adds r1, r5, 0 - adds r2, r4, 0 - movs r3, 0x1 - bl sub_806113C - adds r0, r4, 0 - bl sub_805FD88 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl StartSpriteAnim - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8061F5C - - thumb_func_start sub_8061F90 -sub_8061F90: @ 8061F90 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x1 - bl sub_8061F5C - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8061FB0 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8061F90 - - thumb_func_start sub_8061FB0 -sub_8061FB0: @ 8061FB0 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_8061340 - lsls r0, 24 - cmp r0, 0 - bne _08061FC4 - movs r0, 0 - b _08061FD2 -_08061FC4: - movs r0, 0x2 - strh r0, [r5, 0x32] - ldrb r1, [r4] - subs r0, 0x23 - ands r0, r1 - strb r0, [r4] - movs r0, 0x1 -_08061FD2: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8061FB0 - - thumb_func_start sub_8061FD8 -sub_8061FD8: @ 8061FD8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x2 - bl sub_8061F5C - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8061FF8 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8061FD8 - - thumb_func_start sub_8061FF8 -sub_8061FF8: @ 8061FF8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_8061340 - lsls r0, 24 - cmp r0, 0 - bne _0806200C - movs r0, 0 - b _0806201A -_0806200C: - movs r0, 0x2 - strh r0, [r5, 0x32] - ldrb r1, [r4] - subs r0, 0x23 - ands r0, r1 - strb r0, [r4] - movs r0, 0x1 -_0806201A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8061FF8 - - thumb_func_start sub_8062020 -sub_8062020: @ 8062020 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x3 - bl sub_8061F5C - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8062040 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062020 - - thumb_func_start sub_8062040 -sub_8062040: @ 8062040 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_8061340 - lsls r0, 24 - cmp r0, 0 - bne _08062054 - movs r0, 0 - b _08062062 -_08062054: - movs r0, 0x2 - strh r0, [r5, 0x32] - ldrb r1, [r4] - subs r0, 0x23 - ands r0, r1 - strb r0, [r4] - movs r0, 0x1 -_08062062: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062040 - - thumb_func_start sub_8062068 -sub_8062068: @ 8062068 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x4 - bl sub_8061F5C - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8062088 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062068 - - thumb_func_start sub_8062088 -sub_8062088: @ 8062088 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_8061340 - lsls r0, 24 - cmp r0, 0 - bne _0806209C - movs r0, 0 - b _080620AA -_0806209C: - movs r0, 0x2 - strh r0, [r5, 0x32] - ldrb r1, [r4] - subs r0, 0x23 - ands r0, r1 - strb r0, [r4] - movs r0, 0x1 -_080620AA: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062088 - - thumb_func_start sub_80620B0 -sub_80620B0: @ 80620B0 - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r6, r1, 0 - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _080620FA - movs r1, 0x10 - ldrsh r0, [r5, r1] - movs r2, 0x12 - ldrsh r1, [r5, r2] - ldr r4, _08062108 @ =gMapObjects - mov r2, sp - ldrb r2, [r2] - lsls r3, r2, 3 - adds r3, r2 - lsls r3, 2 - adds r3, r4 - movs r4, 0x10 - ldrsh r2, [r3, r4] - movs r4, 0x12 - ldrsh r3, [r3, r4] - bl sub_805FE90 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r5, 0 - adds r1, r6, 0 - bl an_look_any -_080620FA: - movs r0, 0x1 - strh r0, [r6, 0x32] - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08062108: .4byte gMapObjects - thumb_func_end sub_80620B0 - - thumb_func_start sub_806210C -sub_806210C: @ 806210C - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r6, r1, 0 - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _0806215E - movs r1, 0x10 - ldrsh r0, [r5, r1] - movs r2, 0x12 - ldrsh r1, [r5, r2] - ldr r4, _0806216C @ =gMapObjects - mov r2, sp - ldrb r2, [r2] - lsls r3, r2, 3 - adds r3, r2 - lsls r3, 2 - adds r3, r4 - movs r4, 0x10 - ldrsh r2, [r3, r4] - movs r4, 0x12 - ldrsh r3, [r3, r4] - bl sub_805FE90 - lsls r0, 24 - lsrs r0, 24 - bl GetOppositeDirection - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r5, 0 - adds r1, r6, 0 - bl an_look_any -_0806215E: - movs r0, 0x1 - strh r0, [r6, 0x32] - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0806216C: .4byte gMapObjects - thumb_func_end sub_806210C - - thumb_func_start sub_8062170 -sub_8062170: @ 8062170 - ldrb r2, [r0, 0x1] - movs r3, 0x2 - orrs r2, r3 - strb r2, [r0, 0x1] - movs r0, 0x1 - strh r0, [r1, 0x32] - bx lr - thumb_func_end sub_8062170 - - thumb_func_start sub_8062180 -sub_8062180: @ 8062180 - ldrb r3, [r0, 0x1] - movs r2, 0x3 - negs r2, r2 - ands r2, r3 - strb r2, [r0, 0x1] - movs r0, 0x1 - strh r0, [r1, 0x32] - bx lr - thumb_func_end sub_8062180 - - thumb_func_start sub_8062190 -sub_8062190: @ 8062190 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x2 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x1 - bl maybe_shadow_1 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80621BC - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062190 - - thumb_func_start sub_80621BC -sub_80621BC: @ 80621BC - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_8061328 - lsls r0, 24 - cmp r0, 0 - bne _080621D0 - movs r0, 0 - b _080621E0 -_080621D0: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_080621E0: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80621BC - - thumb_func_start sub_80621E8 -sub_80621E8: @ 80621E8 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x2 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x2 - movs r3, 0x1 - bl maybe_shadow_1 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8062214 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80621E8 - - thumb_func_start sub_8062214 -sub_8062214: @ 8062214 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_8061328 - lsls r0, 24 - cmp r0, 0 - bne _08062228 - movs r0, 0 - b _08062238 -_08062228: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08062238: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062214 - - thumb_func_start sub_8062240 -sub_8062240: @ 8062240 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x2 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x3 - movs r3, 0x1 - bl maybe_shadow_1 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_806226C - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062240 - - thumb_func_start sub_806226C -sub_806226C: @ 806226C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_8061328 - lsls r0, 24 - cmp r0, 0 - bne _08062280 - movs r0, 0 - b _08062290 -_08062280: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08062290: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_806226C - - thumb_func_start sub_8062298 -sub_8062298: @ 8062298 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x2 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x4 - movs r3, 0x1 - bl maybe_shadow_1 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80622C4 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062298 - - thumb_func_start sub_80622C4 -sub_80622C4: @ 80622C4 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_8061328 - lsls r0, 24 - cmp r0, 0 - bne _080622D8 - movs r0, 0 - b _080622E8 -_080622D8: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_080622E8: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80622C4 - - thumb_func_start sub_80622F0 -sub_80622F0: @ 80622F0 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0 - bl maybe_shadow_1 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_806231C - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80622F0 - - thumb_func_start sub_806231C -sub_806231C: @ 806231C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_8061328 - lsls r0, 24 - cmp r0, 0 - bne _08062330 - movs r0, 0 - b _08062340 -_08062330: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08062340: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_806231C - - thumb_func_start sub_8062348 -sub_8062348: @ 8062348 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x2 - movs r3, 0 - bl maybe_shadow_1 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8062374 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062348 - - thumb_func_start sub_8062374 -sub_8062374: @ 8062374 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_8061328 - lsls r0, 24 - cmp r0, 0 - bne _08062388 - movs r0, 0 - b _08062398 -_08062388: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08062398: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062374 - - thumb_func_start sub_80623A0 -sub_80623A0: @ 80623A0 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x3 - movs r3, 0 - bl maybe_shadow_1 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80623CC - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80623A0 - - thumb_func_start sub_80623CC -sub_80623CC: @ 80623CC - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_8061328 - lsls r0, 24 - cmp r0, 0 - bne _080623E0 - movs r0, 0 - b _080623F0 -_080623E0: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_080623F0: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80623CC - - thumb_func_start sub_80623F8 -sub_80623F8: @ 80623F8 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x4 - movs r3, 0 - bl maybe_shadow_1 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8062424 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80623F8 - - thumb_func_start sub_8062424 -sub_8062424: @ 8062424 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_8061328 - lsls r0, 24 - cmp r0, 0 - bne _08062438 - movs r0, 0 - b _08062448 -_08062438: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08062448: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062424 - - thumb_func_start sub_8062450 -sub_8062450: @ 8062450 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x2 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0 - bl maybe_shadow_1 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_806247C - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062450 - - thumb_func_start sub_806247C -sub_806247C: @ 806247C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_8061358 - lsls r0, 24 - cmp r0, 0 - bne _08062490 - movs r0, 0 - b _080624A0 -_08062490: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_080624A0: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_806247C - - thumb_func_start sub_80624A8 -sub_80624A8: @ 80624A8 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x2 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x2 - movs r3, 0 - bl maybe_shadow_1 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80624D4 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80624A8 - - thumb_func_start sub_80624D4 -sub_80624D4: @ 80624D4 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_8061358 - lsls r0, 24 - cmp r0, 0 - bne _080624E8 - movs r0, 0 - b _080624F8 -_080624E8: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_080624F8: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80624D4 - - thumb_func_start sub_8062500 -sub_8062500: @ 8062500 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x2 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x3 - movs r3, 0 - bl maybe_shadow_1 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_806252C - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062500 - - thumb_func_start sub_806252C -sub_806252C: @ 806252C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_8061358 - lsls r0, 24 - cmp r0, 0 - bne _08062540 - movs r0, 0 - b _08062550 -_08062540: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08062550: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_806252C - - thumb_func_start sub_8062558 -sub_8062558: @ 8062558 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x2 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x4 - movs r3, 0 - bl maybe_shadow_1 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8062584 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062558 - - thumb_func_start sub_8062584 -sub_8062584: @ 8062584 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_8061358 - lsls r0, 24 - cmp r0, 0 - bne _08062598 - movs r0, 0 - b _080625A8 -_08062598: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_080625A8: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062584 - - thumb_func_start sub_80625B0 -sub_80625B0: @ 80625B0 - push {lr} - ldr r3, _080625C4 @ =gUnknown_0836DC09 - ldrb r2, [r0, 0x6] - adds r2, r3 - ldrb r2, [r2] - bl an_look_any - movs r0, 0x1 - pop {r1} - bx r1 - .align 2, 0 -_080625C4: .4byte gUnknown_0836DC09 - thumb_func_end sub_80625B0 - - thumb_func_start sub_80625C8 -sub_80625C8: @ 80625C8 - push {lr} - movs r2, 0x1 - movs r3, 0x14 - bl npc_set_direction_and_anim__an_proceed - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_80625C8 - - thumb_func_start sub_80625D8 -sub_80625D8: @ 80625D8 - ldrb r3, [r0, 0x3] - movs r2, 0x3 - negs r2, r2 - ands r2, r3 - strb r2, [r0, 0x3] - movs r0, 0x1 - strh r0, [r1, 0x32] - bx lr - thumb_func_end sub_80625D8 - - thumb_func_start sub_80625E8 -sub_80625E8: @ 80625E8 - ldrb r2, [r0, 0x3] - movs r3, 0x2 - orrs r2, r3 - strb r2, [r0, 0x3] - movs r0, 0x1 - strh r0, [r1, 0x32] - bx lr - thumb_func_end sub_80625E8 - - thumb_func_start sub_80625F8 -sub_80625F8: @ 80625F8 - ldrb r2, [r0, 0x1] - movs r3, 0x10 - orrs r2, r3 - strb r2, [r0, 0x1] - movs r0, 0x1 - strh r0, [r1, 0x32] - bx lr - thumb_func_end sub_80625F8 - - thumb_func_start sub_8062608 -sub_8062608: @ 8062608 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrb r0, [r4, 0x5] - bl GetFieldObjectGraphicsInfo - ldrb r1, [r0, 0xC] - lsls r1, 25 - lsrs r1, 31 - lsls r1, 4 - ldrb r2, [r4, 0x1] - movs r0, 0x11 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x1] - movs r0, 0x1 - strh r0, [r5, 0x32] - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062608 - - thumb_func_start sub_8062634 -sub_8062634: @ 8062634 - ldrb r2, [r0, 0x1] - movs r3, 0x20 - orrs r2, r3 - strb r2, [r0, 0x1] - movs r0, 0x1 - strh r0, [r1, 0x32] - bx lr - thumb_func_end sub_8062634 - - thumb_func_start sub_8062644 -sub_8062644: @ 8062644 - ldrb r3, [r0, 0x1] - movs r2, 0x21 - negs r2, r2 - ands r2, r3 - strb r2, [r0, 0x1] - movs r0, 0x1 - strh r0, [r1, 0x32] - bx lr - thumb_func_end sub_8062644 - - thumb_func_start do_exclamation_mark_bubble_1 -do_exclamation_mark_bubble_1: @ 8062654 - push {r4,lr} - adds r4, r1, 0 - ldr r1, _08062674 @ =gUnknown_0202FF84 - adds r2, r1, 0x4 - adds r3, r1, 0 - adds r3, 0x8 - bl FieldObjectGetLocalIdAndMap - movs r0, 0 - bl FieldEffectStart - movs r0, 0x1 - strh r0, [r4, 0x32] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08062674: .4byte gUnknown_0202FF84 - thumb_func_end do_exclamation_mark_bubble_1 - - thumb_func_start do_exclamation_mark_bubble_2 -do_exclamation_mark_bubble_2: @ 8062678 - push {r4,lr} - adds r4, r1, 0 - ldr r1, _08062698 @ =gUnknown_0202FF84 - adds r2, r1, 0x4 - adds r3, r1, 0 - adds r3, 0x8 - bl FieldObjectGetLocalIdAndMap - movs r0, 0x21 - bl FieldEffectStart - movs r0, 0x1 - strh r0, [r4, 0x32] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08062698: .4byte gUnknown_0202FF84 - thumb_func_end do_exclamation_mark_bubble_2 - - thumb_func_start do_heart_bubble -do_heart_bubble: @ 806269C - push {r4,lr} - adds r4, r1, 0 - ldr r1, _080626BC @ =gUnknown_0202FF84 - adds r2, r1, 0x4 - adds r3, r1, 0 - adds r3, 0x8 - bl FieldObjectGetLocalIdAndMap - movs r0, 0x2E - bl FieldEffectStart - movs r0, 0x1 - strh r0, [r4, 0x32] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080626BC: .4byte gUnknown_0202FF84 - thumb_func_end do_heart_bubble - - thumb_func_start sub_80626C0 -sub_80626C0: @ 80626C0 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrb r0, [r4, 0x6] - cmp r0, 0x3F - bne _080626D6 - adds r0, r4, 0 - bl sub_8084794 - movs r0, 0 - b _080626FE -_080626D6: - subs r0, 0x39 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _080626F8 - adds r0, r4, 0 - bl sub_812869C - movs r0, 0x1 - strh r0, [r5, 0x32] - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8062704 - lsls r0, 24 - lsrs r0, 24 - b _080626FE -_080626F8: - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_080626FE: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80626C0 - - thumb_func_start sub_8062704 -sub_8062704: @ 8062704 - push {r4,lr} - adds r4, r1, 0 - bl sub_81286C4 - lsls r0, 24 - cmp r0, 0 - bne _08062716 - movs r0, 0 - b _0806271C -_08062716: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_0806271C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8062704 - - thumb_func_start sub_8062724 -sub_8062724: @ 8062724 - push {r4,lr} - adds r4, r1, 0 - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0 - bl obj_anim_image_set_and_seek - movs r0, 0x1 - strh r0, [r4, 0x32] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8062724 - - thumb_func_start sub_8062740 -sub_8062740: @ 8062740 - push {r4,lr} - adds r4, r1, 0 - adds r0, r4, 0 - bl sub_8064864 - lsls r0, 24 - cmp r0, 0 - beq _0806275C - adds r0, r4, 0 - movs r1, 0x20 - bl sub_8064820 - movs r0, 0x2 - strh r0, [r4, 0x32] -_0806275C: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8062740 - - thumb_func_start sub_8062764 -sub_8062764: @ 8062764 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrb r2, [r4, 0x1] - lsls r1, r2, 26 - lsrs r1, 31 - movs r0, 0x1 - eors r1, r0 - lsls r1, 5 - subs r0, 0x22 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x1] - adds r0, r5, 0 - bl sub_8064824 - lsls r0, 24 - cmp r0, 0 - beq _08062796 - ldrb r0, [r4, 0x1] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r4, 0x1] - movs r0, 0x3 - strh r0, [r5, 0x32] -_08062796: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062764 - - thumb_func_start sub_80627A0 -sub_80627A0: @ 80627A0 - push {r4,lr} - adds r4, r1, 0 - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0 - bl obj_anim_image_set_and_seek - movs r0, 0x1 - strh r0, [r4, 0x32] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80627A0 - - thumb_func_start sub_80627BC -sub_80627BC: @ 80627BC - push {r4,lr} - adds r4, r1, 0 - adds r0, r4, 0 - bl sub_8064864 - lsls r0, 24 - cmp r0, 0 - beq _080627D8 - adds r0, r4, 0 - movs r1, 0x20 - bl sub_8064820 - movs r0, 0x2 - strh r0, [r4, 0x32] -_080627D8: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80627BC - - thumb_func_start sub_80627E0 -sub_80627E0: @ 80627E0 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrb r2, [r4, 0x1] - lsls r1, r2, 26 - lsrs r1, 31 - movs r0, 0x1 - eors r1, r0 - lsls r1, 5 - subs r0, 0x22 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x1] - adds r0, r5, 0 - bl sub_8064824 - lsls r0, 24 - cmp r0, 0 - beq _08062812 - ldrb r0, [r4, 0x1] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r4, 0x1] - movs r0, 0x3 - strh r0, [r5, 0x32] -_08062812: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80627E0 - - thumb_func_start sub_806281C -sub_806281C: @ 806281C - ldrb r2, [r0, 0x3] - movs r3, 0x4 - orrs r2, r3 - strb r2, [r0, 0x3] - movs r0, 0x1 - strh r0, [r1, 0x32] - bx lr - thumb_func_end sub_806281C - - thumb_func_start sub_806282C -sub_806282C: @ 806282C - ldrb r3, [r0, 0x3] - movs r2, 0x5 - negs r2, r2 - ands r2, r3 - strb r2, [r0, 0x3] - movs r0, 0x1 - strh r0, [r1, 0x32] - bx lr - thumb_func_end sub_806282C - - thumb_func_start sub_806283C -sub_806283C: @ 806283C - push {r4,lr} - adds r4, r1, 0 - ldrb r0, [r4, 0x1] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r4, 0x1] - adds r0, r4, 0 - bl InitSpriteAffineAnim - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - adds r4, 0x42 - ldrb r1, [r4] - movs r0, 0x3F - ands r0, r1 - strb r0, [r4] - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_806283C - - thumb_func_start sub_806286C -sub_806286C: @ 806286C - push {r4,lr} - adds r4, r1, 0 - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldrb r0, [r4, 0x1] - movs r1, 0x4 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x1] - lsrs r1, 6 - ldrb r2, [r4, 0x3] - lsrs r2, 6 - movs r3, 0 - adds r0, r4, 0 - bl CalcCenterToCornerVec - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_806286C - - thumb_func_start sub_806289C -sub_806289C: @ 806289C - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - movs r2, 0x1 - bl sub_8060ED8 - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAffineAnimIfDifferent - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80628D0 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_806289C - - thumb_func_start sub_80628D0 -sub_80628D0: @ 80628D0 - push {r4,lr} - adds r4, r1, 0 - bl an_walk_any_2 - lsls r0, 24 - cmp r0, 0 - bne _080628E2 - movs r0, 0 - b _080628F4 -_080628E2: - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_080628F4: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80628D0 - - thumb_func_start sub_80628FC -sub_80628FC: @ 80628FC - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - movs r2, 0x1 - bl sub_8060ED8 - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - adds r0, r4, 0 - movs r1, 0x1 - bl ChangeSpriteAffineAnimIfDifferent - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8062930 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80628FC - - thumb_func_start sub_8062930 -sub_8062930: @ 8062930 - push {r4,lr} - adds r4, r1, 0 - bl an_walk_any_2 - lsls r0, 24 - cmp r0, 0 - bne _08062942 - movs r0, 0 - b _08062954 -_08062942: - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08062954: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8062930 - - thumb_func_start sub_806295C -sub_806295C: @ 806295C - push {r4-r6,lr} - adds r5, r0, 0 - adds r6, r1, 0 - lsls r4, r2, 24 - lsrs r4, 24 - adds r1, r4, 0 - bl FieldObjectSetDirection - adds r0, r5, 0 - bl npc_coords_shift_still - adds r0, r4, 0 - bl sub_805FDD8 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_805FE64 - adds r2, r6, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x1 - strh r0, [r6, 0x32] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_806295C - - thumb_func_start sub_806299C -sub_806299C: @ 806299C - push {lr} - movs r2, 0x1 - bl sub_806295C - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_806299C - - thumb_func_start sub_80629AC -sub_80629AC: @ 80629AC - push {lr} - movs r2, 0x2 - bl sub_806295C - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_80629AC - - thumb_func_start sub_80629BC -sub_80629BC: @ 80629BC - push {lr} - movs r2, 0x3 - bl sub_806295C - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_80629BC - - thumb_func_start sub_80629CC -sub_80629CC: @ 80629CC - push {lr} - movs r2, 0x4 - bl sub_806295C - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_80629CC - - thumb_func_start sub_80629DC -sub_80629DC: @ 80629DC - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x1 - bl sub_805FD98 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x1 - bl npc_set_direction_and_anim__an_proceed - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80629DC - - thumb_func_start sub_8062A00 -sub_8062A00: @ 8062A00 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x2 - bl sub_805FD98 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x2 - bl npc_set_direction_and_anim__an_proceed - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062A00 - - thumb_func_start sub_8062A24 -sub_8062A24: @ 8062A24 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x3 - bl sub_805FD98 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x3 - bl npc_set_direction_and_anim__an_proceed - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062A24 - - thumb_func_start sub_8062A48 -sub_8062A48: @ 8062A48 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x4 - bl sub_805FD98 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x4 - bl npc_set_direction_and_anim__an_proceed - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062A48 - - thumb_func_start sub_8062A6C -sub_8062A6C: @ 8062A6C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x1 - bl sub_805FDB8 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x1 - bl npc_set_direction_and_anim__an_proceed - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062A6C - - thumb_func_start sub_8062A90 -sub_8062A90: @ 8062A90 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x2 - bl sub_805FDB8 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x2 - bl npc_set_direction_and_anim__an_proceed - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062A90 - - thumb_func_start sub_8062AB4 -sub_8062AB4: @ 8062AB4 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x3 - bl sub_805FDB8 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x3 - bl npc_set_direction_and_anim__an_proceed - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062AB4 - - thumb_func_start sub_8062AD8 -sub_8062AD8: @ 8062AD8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x4 - bl sub_805FDB8 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x4 - bl npc_set_direction_and_anim__an_proceed - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062AD8 - - thumb_func_start sub_8062AFC -sub_8062AFC: @ 8062AFC - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x1 - bl sub_805FDC8 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x1 - bl npc_set_direction_and_anim__an_proceed - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062AFC - - thumb_func_start sub_8062B20 -sub_8062B20: @ 8062B20 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x2 - bl sub_805FDC8 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x2 - bl npc_set_direction_and_anim__an_proceed - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062B20 - - thumb_func_start sub_8062B44 -sub_8062B44: @ 8062B44 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x3 - bl sub_805FDC8 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x3 - bl npc_set_direction_and_anim__an_proceed - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062B44 - - thumb_func_start sub_8062B68 -sub_8062B68: @ 8062B68 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x4 - bl sub_805FDC8 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x4 - bl npc_set_direction_and_anim__an_proceed - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062B68 - - thumb_func_start sub_8062B8C -sub_8062B8C: @ 8062B8C - push {r4-r6,lr} - sub sp, 0x4 - adds r6, r0, 0 - adds r5, r1, 0 - adds r4, r2, 0 - ldr r0, [sp, 0x14] - lsls r4, 24 - lsrs r4, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - adds r0, r6, 0 - adds r2, r4, 0 - bl sub_806113C - adds r0, r4, 0 - bl sub_805FD98 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl StartSpriteAnimIfDifferent - adds r0, r6, 0 - bl DoShadowFieldEffect - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8062B8C - - thumb_func_start sub_8062BD0 -sub_8062BD0: @ 8062BD0 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x1 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0 - bl sub_8062B8C - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8062BFC - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062BD0 - - thumb_func_start sub_8062BFC -sub_8062BFC: @ 8062BFC - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_8061328 - lsls r0, 24 - cmp r0, 0 - bne _08062C10 - movs r0, 0 - b _08062C20 -_08062C10: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08062C20: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062BFC - - thumb_func_start sub_8062C28 -sub_8062C28: @ 8062C28 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x1 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x2 - movs r3, 0 - bl sub_8062B8C - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8062C54 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062C28 - - thumb_func_start sub_8062C54 -sub_8062C54: @ 8062C54 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_8061328 - lsls r0, 24 - cmp r0, 0 - bne _08062C68 - movs r0, 0 - b _08062C78 -_08062C68: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08062C78: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062C54 - - thumb_func_start sub_8062C80 -sub_8062C80: @ 8062C80 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x1 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x3 - movs r3, 0 - bl sub_8062B8C - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8062CAC - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062C80 - - thumb_func_start sub_8062CAC -sub_8062CAC: @ 8062CAC - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_8061328 - lsls r0, 24 - cmp r0, 0 - bne _08062CC0 - movs r0, 0 - b _08062CD0 -_08062CC0: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08062CD0: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062CAC - - thumb_func_start sub_8062CD8 -sub_8062CD8: @ 8062CD8 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x1 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x4 - movs r3, 0 - bl sub_8062B8C - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8062D04 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062CD8 - - thumb_func_start sub_8062D04 -sub_8062D04: @ 8062D04 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_8061328 - lsls r0, 24 - cmp r0, 0 - bne _08062D18 - movs r0, 0 - b _08062D28 -_08062D18: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08062D28: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062D04 - - thumb_func_start sub_8062D30 -sub_8062D30: @ 8062D30 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x1 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x1 - bl sub_8062B8C - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8062D5C - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062D30 - - thumb_func_start sub_8062D5C -sub_8062D5C: @ 8062D5C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_8061328 - lsls r0, 24 - cmp r0, 0 - bne _08062D70 - movs r0, 0 - b _08062D80 -_08062D70: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08062D80: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062D5C - - thumb_func_start sub_8062D88 -sub_8062D88: @ 8062D88 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x1 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x2 - movs r3, 0x1 - bl sub_8062B8C - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8062DB4 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062D88 - - thumb_func_start sub_8062DB4 -sub_8062DB4: @ 8062DB4 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_8061328 - lsls r0, 24 - cmp r0, 0 - bne _08062DC8 - movs r0, 0 - b _08062DD8 -_08062DC8: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08062DD8: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062DB4 - - thumb_func_start sub_8062DE0 -sub_8062DE0: @ 8062DE0 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x1 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x3 - movs r3, 0x1 - bl sub_8062B8C - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8062E0C - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062DE0 - - thumb_func_start sub_8062E0C -sub_8062E0C: @ 8062E0C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_8061328 - lsls r0, 24 - cmp r0, 0 - bne _08062E20 - movs r0, 0 - b _08062E30 -_08062E20: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08062E30: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062E0C - - thumb_func_start sub_8062E38 -sub_8062E38: @ 8062E38 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x1 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x4 - movs r3, 0x1 - bl sub_8062B8C - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8062E64 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062E38 - - thumb_func_start sub_8062E64 -sub_8062E64: @ 8062E64 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_8061328 - lsls r0, 24 - cmp r0, 0 - bne _08062E78 - movs r0, 0 - b _08062E88 -_08062E78: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08062E88: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062E64 - - thumb_func_start sub_8062E90 -sub_8062E90: @ 8062E90 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x2 - bl sub_8062B8C - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8062EBC - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062E90 - - thumb_func_start sub_8062EBC -sub_8062EBC: @ 8062EBC - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_8061328 - lsls r0, 24 - cmp r0, 0 - bne _08062ED0 - movs r0, 0 - b _08062EE0 -_08062ED0: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08062EE0: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062EBC - - thumb_func_start sub_8062EE8 -sub_8062EE8: @ 8062EE8 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x2 - movs r3, 0x2 - bl sub_8062B8C - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8062F14 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062EE8 - - thumb_func_start sub_8062F14 -sub_8062F14: @ 8062F14 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_8061328 - lsls r0, 24 - cmp r0, 0 - bne _08062F28 - movs r0, 0 - b _08062F38 -_08062F28: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08062F38: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062F14 - - thumb_func_start sub_8062F40 -sub_8062F40: @ 8062F40 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x3 - movs r3, 0x2 - bl sub_8062B8C - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8062F6C - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062F40 - - thumb_func_start sub_8062F6C -sub_8062F6C: @ 8062F6C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_8061328 - lsls r0, 24 - cmp r0, 0 - bne _08062F80 - movs r0, 0 - b _08062F90 -_08062F80: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08062F90: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062F6C - - thumb_func_start sub_8062F98 -sub_8062F98: @ 8062F98 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x4 - movs r3, 0x2 - bl sub_8062B8C - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8062FC4 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062F98 - - thumb_func_start sub_8062FC4 -sub_8062FC4: @ 8062FC4 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_8061328 - lsls r0, 24 - cmp r0, 0 - bne _08062FD8 - movs r0, 0 - b _08062FE8 -_08062FD8: - ldrb r0, [r4, 0x2] - movs r1, 0x41 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x2] - movs r0, 0x2 - strh r0, [r5, 0x32] - movs r0, 0x1 -_08062FE8: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062FC4 - - thumb_func_start sub_8062FF0 -sub_8062FF0: @ 8062FF0 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x1 - bl sub_805FDD8 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x8 - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x1 - bl sub_80616CC - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8061714 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8062FF0 - - thumb_func_start sub_8063028 -sub_8063028: @ 8063028 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x2 - bl sub_805FDD8 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x8 - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x2 - bl sub_80616CC - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8061714 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8063028 - - thumb_func_start sub_8063060 -sub_8063060: @ 8063060 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x3 - bl sub_805FDD8 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x8 - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x3 - bl sub_80616CC - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8061714 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8063060 - - thumb_func_start sub_8063098 -sub_8063098: @ 8063098 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x4 - bl sub_805FDD8 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x8 - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x4 - bl sub_80616CC - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8061714 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8063098 - - thumb_func_start sub_80630D0 -sub_80630D0: @ 80630D0 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - bl sub_8060D20 - ldrb r0, [r5, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl sub_805FD98 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - adds r0, r4, 0 - movs r1, 0 - bl SeekSpriteAnim - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80630D0 - - thumb_func_start sub_8063108 -sub_8063108: @ 8063108 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x1 - movs r3, 0x1 - bl sub_80630D0 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8063128 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8063108 - - thumb_func_start sub_8063128 -sub_8063128: @ 8063128 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _0806313A - movs r0, 0 - b _08063140 -_0806313A: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08063140: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8063128 - - thumb_func_start sub_8063148 -sub_8063148: @ 8063148 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x2 - movs r3, 0x1 - bl sub_80630D0 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8063168 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8063148 - - thumb_func_start sub_8063168 -sub_8063168: @ 8063168 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _0806317A - movs r0, 0 - b _08063180 -_0806317A: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08063180: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8063168 - - thumb_func_start sub_8063188 -sub_8063188: @ 8063188 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x3 - movs r3, 0x1 - bl sub_80630D0 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80631A8 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8063188 - - thumb_func_start sub_80631A8 -sub_80631A8: @ 80631A8 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _080631BA - movs r0, 0 - b _080631C0 -_080631BA: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_080631C0: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80631A8 - - thumb_func_start sub_80631C8 -sub_80631C8: @ 80631C8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x4 - movs r3, 0x1 - bl sub_80630D0 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80631E8 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80631C8 - - thumb_func_start sub_80631E8 -sub_80631E8: @ 80631E8 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _080631FA - movs r0, 0 - b _08063200 -_080631FA: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08063200: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80631E8 - - thumb_func_start sub_8063208 -sub_8063208: @ 8063208 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - bl sub_8060D20 - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl sub_805FDD8 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_805FE28 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8063208 - - thumb_func_start sub_8063238 -sub_8063238: @ 8063238 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x1 - movs r3, 0x1 - bl sub_8063208 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8063258 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8063238 - - thumb_func_start sub_8063258 -sub_8063258: @ 8063258 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _0806326A - movs r0, 0 - b _08063270 -_0806326A: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08063270: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8063258 - - thumb_func_start sub_8063278 -sub_8063278: @ 8063278 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x2 - movs r3, 0x1 - bl sub_8063208 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8063298 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8063278 - - thumb_func_start sub_8063298 -sub_8063298: @ 8063298 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _080632AA - movs r0, 0 - b _080632B0 -_080632AA: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_080632B0: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8063298 - - thumb_func_start sub_80632B8 -sub_80632B8: @ 80632B8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x3 - movs r3, 0x1 - bl sub_8063208 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80632D8 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80632B8 - - thumb_func_start sub_80632D8 -sub_80632D8: @ 80632D8 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _080632EA - movs r0, 0 - b _080632F0 -_080632EA: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_080632F0: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80632D8 - - thumb_func_start sub_80632F8 -sub_80632F8: @ 80632F8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x4 - movs r3, 0x1 - bl sub_8063208 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8063318 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80632F8 - - thumb_func_start sub_8063318 -sub_8063318: @ 8063318 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _0806332A - movs r0, 0 - b _08063330 -_0806332A: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08063330: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8063318 - - thumb_func_start sub_8063338 -sub_8063338: @ 8063338 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - bl sub_8060D20 - ldrb r0, [r5, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl sub_805FDB8 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - adds r0, r4, 0 - movs r1, 0 - bl SeekSpriteAnim - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8063338 - - thumb_func_start sub_8063370 -sub_8063370: @ 8063370 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x1 - movs r3, 0x1 - bl sub_8063338 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8063390 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8063370 - - thumb_func_start sub_8063390 -sub_8063390: @ 8063390 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _080633A2 - movs r0, 0 - b _080633A8 -_080633A2: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_080633A8: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8063390 - - thumb_func_start sub_80633B0 -sub_80633B0: @ 80633B0 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x2 - movs r3, 0x1 - bl sub_8063338 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80633D0 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80633B0 - - thumb_func_start sub_80633D0 -sub_80633D0: @ 80633D0 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _080633E2 - movs r0, 0 - b _080633E8 -_080633E2: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_080633E8: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80633D0 - - thumb_func_start sub_80633F0 -sub_80633F0: @ 80633F0 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x3 - movs r3, 0x1 - bl sub_8063338 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8063410 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80633F0 - - thumb_func_start sub_8063410 -sub_8063410: @ 8063410 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08063422 - movs r0, 0 - b _08063428 -_08063422: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08063428: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8063410 - - thumb_func_start sub_8063430 -sub_8063430: @ 8063430 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x4 - movs r3, 0x1 - bl sub_8063338 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8063450 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8063430 - - thumb_func_start sub_8063450 -sub_8063450: @ 8063450 - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _08063462 - movs r0, 0 - b _08063468 -_08063462: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08063468: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8063450 - - thumb_func_start sub_8063470 -sub_8063470: @ 8063470 - movs r0, 0x1 - bx lr - thumb_func_end sub_8063470 - - thumb_func_start sub_8063474 -sub_8063474: @ 8063474 - adds r1, 0x2C - ldrb r0, [r1] - movs r2, 0x40 - orrs r0, r2 - strb r0, [r1] - movs r0, 0x1 - bx lr - thumb_func_end sub_8063474 - - thumb_func_start npc_obj_transfer_image_anim_pause_flag -npc_obj_transfer_image_anim_pause_flag: @ 8063484 - push {lr} - ldrb r0, [r0, 0x1] - lsls r0, 29 - cmp r0, 0 - bge _0806349A - adds r0, r1, 0 - adds r0, 0x2C - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] -_0806349A: - pop {r0} - bx r0 - thumb_func_end npc_obj_transfer_image_anim_pause_flag - - thumb_func_start sub_80634A0 -sub_80634A0: @ 80634A0 - push {r4,lr} - adds r4, r0, 0 - ldrb r3, [r4, 0x1] - lsls r0, r3, 28 - cmp r0, 0 - bge _080634C8 - adds r2, r1, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r3 - movs r1, 0x9 - negs r1, r1 - ands r0, r1 - strb r0, [r4, 0x1] -_080634C8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80634A0 - - thumb_func_start sub_80634D0 -sub_80634D0: @ 80634D0 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_80634E8 - adds r0, r4, 0 - adds r1, r5, 0 - bl npc_update_obj_anim_flag - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80634D0 - - thumb_func_start sub_80634E8 -sub_80634E8: @ 80634E8 - push {r4-r6,lr} - adds r5, r0, 0 - adds r4, r1, 0 - ldrb r1, [r5, 0x1] - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - strb r0, [r5, 0x1] - ldrb r0, [r5, 0x5] - bl GetFieldObjectGraphicsInfo - adds r6, r0, 0 - adds r0, r4, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0806354C - ldrh r1, [r4, 0x24] - ldrh r0, [r4, 0x20] - adds r1, r0 - adds r0, r4, 0 - adds r0, 0x28 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - ldr r2, _08063544 @ =gSpriteCoordOffsetX - adds r0, r1 - ldrh r2, [r2] - adds r0, r2 - lsls r0, 16 - lsrs r3, r0, 16 - ldrh r1, [r4, 0x26] - ldrh r0, [r4, 0x22] - adds r1, r0 - adds r0, r4, 0 - adds r0, 0x29 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - ldr r2, _08063548 @ =gSpriteCoordOffsetY - adds r0, r1 - ldrh r2, [r2] - adds r0, r2 - b _08063574 - .align 2, 0 -_08063544: .4byte gSpriteCoordOffsetX -_08063548: .4byte gSpriteCoordOffsetY -_0806354C: - ldrh r1, [r4, 0x24] - ldrh r0, [r4, 0x20] - adds r1, r0 - adds r0, r4, 0 - adds r0, 0x28 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r0, r1 - lsls r0, 16 - lsrs r3, r0, 16 - ldrh r1, [r4, 0x26] - ldrh r0, [r4, 0x22] - adds r1, r0 - adds r0, r4, 0 - adds r0, 0x29 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r0, r1 -_08063574: - lsls r0, 16 - lsrs r2, r0, 16 - ldrh r0, [r6, 0x8] - adds r0, r3 - lsls r0, 16 - lsrs r1, r0, 16 - ldrh r0, [r6, 0xA] - adds r0, r2 - lsls r0, 16 - lsrs r4, r0, 16 - lsls r0, r3, 16 - asrs r0, 16 - cmp r0, 0xFF - bgt _0806359C - lsls r0, r1, 16 - asrs r0, 16 - movs r1, 0x10 - negs r1, r1 - cmp r0, r1 - bge _080635A4 -_0806359C: - ldrb r0, [r5, 0x1] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r5, 0x1] -_080635A4: - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0xAF - bgt _080635B8 - lsls r0, r4, 16 - asrs r0, 16 - movs r1, 0x10 - negs r1, r1 - cmp r0, r1 - bge _080635C0 -_080635B8: - ldrb r0, [r5, 0x1] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r5, 0x1] -_080635C0: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80634E8 - - thumb_func_start npc_update_obj_anim_flag -npc_update_obj_anim_flag: @ 80635C8 - push {lr} - adds r2, r1, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r3, 0x5 - negs r3, r3 - ands r3, r1 - strb r3, [r2] - ldrb r1, [r0, 0x1] - movs r0, 0x60 - ands r0, r1 - cmp r0, 0 - beq _080635EA - movs r1, 0x4 - adds r0, r3, 0 - orrs r0, r1 - strb r0, [r2] -_080635EA: - pop {r0} - bx r0 - thumb_func_end npc_update_obj_anim_flag - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/field_specials.s b/asm/field_specials.s index 63677b6a0..8523e540b 100644 --- a/asm/field_specials.s +++ b/asm/field_specials.s @@ -1196,11 +1196,11 @@ _0810E2FC: .4byte gOtherText_Son thumb_func_start sub_810E300 sub_810E300: @ 810E300 - ldr r0, _0810E308 @ =gUnknown_02024D26 + ldr r0, _0810E308 @ =gBattleOutcome ldrb r0, [r0] bx lr .align 2, 0 -_0810E308: .4byte gUnknown_02024D26 +_0810E308: .4byte gBattleOutcome thumb_func_end sub_810E300 thumb_func_start CableCarWarp @@ -3086,7 +3086,7 @@ _0810F17A: ands r0, r1 cmp r0, 0 beq _0810F1AE - bl sub_8072DEC + bl HandleDestroyMenuCursors ldr r0, _0810F1F0 @ =gScriptResult ldr r1, _0810F1E8 @ =gUnknown_0203925B ldrb r1, [r1] @@ -3107,7 +3107,7 @@ _0810F1AE: ands r0, r1 cmp r0, 0 beq _0810F1DE - bl sub_8072DEC + bl HandleDestroyMenuCursors ldr r1, _0810F1F0 @ =gScriptResult movs r0, 0x7F strh r0, [r1] @@ -4871,7 +4871,7 @@ sub_810FEFC: @ 810FEFC cmp r0, 0x2 bne _0810FF2C bl sub_810FA74 - ldr r0, _0810FF24 @ =gUnknown_02024D26 + ldr r0, _0810FF24 @ =gBattleOutcome ldrb r0, [r0] cmp r0, 0x1 bne _0810FF28 @@ -4879,7 +4879,7 @@ sub_810FEFC: @ 810FEFC b _0810FF2C .align 2, 0 _0810FF20: .4byte 0x00004095 -_0810FF24: .4byte gUnknown_02024D26 +_0810FF24: .4byte gBattleOutcome _0810FF28: bl sub_810FC18 _0810FF2C: diff --git a/asm/fldeff_80C5CD4.s b/asm/fldeff_80C5CD4.s index 25ede5738..33182fc6a 100644 --- a/asm/fldeff_80C5CD4.s +++ b/asm/fldeff_80C5CD4.s @@ -814,7 +814,7 @@ SetUpFieldMove_SecretPower: @ 80C62C4 cmp r0, 0x1 bne _080C6330 bl sub_80C6264 - ldr r1, _080C6320 @ =gUnknown_0300485C + ldr r1, _080C6320 @ =gFieldCallback ldr r0, _080C6324 @ =sub_808AB90 str r0, [r1] ldr r1, _080C6328 @ =gUnknown_03005CE4 @@ -823,7 +823,7 @@ SetUpFieldMove_SecretPower: @ 80C62C4 .align 2, 0 _080C6318: .4byte gScriptResult _080C631C: .4byte gUnknown_0203923C -_080C6320: .4byte gUnknown_0300485C +_080C6320: .4byte gFieldCallback _080C6324: .4byte sub_808AB90 _080C6328: .4byte gUnknown_03005CE4 _080C632C: .4byte sub_80C639C @@ -835,14 +835,14 @@ _080C6330: cmp r0, 0x1 bne _080C6360 bl sub_80C6264 - ldr r1, _080C6350 @ =gUnknown_0300485C + ldr r1, _080C6350 @ =gFieldCallback ldr r0, _080C6354 @ =sub_808AB90 str r0, [r1] ldr r1, _080C6358 @ =gUnknown_03005CE4 ldr r0, _080C635C @ =sub_80C64A8 b _080C6380 .align 2, 0 -_080C6350: .4byte gUnknown_0300485C +_080C6350: .4byte gFieldCallback _080C6354: .4byte sub_808AB90 _080C6358: .4byte gUnknown_03005CE4 _080C635C: .4byte sub_80C64A8 @@ -858,7 +858,7 @@ _080C636E: b _080C6384 _080C6372: bl sub_80C6264 - ldr r1, _080C638C @ =gUnknown_0300485C + ldr r1, _080C638C @ =gFieldCallback ldr r0, _080C6390 @ =sub_808AB90 str r0, [r1] ldr r1, _080C6394 @ =gUnknown_03005CE4 @@ -871,7 +871,7 @@ _080C6384: pop {r1} bx r1 .align 2, 0 -_080C638C: .4byte gUnknown_0300485C +_080C638C: .4byte gFieldCallback _080C6390: .4byte sub_808AB90 _080C6394: .4byte gUnknown_03005CE4 _080C6398: .4byte sub_80C660C diff --git a/asm/fldeff_flash.s b/asm/fldeff_flash.s index c14e9057d..dcd485d9f 100644 --- a/asm/fldeff_flash.s +++ b/asm/fldeff_flash.s @@ -18,7 +18,7 @@ SetUpFieldMove_Flash: @ 810CBB4 lsls r0, 24 cmp r0, 0 bne _0810CBF4 - ldr r1, _0810CBE4 @ =gUnknown_0300485C + ldr r1, _0810CBE4 @ =gFieldCallback ldr r0, _0810CBE8 @ =sub_808AB90 str r0, [r1] ldr r1, _0810CBEC @ =gUnknown_03005CE4 @@ -29,7 +29,7 @@ SetUpFieldMove_Flash: @ 810CBB4 .align 2, 0 _0810CBDC: .4byte gMapHeader _0810CBE0: .4byte 0x00000828 -_0810CBE4: .4byte gUnknown_0300485C +_0810CBE4: .4byte gFieldCallback _0810CBE8: .4byte sub_808AB90 _0810CBEC: .4byte gUnknown_03005CE4 _0810CBF0: .4byte sub_810CBFC diff --git a/asm/item_menu.s b/asm/item_menu.s index 7463663d8..b76f24ccf 100644 --- a/asm/item_menu.s +++ b/asm/item_menu.s @@ -812,13 +812,13 @@ sub_80A37C0: @ 80A37C0 ldr r0, _080A37F4 @ =sub_80A50C8 str r0, [r1] movs r0, 0 - bl sub_80F98DC + bl StartVerticalScrollIndicators movs r0, 0x1 - bl sub_80F98DC + bl StartVerticalScrollIndicators movs r0, 0x2 - bl sub_80F98DC + bl StartVerticalScrollIndicators movs r0, 0x3 - bl sub_80F98DC + bl StartVerticalScrollIndicators pop {r0} bx r0 .align 2, 0 @@ -3784,13 +3784,13 @@ sub_80A4E8C: @ 80A4E8C movs r1, 0x1 bl sub_80F979C movs r0, 0 - bl sub_80F996C + bl PauseVerticalScrollIndicator movs r0, 0x1 - bl sub_80F996C + bl PauseVerticalScrollIndicator movs r0, 0x2 - bl sub_80F996C + bl PauseVerticalScrollIndicator movs r0, 0x3 - bl sub_80F996C + bl PauseVerticalScrollIndicator ldr r5, _080A4F04 @ =gBGTilemapBuffers + 0x1000 lsls r4, 24 asrs r4, 24 @@ -5786,7 +5786,7 @@ sub_80A5EA0: @ 80A5EA0 bl sub_80A5DA0 ldr r1, _080A5EF4 @ =gUnknown_083C16F4 adds r0, r4, 0 - bl sub_80F914C + bl DoYesNoFuncWithChoice b _080A5F0C .align 2, 0 _080A5EE8: .4byte gMain @@ -6302,7 +6302,7 @@ sub_80A631C: @ 80A631C push {lr} lsls r0, 24 lsrs r0, 24 - ldr r2, _080A6344 @ =gUnknown_0300485C + ldr r2, _080A6344 @ =gFieldCallback ldr r1, _080A6348 @ =sub_80B3050 str r1, [r2] ldr r2, _080A634C @ =gTasks @@ -6318,7 +6318,7 @@ sub_80A631C: @ 80A631C pop {r0} bx r0 .align 2, 0 -_080A6344: .4byte gUnknown_0300485C +_080A6344: .4byte gFieldCallback _080A6348: .4byte sub_80B3050 _080A634C: .4byte gTasks _080A6350: .4byte c2_exit_to_overworld_2_switch @@ -6695,7 +6695,7 @@ sub_80A6650: @ 80A6650 bl sub_80A5D78 ldr r1, _080A666C @ =gUnknown_083C16FC adds r0, r4, 0 - bl sub_80F914C + bl DoYesNoFuncWithChoice pop {r4} pop {r0} bx r0 @@ -7202,8 +7202,8 @@ sub_80A6A4C: @ 80A6A4C push {lr} lsls r0, 24 lsrs r0, 24 - ldr r2, _080A6A74 @ =gUnknown_0300485C - ldr r1, _080A6A78 @ =sub_813A0F8 + ldr r2, _080A6A74 @ =gFieldCallback + ldr r1, _080A6A78 @ =ItemStorage_ReturnToMenuAfterDeposit str r1, [r2] ldr r2, _080A6A7C @ =gTasks lsls r1, r0, 2 @@ -7218,8 +7218,8 @@ sub_80A6A4C: @ 80A6A4C pop {r0} bx r0 .align 2, 0 -_080A6A74: .4byte gUnknown_0300485C -_080A6A78: .4byte sub_813A0F8 +_080A6A74: .4byte gFieldCallback +_080A6A78: .4byte ItemStorage_ReturnToMenuAfterDeposit _080A6A7C: .4byte gTasks _080A6A80: .4byte c2_exit_to_overworld_2_switch thumb_func_end sub_80A6A4C @@ -8369,7 +8369,7 @@ sub_80A73F0: @ 80A73F0 thumb_func_start sub_80A73FC sub_80A73FC: @ 80A73FC push {lr} - bl sub_8072DEC + bl HandleDestroyMenuCursors bl sub_814AD44 pop {r0} bx r0 diff --git a/asm/learn_move.s b/asm/learn_move.s index 84d244fe8..fdf650a08 100644 --- a/asm/learn_move.s +++ b/asm/learn_move.s @@ -51,7 +51,7 @@ sub_813269C: @ 813269C bne _081326C0 ldr r0, _081326CC @ =sub_81326D8 bl SetMainCallback2 - ldr r1, _081326D0 @ =gUnknown_0300485C + ldr r1, _081326D0 @ =gFieldCallback ldr r0, _081326D4 @ =sub_8080990 str r0, [r1] adds r0, r4, 0 @@ -63,7 +63,7 @@ _081326C0: .align 2, 0 _081326C8: .4byte gPaletteFade _081326CC: .4byte sub_81326D8 -_081326D0: .4byte gUnknown_0300485C +_081326D0: .4byte gFieldCallback _081326D4: .4byte sub_8080990 thumb_func_end sub_813269C diff --git a/asm/mauville_old_man.s b/asm/mauville_old_man.s index 90d97e9a4..726de6fc1 100644 --- a/asm/mauville_old_man.s +++ b/asm/mauville_old_man.s @@ -1410,7 +1410,7 @@ _080F8840: ldr r0, _080F8870 @ =gUnknown_03000748 strb r4, [r0] _080F8848: - bl sub_8072DEC + bl HandleDestroyMenuCursors movs r0, 0 movs r1, 0 movs r2, 0x19 diff --git a/asm/menu_helpers.s b/asm/menu_helpers.s index f10070110..0f5caf3da 100644 --- a/asm/menu_helpers.s +++ b/asm/menu_helpers.s @@ -161,8 +161,8 @@ _080F9140: _080F9148: .4byte gUnknown_020388C4 thumb_func_end Task_CallYesOrNoCallback - thumb_func_start sub_80F914C -sub_80F914C: @ 80F914C + thumb_func_start DoYesNoFuncWithChoice +DoYesNoFuncWithChoice: @ 80F914C lsls r0, 24 lsrs r0, 24 ldr r3, _080F916C @ =gUnknown_020388C4 @@ -182,7 +182,7 @@ sub_80F914C: @ 80F914C _080F916C: .4byte gUnknown_020388C4 _080F9170: .4byte gTasks _080F9174: .4byte Task_CallYesOrNoCallback - thumb_func_end sub_80F914C + thumb_func_end DoYesNoFuncWithChoice thumb_func_start brm_trade_1 brm_trade_1: @ 80F9178 @@ -1207,8 +1207,8 @@ _080F98D4: .4byte gSprites _080F98D8: .4byte SpriteCallbackDummy thumb_func_end sub_80F98A4 - thumb_func_start sub_80F98DC -sub_80F98DC: @ 80F98DC + thumb_func_start StartVerticalScrollIndicators +StartVerticalScrollIndicators: @ 80F98DC push {lr} lsls r0, 24 lsrs r1, r0, 24 @@ -1235,7 +1235,7 @@ _080F9902: _080F9908: .4byte gUnknown_020388C0 _080F990C: .4byte gSprites _080F9910: .4byte sub_80F9834 - thumb_func_end sub_80F98DC + thumb_func_end StartVerticalScrollIndicators thumb_func_start sub_80F9914 sub_80F9914: @ 80F9914 @@ -1284,8 +1284,8 @@ _080F9964: .4byte gUnknown_020388C0 _080F9968: .4byte gSprites thumb_func_end sub_80F9914 - thumb_func_start sub_80F996C -sub_80F996C: @ 80F996C + thumb_func_start PauseVerticalScrollIndicator +PauseVerticalScrollIndicator: @ 80F996C push {r4,lr} adds r4, r0, 0 lsls r4, 24 @@ -1297,7 +1297,7 @@ sub_80F996C: @ 80F996C pop {r4} pop {r0} bx r0 - thumb_func_end sub_80F996C + thumb_func_end PauseVerticalScrollIndicator thumb_func_start sub_80F9988 sub_80F9988: @ 80F9988 diff --git a/asm/mon_markings.s b/asm/mon_markings.s index 28bc116a9..caab4e299 100644 --- a/asm/mon_markings.s +++ b/asm/mon_markings.s @@ -246,7 +246,7 @@ _080F7434: lsrs r3, r0, 16 cmp r3, 0x3 bls _080F7434 - bl sub_814A7FC + bl DestroyMenuCursor lsls r0, r5, 16 asrs r0, 16 lsls r1, r6, 16 @@ -322,7 +322,7 @@ _080F74C8: lsrs r4, r0, 16 cmp r4, 0x3 bls _080F74C8 - bl sub_814A7FC + bl DestroyMenuCursor ldr r0, [r5] ldr r0, [r0, 0x24] cmp r0, 0 diff --git a/asm/mystery_event_script.s b/asm/mystery_event_script.s index 93abd97bc..02b6a0a48 100644 --- a/asm/mystery_event_script.s +++ b/asm/mystery_event_script.s @@ -667,10 +667,10 @@ _0812668C: lsrs r4, 16 adds r0, r4, 0 movs r1, 0x2 - bl sub_8090D90 + bl GetNationalPokedexFlag adds r0, r4, 0 movs r1, 0x3 - bl sub_8090D90 + bl GetNationalPokedexFlag _081266C6: adds r0, r7, 0 movs r1, 0xC diff --git a/asm/party_menu.s b/asm/party_menu.s index 053d8b8b0..8a7c153b9 100644 --- a/asm/party_menu.s +++ b/asm/party_menu.s @@ -7423,7 +7423,7 @@ sub_806E7D0: @ 806E7D0 lsls r3, 24 lsrs r3, 24 bl MenuZeroFillWindowRect - bl sub_8072DEC + bl HandleDestroyMenuCursors add sp, 0x4 pop {r4-r6} pop {r0} diff --git a/asm/player_pc.s b/asm/player_pc.s deleted file mode 100644 index 5e2adb775..000000000 --- a/asm/player_pc.s +++ /dev/null @@ -1,1298 +0,0 @@ - .include "constants/gba_constants.inc" - .include "constants/species_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_813AD58 -sub_813AD58: @ 813AD58 - push {lr} - sub sp, 0x8 - lsls r0, 16 - lsrs r1, r0, 16 - ldr r2, _0813AD74 @ =0xffff0009 - adds r0, r1, r2 - cmp r0, 0x8 - bhi _0813ADE8 - lsls r0, 2 - ldr r1, _0813AD78 @ =_0813AD7C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0813AD74: .4byte 0xffff0009 -_0813AD78: .4byte _0813AD7C - .align 2, 0 -_0813AD7C: - .4byte _0813ADE0 - .4byte _0813ADD8 - .4byte _0813ADD0 - .4byte _0813ADC8 - .4byte _0813ADC0 - .4byte _0813ADB8 - .4byte _0813ADB0 - .4byte _0813ADA8 - .4byte _0813ADA0 -_0813ADA0: - ldr r1, _0813ADA4 @ =gMenuText_GoBackToPrev - b _0813ADF0 - .align 2, 0 -_0813ADA4: .4byte gMenuText_GoBackToPrev -_0813ADA8: - ldr r1, _0813ADAC @ =gOtherText_HowManyToWithdraw - b _0813ADF0 - .align 2, 0 -_0813ADAC: .4byte gOtherText_HowManyToWithdraw -_0813ADB0: - ldr r1, _0813ADB4 @ =gOtherText_WithdrewThing - b _0813ADF0 - .align 2, 0 -_0813ADB4: .4byte gOtherText_WithdrewThing -_0813ADB8: - ldr r1, _0813ADBC @ =gOtherText_HowManyToToss - b _0813ADF0 - .align 2, 0 -_0813ADBC: .4byte gOtherText_HowManyToToss -_0813ADC0: - ldr r1, _0813ADC4 @ =gOtherText_ThrewAwayItem - b _0813ADF0 - .align 2, 0 -_0813ADC4: .4byte gOtherText_ThrewAwayItem -_0813ADC8: - ldr r1, _0813ADCC @ =gOtherText_NoMoreRoom - b _0813ADF0 - .align 2, 0 -_0813ADCC: .4byte gOtherText_NoMoreRoom -_0813ADD0: - ldr r1, _0813ADD4 @ =gOtherText_TooImportant - b _0813ADF0 - .align 2, 0 -_0813ADD4: .4byte gOtherText_TooImportant -_0813ADD8: - ldr r1, _0813ADDC @ =gOtherText_OkayToThrowAwayPrompt - b _0813ADF0 - .align 2, 0 -_0813ADDC: .4byte gOtherText_OkayToThrowAwayPrompt -_0813ADE0: - ldr r1, _0813ADE4 @ =gOtherText_SwitchWhichItem - b _0813ADF0 - .align 2, 0 -_0813ADE4: .4byte gOtherText_SwitchWhichItem -_0813ADE8: - adds r0, r1, 0 - bl ItemId_GetDescription - adds r1, r0, 0 -_0813ADF0: - movs r0, 0x30 - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - adds r0, r1, 0 - movs r1, 0x8 - movs r2, 0x68 - movs r3, 0x68 - bl sub_8072AB0 - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_813AD58 - - thumb_func_start sub_813AE0C -sub_813AE0C: @ 813AE0C - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r2, _0813AE48 @ =gTasks + 0x8 - adds r4, r1, r2 - ldrh r1, [r4] - ldrh r2, [r4, 0x2] - adds r1, r2 - lsls r1, 16 - lsrs r5, r1, 16 - bl sub_813ABE8 - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _0813AE62 - lsls r0, r5, 16 - asrs r1, r0, 16 - movs r2, 0x4 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _0813AE50 - ldr r0, _0813AE4C @ =0x0000ffff - bl sub_813AD58 - b _0813AE62 - .align 2, 0 -_0813AE48: .4byte gTasks + 0x8 -_0813AE4C: .4byte 0x0000ffff -_0813AE50: - ldr r0, _0813AE68 @ =gSaveBlock1 - lsls r1, 2 - adds r1, r0 - movs r0, 0x93 - lsls r0, 3 - adds r1, r0 - ldrh r0, [r1] - bl sub_813AD58 -_0813AE62: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0813AE68: .4byte gSaveBlock1 - thumb_func_end sub_813AE0C - - thumb_func_start sub_813AE6C -sub_813AE6C: @ 813AE6C - push {r4-r6,lr} - sub sp, 0x8 - adds r6, r0, 0 - adds r4, r1, 0 - lsls r6, 24 - lsrs r6, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r5, r6, 2 - adds r5, r6 - lsls r5, 3 - ldr r0, _0813AEF8 @ =gTasks + 0x8 - adds r5, r0 - bl sub_80F944C - bl LoadScrollIndicatorPalette - bl sub_813AF04 - movs r0, 0xF - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - movs r0, 0 - movs r1, 0xC - movs r2, 0xE - movs r3, 0x13 - bl MenuDrawTextWindow - movs r0, 0 - movs r1, 0 - movs r2, 0xB - movs r3, 0x3 - bl MenuDrawTextWindow - ldr r0, _0813AEFC @ =gSaveBlock1 - movs r1, 0x93 - lsls r1, 3 - adds r0, r1 - ldrh r0, [r0] - bl sub_813AD58 - ldr r0, _0813AF00 @ =gUnknown_084062C0 - lsls r4, 3 - adds r4, r0 - ldr r0, [r4] - movs r1, 0x1 - movs r2, 0x1 - bl MenuPrint - adds r0, r6, 0 - bl sub_813ABE8 - ldrb r3, [r5, 0x8] - ldrb r0, [r5] - str r0, [sp] - movs r0, 0xD - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x10 - movs r2, 0x2 - bl InitMenu - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813AEF8: .4byte gTasks + 0x8 -_0813AEFC: .4byte gSaveBlock1 -_0813AF00: .4byte gUnknown_084062C0 - thumb_func_end sub_813AE6C - - thumb_func_start sub_813AF04 -sub_813AF04: @ 813AF04 - push {lr} - sub sp, 0x8 - ldr r1, _0813AF38 @ =gUnknown_08406334 - mov r0, sp - movs r2, 0x6 - bl memcpy - add r0, sp, 0x4 - movs r1, 0xDF - movs r2, 0x2 - bl LoadPalette - mov r0, sp - adds r0, 0x2 - movs r1, 0xD1 - movs r2, 0x2 - bl LoadPalette - mov r0, sp - movs r1, 0xD8 - movs r2, 0x2 - bl LoadPalette - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_0813AF38: .4byte gUnknown_08406334 - thumb_func_end sub_813AF04 - - thumb_func_start sub_813AF3C -sub_813AF3C: @ 813AF3C - push {r4,lr} - movs r2, 0 - movs r1, 0x6 - ldr r4, _0813AF70 @ =gSaveBlock1 - ldr r3, _0813AF74 @ =0x00002b6c -_0813AF46: - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, r3 - ldrh r0, [r0] - cmp r0, 0 - beq _0813AF5C - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 -_0813AF5C: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xF - bls _0813AF46 - adds r0, r2, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0813AF70: .4byte gSaveBlock1 -_0813AF74: .4byte 0x00002b6c - thumb_func_end sub_813AF3C - - thumb_func_start sub_813AF78 -sub_813AF78: @ 813AF78 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - movs r2, 0x6 -_0813AF86: - adds r1, r2, 0x1 - lsls r0, r1, 24 - lsrs r3, r0, 24 - mov r10, r1 - cmp r3, 0xF - bhi _0813AFF4 - ldr r0, _0813B010 @ =gSaveBlock1 - mov r12, r0 - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - add r0, r12 - ldr r1, _0813B014 @ =0x00002b6c - adds r1, r0 - mov r8, r1 - ldr r2, _0813B018 @ =0x00002b4c - mov r9, r2 - adds r4, r0, r2 -_0813AFAA: - mov r5, r8 - ldrh r0, [r5] - cmp r0, 0 - bne _0813AFEA - mov r1, sp - adds r0, r4, 0 - ldm r0!, {r2,r6,r7} - stm r1!, {r2,r6,r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r2,r5,r6} - stm r1!, {r2,r5,r6} - lsls r2, r3, 3 - adds r2, r3 - lsls r2, 2 - add r2, r12 - add r2, r9 - adds r1, r4, 0 - adds r0, r2, 0 - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - mov r0, sp - ldm r0!, {r1,r5,r7} - stm r2!, {r1,r5,r7} - ldm r0!, {r1,r6,r7} - stm r2!, {r1,r6,r7} - ldm r0!, {r5-r7} - stm r2!, {r5-r7} -_0813AFEA: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0xF - bls _0813AFAA -_0813AFF4: - mov r1, r10 - lsls r0, r1, 24 - lsrs r2, r0, 24 - cmp r2, 0xE - bls _0813AF86 - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813B010: .4byte gSaveBlock1 -_0813B014: .4byte 0x00002b6c -_0813B018: .4byte 0x00002b4c - thumb_func_end sub_813AF78 - - thumb_func_start sub_813B01C -sub_813B01C: @ 813B01C - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r7, 0 - ldr r1, _0813B0B8 @ =0x0201fe00 - ldrb r4, [r1, 0x2] - ldrb r0, [r1, 0x1] - adds r0, r4, r0 - cmp r4, r0 - bge _0813B08A - adds r6, r1, 0 - ldr r0, _0813B0BC @ =gStringVar1 - mov r8, r0 -_0813B036: - ldrb r0, [r6, 0x2] - subs r0, r4, r0 - lsls r0, 17 - lsrs r7, r0, 16 - adds r0, r7, 0x2 - lsls r0, 24 - lsrs r5, r0, 24 - adds r3, r7, 0x3 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x15 - adds r1, r5, 0 - movs r2, 0x1C - bl MenuFillWindowRectWithBlankTile - ldrb r0, [r6, 0x3] - cmp r4, r0 - beq _0813B0C4 - lsls r1, r4, 3 - adds r1, r4 - lsls r1, 2 - ldr r0, _0813B0C0 @ =gSaveBlock1 + 0x2C36 - adds r1, r0 - mov r0, r8 - bl StringCopy - mov r0, r8 - bl SanitizeNameString - mov r0, r8 - movs r1, 0x15 - adds r2, r5, 0 - bl MenuPrint - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldrb r0, [r6, 0x2] - ldrb r1, [r6, 0x1] - adds r0, r1 - cmp r4, r0 - blt _0813B036 -_0813B08A: - ldr r5, _0813B0B8 @ =0x0201fe00 - ldrb r0, [r5, 0x2] - subs r0, r4, r0 - cmp r0, 0x8 - beq _0813B0A4 - adds r1, r7, 0x4 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x15 - movs r2, 0x1C - movs r3, 0x12 - bl MenuFillWindowRectWithBlankTile -_0813B0A4: - ldrb r0, [r5, 0x2] - cmp r0, 0 - beq _0813B0D4 - movs r0, 0 - movs r1, 0xC8 - movs r2, 0x8 - bl CreateVerticalScrollIndicators - b _0813B0DA - .align 2, 0 -_0813B0B8: .4byte 0x0201fe00 -_0813B0BC: .4byte gStringVar1 -_0813B0C0: .4byte gSaveBlock1 + 0x2C36 -_0813B0C4: - ldr r0, _0813B0D0 @ =gOtherText_CancelNoTerminator - movs r1, 0x15 - adds r2, r5, 0 - bl MenuPrint - b _0813B08A - .align 2, 0 -_0813B0D0: .4byte gOtherText_CancelNoTerminator -_0813B0D4: - movs r0, 0 - bl DestroyVerticalScrollIndicator -_0813B0DA: - ldr r0, _0813B0F4 @ =0x0201fe00 - ldrb r1, [r0, 0x2] - ldrb r2, [r0, 0x1] - adds r1, r2 - ldrb r0, [r0, 0x3] - cmp r1, r0 - bgt _0813B0F8 - movs r0, 0x1 - movs r1, 0xC8 - movs r2, 0x98 - bl CreateVerticalScrollIndicators - b _0813B0FE - .align 2, 0 -_0813B0F4: .4byte 0x0201fe00 -_0813B0F8: - movs r0, 0x1 - bl DestroyVerticalScrollIndicator -_0813B0FE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_813B01C - - thumb_func_start sub_813B108 -sub_813B108: @ 813B108 - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_80F944C - bl LoadScrollIndicatorPalette - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - movs r0, 0 - movs r1, 0 - movs r2, 0x8 - movs r3, 0x3 - bl MenuDrawTextWindow - ldr r0, _0813B16C @ =gPCText_Mailbox - movs r1, 0x1 - movs r2, 0x1 - bl MenuPrint - movs r0, 0x14 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - adds r0, r4, 0 - bl sub_813B01C - ldr r0, _0813B170 @ =0x0201fe00 - ldrb r3, [r0, 0x1] - ldrb r0, [r0] - str r0, [sp] - movs r0, 0x8 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x15 - movs r2, 0x2 - bl InitMenu - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813B16C: .4byte gPCText_Mailbox -_0813B170: .4byte 0x0201fe00 - thumb_func_end sub_813B108 - - thumb_func_start sub_813B174 -sub_813B174: @ 813B174 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r4, r5, 0 - ldr r0, _0813B1AC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r3, 0x80 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - bne _0813B274 - ldr r2, _0813B1B0 @ =gMain - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0813B1CA - ldr r4, _0813B1B4 @ =0x0201fe00 - ldrb r0, [r4] - cmp r0, 0 - beq _0813B1B8 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - b _0813B1E6 - .align 2, 0 -_0813B1AC: .4byte gPaletteFade -_0813B1B0: .4byte gMain -_0813B1B4: .4byte 0x0201fe00 -_0813B1B8: - ldrb r0, [r4, 0x2] - cmp r0, 0 - beq _0813B274 - movs r0, 0x5 - bl PlaySE - ldrb r0, [r4, 0x2] - subs r0, 0x1 - b _0813B208 -_0813B1CA: - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _0813B212 - ldr r4, _0813B1F0 @ =0x0201fe00 - ldrb r1, [r4] - ldrb r0, [r4, 0x1] - subs r0, 0x1 - cmp r1, r0 - beq _0813B1F4 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 -_0813B1E6: - bl MoveMenuCursor - strb r0, [r4] - b _0813B274 - .align 2, 0 -_0813B1F0: .4byte 0x0201fe00 -_0813B1F4: - ldrb r0, [r4, 0x2] - adds r0, r1 - ldrb r1, [r4, 0x3] - cmp r0, r1 - beq _0813B274 - movs r0, 0x5 - bl PlaySE - ldrb r0, [r4, 0x2] - adds r0, 0x1 -_0813B208: - strb r0, [r4, 0x2] - adds r0, r5, 0 - bl sub_813B01C - b _0813B274 -_0813B212: - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0813B25C - bl sub_8072DEC - movs r0, 0x5 - bl PlaySE - ldr r0, _0813B23C @ =0x0201fe00 - ldrb r1, [r0, 0x2] - ldrb r2, [r0] - adds r1, r2 - ldrb r0, [r0, 0x3] - cmp r1, r0 - bne _0813B240 - adds r0, r5, 0 - bl sub_813B320 - b _0813B274 - .align 2, 0 -_0813B23C: .4byte 0x0201fe00 -_0813B240: - bl sub_813B27C - ldr r0, _0813B254 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _0813B258 @ =sub_813B294 - str r0, [r1] - b _0813B274 - .align 2, 0 -_0813B254: .4byte gTasks -_0813B258: .4byte sub_813B294 -_0813B25C: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0813B274 - bl sub_8072DEC - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_813B320 -_0813B274: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_813B174 - - thumb_func_start sub_813B27C -sub_813B27C: @ 813B27C - push {lr} - bl BuyMenuFreeMemory - movs r0, 0 - bl DestroyVerticalScrollIndicator - movs r0, 0x1 - bl DestroyVerticalScrollIndicator - pop {r0} - bx r0 - thumb_func_end sub_813B27C - - thumb_func_start sub_813B294 -sub_813B294: @ 813B294 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r4, _0813B2E8 @ =gStringVar1 - ldr r1, _0813B2EC @ =0x0201fe00 - ldrb r0, [r1] - adds r0, 0x6 - ldrb r1, [r1, 0x2] - adds r0, r1 - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, _0813B2F0 @ =gSaveBlock1 + 0x2B5E - adds r1, r0 - adds r0, r4, 0 - bl StringCopy - adds r0, r4, 0 - bl SanitizeNameString - ldr r4, _0813B2F4 @ =gStringVar4 - ldr r1, _0813B2F8 @ =gOtherText_WhatWillYouDoMail - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, _0813B2FC @ =sub_813B348 - adds r0, r5, 0 - adds r1, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0813B2E8: .4byte gStringVar1 -_0813B2EC: .4byte 0x0201fe00 -_0813B2F0: .4byte gSaveBlock1 + 0x2B5E -_0813B2F4: .4byte gStringVar4 -_0813B2F8: .4byte gOtherText_WhatWillYouDoMail -_0813B2FC: .4byte sub_813B348 - thumb_func_end sub_813B294 - - thumb_func_start sub_813B300 -sub_813B300: @ 813B300 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - adds r0, r4, 0 - bl ReshowPlayerPC - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_813B300 - - thumb_func_start sub_813B320 -sub_813B320: @ 813B320 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_813B27C - ldr r1, _0813B340 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0813B344 @ =sub_813B300 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813B340: .4byte gTasks -_0813B344: .4byte sub_813B300 - thumb_func_end sub_813B320 - - thumb_func_start sub_813B348 -sub_813B348: @ 813B348 - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0 - movs r2, 0xC - movs r3, 0x9 - bl MenuDrawTextWindow - ldr r3, _0813B394 @ =gUnknown_084062F8 - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0x4 - bl PrintMenuItems - movs r0, 0 - str r0, [sp] - movs r0, 0xB - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0x4 - bl InitMenu - ldr r1, _0813B398 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0813B39C @ =sub_813B3A0 - str r1, [r0] - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813B394: .4byte gUnknown_084062F8 -_0813B398: .4byte gTasks -_0813B39C: .4byte sub_813B3A0 - thumb_func_end sub_813B348 - - thumb_func_start sub_813B3A0 -sub_813B3A0: @ 813B3A0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r4, r5, 0 - ldr r2, _0813B3C4 @ =gMain - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0813B3C8 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - bl MoveMenuCursor - b _0813B420 - .align 2, 0 -_0813B3C4: .4byte gMain -_0813B3C8: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0813B3DE - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl MoveMenuCursor - b _0813B420 -_0813B3DE: - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0813B40C - movs r0, 0x5 - bl PlaySE - ldr r4, _0813B408 @ =gUnknown_084062F8 - bl GetMenuCursorPos - lsls r0, 24 - lsrs r0, 21 - adds r4, 0x4 - adds r0, r4 - ldr r1, [r0] - adds r0, r5, 0 - bl _call_via_r1 - b _0813B420 - .align 2, 0 -_0813B408: .4byte gUnknown_084062F8 -_0813B40C: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0813B420 - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl Mailbox_Cancel -_0813B420: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_813B3A0 - - thumb_func_start Mailbox_Read -Mailbox_Read: @ 813B428 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - movs r1, 0 - bl fade_screen - ldr r1, _0813B44C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0813B450 @ =sub_813B454 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813B44C: .4byte gTasks -_0813B450: .4byte sub_813B454 - thumb_func_end Mailbox_Read - - thumb_func_start sub_813B454 -sub_813B454: @ 813B454 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0813B490 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0813B488 - ldr r0, _0813B494 @ =0x0201fe00 - ldrb r1, [r0] - adds r1, 0x6 - ldrb r0, [r0, 0x2] - adds r1, r0 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _0813B498 @ =gSaveBlock1 + 0x2B4C - adds r0, r1 - ldr r1, _0813B49C @ =sub_813B4F0 - movs r2, 0x1 - bl HandleReadMail - adds r0, r4, 0 - bl DestroyTask -_0813B488: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813B490: .4byte gPaletteFade -_0813B494: .4byte 0x0201fe00 -_0813B498: .4byte gSaveBlock1 + 0x2B4C -_0813B49C: .4byte sub_813B4F0 - thumb_func_end sub_813B454 - - thumb_func_start sub_813B4A0 -sub_813B4A0: @ 813B4A0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_807D770 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0813B4C0 - ldr r0, _0813B4C8 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _0813B4CC @ =sub_813B174 - str r0, [r1] -_0813B4C0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813B4C8: .4byte gTasks -_0813B4CC: .4byte sub_813B174 - thumb_func_end sub_813B4A0 - - thumb_func_start sub_813B4D0 -sub_813B4D0: @ 813B4D0 - push {lr} - ldr r0, _0813B4EC @ =sub_813B4A0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - bl sub_813B108 - bl pal_fill_black - pop {r0} - bx r0 - .align 2, 0 -_0813B4EC: .4byte sub_813B4A0 - thumb_func_end sub_813B4D0 - - thumb_func_start sub_813B4F0 -sub_813B4F0: @ 813B4F0 - push {lr} - ldr r0, _0813B504 @ =gUnknown_0300485C - ldr r1, _0813B508 @ =sub_813B4D0 - str r1, [r0] - ldr r0, _0813B50C @ =c2_exit_to_overworld_2_switch - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_0813B504: .4byte gUnknown_0300485C -_0813B508: .4byte sub_813B4D0 -_0813B50C: .4byte c2_exit_to_overworld_2_switch - thumb_func_end sub_813B4F0 - - thumb_func_start Mailbox_MoveToBag -Mailbox_MoveToBag: @ 813B510 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8072DEC - ldr r0, _0813B540 @ =gStringVar1 - ldr r1, _0813B544 @ =gOtherText_MoveToBag - bl StringCopy - ldr r0, _0813B548 @ =gUnknown_0840633A - movs r1, 0x1 - movs r2, 0x3 - bl MenuPrint - ldr r1, _0813B54C @ =gOtherText_MessageWillBeLost - ldr r2, _0813B550 @ =sub_813B554 - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813B540: .4byte gStringVar1 -_0813B544: .4byte gOtherText_MoveToBag -_0813B548: .4byte gUnknown_0840633A -_0813B54C: .4byte gOtherText_MessageWillBeLost -_0813B550: .4byte sub_813B554 - thumb_func_end Mailbox_MoveToBag - - thumb_func_start sub_813B554 -sub_813B554: @ 813B554 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x14 - movs r1, 0x8 - movs r2, 0x1 - bl DisplayYesNoMenu - ldr r1, _0813B574 @ =gUnknown_084062E8 - adds r0, r4, 0 - bl sub_80F914C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813B574: .4byte gUnknown_084062E8 - thumb_func_end sub_813B554 - - thumb_func_start sub_813B578 -sub_813B578: @ 813B578 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _0813B5BC @ =0x0201fe00 - ldrb r0, [r4] - adds r0, 0x6 - ldrb r1, [r4, 0x2] - adds r0, r1 - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, _0813B5C0 @ =gSaveBlock1 + 0x2B4C - adds r6, r1, r0 - movs r0, 0x14 - movs r1, 0x8 - movs r2, 0x1A - movs r3, 0xD - bl MenuZeroFillWindowRect - ldrh r0, [r6, 0x20] - movs r1, 0x1 - bl AddBagItem - lsls r0, 24 - cmp r0, 0 - bne _0813B5CC - ldr r1, _0813B5C4 @ =gOtherText_BagIsFull - ldr r2, _0813B5C8 @ =sub_813B758 - adds r0, r5, 0 - movs r3, 0 - bl DisplayItemMessageOnField - b _0813B602 - .align 2, 0 -_0813B5BC: .4byte 0x0201fe00 -_0813B5C0: .4byte gSaveBlock1 + 0x2B4C -_0813B5C4: .4byte gOtherText_BagIsFull -_0813B5C8: .4byte sub_813B758 -_0813B5CC: - ldr r1, _0813B608 @ =gOtherText_MailWasReturned - ldr r2, _0813B60C @ =sub_813B758 - adds r0, r5, 0 - movs r3, 0 - bl DisplayItemMessageOnField - adds r0, r6, 0 - bl ClearMailStruct - bl sub_813AF78 - ldrb r0, [r4, 0x3] - subs r0, 0x1 - strb r0, [r4, 0x3] - ldrb r1, [r4, 0x3] - ldrb r0, [r4, 0x1] - ldrb r2, [r4, 0x2] - adds r0, r2 - cmp r1, r0 - bge _0813B5FC - cmp r2, 0 - beq _0813B5FC - subs r0, r2, 0x1 - strb r0, [r4, 0x2] -_0813B5FC: - adds r0, r5, 0 - bl sub_813A240 -_0813B602: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813B608: .4byte gOtherText_MailWasReturned -_0813B60C: .4byte sub_813B758 - thumb_func_end sub_813B578 - - thumb_func_start sub_813B610 -sub_813B610: @ 813B610 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x14 - movs r1, 0x8 - movs r2, 0x1A - movs r3, 0xD - bl MenuZeroFillWindowRect - adds r0, r4, 0 - bl sub_813B758 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_813B610 - - thumb_func_start Mailbox_Give -Mailbox_Give: @ 813B630 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl CalculatePlayerPartyCount - lsls r0, 24 - cmp r0, 0 - bne _0813B648 - adds r0, r4, 0 - bl sub_813B718 - b _0813B65E -_0813B648: - movs r0, 0x1 - movs r1, 0 - bl fade_screen - ldr r0, _0813B664 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _0813B668 @ =sub_813B66C - str r0, [r1] -_0813B65E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813B664: .4byte gTasks -_0813B668: .4byte sub_813B66C - thumb_func_end Mailbox_Give - - thumb_func_start sub_813B66C -sub_813B66C: @ 813B66C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0813B698 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0813B690 - ldr r0, _0813B69C @ =sub_808B020 - bl SetMainCallback2 - ldr r1, _0813B6A0 @ =gUnknown_02038561 - movs r0, 0x3 - strb r0, [r1] - adds r0, r4, 0 - bl DestroyTask -_0813B690: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813B698: .4byte gPaletteFade -_0813B69C: .4byte sub_808B020 -_0813B6A0: .4byte gUnknown_02038561 - thumb_func_end sub_813B66C - - thumb_func_start sub_813B6A4 -sub_813B6A4: @ 813B6A4 - push {r4-r6,lr} - ldr r0, _0813B6F0 @ =sub_813B4A0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r6, r0, 24 - ldr r5, _0813B6F4 @ =0x0201fe00 - ldrb r4, [r5, 0x3] - bl sub_813AF3C - strb r0, [r5, 0x3] - bl sub_813AF78 - ldrb r0, [r5, 0x3] - cmp r4, r0 - beq _0813B6DA - ldrb r1, [r5, 0x3] - ldrb r0, [r5, 0x1] - ldrb r2, [r5, 0x2] - adds r0, r2 - cmp r1, r0 - bge _0813B6DA - cmp r2, 0 - beq _0813B6DA - subs r0, r2, 0x1 - strb r0, [r5, 0x2] -_0813B6DA: - adds r0, r6, 0 - bl sub_813A240 - adds r0, r6, 0 - bl sub_813B108 - bl pal_fill_black - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813B6F0: .4byte sub_813B4A0 -_0813B6F4: .4byte 0x0201fe00 - thumb_func_end sub_813B6A4 - - thumb_func_start sub_813B6F8 -sub_813B6F8: @ 813B6F8 - push {lr} - ldr r0, _0813B70C @ =gUnknown_0300485C - ldr r1, _0813B710 @ =sub_813B6A4 - str r1, [r0] - ldr r0, _0813B714 @ =c2_exit_to_overworld_2_switch - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_0813B70C: .4byte gUnknown_0300485C -_0813B710: .4byte sub_813B6A4 -_0813B714: .4byte c2_exit_to_overworld_2_switch - thumb_func_end sub_813B6F8 - - thumb_func_start sub_813B718 -sub_813B718: @ 813B718 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0813B72C @ =gOtherText_NoPokemon - ldr r2, _0813B730 @ =sub_813B758 - movs r3, 0 - bl DisplayItemMessageOnField - pop {r0} - bx r0 - .align 2, 0 -_0813B72C: .4byte gOtherText_NoPokemon -_0813B730: .4byte sub_813B758 - thumb_func_end sub_813B718 - - thumb_func_start Mailbox_Cancel -Mailbox_Cancel: @ 813B734 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8072DEC - movs r0, 0 - movs r1, 0 - movs r2, 0xC - movs r3, 0x9 - bl MenuZeroFillWindowRect - adds r0, r4, 0 - bl sub_813B758 - pop {r4} - pop {r0} - bx r0 - thumb_func_end Mailbox_Cancel - - thumb_func_start sub_813B758 -sub_813B758: @ 813B758 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_813B108 - ldr r1, _0813B77C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0813B780 @ =sub_813B174 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813B77C: .4byte gTasks -_0813B780: .4byte sub_813B174 - thumb_func_end sub_813B758 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/pokeball.s b/asm/pokeball.s deleted file mode 100644 index 9abeed00d..000000000 --- a/asm/pokeball.s +++ /dev/null @@ -1,2787 +0,0 @@ - .include "constants/gba_constants.inc" - .include "constants/species_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_8046400 -sub_8046400: @ 8046400 - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 24 - lsrs r5, 24 - ldr r1, _08046450 @ =gUnknown_02024E6D - movs r0, 0x1 - strb r0, [r1] - ldr r6, _08046454 @ =gUnknown_02024A60 - ldrb r1, [r6] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _08046458 @ =0x02017810 - adds r0, r1 - ldrb r1, [r0] - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0] - ldr r0, _0804645C @ =sub_8046464 - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08046460 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0xA] - strh r5, [r1, 0xC] - ldrb r0, [r6] - strh r0, [r1, 0xE] - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08046450: .4byte gUnknown_02024E6D -_08046454: .4byte gUnknown_02024A60 -_08046458: .4byte 0x02017810 -_0804645C: .4byte sub_8046464 -_08046460: .4byte gTasks - thumb_func_end sub_8046400 - - thumb_func_start sub_8046464 -sub_8046464: @ 8046464 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - movs r0, 0 - str r0, [sp] - ldr r1, _08046498 @ =gTasks - mov r2, r10 - lsls r0, r2, 2 - add r0, r10 - lsls r0, 3 - adds r1, r0, r1 - ldrh r2, [r1, 0x8] - movs r3, 0x8 - ldrsh r0, [r1, r3] - cmp r0, 0 - bne _0804649C - adds r0, r2, 0x1 - strh r0, [r1, 0x8] - b _08046616 - .align 2, 0 -_08046498: .4byte gTasks -_0804649C: - ldrh r0, [r1, 0xC] - mov r8, r0 - ldrb r5, [r1, 0xE] - adds r0, r5, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080464C8 - ldr r1, _080464C0 @ =gUnknown_02024A6A - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080464C4 @ =gEnemyParty - b _080464D6 - .align 2, 0 -_080464C0: .4byte gUnknown_02024A6A -_080464C4: .4byte gEnemyParty -_080464C8: - ldr r1, _08046544 @ =gUnknown_02024A6A - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08046548 @ =gPlayerParty -_080464D6: - adds r0, r1 - movs r1, 0x26 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - bl ball_number_to_ball_processing_index - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_80478DC - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 3 - ldr r1, _0804654C @ =gSpriteTemplate_820AAB4 - adds r0, r1 - movs r1, 0x20 - movs r2, 0x50 - movs r3, 0x1D - bl CreateSprite - lsls r0, 24 - lsrs r7, r0, 24 - ldr r2, _08046550 @ =gSprites - mov r9, r2 - lsls r0, r7, 4 - adds r0, r7 - lsls r6, r0, 2 - adds r4, r6, r2 - movs r0, 0x80 - strh r0, [r4, 0x2E] - movs r3, 0 - strh r3, [r4, 0x30] - mov r0, r8 - strh r0, [r4, 0x3C] - mov r2, r8 - cmp r2, 0xFE - beq _0804655C - cmp r2, 0xFF - bne _08046598 - ldr r0, _08046554 @ =gEnemyMonIndex - strb r5, [r0] - movs r0, 0x18 - strh r0, [r4, 0x20] - movs r0, 0x44 - strh r0, [r4, 0x22] - mov r0, r9 - adds r0, 0x1C - adds r0, r6, r0 - ldr r1, _08046558 @ =sub_8047074 - str r1, [r0] - b _080465A6 - .align 2, 0 -_08046544: .4byte gUnknown_02024A6A -_08046548: .4byte gPlayerParty -_0804654C: .4byte gSpriteTemplate_820AAB4 -_08046550: .4byte gSprites -_08046554: .4byte gEnemyMonIndex -_08046558: .4byte sub_8047074 -_0804655C: - adds r0, r5, 0 - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x18 - strh r0, [r4, 0x22] - ldr r0, _08046590 @ =gEnemyMonIndex - strb r5, [r0] - movs r3, 0 - strh r3, [r4, 0x2E] - mov r0, r9 - adds r0, 0x1C - adds r0, r6, r0 - ldr r1, _08046594 @ =sub_8047254 - str r1, [r0] - b _080465A6 - .align 2, 0 -_08046590: .4byte gEnemyMonIndex -_08046594: .4byte sub_8047254 -_08046598: - movs r0, 0x1 - bl battle_get_side_with_given_state - ldr r1, _080465C4 @ =gEnemyMonIndex - strb r0, [r1] - movs r0, 0x1 - str r0, [sp] -_080465A6: - ldr r0, _080465C8 @ =gSprites - lsls r1, r7, 4 - adds r1, r7 - lsls r1, 2 - adds r4, r1, r0 - ldr r5, _080465C4 @ =gEnemyMonIndex - ldrb r0, [r5] - strh r0, [r4, 0x3A] - ldr r2, [sp] - cmp r2, 0 - bne _080465CC - mov r0, r10 - bl DestroyTask - b _08046616 - .align 2, 0 -_080465C4: .4byte gEnemyMonIndex -_080465C8: .4byte gSprites -_080465CC: - movs r0, 0x22 - strh r0, [r4, 0x2E] - ldrb r0, [r5] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x10 - strh r0, [r4, 0x36] - ldr r0, _08046628 @ =0x0000ffd8 - strh r0, [r4, 0x38] - adds r0, r4, 0 - bl sub_80786EC - mov r3, r10 - strh r3, [r4, 0x6] - ldr r1, _0804662C @ =gTasks - mov r2, r10 - lsls r0, r2, 2 - add r0, r10 - lsls r0, 3 - adds r0, r1 - ldrb r1, [r5] - strh r1, [r0, 0x10] - ldr r1, _08046630 @ =TaskDummy - str r1, [r0] - movs r0, 0x3D - bl PlaySE -_08046616: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08046628: .4byte 0x0000ffd8 -_0804662C: .4byte gTasks -_08046630: .4byte TaskDummy - thumb_func_end sub_8046464 - - thumb_func_start objc_0804ABD4 -objc_0804ABD4: @ 8046634 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r7, r0, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080466D4 - ldrb r6, [r7, 0x6] - ldr r1, _080466E0 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldrb r5, [r0, 0x10] - ldrb r0, [r0, 0xC] - mov r8, r0 - adds r0, r7, 0 - movs r1, 0x1 - bl StartSpriteAnim - adds r2, r7, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r7, 0x24] - ldrh r1, [r7, 0x20] - adds r0, r1 - movs r1, 0 - strh r0, [r7, 0x20] - ldrh r0, [r7, 0x26] - ldrh r2, [r7, 0x22] - adds r0, r2 - strh r0, [r7, 0x22] - strh r1, [r7, 0x24] - strh r1, [r7, 0x26] - strh r1, [r7, 0x38] - adds r0, r5, 0 - bl sub_8047978 - lsls r0, 16 - lsrs r0, 16 - bl ball_number_to_ball_processing_index - adds r4, r0, 0 - ldrh r0, [r7, 0x20] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r7, 0x22] - subs r1, 0x5 - lsls r1, 24 - lsrs r1, 24 - lsls r4, 24 - lsrs r4, 24 - str r4, [sp] - movs r2, 0x1 - movs r3, 0x1C - bl sub_814086C - movs r0, 0 - adds r1, r5, 0 - movs r2, 0xE - adds r3, r4, 0 - bl sub_8141314 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r7, 0x2E] - strh r5, [r7, 0x3A] - mov r0, r8 - strh r0, [r7, 0x3C] - adds r0, r6, 0 - bl DestroyTask - ldr r0, _080466E4 @ =sub_80466E8 - str r0, [r7, 0x1C] -_080466D4: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080466E0: .4byte gTasks -_080466E4: .4byte sub_80466E8 - thumb_func_end objc_0804ABD4 - - thumb_func_start sub_80466E8 -sub_80466E8: @ 80466E8 - ldr r1, _080466F0 @ =sub_80466F4 - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080466F0: .4byte sub_80466F4 - thumb_func_end sub_80466E8 - - thumb_func_start sub_80466F4 -sub_80466F4: @ 80466F4 - push {r4-r7,lr} - adds r6, r0, 0 - ldrh r0, [r6, 0x38] - adds r0, 0x1 - movs r7, 0 - strh r0, [r6, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - bne _0804674E - strh r7, [r6, 0x38] - ldr r0, _08046754 @ =sub_8046760 - str r0, [r6, 0x1C] - ldr r5, _08046758 @ =gUnknown_02024BE0 - movs r1, 0x3A - ldrsh r0, [r6, r1] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _0804675C @ =gSprites - adds r0, r4 - movs r1, 0x2 - bl StartSpriteAffineAnim - movs r1, 0x3A - ldrsh r0, [r6, r1] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl AnimateSprite - movs r1, 0x3A - ldrsh r0, [r6, r1] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r7, [r0, 0x30] -_0804674E: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08046754: .4byte sub_8046760 -_08046758: .4byte gUnknown_02024BE0 -_0804675C: .4byte gSprites - thumb_func_end sub_80466F4 - - thumb_func_start sub_8046760 -sub_8046760: @ 8046760 - push {r4-r6,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB - bne _08046778 - movs r0, 0x3C - bl PlaySE -_08046778: - ldr r6, _080467C4 @ =gSprites - ldr r5, _080467C8 @ =gUnknown_02024BE0 - movs r1, 0x3A - ldrsh r0, [r4, r1] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r6 - adds r0, r1, 0 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 26 - cmp r0, 0 - bge _080467D0 - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAnim - movs r2, 0x3A - ldrsh r0, [r4, r2] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - movs r0, 0 - strh r0, [r4, 0x38] - ldr r0, _080467CC @ =sub_80467F8 - str r0, [r4, 0x1C] - b _080467F0 - .align 2, 0 -_080467C4: .4byte gSprites -_080467C8: .4byte gUnknown_02024BE0 -_080467CC: .4byte sub_80467F8 -_080467D0: - ldrh r0, [r1, 0x30] - adds r0, 0x60 - strh r0, [r1, 0x30] - movs r1, 0x3A - ldrsh r0, [r4, r1] - adds r0, r5 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - movs r2, 0x30 - ldrsh r0, [r1, r2] - negs r0, r0 - asrs r0, 8 - strh r0, [r1, 0x26] -_080467F0: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8046760 - - thumb_func_start sub_80467F8 -sub_80467F8: @ 80467F8 - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08046840 - ldrh r0, [r4, 0x38] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _08046840 - strh r1, [r4, 0x34] - movs r0, 0x20 - strh r0, [r4, 0x36] - strh r1, [r4, 0x38] - movs r0, 0 - movs r1, 0x20 - bl Cos - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - movs r0, 0x36 - ldrsh r1, [r4, r0] - movs r0, 0 - bl Cos - negs r0, r0 - strh r0, [r4, 0x26] - ldr r0, _08046848 @ =sub_804684C - str r0, [r4, 0x1C] -_08046840: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08046848: .4byte sub_804684C - thumb_func_end sub_80467F8 - - thumb_func_start sub_804684C -sub_804684C: @ 804684C - push {r4,r5,lr} - adds r4, r0, 0 - movs r5, 0 - ldrh r0, [r4, 0x34] - movs r1, 0xFF - ands r1, r0 - cmp r1, 0 - beq _08046862 - cmp r1, 0x1 - beq _080468D6 - b _08046902 -_08046862: - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r2, 0x36 - ldrsh r1, [r4, r2] - bl Cos - negs r0, r0 - strh r0, [r4, 0x26] - ldrh r1, [r4, 0x38] - adds r1, 0x4 - ldrh r2, [r4, 0x34] - lsls r0, r2, 16 - asrs r0, 24 - adds r1, r0 - strh r1, [r4, 0x38] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x3F - ble _08046902 - ldrh r0, [r4, 0x36] - subs r0, 0xA - strh r0, [r4, 0x36] - ldr r1, _080468AC @ =0x00000101 - adds r0, r2, r1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 24 - cmp r0, 0x4 - bne _0804689E - movs r5, 0x1 -_0804689E: - cmp r0, 0x2 - beq _080468BE - cmp r0, 0x2 - bgt _080468B0 - cmp r0, 0x1 - beq _080468B6 - b _080468CE - .align 2, 0 -_080468AC: .4byte 0x00000101 -_080468B0: - cmp r0, 0x3 - beq _080468C6 - b _080468CE -_080468B6: - movs r0, 0x38 - bl PlaySE - b _08046902 -_080468BE: - movs r0, 0x39 - bl PlaySE - b _08046902 -_080468C6: - movs r0, 0x3A - bl PlaySE - b _08046902 -_080468CE: - movs r0, 0x3B - bl PlaySE - b _08046902 -_080468D6: - movs r2, 0x38 - ldrsh r0, [r4, r2] - movs r2, 0x36 - ldrsh r1, [r4, r2] - bl Cos - negs r0, r0 - strh r0, [r4, 0x26] - ldrh r1, [r4, 0x38] - subs r1, 0x4 - ldrh r2, [r4, 0x34] - lsls r0, r2, 16 - asrs r0, 24 - subs r1, r0 - strh r1, [r4, 0x38] - lsls r1, 16 - cmp r1, 0 - bgt _08046902 - strh r5, [r4, 0x38] - ldr r0, _08046928 @ =0xffffff00 - ands r0, r2 - strh r0, [r4, 0x34] -_08046902: - cmp r5, 0 - beq _0804693A - movs r5, 0 - strh r5, [r4, 0x34] - movs r0, 0x40 - movs r1, 0x20 - bl Cos - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - strh r5, [r4, 0x26] - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _08046930 - ldr r0, _0804692C @ =sub_8046C78 - str r0, [r4, 0x1C] - b _0804693A - .align 2, 0 -_08046928: .4byte 0xffffff00 -_0804692C: .4byte sub_8046C78 -_08046930: - ldr r0, _08046940 @ =sub_8046944 - str r0, [r4, 0x1C] - movs r0, 0x1 - strh r0, [r4, 0x36] - strh r5, [r4, 0x38] -_0804693A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08046940: .4byte sub_8046944 - thumb_func_end sub_804684C - - thumb_func_start sub_8046944 -sub_8046944: @ 8046944 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1F - bne _08046978 - movs r0, 0 - strh r0, [r4, 0x34] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldr r0, _08046980 @ =sub_8046984 - str r0, [r4, 0x1C] - movs r0, 0x17 - bl PlaySE -_08046978: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08046980: .4byte sub_8046984 - thumb_func_end sub_8046944 - - thumb_func_start sub_8046984 -sub_8046984: @ 8046984 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x34] - movs r1, 0xFF - ands r1, r0 - cmp r1, 0x4 - bhi _08046A84 - lsls r0, r1, 2 - ldr r1, _0804699C @ =_080469A0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0804699C: .4byte _080469A0 - .align 2, 0 -_080469A0: - .4byte _080469B4 - .4byte _080469E6 - .4byte _080469B4 - .4byte _08046A3A - .4byte _08046A84 -_080469B4: - ldrh r0, [r4, 0x36] - ldrh r2, [r4, 0x24] - adds r1, r0, r2 - strh r1, [r4, 0x24] - ldrh r1, [r4, 0x38] - adds r0, r1 - strh r0, [r4, 0x38] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x38] - adds r0, 0x3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x6 - bls _08046ACA - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - movs r0, 0 - strh r0, [r4, 0x38] - b _08046ACA -_080469E6: - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _08046A2C - movs r0, 0 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x36] - negs r0, r0 - strh r0, [r4, 0x36] - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - movs r2, 0x36 - ldrsh r0, [r4, r2] - cmp r0, 0 - bge _08046A22 - adds r0, r4, 0 - movs r1, 0x2 - bl ChangeSpriteAffineAnim - b _08046ACA -_08046A22: - adds r0, r4, 0 - movs r1, 0x1 - bl ChangeSpriteAffineAnim - b _08046ACA -_08046A2C: - adds r0, r4, 0 - adds r0, 0x2C - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] - b _08046ACA -_08046A3A: - movs r1, 0x80 - lsls r1, 1 - adds r0, r1, 0 - ldrh r2, [r4, 0x34] - adds r0, r2 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 24 - movs r2, 0x3C - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _08046A5C - ldr r0, _08046A58 @ =sub_8046C78 - str r0, [r4, 0x1C] - b _08046ACA - .align 2, 0 -_08046A58: .4byte sub_8046C78 -_08046A5C: - cmp r1, 0x4 - bne _08046A70 - cmp r0, 0x3 - bne _08046A70 - ldr r0, _08046A6C @ =sub_8046E7C - str r0, [r4, 0x1C] - b _08046A76 - .align 2, 0 -_08046A6C: .4byte sub_8046E7C -_08046A70: - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] -_08046A76: - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - b _08046ACA -_08046A84: - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1F - bne _08046ACA - movs r0, 0 - strh r0, [r4, 0x38] - ldrh r1, [r4, 0x34] - ldr r0, _08046AB8 @ =0xffffff00 - ands r0, r1 - strh r0, [r4, 0x34] - adds r0, r4, 0 - movs r1, 0x3 - bl StartSpriteAffineAnim - movs r1, 0x36 - ldrsh r0, [r4, r1] - cmp r0, 0 - bge _08046ABC - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAffineAnim - b _08046AC4 - .align 2, 0 -_08046AB8: .4byte 0xffffff00 -_08046ABC: - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim -_08046AC4: - movs r0, 0x17 - bl PlaySE -_08046ACA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8046984 - - thumb_func_start sub_8046AD0 -sub_8046AD0: @ 8046AD0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _08046AFC @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrb r6, [r0, 0xC] - ldrb r3, [r0, 0xA] - ldrh r5, [r0, 0x8] - movs r2, 0x26 - ldrsh r0, [r0, r2] - adds r2, r1, 0 - cmp r0, 0x20 - bhi _08046B88 - lsls r0, 2 - ldr r1, _08046B00 @ =_08046B04 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08046AFC: .4byte gTasks -_08046B00: .4byte _08046B04 - .align 2, 0 -_08046B04: - .4byte _08046B88 - .4byte _08046BA6 - .4byte _08046BB2 - .4byte _08046BF6 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046BD0 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046B88 - .4byte _08046C08 - .4byte _08046C20 - .4byte _08046C48 -_08046B88: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r2 - ldrh r2, [r1, 0x18] - movs r3, 0x18 - ldrsh r0, [r1, r3] - cmp r0, 0x2 - bgt _08046BA0 - adds r0, r2, 0x1 - strh r0, [r1, 0x18] - b _08046C72 -_08046BA0: - adds r0, r6, 0x1 - strh r0, [r1, 0x26] - b _08046C72 -_08046BA6: - lsls r1, r3, 24 - asrs r1, 24 - adds r0, r5, 0 - bl PlayCry1 - b _08046BEE -_08046BB2: - bl StopCryAndClearCrySongs - ldr r1, _08046BCC @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0x3 - strh r1, [r0, 0x1C] - movs r1, 0x14 - strh r1, [r0, 0x26] - b _08046C72 - .align 2, 0 -_08046BCC: .4byte gTasks -_08046BD0: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r2 - ldrh r2, [r1, 0x1C] - movs r6, 0x1C - ldrsh r0, [r1, r6] - cmp r0, 0 - bne _08046C5A - lsls r1, r3, 24 - asrs r1, 24 - adds r0, r5, 0 - movs r2, 0x1 - bl PlayCry4 -_08046BEE: - adds r0, r4, 0 - bl DestroyTask - b _08046C72 -_08046BF6: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r2 - movs r1, 0x6 - strh r1, [r0, 0x1C] - movs r1, 0x1E - strh r1, [r0, 0x26] - b _08046C72 -_08046C08: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r2 - ldrh r2, [r1, 0x1C] - movs r3, 0x1C - ldrsh r0, [r1, r3] - cmp r0, 0 - bne _08046C5A - ldrh r0, [r1, 0x26] - adds r0, 0x1 - strh r0, [r1, 0x26] -_08046C20: - bl IsCryPlayingOrClearCrySongs - lsls r0, 24 - cmp r0, 0 - bne _08046C72 - bl StopCryAndClearCrySongs - ldr r0, _08046C44 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x3 - strh r0, [r1, 0x1C] - ldrh r0, [r1, 0x26] - adds r0, 0x1 - strh r0, [r1, 0x26] - b _08046C72 - .align 2, 0 -_08046C44: .4byte gTasks -_08046C48: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r2 - ldrh r2, [r1, 0x1C] - movs r6, 0x1C - ldrsh r0, [r1, r6] - cmp r0, 0 - beq _08046C60 -_08046C5A: - subs r0, r2, 0x1 - strh r0, [r1, 0x1C] - b _08046C72 -_08046C60: - lsls r1, r3, 24 - asrs r1, 24 - adds r0, r5, 0 - movs r2, 0 - bl PlayCry4 - adds r0, r4, 0 - bl DestroyTask -_08046C72: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8046AD0 - - thumb_func_start sub_8046C78 -sub_8046C78: @ 8046C78 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r6, r0, 0 - ldrh r0, [r6, 0x3A] - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r6, 0 - movs r1, 0x1 - bl StartSpriteAnim - adds r0, r5, 0 - bl sub_8047978 - lsls r0, 16 - lsrs r0, 16 - bl ball_number_to_ball_processing_index - adds r4, r0, 0 - ldrh r0, [r6, 0x20] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x22] - subs r1, 0x5 - lsls r1, 24 - lsrs r1, 24 - lsls r4, 24 - lsrs r4, 24 - str r4, [sp] - movs r2, 0x1 - movs r3, 0x1C - bl sub_814086C - ldrh r1, [r6, 0x3A] - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x1 - movs r2, 0xE - adds r3, r4, 0 - bl sub_8141314 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x2E] - ldr r0, _08046D0C @ =sub_8046E9C - str r0, [r6, 0x1C] - ldr r0, _08046D10 @ =gMain - ldr r1, _08046D14 @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08046CE8 - b _08046E1C -_08046CE8: - adds r0, r5, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _08046D20 - ldr r1, _08046D18 @ =gUnknown_02024A6A - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _08046D1C @ =gEnemyParty - adds r0, r1, r0 - movs r3, 0x19 - mov r8, r3 - b _08046D34 - .align 2, 0 -_08046D0C: .4byte sub_8046E9C -_08046D10: .4byte gMain -_08046D14: .4byte 0x0000043d -_08046D18: .4byte gUnknown_02024A6A -_08046D1C: .4byte gEnemyParty -_08046D20: - ldr r1, _08046D90 @ =gUnknown_02024A6A - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _08046D94 @ =gPlayerParty - adds r0, r1, r0 - movs r1, 0xE7 - mov r8, r1 -_08046D34: - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r7, r0, 16 - movs r0, 0 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - beq _08046D5A - movs r0, 0x1 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - bne _08046DAE -_08046D5A: - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - beq _08046DAE - ldr r0, _08046D98 @ =0x02017840 - ldrb r1, [r0, 0x9] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08046DAE - ldr r0, _08046D9C @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08046DA4 - bl IsBGMPlaying - lsls r0, 24 - cmp r0, 0 - beq _08046DAE - ldr r0, _08046DA0 @ =gMPlay_BGM - bl m4aMPlayStop - b _08046DAE - .align 2, 0 -_08046D90: .4byte gUnknown_02024A6A -_08046D94: .4byte gPlayerParty -_08046D98: .4byte 0x02017840 -_08046D9C: .4byte gBattleTypeFlags -_08046DA0: .4byte gMPlay_BGM -_08046DA4: - ldr r0, _08046DC8 @ =gMPlay_BGM - ldr r1, _08046DCC @ =0x0000ffff - movs r2, 0x80 - bl m4aMPlayVolumeControl -_08046DAE: - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - beq _08046DC4 - ldr r0, _08046DD0 @ =0x02017840 - ldrb r1, [r0, 0x9] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08046DD4 -_08046DC4: - movs r4, 0 - b _08046DF6 - .align 2, 0 -_08046DC8: .4byte gMPlay_BGM -_08046DCC: .4byte 0x0000ffff -_08046DD0: .4byte 0x02017840 -_08046DD4: - movs r0, 0 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - beq _08046DF0 - movs r0, 0x1 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - bne _08046DF4 -_08046DF0: - movs r4, 0x1 - b _08046DF6 -_08046DF4: - movs r4, 0x2 -_08046DF6: - ldr r0, _08046E6C @ =sub_8046AD0 - movs r1, 0x3 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08046E70 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - strh r7, [r1, 0x8] - mov r3, r8 - lsls r0, r3, 24 - asrs r0, 24 - strh r0, [r1, 0xA] - strh r4, [r1, 0xC] - strh r2, [r1, 0x26] -_08046E1C: - ldr r5, _08046E74 @ =gUnknown_02024BE0 - movs r1, 0x3A - ldrsh r0, [r6, r1] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _08046E78 @ =gSprites - adds r0, r4 - movs r1, 0x1 - bl StartSpriteAffineAnim - movs r3, 0x3A - ldrsh r0, [r6, r3] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl AnimateSprite - movs r1, 0x3A - ldrsh r0, [r6, r1] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x80 - lsls r1, 5 - strh r1, [r0, 0x30] - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08046E6C: .4byte sub_8046AD0 -_08046E70: .4byte gTasks -_08046E74: .4byte gUnknown_02024BE0 -_08046E78: .4byte gSprites - thumb_func_end sub_8046C78 - - thumb_func_start sub_8046E7C -sub_8046E7C: @ 8046E7C - adds r3, r0, 0 - adds r3, 0x2C - ldrb r1, [r3] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r3] - ldr r1, _08046E98 @ =sub_8046FBC - str r1, [r0, 0x1C] - movs r1, 0 - strh r1, [r0, 0x34] - strh r1, [r0, 0x36] - strh r1, [r0, 0x38] - bx lr - .align 2, 0 -_08046E98: .4byte sub_8046FBC - thumb_func_end sub_8046E7C - - thumb_func_start sub_8046E9C -sub_8046E9C: @ 8046E9C - push {r4-r7,lr} - adds r5, r0, 0 - movs r7, 0 - ldrh r0, [r5, 0x3A] - lsls r0, 24 - lsrs r4, r0, 24 - ldr r6, _08046F00 @ =gSprites - ldr r0, _08046F04 @ =gUnknown_02024BE0 - adds r3, r4, r0 - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - adds r0, r5, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08046EDE - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_08046EDE: - ldrb r0, [r3] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - adds r0, r1, 0 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 26 - cmp r0, 0 - bge _08046F08 - adds r0, r1, 0 - movs r1, 0 - bl StartSpriteAffineAnim - movs r7, 0x1 - b _08046F24 - .align 2, 0 -_08046F00: .4byte gSprites -_08046F04: .4byte gUnknown_02024BE0 -_08046F08: - ldr r2, _08046FA8 @ =0xfffffee0 - adds r0, r2, 0 - ldrh r2, [r1, 0x30] - adds r0, r2 - strh r0, [r1, 0x30] - ldrb r0, [r3] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 24 - strh r0, [r1, 0x26] -_08046F24: - adds r0, r5, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08046FA0 - cmp r7, 0 - beq _08046FA0 - ldr r2, _08046FAC @ =gSprites - ldr r0, _08046FB0 @ =gUnknown_02024BE0 - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r2, 0 - movs r1, 0 - strh r1, [r0, 0x26] - ldr r0, _08046FB4 @ =gUnknown_02024E6D - strb r2, [r0] - lsls r1, r4, 1 - adds r1, r4 - lsls r1, 2 - ldr r4, _08046FB8 @ =0x02017810 - adds r1, r4 - ldrb r2, [r1] - movs r0, 0x9 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - adds r0, r5, 0 - bl FreeSpriteOamMatrix - adds r0, r5, 0 - bl DestroySprite - movs r3, 0 - movs r5, 0x8 - adds r2, r4, 0 - movs r4, 0x3 -_08046F78: - ldrb r1, [r2] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - bne _08046F84 - adds r3, 0x1 -_08046F84: - adds r2, 0xC - subs r4, 0x1 - cmp r4, 0 - bge _08046F78 - cmp r3, 0x4 - bne _08046FA0 - movs r4, 0 -_08046F92: - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_804794C - adds r4, 0x1 - cmp r4, 0xB - ble _08046F92 -_08046FA0: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08046FA8: .4byte 0xfffffee0 -_08046FAC: .4byte gSprites -_08046FB0: .4byte gUnknown_02024BE0 -_08046FB4: .4byte gUnknown_02024E6D -_08046FB8: .4byte 0x02017810 - thumb_func_end sub_8046E9C - - thumb_func_start sub_8046FBC -sub_8046FBC: @ 8046FBC - push {r4-r7,lr} - adds r6, r0, 0 - ldrh r0, [r6, 0x3A] - lsls r0, 24 - lsrs r7, r0, 24 - ldrh r0, [r6, 0x36] - adds r0, 0x1 - strh r0, [r6, 0x36] - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0x28 - beq _08047056 - cmp r1, 0x5F - bne _08046FF4 - ldr r0, _08046FEC @ =gUnknown_02024E6D - movs r1, 0 - strb r1, [r0] - bl m4aMPlayAllStop - ldr r0, _08046FF0 @ =0x00000173 - bl PlaySE - b _08047056 - .align 2, 0 -_08046FEC: .4byte gUnknown_02024E6D -_08046FF0: .4byte 0x00000173 -_08046FF4: - ldr r0, _0804705C @ =0x0000013b - cmp r1, r0 - bne _08047056 - ldr r5, _08047060 @ =gSprites - ldr r4, _08047064 @ =gUnknown_02024BE0 - movs r1, 0x3A - ldrsh r0, [r6, r1] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - movs r1, 0x3A - ldrsh r0, [r6, r1] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - bl DestroySprite - adds r0, r6, 0 - bl DestroySpriteAndFreeResources - ldr r0, _08047068 @ =gMain - ldr r1, _0804706C @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08047056 - lsls r1, r7, 1 - adds r1, r7 - lsls r1, 2 - ldr r0, _08047070 @ =0x02017810 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x9 - negs r0, r0 - ands r0, r2 - strb r0, [r1] -_08047056: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804705C: .4byte 0x0000013b -_08047060: .4byte gSprites -_08047064: .4byte gUnknown_02024BE0 -_08047068: .4byte gMain -_0804706C: .4byte 0x0000043d -_08047070: .4byte 0x02017810 - thumb_func_end sub_8046FBC - - thumb_func_start sub_8047074 -sub_8047074: @ 8047074 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x19 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x3A] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x3A] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x18 - strh r0, [r4, 0x36] - ldr r0, _080470BC @ =0x0000ffe2 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x3A] - strh r0, [r4, 0x6] - adds r0, r4, 0 - bl sub_80786EC - ldr r0, _080470C0 @ =sub_80470C4 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080470BC: .4byte 0x0000ffe2 -_080470C0: .4byte sub_80470C4 - thumb_func_end sub_8047074 - - thumb_func_start sub_80470C4 -sub_80470C4: @ 80470C4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - ldrh r0, [r5, 0x3C] - movs r1, 0xFF - mov r8, r1 - lsrs r0, 8 - subs r0, 0x23 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2C - bhi _080471B8 - ldrh r1, [r5, 0x6] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - bne _08047126 - ldrh r0, [r5, 0x30] - movs r1, 0x1 - adds r6, r1, 0 - ands r6, r0 - ldrh r0, [r5, 0x32] - adds r7, r1, 0 - ands r7, r0 - movs r2, 0x30 - ldrsh r0, [r5, r2] - movs r1, 0x3 - bl __divsi3 - movs r1, 0x2 - negs r1, r1 - adds r4, r1, 0 - ands r0, r4 - orrs r6, r0 - strh r6, [r5, 0x30] - movs r2, 0x32 - ldrsh r0, [r5, r2] - movs r1, 0x3 - bl __divsi3 - ands r0, r4 - orrs r7, r0 - strh r7, [r5, 0x32] - adds r0, r5, 0 - movs r1, 0x4 - bl StartSpriteAffineAnim -_08047126: - ldrh r4, [r5, 0x2E] - adds r0, r5, 0 - bl sub_8078B5C - movs r1, 0x3A - ldrsh r0, [r5, r1] - movs r1, 0x3 - bl __divsi3 - adds r1, r0, 0 - ldrh r0, [r5, 0x3C] - adds r0, r1 - strh r0, [r5, 0x3C] - lsls r0, 16 - asrs r0, 24 - mov r2, r8 - ands r0, r2 - movs r2, 0x38 - ldrsh r1, [r5, r2] - bl Sin - ldrh r1, [r5, 0x26] - adds r0, r1 - strh r0, [r5, 0x26] - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - ldrh r1, [r5, 0x6] - adds r0, r1 - strh r0, [r5, 0x6] - lsls r0, 16 - lsrs r0, 24 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - beq _08047176 - strh r4, [r5, 0x2E] - b _0804717E -_08047176: - lsls r0, r4, 16 - asrs r0, 16 - subs r0, 0x1 - strh r0, [r5, 0x2E] -_0804717E: - ldrh r0, [r5, 0x3C] - lsrs r0, 8 - cmp r0, 0x4F - ble _08047220 - ldrh r0, [r5, 0x30] - movs r1, 0x1 - adds r6, r1, 0 - ands r6, r0 - ldrh r0, [r5, 0x32] - adds r7, r1, 0 - ands r7, r0 - movs r2, 0x30 - ldrsh r1, [r5, r2] - lsls r0, r1, 1 - adds r0, r1 - movs r1, 0x2 - negs r1, r1 - adds r2, r1, 0 - ands r0, r2 - orrs r0, r6 - strh r0, [r5, 0x30] - movs r0, 0x32 - ldrsh r1, [r5, r0] - lsls r0, r1, 1 - adds r0, r1 - ands r0, r2 - orrs r0, r7 - strh r0, [r5, 0x32] - b _08047220 -_080471B8: - adds r0, r5, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _08047220 - ldrh r0, [r5, 0x24] - ldrh r1, [r5, 0x20] - adds r0, r1 - movs r1, 0 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x26] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - strh r1, [r5, 0x26] - strh r1, [r5, 0x24] - ldrb r0, [r5, 0x6] - strh r0, [r5, 0x3A] - strh r1, [r5, 0x2E] - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - beq _08047214 - ldr r0, _0804720C @ =0x02017840 - ldrb r1, [r0, 0x9] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08047214 - movs r0, 0x3A - ldrsh r4, [r5, r0] - movs r0, 0x2 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bne _08047214 - ldr r0, _08047210 @ =sub_8047230 - b _08047216 - .align 2, 0 -_0804720C: .4byte 0x02017840 -_08047210: .4byte sub_8047230 -_08047214: - ldr r0, _0804722C @ =sub_8046C78 -_08047216: - str r0, [r5, 0x1C] - adds r0, r5, 0 - movs r1, 0 - bl StartSpriteAffineAnim -_08047220: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804722C: .4byte sub_8046C78 - thumb_func_end sub_80470C4 - - thumb_func_start sub_8047230 -sub_8047230: @ 8047230 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - adds r1, r0, 0x1 - strh r1, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x18 - ble _0804724A - movs r0, 0 - strh r0, [r2, 0x2E] - ldr r0, _08047250 @ =sub_8046C78 - str r0, [r2, 0x1C] -_0804724A: - pop {r0} - bx r0 - .align 2, 0 -_08047250: .4byte sub_8046C78 - thumb_func_end sub_8047230 - - thumb_func_start sub_8047254 -sub_8047254: @ 8047254 - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - ble _080472A4 - movs r0, 0 - strh r0, [r5, 0x2E] - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - beq _080472A0 - ldr r0, _08047298 @ =0x02017840 - ldrb r1, [r0, 0x9] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080472A0 - movs r0, 0x3A - ldrsh r4, [r5, r0] - movs r0, 0x3 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bne _080472A0 - ldr r0, _0804729C @ =sub_8047230 - b _080472A2 - .align 2, 0 -_08047298: .4byte 0x02017840 -_0804729C: .4byte sub_8047230 -_080472A0: - ldr r0, _080472AC @ =sub_8046C78 -_080472A2: - str r0, [r5, 0x1C] -_080472A4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080472AC: .4byte sub_8046C78 - thumb_func_end sub_8047254 - - thumb_func_start sub_80472B0 -sub_80472B0: @ 80472B0 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - movs r4, 0 - str r4, [sp] - bl sub_814086C - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80472B0 - - thumb_func_start sub_80472D8 -sub_80472D8: @ 80472D8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - movs r3, 0 - bl sub_8141314 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_80472D8 - - thumb_func_start CreatePokeballSprite -CreatePokeballSprite: @ 80472F0 - 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, r2 - mov r10, r3 - ldr r6, [sp, 0x24] - ldr r4, [sp, 0x28] - ldr r0, [sp, 0x2C] - lsls r5, 24 - lsrs r5, 24 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp] - mov r1, r9 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - mov r2, r10 - lsls r2, 24 - lsrs r2, 24 - mov r10, r2 - lsls r6, 24 - lsrs r6, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _080473BC @ =gUnknown_0820A92C - bl LoadCompressedObjectPic - ldr r0, _080473C0 @ =gUnknown_0820A98C - bl LoadCompressedObjectPalette - ldr r0, _080473C4 @ =gSpriteTemplate_820AAB4 - mov r1, r9 - mov r2, r10 - adds r3, r4, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r3, _080473C8 @ =gSprites - mov r8, r3 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - adds r1, r4, r3 - strh r5, [r1, 0x2E] - lsls r2, r5, 4 - adds r2, r5 - lsls r2, 2 - add r2, r8 - ldrh r0, [r2, 0x20] - strh r0, [r1, 0x38] - ldrh r0, [r2, 0x22] - strh r0, [r1, 0x3A] - mov r0, r9 - strh r0, [r2, 0x20] - mov r3, r10 - strh r3, [r2, 0x22] - strh r7, [r1, 0x30] - mov r0, sp - ldrh r0, [r0] - strh r0, [r1, 0x32] - mov r3, sp - ldrh r3, [r3, 0x30] - strh r3, [r1, 0x34] - ldr r3, [sp, 0x30] - lsrs r0, r3, 16 - strh r0, [r1, 0x36] - movs r0, 0x3 - ands r6, r0 - lsls r6, 2 - ldrb r3, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r6 - strb r0, [r1, 0x5] - movs r0, 0x1C - add r8, r0 - add r4, r8 - ldr r0, _080473CC @ =sub_80473D0 - str r0, [r4] - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080473BC: .4byte gUnknown_0820A92C -_080473C0: .4byte gUnknown_0820A98C -_080473C4: .4byte gSpriteTemplate_820AAB4 -_080473C8: .4byte gSprites -_080473CC: .4byte sub_80473D0 - thumb_func_end CreatePokeballSprite - - thumb_func_start sub_80473D0 -sub_80473D0: @ 80473D0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - ldrh r1, [r6, 0x30] - movs r2, 0x30 - ldrsh r0, [r6, r2] - cmp r0, 0 - bne _0804747C - ldrh r0, [r6, 0x2E] - lsls r0, 24 - lsrs r7, r0, 24 - ldrh r0, [r6, 0x32] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldrh r4, [r6, 0x34] - ldrh r0, [r6, 0x36] - lsls r0, 16 - orrs r4, r0 - adds r0, r6, 0 - adds r0, 0x43 - ldrb r0, [r0] - cmp r0, 0 - beq _0804740A - subs r0, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - b _0804740C -_0804740A: - movs r5, 0 -_0804740C: - adds r0, r6, 0 - movs r1, 0x1 - bl StartSpriteAnim - ldrh r0, [r6, 0x20] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x22] - subs r1, 0x5 - lsls r1, 24 - lsrs r1, 24 - ldrb r2, [r6, 0x5] - lsls r2, 28 - lsrs r2, 30 - adds r3, r5, 0 - bl sub_80472B0 - movs r0, 0x1 - mov r1, r8 - adds r2, r4, 0 - bl sub_80472D8 - lsls r0, 24 - lsrs r0, 24 - movs r5, 0 - strh r0, [r6, 0x30] - ldr r0, _08047474 @ =sub_804748C - str r0, [r6, 0x1C] - ldr r0, _08047478 @ =gSprites - lsls r4, r7, 4 - adds r4, r7 - lsls r4, 2 - adds r4, r0 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - adds r0, r4, 0 - bl AnimateSprite - movs r0, 0x80 - lsls r0, 5 - strh r0, [r4, 0x30] - strh r5, [r6, 0x3C] - b _08047480 - .align 2, 0 -_08047474: .4byte sub_804748C -_08047478: .4byte gSprites -_0804747C: - subs r0, r1, 0x1 - strh r0, [r6, 0x30] -_08047480: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80473D0 - - thumb_func_start sub_804748C -sub_804748C: @ 804748C - push {r4-r7,lr} - adds r4, r0, 0 - movs r0, 0 - mov r12, r0 - movs r6, 0 - ldrh r0, [r4, 0x2E] - lsls r0, 24 - lsrs r3, r0, 24 - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080474B6 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_080474B6: - ldr r0, _08047544 @ =gSprites - lsls r1, r3, 4 - adds r1, r3 - lsls r1, 2 - adds r5, r1, r0 - adds r0, r5, 0 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 26 - cmp r0, 0 - bge _080474D8 - adds r0, r5, 0 - movs r1, 0 - bl StartSpriteAffineAnim - movs r1, 0x1 - mov r12, r1 -_080474D8: - movs r2, 0x38 - ldrsh r0, [r4, r2] - movs r7, 0x20 - ldrsh r1, [r4, r7] - subs r0, r1 - movs r1, 0x3C - ldrsh r2, [r4, r1] - muls r0, r2 - cmp r0, 0 - bge _080474EE - adds r0, 0x7F -_080474EE: - asrs r0, 7 - ldrh r7, [r4, 0x20] - adds r0, r7 - lsls r0, 16 - lsrs r3, r0, 16 - movs r1, 0x3A - ldrsh r0, [r4, r1] - movs r7, 0x22 - ldrsh r1, [r4, r7] - subs r0, r1 - muls r0, r2 - cmp r0, 0 - bge _0804750A - adds r0, 0x7F -_0804750A: - asrs r0, 7 - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r3, [r5, 0x20] - strh r0, [r5, 0x22] - ldrh r2, [r4, 0x3C] - movs r7, 0x3C - ldrsh r0, [r4, r7] - cmp r0, 0x7F - bgt _0804754C - ldr r1, _08047548 @ =gSineTable - lsls r0, r2, 24 - lsrs r0, 23 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bge _08047530 - adds r0, 0x7 -_08047530: - asrs r0, 3 - negs r0, r0 - lsls r0, 16 - lsrs r0, 16 - adds r1, r2, 0x4 - strh r1, [r4, 0x3C] - strh r0, [r5, 0x24] - strh r0, [r5, 0x26] - b _0804755A - .align 2, 0 -_08047544: .4byte gSprites -_08047548: .4byte gSineTable -_0804754C: - ldrh r0, [r4, 0x38] - strh r0, [r5, 0x20] - ldrh r0, [r4, 0x3A] - strh r0, [r5, 0x22] - strh r6, [r5, 0x24] - strh r6, [r5, 0x26] - movs r6, 0x1 -_0804755A: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08047578 - mov r2, r12 - cmp r2, 0 - beq _08047578 - cmp r6, 0 - beq _08047578 - adds r0, r4, 0 - bl DestroySpriteAndFreeResources -_08047578: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_804748C - - thumb_func_start sub_8047580 -sub_8047580: @ 8047580 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r10, r0 - adds r6, r2, 0 - mov r8, r3 - ldr r5, [sp, 0x20] - ldr r4, [sp, 0x24] - ldr r0, [sp, 0x28] - mov r9, r0 - mov r0, r10 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r6, 24 - lsrs r6, 24 - mov r1, r8 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r5, 24 - lsrs r5, 24 - lsls r4, 24 - lsrs r4, 24 - mov r0, r9 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r0, _08047624 @ =gUnknown_0820A92C - bl LoadCompressedObjectPic - ldr r0, _08047628 @ =gUnknown_0820A98C - bl LoadCompressedObjectPalette - ldr r0, _0804762C @ =gSpriteTemplate_820AAB4 - adds r1, r6, 0 - mov r2, r8 - adds r3, r4, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r6, _08047630 @ =gSprites - lsls r3, r0, 4 - adds r3, r0 - lsls r3, 2 - adds r2, r3, r6 - mov r1, r10 - strh r1, [r2, 0x2E] - mov r4, r9 - strh r4, [r2, 0x30] - strh r7, [r2, 0x32] - mov r1, sp - ldrh r1, [r1, 0x2C] - strh r1, [r2, 0x34] - ldr r4, [sp, 0x2C] - lsrs r1, r4, 16 - strh r1, [r2, 0x36] - movs r1, 0x3 - ands r5, r1 - lsls r5, 2 - ldrb r4, [r2, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r4 - orrs r1, r5 - strb r1, [r2, 0x5] - adds r6, 0x1C - adds r3, r6 - ldr r1, _08047634 @ =sub_8047638 - str r1, [r3] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08047624: .4byte gUnknown_0820A92C -_08047628: .4byte gUnknown_0820A98C -_0804762C: .4byte gSpriteTemplate_820AAB4 -_08047630: .4byte gSprites -_08047634: .4byte sub_8047638 - thumb_func_end sub_8047580 - - thumb_func_start sub_8047638 -sub_8047638: @ 8047638 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r0, 0 - ldrh r1, [r4, 0x30] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080476D0 - ldrh r0, [r4, 0x2E] - lsls r0, 24 - lsrs r7, r0, 24 - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldrh r5, [r4, 0x34] - ldrh r0, [r4, 0x36] - lsls r0, 16 - orrs r5, r0 - adds r0, r4, 0 - adds r0, 0x43 - ldrb r0, [r0] - cmp r0, 0 - beq _08047672 - subs r0, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - b _08047674 -_08047672: - movs r6, 0 -_08047674: - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - ldrh r0, [r4, 0x20] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x22] - subs r1, 0x5 - lsls r1, 24 - lsrs r1, 24 - ldrb r2, [r4, 0x5] - lsls r2, 28 - lsrs r2, 30 - adds r3, r6, 0 - bl sub_80472B0 - movs r0, 0x1 - mov r1, r8 - adds r2, r5, 0 - bl sub_80472D8 - lsls r0, 24 - lsrs r0, 24 - movs r5, 0 - strh r0, [r4, 0x30] - ldr r0, _080476C8 @ =sub_80476E0 - str r0, [r4, 0x1C] - lsls r4, r7, 4 - adds r4, r7 - lsls r4, 2 - ldr r0, _080476CC @ =gSprites - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAffineAnim - adds r0, r4, 0 - bl AnimateSprite - strh r5, [r4, 0x30] - b _080476D4 - .align 2, 0 -_080476C8: .4byte sub_80476E0 -_080476CC: .4byte gSprites -_080476D0: - subs r0, r1, 0x1 - strh r0, [r4, 0x30] -_080476D4: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8047638 - - thumb_func_start sub_80476E0 -sub_80476E0: @ 80476E0 - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x38] - adds r0, 0x1 - strh r0, [r5, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB - bne _080476F8 - movs r0, 0x3C - bl PlaySE -_080476F8: - ldrh r1, [r5, 0x2E] - lsls r1, 24 - lsrs r1, 24 - ldr r2, _08047734 @ =gSprites - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, r0, r2 - adds r0, r4, 0 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 26 - cmp r0, 0 - bge _0804773C - adds r0, r5, 0 - movs r1, 0x2 - bl StartSpriteAnim - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - movs r0, 0 - strh r0, [r5, 0x38] - ldr r0, _08047738 @ =sub_8047754 - str r0, [r5, 0x1C] - b _0804774C - .align 2, 0 -_08047734: .4byte gSprites -_08047738: .4byte sub_8047754 -_0804773C: - ldrh r0, [r4, 0x30] - adds r0, 0x60 - strh r0, [r4, 0x30] - movs r1, 0x30 - ldrsh r0, [r4, r1] - negs r0, r0 - asrs r0, 8 - strh r0, [r4, 0x26] -_0804774C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80476E0 - - thumb_func_start sub_8047754 -sub_8047754: @ 8047754 - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08047768 - ldr r0, _0804776C @ =SpriteCallbackDummy - str r0, [r2, 0x1C] -_08047768: - pop {r0} - bx r0 - .align 2, 0 -_0804776C: .4byte SpriteCallbackDummy - thumb_func_end sub_8047754 - - thumb_func_start obj_delete_and_free_associated_resources_ -obj_delete_and_free_associated_resources_: @ 8047770 - push {lr} - bl DestroySpriteAndFreeResources - pop {r0} - bx r0 - thumb_func_end obj_delete_and_free_associated_resources_ - - thumb_func_start sub_804777C -sub_804777C: @ 804777C - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r0, _080477FC @ =gUnknown_03004340 - adds r0, r5, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r6, _08047800 @ =gSprites - adds r4, r0, r6 - movs r1, 0 - movs r0, 0x5 - strh r0, [r4, 0x2E] - strh r1, [r4, 0x30] - movs r0, 0x73 - strh r0, [r4, 0x24] - strh r1, [r4, 0x26] - ldr r0, _08047804 @ =sub_8047830 - str r0, [r4, 0x1C] - adds r0, r5, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080477CA - ldrh r0, [r4, 0x2E] - negs r0, r0 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x30] - negs r0, r0 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x24] - negs r0, r0 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x26] - negs r0, r0 - strh r0, [r4, 0x26] -_080477CA: - movs r0, 0x38 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r6, 0 - adds r1, 0x1C - adds r1, r0, r1 - adds r0, r6 - ldr r1, [r1] - bl _call_via_r1 - adds r0, r5, 0 - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _080477F4 - ldr r0, _08047808 @ =sub_804780C - str r0, [r4, 0x1C] -_080477F4: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080477FC: .4byte gUnknown_03004340 -_08047800: .4byte gSprites -_08047804: .4byte sub_8047830 -_08047808: .4byte sub_804780C - thumb_func_end sub_804777C - - thumb_func_start sub_804780C -sub_804780C: @ 804780C - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x30] - adds r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - bne _08047826 - movs r0, 0 - strh r0, [r1, 0x30] - ldr r0, _0804782C @ =sub_8047830 - str r0, [r1, 0x1C] -_08047826: - pop {r0} - bx r0 - .align 2, 0 -_0804782C: .4byte sub_8047830 - thumb_func_end sub_804780C - - thumb_func_start sub_8047830 -sub_8047830: @ 8047830 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x24] - ldrh r1, [r2, 0x2E] - subs r0, r1 - strh r0, [r2, 0x24] - ldrh r0, [r2, 0x26] - ldrh r1, [r2, 0x30] - subs r0, r1 - strh r0, [r2, 0x26] - ldr r0, [r2, 0x24] - cmp r0, 0 - bne _0804784E - ldr r0, _08047854 @ =SpriteCallbackDummy - str r0, [r2, 0x1C] -_0804784E: - pop {r0} - bx r0 - .align 2, 0 -_08047854: .4byte SpriteCallbackDummy - thumb_func_end sub_8047830 - - thumb_func_start sub_8047858 -sub_8047858: @ 8047858 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _08047890 @ =oamc_804BEB4 - adds r0, r5, 0 - bl CreateInvisibleSpriteWithCallback - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08047894 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r3, r1, r2 - movs r0, 0x1 - strh r0, [r3, 0x2E] - ldr r0, _08047898 @ =gUnknown_03004340 - adds r4, r0 - ldrb r0, [r4] - strh r0, [r3, 0x30] - adds r2, 0x1C - adds r1, r2 - str r5, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08047890: .4byte oamc_804BEB4 -_08047894: .4byte gSprites -_08047898: .4byte gUnknown_03004340 - thumb_func_end sub_8047858 - - thumb_func_start oamc_804BEB4 -oamc_804BEB4: @ 804789C - push {lr} - adds r3, r0, 0 - ldrh r1, [r3, 0x30] - lsls r1, 24 - lsrs r1, 24 - ldr r2, _080478D8 @ =gSprites - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - ldrh r0, [r3, 0x2E] - movs r2, 0 - strh r0, [r1, 0x26] - ldrh r0, [r3, 0x2E] - negs r0, r0 - strh r0, [r3, 0x2E] - ldrh r0, [r3, 0x32] - adds r0, 0x1 - strh r0, [r3, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x15 - bne _080478D4 - strh r2, [r1, 0x24] - strh r2, [r1, 0x26] - adds r0, r3, 0 - bl DestroySprite -_080478D4: - pop {r0} - bx r0 - .align 2, 0 -_080478D8: .4byte gSprites - thumb_func_end oamc_804BEB4 - - thumb_func_start sub_80478DC -sub_80478DC: @ 80478DC - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08047938 @ =gUnknown_0820A92C - lsls r6, r4, 3 - adds r5, r6, r0 - ldrh r0, [r5, 0x6] - bl GetSpriteTileStartByTag - lsls r0, 16 - ldr r1, _0804793C @ =0xffff0000 - cmp r0, r1 - bne _08047904 - adds r0, r5, 0 - bl LoadCompressedObjectPic - ldr r0, _08047940 @ =gUnknown_0820A98C - adds r0, r6, r0 - bl LoadCompressedObjectPalette -_08047904: - cmp r4, 0x6 - beq _08047930 - cmp r4, 0x6 - blt _08047914 - cmp r4, 0xB - bgt _08047914 - cmp r4, 0xA - bge _08047930 -_08047914: - ldr r1, _08047938 @ =gUnknown_0820A92C - lsls r0, r4, 3 - adds r0, r1 - ldrh r0, [r0, 0x6] - bl GetSpriteTileStartByTag - adds r1, r0, 0 - lsls r1, 16 - ldr r0, _08047944 @ =gUnknown_08D030D0 - lsrs r1, 11 - ldr r2, _08047948 @ =0x06010100 - adds r1, r2 - bl LZDecompressVram -_08047930: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08047938: .4byte gUnknown_0820A92C -_0804793C: .4byte 0xffff0000 -_08047940: .4byte gUnknown_0820A98C -_08047944: .4byte gUnknown_08D030D0 -_08047948: .4byte 0x06010100 - thumb_func_end sub_80478DC - - thumb_func_start sub_804794C -sub_804794C: @ 804794C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - ldr r0, _08047970 @ =gUnknown_0820A92C - lsrs r4, 21 - adds r0, r4, r0 - ldrh r0, [r0, 0x6] - bl FreeSpriteTilesByTag - ldr r0, _08047974 @ =gUnknown_0820A98C - adds r4, r0 - ldrh r0, [r4, 0x4] - bl FreeSpritePaletteByTag - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08047970: .4byte gUnknown_0820A92C -_08047974: .4byte gUnknown_0820A98C - thumb_func_end sub_804794C - - thumb_func_start sub_8047978 -sub_8047978: @ 8047978 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080479A4 - ldr r1, _0804799C @ =gUnknown_02024A6A - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080479A0 @ =gEnemyParty - b _080479B2 - .align 2, 0 -_0804799C: .4byte gUnknown_02024A6A -_080479A0: .4byte gEnemyParty -_080479A4: - ldr r1, _080479C4 @ =gUnknown_02024A6A - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080479C8 @ =gPlayerParty -_080479B2: - adds r0, r1 - movs r1, 0x26 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080479C4: .4byte gUnknown_02024A6A -_080479C8: .4byte gPlayerParty - thumb_func_end sub_8047978 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/pokeblock.s b/asm/pokeblock.s index 44ac16b7e..5b6522144 100644 --- a/asm/pokeblock.s +++ b/asm/pokeblock.s @@ -1539,7 +1539,7 @@ sub_810C2C8: @ 810C2C8 ldrb r0, [r4] cmp r0, 0x3 bne _0810C2E8 - ldr r1, _0810C310 @ =gUnknown_0300485C + ldr r1, _0810C310 @ =gFieldCallback ldr r0, _0810C314 @ =sub_8080990 str r0, [r1] _0810C2E8: @@ -1559,7 +1559,7 @@ _0810C300: .align 2, 0 _0810C308: .4byte gPaletteFade _0810C30C: .4byte gUnknown_02039244 -_0810C310: .4byte gUnknown_0300485C +_0810C310: .4byte gFieldCallback _0810C314: .4byte sub_8080990 _0810C318: .4byte gUnknown_083F7EA8 thumb_func_end sub_810C2C8 @@ -1830,7 +1830,7 @@ sub_810C540: @ 810C540 lsrs r5, 24 ldr r0, _0810C5A0 @ =gWindowConfig_81E6E50 bl BasicInitMenuWindow - bl sub_8072DEC + bl HandleDestroyMenuCursors movs r0, 0x7 movs r1, 0x4 movs r2, 0xD @@ -1912,7 +1912,7 @@ sub_810C5EC: @ 810C5EC bl DisplayYesNoMenu ldr r1, _0810C60C @ =gUnknown_083F7F24 adds r0, r4, 0 - bl sub_80F914C + bl DoYesNoFuncWithChoice pop {r4} pop {r0} bx r0 @@ -1965,9 +1965,9 @@ sub_810C668: @ 810C668 lsls r0, 24 lsrs r4, r0, 24 movs r0, 0 - bl sub_80F98DC + bl StartVerticalScrollIndicators movs r0, 0x1 - bl sub_80F98DC + bl StartVerticalScrollIndicators ldr r2, _0810C6CC @ =gUnknown_02039248 ldrb r0, [r2, 0x2] ldrb r1, [r2, 0x3] @@ -2075,10 +2075,10 @@ sub_810C748: @ 810C748 lsls r4, 24 lsrs r4, 24 movs r0, 0 - bl sub_80F98DC + bl StartVerticalScrollIndicators movs r0, 0x1 - bl sub_80F98DC - bl sub_8072DEC + bl StartVerticalScrollIndicators + bl HandleDestroyMenuCursors movs r0, 0x7 movs r1, 0x4 movs r2, 0xD @@ -2121,7 +2121,7 @@ sub_810C788: @ 810C788 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 - ldr r0, _0810C840 @ =gUnknown_030041C0 + ldr r0, _0810C840 @ =gBattleTextBuff1 ldr r2, _0810C844 @ =gPokeblockNames ldr r1, _0810C848 @ =0xfffff808 adds r5, r1 @@ -2189,7 +2189,7 @@ _0810C808: _0810C834: .4byte gEnemyParty _0810C838: .4byte gScriptItemId _0810C83C: .4byte gSaveBlock1 + 0x7F8 -_0810C840: .4byte gUnknown_030041C0 +_0810C840: .4byte gBattleTextBuff1 _0810C844: .4byte gPokeblockNames _0810C848: .4byte 0xfffff808 _0810C84C: .4byte gTasks diff --git a/asm/pokedex.s b/asm/pokedex.s deleted file mode 100644 index 8fd971840..000000000 --- a/asm/pokedex.s +++ /dev/null @@ -1,5294 +0,0 @@ - .include "constants/gba_constants.inc" - .include "constants/species_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_8090750 -sub_8090750: @ 8090750 - push {r4-r7,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _08090778 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldrh r6, [r0, 0xA] - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r4, r1, 0 - cmp r0, 0x6 - bhi _0809079C - lsls r0, 2 - ldr r1, _0809077C @ =_08090780 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08090778: .4byte gTasks -_0809077C: .4byte _08090780 - .align 2, 0 -_08090780: - .4byte _0809079C - .4byte _080907E0 - .4byte _0809085C - .4byte _080908A0 - .4byte _08090960 - .4byte _080909B8 - .4byte _080909F4 -_0809079C: - ldr r0, _080907D0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080907AA - b _08090A26 -_080907AA: - ldr r1, _080907D4 @ =gUnknown_03005CEC - ldr r0, _080907D8 @ =gMain - ldr r0, [r0, 0xC] - str r0, [r1] - movs r0, 0 - bl SetVBlankCallback - movs r0, 0x80 - lsls r0, 1 - bl sub_8091060 - ldr r1, _080907DC @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - movs r1, 0x1 - strh r1, [r0, 0x8] - b _08090A26 - .align 2, 0 -_080907D0: .4byte gPaletteFade -_080907D4: .4byte gUnknown_03005CEC -_080907D8: .4byte gMain -_080907DC: .4byte gTasks -_080907E0: - ldr r0, _08090840 @ =gPokedexMenu_Gfx - ldr r1, _08090844 @ =0x06004000 - bl LZ77UnCompVram - ldr r0, _08090848 @ =gUnknown_08E96BD4 - ldr r4, _0809084C @ =0x06007800 - adds r1, r4, 0 - bl LZ77UnCompVram - movs r2, 0 - lsls r5, r7, 2 - mov r12, r5 - movs r0, 0x80 - lsls r0, 6 - adds r6, r0, 0 - ldr r3, _08090850 @ =0x0000027f -_08090800: - lsls r0, r2, 1 - adds r0, r4 - ldrh r5, [r0] - adds r1, r6, r5 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, r3 - bls _08090800 - ldr r0, _08090854 @ =gTasks - mov r1, r12 - adds r4, r1, r7 - lsls r4, 3 - adds r4, r0 - ldrh r0, [r4, 0xA] - movs r2, 0xFF - lsls r2, 2 - movs r1, 0x2 - bl sub_8091738 - bl ResetPaletteFade - ldr r0, _08090858 @ =gPokedexMenu_Pal + 0x2 - movs r1, 0x21 - movs r2, 0x9E - bl LoadPalette - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _08090A26 - .align 2, 0 -_08090840: .4byte gPokedexMenu_Gfx -_08090844: .4byte 0x06004000 -_08090848: .4byte gUnknown_08E96BD4 -_0809084C: .4byte 0x06007800 -_08090850: .4byte 0x0000027f -_08090854: .4byte gTasks -_08090858: .4byte gPokedexMenu_Pal + 0x2 -_0809085C: - ldr r4, _0809088C @ =gWindowConfig_81E7064 - adds r0, r4, 0 - bl SetUpWindowConfig - adds r0, r4, 0 - bl InitMenuWindow - ldr r2, _08090890 @ =0x0600c000 - add r1, sp, 0x4 - movs r0, 0 - strh r0, [r1] - ldr r0, _08090894 @ =0x040000d4 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _08090898 @ =0x81000100 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - ldr r1, _0809089C @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - b _080909E0 - .align 2, 0 -_0809088C: .4byte gWindowConfig_81E7064 -_08090890: .4byte 0x0600c000 -_08090894: .4byte 0x040000d4 -_08090898: .4byte 0x81000100 -_0809089C: .4byte gTasks -_080908A0: - ldr r0, _080908C8 @ =gDexText_RegisterComplete - movs r1, 0x2 - movs r2, 0 - movs r3, 0xD0 - bl sub_8072BD8 - bl IsNationalPokedexEnabled - cmp r0, 0 - bne _080908CC - adds r0, r6, 0 - bl NationalToHoennOrder - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xD - movs r2, 0x3 - bl sub_8091154 - b _080908D6 - .align 2, 0 -_080908C8: .4byte gDexText_RegisterComplete -_080908CC: - adds r0, r6, 0 - movs r1, 0xD - movs r2, 0x3 - bl sub_8091154 -_080908D6: - adds r0, r6, 0 - movs r1, 0x10 - movs r2, 0x3 - bl sub_80911C8 - ldr r0, _0809094C @ =gDexText_UnknownPoke - movs r1, 0xB - movs r2, 0x5 - bl MenuPrint - ldr r0, _08090950 @ =gDexText_UnknownHeight - movs r1, 0x10 - movs r2, 0x7 - bl MenuPrint - ldr r0, _08090954 @ =gDexText_UnknownWeight - movs r1, 0x10 - movs r2, 0x9 - bl MenuPrint - lsls r4, r6, 3 - adds r4, r6 - lsls r4, 2 - ldr r6, _08090958 @ =gPokedexEntries - adds r5, r4, r6 - adds r0, r5, 0 - movs r1, 0xB - movs r2, 0x5 - bl sub_8091304 - ldrh r0, [r5, 0xC] - movs r1, 0x10 - movs r2, 0x7 - bl sub_8091458 - ldrh r0, [r5, 0xE] - movs r1, 0x10 - movs r2, 0x9 - bl sub_8091564 - adds r6, 0x10 - adds r4, r6 - ldr r0, [r4] - movs r1, 0x2 - movs r2, 0xD - bl MenuPrint - movs r1, 0xFF - lsls r1, 2 - movs r0, 0xE - bl sub_80917CC - ldr r1, _0809095C @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - b _080909E0 - .align 2, 0 -_0809094C: .4byte gDexText_UnknownPoke -_08090950: .4byte gDexText_UnknownHeight -_08090954: .4byte gDexText_UnknownWeight -_08090958: .4byte gPokedexEntries -_0809095C: .4byte gTasks -_08090960: - adds r0, r6, 0 - movs r1, 0x30 - movs r2, 0x38 - movs r3, 0 - bl sub_80918EC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080909AC @ =gSprites - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x5] - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080909B0 @ =gUnknown_03005CEC - ldr r0, [r0] - bl SetVBlankCallback - ldr r1, _080909B4 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - strh r4, [r0, 0xE] - b _080909E0 - .align 2, 0 -_080909AC: .4byte gSprites -_080909B0: .4byte gUnknown_03005CEC -_080909B4: .4byte gTasks -_080909B8: - ldr r0, _080909E8 @ =REG_BLDCNT - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - ldr r1, _080909EC @ =REG_BG3CNT - ldr r2, _080909F0 @ =0x00000f07 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0xE - movs r5, 0xE2 - lsls r5, 5 - adds r0, r5, 0 - strh r0, [r1] - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r4 -_080909E0: - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - b _08090A26 - .align 2, 0 -_080909E8: .4byte REG_BLDCNT -_080909EC: .4byte REG_BG3CNT -_080909F0: .4byte 0x00000f07 -_080909F4: - ldr r0, _08090A30 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _08090A26 - adds r0, r6, 0 - bl NationalPokedexNumToSpecies - lsls r0, 16 - lsrs r0, 16 - movs r1, 0 - bl PlayCry1 - ldr r1, _08090A34 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0xC] - strh r5, [r0, 0x10] - ldr r1, _08090A38 @ =sub_8090A3C - str r1, [r0] -_08090A26: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08090A30: .4byte gPaletteFade -_08090A34: .4byte gTasks -_08090A38: .4byte sub_8090A3C - thumb_func_end sub_8090750 - - thumb_func_start sub_8090A3C -sub_8090A3C: @ 8090A3C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _08090A8C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0 - beq _08090AA4 - ldr r0, _08090A90 @ =0x0000fffc - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r3, _08090A94 @ =gSprites - ldr r0, _08090A98 @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - movs r0, 0xE - ldrsh r2, [r1, r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r3, 0x1C - adds r0, r3 - ldr r2, _08090A9C @ =sub_8090C28 - str r2, [r0] - ldr r0, _08090AA0 @ =sub_8090B8C - str r0, [r1] - b _08090B7A - .align 2, 0 -_08090A8C: .4byte gMain -_08090A90: .4byte 0x0000fffc -_08090A94: .4byte gSprites -_08090A98: .4byte gTasks -_08090A9C: .4byte sub_8090C28 -_08090AA0: .4byte sub_8090B8C -_08090AA4: - movs r0, 0x1 - mov r8, r0 - ands r0, r1 - lsls r7, r6, 2 - cmp r0, 0 - beq _08090B44 - ldr r0, _08090B00 @ =gTasks - adds r1, r7, r6 - lsls r1, 3 - adds r5, r1, r0 - movs r1, 0x10 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _08090B0C - ldrh r4, [r5, 0xA] - movs r0, 0x2 - movs r1, 0xD - movs r2, 0x1B - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r1, _08090B04 @ =gPokedexEntries - lsls r0, r4, 3 - adds r0, r4 - lsls r0, 2 - adds r1, 0x14 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x2 - movs r2, 0xD - bl MenuPrint - ldr r1, _08090B08 @ =0x06007aca - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - adds r1, 0x40 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - mov r0, r8 - strh r0, [r5, 0x10] - movs r0, 0x15 - bl PlaySE - b _08090B44 - .align 2, 0 -_08090B00: .4byte gTasks -_08090B04: .4byte gPokedexEntries -_08090B08: .4byte 0x06007aca -_08090B0C: - ldr r0, _08090B34 @ =0x0000fffc - str r2, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r2, _08090B38 @ =gSprites - movs r0, 0xE - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _08090B3C @ =sub_8090C28 - str r1, [r0] - ldr r0, _08090B40 @ =sub_8090B8C - str r0, [r5] - b _08090B7A - .align 2, 0 -_08090B34: .4byte 0x0000fffc -_08090B38: .4byte gSprites -_08090B3C: .4byte sub_8090C28 -_08090B40: .4byte sub_8090B8C -_08090B44: - ldr r1, _08090B68 @ =gTasks - adds r0, r7, r6 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0xC] - adds r1, 0x1 - strh r1, [r0, 0xC] - movs r0, 0x10 - ands r1, r0 - cmp r1, 0 - beq _08090B70 - ldr r0, _08090B6C @ =gPokedexMenu_Pal + 0x2 - movs r1, 0x51 - movs r2, 0xE - bl LoadPalette - b _08090B7A - .align 2, 0 -_08090B68: .4byte gTasks -_08090B6C: .4byte gPokedexMenu_Pal + 0x2 -_08090B70: - ldr r0, _08090B88 @ =gPokedexMenu2_Pal + 0x2 - movs r1, 0x51 - movs r2, 0xE - bl LoadPalette -_08090B7A: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08090B88: .4byte gPokedexMenu2_Pal + 0x2 - thumb_func_end sub_8090A3C - - thumb_func_start sub_8090B8C -sub_8090B8C: @ 8090B8C - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _08090C14 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08090C0C - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xCA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _08090C18 @ =gUnknown_08D00524 - ldr r1, _08090C1C @ =0x0600c000 - movs r2, 0x80 - lsls r2, 4 - bl CpuSet - bl sub_800D74C - ldr r0, _08090C20 @ =gTasks - lsls r4, r6, 2 - adds r4, r6 - lsls r4, 3 - adds r4, r0 - ldrh r0, [r4, 0xA] - bl NationalPokedexNumToSpecies - lsls r0, 16 - lsrs r0, 16 - ldrh r1, [r4, 0x22] - lsls r1, 16 - ldrh r2, [r4, 0x20] - orrs r1, r2 - ldrh r2, [r4, 0x26] - lsls r2, 16 - ldrh r3, [r4, 0x24] - orrs r2, r3 - ldr r5, _08090C24 @ =gSprites - movs r3, 0xE - ldrsh r4, [r4, r3] - lsls r3, r4, 4 - adds r3, r4 - lsls r3, 2 - adds r3, r5 - ldrb r4, [r3, 0x5] - lsrs r4, 4 - bl species_and_otid_get_pal - lsls r4, 4 - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - orrs r4, r1 - adds r1, r4, 0 - movs r2, 0x20 - bl LoadCompressedPalette - adds r0, r6, 0 - bl DestroyTask -_08090C0C: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08090C14: .4byte gPaletteFade -_08090C18: .4byte gUnknown_08D00524 -_08090C1C: .4byte 0x0600c000 -_08090C20: .4byte gTasks -_08090C24: .4byte gSprites - thumb_func_end sub_8090B8C - - thumb_func_start sub_8090C28 -sub_8090C28: @ 8090C28 - push {lr} - adds r1, r0, 0 - ldrh r2, [r1, 0x20] - movs r3, 0x20 - ldrsh r0, [r1, r3] - cmp r0, 0x77 - bgt _08090C3A - adds r0, r2, 0x2 - strh r0, [r1, 0x20] -_08090C3A: - ldrh r2, [r1, 0x20] - movs r3, 0x20 - ldrsh r0, [r1, r3] - cmp r0, 0x78 - ble _08090C48 - subs r0, r2, 0x2 - strh r0, [r1, 0x20] -_08090C48: - ldrh r2, [r1, 0x22] - movs r3, 0x22 - ldrsh r0, [r1, r3] - cmp r0, 0x4F - bgt _08090C56 - adds r0, r2, 0x1 - strh r0, [r1, 0x22] -_08090C56: - ldrh r2, [r1, 0x22] - movs r3, 0x22 - ldrsh r0, [r1, r3] - cmp r0, 0x50 - ble _08090C64 - subs r0, r2, 0x1 - strh r0, [r1, 0x22] -_08090C64: - pop {r0} - bx r0 - thumb_func_end sub_8090C28 - - thumb_func_start sub_8090C68 -sub_8090C68: @ 8090C68 - push {r4,r5,lr} - ldr r4, _08090CD0 @ =gUnknown_0202FFBC - ldr r0, [r4] - ldrb r1, [r0, 0x2] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08090D2A - ldr r5, _08090CD4 @ =gPokedexView - ldr r0, [r5] - ldr r1, _08090CD8 @ =0x0000064e - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _08090CE4 - movs r0, 0x2 - movs r1, 0xD - movs r2, 0x1B - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r2, _08090CDC @ =gPokedexEntries - ldr r0, [r4] - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r2, 0x14 - adds r0, r2 - ldr r0, [r0] - movs r1, 0x2 - movs r2, 0xD - bl MenuPrint - ldr r0, [r5] - ldr r1, _08090CD8 @ =0x0000064e - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - ldr r1, _08090CE0 @ =0x06007aca - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - adds r1, 0x40 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - movs r0, 0x15 - bl PlaySE - b _08090D2A - .align 2, 0 -_08090CD0: .4byte gUnknown_0202FFBC -_08090CD4: .4byte gPokedexView -_08090CD8: .4byte 0x0000064e -_08090CDC: .4byte gPokedexEntries -_08090CE0: .4byte 0x06007aca -_08090CE4: - movs r0, 0x2 - movs r1, 0xD - movs r2, 0x1B - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r2, _08090D30 @ =gPokedexEntries - ldr r0, [r4] - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r2, 0x10 - adds r0, r2 - ldr r0, [r0] - movs r1, 0x2 - movs r2, 0xD - bl MenuPrint - ldr r0, [r5] - ldr r1, _08090D34 @ =0x0000064e - adds r0, r1 - movs r1, 0 - strb r1, [r0] - ldr r1, _08090D38 @ =0x06007aca - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - adds r1, 0x40 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - movs r0, 0x15 - bl PlaySE -_08090D2A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08090D30: .4byte gPokedexEntries -_08090D34: .4byte 0x0000064e -_08090D38: .4byte 0x06007aca - thumb_func_end sub_8090C68 - - thumb_func_start GetPokemonCategory -GetPokemonCategory: @ 8090D3C - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08090D50 @ =gPokedexEntries - adds r0, r1 - bx lr - .align 2, 0 -_08090D50: .4byte gPokedexEntries - thumb_func_end GetPokemonCategory - - thumb_func_start GetPokedexHeightWeight -GetPokedexHeightWeight: @ 8090D54 - push {lr} - lsls r0, 16 - lsrs r2, r0, 16 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0 - beq _08090D6A - cmp r1, 0x1 - beq _08090D7C - movs r0, 0x1 - b _08090D88 -_08090D6A: - ldr r0, _08090D78 @ =gPokedexEntries - lsls r1, r2, 3 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1, 0xC] - b _08090D88 - .align 2, 0 -_08090D78: .4byte gPokedexEntries -_08090D7C: - ldr r0, _08090D8C @ =gPokedexEntries - lsls r1, r2, 3 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1, 0xE] -_08090D88: - pop {r1} - bx r1 - .align 2, 0 -_08090D8C: .4byte gPokedexEntries - thumb_func_end GetPokedexHeightWeight - - thumb_func_start sub_8090D90 -sub_8090D90: @ 8090D90 - push {r4-r7,lr} - lsls r0, 16 - lsls r1, 24 - lsrs r2, r1, 24 - adds r3, r2, 0 - ldr r1, _08090DC4 @ =0xffff0000 - adds r0, r1 - lsrs r1, r0, 16 - lsrs r0, 19 - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x7 - ands r1, r0 - movs r0, 0x80 - lsls r0, 17 - lsls r0, r1 - lsrs r5, r0, 24 - movs r6, 0 - cmp r2, 0x1 - beq _08090E24 - cmp r2, 0x1 - bgt _08090DC8 - cmp r2, 0 - beq _08090DD4 - b _08090F0A - .align 2, 0 -_08090DC4: .4byte 0xffff0000 -_08090DC8: - cmp r3, 0x2 - beq _08090EBC - cmp r3, 0x3 - bne _08090DD2 - b _08090EFC -_08090DD2: - b _08090F0A -_08090DD4: - ldr r1, _08090E14 @ =gSaveBlock2 - adds r0, r1, 0 - adds r0, 0x5C - adds r0, r4, r0 - ldrb r2, [r0] - ands r2, r5 - adds r7, r1, 0 - cmp r2, 0 - bne _08090DE8 - b _08090F0A -_08090DE8: - ldr r0, _08090E18 @ =gSaveBlock1 - ldr r3, _08090E1C @ =0x00000938 - adds r1, r0, r3 - adds r1, r4, r1 - ldrb r1, [r1] - ands r1, r5 - adds r6, r0, 0 - cmp r2, r1 - bne _08090E08 - ldr r1, _08090E20 @ =0x00003a8c - adds r0, r6, r1 - adds r0, r4, r0 - ldrb r0, [r0] - ands r0, r5 - cmp r2, r0 - beq _08090E62 -_08090E08: - adds r1, r7, 0 - adds r1, 0x5C - adds r1, r4, r1 - mvns r3, r5 - b _08090E8E - .align 2, 0 -_08090E14: .4byte gSaveBlock2 -_08090E18: .4byte gSaveBlock1 -_08090E1C: .4byte 0x00000938 -_08090E20: .4byte 0x00003a8c -_08090E24: - ldr r1, _08090E68 @ =gSaveBlock2 - adds r0, r1, 0 - adds r0, 0x28 - adds r0, r4, r0 - ldrb r2, [r0] - ands r2, r5 - adds r7, r1, 0 - cmp r2, 0 - beq _08090F0A - adds r0, r7, 0 - adds r0, 0x5C - adds r0, r4, r0 - ldrb r0, [r0] - ands r0, r5 - ldr r6, _08090E6C @ =gSaveBlock1 - cmp r2, r0 - bne _08090E78 - ldr r3, _08090E70 @ =0x00000938 - adds r0, r6, r3 - adds r0, r4, r0 - ldrb r0, [r0] - ands r0, r5 - cmp r2, r0 - bne _08090E78 - ldr r1, _08090E74 @ =0x00003a8c - adds r0, r6, r1 - adds r0, r4, r0 - ldrb r0, [r0] - ands r0, r5 - cmp r2, r0 - bne _08090E78 -_08090E62: - movs r6, 0x1 - b _08090F0A - .align 2, 0 -_08090E68: .4byte gSaveBlock2 -_08090E6C: .4byte gSaveBlock1 -_08090E70: .4byte 0x00000938 -_08090E74: .4byte 0x00003a8c -_08090E78: - adds r1, r7, 0 - adds r1, 0x28 - adds r1, r4, r1 - mvns r3, r5 - ldrb r2, [r1] - adds r0, r3, 0 - ands r0, r2 - strb r0, [r1] - adds r1, r7, 0 - adds r1, 0x5C - adds r1, r4, r1 -_08090E8E: - ldrb r2, [r1] - adds r0, r3, 0 - ands r0, r2 - strb r0, [r1] - ldr r0, _08090EB4 @ =0x00000938 - adds r1, r6, r0 - adds r1, r4, r1 - ldrb r2, [r1] - adds r0, r3, 0 - ands r0, r2 - strb r0, [r1] - ldr r1, _08090EB8 @ =0x00003a8c - adds r0, r6, r1 - adds r0, r4, r0 - ldrb r1, [r0] - ands r3, r1 - strb r3, [r0] - movs r6, 0 - b _08090F0A - .align 2, 0 -_08090EB4: .4byte 0x00000938 -_08090EB8: .4byte 0x00003a8c -_08090EBC: - ldr r1, _08090EEC @ =gSaveBlock2 - adds r1, 0x5C - adds r1, r4, r1 - ldrb r2, [r1] - adds r0, r5, 0 - orrs r0, r2 - strb r0, [r1] - ldr r1, _08090EF0 @ =gSaveBlock1 - ldr r3, _08090EF4 @ =0x00000938 - adds r2, r1, r3 - adds r2, r4, r2 - ldrb r3, [r2] - adds r0, r5, 0 - orrs r0, r3 - strb r0, [r2] - ldr r0, _08090EF8 @ =0x00003a8c - adds r1, r0 - adds r1, r4, r1 - ldrb r2, [r1] - adds r0, r5, 0 - orrs r0, r2 - strb r0, [r1] - b _08090F0A - .align 2, 0 -_08090EEC: .4byte gSaveBlock2 -_08090EF0: .4byte gSaveBlock1 -_08090EF4: .4byte 0x00000938 -_08090EF8: .4byte 0x00003a8c -_08090EFC: - ldr r0, _08090F14 @ =gSaveBlock2 - adds r0, 0x28 - adds r0, r4, r0 - ldrb r2, [r0] - adds r1, r5, 0 - orrs r1, r2 - strb r1, [r0] -_08090F0A: - adds r0, r6, 0 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08090F14: .4byte gSaveBlock2 - thumb_func_end sub_8090D90 - - thumb_func_start GetNationalPokedexCount -GetNationalPokedexCount: @ 8090F18 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - movs r0, 0 - ldr r7, _08090F30 @ =0x00000181 -_08090F24: - cmp r6, 0 - beq _08090F34 - cmp r6, 0x1 - beq _08090F3E - adds r4, r0, 0x1 - b _08090F56 - .align 2, 0 -_08090F30: .4byte 0x00000181 -_08090F34: - adds r4, r0, 0x1 - lsls r0, r4, 16 - lsrs r0, 16 - movs r1, 0 - b _08090F46 -_08090F3E: - adds r4, r0, 0x1 - lsls r0, r4, 16 - lsrs r0, 16 - movs r1, 0x1 -_08090F46: - bl sub_8090D90 - lsls r0, 24 - cmp r0, 0 - beq _08090F56 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_08090F56: - lsls r0, r4, 16 - lsrs r0, 16 - cmp r0, r7 - bls _08090F24 - adds r0, r5, 0 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end GetNationalPokedexCount - - thumb_func_start GetHoennPokedexCount -GetHoennPokedexCount: @ 8090F68 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - movs r0, 0 -_08090F72: - cmp r6, 0 - beq _08090F7E - cmp r6, 0x1 - beq _08090F90 - adds r4, r0, 0x1 - b _08090FB0 -_08090F7E: - adds r4, r0, 0x1 - lsls r0, r4, 16 - lsrs r0, 16 - bl HoennToNationalOrder - lsls r0, 16 - lsrs r0, 16 - movs r1, 0 - b _08090FA0 -_08090F90: - adds r4, r0, 0x1 - lsls r0, r4, 16 - lsrs r0, 16 - bl HoennToNationalOrder - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 -_08090FA0: - bl sub_8090D90 - lsls r0, 24 - cmp r0, 0 - beq _08090FB0 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_08090FB0: - lsls r0, r4, 16 - lsrs r0, 16 - cmp r0, 0xC9 - bls _08090F72 - adds r0, r5, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end GetHoennPokedexCount - - thumb_func_start sub_8090FC0 -sub_8090FC0: @ 8090FC0 - push {r4,lr} - movs r0, 0 -_08090FC4: - adds r0, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - bl HoennToNationalOrder - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - bl sub_8090D90 - lsls r0, 24 - cmp r0, 0 - bne _08090FE4 - movs r0, 0 - b _08090FEC -_08090FE4: - adds r0, r4, 0 - cmp r0, 0xC7 - bls _08090FC4 - movs r0, 0x1 -_08090FEC: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8090FC0 - - thumb_func_start sub_8090FF4 -sub_8090FF4: @ 8090FF4 - push {r4,r5,lr} - movs r0, 0 -_08090FF8: - adds r0, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8090D90 - lsls r0, 24 - cmp r0, 0 - beq _08091046 - adds r0, r4, 0 - cmp r0, 0x95 - bls _08090FF8 - movs r0, 0x98 -_08091014: - adds r0, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8090D90 - lsls r0, 24 - cmp r0, 0 - beq _08091046 - adds r0, r4, 0 - cmp r0, 0xF9 - bls _08091014 - movs r0, 0xFC - ldr r5, _0809104C @ =0x0000017f -_08091032: - adds r0, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8090D90 - lsls r0, 24 - cmp r0, 0 - bne _08091050 -_08091046: - movs r0, 0 - b _08091058 - .align 2, 0 -_0809104C: .4byte 0x0000017f -_08091050: - adds r0, r4, 0 - cmp r0, r5 - bls _08091032 - movs r0, 0x1 -_08091058: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8090FF4 - - thumb_func_start sub_8091060 -sub_8091060: @ 8091060 - push {r4,r5,lr} - lsls r0, 16 - lsrs r4, r0, 16 - adds r5, r4, 0 - movs r0, 0x80 - lsls r0, 1 - ands r0, r4 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0 - bne _0809108E - movs r2, 0x80 - lsls r2, 19 - ldrh r1, [r2] - ldr r0, _0809112C @ =0x0000feff - ands r0, r1 - strh r0, [r2] - ldr r0, _08091130 @ =REG_BG0CNT - strh r3, [r0] - adds r0, 0x8 - strh r3, [r0] - adds r0, 0x2 - strh r3, [r0] -_0809108E: - movs r0, 0x80 - lsls r0, 2 - ands r0, r4 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0 - bne _080910B4 - movs r2, 0x80 - lsls r2, 19 - ldrh r1, [r2] - ldr r0, _08091134 @ =0x0000fdff - ands r0, r1 - strh r0, [r2] - ldr r0, _08091138 @ =REG_BG1CNT - strh r3, [r0] - adds r0, 0xA - strh r3, [r0] - adds r0, 0x2 - strh r3, [r0] -_080910B4: - movs r0, 0x80 - lsls r0, 3 - ands r0, r4 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0 - bne _080910DA - movs r2, 0x80 - lsls r2, 19 - ldrh r1, [r2] - ldr r0, _0809113C @ =0x0000fbff - ands r0, r1 - strh r0, [r2] - ldr r0, _08091140 @ =REG_BG2CNT - strh r3, [r0] - adds r0, 0xC - strh r3, [r0] - adds r0, 0x2 - strh r3, [r0] -_080910DA: - movs r0, 0x80 - lsls r0, 4 - ands r0, r4 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0 - bne _08091100 - movs r2, 0x80 - lsls r2, 19 - ldrh r1, [r2] - ldr r0, _08091144 @ =0x0000f7ff - ands r0, r1 - strh r0, [r2] - ldr r0, _08091148 @ =REG_BG3CNT - strh r3, [r0] - adds r0, 0xE - strh r3, [r0] - adds r0, 0x2 - strh r3, [r0] -_08091100: - movs r0, 0x80 - lsls r0, 5 - ands r5, r0 - cmp r5, 0 - bne _08091124 - movs r2, 0x80 - lsls r2, 19 - ldrh r1, [r2] - ldr r0, _0809114C @ =0x0000efff - ands r0, r1 - strh r0, [r2] - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r1, _08091150 @ =gReservedSpritePaletteCount - movs r0, 0x8 - strb r0, [r1] -_08091124: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809112C: .4byte 0x0000feff -_08091130: .4byte REG_BG0CNT -_08091134: .4byte 0x0000fdff -_08091138: .4byte REG_BG1CNT -_0809113C: .4byte 0x0000fbff -_08091140: .4byte REG_BG2CNT -_08091144: .4byte 0x0000f7ff -_08091148: .4byte REG_BG3CNT -_0809114C: .4byte 0x0000efff -_08091150: .4byte gReservedSpritePaletteCount - thumb_func_end sub_8091060 - - thumb_func_start sub_8091154 -sub_8091154: @ 8091154 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - adds r4, r0, 0 - adds r6, r1, 0 - mov r8, r2 - lsls r4, 16 - lsrs r4, 16 - lsls r6, 24 - lsrs r6, 24 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - mov r5, sp - adds r0, r4, 0 - movs r1, 0x64 - bl __udivsi3 - adds r0, 0xA1 - strb r0, [r5] - mov r5, sp - adds r0, r4, 0 - movs r1, 0x64 - bl __umodsi3 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r4, 0 - movs r1, 0xA - bl __udivsi3 - adds r0, 0xA1 - strb r0, [r5, 0x1] - mov r5, sp - adds r0, r4, 0 - movs r1, 0xA - bl __umodsi3 - adds r0, 0xA1 - strb r0, [r5, 0x2] - mov r1, sp - movs r0, 0xFF - strb r0, [r1, 0x3] - mov r0, sp - adds r1, r6, 0 - mov r2, r8 - bl MenuPrint - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8091154 - - thumb_func_start sub_80911C8 -sub_80911C8: @ 80911C8 - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 16 - lsrs r3, r0, 16 - lsls r1, 24 - lsrs r6, r1, 24 - lsls r2, 24 - lsrs r5, r2, 24 - movs r4, 0 - movs r2, 0xFF -_080911DC: - mov r1, sp - adds r0, r1, r4 - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xA - bls _080911DC - adds r0, r3, 0 - bl NationalPokedexNumToSpecies - adds r3, r0, 0 - cmp r3, 0 - beq _08091238 - movs r4, 0 - ldr r2, _08091234 @ =gSpeciesNames - movs r0, 0xB - adds r1, r3, 0 - muls r1, r0 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0xFF - beq _0809124C - adds r3, r2, 0 - adds r2, r1, 0 -_08091212: - mov r0, sp - adds r1, r0, r4 - adds r0, r4, r2 - adds r0, r3 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, r2 - adds r0, r3 - ldrb r0, [r0] - cmp r0, 0xFF - beq _0809124C - cmp r4, 0x9 - bls _08091212 - b _0809124C - .align 2, 0 -_08091234: .4byte gSpeciesNames -_08091238: - movs r4, 0 - movs r1, 0xAE -_0809123C: - mov r2, sp - adds r0, r2, r4 - strb r1, [r0] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x9 - bls _0809123C -_0809124C: - mov r0, sp - adds r1, r6, 0 - adds r2, r5, 0 - bl MenuPrint - adds r0, r4, 0 - add sp, 0xC - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80911C8 - - thumb_func_start sub_8091260 -sub_8091260: @ 8091260 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x28 - adds r4, r3, 0 - lsls r0, 16 - lsrs r5, r0, 16 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r2, 24 - lsrs r7, r2, 24 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _080912CC @ =gUnknown_083B5558 - mov r0, sp - bl StringCopy - adds r6, r0, 0 - mov r0, sp - strb r4, [r0, 0x2] - adds r0, r5, 0 - bl NationalPokedexNumToSpecies - adds r5, r0, 0 - cmp r5, 0 - beq _080912D4 - movs r4, 0 - ldr r2, _080912D0 @ =gSpeciesNames - movs r0, 0xB - adds r1, r5, 0 - muls r1, r0 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0xFF - beq _080912E6 - adds r3, r2, 0 - adds r2, r1, 0 -_080912AC: - adds r1, r6, r4 - adds r0, r4, r2 - adds r0, r3 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, r2 - adds r0, r3 - ldrb r0, [r0] - cmp r0, 0xFF - beq _080912E6 - cmp r4, 0x9 - bls _080912AC - b _080912E6 - .align 2, 0 -_080912CC: .4byte gUnknown_083B5558 -_080912D0: .4byte gSpeciesNames -_080912D4: - movs r4, 0 - movs r1, 0xAE -_080912D8: - adds r0, r6, r4 - strb r1, [r0] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x9 - bls _080912D8 -_080912E6: - adds r1, r6, r4 - movs r0, 0xFF - strb r0, [r1] - mov r0, sp - mov r1, r8 - adds r2, r7, 0 - bl MenuPrint - adds r0, r4, 0 - add sp, 0x28 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8091260 - - thumb_func_start sub_8091304 -sub_8091304: @ 8091304 - push {r4-r7,lr} - sub sp, 0x20 - adds r3, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r12, r1 - lsls r2, 24 - lsrs r7, r2, 24 - movs r4, 0 - ldrb r0, [r3] - ldr r6, _08091340 @ =gDexText_UnknownPoke - cmp r0, 0xFF - beq _0809133A -_0809131E: - mov r0, sp - adds r1, r0, r4 - adds r0, r3, r4 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r3, r4 - ldrb r0, [r0] - cmp r0, 0xFF - beq _0809133A - cmp r4, 0xA - bls _0809131E -_0809133A: - movs r3, 0 - ldrb r0, [r6] - b _0809134E - .align 2, 0 -_08091340: .4byte gDexText_UnknownPoke -_08091344: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - adds r0, r3, r6 - ldrb r0, [r0] -_0809134E: - cmp r0, 0xAC - beq _08091344 - cmp r0, 0 - beq _08091344 - subs r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - adds r0, r3, r6 - ldrb r0, [r0] - cmp r0, 0xFF - beq _08091388 - adds r5, r6, 0 -_08091366: - adds r1, r4, 0 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - mov r0, sp - adds r2, r0, r1 - adds r1, r3, 0 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - adds r1, r5 - ldrb r0, [r1] - strb r0, [r2] - adds r0, r3, r5 - ldrb r0, [r0] - cmp r0, 0xFF - bne _08091366 -_08091388: - mov r0, sp - adds r1, r0, r4 - movs r0, 0xFF - strb r0, [r1] - mov r0, sp - mov r1, r12 - adds r2, r7, 0 - adds r3, r6, 0 - bl sub_8072B80 - add sp, 0x20 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8091304 - - thumb_func_start unref_sub_80913A4 -unref_sub_80913A4: @ 80913A4 - push {r4-r7,lr} - sub sp, 0x8 - lsls r0, 16 - lsrs r4, r0, 16 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r2, 24 - lsrs r6, r2, 24 - movs r5, 0 - movs r1, 0xFA - lsls r1, 2 - adds r0, r4, 0 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _080913CE - mov r0, sp - strb r5, [r0] - b _080913D6 -_080913CE: - mov r1, sp - adds r0, 0xA1 - strb r0, [r1] - movs r5, 0x1 -_080913D6: - movs r1, 0xFA - lsls r1, 2 - adds r0, r4, 0 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _080913FC - cmp r5, 0 - bne _080913FC - mov r0, sp - strb r5, [r0, 0x1] - b _08091402 -_080913FC: - mov r1, sp - adds r0, 0xA1 - strb r0, [r1, 0x1] -_08091402: - mov r5, sp - movs r1, 0xFA - lsls r1, 2 - adds r0, r4, 0 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r4, 0 - movs r1, 0xA - bl __udivsi3 - adds r0, 0xA1 - strb r0, [r5, 0x2] - mov r1, sp - movs r0, 0xAD - strb r0, [r1, 0x3] - mov r5, sp - adds r0, r4, 0 - movs r1, 0xA - bl __umodsi3 - adds r0, 0xA1 - strb r0, [r5, 0x4] - mov r1, sp - movs r0, 0xFF - strb r0, [r1, 0x5] - mov r0, sp - adds r1, r7, 0 - adds r2, r6, 0 - bl MenuPrint - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end unref_sub_80913A4 - - thumb_func_start sub_8091458 -sub_8091458: @ 8091458 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x10 - lsls r0, 16 - lsrs r0, 16 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - ldr r1, _080914D4 @ =0x00002710 - muls r0, r1 - movs r1, 0xFE - bl __divsi3 - adds r7, r0, 0 - movs r1, 0xA - bl __umodsi3 - cmp r0, 0x4 - bls _0809148A - adds r7, 0xA -_0809148A: - adds r0, r7, 0 - movs r1, 0x78 - bl __udivsi3 - adds r6, r0, 0 - lsls r0, r6, 4 - subs r0, r6 - lsls r0, 3 - subs r0, r7, r0 - movs r1, 0xA - bl __udivsi3 - adds r7, r0, 0 - mov r1, sp - movs r0, 0xFC - strb r0, [r1] - adds r1, 0x1 - movs r0, 0x13 - strb r0, [r1] - adds r0, r6, 0 - movs r1, 0xA - bl __udivsi3 - adds r2, r0, 0 - cmp r2, 0 - bne _080914D8 - mov r1, sp - adds r1, 0x2 - movs r0, 0x12 - strb r0, [r1] - movs r5, 0x4 - adds r1, 0x1 - adds r0, r6, 0 - adds r0, 0xA1 - strb r0, [r1] - b _080914F8 - .align 2, 0 -_080914D4: .4byte 0x00002710 -_080914D8: - mov r1, sp - adds r1, 0x2 - movs r0, 0xC - strb r0, [r1] - adds r1, 0x1 - adds r0, r2, 0 - adds r0, 0xA1 - strb r0, [r1] - movs r5, 0x5 - add r4, sp, 0x4 - adds r0, r6, 0 - movs r1, 0xA - bl __umodsi3 - adds r0, 0xA1 - strb r0, [r4] -_080914F8: - adds r1, r5, 0 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - adds r2, r5, 0 - add r1, sp - movs r0, 0xB4 - strb r0, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - mov r0, sp - adds r4, r0, r2 - adds r0, r7, 0 - movs r1, 0xA - bl __udivsi3 - adds r0, 0xA1 - strb r0, [r4] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - mov r1, sp - adds r4, r1, r6 - adds r0, r7, 0 - movs r1, 0xA - bl __umodsi3 - adds r0, 0xA1 - strb r0, [r4] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r1, sp - adds r2, r1, r5 - movs r1, 0xB2 - strb r1, [r2] - mov r2, sp - adds r1, r2, r0 - movs r0, 0xFF - strb r0, [r1] - mov r0, sp - mov r1, r9 - mov r2, r8 - bl MenuPrint - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8091458 - - thumb_func_start sub_8091564 -sub_8091564: @ 8091564 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - lsls r0, 16 - lsrs r0, 16 - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x10] - ldr r7, _080915BC @ =0x000186a0 - muls r0, r7 - ldr r1, _080915C0 @ =0x000011b8 - bl __divsi3 - adds r6, r0, 0 - movs r1, 0xA - bl __umodsi3 - cmp r0, 0x4 - bls _08091598 - adds r6, 0xA -_08091598: - movs r5, 0 - mov r4, sp - adds r0, r6, 0 - adds r1, r7, 0 - bl __udivsi3 - adds r0, 0xA1 - strb r0, [r4] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xA1 - bne _080915C4 - mov r0, sp - strb r5, [r0] - movs r7, 0x2 - adds r0, 0x1 - strb r5, [r0] - b _080915C8 - .align 2, 0 -_080915BC: .4byte 0x000186a0 -_080915C0: .4byte 0x000011b8 -_080915C4: - movs r5, 0x1 - movs r7, 0x1 -_080915C8: - ldr r1, _0809160C @ =0x000186a0 - adds r0, r6, 0 - bl __umodsi3 - adds r6, r0, 0 - mov r0, sp - adds r4, r0, r7 - ldr r1, _08091610 @ =0x00002710 - adds r0, r6, 0 - bl __udivsi3 - adds r0, 0xA1 - strb r0, [r4] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xA1 - bne _08091614 - cmp r5, 0 - bne _08091614 - adds r1, r7, 0 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r2, r7, 0 - mov r3, sp - adds r0, r3, r1 - strb r5, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r3, r2 - strb r5, [r0] - b _0809161C - .align 2, 0 -_0809160C: .4byte 0x000186a0 -_08091610: .4byte 0x00002710 -_08091614: - movs r5, 0x1 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 -_0809161C: - ldr r1, _08091660 @ =0x00002710 - adds r0, r6, 0 - bl __umodsi3 - adds r6, r0, 0 - mov r0, sp - adds r4, r0, r7 - movs r1, 0xFA - lsls r1, 2 - adds r0, r6, 0 - bl __udivsi3 - adds r0, 0xA1 - strb r0, [r4] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xA1 - bne _08091664 - cmp r5, 0 - bne _08091664 - adds r1, r7, 0 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r2, r7, 0 - mov r3, sp - adds r0, r3, r1 - strb r5, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r3, r2 - strb r5, [r0] - b _0809166A - .align 2, 0 -_08091660: .4byte 0x00002710 -_08091664: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 -_0809166A: - movs r1, 0xFA - lsls r1, 2 - adds r0, r6, 0 - bl __umodsi3 - adds r6, r0, 0 - adds r1, r7, 0 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r5, r7, 0 - mov r0, sp - adds r4, r0, r1 - adds r0, r6, 0 - movs r1, 0x64 - bl __udivsi3 - adds r0, 0xA1 - movs r1, 0 - mov r9, r1 - strb r0, [r4] - adds r0, r6, 0 - movs r1, 0x64 - bl __umodsi3 - adds r6, r0, 0 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r1, r7, 0 - mov r2, sp - adds r0, r2, r5 - movs r3, 0xAD - mov r8, r3 - mov r2, r8 - strb r2, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r5, r7, 0 - mov r3, sp - adds r4, r3, r1 - adds r0, r6, 0 - movs r1, 0xA - bl __udivsi3 - adds r0, 0xA1 - strb r0, [r4] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r1, r7, 0 - mov r2, sp - adds r0, r2, r5 - mov r3, r9 - strb r3, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r2, r7, 0 - add r1, sp - movs r0, 0xE0 - strb r0, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r3, r7, 0 - mov r0, sp - adds r1, r0, r2 - movs r0, 0xD6 - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r2, r7, 0 - mov r0, sp - adds r1, r0, r3 - movs r0, 0xE7 - strb r0, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r3, sp - adds r1, r3, r2 - mov r2, r8 - strb r2, [r1] - adds r1, r3, r0 - movs r0, 0xFF - strb r0, [r1] - mov r0, sp - mov r1, r10 - ldr r2, [sp, 0x10] - bl MenuPrint - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8091564 - - thumb_func_start sub_8091738 -sub_8091738: @ 8091738 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x80 - adds r4, r1, 0 - adds r5, r2, 0 - lsls r0, 16 - lsrs r0, 16 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - ldr r6, _080917C8 @ =gMonFootprintTable - bl NationalPokedexNumToSpecies - lsls r0, 16 - lsrs r0, 14 - adds r0, r6 - ldr r0, [r0] - mov r12, r0 - movs r7, 0 - movs r1, 0 - lsls r4, 14 - mov r8, r4 - lsls r5, 5 -_0809176A: - mov r2, r12 - adds r0, r2, r1 - ldrb r3, [r0] - movs r6, 0 - adds r4, r1, 0x1 -_08091774: - lsls r1, r6, 1 - adds r2, r3, 0 - asrs r2, r1 - movs r0, 0x1 - ands r2, r0 - movs r0, 0x2 - lsls r0, r1 - ands r0, r3 - cmp r0, 0 - beq _0809178C - movs r0, 0x10 - orrs r2, r0 -_0809178C: - mov r1, sp - adds r0, r1, r7 - strb r2, [r0] - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x3 - bls _08091774 - lsls r0, r4, 16 - lsrs r1, r0, 16 - cmp r1, 0x1F - bls _0809176A - movs r1, 0xC0 - lsls r1, 19 - adds r1, r5, r1 - add r1, r8 - mov r0, sp - movs r2, 0x40 - bl CpuSet - add sp, 0x80 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080917C8: .4byte gMonFootprintTable - thumb_func_end sub_8091738 - - thumb_func_start sub_80917CC -sub_80917CC: @ 80917CC - push {r4,lr} - lsls r0, 16 - lsls r1, 16 - lsrs r1, 16 - lsrs r0, 5 - ldr r2, _08091808 @ =0x06000232 - adds r3, r0, r2 - movs r4, 0xF0 - lsls r4, 8 - adds r2, r1, r4 - strh r2, [r3] - ldr r2, _0809180C @ =0x06000234 - adds r3, r0, r2 - adds r4, 0x1 - adds r2, r1, r4 - strh r2, [r3] - ldr r2, _08091810 @ =0x06000272 - adds r3, r0, r2 - adds r4, 0x1 - adds r2, r1, r4 - strh r2, [r3] - ldr r2, _08091814 @ =0x06000274 - adds r0, r2 - adds r4, 0x1 - adds r1, r4 - strh r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08091808: .4byte 0x06000232 -_0809180C: .4byte 0x06000234 -_08091810: .4byte 0x06000272 -_08091814: .4byte 0x06000274 - thumb_func_end sub_80917CC - - thumb_func_start sub_8091818 -sub_8091818: @ 8091818 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - lsls r1, 16 - lsrs r0, r1, 16 - lsls r2, 16 - lsrs r2, 16 - lsls r3, 16 - lsrs r3, 16 - cmp r4, 0x1 - beq _08091844 - cmp r4, 0x1 - bgt _0809183A - cmp r4, 0 - beq _0809184C - b _0809186C -_0809183A: - cmp r5, 0x2 - beq _0809185E - cmp r5, 0x3 - beq _08091852 - b _0809186C -_08091844: - cmp r0, r2 - bls _0809186C - subs r0, 0x1 - b _08091864 -_0809184C: - cmp r0, r3 - bcs _0809186C - b _08091862 -_08091852: - cmp r0, r2 - bls _0809185A - subs r0, 0x1 - b _08091864 -_0809185A: - adds r0, r3, 0 - b _0809186C -_0809185E: - cmp r0, r3 - bcs _0809186A -_08091862: - adds r0, 0x1 -_08091864: - lsls r0, 16 - lsrs r0, 16 - b _0809186C -_0809186A: - adds r0, r2, 0 -_0809186C: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8091818 - - thumb_func_start nullsub_59 -nullsub_59: @ 8091874 - bx lr - thumb_func_end nullsub_59 - - thumb_func_start sub_8091878 -sub_8091878: @ 8091878 - push {r4-r7,lr} - lsls r1, 24 - ldr r4, _080918A0 @ =gUnknown_02024E8C - adds r3, r4, 0 - ldr r2, _080918A4 @ =gUnknown_083B57A4 - ldm r2!, {r5-r7} - stm r3!, {r5-r7} - ldm r2!, {r5-r7} - stm r3!, {r5-r7} - strh r0, [r4, 0x2] - ldr r0, _080918A8 @ =gUnknown_083B5794 - lsrs r1, 22 - adds r1, r0 - ldr r0, [r1] - str r0, [r4, 0xC] - ldr r0, _080918AC @ =gSpriteAnimTable_81E7C64 - str r0, [r4, 0x8] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080918A0: .4byte gUnknown_02024E8C -_080918A4: .4byte gUnknown_083B57A4 -_080918A8: .4byte gUnknown_083B5794 -_080918AC: .4byte gSpriteAnimTable_81E7C64 - thumb_func_end sub_8091878 - - thumb_func_start sub_80918B0 -sub_80918B0: @ 80918B0 - push {r4-r7,lr} - lsls r1, 24 - ldr r4, _080918DC @ =gUnknown_02024E8C - adds r3, r4, 0 - ldr r2, _080918E0 @ =gUnknown_083B57A4 - ldm r2!, {r5-r7} - stm r3!, {r5-r7} - ldm r2!, {r5-r7} - stm r3!, {r5-r7} - strh r0, [r4, 0x2] - ldr r0, _080918E4 @ =gUnknown_083B5794 - lsrs r1, 22 - adds r1, r0 - ldr r0, [r1] - str r0, [r4, 0xC] - ldr r0, _080918E8 @ =gUnknown_081EC2A4 - ldr r0, [r0] - str r0, [r4, 0x8] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080918DC: .4byte gUnknown_02024E8C -_080918E0: .4byte gUnknown_083B57A4 -_080918E4: .4byte gUnknown_083B5794 -_080918E8: .4byte gUnknown_081EC2A4 - thumb_func_end sub_80918B0 - - thumb_func_start sub_80918EC -sub_80918EC: @ 80918EC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 16 - lsrs r7, r0, 16 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - lsls r2, 16 - lsrs r2, 16 - mov r10, r2 - lsls r3, 16 - lsrs r3, 16 - mov r8, r3 - adds r0, r7, 0 - bl NationalPokedexNumToSpecies - adds r7, r0, 0 - cmp r7, SPECIES_UNOWN - beq _0809199C - movs r0, 0x9A - lsls r0, 1 - cmp r7, r0 - beq _08091958 - lsls r6, r7, 3 - ldr r0, _0809194C @ =gMonFrontPicTable - adds r0, r6, r0 - ldr r1, _08091950 @ =gMonFrontPicCoords - lsls r2, r7, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _08091954 @ =gUnknown_083B5584 - mov r12, r4 - mov r5, r8 - lsls r4, r5, 2 - add r4, r12 - ldr r4, [r4] - str r4, [sp] - str r7, [sp, 0x4] - bl DecompressPicFromTable_2 - b _080919CE - .align 2, 0 -_0809194C: .4byte gMonFrontPicTable -_08091950: .4byte gMonFrontPicCoords -_08091954: .4byte gUnknown_083B5584 -_08091958: - lsls r6, r7, 3 - ldr r0, _0809198C @ =gMonFrontPicTable - adds r0, r6 - ldr r2, _08091990 @ =gMonFrontPicCoords - lsls r1, r7, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _08091994 @ =gUnknown_083B5584 - mov r12, r4 - mov r5, r8 - lsls r4, r5, 2 - add r4, r12 - ldr r4, [r4] - str r4, [sp] - str r7, [sp, 0x4] - ldr r4, _08091998 @ =gSaveBlock2 - ldr r4, [r4, 0x20] - str r4, [sp, 0x8] - movs r4, 0x1 - str r4, [sp, 0xC] - bl LoadSpecialPokePic - b _080919CE - .align 2, 0 -_0809198C: .4byte gMonFrontPicTable -_08091990: .4byte gMonFrontPicCoords -_08091994: .4byte gUnknown_083B5584 -_08091998: .4byte gSaveBlock2 -_0809199C: - lsls r6, r7, 3 - ldr r0, _08091A30 @ =gMonFrontPicTable - adds r0, r6 - ldr r2, _08091A34 @ =gMonFrontPicCoords - lsls r1, r7, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _08091A38 @ =gUnknown_083B5584 - mov r12, r4 - mov r5, r8 - lsls r4, r5, 2 - add r4, r12 - ldr r4, [r4] - str r4, [sp] - str r7, [sp, 0x4] - ldr r4, _08091A3C @ =gSaveBlock2 - ldr r4, [r4, 0x1C] - str r4, [sp, 0x8] - movs r4, 0x1 - str r4, [sp, 0xC] - bl LoadSpecialPokePic -_080919CE: - ldr r0, _08091A40 @ =gMonPaletteTable - adds r0, r6, r0 - ldr r0, [r0] - mov r1, r8 - lsls r4, r1, 4 - movs r2, 0x80 - lsls r2, 1 - adds r1, r4, r2 - lsls r1, 16 - lsrs r1, 16 - movs r2, 0x20 - bl LoadCompressedPalette - mov r3, r8 - lsls r1, r3, 24 - lsrs r1, 24 - mov r0, r8 - bl sub_8091878 - ldr r0, _08091A44 @ =gUnknown_02024E8C - mov r5, r9 - lsls r1, r5, 16 - asrs r1, 16 - mov r3, r10 - lsls r2, r3, 16 - asrs r2, 16 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08091A48 @ =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - ldrb r3, [r2, 0x5] - movs r1, 0xF - ands r1, r3 - orrs r1, r4 - strb r1, [r2, 0x5] - 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 -_08091A30: .4byte gMonFrontPicTable -_08091A34: .4byte gMonFrontPicCoords -_08091A38: .4byte gUnknown_083B5584 -_08091A3C: .4byte gSaveBlock2 -_08091A40: .4byte gMonPaletteTable -_08091A44: .4byte gUnknown_02024E8C -_08091A48: .4byte gSprites - thumb_func_end sub_80918EC - - thumb_func_start sub_8091A4C -sub_8091A4C: @ 8091A4C - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x8 - adds r5, r0, 0 - adds r6, r1, 0 - mov r8, r2 - mov r9, r3 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 16 - lsrs r6, 16 - mov r0, r8 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - mov r1, r9 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - lsls r0, r5, 3 - ldr r1, _08091AE4 @ =gTrainerFrontPicTable - adds r0, r1 - ldr r1, _08091AE8 @ =gTrainerFrontPicCoords - lsls r2, r5, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _08091AEC @ =gUnknown_083B5584 - ldr r4, [r4] - str r4, [sp] - str r5, [sp, 0x4] - bl DecompressPicFromTable_2 - adds r0, r5, 0 - movs r1, 0 - bl sub_80918B0 - ldr r0, _08091AF0 @ =gUnknown_02024E8C - lsls r6, 16 - asrs r6, 16 - mov r3, r8 - lsls r3, 16 - asrs r3, 16 - mov r8, r3 - adds r1, r6, 0 - mov r2, r8 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08091AF4 @ =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - mov r1, r9 - lsls r1, 4 - mov r9, r1 - ldrb r3, [r2, 0x5] - movs r1, 0xF - ands r1, r3 - mov r3, r9 - orrs r1, r3 - strb r1, [r2, 0x5] - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08091AE4: .4byte gTrainerFrontPicTable -_08091AE8: .4byte gTrainerFrontPicCoords -_08091AEC: .4byte gUnknown_083B5584 -_08091AF0: .4byte gUnknown_02024E8C -_08091AF4: .4byte gSprites - thumb_func_end sub_8091A4C - - thumb_func_start sub_8091AF8 -sub_8091AF8: @ 8091AF8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - ldr r4, [sp, 0x34] - ldr r5, [sp, 0x38] - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r7, r2, 24 - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0x4] - lsls r4, 24 - lsrs r4, 24 - str r4, [sp, 0x8] - lsls r5, 24 - lsrs r5, 24 - mov r10, r5 - bl SortPokedex - movs r5, 0 - movs r6, 0 - ldr r4, _08091D08 @ =0x00000181 - ldr r3, _08091D0C @ =gPokedexView -_08091B32: - ldr r2, [r3] - lsls r0, r5, 2 - adds r1, r2, r0 - ldrb r0, [r1, 0x2] - lsls r0, 31 - cmp r0, 0 - beq _08091B4E - lsls r0, r6, 2 - adds r0, r2, r0 - ldr r1, [r1] - str r1, [r0] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_08091B4E: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, r4 - bls _08091B32 - ldr r1, _08091D0C @ =gPokedexView - ldr r0, [r1] - ldr r2, _08091D10 @ =0x0000060c - adds r0, r2 - adds r1, r6, 0 - strh r6, [r0] - cmp r7, 0xFF - beq _08091C04 - movs r5, 0 - lsls r0, r1, 16 - movs r6, 0 - cmp r0, 0 - beq _08091BFA - lsls r7, 2 - ldr r0, _08091D14 @ =gUnknown_083B57BC - adds r0, 0x3 - adds r0, r7, r0 - str r0, [sp, 0xC] - ldr r0, _08091D14 @ =gUnknown_083B57BC - adds r0, r7 - mov r9, r0 -_08091B82: - ldr r1, _08091D0C @ =gPokedexView - ldr r0, [r1] - lsls r4, r5, 2 - adds r0, r4 - ldrh r0, [r0] - bl NationalPokedexNumToSpecies - lsls r0, 16 - lsrs r2, r0, 16 - ldr r1, _08091D18 @ =gSpeciesNames - movs r0, 0xB - muls r0, r2 - adds r0, r1 - ldrb r2, [r0] - adds r3, r2, 0 - mov r0, r9 - ldrb r0, [r0] - cmp r2, r0 - bcc _08091BBA - mov r1, r9 - ldrb r0, [r1] - ldr r1, _08091D14 @ =gUnknown_083B57BC - adds r1, 0x1 - adds r1, r7, r1 - ldrb r1, [r1] - adds r0, r1 - cmp r2, r0 - blt _08091BD2 -_08091BBA: - ldr r0, _08091D14 @ =gUnknown_083B57BC - adds r0, 0x2 - adds r0, r7, r0 - ldrb r2, [r0] - cmp r3, r2 - bcc _08091BE6 - ldrb r1, [r0] - ldr r2, [sp, 0xC] - ldrb r0, [r2] - adds r1, r0 - cmp r3, r1 - bge _08091BE6 -_08091BD2: - ldr r2, _08091D0C @ =gPokedexView - ldr r0, [r2] - lsls r1, r6, 2 - adds r1, r0, r1 - adds r0, r4 - ldr r0, [r0] - str r0, [r1] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_08091BE6: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r1, _08091D0C @ =gPokedexView - ldr r0, [r1] - ldr r2, _08091D10 @ =0x0000060c - adds r0, r2 - ldrh r0, [r0] - cmp r5, r0 - bcc _08091B82 -_08091BFA: - ldr r1, _08091D0C @ =gPokedexView - ldr r0, [r1] - ldr r2, _08091D10 @ =0x0000060c - adds r0, r2 - strh r6, [r0] -_08091C04: - ldr r0, [sp, 0x4] - cmp r0, 0xFF - beq _08091C74 - movs r5, 0 - movs r6, 0 - ldr r1, _08091D0C @ =gPokedexView - ldr r0, [r1] - ldr r2, _08091D10 @ =0x0000060c - adds r0, r2 - ldrh r0, [r0] - cmp r6, r0 - bcs _08091C6A - adds r7, r1, 0 - ldr r0, _08091D1C @ =gBaseStats - mov r8, r0 -_08091C22: - ldr r0, [r7] - lsls r4, r5, 2 - adds r0, r4 - ldrh r0, [r0] - bl NationalPokedexNumToSpecies - lsls r0, 16 - lsrs r2, r0, 16 - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - add r0, r8 - ldrb r0, [r0, 0x19] - lsls r0, 25 - lsrs r0, 25 - ldr r1, [sp, 0x4] - cmp r1, r0 - bne _08091C58 - ldr r0, [r7] - lsls r1, r6, 2 - adds r1, r0, r1 - adds r0, r4 - ldr r0, [r0] - str r0, [r1] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_08091C58: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, [r7] - ldr r2, _08091D10 @ =0x0000060c - adds r0, r2 - ldrh r0, [r0] - cmp r5, r0 - bcc _08091C22 -_08091C6A: - ldr r1, _08091D0C @ =gPokedexView - ldr r0, [r1] - ldr r2, _08091D10 @ =0x0000060c - adds r0, r2 - strh r6, [r0] -_08091C74: - ldr r0, [sp, 0x8] - cmp r0, 0xFF - bne _08091C8A - mov r1, r10 - cmp r1, 0xFF - bne _08091C82 - b _08091DA6 -_08091C82: - mov r2, r10 - str r2, [sp, 0x8] - movs r0, 0xFF - mov r10, r0 -_08091C8A: - mov r1, r10 - cmp r1, 0xFF - bne _08091D20 - movs r5, 0 - movs r6, 0 - ldr r2, _08091D0C @ =gPokedexView - ldr r0, [r2] - ldr r1, _08091D10 @ =0x0000060c - adds r0, r1 - ldrh r0, [r0] - cmp r6, r0 - bcs _08091D9C - adds r3, r2, 0 - mov r7, sp - mov r8, r2 -_08091CA8: - ldr r0, [r3] - lsls r4, r5, 2 - adds r1, r0, r4 - ldrb r0, [r1, 0x2] - lsls r0, 30 - cmp r0, 0 - bge _08091CF2 - ldrh r0, [r1] - str r3, [sp, 0x10] - bl NationalPokedexNumToSpecies - lsls r0, 16 - lsrs r2, r0, 16 - ldr r1, _08091D1C @ =gBaseStats - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x6] - strb r1, [r7] - ldrb r0, [r0, 0x7] - strb r0, [r7, 0x1] - ldr r3, [sp, 0x10] - ldr r2, [sp, 0x8] - cmp r1, r2 - beq _08091CE0 - cmp r0, r2 - bne _08091CF2 -_08091CE0: - ldr r0, [r3] - lsls r1, r6, 2 - adds r1, r0, r1 - adds r0, r4 - ldr r0, [r0] - str r0, [r1] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_08091CF2: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - mov r1, r8 - ldr r0, [r1] - ldr r2, _08091D10 @ =0x0000060c - adds r0, r2 - ldrh r0, [r0] - cmp r5, r0 - bcc _08091CA8 - b _08091D9C - .align 2, 0 -_08091D08: .4byte 0x00000181 -_08091D0C: .4byte gPokedexView -_08091D10: .4byte 0x0000060c -_08091D14: .4byte gUnknown_083B57BC -_08091D18: .4byte gSpeciesNames -_08091D1C: .4byte gBaseStats -_08091D20: - movs r5, 0 - movs r6, 0 - ldr r1, _08091E0C @ =gPokedexView - ldr r0, [r1] - ldr r2, _08091E10 @ =0x0000060c - adds r0, r2 - ldrh r0, [r0] - cmp r6, r0 - bcs _08091D9C - mov r7, sp -_08091D34: - ldr r0, [r1] - lsls r1, r5, 2 - adds r2, r0, r1 - ldrb r0, [r2, 0x2] - lsls r0, 30 - adds r4, r1, 0 - cmp r0, 0 - bge _08091D88 - ldrh r0, [r2] - bl NationalPokedexNumToSpecies - lsls r0, 16 - lsrs r2, r0, 16 - ldr r1, _08091E14 @ =gBaseStats - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x6] - strb r1, [r7] - ldrb r0, [r0, 0x7] - strb r0, [r7, 0x1] - ldr r2, [sp, 0x8] - cmp r1, r2 - bne _08091D6A - cmp r0, r10 - beq _08091D74 -_08091D6A: - cmp r1, r10 - bne _08091D88 - ldr r1, [sp, 0x8] - cmp r0, r1 - bne _08091D88 -_08091D74: - ldr r2, _08091E0C @ =gPokedexView - ldr r0, [r2] - lsls r1, r6, 2 - adds r1, r0, r1 - adds r0, r4 - ldr r0, [r0] - str r0, [r1] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_08091D88: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r1, _08091E0C @ =gPokedexView - ldr r0, [r1] - ldr r2, _08091E10 @ =0x0000060c - adds r0, r2 - ldrh r0, [r0] - cmp r5, r0 - bcc _08091D34 -_08091D9C: - ldr r1, _08091E0C @ =gPokedexView - ldr r0, [r1] - ldr r2, _08091E10 @ =0x0000060c - adds r0, r2 - strh r6, [r0] -_08091DA6: - ldr r1, _08091E0C @ =gPokedexView - ldr r0, [r1] - ldr r2, _08091E10 @ =0x0000060c - adds r1, r0, r2 - ldrh r0, [r1] - cmp r0, 0 - beq _08091DFA - adds r5, r0, 0 - ldr r0, _08091E18 @ =0x00000181 - cmp r5, r0 - bhi _08091DFA - ldr r4, _08091E0C @ =gPokedexView - movs r1, 0x2 - negs r1, r1 - mov r10, r1 - movs r2, 0x3 - negs r2, r2 - mov r9, r2 - mov r8, r0 - ldr r0, _08091E1C @ =0x0000ffff - adds r7, r0, 0 -_08091DD0: - ldr r1, [r4] - lsls r3, r5, 2 - adds r1, r3 - ldrh r0, [r1] - orrs r0, r7 - strh r0, [r1] - ldrb r2, [r1, 0x2] - mov r0, r10 - ands r0, r2 - strb r0, [r1, 0x2] - ldr r1, [r4] - adds r1, r3 - ldrb r2, [r1, 0x2] - mov r0, r9 - ands r0, r2 - strb r0, [r1, 0x2] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, r8 - bls _08091DD0 -_08091DFA: - adds r0, r6, 0 - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08091E0C: .4byte gPokedexView -_08091E10: .4byte 0x0000060c -_08091E14: .4byte gBaseStats -_08091E18: .4byte 0x00000181 -_08091E1C: .4byte 0x0000ffff - thumb_func_end sub_8091AF8 - - thumb_func_start sub_8091E20 -sub_8091E20: @ 8091E20 - push {lr} - sub sp, 0x8 - movs r1, 0x20 - str r1, [sp] - movs r1, 0x1 - str r1, [sp, 0x4] - movs r1, 0x9 - movs r2, 0x78 - movs r3, 0xD0 - bl sub_8072AB0 - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_8091E20 - - thumb_func_start sub_8091E3C -sub_8091E3C: @ 8091E3C - push {lr} - ldr r0, _08091E50 @ =sub_8091E54 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08091E50: .4byte sub_8091E54 - thumb_func_end sub_8091E3C - - thumb_func_start sub_8091E54 -sub_8091E54: @ 8091E54 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _08091E78 @ =gMain - ldr r2, _08091E7C @ =0x0000043c - adds r0, r1, r2 - ldrb r0, [r0] - adds r3, r1, 0 - cmp r0, 0x4 - bhi _08091E98 - lsls r0, 2 - ldr r1, _08091E80 @ =_08091E84 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08091E78: .4byte gMain -_08091E7C: .4byte 0x0000043c -_08091E80: .4byte _08091E84 - .align 2, 0 -_08091E84: - .4byte _08091E98 - .4byte _08091F50 - .4byte _08091FC0 - .4byte _08091FE0 - .4byte _0809200C -_08091E98: - ldr r0, _08091F1C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08091EA6 - b _08092030 -_08091EA6: - ldr r0, _08091F20 @ =gPokedexView - ldr r0, [r0] - ldr r1, _08091F24 @ =0x0000064a - adds r0, r1 - movs r1, 0x2 - strb r1, [r0] - movs r0, 0 - bl sub_8091060 - ldr r0, _08091F28 @ =gPokedexMenuSearch_Gfx - movs r1, 0xC0 - lsls r1, 19 - bl LZ77UnCompVram - ldr r0, _08091F2C @ =gUnknown_08E96D2C - ldr r1, _08091F30 @ =0x06007800 - bl LZ77UnCompVram - ldr r0, _08091F34 @ =gPokedexMenuSearch_Pal + 0x2 - movs r1, 0x1 - movs r2, 0x7E - bl LoadPalette - bl IsNationalPokedexEnabled - cmp r0, 0 - bne _08091F10 - movs r4, 0 - ldr r2, _08091F38 @ =0x06007a80 - mov r8, r2 - ldr r0, _08091F3C @ =0x06007b00 - mov r12, r0 - movs r5, 0x1 - ldr r7, _08091F40 @ =0x06007ac0 - ldr r6, _08091F44 @ =0x06007b40 -_08091EEC: - lsls r1, r4, 1 - mov r0, r8 - adds r2, r1, r0 - mov r0, r12 - adds r3, r1, r0 - ldrh r0, [r3] - strh r0, [r2] - adds r2, r1, r7 - adds r1, r6 - ldrh r0, [r1] - strh r0, [r2] - strh r5, [r3] - strh r5, [r1] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x10 - bls _08091EEC -_08091F10: - ldr r0, _08091F48 @ =gMain - ldr r1, _08091F4C @ =0x0000043c - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - b _08092030 - .align 2, 0 -_08091F1C: .4byte gPaletteFade -_08091F20: .4byte gPokedexView -_08091F24: .4byte 0x0000064a -_08091F28: .4byte gPokedexMenuSearch_Gfx -_08091F2C: .4byte gUnknown_08E96D2C -_08091F30: .4byte 0x06007800 -_08091F34: .4byte gPokedexMenuSearch_Pal + 0x2 -_08091F38: .4byte 0x06007a80 -_08091F3C: .4byte 0x06007b00 -_08091F40: .4byte 0x06007ac0 -_08091F44: .4byte 0x06007b40 -_08091F48: .4byte gMain -_08091F4C: .4byte 0x0000043c -_08091F50: - ldr r4, _08091FA8 @ =gWindowConfig_81E7064 - adds r0, r4, 0 - bl SetUpWindowConfig - adds r0, r4, 0 - bl InitMenuWindow - ldr r0, _08091FAC @ =gUnknown_083A05CC - bl LoadCompressedObjectPic - ldr r0, _08091FB0 @ =gUnknown_083A05DC - bl LoadSpritePalettes - adds r0, r5, 0 - bl sub_809308C - movs r4, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r1, r0, 3 - ldr r3, _08091FB4 @ =gTasks + 0x8 - movs r2, 0 -_08091F7C: - lsls r0, r4, 1 - adds r0, r1 - adds r0, r3 - strh r2, [r0] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0xF - bls _08091F7C - adds r0, r5, 0 - bl sub_8092EB0 - movs r0, 0 - bl sub_8092AB0 - adds r0, r5, 0 - bl sub_8092B68 - ldr r1, _08091FB8 @ =gMain - ldr r2, _08091FBC @ =0x0000043c - adds r1, r2 - b _08091FF6 - .align 2, 0 -_08091FA8: .4byte gWindowConfig_81E7064 -_08091FAC: .4byte gUnknown_083A05CC -_08091FB0: .4byte gUnknown_083A05DC -_08091FB4: .4byte gTasks + 0x8 -_08091FB8: .4byte gMain -_08091FBC: .4byte 0x0000043c -_08091FC0: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r1, _08091FD8 @ =gMain - ldr r0, _08091FDC @ =0x0000043c - adds r1, r0 - b _08091FF6 - .align 2, 0 -_08091FD8: .4byte gMain -_08091FDC: .4byte 0x0000043c -_08091FE0: - ldr r1, _08092000 @ =REG_BG3CNT - ldr r2, _08092004 @ =0x00000f03 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0xE - movs r2, 0xE2 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _08092008 @ =0x0000043c - adds r1, r3, r0 -_08091FF6: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08092030 - .align 2, 0 -_08092000: .4byte REG_BG3CNT -_08092004: .4byte 0x00000f03 -_08092008: .4byte 0x0000043c -_0809200C: - ldr r0, _0809203C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - bne _08092030 - ldr r1, _08092040 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _08092044 @ =sub_809204C - str r1, [r0] - ldr r1, _08092048 @ =0x0000043c - adds r0, r3, r1 - strb r2, [r0] -_08092030: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809203C: .4byte gPaletteFade -_08092040: .4byte gTasks -_08092044: .4byte sub_809204C -_08092048: .4byte 0x0000043c - thumb_func_end sub_8091E54 - - thumb_func_start sub_809204C -sub_809204C: @ 809204C - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _08092074 @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - ldrb r0, [r4, 0x8] - bl sub_8092AB0 - adds r0, r5, 0 - bl sub_8092B68 - ldr r0, _08092078 @ =sub_809207C - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08092074: .4byte gTasks -_08092078: .4byte sub_809207C - thumb_func_end sub_809204C - - thumb_func_start sub_809207C -sub_809207C: @ 809207C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080920A4 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080920B0 - movs r0, 0x3 - bl PlaySE - ldr r0, _080920A8 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _080920AC @ =sub_80927B8 - str r0, [r1] - b _0809216C - .align 2, 0 -_080920A4: .4byte gMain -_080920A8: .4byte gTasks -_080920AC: .4byte sub_80927B8 -_080920B0: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0809210C - ldr r1, _080920D4 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r5, r0, r1 - movs r0, 0x8 - ldrsh r4, [r5, r0] - cmp r4, 0x1 - beq _080920E8 - cmp r4, 0x1 - bgt _080920D8 - cmp r4, 0 - beq _080920DE - b _0809216C - .align 2, 0 -_080920D4: .4byte gTasks -_080920D8: - cmp r4, 0x2 - beq _080920FC - b _0809216C -_080920DE: - movs r0, 0x15 - bl PlaySE - strh r4, [r5, 0xA] - b _080920F2 -_080920E8: - movs r0, 0x15 - bl PlaySE - movs r0, 0x4 - strh r0, [r5, 0xA] -_080920F2: - ldr r0, _080920F8 @ =sub_809217C - str r0, [r5] - b _0809216C - .align 2, 0 -_080920F8: .4byte sub_809217C -_080920FC: - movs r0, 0x3 - bl PlaySE - ldr r0, _08092108 @ =sub_80927B8 - str r0, [r5] - b _0809216C - .align 2, 0 -_08092108: .4byte sub_80927B8 -_0809210C: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0809213A - ldr r0, _08092174 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r4, r1, r0 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - ble _0809213A - movs r0, 0x6D - bl PlaySE - ldrh r0, [r4, 0x8] - subs r0, 0x1 - strh r0, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - bl sub_8092AB0 -_0809213A: - ldr r0, _08092178 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0809216C - ldr r0, _08092174 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r4, r1, r0 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bgt _0809216C - movs r0, 0x6D - bl PlaySE - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - bl sub_8092AB0 -_0809216C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08092174: .4byte gTasks -_08092178: .4byte gMain - thumb_func_end sub_809207C - - thumb_func_start sub_809217C -sub_809217C: @ 809217C - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _080921A8 @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - ldrb r0, [r4, 0x8] - ldrb r1, [r4, 0xA] - bl sub_8092AD4 - adds r0, r5, 0 - bl sub_8092B68 - ldr r0, _080921AC @ =sub_80921B0 - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080921A8: .4byte gTasks -_080921AC: .4byte sub_80921B0 - thumb_func_end sub_809217C - - thumb_func_start sub_80921B0 -sub_80921B0: @ 80921B0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080921D8 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0x8 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080921E4 - bl IsNationalPokedexEnabled - ldr r6, _080921DC @ =gUnknown_083B586C - cmp r0, 0 - bne _080921F0 - ldr r6, _080921E0 @ =gUnknown_083B58A4 - b _080921F0 - .align 2, 0 -_080921D8: .4byte gTasks -_080921DC: .4byte gUnknown_083B586C -_080921E0: .4byte gUnknown_083B58A4 -_080921E4: - bl IsNationalPokedexEnabled - ldr r6, _0809221C @ =gUnknown_083B5850 - cmp r0, 0 - bne _080921F0 - ldr r6, _08092220 @ =gUnknown_083B5888 -_080921F0: - ldr r0, _08092224 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0 - beq _08092230 - movs r0, 0x17 - bl PlaySE - adds r0, r5, 0 - bl sub_8092EB0 - ldr r0, _08092228 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _0809222C @ =sub_809204C - str r0, [r1] - b _080923EC - .align 2, 0 -_0809221C: .4byte gUnknown_083B5850 -_08092220: .4byte gUnknown_083B5888 -_08092224: .4byte gMain -_08092228: .4byte gTasks -_0809222C: .4byte sub_809204C -_08092230: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08092300 - ldr r0, _080922B4 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r6, r1, r0 - movs r2, 0xA - ldrsh r0, [r6, r2] - cmp r0, 0x6 - bne _080922F0 - movs r1, 0x8 - ldrsh r0, [r6, r1] - cmp r0, 0 - beq _080922D4 - ldr r1, _080922B8 @ =gUnknown_0202FFBA - movs r0, 0x40 - strb r0, [r1] - ldr r7, _080922BC @ =gPokedexView - ldr r1, [r7] - ldr r0, _080922C0 @ =0x0000062a - adds r2, r1, r0 - movs r0, 0x40 - strh r0, [r2] - ldr r0, _080922C4 @ =gUnknown_0202FFB8 - strh r3, [r0] - movs r2, 0xC2 - lsls r2, 3 - adds r1, r2 - strh r3, [r1] - adds r0, r5, 0 - movs r1, 0x5 - bl sub_8092E10 - ldr r4, _080922C8 @ =gSaveBlock2 - strb r0, [r4, 0x19] - bl IsNationalPokedexEnabled - cmp r0, 0 - bne _08092288 - movs r0, 0 - strb r0, [r4, 0x19] -_08092288: - ldr r0, [r7] - ldrb r1, [r4, 0x19] - ldr r2, _080922CC @ =0x00000614 - adds r0, r2 - strh r1, [r0] - adds r0, r5, 0 - movs r1, 0x4 - bl sub_8092E10 - strb r0, [r4, 0x18] - ldr r0, [r7] - ldrb r1, [r4, 0x18] - movs r2, 0xC3 - lsls r2, 3 - adds r0, r2 - strh r1, [r0] - movs r0, 0x3 - bl PlaySE - ldr r0, _080922D0 @ =sub_80927B8 - str r0, [r6] - b _080923EC - .align 2, 0 -_080922B4: .4byte gTasks -_080922B8: .4byte gUnknown_0202FFBA -_080922BC: .4byte gPokedexView -_080922C0: .4byte 0x0000062a -_080922C4: .4byte gUnknown_0202FFB8 -_080922C8: .4byte gSaveBlock2 -_080922CC: .4byte 0x00000614 -_080922D0: .4byte sub_80927B8 -_080922D4: - ldr r0, _080922E8 @ =gDexText_Searching - bl sub_8091E20 - ldr r0, _080922EC @ =sub_80923FC - str r0, [r6] - movs r0, 0x70 - bl PlaySE - b _080923EC - .align 2, 0 -_080922E8: .4byte gDexText_Searching -_080922EC: .4byte sub_80923FC -_080922F0: - movs r0, 0x15 - bl PlaySE - ldr r0, _080922FC @ =sub_80925CC - str r0, [r6] - b _080923EC - .align 2, 0 -_080922FC: .4byte sub_80925CC -_08092300: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08092338 - ldr r1, _080923F4 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0xA - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r6 - ldrb r0, [r0] - cmp r0, 0xFF - beq _08092338 - movs r0, 0x5 - bl PlaySE - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 2 - adds r0, r6 - ldrb r1, [r0] - strh r1, [r4, 0xA] - ldrb r0, [r4, 0x8] - bl sub_8092AD4 -_08092338: - ldr r0, _080923F8 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08092374 - ldr r1, _080923F4 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0xA - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r6 - ldrb r0, [r0, 0x1] - cmp r0, 0xFF - beq _08092374 - movs r0, 0x5 - bl PlaySE - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 2 - adds r0, r6 - ldrb r1, [r0, 0x1] - strh r1, [r4, 0xA] - ldrb r0, [r4, 0x8] - bl sub_8092AD4 -_08092374: - ldr r0, _080923F8 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080923B0 - ldr r1, _080923F4 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0xA - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r6 - ldrb r0, [r0, 0x2] - cmp r0, 0xFF - beq _080923B0 - movs r0, 0x5 - bl PlaySE - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 2 - adds r0, r6 - ldrb r1, [r0, 0x2] - strh r1, [r4, 0xA] - ldrb r0, [r4, 0x8] - bl sub_8092AD4 -_080923B0: - ldr r0, _080923F8 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080923EC - ldr r1, _080923F4 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0xA - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r6 - ldrb r0, [r0, 0x3] - cmp r0, 0xFF - beq _080923EC - movs r0, 0x5 - bl PlaySE - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 2 - adds r0, r6 - ldrb r1, [r0, 0x3] - strh r1, [r4, 0xA] - ldrb r0, [r4, 0x8] - bl sub_8092AD4 -_080923EC: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080923F4: .4byte gTasks -_080923F8: .4byte gMain - thumb_func_end sub_80921B0 - - thumb_func_start sub_80923FC -sub_80923FC: @ 80923FC - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0x8 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - adds r0, r5, 0 - movs r1, 0x5 - bl sub_8092E10 - mov r10, r0 - mov r0, r10 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - adds r0, r5, 0 - movs r1, 0x4 - bl sub_8092E10 - mov r9, r0 - mov r0, r9 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - adds r0, r5, 0 - movs r1, 0 - bl sub_8092E10 - mov r8, r0 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8092E10 - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - adds r0, r5, 0 - movs r1, 0x2 - bl sub_8092E10 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x3 - bl sub_8092E10 - lsls r0, 24 - lsrs r0, 24 - str r4, [sp] - str r0, [sp, 0x4] - mov r0, r10 - mov r1, r9 - mov r2, r8 - adds r3, r6, 0 - bl sub_8091AF8 - ldr r1, _0809249C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _080924A0 @ =sub_80924A4 - str r1, [r0] - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809249C: .4byte gTasks -_080924A0: .4byte sub_80924A4 - thumb_func_end sub_80923FC - - thumb_func_start sub_80924A4 -sub_80924A4: @ 80924A4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl IsSEPlaying - lsls r0, 24 - cmp r0, 0 - bne _080924F6 - ldr r0, _080924D0 @ =gPokedexView - ldr r0, [r0] - ldr r1, _080924D4 @ =0x0000060c - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0 - beq _080924DC - movs r0, 0x1F - bl PlaySE - ldr r0, _080924D8 @ =gDexText_SearchComplete - bl sub_8091E20 - b _080924E8 - .align 2, 0 -_080924D0: .4byte gPokedexView -_080924D4: .4byte 0x0000060c -_080924D8: .4byte gDexText_SearchComplete -_080924DC: - movs r0, 0x20 - bl PlaySE - ldr r0, _080924FC @ =gDexText_NoMatching - bl sub_8091E20 -_080924E8: - ldr r0, _08092500 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _08092504 @ =sub_8092508 - str r0, [r1] -_080924F6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080924FC: .4byte gDexText_NoMatching -_08092500: .4byte gTasks -_08092504: .4byte sub_8092508 - thumb_func_end sub_80924A4 - - thumb_func_start sub_8092508 -sub_8092508: @ 8092508 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r2, r4, 0 - ldr r0, _08092570 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080925A4 - ldr r5, _08092574 @ =gPokedexView - ldr r1, [r5] - ldr r3, _08092578 @ =0x0000060c - adds r0, r1, r3 - ldrh r0, [r0] - cmp r0, 0 - beq _08092590 - ldr r0, _0809257C @ =0x0000064f - adds r1, r0 - movs r0, 0x1 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x5 - bl sub_8092E10 - ldr r1, [r5] - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08092580 @ =0x00000612 - adds r1, r2 - strh r0, [r1] - adds r0, r4, 0 - movs r1, 0x4 - bl sub_8092E10 - ldr r1, [r5] - lsls r0, 24 - lsrs r0, 24 - ldr r3, _08092584 @ =0x00000616 - adds r1, r3 - strh r0, [r1] - ldr r1, _08092588 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0809258C @ =sub_80927B8 - str r1, [r0] - movs r0, 0x3 - bl PlaySE - b _080925A4 - .align 2, 0 -_08092570: .4byte gMain -_08092574: .4byte gPokedexView -_08092578: .4byte 0x0000060c -_0809257C: .4byte 0x0000064f -_08092580: .4byte 0x00000612 -_08092584: .4byte 0x00000616 -_08092588: .4byte gTasks -_0809258C: .4byte sub_80927B8 -_08092590: - ldr r0, _080925AC @ =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldr r0, _080925B0 @ =sub_809217C - str r0, [r1] - movs r0, 0x17 - bl PlaySE -_080925A4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080925AC: .4byte gTasks -_080925B0: .4byte sub_809217C - thumb_func_end sub_8092508 - - thumb_func_start sub_80925B4 -sub_80925B4: @ 80925B4 - push {lr} - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 15 - adds r1, 0x1 - lsls r1, 27 - lsrs r1, 24 - movs r0, 0x90 - bl sub_814AD7C - pop {r0} - bx r0 - thumb_func_end sub_80925B4 - - thumb_func_start sub_80925CC -sub_80925CC: @ 80925CC - push {r4-r6,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - bl sub_8092C8C - ldr r2, _08092630 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r6, r1, r2 - ldrb r0, [r6, 0xA] - adds r2, 0x8 - adds r1, r2 - ldr r2, _08092634 @ =gUnknown_083B5A7C - lsls r0, 3 - adds r0, r2 - ldrb r5, [r0, 0x4] - lsls r5, 1 - adds r5, r1, r5 - ldrb r0, [r0, 0x5] - lsls r0, 1 - adds r1, r0 - ldrh r0, [r5] - strh r0, [r6, 0x24] - ldrh r0, [r1] - strh r0, [r6, 0x26] - adds r0, r4, 0 - bl sub_8092D78 - ldr r1, _08092638 @ =0x0000ffff - ldr r3, _0809263C @ =0x00002d9f - movs r0, 0xB - str r0, [sp] - movs r0, 0x10 - movs r2, 0xC - bl CreateBlendedOutlineCursor - ldrh r0, [r5] - movs r1, 0x1 - bl sub_80925B4 - ldr r0, _08092640 @ =sub_8092644 - str r0, [r6] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08092630: .4byte gTasks -_08092634: .4byte gUnknown_083B5A7C -_08092638: .4byte 0x0000ffff -_0809263C: .4byte 0x00002d9f -_08092640: .4byte sub_8092644 - thumb_func_end sub_80925CC - - thumb_func_start sub_8092644 -sub_8092644: @ 8092644 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r3, _080926A8 @ =gTasks - lsls r2, r7, 2 - adds r2, r7 - lsls r2, 3 - adds r6, r2, r3 - ldrb r1, [r6, 0xA] - ldr r0, _080926AC @ =gUnknown_083B5A7C - lsls r1, 3 - adds r1, r0 - ldr r0, [r1] - mov r8, r0 - adds r3, 0x8 - adds r2, r3 - ldrb r0, [r1, 0x4] - lsls r0, 1 - adds r4, r2, r0 - ldrb r0, [r1, 0x5] - lsls r0, 1 - adds r5, r2, r0 - ldrh r0, [r1, 0x6] - subs r0, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldr r0, _080926B0 @ =gMain - mov r12, r0 - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080926B4 - bl sub_814ADC8 - movs r0, 0x15 - bl PlaySE - movs r0, 0x12 - movs r1, 0x1 - movs r2, 0x1C - movs r3, 0xC - bl MenuZeroFillWindowRect - movs r0, 0x1 - bl sub_8092C8C - b _080926E0 - .align 2, 0 -_080926A8: .4byte gTasks -_080926AC: .4byte gUnknown_083B5A7C -_080926B0: .4byte gMain -_080926B4: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080926EC - bl sub_814ADC8 - movs r0, 0x17 - bl PlaySE - movs r0, 0x12 - movs r1, 0x1 - movs r2, 0x1C - movs r3, 0xC - bl MenuZeroFillWindowRect - movs r0, 0x1 - bl sub_8092C8C - ldrh r0, [r6, 0x24] - strh r0, [r4] - ldrh r0, [r6, 0x26] - strh r0, [r5] -_080926E0: - ldr r0, _080926E8 @ =sub_809217C - str r0, [r6] - b _080927AE - .align 2, 0 -_080926E8: .4byte sub_809217C -_080926EC: - movs r3, 0 - mov r0, r12 - ldrh r1, [r0, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0809274C - ldrh r0, [r4] - cmp r0, 0 - beq _08092716 - movs r1, 0 - bl sub_80925B4 - ldrh r0, [r4] - subs r0, 0x1 - strh r0, [r4] - ldrh r0, [r4] - movs r1, 0x1 - bl sub_80925B4 - b _08092734 -_08092716: - ldrh r0, [r5] - cmp r0, 0 - beq _08092730 - subs r0, 0x1 - strh r0, [r5] - adds r0, r7, 0 - bl sub_8092D78 - ldrh r0, [r4] - movs r1, 0x1 - bl sub_80925B4 - movs r3, 0x1 -_08092730: - cmp r3, 0 - beq _080927AE -_08092734: - movs r0, 0x5 - bl PlaySE - ldrh r0, [r4] - ldrh r1, [r5] - adds r0, r1 - lsls r0, 3 - add r0, r8 - ldr r0, [r0] - bl sub_8091E20 - b _080927AE -_0809274C: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080927AE - ldrh r0, [r4] - cmp r0, 0x4 - bhi _08092774 - cmp r0, r2 - bcs _08092774 - movs r1, 0 - bl sub_80925B4 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - ldrh r0, [r4] - movs r1, 0x1 - bl sub_80925B4 - b _08092798 -_08092774: - cmp r2, 0x5 - bls _08092794 - ldrh r1, [r5] - subs r0, r2, 0x5 - cmp r1, r0 - bge _08092794 - adds r0, r1, 0x1 - strh r0, [r5] - adds r0, r7, 0 - bl sub_8092D78 - movs r0, 0x5 - movs r1, 0x1 - bl sub_80925B4 - movs r3, 0x1 -_08092794: - cmp r3, 0 - beq _080927AE -_08092798: - movs r0, 0x5 - bl PlaySE - ldrh r0, [r4] - ldrh r1, [r5] - adds r0, r1 - lsls r0, 3 - add r0, r8 - ldr r0, [r0] - bl sub_8091E20 -_080927AE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8092644 - - thumb_func_start sub_80927B8 -sub_80927B8: @ 80927B8 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _080927E8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080927EC @ =sub_80927F0 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080927E8: .4byte gTasks -_080927EC: .4byte sub_80927F0 - thumb_func_end sub_80927B8 - - thumb_func_start sub_80927F0 -sub_80927F0: @ 80927F0 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _0809280C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08092808 - adds r0, r2, 0 - bl DestroyTask -_08092808: - pop {r0} - bx r0 - .align 2, 0 -_0809280C: .4byte gPaletteFade - thumb_func_end sub_80927F0 - - thumb_func_start sub_8092810 -sub_8092810: @ 8092810 - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r12, r1 - lsls r2, 24 - lsrs r1, r2, 24 - lsls r3, 24 - lsrs r5, r3, 8 - movs r3, 0 - cmp r5, 0 - beq _0809285A - lsls r7, r1, 6 - ldr r6, _08092860 @ =0x00000fff - lsls r4, r0, 12 -_08092830: - mov r0, r12 - adds r1, r0, r3 - lsls r1, 1 - adds r1, r7, r1 - ldr r0, _08092864 @ =0x06007800 - adds r2, r1, r0 - ldrh r0, [r2] - ands r0, r6 - orrs r0, r4 - strh r0, [r2] - ldr r0, _08092868 @ =0x06007840 - adds r1, r0 - ldrh r0, [r1] - ands r0, r6 - orrs r0, r4 - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r0, r5 - bcc _08092830 -_0809285A: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08092860: .4byte 0x00000fff -_08092864: .4byte 0x06007800 -_08092868: .4byte 0x06007840 - thumb_func_end sub_8092810 - - thumb_func_start sub_809286C -sub_809286C: @ 809286C - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 24 - lsrs r2, 24 - movs r0, 0x1 - ands r5, r0 - ands r2, r0 - lsls r2, 1 - orrs r5, r2 - cmp r4, 0xA - bhi _08092958 - lsls r0, r4, 2 - ldr r1, _08092894 @ =_08092898 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08092894: .4byte _08092898 - .align 2, 0 -_08092898: - .4byte _080928C4 - .4byte _080928C4 - .4byte _080928C4 - .4byte _080928D4 - .4byte _080928D4 - .4byte _080928EC - .4byte _080928EC - .4byte _080928D4 - .4byte _080928D4 - .4byte _08092914 - .4byte _08092904 -_080928C4: - ldr r1, _080928D0 @ =gUnknown_083B57E4 - lsls r0, r4, 3 - adds r0, r1 - ldrb r1, [r0, 0x4] - ldrb r2, [r0, 0x5] - b _08092932 - .align 2, 0 -_080928D0: .4byte gUnknown_083B57E4 -_080928D4: - ldr r2, _08092900 @ =gUnknown_083B57FC - subs r1, r4, 0x3 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x4] - ldrb r2, [r0, 0x5] - ldrb r3, [r0, 0x6] - adds r0, r5, 0 - bl sub_8092810 -_080928EC: - ldr r2, _08092900 @ =gUnknown_083B57FC - subs r1, r4, 0x3 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x7] - ldrb r2, [r0, 0x8] - ldrb r3, [r0, 0x9] - b _08092934 - .align 2, 0 -_08092900: .4byte gUnknown_083B57FC -_08092904: - ldr r0, _08092910 @ =gUnknown_083B57FC - ldrb r1, [r0, 0x1C] - ldrb r2, [r0, 0x1D] - ldrb r3, [r0, 0x1E] - b _08092934 - .align 2, 0 -_08092910: .4byte gUnknown_083B57FC -_08092914: - bl IsNationalPokedexEnabled - cmp r0, 0 - bne _08092940 - ldr r2, _0809293C @ =gUnknown_083B57FC - subs r1, r4, 0x3 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x4] - ldrb r2, [r0, 0x5] - subs r2, 0x2 - lsls r2, 24 - lsrs r2, 24 -_08092932: - ldrb r3, [r0, 0x6] -_08092934: - adds r0, r5, 0 - bl sub_8092810 - b _08092958 - .align 2, 0 -_0809293C: .4byte gUnknown_083B57FC -_08092940: - ldr r2, _08092960 @ =gUnknown_083B57FC - subs r1, r4, 0x3 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x4] - ldrb r2, [r0, 0x5] - ldrb r3, [r0, 0x6] - adds r0, r5, 0 - bl sub_8092810 -_08092958: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08092960: .4byte gUnknown_083B57FC - thumb_func_end sub_809286C - - thumb_func_start sub_8092964 -sub_8092964: @ 8092964 - push {lr} - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x1 - beq _080929CE - cmp r0, 0x1 - bgt _0809297A - cmp r0, 0 - beq _08092980 - b _08092AAC -_0809297A: - cmp r1, 0x2 - beq _08092A3E - b _08092AAC -_08092980: - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl sub_809286C - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0 - bl sub_809286C - movs r0, 0x2 - movs r1, 0x1 - movs r2, 0 - bl sub_809286C - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0 - bl sub_809286C - movs r0, 0x4 - movs r1, 0x1 - movs r2, 0 - bl sub_809286C - movs r0, 0xA - movs r1, 0x1 - movs r2, 0 - bl sub_809286C - movs r0, 0x5 - movs r1, 0x1 - movs r2, 0 - bl sub_809286C - movs r0, 0x6 - movs r1, 0x1 - movs r2, 0 - b _08092A1A -_080929CE: - movs r0, 0 - movs r1, 0x1 - movs r2, 0 - bl sub_809286C - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl sub_809286C - movs r0, 0x2 - movs r1, 0x1 - movs r2, 0 - bl sub_809286C - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0x1 - bl sub_809286C - movs r0, 0x4 - movs r1, 0x1 - movs r2, 0x1 - bl sub_809286C - movs r0, 0xA - movs r1, 0x1 - movs r2, 0x1 - bl sub_809286C - movs r0, 0x5 - movs r1, 0x1 - movs r2, 0x1 - bl sub_809286C - movs r0, 0x6 - movs r1, 0x1 - movs r2, 0x1 -_08092A1A: - bl sub_809286C - movs r0, 0x7 - movs r1, 0x1 - movs r2, 0 - bl sub_809286C - movs r0, 0x8 - movs r1, 0x1 - movs r2, 0 - bl sub_809286C - movs r0, 0x9 - movs r1, 0x1 - movs r2, 0 - bl sub_809286C - b _08092AAC -_08092A3E: - movs r0, 0 - movs r1, 0x1 - movs r2, 0 - bl sub_809286C - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0 - bl sub_809286C - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl sub_809286C - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0x1 - bl sub_809286C - movs r0, 0x4 - movs r1, 0x1 - movs r2, 0x1 - bl sub_809286C - movs r0, 0xA - movs r1, 0x1 - movs r2, 0x1 - bl sub_809286C - movs r0, 0x5 - movs r1, 0x1 - movs r2, 0x1 - bl sub_809286C - movs r0, 0x6 - movs r1, 0x1 - movs r2, 0x1 - bl sub_809286C - movs r0, 0x7 - movs r1, 0x1 - movs r2, 0x1 - bl sub_809286C - movs r0, 0x8 - movs r1, 0x1 - movs r2, 0x1 - bl sub_809286C - movs r0, 0x9 - movs r1, 0x1 - movs r2, 0x1 - bl sub_809286C -_08092AAC: - pop {r0} - bx r0 - thumb_func_end sub_8092964 - - thumb_func_start sub_8092AB0 -sub_8092AB0: @ 8092AB0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_8092964 - ldr r0, _08092AD0 @ =gUnknown_083B57E4 - lsls r4, 3 - adds r4, r0 - ldr r0, [r4] - bl sub_8091E20 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08092AD0: .4byte gUnknown_083B57E4 - thumb_func_end sub_8092AB0 - - thumb_func_start sub_8092AD4 -sub_8092AD4: @ 8092AD4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - bl sub_8092964 - cmp r4, 0x6 - bhi _08092B4E - lsls r0, r4, 2 - ldr r1, _08092AF0 @ =_08092AF4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08092AF0: .4byte _08092AF4 - .align 2, 0 -_08092AF4: - .4byte _08092B10 - .4byte _08092B14 - .4byte _08092B18 - .4byte _08092B26 - .4byte _08092B34 - .4byte _08092B38 - .4byte _08092B44 -_08092B10: - movs r0, 0x3 - b _08092B3A -_08092B14: - movs r0, 0x4 - b _08092B3A -_08092B18: - movs r0, 0xA - movs r1, 0 - movs r2, 0 - bl sub_809286C - movs r0, 0x5 - b _08092B3A -_08092B26: - movs r0, 0xA - movs r1, 0 - movs r2, 0 - bl sub_809286C - movs r0, 0x6 - b _08092B3A -_08092B34: - movs r0, 0x7 - b _08092B3A -_08092B38: - movs r0, 0x8 -_08092B3A: - movs r1, 0 - movs r2, 0 - bl sub_809286C - b _08092B4E -_08092B44: - movs r0, 0x9 - movs r1, 0 - movs r2, 0 - bl sub_809286C -_08092B4E: - ldr r0, _08092B64 @ =gUnknown_083B57FC - lsls r1, r4, 1 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - bl sub_8091E20 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08092B64: .4byte gUnknown_083B57FC - thumb_func_end sub_8092AD4 - - thumb_func_start sub_8092B68 -sub_8092B68: @ 8092B68 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08092C68 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r6, r1, r2 - ldrh r0, [r6, 0x16] - ldrh r1, [r6, 0x14] - adds r0, r1 - lsls r0, 16 - ldr r7, _08092C6C @ =gStringVar1 - ldr r1, _08092C70 @ =gUnknown_083B5910 - lsrs r0, 13 - adds r1, 0x4 - adds r0, r1 - ldr r1, [r0] - adds r0, r7, 0 - bl StringCopy - ldr r0, _08092C74 @ =gUnknown_083B5AB2 - mov r8, r0 - movs r1, 0x2D - movs r2, 0x10 - movs r3, 0x1 - bl MenuPrint_PixelCoords - ldrh r0, [r6, 0x1A] - ldrh r1, [r6, 0x18] - adds r0, r1 - lsls r0, 16 - ldr r1, _08092C78 @ =gUnknown_083B5968 - lsrs r0, 13 - adds r1, 0x4 - adds r0, r1 - ldr r1, [r0] - adds r0, r7, 0 - bl StringCopy - mov r0, r8 - movs r1, 0x2D - movs r2, 0x20 - movs r3, 0x1 - bl MenuPrint_PixelCoords - ldrh r0, [r6, 0x1E] - ldrh r1, [r6, 0x1C] - adds r0, r1 - lsls r0, 16 - ldr r4, _08092C7C @ =gUnknown_083B59C8 - lsrs r0, 13 - adds r4, 0x4 - adds r0, r4 - ldr r1, [r0] - adds r0, r7, 0 - bl StringCopy - ldr r5, _08092C80 @ =gUnknown_083B5AAC - adds r0, r5, 0 - movs r1, 0x2D - movs r2, 0x30 - movs r3, 0x1 - bl MenuPrint_PixelCoords - ldrh r0, [r6, 0x22] - ldrh r1, [r6, 0x20] - adds r0, r1 - lsls r0, 16 - lsrs r0, 13 - adds r0, r4 - ldr r1, [r0] - adds r0, r7, 0 - bl StringCopy - adds r0, r5, 0 - movs r1, 0x5D - movs r2, 0x30 - movs r3, 0x1 - bl MenuPrint_PixelCoords - ldrh r0, [r6, 0x12] - ldrh r1, [r6, 0x10] - adds r0, r1 - lsls r0, 16 - ldr r1, _08092C84 @ =gUnknown_083B58D8 - lsrs r0, 13 - adds r1, 0x4 - adds r0, r1 - ldr r1, [r0] - adds r0, r7, 0 - bl StringCopy - mov r0, r8 - movs r1, 0x2D - movs r2, 0x40 - movs r3, 0x1 - bl MenuPrint_PixelCoords - bl IsNationalPokedexEnabled - cmp r0, 0 - beq _08092C5E - ldrh r0, [r6, 0xE] - ldrh r6, [r6, 0xC] - adds r0, r6 - lsls r0, 16 - ldr r1, _08092C88 @ =gUnknown_083B58C0 - lsrs r0, 13 - adds r1, 0x4 - adds r0, r1 - ldr r1, [r0] - adds r0, r7, 0 - bl StringCopy - mov r0, r8 - movs r1, 0x2D - movs r2, 0x50 - movs r3, 0x1 - bl MenuPrint_PixelCoords -_08092C5E: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08092C68: .4byte gTasks -_08092C6C: .4byte gStringVar1 -_08092C70: .4byte gUnknown_083B5910 -_08092C74: .4byte gUnknown_083B5AB2 -_08092C78: .4byte gUnknown_083B5968 -_08092C7C: .4byte gUnknown_083B59C8 -_08092C80: .4byte gUnknown_083B5AAC -_08092C84: .4byte gUnknown_083B58D8 -_08092C88: .4byte gUnknown_083B58C0 - thumb_func_end sub_8092B68 - - thumb_func_start sub_8092C8C -sub_8092C8C: @ 8092C8C - push {r4-r6,lr} - lsls r0, 24 - cmp r0, 0 - bne _08092D48 - ldr r1, _08092D1C @ =0x06007822 - ldr r2, _08092D20 @ =0x00000c0b - adds r0, r2, 0 - strh r0, [r1] - movs r1, 0x12 - ldr r3, _08092D24 @ =0x06007800 - ldr r4, _08092D28 @ =0x0000080d - adds r2, r4, 0 -_08092CA4: - lsls r0, r1, 1 - adds r0, r3 - strh r2, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x1C - bls _08092CA4 - ldr r1, _08092D2C @ =0x0600783a - ldr r2, _08092D30 @ =0x0000080b - adds r0, r2, 0 - strh r0, [r1] - movs r3, 0x1 - ldr r6, _08092D24 @ =0x06007800 - movs r5, 0x2 -_08092CC2: - lsls r2, r3, 6 - ldr r4, _08092D1C @ =0x06007822 - adds r1, r2, r4 - ldr r4, _08092D34 @ =0x0000040a - adds r0, r4, 0 - strh r0, [r1] - movs r1, 0x12 - adds r4, r3, 0x1 - adds r3, r2, 0 -_08092CD4: - lsls r0, r1, 1 - adds r0, r3, r0 - adds r0, r6 - strh r5, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x1C - bls _08092CD4 - ldr r1, _08092D2C @ =0x0600783a - adds r0, r2, r1 - movs r1, 0xA - strh r1, [r0] - lsls r0, r4, 16 - lsrs r3, r0, 16 - cmp r3, 0xC - bls _08092CC2 - ldr r1, _08092D38 @ =0x06007b62 - ldr r2, _08092D3C @ =0x0000040b - adds r0, r2, 0 - strh r0, [r1] - movs r1, 0x12 - ldr r3, _08092D40 @ =0x06007b40 - movs r2, 0xD -_08092D04: - lsls r0, r1, 1 - adds r0, r3 - strh r2, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x1C - bls _08092D04 - ldr r1, _08092D44 @ =0x06007b7a - movs r0, 0xB - strh r0, [r1] - b _08092D6E - .align 2, 0 -_08092D1C: .4byte 0x06007822 -_08092D20: .4byte 0x00000c0b -_08092D24: .4byte 0x06007800 -_08092D28: .4byte 0x0000080d -_08092D2C: .4byte 0x0600783a -_08092D30: .4byte 0x0000080b -_08092D34: .4byte 0x0000040a -_08092D38: .4byte 0x06007b62 -_08092D3C: .4byte 0x0000040b -_08092D40: .4byte 0x06007b40 -_08092D44: .4byte 0x06007b7a -_08092D48: - movs r3, 0 - ldr r6, _08092D74 @ =0x06007800 - movs r5, 0x4F -_08092D4E: - movs r1, 0x11 - adds r4, r3, 0x1 - lsls r2, r3, 6 -_08092D54: - lsls r0, r1, 1 - adds r0, r2, r0 - adds r0, r6 - strh r5, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x1D - bls _08092D54 - lsls r0, r4, 16 - lsrs r3, r0, 16 - cmp r3, 0xD - bls _08092D4E -_08092D6E: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08092D74: .4byte 0x06007800 - thumb_func_end sub_8092C8C - - thumb_func_start sub_8092D78 -sub_8092D78: @ 8092D78 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - ldr r4, _08092DBC @ =gUnknown_083B5A7C - ldr r3, _08092DC0 @ =gTasks - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - adds r0, r2, r3 - movs r5, 0xA - ldrsh r1, [r0, r5] - lsls r1, 3 - adds r1, r4 - ldr r6, [r1] - adds r3, 0x8 - adds r2, r3 - ldrb r0, [r1, 0x4] - lsls r0, 1 - adds r0, r2 - mov r8, r0 - ldrb r0, [r1, 0x5] - lsls r0, 1 - adds r7, r2, r0 - movs r0, 0x12 - movs r1, 0x1 - movs r2, 0x1C - movs r3, 0xC - bl MenuZeroFillWindowRect - movs r5, 0 - ldrh r4, [r7] - b _08092DE8 - .align 2, 0 -_08092DBC: .4byte gUnknown_083B5A7C -_08092DC0: .4byte gTasks -_08092DC4: - lsls r0, r4, 3 - adds r0, r6 - ldr r0, [r0, 0x4] - lsls r2, r5, 1 - adds r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - movs r1, 0x12 - bl MenuPrint - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r5, 0x5 - bhi _08092DF2 -_08092DE8: - lsls r0, r4, 3 - adds r0, r6 - ldr r0, [r0, 0x4] - cmp r0, 0 - bne _08092DC4 -_08092DF2: - mov r1, r8 - ldrh r0, [r1] - ldrh r1, [r7] - adds r0, r1 - lsls r0, 3 - adds r0, r6 - ldr r0, [r0] - bl sub_8091E20 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8092D78 - - thumb_func_start sub_8092E10 -sub_8092E10: @ 8092E10 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r3, r1, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _08092E50 @ =gTasks + 0x8 - adds r1, r0 - ldr r2, _08092E54 @ =gUnknown_083B5A7C - lsls r0, r3, 3 - adds r0, r2 - ldrb r2, [r0, 0x4] - lsls r2, 1 - adds r2, r1, r2 - ldrb r0, [r0, 0x5] - lsls r0, 1 - adds r1, r0 - ldrh r0, [r1] - ldrh r2, [r2] - adds r0, r2 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r3, 0x5 - bhi _08092E74 - lsls r0, r3, 2 - ldr r1, _08092E58 @ =_08092E5C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08092E50: .4byte gTasks + 0x8 -_08092E54: .4byte gUnknown_083B5A7C -_08092E58: .4byte _08092E5C - .align 2, 0 -_08092E5C: - .4byte _08092E88 - .4byte _08092E92 - .4byte _08092EA2 - .4byte _08092EA2 - .4byte _08092E80 - .4byte _08092E78 -_08092E74: - movs r0, 0 - b _08092EA8 -_08092E78: - ldr r0, _08092E7C @ =gUnknown_083B5A60 - b _08092EA4 - .align 2, 0 -_08092E7C: .4byte gUnknown_083B5A60 -_08092E80: - ldr r0, _08092E84 @ =gUnknown_083B5A62 - b _08092EA4 - .align 2, 0 -_08092E84: .4byte gUnknown_083B5A62 -_08092E88: - cmp r2, 0 - beq _08092E96 - lsls r0, r2, 24 - lsrs r0, 24 - b _08092EA8 -_08092E92: - cmp r2, 0 - bne _08092E9A -_08092E96: - movs r0, 0xFF - b _08092EA8 -_08092E9A: - subs r0, r2, 0x1 - lsls r0, 24 - lsrs r0, 24 - b _08092EA8 -_08092EA2: - ldr r0, _08092EAC @ =gUnknown_083B5A68 -_08092EA4: - adds r0, r2, r0 - ldrb r0, [r0] -_08092EA8: - pop {r1} - bx r1 - .align 2, 0 -_08092EAC: .4byte gUnknown_083B5A68 - thumb_func_end sub_8092E10 - - thumb_func_start sub_8092EB0 -sub_8092EB0: @ 8092EB0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _08092ED0 @ =gPokedexView - ldr r0, [r1] - ldr r2, _08092ED4 @ =0x00000614 - adds r0, r2 - ldrh r0, [r0] - adds r5, r1, 0 - cmp r0, 0 - beq _08092ECA - cmp r0, 0x1 - beq _08092ED8 -_08092ECA: - movs r3, 0 - b _08092EDA - .align 2, 0 -_08092ED0: .4byte gPokedexView -_08092ED4: .4byte 0x00000614 -_08092ED8: - movs r3, 0x1 -_08092EDA: - ldr r1, _08092F00 @ =gTasks - lsls r2, r4, 2 - adds r0, r2, r4 - lsls r0, 3 - adds r0, r1 - strh r3, [r0, 0xC] - ldr r0, [r5] - movs r3, 0xC3 - lsls r3, 3 - adds r0, r3 - ldrh r0, [r0] - adds r5, r1, 0 - cmp r0, 0x5 - bhi _08092F20 - lsls r0, 2 - ldr r1, _08092F04 @ =_08092F08 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08092F00: .4byte gTasks -_08092F04: .4byte _08092F08 - .align 2, 0 -_08092F08: - .4byte _08092F20 - .4byte _08092F24 - .4byte _08092F28 - .4byte _08092F2C - .4byte _08092F30 - .4byte _08092F34 -_08092F20: - movs r3, 0 - b _08092F36 -_08092F24: - movs r3, 0x1 - b _08092F36 -_08092F28: - movs r3, 0x2 - b _08092F36 -_08092F2C: - movs r3, 0x3 - b _08092F36 -_08092F30: - movs r3, 0x4 - b _08092F36 -_08092F34: - movs r3, 0x5 -_08092F36: - adds r0, r2, r4 - lsls r0, 3 - adds r0, r5 - strh r3, [r0, 0x10] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8092EB0 - - thumb_func_start sub_8092F44 -sub_8092F44: @ 8092F44 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r3, _08092F7C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r0, r1, r3 - ldrb r2, [r0, 0xA] - adds r3, 0x8 - adds r1, r3 - ldr r0, _08092F80 @ =gUnknown_083B5A7C - lsls r2, 3 - adds r2, r0 - ldrb r0, [r2, 0x5] - lsls r0, 1 - adds r1, r0 - ldrh r0, [r2, 0x6] - subs r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x5 - bls _08092F84 - ldrh r0, [r1] - cmp r0, 0 - beq _08092F84 - movs r0, 0 - b _08092F86 - .align 2, 0 -_08092F7C: .4byte gTasks -_08092F80: .4byte gUnknown_083B5A7C -_08092F84: - movs r0, 0x1 -_08092F86: - pop {r1} - bx r1 - thumb_func_end sub_8092F44 - - thumb_func_start sub_8092F8C -sub_8092F8C: @ 8092F8C - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r3, _08092FC8 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r0, r1, r3 - ldrb r2, [r0, 0xA] - adds r3, 0x8 - adds r1, r3 - ldr r0, _08092FCC @ =gUnknown_083B5A7C - lsls r2, 3 - adds r2, r0 - ldrb r0, [r2, 0x5] - lsls r0, 1 - adds r1, r0 - ldrh r0, [r2, 0x6] - subs r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x5 - bls _08092FD0 - ldrh r1, [r1] - subs r0, 0x5 - cmp r1, r0 - bge _08092FD0 - movs r0, 0 - b _08092FD2 - .align 2, 0 -_08092FC8: .4byte gTasks -_08092FCC: .4byte gUnknown_083B5A7C -_08092FD0: - movs r0, 0x1 -_08092FD2: - pop {r1} - bx r1 - thumb_func_end sub_8092F8C - - thumb_func_start sub_8092FD8 -sub_8092FD8: @ 8092FD8 - push {r4,lr} - adds r4, r0, 0 - ldr r2, _08093018 @ =gTasks - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, [r0] - ldr r0, _0809301C @ =sub_8092644 - cmp r1, r0 - bne _08093078 - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _08093020 - ldrh r0, [r4, 0x2E] - lsls r0, 24 - lsrs r0, 24 - bl sub_8092F8C - lsls r0, 24 - cmp r0, 0 - beq _0809303C - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - b _08093048 - .align 2, 0 -_08093018: .4byte gTasks -_0809301C: .4byte sub_8092644 -_08093020: - ldrh r0, [r4, 0x2E] - lsls r0, 24 - lsrs r0, 24 - bl sub_8092F44 - lsls r0, 24 - cmp r0, 0 - beq _0809303C - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - b _08093048 -_0809303C: - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 -_08093048: - strb r0, [r2] - ldrh r2, [r4, 0x32] - movs r1, 0x30 - ldrsh r0, [r4, r1] - lsls r0, 7 - adds r0, r2, r0 - lsls r0, 24 - ldr r1, _08093074 @ =gSineTable - lsrs r0, 23 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bge _08093066 - adds r0, 0x7F -_08093066: - asrs r0, 7 - strh r0, [r4, 0x26] - adds r0, r2, 0 - adds r0, 0x8 - strh r0, [r4, 0x32] - b _08093084 - .align 2, 0 -_08093074: .4byte gSineTable -_08093078: - adds r0, r4, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_08093084: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8092FD8 - - thumb_func_start sub_809308C -sub_809308C: @ 809308C - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r6, _08093104 @ =gSpriteTemplate_83A053C - adds r0, r6, 0 - movs r1, 0xB8 - movs r2, 0x4 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r4, _08093108 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r0, r1, r4 - movs r2, 0 - strh r5, [r0, 0x2E] - strh r2, [r0, 0x30] - movs r0, 0x1C - adds r0, r4 - mov r9, r0 - add r1, r9 - ldr r0, _0809310C @ =sub_8092FD8 - mov r8, r0 - str r0, [r1] - adds r0, r6, 0 - movs r1, 0xB8 - movs r2, 0x6C - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r4, r1, r4 - strh r5, [r4, 0x2E] - movs r0, 0x1 - strh r0, [r4, 0x30] - adds r4, 0x3F - ldrb r0, [r4] - movs r2, 0x2 - orrs r0, r2 - strb r0, [r4] - add r1, r9 - mov r0, r8 - str r0, [r1] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08093104: .4byte gSpriteTemplate_83A053C -_08093108: .4byte gSprites -_0809310C: .4byte sub_8092FD8 - thumb_func_end sub_809308C - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/pokemon_item_effect.s b/asm/pokemon_item_effect.s index 3a97f8a04..dc74831d5 100644 --- a/asm/pokemon_item_effect.s +++ b/asm/pokemon_item_effect.s @@ -73,7 +73,7 @@ sub_803E1B0: @ 803E1B0 cmp r0, 0 beq _0803E22C ldr r2, _0803E224 @ =gEnigmaBerries - ldr r0, _0803E228 @ =gUnknown_02024E6C + ldr r0, _0803E228 @ =gBankInMenu ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 @@ -85,7 +85,7 @@ sub_803E1B0: @ 803E1B0 _0803E21C: .4byte gMain _0803E220: .4byte 0x0000043d _0803E224: .4byte gEnigmaBerries -_0803E228: .4byte gUnknown_02024E6C +_0803E228: .4byte gBankInMenu _0803E22C: ldr r0, _0803E238 @ =gSaveBlock1 ldr r5, _0803E23C @ =0x00003688 @@ -101,8 +101,8 @@ _0803E240: lsrs r0, 24 _0803E248: str r0, [sp, 0x30] - ldr r1, _0803E2A4 @ =gUnknown_02024C0B - ldr r0, _0803E2A8 @ =gUnknown_02024E6C + ldr r1, _0803E2A4 @ =gStringBank + ldr r0, _0803E2A8 @ =gBankInMenu ldrb r2, [r0] strb r2, [r1] ldr r0, _0803E2AC @ =gMain @@ -115,23 +115,23 @@ _0803E248: lsrs r1, r0, 24 cmp r1, 0 beq _0803E2E8 - ldr r0, _0803E2B4 @ =gUnknown_02024A60 + ldr r0, _0803E2B4 @ =gActiveBank strb r2, [r0] ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 negs r1, r0 orrs r1, r0 lsrs r1, 31 str r1, [sp, 0x18] - ldr r0, _0803E2B8 @ =gUnknown_02024A68 + ldr r0, _0803E2B8 @ =gNoOfAllBanks ldr r4, [sp, 0x8] subs r4, 0xD ldrb r0, [r0] cmp r1, r0 bge _0803E2F4 - ldr r2, _0803E2BC @ =gUnknown_02024A6A + ldr r2, _0803E2BC @ =gBattlePartyID lsls r0, r1, 1 adds r0, r2 ldrh r3, [r0] @@ -145,18 +145,18 @@ _0803E248: str r0, [sp, 0x34] b _0803E2F4 .align 2, 0 -_0803E2A4: .4byte gUnknown_02024C0B -_0803E2A8: .4byte gUnknown_02024E6C +_0803E2A4: .4byte gStringBank +_0803E2A8: .4byte gBankInMenu _0803E2AC: .4byte gMain _0803E2B0: .4byte 0x0000043d -_0803E2B4: .4byte gUnknown_02024A60 -_0803E2B8: .4byte gUnknown_02024A68 -_0803E2BC: .4byte gUnknown_02024A6A +_0803E2B4: .4byte gActiveBank +_0803E2B8: .4byte gNoOfAllBanks +_0803E2BC: .4byte gBattlePartyID _0803E2C0: ldr r1, [sp, 0x18] adds r1, 0x2 str r1, [sp, 0x18] - ldr r0, _0803E2E4 @ =gUnknown_02024A68 + ldr r0, _0803E2E4 @ =gNoOfAllBanks ldrb r0, [r0] cmp r1, r0 bge _0803E2F4 @@ -172,9 +172,9 @@ _0803E2C0: str r0, [sp, 0x34] b _0803E2F4 .align 2, 0 -_0803E2E4: .4byte gUnknown_02024A68 +_0803E2E4: .4byte gNoOfAllBanks _0803E2E8: - ldr r0, _0803E310 @ =gUnknown_02024A60 + ldr r0, _0803E310 @ =gActiveBank strb r1, [r0] movs r3, 0x4 str r3, [sp, 0x34] @@ -196,7 +196,7 @@ _0803E2F4: beq _0803E31E b _0803E36C .align 2, 0 -_0803E310: .4byte gUnknown_02024A60 +_0803E310: .4byte gActiveBank _0803E314: .4byte gItemEffectTable _0803E318: ldr r5, [sp, 0x8] @@ -211,7 +211,7 @@ _0803E31E: ands r0, r1 cmp r0, 0 beq _0803E350 - ldr r0, _0803E348 @ =gUnknown_02024A60 + ldr r0, _0803E348 @ =gActiveBank ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 @@ -222,7 +222,7 @@ _0803E31E: .align 2, 0 _0803E340: .4byte gMain _0803E344: .4byte 0x0000043d -_0803E348: .4byte gUnknown_02024A60 +_0803E348: .4byte gActiveBank _0803E34C: .4byte gUnknown_02024DF8 _0803E350: ldr r2, _0803E358 @ =gSaveBlock1 + 0x3676 @@ -310,7 +310,7 @@ _0803E3F0: cmp r0, 0 beq _0803E41E ldr r1, _0803E468 @ =gBattleMons - ldr r0, _0803E470 @ =gUnknown_02024A60 + ldr r0, _0803E470 @ =gActiveBank ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -336,7 +336,7 @@ _0803E41E: bl _0803F14C _0803E42C: ldr r6, _0803E468 @ =gBattleMons - ldr r5, _0803E470 @ =gUnknown_02024A60 + ldr r5, _0803E470 @ =gActiveBank ldrb r0, [r5] movs r4, 0x58 muls r0, r4 @@ -367,7 +367,7 @@ _0803E460: .4byte gMain _0803E464: .4byte 0x0000043d _0803E468: .4byte gBattleMons _0803E46C: .4byte 0xfff0ffff -_0803E470: .4byte gUnknown_02024A60 +_0803E470: .4byte gActiveBank _0803E474: ldr r0, [sp, 0x20] ldr r1, [sp, 0x18] @@ -380,7 +380,7 @@ _0803E474: cmp r3, 0 beq _0803E4BA ldr r7, _0803E500 @ =gBattleMons - ldr r5, _0803E504 @ =gUnknown_02024A60 + ldr r5, _0803E504 @ =gActiveBank ldrb r0, [r5] movs r4, 0x58 muls r0, r4 @@ -414,7 +414,7 @@ _0803E4BA: bl _0803F14C _0803E4C8: ldr r6, _0803E500 @ =gBattleMons - ldr r5, _0803E504 @ =gUnknown_02024A60 + ldr r5, _0803E504 @ =gActiveBank ldrb r0, [r5] movs r4, 0x58 muls r0, r4 @@ -443,7 +443,7 @@ _0803E4F8: bl _0803F14C .align 2, 0 _0803E500: .4byte gBattleMons -_0803E504: .4byte gUnknown_02024A60 +_0803E504: .4byte gActiveBank _0803E508: ldr r4, [sp, 0x20] ldr r5, [sp, 0x18] @@ -456,7 +456,7 @@ _0803E508: cmp r3, 0 beq _0803E54E ldr r7, _0803E594 @ =gBattleMons - ldr r5, _0803E598 @ =gUnknown_02024A60 + ldr r5, _0803E598 @ =gActiveBank ldrb r0, [r5] movs r4, 0x58 muls r0, r4 @@ -490,7 +490,7 @@ _0803E54E: bl _0803F14C _0803E55C: ldr r6, _0803E594 @ =gBattleMons - ldr r5, _0803E598 @ =gUnknown_02024A60 + ldr r5, _0803E598 @ =gActiveBank ldrb r0, [r5] movs r4, 0x58 muls r0, r4 @@ -519,7 +519,7 @@ _0803E58C: bl _0803F14C .align 2, 0 _0803E594: .4byte gBattleMons -_0803E598: .4byte gUnknown_02024A60 +_0803E598: .4byte gActiveBank _0803E59C: ldr r3, [sp, 0x20] ldr r4, [sp, 0x18] @@ -530,10 +530,10 @@ _0803E59C: adds r6, r2, 0 cmp r0, 0 beq _0803E5E4 - ldr r5, _0803E758 @ =gUnknown_02024C80 - ldr r4, _0803E75C @ =gUnknown_02024A60 + ldr r5, _0803E758 @ =gSideTimer + ldr r4, _0803E75C @ =gActiveBank ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 @@ -544,7 +544,7 @@ _0803E59C: cmp r0, 0 bne _0803E5E4 ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 @@ -739,8 +739,8 @@ _0803E74E: str r5, [sp, 0x1C] bl _0803F14C .align 2, 0 -_0803E758: .4byte gUnknown_02024C80 -_0803E75C: .4byte gUnknown_02024A60 +_0803E758: .4byte gSideTimer +_0803E75C: .4byte gActiveBank _0803E760: .4byte gExperienceTables _0803E764: .4byte gBaseStats _0803E768: .4byte gBattleMons @@ -984,7 +984,7 @@ _0803E954: ldr r2, [sp, 0x34] cmp r2, 0x4 beq _0803E9B4 - ldr r2, _0803E9A4 @ =gUnknown_02024C0C + ldr r2, _0803E9A4 @ =gAbsentBankFlags ldr r1, _0803E9A8 @ =gBitTable ldr r3, [sp, 0x34] lsls r0, r3, 2 @@ -993,7 +993,7 @@ _0803E954: ldrb r0, [r2] bics r0, r1 strb r0, [r2] - ldr r1, _0803E9AC @ =gUnknown_02024A6A + ldr r1, _0803E9AC @ =gBattlePartyID lsls r0, r3, 1 adds r0, r1 ldrb r0, [r0] @@ -1003,20 +1003,20 @@ _0803E954: lsrs r1, 24 ldr r0, [sp, 0x34] bl CopyPlayerPartyMonToBattleData - ldr r0, _0803E9B0 @ =gUnknown_02024A60 + ldr r0, _0803E9B0 @ =gActiveBank ldrb r0, [r0] b _0803E9CC .align 2, 0 _0803E99C: .4byte gMain _0803E9A0: .4byte 0x0000043d -_0803E9A4: .4byte gUnknown_02024C0C +_0803E9A4: .4byte gAbsentBankFlags _0803E9A8: .4byte gBitTable -_0803E9AC: .4byte gUnknown_02024A6A -_0803E9B0: .4byte gUnknown_02024A60 +_0803E9AC: .4byte gBattlePartyID +_0803E9B0: .4byte gActiveBank _0803E9B4: - ldr r3, _0803E9E4 @ =gUnknown_02024C0C + ldr r3, _0803E9E4 @ =gAbsentBankFlags ldr r1, _0803E9E8 @ =gBitTable - ldr r2, _0803E9EC @ =gUnknown_02024A60 + ldr r2, _0803E9EC @ =gActiveBank ldrb r0, [r2] eors r0, r4 lsls r0, 2 @@ -1027,11 +1027,11 @@ _0803E9B4: strb r0, [r3] ldrb r0, [r2] _0803E9CC: - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0803EA0A - ldr r1, _0803E9F0 @ =gUnknown_030042E0 + ldr r1, _0803E9F0 @ =gBattleResults ldrb r0, [r1, 0x4] cmp r0, 0xFE bhi _0803EA0A @@ -1039,10 +1039,10 @@ _0803E9CC: strb r0, [r1, 0x4] b _0803EA0A .align 2, 0 -_0803E9E4: .4byte gUnknown_02024C0C +_0803E9E4: .4byte gAbsentBankFlags _0803E9E8: .4byte gBitTable -_0803E9EC: .4byte gUnknown_02024A60 -_0803E9F0: .4byte gUnknown_030042E0 +_0803E9EC: .4byte gActiveBank +_0803E9F0: .4byte gBattleResults _0803E9F4: mov r0, r8 movs r1, 0x39 @@ -1166,13 +1166,13 @@ _0803EAB8: ands r0, r3 cmp r0, 0 bne _0803EB48 - ldr r4, _0803EB38 @ =gUnknown_02024A60 + ldr r4, _0803EB38 @ =gActiveBank ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0803EB48 - ldr r1, _0803EB3C @ =gUnknown_030042E0 + ldr r1, _0803EB3C @ =gBattleResults ldrb r0, [r1, 0x3] cmp r0, 0xFE bhi _0803EB08 @@ -1186,9 +1186,9 @@ _0803EB08: movs r0, 0 movs r1, 0 movs r2, 0 - bl dp01_build_cmdbuf_x00_a_b_0 + bl EmitGetAttributes ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution + bl MarkBufferBankForExecution strb r5, [r4] b _0803EB48 .align 2, 0 @@ -1197,8 +1197,8 @@ _0803EB28: .4byte 0x000160fa _0803EB2C: .4byte gMain _0803EB30: .4byte 0x0000043d _0803EB34: .4byte gBattleMons -_0803EB38: .4byte gUnknown_02024A60 -_0803EB3C: .4byte gUnknown_030042E0 +_0803EB38: .4byte gActiveBank +_0803EB3C: .4byte gBattleResults _0803EB40: ldr r1, _0803EB58 @ =gBattleMoveDamage ldr r0, [sp] @@ -1340,7 +1340,7 @@ _0803EC28: ands r1, r0 cmp r1, 0 bne _0803EC8E - ldr r1, _0803ECB0 @ =gUnknown_02024CA8 + ldr r1, _0803ECB0 @ =gDisableStructs ldr r2, [sp, 0x34] lsls r0, r2, 3 subs r0, r2 @@ -1380,7 +1380,7 @@ _0803EC9E: _0803ECA4: .4byte gMain _0803ECA8: .4byte 0x0000043d _0803ECAC: .4byte gBattleMons -_0803ECB0: .4byte gUnknown_02024CA8 +_0803ECB0: .4byte gDisableStructs _0803ECB4: .4byte gBitTable _0803ECB8: ldr r6, [sp, 0x10] @@ -1497,7 +1497,7 @@ _0803ED74: ands r0, r1 cmp r0, 0 bne _0803EDD8 - ldr r1, _0803EDEC @ =gUnknown_02024CA8 + ldr r1, _0803EDEC @ =gDisableStructs lsls r0, r2, 3 subs r0, r2 lsls r0, 2 @@ -1526,7 +1526,7 @@ _0803EDD8: _0803EDE0: .4byte gMain _0803EDE4: .4byte 0x0000043d _0803EDE8: .4byte gBattleMons -_0803EDEC: .4byte gUnknown_02024CA8 +_0803EDEC: .4byte gDisableStructs _0803EDF0: .4byte gBitTable _0803EDF4: mov r0, r8 diff --git a/asm/pokemon_menu.s b/asm/pokemon_menu.s index 57bcd4904..3a1552f70 100644 --- a/asm/pokemon_menu.s +++ b/asm/pokemon_menu.s @@ -718,7 +718,7 @@ PokemonMenu_Switch: @ 808A02C adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - bl sub_8072DEC + bl HandleDestroyMenuCursors ldr r0, _0808A054 @ =0x02001000 ldr r1, _0808A058 @ =sub_806CD5C str r1, [r0, 0xC] @@ -849,7 +849,7 @@ PokemonMenu_Item: @ 808A140 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - bl sub_8072DEC + bl HandleDestroyMenuCursors ldr r1, _0808A174 @ =gUnknown_0202FFA8 movs r0, 0 strb r0, [r1] @@ -1497,7 +1497,7 @@ PokemonMenu_TakeItem: @ 808A688 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - bl sub_8072DEC + bl HandleDestroyMenuCursors movs r0, 0x13 movs r1, 0 movs r2, 0x1D @@ -1520,7 +1520,7 @@ PokemonMenu_TakeMail: @ 808A6B8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - bl sub_8072DEC + bl HandleDestroyMenuCursors movs r0, 0x13 movs r1, 0 movs r2, 0x1D @@ -1543,7 +1543,7 @@ PokemonMenu_Mail: @ 808A6E8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - bl sub_8072DEC + bl HandleDestroyMenuCursors ldr r1, _0808A728 @ =gUnknown_0202FFA8 movs r0, 0 strb r0, [r1] @@ -1812,7 +1812,7 @@ PokemonMenu_Cancel: @ 808A918 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - bl sub_8072DEC + bl HandleDestroyMenuCursors movs r0, 0x5 bl PlaySE adds r0, r4, 0 @@ -1828,7 +1828,7 @@ PokemonMenu_CancelSubmenu: @ 808A938 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - bl sub_8072DEC + bl HandleDestroyMenuCursors movs r0, 0x5 bl PlaySE movs r0, 0x13 @@ -1867,7 +1867,7 @@ PokemonMenu_FieldMove: @ 808A984 lsls r6, r0, 3 ldr r7, _0808A9D0 @ =gTasks + 0x8 adds r4, r6, r7 - bl sub_8072DEC + bl HandleDestroyMenuCursors ldr r1, _0808A9D4 @ =gUnknown_0202FFAA ldr r0, _0808A9D8 @ =gUnknown_0202FFA8 ldrb r0, [r0] @@ -2215,7 +2215,7 @@ SetUpFieldMove_Surf: @ 808AC48 lsrs r0, 24 cmp r0, 0x1 bne _0808AC84 - ldr r1, _0808AC74 @ =gUnknown_0300485C + ldr r1, _0808AC74 @ =gFieldCallback ldr r0, _0808AC78 @ =sub_808AB90 str r0, [r1] ldr r1, _0808AC7C @ =gUnknown_03005CE4 @@ -2224,7 +2224,7 @@ SetUpFieldMove_Surf: @ 808AC48 movs r0, 0x1 b _0808AC86 .align 2, 0 -_0808AC74: .4byte gUnknown_0300485C +_0808AC74: .4byte gFieldCallback _0808AC78: .4byte sub_808AB90 _0808AC7C: .4byte gUnknown_03005CE4 _0808AC80: .4byte sub_808AC2C @@ -2258,14 +2258,14 @@ SetUpFieldMove_Fly: @ 808ACA8 lsls r0, 24 cmp r0, 0 beq _0808ACD0 - ldr r1, _0808ACC0 @ =gUnknown_0300485C + ldr r1, _0808ACC0 @ =gFieldCallback ldr r0, _0808ACC4 @ =sub_808AB90 str r0, [r1] ldr r1, _0808ACC8 @ =gUnknown_03005CE4 ldr r0, _0808ACCC @ =DoBrailleFlyEffect b _0808ACF2 .align 2, 0 -_0808ACC0: .4byte gUnknown_0300485C +_0808ACC0: .4byte gFieldCallback _0808ACC4: .4byte sub_808AB90 _0808ACC8: .4byte gUnknown_03005CE4 _0808ACCC: .4byte DoBrailleFlyEffect @@ -2282,7 +2282,7 @@ _0808ACD0: .align 2, 0 _0808ACE4: .4byte gMapHeader _0808ACE8: - ldr r1, _0808ACFC @ =gUnknown_0300485C + ldr r1, _0808ACFC @ =gFieldCallback ldr r0, _0808AD00 @ =sub_808AB90 str r0, [r1] ldr r1, _0808AD04 @ =gUnknown_03005CE4 @@ -2294,7 +2294,7 @@ _0808ACF6: pop {r1} bx r1 .align 2, 0 -_0808ACFC: .4byte gUnknown_0300485C +_0808ACFC: .4byte gFieldCallback _0808AD00: .4byte sub_808AB90 _0808AD04: .4byte gUnknown_03005CE4 _0808AD08: .4byte sub_808AC8C @@ -2411,7 +2411,7 @@ SetUpFieldMove_Dive: @ 808ADC8 .align 2, 0 _0808ADE0: .4byte gUnknown_0202FF84 _0808ADE4: - ldr r1, _0808ADF8 @ =gUnknown_0300485C + ldr r1, _0808ADF8 @ =gFieldCallback ldr r0, _0808ADFC @ =sub_808AB90 str r0, [r1] ldr r1, _0808AE00 @ =gUnknown_03005CE4 @@ -2422,7 +2422,7 @@ _0808ADF2: pop {r1} bx r1 .align 2, 0 -_0808ADF8: .4byte gUnknown_0300485C +_0808ADF8: .4byte gFieldCallback _0808ADFC: .4byte sub_808AB90 _0808AE00: .4byte gUnknown_03005CE4 _0808AE04: .4byte sub_808ADAC @@ -2471,7 +2471,7 @@ SetUpFieldMove_Waterfall: @ 808AE24 lsrs r0, 24 cmp r0, 0x1 bne _0808AE80 - ldr r1, _0808AE70 @ =gUnknown_0300485C + ldr r1, _0808AE70 @ =gFieldCallback ldr r0, _0808AE74 @ =sub_808AB90 str r0, [r1] ldr r1, _0808AE78 @ =gUnknown_03005CE4 @@ -2480,7 +2480,7 @@ SetUpFieldMove_Waterfall: @ 808AE24 movs r0, 0x1 b _0808AE82 .align 2, 0 -_0808AE70: .4byte gUnknown_0300485C +_0808AE70: .4byte gFieldCallback _0808AE74: .4byte sub_808AB90 _0808AE78: .4byte gUnknown_03005CE4 _0808AE7C: .4byte sub_808AE08 @@ -2997,7 +2997,7 @@ sub_808B288: @ 808B288 ands r0, r1 cmp r0, 0 bne _0808B2A6 - ldr r0, _0808B2B0 @ =sub_813B6F8 + ldr r0, _0808B2B0 @ =Mailbox_ReturnToMailListAfterDeposit bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask @@ -3007,7 +3007,7 @@ _0808B2A6: bx r0 .align 2, 0 _0808B2AC: .4byte gPaletteFade -_0808B2B0: .4byte sub_813B6F8 +_0808B2B0: .4byte Mailbox_ReturnToMailListAfterDeposit thumb_func_end sub_808B288 thumb_func_start sub_808B2B4 diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index 176a42124..db16c2788 100644 --- a/asm/pokemon_storage_system.s +++ b/asm/pokemon_storage_system.s @@ -931,7 +931,7 @@ _08095FA2: _08095FC0: .4byte gMain _08095FC4: .4byte gUnknown_083B600C _08095FC8: - bl sub_8072DEC + bl HandleDestroyMenuCursors movs r0, 0 movs r1, 0 movs r2, 0xD @@ -1171,7 +1171,7 @@ sub_80961A8: @ 80961A8 ldr r0, [r0] ldrb r0, [r0, 0x5] strb r0, [r1] - ldr r1, _080961CC @ =gUnknown_0300485C + ldr r1, _080961CC @ =gFieldCallback ldr r0, _080961D0 @ =sub_8096130 str r0, [r1] ldr r0, _080961D4 @ =c2_exit_to_overworld_2_switch @@ -1181,7 +1181,7 @@ sub_80961A8: @ 80961A8 .align 2, 0 _080961C4: .4byte gUnknown_02038474 _080961C8: .4byte gUnknown_083B6DB4 -_080961CC: .4byte gUnknown_0300485C +_080961CC: .4byte gFieldCallback _080961D0: .4byte sub_8096130 _080961D4: .4byte c2_exit_to_overworld_2_switch thumb_func_end sub_80961A8 @@ -5915,7 +5915,7 @@ sub_8098A38: @ 8098A38 thumb_func_start sub_8098A5C sub_8098A5C: @ 8098A5C push {lr} - bl sub_8072DEC + bl HandleDestroyMenuCursors movs r0, 0xA movs r1, 0x10 movs r2, 0x1D @@ -14831,7 +14831,7 @@ _0809CF8E: negs r0, r0 cmp r5, r0 beq _0809CFB2 - bl sub_8072DEC + bl HandleDestroyMenuCursors ldr r0, _0809CFD0 @ =gUnknown_083B6DB4 ldr r1, [r0] ldr r2, _0809CFD4 @ =0x000011ba diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s index 20231a0bb..fea619ac8 100644 --- a/asm/pokemon_summary_screen.s +++ b/asm/pokemon_summary_screen.s @@ -8398,7 +8398,7 @@ sub_80A1DE8: @ 80A1DE8 lsls r0, r4, 1 adds r0, r4 lsls r0, 3 - ldr r1, _080A1E48 @ =gSpriteTemplate_820AAB4 + ldr r1, _080A1E48 @ =gBallSpriteTemplates adds r0, r1 movs r1, 0x6 movs r2, 0x88 @@ -8429,7 +8429,7 @@ sub_80A1DE8: @ 80A1DE8 pop {r0} bx r0 .align 2, 0 -_080A1E48: .4byte gSpriteTemplate_820AAB4 +_080A1E48: .4byte gBallSpriteTemplates _080A1E4C: .4byte 0x02018000 _080A1E50: .4byte gSprites _080A1E54: .4byte SpriteCallbackDummy diff --git a/asm/reshow_battle_screen.s b/asm/reshow_battle_screen.s index 88fa5dbde..59b08dd01 100644 --- a/asm/reshow_battle_screen.s +++ b/asm/reshow_battle_screen.s @@ -260,11 +260,11 @@ _0807AF80: _0807AF88: bl sub_80327CC movs r0, 0x1 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r7, _0807B000 @ =gUnknown_02024A6A + ldr r7, _0807B000 @ =gBattlePartyID lsls r0, r4, 1 adds r0, r7 ldrh r0, [r0] @@ -284,7 +284,7 @@ _0807AF88: cmp r0, 0 beq _0807AFEC movs r0, 0x3 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 @@ -301,8 +301,8 @@ _0807AF88: adds r0, r4, 0 bl sub_8032984 _0807AFEC: - ldr r1, _0807B008 @ =gUnknown_02024E60 - ldr r0, _0807B00C @ =gUnknown_02024E6C + ldr r1, _0807B008 @ =gActionSelectionCursor + ldr r0, _0807B00C @ =gBankInMenu ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -310,10 +310,10 @@ _0807AFEC: bl sub_802E3E4 b _0807B040 .align 2, 0 -_0807B000: .4byte gUnknown_02024A6A +_0807B000: .4byte gBattlePartyID _0807B004: .4byte gEnemyParty -_0807B008: .4byte gUnknown_02024E60 -_0807B00C: .4byte gUnknown_02024E6C +_0807B008: .4byte gActionSelectionCursor +_0807B00C: .4byte gBankInMenu _0807B010: ldr r0, _0807B054 @ =sub_800FCD4 bl SetHBlankCallback @@ -381,12 +381,12 @@ sub_807B094: @ 807B094 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, _0807B0D8 @ =gUnknown_02024A68 + ldr r0, _0807B0D8 @ =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 bcs _0807B172 adds r0, r4, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0807B0F2 @@ -398,7 +398,7 @@ sub_807B094: @ 807B094 ands r0, r1 cmp r0, 0 bne _0807B0E8 - ldr r1, _0807B0E0 @ =gUnknown_02024A6A + ldr r1, _0807B0E0 @ =gBattlePartyID lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] @@ -410,9 +410,9 @@ sub_807B094: @ 807B094 bl sub_8031794 b _0807B168 .align 2, 0 -_0807B0D8: .4byte gUnknown_02024A68 +_0807B0D8: .4byte gNoOfAllBanks _0807B0DC: .4byte 0x02017800 -_0807B0E0: .4byte gUnknown_02024A6A +_0807B0E0: .4byte gBattlePartyID _0807B0E4: .4byte gEnemyParty _0807B0E8: adds r0, r4, 0 @@ -457,7 +457,7 @@ _0807B12A: ands r0, r1 cmp r0, 0 bne _0807B160 - ldr r1, _0807B158 @ =gUnknown_02024A6A + ldr r1, _0807B158 @ =gBattlePartyID lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] @@ -470,7 +470,7 @@ _0807B12A: b _0807B168 .align 2, 0 _0807B154: .4byte 0x02017800 -_0807B158: .4byte gUnknown_02024A6A +_0807B158: .4byte gBattlePartyID _0807B15C: .4byte gPlayerParty _0807B160: adds r0, r4, 0 @@ -502,7 +502,7 @@ sub_807B184: @ 807B184 sub sp, 0x4 lsls r0, 24 lsrs r7, r0, 24 - ldr r0, _0807B1B8 @ =gUnknown_02024A68 + ldr r0, _0807B1B8 @ =gNoOfAllBanks ldrb r0, [r0] cmp r7, r0 bcc _0807B19E @@ -521,7 +521,7 @@ _0807B19E: bl sub_8077F7C b _0807B1C6 .align 2, 0 -_0807B1B8: .4byte gUnknown_02024A68 +_0807B1B8: .4byte gNoOfAllBanks _0807B1BC: .4byte 0x02017800 _0807B1C0: adds r0, r7, 0 @@ -531,13 +531,13 @@ _0807B1C6: lsrs r0, 24 mov r8, r0 adds r0, r7, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0807B1DA b _0807B2D8 _0807B1DA: - ldr r1, _0807B2BC @ =gUnknown_02024A6A + ldr r1, _0807B2BC @ =gBattlePartyID lsls r0, r7, 1 adds r6, r0, r1 ldrh r0, [r6] @@ -566,7 +566,7 @@ _0807B1FE: lsls r4, 16 lsrs r4, 16 adds r0, r7, 0 - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -588,7 +588,7 @@ _0807B1FE: adds r1, r4, 0 mov r2, r8 bl CreateSprite - ldr r4, _0807B2C8 @ =gUnknown_02024BE0 + ldr r4, _0807B2C8 @ =gObjectBankIDs adds r4, r7, r4 strb r0, [r4] ldr r5, _0807B2CC @ =gSprites @@ -642,10 +642,10 @@ _0807B1FE: bl StartSpriteAnim b _0807B4AC .align 2, 0 -_0807B2BC: .4byte gUnknown_02024A6A +_0807B2BC: .4byte gBattlePartyID _0807B2C0: .4byte gEnemyParty _0807B2C4: .4byte gUnknown_02024E8C -_0807B2C8: .4byte gUnknown_02024BE0 +_0807B2C8: .4byte gObjectBankIDs _0807B2CC: .4byte gSprites _0807B2D0: .4byte SpriteCallbackDummy _0807B2D4: .4byte gBattleMonForms @@ -661,7 +661,7 @@ _0807B2D8: ldr r5, _0807B32C @ =gSaveBlock2 ldrb r4, [r5, 0x8] movs r0, 0 - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -702,7 +702,7 @@ _0807B338: cmp r7, 0 bne _0807B3D0 movs r0, 0 - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -728,7 +728,7 @@ _0807B37C: movs r1, 0x50 adds r2, r4, 0 bl CreateSprite - ldr r3, _0807B3C4 @ =gUnknown_02024BE0 + ldr r3, _0807B3C4 @ =gObjectBankIDs strb r0, [r3] ldr r4, _0807B3C8 @ =gSprites ldrb r0, [r3] @@ -759,11 +759,11 @@ _0807B37C: .align 2, 0 _0807B3BC: .4byte gUnknown_02024E8C _0807B3C0: .4byte gTrainerBackPicCoords -_0807B3C4: .4byte gUnknown_02024BE0 +_0807B3C4: .4byte gObjectBankIDs _0807B3C8: .4byte gSprites _0807B3CC: .4byte SpriteCallbackDummy _0807B3D0: - ldr r1, _0807B4E8 @ =gUnknown_02024A6A + ldr r1, _0807B4E8 @ =gBattlePartyID lsls r0, r7, 1 adds r6, r0, r1 ldrh r0, [r6] @@ -790,7 +790,7 @@ _0807B3D0: lsls r4, 16 lsrs r4, 16 adds r0, r7, 0 - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -812,7 +812,7 @@ _0807B3D0: adds r1, r4, 0 mov r2, r8 bl CreateSprite - ldr r4, _0807B4F4 @ =gUnknown_02024BE0 + ldr r4, _0807B4F4 @ =gObjectBankIDs adds r4, r7, r4 strb r0, [r4] ldr r5, _0807B4F8 @ =gSprites @@ -866,7 +866,7 @@ _0807B3D0: bl StartSpriteAnim _0807B4AC: ldr r1, _0807B4F8 @ =gSprites - ldr r0, _0807B4F4 @ =gUnknown_02024BE0 + ldr r0, _0807B4F4 @ =gObjectBankIDs adds r0, r7, r0 ldrb r0, [r0] lsls r2, r0, 4 @@ -897,10 +897,10 @@ _0807B4D8: pop {r0} bx r0 .align 2, 0 -_0807B4E8: .4byte gUnknown_02024A6A +_0807B4E8: .4byte gBattlePartyID _0807B4EC: .4byte gPlayerParty _0807B4F0: .4byte gUnknown_02024E8C -_0807B4F4: .4byte gUnknown_02024BE0 +_0807B4F4: .4byte gObjectBankIDs _0807B4F8: .4byte gSprites _0807B4FC: .4byte SpriteCallbackDummy _0807B500: .4byte gBattleMonForms @@ -912,7 +912,7 @@ sub_807B508: @ 807B508 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 - ldr r0, _0807B530 @ =gUnknown_02024A68 + ldr r0, _0807B530 @ =gNoOfAllBanks ldrb r0, [r0] cmp r5, r0 bcc _0807B518 @@ -929,7 +929,7 @@ _0807B518: bl battle_make_oam_safari_battle b _0807B550 .align 2, 0 -_0807B530: .4byte gUnknown_02024A68 +_0807B530: .4byte gNoOfAllBanks _0807B534: .4byte gBattleTypeFlags _0807B538: ldrh r1, [r2] @@ -947,7 +947,7 @@ _0807B54A: _0807B550: lsls r0, 24 lsrs r6, r0, 24 - ldr r0, _0807B58C @ =gUnknown_03004340 + ldr r0, _0807B58C @ =gHealthboxIDs adds r4, r5, r0 strb r6, [r4] adds r0, r5, 0 @@ -955,12 +955,12 @@ _0807B550: adds r0, r6, 0 bl sub_8043DFC adds r0, r5, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0807B598 ldrb r0, [r4] - ldr r1, _0807B590 @ =gUnknown_02024A6A + ldr r1, _0807B590 @ =gBattlePartyID lsls r4, r5, 1 adds r1, r4, r1 ldrh r2, [r1] @@ -972,8 +972,8 @@ _0807B550: bl sub_8045A5C b _0807B5E4 .align 2, 0 -_0807B58C: .4byte gUnknown_03004340 -_0807B590: .4byte gUnknown_02024A6A +_0807B58C: .4byte gHealthboxIDs +_0807B590: .4byte gBattlePartyID _0807B594: .4byte gEnemyParty _0807B598: ldr r0, _0807B5C0 @ =gBattleTypeFlags @@ -983,7 +983,7 @@ _0807B598: cmp r0, 0 beq _0807B5CC ldrb r0, [r4] - ldr r1, _0807B5C4 @ =gUnknown_02024A6A + ldr r1, _0807B5C4 @ =gBattlePartyID lsls r4, r5, 1 adds r1, r4, r1 ldrh r2, [r1] @@ -996,11 +996,11 @@ _0807B598: b _0807B5E4 .align 2, 0 _0807B5C0: .4byte gBattleTypeFlags -_0807B5C4: .4byte gUnknown_02024A6A +_0807B5C4: .4byte gBattlePartyID _0807B5C8: .4byte gPlayerParty _0807B5CC: ldrb r0, [r4] - ldr r1, _0807B610 @ =gUnknown_02024A6A + ldr r1, _0807B610 @ =gBattlePartyID lsls r4, r5, 1 adds r1, r4, r1 ldrh r2, [r1] @@ -1012,41 +1012,41 @@ _0807B5CC: bl sub_8045A5C _0807B5E4: adds r0, r5, 0 - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _0807B600 adds r0, r5, 0 - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _0807B61C _0807B600: - ldr r0, _0807B618 @ =gUnknown_03004340 + ldr r0, _0807B618 @ =gHealthboxIDs adds r0, r5, r0 ldrb r0, [r0] movs r1, 0x1 bl nullsub_11 b _0807B628 .align 2, 0 -_0807B610: .4byte gUnknown_02024A6A +_0807B610: .4byte gBattlePartyID _0807B614: .4byte gPlayerParty -_0807B618: .4byte gUnknown_03004340 +_0807B618: .4byte gHealthboxIDs _0807B61C: - ldr r0, _0807B654 @ =gUnknown_03004340 + ldr r0, _0807B654 @ =gHealthboxIDs adds r0, r5, r0 ldrb r0, [r0] movs r1, 0 bl nullsub_11 _0807B628: adds r0, r5, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0807B660 - ldr r0, _0807B658 @ =gUnknown_02024A6A + ldr r0, _0807B658 @ =gBattlePartyID adds r0, r4, r0 ldrh r1, [r0] movs r0, 0x64 @@ -1061,8 +1061,8 @@ _0807B628: bl sub_8043DB0 b _0807B68A .align 2, 0 -_0807B654: .4byte gUnknown_03004340 -_0807B658: .4byte gUnknown_02024A6A +_0807B654: .4byte gHealthboxIDs +_0807B658: .4byte gBattlePartyID _0807B65C: .4byte gEnemyParty _0807B660: ldr r0, _0807B690 @ =gBattleTypeFlags @@ -1071,7 +1071,7 @@ _0807B660: ands r0, r1 cmp r0, 0 bne _0807B68A - ldr r0, _0807B694 @ =gUnknown_02024A6A + ldr r0, _0807B694 @ =gBattlePartyID adds r0, r4, r0 ldrh r1, [r0] movs r0, 0x64 @@ -1090,7 +1090,7 @@ _0807B68A: bx r0 .align 2, 0 _0807B690: .4byte gBattleTypeFlags -_0807B694: .4byte gUnknown_02024A6A +_0807B694: .4byte gBattlePartyID _0807B698: .4byte gPlayerParty thumb_func_end sub_807B508 diff --git a/asm/rom_8094928.s b/asm/rom_8094928.s deleted file mode 100644 index a9d0e3dcc..000000000 --- a/asm/rom_8094928.s +++ /dev/null @@ -1,411 +0,0 @@ - .include "constants/gba_constants.inc" - .include "constants/species_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_8094B6C -sub_8094B6C: @ 8094B6C - push {r4-r7,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 24 - lsrs r6, r2, 24 - movs r7, 0 - bl IsLinkDoubleBattle - lsls r0, 24 - cmp r0, 0 - beq _08094C16 - lsls r0, r4, 1 - adds r0, r4 - ldr r1, _08094BCC @ =0x0201606c - adds r4, r0, r1 - movs r2, 0 - add r6, sp - mov r12, r6 - movs r6, 0xF - mov r3, sp -_08094B9A: - adds r1, r4, r2 - ldrb r0, [r1] - lsrs r0, 4 - strb r0, [r3] - adds r3, 0x1 - ldrb r1, [r1] - adds r0, r6, 0 - ands r0, r1 - strb r0, [r3] - adds r3, 0x1 - adds r2, 0x1 - cmp r2, 0x2 - ble _08094B9A - mov r0, r12 - ldrb r3, [r0] - movs r2, 0 - mov r0, sp - ldrb r0, [r0] - cmp r0, r5 - bne _08094BD0 - mov r0, sp - ldrb r7, [r0] - strb r3, [r0] - b _08094BE4 - .align 2, 0 -_08094BCC: .4byte 0x0201606c -_08094BD0: - adds r2, 0x1 - cmp r2, 0x5 - bgt _08094BE4 - mov r0, sp - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, r5 - bne _08094BD0 - adds r7, r0, 0 - strb r3, [r1] -_08094BE4: - cmp r2, 0x6 - beq _08094C16 - mov r0, r12 - strb r7, [r0] - mov r0, sp - ldrb r0, [r0] - lsls r0, 4 - mov r1, sp - ldrb r1, [r1, 0x1] - orrs r0, r1 - strb r0, [r4] - mov r0, sp - ldrb r0, [r0, 0x2] - lsls r0, 4 - mov r1, sp - ldrb r1, [r1, 0x3] - orrs r0, r1 - strb r0, [r4, 0x1] - mov r0, sp - ldrb r0, [r0, 0x4] - lsls r0, 4 - mov r1, sp - ldrb r1, [r1, 0x5] - orrs r0, r1 - strb r0, [r4, 0x2] -_08094C16: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8094B6C - - thumb_func_start sub_8094C20 -sub_8094C20: @ 8094C20 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - movs r1, 0x1 - ands r1, r2 - lsrs r2, r0, 25 - cmp r1, 0 - beq _08094C40 - ldr r0, _08094C3C @ =gUnknown_02038470 - adds r0, r2, r0 - ldrb r0, [r0] - movs r1, 0xF - ands r1, r0 - b _08094C48 - .align 2, 0 -_08094C3C: .4byte gUnknown_02038470 -_08094C40: - ldr r0, _08094C50 @ =gUnknown_02038470 - adds r0, r2, r0 - ldrb r0, [r0] - lsrs r1, r0, 4 -_08094C48: - adds r0, r1, 0 - pop {r1} - bx r1 - .align 2, 0 -_08094C50: .4byte gUnknown_02038470 - thumb_func_end sub_8094C20 - - thumb_func_start sub_8094C54 -sub_8094C54: @ 8094C54 - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - movs r1, 0x1 - ands r1, r3 - lsrs r3, r0, 25 - cmp r1, 0 - beq _08094C7C - ldr r0, _08094C78 @ =gUnknown_02038470 - adds r0, r3, r0 - ldrb r2, [r0] - movs r1, 0xF0 - ands r1, r2 - orrs r1, r4 - strb r1, [r0] - b _08094C8C - .align 2, 0 -_08094C78: .4byte gUnknown_02038470 -_08094C7C: - ldr r2, _08094C94 @ =gUnknown_02038470 - adds r2, r3, r2 - ldrb r1, [r2] - movs r0, 0xF - ands r0, r1 - lsls r1, r4, 4 - orrs r0, r1 - strb r0, [r2] -_08094C8C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08094C94: .4byte gUnknown_02038470 - thumb_func_end sub_8094C54 - - thumb_func_start sub_8094C98 -sub_8094C98: @ 8094C98 - push {r4-r6,lr} - adds r5, r0, 0 - adds r6, r1, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - adds r0, r5, 0 - bl sub_8094C20 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - bl sub_8094C20 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl sub_8094C54 - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_8094C54 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8094C98 - - thumb_func_start pokemon_order_func -pokemon_order_func: @ 8094CD4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r3, 0 - movs r2, 0 - ldr r5, _08094CFC @ =gUnknown_02038470 -_08094CE0: - adds r0, r3, r5 - ldrb r1, [r0] - lsrs r0, r1, 4 - cmp r0, r4 - beq _08094CF8 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - movs r0, 0xF - ands r0, r1 - cmp r0, r4 - bne _08094D00 -_08094CF8: - adds r0, r2, 0 - b _08094D12 - .align 2, 0 -_08094CFC: .4byte gUnknown_02038470 -_08094D00: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x2 - bls _08094CE0 - movs r0, 0 -_08094D12: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end pokemon_order_func - - thumb_func_start pokemon_change_order -pokemon_change_order: @ 8094D18 - push {r4,r5,lr} - ldr r0, _08094D58 @ =0x0201b000 - ldr r1, _08094D5C @ =gPlayerParty - movs r2, 0x96 - lsls r2, 2 - bl memcpy - movs r4, 0 - movs r5, 0x64 -_08094D2A: - adds r0, r4, 0 - bl pokemon_order_func - lsls r0, 24 - lsrs r0, 24 - muls r0, r5 - ldr r1, _08094D5C @ =gPlayerParty - adds r0, r1 - adds r1, r4, 0 - muls r1, r5 - ldr r2, _08094D58 @ =0x0201b000 - adds r1, r2 - movs r2, 0x64 - bl memcpy - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _08094D2A - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08094D58: .4byte 0x0201b000 -_08094D5C: .4byte gPlayerParty - thumb_func_end pokemon_change_order - - thumb_func_start sub_8094D60 -sub_8094D60: @ 8094D60 - push {r4,r5,lr} - ldr r4, _08094DA8 @ =0xfffffda8 - add sp, r4 - ldr r1, _08094DAC @ =gPlayerParty - movs r2, 0x96 - lsls r2, 2 - mov r0, sp - bl memcpy - movs r4, 0 - movs r5, 0x64 -_08094D76: - adds r0, r4, 0 - bl sub_8094C20 - lsls r0, 24 - lsrs r0, 24 - muls r0, r5 - ldr r1, _08094DAC @ =gPlayerParty - adds r0, r1 - adds r1, r4, 0 - muls r1, r5 - add r1, sp - movs r2, 0x64 - bl memcpy - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _08094D76 - movs r3, 0x96 - lsls r3, 2 - add sp, r3 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08094DA8: .4byte 0xfffffda8 -_08094DAC: .4byte gPlayerParty - thumb_func_end sub_8094D60 - - thumb_func_start unref_sub_8094DB0 -unref_sub_8094DB0: @ 8094DB0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r6, 0x1 - movs r7, 0x64 - ldr r0, _08094E08 @ =gPlayerParty - mov r8, r0 -_08094DBE: - adds r0, r6, 0 - bl sub_8094C20 - lsls r0, 24 - lsrs r0, 24 - muls r0, r7 - mov r1, r8 - adds r5, r0, r1 - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _08094E0C - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _08094E0C - movs r0, 0 - bl sub_8094C20 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - adds r1, r6, 0 - bl sub_8094C98 - adds r0, r4, 0 - muls r0, r7 - add r0, r8 - adds r1, r5, 0 - bl sub_806E6F0 - b _08094E16 - .align 2, 0 -_08094E08: .4byte gPlayerParty -_08094E0C: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x5 - bls _08094DBE -_08094E16: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end unref_sub_8094DB0 - - thumb_func_start sub_8094E20 -sub_8094E20: @ 8094E20 - push {lr} - ldr r3, _08094E44 @ =gPaletteFade - ldrb r1, [r3, 0x8] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r3, 0x8] - ldr r1, _08094E48 @ =gUnknown_02038473 - strb r0, [r1] - bl nullsub_14 - bl pokemon_change_order - movs r0, 0x1 - movs r1, 0xFF - bl OpenPartyMenu - pop {r0} - bx r0 - .align 2, 0 -_08094E44: .4byte gPaletteFade -_08094E48: .4byte gUnknown_02038473 - thumb_func_end sub_8094E20 - - thumb_func_start sub_8094E4C -sub_8094E4C: @ 8094E4C - push {lr} - movs r0, 0x3 - bl sub_8094E20 - pop {r0} - bx r0 - thumb_func_end sub_8094E4C - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/roulette.s b/asm/roulette.s index 6382ecf0b..fcfedbd80 100644 --- a/asm/roulette.s +++ b/asm/roulette.s @@ -733,7 +733,7 @@ sub_8115734: @ 8115734 bl MenuPrint ldr r1, _08115778 @ =gUnknown_083F8EBC adds r0, r4, 0 - bl sub_80F914C + bl DoYesNoFuncWithChoice pop {r4} pop {r0} bx r0 @@ -3245,7 +3245,7 @@ sub_8116B40: @ 8116B40 strh r4, [r0] adds r0, 0x2 strh r4, [r0] - ldr r1, _08116BB4 @ =gUnknown_0300485C + ldr r1, _08116BB4 @ =gFieldCallback ldr r0, _08116BB8 @ =sub_8080990 str r0, [r1] ldr r0, _08116BBC @ =c2_exit_to_overworld_2_switch @@ -3261,7 +3261,7 @@ _08116BA4: .4byte 0x02019000 _08116BA8: .4byte gSpriteCoordOffsetX _08116BAC: .4byte gSpriteCoordOffsetY _08116BB0: .4byte REG_BLDCNT -_08116BB4: .4byte gUnknown_0300485C +_08116BB4: .4byte gFieldCallback _08116BB8: .4byte sub_8080990 _08116BBC: .4byte c2_exit_to_overworld_2_switch thumb_func_end sub_8116B40 @@ -4483,7 +4483,7 @@ sub_81174F8: @ 81174F8 bl sub_814AAF8 ldr r1, _08117524 @ =gUnknown_083F8EB4 adds r0, r4, 0 - bl sub_80F914C + bl DoYesNoFuncWithChoice pop {r4} pop {r0} bx r0 diff --git a/asm/secret_base.s b/asm/secret_base.s index 8f2df8396..9fd741aa0 100644 --- a/asm/secret_base.s +++ b/asm/secret_base.s @@ -584,7 +584,7 @@ _080BC8C2: ldrsh r1, [r4, r2] cmp r0, r1 bne _080BC8FC - bl sub_8072DEC + bl HandleDestroyMenuCursors movs r0, 0 movs r1, 0 movs r2, 0x1D @@ -594,7 +594,7 @@ _080BC8C2: bl sub_80BCC54 b _080BC940 _080BC8FC: - bl sub_8072DEC + bl HandleDestroyMenuCursors ldrb r0, [r4, 0x4] ldrb r1, [r4, 0x2] adds r0, r1 @@ -614,7 +614,7 @@ _080BC91C: beq _080BC940 movs r0, 0x5 bl PlaySE - bl sub_8072DEC + bl HandleDestroyMenuCursors movs r0, 0 movs r1, 0 movs r2, 0x1D @@ -671,9 +671,9 @@ sub_80BC980: @ 80BC980 lsls r4, 24 lsrs r4, 24 movs r0, 0 - bl sub_80F996C + bl PauseVerticalScrollIndicator movs r0, 0x1 - bl sub_80F996C + bl PauseVerticalScrollIndicator movs r0, 0x1 movs r1, 0 movs r2, 0xC @@ -799,7 +799,7 @@ sub_80BCA84: @ 80BCA84 bl DestroyVerticalScrollIndicator movs r0, 0x1 bl DestroyVerticalScrollIndicator - bl sub_8072DEC + bl HandleDestroyMenuCursors movs r0, 0 movs r1, 0 movs r2, 0x1D @@ -840,7 +840,7 @@ sub_80BCAEC: @ 80BCAEC bl DisplayYesNoMenu ldr r1, _080BCB0C @ =gUnknown_083D13E4 adds r0, r4, 0 - bl sub_80F914C + bl DoYesNoFuncWithChoice pop {r4} pop {r0} bx r0 @@ -994,9 +994,9 @@ sub_80BCBF8: @ 80BCBF8 movs r3, 0x5 bl MenuZeroFillWindowRect movs r0, 0 - bl sub_80F98DC + bl StartVerticalScrollIndicators movs r0, 0x1 - bl sub_80F98DC + bl StartVerticalScrollIndicators subs r5, 0x8 adds r4, r5 ldr r0, _080BCC50 @ =sub_80BC824 diff --git a/asm/shop.s b/asm/shop.s index 1d0863469..a341e90a1 100644 --- a/asm/shop.s +++ b/asm/shop.s @@ -1222,7 +1222,7 @@ sub_80B3D38: @ 80B3D38 bl sub_80A3FA0 ldr r1, _080B3D78 @ =gUnknown_083CC708 adds r0, r4, 0 - bl sub_80F914C + bl DoYesNoFuncWithChoice add sp, 0x8 pop {r4} pop {r0} @@ -1767,9 +1767,9 @@ _080B41B8: b _080B4350 _080B41CE: movs r0, 0 - bl sub_80F996C + bl PauseVerticalScrollIndicator movs r0, 0x1 - bl sub_80F996C + bl PauseVerticalScrollIndicator movs r0, 0x1 movs r1, 0x1 bl sub_80F979C @@ -1777,7 +1777,7 @@ _080B41CE: adds r0, r1, 0 movs r2, 0x1 bl sub_80B39D0 - bl sub_8072DEC + bl HandleDestroyMenuCursors movs r0, 0 movs r1, 0xC movs r2, 0xD @@ -1978,9 +1978,9 @@ sub_80B4378: @ 80B4378 bl sub_80B3764 bl sub_80B37EC movs r0, 0 - bl sub_80F98DC + bl StartVerticalScrollIndicators movs r0, 0x1 - bl sub_80F98DC + bl StartVerticalScrollIndicators bl sub_80B32A4 ldr r1, _080B43E8 @ =gTasks lsls r0, r4, 2 @@ -2006,7 +2006,7 @@ sub_80B43F0: @ 80B43F0 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r1, _080B4428 @ =gUnknown_0300485C + ldr r1, _080B4428 @ =gFieldCallback ldr r0, _080B442C @ =sub_80B3050 str r0, [r1] movs r0, 0x1 @@ -2028,7 +2028,7 @@ sub_80B43F0: @ 80B43F0 pop {r0} bx r0 .align 2, 0 -_080B4428: .4byte gUnknown_0300485C +_080B4428: .4byte gFieldCallback _080B442C: .4byte sub_80B3050 _080B4430: .4byte gTasks _080B4434: .4byte Task_ExitBuyMenu diff --git a/asm/trade.s b/asm/trade.s index 756423ee7..e4d45ec73 100644 --- a/asm/trade.s +++ b/asm/trade.s @@ -3266,7 +3266,7 @@ _08049800: .4byte gUnknown_03004824 thumb_func_start sub_8049804 sub_8049804: @ 8049804 push {lr} - bl sub_8072DEC + bl HandleDestroyMenuCursors bl sub_804A80C ldr r3, _08049850 @ =gUnknown_03004824 ldr r0, [r3] @@ -4315,7 +4315,7 @@ _08049F8E: lsls r0, 2 adds r0, r7 bl sub_8078A34 - bl sub_8072DEC + bl HandleDestroyMenuCursors ldr r3, _0804A09C @ =gUnknown_03004824 ldr r0, [r3] adds r0, 0x4 @@ -5363,7 +5363,7 @@ _0804A89C: .4byte gUnknown_03004824 _0804A8A0: .4byte gUnknown_0820C330 _0804A8A4: .4byte gTradePartyBoxTilemap _0804A8A8: - bl sub_8072DEC + bl HandleDestroyMenuCursors ldr r4, _0804A924 @ =gUnknown_03004824 ldr r0, [r4] adds r0, 0x4 @@ -7560,10 +7560,10 @@ sub_804BA18: @ 804BA18 lsrs r4, 16 adds r0, r4, 0 movs r1, 0x2 - bl sub_8090D90 + bl GetNationalPokedexFlag adds r0, r4, 0 movs r1, 0x3 - bl sub_8090D90 + bl GetNationalPokedexFlag _0804BA5A: pop {r4} pop {r0} @@ -12051,7 +12051,7 @@ sub_804E1A0: @ 804E1A0 bne _0804E1C4 ldr r0, _0804E1D0 @ =sub_804B790 bl SetMainCallback2 - ldr r1, _0804E1D4 @ =gUnknown_0300485C + ldr r1, _0804E1D4 @ =gFieldCallback ldr r0, _0804E1D8 @ =sub_8080990 str r0, [r1] adds r0, r4, 0 @@ -12063,7 +12063,7 @@ _0804E1C4: .align 2, 0 _0804E1CC: .4byte gPaletteFade _0804E1D0: .4byte sub_804B790 -_0804E1D4: .4byte gUnknown_0300485C +_0804E1D4: .4byte gFieldCallback _0804E1D8: .4byte sub_8080990 thumb_func_end sub_804E1A0 diff --git a/asm/trader.s b/asm/trader.s index be3627e90..3bda1d8dc 100644 --- a/asm/trader.s +++ b/asm/trader.s @@ -290,7 +290,7 @@ _08109B54: ldr r0, _08109B78 @ =gSpecialVar_0x8004 strh r1, [r0] _08109B58: - bl sub_8072DEC + bl HandleDestroyMenuCursors movs r0, 0 movs r1, 0x1 movs r2, 0xC @@ -509,7 +509,7 @@ sub_8109D04: @ 8109D04 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 - bl sub_8072DEC + bl HandleDestroyMenuCursors movs r0, 0 movs r1, 0 movs r2, 0x1D @@ -581,7 +581,7 @@ sub_8109DAC: @ 8109DAC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - bl sub_8072DEC + bl HandleDestroyMenuCursors movs r0, 0 movs r1, 0 movs r2, 0x1D diff --git a/asm/tv.s b/asm/tv.s deleted file mode 100644 index ec5296064..000000000 --- a/asm/tv.s +++ /dev/null @@ -1,1822 +0,0 @@ - .include "constants/gba_constants.inc" - .include "constants/misc_constants.inc" - .include "constants/species_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start special_0x44 -special_0x44: @ 80BD800 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r4, 0x5 - ldr r1, _080BD874 @ =gSaveBlock1 - ldr r2, _080BD878 @ =0x000027ec - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _080BD834 - adds r2, r1, 0 - ldr r1, _080BD87C @ =0x00002738 -_080BD81A: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x17 - bhi _080BD834 - lsls r0, r4, 3 - adds r0, r4 - lsls r0, 2 - adds r0, r2 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080BD81A -_080BD834: - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r4, 0 - bl __modsi3 - lsls r0, 24 - lsrs r4, r0, 24 - mov r8, r4 - ldr r7, _080BD874 @ =gSaveBlock1 - ldr r0, _080BD87C @ =0x00002738 - adds r0, r7 - mov r9, r0 -_080BD850: - lsls r0, r4, 3 - adds r0, r4 - lsls r6, r0, 2 - adds r5, r6, r7 - ldr r1, _080BD87C @ =0x00002738 - adds r0, r5, r1 - ldrb r0, [r0] - bl sub_80BFB54 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - beq _080BD884 - ldr r2, _080BD880 @ =0x00002739 - adds r0, r5, r2 - ldrb r0, [r0] - b _080BD890 - .align 2, 0 -_080BD874: .4byte gSaveBlock1 -_080BD878: .4byte 0x000027ec -_080BD87C: .4byte 0x00002738 -_080BD880: .4byte 0x00002739 -_080BD884: - mov r0, r9 - adds r1, r6, r0 - ldrh r0, [r1, 0x16] - cmp r0, 0 - bne _080BD898 - ldrb r0, [r1, 0x1] -_080BD890: - cmp r0, 0x1 - bne _080BD898 - adds r0, r4, 0 - b _080BD8AC -_080BD898: - cmp r4, 0 - bne _080BD8A0 - movs r4, 0x17 - b _080BD8A6 -_080BD8A0: - subs r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_080BD8A6: - cmp r4, r8 - bne _080BD850 - movs r0, 0xFF -_080BD8AC: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end special_0x44 - - thumb_func_start sub_80BD8B8 -sub_80BD8B8: @ 80BD8B8 - push {lr} - bl special_0x44 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xFF - bne _080BD8CA - movs r0, 0xFF - b _080BD902 -_080BD8CA: - ldr r2, _080BD8F4 @ =gSaveBlock1 - ldr r3, _080BD8F8 @ =0x00002afc - adds r0, r2, r3 - ldrh r0, [r0] - cmp r0, 0 - beq _080BD900 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r2, _080BD8FC @ =0x00002738 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x29 - bne _080BD900 - bl sub_80BDA30 - lsls r0, 24 - lsrs r0, 24 - b _080BD902 - .align 2, 0 -_080BD8F4: .4byte gSaveBlock1 -_080BD8F8: .4byte 0x00002afc -_080BD8FC: .4byte 0x00002738 -_080BD900: - adds r0, r1, 0 -_080BD902: - pop {r1} - bx r1 - thumb_func_end sub_80BD8B8 - - thumb_func_start UpdateTVScreensOnMap -UpdateTVScreensOnMap: @ 80BD908 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldr r0, _080BD938 @ =0x00000831 - bl FlagSet - bl CheckForBigMovieOrEmergencyNewsOnTV - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080BD92C - cmp r0, 0x2 - beq _080BD97E - ldr r0, _080BD93C @ =gSaveBlock1 - ldrh r0, [r0, 0x4] - cmp r0, 0xD - bne _080BD940 -_080BD92C: - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x3 - bl SetTVMetatilesOnMap - b _080BD97E - .align 2, 0 -_080BD938: .4byte 0x00000831 -_080BD93C: .4byte gSaveBlock1 -_080BD940: - ldr r0, _080BD984 @ =0x00000832 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _080BD97E - bl sub_80BD8B8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _080BD96E - bl sub_80BECA0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _080BD96E - bl IsTVShowInSearchOfTrainersAiring - lsls r0, 24 - cmp r0, 0 - beq _080BD97E -_080BD96E: - ldr r0, _080BD988 @ =0x00000831 - bl FlagReset - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x3 - bl SetTVMetatilesOnMap -_080BD97E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BD984: .4byte 0x00000832 -_080BD988: .4byte 0x00000831 - thumb_func_end UpdateTVScreensOnMap - - thumb_func_start SetTVMetatilesOnMap -SetTVMetatilesOnMap: @ 80BD98C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r9, r0 - mov r10, r1 - lsls r2, 16 - lsrs r2, 16 - movs r5, 0 - cmp r5, r10 - bge _080BD9E0 - movs r1, 0xC0 - lsls r1, 4 - adds r0, r1, 0 - mov r8, r2 - mov r1, r8 - orrs r1, r0 - mov r8, r1 -_080BD9B2: - movs r4, 0 - adds r7, r5, 0x1 - cmp r4, r9 - bge _080BD9DA - mov r0, r8 - lsls r6, r0, 16 -_080BD9BE: - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridGetMetatileBehaviorAt - cmp r0, 0x86 - bne _080BD9D4 - adds r0, r4, 0 - adds r1, r5, 0 - lsrs r2, r6, 16 - bl MapGridSetMetatileIdAt -_080BD9D4: - adds r4, 0x1 - cmp r4, r9 - blt _080BD9BE -_080BD9DA: - adds r5, r7, 0 - cmp r5, r10 - blt _080BD9B2 -_080BD9E0: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end SetTVMetatilesOnMap - - thumb_func_start TurnOffTVScreen -TurnOffTVScreen: @ 80BD9F0 - push {lr} - ldr r1, _080BDA08 @ =gUnknown_03004870 - ldr r0, [r1] - ldr r1, [r1, 0x4] - movs r2, 0x2 - bl SetTVMetatilesOnMap - bl DrawWholeMapView - pop {r0} - bx r0 - .align 2, 0 -_080BDA08: .4byte gUnknown_03004870 - thumb_func_end TurnOffTVScreen - - thumb_func_start sub_80BDA0C -sub_80BDA0C: @ 80BDA0C - ldr r2, _080BDA24 @ =gSaveBlock1 - ldr r0, _080BDA28 @ =gSpecialVar_0x8004 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, _080BDA2C @ =0x00002738 - adds r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_080BDA24: .4byte gSaveBlock1 -_080BDA28: .4byte gSpecialVar_0x8004 -_080BDA2C: .4byte 0x00002738 - thumb_func_end sub_80BDA0C - - thumb_func_start sub_80BDA30 -sub_80BDA30: @ 80BDA30 - push {r4,lr} - movs r2, 0 - ldr r3, _080BDA5C @ =gSaveBlock1 -_080BDA36: - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - adds r1, r0, r3 - ldr r4, _080BDA60 @ =0x00002738 - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _080BDA64 - cmp r0, 0x29 - beq _080BDA64 - adds r4, 0x1 - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080BDA64 - adds r0, r2, 0 - b _080BDA70 - .align 2, 0 -_080BDA5C: .4byte gSaveBlock1 -_080BDA60: .4byte 0x00002738 -_080BDA64: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x17 - bls _080BDA36 - movs r0, 0xFF -_080BDA70: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80BDA30 - - thumb_func_start special_0x4a -special_0x4a: @ 80BDA78 - push {lr} - ldr r2, _080BDAA4 @ =gSpecialVar_0x8004 - ldrh r1, [r2] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080BDAA8 @ =gSaveBlock1 + 0x2738 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x29 - bne _080BDAAC - movs r3, 0xF1 - lsls r3, 2 - adds r0, r1, r3 - ldrh r0, [r0] - cmp r0, 0 - beq _080BDAAC - bl sub_80BDA30 - lsls r0, 24 - lsrs r0, 24 - b _080BDAAE - .align 2, 0 -_080BDAA4: .4byte gSpecialVar_0x8004 -_080BDAA8: .4byte gSaveBlock1 + 0x2738 -_080BDAAC: - ldrb r0, [r2] -_080BDAAE: - pop {r1} - bx r1 - thumb_func_end special_0x4a - - thumb_func_start ResetGabbyAndTy -ResetGabbyAndTy: @ 80BDAB4 - push {r4,lr} - ldr r2, _080BDAF8 @ =gSaveBlock1 - ldr r1, _080BDAFC @ =0x00002b10 - adds r0, r2, r1 - movs r3, 0 - movs r1, 0 - strh r1, [r0] - ldr r4, _080BDB00 @ =0x00002b12 - adds r0, r2, r4 - strh r1, [r0] - adds r4, 0x2 - adds r0, r2, r4 - strh r1, [r0] - ldr r0, _080BDB04 @ =0x00002b16 - adds r1, r2, r0 - ldr r0, _080BDB08 @ =0x0000ffff - strh r0, [r1] - adds r4, 0x6 - adds r1, r2, r4 - movs r0, 0 - strb r0, [r1] - ldr r0, _080BDB0C @ =0x00002b1b - adds r1, r2, r0 - movs r0, 0 - strb r0, [r1] - ldr r1, _080BDB10 @ =0x00002b18 - adds r0, r2, r1 - strb r3, [r0] - subs r4, 0x1 - adds r2, r4 - strb r3, [r2] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BDAF8: .4byte gSaveBlock1 -_080BDAFC: .4byte 0x00002b10 -_080BDB00: .4byte 0x00002b12 -_080BDB04: .4byte 0x00002b16 -_080BDB08: .4byte 0x0000ffff -_080BDB0C: .4byte 0x00002b1b -_080BDB10: .4byte 0x00002b18 - thumb_func_end ResetGabbyAndTy - - thumb_func_start GabbyAndTyBeforeInterview -GabbyAndTyBeforeInterview: @ 80BDB14 - push {r4,r5,lr} - ldr r2, _080BDB68 @ =gSaveBlock1 - ldr r3, _080BDB6C @ =gUnknown_030042E0 - ldrh r1, [r3, 0x6] - ldr r4, _080BDB70 @ =0x00002b10 - adds r0, r2, r4 - strh r1, [r0] - ldrh r1, [r3, 0x26] - adds r4, 0x2 - adds r0, r2, r4 - strh r1, [r0] - ldrh r1, [r3, 0x22] - adds r4, 0x2 - adds r0, r2, r4 - strh r1, [r0] - ldr r0, _080BDB74 @ =0x00002b19 - adds r4, r2, r0 - ldrb r1, [r4] - adds r0, r1, 0 - adds r5, r2, 0 - cmp r0, 0xFF - beq _080BDB44 - adds r0, r1, 0x1 - strb r0, [r4] -_080BDB44: - ldrb r0, [r3, 0x5] - lsls r0, 31 - ldr r1, _080BDB78 @ =0x00002b1a - adds r4, r5, r1 - lsrs r0, 31 - ldrb r1, [r4] - movs r2, 0x2 - negs r2, r2 - ands r2, r1 - orrs r2, r0 - strb r2, [r4] - ldrb r0, [r3] - cmp r0, 0 - beq _080BDB7C - movs r0, 0x2 - orrs r2, r0 - b _080BDB82 - .align 2, 0 -_080BDB68: .4byte gSaveBlock1 -_080BDB6C: .4byte gUnknown_030042E0 -_080BDB70: .4byte 0x00002b10 -_080BDB74: .4byte 0x00002b19 -_080BDB78: .4byte 0x00002b1a -_080BDB7C: - movs r0, 0x3 - negs r0, r0 - ands r2, r0 -_080BDB82: - strb r2, [r4] - ldrb r0, [r3, 0x3] - cmp r0, 0 - beq _080BDB9C - ldr r4, _080BDB98 @ =0x00002b1a - adds r0, r5, r4 - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - b _080BDBAA - .align 2, 0 -_080BDB98: .4byte 0x00002b1a -_080BDB9C: - ldr r0, _080BDBDC @ =0x00002b1a - adds r2, r5, r0 - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_080BDBAA: - ldrb r1, [r3, 0x5] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _080BDBE0 - movs r1, 0 - adds r0, r3, 0 - adds r0, 0x36 - ldrb r0, [r0] - cmp r0, 0 - bne _080BDBE0 -_080BDBC0: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xA - bhi _080BDBEC - adds r0, r3, 0 - adds r0, 0x36 - adds r0, r1, r0 - ldrb r0, [r0] - cmp r0, 0 - beq _080BDBC0 - ldr r4, _080BDBDC @ =0x00002b1a - adds r0, r5, r4 - b _080BDBE4 - .align 2, 0 -_080BDBDC: .4byte 0x00002b1a -_080BDBE0: - ldr r1, _080BDC08 @ =0x00002b1a - adds r0, r5, r1 -_080BDBE4: - ldrb r1, [r0] - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0] -_080BDBEC: - bl TakeTVShowInSearchOfTrainersOffTheAir - ldr r0, _080BDC0C @ =gSaveBlock1 - ldr r4, _080BDC10 @ =0x00002b14 - adds r0, r4 - ldrh r0, [r0] - cmp r0, 0 - bne _080BDC02 - movs r0, 0x1 - bl FlagSet -_080BDC02: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BDC08: .4byte 0x00002b1a -_080BDC0C: .4byte gSaveBlock1 -_080BDC10: .4byte 0x00002b14 - thumb_func_end GabbyAndTyBeforeInterview - - thumb_func_start sub_80BDC14 -sub_80BDC14: @ 80BDC14 - push {r4-r6,lr} - ldr r4, _080BDC70 @ =gSaveBlock1 - ldr r0, _080BDC74 @ =0x00002b1a - adds r6, r4, r0 - ldrb r3, [r6] - lsls r1, r3, 31 - adds r0, 0x1 - adds r5, r4, r0 - lsrs r1, 31 - ldrb r2, [r5] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - movs r1, 0x2 - ands r1, r3 - movs r2, 0x3 - negs r2, r2 - ands r0, r2 - orrs r0, r1 - movs r1, 0x4 - ands r1, r3 - subs r2, 0x2 - ands r0, r2 - orrs r0, r1 - movs r1, 0x8 - ands r1, r3 - subs r2, 0x4 - ands r0, r2 - orrs r0, r1 - strb r0, [r5] - movs r0, 0x10 - orrs r3, r0 - strb r3, [r6] - ldr r0, _080BDC78 @ =gMapHeader - ldrb r0, [r0, 0x14] - ldr r1, _080BDC7C @ =0x00002b18 - adds r4, r1 - strb r0, [r4] - movs r0, 0x6 - bl IncrementGameStat - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BDC70: .4byte gSaveBlock1 -_080BDC74: .4byte 0x00002b1a -_080BDC78: .4byte gMapHeader -_080BDC7C: .4byte 0x00002b18 - thumb_func_end sub_80BDC14 - - thumb_func_start TakeTVShowInSearchOfTrainersOffTheAir -TakeTVShowInSearchOfTrainersOffTheAir: @ 80BDC80 - ldr r0, _080BDC94 @ =gSaveBlock1 - ldr r1, _080BDC98 @ =0x00002b1a - adds r0, r1 - ldrb r2, [r0] - movs r1, 0x11 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - bx lr - .align 2, 0 -_080BDC94: .4byte gSaveBlock1 -_080BDC98: .4byte 0x00002b1a - thumb_func_end TakeTVShowInSearchOfTrainersOffTheAir - - thumb_func_start GabbyAndTyGetBattleNum -GabbyAndTyGetBattleNum: @ 80BDC9C - push {lr} - ldr r0, _080BDCBC @ =gSaveBlock1 - ldr r2, _080BDCC0 @ =0x00002b19 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0x5 - bls _080BDCB8 - ldrb r0, [r1] - movs r1, 0x3 - bl __umodsi3 - adds r0, 0x6 - lsls r0, 24 - lsrs r0, 24 -_080BDCB8: - pop {r1} - bx r1 - .align 2, 0 -_080BDCBC: .4byte gSaveBlock1 -_080BDCC0: .4byte 0x00002b19 - thumb_func_end GabbyAndTyGetBattleNum - - thumb_func_start IsTVShowInSearchOfTrainersAiring -IsTVShowInSearchOfTrainersAiring: @ 80BDCC4 - ldr r0, _080BDCD4 @ =gSaveBlock1 - ldr r1, _080BDCD8 @ =0x00002b1a - adds r0, r1 - ldrb r0, [r0] - lsls r0, 27 - lsrs r0, 31 - bx lr - .align 2, 0 -_080BDCD4: .4byte gSaveBlock1 -_080BDCD8: .4byte 0x00002b1a - thumb_func_end IsTVShowInSearchOfTrainersAiring - - thumb_func_start GabbyAndTyGetLastQuote -GabbyAndTyGetLastQuote: @ 80BDCDC - push {r4,r5,lr} - ldr r0, _080BDD00 @ =gSaveBlock1 - ldr r1, _080BDD04 @ =0x00002b16 - adds r4, r0, r1 - ldrh r0, [r4] - ldr r5, _080BDD08 @ =0x0000ffff - cmp r0, r5 - beq _080BDD10 - ldr r0, _080BDD0C @ =gStringVar1 - ldrh r1, [r4] - bl sub_80EB3FC - ldrh r1, [r4] - adds r0, r5, 0 - orrs r0, r1 - strh r0, [r4] - movs r0, 0x1 - b _080BDD12 - .align 2, 0 -_080BDD00: .4byte gSaveBlock1 -_080BDD04: .4byte 0x00002b16 -_080BDD08: .4byte 0x0000ffff -_080BDD0C: .4byte gStringVar1 -_080BDD10: - movs r0, 0 -_080BDD12: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end GabbyAndTyGetLastQuote - - thumb_func_start sub_80BDD18 -sub_80BDD18: @ 80BDD18 - push {lr} - ldr r0, _080BDD30 @ =gSaveBlock1 - ldr r1, _080BDD34 @ =0x00002b1b - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080BDD38 - movs r0, 0x1 - b _080BDD5E - .align 2, 0 -_080BDD30: .4byte gSaveBlock1 -_080BDD34: .4byte 0x00002b1b -_080BDD38: - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080BDD44 - movs r0, 0x2 - b _080BDD5E -_080BDD44: - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080BDD50 - movs r0, 0x3 - b _080BDD5E -_080BDD50: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _080BDD5C - movs r0, 0 - b _080BDD5E -_080BDD5C: - movs r0, 0x4 -_080BDD5E: - pop {r1} - bx r1 - .align 2, 0 - thumb_func_end sub_80BDD18 - - .section .text_80BE8EC - - thumb_func_start sub_80C04A0 -sub_80C04A0: @ 80C04A0 - push {r4,r5,lr} - movs r3, 0 - movs r2, 0x5 - ldr r5, _080C0508 @ =gSaveBlock1 - ldr r4, _080C050C @ =0x00002738 -_080C04AA: - lsls r0, r2, 24 - asrs r1, r0, 24 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - bne _080C04C8 - lsls r0, r3, 24 - movs r2, 0x80 - lsls r2, 17 - adds r0, r2 - lsrs r3, r0, 24 -_080C04C8: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - asrs r0, 24 - cmp r0, 0x17 - ble _080C04AA - movs r2, 0 - lsls r0, r3, 24 - asrs r0, 24 - movs r1, 0x5 - subs r0, r1, r0 - cmp r2, r0 - bge _080C0502 - adds r5, r0, 0 -_080C04E4: - lsls r1, r2, 24 - asrs r4, r1, 24 - movs r0, 0xA0 - lsls r0, 19 - adds r1, r0 - lsrs r1, 24 - ldr r0, _080C0510 @ =gSaveBlock1 + 0x2738 - bl sub_80BF55C - adds r4, 0x1 - lsls r4, 24 - lsrs r2, r4, 24 - asrs r4, 24 - cmp r4, r5 - blt _080C04E4 -_080C0502: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C0508: .4byte gSaveBlock1 -_080C050C: .4byte 0x00002738 -_080C0510: .4byte gSaveBlock1 + 0x2738 - thumb_func_end sub_80C04A0 - - thumb_func_start sub_80C0514 -sub_80C0514: @ 80C0514 - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r0 - adds r7, r1, 0 - lsls r2, 24 - lsrs r5, r2, 24 - movs r4, 0 -_080C0524: - lsls r0, r4, 6 - ldr r6, _080C0550 @ =0x02007000 - adds r0, r6 - adds r1, r4, 0 - muls r1, r7 - add r1, r8 - movs r2, 0x40 - bl memcpy - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080C0524 - adds r4, r6, 0 - cmp r5, 0x1 - beq _080C0578 - cmp r5, 0x1 - bgt _080C0554 - cmp r5, 0 - beq _080C055E - b _080C05AC - .align 2, 0 -_080C0550: .4byte 0x02007000 -_080C0554: - cmp r5, 0x2 - beq _080C0584 - cmp r5, 0x3 - beq _080C059C - b _080C05AC -_080C055E: - ldr r0, _080C0574 @ =gSaveBlock1 + 0x2ABC - adds r1, r4, 0 - adds r1, 0x40 - adds r2, r4, 0 - adds r2, 0x80 - adds r3, r4, 0 - adds r3, 0xC0 - bl sub_80C05C4 - b _080C05AC - .align 2, 0 -_080C0574: .4byte gSaveBlock1 + 0x2ABC -_080C0578: - ldr r1, _080C0580 @ =gSaveBlock1 + 0x2ABC - adds r2, r4, 0 - adds r2, 0x80 - b _080C058A - .align 2, 0 -_080C0580: .4byte gSaveBlock1 + 0x2ABC -_080C0584: - adds r1, r4, 0 - adds r1, 0x40 - ldr r2, _080C0598 @ =gSaveBlock1 + 0x2ABC -_080C058A: - adds r3, r4, 0 - adds r3, 0xC0 - adds r0, r4, 0 - bl sub_80C05C4 - b _080C05AC - .align 2, 0 -_080C0598: .4byte gSaveBlock1 + 0x2ABC -_080C059C: - adds r1, r6, 0 - adds r1, 0x40 - adds r2, r6, 0 - adds r2, 0x80 - ldr r3, _080C05C0 @ =gSaveBlock1 + 0x2ABC - adds r0, r6, 0 - bl sub_80C05C4 -_080C05AC: - bl sub_80C0750 - bl sub_80C0788 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C05C0: .4byte gSaveBlock1 + 0x2ABC - thumb_func_end sub_80C0514 - - thumb_func_start sub_80C05C4 -sub_80C05C4: @ 80C05C4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - str r0, [sp, 0x10] - str r1, [sp, 0x14] - str r2, [sp, 0x18] - str r3, [sp, 0x1C] - add r0, sp, 0x10 - str r0, [sp] - add r0, sp, 0x14 - str r0, [sp, 0x4] - add r0, sp, 0x18 - str r0, [sp, 0x8] - add r0, sp, 0x1C - str r0, [sp, 0xC] - bl GetLinkPlayerCount - ldr r1, _080C0600 @ =gUnknown_03000721 - strb r0, [r1] - movs r0, 0 - mov r10, r0 -_080C05F4: - movs r7, 0 - mov r1, r10 - adds r1, 0x1 - str r1, [sp, 0x20] - b _080C068C - .align 2, 0 -_080C0600: .4byte gUnknown_03000721 -_080C0604: - lsls r4, r7, 2 - mov r1, sp - adds r0, r1, r4 - ldr r0, [r0] - ldr r0, [r0] - mov r1, r10 - bl sub_80C0730 - ldr r1, _080C06B0 @ =gUnknown_03000722 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - mov r8, r4 - adds r1, r7, 0x1 - mov r9, r1 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080C0686 - movs r5, 0 - ldr r1, _080C06B4 @ =gUnknown_03000721 - ldrb r0, [r1] - subs r0, 0x1 - cmp r5, r0 - bge _080C0686 - adds r6, r1, 0 -_080C0638: - adds r0, r7, r5 - adds r4, r0, 0x1 - ldrb r1, [r6] - adds r0, r4, 0 - bl __modsi3 - lsls r0, 2 - add r0, sp - ldr r0, [r0] - ldr r0, [r0] - bl sub_80BEBC8 - ldr r1, _080C06B8 @ =gUnknown_03005D38 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080C0678 - ldrb r1, [r6] - adds r0, r4, 0 - bl __modsi3 - lsls r0, 2 - add r0, sp - ldr r0, [r0] - mov r1, sp - add r1, r8 - ldr r1, [r1] - bl sub_80C06BC -_080C0678: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - ldrb r0, [r6] - subs r0, 0x1 - cmp r5, r0 - blt _080C0638 -_080C0686: - mov r1, r9 - lsls r0, r1, 24 - lsrs r7, r0, 24 -_080C068C: - ldr r0, _080C06B4 @ =gUnknown_03000721 - ldrb r0, [r0] - cmp r7, r0 - bcc _080C0604 - ldr r1, [sp, 0x20] - lsls r0, r1, 24 - lsrs r0, 24 - mov r10, r0 - cmp r0, 0xF - bls _080C05F4 - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C06B0: .4byte gUnknown_03000722 -_080C06B4: .4byte gUnknown_03000721 -_080C06B8: .4byte gUnknown_03005D38 - thumb_func_end sub_80C05C4 - -.section .dotvshow - - thumb_func_start DoTVShowBravoTrainerPokemonProfile -DoTVShowBravoTrainerPokemonProfile: @ 80C091C - push {r4,r5,lr} - ldr r0, _080C0948 @ =gSpecialVar_0x8004 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C094C @ =gSaveBlock1 + 0x2738 - adds r4, r0, r1 - ldr r1, _080C0950 @ =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r0, _080C0954 @ =gUnknown_020387E8 - ldrb r5, [r0] - cmp r5, 0x8 - bls _080C093C - b _080C0B7A -_080C093C: - lsls r0, r5, 2 - ldr r1, _080C0958 @ =_080C095C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C0948: .4byte gSpecialVar_0x8004 -_080C094C: .4byte gSaveBlock1 + 0x2738 -_080C0950: .4byte gScriptResult -_080C0954: .4byte gUnknown_020387E8 -_080C0958: .4byte _080C095C - .align 2, 0 -_080C095C: - .4byte _080C0980 - .4byte _080C09D8 - .4byte _080C0A10 - .4byte _080C0A40 - .4byte _080C0A74 - .4byte _080C0AA8 - .4byte _080C0AEC - .4byte _080C0B34 - .4byte _080C0B64 -_080C0980: - ldr r0, _080C09C0 @ =gStringVar1 - adds r1, r4, 0 - adds r1, 0x16 - ldrb r2, [r4, 0x1E] - bl TVShowConvertInternationalString - ldrb r1, [r4, 0x13] - lsls r1, 29 - lsrs r1, 29 - movs r0, 0x1 - bl CopyContestCategoryToStringVar - ldrb r1, [r4, 0x13] - lsls r1, 27 - lsrs r1, 30 - movs r0, 0x2 - bl sub_80BEF10 - ldrh r1, [r4, 0x2] - movs r0, 0xB - muls r0, r1 - ldr r1, _080C09C4 @ =gSpeciesNames - adds r0, r1 - adds r1, r4, 0 - adds r1, 0x8 - bl StringCompareWithoutExtCtrlCodes - cmp r0, 0 - bne _080C09CC - ldr r1, _080C09C8 @ =gUnknown_020387E8 - movs r0, 0x8 - b _080C0B78 - .align 2, 0 -_080C09C0: .4byte gStringVar1 -_080C09C4: .4byte gSpeciesNames -_080C09C8: .4byte gUnknown_020387E8 -_080C09CC: - ldr r1, _080C09D4 @ =gUnknown_020387E8 - movs r0, 0x1 - b _080C0B78 - .align 2, 0 -_080C09D4: .4byte gUnknown_020387E8 -_080C09D8: - ldr r0, _080C0A04 @ =gStringVar1 - ldrh r2, [r4, 0x2] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C0A08 @ =gSpeciesNames - adds r1, r2 - bl StringCopy - ldr r0, _080C0A0C @ =gStringVar2 - adds r1, r4, 0 - adds r1, 0x8 - ldrb r2, [r4, 0x1F] - bl TVShowConvertInternationalString - ldrb r1, [r4, 0x13] - lsls r1, 29 - lsrs r1, 29 - movs r0, 0x2 - bl CopyContestCategoryToStringVar - b _080C0B74 - .align 2, 0 -_080C0A04: .4byte gStringVar1 -_080C0A08: .4byte gSpeciesNames -_080C0A0C: .4byte gStringVar2 -_080C0A10: - ldr r0, _080C0A2C @ =gStringVar1 - adds r1, r4, 0 - adds r1, 0x16 - ldrb r2, [r4, 0x1E] - bl TVShowConvertInternationalString - ldrb r1, [r4, 0x13] - movs r0, 0x60 - ands r0, r1 - cmp r0, 0 - bne _080C0A34 - ldr r1, _080C0A30 @ =gUnknown_020387E8 - movs r0, 0x3 - b _080C0B78 - .align 2, 0 -_080C0A2C: .4byte gStringVar1 -_080C0A30: .4byte gUnknown_020387E8 -_080C0A34: - ldr r1, _080C0A3C @ =gUnknown_020387E8 - movs r0, 0x4 - b _080C0B78 - .align 2, 0 -_080C0A3C: .4byte gUnknown_020387E8 -_080C0A40: - ldr r0, _080C0A68 @ =gStringVar1 - adds r1, r4, 0 - adds r1, 0x16 - ldrb r2, [r4, 0x1E] - bl TVShowConvertInternationalString - ldr r0, _080C0A6C @ =gStringVar2 - ldrh r1, [r4, 0x4] - bl sub_80EB3FC - ldrb r1, [r4, 0x13] - lsls r1, 25 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x2 - bl sub_80BF088 - ldr r1, _080C0A70 @ =gUnknown_020387E8 - movs r0, 0x5 - b _080C0B78 - .align 2, 0 -_080C0A68: .4byte gStringVar1 -_080C0A6C: .4byte gStringVar2 -_080C0A70: .4byte gUnknown_020387E8 -_080C0A74: - ldr r0, _080C0A9C @ =gStringVar1 - adds r1, r4, 0 - adds r1, 0x16 - ldrb r2, [r4, 0x1E] - bl TVShowConvertInternationalString - ldr r0, _080C0AA0 @ =gStringVar2 - ldrh r1, [r4, 0x4] - bl sub_80EB3FC - ldrb r1, [r4, 0x13] - lsls r1, 25 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x2 - bl sub_80BF088 - ldr r1, _080C0AA4 @ =gUnknown_020387E8 - movs r0, 0x5 - b _080C0B78 - .align 2, 0 -_080C0A9C: .4byte gStringVar1 -_080C0AA0: .4byte gStringVar2 -_080C0AA4: .4byte gUnknown_020387E8 -_080C0AA8: - ldr r0, _080C0AD4 @ =gStringVar1 - adds r1, r4, 0 - adds r1, 0x16 - ldrb r2, [r4, 0x1E] - bl TVShowConvertInternationalString - ldrb r1, [r4, 0x13] - lsls r1, 29 - lsrs r1, 29 - movs r0, 0x1 - bl CopyContestCategoryToStringVar - ldr r0, _080C0AD8 @ =gStringVar3 - ldrh r1, [r4, 0x6] - bl sub_80EB3FC - ldrh r0, [r4, 0x14] - cmp r0, 0 - beq _080C0AE0 - ldr r1, _080C0ADC @ =gUnknown_020387E8 - movs r0, 0x6 - b _080C0B78 - .align 2, 0 -_080C0AD4: .4byte gStringVar1 -_080C0AD8: .4byte gStringVar3 -_080C0ADC: .4byte gUnknown_020387E8 -_080C0AE0: - ldr r1, _080C0AE8 @ =gUnknown_020387E8 - movs r0, 0x7 - b _080C0B78 - .align 2, 0 -_080C0AE8: .4byte gUnknown_020387E8 -_080C0AEC: - ldr r0, _080C0B1C @ =gStringVar1 - ldrh r2, [r4, 0x2] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C0B20 @ =gSpeciesNames - adds r1, r2 - bl StringCopy - ldr r0, _080C0B24 @ =gStringVar2 - ldrh r2, [r4, 0x14] - movs r1, 0xD - muls r1, r2 - ldr r2, _080C0B28 @ =gMoveNames - adds r1, r2 - bl StringCopy - ldr r0, _080C0B2C @ =gStringVar3 - ldrh r1, [r4, 0x6] - bl sub_80EB3FC - ldr r1, _080C0B30 @ =gUnknown_020387E8 - movs r0, 0x7 - b _080C0B78 - .align 2, 0 -_080C0B1C: .4byte gStringVar1 -_080C0B20: .4byte gSpeciesNames -_080C0B24: .4byte gStringVar2 -_080C0B28: .4byte gMoveNames -_080C0B2C: .4byte gStringVar3 -_080C0B30: .4byte gUnknown_020387E8 -_080C0B34: - ldr r0, _080C0B58 @ =gStringVar1 - adds r1, r4, 0 - adds r1, 0x16 - ldrb r2, [r4, 0x1E] - bl TVShowConvertInternationalString - ldr r0, _080C0B5C @ =gStringVar2 - ldrh r2, [r4, 0x2] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C0B60 @ =gSpeciesNames - adds r1, r2 - bl StringCopy - bl TVShowDone - b _080C0B7A - .align 2, 0 -_080C0B58: .4byte gStringVar1 -_080C0B5C: .4byte gStringVar2 -_080C0B60: .4byte gSpeciesNames -_080C0B64: - ldr r0, _080C0B8C @ =gStringVar1 - ldrh r2, [r4, 0x2] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C0B90 @ =gSpeciesNames - adds r1, r2 - bl StringCopy -_080C0B74: - ldr r1, _080C0B94 @ =gUnknown_020387E8 - movs r0, 0x2 -_080C0B78: - strb r0, [r1] -_080C0B7A: - ldr r0, _080C0B98 @ =gTVBravoTrainerTextGroup - lsls r1, r5, 2 - adds r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C0B8C: .4byte gStringVar1 -_080C0B90: .4byte gSpeciesNames -_080C0B94: .4byte gUnknown_020387E8 -_080C0B98: .4byte gTVBravoTrainerTextGroup - thumb_func_end DoTVShowBravoTrainerPokemonProfile - - thumb_func_start DoTVShowBravoTrainerBattleTowerProfile -DoTVShowBravoTrainerBattleTowerProfile: @ 80C0B9C - push {r4,r5,lr} - ldr r0, _080C0BC8 @ =gSpecialVar_0x8004 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C0BCC @ =gSaveBlock1 + 0x2738 - adds r4, r0, r1 - ldr r1, _080C0BD0 @ =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r0, _080C0BD4 @ =gUnknown_020387E8 - ldrb r5, [r0] - adds r2, r0, 0 - cmp r5, 0xE - bls _080C0BBE - b _080C0DDE -_080C0BBE: - lsls r0, r5, 2 - ldr r1, _080C0BD8 @ =_080C0BDC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C0BC8: .4byte gSpecialVar_0x8004 -_080C0BCC: .4byte gSaveBlock1 + 0x2738 -_080C0BD0: .4byte gScriptResult -_080C0BD4: .4byte gUnknown_020387E8 -_080C0BD8: .4byte _080C0BDC - .align 2, 0 -_080C0BDC: - .4byte _080C0C18 - .4byte _080C0C5C - .4byte _080C0C8C - .4byte _080C0CB0 - .4byte _080C0CDC - .4byte _080C0D24 - .4byte _080C0D30 - .4byte _080C0D3C - .4byte _080C0D42 - .4byte _080C0D42 - .4byte _080C0D42 - .4byte _080C0D5C - .4byte _080C0D88 - .4byte _080C0D88 - .4byte _080C0DC0 -_080C0C18: - ldr r0, _080C0C40 @ =gStringVar1 - adds r1, r4, 0x2 - ldrb r2, [r4, 0x1D] - bl TVShowConvertInternationalString - ldr r0, _080C0C44 @ =gStringVar2 - ldrh r2, [r4, 0xA] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C0C48 @ =gSpeciesNames - adds r1, r2 - bl StringCopy - ldrh r0, [r4, 0x16] - cmp r0, 0x6 - bls _080C0C50 - ldr r1, _080C0C4C @ =gUnknown_020387E8 - movs r0, 0x1 - strb r0, [r1] - b _080C0DDE - .align 2, 0 -_080C0C40: .4byte gStringVar1 -_080C0C44: .4byte gStringVar2 -_080C0C48: .4byte gSpeciesNames -_080C0C4C: .4byte gUnknown_020387E8 -_080C0C50: - ldr r1, _080C0C58 @ =gUnknown_020387E8 - movs r0, 0x2 - strb r0, [r1] - b _080C0DDE - .align 2, 0 -_080C0C58: .4byte gUnknown_020387E8 -_080C0C5C: - ldrb r1, [r4, 0x1A] - movs r0, 0 - bl sub_80BF088 - ldrh r1, [r4, 0x16] - movs r0, 0x1 - bl sub_80BF088 - ldrb r0, [r4, 0x1C] - cmp r0, 0x1 - bne _080C0C80 - ldr r1, _080C0C7C @ =gUnknown_020387E8 - movs r0, 0x3 - strb r0, [r1] - b _080C0DDE - .align 2, 0 -_080C0C7C: .4byte gUnknown_020387E8 -_080C0C80: - ldr r1, _080C0C88 @ =gUnknown_020387E8 - movs r0, 0x4 - strb r0, [r1] - b _080C0DDE - .align 2, 0 -_080C0C88: .4byte gUnknown_020387E8 -_080C0C8C: - ldr r0, _080C0CAC @ =gStringVar1 - adds r1, r4, 0 - adds r1, 0xC - ldrb r2, [r4, 0x1D] - bl TVShowConvertInternationalString - ldrh r1, [r4, 0x16] - adds r1, 0x1 - movs r0, 0x1 - bl sub_80BF088 -_080C0CA2: - ldrb r0, [r4, 0x1B] - cmp r0, 0 - beq _080C0CFE - b _080C0D18 - .align 2, 0 -_080C0CAC: .4byte gStringVar1 -_080C0CB0: - ldr r0, _080C0CD0 @ =gStringVar1 - adds r1, r4, 0 - adds r1, 0xC - ldrb r2, [r4, 0x1D] - bl TVShowConvertInternationalString - ldr r0, _080C0CD4 @ =gStringVar2 - ldrh r2, [r4, 0x14] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C0CD8 @ =gSpeciesNames - adds r1, r2 - bl StringCopy - b _080C0CA2 - .align 2, 0 -_080C0CD0: .4byte gStringVar1 -_080C0CD4: .4byte gStringVar2 -_080C0CD8: .4byte gSpeciesNames -_080C0CDC: - ldr r0, _080C0D08 @ =gStringVar1 - adds r1, r4, 0 - adds r1, 0xC - ldrb r2, [r4, 0x1D] - bl TVShowConvertInternationalString - ldr r0, _080C0D0C @ =gStringVar2 - ldrh r2, [r4, 0x14] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C0D10 @ =gSpeciesNames - adds r1, r2 - bl StringCopy - ldrb r0, [r4, 0x1B] - cmp r0, 0 - bne _080C0D18 -_080C0CFE: - ldr r1, _080C0D14 @ =gUnknown_020387E8 - movs r0, 0x5 - strb r0, [r1] - b _080C0DDE - .align 2, 0 -_080C0D08: .4byte gStringVar1 -_080C0D0C: .4byte gStringVar2 -_080C0D10: .4byte gSpeciesNames -_080C0D14: .4byte gUnknown_020387E8 -_080C0D18: - ldr r1, _080C0D20 @ =gUnknown_020387E8 - movs r0, 0x6 - strb r0, [r1] - b _080C0DDE - .align 2, 0 -_080C0D20: .4byte gUnknown_020387E8 -_080C0D24: - ldr r0, _080C0D2C @ =gStringVar1 - adds r1, r4, 0 - adds r1, 0xC - b _080C0D46 - .align 2, 0 -_080C0D2C: .4byte gStringVar1 -_080C0D30: - ldr r0, _080C0D38 @ =gStringVar1 - adds r1, r4, 0 - adds r1, 0xC - b _080C0D46 - .align 2, 0 -_080C0D38: .4byte gStringVar1 -_080C0D3C: - movs r0, 0xB - strb r0, [r2] - b _080C0DDE -_080C0D42: - ldr r0, _080C0D54 @ =gStringVar1 - adds r1, r4, 0x2 -_080C0D46: - ldrb r2, [r4, 0x1D] - bl TVShowConvertInternationalString - ldr r1, _080C0D58 @ =gUnknown_020387E8 - movs r0, 0xB - strb r0, [r1] - b _080C0DDE - .align 2, 0 -_080C0D54: .4byte gStringVar1 -_080C0D58: .4byte gUnknown_020387E8 -_080C0D5C: - ldr r0, _080C0D74 @ =gStringVar1 - ldrh r1, [r4, 0x18] - bl sub_80EB3FC - ldrb r0, [r4, 0x1B] - cmp r0, 0 - bne _080C0D7C - ldr r1, _080C0D78 @ =gUnknown_020387E8 - movs r0, 0xC - strb r0, [r1] - b _080C0DDE - .align 2, 0 -_080C0D74: .4byte gStringVar1 -_080C0D78: .4byte gUnknown_020387E8 -_080C0D7C: - ldr r1, _080C0D84 @ =gUnknown_020387E8 - movs r0, 0xD - strb r0, [r1] - b _080C0DDE - .align 2, 0 -_080C0D84: .4byte gUnknown_020387E8 -_080C0D88: - ldr r0, _080C0DB0 @ =gStringVar1 - ldrh r1, [r4, 0x18] - bl sub_80EB3FC - ldr r0, _080C0DB4 @ =gStringVar2 - adds r1, r4, 0x2 - ldrb r2, [r4, 0x1D] - bl TVShowConvertInternationalString - ldr r0, _080C0DB8 @ =gStringVar3 - adds r1, r4, 0 - adds r1, 0xC - ldrb r2, [r4, 0x1D] - bl TVShowConvertInternationalString - ldr r1, _080C0DBC @ =gUnknown_020387E8 - movs r0, 0xE - strb r0, [r1] - b _080C0DDE - .align 2, 0 -_080C0DB0: .4byte gStringVar1 -_080C0DB4: .4byte gStringVar2 -_080C0DB8: .4byte gStringVar3 -_080C0DBC: .4byte gUnknown_020387E8 -_080C0DC0: - ldr r0, _080C0DF0 @ =gStringVar1 - adds r1, r4, 0x2 - ldrb r2, [r4, 0x1D] - bl TVShowConvertInternationalString - ldr r0, _080C0DF4 @ =gStringVar2 - ldrh r2, [r4, 0xA] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C0DF8 @ =gSpeciesNames - adds r1, r2 - bl StringCopy - bl TVShowDone -_080C0DDE: - ldr r0, _080C0DFC @ =gTVBravoTrainerBattleTowerTextGroup - lsls r1, r5, 2 - adds r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C0DF0: .4byte gStringVar1 -_080C0DF4: .4byte gStringVar2 -_080C0DF8: .4byte gSpeciesNames -_080C0DFC: .4byte gTVBravoTrainerBattleTowerTextGroup - thumb_func_end DoTVShowBravoTrainerBattleTowerProfile - - thumb_func_start DoTVShowTodaysSmartShopper -DoTVShowTodaysSmartShopper: @ 80C0E00 - push {r4-r6,lr} - ldr r0, _080C0E2C @ =gSpecialVar_0x8004 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C0E30 @ =gSaveBlock1 + 0x2738 - adds r5, r0, r1 - ldr r1, _080C0E34 @ =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r0, _080C0E38 @ =gUnknown_020387E8 - ldrb r6, [r0] - adds r2, r0, 0 - cmp r6, 0xC - bls _080C0E22 - b _080C1014 -_080C0E22: - lsls r0, r6, 2 - ldr r1, _080C0E3C @ =_080C0E40 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C0E2C: .4byte gSpecialVar_0x8004 -_080C0E30: .4byte gSaveBlock1 + 0x2738 -_080C0E34: .4byte gScriptResult -_080C0E38: .4byte gUnknown_020387E8 -_080C0E3C: .4byte _080C0E40 - .align 2, 0 -_080C0E40: - .4byte _080C0E74 - .4byte _080C0EB0 - .4byte _080C0EF8 - .4byte _080C0F0A - .4byte _080C0EF8 - .4byte _080C0EF8 - .4byte _080C0F34 - .4byte _080C0F64 - .4byte _080C0F94 - .4byte _080C0FA0 - .4byte _080C0FAE - .4byte _080C0FC0 - .4byte _080C1004 -_080C0E74: - ldr r0, _080C0E98 @ =gStringVar1 - adds r1, r5, 0 - adds r1, 0x13 - ldrb r2, [r5, 0x3] - bl TVShowConvertInternationalString - ldr r0, _080C0E9C @ =gStringVar2 - ldrb r1, [r5, 0x12] - movs r2, 0 - bl sub_80FBFB4 - ldrh r0, [r5, 0xC] - cmp r0, 0xFE - bls _080C0EA4 - ldr r1, _080C0EA0 @ =gUnknown_020387E8 - movs r0, 0xB - strb r0, [r1] - b _080C1014 - .align 2, 0 -_080C0E98: .4byte gStringVar1 -_080C0E9C: .4byte gStringVar2 -_080C0EA0: .4byte gUnknown_020387E8 -_080C0EA4: - ldr r1, _080C0EAC @ =gUnknown_020387E8 - movs r0, 0x1 - strb r0, [r1] - b _080C1014 - .align 2, 0 -_080C0EAC: .4byte gUnknown_020387E8 -_080C0EB0: - ldr r0, _080C0EEC @ =gStringVar1 - adds r1, r5, 0 - adds r1, 0x13 - ldrb r2, [r5, 0x3] - bl TVShowConvertInternationalString - ldr r4, _080C0EF0 @ =gStringVar2 - ldrh r0, [r5, 0x6] - bl ItemId_GetItem - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldrh r1, [r5, 0xC] - movs r0, 0x2 - bl sub_80BF088 - ldr r4, _080C0EF4 @ =gUnknown_020387E8 - bl Random - ldrb r2, [r4] - adds r2, 0x1 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - ands r0, r1 - adds r0, r2 - strb r0, [r4] - b _080C1014 - .align 2, 0 -_080C0EEC: .4byte gStringVar1 -_080C0EF0: .4byte gStringVar2 -_080C0EF4: .4byte gUnknown_020387E8 -_080C0EF8: - ldrh r0, [r5, 0x8] - cmp r0, 0 - beq _080C0F04 - movs r0, 0x6 - strb r0, [r2] - b _080C1014 -_080C0F04: - movs r0, 0xA - strb r0, [r2] - b _080C1014 -_080C0F0A: - ldrh r1, [r5, 0xC] - adds r1, 0x1 - movs r0, 0x2 - bl sub_80BF088 - ldrh r0, [r5, 0x8] - cmp r0, 0 - beq _080C0F28 - ldr r1, _080C0F24 @ =gUnknown_020387E8 - movs r0, 0x6 - strb r0, [r1] - b _080C1014 - .align 2, 0 -_080C0F24: .4byte gUnknown_020387E8 -_080C0F28: - ldr r1, _080C0F30 @ =gUnknown_020387E8 - movs r0, 0xA - strb r0, [r1] - b _080C1014 - .align 2, 0 -_080C0F30: .4byte gUnknown_020387E8 -_080C0F34: - ldr r4, _080C0F5C @ =gStringVar2 - ldrh r0, [r5, 0x8] - bl ItemId_GetItem - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldrh r1, [r5, 0xE] - movs r0, 0x2 - bl sub_80BF088 - ldrh r0, [r5, 0xA] - cmp r0, 0 - beq _080C0F7C - ldr r1, _080C0F60 @ =gUnknown_020387E8 - movs r0, 0x7 - strb r0, [r1] - b _080C1014 - .align 2, 0 -_080C0F5C: .4byte gStringVar2 -_080C0F60: .4byte gUnknown_020387E8 -_080C0F64: - ldr r4, _080C0F8C @ =gStringVar2 - ldrh r0, [r5, 0xA] - bl ItemId_GetItem - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldrh r1, [r5, 0x10] - movs r0, 0x2 - bl sub_80BF088 -_080C0F7C: - ldrb r0, [r5, 0x2] - cmp r0, 0x1 - beq _080C0FE2 - ldr r1, _080C0F90 @ =gUnknown_020387E8 - movs r0, 0x9 - strb r0, [r1] - b _080C1014 - .align 2, 0 -_080C0F8C: .4byte gStringVar2 -_080C0F90: .4byte gUnknown_020387E8 -_080C0F94: - ldrh r0, [r5, 0xC] - cmp r0, 0xFE - bls _080C0FBA - movs r0, 0xC - strb r0, [r2] - b _080C1014 -_080C0FA0: - movs r0, 0x1 - adds r1, r5, 0 - bl sub_80BF154 - bl TVShowDone - b _080C1014 -_080C0FAE: - ldrb r0, [r5, 0x2] - cmp r0, 0x1 - bne _080C0FBA - movs r0, 0x8 - strb r0, [r2] - b _080C1014 -_080C0FBA: - movs r0, 0x9 - strb r0, [r2] - b _080C1014 -_080C0FC0: - ldr r0, _080C0FEC @ =gStringVar1 - adds r1, r5, 0 - adds r1, 0x13 - ldrb r2, [r5, 0x3] - bl TVShowConvertInternationalString - ldr r4, _080C0FF0 @ =gStringVar2 - ldrh r0, [r5, 0x6] - bl ItemId_GetItem - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldrb r0, [r5, 0x2] - cmp r0, 0x1 - bne _080C0FF8 -_080C0FE2: - ldr r1, _080C0FF4 @ =gUnknown_020387E8 - movs r0, 0x8 - strb r0, [r1] - b _080C1014 - .align 2, 0 -_080C0FEC: .4byte gStringVar1 -_080C0FF0: .4byte gStringVar2 -_080C0FF4: .4byte gUnknown_020387E8 -_080C0FF8: - ldr r1, _080C1000 @ =gUnknown_020387E8 - movs r0, 0xC - strb r0, [r1] - b _080C1014 - .align 2, 0 -_080C1000: .4byte gUnknown_020387E8 -_080C1004: - ldr r0, _080C1028 @ =gStringVar1 - adds r1, r5, 0 - adds r1, 0x13 - ldrb r2, [r5, 0x3] - bl TVShowConvertInternationalString - bl TVShowDone -_080C1014: - ldr r0, _080C102C @ =gTVSmartShopperTextGroup - lsls r1, r6, 2 - adds r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C1028: .4byte gStringVar1 -_080C102C: .4byte gTVSmartShopperTextGroup - thumb_func_end DoTVShowTodaysSmartShopper - - .align 2, 0 @ Don't pad with nop. diff --git a/data/battle_811DA74.s b/data/battle_811DA74.s index a17937823..873c76eb9 100644 --- a/data/battle_811DA74.s +++ b/data/battle_811DA74.s @@ -4,10 +4,10 @@ .section .rodata .align 2 -gUnknown_083FE4F4:: @ 83FE4F4 - .4byte dp01t_00_3_getattr +gLinkPartnerBufferCommands:: @ 83FE4F4 + .4byte LinkPartnerHandleGetAttributes .4byte sub_811EC04 - .4byte sub_811EC10 + .4byte LinkPartnerHandleSetAttributes .4byte sub_811F664 .4byte sub_811F6D8 .4byte sub_811F7F4 @@ -29,10 +29,10 @@ gUnknown_083FE4F4:: @ 83FE4F4 .4byte sub_8120128 .4byte sub_8120134 .4byte sub_8120140 - .4byte sub_812014C - .4byte sub_812023C - .4byte sub_8120248 - .4byte sub_81202BC + .4byte LinkPartnerHandleHealthBarUpdate + .4byte LinkPartnerHandleExpBarUpdate + .4byte LinkPartnerHandleStatusIconUpdate + .4byte LinkPartnerHandleStatusAnimation .4byte sub_8120324 .4byte sub_8120330 .4byte sub_812033C @@ -46,11 +46,11 @@ gUnknown_083FE4F4:: @ 83FE4F4 .4byte sub_81203AC .4byte sub_81203E4 .4byte sub_81203FC - .4byte dp01t_29_3_blink + .4byte LinkPartnerHandleHitAnimation .4byte sub_8120494 - .4byte sub_81204A0 + .4byte LinkPartnerHandleEffectivenessSound .4byte sub_81204E4 - .4byte sub_8120514 + .4byte LinkPartnerHandleFaintingCry .4byte dp01t_2E_3_battle_intro .4byte sub_8120588 .4byte dp01t_30_3_80EB11C diff --git a/data/battle_anim_81258BC.s b/data/battle_anim_81258BC.s index b4f88fc67..993adbc2e 100644 --- a/data/battle_anim_81258BC.s +++ b/data/battle_anim_81258BC.s @@ -4,8 +4,8 @@ .section .rodata .align 2 -gUnknown_08402080:: @ 8402080 - .4byte sub_812B864 +gSafariBufferCommands:: @ 8402080 + .4byte SafariHandleGetAttributes .4byte sub_812B870 .4byte sub_812B87C .4byte sub_812B888 @@ -21,8 +21,8 @@ gUnknown_08402080:: @ 8402080 .4byte sub_812BA14 .4byte sub_812BA70 .4byte sub_812BA7C - .4byte dp01t_10_6_message - .4byte dp01t_11_6_message_for_player_only + .4byte SafariHandlePrintString + .4byte SafariHandlePrintStringPlayerOnly .4byte sub_812BB10 .4byte sub_812BBFC .4byte sub_812BC08 diff --git a/data/battle_anim_8137220.s b/data/battle_anim_8137220.s index a2f7c1d74..c1673af9a 100644 --- a/data/battle_anim_8137220.s +++ b/data/battle_anim_8137220.s @@ -4,7 +4,7 @@ .section .rodata .align 2 -gUnknown_084061A4:: @ 84061A4 +gWallyBufferCommands:: @ 84061A4 .4byte dp01t_00_5_getattr .4byte sub_8138230 .4byte sub_813823C diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 32d8e6da5..fbb0826fc 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -280,7 +280,7 @@ BattleScript_1D6F48: @ 81D6F48 seteffectwithchancetarget faintpokemon TARGET, 0, 0x0 -BattleScript_1D6F62:: @ 81D6F62 +BattleScript_EndTurn:: @ 81D6F62 setbyte 0x201600c, 0 atk49 0, 0 end @@ -299,7 +299,7 @@ BattleScript_1D6F77: @ 81D6F77 missmessage resultmessage waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Sleep: @ 81D6F81 attackcanceler @@ -315,25 +315,25 @@ MoveEffect_Sleep: @ 81D6F81 waitanimation setbyte 0x2024d21, 1 seteffecttarget - jump BattleScript_1D6F62 + jump BattleScript_EndTurn BattleScript_1D6FC4: @ 81D6FC4 pause 32 printstring BATTLE_TEXT_DefendingAsleep waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn BattleScript_1D6FD2: @ 81D6FD2 pause 32 printstring BATTLE_TEXT_WasntAffected waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn BattleScript_1D6FE0: @ 81D6FE0 pause 32 printfromtable BattleTextList_40156A waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_PoisonHit: @ 81D6FF0 MoveEffect_PoisonTail: @ 81D6FF0 @@ -380,7 +380,7 @@ BattleScript_1D703F: @ 81D703F BattleScript_1D7056: @ 81D7056 faintpokemon USER, 0, 0x0 faintpokemon TARGET, 0, 0x0 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_BlazeKick: @ 81D7069 MoveEffect_BurnHit: @ 81D7069 @@ -490,7 +490,7 @@ BattleScript_1D7129: @ 81D7129 BattleScript_1D7167: @ 81D7167 faintpokemon TARGET, 0, 0x0 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_MirrorMove: @ 81D7173 attackcanceler @@ -501,7 +501,7 @@ MoveEffect_MirrorMove: @ 81D7173 orbyte 0x2024c68, 32 printstring BATTLE_TEXT_MirrorFail waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_AttackUp: @ 81D718B setbyte 0x201601e, 17 @@ -542,9 +542,9 @@ BattleScript_1D71D8: @ 81D71D8 waitmessage 64 BattleScript_1D71E0: @ 81D71E0 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn -gUnknown_081D71E5:: @ 81D71E5 +BattleScript_StatUp:: @ 81D71E5 playanimation 2, 1, 0x20160a4 printfromtable BattleTextList_401570 waitmessage 64 @@ -592,9 +592,9 @@ BattleScript_1D7269: @ 81D7269 waitmessage 64 BattleScript_1D7271: @ 81D7271 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn -gUnknown_081D7276:: @ 81D7276 +BattleScript_StatDown:: @ 81D7276 playanimation 2, 1, 0x20160a4 printfromtable BattleTextList_40157C waitmessage 64 @@ -609,7 +609,7 @@ MoveEffect_Haze: @ 81D7286 normalisebuffs printstring BATTLE_TEXT_StatElim waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Bide: @ 81D7297 attackcanceler @@ -619,7 +619,7 @@ MoveEffect_Bide: @ 81D7297 waitanimation orword 0x2024c6c, 0x8000000 setbide - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Rampage: @ 81D72AB attackcanceler @@ -690,7 +690,7 @@ BattleScript_1D7377: @ 81D7377 resultmessage waitmessage 64 jumpifbyte 4, 0x2024c68, 41, BattleScript_1D7396 - copyarray gUnknown_030041C0, 0x20160e0, 6 + copyarray gBattleTextBuff1, 0x20160e0, 6 printstring BATTLE_TEXT_HitMulti waitmessage 64 @@ -712,7 +712,7 @@ MoveEffect_Conversion: @ 81D73B1 waitanimation printstring BATTLE_TEXT_TypeTransform waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_FlinchHit: @ 81D73C6 setbyte 0x2024d21, 8 @@ -730,7 +730,7 @@ MoveEffect_RestoreHp: @ 81D73D1 datahpupdate USER printstring BATTLE_TEXT_RegainedHealth waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Toxic: @ 81D73F4 attackcanceler @@ -751,19 +751,19 @@ MoveEffect_Toxic: @ 81D73F4 seteffecttarget resultmessage waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn BattleScript_1D7455: @ 81D7455 pause 64 printstring BATTLE_TEXT_AlreadyPoisoned waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn BattleScript_1D7463: @ 81D7463 copyarray 0x2024c0a, 0x2024c08, 1 setbyte 0x2024d23, 0 - callatk BattleScript_1D98BD - jump BattleScript_1D6F62 + callatk BattleScript_PSNPrevention + jump BattleScript_EndTurn MoveEffect_PayDay: @ 81D747D setbyte 0x2024d21, 11 @@ -798,13 +798,13 @@ BattleScript_1D74C6: @ 81D74C6 pause 64 printfromtable BattleTextList_40156A waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn BattleScript_1D74D6: @ 81D74D6 pause 32 printstring BATTLE_TEXT_AttackingAsleep waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Ohko: @ 81D74E4 attackcanceler @@ -821,14 +821,14 @@ BattleScript_1D7505: @ 81D7505 pause 64 printfromtable BattleTextList_4015C8 waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_RazorWind: @ 81D7515 jumpifsecondarytstatus USER, S_CONTINUE, BattleScript_1D753D jumpifword 4, 0x2024c6c, 0x200, BattleScript_1D753D setbyte 0x2016055, 0 callatk BattleScript_1D756C - jump BattleScript_1D6F62 + jump BattleScript_EndTurn BattleScript_1D753D: @ 81D753D attackcanceler @@ -909,7 +909,7 @@ BattleScript_1D7632: @ 81D7632 pause 64 resultmessage waitmessage 64 - jumpifbyte 4, 0x2024c68, 8, BattleScript_1D6F62 + jumpifbyte 4, 0x2024c68, 8, BattleScript_EndTurn printstring BATTLE_TEXT_KeptGoingCrash waitmessage 64 atk5 @@ -922,7 +922,7 @@ BattleScript_1D7632: @ 81D7632 datahpupdate USER faintpokemon USER, 0, 0x0 orbyte 0x2024c68, 1 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Mist: @ 81D7676 attackcanceler @@ -933,7 +933,7 @@ MoveEffect_Mist: @ 81D7676 waitanimation printfromtable BattleTextList_4015A0 waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_FocusEnergy: @ 81D7689 attackcanceler @@ -945,7 +945,7 @@ MoveEffect_FocusEnergy: @ 81D7689 waitanimation printfromtable BattleTextList_4015A4 waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Recoil: @ 81D76A6 setbyte 0x2024d21, 206 @@ -968,13 +968,13 @@ MoveEffect_Confuse: @ 81D76BF seteffecttarget resultmessage waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn BattleScript_1D76FE: @ 81D76FE pause 32 printstring BATTLE_TEXT_AlreadyConfused waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_AttackUp2: @ 81D770C setbyte 0x201601e, 33 @@ -1005,7 +1005,7 @@ MoveEffect_Transform: @ 81D7743 waitanimation printfromtable BattleTextList_4015A8 waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_AttackDown2: @ 81D7756 setbyte 0x201601e, 161 @@ -1034,7 +1034,7 @@ BattleScript_1D7786: @ 81D7786 waitanimation printfromtable BattleTextList_401540 waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Poison: @ 81D7795 attackcanceler @@ -1055,7 +1055,7 @@ MoveEffect_Poison: @ 81D7795 seteffecttarget resultmessage waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Paralyze: @ 81D77F6 attackcanceler @@ -1075,19 +1075,19 @@ MoveEffect_Paralyze: @ 81D77F6 seteffecttarget resultmessage waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn BattleScript_1D784B: @ 81D784B pause 32 printstring BATTLE_TEXT_AlreadyParalyzed waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn BattleScript_1D7859: @ 81D7859 copyarray 0x2024c0a, 0x2024c08, 1 setbyte 0x2024d23, 0 - callatk BattleScript_1D98B1 - jump BattleScript_1D6F62 + callatk BattleScript_PRLZPrevention + jump BattleScript_EndTurn MoveEffect_AttackDownHit: @ 81D7873 setbyte 0x2024d21, 22 @@ -1118,7 +1118,7 @@ MoveEffect_SkyAttack: @ 81D78B5 jumpifword 4, 0x2024c6c, 0x200, BattleScript_1D753D setbyte 0x2016055, 3 callatk BattleScript_1D756C - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_ConfuseHit: @ 81D78DD setbyte 0x2024d21, 7 @@ -1154,13 +1154,13 @@ BattleScript_1D7922: @ 81D7922 BattleScript_1D7928: @ 81D7928 printfromtable BattleTextList_4015AC waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn BattleScript_1D7935: @ 81D7935 pause 32 printstring BATTLE_TEXT_SubAlready waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Recharge: @ 81D7943 attackcanceler @@ -1171,7 +1171,7 @@ MoveEffect_Recharge: @ 81D7943 gUnknown_081D7956:: @ 81D7956 printstring BATTLE_TEXT_MustRecharge waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Rage: @ 81D7961 attackcanceler @@ -1197,7 +1197,7 @@ MoveEffect_Mimic: @ 81D7988 waitanimation printstring BATTLE_TEXT_LearnedMove2 waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Metronome: @ 81D79AE attackcanceler @@ -1223,7 +1223,7 @@ BattleScript_1D79D9: @ 81D79D9 waitanimation printfromtable BattleTextList_40154C waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Splash: @ 81D79E9 attackcanceler @@ -1234,7 +1234,7 @@ MoveEffect_Splash: @ 81D79E9 atk60 26 printstring BATTLE_TEXT_Nothing waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Disable: @ 81D79FB attackcanceler @@ -1246,7 +1246,7 @@ MoveEffect_Disable: @ 81D79FB waitanimation printstring BATTLE_TEXT_MoveWasDisabled waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_LevelDamage: @ 81D7A17 attackcanceler @@ -1290,7 +1290,7 @@ MoveEffect_Encore: @ 81D7A5D waitanimation printstring BATTLE_TEXT_EncoreGot waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_PainSplit: @ 81D7A79 attackcanceler @@ -1308,7 +1308,7 @@ MoveEffect_PainSplit: @ 81D7A79 datahpupdate TARGET printstring BATTLE_TEXT_PainSplit waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Snore: @ 81D7AB0 attackcanceler @@ -1339,7 +1339,7 @@ MoveEffect_Conversion2: @ 81D7AEA waitanimation printstring BATTLE_TEXT_TypeTransform waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_LockOn: @ 81D7AFF attackcanceler @@ -1352,7 +1352,7 @@ MoveEffect_LockOn: @ 81D7AFF waitanimation printstring BATTLE_TEXT_TookAim waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Sketch: @ 81D7B21 attackcanceler @@ -1364,7 +1364,7 @@ MoveEffect_Sketch: @ 81D7B21 waitanimation printstring BATTLE_TEXT_SketchedMove waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_SleepTalk: @ 81D7B40 attackcanceler @@ -1400,7 +1400,7 @@ MoveEffect_DestinyBond: @ 81D7B82 waitanimation printstring BATTLE_TEXT_DestinyBondTake waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Flail: @ 81D7B93 remaininghptopower @@ -1416,7 +1416,7 @@ MoveEffect_Spite: @ 81D7B99 waitanimation printstring BATTLE_TEXT_ReducedBy waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_HealBell: @ 81D7BB5 attackcanceler @@ -1441,7 +1441,7 @@ BattleScript_1D7BE1: @ 81D7BE1 BattleScript_1D7BF2: @ 81D7BF2 atk98 4 waitstateatk - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_TripleKick: @ 81D7BFA attackcanceler @@ -1493,7 +1493,7 @@ BattleScript_1D7C90: @ 81D7C90 resultmessage waitmessage 64 jumpifbyte 0, 0x20160e4, 0, BattleScript_1D7CAF - copyarray gUnknown_030041C0, 0x20160e0, 6 + copyarray gBattleTextBuff1, 0x20160e0, 6 printstring BATTLE_TEXT_HitMulti waitmessage 64 @@ -1520,7 +1520,7 @@ MoveEffect_MeanLook: @ 81D7CCC seteffecttarget printstring BATTLE_TEXT_CantEscapeNow waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Nightmare: @ 81D7CF4 attackcanceler @@ -1538,7 +1538,7 @@ BattleScript_1D7D1A: @ 81D7D1A seteffecttarget printstring BATTLE_TEXT_NightmareStart waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Minimize: @ 81D7D2E attackcanceler @@ -1578,7 +1578,7 @@ BattleScript_1D7D9A: @ 81D7D9A waitmessage 64 BattleScript_1D7DAE: @ 81D7DAE - jump BattleScript_1D6F62 + jump BattleScript_EndTurn BattleScript_1D7DB3: @ 81D7DB3 jumpifarraynotequal 0x2024c07, 0x2024c08, 1, BattleScript_1D7DC4 @@ -1599,7 +1599,7 @@ BattleScript_1D7DC4: @ 81D7DC4 printstring BATTLE_TEXT_CurseLay waitmessage 64 faintpokemon USER, 0, 0x0 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Endure: @ 81D7DFD MoveEffect_Protect: @ 81D7DFD @@ -1611,7 +1611,7 @@ MoveEffect_Protect: @ 81D7DFD waitanimation printfromtable BattleTextList_40153A waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Spikes: @ 81D7E10 attackcanceler @@ -1622,7 +1622,7 @@ MoveEffect_Spikes: @ 81D7E10 waitanimation printstring BATTLE_TEXT_SpikesScattered waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Foresight: @ 81D7E25 attackcanceler @@ -1634,7 +1634,7 @@ MoveEffect_Foresight: @ 81D7E25 waitanimation printstring BATTLE_TEXT_IdentifiedPoke waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_PerishSong: @ 81D7E3D attackcanceler @@ -1653,7 +1653,7 @@ BattleScript_1D7E53: @ 81D7E53 BattleScript_1D7E5A: @ 81D7E5A addbyte 0x2016003, 1 jumpifarraynotequal 0x2016003, 0x2024a68, 1, BattleScript_1D7E53 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn BattleScript_1D7E73: @ 81D7E73 printstring BATTLE_TEXT_BlocksOther2 @@ -1703,7 +1703,7 @@ BattleScript_1D7EE5: @ 81D7EE5 jumpifhalverset TARGET, 32, BattleScript_1D9037 setbyte 0x2024d21, 7 seteffecttarget - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_FuryCutter: @ 81D7F00 attackcanceler @@ -1730,7 +1730,7 @@ MoveEffect_Attract: @ 81D7F1F waitanimation printstring BATTLE_TEXT_FellLove waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Frustration: @ 81D7F3B MoveEffect_Return: @ 81D7F3B @@ -1788,7 +1788,7 @@ MoveEffect_BatonPass: @ 81D7F7C switch3 USER, 1 waitstateatk atk52 USER - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_RapidSpin: @ 81D7FA9 setbyte 0x2024d21, 163 @@ -1833,7 +1833,7 @@ BattleScript_1D7FFA: @ 81D7FFA printfromtable BattleTextList_40151C waitmessage 64 callatk BattleScript_1D9761 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_SunnyDay: @ 81D800E attackcanceler @@ -1866,7 +1866,7 @@ MoveEffect_BellyDrum: @ 81D8038 datahpupdate USER printstring BATTLE_TEXT_CutHPMaxATK waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_PsychUp: @ 81D805A attackcanceler @@ -1877,7 +1877,7 @@ MoveEffect_PsychUp: @ 81D805A waitanimation printstring BATTLE_TEXT_CopyStatChanges waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_MirrorCoat: @ 81D806F attackcanceler @@ -1903,7 +1903,7 @@ MoveEffect_SkullBash: @ 81D8085 waitmessage 64 BattleScript_1D80CF: @ 81D80CF - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Twister: @ 81D80D4 jumpifspecialstatusflag TARGET, 0x40, 1, BattleScript_1D80EE @@ -1976,7 +1976,7 @@ MoveEffect_FutureSight: @ 81D817D waitanimation printfromtable BattleTextList_4015E2 waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Gust: @ 81D8194 jumpifspecialstatusflag TARGET, 0x40, 1, BattleScript_1D6F14 @@ -1999,7 +1999,7 @@ BattleScript_1D81E1: @ 81D81E1 jumpifword 4, 0x2024c6c, 0x200, BattleScript_1D753D setbyte 0x2016055, 1 callatk BattleScript_1D756C - jump BattleScript_1D6F62 + jump BattleScript_EndTurn BattleScript_1D8209: @ 81D8209 orword 0x2024c6c, 0x8000000 @@ -2026,7 +2026,7 @@ MoveEffect_Teleport: @ 81D8233 printstring BATTLE_TEXT_FledBattle waitmessage 64 setbyte 0x2024d26, 5 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_BeatUp: @ 81D826E attackcanceler @@ -2088,7 +2088,7 @@ BattleScript_1D8322: @ 81D8322 BattleScript_1D8328: @ 81D8328 callatk BattleScript_1D756C hidepreattack - jump BattleScript_1D6F62 + jump BattleScript_EndTurn BattleScript_1D8333: @ 81D8333 attackcanceler @@ -2136,13 +2136,13 @@ BattleScript_1D839B:: @ 81D839B datahpupdate TARGET printstring BATTLE_TEXT_RegainedHealth waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn BattleScript_1D83B5:: @ 81D83B5 pause 32 printstring BATTLE_TEXT_HPFull waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_FakeOut: @ 81D83C3 attackcanceler @@ -2161,14 +2161,14 @@ BattleScript_1D83D6:: @ 81D83D6 orbyte 0x2024c68, 32 resultmessage waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn BattleScript_1D83E8: @ 81D83E8 pause 32 orbyte 0x2024c68, 8 resultmessage waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Uproar: @ 81D83FA attackcanceler @@ -2191,7 +2191,7 @@ MoveEffect_Stockpile: @ 81D841A waitanimation printfromtable BattleTextList_40155E waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_SpitUp: @ 81D842D attackcanceler @@ -2208,7 +2208,7 @@ BattleScript_1D844E: @ 81D844E pause 32 printstring BATTLE_TEXT_SpitUpFail waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn BattleScript_1D845C: @ 81D845C attackstring @@ -2217,7 +2217,7 @@ BattleScript_1D845C: @ 81D845C stockpiletobasedamage BattleScript_1D844E resultmessage waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Swallow: @ 81D846F attackcanceler @@ -2230,7 +2230,7 @@ BattleScript_1D847C: @ 81D847C pause 32 printfromtable BattleTextList_401566 waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Hail: @ 81D848C attackcanceler @@ -2249,7 +2249,7 @@ MoveEffect_Torment: @ 81D8495 waitanimation printstring BATTLE_TEXT_TormentSubject waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Flatter: @ 81D84B1 attackcanceler @@ -2273,7 +2273,7 @@ BattleScript_1D84F4: @ 81D84F4 jumpifhalverset TARGET, 32, BattleScript_1D9037 setbyte 0x2024d21, 7 seteffecttarget - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_WillOWisp: @ 81D850F attackcanceler @@ -2290,19 +2290,19 @@ MoveEffect_WillOWisp: @ 81D850F waitanimation setbyte 0x2024d21, 3 seteffecttarget - jump BattleScript_1D6F62 + jump BattleScript_EndTurn BattleScript_1D855B: @ 81D855B copyarray 0x2024c0a, 0x2024c08, 1 setbyte 0x2024d23, 0 - callatk BattleScript_1D98A5 - jump BattleScript_1D6F62 + callatk BattleScript_BRNPrevention + jump BattleScript_EndTurn BattleScript_1D8575: @ 81D8575 pause 32 printstring BATTLE_TEXT_AlreadyBurned waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Memento: @ 81D8583 attackcanceler @@ -2333,7 +2333,7 @@ BattleScript_1D85D0: @ 81D85D0 BattleScript_1D85F3: @ 81D85F3 faintpokemon USER, 0, 0x0 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn BattleScript_1D85FF: @ 81D85FF printstring BATTLE_TEXT_NoEffect @@ -2352,7 +2352,7 @@ BattleScript_1D8611: @ 81D8611 resultmessage waitmessage 64 faintpokemon USER, 0, 0x0 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Facade: @ 81D8626 jumpifstatus USER, PSN | BRN | PAR | TOX, BattleScript_1D8635 @@ -2368,7 +2368,7 @@ MoveEffect_FocusPunch: @ 81D8640 ppreduce printstring BATTLE_TEXT_LostFocus waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Smellingsalt: @ 81D8652 jumpifsecondarytstatus TARGET, S_SUBSTITUTE, BattleScript_1D6F14 @@ -2389,7 +2389,7 @@ MoveEffect_FollowMe: @ 81D867C waitanimation printstring BATTLE_TEXT_CenterAttention waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_NaturePower: @ 81D868D attackcanceler @@ -2409,7 +2409,7 @@ MoveEffect_Charge: @ 81D869A waitanimation printstring BATTLE_TEXT_ChargingPower waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Taunt: @ 81D86AB attackcanceler @@ -2421,7 +2421,7 @@ MoveEffect_Taunt: @ 81D86AB waitanimation printstring BATTLE_TEXT_TauntFell waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_HelpingHand: @ 81D86C7 attackcanceler @@ -2432,7 +2432,7 @@ MoveEffect_HelpingHand: @ 81D86C7 waitanimation printstring BATTLE_TEXT_ReadyToHelp waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Trick: @ 81D86DC attackcanceler @@ -2447,7 +2447,7 @@ MoveEffect_Trick: @ 81D86DC waitmessage 64 printfromtable BattleTextList_401642 waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_RolePlay: @ 81D870A attackcanceler @@ -2459,7 +2459,7 @@ MoveEffect_RolePlay: @ 81D870A waitanimation printstring BATTLE_TEXT_CopiedObject waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Wish: @ 81D8726 attackcanceler @@ -2468,7 +2468,7 @@ MoveEffect_Wish: @ 81D8726 atkd4 0, BattleScript_1D83D6 attackanimation waitanimation - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Assist: @ 81D8736 attackcanceler @@ -2489,7 +2489,7 @@ MoveEffect_Ingrain: @ 81D874D waitanimation printstring BATTLE_TEXT_PlantedRoots waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Superpower: @ 81D8762 setbyte 0x2024d21, 229 @@ -2504,7 +2504,7 @@ MoveEffect_MagicCoat: @ 81D876D waitanimation printstring BATTLE_TEXT_ShroudedItself waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Recycle: @ 81D8782 attackcanceler @@ -2515,7 +2515,7 @@ MoveEffect_Recycle: @ 81D8782 waitanimation printstring BATTLE_TEXT_FoundOne waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Revenge: @ 81D8797 doubledamagedealtifdamaged @@ -2554,7 +2554,7 @@ BattleScript_1D87D0: @ 81D87D0 waitmessage 64 seteffectwithchancetarget faintpokemon TARGET, 0, 0x0 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Yawn: @ 81D87EE attackcanceler @@ -2571,7 +2571,7 @@ MoveEffect_Yawn: @ 81D87EE waitanimation printstring BATTLE_TEXT_DrowsyMade waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn BattleScript_1D882F: @ 81D882F copyarray 0x2016003, 0x20160f8, 1 @@ -2580,7 +2580,7 @@ BattleScript_1D8839: @ 81D8839 pause 32 printstring BATTLE_TEXT_MadeIneffective2 waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_KnockOff: @ 81D8847 setbyte 0x2024d21, 54 @@ -2614,7 +2614,7 @@ MoveEffect_SkillSwap: @ 81D8893 waitanimation printstring BATTLE_TEXT_AbilitySwap waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Imprison: @ 81D88AF attackcanceler @@ -2625,7 +2625,7 @@ MoveEffect_Imprison: @ 81D88AF waitanimation printstring BATTLE_TEXT_SealedMove waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Refresh: @ 81D88C4 attackcanceler @@ -2637,7 +2637,7 @@ MoveEffect_Refresh: @ 81D88C4 printstring BATTLE_TEXT_StatusNormal waitmessage 64 atk98 1 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Grudge: @ 81D88DB attackcanceler @@ -2648,7 +2648,7 @@ MoveEffect_Grudge: @ 81D88DB waitanimation printstring BATTLE_TEXT_GrudgeBear waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Snatch: @ 81D88F0 attackcanceler @@ -2660,7 +2660,7 @@ MoveEffect_Snatch: @ 81D88F0 pause 32 printstring BATTLE_TEXT_AwaitMove waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_LowKick: @ 81D8908 attackcanceler @@ -2745,7 +2745,7 @@ MoveEffect_WaterSport: @ 81D89D7 waitanimation printfromtable BattleTextList_4015D4 waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_PoisonFang: @ 81D89EE setbyte 0x2024d21, 6 @@ -2788,14 +2788,14 @@ BattleScript_1D8A55: @ 81D8A55 waitmessage 64 BattleScript_1D8A78: @ 81D8A78 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn BattleScript_1D8A7D: @ 81D8A7D pause 32 orbyte 0x2024c68, 32 printstring BATTLE_TEXT_StatNoLower waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_CosmicPower: @ 81D8A91 attackcanceler @@ -2823,7 +2823,7 @@ BattleScript_1D8AD1: @ 81D8AD1 waitmessage 64 BattleScript_1D8AF0: @ 81D8AF0 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_SkyUppercut: @ 81D8AF5 orword 0x2024c6c, 0x10000 @@ -2855,7 +2855,7 @@ BattleScript_1D8B43: @ 81D8B43 waitmessage 64 BattleScript_1D8B62: @ 81D8B62 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_CalmMind: @ 81D8B67 attackcanceler @@ -2883,14 +2883,14 @@ BattleScript_1D8BA7: @ 81D8BA7 waitmessage 64 BattleScript_1D8BC6: @ 81D8BC6 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn BattleScript_1D8BCB: @ 81D8BCB pause 32 orbyte 0x2024c68, 32 printstring BATTLE_TEXT_StatNoHigher waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_DragonDance: @ 81D8BDF attackcanceler @@ -2918,7 +2918,7 @@ BattleScript_1D8C1F: @ 81D8C1F waitmessage 64 BattleScript_1D8C3E: @ 81D8C3E - jump BattleScript_1D6F62 + jump BattleScript_EndTurn MoveEffect_Camouflage: @ 81D8C43 attackcanceler @@ -2929,7 +2929,7 @@ MoveEffect_Camouflage: @ 81D8C43 waitanimation printstring BATTLE_TEXT_TypeTransform waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn gUnknown_081D8C58:: @ 81D8C58 atk56 1 @@ -3188,11 +3188,11 @@ BattleScript_1D8EAD: @ 81D8EAD BattleScript_1D8EEE: @ 81D8EEE return -gUnknown_081D8EEF:: @ 81D8EEF +BattleScript_Pausex20:: @ 81D8EEF pause 32 return -gUnknown_081D8EF3:: @ 81D8EF3 +BattleScript_LevelUp:: @ 81D8EF3 atk55 0xe10016f attackcanceler setbyte 0x201609c, 0 @@ -3338,7 +3338,7 @@ BattleScript_1D9083: @ 81D9083 gUnknown_081D90A7:: @ 81D90A7 printstring BATTLE_TEXT_StoringEnergy waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn gUnknown_081D90B2:: @ 81D90B2 printstring BATTLE_TEXT_UnleashedEnergy @@ -3359,7 +3359,7 @@ gUnknown_081D90B2:: @ 81D90B2 resultmessage waitmessage 64 faintpokemon TARGET, 0, 0x0 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn gUnknown_081D90F1:: @ 81D90F1 printstring BATTLE_TEXT_UnleashedEnergy @@ -3383,7 +3383,7 @@ BattleScript_1D9116: @ 81D9116 waitstateatk printstring BATTLE_TEXT_DraggedOut atk52 TARGET - jump BattleScript_1D6F62 + jump BattleScript_EndTurn gUnknown_081D9128:: @ 81D9128 pause 32 @@ -3399,7 +3399,7 @@ gUnknown_081D9132:: @ 81D9132 gUnknown_081D9139:: @ 81D9139 printstring BATTLE_TEXT_MoveIsDisabled waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn gUnknown_081D9144:: @ 81D9144 printstring2 BATTLE_TEXT_MoveIsDisabled @@ -3527,7 +3527,7 @@ BattleScript_1D92AB: @ 81D92AB BattleScript_1D92BF: @ 81D92BF return -gUnknown_081D92C0:: @ 81D92C0 +BattleScript_RapidSpinAway:: @ 81D92C0 breakfree return @@ -3601,19 +3601,19 @@ gUnknown_081D9369:: @ 81D9369 printstring2 BATTLE_TEXT_NoPP1 atk44 -gUnknown_081D936D:: @ 81D936D +BattleScript_NoPPForMove:: @ 81D936D attackstring pause 32 printstring BATTLE_TEXT_NoPP2 waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn gUnknown_081D937C:: @ 81D937C printstring2 BATTLE_TEXT_TormentNoUse atk44 printstring BATTLE_TEXT_TormentNoUse waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn gUnknown_081D938B:: @ 81D938B printstring2 BATTLE_TEXT_TauntNoUse @@ -3622,7 +3622,7 @@ gUnknown_081D938B:: @ 81D938B gUnknown_081D938F:: @ 81D938F printstring BATTLE_TEXT_TauntNoUse waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn gUnknown_081D939A:: @ 81D939A atkd4 1, BattleScript_1D93C1 @@ -3657,7 +3657,7 @@ BattleScript_1D93EC: @ 81D93EC pause 32 printstring BATTLE_TEXT_AnchoredItself waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn gUnknown_081D93FA:: @ 81D93FA setbyte 0x20160dc, 0 @@ -3680,7 +3680,7 @@ BattleScript_1D9427: @ 81D9427 BattleScript_1D944A: @ 81D944A return -gUnknown_081D944B:: @ 81D944B +BattleScript_KnockedOff:: @ 81D944B playanimation TARGET, 5, 0x0 printstring BATTLE_TEXT_KnockedOffItem waitmessage 64 @@ -3689,7 +3689,7 @@ gUnknown_081D944B:: @ 81D944B gUnknown_081D9459:: @ 81D9459 printstring BATTLE_TEXT_SealedNoUse waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn gUnknown_081D9464:: @ 81D9464 printstring2 BATTLE_TEXT_SealedNoUse @@ -3700,7 +3700,7 @@ gUnknown_081D9468:: @ 81D9468 waitmessage 64 return -gUnknown_081D946F:: @ 81D946F +BattleScript_MagicCoatBounce:: @ 81D946F attackstring ppreduce pause 32 @@ -3710,7 +3710,7 @@ gUnknown_081D946F:: @ 81D946F atk76 USER, 1 return -gUnknown_081D9487:: @ 81D9487 +BattleScript_SnatchedMove:: @ 81D9487 attackstring ppreduce snatchmove @@ -3721,12 +3721,12 @@ gUnknown_081D9487:: @ 81D9487 atk5f return -gUnknown_081D94A2:: @ 81D94A2 +BattleScript_EnduredMsg:: @ 81D94A2 printstring BATTLE_TEXT_EnduredHit waitmessage 64 return -gUnknown_081D94A9:: @ 81D94A9 +BattleScript_OneHitKOMsg:: @ 81D94A9 printstring BATTLE_TEXT_GrandSlam waitmessage 64 return @@ -3755,7 +3755,7 @@ gUnknown_081D94EE:: @ 81D94EE printstring BATTLE_TEXT_FastAsleep waitmessage 64 statusanimation USER - jump BattleScript_1D6F62 + jump BattleScript_EndTurn gUnknown_081D94FB:: @ 81D94FB bicword 0x2024c6c, 0x10 @@ -3796,7 +3796,7 @@ gUnknown_081D9545:: @ 81D9545 printstring BATTLE_TEXT_FrozenSolid waitmessage 64 statusanimation USER - jump BattleScript_1D6F62 + jump BattleScript_EndTurn gUnknown_081D9552:: @ 81D9552 printfromtable BattleTextList_4015C4 @@ -3814,12 +3814,12 @@ gUnknown_081D9566:: @ 81D9566 printstring BATTLE_TEXT_Paralyzed3 waitmessage 64 statusanimation USER - jump BattleScript_1D6F62 + jump BattleScript_EndTurn gUnknown_081D9573:: @ 81D9573 printstring BATTLE_TEXT_Flinched waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn gUnknown_081D957E:: @ 81D957E printfromtable BattleTextList_40155A @@ -3850,7 +3850,7 @@ BattleScript_1D95AC: @ 81D95AC graphicalhpupdate USER datahpupdate USER faintpokemon USER, 0, 0x0 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn BattleScript_1D95D3: @ 81D95D3 return @@ -3885,7 +3885,7 @@ gUnknown_081D95FB:: @ 81D95FB gUnknown_081D9608:: @ 81D9608 printstring BATTLE_TEXT_ImmobilizedBy waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn gUnknown_081D9613:: @ 81D9613 printstring BATTLE_TEXT_NightmareLock @@ -3899,7 +3899,7 @@ gUnknown_081D9624:: @ 81D9624 atk65 1, 0x10000000 jump BattleScript_1D9520 -gUnknown_081D9635:: @ 81D9635 +BattleScript_TargetPRLZHeal:: @ 81D9635 printstring BATTLE_TEXT_ParalysisHealed waitmessage 64 atk98 0 @@ -3990,7 +3990,7 @@ BattleScript_1D96DB: @ 81D96DB BattleScript_1D96F5: @ 81D96F5 return -gUnknown_081D96F6:: @ 81D96F6 +BattleScript_ItemSteal:: @ 81D96F6 playanimation TARGET, 16, 0x0 printstring BATTLE_TEXT_StoleSomething waitmessage 64 @@ -4103,7 +4103,7 @@ gUnknown_081D97FE:: @ 81D97FE callatk BattleScript_1D9761 end3 -gUnknown_081D9812:: @ 81D9812 +BattleScript_TookAttack:: @ 81D9812 attackstring pause 32 printstring BATTLE_TEXT_TookAttack2 @@ -4115,13 +4115,13 @@ gUnknown_081D9826:: @ 81D9826 pause 32 printstring BATTLE_TEXT_ProtectedBy pause 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn gUnknown_081D9834:: @ 81D9834 pause 32 printstring BATTLE_TEXT_PreventedBy pause 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn gUnknown_081D9842:: @ 81D9842 ppreduce @@ -4135,7 +4135,7 @@ gUnknown_081D9843:: @ 81D9843 printstring BATTLE_TEXT_HPRestoredUsing waitmessage 64 orbyte 0x2024c68, 8 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn gUnknown_081D9865:: @ 81D9865 ppreduce @@ -4146,7 +4146,7 @@ gUnknown_081D9866:: @ 81D9866 printstring BATTLE_TEXT_MadeUseless waitmessage 64 orbyte 0x2024c68, 8 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn gUnknown_081D987B:: @ 81D987B ppreduce @@ -4156,13 +4156,13 @@ gUnknown_081D987C:: @ 81D987C pause 32 printfromtable BattleTextList_401648 waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn BattleScript_1D988D: @ 81D988D pause 32 printstring BATTLE_TEXT_AnchorsItself waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn gUnknown_081D989B:: @ 81D989B pause 32 @@ -4170,19 +4170,19 @@ gUnknown_081D989B:: @ 81D989B waitmessage 64 return -BattleScript_1D98A5:: @ 81D98A5 +BattleScript_BRNPrevention:: @ 81D98A5 pause 32 printfromtable BattleTextList_401630 waitmessage 64 return -BattleScript_1D98B1:: @ 81D98B1 +BattleScript_PRLZPrevention:: @ 81D98B1 pause 32 printfromtable BattleTextList_401636 waitmessage 64 return -BattleScript_1D98BD:: @ 81D98BD +BattleScript_PSNPrevention:: @ 81D98BD pause 32 printfromtable BattleTextList_40163C waitmessage 64 @@ -4192,19 +4192,19 @@ gUnknown_081D98C9:: @ 81D98C9 pause 32 printstring BATTLE_TEXT_PreventedRomance waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn -gUnknown_081D98D7:: @ 81D98D7 +BattleScript_FlinchPrevention:: @ 81D98D7 pause 32 printstring BATTLE_TEXT_PreventedFlinching waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn BattleScript_1D98E5: @ 81D98E5 pause 32 printstring BATTLE_TEXT_PreventedConfusion waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn gUnknown_081D98F3:: @ 81D98F3 attackstring @@ -4212,7 +4212,7 @@ gUnknown_081D98F3:: @ 81D98F3 pause 32 printstring BATTLE_TEXT_BlocksOther waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn gUnknown_081D9903:: @ 81D9903 pause 32 @@ -4221,11 +4221,11 @@ gUnknown_081D9903:: @ 81D9903 setbyte 0x2024d23, 3 return -gUnknown_081D9913:: @ 81D9913 +BattleScript_NoItemSteal:: @ 81D9913 pause 32 printstring BATTLE_TEXT_MadeIneffective waitmessage 64 - jump BattleScript_1D6F62 + jump BattleScript_EndTurn gUnknown_081D9921:: @ 81D9921 printstring BATTLE_TEXT_MadeType @@ -4296,7 +4296,7 @@ gUnknown_081D99A0:: @ 81D99A0 waitmessage 64 jump BattleScript_1D95AC -gUnknown_081D99AB:: @ 81D99AB +BattleScript_SubstituteFade:: @ 81D99AB playanimation TARGET, 2, 0x0 printstring BATTLE_TEXT_SubFaded return @@ -4429,7 +4429,7 @@ gUnknown_081D9AC2:: @ 81D9AC2 printstring2 BATTLE_TEXT_ChoiceBand atk44 -gUnknown_081D9AC6:: @ 81D9AC6 +BattleScript_HangedOnMsg:: @ 81D9AC6 playanimation TARGET, 9, 0x0 printstring BATTLE_TEXT_FocusSash waitmessage 64 @@ -4455,7 +4455,7 @@ gUnknown_081D9AFE:: @ 81D9AFE BattleScript_1D9B0B: @ 81D9B0B setbyte 0x2024d23, 4 - callatk gUnknown_081D71E5 + callatk BattleScript_StatUp removeitem USER end2 diff --git a/data/battle_scripts_2.s b/data/battle_scripts_2.s index 0ed54d11e..3f0dc8af1 100644 --- a/data/battle_scripts_2.s +++ b/data/battle_scripts_2.s @@ -52,7 +52,7 @@ BattleScript_1D9EBC: @ 81D9EBC pokemoncatchfunction gUnknown_081D9EC2:: @ 81D9EC2 - jumpifhalfword 0, gUnknown_02024C04, 5, BattleScript_1D9ED0 + jumpifhalfword 0, gLastUsedItem, 5, BattleScript_1D9ED0 atk60 11 BattleScript_1D9ED0: @ 81D9ED0 @@ -60,25 +60,25 @@ BattleScript_1D9ED0: @ 81D9ED0 capturesomethingf1 BattleScript_1D9EE3 printstring BATTLE_TEXT_AddedToDex waitstateatk - setbyte gUnknown_02024D1E, 0 + setbyte gBattleCommunication, 0 capturesomethingf2 BattleScript_1D9EE3: @ 81D9EE3 printstring BATTLE_TEXT_GiveNickname waitstateatk - setbyte gUnknown_02024D1E, 0 + setbyte gBattleCommunication, 0 capturesomethingf3 BattleScript_1D9EF8 printstring BATTLE_TEXT_SentToPC waitmessage 64 BattleScript_1D9EF8: @ 81D9EF8 catchpoke - setbyte gUnknown_02024D26, 7 + setbyte gBattleOutcome, 7 activesidesomething gUnknown_081D9F00:: @ 81D9F00 printstring BATTLE_TEXT_BallCaught2 - setbyte gUnknown_02024D26, 7 + setbyte gBattleOutcome, 7 activesidesomething gUnknown_081D9F0A:: @ 81D9F0A @@ -88,7 +88,7 @@ gUnknown_081D9F0A:: @ 81D9F0A jumpifbyte 1, gNumSafariBalls, 0, BattleScript_1D9F34 printstring BATTLE_TEXT_SafariOver waitmessage 64 - setbyte gUnknown_02024D26, 8 + setbyte gBattleOutcome, 8 BattleScript_1D9F34: @ 81D9F34 atkf6 @@ -112,7 +112,7 @@ BattleScript_1D9F4F: @ 81D9F4F printstring BATTLE_TEXT_Used2 waitmessage 64 atk75 - orword gUnknown_02024C6C, 0x100 + orword gHitMarker, 0x100 graphicalhpupdate USER datahpupdate USER printstring BATTLE_TEXT_RestoredHealth @@ -161,7 +161,7 @@ BattleScript_1D9FBB: @ 81D9FBB BattleScript_1D9FDA: @ 81D9FDA atk54 17 - setbyte gUnknown_02024D26, 4 + setbyte gBattleOutcome, 4 activesidesomething BattleScript_1D9FE4: @ 81D9FE4 diff --git a/data/data2.s b/data/data2.s index b8b6dc7db..00ef5c26e 100644 --- a/data/data2.s +++ b/data/data2.s @@ -1029,79 +1029,79 @@ gUnknown_081FA724:: @ 81FA724 .2byte 0xFFFF .align 2 -gUnknown_081FA73C:: @ 81FA73C +gBattleScriptingCommandsTable:: @ 81FA73C .4byte atk00_attackcanceler .4byte atk01_accuracycheck .4byte atk02_attackstring .4byte atk03_ppreduce .4byte atk04_critcalc .4byte atk05_damagecalc1 - .4byte atk06_damagecalc2 - .4byte atk07_damagecalc3 - .4byte atk08_cmd8 - .4byte sub_801D8EC - .4byte sub_801DA60 - .4byte sub_801DA80 + .4byte atk06_typecalc + .4byte atk07_dmg_adjustment + .4byte atk08_dmg_adjustment2 + .4byte atk09_attackanimation + .4byte atk0A_waitanimation + .4byte atk0B_healthbarupdate .4byte atk0C_datahpupdate .4byte atk0D_critmessage - .4byte atk0E_missmessage + .4byte atk0E_effectiveness_sound .4byte atk0F_resultmessage .4byte atk10_printstring - .4byte atk11_printstring2 + .4byte atk11_printstring_playeronly .4byte atk12_waitmessage .4byte atk13_printfromtable - .4byte atk14_printfromtable2 + .4byte atk14_printfromtable_playeronly .4byte atk15_seteffectwithchancetarget - .4byte sub_801F708 - .4byte sub_801F718 - .4byte sub_801F728 - .4byte sub_801F7AC - .4byte sub_801FB34 - .4byte atkE2_cmde2 + .4byte atk16_seteffectprimary + .4byte atk17_seteffectsecondary + .4byte atk18_status_effect_clear + .4byte atk19_faint_pokemon + .4byte atk1A_faint_animation + .4byte atk1B_faint_effects_clear .4byte atk1C_jumpifstatus - .4byte atk1D_jumpifsecondarystatus + .4byte atk1D_jumpifstatus2 .4byte atk1E_jumpifability - .4byte sub_801FDB4 - .4byte sub_801FE2C - .4byte atk21_jumpifspecialstatusflag - .4byte sub_801FFA8 - .4byte sub_8020004 - .4byte sub_80209B4 - .4byte atk25_resetflags - .4byte sub_8020BB4 - .4byte atk27_cmd27 - .4byte sub_8020C14 + .4byte atk1F_jumpifsideaffecting + .4byte atk20_jumpifstat + .4byte atk21_jumpifstatus3 + .4byte atk22_jumpiftype + .4byte atk23_getexp + .4byte atk24 + .4byte atk25_move_values_cleanup + .4byte atk26_set_multihit + .4byte atk27_decrement_multihit + .4byte atk28_goto .4byte atk29_jumpifbyte - .4byte sub_8020CD4 - .4byte sub_8020D7C - .4byte sub_8020E30 - .4byte sub_8020EB8 - .4byte sub_8020F3C - .4byte sub_8020F64 - .4byte sub_8020F90 + .4byte atk2A_jumpifhalfword + .4byte atk2B_jumpifword + .4byte atk2C_jumpifarrayequal + .4byte atk2D_jumpifarraynotequal + .4byte atk2E_setbyte + .4byte atk2F_addbyte + .4byte atk30_subbyte .4byte atk31_copyarray - .4byte atk32_memcpy_with_offset - .4byte sub_802107C + .4byte atk32_copyarray_withindex + .4byte atk33_orbyte .4byte atk34_orhalfword .4byte atk35_orword - .4byte sub_8021124 + .4byte atk36_bicbyte .4byte atk37_bichalfword .4byte atk38_bicword .4byte atk39_pause - .4byte sub_802120C - .4byte atk3B_8022C68 + .4byte atk3A_waitstate + .4byte atk3B_healthbar_update .4byte atk3C_return - .4byte sub_8021290 - .4byte sub_80212B0 + .4byte atk3D_end + .4byte atk3E_end2 .4byte atk3F_end3 - .4byte atk40_801DBA0 + .4byte atk40_jump_if_move_affected_by_protect .4byte atk41_call .4byte atk42_jumpiftype2 - .4byte sub_8021384 - .4byte sub_80213D0 - .4byte atk46_cmd46 - .4byte sub_80214B4 - .4byte atk47 + .4byte atk43_jumpifabilitypresent + .4byte atk44 + .4byte atk45_playanimation + .4byte atk46_playanimation2 + .4byte atk47_setgraphicalstatchangevalues_setgraphicalstatchangevalues_setgraphicalstatchangevalues .4byte atk48_playstatchangeanimation .4byte sub_80217F8 .4byte atk4A_damageflags @@ -1305,7 +1305,7 @@ gCriticalHitChance:: @ 81FAB50 .2byte 2 @ +4 .align 2 -gUnknown_081FAB5C:: @ 81FAB5C +gStatusFlagsForMoveEffects:: @ 81FAB5C .4byte 0x00000000 .4byte 0x00000007 .4byte 0x00000008 @@ -1368,7 +1368,7 @@ gUnknown_081FAB5C:: @ 81FAB5C .4byte 0x00000000 .align 2 -gUnknown_081FAC4C:: @ 81FAC4C +gMoveEffectBS_Ptrs:: @ 81FAC4C .4byte BattleScript_1D963E .4byte BattleScript_1D963E .4byte BattleScript_1D965A @@ -1514,38 +1514,38 @@ gBallCatchBonuses:: @ 81FAD90 .string "ターン$" @ "turn" .align 2 -gUnknown_081FAD98:: @ 81FAD98 - .4byte dp01t_00_1_getattr +gPlayerBufferCommands:: @ 81FAD98 + .4byte PlayerHandleGetAttributes .4byte sub_802ECF0 - .4byte dp01t_02_1_setattr + .4byte PlayerHandleSetAttributes .4byte sub_802F7CC - .4byte sub_802F840 - .4byte sub_802F8A8 - .4byte sub_802FAA0 - .4byte sub_802FBB4 - .4byte sub_802FCE0 - .4byte sub_802FDBC + .4byte PlayerHandleLoadPokeSprite + .4byte PlayerHandleSendOutPoke + .4byte PlayerHandleReturnPokeToBall + .4byte PlayerHandleTrainerThrow + .4byte PlayerHandleTrainerSlide + .4byte PlayerHandleTrainerSlideBack .4byte sub_802FE7C .4byte sub_802FF60 .4byte sub_802FF80 - .4byte sub_802FFD0 - .4byte sub_803002C - .4byte dp01t_0F_1_move_anim - .4byte sub_80302F4 - .4byte dp01t_11_1_message_for_player_only + .4byte PlayerHandleBallThrow + .4byte PlayerHandlePuase + .4byte PlayerHandleMoveAnimation + .4byte PlayerHandlePrintString + .4byte PlayerHandlePrintStringPlayerOnly .4byte sub_803037C .4byte nullsub_42 .4byte sub_8030468 - .4byte sub_8030530 + .4byte PlayerHandleOpenBag .4byte sub_8030594 .4byte sub_8030674 - .4byte sub_8030698 - .4byte sub_8030798 - .4byte sub_8030834 - .4byte sub_80308A8 - .4byte sub_8030910 + .4byte PlayerHandleHealthBarUpdate + .4byte PlayerHandleExpBarUpdate + .4byte PlayerHandleStatusIconUpdate + .4byte PlayerHandleStatusAnimation + .4byte PlayerHandleStatusXor .4byte sub_803097C - .4byte sub_8030988 + .4byte PlayerHandleDMATransfer .4byte sub_8030A3C .4byte sub_8030A6C .4byte sub_8030A78 @@ -1556,20 +1556,20 @@ gUnknown_081FAD98:: @ 81FAD98 .4byte sub_8030AE4 .4byte sub_8030B1C .4byte sub_8030B34 - .4byte dp01t_29_1_blink + .4byte PlayerHandleHitAnimation .4byte sub_8030BCC - .4byte sub_8030BD8 + .4byte PlayerHandleEffectivenessSound .4byte sub_8030C1C - .4byte sub_8030C4C - .4byte dp01t_2E_1_battle_intro - .4byte sub_8030CC0 + .4byte PlayerHandleFaintingCry + .4byte PlayerHandleIntroSlide + .4byte PlayerHandleTrainerBallThrow .4byte sub_8030FAC .4byte sub_80310A4 .4byte sub_80310F0 - .4byte dp01t_33_1_enemy_move - .4byte bx_exec_buffer_A_ch0_tbl1 - .4byte dp01t_35_1_link_standby_message_and_free_vram - .4byte sub_8031238 + .4byte PlayerHandleSpriteInvisibility + .4byte PlayerHandleBattleAnimation + .4byte PlayerHandleLinkStandbyMsg + .4byte PlayerHandleResetActionMoveSelection .4byte sub_80312A0 .4byte nullsub_43 @@ -1670,38 +1670,38 @@ gUnknown_081FAF4C:: @ 81FAF4C .4byte 0x0200e000 .align 2 -gUnknown_081FAF5C:: @ 81FAF5C - .4byte dp01t_00_7_getattr +gOpponentBufferCommands:: @ 81FAF5C + .4byte OpponentHandleGetAttributes .4byte dp01t_01_2_read_pokmon_data_slice - .4byte dp01t_02_7_setattr + .4byte OpponentHandleSetAttributes .4byte sub_8034744 - .4byte sub_80347B8 - .4byte sub_8034910 - .4byte sub_8034AE0 - .4byte sub_8034BFC - .4byte sub_8034DC0 - .4byte sub_8034F84 + .4byte OpponentHandleLoadPokeSprite + .4byte OpponentHandleSendOutPoke + .4byte OpponentHandleReturnPokeToBall + .4byte OpponentHandleTrainerThrow + .4byte OpponentHandleTrainerSlide + .4byte OpponentHandleTrainerSlideBack .4byte sub_8035030 .4byte sub_80350D4 .4byte sub_80350E0 - .4byte sub_80350EC - .4byte sub_80350F8 - .4byte sub_8035104 - .4byte sub_803539C - .4byte sub_8035400 + .4byte OpponentHandleBallThrow + .4byte OpponentHandlePause + .4byte OpponentHandleMoveAnimation + .4byte OpponentHandlePrintString + .4byte OpponentHandlePrintStringPlayerOnly .4byte sub_803540C .4byte sub_803541C .4byte sub_8035428 .4byte sub_8035590 .4byte sub_80355C0 .4byte sub_80356C0 - .4byte sub_80356CC - .4byte sub_80357BC - .4byte sub_80357C8 - .4byte sub_803583C - .4byte sub_80358A4 + .4byte OpponentHandleHealthBarUpdate + .4byte OpponentHandleExpBarUpdate + .4byte OpponentHandleStatusIconUpdate + .4byte OpponentHandleStatusAnimation + .4byte OpponentHandleStatusXor .4byte sub_80358B0 - .4byte sub_80358BC + .4byte OpponentHandleDMATransfer .4byte sub_80358C8 .4byte sub_80358D4 .4byte sub_80358E0 @@ -1712,20 +1712,20 @@ gUnknown_081FAF5C:: @ 81FAF5C .4byte sub_803592C .4byte sub_8035964 .4byte sub_803597C - .4byte dp01t_29_7_blink + .4byte OpponentHandleHitAnimation .4byte sub_8035A14 - .4byte sub_8035A20 + .4byte OpponentHandleEffectivenessSound .4byte sub_8035A64 - .4byte sub_8035A94 + .4byte OpponentHandleFaintingCry .4byte dp01t_2E_7_battle_intro .4byte sub_8035B04 .4byte dp01t_30_7_0803D67C .4byte sub_8035E6C .4byte sub_8035EB8 - .4byte sub_8035EC4 - .4byte dp01t_34_7_move_anim_start_t3 - .4byte sub_8035F8C - .4byte sub_8035F98 + .4byte OpponentHandleSpriteInvisibility + .4byte OpponentHandleBattleAnimation + .4byte OpponentHandleLinkStandbyMsg + .4byte OpponentHandleResetActionMoveSelection .4byte sub_8035FA4 .4byte nullsub_46 @@ -1733,8 +1733,8 @@ gUnknown_081FAF5C:: @ 81FAF5C .byte 0xB0, 0xB0, 0xC8, 0x98, 0x28, 0x28, 0x28, 0x20 .align 2 -gUnknown_081FB048:: @ 81FB048 - .4byte dp01t_00_4_getattr +gLinkOpponentBufferCommands:: @ 81FB048 + .4byte LinkOpponentHandleGetAttributes .4byte sub_803889C .4byte sub_80388A8 .4byte sub_8039220 diff --git a/data/decoration.s b/data/decoration.s deleted file mode 100644 index d37e41823..000000000 --- a/data/decoration.s +++ /dev/null @@ -1,265 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - -@ 83E9FD0 - .include "data/decorations.inc" - - .align 2 -gUnknown_083EC5E4:: @ 83EC5E4 - .4byte SecretBaseText_Desk - .4byte SecretBaseText_Chair - .4byte SecretBaseText_Plant - .4byte SecretBaseText_Ornament - .4byte SecretBaseText_Mat - .4byte SecretBaseText_Poster - .4byte SecretBaseText_Doll - .4byte SecretBaseText_Cushion - - .align 2 -gUnknown_083EC604:: @ 83EC604 - .4byte SecretBaseText_Decorate, sub_80FF160 - .4byte SecretBaseText_PutAway, sub_8100A0C - .4byte SecretBaseText_Toss, sub_8101700 - .4byte gUnknownText_Exit, gpu_pal_decompress_alloc_tag_and_upload - - .align 2 -gUnknown_083EC624:: @ 83EC624 - .4byte SecretBaseText_PutOutDecor - .4byte SecretBaseText_StoreChosenDecor - .4byte SecretBaseText_ThrowAwayDecor - .4byte gMenuText_GoBackToPrev - - .align 2 -gUnknown_083EC634:: @ 83EC634 - .4byte sub_80FF5BC - .4byte sub_80FF058 - .4byte sub_81017A0 - .4byte sub_80FF058 - .4byte sub_81017A0 - .4byte sub_80FF058 - .4byte sub_8109D04 - .4byte sub_80FF058 - - .align 2 -gUnknown_083EC654:: @ 83EC654 - .2byte 0x6318, 0x739C, 0x7FFF - -gUnknown_083EC65A:: @ 83EC65A - .string "{PALETTE 13}{STR_VAR_1}$" - -Unknown_3EC660: @ 83EC660 - .byte 0, 1, 2, 3 - -Unknown_3EC664: @ 83EC664 - .byte 0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13 - -Unknown_3EC670: @ 83EC670 - .byte 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 - -Unknown_3EC680: @ 83EC680 - .byte 0, 1, 4, 5, 8, 9, 12, 13, 16, 17, 20, 21 - -Unknown_3EC68C: @ 83EC68C - .byte 0, 1, 2, 3, 4, 5, 6, 7 - -Unknown_3EC694: @ 83EC694 - .byte 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 - -Unknown_3EC6B4: @ 83EC6B4 - .byte 0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 16, 17, 18, 19, 20, 21, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 40, 41, 42, 43, 44, 45 - -Unknown_3EC6D8: @ 83EC6D8 - .byte 0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 16, 17, 18, 19, 20, 21, 24, 25, 26, 27, 28, 29 - -Unknown_3EC6F0: @ 83EC6F0 - .byte 0, 0, 0, 0 - -Unknown_3EC6F4: @ 83EC6F4 - .byte 0, 0, 1, 1, 0, 0, 1, 1 - -Unknown_3EC6FC: @ 83EC6FC - .byte 0, 0, 1, 1, 2, 2, 0, 0, 1, 1, 2, 2 - -Unknown_3EC708: @ 83EC708 - .byte 0, 0, 1, 1, 2, 2, 3, 3, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 4, 4, 5, 5, 6, 6, 7, 7 - -Unknown_3EC728: @ 83EC728 - .byte 0, 0, 1, 1, 0, 0, 1, 1, 2, 2, 3, 3, 2, 2, 3, 3 - -Unknown_3EC738: @ 83EC738 - .byte 0, 0, 0, 0, 1, 1, 1, 1 - -Unknown_3EC740: @ 83EC740 - .byte 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2 - -Unknown_3EC74C: @ 83EC74C - .byte 0, 0, 1, 1, 0, 0, 1, 1, 2, 2, 3, 3, 2, 2, 3, 3, 4, 4, 5, 5, 4, 4, 5, 5, 6, 6, 7, 7, 6, 6, 7, 7 - -Unknown_3EC76C: @ 83EC76C - .byte 0, 0, 1, 1, 2, 2, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 6, 6, 7, 7, 8, 8 - -Unknown_3EC790: @ 83EC790 - .byte 0, 0, 1, 1, 2, 2, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 3, 3, 4, 4, 5, 5 - -Unknown_3EC7A8: @ 83EC7A8 - .byte 4, 5, 6, 7 - -Unknown_3EC7AC: @ 83EC7AC - .byte 4, 5, 4, 5, 6, 7, 6, 7 - -Unknown_3EC7B4: @ 83EC7B4 - .byte 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7 - -Unknown_3EC7C0: @ 83EC7C0 - .byte 4, 5, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 6, 7, 4, 5, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 6, 7 - -Unknown_3EC7E0: @ 83EC7E0 - .byte 4, 5, 4, 5, 6, 7, 6, 7, 4, 5, 4, 5, 6, 7, 6, 7 - -Unknown_3EC7F0: @ 83EC7F0 - .byte 4, 5, 6, 7, 4, 5, 6, 7 - -Unknown_3EC7F8: @ 83EC7F8 - .byte 4, 5, 6, 7, 4, 5, 6, 7, 4, 5, 6, 7 - -Unknown_3EC804: @ 83EC804 - .byte 4, 5, 4, 5, 6, 7, 6, 7, 4, 5, 4, 5, 6, 7, 6, 7, 4, 5, 4, 5, 6, 7, 6, 7, 4, 5, 4, 5, 6, 7, 6, 7 - -Unknown_3EC824: @ 83EC824 - .byte 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7 - -Unknown_3EC848: @ 83EC848 - .byte 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7 - - .align 2 -gUnknown_083EC860:: @ 83EC860 - .4byte Unknown_3EC660, Unknown_3EC6F0, Unknown_3EC7A8, 0x4 - .4byte Unknown_3EC68C, Unknown_3EC6F4, Unknown_3EC7AC, 0x8 - .4byte Unknown_3EC664, Unknown_3EC6FC, Unknown_3EC7B4, 0xc - .4byte Unknown_3EC694, Unknown_3EC708, Unknown_3EC7C0, 0x20 - .4byte Unknown_3EC670, Unknown_3EC728, Unknown_3EC7E0, 0x10 - .4byte Unknown_3EC68C, Unknown_3EC738, Unknown_3EC7F0, 0x8 - .4byte Unknown_3EC680, Unknown_3EC740, Unknown_3EC7F8, 0xc - .4byte Unknown_3EC694, Unknown_3EC74C, Unknown_3EC804, 0x20 - .4byte Unknown_3EC6B4, Unknown_3EC76C, Unknown_3EC824, 0x24 - .4byte Unknown_3EC6D8, Unknown_3EC790, Unknown_3EC848, 0x18 - -gUnknown_083EC900:: @ 83EC900 - .byte 0, 1, 120, 78 - .byte 1, 2, -128, 78 - .byte 1, 3, -112, 86 - .byte 1, 3, -112, 70 - .byte 0, 2, -128, 70 - .byte 2, 2, 120, 70 - .byte 2, 3, -128, 86 - .byte 2, 3, -128, 54 - .byte 0, 3, -112, 70 - .byte 1, 3, -112, 70 - - .align 2 -gSpriteAnim_83EC928:: @ 83EC928 - obj_image_anim_frame 0, 0 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83EC930:: @ 83EC930 - .4byte gSpriteAnim_83EC928 - - .align 2 -gSpriteImageTable_83EC934: @ 83EC934 - obj_frame_tiles gUnknown_02038900+0x84, 0x800 - - .align 2 -gSpriteTemplate_83EC93C:: @ 83EC93C - spr_template 0xFFFF, 3000, 0x20391AC, gSpriteAnimTable_83EC930, gSpriteImageTable_83EC934, gDummySpriteAffineAnimTable, sub_81009A8 - - .align 2 -gUnknown_083EC954:: @ 83EC954 - obj_pal gUnknown_02038900+0x884, 3000 - - .align 2 -gUnknown_083EC95C:: @ 83EC95C - .4byte sub_81000C4 - .4byte sub_810065C - - .align 2 -gUnknown_083EC964:: @ 83EC964 - .4byte sub_810026C - .4byte sub_810065C - - .align 2 -gUnknown_083EC96C:: @ 83EC96C - .4byte sub_80FFAB0 - .4byte sub_80FFB08 - .4byte sub_8100F88 - .4byte sub_8100FB4 - -gUnknown_083EC97C:: @ 83EC97C - .byte 4, 4, 4, 4, 0, 3, 3, 0 - -gUnknown_083EC984:: @ 83EC984 - .byte 4, 4, 4, 4, 0, 4, 3, 0 - - .align 2 -gUnknown_083EC98C:: - .incbin "graphics/unknown/83EC98C.gbapal" - - .align 2 -Unknown_3EC9AC: @ 83EC9AC - .incbin "graphics/unknown/83EC9AC.gbapal" - - .align 2 -gUnknown_083EC9CC:: @ 83EC9CC - .4byte sub_810153C - .4byte sub_8100EEC - - .align 2 -gUnknown_083EC9D4:: @ 83EC9D4 - .4byte sub_8101590 - .4byte sub_8100EEC - - .align 2 -gSpriteImage_83EC9DC:: @ 83EC9DC - .incbin "graphics/unknown_sprites/83EC9DC.4bpp" - - .align 2 -gUnknown_083ECA5C:: @ 83ECA5C - obj_pal gUnknown_083EC98C, 0x0008 - - .align 2 -gUnknown_083ECA64:: @ 83ECA64 - obj_pal Unknown_3EC9AC, 0x0008 - - .align 2 -gOamData_83ECA6C:: @ 83ECA6C - .2byte 0x0000 - .2byte 0x4000 - .2byte 0x0400 - - .align 2 -gSpriteAnim_83ECA74:: @ 83ECA74 - obj_image_anim_frame 0, 0 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83ECA7C:: @ 83ECA7C - .4byte gSpriteAnim_83ECA74 - - .align 2 -gSpriteImageTable_83ECA80:: @ 83ECA80 - obj_frame_tiles gSpriteImage_83EC9DC, 0x80 - - .align 2 -gSpriteTemplate_83ECA88:: @ 83ECA88 - spr_template 0xFFFF, 8, gOamData_83ECA6C, gSpriteAnimTable_83ECA7C, gSpriteImageTable_83ECA80, gDummySpriteAffineAnimTable, sub_8101698 - - .align 2 -gUnknown_083ECAA0:: @ 83ECAA0 - .4byte sub_8101848 - .4byte sub_80FED3C - -@ XXX: what is this? - .align 2 - .4byte 0x2000000 diff --git a/data/decoration_inventory.s b/data/decoration_inventory.s deleted file mode 100644 index a70dedbe5..000000000 --- a/data/decoration_inventory.s +++ /dev/null @@ -1,16 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - -@ pointer to decorations, capacity - .align 2 -gDecorationInventories:: @ 8402E40 - .4byte gSaveBlock1 + 0x26A0, 10 @ DESK - .4byte gSaveBlock1 + 0x26AA, 10 @ CHAIR - .4byte gSaveBlock1 + 0x26B4, 10 @ PLANT - .4byte gSaveBlock1 + 0x26BE, 30 @ ORNAMENT - .4byte gSaveBlock1 + 0x26DC, 30 @ MAT - .4byte gSaveBlock1 + 0x26FA, 10 @ POSTER - .4byte gSaveBlock1 + 0x2704, 40 @ DOLL - .4byte gSaveBlock1 + 0x272C, 10 @ CUSHION diff --git a/data/decorations.inc b/data/decorations.inc deleted file mode 100644 index 268ebee9a..000000000 --- a/data/decorations.inc +++ /dev/null @@ -1,2432 +0,0 @@ -DecorDesc_SMALL_DESK: @ 83E9FD0 - .string "A small desk built\n" - .string "for one.$" - -DecorDesc_POKEMON_DESK: @ 83E9FEC - .string "A small desk built in\n" - .string "the shape of a POKé\n" - .string "BALL.$" - -DecorDesc_HEAVY_DESK: @ 83EA01C - .string "A large desk made\n" - .string "of steel. Put some\n" - .string "decorations on it.$" - -DecorDesc_RAGGED_DESK: @ 83EA054 - .string "A large desk made\n" - .string "of wood. Put some\n" - .string "decorations on it.$" - -DecorDesc_COMFORT_DESK: @ 83EA08B - .string "A large desk made\n" - .string "of leaves. Put some\n" - .string "decorations on it.$" - -DecorDesc_PRETTY_DESK: @ 83EA0C4 - .string "A huge desk made\n" - .string "of glass. Holds lots\n" - .string "of decorations.$" - -DecorDesc_BRICK_DESK: @ 83EA0FA - .string "A huge desk made\n" - .string "of brick. Holds lots\n" - .string "of decorations.$" - -DecorDesc_CAMP_DESK: @ 83EA130 - .string "A huge desk made\n" - .string "of logs. Put lots of\n" - .string "decorations on it.$" - -DecorDesc_HARD_DESK: @ 83EA169 - .string "A huge desk made\n" - .string "of rocks. Holds\n" - .string "many decorations.$" - -DecorDesc_SMALL_CHAIR: @ 83EA19C - .string "A small chair made\n" - .string "for one.$" - -DecorDesc_POKEMON_CHAIR: @ 83EA1B8 - .string "A small chair built\n" - .string "in the shape of a\n" - .string "POKé BALL.$" - -DecorDesc_HEAVY_CHAIR: @ 83EA1E9 - .string "A small chair made\n" - .string "of steel.$" - -DecorDesc_PRETTY_CHAIR: @ 83EA206 - .string "A small chair made\n" - .string "of glass.$" - -DecorDesc_COMFORT_CHAIR: @ 83EA223 - .string "A small chair made\n" - .string "of leaves.$" - -DecorDesc_RAGGED_CHAIR: @ 83EA241 - .string "A small chair made\n" - .string "of wood.$" - -DecorDesc_BRICK_CHAIR: @ 83EA25D - .string "A small chair made\n" - .string "of brick.$" - -DecorDesc_CAMP_CHAIR: @ 83EA27A - .string "A small chair made\n" - .string "of logs.$" - -DecorDesc_HARD_CHAIR: @ 83EA296 - .string "A small chair made\n" - .string "of rock.$" - -DecorDesc_RED_PLANT: @ 83EA2B2 - .string "A vivid red potted\n" - .string "plant.$" - -DecorDesc_TROPICAL_PLANT: @ 83EA2CC - .string "A flowering tropical\n" - .string "plant in a pot.$" - -DecorDesc_PRETTY_FLOWERS: @ 83EA2F1 - .string "A pot of cute\n" - .string "flowers.$" - -DecorDesc_COLORFUL_PLANT: @ 83EA308 - .string "A large pot with\n" - .string "many colorful\n" - .string "flowers.$" - -DecorDesc_BIG_PLANT: @ 83EA330 - .string "A large, umbrella-\n" - .string "shaped plant in a\n" - .string "big pot.$" - -DecorDesc_GORGEOUS_PLANT: @ 83EA35E - .string "A large, impressive\n" - .string "plant in a big pot.$" - -DecorDesc_RED_BRICK: @ 83EA386 - .string "A red-colored brick.\n" - .string "Decorations can be\n" - .string "placed on top.$" - -DecorDesc_YELLOW_BRICK: @ 83EA3BD - .string "A yellow-colored\n" - .string "brick. Put some\n" - .string "decorations on top.$" - -DecorDesc_BLUE_BRICK: @ 83EA3F2 - .string "A blue-colored\n" - .string "brick. Put some\n" - .string "decorations on top.$" - -DecorDesc_RED_BALLOON: @ 83EA425 - .string "A red balloon filled\n" - .string "with water. Bursts\n" - .string "if stepped on.$" - -DecorDesc_BLUE_BALLOON: @ 83EA45C - .string "A blue balloon filled\n" - .string "with water. Bursts\n" - .string "if stepped on.$" - -DecorDesc_YELLOW_BALLOON: @ 83EA494 - .string "A yellow balloon\n" - .string "filled with water.\n" - .string "Pops if stepped on.$" - -DecorDesc_RED_TENT: @ 83EA4CC - .string "A large red tent.\n" - .string "You can hide inside\n" - .string "it.$" - -DecorDesc_BLUE_TENT: @ 83EA4F6 - .string "A large blue tent.\n" - .string "You can hide inside\n" - .string "it.$" - -DecorDesc_SOLID_BOARD: @ 83EA521 - .string "Place over a hole to\n" - .string "cross to the other\n" - .string "side.$" - -DecorDesc_SLIDE: @ 83EA54F - .string "Use to slide down\n" - .string "from the platform.$" - -DecorDesc_FENCE_LENGTH: @ 83EA574 - .string "A small fence that\n" - .string "blocks passage.$" - -DecorDesc_FENCE_WIDTH: @ 83EA597 - .string "A small fence that\n" - .string "blocks passage.$" - -DecorDesc_TIRE: @ 83EA5BA - .string "An old large tire.\n" - .string "Decorations can be\n" - .string "placed on top.$" - -DecorDesc_STAND: @ 83EA5EF - .string "A large pedestal\n" - .string "with steps.$" - -DecorDesc_MUD_BALL: @ 83EA60C - .string "A large ball of mud.\n" - .string "Crumbles if stepped\n" - .string "on.$" - -DecorDesc_BREAKABLE_DOOR: @ 83EA639 - .string "A weird door that\n" - .string "people can walk\n" - .string "right through.$" - -DecorDesc_SAND_ORNAMENT: @ 83EA66A - .string "An ornament made\n" - .string "of sand. Crumbles if\n" - .string "touched.$" - -DecorDesc_SILVER_SHIELD: @ 83EA699 - .string "Awarded for 50\n" - .string "straight wins at\n" - .string "the BATTLE TOWER.$" - -DecorDesc_GOLD_SHIELD: @ 83EA6CB - .string "Awarded for 100\n" - .string "straight wins at\n" - .string "the BATTLE TOWER.$" - -DecorDesc_GLASS_ORNAMENT: @ 83EA6FE - .string "A glass replica of\n" - .string "a famous sculpture\n" - .string "at the ART MUSEUM.$" - -DecorDesc_TV: @ 83EA737 - .string "A small, gray-\n" - .string "colored toy TV.$" - -DecorDesc_ROUND_TV: @ 83EA756 - .string "A toy TV modeled\n" - .string "in the image of a\n" - .string "SEEDOT.$" - -DecorDesc_CUTE_TV: @ 83EA781 - .string "A toy TV modeled\n" - .string "in the image of a\n" - .string "SKITTY.$" - -DecorDesc_GLITTER_MAT: @ 83EA7AC - .string "An odd mat that\n" - .string "glitters if stepped\n" - .string "on.$" - -DecorDesc_JUMP_MAT: @ 83EA7D4 - .string "A trick mat that\n" - .string "jumps when it is\n" - .string "stepped on.$" - -DecorDesc_SPIN_MAT: @ 83EA802 - .string "A trick mat that\n" - .string "spins around when\n" - .string "stepped on.$" - -DecorDesc_C_LOW_NOTE_MAT: @ 83EA831 - .string "A mat that plays\n" - .string "a low C note when\n" - .string "stepped on.$" - -DecorDesc_D_NOTE_MAT: @ 83EA860 - .string "A mat that plays\n" - .string "a D note when\n" - .string "stepped on.$" - -DecorDesc_E_NOTE_MAT: @ 83EA88B - .string "A mat that plays\n" - .string "an E note when\n" - .string "stepped on.$" - -DecorDesc_F_NOTE_MAT: @ 83EA8B7 - .string "A mat that plays\n" - .string "an F note when\n" - .string "stepped on.$" - -DecorDesc_G_NOTE_MAT: @ 83EA8E3 - .string "A mat that plays\n" - .string "a G note when\n" - .string "stepped on.$" - -DecorDesc_A_NOTE_MAT: @ 83EA90E - .string "A mat that plays\n" - .string "an A note when\n" - .string "stepped on.$" - -DecorDesc_B_NOTE_MAT: @ 83EA93A - .string "A mat that plays\n" - .string "a B note when\n" - .string "stepped on.$" - -DecorDesc_C_HIGH_NOTE_MAT: @ 83EA965 - .string "A mat that plays\n" - .string "a high C note when\n" - .string "stepped on.$" - -DecorDesc_SURF_MAT: @ 83EA995 - .string "A mat designed with\n" - .string "a SURF image.\n" - .string "Put items on top.$" - -DecorDesc_THUNDER_MAT: @ 83EA9C9 - .string "A mat designed with\n" - .string "a THUNDER image.\n" - .string "Put items on top.$" - -DecorDesc_FIRE_BLAST_MAT: @ 83EAA00 - .string "A mat designed with\n" - .string "a FIRE BLAST image.\n" - .string "Put items on top.$" - -DecorDesc_POWDER_SNOW_MAT: @ 83EAA3A - .string "A mat with a POWDER\n" - .string "SNOW image design.\n" - .string "Put items on top.$" - -DecorDesc_ATTRACT_MAT: @ 83EAA73 - .string "A mat designed with\n" - .string "an ATTRACT image.\n" - .string "Put items on top.$" - -DecorDesc_FISSURE_MAT: @ 83EAAAB - .string "A mat designed with\n" - .string "a FISSURE image.\n" - .string "Put items on top.$" - -DecorDesc_SPIKES_MAT: @ 83EAAE2 - .string "A mat designed with\n" - .string "a SPIKES image.\n" - .string "Put items on top.$" - -DecorDesc_BALL_POSTER: @ 83EAB18 - .string "A small poster\n" - .string "printed with POKé\n" - .string "BALLS.$" - -DecorDesc_GREEN_POSTER: @ 83EAB40 - .string "A small poster with\n" - .string "a TREECKO print.$" - -DecorDesc_RED_POSTER: @ 83EAB65 - .string "A small poster with\n" - .string "a TORCHIC print.$" - -DecorDesc_BLUE_POSTER: @ 83EAB8A - .string "A small poster with\n" - .string "a MUDKIP print.$" - -DecorDesc_CUTE_POSTER: @ 83EABAE - .string "A small poster with\n" - .string "an AZURILL print.$" - -DecorDesc_PIKA_POSTER: @ 83EABD4 - .string "A large poster with\n" - .string "a PIKACHU and\n" - .string "PICHU print.$" - -DecorDesc_LONG_POSTER: @ 83EAC03 - .string "A large poster with\n" - .string "a SEVIPER print.$" - -DecorDesc_SEA_POSTER: @ 83EAC28 - .string "A large poster with\n" - .string "a RELICANTH print.$" - -DecorDesc_SKY_POSTER: @ 83EAC4F - .string "A large poster with\n" - .string "a WINGULL print.$" - -DecorDesc_KISS_POSTER: @ 83EAC74 - .string "A large poster with\n" - .string "a SMOOCHUM print.$" - -DecorDesc_PICHU_DOLL: @ 83EAC9A - .string "A PICHU doll.\n" - .string "Place it on a mat\n" - .string "or a desk.$" - -DecorDesc_PIKACHU_DOLL: @ 83EACC5 - .string "A PIKACHU doll.\n" - .string "Place it on a mat\n" - .string "or a desk.$" - -DecorDesc_MARILL_DOLL: @ 83EACF2 - .string "A MARILL doll.\n" - .string "Place it on a mat\n" - .string "or a desk.$" - -DecorDesc_TOGEPI_DOLL: @ 83EAD1E - .if REVISION >= 1 - .string "A TOGEPI doll.\n" - .else - .string "A TOPGEPI doll.\n" - .endif - .string "Place it on a mat\n" - .string "or a desk.$" - -DecorDesc_CYNDAQUIL_DOLL: @ 83EAD4B - .string "A CYNDAQUIL doll.\n" - .string "Place it on a mat\n" - .string "or a desk.$" - -DecorDesc_CHIKORITA_DOLL: @ 83EAD7A - .string "A CHIKORITA doll.\n" - .string "Place it on a mat\n" - .string "or a desk.$" - -DecorDesc_TOTODILE_DOLL: @ 83EADA9 - .string "A TOTODILE doll.\n" - .string "Place it on a mat\n" - .string "or a desk.$" - -DecorDesc_JIGGLYPUFF_DOLL: @ 83EADD7 - .string "A JIGGLYPUFF doll.\n" - .string "Place it on a mat\n" - .string "or a desk.$" - -DecorDesc_MEOWTH_DOLL: @ 83EAE07 - .string "A MEOWTH doll.\n" - .string "Place it on a mat\n" - .string "or a desk.$" - -DecorDesc_CLEFAIRY_DOLL: @ 83EAE33 - .string "A CLEFAIRY doll.\n" - .string "Place it on a mat\n" - .string "or a desk.$" - -DecorDesc_DITTO_DOLL: @ 83EAE61 - .string "A DITTO doll.\n" - .string "Place it on a mat\n" - .string "or a desk.$" - -DecorDesc_SMOOCHUM_DOLL: @ 83EAE8C - .string "A SMOOCHUM doll.\n" - .string "Place it on a mat\n" - .string "or a desk.$" - -DecorDesc_TREECKO_DOLL: @ 83EAEBA - .string "A TREECKO doll.\n" - .string "Place it on a mat\n" - .string "or a desk.$" - -DecorDesc_TORCHIC_DOLL: @ 83EAEE7 - .string "A TORCHIC doll.\n" - .string "Place it on a mat\n" - .string "or a desk.$" - -DecorDesc_MUDKIP_DOLL: @ 83EAF14 - .string "A MUDKIP doll.\n" - .string "Place it on a mat\n" - .string "or a desk.$" - -DecorDesc_DUSKULL_DOLL: @ 83EAF40 - .string "A DUSKULL doll.\n" - .string "Place it on a mat\n" - .string "or a desk.$" - -DecorDesc_WYNAUT_DOLL: @ 83EAF6D - .string "A WYNAUT doll.\n" - .string "Place it on a mat\n" - .string "or a desk.$" - -DecorDesc_BALTOY_DOLL: @ 83EAF99 - .string "A BALTOY doll.\n" - .string "Place it on a mat\n" - .string "or a desk.$" - -DecorDesc_KECLEON_DOLL: @ 83EAFC5 - .string "A KECLEON doll.\n" - .string "Place it on a mat\n" - .string "or a desk.$" - -DecorDesc_AZURILL_DOLL: @ 83EAFF2 - .string "An AZURILL doll.\n" - .string "Place it on a mat\n" - .string "or a desk.$" - -DecorDesc_SKITTY_DOLL: @ 83EB020 - .string "A SKITTY doll.\n" - .string "Place it on a mat\n" - .string "or a desk.$" - -DecorDesc_SWABLU_DOLL: @ 83EB04C - .string "A SWABLU doll.\n" - .string "Place it on a mat\n" - .string "or a desk.$" - -DecorDesc_GULPIN_DOLL: @ 83EB078 - .string "A GULPIN doll.\n" - .string "Place it on a mat\n" - .string "or a desk.$" - -DecorDesc_LOTAD_DOLL: @ 83EB0A4 - .string "A LOTAD doll.\n" - .string "Place it on a mat\n" - .string "or a desk.$" - -DecorDesc_SEEDOT_DOLL: @ 83EB0CF - .string "A SEEDOT doll.\n" - .string "Place it on a mat\n" - .string "or a desk.$" - -DecorDesc_PIKA_CUSHION: @ 83EB0FB - .string "A PIKACHU cushion.\n" - .string "Place it on a mat\n" - .string "or a desk.$" - -DecorDesc_ROUND_CUSHION: @ 83EB12B - .string "A MARILL cushion.\n" - .string "Place it on a mat\n" - .string "or a desk.$" - -DecorDesc_KISS_CUSHION: @ 83EB15A - .string "A SMOOCHUM\n" - .string "cushion. Place it on\n" - .string "a mat or a desk.$" - -DecorDesc_ZIGZAG_CUSHION: @ 83EB18B - .string "A ZIGZAGOON\n" - .string "cushion. Place it on\n" - .string "a mat or a desk.$" - -DecorDesc_SPIN_CUSHION: @ 83EB1BD - .string "A SPINDA cushion.\n" - .string "Place it on a mat\n" - .string "or a desk.$" - -DecorDesc_DIAMOND_CUSHION: @ 83EB1EC - .string "A SABLEYE cushion.\n" - .string "Place it on a mat\n" - .string "or a desk.$" - -DecorDesc_BALL_CUSHION: @ 83EB21C - .string "A BALL cushion.\n" - .string "Place it on a mat\n" - .string "or a desk.$" - -DecorDesc_GRASS_CUSHION: @ 83EB249 - .string "A grass-mark\n" - .string "cushion. Place it on\n" - .string "a mat or a desk.$" - -DecorDesc_FIRE_CUSHION: @ 83EB27C - .string "A fire-mark\n" - .string "cushion. Place it on\n" - .string "a mat or a desk.$" - -DecorDesc_WATER_CUSHION: @ 83EB2AE - .string "A water-mark\n" - .string "cushion. Place it on\n" - .string "a mat or a desk.$" - -DecorDesc_SNORLAX_DOLL: @ 83EB2E1 - .string "A large doll.\n" - .string "Place it on a mat\n" - .string "or a desk.$" - -DecorDesc_RHYDON_DOLL: @ 83EB30C - .string "A large doll.\n" - .string "Place it on a mat\n" - .string "or a desk.$" - -DecorDesc_LAPRAS_DOLL: @ 83EB337 - .string "A large doll.\n" - .string "Place it on a mat\n" - .string "or a desk.$" - -DecorDesc_VENUSAUR_DOLL: @ 83EB362 - .string "A large doll.\n" - .string "Place it on a mat\n" - .string "or a desk.$" - -DecorDesc_CHARIZARD_DOLL: @ 83EB38D - .string "A large doll.\n" - .string "Place it on a mat\n" - .string "or a desk.$" - -DecorDesc_BLASTOISE_DOLL: @ 83EB3B8 - .string "A large doll.\n" - .string "Place it on a mat\n" - .string "or a desk.$" - -DecorDesc_WAILMER_DOLL: @ 83EB3E3 - .string "A large doll.\n" - .string "Place it on a mat\n" - .string "or a desk.$" - -DecorDesc_REGIROCK_DOLL: @ 83EB40E - .string "A large doll.\n" - .string "Place it on a mat\n" - .string "or a desk.$" - -DecorDesc_REGICE_DOLL: @ 83EB439 - .string "A large doll.\n" - .string "Place it on a mat\n" - .string "or a desk.$" - -DecorDesc_REGISTEEL_DOLL: @ 83EB464 - .string "A large doll.\n" - .string "Place it on a mat\n" - .string "or a desk.$" - - .align 1 -DecorGfx_SMALL_DESK: @ 83EB490 - .2byte 0x87 - - .align 1 -DecorGfx_POKEMON_DESK: @ 83EB492 - .2byte 0x8F - - .align 1 -DecorGfx_HEAVY_DESK: @ 83EB494 - .2byte 0x90 - .2byte 0x91 - .2byte 0x92 - .2byte 0x98 - .2byte 0x99 - .2byte 0x9A - - .align 1 -DecorGfx_RAGGED_DESK: @ 83EB4A0 - .2byte 0x93 - .2byte 0x94 - .2byte 0x95 - .2byte 0x9B - .2byte 0x9C - .2byte 0x9D - - .align 1 -DecorGfx_COMFORT_DESK: @ 83EB4AC - .2byte 0x96 - .2byte 0x97 - .2byte 0xA3 - .2byte 0x9E - .2byte 0x9F - .2byte 0xAB - - .align 1 -DecorGfx_PRETTY_DESK: @ 83EB4B8 - .2byte 0xBD - .2byte 0xBE - .2byte 0xBF - .2byte 0xC5 - .2byte 0xC6 - .2byte 0xC7 - .2byte 0xCD - .2byte 0xCE - .2byte 0xCF - - .align 1 -DecorGfx_BRICK_DESK: @ 83EB4CA - .2byte 0xA0 - .2byte 0xA1 - .2byte 0xA2 - .2byte 0xA8 - .2byte 0xA9 - .2byte 0xAA - .2byte 0xB0 - .2byte 0xB1 - .2byte 0xB2 - - .align 1 -DecorGfx_CAMP_DESK: @ 83EB4DC - .2byte 0xA4 - .2byte 0xA5 - .2byte 0xA6 - .2byte 0xAC - .2byte 0xAD - .2byte 0xAE - .2byte 0xB4 - .2byte 0xB5 - .2byte 0xB6 - - .align 1 -DecorGfx_HARD_DESK: @ 83EB4EE - .2byte 0xA7 - .2byte 0xBB - .2byte 0xBC - .2byte 0xAF - .2byte 0xC3 - .2byte 0xC4 - .2byte 0xB7 - .2byte 0xCB - .2byte 0xCC - - .align 1 -DecorGfx_SMALL_CHAIR: @ 83EB500 - .2byte 0xB8 - - .align 1 -DecorGfx_POKEMON_CHAIR: @ 83EB502 - .2byte 0xB9 - - .align 1 -DecorGfx_HEAVY_CHAIR: @ 83EB504 - .2byte 0xBA - - .align 1 -DecorGfx_PRETTY_CHAIR: @ 83EB506 - .2byte 0xC0 - - .align 1 -DecorGfx_COMFORT_CHAIR: @ 83EB508 - .2byte 0xC1 - - .align 1 -DecorGfx_RAGGED_CHAIR: @ 83EB50A - .2byte 0xC2 - - .align 1 -DecorGfx_BRICK_CHAIR: @ 83EB50C - .2byte 0xC8 - - .align 1 -DecorGfx_CAMP_CHAIR: @ 83EB50E - .2byte 0xC9 - - .align 1 -DecorGfx_HARD_CHAIR: @ 83EB510 - .2byte 0xCA - - .align 1 -DecorGfx_RED_PLANT: @ 83EB512 - .2byte 0xD0 - .2byte 0xD8 - - .align 1 -DecorGfx_TROPICAL_PLANT: @ 83EB516 - .2byte 0xD2 - .2byte 0xDA - - .align 1 -DecorGfx_PRETTY_FLOWERS: @ 83EB51A - .2byte 0xD4 - .2byte 0xDC - - .align 1 -DecorGfx_COLORFUL_PLANT: @ 83EB51E - .2byte 0xE0 - .2byte 0xE2 - .2byte 0xE8 - .2byte 0xE9 - - .align 1 -DecorGfx_BIG_PLANT: @ 83EB526 - .2byte 0xE4 - .2byte 0xE6 - .2byte 0xEC - .2byte 0xED - - .align 1 -DecorGfx_GORGEOUS_PLANT: @ 83EB52E - .2byte 0xF0 - .2byte 0xF2 - .2byte 0xF8 - .2byte 0xF9 - - .align 1 -DecorGfx_RED_BRICK: @ 83EB536 - .2byte 0x25 - .2byte 0x2D - - .align 1 -DecorGfx_YELLOW_BRICK: @ 83EB53A - .2byte 0x26 - .2byte 0x2E - - .align 1 -DecorGfx_BLUE_BRICK: @ 83EB53E - .2byte 0x27 - .2byte 0x2F - - .align 1 -DecorGfx_RED_BALLOON: @ 83EB542 - .2byte 0x138 - - .align 1 -DecorGfx_BLUE_BALLOON: @ 83EB544 - .2byte 0x13C - - .align 1 -DecorGfx_YELLOW_BALLOON: @ 83EB546 - .2byte 0x140 - - .align 1 -DecorGfx_RED_TENT: @ 83EB548 - .2byte 0x30 - .2byte 0x31 - .2byte 0x32 - .2byte 0x38 - .2byte 0x39 - .2byte 0x3A - .2byte 0x40 - .2byte 0x41 - .2byte 0x3B - - .align 1 -DecorGfx_BLUE_TENT: @ 83EB55A - .2byte 0x48 - .2byte 0x49 - .2byte 0x68 - .2byte 0x50 - .2byte 0x51 - .2byte 0x70 - .2byte 0x58 - .2byte 0x59 - .2byte 0x69 - - .align 1 -DecorGfx_SOLID_BOARD: @ 83EB56C - .2byte 0x34 - .2byte 0x3C - - .align 1 -DecorGfx_SLIDE: @ 83EB570 - .2byte 0x35 - .2byte 0x36 - .2byte 0x3D - .2byte 0x3E - .2byte 0x63 - .2byte 0x64 - .2byte 0x6F - .2byte 0x77 - - .align 1 -DecorGfx_FENCE_LENGTH: @ 83EB580 - .2byte 0x33 - - .align 1 -DecorGfx_FENCE_WIDTH: @ 83EB582 - .2byte 0x2C - - .align 1 -DecorGfx_TIRE: @ 83EB584 - .2byte 0x80 - .2byte 0x81 - .2byte 0x88 - .2byte 0x89 - - .align 1 -DecorGfx_STAND: @ 83EB58C - .2byte 0x6A - .2byte 0x6B - .2byte 0x6C - .2byte 0x6D - .2byte 0x72 - .2byte 0x73 - .2byte 0x74 - .2byte 0x75 - - .align 1 -DecorGfx_MUD_BALL: @ 83EB59C - .2byte 0x28 - - .align 1 -DecorGfx_BREAKABLE_DOOR: @ 83EB59E - .2byte 0x37 - .2byte 0x3F - - .align 1 -DecorGfx_SAND_ORNAMENT: @ 83EB5A2 - .2byte 0x85 - .2byte 0x8D - - .align 1 -DecorGfx_SILVER_SHIELD: @ 83EB5A6 - .2byte 0xD6 - .2byte 0xDE - - .align 1 -DecorGfx_GOLD_SHIELD: @ 83EB5AA - .2byte 0x12E - .2byte 0x136 - - .align 1 -DecorGfx_GLASS_ORNAMENT: @ 83EB5AE - .2byte 0x82 - .2byte 0x8A - - .align 1 -DecorGfx_TV: @ 83EB5B2 - .2byte 0xF4 - - .align 1 -DecorGfx_ROUND_TV: @ 83EB5B4 - .2byte 0xF5 - - .align 1 -DecorGfx_CUTE_TV: @ 83EB5B6 - .2byte 0xF6 - - .align 1 -DecorGfx_GLITTER_MAT: @ 83EB5B8 - .2byte 0x60 - - .align 1 -DecorGfx_JUMP_MAT: @ 83EB5BA - .2byte 0x61 - - .align 1 -DecorGfx_SPIN_MAT: @ 83EB5BC - .2byte 0x62 - - .align 1 -DecorGfx_C_LOW_NOTE_MAT: @ 83EB5BE - .2byte 0x78 - - .align 1 -DecorGfx_D_NOTE_MAT: @ 83EB5C0 - .2byte 0x79 - - .align 1 -DecorGfx_E_NOTE_MAT: @ 83EB5C2 - .2byte 0x7A - - .align 1 -DecorGfx_F_NOTE_MAT: @ 83EB5C4 - .2byte 0x7B - - .align 1 -DecorGfx_G_NOTE_MAT: @ 83EB5C6 - .2byte 0x7C - - .align 1 -DecorGfx_A_NOTE_MAT: @ 83EB5C8 - .2byte 0x7D - - .align 1 -DecorGfx_B_NOTE_MAT: @ 83EB5CA - .2byte 0x7E - - .align 1 -DecorGfx_C_HIGH_NOTE_MAT: @ 83EB5CC - .2byte 0xB3 - - .align 1 -DecorGfx_SURF_MAT: @ 83EB5CE - .2byte 0x42 - .2byte 0x43 - .2byte 0x44 - .2byte 0x4A - .2byte 0x4B - .2byte 0x4C - .2byte 0x52 - .2byte 0x53 - .2byte 0x54 - - .align 1 -DecorGfx_THUNDER_MAT: @ 83EB5E0 - .2byte 0x45 - .2byte 0x46 - .2byte 0x47 - .2byte 0x4D - .2byte 0x4E - .2byte 0x4F - .2byte 0x55 - .2byte 0x56 - .2byte 0x57 - - .align 1 -DecorGfx_FIRE_BLAST_MAT: @ 83EB5F2 - .2byte 0x5A - .2byte 0x5B - .2byte 0x5C - .2byte 0x5D - .2byte 0x5E - .2byte 0x5F - .2byte 0x65 - .2byte 0x66 - .2byte 0x67 - - .align 1 -DecorGfx_POWDER_SNOW_MAT: @ 83EB604 - .2byte 0x100 - .2byte 0x101 - .2byte 0x102 - .2byte 0x108 - .2byte 0x109 - .2byte 0x10A - .2byte 0x110 - .2byte 0x111 - .2byte 0x112 - - .align 1 -DecorGfx_ATTRACT_MAT: @ 83EB616 - .2byte 0x103 - .2byte 0x104 - .2byte 0x105 - .2byte 0x10B - .2byte 0x10C - .2byte 0x10D - .2byte 0x113 - .2byte 0x114 - .2byte 0x115 - - .align 1 -DecorGfx_FISSURE_MAT: @ 83EB628 - .2byte 0x106 - .2byte 0x107 - .2byte 0x118 - .2byte 0x10E - .2byte 0x10F - .2byte 0x120 - .2byte 0x116 - .2byte 0x117 - .2byte 0x128 - - .align 1 -DecorGfx_SPIKES_MAT: @ 83EB63A - .2byte 0x119 - .2byte 0x11A - .2byte 0x11B - .2byte 0x121 - .2byte 0x122 - .2byte 0x123 - .2byte 0x129 - .2byte 0x12A - .2byte 0x12B - - .align 1 -DecorGfx_BALL_POSTER: @ 83EB64C - .2byte 0x130 - - .align 1 -DecorGfx_GREEN_POSTER: @ 83EB64E - .2byte 0x131 - - .align 1 -DecorGfx_RED_POSTER: @ 83EB650 - .2byte 0x132 - - .align 1 -DecorGfx_BLUE_POSTER: @ 83EB652 - .2byte 0x133 - - .align 1 -DecorGfx_CUTE_POSTER: @ 83EB654 - .2byte 0x134 - - .align 1 -DecorGfx_PIKA_POSTER: @ 83EB656 - .2byte 0x11C - .2byte 0x11D - - .align 1 -DecorGfx_LONG_POSTER: @ 83EB65A - .2byte 0x11E - .2byte 0x11F - - .align 1 -DecorGfx_SEA_POSTER: @ 83EB65E - .2byte 0x124 - .2byte 0x125 - - .align 1 -DecorGfx_SKY_POSTER: @ 83EB662 - .2byte 0x126 - .2byte 0x127 - - .align 1 -DecorGfx_KISS_POSTER: @ 83EB666 - .2byte 0x12C - .2byte 0x12D - - .align 1 -DecorGfx_PICHU_DOLL: @ 83EB66A - .2byte MAP_OBJ_GFX_PICHU_DOLL - - .align 1 -DecorGfx_PIKACHU_DOLL: @ 83EB66C - .2byte MAP_OBJ_GFX_PIKACHU_DOLL - - .align 1 -DecorGfx_MARILL_DOLL: @ 83EB66E - .2byte MAP_OBJ_GFX_MARILL_DOLL - - .align 1 -DecorGfx_TOGEPI_DOLL: @ 83EB670 - .2byte MAP_OBJ_GFX_TOGEPI_DOLL - - .align 1 -DecorGfx_CYNDAQUIL_DOLL: @ 83EB672 - .2byte MAP_OBJ_GFX_CYNDAQUIL_DOLL - - .align 1 -DecorGfx_CHIKORITA_DOLL: @ 83EB674 - .2byte MAP_OBJ_GFX_CHIKORITA_DOLL - - .align 1 -DecorGfx_TOTODILE_DOLL: @ 83EB676 - .2byte MAP_OBJ_GFX_TOTODILE_DOLL - - .align 1 -DecorGfx_JIGGLYPUFF_DOLL: @ 83EB678 - .2byte MAP_OBJ_GFX_JIGGLYPUFF_DOLL - - .align 1 -DecorGfx_MEOWTH_DOLL: @ 83EB67A - .2byte MAP_OBJ_GFX_MEOWTH_DOLL - - .align 1 -DecorGfx_CLEFAIRY_DOLL: @ 83EB67C - .2byte MAP_OBJ_GFX_CLEFAIRY_DOLL - - .align 1 -DecorGfx_DITTO_DOLL: @ 83EB67E - .2byte MAP_OBJ_GFX_DITTO_DOLL - - .align 1 -DecorGfx_SMOOCHUM_DOLL: @ 83EB680 - .2byte MAP_OBJ_GFX_SMOOCHUM_DOLL - - .align 1 -DecorGfx_TREECKO_DOLL: @ 83EB682 - .2byte MAP_OBJ_GFX_TREECKO_DOLL - - .align 1 -DecorGfx_TORCHIC_DOLL: @ 83EB684 - .2byte MAP_OBJ_GFX_TORCHIC_DOLL - - .align 1 -DecorGfx_MUDKIP_DOLL: @ 83EB686 - .2byte MAP_OBJ_GFX_MUDKIP_DOLL - - .align 1 -DecorGfx_DUSKULL_DOLL: @ 83EB688 - .2byte MAP_OBJ_GFX_DUSKULL_DOLL - - .align 1 -DecorGfx_WYNAUT_DOLL: @ 83EB68A - .2byte MAP_OBJ_GFX_WYNAUT_DOLL - - .align 1 -DecorGfx_BALTOY_DOLL: @ 83EB68C - .2byte MAP_OBJ_GFX_BALTOY_DOLL - - .align 1 -DecorGfx_KECLEON_DOLL: @ 83EB68E - .2byte MAP_OBJ_GFX_KECLEON_DOLL - - .align 1 -DecorGfx_AZURILL_DOLL: @ 83EB690 - .2byte MAP_OBJ_GFX_AZURILL_DOLL - - .align 1 -DecorGfx_SKITTY_DOLL: @ 83EB692 - .2byte MAP_OBJ_GFX_SKITTY_DOLL - - .align 1 -DecorGfx_SWABLU_DOLL: @ 83EB694 - .2byte MAP_OBJ_GFX_SWABLU_DOLL - - .align 1 -DecorGfx_GULPIN_DOLL: @ 83EB696 - .2byte MAP_OBJ_GFX_GULPIN_DOLL - - .align 1 -DecorGfx_LOTAD_DOLL: @ 83EB698 - .2byte MAP_OBJ_GFX_LOTAD_DOLL - - .align 1 -DecorGfx_SEEDOT_DOLL: @ 83EB69A - .2byte MAP_OBJ_GFX_SEEDOT_DOLL - - .align 1 -DecorGfx_PIKA_CUSHION: @ 83EB69C - .2byte MAP_OBJ_GFX_PIKA_CUSHION - - .align 1 -DecorGfx_ROUND_CUSHION: @ 83EB69E - .2byte MAP_OBJ_GFX_ROUND_CUSHION - - .align 1 -DecorGfx_KISS_CUSHION: @ 83EB6A0 - .2byte MAP_OBJ_GFX_KISS_CUSHION - - .align 1 -DecorGfx_ZIGZAG_CUSHION: @ 83EB6A2 - .2byte MAP_OBJ_GFX_ZIGZAG_CUSHION - - .align 1 -DecorGfx_SPIN_CUSHION: @ 83EB6A4 - .2byte MAP_OBJ_GFX_SPIN_CUSHION - - .align 1 -DecorGfx_DIAMOND_CUSHION: @ 83EB6A6 - .2byte MAP_OBJ_GFX_DIAMOND_CUSHION - - .align 1 -DecorGfx_BALL_CUSHION: @ 83EB6A8 - .2byte MAP_OBJ_GFX_BALL_CUSHION - - .align 1 -DecorGfx_GRASS_CUSHION: @ 83EB6AA - .2byte MAP_OBJ_GFX_GRASS_CUSHION - - .align 1 -DecorGfx_FIRE_CUSHION: @ 83EB6AC - .2byte MAP_OBJ_GFX_FIRE_CUSHION - - .align 1 -DecorGfx_WATER_CUSHION: @ 83EB6AE - .2byte MAP_OBJ_GFX_WATER_CUSHION - - .align 1 -DecorGfx_SNORLAX_DOLL: @ 83EB6B0 - .2byte MAP_OBJ_GFX_BIG_SNORLAX_DOLL - - .align 1 -DecorGfx_RHYDON_DOLL: @ 83EB6B2 - .2byte MAP_OBJ_GFX_BIG_RHYDON_DOLL - - .align 1 -DecorGfx_LAPRAS_DOLL: @ 83EB6B4 - .2byte MAP_OBJ_GFX_BIG_LAPRAS_DOLL - - .align 1 -DecorGfx_VENUSAUR_DOLL: @ 83EB6B6 - .2byte MAP_OBJ_GFX_BIG_VENUSAUR_DOLL - - .align 1 -DecorGfx_CHARIZARD_DOLL: @ 83EB6B8 - .2byte MAP_OBJ_GFX_BIG_CHARIZARD_DOLL - - .align 1 -DecorGfx_BLASTOISE_DOLL: @ 83EB6BA - .2byte MAP_OBJ_GFX_BIG_BLASTOISE_DOLL - - .align 1 -DecorGfx_WAILMER_DOLL: @ 83EB6BC - .2byte MAP_OBJ_GFX_BIG_WAILMER_DOLL - - .align 1 -DecorGfx_REGIROCK_DOLL: @ 83EB6BE - .2byte MAP_OBJ_GFX_BIG_REGIROCK_DOLL - - .align 1 -DecorGfx_REGICE_DOLL: @ 83EB6C0 - .2byte MAP_OBJ_GFX_BIG_REGICE_DOLL - - .align 1 -DecorGfx_REGISTEEL_DOLL: @ 83EB6C2 - .2byte MAP_OBJ_GFX_BIG_REGISTEEL_DOLL - - .align 2 -gDecorations:: @ 83EB6C4 - .byte DECOR_NONE - .string "SMALL DESK$", 16 - .byte 0 - .byte 0 - .byte 0 - .2byte 0 - .space 2 - .4byte DecorDesc_SMALL_DESK - .4byte DecorGfx_SMALL_DESK - - .byte DECOR_SMALL_DESK - .string "SMALL DESK$", 16 - .byte 0 - .byte 0 - .byte 0 - .2byte 3000 - .space 2 - .4byte DecorDesc_SMALL_DESK - .4byte DecorGfx_SMALL_DESK - - .byte DECOR_POKEMON_DESK - .string "POKéMON DESK$", 16 - .byte 0 - .byte 0 - .byte 0 - .2byte 3000 - .space 2 - .4byte DecorDesc_POKEMON_DESK - .4byte DecorGfx_POKEMON_DESK - - .byte DECOR_HEAVY_DESK - .string "HEAVY DESK$", 16 - .byte 0 - .byte 9 - .byte 0 - .2byte 6000 - .space 2 - .4byte DecorDesc_HEAVY_DESK - .4byte DecorGfx_HEAVY_DESK - - .byte DECOR_RAGGED_DESK - .string "RAGGED DESK$", 16 - .byte 0 - .byte 9 - .byte 0 - .2byte 6000 - .space 2 - .4byte DecorDesc_RAGGED_DESK - .4byte DecorGfx_RAGGED_DESK - - .byte DECOR_COMFORT_DESK - .string "COMFORT DESK$", 16 - .byte 0 - .byte 9 - .byte 0 - .2byte 6000 - .space 2 - .4byte DecorDesc_COMFORT_DESK - .4byte DecorGfx_COMFORT_DESK - - .byte DECOR_PRETTY_DESK - .string "PRETTY DESK$", 16 - .byte 0 - .byte 8 - .byte 0 - .2byte 9000 - .space 2 - .4byte DecorDesc_PRETTY_DESK - .4byte DecorGfx_PRETTY_DESK - - .byte DECOR_BRICK_DESK - .string "BRICK DESK$", 16 - .byte 0 - .byte 8 - .byte 0 - .2byte 9000 - .space 2 - .4byte DecorDesc_BRICK_DESK - .4byte DecorGfx_BRICK_DESK - - .byte DECOR_CAMP_DESK - .string "CAMP DESK$", 16 - .byte 0 - .byte 8 - .byte 0 - .2byte 9000 - .space 2 - .4byte DecorDesc_CAMP_DESK - .4byte DecorGfx_CAMP_DESK - - .byte DECOR_HARD_DESK - .string "HARD DESK$", 16 - .byte 0 - .byte 8 - .byte 0 - .2byte 9000 - .space 2 - .4byte DecorDesc_HARD_DESK - .4byte DecorGfx_HARD_DESK - - .byte DECOR_SMALL_CHAIR - .string "SMALL CHAIR$", 16 - .byte 1 - .byte 0 - .byte 1 - .2byte 2000 - .space 2 - .4byte DecorDesc_SMALL_CHAIR - .4byte DecorGfx_SMALL_CHAIR - - .byte DECOR_POKEMON_CHAIR - .string "POKéMON CHAIR$", 16 - .byte 1 - .byte 0 - .byte 1 - .2byte 2000 - .space 2 - .4byte DecorDesc_POKEMON_CHAIR - .4byte DecorGfx_POKEMON_CHAIR - - .byte DECOR_HEAVY_CHAIR - .string "HEAVY CHAIR$", 16 - .byte 1 - .byte 0 - .byte 1 - .2byte 2000 - .space 2 - .4byte DecorDesc_HEAVY_CHAIR - .4byte DecorGfx_HEAVY_CHAIR - - .byte DECOR_PRETTY_CHAIR - .string "PRETTY CHAIR$", 16 - .byte 1 - .byte 0 - .byte 1 - .2byte 2000 - .space 2 - .4byte DecorDesc_PRETTY_CHAIR - .4byte DecorGfx_PRETTY_CHAIR - - .byte DECOR_COMFORT_CHAIR - .string "COMFORT CHAIR$", 16 - .byte 1 - .byte 0 - .byte 1 - .2byte 2000 - .space 2 - .4byte DecorDesc_COMFORT_CHAIR - .4byte DecorGfx_COMFORT_CHAIR - - .byte DECOR_RAGGED_CHAIR - .string "RAGGED CHAIR$", 16 - .byte 1 - .byte 0 - .byte 1 - .2byte 2000 - .space 2 - .4byte DecorDesc_RAGGED_CHAIR - .4byte DecorGfx_RAGGED_CHAIR - - .byte DECOR_BRICK_CHAIR - .string "BRICK CHAIR$", 16 - .byte 1 - .byte 0 - .byte 1 - .2byte 2000 - .space 2 - .4byte DecorDesc_BRICK_CHAIR - .4byte DecorGfx_BRICK_CHAIR - - .byte DECOR_CAMP_CHAIR - .string "CAMP CHAIR$", 16 - .byte 1 - .byte 0 - .byte 1 - .2byte 2000 - .space 2 - .4byte DecorDesc_CAMP_CHAIR - .4byte DecorGfx_CAMP_CHAIR - - .byte DECOR_HARD_CHAIR - .string "HARD CHAIR$", 16 - .byte 1 - .byte 0 - .byte 1 - .2byte 2000 - .space 2 - .4byte DecorDesc_HARD_CHAIR - .4byte DecorGfx_HARD_CHAIR - - .byte DECOR_RED_PLANT - .string "RED PLANT$", 16 - .byte 2 - .byte 5 - .byte 2 - .2byte 3000 - .space 2 - .4byte DecorDesc_RED_PLANT - .4byte DecorGfx_RED_PLANT - - .byte DECOR_TROPICAL_PLANT - .string "TROPICAL PLANT$", 16 - .byte 2 - .byte 5 - .byte 2 - .2byte 3000 - .space 2 - .4byte DecorDesc_TROPICAL_PLANT - .4byte DecorGfx_TROPICAL_PLANT - - .byte DECOR_PRETTY_FLOWERS - .string "PRETTY FLOWERS$", 16 - .byte 2 - .byte 5 - .byte 2 - .2byte 3000 - .space 2 - .4byte DecorDesc_PRETTY_FLOWERS - .4byte DecorGfx_PRETTY_FLOWERS - - .byte DECOR_COLORFUL_PLANT - .string "COLORFUL PLANT$", 16 - .byte 2 - .byte 4 - .byte 2 - .2byte 5000 - .space 2 - .4byte DecorDesc_COLORFUL_PLANT - .4byte DecorGfx_COLORFUL_PLANT - - .byte DECOR_BIG_PLANT - .string "BIG PLANT$", 16 - .byte 2 - .byte 4 - .byte 2 - .2byte 5000 - .space 2 - .4byte DecorDesc_BIG_PLANT - .4byte DecorGfx_BIG_PLANT - - .byte DECOR_GORGEOUS_PLANT - .string "GORGEOUS PLANT$", 16 - .byte 2 - .byte 4 - .byte 2 - .2byte 5000 - .space 2 - .4byte DecorDesc_GORGEOUS_PLANT - .4byte DecorGfx_GORGEOUS_PLANT - - .byte DECOR_RED_BRICK - .string "RED BRICK$", 16 - .byte 0 - .byte 5 - .byte 3 - .2byte 500 - .space 2 - .4byte DecorDesc_RED_BRICK - .4byte DecorGfx_RED_BRICK - - .byte DECOR_YELLOW_BRICK - .string "YELLOW BRICK$", 16 - .byte 0 - .byte 5 - .byte 3 - .2byte 500 - .space 2 - .4byte DecorDesc_YELLOW_BRICK - .4byte DecorGfx_YELLOW_BRICK - - .byte DECOR_BLUE_BRICK - .string "BLUE BRICK$", 16 - .byte 0 - .byte 5 - .byte 3 - .2byte 500 - .space 2 - .4byte DecorDesc_BLUE_BRICK - .4byte DecorGfx_BLUE_BRICK - - .byte DECOR_RED_BALLOON - .string "RED BALLOON$", 16 - .byte 1 - .byte 0 - .byte 3 - .2byte 500 - .space 2 - .4byte DecorDesc_RED_BALLOON - .4byte DecorGfx_RED_BALLOON - - .byte DECOR_BLUE_BALLOON - .string "BLUE BALLOON$", 16 - .byte 1 - .byte 0 - .byte 3 - .2byte 500 - .space 2 - .4byte DecorDesc_BLUE_BALLOON - .4byte DecorGfx_BLUE_BALLOON - - .byte DECOR_YELLOW_BALLOON - .string "YELLOW BALLOON$", 16 - .byte 1 - .byte 0 - .byte 3 - .2byte 500 - .space 2 - .4byte DecorDesc_YELLOW_BALLOON - .4byte DecorGfx_YELLOW_BALLOON - - .byte DECOR_RED_TENT - .string "RED TENT$", 16 - .byte 1 - .byte 8 - .byte 3 - .2byte 10000 - .space 2 - .4byte DecorDesc_RED_TENT - .4byte DecorGfx_RED_TENT - - .byte DECOR_BLUE_TENT - .string "BLUE TENT$", 16 - .byte 1 - .byte 8 - .byte 3 - .2byte 10000 - .space 2 - .4byte DecorDesc_BLUE_TENT - .4byte DecorGfx_BLUE_TENT - - .byte DECOR_SOLID_BOARD - .string "SOLID BOARD$", 16 - .byte 1 - .byte 5 - .byte 3 - .2byte 3000 - .space 2 - .4byte DecorDesc_SOLID_BOARD - .4byte DecorGfx_SOLID_BOARD - - .byte DECOR_SLIDE - .string "SLIDE$", 16 - .byte 1 - .byte 7 - .byte 3 - .2byte 8000 - .space 2 - .4byte DecorDesc_SLIDE - .4byte DecorGfx_SLIDE - - .byte DECOR_FENCE_LENGTH - .string "FENCE LENGTH$", 16 - .byte 0 - .byte 0 - .byte 3 - .2byte 500 - .space 2 - .4byte DecorDesc_FENCE_LENGTH - .4byte DecorGfx_FENCE_LENGTH - - .byte DECOR_FENCE_WIDTH - .string "FENCE WIDTH$", 16 - .byte 0 - .byte 0 - .byte 3 - .2byte 500 - .space 2 - .4byte DecorDesc_FENCE_WIDTH - .4byte DecorGfx_FENCE_WIDTH - - .byte DECOR_TIRE - .string "TIRE$", 16 - .byte 0 - .byte 4 - .byte 3 - .2byte 800 - .space 2 - .4byte DecorDesc_TIRE - .4byte DecorGfx_TIRE - - .byte DECOR_STAND - .string "STAND$", 16 - .byte 1 - .byte 3 - .byte 3 - .2byte 7000 - .space 2 - .4byte DecorDesc_STAND - .4byte DecorGfx_STAND - - .byte DECOR_MUD_BALL - .string "MUD BALL$", 16 - .byte 1 - .byte 0 - .byte 3 - .2byte 200 - .space 2 - .4byte DecorDesc_MUD_BALL - .4byte DecorGfx_MUD_BALL - - .byte DECOR_BREAKABLE_DOOR - .string "BREAKABLE DOOR$", 16 - .byte 1 - .byte 5 - .byte 3 - .2byte 3000 - .space 2 - .4byte DecorDesc_BREAKABLE_DOOR - .4byte DecorGfx_BREAKABLE_DOOR - - .byte DECOR_SAND_ORNAMENT - .string "SAND ORNAMENT$", 16 - .byte 2 - .byte 5 - .byte 3 - .2byte 3000 - .space 2 - .4byte DecorDesc_SAND_ORNAMENT - .4byte DecorGfx_SAND_ORNAMENT - - .byte DECOR_SILVER_SHIELD - .string "SILVER SHIELD$", 16 - .byte 2 - .byte 5 - .byte 3 - .2byte 0 - .space 2 - .4byte DecorDesc_SILVER_SHIELD - .4byte DecorGfx_SILVER_SHIELD - - .byte DECOR_GOLD_SHIELD - .string "GOLD SHIELD$", 16 - .byte 2 - .byte 5 - .byte 3 - .2byte 0 - .space 2 - .4byte DecorDesc_GOLD_SHIELD - .4byte DecorGfx_GOLD_SHIELD - - .byte DECOR_GLASS_ORNAMENT - .string "GLASS ORNAMENT$", 16 - .byte 2 - .byte 5 - .byte 3 - .2byte 0 - .space 2 - .4byte DecorDesc_GLASS_ORNAMENT - .4byte DecorGfx_GLASS_ORNAMENT - - .byte DECOR_TV - .string "TV$", 16 - .byte 0 - .byte 0 - .byte 3 - .2byte 3000 - .space 2 - .4byte DecorDesc_TV - .4byte DecorGfx_TV - - .byte DECOR_ROUND_TV - .string "ROUND TV$", 16 - .byte 0 - .byte 0 - .byte 3 - .2byte 4000 - .space 2 - .4byte DecorDesc_ROUND_TV - .4byte DecorGfx_ROUND_TV - - .byte DECOR_CUTE_TV - .string "CUTE TV$", 16 - .byte 0 - .byte 0 - .byte 3 - .2byte 4000 - .space 2 - .4byte DecorDesc_CUTE_TV - .4byte DecorGfx_CUTE_TV - - .byte DECOR_GLITTER_MAT - .string "GLITTER MAT$", 16 - .byte 1 - .byte 0 - .byte 4 - .2byte 2000 - .space 2 - .4byte DecorDesc_GLITTER_MAT - .4byte DecorGfx_GLITTER_MAT - - .byte DECOR_JUMP_MAT - .string "JUMP MAT$", 16 - .byte 1 - .byte 0 - .byte 4 - .2byte 2000 - .space 2 - .4byte DecorDesc_JUMP_MAT - .4byte DecorGfx_JUMP_MAT - - .byte DECOR_SPIN_MAT - .string "SPIN MAT$", 16 - .byte 1 - .byte 0 - .byte 4 - .2byte 2000 - .space 2 - .4byte DecorDesc_SPIN_MAT - .4byte DecorGfx_SPIN_MAT - - .byte DECOR_C_LOW_NOTE_MAT - .string "C Low NOTE MAT$", 16 - .byte 1 - .byte 0 - .byte 4 - .2byte 500 - .space 2 - .4byte DecorDesc_C_LOW_NOTE_MAT - .4byte DecorGfx_C_LOW_NOTE_MAT - - .byte DECOR_D_NOTE_MAT - .string "D NOTE MAT$", 16 - .byte 1 - .byte 0 - .byte 4 - .2byte 500 - .space 2 - .4byte DecorDesc_D_NOTE_MAT - .4byte DecorGfx_D_NOTE_MAT - - .byte DECOR_E_NOTE_MAT - .string "E NOTE MAT$", 16 - .byte 1 - .byte 0 - .byte 4 - .2byte 500 - .space 2 - .4byte DecorDesc_E_NOTE_MAT - .4byte DecorGfx_E_NOTE_MAT - - .byte DECOR_F_NOTE_MAT - .string "F NOTE MAT$", 16 - .byte 1 - .byte 0 - .byte 4 - .2byte 500 - .space 2 - .4byte DecorDesc_F_NOTE_MAT - .4byte DecorGfx_F_NOTE_MAT - - .byte DECOR_G_NOTE_MAT - .string "G NOTE MAT$", 16 - .byte 1 - .byte 0 - .byte 4 - .2byte 500 - .space 2 - .4byte DecorDesc_G_NOTE_MAT - .4byte DecorGfx_G_NOTE_MAT - - .byte DECOR_A_NOTE_MAT - .string "A NOTE MAT$", 16 - .byte 1 - .byte 0 - .byte 4 - .2byte 500 - .space 2 - .4byte DecorDesc_A_NOTE_MAT - .4byte DecorGfx_A_NOTE_MAT - - .byte DECOR_B_NOTE_MAT - .string "B NOTE MAT$", 16 - .byte 1 - .byte 0 - .byte 4 - .2byte 500 - .space 2 - .4byte DecorDesc_B_NOTE_MAT - .4byte DecorGfx_B_NOTE_MAT - - .byte DECOR_C_HIGH_NOTE_MAT - .string "C High NOTE MAT$", 16 - .byte 1 - .byte 0 - .byte 4 - .2byte 500 - .space 2 - .4byte DecorDesc_C_HIGH_NOTE_MAT - .4byte DecorGfx_C_HIGH_NOTE_MAT - - .byte DECOR_SURF_MAT - .string "SURF MAT$", 16 - .byte 1 - .byte 8 - .byte 4 - .2byte 4000 - .space 2 - .4byte DecorDesc_SURF_MAT - .4byte DecorGfx_SURF_MAT - - .byte DECOR_THUNDER_MAT - .string "THUNDER MAT$", 16 - .byte 1 - .byte 8 - .byte 4 - .2byte 4000 - .space 2 - .4byte DecorDesc_THUNDER_MAT - .4byte DecorGfx_THUNDER_MAT - - .byte DECOR_FIRE_BLAST_MAT - .string "FIRE BLAST MAT$", 16 - .byte 1 - .byte 8 - .byte 4 - .2byte 4000 - .space 2 - .4byte DecorDesc_FIRE_BLAST_MAT - .4byte DecorGfx_FIRE_BLAST_MAT - - .byte DECOR_POWDER_SNOW_MAT - .string "POWDER SNOW MAT$", 16 - .byte 1 - .byte 8 - .byte 4 - .2byte 4000 - .space 2 - .4byte DecorDesc_POWDER_SNOW_MAT - .4byte DecorGfx_POWDER_SNOW_MAT - - .byte DECOR_ATTRACT_MAT - .string "ATTRACT MAT$", 16 - .byte 1 - .byte 8 - .byte 4 - .2byte 4000 - .space 2 - .4byte DecorDesc_ATTRACT_MAT - .4byte DecorGfx_ATTRACT_MAT - - .byte DECOR_FISSURE_MAT - .string "FISSURE MAT$", 16 - .byte 1 - .byte 8 - .byte 4 - .2byte 4000 - .space 2 - .4byte DecorDesc_FISSURE_MAT - .4byte DecorGfx_FISSURE_MAT - - .byte DECOR_SPIKES_MAT - .string "SPIKES MAT$", 16 - .byte 1 - .byte 8 - .byte 4 - .2byte 4000 - .space 2 - .4byte DecorDesc_SPIKES_MAT - .4byte DecorGfx_SPIKES_MAT - - .byte DECOR_BALL_POSTER - .string "BALL POSTER$", 16 - .byte 3 - .byte 0 - .byte 5 - .2byte 1000 - .space 2 - .4byte DecorDesc_BALL_POSTER - .4byte DecorGfx_BALL_POSTER - - .byte DECOR_GREEN_POSTER - .string "GREEN POSTER$", 16 - .byte 3 - .byte 0 - .byte 5 - .2byte 1000 - .space 2 - .4byte DecorDesc_GREEN_POSTER - .4byte DecorGfx_GREEN_POSTER - - .byte DECOR_RED_POSTER - .string "RED POSTER$", 16 - .byte 3 - .byte 0 - .byte 5 - .2byte 1000 - .space 2 - .4byte DecorDesc_RED_POSTER - .4byte DecorGfx_RED_POSTER - - .byte DECOR_BLUE_POSTER - .string "BLUE POSTER$", 16 - .byte 3 - .byte 0 - .byte 5 - .2byte 1000 - .space 2 - .4byte DecorDesc_BLUE_POSTER - .4byte DecorGfx_BLUE_POSTER - - .byte DECOR_CUTE_POSTER - .string "CUTE POSTER$", 16 - .byte 3 - .byte 0 - .byte 5 - .2byte 1000 - .space 2 - .4byte DecorDesc_CUTE_POSTER - .4byte DecorGfx_CUTE_POSTER - - .byte DECOR_PIKA_POSTER - .string "PIKA POSTER$", 16 - .byte 3 - .byte 1 - .byte 5 - .2byte 1500 - .space 2 - .4byte DecorDesc_PIKA_POSTER - .4byte DecorGfx_PIKA_POSTER - - .byte DECOR_LONG_POSTER - .string "LONG POSTER$", 16 - .byte 3 - .byte 1 - .byte 5 - .2byte 1500 - .space 2 - .4byte DecorDesc_LONG_POSTER - .4byte DecorGfx_LONG_POSTER - - .byte DECOR_SEA_POSTER - .string "SEA POSTER$", 16 - .byte 3 - .byte 1 - .byte 5 - .2byte 1500 - .space 2 - .4byte DecorDesc_SEA_POSTER - .4byte DecorGfx_SEA_POSTER - - .byte DECOR_SKY_POSTER - .string "SKY POSTER$", 16 - .byte 3 - .byte 1 - .byte 5 - .2byte 1500 - .space 2 - .4byte DecorDesc_SKY_POSTER - .4byte DecorGfx_SKY_POSTER - - .byte DECOR_KISS_POSTER - .string "KISS POSTER$", 16 - .byte 3 - .byte 1 - .byte 5 - .2byte 1500 - .space 2 - .4byte DecorDesc_KISS_POSTER - .4byte DecorGfx_KISS_POSTER - - .byte DECOR_PICHU_DOLL - .string "PICHU DOLL$", 16 - .byte 4 - .byte 0 - .byte 6 - .2byte 3000 - .space 2 - .4byte DecorDesc_PICHU_DOLL - .4byte DecorGfx_PICHU_DOLL - - .byte DECOR_PIKACHU_DOLL - .string "PIKACHU DOLL$", 16 - .byte 4 - .byte 0 - .byte 6 - .2byte 3000 - .space 2 - .4byte DecorDesc_PIKACHU_DOLL - .4byte DecorGfx_PIKACHU_DOLL - - .byte DECOR_MARILL_DOLL - .string "MARILL DOLL$", 16 - .byte 4 - .byte 0 - .byte 6 - .2byte 3000 - .space 2 - .4byte DecorDesc_MARILL_DOLL - .4byte DecorGfx_MARILL_DOLL - - .byte DECOR_TOGEPI_DOLL - .string "TOGEPI DOLL$", 16 - .byte 4 - .byte 0 - .byte 6 - .2byte 3000 - .space 2 - .4byte DecorDesc_TOGEPI_DOLL - .4byte DecorGfx_TOGEPI_DOLL - - .byte DECOR_CYNDAQUIL_DOLL - .string "CYNDAQUIL DOLL$", 16 - .byte 4 - .byte 0 - .byte 6 - .2byte 3000 - .space 2 - .4byte DecorDesc_CYNDAQUIL_DOLL - .4byte DecorGfx_CYNDAQUIL_DOLL - - .byte DECOR_CHIKORITA_DOLL - .string "CHIKORITA DOLL$", 16 - .byte 4 - .byte 0 - .byte 6 - .2byte 3000 - .space 2 - .4byte DecorDesc_CHIKORITA_DOLL - .4byte DecorGfx_CHIKORITA_DOLL - - .byte DECOR_TOTODILE_DOLL - .string "TOTODILE DOLL$", 16 - .byte 4 - .byte 0 - .byte 6 - .2byte 3000 - .space 2 - .4byte DecorDesc_TOTODILE_DOLL - .4byte DecorGfx_TOTODILE_DOLL - - .byte DECOR_JIGGLYPUFF_DOLL - .string "JIGGLYPUFF DOLL$", 16 - .byte 4 - .byte 0 - .byte 6 - .2byte 3000 - .space 2 - .4byte DecorDesc_JIGGLYPUFF_DOLL - .4byte DecorGfx_JIGGLYPUFF_DOLL - - .byte DECOR_MEOWTH_DOLL - .string "MEOWTH DOLL$", 16 - .byte 4 - .byte 0 - .byte 6 - .2byte 3000 - .space 2 - .4byte DecorDesc_MEOWTH_DOLL - .4byte DecorGfx_MEOWTH_DOLL - - .byte DECOR_CLEFAIRY_DOLL - .string "CLEFAIRY DOLL$", 16 - .byte 4 - .byte 0 - .byte 6 - .2byte 3000 - .space 2 - .4byte DecorDesc_CLEFAIRY_DOLL - .4byte DecorGfx_CLEFAIRY_DOLL - - .byte DECOR_DITTO_DOLL - .string "DITTO DOLL$", 16 - .byte 4 - .byte 0 - .byte 6 - .2byte 3000 - .space 2 - .4byte DecorDesc_DITTO_DOLL - .4byte DecorGfx_DITTO_DOLL - - .byte DECOR_SMOOCHUM_DOLL - .string "SMOOCHUM DOLL$", 16 - .byte 4 - .byte 0 - .byte 6 - .2byte 3000 - .space 2 - .4byte DecorDesc_SMOOCHUM_DOLL - .4byte DecorGfx_SMOOCHUM_DOLL - - .byte DECOR_TREECKO_DOLL - .string "TREECKO DOLL$", 16 - .byte 4 - .byte 0 - .byte 6 - .2byte 3000 - .space 2 - .4byte DecorDesc_TREECKO_DOLL - .4byte DecorGfx_TREECKO_DOLL - - .byte DECOR_TORCHIC_DOLL - .string "TORCHIC DOLL$", 16 - .byte 4 - .byte 0 - .byte 6 - .2byte 3000 - .space 2 - .4byte DecorDesc_TORCHIC_DOLL - .4byte DecorGfx_TORCHIC_DOLL - - .byte DECOR_MUDKIP_DOLL - .string "MUDKIP DOLL$", 16 - .byte 4 - .byte 0 - .byte 6 - .2byte 3000 - .space 2 - .4byte DecorDesc_MUDKIP_DOLL - .4byte DecorGfx_MUDKIP_DOLL - - .byte DECOR_DUSKULL_DOLL - .string "DUSKULL DOLL$", 16 - .byte 4 - .byte 0 - .byte 6 - .2byte 3000 - .space 2 - .4byte DecorDesc_DUSKULL_DOLL - .4byte DecorGfx_DUSKULL_DOLL - - .byte DECOR_WYNAUT_DOLL - .string "WYNAUT DOLL$", 16 - .byte 4 - .byte 0 - .byte 6 - .2byte 3000 - .space 2 - .4byte DecorDesc_WYNAUT_DOLL - .4byte DecorGfx_WYNAUT_DOLL - - .byte DECOR_BALTOY_DOLL - .string "BALTOY DOLL$", 16 - .byte 4 - .byte 0 - .byte 6 - .2byte 3000 - .space 2 - .4byte DecorDesc_BALTOY_DOLL - .4byte DecorGfx_BALTOY_DOLL - - .byte DECOR_KECLEON_DOLL - .string "KECLEON DOLL$", 16 - .byte 4 - .byte 0 - .byte 6 - .2byte 3000 - .space 2 - .4byte DecorDesc_KECLEON_DOLL - .4byte DecorGfx_KECLEON_DOLL - - .byte DECOR_AZURILL_DOLL - .string "AZURILL DOLL$", 16 - .byte 4 - .byte 0 - .byte 6 - .2byte 3000 - .space 2 - .4byte DecorDesc_AZURILL_DOLL - .4byte DecorGfx_AZURILL_DOLL - - .byte DECOR_SKITTY_DOLL - .string "SKITTY DOLL$", 16 - .byte 4 - .byte 0 - .byte 6 - .2byte 3000 - .space 2 - .4byte DecorDesc_SKITTY_DOLL - .4byte DecorGfx_SKITTY_DOLL - - .byte DECOR_SWABLU_DOLL - .string "SWABLU DOLL$", 16 - .byte 4 - .byte 0 - .byte 6 - .2byte 3000 - .space 2 - .4byte DecorDesc_SWABLU_DOLL - .4byte DecorGfx_SWABLU_DOLL - - .byte DECOR_GULPIN_DOLL - .string "GULPIN DOLL$", 16 - .byte 4 - .byte 0 - .byte 6 - .2byte 3000 - .space 2 - .4byte DecorDesc_GULPIN_DOLL - .4byte DecorGfx_GULPIN_DOLL - - .byte DECOR_LOTAD_DOLL - .string "LOTAD DOLL$", 16 - .byte 4 - .byte 0 - .byte 6 - .2byte 3000 - .space 2 - .4byte DecorDesc_LOTAD_DOLL - .4byte DecorGfx_LOTAD_DOLL - - .byte DECOR_SEEDOT_DOLL - .string "SEEDOT DOLL$", 16 - .byte 4 - .byte 0 - .byte 6 - .2byte 3000 - .space 2 - .4byte DecorDesc_SEEDOT_DOLL - .4byte DecorGfx_SEEDOT_DOLL - - .byte DECOR_PIKA_CUSHION - .string "PIKA CUSHION$", 16 - .byte 4 - .byte 0 - .byte 7 - .2byte 2000 - .space 2 - .4byte DecorDesc_PIKA_CUSHION - .4byte DecorGfx_PIKA_CUSHION - - .byte DECOR_ROUND_CUSHION - .string "ROUND CUSHION$", 16 - .byte 4 - .byte 0 - .byte 7 - .2byte 2000 - .space 2 - .4byte DecorDesc_ROUND_CUSHION - .4byte DecorGfx_ROUND_CUSHION - - .byte DECOR_KISS_CUSHION - .string "KISS CUSHION$", 16 - .byte 4 - .byte 0 - .byte 7 - .2byte 2000 - .space 2 - .4byte DecorDesc_KISS_CUSHION - .4byte DecorGfx_KISS_CUSHION - - .byte DECOR_ZIGZAG_CUSHION - .string "ZIGZAG CUSHION$", 16 - .byte 4 - .byte 0 - .byte 7 - .2byte 2000 - .space 2 - .4byte DecorDesc_ZIGZAG_CUSHION - .4byte DecorGfx_ZIGZAG_CUSHION - - .byte DECOR_SPIN_CUSHION - .string "SPIN CUSHION$", 16 - .byte 4 - .byte 0 - .byte 7 - .2byte 2000 - .space 2 - .4byte DecorDesc_SPIN_CUSHION - .4byte DecorGfx_SPIN_CUSHION - - .byte DECOR_DIAMOND_CUSHION - .string "DIAMOND CUSHION$", 16 - .byte 4 - .byte 0 - .byte 7 - .2byte 2000 - .space 2 - .4byte DecorDesc_DIAMOND_CUSHION - .4byte DecorGfx_DIAMOND_CUSHION - - .byte DECOR_BALL_CUSHION - .string "BALL CUSHION$", 16 - .byte 4 - .byte 0 - .byte 7 - .2byte 2000 - .space 2 - .4byte DecorDesc_BALL_CUSHION - .4byte DecorGfx_BALL_CUSHION - - .byte DECOR_GRASS_CUSHION - .string "GRASS CUSHION$", 16 - .byte 4 - .byte 0 - .byte 7 - .2byte 2000 - .space 2 - .4byte DecorDesc_GRASS_CUSHION - .4byte DecorGfx_GRASS_CUSHION - - .byte DECOR_FIRE_CUSHION - .string "FIRE CUSHION$", 16 - .byte 4 - .byte 0 - .byte 7 - .2byte 2000 - .space 2 - .4byte DecorDesc_FIRE_CUSHION - .4byte DecorGfx_FIRE_CUSHION - - .byte DECOR_WATER_CUSHION - .string "WATER CUSHION$", 16 - .byte 4 - .byte 0 - .byte 7 - .2byte 2000 - .space 2 - .4byte DecorDesc_WATER_CUSHION - .4byte DecorGfx_WATER_CUSHION - - .byte DECOR_SNORLAX_DOLL - .string "SNORLAX DOLL$", 16 - .byte 4 - .byte 5 - .byte 6 - .2byte 10000 - .space 2 - .4byte DecorDesc_SNORLAX_DOLL - .4byte DecorGfx_SNORLAX_DOLL - - .byte DECOR_RHYDON_DOLL - .string "RHYDON DOLL$", 16 - .byte 4 - .byte 5 - .byte 6 - .2byte 10000 - .space 2 - .4byte DecorDesc_RHYDON_DOLL - .4byte DecorGfx_RHYDON_DOLL - - .byte DECOR_LAPRAS_DOLL - .string "LAPRAS DOLL$", 16 - .byte 4 - .byte 5 - .byte 6 - .2byte 10000 - .space 2 - .4byte DecorDesc_LAPRAS_DOLL - .4byte DecorGfx_LAPRAS_DOLL - - .byte DECOR_VENUSAUR_DOLL - .string "VENUSAUR DOLL$", 16 - .byte 4 - .byte 5 - .byte 6 - .2byte 10000 - .space 2 - .4byte DecorDesc_VENUSAUR_DOLL - .4byte DecorGfx_VENUSAUR_DOLL - - .byte DECOR_CHARIZARD_DOLL - .string "CHARIZARD DOLL$", 16 - .byte 4 - .byte 5 - .byte 6 - .2byte 10000 - .space 2 - .4byte DecorDesc_CHARIZARD_DOLL - .4byte DecorGfx_CHARIZARD_DOLL - - .byte DECOR_BLASTOISE_DOLL - .string "BLASTOISE DOLL$", 16 - .byte 4 - .byte 5 - .byte 6 - .2byte 10000 - .space 2 - .4byte DecorDesc_BLASTOISE_DOLL - .4byte DecorGfx_BLASTOISE_DOLL - - .byte DECOR_WAILMER_DOLL - .string "WAILMER DOLL$", 16 - .byte 4 - .byte 5 - .byte 6 - .2byte 10000 - .space 2 - .4byte DecorDesc_WAILMER_DOLL - .4byte DecorGfx_WAILMER_DOLL - - .byte DECOR_REGIROCK_DOLL - .string "REGIROCK DOLL$", 16 - .byte 4 - .byte 5 - .byte 6 - .2byte 10000 - .space 2 - .4byte DecorDesc_REGIROCK_DOLL - .4byte DecorGfx_REGIROCK_DOLL - - .byte DECOR_REGICE_DOLL - .string "REGICE DOLL$", 16 - .byte 4 - .byte 5 - .byte 6 - .2byte 10000 - .space 2 - .4byte DecorDesc_REGICE_DOLL - .4byte DecorGfx_REGICE_DOLL - - .byte DECOR_REGISTEEL_DOLL - .string "REGISTEEL DOLL$", 16 - .byte 4 - .byte 5 - .byte 6 - .2byte 10000 - .space 2 - .4byte DecorDesc_REGISTEEL_DOLL - .4byte DecorGfx_REGISTEEL_DOLL - diff --git a/data/field_effect.s b/data/field_effect.s deleted file mode 100644 index 3347bc19c..000000000 --- a/data/field_effect.s +++ /dev/null @@ -1,433 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gSpriteImage_839DC14:: @ 839DC14 - .incbin "graphics/birch_speech/birch.4bpp" - - .align 2 -gBirchPalette:: @ 839E414 - .incbin "graphics/birch_speech/birch.gbapal" - - .align 2 -gSpriteImage_839E434:: @ 839E434 - .incbin "graphics/misc/pokeball_glow.4bpp" - - .align 2 -gFieldEffectObjectPalette4: @ 839E454 - .incbin "graphics/field_effect_objects/palettes/04.gbapal" - - .align 2 -gSpriteImage_839E474:: @ 839E474 - .incbin "graphics/misc/pokecenter_monitor/0.4bpp" - - .align 2 -gSpriteImage_839E534:: @ 839E534 - .incbin "graphics/misc/pokecenter_monitor/1.4bpp" - - .align 2 -gSpriteImage_839E5F4:: @ 839E5F4 - .incbin "graphics/misc/big_hof_monitor.4bpp" - - .align 2 -gSpriteImage_839E7F4:: @ 839E7F4 - .incbin "graphics/misc/small_hof_monitor.4bpp" - - .align 2 -gFieldEffectObjectPalette5: @ 839E8F4 - .incbin "graphics/field_effect_objects/palettes/05.gbapal" - -@ Graphics for the lights streaking past your Pokémon when it uses a field move. - - .align 2 -gFieldMoveStreaksTiles:: @ 839E914 - .incbin "graphics/misc/field_move_streaks.4bpp" - - .align 2 -gFieldMoveStreaksPalette:: @ 839EB14 - .incbin "graphics/misc/field_move_streaks.gbapal" - - .align 2 -gFieldMoveStreaksTilemap:: @ 839EB34 - .incbin "graphics/misc/field_move_streaks_map.bin" - -@ The following light streaks effect is used when the map is dark (e.g. a cave). - - .align 2 -gDarknessFieldMoveStreaksTiles:: @ 839EDB4 - .incbin "graphics/misc/darkness_field_move_streaks.4bpp" - - .align 2 -gDarknessFieldMoveStreaksPalette:: @ 839EE34 - .incbin "graphics/misc/darkness_field_move_streaks.gbapal" - - .align 2 -gDarknessFieldMoveStreaksTilemap:: @ 839EE54 - .incbin "graphics/misc/darkness_field_move_streaks_map.bin" - - .align 2 -gFieldEffectScriptFuncs:: @ 839F0D4 - .4byte FieldEffectCmd_loadtiles - .4byte FieldEffectCmd_loadfadedpal - .4byte FieldEffectCmd_loadpal - .4byte FieldEffectCmd_callnative - .4byte FieldEffectCmd_end - .4byte FieldEffectCmd_loadgfx_callnative - .4byte FieldEffectCmd_loadtiles_callnative - .4byte FieldEffectCmd_loadfadedpal_callnative - - .align 2 -gOamData_839F0F4:: @ 839F0F4 - .2byte 0x0000 - .2byte 0xC000 - .2byte 0x0000 - - .align 2 -gOamData_839F0FC:: @ 839F0FC - .2byte 0x0000 - .2byte 0x0000 - .2byte 0x0000 - - .align 2 -gOamData_839F104:: @ 839F104 - .2byte 0x0000 - .2byte 0x4000 - .2byte 0x0000 - - .align 2 -gSpriteImageTable_839F10C:: @ 839F10C - obj_frame_tiles gSpriteImage_839DC14, 0x800 - - .align 2 -gUnknown_0839F114:: @ 839F114 - obj_pal gBirchPalette, 0x1006 - - .align 2 -gSpriteAnim_839F11C:: @ 839F11C - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_839F124:: @ 839F124 - .4byte gSpriteAnim_839F11C - - .align 2 -gSpriteTemplate_839F128:: @ 839F128 - spr_template 0xFFFF, 4102, gOamData_839F0F4, gSpriteAnimTable_839F124, gSpriteImageTable_839F10C, gDummySpriteAffineAnimTable, SpriteCallbackDummy - - .align 2 -gFieldEffectObjectPaletteInfo4:: @ 839F140 - obj_pal gFieldEffectObjectPalette4, 0x1007 - - .align 2 -gFieldEffectObjectPaletteInfo5:: @ 839F148 - obj_pal gFieldEffectObjectPalette5, 0x1010 - - .align 2 -gOamData_839F150:: @ 839F150 - .2byte 0x4000 - .2byte 0x8000 - .2byte 0x0000 - - .align 2 -gSpriteImageTable_839F158:: @ 839F158 - obj_frame_tiles gSpriteImage_839E434, 0x20 - - .align 2 -gSpriteImageTable_839F160:: @ 839F160 - obj_frame_tiles gSpriteImage_839E474, 0xc0 - obj_frame_tiles gSpriteImage_839E534, 0xc0 - - .align 2 -gSpriteImageTable_839F170:: @ 839F170 - obj_frame_tiles gSpriteImage_839E5F4, 0x200 - - .align 2 -gSpriteImageTable_839F178:: @ 839F178 - obj_frame_tiles gSpriteImage_839E7F4, 0x200 - - .align 2 -Unknown_39F180:: @ 839F180 - subsprite -12, -8, 2, 0, 16x8 - subsprite 4, -8, 2, 2, 8x8 - subsprite -12, 0, 2, 3, 16x8 - subsprite 4, 0, 2, 5, 8x8 - - .align 2 -gUnknown_0839F1A0:: @ 839F1A0 - .4byte 4, Unknown_39F180 - - .align 2 -Unknown_39F1A8:: @ 39F1A8 - subsprite -32, -8, 2, 0, 32x8 - subsprite 0, -8, 2, 4, 32x8 - subsprite -32, 0, 2, 8, 32x8 - subsprite 0, 0, 2, 12, 32x8 - - .align 2 -gUnknown_0839F1C8:: @ 839F1C8 - .4byte 4, Unknown_39F1A8 - - .align 2 -gSpriteAnim_839F1D0:: @ 839F1D0 - obj_image_anim_frame 0, 1 - obj_image_anim_jump 0 - - .align 2 -gSpriteAnim_839F1D8:: @ 839F1D8 - obj_image_anim_frame 0, 16 - obj_image_anim_frame 1, 16 - obj_image_anim_frame 0, 16 - obj_image_anim_frame 1, 16 - obj_image_anim_frame 0, 16 - obj_image_anim_frame 1, 16 - obj_image_anim_frame 0, 16 - obj_image_anim_frame 1, 16 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_839F1FC:: @ 839F1FC - .4byte gSpriteAnim_839F1D0 - .4byte gSpriteAnim_839F1D8 - - .align 2 -gSpriteAnimTable_839F204:: @ 839F204 - .4byte gSpriteAnim_839F1D0 - - .align 2 -gSpriteTemplate_839F208:: @ 839F208 - spr_template 0xFFFF, 4103, gOamData_839F0FC, gSpriteAnimTable_839F1FC, gSpriteImageTable_839F158, gDummySpriteAffineAnimTable, SpriteCB_PokeballGlow - - .align 2 -gSpriteTemplate_839F220:: @ 839F220 - spr_template 0xFFFF, 4100, gOamData_839F104, gSpriteAnimTable_839F1FC, gSpriteImageTable_839F160, gDummySpriteAffineAnimTable, SpriteCB_PokecenterMonitor - - .align 2 -gSpriteTemplate_839F238:: @ 839F238 - spr_template 0xFFFF, 4112, gOamData_839F104, gSpriteAnimTable_839F204, gSpriteImageTable_839F170, gDummySpriteAffineAnimTable, SpriteCB_HallOfFameMonitor - - .align 2 -gSpriteTemplate_839F250:: @ 839F250 - spr_template 0xFFFF, 4112, gOamData_839F150, gSpriteAnimTable_839F204, gSpriteImageTable_839F178, gDummySpriteAffineAnimTable, SpriteCB_HallOfFameMonitor - - .align 2 -gUnknown_0839F268:: @ 839F268 - .4byte PokecenterHealEffect_0 - .4byte PokecenterHealEffect_1 - .4byte PokecenterHealEffect_2 - .4byte PokecenterHealEffect_3 - - .align 2 -gUnknown_0839F278:: @ 839F278 - .4byte HallOfFameRecordEffect_0 - .4byte HallOfFameRecordEffect_1 - .4byte HallOfFameRecordEffect_2 - .4byte HallOfFameRecordEffect_3 - - .align 2 -gUnknown_0839F288:: @ 839F288 - .4byte PokeballGlowEffect_0 - .4byte PokeballGlowEffect_1 - .4byte PokeballGlowEffect_2 - .4byte PokeballGlowEffect_3 - .4byte PokeballGlowEffect_4 - .4byte PokeballGlowEffect_5 - .4byte PokeballGlowEffect_6 - .4byte PokeballGlowEffect_7 - -gUnknown_0839F2A8:: @ 839F2A8 - .2byte 0, 0 - .2byte 6, 0 - .2byte 0, 4 - .2byte 6, 4 - .2byte 0, 8 - .2byte 6, 8 - -gUnknown_0839F2C0:: @ 839F2C0 - .byte 16, 12, 8, 0 - -gUnknown_0839F2C4:: @ 839F2C4 - .byte 16, 12, 8, 0 - -gUnknown_0839F2C8:: @ 839F2C8 - .space 4 - - .align 2 -gUnknown_0839F2CC:: @ 839F2CC - .4byte sub_80867AC - .4byte sub_8086854 - .4byte sub_8086870 - .4byte sub_80868E4 - .4byte sub_808699C - .4byte sub_80869B8 - .4byte sub_80869F8 - - .align 2 -gUnknown_0839F2E8:: @ 839F2E8 - .4byte sub_8086AA0 - .4byte sub_8086AC0 - .4byte sub_8086B30 - .4byte sub_8086B54 - .4byte sub_8086B64 - .4byte sub_8086B88 - - .align 2 -gUnknown_0839F300:: @ 839F300 - .4byte sub_8086CF4 - .4byte sub_8086D70 - .4byte sub_8086DB0 - .4byte sub_8086E10 - .4byte sub_8086E50 - .4byte sub_8086EB0 - .4byte sub_8086ED4 - - .align 2 -gUnknown_0839F31C:: @ 839F31C - .4byte sub_8086FB0 - .4byte waterfall_1_do_anim_probably - .4byte waterfall_2_wait_anim_finish_probably - .4byte sub_8087030 - .4byte sub_8087058 - - .align 2 -gUnknown_0839F330:: @ 839F330 - .4byte sub_8087124 - .4byte dive_2_unknown - .4byte dive_3_unknown - - .align 2 -gUnknown_0839F33C:: @ 839F33C - .4byte sub_808722C - .4byte sub_8087264 - .4byte sub_8087298 - .4byte sub_80872E4 - .4byte sub_80873D8 - .4byte sub_80873F4 - - .align 2 -gUnknown_0839F354:: @ 839F354 - .4byte sub_80874CC - .4byte sub_80874FC - .4byte sub_8087548 - .4byte sub_808759C - - .align 2 -gUnknown_0839F364:: @ 839F364 - .4byte sub_80876C8 - .4byte sub_80876F8 - .4byte sub_8087774 - .4byte sub_80877AC - .4byte sub_80877D4 - - .align 2 -gUnknown_0839F378:: @ 839F378 - .4byte sub_80878F4 - .4byte sub_8087914 - -gUnknown_0839F380:: @ 839F380 - .byte 1, 3, 4, 2, 1 - - .align 2 -gUnknown_0839F388:: @ 839F388 - .4byte sub_8087AA4 - .4byte sub_8087AC8 - - .align 2 -gUnknown_0839F390:: @ 839F390 - .4byte sub_8087BEC - .4byte sub_8087C14 - .4byte sub_8087CA4 - .4byte sub_8087D78 - - .align 2 -gUnknown_0839F3A0:: @ 839F3A0 - .4byte sub_8087E4C - .4byte sub_8087ED8 - .4byte sub_8087FDC - - .align 2 -gUnknown_0839F3AC:: @ 839F3AC - .4byte sub_8088150 - .4byte sub_80881C0 - .4byte sub_8088228 - .4byte sub_80882B4 - .4byte sub_80882E4 - .4byte sub_8088338 - .4byte sub_8088380 - - .align 2 -gUnknown_0839F3C8:: @ 839F3C8 - .4byte sub_80884AC - .4byte sub_80884E8 - .4byte sub_8088554 - .4byte sub_80885A8 - .4byte sub_80885D8 - .4byte sub_808860C - .4byte sub_808862C - - .align 2 -gUnknown_0839F3E4:: @ 839F3E4 - .4byte sub_8088984 - .4byte sub_80889E4 - .4byte sub_8088A30 - .4byte sub_8088A78 - .4byte sub_8088AF4 - - .align 2 -gUnknown_0839F3F8:: @ 839F3F8 - .4byte sub_8088CA0 - .4byte sub_8088CF8 - .4byte sub_8088D3C - .4byte sub_8088D94 - .4byte sub_8088DD8 - .4byte sub_8088E2C - .4byte sub_8088EB4 - .4byte sub_8088F10 - .4byte sub_8088F30 - -SpriteAffineAnim_839F41C: - obj_rot_scal_anim_frame 8, 8, -30, 0 - obj_rot_scal_anim_frame 28, 28, 0, 30 - obj_rot_scal_anim_end - -SpriteAffineAnim_839F434: - obj_rot_scal_anim_frame 256, 256, 64, 0 - obj_rot_scal_anim_frame -10, -10, 0, 22 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_0839F44C:: @ 839F44C - .4byte SpriteAffineAnim_839F41C - .4byte SpriteAffineAnim_839F434 - - .align 2 -gUnknown_0839F454:: @ 839F454 - .4byte sub_80892A0 - .4byte sub_8089354 - .4byte sub_80893C0 - .4byte sub_8089414 - .4byte sub_808948C - .4byte sub_80894C4 - .4byte fishE - -gUnknown_0839F470:: @ 839F470 - .2byte -2 - .2byte -4 - .2byte -5 - .2byte -6 - .2byte -7 - .2byte -8 - .2byte -8 - .2byte -8 - .2byte -7 - .2byte -7 - .2byte -6 - .2byte -5 - .2byte -3 - .2byte -2 - .2byte 0 - .2byte 2 - .2byte 4 - .2byte 8 diff --git a/data/graphics/pokemon/footprint_table.inc b/data/graphics/pokemon/footprint_table.inc deleted file mode 100644 index 675a3bce4..000000000 --- a/data/graphics/pokemon/footprint_table.inc +++ /dev/null @@ -1,415 +0,0 @@ - .align 2 -gMonFootprintTable:: @ 83B4EE4 - .4byte gMonFootprint_Bulbasaur - .4byte gMonFootprint_Bulbasaur - .4byte gMonFootprint_Ivysaur - .4byte gMonFootprint_Venusaur - .4byte gMonFootprint_Charmander - .4byte gMonFootprint_Charmeleon - .4byte gMonFootprint_Charizard - .4byte gMonFootprint_Squirtle - .4byte gMonFootprint_Wartortle - .4byte gMonFootprint_Blastoise - .4byte gMonFootprint_Caterpie - .4byte gMonFootprint_Metapod - .4byte gMonFootprint_Butterfree - .4byte gMonFootprint_Weedle - .4byte gMonFootprint_Kakuna - .4byte gMonFootprint_Beedrill - .4byte gMonFootprint_Pidgey - .4byte gMonFootprint_Pidgeotto - .4byte gMonFootprint_Pidgeot - .4byte gMonFootprint_Rattata - .4byte gMonFootprint_Raticate - .4byte gMonFootprint_Spearow - .4byte gMonFootprint_Fearow - .4byte gMonFootprint_Ekans - .4byte gMonFootprint_Arbok - .4byte gMonFootprint_Pikachu - .4byte gMonFootprint_Raichu - .4byte gMonFootprint_Sandshrew - .4byte gMonFootprint_Sandslash - .4byte gMonFootprint_NidoranF - .4byte gMonFootprint_Nidorina - .4byte gMonFootprint_Nidoqueen - .4byte gMonFootprint_NidoranM - .4byte gMonFootprint_Nidorino - .4byte gMonFootprint_Nidoking - .4byte gMonFootprint_Clefairy - .4byte gMonFootprint_Clefable - .4byte gMonFootprint_Vulpix - .4byte gMonFootprint_Ninetales - .4byte gMonFootprint_Jigglypuff - .4byte gMonFootprint_Wigglytuff - .4byte gMonFootprint_Zubat - .4byte gMonFootprint_Golbat - .4byte gMonFootprint_Oddish - .4byte gMonFootprint_Gloom - .4byte gMonFootprint_Vileplume - .4byte gMonFootprint_Paras - .4byte gMonFootprint_Parasect - .4byte gMonFootprint_Venonat - .4byte gMonFootprint_Venomoth - .4byte gMonFootprint_Diglett - .4byte gMonFootprint_Dugtrio - .4byte gMonFootprint_Meowth - .4byte gMonFootprint_Persian - .4byte gMonFootprint_Psyduck - .4byte gMonFootprint_Golduck - .4byte gMonFootprint_Mankey - .4byte gMonFootprint_Primeape - .4byte gMonFootprint_Growlithe - .4byte gMonFootprint_Arcanine - .4byte gMonFootprint_Poliwag - .4byte gMonFootprint_Poliwhirl - .4byte gMonFootprint_Poliwrath - .4byte gMonFootprint_Abra - .4byte gMonFootprint_Kadabra - .4byte gMonFootprint_Alakazam - .4byte gMonFootprint_Machop - .4byte gMonFootprint_Machoke - .4byte gMonFootprint_Machamp - .4byte gMonFootprint_Bellsprout - .4byte gMonFootprint_Weepinbell - .4byte gMonFootprint_Victreebel - .4byte gMonFootprint_Tentacool - .4byte gMonFootprint_Tentacruel - .4byte gMonFootprint_Geodude - .4byte gMonFootprint_Graveler - .4byte gMonFootprint_Golem - .4byte gMonFootprint_Ponyta - .4byte gMonFootprint_Rapidash - .4byte gMonFootprint_Slowpoke - .4byte gMonFootprint_Slowbro - .4byte gMonFootprint_Magnemite - .4byte gMonFootprint_Magneton - .4byte gMonFootprint_Farfetchd - .4byte gMonFootprint_Doduo - .4byte gMonFootprint_Dodrio - .4byte gMonFootprint_Seel - .4byte gMonFootprint_Dewgong - .4byte gMonFootprint_Grimer - .4byte gMonFootprint_Muk - .4byte gMonFootprint_Shellder - .4byte gMonFootprint_Cloyster - .4byte gMonFootprint_Gastly - .4byte gMonFootprint_Haunter - .4byte gMonFootprint_Gengar - .4byte gMonFootprint_Onix - .4byte gMonFootprint_Drowzee - .4byte gMonFootprint_Hypno - .4byte gMonFootprint_Krabby - .4byte gMonFootprint_Kingler - .4byte gMonFootprint_Voltorb - .4byte gMonFootprint_Electrode - .4byte gMonFootprint_Exeggcute - .4byte gMonFootprint_Exeggutor - .4byte gMonFootprint_Cubone - .4byte gMonFootprint_Marowak - .4byte gMonFootprint_Hitmonlee - .4byte gMonFootprint_Hitmonchan - .4byte gMonFootprint_Lickitung - .4byte gMonFootprint_Koffing - .4byte gMonFootprint_Weezing - .4byte gMonFootprint_Rhyhorn - .4byte gMonFootprint_Rhydon - .4byte gMonFootprint_Chansey - .4byte gMonFootprint_Tangela - .4byte gMonFootprint_Kangaskhan - .4byte gMonFootprint_Horsea - .4byte gMonFootprint_Seadra - .4byte gMonFootprint_Goldeen - .4byte gMonFootprint_Seaking - .4byte gMonFootprint_Staryu - .4byte gMonFootprint_Starmie - .4byte gMonFootprint_Mrmime - .4byte gMonFootprint_Scyther - .4byte gMonFootprint_Jynx - .4byte gMonFootprint_Electabuzz - .4byte gMonFootprint_Magmar - .4byte gMonFootprint_Pinsir - .4byte gMonFootprint_Tauros - .4byte gMonFootprint_Magikarp - .4byte gMonFootprint_Gyarados - .4byte gMonFootprint_Lapras - .4byte gMonFootprint_Ditto - .4byte gMonFootprint_Eevee - .4byte gMonFootprint_Vaporeon - .4byte gMonFootprint_Jolteon - .4byte gMonFootprint_Flareon - .4byte gMonFootprint_Porygon - .4byte gMonFootprint_Omanyte - .4byte gMonFootprint_Omastar - .4byte gMonFootprint_Kabuto - .4byte gMonFootprint_Kabutops - .4byte gMonFootprint_Aerodactyl - .4byte gMonFootprint_Snorlax - .4byte gMonFootprint_Articuno - .4byte gMonFootprint_Zapdos - .4byte gMonFootprint_Moltres - .4byte gMonFootprint_Dratini - .4byte gMonFootprint_Dragonair - .4byte gMonFootprint_Dragonite - .4byte gMonFootprint_Mewtwo - .4byte gMonFootprint_Mew - .4byte gMonFootprint_Chikorita - .4byte gMonFootprint_Bayleef - .4byte gMonFootprint_Meganium - .4byte gMonFootprint_Cyndaquil - .4byte gMonFootprint_Quilava - .4byte gMonFootprint_Typhlosion - .4byte gMonFootprint_Totodile - .4byte gMonFootprint_Croconaw - .4byte gMonFootprint_Feraligatr - .4byte gMonFootprint_Sentret - .4byte gMonFootprint_Furret - .4byte gMonFootprint_Hoothoot - .4byte gMonFootprint_Noctowl - .4byte gMonFootprint_Ledyba - .4byte gMonFootprint_Ledian - .4byte gMonFootprint_Spinarak - .4byte gMonFootprint_Ariados - .4byte gMonFootprint_Crobat - .4byte gMonFootprint_Chinchou - .4byte gMonFootprint_Lanturn - .4byte gMonFootprint_Pichu - .4byte gMonFootprint_Cleffa - .4byte gMonFootprint_Igglybuff - .4byte gMonFootprint_Togepi - .4byte gMonFootprint_Togetic - .4byte gMonFootprint_Natu - .4byte gMonFootprint_Xatu - .4byte gMonFootprint_Mareep - .4byte gMonFootprint_Flaaffy - .4byte gMonFootprint_Ampharos - .4byte gMonFootprint_Bellossom - .4byte gMonFootprint_Marill - .4byte gMonFootprint_Azumarill - .4byte gMonFootprint_Sudowoodo - .4byte gMonFootprint_Politoed - .4byte gMonFootprint_Hoppip - .4byte gMonFootprint_Skiploom - .4byte gMonFootprint_Jumpluff - .4byte gMonFootprint_Aipom - .4byte gMonFootprint_Sunkern - .4byte gMonFootprint_Sunflora - .4byte gMonFootprint_Yanma - .4byte gMonFootprint_Wooper - .4byte gMonFootprint_Quagsire - .4byte gMonFootprint_Espeon - .4byte gMonFootprint_Umbreon - .4byte gMonFootprint_Murkrow - .4byte gMonFootprint_Slowking - .4byte gMonFootprint_Misdreavus - .4byte gMonFootprint_Unown - .4byte gMonFootprint_Wobbuffet - .4byte gMonFootprint_Girafarig - .4byte gMonFootprint_Pineco - .4byte gMonFootprint_Forretress - .4byte gMonFootprint_Dunsparce - .4byte gMonFootprint_Gligar - .4byte gMonFootprint_Steelix - .4byte gMonFootprint_Snubbull - .4byte gMonFootprint_Granbull - .4byte gMonFootprint_Qwilfish - .4byte gMonFootprint_Scizor - .4byte gMonFootprint_Shuckle - .4byte gMonFootprint_Heracross - .4byte gMonFootprint_Sneasel - .4byte gMonFootprint_Teddiursa - .4byte gMonFootprint_Ursaring - .4byte gMonFootprint_Slugma - .4byte gMonFootprint_Magcargo - .4byte gMonFootprint_Swinub - .4byte gMonFootprint_Piloswine - .4byte gMonFootprint_Corsola - .4byte gMonFootprint_Remoraid - .4byte gMonFootprint_Octillery - .4byte gMonFootprint_Delibird - .4byte gMonFootprint_Mantine - .4byte gMonFootprint_Skarmory - .4byte gMonFootprint_Houndour - .4byte gMonFootprint_Houndoom - .4byte gMonFootprint_Kingdra - .4byte gMonFootprint_Phanpy - .4byte gMonFootprint_Donphan - .4byte gMonFootprint_Porygon2 - .4byte gMonFootprint_Stantler - .4byte gMonFootprint_Smeargle - .4byte gMonFootprint_Tyrogue - .4byte gMonFootprint_Hitmontop - .4byte gMonFootprint_Smoochum - .4byte gMonFootprint_Elekid - .4byte gMonFootprint_Magby - .4byte gMonFootprint_Miltank - .4byte gMonFootprint_Blissey - .4byte gMonFootprint_Raikou - .4byte gMonFootprint_Entei - .4byte gMonFootprint_Suicune - .4byte gMonFootprint_Larvitar - .4byte gMonFootprint_Pupitar - .4byte gMonFootprint_Tyranitar - .4byte gMonFootprint_Lugia - .4byte gMonFootprint_HoOh - .4byte gMonFootprint_Celebi - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_Treecko - .4byte gMonFootprint_Grovyle - .4byte gMonFootprint_Sceptile - .4byte gMonFootprint_Torchic - .4byte gMonFootprint_Combusken - .4byte gMonFootprint_Blaziken - .4byte gMonFootprint_Mudkip - .4byte gMonFootprint_Marshtomp - .4byte gMonFootprint_Swampert - .4byte gMonFootprint_Poochyena - .4byte gMonFootprint_Mightyena - .4byte gMonFootprint_Zigzagoon - .4byte gMonFootprint_Linoone - .4byte gMonFootprint_Wurmple - .4byte gMonFootprint_Silcoon - .4byte gMonFootprint_Beautifly - .4byte gMonFootprint_Cascoon - .4byte gMonFootprint_Dustox - .4byte gMonFootprint_Lotad - .4byte gMonFootprint_Lombre - .4byte gMonFootprint_Ludicolo - .4byte gMonFootprint_Seedot - .4byte gMonFootprint_Nuzleaf - .4byte gMonFootprint_Shiftry - .4byte gMonFootprint_Nincada - .4byte gMonFootprint_Ninjask - .4byte gMonFootprint_Shedinja - .4byte gMonFootprint_Taillow - .4byte gMonFootprint_Swellow - .4byte gMonFootprint_Shroomish - .4byte gMonFootprint_Breloom - .4byte gMonFootprint_Spinda - .4byte gMonFootprint_Wingull - .4byte gMonFootprint_Pelipper - .4byte gMonFootprint_Surskit - .4byte gMonFootprint_Masquerain - .4byte gMonFootprint_Wailmer - .4byte gMonFootprint_Wailord - .4byte gMonFootprint_Skitty - .4byte gMonFootprint_Delcatty - .4byte gMonFootprint_Kecleon - .4byte gMonFootprint_Baltoy - .4byte gMonFootprint_Claydol - .4byte gMonFootprint_Nosepass - .4byte gMonFootprint_Torkoal - .4byte gMonFootprint_Sableye - .4byte gMonFootprint_Barboach - .4byte gMonFootprint_Whiscash - .4byte gMonFootprint_Luvdisc - .4byte gMonFootprint_Corphish - .4byte gMonFootprint_Crawdaunt - .4byte gMonFootprint_Feebas - .4byte gMonFootprint_Milotic - .4byte gMonFootprint_Carvanha - .4byte gMonFootprint_Sharpedo - .4byte gMonFootprint_Trapinch - .4byte gMonFootprint_Vibrava - .4byte gMonFootprint_Flygon - .4byte gMonFootprint_Makuhita - .4byte gMonFootprint_Hariyama - .4byte gMonFootprint_Electrike - .4byte gMonFootprint_Manectric - .4byte gMonFootprint_Numel - .4byte gMonFootprint_Camerupt - .4byte gMonFootprint_Spheal - .4byte gMonFootprint_Sealeo - .4byte gMonFootprint_Walrein - .4byte gMonFootprint_Cacnea - .4byte gMonFootprint_Cacturne - .4byte gMonFootprint_Snorunt - .4byte gMonFootprint_Glalie - .4byte gMonFootprint_Lunatone - .4byte gMonFootprint_Solrock - .4byte gMonFootprint_Azurill - .4byte gMonFootprint_Spoink - .4byte gMonFootprint_Grumpig - .4byte gMonFootprint_Plusle - .4byte gMonFootprint_Minun - .4byte gMonFootprint_Mawile - .4byte gMonFootprint_Meditite - .4byte gMonFootprint_Medicham - .4byte gMonFootprint_Swablu - .4byte gMonFootprint_Altaria - .4byte gMonFootprint_Wynaut - .4byte gMonFootprint_Duskull - .4byte gMonFootprint_Dusclops - .4byte gMonFootprint_Roselia - .4byte gMonFootprint_Slakoth - .4byte gMonFootprint_Vigoroth - .4byte gMonFootprint_Slaking - .4byte gMonFootprint_Gulpin - .4byte gMonFootprint_Swalot - .4byte gMonFootprint_Tropius - .4byte gMonFootprint_Whismur - .4byte gMonFootprint_Loudred - .4byte gMonFootprint_Exploud - .4byte gMonFootprint_Clamperl - .4byte gMonFootprint_Huntail - .4byte gMonFootprint_Gorebyss - .4byte gMonFootprint_Absol - .4byte gMonFootprint_Shuppet - .4byte gMonFootprint_Banette - .4byte gMonFootprint_Seviper - .4byte gMonFootprint_Zangoose - .4byte gMonFootprint_Relicanth - .4byte gMonFootprint_Aron - .4byte gMonFootprint_Lairon - .4byte gMonFootprint_Aggron - .4byte gMonFootprint_Castform - .4byte gMonFootprint_Volbeat - .4byte gMonFootprint_Illumise - .4byte gMonFootprint_Lileep - .4byte gMonFootprint_Cradily - .4byte gMonFootprint_Anorith - .4byte gMonFootprint_Armaldo - .4byte gMonFootprint_Ralts - .4byte gMonFootprint_Kirlia - .4byte gMonFootprint_Gardevoir - .4byte gMonFootprint_Bagon - .4byte gMonFootprint_Shelgon - .4byte gMonFootprint_Salamence - .4byte gMonFootprint_Beldum - .4byte gMonFootprint_Metang - .4byte gMonFootprint_Metagross - .4byte gMonFootprint_Regirock - .4byte gMonFootprint_Regice - .4byte gMonFootprint_Registeel - .4byte gMonFootprint_Kyogre - .4byte gMonFootprint_Groudon - .4byte gMonFootprint_Rayquaza - .4byte gMonFootprint_Latias - .4byte gMonFootprint_Latios - .4byte gMonFootprint_Jirachi - .4byte gMonFootprint_Deoxys - .4byte gMonFootprint_Chimecho - .4byte gMonFootprint_Bulbasaur diff --git a/data/maps/UnknownMap_082CF564/border.bin b/data/maps/UnknownMap_082CF564/border.bin index 19d906679..19d906679 100755..100644 --- a/data/maps/UnknownMap_082CF564/border.bin +++ b/data/maps/UnknownMap_082CF564/border.bin diff --git a/data/maps/UnknownMap_082CF564/map.bin b/data/maps/UnknownMap_082CF564/map.bin Binary files differindex ca93fa0e2..ca93fa0e2 100755..100644 --- a/data/maps/UnknownMap_082CF564/map.bin +++ b/data/maps/UnknownMap_082CF564/map.bin diff --git a/data/maps/UnknownMap_082D05D8/border.bin b/data/maps/UnknownMap_082D05D8/border.bin index 19d906679..19d906679 100755..100644 --- a/data/maps/UnknownMap_082D05D8/border.bin +++ b/data/maps/UnknownMap_082D05D8/border.bin diff --git a/data/maps/UnknownMap_082D05D8/map.bin b/data/maps/UnknownMap_082D05D8/map.bin Binary files differindex 37f05b971..37f05b971 100755..100644 --- a/data/maps/UnknownMap_082D05D8/map.bin +++ b/data/maps/UnknownMap_082D05D8/map.bin diff --git a/data/maps/UnknownMap_082D05FC/border.bin b/data/maps/UnknownMap_082D05FC/border.bin index 19d906679..19d906679 100755..100644 --- a/data/maps/UnknownMap_082D05FC/border.bin +++ b/data/maps/UnknownMap_082D05FC/border.bin diff --git a/data/maps/UnknownMap_082D05FC/map.bin b/data/maps/UnknownMap_082D05FC/map.bin Binary files differindex ca93fa0e2..ca93fa0e2 100755..100644 --- a/data/maps/UnknownMap_082D05FC/map.bin +++ b/data/maps/UnknownMap_082D05FC/map.bin diff --git a/data/maps/UnknownMap_082E55C8/border.bin b/data/maps/UnknownMap_082E55C8/border.bin index b15c94f96..b15c94f96 100755..100644 --- a/data/maps/UnknownMap_082E55C8/border.bin +++ b/data/maps/UnknownMap_082E55C8/border.bin diff --git a/data/maps/UnknownMap_082E55C8/map.bin b/data/maps/UnknownMap_082E55C8/map.bin Binary files differindex 22a47d94e..22a47d94e 100755..100644 --- a/data/maps/UnknownMap_082E55C8/map.bin +++ b/data/maps/UnknownMap_082E55C8/map.bin diff --git a/data/maps/UnknownMap_082E55EC/border.bin b/data/maps/UnknownMap_082E55EC/border.bin index b15c94f96..b15c94f96 100755..100644 --- a/data/maps/UnknownMap_082E55EC/border.bin +++ b/data/maps/UnknownMap_082E55EC/border.bin diff --git a/data/maps/UnknownMap_082E55EC/map.bin b/data/maps/UnknownMap_082E55EC/map.bin Binary files differindex 22a47d94e..22a47d94e 100755..100644 --- a/data/maps/UnknownMap_082E55EC/map.bin +++ b/data/maps/UnknownMap_082E55EC/map.bin diff --git a/data/maps/UnknownMap_082E5610/border.bin b/data/maps/UnknownMap_082E5610/border.bin index b15c94f96..b15c94f96 100755..100644 --- a/data/maps/UnknownMap_082E5610/border.bin +++ b/data/maps/UnknownMap_082E5610/border.bin diff --git a/data/maps/UnknownMap_082E5610/map.bin b/data/maps/UnknownMap_082E5610/map.bin Binary files differindex 22a47d94e..22a47d94e 100755..100644 --- a/data/maps/UnknownMap_082E5610/map.bin +++ b/data/maps/UnknownMap_082E5610/map.bin diff --git a/data/maps/UnknownMap_082E5634/border.bin b/data/maps/UnknownMap_082E5634/border.bin index b15c94f96..b15c94f96 100755..100644 --- a/data/maps/UnknownMap_082E5634/border.bin +++ b/data/maps/UnknownMap_082E5634/border.bin diff --git a/data/maps/UnknownMap_082E5634/map.bin b/data/maps/UnknownMap_082E5634/map.bin Binary files differindex 22a47d94e..22a47d94e 100755..100644 --- a/data/maps/UnknownMap_082E5634/map.bin +++ b/data/maps/UnknownMap_082E5634/map.bin diff --git a/data/maps/UnknownMap_082E5658/border.bin b/data/maps/UnknownMap_082E5658/border.bin index b15c94f96..b15c94f96 100755..100644 --- a/data/maps/UnknownMap_082E5658/border.bin +++ b/data/maps/UnknownMap_082E5658/border.bin diff --git a/data/maps/UnknownMap_082E5658/map.bin b/data/maps/UnknownMap_082E5658/map.bin Binary files differindex 22a47d94e..22a47d94e 100755..100644 --- a/data/maps/UnknownMap_082E5658/map.bin +++ b/data/maps/UnknownMap_082E5658/map.bin diff --git a/data/maps/UnknownMap_082E567C/border.bin b/data/maps/UnknownMap_082E567C/border.bin index b15c94f96..b15c94f96 100755..100644 --- a/data/maps/UnknownMap_082E567C/border.bin +++ b/data/maps/UnknownMap_082E567C/border.bin diff --git a/data/maps/UnknownMap_082E567C/map.bin b/data/maps/UnknownMap_082E567C/map.bin Binary files differindex 22a47d94e..22a47d94e 100755..100644 --- a/data/maps/UnknownMap_082E567C/map.bin +++ b/data/maps/UnknownMap_082E567C/map.bin diff --git a/data/maps/UnknownMap_082E56A0/border.bin b/data/maps/UnknownMap_082E56A0/border.bin index b15c94f96..b15c94f96 100755..100644 --- a/data/maps/UnknownMap_082E56A0/border.bin +++ b/data/maps/UnknownMap_082E56A0/border.bin diff --git a/data/maps/UnknownMap_082E56A0/map.bin b/data/maps/UnknownMap_082E56A0/map.bin Binary files differindex 22a47d94e..22a47d94e 100755..100644 --- a/data/maps/UnknownMap_082E56A0/map.bin +++ b/data/maps/UnknownMap_082E56A0/map.bin diff --git a/data/maps/UnknownMap_082E56C4/border.bin b/data/maps/UnknownMap_082E56C4/border.bin index b15c94f96..b15c94f96 100755..100644 --- a/data/maps/UnknownMap_082E56C4/border.bin +++ b/data/maps/UnknownMap_082E56C4/border.bin diff --git a/data/maps/UnknownMap_082E56C4/map.bin b/data/maps/UnknownMap_082E56C4/map.bin Binary files differindex 22a47d94e..22a47d94e 100755..100644 --- a/data/maps/UnknownMap_082E56C4/map.bin +++ b/data/maps/UnknownMap_082E56C4/map.bin diff --git a/data/maps/UnknownMap_082E56E8/border.bin b/data/maps/UnknownMap_082E56E8/border.bin index b15c94f96..b15c94f96 100755..100644 --- a/data/maps/UnknownMap_082E56E8/border.bin +++ b/data/maps/UnknownMap_082E56E8/border.bin diff --git a/data/maps/UnknownMap_082E56E8/map.bin b/data/maps/UnknownMap_082E56E8/map.bin Binary files differindex 22a47d94e..22a47d94e 100755..100644 --- a/data/maps/UnknownMap_082E56E8/map.bin +++ b/data/maps/UnknownMap_082E56E8/map.bin diff --git a/data/maps/UnknownMap_082E570C/border.bin b/data/maps/UnknownMap_082E570C/border.bin index b15c94f96..b15c94f96 100755..100644 --- a/data/maps/UnknownMap_082E570C/border.bin +++ b/data/maps/UnknownMap_082E570C/border.bin diff --git a/data/maps/UnknownMap_082E570C/map.bin b/data/maps/UnknownMap_082E570C/map.bin Binary files differindex 22a47d94e..22a47d94e 100755..100644 --- a/data/maps/UnknownMap_082E570C/map.bin +++ b/data/maps/UnknownMap_082E570C/map.bin diff --git a/data/maps/UnknownMap_082E5730/border.bin b/data/maps/UnknownMap_082E5730/border.bin index b15c94f96..b15c94f96 100755..100644 --- a/data/maps/UnknownMap_082E5730/border.bin +++ b/data/maps/UnknownMap_082E5730/border.bin diff --git a/data/maps/UnknownMap_082E5730/map.bin b/data/maps/UnknownMap_082E5730/map.bin Binary files differindex 22a47d94e..22a47d94e 100755..100644 --- a/data/maps/UnknownMap_082E5730/map.bin +++ b/data/maps/UnknownMap_082E5730/map.bin diff --git a/data/maps/UnknownMap_082E5754/border.bin b/data/maps/UnknownMap_082E5754/border.bin index b15c94f96..b15c94f96 100755..100644 --- a/data/maps/UnknownMap_082E5754/border.bin +++ b/data/maps/UnknownMap_082E5754/border.bin diff --git a/data/maps/UnknownMap_082E5754/map.bin b/data/maps/UnknownMap_082E5754/map.bin Binary files differindex 22a47d94e..22a47d94e 100755..100644 --- a/data/maps/UnknownMap_082E5754/map.bin +++ b/data/maps/UnknownMap_082E5754/map.bin diff --git a/data/maps/UnknownMap_082E5778/border.bin b/data/maps/UnknownMap_082E5778/border.bin index b15c94f96..b15c94f96 100755..100644 --- a/data/maps/UnknownMap_082E5778/border.bin +++ b/data/maps/UnknownMap_082E5778/border.bin diff --git a/data/maps/UnknownMap_082E5778/map.bin b/data/maps/UnknownMap_082E5778/map.bin Binary files differindex 22a47d94e..22a47d94e 100755..100644 --- a/data/maps/UnknownMap_082E5778/map.bin +++ b/data/maps/UnknownMap_082E5778/map.bin diff --git a/data/maps/UnknownMap_082E579C/border.bin b/data/maps/UnknownMap_082E579C/border.bin index b15c94f96..b15c94f96 100755..100644 --- a/data/maps/UnknownMap_082E579C/border.bin +++ b/data/maps/UnknownMap_082E579C/border.bin diff --git a/data/maps/UnknownMap_082E579C/map.bin b/data/maps/UnknownMap_082E579C/map.bin Binary files differindex 22a47d94e..22a47d94e 100755..100644 --- a/data/maps/UnknownMap_082E579C/map.bin +++ b/data/maps/UnknownMap_082E579C/map.bin diff --git a/data/maps/UnknownMap_082EDF30/border.bin b/data/maps/UnknownMap_082EDF30/border.bin index 9e4b3fb7a..9e4b3fb7a 100755..100644 --- a/data/maps/UnknownMap_082EDF30/border.bin +++ b/data/maps/UnknownMap_082EDF30/border.bin diff --git a/data/maps/UnknownMap_082EDF30/map.bin b/data/maps/UnknownMap_082EDF30/map.bin index 028da0526..028da0526 100755..100644 --- a/data/maps/UnknownMap_082EDF30/map.bin +++ b/data/maps/UnknownMap_082EDF30/map.bin diff --git a/data/maps/UnknownMap_082FF894/border.bin b/data/maps/UnknownMap_082FF894/border.bin index f1629c020..f1629c020 100755..100644 --- a/data/maps/UnknownMap_082FF894/border.bin +++ b/data/maps/UnknownMap_082FF894/border.bin diff --git a/data/maps/UnknownMap_082FF894/map.bin b/data/maps/UnknownMap_082FF894/map.bin Binary files differindex fd294d9b6..fd294d9b6 100755..100644 --- a/data/maps/UnknownMap_082FF894/map.bin +++ b/data/maps/UnknownMap_082FF894/map.bin diff --git a/data/maps/UnknownMap_08302970/border.bin b/data/maps/UnknownMap_08302970/border.bin index c3fe51511..c3fe51511 100755..100644 --- a/data/maps/UnknownMap_08302970/border.bin +++ b/data/maps/UnknownMap_08302970/border.bin diff --git a/data/maps/UnknownMap_08302970/map.bin b/data/maps/UnknownMap_08302970/map.bin index dd82c58d3..dd82c58d3 100755..100644 --- a/data/maps/UnknownMap_08302970/map.bin +++ b/data/maps/UnknownMap_08302970/map.bin diff --git a/data/maps/UnknownMap_083041B4/border.bin b/data/maps/UnknownMap_083041B4/border.bin index f0eabd248..f0eabd248 100755..100644 --- a/data/maps/UnknownMap_083041B4/border.bin +++ b/data/maps/UnknownMap_083041B4/border.bin diff --git a/data/maps/UnknownMap_083041B4/map.bin b/data/maps/UnknownMap_083041B4/map.bin index ec344933f..ec344933f 100755..100644 --- a/data/maps/UnknownMap_083041B4/map.bin +++ b/data/maps/UnknownMap_083041B4/map.bin diff --git a/data/maps/UnreferencedMap/border.bin b/data/maps/UnreferencedMap/border.bin index c3fe51511..c3fe51511 100755..100644 --- a/data/maps/UnreferencedMap/border.bin +++ b/data/maps/UnreferencedMap/border.bin diff --git a/data/maps/UnreferencedMap/map.bin b/data/maps/UnreferencedMap/map.bin index 17a14a8d5..17a14a8d5 100755..100644 --- a/data/maps/UnreferencedMap/map.bin +++ b/data/maps/UnreferencedMap/map.bin diff --git a/data/player_pc.s b/data/player_pc.s deleted file mode 100644 index 200ae19c2..000000000 --- a/data/player_pc.s +++ /dev/null @@ -1,77 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gUnknown_08406288:: @ 8406288 - .4byte PCText_TakeOutItems - .4byte PCText_StoreItems - .4byte PCText_ThrowAwayItems - .4byte gMenuText_GoBackToPrev - - .align 2 -gUnknown_08406298:: @ 8406298 - .4byte SecretBaseText_ItemStorage, PlayerPC_ItemStorage - .4byte gPCText_Mailbox, PlayerPC_Mailbox - .4byte SecretBaseText_Decoration, PlayerPC_Decoration - .4byte SecretBaseText_TurnOff, PlayerPC_TurnOff - -gUnknown_084062B8:: @ 84062B8 - .byte 0, 1, 2, 3 - -gUnknown_084062BC:: @ 84062BC - .byte 0, 1, 3 - - .align 2 -gUnknown_084062C0:: @ 84062C0 - .4byte PCText_WithdrawItem, ItemStorage_Withdraw - .4byte PCText_DepositItem, ItemStorage_Deposit - .4byte PCText_TossItem, ItemStorage_Toss - .4byte gUnknownText_Exit, ItemStorage_Exit - - .align 2 -gUnknown_084062E0:: @ 84062E0 - .4byte sub_813A83C - .4byte sub_813A878 - - .align 2 -gUnknown_084062E8:: @ 84062E8 - .4byte sub_813B578 - .4byte sub_813B610 - - .align 2 -gNewGamePCItems:: @ 84062F0 - .2byte ITEM_POTION, 1 - .2byte ITEM_NONE, 0 - - .align 2 -gUnknown_084062F8:: @ 84062F8 - .4byte OtherText_Read, Mailbox_Read - .4byte gOtherText_MoveToBag, Mailbox_MoveToBag - .4byte OtherText_Give, Mailbox_Give - .4byte gOtherText_CancelNoTerminator, Mailbox_Cancel - -gUnknown_08406318:: @ 8406318 - .string "{STR_VAR_1}{CLEAR_TO 80}$" - -gUnknown_0840631E:: @ 840631E - .string "{COLOR RED}{STR_VAR_1}{CLEAR_TO 80}$" - -gUnknown_08406327:: @ 8406327 - .string "{STR_VAR_1}$" - -gUnknown_0840632A:: @ 840632A - .string "{COLOR RED}{STR_VAR_1}$" - -gUnknown_08406330:: @ 8406330 - .string "{CLEAR_TO 32}$" - - .align 1 -gUnknown_08406334:: @ 8406334 - .2byte 0x5294 - .2byte 0x6B5A - .2byte 0x7FFF - -gUnknown_0840633A:: @ 840633A - .string "{COLOR RED}{STR_VAR_1}$" diff --git a/data/pokeball.s b/data/pokeball.s deleted file mode 100644 index 788f8bdb7..000000000 --- a/data/pokeball.s +++ /dev/null @@ -1,137 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gUnknown_0820A92C:: @ 820A92C - obj_tiles gInterfaceGfx_PokeBall, 384, 0xd6d8 @ poke - obj_tiles gInterfaceGfx_GreatBall, 384, 0xd6d9 @ great - obj_tiles gInterfaceGfx_SafariBall, 384, 0xd6da @ safari - obj_tiles gInterfaceGfx_UltraBall, 384, 0xd6db @ ultra - obj_tiles gInterfaceGfx_MasterBall, 384, 0xd6dc @ master - obj_tiles gInterfaceGfx_NetBall, 384, 0xd6dd @ net - obj_tiles gInterfaceGfx_DiveBall, 384, 0xd6de @ dive - obj_tiles gInterfaceGfx_NestBall, 384, 0xd6df @ nest - obj_tiles gInterfaceGfx_RepeatBall, 384, 0xd6e0 @ repeat - obj_tiles gInterfaceGfx_TimerBall, 384, 0xd6e1 @ timer - obj_tiles gInterfaceGfx_LuxuryBall, 384, 0xd6e2 @ luxury - obj_tiles gInterfaceGfx_PremierBall, 384, 0xd6e3 @ premier - - .align 2 -gUnknown_0820A98C:: @ 820A98C - obj_pal gInterfacePal_PokeBall, 0xD6D8 @ poke - obj_pal gInterfacePal_GreatBall, 0xD6D9 @ great - obj_pal gInterfacePal_SafariBall, 0xD6DA @ safari - obj_pal gInterfacePal_UltraBall, 0xD6DB @ ultra - obj_pal gInterfacePal_MasterBall, 0xD6DC @ master - obj_pal gInterfacePal_NetBall, 0xD6DD @ net - obj_pal gInterfacePal_DiveBall, 0xD6DE @ dive - obj_pal gInterfacePal_NestBall, 0xD6DF @ nest - obj_pal gInterfacePal_RepeatBall, 0xD6E0 @ repeat - obj_pal gInterfacePal_TimerBall, 0xD6E1 @ timer - obj_pal gInterfacePal_LuxuryBall, 0xD6E2 @ luxury - obj_pal gInterfacePal_PremierBall, 0xD6E3 @ premier - - .align 2 -gOamData_820A9EC:: @ 820A9EC - .2byte 0x0300 - .2byte 0x4000 - .2byte 0x0800 - - .align 2 -gSpriteAnim_820A9F4: @ 820A9F4 - obj_image_anim_frame 0, 5 - obj_image_anim_jump 0 - - .align 2 -gSpriteAnim_820A9FC: @ 820A9FC - obj_image_anim_frame 4, 1 - obj_image_anim_jump 0 - - .align 2 -gSpriteAnim_820AA04: @ 820AA04 - obj_image_anim_frame 8, 5 - obj_image_anim_jump 0 - - .align 2 -gSpriteAnim_820AA0C: @ 820AA0C - obj_image_anim_frame 12, 1 - obj_image_anim_jump 0 - - .align 2 -gSpriteAnim_820AA14:: @ 820AA14 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gSpriteAnim_820AA1C:: @ 820AA1C - obj_image_anim_frame 4, 5 - obj_image_anim_frame 8, 5 - obj_image_anim_end - - .align 2 -gSpriteAnim_820AA28:: @ 820AA28 - obj_image_anim_frame 4, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_820AA34:: @ 820AA34 - .4byte gSpriteAnim_820AA14 - .4byte gSpriteAnim_820AA1C - .4byte gSpriteAnim_820AA28 - - @ unused? - .4byte gSpriteAnim_820A9F4 - .4byte gSpriteAnim_820AA04 - .4byte gSpriteAnim_820A9FC - .4byte gSpriteAnim_820AA0C - - .align 2 -gSpriteAffineAnim_820AA50:: @ 820AA50 - obj_rot_scal_anim_frame 0x0, 0x0, 0, 1 - obj_rot_scal_anim_jump 0 - - .align 2 -gSpriteAffineAnim_820AA60:: @ 820AA60 - obj_rot_scal_anim_frame 0x0, 0x0, -3, 1 - obj_rot_scal_anim_jump 0 - - .align 2 -gSpriteAffineAnim_820AA70:: @ 820AA70 - obj_rot_scal_anim_frame 0x0, 0x0, 3, 1 - obj_rot_scal_anim_jump 0 - - .align 2 -gSpriteAffineAnim_820AA80:: @ 820AA80 - obj_rot_scal_anim_frame 0x100, 0x100, 0, 0 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnim_820AA90:: @ 820AA90 - obj_rot_scal_anim_frame 0x0, 0x0, 25, 1 - obj_rot_scal_anim_jump 0 - - .align 2 -gSpriteAffineAnimTable_820AAA0:: @ 820AAA0 - .4byte gSpriteAffineAnim_820AA50 - .4byte gSpriteAffineAnim_820AA60 - .4byte gSpriteAffineAnim_820AA70 - .4byte gSpriteAffineAnim_820AA80 - .4byte gSpriteAffineAnim_820AA90 - - .align 2 -gSpriteTemplate_820AAB4:: @ 820AAB4 - spr_template 55000, 55000, gOamData_820A9EC, gSpriteAnimTable_820AA34, NULL, gSpriteAffineAnimTable_820AAA0, objc_0804ABD4 - spr_template 55001, 55001, gOamData_820A9EC, gSpriteAnimTable_820AA34, NULL, gSpriteAffineAnimTable_820AAA0, objc_0804ABD4 - spr_template 55002, 55002, gOamData_820A9EC, gSpriteAnimTable_820AA34, NULL, gSpriteAffineAnimTable_820AAA0, objc_0804ABD4 - spr_template 55003, 55003, gOamData_820A9EC, gSpriteAnimTable_820AA34, NULL, gSpriteAffineAnimTable_820AAA0, objc_0804ABD4 - spr_template 55004, 55004, gOamData_820A9EC, gSpriteAnimTable_820AA34, NULL, gSpriteAffineAnimTable_820AAA0, objc_0804ABD4 - spr_template 55005, 55005, gOamData_820A9EC, gSpriteAnimTable_820AA34, NULL, gSpriteAffineAnimTable_820AAA0, objc_0804ABD4 - spr_template 55006, 55006, gOamData_820A9EC, gSpriteAnimTable_820AA34, NULL, gSpriteAffineAnimTable_820AAA0, objc_0804ABD4 - spr_template 55007, 55007, gOamData_820A9EC, gSpriteAnimTable_820AA34, NULL, gSpriteAffineAnimTable_820AAA0, objc_0804ABD4 - spr_template 55008, 55008, gOamData_820A9EC, gSpriteAnimTable_820AA34, NULL, gSpriteAffineAnimTable_820AAA0, objc_0804ABD4 - spr_template 55009, 55009, gOamData_820A9EC, gSpriteAnimTable_820AA34, NULL, gSpriteAffineAnimTable_820AAA0, objc_0804ABD4 - spr_template 55010, 55010, gOamData_820A9EC, gSpriteAnimTable_820AA34, NULL, gSpriteAffineAnimTable_820AAA0, objc_0804ABD4 - spr_template 55011, 55011, gOamData_820A9EC, gSpriteAnimTable_820AA34, NULL, gSpriteAffineAnimTable_820AAA0, objc_0804ABD4 diff --git a/data/pokedex.s b/data/pokedex.s deleted file mode 100644 index a9ee7a9be..000000000 --- a/data/pokedex.s +++ /dev/null @@ -1,538 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gUnknown_0839F67C:: @ 839F67C - .incbin "graphics/pokedex/search.gbapal" - - .align 2 -gUnknown_0839F73C:: @ 839F73C - .incbin "graphics/pokedex/national.gbapal" - - .space 0xA4 - - .align 2 -gUnknown_0839F8A0:: @ 839F8A0 - .incbin "graphics/pokedex/pokedex_cry_layout.bin.lz" - - .align 2 -gUnknown_0839F988:: @ 839F988 - .incbin "graphics/pokedex/pokedex_size_layout.bin.lz" - -gUnknown_0839FA7C:: @ 839FA7C - .incbin "graphics/pokedex/noball.4bpp.lz" - -@ 839FAC4 - .include "data/pokedex_orders.inc" - - .align 2 -gOamData_83A0404:: @ 83A0404 - .2byte 0x00A0 - .2byte 0x0000 - .2byte 0x0400 - - .align 2 -gOamData_83A040C:: @ 83A040C - .2byte 0x40A0 - .2byte 0x0000 - .2byte 0x0000 - - .align 2 -gOamData_83A0414:: @ 83A0414 - .2byte 0x40A0 - .2byte 0xC000 - .2byte 0x0000 - - .align 2 -gOamData_83A041C:: @ 83A041C - .2byte 0x08A0 - .2byte 0x8000 - .2byte 0x0400 - - .align 2 -gOamData_83A0424:: @ 83A0424 - .2byte 0x40A0 - .2byte 0xC000 - .2byte 0x0000 - - .align 2 -gOamData_83A042C:: @ 83A042C - .2byte 0x80A0 - .2byte 0x0000 - .2byte 0x0000 - - .align 2 -gSpriteAnim_83A0434:: @ 83A0434 - obj_image_anim_frame 3, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83A043C:: @ 83A043C - obj_image_anim_frame 1, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83A0444:: @ 83A0444 - obj_image_anim_frame 16, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83A044C:: @ 83A044C - obj_image_anim_frame 32, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83A0454:: @ 83A0454 - obj_image_anim_frame 64, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83A045C:: @ 83A045C - obj_image_anim_frame 96, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83A0464:: @ 83A0464 - obj_image_anim_frame 128, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83A046C:: @ 83A046C - obj_image_anim_frame 160, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83A0474:: @ 83A0474 - obj_image_anim_frame 192, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83A047C:: @ 83A047C - obj_image_anim_frame 224, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83A0484:: @ 83A0484 - obj_image_anim_frame 226, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83A048C:: @ 83A048C - obj_image_anim_frame 228, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83A0494:: @ 83A0494 - obj_image_anim_frame 230, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83A049C:: @ 83A049C - obj_image_anim_frame 232, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83A04A4:: @ 83A04A4 - obj_image_anim_frame 234, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83A04AC:: @ 83A04AC - obj_image_anim_frame 236, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83A04B4:: @ 83A04B4 - obj_image_anim_frame 238, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83A04BC:: @ 83A04BC - obj_image_anim_frame 240, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83A04C4:: @ 83A04C4 - obj_image_anim_frame 242, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83A04CC:: @ 83A04CC - obj_image_anim_frame 4, 30 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83A04D4:: @ 83A04D4 - .4byte gSpriteAnim_83A0434 - - .align 2 -gSpriteAnimTable_83A04D8:: @ 83A04D8 - .4byte gSpriteAnim_83A043C - - .align 2 -gSpriteAnimTable_83A04DC:: @ 83A04DC - .4byte gSpriteAnim_83A0444 - - .align 2 -gSpriteAnimTable_83A04E0:: @ 83A04E0 - .4byte gSpriteAnim_83A044C - .4byte gSpriteAnim_83A0454 - .4byte gSpriteAnim_83A045C - .4byte gSpriteAnim_83A0464 - - .align 2 -gSpriteAnimTable_83A04F0:: @ 83A04F0 - .4byte gSpriteAnim_83A046C - .4byte gSpriteAnim_83A0474 - - .align 2 -gSpriteAnimTable_83A04F8:: @ 83A04F8 - .4byte gSpriteAnim_83A047C - .4byte gSpriteAnim_83A0484 - .4byte gSpriteAnim_83A048C - .4byte gSpriteAnim_83A0494 - .4byte gSpriteAnim_83A049C - .4byte gSpriteAnim_83A04A4 - .4byte gSpriteAnim_83A04AC - .4byte gSpriteAnim_83A04B4 - .4byte gSpriteAnim_83A04BC - .4byte gSpriteAnim_83A04C4 - - .align 2 -gSpriteAnimTable_83A0520:: @ 83A0520 - .4byte gSpriteAnim_83A04CC - - .align 2 -gSpriteTemplate_83A0524:: @ 83A0524 - spr_template 4096, 4096, gOamData_83A0404, gSpriteAnimTable_83A04D4, NULL, gDummySpriteAffineAnimTable, sub_808EF38 - - .align 2 -gSpriteTemplate_83A053C:: @ 83A053C - spr_template 4096, 4096, gOamData_83A040C, gSpriteAnimTable_83A04D8, NULL, gDummySpriteAffineAnimTable, sub_808EF8C - - .align 2 -gSpriteTemplate_83A0554:: @ 83A0554 - spr_template 4096, 4096, gOamData_83A0414, gSpriteAnimTable_83A04E0, NULL, gDummySpriteAffineAnimTable, sub_808F08C - - .align 2 -gSpriteTemplate_83A056C:: @ 83A056C - spr_template 4096, 4096, gOamData_83A041C, gSpriteAnimTable_83A04DC, NULL, gDummySpriteAffineAnimTable, sub_808F0B4 - - .align 2 -gSpriteTemplate_83A0584:: @ 83A0584 - spr_template 4096, 4096, gOamData_83A0424, gSpriteAnimTable_83A04F0, NULL, gDummySpriteAffineAnimTable, sub_808ED94 - - .align 2 -gSpriteTemplate_83A059C:: @ 83A059C - spr_template 4096, 4096, gOamData_83A042C, gSpriteAnimTable_83A04F8, NULL, gDummySpriteAffineAnimTable, sub_808ED94 - - .align 2 -gSpriteTemplate_83A05B4:: @ 83A05B4 - spr_template 4096, 4096, gOamData_83A042C, gSpriteAnimTable_83A0520, NULL, gDummySpriteAffineAnimTable, sub_808F168 - - .align 2 -gUnknown_083A05CC:: @ 83A05CC - obj_tiles gPokedexMenu2_Gfx, 0x1F00, 0x1000 - null_obj_tiles - - .align 2 -gUnknown_083A05DC:: @ 83A05DC - obj_pal gPokedexMenu_Pal, 0x1000 - null_obj_pal - -gUnknown_083A05EC:: @ 83A05EC - .byte 2, 4, 8, 16, 32 - -gUnknown_083A05F1:: @ 83A05F1 - .byte 16, 8, 4, 2, 1 - - .align 2 -gUnknown_083A05F8:: @ 83A05F8 - .string "$" - -@ 83A05F9 - .include "data/pokedex_entries.inc" - -gUnknown_083B4EC4:: @ 83B4EC4 - .space 32 - -@ 83B4EE4 - .include "data/graphics/pokemon/footprint_table.inc" - -gUnknown_083B5558:: @ 83B5558 - .string "{CLEAR_TO 0}$" - - .incbin "graphics/unknown/unknown_3B555C.bin" - - .align 2 -gOamData_83B557C:: @ 83B557C - .2byte 0x0000 - .2byte 0xC000 - .2byte 0x0400 - - .align 2 -gUnknown_083B5584:: @ 83B5584 - .4byte 0x02008000 - .4byte 0x0200c000 - .4byte 0x02010000 - .4byte 0x02014000 - - .align 2 -gSpriteImageTable_83B5594:: @ 83B5594 - obj_frame_tiles 0x02008000, 0x800 - obj_frame_tiles 0x02008800, 0x800 - obj_frame_tiles 0x02009000, 0x800 - obj_frame_tiles 0x02009800, 0x800 - obj_frame_tiles 0x0200A000, 0x800 - obj_frame_tiles 0x0200A800, 0x800 - obj_frame_tiles 0x0200B000, 0x800 - obj_frame_tiles 0x0200B800, 0x800 - obj_frame_tiles 0x0200C000, 0x800 - obj_frame_tiles 0x0200C800, 0x800 - obj_frame_tiles 0x0200D000, 0x800 - obj_frame_tiles 0x0200D800, 0x800 - obj_frame_tiles 0x0200E000, 0x800 - obj_frame_tiles 0x0200E800, 0x800 - obj_frame_tiles 0x0200F000, 0x800 - obj_frame_tiles 0x0200F800, 0x800 - - .align 2 -gSpriteImageTable_83B5614:: @ 83B5614 - obj_frame_tiles 0x0200C000, 0x800 - obj_frame_tiles 0x0200C800, 0x800 - obj_frame_tiles 0x0200D000, 0x800 - obj_frame_tiles 0x0200D800, 0x800 - obj_frame_tiles 0x0200E000, 0x800 - obj_frame_tiles 0x0200E800, 0x800 - obj_frame_tiles 0x0200F000, 0x800 - obj_frame_tiles 0x0200F800, 0x800 - obj_frame_tiles 0x02010000, 0x800 - obj_frame_tiles 0x02010800, 0x800 - obj_frame_tiles 0x02011000, 0x800 - obj_frame_tiles 0x02011800, 0x800 - obj_frame_tiles 0x02012000, 0x800 - obj_frame_tiles 0x02012800, 0x800 - obj_frame_tiles 0x02013000, 0x800 - obj_frame_tiles 0x02013800, 0x800 - - .align 2 -gSpriteImageTable_83B5694:: @ 83B5694 - obj_frame_tiles 0x02010000, 0x800 - obj_frame_tiles 0x02010800, 0x800 - obj_frame_tiles 0x02011000, 0x800 - obj_frame_tiles 0x02011800, 0x800 - obj_frame_tiles 0x02012000, 0x800 - obj_frame_tiles 0x02012800, 0x800 - obj_frame_tiles 0x02013000, 0x800 - obj_frame_tiles 0x02013800, 0x800 - obj_frame_tiles 0x02014000, 0x800 - obj_frame_tiles 0x02014800, 0x800 - obj_frame_tiles 0x02015000, 0x800 - obj_frame_tiles 0x02015800, 0x800 - obj_frame_tiles 0x02016000, 0x800 - obj_frame_tiles 0x02016800, 0x800 - obj_frame_tiles 0x02017000, 0x800 - obj_frame_tiles 0x02017800, 0x800 - - .align 2 -gSpriteImageTable_83B5714:: @ 83B5714 - obj_frame_tiles 0x02014000, 0x800 - obj_frame_tiles 0x02014800, 0x800 - obj_frame_tiles 0x02015000, 0x800 - obj_frame_tiles 0x02015800, 0x800 - obj_frame_tiles 0x02016000, 0x800 - obj_frame_tiles 0x02016800, 0x800 - obj_frame_tiles 0x02017000, 0x800 - obj_frame_tiles 0x02017800, 0x800 - obj_frame_tiles 0x02018000, 0x800 - obj_frame_tiles 0x02018800, 0x800 - obj_frame_tiles 0x02019000, 0x800 - obj_frame_tiles 0x02019800, 0x800 - obj_frame_tiles 0x0201A000, 0x800 - obj_frame_tiles 0x0201A800, 0x800 - obj_frame_tiles 0x0201B000, 0x800 - obj_frame_tiles 0x0201B800, 0x800 - - .align 2 -gUnknown_083B5794:: @ 83B5794 - .4byte gSpriteImageTable_83B5594 - .4byte gSpriteImageTable_83B5614 - .4byte gSpriteImageTable_83B5694 - .4byte gSpriteImageTable_83B5714 - - .align 2 -gUnknown_083B57A4:: @ 83B57A4 - spr_template 0xFFFF, 0, gOamData_83B557C, NULL, gSpriteImageTable_83B5594, gDummySpriteAffineAnimTable, nullsub_59 - -gUnknown_083B57BC:: @ 83B57BC - .byte 0, 0, 0, 0 - .byte 187, 3, 213, 3 - .byte 190, 3, 216, 3 - .byte 193, 3, 219, 3 - .byte 196, 3, 222, 3 - .byte 199, 3, 225, 3 - .byte 202, 3, 228, 3 - .byte 205, 3, 231, 3 - .byte 208, 3, 234, 3 - .byte 211, 2, 237, 2 - - .align 2 -gUnknown_083B57E4:: @ 83B57E4 - .4byte DexText_SearchForPoke - .2byte 0, 5 - .4byte DexText_SwitchDex - .2byte 6, 5 - .4byte DexText_ReturnToDex - .2byte 12, 5 - - .align 2 -gUnknown_083B57FC:: @ 83B57FC - .4byte DexText_ListByABC - .byte 0, 2, 5, 5, 2, 12, 0, 0 - .4byte DexText_ListByColor - .byte 0, 4, 5, 5, 4, 12, 0, 0 - .4byte DexText_ListByType - .byte 0, 6, 5, 5, 6, 6, 0, 0 - .4byte DexText_ListByType - .byte 0, 6, 5, 11, 6, 6, 0, 0 - .4byte DexText_SelectDexList - .byte 0, 8, 5, 5, 8, 12, 0, 0 - .4byte DexText_SelectDexMode - .byte 0, 10, 5, 5, 10, 12, 0, 0 - .4byte DexText_ExecuteSearchSwitch - .byte 0, 12, 5, 0, 0, 0, 0, 0 - -gUnknown_083B5850:: @ 83B5850 - .byte 0xFF, 0xFF, 0xFF, 1 - .byte 0xFF, 0xFF, 0, 2 - .byte 0xFF, 3, 1, 4 - .byte 2, 0xFF, 1, 4 - .byte 0xFF, 0xFF, 2, 5 - .byte 0xFF, 0xFF, 4, 6 - .byte 0xFF, 0xFF, 5, 0xFF - -gUnknown_083B586C:: @ 83B586C - .byte 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 5 - .byte 0xFF, 0xFF, 4, 6 - .byte 0xFF, 0xFF, 5, 0xFF - -gUnknown_083B5888:: @ 83B5888 - .byte 0xFF, 0xFF, 0xFF, 1 - .byte 0xFF, 0xFF, 0, 2 - .byte 0xFF, 3, 1, 4 - .byte 2, 0xFF, 1, 4 - .byte 0xFF, 0xFF, 2, 6 - .byte 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 4, 0xFF - -gUnknown_083B58A4:: @ 83B58A4 - .byte 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 6 - .byte 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 4, 0xFF - - .align 2 -gUnknown_083B58C0:: @ 83B58C0 - .4byte DexText_HoennDex2, DexText_HoennDex - .4byte DexText_NationalDex2, DexText_NationalDex - .4byte 0x0, 0x0 - - .align 2 -gUnknown_083B58D8:: @ 83B58D8 - .4byte DexText_ListByNumber, DexText_NumericalMode - .4byte DexText_ListByABC2, DexText_ABCMode - .4byte DexText_ListByHeavyToLightest, DexText_HeaviestMode - .4byte DexText_ListByLightToHeaviest, DexText_LightestMode - .4byte DexText_ListByTallToSmallest, DexText_TallestMode - .4byte DexText_ListBySmallToTallest, DexText_SmallestMode - .4byte 0x0, 0x0 - - .align 2 -gUnknown_083B5910:: @ 83B5910 - .4byte DexText_Terminator5, DexText_DontSpecify - .4byte DexText_Terminator5, DexText_ABC - .4byte DexText_Terminator5, DexText_DEF - .4byte DexText_Terminator5, DexText_GHI - .4byte DexText_Terminator5, DexText_JKL - .4byte DexText_Terminator5, DexText_MNO - .4byte DexText_Terminator5, DexText_PQR - .4byte DexText_Terminator5, DexText_STU - .4byte DexText_Terminator5, DexText_VWX - .4byte DexText_Terminator5, DexText_YZ - .4byte 0x0, 0x0 - - .align 2 -gUnknown_083B5968:: @ 83B5968 - .4byte DexText_Terminator5, DexText_DontSpecify - .4byte DexText_Terminator5, DexText_Red - .4byte DexText_Terminator5, DexText_Blue - .4byte DexText_Terminator5, DexText_Yellow - .4byte DexText_Terminator5, DexText_Green - .4byte DexText_Terminator5, DexText_Black - .4byte DexText_Terminator5, DexText_Brown - .4byte DexText_Terminator5, DexText_Purple - .4byte DexText_Terminator5, DexText_Gray - .4byte DexText_Terminator5, DexText_White - .4byte DexText_Terminator5, DexText_Pink - .4byte 0x0, 0x0 - - .align 2 -gUnknown_083B59C8:: @ 83B59C8 - .4byte DexText_Terminator5, DexText_None - .4byte DexText_Terminator5, gTypeNames + TYPE_NORMAL * 7 - .4byte DexText_Terminator5, gTypeNames + TYPE_FIGHTING * 7 - .4byte DexText_Terminator5, gTypeNames + TYPE_FLYING * 7 - .4byte DexText_Terminator5, gTypeNames + TYPE_POISON * 7 - .4byte DexText_Terminator5, gTypeNames + TYPE_GROUND * 7 - .4byte DexText_Terminator5, gTypeNames + TYPE_ROCK * 7 - .4byte DexText_Terminator5, gTypeNames + TYPE_BUG * 7 - .4byte DexText_Terminator5, gTypeNames + TYPE_GHOST * 7 - .4byte DexText_Terminator5, gTypeNames + TYPE_STEEL * 7 - .4byte DexText_Terminator5, gTypeNames + TYPE_FIRE * 7 - .4byte DexText_Terminator5, gTypeNames + TYPE_WATER * 7 - .4byte DexText_Terminator5, gTypeNames + TYPE_GRASS * 7 - .4byte DexText_Terminator5, gTypeNames + TYPE_ELECTRIC * 7 - .4byte DexText_Terminator5, gTypeNames + TYPE_PSYCHIC * 7 - .4byte DexText_Terminator5, gTypeNames + TYPE_ICE * 7 - .4byte DexText_Terminator5, gTypeNames + TYPE_DRAGON * 7 - .4byte DexText_Terminator5, gTypeNames + TYPE_DARK * 7 - .4byte 0x0, 0x0 - -gUnknown_083B5A60:: @ 83B5A60 - .byte 0, 1 - -gUnknown_083B5A62:: @ 83B5A62 - .byte 0, 1, 2, 3, 4, 5 - -gUnknown_083B5A68:: @ 83B5A68 - .byte -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17 - - .align 2 -gUnknown_083B5A7C:: @ 83B5A7C - .4byte gUnknown_083B5910 - .byte 6, 7, 10, 0 - .4byte gUnknown_083B5968 - .byte 8, 9, 11, 0 - .4byte gUnknown_083B59C8 - .byte 10, 11, 18, 0 - .4byte gUnknown_083B59C8 - .byte 12, 13, 18, 0 - .4byte gUnknown_083B58D8 - .byte 4, 5, 6, 0 - .4byte gUnknown_083B58C0 - .byte 2, 3, 2, 0 - -gUnknown_083B5AAC:: @ 83B5AAC - .string "{STR_VAR_1}{CLEAR_TO 43}$" - -gUnknown_083B5AB2:: @ 83B5AB2 - .string "{STR_VAR_1}{CLEAR_TO 96}$" diff --git a/data/pokedex_entries.inc b/data/pokedex_entries.inc deleted file mode 100644 index f1c206e3c..000000000 --- a/data/pokedex_entries.inc +++ /dev/null @@ -1,4164 +0,0 @@ -DexDescription_Dummy_1: - .string "This is a newly discovered POKéMON.\nIt is currently under investigation.$" -DexDescription_Dummy_2: - .string "No detailed information is available\nat this time.$" - -DexDescription_Bulbasaur_1: - .string "BULBASAUR can be seen napping in\nbright sunlight.\nThere is a seed on its back.$" -DexDescription_Bulbasaur_2: - .string "By soaking up the sun’s rays, the seed\ngrows progressively larger.$" - -DexDescription_Ivysaur_1: - .string "There is a bud on this POKéMON’s back.\nTo support its weight, IVYSAUR’s legs\nand trunk grow thick and strong.$" -DexDescription_Ivysaur_2: - .string "If it starts spending more time lying\nin the sunlight, it’s a sign that the\nbud will bloom into a large flower soon.$" - -DexDescription_Venusaur_1: - .string "There is a large flower on VENUSAUR’s\nback. The flower is said to take on vivid\ncolors if it gets plenty of nutrition$" -DexDescription_Venusaur_2: - .string "and sunlight. The flower’s aroma\nsoothes the emotions of people.$" - -DexDescription_Charmander_1: - .string "The flame that burns at the tip of its\ntail is an indication of its emotions.\nThe flame wavers when CHARMANDER is$" -DexDescription_Charmander_2: - .string "enjoying itself. If the POKéMON becomes\nenraged, the flame burns fiercely.$" - -DexDescription_Charmeleon_1: - .string "CHARMELEON mercilessly destroys its\nfoes using its sharp claws.\nIf it encounters a strong foe, it turns$" -DexDescription_Charmeleon_2: - .string "aggressive. In this excited state, the\nflame at the tip of its tail flares with a\nbluish white color.$" - -DexDescription_Charizard_1: - .string "CHARIZARD flies around the sky in\nsearch of powerful opponents.\nIt breathes fire of such great heat$" -DexDescription_Charizard_2: - .string "that it melts anything. However, it\nnever turns its fiery breath on any\nopponent weaker than itself.$" - -DexDescription_Squirtle_1: - .string "SQUIRTLE’s shell is not merely used\nfor protection.\nThe shell’s rounded shape and the$" -DexDescription_Squirtle_2: - .string "grooves on its surface help minimize\nresistance in water, enabling this\nPOKéMON to swim at high speeds.$" - -DexDescription_Wartortle_1: - .string "Its tail is large and covered with a rich,\nthick fur. The tail becomes increasingly\ndeeper in color as WARTORTLE ages.$" -DexDescription_Wartortle_2: - .string "The scratches on its shell are evidence\nof this POKéMON’s toughness as a\nbattler.$" - -DexDescription_Blastoise_1: - .string "BLASTOISE has water spouts that\nprotrude from its shell. The water\nspouts are very accurate.$" -DexDescription_Blastoise_2: - .string "They can shoot bullets of water with\nenough accuracy to strike empty cans\nfrom a distance of over 160 feet.$" - -DexDescription_Caterpie_1: - .string "CATERPIE has a voracious appetite.\nIt can devour leaves bigger than its\nbody right before your eyes.$" -DexDescription_Caterpie_2: - .string "From its antenna, this POKéMON releases\na terrifically strong odor.$" - -DexDescription_Metapod_1: - .string "The shell covering this POKéMON’s body\nis as hard as an iron slab.\nMETAPOD does not move very much.$" -DexDescription_Metapod_2: - .string "It stays still because it is preparing\nits soft innards for evolution inside\nthe hard shell.$" - -DexDescription_Butterfree_1: - .string "BUTTERFREE has a superior ability to\nsearch for delicious honey from\nflowers.$" -DexDescription_Butterfree_2: - .string "It can even search out, extract, and\ncarry honey from flowers that are\nblooming over six miles from its nest.$" - -DexDescription_Weedle_1: - .string "WEEDLE has an extremely acute sense\nof smell.\nIt is capable of distinguishing its$" -DexDescription_Weedle_2: - .string "favorite kinds of leaves from those it\ndislikes just by sniffing with its big\nred proboscis (nose).$" - -DexDescription_Kakuna_1: - .string "KAKUNA remains virtually immobile as it\nclings to a tree. However, on the\ninside, it is extremely busy as it$" -DexDescription_Kakuna_2: - .string "prepares for its coming evolution.\nThis is evident from how hot the shell\nbecomes to the touch.$" - -DexDescription_Beedrill_1: - .string "BEEDRILL is extremely territorial.\nNo one should ever approach its nest -\nthis is for their own safety.$" -DexDescription_Beedrill_2: - .string "If angered, they will attack in a furious\nswarm.$" - -DexDescription_Pidgey_1: - .string "PIDGEY has an extremely sharp sense\nof direction.\nIt is capable of unerringly returning$" -DexDescription_Pidgey_2: - .string "home to its nest, however far it may be\nremoved from its familiar surroundings.$" - -DexDescription_Pidgeotto_1: - .string "PIDGEOTTO claims a large area as its\nown territory. This POKéMON flies\naround, patrolling its living space.$" -DexDescription_Pidgeotto_2: - .string "If its territory is violated, it shows\nno mercy in thoroughly punishing the\nfoe with its sharp claws.$" - -DexDescription_Pidgeot_1: - .string "This POKéMON has a dazzling plumage of\nbeautifully glossy feathers.\nMany TRAINERS are captivated by the$" -DexDescription_Pidgeot_2: - .string "striking beauty of the feathers on its\nhead, compelling them to choose PIDGEOT\nas their POKéMON.$" - -DexDescription_Rattata_1: - .string "RATTATA is cautious in the extreme.\nEven while it is asleep, it constantly\nlistens by moving its ears around.$" -DexDescription_Rattata_2: - .string "It is not picky about where it lives -\nit will make its nest anywhere.$" - -DexDescription_Raticate_1: - .string "RATICATE’s sturdy fangs grow steadily.\nTo keep them ground down, it gnaws\non rocks and logs.$" -DexDescription_Raticate_2: - .string "It may even chew on the walls of\nhouses.$" - -DexDescription_Spearow_1: - .string "SPEAROW has a very loud cry that can\nbe heard over half a mile away.\nIf its high, keening cry is heard$" -DexDescription_Spearow_2: - .string "echoing all around, it is a sign that\nthey are warning each other of danger.$" - -DexDescription_Fearow_1: - .string "FEAROW is recognized by its long neck\nand elongated beak.\nThey are conveniently shaped for$" -DexDescription_Fearow_2: - .string "catching prey in soil or water.\nIt deftly moves its long and skinny\nbeak to pluck prey.$" - -DexDescription_Ekans_1: - .string "EKANS curls itself up in a spiral while\nit rests.\nAssuming this position allows it to$" -DexDescription_Ekans_2: - .string "quickly respond to a threat from any\ndirection with a glare from its upraised\nhead.$" - -DexDescription_Arbok_1: - .string "This POKéMON is terrifically strong in\norder to constrict things with its body.\nIt can even flatten steel oil drums.$" -DexDescription_Arbok_2: - .string "Once ARBOK wraps its body around its\nfoe, escaping its crunching embrace is\nimpossible.$" - - .ifdef SAPPHIRE -DexDescription_Pikachu_1: - .string "This POKéMON has electricity-storing\npouches on its cheeks. These appear to\nbecome electrically charged during the$" -DexDescription_Pikachu_2: - .string "night while PIKACHU sleeps.\nIt occasionally discharges electricity\nwhen it is dozy after waking up.$" - .else -DexDescription_Pikachu_1: - .string "Whenever PIKACHU comes across\nsomething new, it blasts it with a jolt\nof electricity.$" -DexDescription_Pikachu_2: - .string "If you come across a blackened berry,\nit’s evidence that this POKéMON\nmistook the intensity of its charge.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Raichu_1: - .string "This POKéMON exudes a weak electrical\ncharge from all over its body that makes\nit take on a slight glow in darkness.$" -DexDescription_Raichu_2: - .string "RAICHU searches for electricity by\nplanting its tail in the ground.$" - .else -DexDescription_Raichu_1: - .string "If the electrical sacks become\nexcessively charged, RAICHU plants its\ntail in the ground and discharges.$" -DexDescription_Raichu_2: - .string "Scorched patches of ground will be\nfound near this POKéMON’s nest.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Sandshrew_1: - .string "SANDSHREW has a very dry hide that is\nextremely tough. The POKéMON can roll\ninto a ball that repels any attack.$" -DexDescription_Sandshrew_2: - .string "At night, it burrows into the desert\nsand to sleep.$" - .else -DexDescription_Sandshrew_1: - .string "SANDSHREW’s body is configured to\nabsorb water without waste, enabling it\nto survive in an arid desert.$" -DexDescription_Sandshrew_2: - .string "This POKéMON curls up to protect itself\nfrom its enemies.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Sandslash_1: - .string "SANDSLASH can roll up its body as if it\nwere a ball covered with large spikes.\nIn battle, this POKéMON will try to make$" -DexDescription_Sandslash_2: - .string "the foe flinch by jabbing it with its\nspines. It then leaps at the stunned\nfoe to tear wildly with its sharp claws.$" - .else -DexDescription_Sandslash_1: - .string "SANDSLASH’s body is covered by tough\nspikes, which are hardened sections of\nits hide. Once a year, the old spikes fall$" -DexDescription_Sandslash_2: - .string "out, to be replaced with new spikes that\ngrow out from beneath the old ones.$" - .endif - -DexDescription_NidoranF_1: - .string "NIDORAN has barbs that secrete a\npowerful poison. They are thought to\nhave developed as protection for this$" -DexDescription_NidoranF_2: - .string "small-bodied POKéMON.\nWhen enraged, it releases a horrible\ntoxin from its horn.$" - -DexDescription_Nidorina_1: - .string "When NIDORINA are with their friends or\nfamily, they keep their barbs tucked\naway to prevent hurting each other.$" -DexDescription_Nidorina_2: - .string "This POKéMON appears to become\nnervous if separated from the others.$" - -DexDescription_Nidoqueen_1: - .string "NIDOQUEEN’s body is encased in\nextremely hard scales. It is adept at\nsending foes flying with harsh tackles.$" -DexDescription_Nidoqueen_2: - .string "This POKéMON is at its strongest when\nit is defending its young.$" - -DexDescription_NidoranM_1: - .string "The male NIDORAN has developed\nmuscles for moving its ears. Thanks to\nthem, the ears can be freely moved in$" -DexDescription_NidoranM_2: - .string "any direction. Even the slightest sound\ndoes not escape this POKéMON’s notice.$" - -DexDescription_Nidorino_1: - .string "NIDORINO has a horn that is harder than\na diamond. If it senses a hostile\npresence, all the barbs on its back$" -DexDescription_Nidorino_2: - .string "bristle up at once, and it challenges\nthe foe with all its might.$" - -DexDescription_Nidoking_1: - .string "NIDOKING’s thick tail packs enormously\ndestructive power. With one swing, it\ncan topple a metal transmission tower.$" -DexDescription_Nidoking_2: - .string "Once this POKéMON goes on a rampage,\nthere is no stopping it.$" - -DexDescription_Clefairy_1: - .string "On every night of a full moon, groups of\nthis POKéMON come out to play.\nWhen dawn arrives, the tired CLEFAIRY$" -DexDescription_Clefairy_2: - .string "return to their quiet mountain retreats\nand go to sleep nestled up against each\nother.$" - -DexDescription_Clefable_1: - .string "CLEFABLE moves by skipping lightly as if\nit were flying using its wings. Its\nbouncy step lets it even walk on water.$" -DexDescription_Clefable_2: - .string "It is known to take strolls on lakes on\nquiet, moonlit nights.$" - - .ifdef SAPPHIRE -DexDescription_Vulpix_1: - .string "Inside VULPIX’s body burns a flame that\nnever goes out. During the daytime,\nwhen the temperatures rise, this$" -DexDescription_Vulpix_2: - .string "POKéMON releases flames from its mouth\nto prevent its body from growing too\nhot.$" - .else -DexDescription_Vulpix_1: - .string "At the time of its birth, VULPIX has one\nwhite tail. The tail separates into six\nif this POKéMON receives plenty of love$" -DexDescription_Vulpix_2: - .string "from its TRAINER.\nThe six tails become magnificently\ncurled.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Ninetales_1: - .string "Legend has it that NINETALES came into\nbeing when nine wizards possessing\nsacred powers merged into one.$" -DexDescription_Ninetales_2: - .string "This POKéMON is highly intelligent - it\ncan understand human speech.$" - .else -DexDescription_Ninetales_1: - .string "NINETALES casts a sinister light from\nits bright red eyes to gain total\ncontrol over its foe’s mind.$" -DexDescription_Ninetales_2: - .string "This POKéMON is said to live for a\nthousand years.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Jigglypuff_1: - .string "When this POKéMON sings, it never\npauses to breathe. If it is in a battle\nagainst an opponent that does not$" -DexDescription_Jigglypuff_2: - .string "easily fall asleep, JIGGLYPUFF cannot\nbreathe, endangering its life.$" - .else -DexDescription_Jigglypuff_1: - .string "JIGGLYPUFF’s vocal chords can freely\nadjust the wavelength of its voice.\nThis POKéMON uses this ability to sing$" -DexDescription_Jigglypuff_2: - .string "at precisely the right wavelength to\nmake its foes most drowsy.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Wigglytuff_1: - .string "WIGGLYTUFF’s body is very flexible.\nBy inhaling deeply, this POKéMON can\ninflate itself seemingly without end.$" -DexDescription_Wigglytuff_2: - .string "Once inflated, WIGGLYTUFF bounces\nalong lightly like a balloon.$" - .else -DexDescription_Wigglytuff_1: - .string "WIGGLYTUFF has large, saucerlike eyes.\nThe surfaces of its eyes are always\ncovered with a thin layer of tears.$" -DexDescription_Wigglytuff_2: - .string "If any dust gets in this POKéMON’s\neyes, it is quickly washed away.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Zubat_1: - .string "ZUBAT avoids sunlight because exposure\ncauses it to become unhealthy.\nDuring the daytime, it stays in caves or$" -DexDescription_Zubat_2: - .string "under the eaves of old houses, sleeping\nwhile hanging upside down.$" - .else -DexDescription_Zubat_1: - .string "ZUBAT remains quietly unmoving in a\ndark spot during the bright daylight\nhours. It does so because prolonged$" -DexDescription_Zubat_2: - .string "exposure to the sun causes its body to\nbecome slightly burned.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Golbat_1: - .string "GOLBAT bites down on prey with its four\nfangs and drinks the victim’s blood.\nIt becomes active on inky dark$" -DexDescription_Golbat_2: - .string "moonless nights, flying around to\nattack people and POKéMON.$" - .else -DexDescription_Golbat_1: - .string "GOLBAT loves to drink the blood of\nliving things. It is particularly active\nin the pitch black of night.$" -DexDescription_Golbat_2: - .string "This POKéMON flits around in the night\nskies, seeking fresh blood.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Oddish_1: - .string "ODDISH searches for fertile, nutrient-\nrich soil, then plants itself.\nDuring the daytime, while it is planted,$" -DexDescription_Oddish_2: - .string "this POKéMON’s feet are thought to\nchange shape and become similar to\nthe roots of trees.$" - .else -DexDescription_Oddish_1: - .string "During the daytime, ODDISH buries\nitself in soil to absorb nutrients from \nthe ground using its entire body.$" -DexDescription_Oddish_2: - .string "The more fertile the soil, the glossier\nits leaves become.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Gloom_1: - .string "From its mouth GLOOM drips honey that\nsmells absolutely horrible.\nApparently, it loves the horrid stench.$" -DexDescription_Gloom_2: - .string "It sniffs the noxious fumes and then \ndrools even more of its honey.$" - .else -DexDescription_Gloom_1: - .string "GLOOM releases a foul fragrance from\nthe pistil of its flower. When faced\nwith danger, the stench worsens.$" -DexDescription_Gloom_2: - .string "If this POKéMON is feeling calm and\nsecure, it does not release its usual\nstinky aroma.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Vileplume_1: - .string "VILEPLUME has the world’s largest\npetals. They are used to attract prey\nthat are then doused with toxic spores.$" -DexDescription_Vileplume_2: - .string "Once the prey are immobilized, this\nPOKéMON catches and devours them.$" - .else -DexDescription_Vileplume_1: - .string "VILEPLUME’s toxic pollen triggers\natrocious allergy attacks. That’s why\nit is advisable never to approach any$" -DexDescription_Vileplume_2: - .string "attractive flowers in a jungle, however\npretty they may be.$" - .endif - - .ifdef SAPPHIRE - - .if REVISION >= 1 -DexDescription_Paras_1: - .string "PARAS has parasitic mushrooms growing\non its back called tochukaso. They grow\nlarge by drawing nutrients from this$" -DexDescription_Paras_2: - .string "BUG/GRASS POKéMON host. They are\nhighly valued as a medicine for\nextending life.$" - .else -DexDescription_Paras_1: - .string "PARAS has parasitic mushrooms growing\non its back called tochukaso. They grow\nlarge by drawing nutrients from this$" -DexDescription_Paras_2: - .string "BUG POKéMON host. They are highly\nvalued as a medicine for extending life.$" - .endif @ REVISION >= 1 - - .else - - .if REVISION >= 1 -DexDescription_Paras_1: - .string "PARAS has parasitic mushrooms growing\non its back called tochukaso. They grow\nlarge by drawing nutrients from this$" -DexDescription_Paras_2: - .string "BUG/GRASS POKéMON host. They are\nhighly valued as a medicine for\nextending life.$" - .else -DexDescription_Paras_1: - .string "PARAS has parasitic mushrooms growing\non its back called tochukaso. They grow\nlarge by drawing nutrients from the BUG$" -DexDescription_Paras_2: - .string "POKéMON host. They are highly valued as\na medicine for extending life.$" - .endif @ REVISION >= 1 - - .endif @ SAPPHIRE - -DexDescription_Parasect_1: - .string "PARASECT is known to infest large trees\nen masse and drain nutrients from the\nlower trunk and roots.$" -DexDescription_Parasect_2: - .string "When an infested tree dies, they move\nonto another tree all at once.$" - -DexDescription_Venonat_1: - .string "VENONAT is said to have evolved with\na coat of thin, stiff hair that covers\nits entire body for protection.$" -DexDescription_Venonat_2: - .string "It possesses large eyes that never fail\nto spot even miniscule prey.$" - -DexDescription_Venomoth_1: - .string "VENOMOTH is nocturnal - it is a POKéMON\nthat only becomes active at night.\nIts favorite prey are small insects$" -DexDescription_Venomoth_2: - .string "that gather around streetlights,\nattracted by the light in the darkness.$" - -DexDescription_Diglett_1: - .string "DIGLETT are raised in most farms.\nThe reason is simple - wherever this\nPOKéMON burrows, the soil is left$" -DexDescription_Diglett_2: - .string "perfectly tilled for planting crops.\nThis soil is made ideal for growing\ndelicious vegetables.$" - -DexDescription_Dugtrio_1: - .string "DUGTRIO are actually triplets that\nemerged from one body. As a result,\neach triplet thinks exactly like the$" -DexDescription_Dugtrio_2: - .string "other two triplets.\nThey work cooperatively to burrow\nendlessly.$" - -DexDescription_Meowth_1: - .string "MEOWTH withdraws its sharp claws into\nits paws to slinkily sneak about without\nmaking any incriminating footsteps.$" -DexDescription_Meowth_2: - .string "For some reason, this POKéMON loves\nshiny coins that glitter with light.$" - -DexDescription_Persian_1: - .string "PERSIAN has six bold whiskers that give\nit a look of toughness. The whiskers \nsense air movements to determine what$" -DexDescription_Persian_2: - .string "is in the POKéMON’s surrounding\nvicinity. It becomes docile if grabbed\nby the whiskers.$" - - .ifdef SAPPHIRE -DexDescription_Psyduck_1: - .string "If it uses its mysterious power,\nPSYDUCK can’t remember having done so.\nIt apparently can’t form a memory of$" -DexDescription_Psyduck_2: - .string "such an event because it goes into\nan altered state that is much like\ndeep sleep.$" - .else -DexDescription_Psyduck_1: - .string "PSYDUCK uses a mysterious power.\nWhen it does so, this POKéMON \ngenerates brain waves that are$" -DexDescription_Psyduck_2: - .string "supposedly only seen in sleepers.\nThis discovery spurred controversy\namong scholars.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Golduck_1: - .string "GOLDUCK is the fastest swimmer among\nall POKéMON. It swims effortlessly, even\nin a rough, stormy sea.$" -DexDescription_Golduck_2: - .string "It sometimes rescues people from\nwrecked ships floundering in high seas.$" - .else -DexDescription_Golduck_1: - .string "The webbed flippers on its forelegs and\nhind legs and the streamlined body of\nGOLDUCK give it frightening speed.$" -DexDescription_Golduck_2: - .string "This POKéMON is definitely much faster\nthan even the most athletic swimmer.$" - .endif - -DexDescription_Mankey_1: - .string "When MANKEY starts shaking and its\nnasal breathing turns rough, it’s a sure\nsign that it is becoming angry.$" -DexDescription_Mankey_2: - .string "However, because it goes into a\ntowering rage almost instantly, it is\nimpossible for anyone to flee its wrath.$" - -DexDescription_Primeape_1: - .string "When PRIMEAPE becomes furious, its\nblood circulation is boosted. In turn,\nits muscles are made even stronger.$" -DexDescription_Primeape_2: - .string "However, it also becomes much less\nintelligent at the same time.$" - -DexDescription_Growlithe_1: - .string "GROWLITHE has a superb sense of smell.\nOnce it smells anything, this POKéMON\nwon’t forget the scent, no matter what.$" -DexDescription_Growlithe_2: - .string "It uses its advanced olfactory sense\nto determine the emotions of other\nliving things.$" - -DexDescription_Arcanine_1: - .string "ARCANINE is known for its high speed.\nIt is said to be capable of running over\n6,200 miles in a single day and night.$" -DexDescription_Arcanine_2: - .string "The fire that blazes wildly within this\nPOKéMON’s body is its source of power.$" - -DexDescription_Poliwag_1: - .string "POLIWAG has a very thin skin. It is\npossible to see the POKéMON’s spiral\ninnards right through the skin.$" -DexDescription_Poliwag_2: - .string "Despite its thinness, however, the skin\nis also very flexible. Even sharp fangs\nbounce right off it.$" - -DexDescription_Poliwhirl_1: - .string "The surface of POLIWHIRL’s body is\nalways wet and slick with an oily fluid.\nBecause of this greasy covering, it can$" -DexDescription_Poliwhirl_2: - .string "easily slip and slide out of the clutches\nof any enemy in battle.$" - -DexDescription_Poliwrath_1: - .string "POLIWRATH’s highly developed, brawny\nmuscles never grow fatigued, however\nmuch it exercises.$" -DexDescription_Poliwrath_2: - .string "It is so tirelessly strong, this POKéMON\ncan swim back and forth across the\nPacific Ocean without effort.$" - - .ifdef SAPPHIRE -DexDescription_Abra_1: - .string "ABRA needs to sleep for eighteen hours\na day. If it doesn’t, this POKéMON loses\nits ability to use telekinetic powers.$" -DexDescription_Abra_2: - .string "If it is attacked, ABRA escapes using\nTELEPORT while it is still sleeping.$" - .else -DexDescription_Abra_1: - .string "ABRA sleeps for eighteen hours a day.\nHowever, it can sense the presence of\nfoes even while it is sleeping.$" -DexDescription_Abra_2: - .string "In such a situation, this POKéMON\nimmediately teleports to safety.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Kadabra_1: - .string "KADABRA holds a silver spoon in its\nhand. The spoon is used to amplify the\nalpha waves in its brain.$" -DexDescription_Kadabra_2: - .string "Without the spoon, the POKéMON is said\nto be limited to half the usual amount\nof its telekinetic powers.$" - .else -DexDescription_Kadabra_1: - .string "KADABRA emits a peculiar alpha wave\nif it develops a headache. Only those\npeople with a particularly strong$" -DexDescription_Kadabra_2: - .string "psyche can hope to become a TRAINER\nof this POKéMON.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Alakazam_1: - .string "ALAKAZAM’s brain continually grows,\ninfinitely multiplying brain cells.\nThis amazing brain gives this POKéMON$" -DexDescription_Alakazam_2: - .string "an astoundingly high IQ of 5,000.\nIt has a thorough memory of everything\nthat has occurred in the world.$" - .else -DexDescription_Alakazam_1: - .string "ALAKAZAM’s brain continually grows,\nmaking its head far too heavy to\nsupport with its neck.$" -DexDescription_Alakazam_2: - .string "This POKéMON holds its head up using\nits psychokinetic power instead.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Machop_1: - .string "MACHOP exercises by hefting around\na GRAVELER as if it were a barbell.\nThere are some MACHOP that travel$" -DexDescription_Machop_2: - .string "the world in a quest to master all\nkinds of martial arts.$" - .else -DexDescription_Machop_1: - .string "MACHOP’s muscles are special - they\nnever get sore no matter how much they\nare used in exercise.$" -DexDescription_Machop_2: - .string "This POKéMON has sufficient power to\nhurl a hundred adult humans.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Machoke_1: - .string "MACHOKE undertakes bodybuilding every\nday even as it helps people with tough,\nphysically demanding labor.$" -DexDescription_Machoke_2: - .string "On its days off, this POKéMON heads to\nthe fields and mountains to exercise\nand train.$" - .else -DexDescription_Machoke_1: - .string "MACHOKE’s thoroughly toned muscles\npossess the hardness of steel.\nThis POKéMON has so much strength,$" -DexDescription_Machoke_2: - .string "it can easily hold aloft a sumo wrestler\non just one finger.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Machamp_1: - .string "MACHAMP is known as the POKéMON that\nhas mastered every kind of martial arts.\nIf it grabs hold of the foe with its four$" -DexDescription_Machamp_2: - .string "arms, the battle is all but over.\nThe hapless foe is thrown far over the\nhorizon.$" - .else -DexDescription_Machamp_1: - .string "MACHAMP has the power to hurl anything\naside. However, trying to do any work\nrequiring care and dexterity causes$" -DexDescription_Machamp_2: - .string "its arms to get tangled.\nThis POKéMON tends to leap into action\nbefore it thinks.$" - .endif - -DexDescription_Bellsprout_1: - .string "BELLSPROUT’s thin and flexible body\nlets it bend and sway to avoid any\nattack, however strong it may be.$" -DexDescription_Bellsprout_2: - .string "From its mouth, this POKéMON spits a\ncorrosive fluid that melts even iron.$" - -DexDescription_Weepinbell_1: - .string "WEEPINBELL has a large hook on its rear\nend. At night, the POKéMON hooks on to\na tree branch and goes to sleep.$" -DexDescription_Weepinbell_2: - .string "If it moves around in its sleep, it may\nwake up to find itself on the ground.$" - -DexDescription_Victreebel_1: - .string "VICTREEBEL has a long vine that\nextends from its head. This vine is\nwaved and flicked about as if it were$" -DexDescription_Victreebel_2: - .string "an animal to attract prey. When an\nunsuspecting prey draws near, this\nPOKéMON swallows it whole.$" - - .ifdef SAPPHIRE -DexDescription_Tentacool_1: - .string "TENTACOOL absorbs sunlight and\nrefracts it using water inside its body\nto convert it into beam energy.$" -DexDescription_Tentacool_2: - .string "This POKéMON shoots beams from its\ncrystal-like eyes.$" - .else -DexDescription_Tentacool_1: - .string "TENTACOOL’s body is largely composed\nof water. If it is removed from the\nsea, it dries up like parchment.$" -DexDescription_Tentacool_2: - .string "If this POKéMON happens to become\ndehydrated, put it back into the sea.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Tentacruel_1: - .string "TENTACRUEL has tentacles that can be\nfreely elongated and shortened at will.\nIt ensnares prey with its tentacles and$" -DexDescription_Tentacruel_2: - .string "weakens the prey by dosing it with a\nharsh toxin. It can catch up to 80\nprey at the same time.$" - .else -DexDescription_Tentacruel_1: - .string "TENTACRUEL has large red orbs on its\nhead. The orbs glow before lashing the\nvicinity with a harsh ultrasonic blast.$" -DexDescription_Tentacruel_2: - .string "This POKéMON’s outburst creates rough\nwaves around it.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Geodude_1: - .string "When GEODUDE sleeps deeply, it buries\nitself halfway into the ground.\nIt will not awaken even if hikers step$" -DexDescription_Geodude_2: - .string "on it unwittingly.\nIn the morning, this POKéMON rolls\ndownhill in search of food.$" - .else -DexDescription_Geodude_1: - .string "The longer a GEODUDE lives, the more\nits edges are chipped and worn away,\nmaking it more rounded in appearance.$" -DexDescription_Geodude_2: - .string "However, this POKéMON’s heart will\nremain hard, craggy, and rough always.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Graveler_1: - .string "Rocks are GRAVELER’s favorite food.\nThis POKéMON will climb a mountain from\nthe base to the summit, crunchingly$" -DexDescription_Graveler_2: - .string "feasting on rocks all the while.\nUpon reaching the peak, it rolls back\ndown to the bottom.$" - .else -DexDescription_Graveler_1: - .string "GRAVELER grows by feeding on rocks.\nApparently, it prefers to eat rocks\nthat are covered in moss.$" -DexDescription_Graveler_2: - .string "This POKéMON eats its way through\na ton of rocks on a daily basis.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Golem_1: - .string "GOLEM is known for rolling down from\nmountains. To prevent them from rolling\ninto the homes of people downhill,$" -DexDescription_Golem_2: - .string "grooves have been dug into the sides of\nmountains to serve as guideways for\ndiverting this POKéMON’s course.$" - .else -DexDescription_Golem_1: - .string "GOLEM live up on mountains.\nIf there is a large earthquake, these\nPOKéMON will come rolling down off$" -DexDescription_Golem_2: - .string "the mountains en masse to the\nfoothills below.$" - .endif - -DexDescription_Ponyta_1: - .string "PONYTA is very weak at birth.\nIt can barely stand up.\nThis POKéMON becomes stronger by$" -DexDescription_Ponyta_2: - .string "stumbling and falling to keep up with\nits parent.$" - -DexDescription_Rapidash_1: - .string "RAPIDASH usually can be seen casually\ncantering in the fields and plains.\nHowever, when this POKéMON turns$" -DexDescription_Rapidash_2: - .string "serious, its fiery manes flare and blaze\nas it gallops its way up to 150 mph.$" - -DexDescription_Slowpoke_1: - .string "SLOWPOKE uses its tail to catch prey by\ndipping it in water at the side of a\nriver.$" -DexDescription_Slowpoke_2: - .string "However, this POKéMON often forgets\nwhat it’s doing and often spends entire\ndays just loafing at water’s edge.$" - -DexDescription_Slowbro_1: - .string "SLOWBRO’s tail has a SHELLDER firmly\nattached with a bite. As a result, the\ntail can’t be used for fishing anymore.$" -DexDescription_Slowbro_2: - .string "This causes SLOWBRO to grudgingly swim\nand catch prey instead.$" - - .ifdef SAPPHIRE -DexDescription_Magnemite_1: - .string "MAGNEMITE floats in the air by emitting\nelectromagnetic waves from the units\nat its sides. These waves block gravity.$" -DexDescription_Magnemite_2: - .string "This POKéMON becomes incapable of\nflight if its internal electrical supply\nis depleted.$" - .else -DexDescription_Magnemite_1: - .string "MAGNEMITE attaches itself to power\nlines to feed on electricity.\nIf your house has a power outage,$" -DexDescription_Magnemite_2: - .string "check your circuit breakers. You may\nfind a large number of this POKéMON\nclinging to the breaker box.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Magneton_1: - .string "MAGNETON emits a powerful magnetic\nforce that is fatal to electronics and\nprecision instruments. Because of$" -DexDescription_Magneton_2: - .string "this, it is said that some towns warn\npeople to keep this POKéMON inside\na POKé BALL.$" - .else -DexDescription_Magneton_1: - .string "MAGNETON emits a powerful magnetic\nforce that is fatal to mechanical\ndevices. As a result, large cities sound$" -DexDescription_Magneton_2: - .string "sirens to warn citizens of large-scale\noutbreaks of this POKéMON.$" - .endif - -DexDescription_Farfetchd_1: - .string "FARFETCH’D is always seen with a stick\nfrom a plant of some sort. Apparently,\nthere are good sticks and bad sticks.$" -DexDescription_Farfetchd_2: - .string "This POKéMON has been known to fight\nwith others over sticks.$" - - .ifdef SAPPHIRE -DexDescription_Doduo_1: - .string "DODUO’s two heads contain completely\nidentical brains.\nA scientific study reported that on$" -DexDescription_Doduo_2: - .string "rare occasions, there will be examples\nof this POKéMON possessing different\nsets of brains.$" - .else -DexDescription_Doduo_1: - .string "DODUO’s two heads never sleep at the\nsame time.\nIts two heads take turns sleeping,$" -DexDescription_Doduo_2: - .string "so one head can always keep watch for\nenemies while the other one sleeps.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Dodrio_1: - .string "Apparently, the heads aren’t the only\nparts of the body that DODRIO has\nthree of.$" -DexDescription_Dodrio_2: - .string "It has three sets of hearts and lungs\nas well, so it is capable of running long\ndistances without rest.$" - .else -DexDescription_Dodrio_1: - .string "Watch out if DODRIO’s three heads are\nlooking in three separate directions.\nIt’s a sure sign that it is on its guard.$" -DexDescription_Dodrio_2: - .string "Don’t go near this POKéMON if it’s being\nwary - it may decide to peck you.$" - .endif - -DexDescription_Seel_1: - .string "SEEL hunts for prey in the frigid sea\nunderneath sheets of ice.\nWhen it needs to breathe, it punches$" -DexDescription_Seel_2: - .string "a hole through the ice with the\nsharply protruding section of its head.$" - -DexDescription_Dewgong_1: - .string "DEWGONG loves to snooze on bitterly\ncold ice.\nThe sight of this POKéMON sleeping on$" -DexDescription_Dewgong_2: - .string "a glacier was mistakenly thought to be\na mermaid by a mariner long ago.$" - - .ifdef SAPPHIRE -DexDescription_Grimer_1: - .string "GRIMER emerged from the sludge that\nsettled on a polluted seabed.\nThis POKéMON loves anything filthy.$" -DexDescription_Grimer_2: - .string "It constantly leaks a horribly germ-\ninfested fluid from all over its body.$" - .else -DexDescription_Grimer_1: - .string "GRIMER’s sludgy and rubbery body can\nbe forced through any opening, however\nsmall it may be.$" -DexDescription_Grimer_2: - .string "This POKéMON enters sewer pipes to\ndrink filthy wastewater.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Muk_1: - .string "This POKéMON’s favorite food is\nanything that is repugnantly filthy.\nIn dirty towns where people think$" -DexDescription_Muk_2: - .string "nothing of throwing away litter on the\nstreets, MUK are certain to gather.$" - .else -DexDescription_Muk_1: - .string "From MUK’s body seeps a foul fluid that\ngives off a nose-bendingly horrible\nstench.$" -DexDescription_Muk_2: - .string "Just one drop of this POKéMON’s body\nfluid can turn a pool stagnant and\nrancid.$" - .endif - -DexDescription_Shellder_1: - .string "At night, this POKéMON uses its broad\ntongue to burrow a hole in the seafloor\nsand and then sleep in it.$" -DexDescription_Shellder_2: - .string "While it is sleeping, SHELLDER closes its\nshell, but leaves its tongue hanging\nout.$" - -DexDescription_Cloyster_1: - .string "CLOYSTER is capable of swimming in the\nsea. It does so by swallowing water,\nthen jetting it out toward the rear.$" -DexDescription_Cloyster_2: - .string "This POKéMON shoots spikes from its\nshell using the same system.$" - -DexDescription_Gastly_1: - .string "GASTLY is largely composed of gaseous\nmatter. When exposed to a strong wind,\nthe gaseous body quickly dwindles away.$" -DexDescription_Gastly_2: - .string "Groups of this POKéMON cluster under\nthe eaves of houses to escape the\nravages of wind.$" - -DexDescription_Haunter_1: - .string "HAUNTER is a dangerous POKéMON.\nIf one beckons you while floating in\ndarkness, you must never approach it.$" -DexDescription_Haunter_2: - .string "This POKéMON will try to lick you with its\ntongue and steal your life away.$" - -DexDescription_Gengar_1: - .string "Sometimes, on a dark night, your shadow\nthrown by a streetlight will suddenly\nand startlingly overtake you.$" -DexDescription_Gengar_2: - .string "It is actually a GENGAR running past\nyou, pretending to be your shadow.$" - -DexDescription_Onix_1: - .string "ONIX has a magnet in its brain. It acts\nas a compass so that this POKéMON does\nnot lose direction while it is tunneling.$" -DexDescription_Onix_2: - .string "As it grows older, its body becomes\nincreasingly rounder and smoother.$" - -DexDescription_Drowzee_1: - .string "If your nose becomes itchy while you\nare sleeping, it’s a sure sign that one\nof these POKéMON is standing above$" -DexDescription_Drowzee_2: - .string "your pillow and trying to eat your dream\nthrough your nostrils.$" - -DexDescription_Hypno_1: - .string "HYPNO holds a pendulum in its hand.\nThe arcing movement and glitter of the\npendulum lull the foe into a deep state$" -DexDescription_Hypno_2: - .string "of hypnosis.\nWhile this POKéMON searches for prey,\nit polishes the pendulum.$" - -DexDescription_Krabby_1: - .string "KRABBY live on beaches, burrowed inside\nholes dug into the sand.\nOn sandy beaches with little in the way$" -DexDescription_Krabby_2: - .string "of food, these POKéMON can be seen\nsquabbling with each other over\nterritory.$" - -DexDescription_Kingler_1: - .string "KINGLER has an enormous, oversized\nclaw. It waves this huge claw in the\nair to communicate with others.$" -DexDescription_Kingler_2: - .string "However, because the claw is so heavy,\nthe POKéMON quickly tires.$" - - .ifdef SAPPHIRE -DexDescription_Voltorb_1: - .string "VOLTORB is extremely sensitive - it\nexplodes at the slightest of shocks.\nIt is rumored that it was first created$" -DexDescription_Voltorb_2: - .string "when a POKé BALL was exposed to a\npowerful pulse of energy.$" - .else -DexDescription_Voltorb_1: - .string "VOLTORB was first sighted at a company\nthat manufactures POKé BALLS.\nThe link between that sighting and$" -DexDescription_Voltorb_2: - .string "the fact that this POKéMON looks very\nsimilar to a POKé BALL remains a\nmystery.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Electrode_1: - .string "One of ELECTRODE’s characteristics is\nits attraction to electricity.\nIt is a problematical POKéMON that$" -DexDescription_Electrode_2: - .string "congregates mostly at electrical\npower plants to feed on electricity\nthat has just been generated.$" - .else -DexDescription_Electrode_1: - .string "ELECTRODE eats electricity in the\natmosphere. On days when lightning\nstrikes, you can see this POKéMON$" -DexDescription_Electrode_2: - .string "exploding all over the place from\neating too much electricity.$" - .endif - -DexDescription_Exeggcute_1: - .string "This POKéMON consists of six eggs that\nform a closely knit cluster. The six eggs\nattract each other and spin around.$" -DexDescription_Exeggcute_2: - .string "When cracks increasingly appear on the\neggs, EXEGGCUTE is close to evolution.$" - -DexDescription_Exeggutor_1: - .string "EXEGGUTOR originally came from the\ntropics. Its heads steadily grow larger\nfrom exposure to strong sunlight.$" -DexDescription_Exeggutor_2: - .string "It is said that when the heads fall off,\nthey group together to form EXEGGCUTE.$" - -DexDescription_Cubone_1: - .string "CUBONE pines for the mother it will\nnever see again. Seeing a likeness of\nits mother in the full moon, it cries.$" -DexDescription_Cubone_2: - .string "The stains on the skull the POKéMON\nwears are made by the tears it sheds.$" - -DexDescription_Marowak_1: - .string "MAROWAK is the evolved form of a CUBONE\nthat has overcome its sadness at the\nloss of its mother and grown tough.$" -DexDescription_Marowak_2: - .string "This POKéMON’s tempered and hardened\nspirit is not easily broken.$" - -DexDescription_Hitmonlee_1: - .string "HITMONLEE’s legs freely contract and\nstretch. Using these springlike legs, it\nbowls over foes with devastating kicks.$" -DexDescription_Hitmonlee_2: - .string "After battle, it rubs down its legs and\nloosens the muscles to overcome\nfatigue.$" - -DexDescription_Hitmonchan_1: - .string "HITMONCHAN is said to possess the\nspirit of a boxer who had been working\ntowards a world championship.$" -DexDescription_Hitmonchan_2: - .string "This POKéMON has an indomitable spirit\nand will never give up in the face of\nadversity.$" - -DexDescription_Lickitung_1: - .string "Whenever LICKITUNG comes across\nsomething new, it will unfailingly give it\na lick. It does so because it memorizes$" -DexDescription_Lickitung_2: - .string "things by texture and by taste.\nIt is somewhat put off by sour things.$" - - .ifdef SAPPHIRE -DexDescription_Koffing_1: - .string "KOFFING embodies toxic substances.\nIt mixes the toxins with raw garbage to\nset off a chemical reaction that$" -DexDescription_Koffing_2: - .string "results in a terribly powerful poison\ngas. The higher the temperature, the\nmore gas is concocted by this POKéMON.$" - .else -DexDescription_Koffing_1: - .string "If KOFFING becomes agitated, it raises\nthe toxicity of its internal gases and\njets them out from all over its body.$" -DexDescription_Koffing_2: - .string "This POKéMON may also overinflate its\nround body, then explode.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Weezing_1: - .string "WEEZING alternately shrinks and\ninflates its twin bodies to mix together\ntoxic gases inside.$" -DexDescription_Weezing_2: - .string "The more the gases are mixed, the more\npowerful the toxins become. The\nPOKéMON also becomes more putrid.$" - .else -DexDescription_Weezing_1: - .string "WEEZING loves the gases given off by\nrotted kitchen garbage. This POKéMON\nwill find a dirty, unkempt house and$" -DexDescription_Weezing_2: - .string "make it its home. At night, when the\npeople in the house are asleep, it will\ngo through the trash.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Rhyhorn_1: - .string "RHYHORN’s brain is very small. It is so\ndense, while on a run it forgets why it\nstarted running in the first place.$" -DexDescription_Rhyhorn_2: - .string "It apparently remembers sometimes if it\ndemolishes something.$" - .else -DexDescription_Rhyhorn_1: - .string "RHYHORN runs in a straight line,\nsmashing everything in its path.\nIt is not bothered even if it rushes$" -DexDescription_Rhyhorn_2: - .string "headlong into a block of steel.\nThis POKéMON may feel some pain from\nthe collision the next day, however.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Rhydon_1: - .string "RHYDON has a horn that serves as a\ndrill. It is used for destroying rocks\nand boulders.$" -DexDescription_Rhydon_2: - .string "This POKéMON occasionally rams into\nstreams of magma, but the armor-like\nhide prevents it from feeling the heat.$" - .else -DexDescription_Rhydon_1: - .string "RHYDON’s horn can crush even uncut\ndiamonds. One sweeping blow of its tail\ncan topple a building.$" -DexDescription_Rhydon_2: - .string "This POKéMON’s hide is extremely tough.\nEven direct cannon hits don’t leave\na scratch.$" - .endif - -DexDescription_Chansey_1: - .string "CHANSEY lays nutritionally excellent\neggs on an everyday basis.\nThe eggs are so delicious, they are$" -DexDescription_Chansey_2: - .string "easily and eagerly devoured by even\nthose people who have lost their\nappetite.$" - -DexDescription_Tangela_1: - .string "TANGELA’s vines snap off easily if they\nare grabbed. This happens without pain,\nallowing it to make a quick getaway.$" -DexDescription_Tangela_2: - .string "The lost vines are replaced by newly\ngrown vines the very next day.$" - -DexDescription_Kangaskhan_1: - .string "If you come across a young KANGASKHAN\nplaying by itself, you must never\ndisturb it or attempt to catch it.$" -DexDescription_Kangaskhan_2: - .string "The baby POKéMON’s parent is sure to\nbe in the area, and it will become\nviolently enraged at you.$" - - .ifdef SAPPHIRE -DexDescription_Horsea_1: - .string "If HORSEA senses danger, it will\nreflexively spray a dense black ink\nfrom its mouth and try to escape.$" -DexDescription_Horsea_2: - .string "This POKéMON swims by cleverly flapping\nthe fins on its back.$" - .else -DexDescription_Horsea_1: - .string "HORSEA eats small insects and moss off\nof rocks. If the ocean current turns\nfast, this POKéMON anchors itself by$" -DexDescription_Horsea_2: - .string "wrapping its tail around rocks or coral\nto prevent being washed away.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Seadra_1: - .string "SEADRA generates whirlpools by spinning\nits body. The whirlpools are strong\nenough to swallow even fishing boats.$" -DexDescription_Seadra_2: - .string "This POKéMON weakens prey with these\ncurrents, then swallows it whole.$" - .else -DexDescription_Seadra_1: - .string "SEADRA sleeps after wriggling itself\nbetween the branches of coral.\nThose trying to harvest coral are$" -DexDescription_Seadra_2: - .string "occasionally stung by this POKéMON’s\npoison barbs if they fail to notice it.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Goldeen_1: - .string "GOLDEEN loves swimming wild and free\nin rivers and ponds.\nIf one of these POKéMON is placed in an$" -DexDescription_Goldeen_2: - .string "aquarium, it will shatter even the\nthickest glass with one ram of its horn\nand make its escape.$" - .else -DexDescription_Goldeen_1: - .string "GOLDEEN is a very beautiful POKéMON\nwith fins that billow elegantly in water.\nHowever, don’t let your guard down$" -DexDescription_Goldeen_2: - .string "around this POKéMON - it could ram you\npowerfully with its horn.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Seaking_1: - .string "SEAKING is very protective of its eggs.\nThe male and female will take turns\npatrolling around their nest and eggs.$" -DexDescription_Seaking_2: - .string "The guarding of eggs by these POKéMON\ngoes on for over a month.$" - .else -DexDescription_Seaking_1: - .string "In the autumn, SEAKING males can be\nseen performing courtship dances in\nriverbeds to woo females.$" -DexDescription_Seaking_2: - .string "During this season, this POKéMON’s body\ncoloration is at its most beautiful.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Staryu_1: - .string "STARYU apparently communicates with\nthe stars in the night sky by flashing\nthe red core at the center of its body.$" -DexDescription_Staryu_2: - .string "If parts of its body are torn, this\nPOKéMON simply regenerates the\nmissing pieces and limbs.$" - .else -DexDescription_Staryu_1: - .string "STARYU’s center section has an organ\ncalled the core that shines bright red.\nIf you go to a beach toward the$" -DexDescription_Staryu_2: - .string "end of summer, the glowing cores of\nthese POKéMON look like the stars\nin the sky.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Starmie_1: - .string "STARMIE swims through water by\nspinning its star-shaped body as if it\nwere a propeller on a ship.$" -DexDescription_Starmie_2: - .string "The core at the center of this\nPOKéMON’s body glows in seven colors.$" - .else -DexDescription_Starmie_1: - .string "STARMIE’s center section - the core -\nglows brightly in seven colors.\nBecause of its luminous nature, this$" -DexDescription_Starmie_2: - .string "POKéMON has been given the nickname\n“the gem of the sea.”$" - .endif - -DexDescription_Mrmime_1: - .string "MR. MIME is a master of pantomime.\nIts gestures and motions convince\nwatchers that something unseeable$" -DexDescription_Mrmime_2: - .string "actually exists. Once it is believed,\nit will exist as if it were a real thing.$" - -DexDescription_Scyther_1: - .string "SCYTHER is blindingly fast. Its blazing\nspeed enhances the effectiveness of\nthe twin scythes on its forearms.$" -DexDescription_Scyther_2: - .string "This POKéMON’s scythes are so\neffective, they can slice through thick\nlogs in one wicked stroke.$" - -DexDescription_Jynx_1: - .string "JYNX walks rhythmically, swaying and\nshaking its hips as if it were dancing.\nIts motions are so bouncingly alluring,$" -DexDescription_Jynx_2: - .string "people seeing it are compelled to shake\ntheir hips without giving any thought\nto what they are doing.$" - -DexDescription_Electabuzz_1: - .string "When a storm arrives, gangs of this\nPOKéMON compete with each other to\nscale heights that are likely to be$" -DexDescription_Electabuzz_2: - .string "stricken by lightning bolts.\nSome towns use ELECTABUZZ in place of\nlightning rods.$" - -DexDescription_Magmar_1: - .string "In battle, MAGMAR blows out intensely\nhot flames from all over its body to\nintimidate its opponent.$" -DexDescription_Magmar_2: - .string "This POKéMON’s fiery bursts create\nheat waves that ignite grass and trees\nin its surroundings.$" - - .ifdef SAPPHIRE -DexDescription_Pinsir_1: - .string "PINSIR has a pair of massive horns \nProtruding from the surface of these\nhorns are thorns.$" -DexDescription_Pinsir_2: - .string "These thorns are driven deeply into the\nfoe’s body when the pincer closes,\nmaking it tough for the foe to escape.$" - .else -DexDescription_Pinsir_1: - .string "PINSIR is astoundingly strong. It can\ngrip a foe weighing twice its weight\nin its horns and easily lift it.$" -DexDescription_Pinsir_2: - .string "This POKéMON’s movements turn sluggish\nin cold places.$" - .endif - -DexDescription_Tauros_1: - .string "This POKéMON is not satisfied unless\nit is rampaging at all times.\nIf there is no opponent for TAUROS to$" -DexDescription_Tauros_2: - .string "battle, it will charge at thick trees and\nknock them down to calm itself.$" - - .ifdef SAPPHIRE -DexDescription_Magikarp_1: - .string "MAGIKARP is virtually useless in battle\nas it can only splash around.\nAs a result, it is considered to be weak.$" -DexDescription_Magikarp_2: - .string "However, it is actually a very hardy\nPOKéMON that can survive in any body of\nwater no matter how polluted it is.$" - .else -DexDescription_Magikarp_1: - .string "MAGIKARP is a pathetic excuse for a\nPOKéMON that is only capable of\nflopping and splashing.$" -DexDescription_Magikarp_2: - .string "This behavior prompted scientists to\nundertake research into it.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Gyarados_1: - .string "Once GYARADOS goes on a rampage, its\nferociously violent blood doesn’t calm\nuntil it has burned everything down.$" -DexDescription_Gyarados_2: - .string "There are records of this POKéMON’s\nrampages lasting a whole month.$" - .else -DexDescription_Gyarados_1: - .string "When MAGIKARP evolves into GYARADOS,\nits brain cells undergo a structural\ntransformation. It is said that this$" -DexDescription_Gyarados_2: - .string "transformation is to blame for this\nPOKéMON’s wildly violent nature.$" - .endif - -DexDescription_Lapras_1: - .string "People have driven LAPRAS almost to the\npoint of extinction. In the evenings,\nthis POKéMON is said to sing plaintively$" -DexDescription_Lapras_2: - .string "as it seeks what few others of its kind\nstill remain.$" - -DexDescription_Ditto_1: - .string "DITTO rearranges its cell structure to\ntransform itself into other shapes.\nHowever, if it tries to transform itself$" -DexDescription_Ditto_2: - .string "into something by relying on its memory,\nthis POKéMON manages to get details\nwrong.$" - -DexDescription_Eevee_1: - .string "EEVEE has an unstable genetic makeup\nthat suddenly mutates due to the\nenvironment in which it lives.$" -DexDescription_Eevee_2: - .string "Radiation from various STONES causes\nthis POKéMON to evolve.$" - -DexDescription_Vaporeon_1: - .string "VAPOREON underwent a spontaneous\nmutation and grew fins and gills that\nallow it to live underwater.$" -DexDescription_Vaporeon_2: - .string "This POKéMON has the ability to freely\ncontrol water.$" - -DexDescription_Jolteon_1: - .string "JOLTEON’s cells generate a low level of\nelectricity. This power is amplified by\nthe static electricity of its fur,$" -DexDescription_Jolteon_2: - .string "enabling the POKéMON to drop\nthunderbolts. The bristling fur is made\nof electrically charged needles.$" - -DexDescription_Flareon_1: - .string "FLAREON’s fluffy fur has a functional\npurpose - it releases heat into the air\nso that its body does not get$" -DexDescription_Flareon_2: - .string "excessively hot.\nThis POKéMON’s body temperature can\nrise to a maximum of 1,650 degrees F.$" - -DexDescription_Porygon_1: - .string "PORYGON is capable of reverting itself\nentirely back to program data and\nentering cyberspace.$" -DexDescription_Porygon_2: - .string "This POKéMON is copy-protected so it\ncannot be duplicated by copying.$" - -DexDescription_Omanyte_1: - .string "OMANYTE is one of the ancient and long-\nsince-extinct POKéMON that have been\nregenerated from fossils by people.$" -DexDescription_Omanyte_2: - .string "If attacked by an enemy, it withdraws\nitself inside its hard shell.$" - -DexDescription_Omastar_1: - .string "OMASTAR uses its tentacles to capture\nits prey. It is believed to have become\nextinct because its shell grew too large$" -DexDescription_Omastar_2: - .string "and heavy, causing its movements to\nbecome too slow and ponderous.$" - -DexDescription_Kabuto_1: - .string "KABUTO is a POKéMON that has been\nregenerated from a fossil. However, in\nextremely rare cases, living examples$" -DexDescription_Kabuto_2: - .string "have been discovered.\nThe POKéMON has not changed at all for\n300 million years.$" - -DexDescription_Kabutops_1: - .string "KABUTOPS swam underwater to hunt for\nits prey in ancient times.\nThe POKéMON was apparently evolving$" -DexDescription_Kabutops_2: - .string "from being a water-dweller to living on\nland as evident from the beginnings of\nchange in its gills and legs.$" - -DexDescription_Aerodactyl_1: - .string "AERODACTYL is a POKéMON from the age\nof dinosaurs. It was regenerated from\ngenetic material extracted from amber.$" -DexDescription_Aerodactyl_2: - .string "It is imagined to have been the king of\nthe skies in ancient times.$" - -DexDescription_Snorlax_1: - .string "SNORLAX’s typical day consists of\nnothing more than eating and sleeping.\nIt is such a docile POKéMON that there$" -DexDescription_Snorlax_2: - .string "are children who use its expansive belly\nas a place to play.$" - -DexDescription_Articuno_1: - .string "ARTICUNO is a legendary bird POKéMON\nthat can control ice.\nThe flapping of its wings chills the air.$" -DexDescription_Articuno_2: - .string "As a result, it is said that when this\nPOKéMON flies, snow will fall.$" - -DexDescription_Zapdos_1: - .string "ZAPDOS is a legendary bird POKéMON that\nhas the ability to control electricity.\nIt usually lives in thunderclouds.$" -DexDescription_Zapdos_2: - .string "The POKéMON gains power if it is\nstricken by lightning bolts.$" - -DexDescription_Moltres_1: - .string "MOLTRES is a legendary bird POKéMON\nthat has the ability to control fire.\nIf this POKéMON is injured, it is said to$" -DexDescription_Moltres_2: - .string "dip its body in the molten magma of a\nvolcano to burn and heal itself.$" - -DexDescription_Dratini_1: - .string "DRATINI continually molts and sloughs\noff its old skin.\nIt does so because the life energy$" -DexDescription_Dratini_2: - .string "within its body steadily builds to reach\nuncontrollable levels.$" - -DexDescription_Dragonair_1: - .string "DRAGONAIR stores an enormous amount\nof energy inside its body.\nIt is said to alter weather conditions$" -DexDescription_Dragonair_2: - .string "in its vicinity by discharging energy\nfrom the crystals on its neck and tail.$" - -DexDescription_Dragonite_1: - .string "DRAGONITE is capable of circling the\nglobe in just sixteen hours.\nIt is a kindhearted POKéMON that leads$" -DexDescription_Dragonite_2: - .string "lost and foundering ships in a storm to\nthe safety of land.$" - -DexDescription_Mewtwo_1: - .string "MEWTWO is a POKéMON that was created\nby genetic manipulation.\nHowever, even though the scientific$" -DexDescription_Mewtwo_2: - .string "power of humans created this POKéMON’s\nbody, they failed to endow MEWTWO with\na compassionate heart.$" - -DexDescription_Mew_1: - .string "MEW is said to possess the genetic\ncomposition of all POKéMON.\nIt is capable of making itself invisible$" -DexDescription_Mew_2: - .string "at will, so it entirely avoids notice even\nif it approaches people.$" - -DexDescription_Chikorita_1: - .string "In battle, CHIKORITA waves its leaf\naround to keep the foe at bay.\nHowever, a sweet fragrance also wafts$" -DexDescription_Chikorita_2: - .string "from the leaf, becalming the battling\nPOKéMON and creating a cozy, friendly\natmosphere all around.$" - -DexDescription_Bayleef_1: - .string "BAYLEEF’s neck is ringed by curled-up\nleaves. Inside each tubular leaf is a\nsmall shoot of a tree.$" -DexDescription_Bayleef_2: - .string "The fragrance of this shoot makes\npeople peppy.$" - -DexDescription_Meganium_1: - .string "The fragrance of MEGANIUM’s flower\nsoothes and calms emotions.\nIn battle, this POKéMON gives off more$" -DexDescription_Meganium_2: - .string "of its becalming scent to blunt the\nfoe’s fighting spirit.$" - -DexDescription_Cyndaquil_1: - .string "CYNDAQUIL protects itself by flaring up\nthe flames on its back.\nThe flames are vigorous if the POKéMON$" -DexDescription_Cyndaquil_2: - .string "is angry. However, if it is tired, the\nflames splutter fitfully with incomplete\ncombustion.$" - -DexDescription_Quilava_1: - .string "QUILAVA keeps its foes at bay with the\nintensity of its flames and gusts of\nsuperheated air.$" -DexDescription_Quilava_2: - .string "This POKéMON applies its outstanding\nnimbleness to dodge attacks even while\nscorching the foe with flames.$" - -DexDescription_Typhlosion_1: - .string "TYPHLOSION obscures itself behind a\nshimmering heat haze that it creates\nusing its intensely hot flames.$" -DexDescription_Typhlosion_2: - .string "This POKéMON creates blazing explosive\nblasts that burn everything to cinders.$" - -DexDescription_Totodile_1: - .string "Despite the smallness of its body,\nTOTODILE’s jaws are very powerful.\nWhile the POKéMON may think it is just$" -DexDescription_Totodile_2: - .string "playfully nipping, its bite has enough\npower to cause serious injury.$" - -DexDescription_Croconaw_1: - .string "Once CROCONAW has clamped its jaws on\nits foe, it will absolutely not let go.\nBecause the tips of its fangs are$" -DexDescription_Croconaw_2: - .string "forked back like barbed fishhooks, they\nbecome impossible to remove when \nthey have sunk in.$" - -DexDescription_Feraligatr_1: - .string "FERALIGATR intimidates its foes by\nopening its huge mouth.\nIn battle, it will kick the ground hard$" -DexDescription_Feraligatr_2: - .string "with its thick and powerful hind legs to\ncharge at the foe at an incredible\nspeed.$" - -DexDescription_Sentret_1: - .string "When SENTRET sleeps, it does so while\nanother stands guard. The sentry wakes\nthe others at the first sign of danger.$" -DexDescription_Sentret_2: - .string "When this POKéMON becomes separated\nfrom its pack, it becomes incapable of\nsleep due to fear.$" - -DexDescription_Furret_1: - .string "FURRET has a very slim build.\nWhen under attack, it can slickly squirm\nthrough narrow spaces and get away.$" -DexDescription_Furret_2: - .string "In spite of its short limbs, this\nPOKéMON is very nimble and fleet.$" - -DexDescription_Hoothoot_1: - .string "HOOTHOOT has an internal organ that\nsenses and tracks the earth’s rotation.\nUsing this special organ, this POKéMON$" -DexDescription_Hoothoot_2: - .string "begins hooting at precisely the same\ntime every day.$" - -DexDescription_Noctowl_1: - .string "NOCTOWL never fails at catching prey in\ndarkness. This POKéMON owes its\nsuccess to its superior vision that$" -DexDescription_Noctowl_2: - .string "allows it to see in minimal light, and to\nits soft, supple wings that make no\nsound in flight.$" - -DexDescription_Ledyba_1: - .string "LEDYBA secretes an aromatic fluid from\nwhere its legs join its body. This fluid\nis used for communicating with others.$" -DexDescription_Ledyba_2: - .string "This POKéMON conveys its feelings to\nothers by altering the fluid’s scent.$" - -DexDescription_Ledian_1: - .string "It is said that in lands with clean air,\nwhere the stars fill the sky, there live\nLEDIAN in countless numbers.$" -DexDescription_Ledian_2: - .string "There is a good reason for this - the\nPOKéMON uses the light of the stars\nas its energy.$" - -DexDescription_Spinarak_1: - .string "The web spun by SPINARAK can be\nconsidered its second nervous system.\nIt is said that this POKéMON can$" -DexDescription_Spinarak_2: - .string "determine what kind of prey is touching\nits web just by the tiny vibrations it\nfeels through the web’s strands.$" - -DexDescription_Ariados_1: - .string "ARIADOS’s feet are tipped with tiny\nhooked claws that enable it to scuttle\non ceilings and vertical walls.$" -DexDescription_Ariados_2: - .string "This POKéMON constricts the foe with\nthin and strong silk webbing.$" - - .ifdef SAPPHIRE -DexDescription_Crobat_1: - .string "CROBAT sneaks up on its intended prey\nusing wings that barely make a sound.\nThis POKéMON rests by hanging on a$" -DexDescription_Crobat_2: - .string "tree branch with its rear legs that\nserve as wings.$" - .else -DexDescription_Crobat_1: - .string "If this POKéMON is flying by fluttering\nonly a pair of wings on either the\nforelegs or hind legs, it’s proof that$" -DexDescription_Crobat_2: - .string "CROBAT has been flying a long distance.\nIt switches the wings it uses if it is\ntired.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Chinchou_1: - .string "CHINCHOU’s two antennas are filled with\ncells that generate strong electricity.\nThis POKéMON’s cells create so much$" -DexDescription_Chinchou_2: - .string "electrical power, it even makes itself\ntingle slightly.$" - .else -DexDescription_Chinchou_1: - .string "CHINCHOU lets loose positive and\nnegative electrical charges from its\ntwo antennas to make its prey faint.$" -DexDescription_Chinchou_2: - .string "This POKéMON flashes its electric\nlights to exchange signals with others.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Lanturn_1: - .string "LANTURN is known to emit light.\nIf you peer down into the dark sea from\na ship at night, you can sometimes see$" -DexDescription_Lanturn_2: - .string "this POKéMON’s light rising from the\ndepths where it swims. It gives the sea\nan appearance of a starlit night.$" - .else -DexDescription_Lanturn_1: - .string "LANTURN is nicknamed “the deep-sea\nstar” for its illuminated antenna.\nThis POKéMON produces light by$" -DexDescription_Lanturn_2: - .string "causing a chemical reaction between\nbacteria and its bodily fluids inside\nthe antenna.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Pichu_1: - .string "When PICHU plays with others, it may\nshort out electricity with another\nPICHU, creating a shower of sparks.$" -DexDescription_Pichu_2: - .string "In that event, this POKéMON will begin\ncrying, startled by the flash of sparks.$" - .else -DexDescription_Pichu_1: - .string "PICHU charges itself with electricity\nmore easily on days with thunderclouds\nor when the air is very dry.$" -DexDescription_Pichu_2: - .string "You can hear the crackling of static\nelectricity coming off this POKéMON.$" - .endif - -DexDescription_Cleffa_1: - .string "On nights with many shooting stars,\nCLEFFA can be seen dancing in a ring.\nThey dance through the night and stop$" -DexDescription_Cleffa_2: - .string "only at the break of day, when these\nPOKéMON quench their thirst with the\nmorning dew.$" - - .ifdef SAPPHIRE -DexDescription_Igglybuff_1: - .string "IGGLYBUFF has a soft and plushy body\nthat feels very much like a marshmallow.\nFrom this body wafts a gently sweet$" -DexDescription_Igglybuff_2: - .string "fragrance that soothes and calms the\nemotions of its foes.$" - .else -DexDescription_Igglybuff_1: - .string "IGGLYBUFF’s vocal chords are not\nsufficiently developed. It would hurt\nits throat if it were to sing too much.$" -DexDescription_Igglybuff_2: - .string "This POKéMON gargles with freshwater\nfrom a clean stream.$" - .endif - -DexDescription_Togepi_1: - .string "As its energy, TOGEPI uses the positive\nemotions of compassion and pleasure\nexuded by people and POKéMON.$" -DexDescription_Togepi_2: - .string "This POKéMON stores up feelings of\nhappiness inside its shell, then shares\nthem with others.$" - -DexDescription_Togetic_1: - .string "TOGETIC is said to be a POKéMON that\nbrings good fortune. When the POKéMON\nspots someone who is pure of heart,$" -DexDescription_Togetic_2: - .string "it is said to appear and share its\nhappiness with that person.$" - - .ifdef SAPPHIRE -DexDescription_Natu_1: - .string "NATU has a highly developed jumping\nability. The POKéMON flaps and leaps\nonto tree branches that are taller than$" -DexDescription_Natu_2: - .string "grown-up people to pick at the tree’s\nnew shoots.$" - .else -DexDescription_Natu_1: - .string "NATU cannot fly because its wings are\nnot yet fully grown. If your eyes meet\nwith this POKéMON’s eyes, it will stare$" -DexDescription_Natu_2: - .string "back intently at you. But if you move\neven slightly, it will hop away to safety.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Xatu_1: - .string "XATU is known to stand motionless while\nstaring at the sun all day long.\nSome people revere it as a mystical$" -DexDescription_Xatu_2: - .string "POKéMON out of their belief that XATU\nis in possession of the power to see\ninto the future.$" - .else -DexDescription_Xatu_1: - .string "XATU stands rooted and still in one\nspot all day long. People believe that\nthis POKéMON does so out of fear of$" -DexDescription_Xatu_2: - .string "the terrible things it has foreseen in\nthe future.$" - .endif - -DexDescription_Mareep_1: - .string "MAREEP’s fluffy coat of wool rubs\ntogether and builds a static charge.\nThe more static electricity is charged,$" -DexDescription_Mareep_2: - .string "the more brightly the lightbulb at the\ntip of its tail grows.$" - -DexDescription_Flaaffy_1: - .string "FLAAFFY’s wool quality changes so that\nit can generate a high amount of static\nelectricity with a small amount of wool.$" -DexDescription_Flaaffy_2: - .string "The bare and slick parts of its hide are\nshielded against electricity.$" - -DexDescription_Ampharos_1: - .string "AMPHAROS gives off so much light that\nit can be seen even from space.\nPeople in the old days used the light of$" -DexDescription_Ampharos_2: - .string "this POKéMON to send signals back and\nforth with others far away.$" - - .ifdef SAPPHIRE -DexDescription_Bellossom_1: - .string "A BELLOSSOM grows flowers more\nbeautifully if it has evolved from a\nsmelly GLOOM - the stinkier the better.$" -DexDescription_Bellossom_2: - .string "At night, this POKéMON closes its\npetals and goes to sleep.$" - .else -DexDescription_Bellossom_1: - .string "When BELLOSSOM gets exposed to plenty\nof sunlight, the leaves ringing its body\nbegin to spin around.$" -DexDescription_Bellossom_2: - .string "This POKéMON’s dancing is renowned in\nthe southern lands.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Marill_1: - .string "When fishing for food at the edge of a\nfast-running stream, MARILL wraps its\ntail around the trunk of a tree.$" -DexDescription_Marill_2: - .string "This POKéMON’s tail is flexible and\nconfigured to stretch.$" - .else -DexDescription_Marill_1: - .string "MARILL’s oil-filled tail acts much like\na life preserver. If you see just its\ntail bobbing on the water’s surface,$" -DexDescription_Marill_2: - .string "it’s a sure indication that this POKéMON\nis diving beneath the water to feed on\naquatic plants.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Azumarill_1: - .string "AZUMARILL can make balloons out of\nair. It makes these air balloons if it\nspots a drowning POKéMON.$" -DexDescription_Azumarill_2: - .string "The air balloons enable the POKéMON in\ntrouble to breathe.$" - .else -DexDescription_Azumarill_1: - .string "AZUMARILL’s long ears are indispensable\nsensors. By focusing its hearing, this\nPOKéMON can identify what kinds of$" -DexDescription_Azumarill_2: - .string "prey are around, even in rough and\nfast-running rivers.$" - .endif - -DexDescription_Sudowoodo_1: - .string "SUDOWOODO camouflages itself as a tree\nto avoid being attacked by enemies.\nHowever, because the forelegs remain$" -DexDescription_Sudowoodo_2: - .string "green throughout the year, the POKéMON\nis easily identified as a fake during\nthe winter.$" - -DexDescription_Politoed_1: - .string "The curled hair on POLITOED’s head is\nproof of its status as a king. It is said\nthat the longer and more curled the$" -DexDescription_Politoed_2: - .string "hair, the more respect this POKéMON\nearns from its peers.$" - -DexDescription_Hoppip_1: - .string "This POKéMON drifts and floats with the\nwind. If it senses the approach of\nstrong winds, HOPPIP links its leaves$" -DexDescription_Hoppip_2: - .string "with other HOPPIP to prepare against\nbeing blown away.$" - -DexDescription_Skiploom_1: - .string "SKIPLOOM’s flower blossoms when the\ntemperature rises above 64 degrees F.\nHow much the flower opens depends on$" -DexDescription_Skiploom_2: - .string "the temperature. For that reason, this\nPOKéMON is sometimes used as a\nthermometer.$" - -DexDescription_Jumpluff_1: - .string "JUMPLUFF rides warm southern winds to\ncross the sea and fly to foreign lands.\nThe POKéMON descends to the ground$" -DexDescription_Jumpluff_2: - .string "when it encounters cold air while it is\nfloating.$" - -DexDescription_Aipom_1: - .string "AIPOM’s tail ends in a hand-like\nappendage that can be cleverly\nmanipulated.$" -DexDescription_Aipom_2: - .string "However, because the POKéMON uses its\ntail so much, its real hands have become\nrather clumsy.$" - -DexDescription_Sunkern_1: - .string "SUNKERN tries to move as little as it\npossibly can. It does so because it\ntries to conserve all the nutrients it$" -DexDescription_Sunkern_2: - .string "has stored in its body for its\nevolution. It will not eat a thing, \nsubsisting only on morning dew.$" - -DexDescription_Sunflora_1: - .string "SUNFLORA converts solar energy into\nnutrition. It moves around actively in\nthe daytime when it is warm.$" -DexDescription_Sunflora_2: - .string "It stops moving as soon as the sun goes\ndown for the night.$" - -DexDescription_Yanma_1: - .string "YANMA is capable of seeing 360 degrees\nwithout having to move its eyes.\nIt is a great flier that is adept at$" -DexDescription_Yanma_2: - .string "making sudden stops and turning midair.\nThis POKéMON uses its flying ability to\nquickly chase down targeted prey.$" - -DexDescription_Wooper_1: - .string "WOOPER usually lives in water.\nHowever, it occasionally comes out onto\nland in search of food.$" -DexDescription_Wooper_2: - .string "On land, it coats its body with a gooey,\ntoxic film.$" - -DexDescription_Quagsire_1: - .string "QUAGSIRE hunts for food by leaving\nits mouth wide open in water and waiting\nfor its prey to blunder in unaware.$" -DexDescription_Quagsire_2: - .string "Because the POKéMON does not move,\nit does not get very hungry.$" - -DexDescription_Espeon_1: - .string "ESPEON is extremely loyal to any\nTRAINER it considers to be worthy.\nIt is said that this POKéMON developed$" -DexDescription_Espeon_2: - .string "its precognitive powers to protect its\nTRAINER from harm.$" - -DexDescription_Umbreon_1: - .string "UMBREON evolved as a result of exposure\nto the moon’s waves.\nIt hides silently in darkness and waits$" -DexDescription_Umbreon_2: - .string "for its foes to make a move.\nThe rings on its body glow when it leaps\nto attack.$" - -DexDescription_Murkrow_1: - .string "MURKROW was feared and loathed as the\nalleged bearer of ill fortune.\nThis POKéMON shows strong interest in$" -DexDescription_Murkrow_2: - .string "anything that sparkles or glitters.\nIt will even try to steal rings from\nwomen.$" - -DexDescription_Slowking_1: - .string "SLOWKING undertakes research every\nday in an effort to solve the mysteries\nof the world.$" -DexDescription_Slowking_2: - .string "However, this POKéMON apparently\nforgets everything it has learned if\nthe SHELLDER on its head comes off.$" - -DexDescription_Misdreavus_1: - .string "MISDREAVUS frightens people with a\ncreepy, sobbing cry. The POKéMON\napparently uses its red spheres to$" -DexDescription_Misdreavus_2: - .string "absorb the fearful feelings of foes and\nturn them into nutrition.$" - -DexDescription_Unown_1: - .string "This POKéMON is shaped like ancient\nwriting. It is a mystery as to which\ncame first, the ancient writings or the$" -DexDescription_Unown_2: - .string "various UNOWN. Research into this\ntopic is ongoing but nothing is known.$" - - .ifdef SAPPHIRE -DexDescription_Wobbuffet_1: - .string "WOBBUFFET does nothing but endure\nattacks - it won’t attack on its own.\nHowever, it won’t endure an attack on$" -DexDescription_Wobbuffet_2: - .string "its tail. When that happens, the\nPOKéMON will try to take the foe with it\nusing DESTINY BOND.$" - .else -DexDescription_Wobbuffet_1: - .string "If two or more WOBBUFFET meet, they will\nturn competitive and try to outdo each\nother’s endurance.$" -DexDescription_Wobbuffet_2: - .string "However, they may try to see which one\ncan endure the longest without food.\nTRAINERS need to beware of this habit.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Girafarig_1: - .string "GIRAFARIG’s rear head contains a tiny\nbrain that is too small for thinking.\nHowever, the rear head doesn’t need to$" -DexDescription_Girafarig_2: - .string "sleep, so it can keep watch over its\nsurroundings 24 hours a day.$" - .else -DexDescription_Girafarig_1: - .string "GIRAFARIG’s rear head also has a brain,\nbut it is small. The rear head attacks in\nresponse to smells and sounds.$" -DexDescription_Girafarig_2: - .string "Approaching this POKéMON from behind\ncan cause the rear head to suddenly\nlash out and bite.$" - .endif - -DexDescription_Pineco_1: - .string "PINECO hangs from a tree branch and\npatiently waits for prey to come along.\nIf the POKéMON is disturbed while$" -DexDescription_Pineco_2: - .string "eating by someone shaking its tree, it\ndrops down to the ground and explodes\nwith no warning.$" - -DexDescription_Forretress_1: - .string "FORRETRESS conceals itself inside its\nhardened steel shell. The shell is opened\nwhen the POKéMON is catching prey,$" -DexDescription_Forretress_2: - .string "but it does so at such a quick pace\nthat the shell’s inside cannot be seen.$" - -DexDescription_Dunsparce_1: - .string "DUNSPARCE has a drill for its tail.\nIt uses this tail to burrow into the\nground backwards.$" -DexDescription_Dunsparce_2: - .string "This POKéMON is known to make its nest\nin complex shapes deep under the\nground.$" - -DexDescription_Gligar_1: - .string "GLIGAR glides through the air without\na sound as if it were sliding.\nThis POKéMON hangs on to the face of$" -DexDescription_Gligar_2: - .string "its foe using its clawed hind legs and\nthe large pincers on its forelegs, then\ninjects the prey with its poison barb.$" - -DexDescription_Steelix_1: - .string "STEELIX lives even further underground\nthan ONIX. This POKéMON is known to dig\ntowards the earth’s core.$" -DexDescription_Steelix_2: - .string "There are records of this POKéMON\nreaching a depth of over six-tenths\nof a mile underground.$" - -DexDescription_Snubbull_1: - .string "By baring its fangs and making a scary\nface, SNUBBULL sends smaller POKéMON\nscurrying away in terror.$" -DexDescription_Snubbull_2: - .string "However, this POKéMON seems a little\nsad at making its foes flee.$" - -DexDescription_Granbull_1: - .string "GRANBULL has a particularly well-\ndeveloped lower jaw. The enormous fangs\nare heavy, causing the POKéMON to tip$" -DexDescription_Granbull_2: - .string "its head back for balance.\nUnless it is startled, it will not try to\nbite indiscriminately.$" - -DexDescription_Qwilfish_1: - .string "QWILFISH sucks in water, inflating\nitself. This POKéMON uses the pressure\nof the water it swallowed to shoot$" -DexDescription_Qwilfish_2: - .string "toxic quills all at once from all over\nits body. It finds swimming somewhat\nchallenging.$" - -DexDescription_Scizor_1: - .string "SCIZOR has a body with the hardness of\nsteel. It is not easily fazed by ordinary\nsorts of attacks.$" -DexDescription_Scizor_2: - .string "This POKéMON flaps its wings to\nregulate its body temperature.$" - -DexDescription_Shuckle_1: - .string "SHUCKLE quietly hides itself under\nrocks, keeping its body concealed\ninside its hard shell while eating$" -DexDescription_Shuckle_2: - .string "berries it has stored away.\nThe berries mix with its body fluids to\nbecome a juice.$" - - .ifdef SAPPHIRE -DexDescription_Heracross_1: - .string "HERACROSS has sharp claws on its feet.\nThese are planted firmly into the\nground or the bark of a tree, giving the$" -DexDescription_Heracross_2: - .string "POKéMON a secure and solid footing\nto forcefully fling away foes with\nits proud horn.$" - .else -DexDescription_Heracross_1: - .string "HERACROSS charges in a straight line at\nits foe, slips beneath the foe’s grasp,\nand then scoops up and hurls the$" -DexDescription_Heracross_2: - .string "opponent with its mighty horn.\nThis POKéMON even has enough power\nto topple a massive tree.$" - .endif - -DexDescription_Sneasel_1: - .string "SNEASEL scales trees by punching its\nhooked claws into the bark.\nThis POKéMON seeks out unguarded$" -DexDescription_Sneasel_2: - .string "nests and steals eggs for food while\nthe parents are away.$" - -DexDescription_Teddiursa_1: - .string "This POKéMON likes to lick its palms that\nare sweetened by being soaked in honey.\nTEDDIURSA concocts its own honey by$" -DexDescription_Teddiursa_2: - .string "blending fruits and pollen collected by\nBEEDRILL.$" - -DexDescription_Ursaring_1: - .string "In the forests inhabited by URSARING,\nit is said that there are many streams\nand towering trees where they$" -DexDescription_Ursaring_2: - .string "gather food. This POKéMON walks\nthrough its forest gathering food\nevery day.$" - - .ifdef SAPPHIRE -DexDescription_Slugma_1: - .string "SLUGMA does not have any blood in its\nbody. Instead, intensely hot magma\ncirculates throughout this POKéMON’s$" -DexDescription_Slugma_2: - .string "body, carrying essential nutrients and\noxygen to its organs.$" - .else -DexDescription_Slugma_1: - .string "Molten magma courses throughout\nSLUGMA’s circulatory system.\nIf this POKéMON is chilled, the magma$" -DexDescription_Slugma_2: - .string "cools and hardens. Its body turns\nbrittle and chunks fall off, reducing\nits size.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Magcargo_1: - .string "MAGCARGO’s body temperature is\napproximately 18,000 degrees F.\nWater is vaporized on contact.$" -DexDescription_Magcargo_2: - .string "If this POKéMON is caught in the rain,\nthe raindrops instantly turn into\nsteam, cloaking the area in a thick fog.$" - .else -DexDescription_Magcargo_1: - .string "MAGCARGO’s shell is actually its skin\nthat hardened as a result of cooling.\nIts shell is very brittle and fragile -$" -DexDescription_Magcargo_2: - .string "just touching it causes it to crumble\napart. This POKéMON returns to its\noriginal size by dipping itself in magma.$" - .endif - -DexDescription_Swinub_1: - .string "SWINUB roots for food by rubbing its\nsnout against the ground. Its favorite\nfood is a mushroom that grows under$" -DexDescription_Swinub_2: - .string "the cover of dead grass.\nThis POKéMON occasionally roots out\nhot springs.$" - -DexDescription_Piloswine_1: - .string "PILOSWINE is covered by a thick coat\nof long hair that enables it to endure\nthe freezing cold.$" -DexDescription_Piloswine_2: - .string "This POKéMON uses its tusks to dig up\nfood that has been buried under ice.$" - - .ifdef SAPPHIRE -DexDescription_Corsola_1: - .string "Clusters of CORSOLA congregate in warm\nseas where they serve as ideal hiding\nplaces for smaller POKéMON.$" -DexDescription_Corsola_2: - .string "When the water temperature falls, this\nPOKéMON migrates to the southern seas.$" - .else -DexDescription_Corsola_1: - .string "CORSOLA’s branches glitter very\nbeautifully in seven colors when they\ncatch sunlight.$" -DexDescription_Corsola_2: - .string "If any branch breaks off, this POKéMON\ngrows it back in just one night.$" - .endif - -DexDescription_Remoraid_1: - .string "REMORAID sucks in water, then expels it\nat high velocity using its abdominal\nmuscles to shoot down flying prey.$" -DexDescription_Remoraid_2: - .string "When evolution draws near, this POKéMON\ntravels downstream from rivers.$" - -DexDescription_Octillery_1: - .string "OCTILLERY grabs onto its foe using\nits tentacles. This POKéMON tries to\nimmobilize it before delivering the$" -DexDescription_Octillery_2: - .string "finishing blow.\nIf the foe turns out to be too strong,\nOCTILLERY spews ink to escape.$" - -DexDescription_Delibird_1: - .string "DELIBIRD carries its food bundled up\nin its tail. There once was a famous\nexplorer who managed to reach the peak$" -DexDescription_Delibird_2: - .string "of Mt. Everest thanks to one of these\nPOKéMON sharing its food.$" - -DexDescription_Mantine_1: - .string "On sunny days, schools of MANTINE can\nbe seen elegantly leaping over the\nsea’s waves.$" -DexDescription_Mantine_2: - .string "This POKéMON is not bothered by the\nREMORAID that hitches rides.$" - - .ifdef SAPPHIRE -DexDescription_Skarmory_1: - .string "SKARMORY’s steel wings become tattered\nand bashed in from repeated battles.\nOnce a year, the battered wings grow$" -DexDescription_Skarmory_2: - .string "back completely, restoring the cutting\nedges to their pristine state.$" - .else -DexDescription_Skarmory_1: - .string "SKARMORY is entirely encased in hard,\nprotective armor. This POKéMON flies at\nclose to 190 mph.$" -DexDescription_Skarmory_2: - .string "It slashes foes with its wings that\npossess swordlike cutting edges.$" - .endif - -DexDescription_Houndour_1: - .string "HOUNDOUR hunt as a coordinated pack.\nThey communicate with each other using\na variety of cries to corner their prey.$" -DexDescription_Houndour_2: - .string "This POKéMON’s remarkable teamwork is\nunparalleled.$" - -DexDescription_Houndoom_1: - .string "In a HOUNDOOM pack, the one with its\nhorns raked sharply towards the back\nserves a leadership role.$" -DexDescription_Houndoom_2: - .string "These POKéMON choose their leader by\nfighting amongst themselves.$" - - .ifdef SAPPHIRE -DexDescription_Kingdra_1: - .string "KINGDRA sleeps on the seafloor where\nit is otherwise devoid of life.\nWhen a storm arrives, the POKéMON is$" -DexDescription_Kingdra_2: - .string "said to awaken and wander about in\nsearch of prey.$" - .else -DexDescription_Kingdra_1: - .string "KINGDRA lives at extreme ocean depths\nthat are otherwise uninhabited.\nIt has long been believed that the$" -DexDescription_Kingdra_2: - .string "yawning of this POKéMON creates\nspiraling ocean currents.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Phanpy_1: - .string "PHANPY uses its long nose to shower\nitself. When others gather around, they\nthoroughly douse each other with water.$" -DexDescription_Phanpy_2: - .string "These POKéMON can be seen drying their\nsoaking-wet bodies at the edge of\nwater.$" - .else -DexDescription_Phanpy_1: - .string "For its nest, PHANPY digs a vertical pit \nin the ground at the edge of a river.\nIt marks the area around its nest with$" -DexDescription_Phanpy_2: - .string "its trunk to let the others know that\nthe area has been claimed.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Donphan_1: - .string "If DONPHAN were to tackle with its hard\nbody, even a house could be destroyed.\nUsing its massive strength, the$" -DexDescription_Donphan_2: - .string "POKéMON helps clear rock and mud slides\nthat block mountain trails.$" - .else -DexDescription_Donphan_1: - .string "DONPHAN’s favorite attack is curling\nits body into a ball, then charging at\nits foe while rolling at high speed.$" -DexDescription_Donphan_2: - .string "Once it starts rolling, this POKéMON\ncan’t stop very easily.$" - .endif - -DexDescription_Porygon2_1: - .string "PORYGON2 was created by humans using\nthe power of science. The man-made\nPOKéMON has been endowed with$" -DexDescription_Porygon2_2: - .string "artificial intelligence that enables it\nto learn new gestures and emotions\non its own.$" - -DexDescription_Stantler_1: - .string "STANTLER’s magnificent antlers were\ntraded at high prices as works of art.\nAs a result, this POKéMON was hunted$" -DexDescription_Stantler_2: - .string "close to extinction by those who were\nafter the priceless antlers.$" - -DexDescription_Smeargle_1: - .string "SMEARGLE marks the boundaries of its\nterritory using a body fluid that leaks\nout from the tip of its tail.$" -DexDescription_Smeargle_2: - .string "Over 5,000 different marks left by this\nPOKéMON have been found.$" - -DexDescription_Tyrogue_1: - .string "TYROGUE becomes stressed out if it\ndoes not get to train every day.\nWhen raising this POKéMON, the TRAINER$" -DexDescription_Tyrogue_2: - .string "must establish and uphold various\ntraining methods.$" - -DexDescription_Hitmontop_1: - .string "HITMONTOP spins on its head at high\nspeed, all the while delivering kicks.\nThis technique is a remarkable mix of$" -DexDescription_Hitmontop_2: - .string "both offense and defense at the same\ntime. The POKéMON travels faster\nspinning than it does walking.$" - -DexDescription_Smoochum_1: - .string "SMOOCHUM actively runs about, but\nalso falls quite often.\nWhenever the chance arrives, it will$" -DexDescription_Smoochum_2: - .string "look for its reflection to make sure its\nface hasn’t become dirty.$" - -DexDescription_Elekid_1: - .string "ELEKID stores electricity in its body.\nIf it touches metal and accidentally\ndischarges all its built-up electricity,$" -DexDescription_Elekid_2: - .string "this POKéMON begins swinging its arms\nin circles to recharge itself.$" - -DexDescription_Magby_1: - .string "MAGBY’s state of health is determined\nby observing the fire it breathes.\nIf the POKéMON is spouting yellow$" -DexDescription_Magby_2: - .string "flames from its mouth, it is in good\nhealth. When it is fatigued, black smoke\nwill be mixed in with the flames.$" - -DexDescription_Miltank_1: - .string "MILTANK gives over five gallons of milk\non a daily basis. Its sweet milk is\nenjoyed by children and grown-ups alike.$" -DexDescription_Miltank_2: - .string "People who can’t drink milk turn it into\nyogurt and eat it instead.$" - -DexDescription_Blissey_1: - .string "BLISSEY senses sadness with its fluffy\ncoat of fur. If it does so, this POKéMON\nwill rush over to the sad person,$" -DexDescription_Blissey_2: - .string "however far they may be, to share an\negg of happiness that brings a smile\nto any face.$" - -DexDescription_Raikou_1: - .string "RAIKOU embodies the speed of lightning.\nThe roars of this POKéMON send shock\nwaves shuddering through the air and$" -DexDescription_Raikou_2: - .string "shake the ground as if lightning bolts\nhad come crashing down.$" - -DexDescription_Entei_1: - .string "ENTEI embodies the passion of magma.\nThis POKéMON is thought to have been\nborn in the eruption of a volcano.$" -DexDescription_Entei_2: - .string "It sends up massive bursts of fire that\nutterly consume all that they touch.$" - -DexDescription_Suicune_1: - .string "SUICUNE embodies the compassion of\na pure spring of water. It runs across\nthe land with gracefulness.$" -DexDescription_Suicune_2: - .string "This POKéMON has the power to purify\ndirty water.$" - -DexDescription_Larvitar_1: - .string "LARVITAR is born deep under the ground.\nTo come up to the surface, this POKéMON\nmust eat its way through the soil above.$" -DexDescription_Larvitar_2: - .string "Until it does so, LARVITAR cannot see\nits parent’s face.$" - -DexDescription_Pupitar_1: - .string "PUPITAR creates a gas inside its body\nthat it compresses and forcefully\nejects to propel itself like a jet.$" -DexDescription_Pupitar_2: - .string "The body is very durable - it avoids\ndamage even if it hits solid steel.$" - -DexDescription_Tyranitar_1: - .string "TYRANITAR is so overwhelmingly\npowerful, it can bring down a whole\nmountain to make its nest.$" -DexDescription_Tyranitar_2: - .string "This POKéMON wanders about in\nmountains seeking new opponents to\nfight.$" - -DexDescription_Lugia_1: - .string "LUGIA’s wings pack devastating power -\na light fluttering of its wings can blow\napart regular houses.$" -DexDescription_Lugia_2: - .string "As a result, this POKéMON chooses to\nlive out of sight deep under the sea.$" - -DexDescription_HoOh_1: - .string "HO-OH’s feathers glow in seven colors\ndepending on the angle at which they\nare struck by light.$" -DexDescription_HoOh_2: - .string "These feathers are said to bring\nhappiness to the bearers. This POKéMON\nis said to live at the foot of a rainbow.$" - -DexDescription_Celebi_1: - .string "This POKéMON came from the future by\ncrossing over time.\nIt is thought that so long as CELEBI$" -DexDescription_Celebi_2: - .string "appears, a bright and shining future\nawaits us.$" - - .ifdef SAPPHIRE -DexDescription_Treecko_1: - .string "TREECKO is cool, calm, and collected -\nit never panics under any situation.\nIf a bigger foe were to glare at this$" -DexDescription_Treecko_2: - .string "POKéMON, it would glare right back\nwithout conceding an inch of ground.$" - .else -DexDescription_Treecko_1: - .string "TREECKO has small hooks on the bottom\nof its feet that enable it to scale\nvertical walls.$" -DexDescription_Treecko_2: - .string "This POKéMON attacks by slamming foes\nwith its thick tail.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Grovyle_1: - .string "This POKéMON adeptly flies from branch\nto branch in trees.\nIn a forest, no POKéMON can ever hope$" -DexDescription_Grovyle_2: - .string "to catch a fleeing GROVYLE however\nfast they may be.$" - .else -DexDescription_Grovyle_1: - .string "The leaves growing out of GROVYLE’s\nbody are convenient for camouflaging\nit from enemies in the forest.$" -DexDescription_Grovyle_2: - .string "This POKéMON is a master at climbing\ntrees in jungles.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Sceptile_1: - .string "SCEPTILE has seeds growing on its back.\nThey are said to be bursting with\nnutrients that revitalize trees.$" -DexDescription_Sceptile_2: - .string "This POKéMON raises the trees in a\nforest with loving care.$" - .else -DexDescription_Sceptile_1: - .string "The leaves growing on SCEPTILE’s body\nare very sharp edged. This POKéMON is\nvery agile - it leaps all over the$" -DexDescription_Sceptile_2: - .string "branches of trees and jumps on its foe\nfrom above or behind.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Torchic_1: - .string "TORCHIC has a place inside its body\nwhere it keeps its flame. Give it a hug -\nit will be glowing with warmth.$" -DexDescription_Torchic_2: - .string "This POKéMON is covered all over by a\nfluffy coat of down.$" - .else -DexDescription_Torchic_1: - .string "TORCHIC sticks with its TRAINER,\nfollowing behind with unsteady\nsteps.$" -DexDescription_Torchic_2: - .string "This POKéMON breathes fire of over\n1,800 degrees F, including fireballs\nthat leave the foe scorched black.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Combusken_1: - .string "COMBUSKEN battles with the intensely\nhot flames it spews from its beak and\nwith outstandingly destructive kicks.$" -DexDescription_Combusken_2: - .string "This POKéMON’s cry is very loud and\ndistracting.$" - .else -DexDescription_Combusken_1: - .string "COMBUSKEN toughens up its legs and\nthighs by running through fields and\nmountains.$" -DexDescription_Combusken_2: - .string "This POKéMON’s legs possess both speed\nand power, enabling it to dole out ten\nkicks in one second.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Blaziken_1: - .string "BLAZIKEN has incredibly strong legs -\nit can easily clear a 30-story building\nin one leap.$" -DexDescription_Blaziken_2: - .string "This POKéMON’s blazing punches leave\nits foes scorched and blackened.$" - .else -DexDescription_Blaziken_1: - .string "In battle, BLAZIKEN blows out intense\nflames from its wrists and attacks foes\ncourageously.$" -DexDescription_Blaziken_2: - .string "The stronger the foe, the more\nintensely this POKéMON’s wrists burn.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Mudkip_1: - .string "In water, MUDKIP breathes using the\ngills on its cheeks.\nIf it is faced with a tight situation in$" -DexDescription_Mudkip_2: - .string "battle, this POKéMON will unleash its\namazing power - it can crush rocks\nbigger than itself.$" - .else -DexDescription_Mudkip_1: - .string "The fin on MUDKIP’s head acts as highly\nsensitive radar. Using this fin to sense\nmovements of water and air, this$" -DexDescription_Mudkip_2: - .string "POKéMON can determine what is taking\nplace around it without using its eyes.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Marshtomp_1: - .string "MARSHTOMP is much faster at traveling\nthrough mud than it is at swimming.\nThis POKéMON’s hindquarters exhibit$" -DexDescription_Marshtomp_2: - .string "obvious development, giving it the\nability to walk on just its hind legs.$" - .else -DexDescription_Marshtomp_1: - .string "The surface of MARSHTOMP’s body is\nenveloped by a thin, sticky film that\nenables it to live on land.$" -DexDescription_Marshtomp_2: - .string "This POKéMON plays in mud on beaches\nwhen the ocean tide is low.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Swampert_1: - .string "SWAMPERT predicts storms by sensing\nsubtle differences in the sounds of\nwaves and tidal winds with its fins.$" -DexDescription_Swampert_2: - .string "If a storm is approaching, it piles up\nboulders to protect itself.$" - .else -DexDescription_Swampert_1: - .string "SWAMPERT is very strong. It has enough\npower to easily drag a boulder weighing\nmore than a ton.$" -DexDescription_Swampert_2: - .string "This POKéMON also has powerful vision\nthat lets it see even in murky water.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Poochyena_1: - .string "POOCHYENA is an omnivore - it will eat\nanything. A distinguishing feature is\nhow large its fangs are compared to$" -DexDescription_Poochyena_2: - .string "its body. This POKéMON tries to\nintimidate its foes by making the hair\non its tail bristle out.$" - .else -DexDescription_Poochyena_1: - .string "At first sight, POOCHYENA takes a bite\nat anything that moves.\nThis POKéMON chases after prey until$" -DexDescription_Poochyena_2: - .string "the victim becomes exhausted.\nHowever, it may turn tail if the prey\nstrikes back.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Mightyena_1: - .string "MIGHTYENA travel and act as a pack\nin the wild. The memory of its life in the\nwild compels the POKéMON to obey only$" -DexDescription_Mightyena_2: - .string "those TRAINERS that it recognizes to\npossess superior skill.$" - .else -DexDescription_Mightyena_1: - .string "MIGHTYENA gives obvious signals when\nit is preparing to attack. It starts to\ngrowl deeply and then flattens its body.$" -DexDescription_Mightyena_2: - .string "This POKéMON will bite savagely with its\nsharply pointed fangs.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Zigzagoon_1: - .string "The hair on ZIGZAGOON’s back is \nbristly. It rubs the hard back hair\nagainst trees to leave its territorial$" -DexDescription_Zigzagoon_2: - .string "markings.\nThis POKéMON may play dead to fool foes\nin battle.$" - .else -DexDescription_Zigzagoon_1: - .string "ZIGZAGOON restlessly wanders\neverywhere at all times. This POKéMON\ndoes so because it is very curious.$" -DexDescription_Zigzagoon_2: - .string "It becomes interested in anything\nthat it happens to see.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Linoone_1: - .string "When hunting, LINOONE will make a\nbeeline straight for the prey at a full\nrun. While this POKéMON is capable of$" -DexDescription_Linoone_2: - .string "topping 60 mph, it has to come to a\nscreeching halt before it can turn.$" - .else -DexDescription_Linoone_1: - .string "LINOONE always runs full speed and only\nin straight lines. If facing an obstacle,\nit makes a right-angle turn to evade it.$" -DexDescription_Linoone_2: - .string "This POKéMON is very challenged by\ngently curving roads.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Wurmple_1: - .string "WURMPLE is targeted by SWELLOW as\nprey. This POKéMON will try to resist by\npointing the spikes on its rear at the$" -DexDescription_Wurmple_2: - .string "attacking predator.\nIt will weaken the foe by leaking poison\nfrom the spikes.$" - .else -DexDescription_Wurmple_1: - .string "Using the spikes on its rear end, \nWURMPLE peels the bark off trees and\nfeeds on the sap that oozes out.$" -DexDescription_Wurmple_2: - .string "This POKéMON’s feet are tipped with\nsuction pads that allow it to cling to\nglass without slipping.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Silcoon_1: - .string "SILCOON was thought to endure hunger\nand not consume anything before its\nevolution. However, it is now thought$" -DexDescription_Silcoon_2: - .string "that this POKéMON slakes its thirst by\ndrinking rainwater that collects on its\nsilk.$" - .else -DexDescription_Silcoon_1: - .string "SILCOON tethers itself to a tree branch\nusing silk to keep from falling. There, \nthis POKéMON hangs quietly while it$" -DexDescription_Silcoon_2: - .string "awaits evolution.\nIt peers out of the silk cocoon through\na small hole.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Beautifly_1: - .string "BEAUTIFLY has a long mouth like a coiled\nneedle, which is very convenient for\ncollecting pollen from flowers.$" -DexDescription_Beautifly_2: - .string "This POKéMON rides the spring winds as\nit flits around gathering pollen.$" - .else -DexDescription_Beautifly_1: - .string "BEAUTIFLY’s favorite food is the sweet\npollen of flowers. If you want to see\nthis POKéMON, just leave a potted$" -DexDescription_Beautifly_2: - .string "flower by an open window. BEAUTIFLY\nis sure to come looking for pollen.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Cascoon_1: - .string "If it is attacked, CASCOON remains\nmotionless however badly it may be\nhurt. It does so because if it were to$" -DexDescription_Cascoon_2: - .string "move, its body would be weak upon\nevolution. This POKéMON will also not\nforget the pain it endured.$" - .else -DexDescription_Cascoon_1: - .string "CASCOON makes its protective cocoon\nby wrapping its body entirely with a\nfine silk from its mouth. Once the silk$" -DexDescription_Cascoon_2: - .string "goes around its body, it hardens.\nThis POKéMON prepares for its evolution\ninside the cocoon.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Dustox_1: - .string "When DUSTOX flaps its wings, a fine\ndust is scattered all over. This dust is\nactually a powerful poison that will$" -DexDescription_Dustox_2: - .string "even make a pro wrestler sick.\nThis POKéMON searches for food using\nits antennae like radar.$" - .else -DexDescription_Dustox_1: - .string "DUSTOX is instinctively drawn to light.\nSwarms of this POKéMON are attracted\nby the bright lights of cities, where$" -DexDescription_Dustox_2: - .string "they wreak havoc by stripping the\nleaves off roadside trees for food.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Lotad_1: - .string "LOTAD is said to have dwelled on land\nbefore. However, this POKéMON is\nthought to have returned to water$" -DexDescription_Lotad_2: - .string "because the leaf on its head grew large\nand heavy. It now lives by floating\natop the water.$" - .else -DexDescription_Lotad_1: - .string "LOTAD live in ponds and lakes, where\nthey float on the surface.\nIt grows weak if its broad leaf dies.$" -DexDescription_Lotad_2: - .string "On rare occasions, this POKéMON travels\non land in search of clean water.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Lombre_1: - .string "LOMBRE’s entire body is covered by a\nslippery, slimy film. It feels horribly\nunpleasant to be touched by this$" -DexDescription_Lombre_2: - .string "POKéMON’s hands.\nLOMBRE is often mistaken for a human\nchild.$" - .else -DexDescription_Lombre_1: - .string "LOMBRE is nocturnal - it will get active\nafter dusk. It is also a mischief-maker.\nWhen this POKéMON spots anglers,$" -DexDescription_Lombre_2: - .string "it tugs on their fishing lines from\nbeneath the surface and enjoys their\nconsternation.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Ludicolo_1: - .string "Upon hearing an upbeat and cheerful\nrhythm, the cells in LUDICOLO’s body\nbecome very energetic and active.$" -DexDescription_Ludicolo_2: - .string "Even in battle, this POKéMON will\nexhibit an amazing amount of power.$" - .else -DexDescription_Ludicolo_1: - .string "LUDICOLO begins dancing as soon as\nit hears cheerful, festive music.\nThis POKéMON is said to appear when it$" -DexDescription_Ludicolo_2: - .string "hears the singing of children on hiking\noutings.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Seedot_1: - .string "SEEDOT looks exactly like an acorn\nwhen it is dangling from a tree branch.\nIt startles other POKéMON by suddenly$" -DexDescription_Seedot_2: - .string "moving.\nThis POKéMON polishes its body once a\nday using leaves.$" - .else -DexDescription_Seedot_1: - .string "SEEDOT attaches itself to a tree\nbranch using the top of its head.\nIt sucks moisture from the tree while$" -DexDescription_Seedot_2: - .string "hanging off the branch.\nThe more water it drinks, the glossier\nthis POKéMON’s body becomes.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Nuzleaf_1: - .string "This POKéMON pulls out the leaf on its\nhead and makes a flute with it.\nThe sound of NUZLEAF’s flute strikes$" -DexDescription_Nuzleaf_2: - .string "fear and uncertainty in the hearts of\npeople lost in a forest.$" - .else -DexDescription_Nuzleaf_1: - .string "NUZLEAF live in densely overgrown\nforests. They occasionally venture out\nof the forest to startle people.$" -DexDescription_Nuzleaf_2: - .string "This POKéMON dislikes having its long\nnose pinched.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Shiftry_1: - .string "SHIFTRY’s large fans generate awesome\ngusts of wind at a speed close to 100\nfeet per second. The whipped-up wind$" -DexDescription_Shiftry_2: - .string "blows anything away.\nThis POKéMON chooses to live quietly\ndeep in forests.$" - .else -DexDescription_Shiftry_1: - .string "SHIFTRY is a mysterious POKéMON that\nis said to live atop towering trees \ndating back over a thousand years.$" -DexDescription_Shiftry_2: - .string "It creates terrific windstorms with\nthe fans it holds.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Taillow_1: - .string "TAILLOW is young - it has only just\nleft its nest. As a result, it sometimes\nbecomes lonesome and cries at night.$" -DexDescription_Taillow_2: - .string "This POKéMON feeds on WURMPLE that\nlive in forests.$" - .else -DexDescription_Taillow_1: - .string "TAILLOW courageously stands its\nground against foes, however strong\nthey may be.$" -DexDescription_Taillow_2: - .string "This gutsy POKéMON will remain defiant\neven after a loss. On the other hand,\nit cries loudly if it becomes hungry.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Swellow_1: - .string "SWELLOW is very conscientious about\nthe upkeep of its glossy wings.\nOnce two SWELLOW are gathered, they$" -DexDescription_Swellow_2: - .string "diligently take care of cleaning each\nother’s wings.$" - .else -DexDescription_Swellow_1: - .string "SWELLOW flies high above our heads,\nmaking graceful arcs in the sky.\nThis POKéMON dives at a steep angle as$" -DexDescription_Swellow_2: - .string "soon as it spots its prey. The hapless\nprey is tightly grasped by SWELLOW’s\nclawed feet, preventing escape.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Wingull_1: - .string "WINGULL rides updrafts rising from the\nsea by extending its long and narrow\nwings to glide.$" -DexDescription_Wingull_2: - .string "This POKéMON’s long beak is useful for\ncatching prey.$" - .else -DexDescription_Wingull_1: - .string "WINGULL has the habit of carrying prey\nand valuables in its beak and hiding\nthem in all sorts of locations.$" -DexDescription_Wingull_2: - .string "This POKéMON rides the winds and flies\nas if it were skating across the sky.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Pelipper_1: - .string "PELIPPER searches for food while in\nflight by skimming the wave tops.\nThis POKéMON dips its large bill in the$" -DexDescription_Pelipper_2: - .string "sea to scoop up food, then swallows\neverything in one big gulp.$" - .else -DexDescription_Pelipper_1: - .string "PELIPPER is a flying transporter that\ncarries small POKéMON and eggs inside\nits massive bill.$" -DexDescription_Pelipper_2: - .string "This POKéMON builds its nest on steep\ncliffs facing the sea.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Ralts_1: - .string "RALTS has the ability to sense the\nemotions of people.\nIf its TRAINER is in a cheerful mood,$" -DexDescription_Ralts_2: - .string "this POKéMON grows cheerful and joyous\nin the same way.$" - .else -DexDescription_Ralts_1: - .string "RALTS senses the emotions of\npeople using the horns on its head.\nThis POKéMON rarely appears before$" -DexDescription_Ralts_2: - .string "people. But when it does, it draws\ncloser if it senses that the person has\na positive disposition.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Kirlia_1: - .string "KIRLIA uses the horns on its head\nto amplify its psychokinetic power.\nWhen the POKéMON uses its power,$" -DexDescription_Kirlia_2: - .string "the air around it becomes distorted,\ncreating mirages of nonexistent\nscenery.$" - .else -DexDescription_Kirlia_1: - .string "It is said that a KIRLIA that is\nexposed to the positive emotions of\nits TRAINER grows beautiful.$" -DexDescription_Kirlia_2: - .string "This POKéMON controls psychokinetic\npowers with its highly developed brain.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Gardevoir_1: - .string "GARDEVOIR has the psychokinetic\npower to distort the dimensions and\ncreate a small black hole.$" -DexDescription_Gardevoir_2: - .string "This POKéMON will try to protect its\nTRAINER even at the risk of its own\nlife.$" - .else -DexDescription_Gardevoir_1: - .string "GARDEVOIR has the ability to read the\nfuture. If it senses impending danger\nto its TRAINER, this POKéMON is said to$" -DexDescription_Gardevoir_2: - .string "unleash its psychokinetic energy at\nfull power.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Surskit_1: - .string "If SURSKIT senses danger, it secretes\na thick, sugary syrup from the tip of\nits head.$" -DexDescription_Surskit_2: - .string "There are some POKéMON that love\neating this syrup.$" - .else -DexDescription_Surskit_1: - .string "From the tips of its feet, SURSKIT\nsecretes an oil that enables it to walk\non water as if it were skating.$" -DexDescription_Surskit_2: - .string "This POKéMON feeds on microscopic\norganisms in ponds and lakes.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Masquerain_1: - .string "MASQUERAIN’s antennas have eyelike\npatterns that usually give it an angry\nlook. If the “eyes” are droopy and$" -DexDescription_Masquerain_2: - .string "appear sad, it is said to be a sign\nthat a heavy rainfall is on its way.$" - .else -DexDescription_Masquerain_1: - .string "MASQUERAIN intimidates enemies with\nthe eyelike patterns on its antennas.\nThis POKéMON flaps its four wings to$" -DexDescription_Masquerain_2: - .string "freely fly in any direction - even\nsideways and backwards - as if it were\na helicopter.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Shroomish_1: - .string "If SHROOMISH senses danger, it shakes\nits body and scatters spores from the\ntop of its head.$" -DexDescription_Shroomish_2: - .string "This POKéMON’s spores are so toxic,\nthey make trees and weeds wilt.$" - .else -DexDescription_Shroomish_1: - .string "SHROOMISH live in damp soil in the dark\ndepths of forests. They are often\nfound keeping still under fallen leaves.$" -DexDescription_Shroomish_2: - .string "This POKéMON feeds on compost that\nis made up of fallen, rotted leaves.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Breloom_1: - .string "The seeds ringing BRELOOM’s tail are\nmade of hardened toxic spores. It is\nhorrible to eat the seeds.$" -DexDescription_Breloom_2: - .string "Just taking a bite of this POKéMON’s\nseed will cause your stomach to rumble.$" - .else -DexDescription_Breloom_1: - .string "BRELOOM closes in on its foe with light\nand sprightly footwork, then throws\npunches with its stretchy arms.$" -DexDescription_Breloom_2: - .string "This POKéMON’s fighting technique puts\nboxers to shame.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Slakoth_1: - .string "SLAKOTH’s heart beats just once a\nminute. Whatever happens, it is\ncontent to loaf around motionless.$" -DexDescription_Slakoth_2: - .string "It is rare to see this POKéMON in\nmotion.$" - .else -DexDescription_Slakoth_1: - .string "SLAKOTH lolls around for over twenty\nhours every day. Because it moves so\nlittle, it does not need much food.$" -DexDescription_Slakoth_2: - .string "This POKéMON’s sole daily meal consists\nof just three leaves.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Vigoroth_1: - .string "VIGOROTH is simply incapable of\nremaining still. Even when it tries to\nsleep, the blood in its veins grows$" -DexDescription_Vigoroth_2: - .string "agitated, compelling this POKéMON to\nrun wild throughout the jungle before\nit can settle down.$" - .else -DexDescription_Vigoroth_1: - .string "VIGOROTH is always itching and agitated\nto go on a wild rampage. It simply can’t\ntolerate sitting still for even a minute.$" -DexDescription_Vigoroth_2: - .string "This POKéMON’s stress level rises if it\ncan’t be moving constantly.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Slaking_1: - .string "Wherever SLAKING live, rings of over\na yard in diameter appear in grassy\nfields. They are made by the POKéMON$" -DexDescription_Slaking_2: - .string "as it eats all the grass within reach\nwhile lying prone on the ground.$" - .else -DexDescription_Slaking_1: - .string "SLAKING spends all day lying down and\nlolling about.\nIt eats grass growing within its reach.$" -DexDescription_Slaking_2: - .string "If it eats all the grass it can reach,\nthis POKéMON reluctantly moves to\nanother spot.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Nincada_1: - .string "NINCADA lives underground. It uses its\nsharp claws to carve the roots of trees\nand absorb moisture and nutrients.$" -DexDescription_Nincada_2: - .string "This POKéMON can’t withstand bright\nsunlight so avoids it.$" - .else -DexDescription_Nincada_1: - .string "NINCADA lives underground for many\nyears in complete darkness.\nThis POKéMON absorbs nutrients from$" -DexDescription_Nincada_2: - .string "the roots of trees. It stays motionless\nas it waits for evolution.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Ninjask_1: - .string "If NINJASK is not trained properly,\nit will refuse to obey the TRAINER and\ncry loudly continuously.$" -DexDescription_Ninjask_2: - .string "Because of this quality, this POKéMON\nis said to be one that puts the\nTRAINER’s abilities to the test.$" - .else -DexDescription_Ninjask_1: - .string "NINJASK moves around at such a high\nspeed that it cannot be seen, even\nwhile its crying can be clearly heard.$" -DexDescription_Ninjask_2: - .string "For that reason, this POKéMON was long\nbelieved to be invisible.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Shedinja_1: - .string "SHEDINJA is a peculiar POKéMON.\nIt seems to appear unsought in a POKé\nBALL after a NINCADA evolves.$" -DexDescription_Shedinja_2: - .string "This bizarre POKéMON is entirely\nimmobile - it doesn’t even breathe.$" - .else -DexDescription_Shedinja_1: - .string "SHEDINJA’s hard body doesn’t move -\nnot even a twitch. In fact, its body\nappears to be merely a hollow shell.$" -DexDescription_Shedinja_2: - .string "It is believed that this POKéMON will\nsteal the spirit of anyone peering into\nits hollow body from its back.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Whismur_1: - .string "WHISMUR is very timid. If it starts to\ncry loudly, it becomes startled by its\nown crying and cries even harder.$" -DexDescription_Whismur_2: - .string "When it finally stops crying, the\nPOKéMON goes to sleep, all tired out.$" - .else -DexDescription_Whismur_1: - .string "Normally, WHISMUR’s voice is very quiet -\nit is barely audible even if one is\npaying close attention.$" -DexDescription_Whismur_2: - .string "However, if this POKéMON senses danger,\nit starts crying at an earsplitting\nvolume.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Loudred_1: - .string "LOUDRED shouts while stamping its feet.\nAfter it finishes shouting, this\nPOKéMON becomes incapable of hearing$" -DexDescription_Loudred_2: - .string "anything for a while. This is considered\nto be a weak point.$" - .else -DexDescription_Loudred_1: - .string "LOUDRED’s bellowing can completely\ndecimate a wood-frame house. It uses\nits voice to punish its foes.$" -DexDescription_Loudred_2: - .string "This POKéMON’s round ears serve as\nloudspeakers.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Exploud_1: - .string "EXPLOUD communicates its feelings to\nthe others by emitting whistle-like\nsounds from the tubes on its body.$" -DexDescription_Exploud_2: - .string "This POKéMON only raises its voice when\nit is in battle.$" - .else -DexDescription_Exploud_1: - .string "EXPLOUD triggers earthquakes with the\ntremors it creates by bellowing. If this\nPOKéMON violently inhales from the$" -DexDescription_Exploud_2: - .string "ports on its body, it’s a sign that it is\npreparing to let loose a huge bellow.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Makuhita_1: - .string "MAKUHITA has a tireless spirit -\nit will never give up hope. It eats a lot\nof food, gets plenty of sleep, and it$" -DexDescription_Makuhita_2: - .string "trains very rigorously. By living that\nway, this POKéMON packs its body with\nenergy.$" - .else -DexDescription_Makuhita_1: - .string "MAKUHITA is tenacious - it will keep\ngetting up and attacking its foe\nhowever many times it is knocked down.$" -DexDescription_Makuhita_2: - .string "Every time it gets back up, this\nPOKéMON stores more energy in its body\nfor evolving.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Hariyama_1: - .string "HARIYAMA’s thick body may appear fat,\nbut it is actually a hunk of solid muscle.\nIf this POKéMON bears down and$" -DexDescription_Hariyama_2: - .string "tightens all its muscles, its body\nbecomes as hard as a rock.$" - .else -DexDescription_Hariyama_1: - .string "HARIYAMA practices its straight-arm\nslaps in any number of locations.\nOne hit of this POKéMON’s powerful,$" -DexDescription_Hariyama_2: - .string "openhanded, straight-arm punches\ncould snap a telephone pole in two.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Azurill_1: - .string "AZURILL’s tail is large and bouncy.\nIt is packed full of the nutrients this\nPOKéMON needs to grow.$" -DexDescription_Azurill_2: - .string "AZURILL can be seen bouncing and\nplaying on its big, rubbery tail.$" - .else -DexDescription_Azurill_1: - .string "AZURILL spins its tail as if it were a\nlasso, then hurls it far. The momentum\nof the throw sends its body flying, too.$" -DexDescription_Azurill_2: - .string "Using this unique action, one of these\nPOKéMON managed to hurl itself a record\n33 feet.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Nosepass_1: - .string "NOSEPASS had been said to be completely\nunmoving, with its magnetic nose\npointed due north.$" -DexDescription_Nosepass_2: - .string "However, close observation has revealed\nthat the POKéMON actually moves by a\nlittle over 3/8 of an inch every year.$" - .else -DexDescription_Nosepass_1: - .string "NOSEPASS’s magnetic nose is always\npointed to the north. If two of these\nPOKéMON meet, they cannot turn$" -DexDescription_Nosepass_2: - .string "their faces to each other when they\nare close because their magnetic noses\nrepel one another.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Skitty_1: - .string "SKITTY is known to chase around\nplayfully after its own tail. In the wild,\nthis POKéMON lives in holes in the trees$" -DexDescription_Skitty_2: - .string "of forests. It is very popular as a pet\nbecause of its adorable looks.$" - .else -DexDescription_Skitty_1: - .string "SKITTY has the habit of becoming\nfascinated by moving objects and\nchasing them around.$" -DexDescription_Skitty_2: - .string "This POKéMON is known to chase after\nits own tail and become dizzy.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Delcatty_1: - .string "DELCATTY sleeps anywhere it wants\nwithout keeping a permanent nest.\nIf other POKéMON approach it as it$" -DexDescription_Delcatty_2: - .string "sleeps, this POKéMON will never fight -\nit will just move away somewhere else.$" - .else -DexDescription_Delcatty_1: - .string "DELCATTY prefers to live an unfettered\nexistence in which it can do as it\npleases at its own pace.$" -DexDescription_Delcatty_2: - .string "Because this POKéMON eats and sleeps\nwhenever it decides, its daily routines\nare completely random.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Sableye_1: - .string "SABLEYE digs the ground with sharpened\nclaws to find rocks that it eats.\nSubstances in the eaten rocks$" -DexDescription_Sableye_2: - .string "crystallize and rise up to the POKéMON’s\nbody surface.$" - .else -DexDescription_Sableye_1: - .string "SABLEYE lead quiet lives deep inside\ncaverns. They are feared, however,\nbecause these POKéMON are thought to$" -DexDescription_Sableye_2: - .string "steal the spirits of people when their\neyes burn with a sinister glow in the\ndarkness.$" - .endif - - .ifdef SAPPHIRE - -DexDescription_Mawile_1: - .string "Don’t be taken in by this POKéMON’s\ncute face - it’s very dangerous. MAWILE\nfools the foe into letting down its$" -DexDescription_Mawile_2: - .string "guard, then chomps down with its\nmassive jaws. The steel jaws are really\nhorns that have been transformed.$" - - .else - - .if REVISION >= 1 -DexDescription_Mawile_1: - .string "MAWILE’s huge jaws are actually steel\nhorns that have been transformed.\nIts docile-looking face serves to lull$" -DexDescription_Mawile_2: - .string "its foe into letting down its guard.\nWhen the foe least expects it, MAWILE\nchomps it with its gaping jaws.$" - .else -DexDescription_Mawile_1: - .string "MAWHILE’s huge jaws are actually steel\nhorns that have been transformed.\nIts docile-looking face serves to lull$" -DexDescription_Mawile_2: - .string "its foe into letting down its guard.\nWhen the foe least expects it, MAWHILE\nchomps it with its gaping jaws.$" - .endif @ REVISION >= 1 - - .endif @ SAPPHIRE - - .ifdef SAPPHIRE -DexDescription_Aron_1: - .string "ARON has a body of steel.\nWith one all-out charge, this POKéMON\ncan demolish even a heavy dump truck.$" -DexDescription_Aron_2: - .string "The destroyed dump truck then becomes\na handy meal for the POKéMON.$" - .else -DexDescription_Aron_1: - .string "This POKéMON has a body of steel.\nTo make its body, ARON feeds on\niron ore that it digs from mountains.$" -DexDescription_Aron_2: - .string "Occasionally, it causes major trouble by\neating bridges and rails.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Lairon_1: - .string "LAIRON feeds on iron contained in\nrocks and water. It makes its nest on\nmountains where iron ore is buried.$" -DexDescription_Lairon_2: - .string "As a result, the POKéMON often clashes\nwith humans mining the iron ore.$" - .else -DexDescription_Lairon_1: - .string "LAIRON tempers its steel body by\ndrinking highly nutritious mineral\nspringwater until it is bloated.$" -DexDescription_Lairon_2: - .string "This POKéMON makes its nest close to\nsprings of delicious water.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Aggron_1: - .string "AGGRON is surprisingly protective\nof its environment. If its mountain\nis ravaged by a landslide or a fire, this$" -DexDescription_Aggron_2: - .string "POKéMON will haul topsoil to the area,\nplant trees, and beautifully restore its\nown territory.$" - .else -DexDescription_Aggron_1: - .string "AGGRON claims an entire mountain as its\nown territory. It mercilessly beats up\nanything that violates its environment.$" -DexDescription_Aggron_2: - .string "This POKéMON vigilantly patrols its\nterritory at all times.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Meditite_1: - .string "MEDITITE heightens its inner energy\nthrough meditation. It survives on\njust one berry a day.$" -DexDescription_Meditite_2: - .string "Minimal eating is another aspect of\nthis POKéMON’s training.$" - .else -DexDescription_Meditite_1: - .string "MEDITITE undertakes rigorous mental\ntraining deep in the mountains.\nHowever, whenever it meditates, this$" -DexDescription_Meditite_2: - .string "POKéMON always loses its concentration\nand focus. As a result, its training\nnever ends.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Medicham_1: - .string "Through the power of meditation,\nMEDICHAM developed its sixth sense.\nIt gained the ability to use$" -DexDescription_Medicham_2: - .string "psychokinetic powers. This POKéMON is\nknown to meditate for a whole month\nwithout eating.$" - .else -DexDescription_Medicham_1: - .string "It is said that through meditation,\nMEDICHAM heightens energy inside\nits body and sharpens its sixth sense.$" -DexDescription_Medicham_2: - .string "This POKéMON hides its presence by\nmerging itself with fields and\nmountains.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Electrike_1: - .string "ELECTRIKE runs faster than the human\neye can follow. The friction from\nrunning is converted into electricity,$" -DexDescription_Electrike_2: - .string "which is then stored in this POKéMON’s\nfur.$" - .else -DexDescription_Electrike_1: - .string "ELECTRIKE stores electricity in its\nlong body hair. This POKéMON stimulates\nits leg muscles with electric charges.$" -DexDescription_Electrike_2: - .string "These jolts of power give its legs\nexplosive acceleration performance.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Manectric_1: - .string "MANECTRIC discharges strong\nelectricity from its mane. The mane is\nused for collecting electricity in the$" -DexDescription_Manectric_2: - .string "atmosphere. This POKéMON creates\nthunderclouds above its head.$" - .else -DexDescription_Manectric_1: - .string "MANECTRIC is constantly discharging\nelectricity from its mane. The sparks\nsometimes ignite forest fires.$" -DexDescription_Manectric_2: - .string "When it enters a battle, this POKéMON\ncreates thunderclouds.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Plusle_1: - .string "When PLUSLE is cheering on its partner,\nit flashes with electric sparks from all\nover its body.$" -DexDescription_Plusle_2: - .string "If its partner loses, this POKéMON cries\nloudly.$" - .else -DexDescription_Plusle_1: - .string "PLUSLE always acts as a cheerleader\nfor its partners. Whenever a teammate\nputs out a good effort in battle, this$" -DexDescription_Plusle_2: - .string "POKéMON shorts out its body to create\nthe crackling noises of sparks to show\nits joy.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Minun_1: - .string "MINUN loves to cheer on its partner in\nbattle. It gives off sparks from its\nbody while it is doing so.$" -DexDescription_Minun_2: - .string "If its partner is in trouble, this\nPOKéMON gives off increasing amounts\nof sparks.$" - .else -DexDescription_Minun_1: - .string "MINUN is more concerned about cheering\non its partners than its own safety.\nIt shorts out the electricity in its$" -DexDescription_Minun_2: - .string "body to create brilliant showers of\nsparks to cheer on its teammates.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Volbeat_1: - .string "VOLBEAT’s tail glows like a lightbulb.\nWith other VOLBEAT, it uses its tail to\ndraw geometric shapes in the night sky.$" -DexDescription_Volbeat_2: - .string "This POKéMON loves the sweet aroma\ngiven off by ILLUMISE.$" - .else -DexDescription_Volbeat_1: - .string "With the arrival of night, VOLBEAT emits\nlight from its tail. It communicates with\nothers by adjusting the intensity and$" -DexDescription_Volbeat_2: - .string "flashing of its light.\nThis POKéMON is attracted by the sweet\naroma of ILLUMISE.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Illumise_1: - .string "ILLUMISE leads a flight of illuminated\nVOLBEAT to draw signs in the night sky.\nThis POKéMON is said to earn greater$" -DexDescription_Illumise_2: - .string "respect from its peers by composing\nmore complex designs in the sky.$" - .else -DexDescription_Illumise_1: - .string "ILLUMISE attracts a swarm of VOLBEAT\nusing a sweet fragrance. Once the\nVOLBEAT have gathered, this POKéMON$" -DexDescription_Illumise_2: - .string "leads the lit-up swarm in drawing\ngeometric designs on the canvas of\nthe night sky.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Roselia_1: - .string "On extremely rare occasions, a ROSELIA\nis said to appear with its flowers in\nunusual colors.$" -DexDescription_Roselia_2: - .string "The thorns on this POKéMON’s head\ncontain a vicious poison.$" - .else -DexDescription_Roselia_1: - .string "ROSELIA shoots sharp thorns as\nprojectiles at any opponent that tries\nto steal the flowers on its arms.$" -DexDescription_Roselia_2: - .string "The aroma of this POKéMON brings\nserenity to living things.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Gulpin_1: - .string "Most of GULPIN’s body is made up of its\nstomach - its heart and brain are very\nsmall in comparison.$" -DexDescription_Gulpin_2: - .string "This POKéMON’s stomach contains\nspecial enzymes that dissolve anything.$" - .else -DexDescription_Gulpin_1: - .string "Virtually all of GULPIN’s body is its\nstomach. As a result, it can swallow\nsomething its own size.$" -DexDescription_Gulpin_2: - .string "This POKéMON’s stomach contains a\nspecial fluid that digests anything.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Swalot_1: - .string "SWALOT has no teeth, so what it\neats, it swallows whole, no matter what.\nIts cavernous mouth yawns widely.$" -DexDescription_Swalot_2: - .string "An automobile tire could easily fit\ninside this POKéMON’s mouth.$" - .else -DexDescription_Swalot_1: - .string "When SWALOT spots prey, it spurts out\na hideously toxic fluid from its pores\nand sprays the target.$" -DexDescription_Swalot_2: - .string "Once the prey has weakened, this\nPOKéMON gulps it down whole with its\ncavernous mouth.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Carvanha_1: - .string "If anything invades CARVANHA’s\nterritory, it will swarm and tear at the\nintruder with its pointed fangs.$" -DexDescription_Carvanha_2: - .string "On its own, however, this POKéMON turns\nsuddenly timid.$" - .else -DexDescription_Carvanha_1: - .string "CARVANHA’s strongly developed jaws\nand its sharply pointed fangs pack the\ndestructive power to rip out boat hulls.$" -DexDescription_Carvanha_2: - .string "Many boats have been attacked and\nsunk by this POKéMON.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Sharpedo_1: - .string "SHARPEDO can swim at speeds of up to\n75 mph by jetting seawater out of its\nbackside.$" -DexDescription_Sharpedo_2: - .string "This POKéMON’s drawback is its inability\nto swim long distances.$" - .else -DexDescription_Sharpedo_1: - .string "Nicknamed “the bully of the sea,”\nSHARPEDO is widely feared.\nIts cruel fangs grow back immediately$" -DexDescription_Sharpedo_2: - .string "if they snap off.\nJust one of these POKéMON can\nthoroughly tear apart a supertanker.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Wailmer_1: - .string "WAILMER can store water inside its body\nto transform itself into a ball for\nbouncing around on the ground.$" -DexDescription_Wailmer_2: - .string "By filling itself up with more water, this\nPOKéMON can elevate the height of its\nbounces.$" - .else -DexDescription_Wailmer_1: - .string "WAILMER’s nostrils are located above\nits eyes. This playful POKéMON loves\nto startle people by forcefully snorting$" -DexDescription_Wailmer_2: - .string "out seawater it stores inside its body\nout of its nostrils.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Wailord_1: - .string "When chasing prey, WAILORD herds them\nby leaping out of the water and making\na humongous splash.$" -DexDescription_Wailord_2: - .string "It is breathtaking to see this POKéMON\nleaping out of the sea with others in\nits pod.$" - .else -DexDescription_Wailord_1: - .string "WAILORD is the largest of all identified\nPOKéMON up to now.\nThis giant POKéMON swims languorously$" -DexDescription_Wailord_2: - .string "in the vast open sea, eating massive\namounts of food at once with its\nenormous mouth.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Numel_1: - .string "NUMEL stores magma of almost 2,200\ndegrees F within its body. If it gets\nwet, the magma cools and hardens.$" -DexDescription_Numel_2: - .string "In that event, the POKéMON’s body\ngrows heavy and its movements become\nsluggish.$" - .else -DexDescription_Numel_1: - .string "NUMEL is extremely dull witted - it\ndoesn’t notice being hit. However, it\ncan’t stand hunger for even a second.$" -DexDescription_Numel_2: - .string "This POKéMON’s body is a seething\ncauldron of boiling magma.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Camerupt_1: - .string "The humps on CAMERUPT’s back are\nformed by a transformation of its\nbones. They sometimes blast out molten$" -DexDescription_Camerupt_2: - .string "magma. This POKéMON apparently erupts\noften when it is enraged.$" - .else -DexDescription_Camerupt_1: - .string "CAMERUPT has a volcano inside its body.\nMagma of 18,000 degrees F courses\nthrough its body.$" -DexDescription_Camerupt_2: - .string "Occasionally, the humps on this\nPOKéMON’s back erupt, spewing the\nsuperheated magma.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Torkoal_1: - .string "TORKOAL generates energy by burning\ncoal. It grows weaker as the fire\ndies down.$" -DexDescription_Torkoal_2: - .string "When it is preparing for battle, this\nPOKéMON burns more coal.$" - .else -DexDescription_Torkoal_1: - .string "TORKOAL digs through mountains in\nsearch of coal. If it finds some, it fills\nhollow spaces on its shell with the coal$" -DexDescription_Torkoal_2: - .string "and burns it.\nIf it is attacked, this POKéMON spouts\nthick black smoke to beat a retreat.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Spoink_1: - .string "SPOINK keeps a pearl on top of its head.\nThe pearl functions to amplify this\nPOKéMON’s psychokinetic powers.$" -DexDescription_Spoink_2: - .string "It is therefore on a constant search\nfor a bigger pearl.$" - .else -DexDescription_Spoink_1: - .string "SPOINK bounces around on its tail.\nThe shock of its bouncing makes its\nheart pump. As a result, this POKéMON$" -DexDescription_Spoink_2: - .string "cannot afford to stop bouncing - if it\nstops, its heart will stop.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Grumpig_1: - .string "GRUMPIG uses the black pearls on its\nbody to wield its fantastic powers.\nWhen it is doing so, it dances bizarrely.$" -DexDescription_Grumpig_2: - .string "This POKéMON’s black pearls are valuable\nas works of art.$" - .else -DexDescription_Grumpig_1: - .string "GRUMPIG uses the black pearls on its\nbody to amplify its psychic power waves\nfor gaining total control over its foe.$" -DexDescription_Grumpig_2: - .string "When this POKéMON uses its special\npower, its snorting breath grows\nlabored.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Spinda_1: - .string "No two SPINDA are said to have\nidentical spot patterns on their hides.\nThis POKéMON moves in a curious manner$" -DexDescription_Spinda_2: - .string "as if it is stumbling in dizziness.\nIts lurching movements can cause the\nopponent to become confused.$" - .else -DexDescription_Spinda_1: - .string "All the SPINDA that exist in the\nworld are said to have utterly unique\nspot patterns.$" -DexDescription_Spinda_2: - .string "The shaky, tottering steps of this\nPOKéMON give it the appearance of\ndancing.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Trapinch_1: - .string "TRAPINCH is a patient hunter. It digs\nan inescapable pit in a desert and waits\nfor its prey to come tumbling down.$" -DexDescription_Trapinch_2: - .string "This POKéMON can go a whole week\nwithout access to any water.$" - .else -DexDescription_Trapinch_1: - .string "TRAPINCH’s nest is a sloped, bowl-like\npit dug in sand. This POKéMON patiently\nwaits for prey to tumble down the pit.$" -DexDescription_Trapinch_2: - .string "Its giant jaws have enough strength\nto crush even boulders.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Vibrava_1: - .string "VIBRAVA’s wings have not yet\ncompleted the process of growing.\nRather than flying long distances,$" -DexDescription_Vibrava_2: - .string "they are more useful for generating\nultrasonic waves by vibrating.$" - .else -DexDescription_Vibrava_1: - .string "To make prey faint, VIBRAVA generates\nultrasonic waves by vigorously making\nits two wings vibrate.$" -DexDescription_Vibrava_2: - .string "This POKéMON’s ultrasonic waves are so\npowerful, they can bring on headaches\nin people.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Flygon_1: - .string "FLYGON whips up a sandstorm by\nflapping its wings. The wings create a\nseries of notes that sound like singing.$" -DexDescription_Flygon_2: - .string "Because the “singing” is the only thing\nthat can be heard in a sandstorm, this\nPOKéMON is said to be the desert spirit.$" - .else -DexDescription_Flygon_1: - .string "FLYGON is nicknamed “the elemental \nspirit of the desert.” Because its\nflapping wings whip up a cloud of sand,$" -DexDescription_Flygon_2: - .string "this POKéMON is always enveloped in a\nsandstorm while flying.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Cacnea_1: - .string "The more arid and harsh the\nenvironment, the more pretty and\nfragrant a flower CACNEA grows.$" -DexDescription_Cacnea_2: - .string "This POKéMON battles by wildly swinging\nits thorny arms.$" - .else -DexDescription_Cacnea_1: - .string "CACNEA lives in arid locations such\nas deserts. It releases a strong aroma\nfrom its flower to attract prey.$" -DexDescription_Cacnea_2: - .string "When prey comes near, this POKéMON\nshoots sharp thorns from its body to\nbring the victim down.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Cacturne_1: - .string "If a traveler is going through a desert\nin the thick of night, CACTURNE\nwill follow in a ragtag group.$" -DexDescription_Cacturne_2: - .string "The POKéMON are biding their time,\nwaiting for the traveler to tire and\nbecome incapable of moving.$" - .else -DexDescription_Cacturne_1: - .string "During the daytime, CACTURNE remains\nunmoving so that it does not lose any\nmoisture to the harsh desert sun.$" -DexDescription_Cacturne_2: - .string "This POKéMON becomes active at night\nwhen the temperature drops.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Swablu_1: - .string "SWABLU loves to make things clean.\nIf it spots something dirty, it will wipe\nand polish it with its cottony wings.$" -DexDescription_Swablu_2: - .string "If its wings become dirty, this POKéMON\nfinds a stream and showers itself.$" - .else -DexDescription_Swablu_1: - .string "SWABLU has light and fluffy wings that\nare like cottony clouds. This POKéMON\nis not frightened of people.$" -DexDescription_Swablu_2: - .string "It lands on the heads of people and\nsits there like a cotton-fluff hat.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Altaria_1: - .string "ALTARIA sings in a gorgeous soprano.\nIts wings are like cotton clouds.\nThis POKéMON catches updrafts with its$" -DexDescription_Altaria_2: - .string "buoyant wings and soars way up into\nthe wild blue yonder.$" - .else -DexDescription_Altaria_1: - .string "ALTARIA dances and wheels through the\nsky among billowing, cotton-like clouds.\nBy singing melodies in its crystal-clear$" -DexDescription_Altaria_2: - .string "voice, this POKéMON makes its listeners\nexperience dreamy wonderment.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Zangoose_1: - .string "ZANGOOSE usually stays on all fours,\nbut when angered, it gets up on its\nhind legs and extends its claws.$" -DexDescription_Zangoose_2: - .string "This POKéMON shares a bitter rivalry\nwith SEVIPER that dates back over\ngenerations.$" - .else -DexDescription_Zangoose_1: - .string "Memories of battling its arch-rival\nSEVIPER are etched into every cell of\nZANGOOSE’s body.$" -DexDescription_Zangoose_2: - .string "This POKéMON adroitly dodges attacks\nwith incredible agility.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Seviper_1: - .string "SEVIPER’s swordlike tail serves two\npurposes - it slashes foes and douses\nthem with secreted poison.$" -DexDescription_Seviper_2: - .string "This POKéMON will not give up its long-\nrunning blood feud with ZANGOOSE.$" - .else -DexDescription_Seviper_1: - .string "SEVIPER shares a generations-long\nfeud with ZANGOOSE. The scars on its\nbody are evidence of vicious battles.$" -DexDescription_Seviper_2: - .string "This POKéMON attacks using its sword-\nedged tail.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Lunatone_1: - .string "LUNATONE becomes active around the\ntime of the full moon. Instead of\nwalking, it moves by floating in midair.$" -DexDescription_Lunatone_2: - .string "The POKéMON’s intimidating red eyes\ncause all those who see it to become\ntransfixed with fear.$" - .else -DexDescription_Lunatone_1: - .string "LUNATONE was discovered at a location\nwhere a meteorite fell. As a result, some\npeople theorize that this POKéMON$" -DexDescription_Lunatone_2: - .string "came from space. However, no one has\nbeen able to prove this theory so far.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Solrock_1: - .string "Sunlight is the source of SOLROCK’s\npower. It is said to possess the ability\nto read the emotions of others.$" -DexDescription_Solrock_2: - .string "This POKéMON gives off intense heat\nwhile rotating its body.$" - .else -DexDescription_Solrock_1: - .string "SOLROCK is a new species of POKéMON\nthat is said to have fallen from space.\nIt floats in air and moves silently.$" -DexDescription_Solrock_2: - .string "In battle, this POKéMON releases\nintensely bright light.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Barboach_1: - .string "BARBOACH’s body is covered with a\nslimy film. If a foe grabs it, this\nPOKéMON just slips out of the enemy’s$" -DexDescription_Barboach_2: - .string "grip.\nThis POKéMON grows weak if the slimy\ncoating dries up.$" - .else -DexDescription_Barboach_1: - .string "BARBOACH’s sensitive whiskers serve\nas a superb radar system.\nThis POKéMON hides in mud, leaving only$" -DexDescription_Barboach_2: - .string "its two whiskers exposed while it waits\nfor prey to come along.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Whiscash_1: - .string "If WHISCASH goes on a wild rampage,\nit sets off a quake-like tremor with a\nradius of over three miles.$" -DexDescription_Whiscash_2: - .string "This POKéMON has the ability to predict\nreal earthquakes.$" - .else -DexDescription_Whiscash_1: - .string "WHISCASH is extremely territorial.\nJust one of these POKéMON will claim a\nlarge pond as its exclusive territory.$" -DexDescription_Whiscash_2: - .string "If a foe approaches it, it thrashes\nabout and triggers a massive\nearthquake.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Corphish_1: - .string "CORPHISH catches prey with its sharp\nclaws. It has no likes or dislikes when it\ncomes to food - it will eat anything.$" -DexDescription_Corphish_2: - .string "This POKéMON has no trouble living in\nfilthy water.$" - .else -DexDescription_Corphish_1: - .string "CORPHISH were originally foreign\nPOKéMON that were imported as pets.\nThey eventually turned up in the wild.$" -DexDescription_Corphish_2: - .string "This POKéMON is very hardy and has\ngreatly increased its population.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Crawdaunt_1: - .string "CRAWDAUNT molts (sheds) its shell\nregularly. Immediately after molting,\nits shell is soft and tender.$" -DexDescription_Crawdaunt_2: - .string "Until the shell hardens, this POKéMON\nhides in its streambed burrow to avoid\nattack from its foes.$" - .else -DexDescription_Crawdaunt_1: - .string "CRAWDAUNT has an extremely violent\nnature that compels it to challenge\nother living things to battle.$" -DexDescription_Crawdaunt_2: - .string "Other life-forms refuse to live in\nponds inhabited by this POKéMON,\nmaking them desolate places.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Baltoy_1: - .string "As soon as it spots others of its kind,\nBALTOY congregates with them and\nthen begins crying noisily in unison.$" -DexDescription_Baltoy_2: - .string "This POKéMON sleeps while cleverly\nbalancing itself on its one foot.$" - .else -DexDescription_Baltoy_1: - .string "BALTOY moves while spinning around on\nits one foot. Primitive wall paintings\ndepicting this POKéMON living among$" -DexDescription_Baltoy_2: - .string "people were discovered in some ancient\nruins.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Claydol_1: - .string "CLAYDOL is an enigma that appeared\nfrom a clay statue made by an ancient\ncivilization dating back 20,000 years.$" -DexDescription_Claydol_2: - .string "This POKéMON shoots beams from both\nits hands.$" - .else -DexDescription_Claydol_1: - .string "CLAYDOL are said to be dolls of mud made\nby primitive humans and brought to life\nby exposure to a mysterious ray.$" -DexDescription_Claydol_2: - .string "This POKéMON moves about while\nlevitating.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Lileep_1: - .string "LILEEP is an ancient POKéMON that was\nregenerated from a fossil. It remains\npermanently anchored to a rock.$" -DexDescription_Lileep_2: - .string "From its immobile perch, this POKéMON\nintently scans for prey with its two\neyes.$" - .else -DexDescription_Lileep_1: - .string "LILEEP became extinct approximately\na hundred million years ago.\nThis ancient POKéMON attaches itself$" -DexDescription_Lileep_2: - .string "to a rock on the seafloor and catches\napproaching prey using tentacles \nshaped like flower petals.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Cradily_1: - .string "CRADILY’s body serves as an anchor,\npreventing it from being washed away in\nrough seas.$" -DexDescription_Cradily_2: - .string "This POKéMON secretes a strong\ndigestive fluid from its tentacles.$" - .else -DexDescription_Cradily_1: - .string "CRADILY roams around the ocean floor\nin search of food. This POKéMON freely\nextends its tree trunk-like neck and$" -DexDescription_Cradily_2: - .string "captures unwary prey using its eight\ntentacles.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Anorith_1: - .string "ANORITH is said to be a type of \nPOKéMON predecessor, with eight wings\nat the sides of its body.$" -DexDescription_Anorith_2: - .string "This POKéMON swam in the primordial sea\nby undulating these eight wings.$" - .else -DexDescription_Anorith_1: - .string "ANORITH was regenerated from a\nprehistoric fossil. This primitive\nPOKéMON once lived in warm seas.$" -DexDescription_Anorith_2: - .string "It grips its prey firmly between its\ntwo large claws.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Armaldo_1: - .string "ARMALDO is a POKéMON species that\nbecame extinct in prehistoric times.\nThis POKéMON is said to have walked on$" -DexDescription_Armaldo_2: - .string "its hind legs, which would have been\nmore convenient for life on land.$" - .else -DexDescription_Armaldo_1: - .string "ARMALDO’s tough armor makes all attacks\nbounce off. This POKéMON’s two\nenormous claws can be freely extended$" -DexDescription_Armaldo_2: - .string "or contracted. They have the power to\npunch right through a steel slab.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Feebas_1: - .string "While FEEBAS’s body is in tatters,\nit has a hardy and tenacious life force\nthat enables it to live anywhere.$" -DexDescription_Feebas_2: - .string "However, this POKéMON is also slow and\ndimwitted, making it an easy catch.$" - .else -DexDescription_Feebas_1: - .string "FEEBAS’s fins are ragged and\ntattered from the start of its life.\nBecause of its shoddy appearance, this$" -DexDescription_Feebas_2: - .string "POKéMON is largely ignored.\nIt is capable of living in both the sea\nand in rivers.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Milotic_1: - .string "MILOTIC live at the bottom of large\nlakes. When this POKéMON’s body glows a\nvivid pink, it releases a pulsing wave of$" -DexDescription_Milotic_2: - .string "energy that brings soothing calm to\nrestless spirits.$" - .else -DexDescription_Milotic_1: - .string "MILOTIC is said to be the most\nbeautiful of all the POKéMON.\nIt has the power to becalm such$" -DexDescription_Milotic_2: - .string "emotions as anger and hostility to quell\nbitter feuding.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Castform_1: - .string "CASTFORM borrows the power of nature\nto transform itself into the guises of\nthe sun, rain clouds, and snow clouds.$" -DexDescription_Castform_2: - .string "This POKéMON’s feelings change with the\nweather.$" - .else -DexDescription_Castform_1: - .string "CASTFORM’s appearance changes with\nthe weather.\nThis POKéMON gained the ability to use$" -DexDescription_Castform_2: - .string "the vast power of nature to protect\nits tiny body.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Kecleon_1: - .string "KECLEON alters its body coloration to\nblend in with its surroundings, allowing\nit to sneak up on its prey unnoticed.$" -DexDescription_Kecleon_2: - .string "Then it lashes out with its long,\nstretchy tongue to instantly ensnare\nthe unsuspecting target.$" - .else -DexDescription_Kecleon_1: - .string "KECLEON is capable of changing its body\ncolors at will to blend in with its\nsurroundings.$" -DexDescription_Kecleon_2: - .string "There is one exception - this POKéMON\ncan’t change the zigzag pattern on its\nbelly.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Shuppet_1: - .string "SHUPPET grows by feeding on dark\nemotions, such as vengefulness and \nenvy, in the hearts of people.$" -DexDescription_Shuppet_2: - .string "It roams through cities in search of\ngrudges that taint people.$" - .else -DexDescription_Shuppet_1: - .string "SHUPPET is attracted by feelings\nof jealousy and vindictiveness.\nIf someone develops strong feelings of$" -DexDescription_Shuppet_2: - .string "vengeance, this POKéMON will appear\nin a swarm and line up beneath the eaves\nof that person’s home.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Banette_1: - .string "A cursed energy permeated the stuffing\nof a discarded and forgotten plush doll,\ngiving it new life as BANETTE.$" -DexDescription_Banette_2: - .string "The POKéMON’s energy would escape if it\nwere to ever open its mouth.$" - .else -DexDescription_Banette_1: - .string "BANETTE generates energy for laying\nstrong curses by sticking pins into its\nown body.$" -DexDescription_Banette_2: - .string "This POKéMON was originally a pitiful\nplush doll that was thrown away.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Duskull_1: - .string "DUSKULL wanders lost among the deep\ndarkness of midnight. There is an oft-\ntold admonishment given to misbehaving$" -DexDescription_Duskull_2: - .string "children that this POKéMON will spirit\naway bad children who earn scoldings\nfrom their mothers.$" - .else -DexDescription_Duskull_1: - .string "DUSKULL can pass through any wall no\nmatter how thick it may be.\nOnce this POKéMON chooses a target,$" -DexDescription_Duskull_2: - .string "it will doggedly pursue the intended\nvictim until the break of dawn.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Dusclops_1: - .string "DUSCLOPS absorbs anything, however\nlarge the object may be. This POKéMON\nhypnotizes its foe by waving its hands$" -DexDescription_Dusclops_2: - .string "in a macabre manner and by bringing its\nsingle eye to bear. The hypnotized foe\nis made to do DUSCLOPS’s bidding.$" - .else -DexDescription_Dusclops_1: - .string "DUSCLOPS’s body is completely hollow -\nthere is nothing at all inside.\nIt is said that its body is like a black$" -DexDescription_Dusclops_2: - .string "hole. This POKéMON will absorb anything\ninto its body, but nothing will ever come\nback out.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Tropius_1: - .string "Children of the southern tropics eat\nas snacks the fruit that grows in\nbunches around the neck of TROPIUS.$" -DexDescription_Tropius_2: - .string "This POKéMON flies by flapping the\nleaves on its back as if they were\nwings.$" - .else -DexDescription_Tropius_1: - .string "The bunches of fruit around TROPIUS’s\nneck are very popular with children.\nThis POKéMON loves fruit, and eats it$" -DexDescription_Tropius_2: - .string "continuously. Apparently, its love for\nfruit resulted in its own outgrowth\nof fruit.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Chimecho_1: - .string "In high winds, CHIMECHO cries as it\nhangs from a tree branch or the eaves\nof a building using a suction cup on its$" -DexDescription_Chimecho_2: - .string "head.\nThis POKéMON plucks berries with its\nlong tail and eats them.$" - .else -DexDescription_Chimecho_1: - .string "CHIMECHO makes its cries echo\ninside its hollow body. When this\nPOKéMON becomes enraged, its cries$" -DexDescription_Chimecho_2: - .string "result in ultrasonic waves that have\nthe power to knock foes flying.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Absol_1: - .string "ABSOL has the ability to foretell the\ncoming of natural disasters.\nIt lives in a harsh, rugged mountain$" -DexDescription_Absol_2: - .string "environment. This POKéMON very rarely\nventures down from the mountains.$" - .else -DexDescription_Absol_1: - .string "Every time ABSOL appears before people,\nit is followed by a disaster such as an\nearthquake or a tidal wave.$" -DexDescription_Absol_2: - .string "As a result, it came to be known as the\ndisaster POKéMON.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Wynaut_1: - .string "WYNAUT gather on moonlit nights to play\nby squeezing up against each other.\nBy being squeezed, this POKéMON gains$" -DexDescription_Wynaut_2: - .string "endurance and is trained to dole out\npowerful counterattacks.$" - .else -DexDescription_Wynaut_1: - .string "WYNAUT can always be seen with a big,\nhappy smile on its face. Look at its tail\nto determine if it is angry.$" -DexDescription_Wynaut_2: - .string "When angered, this POKéMON will be\nslapping the ground with its tail.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Snorunt_1: - .string "SNORUNT survives by eating only snow\nand ice.\nOld folklore claims that a house visited$" -DexDescription_Snorunt_2: - .string "by this POKéMON is sure to prosper for\nmany generations to come.$" - .else -DexDescription_Snorunt_1: - .string "SNORUNT live in regions with heavy\nsnowfall. In seasons without snow, such\nas spring and summer, this POKéMON$" -DexDescription_Snorunt_2: - .string "steals away to live quietly among\nstalactites and stalagmites deep in\ncaverns.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Glalie_1: - .string "GLALIE has the ability to freely\ncontrol ice. For example, it can\ninstantly freeze its foe solid.$" -DexDescription_Glalie_2: - .string "After immobilizing its foe in ice, this\nPOKéMON enjoys eating it in leisurely\nfashion.$" - .else -DexDescription_Glalie_1: - .string "GLALIE has a body made of rock, which it\nhardens with an armor of ice.\nThis POKéMON has the ability to freeze$" -DexDescription_Glalie_2: - .string "moisture in the atmosphere into any\nshape it desires.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Spheal_1: - .string "SPHEAL always travels by rolling\naround on its ball-like body. When the\nseason for ice floes arrives, this$" -DexDescription_Spheal_2: - .string "POKéMON can be seen rolling about on\nice and crossing the sea.$" - .else -DexDescription_Spheal_1: - .string "SPHEAL is much faster rolling than \nwalking to get around. When groups of\nthis POKéMON eat, they all clap at once$" -DexDescription_Spheal_2: - .string "to show their pleasure. Because of this,\ntheir mealtimes are noisy.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Sealeo_1: - .string "SEALEO often balances and rolls\nthings on the tip of its nose. While the\nPOKéMON is rolling something, it checks$" -DexDescription_Sealeo_2: - .string "the object’s aroma and texture to\ndetermine whether it likes the object\nor not.$" - .else -DexDescription_Sealeo_1: - .string "SEALEO has the habit of always juggling\non the tip of its nose anything it sees\nfor the first time.$" -DexDescription_Sealeo_2: - .string "This POKéMON occasionally entertains\nitself by balancing and rolling a SPHEAL\non its nose.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Walrein_1: - .string "WALREIN swims all over in frigid\nseawater while crushing icebergs with\nits grand, imposing tusks.$" -DexDescription_Walrein_2: - .string "Its thick layer of blubber makes enemy\nattacks bounce off harmlessly.$" - .else -DexDescription_Walrein_1: - .string "WALREIN’s two massively developed\ntusks can totally shatter blocks of\nice weighing ten tons with one blow.$" -DexDescription_Walrein_2: - .string "This POKéMON’s thick coat of blubber\ninsulates it from subzero temperatures.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Clamperl_1: - .string "CLAMPERL grows while being protected\nby its rock-hard shell. When its body\nbecomes too large to fit inside the$" -DexDescription_Clamperl_2: - .string "shell, it is sure evidence that this\nPOKéMON is getting close to evolution.$" - .else -DexDescription_Clamperl_1: - .string "CLAMPERL’s sturdy shell is not only good\nfor protection - it is also used for\nclamping and catching prey.$" -DexDescription_Clamperl_2: - .string "A fully grown CLAMPERL’s shell will be\nscored with nicks and scratches all\nover.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Huntail_1: - .string "HUNTAIL’s tail is shaped like a fish.\nIt uses the tail to attract prey, then\nswallows the prey whole with its large,$" -DexDescription_Huntail_2: - .string "gaping mouth.\nThis POKéMON swims by wiggling its\nslender body like a snake.$" - .else -DexDescription_Huntail_1: - .string "HUNTAIL’s presence went unnoticed by\npeople for a long time because it lives\nat extreme depths in the sea.$" -DexDescription_Huntail_2: - .string "This POKéMON’s eyes can see clearly\neven in the murky dark depths of the\nocean.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Gorebyss_1: - .string "Although GOREBYSS is the very picture\nof elegance and beauty while swimming,\nit is also cruel. When it spots prey, this$" -DexDescription_Gorebyss_2: - .string "POKéMON inserts its thin mouth into the\nprey’s body and drains the prey of its\nbody fluids.$" - .else -DexDescription_Gorebyss_1: - .string "GOREBYSS lives in the southern seas\nat extreme depths. Its body is built to\nwithstand the enormous pressure of$" -DexDescription_Gorebyss_2: - .string "water at incredible depths. Because of\nthis, this POKéMON’s body is unharmed\nby ordinary attacks.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Relicanth_1: - .string "RELICANTH is a rare species that was\ndiscovered in deep-sea explorations.\nThis POKéMON’s body withstands the$" -DexDescription_Relicanth_2: - .string "enormous water pressure of the ocean\ndepths. Its body is covered in tough\nscales that are like craggy rocks.$" - .else -DexDescription_Relicanth_1: - .string "RELICANTH is a POKéMON species that\nexisted for a hundred million years\nwithout ever changing its form.$" -DexDescription_Relicanth_2: - .string "This ancient POKéMON feeds on\nmicroscopic organisms with its\ntoothless mouth.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Luvdisc_1: - .string "LUVDISC’s heart-shaped body is a\nsymbol of love and romance.\nIt is said that any couple meeting this$" -DexDescription_Luvdisc_2: - .string "POKéMON is promised a loving\nrelationship that never ends.$" - .else -DexDescription_Luvdisc_1: - .string "LUVDISC live in shallow seas in the\ntropics. This heart-shaped POKéMON\nearned its name by swimming after$" -DexDescription_Luvdisc_2: - .string "loving couples it spotted in the\nocean’s waves.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Bagon_1: - .string "BAGON harbors a never-ending dream of\none day soaring high among the clouds.\nAs if trying to dispel its frustration$" -DexDescription_Bagon_2: - .string "over its inability to fly, this POKéMON\nslams its hard head against huge rocks\nand shatters them into pebbles.$" - .else -DexDescription_Bagon_1: - .string "BAGON has a dream of one day soaring\nin the sky. In doomed efforts to fly,\nthis POKéMON hurls itself off cliffs.$" -DexDescription_Bagon_2: - .string "As a result of its dives, its head has \ngrown tough and as hard as tempered\nsteel.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Shelgon_1: - .string "Covering SHELGON’s body are outgrowths\nmuch like bones. The shell is very hard\nand bounces off enemy attacks.$" -DexDescription_Shelgon_2: - .string "When awaiting evolution, this POKéMON\nhides away in a cavern.$" - .else -DexDescription_Shelgon_1: - .string "Inside SHELGON’s armor-like shell, cells\nare in the midst of transformation\nto create an entirely new body.$" -DexDescription_Shelgon_2: - .string "This POKéMON’s shell is extremely heavy,\nmaking its movements sluggish.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Salamence_1: - .string "By evolving into SALAMENCE, this\nPOKéMON finally realizes its long-held\ndream of growing wings.$" -DexDescription_Salamence_2: - .string "To express its joy, it flies and wheels\nall over the sky while spouting flames\nfrom its mouth.$" - .else -DexDescription_Salamence_1: - .string "SALAMENCE came about as a result of a\nstrong, long-held dream of growing\nwings. It is said that this powerful$" -DexDescription_Salamence_2: - .string "desire triggered a sudden mutation in\nthis POKéMON’s cells, causing it to\nsprout its magnificent wings.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Beldum_1: - .string "BELDUM keeps itself floating by\ngenerating a magnetic force that\nrepels earth’s natural magnetism.$" -DexDescription_Beldum_2: - .string "When it sleeps, this POKéMON anchors\nitself to a cliff using the hooks on\nits rear.$" - .else -DexDescription_Beldum_1: - .string "Instead of blood, a powerful magnetic\nforce courses throughout BELDUM’s\nbody. This POKéMON communicates with$" -DexDescription_Beldum_2: - .string "others by sending controlled pulses of\nmagnetism.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Metang_1: - .string "When two BELDUM fuse together, METANG\nis formed. The brains of the BELDUM are\njoined by a magnetic nervous system.$" -DexDescription_Metang_2: - .string "This POKéMON turns its arms to the rear\nfor traveling at high speed.$" - .else -DexDescription_Metang_1: - .string "When two BELDUM fuse together, METANG\nis formed. The brains of the BELDUM are\njoined by a magnetic nervous system.$" -DexDescription_Metang_2: - .string "By linking its brains magnetically,\nthis POKéMON generates strong\npsychokinetic power.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Metagross_1: - .string "METAGROSS is the result of two METANG\nachieving fusion. When hunting, this\nPOKéMON pins the prey to the ground$" -DexDescription_Metagross_2: - .string "under its massive body. It then eats\nthe helpless victim using the large \nmouth on its stomach.$" - .else -DexDescription_Metagross_1: - .string "METAGROSS has four brains in total.\nCombined, the four brains can breeze\nthrough difficult calculations faster$" -DexDescription_Metagross_2: - .string "than a supercomputer.\nThis POKéMON can float in the air by\ntucking in its four legs.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Regirock_1: - .string "REGIROCK’s body is composed entirely of\nrocks. Recently, a study made the\nstartling discovery that the rocks$" -DexDescription_Regirock_2: - .string "were all unearthed from different\nlocations.$" - .else -DexDescription_Regirock_1: - .string "REGIROCK was sealed away by people\nlong ago. If this POKéMON’s body is\ndamaged in battle, it is said to seek$" -DexDescription_Regirock_2: - .string "out suitable rocks on its own to repair\nitself.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Regice_1: - .string "REGICE cloaks itself with frigid air of\nnegative 328 degrees F.\nThings will freeze solid just by going$" -DexDescription_Regice_2: - .string "near this POKéMON.\nIts icy body is so cold, it will not melt\neven if it is immersed in magma.$" - .else -DexDescription_Regice_1: - .string "REGICE’s body was made during an ice\nage. The deep-frozen body can’t be\nmelted, even by fire.$" -DexDescription_Regice_2: - .string "This POKéMON controls frigid air of\nminus 328 degrees F.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Registeel_1: - .string "REGISTEEL was imprisoned by people\nin ancient times.\nThe metal composing its body is thought$" -DexDescription_Registeel_2: - .string "to be a curious substance that is not\nof this earth.$" - .else -DexDescription_Registeel_1: - .string "REGISTEEL has a body that is harder\nthan any kind of metal.\nIts body is apparently hollow.$" -DexDescription_Registeel_2: - .string "No one has any idea what this POKéMON\neats.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Latias_1: - .string "LATIAS is highly intelligent and capable\nof understanding human speech.\nIt is covered with a glass-like down.$" -DexDescription_Latias_2: - .string "The POKéMON enfolds its body with its\ndown and refracts light to alter its\nappearance.$" - .else -DexDescription_Latias_1: - .string "LATIAS is highly sensitive to the\nemotions of people. If it senses any\nhostility, this POKéMON ruffles the$" -DexDescription_Latias_2: - .string "feathers all over its body and cries\nshrilly to intimidate the foe.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Latios_1: - .string "LATIOS will only open its heart to a\nTRAINER with a compassionate spirit.\nThis POKéMON can fly faster than a jet$" -DexDescription_Latios_2: - .string "plane by folding its forelegs to minimize\nair resistance.$" - .else -DexDescription_Latios_1: - .string "LATIOS has the ability to make its foe\nsee an image of what it has seen or\nimagines in its head.$" -DexDescription_Latios_2: - .string "This POKéMON is intelligent and\nunderstands human speech.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Kyogre_1: - .string "KYOGRE is named in mythology as the\nPOKéMON that expanded the sea by\ncovering the land with torrential rains$" -DexDescription_Kyogre_2: - .string "and towering tidal waves.\nIt took to sleep after a cataclysmic\nbattle with GROUDON.$" - .else -DexDescription_Kyogre_1: - .string "KYOGRE has the power to create massive\nrain clouds that cover the entire sky\nand bring about torrential downpours.$" -DexDescription_Kyogre_2: - .string "This POKéMON saved people who were\nsuffering from droughts.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Groudon_1: - .string "GROUDON has the power to scatter rain\nclouds and make water evaporate with\nlight and heat.$" -DexDescription_Groudon_2: - .string "It came as a savior to people who had\nbeen suffering from terrible floods.$" - .else -DexDescription_Groudon_1: - .string "GROUDON has long been described in \nmythology as the POKéMON that raised\nlands and expanded continents.$" -DexDescription_Groudon_2: - .string "This POKéMON took to sleep after a\ncataclysmic battle with KYOGRE.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Rayquaza_1: - .string "RAYQUAZA is said to have lived for\nhundreds of millions of years in the\nearth’s ozone layer, above the clouds.$" -DexDescription_Rayquaza_2: - .string "Its existence had been completely\nunknown because it lived so high in\nthe sky.$" - .else -DexDescription_Rayquaza_1: - .string "RAYQUAZA lived for hundreds of millions\nof years in the earth’s ozone layer, \nnever descending to the ground.$" -DexDescription_Rayquaza_2: - .string "This POKéMON appears to feed on water\nand particles in the atmosphere.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Jirachi_1: - .string "JIRACHI will awaken from its sleep of\na thousand years if you sing to it in a\nvoice of purity.$" -DexDescription_Jirachi_2: - .string "It is said to make true any wish that\npeople desire.$" - .else -DexDescription_Jirachi_1: - .string "A legend states that JIRACHI will make\ntrue any wish that is written on notes\nattached to its head when it awakens.$" -DexDescription_Jirachi_2: - .string "If this POKéMON senses danger, it will\nfight without awakening.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Deoxys_1: - .string "DEOXYS emerged from a virus that came\nfrom space. It is highly intelligent and\nwields psychokinetic powers.$" -DexDescription_Deoxys_2: - .string "This POKéMON shoots lasers from the\ncrystalline organ on its chest.$" - .else -DexDescription_Deoxys_1: - .string "The DNA of a space virus underwent a\nsudden mutation upon exposure to a\nlaser beam and resulted in DEOXYS.$" -DexDescription_Deoxys_2: - .string "The crystalline organ on this POKéMON’s\nchest appears to be its brain.$" - .endif - -@ Unfortunately, preproc doesn't allow us to use strings inside macros, -@ so the category names have to be on separate lines. - - .align 2 -gPokedexEntries:: @ 83B1858 - .string "UNKNOWN$", 12 - pokedex_entry Dummy, 0, 0, 256, 0, 256, 0 - .string "SEED$", 12 - pokedex_entry Bulbasaur, 7, 69, 356, 17, 256, 0 - .string "SEED$", 12 - pokedex_entry Ivysaur, 10, 130, 335, 13, 256, 0 - .string "SEED$", 12 - pokedex_entry Venusaur, 20, 1000, 256, 0, 388, 6 - .string "LIZARD$", 12 - pokedex_entry Charmander, 6, 85, 444, 18, 256, 0 - .string "FLAME$", 12 - pokedex_entry Charmeleon, 11, 190, 302, 9, 256, 0 - .string "FLAME$", 12 - pokedex_entry Charizard, 17, 905, 256, 1, 302, 3 - .string "TINY TURTLE$", 12 - pokedex_entry Squirtle, 5, 90, 412, 18, 256, 0 - .string "TURTLE$", 12 - pokedex_entry Wartortle, 10, 225, 332, 10, 256, 0 - .string "SHELLFISH$", 12 - pokedex_entry Blastoise, 16, 855, 256, -1, 293, 2 - .string "WORM$", 12 - pokedex_entry Caterpie, 3, 29, 549, 22, 256, 0 - .string "COCOON$", 12 - pokedex_entry Metapod, 7, 99, 350, 18, 256, 0 - .string "BUTTERFLY$", 12 - pokedex_entry Butterfree, 11, 320, 312, 2, 256, 0 - .string "HAIRY BUG$", 12 - pokedex_entry Weedle, 3, 32, 455, 22, 256, 0 - .string "COCOON$", 12 - pokedex_entry Kakuna, 6, 100, 424, 17, 256, 0 - .string "POISON BEE$", 12 - pokedex_entry Beedrill, 10, 295, 366, 2, 256, 0 - .string "TINY BIRD$", 12 - pokedex_entry Pidgey, 3, 18, 508, -3, 256, 0 - .string "BIRD$", 12 - pokedex_entry Pidgeotto, 11, 300, 331, 10, 256, 0 - .string "BIRD$", 12 - pokedex_entry Pidgeot, 15, 395, 269, 0, 256, 0 - .string "MOUSE$", 12 - pokedex_entry Rattata, 3, 35, 481, 21, 256, 0 - .string "MOUSE$", 12 - pokedex_entry Raticate, 7, 185, 459, 18, 256, 0 - .string "TINY BIRD$", 12 - pokedex_entry Spearow, 3, 20, 571, 22, 256, 0 - .string "BEAK$", 12 - pokedex_entry Fearow, 12, 380, 278, 1, 256, 0 - .string "SNAKE$", 12 - pokedex_entry Ekans, 20, 69, 298, 12, 256, 0 - .string "COBRA$", 12 - pokedex_entry Arbok, 35, 650, 256, 0, 296, 2 - .string "MOUSE$", 12 - pokedex_entry Pikachu, 4, 60, 479, 19, 256, 0 - .string "MOUSE$", 12 - pokedex_entry Raichu, 8, 300, 426, 13, 256, 0 - .string "MOUSE$", 12 - pokedex_entry Sandshrew, 6, 120, 365, 18, 256, 0 - .string "MOUSE$", 12 - pokedex_entry Sandslash, 10, 295, 341, 11, 256, 0 - .string "POISON PIN$", 12 - pokedex_entry NidoranF, 4, 70, 488, 21, 256, 0 - .string "POISON PIN$", 12 - pokedex_entry Nidorina, 8, 200, 381, 15, 256, 0 - .string "DRILL$", 12 - pokedex_entry Nidoqueen, 13, 600, 293, 4, 256, 0 - .string "POISON PIN$", 12 - pokedex_entry NidoranM, 5, 90, 511, 20, 256, 0 - .string "POISON PIN$", 12 - pokedex_entry Nidorino, 9, 195, 408, 15, 256, 0 - .string "DRILL$", 12 - pokedex_entry Nidoking, 14, 620, 256, 0, 256, 0 - .string "FAIRY$", 12 - pokedex_entry Clefairy, 6, 75, 441, 20, 256, 0 - .string "FAIRY$", 12 - pokedex_entry Clefable, 13, 400, 256, 5, 256, 0 - .string "FOX$", 12 - pokedex_entry Vulpix, 6, 99, 542, 19, 256, 0 - .string "FOX$", 12 - pokedex_entry Ninetales, 11, 199, 339, 10, 256, 0 - .string "BALLOON$", 12 - pokedex_entry Jigglypuff, 5, 55, 433, 2, 256, 0 - .string "BALLOON$", 12 - pokedex_entry Wigglytuff, 10, 120, 328, 11, 256, 0 - .string "BAT$", 12 - pokedex_entry Zubat, 8, 75, 362, -5, 256, 0 - .string "BAT$", 12 - pokedex_entry Golbat, 16, 550, 256, 1, 256, 0 - .string "WEED$", 12 - pokedex_entry Oddish, 5, 54, 423, 19, 256, 0 - .string "WEED$", 12 - pokedex_entry Gloom, 8, 86, 329, 13, 256, 0 - .string "FLOWER$", 12 - pokedex_entry Vileplume, 12, 186, 256, 4, 256, 0 - .string "MUSHROOM$", 12 - pokedex_entry Paras, 3, 54, 593, 22, 256, 0 - .string "MUSHROOM$", 12 - pokedex_entry Parasect, 10, 295, 307, 8, 256, 0 - .string "INSECT$", 12 - pokedex_entry Venonat, 10, 300, 360, 0, 256, -1 - .string "POISON MOTH$", 12 - pokedex_entry Venomoth, 15, 125, 285, 2, 256, 1 - .string "MOLE$", 12 - pokedex_entry Diglett, 2, 8, 833, 25, 256, 0 - .string "MOLE$", 12 - pokedex_entry Dugtrio, 7, 333, 406, 18, 256, 0 - .string "SCRATCH CAT$", 12 - pokedex_entry Meowth, 4, 42, 480, 19, 256, 0 - .string "CLASSY CAT$", 12 - pokedex_entry Persian, 10, 320, 320, 10, 256, 0 - .string "DUCK$", 12 - pokedex_entry Psyduck, 8, 196, 369, 15, 256, 0 - .string "DUCK$", 12 - pokedex_entry Golduck, 17, 766, 256, 1, 273, 1 - .string "PIG MONKEY$", 12 - pokedex_entry Mankey, 5, 280, 404, 19, 256, 0 - .string "PIG MONKEY$", 12 - pokedex_entry Primeape, 10, 320, 326, 10, 256, 0 - .string "PUPPY$", 12 - pokedex_entry Growlithe, 7, 190, 346, 14, 256, 0 - .string "LEGENDARY$", 12 - pokedex_entry Arcanine, 19, 1550, 256, 1, 312, 4 - .string "TADPOLE$", 12 - pokedex_entry Poliwag, 6, 124, 369, 20, 256, 0 - .string "TADPOLE$", 12 - pokedex_entry Poliwhirl, 10, 200, 288, 11, 256, 0 - .string "TADPOLE$", 12 - pokedex_entry Poliwrath, 13, 540, 256, 6, 256, 0 - .string "PSI$", 12 - pokedex_entry Abra, 9, 195, 363, 14, 256, 0 - .string "PSI$", 12 - pokedex_entry Kadabra, 13, 565, 256, 3, 256, 0 - .string "PSI$", 12 - pokedex_entry Alakazam, 15, 480, 256, 3, 256, 0 - .string "SUPERPOWER$", 12 - pokedex_entry Machop, 8, 195, 342, 14, 256, 0 - .string "SUPERPOWER$", 12 - pokedex_entry Machoke, 15, 705, 323, 9, 257, 0 - .string "SUPERPOWER$", 12 - pokedex_entry Machamp, 16, 1300, 280, 1, 269, -1 - .string "FLOWER$", 12 - pokedex_entry Bellsprout, 7, 40, 354, 16, 256, 0 - .string "FLYCATCHER$", 12 - pokedex_entry Weepinbell, 10, 64, 256, 0, 256, 0 - .string "FLYCATCHER$", 12 - pokedex_entry Victreebel, 17, 155, 256, 1, 312, 3 - .string "JELLYFISH$", 12 - pokedex_entry Tentacool, 9, 455, 256, 0, 256, 0 - .string "JELLYFISH$", 12 - pokedex_entry Tentacruel, 16, 550, 256, 0, 312, 1 - .string "ROCK$", 12 - pokedex_entry Geodude, 4, 200, 347, 18, 256, 0 - .string "ROCK$", 12 - pokedex_entry Graveler, 10, 1050, 256, 2, 256, 0 - .string "MEGATON$", 12 - pokedex_entry Golem, 14, 3000, 256, 3, 296, 2 - .string "FIRE HORSE$", 12 - pokedex_entry Ponyta, 10, 300, 283, 8, 256, 0 - .string "FIRE HORSE$", 12 - pokedex_entry Rapidash, 17, 950, 256, 0, 289, 1 - .string "DOPEY$", 12 - pokedex_entry Slowpoke, 12, 360, 256, 10, 256, 0 - .string "HERMIT CRAB$", 12 - pokedex_entry Slowbro, 16, 785, 256, 6, 296, 2 - .string "MAGNET$", 12 - pokedex_entry Magnemite, 3, 60, 288, -9, 256, 0 - .string "MAGNET$", 12 - pokedex_entry Magneton, 10, 600, 292, 1, 256, 0 - .string "WILD DUCK$", 12 - pokedex_entry Farfetchd, 8, 150, 330, 2, 293, 2 - .string "TWIN BIRD$", 12 - pokedex_entry Doduo, 14, 392, 256, 3, 257, -1 - .string "TRIPLE BIRD$", 12 - pokedex_entry Dodrio, 18, 852, 256, 0, 268, 0 - .string "SEA LION$", 12 - pokedex_entry Seel, 11, 900, 297, 8, 256, 0 - .string "SEA LION$", 12 - pokedex_entry Dewgong, 17, 1200, 256, 0, 275, 0 - .string "SLUDGE$", 12 - pokedex_entry Grimer, 9, 300, 258, 10, 256, 0 - .string "SLUDGE$", 12 - pokedex_entry Muk, 12, 300, 256, 2, 256, 0 - .string "BIVALVE$", 12 - pokedex_entry Shellder, 3, 40, 675, 24, 256, 0 - .string "BIVALVE$", 12 - pokedex_entry Cloyster, 15, 1325, 256, 0, 269, 1 - .string "GAS$", 12 - pokedex_entry Gastly, 13, 1, 256, 0, 256, 0 - .string "GAS$", 12 - pokedex_entry Haunter, 16, 1, 256, 2, 293, 2 - .string "SHADOW$", 12 - pokedex_entry Gengar, 15, 405, 256, 2, 302, 2 - .string "ROCK SNAKE$", 12 - pokedex_entry Onix, 88, 2100, 256, 1, 515, 14 - .string "HYPNOSIS$", 12 - pokedex_entry Drowzee, 10, 324, 274, 6, 256, 0 - .string "HYPNOSIS$", 12 - pokedex_entry Hypno, 16, 756, 256, 3, 257, 0 - .string "RIVER CRAB$", 12 - pokedex_entry Krabby, 4, 65, 469, 20, 256, 0 - .string "PINCER$", 12 - pokedex_entry Kingler, 13, 600, 256, 2, 256, 0 - .string "BALL$", 12 - pokedex_entry Voltorb, 5, 104, 364, -8, 256, 0 - .string "BALL$", 12 - pokedex_entry Electrode, 12, 666, 256, 0, 256, 0 - .string "EGG$", 12 - pokedex_entry Exeggcute, 4, 25, 489, -4, 256, 0 - .string "COCONUT$", 12 - pokedex_entry Exeggutor, 20, 1200, 256, 0, 309, 5 - .string "LONELY$", 12 - pokedex_entry Cubone, 4, 65, 545, 21, 256, 0 - .string "BONE KEEPER$", 12 - pokedex_entry Marowak, 10, 450, 293, 12, 256, 0 - .string "KICKING$", 12 - pokedex_entry Hitmonlee, 15, 498, 256, 3, 259, 1 - .string "PUNCHING$", 12 - pokedex_entry Hitmonchan, 14, 502, 256, 2, 277, 2 - .string "LICKING$", 12 - pokedex_entry Lickitung, 12, 655, 256, 4, 256, 0 - .string "POISON GAS$", 12 - pokedex_entry Koffing, 6, 10, 369, -1, 256, 0 - .string "POISON GAS$", 12 - pokedex_entry Weezing, 12, 95, 305, 3, 256, 0 - .string "SPIKES$", 12 - pokedex_entry Rhyhorn, 10, 1150, 267, 6, 256, 0 - .string "DRILL$", 12 - pokedex_entry Rhydon, 19, 1200, 256, 1, 299, 2 - .string "EGG$", 12 - pokedex_entry Chansey, 11, 346, 257, 7, 256, 0 - .string "VINE$", 12 - pokedex_entry Tangela, 10, 350, 304, 1, 256, 0 - .string "PARENT$", 12 - pokedex_entry Kangaskhan, 22, 800, 256, 0, 387, 8 - .string "DRAGON$", 12 - pokedex_entry Horsea, 4, 80, 399, -1, 256, 0 - .string "DRAGON$", 12 - pokedex_entry Seadra, 12, 250, 299, 3, 256, 0 - .string "GOLDFISH$", 12 - pokedex_entry Goldeen, 6, 150, 379, 4, 256, 0 - .string "GOLDFISH$", 12 - pokedex_entry Seaking, 13, 390, 256, 3, 256, 0 - .string "STAR SHAPE$", 12 - pokedex_entry Staryu, 8, 345, 326, 1, 256, 0 - .string "MYSTERIOUS$", 12 - pokedex_entry Starmie, 11, 800, 301, 3, 256, 0 - .string "BARRIER$", 12 - pokedex_entry Mrmime, 13, 545, 258, 6, 256, 0 - .string "MANTIS$", 12 - pokedex_entry Scyther, 15, 560, 256, 1, 293, 2 - .string "HUMAN SHAPE$", 12 - pokedex_entry Jynx, 14, 406, 256, 3, 300, 1 - .string "ELECTRIC$", 12 - pokedex_entry Electabuzz, 11, 300, 351, 8, 256, 0 - .string "SPITFIRE$", 12 - pokedex_entry Magmar, 13, 445, 277, 5, 256, 0 - .string "STAG BEETLE$", 12 - pokedex_entry Pinsir, 15, 550, 256, 2, 257, 0 - .string "WILD BULL$", 12 - pokedex_entry Tauros, 14, 884, 256, 0, 256, 0 - .string "FISH$", 12 - pokedex_entry Magikarp, 9, 100, 310, 4, 256, 0 - .string "ATROCIOUS$", 12 - pokedex_entry Gyarados, 65, 2350, 256, 6, 481, 13 - .string "TRANSPORT$", 12 - pokedex_entry Lapras, 25, 2200, 257, 10, 423, 8 - .string "TRANSFORM$", 12 - pokedex_entry Ditto, 3, 40, 633, 23, 256, 0 - .string "EVOLUTION$", 12 - pokedex_entry Eevee, 3, 65, 476, 18, 256, 0 - .string "BUBBLE JET$", 12 - pokedex_entry Vaporeon, 10, 290, 316, 8, 256, 0 - .string "LIGHTNING$", 12 - pokedex_entry Jolteon, 8, 245, 283, 8, 256, 0 - .string "FLAME$", 12 - pokedex_entry Flareon, 9, 250, 306, 12, 256, 0 - .string "VIRTUAL$", 12 - pokedex_entry Porygon, 8, 365, 328, 15, 256, 0 - .string "SPIRAL$", 12 - pokedex_entry Omanyte, 4, 75, 521, 22, 256, 0 - .string "SPIRAL$", 12 - pokedex_entry Omastar, 10, 350, 307, 7, 256, 0 - .string "SHELLFISH$", 12 - pokedex_entry Kabuto, 5, 115, 454, 21, 256, 0 - .string "SHELLFISH$", 12 - pokedex_entry Kabutops, 13, 405, 271, 3, 256, 0 - .string "FOSSIL$", 12 - pokedex_entry Aerodactyl, 18, 590, 256, 0, 302, 4 - .string "SLEEPING$", 12 - pokedex_entry Snorlax, 21, 4600, 256, 4, 423, 11 - .string "FREEZE$", 12 - pokedex_entry Articuno, 17, 554, 256, 0, 309, 2 - .string "ELECTRIC$", 12 - pokedex_entry Zapdos, 16, 526, 256, 0, 318, 3 - .string "FLAME$", 12 - pokedex_entry Moltres, 20, 600, 270, 0, 387, 8 - .string "DRAGON$", 12 - pokedex_entry Dratini, 18, 33, 256, 8, 386, 6 - .string "DRAGON$", 12 - pokedex_entry Dragonair, 40, 165, 256, 0, 411, 5 - .string "DRAGON$", 12 - pokedex_entry Dragonite, 22, 2100, 256, 0, 309, 4 - .string "GENETIC$", 12 - pokedex_entry Mewtwo, 20, 1220, 256, 0, 309, 4 - .string "NEW SPECIES$", 12 - pokedex_entry Mew, 4, 40, 457, -2, 256, 0 - .string "LEAF$", 12 - pokedex_entry Chikorita, 9, 64, 512, 20, 256, 0 - .string "LEAF$", 12 - pokedex_entry Bayleef, 12, 158, 296, 4, 256, 0 - .string "HERB$", 12 - pokedex_entry Meganium, 18, 1005, 256, 0, 277, 1 - .string "FIRE MOUSE$", 12 - pokedex_entry Cyndaquil, 5, 79, 539, 21, 256, 0 - .string "VOLCANO$", 12 - pokedex_entry Quilava, 9, 190, 329, 11, 256, 0 - .string "VOLCANO$", 12 - pokedex_entry Typhlosion, 17, 795, 256, 0, 268, 1 - .string "BIG JAW$", 12 - pokedex_entry Totodile, 6, 95, 487, 20, 256, 0 - .string "BIG JAW$", 12 - pokedex_entry Croconaw, 11, 250, 378, 13, 256, 0 - .string "BIG JAW$", 12 - pokedex_entry Feraligatr, 23, 888, 256, 0, 342, 7 - .string "SCOUT$", 12 - pokedex_entry Sentret, 8, 60, 439, 12, 256, 0 - .string "LONG BODY$", 12 - pokedex_entry Furret, 18, 325, 346, 11, 256, 0 - .string "OWL$", 12 - pokedex_entry Hoothoot, 7, 212, 380, -2, 256, 0 - .string "OWL$", 12 - pokedex_entry Noctowl, 16, 408, 278, 3, 256, 0 - .string "FIVE STAR$", 12 - pokedex_entry Ledyba, 10, 108, 256, 4, 256, 0 - .string "FIVE STAR$", 12 - pokedex_entry Ledian, 14, 356, 256, 2, 256, 0 - .string "STRING SPIT$", 12 - pokedex_entry Spinarak, 5, 85, 414, 21, 256, 0 - .string "LONG LEG$", 12 - pokedex_entry Ariados, 11, 335, 316, 8, 256, 0 - .string "BAT$", 12 - pokedex_entry Crobat, 18, 750, 256, 0, 281, 1 - .string "ANGLER$", 12 - pokedex_entry Chinchou, 5, 120, 424, -2, 256, 0 - .string "LIGHT$", 12 - pokedex_entry Lanturn, 12, 225, 269, 6, 256, 0 - .string "TINY MOUSE$", 12 - pokedex_entry Pichu, 3, 20, 508, 20, 256, 0 - .string "STAR SHAPE$", 12 - pokedex_entry Cleffa, 3, 30, 462, 23, 256, 0 - .string "BALLOON$", 12 - pokedex_entry Igglybuff, 3, 10, 457, -1, 256, 0 - .string "SPIKE BALL$", 12 - pokedex_entry Togepi, 3, 15, 507, 23, 256, 0 - .string "HAPPINESS$", 12 - pokedex_entry Togetic, 6, 32, 424, 17, 256, 0 - .string "TINY BIRD$", 12 - pokedex_entry Natu, 2, 20, 610, 25, 256, 0 - .string "MYSTIC$", 12 - pokedex_entry Xatu, 15, 150, 256, 6, 318, 4 - .string "WOOL$", 12 - pokedex_entry Mareep, 6, 78, 379, 18, 256, 0 - .string "WOOL$", 12 - pokedex_entry Flaaffy, 8, 133, 372, 15, 256, 0 - .string "LIGHT$", 12 - pokedex_entry Ampharos, 14, 615, 256, 4, 256, 0 - .string "FLOWER$", 12 - pokedex_entry Bellossom, 4, 58, 472, 21, 256, 0 - .string "AQUA MOUSE$", 12 - pokedex_entry Marill, 4, 85, 476, 20, 256, 0 - .string "AQUA RABBIT$", 12 - pokedex_entry Azumarill, 8, 285, 448, 16, 256, 0 - .string "IMITATION$", 12 - pokedex_entry Sudowoodo, 12, 380, 305, 8, 256, 0 - .string "FROG$", 12 - pokedex_entry Politoed, 11, 339, 289, 6, 256, 0 - .string "COTTONWEED$", 12 - pokedex_entry Hoppip, 4, 5, 562, -7, 256, 0 - .string "COTTONWEED$", 12 - pokedex_entry Skiploom, 6, 10, 387, 0, 256, 0 - .string "COTTONWEED$", 12 - pokedex_entry Jumpluff, 8, 30, 418, -4, 256, 0 - .string "LONG TAIL$", 12 - pokedex_entry Aipom, 8, 115, 363, 6, 256, 0 - .string "SEED$", 12 - pokedex_entry Sunkern, 3, 18, 541, 0, 256, 0 - .string "SUN$", 12 - pokedex_entry Sunflora, 8, 85, 444, 15, 256, 0 - .string "CLEAR WING$", 12 - pokedex_entry Yanma, 12, 380, 274, -1, 256, 0 - .string "WATER FISH$", 12 - pokedex_entry Wooper, 4, 85, 479, 21, 256, 0 - .string "WATER FISH$", 12 - pokedex_entry Quagsire, 14, 750, 256, 4, 256, 0 - .string "SUN$", 12 - pokedex_entry Espeon, 9, 265, 363, 14, 256, 0 - .string "MOONLIGHT$", 12 - pokedex_entry Umbreon, 10, 270, 317, 11, 256, 0 - .string "DARKNESS$", 12 - pokedex_entry Murkrow, 5, 21, 401, -8, 256, 1 - .string "ROYAL$", 12 - pokedex_entry Slowking, 20, 795, 256, 0, 309, 5 - .string "SCREECH$", 12 - pokedex_entry Misdreavus, 7, 10, 407, -8, 256, 0 - .string "SYMBOL$", 12 - pokedex_entry Unown, 5, 50, 411, 2, 256, 0 - .string "PATIENT$", 12 - pokedex_entry Wobbuffet, 13, 285, 274, 4, 256, 0 - .string "LONG NECK$", 12 - pokedex_entry Girafarig, 15, 415, 281, 1, 256, 0 - .string "BAGWORM$", 12 - pokedex_entry Pineco, 6, 72, 445, 2, 256, 0 - .string "BAGWORM$", 12 - pokedex_entry Forretress, 12, 1258, 293, 5, 256, 0 - .string "LAND SNAKE$", 12 - pokedex_entry Dunsparce, 15, 140, 316, 17, 256, 0 - .string "FLYSCORPION$", 12 - pokedex_entry Gligar, 11, 648, 350, -1, 256, 0 - .string "IRON SNAKE$", 12 - pokedex_entry Steelix, 92, 4000, 256, 0, 516, 13 - .string "FAIRY$", 12 - pokedex_entry Snubbull, 6, 78, 465, 19, 256, 0 - .string "FAIRY$", 12 - pokedex_entry Granbull, 14, 487, 256, 4, 256, 0 - .string "BALLOON$", 12 - pokedex_entry Qwilfish, 5, 39, 430, 0, 256, 0 - .string "PINCER$", 12 - pokedex_entry Scizor, 18, 1180, 278, 1, 256, 0 - .string "MOLD$", 12 - pokedex_entry Shuckle, 6, 205, 485, 18, 256, 0 - .string "SINGLE HORN$", 12 - pokedex_entry Heracross, 15, 540, 256, 0, 256, 0 - .string "SHARP CLAW$", 12 - pokedex_entry Sneasel, 9, 280, 413, -3, 256, 0 - .string "LITTLE BEAR$", 12 - pokedex_entry Teddiursa, 6, 88, 455, 19, 256, 0 - .string "HIBERNATOR$", 12 - pokedex_entry Ursaring, 18, 1258, 256, 0, 256, 0 - .string "LAVA$", 12 - pokedex_entry Slugma, 7, 350, 329, 15, 256, 0 - .string "LAVA$", 12 - pokedex_entry Magcargo, 8, 550, 332, 15, 256, 0 - .string "PIG$", 12 - pokedex_entry Swinub, 4, 65, 324, 20, 256, 0 - .string "SWINE$", 12 - pokedex_entry Piloswine, 11, 558, 306, 10, 256, 0 - .string "CORAL$", 12 - pokedex_entry Corsola, 6, 50, 410, 15, 256, 0 - .string "JET$", 12 - pokedex_entry Remoraid, 6, 120, 316, 4, 256, 0 - .string "JET$", 12 - pokedex_entry Octillery, 9, 285, 296, 3, 256, 0 - .string "DELIVERY$", 12 - pokedex_entry Delibird, 9, 160, 293, 11, 256, 0 - .string "KITE$", 12 - pokedex_entry Mantine, 21, 2200, 256, 0, 342, 7 - .string "ARMOR BIRD$", 12 - pokedex_entry Skarmory, 17, 505, 256, 0, 271, 1 - .string "DARK$", 12 - pokedex_entry Houndour, 6, 108, 393, 16, 256, 0 - .string "DARK$", 12 - pokedex_entry Houndoom, 14, 350, 256, 4, 256, 0 - .string "DRAGON$", 12 - pokedex_entry Kingdra, 18, 1520, 256, 0, 287, 0 - .string "LONG NOSE$", 12 - pokedex_entry Phanpy, 5, 335, 465, 21, 256, 0 - .string "ARMOR$", 12 - pokedex_entry Donphan, 11, 1200, 313, 9, 256, 0 - .string "VIRTUAL$", 12 - pokedex_entry Porygon2, 6, 325, 320, 17, 256, 0 - .string "BIG HORN$", 12 - pokedex_entry Stantler, 14, 712, 256, 0, 256, 0 - .string "PAINTER$", 12 - pokedex_entry Smeargle, 12, 580, 287, 5, 256, 0 - .string "SCUFFLE$", 12 - pokedex_entry Tyrogue, 7, 210, 292, 9, 256, 0 - .string "HANDSTAND$", 12 - pokedex_entry Hitmontop, 14, 480, 256, 2, 257, 0 - .string "KISS$", 12 - pokedex_entry Smoochum, 4, 60, 440, 20, 256, 0 - .string "ELECTRIC$", 12 - pokedex_entry Elekid, 6, 235, 363, 14, 256, 0 - .string "LIVE COAL$", 12 - pokedex_entry Magby, 7, 214, 284, 13, 256, 0 - .string "MILK COW$", 12 - pokedex_entry Miltank, 12, 755, 280, 5, 256, 0 - .string "HAPPINESS$", 12 - pokedex_entry Blissey, 15, 468, 256, 4, 310, 3 - .string "THUNDER$", 12 - pokedex_entry Raikou, 19, 1780, 256, 0, 345, 7 - .string "VOLCANO$", 12 - pokedex_entry Entei, 21, 1980, 259, 0, 345, 7 - .string "AURORA$", 12 - pokedex_entry Suicune, 20, 1870, 269, 0, 345, 7 - .string "ROCK SKIN$", 12 - pokedex_entry Larvitar, 6, 720, 472, 18, 256, 0 - .string "HARD SHELL$", 12 - pokedex_entry Pupitar, 12, 1520, 292, 8, 256, 0 - .string "ARMOR$", 12 - pokedex_entry Tyranitar, 20, 2020, 256, 0, 345, 7 - .string "DIVING$", 12 - pokedex_entry Lugia, 52, 2160, 256, 0, 721, 19 - .string "RAINBOW$", 12 - pokedex_entry HoOh, 38, 1990, 256, 0, 610, 17 - .string "TIME TRAVEL$", 12 - pokedex_entry Celebi, 6, 50, 393, -10, 256, 0 - .string "WOOD GECKO$", 12 - pokedex_entry Treecko, 5, 50, 541, 19, 256, 0 - .string "WOOD GECKO$", 12 - pokedex_entry Grovyle, 9, 216, 360, 5, 256, 0 - .string "FOREST$", 12 - pokedex_entry Sceptile, 17, 522, 256, -1, 275, 2 - .string "CHICK$", 12 - pokedex_entry Torchic, 4, 25, 566, 19, 256, 0 - .string "YOUNG FOWL$", 12 - pokedex_entry Combusken, 9, 195, 343, 5, 256, 0 - .string "BLAZE$", 12 - pokedex_entry Blaziken, 19, 520, 256, 0, 301, 4 - .string "MUD FISH$", 12 - pokedex_entry Mudkip, 4, 76, 535, 20, 256, 0 - .string "MUD FISH$", 12 - pokedex_entry Marshtomp, 7, 280, 340, 7, 256, 0 - .string "MUD FISH$", 12 - pokedex_entry Swampert, 15, 819, 256, 0, 256, 0 - .string "BITE$", 12 - pokedex_entry Poochyena, 5, 136, 481, 19, 256, 0 - .string "BITE$", 12 - pokedex_entry Mightyena, 10, 370, 362, 9, 256, 0 - .string "TINYRACCOON$", 12 - pokedex_entry Zigzagoon, 4, 175, 560, 22, 256, 0 - .string "RUSHING$", 12 - pokedex_entry Linoone, 5, 325, 321, 7, 256, 0 - .string "WORM$", 12 - pokedex_entry Wurmple, 3, 36, 711, 24, 256, 0 - .string "COCOON$", 12 - pokedex_entry Silcoon, 6, 100, 431, 19, 256, 0 - .string "BUTTERFLY$", 12 - pokedex_entry Beautifly, 10, 284, 298, -1, 256, 0 - .string "COCOON$", 12 - pokedex_entry Cascoon, 7, 115, 391, 20, 256, 0 - .string "POISON MOTH$", 12 - pokedex_entry Dustox, 12, 316, 269, 1, 256, 0 - .string "WATER WEED$", 12 - pokedex_entry Lotad, 5, 26, 406, 19, 256, 0 - .string "JOLLY$", 12 - pokedex_entry Lombre, 12, 325, 277, 9, 256, 0 - .string "CAREFREE$", 12 - pokedex_entry Ludicolo, 15, 550, 256, 0, 268, -1 - .string "ACORN$", 12 - pokedex_entry Seedot, 5, 40, 472, 20, 256, 0 - .string "WILY$", 12 - pokedex_entry Nuzleaf, 10, 280, 299, 10, 256, 0 - .string "WICKED$", 12 - pokedex_entry Shiftry, 13, 596, 290, 4, 256, 0 - .string "TINYSWALLOW$", 12 - pokedex_entry Taillow, 3, 23, 465, 21, 256, 0 - .string "SWALLOW$", 12 - pokedex_entry Swellow, 7, 198, 428, 15, 256, 0 - .string "SEAGULL$", 12 - pokedex_entry Wingull, 6, 95, 295, -2, 256, 0 - .string "WATER BIRD$", 12 - pokedex_entry Pelipper, 12, 280, 288, 1, 256, 0 - .string "FEELING$", 12 - pokedex_entry Ralts, 4, 66, 457, -3, 256, 0 - .string "EMOTION$", 12 - pokedex_entry Kirlia, 8, 202, 354, 0, 256, 0 - .string "EMBRACE$", 12 - pokedex_entry Gardevoir, 16, 484, 256, 0, 256, 0 - .string "POND SKATER$", 12 - pokedex_entry Surskit, 5, 17, 375, 17, 256, 0 - .string "EYEBALL$", 12 - pokedex_entry Masquerain, 8, 36, 378, 8, 256, 0 - .string "MUSHROOM$", 12 - pokedex_entry Shroomish, 4, 45, 513, 22, 256, 0 - .string "MUSHROOM$", 12 - pokedex_entry Breloom, 12, 392, 324, 6, 256, 0 - .string "SLACKER$", 12 - pokedex_entry Slakoth, 8, 240, 291, 16, 256, 0 - .string "WILD MONKEY$", 12 - pokedex_entry Vigoroth, 14, 465, 301, 2, 256, 0 - .string "LAZY$", 12 - pokedex_entry Slaking, 20, 1305, 256, 2, 300, 1 - .string "TRAINEE$", 12 - pokedex_entry Nincada, 5, 55, 405, 21, 256, 0 - .string "NINJA$", 12 - pokedex_entry Ninjask, 8, 120, 383, -9, 256, 0 - .string "SHED$", 12 - pokedex_entry Shedinja, 8, 12, 372, -8, 256, 0 - .string "WHISPER$", 12 - pokedex_entry Whismur, 6, 163, 373, 17, 256, 0 - .string "BIG VOICE$", 12 - pokedex_entry Loudred, 10, 405, 356, 10, 256, 0 - .string "LOUD NOISE$", 12 - pokedex_entry Exploud, 15, 840, 284, 1, 256, 0 - .string "GUTS$", 12 - pokedex_entry Makuhita, 10, 864, 256, 10, 256, 0 - .string "ARM THRUST$", 12 - pokedex_entry Hariyama, 23, 2538, 256, 0, 343, 7 - .string "POLKA DOT$", 12 - pokedex_entry Azurill, 2, 20, 603, 23, 256, 0 - .string "COMPASS$", 12 - pokedex_entry Nosepass, 10, 970, 256, 9, 289, 3 - .string "KITTEN$", 12 - pokedex_entry Skitty, 6, 110, 492, 19, 256, 0 - .string "PRIM$", 12 - pokedex_entry Delcatty, 11, 326, 322, 10, 256, 0 - .string "DARKNESS$", 12 - pokedex_entry Sableye, 5, 110, 451, 17, 256, 0 - .string "DECEIVER$", 12 - pokedex_entry Mawile, 6, 115, 466, 17, 256, 0 - .string "IRON ARMOR$", 12 - pokedex_entry Aron, 4, 600, 419, 23, 256, 0 - .string "IRON ARMOR$", 12 - pokedex_entry Lairon, 9, 1200, 275, 12, 256, 0 - .string "IRON ARMOR$", 12 - pokedex_entry Aggron, 21, 3600, 256, -1, 350, 6 - .string "MEDITATE$", 12 - pokedex_entry Meditite, 6, 112, 465, 17, 256, 0 - .string "MEDITATE$", 12 - pokedex_entry Medicham, 13, 315, 298, 5, 256, 0 - .string "LIGHTNING$", 12 - pokedex_entry Electrike, 6, 152, 290, 15, 256, 0 - .string "DISCHARGE$", 12 - pokedex_entry Manectric, 15, 402, 256, 3, 257, 0 - .string "CHEERING$", 12 - pokedex_entry Plusle, 4, 42, 515, -9, 256, 0 - .string "CHEERING$", 12 - pokedex_entry Minun, 4, 42, 512, -7, 256, 0 - .string "FIREFLY$", 12 - pokedex_entry Volbeat, 7, 177, 442, 16, 256, 0 - .string "FIREFLY$", 12 - pokedex_entry Illumise, 6, 177, 572, 19, 256, 0 - .string "THORN$", 12 - pokedex_entry Roselia, 3, 20, 677, 20, 256, 0 - .string "STOMACH$", 12 - pokedex_entry Gulpin, 4, 103, 593, 23, 256, 0 - .string "POISON BAG$", 12 - pokedex_entry Swalot, 17, 800, 256, 6, 345, 3 - .string "SAVAGE$", 12 - pokedex_entry Carvanha, 8, 208, 362, 0, 256, 0 - .string "BRUTAL$", 12 - pokedex_entry Sharpedo, 18, 888, 256, 0, 317, 3 - .string "BALL WHALE$", 12 - pokedex_entry Wailmer, 20, 1300, 256, 2, 493, 0 - .string "FLOAT WHALE$", 12 - pokedex_entry Wailord, 145, 3980, 256, 0, 1352, 18 - .string "NUMB$", 12 - pokedex_entry Numel, 7, 240, 342, 17, 256, 0 - .string "ERUPTION$", 12 - pokedex_entry Camerupt, 19, 2200, 256, 7, 345, 6 - .string "COAL$", 12 - pokedex_entry Torkoal, 5, 804, 390, 9, 256, 0 - .string "BOUNCE$", 12 - pokedex_entry Spoink, 7, 306, 423, 17, 256, 0 - .string "MANIPULATE$", 12 - pokedex_entry Grumpig, 9, 715, 358, 10, 256, 0 - .string "SPOT PANDA$", 12 - pokedex_entry Spinda, 11, 50, 321, 4, 256, 0 - .string "ANT PIT$", 12 - pokedex_entry Trapinch, 7, 150, 298, 17, 256, 0 - .string "VIBRATION$", 12 - pokedex_entry Vibrava, 11, 153, 370, 11, 256, 0 - .string "MYSTIC$", 12 - pokedex_entry Flygon, 20, 820, 256, 0, 268, 1 - .string "CACTUS$", 12 - pokedex_entry Cacnea, 4, 513, 455, 20, 256, 0 - .string "SCARECROW$", 12 - pokedex_entry Cacturne, 13, 774, 327, 5, 256, 0 - .string "COTTON BIRD$", 12 - pokedex_entry Swablu, 4, 12, 422, -8, 256, 0 - .string "HUMMING$", 12 - pokedex_entry Altaria, 11, 206, 327, 0, 256, 0 - .string "CAT FERRET$", 12 - pokedex_entry Zangoose, 13, 403, 256, 3, 256, 0 - .string "FANG SNAKE$", 12 - pokedex_entry Seviper, 27, 525, 275, 7, 256, 0 - .string "METEORITE$", 12 - pokedex_entry Lunatone, 10, 1680, 300, 3, 256, 0 - .string "METEORITE$", 12 - pokedex_entry Solrock, 12, 1540, 328, 0, 256, 0 - .string "WHISKERS$", 12 - pokedex_entry Barboach, 4, 19, 581, -3, 256, 0 - .string "WHISKERS$", 12 - pokedex_entry Whiscash, 9, 236, 317, 1, 256, 0 - .string "RUFFIAN$", 12 - pokedex_entry Corphish, 6, 115, 484, 19, 256, 0 - .string "ROGUE$", 12 - pokedex_entry Crawdaunt, 11, 328, 365, 9, 256, 0 - .string "CLAY DOLL$", 12 - pokedex_entry Baltoy, 5, 215, 457, 21, 256, 0 - .string "CLAY DOLL$", 12 - pokedex_entry Claydol, 15, 1080, 256, 3, 280, 1 - .string "SEA LILY$", 12 - pokedex_entry Lileep, 10, 238, 305, 8, 256, 0 - .string "BARNACLE$", 12 - pokedex_entry Cradily, 15, 604, 267, 0, 256, 0 - .string "OLD SHRIMP$", 12 - pokedex_entry Anorith, 7, 125, 296, 4, 256, 0 - .string "PLATE$", 12 - pokedex_entry Armaldo, 15, 682, 312, 3, 271, 0 - .string "FISH$", 12 - pokedex_entry Feebas, 6, 74, 423, -4, 256, 0 - .string "TENDER$", 12 - pokedex_entry Milotic, 62, 1620, 256, 0, 360, 7 - .string "WEATHER$", 12 - pokedex_entry Castform, 3, 8, 435, -5, 256, 0 - .string "COLOR SWAP$", 12 - pokedex_entry Kecleon, 10, 220, 316, 10, 256, 0 - .string "PUPPET$", 12 - pokedex_entry Shuppet, 6, 23, 440, 20, 256, 0 - .string "MARIONETTE$", 12 - pokedex_entry Banette, 11, 125, 262, 9, 256, 0 - .string "REQUIEM$", 12 - pokedex_entry Duskull, 8, 150, 406, -4, 256, 0 - .string "BECKON$", 12 - pokedex_entry Dusclops, 16, 306, 256, 3, 299, 1 - .string "FRUIT$", 12 - pokedex_entry Tropius, 20, 1000, 256, 0, 344, 7 - .string "WIND CHIME$", 12 - pokedex_entry Chimecho, 6, 10, 505, 0, 256, 0 - .string "DISASTER$", 12 - pokedex_entry Absol, 12, 470, 301, 3, 256, 0 - .string "BRIGHT$", 12 - pokedex_entry Wynaut, 6, 140, 484, 19, 256, 0 - .string "SNOW HAT$", 12 - pokedex_entry Snorunt, 7, 168, 380, 15, 256, 0 - .string "FACE$", 12 - pokedex_entry Glalie, 15, 2565, 256, 3, 344, 0 - .string "CLAP$", 12 - pokedex_entry Spheal, 8, 395, 315, 16, 256, 0 - .string "BALL ROLL$", 12 - pokedex_entry Sealeo, 11, 876, 338, 13, 256, 0 - .string "ICE BREAK$", 12 - pokedex_entry Walrein, 14, 1506, 316, 4, 256, 0 - .string "BIVALVE$", 12 - pokedex_entry Clamperl, 4, 525, 691, 22, 256, 0 - .string "DEEP SEA$", 12 - pokedex_entry Huntail, 17, 270, 307, 1, 256, 0 - .string "SOUTH SEA$", 12 - pokedex_entry Gorebyss, 18, 226, 278, 5, 256, 0 - .string "LONGEVITY$", 12 - pokedex_entry Relicanth, 10, 234, 316, 7, 256, 0 - .string "RENDEZVOUS$", 12 - pokedex_entry Luvdisc, 6, 87, 371, 2, 256, 0 - .string "ROCK HEAD$", 12 - pokedex_entry Bagon, 6, 421, 448, 18, 256, 0 - .string "ENDURANCE$", 12 - pokedex_entry Shelgon, 11, 1105, 311, 12, 256, 0 - .string "DRAGON$", 12 - pokedex_entry Salamence, 15, 1026, 256, 0, 256, 0 - .string "IRON BALL$", 12 - pokedex_entry Beldum, 6, 952, 414, -1, 256, 0 - .string "IRON CLAW$", 12 - pokedex_entry Metang, 12, 2025, 256, 6, 256, 0 - .string "IRON LEG$", 12 - pokedex_entry Metagross, 16, 5500, 256, 4, 447, 9 - .string "ROCK PEAK$", 12 - pokedex_entry Regirock, 17, 2300, 256, 2, 309, 1 - .string "ICEBERG$", 12 - pokedex_entry Regice, 18, 1750, 256, 0, 301, 2 - .string "IRON$", 12 - pokedex_entry Registeel, 19, 2050, 256, 0, 359, 6 - .string "EON$", 12 - pokedex_entry Latias, 14, 400, 304, 3, 256, 0 - .string "EON$", 12 - pokedex_entry Latios, 20, 600, 256, 0, 294, 3 - .string "SEA BASIN$", 12 - pokedex_entry Kyogre, 45, 3520, 256, 0, 614, 13 - .string "CONTINENT$", 12 - pokedex_entry Groudon, 35, 9500, 256, 0, 515, 14 - .string "SKY HIGH$", 12 - pokedex_entry Rayquaza, 70, 2065, 256, 0, 448, 12 - .string "WISH$", 12 - pokedex_entry Jirachi, 3, 11, 608, -8, 256, 0 - .string "DNA$", 12 - pokedex_entry Deoxys, 17, 608, 256, 0, 290, 2 diff --git a/data/pokedex_orders.inc b/data/pokedex_orders.inc deleted file mode 100644 index db1cf7e07..000000000 --- a/data/pokedex_orders.inc +++ /dev/null @@ -1,1191 +0,0 @@ - .align 1 -gPokedexOrder_Alphabetical:: @ 839FAC4 - .2byte 387 - .2byte 388 - .2byte 389 - .2byte 390 - .2byte 391 - .2byte 392 - .2byte 393 - .2byte 394 - .2byte 395 - .2byte 396 - .2byte 397 - .2byte 398 - .2byte 399 - .2byte 400 - .2byte 401 - .2byte 402 - .2byte 403 - .2byte 404 - .2byte 405 - .2byte 406 - .2byte 407 - .2byte 408 - .2byte 409 - .2byte 410 - .2byte 411 - .2byte 63 @ Abra - .2byte 359 @ Absol - .2byte 142 @ Aerodactyl - .2byte 306 @ Aggron - .2byte 190 @ Aipom - .2byte 65 @ Alakazam - .2byte 334 @ Altaria - .2byte 181 @ Ampharos - .2byte 347 @ Anorith - .2byte 24 @ Arbok - .2byte 59 @ Arcanine - .2byte 168 @ Ariados - .2byte 348 @ Armaldo - .2byte 304 @ Aron - .2byte 144 @ Articuno - .2byte 184 @ Azumarill - .2byte 298 @ Azurill - .2byte 371 @ Bagon - .2byte 343 @ Baltoy - .2byte 354 @ Banette - .2byte 339 @ Barboach - .2byte 153 @ Bayleef - .2byte 267 @ Beautifly - .2byte 15 @ Beedrill - .2byte 374 @ Beldum - .2byte 182 @ Bellossom - .2byte 69 @ Bellsprout - .2byte 9 @ Blastoise - .2byte 257 @ Blaziken - .2byte 242 @ Blissey - .2byte 286 @ Breloom - .2byte 1 @ Bulbasaur - .2byte 12 @ Butterfree - .2byte 331 @ Cacnea - .2byte 332 @ Cacturne - .2byte 323 @ Camerupt - .2byte 318 @ Carvanha - .2byte 268 @ Cascoon - .2byte 351 @ Castform - .2byte 10 @ Caterpie - .2byte 251 @ Celebi - .2byte 113 @ Chansey - .2byte 6 @ Charizard - .2byte 4 @ Charmander - .2byte 5 @ Charmeleon - .2byte 152 @ Chikorita - .2byte 358 @ Chimecho - .2byte 170 @ Chinchou - .2byte 366 @ Clamperl - .2byte 344 @ Claydol - .2byte 36 @ Clefable - .2byte 35 @ Clefairy - .2byte 173 @ Cleffa - .2byte 91 @ Cloyster - .2byte 256 @ Combusken - .2byte 341 @ Corphish - .2byte 222 @ Corsola - .2byte 346 @ Cradily - .2byte 342 @ Crawdaunt - .2byte 169 @ Crobat - .2byte 159 @ Croconaw - .2byte 104 @ Cubone - .2byte 155 @ Cyndaquil - .2byte 301 @ Delcatty - .2byte 225 @ Delibird - .2byte 386 @ Deoxys - .2byte 87 @ Dewgong - .2byte 50 @ Diglett - .2byte 132 @ Ditto - .2byte 85 @ Dodrio - .2byte 84 @ Doduo - .2byte 232 @ Donphan - .2byte 148 @ Dragonair - .2byte 149 @ Dragonite - .2byte 147 @ Dratini - .2byte 96 @ Drowzee - .2byte 51 @ Dugtrio - .2byte 206 @ Dunsparce - .2byte 356 @ Dusclops - .2byte 355 @ Duskull - .2byte 269 @ Dustox - .2byte 133 @ Eevee - .2byte 23 @ Ekans - .2byte 125 @ Electabuzz - .2byte 309 @ Electrike - .2byte 101 @ Electrode - .2byte 239 @ Elekid - .2byte 244 @ Entei - .2byte 196 @ Espeon - .2byte 102 @ Exeggcute - .2byte 103 @ Exeggutor - .2byte 295 @ Exploud - .2byte 83 @ Farfetch’d - .2byte 22 @ Fearow - .2byte 349 @ Feebas - .2byte 160 @ Feraligatr - .2byte 180 @ Flaaffy - .2byte 136 @ Flareon - .2byte 330 @ Flygon - .2byte 205 @ Forretress - .2byte 162 @ Furret - .2byte 282 @ Gardevoir - .2byte 92 @ Gastly - .2byte 94 @ Gengar - .2byte 74 @ Geodude - .2byte 203 @ Girafarig - .2byte 362 @ Glalie - .2byte 207 @ Gligar - .2byte 44 @ Gloom - .2byte 42 @ Golbat - .2byte 118 @ Goldeen - .2byte 55 @ Golduck - .2byte 76 @ Golem - .2byte 368 @ Gorebyss - .2byte 210 @ Granbull - .2byte 75 @ Graveler - .2byte 88 @ Grimer - .2byte 383 @ Groudon - .2byte 253 @ Grovyle - .2byte 58 @ Growlithe - .2byte 326 @ Grumpig - .2byte 316 @ Gulpin - .2byte 130 @ Gyarados - .2byte 297 @ Hariyama - .2byte 93 @ Haunter - .2byte 214 @ Heracross - .2byte 107 @ Hitmonchan - .2byte 106 @ Hitmonlee - .2byte 237 @ Hitmontop - .2byte 250 @ Ho-Oh - .2byte 163 @ Hoothoot - .2byte 187 @ Hoppip - .2byte 116 @ Horsea - .2byte 229 @ Houndoom - .2byte 228 @ Houndour - .2byte 367 @ Huntail - .2byte 97 @ Hypno - .2byte 174 @ Igglybuff - .2byte 314 @ Illumise - .2byte 2 @ Ivysaur - .2byte 39 @ Jigglypuff - .2byte 385 @ Jirachi - .2byte 135 @ Jolteon - .2byte 189 @ Jumpluff - .2byte 124 @ Jynx - .2byte 140 @ Kabuto - .2byte 141 @ Kabutops - .2byte 64 @ Kadabra - .2byte 14 @ Kakuna - .2byte 115 @ Kangaskhan - .2byte 352 @ Kecleon - .2byte 230 @ Kingdra - .2byte 99 @ Kingler - .2byte 281 @ Kirlia - .2byte 109 @ Koffing - .2byte 98 @ Krabby - .2byte 382 @ Kyogre - .2byte 305 @ Lairon - .2byte 171 @ Lanturn - .2byte 131 @ Lapras - .2byte 246 @ Larvitar - .2byte 380 @ Latias - .2byte 381 @ Latios - .2byte 166 @ Ledian - .2byte 165 @ Ledyba - .2byte 108 @ Lickitung - .2byte 345 @ Lileep - .2byte 264 @ Linoone - .2byte 271 @ Lombre - .2byte 270 @ Lotad - .2byte 294 @ Loudred - .2byte 272 @ Ludicolo - .2byte 249 @ Lugia - .2byte 337 @ Lunatone - .2byte 370 @ Luvdisc - .2byte 68 @ Machamp - .2byte 67 @ Machoke - .2byte 66 @ Machop - .2byte 240 @ Magby - .2byte 219 @ Magcargo - .2byte 129 @ Magikarp - .2byte 126 @ Magmar - .2byte 81 @ Magnemite - .2byte 82 @ Magneton - .2byte 296 @ Makuhita - .2byte 310 @ Manectric - .2byte 56 @ Mankey - .2byte 226 @ Mantine - .2byte 179 @ Mareep - .2byte 183 @ Marill - .2byte 105 @ Marowak - .2byte 259 @ Marshtomp - .2byte 284 @ Masquerain - .2byte 303 @ Mawile - .2byte 308 @ Medicham - .2byte 307 @ Meditite - .2byte 154 @ Meganium - .2byte 52 @ Meowth - .2byte 376 @ Metagross - .2byte 375 @ Metang - .2byte 11 @ Metapod - .2byte 151 @ Mew - .2byte 150 @ Mewtwo - .2byte 262 @ Mightyena - .2byte 350 @ Milotic - .2byte 241 @ Miltank - .2byte 312 @ Minun - .2byte 200 @ Misdreavus - .2byte 146 @ Moltres - .2byte 122 @ Mr. mime - .2byte 258 @ Mudkip - .2byte 89 @ Muk - .2byte 198 @ Murkrow - .2byte 177 @ Natu - .2byte 34 @ Nidoking - .2byte 31 @ Nidoqueen - .2byte 29 @ Nidoran♀ - .2byte 32 @ Nidoran♂ - .2byte 30 @ Nidorina - .2byte 33 @ Nidorino - .2byte 290 @ Nincada - .2byte 38 @ Ninetales - .2byte 291 @ Ninjask - .2byte 164 @ Noctowl - .2byte 299 @ Nosepass - .2byte 322 @ Numel - .2byte 274 @ Nuzleaf - .2byte 224 @ Octillery - .2byte 43 @ Oddish - .2byte 138 @ Omanyte - .2byte 139 @ Omastar - .2byte 95 @ Onix - .2byte 46 @ Paras - .2byte 47 @ Parasect - .2byte 279 @ Pelipper - .2byte 53 @ Persian - .2byte 231 @ Phanpy - .2byte 172 @ Pichu - .2byte 18 @ Pidgeot - .2byte 17 @ Pidgeotto - .2byte 16 @ Pidgey - .2byte 25 @ Pikachu - .2byte 221 @ Piloswine - .2byte 204 @ Pineco - .2byte 127 @ Pinsir - .2byte 311 @ Plusle - .2byte 186 @ Politoed - .2byte 60 @ Poliwag - .2byte 61 @ Poliwhirl - .2byte 62 @ Poliwrath - .2byte 77 @ Ponyta - .2byte 261 @ Poochyena - .2byte 137 @ Porygon - .2byte 233 @ Porygon2 - .2byte 57 @ Primeape - .2byte 54 @ Psyduck - .2byte 247 @ Pupitar - .2byte 195 @ Quagsire - .2byte 156 @ Quilava - .2byte 211 @ Qwilfish - .2byte 26 @ Raichu - .2byte 243 @ Raikou - .2byte 280 @ Ralts - .2byte 78 @ Rapidash - .2byte 20 @ Raticate - .2byte 19 @ Rattata - .2byte 384 @ Rayquaza - .2byte 378 @ Regice - .2byte 377 @ Regirock - .2byte 379 @ Registeel - .2byte 369 @ Relicanth - .2byte 223 @ Remoraid - .2byte 112 @ Rhydon - .2byte 111 @ Rhyhorn - .2byte 315 @ Roselia - .2byte 302 @ Sableye - .2byte 373 @ Salamence - .2byte 27 @ Sandshrew - .2byte 28 @ Sandslash - .2byte 254 @ Sceptile - .2byte 212 @ Scizor - .2byte 123 @ Scyther - .2byte 117 @ Seadra - .2byte 119 @ Seaking - .2byte 364 @ Sealeo - .2byte 273 @ Seedot - .2byte 86 @ Seel - .2byte 161 @ Sentret - .2byte 336 @ Seviper - .2byte 319 @ Sharpedo - .2byte 292 @ Shedinja - .2byte 372 @ Shelgon - .2byte 90 @ Shellder - .2byte 275 @ Shiftry - .2byte 285 @ Shroomish - .2byte 213 @ Shuckle - .2byte 353 @ Shuppet - .2byte 266 @ Silcoon - .2byte 227 @ Skarmory - .2byte 188 @ Skiploom - .2byte 300 @ Skitty - .2byte 289 @ Slaking - .2byte 287 @ Slakoth - .2byte 80 @ Slowbro - .2byte 199 @ Slowking - .2byte 79 @ Slowpoke - .2byte 218 @ Slugma - .2byte 235 @ Smeargle - .2byte 238 @ Smoochum - .2byte 215 @ Sneasel - .2byte 143 @ Snorlax - .2byte 361 @ Snorunt - .2byte 209 @ Snubbull - .2byte 338 @ Solrock - .2byte 21 @ Spearow - .2byte 363 @ Spheal - .2byte 167 @ Spinarak - .2byte 327 @ Spinda - .2byte 325 @ Spoink - .2byte 7 @ Squirtle - .2byte 234 @ Stantler - .2byte 121 @ Starmie - .2byte 120 @ Staryu - .2byte 208 @ Steelix - .2byte 185 @ Sudowoodo - .2byte 245 @ Suicune - .2byte 192 @ Sunflora - .2byte 191 @ Sunkern - .2byte 283 @ Surskit - .2byte 333 @ Swablu - .2byte 317 @ Swalot - .2byte 260 @ Swampert - .2byte 277 @ Swellow - .2byte 220 @ Swinub - .2byte 276 @ Taillow - .2byte 114 @ Tangela - .2byte 128 @ Tauros - .2byte 216 @ Teddiursa - .2byte 72 @ Tentacool - .2byte 73 @ Tentacruel - .2byte 175 @ Togepi - .2byte 176 @ Togetic - .2byte 255 @ Torchic - .2byte 324 @ Torkoal - .2byte 158 @ Totodile - .2byte 328 @ Trapinch - .2byte 252 @ Treecko - .2byte 357 @ Tropius - .2byte 157 @ Typhlosion - .2byte 248 @ Tyranitar - .2byte 236 @ Tyrogue - .2byte 197 @ Umbreon - .2byte 201 @ Unown - .2byte 217 @ Ursaring - .2byte 134 @ Vaporeon - .2byte 49 @ Venomoth - .2byte 48 @ Venonat - .2byte 3 @ Venusaur - .2byte 329 @ Vibrava - .2byte 71 @ Victreebel - .2byte 288 @ Vigoroth - .2byte 45 @ Vileplume - .2byte 313 @ Volbeat - .2byte 100 @ Voltorb - .2byte 37 @ Vulpix - .2byte 320 @ Wailmer - .2byte 321 @ Wailord - .2byte 365 @ Walrein - .2byte 8 @ Wartortle - .2byte 13 @ Weedle - .2byte 70 @ Weepinbell - .2byte 110 @ Weezing - .2byte 340 @ Whiscash - .2byte 293 @ Whismur - .2byte 40 @ Wigglytuff - .2byte 278 @ Wingull - .2byte 202 @ Wobbuffet - .2byte 194 @ Wooper - .2byte 265 @ Wurmple - .2byte 360 @ Wynaut - .2byte 178 @ Xatu - .2byte 193 @ Yanma - .2byte 335 @ Zangoose - .2byte 145 @ Zapdos - .2byte 263 @ Zigzagoon - .2byte 41 @ Zubat - - .align 1 -gPokedexOrder_Weight:: @ 839FDFA - .2byte 92 @ Gastly - .2byte 93 @ Haunter - .2byte 187 @ Hoppip - .2byte 50 @ Diglett - .2byte 351 @ Castform - .2byte 109 @ Koffing - .2byte 174 @ Igglybuff - .2byte 200 @ Misdreavus - .2byte 358 @ Chimecho - .2byte 188 @ Skiploom - .2byte 385 @ Jirachi - .2byte 333 @ Swablu - .2byte 292 @ Shedinja - .2byte 175 @ Togepi - .2byte 283 @ Surskit - .2byte 16 @ Pidgey - .2byte 191 @ Sunkern - .2byte 339 @ Barboach - .2byte 172 @ Pichu - .2byte 298 @ Azurill - .2byte 315 @ Roselia - .2byte 177 @ Natu - .2byte 21 @ Spearow - .2byte 198 @ Murkrow - .2byte 353 @ Shuppet - .2byte 276 @ Taillow - .2byte 102 @ Exeggcute - .2byte 255 @ Torchic - .2byte 270 @ Lotad - .2byte 10 @ Caterpie - .2byte 189 @ Jumpluff - .2byte 173 @ Cleffa - .2byte 13 @ Weedle - .2byte 176 @ Togetic - .2byte 147 @ Dratini - .2byte 19 @ Rattata - .2byte 284 @ Masquerain - .2byte 265 @ Wurmple - .2byte 211 @ Qwilfish - .2byte 151 @ Mew - .2byte 90 @ Shellder - .2byte 273 @ Seedot - .2byte 132 @ Ditto - .2byte 69 @ Bellsprout - .2byte 311 @ Plusle - .2byte 52 @ Meowth - .2byte 312 @ Minun - .2byte 285 @ Shroomish - .2byte 251 @ Celebi - .2byte 222 @ Corsola - .2byte 252 @ Treecko - .2byte 327 @ Spinda - .2byte 201 @ Unown - .2byte 46 @ Paras - .2byte 43 @ Oddish - .2byte 39 @ Jigglypuff - .2byte 290 @ Nincada - .2byte 182 @ Bellossom - .2byte 81 @ Magnemite - .2byte 25 @ Pikachu - .2byte 238 @ Smoochum - .2byte 161 @ Sentret - .2byte 70 @ Weepinbell - .2byte 152 @ Chikorita - .2byte 220 @ Swinub - .2byte 133 @ Eevee - .2byte 98 @ Krabby - .2byte 104 @ Cubone - .2byte 280 @ Ralts - .2byte 1 @ Bulbasaur - .2byte 23 @ Ekans - .2byte 29 @ Nidoran♀ - .2byte 204 @ Pineco - .2byte 349 @ Feebas - .2byte 138 @ Omanyte - .2byte 41 @ Zubat - .2byte 35 @ Clefairy - .2byte 258 @ Mudkip - .2byte 209 @ Snubbull - .2byte 179 @ Mareep - .2byte 155 @ Cyndaquil - .2byte 116 @ Horsea - .2byte 4 @ Charmander - .2byte 192 @ Sunflora - .2byte 183 @ Marill - .2byte 194 @ Wooper - .2byte 167 @ Spinarak - .2byte 44 @ Gloom - .2byte 370 @ Luvdisc - .2byte 216 @ Teddiursa - .2byte 32 @ Nidoran♂ - .2byte 7 @ Squirtle - .2byte 278 @ Wingull - .2byte 158 @ Totodile - .2byte 110 @ Weezing - .2byte 37 @ Vulpix - .2byte 11 @ Metapod - .2byte 266 @ Silcoon - .2byte 129 @ Magikarp - .2byte 14 @ Kakuna - .2byte 316 @ Gulpin - .2byte 100 @ Voltorb - .2byte 165 @ Ledyba - .2byte 228 @ Houndour - .2byte 300 @ Skitty - .2byte 302 @ Sableye - .2byte 307 @ Meditite - .2byte 341 @ Corphish - .2byte 190 @ Aipom - .2byte 268 @ Cascoon - .2byte 303 @ Mawile - .2byte 140 @ Kabuto - .2byte 40 @ Wigglytuff - .2byte 27 @ Sandshrew - .2byte 223 @ Remoraid - .2byte 291 @ Ninjask - .2byte 170 @ Chinchou - .2byte 60 @ Poliwag - .2byte 347 @ Anorith - .2byte 49 @ Venomoth - .2byte 354 @ Banette - .2byte 2 @ Ivysaur - .2byte 180 @ Flaaffy - .2byte 261 @ Poochyena - .2byte 360 @ Wynaut - .2byte 206 @ Dunsparce - .2byte 178 @ Xatu - .2byte 355 @ Duskull - .2byte 83 @ Farfetch’d - .2byte 328 @ Trapinch - .2byte 118 @ Goldeen - .2byte 309 @ Electrike - .2byte 329 @ Vibrava - .2byte 71 @ Victreebel - .2byte 153 @ Bayleef - .2byte 225 @ Delibird - .2byte 293 @ Whismur - .2byte 148 @ Dragonair - .2byte 361 @ Snorunt - .2byte 263 @ Zigzagoon - .2byte 314 @ Illumise - .2byte 313 @ Volbeat - .2byte 20 @ Raticate - .2byte 45 @ Vileplume - .2byte 156 @ Quilava - .2byte 5 @ Charmeleon - .2byte 58 @ Growlithe - .2byte 256 @ Combusken - .2byte 66 @ Machop - .2byte 63 @ Abra - .2byte 33 @ Nidorino - .2byte 54 @ Psyduck - .2byte 277 @ Swellow - .2byte 38 @ Ninetales - .2byte 30 @ Nidorina - .2byte 61 @ Poliwhirl - .2byte 74 @ Geodude - .2byte 281 @ Kirlia - .2byte 213 @ Shuckle - .2byte 334 @ Altaria - .2byte 318 @ Carvanha - .2byte 236 @ Tyrogue - .2byte 163 @ Hoothoot - .2byte 240 @ Magby - .2byte 343 @ Baltoy - .2byte 253 @ Grovyle - .2byte 352 @ Kecleon - .2byte 171 @ Lanturn - .2byte 8 @ Wartortle - .2byte 368 @ Gorebyss - .2byte 369 @ Relicanth - .2byte 239 @ Elekid - .2byte 340 @ Whiscash - .2byte 345 @ Lileep - .2byte 322 @ Numel - .2byte 287 @ Slakoth - .2byte 135 @ Jolteon - .2byte 159 @ Croconaw - .2byte 136 @ Flareon - .2byte 117 @ Seadra - .2byte 196 @ Espeon - .2byte 367 @ Huntail - .2byte 197 @ Umbreon - .2byte 259 @ Marshtomp - .2byte 274 @ Nuzleaf - .2byte 215 @ Sneasel - .2byte 56 @ Mankey - .2byte 279 @ Pelipper - .2byte 267 @ Beautifly - .2byte 224 @ Octillery - .2byte 184 @ Azumarill - .2byte 202 @ Wobbuffet - .2byte 134 @ Vaporeon - .2byte 28 @ Sandslash - .2byte 47 @ Parasect - .2byte 15 @ Beedrill - .2byte 89 @ Muk - .2byte 17 @ Pidgeotto - .2byte 88 @ Grimer - .2byte 26 @ Raichu - .2byte 77 @ Ponyta - .2byte 125 @ Electabuzz - .2byte 48 @ Venonat - .2byte 325 @ Spoink - .2byte 356 @ Dusclops - .2byte 308 @ Medicham - .2byte 269 @ Dustox - .2byte 53 @ Persian - .2byte 12 @ Butterfree - .2byte 57 @ Primeape - .2byte 96 @ Drowzee - .2byte 162 @ Furret - .2byte 233 @ Porygon2 - .2byte 271 @ Lombre - .2byte 264 @ Linoone - .2byte 301 @ Delcatty - .2byte 342 @ Crawdaunt - .2byte 51 @ Dugtrio - .2byte 168 @ Ariados - .2byte 231 @ Phanpy - .2byte 186 @ Politoed - .2byte 120 @ Staryu - .2byte 113 @ Chansey - .2byte 139 @ Omastar - .2byte 114 @ Tangela - .2byte 218 @ Slugma - .2byte 229 @ Houndoom - .2byte 166 @ Ledian - .2byte 79 @ Slowpoke - .2byte 137 @ Porygon - .2byte 262 @ Mightyena - .2byte 193 @ Yanma - .2byte 22 @ Fearow - .2byte 185 @ Sudowoodo - .2byte 119 @ Seaking - .2byte 286 @ Breloom - .2byte 84 @ Doduo - .2byte 18 @ Pidgeot - .2byte 363 @ Spheal - .2byte 36 @ Clefable - .2byte 380 @ Latias - .2byte 310 @ Manectric - .2byte 335 @ Zangoose - .2byte 141 @ Kabutops - .2byte 94 @ Gengar - .2byte 294 @ Loudred - .2byte 124 @ Jynx - .2byte 164 @ Noctowl - .2byte 203 @ Girafarig - .2byte 371 @ Bagon - .2byte 126 @ Magmar - .2byte 105 @ Marowak - .2byte 72 @ Tentacool - .2byte 288 @ Vigoroth - .2byte 242 @ Blissey - .2byte 359 @ Absol - .2byte 65 @ Alakazam - .2byte 237 @ Hitmontop - .2byte 282 @ Gardevoir - .2byte 210 @ Granbull - .2byte 106 @ Hitmonlee - .2byte 107 @ Hitmonchan - .2byte 227 @ Skarmory - .2byte 331 @ Cacnea - .2byte 257 @ Blaziken - .2byte 254 @ Sceptile - .2byte 336 @ Seviper - .2byte 366 @ Clamperl - .2byte 145 @ Zapdos - .2byte 214 @ Heracross - .2byte 62 @ Poliwrath - .2byte 122 @ Mr. mime - .2byte 127 @ Pinsir - .2byte 272 @ Ludicolo - .2byte 73 @ Tentacruel - .2byte 42 @ Golbat - .2byte 219 @ Magcargo - .2byte 144 @ Articuno - .2byte 221 @ Piloswine - .2byte 123 @ Scyther - .2byte 64 @ Kadabra - .2byte 235 @ Smeargle - .2byte 142 @ Aerodactyl - .2byte 275 @ Shiftry - .2byte 99 @ Kingler - .2byte 31 @ Nidoqueen - .2byte 82 @ Magneton - .2byte 304 @ Aron - .2byte 381 @ Latios - .2byte 146 @ Moltres - .2byte 346 @ Cradily - .2byte 386 @ Deoxys - .2byte 181 @ Ampharos - .2byte 34 @ Nidoking - .2byte 207 @ Gligar - .2byte 24 @ Arbok - .2byte 108 @ Lickitung - .2byte 101 @ Electrode - .2byte 348 @ Armaldo - .2byte 67 @ Machoke - .2byte 234 @ Stantler - .2byte 326 @ Grumpig - .2byte 246 @ Larvitar - .2byte 169 @ Crobat - .2byte 195 @ Quagsire - .2byte 241 @ Miltank - .2byte 97 @ Hypno - .2byte 55 @ Golduck - .2byte 332 @ Cacturne - .2byte 80 @ Slowbro - .2byte 157 @ Typhlosion - .2byte 199 @ Slowking - .2byte 115 @ Kangaskhan - .2byte 121 @ Starmie - .2byte 317 @ Swalot - .2byte 324 @ Torkoal - .2byte 260 @ Swampert - .2byte 330 @ Flygon - .2byte 295 @ Exploud - .2byte 85 @ Dodrio - .2byte 9 @ Blastoise - .2byte 296 @ Makuhita - .2byte 364 @ Sealeo - .2byte 128 @ Tauros - .2byte 319 @ Sharpedo - .2byte 160 @ Feraligatr - .2byte 86 @ Seel - .2byte 6 @ Charizard - .2byte 78 @ Rapidash - .2byte 374 @ Beldum - .2byte 299 @ Nosepass - .2byte 3 @ Venusaur - .2byte 357 @ Tropius - .2byte 154 @ Meganium - .2byte 373 @ Salamence - .2byte 75 @ Graveler - .2byte 344 @ Claydol - .2byte 372 @ Shelgon - .2byte 111 @ Rhyhorn - .2byte 212 @ Scizor - .2byte 87 @ Dewgong - .2byte 112 @ Rhydon - .2byte 232 @ Donphan - .2byte 103 @ Exeggutor - .2byte 305 @ Lairon - .2byte 150 @ Mewtwo - .2byte 217 @ Ursaring - .2byte 205 @ Forretress - .2byte 68 @ Machamp - .2byte 320 @ Wailmer - .2byte 289 @ Slaking - .2byte 91 @ Cloyster - .2byte 365 @ Walrein - .2byte 247 @ Pupitar - .2byte 230 @ Kingdra - .2byte 338 @ Solrock - .2byte 59 @ Arcanine - .2byte 350 @ Milotic - .2byte 337 @ Lunatone - .2byte 378 @ Regice - .2byte 243 @ Raikou - .2byte 245 @ Suicune - .2byte 244 @ Entei - .2byte 250 @ Ho-Oh - .2byte 248 @ Tyranitar - .2byte 375 @ Metang - .2byte 379 @ Registeel - .2byte 384 @ Rayquaza - .2byte 95 @ Onix - .2byte 149 @ Dragonite - .2byte 249 @ Lugia - .2byte 131 @ Lapras - .2byte 323 @ Camerupt - .2byte 226 @ Mantine - .2byte 377 @ Regirock - .2byte 130 @ Gyarados - .2byte 297 @ Hariyama - .2byte 362 @ Glalie - .2byte 76 @ Golem - .2byte 382 @ Kyogre - .2byte 306 @ Aggron - .2byte 321 @ Wailord - .2byte 208 @ Steelix - .2byte 143 @ Snorlax - .2byte 376 @ Metagross - .2byte 383 @ Groudon - - .align 1 -gPokedexOrder_Height:: @ 83A00FE - .2byte 50 @ Diglett - .2byte 298 @ Azurill - .2byte 177 @ Natu - .2byte 13 @ Weedle - .2byte 172 @ Pichu - .2byte 173 @ Cleffa - .2byte 175 @ Togepi - .2byte 351 @ Castform - .2byte 174 @ Igglybuff - .2byte 10 @ Caterpie - .2byte 276 @ Taillow - .2byte 132 @ Ditto - .2byte 133 @ Eevee - .2byte 315 @ Roselia - .2byte 21 @ Spearow - .2byte 16 @ Pidgey - .2byte 191 @ Sunkern - .2byte 90 @ Shellder - .2byte 19 @ Rattata - .2byte 81 @ Magnemite - .2byte 46 @ Paras - .2byte 265 @ Wurmple - .2byte 385 @ Jirachi - .2byte 104 @ Cubone - .2byte 258 @ Mudkip - .2byte 194 @ Wooper - .2byte 116 @ Horsea - .2byte 52 @ Meowth - .2byte 29 @ Nidoran♀ - .2byte 220 @ Swinub - .2byte 151 @ Mew - .2byte 333 @ Swablu - .2byte 304 @ Aron - .2byte 311 @ Plusle - .2byte 312 @ Minun - .2byte 102 @ Exeggcute - .2byte 25 @ Pikachu - .2byte 182 @ Bellossom - .2byte 316 @ Gulpin - .2byte 263 @ Zigzagoon - .2byte 285 @ Shroomish - .2byte 138 @ Omanyte - .2byte 331 @ Cacnea - .2byte 98 @ Krabby - .2byte 280 @ Ralts - .2byte 187 @ Hoppip - .2byte 255 @ Torchic - .2byte 366 @ Clamperl - .2byte 74 @ Geodude - .2byte 183 @ Marill - .2byte 339 @ Barboach - .2byte 238 @ Smoochum - .2byte 100 @ Voltorb - .2byte 290 @ Nincada - .2byte 302 @ Sableye - .2byte 198 @ Murkrow - .2byte 211 @ Qwilfish - .2byte 7 @ Squirtle - .2byte 252 @ Treecko - .2byte 343 @ Baltoy - .2byte 43 @ Oddish - .2byte 270 @ Lotad - .2byte 39 @ Jigglypuff - .2byte 283 @ Surskit - .2byte 155 @ Cyndaquil - .2byte 140 @ Kabuto - .2byte 264 @ Linoone - .2byte 324 @ Torkoal - .2byte 32 @ Nidoran♂ - .2byte 167 @ Spinarak - .2byte 56 @ Mankey - .2byte 273 @ Seedot - .2byte 261 @ Poochyena - .2byte 231 @ Phanpy - .2byte 201 @ Unown - .2byte 170 @ Chinchou - .2byte 233 @ Porygon2 - .2byte 60 @ Poliwag - .2byte 371 @ Bagon - .2byte 349 @ Feebas - .2byte 353 @ Shuppet - .2byte 158 @ Totodile - .2byte 251 @ Celebi - .2byte 360 @ Wynaut - .2byte 27 @ Sandshrew - .2byte 358 @ Chimecho - .2byte 370 @ Luvdisc - .2byte 228 @ Houndour - .2byte 266 @ Silcoon - .2byte 309 @ Electrike - .2byte 4 @ Charmander - .2byte 307 @ Meditite - .2byte 278 @ Wingull - .2byte 223 @ Remoraid - .2byte 341 @ Corphish - .2byte 222 @ Corsola - .2byte 314 @ Illumise - .2byte 209 @ Snubbull - .2byte 37 @ Vulpix - .2byte 246 @ Larvitar - .2byte 374 @ Beldum - .2byte 293 @ Whismur - .2byte 204 @ Pineco - .2byte 239 @ Elekid - .2byte 35 @ Clefairy - .2byte 213 @ Shuckle - .2byte 216 @ Teddiursa - .2byte 14 @ Kakuna - .2byte 300 @ Skitty - .2byte 176 @ Togetic - .2byte 118 @ Goldeen - .2byte 303 @ Mawile - .2byte 179 @ Mareep - .2byte 188 @ Skiploom - .2byte 109 @ Koffing - .2byte 51 @ Dugtrio - .2byte 268 @ Cascoon - .2byte 322 @ Numel - .2byte 347 @ Anorith - .2byte 313 @ Volbeat - .2byte 163 @ Hoothoot - .2byte 328 @ Trapinch - .2byte 325 @ Spoink - .2byte 11 @ Metapod - .2byte 69 @ Bellsprout - .2byte 361 @ Snorunt - .2byte 20 @ Raticate - .2byte 259 @ Marshtomp - .2byte 277 @ Swellow - .2byte 240 @ Magby - .2byte 58 @ Growlithe - .2byte 200 @ Misdreavus - .2byte 1 @ Bulbasaur - .2byte 236 @ Tyrogue - .2byte 218 @ Slugma - .2byte 287 @ Slakoth - .2byte 281 @ Kirlia - .2byte 190 @ Aipom - .2byte 135 @ Jolteon - .2byte 30 @ Nidorina - .2byte 184 @ Azumarill - .2byte 292 @ Shedinja - .2byte 66 @ Machop - .2byte 291 @ Ninjask - .2byte 284 @ Masquerain - .2byte 355 @ Duskull - .2byte 192 @ Sunflora - .2byte 189 @ Jumpluff - .2byte 120 @ Staryu - .2byte 180 @ Flaaffy - .2byte 363 @ Spheal - .2byte 54 @ Psyduck - .2byte 219 @ Magcargo - .2byte 83 @ Farfetch’d - .2byte 41 @ Zubat - .2byte 137 @ Porygon - .2byte 161 @ Sentret - .2byte 318 @ Carvanha - .2byte 44 @ Gloom - .2byte 26 @ Raichu - .2byte 129 @ Magikarp - .2byte 215 @ Sneasel - .2byte 305 @ Lairon - .2byte 256 @ Combusken - .2byte 224 @ Octillery - .2byte 33 @ Nidorino - .2byte 136 @ Flareon - .2byte 225 @ Delibird - .2byte 72 @ Tentacool - .2byte 63 @ Abra - .2byte 253 @ Grovyle - .2byte 340 @ Whiscash - .2byte 156 @ Quilava - .2byte 196 @ Espeon - .2byte 88 @ Grimer - .2byte 152 @ Chikorita - .2byte 326 @ Grumpig - .2byte 299 @ Nosepass - .2byte 53 @ Persian - .2byte 262 @ Mightyena - .2byte 48 @ Venonat - .2byte 82 @ Magneton - .2byte 77 @ Ponyta - .2byte 296 @ Makuhita - .2byte 337 @ Lunatone - .2byte 28 @ Sandslash - .2byte 96 @ Drowzee - .2byte 114 @ Tangela - .2byte 57 @ Primeape - .2byte 165 @ Ledyba - .2byte 40 @ Wigglytuff - .2byte 47 @ Parasect - .2byte 139 @ Omastar - .2byte 294 @ Loudred - .2byte 8 @ Wartortle - .2byte 75 @ Graveler - .2byte 197 @ Umbreon - .2byte 345 @ Lileep - .2byte 61 @ Poliwhirl - .2byte 134 @ Vaporeon - .2byte 15 @ Beedrill - .2byte 105 @ Marowak - .2byte 70 @ Weepinbell - .2byte 369 @ Relicanth - .2byte 111 @ Rhyhorn - .2byte 2 @ Ivysaur - .2byte 352 @ Kecleon - .2byte 274 @ Nuzleaf - .2byte 267 @ Beautifly - .2byte 17 @ Pidgeotto - .2byte 168 @ Ariados - .2byte 86 @ Seel - .2byte 186 @ Politoed - .2byte 159 @ Croconaw - .2byte 113 @ Chansey - .2byte 354 @ Banette - .2byte 232 @ Donphan - .2byte 121 @ Starmie - .2byte 5 @ Charmeleon - .2byte 221 @ Piloswine - .2byte 12 @ Butterfree - .2byte 329 @ Vibrava - .2byte 125 @ Electabuzz - .2byte 342 @ Crawdaunt - .2byte 301 @ Delcatty - .2byte 334 @ Altaria - .2byte 372 @ Shelgon - .2byte 38 @ Ninetales - .2byte 207 @ Gligar - .2byte 364 @ Sealeo - .2byte 327 @ Spinda - .2byte 247 @ Pupitar - .2byte 79 @ Slowpoke - .2byte 338 @ Solrock - .2byte 241 @ Miltank - .2byte 22 @ Fearow - .2byte 45 @ Vileplume - .2byte 89 @ Muk - .2byte 205 @ Forretress - .2byte 185 @ Sudowoodo - .2byte 359 @ Absol - .2byte 193 @ Yanma - .2byte 269 @ Dustox - .2byte 108 @ Lickitung - .2byte 235 @ Smeargle - .2byte 171 @ Lanturn - .2byte 101 @ Electrode - .2byte 271 @ Lombre - .2byte 286 @ Breloom - .2byte 153 @ Bayleef - .2byte 117 @ Seadra - .2byte 110 @ Weezing - .2byte 279 @ Pelipper - .2byte 375 @ Metang - .2byte 31 @ Nidoqueen - .2byte 332 @ Cacturne - .2byte 275 @ Shiftry - .2byte 308 @ Medicham - .2byte 335 @ Zangoose - .2byte 141 @ Kabutops - .2byte 99 @ Kingler - .2byte 64 @ Kadabra - .2byte 119 @ Seaking - .2byte 36 @ Clefable - .2byte 126 @ Magmar - .2byte 202 @ Wobbuffet - .2byte 92 @ Gastly - .2byte 122 @ Mr. mime - .2byte 62 @ Poliwrath - .2byte 128 @ Tauros - .2byte 380 @ Latias - .2byte 181 @ Ampharos - .2byte 288 @ Vigoroth - .2byte 166 @ Ledian - .2byte 76 @ Golem - .2byte 365 @ Walrein - .2byte 84 @ Doduo - .2byte 229 @ Houndoom - .2byte 34 @ Nidoking - .2byte 124 @ Jynx - .2byte 107 @ Hitmonchan - .2byte 234 @ Stantler - .2byte 210 @ Granbull - .2byte 237 @ Hitmontop - .2byte 195 @ Quagsire - .2byte 344 @ Claydol - .2byte 260 @ Swampert - .2byte 242 @ Blissey - .2byte 272 @ Ludicolo - .2byte 295 @ Exploud - .2byte 206 @ Dunsparce - .2byte 127 @ Pinsir - .2byte 91 @ Cloyster - .2byte 67 @ Machoke - .2byte 203 @ Girafarig - .2byte 18 @ Pidgeot - .2byte 178 @ Xatu - .2byte 346 @ Cradily - .2byte 106 @ Hitmonlee - .2byte 49 @ Venomoth - .2byte 94 @ Gengar - .2byte 214 @ Heracross - .2byte 362 @ Glalie - .2byte 123 @ Scyther - .2byte 373 @ Salamence - .2byte 310 @ Manectric - .2byte 348 @ Armaldo - .2byte 65 @ Alakazam - .2byte 97 @ Hypno - .2byte 164 @ Noctowl - .2byte 73 @ Tentacruel - .2byte 356 @ Dusclops - .2byte 145 @ Zapdos - .2byte 42 @ Golbat - .2byte 376 @ Metagross - .2byte 282 @ Gardevoir - .2byte 9 @ Blastoise - .2byte 80 @ Slowbro - .2byte 93 @ Haunter - .2byte 68 @ Machamp - .2byte 377 @ Regirock - .2byte 317 @ Swalot - .2byte 254 @ Sceptile - .2byte 227 @ Skarmory - .2byte 55 @ Golduck - .2byte 386 @ Deoxys - .2byte 71 @ Victreebel - .2byte 78 @ Rapidash - .2byte 6 @ Charizard - .2byte 367 @ Huntail - .2byte 87 @ Dewgong - .2byte 144 @ Articuno - .2byte 157 @ Typhlosion - .2byte 142 @ Aerodactyl - .2byte 368 @ Gorebyss - .2byte 217 @ Ursaring - .2byte 154 @ Meganium - .2byte 378 @ Regice - .2byte 212 @ Scizor - .2byte 230 @ Kingdra - .2byte 147 @ Dratini - .2byte 85 @ Dodrio - .2byte 319 @ Sharpedo - .2byte 169 @ Crobat - .2byte 162 @ Furret - .2byte 59 @ Arcanine - .2byte 243 @ Raikou - .2byte 257 @ Blaziken - .2byte 323 @ Camerupt - .2byte 112 @ Rhydon - .2byte 379 @ Registeel - .2byte 23 @ Ekans - .2byte 330 @ Flygon - .2byte 357 @ Tropius - .2byte 381 @ Latios - .2byte 245 @ Suicune - .2byte 146 @ Moltres - .2byte 3 @ Venusaur - .2byte 103 @ Exeggutor - .2byte 199 @ Slowking - .2byte 248 @ Tyranitar - .2byte 289 @ Slaking - .2byte 320 @ Wailmer - .2byte 150 @ Mewtwo - .2byte 306 @ Aggron - .2byte 143 @ Snorlax - .2byte 226 @ Mantine - .2byte 244 @ Entei - .2byte 149 @ Dragonite - .2byte 115 @ Kangaskhan - .2byte 297 @ Hariyama - .2byte 160 @ Feraligatr - .2byte 131 @ Lapras - .2byte 336 @ Seviper - .2byte 24 @ Arbok - .2byte 383 @ Groudon - .2byte 250 @ Ho-Oh - .2byte 148 @ Dragonair - .2byte 382 @ Kyogre - .2byte 249 @ Lugia - .2byte 350 @ Milotic - .2byte 130 @ Gyarados - .2byte 384 @ Rayquaza - .2byte 95 @ Onix - .2byte 208 @ Steelix - .2byte 321 @ Wailord diff --git a/data/scripts/maps/LittlerootTown_BrendansHouse_2F.inc b/data/scripts/maps/LittlerootTown_BrendansHouse_2F.inc index 4f121118a..0c6ec79f7 100644 --- a/data/scripts/maps/LittlerootTown_BrendansHouse_2F.inc +++ b/data/scripts/maps/LittlerootTown_BrendansHouse_2F.inc @@ -67,7 +67,7 @@ LittlerootTown_BrendansHouse_2F_EventScript_152837:: @ 8152837 releaseall end -gUnknown_08152850:: @ 8152850 +gBrendanHouse_TurnPCOff:: @ 8152850 setvar 0x8004, 1 playsfx SE_PC_OFF special 215 diff --git a/data/scripts/maps/LittlerootTown_MaysHouse_2F.inc b/data/scripts/maps/LittlerootTown_MaysHouse_2F.inc index 7871940ca..1aca3f86e 100644 --- a/data/scripts/maps/LittlerootTown_MaysHouse_2F.inc +++ b/data/scripts/maps/LittlerootTown_MaysHouse_2F.inc @@ -215,7 +215,7 @@ LittlerootTown_MaysHouse_2F_EventScript_152C5C:: @ 8152C5C releaseall end -gUnknown_08152C75:: @ 8152C75 +gMayHouse_TurnPCOff:: @ 8152C75 setvar 0x8004, 2 playsfx SE_PC_OFF special 215 diff --git a/data/sine_degree_table.inc b/data/sine_degree_table.inc deleted file mode 100644 index a9cf05b62..000000000 --- a/data/sine_degree_table.inc +++ /dev/null @@ -1,183 +0,0 @@ -@ values of sin(x) as Q4.12 fixed-point numbers from x = 0° to x = 179° - .align 1 -gSineDegreeTable:: @ 82085C4 - .2byte 0x0000 @ sin(0°) = 0 - .2byte 0x0047 @ sin(1°) = 0.017333984375 - .2byte 0x008F @ sin(2°) = 0.034912109375 - .2byte 0x00D6 @ sin(3°) = 0.05224609375 - .2byte 0x011E @ sin(4°) = 0.06982421875 - .2byte 0x0165 @ sin(5°) = 0.087158203125 - .2byte 0x01AC @ sin(6°) = 0.1044921875 - .2byte 0x01F3 @ sin(7°) = 0.121826171875 - .2byte 0x023A @ sin(8°) = 0.13916015625 - .2byte 0x0281 @ sin(9°) = 0.156494140625 - .2byte 0x02C7 @ sin(10°) = 0.173583984375 - .2byte 0x030E @ sin(11°) = 0.19091796875 - .2byte 0x0354 @ sin(12°) = 0.2080078125 - .2byte 0x0399 @ sin(13°) = 0.224853515625 - .2byte 0x03DF @ sin(14°) = 0.241943359375 - .2byte 0x0424 @ sin(15°) = 0.2587890625 - .2byte 0x0469 @ sin(16°) = 0.275634765625 - .2byte 0x04AE @ sin(17°) = 0.29248046875 - .2byte 0x04F2 @ sin(18°) = 0.30908203125 - .2byte 0x0536 @ sin(19°) = 0.32568359375 - .2byte 0x0579 @ sin(20°) = 0.342041015625 - .2byte 0x05BC @ sin(21°) = 0.3583984375 - .2byte 0x05FE @ sin(22°) = 0.37451171875 - .2byte 0x0640 @ sin(23°) = 0.390625 - .2byte 0x0682 @ sin(24°) = 0.40673828125 - .2byte 0x06C3 @ sin(25°) = 0.422607421875 - .2byte 0x0704 @ sin(26°) = 0.4384765625 - .2byte 0x0744 @ sin(27°) = 0.4541015625 - .2byte 0x0783 @ sin(28°) = 0.469482421875 - .2byte 0x07C2 @ sin(29°) = 0.48486328125 - .2byte 0x0800 @ sin(30°) = 0.5 - .2byte 0x083E @ sin(31°) = 0.51513671875 - .2byte 0x087B @ sin(32°) = 0.530029296875 - .2byte 0x08B7 @ sin(33°) = 0.544677734375 - .2byte 0x08F2 @ sin(34°) = 0.55908203125 - .2byte 0x092D @ sin(35°) = 0.573486328125 - .2byte 0x0968 @ sin(36°) = 0.587890625 - .2byte 0x09A1 @ sin(37°) = 0.601806640625 - .2byte 0x09DA @ sin(38°) = 0.61572265625 - .2byte 0x0A12 @ sin(39°) = 0.62939453125 - .2byte 0x0A49 @ sin(40°) = 0.642822265625 - .2byte 0x0A7F @ sin(41°) = 0.656005859375 - .2byte 0x0AB5 @ sin(42°) = 0.669189453125 - .2byte 0x0AE9 @ sin(43°) = 0.681884765625 - .2byte 0x0B1D @ sin(44°) = 0.694580078125 - .2byte 0x0B50 @ sin(45°) = 0.70703125 - .2byte 0x0B82 @ sin(46°) = 0.71923828125 - .2byte 0x0BB4 @ sin(47°) = 0.7314453125 - .2byte 0x0BE4 @ sin(48°) = 0.7431640625 - .2byte 0x0C13 @ sin(49°) = 0.754638671875 - .2byte 0x0C42 @ sin(50°) = 0.76611328125 - .2byte 0x0C6F @ sin(51°) = 0.777099609375 - .2byte 0x0C9C @ sin(52°) = 0.7880859375 - .2byte 0x0CC7 @ sin(53°) = 0.798583984375 - .2byte 0x0CF2 @ sin(54°) = 0.80908203125 - .2byte 0x0D1B @ sin(55°) = 0.819091796875 - .2byte 0x0D44 @ sin(56°) = 0.8291015625 - .2byte 0x0D6B @ sin(57°) = 0.838623046875 - .2byte 0x0D92 @ sin(58°) = 0.84814453125 - .2byte 0x0DB7 @ sin(59°) = 0.857177734375 - .2byte 0x0DDB @ sin(60°) = 0.865966796875 - .2byte 0x0DFE @ sin(61°) = 0.87451171875 - .2byte 0x0E21 @ sin(62°) = 0.883056640625 - .2byte 0x0E42 @ sin(63°) = 0.89111328125 - .2byte 0x0E61 @ sin(64°) = 0.898681640625 - .2byte 0x0E80 @ sin(65°) = 0.90625 - .2byte 0x0E9E @ sin(66°) = 0.91357421875 - .2byte 0x0EBA @ sin(67°) = 0.92041015625 - .2byte 0x0ED6 @ sin(68°) = 0.92724609375 - .2byte 0x0EF0 @ sin(69°) = 0.93359375 - .2byte 0x0F09 @ sin(70°) = 0.939697265625 - .2byte 0x0F21 @ sin(71°) = 0.945556640625 - .2byte 0x0F38 @ sin(72°) = 0.951171875 - .2byte 0x0F4D @ sin(73°) = 0.956298828125 - .2byte 0x0F61 @ sin(74°) = 0.961181640625 - .2byte 0x0F74 @ sin(75°) = 0.9658203125 - .2byte 0x0F86 @ sin(76°) = 0.97021484375 - .2byte 0x0F97 @ sin(77°) = 0.974365234375 - .2byte 0x0FA6 @ sin(78°) = 0.97802734375 - .2byte 0x0FB5 @ sin(79°) = 0.981689453125 - .2byte 0x0FC2 @ sin(80°) = 0.98486328125 - .2byte 0x0FCE @ sin(81°) = 0.98779296875 - .2byte 0x0FD8 @ sin(82°) = 0.990234375 - .2byte 0x0FE1 @ sin(83°) = 0.992431640625 - .2byte 0x0FE9 @ sin(84°) = 0.994384765625 - .2byte 0x0FF0 @ sin(85°) = 0.99609375 - .2byte 0x0FF6 @ sin(86°) = 0.99755859375 - .2byte 0x0FFA @ sin(87°) = 0.99853515625 - .2byte 0x0FFD @ sin(88°) = 0.999267578125 - .2byte 0x0FFF @ sin(89°) = 0.999755859375 - .2byte 0x1000 @ sin(90°) = 1 - .2byte 0x0FFF @ sin(91°) = 0.999755859375 - .2byte 0x0FFD @ sin(92°) = 0.999267578125 - .2byte 0x0FFA @ sin(93°) = 0.99853515625 - .2byte 0x0FF6 @ sin(94°) = 0.99755859375 - .2byte 0x0FF0 @ sin(95°) = 0.99609375 - .2byte 0x0FE9 @ sin(96°) = 0.994384765625 - .2byte 0x0FE1 @ sin(97°) = 0.992431640625 - .2byte 0x0FD8 @ sin(98°) = 0.990234375 - .2byte 0x0FCE @ sin(99°) = 0.98779296875 - .2byte 0x0FC2 @ sin(100°) = 0.98486328125 - .2byte 0x0FB5 @ sin(101°) = 0.981689453125 - .2byte 0x0FA6 @ sin(102°) = 0.97802734375 - .2byte 0x0F97 @ sin(103°) = 0.974365234375 - .2byte 0x0F86 @ sin(104°) = 0.97021484375 - .2byte 0x0F74 @ sin(105°) = 0.9658203125 - .2byte 0x0F61 @ sin(106°) = 0.961181640625 - .2byte 0x0F4D @ sin(107°) = 0.956298828125 - .2byte 0x0F38 @ sin(108°) = 0.951171875 - .2byte 0x0F21 @ sin(109°) = 0.945556640625 - .2byte 0x0F09 @ sin(110°) = 0.939697265625 - .2byte 0x0EF0 @ sin(111°) = 0.93359375 - .2byte 0x0ED6 @ sin(112°) = 0.92724609375 - .2byte 0x0EBA @ sin(113°) = 0.92041015625 - .2byte 0x0E9E @ sin(114°) = 0.91357421875 - .2byte 0x0E80 @ sin(115°) = 0.90625 - .2byte 0x0E61 @ sin(116°) = 0.898681640625 - .2byte 0x0E42 @ sin(117°) = 0.89111328125 - .2byte 0x0E21 @ sin(118°) = 0.883056640625 - .2byte 0x0DFE @ sin(119°) = 0.87451171875 - .2byte 0x0DDB @ sin(120°) = 0.865966796875 - .2byte 0x0DB7 @ sin(121°) = 0.857177734375 - .2byte 0x0D92 @ sin(122°) = 0.84814453125 - .2byte 0x0D6B @ sin(123°) = 0.838623046875 - .2byte 0x0D44 @ sin(124°) = 0.8291015625 - .2byte 0x0D1B @ sin(125°) = 0.819091796875 - .2byte 0x0CF2 @ sin(126°) = 0.80908203125 - .2byte 0x0CC7 @ sin(127°) = 0.798583984375 - .2byte 0x0C9C @ sin(128°) = 0.7880859375 - .2byte 0x0C6F @ sin(129°) = 0.777099609375 - .2byte 0x0C42 @ sin(130°) = 0.76611328125 - .2byte 0x0C13 @ sin(131°) = 0.754638671875 - .2byte 0x0BE4 @ sin(132°) = 0.7431640625 - .2byte 0x0BB4 @ sin(133°) = 0.7314453125 - .2byte 0x0B82 @ sin(134°) = 0.71923828125 - .2byte 0x0B50 @ sin(135°) = 0.70703125 - .2byte 0x0B1D @ sin(136°) = 0.694580078125 - .2byte 0x0AE9 @ sin(137°) = 0.681884765625 - .2byte 0x0AB5 @ sin(138°) = 0.669189453125 - .2byte 0x0A7F @ sin(139°) = 0.656005859375 - .2byte 0x0A49 @ sin(140°) = 0.642822265625 - .2byte 0x0A12 @ sin(141°) = 0.62939453125 - .2byte 0x09DA @ sin(142°) = 0.61572265625 - .2byte 0x09A1 @ sin(143°) = 0.601806640625 - .2byte 0x0968 @ sin(144°) = 0.587890625 - .2byte 0x092D @ sin(145°) = 0.573486328125 - .2byte 0x08F2 @ sin(146°) = 0.55908203125 - .2byte 0x08B7 @ sin(147°) = 0.544677734375 - .2byte 0x087B @ sin(148°) = 0.530029296875 - .2byte 0x083E @ sin(149°) = 0.51513671875 - .2byte 0x0800 @ sin(150°) = 0.5 - .2byte 0x07C2 @ sin(151°) = 0.48486328125 - .2byte 0x0783 @ sin(152°) = 0.469482421875 - .2byte 0x0744 @ sin(153°) = 0.4541015625 - .2byte 0x0704 @ sin(154°) = 0.4384765625 - .2byte 0x06C3 @ sin(155°) = 0.422607421875 - .2byte 0x0682 @ sin(156°) = 0.40673828125 - .2byte 0x0640 @ sin(157°) = 0.390625 - .2byte 0x05FE @ sin(158°) = 0.37451171875 - .2byte 0x05BC @ sin(159°) = 0.3583984375 - .2byte 0x0579 @ sin(160°) = 0.342041015625 - .2byte 0x0536 @ sin(161°) = 0.32568359375 - .2byte 0x04F2 @ sin(162°) = 0.30908203125 - .2byte 0x04AE @ sin(163°) = 0.29248046875 - .2byte 0x0469 @ sin(164°) = 0.275634765625 - .2byte 0x0424 @ sin(165°) = 0.2587890625 - .2byte 0x03DF @ sin(166°) = 0.241943359375 - .2byte 0x0399 @ sin(167°) = 0.224853515625 - .2byte 0x0354 @ sin(168°) = 0.2080078125 - .2byte 0x030E @ sin(169°) = 0.19091796875 - .2byte 0x02C7 @ sin(170°) = 0.173583984375 - .2byte 0x0281 @ sin(171°) = 0.156494140625 - .2byte 0x023A @ sin(172°) = 0.13916015625 - .2byte 0x01F3 @ sin(173°) = 0.121826171875 - .2byte 0x01AC @ sin(174°) = 0.1044921875 - .2byte 0x0165 @ sin(175°) = 0.087158203125 - .2byte 0x011E @ sin(176°) = 0.06982421875 - .2byte 0x00D6 @ sin(177°) = 0.05224609375 - .2byte 0x008F @ sin(178°) = 0.034912109375 - .2byte 0x0047 @ sin(179°) = 0.017333984375 diff --git a/data/sine_table.inc b/data/sine_table.inc deleted file mode 100644 index fd1a5da72..000000000 --- a/data/sine_table.inc +++ /dev/null @@ -1,323 +0,0 @@ -@ values of sin(x*(π/128)) as Q8.8 fixed-point numbers from x = 0 to x = 319 - .align 1 -gSineTable:: @ 8208344 - .2byte 0x0000 @ sin(0*(π/128)) = 0 - .2byte 0x0006 @ sin(1*(π/128)) = 0.0234375 - .2byte 0x000C @ sin(2*(π/128)) = 0.046875 - .2byte 0x0012 @ sin(3*(π/128)) = 0.0703125 - .2byte 0x0019 @ sin(4*(π/128)) = 0.09765625 - .2byte 0x001F @ sin(5*(π/128)) = 0.12109375 - .2byte 0x0025 @ sin(6*(π/128)) = 0.14453125 - .2byte 0x002B @ sin(7*(π/128)) = 0.16796875 - .2byte 0x0031 @ sin(8*(π/128)) = 0.19140625 - .2byte 0x0038 @ sin(9*(π/128)) = 0.21875 - .2byte 0x003E @ sin(10*(π/128)) = 0.2421875 - .2byte 0x0044 @ sin(11*(π/128)) = 0.265625 - .2byte 0x004A @ sin(12*(π/128)) = 0.2890625 - .2byte 0x0050 @ sin(13*(π/128)) = 0.3125 - .2byte 0x0056 @ sin(14*(π/128)) = 0.3359375 - .2byte 0x005C @ sin(15*(π/128)) = 0.359375 - .2byte 0x0061 @ sin(16*(π/128)) = 0.37890625 - .2byte 0x0067 @ sin(17*(π/128)) = 0.40234375 - .2byte 0x006D @ sin(18*(π/128)) = 0.42578125 - .2byte 0x0073 @ sin(19*(π/128)) = 0.44921875 - .2byte 0x0078 @ sin(20*(π/128)) = 0.46875 - .2byte 0x007E @ sin(21*(π/128)) = 0.4921875 - .2byte 0x0083 @ sin(22*(π/128)) = 0.51171875 - .2byte 0x0088 @ sin(23*(π/128)) = 0.53125 - .2byte 0x008E @ sin(24*(π/128)) = 0.5546875 - .2byte 0x0093 @ sin(25*(π/128)) = 0.57421875 - .2byte 0x0098 @ sin(26*(π/128)) = 0.59375 - .2byte 0x009D @ sin(27*(π/128)) = 0.61328125 - .2byte 0x00A2 @ sin(28*(π/128)) = 0.6328125 - .2byte 0x00A7 @ sin(29*(π/128)) = 0.65234375 - .2byte 0x00AB @ sin(30*(π/128)) = 0.66796875 - .2byte 0x00B0 @ sin(31*(π/128)) = 0.6875 - .2byte 0x00B5 @ sin(32*(π/128)) = 0.70703125 - .2byte 0x00B9 @ sin(33*(π/128)) = 0.72265625 - .2byte 0x00BD @ sin(34*(π/128)) = 0.73828125 - .2byte 0x00C1 @ sin(35*(π/128)) = 0.75390625 - .2byte 0x00C5 @ sin(36*(π/128)) = 0.76953125 - .2byte 0x00C9 @ sin(37*(π/128)) = 0.78515625 - .2byte 0x00CD @ sin(38*(π/128)) = 0.80078125 - .2byte 0x00D1 @ sin(39*(π/128)) = 0.81640625 - .2byte 0x00D4 @ sin(40*(π/128)) = 0.828125 - .2byte 0x00D8 @ sin(41*(π/128)) = 0.84375 - .2byte 0x00DB @ sin(42*(π/128)) = 0.85546875 - .2byte 0x00DE @ sin(43*(π/128)) = 0.8671875 - .2byte 0x00E1 @ sin(44*(π/128)) = 0.87890625 - .2byte 0x00E4 @ sin(45*(π/128)) = 0.890625 - .2byte 0x00E7 @ sin(46*(π/128)) = 0.90234375 - .2byte 0x00EA @ sin(47*(π/128)) = 0.9140625 - .2byte 0x00EC @ sin(48*(π/128)) = 0.921875 - .2byte 0x00EE @ sin(49*(π/128)) = 0.9296875 - .2byte 0x00F1 @ sin(50*(π/128)) = 0.94140625 - .2byte 0x00F3 @ sin(51*(π/128)) = 0.94921875 - .2byte 0x00F4 @ sin(52*(π/128)) = 0.953125 - .2byte 0x00F6 @ sin(53*(π/128)) = 0.9609375 - .2byte 0x00F8 @ sin(54*(π/128)) = 0.96875 - .2byte 0x00F9 @ sin(55*(π/128)) = 0.97265625 - .2byte 0x00FB @ sin(56*(π/128)) = 0.98046875 - .2byte 0x00FC @ sin(57*(π/128)) = 0.984375 - .2byte 0x00FD @ sin(58*(π/128)) = 0.98828125 - .2byte 0x00FE @ sin(59*(π/128)) = 0.9921875 - .2byte 0x00FE @ sin(60*(π/128)) = 0.9921875 - .2byte 0x00FF @ sin(61*(π/128)) = 0.99609375 - .2byte 0x00FF @ sin(62*(π/128)) = 0.99609375 - .2byte 0x00FF @ sin(63*(π/128)) = 0.99609375 - .2byte 0x0100 @ sin(64*(π/128)) = 1 - .2byte 0x00FF @ sin(65*(π/128)) = 0.99609375 - .2byte 0x00FF @ sin(66*(π/128)) = 0.99609375 - .2byte 0x00FF @ sin(67*(π/128)) = 0.99609375 - .2byte 0x00FE @ sin(68*(π/128)) = 0.9921875 - .2byte 0x00FE @ sin(69*(π/128)) = 0.9921875 - .2byte 0x00FD @ sin(70*(π/128)) = 0.98828125 - .2byte 0x00FC @ sin(71*(π/128)) = 0.984375 - .2byte 0x00FB @ sin(72*(π/128)) = 0.98046875 - .2byte 0x00F9 @ sin(73*(π/128)) = 0.97265625 - .2byte 0x00F8 @ sin(74*(π/128)) = 0.96875 - .2byte 0x00F6 @ sin(75*(π/128)) = 0.9609375 - .2byte 0x00F4 @ sin(76*(π/128)) = 0.953125 - .2byte 0x00F3 @ sin(77*(π/128)) = 0.94921875 - .2byte 0x00F1 @ sin(78*(π/128)) = 0.94140625 - .2byte 0x00EE @ sin(79*(π/128)) = 0.9296875 - .2byte 0x00EC @ sin(80*(π/128)) = 0.921875 - .2byte 0x00EA @ sin(81*(π/128)) = 0.9140625 - .2byte 0x00E7 @ sin(82*(π/128)) = 0.90234375 - .2byte 0x00E4 @ sin(83*(π/128)) = 0.890625 - .2byte 0x00E1 @ sin(84*(π/128)) = 0.87890625 - .2byte 0x00DE @ sin(85*(π/128)) = 0.8671875 - .2byte 0x00DB @ sin(86*(π/128)) = 0.85546875 - .2byte 0x00D8 @ sin(87*(π/128)) = 0.84375 - .2byte 0x00D4 @ sin(88*(π/128)) = 0.828125 - .2byte 0x00D1 @ sin(89*(π/128)) = 0.81640625 - .2byte 0x00CD @ sin(90*(π/128)) = 0.80078125 - .2byte 0x00C9 @ sin(91*(π/128)) = 0.78515625 - .2byte 0x00C5 @ sin(92*(π/128)) = 0.76953125 - .2byte 0x00C1 @ sin(93*(π/128)) = 0.75390625 - .2byte 0x00BD @ sin(94*(π/128)) = 0.73828125 - .2byte 0x00B9 @ sin(95*(π/128)) = 0.72265625 - .2byte 0x00B5 @ sin(96*(π/128)) = 0.70703125 - .2byte 0x00B0 @ sin(97*(π/128)) = 0.6875 - .2byte 0x00AB @ sin(98*(π/128)) = 0.66796875 - .2byte 0x00A7 @ sin(99*(π/128)) = 0.65234375 - .2byte 0x00A2 @ sin(100*(π/128)) = 0.6328125 - .2byte 0x009D @ sin(101*(π/128)) = 0.61328125 - .2byte 0x0098 @ sin(102*(π/128)) = 0.59375 - .2byte 0x0093 @ sin(103*(π/128)) = 0.57421875 - .2byte 0x008E @ sin(104*(π/128)) = 0.5546875 - .2byte 0x0088 @ sin(105*(π/128)) = 0.53125 - .2byte 0x0083 @ sin(106*(π/128)) = 0.51171875 - .2byte 0x007E @ sin(107*(π/128)) = 0.4921875 - .2byte 0x0078 @ sin(108*(π/128)) = 0.46875 - .2byte 0x0073 @ sin(109*(π/128)) = 0.44921875 - .2byte 0x006D @ sin(110*(π/128)) = 0.42578125 - .2byte 0x0067 @ sin(111*(π/128)) = 0.40234375 - .2byte 0x0061 @ sin(112*(π/128)) = 0.37890625 - .2byte 0x005C @ sin(113*(π/128)) = 0.359375 - .2byte 0x0056 @ sin(114*(π/128)) = 0.3359375 - .2byte 0x0050 @ sin(115*(π/128)) = 0.3125 - .2byte 0x004A @ sin(116*(π/128)) = 0.2890625 - .2byte 0x0044 @ sin(117*(π/128)) = 0.265625 - .2byte 0x003E @ sin(118*(π/128)) = 0.2421875 - .2byte 0x0038 @ sin(119*(π/128)) = 0.21875 - .2byte 0x0031 @ sin(120*(π/128)) = 0.19140625 - .2byte 0x002B @ sin(121*(π/128)) = 0.16796875 - .2byte 0x0025 @ sin(122*(π/128)) = 0.14453125 - .2byte 0x001F @ sin(123*(π/128)) = 0.12109375 - .2byte 0x0019 @ sin(124*(π/128)) = 0.09765625 - .2byte 0x0012 @ sin(125*(π/128)) = 0.0703125 - .2byte 0x000C @ sin(126*(π/128)) = 0.046875 - .2byte 0x0006 @ sin(127*(π/128)) = 0.0234375 - .2byte 0x0000 @ sin(128*(π/128)) = 0 - .2byte 0xFFFA @ sin(129*(π/128)) = -0.0234375 - .2byte 0xFFF4 @ sin(130*(π/128)) = -0.046875 - .2byte 0xFFEE @ sin(131*(π/128)) = -0.0703125 - .2byte 0xFFE7 @ sin(132*(π/128)) = -0.09765625 - .2byte 0xFFE1 @ sin(133*(π/128)) = -0.12109375 - .2byte 0xFFDB @ sin(134*(π/128)) = -0.14453125 - .2byte 0xFFD5 @ sin(135*(π/128)) = -0.16796875 - .2byte 0xFFCF @ sin(136*(π/128)) = -0.19140625 - .2byte 0xFFC8 @ sin(137*(π/128)) = -0.21875 - .2byte 0xFFC2 @ sin(138*(π/128)) = -0.2421875 - .2byte 0xFFBC @ sin(139*(π/128)) = -0.265625 - .2byte 0xFFB6 @ sin(140*(π/128)) = -0.2890625 - .2byte 0xFFB0 @ sin(141*(π/128)) = -0.3125 - .2byte 0xFFAA @ sin(142*(π/128)) = -0.3359375 - .2byte 0xFFA4 @ sin(143*(π/128)) = -0.359375 - .2byte 0xFF9F @ sin(144*(π/128)) = -0.37890625 - .2byte 0xFF99 @ sin(145*(π/128)) = -0.40234375 - .2byte 0xFF93 @ sin(146*(π/128)) = -0.42578125 - .2byte 0xFF8D @ sin(147*(π/128)) = -0.44921875 - .2byte 0xFF88 @ sin(148*(π/128)) = -0.46875 - .2byte 0xFF82 @ sin(149*(π/128)) = -0.4921875 - .2byte 0xFF7D @ sin(150*(π/128)) = -0.51171875 - .2byte 0xFF78 @ sin(151*(π/128)) = -0.53125 - .2byte 0xFF72 @ sin(152*(π/128)) = -0.5546875 - .2byte 0xFF6D @ sin(153*(π/128)) = -0.57421875 - .2byte 0xFF68 @ sin(154*(π/128)) = -0.59375 - .2byte 0xFF63 @ sin(155*(π/128)) = -0.61328125 - .2byte 0xFF5E @ sin(156*(π/128)) = -0.6328125 - .2byte 0xFF59 @ sin(157*(π/128)) = -0.65234375 - .2byte 0xFF55 @ sin(158*(π/128)) = -0.66796875 - .2byte 0xFF50 @ sin(159*(π/128)) = -0.6875 - .2byte 0xFF4B @ sin(160*(π/128)) = -0.70703125 - .2byte 0xFF47 @ sin(161*(π/128)) = -0.72265625 - .2byte 0xFF43 @ sin(162*(π/128)) = -0.73828125 - .2byte 0xFF3F @ sin(163*(π/128)) = -0.75390625 - .2byte 0xFF3B @ sin(164*(π/128)) = -0.76953125 - .2byte 0xFF37 @ sin(165*(π/128)) = -0.78515625 - .2byte 0xFF33 @ sin(166*(π/128)) = -0.80078125 - .2byte 0xFF2F @ sin(167*(π/128)) = -0.81640625 - .2byte 0xFF2C @ sin(168*(π/128)) = -0.828125 - .2byte 0xFF28 @ sin(169*(π/128)) = -0.84375 - .2byte 0xFF25 @ sin(170*(π/128)) = -0.85546875 - .2byte 0xFF22 @ sin(171*(π/128)) = -0.8671875 - .2byte 0xFF1F @ sin(172*(π/128)) = -0.87890625 - .2byte 0xFF1C @ sin(173*(π/128)) = -0.890625 - .2byte 0xFF19 @ sin(174*(π/128)) = -0.90234375 - .2byte 0xFF16 @ sin(175*(π/128)) = -0.9140625 - .2byte 0xFF14 @ sin(176*(π/128)) = -0.921875 - .2byte 0xFF12 @ sin(177*(π/128)) = -0.9296875 - .2byte 0xFF0F @ sin(178*(π/128)) = -0.94140625 - .2byte 0xFF0D @ sin(179*(π/128)) = -0.94921875 - .2byte 0xFF0C @ sin(180*(π/128)) = -0.953125 - .2byte 0xFF0A @ sin(181*(π/128)) = -0.9609375 - .2byte 0xFF08 @ sin(182*(π/128)) = -0.96875 - .2byte 0xFF07 @ sin(183*(π/128)) = -0.97265625 - .2byte 0xFF05 @ sin(184*(π/128)) = -0.98046875 - .2byte 0xFF04 @ sin(185*(π/128)) = -0.984375 - .2byte 0xFF03 @ sin(186*(π/128)) = -0.98828125 - .2byte 0xFF02 @ sin(187*(π/128)) = -0.9921875 - .2byte 0xFF02 @ sin(188*(π/128)) = -0.9921875 - .2byte 0xFF01 @ sin(189*(π/128)) = -0.99609375 - .2byte 0xFF01 @ sin(190*(π/128)) = -0.99609375 - .2byte 0xFF01 @ sin(191*(π/128)) = -0.99609375 - .2byte 0xFF00 @ sin(192*(π/128)) = -1 - .2byte 0xFF01 @ sin(193*(π/128)) = -0.99609375 - .2byte 0xFF01 @ sin(194*(π/128)) = -0.99609375 - .2byte 0xFF01 @ sin(195*(π/128)) = -0.99609375 - .2byte 0xFF02 @ sin(196*(π/128)) = -0.9921875 - .2byte 0xFF02 @ sin(197*(π/128)) = -0.9921875 - .2byte 0xFF03 @ sin(198*(π/128)) = -0.98828125 - .2byte 0xFF04 @ sin(199*(π/128)) = -0.984375 - .2byte 0xFF05 @ sin(200*(π/128)) = -0.98046875 - .2byte 0xFF07 @ sin(201*(π/128)) = -0.97265625 - .2byte 0xFF08 @ sin(202*(π/128)) = -0.96875 - .2byte 0xFF0A @ sin(203*(π/128)) = -0.9609375 - .2byte 0xFF0C @ sin(204*(π/128)) = -0.953125 - .2byte 0xFF0D @ sin(205*(π/128)) = -0.94921875 - .2byte 0xFF0F @ sin(206*(π/128)) = -0.94140625 - .2byte 0xFF12 @ sin(207*(π/128)) = -0.9296875 - .2byte 0xFF14 @ sin(208*(π/128)) = -0.921875 - .2byte 0xFF16 @ sin(209*(π/128)) = -0.9140625 - .2byte 0xFF19 @ sin(210*(π/128)) = -0.90234375 - .2byte 0xFF1C @ sin(211*(π/128)) = -0.890625 - .2byte 0xFF1F @ sin(212*(π/128)) = -0.87890625 - .2byte 0xFF22 @ sin(213*(π/128)) = -0.8671875 - .2byte 0xFF25 @ sin(214*(π/128)) = -0.85546875 - .2byte 0xFF28 @ sin(215*(π/128)) = -0.84375 - .2byte 0xFF2C @ sin(216*(π/128)) = -0.828125 - .2byte 0xFF2F @ sin(217*(π/128)) = -0.81640625 - .2byte 0xFF33 @ sin(218*(π/128)) = -0.80078125 - .2byte 0xFF37 @ sin(219*(π/128)) = -0.78515625 - .2byte 0xFF3B @ sin(220*(π/128)) = -0.76953125 - .2byte 0xFF3F @ sin(221*(π/128)) = -0.75390625 - .2byte 0xFF43 @ sin(222*(π/128)) = -0.73828125 - .2byte 0xFF47 @ sin(223*(π/128)) = -0.72265625 - .2byte 0xFF4B @ sin(224*(π/128)) = -0.70703125 - .2byte 0xFF50 @ sin(225*(π/128)) = -0.6875 - .2byte 0xFF55 @ sin(226*(π/128)) = -0.66796875 - .2byte 0xFF59 @ sin(227*(π/128)) = -0.65234375 - .2byte 0xFF5E @ sin(228*(π/128)) = -0.6328125 - .2byte 0xFF63 @ sin(229*(π/128)) = -0.61328125 - .2byte 0xFF68 @ sin(230*(π/128)) = -0.59375 - .2byte 0xFF6D @ sin(231*(π/128)) = -0.57421875 - .2byte 0xFF72 @ sin(232*(π/128)) = -0.5546875 - .2byte 0xFF78 @ sin(233*(π/128)) = -0.53125 - .2byte 0xFF7D @ sin(234*(π/128)) = -0.51171875 - .2byte 0xFF82 @ sin(235*(π/128)) = -0.4921875 - .2byte 0xFF88 @ sin(236*(π/128)) = -0.46875 - .2byte 0xFF8D @ sin(237*(π/128)) = -0.44921875 - .2byte 0xFF93 @ sin(238*(π/128)) = -0.42578125 - .2byte 0xFF99 @ sin(239*(π/128)) = -0.40234375 - .2byte 0xFF9F @ sin(240*(π/128)) = -0.37890625 - .2byte 0xFFA4 @ sin(241*(π/128)) = -0.359375 - .2byte 0xFFAA @ sin(242*(π/128)) = -0.3359375 - .2byte 0xFFB0 @ sin(243*(π/128)) = -0.3125 - .2byte 0xFFB6 @ sin(244*(π/128)) = -0.2890625 - .2byte 0xFFBC @ sin(245*(π/128)) = -0.265625 - .2byte 0xFFC2 @ sin(246*(π/128)) = -0.2421875 - .2byte 0xFFC8 @ sin(247*(π/128)) = -0.21875 - .2byte 0xFFCF @ sin(248*(π/128)) = -0.19140625 - .2byte 0xFFD5 @ sin(249*(π/128)) = -0.16796875 - .2byte 0xFFDB @ sin(250*(π/128)) = -0.14453125 - .2byte 0xFFE1 @ sin(251*(π/128)) = -0.12109375 - .2byte 0xFFE7 @ sin(252*(π/128)) = -0.09765625 - .2byte 0xFFEE @ sin(253*(π/128)) = -0.0703125 - .2byte 0xFFF4 @ sin(254*(π/128)) = -0.046875 - .2byte 0xFFFA @ sin(255*(π/128)) = -0.0234375 - .2byte 0x0000 @ sin(256*(π/128)) = 0 - .2byte 0x0006 @ sin(257*(π/128)) = 0.0234375 - .2byte 0x000C @ sin(258*(π/128)) = 0.046875 - .2byte 0x0012 @ sin(259*(π/128)) = 0.0703125 - .2byte 0x0019 @ sin(260*(π/128)) = 0.09765625 - .2byte 0x001F @ sin(261*(π/128)) = 0.12109375 - .2byte 0x0025 @ sin(262*(π/128)) = 0.14453125 - .2byte 0x002B @ sin(263*(π/128)) = 0.16796875 - .2byte 0x0031 @ sin(264*(π/128)) = 0.19140625 - .2byte 0x0038 @ sin(265*(π/128)) = 0.21875 - .2byte 0x003E @ sin(266*(π/128)) = 0.2421875 - .2byte 0x0044 @ sin(267*(π/128)) = 0.265625 - .2byte 0x004A @ sin(268*(π/128)) = 0.2890625 - .2byte 0x0050 @ sin(269*(π/128)) = 0.3125 - .2byte 0x0056 @ sin(270*(π/128)) = 0.3359375 - .2byte 0x005C @ sin(271*(π/128)) = 0.359375 - .2byte 0x0061 @ sin(272*(π/128)) = 0.37890625 - .2byte 0x0067 @ sin(273*(π/128)) = 0.40234375 - .2byte 0x006D @ sin(274*(π/128)) = 0.42578125 - .2byte 0x0073 @ sin(275*(π/128)) = 0.44921875 - .2byte 0x0078 @ sin(276*(π/128)) = 0.46875 - .2byte 0x007E @ sin(277*(π/128)) = 0.4921875 - .2byte 0x0083 @ sin(278*(π/128)) = 0.51171875 - .2byte 0x0088 @ sin(279*(π/128)) = 0.53125 - .2byte 0x008E @ sin(280*(π/128)) = 0.5546875 - .2byte 0x0093 @ sin(281*(π/128)) = 0.57421875 - .2byte 0x0098 @ sin(282*(π/128)) = 0.59375 - .2byte 0x009D @ sin(283*(π/128)) = 0.61328125 - .2byte 0x00A2 @ sin(284*(π/128)) = 0.6328125 - .2byte 0x00A7 @ sin(285*(π/128)) = 0.65234375 - .2byte 0x00AB @ sin(286*(π/128)) = 0.66796875 - .2byte 0x00B0 @ sin(287*(π/128)) = 0.6875 - .2byte 0x00B5 @ sin(288*(π/128)) = 0.70703125 - .2byte 0x00B9 @ sin(289*(π/128)) = 0.72265625 - .2byte 0x00BD @ sin(290*(π/128)) = 0.73828125 - .2byte 0x00C1 @ sin(291*(π/128)) = 0.75390625 - .2byte 0x00C5 @ sin(292*(π/128)) = 0.76953125 - .2byte 0x00C9 @ sin(293*(π/128)) = 0.78515625 - .2byte 0x00CD @ sin(294*(π/128)) = 0.80078125 - .2byte 0x00D1 @ sin(295*(π/128)) = 0.81640625 - .2byte 0x00D4 @ sin(296*(π/128)) = 0.828125 - .2byte 0x00D8 @ sin(297*(π/128)) = 0.84375 - .2byte 0x00DB @ sin(298*(π/128)) = 0.85546875 - .2byte 0x00DE @ sin(299*(π/128)) = 0.8671875 - .2byte 0x00E1 @ sin(300*(π/128)) = 0.87890625 - .2byte 0x00E4 @ sin(301*(π/128)) = 0.890625 - .2byte 0x00E7 @ sin(302*(π/128)) = 0.90234375 - .2byte 0x00EA @ sin(303*(π/128)) = 0.9140625 - .2byte 0x00EC @ sin(304*(π/128)) = 0.921875 - .2byte 0x00EE @ sin(305*(π/128)) = 0.9296875 - .2byte 0x00F1 @ sin(306*(π/128)) = 0.94140625 - .2byte 0x00F3 @ sin(307*(π/128)) = 0.94921875 - .2byte 0x00F4 @ sin(308*(π/128)) = 0.953125 - .2byte 0x00F6 @ sin(309*(π/128)) = 0.9609375 - .2byte 0x00F8 @ sin(310*(π/128)) = 0.96875 - .2byte 0x00F9 @ sin(311*(π/128)) = 0.97265625 - .2byte 0x00FB @ sin(312*(π/128)) = 0.98046875 - .2byte 0x00FC @ sin(313*(π/128)) = 0.984375 - .2byte 0x00FD @ sin(314*(π/128)) = 0.98828125 - .2byte 0x00FE @ sin(315*(π/128)) = 0.9921875 - .2byte 0x00FE @ sin(316*(π/128)) = 0.9921875 - .2byte 0x00FF @ sin(317*(π/128)) = 0.99609375 - .2byte 0x00FF @ sin(318*(π/128)) = 0.99609375 - .2byte 0x00FF @ sin(319*(π/128)) = 0.99609375 diff --git a/data/text/battle_strings.inc b/data/text/battle_strings.inc index d0c8f74d5..7a47caa0e 100644 --- a/data/text/battle_strings.inc +++ b/data/text/battle_strings.inc @@ -1177,7 +1177,7 @@ gUnknown_08400F78:: @ 8400F78 .4byte ContestStatText_TooSour .align 2 -gUnknown_08400F8C:: @ 8400F8C +gBattleStringsTable:: @ 8400F8C .4byte BattleText_UnknownString .4byte BattleText_GainExpPoints .4byte BattleText_GrewLevel @@ -1531,8 +1531,8 @@ gUnknown_08400F8C:: @ 8400F8C .4byte BattleText_NoEffectOn .align 1 -gUnknown_08401508:: @ 8401508 -@ Each entry refers to a text pointer in gUnknown_08400F8C, but the values are offset +gMissStrings:: @ 8401508 +@ Each entry refers to a text pointer in gBattleStringsTable, but the values are offset @ by 0xc. For example, 0x0017 refers to BattleText_AttackMissed because it is the @ 11th entry in the pointer table. .2byte BATTLE_TEXT_AttackMissed @@ -1790,13 +1790,13 @@ BattleTextList_401648:: @ 8401648 .2byte BATTLE_TEXT_RaisedFirePower .2byte BATTLE_TEXT_MadeIneffective -gUnknown_0840164C:: @ 840164C - .2byte BATTLE_TEXT_StopLearning - .2byte BATTLE_TEXT_FellAsleep - .2byte BATTLE_TEXT_SpeltHealthy - .2byte BATTLE_TEXT_SubTookDamage - .2byte BATTLE_TEXT_CoinScatter - .2byte BATTLE_TEXT_SandTombTrapped +gTrappingMoves:: @ 840164C + .2byte MOVE_BIND + .2byte MOVE_WRAP + .2byte MOVE_FIRE_SPIN + .2byte MOVE_CLAMP + .2byte MOVE_WHIRLPOOL + .2byte MOVE_SAND_TOMB .2byte 0xFFFF .align 2 diff --git a/data/text/pokedex_rating.inc b/data/text/pokedex_rating.inc index d816799b6..bcf57eb5b 100644 --- a/data/text/pokedex_rating.inc +++ b/data/text/pokedex_rating.inc @@ -12,111 +12,90 @@ Route101_Text_1C44DC:: @ 81C44DC .string "So, you’ve seen {STR_VAR_1} POKéMON,\n" .string "and you’ve caught {STR_VAR_2} POKéMON...$" -gUnknown_081C4520:: @ 81C4520 -UnknownString_81C4520: @ 81C4520 +gBirchDexRatingText_LessThan10:: @ 81C4520 .string "You should go into grassy areas more\n" .string "and look for POKéMON more carefully.$" -gUnknown_081C456A:: @ 81C456A -UnknownString_81C456A: @ 81C456A +gBirchDexRatingText_LessThan20:: @ 81C456A .string "I guess you’re getting the hang of it.\n" .string "But, it gets harder from here.$" -gUnknown_081C45B0:: @ 81C45B0 -UnknownString_81C45B0: @ 81C45B0 +gBirchDexRatingText_LessThan30:: @ 81C45B0 .string "Some POKéMON only appear in certain\n" .string "areas. You’ll need to be persistent.$" -gUnknown_081C45F9:: @ 81C45F9 -UnknownString_81C45F9: @ 81C45F9 +gBirchDexRatingText_LessThan40:: @ 81C45F9 .string "Well, it could use more quantity, but\n" .string "this is looking more like a POKéDEX now.$" -gUnknown_081C4648:: @ 81C4648 -UnknownString_81C4648: @ 81C4648 +gBirchDexRatingText_LessThan50:: @ 81C4648 .string "This is coming along pretty good.\n" .string "Keep up the effort.$" -gUnknown_081C467E:: @ 81C467E -UnknownString_81C467E: @ 81C467E +gBirchDexRatingText_LessThan60:: @ 81C467E .string "Are you using any RODS?\n" .string "There are many POKéMON in the sea.$" -gUnknown_081C46B9:: @ 81C46B9 -UnknownString_81C46B9: @ 81C46B9 +gBirchDexRatingText_LessThan70:: @ 81C46B9 .string "Instead of just catching POKéMON,\n" .string "how about making them evolve, too?$" -gUnknown_081C46FE:: @ 81C46FE -UnknownString_81C46FE: @ 81C46FE +gBirchDexRatingText_LessThan80:: @ 81C46FE .string "This is going to be a fantastic POKéDEX.\n" .string "That’s the feeling I’m getting.$" -gUnknown_081C4747:: @ 81C4747 -UnknownString_81C4747: @ 81C4747 +gBirchDexRatingText_LessThan90:: @ 81C4747 .string "You’ve collected this many...\n" .string "Your talent is remarkable!$" -gUnknown_081C4780:: @ 81C4780 -UnknownString_81C4780: @ 81C4780 +gBirchDexRatingText_LessThan100:: @ 81C4780 .string "Have you visited the SAFARI ZONE?\p" .string "I hear there are some POKéMON that\n" .string "can only be caught there.$" -gUnknown_081C47DF:: @ 81C47DF -UnknownString_81C47DF: @ 81C47DF +gBirchDexRatingText_LessThan110:: @ 81C47DF .string "You’ve finally reached the 100-kind\n" .string "mark. This is an impressive POKéDEX!$" -gUnknown_081C4828:: @ 81C4828 -UnknownString_81C4828: @ 81C4828 +gBirchDexRatingText_LessThan120:: @ 81C4828 .string "There might be POKéMON that can be\n" .string "found using ROCK SMASH.$" -gUnknown_081C4863:: @ 81C4863 -UnknownString_81C4863: @ 81C4863 +gBirchDexRatingText_LessThan130:: @ 81C4863 .string "You should get some more POKéMON by\n" .string "trading with others.$" -gUnknown_081C489C:: @ 81C489C -UnknownString_81C489C: @ 81C489C +gBirchDexRatingText_LessThan140:: @ 81C489C .string "I’ve heard of POKéMON that evolve when\n" .string "they come to fully love their TRAINERS.$" -gUnknown_081C48EB:: @ 81C48EB -UnknownString_81C48EB: @ 81C48EB +gBirchDexRatingText_LessThan150:: @ 81C48EB .string "I had no idea that there were so many\n" .string "POKéMON species in the HOENN region.$" -gUnknown_081C4936:: @ 81C4936 -UnknownString_81C4936: @ 81C4936 +gBirchDexRatingText_LessThan160:: @ 81C4936 .string "On occasion, some POKéMON appear in\n" .string "large numbers like wild outbreaks.\l" .string "Don’t miss opportunities like those.$" -gUnknown_081C49A2:: @ 81C49A2 -UnknownString_81C49A2: @ 81C49A2 +gBirchDexRatingText_LessThan170:: @ 81C49A2 .string "One can get a very good idea about the\n" .string "POKéMON of the HOENN region by looking\l" .string "through your POKéDEX.$" -gUnknown_081C4A06:: @ 81C4A06 -UnknownString_81C4A06: @ 81C4A06 +gBirchDexRatingText_LessThan180:: @ 81C4A06 .string "I’d say you already qualify as a POKéMON\n" .string "PROFESSOR, and a good one, too!$" -gUnknown_081C4A4F:: @ 81C4A4F -UnknownString_81C4A4F: @ 81C4A4F +gBirchDexRatingText_LessThan190:: @ 81C4A4F .string "With a POKéDEX this complete, you’re\n" .string "a real professional at this!$" -gUnknown_081C4A91:: @ 81C4A91 -UnknownString_81C4A91: @ 81C4A91 +gBirchDexRatingText_LessThan200:: @ 81C4A91 .string "You’re very close to completing this\n" .string "POKéDEX. I can feel it in my bones!$" -gUnknown_081C4ADA:: @ 81C4ADA -UnknownString_81C4ADA: @ 81C4ADA +gBirchDexRatingText_DexCompleted:: @ 81C4ADA .string "Congratulations!\n" .string "Your POKéDEX is complete!$" diff --git a/data/trig.s b/data/trig.s deleted file mode 100644 index 6f9c95971..000000000 --- a/data/trig.s +++ /dev/null @@ -1,10 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - -@ 8208344 - .include "data/sine_table.inc" - -@ 82085C4 - .include "data/sine_degree_table.inc" diff --git a/include/asm.h b/include/asm.h deleted file mode 100644 index e72683e45..000000000 --- a/include/asm.h +++ /dev/null @@ -1,59 +0,0 @@ -#ifndef PROJECT_ASM_H -#define PROJECT_ASM_H - -#include "asm_fieldmap.h" -#include "main.h" -#include "sprite.h" -#include "task.h" - -struct FieldInput -{ - u8 pressedAButton:1; - u8 input_field_0_1:1; - u8 pressedStartButton:1; - u8 pressedSelectButton:1; - u8 input_field_0_4:1; - u8 input_field_0_5:1; - u8 input_field_0_6:1; - u8 pressedBButton:1; - u8 input_field_1_0:1; - u8 input_field_1_1:1; - u8 input_field_1_2:1; - u8 input_field_1_3:1; - u8 input_field_1_4:1; - u8 input_field_1_5:1; - u8 input_field_1_6:1; - u8 input_field_1_7:1; - u8 dpadDirection; - u8 input_field_3; -}; - -struct UnknownStruct_FPA -{ - u8 unk0; - u8 unk1; - u8 unk2; - s16 unk4; - s16 unk6; - u8 unk8; - u8 unk9; - u8 unkA_0:4; - u8 unkA_4:4; - u16 unkC; - u16 unkE; - u32 unk10; - u16 unk14; -}; - -struct CryRelatedStruct -{ - u16 unk0; - u8 unk2; - u8 paletteNo; - u8 xPos; - u8 yPos; -}; - -#include "asm.inc.h" - -#endif //PROJECT_ASM_H diff --git a/include/asm.inc.h b/include/asm.inc.h deleted file mode 100644 index 9bd8324ad..000000000 --- a/include/asm.inc.h +++ /dev/null @@ -1,449 +0,0 @@ -// src/rom3.o -void sub_800C35C(void); - -struct UnkStruct8060024 { - u8 outsideMovementRect:1; - u8 tileIsImpassable:1; - u8 elevationMismatch:1; - u8 pathBlockedByObject:1; - u8 pad_04:4; -}; - -// asm/battle_2.o -void sub_800E7C4(void); -u8 b_first_side(u8, u8, u8); -void sub_80157C4(u8 index); - -// asm/battle_3.o -u8 sub_8015A98(u8, u8, u8); -u8 sub_8018324(u8, u8, u8, u8, u16); - -// asm/battle_5.o -void sub_802C098(); -void sub_802E3E4(u8, int); -void nullsub_8(u8); - -// asm/battle_7.o -void sub_8032AA8(u8 index, int i); - -// src/pokemon_3.o -u16 SpeciesToNationalPokedexNum(u16); -void DrawSpindaSpots(u16, u32, u8 *, u8); -u8 sub_803FC58(u16); -void AdjustFriendship(struct Pokemon *, u8); -void sub_80408BC(); -void current_map_music_set__default_for_battle(u16); - -// src/util.o -void StoreWordInTwoHalfwords(u16 *, u32); -void LoadWordFromTwoHalfwords(u16 *, u32 *); - -// src/daycare.o -u8 Daycare_CountPokemon(struct BoxPokemon *); - -// asm/daycare.o -void sub_8041324(struct BoxPokemon *, void *); -void sub_8041790(int i); -u16 sub_8041870(u16); -void sub_8041940(void); -void sub_8041950(void); -u8 daycare_relationship_score_from_savegame(void); - -// asm/pokeball.o -void CreatePokeballSprite(u8 r0, u8 r1, u8 r2, u8 r3, u8 s1, u8 s2, u8 s3, u16 s4); - -// asm/berry_blender.o -void sub_80516C4(u8, u16); - -// src/field_map_obj.o -void sub_805AA98(); -u8 sub_805AB54(void); -u8 GetFieldObjectIdByLocalIdAndMap(u8, u8, u8); -bool8 TryGetFieldObjectIdByLocalIdAndMap(u8, u8, u8, u8 *); -u8 GetFieldObjectIdByXY(s16, s16); -void RemoveFieldObjectByLocalIdAndMap(u8, u8, u8); -u8 SpawnSpecialFieldObject(struct MapObjectTemplate *); -u8 show_sprite(u8, u8, u8); -u8 AddPseudoFieldObject(u16 graphicsId, void (*callback)(struct Sprite *), s16 c, s16 d, u8 subpriority); -u8 sub_805B410(u8, u8, s16, s16, u8, u8); -void sub_805B55C(s16 a, s16 b); -void sub_805B710(u16 i, u16 i1); -void sub_805B980(struct MapObject *, u8); -void FieldObjectTurn(struct MapObject *, u8); -void FieldObjectTurnByLocalIdAndMap(u8, u8, u8, u8); -const struct MapObjectGraphicsInfo *GetFieldObjectGraphicsInfo(u8); -void npc_by_local_id_and_map_set_field_1_bit_x20(u8, u8, u8, u8); -void FieldObjectGetLocalIdAndMap(struct MapObject *, u8 *, u8 *, u8 *); -void sub_805BCF0(u8, u8, u8, u8); -void sub_805BD48(u8, u8, u8); -void sub_805BD90(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y); -void gpu_pal_allocator_reset__manage_upper_four(void); -void npc_coords_shift(struct MapObject *pObject, s16 x, s16 y); -void sub_805C0F8(u8, u8, u8, s16, s16); -void npc_coords_shift_still(struct MapObject *pObject); -u8 GetFieldObjectIdByXYZ(u16, u16, u8); -void UpdateFieldObjectsForCameraUpdate(s16, s16); -u8 AddCameraObject(u8); -u8 * GetFieldObjectScriptPointerByFieldObjectId(u8); -u8 FieldObjectGetBerryTreeId(u8); -void sub_805C754(struct MapObject *pObject); -void sub_805C774(struct MapObject *, u8); -void sub_805C78C(u8, u8, u8); -void sub_805C7C4(u8 i); - -// asm/field_map_obj.o -u8 FieldObjectDirectionToImageAnimId(u8); -u8 get_go_image_anim_num(u8 unk_19); -u8 sub_805FD98(u8); -u8 sub_805FDE8(u8); -u8 sub_805FDF8(u8); -u8 sub_805FE08(u8); -void npc_set_running_behaviour_etc(struct MapObject *, u8); -u8 npc_running_behaviour_by_direction(u8); -u8 npc_block_way(struct MapObject *, s16, s16, u8); -u8 sub_8060024(struct MapObject *, s16, s16, u8); -u8 sub_8060234(u8, u8, u8); -void sub_8060288(u8, u8, u8); -void sub_80603CC(s16 x, s16 y, s16 *pInt, s16 *pInt1); -void FieldObjectMoveDestCoords(struct MapObject *pObject, u8 unk_19, s16 *pInt, s16 *pInt1); -bool8 FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(struct MapObject *); -bool8 FieldObjectSetSpecialAnim(struct MapObject *, u8); -void FieldObjectForceSetSpecialAnim(struct MapObject *pObject, u8 a); -void FieldObjectClearAnimIfSpecialAnimActive(struct MapObject *); -void FieldObjectClearAnim(struct MapObject *); -bool8 FieldObjectCheckIfSpecialAnimFinishedOrInactive(struct MapObject *); -u8 FieldObjectClearAnimIfSpecialAnimFinished(struct MapObject *); -u8 FieldObjectGetSpecialAnim(struct MapObject *); -u8 GetFaceDirectionAnimId(u8); -u8 GetSimpleGoAnimId(u8); -u8 GetGoSpeed0AnimId(u8 a); -u8 sub_8060744(u8 a); -u8 d2s_08064034(u8 a); -u8 sub_806079C(u8 a); -u8 sub_80607F4(u8 a); -u8 GetJumpLedgeAnimId(u8 a); -u8 sub_806084C(u8); -u8 sub_8060878(u8); -u8 sub_80608D0(u8); -u8 GetStepInPlaceDelay32AnimId(u8 a); -u8 GetStepInPlaceDelay16AnimId(u8); -u8 GetStepInPlaceDelay8AnimId(u8 a); -u8 FieldObjectFaceOppositeDirection(struct MapObject *, u8); -u8 sub_80609D8(u8); -u8 sub_8060A04(u8); -u8 sub_8060A30(u8); -u8 sub_8060A5C(u8); -u8 sub_8060A88(u8); -u8 sub_8060AB4(u8); -u8 sub_8060AE0(u8); -u8 sub_8060B0C(u8); -u8 sub_8060B38(u8); -u8 sub_8060B64(u8); -u8 GetOppositeDirection(u8); - -// asm/field_ground_effect.o -u8 GetLedgeJumpDirection(s16, s16, u8); -u8 ZCoordToPriority(u8); -void FieldObjectUpdateZCoord(struct MapObject *pObject); -void SetObjectSubpriorityByZCoord(u8, struct Sprite *, u8); - -// asm/field_tasks.o -void SetUpFieldTasks(); -void ActivatePerStepCallback(u8); -void ResetFieldTasksArgs(void); - -// asm/reset_rtc_screen.o -void CB2_InitResetRtcScreen(void); - -// asm/party_menu.o -void sub_806CB74(u8 taskId); -void sub_806CCE4(void); -void sub_806CD44(u8 taskId); -void sub_806D538(); -void sub_806D5A4(void); -void GetMonNickname(struct Pokemon *mon, u8 *nickname); -bool8 pokemon_has_move(struct Pokemon *, u16); -void sub_806FA18(u8 taskId); - -// src/party_menu.o -u8 sub_806E834(const u8 *message, u8 arg1); - -// src/rom_8077ABC.o -u8 battle_side_get_owner(u8); -u8 battle_get_per_side_status(u8); -u8 battle_get_side_with_given_state(u8); -bool8 IsDoubleBattle(); - -// asm/field_weather.o -void SetWeather(u32); - -// src/field_fadetransition.o -void pal_fill_black(); -void sub_8080990(void); -void sub_80809B0(void); - -// asm/field_fadetransition.o -void sub_8080A3C(void); -void sub_8080AC4(void); -void mapldr_default(); -void sub_8080B60(void); -void atk17_seteffectuser(void); -void sub_8080E44(void); -void sub_8080E88(void); -void sp13E_warp_to_last_warp(void); -void sub_8080EF0(void); -void sp13F_fall_to_last_warp(void); -void sub_8080F68(void); -void sub_8080F9C(void); - -// asm/rom_8080874.o -void sub_8081594(u8); -void sub_80815E0(u8 val); - -// asm/cable_club.o -u8 sub_8083664(void); -void sub_8083A84(TaskFunc); -s32 sub_8083BF4(u8 id); - -// asm/field_effect.o -u8 CreateTrainerSprite_BirchSpeech(u8, u16, u16, u8, void *); -void LoadTrainerGfx_TrainerCard(u8 gender, int, void *); -u8 CreateBirchSprite(u8, u8, u8); - -// asm/unknown_task.o -void remove_some_task(void); -void dp12_8087EA4(void); -void sub_80895F8(u32 i, u32 i1, u32 i2); -void sub_8089668(void); -void sub_8089944(int i, int i1, int i2, int i3, int i4, int i5, int i6); - -// asm/pokemon_menu.o -void sub_8089A70(void); -void sub_808A004(); -void sub_808AB90(void); - -// asm/rom_8094928.o -u8 pokemon_order_func(u8); - -// asm/pokemon_storage_system.o -void ResetPokemonStorageSystem(void); - -// asm/pokemon_icon.o -u8 sub_809D3A4(u16 arg0, void (*)(struct Sprite *), int, u8 arg3, u32 arg4); -u16 sub_809D4A8(u16); -void sub_809D510(struct Sprite *); -void sub_809D580(u16); -void sub_809D608(u16); - -// asm/pokemon_summary_screen.o -u8 pokemon_ailments_get_primary(u32); - -// src/script_movement.o -bool8 exec_movement(u8, u8, u8, u8 *); -bool8 sub_80A212C(u8, u8, u8); -void sub_80A2178(void); - -// asm/mail_data.o -void ClearMailData(void); -u16 MailSpeciesToSpecies(u16, u8 *); - -// src/map_name_popup.o -void ShowMapNamePopup(void); -void HideMapNamePopup(); - -// asm/item_menu.o -void sub_80A3684(void); -void ClearBag(void); -void sub_80A53F8(void); -void sub_80A5B40(void); -void sub_80A68CC(); -u8 sub_80A7D8C(u8 berry, int i, int i1); -void sub_80A7DD4(void); -u8 sub_80A7E5C(u8); - -// asm/contest.o -void ResetLinkContestBoolean(void); -void sub_80AE098(u8); -void sub_80AE398(u8, u8); -u32 sub_80AE770(u8, u8); -void sub_80AE82C(u8); -void sub_80AF668(void); -void sub_80B0F28(u8); -void sub_80B2D1C(void); - -// asm/shop.o -void CreatePokemartMenu(void *); -void CreateDecorationShop1Menu(void *); -void CreateDecorationShop2Menu(void *); - -// asm/secret_base.o -void ResetSecretBases(void); -u8 sub_80BBB24(void); -void sub_80BBCCC(u8); -u8 *sub_80BCCE8(void); -void sub_80BD674(void *, u32, u8); - -// asm/tv.o -void ClearTVShowData(void); -void UpdateTVScreensOnMap(u32, u32); -void ResetGabbyAndTy(void); -u8 sub_80BDEAC(u8 *); -void sub_80BE160(TVShow *); -void sub_80BE8EC(u16); -void UpdateMassOutbreakTimeLeft(u16); -void sub_80BE97C(u8); -void sub_80BEA50(u16); -void sub_80BEA5C(u16); -bool8 GetPriceReduction(u8); -void sub_80BEE84(u16); -size_t sub_80BF0B8(int); -void sub_80BF478(void); -u16 sub_80BF674(u16 species); -s8 sub_80BF720(TVShow *); -bool8 sub_80BF77C(u16); -void sub_80BFD44(u8 *, u32, u8); -void sub_80C0514(void *, u32, u8); - -// src/tv.o -void StartMassOutbreak(void); -void TVShowDone(void); - -// asm/contest_link_80C2020.o -void sub_80C2358(void); -void sub_80C48C8(void); -void sub_80C4940(void); -void sub_80C4980(u8); -u8 sub_80C4B34(u8 *); - -// asm/fldeff_80C5CD4.o -void DoFieldPoisonEffect(void); -bool32 FieldPoisonEffectIsRunning(void); -void CreateRecordMixingSprite(void); -void DestroyRecordMixingSprite(void); - -// asm/rotating_gate.o -void RotatingGatePuzzleCameraUpdate(s16, s16); -void sub_80C8080(); -u32 CheckForRotatingGatePuzzleCollision(u8, s16, s16); - -// asm/contest_link_80C857C.o -void sub_80C8734(u8); -void sub_80C88AC(u8); -void sub_80C8E1C(u8); -void sub_80C8EBC(u8); -void sub_80C8F34(u8); - -// asm/easy_chat.o -void InitEasyChatPhrases(void); -u8* sub_80EB3FC(u8 *, u16); -u8 *ConvertEasyChatWordsToString(u8 *dst, u16 *words, u16, u16); - -// asm/pokenav.o -void sub_80EBA5C(void); - -// src/mauville_old_man.o -void SetMauvilleOldMan(void); - -// asm/mauville_old_man.o -void sub_80F7F30(void); - -// asm/menu_helpers.o -bool8 sub_80F9344(void); -void sub_80F9368(void); -void sub_80F9438(void); - -// asm/region_map.o -void sub_80FBFB4(u8 *str, u8 region, u8); -void CopyMapName(); -u8 *CopyLocationName(u8 *dest, u8 location); - -// asm/slot_machine.o -void PlaySlotMachine(u8, void *); - -// asm/pokeblock.o -void ClearPokeblocks(void); -void sub_810CA6C(s32); -s16 sub_810CAE4(u8, struct Pokeblock *); - -// asm/fldeff_flash.o -void sub_810CC80(void); - -// src/time_events.o -u8 IsMirageIslandPresent(void); - -// asm/field_specials.o -void ResetCyclingRoadChallengeData(void); -bool32 CountSSTidalStep(u16); -u8 GetSSTidalLocation(s8 *, s8 *, s16 *, s16 *); -void ScriptAddElevatorMenuItem(u8, u8, u8, u8); -void ScriptShowElevatorMenu(void); -u8 GetLeadMonIndex(void); -void ResetFanClub(void); - -// asm/battle_records.o -void InitLinkBattleRecords(void); - -// asm/pokedex_cry_screen.o -u8 sub_8119E3C(struct CryRelatedStruct *, u8); -void sub_8119F88(u8 a); -void sub_811A050(u16 species); -u8 ShowPokedexCryScreen(struct CryRelatedStruct *, u8); -void DestroyCryMeterNeedleSprite(); - -// asm/battle_transition.o -void sub_811AABC(u8); -void sub_811AAD8(u8); -u8 sub_811AAE8(void); - -// asm/battle_message.o -void get_battle_strings_(u8 *); -void sub_8120FFC(const u8 *, u8 *); - -// src/mystery_event_script.o -u32 sub_812613C(u8 *); -void sub_8126160(u8); - -// asm/mystery_event_script.o -u16 sub_8126338(void); - -// asm/field_effect_helpers.o -u8 sub_8126B54(void); -void objid_set_invisible(u8); -void sub_8126BC4(u8 unk_1B, u8 r6, s16 x, s16 y); -void sub_8127ED0(u8, u8); -void sub_8127F28(u8, u8, s16); -u8 sub_8128124(u8 id); - -// asm/learn_move.o -void sub_8132670(void); - -// asm/decoration_inventory.o -void ClearDecorationInventories(void); -u8 sub_8133FE4(u8); -u8 IsThereStorageSpaceForDecoration(u8); -u8 sub_8134074(u8); -s8 sub_81340A8(u8); - -// asm/battle_tower.o -void sub_8134AC0(void *); - -// src/player_pc.o -void NewGameInitPCItems(void); - -// asm/hall_of_fame.o -void sub_8143648(u16 paletteTag, u8 arg1); - -// src/diploma.o -void sub_8145D88(void); - -// asm/intro_credits_graphics.o -void load_intro_part2_graphics(/*TODO: arg types*/); -void sub_8148C78(/*TODO: arg types*/); -void sub_8148CB0(u8); -void sub_8148E90(u8); -u8 sub_8148EC0(/*TODO: arg types*/); -void sub_8149020(/*TODO: arg types*/); -u8 intro_create_brendan_sprite(/*TODO: arg types*/); -u8 intro_create_may_sprite(/*TODO: arg types*/); -u8 intro_create_latios_sprite(/*TODO: arg types*/); -u8 intro_create_latias_sprite(/*TODO: arg types*/); diff --git a/include/asm_fieldmap.h b/include/asm_fieldmap.h deleted file mode 100644 index 10d8c8f6d..000000000 --- a/include/asm_fieldmap.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef GUARD_FIELDMAP_H -#define GUARD_FIELDMAP_H - -void not_trainer_hill_battle_pyramid(void); -void sub_8055FC0(void); -u8 MapGridGetZCoordAt(); -bool8 MapGridIsImpassableAt(s16, s16); -int MapGridGetMetatileIdAt(int, int); -u32 MapGridGetMetatileBehaviorAt(int x, int y); // return: (u8|u16|int) args: (int|s16|s32) -u8 MapGridGetMetatileLayerTypeAt(/*TODO: arg types*/); -void MapGridSetMetatileIdAt(u32, u32, u16); -void save_serialize_map(void); -int CameraMove(int, int); -void sub_8056C50(u16, u16); -void sav1_camera_get_focus_coords(s16 *x, s16 *y); -void GetCameraCoords(s16*, s16*); -void sub_8056D28(struct MapData *pData); -void sub_8056D38(struct MapData *pData); -void apply_map_tileset2_palette(struct MapData *pData); -void copy_map_tileset1_tileset2_to_vram(/*TODO: arg types*/); -void apply_map_tileset1_tileset2_palette(/*TODO: arg types*/); - -#endif // GUARD_FIELDMAP_H diff --git a/include/battle.h b/include/battle.h index be474b59f..395cf042a 100644 --- a/include/battle.h +++ b/include/battle.h @@ -1,6 +1,8 @@ #ifndef GUARD_BATTLE_H #define GUARD_BATTLE_H +#include "sprite.h" + #define BATTLE_TYPE_DOUBLE 0x0001 #define BATTLE_TYPE_LINK 0x0002 #define BATTLE_TYPE_WILD 0x0004 @@ -32,13 +34,6 @@ // needed to match the hack that is get_item, thanks cam, someone else clean this up later. extern u8 unk_2000000[]; -// to do: maybe try to reduce the defines needed to match? -#define BATTLE_STRUCT ((struct BattleStruct *)(unk_2000000)) -#define AI_THINKING_STRUCT ((struct AI_ThinkingStruct *)(unk_2000000 + 0x16800)) -#define UNK_2016A00_STRUCT ((struct UnknownStruct1 *)(unk_2000000 + 0x16A00)) -#define AI_STACK ((struct AI_Stack *)(unk_2000000 + 0x16C00)) -#define AI_ARRAY_160CC ((struct SmallItemStruct *)(unk_2000000 + 0x160CC)) - enum { WEATHER_SUN, @@ -61,7 +56,7 @@ struct Trainer /*0x24*/ void *party; }; -struct UnknownStruct1 // AI_Opponent_Info? +struct UnkBattleStruct1 // AI_Opponent_Info? { /*0x00*/ u16 movesUsed[2][8]; // 0xFFFF means move not used (confuse self hit, etc) /*0x20*/ u8 unk20[2]; @@ -107,9 +102,9 @@ struct SmallItemStruct struct BattleStruct /* 0x2000000 */ { u8 filler0[0x15DDE]; - /*0x15DDE*/ u8 unk15DDE; - /*0x15DDF*/ u8 unk15DDF; - /*0x15DE0*/ u8 filler15DE0[0x23C]; // 0xAF off? + /*0x15DDE*/ u8 unk15DDE; + /*0x15DDF*/ u8 unk15DDF; + /*0x15DE0*/ u8 filler15DE0[0x23C]; // 0xAF off? struct SmallBattleStruct1 unk; u8 filler1[0x68]; /* 0x16089 */ u8 safariFleeRate; @@ -119,10 +114,10 @@ struct BattleStruct /* 0x2000000 */ u8 filler2[0x72E]; /* 0x16800 */ struct AI_ThinkingStruct ai; /* 0x2016800 */ u8 filler1681C[0x1E4]; - /* 0x16A00 */ struct UnknownStruct1 unk_2016A00_2; + /* 0x16A00 */ struct UnkBattleStruct1 unk_2016A00_2; }; -struct UnknownStruct4 +struct UnkBattleStruct4 { /*0x00*/ u8 filler0[0x3]; /*0x04*/ u16 unk4; @@ -142,8 +137,184 @@ struct UnknownStruct4 /*0x17*/ u8 filler17[0x4]; }; -extern struct UnknownStruct1 unk_2016A00; -extern struct UnknownStruct4 gUnknown_02024CA8[]; +struct Struct30042E0 +{ + u8 unk0; + u8 unk1; + u8 unk2; + u8 unk3; + u8 unk4; + u8 unk5_0:1; + u8 unk5_1:1; + u16 unk6; + u8 unk8[10]; + u8 unk12; + u8 unk13; + u8 unk14[10]; + u8 filler1E[2]; + u16 unk20; + u16 unk22; + u16 unk24; + u16 unk26; + u16 unk28; + u8 unk2A[10]; + u8 filler34[2]; + u8 unk36[10]; +}; + +struct Struct2017800 +{ + u8 unk0_0:1; + u8 unk0_1:1; + u8 unk0_2:1; + u8 unk0_3:1; + u8 unk0_4:1; + u16 unk2; +}; + +struct Struct2017810 +{ + u8 unk0_0:1; + u8 unk0_1:1; + u8 unk0_2:1; + u8 unk0_3:1; + u8 unk0_4:1; + u8 unk0_5:1; + u8 unk0_6:1; + u8 unk0_7:1; + u8 unk1_0:1; + u8 unk2; + u8 unk3; + //u8 filler2[2]; + u8 unk4; + u8 unk5; + u8 unk6; + u8 unk7; + u8 unk8; + u8 unk9; + u8 fillerA[2]; +}; + +struct Struct2017840 +{ + u16 unk0; + u8 filler2[7]; + u8 unk9_0:1; +}; + +extern struct UnkBattleStruct1 unk_2016A00; +extern struct UnkBattleStruct4 gDisableStructs[]; extern struct AI_ThinkingStruct gAIThinkingSpace; +// TODO: move ewram to global.h +extern u8 ewram[]; + +#define BATTLE_STRUCT ((struct BattleStruct *) (ewram + 0x00000)) +#define AI_THINKING_STRUCT ((struct AI_ThinkingStruct *)(ewram + 0x16800)) +#define UNK_2016A00_STRUCT ((struct UnkBattleStruct1 *) (ewram + 0x16A00)) +#define AI_STACK ((struct AI_Stack *) (ewram + 0x16C00)) +#define AI_ARRAY_160CC ((struct SmallItemStruct *) (ewram + 0x160CC)) +#define ewram17800 ((struct Struct2017800 *) (ewram + 0x17800)) +#define ewram17810 ((struct Struct2017810 *) (ewram + 0x17810)) +#define ewram17840 (*(struct Struct2017840 *) (ewram + 0x17840)) + +// asm/battle_1.o +void sub_800D6D4(); +void sub_800D74C(); +void sub_800D7B8(void); +void sub_800DAB8(); +void sub_800DE30(u8); +void sub_800E23C(); + +// src/battle_2.o +void sub_800E7C4(void); +void InitBattle(void); +void sub_800EC9C(void); +void sub_800F104(void); +void sub_800F298(void); +void sub_800F808(void); +void sub_800F838(struct Sprite *); +u8 CreateNPCTrainerParty(struct Pokemon *, u16); +void sub_800FCFC(void); +void c2_8011A1C(void); +void sub_80101B8(void); +void c2_081284E0(void); +void sub_8010278(struct Sprite *); +void sub_80102AC(struct Sprite *); +void nullsub_37(struct Sprite *); +void sub_8010320(struct Sprite *); +void sub_8010494(struct Sprite *); +void sub_801053C(struct Sprite *); +void oac_poke_ally_(struct Sprite *); +void nullsub_86(struct Sprite *); +void objc_dp11b_pingpong(struct Sprite *); +void nullsub_41(void); +void sub_8010800(void); +void sub_8010824(void); +void sub_8010874(void); +void bc_8012FAC(void); +void bc_load_battlefield(void); +void sub_8011384(void); +void bc_801333C(void); +void bc_battle_begin_message(void); +void bc_8013568(void); +void sub_8011800(void); +void sub_8011834(void); +void bc_801362C(void); +void sub_8011970(void); +void sub_80119B4(void); +void BattleBeginFirstTurn(void); +void BattleTurnPassed(void); + +// asm/battle_2.o +void sub_8012324(void); +void sub_8012FBC(u8, u8); +u8 b_first_side(u8, u8, u8); +void TurnValuesCleanUp(u8); +void SpecialStatusesClear(void); +void sub_80138F0(void); +void MarkBufferBankForExecution(); +void sub_80155A4(); +void CancelMultiTurnMoves(u8); +void PrepareStringBattle(); +void sub_80156DC(); +void sub_80157C4(u8 index); + +// asm/battle_3.o +u8 sub_8015A98(u8, u8, u8); +u8 UpdateTurnCounters(); +u8 TurnBasedEffects(); +u8 sub_80170DC(); +u8 sub_80173A4(); +u8 AbilityBattleEffects(u8, u8, u8, u8, u16); +u8 sub_801A02C(); + +// asm/battle_4.o +void sub_801CAF8(u8, u8); +void move_effectiveness_something(u16, u8, u8); + +// asm/battle_5.o +void nullsub_91(void); +void SetBankFuncToPlayerBufferRunCommand(void); +void sub_802C098(); +void c3_0802FDF4(u8); +void sub_802E3E4(u8, int); +void nullsub_8(u8); +void sub_802E414(void); + +// asm/battle_7.o +void move_anim_start_t4(u8 a, u8 b, u8 c, u8 d); +void nullsub_9(u16); +void nullsub_10(int); +void load_gfxc_health_bar(); +u8 battle_load_something(); +void sub_8031F88(u8); +void sub_80324F8(struct Pokemon *, u8); +void sub_8032638(); +void sub_8032AA8(u8, u8); +void SetBankFuncToOpponentBufferRunCommand(void); + +// asm/battle_9.o +void SetBankFuncToLinkOpponentBufferRunCommand(void); + #endif // GUARD_BATTLE_H diff --git a/include/battle_811DA74.h b/include/battle_811DA74.h new file mode 100644 index 000000000..750c3fe2b --- /dev/null +++ b/include/battle_811DA74.h @@ -0,0 +1,11 @@ +#ifndef GUARD_BATTLE_811DA74_H +#define GUARD_BATTLE_811DA74_H + +void SetBankFuncToLinkPartnerBufferRunCommand(void); +void LinkPartnerBufferRunCommand(void); +void sub_811E0A0(void); +void LinkPartnerBufferExecCompleted(void); +u32 dp01_getattr_by_ch1_for_player_pokemon(u8 a, u8 *b); +void sub_811EC68(u8); + +#endif // GUARD_BATTLE_811DA74_H diff --git a/include/battle_ai.h b/include/battle_ai.h index a5fea3480..028da2c27 100644 --- a/include/battle_ai.h +++ b/include/battle_ai.h @@ -27,5 +27,6 @@ void BattleAI_DoAIProcessing(void); void sub_810745C(void); void AIStackPushVar(u8 *); u8 AIStackPop(void); +void BattleAI_HandleItemUseBeforeAISetup(void); #endif diff --git a/include/battle_anim.h b/include/battle_anim.h index e75c71ec0..48ceece21 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -1,6 +1,8 @@ #ifndef GUARD_BATTLEANIM_H #define GUARD_BATTLEANIM_H +#include "sprite.h" + #define SCRIPT_READ_8(ptr) ((ptr)[0]) #define SCRIPT_READ_16(ptr) ((ptr)[0] | ((ptr)[1] << 8)) #define SCRIPT_READ_32(ptr) ((ptr)[0] + ((ptr)[1] << 8) + ((ptr)[2] << 16) + ((ptr)[3] << 24)) @@ -54,5 +56,12 @@ void DoMoveAnim(const u8 *const moveAnims[], u16 b, u8 c); bool8 b_side_obj__get_some_boolean(u8 a); void sub_8076034(u8, u8); bool8 IsContest(void); +void battle_anim_clear_some_data(void); +void move_anim_8072740(struct Sprite *sprite); +void DestroyAnimVisualTask(u8 task); +void DestroyAnimVisualTask(u8 task); +bool8 b_side_obj__get_some_boolean(u8); +u8 IsContest(); + #endif diff --git a/include/battle_anim_80CA710.h b/include/battle_anim_80CA710.h new file mode 100644 index 000000000..fbbe23b97 --- /dev/null +++ b/include/battle_anim_80CA710.h @@ -0,0 +1,6 @@ +#ifndef GUARD_BATTLE_ANIM_80CA710_H +#define GUARD_BATTLE_ANIM_80CA710_H + +void sub_80E4EF8(int, int, int, int, u16, u8, int); + +#endif // GUARD_BATTLE_ANIM_80CA710_H diff --git a/include/battle_anim_81258BC.h b/include/battle_anim_81258BC.h new file mode 100644 index 000000000..45ef4b8cc --- /dev/null +++ b/include/battle_anim_81258BC.h @@ -0,0 +1,7 @@ +#ifndef GUARD_BATTLE_ANIM_81258BC_H +#define GUARD_BATTLE_ANIM_81258BC_H + +void SetBankFuncToSafariBufferRunCommand(void); +void bx_battle_menu_t6_2(void); + +#endif // GUARD_BATTLE_ANIM_81258BC_H diff --git a/include/battle_anim_8137220.h b/include/battle_anim_8137220.h new file mode 100644 index 000000000..73bf0d883 --- /dev/null +++ b/include/battle_anim_8137220.h @@ -0,0 +1,6 @@ +#ifndef GUARD_BATTLE_ANIM_8137220_H +#define GUARD_BATTLE_ANIM_8137220_H + +void SetBankFuncToWallyBufferRunCommand(void); + +#endif // GUARD_BATTLE_ANIM_8137220_H diff --git a/include/battle_anim_813F0F4.h b/include/battle_anim_813F0F4.h new file mode 100644 index 000000000..230a04dbb --- /dev/null +++ b/include/battle_anim_813F0F4.h @@ -0,0 +1,6 @@ +#ifndef GUARD_BATTLE_ANIM_813F0F4_H +#define GUARD_BATTLE_ANIM_813F0F4_H + +void sub_8141828(); + +#endif // GUARD_BATTLE_ANIM_813F0F4_H diff --git a/include/battle_interface.h b/include/battle_interface.h index e85f87a30..8230c7502 100644 --- a/include/battle_interface.h +++ b/include/battle_interface.h @@ -31,6 +31,7 @@ void sub_8045A5C(u8, struct Pokemon *, u8); s32 sub_8045C78(u8, u8, u8, u8); s16 sub_80460C8(struct BattleInterfaceStruct1 *, int *, void *, int); u8 GetScaledHPFraction(s16, s16, u8); -int GetHPBarLevel(s16, s16); +u8 GetHPBarLevel(s16, s16); +void sub_80440EC(u8 a, s16 b, u8 c); #endif // GUARD_BATTLE_INTERFACE_H diff --git a/include/battle_message.h b/include/battle_message.h new file mode 100644 index 000000000..1ac20ce30 --- /dev/null +++ b/include/battle_message.h @@ -0,0 +1,7 @@ +#ifndef GUARD_BATTLE_MESSAGE_H +#define GUARD_BATTLE_MESSAGE_H + +void StrCpyDecodeToDisplayedStringBattle(u8 *); +void StrCpyDecodeBattle(const u8 *, u8 *); + +#endif // GUARD_BATTLE_MESSAGE_H diff --git a/include/battle_party_menu.h b/include/battle_party_menu.h index b9c3ad707..5112c7b3c 100644 --- a/include/battle_party_menu.h +++ b/include/battle_party_menu.h @@ -3,7 +3,8 @@ #include "task.h" -struct UnknownStruct1 +// TODO: Unify all of the 0x0201B000 structs +struct Struct201B000 { u8 filler0[0x259]; u8 unk259; @@ -15,24 +16,11 @@ struct UnknownStruct1 s16 unk266; }; -struct PartyMenuItem -{ - const u8 *text; - TaskFunc func; -}; - -struct PartyPopupMenu -{ - u8 unk0; - u8 unk1; - const u8 *unk4; -}; - extern u8 unk_2000000[]; void SetUpBattlePokemonMenu(u8); #define EWRAM_1609D unk_2000000[0x1609D] -#define EWRAM_1B000 (*(struct UnknownStruct1 *)(unk_2000000 + 0x1B000)) +#define EWRAM_1B000 (*(struct Struct201B000 *)(unk_2000000 + 0x1B000)) #endif diff --git a/include/battle_records.h b/include/battle_records.h new file mode 100644 index 000000000..f0c1a101b --- /dev/null +++ b/include/battle_records.h @@ -0,0 +1,8 @@ +#ifndef GUARD_BATTLE_RECORDS_H +#define GUARD_BATTLE_RECORDS_H + +void InitLinkBattleRecords(void); +void PrintLinkBattleWinsLossesDraws(void *); +void PrintLinkBattleRecord(void *, u8); + +#endif // GUARD_BATTLE_RECORDS_H diff --git a/include/battle_tower.h b/include/battle_tower.h new file mode 100644 index 000000000..193905b93 --- /dev/null +++ b/include/battle_tower.h @@ -0,0 +1,7 @@ +#ifndef GUARD_BATTLE_TOWER_H +#define GUARD_BATTLE_TOWER_H + +void sub_8134AC0(void *); +u16 sub_8135D3C(u8); + +#endif // GUARD_BATTLE_TOWER_H diff --git a/include/battle_transition.h b/include/battle_transition.h new file mode 100644 index 000000000..b01378505 --- /dev/null +++ b/include/battle_transition.h @@ -0,0 +1,8 @@ +#ifndef GUARD_BATTLE_TRANSITION_H +#define GUARD_BATTLE_TRANSITION_H + +void sub_811AABC(u8); +void sub_811AAD8(u8); +u8 sub_811AAE8(void); + +#endif // GUARD_BATTLE_TRANSITION_H diff --git a/include/berry_blender.h b/include/berry_blender.h new file mode 100644 index 000000000..924b24b00 --- /dev/null +++ b/include/berry_blender.h @@ -0,0 +1,6 @@ +#ifndef GUARD_BERRY_BLENDER_H +#define GUARD_BERRY_BLENDER_H + +void sub_80516C4(u8, u16); + +#endif // GUARD_BERRY_BLENDER_H diff --git a/include/cable_club.h b/include/cable_club.h new file mode 100644 index 000000000..9e6a703e3 --- /dev/null +++ b/include/cable_club.h @@ -0,0 +1,22 @@ +#ifndef GUARD_CABLE_CLUB_H +#define GUARD_CABLE_CLUB_H + +#include "task.h" + +void sub_8082D4C(); +void sub_8082D60(u8, u8); +u16 sub_8082D9C(u8, u8); +u32 sub_8082DF4(u8); +u32 sub_8082E28(u8); +u32 sub_8082EB8(u8); +void sub_8082FEC(u8 taskId); +void sub_80833C4(u8 taskId); +void sub_8083418(u8 taskId); +u8 sub_8083444(u8 taskId); +u8 sub_8083664(void); +void sub_8083A84(TaskFunc); +s32 sub_8083BF4(u8 id); +void sub_8083C50(u8); +void sub_8083188(u8 taskId); + +#endif // GUARD_CABLE_CLUB_H diff --git a/include/choose_party.h b/include/choose_party.h new file mode 100644 index 000000000..1e575a355 --- /dev/null +++ b/include/choose_party.h @@ -0,0 +1,8 @@ +#ifndef GUARD_CHOOSE_PARTY_H +#define GUARD_CHOOSE_PARTY_H + +void sub_8121E10(void); +void sub_8121E34(void); +void sub_8123138(u8); + +#endif // GUARD_CHOOSE_PARTY_H diff --git a/include/config.h b/include/config.h index 205f53f16..6a77c4c74 100644 --- a/include/config.h +++ b/include/config.h @@ -27,6 +27,12 @@ #define BUGFIX_EVO_NAME #endif +#ifdef ENGLISH +#define UNITS_IMPERIAL +#elif GERMAN +#define UNITS_METRIC +#endif + // Fixed in Emerald. // #define BUGFIX_SETMONIVS diff --git a/include/contest.h b/include/contest.h index 82520717f..983f9bc6a 100644 --- a/include/contest.h +++ b/include/contest.h @@ -22,5 +22,19 @@ struct ContestPokemon }; // wow extern struct ContestPokemon gContestMons[]; +void ResetLinkContestBoolean(void); +void sub_80AB2AC(void); +void sub_80AB47C(void); +void sub_80AE098(u8); +void sub_80AE398(u8, u8); +u8 sub_80AE47C(struct Pokemon *party); +u32 sub_80AE770(u8, u8); +void sub_80AE82C(u8); +u8 sub_80AEB1C(); +void sub_80AF668(void); +void sub_80B0F28(u8); +int sub_80B2A7C(u8); //Don't know return type size +u8 sub_80B2C4C(u8, u8); +void sub_80B2D1C(void); #endif // GUARD_CONTEST_H diff --git a/include/contest_link_80C2020.h b/include/contest_link_80C2020.h new file mode 100644 index 000000000..0b49d188c --- /dev/null +++ b/include/contest_link_80C2020.h @@ -0,0 +1,13 @@ +#ifndef GUARD_CONTEST_LINK_80C2020_H +#define GUARD_CONTEST_LINK_80C2020_H + +void sub_80C2358(void); +void sub_80C46EC(void); +void sub_80C4740(void); +void sub_80C48C8(void); +void sub_80C48F4(void); +void sub_80C4940(void); +void sub_80C4980(u8); +u8 sub_80C4B34(u8 *); + +#endif // GUARD_CONTEST_LINK_80C2020_H diff --git a/include/contest_link_80C857C.h b/include/contest_link_80C857C.h new file mode 100644 index 000000000..9135ba2e7 --- /dev/null +++ b/include/contest_link_80C857C.h @@ -0,0 +1,10 @@ +#ifndef GUARD_CONTEST_LINK_80C857C_H +#define GUARD_CONTEST_LINK_80C857C_H + +void sub_80C8734(u8); +void sub_80C88AC(u8); +void sub_80C8E1C(u8); +void sub_80C8EBC(u8); +void sub_80C8F34(u8); + +#endif // GUARD_CONTEST_LINK_80C857C_H diff --git a/include/contest_painting.h b/include/contest_painting.h index a67748d02..ad1cecfed 100644 --- a/include/contest_painting.h +++ b/include/contest_painting.h @@ -8,10 +8,10 @@ enum { - NORMAL_RANK, - SUPER_RANK, - HYPER_RANK, - MASTER_RANK, + NORMAL_RANK, + SUPER_RANK, + HYPER_RANK, + MASTER_RANK, }; enum @@ -60,26 +60,7 @@ struct LabelPair const u8 *suffix; }; -struct Unk03005E20 -{ - u8 var_0; - u8 pad1[3]; - u16 (*var_4)[][32]; - u16 (*var_8)[]; - u8 pad0C[4]; - u32 var_10; - u16 var_14; - u16 var_16; - u8 var_18; - u8 var_19; - u8 var_1A; - u8 var_1B; - u8 var_1C; - u8 var_1D; - u8 var_1E; - u8 var_1F; -}; - void sub_8106630(u32); +void CB2_ContestPainting(void); #endif diff --git a/include/coord_event_weather.h b/include/coord_event_weather.h new file mode 100644 index 000000000..86fb48793 --- /dev/null +++ b/include/coord_event_weather.h @@ -0,0 +1,6 @@ +#ifndef GUARD_COORD_EVENT_WEATHER_H +#define GUARD_COORD_EVENT_WEATHER_H + +void DoCoordEventWeather(u8); + +#endif // GUARD_COORD_EVENT_WEATHER_H diff --git a/include/cute_sketch.h b/include/cute_sketch.h new file mode 100644 index 000000000..1fa3c90fb --- /dev/null +++ b/include/cute_sketch.h @@ -0,0 +1,28 @@ +#ifndef GUARD_CUTE_SKETCH_H +#define GUARD_CUTE_SKETCH_H + +struct Unk03005E20 +{ + u8 var_0; + u8 pad1[3]; + u16 (*var_4)[][32]; + u16 (*var_8)[]; + u8 pad0C[4]; + u32 var_10; + u16 var_14; + u16 var_16; + u8 var_18; + u8 var_19; + u8 var_1A; + u8 var_1B; + u8 var_1C; + u8 var_1D; + u8 var_1E; + u8 var_1F; +}; + +void sub_80FC7A0(struct Unk03005E20 *); +void sub_80FD8CC(struct Unk03005E20 *); +void sub_80FDA18(struct Unk03005E20 *); + +#endif // GUARD_CUTE_SKETCH_H diff --git a/include/data2.h b/include/data2.h index 987c7cb2e..f292472ef 100644 --- a/include/data2.h +++ b/include/data2.h @@ -3,7 +3,8 @@ #include "sprite.h" -struct UnknownStructD2 { +struct UnknownStructD2 +{ u32 unk0; u32 unk4; u32 unk8; @@ -21,15 +22,15 @@ extern const union AffineAnimCmd *const gSpriteAffineAnimTable_81E7C18; extern const union AnimCmd *const gSpriteAnimTable_81E7C64[]; extern struct MonCoords gMonFrontPicCoords[]; extern struct MonCoords gMonBackPicCoords[]; -extern struct SpriteSheet gMonFrontPicTable[]; -extern struct SpriteSheet gMonBackPicTable[]; -extern const struct SpritePalette gMonPaletteTable[]; -extern const struct SpritePalette gMonShinyPaletteTable[]; +extern struct CompressedSpriteSheet gMonFrontPicTable[]; +extern struct CompressedSpriteSheet gMonBackPicTable[]; +extern const struct CompressedSpritePalette gMonPaletteTable[]; +extern const struct CompressedSpritePalette gMonShinyPaletteTable[]; extern const union AnimCmd *const *const gUnknown_081EC2A4[]; extern const union AnimCmd *const *const gUnknown_081ECACC[]; extern struct MonCoords gTrainerBackPicCoords[]; -extern struct SpriteSheet gTrainerBackPicTable[]; -extern struct SpritePalette gTrainerBackPicPaletteTable[]; +extern struct CompressedSpriteSheet gTrainerBackPicTable[]; +extern const struct CompressedSpritePalette gTrainerBackPicPaletteTable[]; extern u8 gEnemyMonElevation[]; extern const u8 gTrainerClassNames[][13]; extern const struct Trainer gTrainers[]; @@ -37,10 +38,10 @@ extern u8 gSpeciesNames[][11]; extern u8 gMoveNames[][13]; extern const struct UnknownStructD2 gUnknown_081F9674; extern const u8 gUnknown_081F96C8[]; -extern struct SpriteSheet gUnknown_081FAEA4; -extern struct SpritePalette gUnknown_081FAEAC; +extern struct CompressedSpriteSheet gUnknown_081FAEA4; +extern struct CompressedSpritePalette gUnknown_081FAEAC; extern const struct SpriteTemplate gSpriteTemplate_81FAF0C; -extern void *gUnknown_081FAF4C[]; +extern void *const gUnknown_081FAF4C[]; extern struct BattleMove gBattleMoves[]; #endif // GUARD_DATA2_H diff --git a/include/daycare.h b/include/daycare.h new file mode 100644 index 000000000..b90c50610 --- /dev/null +++ b/include/daycare.h @@ -0,0 +1,14 @@ +#ifndef GUARD_DAYCARE_H +#define GUARD_DAYCARE_H + +u8 Daycare_CountPokemon(struct BoxPokemon *); +void sub_8041324(struct BoxPokemon *, struct RecordMixing_UnknownStruct *); +void sub_8041790(int i); +u16 sub_8041870(u16); +void sub_8041940(void); +void sub_8041950(void); +void sub_8042044(struct Pokemon *mon, u16, u8); +u8 sub_80422A0(void); +u8 daycare_relationship_score_from_savegame(void); + +#endif // GUARD_DAYCARE_H diff --git a/include/debug.h b/include/debug.h new file mode 100644 index 000000000..f3ad8c401 --- /dev/null +++ b/include/debug.h @@ -0,0 +1,7 @@ +#ifndef GUARD_DEBUG_H +#define GUARD_DEBUG_H + +// matsuda_debug_menu +void sub_80AAF30(void); + +#endif // GUARD_DEBUG_H diff --git a/include/decompress.h b/include/decompress.h index 28570afdd..07d69301f 100644 --- a/include/decompress.h +++ b/include/decompress.h @@ -5,13 +5,13 @@ void sub_800D238(const void *src, void *dest); void LZDecompressVram(const void *src, void *dest); -void LoadCompressedObjectPic(const struct SpriteSheet *a); -void LoadCompressedObjectPicOverrideBuffer(const struct SpriteSheet *a, void *buffer); -void LoadCompressedObjectPalette(const struct SpritePalette *a); -void LoadCompressedObjectPaletteOverrideBuffer(const struct SpritePalette *a, void *buffer); -void DecompressPicFromTable_2(const struct SpriteSheet *a, u8 b, u8 c, void *d, void *e, s32 f); -void HandleLoadSpecialPokePic(const struct SpriteSheet *spriteSheet, u32 b, u32 c, u32 d, void *dest, s32 species, u32 g); -void LoadSpecialPokePic(const struct SpriteSheet *spriteSheet, u32 b, u32 c, u32 d, void *dest, s32 species, u32 g, u32 h); +void LoadCompressedObjectPic(const struct CompressedSpriteSheet *a); +void LoadCompressedObjectPicOverrideBuffer(const struct CompressedSpriteSheet *a, void *buffer); +void LoadCompressedObjectPalette(const struct CompressedSpritePalette *a); +void LoadCompressedObjectPaletteOverrideBuffer(const struct CompressedSpritePalette *a, void *buffer); +void DecompressPicFromTable_2(const struct CompressedSpriteSheet *a, u8 b, u8 c, void *d, void *e, s32 f); +void HandleLoadSpecialPokePic(const struct CompressedSpriteSheet *spriteSheet, u32 b, u32 c, u32 d, void *dest, s32 species, u32 g); +void LoadSpecialPokePic(const struct CompressedSpriteSheet *spriteSheet, u32 b, u32 c, u32 d, void *dest, s32 species, u32 g, u32 h); void Unused_LZDecompressWramIndirect(const void **src, void *dest); #endif // GUARD_DECOMPRESS_H diff --git a/include/decoration.h b/include/decoration.h index d041a8007..2595d491a 100644 --- a/include/decoration.h +++ b/include/decoration.h @@ -1,19 +1,379 @@ #ifndef GUARD_DECORATION_H #define GUARD_DECORATION_H +#include "task.h" + +enum DecoId { + /*000*/ DECOR_NONE, + /*001*/ DECOR_SMALL_DESK, + /*002*/ DECOR_POKEMON_DESK, + /*003*/ DECOR_HEAVY_DESK, + /*004*/ DECOR_RAGGED_DESK, + /*005*/ DECOR_COMFORT_DESK, + /*006*/ DECOR_PRETTY_DESK, + /*007*/ DECOR_BRICK_DESK, + /*008*/ DECOR_CAMP_DESK, + /*009*/ DECOR_HARD_DESK, + /*010*/ DECOR_SMALL_CHAIR, + /*011*/ DECOR_POKEMON_CHAIR, + /*012*/ DECOR_HEAVY_CHAIR, + /*013*/ DECOR_PRETTY_CHAIR, + /*014*/ DECOR_COMFORT_CHAIR, + /*015*/ DECOR_RAGGED_CHAIR, + /*016*/ DECOR_BRICK_CHAIR, + /*017*/ DECOR_CAMP_CHAIR, + /*018*/ DECOR_HARD_CHAIR, + /*019*/ DECOR_RED_PLANT, + /*020*/ DECOR_TROPICAL_PLANT, + /*021*/ DECOR_PRETTY_FLOWERS, + /*022*/ DECOR_COLORFUL_PLANT, + /*023*/ DECOR_BIG_PLANT, + /*024*/ DECOR_GORGEOUS_PLANT, + /*025*/ DECOR_RED_BRICK, + /*026*/ DECOR_YELLOW_BRICK, + /*027*/ DECOR_BLUE_BRICK, + /*028*/ DECOR_RED_BALLOON, + /*029*/ DECOR_BLUE_BALLOON, + /*030*/ DECOR_YELLOW_BALLOON, + /*031*/ DECOR_RED_TENT, + /*032*/ DECOR_BLUE_TENT, + /*033*/ DECOR_SOLID_BOARD, + /*034*/ DECOR_SLIDE, + /*035*/ DECOR_FENCE_LENGTH, + /*036*/ DECOR_FENCE_WIDTH, + /*037*/ DECOR_TIRE, + /*038*/ DECOR_STAND, + /*039*/ DECOR_MUD_BALL, + /*040*/ DECOR_BREAKABLE_DOOR, + /*041*/ DECOR_SAND_ORNAMENT, + /*042*/ DECOR_SILVER_SHIELD, + /*043*/ DECOR_GOLD_SHIELD, + /*044*/ DECOR_GLASS_ORNAMENT, + /*045*/ DECOR_TV, + /*046*/ DECOR_ROUND_TV, + /*047*/ DECOR_CUTE_TV, + /*048*/ DECOR_GLITTER_MAT, + /*049*/ DECOR_JUMP_MAT, + /*050*/ DECOR_SPIN_MAT, + /*051*/ DECOR_C_LOW_NOTE_MAT, + /*052*/ DECOR_D_NOTE_MAT, + /*053*/ DECOR_E_NOTE_MAT, + /*054*/ DECOR_F_NOTE_MAT, + /*055*/ DECOR_G_NOTE_MAT, + /*056*/ DECOR_A_NOTE_MAT, + /*057*/ DECOR_B_NOTE_MAT, + /*058*/ DECOR_C_HIGH_NOTE_MAT, + /*059*/ DECOR_SURF_MAT, + /*060*/ DECOR_THUNDER_MAT, + /*061*/ DECOR_FIRE_BLAST_MAT, + /*062*/ DECOR_POWDER_SNOW_MAT, + /*063*/ DECOR_ATTRACT_MAT, + /*064*/ DECOR_FISSURE_MAT, + /*065*/ DECOR_SPIKES_MAT, + /*066*/ DECOR_BALL_POSTER, + /*067*/ DECOR_GREEN_POSTER, + /*068*/ DECOR_RED_POSTER, + /*069*/ DECOR_BLUE_POSTER, + /*070*/ DECOR_CUTE_POSTER, + /*071*/ DECOR_PIKA_POSTER, + /*072*/ DECOR_LONG_POSTER, + /*073*/ DECOR_SEA_POSTER, + /*074*/ DECOR_SKY_POSTER, + /*075*/ DECOR_KISS_POSTER, + /*076*/ DECOR_PICHU_DOLL, + /*077*/ DECOR_PIKACHU_DOLL, + /*078*/ DECOR_MARILL_DOLL, + /*079*/ DECOR_TOGEPI_DOLL, + /*080*/ DECOR_CYNDAQUIL_DOLL, + /*081*/ DECOR_CHIKORITA_DOLL, + /*082*/ DECOR_TOTODILE_DOLL, + /*083*/ DECOR_JIGGLYPUFF_DOLL, + /*084*/ DECOR_MEOWTH_DOLL, + /*085*/ DECOR_CLEFAIRY_DOLL, + /*086*/ DECOR_DITTO_DOLL, + /*087*/ DECOR_SMOOCHUM_DOLL, + /*088*/ DECOR_TREECKO_DOLL, + /*089*/ DECOR_TORCHIC_DOLL, + /*090*/ DECOR_MUDKIP_DOLL, + /*091*/ DECOR_DUSKULL_DOLL, + /*092*/ DECOR_WYNAUT_DOLL, + /*093*/ DECOR_BALTOY_DOLL, + /*094*/ DECOR_KECLEON_DOLL, + /*095*/ DECOR_AZURILL_DOLL, + /*096*/ DECOR_SKITTY_DOLL, + /*097*/ DECOR_SWABLU_DOLL, + /*098*/ DECOR_GULPIN_DOLL, + /*099*/ DECOR_LOTAD_DOLL, + /*100*/ DECOR_SEEDOT_DOLL, + /*101*/ DECOR_PIKA_CUSHION, + /*102*/ DECOR_ROUND_CUSHION, + /*103*/ DECOR_KISS_CUSHION, + /*104*/ DECOR_ZIGZAG_CUSHION, + /*105*/ DECOR_SPIN_CUSHION, + /*106*/ DECOR_DIAMOND_CUSHION, + /*107*/ DECOR_BALL_CUSHION, + /*108*/ DECOR_GRASS_CUSHION, + /*109*/ DECOR_FIRE_CUSHION, + /*110*/ DECOR_WATER_CUSHION, + /*111*/ DECOR_SNORLAX_DOLL, + /*112*/ DECOR_RHYDON_DOLL, + /*113*/ DECOR_LAPRAS_DOLL, + /*114*/ DECOR_VENUSAUR_DOLL, + /*115*/ DECOR_CHARIZARD_DOLL, + /*116*/ DECOR_BLASTOISE_DOLL, + /*117*/ DECOR_WAILMER_DOLL, + /*118*/ DECOR_REGIROCK_DOLL, + /*119*/ DECOR_REGICE_DOLL, + /*120*/ DECOR_REGISTEEL_DOLL +}; + +enum DecorPerm { + /* + * The nomenclature here describes collision and placement permissions, in that order. + */ + DECORPERM_SOLID_FLOOR, + DECORPERM_PASS_FLOOR, + DECORPERM_BEHIND_FLOOR, + DECORPERM_NA_WALL, + DECORPERM_SOLID_MAT +}; + +enum DecorShape { + /* + * Width-x-height + */ + DECORSHAPE_1x1, + DECORSHAPE_2x1, + DECORSHAPE_3x1, // unused + DECORSHAPE_4x2, + DECORSHAPE_2x2, + DECORSHAPE_1x2, + DECORSHAPE_1x3, // unused + DECORSHAPE_2x4, + DECORSHAPE_3x3, + DECORSHAPE_3x2 +}; + +enum DecoCat { + /* + * In which category you can find the decoration in the PC. + */ + /*0*/ DECORCAT_DESK, + /*1*/ DECORCAT_CHAIR, + /*2*/ DECORCAT_PLANT, + /*3*/ DECORCAT_ORNAMENT, + /*4*/ DECORCAT_MAT, + /*5*/ DECORCAT_POSTER, + /*6*/ DECORCAT_DOLL, + /*7*/ DECORCAT_CUSHION +}; + struct Decoration { /*0x00*/ u8 id; /*0x01*/ u8 name[16]; - /*0x11*/ u8 decor_field_11; - /*0x12*/ u8 decor_field_12; - /*0x13*/ u8 decor_field_13; + /*0x11*/ u8 permission; + /*0x12*/ u8 shape; + /*0x13*/ u8 category; /*0x14*/ u16 price; - /*0x18*/ u8 *description; - /*0x1c*/ u16 *tiles; + /*0x18*/ const u8 *description; + /*0x1c*/ const u16 *tiles; +}; + +struct DecoPCPointers +{ + /* 0x00 */ u8 *items; + /* 0x04 */ u8 *pos; + /* 0x08 */ u8 size; + /* 0x09 */ u8 isPlayerRoom; +}; + +struct DecorationInventory +{ + u8 *items; + u8 size; +}; + +struct UnkStruct_803EC860 +{ + const u8 *tiles; + const u8 *y; + const u8 *x; + u8 size; }; -extern struct Decoration gDecorations[0x77]; -extern void sub_80FF394(u16 unkr0, u16 unkr1, u16 unkr2); +extern const struct UnkStruct_803EC860 gUnknown_083EC860[]; + +extern u8 ewram[]; +#define ewram_1f000 (*(struct DecoPCPointers *)(ewram + 0x1f000)) + +struct UnkStruct_02038900 +{ + /*0x000; 0x02038900*/ const struct Decoration *decoration; + /*0x004; 0x02038904*/ u16 tiles[0x40]; + /*0x084; 0x02038984*/ u8 image[0x800]; + /*0x884; 0x02039184*/ u16 palette[16]; +}; + +struct UnkStruct_083EC900 +{ + u8 shape; + u8 size; + u8 x; + u8 y; +}; + +struct UnkStruct_020391B4 +{ + u8 decorId; + u8 width; + u8 height; + u16 flagId; +}; + +extern const struct UnkStruct_083EC900 gUnknown_083EC900[]; +extern const struct SpritePalette gUnknown_083EC954; +extern const struct SpritePalette gUnknown_083ECA5C; +extern const struct SpritePalette gUnknown_083ECA64; +extern const struct SpriteTemplate gSpriteTemplate_83EC93C; +extern const struct SpriteTemplate gSpriteTemplate_83ECA88; + +extern const struct Decoration gDecorations[]; +extern struct UnkStruct_02038900 gUnknown_02038900; +extern u8 *gUnknown_020388D0; +extern u8 gUnknown_081A2F7B[]; +extern u8 gUnknown_081A2F8A[]; +extern struct OamData gUnknown_020391AC; + +extern u8 gUnknown_020388D4; +extern u8 gUnknown_020388D5; +extern u8 gUnknown_020388F2; +extern u8 gUnknown_020388F3; +extern u8 gUnknown_020388F4; +extern u8 gUnknown_020388F5; +extern u8 gUnknown_020388F6; +extern u8 gUnknown_020388D6[16]; +extern u8 gUnknown_020388E6[12]; +extern u16 gSpecialVar_0x8004; +extern u16 gSpecialVar_0x8005; +extern u16 gSpecialVar_0x8006; +extern u16 gSpecialVar_0x8007; +extern u16 gUnknown_020391A4; +extern u16 gUnknown_020391A6; +extern u8 gUnknown_020391A8; +extern u8 gUnknown_020391A9; +extern u8 gUnknown_020391AA; +extern u8 gUnknown_02039234; +extern void (*gFieldCallback)(void); +extern const struct YesNoFuncTable gUnknown_083EC96C[]; +extern struct UnkStruct_020391B4 gUnknown_020391B4[16]; + +extern const u16 gUnknown_083EC654[3]; +extern const struct DecorationInventory gDecorationInventories[]; +extern const u8 *const gUnknown_083EC5E4[]; +extern const u8 *const gUnknown_083EC624[]; +extern u8 gUnknown_020388F7[]; +extern const struct MenuAction2 gUnknown_083EC604[]; +extern const struct MenuAction3 gUnknown_083EC634[]; +extern const u8 gUnknown_083EC65A[]; +extern const u8 gUnknown_083EC97C[]; +extern const u8 gUnknown_083EC984[]; +extern void sub_80B3068(u8); // src/shop +extern const struct YesNoFuncTable gUnknown_083EC95C; +extern const struct YesNoFuncTable gUnknown_083EC964; +extern const struct YesNoFuncTable gUnknown_083EC9CC; +extern const struct YesNoFuncTable gUnknown_083EC9D4; +extern const struct YesNoFuncTable gUnknown_083ECAA0; + +extern u8 sub_8134194(u8); // src/decoration_inventory +extern bool8 sub_81341D4(void); // src/decoration_inventory +extern void sub_8134104(u8); // src/decoration_inventory +extern bool8 sub_807D770(void); +extern void sub_80F944C(void); // src/menu_helpers +extern void sub_80F9480(u8 *, u8); // src/menu_helpers +extern void sub_80F94A4(u8, u8 *, u8, s16); // src/menu_helpers +extern void sub_80F94F8(u8 *); // src/menu_helpers +extern void sub_80F9520(u8 *, u8); // src/menu_helpers +extern void DestroyVerticalScrollIndicator(u8); // src/menu_helpers +extern void CreateVerticalScrollIndicators(u8, u8, u8); // src/menu_helpers +extern void LoadScrollIndicatorPalette(void); // src/menu_helpers +extern void DisplayItemMessageOnField(u8, const u8 *, TaskFunc, u16); // src/menu_helpers +extern void BuyMenuFreeMemory(void); // src/menu_helpers +extern void sub_8109DAC(u8); // src/trader +extern void ReshowPlayerPC(u8); // src/player_pc + +void sub_80FE2B4(void); +void Task_DecorationPCProcessMenuInput(u8); +void sub_80FE394(void); +void gpu_pal_decompress_alloc_tag_and_upload(u8); +void sub_80FE5AC(u8); +void sub_80FE604(u8); +void sub_80FE728(u8); +void sub_80FE758(u8); +void sub_80FE868(u8); +void sub_80FE948(u8); +void sub_80FEABC(u8, u8); +void sub_80FEC94(u8); +void sub_80FECB8(u8); +void sub_80FECE0(u8); +void sub_80FEF50(u8); +void sub_80FF394(u16, u16, u16); +void sub_80FF6AC(u8); +void sub_80FF960(u8); +void AddDecorationIconObjectFromFieldObject(struct UnkStruct_02038900 *, u8); +void SetUpPlacingDecorationPlayerAvatar(u8, struct UnkStruct_02038900 *); +void sub_8100038(u8); +void sub_81000A0(u8); +void sub_8100174(u8); +void sub_8100248(u8); +void sub_810028C(u8); +void c1_overworld_prev_quest(u8); +void sub_8100364(void); +void sub_810045C(void); +void sub_810065C(u8); +void sub_81006A8(u8); +void sub_81006D0(struct UnkStruct_02038900 *); +void sub_810070C(u16 *, u16); +void sub_8100874(struct UnkStruct_02038900 *); +void sub_81008BC(struct UnkStruct_02038900 *); +void sub_8100930(u8); +void sub_81009A8(struct Sprite *); +void sub_81009C0(struct Sprite *); +bool8 sub_8100D38(u8); +void sub_8100E70(u8); +void sub_8100EEC(u8); +void sub_8101024(u8); +void sub_81010F0(u8); +void sub_8101460(u8); +void sub_8101518(u8); +void sub_81015B0(u8); +void sub_81015E0(u8); +void sub_810156C(u8); +void sub_8101678(void); +void sub_8101698(struct Sprite *); +void sub_81016C8(void); +void sub_81016F4(void); +void sub_8101824(u8); +void sub_8109A30(u8); + +void sub_80FF160(u8); +void sub_80FF5BC(u8); +void sub_80FF058(u8); +void sub_8100A0C(u8); +void sub_8101700(u8); +void sub_81017A0(u8); +void sub_8109D04(u8); + +void sub_80FED3C(u8); +void sub_80FFAB0(u8); +void sub_80FFB08(u8); +void sub_81000C4(u8); +void sub_810026C(u8); +void sub_8100F88(u8); +void sub_8100FB4(u8); +void sub_810153C(u8); +void sub_8101590(u8); +void sub_8101848(u8); +void DoPlayerPCDecoration(u8); #endif // GUARD_DECORATION_H diff --git a/include/decoration_inventory.h b/include/decoration_inventory.h new file mode 100644 index 000000000..afc354237 --- /dev/null +++ b/include/decoration_inventory.h @@ -0,0 +1,10 @@ +#ifndef GUARD_DECORATION_INVENTORY_H +#define GUARD_DECORATION_INVENTORY_H + +void ClearDecorationInventories(void); +u8 sub_8133FE4(u8); +u8 IsThereStorageSpaceForDecoration(u8); +u8 sub_8134074(u8); +s8 sub_81340A8(u8); + +#endif // GUARD_DECORATION_INVENTORY_H diff --git a/include/dewford_trend.h b/include/dewford_trend.h index a37de3389..26075d633 100644 --- a/include/dewford_trend.h +++ b/include/dewford_trend.h @@ -6,5 +6,6 @@ void InitDewfordTrend(void); void sub_80FA4E4(void *, u32, u8); +void UpdateDewfordTrendPerDay(u16); #endif diff --git a/include/diploma.h b/include/diploma.h new file mode 100644 index 000000000..81e9e3bb2 --- /dev/null +++ b/include/diploma.h @@ -0,0 +1,6 @@ +#ifndef GUARD_DIPLOMA_H +#define GUARD_DIPLOMA_H + +void sub_8145D88(void); + +#endif // GUARD_DIPLOMA_H diff --git a/include/easy_chat.h b/include/easy_chat.h index dca6b80c2..6b04f524b 100644 --- a/include/easy_chat.h +++ b/include/easy_chat.h @@ -29,5 +29,16 @@ enum { u16 sub_80EB72C(u16 group); void sub_80EB6FC(u16 *, u16); +void InitEasyChatPhrases(void); +u8 sub_80EAD7C(u8 group); +u16 sub_80EAE88(u8); +u8 sub_80EB37C(u16); +u8* sub_80EB3FC(u8 *, u16); +u8 *ConvertEasyChatWordsToString(u8 *dst, u16 *words, u16, u16); +u16 sub_80EB784(u16 group); +u8 sub_80EB868(u8); +void sub_80EB890(u8); +u8 sub_80EB8C0(void); +u16 sub_80EB8EC(void); #endif // GUARD_EASYCHAT_H diff --git a/include/field_control_avatar.h b/include/field_control_avatar.h index 0f8b74d59..a85e02132 100644 --- a/include/field_control_avatar.h +++ b/include/field_control_avatar.h @@ -1,7 +1,27 @@ #ifndef GUARD_FIELDCONTROLAVATAR_H #define GUARD_FIELDCONTROLAVATAR_H -#include "asm.h" +struct FieldInput +{ + u8 pressedAButton:1; + u8 input_field_0_1:1; + u8 pressedStartButton:1; + u8 pressedSelectButton:1; + u8 input_field_0_4:1; + u8 input_field_0_5:1; + u8 input_field_0_6:1; + u8 pressedBButton:1; + u8 input_field_1_0:1; + u8 input_field_1_1:1; + u8 input_field_1_2:1; + u8 input_field_1_3:1; + u8 input_field_1_4:1; + u8 input_field_1_5:1; + u8 input_field_1_6:1; + u8 input_field_1_7:1; + u8 dpadDirection; + u8 input_field_3; +}; void FieldClearPlayerInput(struct FieldInput *pStruct); void FieldGetPlayerInput(struct FieldInput *pStruct, u16 keys, u16 heldKeys); @@ -11,5 +31,10 @@ void overworld_poison_timer_set(void); void prev_quest_postbuffer_cursor_backup_reset(void); u8 *sub_8068E24(struct MapPosition *); u8 *GetFieldObjectScriptPointerForComparison(); +bool8 mapheader_trigger_activate_at__run_now(struct MapPosition *); +bool8 sub_8068870(u16 a); +bool8 sub_8068894(void); +bool8 sub_8068A64(struct MapPosition *, u16); +u8 sub_8068F18(void); #endif diff --git a/include/field_effect.h b/include/field_effect.h index a46c048cb..cd84652b1 100644 --- a/include/field_effect.h +++ b/include/field_effect.h @@ -2,6 +2,84 @@ #define GUARD_FIELD_EFFECT_H #include "sprite.h" +#include "task.h" + +enum FieldEffectScriptIdx +{ + FLDEFF_EXCLAMATION_MARK_ICON_1, + FLDEFF_USE_CUT_ON_GRASS, + FLDEFF_USE_CUT_ON_TREE, + FLDEFF_SHADOW, + FLDEFF_TALL_GRASS, + FLDEFF_RIPPLE, + FLDEFF_FIELD_MOVE_SHOW_MON, + FLDEFF_ASH, + FLDEFF_SURF_BLOB, + FLDEFF_USE_SURF, + FLDEFF_DUST, + FLDEFF_USE_SECRET_POWER_CAVE, + FLDEFF_JUMP_TALL_GRASS, + FLDEFF_SAND_FOOTPRINTS, + FLDEFF_JUMP_BIG_SPLASH, + FLDEFF_SPLASH, + FLDEFF_JUMP_SMALL_SPLASH, + FLDEFF_LONG_GRASS, + FLDEFF_JUMP_LONG_GRASS, + FLDEFF_UNKNOWN_19, + FLDEFF_UNKNOWN_20, + FLDEFF_UNKNOWN_21, + FLDEFF_UNKNOWN_22, + FLDEFF_BERRY_TREE_GROWTH_SPARKLE, + FLDEFF_DEEP_SAND_FOOTPRINTS, + FLDEFF_POKECENTER_HEAL, + FLDEFF_USE_SECRET_POWER_TREE, + FLDEFF_USE_SECRET_POWER_SHRUB, + FLDEFF_TREE_DISGUISE, + FLDEFF_MOUNTAIN_DISGUISE, + FLDEFF_NPCFLY_OUT, + FLDEFF_USE_FLY, + FLDEFF_FLY_IN, + FLDEFF_EXCLAMATION_MARK_ICON_2, + FLDEFF_FEET_IN_FLOWING_WATER, + FLDEFF_BIKE_TIRE_TRACKS, + FLDEFF_SAND_DISGUISE, + FLDEFF_USE_ROCK_SMASH, + FLDEFF_USE_DIG, + FLDEFF_SAND_PILE, + FLDEFF_USE_STRENGTH, + FLDEFF_SHORT_GRASS, + FLDEFF_HOT_SPRINGS_WATER, + FLDEFF_USE_WATERFALL, + FLDEFF_USE_DIVE, + FLDEFF_POKEBALL, + FLDEFF_HEART_ICON, + FLDEFF_NOP_47, + FLDEFF_NOP_48, + FLDEFF_POP_OUT_OF_ASH, + FLDEFF_LAVARIDGE_GYM_WARP, + FLDEFF_SWEET_SCENT, + FLDEFF_SAND_PILLAR, + FLDEFF_BUBBLES, + FLDEFF_SPARKLE, + FLDEFF_SECRET_POWER_CAVE, + FLDEFF_SECRET_POWER_TREE, + FLDEFF_SECRET_POWER_SHRUB, + FLDEFF_CUT_GRASS, + FLDEFF_FIELD_MOVE_SHOW_MON_INIT, + FLDEFF_USE_FLY_ANCIENT_TOMB, + FLDEFF_PCTURN_ON, + FLDEFF_HALL_OF_FAME_RECORD, + FLDEFF_USE_TELEPORT +}; + +extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[2]; +extern const struct SpritePalette gUnknown_0839F114; +extern const struct CompressedSpriteSheet gTrainerFrontPicTable[2]; +extern const struct SpriteTemplate gSpriteTemplate_839F128; +extern const struct OamData gOamData_839F0F4; +extern struct SpriteTemplate gUnknown_02024E8C; + +extern u8 gLastFieldPokeMenuOpened; u32 FieldEffectStart(u8 id); bool8 FieldEffectCmd_loadtiles(u8 **script, u32 *val); @@ -25,5 +103,144 @@ void FieldEffectActiveListClear(void); void FieldEffectActiveListAdd(u8 id); void FieldEffectActiveListRemove(u8 id); bool8 FieldEffectActiveListContains(u8 id); +void sub_807DE38(u8 index); + +void SpriteCB_PokeballGlow(struct Sprite *); +void SpriteCB_PokecenterMonitor(struct Sprite *); +void SpriteCB_HallOfFameMonitor(struct Sprite *); + +void PokecenterHealEffect_0(struct Task *); +void PokecenterHealEffect_1(struct Task *); +void PokecenterHealEffect_2(struct Task *); +void PokecenterHealEffect_3(struct Task *); + +void HallOfFameRecordEffect_0(struct Task *); +void HallOfFameRecordEffect_1(struct Task *); +void HallOfFameRecordEffect_2(struct Task *); +void HallOfFameRecordEffect_3(struct Task *); + +void PokeballGlowEffect_0(struct Sprite *); +void PokeballGlowEffect_1(struct Sprite *); +void PokeballGlowEffect_2(struct Sprite *); +void PokeballGlowEffect_3(struct Sprite *); +void PokeballGlowEffect_4(struct Sprite *); +void PokeballGlowEffect_5(struct Sprite *); +void PokeballGlowEffect_6(struct Sprite *); +void PokeballGlowEffect_7(struct Sprite *); + +bool8 sub_80867AC(struct Task *); +bool8 sub_8086854(struct Task *); +bool8 sub_8086870(struct Task *); +bool8 sub_80868E4(struct Task *); +bool8 sub_808699C(struct Task *); +bool8 sub_80869B8(struct Task *); +bool8 sub_80869F8(struct Task *); + +bool8 sub_8086AA0(struct Task *); +bool8 sub_8086AC0(struct Task *); +bool8 sub_8086B30(struct Task *); +bool8 sub_8086B54(struct Task *); +bool8 sub_8086B64(struct Task *); +bool8 sub_8086B88(struct Task *); + +bool8 sub_8086CF4(struct Task *); +bool8 sub_8086D70(struct Task *); +bool8 sub_8086DB0(struct Task *); +bool8 sub_8086E10(struct Task *); +bool8 sub_8086E50(struct Task *); +bool8 sub_8086EB0(struct Task *); +bool8 sub_8086ED4(struct Task *); + +bool8 sub_8086FB0(struct Task *, struct MapObject *); +bool8 waterfall_1_do_anim_probably(struct Task *, struct MapObject *); +bool8 waterfall_2_wait_anim_finish_probably(struct Task *, struct MapObject *); +bool8 sub_8087030(struct Task *, struct MapObject *); +bool8 sub_8087058(struct Task *, struct MapObject *); + +bool8 sub_8087124(struct Task *); +bool8 dive_2_unknown(struct Task *); +bool8 dive_3_unknown(struct Task *); + +bool8 sub_808722C(struct Task *, struct MapObject *, struct Sprite *); +bool8 sub_8087264(struct Task *, struct MapObject *, struct Sprite *); +bool8 sub_8087298(struct Task *, struct MapObject *, struct Sprite *); +bool8 sub_80872E4(struct Task *, struct MapObject *, struct Sprite *); +bool8 sub_80873D8(struct Task *, struct MapObject *, struct Sprite *); +bool8 sub_80873F4(struct Task *, struct MapObject *, struct Sprite *); + +bool8 sub_80874CC(struct Task *, struct MapObject *, struct Sprite *); +bool8 sub_80874FC(struct Task *, struct MapObject *, struct Sprite *); +bool8 sub_8087548(struct Task *, struct MapObject *, struct Sprite *); +bool8 sub_808759C(struct Task *, struct MapObject *, struct Sprite *); + +bool8 sub_80876C8(struct Task *, struct MapObject *, struct Sprite *); +bool8 sub_80876F8(struct Task *, struct MapObject *, struct Sprite *); +bool8 sub_8087774(struct Task *, struct MapObject *, struct Sprite *); +bool8 sub_80877AC(struct Task *, struct MapObject *, struct Sprite *); +bool8 sub_80877D4(struct Task *, struct MapObject *, struct Sprite *); + +void sub_80878F4(struct Task *); +void sub_8087914(struct Task *); + +void sub_8087AA4(struct Task *); +void sub_8087AC8(struct Task *); + +void sub_8087BEC(struct Task *); +void sub_8087C14(struct Task *); +void sub_8087CA4(struct Task *); +void sub_8087D78(struct Task *); + +void sub_8087E4C(struct Task *); +void sub_8087ED8(struct Task *); +void sub_8087FDC(struct Task *); + +void sub_8088150(struct Task *); +void sub_80881C0(struct Task *); +void sub_8088228(struct Task *); +void sub_80882B4(struct Task *); +void sub_80882E4(struct Task *); +void sub_8088338(struct Task *); +void sub_8088380(struct Task *); + +void sub_80884AC(struct Task *); +void sub_80884E8(struct Task *); +void sub_8088554(struct Task *); +void sub_80885A8(struct Task *); +void sub_80885D8(struct Task *); +void sub_808860C(struct Task *); +void sub_808862C(struct Task *); + +void sub_8088984(struct Task *); +void sub_80889E4(struct Task *); +void sub_8088A30(struct Task *); +void sub_8088A78(struct Task *); +void sub_8088AF4(struct Task *); + +void sub_8088CA0(struct Task *); +void sub_8088CF8(struct Task *); +void sub_8088D3C(struct Task *); +void sub_8088D94(struct Task *); +void sub_8088DD8(struct Task *); +void sub_8088E2C(struct Task *); +void sub_8088EB4(struct Task *); +void sub_8088F10(struct Task *); +void sub_8088F30(struct Task *); + +void sub_80892A0(struct Task *); +void sub_8089354(struct Task *); +void sub_80893C0(struct Task *); +void sub_8089414(struct Task *); +void sub_808948C(struct Task *); +void sub_80894C4(struct Task *); +void fishE(struct Task *); + +u8 CreateTrainerSprite_BirchSpeech(u8 gender, s16 x, s16 y, u8 subpriority, u8 *buffer); +void LoadTrainerGfx_TrainerCard(u8 gender, u16 palOffset, u8 *dest); +u8 CreateBirchSprite(s16 x, s16 y, u8 subpriority); +u8 CreateMonSprite_PicBox(u16, s16, s16, u8); +void FreeResourcesAndDestroySprite(struct Sprite *sprite); +void MultiplyInvertedPaletteRGBComponents(u16, u8, u8, u8); +void sub_80878A8(void); +void sub_8087BA8(void); #endif // GUARD_FIELD_EFFECT_H diff --git a/include/field_effect_helpers.h b/include/field_effect_helpers.h new file mode 100644 index 000000000..56838fc3a --- /dev/null +++ b/include/field_effect_helpers.h @@ -0,0 +1,13 @@ +#ifndef GUARD_FIELD_EFFECT_HELPERS_H +#define GUARD_FIELD_EFFECT_HELPERS_H + +void sub_812869C(struct MapObject *); +bool8 sub_81286C4(struct MapObject *); +u8 sub_8126B54(void); +void objid_set_invisible(u8); +void sub_8126BC4(u8 unk_1B, u8 r6, s16 x, s16 y); +void sub_8127ED0(u8, u8); +void sub_8127F28(u8, u8, s16); +u8 sub_8128124(u8 id); + +#endif // GUARD_FIELD_EFFECT_HELPERS_H diff --git a/include/field_fadetransition.h b/include/field_fadetransition.h new file mode 100644 index 000000000..764adfc9a --- /dev/null +++ b/include/field_fadetransition.h @@ -0,0 +1,31 @@ +#ifndef GUARD_FIELD_FADETRANSITION_H +#define GUARD_FIELD_FADETRANSITION_H + +void palette_bg_fill_white(void); +void palette_bg_fill_black(void); +void pal_fill_black(void); +void pal_fill_black(); +void pal_fill_black(void); +void task0A_asap_script_env_2_enable_and_set_ctx_running(u8); +void sub_8080990(void); +void sub_80809B0(void); +void sub_8080A3C(void); +void sub_8080AC4(void); +void mapldr_default(); +void sub_8080B60(void); +void atk17_seteffectuser(void); +void sub_8080E28(void); +void sub_8080E44(void); +int sub_8080E70(void); +void sub_8080E88(void); +void sub_8080E88(); +void sp13E_warp_to_last_warp(void); +void sub_8080EF0(void); +void sp13F_fall_to_last_warp(void); +void sub_8080F2C(u8); +void sub_8080F48(void); +void sub_8080F58(void); +void sub_8080F68(void); +void sub_8080F9C(void); + +#endif // GUARD_FIELD_FADETRANSITION_H diff --git a/include/field_ground_effect.h b/include/field_ground_effect.h index 8a69426b3..19d43c916 100644 --- a/include/field_ground_effect.h +++ b/include/field_ground_effect.h @@ -1,11 +1,27 @@ -// -// Created by Scott Norton on 5/22/17. -// - -#ifndef POKERUBY_FIELD_GROUND_EFFECT_H -#define POKERUBY_FIELD_GROUND_EFFECT_H +#ifndef GUARD_FIELD_GROUND_EFFECT_H +#define GUARD_FIELD_GROUND_EFFECT_H bool8 IsZCoordMismatchAt(u8 z, s16 x, s16 y); bool8 AreZCoordsCompatible(u8 z1, u8 z2); +void FieldObjectUpdateMetatileBehaviors(struct MapObject *); +void GetGroundEffectFlags_Reflection(struct MapObject *, u32 *); +void GetGroundEffectFlags_TallGrassOnSpawn(struct MapObject *, u32 *); +void GetGroundEffectFlags_TallGrassOnBeginStep(struct MapObject *, u32 *); +void GetGroundEffectFlags_LongGrassOnSpawn(struct MapObject *, u32 *); +void GetGroundEffectFlags_LongGrassOnBeginStep(struct MapObject *, u32 *); +void GetGroundEffectFlags_Tracks(struct MapObject *, u32 *); +void GetGroundEffectFlags_SandPile(struct MapObject *, u32 *); +void GetGroundEffectFlags_ShallowFlowingWater(struct MapObject *, u32 *); +void GetGroundEffectFlags_Puddle(struct MapObject *, u32 *); +void GetGroundEffectFlags_Ripple(struct MapObject *, u32 *); +void GetGroundEffectFlags_ShortGrass(struct MapObject *, u32 *); +void GetGroundEffectFlags_HotSprings(struct MapObject *, u32 *); +void GetGroundEffectFlags_Seaweed(struct MapObject *, u32 *); +void GetGroundEffectFlags_JumpLanding(struct MapObject *, u32 *); +u8 FieldObjectCheckForReflectiveSurface(struct MapObject *); +u8 GetLedgeJumpDirection(s16, s16, u8); +u8 ZCoordToPriority(u8); +void FieldObjectUpdateZCoord(struct MapObject *pObject); +void SetObjectSubpriorityByZCoord(u8, struct Sprite *, u8); -#endif //POKERUBY_FIELD_GROUND_EFFECT_H +#endif // GUARD_FIELD_GROUND_EFFECT_H diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 2bd875f17..e4999dee6 100755..100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -89,4 +89,113 @@ extern struct CameraSomething gUnknown_03004880; extern u16 gUnknown_03004898; extern u16 gUnknown_0300489C; +extern u32 gUnknown_0202FF84[]; + +int state_to_direction(u8, u8, u8); + +void sub_805AA98(); +void sub_805AAB0(void); +u8 sub_805AB54(void); +u8 GetFieldObjectIdByLocalIdAndMap(u8, u8, u8); +bool8 TryGetFieldObjectIdByLocalIdAndMap(u8, u8, u8, u8 *); +u8 GetFieldObjectIdByXY(s16, s16); +u8 GetFieldObjectIdByLocalIdAndMapInternal(u8, u8, u8); +u8 GetFieldObjectIdByLocalId(u8); +u8 GetAvailableFieldObjectSlot(u16, u8, u8, u8 *); +void RemoveFieldObjectByLocalIdAndMap(u8, u8, u8); +void RemoveFieldObjectInternal(struct MapObject *); +u8 SpawnSpecialFieldObject(struct MapObjectTemplate *); +u8 show_sprite(u8, u8, u8); +void MakeObjectTemplateFromFieldObjectTemplate(struct MapObjectTemplate *mapObjTemplate, struct SpriteTemplate *sprTemplate, struct SubspriteTable **subspriteTables); +u8 AddPseudoFieldObject(u16 graphicsId, void (*callback)(struct Sprite *), s16 c, s16 d, u8 subpriority); +u8 sub_805B410(u8, u8, s16, s16, u8, u8); +void sub_805B55C(s16 a, s16 b); +void sub_805B710(u16 i, u16 i1); +void sub_805B980(struct MapObject *, u8); +void FieldObjectTurn(struct MapObject *, u8); +void FieldObjectTurnByLocalIdAndMap(u8, u8, u8, u8); +const struct MapObjectGraphicsInfo *GetFieldObjectGraphicsInfo(u8); +void FieldObjectHandleDynamicGraphicsId(struct MapObject *); +void npc_by_local_id_and_map_set_field_1_bit_x20(u8, u8, u8, u8); +void FieldObjectGetLocalIdAndMap(struct MapObject *, u8 *, u8 *, u8 *); +void sub_805BCC0(s16 x, s16 y); +void sub_805BCF0(u8, u8, u8, u8); +void sub_805BD48(u8, u8, u8); +void sub_805BD90(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y); +void gpu_pal_allocator_reset__manage_upper_four(void); +void sub_805BDF8(u16); +u8 sub_805BE58(const struct SpritePalette *); +void pal_patch_for_npc(u16, u16); +u8 FindFieldObjectPaletteIndexByTag(u16); +void npc_load_two_palettes__no_record(u16, u8); +void npc_load_two_palettes__and_record(u16, u8); +void npc_coords_shift(struct MapObject *pObject, s16 x, s16 y); +void sub_805C0F8(u8, u8, u8, s16, s16); +void npc_coords_shift_still(struct MapObject *pObject); +u8 GetFieldObjectIdByXYZ(u16, u16, u8); +void UpdateFieldObjectsForCameraUpdate(s16, s16); +u8 AddCameraObject(u8); +void CameraObjectReset1(void); +u8 * GetFieldObjectScriptPointerByFieldObjectId(u8); +u16 GetFieldObjectFlagIdByFieldObjectId(u8); +u8 FieldObjectGetBerryTreeId(u8); +struct MapObjectTemplate *GetFieldObjectTemplateByLocalIdAndMap(u8, u8, u8); +void sub_805C754(struct MapObject *pObject); +void sub_805C774(struct MapObject *, u8); +void sub_805C78C(u8, u8, u8); +void sub_805C7C4(u8 i); +u8 FieldObjectDirectionToImageAnimId(u8); +u8 get_go_image_anim_num(u8 unk_19); +u8 sub_805FD98(u8); +u8 sub_805FDE8(u8); +u8 sub_805FDF8(u8); +u8 sub_805FE08(u8); +void npc_set_running_behaviour_etc(struct MapObject *, u8); +u8 npc_running_behaviour_by_direction(u8); +u8 npc_block_way(struct MapObject *, s16, s16, u8); +u8 sub_8060024(struct MapObject *, s16, s16, u8); +u8 sub_8060234(u8, u8, u8); +void sub_8060288(u8, u8, u8); +void sub_8060388(s16, s16, s16 *, s16 *); +void sub_80603CC(s16 x, s16 y, s16 *pInt, s16 *pInt1); +void GetFieldObjectMovingCameraOffset(s16 *, s16 *); +void FieldObjectMoveDestCoords(struct MapObject *pObject, u8 unk_19, s16 *pInt, s16 *pInt1); +bool8 FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(struct MapObject *); +bool8 FieldObjectIsSpecialAnimActive(struct MapObject *); +bool8 FieldObjectSetSpecialAnim(struct MapObject *, u8); +void FieldObjectForceSetSpecialAnim(struct MapObject *pObject, u8 a); +void FieldObjectClearAnimIfSpecialAnimActive(struct MapObject *); +void FieldObjectClearAnim(struct MapObject *); +bool8 FieldObjectCheckIfSpecialAnimFinishedOrInactive(struct MapObject *); +u8 FieldObjectClearAnimIfSpecialAnimFinished(struct MapObject *); +u8 FieldObjectGetSpecialAnim(struct MapObject *); +u8 GetFaceDirectionAnimId(u8); +u8 GetSimpleGoAnimId(u8); +u8 GetGoSpeed0AnimId(u8 a); +u8 sub_8060744(u8 a); +u8 d2s_08064034(u8 a); +u8 sub_806079C(u8 a); +u8 sub_80607F4(u8 a); +u8 GetJumpLedgeAnimId(u8 a); +u8 sub_806084C(u8); +u8 sub_8060878(u8); +u8 sub_80608D0(u8); +u8 GetStepInPlaceDelay32AnimId(u8 a); +u8 GetStepInPlaceDelay16AnimId(u8); +u8 GetStepInPlaceDelay8AnimId(u8 a); +u8 GetStepInPlaceDelay4AnimId(u8 a); +u8 FieldObjectFaceOppositeDirection(struct MapObject *, u8); +u8 sub_80609D8(u8); +u8 sub_8060A04(u8); +u8 sub_8060A30(u8); +u8 sub_8060A5C(u8); +u8 sub_8060A88(u8); +u8 sub_8060AB4(u8); +u8 sub_8060AE0(u8); +u8 sub_8060B0C(u8); +u8 sub_8060B38(u8); +u8 sub_8060B64(u8); +u8 GetOppositeDirection(u8); +void sub_80634D0(struct MapObject *, struct Sprite *); + #endif // GUARD_FIELD_MAP_OBJ_H diff --git a/include/field_map_obj_helpers.h b/include/field_map_obj_helpers.h index a61dcc63c..fd29a9a7f 100644 --- a/include/field_map_obj_helpers.h +++ b/include/field_map_obj_helpers.h @@ -1,6 +1,8 @@ #ifndef GUARD_FIELDMAPOBJHELP_H #define GUARD_FIELDMAPOBJHELP_H +#include "sprite.h" + bool8 FreezeMapObject(struct MapObject *); void FreezeMapObjects(void); void FreezeMapObjectsExceptOne(u8); @@ -11,5 +13,9 @@ void UnfreezeMapObject(struct MapObject *mapObject); void oamt_npc_ministep_reset(struct Sprite *sprite, u8 a2, u8 a3); void sub_806467C(struct Sprite *sprite, u8 direction); bool8 sub_806468C(struct Sprite *sprite); - +void sub_80646E4(struct Sprite *sprite, u8 a2, u8 a3, u8 a4); +void DoShadowFieldEffect(struct MapObject *mapObject); +u8 sub_8064704(struct Sprite *); +u8 sub_806478C(struct Sprite *); +void obj_anim_image_set_and_seek(struct Sprite *sprite, u8 a2, u8 a3); #endif diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h index d3e4b9132..86b1af3fb 100644 --- a/include/field_player_avatar.h +++ b/include/field_player_avatar.h @@ -1,39 +1,41 @@ #ifndef GUARD_FIELD_PLAYER_AVATAR_H #define GUARD_FIELD_PLAYER_AVATAR_H +#include "task.h" + // sub_80587B4 void player_step(u8 a, u16 b, u16 c); -// ForcedMovement_None -// ForcedMovement_Slip -// sub_8058AAC -// sub_8058AC4 -// sub_8058ADC -// sub_8058AF4 -// sub_8058B0C -// sub_8058B24 -// sub_8058B3C -// sub_8058B54 -// ForcedMovement_SlideSouth -// ForcedMovement_SlideNorth -// ForcedMovement_SlideWest -// ForcedMovement_SlideEast -// sub_8058C04 -// sub_8058C10 -// ForcedMovement_MuddySlope -// PlayerNotOnBikeNotMoving -// PlayerNotOnBikeTurningInPlace -// sub_8058D0C +u8 ForcedMovement_None(void); +u8 ForcedMovement_Slip(void); +u8 sub_8058AAC(void); +u8 sub_8058AC4(void); +u8 sub_8058ADC(void); +u8 sub_8058AF4(void); +u8 sub_8058B0C(void); +u8 sub_8058B24(void); +u8 sub_8058B3C(void); +u8 sub_8058B54(void); +u8 ForcedMovement_SlideSouth(void); +u8 ForcedMovement_SlideNorth(void); +u8 ForcedMovement_SlideWest(void); +u8 ForcedMovement_SlideEast(void); +u8 sub_8058C04(void); +u8 sub_8058C10(void); +u8 ForcedMovement_MuddySlope(void); +void PlayerNotOnBikeNotMoving(u8 direction, u16 heldKeys); +void PlayerNotOnBikeTurningInPlace(u8 direction, u16 heldKeys); +void sub_8058D0C(u8 direction, u16 heldKeys); u8 CheckForFieldObjectCollision(struct MapObject *a, s16 b, s16 c, u8 d, u8 e); void SetPlayerAvatarTransitionFlags(u16 a); -// nullsub_49 -// PlayerAvatarTransition_Normal -// PlayerAvatarTransition_MachBike -// PlayerAvatarTransition_AcroBike -// PlayerAvatarTransition_Surfing -// PlayerAvatarTransition_Underwater -// sub_80591F4 +void nullsub_49(struct MapObject *a); +void PlayerAvatarTransition_Normal(struct MapObject *a); +void PlayerAvatarTransition_MachBike(struct MapObject *a); +void PlayerAvatarTransition_AcroBike(struct MapObject *a); +void PlayerAvatarTransition_Surfing(struct MapObject *a); +void PlayerAvatarTransition_Underwater(struct MapObject *a); +void sub_80591F4(struct MapObject *a); void sub_8059204(void); -// player_get_x22 +u8 player_get_x22(void); void PlayerSetAnimId(u8 a, u8 b); void PlayerGoSpeed0(u8 a); void sub_80593C4(u8 a); @@ -72,41 +74,41 @@ u8 GetPlayerAvatarGenderByGraphicsId(u8 gfxId); bool8 PartyHasMonWithSurf(void); bool8 IsPlayerSurfingNorth(void); bool8 IsPlayerFacingSurfableFishableWater(void); -// ClearPlayerAvatarInfo +void ClearPlayerAvatarInfo(void); void SetPlayerAvatarStateMask(u8 a); u8 GetPlayerAvatarGraphicsIdByCurrentState(void); void SetPlayerAvatarExtraStateTransition(u8 a, u8 b); void InitPlayerAvatar(s16 a, s16 b, u8 c, u8 d); -// sub_8059B88 +void sub_8059B88(u8); void sub_8059BF4(void); // sub_8059C3C void sub_8059C94(u8); // sub_8059D08 -// sub_8059E84 -// sub_8059EA4 -// sub_8059F40 -// sub_805A000 -// sub_805A0D8 -// sub_805A100 -// sub_805A178 -// sub_805A1B8 +u8 sub_8059E84(struct Task *task, struct MapObject *b, struct MapObject *c); +u8 sub_8059EA4(struct Task *task, struct MapObject *b, struct MapObject *c); +u8 sub_8059F40(struct Task *task, struct MapObject *b, struct MapObject *c); +u8 sub_805A000(struct Task *task, struct MapObject *mapObject); +u8 sub_805A0D8(struct Task *task, struct MapObject *mapObject); +u8 sub_805A100(struct Task *task, struct MapObject *mapObject); +u8 sub_805A178(struct Task *task, struct MapObject *mapObject); +u8 sub_805A1B8(struct Task *task, struct MapObject *mapObject); void sub_805A20C(u8 a); void StartFishing(u8 a); -// Fishing1 -// Fishing2 -// Fishing3 -// Fishing4 -// Fishing5 -// Fishing6 -// Fishing7 -// Fishing8 -// Fishing9 -// Fishing10 -// Fishing11 -// Fishing12 -// Fishing13 -// Fishing14 -// Fishing15 -// Fishing16 +u8 Fishing1(struct Task *task); +u8 Fishing2(struct Task *task); +u8 Fishing3(struct Task *task); +u8 Fishing4(struct Task *task); +u8 Fishing5(struct Task *task); +u8 Fishing6(struct Task *task); +u8 Fishing7(struct Task *task); +u8 Fishing8(struct Task *task); +u8 Fishing9(struct Task *task); +u8 Fishing10(struct Task *task); +u8 Fishing11(struct Task *task); +u8 Fishing12(struct Task *task); +u8 Fishing13(struct Task *task); +u8 Fishing14(struct Task *task); +u8 Fishing15(struct Task *task); +u8 Fishing16(struct Task *task); #endif diff --git a/include/field_poison.h b/include/field_poison.h new file mode 100644 index 000000000..8e8e2746f --- /dev/null +++ b/include/field_poison.h @@ -0,0 +1,6 @@ +#ifndef GUARD_FIELD_POISON_H +#define GUARD_FIELD_POISON_H + +s32 overworld_poison(void); + +#endif // GUARD_FIELD_POISON_H diff --git a/include/field_region_map.h b/include/field_region_map.h new file mode 100644 index 000000000..93b8c6d68 --- /dev/null +++ b/include/field_region_map.h @@ -0,0 +1,10 @@ +#ifndef GUARD_FIELD_REGION_MAP_H +#define GUARD_FIELD_REGION_MAP_H + +void CB2_FieldInitRegionMap(void); +void VBlankCB_FieldRegionMap(void); +void CB2_FieldRegionMap(void); +void sub_813EFDC(void); +void sub_813F0C8(void); + +#endif // GUARD_FIELD_REGION_MAP_H diff --git a/include/field_screen_effect.h b/include/field_screen_effect.h new file mode 100644 index 000000000..d86109282 --- /dev/null +++ b/include/field_screen_effect.h @@ -0,0 +1,7 @@ +#ifndef GUARD_FIELD_SCREEN_EFFECT_H +#define GUARD_FIELD_SCREEN_EFFECT_H + +void sub_8081594(u8); +void sub_80815E0(u8 val); + +#endif // GUARD_FIELD_SCREEN_EFFECT_H diff --git a/include/field_specials.h b/include/field_specials.h new file mode 100644 index 000000000..d0eb12065 --- /dev/null +++ b/include/field_specials.h @@ -0,0 +1,13 @@ +#ifndef GUARD_FIELD_SPECIALS_H +#define GUARD_FIELD_SPECIALS_H + +void ResetCyclingRoadChallengeData(void); +bool32 CountSSTidalStep(u16); +u8 GetSSTidalLocation(s8 *, s8 *, s16 *, s16 *); +void ScriptAddElevatorMenuItem(u8, u8, u8, u8); +void ScriptShowElevatorMenu(void); +void SetShoalItemFlag(u16); +u8 GetLeadMonIndex(void); +void ResetFanClub(void); + +#endif // GUARD_FIELD_SPECIALS_H diff --git a/include/field_tasks.h b/include/field_tasks.h new file mode 100644 index 000000000..53e704395 --- /dev/null +++ b/include/field_tasks.h @@ -0,0 +1,8 @@ +#ifndef GUARD_FIELD_TASKS_H +#define GUARD_FIELD_TASKS_H + +void SetUpFieldTasks(); +void ActivatePerStepCallback(u8); +void ResetFieldTasksArgs(void); + +#endif // GUARD_FIELD_TASKS_H diff --git a/include/field_weather.h b/include/field_weather.h index af07c970d..409f76028 100644 --- a/include/field_weather.h +++ b/include/field_weather.h @@ -31,6 +31,8 @@ void sub_807D874(u8); // ... void sub_807DB64(u8, u8); // ... +void sub_807DE68(void); +// ... void PlayRainSoundEffect(void); // ... void SetSav1Weather(u32); @@ -40,4 +42,9 @@ void sub_80806E4(void); void DoCurrentWeather(void); void sub_8080750(); +u8 sub_807D770(void); +bool8 sub_807DDFC(void); +void SetWeather(u32); +void UpdateWeatherPerDay(u16); + #endif // GUARD_WEATHER_H diff --git a/include/fieldmap.h b/include/fieldmap.h index 530e15798..67b85fa62 100644 --- a/include/fieldmap.h +++ b/include/fieldmap.h @@ -2,9 +2,44 @@ #define GUARD_FIELDMAP2_H #include "field_map_obj.h" +extern struct BackupMapData gUnknown_03004870; struct MapHeader *mapconnection_get_mapheader(struct MapConnection *connection); int GetMapBorderIdAt(int x, int y); extern bool8 IsMetatileDirectionallyImpassable(struct MapObject *mapObject, s16 x, s16 y, u8 direction); int CanCameraMoveInDirection(int direction); +u32 GetBehaviorByMetatileId(u16 metatile); +void MapGridSetMetatileEntryAt(int, int, u16); + +void not_trainer_hill_battle_pyramid(void); +void sub_8055FC0(void); +void mapheader_copy_mapdata_with_padding(struct MapHeader *mapHeader); +void map_copy_with_padding(u16 *map, u16 width, u16 height); +void sub_80560AC(struct MapHeader *); +void fillSouthConnection(struct MapHeader *, struct MapHeader *, s32); +void fillNorthConnection(struct MapHeader *, struct MapHeader *, s32); +void fillWestConnection(struct MapHeader *, struct MapHeader *, s32); +void fillEastConnection(struct MapHeader *, struct MapHeader *, s32); +u8 MapGridGetZCoordAt(int s, int y); +u8 MapGridIsImpassableAt(int, int); +u32 MapGridGetMetatileIdAt(int, int); +u32 MapGridGetMetatileBehaviorAt(int x, int y); // return: (u8|u16|int) args: (int|s16|s32) +u8 MapGridGetMetatileLayerTypeAt(int, int); +void MapGridSetMetatileIdAt(int, int, u16); +u32 GetBehaviorByMetatileId(u16 metatile); +void save_serialize_map(void); +void sub_8056670(); +bool8 CameraMove(int, int); +struct MapConnection *sub_8056A64(u8 direction, int x, int y); +bool8 sub_8056ABC(u8 direction, int x, int y, struct MapConnection *connection); +bool8 sub_8056B20(int x, int src_width, int dest_width, int offset); +struct MapConnection *sub_8056BA0(s16 x, s16 y); // fieldmap.c +void sub_8056C50(u16, u16); +void sav1_camera_get_focus_coords(u16 *x, u16 *y); +void GetCameraCoords(u16*, u16*); +void sub_8056D28(struct MapData *pData); +void sub_8056D38(struct MapData *pData); +void apply_map_tileset2_palette(struct MapData *pData); +void copy_map_tileset1_tileset2_to_vram(/*TODO: arg types*/); +void apply_map_tileset1_tileset2_palette(/*TODO: arg types*/); #endif diff --git a/include/fldeff_80C5CD4.h b/include/fldeff_80C5CD4.h new file mode 100644 index 000000000..413e8ad96 --- /dev/null +++ b/include/fldeff_80C5CD4.h @@ -0,0 +1,9 @@ +#ifndef GUARD_FLDEFF_80C5CD4_H +#define GUARD_FLDEFF_80C5CD4_H + +void DoFieldPoisonEffect(void); +bool32 FieldPoisonEffectIsRunning(void); +void CreateRecordMixingSprite(void); +void DestroyRecordMixingSprite(void); + +#endif // GUARD_FLDEFF_80C5CD4_H diff --git a/include/fldeff_cut.h b/include/fldeff_cut.h new file mode 100644 index 000000000..0a5261468 --- /dev/null +++ b/include/fldeff_cut.h @@ -0,0 +1,13 @@ +#ifndef GUARD_FLDEFF_CUT_H +#define GUARD_FLDEFF_CUT_H + +void sub_80A25E8(void); +void sub_80A2634(void); +void sub_80A2684(void); +void sub_80A27A8(s16, s16); +void sub_80A28F4(s16, s16); +void objc_8097BBC(struct Sprite *sprite); +void sub_80A2AB8(void); +void sub_80A2B00(void); // unknown args + +#endif // GUARD_FLDEFF_CUT_H diff --git a/include/fldeff_flash.h b/include/fldeff_flash.h new file mode 100644 index 000000000..546a7f5dc --- /dev/null +++ b/include/fldeff_flash.h @@ -0,0 +1,8 @@ +#ifndef GUARD_FLDEFF_FLASH_H +#define GUARD_FLDEFF_FLASH_H + +void sub_810CC80(void); +u8 sub_810CDB8(u8, u8); +u8 fade_type_for_given_maplight_pair(u8, u8); + +#endif // GUARD_FLDEFF_FLASH_H diff --git a/include/fldeff_softboiled.h b/include/fldeff_softboiled.h new file mode 100644 index 000000000..97c65be08 --- /dev/null +++ b/include/fldeff_softboiled.h @@ -0,0 +1,7 @@ +#ifndef GUARD_FLDEFF_SOFTBOILED_H +#define GUARD_FLDEFF_SOFTBOILED_H + +bool8 SetUpFieldMove_SoftBoiled(void); +void sub_8133D28(u8 taskid); + +#endif // GUARD_FLDEFF_SOFTBOILED_H diff --git a/include/fldeff_teleport.h b/include/fldeff_teleport.h new file mode 100644 index 000000000..e447f5132 --- /dev/null +++ b/include/fldeff_teleport.h @@ -0,0 +1,7 @@ +#ifndef GUARD_FLDEFF_TELEPORT_H +#define GUARD_FLDEFF_TELEPORT_H + +void hm_teleport_run_dp02scr(void); +void sub_814A404(void); + +#endif // GUARD_FLDEFF_TELEPORT_H diff --git a/include/gba/defines.h b/include/gba/defines.h index 0f7f06755..0f7f06755 100644..100755 --- a/include/gba/defines.h +++ b/include/gba/defines.h diff --git a/include/gba/io_reg.h b/include/gba/io_reg.h index c0874bcbb..d483d4ddc 100644 --- a/include/gba/io_reg.h +++ b/include/gba/io_reg.h @@ -639,6 +639,8 @@ #define KEY_INTR_ENABLE 0x0400 #define KEY_OR_INTR 0x0000 #define KEY_AND_INTR 0x8000 +#define DPAD_ANY 0x00F0 +#define JOY_EXCL_DPAD 0x030F // interrupt flags #define INTR_FLAG_VBLANK (1 << 0) diff --git a/include/gba/types.h b/include/gba/types.h index fd8a20a4c..96e057ab7 100644 --- a/include/gba/types.h +++ b/include/gba/types.h @@ -34,7 +34,7 @@ struct PlttData u16 g:5; // green u16 b:5; // blue u16 unused_15:1; -}; +} /*__attribute__((packed))*/; struct OamData { diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index 0b72bbec5..b8bab45d8 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -44,23 +44,30 @@ typedef void (*TilesetCB)(void); struct Tileset { - bool8 isCompressed; - bool8 isSecondary; - void *tiles; - void *palettes; - void *metatiles; - void *metatileAttributes; - TilesetCB callback; + /*0x00*/ bool8 isCompressed; + /*0x01*/ bool8 isSecondary; + /*0x04*/ void *tiles; + /*0x08*/ void *palettes; + /*0x0c*/ void *metatiles; + /*0x10*/ void *metatileAttributes; + /*0x14*/ TilesetCB callback; }; struct MapData { + /*0x00*/ s32 width; + /*0x04*/ s32 height; + /*0x08*/ u16 *border; + /*0x0c*/ u16 *map; + /*0x10*/ struct Tileset *primaryTileset; + /*0x14*/ struct Tileset *secondaryTileset; +}; + +struct BackupMapData +{ s32 width; s32 height; - u16 *border; u16 *map; - struct Tileset *primaryTileset; - struct Tileset *secondaryTileset; }; struct MapObjectTemplate @@ -153,20 +160,20 @@ struct MapConnections struct MapHeader { - struct MapData *mapData; - struct MapEvents *events; - u8 *mapScripts; - struct MapConnections *connections; - u16 music; - u16 mapDataId; - u8 name; - u8 cave; - u8 weather; + /* 0x00 */ struct MapData *mapData; + /* 0x04 */ struct MapEvents *events; + /* 0x08 */ u8 *mapScripts; + /* 0x0C */ struct MapConnections *connections; + /* 0x10 */ u16 music; + /* 0x12 */ u16 mapDataId; + /* 0x14 */ u8 name; + /* 0x15 */ u8 cave; + /* 0x16 */ u8 weather; /* 0x17 */ u8 mapType; - u8 filler_18; - u8 escapeRope; - u8 flags; - u8 battleType; + /* 0x18 */ u8 filler_18; + /* 0x19 */ u8 escapeRope; + /* 0x1A */ u8 flags; + /* 0x1B */ u8 battleType; }; struct MapObject diff --git a/include/global.h b/include/global.h index 34946c895..9da4bd57c 100644..100755 --- a/include/global.h +++ b/include/global.h @@ -4,17 +4,45 @@ #include "gba/gba.h" #include "config.h" +// IDE support +#ifdef __APPLE__ +#define _(x) x +#define __(x) x +#define INCBIN_U8 {0} +#define INCBIN_U16 {0} +#define INCBIN_U32 {0} +#define INCBIN_S8 {0} +#define INCBIN_S16 {0} +#define INCBIN_S32 {0} +void * memcpy (void *, const void *, size_t); +void * memset (void *, int, size_t); +int strcmp (const char *, const char *); +#endif + // Prevent cross-jump optimization. #define BLOCK_CROSS_JUMP asm(""); // to help in decompiling #define asm_comment(x) asm volatile("@ -- " x " -- ") +#define asm_unified(x) asm(".syntax unified\n" x "\n.syntax divided\n") + +#define nonmatching(fndec, x) {\ +__attribute__((naked))\ +fndec\ +{\ + asm_unified(x);\ +}\ +} + #define ARRAY_COUNT(array) (sizeof(array) / sizeof((array)[0])) #define POKEMON_NAME_LENGTH 10 #define OT_NAME_LENGTH 7 +#define min(a, b) (a >= b ? a : b) +#define max(a, b) (a <= b ? a : b) + enum { VERSION_SAPPHIRE = 1, @@ -94,11 +122,11 @@ struct UCoords16 struct SecretBaseRecord { - /*0x1A08*/ u8 sbr_field_0; // ID? + /*ID?*/ /*0x1A08*/ u8 sbr_field_0; /*0x1A09*/ u8 sbr_field_1_0:4; /*0x1A09*/ u8 gender:1; /*0x1A09*/ u8 sbr_field_1_5:1; - /*0x1A09*/ u8 sbr_field_1_6:2; + /*0x1A09*/ u8 sbr_field_1_6:2; /*0x1A0A*/ u8 sbr_field_2[7]; // 0xFF bytes? /*0x1A12*/ u8 trainerId[4]; // byte 0 is used for determining trainer class /*0x1A16*/ u16 sbr_field_e; @@ -206,32 +234,6 @@ struct TVShowCommon { /*0x23*/ u8 trainerIdHi; }; -struct TVShowPokemonToday { - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; - /*0x02*/ u8 language; - /*0x03*/ u8 language2; - /*0x04*/ u8 nickname[11]; - /*0x0F*/ u8 ball; - /*0x10*/ u16 species; - /*0x12*/ u8 var12; - /*0x13*/ u8 playerName[8]; -}; - - -struct TVShowPokemonTodayFailed { - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; - /*0x02*/ u8 language; - /*0x03*/ u8 pad03[9]; - /*0x0c*/ u16 species; - /*0x0e*/ u16 species2; - /*0x10*/ u8 var10; - /*0x11*/ u8 var11; - /*0x12*/ u8 var12; - /*0x13*/ u8 playerName[8]; -}; - struct TVShowFanClubLetter { /*0x00*/ u8 var00; /*0x01*/ u8 var01; @@ -245,10 +247,10 @@ struct TVShowRecentHappenings { /*0x00*/ u8 var00; /*0x01*/ u8 var01; /*0x02*/ u16 var02; - /*0x04*/ u16 var04[6]; + /*0x04*/ u16 var04[6]; /*0x10*/ u8 playerName[8]; /*0x18*/ u8 language; - u8 pad19[10]; + /*0x19*/ u8 pad19[10]; }; struct TVShowFanclubOpinions { @@ -256,7 +258,7 @@ struct TVShowFanclubOpinions { /*0x01*/ u8 var01; /*0x02*/ u16 var02; /*0x04*/ u8 var04A:4; - u8 var04B:4; + /*0x04*/ u8 var04B:4; /*0x05*/ u8 playerName[8]; /*0x0D*/ u8 language; /*0x0E*/ u8 var0E; @@ -266,6 +268,13 @@ struct TVShowFanclubOpinions { /*0x1C*/ u16 var1C[4]; }; +struct TVShowUnknownType04 { + /*0x00*/ u8 var00; + /*0x01*/ u8 var01; + /*0x02*/ u8 pad02[4]; + /*0x06*/ u16 var06; +}; + struct TVShowNameRaterShow { /*0x00*/ u8 var00; /*0x01*/ u8 var01; @@ -279,23 +288,72 @@ struct TVShowNameRaterShow { /*0x1F*/ u8 pokemonNameLanguage; }; -struct TVShowMassOutbreak { +struct TVShowBravoTrainerPokemonProfiles { + /*0x00*/ u8 var00; + /*0x01*/ u8 var01; + /*0x02*/ u16 species; + /*0x04*/ u16 var04[2]; + /*0x08*/ u8 pokemonNickname[11]; + /*0x13*/ u8 contestCategory:3; + /*0x13*/ u8 contestRank:2; + /*0x13*/ u8 contestResult:2; + /*0x13*/ u8 var13_7:1; + /*0x14*/ u16 var14; + /*0x16*/ u8 playerName[8]; + /*0x1E*/ u8 language; + /*0x1F*/ u8 var1f; +}; + +struct TVShowBravoTrainerBattleTowerSpotlight { + /*0x00*/ u8 var00; + /*0x01*/ u8 var01; + /*0x02*/ u8 trainerName[8]; + /*0x0A*/ u16 species; + /*0x0C*/ u8 pokemonName[8]; + /*0x14*/ u16 defeatedSpecies; + /*0x16*/ u16 var16; + /*0x18*/ u16 var18[1]; + /*0x1A*/ u8 btLevel; + /*0x1B*/ u8 var1b; + /*0x1C*/ u8 var1c; + /*0x1D*/ u8 language; +}; + +struct TVShowPokemonToday { /*0x00*/ u8 var00; /*0x01*/ u8 var01; - /*0x02*/ u8 var02; - /*0x03*/ u8 var03; - /*0x04*/ u16 moves[4]; - /*0x0C*/ u16 species; - /*0x0E*/ u16 var0E; - /*0x10*/ u8 locationMapNum; - /*0x11*/ u8 locationMapGroup; + /*0x02*/ u8 language; + /*0x03*/ u8 language2; + /*0x04*/ u8 nickname[11]; + /*0x0F*/ u8 ball; + /*0x10*/ u16 species; /*0x12*/ u8 var12; - /*0x13*/ u8 probability; - /*0x14*/ u8 level; - /*0x15*/ u8 var15; - /*0x16*/ u16 var16; - /*0x18*/ u8 language; - u8 pad19[11]; + /*0x13*/ u8 playerName[8]; +}; + +struct TVShowSmartShopper { + /*0x00*/ u8 var00; + /*0x01*/ u8 var01; + /*0x02*/ u8 priceReduced; + /*0x03*/ u8 language; + /*0x04*/ u8 pad04[2]; + /*0x06*/ u16 itemIds[3]; + /*0x0C*/ u16 itemAmounts[3]; + /*0x12*/ u8 shopLocation; + /*0x13*/ u8 playerName[8]; +}; + +struct TVShowPokemonTodayFailed { + /*0x00*/ u8 var00; + /*0x01*/ u8 var01; + /*0x02*/ u8 language; + /*0x03*/ u8 pad03[9]; + /*0x0c*/ u16 species; + /*0x0e*/ u16 species2; + /*0x10*/ u8 var10; + /*0x11*/ u8 var11; + /*0x12*/ u8 var12; + /*0x13*/ u8 playerName[8]; }; struct TVShowPokemonAngler { @@ -322,47 +380,23 @@ struct TVShowWorldOfMasters { /*0x13*/ u8 playerName[8]; }; -struct TVShowSmartShopper { - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; - /*0x02*/ u8 priceReduced; - /*0x03*/ u8 language; - /*0x04*/ u8 pad04[2]; - /*0x06*/ u16 itemIds[3]; - /*0x0C*/ u16 itemAmounts[3]; - /*0x12*/ u8 shopLocation; - /*0x13*/ u8 playerName[8]; -}; - -struct TVShowBravoTrainerPokemonProfiles { - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; - /*0x02*/ u16 species; - /*0x04*/ u16 var04[2]; - /*0x08*/ u8 pokemonNickname[11]; - /*0x13*/ u8 contestCategory:3; - /*0x13*/ u8 contestRank:2; - /*0x13*/ u8 var13_5:2; - /*0x13*/ u8 var13_7:1; - /*0x14*/ u16 var14; - /*0x16*/ u8 playerName[8]; - /*0x1E*/ u8 language; - /*0x1F*/ u8 var1f; -}; - -struct TVShowBravoTrainerBattleTowerSpotlight { - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; - /*0x02*/ u8 trainerName[8]; - /*0x0A*/ u16 species; - /*0x0C*/ u8 pokemonName[8]; - /*0x14*/ u16 winningMove; - /*0x16*/ u16 var16; - /*0x18*/ u16 var18[1]; - /*0x1A*/ u8 btLevel; - /*0x1B*/ u8 var1b; - /*0x1C*/ u8 var1c; - /*0x1D*/ u8 language; +struct TVShowMassOutbreak { + /*0x00*/ u8 var00; + /*0x01*/ u8 var01; + /*0x02*/ u8 var02; + /*0x03*/ u8 var03; + /*0x04*/ u16 moves[4]; + /*0x0C*/ u16 species; + /*0x0E*/ u16 var0E; + /*0x10*/ u8 locationMapNum; + /*0x11*/ u8 locationMapGroup; + /*0x12*/ u8 var12; + /*0x13*/ u8 probability; + /*0x14*/ u8 level; + /*0x15*/ u8 var15; + /*0x16*/ u16 var16; + /*0x18*/ u8 language; + u8 pad19[11]; }; typedef union TVShow { @@ -370,15 +404,16 @@ typedef union TVShow { struct TVShowFanClubLetter fanclubLetter; struct TVShowRecentHappenings recentHappenings; struct TVShowFanclubOpinions fanclubOpinions; + struct TVShowUnknownType04 unkShow04; struct TVShowNameRaterShow nameRaterShow; - struct TVShowMassOutbreak massOutbreak; - struct TVShowPokemonAngler pokemonAngler; - struct TVShowWorldOfMasters worldOfMasters; - struct TVShowSmartShopper smartshopperShow; struct TVShowBravoTrainerPokemonProfiles bravoTrainer; struct TVShowBravoTrainerBattleTowerSpotlight bravoTrainerTower; struct TVShowPokemonToday pokemonToday; + struct TVShowSmartShopper smartshopperShow; struct TVShowPokemonTodayFailed pokemonTodayFailed; + struct TVShowPokemonAngler pokemonAngler; + struct TVShowWorldOfMasters worldOfMasters; + struct TVShowMassOutbreak massOutbreak; } TVShow; struct MailStruct @@ -438,34 +473,41 @@ typedef union SB_Struct { } SB_Struct; // size is 0x198 -struct SaveTVStruct { - TVShow shows[24]; - TVShow unknown_2A98; -}; - struct UnknownSaveStruct2ABC { - u8 val0; - u8 val1; - u16 val2; + u8 val0; + u8 val1; + u16 val2; }; struct GabbyAndTyData { - u16 mon1; - u16 mon2; - u16 move1; - u16 move2; - u8 mapnum; - u8 val9; - u8 valA_0:1; - u8 valA_1:1; - u8 valA_2:1; - u8 valA_3:1; - u8 valA_4:4; - u8 valB; + /*2b10*/ u16 mon1; + /*2b12*/ u16 mon2; + /*2b14*/ u16 lastMove; + /*2b16*/ u16 quote; + /*2b18*/ u8 mapnum; + /*2b19*/ u8 battleNum; + /*2b1a*/ u8 valA_0:1; + /*2b1a*/ u8 valA_1:1; + /*2b1a*/ u8 valA_2:1; + /*2b1a*/ u8 valA_3:1; + /*2b1a*/ u8 valA_4:1; + /*2b1a*/ u8 valA_5:3; + /*2b1b*/ u8 valB_0:1; + /*2b1b*/ u8 valB_1:1; + /*2b1b*/ u8 valB_2:1; + /*2b1b*/ u8 valB_3:1; + /*2b1b*/ u8 valB_4:1; + /*2b1b*/ u8 valB_5:3; +}; + +struct RecordMixing_UnknownStructSub { + u8 data[0x38]; }; struct RecordMixing_UnknownStruct { - u8 data[0x38]; + struct RecordMixing_UnknownStructSub data[2]; + u32 unk70; + u16 unk74[0x2]; }; struct SaveBlock1 /* 0x02025734 */ @@ -517,7 +559,7 @@ struct SaveBlock1 /* 0x02025734 */ /*0x2704*/ u8 decorDoll[40]; /*0x272C*/ u8 decorCushion[10]; /*0x2736*/ u8 padding_2736[2]; - /*0x2738*/ struct SaveTVStruct tvShows; + /*0x2738*/ TVShow tvShows[25]; /*0x2ABC*/ struct UnknownSaveStruct2ABC unknown_2ABC[16]; /*0x2AFC*/ u16 outbreakPokemonSpecies; /*0x2AFE*/ u8 outbreakLocationMapNum; @@ -529,7 +571,7 @@ struct SaveBlock1 /* 0x02025734 */ /*0x2B0C*/ u8 outbreakUnk4; /*0x2B0D*/ u8 outbreakPokemonProbability; /*0x2B0E*/ u16 outbreakUnk5; - /*0x2B18*/ struct GabbyAndTyData gabbyAndTyData; + /*0x2B10*/ struct GabbyAndTyData gabbyAndTyData; /*0x2B1C*/ u16 unk2B1C[6]; /*0x2B28*/ u16 unk2B28[6]; /*0x2B34*/ u16 unk2B34[6]; @@ -543,8 +585,8 @@ struct SaveBlock1 /* 0x02025734 */ /*0x2DFC*/ u8 filler_2DFC[0x8]; /*0x2E04*/ SB_Struct sbStruct; /*0x2F9C*/ struct BoxPokemon daycareData[2]; - /*0x303C*/ struct RecordMixing_UnknownStruct filler_303C[2]; - /*0x30AC*/ u8 filler_30AC[0xA]; + /*0x303C*/ struct RecordMixing_UnknownStruct filler_303C; + /*0x30AC*/ u8 filler_30B4[0x2]; /*0x30B6*/ u8 filler_30B6; /*0x30B7*/ u8 filler_30B7[1]; /*0x30B8*/ u8 linkBattleRecords[5][16]; @@ -584,8 +626,8 @@ struct Pokedex struct SaveBlock2_Sub { /*0x0000, 0x00A4*/ u8 filler_000[0x3D8]; - /*0x03D8, 0x0480*/ u16 var_480; - /*0x03DA, 0x0482*/ u16 var_482; + /*0x03D8, 0x0480*/ u16 var_480; + /*0x03DA, 0x0482*/ u16 var_482; /*0x03DC, 0x0484*/ u8 filler_3DC[0xD1]; /*0x04AD, 0x0555*/ u8 var_4AD; /*0x04AE, 0x0556*/ u8 var_4AE; @@ -612,11 +654,11 @@ struct SaveBlock2 /* 0x02024EA4 */ /*0x10*/ u8 playTimeMinutes; /*0x11*/ u8 playTimeSeconds; /*0x12*/ u8 playTimeVBlanks; - /*0x13*/ u8 optionsButtonMode; // OPTIONS_BUTTON_MODE_[NORMAL/LR/L_EQUALS_A] - /*0x14*/ u16 optionsTextSpeed:3; // OPTIONS_TEXT_SPEED_[SLOW/MID/FAST] + /*OPTIONS_BUTTON_MODE_[NORMAL/LR/L_EQUALS_A]*/ /*0x13*/ u8 optionsButtonMode; + /*OPTIONS_TEXT_SPEED_[SLOW/MID/FAST]*/ /*0x14*/ u16 optionsTextSpeed:3; u16 optionsWindowFrameType:5; // Specifies one of the 20 decorative borders for text boxes - u16 optionsSound:1; // OPTIONS_SOUND_[MONO/STEREO] - u16 optionsBattleStyle:1; // OPTIONS_BATTLE_STYLE_[SHIFT/SET] + /*OPTIONS_SOUND_[MONO/STEREO]*/ u16 optionsSound:1; + /*OPTIONS_BATTLE_STYLE_[SHIFT/SET]*/ u16 optionsBattleStyle:1; u16 optionsBattleSceneOff:1; // whether battle animations are disabled u16 regionMapZoom:1; // whether the map is zoomed in /*0x18*/ struct Pokedex pokedex; diff --git a/include/graphics.h b/include/graphics.h new file mode 100644 index 000000000..c3fe20996 --- /dev/null +++ b/include/graphics.h @@ -0,0 +1,2438 @@ +#ifndef GUARD_GRAPHICS_H +#define GUARD_GRAPHICS_H + +// data/graphics.s +extern const u8 gInterfaceGfx_PokeBall[]; +extern const u8 gInterfacePal_PokeBall[]; +extern const u8 gInterfaceGfx_GreatBall[]; +extern const u8 gInterfacePal_GreatBall[]; +extern const u8 gInterfaceGfx_SafariBall[]; +extern const u8 gInterfacePal_SafariBall[]; +extern const u8 gInterfaceGfx_UltraBall[]; +extern const u8 gInterfacePal_UltraBall[]; +extern const u8 gInterfaceGfx_MasterBall[]; +extern const u8 gInterfacePal_MasterBall[]; +extern const u8 gInterfaceGfx_NetBall[]; +extern const u8 gInterfacePal_NetBall[]; +extern const u8 gInterfaceGfx_DiveBall[]; +extern const u8 gInterfacePal_DiveBall[]; +extern const u8 gInterfaceGfx_NestBall[]; +extern const u8 gInterfacePal_NestBall[]; +extern const u8 gInterfaceGfx_RepeatBall[]; +extern const u8 gInterfacePal_RepeatBall[]; +extern const u8 gInterfaceGfx_TimerBall[]; +extern const u8 gInterfacePal_TimerBall[]; +extern const u8 gInterfaceGfx_LuxuryBall[]; +extern const u8 gInterfacePal_LuxuryBall[]; +extern const u8 gInterfaceGfx_PremierBall[]; +extern const u8 gInterfacePal_PremierBall[]; +extern const u8 gUnknown_08D030D0[]; + +extern const u8 gMonFootprint_QuestionMark[]; + +// data/graphics/pokemon/graphics.inc +extern const u8 gMonFrontPic_Bulbasaur[]; +extern const u8 gMonPalette_Bulbasaur[]; +extern const u8 gMonBackPic_Bulbasaur[]; +extern const u8 gMonShinyPalette_Bulbasaur[]; +extern const u8 gMonIcon_Bulbasaur[]; +extern const u8 gMonFootprint_Bulbasaur[]; +extern const u8 gMonFrontPic_Ivysaur[]; +extern const u8 gMonPalette_Ivysaur[]; +extern const u8 gMonBackPic_Ivysaur[]; +extern const u8 gMonShinyPalette_Ivysaur[]; +extern const u8 gMonIcon_Ivysaur[]; +extern const u8 gMonFootprint_Ivysaur[]; +extern const u8 gMonFrontPic_Venusaur[]; +extern const u8 gMonPalette_Venusaur[]; +extern const u8 gMonBackPic_Venusaur[]; +extern const u8 gMonShinyPalette_Venusaur[]; +extern const u8 gMonIcon_Venusaur[]; +extern const u8 gMonFootprint_Venusaur[]; +extern const u8 gMonFrontPic_Charmander[]; +extern const u8 gMonPalette_Charmander[]; +extern const u8 gMonBackPic_Charmander[]; +extern const u8 gMonShinyPalette_Charmander[]; +extern const u8 gMonIcon_Charmander[]; +extern const u8 gMonFootprint_Charmander[]; +extern const u8 gMonFrontPic_Charmeleon[]; +extern const u8 gMonPalette_Charmeleon[]; +extern const u8 gMonBackPic_Charmeleon[]; +extern const u8 gMonShinyPalette_Charmeleon[]; +extern const u8 gMonIcon_Charmeleon[]; +extern const u8 gMonFootprint_Charmeleon[]; +extern const u8 gMonFrontPic_Charizard[]; +extern const u8 gMonPalette_Charizard[]; +extern const u8 gMonBackPic_Charizard[]; +extern const u8 gMonShinyPalette_Charizard[]; +extern const u8 gMonIcon_Charizard[]; +extern const u8 gMonFootprint_Charizard[]; +extern const u8 gMonFrontPic_Squirtle[]; +extern const u8 gMonPalette_Squirtle[]; +extern const u8 gMonBackPic_Squirtle[]; +extern const u8 gMonShinyPalette_Squirtle[]; +extern const u8 gMonIcon_Squirtle[]; +extern const u8 gMonFootprint_Squirtle[]; +extern const u8 gMonFrontPic_Wartortle[]; +extern const u8 gMonPalette_Wartortle[]; +extern const u8 gMonBackPic_Wartortle[]; +extern const u8 gMonShinyPalette_Wartortle[]; +extern const u8 gMonIcon_Wartortle[]; +extern const u8 gMonFootprint_Wartortle[]; +extern const u8 gMonFrontPic_Blastoise[]; +extern const u8 gMonPalette_Blastoise[]; +extern const u8 gMonBackPic_Blastoise[]; +extern const u8 gMonShinyPalette_Blastoise[]; +extern const u8 gMonIcon_Blastoise[]; +extern const u8 gMonFootprint_Blastoise[]; +extern const u8 gMonFrontPic_Caterpie[]; +extern const u8 gMonPalette_Caterpie[]; +extern const u8 gMonBackPic_Caterpie[]; +extern const u8 gMonShinyPalette_Caterpie[]; +extern const u8 gMonIcon_Caterpie[]; +extern const u8 gMonFootprint_Caterpie[]; +extern const u8 gMonFrontPic_Metapod[]; +extern const u8 gMonPalette_Metapod[]; +extern const u8 gMonBackPic_Metapod[]; +extern const u8 gMonShinyPalette_Metapod[]; +extern const u8 gMonIcon_Metapod[]; +extern const u8 gMonFootprint_Metapod[]; +extern const u8 gMonFrontPic_Butterfree[]; +extern const u8 gMonPalette_Butterfree[]; +extern const u8 gMonBackPic_Butterfree[]; +extern const u8 gMonShinyPalette_Butterfree[]; +extern const u8 gMonIcon_Butterfree[]; +extern const u8 gMonFootprint_Butterfree[]; +extern const u8 gMonFrontPic_Weedle[]; +extern const u8 gMonPalette_Weedle[]; +extern const u8 gMonBackPic_Weedle[]; +extern const u8 gMonShinyPalette_Weedle[]; +extern const u8 gMonIcon_Weedle[]; +extern const u8 gMonFootprint_Weedle[]; +extern const u8 gMonFrontPic_Kakuna[]; +extern const u8 gMonPalette_Kakuna[]; +extern const u8 gMonBackPic_Kakuna[]; +extern const u8 gMonShinyPalette_Kakuna[]; +extern const u8 gMonIcon_Kakuna[]; +extern const u8 gMonFootprint_Kakuna[]; +extern const u8 gMonFrontPic_Beedrill[]; +extern const u8 gMonPalette_Beedrill[]; +extern const u8 gMonBackPic_Beedrill[]; +extern const u8 gMonShinyPalette_Beedrill[]; +extern const u8 gMonIcon_Beedrill[]; +extern const u8 gMonFootprint_Beedrill[]; +extern const u8 gMonFrontPic_Pidgey[]; +extern const u8 gMonPalette_Pidgey[]; +extern const u8 gMonBackPic_Pidgey[]; +extern const u8 gMonShinyPalette_Pidgey[]; +extern const u8 gMonIcon_Pidgey[]; +extern const u8 gMonFootprint_Pidgey[]; +extern const u8 gMonFrontPic_Pidgeotto[]; +extern const u8 gMonPalette_Pidgeotto[]; +extern const u8 gMonBackPic_Pidgeotto[]; +extern const u8 gMonShinyPalette_Pidgeotto[]; +extern const u8 gMonIcon_Pidgeotto[]; +extern const u8 gMonFootprint_Pidgeotto[]; +extern const u8 gMonFrontPic_Pidgeot[]; +extern const u8 gMonPalette_Pidgeot[]; +extern const u8 gMonBackPic_Pidgeot[]; +extern const u8 gMonShinyPalette_Pidgeot[]; +extern const u8 gMonIcon_Pidgeot[]; +extern const u8 gMonFootprint_Pidgeot[]; +extern const u8 gMonFrontPic_Rattata[]; +extern const u8 gMonPalette_Rattata[]; +extern const u8 gMonBackPic_Rattata[]; +extern const u8 gMonShinyPalette_Rattata[]; +extern const u8 gMonIcon_Rattata[]; +extern const u8 gMonFootprint_Rattata[]; +extern const u8 gMonFrontPic_Raticate[]; +extern const u8 gMonPalette_Raticate[]; +extern const u8 gMonBackPic_Raticate[]; +extern const u8 gMonShinyPalette_Raticate[]; +extern const u8 gMonIcon_Raticate[]; +extern const u8 gMonFootprint_Raticate[]; +extern const u8 gMonFrontPic_Spearow[]; +extern const u8 gMonPalette_Spearow[]; +extern const u8 gMonBackPic_Spearow[]; +extern const u8 gMonShinyPalette_Spearow[]; +extern const u8 gMonIcon_Spearow[]; +extern const u8 gMonFootprint_Spearow[]; +extern const u8 gMonFrontPic_Fearow[]; +extern const u8 gMonPalette_Fearow[]; +extern const u8 gMonBackPic_Fearow[]; +extern const u8 gMonShinyPalette_Fearow[]; +extern const u8 gMonIcon_Fearow[]; +extern const u8 gMonFootprint_Fearow[]; +extern const u8 gMonFrontPic_Ekans[]; +extern const u8 gMonPalette_Ekans[]; +extern const u8 gMonBackPic_Ekans[]; +extern const u8 gMonShinyPalette_Ekans[]; +extern const u8 gMonIcon_Ekans[]; +extern const u8 gMonFootprint_Ekans[]; +extern const u8 gMonFrontPic_Arbok[]; +extern const u8 gMonPalette_Arbok[]; +extern const u8 gMonBackPic_Arbok[]; +extern const u8 gMonShinyPalette_Arbok[]; +extern const u8 gMonIcon_Arbok[]; +extern const u8 gMonFootprint_Arbok[]; +extern const u8 gMonFrontPic_Pikachu[]; +extern const u8 gMonPalette_Pikachu[]; +extern const u8 gMonBackPic_Pikachu[]; +extern const u8 gMonShinyPalette_Pikachu[]; +extern const u8 gMonIcon_Pikachu[]; +extern const u8 gMonFootprint_Pikachu[]; +extern const u8 gMonFrontPic_Raichu[]; +extern const u8 gMonPalette_Raichu[]; +extern const u8 gMonBackPic_Raichu[]; +extern const u8 gMonShinyPalette_Raichu[]; +extern const u8 gMonIcon_Raichu[]; +extern const u8 gMonFootprint_Raichu[]; +extern const u8 gMonFrontPic_Sandshrew[]; +extern const u8 gMonPalette_Sandshrew[]; +extern const u8 gMonBackPic_Sandshrew[]; +extern const u8 gMonShinyPalette_Sandshrew[]; +extern const u8 gMonIcon_Sandshrew[]; +extern const u8 gMonFootprint_Sandshrew[]; +extern const u8 gMonFrontPic_Sandslash[]; +extern const u8 gMonPalette_Sandslash[]; +extern const u8 gMonBackPic_Sandslash[]; +extern const u8 gMonShinyPalette_Sandslash[]; +extern const u8 gMonIcon_Sandslash[]; +extern const u8 gMonFootprint_Sandslash[]; +extern const u8 gMonFrontPic_NidoranF[]; +extern const u8 gMonPalette_NidoranF[]; +extern const u8 gMonBackPic_NidoranF[]; +extern const u8 gMonShinyPalette_NidoranF[]; +extern const u8 gMonIcon_NidoranF[]; +extern const u8 gMonFootprint_NidoranF[]; +extern const u8 gMonFrontPic_Nidorina[]; +extern const u8 gMonPalette_Nidorina[]; +extern const u8 gMonBackPic_Nidorina[]; +extern const u8 gMonShinyPalette_Nidorina[]; +extern const u8 gMonIcon_Nidorina[]; +extern const u8 gMonFootprint_Nidorina[]; +extern const u8 gMonFrontPic_Nidoqueen[]; +extern const u8 gMonPalette_Nidoqueen[]; +extern const u8 gMonBackPic_Nidoqueen[]; +extern const u8 gMonShinyPalette_Nidoqueen[]; +extern const u8 gMonIcon_Nidoqueen[]; +extern const u8 gMonFootprint_Nidoqueen[]; +extern const u8 gMonFrontPic_NidoranM[]; +extern const u8 gMonPalette_NidoranM[]; +extern const u8 gMonBackPic_NidoranM[]; +extern const u8 gMonShinyPalette_NidoranM[]; +extern const u8 gMonIcon_NidoranM[]; +extern const u8 gMonFootprint_NidoranM[]; +extern const u8 gMonFrontPic_Nidorino[]; +extern const u8 gMonPalette_Nidorino[]; +extern const u8 gMonBackPic_Nidorino[]; +extern const u8 gMonShinyPalette_Nidorino[]; +extern const u8 gMonIcon_Nidorino[]; +extern const u8 gMonFootprint_Nidorino[]; +extern const u8 gMonFrontPic_Nidoking[]; +extern const u8 gMonPalette_Nidoking[]; +extern const u8 gMonBackPic_Nidoking[]; +extern const u8 gMonShinyPalette_Nidoking[]; +extern const u8 gMonIcon_Nidoking[]; +extern const u8 gMonFootprint_Nidoking[]; +extern const u8 gMonFrontPic_Clefairy[]; +extern const u8 gMonPalette_Clefairy[]; +extern const u8 gMonBackPic_Clefairy[]; +extern const u8 gMonShinyPalette_Clefairy[]; +extern const u8 gMonIcon_Clefairy[]; +extern const u8 gMonFootprint_Clefairy[]; +extern const u8 gMonFrontPic_Clefable[]; +extern const u8 gMonPalette_Clefable[]; +extern const u8 gMonBackPic_Clefable[]; +extern const u8 gMonShinyPalette_Clefable[]; +extern const u8 gMonIcon_Clefable[]; +extern const u8 gMonFootprint_Clefable[]; +extern const u8 gMonFrontPic_Vulpix[]; +extern const u8 gMonPalette_Vulpix[]; +extern const u8 gMonBackPic_Vulpix[]; +extern const u8 gMonShinyPalette_Vulpix[]; +extern const u8 gMonIcon_Vulpix[]; +extern const u8 gMonFootprint_Vulpix[]; +extern const u8 gMonFrontPic_Ninetales[]; +extern const u8 gMonPalette_Ninetales[]; +extern const u8 gMonBackPic_Ninetales[]; +extern const u8 gMonShinyPalette_Ninetales[]; +extern const u8 gMonIcon_Ninetales[]; +extern const u8 gMonFootprint_Ninetales[]; +extern const u8 gMonFrontPic_Jigglypuff[]; +extern const u8 gMonPalette_Jigglypuff[]; +extern const u8 gMonBackPic_Jigglypuff[]; +extern const u8 gMonShinyPalette_Jigglypuff[]; +extern const u8 gMonIcon_Jigglypuff[]; +extern const u8 gMonFootprint_Jigglypuff[]; +extern const u8 gMonFrontPic_Wigglytuff[]; +extern const u8 gMonPalette_Wigglytuff[]; +extern const u8 gMonBackPic_Wigglytuff[]; +extern const u8 gMonShinyPalette_Wigglytuff[]; +extern const u8 gMonIcon_Wigglytuff[]; +extern const u8 gMonFootprint_Wigglytuff[]; +extern const u8 gMonFrontPic_Zubat[]; +extern const u8 gMonPalette_Zubat[]; +extern const u8 gMonBackPic_Zubat[]; +extern const u8 gMonShinyPalette_Zubat[]; +extern const u8 gMonIcon_Zubat[]; +extern const u8 gMonFootprint_Zubat[]; +extern const u8 gMonFrontPic_Golbat[]; +extern const u8 gMonPalette_Golbat[]; +extern const u8 gMonBackPic_Golbat[]; +extern const u8 gMonShinyPalette_Golbat[]; +extern const u8 gMonIcon_Golbat[]; +extern const u8 gMonFootprint_Golbat[]; +extern const u8 gMonFrontPic_Oddish[]; +extern const u8 gMonPalette_Oddish[]; +extern const u8 gMonBackPic_Oddish[]; +extern const u8 gMonShinyPalette_Oddish[]; +extern const u8 gMonIcon_Oddish[]; +extern const u8 gMonFootprint_Oddish[]; +extern const u8 gMonFrontPic_Gloom[]; +extern const u8 gMonPalette_Gloom[]; +extern const u8 gMonBackPic_Gloom[]; +extern const u8 gMonShinyPalette_Gloom[]; +extern const u8 gMonIcon_Gloom[]; +extern const u8 gMonFootprint_Gloom[]; +extern const u8 gMonFrontPic_Vileplume[]; +extern const u8 gMonPalette_Vileplume[]; +extern const u8 gMonBackPic_Vileplume[]; +extern const u8 gMonShinyPalette_Vileplume[]; +extern const u8 gMonIcon_Vileplume[]; +extern const u8 gMonFootprint_Vileplume[]; +extern const u8 gMonFrontPic_Paras[]; +extern const u8 gMonPalette_Paras[]; +extern const u8 gMonBackPic_Paras[]; +extern const u8 gMonShinyPalette_Paras[]; +extern const u8 gMonIcon_Paras[]; +extern const u8 gMonFootprint_Paras[]; +extern const u8 gMonFrontPic_Parasect[]; +extern const u8 gMonPalette_Parasect[]; +extern const u8 gMonBackPic_Parasect[]; +extern const u8 gMonShinyPalette_Parasect[]; +extern const u8 gMonIcon_Parasect[]; +extern const u8 gMonFootprint_Parasect[]; +extern const u8 gMonFrontPic_Venonat[]; +extern const u8 gMonPalette_Venonat[]; +extern const u8 gMonBackPic_Venonat[]; +extern const u8 gMonShinyPalette_Venonat[]; +extern const u8 gMonIcon_Venonat[]; +extern const u8 gMonFootprint_Venonat[]; +extern const u8 gMonFrontPic_Venomoth[]; +extern const u8 gMonPalette_Venomoth[]; +extern const u8 gMonBackPic_Venomoth[]; +extern const u8 gMonShinyPalette_Venomoth[]; +extern const u8 gMonIcon_Venomoth[]; +extern const u8 gMonFootprint_Venomoth[]; +extern const u8 gMonFrontPic_Diglett[]; +extern const u8 gMonPalette_Diglett[]; +extern const u8 gMonBackPic_Diglett[]; +extern const u8 gMonShinyPalette_Diglett[]; +extern const u8 gMonIcon_Diglett[]; +extern const u8 gMonFootprint_Diglett[]; +extern const u8 gMonFrontPic_Dugtrio[]; +extern const u8 gMonPalette_Dugtrio[]; +extern const u8 gMonBackPic_Dugtrio[]; +extern const u8 gMonShinyPalette_Dugtrio[]; +extern const u8 gMonIcon_Dugtrio[]; +extern const u8 gMonFootprint_Dugtrio[]; +extern const u8 gMonFrontPic_Meowth[]; +extern const u8 gMonPalette_Meowth[]; +extern const u8 gMonBackPic_Meowth[]; +extern const u8 gMonShinyPalette_Meowth[]; +extern const u8 gMonIcon_Meowth[]; +extern const u8 gMonFootprint_Meowth[]; +extern const u8 gMonFrontPic_Persian[]; +extern const u8 gMonPalette_Persian[]; +extern const u8 gMonBackPic_Persian[]; +extern const u8 gMonShinyPalette_Persian[]; +extern const u8 gMonIcon_Persian[]; +extern const u8 gMonFootprint_Persian[]; +extern const u8 gMonFrontPic_Psyduck[]; +extern const u8 gMonPalette_Psyduck[]; +extern const u8 gMonBackPic_Psyduck[]; +extern const u8 gMonShinyPalette_Psyduck[]; +extern const u8 gMonIcon_Psyduck[]; +extern const u8 gMonFootprint_Psyduck[]; +extern const u8 gMonFrontPic_Golduck[]; +extern const u8 gMonPalette_Golduck[]; +extern const u8 gMonBackPic_Golduck[]; +extern const u8 gMonShinyPalette_Golduck[]; +extern const u8 gMonIcon_Golduck[]; +extern const u8 gMonFootprint_Golduck[]; +extern const u8 gMonFrontPic_Mankey[]; +extern const u8 gMonPalette_Mankey[]; +extern const u8 gMonBackPic_Mankey[]; +extern const u8 gMonShinyPalette_Mankey[]; +extern const u8 gMonIcon_Mankey[]; +extern const u8 gMonFootprint_Mankey[]; +extern const u8 gMonFrontPic_Primeape[]; +extern const u8 gMonPalette_Primeape[]; +extern const u8 gMonBackPic_Primeape[]; +extern const u8 gMonShinyPalette_Primeape[]; +extern const u8 gMonIcon_Primeape[]; +extern const u8 gMonFootprint_Primeape[]; +extern const u8 gMonFrontPic_Growlithe[]; +extern const u8 gMonPalette_Growlithe[]; +extern const u8 gMonBackPic_Growlithe[]; +extern const u8 gMonShinyPalette_Growlithe[]; +extern const u8 gMonIcon_Growlithe[]; +extern const u8 gMonFootprint_Growlithe[]; +extern const u8 gMonFrontPic_Arcanine[]; +extern const u8 gMonPalette_Arcanine[]; +extern const u8 gMonBackPic_Arcanine[]; +extern const u8 gMonShinyPalette_Arcanine[]; +extern const u8 gMonIcon_Arcanine[]; +extern const u8 gMonFootprint_Arcanine[]; +extern const u8 gMonFrontPic_Poliwag[]; +extern const u8 gMonPalette_Poliwag[]; +extern const u8 gMonBackPic_Poliwag[]; +extern const u8 gMonShinyPalette_Poliwag[]; +extern const u8 gMonIcon_Poliwag[]; +extern const u8 gMonFootprint_Poliwag[]; +extern const u8 gMonFrontPic_Poliwhirl[]; +extern const u8 gMonPalette_Poliwhirl[]; +extern const u8 gMonBackPic_Poliwhirl[]; +extern const u8 gMonShinyPalette_Poliwhirl[]; +extern const u8 gMonIcon_Poliwhirl[]; +extern const u8 gMonFootprint_Poliwhirl[]; +extern const u8 gMonFrontPic_Poliwrath[]; +extern const u8 gMonPalette_Poliwrath[]; +extern const u8 gMonBackPic_Poliwrath[]; +extern const u8 gMonShinyPalette_Poliwrath[]; +extern const u8 gMonIcon_Poliwrath[]; +extern const u8 gMonFootprint_Poliwrath[]; +extern const u8 gMonFrontPic_Abra[]; +extern const u8 gMonPalette_Abra[]; +extern const u8 gMonBackPic_Abra[]; +extern const u8 gMonShinyPalette_Abra[]; +extern const u8 gMonIcon_Abra[]; +extern const u8 gMonFootprint_Abra[]; +extern const u8 gMonFrontPic_Kadabra[]; +extern const u8 gMonPalette_Kadabra[]; +extern const u8 gMonBackPic_Kadabra[]; +extern const u8 gMonShinyPalette_Kadabra[]; +extern const u8 gMonIcon_Kadabra[]; +extern const u8 gMonFootprint_Kadabra[]; +extern const u8 gMonFrontPic_Alakazam[]; +extern const u8 gMonPalette_Alakazam[]; +extern const u8 gMonBackPic_Alakazam[]; +extern const u8 gMonShinyPalette_Alakazam[]; +extern const u8 gMonIcon_Alakazam[]; +extern const u8 gMonFootprint_Alakazam[]; +extern const u8 gMonFrontPic_Machop[]; +extern const u8 gMonPalette_Machop[]; +extern const u8 gMonBackPic_Machop[]; +extern const u8 gMonShinyPalette_Machop[]; +extern const u8 gMonIcon_Machop[]; +extern const u8 gMonFootprint_Machop[]; +extern const u8 gMonFrontPic_Machoke[]; +extern const u8 gMonPalette_Machoke[]; +extern const u8 gMonBackPic_Machoke[]; +extern const u8 gMonShinyPalette_Machoke[]; +extern const u8 gMonIcon_Machoke[]; +extern const u8 gMonFootprint_Machoke[]; +extern const u8 gMonFrontPic_Machamp[]; +extern const u8 gMonPalette_Machamp[]; +extern const u8 gMonBackPic_Machamp[]; +extern const u8 gMonShinyPalette_Machamp[]; +extern const u8 gMonIcon_Machamp[]; +extern const u8 gMonFootprint_Machamp[]; +extern const u8 gMonFrontPic_Bellsprout[]; +extern const u8 gMonPalette_Bellsprout[]; +extern const u8 gMonBackPic_Bellsprout[]; +extern const u8 gMonShinyPalette_Bellsprout[]; +extern const u8 gMonIcon_Bellsprout[]; +extern const u8 gMonFootprint_Bellsprout[]; +extern const u8 gMonFrontPic_Weepinbell[]; +extern const u8 gMonPalette_Weepinbell[]; +extern const u8 gMonBackPic_Weepinbell[]; +extern const u8 gMonShinyPalette_Weepinbell[]; +extern const u8 gMonIcon_Weepinbell[]; +extern const u8 gMonFootprint_Weepinbell[]; +extern const u8 gMonFrontPic_Victreebel[]; +extern const u8 gMonPalette_Victreebel[]; +extern const u8 gMonBackPic_Victreebel[]; +extern const u8 gMonShinyPalette_Victreebel[]; +extern const u8 gMonIcon_Victreebel[]; +extern const u8 gMonFootprint_Victreebel[]; +extern const u8 gMonFrontPic_Tentacool[]; +extern const u8 gMonPalette_Tentacool[]; +extern const u8 gMonBackPic_Tentacool[]; +extern const u8 gMonShinyPalette_Tentacool[]; +extern const u8 gMonIcon_Tentacool[]; +extern const u8 gMonFootprint_Tentacool[]; +extern const u8 gMonFrontPic_Tentacruel[]; +extern const u8 gMonPalette_Tentacruel[]; +extern const u8 gMonBackPic_Tentacruel[]; +extern const u8 gMonShinyPalette_Tentacruel[]; +extern const u8 gMonIcon_Tentacruel[]; +extern const u8 gMonFootprint_Tentacruel[]; +extern const u8 gMonFrontPic_Geodude[]; +extern const u8 gMonPalette_Geodude[]; +extern const u8 gMonBackPic_Geodude[]; +extern const u8 gMonShinyPalette_Geodude[]; +extern const u8 gMonIcon_Geodude[]; +extern const u8 gMonFootprint_Geodude[]; +extern const u8 gMonFrontPic_Graveler[]; +extern const u8 gMonPalette_Graveler[]; +extern const u8 gMonBackPic_Graveler[]; +extern const u8 gMonShinyPalette_Graveler[]; +extern const u8 gMonIcon_Graveler[]; +extern const u8 gMonFootprint_Graveler[]; +extern const u8 gMonFrontPic_Golem[]; +extern const u8 gMonPalette_Golem[]; +extern const u8 gMonBackPic_Golem[]; +extern const u8 gMonShinyPalette_Golem[]; +extern const u8 gMonIcon_Golem[]; +extern const u8 gMonFootprint_Golem[]; +extern const u8 gMonFrontPic_Ponyta[]; +extern const u8 gMonPalette_Ponyta[]; +extern const u8 gMonBackPic_Ponyta[]; +extern const u8 gMonShinyPalette_Ponyta[]; +extern const u8 gMonIcon_Ponyta[]; +extern const u8 gMonFootprint_Ponyta[]; +extern const u8 gMonFrontPic_Rapidash[]; +extern const u8 gMonPalette_Rapidash[]; +extern const u8 gMonBackPic_Rapidash[]; +extern const u8 gMonShinyPalette_Rapidash[]; +extern const u8 gMonIcon_Rapidash[]; +extern const u8 gMonFootprint_Rapidash[]; +extern const u8 gMonFrontPic_Slowpoke[]; +extern const u8 gMonPalette_Slowpoke[]; +extern const u8 gMonBackPic_Slowpoke[]; +extern const u8 gMonShinyPalette_Slowpoke[]; +extern const u8 gMonIcon_Slowpoke[]; +extern const u8 gMonFootprint_Slowpoke[]; +extern const u8 gMonFrontPic_Slowbro[]; +extern const u8 gMonPalette_Slowbro[]; +extern const u8 gMonBackPic_Slowbro[]; +extern const u8 gMonShinyPalette_Slowbro[]; +extern const u8 gMonIcon_Slowbro[]; +extern const u8 gMonFootprint_Slowbro[]; +extern const u8 gMonFrontPic_Magnemite[]; +extern const u8 gMonPalette_Magnemite[]; +extern const u8 gMonBackPic_Magnemite[]; +extern const u8 gMonShinyPalette_Magnemite[]; +extern const u8 gMonIcon_Magnemite[]; +extern const u8 gMonFootprint_Magnemite[]; +extern const u8 gMonFrontPic_Magneton[]; +extern const u8 gMonPalette_Magneton[]; +extern const u8 gMonBackPic_Magneton[]; +extern const u8 gMonShinyPalette_Magneton[]; +extern const u8 gMonIcon_Magneton[]; +extern const u8 gMonFootprint_Magneton[]; +extern const u8 gMonFrontPic_Farfetchd[]; +extern const u8 gMonPalette_Farfetchd[]; +extern const u8 gMonBackPic_Farfetchd[]; +extern const u8 gMonShinyPalette_Farfetchd[]; +extern const u8 gMonIcon_Farfetchd[]; +extern const u8 gMonFootprint_Farfetchd[]; +extern const u8 gMonFrontPic_Doduo[]; +extern const u8 gMonPalette_Doduo[]; +extern const u8 gMonBackPic_Doduo[]; +extern const u8 gMonShinyPalette_Doduo[]; +extern const u8 gMonIcon_Doduo[]; +extern const u8 gMonFootprint_Doduo[]; +extern const u8 gMonFrontPic_Dodrio[]; +extern const u8 gMonPalette_Dodrio[]; +extern const u8 gMonBackPic_Dodrio[]; +extern const u8 gMonShinyPalette_Dodrio[]; +extern const u8 gMonIcon_Dodrio[]; +extern const u8 gMonFootprint_Dodrio[]; +extern const u8 gMonFrontPic_Seel[]; +extern const u8 gMonPalette_Seel[]; +extern const u8 gMonBackPic_Seel[]; +extern const u8 gMonShinyPalette_Seel[]; +extern const u8 gMonIcon_Seel[]; +extern const u8 gMonFootprint_Seel[]; +extern const u8 gMonFrontPic_Dewgong[]; +extern const u8 gMonPalette_Dewgong[]; +extern const u8 gMonBackPic_Dewgong[]; +extern const u8 gMonShinyPalette_Dewgong[]; +extern const u8 gMonIcon_Dewgong[]; +extern const u8 gMonFootprint_Dewgong[]; +extern const u8 gMonFrontPic_Grimer[]; +extern const u8 gMonPalette_Grimer[]; +extern const u8 gMonBackPic_Grimer[]; +extern const u8 gMonShinyPalette_Grimer[]; +extern const u8 gMonIcon_Grimer[]; +extern const u8 gMonFootprint_Grimer[]; +extern const u8 gMonFrontPic_Muk[]; +extern const u8 gMonPalette_Muk[]; +extern const u8 gMonBackPic_Muk[]; +extern const u8 gMonShinyPalette_Muk[]; +extern const u8 gMonIcon_Muk[]; +extern const u8 gMonFootprint_Muk[]; +extern const u8 gMonFrontPic_Shellder[]; +extern const u8 gMonPalette_Shellder[]; +extern const u8 gMonBackPic_Shellder[]; +extern const u8 gMonShinyPalette_Shellder[]; +extern const u8 gMonIcon_Shellder[]; +extern const u8 gMonFootprint_Shellder[]; +extern const u8 gMonFrontPic_Cloyster[]; +extern const u8 gMonPalette_Cloyster[]; +extern const u8 gMonBackPic_Cloyster[]; +extern const u8 gMonShinyPalette_Cloyster[]; +extern const u8 gMonIcon_Cloyster[]; +extern const u8 gMonFootprint_Cloyster[]; +extern const u8 gMonFrontPic_Gastly[]; +extern const u8 gMonPalette_Gastly[]; +extern const u8 gMonBackPic_Gastly[]; +extern const u8 gMonShinyPalette_Gastly[]; +extern const u8 gMonIcon_Gastly[]; +extern const u8 gMonFootprint_Gastly[]; +extern const u8 gMonFrontPic_Haunter[]; +extern const u8 gMonPalette_Haunter[]; +extern const u8 gMonBackPic_Haunter[]; +extern const u8 gMonShinyPalette_Haunter[]; +extern const u8 gMonIcon_Haunter[]; +extern const u8 gMonFootprint_Haunter[]; +extern const u8 gMonFrontPic_Gengar[]; +extern const u8 gMonPalette_Gengar[]; +extern const u8 gMonBackPic_Gengar[]; +extern const u8 gMonShinyPalette_Gengar[]; +extern const u8 gMonIcon_Gengar[]; +extern const u8 gMonFootprint_Gengar[]; +extern const u8 gMonFrontPic_Onix[]; +extern const u8 gMonPalette_Onix[]; +extern const u8 gMonBackPic_Onix[]; +extern const u8 gMonShinyPalette_Onix[]; +extern const u8 gMonIcon_Onix[]; +extern const u8 gMonFootprint_Onix[]; +extern const u8 gMonFrontPic_Drowzee[]; +extern const u8 gMonPalette_Drowzee[]; +extern const u8 gMonBackPic_Drowzee[]; +extern const u8 gMonShinyPalette_Drowzee[]; +extern const u8 gMonIcon_Drowzee[]; +extern const u8 gMonFootprint_Drowzee[]; +extern const u8 gMonFrontPic_Hypno[]; +extern const u8 gMonPalette_Hypno[]; +extern const u8 gMonBackPic_Hypno[]; +extern const u8 gMonShinyPalette_Hypno[]; +extern const u8 gMonIcon_Hypno[]; +extern const u8 gMonFootprint_Hypno[]; +extern const u8 gMonFrontPic_Krabby[]; +extern const u8 gMonPalette_Krabby[]; +extern const u8 gMonBackPic_Krabby[]; +extern const u8 gMonShinyPalette_Krabby[]; +extern const u8 gMonIcon_Krabby[]; +extern const u8 gMonFootprint_Krabby[]; +extern const u8 gMonFrontPic_Kingler[]; +extern const u8 gMonPalette_Kingler[]; +extern const u8 gMonBackPic_Kingler[]; +extern const u8 gMonShinyPalette_Kingler[]; +extern const u8 gMonIcon_Kingler[]; +extern const u8 gMonFootprint_Kingler[]; +extern const u8 gMonFrontPic_Voltorb[]; +extern const u8 gMonPalette_Voltorb[]; +extern const u8 gMonBackPic_Voltorb[]; +extern const u8 gMonShinyPalette_Voltorb[]; +extern const u8 gMonIcon_Voltorb[]; +extern const u8 gMonFootprint_Voltorb[]; +extern const u8 gMonFrontPic_Electrode[]; +extern const u8 gMonPalette_Electrode[]; +extern const u8 gMonBackPic_Electrode[]; +extern const u8 gMonShinyPalette_Electrode[]; +extern const u8 gMonIcon_Electrode[]; +extern const u8 gMonFootprint_Electrode[]; +extern const u8 gMonFrontPic_Exeggcute[]; +extern const u8 gMonPalette_Exeggcute[]; +extern const u8 gMonBackPic_Exeggcute[]; +extern const u8 gMonShinyPalette_Exeggcute[]; +extern const u8 gMonIcon_Exeggcute[]; +extern const u8 gMonFootprint_Exeggcute[]; +extern const u8 gMonFrontPic_Exeggutor[]; +extern const u8 gMonPalette_Exeggutor[]; +extern const u8 gMonBackPic_Exeggutor[]; +extern const u8 gMonShinyPalette_Exeggutor[]; +extern const u8 gMonIcon_Exeggutor[]; +extern const u8 gMonFootprint_Exeggutor[]; +extern const u8 gMonFrontPic_Cubone[]; +extern const u8 gMonPalette_Cubone[]; +extern const u8 gMonBackPic_Cubone[]; +extern const u8 gMonShinyPalette_Cubone[]; +extern const u8 gMonIcon_Cubone[]; +extern const u8 gMonFootprint_Cubone[]; +extern const u8 gMonFrontPic_Marowak[]; +extern const u8 gMonPalette_Marowak[]; +extern const u8 gMonBackPic_Marowak[]; +extern const u8 gMonShinyPalette_Marowak[]; +extern const u8 gMonIcon_Marowak[]; +extern const u8 gMonFootprint_Marowak[]; +extern const u8 gMonFrontPic_Hitmonlee[]; +extern const u8 gMonPalette_Hitmonlee[]; +extern const u8 gMonBackPic_Hitmonlee[]; +extern const u8 gMonShinyPalette_Hitmonlee[]; +extern const u8 gMonIcon_Hitmonlee[]; +extern const u8 gMonFootprint_Hitmonlee[]; +extern const u8 gMonFrontPic_Hitmonchan[]; +extern const u8 gMonPalette_Hitmonchan[]; +extern const u8 gMonBackPic_Hitmonchan[]; +extern const u8 gMonShinyPalette_Hitmonchan[]; +extern const u8 gMonIcon_Hitmonchan[]; +extern const u8 gMonFootprint_Hitmonchan[]; +extern const u8 gMonFrontPic_Lickitung[]; +extern const u8 gMonPalette_Lickitung[]; +extern const u8 gMonBackPic_Lickitung[]; +extern const u8 gMonShinyPalette_Lickitung[]; +extern const u8 gMonIcon_Lickitung[]; +extern const u8 gMonFootprint_Lickitung[]; +extern const u8 gMonFrontPic_Koffing[]; +extern const u8 gMonPalette_Koffing[]; +extern const u8 gMonBackPic_Koffing[]; +extern const u8 gMonShinyPalette_Koffing[]; +extern const u8 gMonIcon_Koffing[]; +extern const u8 gMonFootprint_Koffing[]; +extern const u8 gMonFrontPic_Weezing[]; +extern const u8 gMonPalette_Weezing[]; +extern const u8 gMonBackPic_Weezing[]; +extern const u8 gMonShinyPalette_Weezing[]; +extern const u8 gMonIcon_Weezing[]; +extern const u8 gMonFootprint_Weezing[]; +extern const u8 gMonFrontPic_Rhyhorn[]; +extern const u8 gMonPalette_Rhyhorn[]; +extern const u8 gMonBackPic_Rhyhorn[]; +extern const u8 gMonShinyPalette_Rhyhorn[]; +extern const u8 gMonIcon_Rhyhorn[]; +extern const u8 gMonFootprint_Rhyhorn[]; +extern const u8 gMonFrontPic_Rhydon[]; +extern const u8 gMonPalette_Rhydon[]; +extern const u8 gMonBackPic_Rhydon[]; +extern const u8 gMonShinyPalette_Rhydon[]; +extern const u8 gMonIcon_Rhydon[]; +extern const u8 gMonFootprint_Rhydon[]; +extern const u8 gMonFrontPic_Chansey[]; +extern const u8 gMonPalette_Chansey[]; +extern const u8 gMonBackPic_Chansey[]; +extern const u8 gMonShinyPalette_Chansey[]; +extern const u8 gMonIcon_Chansey[]; +extern const u8 gMonFootprint_Chansey[]; +extern const u8 gMonFrontPic_Tangela[]; +extern const u8 gMonPalette_Tangela[]; +extern const u8 gMonBackPic_Tangela[]; +extern const u8 gMonShinyPalette_Tangela[]; +extern const u8 gMonIcon_Tangela[]; +extern const u8 gMonFootprint_Tangela[]; +extern const u8 gMonFrontPic_Kangaskhan[]; +extern const u8 gMonPalette_Kangaskhan[]; +extern const u8 gMonBackPic_Kangaskhan[]; +extern const u8 gMonShinyPalette_Kangaskhan[]; +extern const u8 gMonIcon_Kangaskhan[]; +extern const u8 gMonFootprint_Kangaskhan[]; +extern const u8 gMonFrontPic_Horsea[]; +extern const u8 gMonPalette_Horsea[]; +extern const u8 gMonBackPic_Horsea[]; +extern const u8 gMonShinyPalette_Horsea[]; +extern const u8 gMonIcon_Horsea[]; +extern const u8 gMonFootprint_Horsea[]; +extern const u8 gMonFrontPic_Seadra[]; +extern const u8 gMonPalette_Seadra[]; +extern const u8 gMonBackPic_Seadra[]; +extern const u8 gMonShinyPalette_Seadra[]; +extern const u8 gMonIcon_Seadra[]; +extern const u8 gMonFootprint_Seadra[]; +extern const u8 gMonFrontPic_Goldeen[]; +extern const u8 gMonPalette_Goldeen[]; +extern const u8 gMonBackPic_Goldeen[]; +extern const u8 gMonShinyPalette_Goldeen[]; +extern const u8 gMonIcon_Goldeen[]; +extern const u8 gMonFootprint_Goldeen[]; +extern const u8 gMonFrontPic_Seaking[]; +extern const u8 gMonPalette_Seaking[]; +extern const u8 gMonBackPic_Seaking[]; +extern const u8 gMonShinyPalette_Seaking[]; +extern const u8 gMonIcon_Seaking[]; +extern const u8 gMonFootprint_Seaking[]; +extern const u8 gMonFrontPic_Staryu[]; +extern const u8 gMonPalette_Staryu[]; +extern const u8 gMonBackPic_Staryu[]; +extern const u8 gMonShinyPalette_Staryu[]; +extern const u8 gMonIcon_Staryu[]; +extern const u8 gMonFootprint_Staryu[]; +extern const u8 gMonFrontPic_Starmie[]; +extern const u8 gMonPalette_Starmie[]; +extern const u8 gMonBackPic_Starmie[]; +extern const u8 gMonShinyPalette_Starmie[]; +extern const u8 gMonIcon_Starmie[]; +extern const u8 gMonFootprint_Starmie[]; +extern const u8 gMonFrontPic_Mrmime[]; +extern const u8 gMonPalette_Mrmime[]; +extern const u8 gMonBackPic_Mrmime[]; +extern const u8 gMonShinyPalette_Mrmime[]; +extern const u8 gMonIcon_Mrmime[]; +extern const u8 gMonFootprint_Mrmime[]; +extern const u8 gMonFrontPic_Scyther[]; +extern const u8 gMonPalette_Scyther[]; +extern const u8 gMonBackPic_Scyther[]; +extern const u8 gMonShinyPalette_Scyther[]; +extern const u8 gMonIcon_Scyther[]; +extern const u8 gMonFootprint_Scyther[]; +extern const u8 gMonFrontPic_Jynx[]; +extern const u8 gMonPalette_Jynx[]; +extern const u8 gMonBackPic_Jynx[]; +extern const u8 gMonShinyPalette_Jynx[]; +extern const u8 gMonIcon_Jynx[]; +extern const u8 gMonFootprint_Jynx[]; +extern const u8 gMonFrontPic_Electabuzz[]; +extern const u8 gMonPalette_Electabuzz[]; +extern const u8 gMonBackPic_Electabuzz[]; +extern const u8 gMonShinyPalette_Electabuzz[]; +extern const u8 gMonIcon_Electabuzz[]; +extern const u8 gMonFootprint_Electabuzz[]; +extern const u8 gMonFrontPic_Magmar[]; +extern const u8 gMonPalette_Magmar[]; +extern const u8 gMonBackPic_Magmar[]; +extern const u8 gMonShinyPalette_Magmar[]; +extern const u8 gMonIcon_Magmar[]; +extern const u8 gMonFootprint_Magmar[]; +extern const u8 gMonFrontPic_Pinsir[]; +extern const u8 gMonPalette_Pinsir[]; +extern const u8 gMonBackPic_Pinsir[]; +extern const u8 gMonShinyPalette_Pinsir[]; +extern const u8 gMonIcon_Pinsir[]; +extern const u8 gMonFootprint_Pinsir[]; +extern const u8 gMonFrontPic_Tauros[]; +extern const u8 gMonPalette_Tauros[]; +extern const u8 gMonBackPic_Tauros[]; +extern const u8 gMonShinyPalette_Tauros[]; +extern const u8 gMonIcon_Tauros[]; +extern const u8 gMonFootprint_Tauros[]; +extern const u8 gMonFrontPic_Magikarp[]; +extern const u8 gMonPalette_Magikarp[]; +extern const u8 gMonBackPic_Magikarp[]; +extern const u8 gMonShinyPalette_Magikarp[]; +extern const u8 gMonIcon_Magikarp[]; +extern const u8 gMonFootprint_Magikarp[]; +extern const u8 gMonFrontPic_Gyarados[]; +extern const u8 gMonPalette_Gyarados[]; +extern const u8 gMonBackPic_Gyarados[]; +extern const u8 gMonShinyPalette_Gyarados[]; +extern const u8 gMonIcon_Gyarados[]; +extern const u8 gMonFootprint_Gyarados[]; +extern const u8 gMonFrontPic_Lapras[]; +extern const u8 gMonPalette_Lapras[]; +extern const u8 gMonBackPic_Lapras[]; +extern const u8 gMonShinyPalette_Lapras[]; +extern const u8 gMonIcon_Lapras[]; +extern const u8 gMonFootprint_Lapras[]; +extern const u8 gMonFrontPic_Ditto[]; +extern const u8 gMonPalette_Ditto[]; +extern const u8 gMonBackPic_Ditto[]; +extern const u8 gMonShinyPalette_Ditto[]; +extern const u8 gMonIcon_Ditto[]; +extern const u8 gMonFootprint_Ditto[]; +extern const u8 gMonFrontPic_Eevee[]; +extern const u8 gMonPalette_Eevee[]; +extern const u8 gMonBackPic_Eevee[]; +extern const u8 gMonShinyPalette_Eevee[]; +extern const u8 gMonIcon_Eevee[]; +extern const u8 gMonFootprint_Eevee[]; +extern const u8 gMonFrontPic_Vaporeon[]; +extern const u8 gMonPalette_Vaporeon[]; +extern const u8 gMonBackPic_Vaporeon[]; +extern const u8 gMonShinyPalette_Vaporeon[]; +extern const u8 gMonIcon_Vaporeon[]; +extern const u8 gMonFootprint_Vaporeon[]; +extern const u8 gMonFrontPic_Jolteon[]; +extern const u8 gMonPalette_Jolteon[]; +extern const u8 gMonBackPic_Jolteon[]; +extern const u8 gMonShinyPalette_Jolteon[]; +extern const u8 gMonIcon_Jolteon[]; +extern const u8 gMonFootprint_Jolteon[]; +extern const u8 gMonFrontPic_Flareon[]; +extern const u8 gMonPalette_Flareon[]; +extern const u8 gMonBackPic_Flareon[]; +extern const u8 gMonShinyPalette_Flareon[]; +extern const u8 gMonIcon_Flareon[]; +extern const u8 gMonFootprint_Flareon[]; +extern const u8 gMonFrontPic_Porygon[]; +extern const u8 gMonPalette_Porygon[]; +extern const u8 gMonBackPic_Porygon[]; +extern const u8 gMonShinyPalette_Porygon[]; +extern const u8 gMonIcon_Porygon[]; +extern const u8 gMonFootprint_Porygon[]; +extern const u8 gMonFrontPic_Omanyte[]; +extern const u8 gMonPalette_Omanyte[]; +extern const u8 gMonBackPic_Omanyte[]; +extern const u8 gMonShinyPalette_Omanyte[]; +extern const u8 gMonIcon_Omanyte[]; +extern const u8 gMonFootprint_Omanyte[]; +extern const u8 gMonFrontPic_Omastar[]; +extern const u8 gMonPalette_Omastar[]; +extern const u8 gMonBackPic_Omastar[]; +extern const u8 gMonShinyPalette_Omastar[]; +extern const u8 gMonIcon_Omastar[]; +extern const u8 gMonFootprint_Omastar[]; +extern const u8 gMonFrontPic_Kabuto[]; +extern const u8 gMonPalette_Kabuto[]; +extern const u8 gMonBackPic_Kabuto[]; +extern const u8 gMonShinyPalette_Kabuto[]; +extern const u8 gMonIcon_Kabuto[]; +extern const u8 gMonFootprint_Kabuto[]; +extern const u8 gMonFrontPic_Kabutops[]; +extern const u8 gMonPalette_Kabutops[]; +extern const u8 gMonBackPic_Kabutops[]; +extern const u8 gMonShinyPalette_Kabutops[]; +extern const u8 gMonIcon_Kabutops[]; +extern const u8 gMonFootprint_Kabutops[]; +extern const u8 gMonFrontPic_Aerodactyl[]; +extern const u8 gMonPalette_Aerodactyl[]; +extern const u8 gMonBackPic_Aerodactyl[]; +extern const u8 gMonShinyPalette_Aerodactyl[]; +extern const u8 gMonIcon_Aerodactyl[]; +extern const u8 gMonFootprint_Aerodactyl[]; +extern const u8 gMonFrontPic_Snorlax[]; +extern const u8 gMonPalette_Snorlax[]; +extern const u8 gMonBackPic_Snorlax[]; +extern const u8 gMonShinyPalette_Snorlax[]; +extern const u8 gMonIcon_Snorlax[]; +extern const u8 gMonFootprint_Snorlax[]; +extern const u8 gMonFrontPic_Articuno[]; +extern const u8 gMonPalette_Articuno[]; +extern const u8 gMonBackPic_Articuno[]; +extern const u8 gMonShinyPalette_Articuno[]; +extern const u8 gMonIcon_Articuno[]; +extern const u8 gMonFootprint_Articuno[]; +extern const u8 gMonFrontPic_Zapdos[]; +extern const u8 gMonPalette_Zapdos[]; +extern const u8 gMonBackPic_Zapdos[]; +extern const u8 gMonShinyPalette_Zapdos[]; +extern const u8 gMonIcon_Zapdos[]; +extern const u8 gMonFootprint_Zapdos[]; +extern const u8 gMonFrontPic_Moltres[]; +extern const u8 gMonPalette_Moltres[]; +extern const u8 gMonBackPic_Moltres[]; +extern const u8 gMonShinyPalette_Moltres[]; +extern const u8 gMonIcon_Moltres[]; +extern const u8 gMonFootprint_Moltres[]; +extern const u8 gMonFrontPic_Dratini[]; +extern const u8 gMonPalette_Dratini[]; +extern const u8 gMonBackPic_Dratini[]; +extern const u8 gMonShinyPalette_Dratini[]; +extern const u8 gMonIcon_Dratini[]; +extern const u8 gMonFootprint_Dratini[]; +extern const u8 gMonFrontPic_Dragonair[]; +extern const u8 gMonPalette_Dragonair[]; +extern const u8 gMonBackPic_Dragonair[]; +extern const u8 gMonShinyPalette_Dragonair[]; +extern const u8 gMonIcon_Dragonair[]; +extern const u8 gMonFootprint_Dragonair[]; +extern const u8 gMonFrontPic_Dragonite[]; +extern const u8 gMonPalette_Dragonite[]; +extern const u8 gMonBackPic_Dragonite[]; +extern const u8 gMonShinyPalette_Dragonite[]; +extern const u8 gMonIcon_Dragonite[]; +extern const u8 gMonFootprint_Dragonite[]; +extern const u8 gMonFrontPic_Mewtwo[]; +extern const u8 gMonPalette_Mewtwo[]; +extern const u8 gMonBackPic_Mewtwo[]; +extern const u8 gMonShinyPalette_Mewtwo[]; +extern const u8 gMonIcon_Mewtwo[]; +extern const u8 gMonFootprint_Mewtwo[]; +extern const u8 gMonFrontPic_Mew[]; +extern const u8 gMonPalette_Mew[]; +extern const u8 gMonBackPic_Mew[]; +extern const u8 gMonShinyPalette_Mew[]; +extern const u8 gMonIcon_Mew[]; +extern const u8 gMonFootprint_Mew[]; +extern const u8 gMonFrontPic_Chikorita[]; +extern const u8 gMonPalette_Chikorita[]; +extern const u8 gMonBackPic_Chikorita[]; +extern const u8 gMonShinyPalette_Chikorita[]; +extern const u8 gMonIcon_Chikorita[]; +extern const u8 gMonFootprint_Chikorita[]; +extern const u8 gMonFrontPic_Bayleef[]; +extern const u8 gMonPalette_Bayleef[]; +extern const u8 gMonBackPic_Bayleef[]; +extern const u8 gMonShinyPalette_Bayleef[]; +extern const u8 gMonIcon_Bayleef[]; +extern const u8 gMonFootprint_Bayleef[]; +extern const u8 gMonFrontPic_Meganium[]; +extern const u8 gMonPalette_Meganium[]; +extern const u8 gMonBackPic_Meganium[]; +extern const u8 gMonShinyPalette_Meganium[]; +extern const u8 gMonIcon_Meganium[]; +extern const u8 gMonFootprint_Meganium[]; +extern const u8 gMonFrontPic_Cyndaquil[]; +extern const u8 gMonPalette_Cyndaquil[]; +extern const u8 gMonBackPic_Cyndaquil[]; +extern const u8 gMonShinyPalette_Cyndaquil[]; +extern const u8 gMonIcon_Cyndaquil[]; +extern const u8 gMonFootprint_Cyndaquil[]; +extern const u8 gMonFrontPic_Quilava[]; +extern const u8 gMonPalette_Quilava[]; +extern const u8 gMonBackPic_Quilava[]; +extern const u8 gMonShinyPalette_Quilava[]; +extern const u8 gMonIcon_Quilava[]; +extern const u8 gMonFootprint_Quilava[]; +extern const u8 gMonFrontPic_Typhlosion[]; +extern const u8 gMonPalette_Typhlosion[]; +extern const u8 gMonBackPic_Typhlosion[]; +extern const u8 gMonShinyPalette_Typhlosion[]; +extern const u8 gMonIcon_Typhlosion[]; +extern const u8 gMonFootprint_Typhlosion[]; +extern const u8 gMonFrontPic_Totodile[]; +extern const u8 gMonPalette_Totodile[]; +extern const u8 gMonBackPic_Totodile[]; +extern const u8 gMonShinyPalette_Totodile[]; +extern const u8 gMonIcon_Totodile[]; +extern const u8 gMonFootprint_Totodile[]; +extern const u8 gMonFrontPic_Croconaw[]; +extern const u8 gMonPalette_Croconaw[]; +extern const u8 gMonBackPic_Croconaw[]; +extern const u8 gMonShinyPalette_Croconaw[]; +extern const u8 gMonIcon_Croconaw[]; +extern const u8 gMonFootprint_Croconaw[]; +extern const u8 gMonFrontPic_Feraligatr[]; +extern const u8 gMonPalette_Feraligatr[]; +extern const u8 gMonBackPic_Feraligatr[]; +extern const u8 gMonShinyPalette_Feraligatr[]; +extern const u8 gMonIcon_Feraligatr[]; +extern const u8 gMonFootprint_Feraligatr[]; +extern const u8 gMonFrontPic_Sentret[]; +extern const u8 gMonPalette_Sentret[]; +extern const u8 gMonBackPic_Sentret[]; +extern const u8 gMonShinyPalette_Sentret[]; +extern const u8 gMonIcon_Sentret[]; +extern const u8 gMonFootprint_Sentret[]; +extern const u8 gMonFrontPic_Furret[]; +extern const u8 gMonPalette_Furret[]; +extern const u8 gMonBackPic_Furret[]; +extern const u8 gMonShinyPalette_Furret[]; +extern const u8 gMonIcon_Furret[]; +extern const u8 gMonFootprint_Furret[]; +extern const u8 gMonFrontPic_Hoothoot[]; +extern const u8 gMonPalette_Hoothoot[]; +extern const u8 gMonBackPic_Hoothoot[]; +extern const u8 gMonShinyPalette_Hoothoot[]; +extern const u8 gMonIcon_Hoothoot[]; +extern const u8 gMonFootprint_Hoothoot[]; +extern const u8 gMonFrontPic_Noctowl[]; +extern const u8 gMonPalette_Noctowl[]; +extern const u8 gMonBackPic_Noctowl[]; +extern const u8 gMonShinyPalette_Noctowl[]; +extern const u8 gMonIcon_Noctowl[]; +extern const u8 gMonFootprint_Noctowl[]; +extern const u8 gMonFrontPic_Ledyba[]; +extern const u8 gMonPalette_Ledyba[]; +extern const u8 gMonBackPic_Ledyba[]; +extern const u8 gMonShinyPalette_Ledyba[]; +extern const u8 gMonIcon_Ledyba[]; +extern const u8 gMonFootprint_Ledyba[]; +extern const u8 gMonFrontPic_Ledian[]; +extern const u8 gMonPalette_Ledian[]; +extern const u8 gMonBackPic_Ledian[]; +extern const u8 gMonShinyPalette_Ledian[]; +extern const u8 gMonIcon_Ledian[]; +extern const u8 gMonFootprint_Ledian[]; +extern const u8 gMonFrontPic_Spinarak[]; +extern const u8 gMonPalette_Spinarak[]; +extern const u8 gMonBackPic_Spinarak[]; +extern const u8 gMonShinyPalette_Spinarak[]; +extern const u8 gMonIcon_Spinarak[]; +extern const u8 gMonFootprint_Spinarak[]; +extern const u8 gMonFrontPic_Ariados[]; +extern const u8 gMonPalette_Ariados[]; +extern const u8 gMonBackPic_Ariados[]; +extern const u8 gMonShinyPalette_Ariados[]; +extern const u8 gMonIcon_Ariados[]; +extern const u8 gMonFootprint_Ariados[]; +extern const u8 gMonFrontPic_Crobat[]; +extern const u8 gMonPalette_Crobat[]; +extern const u8 gMonBackPic_Crobat[]; +extern const u8 gMonShinyPalette_Crobat[]; +extern const u8 gMonIcon_Crobat[]; +extern const u8 gMonFootprint_Crobat[]; +extern const u8 gMonFrontPic_Chinchou[]; +extern const u8 gMonPalette_Chinchou[]; +extern const u8 gMonBackPic_Chinchou[]; +extern const u8 gMonShinyPalette_Chinchou[]; +extern const u8 gMonIcon_Chinchou[]; +extern const u8 gMonFootprint_Chinchou[]; +extern const u8 gMonFrontPic_Lanturn[]; +extern const u8 gMonPalette_Lanturn[]; +extern const u8 gMonBackPic_Lanturn[]; +extern const u8 gMonShinyPalette_Lanturn[]; +extern const u8 gMonIcon_Lanturn[]; +extern const u8 gMonFootprint_Lanturn[]; +extern const u8 gMonFrontPic_Pichu[]; +extern const u8 gMonPalette_Pichu[]; +extern const u8 gMonBackPic_Pichu[]; +extern const u8 gMonShinyPalette_Pichu[]; +extern const u8 gMonIcon_Pichu[]; +extern const u8 gMonFootprint_Pichu[]; +extern const u8 gMonFrontPic_Cleffa[]; +extern const u8 gMonPalette_Cleffa[]; +extern const u8 gMonBackPic_Cleffa[]; +extern const u8 gMonShinyPalette_Cleffa[]; +extern const u8 gMonIcon_Cleffa[]; +extern const u8 gMonFootprint_Cleffa[]; +extern const u8 gMonFrontPic_Igglybuff[]; +extern const u8 gMonPalette_Igglybuff[]; +extern const u8 gMonBackPic_Igglybuff[]; +extern const u8 gMonShinyPalette_Igglybuff[]; +extern const u8 gMonIcon_Igglybuff[]; +extern const u8 gMonFootprint_Igglybuff[]; +extern const u8 gMonFrontPic_Togepi[]; +extern const u8 gMonPalette_Togepi[]; +extern const u8 gMonBackPic_Togepi[]; +extern const u8 gMonShinyPalette_Togepi[]; +extern const u8 gMonIcon_Togepi[]; +extern const u8 gMonFootprint_Togepi[]; +extern const u8 gMonFrontPic_Togetic[]; +extern const u8 gMonPalette_Togetic[]; +extern const u8 gMonBackPic_Togetic[]; +extern const u8 gMonShinyPalette_Togetic[]; +extern const u8 gMonIcon_Togetic[]; +extern const u8 gMonFootprint_Togetic[]; +extern const u8 gMonFrontPic_Natu[]; +extern const u8 gMonPalette_Natu[]; +extern const u8 gMonBackPic_Natu[]; +extern const u8 gMonShinyPalette_Natu[]; +extern const u8 gMonIcon_Natu[]; +extern const u8 gMonFootprint_Natu[]; +extern const u8 gMonFrontPic_Xatu[]; +extern const u8 gMonPalette_Xatu[]; +extern const u8 gMonBackPic_Xatu[]; +extern const u8 gMonShinyPalette_Xatu[]; +extern const u8 gMonIcon_Xatu[]; +extern const u8 gMonFootprint_Xatu[]; +extern const u8 gMonFrontPic_Mareep[]; +extern const u8 gMonPalette_Mareep[]; +extern const u8 gMonBackPic_Mareep[]; +extern const u8 gMonShinyPalette_Mareep[]; +extern const u8 gMonIcon_Mareep[]; +extern const u8 gMonFootprint_Mareep[]; +extern const u8 gMonFrontPic_Flaaffy[]; +extern const u8 gMonPalette_Flaaffy[]; +extern const u8 gMonBackPic_Flaaffy[]; +extern const u8 gMonShinyPalette_Flaaffy[]; +extern const u8 gMonIcon_Flaaffy[]; +extern const u8 gMonFootprint_Flaaffy[]; +extern const u8 gMonFrontPic_Ampharos[]; +extern const u8 gMonPalette_Ampharos[]; +extern const u8 gMonBackPic_Ampharos[]; +extern const u8 gMonShinyPalette_Ampharos[]; +extern const u8 gMonIcon_Ampharos[]; +extern const u8 gMonFootprint_Ampharos[]; +extern const u8 gMonFrontPic_Bellossom[]; +extern const u8 gMonPalette_Bellossom[]; +extern const u8 gMonBackPic_Bellossom[]; +extern const u8 gMonShinyPalette_Bellossom[]; +extern const u8 gMonIcon_Bellossom[]; +extern const u8 gMonFootprint_Bellossom[]; +extern const u8 gMonFrontPic_Marill[]; +extern const u8 gMonPalette_Marill[]; +extern const u8 gMonBackPic_Marill[]; +extern const u8 gMonShinyPalette_Marill[]; +extern const u8 gMonIcon_Marill[]; +extern const u8 gMonFootprint_Marill[]; +extern const u8 gMonFrontPic_Azumarill[]; +extern const u8 gMonPalette_Azumarill[]; +extern const u8 gMonBackPic_Azumarill[]; +extern const u8 gMonShinyPalette_Azumarill[]; +extern const u8 gMonIcon_Azumarill[]; +extern const u8 gMonFootprint_Azumarill[]; +extern const u8 gMonFrontPic_Sudowoodo[]; +extern const u8 gMonPalette_Sudowoodo[]; +extern const u8 gMonBackPic_Sudowoodo[]; +extern const u8 gMonShinyPalette_Sudowoodo[]; +extern const u8 gMonIcon_Sudowoodo[]; +extern const u8 gMonFootprint_Sudowoodo[]; +extern const u8 gMonFrontPic_Politoed[]; +extern const u8 gMonPalette_Politoed[]; +extern const u8 gMonBackPic_Politoed[]; +extern const u8 gMonShinyPalette_Politoed[]; +extern const u8 gMonIcon_Politoed[]; +extern const u8 gMonFootprint_Politoed[]; +extern const u8 gMonFrontPic_Hoppip[]; +extern const u8 gMonPalette_Hoppip[]; +extern const u8 gMonBackPic_Hoppip[]; +extern const u8 gMonShinyPalette_Hoppip[]; +extern const u8 gMonIcon_Hoppip[]; +extern const u8 gMonFootprint_Hoppip[]; +extern const u8 gMonFrontPic_Skiploom[]; +extern const u8 gMonPalette_Skiploom[]; +extern const u8 gMonBackPic_Skiploom[]; +extern const u8 gMonShinyPalette_Skiploom[]; +extern const u8 gMonIcon_Skiploom[]; +extern const u8 gMonFootprint_Skiploom[]; +extern const u8 gMonFrontPic_Jumpluff[]; +extern const u8 gMonPalette_Jumpluff[]; +extern const u8 gMonBackPic_Jumpluff[]; +extern const u8 gMonShinyPalette_Jumpluff[]; +extern const u8 gMonIcon_Jumpluff[]; +extern const u8 gMonFootprint_Jumpluff[]; +extern const u8 gMonFrontPic_Aipom[]; +extern const u8 gMonPalette_Aipom[]; +extern const u8 gMonBackPic_Aipom[]; +extern const u8 gMonShinyPalette_Aipom[]; +extern const u8 gMonIcon_Aipom[]; +extern const u8 gMonFootprint_Aipom[]; +extern const u8 gMonFrontPic_Sunkern[]; +extern const u8 gMonPalette_Sunkern[]; +extern const u8 gMonBackPic_Sunkern[]; +extern const u8 gMonShinyPalette_Sunkern[]; +extern const u8 gMonIcon_Sunkern[]; +extern const u8 gMonFootprint_Sunkern[]; +extern const u8 gMonFrontPic_Sunflora[]; +extern const u8 gMonPalette_Sunflora[]; +extern const u8 gMonBackPic_Sunflora[]; +extern const u8 gMonShinyPalette_Sunflora[]; +extern const u8 gMonIcon_Sunflora[]; +extern const u8 gMonFootprint_Sunflora[]; +extern const u8 gMonFrontPic_Yanma[]; +extern const u8 gMonPalette_Yanma[]; +extern const u8 gMonBackPic_Yanma[]; +extern const u8 gMonShinyPalette_Yanma[]; +extern const u8 gMonIcon_Yanma[]; +extern const u8 gMonFootprint_Yanma[]; +extern const u8 gMonFrontPic_Wooper[]; +extern const u8 gMonPalette_Wooper[]; +extern const u8 gMonBackPic_Wooper[]; +extern const u8 gMonShinyPalette_Wooper[]; +extern const u8 gMonIcon_Wooper[]; +extern const u8 gMonFootprint_Wooper[]; +extern const u8 gMonFrontPic_Quagsire[]; +extern const u8 gMonPalette_Quagsire[]; +extern const u8 gMonBackPic_Quagsire[]; +extern const u8 gMonShinyPalette_Quagsire[]; +extern const u8 gMonIcon_Quagsire[]; +extern const u8 gMonFootprint_Quagsire[]; +extern const u8 gMonFrontPic_Espeon[]; +extern const u8 gMonPalette_Espeon[]; +extern const u8 gMonBackPic_Espeon[]; +extern const u8 gMonShinyPalette_Espeon[]; +extern const u8 gMonIcon_Espeon[]; +extern const u8 gMonFootprint_Espeon[]; +extern const u8 gMonFrontPic_Umbreon[]; +extern const u8 gMonPalette_Umbreon[]; +extern const u8 gMonBackPic_Umbreon[]; +extern const u8 gMonShinyPalette_Umbreon[]; +extern const u8 gMonIcon_Umbreon[]; +extern const u8 gMonFootprint_Umbreon[]; +extern const u8 gMonFrontPic_Murkrow[]; +extern const u8 gMonPalette_Murkrow[]; +extern const u8 gMonBackPic_Murkrow[]; +extern const u8 gMonShinyPalette_Murkrow[]; +extern const u8 gMonIcon_Murkrow[]; +extern const u8 gMonFootprint_Murkrow[]; +extern const u8 gMonFrontPic_Slowking[]; +extern const u8 gMonPalette_Slowking[]; +extern const u8 gMonBackPic_Slowking[]; +extern const u8 gMonShinyPalette_Slowking[]; +extern const u8 gMonIcon_Slowking[]; +extern const u8 gMonFootprint_Slowking[]; +extern const u8 gMonFrontPic_Misdreavus[]; +extern const u8 gMonPalette_Misdreavus[]; +extern const u8 gMonBackPic_Misdreavus[]; +extern const u8 gMonShinyPalette_Misdreavus[]; +extern const u8 gMonIcon_Misdreavus[]; +extern const u8 gMonFootprint_Misdreavus[]; +extern const u8 gMonFrontPic_UnownA[]; +extern const u8 gMonPalette_Unown[]; +extern const u8 gMonBackPic_UnownA[]; +extern const u8 gMonShinyPalette_Unown[]; +extern const u8 gMonIcon_UnownA[]; +extern const u8 gMonFootprint_Unown[]; +extern const u8 gMonFrontPic_Wobbuffet[]; +extern const u8 gMonPalette_Wobbuffet[]; +extern const u8 gMonBackPic_Wobbuffet[]; +extern const u8 gMonShinyPalette_Wobbuffet[]; +extern const u8 gMonIcon_Wobbuffet[]; +extern const u8 gMonFootprint_Wobbuffet[]; +extern const u8 gMonFrontPic_Girafarig[]; +extern const u8 gMonPalette_Girafarig[]; +extern const u8 gMonBackPic_Girafarig[]; +extern const u8 gMonShinyPalette_Girafarig[]; +extern const u8 gMonIcon_Girafarig[]; +extern const u8 gMonFootprint_Girafarig[]; +extern const u8 gMonFrontPic_Pineco[]; +extern const u8 gMonPalette_Pineco[]; +extern const u8 gMonBackPic_Pineco[]; +extern const u8 gMonShinyPalette_Pineco[]; +extern const u8 gMonIcon_Pineco[]; +extern const u8 gMonFootprint_Pineco[]; +extern const u8 gMonFrontPic_Forretress[]; +extern const u8 gMonPalette_Forretress[]; +extern const u8 gMonBackPic_Forretress[]; +extern const u8 gMonShinyPalette_Forretress[]; +extern const u8 gMonIcon_Forretress[]; +extern const u8 gMonFootprint_Forretress[]; +extern const u8 gMonFrontPic_Dunsparce[]; +extern const u8 gMonPalette_Dunsparce[]; +extern const u8 gMonBackPic_Dunsparce[]; +extern const u8 gMonShinyPalette_Dunsparce[]; +extern const u8 gMonIcon_Dunsparce[]; +extern const u8 gMonFootprint_Dunsparce[]; +extern const u8 gMonFrontPic_Gligar[]; +extern const u8 gMonPalette_Gligar[]; +extern const u8 gMonBackPic_Gligar[]; +extern const u8 gMonShinyPalette_Gligar[]; +extern const u8 gMonIcon_Gligar[]; +extern const u8 gMonFootprint_Gligar[]; +extern const u8 gMonFrontPic_Steelix[]; +extern const u8 gMonPalette_Steelix[]; +extern const u8 gMonBackPic_Steelix[]; +extern const u8 gMonShinyPalette_Steelix[]; +extern const u8 gMonIcon_Steelix[]; +extern const u8 gMonFootprint_Steelix[]; +extern const u8 gMonFrontPic_Snubbull[]; +extern const u8 gMonPalette_Snubbull[]; +extern const u8 gMonBackPic_Snubbull[]; +extern const u8 gMonShinyPalette_Snubbull[]; +extern const u8 gMonIcon_Snubbull[]; +extern const u8 gMonFootprint_Snubbull[]; +extern const u8 gMonFrontPic_Granbull[]; +extern const u8 gMonPalette_Granbull[]; +extern const u8 gMonBackPic_Granbull[]; +extern const u8 gMonShinyPalette_Granbull[]; +extern const u8 gMonIcon_Granbull[]; +extern const u8 gMonFootprint_Granbull[]; +extern const u8 gMonFrontPic_Qwilfish[]; +extern const u8 gMonPalette_Qwilfish[]; +extern const u8 gMonBackPic_Qwilfish[]; +extern const u8 gMonShinyPalette_Qwilfish[]; +extern const u8 gMonIcon_Qwilfish[]; +extern const u8 gMonFootprint_Qwilfish[]; +extern const u8 gMonFrontPic_Scizor[]; +extern const u8 gMonPalette_Scizor[]; +extern const u8 gMonBackPic_Scizor[]; +extern const u8 gMonShinyPalette_Scizor[]; +extern const u8 gMonIcon_Scizor[]; +extern const u8 gMonFootprint_Scizor[]; +extern const u8 gMonFrontPic_Shuckle[]; +extern const u8 gMonPalette_Shuckle[]; +extern const u8 gMonBackPic_Shuckle[]; +extern const u8 gMonShinyPalette_Shuckle[]; +extern const u8 gMonIcon_Shuckle[]; +extern const u8 gMonFootprint_Shuckle[]; +extern const u8 gMonFrontPic_Heracross[]; +extern const u8 gMonPalette_Heracross[]; +extern const u8 gMonBackPic_Heracross[]; +extern const u8 gMonShinyPalette_Heracross[]; +extern const u8 gMonIcon_Heracross[]; +extern const u8 gMonFootprint_Heracross[]; +extern const u8 gMonFrontPic_Sneasel[]; +extern const u8 gMonPalette_Sneasel[]; +extern const u8 gMonBackPic_Sneasel[]; +extern const u8 gMonShinyPalette_Sneasel[]; +extern const u8 gMonIcon_Sneasel[]; +extern const u8 gMonFootprint_Sneasel[]; +extern const u8 gMonFrontPic_Teddiursa[]; +extern const u8 gMonPalette_Teddiursa[]; +extern const u8 gMonBackPic_Teddiursa[]; +extern const u8 gMonShinyPalette_Teddiursa[]; +extern const u8 gMonIcon_Teddiursa[]; +extern const u8 gMonFootprint_Teddiursa[]; +extern const u8 gMonFrontPic_Ursaring[]; +extern const u8 gMonPalette_Ursaring[]; +extern const u8 gMonBackPic_Ursaring[]; +extern const u8 gMonShinyPalette_Ursaring[]; +extern const u8 gMonIcon_Ursaring[]; +extern const u8 gMonFootprint_Ursaring[]; +extern const u8 gMonFrontPic_Slugma[]; +extern const u8 gMonPalette_Slugma[]; +extern const u8 gMonBackPic_Slugma[]; +extern const u8 gMonShinyPalette_Slugma[]; +extern const u8 gMonIcon_Slugma[]; +extern const u8 gMonFootprint_Slugma[]; +extern const u8 gMonFrontPic_Magcargo[]; +extern const u8 gMonPalette_Magcargo[]; +extern const u8 gMonBackPic_Magcargo[]; +extern const u8 gMonShinyPalette_Magcargo[]; +extern const u8 gMonIcon_Magcargo[]; +extern const u8 gMonFootprint_Magcargo[]; +extern const u8 gMonFrontPic_Swinub[]; +extern const u8 gMonPalette_Swinub[]; +extern const u8 gMonBackPic_Swinub[]; +extern const u8 gMonShinyPalette_Swinub[]; +extern const u8 gMonIcon_Swinub[]; +extern const u8 gMonFootprint_Swinub[]; +extern const u8 gMonFrontPic_Piloswine[]; +extern const u8 gMonPalette_Piloswine[]; +extern const u8 gMonBackPic_Piloswine[]; +extern const u8 gMonShinyPalette_Piloswine[]; +extern const u8 gMonIcon_Piloswine[]; +extern const u8 gMonFootprint_Piloswine[]; +extern const u8 gMonFrontPic_Corsola[]; +extern const u8 gMonPalette_Corsola[]; +extern const u8 gMonBackPic_Corsola[]; +extern const u8 gMonShinyPalette_Corsola[]; +extern const u8 gMonIcon_Corsola[]; +extern const u8 gMonFootprint_Corsola[]; +extern const u8 gMonFrontPic_Remoraid[]; +extern const u8 gMonPalette_Remoraid[]; +extern const u8 gMonBackPic_Remoraid[]; +extern const u8 gMonShinyPalette_Remoraid[]; +extern const u8 gMonIcon_Remoraid[]; +extern const u8 gMonFootprint_Remoraid[]; +extern const u8 gMonFrontPic_Octillery[]; +extern const u8 gMonPalette_Octillery[]; +extern const u8 gMonBackPic_Octillery[]; +extern const u8 gMonShinyPalette_Octillery[]; +extern const u8 gMonIcon_Octillery[]; +extern const u8 gMonFootprint_Octillery[]; +extern const u8 gMonFrontPic_Delibird[]; +extern const u8 gMonPalette_Delibird[]; +extern const u8 gMonBackPic_Delibird[]; +extern const u8 gMonShinyPalette_Delibird[]; +extern const u8 gMonIcon_Delibird[]; +extern const u8 gMonFootprint_Delibird[]; +extern const u8 gMonFrontPic_Mantine[]; +extern const u8 gMonPalette_Mantine[]; +extern const u8 gMonBackPic_Mantine[]; +extern const u8 gMonShinyPalette_Mantine[]; +extern const u8 gMonIcon_Mantine[]; +extern const u8 gMonFootprint_Mantine[]; +extern const u8 gMonFrontPic_Skarmory[]; +extern const u8 gMonPalette_Skarmory[]; +extern const u8 gMonBackPic_Skarmory[]; +extern const u8 gMonShinyPalette_Skarmory[]; +extern const u8 gMonIcon_Skarmory[]; +extern const u8 gMonFootprint_Skarmory[]; +extern const u8 gMonFrontPic_Houndour[]; +extern const u8 gMonPalette_Houndour[]; +extern const u8 gMonBackPic_Houndour[]; +extern const u8 gMonShinyPalette_Houndour[]; +extern const u8 gMonIcon_Houndour[]; +extern const u8 gMonFootprint_Houndour[]; +extern const u8 gMonFrontPic_Houndoom[]; +extern const u8 gMonPalette_Houndoom[]; +extern const u8 gMonBackPic_Houndoom[]; +extern const u8 gMonShinyPalette_Houndoom[]; +extern const u8 gMonIcon_Houndoom[]; +extern const u8 gMonFootprint_Houndoom[]; +extern const u8 gMonFrontPic_Kingdra[]; +extern const u8 gMonPalette_Kingdra[]; +extern const u8 gMonBackPic_Kingdra[]; +extern const u8 gMonShinyPalette_Kingdra[]; +extern const u8 gMonIcon_Kingdra[]; +extern const u8 gMonFootprint_Kingdra[]; +extern const u8 gMonFrontPic_Phanpy[]; +extern const u8 gMonPalette_Phanpy[]; +extern const u8 gMonBackPic_Phanpy[]; +extern const u8 gMonShinyPalette_Phanpy[]; +extern const u8 gMonIcon_Phanpy[]; +extern const u8 gMonFootprint_Phanpy[]; +extern const u8 gMonFrontPic_Donphan[]; +extern const u8 gMonPalette_Donphan[]; +extern const u8 gMonBackPic_Donphan[]; +extern const u8 gMonShinyPalette_Donphan[]; +extern const u8 gMonIcon_Donphan[]; +extern const u8 gMonFootprint_Donphan[]; +extern const u8 gMonFrontPic_Porygon2[]; +extern const u8 gMonPalette_Porygon2[]; +extern const u8 gMonBackPic_Porygon2[]; +extern const u8 gMonShinyPalette_Porygon2[]; +extern const u8 gMonIcon_Porygon2[]; +extern const u8 gMonFootprint_Porygon2[]; +extern const u8 gMonFrontPic_Stantler[]; +extern const u8 gMonPalette_Stantler[]; +extern const u8 gMonBackPic_Stantler[]; +extern const u8 gMonShinyPalette_Stantler[]; +extern const u8 gMonIcon_Stantler[]; +extern const u8 gMonFootprint_Stantler[]; +extern const u8 gMonFrontPic_Smeargle[]; +extern const u8 gMonPalette_Smeargle[]; +extern const u8 gMonBackPic_Smeargle[]; +extern const u8 gMonShinyPalette_Smeargle[]; +extern const u8 gMonIcon_Smeargle[]; +extern const u8 gMonFootprint_Smeargle[]; +extern const u8 gMonFrontPic_Tyrogue[]; +extern const u8 gMonPalette_Tyrogue[]; +extern const u8 gMonBackPic_Tyrogue[]; +extern const u8 gMonShinyPalette_Tyrogue[]; +extern const u8 gMonIcon_Tyrogue[]; +extern const u8 gMonFootprint_Tyrogue[]; +extern const u8 gMonFrontPic_Hitmontop[]; +extern const u8 gMonPalette_Hitmontop[]; +extern const u8 gMonBackPic_Hitmontop[]; +extern const u8 gMonShinyPalette_Hitmontop[]; +extern const u8 gMonIcon_Hitmontop[]; +extern const u8 gMonFootprint_Hitmontop[]; +extern const u8 gMonFrontPic_Smoochum[]; +extern const u8 gMonPalette_Smoochum[]; +extern const u8 gMonBackPic_Smoochum[]; +extern const u8 gMonShinyPalette_Smoochum[]; +extern const u8 gMonIcon_Smoochum[]; +extern const u8 gMonFootprint_Smoochum[]; +extern const u8 gMonFrontPic_Elekid[]; +extern const u8 gMonPalette_Elekid[]; +extern const u8 gMonBackPic_Elekid[]; +extern const u8 gMonShinyPalette_Elekid[]; +extern const u8 gMonIcon_Elekid[]; +extern const u8 gMonFootprint_Elekid[]; +extern const u8 gMonFrontPic_Magby[]; +extern const u8 gMonPalette_Magby[]; +extern const u8 gMonBackPic_Magby[]; +extern const u8 gMonShinyPalette_Magby[]; +extern const u8 gMonIcon_Magby[]; +extern const u8 gMonFootprint_Magby[]; +extern const u8 gMonFrontPic_Miltank[]; +extern const u8 gMonPalette_Miltank[]; +extern const u8 gMonBackPic_Miltank[]; +extern const u8 gMonShinyPalette_Miltank[]; +extern const u8 gMonIcon_Miltank[]; +extern const u8 gMonFootprint_Miltank[]; +extern const u8 gMonFrontPic_Blissey[]; +extern const u8 gMonPalette_Blissey[]; +extern const u8 gMonBackPic_Blissey[]; +extern const u8 gMonShinyPalette_Blissey[]; +extern const u8 gMonIcon_Blissey[]; +extern const u8 gMonFootprint_Blissey[]; +extern const u8 gMonFrontPic_Raikou[]; +extern const u8 gMonPalette_Raikou[]; +extern const u8 gMonBackPic_Raikou[]; +extern const u8 gMonShinyPalette_Raikou[]; +extern const u8 gMonIcon_Raikou[]; +extern const u8 gMonFootprint_Raikou[]; +extern const u8 gMonFrontPic_Entei[]; +extern const u8 gMonPalette_Entei[]; +extern const u8 gMonBackPic_Entei[]; +extern const u8 gMonShinyPalette_Entei[]; +extern const u8 gMonIcon_Entei[]; +extern const u8 gMonFootprint_Entei[]; +extern const u8 gMonFrontPic_Suicune[]; +extern const u8 gMonPalette_Suicune[]; +extern const u8 gMonBackPic_Suicune[]; +extern const u8 gMonShinyPalette_Suicune[]; +extern const u8 gMonIcon_Suicune[]; +extern const u8 gMonFootprint_Suicune[]; +extern const u8 gMonFrontPic_Larvitar[]; +extern const u8 gMonPalette_Larvitar[]; +extern const u8 gMonBackPic_Larvitar[]; +extern const u8 gMonShinyPalette_Larvitar[]; +extern const u8 gMonIcon_Larvitar[]; +extern const u8 gMonFootprint_Larvitar[]; +extern const u8 gMonFrontPic_Pupitar[]; +extern const u8 gMonPalette_Pupitar[]; +extern const u8 gMonBackPic_Pupitar[]; +extern const u8 gMonShinyPalette_Pupitar[]; +extern const u8 gMonIcon_Pupitar[]; +extern const u8 gMonFootprint_Pupitar[]; +extern const u8 gMonFrontPic_Tyranitar[]; +extern const u8 gMonPalette_Tyranitar[]; +extern const u8 gMonBackPic_Tyranitar[]; +extern const u8 gMonShinyPalette_Tyranitar[]; +extern const u8 gMonIcon_Tyranitar[]; +extern const u8 gMonFootprint_Tyranitar[]; +extern const u8 gMonFrontPic_Lugia[]; +extern const u8 gMonPalette_Lugia[]; +extern const u8 gMonBackPic_Lugia[]; +extern const u8 gMonShinyPalette_Lugia[]; +extern const u8 gMonIcon_Lugia[]; +extern const u8 gMonFootprint_Lugia[]; +extern const u8 gMonFrontPic_HoOh[]; +extern const u8 gMonPalette_HoOh[]; +extern const u8 gMonBackPic_HoOh[]; +extern const u8 gMonShinyPalette_HoOh[]; +extern const u8 gMonIcon_HoOh[]; +extern const u8 gMonFootprint_HoOh[]; +extern const u8 gMonFrontPic_Celebi[]; +extern const u8 gMonPalette_Celebi[]; +extern const u8 gMonBackPic_Celebi[]; +extern const u8 gMonShinyPalette_Celebi[]; +extern const u8 gMonIcon_Celebi[]; +extern const u8 gMonFootprint_Celebi[]; +extern const u8 gMonFrontPic_QuestionMark[]; +extern const u8 gMonPalette_QuestionMark[]; +extern const u8 gMonBackPic_QuestionMark[]; +extern const u8 gMonShinyPalette_QuestionMark[]; +extern const u8 gMonFrontPic_Treecko[]; +extern const u8 gMonPalette_Treecko[]; +extern const u8 gMonBackPic_Treecko[]; +extern const u8 gMonShinyPalette_Treecko[]; +extern const u8 gMonIcon_Treecko[]; +extern const u8 gMonFootprint_Treecko[]; +extern const u8 gMonFrontPic_Grovyle[]; +extern const u8 gMonPalette_Grovyle[]; +extern const u8 gMonBackPic_Grovyle[]; +extern const u8 gMonShinyPalette_Grovyle[]; +extern const u8 gMonIcon_Grovyle[]; +extern const u8 gMonFootprint_Grovyle[]; +extern const u8 gMonFrontPic_Sceptile[]; +extern const u8 gMonPalette_Sceptile[]; +extern const u8 gMonBackPic_Sceptile[]; +extern const u8 gMonShinyPalette_Sceptile[]; +extern const u8 gMonIcon_Sceptile[]; +extern const u8 gMonFootprint_Sceptile[]; +extern const u8 gMonFrontPic_Torchic[]; +extern const u8 gMonPalette_Torchic[]; +extern const u8 gMonBackPic_Torchic[]; +extern const u8 gMonShinyPalette_Torchic[]; +extern const u8 gMonIcon_Torchic[]; +extern const u8 gMonFootprint_Torchic[]; +extern const u8 gMonFrontPic_Combusken[]; +extern const u8 gMonPalette_Combusken[]; +extern const u8 gMonBackPic_Combusken[]; +extern const u8 gMonShinyPalette_Combusken[]; +extern const u8 gMonIcon_Combusken[]; +extern const u8 gMonFootprint_Combusken[]; +extern const u8 gMonFrontPic_Blaziken[]; +extern const u8 gMonPalette_Blaziken[]; +extern const u8 gMonBackPic_Blaziken[]; +extern const u8 gMonShinyPalette_Blaziken[]; +extern const u8 gMonIcon_Blaziken[]; +extern const u8 gMonFootprint_Blaziken[]; +extern const u8 gMonFrontPic_Mudkip[]; +extern const u8 gMonPalette_Mudkip[]; +extern const u8 gMonBackPic_Mudkip[]; +extern const u8 gMonShinyPalette_Mudkip[]; +extern const u8 gMonIcon_Mudkip[]; +extern const u8 gMonFootprint_Mudkip[]; +extern const u8 gMonFrontPic_Marshtomp[]; +extern const u8 gMonPalette_Marshtomp[]; +extern const u8 gMonBackPic_Marshtomp[]; +extern const u8 gMonShinyPalette_Marshtomp[]; +extern const u8 gMonIcon_Marshtomp[]; +extern const u8 gMonFootprint_Marshtomp[]; +extern const u8 gMonFrontPic_Swampert[]; +extern const u8 gMonPalette_Swampert[]; +extern const u8 gMonBackPic_Swampert[]; +extern const u8 gMonShinyPalette_Swampert[]; +extern const u8 gMonIcon_Swampert[]; +extern const u8 gMonFootprint_Swampert[]; +extern const u8 gMonFrontPic_Poochyena[]; +extern const u8 gMonPalette_Poochyena[]; +extern const u8 gMonBackPic_Poochyena[]; +extern const u8 gMonShinyPalette_Poochyena[]; +extern const u8 gMonIcon_Poochyena[]; +extern const u8 gMonFootprint_Poochyena[]; +extern const u8 gMonFrontPic_Mightyena[]; +extern const u8 gMonPalette_Mightyena[]; +extern const u8 gMonBackPic_Mightyena[]; +extern const u8 gMonShinyPalette_Mightyena[]; +extern const u8 gMonIcon_Mightyena[]; +extern const u8 gMonFootprint_Mightyena[]; +extern const u8 gMonFrontPic_Zigzagoon[]; +extern const u8 gMonPalette_Zigzagoon[]; +extern const u8 gMonBackPic_Zigzagoon[]; +extern const u8 gMonShinyPalette_Zigzagoon[]; +extern const u8 gMonIcon_Zigzagoon[]; +extern const u8 gMonFootprint_Zigzagoon[]; +extern const u8 gMonFrontPic_Linoone[]; +extern const u8 gMonPalette_Linoone[]; +extern const u8 gMonBackPic_Linoone[]; +extern const u8 gMonShinyPalette_Linoone[]; +extern const u8 gMonIcon_Linoone[]; +extern const u8 gMonFootprint_Linoone[]; +extern const u8 gMonFrontPic_Wurmple[]; +extern const u8 gMonPalette_Wurmple[]; +extern const u8 gMonBackPic_Wurmple[]; +extern const u8 gMonShinyPalette_Wurmple[]; +extern const u8 gMonIcon_Wurmple[]; +extern const u8 gMonFootprint_Wurmple[]; +extern const u8 gMonFrontPic_Silcoon[]; +extern const u8 gMonPalette_Silcoon[]; +extern const u8 gMonBackPic_Silcoon[]; +extern const u8 gMonShinyPalette_Silcoon[]; +extern const u8 gMonIcon_Silcoon[]; +extern const u8 gMonFootprint_Silcoon[]; +extern const u8 gMonFrontPic_Beautifly[]; +extern const u8 gMonPalette_Beautifly[]; +extern const u8 gMonBackPic_Beautifly[]; +extern const u8 gMonShinyPalette_Beautifly[]; +extern const u8 gMonIcon_Beautifly[]; +extern const u8 gMonFootprint_Beautifly[]; +extern const u8 gMonFrontPic_Cascoon[]; +extern const u8 gMonPalette_Cascoon[]; +extern const u8 gMonBackPic_Cascoon[]; +extern const u8 gMonShinyPalette_Cascoon[]; +extern const u8 gMonIcon_Cascoon[]; +extern const u8 gMonFootprint_Cascoon[]; +extern const u8 gMonFrontPic_Dustox[]; +extern const u8 gMonPalette_Dustox[]; +extern const u8 gMonBackPic_Dustox[]; +extern const u8 gMonShinyPalette_Dustox[]; +extern const u8 gMonIcon_Dustox[]; +extern const u8 gMonFootprint_Dustox[]; +extern const u8 gMonFrontPic_Lotad[]; +extern const u8 gMonPalette_Lotad[]; +extern const u8 gMonBackPic_Lotad[]; +extern const u8 gMonShinyPalette_Lotad[]; +extern const u8 gMonIcon_Lotad[]; +extern const u8 gMonFootprint_Lotad[]; +extern const u8 gMonFrontPic_Lombre[]; +extern const u8 gMonPalette_Lombre[]; +extern const u8 gMonBackPic_Lombre[]; +extern const u8 gMonShinyPalette_Lombre[]; +extern const u8 gMonIcon_Lombre[]; +extern const u8 gMonFootprint_Lombre[]; +extern const u8 gMonFrontPic_Ludicolo[]; +extern const u8 gMonPalette_Ludicolo[]; +extern const u8 gMonBackPic_Ludicolo[]; +extern const u8 gMonShinyPalette_Ludicolo[]; +extern const u8 gMonIcon_Ludicolo[]; +extern const u8 gMonFootprint_Ludicolo[]; +extern const u8 gMonFrontPic_Seedot[]; +extern const u8 gMonPalette_Seedot[]; +extern const u8 gMonBackPic_Seedot[]; +extern const u8 gMonShinyPalette_Seedot[]; +extern const u8 gMonIcon_Seedot[]; +extern const u8 gMonFootprint_Seedot[]; +extern const u8 gMonFrontPic_Nuzleaf[]; +extern const u8 gMonPalette_Nuzleaf[]; +extern const u8 gMonBackPic_Nuzleaf[]; +extern const u8 gMonShinyPalette_Nuzleaf[]; +extern const u8 gMonIcon_Nuzleaf[]; +extern const u8 gMonFootprint_Nuzleaf[]; +extern const u8 gMonFrontPic_Shiftry[]; +extern const u8 gMonPalette_Shiftry[]; +extern const u8 gMonBackPic_Shiftry[]; +extern const u8 gMonShinyPalette_Shiftry[]; +extern const u8 gMonIcon_Shiftry[]; +extern const u8 gMonFootprint_Shiftry[]; +extern const u8 gMonFrontPic_Nincada[]; +extern const u8 gMonPalette_Nincada[]; +extern const u8 gMonBackPic_Nincada[]; +extern const u8 gMonShinyPalette_Nincada[]; +extern const u8 gMonIcon_Nincada[]; +extern const u8 gMonFootprint_Nincada[]; +extern const u8 gMonFrontPic_Ninjask[]; +extern const u8 gMonPalette_Ninjask[]; +extern const u8 gMonBackPic_Ninjask[]; +extern const u8 gMonShinyPalette_Ninjask[]; +extern const u8 gMonIcon_Ninjask[]; +extern const u8 gMonFootprint_Ninjask[]; +extern const u8 gMonFrontPic_Shedinja[]; +extern const u8 gMonPalette_Shedinja[]; +extern const u8 gMonBackPic_Shedinja[]; +extern const u8 gMonShinyPalette_Shedinja[]; +extern const u8 gMonIcon_Shedinja[]; +extern const u8 gMonFootprint_Shedinja[]; +extern const u8 gMonFrontPic_Taillow[]; +extern const u8 gMonPalette_Taillow[]; +extern const u8 gMonBackPic_Taillow[]; +extern const u8 gMonShinyPalette_Taillow[]; +extern const u8 gMonIcon_Taillow[]; +extern const u8 gMonFootprint_Taillow[]; +extern const u8 gMonFrontPic_Swellow[]; +extern const u8 gMonPalette_Swellow[]; +extern const u8 gMonBackPic_Swellow[]; +extern const u8 gMonShinyPalette_Swellow[]; +extern const u8 gMonIcon_Swellow[]; +extern const u8 gMonFootprint_Swellow[]; +extern const u8 gMonFrontPic_Shroomish[]; +extern const u8 gMonPalette_Shroomish[]; +extern const u8 gMonBackPic_Shroomish[]; +extern const u8 gMonShinyPalette_Shroomish[]; +extern const u8 gMonIcon_Shroomish[]; +extern const u8 gMonFootprint_Shroomish[]; +extern const u8 gMonFrontPic_Breloom[]; +extern const u8 gMonPalette_Breloom[]; +extern const u8 gMonBackPic_Breloom[]; +extern const u8 gMonShinyPalette_Breloom[]; +extern const u8 gMonIcon_Breloom[]; +extern const u8 gMonFootprint_Breloom[]; +extern const u8 gMonFrontPic_Spinda[]; +extern const u8 gMonPalette_Spinda[]; +extern const u8 gMonBackPic_Spinda[]; +extern const u8 gMonShinyPalette_Spinda[]; +extern const u8 gMonIcon_Spinda[]; +extern const u8 gMonFootprint_Spinda[]; +extern const u8 gMonFrontPic_Wingull[]; +extern const u8 gMonPalette_Wingull[]; +extern const u8 gMonBackPic_Wingull[]; +extern const u8 gMonShinyPalette_Wingull[]; +extern const u8 gMonIcon_Wingull[]; +extern const u8 gMonFootprint_Wingull[]; +extern const u8 gMonFrontPic_Pelipper[]; +extern const u8 gMonPalette_Pelipper[]; +extern const u8 gMonBackPic_Pelipper[]; +extern const u8 gMonShinyPalette_Pelipper[]; +extern const u8 gMonIcon_Pelipper[]; +extern const u8 gMonFootprint_Pelipper[]; +extern const u8 gMonFrontPic_Surskit[]; +extern const u8 gMonPalette_Surskit[]; +extern const u8 gMonBackPic_Surskit[]; +extern const u8 gMonShinyPalette_Surskit[]; +extern const u8 gMonIcon_Surskit[]; +extern const u8 gMonFootprint_Surskit[]; +extern const u8 gMonFrontPic_Masquerain[]; +extern const u8 gMonPalette_Masquerain[]; +extern const u8 gMonBackPic_Masquerain[]; +extern const u8 gMonShinyPalette_Masquerain[]; +extern const u8 gMonIcon_Masquerain[]; +extern const u8 gMonFootprint_Masquerain[]; +extern const u8 gMonFrontPic_Wailmer[]; +extern const u8 gMonPalette_Wailmer[]; +extern const u8 gMonBackPic_Wailmer[]; +extern const u8 gMonShinyPalette_Wailmer[]; +extern const u8 gMonIcon_Wailmer[]; +extern const u8 gMonFootprint_Wailmer[]; +extern const u8 gMonFrontPic_Wailord[]; +extern const u8 gMonPalette_Wailord[]; +extern const u8 gMonBackPic_Wailord[]; +extern const u8 gMonShinyPalette_Wailord[]; +extern const u8 gMonIcon_Wailord[]; +extern const u8 gMonFootprint_Wailord[]; +extern const u8 gMonFrontPic_Skitty[]; +extern const u8 gMonPalette_Skitty[]; +extern const u8 gMonBackPic_Skitty[]; +extern const u8 gMonShinyPalette_Skitty[]; +extern const u8 gMonIcon_Skitty[]; +extern const u8 gMonFootprint_Skitty[]; +extern const u8 gMonFrontPic_Delcatty[]; +extern const u8 gMonPalette_Delcatty[]; +extern const u8 gMonBackPic_Delcatty[]; +extern const u8 gMonShinyPalette_Delcatty[]; +extern const u8 gMonIcon_Delcatty[]; +extern const u8 gMonFootprint_Delcatty[]; +extern const u8 gMonFrontPic_Kecleon[]; +extern const u8 gMonPalette_Kecleon[]; +extern const u8 gMonBackPic_Kecleon[]; +extern const u8 gMonShinyPalette_Kecleon[]; +extern const u8 gMonIcon_Kecleon[]; +extern const u8 gMonFootprint_Kecleon[]; +extern const u8 gMonFrontPic_Baltoy[]; +extern const u8 gMonPalette_Baltoy[]; +extern const u8 gMonBackPic_Baltoy[]; +extern const u8 gMonShinyPalette_Baltoy[]; +extern const u8 gMonIcon_Baltoy[]; +extern const u8 gMonFootprint_Baltoy[]; +extern const u8 gMonFrontPic_Claydol[]; +extern const u8 gMonPalette_Claydol[]; +extern const u8 gMonBackPic_Claydol[]; +extern const u8 gMonShinyPalette_Claydol[]; +extern const u8 gMonIcon_Claydol[]; +extern const u8 gMonFootprint_Claydol[]; +extern const u8 gMonFrontPic_Nosepass[]; +extern const u8 gMonPalette_Nosepass[]; +extern const u8 gMonBackPic_Nosepass[]; +extern const u8 gMonShinyPalette_Nosepass[]; +extern const u8 gMonIcon_Nosepass[]; +extern const u8 gMonFootprint_Nosepass[]; +extern const u8 gMonFrontPic_Torkoal[]; +extern const u8 gMonPalette_Torkoal[]; +extern const u8 gMonBackPic_Torkoal[]; +extern const u8 gMonShinyPalette_Torkoal[]; +extern const u8 gMonIcon_Torkoal[]; +extern const u8 gMonFootprint_Torkoal[]; +extern const u8 gMonFrontPic_Sableye[]; +extern const u8 gMonPalette_Sableye[]; +extern const u8 gMonBackPic_Sableye[]; +extern const u8 gMonShinyPalette_Sableye[]; +extern const u8 gMonIcon_Sableye[]; +extern const u8 gMonFootprint_Sableye[]; +extern const u8 gMonFrontPic_Barboach[]; +extern const u8 gMonPalette_Barboach[]; +extern const u8 gMonBackPic_Barboach[]; +extern const u8 gMonShinyPalette_Barboach[]; +extern const u8 gMonIcon_Barboach[]; +extern const u8 gMonFootprint_Barboach[]; +extern const u8 gMonFrontPic_Whiscash[]; +extern const u8 gMonPalette_Whiscash[]; +extern const u8 gMonBackPic_Whiscash[]; +extern const u8 gMonShinyPalette_Whiscash[]; +extern const u8 gMonIcon_Whiscash[]; +extern const u8 gMonFootprint_Whiscash[]; +extern const u8 gMonFrontPic_Luvdisc[]; +extern const u8 gMonPalette_Luvdisc[]; +extern const u8 gMonBackPic_Luvdisc[]; +extern const u8 gMonShinyPalette_Luvdisc[]; +extern const u8 gMonIcon_Luvdisc[]; +extern const u8 gMonFootprint_Luvdisc[]; +extern const u8 gMonFrontPic_Corphish[]; +extern const u8 gMonPalette_Corphish[]; +extern const u8 gMonBackPic_Corphish[]; +extern const u8 gMonShinyPalette_Corphish[]; +extern const u8 gMonIcon_Corphish[]; +extern const u8 gMonFootprint_Corphish[]; +extern const u8 gMonFrontPic_Crawdaunt[]; +extern const u8 gMonPalette_Crawdaunt[]; +extern const u8 gMonBackPic_Crawdaunt[]; +extern const u8 gMonShinyPalette_Crawdaunt[]; +extern const u8 gMonIcon_Crawdaunt[]; +extern const u8 gMonFootprint_Crawdaunt[]; +extern const u8 gMonFrontPic_Feebas[]; +extern const u8 gMonPalette_Feebas[]; +extern const u8 gMonBackPic_Feebas[]; +extern const u8 gMonShinyPalette_Feebas[]; +extern const u8 gMonIcon_Feebas[]; +extern const u8 gMonFootprint_Feebas[]; +extern const u8 gMonFrontPic_Milotic[]; +extern const u8 gMonPalette_Milotic[]; +extern const u8 gMonBackPic_Milotic[]; +extern const u8 gMonShinyPalette_Milotic[]; +extern const u8 gMonIcon_Milotic[]; +extern const u8 gMonFootprint_Milotic[]; +extern const u8 gMonFrontPic_Carvanha[]; +extern const u8 gMonPalette_Carvanha[]; +extern const u8 gMonBackPic_Carvanha[]; +extern const u8 gMonShinyPalette_Carvanha[]; +extern const u8 gMonIcon_Carvanha[]; +extern const u8 gMonFootprint_Carvanha[]; +extern const u8 gMonFrontPic_Sharpedo[]; +extern const u8 gMonPalette_Sharpedo[]; +extern const u8 gMonBackPic_Sharpedo[]; +extern const u8 gMonShinyPalette_Sharpedo[]; +extern const u8 gMonIcon_Sharpedo[]; +extern const u8 gMonFootprint_Sharpedo[]; +extern const u8 gMonFrontPic_Trapinch[]; +extern const u8 gMonPalette_Trapinch[]; +extern const u8 gMonBackPic_Trapinch[]; +extern const u8 gMonShinyPalette_Trapinch[]; +extern const u8 gMonIcon_Trapinch[]; +extern const u8 gMonFootprint_Trapinch[]; +extern const u8 gMonFrontPic_Vibrava[]; +extern const u8 gMonPalette_Vibrava[]; +extern const u8 gMonBackPic_Vibrava[]; +extern const u8 gMonShinyPalette_Vibrava[]; +extern const u8 gMonIcon_Vibrava[]; +extern const u8 gMonFootprint_Vibrava[]; +extern const u8 gMonFrontPic_Flygon[]; +extern const u8 gMonPalette_Flygon[]; +extern const u8 gMonBackPic_Flygon[]; +extern const u8 gMonShinyPalette_Flygon[]; +extern const u8 gMonIcon_Flygon[]; +extern const u8 gMonFootprint_Flygon[]; +extern const u8 gMonFrontPic_Makuhita[]; +extern const u8 gMonPalette_Makuhita[]; +extern const u8 gMonBackPic_Makuhita[]; +extern const u8 gMonShinyPalette_Makuhita[]; +extern const u8 gMonIcon_Makuhita[]; +extern const u8 gMonFootprint_Makuhita[]; +extern const u8 gMonFrontPic_Hariyama[]; +extern const u8 gMonPalette_Hariyama[]; +extern const u8 gMonBackPic_Hariyama[]; +extern const u8 gMonShinyPalette_Hariyama[]; +extern const u8 gMonIcon_Hariyama[]; +extern const u8 gMonFootprint_Hariyama[]; +extern const u8 gMonFrontPic_Electrike[]; +extern const u8 gMonPalette_Electrike[]; +extern const u8 gMonBackPic_Electrike[]; +extern const u8 gMonShinyPalette_Electrike[]; +extern const u8 gMonIcon_Electrike[]; +extern const u8 gMonFootprint_Electrike[]; +extern const u8 gMonFrontPic_Manectric[]; +extern const u8 gMonPalette_Manectric[]; +extern const u8 gMonBackPic_Manectric[]; +extern const u8 gMonShinyPalette_Manectric[]; +extern const u8 gMonIcon_Manectric[]; +extern const u8 gMonFootprint_Manectric[]; +extern const u8 gMonFrontPic_Numel[]; +extern const u8 gMonPalette_Numel[]; +extern const u8 gMonBackPic_Numel[]; +extern const u8 gMonShinyPalette_Numel[]; +extern const u8 gMonIcon_Numel[]; +extern const u8 gMonFootprint_Numel[]; +extern const u8 gMonFrontPic_Camerupt[]; +extern const u8 gMonPalette_Camerupt[]; +extern const u8 gMonBackPic_Camerupt[]; +extern const u8 gMonShinyPalette_Camerupt[]; +extern const u8 gMonIcon_Camerupt[]; +extern const u8 gMonFootprint_Camerupt[]; +extern const u8 gMonFrontPic_Spheal[]; +extern const u8 gMonPalette_Spheal[]; +extern const u8 gMonBackPic_Spheal[]; +extern const u8 gMonShinyPalette_Spheal[]; +extern const u8 gMonIcon_Spheal[]; +extern const u8 gMonFootprint_Spheal[]; +extern const u8 gMonFrontPic_Sealeo[]; +extern const u8 gMonPalette_Sealeo[]; +extern const u8 gMonBackPic_Sealeo[]; +extern const u8 gMonShinyPalette_Sealeo[]; +extern const u8 gMonIcon_Sealeo[]; +extern const u8 gMonFootprint_Sealeo[]; +extern const u8 gMonFrontPic_Walrein[]; +extern const u8 gMonPalette_Walrein[]; +extern const u8 gMonBackPic_Walrein[]; +extern const u8 gMonShinyPalette_Walrein[]; +extern const u8 gMonIcon_Walrein[]; +extern const u8 gMonFootprint_Walrein[]; +extern const u8 gMonFrontPic_Cacnea[]; +extern const u8 gMonPalette_Cacnea[]; +extern const u8 gMonBackPic_Cacnea[]; +extern const u8 gMonShinyPalette_Cacnea[]; +extern const u8 gMonIcon_Cacnea[]; +extern const u8 gMonFootprint_Cacnea[]; +extern const u8 gMonFrontPic_Cacturne[]; +extern const u8 gMonPalette_Cacturne[]; +extern const u8 gMonBackPic_Cacturne[]; +extern const u8 gMonShinyPalette_Cacturne[]; +extern const u8 gMonIcon_Cacturne[]; +extern const u8 gMonFootprint_Cacturne[]; +extern const u8 gMonFrontPic_Snorunt[]; +extern const u8 gMonPalette_Snorunt[]; +extern const u8 gMonBackPic_Snorunt[]; +extern const u8 gMonShinyPalette_Snorunt[]; +extern const u8 gMonIcon_Snorunt[]; +extern const u8 gMonFootprint_Snorunt[]; +extern const u8 gMonFrontPic_Glalie[]; +extern const u8 gMonPalette_Glalie[]; +extern const u8 gMonBackPic_Glalie[]; +extern const u8 gMonShinyPalette_Glalie[]; +extern const u8 gMonIcon_Glalie[]; +extern const u8 gMonFootprint_Glalie[]; +extern const u8 gMonFrontPic_Lunatone[]; +extern const u8 gMonPalette_Lunatone[]; +extern const u8 gMonBackPic_Lunatone[]; +extern const u8 gMonShinyPalette_Lunatone[]; +extern const u8 gMonIcon_Lunatone[]; +extern const u8 gMonFootprint_Lunatone[]; +extern const u8 gMonFrontPic_Solrock[]; +extern const u8 gMonPalette_Solrock[]; +extern const u8 gMonBackPic_Solrock[]; +extern const u8 gMonShinyPalette_Solrock[]; +extern const u8 gMonIcon_Solrock[]; +extern const u8 gMonFootprint_Solrock[]; +extern const u8 gMonFrontPic_Azurill[]; +extern const u8 gMonPalette_Azurill[]; +extern const u8 gMonBackPic_Azurill[]; +extern const u8 gMonShinyPalette_Azurill[]; +extern const u8 gMonIcon_Azurill[]; +extern const u8 gMonFootprint_Azurill[]; +extern const u8 gMonFrontPic_Spoink[]; +extern const u8 gMonPalette_Spoink[]; +extern const u8 gMonBackPic_Spoink[]; +extern const u8 gMonShinyPalette_Spoink[]; +extern const u8 gMonIcon_Spoink[]; +extern const u8 gMonFootprint_Spoink[]; +extern const u8 gMonFrontPic_Grumpig[]; +extern const u8 gMonPalette_Grumpig[]; +extern const u8 gMonBackPic_Grumpig[]; +extern const u8 gMonShinyPalette_Grumpig[]; +extern const u8 gMonIcon_Grumpig[]; +extern const u8 gMonFootprint_Grumpig[]; +extern const u8 gMonFrontPic_Plusle[]; +extern const u8 gMonPalette_Plusle[]; +extern const u8 gMonBackPic_Plusle[]; +extern const u8 gMonShinyPalette_Plusle[]; +extern const u8 gMonIcon_Plusle[]; +extern const u8 gMonFootprint_Plusle[]; +extern const u8 gMonFrontPic_Minun[]; +extern const u8 gMonPalette_Minun[]; +extern const u8 gMonBackPic_Minun[]; +extern const u8 gMonShinyPalette_Minun[]; +extern const u8 gMonIcon_Minun[]; +extern const u8 gMonFootprint_Minun[]; +extern const u8 gMonFrontPic_Mawile[]; +extern const u8 gMonPalette_Mawile[]; +extern const u8 gMonBackPic_Mawile[]; +extern const u8 gMonShinyPalette_Mawile[]; +extern const u8 gMonIcon_Mawile[]; +extern const u8 gMonFootprint_Mawile[]; +extern const u8 gMonFrontPic_Meditite[]; +extern const u8 gMonPalette_Meditite[]; +extern const u8 gMonBackPic_Meditite[]; +extern const u8 gMonShinyPalette_Meditite[]; +extern const u8 gMonIcon_Meditite[]; +extern const u8 gMonFootprint_Meditite[]; +extern const u8 gMonFrontPic_Medicham[]; +extern const u8 gMonPalette_Medicham[]; +extern const u8 gMonBackPic_Medicham[]; +extern const u8 gMonShinyPalette_Medicham[]; +extern const u8 gMonIcon_Medicham[]; +extern const u8 gMonFootprint_Medicham[]; +extern const u8 gMonFrontPic_Swablu[]; +extern const u8 gMonPalette_Swablu[]; +extern const u8 gMonBackPic_Swablu[]; +extern const u8 gMonShinyPalette_Swablu[]; +extern const u8 gMonIcon_Swablu[]; +extern const u8 gMonFootprint_Swablu[]; +extern const u8 gMonFrontPic_Altaria[]; +extern const u8 gMonPalette_Altaria[]; +extern const u8 gMonBackPic_Altaria[]; +extern const u8 gMonShinyPalette_Altaria[]; +extern const u8 gMonIcon_Altaria[]; +extern const u8 gMonFootprint_Altaria[]; +extern const u8 gMonFrontPic_Wynaut[]; +extern const u8 gMonPalette_Wynaut[]; +extern const u8 gMonBackPic_Wynaut[]; +extern const u8 gMonShinyPalette_Wynaut[]; +extern const u8 gMonIcon_Wynaut[]; +extern const u8 gMonFootprint_Wynaut[]; +extern const u8 gMonFrontPic_Duskull[]; +extern const u8 gMonPalette_Duskull[]; +extern const u8 gMonBackPic_Duskull[]; +extern const u8 gMonShinyPalette_Duskull[]; +extern const u8 gMonIcon_Duskull[]; +extern const u8 gMonFootprint_Duskull[]; +extern const u8 gMonFrontPic_Dusclops[]; +extern const u8 gMonPalette_Dusclops[]; +extern const u8 gMonBackPic_Dusclops[]; +extern const u8 gMonShinyPalette_Dusclops[]; +extern const u8 gMonIcon_Dusclops[]; +extern const u8 gMonFootprint_Dusclops[]; +extern const u8 gMonFrontPic_Roselia[]; +extern const u8 gMonPalette_Roselia[]; +extern const u8 gMonBackPic_Roselia[]; +extern const u8 gMonShinyPalette_Roselia[]; +extern const u8 gMonIcon_Roselia[]; +extern const u8 gMonFootprint_Roselia[]; +extern const u8 gMonFrontPic_Slakoth[]; +extern const u8 gMonPalette_Slakoth[]; +extern const u8 gMonBackPic_Slakoth[]; +extern const u8 gMonShinyPalette_Slakoth[]; +extern const u8 gMonIcon_Slakoth[]; +extern const u8 gMonFootprint_Slakoth[]; +extern const u8 gMonFrontPic_Vigoroth[]; +extern const u8 gMonPalette_Vigoroth[]; +extern const u8 gMonBackPic_Vigoroth[]; +extern const u8 gMonShinyPalette_Vigoroth[]; +extern const u8 gMonIcon_Vigoroth[]; +extern const u8 gMonFootprint_Vigoroth[]; +extern const u8 gMonFrontPic_Slaking[]; +extern const u8 gMonPalette_Slaking[]; +extern const u8 gMonBackPic_Slaking[]; +extern const u8 gMonShinyPalette_Slaking[]; +extern const u8 gMonIcon_Slaking[]; +extern const u8 gMonFootprint_Slaking[]; +extern const u8 gMonFrontPic_Gulpin[]; +extern const u8 gMonPalette_Gulpin[]; +extern const u8 gMonBackPic_Gulpin[]; +extern const u8 gMonShinyPalette_Gulpin[]; +extern const u8 gMonIcon_Gulpin[]; +extern const u8 gMonFootprint_Gulpin[]; +extern const u8 gMonFrontPic_Swalot[]; +extern const u8 gMonPalette_Swalot[]; +extern const u8 gMonBackPic_Swalot[]; +extern const u8 gMonShinyPalette_Swalot[]; +extern const u8 gMonIcon_Swalot[]; +extern const u8 gMonFootprint_Swalot[]; +extern const u8 gMonFrontPic_Tropius[]; +extern const u8 gMonPalette_Tropius[]; +extern const u8 gMonBackPic_Tropius[]; +extern const u8 gMonShinyPalette_Tropius[]; +extern const u8 gMonIcon_Tropius[]; +extern const u8 gMonFootprint_Tropius[]; +extern const u8 gMonFrontPic_Whismur[]; +extern const u8 gMonPalette_Whismur[]; +extern const u8 gMonBackPic_Whismur[]; +extern const u8 gMonShinyPalette_Whismur[]; +extern const u8 gMonIcon_Whismur[]; +extern const u8 gMonFootprint_Whismur[]; +extern const u8 gMonFrontPic_Loudred[]; +extern const u8 gMonPalette_Loudred[]; +extern const u8 gMonBackPic_Loudred[]; +extern const u8 gMonShinyPalette_Loudred[]; +extern const u8 gMonIcon_Loudred[]; +extern const u8 gMonFootprint_Loudred[]; +extern const u8 gMonFrontPic_Exploud[]; +extern const u8 gMonPalette_Exploud[]; +extern const u8 gMonBackPic_Exploud[]; +extern const u8 gMonShinyPalette_Exploud[]; +extern const u8 gMonIcon_Exploud[]; +extern const u8 gMonFootprint_Exploud[]; +extern const u8 gMonFrontPic_Clamperl[]; +extern const u8 gMonPalette_Clamperl[]; +extern const u8 gMonBackPic_Clamperl[]; +extern const u8 gMonShinyPalette_Clamperl[]; +extern const u8 gMonIcon_Clamperl[]; +extern const u8 gMonFootprint_Clamperl[]; +extern const u8 gMonFrontPic_Huntail[]; +extern const u8 gMonPalette_Huntail[]; +extern const u8 gMonBackPic_Huntail[]; +extern const u8 gMonShinyPalette_Huntail[]; +extern const u8 gMonIcon_Huntail[]; +extern const u8 gMonFootprint_Huntail[]; +extern const u8 gMonFrontPic_Gorebyss[]; +extern const u8 gMonPalette_Gorebyss[]; +extern const u8 gMonBackPic_Gorebyss[]; +extern const u8 gMonShinyPalette_Gorebyss[]; +extern const u8 gMonIcon_Gorebyss[]; +extern const u8 gMonFootprint_Gorebyss[]; +extern const u8 gMonFrontPic_Absol[]; +extern const u8 gMonPalette_Absol[]; +extern const u8 gMonBackPic_Absol[]; +extern const u8 gMonShinyPalette_Absol[]; +extern const u8 gMonIcon_Absol[]; +extern const u8 gMonFootprint_Absol[]; +extern const u8 gMonFrontPic_Shuppet[]; +extern const u8 gMonPalette_Shuppet[]; +extern const u8 gMonBackPic_Shuppet[]; +extern const u8 gMonShinyPalette_Shuppet[]; +extern const u8 gMonIcon_Shuppet[]; +extern const u8 gMonFootprint_Shuppet[]; +extern const u8 gMonFrontPic_Banette[]; +extern const u8 gMonPalette_Banette[]; +extern const u8 gMonBackPic_Banette[]; +extern const u8 gMonShinyPalette_Banette[]; +extern const u8 gMonIcon_Banette[]; +extern const u8 gMonFootprint_Banette[]; +extern const u8 gMonFrontPic_Seviper[]; +extern const u8 gMonPalette_Seviper[]; +extern const u8 gMonBackPic_Seviper[]; +extern const u8 gMonShinyPalette_Seviper[]; +extern const u8 gMonIcon_Seviper[]; +extern const u8 gMonFootprint_Seviper[]; +extern const u8 gMonFrontPic_Zangoose[]; +extern const u8 gMonPalette_Zangoose[]; +extern const u8 gMonBackPic_Zangoose[]; +extern const u8 gMonShinyPalette_Zangoose[]; +extern const u8 gMonIcon_Zangoose[]; +extern const u8 gMonFootprint_Zangoose[]; +extern const u8 gMonFrontPic_Relicanth[]; +extern const u8 gMonPalette_Relicanth[]; +extern const u8 gMonBackPic_Relicanth[]; +extern const u8 gMonShinyPalette_Relicanth[]; +extern const u8 gMonIcon_Relicanth[]; +extern const u8 gMonFootprint_Relicanth[]; +extern const u8 gMonFrontPic_Aron[]; +extern const u8 gMonPalette_Aron[]; +extern const u8 gMonBackPic_Aron[]; +extern const u8 gMonShinyPalette_Aron[]; +extern const u8 gMonIcon_Aron[]; +extern const u8 gMonFootprint_Aron[]; +extern const u8 gMonFrontPic_Lairon[]; +extern const u8 gMonPalette_Lairon[]; +extern const u8 gMonBackPic_Lairon[]; +extern const u8 gMonShinyPalette_Lairon[]; +extern const u8 gMonIcon_Lairon[]; +extern const u8 gMonFootprint_Lairon[]; +extern const u8 gMonFrontPic_Aggron[]; +extern const u8 gMonPalette_Aggron[]; +extern const u8 gMonBackPic_Aggron[]; +extern const u8 gMonShinyPalette_Aggron[]; +extern const u8 gMonIcon_Aggron[]; +extern const u8 gMonFootprint_Aggron[]; +extern const u8 gMonFrontPic_Castform[]; +extern const u8 gMonPalette_Castform[]; +extern const u8 gMonBackPic_Castform[]; +extern const u8 gMonShinyPalette_Castform[]; +extern const u8 gMonIcon_Castform[]; +extern const u8 gMonFootprint_Castform[]; +extern const u8 gMonFrontPic_Volbeat[]; +extern const u8 gMonPalette_Volbeat[]; +extern const u8 gMonBackPic_Volbeat[]; +extern const u8 gMonShinyPalette_Volbeat[]; +extern const u8 gMonIcon_Volbeat[]; +extern const u8 gMonFootprint_Volbeat[]; +extern const u8 gMonFrontPic_Illumise[]; +extern const u8 gMonPalette_Illumise[]; +extern const u8 gMonBackPic_Illumise[]; +extern const u8 gMonShinyPalette_Illumise[]; +extern const u8 gMonIcon_Illumise[]; +extern const u8 gMonFootprint_Illumise[]; +extern const u8 gMonFrontPic_Lileep[]; +extern const u8 gMonPalette_Lileep[]; +extern const u8 gMonBackPic_Lileep[]; +extern const u8 gMonShinyPalette_Lileep[]; +extern const u8 gMonIcon_Lileep[]; +extern const u8 gMonFootprint_Lileep[]; +extern const u8 gMonFrontPic_Cradily[]; +extern const u8 gMonPalette_Cradily[]; +extern const u8 gMonBackPic_Cradily[]; +extern const u8 gMonShinyPalette_Cradily[]; +extern const u8 gMonIcon_Cradily[]; +extern const u8 gMonFootprint_Cradily[]; +extern const u8 gMonFrontPic_Anorith[]; +extern const u8 gMonPalette_Anorith[]; +extern const u8 gMonBackPic_Anorith[]; +extern const u8 gMonShinyPalette_Anorith[]; +extern const u8 gMonIcon_Anorith[]; +extern const u8 gMonFootprint_Anorith[]; +extern const u8 gMonFrontPic_Armaldo[]; +extern const u8 gMonPalette_Armaldo[]; +extern const u8 gMonBackPic_Armaldo[]; +extern const u8 gMonShinyPalette_Armaldo[]; +extern const u8 gMonIcon_Armaldo[]; +extern const u8 gMonFootprint_Armaldo[]; +extern const u8 gMonFrontPic_Ralts[]; +extern const u8 gMonPalette_Ralts[]; +extern const u8 gMonBackPic_Ralts[]; +extern const u8 gMonShinyPalette_Ralts[]; +extern const u8 gMonIcon_Ralts[]; +extern const u8 gMonFootprint_Ralts[]; +extern const u8 gMonFrontPic_Kirlia[]; +extern const u8 gMonPalette_Kirlia[]; +extern const u8 gMonBackPic_Kirlia[]; +extern const u8 gMonShinyPalette_Kirlia[]; +extern const u8 gMonIcon_Kirlia[]; +extern const u8 gMonFootprint_Kirlia[]; +extern const u8 gMonFrontPic_Gardevoir[]; +extern const u8 gMonPalette_Gardevoir[]; +extern const u8 gMonBackPic_Gardevoir[]; +extern const u8 gMonShinyPalette_Gardevoir[]; +extern const u8 gMonIcon_Gardevoir[]; +extern const u8 gMonFootprint_Gardevoir[]; +extern const u8 gMonFrontPic_Bagon[]; +extern const u8 gMonPalette_Bagon[]; +extern const u8 gMonBackPic_Bagon[]; +extern const u8 gMonShinyPalette_Bagon[]; +extern const u8 gMonIcon_Bagon[]; +extern const u8 gMonFootprint_Bagon[]; +extern const u8 gMonFrontPic_Shelgon[]; +extern const u8 gMonPalette_Shelgon[]; +extern const u8 gMonBackPic_Shelgon[]; +extern const u8 gMonShinyPalette_Shelgon[]; +extern const u8 gMonIcon_Shelgon[]; +extern const u8 gMonFootprint_Shelgon[]; +extern const u8 gMonFrontPic_Salamence[]; +extern const u8 gMonPalette_Salamence[]; +extern const u8 gMonBackPic_Salamence[]; +extern const u8 gMonShinyPalette_Salamence[]; +extern const u8 gMonIcon_Salamence[]; +extern const u8 gMonFootprint_Salamence[]; +extern const u8 gMonFrontPic_Beldum[]; +extern const u8 gMonPalette_Beldum[]; +extern const u8 gMonBackPic_Beldum[]; +extern const u8 gMonShinyPalette_Beldum[]; +extern const u8 gMonIcon_Beldum[]; +extern const u8 gMonFootprint_Beldum[]; +extern const u8 gMonFrontPic_Metang[]; +extern const u8 gMonPalette_Metang[]; +extern const u8 gMonBackPic_Metang[]; +extern const u8 gMonShinyPalette_Metang[]; +extern const u8 gMonIcon_Metang[]; +extern const u8 gMonFootprint_Metang[]; +extern const u8 gMonFrontPic_Metagross[]; +extern const u8 gMonPalette_Metagross[]; +extern const u8 gMonBackPic_Metagross[]; +extern const u8 gMonShinyPalette_Metagross[]; +extern const u8 gMonIcon_Metagross[]; +extern const u8 gMonFootprint_Metagross[]; +extern const u8 gMonFrontPic_Regirock[]; +extern const u8 gMonPalette_Regirock[]; +extern const u8 gMonBackPic_Regirock[]; +extern const u8 gMonShinyPalette_Regirock[]; +extern const u8 gMonIcon_Regirock[]; +extern const u8 gMonFootprint_Regirock[]; +extern const u8 gMonFrontPic_Regice[]; +extern const u8 gMonPalette_Regice[]; +extern const u8 gMonBackPic_Regice[]; +extern const u8 gMonShinyPalette_Regice[]; +extern const u8 gMonIcon_Regice[]; +extern const u8 gMonFootprint_Regice[]; +extern const u8 gMonFrontPic_Registeel[]; +extern const u8 gMonPalette_Registeel[]; +extern const u8 gMonBackPic_Registeel[]; +extern const u8 gMonShinyPalette_Registeel[]; +extern const u8 gMonIcon_Registeel[]; +extern const u8 gMonFootprint_Registeel[]; +extern const u8 gMonFrontPic_Kyogre[]; +extern const u8 gMonPalette_Kyogre[]; +extern const u8 gMonBackPic_Kyogre[]; +extern const u8 gMonShinyPalette_Kyogre[]; +extern const u8 gMonIcon_Kyogre[]; +extern const u8 gMonFootprint_Kyogre[]; +extern const u8 gMonFrontPic_Groudon[]; +extern const u8 gMonPalette_Groudon[]; +extern const u8 gMonBackPic_Groudon[]; +extern const u8 gMonShinyPalette_Groudon[]; +extern const u8 gMonIcon_Groudon[]; +extern const u8 gMonFootprint_Groudon[]; +extern const u8 gMonFrontPic_Rayquaza[]; +extern const u8 gMonPalette_Rayquaza[]; +extern const u8 gMonBackPic_Rayquaza[]; +extern const u8 gMonShinyPalette_Rayquaza[]; +extern const u8 gMonIcon_Rayquaza[]; +extern const u8 gMonFootprint_Rayquaza[]; +extern const u8 gMonFrontPic_Latias[]; +extern const u8 gMonPalette_Latias[]; +extern const u8 gMonBackPic_Latias[]; +extern const u8 gMonShinyPalette_Latias[]; +extern const u8 gMonIcon_Latias[]; +extern const u8 gMonFootprint_Latias[]; +extern const u8 gMonFrontPic_Latios[]; +extern const u8 gMonPalette_Latios[]; +extern const u8 gMonBackPic_Latios[]; +extern const u8 gMonShinyPalette_Latios[]; +extern const u8 gMonIcon_Latios[]; +extern const u8 gMonFootprint_Latios[]; +extern const u8 gMonFrontPic_Jirachi[]; +extern const u8 gMonPalette_Jirachi[]; +extern const u8 gMonBackPic_Jirachi[]; +extern const u8 gMonShinyPalette_Jirachi[]; +extern const u8 gMonIcon_Jirachi[]; +extern const u8 gMonFootprint_Jirachi[]; +extern const u8 gMonFrontPic_Deoxys[]; +extern const u8 gMonPalette_Deoxys[]; +extern const u8 gMonBackPic_Deoxys[]; +extern const u8 gMonShinyPalette_Deoxys[]; +extern const u8 gMonIcon_Deoxys[]; +extern const u8 gMonFootprint_Deoxys[]; +extern const u8 gMonFrontPic_Chimecho[]; +extern const u8 gMonPalette_Chimecho[]; +extern const u8 gMonBackPic_Chimecho[]; +extern const u8 gMonShinyPalette_Chimecho[]; +extern const u8 gMonIcon_Chimecho[]; +extern const u8 gMonFootprint_Chimecho[]; +extern const u8 gMonPic_Egg[]; +extern const u8 gMonPalette_Egg[]; +extern const u8 gMonFrontPic_UnownB[]; +extern const u8 gMonBackPic_UnownB[]; +extern const u8 gMonIcon_UnownB[]; +extern const u8 gMonFrontPic_UnownC[]; +extern const u8 gMonBackPic_UnownC[]; +extern const u8 gMonIcon_UnownC[]; +extern const u8 gMonFrontPic_UnownD[]; +extern const u8 gMonBackPic_UnownD[]; +extern const u8 gMonIcon_UnownD[]; +extern const u8 gMonFrontPic_UnownE[]; +extern const u8 gMonBackPic_UnownE[]; +extern const u8 gMonIcon_UnownE[]; +extern const u8 gMonFrontPic_UnownF[]; +extern const u8 gMonBackPic_UnownF[]; +extern const u8 gMonIcon_UnownF[]; +extern const u8 gMonFrontPic_UnownG[]; +extern const u8 gMonBackPic_UnownG[]; +extern const u8 gMonIcon_UnownG[]; +extern const u8 gMonFrontPic_UnownH[]; +extern const u8 gMonBackPic_UnownH[]; +extern const u8 gMonIcon_UnownH[]; +extern const u8 gMonFrontPic_UnownI[]; +extern const u8 gMonBackPic_UnownI[]; +extern const u8 gMonIcon_UnownI[]; +extern const u8 gMonFrontPic_UnownJ[]; +extern const u8 gMonBackPic_UnownJ[]; +extern const u8 gMonIcon_UnownJ[]; +extern const u8 gMonFrontPic_UnownK[]; +extern const u8 gMonBackPic_UnownK[]; +extern const u8 gMonIcon_UnownK[]; +extern const u8 gMonFrontPic_UnownL[]; +extern const u8 gMonBackPic_UnownL[]; +extern const u8 gMonIcon_UnownL[]; +extern const u8 gMonFrontPic_UnownM[]; +extern const u8 gMonBackPic_UnownM[]; +extern const u8 gMonIcon_UnownM[]; +extern const u8 gMonFrontPic_UnownN[]; +extern const u8 gMonBackPic_UnownN[]; +extern const u8 gMonIcon_UnownN[]; +extern const u8 gMonFrontPic_UnownO[]; +extern const u8 gMonBackPic_UnownO[]; +extern const u8 gMonIcon_UnownO[]; +extern const u8 gMonFrontPic_UnownP[]; +extern const u8 gMonBackPic_UnownP[]; +extern const u8 gMonIcon_UnownP[]; +extern const u8 gMonFrontPic_UnownQ[]; +extern const u8 gMonBackPic_UnownQ[]; +extern const u8 gMonIcon_UnownQ[]; +extern const u8 gMonFrontPic_UnownR[]; +extern const u8 gMonBackPic_UnownR[]; +extern const u8 gMonIcon_UnownR[]; +extern const u8 gMonFrontPic_UnownS[]; +extern const u8 gMonBackPic_UnownS[]; +extern const u8 gMonIcon_UnownS[]; +extern const u8 gMonFrontPic_UnownT[]; +extern const u8 gMonBackPic_UnownT[]; +extern const u8 gMonIcon_UnownT[]; +extern const u8 gMonFrontPic_UnownU[]; +extern const u8 gMonBackPic_UnownU[]; +extern const u8 gMonIcon_UnownU[]; +extern const u8 gMonFrontPic_UnownV[]; +extern const u8 gMonBackPic_UnownV[]; +extern const u8 gMonIcon_UnownV[]; +extern const u8 gMonFrontPic_UnownW[]; +extern const u8 gMonBackPic_UnownW[]; +extern const u8 gMonIcon_UnownW[]; +extern const u8 gMonFrontPic_UnownX[]; +extern const u8 gMonBackPic_UnownX[]; +extern const u8 gMonIcon_UnownX[]; +extern const u8 gMonFrontPic_UnownY[]; +extern const u8 gMonBackPic_UnownY[]; +extern const u8 gMonIcon_UnownY[]; +extern const u8 gMonFrontPic_UnownZ[]; +extern const u8 gMonBackPic_UnownZ[]; +extern const u8 gMonIcon_UnownZ[]; +extern const u8 gMonFrontPic_UnownExclamationMark[]; +extern const u8 gMonBackPic_UnownExclamationMark[]; +extern const u8 gMonIcon_UnownExclamationMark[]; +extern const u8 gMonFrontPic_UnownQuestionMark[]; +extern const u8 gMonBackPic_UnownQuestionMark[]; +extern const u8 gMonIcon_UnownQuestionMark[]; + +#endif // GUARD_GRAPHICS_H diff --git a/include/hall_of_fame.h b/include/hall_of_fame.h new file mode 100644 index 000000000..62e84c39e --- /dev/null +++ b/include/hall_of_fame.h @@ -0,0 +1,9 @@ +#ifndef GUARD_HALL_OF_FAME_H +#define GUARD_HALL_OF_FAME_H + +void sub_8141F90(void); +void sub_8143648(u16 paletteTag, u8 arg1); +void sub_81428CC(void); +void sub_8143680(int, u8); + +#endif // GUARD_HALL_OF_FAME_H diff --git a/include/intro_credits_graphics.h b/include/intro_credits_graphics.h new file mode 100644 index 000000000..5abb2381b --- /dev/null +++ b/include/intro_credits_graphics.h @@ -0,0 +1,24 @@ +#ifndef GUARD_INTRO_CREDITS_GRAPHICS_H +#define GUARD_INTRO_CREDITS_GRAPHICS_H + +extern const struct CompressedSpriteSheet gIntro2BrendanSpriteSheet; +extern const struct CompressedSpriteSheet gIntro2MaySpriteSheet; +extern const struct CompressedSpriteSheet gIntro2BicycleSpriteSheet; +extern const struct CompressedSpriteSheet gIntro2LatiosSpriteSheet; +extern const struct CompressedSpriteSheet gIntro2LatiasSpriteSheet; +extern const struct SpritePalette gIntro2SpritePalettes[]; +extern const struct CompressedSpriteSheet gUnknown_08416E24; +extern const struct CompressedSpriteSheet gUnknown_08416E34; + +void load_intro_part2_graphics(/*TODO: arg types*/); +void sub_8148C78(/*TODO: arg types*/); +void sub_8148CB0(u8); +void sub_8148E90(u8); +u8 sub_8148EC0(/*TODO: arg types*/); +void sub_8149020(/*TODO: arg types*/); +u8 intro_create_brendan_sprite(/*TODO: arg types*/); +u8 intro_create_may_sprite(/*TODO: arg types*/); +u8 intro_create_latios_sprite(/*TODO: arg types*/); +u8 intro_create_latias_sprite(/*TODO: arg types*/); + +#endif // GUARD_INTRO_CREDITS_GRAPHICS_H diff --git a/include/item_menu.h b/include/item_menu.h new file mode 100644 index 000000000..301836ac8 --- /dev/null +++ b/include/item_menu.h @@ -0,0 +1,29 @@ +#ifndef GUARD_ITEM_MENU_H +#define GUARD_ITEM_MENU_H + +#include "string_util.h" + +void sub_80A3684(void); +void ClearBag(void); +void sub_80A3E0C(void); +void sub_80A3FA0(u16 *, u32, u32, u32, u32, u32); +void sub_80A4164(u8 *, u16, enum StringConvertMode, u8); +void sub_80A418C(u16, enum StringConvertMode, int, int, int); +void sub_80A53F8(void); +void HandleItemMenuPaletteFade(u8); +void sub_80A5B40(void); +void CleanUpItemMenuMessage(u8); +void CleanUpOverworldMessage(u8); +void ExecuteItemUseFromBlackPalette(void); +void sub_80A5D04(void); +void sub_80A6300(void); +void sub_80A68CC(); +void sub_80A6A30(void); +int sub_80A6D1C(void); +void sub_80A6DCC(void); +void sub_80A7094(u8); +u8 sub_80A7D8C(u8 berry, int i, int i1); +void sub_80A7DD4(void); +u8 sub_80A7E5C(u8); + +#endif // GUARD_ITEM_MENU_H diff --git a/include/item_use.h b/include/item_use.h new file mode 100644 index 000000000..b35389ee8 --- /dev/null +++ b/include/item_use.h @@ -0,0 +1,28 @@ +#ifndef GUARD_ITEM_USE_H +#define GUARD_ITEM_USE_H + +void ItemUseOnFieldCB_Bike(u8); +void ItemUseOnFieldCB_Rod(u8); +void ItemUseOnFieldCB_Itemfinder(u8); +void RunItemfinderResults(u8); +void ExitItemfinder(u8); +bool8 ItemfinderCheckForHiddenItems(struct MapEvents *events, u8 taskId); +void sub_80C9720(u8); +void sub_80C9838(u8, s16, s16); +u8 GetPlayerDirectionTowardsHiddenItem(s16, s16); +void SetPlayerDirectionTowardsItem(u8); +void DisplayItemRespondingMessageAndExitItemfinder(u8); +void RotatePlayerAndExitItemfinder(u8); +void sub_80C9D00(u8); +void sub_80C9D74(u8); +void ItemUseOutOfBattle_TMHM(u8); +void sub_80C9EE4(u8); +void sub_80C9F10(u8); +void sub_80C9F80(u8); +void sub_80C9FC0(u8); +void task08_080A1C44(u8); +u8 sub_80CA1C8(void); +void ItemUseOutOfBattle_EvolutionStone(u8); +void ItemUseOutOfBattle_CannotUse(u8); + +#endif // GUARD_ITEM_USE_H diff --git a/include/items.h b/include/items.h index 11cc2113c..f3c506b43 100644 --- a/include/items.h +++ b/include/items.h @@ -2,387 +2,387 @@ #define GUARD_ITEMS_H enum { - ITEM_NONE, // 0x000 - ITEM_MASTER_BALL, // 0x001 - ITEM_ULTRA_BALL, // 0x002 - ITEM_GREAT_BALL, // 0x003 - ITEM_POKE_BALL, // 0x004 - ITEM_SAFARI_BALL, // 0x005 - ITEM_NET_BALL, // 0x006 - ITEM_DIVE_BALL, // 0x007 - ITEM_NEST_BALL, // 0x008 - ITEM_REPEAT_BALL, // 0x009 - ITEM_TIMER_BALL, // 0x00a - ITEM_LUXURY_BALL, // 0x00b - ITEM_PREMIER_BALL, // 0x00c - ITEM_POTION, // 0x00d - ITEM_ANTIDOTE, // 0x00e - ITEM_BURN_HEAL, // 0x00f - ITEM_ICE_HEAL, // 0x010 - ITEM_AWAKENING, // 0x011 - ITEM_PARALYZE_HEAL, // 0x012 - ITEM_FULL_RESTORE, // 0x013 - ITEM_MAX_POTION, // 0x014 - ITEM_HYPER_POTION, // 0x015 - ITEM_SUPER_POTION, // 0x016 - ITEM_FULL_HEAL, // 0x017 - ITEM_REVIVE, // 0x018 - ITEM_MAX_REVIVE, // 0x019 - ITEM_FRESH_WATER, // 0x01a - ITEM_SODA_POP, // 0x01b - ITEM_LEMONADE, // 0x01c - ITEM_MOOMOO_MILK, // 0x01d - ITEM_ENERGY_POWDER, // 0x01e - ITEM_ENERGY_ROOT, // 0x01f - ITEM_HEAL_POWDER, // 0x020 - ITEM_REVIVAL_HERB, // 0x021 - ITEM_ETHER, // 0x022 - ITEM_MAX_ETHER, // 0x023 - ITEM_ELIXIR, // 0x024 - ITEM_MAX_ELIXIR, // 0x025 - ITEM_LAVA_COOKIE, // 0x026 - ITEM_BLUE_FLUTE, // 0x027 - ITEM_YELLOW_FLUTE, // 0x028 - ITEM_RED_FLUTE, // 0x029 - ITEM_BLACK_FLUTE, // 0x02a - ITEM_WHITE_FLUTE, // 0x02b - ITEM_BERRY_JUICE, // 0x02c - ITEM_SACRED_ASH, // 0x02d - ITEM_SHOAL_SALT, // 0x02e - ITEM_SHOAL_SHELL, // 0x02f - ITEM_RED_SHARD, // 0x030 - ITEM_BLUE_SHARD, // 0x031 - ITEM_YELLOW_SHARD, // 0x032 - ITEM_GREEN_SHARD, // 0x033 - ITEM_034, - ITEM_035, - ITEM_036, - ITEM_037, - ITEM_038, - ITEM_039, - ITEM_03A, - ITEM_03B, - ITEM_03C, - ITEM_03D, - ITEM_03E, - ITEM_HP_UP, // 0x03f - ITEM_PROTEIN, // 0x040 - ITEM_IRON, // 0x041 - ITEM_CARBOS, // 0x042 - ITEM_CALCIUM, // 0x043 - ITEM_RARE_CANDY, // 0x044 - ITEM_PP_UP, // 0x045 - ITEM_ZINC, // 0x046 - ITEM_PP_MAX, // 0x047 - ITEM_048, - ITEM_GUARD_SPEC, // 0x049 - ITEM_DIRE_HIT, // 0x04a - ITEM_X_ATTACK, // 0x04b - ITEM_X_DEFEND, // 0x04c - ITEM_X_SPEED, // 0x04d - ITEM_X_ACCURACY, // 0x04e - ITEM_X_SPECIAL, // 0x04f - ITEM_POKE_DOLL, // 0x050 - ITEM_FLUFFY_TAIL, // 0x051 - ITEM_052, - ITEM_SUPER_REPEL, // 0x053 - ITEM_MAX_REPEL, // 0x054 - ITEM_ESCAPE_ROPE, // 0x055 - ITEM_REPEL, // 0x056 - ITEM_057, - ITEM_058, - ITEM_059, - ITEM_05A, - ITEM_05B, - ITEM_05C, - ITEM_SUN_STONE, // 0x05d - ITEM_MOON_STONE, // 0x05e - ITEM_FIRE_STONE, // 0x05f - ITEM_THUNDER_STONE, // 0x060 - ITEM_WATER_STONE, // 0x061 - ITEM_LEAF_STONE, // 0x062 - ITEM_063, - ITEM_064, - ITEM_065, - ITEM_066, - ITEM_TINY_MUSHROOM, // 0x067 - ITEM_BIG_MUSHROOM, // 0x068 - ITEM_069, - ITEM_PEARL, // 0x06a - ITEM_BIG_PEARL, // 0x06b - ITEM_STARDUST, // 0x06c - ITEM_STAR_PIECE, // 0x06d - ITEM_NUGGET, // 0x06e - ITEM_HEART_SCALE, // 0x06f - ITEM_070, - ITEM_071, - ITEM_072, - ITEM_073, - ITEM_074, - ITEM_075, - ITEM_076, - ITEM_077, - ITEM_078, - ITEM_ORANGE_MAIL, // 0x079 - ITEM_HARBOR_MAIL, // 0x07a - ITEM_GLITTER_MAIL, // 0x07b - ITEM_MECH_MAIL, // 0x07c - ITEM_WOOD_MAIL, // 0x07d - ITEM_WAVE_MAIL, // 0x07e - ITEM_BEAD_MAIL, // 0x07f - ITEM_SHADOW_MAIL, // 0x080 - ITEM_TROPIC_MAIL, // 0x081 - ITEM_DREAM_MAIL, // 0x082 - ITEM_FAB_MAIL, // 0x083 - ITEM_RETRO_MAIL, // 0x084 - ITEM_CHERI_BERRY, // 0x085 - ITEM_CHESTO_BERRY, // 0x086 - ITEM_PECHA_BERRY, // 0x087 - ITEM_RAWST_BERRY, // 0x088 - ITEM_ASPEAR_BERRY, // 0x089 - ITEM_LEPPA_BERRY, // 0x08a - ITEM_ORAN_BERRY, // 0x08b - ITEM_PERSIM_BERRY, // 0x08c - ITEM_LUM_BERRY, // 0x08d - ITEM_SITRUS_BERRY, // 0x08e - ITEM_FIGY_BERRY, // 0x08f - ITEM_WIKI_BERRY, // 0x090 - ITEM_MAGO_BERRY, // 0x091 - ITEM_AGUAV_BERRY, // 0x092 - ITEM_IAPAPA_BERRY, // 0x093 - ITEM_RAZZ_BERRY, // 0x094 - ITEM_BLUK_BERRY, // 0x095 - ITEM_NANAB_BERRY, // 0x096 - ITEM_WEPEAR_BERRY, // 0x097 - ITEM_PINAP_BERRY, // 0x098 - ITEM_POMEG_BERRY, // 0x099 - ITEM_KELPSY_BERRY, // 0x09a - ITEM_QUALOT_BERRY, // 0x09b - ITEM_HONDEW_BERRY, // 0x09c - ITEM_GREPA_BERRY, // 0x09d - ITEM_TAMATO_BERRY, // 0x09e - ITEM_CORNN_BERRY, // 0x09f - ITEM_MAGOST_BERRY, // 0x0a0 - ITEM_RABUTA_BERRY, // 0x0a1 - ITEM_NOMEL_BERRY, // 0x0a2 - ITEM_SPELON_BERRY, // 0x0a3 - ITEM_PAMTRE_BERRY, // 0x0a4 - ITEM_WATMEL_BERRY, // 0x0a5 - ITEM_DURIN_BERRY, // 0x0a6 - ITEM_BELUE_BERRY, // 0x0a7 - ITEM_LIECHI_BERRY, // 0x0a8 - ITEM_GANLON_BERRY, // 0x0a9 - ITEM_SALAC_BERRY, // 0x0aa - ITEM_PETAYA_BERRY, // 0x0ab - ITEM_APICOT_BERRY, // 0x0ac - ITEM_LANSAT_BERRY, // 0x0ad - ITEM_STARF_BERRY, // 0x0ae - ITEM_ENIGMA_BERRY, // 0x0af - ITEM_0B0, - ITEM_0B1, - ITEM_0B2, - ITEM_BRIGHT_POWDER, // 0x0b3 - ITEM_WHITE_HERB, // 0x0b4 - ITEM_MACHO_BRACE, // 0x0b5 - ITEM_EXP_SHARE, // 0x0b6 - ITEM_QUICK_CLAW, // 0x0b7 - ITEM_SOOTHE_BELL, // 0x0b8 - ITEM_MENTAL_HERB, // 0x0b9 - ITEM_CHOICE_BAND, // 0x0ba - ITEM_KINGS_ROCK, // 0x0bb - ITEM_SILVER_POWDER, // 0x0bc - ITEM_AMULET_COIN, // 0x0bd - ITEM_CLEANSE_TAG, // 0x0be - ITEM_SOUL_DEW, // 0x0bf - ITEM_DEEP_SEA_TOOTH, // 0x0c0 - ITEM_DEEP_SEA_SCALE, // 0x0c1 - ITEM_SMOKE_BALL, // 0x0c2 - ITEM_EVERSTONE, // 0x0c3 - ITEM_FOCUS_BAND, // 0x0c4 - ITEM_LUCKY_EGG, // 0x0c5 - ITEM_SCOPE_LENS, // 0x0c6 - ITEM_METAL_COAT, // 0x0c7 - ITEM_LEFTOVERS, // 0x0c8 - ITEM_DRAGON_SCALE, // 0x0c9 - ITEM_LIGHT_BALL, // 0x0ca - ITEM_SOFT_SAND, // 0x0cb - ITEM_HARD_STONE, // 0x0cc - ITEM_MIRACLE_SEED, // 0x0cd - ITEM_BLACK_GLASSES, // 0x0ce - ITEM_BLACK_BELT, // 0x0cf - ITEM_MAGNET, // 0x0d0 - ITEM_MYSTIC_WATER, // 0x0d1 - ITEM_SHARP_BEAK, // 0x0d2 - ITEM_POISON_BARB, // 0x0d3 - ITEM_NEVER_MELT_ICE, // 0x0d4 - ITEM_SPELL_TAG, // 0x0d5 - ITEM_TWISTED_SPOON, // 0x0d6 - ITEM_CHARCOAL, // 0x0d7 - ITEM_DRAGON_FANG, // 0x0d8 - ITEM_SILK_SCARF, // 0x0d9 - ITEM_UP_GRADE, // 0x0da - ITEM_SHELL_BELL, // 0x0db - ITEM_SEA_INCENSE, // 0x0dc - ITEM_LAX_INCENSE, // 0x0dd - ITEM_LUCKY_PUNCH, // 0x0de - ITEM_METAL_POWDER, // 0x0df - ITEM_THICK_CLUB, // 0x0e0 - ITEM_STICK, // 0x0e1 - ITEM_0E2, - ITEM_0E3, - ITEM_0E4, - ITEM_0E5, - ITEM_0E6, - ITEM_0E7, - ITEM_0E8, - ITEM_0E9, - ITEM_0EA, - ITEM_0EB, - ITEM_0EC, - ITEM_0ED, - ITEM_0EE, - ITEM_0EF, - ITEM_0F0, - ITEM_0F1, - ITEM_0F2, - ITEM_0F3, - ITEM_0F4, - ITEM_0F5, - ITEM_0F6, - ITEM_0F7, - ITEM_0F8, - ITEM_0F9, - ITEM_0FA, - ITEM_0FB, - ITEM_0FC, - ITEM_0FD, - ITEM_RED_SCARF, // 0x0fe - ITEM_BLUE_SCARF, // 0x0ff - ITEM_PINK_SCARF, // 0x100 - ITEM_GREEN_SCARF, // 0x101 - ITEM_YELLOW_SCARF, // 0x102 - ITEM_MACH_BIKE, // 0x103 - ITEM_COIN_CASE, // 0x104 - ITEM_ITEMFINDER, // 0x105 - ITEM_OLD_ROD, // 0x106 - ITEM_GOOD_ROD, // 0x107 - ITEM_SUPER_ROD, // 0x108 - ITEM_SS_TICKET, // 0x109 - ITEM_CONTEST_PASS, // 0x10a - ITEM_10B, - ITEM_WAILMER_PAIL, // 0x10c - ITEM_DEVON_GOODS, // 0x10d - ITEM_SOOT_SACK, // 0x10e - ITEM_BASEMENT_KEY, // 0x10f - ITEM_ACRO_BIKE, // 0x110 - ITEM_POKEBLOCK_CASE, // 0x111 - ITEM_LETTER, // 0x112 - ITEM_EON_TICKET, // 0x113 - ITEM_RED_ORB, // 0x114 - ITEM_BLUE_ORB, // 0x115 - ITEM_SCANNER, // 0x116 - ITEM_GO_GOGGLES, // 0x117 - ITEM_METEORITE, // 0x118 - ITEM_ROOM_1_KEY, // 0x119 - ITEM_ROOM_2_KEY, // 0x11a - ITEM_ROOM_4_KEY, // 0x11b - ITEM_ROOM_6_KEY, // 0x11c - ITEM_STORAGE_KEY, // 0x11d - ITEM_ROOT_FOSSIL, // 0x11e - ITEM_CLAW_FOSSIL, // 0x11f - ITEM_DEVON_SCOPE, // 0x120 - ITEM_TM01, // 0x121 - ITEM_TM02, // 0x122 - ITEM_TM03, // 0x123 - ITEM_TM04, // 0x124 - ITEM_TM05, // 0x125 - ITEM_TM06, // 0x126 - ITEM_TM07, // 0x127 - ITEM_TM08, // 0x128 - ITEM_TM09, // 0x129 - ITEM_TM10, // 0x12a - ITEM_TM11, // 0x12b - ITEM_TM12, // 0x12c - ITEM_TM13, // 0x12d - ITEM_TM14, // 0x12e - ITEM_TM15, // 0x12f - ITEM_TM16, // 0x130 - ITEM_TM17, // 0x131 - ITEM_TM18, // 0x132 - ITEM_TM19, // 0x133 - ITEM_TM20, // 0x134 - ITEM_TM21, // 0x135 - ITEM_TM22, // 0x136 - ITEM_TM23, // 0x137 - ITEM_TM24, // 0x138 - ITEM_TM25, // 0x139 - ITEM_TM26, // 0x13a - ITEM_TM27, // 0x13b - ITEM_TM28, // 0x13c - ITEM_TM29, // 0x13d - ITEM_TM30, // 0x13e - ITEM_TM31, // 0x13f - ITEM_TM32, // 0x140 - ITEM_TM33, // 0x141 - ITEM_TM34, // 0x142 - ITEM_TM35, // 0x143 - ITEM_TM36, // 0x144 - ITEM_TM37, // 0x145 - ITEM_TM38, // 0x146 - ITEM_TM39, // 0x147 - ITEM_TM40, // 0x148 - ITEM_TM41, // 0x149 - ITEM_TM42, // 0x14a - ITEM_TM43, // 0x14b - ITEM_TM44, // 0x14c - ITEM_TM45, // 0x14d - ITEM_TM46, // 0x14e - ITEM_TM47, // 0x14f - ITEM_TM48, // 0x150 - ITEM_TM49, // 0x151 - ITEM_TM50, // 0x152 - ITEM_HM01, // 0x153 - ITEM_HM02, // 0x154 - ITEM_HM03, // 0x155 - ITEM_HM04, // 0x156 - ITEM_HM05, // 0x157 - ITEM_HM06, // 0x158 - ITEM_HM07, // 0x159 - ITEM_HM08, // 0x15a - ITEM_15B, - ITEM_15C, + ITEM_NONE, // 0x000 + ITEM_MASTER_BALL, // 0x001 + ITEM_ULTRA_BALL, // 0x002 + ITEM_GREAT_BALL, // 0x003 + ITEM_POKE_BALL, // 0x004 + ITEM_SAFARI_BALL, // 0x005 + ITEM_NET_BALL, // 0x006 + ITEM_DIVE_BALL, // 0x007 + ITEM_NEST_BALL, // 0x008 + ITEM_REPEAT_BALL, // 0x009 + ITEM_TIMER_BALL, // 0x00a + ITEM_LUXURY_BALL, // 0x00b + ITEM_PREMIER_BALL, // 0x00c + ITEM_POTION, // 0x00d + ITEM_ANTIDOTE, // 0x00e + ITEM_BURN_HEAL, // 0x00f + ITEM_ICE_HEAL, // 0x010 + ITEM_AWAKENING, // 0x011 + ITEM_PARALYZE_HEAL, // 0x012 + ITEM_FULL_RESTORE, // 0x013 + ITEM_MAX_POTION, // 0x014 + ITEM_HYPER_POTION, // 0x015 + ITEM_SUPER_POTION, // 0x016 + ITEM_FULL_HEAL, // 0x017 + ITEM_REVIVE, // 0x018 + ITEM_MAX_REVIVE, // 0x019 + ITEM_FRESH_WATER, // 0x01a + ITEM_SODA_POP, // 0x01b + ITEM_LEMONADE, // 0x01c + ITEM_MOOMOO_MILK, // 0x01d + ITEM_ENERGY_POWDER, // 0x01e + ITEM_ENERGY_ROOT, // 0x01f + ITEM_HEAL_POWDER, // 0x020 + ITEM_REVIVAL_HERB, // 0x021 + ITEM_ETHER, // 0x022 + ITEM_MAX_ETHER, // 0x023 + ITEM_ELIXIR, // 0x024 + ITEM_MAX_ELIXIR, // 0x025 + ITEM_LAVA_COOKIE, // 0x026 + ITEM_BLUE_FLUTE, // 0x027 + ITEM_YELLOW_FLUTE, // 0x028 + ITEM_RED_FLUTE, // 0x029 + ITEM_BLACK_FLUTE, // 0x02a + ITEM_WHITE_FLUTE, // 0x02b + ITEM_BERRY_JUICE, // 0x02c + ITEM_SACRED_ASH, // 0x02d + ITEM_SHOAL_SALT, // 0x02e + ITEM_SHOAL_SHELL, // 0x02f + ITEM_RED_SHARD, // 0x030 + ITEM_BLUE_SHARD, // 0x031 + ITEM_YELLOW_SHARD, // 0x032 + ITEM_GREEN_SHARD, // 0x033 + ITEM_034, + ITEM_035, + ITEM_036, + ITEM_037, + ITEM_038, + ITEM_039, + ITEM_03A, + ITEM_03B, + ITEM_03C, + ITEM_03D, + ITEM_03E, + ITEM_HP_UP, // 0x03f + ITEM_PROTEIN, // 0x040 + ITEM_IRON, // 0x041 + ITEM_CARBOS, // 0x042 + ITEM_CALCIUM, // 0x043 + ITEM_RARE_CANDY, // 0x044 + ITEM_PP_UP, // 0x045 + ITEM_ZINC, // 0x046 + ITEM_PP_MAX, // 0x047 + ITEM_048, + ITEM_GUARD_SPEC, // 0x049 + ITEM_DIRE_HIT, // 0x04a + ITEM_X_ATTACK, // 0x04b + ITEM_X_DEFEND, // 0x04c + ITEM_X_SPEED, // 0x04d + ITEM_X_ACCURACY, // 0x04e + ITEM_X_SPECIAL, // 0x04f + ITEM_POKE_DOLL, // 0x050 + ITEM_FLUFFY_TAIL, // 0x051 + ITEM_052, + ITEM_SUPER_REPEL, // 0x053 + ITEM_MAX_REPEL, // 0x054 + ITEM_ESCAPE_ROPE, // 0x055 + ITEM_REPEL, // 0x056 + ITEM_057, + ITEM_058, + ITEM_059, + ITEM_05A, + ITEM_05B, + ITEM_05C, + ITEM_SUN_STONE, // 0x05d + ITEM_MOON_STONE, // 0x05e + ITEM_FIRE_STONE, // 0x05f + ITEM_THUNDER_STONE, // 0x060 + ITEM_WATER_STONE, // 0x061 + ITEM_LEAF_STONE, // 0x062 + ITEM_063, + ITEM_064, + ITEM_065, + ITEM_066, + ITEM_TINY_MUSHROOM, // 0x067 + ITEM_BIG_MUSHROOM, // 0x068 + ITEM_069, + ITEM_PEARL, // 0x06a + ITEM_BIG_PEARL, // 0x06b + ITEM_STARDUST, // 0x06c + ITEM_STAR_PIECE, // 0x06d + ITEM_NUGGET, // 0x06e + ITEM_HEART_SCALE, // 0x06f + ITEM_070, + ITEM_071, + ITEM_072, + ITEM_073, + ITEM_074, + ITEM_075, + ITEM_076, + ITEM_077, + ITEM_078, + ITEM_ORANGE_MAIL, // 0x079 + ITEM_HARBOR_MAIL, // 0x07a + ITEM_GLITTER_MAIL, // 0x07b + ITEM_MECH_MAIL, // 0x07c + ITEM_WOOD_MAIL, // 0x07d + ITEM_WAVE_MAIL, // 0x07e + ITEM_BEAD_MAIL, // 0x07f + ITEM_SHADOW_MAIL, // 0x080 + ITEM_TROPIC_MAIL, // 0x081 + ITEM_DREAM_MAIL, // 0x082 + ITEM_FAB_MAIL, // 0x083 + ITEM_RETRO_MAIL, // 0x084 + ITEM_CHERI_BERRY, // 0x085 + ITEM_CHESTO_BERRY, // 0x086 + ITEM_PECHA_BERRY, // 0x087 + ITEM_RAWST_BERRY, // 0x088 + ITEM_ASPEAR_BERRY, // 0x089 + ITEM_LEPPA_BERRY, // 0x08a + ITEM_ORAN_BERRY, // 0x08b + ITEM_PERSIM_BERRY, // 0x08c + ITEM_LUM_BERRY, // 0x08d + ITEM_SITRUS_BERRY, // 0x08e + ITEM_FIGY_BERRY, // 0x08f + ITEM_WIKI_BERRY, // 0x090 + ITEM_MAGO_BERRY, // 0x091 + ITEM_AGUAV_BERRY, // 0x092 + ITEM_IAPAPA_BERRY, // 0x093 + ITEM_RAZZ_BERRY, // 0x094 + ITEM_BLUK_BERRY, // 0x095 + ITEM_NANAB_BERRY, // 0x096 + ITEM_WEPEAR_BERRY, // 0x097 + ITEM_PINAP_BERRY, // 0x098 + ITEM_POMEG_BERRY, // 0x099 + ITEM_KELPSY_BERRY, // 0x09a + ITEM_QUALOT_BERRY, // 0x09b + ITEM_HONDEW_BERRY, // 0x09c + ITEM_GREPA_BERRY, // 0x09d + ITEM_TAMATO_BERRY, // 0x09e + ITEM_CORNN_BERRY, // 0x09f + ITEM_MAGOST_BERRY, // 0x0a0 + ITEM_RABUTA_BERRY, // 0x0a1 + ITEM_NOMEL_BERRY, // 0x0a2 + ITEM_SPELON_BERRY, // 0x0a3 + ITEM_PAMTRE_BERRY, // 0x0a4 + ITEM_WATMEL_BERRY, // 0x0a5 + ITEM_DURIN_BERRY, // 0x0a6 + ITEM_BELUE_BERRY, // 0x0a7 + ITEM_LIECHI_BERRY, // 0x0a8 + ITEM_GANLON_BERRY, // 0x0a9 + ITEM_SALAC_BERRY, // 0x0aa + ITEM_PETAYA_BERRY, // 0x0ab + ITEM_APICOT_BERRY, // 0x0ac + ITEM_LANSAT_BERRY, // 0x0ad + ITEM_STARF_BERRY, // 0x0ae + ITEM_ENIGMA_BERRY, // 0x0af + ITEM_0B0, + ITEM_0B1, + ITEM_0B2, + ITEM_BRIGHT_POWDER, // 0x0b3 + ITEM_WHITE_HERB, // 0x0b4 + ITEM_MACHO_BRACE, // 0x0b5 + ITEM_EXP_SHARE, // 0x0b6 + ITEM_QUICK_CLAW, // 0x0b7 + ITEM_SOOTHE_BELL, // 0x0b8 + ITEM_MENTAL_HERB, // 0x0b9 + ITEM_CHOICE_BAND, // 0x0ba + ITEM_KINGS_ROCK, // 0x0bb + ITEM_SILVER_POWDER, // 0x0bc + ITEM_AMULET_COIN, // 0x0bd + ITEM_CLEANSE_TAG, // 0x0be + ITEM_SOUL_DEW, // 0x0bf + ITEM_DEEP_SEA_TOOTH, // 0x0c0 + ITEM_DEEP_SEA_SCALE, // 0x0c1 + ITEM_SMOKE_BALL, // 0x0c2 + ITEM_EVERSTONE, // 0x0c3 + ITEM_FOCUS_BAND, // 0x0c4 + ITEM_LUCKY_EGG, // 0x0c5 + ITEM_SCOPE_LENS, // 0x0c6 + ITEM_METAL_COAT, // 0x0c7 + ITEM_LEFTOVERS, // 0x0c8 + ITEM_DRAGON_SCALE, // 0x0c9 + ITEM_LIGHT_BALL, // 0x0ca + ITEM_SOFT_SAND, // 0x0cb + ITEM_HARD_STONE, // 0x0cc + ITEM_MIRACLE_SEED, // 0x0cd + ITEM_BLACK_GLASSES, // 0x0ce + ITEM_BLACK_BELT, // 0x0cf + ITEM_MAGNET, // 0x0d0 + ITEM_MYSTIC_WATER, // 0x0d1 + ITEM_SHARP_BEAK, // 0x0d2 + ITEM_POISON_BARB, // 0x0d3 + ITEM_NEVER_MELT_ICE, // 0x0d4 + ITEM_SPELL_TAG, // 0x0d5 + ITEM_TWISTED_SPOON, // 0x0d6 + ITEM_CHARCOAL, // 0x0d7 + ITEM_DRAGON_FANG, // 0x0d8 + ITEM_SILK_SCARF, // 0x0d9 + ITEM_UP_GRADE, // 0x0da + ITEM_SHELL_BELL, // 0x0db + ITEM_SEA_INCENSE, // 0x0dc + ITEM_LAX_INCENSE, // 0x0dd + ITEM_LUCKY_PUNCH, // 0x0de + ITEM_METAL_POWDER, // 0x0df + ITEM_THICK_CLUB, // 0x0e0 + ITEM_STICK, // 0x0e1 + ITEM_0E2, + ITEM_0E3, + ITEM_0E4, + ITEM_0E5, + ITEM_0E6, + ITEM_0E7, + ITEM_0E8, + ITEM_0E9, + ITEM_0EA, + ITEM_0EB, + ITEM_0EC, + ITEM_0ED, + ITEM_0EE, + ITEM_0EF, + ITEM_0F0, + ITEM_0F1, + ITEM_0F2, + ITEM_0F3, + ITEM_0F4, + ITEM_0F5, + ITEM_0F6, + ITEM_0F7, + ITEM_0F8, + ITEM_0F9, + ITEM_0FA, + ITEM_0FB, + ITEM_0FC, + ITEM_0FD, + ITEM_RED_SCARF, // 0x0fe + ITEM_BLUE_SCARF, // 0x0ff + ITEM_PINK_SCARF, // 0x100 + ITEM_GREEN_SCARF, // 0x101 + ITEM_YELLOW_SCARF, // 0x102 + ITEM_MACH_BIKE, // 0x103 + ITEM_COIN_CASE, // 0x104 + ITEM_ITEMFINDER, // 0x105 + ITEM_OLD_ROD, // 0x106 + ITEM_GOOD_ROD, // 0x107 + ITEM_SUPER_ROD, // 0x108 + ITEM_SS_TICKET, // 0x109 + ITEM_CONTEST_PASS, // 0x10a + ITEM_10B, + ITEM_WAILMER_PAIL, // 0x10c + ITEM_DEVON_GOODS, // 0x10d + ITEM_SOOT_SACK, // 0x10e + ITEM_BASEMENT_KEY, // 0x10f + ITEM_ACRO_BIKE, // 0x110 + ITEM_POKEBLOCK_CASE, // 0x111 + ITEM_LETTER, // 0x112 + ITEM_EON_TICKET, // 0x113 + ITEM_RED_ORB, // 0x114 + ITEM_BLUE_ORB, // 0x115 + ITEM_SCANNER, // 0x116 + ITEM_GO_GOGGLES, // 0x117 + ITEM_METEORITE, // 0x118 + ITEM_ROOM_1_KEY, // 0x119 + ITEM_ROOM_2_KEY, // 0x11a + ITEM_ROOM_4_KEY, // 0x11b + ITEM_ROOM_6_KEY, // 0x11c + ITEM_STORAGE_KEY, // 0x11d + ITEM_ROOT_FOSSIL, // 0x11e + ITEM_CLAW_FOSSIL, // 0x11f + ITEM_DEVON_SCOPE, // 0x120 + ITEM_TM01, // 0x121 + ITEM_TM02, // 0x122 + ITEM_TM03, // 0x123 + ITEM_TM04, // 0x124 + ITEM_TM05, // 0x125 + ITEM_TM06, // 0x126 + ITEM_TM07, // 0x127 + ITEM_TM08, // 0x128 + ITEM_TM09, // 0x129 + ITEM_TM10, // 0x12a + ITEM_TM11, // 0x12b + ITEM_TM12, // 0x12c + ITEM_TM13, // 0x12d + ITEM_TM14, // 0x12e + ITEM_TM15, // 0x12f + ITEM_TM16, // 0x130 + ITEM_TM17, // 0x131 + ITEM_TM18, // 0x132 + ITEM_TM19, // 0x133 + ITEM_TM20, // 0x134 + ITEM_TM21, // 0x135 + ITEM_TM22, // 0x136 + ITEM_TM23, // 0x137 + ITEM_TM24, // 0x138 + ITEM_TM25, // 0x139 + ITEM_TM26, // 0x13a + ITEM_TM27, // 0x13b + ITEM_TM28, // 0x13c + ITEM_TM29, // 0x13d + ITEM_TM30, // 0x13e + ITEM_TM31, // 0x13f + ITEM_TM32, // 0x140 + ITEM_TM33, // 0x141 + ITEM_TM34, // 0x142 + ITEM_TM35, // 0x143 + ITEM_TM36, // 0x144 + ITEM_TM37, // 0x145 + ITEM_TM38, // 0x146 + ITEM_TM39, // 0x147 + ITEM_TM40, // 0x148 + ITEM_TM41, // 0x149 + ITEM_TM42, // 0x14a + ITEM_TM43, // 0x14b + ITEM_TM44, // 0x14c + ITEM_TM45, // 0x14d + ITEM_TM46, // 0x14e + ITEM_TM47, // 0x14f + ITEM_TM48, // 0x150 + ITEM_TM49, // 0x151 + ITEM_TM50, // 0x152 + ITEM_HM01, // 0x153 + ITEM_HM02, // 0x154 + ITEM_HM03, // 0x155 + ITEM_HM04, // 0x156 + ITEM_HM05, // 0x157 + ITEM_HM06, // 0x158 + ITEM_HM07, // 0x159 + ITEM_HM08, // 0x15a + ITEM_15B, + ITEM_15C, - // FireRed/LeafGreen - ITEM_OAKS_PARCEL, // 0x15d - ITEM_POKE_FLUTE, // 0x15e - ITEM_SECRET_KEY, // 0x15f - ITEM_BIKE_VOUCHER, // 0x160 - ITEM_GOLD_TEETH, // 0x161 - ITEM_OLD_AMBER, // 0x162 - ITEM_CARD_KEY, // 0x163 - ITEM_LIFT_KEY, // 0x164 - ITEM_HELIX_FOSSIL, // 0x165 - ITEM_DOME_FOSSIL, // 0x166 - ITEM_SILPH_SCOPE, // 0x167 - ITEM_BICYCLE, // 0x168 - ITEM_TOWN_MAP, // 0x169 - ITEM_VS_SEEKER, // 0x16a - ITEM_FAME_CHECKER, // 0x16b - ITEM_TM_CASE, // 0x16c - ITEM_BERRY_POUCH, // 0x16d - ITEM_TEACHY_TV, // 0x16e - ITEM_TRI_PASS, // 0x16f - ITEM_RAINBOW_PASS, // 0x170 - ITEM_TEA, // 0x171 - ITEM_MYSTIC_TICKET, // 0x172 - ITEM_AURORA_TICKET, // 0x173 - ITEM_POWDER_JAR, // 0x174 - ITEM_RUBY, // 0x175 - ITEM_SAPPHIRE, // 0x176 + // FireRed/LeafGreen + ITEM_OAKS_PARCEL, // 0x15d + ITEM_POKE_FLUTE, // 0x15e + ITEM_SECRET_KEY, // 0x15f + ITEM_BIKE_VOUCHER, // 0x160 + ITEM_GOLD_TEETH, // 0x161 + ITEM_OLD_AMBER, // 0x162 + ITEM_CARD_KEY, // 0x163 + ITEM_LIFT_KEY, // 0x164 + ITEM_HELIX_FOSSIL, // 0x165 + ITEM_DOME_FOSSIL, // 0x166 + ITEM_SILPH_SCOPE, // 0x167 + ITEM_BICYCLE, // 0x168 + ITEM_TOWN_MAP, // 0x169 + ITEM_VS_SEEKER, // 0x16a + ITEM_FAME_CHECKER, // 0x16b + ITEM_TM_CASE, // 0x16c + ITEM_BERRY_POUCH, // 0x16d + ITEM_TEACHY_TV, // 0x16e + ITEM_TRI_PASS, // 0x16f + ITEM_RAINBOW_PASS, // 0x170 + ITEM_TEA, // 0x171 + ITEM_MYSTIC_TICKET, // 0x172 + ITEM_AURORA_TICKET, // 0x173 + ITEM_POWDER_JAR, // 0x174 + ITEM_RUBY, // 0x175 + ITEM_SAPPHIRE, // 0x176 - // Emerald - ITEM_MAGMA_EMBLEM, // 0x177 - ITEM_OLD_SEA_MAP, // 0x178 + // Emerald + ITEM_MAGMA_EMBLEM, // 0x177 + ITEM_OLD_SEA_MAP, // 0x178 }; #endif // GUARD_ITEMS_H diff --git a/include/learn_move.h b/include/learn_move.h new file mode 100644 index 000000000..85fbf046e --- /dev/null +++ b/include/learn_move.h @@ -0,0 +1,6 @@ +#ifndef GUARD_LEARN_MOVE_H +#define GUARD_LEARN_MOVE_H + +void sub_8132670(void); + +#endif // GUARD_LEARN_MOVE_H diff --git a/include/mail_data.h b/include/mail_data.h new file mode 100644 index 000000000..df4b385a1 --- /dev/null +++ b/include/mail_data.h @@ -0,0 +1,16 @@ +#ifndef GUARD_MAIL_DATA_H +#define GUARD_MAIL_DATA_H + +void ClearMailData(void); +void ClearMailStruct(struct MailStruct *); +void ClearMailStruct(struct MailStruct *); +u8 GiveMailToMon(struct Pokemon *, u16); +u16 SpeciesToMailSpecies(u16, u32); +u16 MailSpeciesToSpecies(u16, u16 *); +u8 GiveMailToMon2(struct Pokemon *, struct MailStruct *); +void TakeMailFromMon(struct Pokemon *); +u8 TakeMailFromMon2(struct Pokemon *); +bool8 ItemIsMail(u16); +bool8 ItemIsMail(u16); + +#endif // GUARD_MAIL_DATA_H diff --git a/include/map_name_popup.h b/include/map_name_popup.h new file mode 100644 index 000000000..aeee7e029 --- /dev/null +++ b/include/map_name_popup.h @@ -0,0 +1,7 @@ +#ifndef GUARD_MAP_NAME_POPUP_H +#define GUARD_MAP_NAME_POPUP_H + +void ShowMapNamePopup(void); +void HideMapNamePopup(); + +#endif // GUARD_MAP_NAME_POPUP_H diff --git a/include/mauville_old_man.h b/include/mauville_old_man.h new file mode 100644 index 000000000..473fcf5c8 --- /dev/null +++ b/include/mauville_old_man.h @@ -0,0 +1,11 @@ +#ifndef GUARD_MAUVILLE_OLD_MAN_H +#define GUARD_MAUVILLE_OLD_MAN_H + +void SetMauvilleOldMan(void); +void sub_80F7DC0(void); +void sub_80F7F30(void); +void sub_80F7F80(u8); +void sub_80F83D0(void); +void sub_80F83F8(void); + +#endif // GUARD_MAUVILLE_OLD_MAN_H diff --git a/include/menu.h b/include/menu.h index cb5efa448..a6784a553 100644 --- a/include/menu.h +++ b/include/menu.h @@ -9,6 +9,26 @@ struct MenuAction u8 (*func)(); }; +struct MenuAction2 +{ + const u8 *text; + void (*func)(u8); +}; + +struct MenuAction3 +{ + void (*func1)(u8); + void (*func2)(u8); +}; + +extern const struct MenuAction gMenuYesNoItems[]; + +extern struct Window gMenuWindow; +extern struct Window *gMenuWindowPtr; +extern u16 gMenuTextTileOffset; +extern u16 gMenuTextWindowContentTileOffset; +extern u16 gMenuMessageBoxContentTileOffset; + void CloseMenu(void); void AppendToList(u8 *list, u8 *pindex, u32 value); void InitMenuWindow(const struct WindowConfig *); @@ -52,9 +72,9 @@ s8 ProcessMenuInputNoWrap_(void); u8 MenuPrint_PixelCoords(const u8 *, u8, u16, u8); u8 sub_8072A18(const u8 *, u8, u16, u8, u32); u8 unref_sub_8072A5C(u8 *, u8 *, u8, u16, u8, u32); -int sub_8072AB0(u8 *, u8, u16, u8, u8, u32); +int sub_8072AB0(const u8 *, u8, u16, u8, u8, u32); void MenuPrint_RightAligned(u8 *, u8, u8); -void sub_8072B80(u8 *, u8, u8, u8 *); +void sub_8072B80(const u8 *, u8, u8, const u8 *); void sub_8072BD8(const u8 *, u8, u8, u16); u8 *sub_8072C14(u8 *, s32, u8, u8); u8 *sub_8072C44(u8 *, s32, u8, u8); @@ -69,6 +89,6 @@ void RedrawMenuCursor(u8, u8); void unref_sub_8072DC0(void); void sub_8072DCC(u8); void sub_8072DDC(u8); -void sub_8072DEC(void); +void HandleDestroyMenuCursors(void); #endif // GUARD_MENU_H diff --git a/include/menu_cursor.h b/include/menu_cursor.h index cc6cc16bc..ca82ef244 100644 --- a/include/menu_cursor.h +++ b/include/menu_cursor.h @@ -7,7 +7,7 @@ void sub_814A590(void); u8 sub_814A5C0(u8 a1, u16 a2, u8 a3, u16 a4, u8 a5); u8 sub_814A758(u8 a1, u8 a2, u8 a3, u8 a4); u8 unref_sub_814A7AC(u8 a1, u16 a2, u8 a3); -void sub_814A7FC(void); +void DestroyMenuCursor(void); void sub_814A880(u8 a1, u8 a2); void sub_814A904(void); void sub_814A958(u8 a1); diff --git a/include/menu_helpers.h b/include/menu_helpers.h index f55a90615..0aa9f79f7 100644 --- a/include/menu_helpers.h +++ b/include/menu_helpers.h @@ -1,12 +1,27 @@ #ifndef GUARD_MENU_HELPERS_H #define GUARD_MENU_HELPERS_H +#include "task.h" + struct YesNoFuncTable { void (*yesFunc)(u8); void (*noFunc)(u8); }; +void DoYesNoFuncWithChoice(u8, const struct YesNoFuncTable *); void sub_80F914C(u8, const struct YesNoFuncTable *); +void DisplayItemMessageOnField(u8, const u8 *, TaskFunc, u16); +bool8 sub_80F9344(void); +u8 sub_80F9344(void); +void sub_80F9368(void); +void sub_80F9438(void); +void sub_80F944C(void); +void CreateVerticalScrollIndicators(u8, u8, u8); // include/decoration.h +void sub_80F979C(u32, u32); // unknown args +void DestroyVerticalScrollIndicator(u8); +void BuyMenuFreeMemory(void); +void sub_80F98DC(int); +void sub_80F996C(u8); #endif // GUARD_MENU_HELPERS_H diff --git a/include/mystery_event_script.h b/include/mystery_event_script.h new file mode 100644 index 000000000..766303588 --- /dev/null +++ b/include/mystery_event_script.h @@ -0,0 +1,8 @@ +#ifndef GUARD_MYSTERY_EVENT_SCRIPT_H +#define GUARD_MYSTERY_EVENT_SCRIPT_H + +u32 sub_812613C(u8 *); +void sub_8126160(u32 val); +u16 sub_8126338(void); + +#endif // GUARD_MYSTERY_EVENT_SCRIPT_H diff --git a/include/naming_screen.h b/include/naming_screen.h index 62d0c0029..d136417ba 100644 --- a/include/naming_screen.h +++ b/include/naming_screen.h @@ -45,7 +45,7 @@ struct NamingScreenData /*0x10*/ u8 unk10; /*0x11*/ u8 textBuffer[0x10]; /*0x21*/ u8 filler21[0x13]; - const struct NamingScreenTemplate *template; + const struct NamingScreenTemplate *template; /*0x38*/ u8 *destBuffer; /*0x3C*/ u16 unk3C; //savedKeyRepeatStartDelay /*0x3E*/ u16 unk3E; diff --git a/include/palette.h b/include/palette.h index 37fcb4d65..193773d24 100644 --- a/include/palette.h +++ b/include/palette.h @@ -16,22 +16,22 @@ enum struct PaletteFadeControl { - u32 multipurpose1; - u8 delayCounter:6; - u16 y:5; // blend coefficient - u16 targetY:5; // target blend coefficient - u16 blendColor:15; - u16 active:1; - u16 multipurpose2:6; - u16 yDec:1; // whether blend coefficient is decreasing - u16 bufferTransferDisabled:1; - u16 mode:2; - u16 shouldResetBlendRegisters:1; - u16 hardwareFadeFinishing:1; - u16 softwareFadeFinishingCounter:5; - u16 softwareFadeFinishing:1; - u16 objPaletteToggle:1; - u8 deltaY:4; // rate of change of blend coefficient + /*0x00*/ u32 multipurpose1; + /*0x04*/ u8 delayCounter:6; + /*0x05*/ u16 y:5; // blend coefficient + /*0x05-06*/ u16 targetY:5; // target blend coefficient + /*0x07*/ u16 blendColor:15; + /*0x07*/ u16 active:1; + /*0x08*/ u16 multipurpose2:6; + /*0x08*/ u16 yDec:1; // whether blend coefficient is decreasing + /*0x08*/ u16 bufferTransferDisabled:1; + /*0x09*/ u16 mode:2; + /*0x09*/ u16 shouldResetBlendRegisters:1; + /*0x09*/ u16 hardwareFadeFinishing:1; + /*0x09-0a*/ u16 softwareFadeFinishingCounter:5; + /*0x0a*/ u16 softwareFadeFinishing:1; + /*0x0a*/ u16 objPaletteToggle:1; + /*0x0a*/ u8 deltaY:4; // rate of change of blend coefficient }; extern struct PaletteFadeControl gPaletteFade; diff --git a/include/party_menu.h b/include/party_menu.h new file mode 100644 index 000000000..917d6a58c --- /dev/null +++ b/include/party_menu.h @@ -0,0 +1,113 @@ +#ifndef GUARD_PARTY_MENU_H +#define GUARD_PARTY_MENU_H + +#include "task.h" + +struct PartyMenuItem +{ + const u8 *text; + TaskFunc func; +}; + +struct PartyPopupMenu +{ + u8 unk0; + u8 unk1; + const u8 *unk4; +}; + +void sub_806AEDC(void); +void sub_806AF4C(); +void OpenPartyMenu(u8, u8); +void OpenPartyMenu(); +u8 sub_806B124(void); +u8 IsLinkDoubleBattle(void); +u8 sub_806B58C(u8); +u8 sub_806B58C(u8); +void sub_806BC3C(u8, u8); +u8 sub_806BD58(u8, u8); +u8 sub_806BD58(u8, u8); +u16 sub_806BD80(); // undefined args in battle_party_menu.c +void task_pc_turn_off(); +void sub_806BF74(); +void sub_806C994(); +u8 sub_806CA38(u8); +void sub_806CB74(u8 taskId); +void sub_806CCE4(void); +void sub_806CD44(u8 taskId); +void sub_806D538(); +void sub_806D538(); +void sub_806D538(); +void sub_806D5A4(void); +void SetMonIconAnim(); +void TryCreatePartyMenuMonIcon(u8, u8, struct Pokemon *); +void LoadHeldItemIconGraphics(void); +void LoadHeldItemIconGraphics(void); +void CreateHeldItemIcons_806DC34(); // undefined args +void CreateHeldItemIcons_806DC34(); +u8 GetMonIconSpriteId_maybe(); +void SetHeldItemIconVisibility(); +void TryPrintPartyMenuMonNickname(); +void PrintPartyMenuMonNicknames(void); +void PrintPartyMenuMonNicknames(void); +void GetMonNickname(struct Pokemon *mon, u8 *nickname); +void PartyMenuClearLevelStatusTilemap(); +void PartyMenuPrintMonLevelOrStatus(); +void PartyMenuPrintMonsLevelOrStatus(void); +void PartyMenuPrintMonsLevelOrStatus(void); +void PartyMenuDoPrintHP(u8, int, u16, u16); +void PartyMenuTryPrintMonsHP(void); +void nullsub_13(void); +void PartyMenuDrawHPBars(void); +void sub_806E6F0(); +void sub_806E750(u8, const struct PartyPopupMenu *, const struct PartyMenuItem *, int); +void sub_806E7D0(u8, const struct PartyPopupMenu *); +TaskFunc PartyMenuGetPopupMenuFunc(u8, const struct PartyPopupMenu *, const struct PartyMenuItem *, u8); +void sub_8070968(); +void sub_8070A20(); +void Task_RareCandy3(u8); +void sub_8070C54(); +void DoEvolutionStoneItemEffect(u8, u16, TaskFunc); +u8 GetItemEffectType(); +u8 sub_806E834(const u8 *message, u8 arg1); +void sub_806E8D0(u8 taskId, u16 b, TaskFunc c); +void party_menu_link_mon_held_item_object(u8); +void Task_ConfirmGiveHeldItem(u8); +void DisplayGiveHeldItemMessage(u8, u16, u8); +void DisplayTakeHeldItemMessage(u8, u16, u8); +void Task_ConfirmTakeHeldMail(u8); +u16 ItemIdToBattleMoveId(u16); +bool8 pokemon_has_move(struct Pokemon *, u16); +void TeachMonTMMove(u8, u16, TaskFunc); +void Task_TeamMonTMMove(u8); +void Task_TeamMonTMMove2(u8); +void Task_TeamMonTMMove3(u8); +void Task_TeamMonTMMove4(u8); +void sub_806F358(u8); +void sub_806F390(u8); +void sub_806F44C(u8); +void TMMoveUpdateMoveSlot(u8); +void StopTryingToTeachMove_806F614(u8); +void StopTryingToTeachMove_806F67C(u8); +void StopTryingToTeachMove_806F6B4(u8); +void sub_806F8AC(u8 taskId); +void sub_806FA18(u8 taskId); +void sub_806FB0C(u8 taskId); +void sub_806FB44(u8); +void PartyMenuUpdateLevelOrStatus(struct Pokemon *, u8); +void GetMedicineItemEffectMessage(u16); +bool8 ExecuteTableBasedItemEffect__(u8, u16, u8); +void UseMedicine(u8, u16, TaskFunc); +bool8 IsBlueYellowRedFlute(u16); +void sub_8070048(u8, u16, TaskFunc); +void sub_8070088(u8); +void sub_80701DC(u8 taskId); +void DoPPRecoveryItemEffect(u8, u16, TaskFunc); +void DoRecoverPP(u8); +void DoPPUpItemEffect(u8, u16, TaskFunc); +void DoRareCandyItemEffect(u8, u16, TaskFunc); +void Task_RareCandy1(u8); +void Task_RareCandy2(u8); +void sub_8070848(u8 taskId); + +#endif // GUARD_PARTY_MENU_H diff --git a/include/player_pc.h b/include/player_pc.h new file mode 100755 index 000000000..f2446ebdf --- /dev/null +++ b/include/player_pc.h @@ -0,0 +1,107 @@ +#ifndef GUARD_PLAYER_PC_H +#define GUARD_PLAYER_PC_H + +// general task defines +#define TASK gTasks[taskId] +#define FUNC func + +// local task defines +#define PAGE_INDEX data[0] +#define ITEMS_ABOVE_TOP data[1] +#define NUM_ITEMS data[2] +#define NUM_QUANTITY_ROLLER data[3] +#define NUM_PAGE_ITEMS data[4] +// not used +#define CURRENT_ITEM_STORAGE_MENU data[6] +// not used +#define SWAP_ITEM_INDEX data[8] +#define SWITCH_MODE_ACTIVE data[9] + +#define NEW_GAME_PC_ITEMS(i, type) ((u16)((u16 *)gNewGamePCItems + type)[i * 2]) + +// defined and used in the above macro +enum +{ + ITEM_ID, + QUANTITY +}; + +// player PC menu options +enum +{ + PLAYERPC_MENU_ITEMSTORAGE, + PLAYERPC_MENU_MAILBOX, + PLAYERPC_MENU_DECORATION, + PLAYERPC_MENU_TURNOFF +}; + +// item storage menus +enum +{ + ITEMPC_MENU_WITHDRAW, + ITEMPC_MENU_DEPOSIT, + ITEMPC_MENU_TOSS, + ITEMPC_MENU_EXIT +}; + +// mailbox mail options +enum +{ + MAILBOX_READ, + MAILBOX_MOVE_TO_BAG, + MAILBOX_GIVE, + MAILBOX_CANCEL, +}; + +// special item description handlers +enum +{ + ITEMPC_SWITCH_WHICH_ITEM = 0xFFF7, + ITEMPC_OKAY_TO_THROW_AWAY, + ITEMPC_TOO_IMPORTANT, + ITEMPC_NO_MORE_ROOM, + ITEMPC_THREW_AWAY_ITEM, + ITEMPC_HOW_MANY_TO_TOSS, + ITEMPC_WITHDREW_THING, + ITEMPC_HOW_MANY_TO_WITHDRAW, + ITEMPC_GO_BACK_TO_PREV +}; + +struct MailboxStruct +{ + /*0x00*/ u8 cursorPos; + /*0x01*/ u8 pageItems; // number of items (not including Cancel) on the current page. + /*0x02*/ u8 itemsAbove; // number of items above the top item on the page. + /*0x03*/ u8 count; // total number of items in mailbox storage. +}; + +extern struct MailboxStruct gMailboxInfo; + +void ReshowPlayerPC(u8 var); +void NewGameInitPCItems(void); +void BedroomPC(void); +void PlayerPC(void); +void ItemStorage_ReturnToMenuAfterDeposit(void); +void Mailbox_ReturnToMailListAfterDeposit(void); + +void sub_813A240(u8); +void sub_813A280(u8); +void sub_813A468(u8); +void sub_813A4B4(u8); +void HandleQuantityRolling(u8); +void sub_813A6FC(u8); +void sub_813A794(u8); +void sub_813A8F0(u8); +void sub_813A984(u8); +void sub_813A9EC(u8); +void sub_813AA30(u8, u8); +void sub_813ABE8(u8); +void sub_813AD58(u16); +void sub_813AE0C(u8); +void sub_813AE6C(u8, u8); +u8 sub_813AF3C(void); +void sub_813AF78(void); +void sub_813B108(u8); +void sub_813B174(u8); + +#endif // GUARD_PLAYER_PC_H diff --git a/include/pokeball.h b/include/pokeball.h new file mode 100644 index 000000000..19f813415 --- /dev/null +++ b/include/pokeball.h @@ -0,0 +1,11 @@ +#ifndef GUARD_POKEBALL_H +#define GUARD_POKEBALL_H + +extern const struct SpriteTemplate gBallSpriteTemplates[]; + +void CreatePokeballSprite(u8 r0, u8 r1, u8 r2, u8 r3, u8 s1, u8 s2, u8 s3, u32 s4); +void sub_804777C(u8); +void sub_80478DC(u8); +void sub_804794C(u8); + +#endif // GUARD_POKEBALL_H diff --git a/include/pokeblock.h b/include/pokeblock.h new file mode 100644 index 000000000..257c83f1c --- /dev/null +++ b/include/pokeblock.h @@ -0,0 +1,10 @@ +#ifndef GUARD_POKEBLOCK_H +#define GUARD_POKEBLOCK_H + +void sub_810B96C(void); +void sub_810BA7C(u8); +void ClearPokeblocks(void); +void sub_810CA6C(s32); +s16 sub_810CAE4(u8, struct Pokeblock *); + +#endif // GUARD_POKEBLOCK_H diff --git a/include/pokedex.h b/include/pokedex.h index 61597981b..1bc63a4ff 100644 --- a/include/pokedex.h +++ b/include/pokedex.h @@ -3,156 +3,16 @@ #include "sprite.h" -struct PokedexListItem -{ - u16 dexNum; - u16 seen:1; - u16 owned:1; -}; - -struct PokedexView -{ - struct PokedexListItem unk0[386]; - u16 unk608; - u8 unk60A_1:1; - u8 unk60A_2:1; - u8 unk60B; - u16 unk60C; - u16 selectedPokemon; - u16 unk610; - u16 dexMode; //National or Hoenn - u16 unk614; - u16 dexOrder; - u16 unk618; - u16 unk61A; - u16 unk61C; - u16 unk61E[4]; - u16 unk626; //sprite id of selected Pokemon - u16 unk628; - u16 unk62A; - u8 unk62C; - u8 unk62D; - u8 unk62E; - u8 unk62F; - s16 unk630; - s16 unk632; - u16 unk634; - u16 unk636; - u16 unk638; - u16 unk63A[4]; - u8 filler642[8]; - u8 unk64A; - u8 unk64B; - u8 unk64C_1:1; - u8 selectedScreen; - u8 unk64E; - u8 unk64F; - u8 menuIsOpen; //menuIsOpen - u8 unk651; - u16 menuCursorPos; //Menu cursor position - s16 menuY; //Menu Y position (inverted because we use REG_BG0VOFS for this) - u8 unk656[8]; - u8 unk65E[8]; -}; - void ResetPokedex(void); void sub_808C0A0(void); -void sub_808C0B8(void); -void ClearPokedexView(struct PokedexView *pokedexView); void CB2_InitPokedex(void); -u8 unref_sub_808C540(void (*func)(u8)); -void MainCB(void); -void Task_PokedexShowMainScreen(u8 taskId); -void Task_PokedexMainScreen(u8 taskId); -void sub_808C898(u8 taskId); -void Task_PokedexMainScreenMenu(u8 taskId); -void sub_808CA64(u8 taskId); -void sub_808CAE4(u8 taskId); -void sub_808CB8C(u8 taskId); -void Task_ClosePokedex(u8 taskId); -void sub_808CCC4(u8 taskId); -void Task_PokedexResultsScreen(u8 taskId); -void sub_808CEF8(u8 taskId); -void Task_PokedexResultsScreenMenu(u8 taskId); -void sub_808D118(u8 taskId); -void sub_808D198(u8 taskId); -void Task_PokedexResultsScreenReturnToMainScreen(u8 taskId); -void Task_PokedexResultsScreenExitPokedex(u8 taskId); -bool8 sub_808D344(u8 a); -void sub_808D640(void); -void SortPokedex(u8 dexMode, u8 sortMode); -void sub_808DBE8(u8 a, u16 b, u16 c); -void sub_808DEB0(u16 a, u8 b, u8 c, u16 d); -void sub_808DF88(u16 a, u8 b, u8 c, u16 d); -u8 sub_808DFE4(u16 a, u8 b, u8 c); -void sub_808E090(u8 a, u8 b, u16 c); -void sub_808E0CC(u16 a, u16 b); -bool8 sub_808E208(u8 a, u8 b, u8 c); -void sub_808E398(u8 a, u16 b); -u16 sub_808E48C(u16 a, u16 b); -void sub_808E6BC(void); -u8 sub_808E71C(void); -u8 sub_808E82C(void); -u16 sub_808E888(u16 a1); -u32 sub_808E8C8(u16 a, u16 b, u16 c); -void sub_808E978(u8 a); -void nullsub_58(struct Sprite *sprite); -void sub_808ED94(struct Sprite *sprite); -void sub_808EDB8(struct Sprite *sprite); -void sub_808EE28(struct Sprite *sprite); -void sub_808EF38(struct Sprite *sprite); -void sub_808EF8C(struct Sprite *sprite); -void sub_808F08C(struct Sprite *sprite); -void sub_808F0B4(struct Sprite *sprite); -void sub_808F168(struct Sprite *sprite); -u8 sub_808F210(struct PokedexListItem *item, u8 b); -bool8 sub_808F250(u8 taskId); -u8 sub_808F284(struct PokedexListItem *item, u8 b); -void Task_InitPageScreenMultistep(u8 taskId); -void Task_PageScreenProcessInput(u8 taskId); -void sub_808F888(u8 taskId); -void Task_ClosePageScreen(u8 taskId); -void Task_InitAreaScreenMultistep(u8 taskId); -void Task_AreaScreenProcessInput(u8 taskId); -void sub_808FA00(u8 taskId); -void Task_InitCryScreenMultistep(u8 taskId); -void Task_CryScreenProcessInput(u8 taskId); -void sub_808FFBC(u8 taskId); -void sub_8090040(u8 a); -void Task_InitSizeScreenMultistep(u8 taskId); -void Task_SizeScreenProcessInput(u8 taskId); -void sub_8090498(u8 taskId); -void sub_80904FC(u16 a); -void sub_8090540(u16 a); -void sub_8090584(u8 a, u16 b); -void sub_8090644(u8 a, u16 b); u8 sub_809070C(u16 dexNum, u32 b, u32 c); - -// ASM -void sub_8090750(u8); -void sub_8090A3C(u8); - -void sub_8090C68(void); -u8 *GetPokemonCategory(u16); - -s8 sub_8090D90(u16, u8); +const u8 *GetPokemonCategory(u16); +u16 GetPokedexHeightWeight(u16 dexNum, u8 data); +s8 GetNationalPokedexFlag(u16, u8); u16 GetNationalPokedexCount(u8); u16 GetHoennPokedexCount(u8); bool8 sub_8090FC0(void); u16 sub_8090FF4(void); -void sub_8091060(u16); -void sub_8091154(u16 order, int i, int i1); -void sub_80911C8(u16 num, int i, int i1); -void sub_8091260(u16 num, int i, int i1, int i2); -void sub_8091304(u8 name[12], int i, int i1); - -void sub_8091458(u16 height, int i, int i1); -void sub_8091564(u16 weight, int i, int i1); -void sub_8091738(u16, u16, u16); -void sub_80917CC(int i, int i1); -u16 sub_8091818(u8, u16, u16, u16); - -u16 sub_80918EC(u16 a, s16 b, s16 c, u16 d); //Not sure of return type -u8 sub_8091A4C(u8 gender, int i, int i1, int i2); #endif // GUARD_POKEDEX_H diff --git a/include/pokedex_area_screen.h b/include/pokedex_area_screen.h new file mode 100644 index 000000000..35ea43854 --- /dev/null +++ b/include/pokedex_area_screen.h @@ -0,0 +1,6 @@ +#ifndef GUARD_POKEDEX_AREA_SCREEN_H +#define GUARD_POKEDEX_AREA_SCREEN_H + +void ShowPokedexAreaScreen(u16 species, u8 *string); + +#endif // GUARD_POKEDEX_AREA_SCREEN_H diff --git a/include/pokedex_cry_screen.h b/include/pokedex_cry_screen.h new file mode 100644 index 000000000..ee586a092 --- /dev/null +++ b/include/pokedex_cry_screen.h @@ -0,0 +1,19 @@ +#ifndef GUARD_POKEDEX_CRY_SCREEN_H +#define GUARD_POKEDEX_CRY_SCREEN_H + +struct CryRelatedStruct +{ + u16 unk0; + u8 unk2; + u8 paletteNo; + u8 xPos; + u8 yPos; +}; + +u8 ShowPokedexCryScreen(struct CryRelatedStruct *, u8); +u8 sub_8119E3C(struct CryRelatedStruct *, u8); +void sub_8119F88(u8 a); +void sub_811A050(u16 species); +void DestroyCryMeterNeedleSprite(); + +#endif // GUARD_POKEDEX_CRY_SCREEN_H diff --git a/include/pokemon.h b/include/pokemon.h index 15a028d6e..47990073b 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -1,6 +1,8 @@ #ifndef GUARD_POKEMON_H #define GUARD_POKEMON_H +#include "sprite.h" + #define MON_DATA_PERSONALITY 0 #define MON_DATA_OT_ID 1 #define MON_DATA_NICKNAME 2 @@ -357,7 +359,8 @@ struct BaseStats /* 0x16 */ u8 ability1; /* 0x17 */ u8 ability2; /* 0x18 */ u8 safariZoneFleeRate; - /* 0x19 */ u8 bodyColor; + /* 0x19 */ u8 bodyColor:7; + u8 unk19_7:1; }; struct BattleMove @@ -381,6 +384,29 @@ struct PokemonStorage u8 unkArray[14]; }; +struct Evolution +{ + u16 method; + u16 param; + u16 targetSpecies; +}; + +struct EvolutionData +{ + struct Evolution evolutions[5]; +}; + +extern const u8 *const gItemEffectTable[]; +extern u8 gTrainerClassToPicIndex[]; +extern u8 gTrainerClassToNameIndex[]; +extern const u32 gExperienceTables[8][101]; +extern const struct BaseStats gBaseStats[]; +extern struct EvolutionData gEvolutionTable[]; +extern const u16 *gLevelUpLearnsets[]; +extern u8 gUnknown_08208238[]; +extern u8 gUnknown_0820823C[]; +extern u8 gStatStageRatios[][2]; + extern struct Pokemon gPlayerParty[PARTY_SIZE]; extern struct Pokemon gEnemyParty[PARTY_SIZE]; @@ -414,7 +440,7 @@ u16 sub_803B7C8(struct Pokemon *mon, u8 a2); void DeleteFirstMoveAndGiveMoveToMon(struct Pokemon *mon, u16 move); void DeleteFirstMoveAndGiveMoveToBoxMon(struct BoxPokemon *boxMon, u16 move); -u8 sub_803C348(u8 a1); +u8 CountAliveMons(u8 a1); u8 sub_803C434(u8 a1); u8 GetMonGender(struct Pokemon *mon); u8 GetBoxMonGender(struct BoxPokemon *boxMon); @@ -463,4 +489,27 @@ void MonRestorePP(struct Pokemon *); u8 *sub_803F378(u16 itemId); u16 NationalPokedexNumToSpecies(u16 nationalNum); +u16 NationalToHoennOrder(u16); +u16 SpeciesToNationalPokedexNum(u16); +u16 HoennToNationalOrder(u16); +void DrawSpindaSpots(u16, u32, u8 *, u8); +u8 sub_803FBBC(void); +u8 sub_803FC58(u16); +void AdjustFriendship(struct Pokemon *, u8); +u8 CheckPartyHasHadPokerus(struct Pokemon *, u8); +void UpdatePartyPokerusTime(u16); +u32 CanMonLearnTMHM(struct Pokemon *, u8); +u8 sub_8040574(struct Pokemon *party); +void ClearBattleMonForms(void); +void sub_80408BC(); +void current_map_music_set__default_for_battle(u16); +const u8 *pokemon_get_pal(struct Pokemon *mon); +const u8 *species_and_otid_get_pal(u16, u32, u32); +const struct CompressedSpritePalette *sub_80409C8(u16, u32, u32); +bool8 IsOtherTrainer(u32, u8 *); +void sub_8040B8C(void); +void SetWildMonHeldItem(void); +u8 *sub_8040D08(); +bool32 sub_8040D3C(u16 species, u8 *name, u8 language); + #endif // GUARD_POKEMON_H diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h new file mode 100644 index 000000000..98f984564 --- /dev/null +++ b/include/pokemon_icon.h @@ -0,0 +1,14 @@ +#ifndef GUARD_POKEMON_ICON_H +#define GUARD_POKEMON_ICON_H + +u8 CreateMonIcon(); +u8 sub_809D3A4(u16 arg0, void (*)(struct Sprite *), int, u8 arg3, u32 arg4); +u16 GetUnownLetterByPersonality(u32); +u16 sub_809D4A8(u16); +void sub_809D510(struct Sprite *); +void sub_809D51C(void); +void sub_809D580(u16); +void sub_809D608(u16); +void UpdateMonIconFrame(struct Sprite *sprite); + +#endif // GUARD_POKEMON_ICON_H diff --git a/include/pokemon_item_effect.h b/include/pokemon_item_effect.h new file mode 100644 index 000000000..c09649aff --- /dev/null +++ b/include/pokemon_item_effect.h @@ -0,0 +1,6 @@ +#ifndef GUARD_POKEMON_ITEM_EFFECT_H +#define GUARD_POKEMON_ITEM_EFFECT_H + +bool8 ExecuteTableBasedItemEffect_(struct Pokemon *mon, u16, u8, u16); + +#endif // GUARD_POKEMON_ITEM_EFFECT_H diff --git a/include/pokemon_menu.h b/include/pokemon_menu.h new file mode 100644 index 000000000..d22dbb708 --- /dev/null +++ b/include/pokemon_menu.h @@ -0,0 +1,14 @@ +#ifndef GUARD_POKEMON_MENU_H +#define GUARD_POKEMON_MENU_H + +void sub_8089A70(void); +void sub_808A004(); +void sub_808AB90(void); +void sub_808AB90(void); // unknown args +void sub_808AB90(void); +void sub_808B020(void); +void sub_808B0C0(u8); +void sub_808B508(u8); +void sub_808B564(); + +#endif // GUARD_POKEMON_MENU_H diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h new file mode 100644 index 000000000..bd4e7915b --- /dev/null +++ b/include/pokemon_storage_system.h @@ -0,0 +1,6 @@ +#ifndef GUARD_POKEMON_STORAGE_SYSTEM_H +#define GUARD_POKEMON_STORAGE_SYSTEM_H + +void ResetPokemonStorageSystem(void); + +#endif // GUARD_POKEMON_STORAGE_SYSTEM_H diff --git a/include/pokemon_summary_screen.h b/include/pokemon_summary_screen.h new file mode 100644 index 000000000..3f7ed8fad --- /dev/null +++ b/include/pokemon_summary_screen.h @@ -0,0 +1,16 @@ +#ifndef GUARD_POKEMON_SUMMARY_SCREEN_H +#define GUARD_POKEMON_SUMMARY_SCREEN_H + +extern const u8 *const gNatureNames[]; + +void ShowPokemonSummaryScreen(struct Pokemon *, u8, u8, void (*)(u8), int); +void sub_809D9F0(struct Pokemon *party, u8, u8, void *, u32); +void sub_809D9F0(struct Pokemon *, u8, u8, void *, u32); +u8 sub_809FA30(void); +u8 pokemon_ailments_get_primary(u32); +u8 GetMonStatusAndPokerus(); +u8 *sub_80A1E9C(u8 *dest, const u8 *src, u8); +u8 *PokemonSummaryScreen_CopyPokemonLevel(u8 *dest, u8 level); +u8 PokemonSummaryScreen_CheckOT(struct Pokemon *pokemon); + +#endif // GUARD_POKEMON_SUMMARY_SCREEN_H diff --git a/include/pokenav.h b/include/pokenav.h new file mode 100644 index 000000000..ccea77a57 --- /dev/null +++ b/include/pokenav.h @@ -0,0 +1,19 @@ +#ifndef GUARD_POKENAV_H +#define GUARD_POKENAV_H + +struct UnkPokenavStruct_Sub { + /*0x0*/ u16 unk0; + /*0x2*/ u8 filler2[6]; +}; + +struct UnkPokenavStruct { + /*0x0000*/ u8 filler0000[0xCEE8]; + /*0xCEE8*/ struct UnkPokenavStruct_Sub unkCEE8[78]; + /*0xD158*/ u16 unkD158; +}; + +extern struct UnkPokenavStruct *gUnknown_083DFEC4; + +void sub_80EBA5C(void); + +#endif // GUARD_POKENAV_H diff --git a/include/record_mixing.h b/include/record_mixing.h index 72a089ca1..103f5ad64 100644 --- a/include/record_mixing.h +++ b/include/record_mixing.h @@ -23,11 +23,11 @@ void sub_80B9A88(u8 *a); void sub_80B9B1C(u8 *a, size_t size, u8 index); void sub_80B9B70(u8 *a, size_t size, u8 index); u8 sub_80B9BBC(u16 *a); -void sub_80B9BC4(u32 a, u32 b, u32 c, u32 d); +void sub_80B9BC4(struct RecordMixing_UnknownStruct *, size_t, u8 [][2], u8, u8); u8 sub_80B9C4C(u8 *a); // ASM -void sub_80B9C6C(void *, u32, u8, void *); +void sub_80B9C6C(struct RecordMixing_UnknownStruct *, u32, u8, void *); void sub_80B9F3C(void *, u8); void sub_80BA00C(u8); diff --git a/include/region_map.h b/include/region_map.h new file mode 100644 index 000000000..0cef566f6 --- /dev/null +++ b/include/region_map.h @@ -0,0 +1,13 @@ +#ifndef GUARD_REGION_MAP_H +#define GUARD_REGION_MAP_H + +void sub_80FA8EC(u32, u8); +void sub_80FAB10(void); +u8 sub_80FAB60(void); +void sub_80FBB3C(u16, u16); +void sub_80FBCF0(u32, u8); +void sub_80FBFB4(u8 *str, u8 region, u8); +void CopyMapName(); +u8 *CopyLocationName(u8 *dest, u8 location); + +#endif // GUARD_REGION_MAP_H diff --git a/include/reset_rtc_screen.h b/include/reset_rtc_screen.h new file mode 100644 index 000000000..5807dec99 --- /dev/null +++ b/include/reset_rtc_screen.h @@ -0,0 +1,6 @@ +#ifndef GUARD_RESET_RTC_SCREEN_H +#define GUARD_RESET_RTC_SCREEN_H + +void CB2_InitResetRtcScreen(void); + +#endif // GUARD_RESET_RTC_SCREEN_H diff --git a/include/rom3.h b/include/rom3.h new file mode 100644 index 000000000..8e99f8de4 --- /dev/null +++ b/include/rom3.h @@ -0,0 +1,25 @@ +#ifndef GUARD_ROM3_H +#define GUARD_ROM3_H + +void sub_800B858(void); +void setup_poochyena_battle(); +void sub_800B950(void); +void sub_800B9A8(void); +void sub_800BA78(void); +void sub_800BD54(void); +void sub_800BF28(void); +void dp01_prepare_buffer_wireless_probably(u8 a, u16, u8 *c); +void sub_800C1A8(u8); +void sub_800C35C(void); +void sub_800C47C(u8); +void EmitGetAttributes(u8 a, u8 b, u8 c); +void dp01_build_cmdbuf_x04_4_4_4(u8 a); +void sub_800C704(u8, u8, u8); +void dp01_build_cmdbuf_x07_7_7_7(u8 a); +void dp01_build_cmdbuf_x12_a_bb(u8 a, u8 b, u16 c); +void dp01_build_cmdbuf_x1D_1D_numargs_varargs(u8, u16, u8 *); +void EmitBattleIntroSlide(u8 a, u8 b); +void dp01_build_cmdbuf_x2F_2F_2F_2F(u8 a); +void dp01_build_cmdbuf_x30_TODO(u8 a, u8 *b, u8 c); + +#endif // GUARD_ROM3_H diff --git a/include/rom4.h b/include/rom4.h index 476a0e103..eac4d29a2 100644 --- a/include/rom4.h +++ b/include/rom4.h @@ -17,8 +17,15 @@ struct LinkPlayerMapObject u8 mode; }; +struct UCoords32 +{ + u32 x, y; +}; + +extern struct UCoords32 gUnknown_0821664C[]; + // sub_8052F5C -// flag_var_implications_of_teleport_ +void flag_var_implications_of_teleport_(void); void new_game(void); void sub_8053014(void); void sub_8053050(void); @@ -37,7 +44,7 @@ void update_saveblock1_field_object_movement_behavior(u8, u8); // warp_set // warp_data_is_not_neg_1 struct MapHeader * const get_mapheader_by_bank_and_number(u16 mapGroup, u16 mapNum); -// warp1_get_mapheader +struct MapHeader * const warp1_get_mapheader(void); // set_current_map_header_from_sav1_save_old_name // sub_805338C // sub_80533CC @@ -52,7 +59,7 @@ void sub_8053570(void); void sub_8053588(u8); void sub_80535C4(s16 a1, s16 a2); void sub_805363C(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); -// sub_8053678 +void sub_8053678(void); void sub_8053690(s8, s8, s8, s8, s8); // warp1_set_to_warp2 void sub_80536E4(s8, s8, s8, s8, s8); @@ -65,10 +72,10 @@ void gpu_sync_bg_hide(); // sub_8053850 bool8 sub_80538B0(u16 x, u16 y); bool8 sub_80538D0(u16 x, u16 y); -// sub_80538F0 +void sub_80538F0(u8 mapGroup, u8 mapNum); // sub_8053994 void player_avatar_init_params_reset(void); -// walkrun_find_lowest_active_bit_in_bitfield +void walkrun_find_lowest_active_bit_in_bitfield(void); // sub_8053AA8 u8 sub_8053B00(struct UnkPlayerStruct *playerStruct, u16 a2, u8 a3); u8 sub_8053B60(struct UnkPlayerStruct *playerStruct, u8, u16, u8); @@ -200,7 +207,7 @@ u32 sub_80558AC(void); u32 sub_8055910(void); u32 sub_8055940(void); // ZeroLinkPlayerMapObject -// strange_npc_table_clear +void strange_npc_table_clear(void); // ZeroMapObject void SpawnLinkPlayerMapObject(u8, s16, s16, u8); void InitLinkPlayerMapObjectPos(struct MapObject *, s16, s16); diff --git a/include/rom_8077ABC.h b/include/rom_8077ABC.h new file mode 100644 index 000000000..11e94e1f5 --- /dev/null +++ b/include/rom_8077ABC.h @@ -0,0 +1,59 @@ +#ifndef GUARD_ROM_8077ABC_H +#define GUARD_ROM_8077ABC_H + +#include "sprite.h" +#include "task.h" + +u8 sub_8077ABC(u8, u8); +u8 sub_8077E44(u8 slot, u16 species, u8 a3); +u8 obj_id_for_side_relative_to_move(u8 side); +void oamt_set_x3A_32(struct Sprite *sprite, void(*callback)(struct Sprite *)); +void sub_8078314(struct Sprite *sprite); +void sub_8078364(struct Sprite *sprite); +void sub_8078458(struct Sprite *sprite); +void sub_80784A8(struct Sprite *sprite); +u8 GetBankSide(u8); +u8 GetBankSide(u8); +u8 GetBankSide(u8 side); +u8 GetBankSide(u8 slot); +u8 GetBankSide(u8); +u8 GetBankIdentity(u8); +u8 GetBankIdentity(u8 slot); +u8 GetBankByPlayerAI(u8); +u8 GetBankByPlayerAI(u8); +u8 GetBankByPlayerAI(u8 state); +u8 sub_8078874(u8); +bool8 sub_8078874(u8); +bool8 IsDoubleBattle(); +u8 IsDoubleBattle(void); +bool8 IsDoubleBattle(void); +void sub_8078914(); +u8 sub_80789BC(); +void sub_8078A5C(struct Sprite *sprite); +void sub_8078A5C(struct Sprite *sprite); +void obj_translate_based_on_private_1_2_3_4(struct Sprite *sprite); +bool8 sub_8078B5C(struct Sprite *sprite); +void sub_8078BB8(struct Sprite *sprite); +void sub_8078D44(struct Sprite *sprite); +void obj_id_set_rotscale(u8 sprite, s16, s16, u16); +bool8 sub_8078E38(); +void sub_8078E70(u8 sprite, u8); +void sub_8078F40(u8 sprite); +void sub_8078F9C(u8 sprite); +void sub_8079518(struct Sprite *sprite); +void sub_80796F8(u8 task); +void sub_80797EC(struct Task *task); +void sub_8079814(u8 taskId); +void sub_8079A64(u8 sprite); +u16 sub_8079B10(u8 sprite); +void sub_8079BF4(s16 *bottom, s16 *top, void *ptr); +void *sub_8079BFC(s16 bottom, s16 top); +void sub_8079E24(); +u8 sub_8079E90(u8 slot); +u8 GetBankIdentity_permutated(u8 slot); +void sub_807A784(u8 taskId); +void sub_807A850(struct Task *task, u8 taskId); +void sub_807A8D4(struct Sprite *sprite); +void sub_807A960(struct Sprite *sprite); + +#endif // GUARD_ROM_8077ABC_H diff --git a/include/rom_8094928.h b/include/rom_8094928.h new file mode 100644 index 000000000..fd4e58847 --- /dev/null +++ b/include/rom_8094928.h @@ -0,0 +1,10 @@ +#ifndef GUARD_ROM_8094928_H +#define GUARD_ROM_8094928_H + +void sub_8094978(u8, u8); +u8 sub_8094C20(u8); +void sub_8094C98(u8, u8); +u8 pokemon_order_func(u8); +void sub_8094E4C(void); + +#endif // GUARD_ROM_8094928_H diff --git a/include/rotating_gate.h b/include/rotating_gate.h new file mode 100644 index 000000000..6f4f38a9a --- /dev/null +++ b/include/rotating_gate.h @@ -0,0 +1,8 @@ +#ifndef GUARD_ROTATING_GATE_H +#define GUARD_ROTATING_GATE_H + +void RotatingGatePuzzleCameraUpdate(s16, s16); +void sub_80C8080(); +u32 CheckForRotatingGatePuzzleCollision(u8, s16, s16); + +#endif // GUARD_ROTATING_GATE_H diff --git a/include/safari_zone.h b/include/safari_zone.h index f491be2f1..0bee08a95 100644 --- a/include/safari_zone.h +++ b/include/safari_zone.h @@ -1,6 +1,8 @@ #ifndef GUARD_SAFARI_ZONE_H #define GUARD_SAFARI_ZONE_H +extern u8 gNumSafariBalls; + bool32 GetSafariZoneFlag(void); void SetSafariZoneFlag(void); void ResetSafariZoneFlag(void); diff --git a/include/save.h b/include/save.h index 46bf48d60..3feaa1f3d 100644 --- a/include/save.h +++ b/include/save.h @@ -39,12 +39,12 @@ enum // Do save types enum { - NORMAL_SAVE, - LINK_SAVE, - EREADER_SAVE, // mossdeep event - HOF_SAVE, - DIFFERENT_FILE_SAVE, - HOF_DELETE_SAVE // unused + NORMAL_SAVE, + LINK_SAVE, + EREADER_SAVE, // mossdeep event + HOF_SAVE, + DIFFERENT_FILE_SAVE, + HOF_DELETE_SAVE // unused }; void ClearSaveData(void); diff --git a/include/script.h b/include/script.h index a4c7dd575..4070a838f 100644 --- a/include/script.h +++ b/include/script.h @@ -4,6 +4,7 @@ struct ScriptContext; typedef bool8 (*ScrCmdFunc)(struct ScriptContext *); +typedef u8 Script[]; struct ScriptContext { @@ -54,5 +55,6 @@ u32 CalculateRamScriptChecksum(void); void ClearRamScript(void); bool8 InitRamScript(u8 *script, u16 scriptSize, u8 mapGroup, u8 mapNum, u8 objectId); u8 *GetRamScript(u8 objectId, u8 *script); +u16 gScriptResult; #endif // GUARD_SCRIPT_H diff --git a/include/script_menu.h b/include/script_menu.h index 7a504556e..458aad13d 100644 --- a/include/script_menu.h +++ b/include/script_menu.h @@ -7,6 +7,8 @@ struct MultichoiceListStruct u8 count; }; +extern const struct TextStruct gUnknown_083CE048[]; + bool8 sub_80B5054(u8 left, u8 top, u8 var3, u8 var4); bool8 sub_80B50B0(u8 left, u8 top, u8 var3, u8 var4, u8 var5); u16 GetStringWidthInTilesForScriptMenu(const u8 *str); diff --git a/include/script_movement.h b/include/script_movement.h new file mode 100644 index 000000000..e3cdc25b3 --- /dev/null +++ b/include/script_movement.h @@ -0,0 +1,8 @@ +#ifndef GUARD_SCRIPT_MOVEMENT_H +#define GUARD_SCRIPT_MOVEMENT_H + +bool8 exec_movement(u8, u8, u8, u8 *); +bool8 sub_80A212C(u8, u8, u8); +void sub_80A2178(void); + +#endif // GUARD_SCRIPT_MOVEMENT_H diff --git a/include/secret_base.h b/include/secret_base.h new file mode 100644 index 000000000..3ca5ab182 --- /dev/null +++ b/include/secret_base.h @@ -0,0 +1,15 @@ +#ifndef GUARD_SECRET_BASE_H +#define GUARD_SECRET_BASE_H + +void ResetSecretBases(void); +void sub_80BB970(struct MapEvents *); +u8 sub_80BBB24(void); +void sub_80BBCCC(u8); +void sub_80BC038(); +u8 sub_80BC050(); +void sub_80BC300(); +const u8 sub_80BCCA4(u8); +u8 *sub_80BCCE8(void); +void sub_80BD674(void *, u32, u8); + +#endif // GUARD_SECRET_BASE_H diff --git a/include/shop.h b/include/shop.h new file mode 100644 index 000000000..cca6091c9 --- /dev/null +++ b/include/shop.h @@ -0,0 +1,18 @@ +#ifndef GUARD_SHOP_H +#define GUARD_SHOP_H + +void sub_80B2E38(u8); +void HandleShopMenuQuit(u8); +void sub_80B2FA0(u8); +void BuyMenuDrawGraphics(void); +void sub_80B3240(void); +void sub_80B3270(void); +void BuyMenuDrawMapGraphics(void); +void sub_80B3764(int, int); +void sub_80B37EC(void); +void sub_80B40E8(u8); +void CreatePokemartMenu(void *); +void CreateDecorationShop1Menu(void *); +void CreateDecorationShop2Menu(void *); + +#endif // GUARD_SHOP_H diff --git a/include/slot_machine.h b/include/slot_machine.h new file mode 100644 index 000000000..c39aa7ca8 --- /dev/null +++ b/include/slot_machine.h @@ -0,0 +1,8 @@ +#ifndef GUARD_SLOT_MACHINE_H +#define GUARD_SLOT_MACHINE_H + +void PlaySlotMachine(u8, void *); +void sub_8104DA4(void); +u8 sub_8105BB4(u8, u8, s16); + +#endif // GUARD_SLOT_MACHINE_H diff --git a/include/songs.h b/include/songs.h index c465ac562..8180ee67e 100644 --- a/include/songs.h +++ b/include/songs.h @@ -3,39 +3,39 @@ enum { - SE_STOP, - SE_KAIFUKU, - SE_PC_LOGON, - SE_PC_OFF, - SE_PC_ON, - SE_SELECT, - SE_WIN_OPEN, - SE_WALL_HIT, - SE_DOOR, - SE_KAIDAN, - SE_DANSA, - SE_JITENSYA, - SE_KOUKA_L, - SE_KOUKA_M, - SE_KOUKA_H, - SE_BOWA2, - SE_POKE_DEAD, - SE_NIGERU, - SE_JIDO_DOA, - SE_NAMINORI, - SE_BAN, - SE_PIN, - SE_BOO, - SE_BOWA, - SE_JYUNI, - SE_A, - SE_I, - SE_U, - SE_E, - SE_O, - SE_N, - SE_SEIKAI, - SE_HAZURE, + /*0x00*/ SE_STOP, + /*0x01*/ SE_KAIFUKU, + /*0x02*/ SE_PC_LOGON, + /*0x03*/ SE_PC_OFF, + /*0x04*/ SE_PC_ON, + /*0x05*/ SE_SELECT, + /*0x06*/ SE_WIN_OPEN, + /*0x07*/ SE_WALL_HIT, + /*0x08*/ SE_DOOR, + /*0x09*/ SE_KAIDAN, + /*0x0A*/ SE_DANSA, + /*0x0B*/ SE_JITENSYA, + /*0x0C*/ SE_KOUKA_L, + /*0x0D*/ SE_KOUKA_M, + /*0x0E*/ SE_KOUKA_H, + /*0x0F*/ SE_BOWA2, + /*0x10*/ SE_POKE_DEAD, + /*0x11*/ SE_NIGERU, + /*0x12*/ SE_JIDO_DOA, + /*0x13*/ SE_NAMINORI, + /*0x14*/ SE_BAN, + /*0x15*/ SE_PIN, + /*0x16*/ SE_BOO, + /*0x17*/ SE_BOWA, + /*0x18*/ SE_JYUNI, + /*0x19*/ SE_A, + /*0x1A*/ SE_I, + /*0x1B*/ SE_U, + /*0x1C*/ SE_E, + /*0x1D*/ SE_O, + /*0x1E*/ SE_N, + /*0x1F*/ SE_SEIKAI, + /*0x20*/ SE_HAZURE, SE_EXP, SE_JITE_PYOKO, SE_MU_PACHI, @@ -59,12 +59,12 @@ enum SE_MOTER, SE_CARD, SE_SAVE, - SE_KON, - SE_KON2, - SE_KON3, - SE_KON4, - SE_SUIKOMU, - SE_NAGERU, + /*0x38*/ SE_KON, + /*0x39*/ SE_KON2, + /*0x3A*/ SE_KON3, + /*0x3B*/ SE_KON4, + /*0x3C*/ SE_SUIKOMU, + /*0x3D*/ SE_NAGERU, SE_TOY_C, SE_TOY_D, SE_TOY_E, @@ -93,7 +93,7 @@ enum SE_T_KAMI, SE_T_KAMI2, SE_ELEBETA, - SE_HINSI, + /*0x5A*/ SE_HINSI, SE_EXPMAX, SE_TAMAKORO, SE_TAMAKORO_E, @@ -112,11 +112,11 @@ enum SE_JIHANKI, SE_TAMA, SE_Z_SCROLL, - SE_Z_PAGE, - SE_PN_ON, - SE_PN_OFF, - SE_Z_SEARCH, - SE_TAMAGO, + /*0x6D*/ SE_Z_PAGE, + /*0x6E*/ SE_PN_ON, + /*0x6F*/ SE_PN_OFF, + /*0x70*/ SE_Z_SEARCH, + /*0x71*/ SE_TAMAGO, /*0x72*/ SE_TB_START, /*0x73*/ SE_TB_KON, /*0x74*/ SE_TB_KARA, @@ -270,10 +270,10 @@ enum BGM_NAMINORI, BGM_DAN01, /*0x16F*/ BGM_FANFA1, - BGM_ME_ASA, - BGM_ME_BACHI, - BGM_FANFA4, - BGM_FANFA5, + /*0x170*/ BGM_ME_ASA, + /*0x171*/ BGM_ME_BACHI, + /*0x172*/ BGM_FANFA4, + /*0x173*/ BGM_FANFA5, BGM_ME_WAZA, BGM_BIJYUTU, BGM_DOORO_X4, diff --git a/include/sprite.h b/include/sprite.h index bda635885..3f893132e 100644 --- a/include/sprite.h +++ b/include/sprite.h @@ -5,20 +5,35 @@ struct SpriteSheet { - const u8 *data; + const u8 *data; // Raw uncompressed pixel data u16 size; u16 tag; }; +struct CompressedSpriteSheet +{ + const u8 *data; // LZ77 compressed pixel data + u16 size; // Uncompressed size of pixel data + u16 tag; +}; + struct SpriteFrameImage { u8 *data; u16 size; }; +#define obj_frame_tiles(ptr) {.data = (u8 *)ptr, .size = sizeof ptr} + struct SpritePalette { - const u16 *data; + const u16 *data; // Raw uncompressed palette data + u16 tag; +}; + +struct CompressedSpritePalette +{ + const u8 *data; // LZ77 compressed palette data u16 tag; }; @@ -97,6 +112,10 @@ union AffineAnimCmd #define AFFINEANIMCMD_FRAME(_xScale, _yScale, _rotation, _duration) \ {.frame = {.xScale = _xScale, .yScale = _yScale, .rotation = _rotation, .duration = _duration}} +#define AFFINEANIMCMD_LOOP(_count) \ + {.loop = {.type = AFFINEANIMCMDTYPE_LOOP, .count = _count}} +#define AFFINEANIMCMD_JUMP(_target) \ + {.jump = {.type = AFFINEANIMCMDTYPE_JUMP, .target = _target}} #define AFFINEANIMCMD_END \ {.type = AFFINEANIMCMDTYPE_END} @@ -131,7 +150,7 @@ struct Subsprite struct SubspriteTable { u8 subspriteCount; - struct Subsprite *subsprites; + const struct Subsprite *subsprites; }; struct Sprite; @@ -142,7 +161,7 @@ struct SpriteTemplate u16 paletteTag; const struct OamData *oam; const union AnimCmd *const *anims; - struct SpriteFrameImage *images; + const struct SpriteFrameImage *images; const union AffineAnimCmd *const *affineAnims; void (*callback)(struct Sprite *); }; diff --git a/include/starter_choose.h b/include/starter_choose.h index 008d1b14e..44ca8c34c 100644 --- a/include/starter_choose.h +++ b/include/starter_choose.h @@ -3,6 +3,11 @@ #include "sprite.h" +extern const u16 gBirchBagGrassPal[2][16]; +extern const u8 gBirchBagTilemap[]; +extern const u8 gBirchGrassTilemap[]; +extern const u8 gBirchHelpGfx[]; + u16 GetStarterPokemon(u16); void CB2_ChooseStarter(void); diff --git a/include/string_util.h b/include/string_util.h index f45c2741f..7a4bfa4c1 100644 --- a/include/string_util.h +++ b/include/string_util.h @@ -8,6 +8,8 @@ enum StringConvertMode STR_CONV_MODE_LEADING_ZEROS }; +extern const u8 gEmptyString_81E72B0[]; + u8 *StringCopy10(u8 *dest, const u8 *src); u8 *StringGetEnd10(u8 *str); u8 *StringCopy8(u8 *dest, const u8 *src); diff --git a/include/task.h b/include/task.h index d2b2302cf..6c6efdf4f 100644 --- a/include/task.h +++ b/include/task.h @@ -5,12 +5,12 @@ typedef void (*TaskFunc)(u8 taskId); struct Task { - TaskFunc func; - bool8 isActive; - u8 prev; - u8 next; - u8 priority; - s16 data[16]; + /*0x00*/ TaskFunc func; + /*0x04*/ bool8 isActive; + /*0x05*/ u8 prev; + /*0x06*/ u8 next; + /*0x07*/ u8 priority; + /*0x08*/ s16 data[16]; }; extern struct Task gTasks[]; diff --git a/include/text.h b/include/text.h index ba4ccb4b2..6e32de6dd 100644 --- a/include/text.h +++ b/include/text.h @@ -2,6 +2,7 @@ #define GUARD_TEXT_H #define CHAR_SPACE 0x00 +#define CHAR_0 0xA1 #define CHAR_QUESTION_MARK 0xAC #define CHAR_PERIOD 0xAD #define CHAR_HYPHEN 0xAE @@ -10,6 +11,58 @@ #define CHAR_COMMA 0xB8 #define CHAR_CURRENCY 0xB7 #define CHAR_SLASH 0xBA +#define CHAR_A 0xBB +#define CHAR_B 0xBC +#define CHAR_C 0xBD +#define CHAR_D 0xBE +#define CHAR_E 0xBF +#define CHAR_F 0xC0 +#define CHAR_G 0xC1 +#define CHAR_H 0xC2 +#define CHAR_I 0xC3 +#define CHAR_J 0xC4 +#define CHAR_K 0xC5 +#define CHAR_L 0xC6 +#define CHAR_M 0xC7 +#define CHAR_N 0xC8 +#define CHAR_O 0xC9 +#define CHAR_P 0xCA +#define CHAR_Q 0xCB +#define CHAR_R 0xCC +#define CHAR_S 0xCD +#define CHAR_T 0xCE +#define CHAR_U 0xCF +#define CHAR_V 0xD0 +#define CHAR_W 0xD1 +#define CHAR_X 0xD2 +#define CHAR_Y 0xD3 +#define CHAR_Z 0xD4 +#define CHAR_a 0xD5 +#define CHAR_b 0xD6 +#define CHAR_c 0xD7 +#define CHAR_d 0xD8 +#define CHAR_e 0xD9 +#define CHAR_f 0xDA +#define CHAR_g 0xDB +#define CHAR_h 0xDC +#define CHAR_i 0xDD +#define CHAR_j 0xDE +#define CHAR_k 0xDF +#define CHAR_l 0xE0 +#define CHAR_m 0xE1 +#define CHAR_n 0xE2 +#define CHAR_o 0xE3 +#define CHAR_p 0xE4 +#define CHAR_q 0xE5 +#define CHAR_r 0xE6 +#define CHAR_s 0xE7 +#define CHAR_t 0xE8 +#define CHAR_u 0xE9 +#define CHAR_v 0xEA +#define CHAR_w 0xEB +#define CHAR_x 0xEC +#define CHAR_y 0xED +#define CHAR_z 0xEE #define CHAR_COLON 0xF0 #define EXT_CTRL_CODE_BEGIN 0xFC // extended control code #define PLACEHOLDER_BEGIN 0xFD // string placeholder diff --git a/include/time_events.h b/include/time_events.h new file mode 100644 index 000000000..fd6d29f39 --- /dev/null +++ b/include/time_events.h @@ -0,0 +1,8 @@ +#ifndef GUARD_TIME_EVENTS_H +#define GUARD_TIME_EVENTS_H + +void UpdateMirageRnd(u16); +u8 IsMirageIslandPresent(void); +void UpdateBirchState(u16); + +#endif // GUARD_TIME_EVENTS_H diff --git a/include/title_screen.h b/include/title_screen.h index 304ec0540..91da38018 100644 --- a/include/title_screen.h +++ b/include/title_screen.h @@ -3,6 +3,8 @@ #include "sprite.h" +extern const u16 gUnknown_08393E64[]; + void SpriteCallback_VersionBannerLeft(struct Sprite *sprite); void SpriteCallback_VersionBannerRight(struct Sprite *sprite); void SpriteCallback_PressStartCopyrightBanner(struct Sprite *sprite); diff --git a/include/trader.h b/include/trader.h new file mode 100644 index 000000000..24a9f2a07 --- /dev/null +++ b/include/trader.h @@ -0,0 +1,6 @@ +#ifndef GUARD_TRADER_H +#define GUARD_TRADER_H + +void sub_81099CC(void); + +#endif // GUARD_TRADER_H diff --git a/include/trainer_see.h b/include/trainer_see.h index 0113143b6..b80a41641 100644 --- a/include/trainer_see.h +++ b/include/trainer_see.h @@ -28,7 +28,7 @@ s8 sub_80845FC(u8 taskId, struct Task *task, struct MapObject *trainerObj); s8 sub_8084654(u8 taskId, struct Task *task, struct MapObject *trainerObj); s8 sub_80846C8(u8 taskId, struct Task *task, struct MapObject *trainerObj); void sub_80846E4(u8 taskId); -void sub_8084794(u32 var); +void sub_8084794(struct MapObject *var); void sub_80847C8(void); void sub_80847D8(u8); void sub_8084894(struct Sprite *sprite, u16 a2, u8 a3); diff --git a/include/trig.h b/include/trig.h index 03d8c453e..a2f98a3e6 100644 --- a/include/trig.h +++ b/include/trig.h @@ -1,7 +1,7 @@ #ifndef GUARD_TRIG_H #define GUARD_TRIG_H -extern s16 gSineTable[]; +extern const s16 gSineTable[]; s16 Sin(s16 index, s16 amplitude); s16 Cos(s16 index, s16 amplitude); diff --git a/include/tv.h b/include/tv.h index b1ed61a82..277d29750 100644 --- a/include/tv.h +++ b/include/tv.h @@ -1,9 +1,6 @@ -// -// Created by Scott Norton on 5/18/17. -// +#ifndef GUARD_TV_H +#define GUARD_TV_H -#ifndef POKERUBY_TV_H -#define POKERUBY_TV_H enum { TVSHOW_FAN_CLUB_LETTER = 1, @@ -20,4 +17,94 @@ enum TVSHOW_WORLD_OF_MASTERS, TVSHOW_MASS_OUTBREAK = 41, }; -#endif //POKERUBY_TV_H + +extern u8 *gUnknown_083D1464[3]; + +void ClearTVShowData(void); +u8 sub_80BDEAC(u8 *); +void sub_80BE028(void); +void sub_80BE074(void); +void sub_80BE138(TVShow *show); +void sub_80BE160(TVShow *show); +void sub_80BE160(TVShow *); +void sub_80BE188(void); +void sub_80BE320(void); +void StartMassOutbreak(void); +void sub_80BE5FC(void); +void sub_80BE65C(void); +void sub_80BE6A0(void); +void nullsub_21(void); +void sub_80BE778(void); +void sub_80BE8EC(u16); +void UpdateMassOutbreakTimeLeft(u16); +void sub_80BE97C(u8); +void sub_80BE9D4(); +void sub_80BEA50(u16); +void sub_80BEA5C(u16); +void sub_80BEA88(void); +void sub_80BEA88(void); +void sub_80BEB20(void); +int sub_80BEBC8(struct UnknownSaveStruct2ABC *arg0); +extern void sub_80BEBF4(void); +void sub_80BEC10(u8); +bool8 GetPriceReduction(u8); +bool8 IsPriceDiscounted(u8); +bool8 sub_80BEE48(u8); +void sub_80BEE84(u16); +size_t sub_80BF0B8(int); +bool8 sub_80BF1B4(u8); +void sub_80BF20C(void); +void sub_80BF334(void); +void sub_80BF3A4(void); +void sub_80BF3DC(void); +void sub_80BF46C(void); +void sub_80BF478(void); +void sub_80BF478(void); +void sub_80BF484(void); +void sub_80BF4BC(void); +void sub_80BF55C(TVShow tvShow[], u8 showidx); +void sub_80BF55C(TVShow tvShow[], u8 showidx); +void sub_80BF588(TVShow tvShows[]); +u16 sub_80BF674(u16 species); +void sub_80BF6D8(void); +s8 sub_80BF720(TVShow *); +s8 sub_80BF74C(TVShow tvShow[]); +bool8 sub_80BF77C(u16); +bool8 sub_80BF77C(u16); +u32 GetPlayerTrainerId(void); +void sub_80BFD44(u8 *, u32, u8); +u8 sub_80C004C(TVShow *tv1, TVShow *tv2, u8 idx); +u8 sub_80C00B4(TVShow *tv1, TVShow *tv2, u8 idx); +u8 sub_80C0134(TVShow *tv1, TVShow *tv2, u8 idx); +s8 sub_80C019C(TVShow tvShows[]); +void sub_80C01D4(void); +void sub_80C03A8(u8 showidx); +void sub_80C03C8(u16 species, u8 showidx); +void sub_80C0408(void); +bool8 sub_80C06E8(struct UnknownSaveStruct2ABC *arg0, struct UnknownSaveStruct2ABC *arg1, s8 arg2); +void TVShowConvertInternationalString(u8 *, u8 *, u8); +void DoTVShowTheNameRaterShow(void); +void DoTVShowPokemonTodaySuccessfulCapture(void); +void DoTVShowPokemonTodayFailedCapture(void); +void DoTVShowPokemonFanClubLetter(void); +void DoTVShowRecentHappenings(void); +void DoTVShowPokemonFanClubOpinions(void); +void nullsub_22(void); +void DoTVShowPokemonNewsMassOutbreak(void); +void DoTVShowPokemonAngler(void); +void DoTVShowTheWorldOfMasters(void); +void TVShowDone(void); +void UpdateTVScreensOnMap(int, int); +void ResetGabbyAndTy(void); +void TakeTVShowInSearchOfTrainersOffTheAir(void); +extern u8 GabbyAndTyGetBattleNum(void); +void sub_80C04A0(void); +void sub_80C0514(void *, u32, u8); +void DoTVShowBravoTrainerPokemonProfile(void); +void DoTVShowBravoTrainerBattleTowerProfile(void); +void DoTVShowTodaysSmartShopper(void); +void sub_80BE3BC(void); +void UpdateTVShowsPerDay(u16); +void sub_80C045C(); + +#endif // GUARD_TV_H diff --git a/include/unknown_task.h b/include/unknown_task.h new file mode 100644 index 000000000..dc07767d6 --- /dev/null +++ b/include/unknown_task.h @@ -0,0 +1,14 @@ +#ifndef GUARD_UNKNOWN_TASK_H +#define GUARD_UNKNOWN_TASK_H + +void remove_some_task(void); +void remove_some_task(void); +void dp12_8087EA4(void); +void dp12_8087EA4(void); +void sub_80895F8(u32 i, u32 i1, u32 i2); +void sub_80895F8(); +void sub_8089668(void); +void sub_8089668(); +void sub_8089944(int i, int i1, int i2, int i3, int i4, int i5, int i6); + +#endif // GUARD_UNKNOWN_TASK_H diff --git a/include/util.h b/include/util.h new file mode 100644 index 000000000..1851c2e82 --- /dev/null +++ b/include/util.h @@ -0,0 +1,13 @@ +#ifndef GUARD_UTIL_H +#define GUARD_UTIL_H + +#include "sprite.h" + +extern const u8 gMiscBlank_Gfx[]; +extern const u32 gBitTable[]; + +u8 CreateInvisibleSpriteWithCallback(void (*)(struct Sprite *)); +void StoreWordInTwoHalfwords(u16 *, u32); +void LoadWordFromTwoHalfwords(u16 *, u32 *); + +#endif // GUARD_UTIL_H diff --git a/include/wild_encounter.h b/include/wild_encounter.h index 33b7df7b9..a4485b08d 100644 --- a/include/wild_encounter.h +++ b/include/wild_encounter.h @@ -1,6 +1,31 @@ #ifndef GUARD_WILD_ENCOUNTER_H #define GUARD_WILD_ENCOUNTER_H +struct WildPokemon +{ + u8 minLevel; + u8 maxLevel; + u16 species; +}; + +struct WildPokemonInfo +{ + u8 encounterRate; + const struct WildPokemon *wildPokemon; +}; + +struct WildPokemonHeader +{ + u8 mapGroup; + u8 mapNum; + struct WildPokemonInfo *landMonsInfo; + struct WildPokemonInfo *waterMonsInfo; + struct WildPokemonInfo *rockSmashMonsInfo; + struct WildPokemonInfo *fishingMonsInfo; +}; + +extern struct WildPokemonHeader gWildMonHeaders[]; + void DisableWildEncounters(bool8 disabled); bool8 StandardWildEncounter(u16 a, u16 b); void RockSmashWildEncounter(void); diff --git a/ld_script.txt b/ld_script.txt index 866dcff5e..281f1781d 100644..100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -59,7 +59,7 @@ SECTIONS { asm/battle_6.o(.text); src/battle_6.o(.text); asm/battle_6.o(.text_8030464); - asm/battle_7.o(.text); + src/battle_7.o(.text); asm/battle_8.o(.text); asm/battle_9.o(.text); asm/battle_10.o(.text); @@ -78,7 +78,7 @@ SECTIONS { asm/egg_hatch.o(.text); src/battle_interface.o(.text); src/smokescreen.o(.text); - asm/pokeball.o(.text); + src/pokeball.o(.text); src/load_save.o(.text); asm/trade.o(.text); asm/berry_blender.o(.text); @@ -92,8 +92,7 @@ SECTIONS { src/field_player_avatar.o(.text); src/field_map_obj.o(.text); asm/field_map_obj.o(.text); - src/field_map_obj.o(.text_b); - asm/field_map_obj.o(.text_805fd18); + src/field_map_obj.o(.text_fmocb2_c); src/field_ground_effect.o(.text); asm/field_ground_effect.o(.text); src/field_map_obj_helpers.o(.text); @@ -135,16 +134,12 @@ SECTIONS { src/trainer_see.o(.text); src/wild_encounter.o(.text); src/field_effect.o(.text); - asm/field_effect.o(.text); asm/unknown_task.o(.text); asm/pokemon_menu.o(.text); src/option_menu.o(.text); src/pokedex.o(.text); - asm/pokedex.o(.text); src/trainer_card.o(.text); src/save_menu_util.o(.text); - src/rom_8094928.o(.text); - asm/rom_8094928.o(.text); src/battle_party_menu.o(.text); asm/pokemon_storage_system.o(.text); src/pokemon_storage_system.o(.text); @@ -175,12 +170,6 @@ SECTIONS { src/secret_base.o(.text); asm/secret_base.o(.text_80BC1D0); src/tv.o(.text); - asm/tv.o(.text); - src/tv.o(.text_a); - asm/tv.o(.text_80BE8EC); - src/tv.o(.dotvshow); - asm/tv.o(.dotvshow); - src/tv.o(.text_c); asm/contest_link_80C2020.o(.text); src/script_pokemon_util_80C4BF0.o(.text); src/field_poison.o(.text); @@ -208,9 +197,7 @@ SECTIONS { src/heal_location.o(.text); asm/region_map.o(.text); asm/cute_sketch.o(.text); - asm/decoration.o(.text); src/decoration.o(.text); - asm/decoration.o(.text_80FE868); asm/slot_machine.o(.text); src/slot_machine.o(.text); asm/slot_machine.o(.text_8104D30) @@ -243,7 +230,6 @@ SECTIONS { src/fldeff_strength.o(.text); asm/battle_transition.o(.text); src/battle_811DA74.o(.text); - asm/battle_811DA74.o(.text); asm/battle_message.o(.text); asm/choose_party.o(.text); asm/cable_car.o(.text); @@ -262,13 +248,12 @@ SECTIONS { asm/battle_anim_812C144.o(.text); asm/learn_move.o(.text); src/fldeff_softboiled.o(.text); - asm/decoration_inventory.o(.text); + src/decoration_inventory.o(.text); src/roamer.o(.text); asm/battle_tower.o(.text); asm/use_pokeblock.o(.text); asm/battle_anim_8137220.o(.text); src/player_pc.o(.text); - asm/player_pc.o(.text); src/intro.o(.text); src/field_region_map.o(.text); asm/battle_anim_813F0F4.o(.text); @@ -349,12 +334,12 @@ SECTIONS { data/data2.o(.rodata); data/pokemon.o(.rodata); . = ALIGN(4); - data/trig.o(.rodata); + src/trig.o(.rodata); data/util.o(.rodata); data/daycare.o(.rodata); data/egg_hatch.o(.rodata); data/battle_interface.o(.rodata); - data/pokeball.o(.rodata); + src/pokeball.o(.rodata); data/trade.o(.rodata); data/berry_blender.o(.rodata); src/new_game.o(.rodata); @@ -399,10 +384,10 @@ SECTIONS { data/trainer_see.o(.rodata); src/wild_encounter.o(.rodata); data/wild_encounter.o(.rodata); - data/field_effect.o(.rodata); + src/field_effect.o(.rodata); data/pokemon_menu.o(.rodata); data/option_menu.o(.rodata); - data/pokedex.o(.rodata); + src/pokedex.o(.rodata); data/trainer_card.o(.rodata); src/battle_party_menu.o(.rodata); data/pokemon_storage_system.o(.rodata); @@ -443,7 +428,7 @@ SECTIONS { src/heal_location.o(.rodata); data/region_map.o(.rodata); data/cute_sketch.o(.rodata); - data/decoration.o(.rodata); + src/decoration.o(.rodata); data/slot_machine.o(.rodata); src/contest_painting.o(.rodata); src/battle_ai.o(.rodata); @@ -470,12 +455,12 @@ SECTIONS { data/battle_anim_81258BC.o(.rodata); data/battle_anim_812C144.o(.rodata); data/learn_move.o(.rodata); - data/decoration_inventory.o(.rodata); + src/decoration_inventory.o(.rodata); src/roamer.o(.rodata); data/battle_tower.o(.rodata); data/use_pokeblock.o(.rodata); data/battle_anim_8137220.o(.rodata); - data/player_pc.o(.rodata); + src/player_pc.o(.rodata); src/intro.o(.rodata); data/battle_anim_813F0F4.o(.rodata); data/hall_of_fame.o(.rodata); diff --git a/shared_syms.txt b/shared_syms.txt index 16d4138e5..884f0e89d 100644 --- a/shared_syms.txt +++ b/shared_syms.txt @@ -22,7 +22,7 @@ unk_2016C00 = 0x2016C00; gTransformStatuses = 0x2017800; unk_2017810 = 0x2017810; -unk_201FE00 = 0x201FE00; +gMailboxInfo = 0x201FE00; gSecretBaseRecord = 0x2017000; diff --git a/src/bard_music.c b/src/bard_music.c index 43c2923d2..a5514e3f7 100644 --- a/src/bard_music.c +++ b/src/bard_music.c @@ -1,5 +1,4 @@ #include "global.h" -#include "asm.h" struct BardSound { diff --git a/src/battle_2.c b/src/battle_2.c index e5091bd08..2b13fc45d 100644 --- a/src/battle_2.c +++ b/src/battle_2.c @@ -1,22 +1,31 @@ #include "global.h" -#include "asm.h" +#include "abilities.h" #include "battle.h" +#include "battle_interface.h" +#include "battle_setup.h" #include "data2.h" +#include "item.h" +#include "link.h" #include "main.h" -#include "text.h" +#include "name_string_util.h" #include "palette.h" -#include "sprite.h" -#include "task.h" +#include "party_menu.h" +#include "pokeball.h" +#include "pokedex.h" #include "pokemon.h" -#include "species.h" -#include "link.h" -#include "name_string_util.h" -#include "battle_setup.h" #include "rng.h" -#include "sound.h" +#include "rom3.h" +#include "rom_8077ABC.h" +#include "rom_8094928.h" #include "songs.h" +#include "sound.h" +#include "species.h" +#include "sprite.h" +#include "task.h" +#include "text.h" #include "trig.h" -#include "abilities.h" +#include "unknown_task.h" +#include "util.h" struct UnknownStruct6 { @@ -55,48 +64,6 @@ struct UnknownPokemonStruct2 /*0x1D*/ u8 language; }; -struct UnknownStruct9 -{ - u8 unk0; - u16 unk2; -}; - -struct UnknownStruct10 -{ - u8 unk0_0:1; - u8 unk0_1:1; - u8 unk0_2:1; - u8 filler1[1]; - u8 unk2; - u8 unk3; - u8 filler4[8]; -}; - -struct UnknownStruct11 -{ - u8 unk0; - u8 unk1; - u8 unk2; - u8 unk3; - u8 unk4; - u8 unk5_0:1; - u8 unk5_1:1; - u16 unk6; - u8 unk8[10]; - u8 unk12; - u8 unk13; - u8 unk14[10]; - u8 filler1E[2]; - u16 unk20; - u16 unk22; - u16 unk24; - u16 unk26; - u16 unk28; - u8 unk2A[10]; - u8 filler34[2]; - u8 unk36[10]; -}; - struct UnknownStruct12 { u32 unk0; @@ -129,8 +96,6 @@ struct UnknownStruct13 extern const u16 gUnknown_08D004E0[]; extern const struct MonCoords gCastformFrontSpriteCoords[]; -extern const struct BaseStats gBaseStats[]; -extern const u32 gBitTable[]; extern u8 ewram[]; #define ewram0 (*(struct UnknownStruct7 *)(ewram + 0x0)) @@ -172,51 +137,49 @@ extern u8 ewram[]; #define ewram17100 ((u32 *)(ewram + 0x17100)) #define ewram17130 (ewram[0x17130]) #define ewram17160 (ewram[0x17160]) -#define ewram17800 ((struct UnknownStruct9 *)(ewram + 0x17800)) -#define ewram17810 ((struct UnknownStruct10 *)(ewram + 0x17810)) #define ewram1D000 ((struct Pokemon *)(ewram + 0x1D000)) extern struct UnknownPokemonStruct2 gUnknown_02023A00[]; -extern u8 gUnknown_02024260[][0x200]; -extern u8 gUnknown_02024A60; -extern u32 gUnknown_02024A64; -extern u8 gUnknown_02024A68; -extern u16 gUnknown_02024A6A[]; -extern u8 gUnknown_02024A7F; -extern u8 gUnknown_02024A7A[]; +extern u8 gBattleBufferB[][0x200]; +extern u8 gActiveBank; +extern u32 gBattleExecBuffer; +extern u8 gNoOfAllBanks; +extern u16 gBattlePartyID[]; +extern u8 gFightStateTracker; +extern u8 gTurnOrder[]; extern struct UnknownStruct12 gUnknown_02024AD0[]; -extern u8 gUnknown_02024BE0[]; -extern u16 gUnknown_02024BE6; -extern u8 byte_2024C06; -extern u8 gUnknown_02024C0B; -extern u8 gUnknown_02024C0C; -extern u8 gUnknown_02024C0E; -extern u8 gUnknown_02024C18[]; +extern u8 gObjectBankIDs[]; +extern u16 gCurrentMove; +extern u8 gLastUsedAbility; +extern u8 gStringBank; +extern u8 gAbsentBankFlags; +extern u8 gMultiHitCounter; +extern u8 gActionForBanks[]; extern u16 gUnknown_02024C2C[]; -extern u16 gUnknown_02024C34[]; -extern u16 gUnknown_02024C3C[]; +extern u16 gLastUsedMove[]; +extern u16 gMoveHitWith[]; extern u16 gUnknown_02024C44[]; extern u16 gUnknown_02024C4C[]; -extern u16 gUnknown_02024C54[]; +extern u16 gLockedMove[]; extern u8 gUnknown_02024C5C[]; -extern u16 gUnknown_02024C60[]; -extern u32 gUnknown_02024C6C; +extern u16 gChosenMovesByBanks[]; +extern u32 gHitMarker; extern u8 gUnknown_02024C70[]; -extern u16 gUnknown_02024C7A[]; -extern u8 gUnknown_02024C80[][12]; -extern u32 gUnknown_02024C98[]; -//extern u8 gUnknown_02024CA8[][0x1C]; -extern u16 gUnknown_02024D18; -extern u16 gUnknown_02024D1A; -extern u16 gUnknown_02024D1C; -extern u8 gUnknown_02024D1E[]; +extern u16 gSideAffecting[]; +extern u8 gSideTimer[][12]; +extern u32 gStatuses3[]; +//extern u8 gDisableStructs[][0x1C]; +extern u16 gPauseCounterBattle; +extern u16 gPaydayMoney; +extern u16 gRandomTurnNumber; +extern u8 gBattleCommunication[]; extern u8 gUnknown_02024D1F[]; // I don't actually know what type this is. -extern u8 gUnknown_02024D26; -extern struct UnknownStruct13 gUnknown_02024D28[]; -extern u8 gUnknown_02024DBC[]; +extern u8 gBattleOutcome; +extern struct UnknownStruct13 gProtectStructs[]; +extern u8 gWishFutureKnock[]; extern u16 gUnknown_02024DE8; -extern u8 gUnknown_02024E60[]; -extern u8 gUnknown_02024E64[]; +extern u8 gActionSelectionCursor[]; +extern u8 gMoveSelectionCursor[]; extern u8 gUnknown_02038470[]; extern u16 gUnknown_030041B0; extern u16 gUnknown_030041B4; @@ -234,12 +197,12 @@ extern u16 gUnknown_030042A0; extern u16 gUnknown_030042A4; extern u16 gUnknown_030042C0; extern u16 gUnknown_030042C4; -extern MainCallback gUnknown_030042D0; -extern void (*gUnknown_030042D4)(void); -extern struct UnknownStruct11 gUnknown_030042E0; -extern u8 gUnknown_03004324; -extern void (*gUnknown_03004330[])(void); -extern u8 gUnknown_03004340[]; +extern MainCallback gPreBattleCallback1; +extern void (*gBattleMainFunc)(void); +extern struct Struct30042E0 gBattleResults; +extern u8 gLeveledUpInBattle; +extern void (*gBattleBankFunc[])(void); +extern u8 gHealthboxIDs[]; extern struct UnknownStruct6 gUnknown_03004DE0; //extern u16 gUnknown_03004DE0[][0xA0]; // possibly? extern u16 gBattleTypeFlags; @@ -249,93 +212,13 @@ extern u16 gTrainerBattleOpponent; extern struct BattleEnigmaBerry gEnigmaBerries[]; extern u16 gBlockRecvBuffer[MAX_LINK_PLAYERS][BLOCK_BUFFER_SIZE / 2]; extern u8 gBattleMonForms[]; -extern u8 gPlayerMonIndex; -extern u8 gEnemyMonIndex; +extern u8 gBankAttacker; +extern u8 gBankTarget; extern u16 gBattleWeather; extern u32 gBattleMoveDamage; extern struct BattlePokemon gBattleMons[]; extern u8 gBattleMoveFlags; -extern void sub_800B858(void); -extern void dp12_8087EA4(void); -extern void sub_80895F8(); -extern void sub_800D6D4(); -extern void sub_800DAB8(); -extern void sub_800E23C(); -extern void setup_poochyena_battle(); -extern void SetWildMonHeldItem(void); -extern void AdjustFriendship(struct Pokemon *, u8); -extern void sub_800DE30(u8); -extern void sub_800B950(void); -extern u8 battle_load_something(); -extern void OpenPartyMenu(); -extern void sub_8089668(); -extern void sub_800D74C(); -extern void sub_804777C(u8); -extern void sub_8043DFC(); -extern u8 CreateInvisibleSpriteWithCallback(void (*)(struct Sprite *)); -extern void dp01_build_cmdbuf_x00_a_b_0(u8 a, u8 b, u8 c); -extern void dp01_build_cmdbuf_x04_4_4_4(u8 a); -extern void dp01_build_cmdbuf_x07_7_7_7(u8 a); -extern void dp01_build_cmdbuf_x12_a_bb(u8 a, u8 b, u16 c); -extern void dp01_build_cmdbuf_x2E_a(u8 a, u8 b); -extern void dp01_build_cmdbuf_x2F_2F_2F_2F(u8 a); -extern void dp01_build_cmdbuf_x30_TODO(u8 a, u8 *b, u8 c); -extern void dp01_battle_side_mark_buffer_for_execution(); -extern u8 sub_8090D90(); -extern void sub_800C704(u8, u8, u8); -extern u8 sub_8018324(); -extern u8 sub_801A02C(); -extern u8 sub_8015DFC(); -extern u8 sub_8016558(); -extern u8 sub_80173A4(); -extern u8 sub_80170DC(); -extern u8 ItemId_GetHoldEffect(u16); -extern void sub_8094C98(); - -void InitBattle(void); -void sub_800EC9C(void); -void sub_800F104(void); -void sub_800F298(void); -void sub_800F808(void); -void sub_800F838(struct Sprite *); -u8 CreateNPCTrainerParty(struct Pokemon *, u16); -void sub_800FCFC(void); -void sub_8010824(void); -void sub_80101B8(void); -void c2_081284E0(void); -void sub_8010278(struct Sprite *); -void sub_80102AC(struct Sprite *); -void nullsub_37(struct Sprite *); -void sub_8010320(struct Sprite *); -void sub_8010494(struct Sprite *); -void sub_801053C(struct Sprite *); -void oac_poke_ally_(struct Sprite *); -void nullsub_86(struct Sprite *); -void objc_dp11b_pingpong(struct Sprite *); -void sub_8010874(void); -void bc_8012FAC(void); -void bc_load_battlefield(void); -void sub_8011384(void); -void bc_801333C(void); -void bc_battle_begin_message(void); -void bc_8013568(void); -void sub_8011800(void); -void sub_8011834(void); -void bc_801362C(void); -void sub_8011970(void); -void sub_80119B4(void); -void sub_8011B00(void); -void sub_8011E8C(void); -void sub_8012324(void); -void sub_8012FBC(u8, u8); -u8 b_first_side(); -void sub_801365C(u8); -void sub_801377C(void); -void sub_80138F0(void); -void b_cancel_multi_turn_move_maybe(u8); -void b_std_message(); -void sub_80156DC(); void sub_800E7C4(void) { @@ -343,7 +226,7 @@ void sub_800E7C4(void) { sub_800B858(); SetMainCallback2(sub_800F104); - gUnknown_02024D1E[0] = 0; + gBattleCommunication[0] = 0; } else { @@ -416,7 +299,7 @@ void InitBattle(void) gMain.inBattle = TRUE; for (i = 0; i < 6; i++) AdjustFriendship(&gPlayerParty[i], 3); - gUnknown_02024D1E[0] = 0; + gBattleCommunication[0] = 0; } void sub_800E9EC(void) @@ -538,7 +421,7 @@ void sub_800EC9C(void) ewram160CB = playerId; enemyId = playerId ^ 1; - switch (gUnknown_02024D1E[0]) + switch (gBattleCommunication[0]) { case 0: if (gBattleTypeFlags & BATTLE_TYPE_LINK) @@ -550,13 +433,13 @@ void sub_800EC9C(void) sub_800E9EC(); sub_800EAAC(); SendBlock(bitmask_all_link_players_but_self(), &ewram0, 32); - gUnknown_02024D1E[0] = 1; + gBattleCommunication[0] = 1; } } else { gBattleTypeFlags |= BATTLE_TYPE_WILD; - gUnknown_02024D1E[0] = 8; + gBattleCommunication[0] = 8; sub_800EB08(); } break; @@ -607,14 +490,14 @@ void sub_800EC9C(void) gTasks[taskId].data[5] = 0; gTasks[taskId].data[3] = ewram0.unk2 | (ewram0.unk3 << 8); gTasks[taskId].data[4] = gBlockRecvBuffer[enemyId][1]; - gUnknown_02024D1E[0]++; + gBattleCommunication[0]++; } break; case 2: if (sub_8007ECC()) { SendBlock(bitmask_all_link_players_but_self(), gPlayerParty, sizeof(*gPlayerParty) * 2); - gUnknown_02024D1E[0]++; + gBattleCommunication[0]++; } break; case 3: @@ -622,14 +505,14 @@ void sub_800EC9C(void) { ResetBlockReceivedFlags(); memcpy(gEnemyParty, gBlockRecvBuffer[enemyId], sizeof(*gEnemyParty) * 2); - gUnknown_02024D1E[0]++; + gBattleCommunication[0]++; } break; case 4: if (sub_8007ECC()) { SendBlock(bitmask_all_link_players_but_self(), gPlayerParty + 2, sizeof(*gPlayerParty) * 2); - gUnknown_02024D1E[0]++; + gBattleCommunication[0]++; } break; case 5: @@ -637,14 +520,14 @@ void sub_800EC9C(void) { ResetBlockReceivedFlags(); memcpy(gEnemyParty + 2, gBlockRecvBuffer[enemyId], sizeof(*gEnemyParty) * 2); - gUnknown_02024D1E[0]++; + gBattleCommunication[0]++; } break; case 6: if (sub_8007ECC()) { SendBlock(bitmask_all_link_players_but_self(), gPlayerParty + 4, sizeof(*gPlayerParty) * 2); - gUnknown_02024D1E[0]++; + gBattleCommunication[0]++; } break; case 7: @@ -658,19 +541,19 @@ void sub_800EC9C(void) shedinja_something(&gEnemyParty[3]); shedinja_something(&gEnemyParty[4]); shedinja_something(&gEnemyParty[5]); - gUnknown_02024D1E[0]++; + gBattleCommunication[0]++; } break; case 8: sub_800B950(); - gUnknown_02024D1E[0]++; - gUnknown_02024D1E[1] = 0; - gUnknown_02024D1E[2] = 0; + gBattleCommunication[0]++; + gBattleCommunication[1] = 0; + gBattleCommunication[2] = 0; break; case 9: if (battle_load_something(gUnknown_02024D1F, gUnknown_02024D1F + 1) != 0) { - gUnknown_030042D0 = gMain.callback1; + gPreBattleCallback1 = gMain.callback1; gMain.callback1 = sub_8010824; SetMainCallback2(sub_800F808); if (gBattleTypeFlags & BATTLE_TYPE_LINK) @@ -723,14 +606,14 @@ void sub_800F104(void) AnimateSprites(); BuildOamBuffer(); - switch (gUnknown_02024D1E[0]) + switch (gBattleCommunication[0]) { case 0: if (gReceivedRemoteLinkPlayers != 0 && sub_8007ECC()) { sub_800F02C(); SendBlock(bitmask_all_link_players_but_self(), ewram, 0x60); - gUnknown_02024D1E[0]++; + gBattleCommunication[0]++; } break; case 1: @@ -748,7 +631,7 @@ void sub_800F104(void) memcpy(gUnknown_02023A00, gBlockRecvBuffer[i], 0x60); } } - gUnknown_02024D1E[0]++; + gBattleCommunication[0]++; *pSavedCallback = gMain.savedCallback; *pSavedBattleTypeFlags = gBattleTypeFlags; gMain.savedCallback = sub_800F104; @@ -758,7 +641,7 @@ void sub_800F104(void) case 2: if (!gPaletteFade.active) { - gUnknown_02024D1E[0] = 3; + gBattleCommunication[0] = 3; sub_800832C(); } break; @@ -783,7 +666,7 @@ void sub_800F298(void) RunTasks(); AnimateSprites(); BuildOamBuffer(); - switch (gUnknown_02024D1E[0]) + switch (gBattleCommunication[0]) { case 0: if (gReceivedRemoteLinkPlayers != 0 && sub_8007ECC()) @@ -793,7 +676,7 @@ void sub_800F298(void) sub_800E9EC(); sub_800EAAC(); SendBlock(bitmask_all_link_players_but_self(), ewram, 0x20); - gUnknown_02024D1E[0]++; + gBattleCommunication[0]++; } break; case 1: @@ -873,7 +756,7 @@ void sub_800F298(void) } ZeroPlayerPartyMons(); ZeroEnemyPartyMons(); - gUnknown_02024D1E[0]++; + gBattleCommunication[0]++; goto step_2; } break; @@ -882,7 +765,7 @@ void sub_800F298(void) if (sub_8007ECC()) { SendBlock(bitmask_all_link_players_but_self(), ewram1D000, sizeof(struct Pokemon) * 2); - gUnknown_02024D1E[0]++; + gBattleCommunication[0]++; } break; case 3: @@ -938,14 +821,14 @@ void sub_800F298(void) } } } - gUnknown_02024D1E[0]++; + gBattleCommunication[0]++; } break; case 4: if (sub_8007ECC()) { SendBlock(bitmask_all_link_players_but_self(), ewram1D000 + 2, sizeof(struct Pokemon)); - gUnknown_02024D1E[0]++; + gBattleCommunication[0]++; } break; case 5: @@ -1016,19 +899,19 @@ void sub_800F298(void) shedinja_something(&gEnemyParty[4]); shedinja_something(&gEnemyParty[5]); - gUnknown_02024D1E[0]++; + gBattleCommunication[0]++; } break; case 6: sub_800B950(); - gUnknown_02024D1E[0]++; - gUnknown_02024D1E[1] = 0; - gUnknown_02024D1E[2] = 0; + gBattleCommunication[0]++; + gBattleCommunication[1] = 0; + gBattleCommunication[2] = 0; break; case 7: if (battle_load_something(gUnknown_02024D1F, gUnknown_02024D1F + 1) != 0) { - gUnknown_030042D0 = gMain.callback1; + gPreBattleCallback1 = gMain.callback1; gMain.callback1 = sub_8010824; SetMainCallback2(sub_800F808); if (gBattleTypeFlags & BATTLE_TYPE_LINK) @@ -1387,7 +1270,7 @@ void c2_8011A1C(void) gTasks[taskId].data[5] = 1; sub_800FE40(taskId); SetMainCallback2(sub_80101B8); - gUnknown_02024D1E[0] = 0; + gBattleCommunication[0] = 0; } void sub_80101B8(void) @@ -1401,18 +1284,18 @@ void sub_80101B8(void) void c2_081284E0(void) { - switch (gUnknown_02024D1E[0]) + switch (gBattleCommunication[0]) { case 0: - gUnknown_02024D1E[1] = 0xFF; - gUnknown_02024D1E[0]++; + gBattleCommunication[1] = 0xFF; + gBattleCommunication[0]++; break; case 1: - gUnknown_02024D1E[1]--; - if (gUnknown_02024D1E[1] == 0) + gBattleCommunication[1]--; + if (gBattleCommunication[1] == 0) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); - gUnknown_02024D1E[0]++; + gBattleCommunication[0]++; } break; case 2: @@ -1447,7 +1330,7 @@ void sub_80102AC(struct Sprite *sprite) if (sprite->animEnded) { sub_804777C(sprite->data0); - sub_8043DFC(gUnknown_03004340[sprite->data0]); + sub_8043DFC(gHealthboxIDs[sprite->data0]); sprite->callback = nullsub_37; StartSpriteAnimIfDifferent(sprite, 0); BeginNormalPaletteFade(0x00020000, 0, 10, 0, 0x3DEF); @@ -1493,11 +1376,11 @@ void sub_8010384(struct Sprite *sprite) else species = sprite->data2; - GetMonData(&gEnemyParty[gUnknown_02024A6A[r6]], MON_DATA_PERSONALITY); // Unused return value + GetMonData(&gEnemyParty[gBattlePartyID[r6]], MON_DATA_PERSONALITY); // Unused return value if (species == SPECIES_UNOWN) { - u32 personalityValue = GetMonData(&gEnemyParty[gUnknown_02024A6A[r6]], MON_DATA_PERSONALITY); + u32 personalityValue = GetMonData(&gEnemyParty[gBattlePartyID[r6]], MON_DATA_PERSONALITY); u16 unownForm = ((((personalityValue & 0x3000000) >> 18) | ((personalityValue & 0x30000) >> 12) | ((personalityValue & 0x300) >> 6) | (personalityValue & 3)) % 0x1C); u16 unownSpecies; @@ -1543,7 +1426,7 @@ void sub_8010494(struct Sprite *sprite) } else { - u8 *dst = (u8 *)gUnknown_081FAF4C[battle_get_per_side_status(sprite->data0)] + (gBattleMonForms[sprite->data0] << 11) + (sprite->data3 << 8); + u8 *dst = (u8 *)gUnknown_081FAF4C[GetBankIdentity(sprite->data0)] + (gBattleMonForms[sprite->data0] << 11) + (sprite->data3 << 8); for (i = 0; i < 0x100; i++) *(dst++) = 0; @@ -1631,14 +1514,14 @@ void dp11b_obj_instanciate(u8 a, u8 b, s8 c, s8 d) spriteId = CreateInvisibleSpriteWithCallback(objc_dp11b_pingpong); if (b == TRUE) { - r7 = gUnknown_03004340[a]; + r7 = gHealthboxIDs[a]; ewram17810[a].unk2 = spriteId; ewram17810[a].unk0_1 = 1; gSprites[spriteId].data0 = 0x80; } else { - r7 = gUnknown_02024BE0[a]; + r7 = gObjectBankIDs[a]; ewram17810[a].unk3 = spriteId; ewram17810[a].unk0_2 = 1; gSprites[spriteId].data0 = 0xC0; @@ -1696,17 +1579,17 @@ void nullsub_41(void) void sub_8010800(void) { sub_8010874(); - gUnknown_02024D1E[1] = 0; - gUnknown_030042D4 = bc_8012FAC; + gBattleCommunication[1] = 0; + gBattleMainFunc = bc_8012FAC; } void sub_8010824(void) { - gUnknown_030042D4(); - gUnknown_02024A60 = 0; + gBattleMainFunc(); + gActiveBank = 0; - for (gUnknown_02024A60 = 0; gUnknown_02024A60 < gUnknown_02024A68; gUnknown_02024A60++) - gUnknown_03004330[gUnknown_02024A60](); + for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + gBattleBankFunc[gActiveBank](); } void sub_8010874(void) @@ -1715,65 +1598,65 @@ void sub_8010874(void) s32 j; u8 *r4; - sub_801365C(0); - sub_801377C(); + TurnValuesCleanUp(0); + SpecialStatusesClear(); for (i = 0; i < 4; i++) { - gUnknown_02024C98[i] = 0; + gStatuses3[i] = 0; - r4 = (u8 *)&gUnknown_02024CA8[i]; + r4 = (u8 *)&gDisableStructs[i]; for (j = 0; j < (u32)0x1C; j++) r4[j] = 0; - gUnknown_02024CA8[i].unk16 = 2; + gDisableStructs[i].unk16 = 2; gUnknown_02024C70[i] = 0; - gUnknown_02024C34[i] = 0; - gUnknown_02024C3C[i] = 0; + gLastUsedMove[i] = 0; + gMoveHitWith[i] = 0; gUnknown_02024C44[i] = 0; gUnknown_02024C4C[i] = 0; gUnknown_02024C5C[i] = 0xFF; - gUnknown_02024C54[i] = 0; + gLockedMove[i] = 0; gUnknown_02024C2C[i] = 0; ewram17100[i] = 0; } for (i = 0; i < 2; i++) { - gUnknown_02024C7A[i] = 0; + gSideAffecting[i] = 0; - r4 = (u8 *)&gUnknown_02024C80[i]; + r4 = (u8 *)&gSideTimer[i]; for (j = 0; j < (u32)12; j++) r4[j] = 0; } - gPlayerMonIndex = 0; - gEnemyMonIndex = 0; + gBankAttacker = 0; + gBankTarget = 0; gBattleWeather = 0; - r4 = (u8 *)&gUnknown_02024DBC; + r4 = (u8 *)&gWishFutureKnock; for (i = 0; i < (u32)0x2C; i++) r4[i] = 0; - gUnknown_02024C6C = 0; + gHitMarker = 0; if ((gBattleTypeFlags & 2) == 0 && gSaveBlock2.optionsBattleSceneOff == TRUE) - gUnknown_02024C6C = 0x80; + gHitMarker = 0x80; ewram16084 = gSaveBlock2.optionsBattleStyle; - gUnknown_02024C0E = 0; - gUnknown_02024D26 = 0; - gUnknown_02024A64 = 0; - gUnknown_02024D1A = 0; + gMultiHitCounter = 0; + gBattleOutcome = 0; + gBattleExecBuffer = 0; + gPaydayMoney = 0; ewram17130 = 0; ewram17160 = 0; for (i = 0; i < 8; i++) - gUnknown_02024D1E[i] = 0; - gUnknown_02024D18 = 0; + gBattleCommunication[i] = 0; + gPauseCounterBattle = 0; gBattleMoveDamage = 0; gUnknown_02024DE8 = 0; ewram16002 = 0; ewram160A1 = 0; - gUnknown_03004324 = 0; - gUnknown_02024C0C = 0; + gLeveledUpInBattle = 0; + gAbsentBankFlags = 0; ewram16078 = 0; ewram16086 = 0; ewram16087 = 0; @@ -1796,208 +1679,208 @@ void sub_8010874(void) ewram160C9 = 6; ewram16113 = 0; for (i = 0; i < 11; i++) - gUnknown_030042E0.unk36[i] = 0; - gUnknown_030042E0.unk13 = 0; - gUnknown_030042E0.unk0 = 0; - gUnknown_030042E0.unk1 = 0; - gUnknown_030042E0.unk2 = 0; - gUnknown_030042E0.unk3 = 0; - gUnknown_030042E0.unk4 = 0; - gUnknown_030042E0.unk5_0 = 0; - gUnknown_030042E0.unk5_1 = 0; - gUnknown_030042E0.unk20 = 0; - gUnknown_030042E0.unk22 = 0; - gUnknown_030042E0.unk24 = 0; - gUnknown_030042E0.unk6 = 0; - gUnknown_030042E0.unk26 = 0; - gUnknown_030042E0.unk28 = 0; + gBattleResults.unk36[i] = 0; + gBattleResults.unk13 = 0; + gBattleResults.unk0 = 0; + gBattleResults.unk1 = 0; + gBattleResults.unk2 = 0; + gBattleResults.unk3 = 0; + gBattleResults.unk4 = 0; + gBattleResults.unk5_0 = 0; + gBattleResults.unk5_1 = 0; + gBattleResults.unk20 = 0; + gBattleResults.unk22 = 0; + gBattleResults.unk24 = 0; + gBattleResults.unk6 = 0; + gBattleResults.unk26 = 0; + gBattleResults.unk28 = 0; for (i = 0; i < 10; i++) { - gUnknown_030042E0.unk8[i] = 0; - gUnknown_030042E0.unk14[i] = 0; - gUnknown_030042E0.unk2A[i] = 0; + gBattleResults.unk8[i] = 0; + gBattleResults.unk14[i] = 0; + gBattleResults.unk2A[i] = 0; } } void sub_8010B88(void) { - struct UnknownStruct4 sp0 = gUnknown_02024CA8[gUnknown_02024A60]; + struct UnkBattleStruct4 sp0 = gDisableStructs[gActiveBank]; s32 i; u8 *ptr; u32 *ptr2; - if (gBattleMoves[gUnknown_02024BE6].effect != 0x7F) + if (gBattleMoves[gCurrentMove].effect != 0x7F) { for (i = 0; i < 8; i++) - gBattleMons[gUnknown_02024A60].statStages[i] = 6; - for (i = 0; i < gUnknown_02024A68; i++) + gBattleMons[gActiveBank].statStages[i] = 6; + for (i = 0; i < gNoOfAllBanks; i++) { struct UnknownStruct12 *sp20 = &gUnknown_02024AD0[i]; - if ((sp20->unk0 & 0x04000000) && gUnknown_02024CA8[i].unk14 == gUnknown_02024A60) + if ((sp20->unk0 & 0x04000000) && gDisableStructs[i].unk14 == gActiveBank) sp20->unk0 &= ~0x04000000; - if ((gUnknown_02024C98[i] & 0x18) && gUnknown_02024CA8[i].unk15 == gUnknown_02024A60) + if ((gStatuses3[i] & 0x18) && gDisableStructs[i].unk15 == gActiveBank) { - gUnknown_02024C98[i] &= ~0x18; - gUnknown_02024CA8[i].unk15 = 0; + gStatuses3[i] &= ~0x18; + gDisableStructs[i].unk15 = 0; } } } - if (gBattleMoves[gUnknown_02024BE6].effect == 0x7F) + if (gBattleMoves[gCurrentMove].effect == 0x7F) { - gBattleMons[gUnknown_02024A60].status2 &= 0x15100007; - gUnknown_02024C98[gUnknown_02024A60] &= 0x3043F; + gBattleMons[gActiveBank].status2 &= 0x15100007; + gStatuses3[gActiveBank] &= 0x3043F; - for (i = 0; i < gUnknown_02024A68; i++) + for (i = 0; i < gNoOfAllBanks; i++) { - if (battle_side_get_owner(gUnknown_02024A60) != battle_side_get_owner(i) - && (gUnknown_02024C98[i] & 0x18) != 0 - && (gUnknown_02024CA8[i].unk15 == gUnknown_02024A60)) + if (GetBankSide(gActiveBank) != GetBankSide(i) + && (gStatuses3[i] & 0x18) != 0 + && (gDisableStructs[i].unk15 == gActiveBank)) { - gUnknown_02024C98[i] &= ~0x18; - gUnknown_02024C98[i] |= 0x10; + gStatuses3[i] &= ~0x18; + gStatuses3[i] |= 0x10; } } } else { - gBattleMons[gUnknown_02024A60].status2 = 0; - gUnknown_02024C98[gUnknown_02024A60] = 0; + gBattleMons[gActiveBank].status2 = 0; + gStatuses3[gActiveBank] = 0; } - for (i = 0; i < gUnknown_02024A68; i++) + for (i = 0; i < gNoOfAllBanks; i++) { - if (gUnknown_02024AD0[i].unk0 & (gBitTable[gUnknown_02024A60] << 16)) - gUnknown_02024AD0[i].unk0 &= ~(gBitTable[gUnknown_02024A60] << 16); - if ((gUnknown_02024AD0[i].unk0 & 0xE000) && ewram[0x16020 + i] == gUnknown_02024A60) + if (gUnknown_02024AD0[i].unk0 & (gBitTable[gActiveBank] << 16)) + gUnknown_02024AD0[i].unk0 &= ~(gBitTable[gActiveBank] << 16); + if ((gUnknown_02024AD0[i].unk0 & 0xE000) && ewram[0x16020 + i] == gActiveBank) gUnknown_02024AD0[i].unk0 &= ~0xE000; } - gUnknown_02024E60[gUnknown_02024A60] = 0; - gUnknown_02024E64[gUnknown_02024A60] = 0; + gActionSelectionCursor[gActiveBank] = 0; + gMoveSelectionCursor[gActiveBank] = 0; - ptr = (u8 *)&gUnknown_02024CA8[gUnknown_02024A60]; + ptr = (u8 *)&gDisableStructs[gActiveBank]; for (i = 0; i < (u32)0x1C; i++) ptr[i] = 0; - if (gBattleMoves[gUnknown_02024BE6].effect == 0x7F) + if (gBattleMoves[gCurrentMove].effect == 0x7F) { - gUnknown_02024CA8[gUnknown_02024A60].unkA = sp0.unkA; - gUnknown_02024CA8[gUnknown_02024A60].unk15 = sp0.unk15; - gUnknown_02024CA8[gUnknown_02024A60].unkF_0 = sp0.unkF_0; - gUnknown_02024CA8[gUnknown_02024A60].unkF_4 = sp0.unkF_4; + gDisableStructs[gActiveBank].unkA = sp0.unkA; + gDisableStructs[gActiveBank].unk15 = sp0.unk15; + gDisableStructs[gActiveBank].unkF_0 = sp0.unkF_0; + gDisableStructs[gActiveBank].unkF_4 = sp0.unkF_4; } - gUnknown_02024CA8[gUnknown_02024A60].unk16 = 2; - gUnknown_02024C34[gUnknown_02024A60] = 0; - gUnknown_02024C3C[gUnknown_02024A60] = 0; - gUnknown_02024C44[gUnknown_02024A60] = 0; - gUnknown_02024C4C[gUnknown_02024A60] = 0; - gUnknown_02024C2C[gUnknown_02024A60] = 0; - gUnknown_02024C5C[gUnknown_02024A60] = 0xFF; + gDisableStructs[gActiveBank].unk16 = 2; + gLastUsedMove[gActiveBank] = 0; + gMoveHitWith[gActiveBank] = 0; + gUnknown_02024C44[gActiveBank] = 0; + gUnknown_02024C4C[gActiveBank] = 0; + gUnknown_02024C2C[gActiveBank] = 0; + gUnknown_02024C5C[gActiveBank] = 0xFF; - ewram[0x160AC + gUnknown_02024A60 * 2 + 0] = 0; - ewram[0x160AC + gUnknown_02024A60 * 2 + 1] = 0; - ewram[0x16100 + gUnknown_02024A60 * 4 + 0] = 0; - ewram[0x16100 + gUnknown_02024A60 * 4 + 1] = 0; - ewram[0x16100 + gUnknown_02024A60 * 4 + 2] = 0; - ewram[0x16100 + gUnknown_02024A60 * 4 + 3] = 0; - ewram[0x160E8 + gUnknown_02024A60 * 2 + 0] = 0; - ewram[0x160E8 + gUnknown_02024A60 * 2 + 1] = 0; + ewram[0x160AC + gActiveBank * 2 + 0] = 0; + ewram[0x160AC + gActiveBank * 2 + 1] = 0; + ewram[0x16100 + gActiveBank * 4 + 0] = 0; + ewram[0x16100 + gActiveBank * 4 + 1] = 0; + ewram[0x16100 + gActiveBank * 4 + 2] = 0; + ewram[0x16100 + gActiveBank * 4 + 3] = 0; + ewram[0x160E8 + gActiveBank * 2 + 0] = 0; + ewram[0x160E8 + gActiveBank * 2 + 1] = 0; ptr2 = (u32 *)(ewram + 0x17100); - ptr2[gUnknown_02024A60] = 0; + ptr2[gActiveBank] = 0; - gUnknown_02024BE6 = 0; + gCurrentMove = 0; } -void sub_8010F48(void) +void UndoEffectsAfterFainting(void) { s32 i; u8 *ptr; u32 *ptr2; for (i = 0; i < 8; i++) - gBattleMons[gUnknown_02024A60].statStages[i] = 6; - gBattleMons[gUnknown_02024A60].status2 = 0; - gUnknown_02024C98[gUnknown_02024A60] = 0; - for (i = 0; i < gUnknown_02024A68; i++) + gBattleMons[gActiveBank].statStages[i] = 6; + gBattleMons[gActiveBank].status2 = 0; + gStatuses3[gActiveBank] = 0; + for (i = 0; i < gNoOfAllBanks; i++) { - if ((gBattleMons[i].status2 & 0x4000000) && gUnknown_02024CA8[i].unk14 == gUnknown_02024A60) + if ((gBattleMons[i].status2 & 0x4000000) && gDisableStructs[i].unk14 == gActiveBank) gBattleMons[i].status2 &= ~0x4000000; - if (gBattleMons[i].status2 & (gBitTable[gUnknown_02024A60] << 16)) - gBattleMons[i].status2 &= ~(gBitTable[gUnknown_02024A60] << 16); - if ((gBattleMons[i].status2 & 0xE000) && ewram[0x16020 + i] == gUnknown_02024A60) + if (gBattleMons[i].status2 & (gBitTable[gActiveBank] << 16)) + gBattleMons[i].status2 &= ~(gBitTable[gActiveBank] << 16); + if ((gBattleMons[i].status2 & 0xE000) && ewram[0x16020 + i] == gActiveBank) gBattleMons[i].status2 &= ~0xE000; } - gUnknown_02024E60[gUnknown_02024A60] = 0; - gUnknown_02024E64[gUnknown_02024A60] = 0; + gActionSelectionCursor[gActiveBank] = 0; + gMoveSelectionCursor[gActiveBank] = 0; - ptr = (u8 *)&gUnknown_02024CA8[gUnknown_02024A60]; + ptr = (u8 *)&gDisableStructs[gActiveBank]; for (i = 0; i < (u32)0x1C; i++) ptr[i] = 0; - gUnknown_02024D28[gUnknown_02024A60].unk0_0 = 0; - gUnknown_02024D28[gUnknown_02024A60].unk0_1 = 0; - gUnknown_02024D28[gUnknown_02024A60].unk0_2 = 0; - gUnknown_02024D28[gUnknown_02024A60].unk0_3 = 0; - gUnknown_02024D28[gUnknown_02024A60].unk0_4 = 0; - gUnknown_02024D28[gUnknown_02024A60].unk0_5 = 0; - gUnknown_02024D28[gUnknown_02024A60].unk0_6 = 0; - gUnknown_02024D28[gUnknown_02024A60].unk0_7 = 0; - gUnknown_02024D28[gUnknown_02024A60].unk1_0 = 0; - gUnknown_02024D28[gUnknown_02024A60].unk1_1 = 0; - gUnknown_02024D28[gUnknown_02024A60].unk1_2 = 0; - gUnknown_02024D28[gUnknown_02024A60].unk1_3 = 0; - gUnknown_02024D28[gUnknown_02024A60].unk1_5 = 0; - gUnknown_02024D28[gUnknown_02024A60].unk1_6 = 0; - gUnknown_02024D28[gUnknown_02024A60].unk1_7 = 0; - gUnknown_02024D28[gUnknown_02024A60].unk2_0 = 0; - gUnknown_02024D28[gUnknown_02024A60].unk2_1 = 0; - gUnknown_02024D28[gUnknown_02024A60].unk2_2 = 0; - gUnknown_02024D28[gUnknown_02024A60].unk2_3 = 0; - - gUnknown_02024CA8[gUnknown_02024A60].unk16 = 2; - gUnknown_02024C34[gUnknown_02024A60] = 0; - gUnknown_02024C3C[gUnknown_02024A60] = 0; - gUnknown_02024C44[gUnknown_02024A60] = 0; - gUnknown_02024C4C[gUnknown_02024A60] = 0; - gUnknown_02024C2C[gUnknown_02024A60] = 0; - gUnknown_02024C5C[gUnknown_02024A60] = 0xFF; - - ewram[0x160E8 + gUnknown_02024A60 * 2 + 0] = 0; - ewram[0x160E8 + gUnknown_02024A60 * 2 + 1] = 0; - ewram[0x160AC + gUnknown_02024A60 * 2 + 0] = 0; - ewram[0x160AC + gUnknown_02024A60 * 2 + 1] = 0; - ewram[0x16100 + gUnknown_02024A60 * 4 + 0] = 0; - ewram[0x16100 + gUnknown_02024A60 * 4 + 1] = 0; - ewram[0x16100 + gUnknown_02024A60 * 4 + 2] = 0; - ewram[0x16100 + gUnknown_02024A60 * 4 + 3] = 0; + gProtectStructs[gActiveBank].unk0_0 = 0; + gProtectStructs[gActiveBank].unk0_1 = 0; + gProtectStructs[gActiveBank].unk0_2 = 0; + gProtectStructs[gActiveBank].unk0_3 = 0; + gProtectStructs[gActiveBank].unk0_4 = 0; + gProtectStructs[gActiveBank].unk0_5 = 0; + gProtectStructs[gActiveBank].unk0_6 = 0; + gProtectStructs[gActiveBank].unk0_7 = 0; + gProtectStructs[gActiveBank].unk1_0 = 0; + gProtectStructs[gActiveBank].unk1_1 = 0; + gProtectStructs[gActiveBank].unk1_2 = 0; + gProtectStructs[gActiveBank].unk1_3 = 0; + gProtectStructs[gActiveBank].unk1_5 = 0; + gProtectStructs[gActiveBank].unk1_6 = 0; + gProtectStructs[gActiveBank].unk1_7 = 0; + gProtectStructs[gActiveBank].unk2_0 = 0; + gProtectStructs[gActiveBank].unk2_1 = 0; + gProtectStructs[gActiveBank].unk2_2 = 0; + gProtectStructs[gActiveBank].unk2_3 = 0; + + gDisableStructs[gActiveBank].unk16 = 2; + gLastUsedMove[gActiveBank] = 0; + gMoveHitWith[gActiveBank] = 0; + gUnknown_02024C44[gActiveBank] = 0; + gUnknown_02024C4C[gActiveBank] = 0; + gUnknown_02024C2C[gActiveBank] = 0; + gUnknown_02024C5C[gActiveBank] = 0xFF; + + ewram[0x160E8 + gActiveBank * 2 + 0] = 0; + ewram[0x160E8 + gActiveBank * 2 + 1] = 0; + ewram[0x160AC + gActiveBank * 2 + 0] = 0; + ewram[0x160AC + gActiveBank * 2 + 1] = 0; + ewram[0x16100 + gActiveBank * 4 + 0] = 0; + ewram[0x16100 + gActiveBank * 4 + 1] = 0; + ewram[0x16100 + gActiveBank * 4 + 2] = 0; + ewram[0x16100 + gActiveBank * 4 + 3] = 0; ptr2 = (u32 *)(ewram + 0x17100); - ptr2[gUnknown_02024A60] = 0; + ptr2[gActiveBank] = 0; - gBattleMons[gUnknown_02024A60].type1 = gBaseStats[gBattleMons[gUnknown_02024A60].species].type1; - gBattleMons[gUnknown_02024A60].type2 = gBaseStats[gBattleMons[gUnknown_02024A60].species].type2; + gBattleMons[gActiveBank].type1 = gBaseStats[gBattleMons[gActiveBank].species].type1; + gBattleMons[gActiveBank].type2 = gBaseStats[gBattleMons[gActiveBank].species].type2; } void bc_8012FAC(void) { - switch (gUnknown_02024D1E[0]) + switch (gBattleCommunication[0]) { case 0: - gUnknown_02024A60 = gUnknown_02024D1E[1]; - dp01_build_cmdbuf_x00_a_b_0(0, 0, 0); - dp01_battle_side_mark_buffer_for_execution(gUnknown_02024A60); - gUnknown_02024D1E[0]++; + gActiveBank = gBattleCommunication[1]; + EmitGetAttributes(0, 0, 0); + MarkBufferBankForExecution(gActiveBank); + gBattleCommunication[0]++; break; case 1: - if (gUnknown_02024A64 == 0) + if (gBattleExecBuffer == 0) { - gUnknown_02024D1E[1]++; - if (gUnknown_02024D1E[1] == gUnknown_02024A68) - gUnknown_030042D4 = bc_load_battlefield; + gBattleCommunication[1]++; + if (gBattleCommunication[1] == gNoOfAllBanks) + gBattleMainFunc = bc_load_battlefield; else - gUnknown_02024D1E[0] = 0; + gBattleCommunication[0] = 0; } break; } @@ -2005,14 +1888,14 @@ void bc_8012FAC(void) void bc_load_battlefield(void) { - if (gUnknown_02024A64 == 0) + if (gBattleExecBuffer == 0) { - gUnknown_02024A60 = battle_get_side_with_given_state(0); - dp01_build_cmdbuf_x2E_a(0, gBattleTerrain); - dp01_battle_side_mark_buffer_for_execution(gUnknown_02024A60); - gUnknown_030042D4 = sub_8011384; - gUnknown_02024D1E[0] = 0; - gUnknown_02024D1E[1] = 0; + gActiveBank = GetBankByPlayerAI(0); + EmitBattleIntroSlide(0, gBattleTerrain); + MarkBufferBankForExecution(gActiveBank); + gBattleMainFunc = sub_8011384; + gBattleCommunication[0] = 0; + gBattleCommunication[1] = 0; } } @@ -2021,14 +1904,14 @@ void sub_8011384(void) u8 *ptr; s32 i; - if (gUnknown_02024A64 == 0) + if (gBattleExecBuffer == 0) { - for (gUnknown_02024A60 = 0; gUnknown_02024A60 < gUnknown_02024A68; gUnknown_02024A60++) + for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) { if ((gBattleTypeFlags & BATTLE_TYPE_SAFARI) - && battle_side_get_owner(gUnknown_02024A60) == 0) + && GetBankSide(gActiveBank) == 0) { - ptr = (u8 *)&gBattleMons[gUnknown_02024A60]; + ptr = (u8 *)&gBattleMons[gActiveBank]; for (i = 0; i < (u32)0x58; i++) ptr[i] = 0; } @@ -2036,59 +1919,59 @@ void sub_8011384(void) { u8 r0; - ptr = (u8 *)&gBattleMons[gUnknown_02024A60]; + ptr = (u8 *)&gBattleMons[gActiveBank]; for (i = 0; i < (u32)0x58; i++) - ptr[i] = gUnknown_02024260[gUnknown_02024A60][4 + i]; + ptr[i] = gBattleBufferB[gActiveBank][4 + i]; - gBattleMons[gUnknown_02024A60].type1 = gBaseStats[gBattleMons[gUnknown_02024A60].species].type1; - gBattleMons[gUnknown_02024A60].type2 = gBaseStats[gBattleMons[gUnknown_02024A60].species].type2; - gBattleMons[gUnknown_02024A60].ability = GetAbilityBySpecies(gBattleMons[gUnknown_02024A60].species, gBattleMons[gUnknown_02024A60].altAbility); - r0 = battle_side_get_owner(gUnknown_02024A60); - ewram160BC[r0] = gBattleMons[gUnknown_02024A60].hp; + gBattleMons[gActiveBank].type1 = gBaseStats[gBattleMons[gActiveBank].species].type1; + gBattleMons[gActiveBank].type2 = gBaseStats[gBattleMons[gActiveBank].species].type2; + gBattleMons[gActiveBank].ability = GetAbilityBySpecies(gBattleMons[gActiveBank].species, gBattleMons[gActiveBank].altAbility); + r0 = GetBankSide(gActiveBank); + ewram160BC[r0] = gBattleMons[gActiveBank].hp; for (i = 0; i < 8; i++) - gBattleMons[gUnknown_02024A60].statStages[i] = 6; - gBattleMons[gUnknown_02024A60].status2 = 0; + gBattleMons[gActiveBank].statStages[i] = 6; + gBattleMons[gActiveBank].status2 = 0; } - if (battle_get_per_side_status(gUnknown_02024A60) == 0) + if (GetBankIdentity(gActiveBank) == 0) { dp01_build_cmdbuf_x07_7_7_7(0); - dp01_battle_side_mark_buffer_for_execution(gUnknown_02024A60); + MarkBufferBankForExecution(gActiveBank); } if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) { - if (battle_get_per_side_status(gUnknown_02024A60) == 1) + if (GetBankIdentity(gActiveBank) == 1) { dp01_build_cmdbuf_x07_7_7_7(0); - dp01_battle_side_mark_buffer_for_execution(gUnknown_02024A60); + MarkBufferBankForExecution(gActiveBank); } - if (battle_side_get_owner(gUnknown_02024A60) == 1 + if (GetBankSide(gActiveBank) == 1 && !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK))) - sub_8090D90(SpeciesToNationalPokedexNum(gBattleMons[gUnknown_02024A60].species), 2); + GetNationalPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBank].species), 2); } else { - if (battle_side_get_owner(gUnknown_02024A60) == 1 + if (GetBankSide(gActiveBank) == 1 && !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK))) { - sub_8090D90(SpeciesToNationalPokedexNum(gBattleMons[gUnknown_02024A60].species), 2); + GetNationalPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBank].species), 2); dp01_build_cmdbuf_x04_4_4_4(0); - dp01_battle_side_mark_buffer_for_execution(gUnknown_02024A60); + MarkBufferBankForExecution(gActiveBank); } } if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { - if (battle_get_per_side_status(gUnknown_02024A60) == 2 - || battle_get_per_side_status(gUnknown_02024A60) == 3) + if (GetBankIdentity(gActiveBank) == 2 + || GetBankIdentity(gActiveBank) == 3) { dp01_build_cmdbuf_x07_7_7_7(0); - dp01_battle_side_mark_buffer_for_execution(gUnknown_02024A60); + MarkBufferBankForExecution(gActiveBank); } } } - gUnknown_030042D4 = bc_801333C; + gBattleMainFunc = bc_801333C; } } @@ -2096,7 +1979,7 @@ void bc_801333C(void) { s32 i; - if (gUnknown_02024A64 == 0) + if (gBattleExecBuffer == 0) { struct { @@ -2120,9 +2003,9 @@ void bc_801333C(void) sp0[i].status = GetMonData(&gEnemyParty[i], MON_DATA_STATUS); } } - gUnknown_02024A60 = battle_get_side_with_given_state(1); + gActiveBank = GetBankByPlayerAI(1); dp01_build_cmdbuf_x30_TODO(0, (u8 *)sp0, 0x80); - dp01_battle_side_mark_buffer_for_execution(gUnknown_02024A60); + MarkBufferBankForExecution(gActiveBank); for (i = 0; i < 6; i++) { @@ -2138,11 +2021,11 @@ void bc_801333C(void) sp0[i].status = GetMonData(&gPlayerParty[i], MON_DATA_STATUS); } } - gUnknown_02024A60 = battle_get_side_with_given_state(0); + gActiveBank = GetBankByPlayerAI(0); dp01_build_cmdbuf_x30_TODO(0, (u8 *)sp0, 0x80); - dp01_battle_side_mark_buffer_for_execution(gUnknown_02024A60); + MarkBufferBankForExecution(gActiveBank); - gUnknown_030042D4 = bc_battle_begin_message; + gBattleMainFunc = bc_battle_begin_message; } else { @@ -2164,198 +2047,198 @@ void bc_801333C(void) } } - gUnknown_030042D4 = bc_8013568; + gBattleMainFunc = bc_8013568; } } } void bc_battle_begin_message(void) { - if (gUnknown_02024A64 == 0) + if (gBattleExecBuffer == 0) { - gUnknown_02024A60 = battle_get_side_with_given_state(1); - b_std_message(0, gUnknown_02024A60); - gUnknown_030042D4 = sub_8011800; + gActiveBank = GetBankByPlayerAI(1); + PrepareStringBattle(0, gActiveBank); + gBattleMainFunc = sub_8011800; } } void bc_8013568(void) { - if (gUnknown_02024A64 == 0) + if (gBattleExecBuffer == 0) { - gUnknown_030042D4 = sub_8011970; - b_std_message(0, 0); + gBattleMainFunc = sub_8011970; + PrepareStringBattle(0, 0); } } void sub_8011800(void) { - if (gUnknown_02024A64 == 0) + if (gBattleExecBuffer == 0) { - b_std_message(1, battle_get_side_with_given_state(1)); - gUnknown_030042D4 = sub_8011834; + PrepareStringBattle(1, GetBankByPlayerAI(1)); + gBattleMainFunc = sub_8011834; } } void sub_8011834(void) { - if (gUnknown_02024A64 == 0) + if (gBattleExecBuffer == 0) { - for (gUnknown_02024A60 = 0; gUnknown_02024A60 < gUnknown_02024A68; gUnknown_02024A60++) + for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) { - if (battle_get_per_side_status(gUnknown_02024A60) == 1) + if (GetBankIdentity(gActiveBank) == 1) { dp01_build_cmdbuf_x2F_2F_2F_2F(0); - dp01_battle_side_mark_buffer_for_execution(gUnknown_02024A60); + MarkBufferBankForExecution(gActiveBank); } if ((gBattleTypeFlags & BATTLE_TYPE_MULTI) - && battle_get_per_side_status(gUnknown_02024A60) == 3) + && GetBankIdentity(gActiveBank) == 3) { dp01_build_cmdbuf_x2F_2F_2F_2F(0); - dp01_battle_side_mark_buffer_for_execution(gUnknown_02024A60); + MarkBufferBankForExecution(gActiveBank); } } - gUnknown_030042D4 = bc_801362C; + gBattleMainFunc = bc_801362C; } } void bc_801362C(void) { - if (gUnknown_02024A64 == 0) + if (gBattleExecBuffer == 0) { - for (gUnknown_02024A60 = 0; gUnknown_02024A60 < gUnknown_02024A68; gUnknown_02024A60++) + for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) { - if (battle_side_get_owner(gUnknown_02024A60) == 1 + if (GetBankSide(gActiveBank) == 1 && !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK))) - sub_8090D90(SpeciesToNationalPokedexNum(gBattleMons[gUnknown_02024A60].species), 2); + GetNationalPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBank].species), 2); } - gUnknown_030042D4 = sub_8011970; + gBattleMainFunc = sub_8011970; } } void unref_sub_8011950(void) { - if (gUnknown_02024A64 == 0) - gUnknown_030042D4 = sub_8011970; + if (gBattleExecBuffer == 0) + gBattleMainFunc = sub_8011970; } void sub_8011970(void) { - if (gUnknown_02024A64 == 0) + if (gBattleExecBuffer == 0) { if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI)) - b_std_message(1, battle_get_side_with_given_state(0)); - gUnknown_030042D4 = sub_80119B4; + PrepareStringBattle(1, GetBankByPlayerAI(0)); + gBattleMainFunc = sub_80119B4; } } void sub_80119B4(void) { - if (gUnknown_02024A64 == 0) + if (gBattleExecBuffer == 0) { - for (gUnknown_02024A60 = 0; gUnknown_02024A60 < gUnknown_02024A68; gUnknown_02024A60++) + for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) { - if (battle_get_per_side_status(gUnknown_02024A60) == 0) + if (GetBankIdentity(gActiveBank) == 0) { dp01_build_cmdbuf_x2F_2F_2F_2F(0); - dp01_battle_side_mark_buffer_for_execution(gUnknown_02024A60); + MarkBufferBankForExecution(gActiveBank); } if ((gBattleTypeFlags & BATTLE_TYPE_MULTI) - && battle_get_per_side_status(gUnknown_02024A60) == 2) + && GetBankIdentity(gActiveBank) == 2) { dp01_build_cmdbuf_x2F_2F_2F_2F(0); - dp01_battle_side_mark_buffer_for_execution(gUnknown_02024A60); + MarkBufferBankForExecution(gActiveBank); } } ewram16058 = 0; ewram160F9 = 0; ewram160E6 = 0; - gUnknown_030042D4 = sub_8011B00; + gBattleMainFunc = BattleBeginFirstTurn; } } void unref_sub_8011A68(void) { - if (gUnknown_02024A64 == 0) + if (gBattleExecBuffer == 0) { - for (gUnknown_02024A60 = 0; gUnknown_02024A60 < gUnknown_02024A68; gUnknown_02024A60++) + for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) { - if (battle_side_get_owner(gUnknown_02024A60) == 0) + if (GetBankSide(gActiveBank) == 0) { - sub_800C704(0, gUnknown_02024A6A[gUnknown_02024A60], 0); - dp01_battle_side_mark_buffer_for_execution(gUnknown_02024A60); + sub_800C704(0, gBattlePartyID[gActiveBank], 0); + MarkBufferBankForExecution(gActiveBank); } } ewram16058 = 0; ewram160F9 = 0; ewram160E6 = 0; - gUnknown_030042D4 = sub_8011B00; + gBattleMainFunc = BattleBeginFirstTurn; } } -void sub_8011B00(void) +void BattleBeginFirstTurn(void) { s32 i; s32 j; u8 r9 = 0; - if (gUnknown_02024A64 == 0) + if (gBattleExecBuffer == 0) { if (ewram16058 == 0) { - for (i = 0; i < gUnknown_02024A68; i++) - gUnknown_02024A7A[i] = i; - for (i = 0; i < gUnknown_02024A68 - 1; i++) + for (i = 0; i < gNoOfAllBanks; i++) + gTurnOrder[i] = i; + for (i = 0; i < gNoOfAllBanks - 1; i++) { - for (j = i + 1; j < gUnknown_02024A68; j++) + for (j = i + 1; j < gNoOfAllBanks; j++) { - if (b_first_side(gUnknown_02024A7A[i], gUnknown_02024A7A[j], 1) != 0) + if (b_first_side(gTurnOrder[i], gTurnOrder[j], 1) != 0) sub_8012FBC(i, j); } } } - if (ewram160E6 == 0 && sub_8018324(0, 0, 0, 0xFF, 0) != 0) + if (ewram160E6 == 0 && AbilityBattleEffects(0, 0, 0, 0xFF, 0) != 0) { ewram160E6 = 1; return; } - while (ewram16058 < gUnknown_02024A68) + while (ewram16058 < gNoOfAllBanks) { - if (sub_8018324(0, gUnknown_02024A7A[ewram16058], 0, 0, 0) != 0) + if (AbilityBattleEffects(0, gTurnOrder[ewram16058], 0, 0, 0) != 0) r9++; ewram16058++; if (r9 != 0) return; } - if (sub_8018324(9, 0, 0, 0, 0) != 0) + if (AbilityBattleEffects(9, 0, 0, 0, 0) != 0) return; - if (sub_8018324(11, 0, 0, 0, 0) != 0) + if (AbilityBattleEffects(11, 0, 0, 0, 0) != 0) return; - while (ewram160F9 < gUnknown_02024A68) + while (ewram160F9 < gNoOfAllBanks) { - if (sub_801A02C(0, gUnknown_02024A7A[ewram160F9], 0) != 0) + if (sub_801A02C(0, gTurnOrder[ewram160F9], 0) != 0) r9++; ewram160F9++; if (r9 != 0) return; } // Absolutely pointless for-loop that somehow doesn't get optimized out - for (i = 0; i < gUnknown_02024A68; i++) + for (i = 0; i < gNoOfAllBanks; i++) ; for (i = 0; i < 4; i++) { ewram[0x16068 + i] = 6; - gUnknown_02024C18[i] = 0xFF; - gUnknown_02024C60[i] = 0; + gActionForBanks[i] = 0xFF; + gChosenMovesByBanks[i] = 0; } - sub_801365C(0); - sub_801377C(); - ewram160A6 = gUnknown_02024C0C; - gUnknown_030042D4 = sub_8012324; + TurnValuesCleanUp(0); + SpecialStatusesClear(); + ewram160A6 = gAbsentBankFlags; + gBattleMainFunc = sub_8012324; sub_80156DC(); for (i = 0; i < 8; i++) - gUnknown_02024D1E[i] = 0; - for (i = 0; i < gUnknown_02024A68; i++) + gBattleCommunication[i] = 0; + for (i = 0; i < gNoOfAllBanks; i++) gBattleMons[i].status2 &= ~8; ewram16000 = 0; ewram16001 = 0; @@ -2365,7 +2248,7 @@ void sub_8011B00(void) ewram16059 = 0; ewram1600E = 0; gBattleMoveFlags = 0; - gUnknown_02024D1C = Random(); + gRandomTurnNumber = Random(); } } @@ -2373,16 +2256,16 @@ void bc_8013B1C(void) { s32 i; - if (gUnknown_02024A64 == 0) + if (gBattleExecBuffer == 0) { - gUnknown_030042D4 = sub_8011E8C; + gBattleMainFunc = BattleTurnPassed; for (i = 0; i < 8; i++) - gUnknown_02024D1E[i] = 0; - for (i = 0; i < gUnknown_02024A68; i++) + gBattleCommunication[i] = 0; + for (i = 0; i < gNoOfAllBanks; i++) { gBattleMons[i].status2 &= ~8; if ((gBattleMons[i].status1 & 7) && (gBattleMons[i].status2 & 0x1000)) - b_cancel_multi_turn_move_maybe(i); + CancelMultiTurnMoves(i); } ewram16000 = 0; ewram16001 = 0; @@ -2393,16 +2276,16 @@ void bc_8013B1C(void) } } -void sub_8011E8C(void) +void BattleTurnPassed(void) { s32 i; - sub_801365C(1); - if (gUnknown_02024D26 == 0) + TurnValuesCleanUp(1); + if (gBattleOutcome == 0) { - if (sub_8015DFC() != 0) + if (UpdateTurnCounters() != 0) return; - if (sub_8016558() != 0) + if (TurnBasedEffects() != 0) return; } if (sub_80173A4() != 0) @@ -2410,94 +2293,94 @@ void sub_8011E8C(void) ewram16059 = 0; if (sub_80170DC() != 0) return; - sub_801365C(0); - gUnknown_02024C6C &= ~0x200; - gUnknown_02024C6C &= ~0x80000; - gUnknown_02024C6C &= ~0x400000; - gUnknown_02024C6C &= ~0x100000; + TurnValuesCleanUp(0); + gHitMarker &= ~0x200; + gHitMarker &= ~0x80000; + gHitMarker &= ~0x400000; + gHitMarker &= ~0x100000; ewram16002 = 0; ewram160A1 = 0; ewram1600C = 0; gBattleMoveDamage = 0; gBattleMoveFlags = 0; for (i = 0; i < 5; i++) - gUnknown_02024D1E[i] = 0; - if (gUnknown_02024D26 != 0) + gBattleCommunication[i] = 0; + if (gBattleOutcome != 0) { - gUnknown_02024A7F = 12; - gUnknown_030042D4 = sub_80138F0; + gFightStateTracker = 12; + gBattleMainFunc = sub_80138F0; return; } - if (gUnknown_030042E0.unk13 < 0xFF) - gUnknown_030042E0.unk13++; - for (i = 0; i < gUnknown_02024A68; i++) + if (gBattleResults.unk13 < 0xFF) + gBattleResults.unk13++; + for (i = 0; i < gNoOfAllBanks; i++) { - gUnknown_02024C18[i] = 0xFF; - gUnknown_02024C60[i] = 0; + gActionForBanks[i] = 0xFF; + gChosenMovesByBanks[i] = 0; } for (i = 0; i < 4; i++) ewram[0x16068 + i] = 6; - ewram160A6 = gUnknown_02024C0C; - gUnknown_030042D4 = sub_8012324; - gUnknown_02024D1C = Random(); + ewram160A6 = gAbsentBankFlags; + gBattleMainFunc = sub_8012324; + gRandomTurnNumber = Random(); } -u8 sub_8012028(void) +u8 CanRunFromBattle(void) { u8 r2; u8 r6; s32 i; - if (gBattleMons[gUnknown_02024A60].item == 0xAF) - r2 = gEnigmaBerries[gUnknown_02024A60].holdEffect; + if (gBattleMons[gActiveBank].item == 0xAF) + r2 = gEnigmaBerries[gActiveBank].holdEffect; else - r2 = ItemId_GetHoldEffect(gBattleMons[gUnknown_02024A60].item); - gUnknown_02024C0B = gUnknown_02024A60; + r2 = ItemId_GetHoldEffect(gBattleMons[gActiveBank].item); + gStringBank = gActiveBank; if (r2 == 0x25) return 0; if (gBattleTypeFlags & BATTLE_TYPE_LINK) return 0; - if (gBattleMons[gUnknown_02024A60].ability == ABILITY_RUN_AWAY) + if (gBattleMons[gActiveBank].ability == ABILITY_RUN_AWAY) return 0; - r6 = battle_side_get_owner(gUnknown_02024A60); - for (i = 0; i < gUnknown_02024A68; i++) + r6 = GetBankSide(gActiveBank); + for (i = 0; i < gNoOfAllBanks; i++) { - if (r6 != battle_side_get_owner(i) + if (r6 != GetBankSide(i) && gBattleMons[i].ability == 0x17) { ewram16003 = i; - byte_2024C06 = gBattleMons[i].ability; - gUnknown_02024D1E[5] = 2; + gLastUsedAbility = gBattleMons[i].ability; + gBattleCommunication[5] = 2; return 2; } - if (r6 != battle_side_get_owner(i) - && gBattleMons[gUnknown_02024A60].ability != ABILITY_LEVITATE - && gBattleMons[gUnknown_02024A60].type1 != 2 - && gBattleMons[gUnknown_02024A60].type2 != 2 + if (r6 != GetBankSide(i) + && gBattleMons[gActiveBank].ability != ABILITY_LEVITATE + && gBattleMons[gActiveBank].type1 != 2 + && gBattleMons[gActiveBank].type2 != 2 && gBattleMons[i].ability == 0x47) { ewram16003 = i; - byte_2024C06 = gBattleMons[i].ability; - gUnknown_02024D1E[5] = 2; + gLastUsedAbility = gBattleMons[i].ability; + gBattleCommunication[5] = 2; return 2; } } - i = sub_8018324(15, gUnknown_02024A60, 0x2A, 0, 0); - if (i != 0 && (gBattleMons[gUnknown_02024A60].type1 == 8 || gBattleMons[gUnknown_02024A60].type2 == 8)) + i = AbilityBattleEffects(15, gActiveBank, 0x2A, 0, 0); + if (i != 0 && (gBattleMons[gActiveBank].type1 == 8 || gBattleMons[gActiveBank].type2 == 8)) { ewram16003 = i - 1; - byte_2024C06 = gBattleMons[i - 1].ability; - gUnknown_02024D1E[5] = 2; + gLastUsedAbility = gBattleMons[i - 1].ability; + gBattleCommunication[5] = 2; return 2; } - if ((gBattleMons[gUnknown_02024A60].status2 & 0x0400E000) || (gUnknown_02024C98[gUnknown_02024A60] & 0x400)) + if ((gBattleMons[gActiveBank].status2 & 0x0400E000) || (gStatuses3[gActiveBank] & 0x400)) { - gUnknown_02024D1E[5] = 0; + gBattleCommunication[5] = 0; return 1; } if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE) { - gUnknown_02024D1E[5] = 1; + gBattleCommunication[5] = 1; return 1; } return 0; @@ -2511,7 +2394,7 @@ void sub_8012258(u8 a) for (i = 0; i < 3; i++) gUnknown_02038470[i] = ewram[0x1606C + i + a * 3]; - r4 = pokemon_order_func(gUnknown_02024A6A[a]); + r4 = pokemon_order_func(gBattlePartyID[a]); r1 = pokemon_order_func(ewram[0x16068 + a]); sub_8094C98(r4, r1); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) @@ -2536,44 +2419,44 @@ void sub_8012324(void) { u8 r5; - gUnknown_02024D1E[4] = 0; + gBattleCommunication[4] = 0; // inverted loop //_0801234C - for (gUnknown_02024A60 = 0; gUnknown_02024A60 < gUnknown_02024A68; gUnknown_02024A60++) + for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) { - r5 = battle_get_per_side_status(gUnknown_02024A60); - switch (gUnknown_02024D1E[gUnknown_02024A60]) + r5 = GetBankIdentity(gActiveBank); + switch (gBattleCommunication[gActiveBank]) { case 0: - ewram[0x016068 + gUnknown_02024A60] = 6; + ewram[0x016068 + gActiveBank] = 6; if (!(gBattleTypeFlags & 0x40) && (r5 & 2) - && !(ewram160A6 & gBitTable[battle_get_side_with_given_state(r5 ^ 2)]) - && gUnknown_02024D1E[battle_get_side_with_given_state(r5)] != 4) + && !(ewram160A6 & gBitTable[GetBankByPlayerAI(r5 ^ 2)]) + && gBattleCommunication[GetBankByPlayerAI(r5)] != 4) break; //_080123F8 - if (ewram160A6 & gBitTable[gUnknown_02024A60]) + if (ewram160A6 & gBitTable[gActiveBank]) { - gUnknown_02024C18[gUnknown_02024A60] = 13; + gActionForBanks[gActiveBank] = 13; if (!(gBattleTypeFlags & 0x40)) - gUnknown_02024D1E[gUnknown_02024A60] = 4; + gBattleCommunication[gActiveBank] = 4; //_08012454 else - gUnknown_02024D1E[gUnknown_02024A60] = 3; + gBattleCommunication[gActiveBank] = 3; break; } //_08012468 - if ((gBattleMons[gUnknown_02024A60].status2 & 0x1000) - || (gBattleMons[gUnknown_02024A60].status2 & 0x10000000)) + if ((gBattleMons[gActiveBank].status2 & 0x1000) + || (gBattleMons[gActiveBank].status2 & 0x10000000)) { - gUnknown_02024C18[gUnknown_02024A60] = 0; - gUnknown_02024D1E[gUnknown_02024A60] = 3; + gActionForBanks[gActiveBank] = 0; + gBattleCommunication[gActiveBank] = 3; } else { - dp01_build_cmdbuf_x12_a_bb(0, gUnknown_02024C18[0], gUnknown_02024260[0][1] | (gUnknown_02024260[0][2] << 8)); - dp01_battle_side_mark_buffer_for_execution(gUnknown_02024A60); - gUnknown_02024D1E[gUnknown_02024A60]++; + dp01_build_cmdbuf_x12_a_bb(0, gActionForBanks[0], gBattleBufferB[0][1] | (gBattleBufferB[0][2] << 8)); + MarkBufferBankForExecution(gActiveBank); + gBattleCommunication[gActiveBank]++; } break; case 1: diff --git a/src/battle_6.c b/src/battle_6.c index bc540ce72..df2419f70 100644 --- a/src/battle_6.c +++ b/src/battle_6.c @@ -1,5 +1,6 @@ #include "global.h" -#include "asm.h" +#include "battle.h" +#include "battle_message.h" #include "menu_cursor.h" #include "text.h" @@ -8,11 +9,11 @@ extern u16 gUnknown_030042A0; extern struct Window gUnknown_03004210; -extern void (*gUnknown_03004330[])(void); +extern void (*gBattleBankFunc[])(void); -extern u8 gUnknown_02024A60; -extern u8 gUnknown_02024E60[]; -extern u8 gUnknown_020238CC[]; +extern u8 gActiveBank; +extern u8 gActionSelectionCursor[]; +extern u8 gDisplayedStringBattle[]; extern u16 gUnknown_030042C0; extern u16 gUnknown_030041B4; @@ -38,7 +39,7 @@ void sub_803037C(void) { FillWindowRect(&gUnknown_03004210, 10, 2, 15, 27, 18); FillWindowRect(&gUnknown_03004210, 10, 2, 35, 16, 38); - gUnknown_03004330[gUnknown_02024A60] = sub_802C098; + gBattleBankFunc[gActiveBank] = sub_802C098; InitWindow(&gUnknown_03004210, gUnknown_08400CF3, 400, 18, 35); sub_8002F44(&gUnknown_03004210); @@ -49,9 +50,9 @@ void sub_803037C(void) { nullsub_8(r4); } - sub_802E3E4(gUnknown_02024E60[gUnknown_02024A60], 0); + sub_802E3E4(gActionSelectionCursor[gActiveBank], 0); - get_battle_strings_((u8 *) gUnknown_08400CA8); - InitWindow(&gUnknown_03004210, gUnknown_020238CC, SUB_803037C_TILE_DATA_OFFSET, 2, 35); + StrCpyDecodeToDisplayedStringBattle((u8 *) gUnknown_08400CA8); + InitWindow(&gUnknown_03004210, gDisplayedStringBattle, SUB_803037C_TILE_DATA_OFFSET, 2, 35); sub_8002F44(&gUnknown_03004210); } diff --git a/src/battle_7.c b/src/battle_7.c new file mode 100644 index 000000000..a93237608 --- /dev/null +++ b/src/battle_7.c @@ -0,0 +1,1235 @@ +#include "global.h" +#include "battle.h" +#include "battle_anim.h" +#include "battle_interface.h" +#include "blend_palette.h" +#include "data2.h" +#include "decompress.h" +#include "main.h" +#include "m4a.h" +#include "palette.h" +#include "pokemon.h" +#include "rom_8077ABC.h" +#include "rom_8094928.h" +#include "songs.h" +#include "sound.h" +#include "species.h" +#include "sprite.h" +#include "task.h" +#include "text.h" +#include "gba/m4a_internal.h" + +struct Struct2019348 +{ + u8 filler0[2]; + u16 unk2; + u8 filler4[4]; + u32 unk8; + u32 unkC; + u32 unk10; +}; + +extern u8 gBattleBufferA[][0x200]; +extern u8 gActiveBank; +extern u32 gBattleExecBuffer; +extern u8 gNoOfAllBanks; +extern u16 gBattlePartyID[]; +extern u8 gBanksBySide[]; +extern u8 gObjectBankIDs[]; +extern u16 gUnknown_02024DE8; +extern u8 gDoingBattleAnim; +extern u32 gPID_perBank[]; +extern struct Window gUnknown_03004210; +extern void (*gBattleBankFunc[])(void); +extern u8 gHealthboxIDs[]; +extern u8 gUnknown_0300434C[]; +extern struct MusicPlayerInfo gMPlay_SE1; +extern struct MusicPlayerInfo gMPlay_SE2; +extern struct MusicPlayerInfo gMPlay_BGM; +extern u32 gBitTable[]; +extern u16 gBattleTypeFlags; +extern u8 gBattleMonForms[]; +extern u8 gBattleAnimPlayerMonIndex; +extern u8 gBattleAnimEnemyMonIndex; +extern void (*gAnimScriptCallback)(void); +extern u8 gAnimScriptActive; +extern const u8 *const gBattleAnims_Unknown1[]; +extern const u8 *const gBattleAnims_Unknown2[]; +extern const struct CompressedSpriteSheet gTrainerFrontPicTable[]; +extern const struct MonCoords gTrainerFrontPicCoords[]; +extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; +extern const u8 gSubstituteDollTilemap[]; +extern const u8 gSubstituteDollGfx[]; +extern const u8 gSubstituteDollPal[]; +extern const struct CompressedSpriteSheet gUnknown_081FAF24; +extern const struct SpriteTemplate gSpriteTemplate_81FAF34; +extern void (*const gOpponentBufferCommands[])(void); +extern const struct CompressedSpriteSheet gUnknown_0820A47C; +extern const struct CompressedSpriteSheet gUnknown_0820A484; +extern const struct CompressedSpriteSheet gUnknown_0820A48C[]; +extern const struct CompressedSpriteSheet gUnknown_0820A49C[]; +extern const struct CompressedSpriteSheet gUnknown_0820A4AC; +extern const struct CompressedSpriteSheet gUnknown_0820A4B4[]; +extern const struct SpritePalette gUnknown_0820A4D4[]; +extern const u8 gUnknown_08D09C48[]; + +#define ewram19348 (*(struct Struct2019348 *)(ewram + 0x19348)) + +extern void c3_0802FDF4(u8); +extern void sub_80440EC(); +extern void sub_804777C(); +extern void sub_8141828(); +extern u8 sub_8077ABC(); +extern u8 sub_8078874(u8); +extern u8 sub_8077F68(u8); +extern u8 sub_8077F7C(u8); +extern void sub_8094958(void); +extern void sub_80105DC(struct Sprite *); +extern void move_anim_start_t2(); + +void sub_80315E8(u8); +u8 sub_803163C(u8); +void sub_80316CC(u8); +void sub_8031F0C(void); +void refresh_graphics_maybe(u8, u8, u8); +void sub_80324E0(u8 a); +void sub_80327CC(void); +void sub_8032978(struct Sprite *); +void sub_80328A4(struct Sprite *); +void OpponentBufferRunCommand(void); +void sub_80332D0(void); +void OpponentBufferExecCompleted(void); + +void sub_80312F0(struct Sprite *sprite) +{ + u8 spriteId = sprite->data1; + + if (gSprites[spriteId].affineAnimEnded && !gSprites[spriteId].invisible) + { + if (gSprites[spriteId].animPaused) + gSprites[spriteId].animPaused = FALSE; + else if (gSprites[spriteId].animEnded) + { + gSprites[spriteId].callback = sub_80105DC; + StartSpriteAffineAnim(&gSprites[spriteId], 0); + sprite->callback = SpriteCallbackDummy; + } + } +} + +void unref_sub_8031364(struct Sprite *sprite, bool8 stupid) +{ + sprite->animPaused = TRUE; + sprite->callback = SpriteCallbackDummy; + if (!stupid) + StartSpriteAffineAnim(sprite, 1); + else + StartSpriteAffineAnim(sprite, 1); + AnimateSprite(sprite); +} + +void sub_80313A0(struct Sprite *sprite) +{ + if (!(gUnknown_02024DE8 & 1)) + { + sprite->pos2.x += sprite->data0; + if (sprite->pos2.x == 0) + sprite->callback = SpriteCallbackDummy; + } +} + +void move_anim_start_t2_for_situation(u8 a, u32 b) +{ + ewram17810[gActiveBank].unk0_4 = 1; + if (a == 0) + { + if (b == 0x20) + move_anim_start_t2(gActiveBank, 6); + else if (b == 8 || (b & 0x80)) + move_anim_start_t2(gActiveBank, 0); + else if (b == 0x10) + move_anim_start_t2(gActiveBank, 2); + else if (b & 7) + move_anim_start_t2(gActiveBank, 4); + else if (b == 0x40) + move_anim_start_t2(gActiveBank, 5); + else + ewram17810[gActiveBank].unk0_4 = 0; + } + else + { + if (b & 0x000F0000) + move_anim_start_t2(gActiveBank, 3); + else if (b & 7) + move_anim_start_t2(gActiveBank, 1); + else if (b & 0x10000000) + move_anim_start_t2(gActiveBank, 7); + else if (b & 0x08000000) + move_anim_start_t2(gActiveBank, 8); + else if (b & 0x0000E000) + move_anim_start_t2(gActiveBank, 9); + else + ewram17810[gActiveBank].unk0_4 = 0; + } +} + +bool8 move_anim_start_t3(u8 a, u8 b, u8 c, u8 d, u16 e) +{ + u8 taskId; + + if (d == 0 && (e & 0x80)) + { + gBattleMonForms[a] = e & 0x7F; + return TRUE; + } + if (ewram17800[a].unk0_2 && sub_803163C(d) == 0) + return TRUE; + if (ewram17800[a].unk0_2 && d == 2 && gSprites[gObjectBankIDs[a]].invisible) + { + refresh_graphics_maybe(a, 1, gObjectBankIDs[a]); + sub_80324E0(a); + return TRUE; + } + gBattleAnimPlayerMonIndex = b; + gBattleAnimEnemyMonIndex = c; + ewram17840.unk0 = e; + DoMoveAnim(gBattleAnims_Unknown1, d, 0); + taskId = CreateTask(sub_80315E8, 10); + gTasks[taskId].data[0] = a; + ewram17810[gTasks[taskId].data[0]].unk0_5 = 1; + return FALSE; +} + +void sub_80315E8(u8 taskId) +{ + gAnimScriptCallback(); + if (!gAnimScriptActive) + { + ewram17810[gTasks[taskId].data[0]].unk0_5 = 0; + DestroyTask(taskId); + } +} + +u8 sub_803163C(u8 a) +{ + switch (a) + { + case 2: + case 10: + case 11: + case 12: + case 13: + case 17: + return 1; + default: + return 0; + } +} + +void move_anim_start_t4(u8 a, u8 b, u8 c, u8 d) +{ + u8 taskId; + + gBattleAnimPlayerMonIndex = b; + gBattleAnimEnemyMonIndex = c; + DoMoveAnim(gBattleAnims_Unknown2, d, 0); + taskId = CreateTask(sub_80316CC, 10); + gTasks[taskId].data[0] = a; + ewram17810[gTasks[taskId].data[0]].unk0_6 = 1; +} + +void sub_80316CC(u8 taskId) +{ + gAnimScriptCallback(); + if (!gAnimScriptActive) + { + ewram17810[gTasks[taskId].data[0]].unk0_6 = 0; + DestroyTask(taskId); + } +} + +u8 sub_8031720(int unused1, int unused2) +{ + return 0; +} + +bool8 mplay_80342A4(u8 a) +{ + u8 zero = 0; + + if (IsSEPlaying()) + { + ewram17810[a].unk8++; + if (ewram17810[gActiveBank].unk8 < 30) + return TRUE; + m4aMPlayStop(&gMPlay_SE1); + m4aMPlayStop(&gMPlay_SE2); + } + if (zero == 0) + { + ewram17810[a].unk8 = 0; + return FALSE; + } + return TRUE; +} + +void sub_8031794(struct Pokemon *pkmn, u8 b) +{ + u32 personalityValue; + u16 species; + u32 r7; + u32 otId; + u8 var; + u16 paletteOffset; + const u8 *lzPaletteData; + + personalityValue = GetMonData(pkmn, MON_DATA_PERSONALITY); + if (ewram17800[b].unk2 == 0) + { + species = GetMonData(pkmn, MON_DATA_SPECIES); + r7 = personalityValue; + } + else + { + species = ewram17800[b].unk2; + r7 = gPID_perBank[b]; + } + otId = GetMonData(pkmn, MON_DATA_OT_ID); + var = GetBankIdentity(b); + HandleLoadSpecialPokePic( + &gMonFrontPicTable[species], + gMonFrontPicCoords[species].coords, + gMonFrontPicCoords[species].y_offset, + 0x02000000, + gUnknown_081FAF4C[var], + species, + r7); + paletteOffset = 0x100 + b * 16; + if (ewram17800[b].unk2 == 0) + lzPaletteData = pokemon_get_pal(pkmn); + else + lzPaletteData = species_and_otid_get_pal(species, otId, personalityValue); + sub_800D238(lzPaletteData, ewram); + LoadPalette(ewram, paletteOffset, 0x20); + LoadPalette(ewram, 0x80 + b * 16, 0x20); + if (species == SPECIES_CASTFORM) + { + paletteOffset = 0x100 + b * 16; + sub_800D238(lzPaletteData, ewram + 0x16400); + LoadPalette(ewram + 0x16400 + gBattleMonForms[b] * 32, paletteOffset, 0x20); + } + if (ewram17800[b].unk2 != 0) + { + BlendPalette(paletteOffset, 16, 6, 0x7FFF); + CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32); + } +} + +void sub_80318FC(struct Pokemon *pkmn, u8 b) +{ + u32 personalityValue; + u16 species; + u32 r7; + u32 otId; + u8 var; + u16 paletteOffset; + const u8 *lzPaletteData; + + personalityValue = GetMonData(pkmn, MON_DATA_PERSONALITY); + if (ewram17800[b].unk2 == 0) + { + species = GetMonData(pkmn, MON_DATA_SPECIES); + r7 = personalityValue; + } + else + { + species = ewram17800[b].unk2; + r7 = gPID_perBank[b]; + } + otId = GetMonData(pkmn, MON_DATA_OT_ID); + var = GetBankIdentity(b); + HandleLoadSpecialPokePic( + &gMonBackPicTable[species], + gMonBackPicCoords[species].coords, + gMonBackPicCoords[species].y_offset, + 0x02000000, + gUnknown_081FAF4C[var], + species, + r7); + paletteOffset = 0x100 + b * 16; + if (ewram17800[b].unk2 == 0) + lzPaletteData = pokemon_get_pal(pkmn); + else + lzPaletteData = species_and_otid_get_pal(species, otId, personalityValue); + sub_800D238(lzPaletteData, ewram); + LoadPalette(ewram, paletteOffset, 0x20); + LoadPalette(ewram, 0x80 + b * 16, 0x20); + if (species == SPECIES_CASTFORM) + { + paletteOffset = 0x100 + b * 16; + sub_800D238(lzPaletteData, ewram + 0x16400); + LoadPalette(ewram + 0x16400 + gBattleMonForms[b] * 32, paletteOffset, 0x20); + } + if (ewram17800[b].unk2 != 0) + { + BlendPalette(paletteOffset, 16, 6, 0x7FFF); + CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32); + } +} + +void unref_sub_8031A64(void) +{ +} + +void nullsub_9(u16 unused) +{ +} + +void sub_8031A6C(u16 a, u8 b) +{ + u8 status; + struct CompressedSpriteSheet spriteSheet; + + status = GetBankIdentity(b); + DecompressPicFromTable_2( + &gTrainerFrontPicTable[a], + gTrainerFrontPicCoords[a].coords, + gTrainerFrontPicCoords[a].y_offset, + (void *)0x02000000, + gUnknown_081FAF4C[status], + 0); + spriteSheet.data = gUnknown_081FAF4C[status]; + spriteSheet.size = gTrainerFrontPicTable[a].size; + spriteSheet.tag = gTrainerFrontPicTable[a].tag; + LoadCompressedObjectPic(&spriteSheet); + LoadCompressedObjectPalette(&gTrainerFrontPicPaletteTable[a]); +} + +void sub_8031AF4(u16 a, u8 b) +{ + u8 status; + + status = GetBankIdentity(b); + DecompressPicFromTable_2( + &gTrainerBackPicTable[a], + gTrainerBackPicCoords[a].coords, + gTrainerBackPicCoords[a].y_offset, + (void *)0x02000000, + gUnknown_081FAF4C[status], + 0); + LoadCompressedPalette(gTrainerBackPicPaletteTable[a].data, 0x100 + b * 16, 32); +} + +void nullsub_10(int unused) +{ +} + +void sub_8031B74(u16 a) +{ + FreeSpritePaletteByTag(gTrainerFrontPicPaletteTable[a].tag); + FreeSpriteTilesByTag(gTrainerFrontPicTable[a].tag); +} + +void unref_sub_8031BA0(void) +{ + u8 count; + u8 i; + + LoadSpritePalette(&gUnknown_0820A4D4[0]); + LoadSpritePalette(&gUnknown_0820A4D4[1]); + if (!IsDoubleBattle()) + { + LoadCompressedObjectPic(&gUnknown_0820A47C); + LoadCompressedObjectPic(&gUnknown_0820A484); + count = 2; + } + else + { + LoadCompressedObjectPic(&gUnknown_0820A48C[0]); + LoadCompressedObjectPic(&gUnknown_0820A48C[1]); + LoadCompressedObjectPic(&gUnknown_0820A49C[0]); + LoadCompressedObjectPic(&gUnknown_0820A49C[1]); + count = 4; + } + for (i = 0; i < count; i++) + LoadCompressedObjectPic(&gUnknown_0820A4B4[gBanksBySide[i]]); +} + +bool8 sub_8031C30(u8 a) +{ + bool8 retVal = FALSE; + + if (a != 0) + { + if (a == 1) + { + LoadSpritePalette(&gUnknown_0820A4D4[0]); + LoadSpritePalette(&gUnknown_0820A4D4[1]); + } + else if (!IsDoubleBattle()) + { + if (a == 2) + { + if (gBattleTypeFlags & 0x80) + LoadCompressedObjectPic(&gUnknown_0820A4AC); + else + LoadCompressedObjectPic(&gUnknown_0820A47C); + } + else if (a == 3) + LoadCompressedObjectPic(&gUnknown_0820A484); + else if (a == 4) + LoadCompressedObjectPic(&gUnknown_0820A4B4[gBanksBySide[0]]); + else if (a == 5) + LoadCompressedObjectPic(&gUnknown_0820A4B4[gBanksBySide[1]]); + else + retVal = TRUE; + } + else + { + if (a == 2) + LoadCompressedObjectPic(&gUnknown_0820A48C[0]); + else if (a == 3) + LoadCompressedObjectPic(&gUnknown_0820A48C[1]); + else if (a == 4) + LoadCompressedObjectPic(&gUnknown_0820A49C[0]); + else if (a == 5) + LoadCompressedObjectPic(&gUnknown_0820A49C[1]); + else if (a == 6) + LoadCompressedObjectPic(&gUnknown_0820A4B4[gBanksBySide[0]]); + else if (a == 7) + LoadCompressedObjectPic(&gUnknown_0820A4B4[gBanksBySide[1]]); + else if (a == 8) + LoadCompressedObjectPic(&gUnknown_0820A4B4[gBanksBySide[2]]); + else if (a == 9) + LoadCompressedObjectPic(&gUnknown_0820A4B4[gBanksBySide[3]]); + else + retVal = TRUE; + } + } + return retVal; +} + +void load_gfxc_health_bar(void) +{ + sub_800D238(gUnknown_08D09C48, (void *)0x02000000); +} + +u8 battle_load_something(u8 *pState, u8 *b) +{ + bool8 retVal = FALSE; + + switch (*pState) + { + case 0: + sub_8031F0C(); + (*pState)++; + break; + case 1: + if (sub_8031C30(*b) == 0) + { + (*b)++; + } + else + { + *b = 0; + (*pState)++; + } + break; + case 2: + (*pState)++; + break; + case 3: + if ((gBattleTypeFlags & 0x80) && *b == 0) + gHealthboxIDs[*b] = battle_make_oam_safari_battle(); + else + gHealthboxIDs[*b] = battle_make_oam_normal_battle(*b); + (*b)++; + if (*b == gNoOfAllBanks) + { + *b = 0; + (*pState)++; + } + break; + case 4: + sub_8043F44(*b); + if (gBanksBySide[*b] <= 1) + nullsub_11(gHealthboxIDs[*b], 0); + else + nullsub_11(gHealthboxIDs[*b], 1); + (*b)++; + if (*b == gNoOfAllBanks) + { + *b = 0; + (*pState)++; + } + break; + case 5: + if (GetBankSide(*b) == 0) + { + if (!(gBattleTypeFlags & 0x80)) + sub_8045A5C(gHealthboxIDs[*b], &gPlayerParty[gBattlePartyID[*b]], 0); + } + else + { + sub_8045A5C(gHealthboxIDs[*b], &gEnemyParty[gBattlePartyID[*b]], 0); + } + sub_8043DB0(gHealthboxIDs[*b]); + (*b)++; + if (*b == gNoOfAllBanks) + { + *b = 0; + (*pState)++; + } + break; + case 6: + sub_80327CC(); + sub_8094958(); + retVal = TRUE; + break; + } + return retVal; +} + +void sub_8031EE8(void) +{ + memset(ewram17810, 0, 0x30); + memset(&ewram17840, 0, 0x10); +} + +void sub_8031F0C(void) +{ + sub_8031EE8(); + memset(ewram17800, 0, 0x10); +} + +void sub_8031F24(void) +{ + s32 i; + + for (i = 0; i < gNoOfAllBanks; i++) + ewram17800[i].unk0_0 = gSprites[gObjectBankIDs[i]].invisible; +} + +void sub_8031F88(u8 a) +{ + ewram17800[a].unk0_0 = gSprites[gObjectBankIDs[a]].invisible; +} + +void sub_8031FC4(u8 a, u8 b, bool8 c) +{ + u16 paletteOffset; + u16 species; + u32 personalityValue; + u32 otId; + u8 r10; + const u8 *lzPaletteData; + + if (c) + { + StartSpriteAnim(&gSprites[gObjectBankIDs[a]], ewram17840.unk0); + paletteOffset = 0x100 + a * 16; + LoadPalette(ewram + 0x16400 + ewram17840.unk0 * 32, paletteOffset, 32); + gBattleMonForms[a] = ewram17840.unk0; + if (ewram17800[a].unk2 != 0) + { + BlendPalette(paletteOffset, 16, 6, 0x7FFF); + CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32); + } + gSprites[gObjectBankIDs[a]].pos1.y = sub_8077F68(a); + } + else + { + const void *src; + void *dst; + + if (IsContest()) + { + r10 = 0; + species = ewram19348.unk2; + personalityValue = ewram19348.unk8; + otId = ewram19348.unkC; + HandleLoadSpecialPokePic( + &gMonBackPicTable[species], + gMonBackPicCoords[species].coords, + gMonBackPicCoords[species].y_offset, + 0x02000000, + gUnknown_081FAF4C[0], + species, + ewram19348.unk10); + } + else + { + r10 = GetBankIdentity(a); + if (GetBankSide(b) == 1) + species = GetMonData(&gEnemyParty[gBattlePartyID[b]], MON_DATA_SPECIES); + else + species = GetMonData(&gPlayerParty[gBattlePartyID[b]], MON_DATA_SPECIES); + if (GetBankSide(a) == 0) + { + personalityValue = GetMonData(&gPlayerParty[gBattlePartyID[a]], MON_DATA_PERSONALITY); + otId = GetMonData(&gPlayerParty[gBattlePartyID[a]], MON_DATA_OT_ID); + HandleLoadSpecialPokePic( + &gMonBackPicTable[species], + gMonBackPicCoords[species].coords, + gMonBackPicCoords[species].y_offset, + 0x02000000, + gUnknown_081FAF4C[r10], + species, + gPID_perBank[a]); + } + else + { + personalityValue = GetMonData(&gEnemyParty[gBattlePartyID[a]], MON_DATA_PERSONALITY); + otId = GetMonData(&gEnemyParty[gBattlePartyID[a]], MON_DATA_OT_ID); + HandleLoadSpecialPokePic( + &gMonFrontPicTable[species], + gMonFrontPicCoords[species].coords, + gMonFrontPicCoords[species].y_offset, + 0x02000000, + gUnknown_081FAF4C[r10], + species, + gPID_perBank[a]); + } + } + src = gUnknown_081FAF4C[r10]; + dst = (void *)(VRAM + 0x10000 + gSprites[gObjectBankIDs[a]].oam.tileNum * 32); + DmaCopy32(3, src, dst, 0x800); + paletteOffset = 0x100 + a * 16; + lzPaletteData = species_and_otid_get_pal(species, otId, personalityValue); + sub_800D238(lzPaletteData, ewram); + LoadPalette(ewram, paletteOffset, 32); + if (species == SPECIES_CASTFORM) + { + u16 *paletteSrc = (u16 *)(ewram + 0x16400); + + sub_800D238(lzPaletteData, paletteSrc); + LoadPalette(paletteSrc + gBattleMonForms[b] * 16, paletteOffset, 32); + } + BlendPalette(paletteOffset, 16, 6, 0x7FFF); + CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32); + if (!IsContest()) + { + ewram17800[a].unk2 = species; + gBattleMonForms[a] = gBattleMonForms[b]; + } + gSprites[gObjectBankIDs[a]].pos1.y = sub_8077F68(a); + StartSpriteAnim(&gSprites[gObjectBankIDs[a]], gBattleMonForms[a]); + } +} + +void sub_8032350(u8 a, u8 b) +{ + u8 r4; + u16 foo; + const u8 *gSubstituteDollPal_; + void *src; + s32 i; + + if (b == 0) + { + if (IsContest()) + r4 = 0; + else + r4 = GetBankIdentity(a); + if (IsContest()) + LZDecompressVram(gSubstituteDollTilemap, gUnknown_081FAF4C[r4]); + else if (GetBankSide(a) != 0) + LZDecompressVram(gSubstituteDollGfx, gUnknown_081FAF4C[r4]); + else + LZDecompressVram(gSubstituteDollTilemap, gUnknown_081FAF4C[r4]); + // There is probably a way to do this without all the temp variables, but I couldn't figure it out. + foo = a * 16; + gSubstituteDollPal_ = gSubstituteDollPal; + src = gUnknown_081FAF4C[r4]; + for (i = 0; i < 3; i++) + DmaCopy32(3, src, src + i * 0x800 + 0x800, 0x800); + LoadCompressedPalette(gSubstituteDollPal_, 0x100 + foo, 32); + } + else + { + if (!IsContest()) + { + if (GetBankSide(a) != 0) + sub_8031794(&gEnemyParty[gBattlePartyID[a]], a); + else + sub_80318FC(&gPlayerParty[gBattlePartyID[a]], a); + } + } +} + +void refresh_graphics_maybe(u8 a, u8 b, u8 spriteId) +{ + sub_8032350(a, b); + StartSpriteAnim(&gSprites[spriteId], gBattleMonForms[a]); + if (b == 0) + gSprites[spriteId].pos1.y = sub_8077F7C(a); + else + gSprites[spriteId].pos1.y = sub_8077F68(a); +} + +void sub_80324BC(u8 a, u16 b) +{ + if (b == 0xA4) + ewram17800[a].unk0_2 = 1; +} + +void sub_80324E0(u8 a) +{ + ewram17800[a].unk0_2 = 0; +} + +void sub_80324F8(struct Pokemon *pkmn, u8 b) +{ + u16 hp = GetMonData(pkmn, MON_DATA_HP); + u16 maxHP = GetMonData(pkmn, MON_DATA_MAX_HP); + + if (GetHPBarLevel(hp, maxHP) == 1) + { + if (!ewram17800[b].unk0_1) + { + if (!ewram17800[b ^ 2].unk0_1) + PlaySE(SE_HINSI); + ewram17800[b].unk0_1 = 1; + } + } + else + { + ewram17800[b].unk0_1 = 0; + if (!IsDoubleBattle()) + { + m4aSongNumStop(SE_HINSI); + return; + } + if (IsDoubleBattle() && !ewram17800[b ^ 2].unk0_1) + { + m4aSongNumStop(SE_HINSI); + return; + } + } +} + +void sub_80325B8(void) +{ + u8 r4 = GetBankByPlayerAI(0); + + ewram17800[r4].unk0_1 = 0; + if (IsDoubleBattle()) + ewram17800[r4 ^ 2].unk0_1 = 0; + m4aSongNumStop(SE_HINSI); +} + +u8 unref_sub_8032604(struct Pokemon *pkmn) +{ + u16 hp = GetMonData(pkmn, MON_DATA_HP); + u16 maxHP = GetMonData(pkmn, MON_DATA_MAX_HP); + + return GetHPBarLevel(hp, maxHP); +} + +void sub_8032638(void) +{ + if (gMain.inBattle) + { + u8 r8 = GetBankByPlayerAI(0); + u8 r9 = GetBankByPlayerAI(2); + u8 r4 = pokemon_order_func(gBattlePartyID[r8]); + u8 r5 = pokemon_order_func(gBattlePartyID[r9]); + + if (GetMonData(&gPlayerParty[r4], MON_DATA_HP) != 0) + sub_80324F8(&gPlayerParty[r4], r8); + if (IsDoubleBattle()) + { + if (GetMonData(&gPlayerParty[r5], MON_DATA_HP) != 0) + sub_80324F8(&gPlayerParty[r5], r9); + } + } +} + +void sub_80326EC(u8 a) +{ + s32 i; + + for (i = 0; i < gNoOfAllBanks; i++) + { + if (sub_8078874(i) != 0) + { + gSprites[gObjectBankIDs[i]].oam.affineMode = a; + if (a == 0) + { + ewram17810[i].unk6 = gSprites[gObjectBankIDs[i]].oam.matrixNum; + gSprites[gObjectBankIDs[i]].oam.matrixNum = 0; + } + else + { + gSprites[gObjectBankIDs[i]].oam.matrixNum = ewram17810[i].unk6; + } + } + } +} + +void sub_80327CC(void) +{ + u8 r5; + + LoadCompressedObjectPic(&gUnknown_081FAF24); + r5 = GetBankByPlayerAI(1); + ewram17810[r5].unk7 = CreateSprite(&gSpriteTemplate_81FAF34, sub_8077ABC(r5, 0), sub_8077ABC(r5, 1) + 32, 0xC8); + gSprites[ewram17810[r5].unk7].data0 = r5; + if (IsDoubleBattle()) + { + r5 = GetBankByPlayerAI(3); + ewram17810[r5].unk7 = CreateSprite(&gSpriteTemplate_81FAF34, sub_8077ABC(r5, 0), sub_8077ABC(r5, 1) + 32, 0xC8); + gSprites[ewram17810[r5].unk7].data0 = r5; + } +} + +void sub_80328A4(struct Sprite *sprite) +{ + bool8 invisible = FALSE; + u8 r4 = sprite->data0; + struct Sprite *r7 = &gSprites[gObjectBankIDs[r4]]; + + if (!r7->inUse || sub_8078874(r4) == 0) + { + sprite->callback = sub_8032978; + return; + } + if (gAnimScriptActive || r7->invisible) + invisible = TRUE; + else if (ewram17800[r4].unk2 != 0 && gEnemyMonElevation[ewram17800[r4].unk2] == 0) + invisible = TRUE; + if (ewram17800[r4].unk0_2) + invisible = TRUE; + sprite->pos1.x = r7->pos1.x; + sprite->pos2.x = r7->pos2.x; + sprite->invisible = invisible; +} + +void sub_8032978(struct Sprite *sprite) +{ + sprite->invisible = TRUE; +} + +void sub_8032984(u8 a, u16 b) +{ + if (GetBankSide(a) != 0) + { + if (ewram17800[a].unk2 != 0) + b = ewram17800[a].unk2; + if (gEnemyMonElevation[b] != 0) + gSprites[ewram17810[a].unk7].callback = sub_80328A4; + else + gSprites[ewram17810[a].unk7].callback = sub_8032978; + } +} + +void sub_8032A08(u8 a) +{ + gSprites[ewram17810[a].unk7].callback = sub_8032978; +} + +void sub_8032A38(void) +{ + u16 *ptr = (u16 *)(VRAM + 0x240); + s32 i; + s32 j; + + for (i = 0; i < 9; i++) + { + for (j = 0; j < 16; j++) + { + if (!(*ptr & 0xF000)) + *ptr |= 0xF000; + if (!(*ptr & 0x0F00)) + *ptr |= 0x0F00; + if (!(*ptr & 0x00F0)) + *ptr |= 0x00F0; + if (!(*ptr & 0x000F)) + *ptr |= 0x000F; + ptr++; + } + } +} + +void sub_8032AA8(u8 a, u8 b) +{ + ewram17800[a].unk2 = 0; + gBattleMonForms[a] = 0; + if (b == 0) + sub_80324E0(a); +} + +void nullsub_45(void) +{ +} + +void SetBankFuncToOpponentBufferRunCommand(void) +{ + gBattleBankFunc[gActiveBank] = OpponentBufferRunCommand; +} + +void OpponentBufferRunCommand(void) +{ + if (gBattleExecBuffer & gBitTable[gActiveBank]) + { + if (gBattleBufferA[gActiveBank][0] <= 0x38) + gOpponentBufferCommands[gBattleBufferA[gActiveBank][0]](); + else + OpponentBufferExecCompleted(); + } +} + +void sub_8032B4C(void) +{ + if (gSprites[gObjectBankIDs[gActiveBank]].callback == SpriteCallbackDummy) + OpponentBufferExecCompleted(); +} + +// Duplicate of sub_8032B4C +void sub_8032B84(void) +{ + if (gSprites[gObjectBankIDs[gActiveBank]].callback == SpriteCallbackDummy) + OpponentBufferExecCompleted(); +} + +void sub_8032BBC(void) +{ + if (gSprites[gObjectBankIDs[gActiveBank]].callback == SpriteCallbackDummy) + { + sub_8031B74(gSprites[gObjectBankIDs[gActiveBank]].oam.affineParam); + gSprites[gObjectBankIDs[gActiveBank]].oam.tileNum = gSprites[gObjectBankIDs[gActiveBank]].data5; + FreeSpriteOamMatrix(&gSprites[gObjectBankIDs[gActiveBank]]); + DestroySprite(&gSprites[gObjectBankIDs[gActiveBank]]); + OpponentBufferExecCompleted(); + } +} + +void sub_8032C4C(void) +{ + if ((--ewram17810[gActiveBank].unk9) == 0xFF) + { + ewram17810[gActiveBank].unk9 = 0; + OpponentBufferExecCompleted(); + } +} + +void sub_8032C88(void) +{ + bool8 r6 = FALSE; + + if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI))) + { + if (gSprites[gHealthboxIDs[gActiveBank]].callback == SpriteCallbackDummy) + r6 = TRUE; + } + else + { + if (gSprites[gHealthboxIDs[gActiveBank]].callback == SpriteCallbackDummy + && gSprites[gHealthboxIDs[gActiveBank ^ 2]].callback == SpriteCallbackDummy) + r6 = TRUE; + } + if (IsCryPlayingOrClearCrySongs()) + r6 = FALSE; + + if (r6 && ewram17810[gActiveBank].unk1_0 && ewram17810[gActiveBank ^ 2].unk1_0) + { + ewram17810[gActiveBank].unk0_7 = 0; + ewram17810[gActiveBank].unk1_0 = 0; + ewram17810[gActiveBank ^ 2].unk0_7 = 0; + ewram17810[gActiveBank ^ 2].unk1_0 = 0; + FreeSpriteTilesByTag(0x27F9); + FreeSpritePaletteByTag(0x27F9); + if (gBattleTypeFlags & BATTLE_TYPE_MULTI) + m4aMPlayContinue(&gMPlay_BGM); + else + m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 256); + ewram17810[gActiveBank].unk9 = 3; + gBattleBankFunc[gActiveBank] = sub_8032C4C; + } +} + +void sub_8032E2C(void) +{ + if (!ewram17810[gActiveBank].unk0_3 && !ewram17810[gActiveBank].unk0_7) + sub_8141828(gActiveBank, &gEnemyParty[gBattlePartyID[gActiveBank]]); + if (!ewram17810[gActiveBank ^ 2].unk0_3 && !ewram17810[gActiveBank ^ 2].unk0_7) + sub_8141828(gActiveBank ^ 2, &gEnemyParty[gBattlePartyID[gActiveBank ^ 2]]); + if (!ewram17810[gActiveBank].unk0_3 && !ewram17810[gActiveBank ^ 2].unk0_3) + { + if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) + { + DestroySprite(&gSprites[gUnknown_0300434C[gActiveBank ^ 2]]); + sub_8045A5C( + gHealthboxIDs[gActiveBank ^ 2], + &gEnemyParty[gBattlePartyID[gActiveBank ^ 2]], + 0); + sub_804777C(gActiveBank ^ 2); + sub_8043DFC(gHealthboxIDs[gActiveBank ^ 2]); + sub_8032984( + gActiveBank ^ 2, + GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank ^ 2]], MON_DATA_SPECIES)); + } + DestroySprite(&gSprites[gUnknown_0300434C[gActiveBank]]); + sub_8045A5C( + gHealthboxIDs[gActiveBank], + &gEnemyParty[gBattlePartyID[gActiveBank]], + 0); + sub_804777C(gActiveBank); + sub_8043DFC(gHealthboxIDs[gActiveBank]); + sub_8032984( + gActiveBank, + GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES)); + + ewram17840.unk9_0 = 0; + gBattleBankFunc[gActiveBank] = sub_8032C88; + } +} + +void sub_8033018(void) +{ + if (gSprites[gObjectBankIDs[gActiveBank]].animEnded == TRUE + && gSprites[gObjectBankIDs[gActiveBank]].pos2.x == 0) + { + if (!ewram17810[gActiveBank].unk0_7) + { + sub_8141828(gActiveBank, &gEnemyParty[gBattlePartyID[gActiveBank]]); + return; + } + if (ewram17810[gActiveBank].unk1_0) + { + ewram17810[gActiveBank].unk0_7 = 0; + ewram17810[gActiveBank].unk1_0 = 0; + FreeSpriteTilesByTag(0x27F9); + FreeSpritePaletteByTag(0x27F9); + OpponentBufferExecCompleted(); + return; + } + } +} + +void sub_80330C8(void) +{ + s16 r4 = sub_8045C78(gActiveBank, gHealthboxIDs[gActiveBank], 0, 0); + + sub_8043DFC(gHealthboxIDs[gActiveBank]); + if (r4 != -1) + sub_80440EC(gHealthboxIDs[gActiveBank], r4, 0); + else + OpponentBufferExecCompleted(); +} + +void sub_803311C(void) +{ + if (!gSprites[gObjectBankIDs[gActiveBank]].inUse) + { + sub_8043DB0(gHealthboxIDs[gActiveBank]); + OpponentBufferExecCompleted(); + } +} + +void sub_8033160(void) +{ + if (!ewram17810[gActiveBank].unk0_6) + { + FreeSpriteOamMatrix(&gSprites[gObjectBankIDs[gActiveBank]]); + DestroySprite(&gSprites[gObjectBankIDs[gActiveBank]]); + sub_8032A08(gActiveBank); + sub_8043DB0(gHealthboxIDs[gActiveBank]); + OpponentBufferExecCompleted(); + } +} + +void sub_80331D0(void) +{ + if (gUnknown_03004210.state == 0) + OpponentBufferExecCompleted(); +} + +void bx_blink_t7(void) +{ + u8 spriteId = gObjectBankIDs[gActiveBank]; + + if (gSprites[spriteId].data1 == 32) + { + gSprites[spriteId].data1 = 0; + gSprites[spriteId].invisible = FALSE; + gDoingBattleAnim = 0; + OpponentBufferExecCompleted(); + } + else + { + if (((u16)gSprites[spriteId].data1 % 4) == 0) + gSprites[spriteId].invisible ^= 1; + gSprites[spriteId].data1++; + } +} + +void sub_8033264(void) +{ + if (gSprites[gHealthboxIDs[gActiveBank]].callback == SpriteCallbackDummy) + { + if (ewram17800[gActiveBank].unk0_2) + move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 6); + gBattleBankFunc[gActiveBank] = sub_80332D0; + } +} + +void sub_80332D0(void) +{ + if (!ewram17810[gActiveBank].unk0_6) + { + CreateTask(c3_0802FDF4, 10); + OpponentBufferExecCompleted(); + } +} + +void sub_8033308(void) +{ + if (ewram17810[gActiveBank].unk1_0) + { + ewram17810[gActiveBank].unk0_7 = 0; + ewram17810[gActiveBank].unk1_0 = 0; + FreeSpriteTilesByTag(0x27F9); + FreeSpritePaletteByTag(0x27F9); + StartSpriteAnim(&gSprites[gObjectBankIDs[gActiveBank]], 0); + sub_8045A5C( + gHealthboxIDs[gActiveBank], + &gEnemyParty[gBattlePartyID[gActiveBank]], + 0); + sub_804777C(gActiveBank); + sub_8043DFC(gHealthboxIDs[gActiveBank]); + sub_8031F88(gActiveBank); + gBattleBankFunc[gActiveBank] = sub_8033264; + } +} + +void sub_80333D4(void) +{ + if (!ewram17810[gActiveBank].unk0_3 && !ewram17810[gActiveBank].unk0_7) + sub_8141828(gActiveBank, &gEnemyParty[gBattlePartyID[gActiveBank]]); + if (gSprites[gUnknown_0300434C[gActiveBank]].callback == SpriteCallbackDummy + && !ewram17810[gActiveBank].unk0_3) + { + DestroySprite(&gSprites[gUnknown_0300434C[gActiveBank]]); + sub_8032984(gActiveBank, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES)); + gBattleBankFunc[gActiveBank] = sub_8033308; + } +} + +void sub_8033494(void) +{ + if (!ewram17810[gActiveBank].unk0_4) + OpponentBufferExecCompleted(); +} + +void sub_80334C0(void) +{ + if (!ewram17810[gActiveBank].unk0_5) + OpponentBufferExecCompleted(); +} + +void OpponentBufferExecCompleted(void) +{ + gBattleBankFunc[gActiveBank] = OpponentBufferRunCommand; + gBattleExecBuffer &= ~gBitTable[gActiveBank]; +} diff --git a/src/battle_811DA74.c b/src/battle_811DA74.c index 328b45f49..743dd2554 100644 --- a/src/battle_811DA74.c +++ b/src/battle_811DA74.c @@ -1,14 +1,24 @@ #include "global.h" -#include "asm.h" +#include "battle.h" +#include "battle_interface.h" +#include "data2.h" +#include "battle_811DA74.h" +#include "battle_anim_813F0F4.h" #include "link.h" #include "m4a.h" #include "main.h" #include "palette.h" +#include "pokeball.h" #include "pokemon.h" +#include "rom3.h" +#include "rom_8077ABC.h" #include "sound.h" +#include "songs.h" #include "sprite.h" #include "string_util.h" +#include "task.h" #include "text.h" +#include "util.h" struct UnknownStruct1 { @@ -17,15 +27,6 @@ struct UnknownStruct1 u8 unk2[0x1FE]; }; -struct UnknownStruct2 -{ - u8 unk0; - u8 unk1; - u8 filler2[7]; - u8 unk9; - u8 fillerA[2]; -}; - //Possibly PokemonSubstruct1 struct UnknownStruct3 { @@ -34,32 +35,80 @@ struct UnknownStruct3 u8 ppBonuses; }; -extern u32 gBitTable[]; +struct UnknownStruct5 +{ + u8 unk0_0:7; + u8 unk0_7:1; +}; + extern u16 gBattleTypeFlags; -extern u8 gUnknown_02023A60[][0x200]; -extern u8 gUnknown_02024A60; -extern u32 gUnknown_02024A64; -extern u16 gUnknown_02024A6A[]; -extern u8 gUnknown_02024BE0[]; -extern u8 gUnknown_02024E6D; +extern struct UnknownStruct5 gUnknown_020238C8; +extern u8 gDisplayedStringBattle[]; +extern u8 gBattleBufferA[][0x200]; +extern u8 gActiveBank; +extern u32 gBattleExecBuffer; +extern u16 gBattlePartyID[]; +extern u8 gObjectBankIDs[]; +extern u8 gBattleOutcome; +extern u16 gUnknown_02024DE8; +extern u8 gUnknown_02024E68[]; +extern u8 gDoingBattleAnim; +extern u32 gPID_perBank[]; +extern struct SpriteTemplate gUnknown_02024E8C; +extern u32 *gDisableStructMoveAnim; +extern u32 gMoveDmgMoveAnim; +extern u16 gMovePowerMoveAnim; +extern u8 gHappinessMoveAnim; +extern u16 gWeatherMoveAnim; +extern u8 gUnknown_0202F7C4; extern struct Window gUnknown_03004210; -extern MainCallback gUnknown_030042D0; -extern void (*gUnknown_03004330[])(void); -extern u8 gUnknown_03004340[]; +extern u16 gUnknown_030042A0; +extern u16 gUnknown_030042A4; +extern MainCallback gPreBattleCallback1; +extern void (*gBattleBankFunc[])(void); +extern u8 gHealthboxIDs[]; extern u8 gUnknown_0300434C[]; -extern void (*const gUnknown_083FE4F4[])(void); - -extern u8 unk_2000000[]; - -#define EWRAM_17800 ((u8 *)(unk_2000000 + 0x17800)) -#define EWRAM_17810 ((struct UnknownStruct2 *)(unk_2000000 + 0x17810)) +extern u8 gBattleMonForms[]; +extern u8 gAnimScriptActive; +extern void (*gAnimScriptCallback)(void); +extern void (*const gLinkPartnerBufferCommands[])(void); +extern u8 move_anim_start_t3(); +extern u8 sub_8078874(); +extern void sub_8044CA0(u8); +extern void sub_8030E38(struct Sprite *); +extern void sub_80E43C0(); +extern void sub_8047858(); +extern void move_anim_start_t2_for_situation(); +extern void load_gfxc_health_bar(); +extern void sub_8043D84(); +extern void BufferStringBattle(); +extern void sub_8031F24(void); +extern void sub_80326EC(); +extern void ExecuteMoveAnim(); +extern void sub_80324BC(); +extern u8 sub_8031720(); +extern u8 mplay_80342A4(); +extern void oamt_add_pos2_onto_pos1(); +extern void oamt_set_x3A_32(); +extern void sub_8078B34(struct Sprite *); +extern void sub_80105EC(struct Sprite *); +extern s32 sub_803FC34(u16); +extern void sub_8031AF4(); +extern void sub_80313A0(struct Sprite *); +extern u8 sub_8046400(); +extern void sub_80312F0(struct Sprite *); +extern u8 CreateInvisibleSpriteWithCallback(); +extern void sub_80318FC(); +extern u8 sub_8077ABC(); +extern u8 sub_8077F68(); +extern u8 sub_8079E90(); extern void nullsub_10(); extern void sub_8045A5C(); extern void sub_804777C(); extern void sub_8043DFC(); -extern s16 sub_8045C78(); +//extern s16 sub_8045C78(); extern void sub_80440EC(); extern void sub_80324F8(); extern void nullsub_9(u16); @@ -69,58 +118,62 @@ extern void c3_0802FDF4(u8); extern void sub_8031F88(); extern void sub_8141828(); extern void c2_8011A1C(void); -extern void dp01_prepare_buffer_wireless_probably(); -extern void dp01_build_cmdbuf_x1D_1D_numargs_varargs(int, u16, void *); -void sub_811DA94(void); +void LinkPartnerBufferRunCommand(void); void sub_811E0A0(void); -void dp01_tbl3_exec_completed(void); +void LinkPartnerBufferExecCompleted(void); u32 dp01_getattr_by_ch1_for_player_pokemon(u8 a, u8 *b); void sub_811EC68(u8); +void sub_811F864(u8, u8); +void sub_811FA5C(void); +void sub_811FF30(void); +void sub_812071C(u8); +void sub_81208E0(void); + void nullsub_74(void) { } -void sub_811DA78(void) +void SetBankFuncToLinkPartnerBufferRunCommand(void) { - gUnknown_03004330[gUnknown_02024A60] = sub_811DA94; + gBattleBankFunc[gActiveBank] = LinkPartnerBufferRunCommand; } -void sub_811DA94(void) +void LinkPartnerBufferRunCommand(void) { - if (gUnknown_02024A64 & gBitTable[gUnknown_02024A60]) + if (gBattleExecBuffer & gBitTable[gActiveBank]) { - if (gUnknown_02023A60[gUnknown_02024A60][0] <= 0x38) - gUnknown_083FE4F4[gUnknown_02023A60[gUnknown_02024A60][0]](); + if (gBattleBufferA[gActiveBank][0] <= 0x38) + gLinkPartnerBufferCommands[gBattleBufferA[gActiveBank][0]](); else - dp01_tbl3_exec_completed(); + LinkPartnerBufferExecCompleted(); } } void sub_811DAE4(void) { - if (gSprites[gUnknown_02024BE0[gUnknown_02024A60]].callback == SpriteCallbackDummy) - dp01_tbl3_exec_completed(); + if (gSprites[gObjectBankIDs[gActiveBank]].callback == SpriteCallbackDummy) + LinkPartnerBufferExecCompleted(); } void sub_811DB1C(void) { - if (gSprites[gUnknown_02024BE0[gUnknown_02024A60]].callback == SpriteCallbackDummy) + if (gSprites[gObjectBankIDs[gActiveBank]].callback == SpriteCallbackDummy) { nullsub_10(0); - FreeSpriteOamMatrix(&gSprites[gUnknown_02024BE0[gUnknown_02024A60]]); - DestroySprite(&gSprites[gUnknown_02024BE0[gUnknown_02024A60]]); - dp01_tbl3_exec_completed(); + FreeSpriteOamMatrix(&gSprites[gObjectBankIDs[gActiveBank]]); + DestroySprite(&gSprites[gObjectBankIDs[gActiveBank]]); + LinkPartnerBufferExecCompleted(); } } void sub_811DB84(void) { - if ((--EWRAM_17810[gUnknown_02024A60].unk9) == 0xFF) + if ((--ewram17810[gActiveBank].unk9) == 0xFF) { - EWRAM_17810[gUnknown_02024A60].unk9 = 0; - dp01_tbl3_exec_completed(); + ewram17810[gActiveBank].unk9 = 0; + LinkPartnerBufferExecCompleted(); } } @@ -130,21 +183,21 @@ void sub_811DBC0(void) if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & 0x40))) { - if (gSprites[gUnknown_03004340[gUnknown_02024A60]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxIDs[gActiveBank]].callback == SpriteCallbackDummy) r6 = TRUE; } else { - if (gSprites[gUnknown_03004340[gUnknown_02024A60]].callback == SpriteCallbackDummy - && gSprites[gUnknown_03004340[gUnknown_02024A60 ^ 2]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxIDs[gActiveBank]].callback == SpriteCallbackDummy + && gSprites[gHealthboxIDs[gActiveBank ^ 2]].callback == SpriteCallbackDummy) r6 = TRUE; } if (IsCryPlayingOrClearCrySongs()) r6 = FALSE; if (r6) { - EWRAM_17810[gUnknown_02024A60].unk9 = 3; - gUnknown_03004330[gUnknown_02024A60] = sub_811DB84; + ewram17810[gActiveBank].unk9 = 3; + gBattleBankFunc[gActiveBank] = sub_811DB84; } } @@ -152,91 +205,92 @@ void sub_811DCA0(void) { u8 r2; - if (!(EWRAM_17810[gUnknown_02024A60].unk0 & 8)) + if (!ewram17810[gActiveBank].unk0_3) { - r2 = EWRAM_17810[gUnknown_02024A60 ^ 2].unk0 & 8; - if (!r2 && (++EWRAM_17810[gUnknown_02024A60].unk9) != 1) + // I couldn't get it to work as a bitfield here + r2 = *((u8 *)&ewram17810[gActiveBank ^ 2]) & 8; + if (!r2 && (++ewram17810[gActiveBank].unk9) != 1) { - EWRAM_17810[gUnknown_02024A60].unk9 = r2; + ewram17810[gActiveBank].unk9 = r2; if (IsDoubleBattle() && !(gBattleTypeFlags & 0x40)) { - DestroySprite(&gSprites[gUnknown_0300434C[gUnknown_02024A60 ^ 2]]); - sub_8045A5C(gUnknown_03004340[gUnknown_02024A60 ^ 2], &gPlayerParty[gUnknown_02024A6A[gUnknown_02024A60 ^ 2]], 0); - sub_804777C(gUnknown_02024A60 ^ 2); - sub_8043DFC(gUnknown_03004340[gUnknown_02024A60 ^ 2]); + DestroySprite(&gSprites[gUnknown_0300434C[gActiveBank ^ 2]]); + sub_8045A5C(gHealthboxIDs[gActiveBank ^ 2], &gPlayerParty[gBattlePartyID[gActiveBank ^ 2]], 0); + sub_804777C(gActiveBank ^ 2); + sub_8043DFC(gHealthboxIDs[gActiveBank ^ 2]); } - DestroySprite(&gSprites[gUnknown_0300434C[gUnknown_02024A60]]); - sub_8045A5C(gUnknown_03004340[gUnknown_02024A60], &gPlayerParty[gUnknown_02024A6A[gUnknown_02024A60]], 0); - sub_804777C(gUnknown_02024A60); - sub_8043DFC(gUnknown_03004340[gUnknown_02024A60]); - (s8)EWRAM_17810[4].unk9 &= ~1; - gUnknown_03004330[gUnknown_02024A60] = sub_811DBC0; + DestroySprite(&gSprites[gUnknown_0300434C[gActiveBank]]); + sub_8045A5C(gHealthboxIDs[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], 0); + sub_804777C(gActiveBank); + sub_8043DFC(gHealthboxIDs[gActiveBank]); + (s8)ewram17810[4].unk9 &= ~1; + gBattleBankFunc[gActiveBank] = sub_811DBC0; } } } void sub_811DDE8(void) { - if (gSprites[gUnknown_02024BE0[gUnknown_02024A60]].animEnded - && gSprites[gUnknown_02024BE0[gUnknown_02024A60]].pos2.x == 0) - dp01_tbl3_exec_completed(); + if (gSprites[gObjectBankIDs[gActiveBank]].animEnded + && gSprites[gObjectBankIDs[gActiveBank]].pos2.x == 0) + LinkPartnerBufferExecCompleted(); } void bx_t3_healthbar_update(void) { s16 r4; - r4 = sub_8045C78(gUnknown_02024A60, gUnknown_03004340[gUnknown_02024A60], 0, 0); - sub_8043DFC(gUnknown_03004340[gUnknown_02024A60]); + r4 = sub_8045C78(gActiveBank, gHealthboxIDs[gActiveBank], 0, 0); + sub_8043DFC(gHealthboxIDs[gActiveBank]); if (r4 != -1) { - sub_80440EC(gUnknown_03004340[gUnknown_02024A60], r4, 0); + sub_80440EC(gHealthboxIDs[gActiveBank], r4, 0); } else { - sub_80324F8(&gPlayerParty[gUnknown_02024A6A[gUnknown_02024A60]], gUnknown_02024A60); - dp01_tbl3_exec_completed(); + sub_80324F8(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); + LinkPartnerBufferExecCompleted(); } } void sub_811DE98(void) { - if (gSprites[gUnknown_02024BE0[gUnknown_02024A60]].pos1.y + gSprites[gUnknown_02024BE0[gUnknown_02024A60]].pos2.y > 160) + if (gSprites[gObjectBankIDs[gActiveBank]].pos1.y + gSprites[gObjectBankIDs[gActiveBank]].pos2.y > 160) { - nullsub_9(GetMonData(&gPlayerParty[gUnknown_02024A6A[gUnknown_02024A60]], MON_DATA_SPECIES)); - FreeOamMatrix(gSprites[gUnknown_02024BE0[gUnknown_02024A60]].oam.matrixNum); - DestroySprite(&gSprites[gUnknown_02024BE0[gUnknown_02024A60]]); - sub_8043DB0(gUnknown_03004340[gUnknown_02024A60]); - dp01_tbl3_exec_completed(); + nullsub_9(GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES)); + FreeOamMatrix(gSprites[gObjectBankIDs[gActiveBank]].oam.matrixNum); + DestroySprite(&gSprites[gObjectBankIDs[gActiveBank]]); + sub_8043DB0(gHealthboxIDs[gActiveBank]); + LinkPartnerBufferExecCompleted(); } } void sub_811DF34(void) { - if (!(EWRAM_17810[gUnknown_02024A60].unk0 & 0x40)) + if (!ewram17810[gActiveBank].unk0_6) { - FreeSpriteOamMatrix(&gSprites[gUnknown_02024BE0[gUnknown_02024A60]]); - DestroySprite(&gSprites[gUnknown_02024BE0[gUnknown_02024A60]]); - sub_8043DB0(gUnknown_03004340[gUnknown_02024A60]); - dp01_tbl3_exec_completed(); + FreeSpriteOamMatrix(&gSprites[gObjectBankIDs[gActiveBank]]); + DestroySprite(&gSprites[gObjectBankIDs[gActiveBank]]); + sub_8043DB0(gHealthboxIDs[gActiveBank]); + LinkPartnerBufferExecCompleted(); } } void sub_811DFA0(void) { if (gUnknown_03004210.state == 0) - dp01_tbl3_exec_completed(); + LinkPartnerBufferExecCompleted(); } void bx_blink_t3(void) { - u8 spriteId = gUnknown_02024BE0[gUnknown_02024A60]; + u8 spriteId = gObjectBankIDs[gActiveBank]; if (gSprites[spriteId].data1 == 32) { gSprites[spriteId].data1 = 0; gSprites[spriteId].invisible = FALSE; - gUnknown_02024E6D = 0; - dp01_tbl3_exec_completed(); + gDoingBattleAnim = 0; + LinkPartnerBufferExecCompleted(); } else { @@ -250,48 +304,48 @@ void bx_blink_t3(void) void sub_811E034(void) { - if (gSprites[gUnknown_03004340[gUnknown_02024A60]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxIDs[gActiveBank]].callback == SpriteCallbackDummy) { - if (EWRAM_17800[gUnknown_02024A60 * 4] & 4) - move_anim_start_t4(gUnknown_02024A60, gUnknown_02024A60, gUnknown_02024A60, 6); - gUnknown_03004330[gUnknown_02024A60] = sub_811E0A0; + if (ewram17800[gActiveBank].unk0_2) + move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 6); + gBattleBankFunc[gActiveBank] = sub_811E0A0; } } void sub_811E0A0(void) { - if (!(EWRAM_17810[gUnknown_02024A60].unk0 & 0x40)) - dp01_tbl3_exec_completed(); + if (!ewram17810[gActiveBank].unk0_6) + LinkPartnerBufferExecCompleted(); } void sub_811E0CC(void) { - if (EWRAM_17810[gUnknown_02024A60].unk1 & 1) + if (ewram17810[gActiveBank].unk1_0) { - EWRAM_17810[gUnknown_02024A60].unk0 &= 0x7F; - (s8)EWRAM_17810[gUnknown_02024A60].unk1 &= ~1; + ewram17810[gActiveBank].unk0_7 = 0; + ewram17810[gActiveBank].unk1_0 = 0; FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); CreateTask(c3_0802FDF4, 10); - sub_80324F8(&gPlayerParty[gUnknown_02024A6A[gUnknown_02024A60]], gUnknown_02024A60); - StartSpriteAnim(&gSprites[gUnknown_02024BE0[gUnknown_02024A60]], 0); - sub_8045A5C(gUnknown_03004340[gUnknown_02024A60], &gPlayerParty[gUnknown_02024A6A[gUnknown_02024A60]], 0); - sub_804777C(gUnknown_02024A60); - sub_8043DFC(gUnknown_03004340[gUnknown_02024A60]); - sub_8031F88(gUnknown_02024A60); - gUnknown_03004330[gUnknown_02024A60] = sub_811E034; + sub_80324F8(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); + StartSpriteAnim(&gSprites[gObjectBankIDs[gActiveBank]], 0); + sub_8045A5C(gHealthboxIDs[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], 0); + sub_804777C(gActiveBank); + sub_8043DFC(gHealthboxIDs[gActiveBank]); + sub_8031F88(gActiveBank); + gBattleBankFunc[gActiveBank] = sub_811E034; } } void sub_811E1BC(void) { - if (!(EWRAM_17810[gUnknown_02024A60].unk0 & 0x88)) - sub_8141828(gUnknown_02024A60, &gPlayerParty[gUnknown_02024A6A[gUnknown_02024A60]]); - if (gSprites[gUnknown_0300434C[gUnknown_02024A60]].callback == SpriteCallbackDummy - && !(EWRAM_17810[gUnknown_02024A60].unk0 & 8)) + if (!ewram17810[gActiveBank].unk0_3 && !ewram17810[gActiveBank].unk0_7) + sub_8141828(gActiveBank, &gPlayerParty[gBattlePartyID[gActiveBank]]); + if (gSprites[gUnknown_0300434C[gActiveBank]].callback == SpriteCallbackDummy + && !ewram17810[gActiveBank].unk0_3) { - DestroySprite(&gSprites[gUnknown_0300434C[gUnknown_02024A60]]); - gUnknown_03004330[gUnknown_02024A60] = sub_811E0CC; + DestroySprite(&gSprites[gUnknown_0300434C[gActiveBank]]); + gBattleBankFunc[gActiveBank] = sub_811E0CC; } } @@ -301,7 +355,7 @@ void sub_811E258(void) { m4aSongNumStop(0x5A); gMain.inBattle = FALSE; - gMain.callback1 = gUnknown_030042D0; + gMain.callback1 = gPreBattleCallback1; SetMainCallback2(c2_8011A1C); } } @@ -313,60 +367,60 @@ void sub_811E29C(void) if (gBattleTypeFlags & 2) { sub_800832C(); - gUnknown_03004330[gUnknown_02024A60] = sub_811E258; + gBattleBankFunc[gActiveBank] = sub_811E258; } else { m4aSongNumStop(0x5A); gMain.inBattle = FALSE; - gMain.callback1 = gUnknown_030042D0; + gMain.callback1 = gPreBattleCallback1; SetMainCallback2(gMain.savedCallback); } } } -void dp01_tbl3_exec_completed(void) +void LinkPartnerBufferExecCompleted(void) { u8 multiplayerId; - gUnknown_03004330[gUnknown_02024A60] = sub_811DA94; + gBattleBankFunc[gActiveBank] = LinkPartnerBufferRunCommand; if (gBattleTypeFlags & 2) { multiplayerId = GetMultiplayerId(); dp01_prepare_buffer_wireless_probably(2, 4, &multiplayerId); - gUnknown_02023A60[gUnknown_02024A60][0] = 0x38; + gBattleBufferA[gActiveBank][0] = 0x38; } else { - gUnknown_02024A64 &= ~gBitTable[gUnknown_02024A60]; + gBattleExecBuffer &= ~gBitTable[gActiveBank]; } } void sub_811E38C(void) { - if (!(EWRAM_17810[gUnknown_02024A60].unk0 & 0x10)) - dp01_tbl3_exec_completed(); + if (!ewram17810[gActiveBank].unk0_4) + LinkPartnerBufferExecCompleted(); } void sub_811E3B8(void) { - if (!(EWRAM_17810[gUnknown_02024A60].unk0 & 0x20)) - dp01_tbl3_exec_completed(); + if (!ewram17810[gActiveBank].unk0_5) + LinkPartnerBufferExecCompleted(); } -void dp01t_00_3_getattr(void) +void LinkPartnerHandleGetAttributes(void) { u8 unk[256]; int r6 = 0; s32 i; - if (gUnknown_02023A60[gUnknown_02024A60][2] == 0) + if (gBattleBufferA[gActiveBank][2] == 0) { - r6 = dp01_getattr_by_ch1_for_player_pokemon(gUnknown_02024A6A[gUnknown_02024A60], unk); + r6 = dp01_getattr_by_ch1_for_player_pokemon(gBattlePartyID[gActiveBank], unk); } else { - u8 r4 = gUnknown_02023A60[gUnknown_02024A60][2]; + u8 r4 = gBattleBufferA[gActiveBank][2]; for (i = 0; i < 6; i++) { @@ -376,7 +430,7 @@ void dp01t_00_3_getattr(void) } } dp01_build_cmdbuf_x1D_1D_numargs_varargs(1, r6, unk); - dp01_tbl3_exec_completed(); + LinkPartnerBufferExecCompleted(); } u32 dp01_getattr_by_ch1_for_player_pokemon(u8 a, u8 *buffer) @@ -389,7 +443,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon(u8 a, u8 *buffer) u32 data32; s32 size = 0; - switch (gUnknown_02023A60[gUnknown_02024A60][1]) + switch (gBattleBufferA[gActiveBank][1]) { case 0: battlePokemon.species = GetMonData(&gPlayerParty[a], MON_DATA_SPECIES); @@ -455,7 +509,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon(u8 a, u8 *buffer) case 5: case 6: case 7: - data16 = GetMonData(&gPlayerParty[a], gUnknown_02023A60[gUnknown_02024A60][1] + MON_DATA_CHECKSUM); + data16 = GetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - 4); buffer[0] = data16; buffer[1] = data16 >> 8; size = 2; @@ -470,7 +524,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon(u8 a, u8 *buffer) case 10: case 11: case 12: - buffer[0] = GetMonData(&gPlayerParty[a], gUnknown_02023A60[gUnknown_02024A60][1] + MON_DATA_MARKINGS); + buffer[0] = GetMonData(&gPlayerParty[a], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - 9); size = 1; break; case 17: @@ -686,21 +740,21 @@ u32 dp01_getattr_by_ch1_for_player_pokemon(u8 a, u8 *buffer) void sub_811EC04(void) { - dp01_tbl3_exec_completed(); + LinkPartnerBufferExecCompleted(); } -void sub_811EC10(void) +void LinkPartnerHandleSetAttributes(void) { u8 i; u8 r4; - if (gUnknown_02023A60[gUnknown_02024A60][2] == 0) + if (gBattleBufferA[gActiveBank][2] == 0) { - sub_811EC68(gUnknown_02024A6A[gUnknown_02024A60]); + sub_811EC68(gBattlePartyID[gActiveBank]); } else { - r4 = gUnknown_02023A60[gUnknown_02024A60][2]; + r4 = gBattleBufferA[gActiveBank][2]; for (i = 0; i < 6; i++) { if (r4 & 1) @@ -708,5 +762,850 @@ void sub_811EC10(void) r4 >>= 1; } } - dp01_tbl3_exec_completed(); + LinkPartnerBufferExecCompleted(); +} + +void sub_811EC68(u8 a) +{ + struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBank][3]; + struct UnknownStruct3 *moveData = (struct UnknownStruct3 *)&gBattleBufferA[gActiveBank][3]; + s32 i; + + switch (gBattleBufferA[gActiveBank][1]) + { + case 0: + { + u8 iv; + + SetMonData(&gPlayerParty[a], MON_DATA_SPECIES, (u8 *)&battlePokemon->species); + SetMonData(&gPlayerParty[a], MON_DATA_HELD_ITEM, (u8 *)&battlePokemon->item); + for (i = 0; i < 4; i++) + { + SetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + i, (u8 *)&battlePokemon->moves[i]); + SetMonData(&gPlayerParty[a], MON_DATA_PP1 + i, (u8 *)&battlePokemon->pp[i]); + } + SetMonData(&gPlayerParty[a], MON_DATA_PP_BONUSES, (u8 *)&battlePokemon->ppBonuses); + SetMonData(&gPlayerParty[a], MON_DATA_FRIENDSHIP, (u8 *)&battlePokemon->friendship); + SetMonData(&gPlayerParty[a], MON_DATA_EXP, (u8 *)&battlePokemon->experience); + iv = battlePokemon->hpIV; + SetMonData(&gPlayerParty[a], MON_DATA_HP_IV, (u8 *)&iv); + iv = battlePokemon->attackIV; + SetMonData(&gPlayerParty[a], MON_DATA_ATK_IV, (u8 *)&iv); + iv = battlePokemon->defenseIV; + SetMonData(&gPlayerParty[a], MON_DATA_DEF_IV, (u8 *)&iv); + iv = battlePokemon->speedIV; + SetMonData(&gPlayerParty[a], MON_DATA_SPD_IV, (u8 *)&iv); + iv = battlePokemon->spAttackIV; + SetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV, (u8 *)&iv); + iv = battlePokemon->spDefenseIV; + SetMonData(&gPlayerParty[a], MON_DATA_SPDEF_IV, (u8 *)&iv); + SetMonData(&gPlayerParty[a], MON_DATA_PERSONALITY, (u8 *)&battlePokemon->personality); + SetMonData(&gPlayerParty[a], MON_DATA_STATUS, (u8 *)&battlePokemon->status1); + SetMonData(&gPlayerParty[a], MON_DATA_LEVEL, (u8 *)&battlePokemon->level); + SetMonData(&gPlayerParty[a], MON_DATA_HP, (u8 *)&battlePokemon->hp); + SetMonData(&gPlayerParty[a], MON_DATA_MAX_HP, (u8 *)&battlePokemon->maxHP); + SetMonData(&gPlayerParty[a], MON_DATA_ATK, (u8 *)&battlePokemon->attack); + SetMonData(&gPlayerParty[a], MON_DATA_DEF, (u8 *)&battlePokemon->defense); + SetMonData(&gPlayerParty[a], MON_DATA_SPD, (u8 *)&battlePokemon->speed); + SetMonData(&gPlayerParty[a], MON_DATA_SPATK, (u8 *)&battlePokemon->spAttack); + SetMonData(&gPlayerParty[a], MON_DATA_SPDEF, (u8 *)&battlePokemon->spDefense); + } + break; + case 1: + SetMonData(&gPlayerParty[a], MON_DATA_SPECIES, &gBattleBufferA[gActiveBank][3]); + break; + case 2: + SetMonData(&gPlayerParty[a], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBank][3]); + break; + case 3: + for (i = 0; i < 4; i++) + { + SetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + i, (u8 *)&moveData->moves[i]); + SetMonData(&gPlayerParty[a], MON_DATA_PP1 + i, (u8 *)&moveData->pp[i]); + } + SetMonData(&gPlayerParty[a], MON_DATA_PP_BONUSES, &moveData->ppBonuses); + break; + case 4: + case 5: + case 6: + case 7: + SetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - 4, &gBattleBufferA[gActiveBank][3]); + break; + case 8: + SetMonData(&gPlayerParty[a], MON_DATA_PP1, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_PP2, &gBattleBufferA[gActiveBank][4]); + SetMonData(&gPlayerParty[a], MON_DATA_PP3, &gBattleBufferA[gActiveBank][5]); + SetMonData(&gPlayerParty[a], MON_DATA_PP4, &gBattleBufferA[gActiveBank][6]); + SetMonData(&gPlayerParty[a], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBank][7]); + break; + case 9: + case 10: + case 11: + case 12: + SetMonData(&gPlayerParty[a], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - 9, &gBattleBufferA[gActiveBank][3]); + break; + case 17: + SetMonData(&gPlayerParty[a], MON_DATA_OT_ID, &gBattleBufferA[gActiveBank][3]); + break; + case 18: + SetMonData(&gPlayerParty[a], MON_DATA_EXP, &gBattleBufferA[gActiveBank][3]); + break; + case 19: + SetMonData(&gPlayerParty[a], MON_DATA_HP_EV, &gBattleBufferA[gActiveBank][3]); + break; + case 20: + SetMonData(&gPlayerParty[a], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBank][3]); + break; + case 21: + SetMonData(&gPlayerParty[a], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBank][3]); + break; + case 22: + SetMonData(&gPlayerParty[a], MON_DATA_SPD_EV, &gBattleBufferA[gActiveBank][3]); + break; + case 23: + SetMonData(&gPlayerParty[a], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBank][3]); + break; + case 24: + SetMonData(&gPlayerParty[a], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBank][3]); + break; + case 25: + SetMonData(&gPlayerParty[a], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBank][3]); + break; + case 26: + SetMonData(&gPlayerParty[a], MON_DATA_POKERUS, &gBattleBufferA[gActiveBank][3]); + break; + case 27: + SetMonData(&gPlayerParty[a], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBank][3]); + break; + case 28: + SetMonData(&gPlayerParty[a], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBank][3]); + break; + case 29: + SetMonData(&gPlayerParty[a], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBank][3]); + break; + case 30: + SetMonData(&gPlayerParty[a], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBank][3]); + break; + case 31: + SetMonData(&gPlayerParty[a], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[a], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][4]); + SetMonData(&gPlayerParty[a], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][5]); + SetMonData(&gPlayerParty[a], MON_DATA_SPD_IV, &gBattleBufferA[gActiveBank][6]); + SetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][7]); + SetMonData(&gPlayerParty[a], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][8]); + break; + case 32: + SetMonData(&gPlayerParty[a], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]); + break; + case 33: + SetMonData(&gPlayerParty[a], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][3]); + break; + case 34: + SetMonData(&gPlayerParty[a], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][3]); + break; + case 35: + SetMonData(&gPlayerParty[a], MON_DATA_SPD_IV, &gBattleBufferA[gActiveBank][3]); + break; + case 36: + SetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][3]); + break; + case 37: + SetMonData(&gPlayerParty[a], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][3]); + break; + case 38: + SetMonData(&gPlayerParty[a], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBank][3]); + break; + case 39: + SetMonData(&gPlayerParty[a], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBank][3]); + break; + case 40: + SetMonData(&gPlayerParty[a], MON_DATA_STATUS, &gBattleBufferA[gActiveBank][3]); + break; + case 41: + SetMonData(&gPlayerParty[a], MON_DATA_LEVEL, &gBattleBufferA[gActiveBank][3]); + break; + case 42: + SetMonData(&gPlayerParty[a], MON_DATA_HP, &gBattleBufferA[gActiveBank][3]); + break; + case 43: + SetMonData(&gPlayerParty[a], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBank][3]); + break; + case 44: + SetMonData(&gPlayerParty[a], MON_DATA_ATK, &gBattleBufferA[gActiveBank][3]); + break; + case 45: + SetMonData(&gPlayerParty[a], MON_DATA_DEF, &gBattleBufferA[gActiveBank][3]); + break; + case 46: + SetMonData(&gPlayerParty[a], MON_DATA_SPD, &gBattleBufferA[gActiveBank][3]); + break; + case 47: + SetMonData(&gPlayerParty[a], MON_DATA_SPATK, &gBattleBufferA[gActiveBank][3]); + break; + case 48: + SetMonData(&gPlayerParty[a], MON_DATA_SPDEF, &gBattleBufferA[gActiveBank][3]); + break; + case 49: + SetMonData(&gPlayerParty[a], MON_DATA_COOL, &gBattleBufferA[gActiveBank][3]); + break; + case 50: + SetMonData(&gPlayerParty[a], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBank][3]); + break; + case 51: + SetMonData(&gPlayerParty[a], MON_DATA_CUTE, &gBattleBufferA[gActiveBank][3]); + break; + case 52: + SetMonData(&gPlayerParty[a], MON_DATA_SMART, &gBattleBufferA[gActiveBank][3]); + break; + case 53: + SetMonData(&gPlayerParty[a], MON_DATA_TOUGH, &gBattleBufferA[gActiveBank][3]); + break; + case 54: + SetMonData(&gPlayerParty[a], MON_DATA_SHEEN, &gBattleBufferA[gActiveBank][3]); + break; + case 55: + SetMonData(&gPlayerParty[a], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBank][3]); + break; + case 56: + SetMonData(&gPlayerParty[a], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBank][3]); + break; + case 57: + SetMonData(&gPlayerParty[a], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBank][3]); + break; + case 58: + SetMonData(&gPlayerParty[a], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBank][3]); + break; + case 59: + SetMonData(&gPlayerParty[a], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBank][3]); + break; + } + sub_80324F8(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); +} + +void sub_811F664(void) +{ + u8 *dst; + u8 i; + + dst = (u8 *)&gPlayerParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1]; + for (i = 0; i < gBattleBufferA[gActiveBank][2]; i++) + dst[i] = gBattleBufferA[gActiveBank][3 + i]; + LinkPartnerBufferExecCompleted(); +} + +void sub_811F6D8(void) +{ + sub_80318FC(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); + GetMonSpriteTemplate_803C56C( + GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES), + GetBankIdentity(gActiveBank)); + gObjectBankIDs[gActiveBank] = CreateSprite( + &gUnknown_02024E8C, + sub_8077ABC(gActiveBank, 2), + sub_8077F68(gActiveBank), + sub_8079E90(gActiveBank)); + gSprites[gObjectBankIDs[gActiveBank]].pos2.x = -240; + gSprites[gObjectBankIDs[gActiveBank]].data0 = gActiveBank; + gSprites[gObjectBankIDs[gActiveBank]].oam.paletteNum = gActiveBank; + StartSpriteAnim(&gSprites[gObjectBankIDs[gActiveBank]], gBattleMonForms[gActiveBank]); + gBattleBankFunc[gActiveBank] = sub_811DDE8; +} + +void sub_811F7F4(void) +{ + sub_8032AA8(gActiveBank, gBattleBufferA[gActiveBank][2]); + gBattlePartyID[gActiveBank] = gBattleBufferA[gActiveBank][1]; + sub_80318FC(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); + sub_811F864(gActiveBank, gBattleBufferA[gActiveBank][2]); + gBattleBankFunc[gActiveBank] = sub_811E1BC; +} + +void sub_811F864(u8 a, u8 b) +{ + u16 species; + + sub_8032AA8(a, b); + gBattlePartyID[a] = gBattleBufferA[a][1]; + species = GetMonData(&gPlayerParty[gBattlePartyID[a]], MON_DATA_SPECIES); + gUnknown_0300434C[a] = CreateInvisibleSpriteWithCallback(sub_80312F0); + GetMonSpriteTemplate_803C56C(species, GetBankIdentity(a)); + gObjectBankIDs[a] = CreateSprite( + &gUnknown_02024E8C, + sub_8077ABC(a, 2), + sub_8077F68(a), + sub_8079E90(a)); + gSprites[gUnknown_0300434C[a]].data1 = gObjectBankIDs[a]; + gSprites[gObjectBankIDs[a]].data0 = a; + gSprites[gObjectBankIDs[a]].data2 = species; + gSprites[gObjectBankIDs[a]].oam.paletteNum = a; + StartSpriteAnim(&gSprites[gObjectBankIDs[a]], gBattleMonForms[a]); + gSprites[gObjectBankIDs[a]].invisible = TRUE; + gSprites[gObjectBankIDs[a]].callback = SpriteCallbackDummy; + gSprites[gUnknown_0300434C[a]].data0 = sub_8046400(0, 0xFF); +} + +void sub_811F9D0(void) +{ + if (gBattleBufferA[gActiveBank][1] == 0) + { + ewram17810[gActiveBank].unk4 = 0; + gBattleBankFunc[gActiveBank] = sub_811FA5C; + } + else + { + FreeSpriteOamMatrix(&gSprites[gObjectBankIDs[gActiveBank]]); + DestroySprite(&gSprites[gObjectBankIDs[gActiveBank]]); + sub_8043DB0(gHealthboxIDs[gActiveBank]); + LinkPartnerBufferExecCompleted(); + } +} + +void sub_811FA5C(void) +{ + switch (ewram17810[gActiveBank].unk4) + { + case 0: + if (ewram17800[gActiveBank].unk0_2) + move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 5); + ewram17810[gActiveBank].unk4 = 1; + break; + case 1: + if (!ewram17810[gActiveBank].unk0_6) + { + ewram17810[gActiveBank].unk4 = 0; + move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 1); + gBattleBankFunc[gActiveBank] = sub_811DF34; + } + break; + } +} + +void sub_811FAE4(void) +{ + s16 xOffset; + u32 gender; + + if (gBattleTypeFlags & BATTLE_TYPE_MULTI) + { + if (GetBankIdentity(gActiveBank) & 2) + xOffset = 16; + else + xOffset = -16; + gender = gLinkPlayers[sub_803FC34(gActiveBank)].gender; + } + else + { + xOffset = 0; + gender = gLinkPlayers[GetMultiplayerId() ^ 1].gender; + } + sub_8031AF4(gender, gActiveBank); + GetMonSpriteTemplate_803C5A0(gender, GetBankIdentity(gActiveBank)); + gObjectBankIDs[gActiveBank] = CreateSprite( + &gUnknown_02024E8C, + 80 + xOffset, 80 + 4 * (8 - gTrainerBackPicCoords[gender].coords), + sub_8079E90(gActiveBank)); + gSprites[gObjectBankIDs[gActiveBank]].oam.paletteNum = gActiveBank; + gSprites[gObjectBankIDs[gActiveBank]].pos2.x = 240; + gSprites[gObjectBankIDs[gActiveBank]].data0 = -2; + gSprites[gObjectBankIDs[gActiveBank]].callback = sub_80313A0; + gBattleBankFunc[gActiveBank] = sub_811DAE4; +} + +void sub_811FC30(void) +{ + LinkPartnerBufferExecCompleted(); +} + +void sub_811FC3C(void) +{ + oamt_add_pos2_onto_pos1(&gSprites[gObjectBankIDs[gActiveBank]]); + gSprites[gObjectBankIDs[gActiveBank]].data0 = 35; + gSprites[gObjectBankIDs[gActiveBank]].data2 = -40; + gSprites[gObjectBankIDs[gActiveBank]].data4 = gSprites[gObjectBankIDs[gActiveBank]].pos1.y; + gSprites[gObjectBankIDs[gActiveBank]].callback = sub_8078B34; + oamt_set_x3A_32(&gSprites[gObjectBankIDs[gActiveBank]], SpriteCallbackDummy); + gBattleBankFunc[gActiveBank] = sub_811DB1C; +} + +void sub_811FCE8(void) +{ + if (ewram17810[gActiveBank].unk4 == 0) + { + if (ewram17800[gActiveBank].unk0_2) + move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 5); + ewram17810[gActiveBank].unk4++; + } + else if (!ewram17810[gActiveBank].unk0_6) + { + ewram17810[gActiveBank].unk4 = 0; + sub_80324F8(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); + PlaySE12WithPanning(SE_POKE_DEAD, -64); + gSprites[gObjectBankIDs[gActiveBank]].data1 = 0; + gSprites[gObjectBankIDs[gActiveBank]].data2 = 5; + gSprites[gObjectBankIDs[gActiveBank]].callback = sub_80105EC; + gBattleBankFunc[gActiveBank] = sub_811DE98; + } +} + +void sub_811FDCC(void) +{ + LinkPartnerBufferExecCompleted(); +} + +void sub_811FDD8(void) +{ + LinkPartnerBufferExecCompleted(); +} + +void sub_811FDE4(void) +{ + LinkPartnerBufferExecCompleted(); +} + +void sub_811FDF0(void) +{ + LinkPartnerBufferExecCompleted(); +} + +void sub_811FDFC(void) +{ + if (mplay_80342A4(gActiveBank) == 0) + { + u32 r0 = gBattleBufferA[gActiveBank][1] + | (gBattleBufferA[gActiveBank][2] << 8); + + gUnknown_0202F7C4 = gBattleBufferA[gActiveBank][3]; + gMovePowerMoveAnim = gBattleBufferA[gActiveBank][4] + | (gBattleBufferA[gActiveBank][5] << 8); + gMoveDmgMoveAnim = gBattleBufferA[gActiveBank][6] + | (gBattleBufferA[gActiveBank][7] << 8) + | (gBattleBufferA[gActiveBank][8] << 16) + | (gBattleBufferA[gActiveBank][9] << 24); + gHappinessMoveAnim = gBattleBufferA[gActiveBank][10]; + gWeatherMoveAnim = gBattleBufferA[gActiveBank][12] + | (gBattleBufferA[gActiveBank][13] << 8); + gDisableStructMoveAnim = (u32 *)&gBattleBufferA[gActiveBank][16]; + gPID_perBank[gActiveBank] = *gDisableStructMoveAnim; + + if (sub_8031720(r0, gUnknown_0202F7C4) != 0) + LinkPartnerBufferExecCompleted(); + else + { + ewram17810[gActiveBank].unk4 = 0; + gBattleBankFunc[gActiveBank] = sub_811FF30; + } + } +} + +void sub_811FF30(void) +{ + u16 r4 = gBattleBufferA[gActiveBank][1] + | (gBattleBufferA[gActiveBank][2] << 8); + u8 r7 = gBattleBufferA[gActiveBank][11]; + + switch (ewram17810[gActiveBank].unk4) + { + case 0: + if (ewram17800[gActiveBank].unk0_2 && !ewram17800[gActiveBank].unk0_3) + { + ewram17800[gActiveBank].unk0_3 = 1; + move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 5); + } + ewram17810[gActiveBank].unk4 = 1; + break; + case 1: + if (!ewram17810[gActiveBank].unk0_6) + { + sub_80326EC(0); + ExecuteMoveAnim(r4); + ewram17810[gActiveBank].unk4 = 2; + } + break; + case 2: + gAnimScriptCallback(); + if (!gAnimScriptActive) + { + sub_80326EC(1); + if ((ewram17800[gActiveBank].unk0_2) && r7 <= 1) + { + move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 6); + ewram17800[gActiveBank].unk0_3 = 0; + } + ewram17810[gActiveBank].unk4 = 3; + } + break; + case 3: + if (!ewram17810[gActiveBank].unk0_6) + { + sub_8031F24(); + sub_80324BC( + gActiveBank, + gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); + ewram17810[gActiveBank].unk4 = 0; + LinkPartnerBufferExecCompleted(); + } + break; + } +} + +void sub_8120094(void) +{ + gUnknown_030042A4 = 0; + gUnknown_030042A0 = 0; + BufferStringBattle(*(u16 *)&gBattleBufferA[gActiveBank][2]); + sub_8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15); + gBattleBankFunc[gActiveBank] = sub_811DFA0; +} + +void sub_81200F8(void) +{ + LinkPartnerBufferExecCompleted(); +} + +void sub_8120104(void) +{ + LinkPartnerBufferExecCompleted(); +} + +void sub_8120110(void) +{ + LinkPartnerBufferExecCompleted(); +} + +void sub_812011C(void) +{ + LinkPartnerBufferExecCompleted(); +} + +void sub_8120128(void) +{ + LinkPartnerBufferExecCompleted(); +} + +void sub_8120134(void) +{ + LinkPartnerBufferExecCompleted(); +} + +void sub_8120140(void) +{ + LinkPartnerBufferExecCompleted(); +} + +void LinkPartnerHandleHealthBarUpdate(void) +{ + s16 r7; + + load_gfxc_health_bar(0); + r7 = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8); + if (r7 != 0x7FFF) + { + u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP); + u32 hp = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_HP); + + sub_8043D84(gActiveBank, gHealthboxIDs[gActiveBank], maxHP, hp, r7); + } + else + { + u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP); + + sub_8043D84(gActiveBank, gHealthboxIDs[gActiveBank], maxHP, 0, r7); + } + gBattleBankFunc[gActiveBank] = bx_t3_healthbar_update; +} + +void LinkPartnerHandleExpBarUpdate(void) +{ + LinkPartnerBufferExecCompleted(); +} + +void LinkPartnerHandleStatusIconUpdate(void) +{ + if (mplay_80342A4(gActiveBank) == 0) + { + sub_8045A5C(gHealthboxIDs[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], 9); + ewram17810[gActiveBank].unk0_4 = 0; + gBattleBankFunc[gActiveBank] = sub_811E38C; + } +} + +void LinkPartnerHandleStatusAnimation(void) +{ + if (mplay_80342A4(gActiveBank) == 0) + { + move_anim_start_t2_for_situation( + gBattleBufferA[gActiveBank][1], + gBattleBufferA[gActiveBank][2] + | (gBattleBufferA[gActiveBank][3] << 8) + | (gBattleBufferA[gActiveBank][4] << 16) + | (gBattleBufferA[gActiveBank][5] << 24)); + gBattleBankFunc[gActiveBank] = sub_811E38C; + } +} + +void sub_8120324(void) +{ + LinkPartnerBufferExecCompleted(); +} + +void sub_8120330(void) +{ + LinkPartnerBufferExecCompleted(); +} + +void sub_812033C(void) +{ + LinkPartnerBufferExecCompleted(); +} + +void sub_8120348(void) +{ + LinkPartnerBufferExecCompleted(); +} + +void sub_8120354(void) +{ + LinkPartnerBufferExecCompleted(); +} + +void sub_8120360(void) +{ + LinkPartnerBufferExecCompleted(); +} + +void sub_812036C(void) +{ + LinkPartnerBufferExecCompleted(); +} + +void sub_8120378(void) +{ + LinkPartnerBufferExecCompleted(); +} + +void sub_8120384(void) +{ + LinkPartnerBufferExecCompleted(); +} + +void sub_8120390(void) +{ + gUnknown_020238C8.unk0_0 = 0; + LinkPartnerBufferExecCompleted(); +} + +void sub_81203AC(void) +{ + gUnknown_020238C8.unk0_0 = gBattleBufferA[gActiveBank][1]; + LinkPartnerBufferExecCompleted(); +} + +void sub_81203E4(void) +{ + gUnknown_020238C8.unk0_7 = 0; + LinkPartnerBufferExecCompleted(); +} + +void sub_81203FC(void) +{ + gUnknown_020238C8.unk0_7 ^= 1; + LinkPartnerBufferExecCompleted(); +} + +void LinkPartnerHandleHitAnimation(void) +{ + if (gSprites[gObjectBankIDs[gActiveBank]].invisible == TRUE) + LinkPartnerBufferExecCompleted(); + else + { + gDoingBattleAnim = 1; + gSprites[gObjectBankIDs[gActiveBank]].data1 = 0; + sub_8047858(gActiveBank); + gBattleBankFunc[gActiveBank] = bx_blink_t3; + } +} + +void sub_8120494(void) +{ + LinkPartnerBufferExecCompleted(); +} + +void LinkPartnerHandleEffectivenessSound(void) +{ + s8 pan; + + if (GetBankSide(gActiveBank) == 0) + pan = -64; + else + pan = 63; + PlaySE12WithPanning(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8), pan); + LinkPartnerBufferExecCompleted(); +} + +void sub_81204E4(void) +{ + PlayFanfare(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); + LinkPartnerBufferExecCompleted(); +} + +void LinkPartnerHandleFaintingCry(void) +{ + PlayCry3( + GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES), + -25, 5); + LinkPartnerBufferExecCompleted(); +} + +void dp01t_2E_3_battle_intro(void) +{ + sub_80E43C0(gBattleBufferA[gActiveBank][1]); + gUnknown_02024DE8 |= 1; + LinkPartnerBufferExecCompleted(); +} + +void sub_8120588(void) +{ + u8 r4; + u8 taskId; + + oamt_add_pos2_onto_pos1(&gSprites[gObjectBankIDs[gActiveBank]]); + gSprites[gObjectBankIDs[gActiveBank]].data0 = 50; + gSprites[gObjectBankIDs[gActiveBank]].data2 = -40; + gSprites[gObjectBankIDs[gActiveBank]].data4 = gSprites[gObjectBankIDs[gActiveBank]].pos1.y; + gSprites[gObjectBankIDs[gActiveBank]].callback = sub_8078B34; + gSprites[gObjectBankIDs[gActiveBank]].data5 = gActiveBank; + oamt_set_x3A_32(&gSprites[gObjectBankIDs[gActiveBank]], sub_8030E38); + StartSpriteAnim(&gSprites[gObjectBankIDs[gActiveBank]], 1); + r4 = AllocSpritePalette(0xD6F9); + LoadCompressedPalette( + gTrainerBackPicPaletteTable[gLinkPlayers[sub_803FC34(gActiveBank)].gender].data, + 0x100 + r4 * 16, 0x20); + gSprites[gObjectBankIDs[gActiveBank]].oam.paletteNum = r4; + taskId = CreateTask(sub_812071C, 5); + gTasks[taskId].data[0] = gActiveBank; + if (ewram17810[gActiveBank].unk0_0) + gTasks[gUnknown_02024E68[gActiveBank]].func = sub_8044CA0; + ewram17840.unk9_0 = 1; + gBattleBankFunc[gActiveBank] = nullsub_74; +} + +void sub_812071C(u8 taskId) +{ + u8 r9; + + if (gTasks[taskId].data[1] < 24) + { + gTasks[taskId].data[1]++; + return; + } + + r9 = gActiveBank; + gActiveBank = gTasks[taskId].data[0]; + if (!IsDoubleBattle() || (gBattleTypeFlags & BATTLE_TYPE_MULTI)) + { + gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank]; + sub_811F864(gActiveBank, 0); + } + else + { + gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank]; + sub_811F864(gActiveBank, 0); + gActiveBank ^= 2; + gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank]; + sub_80318FC(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); + sub_811F864(gActiveBank, 0); + gActiveBank ^= 2; + } + gBattleBankFunc[gActiveBank] = sub_811DCA0; + gActiveBank = r9; + DestroyTask(taskId); +} + +void dp01t_30_3_80EB11C(void) +{ + if (gBattleBufferA[gActiveBank][1] != 0 && GetBankSide(gActiveBank) == 0) + { + LinkPartnerBufferExecCompleted(); + return; + } + + ewram17810[gActiveBank].unk0_0 = 1; + gUnknown_02024E68[gActiveBank] = sub_8044804( + gActiveBank, + (struct BattleInterfaceStruct2 *)&gBattleBufferA[gActiveBank][4], + gBattleBufferA[gActiveBank][1], + gBattleBufferA[gActiveBank][2]); + ewram17810[gActiveBank].unk5 = 0; + if (gBattleBufferA[gActiveBank][2] != 0) + ewram17810[gActiveBank].unk5 = 0x5D; + gBattleBankFunc[gActiveBank] = sub_81208E0; +} + +void sub_81208E0(void) +{ + if (ewram17810[gActiveBank].unk5++ >= 93) + { + ewram17810[gActiveBank].unk5 = 0; + LinkPartnerBufferExecCompleted(); + } +} + +void sub_8120920(void) +{ + if (ewram17810[gActiveBank].unk0_0) + gTasks[gUnknown_02024E68[gActiveBank]].func = sub_8044CA0; + LinkPartnerBufferExecCompleted(); +} + +void sub_812096C(void) +{ + LinkPartnerBufferExecCompleted(); +} + +void sub_8120978(void) +{ + if (sub_8078874(gActiveBank) != 0) + { + gSprites[gObjectBankIDs[gActiveBank]].invisible = gBattleBufferA[gActiveBank][1]; + sub_8031F88(gActiveBank); + } + LinkPartnerBufferExecCompleted(); +} + +void sub_81209D8(void) +{ + if (mplay_80342A4(gActiveBank) == 0) + { + u8 r3 = gBattleBufferA[gActiveBank][1]; + u16 r4 = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8); + u8 var = gActiveBank; + + if (move_anim_start_t3(var, var, var, r3, r4) != 0) + LinkPartnerBufferExecCompleted(); + else + gBattleBankFunc[gActiveBank] = sub_811E3B8; + } +} + +void sub_8120A40(void) +{ + LinkPartnerBufferExecCompleted(); +} + +void sub_8120A4C(void) +{ + LinkPartnerBufferExecCompleted(); +} + +void sub_8120A58(void) +{ + gBattleOutcome = gBattleBufferA[gActiveBank][1]; + FadeOutMapMusic(5); + BeginFastPaletteFade(3); + LinkPartnerBufferExecCompleted(); + gBattleBankFunc[gActiveBank] = sub_811E29C; +} + +void nullsub_75(void) +{ } diff --git a/src/battle_ai.c b/src/battle_ai.c index f10c6a013..fabe0b61d 100644 --- a/src/battle_ai.c +++ b/src/battle_ai.c @@ -1,7 +1,6 @@ #include "global.h" #include "battle_ai.h" #include "abilities.h" -#include "asm.h" #include "battle.h" #include "battle_move_effects.h" #include "data2.h" @@ -9,35 +8,31 @@ #include "moves.h" #include "pokemon.h" #include "rng.h" +#include "rom_8077ABC.h" #include "species.h" - -extern void sub_801CAF8(u8, u8); - -extern void move_effectiveness_something(u16, u8, u8); +#include "util.h" extern u16 gBattleTypeFlags; extern u16 gBattleWeather; -extern u8 gUnknown_02024A60; -extern u8 gUnknown_02024A6A[][2]; -extern u16 gUnknown_02024BE6; +extern u8 gActiveBank; +extern u8 gBattlePartyID[][2]; +extern u16 gCurrentMove; extern int gBattleMoveDamage; -extern u8 gPlayerMonIndex; -extern u8 gEnemyMonIndex; -extern u8 gUnknown_02024C0C; +extern u8 gBankAttacker; +extern u8 gBankTarget; +extern u8 gAbsentBankFlags; extern u8 gBattleMoveFlags; -extern u16 gUnknown_02024DEC; -extern u16 gUnknown_02024C34[]; +extern u16 gDynamicBasePower; +extern u16 gLastUsedMove[]; extern u32 gUnknown_02024ACC[]; -extern u32 gUnknown_02024C98[]; -extern u16 gUnknown_02024C7A[]; +extern u32 gStatuses3[]; +extern u16 gSideAffecting[]; extern struct BattlePokemon gBattleMons[]; extern struct BattlePokemon gUnknown_02024A8C[]; -extern u8 gUnknown_030042E0[]; +extern u8 gBattleResults[]; extern u8 gCritMultiplier; extern u16 gTrainerBattleOpponent; -extern u32 gBitTable[]; extern u8 *BattleAIs[]; -extern struct BaseStats gBaseStats[]; /* gAIScriptPtr is a pointer to the next battle AI cmd command to read. @@ -269,7 +264,7 @@ void BattleAI_HandleItemUseBeforeAISetup(void) s32 i; u8 *data = (u8 *)UNK_2016A00_STRUCT; - for (i = 0; (u32)i < sizeof(struct UnknownStruct1); i++) + for (i = 0; (u32)i < sizeof(struct UnkBattleStruct1); i++) data[i] = 0; if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER) @@ -301,7 +296,7 @@ void BattleAI_SetupAIData(void) for (i = 0; i < MAX_MON_MOVES; i++) AI_THINKING_STRUCT->score[i] = 100; - r7 = sub_8015A98(gUnknown_02024A60, 0, 0xFF); + r7 = sub_8015A98(gActiveBank, 0, 0xFF); // probably sets up the moves to consider and ignores non-valid moves such as NO_MOVE or glitch moves. for (i = 0; i < MAX_MON_MOVES; i++) @@ -314,17 +309,17 @@ void BattleAI_SetupAIData(void) // clear AI stack. AI_STACK->size = 0; - gPlayerMonIndex = gUnknown_02024A60; + gBankAttacker = gActiveBank; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { - gEnemyMonIndex = Random() & 2; // just pick somebody to target. + gBankTarget = Random() & 2; // just pick somebody to target. - if (gUnknown_02024C0C & gBitTable[gEnemyMonIndex]) - gEnemyMonIndex ^= 2; + if (gAbsentBankFlags & gBitTable[gBankTarget]) + gBankTarget ^= 2; } else - gEnemyMonIndex = gUnknown_02024A60 ^ 1; + gBankTarget = gActiveBank ^ 1; // special AI flag cases. if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) @@ -399,13 +394,13 @@ void BattleAI_DoAIProcessing(void) break; case AIState_SettingUp: gAIScriptPtr = BattleAIs[AI_THINKING_STRUCT->aiLogicId]; // set the AI ptr. - if (gBattleMons[gPlayerMonIndex].pp[AI_THINKING_STRUCT->movesetIndex] == 0) + if (gBattleMons[gBankAttacker].pp[AI_THINKING_STRUCT->movesetIndex] == 0) { AI_THINKING_STRUCT->moveConsidered = MOVE_NONE; // don't consider a move you have 0 PP for, idiot. } else { - AI_THINKING_STRUCT->moveConsidered = gBattleMons[gPlayerMonIndex].moves[AI_THINKING_STRUCT->movesetIndex]; + AI_THINKING_STRUCT->moveConsidered = gBattleMons[gBankAttacker].moves[AI_THINKING_STRUCT->movesetIndex]; } AI_THINKING_STRUCT->aiState++; break; @@ -438,9 +433,9 @@ void sub_810745C(void) for (i = 0; i < 8; i++) { - if (UNK_2016A00_STRUCT->movesUsed[gEnemyMonIndex >> 1][i] == 0) + if (UNK_2016A00_STRUCT->movesUsed[gBankTarget >> 1][i] == 0) { - UNK_2016A00_STRUCT->movesUsed[gEnemyMonIndex >> 1][i] = gUnknown_02024C34[gEnemyMonIndex]; + UNK_2016A00_STRUCT->movesUsed[gBankTarget >> 1][i] = gLastUsedMove[gBankTarget]; return; } } @@ -456,14 +451,14 @@ void unref_sub_81074A0(u8 a) void sub_81074C4(u8 a, u8 b) { - if (battle_side_get_owner(a) == 0) - UNK_2016A00_STRUCT->unk20[battle_get_per_side_status(a) & 1] = b; + if (GetBankSide(a) == 0) + UNK_2016A00_STRUCT->unk20[GetBankIdentity(a) & 1] = b; } void sub_81074F8(u8 a, u8 b) { - if (battle_side_get_owner(a) == 0) - UNK_2016A00_STRUCT->unk22[battle_get_per_side_status(a) & 1] = b; + if (GetBankSide(a) == 0) + UNK_2016A00_STRUCT->unk22[GetBankIdentity(a) & 1] = b; } static void BattleAICmd_if_random_less_than(void) @@ -513,9 +508,9 @@ static void BattleAICmd_if_hp_less_than(void) u16 index; if (gAIScriptPtr[1] == USER) - index = gPlayerMonIndex; + index = gBankAttacker; else - index = gEnemyMonIndex; + index = gBankTarget; if ((u32)(100 * gBattleMons[index].hp / gBattleMons[index].maxHP) < gAIScriptPtr[2]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); @@ -528,9 +523,9 @@ static void BattleAICmd_if_hp_more_than(void) u16 index; if (gAIScriptPtr[1] == USER) - index = gPlayerMonIndex; + index = gBankAttacker; else - index = gEnemyMonIndex; + index = gBankTarget; if ((u32)(100 * gBattleMons[index].hp / gBattleMons[index].maxHP) > gAIScriptPtr[2]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); @@ -543,9 +538,9 @@ static void BattleAICmd_if_hp_equal(void) u16 index; if (gAIScriptPtr[1] == USER) - index = gPlayerMonIndex; + index = gBankAttacker; else - index = gEnemyMonIndex; + index = gBankTarget; if ((u32)(100 * gBattleMons[index].hp / gBattleMons[index].maxHP) == gAIScriptPtr[2]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); @@ -558,9 +553,9 @@ static void BattleAICmd_if_hp_not_equal(void) u16 index; if (gAIScriptPtr[1] == USER) - index = gPlayerMonIndex; + index = gBankAttacker; else - index = gEnemyMonIndex; + index = gBankTarget; if ((u32)(100 * gBattleMons[index].hp / gBattleMons[index].maxHP) != gAIScriptPtr[2]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); @@ -574,9 +569,9 @@ static void BattleAICmd_if_status(void) u32 arg; if (gAIScriptPtr[1] == USER) - index = gPlayerMonIndex; + index = gBankAttacker; else - index = gEnemyMonIndex; + index = gBankTarget; arg = AIScriptRead32(gAIScriptPtr + 2); @@ -592,9 +587,9 @@ static void BattleAICmd_if_not_status(void) u32 arg; if (gAIScriptPtr[1] == USER) - index = gPlayerMonIndex; + index = gBankAttacker; else - index = gEnemyMonIndex; + index = gBankTarget; arg = AIScriptRead32(gAIScriptPtr + 2); @@ -610,9 +605,9 @@ static void BattleAICmd_if_status2(void) u32 arg; if (gAIScriptPtr[1] == USER) - index = gPlayerMonIndex; + index = gBankAttacker; else - index = gEnemyMonIndex; + index = gBankTarget; arg = AIScriptRead32(gAIScriptPtr + 2); @@ -628,9 +623,9 @@ static void BattleAICmd_if_not_status2(void) u32 arg; if (gAIScriptPtr[1] == USER) - index = gPlayerMonIndex; + index = gBankAttacker; else - index = gEnemyMonIndex; + index = gBankTarget; arg = AIScriptRead32(gAIScriptPtr + 2); @@ -646,13 +641,13 @@ static void BattleAICmd_if_status3(void) u32 arg; if (gAIScriptPtr[1] == USER) - index = gPlayerMonIndex; + index = gBankAttacker; else - index = gEnemyMonIndex; + index = gBankTarget; arg = AIScriptRead32(gAIScriptPtr + 2); - if ((gUnknown_02024C98[index] & arg) != 0) + if ((gStatuses3[index] & arg) != 0) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6); else gAIScriptPtr += 10; @@ -664,13 +659,13 @@ static void BattleAICmd_if_not_status3(void) u32 arg; if (gAIScriptPtr[1] == USER) - index = gPlayerMonIndex; + index = gBankAttacker; else - index = gEnemyMonIndex; + index = gBankTarget; arg = AIScriptRead32(gAIScriptPtr + 2); - if ((gUnknown_02024C98[index] & arg) == 0) + if ((gStatuses3[index] & arg) == 0) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6); else gAIScriptPtr += 10; @@ -682,14 +677,14 @@ static void BattleAICmd_if_status4(void) u32 arg1, arg2; if (gAIScriptPtr[1] == USER) - index = gPlayerMonIndex; + index = gBankAttacker; else - index = gEnemyMonIndex; + index = gBankTarget; - arg1 = battle_get_per_side_status(index) & 1; + arg1 = GetBankIdentity(index) & 1; arg2 = AIScriptRead32(gAIScriptPtr + 2); - if ((gUnknown_02024C7A[arg1] & arg2) != 0) + if ((gSideAffecting[arg1] & arg2) != 0) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6); else gAIScriptPtr += 10; @@ -701,14 +696,14 @@ static void BattleAICmd_if_not_status4(void) u32 arg1, arg2; if (gAIScriptPtr[1] == USER) - index = gPlayerMonIndex; + index = gBankAttacker; else - index = gEnemyMonIndex; + index = gBankTarget; - arg1 = battle_get_per_side_status(index) & 1; + arg1 = GetBankIdentity(index) & 1; arg2 = AIScriptRead32(gAIScriptPtr + 2); - if ((gUnknown_02024C7A[arg1] & arg2) == 0) + if ((gSideAffecting[arg1] & arg2) == 0) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6); else gAIScriptPtr += 10; @@ -876,8 +871,8 @@ static void BattleAICmd_if_user_can_damage(void) for (i = 0; i < MAX_MON_MOVES; i++) { - if (gBattleMons[gPlayerMonIndex].moves[i] != 0 - && gBattleMoves[gBattleMons[gPlayerMonIndex].moves[i]].power != 0) + if (gBattleMons[gBankAttacker].moves[i] != 0 + && gBattleMoves[gBattleMons[gBankAttacker].moves[i]].power != 0) break; } if (i == MAX_MON_MOVES) @@ -892,8 +887,8 @@ static void BattleAICmd_if_user_cant_damage(void) for (i = 0; i < MAX_MON_MOVES; i++) { - if (gBattleMons[gPlayerMonIndex].moves[i] != 0 - && gBattleMoves[gBattleMons[gPlayerMonIndex].moves[i]].power != 0) + if (gBattleMons[gBankAttacker].moves[i] != 0 + && gBattleMoves[gBattleMons[gBankAttacker].moves[i]].power != 0) break; } if (i != MAX_MON_MOVES) @@ -904,7 +899,7 @@ static void BattleAICmd_if_user_cant_damage(void) static void BattleAICmd_get_turn_count(void) { - AI_THINKING_STRUCT->funcResult = gUnknown_030042E0[19]; + AI_THINKING_STRUCT->funcResult = gBattleResults[19]; gAIScriptPtr += 1; } @@ -913,16 +908,16 @@ static void BattleAICmd_get_type(void) switch (gAIScriptPtr[1]) { case 1: // player primary type - AI_THINKING_STRUCT->funcResult = gBattleMons[gPlayerMonIndex].type1; + AI_THINKING_STRUCT->funcResult = gBattleMons[gBankAttacker].type1; break; case 0: // enemy primary type - AI_THINKING_STRUCT->funcResult = gBattleMons[gEnemyMonIndex].type1; + AI_THINKING_STRUCT->funcResult = gBattleMons[gBankTarget].type1; break; case 3: // player secondary type - AI_THINKING_STRUCT->funcResult = gBattleMons[gPlayerMonIndex].type2; + AI_THINKING_STRUCT->funcResult = gBattleMons[gBankAttacker].type2; break; case 2: // enemy secondary type - AI_THINKING_STRUCT->funcResult = gBattleMons[gEnemyMonIndex].type2; + AI_THINKING_STRUCT->funcResult = gBattleMons[gBankTarget].type2; break; case 4: // type of move being pointed to AI_THINKING_STRUCT->funcResult = gBattleMoves[AI_THINKING_STRUCT->moveConsidered].type; @@ -950,7 +945,7 @@ static void BattleAICmd_is_most_powerful_move(void) if (gBattleMoves[AI_THINKING_STRUCT->moveConsidered].power > 1 && sDiscouragedPowerfulMoveEffects[i] == 0xFFFF) { - gUnknown_02024DEC = 0; + gDynamicBasePower = 0; unk_2000000[0x1601C] = 0; // why is this a manual array? unk_2000000[0x1601F] = 1; gBattleMoveFlags = 0; @@ -960,18 +955,18 @@ static void BattleAICmd_is_most_powerful_move(void) { for (j = 0; sDiscouragedPowerfulMoveEffects[j] != 0xFFFF; j++) { // _08108276 - if (gBattleMoves[gBattleMons[gPlayerMonIndex].moves[i]].effect == sDiscouragedPowerfulMoveEffects[j]) + if (gBattleMoves[gBattleMons[gBankAttacker].moves[i]].effect == sDiscouragedPowerfulMoveEffects[j]) break; } // _081082BA - if (gBattleMons[gPlayerMonIndex].moves[i] + if (gBattleMons[gBankAttacker].moves[i] && sDiscouragedPowerfulMoveEffects[j] == 0xFFFF - && gBattleMoves[gBattleMons[gPlayerMonIndex].moves[i]].power > 1) + && gBattleMoves[gBattleMons[gBankAttacker].moves[i]].power > 1) { - gUnknown_02024BE6 = gBattleMons[gPlayerMonIndex].moves[i]; - sub_801CAF8(gPlayerMonIndex, gEnemyMonIndex); - move_effectiveness_something(gUnknown_02024BE6, gPlayerMonIndex, gEnemyMonIndex); + gCurrentMove = gBattleMons[gBankAttacker].moves[i]; + sub_801CAF8(gBankAttacker, gBankTarget); + move_effectiveness_something(gCurrentMove, gBankAttacker, gBankTarget); damages[i] = (gBattleMoveDamage * AI_THINKING_STRUCT->simulatedRNG[i]) / 100; if (damages[i] == 0) // moves always do at least 1 damage. @@ -1054,7 +1049,7 @@ _08108240:\n\ beq _08108250\n\ b _081083B2\n\ _08108250:\n\ - ldr r0, _08108338 @ =gUnknown_02024DEC\n\ + ldr r0, _08108338 @ =gDynamicBasePower\n\ movs r1, 0\n\ strh r1, [r0]\n\ ldr r2, _0810833C @ =0xfffff81c\n\ @@ -1077,7 +1072,7 @@ _08108276:\n\ movs r3, 0\n\ ldr r5, _08108348 @ =gBattleMons\n\ lsls r4, r6, 1\n\ - ldr r7, _0810834C @ =gPlayerMonIndex\n\ + ldr r7, _0810834C @ =gBankAttacker\n\ lsls r1, r6, 2\n\ mov r8, r1\n\ adds r2, r6, 0x1\n\ @@ -1135,10 +1130,10 @@ _081082BA:\n\ ldrb r0, [r1, 0x1]\n\ cmp r0, 0x1\n\ bls _0810835C\n\ - ldr r5, _08108350 @ =gUnknown_02024BE6\n\ + ldr r5, _08108350 @ =gCurrentMove\n\ strh r2, [r5]\n\ ldrb r0, [r7]\n\ - ldr r4, _08108354 @ =gEnemyMonIndex\n\ + ldr r4, _08108354 @ =gBankTarget\n\ ldrb r1, [r4]\n\ bl sub_801CAF8\n\ ldrh r0, [r5]\n\ @@ -1167,14 +1162,14 @@ _08108328: .4byte sDiscouragedPowerfulMoveEffects\n\ _0810832C: .4byte 0x0000ffff\n\ _08108330: .4byte gBattleMoves\n\ _08108334: .4byte 0x02016800\n\ -_08108338: .4byte gUnknown_02024DEC\n\ +_08108338: .4byte gDynamicBasePower\n\ _0810833C: .4byte 0xfffff81c\n\ _08108340: .4byte gBattleMoveFlags\n\ _08108344: .4byte gCritMultiplier\n\ _08108348: .4byte gBattleMons\n\ -_0810834C: .4byte gPlayerMonIndex\n\ -_08108350: .4byte gUnknown_02024BE6\n\ -_08108354: .4byte gEnemyMonIndex\n\ +_0810834C: .4byte gBankAttacker\n\ +_08108350: .4byte gCurrentMove\n\ +_08108354: .4byte gBankTarget\n\ _08108358: .4byte gBattleMoveDamage\n\ _0810835C:\n\ mov r1, sp\n\ @@ -1248,9 +1243,9 @@ _081083D0: .4byte gAIScriptPtr\n\ static void BattleAICmd_get_move(void) { if (gAIScriptPtr[1] == USER) - AI_THINKING_STRUCT->funcResult = gUnknown_02024C34[gPlayerMonIndex]; + AI_THINKING_STRUCT->funcResult = gLastUsedMove[gBankAttacker]; else - AI_THINKING_STRUCT->funcResult = gUnknown_02024C34[gEnemyMonIndex]; + AI_THINKING_STRUCT->funcResult = gLastUsedMove[gBankTarget]; gAIScriptPtr += 2; } @@ -1273,7 +1268,7 @@ static void BattleAICmd_if_arg_not_equal(void) static void BattleAICmd_if_would_go_first(void) { - if (b_first_side(gPlayerMonIndex, gEnemyMonIndex, 1) == gAIScriptPtr[1]) + if (b_first_side(gBankAttacker, gBankTarget, 1) == gAIScriptPtr[1]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); else gAIScriptPtr += 6; @@ -1281,7 +1276,7 @@ static void BattleAICmd_if_would_go_first(void) static void BattleAICmd_if_would_not_go_first(void) { - if (b_first_side(gPlayerMonIndex, gEnemyMonIndex, 1) != gAIScriptPtr[1]) + if (b_first_side(gBankAttacker, gBankTarget, 1) != gAIScriptPtr[1]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); else gAIScriptPtr += 6; @@ -1305,11 +1300,11 @@ static void BattleAICmd_count_alive_pokemon(void) AI_THINKING_STRUCT->funcResult = 0; if (gAIScriptPtr[1] == USER) - index = gPlayerMonIndex; + index = gBankAttacker; else - index = gEnemyMonIndex; + index = gBankTarget; - if (battle_side_get_owner(index) == 0) + if (GetBankSide(index) == 0) party = gPlayerParty; else party = gEnemyParty; @@ -1317,14 +1312,14 @@ static void BattleAICmd_count_alive_pokemon(void) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { u32 status; - var = gUnknown_02024A6A[index][0]; - status = battle_get_per_side_status(index) ^ 2; - var2 = gUnknown_02024A6A[battle_get_side_with_given_state(status)][0]; + var = gBattlePartyID[index][0]; + status = GetBankIdentity(index) ^ 2; + var2 = gBattlePartyID[GetBankByPlayerAI(status)][0]; } else { - var = gUnknown_02024A6A[index][0]; - var2 = gUnknown_02024A6A[index][0]; + var = gBattlePartyID[index][0]; + var2 = gBattlePartyID[index][0]; } for (i = 0; i < 6; i++) @@ -1358,13 +1353,13 @@ static void BattleAICmd_get_ability(void) u8 index; if (gAIScriptPtr[1] == USER) - index = gPlayerMonIndex; + index = gBankAttacker; else - index = gEnemyMonIndex; + index = gBankTarget; - if (battle_side_get_owner(index) == TARGET) + if (GetBankSide(index) == TARGET) { - u16 unk = battle_get_per_side_status(index) & 1; + u16 unk = GetBankIdentity(index) & 1; if (UNK_2016A00_STRUCT->unk20[unk] != 0) { @@ -1419,7 +1414,7 @@ static void BattleAICmd_get_highest_possible_damage(void) { s32 i; - gUnknown_02024DEC = 0; + gDynamicBasePower = 0; BATTLE_STRUCT->unk.unk1 = 0; BATTLE_STRUCT->unk.unk4 = 1; gBattleMoveFlags = 0; @@ -1429,11 +1424,11 @@ static void BattleAICmd_get_highest_possible_damage(void) for (i = 0; i < MAX_MON_MOVES; i++) { gBattleMoveDamage = 40; - gUnknown_02024BE6 = gBattleMons[gPlayerMonIndex].moves[i]; + gCurrentMove = gBattleMons[gBankAttacker].moves[i]; - if (gUnknown_02024BE6) + if (gCurrentMove) { - move_effectiveness_something(gUnknown_02024BE6, gPlayerMonIndex, gEnemyMonIndex); + move_effectiveness_something(gCurrentMove, gBankAttacker, gBankTarget); // reduce by 1/3. if (gBattleMoveDamage == 120) @@ -1459,16 +1454,16 @@ static void BattleAICmd_if_damage_bonus(void) { u8 damageVar; - gUnknown_02024DEC = 0; + gDynamicBasePower = 0; BATTLE_STRUCT->unk.unk1 = 0; BATTLE_STRUCT->unk.unk4 = 1; gBattleMoveFlags = 0; gCritMultiplier = 1; gBattleMoveDamage = 40; - gUnknown_02024BE6 = AI_THINKING_STRUCT->moveConsidered; + gCurrentMove = AI_THINKING_STRUCT->moveConsidered; - move_effectiveness_something(gUnknown_02024BE6, gPlayerMonIndex, gEnemyMonIndex); + move_effectiveness_something(gCurrentMove, gBankAttacker, gBankTarget); if (gBattleMoveDamage == 120) gBattleMoveDamage = 80; @@ -1603,9 +1598,9 @@ static void BattleAICmd_if_stat_level_less_than(void) u32 party; if (gAIScriptPtr[1] == USER) - party = gPlayerMonIndex; + party = gBankAttacker; else - party = gEnemyMonIndex; + party = gBankTarget; if (gBattleMons[party].statStages[gAIScriptPtr[2]] < gAIScriptPtr[3]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4); @@ -1618,9 +1613,9 @@ static void BattleAICmd_if_stat_level_more_than(void) u32 party; if (gAIScriptPtr[1] == USER) - party = gPlayerMonIndex; + party = gBankAttacker; else - party = gEnemyMonIndex; + party = gBankTarget; if (gBattleMons[party].statStages[gAIScriptPtr[2]] > gAIScriptPtr[3]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4); @@ -1633,9 +1628,9 @@ static void BattleAICmd_if_stat_level_equal(void) u32 party; if (gAIScriptPtr[1] == USER) - party = gPlayerMonIndex; + party = gBankAttacker; else - party = gEnemyMonIndex; + party = gBankTarget; if (gBattleMons[party].statStages[gAIScriptPtr[2]] == gAIScriptPtr[3]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4); @@ -1648,9 +1643,9 @@ static void BattleAICmd_if_stat_level_not_equal(void) u32 party; if (gAIScriptPtr[1] == USER) - party = gPlayerMonIndex; + party = gBankAttacker; else - party = gEnemyMonIndex; + party = gBankTarget; if (gBattleMons[party].statStages[gAIScriptPtr[2]] != gAIScriptPtr[3]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4); @@ -1666,14 +1661,14 @@ static void BattleAICmd_if_can_faint(void) return; } - gUnknown_02024DEC = 0; + gDynamicBasePower = 0; BATTLE_STRUCT->unk.unk1 = 0; BATTLE_STRUCT->unk.unk4 = 1; gBattleMoveFlags = 0; gCritMultiplier = 1; - gUnknown_02024BE6 = AI_THINKING_STRUCT->moveConsidered; - sub_801CAF8(gPlayerMonIndex, gEnemyMonIndex); - move_effectiveness_something(gUnknown_02024BE6, gPlayerMonIndex, gEnemyMonIndex); + gCurrentMove = AI_THINKING_STRUCT->moveConsidered; + sub_801CAF8(gBankAttacker, gBankTarget); + move_effectiveness_something(gCurrentMove, gBankAttacker, gBankTarget); gBattleMoveDamage = gBattleMoveDamage * AI_THINKING_STRUCT->simulatedRNG[AI_THINKING_STRUCT->movesetIndex] / 100; @@ -1681,7 +1676,7 @@ static void BattleAICmd_if_can_faint(void) if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; - if (gBattleMons[gEnemyMonIndex].hp <= gBattleMoveDamage) + if (gBattleMons[gBankTarget].hp <= gBattleMoveDamage) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); else gAIScriptPtr += 5; @@ -1695,20 +1690,20 @@ static void BattleAICmd_if_cant_faint(void) return; } - gUnknown_02024DEC = 0; + gDynamicBasePower = 0; BATTLE_STRUCT->unk.unk1 = 0; BATTLE_STRUCT->unk.unk4 = 1; gBattleMoveFlags = 0; gCritMultiplier = 1; - gUnknown_02024BE6 = AI_THINKING_STRUCT->moveConsidered; - sub_801CAF8(gPlayerMonIndex, gEnemyMonIndex); - move_effectiveness_something(gUnknown_02024BE6, gPlayerMonIndex, gEnemyMonIndex); + gCurrentMove = AI_THINKING_STRUCT->moveConsidered; + sub_801CAF8(gBankAttacker, gBankTarget); + move_effectiveness_something(gCurrentMove, gBankAttacker, gBankTarget); gBattleMoveDamage = gBattleMoveDamage * AI_THINKING_STRUCT->simulatedRNG[AI_THINKING_STRUCT->movesetIndex] / 100; // this macro is missing the damage 0 = 1 assumption. - if (gBattleMons[gEnemyMonIndex].hp > gBattleMoveDamage) + if (gBattleMons[gBankTarget].hp > gBattleMoveDamage) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); else gAIScriptPtr += 5; @@ -1725,7 +1720,7 @@ static void BattleAICmd_if_has_move(void) case 3: for (i = 0; i < MAX_MON_MOVES; i++) { - if (gBattleMons[gPlayerMonIndex].moves[i] == *temp_ptr) + if (gBattleMons[gBankAttacker].moves[i] == *temp_ptr) break; } if (i == MAX_MON_MOVES) @@ -1737,7 +1732,7 @@ static void BattleAICmd_if_has_move(void) case 2: for (i = 0; i < 8; i++) { - if (UNK_2016A00_STRUCT->movesUsed[gEnemyMonIndex >> 1][i] == *temp_ptr) + if (UNK_2016A00_STRUCT->movesUsed[gBankTarget >> 1][i] == *temp_ptr) break; } if (i == 8) @@ -1759,7 +1754,7 @@ static void BattleAICmd_if_dont_have_move(void) case 3: for (i = 0; i < MAX_MON_MOVES; i++) { - if (gBattleMons[gPlayerMonIndex].moves[i] == *temp_ptr) + if (gBattleMons[gBankAttacker].moves[i] == *temp_ptr) break; } if (i != MAX_MON_MOVES) @@ -1771,7 +1766,7 @@ static void BattleAICmd_if_dont_have_move(void) case 2: for (i = 0; i < 8; i++) { - if (UNK_2016A00_STRUCT->movesUsed[gEnemyMonIndex >> 1][i] == *temp_ptr) + if (UNK_2016A00_STRUCT->movesUsed[gBankTarget >> 1][i] == *temp_ptr) break; } if (i != 8) @@ -1792,7 +1787,7 @@ static void BattleAICmd_if_move_effect(void) case 3: for (i = 0; i < MAX_MON_MOVES; i++) { - if (gBattleMons[gPlayerMonIndex].moves[i] != 0 && gBattleMoves[gBattleMons[gPlayerMonIndex].moves[i]].effect == gAIScriptPtr[2]) + if (gBattleMons[gBankAttacker].moves[i] != 0 && gBattleMoves[gBattleMons[gBankAttacker].moves[i]].effect == gAIScriptPtr[2]) break; } if (i != MAX_MON_MOVES) @@ -1804,7 +1799,7 @@ static void BattleAICmd_if_move_effect(void) case 2: for (i = 0; i < 8; i++) { - if (gBattleMons[gPlayerMonIndex].moves[i] != 0 && gBattleMoves[UNK_2016A00_STRUCT->movesUsed[gEnemyMonIndex >> 1][i]].effect == gAIScriptPtr[2]) + if (gBattleMons[gBankAttacker].moves[i] != 0 && gBattleMoves[UNK_2016A00_STRUCT->movesUsed[gBankTarget >> 1][i]].effect == gAIScriptPtr[2]) break; } gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); @@ -1821,7 +1816,7 @@ static void BattleAICmd_if_not_move_effect(void) case 3: for (i = 0; i < MAX_MON_MOVES; i++) { - if (gBattleMons[gPlayerMonIndex].moves[i] != 0 && gBattleMoves[gBattleMons[gPlayerMonIndex].moves[i]].effect == gAIScriptPtr[2]) + if (gBattleMons[gBankAttacker].moves[i] != 0 && gBattleMoves[gBattleMons[gBankAttacker].moves[i]].effect == gAIScriptPtr[2]) break; } if (i != MAX_MON_MOVES) @@ -1833,7 +1828,7 @@ static void BattleAICmd_if_not_move_effect(void) case 2: for (i = 0; i < 8; i++) { - if (UNK_2016A00_STRUCT->movesUsed[gEnemyMonIndex >> 1][i] != 0 && gBattleMoves[UNK_2016A00_STRUCT->movesUsed[gEnemyMonIndex >> 1][i]].effect == gAIScriptPtr[2]) + if (UNK_2016A00_STRUCT->movesUsed[gBankTarget >> 1][i] != 0 && gBattleMoves[UNK_2016A00_STRUCT->movesUsed[gBankTarget >> 1][i]].effect == gAIScriptPtr[2]) break; } gAIScriptPtr += 7; @@ -1845,13 +1840,13 @@ static void BattleAICmd_if_last_move_did_damage(void) u8 index; if (gAIScriptPtr[1] == USER) - index = gPlayerMonIndex; + index = gBankAttacker; else - index = gEnemyMonIndex; + index = gBankTarget; if (gAIScriptPtr[2] == 0) { - if (gUnknown_02024CA8[index].unk4 == 0) + if (gDisableStructs[index].unk4 == 0) { gAIScriptPtr += 7; return; @@ -1864,7 +1859,7 @@ static void BattleAICmd_if_last_move_did_damage(void) gAIScriptPtr += 7; return; } - else if (gUnknown_02024CA8[index].unk6 != 0) + else if (gDisableStructs[index].unk6 != 0) { gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); return; @@ -1877,7 +1872,7 @@ static void BattleAICmd_if_encored(void) switch (gAIScriptPtr[1]) { case 0: // _08109348 - if (gUnknown_02024CA8[gUnknown_02024A60].unk4 == AI_THINKING_STRUCT->moveConsidered) + if (gDisableStructs[gActiveBank].unk4 == AI_THINKING_STRUCT->moveConsidered) { gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); return; @@ -1885,7 +1880,7 @@ static void BattleAICmd_if_encored(void) gAIScriptPtr += 6; return; case 1: // _08109370 - if (gUnknown_02024CA8[gUnknown_02024A60].unk6 == AI_THINKING_STRUCT->moveConsidered) + if (gDisableStructs[gActiveBank].unk6 == AI_THINKING_STRUCT->moveConsidered) { gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); return; @@ -1924,13 +1919,13 @@ static void BattleAICmd_get_hold_effect(void) u16 status; if (gAIScriptPtr[1] == USER) - index = gPlayerMonIndex; + index = gBankAttacker; else - index = gEnemyMonIndex; + index = gBankTarget; - if (battle_side_get_owner(index) == 0) + if (GetBankSide(index) == 0) { - status = (battle_get_per_side_status(index) & 1); + status = (GetBankIdentity(index) & 1); AI_THINKING_STRUCT->funcResult = UNK_2016A00_STRUCT->unk22[status]; } else @@ -1944,9 +1939,9 @@ static void BattleAICmd_get_gender(void) u8 index; if (gAIScriptPtr[1] == USER) - index = gPlayerMonIndex; + index = gBankAttacker; else - index = gEnemyMonIndex; + index = gBankTarget; AI_THINKING_STRUCT->funcResult = GetGenderFromSpeciesAndPersonality(gBattleMons[index].species, gBattleMons[index].personality); @@ -1958,11 +1953,11 @@ static void BattleAICmd_is_first_turn(void) u8 index; if (gAIScriptPtr[1] == USER) - index = gPlayerMonIndex; + index = gBankAttacker; else - index = gEnemyMonIndex; + index = gBankTarget; - AI_THINKING_STRUCT->funcResult = gUnknown_02024CA8[index].unk16; + AI_THINKING_STRUCT->funcResult = gDisableStructs[index].unk16; gAIScriptPtr += 2; } @@ -1972,11 +1967,11 @@ static void BattleAICmd_get_stockpile_count(void) u8 index; if (gAIScriptPtr[1] == USER) - index = gPlayerMonIndex; + index = gBankAttacker; else - index = gEnemyMonIndex; + index = gBankTarget; - AI_THINKING_STRUCT->funcResult = gUnknown_02024CA8[index].unk9; + AI_THINKING_STRUCT->funcResult = gDisableStructs[index].unk9; gAIScriptPtr += 2; } @@ -1993,12 +1988,12 @@ static void BattleAICmd_get_item(void) u8 index; if (gAIScriptPtr[1] == USER) - index = gPlayerMonIndex; + index = gBankAttacker; else - index = gEnemyMonIndex; + index = gBankTarget; // this hack and a half matches. whatever. i dont care. someone else fix this mess later. PS: still cant fix this. - AI_THINKING_STRUCT->funcResult = unk_2000000[0x160CC + (index * 2)]; + AI_THINKING_STRUCT->funcResult = ewram[0x160CC + (index * 2)]; gAIScriptPtr += 2; } @@ -2029,11 +2024,11 @@ static void BattleAICmd_get_protect_count(void) u8 index; if (gAIScriptPtr[1] == USER) - index = gPlayerMonIndex; + index = gBankAttacker; else - index = gEnemyMonIndex; + index = gBankTarget; - AI_THINKING_STRUCT->funcResult = gUnknown_02024CA8[index].unk8; + AI_THINKING_STRUCT->funcResult = gDisableStructs[index].unk8; gAIScriptPtr += 2; } @@ -2084,7 +2079,7 @@ static void BattleAICmd_if_level_compare(void) switch (gAIScriptPtr[1]) { case 0: // greater than - if (gBattleMons[gPlayerMonIndex].level > gBattleMons[gEnemyMonIndex].level) + if (gBattleMons[gBankAttacker].level > gBattleMons[gBankTarget].level) { gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); return; @@ -2092,7 +2087,7 @@ static void BattleAICmd_if_level_compare(void) gAIScriptPtr += 6; return; case 1: // less than - if (gBattleMons[gPlayerMonIndex].level < gBattleMons[gEnemyMonIndex].level) + if (gBattleMons[gBankAttacker].level < gBattleMons[gBankTarget].level) { gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); return; @@ -2100,7 +2095,7 @@ static void BattleAICmd_if_level_compare(void) gAIScriptPtr += 6; return; case 2: // equal - if (gBattleMons[gPlayerMonIndex].level == gBattleMons[gEnemyMonIndex].level) + if (gBattleMons[gBankAttacker].level == gBattleMons[gBankTarget].level) { gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); return; @@ -2112,7 +2107,7 @@ static void BattleAICmd_if_level_compare(void) static void BattleAICmd_if_taunted(void) { - if (gUnknown_02024CA8[gEnemyMonIndex].taunt != 0) + if (gDisableStructs[gBankTarget].taunt != 0) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); else gAIScriptPtr += 5; @@ -2120,7 +2115,7 @@ static void BattleAICmd_if_taunted(void) static void BattleAICmd_if_not_taunted(void) { - if (gUnknown_02024CA8[gEnemyMonIndex].taunt == 0) + if (gDisableStructs[gBankTarget].taunt == 0) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); else gAIScriptPtr += 5; diff --git a/src/battle_anim.c b/src/battle_anim.c index bdb34365f..55ede1788 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -1,9 +1,14 @@ #include "global.h" #include "battle_anim.h" -#include "asm.h" +#include "battle.h" +#include "battle_anim_80CA710.h" +#include "battle_interface.h" +#include "contest.h" #include "decompress.h" #include "m4a.h" +#include "main.h" #include "palette.h" +#include "rom_8077ABC.h" #include "sound.h" #include "sprite.h" #include "task.h" @@ -12,10 +17,10 @@ #define GET_TRUE_SPRITE_INDEX(i) (i - 10000) extern u8 unk_2000000[]; -extern u16 gUnknown_02024A6A[4]; -extern u8 gUnknown_02024BE0[]; -extern u8 gPlayerMonIndex; -extern u8 gEnemyMonIndex; +extern u16 gBattlePartyID[4]; +extern u8 gObjectBankIDs[]; +extern u8 gBankAttacker; +extern u8 gBankTarget; EWRAM_DATA const u8 *gBattleAnimScriptPtr = NULL; EWRAM_DATA const u8 *gBattleAnimScriptRetAddr = NULL; EWRAM_DATA void (*gAnimScriptCallback)(void) = NULL; @@ -23,11 +28,11 @@ EWRAM_DATA s8 gAnimFramesToWait = 0; EWRAM_DATA u8 gAnimScriptActive = FALSE; EWRAM_DATA u8 gAnimVisualTaskCount = 0; EWRAM_DATA u8 gAnimSoundTaskCount = 0; -EWRAM_DATA u32 gUnknown_0202F7B4 = 0; -EWRAM_DATA u32 gUnknown_0202F7B8 = 0; -EWRAM_DATA u16 gUnknown_0202F7BC = 0; -EWRAM_DATA u8 gUnknown_0202F7BE = 0; -EWRAM_DATA u16 gUnknown_0202F7C0 = 0; +EWRAM_DATA u32 gDisableStructMoveAnim = 0; +EWRAM_DATA u32 gMoveDmgMoveAnim = 0; +EWRAM_DATA u16 gMovePowerMoveAnim = 0; +EWRAM_DATA u8 gHappinessMoveAnim = 0; +EWRAM_DATA u16 gWeatherMoveAnim = 0; EWRAM_DATA u8 gMonAnimTaskIdArray[2] = {0}; EWRAM_DATA u8 gUnknown_0202F7C4 = 0; EWRAM_DATA u8 gUnknown_0202F7C5 = 0; @@ -53,24 +58,10 @@ extern struct MusicPlayerInfo gMPlay_SE2; extern const u16 gUnknown_081C7160[]; extern const u8 *const gBattleAnims_Moves[]; -extern const struct SpriteSheet gBattleAnimPicTable[]; -extern const struct SpritePalette gBattleAnimPaletteTable[]; +extern const struct CompressedSpriteSheet gBattleAnimPicTable[]; +extern const struct CompressedSpritePalette gBattleAnimPaletteTable[]; extern const struct BattleAnimBackground gBattleAnimBackgroundTable[]; -extern void sub_8079E24(); -extern void sub_8043EB4(); -extern u8 sub_8079E90(); -extern u8 sub_8077ABC(); -extern u8 sub_8078874(u8); -extern void sub_8078914(); -extern u8 sub_80AEB1C(); -extern void sub_80E4EF8(int, int, int, int, u16, u8, int); -extern u8 sub_80789BC(); -extern void sub_80AB2AC(void); -extern void sub_800D7B8(void); -extern u8 obj_id_for_side_relative_to_move(); -extern u8 battle_get_per_side_status_permutated(); - static void RunAnimScriptCommand(void); static void ScriptCmd_loadsprite(void); static void ScriptCmd_unloadsprite(void); @@ -190,10 +181,10 @@ void battle_anim_clear_some_data(void) gAnimScriptActive = FALSE; gAnimVisualTaskCount = 0; gAnimSoundTaskCount = 0; - gUnknown_0202F7B4 = 0; - gUnknown_0202F7B8 = 0; - gUnknown_0202F7BC = 0; - gUnknown_0202F7BE = 0; + gDisableStructMoveAnim = 0; + gMoveDmgMoveAnim = 0; + gMovePowerMoveAnim = 0; + gHappinessMoveAnim = 0; // clear index array. for (i = 0; i < 8; i++) @@ -215,8 +206,8 @@ void battle_anim_clear_some_data(void) void ExecuteMoveAnim(u16 move) { - gBattleAnimPlayerMonIndex = gPlayerMonIndex; - gBattleAnimEnemyMonIndex = gEnemyMonIndex; + gBattleAnimPlayerMonIndex = gBankAttacker; + gBattleAnimEnemyMonIndex = gBankTarget; DoMoveAnim(gBattleAnims_Moves, move, 1); } @@ -230,10 +221,10 @@ void DoMoveAnim(const u8 *const moveAnims[], u16 move, u8 c) sub_8043EB4(0); for (i = 0; i < 4; i++) { - if (battle_side_get_owner(i) != 0) - gUnknown_0202F7CA[i] = GetMonData(&gEnemyParty[gUnknown_02024A6A[i]], MON_DATA_SPECIES); + if (GetBankSide(i) != 0) + gUnknown_0202F7CA[i] = GetMonData(&gEnemyParty[gBattlePartyID[i]], MON_DATA_SPECIES); else - gUnknown_0202F7CA[i] = GetMonData(&gPlayerParty[gUnknown_02024A6A[i]], MON_DATA_SPECIES); + gUnknown_0202F7CA[i] = GetMonData(&gPlayerParty[gBattlePartyID[i]], MON_DATA_SPECIES); } } else @@ -698,14 +689,14 @@ static void ScriptCmd_monbg(void) r5 = gBattleAnimEnemyMonIndex; if (b_side_obj__get_some_boolean(r5)) { - r0 = battle_get_per_side_status(r5); + r0 = GetBankIdentity(r5); r0 += 0xFF; if (r0 <= 1 || IsContest() != 0) r7 = 0; else r7 = 1; sub_8076034(r5, r7); - r4 = gUnknown_02024BE0[r5]; + r4 = gObjectBankIDs[r5]; taskId = CreateTask(task_pA_ma0A_obj_to_bg_pal, 10); gTasks[taskId].data[0] = r4; gTasks[taskId].data[1] = gSprites[r4].pos1.x + gSprites[r4].pos2.x; @@ -728,14 +719,14 @@ static void ScriptCmd_monbg(void) r5 ^= 2; if (r6 > 1 && b_side_obj__get_some_boolean(r5)) { - r0 = battle_get_per_side_status(r5); + r0 = GetBankIdentity(r5); r0 += 0xFF; if (r0 <= 1 || IsContest() != 0) r7 = 0; else r7 = 1; sub_8076034(r5, r7); - r4 = gUnknown_02024BE0[r5]; + r4 = gObjectBankIDs[r5]; taskId = CreateTask(task_pA_ma0A_obj_to_bg_pal, 10); gTasks[taskId].data[0] = r4; gTasks[taskId].data[1] = gSprites[r4].pos1.x + gSprites[r4].pos2.x; @@ -773,7 +764,7 @@ bool8 b_side_obj__get_some_boolean(u8 a) return TRUE; // this line wont ever be reached. if ((EWRAM_17800[a].unk0 & 1) == 0) return TRUE; - if (gSprites[gUnknown_02024BE0[a]].invisible) + if (gSprites[gObjectBankIDs[a]].invisible) return FALSE; return TRUE; } @@ -816,7 +807,7 @@ _08075FDC:\n\ cmp r0, 0\n\ beq _0807601C\n\ ldr r2, _08076024 @ =gSprites\n\ - ldr r0, _08076028 @ =gUnknown_02024BE0\n\ + ldr r0, _08076028 @ =gObjectBankIDs\n\ adds r0, r5, r0\n\ ldrb r1, [r0]\n\ lsls r0, r1, 4\n\ @@ -834,7 +825,7 @@ _0807601C:\n\ .align 2, 0\n\ _08076020: .4byte 0x02017800\n\ _08076024: .4byte gSprites\n\ -_08076028: .4byte gUnknown_02024BE0\n\ +_08076028: .4byte gObjectBankIDs\n\ _0807602C:\n\ movs r0, 0\n\ _0807602E:\n\ @@ -882,12 +873,12 @@ void sub_8076034(u8 a, u8 b) REG_BG1CNT_BITFIELD.screenSize = 1; REG_BG1CNT_BITFIELD.areaOverflowMode = 0; - spriteId = gUnknown_02024BE0[a]; + spriteId = gObjectBankIDs[a]; gUnknown_030042C0 = -(gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x) + 32; if (IsContest() != 0 && sub_80AEB1C(EWRAM_19348) != 0) gUnknown_030042C0--; gUnknown_030041B4 = -(gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y) + 32; - gSprites[gUnknown_02024BE0[a]].invisible = TRUE; + gSprites[gObjectBankIDs[a]].invisible = TRUE; REG_BG1HOFS = gUnknown_030042C0; REG_BG1VOFS = gUnknown_030041B4; @@ -899,7 +890,7 @@ void sub_8076034(u8 a, u8 b) if (IsContest() != 0) r2 = 0; else - r2 = battle_get_per_side_status(a); + r2 = GetBankIdentity(a); sub_80E4EF8(0, 0, r2, s.unk8, (u32)s.unk0, (((s32)s.unk4 - VRAM) / 2048), REG_BG1CNT_BITFIELD.charBaseBlock); if (IsContest() != 0) sub_8076380(); @@ -932,10 +923,10 @@ void sub_8076034(u8 a, u8 b) REG_BG2CNT_BITFIELD.screenSize = 1; REG_BG2CNT_BITFIELD.areaOverflowMode = 0; - spriteId = gUnknown_02024BE0[a]; + spriteId = gObjectBankIDs[a]; gUnknown_03004288 = -(gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x) + 32; gUnknown_03004280 = -(gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y) + 32; - gSprites[gUnknown_02024BE0[a]].invisible = TRUE; + gSprites[gObjectBankIDs[a]].invisible = TRUE; REG_BG2HOFS = gUnknown_03004288; REG_BG2VOFS = gUnknown_03004280; @@ -944,7 +935,7 @@ void sub_8076034(u8 a, u8 b) addr3 = (void *)(PLTT + 0x120); DmaCopy32(3, gPlttBufferUnfaded + 0x100 + a * 16, addr3, 32); - sub_80E4EF8(0, 0, battle_get_per_side_status(a), 9, 0x6000, 0x1E, REG_BG2CNT_BITFIELD.charBaseBlock); + sub_80E4EF8(0, 0, GetBankIdentity(a), 9, 0x6000, 0x1E, REG_BG2CNT_BITFIELD.charBaseBlock); } } @@ -1107,9 +1098,9 @@ static void ScriptCmd_clearmonbg(void) else r5 = gBattleAnimEnemyMonIndex; if (gMonAnimTaskIdArray[0] != 0xFF) - gSprites[gUnknown_02024BE0[r5]].invisible = FALSE; + gSprites[gObjectBankIDs[r5]].invisible = FALSE; if (r4 > 1 && gMonAnimTaskIdArray[1] != 0xFF) - gSprites[gUnknown_02024BE0[r5 ^ 2]].invisible = FALSE; + gSprites[gObjectBankIDs[r5 ^ 2]].invisible = FALSE; else r4 = 0; taskId = CreateTask(sub_807672C, 5); @@ -1126,7 +1117,7 @@ static void sub_807672C(u8 taskId) gTasks[taskId].data[1]++; if (gTasks[taskId].data[1] != 1) { - var = battle_get_per_side_status(gTasks[taskId].data[2]); + var = GetBankIdentity(gTasks[taskId].data[2]); var += 0xFF; if (var <= 1 || IsContest() != 0) r4 = 0; @@ -1167,26 +1158,26 @@ static void ScriptCmd_monbg_22(void) r4 = gBattleAnimEnemyMonIndex; if (b_side_obj__get_some_boolean(r4)) { - r0 = battle_get_per_side_status(r4); + r0 = GetBankIdentity(r4); r0 += 0xFF; if (r0 <= 1 || IsContest() != 0) r1 = 0; else r1 = 1; sub_8076034(r4, r1); - gSprites[gUnknown_02024BE0[r4]].invisible = FALSE; + gSprites[gObjectBankIDs[r4]].invisible = FALSE; } r4 ^= 2; if (r5 > 1 && b_side_obj__get_some_boolean(r4)) { - r0 = battle_get_per_side_status(r4); + r0 = GetBankIdentity(r4); r0 += 0xFF; if (r0 <= 1 || IsContest() != 0) r1 = 0; else r1 = 1; sub_8076034(r4, r1); - gSprites[gUnknown_02024BE0[r4]].invisible = FALSE; + gSprites[gObjectBankIDs[r4]].invisible = FALSE; } gBattleAnimScriptPtr++; } @@ -1208,9 +1199,9 @@ static void ScriptCmd_clearmonbg_23(void) else r6 = gBattleAnimEnemyMonIndex; if (b_side_obj__get_some_boolean(r6)) - gSprites[gUnknown_02024BE0[r6]].invisible = FALSE; + gSprites[gObjectBankIDs[r6]].invisible = FALSE; if (r5 > 1 && b_side_obj__get_some_boolean(r6 ^ 2)) - gSprites[gUnknown_02024BE0[r6 ^ 2]].invisible = FALSE; + gSprites[gObjectBankIDs[r6 ^ 2]].invisible = FALSE; else r5 = 0; taskId = CreateTask(sub_80769A4, 5); @@ -1229,7 +1220,7 @@ static void sub_80769A4(u8 taskId) if (gTasks[taskId].data[1] != 1) { r4 = gTasks[taskId].data[2]; - r0 = battle_get_per_side_status(r4); + r0 = GetBankIdentity(r4); r0 += 0xFF; if (r0 <= 1 || IsContest() != 0) r5 = 0; @@ -1378,7 +1369,7 @@ static void ScriptCmd_fadetobg_25(void) taskId = CreateTask(task_p5_load_battle_screen_elements, 5); if (IsContest() != 0) gTasks[taskId].data[0] = r6; - else if (battle_side_get_owner(gBattleAnimEnemyMonIndex) == 0) + else if (GetBankSide(gBattleAnimEnemyMonIndex) == 0) gTasks[taskId].data[0] = r7; else gTasks[taskId].data[0] = r8; @@ -1502,7 +1493,7 @@ s8 sub_8076F98(s8 a) { if (!IsContest() && (EWRAM_17810[gBattleAnimPlayerMonIndex].unk0 & 0x10)) { - a = battle_side_get_owner(gBattleAnimPlayerMonIndex) ? 0xC0 : 0x3F; + a = GetBankSide(gBattleAnimPlayerMonIndex) ? 0xC0 : 0x3F; } //_08076FDC else @@ -1521,9 +1512,9 @@ s8 sub_8076F98(s8 a) //_08077004 else { - if (battle_side_get_owner(gBattleAnimPlayerMonIndex) == 0) + if (GetBankSide(gBattleAnimPlayerMonIndex) == 0) { - if (battle_side_get_owner(gBattleAnimEnemyMonIndex) == 0) + if (GetBankSide(gBattleAnimEnemyMonIndex) == 0) } //_08077042 else @@ -1560,7 +1551,7 @@ s8 sub_8076F98(s8 a) cmp r0, 0\n\ beq _08076FDC\n\ adds r0, r2, 0\n\ - bl battle_side_get_owner\n\ + bl GetBankSide\n\ lsls r0, 24\n\ movs r4, 0xC0\n\ cmp r0, 0\n\ @@ -1592,13 +1583,13 @@ _08077000: .4byte gBattleAnimEnemyMonIndex\n\ _08077004:\n\ ldr r0, _0807702C @ =gBattleAnimPlayerMonIndex\n\ ldrb r0, [r0]\n\ - bl battle_side_get_owner\n\ + bl GetBankSide\n\ lsls r0, 24\n\ cmp r0, 0\n\ bne _08077042\n\ ldr r0, _08077030 @ =gBattleAnimEnemyMonIndex\n\ ldrb r0, [r0]\n\ - bl battle_side_get_owner\n\ + bl GetBankSide\n\ lsls r0, 24\n\ cmp r0, 0\n\ bne _0807706E\n\ @@ -1622,7 +1613,7 @@ _08077034:\n\ _08077042:\n\ ldr r0, _08077064 @ =gBattleAnimEnemyMonIndex\n\ ldrb r0, [r0]\n\ - bl battle_side_get_owner\n\ + bl GetBankSide\n\ lsls r0, 24\n\ lsrs r0, 24\n\ cmp r0, 0x1\n\ @@ -1670,14 +1661,14 @@ s8 sub_8077094(s8 a) { if (!IsContest() && (EWRAM_17810[gBattleAnimPlayerMonIndex].unk0 & 0x10)) { - if (battle_side_get_owner(gBattleAnimPlayerMonIndex) != 0) + if (GetBankSide(gBattleAnimPlayerMonIndex) != 0) a = 0x3F; else a = 0xC0; } else { - if (battle_side_get_owner(gBattleAnimPlayerMonIndex) != 0 || IsContest() != 0) + if (GetBankSide(gBattleAnimPlayerMonIndex) != 0 || IsContest() != 0) a = -a; } return a; @@ -2138,7 +2129,7 @@ static void ScriptCmd_monbgprio_28(void) r0 = gBattleAnimEnemyMonIndex; else r0 = gBattleAnimPlayerMonIndex; - r4 = battle_get_per_side_status(r0); + r4 = GetBankIdentity(r0); if (!IsContest() && (r4 == 0 || r4 == 3)) { REG_BG1CNT_BITFIELD.priority = 1; @@ -2164,13 +2155,13 @@ static void ScriptCmd_monbgprio_2A(void) r6 = SCRIPT_READ_8(gBattleAnimScriptPtr + 1); gBattleAnimScriptPtr += 2; - if (battle_side_get_owner(gBattleAnimPlayerMonIndex) != battle_side_get_owner(gBattleAnimEnemyMonIndex)) + if (GetBankSide(gBattleAnimPlayerMonIndex) != GetBankSide(gBattleAnimEnemyMonIndex)) { if (r6 != 0) r0 = gBattleAnimEnemyMonIndex; else r0 = gBattleAnimPlayerMonIndex; - r4 = battle_get_per_side_status(r0); + r4 = GetBankIdentity(r0); if (!IsContest() && (r4 == 0 || r4 == 3)) { REG_BG1CNT_BITFIELD.priority = 1; @@ -2216,16 +2207,16 @@ static void ScriptCmd_doublebattle_2D(void) r7 = SCRIPT_READ_8(gBattleAnimScriptPtr + 1); gBattleAnimScriptPtr += 2; if (!IsContest() && IsDoubleBattle() - && battle_side_get_owner(gBattleAnimPlayerMonIndex) == battle_side_get_owner(gBattleAnimEnemyMonIndex)) + && GetBankSide(gBattleAnimPlayerMonIndex) == GetBankSide(gBattleAnimEnemyMonIndex)) { if (r7 == 0) { - r4 = battle_get_per_side_status_permutated(gBattleAnimPlayerMonIndex); + r4 = GetBankIdentity_permutated(gBattleAnimPlayerMonIndex); spriteId = obj_id_for_side_relative_to_move(0); } else { - r4 = battle_get_per_side_status_permutated(gBattleAnimEnemyMonIndex); + r4 = GetBankIdentity_permutated(gBattleAnimEnemyMonIndex); spriteId = obj_id_for_side_relative_to_move(1); } if (spriteId != 0xFF) @@ -2250,16 +2241,16 @@ static void ScriptCmd_doublebattle_2E(void) r7 = SCRIPT_READ_8(gBattleAnimScriptPtr + 1); gBattleAnimScriptPtr += 2; if (!IsContest() && IsDoubleBattle() - && battle_side_get_owner(gBattleAnimPlayerMonIndex) == battle_side_get_owner(gBattleAnimEnemyMonIndex)) + && GetBankSide(gBattleAnimPlayerMonIndex) == GetBankSide(gBattleAnimEnemyMonIndex)) { if (r7 == 0) { - r4 = battle_get_per_side_status_permutated(gBattleAnimPlayerMonIndex); + r4 = GetBankIdentity_permutated(gBattleAnimPlayerMonIndex); spriteId = obj_id_for_side_relative_to_move(0); } else { - r4 = battle_get_per_side_status_permutated(gBattleAnimEnemyMonIndex); + r4 = GetBankIdentity_permutated(gBattleAnimEnemyMonIndex); spriteId = obj_id_for_side_relative_to_move(1); } if (spriteId != 0xFF && r4 == 2) diff --git a/src/battle_anim_80A7E7C.c b/src/battle_anim_80A7E7C.c index 285a782f3..34c11a352 100644 --- a/src/battle_anim_80A7E7C.c +++ b/src/battle_anim_80A7E7C.c @@ -1,5 +1,6 @@ #include "global.h" #include "battle_anim.h" +#include "rom_8077ABC.h" #include "sprite.h" #include "task.h" #include "trig.h" @@ -9,26 +10,12 @@ extern s16 gBattleAnimArgs[8]; -extern u8 gUnknown_02024BE0[]; -extern s32 gUnknown_0202F7B8; -extern u16 gUnknown_0202F7BC; +extern u8 gObjectBankIDs[]; +extern s32 gMoveDmgMoveAnim; +extern u16 gMovePowerMoveAnim; extern u8 gBattleAnimPlayerMonIndex; extern u8 gBattleAnimEnemyMonIndex; -extern u8 obj_id_for_side_relative_to_move(u8 side); -extern void DestroyAnimVisualTask(u8 task); -extern u8 battle_get_side_with_given_state(u8 state); -extern u8 battle_side_get_owner(u8 side); -extern void oamt_set_x3A_32(struct Sprite *sprite, void(*callback)(struct Sprite*)); -extern void sub_8078458(struct Sprite *sprite); -extern void move_anim_8072740(struct Sprite *sprite); -extern void sub_8078A5C(struct Sprite *sprite); -extern void sub_80784A8(struct Sprite *sprite); -extern void sub_8078E70(u8 sprite, u8); -extern void obj_id_set_rotscale(u8 sprite, int, int, u16); -extern void sub_8078F40(u8 sprite); -extern void sub_8078F9C(u8 sprite); - static void sub_80A7EF0(u8 task); static void sub_80A808C(u8 task); static void sub_80A81D8(u8 task); @@ -122,28 +109,28 @@ void sub_80A7FA0(u8 task) switch (gBattleAnimArgs[0]) { case 4: - side = battle_get_side_with_given_state(0); + side = GetBankByPlayerAI(0); break; case 5: - side = battle_get_side_with_given_state(2); + side = GetBankByPlayerAI(2); break; case 6: - side = battle_get_side_with_given_state(1); + side = GetBankByPlayerAI(1); break; case 7: default: - side = battle_get_side_with_given_state(3); + side = GetBankByPlayerAI(3); break; } if (b_side_obj__get_some_boolean(side) == FALSE) { r6 = 1; } - sprite = gUnknown_02024BE0[side]; + sprite = gObjectBankIDs[side]; } else { - sprite = gUnknown_02024BE0[gBattleAnimPlayerMonIndex]; + sprite = gObjectBankIDs[gBattleAnimPlayerMonIndex]; } if (r6) { @@ -342,7 +329,7 @@ static void sub_80A8488(u8 task) void sub_80A8500(u8 task) { - if (battle_side_get_owner(gBattleAnimPlayerMonIndex)) + if (GetBankSide(gBattleAnimPlayerMonIndex)) { gBattleAnimArgs[1] = -gBattleAnimArgs[1]; } @@ -352,7 +339,7 @@ void sub_80A8500(u8 task) void sub_80A8530(struct Sprite *sprite) { sprite->invisible = TRUE; - if (battle_side_get_owner(gBattleAnimPlayerMonIndex)) + if (GetBankSide(gBattleAnimPlayerMonIndex)) { sprite->data1 = -gBattleAnimArgs[1]; } @@ -362,7 +349,7 @@ void sub_80A8530(struct Sprite *sprite) } sprite->data0 = gBattleAnimArgs[0]; sprite->data2 = 0; - sprite->data3 = gUnknown_02024BE0[gBattleAnimPlayerMonIndex]; + sprite->data3 = gObjectBankIDs[gBattleAnimPlayerMonIndex]; sprite->data4 = gBattleAnimArgs[0]; oamt_set_x3A_32(sprite, sub_80A85A4); sprite->callback = sub_8078458; @@ -404,11 +391,11 @@ void sub_80A8638(struct Sprite *sprite) int spriteId; if (!gBattleAnimArgs[0]) { - spriteId = gUnknown_02024BE0[gBattleAnimPlayerMonIndex]; + spriteId = gObjectBankIDs[gBattleAnimPlayerMonIndex]; } else { - spriteId = gUnknown_02024BE0[gBattleAnimEnemyMonIndex]; + spriteId = gObjectBankIDs[gBattleAnimEnemyMonIndex]; } sprite->data0 = gBattleAnimArgs[2]; sprite->data1 = gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x; @@ -477,8 +464,8 @@ void sub_80A8764(struct Sprite *sprite) { v1 = gBattleAnimEnemyMonIndex; } - spriteId = gUnknown_02024BE0[v1]; - if (battle_side_get_owner(v1)) + spriteId = gObjectBankIDs[v1]; + if (GetBankSide(v1)) { gBattleAnimArgs[1] = -gBattleAnimArgs[1]; if (gBattleAnimArgs[3] == 1) @@ -513,8 +500,8 @@ void sub_80A8818(struct Sprite *sprite) { v1 = gBattleAnimEnemyMonIndex; } - spriteId = gUnknown_02024BE0[v1]; - if (battle_side_get_owner(v1)) + spriteId = gObjectBankIDs[v1]; + if (GetBankSide(v1)) { gBattleAnimArgs[1] = -gBattleAnimArgs[1]; if (gBattleAnimArgs[3] == 1) @@ -555,7 +542,7 @@ void sub_80A8920(u8 task) { s16 r7; r7 = 0x8000 / gBattleAnimArgs[3]; - if (battle_side_get_owner(gBattleAnimPlayerMonIndex)) + if (GetBankSide(gBattleAnimPlayerMonIndex)) { gBattleAnimArgs[1] = -gBattleAnimArgs[1]; gBattleAnimArgs[5] = -gBattleAnimArgs[5]; @@ -622,7 +609,7 @@ void sub_80A8A80(u8 task) DestroyAnimVisualTask(task); return; } - spriteId = gUnknown_02024BE0[gBattleAnimPlayerMonIndex ^ 2]; + spriteId = gObjectBankIDs[gBattleAnimPlayerMonIndex ^ 2]; break; case 3: if (!b_side_obj__get_some_boolean(gBattleAnimEnemyMonIndex ^ 2)) @@ -630,14 +617,14 @@ void sub_80A8A80(u8 task) DestroyAnimVisualTask(task); return; } - spriteId = gUnknown_02024BE0[gBattleAnimEnemyMonIndex ^ 2]; + spriteId = gObjectBankIDs[gBattleAnimEnemyMonIndex ^ 2]; break; default: DestroyAnimVisualTask(task); return; } TASK.data[0] = spriteId; - if (battle_side_get_owner(gBattleAnimEnemyMonIndex)) + if (GetBankSide(gBattleAnimEnemyMonIndex)) { TASK.data[1] = gBattleAnimArgs[1]; } @@ -662,7 +649,7 @@ static void sub_80A8B3C(u8 task) void sub_80A8B88(u8 task) { u8 spriteId; - if (battle_side_get_owner(gBattleAnimPlayerMonIndex)) + if (GetBankSide(gBattleAnimPlayerMonIndex)) { gBattleAnimArgs[1] = -gBattleAnimArgs[1]; } @@ -701,7 +688,7 @@ static void sub_80A8C0C(u8 task) } else { - if (battle_side_get_owner(TASK.data[5]) == 0) + if (GetBankSide(TASK.data[5]) == 0) { gSprites[spriteId].pos2.y = (y >= 0) ? y : -y; } @@ -791,11 +778,11 @@ void sub_80A8E04(u8 task) { if (gBattleAnimArgs[2] == 0) { - TASK.data[7] = !battle_side_get_owner(gBattleAnimPlayerMonIndex); + TASK.data[7] = !GetBankSide(gBattleAnimPlayerMonIndex); } else { - TASK.data[7] = !battle_side_get_owner(gBattleAnimEnemyMonIndex); + TASK.data[7] = !GetBankSide(gBattleAnimEnemyMonIndex); } } if (TASK.data[7]) @@ -818,14 +805,14 @@ void sub_80A8EFC(u8 task) TASK.data[2] = gBattleAnimArgs[0]; if (gBattleAnimArgs[2] == 0) { - if (battle_side_get_owner(gBattleAnimPlayerMonIndex)) + if (GetBankSide(gBattleAnimPlayerMonIndex)) { gBattleAnimArgs[1] = -gBattleAnimArgs[1]; } } else { - if (battle_side_get_owner(gBattleAnimEnemyMonIndex)) + if (GetBankSide(gBattleAnimEnemyMonIndex)) { gBattleAnimArgs[1] = -gBattleAnimArgs[1]; } @@ -878,7 +865,7 @@ void sub_80A9058(u8 task) { if (!gBattleAnimArgs[0]) { - TASK.data[15] = gUnknown_0202F7BC / 12; + TASK.data[15] = gMovePowerMoveAnim / 12; if (TASK.data[15] < 1) { TASK.data[15] = 1; @@ -890,7 +877,7 @@ void sub_80A9058(u8 task) } else { - TASK.data[15] = gUnknown_0202F7B8 / 12; + TASK.data[15] = gMoveDmgMoveAnim / 12; if (TASK.data[15] < 1) { TASK.data[15] = 1; diff --git a/src/battle_anim_81258BC.c b/src/battle_anim_81258BC.c index 42a685f4a..5bdbb4946 100644 --- a/src/battle_anim_81258BC.c +++ b/src/battle_anim_81258BC.c @@ -1,22 +1,22 @@ #include "global.h" -#include "asm.h" -#include "text.h" +#include "battle_anim_81258BC.h" +#include "battle.h" +#include "battle_message.h" #include "menu_cursor.h" +#include "text.h" extern struct Window gUnknown_03004210; -extern u8 gUnknown_020238CC[]; -extern u8 gUnknown_02024E60[]; +extern u8 gDisplayedStringBattle[]; +extern u8 gActionSelectionCursor[]; extern const u8 gUnknown_08400CBB[]; -extern u8 gUnknown_02024A60; +extern u8 gActiveBank; extern const u8 gUnknown_08400D15[]; -extern void* gUnknown_03004330[]; +extern void *gBattleBankFunc[]; extern u16 gUnknown_030042A0; extern u16 gUnknown_030042A4; -void bx_battle_menu_t6_2(void); - #if ENGLISH #define SUB_812BB10_TILE_DATA_OFFSET 440 #elif GERMAN @@ -31,7 +31,7 @@ void sub_812BB10(void) { gUnknown_03004210.paletteNum = 0; FillWindowRect_DefaultPalette(&gUnknown_03004210, 10, 2, 15, 27, 18); FillWindowRect_DefaultPalette(&gUnknown_03004210, 10, 2, 35, 16, 36); - gUnknown_03004330[gUnknown_02024A60] = bx_battle_menu_t6_2; + gBattleBankFunc[gActiveBank] = bx_battle_menu_t6_2; InitWindow(&gUnknown_03004210, gUnknown_08400D15, 400, 18, 35); sub_8002F44(&gUnknown_03004210); @@ -42,9 +42,9 @@ void sub_812BB10(void) { nullsub_8(i); } - sub_802E3E4(gUnknown_02024E60[gUnknown_02024A60], 0); - get_battle_strings_((u8 *) gUnknown_08400CBB); + sub_802E3E4(gActionSelectionCursor[gActiveBank], 0); + StrCpyDecodeToDisplayedStringBattle((u8 *) gUnknown_08400CBB); - InitWindow(&gUnknown_03004210, gUnknown_020238CC, SUB_812BB10_TILE_DATA_OFFSET, 2, 35); + InitWindow(&gUnknown_03004210, gDisplayedStringBattle, SUB_812BB10_TILE_DATA_OFFSET, 2, 35); sub_8002F44(&gUnknown_03004210); }
\ No newline at end of file diff --git a/src/battle_interface.c b/src/battle_interface.c index 61a6a5853..246bda62b 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -1,14 +1,18 @@ #include "global.h" -#include "asm.h" +#include "battle.h" +#include "battle_interface.h" +#include "decompress.h" +#include "palette.h" +#include "pokedex.h" +#include "pokemon.h" +#include "rom_8077ABC.h" +#include "safari_zone.h" +#include "songs.h" +#include "sound.h" #include "sprite.h" #include "string_util.h" +#include "task.h" #include "text.h" -#include "decompress.h" -#include "sound.h" -#include "songs.h" -#include "battle.h" -#include "palette.h" -#include "battle_interface.h" struct UnknownStruct5 { @@ -19,18 +23,6 @@ struct UnknownStruct5 u32 unk10; }; -struct UnknownStruct6 -{ - u8 bit_0:1; - u8 bit_1:1; - u8 bit_2:1; - u8 bit_3:1; - u8 bit_4:1; - u8 bit_5:1; - u8 bit_6:1; - u8 bit_7:1; -}; - struct UnknownStruct7 { u8 filler0[0x180]; @@ -40,19 +32,16 @@ extern u8 ewram[]; #define ewram520 ((struct UnknownStruct7 *)(ewram + 0x00520)) #define ewram16088 (*(u8 *) (ewram + 0x16088)) #define ewram16089 (*(u8 *) (ewram + 0x16089)) -#define ewram17800 ((struct UnknownStruct6 *)(ewram + 0x17800)) #define ewram17850 ((struct UnknownStruct5 *)(ewram + 0x17850)) -extern u8 gUnknown_020238CC[]; -extern u8 gUnknown_02024A68; -extern u16 gUnknown_02024A6A[]; -extern u8 gUnknown_02024A72[]; -extern u8 gUnknown_03004340[]; +extern u8 gDisplayedStringBattle[]; +extern u8 gNoOfAllBanks; +extern u16 gBattlePartyID[]; +extern u8 gBanksBySide[]; +extern u8 gHealthboxIDs[]; extern u16 gBattleTypeFlags; -extern u8 gNumSafariBalls; -extern u32 gExperienceTables[8][101]; extern const struct SpriteTemplate gSpriteTemplate_820A4EC[]; extern const struct SpriteTemplate gSpriteTemplate_820A51C[]; extern const struct SpriteTemplate gSpriteTemplate_820A54C; @@ -82,23 +71,17 @@ extern const u8 gUnknown_0820A81C[]; extern const u8 gUnknown_0820A864[]; extern const u8 gUnknown_0820A89C[]; extern const u8 gUnknown_0820A8B0[]; -extern const struct BaseStats gBaseStats[]; extern const u8 BattleText_SafariBalls[]; extern const u8 BattleText_SafariBallsLeft[]; extern const u8 BattleText_HighlightRed[]; extern const u8 gUnknown_08D1216C[][32]; -extern const u8 *const gNatureNames[]; extern const u16 gBattleInterfaceStatusIcons_DynPal[]; #define ABS(n) ((n) >= 0 ? (n) : -(n)) // Used for computing copy destination addresses #define MACRO1(n) ((n) - (n) / 8 * 8) + 64 * ((n) / 8) -extern int sub_8040D3C(); -extern u8 sub_8090D90(); -extern void load_gfxc_health_bar(); - static void sub_8043D5C(struct Sprite *); static const void *sub_8043CDC(u8); static void sub_8044210(u8, s16, u8); @@ -441,7 +424,7 @@ u8 battle_make_oam_normal_battle(u8 a) if (!IsDoubleBattle()) { - if (battle_side_get_owner(a) == 0) + if (GetBankSide(a) == 0) { spriteId1 = CreateSprite(&gSpriteTemplate_820A4EC[0], 240, 160, 1); spriteId2 = CreateSpriteAtEnd(&gSpriteTemplate_820A4EC[0], 240, 160, 1); @@ -467,10 +450,10 @@ u8 battle_make_oam_normal_battle(u8 a) //_08043A28 else { - if (battle_side_get_owner(a) == 0) + if (GetBankSide(a) == 0) { - spriteId1 = CreateSprite(&gSpriteTemplate_820A4EC[battle_get_per_side_status(a) / 2], 240, 160, 1); - spriteId2 = CreateSpriteAtEnd(&gSpriteTemplate_820A4EC[battle_get_per_side_status(a) / 2], 240, 160, 1); + spriteId1 = CreateSprite(&gSpriteTemplate_820A4EC[GetBankIdentity(a) / 2], 240, 160, 1); + spriteId2 = CreateSpriteAtEnd(&gSpriteTemplate_820A4EC[GetBankIdentity(a) / 2], 240, 160, 1); gSprites[spriteId1].oam.affineParam = spriteId2; gSprites[spriteId2].data5 = spriteId1; @@ -481,8 +464,8 @@ u8 battle_make_oam_normal_battle(u8 a) //_08043ACC else { - spriteId1 = CreateSprite(&gSpriteTemplate_820A51C[battle_get_per_side_status(a) / 2], 240, 160, 1); - spriteId2 = CreateSpriteAtEnd(&gSpriteTemplate_820A51C[battle_get_per_side_status(a) / 2], 240, 160, 1); + spriteId1 = CreateSprite(&gSpriteTemplate_820A51C[GetBankIdentity(a) / 2], 240, 160, 1); + spriteId2 = CreateSpriteAtEnd(&gSpriteTemplate_820A51C[GetBankIdentity(a) / 2], 240, 160, 1); gSprites[spriteId1].oam.affineParam = spriteId2; gSprites[spriteId2].data5 = spriteId1; @@ -494,9 +477,9 @@ u8 battle_make_oam_normal_battle(u8 a) } //_08043B50 - spriteId3 = CreateSpriteAtEnd(&gSpriteTemplate_820A56C[gUnknown_02024A72[a]], 140, 60, 0); + spriteId3 = CreateSpriteAtEnd(&gSpriteTemplate_820A56C[gBanksBySide[a]], 140, 60, 0); sprite = &gSprites[spriteId3]; - SetSubspriteTables(sprite, &gSubspriteTables_820A684[battle_side_get_owner(a)]); + SetSubspriteTables(sprite, &gSubspriteTables_820A684[GetBankSide(a)]); sprite->subspriteMode = 2; sprite->oam.priority = 1; CpuCopy32(sub_8043CDC(1), (void *)(OBJ_VRAM0 + sprite->oam.tileNum * 32), 64); @@ -609,13 +592,13 @@ void sub_8043EB4(u8 priority) { s32 i; - for (i = 0; i < gUnknown_02024A68; i++) + for (i = 0; i < gNoOfAllBanks; i++) { u8 spriteId1; u8 spriteId2; u8 spriteId3; - spriteId1 = gUnknown_03004340[i]; + spriteId1 = gHealthboxIDs[i]; spriteId2 = gSprites[spriteId1].oam.affineParam; spriteId3 = gSprites[spriteId1].data5; gSprites[spriteId1].oam.priority = priority; @@ -631,7 +614,7 @@ void sub_8043F44(u8 a) if (!IsDoubleBattle()) { - if (battle_side_get_owner(a) != 0) + if (GetBankSide(a) != 0) { x = 44; y = 30; @@ -644,7 +627,7 @@ void sub_8043F44(u8 a) } else { - switch (battle_get_per_side_status(a)) + switch (GetBankIdentity(a)) { case 0: x = 159; @@ -664,7 +647,7 @@ void sub_8043F44(u8 a) break; } } - sub_8043E50(gUnknown_03004340[a], x, y); + sub_8043E50(gHealthboxIDs[a], x, y); } #if ENGLISH @@ -685,14 +668,14 @@ static void sub_8043FC0(u8 a, u8 b) memcpy(str, gUnknown_0820A81C, sizeof(str)); if (!IsDoubleBattle()) { - if (battle_side_get_owner(gSprites[a].data6) == 0) + if (GetBankSide(gSprites[a].data6) == 0) r7 = gUnknown_0820A804; else r7 = gUnknown_0820A80C; } else { - if (battle_side_get_owner(gSprites[a].data6) == 0) + if (GetBankSide(gSprites[a].data6) == 0) r7 = gUnknown_0820A814; else r7 = gUnknown_0820A80C; @@ -742,7 +725,7 @@ void sub_80440EC(u8 a, s16 b, u8 c) memcpy(str, gUnknown_0820A864, sizeof(str)); foo = gSprites[a].data6; - if (IsDoubleBattle() == TRUE || battle_side_get_owner(foo) == 1) + if (IsDoubleBattle() == TRUE || GetBankSide(foo) == 1) { //_08044136 sub_8044210(a, b, c); @@ -752,7 +735,7 @@ void sub_80440EC(u8 a, s16 b, u8 c) ptr = str + 6; if (c == 0) { - if (battle_side_get_owner(gSprites[a].data6) == 0) + if (GetBankSide(gSprites[a].data6) == 0) r4 = gUnknown_0820A83C; else r4 = gUnknown_0820A848; @@ -764,7 +747,7 @@ void sub_80440EC(u8 a, s16 b, u8 c) } else { - if (battle_side_get_owner(gSprites[a].data6) == 0) + if (GetBankSide(gSprites[a].data6) == 0) r4 = gUnknown_0820A854; else r4 = gUnknown_0820A85C; @@ -814,7 +797,7 @@ void sub_80440EC(u8 a, s16 b, u8 c) beq _08044136\n\ lsls r0, r5, 24\n\ lsrs r0, 24\n\ - bl battle_side_get_owner\n\ + bl GetBankSide\n\ lsls r0, 24\n\ lsrs r0, 24\n\ cmp r0, 0x1\n\ @@ -838,7 +821,7 @@ _0804414C:\n\ ldrh r0, [r4, 0x3A]\n\ lsls r0, 24\n\ lsrs r0, 24\n\ - bl battle_side_get_owner\n\ + bl GetBankSide\n\ lsls r0, 24\n\ ldr r4, _08044188 @ =gUnknown_0820A848\n\ cmp r0, 0\n\ @@ -866,7 +849,7 @@ _08044190:\n\ ldrh r0, [r4, 0x3A]\n\ lsls r0, 24\n\ lsrs r0, 24\n\ - bl battle_side_get_owner\n\ + bl GetBankSide\n\ lsls r0, 24\n\ ldr r4, _080441FC @ =gUnknown_0820A85C\n\ cmp r0, 0\n\ @@ -939,7 +922,7 @@ static void sub_8044210(u8 a, s16 b, u8 c) // TODO: make this a local variable memcpy(str, gUnknown_0820A89C, sizeof(str)); r4 = gSprites[a].data6; - if ((ewram17800[r4].bit_4) == 0) + if ((ewram17800[r4].unk0_4) == 0) return; ptr = str + 6; if (c == 0) @@ -955,7 +938,7 @@ static void sub_8044210(u8 a, s16 b, u8 c) r7 = gUnknown_0820A894; r10 = 2; sub_8003504(ptr, b, 0xF, 1); - if (battle_side_get_owner(r4) == 0) + if (GetBankSide(r4) == 0) { CpuCopy32(sub_8043CDC(0x74), (void *)(OBJ_VRAM0 + (gSprites[a].oam.tileNum + 0x34) * 32), 32); } @@ -981,7 +964,7 @@ void sub_8044338(u8 a, struct Pokemon *pkmn) // TODO: make this a local variable memcpy(str, gUnknown_0820A864, sizeof(str)); - r6 = ewram520[battle_get_per_side_status(gSprites[a].data6)].filler0; + r6 = ewram520[GetBankIdentity(gSprites[a].data6)].filler0; r8 = 5; nature = GetNature(pkmn); StringCopy(str + 6, gNatureNames[nature]); @@ -1065,7 +1048,7 @@ void sub_8044338(u8 a, struct Pokemon *pkmn) ldrh r0, [r0, 0x3A]\n\ lsls r0, 24\n\ lsrs r0, 24\n\ - bl battle_get_per_side_status\n\ + bl GetBankIdentity\n\ lsls r0, 24\n\ lsrs r0, 24\n\ lsls r1, r0, 1\n\ @@ -1304,17 +1287,17 @@ void sub_804454C(void) s32 i; u8 spriteId; - for (i = 0; i < gUnknown_02024A68; i++) + for (i = 0; i < gNoOfAllBanks; i++) { - if (gSprites[gUnknown_03004340[i]].callback == SpriteCallbackDummy - && battle_side_get_owner(i) != 1 - && (IsDoubleBattle() || battle_side_get_owner(i) != 0)) + if (gSprites[gHealthboxIDs[i]].callback == SpriteCallbackDummy + && GetBankSide(i) != 1 + && (IsDoubleBattle() || GetBankSide(i) != 0)) { u8 r6; - ewram17800[i].bit_4 ^= 1; - r6 = ewram17800[i].bit_4; - if (battle_side_get_owner(i) == 0) + ewram17800[i].unk0_4 ^= 1; + r6 = ewram17800[i].unk0_4; + if (GetBankSide(i) == 0) { if (!IsDoubleBattle()) @@ -1324,17 +1307,17 @@ void sub_804454C(void) if (r6 == 1) { - spriteId = gSprites[gUnknown_03004340[i]].data5; + spriteId = gSprites[gHealthboxIDs[i]].data5; CpuFill32(0, (void *)(OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * 32), 0x100); - sub_8044210(gUnknown_03004340[i], GetMonData(&gPlayerParty[gUnknown_02024A6A[i]], MON_DATA_HP), 0); - sub_8044210(gUnknown_03004340[i], GetMonData(&gPlayerParty[gUnknown_02024A6A[i]], MON_DATA_MAX_HP), 1); + sub_8044210(gHealthboxIDs[i], GetMonData(&gPlayerParty[gBattlePartyID[i]], MON_DATA_HP), 0); + sub_8044210(gHealthboxIDs[i], GetMonData(&gPlayerParty[gBattlePartyID[i]], MON_DATA_MAX_HP), 1); } else { - draw_status_ailment_maybe(gUnknown_03004340[i]); - sub_8045A5C(gUnknown_03004340[i], &gPlayerParty[gUnknown_02024A6A[i]], 5); - CpuCopy32(sub_8043CDC(0x75), (void *)(OBJ_VRAM0 + 0x680 + gSprites[gUnknown_03004340[i]].oam.tileNum * 32), 32); + draw_status_ailment_maybe(gHealthboxIDs[i]); + sub_8045A5C(gHealthboxIDs[i], &gPlayerParty[gBattlePartyID[i]], 5); + CpuCopy32(sub_8043CDC(0x75), (void *)(OBJ_VRAM0 + 0x680 + gSprites[gHealthboxIDs[i]].oam.tileNum * 32), 32); } } else @@ -1343,26 +1326,26 @@ void sub_804454C(void) { if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) { - sub_8044338(gUnknown_03004340[i], &gEnemyParty[gUnknown_02024A6A[i]]); + sub_8044338(gHealthboxIDs[i], &gEnemyParty[gBattlePartyID[i]]); } else { - spriteId = gSprites[gUnknown_03004340[i]].data5; + spriteId = gSprites[gHealthboxIDs[i]].data5; CpuFill32(0, (void *)(OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * 32), 0x100); - sub_8044210(gUnknown_03004340[i], GetMonData(&gEnemyParty[gUnknown_02024A6A[i]], MON_DATA_HP), 0); - sub_8044210(gUnknown_03004340[i], GetMonData(&gEnemyParty[gUnknown_02024A6A[i]], MON_DATA_MAX_HP), 1); + sub_8044210(gHealthboxIDs[i], GetMonData(&gEnemyParty[gBattlePartyID[i]], MON_DATA_HP), 0); + sub_8044210(gHealthboxIDs[i], GetMonData(&gEnemyParty[gBattlePartyID[i]], MON_DATA_MAX_HP), 1); } } else { - draw_status_ailment_maybe(gUnknown_03004340[i]); - sub_8045A5C(gUnknown_03004340[i], &gEnemyParty[gUnknown_02024A6A[i]], 5); + draw_status_ailment_maybe(gHealthboxIDs[i]); + sub_8045A5C(gHealthboxIDs[i], &gEnemyParty[gBattlePartyID[i]], 5); if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) - sub_8045A5C(gUnknown_03004340[i], &gEnemyParty[gUnknown_02024A6A[i]], 4); + sub_8045A5C(gHealthboxIDs[i], &gEnemyParty[gBattlePartyID[i]], 4); } } - gSprites[gUnknown_03004340[i]].data7 ^= 1; + gSprites[gHealthboxIDs[i]].data7 ^= 1; } } } @@ -1383,9 +1366,9 @@ u8 sub_8044804(u8 a, const struct BattleInterfaceStruct2 *b, u8 c, u8 d) u8 sp18; u8 taskId; - if (c == 0 || battle_get_per_side_status(a) != 3) + if (c == 0 || GetBankIdentity(a) != 3) { - if (battle_side_get_owner(a) == 0) + if (GetBankSide(a) == 0) { r7 = 0; x = 136; @@ -1478,7 +1461,7 @@ u8 sub_8044804(u8 a, const struct BattleInterfaceStruct2 *b, u8 c, u8 d) gSprites[sp[i]].data2 = r7; } //_08044A76 - if (battle_side_get_owner(a) == 0) + if (GetBankSide(a) == 0) { for (i = 0; i < 6; i++) //_08044A9A { @@ -1599,14 +1582,14 @@ u8 sub_8044804(u8 a, const struct BattleInterfaceStruct2 *b, u8 c, u8 d) str r3, [sp, 0x10]\n\ cmp r4, 0\n\ beq _08044834\n\ - bl battle_get_per_side_status\n\ + bl GetBankIdentity\n\ lsls r0, 24\n\ lsrs r0, 24\n\ cmp r0, 0x3\n\ beq _08044878\n\ _08044834:\n\ ldr r0, [sp, 0x8]\n\ - bl battle_side_get_owner\n\ + bl GetBankSide\n\ lsls r0, 24\n\ cmp r0, 0\n\ bne _08044854\n\ @@ -1888,7 +1871,7 @@ _08044A56:\n\ b _08044970\n\ _08044A76:\n\ ldr r0, [sp, 0x8]\n\ - bl battle_side_get_owner\n\ + bl GetBankSide\n\ lsls r0, 24\n\ cmp r0, 0\n\ bne _08044B5E\n\ @@ -2194,7 +2177,7 @@ void sub_8044CA0(u8 taskId) { for (i = 0; i < 6; i++) { - if (battle_side_get_owner(sp8) != 0) + if (GetBankSide(sp8) != 0) { gSprites[sp[5 - i]].data1 = 7 * i; gSprites[sp[5 - i]].data3 = 0; @@ -2392,10 +2375,10 @@ static void sub_80451A0(u8 a, struct Pokemon *pkmn) s32 _7; u8 *const *r1; - StringCopy(gUnknown_020238CC, gUnknown_0820A8B0); + StringCopy(gDisplayedStringBattle, gUnknown_0820A8B0); GetMonData(pkmn, MON_DATA_NICKNAME, nickname); StringGetEnd10(nickname); - ptr = StringCopy(gUnknown_020238CC + 3, nickname); + ptr = StringCopy(gDisplayedStringBattle + 3, nickname); ptr[0] = EXT_CTRL_CODE_BEGIN; ptr[1] = 3; ptr[2] = 2; @@ -2431,15 +2414,15 @@ static void sub_80451A0(u8 a, struct Pokemon *pkmn) ptr[1] = 0x13; ptr[2] = 0x37; ptr[3] = EOS; - ptr = (u8 *)0x02000520 + battle_get_per_side_status(gSprites[a].data6) * 0x180; - sub_80034D4(ptr, gUnknown_020238CC); + ptr = (u8 *)0x02000520 + GetBankIdentity(gSprites[a].data6) * 0x180; + sub_80034D4(ptr, gDisplayedStringBattle); i = 0; _7 = 7; if (GetMonData(pkmn, MON_DATA_LANGUAGE) == 1 && GetMonData(pkmn, MON_DATA_IS_EGG) == 0) { - u8 *p = gUnknown_020238CC; + u8 *p = gDisplayedStringBattle; while (*p != EOS) { @@ -2468,7 +2451,7 @@ static void sub_80451A0(u8 a, struct Pokemon *pkmn) for (; i < _7; i++) CpuCopy32(sub_8043CDC(0x2B), ptr + 64 * i, 32); - if (battle_side_get_owner(gSprites[a].data6) == 0 && !IsDoubleBattle()) + if (GetBankSide(gSprites[a].data6) == 0 && !IsDoubleBattle()) { r1 = (u8 *const *)gUnknown_0820A8B4; for (i = 0; i < _7; i++) @@ -2486,7 +2469,7 @@ static void sub_80451A0(u8 a, struct Pokemon *pkmn) } else { - if (battle_side_get_owner(gSprites[a].data6) == 0) + if (GetBankSide(gSprites[a].data6) == 0) r1 = (u8 *const *)gUnknown_0820A904; else r1 = (u8 *const *)gUnknown_0820A8DC; @@ -2515,10 +2498,10 @@ static void sub_8045458(u8 a, u8 b) return; r4 = gSprites[a].data6; - if (battle_side_get_owner(r4) != 0) + if (GetBankSide(r4) != 0) { - u16 species = GetMonData(&gEnemyParty[gUnknown_02024A6A[r4]], MON_DATA_SPECIES); - if (sub_8090D90(SpeciesToNationalPokedexNum(species), 1) != 0) + u16 species = GetMonData(&gEnemyParty[gBattlePartyID[r4]], MON_DATA_SPECIES); + if (GetNationalPokedexFlag(SpeciesToNationalPokedexNum(species), 1) != 0) { r4 = gSprites[a].data5; if (b != 0) @@ -2542,9 +2525,9 @@ static void draw_status_ailment_maybe(u8 a) r7 = gSprites[a].data6; r10 = gSprites[a].data5; - if (battle_side_get_owner(r7) == 0) + if (GetBankSide(r7) == 0) { - r4 = GetMonData(&gPlayerParty[gUnknown_02024A6A[r7]], MON_DATA_STATUS); + r4 = GetMonData(&gPlayerParty[gBattlePartyID[r7]], MON_DATA_STATUS); if (!IsDoubleBattle()) r8 = 0x1A; else @@ -2552,7 +2535,7 @@ static void draw_status_ailment_maybe(u8 a) } else { - r4 = GetMonData(&gEnemyParty[gUnknown_02024A6A[r7]], MON_DATA_STATUS); + r4 = GetMonData(&gEnemyParty[gBattlePartyID[r7]], MON_DATA_STATUS); r8 = 0x11; } if (r4 & 7) @@ -2587,7 +2570,7 @@ static void draw_status_ailment_maybe(u8 a) for (i = 0; i < 3; i++) CpuCopy32(r6, (void *)(OBJ_VRAM0 + (gSprites[a].oam.tileNum + r8 + i) * 32), 32); - if (!ewram17800[r7].bit_4) + if (!ewram17800[r7].unk0_4) CpuCopy32(sub_8043CDC(1), (void *)(OBJ_VRAM0 + gSprites[r10].oam.tileNum * 32), 64); sub_8045458(a, 1); @@ -2600,9 +2583,9 @@ static void draw_status_ailment_maybe(u8 a) FillPalette(r0[gBattleInterfaceStatusIcons_DynPal], r4_2 + 0x100, 2); CpuCopy16(gPlttBufferUnfaded + 0x100 + r4_2, (void *)(OBJ_PLTT + r4_2 * 2), 2); CpuCopy32(r6, (void *)(OBJ_VRAM0 + (gSprites[a].oam.tileNum + r8) * 32), 96); - if (IsDoubleBattle() == TRUE || battle_side_get_owner(r7) == TRUE) + if (IsDoubleBattle() == TRUE || GetBankSide(r7) == TRUE) { - if (!ewram17800[r7].bit_4) + if (!ewram17800[r7].unk0_4) { CpuCopy32(sub_8043CDC(0), (void *)(OBJ_VRAM0 + gSprites[r10].oam.tileNum * 32), 32); CpuCopy32(sub_8043CDC(0x41), (void *)(OBJ_VRAM0 + (gSprites[r10].oam.tileNum + 1) * 32), 32); @@ -2679,7 +2662,7 @@ static void sub_80458B0(u8 a) s32 r7; u8 *addr; - r6 = (u8 *)0x02000520 + battle_get_per_side_status(gSprites[a].data6) * 0x180; + r6 = (u8 *)0x02000520 + GetBankIdentity(gSprites[a].data6) * 0x180; r8 = 7; sub_80034D4(r6, BattleText_SafariBalls); for (i = 0; i < r8; i++) @@ -2704,13 +2687,13 @@ static void sub_8045998(u8 a) s32 r6; s32 i; - r7 = StringCopy(gUnknown_020238CC, BattleText_SafariBallsLeft); + r7 = StringCopy(gDisplayedStringBattle, BattleText_SafariBallsLeft); r7 = sub_8003504(r7, gNumSafariBalls, 10, 1); StringAppend(r7, BattleText_HighlightRed); - status = battle_get_per_side_status(gSprites[a].data6); + status = GetBankIdentity(gSprites[a].data6); r7 = (u8 *)0x02000520 + status * 0x180; r6 = 5; - sub_80034D4(r7, gUnknown_020238CC); + sub_80034D4(r7, gDisplayedStringBattle); r7 = (u8 *)0x02000520 + status * 0x180 + 32; for (i = 6; i < 6 + r6; i++) { @@ -2726,7 +2709,7 @@ void sub_8045A5C(u8 a, struct Pokemon *pkmn, u8 c) u32 currhp; r10 = gSprites[a].data6; - if (battle_side_get_owner(r10) == 0) + if (GetBankSide(r10) == 0) { if (c == 3 || c == 0) sub_8043FC0(a, GetMonData(pkmn, MON_DATA_LEVEL)); @@ -2809,7 +2792,7 @@ s32 sub_8045C78(u8 a, u8 unused1, u8 c, u8 unused2) r5 = ABS(r8 / r5); r6 = sub_8045F58(ewram17850[a].unk4, ewram17850[a].unk8, r8, &ewram17850[a].unk10, 8, r5); } - if (c == 1 || (c == 0 && (!ewram17800[a].bit_4))) + if (c == 1 || (c == 0 && (!ewram17800[a].unk0_4))) sub_8045D58(a, c); if (r6 == -1) ewram17850[a].unk10 = 0; @@ -2845,7 +2828,7 @@ static void sub_8045D58(u8 a, u8 b) break; case 1: sub_804602C(ewram17850[a].unk4, ewram17850[a].unk8, ewram17850[a].unkC, &ewram17850[a].unk10, sp8, 8); - r0 = GetMonData(&gPlayerParty[gUnknown_02024A6A[a]], MON_DATA_LEVEL); + r0 = GetMonData(&gPlayerParty[gBattlePartyID[a]], MON_DATA_LEVEL); if (r0 == 100) { for (i = 0; i < 8; i++) @@ -3044,7 +3027,7 @@ u8 GetScaledHPFraction(s16 hp, s16 maxhp, u8 scale) return result; } -int GetHPBarLevel(s16 hp, s16 maxhp) +u8 GetHPBarLevel(s16 hp, s16 maxhp) { int result; diff --git a/src/battle_party_menu.c b/src/battle_party_menu.c index 359517ecd..96b68adba 100644 --- a/src/battle_party_menu.c +++ b/src/battle_party_menu.c @@ -1,10 +1,16 @@ #include "global.h" #include "battle_party_menu.h" -#include "asm.h" +#include "battle.h" +#include "item_menu.h" #include "main.h" #include "menu.h" +#include "menu_helpers.h" #include "palette.h" +#include "party_menu.h" #include "pokemon.h" +#include "pokemon_summary_screen.h" +#include "rom_8077ABC.h" +#include "rom_8094928.h" #include "songs.h" #include "sound.h" #include "string_util.h" @@ -12,54 +18,51 @@ #include "task.h" #include "text.h" -extern u8 IsLinkDoubleBattle(void); -extern void TryCreatePartyMenuMonIcon(u8, u8, struct Pokemon *); -extern void LoadHeldItemIconGraphics(void); -extern void CreateHeldItemIcons_806DC34(); -extern u8 sub_806BD58(u8, u8); -extern void PartyMenuPrintMonsLevelOrStatus(void); -extern void PrintPartyMenuMonNicknames(void); -extern void PartyMenuTryPrintMonsHP(void); -extern void nullsub_13(void); -extern void PartyMenuDrawHPBars(void); -extern u8 sub_806B58C(u8); -extern u8 GetItemEffectType(); -extern void sub_806E750(u8, const struct PartyPopupMenu *, const struct PartyMenuItem *, int); -extern u16 sub_806BD80(); -extern u8 sub_806CA38(); -extern void sub_806D5A4(void); -extern void sub_802E414(void); -extern void sub_8094D60(void); -extern void sub_80A6DCC(void); -extern void sub_806AF4C(); -extern u8 sub_80F9344(void); -extern u8 sub_806B124(void); -extern void sub_806C994(); -extern void sub_806BF74(); -extern void sub_806AEDC(void); -extern TaskFunc PartyMenuGetPopupMenuFunc(u8, const struct PartyPopupMenu *, const struct PartyMenuItem *, u8); -extern void ShowPokemonSummaryScreen(struct Pokemon *, u8, u8, void (*)(u8), int); -extern void sub_806E7D0(u8, const struct PartyPopupMenu *); -extern u8 *sub_8040D08(); -extern u8 sub_8094C20(); -extern void sub_8040B8C(void); -extern u8 pokemon_order_func(u8); -extern void sub_8094C98(u8, u8); -extern void sub_806E6F0(); -extern void sub_806D538(); +#define DATA_COUNT (6) + +extern u8 ewram[]; + +struct Unk201B000 +{ + //u8 filler0[0x260]; + struct Pokemon unk0[6]; + u8 filler258[1]; + u8 unk259; + u8 filler25A[6]; + u8 unk260; + u8 unk261; + u8 filler262[2]; + s16 unk264[DATA_COUNT * 2]; // This may be a union + u8 filler27C[2]; + s16 unk27E; + s16 unk280; + s16 unk282; +}; + +#define ewram1B000 (*(struct Unk201B000 *)(ewram + 0x1B000)) +#define UNK_201606C_ARRAY (ewram + 0x1606C) // lazy define but whatever. extern u16 gScriptItemId; extern u8 gPlayerPartyCount; -extern u8 gUnknown_02024A68; -extern u16 gUnknown_02024A6A[]; -extern u8 gUnknown_02024E6C; +extern u8 gNoOfAllBanks; +extern u16 gBattlePartyID[]; +extern u8 gBankInMenu; extern u8 gUnknown_0202E8F4; extern u8 gUnknown_0202E8F5; extern u8 gUnknown_0202E8F6; +extern u8 gUnknown_02038470[3]; extern u8 gUnknown_02038473; extern u8 gUnknown_020384F0; extern void (*gUnknown_03004AE4)(); //don't know types yet +extern struct PokemonStorage gPokemonStorage; +extern void nullsub_14(); +void sub_8094C98(u8, u8); +u8 pokemon_order_func(u8); + +static void sub_8094998(u8[3], u8); +static void sub_8094A74(u8[3], u8, u32); +static void sub_8094D60(void); static void Task_809527C(u8); static void Task_80952B4(u8); static void Task_80952E4(u8); @@ -87,11 +90,276 @@ static const struct PartyPopupMenu sBattlePartyPopupMenus[] = {ARRAY_COUNT(Unknown_83B5FF2), 9, Unknown_83B5FF2}, }; -// rom_8094928 is part of this file, has yet to be decompiled. +void unref_sub_8094928(struct PokemonStorage *ptr) +{ + *ptr = gPokemonStorage; +} + +void unref_sub_8094940(struct PokemonStorage *ptr) +{ + gPokemonStorage = *ptr; +} + +void sub_8094958(void) +{ + sub_8094998(gUnknown_02038470, sub_803FBBC()); +} + +void sub_8094978(u8 arg1, u8 arg2) +{ + sub_8094A74((UNK_201606C_ARRAY) + arg1 * 3, arg2, arg1); +} + +static void sub_8094998(u8 arg[3], u8 player_number) +{ + int i; + u32 pos; + u8 temp[6]; + if (IsLinkDoubleBattle() == TRUE) + { + if (player_number) + { + *arg = 0x30; + arg[1] = 0x45; + arg[2] = 0x12; + } + else + { + *arg = 0x03; + arg[1] = 0x12; + arg[2] = 0x45; + } + } + else + { + if (!IsDoubleBattle()) + { + pos = 1; + *temp = gBattlePartyID[GetBankByPlayerAI(0)]; + for (i = 0; i <= 5; i++) + if (i != *temp) + temp[pos++] = i; + } + else + { + pos = 2; + *temp = gBattlePartyID[GetBankByPlayerAI(0)]; + temp[1] = gBattlePartyID[GetBankByPlayerAI(2)]; + for (i = 0; i <= 5; i++) + if ((i != *temp) && (i != temp[1])) + temp[pos++] = i; + } + for (i = 0; i <= 2; i++) + arg[i] = (temp[i << 1] << 4) | temp[(i << 1) + 1]; + } +} + +static void sub_8094A74(u8 arg[3], u8 player_number, u32 arg3) +{ + int i, j; + u8 temp[6]; + if (!GetBankSide(arg3)) + { + i = GetBankByPlayerAI(0); + j = GetBankByPlayerAI(2); + } + else + { + i = GetBankByPlayerAI(1); + j = GetBankByPlayerAI(3); + } + if (IsLinkDoubleBattle() == TRUE) + { + if (player_number) + { + *arg = 0x30; + arg[1] = 0x45; + arg[2] = 0x12; + } + else + { + *arg = 0x03; + arg[1] = 0x12; + arg[2] = 0x45; + } + } + else + { + if (!IsDoubleBattle()) + { + int pos = 1; + *temp = gBattlePartyID[i]; + for (i = 0; i <= 5; i++) + if (i != *temp) + temp[pos++] = i; + } + else + { + int pos = 2; + *temp = gBattlePartyID[i]; + temp[1] = gBattlePartyID[j]; + for (i = 0; i <= 5; i++) + if ((i != *temp) && (i != temp[1])) + temp[pos++] = i; + } + for (i = 0; i <= 2; i++) + arg[i] = (temp[i << 1] << 4) | temp[(i << 1) + 1]; + } +} + +void sub_8094B6C(u8 a, u8 b, u8 c) +{ + s32 i; + s32 j; + u8 temp[6]; + u8 r3; + u8 r7 = 0; + + if (IsLinkDoubleBattle()) + { + u8 *arr = ewram + 0x1606C + a * 3; + + for (i = 0, j = 0; i < 3; i++) + { + temp[j++] = arr[i] >> 4; + temp[j++] = arr[i] & 0xF; + } + r3 = temp[c]; + for (i = 0; i < 6; i++) + { + if (temp[i] == b) + { + r7 = temp[i]; + temp[i] = r3; + break; + } + } + if (i != 6) + { + temp[c] = r7; + + arr[0] = (temp[0] << 4) | temp[1]; + arr[1] = (temp[2] << 4) | temp[3]; + arr[2] = (temp[4] << 4) | temp[5]; + } + } +} + +u8 sub_8094C20(u8 a) +{ + u8 retVal; + u8 val = a & 1; + + a /= 2; + if (val) + retVal = gUnknown_02038470[a] & 0xF; + else + retVal = gUnknown_02038470[a] >> 4; + return retVal; +} + +void sub_8094C54(u8 a, u8 b) +{ + u8 val = a & 1; + + a /= 2; + if (val) + gUnknown_02038470[a] = (gUnknown_02038470[a] & 0xF0) | b; + else + gUnknown_02038470[a] = (gUnknown_02038470[a] & 0xF) | (b << 4); +} + +void sub_8094C98(u8 a, u8 b) +{ + u8 r4 = sub_8094C20(a); + u8 r1 = sub_8094C20(b); + + sub_8094C54(a, r1); + sub_8094C54(b, r4); +} + +u8 pokemon_order_func(u8 a) +{ + u8 i; + u8 r2; + + for (i = 0, r2 = 0; i < 3; i++) + { + if ((gUnknown_02038470[i] >> 4) == a) + return r2; + r2++; + if ((gUnknown_02038470[i] & 0xF) == a) + return r2; + r2++; + } + return 0; +} + +void pokemon_change_order(void) +{ + u8 i; + + memcpy(ewram1B000.unk0, gPlayerParty, sizeof(gPlayerParty)); + for (i = 0; i < 6; i++) + { + u8 n = pokemon_order_func(i); + + memcpy(&gPlayerParty[n], &ewram1B000.unk0[i], sizeof(struct Pokemon)); + } +} + +static void sub_8094D60(void) +{ + struct Pokemon temp[6]; + u8 i; + + memcpy(temp, gPlayerParty, sizeof(gPlayerParty)); + for (i = 0; i < 6; i++) + { + u8 n = sub_8094C20(i); + + memcpy(&gPlayerParty[n], &temp[i], sizeof(struct Pokemon)); + } +} + +void unref_sub_8094DB0(void) +{ + u8 i; + u8 r4; + + for (i = 1; i < 6; i++) + { + u8 n = sub_8094C20(i); + + if (GetMonData(&gPlayerParty[n], MON_DATA_SPECIES) != 0 + && GetMonData(&gPlayerParty[n], MON_DATA_HP) != 0) + { + r4 = sub_8094C20(0); + sub_8094C98(0, i); + sub_806E6F0(&gPlayerParty[r4], &gPlayerParty[n]); + break; + } + } +} + +void sub_8094E20(u8 a) +{ + gPaletteFade.bufferTransferDisabled = TRUE; + gUnknown_02038473 = a; + nullsub_14(); + pokemon_change_order(); + OpenPartyMenu(1, 0xFF); +} + +void sub_8094E4C(void) +{ + sub_8094E20(3); +} int SetUpBattlePartyMenu(void) { switch (EWRAM_1B000.unk264) + //switch (ewram1B000.unk264[0]) { case 0: //TODO: try to get rid of this duplicate code @@ -172,9 +440,9 @@ int SetUpBattlePartyMenu(void) if (gUnknown_02038473 == 3) { if (GetItemEffectType(gScriptItemId) == 10) - EWRAM_1B000.unk259 = 0xFF; + ewram1B000.unk259 = 0xFF; else - EWRAM_1B000.unk259 = 3; + ewram1B000.unk259 = 3; } return TRUE; } @@ -406,10 +674,10 @@ static void Task_BattlePartyMenuShift(u8 taskId) gTasks[taskId].func = Task_80954C0; return; } - for (i = 0; i < gUnknown_02024A68; i++) + for (i = 0; i < gNoOfAllBanks; i++) { - if (battle_side_get_owner(i) == 0 - && sub_8094C20(partySelection) == gUnknown_02024A6A[i]) + if (GetBankSide(i) == 0 + && sub_8094C20(partySelection) == gBattlePartyID[i]) { sub_806D5A4(); GetMonNickname(&gPlayerParty[partySelection], gStringVar1); @@ -447,10 +715,10 @@ static void Task_BattlePartyMenuShift(u8 taskId) if (gUnknown_02038473 == 2) { u8 r0; - u8 r4 = gUnknown_02024E6C; + u8 r4 = gBankInMenu; sub_806D5A4(); - r0 = pokemon_order_func(gUnknown_02024A6A[r4]); + r0 = pokemon_order_func(gBattlePartyID[r4]); GetMonNickname(&gPlayerParty[r0], gStringVar1); StringExpandPlaceholders(gStringVar4, gOtherText_CantBeSwitched); sub_806E834(gStringVar4, 0); @@ -459,7 +727,7 @@ static void Task_BattlePartyMenuShift(u8 taskId) } gUnknown_0202E8F5 = sub_8094C20(partySelection); gUnknown_0202E8F4 = 1; - r4 = pokemon_order_func(gUnknown_02024A6A[gUnknown_02024E6C]); + r4 = pokemon_order_func(gBattlePartyID[gBankInMenu]); sub_8094C98(r4, partySelection); sub_806E6F0(&gPlayerParty[r4], &gPlayerParty[partySelection]); gTasks[taskId].func = Task_809527C; @@ -467,7 +735,7 @@ static void Task_BattlePartyMenuShift(u8 taskId) static void Task_BattlePartyMenuCancel(u8 taskId) { - sub_8072DEC(); + HandleDestroyMenuCursors(); sub_806E7D0(gTasks[taskId].data[4], sBattlePartyPopupMenus); gTasks[taskId].data[4] = gTasks[taskId].data[5]; sub_806D538(0, 0); diff --git a/src/battle_records.c b/src/battle_records.c index 35fd3284b..cf86787f0 100644 --- a/src/battle_records.c +++ b/src/battle_records.c @@ -1,11 +1,8 @@ #include "global.h" +#include "battle_records.h" #include "menu.h" #include "strings2.h" -void PrintLinkBattleWinsLossesDraws(void *); - -void PrintLinkBattleRecord(void *, u8); - void ShowLinkBattleRecords(void) { s32 i; MenuDrawTextWindow(1, 0, 28, 18); diff --git a/src/battle_setup.c b/src/battle_setup.c index a70157a43..adcbe8eaa 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -1,14 +1,17 @@ #include "global.h" #include "battle_setup.h" -#include "asm.h" #include "battle.h" +#include "battle_transition.h" #include "data2.h" #include "event_data.h" #include "field_control_avatar.h" +#include "field_fadetransition.h" #include "field_map_obj_helpers.h" #include "field_message_box.h" #include "field_player_avatar.h" #include "field_weather.h" +#include "fieldmap.h" +#include "fldeff_80C5CD4.h" #include "main.h" #include "map_constants.h" #include "metatile_behavior.h" @@ -19,6 +22,7 @@ #include "safari_zone.h" #include "script.h" #include "script_pokemon_80C4.h" +#include "secret_base.h" #include "songs.h" #include "sound.h" #include "species.h" @@ -31,10 +35,7 @@ extern u16 gScriptResult; -extern void (*gUnknown_0300485C)(void); - -extern struct Pokemon gEnemyParty[]; -extern struct Pokemon gPlayerParty[]; +extern void (*gFieldCallback)(void); EWRAM_DATA u16 gTrainerBattleMode = 0; EWRAM_DATA u16 gTrainerBattleOpponent = 0; @@ -48,7 +49,7 @@ EWRAM_DATA u8 *gTrainerBattleEndScript = NULL; extern u16 gBattleTypeFlags; extern u16 gScriptLastTalked; -extern u8 gUnknown_02024D26; +extern u8 gBattleOutcome; extern struct MapObject gMapObjects[]; @@ -573,14 +574,14 @@ void HandleWildBattleEnd(void) CpuFill16(0, (void *)BG_PLTT, BG_PLTT_SIZE); ResetOamRange(0, 128); - if (battle_exit_is_player_defeat(gUnknown_02024D26) == TRUE) + if (battle_exit_is_player_defeat(gBattleOutcome) == TRUE) { SetMainCallback2(CB2_WhiteOut); } else { SetMainCallback2(c2_exit_to_overworld_2_switch); - gUnknown_0300485C = sub_8080E44; + gFieldCallback = sub_8080E44; } } @@ -589,7 +590,7 @@ void HandleScriptedWildBattleEnd(void) CpuFill16(0, (void *)BG_PLTT, BG_PLTT_SIZE); ResetOamRange(0, 128); - if (battle_exit_is_player_defeat(gUnknown_02024D26) == TRUE) + if (battle_exit_is_player_defeat(gBattleOutcome) == TRUE) SetMainCallback2(CB2_WhiteOut); else SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music); @@ -1050,7 +1051,7 @@ void sub_808260C(void) { SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music); // link battle? } - else if (battle_exit_is_player_defeat(gUnknown_02024D26) == TRUE) + else if (battle_exit_is_player_defeat(gBattleOutcome) == TRUE) { SetMainCallback2(CB2_WhiteOut); } @@ -1067,7 +1068,7 @@ void do_choose_name_or_words_screen(void) { SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music); // link battle? } - else if (battle_exit_is_player_defeat(gUnknown_02024D26) == TRUE) + else if (battle_exit_is_player_defeat(gBattleOutcome) == TRUE) { SetMainCallback2(CB2_WhiteOut); } diff --git a/src/berry.c b/src/berry.c index 257248e5c..d6fbb955e 100644 --- a/src/berry.c +++ b/src/berry.c @@ -1,8 +1,10 @@ #include "global.h" #include "berry.h" -#include "asm.h" #include "field_control_avatar.h" +#include "field_map_obj.h" +#include "fieldmap.h" #include "item.h" +#include "item_menu.h" #include "items.h" #include "main.h" #include "rng.h" diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c index f0bcb4f27..116ca2cca 100644 --- a/src/berry_tag_screen.c +++ b/src/berry_tag_screen.c @@ -1,11 +1,13 @@ #include "global.h" #include "berry_tag_screen.h" -#include "asm.h" #include "berry.h" #include "decompress.h" +#include "field_map_obj.h" +#include "item_menu.h" #include "items.h" #include "main.h" #include "menu.h" +#include "menu_helpers.h" #include "palette.h" #include "rom4.h" #include "songs.h" @@ -36,8 +38,8 @@ extern struct BerryTagStatus gUnknown_0203932E; extern u16 gScriptItemId; extern u16 gUnknown_030041B4; -extern const struct SpriteSheet gUnknown_083C1F74; -extern const struct SpritePalette gUnknown_083C1F7C; +extern const struct CompressedSpriteSheet gUnknown_083C1F74; +extern const struct CompressedSpritePalette gUnknown_083C1F7C; extern u8 *gUnknown_0841192C[]; @@ -263,30 +265,49 @@ static void sub_8146480(u8 taskid) static void sub_81464E4(void) { const struct Berry *berryInfo; +#ifdef UNITS_IMPERIAL u32 size; s32 sizeMajor; s32 sizeMinor; +#endif +#if GERMAN + u8 buffer[16]; +#endif berryInfo = GetBerryInfo(gScriptItemId + OFFSET_7B + 1); ConvertIntToDecimalStringN(gStringVar1, gScriptItemId - FIRST_BERRY + 1, STR_CONV_MODE_LEADING_ZEROS, 2); MenuPrint(gStringVar1, 12, 4); +#if ENGLISH MenuPrint(berryInfo->name, 14, 4); +#elif GERMAN + StringCopy(buffer, berryInfo->name); + StringAppend(buffer, gOtherText_Berry2); + MenuPrint(buffer, 14, 4); +#endif + MenuPrint(berryInfo->description1, 4, 14); MenuPrint(berryInfo->description2, 4, 16); +#ifdef UNITS_IMPERIAL size = (berryInfo->size * 1000) / 254; if (size % 10 >= 5) size += 10; sizeMinor = (size % 100) / 10; sizeMajor = size / 100; +#endif MenuPrint(gOtherText_Size, 11, 7); if (berryInfo->size != 0) { +#ifdef UNITS_IMPERIAL ConvertIntToDecimalStringN(gStringVar1, sizeMajor, STR_CONV_MODE_LEFT_ALIGN, 2); ConvertIntToDecimalStringN(gStringVar2, sizeMinor, STR_CONV_MODE_LEFT_ALIGN, 2); +#else + ConvertIntToDecimalStringN(gStringVar1, berryInfo->size / 10, STR_CONV_MODE_LEFT_ALIGN, 2); + ConvertIntToDecimalStringN(gStringVar2, berryInfo->size % 10, STR_CONV_MODE_LEFT_ALIGN, 2); +#endif MenuPrint(gContestStatsText_Unknown1, 16, 7); } else diff --git a/src/bike.c b/src/bike.c index d7175b5e0..f37eb2144 100644 --- a/src/bike.c +++ b/src/bike.c @@ -1,8 +1,8 @@ #include "global.h" #include "bike.h" -#include "asm.h" #include "field_map_obj.h" #include "field_player_avatar.h" +#include "fieldmap.h" #include "flags.h" #include "global.fieldmap.h" #include "metatile_behavior.h" diff --git a/src/birch_pc.c b/src/birch_pc.c index 89eafc0ce..5fb6427c3 100644 --- a/src/birch_pc.c +++ b/src/birch_pc.c @@ -1,5 +1,4 @@ #include "global.h" -#include "asm.h" #include "event_data.h" #include "field_message_box.h" #include "pokedex.h" @@ -9,31 +8,31 @@ extern u16 gSpecialVar_0x8004; extern u16 gSpecialVar_0x8005; extern u16 gSpecialVar_0x8006; -extern const u8 gUnknown_081C4520[]; -extern const u8 gUnknown_081C456A[]; -extern const u8 gUnknown_081C45B0[]; -extern const u8 gUnknown_081C45F9[]; -extern const u8 gUnknown_081C4648[]; -extern const u8 gUnknown_081C467E[]; -extern const u8 gUnknown_081C46B9[]; -extern const u8 gUnknown_081C46FE[]; -extern const u8 gUnknown_081C4747[]; -extern const u8 gUnknown_081C4780[]; -extern const u8 gUnknown_081C47DF[]; -extern const u8 gUnknown_081C4828[]; -extern const u8 gUnknown_081C4863[]; -extern const u8 gUnknown_081C489C[]; -extern const u8 gUnknown_081C48EB[]; -extern const u8 gUnknown_081C4936[]; -extern const u8 gUnknown_081C49A2[]; -extern const u8 gUnknown_081C4A06[]; -extern const u8 gUnknown_081C4A4F[]; -extern const u8 gUnknown_081C4A91[]; -extern const u8 gUnknown_081C4ADA[]; +extern const u8 gBirchDexRatingText_LessThan10[]; +extern const u8 gBirchDexRatingText_LessThan20[]; +extern const u8 gBirchDexRatingText_LessThan30[]; +extern const u8 gBirchDexRatingText_LessThan40[]; +extern const u8 gBirchDexRatingText_LessThan50[]; +extern const u8 gBirchDexRatingText_LessThan60[]; +extern const u8 gBirchDexRatingText_LessThan70[]; +extern const u8 gBirchDexRatingText_LessThan80[]; +extern const u8 gBirchDexRatingText_LessThan90[]; +extern const u8 gBirchDexRatingText_LessThan100[]; +extern const u8 gBirchDexRatingText_LessThan110[]; +extern const u8 gBirchDexRatingText_LessThan120[]; +extern const u8 gBirchDexRatingText_LessThan130[]; +extern const u8 gBirchDexRatingText_LessThan140[]; +extern const u8 gBirchDexRatingText_LessThan150[]; +extern const u8 gBirchDexRatingText_LessThan160[]; +extern const u8 gBirchDexRatingText_LessThan170[]; +extern const u8 gBirchDexRatingText_LessThan180[]; +extern const u8 gBirchDexRatingText_LessThan190[]; +extern const u8 gBirchDexRatingText_LessThan200[]; +extern const u8 gBirchDexRatingText_DexCompleted[]; bool16 ScriptGetPokedexInfo(void) { - if (!gSpecialVar_0x8004) + if (gSpecialVar_0x8004 == 0) // is national dex not present? { gSpecialVar_0x8005 = GetHoennPokedexCount(0); gSpecialVar_0x8006 = GetHoennPokedexCount(1); @@ -47,65 +46,66 @@ bool16 ScriptGetPokedexInfo(void) return IsNationalPokedexEnabled(); } +// This shows your Hoenn Pokedex rating and not your National Dex. const u8 *GetPokedexRatingText(u16 count) { if (count < 10) - return gUnknown_081C4520; + return gBirchDexRatingText_LessThan10; if (count < 20) - return gUnknown_081C456A; + return gBirchDexRatingText_LessThan20; if (count < 30) - return gUnknown_081C45B0; + return gBirchDexRatingText_LessThan30; if (count < 40) - return gUnknown_081C45F9; + return gBirchDexRatingText_LessThan40; if (count < 50) - return gUnknown_081C4648; + return gBirchDexRatingText_LessThan50; if (count < 60) - return gUnknown_081C467E; + return gBirchDexRatingText_LessThan60; if (count < 70) - return gUnknown_081C46B9; + return gBirchDexRatingText_LessThan70; if (count < 80) - return gUnknown_081C46FE; + return gBirchDexRatingText_LessThan80; if (count < 90) - return gUnknown_081C4747; + return gBirchDexRatingText_LessThan90; if (count < 100) - return gUnknown_081C4780; + return gBirchDexRatingText_LessThan100; if (count < 110) - return gUnknown_081C47DF; + return gBirchDexRatingText_LessThan110; if (count < 120) - return gUnknown_081C4828; + return gBirchDexRatingText_LessThan120; if (count < 130) - return gUnknown_081C4863; + return gBirchDexRatingText_LessThan130; if (count < 140) - return gUnknown_081C489C; + return gBirchDexRatingText_LessThan140; if (count < 150) - return gUnknown_081C48EB; + return gBirchDexRatingText_LessThan150; if (count < 160) - return gUnknown_081C4936; + return gBirchDexRatingText_LessThan160; if (count < 170) - return gUnknown_081C49A2; + return gBirchDexRatingText_LessThan170; if (count < 180) - return gUnknown_081C4A06; + return gBirchDexRatingText_LessThan180; if (count < 190) - return gUnknown_081C4A4F; + return gBirchDexRatingText_LessThan190; if (count < 200) - return gUnknown_081C4A91; + return gBirchDexRatingText_LessThan200; if (count == 200) { - if (sub_8090D90(SpeciesToNationalPokedexNum(SPECIES_JIRACHI), 1) - || sub_8090D90(SpeciesToNationalPokedexNum(SPECIES_DEOXYS), 1)) - return gUnknown_081C4A91; - return gUnknown_081C4ADA; + if (GetNationalPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_JIRACHI), 1) + || GetNationalPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_DEOXYS), 1)) // Jirachi or Deoxys is not counted towards the dex completion. If either of these flags are enabled, it means the actual count is less than 200. + return gBirchDexRatingText_LessThan200; + return gBirchDexRatingText_DexCompleted; } if (count == 201) { - if (sub_8090D90(SpeciesToNationalPokedexNum(SPECIES_JIRACHI), 1) - && sub_8090D90(SpeciesToNationalPokedexNum(SPECIES_DEOXYS), 1)) - return gUnknown_081C4A91; - return gUnknown_081C4ADA; + if (GetNationalPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_JIRACHI), 1) + && GetNationalPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_DEOXYS), 1)) // If both of these flags are enabled, it means the actual count is less than 200. + return gBirchDexRatingText_LessThan200; + return gBirchDexRatingText_DexCompleted; } if (count == 202) - return gUnknown_081C4ADA; - return gUnknown_081C4520; + return gBirchDexRatingText_DexCompleted; // Hoenn dex is considered complete, even though the hoenn dex count is 210. + return gBirchDexRatingText_LessThan10; } void ShowPokedexRatingMessage(void) diff --git a/src/braille_puzzles.c b/src/braille_puzzles.c index 2ee4f91bb..4de945b9c 100644 --- a/src/braille_puzzles.c +++ b/src/braille_puzzles.c @@ -1,10 +1,11 @@ #include "global.h" #include "braille_puzzles.h" -#include "asm.h" #include "event_data.h" #include "field_camera.h" #include "field_effect.h" +#include "fieldmap.h" #include "flags.h" +#include "main.h" #include "map_obj_lock.h" #include "menu.h" #include "rom6.h" diff --git a/src/cable_club.c b/src/cable_club.c index 45fb347f3..13ae65322 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -1,5 +1,5 @@ #include "global.h" -#include "asm.h" +#include "cable_club.h" #include "field_message_box.h" #include "link.h" #include "main.h" @@ -20,20 +20,9 @@ extern u8 gFieldLinkPlayerCount; extern u8 gUnknown_081A4932[]; extern const u8 gUnknown_081A4975[]; -void sub_8082D4C(); -void sub_8082D60(u8, u8); -u16 sub_8082D9C(u8, u8); -u32 sub_8082DF4(u8); -u32 sub_8082E28(u8); -u32 sub_8082EB8(u8); -void sub_8082FEC(u8 taskId); static void sub_80830E4(u8 taskId); -void sub_8083188(u8 taskId); static void sub_8083288(u8 taskId); static void sub_8083314(u8 taskId); -void sub_80833C4(u8 taskId); -void sub_8083418(u8 taskId); -u8 sub_8083444(u8 taskId); void sub_808303C(u8 taskId) { s32 linkPlayerCount; diff --git a/src/calculate_base_damage.c b/src/calculate_base_damage.c index 7868a2c67..ae60e30fe 100644 --- a/src/calculate_base_damage.c +++ b/src/calculate_base_damage.c @@ -16,17 +16,15 @@ #include "text.h" extern u8 gPlayerPartyCount; -extern struct Pokemon gPlayerParty[6]; extern u8 gEnemyPartyCount; -extern struct Pokemon gEnemyParty[6]; extern u16 unk_20160BC[]; extern struct SecretBaseRecord gSecretBaseRecord; extern u32 dword_2017100[]; extern u16 gBattleTypeFlags; extern struct BattlePokemon gBattleMons[4]; -extern u16 gUnknown_02024BE6; -extern u8 byte_2024C06; +extern u16 gCurrentMove; +extern u8 gLastUsedAbility; extern u8 gCritMultiplier; extern u16 gBattleWeather; extern struct BattleEnigmaBerry gEnigmaBerries[]; @@ -36,21 +34,10 @@ extern u16 gTrainerBattleOpponent; extern struct PokemonStorage gPokemonStorage; extern u8 gBadEggNickname[]; -extern u32 gBitTable[]; -extern struct BaseStats gBaseStats[]; extern struct SpriteTemplate gSpriteTemplate_8208288[]; -extern u8 gTrainerClassToPicIndex[]; -extern u8 gTrainerClassToNameIndex[]; extern u8 gSecretBaseTrainerClasses[]; -extern u8 gUnknown_08208238[]; -extern u8 gUnknown_0820823C[]; -extern u8 gStatStageRatios[]; extern u8 gHoldEffectToType[][2]; -extern u8 battle_side_get_owner(u8); -extern u8 sub_8018324(u8, u8, u8, u8, u16); -extern u8 sub_803C348(u8); - #define APPLY_STAT_MOD(var, mon, stat, statIndex) \ { \ (var) = (stat) * (gStatStageRatios)[(mon)->statStages[(statIndex)] * 2]; \ @@ -116,7 +103,7 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER) && gTrainerBattleOpponent != 1024 && FlagGet(BADGE01_GET) - && !battle_side_get_owner(a7)) + && !GetBankSide(a7)) attack = (110 * attack) / 100; if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_EREADER_TRAINER))) @@ -124,7 +111,7 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER) && gTrainerBattleOpponent != 1024 && FlagGet(BADGE05_GET) - && !battle_side_get_owner(a8)) + && !GetBankSide(a8)) defense = (110 * defense) / 100; if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_EREADER_TRAINER))) @@ -132,7 +119,7 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER) && gTrainerBattleOpponent != 1024 && FlagGet(BADGE07_GET) - && !battle_side_get_owner(a7)) + && !GetBankSide(a7)) spAttack = (110 * spAttack) / 100; if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_EREADER_TRAINER))) @@ -140,7 +127,7 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER) && gTrainerBattleOpponent != 1024 && FlagGet(BADGE07_GET) - && !battle_side_get_owner(a8)) + && !GetBankSide(a8)) spDefense = (110 * spDefense) / 100; } } @@ -180,17 +167,17 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de spAttack /= 2; if (attacker->ability == ABILITY_HUSTLE) attack = (150 * attack) / 100; - if (attacker->ability == ABILITY_PLUS && sub_8018324(0xE, 0, ABILITY_MINUS, 0, 0)) + if (attacker->ability == ABILITY_PLUS && AbilityBattleEffects(0xE, 0, ABILITY_MINUS, 0, 0)) spAttack = (150 * spAttack) / 100; - if (attacker->ability == ABILITY_MINUS && sub_8018324(0xE, 0, ABILITY_PLUS, 0, 0)) + if (attacker->ability == ABILITY_MINUS && AbilityBattleEffects(0xE, 0, ABILITY_PLUS, 0, 0)) spAttack = (150 * spAttack) / 100; if (attacker->ability == ABILITY_GUTS && attacker->status1) attack = (150 * attack) / 100; if (defender->ability == ABILITY_MARVEL_SCALE && defender->status1) defense = (150 * defense) / 100; - if (type == TYPE_ELECTRIC && sub_8018324(0xE, 0, 0, 0xFD, 0)) + if (type == TYPE_ELECTRIC && AbilityBattleEffects(0xE, 0, 0, 0xFD, 0)) gBattleMovePower /= 2; - if (type == TYPE_FIRE && sub_8018324(0xE, 0, 0, 0xFE, 0)) + if (type == TYPE_FIRE && AbilityBattleEffects(0xE, 0, 0, 0xFE, 0)) gBattleMovePower /= 2; if (type == TYPE_GRASS && attacker->ability == ABILITY_OVERGROW && attacker->hp <= (attacker->maxHP / 3)) gBattleMovePower = (150 * gBattleMovePower) / 100; @@ -200,7 +187,7 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de gBattleMovePower = (150 * gBattleMovePower) / 100; if (type == TYPE_BUG && attacker->ability == ABILITY_SWARM && attacker->hp <= (attacker->maxHP / 3)) gBattleMovePower = (150 * gBattleMovePower) / 100; - if (gBattleMoves[gUnknown_02024BE6].effect == 7) + if (gBattleMoves[gCurrentMove].effect == 7) defense /= 2; if (type < TYPE_MYSTERY) // is physical? @@ -234,13 +221,13 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de if ((a4 & 1) && gCritMultiplier == 1) { - if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && sub_803C348(2) == 2) + if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && CountAliveMons(2) == 2) damage = 2 * (damage / 3); else damage /= 2; } - if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && gBattleMoves[move].target == 8 && sub_803C348(2) == 2) + if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && gBattleMoves[move].target == 8 && CountAliveMons(2) == 2) damage /= 2; // moves always do at least 1 damage. @@ -279,17 +266,17 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de if ((a4 & 2) && gCritMultiplier == 1) { - if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && sub_803C348(2) == 2) + if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && CountAliveMons(2) == 2) damage = 2 * (damage / 3); else damage /= 2; } - if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && gBattleMoves[move].target == 8 && sub_803C348(2) == 2) + if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && gBattleMoves[move].target == 8 && CountAliveMons(2) == 2) damage /= 2; // are effects of weather negated with cloud nine or air lock? - if (!sub_8018324(0xE, 0, ABILITY_CLOUD_NINE, 0, 0) && !sub_8018324(0xE, 0, ABILITY_AIR_LOCK, 0, 0)) + if (!AbilityBattleEffects(0xE, 0, ABILITY_CLOUD_NINE, 0, 0) && !AbilityBattleEffects(0xE, 0, ABILITY_AIR_LOCK, 0, 0)) { // rain? if (gBattleWeather & 1) @@ -301,7 +288,7 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de } // does lack of sun half solar beam damage? - if ((gBattleWeather & 0x9F) && gUnknown_02024BE6 == 76) + if ((gBattleWeather & 0x9F) && gCurrentMove == 76) damage /= 2; // sunny? @@ -498,7 +485,7 @@ _0803BB5E:\n\ cmp r0, 0\n\ beq _0803BB98\n\ ldr r0, [sp, 0x10]\n\ - bl battle_side_get_owner\n\ + bl GetBankSide\n\ lsls r0, 24\n\ cmp r0, 0\n\ bne _0803BB98\n\ @@ -531,7 +518,7 @@ _0803BB98:\n\ cmp r0, 0\n\ beq _0803BBE2\n\ adds r0, r4, 0\n\ - bl battle_side_get_owner\n\ + bl GetBankSide\n\ lsls r0, 24\n\ cmp r0, 0\n\ bne _0803BBE2\n\ @@ -566,7 +553,7 @@ _0803BBE2:\n\ cmp r0, 0\n\ beq _0803BC2E\n\ ldr r0, [sp, 0x10]\n\ - bl battle_side_get_owner\n\ + bl GetBankSide\n\ lsls r0, 24\n\ cmp r0, 0\n\ bne _0803BC2E\n\ @@ -602,7 +589,7 @@ _0803BC2E:\n\ cmp r0, 0\n\ beq _0803BC78\n\ adds r0, r4, 0\n\ - bl battle_side_get_owner\n\ + bl GetBankSide\n\ lsls r0, 24\n\ cmp r0, 0\n\ bne _0803BC78\n\ @@ -820,7 +807,7 @@ _0803BDFC:\n\ movs r1, 0\n\ movs r2, 0x3A\n\ movs r3, 0\n\ - bl sub_8018324\n\ + bl AbilityBattleEffects\n\ lsls r0, 24\n\ cmp r0, 0\n\ beq _0803BE2A\n\ @@ -844,7 +831,7 @@ _0803BE2A:\n\ movs r1, 0\n\ movs r2, 0x39\n\ movs r3, 0\n\ - bl sub_8018324\n\ + bl AbilityBattleEffects\n\ lsls r0, 24\n\ cmp r0, 0\n\ beq _0803BE5C\n\ @@ -898,7 +885,7 @@ _0803BE9A:\n\ movs r1, 0\n\ movs r2, 0\n\ movs r3, 0xFD\n\ - bl sub_8018324\n\ + bl AbilityBattleEffects\n\ lsls r0, 24\n\ cmp r0, 0\n\ beq _0803BEBE\n\ @@ -916,7 +903,7 @@ _0803BEBE:\n\ movs r1, 0\n\ movs r2, 0\n\ movs r3, 0xFE\n\ - bl sub_8018324\n\ + bl AbilityBattleEffects\n\ lsls r0, 24\n\ cmp r0, 0\n\ beq _0803BEE2\n\ @@ -1018,7 +1005,7 @@ _0803BF72:\n\ strh r0, [r4]\n\ _0803BFA2:\n\ ldr r2, _0803BFEC @ =gBattleMoves\n\ - ldr r0, _0803BFF0 @ =gUnknown_02024BE6\n\ + ldr r0, _0803BFF0 @ =gCurrentMove\n\ ldrh r1, [r0]\n\ lsls r0, r1, 1\n\ adds r0, r1\n\ @@ -1053,7 +1040,7 @@ _0803BFE0: .4byte 0xfffffe69\n\ _0803BFE4: .4byte 0x00000175\n\ _0803BFE8: .4byte gBattleMovePower\n\ _0803BFEC: .4byte gBattleMoves\n\ -_0803BFF0: .4byte gUnknown_02024BE6\n\ +_0803BFF0: .4byte gCurrentMove\n\ _0803BFF4: .4byte gCritMultiplier\n\ _0803BFF8: .4byte gStatStageRatios\n\ _0803BFFC:\n\ @@ -1159,7 +1146,7 @@ _0803C0A8:\n\ cmp r1, 0\n\ beq _0803C0E4\n\ movs r0, 0x2\n\ - bl sub_803C348\n\ + bl CountAliveMons\n\ lsls r0, 24\n\ lsrs r0, 24\n\ cmp r0, 0x2\n\ @@ -1193,7 +1180,7 @@ _0803C0EA:\n\ cmp r0, 0x8\n\ bne _0803C11C\n\ movs r0, 0x2\n\ - bl sub_803C348\n\ + bl CountAliveMons\n\ lsls r0, 24\n\ lsrs r0, 24\n\ cmp r0, 0x2\n\ @@ -1319,7 +1306,7 @@ _0803C1D6:\n\ cmp r1, 0\n\ beq _0803C224\n\ movs r0, 0x2\n\ - bl sub_803C348\n\ + bl CountAliveMons\n\ lsls r0, 24\n\ lsrs r0, 24\n\ cmp r0, 0x2\n\ @@ -1353,7 +1340,7 @@ _0803C22A:\n\ cmp r0, 0x8\n\ bne _0803C25C\n\ movs r0, 0x2\n\ - bl sub_803C348\n\ + bl CountAliveMons\n\ lsls r0, 24\n\ lsrs r0, 24\n\ cmp r0, 0x2\n\ @@ -1368,7 +1355,7 @@ _0803C25C:\n\ movs r1, 0\n\ movs r2, 0xD\n\ movs r3, 0\n\ - bl sub_8018324\n\ + bl AbilityBattleEffects\n\ lsls r0, 24\n\ lsrs r0, 24\n\ cmp r0, 0\n\ @@ -1378,7 +1365,7 @@ _0803C25C:\n\ movs r1, 0\n\ movs r2, 0x4D\n\ movs r3, 0\n\ - bl sub_8018324\n\ + bl AbilityBattleEffects\n\ lsls r0, 24\n\ cmp r0, 0\n\ bne _0803C30C\n\ @@ -1416,7 +1403,7 @@ _0803C2C4:\n\ ands r0, r1\n\ cmp r0, 0\n\ beq _0803C2DC\n\ - ldr r0, _0803C2F4 @ =gUnknown_02024BE6\n\ + ldr r0, _0803C2F4 @ =gCurrentMove\n\ ldrh r0, [r0]\n\ cmp r0, 0x4C\n\ bne _0803C2DC\n\ @@ -1436,7 +1423,7 @@ _0803C2DC:\n\ beq _0803C306\n\ b _0803C30C\n\ .align 2, 0\n\ -_0803C2F4: .4byte gUnknown_02024BE6\n\ +_0803C2F4: .4byte gCurrentMove\n\ _0803C2F8:\n\ lsls r0, r5, 4\n\ subs r0, r5\n\ diff --git a/src/clear_save_data_menu.c b/src/clear_save_data_menu.c index 690ce3f55..498562fe0 100644 --- a/src/clear_save_data_menu.c +++ b/src/clear_save_data_menu.c @@ -10,8 +10,6 @@ #include "strings2.h" #include "task.h" -extern const struct MenuAction gMenuYesNoItems[]; - static void VBlankCB_ClearSaveDataScreen(void); static void Task_InitMenu(u8); static void Task_ProcessMenuInput(u8); diff --git a/src/clock.c b/src/clock.c index b263e99ae..1f2aac9fd 100644 --- a/src/clock.c +++ b/src/clock.c @@ -1,21 +1,18 @@ #include "global.h" #include "clock.h" #include "berry.h" +#include "dewford_trend.h" #include "event_data.h" +#include "field_specials.h" +#include "field_weather.h" #include "lottery_corner.h" #include "main.h" #include "rom4.h" #include "rtc.h" +#include "time_events.h" +#include "tv.h" #include "wallclock.h" -extern void UpdateDewfordTrendPerDay(u16); -extern void UpdateTVShowsPerDay(u16); -extern void UpdateWeatherPerDay(u16); -extern void UpdatePartyPokerusTime(u16); -extern void UpdateMirageRnd(u16); -extern void UpdateBirchState(u16); -extern void SetShoalItemFlag(u16); - static void InitTimeBasedEvents(void); static void UpdatePerDay(struct Time *time); static void UpdatePerMinute(struct Time *time); diff --git a/src/contest_painting.c b/src/contest_painting.c index d7bacb905..eddcc87c1 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -1,6 +1,6 @@ #include "global.h" #include "contest_painting.h" -#include "asm.h" +#include "cute_sketch.h" #include "data2.h" #include "decompress.h" #include "main.h" @@ -11,6 +11,7 @@ #include "string_util.h" #include "strings.h" #include "text.h" +#include "unknown_task.h" extern u8 unk_2000000[]; extern u8 gUnknown_03000750; @@ -105,11 +106,6 @@ static void VBlankCB_ContestPainting(void); void sub_8106B90(); //should be static static void sub_8107090(u8 arg0, u8 arg1); -extern void sub_80FC7A0(struct Unk03005E20*); -extern void sub_80FDA18(struct Unk03005E20*); -extern void sub_80FD8CC(struct Unk03005E20*); -extern void *species_and_otid_get_pal(); - __attribute__((naked)) void sub_8106630(u32 arg0) { diff --git a/src/coord_event_weather.c b/src/coord_event_weather.c index f033e5391..9c5a1ca4d 100644 --- a/src/coord_event_weather.c +++ b/src/coord_event_weather.c @@ -1,5 +1,6 @@ #include "global.h" -#include "asm.h" +#include "coord_event_weather.h" +#include "field_weather.h" struct CoordEventWeather { diff --git a/src/credits.c b/src/credits.c index de1d52361..8ec126a41 100644 --- a/src/credits.c +++ b/src/credits.c @@ -1,8 +1,9 @@ #include "global.h" -#include "asm.h" #include "data2.h" #include "decompress.h" #include "event_data.h" +#include "hall_of_fame.h" +#include "intro_credits_graphics.h" #include "m4a.h" #include "main.h" #include "menu.h" @@ -13,6 +14,7 @@ #include "sound.h" #include "species.h" #include "starter_choose.h" +#include "task.h" #include "trig.h" asm(".set REG_BASE, 0x4000000"); @@ -21,8 +23,6 @@ asm(".set OFFSET_REG_BLDALPHA, 0x52"); asm(".set REG_BLDCNT, REG_BASE + OFFSET_REG_BLDCNT"); asm(".set REG_BLDALPHA, REG_BASE + OFFSET_REG_BLDALPHA"); -extern void *species_and_otid_get_pal(u32, u16, u16); - enum { PAGE_TITLE, @@ -70,18 +70,37 @@ enum PAGE_PROGRAMMERS, PAGE_GRAPHIC_DESIGNERS, PAGE_PRODUCT_SUPPORT, + +#if ENGLISH PAGE_ARTWORK, PAGE_TEXT_EDITOR, PAGE_NOA_TESTING, PAGE_BRAILLE_CODE_CHECK_1, PAGE_BRAILLE_CODE_CHECK_2, +#elif GERMAN + PAGE_NOE_TESTING, + PAGE_BRAILLE_CODE_CHECK_1, +#endif + PAGE_SPECIAL_THANKS_4, PAGE_SPECIAL_THANKS_5, PAGE_COUNT }; +#if ENGLISH +#define POKEMON_TILE_COUNT 68 +#define LAST_PAGE (PAGE_TEXT_EDITOR) +#define UNK_DEFINE_45 (0x45) #define UNK_DEFINE_82 (0x82) +#define UNK_DEF_1F3 (499) +#elif GERMAN +#define POKEMON_TILE_COUNT 65 +#define LAST_PAGE (PAGE_NOE_TESTING) +#define UNK_DEFINE_45 (8) +#define UNK_DEFINE_82 (0x8D) +#define UNK_DEF_1F3 (554) +#endif #define COLOR_DARK_GREEN 0x1967 #define COLOR_LIGHT_GREEN 0x328D @@ -125,7 +144,6 @@ enum TDE_TASK_A_ID = 2, }; -#define POKEMON_TILE_COUNT 68 struct Unk201C000 { @@ -169,11 +187,6 @@ extern s16 gUnknown_0203935C; extern u8 gReservedSpritePaletteCount; -// data/starter_choose -extern u16 gBirchBagGrassPal[32]; -extern u8 gBirchGrassTilemap[]; -extern u8 gBirchHelpGfx[]; - // data/hall_of_fame extern void *gUnknown_0840B5A0[]; @@ -193,14 +206,6 @@ extern const union AnimCmd *const gSpriteAnimTable_0840CA54[]; extern const union AnimCmd *const gSpriteAnimTable_0840CA94[]; extern struct SpriteTemplate gSpriteTemplate_840CAEC; -// data/intro_credits_graphics -extern const struct SpriteSheet gIntro2BrendanSpriteSheet; -extern const struct SpriteSheet gIntro2MaySpriteSheet; -extern const struct SpriteSheet gIntro2BicycleSpriteSheet; -extern const struct SpritePalette gIntro2SpritePalettes[]; -extern const struct SpriteSheet gUnknown_08416E24; -extern const struct SpriteSheet gUnknown_08416E34; - // graphics extern u8 gCreditsCopyrightEnd_Gfx[]; extern u16 gIntroCopyright_Pal[16]; @@ -228,7 +233,7 @@ static void sub_8145128(u16, u16, u16); static void sub_81452D0(u16 arg0, u16 palette); static void spritecb_player_8145378(struct Sprite *sprite); static void spritecb_rival_8145420(struct Sprite *sprite); -static u8 sub_81456B4(u16 nationalNum, u16 x, u16 y, u16 position); +static u8 sub_81456B4(u16 species, u16 x, u16 y, u16 position); static void sub_81458DC(void); static void vblank_8143948(void) @@ -443,7 +448,7 @@ void task_a_8143D04(u8 taskIdA) gReservedSpritePaletteCount = 8; LZ77UnCompVram(&gBirchHelpGfx, (void *)VRAM); LZ77UnCompVram(&gBirchGrassTilemap, (void *)(VRAM + 0x3800)); - LoadPalette(gBirchBagGrassPal + 1, 1, 31 * 2); + LoadPalette(gBirchBagGrassPal[0] + 1, 1, 31 * 2); for (i = 0; i < 0x800; i++) HALL_OF_FAME_SHEET_0[i] = 0x11; @@ -746,8 +751,6 @@ static void task_b_81441B8(u8 taskIdB) } } -#define LAST_PAGE (PAGE_TEXT_EDITOR) - static u8 sub_8144454(u8 page, u8 taskIdA) { // Starts with bike + ocean + morning @@ -942,8 +945,6 @@ void task_c_8144664(u8 taskIdC) } } -#define UNK_DEF_1F3 (499) - void task_e_8144934(u8 taskIdE) { s16 taskIdC; @@ -1008,8 +1009,6 @@ void task_e_8144934(u8 taskIdE) } } -#define UNK_DEFINE_45 (0x45) - static void sub_8144A68(u8 data, u8 taskIdA) { switch (data) @@ -1280,12 +1279,19 @@ static void sub_81452D0(u16 arg0, u16 palette) for (pos = 0; pos < 32 * 32; pos++) ((u16 *) (VRAM + arg0))[pos] = baseTile + 1; +#if ENGLISH sub_814524C(gUnknown_0840B83C, 3, 7, arg0, palette); sub_814524C(gUnknown_0840B84B, 7, 7, arg0, palette); sub_814524C(gUnknown_0840B85A, 11, 7, arg0, palette); sub_814524C(gUnknown_0840B85A, 16, 7, arg0, palette); sub_814524C(gUnknown_0840B869, 20, 7, arg0, palette); sub_814524C(gUnknown_0840B878, 24, 7, arg0, palette); +#elif GERMAN + sub_814524C(gUnknown_0840B85A, 7, 7, arg0, palette); + sub_814524C(gUnknown_0840B869, 11, 7, arg0, palette); + sub_814524C(gUnknown_0840B878, 15, 7, arg0, palette); + sub_814524C(gUnknown_0840B85A, 19, 7, arg0, palette); +#endif } static void spritecb_player_8145378(struct Sprite *sprite) @@ -1489,7 +1495,7 @@ void spritecb_81454E0(struct Sprite *sprite) { static u8 sub_81456B4(u16 species, u16 x, u16 y, u16 position) { u32 personality; - void *palette; + const u8 *lzPaletteData; u8 spriteId; u8 spriteId2; @@ -1521,8 +1527,8 @@ static u8 sub_81456B4(u16 species, u16 x, u16 y, u16 position) 1 ); - palette = species_and_otid_get_pal(species, 0, 0xFFFF); - LoadCompressedPalette(palette, 0x100 + (position * 16), 0x20); + lzPaletteData = species_and_otid_get_pal(species, 0, 0xFFFF); + LoadCompressedPalette(lzPaletteData, 0x100 + (position * 16), 0x20); sub_8143648(position, position); spriteId = CreateSprite(&gUnknown_02024E8C, x, y, 0); @@ -1566,7 +1572,7 @@ static void sub_81458DC(void) { for (dexNum = 1, seenTypesCount = 0; dexNum < 386; dexNum++) { - if (sub_8090D90(dexNum, 1)) + if (GetNationalPokedexFlag(dexNum, 1)) { unk201C000->unk90[seenTypesCount] = dexNum; seenTypesCount++; diff --git a/src/data/pokedex_entries_en.h b/src/data/pokedex_entries_en.h new file mode 100644 index 000000000..86da3d67b --- /dev/null +++ b/src/data/pokedex_entries_en.h @@ -0,0 +1,9651 @@ +static const u8 DexDescription_Dummy_1[] = _( + "This is a newly discovered POKéMON.\n" + "It is currently under investigation."); +static const u8 DexDescription_Dummy_2[] = _( + "No detailed information is available\n" + "at this time."); + +static const u8 DexDescription_Bulbasaur_1[] = _( + "BULBASAUR can be seen napping in\n" + "bright sunlight.\n" + "There is a seed on its back."); +static const u8 DexDescription_Bulbasaur_2[] = _( + "By soaking up the sun’s rays, the seed\n" + "grows progressively larger."); + +static const u8 DexDescription_Ivysaur_1[] = _( + "There is a bud on this POKéMON’s back.\n" + "To support its weight, IVYSAUR’s legs\n" + "and trunk grow thick and strong."); +static const u8 DexDescription_Ivysaur_2[] = _( + "If it starts spending more time lying\n" + "in the sunlight, it’s a sign that the\n" + "bud will bloom into a large flower soon."); + +static const u8 DexDescription_Venusaur_1[] = _( + "There is a large flower on VENUSAUR’s\n" + "back. The flower is said to take on vivid\n" + "colors if it gets plenty of nutrition"); +static const u8 DexDescription_Venusaur_2[] = _( + "and sunlight. The flower’s aroma\n" + "soothes the emotions of people."); + +static const u8 DexDescription_Charmander_1[] = _( + "The flame that burns at the tip of its\n" + "tail is an indication of its emotions.\n" + "The flame wavers when CHARMANDER is"); +static const u8 DexDescription_Charmander_2[] = _( + "enjoying itself. If the POKéMON becomes\n" + "enraged, the flame burns fiercely."); + +static const u8 DexDescription_Charmeleon_1[] = _( + "CHARMELEON mercilessly destroys its\n" + "foes using its sharp claws.\n" + "If it encounters a strong foe, it turns"); +static const u8 DexDescription_Charmeleon_2[] = _( + "aggressive. In this excited state, the\n" + "flame at the tip of its tail flares with a\n" + "bluish white color."); + +static const u8 DexDescription_Charizard_1[] = _( + "CHARIZARD flies around the sky in\n" + "search of powerful opponents.\n" + "It breathes fire of such great heat"); +static const u8 DexDescription_Charizard_2[] = _( + "that it melts anything. However, it\n" + "never turns its fiery breath on any\n" + "opponent weaker than itself."); + +static const u8 DexDescription_Squirtle_1[] = _( + "SQUIRTLE’s shell is not merely used\n" + "for protection.\n" + "The shell’s rounded shape and the"); +static const u8 DexDescription_Squirtle_2[] = _( + "grooves on its surface help minimize\n" + "resistance in water, enabling this\n" + "POKéMON to swim at high speeds."); + +static const u8 DexDescription_Wartortle_1[] = _( + "Its tail is large and covered with a rich,\n" + "thick fur. The tail becomes increasingly\n" + "deeper in color as WARTORTLE ages."); +static const u8 DexDescription_Wartortle_2[] = _( + "The scratches on its shell are evidence\n" + "of this POKéMON’s toughness as a\n" + "battler."); + +static const u8 DexDescription_Blastoise_1[] = _( + "BLASTOISE has water spouts that\n" + "protrude from its shell. The water\n" + "spouts are very accurate."); +static const u8 DexDescription_Blastoise_2[] = _( + "They can shoot bullets of water with\n" + "enough accuracy to strike empty cans\n" + "from a distance of over 160 feet."); + +static const u8 DexDescription_Caterpie_1[] = _( + "CATERPIE has a voracious appetite.\n" + "It can devour leaves bigger than its\n" + "body right before your eyes."); +static const u8 DexDescription_Caterpie_2[] = _( + "From its antenna, this POKéMON releases\n" + "a terrifically strong odor."); + +static const u8 DexDescription_Metapod_1[] = _( + "The shell covering this POKéMON’s body\n" + "is as hard as an iron slab.\n" + "METAPOD does not move very much."); +static const u8 DexDescription_Metapod_2[] = _( + "It stays still because it is preparing\n" + "its soft innards for evolution inside\n" + "the hard shell."); + +static const u8 DexDescription_Butterfree_1[] = _( + "BUTTERFREE has a superior ability to\n" + "search for delicious honey from\n" + "flowers."); +static const u8 DexDescription_Butterfree_2[] = _( + "It can even search out, extract, and\n" + "carry honey from flowers that are\n" + "blooming over six miles from its nest."); + +static const u8 DexDescription_Weedle_1[] = _( + "WEEDLE has an extremely acute sense\n" + "of smell.\n" + "It is capable of distinguishing its"); +static const u8 DexDescription_Weedle_2[] = _( + "favorite kinds of leaves from those it\n" + "dislikes just by sniffing with its big\n" + "red proboscis (nose)."); + +static const u8 DexDescription_Kakuna_1[] = _( + "KAKUNA remains virtually immobile as it\n" + "clings to a tree. However, on the\n" + "inside, it is extremely busy as it"); +static const u8 DexDescription_Kakuna_2[] = _( + "prepares for its coming evolution.\n" + "This is evident from how hot the shell\n" + "becomes to the touch."); + +static const u8 DexDescription_Beedrill_1[] = _( + "BEEDRILL is extremely territorial.\n" + "No one should ever approach its nest -\n" + "this is for their own safety."); +static const u8 DexDescription_Beedrill_2[] = _( + "If angered, they will attack in a furious\n" + "swarm."); + +static const u8 DexDescription_Pidgey_1[] = _( + "PIDGEY has an extremely sharp sense\n" + "of direction.\n" + "It is capable of unerringly returning"); +static const u8 DexDescription_Pidgey_2[] = _( + "home to its nest, however far it may be\n" + "removed from its familiar surroundings."); + +static const u8 DexDescription_Pidgeotto_1[] = _( + "PIDGEOTTO claims a large area as its\n" + "own territory. This POKéMON flies\n" + "around, patrolling its living space."); +static const u8 DexDescription_Pidgeotto_2[] = _( + "If its territory is violated, it shows\n" + "no mercy in thoroughly punishing the\n" + "foe with its sharp claws."); + +static const u8 DexDescription_Pidgeot_1[] = _( + "This POKéMON has a dazzling plumage of\n" + "beautifully glossy feathers.\n" + "Many TRAINERS are captivated by the"); +static const u8 DexDescription_Pidgeot_2[] = _( + "striking beauty of the feathers on its\n" + "head, compelling them to choose PIDGEOT\n" + "as their POKéMON."); + +static const u8 DexDescription_Rattata_1[] = _( + "RATTATA is cautious in the extreme.\n" + "Even while it is asleep, it constantly\n" + "listens by moving its ears around."); +static const u8 DexDescription_Rattata_2[] = _( + "It is not picky about where it lives -\n" + "it will make its nest anywhere."); + +static const u8 DexDescription_Raticate_1[] = _( + "RATICATE’s sturdy fangs grow steadily.\n" + "To keep them ground down, it gnaws\n" + "on rocks and logs."); +static const u8 DexDescription_Raticate_2[] = _( + "It may even chew on the walls of\n" + "houses."); + +static const u8 DexDescription_Spearow_1[] = _( + "SPEAROW has a very loud cry that can\n" + "be heard over half a mile away.\n" + "If its high, keening cry is heard"); +static const u8 DexDescription_Spearow_2[] = _( + "echoing all around, it is a sign that\n" + "they are warning each other of danger."); + +static const u8 DexDescription_Fearow_1[] = _( + "FEAROW is recognized by its long neck\n" + "and elongated beak.\n" + "They are conveniently shaped for"); +static const u8 DexDescription_Fearow_2[] = _( + "catching prey in soil or water.\n" + "It deftly moves its long and skinny\n" + "beak to pluck prey."); + +static const u8 DexDescription_Ekans_1[] = _( + "EKANS curls itself up in a spiral while\n" + "it rests.\n" + "Assuming this position allows it to"); +static const u8 DexDescription_Ekans_2[] = _( + "quickly respond to a threat from any\n" + "direction with a glare from its upraised\n" + "head."); + +static const u8 DexDescription_Arbok_1[] = _( + "This POKéMON is terrifically strong in\n" + "order to constrict things with its body.\n" + "It can even flatten steel oil drums."); +static const u8 DexDescription_Arbok_2[] = _( + "Once ARBOK wraps its body around its\n" + "foe, escaping its crunching embrace is\n" + "impossible."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Pikachu_1[] = _( + "This POKéMON has electricity-storing\n" + "pouches on its cheeks. These appear to\n" + "become electrically charged during the"); +static const u8 DexDescription_Pikachu_2[] = _( + "night while PIKACHU sleeps.\n" + "It occasionally discharges electricity\n" + "when it is dozy after waking up."); +#else +static const u8 DexDescription_Pikachu_1[] = _( + "Whenever PIKACHU comes across\n" + "something new, it blasts it with a jolt\n" + "of electricity."); +static const u8 DexDescription_Pikachu_2[] = _( + "If you come across a blackened berry,\n" + "it’s evidence that this POKéMON\n" + "mistook the intensity of its charge."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Raichu_1[] = _( + "This POKéMON exudes a weak electrical\n" + "charge from all over its body that makes\n" + "it take on a slight glow in darkness."); +static const u8 DexDescription_Raichu_2[] = _( + "RAICHU searches for electricity by\n" + "planting its tail in the ground."); +#else +static const u8 DexDescription_Raichu_1[] = _( + "If the electrical sacks become\n" + "excessively charged, RAICHU plants its\n" + "tail in the ground and discharges."); +static const u8 DexDescription_Raichu_2[] = _( + "Scorched patches of ground will be\n" + "found near this POKéMON’s nest."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Sandshrew_1[] = _( + "SANDSHREW has a very dry hide that is\n" + "extremely tough. The POKéMON can roll\n" + "into a ball that repels any attack."); +static const u8 DexDescription_Sandshrew_2[] = _( + "At night, it burrows into the desert\n" + "sand to sleep."); +#else +static const u8 DexDescription_Sandshrew_1[] = _( + "SANDSHREW’s body is configured to\n" + "absorb water without waste, enabling it\n" + "to survive in an arid desert."); +static const u8 DexDescription_Sandshrew_2[] = _( + "This POKéMON curls up to protect itself\n" + "from its enemies."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Sandslash_1[] = _( + "SANDSLASH can roll up its body as if it\n" + "were a ball covered with large spikes.\n" + "In battle, this POKéMON will try to make"); +static const u8 DexDescription_Sandslash_2[] = _( + "the foe flinch by jabbing it with its\n" + "spines. It then leaps at the stunned\n" + "foe to tear wildly with its sharp claws."); +#else +static const u8 DexDescription_Sandslash_1[] = _( + "SANDSLASH’s body is covered by tough\n" + "spikes, which are hardened sections of\n" + "its hide. Once a year, the old spikes fall"); +static const u8 DexDescription_Sandslash_2[] = _( + "out, to be replaced with new spikes that\n" + "grow out from beneath the old ones."); +#endif + +static const u8 DexDescription_NidoranF_1[] = _( + "NIDORAN has barbs that secrete a\n" + "powerful poison. They are thought to\n" + "have developed as protection for this"); +static const u8 DexDescription_NidoranF_2[] = _( + "small-bodied POKéMON.\n" + "When enraged, it releases a horrible\n" + "toxin from its horn."); + +static const u8 DexDescription_Nidorina_1[] = _( + "When NIDORINA are with their friends or\n" + "family, they keep their barbs tucked\n" + "away to prevent hurting each other."); +static const u8 DexDescription_Nidorina_2[] = _( + "This POKéMON appears to become\n" + "nervous if separated from the others."); + +static const u8 DexDescription_Nidoqueen_1[] = _( + "NIDOQUEEN’s body is encased in\n" + "extremely hard scales. It is adept at\n" + "sending foes flying with harsh tackles."); +static const u8 DexDescription_Nidoqueen_2[] = _( + "This POKéMON is at its strongest when\n" + "it is defending its young."); + +static const u8 DexDescription_NidoranM_1[] = _( + "The male NIDORAN has developed\n" + "muscles for moving its ears. Thanks to\n" + "them, the ears can be freely moved in"); +static const u8 DexDescription_NidoranM_2[] = _( + "any direction. Even the slightest sound\n" + "does not escape this POKéMON’s notice."); + +static const u8 DexDescription_Nidorino_1[] = _( + "NIDORINO has a horn that is harder than\n" + "a diamond. If it senses a hostile\n" + "presence, all the barbs on its back"); +static const u8 DexDescription_Nidorino_2[] = _( + "bristle up at once, and it challenges\n" + "the foe with all its might."); + +static const u8 DexDescription_Nidoking_1[] = _( + "NIDOKING’s thick tail packs enormously\n" + "destructive power. With one swing, it\n" + "can topple a metal transmission tower."); +static const u8 DexDescription_Nidoking_2[] = _( + "Once this POKéMON goes on a rampage,\n" + "there is no stopping it."); + +static const u8 DexDescription_Clefairy_1[] = _( + "On every night of a full moon, groups of\n" + "this POKéMON come out to play.\n" + "When dawn arrives, the tired CLEFAIRY"); +static const u8 DexDescription_Clefairy_2[] = _( + "return to their quiet mountain retreats\n" + "and go to sleep nestled up against each\n" + "other."); + +static const u8 DexDescription_Clefable_1[] = _( + "CLEFABLE moves by skipping lightly as if\n" + "it were flying using its wings. Its\n" + "bouncy step lets it even walk on water."); +static const u8 DexDescription_Clefable_2[] = _( + "It is known to take strolls on lakes on\n" + "quiet, moonlit nights."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Vulpix_1[] = _( + "Inside VULPIX’s body burns a flame that\n" + "never goes out. During the daytime,\n" + "when the temperatures rise, this"); +static const u8 DexDescription_Vulpix_2[] = _( + "POKéMON releases flames from its mouth\n" + "to prevent its body from growing too\n" + "hot."); +#else +static const u8 DexDescription_Vulpix_1[] = _( + "At the time of its birth, VULPIX has one\n" + "white tail. The tail separates into six\n" + "if this POKéMON receives plenty of love"); +static const u8 DexDescription_Vulpix_2[] = _( + "from its TRAINER.\n" + "The six tails become magnificently\n" + "curled."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Ninetales_1[] = _( + "Legend has it that NINETALES came into\n" + "being when nine wizards possessing\n" + "sacred powers merged into one."); +static const u8 DexDescription_Ninetales_2[] = _( + "This POKéMON is highly intelligent - it\n" + "can understand human speech."); +#else +static const u8 DexDescription_Ninetales_1[] = _( + "NINETALES casts a sinister light from\n" + "its bright red eyes to gain total\n" + "control over its foe’s mind."); +static const u8 DexDescription_Ninetales_2[] = _( + "This POKéMON is said to live for a\n" + "thousand years."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Jigglypuff_1[] = _( + "When this POKéMON sings, it never\n" + "pauses to breathe. If it is in a battle\n" + "against an opponent that does not"); +static const u8 DexDescription_Jigglypuff_2[] = _( + "easily fall asleep, JIGGLYPUFF cannot\n" + "breathe, endangering its life."); +#else +static const u8 DexDescription_Jigglypuff_1[] = _( + "JIGGLYPUFF’s vocal chords can freely\n" + "adjust the wavelength of its voice.\n" + "This POKéMON uses this ability to sing"); +static const u8 DexDescription_Jigglypuff_2[] = _( + "at precisely the right wavelength to\n" + "make its foes most drowsy."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Wigglytuff_1[] = _( + "WIGGLYTUFF’s body is very flexible.\n" + "By inhaling deeply, this POKéMON can\n" + "inflate itself seemingly without end."); +static const u8 DexDescription_Wigglytuff_2[] = _( + "Once inflated, WIGGLYTUFF bounces\n" + "along lightly like a balloon."); +#else +static const u8 DexDescription_Wigglytuff_1[] = _( + "WIGGLYTUFF has large, saucerlike eyes.\n" + "The surfaces of its eyes are always\n" + "covered with a thin layer of tears."); +static const u8 DexDescription_Wigglytuff_2[] = _( + "If any dust gets in this POKéMON’s\n" + "eyes, it is quickly washed away."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Zubat_1[] = _( + "ZUBAT avoids sunlight because exposure\n" + "causes it to become unhealthy.\n" + "During the daytime, it stays in caves or"); +static const u8 DexDescription_Zubat_2[] = _( + "under the eaves of old houses, sleeping\n" + "while hanging upside down."); +#else +static const u8 DexDescription_Zubat_1[] = _( + "ZUBAT remains quietly unmoving in a\n" + "dark spot during the bright daylight\n" + "hours. It does so because prolonged"); +static const u8 DexDescription_Zubat_2[] = _( + "exposure to the sun causes its body to\n" + "become slightly burned."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Golbat_1[] = _( + "GOLBAT bites down on prey with its four\n" + "fangs and drinks the victim’s blood.\n" + "It becomes active on inky dark"); +static const u8 DexDescription_Golbat_2[] = _( + "moonless nights, flying around to\n" + "attack people and POKéMON."); +#else +static const u8 DexDescription_Golbat_1[] = _( + "GOLBAT loves to drink the blood of\n" + "living things. It is particularly active\n" + "in the pitch black of night."); +static const u8 DexDescription_Golbat_2[] = _( + "This POKéMON flits around in the night\n" + "skies, seeking fresh blood."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Oddish_1[] = _( + "ODDISH searches for fertile, nutrient-\n" + "rich soil, then plants itself.\n" + "During the daytime, while it is planted,"); +static const u8 DexDescription_Oddish_2[] = _( + "this POKéMON’s feet are thought to\n" + "change shape and become similar to\n" + "the roots of trees."); +#else +static const u8 DexDescription_Oddish_1[] = _( + "During the daytime, ODDISH buries\n" + "itself in soil to absorb nutrients from \n" + "the ground using its entire body."); +static const u8 DexDescription_Oddish_2[] = _( + "The more fertile the soil, the glossier\n" + "its leaves become."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Gloom_1[] = _( + "From its mouth GLOOM drips honey that\n" + "smells absolutely horrible.\n" + "Apparently, it loves the horrid stench."); +static const u8 DexDescription_Gloom_2[] = _( + "It sniffs the noxious fumes and then \n" + "drools even more of its honey."); +#else +static const u8 DexDescription_Gloom_1[] = _( + "GLOOM releases a foul fragrance from\n" + "the pistil of its flower. When faced\n" + "with danger, the stench worsens."); +static const u8 DexDescription_Gloom_2[] = _( + "If this POKéMON is feeling calm and\n" + "secure, it does not release its usual\n" + "stinky aroma."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Vileplume_1[] = _( + "VILEPLUME has the world’s largest\n" + "petals. They are used to attract prey\n" + "that are then doused with toxic spores."); +static const u8 DexDescription_Vileplume_2[] = _( + "Once the prey are immobilized, this\n" + "POKéMON catches and devours them."); +#else +static const u8 DexDescription_Vileplume_1[] = _( + "VILEPLUME’s toxic pollen triggers\n" + "atrocious allergy attacks. That’s why\n" + "it is advisable never to approach any"); +static const u8 DexDescription_Vileplume_2[] = _( + "attractive flowers in a jungle, however\n" + "pretty they may be."); +#endif + +#ifdef SAPPHIRE +#if REVISION >= 1 +static const u8 DexDescription_Paras_1[] = _( + "PARAS has parasitic mushrooms growing\n" + "on its back called tochukaso. They grow\n" + "large by drawing nutrients from this"); +static const u8 DexDescription_Paras_2[] = _( + "BUG/GRASS POKéMON host. They are\n" // Identify Paras as BUG/GRASS type rather than just BUG + "highly valued as a medicine for\n" + "extending life."); +#else +static const u8 DexDescription_Paras_1[] = _( + "PARAS has parasitic mushrooms growing\n" + "on its back called tochukaso. They grow\n" + "large by drawing nutrients from this"); +static const u8 DexDescription_Paras_2[] = _( + "BUG POKéMON host. They are highly\n" + "valued as a medicine for extending life."); +#endif +#else +#if REVISION >= 1 +static const u8 DexDescription_Paras_1[] = _( + "PARAS has parasitic mushrooms growing\n" + "on its back called tochukaso. They grow\n" + "large by drawing nutrients from this"); +static const u8 DexDescription_Paras_2[] = _( + "BUG/GRASS POKéMON host. They are\n" + "highly valued as a medicine for\n" + "extending life."); +#else +static const u8 DexDescription_Paras_1[] = _( + "PARAS has parasitic mushrooms growing\n" + "on its back called tochukaso. They grow\n" + "large by drawing nutrients from the BUG"); +static const u8 DexDescription_Paras_2[] = _( + "POKéMON host. They are highly valued as\n" + "a medicine for extending life."); +#endif +#endif + +static const u8 DexDescription_Parasect_1[] = _( + "PARASECT is known to infest large trees\n" + "en masse and drain nutrients from the\n" + "lower trunk and roots."); +static const u8 DexDescription_Parasect_2[] = _( + "When an infested tree dies, they move\n" + "onto another tree all at once."); + +static const u8 DexDescription_Venonat_1[] = _( + "VENONAT is said to have evolved with\n" + "a coat of thin, stiff hair that covers\n" + "its entire body for protection."); +static const u8 DexDescription_Venonat_2[] = _( + "It possesses large eyes that never fail\n" + "to spot even miniscule prey."); + +static const u8 DexDescription_Venomoth_1[] = _( + "VENOMOTH is nocturnal - it is a POKéMON\n" + "that only becomes active at night.\n" + "Its favorite prey are small insects"); +static const u8 DexDescription_Venomoth_2[] = _( + "that gather around streetlights,\n" + "attracted by the light in the darkness."); + +static const u8 DexDescription_Diglett_1[] = _( + "DIGLETT are raised in most farms.\n" + "The reason is simple - wherever this\n" + "POKéMON burrows, the soil is left"); +static const u8 DexDescription_Diglett_2[] = _( + "perfectly tilled for planting crops.\n" + "This soil is made ideal for growing\n" + "delicious vegetables."); + +static const u8 DexDescription_Dugtrio_1[] = _( + "DUGTRIO are actually triplets that\n" + "emerged from one body. As a result,\n" + "each triplet thinks exactly like the"); +static const u8 DexDescription_Dugtrio_2[] = _( + "other two triplets.\n" + "They work cooperatively to burrow\n" + "endlessly."); + +static const u8 DexDescription_Meowth_1[] = _( + "MEOWTH withdraws its sharp claws into\n" + "its paws to slinkily sneak about without\n" + "making any incriminating footsteps."); +static const u8 DexDescription_Meowth_2[] = _( + "For some reason, this POKéMON loves\n" + "shiny coins that glitter with light."); + +static const u8 DexDescription_Persian_1[] = _( + "PERSIAN has six bold whiskers that give\n" + "it a look of toughness. The whiskers \n" + "sense air movements to determine what"); +static const u8 DexDescription_Persian_2[] = _( + "is in the POKéMON’s surrounding\n" + "vicinity. It becomes docile if grabbed\n" + "by the whiskers."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Psyduck_1[] = _( + "If it uses its mysterious power,\n" + "PSYDUCK can’t remember having done so.\n" + "It apparently can’t form a memory of"); +static const u8 DexDescription_Psyduck_2[] = _( + "such an event because it goes into\n" + "an altered state that is much like\n" + "deep sleep."); +#else +static const u8 DexDescription_Psyduck_1[] = _( + "PSYDUCK uses a mysterious power.\n" + "When it does so, this POKéMON \n" + "generates brain waves that are"); +static const u8 DexDescription_Psyduck_2[] = _( + "supposedly only seen in sleepers.\n" + "This discovery spurred controversy\n" + "among scholars."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Golduck_1[] = _( + "GOLDUCK is the fastest swimmer among\n" + "all POKéMON. It swims effortlessly, even\n" + "in a rough, stormy sea."); +static const u8 DexDescription_Golduck_2[] = _( + "It sometimes rescues people from\n" + "wrecked ships floundering in high seas."); +#else +static const u8 DexDescription_Golduck_1[] = _( + "The webbed flippers on its forelegs and\n" + "hind legs and the streamlined body of\n" + "GOLDUCK give it frightening speed."); +static const u8 DexDescription_Golduck_2[] = _( + "This POKéMON is definitely much faster\n" + "than even the most athletic swimmer."); +#endif + +static const u8 DexDescription_Mankey_1[] = _( + "When MANKEY starts shaking and its\n" + "nasal breathing turns rough, it’s a sure\n" + "sign that it is becoming angry."); +static const u8 DexDescription_Mankey_2[] = _( + "However, because it goes into a\n" + "towering rage almost instantly, it is\n" + "impossible for anyone to flee its wrath."); + +static const u8 DexDescription_Primeape_1[] = _( + "When PRIMEAPE becomes furious, its\n" + "blood circulation is boosted. In turn,\n" + "its muscles are made even stronger."); +static const u8 DexDescription_Primeape_2[] = _( + "However, it also becomes much less\n" + "intelligent at the same time."); + +static const u8 DexDescription_Growlithe_1[] = _( + "GROWLITHE has a superb sense of smell.\n" + "Once it smells anything, this POKéMON\n" + "won’t forget the scent, no matter what."); +static const u8 DexDescription_Growlithe_2[] = _( + "It uses its advanced olfactory sense\n" + "to determine the emotions of other\n" + "living things."); + +static const u8 DexDescription_Arcanine_1[] = _( + "ARCANINE is known for its high speed.\n" + "It is said to be capable of running over\n" + "6,200 miles in a single day and night."); +static const u8 DexDescription_Arcanine_2[] = _( + "The fire that blazes wildly within this\n" + "POKéMON’s body is its source of power."); + +static const u8 DexDescription_Poliwag_1[] = _( + "POLIWAG has a very thin skin. It is\n" + "possible to see the POKéMON’s spiral\n" + "innards right through the skin."); +static const u8 DexDescription_Poliwag_2[] = _( + "Despite its thinness, however, the skin\n" + "is also very flexible. Even sharp fangs\n" + "bounce right off it."); + +static const u8 DexDescription_Poliwhirl_1[] = _( + "The surface of POLIWHIRL’s body is\n" + "always wet and slick with an oily fluid.\n" + "Because of this greasy covering, it can"); +static const u8 DexDescription_Poliwhirl_2[] = _( + "easily slip and slide out of the clutches\n" + "of any enemy in battle."); + +static const u8 DexDescription_Poliwrath_1[] = _( + "POLIWRATH’s highly developed, brawny\n" + "muscles never grow fatigued, however\n" + "much it exercises."); +static const u8 DexDescription_Poliwrath_2[] = _( + "It is so tirelessly strong, this POKéMON\n" + "can swim back and forth across the\n" + "Pacific Ocean without effort."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Abra_1[] = _( + "ABRA needs to sleep for eighteen hours\n" + "a day. If it doesn’t, this POKéMON loses\n" + "its ability to use telekinetic powers."); +static const u8 DexDescription_Abra_2[] = _( + "If it is attacked, ABRA escapes using\n" + "TELEPORT while it is still sleeping."); +#else +static const u8 DexDescription_Abra_1[] = _( + "ABRA sleeps for eighteen hours a day.\n" + "However, it can sense the presence of\n" + "foes even while it is sleeping."); +static const u8 DexDescription_Abra_2[] = _( + "In such a situation, this POKéMON\n" + "immediately teleports to safety."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Kadabra_1[] = _( + "KADABRA holds a silver spoon in its\n" + "hand. The spoon is used to amplify the\n" + "alpha waves in its brain."); +static const u8 DexDescription_Kadabra_2[] = _( + "Without the spoon, the POKéMON is said\n" + "to be limited to half the usual amount\n" + "of its telekinetic powers."); +#else +static const u8 DexDescription_Kadabra_1[] = _( + "KADABRA emits a peculiar alpha wave\n" + "if it develops a headache. Only those\n" + "people with a particularly strong"); +static const u8 DexDescription_Kadabra_2[] = _( + "psyche can hope to become a TRAINER\n" + "of this POKéMON."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Alakazam_1[] = _( + "ALAKAZAM’s brain continually grows,\n" + "infinitely multiplying brain cells.\n" + "This amazing brain gives this POKéMON"); +static const u8 DexDescription_Alakazam_2[] = _( + "an astoundingly high IQ of 5,000.\n" + "It has a thorough memory of everything\n" + "that has occurred in the world."); +#else +static const u8 DexDescription_Alakazam_1[] = _( + "ALAKAZAM’s brain continually grows,\n" + "making its head far too heavy to\n" + "support with its neck."); +static const u8 DexDescription_Alakazam_2[] = _( + "This POKéMON holds its head up using\n" + "its psychokinetic power instead."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Machop_1[] = _( + "MACHOP exercises by hefting around\n" + "a GRAVELER as if it were a barbell.\n" + "There are some MACHOP that travel"); +static const u8 DexDescription_Machop_2[] = _( + "the world in a quest to master all\n" + "kinds of martial arts."); +#else +static const u8 DexDescription_Machop_1[] = _( + "MACHOP’s muscles are special - they\n" + "never get sore no matter how much they\n" + "are used in exercise."); +static const u8 DexDescription_Machop_2[] = _( + "This POKéMON has sufficient power to\n" + "hurl a hundred adult humans."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Machoke_1[] = _( + "MACHOKE undertakes bodybuilding every\n" + "day even as it helps people with tough,\n" + "physically demanding labor."); +static const u8 DexDescription_Machoke_2[] = _( + "On its days off, this POKéMON heads to\n" + "the fields and mountains to exercise\n" + "and train."); +#else +static const u8 DexDescription_Machoke_1[] = _( + "MACHOKE’s thoroughly toned muscles\n" + "possess the hardness of steel.\n" + "This POKéMON has so much strength,"); +static const u8 DexDescription_Machoke_2[] = _( + "it can easily hold aloft a sumo wrestler\n" + "on just one finger."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Machamp_1[] = _( + "MACHAMP is known as the POKéMON that\n" + "has mastered every kind of martial arts.\n" + "If it grabs hold of the foe with its four"); +static const u8 DexDescription_Machamp_2[] = _( + "arms, the battle is all but over.\n" + "The hapless foe is thrown far over the\n" + "horizon."); +#else +static const u8 DexDescription_Machamp_1[] = _( + "MACHAMP has the power to hurl anything\n" + "aside. However, trying to do any work\n" + "requiring care and dexterity causes"); +static const u8 DexDescription_Machamp_2[] = _( + "its arms to get tangled.\n" + "This POKéMON tends to leap into action\n" + "before it thinks."); +#endif + +static const u8 DexDescription_Bellsprout_1[] = _( + "BELLSPROUT’s thin and flexible body\n" + "lets it bend and sway to avoid any\n" + "attack, however strong it may be."); +static const u8 DexDescription_Bellsprout_2[] = _( + "From its mouth, this POKéMON spits a\n" + "corrosive fluid that melts even iron."); + +static const u8 DexDescription_Weepinbell_1[] = _( + "WEEPINBELL has a large hook on its rear\n" + "end. At night, the POKéMON hooks on to\n" + "a tree branch and goes to sleep."); +static const u8 DexDescription_Weepinbell_2[] = _( + "If it moves around in its sleep, it may\n" + "wake up to find itself on the ground."); + +static const u8 DexDescription_Victreebel_1[] = _( + "VICTREEBEL has a long vine that\n" + "extends from its head. This vine is\n" + "waved and flicked about as if it were"); +static const u8 DexDescription_Victreebel_2[] = _( + "an animal to attract prey. When an\n" + "unsuspecting prey draws near, this\n" + "POKéMON swallows it whole."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Tentacool_1[] = _( + "TENTACOOL absorbs sunlight and\n" + "refracts it using water inside its body\n" + "to convert it into beam energy."); +static const u8 DexDescription_Tentacool_2[] = _( + "This POKéMON shoots beams from its\n" + "crystal-like eyes."); +#else +static const u8 DexDescription_Tentacool_1[] = _( + "TENTACOOL’s body is largely composed\n" + "of water. If it is removed from the\n" + "sea, it dries up like parchment."); +static const u8 DexDescription_Tentacool_2[] = _( + "If this POKéMON happens to become\n" + "dehydrated, put it back into the sea."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Tentacruel_1[] = _( + "TENTACRUEL has tentacles that can be\n" + "freely elongated and shortened at will.\n" + "It ensnares prey with its tentacles and"); +static const u8 DexDescription_Tentacruel_2[] = _( + "weakens the prey by dosing it with a\n" + "harsh toxin. It can catch up to 80\n" + "prey at the same time."); +#else +static const u8 DexDescription_Tentacruel_1[] = _( + "TENTACRUEL has large red orbs on its\n" + "head. The orbs glow before lashing the\n" + "vicinity with a harsh ultrasonic blast."); +static const u8 DexDescription_Tentacruel_2[] = _( + "This POKéMON’s outburst creates rough\n" + "waves around it."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Geodude_1[] = _( + "When GEODUDE sleeps deeply, it buries\n" + "itself halfway into the ground.\n" + "It will not awaken even if hikers step"); +static const u8 DexDescription_Geodude_2[] = _( + "on it unwittingly.\n" + "In the morning, this POKéMON rolls\n" + "downhill in search of food."); +#else +static const u8 DexDescription_Geodude_1[] = _( + "The longer a GEODUDE lives, the more\n" + "its edges are chipped and worn away,\n" + "making it more rounded in appearance."); +static const u8 DexDescription_Geodude_2[] = _( + "However, this POKéMON’s heart will\n" + "remain hard, craggy, and rough always."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Graveler_1[] = _( + "Rocks are GRAVELER’s favorite food.\n" + "This POKéMON will climb a mountain from\n" + "the base to the summit, crunchingly"); +static const u8 DexDescription_Graveler_2[] = _( + "feasting on rocks all the while.\n" + "Upon reaching the peak, it rolls back\n" + "down to the bottom."); +#else +static const u8 DexDescription_Graveler_1[] = _( + "GRAVELER grows by feeding on rocks.\n" + "Apparently, it prefers to eat rocks\n" + "that are covered in moss."); +static const u8 DexDescription_Graveler_2[] = _( + "This POKéMON eats its way through\n" + "a ton of rocks on a daily basis."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Golem_1[] = _( + "GOLEM is known for rolling down from\n" + "mountains. To prevent them from rolling\n" + "into the homes of people downhill,"); +static const u8 DexDescription_Golem_2[] = _( + "grooves have been dug into the sides of\n" + "mountains to serve as guideways for\n" + "diverting this POKéMON’s course."); +#else +static const u8 DexDescription_Golem_1[] = _( + "GOLEM live up on mountains.\n" + "If there is a large earthquake, these\n" + "POKéMON will come rolling down off"); +static const u8 DexDescription_Golem_2[] = _( + "the mountains en masse to the\n" + "foothills below."); +#endif + +static const u8 DexDescription_Ponyta_1[] = _( + "PONYTA is very weak at birth.\n" + "It can barely stand up.\n" + "This POKéMON becomes stronger by"); +static const u8 DexDescription_Ponyta_2[] = _( + "stumbling and falling to keep up with\n" + "its parent."); + +static const u8 DexDescription_Rapidash_1[] = _( + "RAPIDASH usually can be seen casually\n" + "cantering in the fields and plains.\n" + "However, when this POKéMON turns"); +static const u8 DexDescription_Rapidash_2[] = _( + "serious, its fiery manes flare and blaze\n" + "as it gallops its way up to 150 mph."); + +static const u8 DexDescription_Slowpoke_1[] = _( + "SLOWPOKE uses its tail to catch prey by\n" + "dipping it in water at the side of a\n" + "river."); +static const u8 DexDescription_Slowpoke_2[] = _( + "However, this POKéMON often forgets\n" + "what it’s doing and often spends entire\n" + "days just loafing at water’s edge."); + +static const u8 DexDescription_Slowbro_1[] = _( + "SLOWBRO’s tail has a SHELLDER firmly\n" + "attached with a bite. As a result, the\n" + "tail can’t be used for fishing anymore."); +static const u8 DexDescription_Slowbro_2[] = _( + "This causes SLOWBRO to grudgingly swim\n" + "and catch prey instead."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Magnemite_1[] = _( + "MAGNEMITE floats in the air by emitting\n" + "electromagnetic waves from the units\n" + "at its sides. These waves block gravity."); +static const u8 DexDescription_Magnemite_2[] = _( + "This POKéMON becomes incapable of\n" + "flight if its internal electrical supply\n" + "is depleted."); +#else +static const u8 DexDescription_Magnemite_1[] = _( + "MAGNEMITE attaches itself to power\n" + "lines to feed on electricity.\n" + "If your house has a power outage,"); +static const u8 DexDescription_Magnemite_2[] = _( + "check your circuit breakers. You may\n" + "find a large number of this POKéMON\n" + "clinging to the breaker box."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Magneton_1[] = _( + "MAGNETON emits a powerful magnetic\n" + "force that is fatal to electronics and\n" + "precision instruments. Because of"); +static const u8 DexDescription_Magneton_2[] = _( + "this, it is said that some towns warn\n" + "people to keep this POKéMON inside\n" + "a POKé BALL."); +#else +static const u8 DexDescription_Magneton_1[] = _( + "MAGNETON emits a powerful magnetic\n" + "force that is fatal to mechanical\n" + "devices. As a result, large cities sound"); +static const u8 DexDescription_Magneton_2[] = _( + "sirens to warn citizens of large-scale\n" + "outbreaks of this POKéMON."); +#endif + +static const u8 DexDescription_Farfetchd_1[] = _( + "FARFETCH’D is always seen with a stick\n" + "from a plant of some sort. Apparently,\n" + "there are good sticks and bad sticks."); +static const u8 DexDescription_Farfetchd_2[] = _( + "This POKéMON has been known to fight\n" + "with others over sticks."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Doduo_1[] = _( + "DODUO’s two heads contain completely\n" + "identical brains.\n" + "A scientific study reported that on"); +static const u8 DexDescription_Doduo_2[] = _( + "rare occasions, there will be examples\n" + "of this POKéMON possessing different\n" + "sets of brains."); +#else +static const u8 DexDescription_Doduo_1[] = _( + "DODUO’s two heads never sleep at the\n" + "same time.\n" + "Its two heads take turns sleeping,"); +static const u8 DexDescription_Doduo_2[] = _( + "so one head can always keep watch for\n" + "enemies while the other one sleeps."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Dodrio_1[] = _( + "Apparently, the heads aren’t the only\n" + "parts of the body that DODRIO has\n" + "three of."); +static const u8 DexDescription_Dodrio_2[] = _( + "It has three sets of hearts and lungs\n" + "as well, so it is capable of running long\n" + "distances without rest."); +#else +static const u8 DexDescription_Dodrio_1[] = _( + "Watch out if DODRIO’s three heads are\n" + "looking in three separate directions.\n" + "It’s a sure sign that it is on its guard."); +static const u8 DexDescription_Dodrio_2[] = _( + "Don’t go near this POKéMON if it’s being\n" + "wary - it may decide to peck you."); +#endif + +static const u8 DexDescription_Seel_1[] = _( + "SEEL hunts for prey in the frigid sea\n" + "underneath sheets of ice.\n" + "When it needs to breathe, it punches"); +static const u8 DexDescription_Seel_2[] = _( + "a hole through the ice with the\n" + "sharply protruding section of its head."); + +static const u8 DexDescription_Dewgong_1[] = _( + "DEWGONG loves to snooze on bitterly\n" + "cold ice.\n" + "The sight of this POKéMON sleeping on"); +static const u8 DexDescription_Dewgong_2[] = _( + "a glacier was mistakenly thought to be\n" + "a mermaid by a mariner long ago."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Grimer_1[] = _( + "GRIMER emerged from the sludge that\n" + "settled on a polluted seabed.\n" + "This POKéMON loves anything filthy."); +static const u8 DexDescription_Grimer_2[] = _( + "It constantly leaks a horribly germ-\n" + "infested fluid from all over its body."); +#else +static const u8 DexDescription_Grimer_1[] = _( + "GRIMER’s sludgy and rubbery body can\n" + "be forced through any opening, however\n" + "small it may be."); +static const u8 DexDescription_Grimer_2[] = _( + "This POKéMON enters sewer pipes to\n" + "drink filthy wastewater."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Muk_1[] = _( + "This POKéMON’s favorite food is\n" + "anything that is repugnantly filthy.\n" + "In dirty towns where people think"); +static const u8 DexDescription_Muk_2[] = _( + "nothing of throwing away litter on the\n" + "streets, MUK are certain to gather."); +#else +static const u8 DexDescription_Muk_1[] = _( + "From MUK’s body seeps a foul fluid that\n" + "gives off a nose-bendingly horrible\n" + "stench."); +static const u8 DexDescription_Muk_2[] = _( + "Just one drop of this POKéMON’s body\n" + "fluid can turn a pool stagnant and\n" + "rancid."); +#endif + +static const u8 DexDescription_Shellder_1[] = _( + "At night, this POKéMON uses its broad\n" + "tongue to burrow a hole in the seafloor\n" + "sand and then sleep in it."); +static const u8 DexDescription_Shellder_2[] = _( + "While it is sleeping, SHELLDER closes its\n" + "shell, but leaves its tongue hanging\n" + "out."); + +static const u8 DexDescription_Cloyster_1[] = _( + "CLOYSTER is capable of swimming in the\n" + "sea. It does so by swallowing water,\n" + "then jetting it out toward the rear."); +static const u8 DexDescription_Cloyster_2[] = _( + "This POKéMON shoots spikes from its\n" + "shell using the same system."); + +static const u8 DexDescription_Gastly_1[] = _( + "GASTLY is largely composed of gaseous\n" + "matter. When exposed to a strong wind,\n" + "the gaseous body quickly dwindles away."); +static const u8 DexDescription_Gastly_2[] = _( + "Groups of this POKéMON cluster under\n" + "the eaves of houses to escape the\n" + "ravages of wind."); + +static const u8 DexDescription_Haunter_1[] = _( + "HAUNTER is a dangerous POKéMON.\n" + "If one beckons you while floating in\n" + "darkness, you must never approach it."); +static const u8 DexDescription_Haunter_2[] = _( + "This POKéMON will try to lick you with its\n" + "tongue and steal your life away."); + +static const u8 DexDescription_Gengar_1[] = _( + "Sometimes, on a dark night, your shadow\n" + "thrown by a streetlight will suddenly\n" + "and startlingly overtake you."); +static const u8 DexDescription_Gengar_2[] = _( + "It is actually a GENGAR running past\n" + "you, pretending to be your shadow."); + +static const u8 DexDescription_Onix_1[] = _( + "ONIX has a magnet in its brain. It acts\n" + "as a compass so that this POKéMON does\n" + "not lose direction while it is tunneling."); +static const u8 DexDescription_Onix_2[] = _( + "As it grows older, its body becomes\n" + "increasingly rounder and smoother."); + +static const u8 DexDescription_Drowzee_1[] = _( + "If your nose becomes itchy while you\n" + "are sleeping, it’s a sure sign that one\n" + "of these POKéMON is standing above"); +static const u8 DexDescription_Drowzee_2[] = _( + "your pillow and trying to eat your dream\n" + "through your nostrils."); + +static const u8 DexDescription_Hypno_1[] = _( + "HYPNO holds a pendulum in its hand.\n" + "The arcing movement and glitter of the\n" + "pendulum lull the foe into a deep state"); +static const u8 DexDescription_Hypno_2[] = _( + "of hypnosis.\n" + "While this POKéMON searches for prey,\n" + "it polishes the pendulum."); + +static const u8 DexDescription_Krabby_1[] = _( + "KRABBY live on beaches, burrowed inside\n" + "holes dug into the sand.\n" + "On sandy beaches with little in the way"); +static const u8 DexDescription_Krabby_2[] = _( + "of food, these POKéMON can be seen\n" + "squabbling with each other over\n" + "territory."); + +static const u8 DexDescription_Kingler_1[] = _( + "KINGLER has an enormous, oversized\n" + "claw. It waves this huge claw in the\n" + "air to communicate with others."); +static const u8 DexDescription_Kingler_2[] = _( + "However, because the claw is so heavy,\n" + "the POKéMON quickly tires."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Voltorb_1[] = _( + "VOLTORB is extremely sensitive - it\n" + "explodes at the slightest of shocks.\n" + "It is rumored that it was first created"); +static const u8 DexDescription_Voltorb_2[] = _( + "when a POKé BALL was exposed to a\n" + "powerful pulse of energy."); +#else +static const u8 DexDescription_Voltorb_1[] = _( + "VOLTORB was first sighted at a company\n" + "that manufactures POKé BALLS.\n" + "The link between that sighting and"); +static const u8 DexDescription_Voltorb_2[] = _( + "the fact that this POKéMON looks very\n" + "similar to a POKé BALL remains a\n" + "mystery."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Electrode_1[] = _( + "One of ELECTRODE’s characteristics is\n" + "its attraction to electricity.\n" + "It is a problematical POKéMON that"); +static const u8 DexDescription_Electrode_2[] = _( + "congregates mostly at electrical\n" + "power plants to feed on electricity\n" + "that has just been generated."); +#else +static const u8 DexDescription_Electrode_1[] = _( + "ELECTRODE eats electricity in the\n" + "atmosphere. On days when lightning\n" + "strikes, you can see this POKéMON"); +static const u8 DexDescription_Electrode_2[] = _( + "exploding all over the place from\n" + "eating too much electricity."); +#endif + +static const u8 DexDescription_Exeggcute_1[] = _( + "This POKéMON consists of six eggs that\n" + "form a closely knit cluster. The six eggs\n" + "attract each other and spin around."); +static const u8 DexDescription_Exeggcute_2[] = _( + "When cracks increasingly appear on the\n" + "eggs, EXEGGCUTE is close to evolution."); + +static const u8 DexDescription_Exeggutor_1[] = _( + "EXEGGUTOR originally came from the\n" + "tropics. Its heads steadily grow larger\n" + "from exposure to strong sunlight."); +static const u8 DexDescription_Exeggutor_2[] = _( + "It is said that when the heads fall off,\n" + "they group together to form EXEGGCUTE."); + +static const u8 DexDescription_Cubone_1[] = _( + "CUBONE pines for the mother it will\n" + "never see again. Seeing a likeness of\n" + "its mother in the full moon, it cries."); +static const u8 DexDescription_Cubone_2[] = _( + "The stains on the skull the POKéMON\n" + "wears are made by the tears it sheds."); + +static const u8 DexDescription_Marowak_1[] = _( + "MAROWAK is the evolved form of a CUBONE\n" + "that has overcome its sadness at the\n" + "loss of its mother and grown tough."); +static const u8 DexDescription_Marowak_2[] = _( + "This POKéMON’s tempered and hardened\n" + "spirit is not easily broken."); + +static const u8 DexDescription_Hitmonlee_1[] = _( + "HITMONLEE’s legs freely contract and\n" + "stretch. Using these springlike legs, it\n" + "bowls over foes with devastating kicks."); +static const u8 DexDescription_Hitmonlee_2[] = _( + "After battle, it rubs down its legs and\n" + "loosens the muscles to overcome\n" + "fatigue."); + +static const u8 DexDescription_Hitmonchan_1[] = _( + "HITMONCHAN is said to possess the\n" + "spirit of a boxer who had been working\n" + "towards a world championship."); +static const u8 DexDescription_Hitmonchan_2[] = _( + "This POKéMON has an indomitable spirit\n" + "and will never give up in the face of\n" + "adversity."); + +static const u8 DexDescription_Lickitung_1[] = _( + "Whenever LICKITUNG comes across\n" + "something new, it will unfailingly give it\n" + "a lick. It does so because it memorizes"); +static const u8 DexDescription_Lickitung_2[] = _( + "things by texture and by taste.\n" + "It is somewhat put off by sour things."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Koffing_1[] = _( + "KOFFING embodies toxic substances.\n" + "It mixes the toxins with raw garbage to\n" + "set off a chemical reaction that"); +static const u8 DexDescription_Koffing_2[] = _( + "results in a terribly powerful poison\n" + "gas. The higher the temperature, the\n" + "more gas is concocted by this POKéMON."); +#else +static const u8 DexDescription_Koffing_1[] = _( + "If KOFFING becomes agitated, it raises\n" + "the toxicity of its internal gases and\n" + "jets them out from all over its body."); +static const u8 DexDescription_Koffing_2[] = _( + "This POKéMON may also overinflate its\n" + "round body, then explode."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Weezing_1[] = _( + "WEEZING alternately shrinks and\n" + "inflates its twin bodies to mix together\n" + "toxic gases inside."); +static const u8 DexDescription_Weezing_2[] = _( + "The more the gases are mixed, the more\n" + "powerful the toxins become. The\n" + "POKéMON also becomes more putrid."); +#else +static const u8 DexDescription_Weezing_1[] = _( + "WEEZING loves the gases given off by\n" + "rotted kitchen garbage. This POKéMON\n" + "will find a dirty, unkempt house and"); +static const u8 DexDescription_Weezing_2[] = _( + "make it its home. At night, when the\n" + "people in the house are asleep, it will\n" + "go through the trash."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Rhyhorn_1[] = _( + "RHYHORN’s brain is very small. It is so\n" + "dense, while on a run it forgets why it\n" + "started running in the first place."); +static const u8 DexDescription_Rhyhorn_2[] = _( + "It apparently remembers sometimes if it\n" + "demolishes something."); +#else +static const u8 DexDescription_Rhyhorn_1[] = _( + "RHYHORN runs in a straight line,\n" + "smashing everything in its path.\n" + "It is not bothered even if it rushes"); +static const u8 DexDescription_Rhyhorn_2[] = _( + "headlong into a block of steel.\n" + "This POKéMON may feel some pain from\n" + "the collision the next day, however."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Rhydon_1[] = _( + "RHYDON has a horn that serves as a\n" + "drill. It is used for destroying rocks\n" + "and boulders."); +static const u8 DexDescription_Rhydon_2[] = _( + "This POKéMON occasionally rams into\n" + "streams of magma, but the armor-like\n" + "hide prevents it from feeling the heat."); +#else +static const u8 DexDescription_Rhydon_1[] = _( + "RHYDON’s horn can crush even uncut\n" + "diamonds. One sweeping blow of its tail\n" + "can topple a building."); +static const u8 DexDescription_Rhydon_2[] = _( + "This POKéMON’s hide is extremely tough.\n" + "Even direct cannon hits don’t leave\n" + "a scratch."); +#endif + +static const u8 DexDescription_Chansey_1[] = _( + "CHANSEY lays nutritionally excellent\n" + "eggs on an everyday basis.\n" + "The eggs are so delicious, they are"); +static const u8 DexDescription_Chansey_2[] = _( + "easily and eagerly devoured by even\n" + "those people who have lost their\n" + "appetite."); + +static const u8 DexDescription_Tangela_1[] = _( + "TANGELA’s vines snap off easily if they\n" + "are grabbed. This happens without pain,\n" + "allowing it to make a quick getaway."); +static const u8 DexDescription_Tangela_2[] = _( + "The lost vines are replaced by newly\n" + "grown vines the very next day."); + +static const u8 DexDescription_Kangaskhan_1[] = _( + "If you come across a young KANGASKHAN\n" + "playing by itself, you must never\n" + "disturb it or attempt to catch it."); +static const u8 DexDescription_Kangaskhan_2[] = _( + "The baby POKéMON’s parent is sure to\n" + "be in the area, and it will become\n" + "violently enraged at you."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Horsea_1[] = _( + "If HORSEA senses danger, it will\n" + "reflexively spray a dense black ink\n" + "from its mouth and try to escape."); +static const u8 DexDescription_Horsea_2[] = _( + "This POKéMON swims by cleverly flapping\n" + "the fins on its back."); +#else +static const u8 DexDescription_Horsea_1[] = _( + "HORSEA eats small insects and moss off\n" + "of rocks. If the ocean current turns\n" + "fast, this POKéMON anchors itself by"); +static const u8 DexDescription_Horsea_2[] = _( + "wrapping its tail around rocks or coral\n" + "to prevent being washed away."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Seadra_1[] = _( + "SEADRA generates whirlpools by spinning\n" + "its body. The whirlpools are strong\n" + "enough to swallow even fishing boats."); +static const u8 DexDescription_Seadra_2[] = _( + "This POKéMON weakens prey with these\n" + "currents, then swallows it whole."); +#else +static const u8 DexDescription_Seadra_1[] = _( + "SEADRA sleeps after wriggling itself\n" + "between the branches of coral.\n" + "Those trying to harvest coral are"); +static const u8 DexDescription_Seadra_2[] = _( + "occasionally stung by this POKéMON’s\n" + "poison barbs if they fail to notice it."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Goldeen_1[] = _( + "GOLDEEN loves swimming wild and free\n" + "in rivers and ponds.\n" + "If one of these POKéMON is placed in an"); +static const u8 DexDescription_Goldeen_2[] = _( + "aquarium, it will shatter even the\n" + "thickest glass with one ram of its horn\n" + "and make its escape."); +#else +static const u8 DexDescription_Goldeen_1[] = _( + "GOLDEEN is a very beautiful POKéMON\n" + "with fins that billow elegantly in water.\n" + "However, don’t let your guard down"); +static const u8 DexDescription_Goldeen_2[] = _( + "around this POKéMON - it could ram you\n" + "powerfully with its horn."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Seaking_1[] = _( + "SEAKING is very protective of its eggs.\n" + "The male and female will take turns\n" + "patrolling around their nest and eggs."); +static const u8 DexDescription_Seaking_2[] = _( + "The guarding of eggs by these POKéMON\n" + "goes on for over a month."); +#else +static const u8 DexDescription_Seaking_1[] = _( + "In the autumn, SEAKING males can be\n" + "seen performing courtship dances in\n" + "riverbeds to woo females."); +static const u8 DexDescription_Seaking_2[] = _( + "During this season, this POKéMON’s body\n" + "coloration is at its most beautiful."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Staryu_1[] = _( + "STARYU apparently communicates with\n" + "the stars in the night sky by flashing\n" + "the red core at the center of its body."); +static const u8 DexDescription_Staryu_2[] = _( + "If parts of its body are torn, this\n" + "POKéMON simply regenerates the\n" + "missing pieces and limbs."); +#else +static const u8 DexDescription_Staryu_1[] = _( + "STARYU’s center section has an organ\n" + "called the core that shines bright red.\n" + "If you go to a beach toward the"); +static const u8 DexDescription_Staryu_2[] = _( + "end of summer, the glowing cores of\n" + "these POKéMON look like the stars\n" + "in the sky."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Starmie_1[] = _( + "STARMIE swims through water by\n" + "spinning its star-shaped body as if it\n" + "were a propeller on a ship."); +static const u8 DexDescription_Starmie_2[] = _( + "The core at the center of this\n" + "POKéMON’s body glows in seven colors."); +#else +static const u8 DexDescription_Starmie_1[] = _( + "STARMIE’s center section - the core -\n" + "glows brightly in seven colors.\n" + "Because of its luminous nature, this"); +static const u8 DexDescription_Starmie_2[] = _( + "POKéMON has been given the nickname\n" + "“the gem of the sea.”"); +#endif + +static const u8 DexDescription_Mrmime_1[] = _( + "MR. MIME is a master of pantomime.\n" + "Its gestures and motions convince\n" + "watchers that something unseeable"); +static const u8 DexDescription_Mrmime_2[] = _( + "actually exists. Once it is believed,\n" + "it will exist as if it were a real thing."); + +static const u8 DexDescription_Scyther_1[] = _( + "SCYTHER is blindingly fast. Its blazing\n" + "speed enhances the effectiveness of\n" + "the twin scythes on its forearms."); +static const u8 DexDescription_Scyther_2[] = _( + "This POKéMON’s scythes are so\n" + "effective, they can slice through thick\n" + "logs in one wicked stroke."); + +static const u8 DexDescription_Jynx_1[] = _( + "JYNX walks rhythmically, swaying and\n" + "shaking its hips as if it were dancing.\n" + "Its motions are so bouncingly alluring,"); +static const u8 DexDescription_Jynx_2[] = _( + "people seeing it are compelled to shake\n" + "their hips without giving any thought\n" + "to what they are doing."); + +static const u8 DexDescription_Electabuzz_1[] = _( + "When a storm arrives, gangs of this\n" + "POKéMON compete with each other to\n" + "scale heights that are likely to be"); +static const u8 DexDescription_Electabuzz_2[] = _( + "stricken by lightning bolts.\n" + "Some towns use ELECTABUZZ in place of\n" + "lightning rods."); + +static const u8 DexDescription_Magmar_1[] = _( + "In battle, MAGMAR blows out intensely\n" + "hot flames from all over its body to\n" + "intimidate its opponent."); +static const u8 DexDescription_Magmar_2[] = _( + "This POKéMON’s fiery bursts create\n" + "heat waves that ignite grass and trees\n" + "in its surroundings."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Pinsir_1[] = _( + "PINSIR has a pair of massive horns \n" + "Protruding from the surface of these\n" + "horns are thorns."); +static const u8 DexDescription_Pinsir_2[] = _( + "These thorns are driven deeply into the\n" + "foe’s body when the pincer closes,\n" + "making it tough for the foe to escape."); +#else +static const u8 DexDescription_Pinsir_1[] = _( + "PINSIR is astoundingly strong. It can\n" + "grip a foe weighing twice its weight\n" + "in its horns and easily lift it."); +static const u8 DexDescription_Pinsir_2[] = _( + "This POKéMON’s movements turn sluggish\n" + "in cold places."); +#endif + +static const u8 DexDescription_Tauros_1[] = _( + "This POKéMON is not satisfied unless\n" + "it is rampaging at all times.\n" + "If there is no opponent for TAUROS to"); +static const u8 DexDescription_Tauros_2[] = _( + "battle, it will charge at thick trees and\n" + "knock them down to calm itself."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Magikarp_1[] = _( + "MAGIKARP is virtually useless in battle\n" + "as it can only splash around.\n" + "As a result, it is considered to be weak."); +static const u8 DexDescription_Magikarp_2[] = _( + "However, it is actually a very hardy\n" + "POKéMON that can survive in any body of\n" + "water no matter how polluted it is."); +#else +static const u8 DexDescription_Magikarp_1[] = _( + "MAGIKARP is a pathetic excuse for a\n" + "POKéMON that is only capable of\n" + "flopping and splashing."); +static const u8 DexDescription_Magikarp_2[] = _( + "This behavior prompted scientists to\n" + "undertake research into it."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Gyarados_1[] = _( + "Once GYARADOS goes on a rampage, its\n" + "ferociously violent blood doesn’t calm\n" + "until it has burned everything down."); +static const u8 DexDescription_Gyarados_2[] = _( + "There are records of this POKéMON’s\n" + "rampages lasting a whole month."); +#else +static const u8 DexDescription_Gyarados_1[] = _( + "When MAGIKARP evolves into GYARADOS,\n" + "its brain cells undergo a structural\n" + "transformation. It is said that this"); +static const u8 DexDescription_Gyarados_2[] = _( + "transformation is to blame for this\n" + "POKéMON’s wildly violent nature."); +#endif + +static const u8 DexDescription_Lapras_1[] = _( + "People have driven LAPRAS almost to the\n" + "point of extinction. In the evenings,\n" + "this POKéMON is said to sing plaintively"); +static const u8 DexDescription_Lapras_2[] = _( + "as it seeks what few others of its kind\n" + "still remain."); + +static const u8 DexDescription_Ditto_1[] = _( + "DITTO rearranges its cell structure to\n" + "transform itself into other shapes.\n" + "However, if it tries to transform itself"); +static const u8 DexDescription_Ditto_2[] = _( + "into something by relying on its memory,\n" + "this POKéMON manages to get details\n" + "wrong."); + +static const u8 DexDescription_Eevee_1[] = _( + "EEVEE has an unstable genetic makeup\n" + "that suddenly mutates due to the\n" + "environment in which it lives."); +static const u8 DexDescription_Eevee_2[] = _( + "Radiation from various STONES causes\n" + "this POKéMON to evolve."); + +static const u8 DexDescription_Vaporeon_1[] = _( + "VAPOREON underwent a spontaneous\n" + "mutation and grew fins and gills that\n" + "allow it to live underwater."); +static const u8 DexDescription_Vaporeon_2[] = _( + "This POKéMON has the ability to freely\n" + "control water."); + +static const u8 DexDescription_Jolteon_1[] = _( + "JOLTEON’s cells generate a low level of\n" + "electricity. This power is amplified by\n" + "the static electricity of its fur,"); +static const u8 DexDescription_Jolteon_2[] = _( + "enabling the POKéMON to drop\n" + "thunderbolts. The bristling fur is made\n" + "of electrically charged needles."); + +static const u8 DexDescription_Flareon_1[] = _( + "FLAREON’s fluffy fur has a functional\n" + "purpose - it releases heat into the air\n" + "so that its body does not get"); +static const u8 DexDescription_Flareon_2[] = _( + "excessively hot.\n" + "This POKéMON’s body temperature can\n" + "rise to a maximum of 1,650 degrees F."); + +static const u8 DexDescription_Porygon_1[] = _( + "PORYGON is capable of reverting itself\n" + "entirely back to program data and\n" + "entering cyberspace."); +static const u8 DexDescription_Porygon_2[] = _( + "This POKéMON is copy-protected so it\n" + "cannot be duplicated by copying."); + +static const u8 DexDescription_Omanyte_1[] = _( + "OMANYTE is one of the ancient and long-\n" + "since-extinct POKéMON that have been\n" + "regenerated from fossils by people."); +static const u8 DexDescription_Omanyte_2[] = _( + "If attacked by an enemy, it withdraws\n" + "itself inside its hard shell."); + +static const u8 DexDescription_Omastar_1[] = _( + "OMASTAR uses its tentacles to capture\n" + "its prey. It is believed to have become\n" + "extinct because its shell grew too large"); +static const u8 DexDescription_Omastar_2[] = _( + "and heavy, causing its movements to\n" + "become too slow and ponderous."); + +static const u8 DexDescription_Kabuto_1[] = _( + "KABUTO is a POKéMON that has been\n" + "regenerated from a fossil. However, in\n" + "extremely rare cases, living examples"); +static const u8 DexDescription_Kabuto_2[] = _( + "have been discovered.\n" + "The POKéMON has not changed at all for\n" + "300 million years."); + +static const u8 DexDescription_Kabutops_1[] = _( + "KABUTOPS swam underwater to hunt for\n" + "its prey in ancient times.\n" + "The POKéMON was apparently evolving"); +static const u8 DexDescription_Kabutops_2[] = _( + "from being a water-dweller to living on\n" + "land as evident from the beginnings of\n" + "change in its gills and legs."); + +static const u8 DexDescription_Aerodactyl_1[] = _( + "AERODACTYL is a POKéMON from the age\n" + "of dinosaurs. It was regenerated from\n" + "genetic material extracted from amber."); +static const u8 DexDescription_Aerodactyl_2[] = _( + "It is imagined to have been the king of\n" + "the skies in ancient times."); + +static const u8 DexDescription_Snorlax_1[] = _( + "SNORLAX’s typical day consists of\n" + "nothing more than eating and sleeping.\n" + "It is such a docile POKéMON that there"); +static const u8 DexDescription_Snorlax_2[] = _( + "are children who use its expansive belly\n" + "as a place to play."); + +static const u8 DexDescription_Articuno_1[] = _( + "ARTICUNO is a legendary bird POKéMON\n" + "that can control ice.\n" + "The flapping of its wings chills the air."); +static const u8 DexDescription_Articuno_2[] = _( + "As a result, it is said that when this\n" + "POKéMON flies, snow will fall."); + +static const u8 DexDescription_Zapdos_1[] = _( + "ZAPDOS is a legendary bird POKéMON that\n" + "has the ability to control electricity.\n" + "It usually lives in thunderclouds."); +static const u8 DexDescription_Zapdos_2[] = _( + "The POKéMON gains power if it is\n" + "stricken by lightning bolts."); + +static const u8 DexDescription_Moltres_1[] = _( + "MOLTRES is a legendary bird POKéMON\n" + "that has the ability to control fire.\n" + "If this POKéMON is injured, it is said to"); +static const u8 DexDescription_Moltres_2[] = _( + "dip its body in the molten magma of a\n" + "volcano to burn and heal itself."); + +static const u8 DexDescription_Dratini_1[] = _( + "DRATINI continually molts and sloughs\n" + "off its old skin.\n" + "It does so because the life energy"); +static const u8 DexDescription_Dratini_2[] = _( + "within its body steadily builds to reach\n" + "uncontrollable levels."); + +static const u8 DexDescription_Dragonair_1[] = _( + "DRAGONAIR stores an enormous amount\n" + "of energy inside its body.\n" + "It is said to alter weather conditions"); +static const u8 DexDescription_Dragonair_2[] = _( + "in its vicinity by discharging energy\n" + "from the crystals on its neck and tail."); + +static const u8 DexDescription_Dragonite_1[] = _( + "DRAGONITE is capable of circling the\n" + "globe in just sixteen hours.\n" + "It is a kindhearted POKéMON that leads"); +static const u8 DexDescription_Dragonite_2[] = _( + "lost and foundering ships in a storm to\n" + "the safety of land."); + +static const u8 DexDescription_Mewtwo_1[] = _( + "MEWTWO is a POKéMON that was created\n" + "by genetic manipulation.\n" + "However, even though the scientific"); +static const u8 DexDescription_Mewtwo_2[] = _( + "power of humans created this POKéMON’s\n" + "body, they failed to endow MEWTWO with\n" + "a compassionate heart."); + +static const u8 DexDescription_Mew_1[] = _( + "MEW is said to possess the genetic\n" + "composition of all POKéMON.\n" + "It is capable of making itself invisible"); +static const u8 DexDescription_Mew_2[] = _( + "at will, so it entirely avoids notice even\n" + "if it approaches people."); + +static const u8 DexDescription_Chikorita_1[] = _( + "In battle, CHIKORITA waves its leaf\n" + "around to keep the foe at bay.\n" + "However, a sweet fragrance also wafts"); +static const u8 DexDescription_Chikorita_2[] = _( + "from the leaf, becalming the battling\n" + "POKéMON and creating a cozy, friendly\n" + "atmosphere all around."); + +static const u8 DexDescription_Bayleef_1[] = _( + "BAYLEEF’s neck is ringed by curled-up\n" + "leaves. Inside each tubular leaf is a\n" + "small shoot of a tree."); +static const u8 DexDescription_Bayleef_2[] = _( + "The fragrance of this shoot makes\n" + "people peppy."); + +static const u8 DexDescription_Meganium_1[] = _( + "The fragrance of MEGANIUM’s flower\n" + "soothes and calms emotions.\n" + "In battle, this POKéMON gives off more"); +static const u8 DexDescription_Meganium_2[] = _( + "of its becalming scent to blunt the\n" + "foe’s fighting spirit."); + +static const u8 DexDescription_Cyndaquil_1[] = _( + "CYNDAQUIL protects itself by flaring up\n" + "the flames on its back.\n" + "The flames are vigorous if the POKéMON"); +static const u8 DexDescription_Cyndaquil_2[] = _( + "is angry. However, if it is tired, the\n" + "flames splutter fitfully with incomplete\n" + "combustion."); + +static const u8 DexDescription_Quilava_1[] = _( + "QUILAVA keeps its foes at bay with the\n" + "intensity of its flames and gusts of\n" + "superheated air."); +static const u8 DexDescription_Quilava_2[] = _( + "This POKéMON applies its outstanding\n" + "nimbleness to dodge attacks even while\n" + "scorching the foe with flames."); + +static const u8 DexDescription_Typhlosion_1[] = _( + "TYPHLOSION obscures itself behind a\n" + "shimmering heat haze that it creates\n" + "using its intensely hot flames."); +static const u8 DexDescription_Typhlosion_2[] = _( + "This POKéMON creates blazing explosive\n" + "blasts that burn everything to cinders."); + +static const u8 DexDescription_Totodile_1[] = _( + "Despite the smallness of its body,\n" + "TOTODILE’s jaws are very powerful.\n" + "While the POKéMON may think it is just"); +static const u8 DexDescription_Totodile_2[] = _( + "playfully nipping, its bite has enough\n" + "power to cause serious injury."); + +static const u8 DexDescription_Croconaw_1[] = _( + "Once CROCONAW has clamped its jaws on\n" + "its foe, it will absolutely not let go.\n" + "Because the tips of its fangs are"); +static const u8 DexDescription_Croconaw_2[] = _( + "forked back like barbed fishhooks, they\n" + "become impossible to remove when \n" + "they have sunk in."); + +static const u8 DexDescription_Feraligatr_1[] = _( + "FERALIGATR intimidates its foes by\n" + "opening its huge mouth.\n" + "In battle, it will kick the ground hard"); +static const u8 DexDescription_Feraligatr_2[] = _( + "with its thick and powerful hind legs to\n" + "charge at the foe at an incredible\n" + "speed."); + +static const u8 DexDescription_Sentret_1[] = _( + "When SENTRET sleeps, it does so while\n" + "another stands guard. The sentry wakes\n" + "the others at the first sign of danger."); +static const u8 DexDescription_Sentret_2[] = _( + "When this POKéMON becomes separated\n" + "from its pack, it becomes incapable of\n" + "sleep due to fear."); + +static const u8 DexDescription_Furret_1[] = _( + "FURRET has a very slim build.\n" + "When under attack, it can slickly squirm\n" + "through narrow spaces and get away."); +static const u8 DexDescription_Furret_2[] = _( + "In spite of its short limbs, this\n" + "POKéMON is very nimble and fleet."); + +static const u8 DexDescription_Hoothoot_1[] = _( + "HOOTHOOT has an internal organ that\n" + "senses and tracks the earth’s rotation.\n" + "Using this special organ, this POKéMON"); +static const u8 DexDescription_Hoothoot_2[] = _( + "begins hooting at precisely the same\n" + "time every day."); + +static const u8 DexDescription_Noctowl_1[] = _( + "NOCTOWL never fails at catching prey in\n" + "darkness. This POKéMON owes its\n" + "success to its superior vision that"); +static const u8 DexDescription_Noctowl_2[] = _( + "allows it to see in minimal light, and to\n" + "its soft, supple wings that make no\n" + "sound in flight."); + +static const u8 DexDescription_Ledyba_1[] = _( + "LEDYBA secretes an aromatic fluid from\n" + "where its legs join its body. This fluid\n" + "is used for communicating with others."); +static const u8 DexDescription_Ledyba_2[] = _( + "This POKéMON conveys its feelings to\n" + "others by altering the fluid’s scent."); + +static const u8 DexDescription_Ledian_1[] = _( + "It is said that in lands with clean air,\n" + "where the stars fill the sky, there live\n" + "LEDIAN in countless numbers."); +static const u8 DexDescription_Ledian_2[] = _( + "There is a good reason for this - the\n" + "POKéMON uses the light of the stars\n" + "as its energy."); + +static const u8 DexDescription_Spinarak_1[] = _( + "The web spun by SPINARAK can be\n" + "considered its second nervous system.\n" + "It is said that this POKéMON can"); +static const u8 DexDescription_Spinarak_2[] = _( + "determine what kind of prey is touching\n" + "its web just by the tiny vibrations it\n" + "feels through the web’s strands."); + +static const u8 DexDescription_Ariados_1[] = _( + "ARIADOS’s feet are tipped with tiny\n" + "hooked claws that enable it to scuttle\n" + "on ceilings and vertical walls."); +static const u8 DexDescription_Ariados_2[] = _( + "This POKéMON constricts the foe with\n" + "thin and strong silk webbing."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Crobat_1[] = _( + "CROBAT sneaks up on its intended prey\n" + "using wings that barely make a sound.\n" + "This POKéMON rests by hanging on a"); +static const u8 DexDescription_Crobat_2[] = _( + "tree branch with its rear legs that\n" + "serve as wings."); +#else +static const u8 DexDescription_Crobat_1[] = _( + "If this POKéMON is flying by fluttering\n" + "only a pair of wings on either the\n" + "forelegs or hind legs, it’s proof that"); +static const u8 DexDescription_Crobat_2[] = _( + "CROBAT has been flying a long distance.\n" + "It switches the wings it uses if it is\n" + "tired."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Chinchou_1[] = _( + "CHINCHOU’s two antennas are filled with\n" + "cells that generate strong electricity.\n" + "This POKéMON’s cells create so much"); +static const u8 DexDescription_Chinchou_2[] = _( + "electrical power, it even makes itself\n" + "tingle slightly."); +#else +static const u8 DexDescription_Chinchou_1[] = _( + "CHINCHOU lets loose positive and\n" + "negative electrical charges from its\n" + "two antennas to make its prey faint."); +static const u8 DexDescription_Chinchou_2[] = _( + "This POKéMON flashes its electric\n" + "lights to exchange signals with others."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Lanturn_1[] = _( + "LANTURN is known to emit light.\n" + "If you peer down into the dark sea from\n" + "a ship at night, you can sometimes see"); +static const u8 DexDescription_Lanturn_2[] = _( + "this POKéMON’s light rising from the\n" + "depths where it swims. It gives the sea\n" + "an appearance of a starlit night."); +#else +static const u8 DexDescription_Lanturn_1[] = _( + "LANTURN is nicknamed “the deep-sea\n" + "star” for its illuminated antenna.\n" + "This POKéMON produces light by"); +static const u8 DexDescription_Lanturn_2[] = _( + "causing a chemical reaction between\n" + "bacteria and its bodily fluids inside\n" + "the antenna."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Pichu_1[] = _( + "When PICHU plays with others, it may\n" + "short out electricity with another\n" + "PICHU, creating a shower of sparks."); +static const u8 DexDescription_Pichu_2[] = _( + "In that event, this POKéMON will begin\n" + "crying, startled by the flash of sparks."); +#else +static const u8 DexDescription_Pichu_1[] = _( + "PICHU charges itself with electricity\n" + "more easily on days with thunderclouds\n" + "or when the air is very dry."); +static const u8 DexDescription_Pichu_2[] = _( + "You can hear the crackling of static\n" + "electricity coming off this POKéMON."); +#endif + +static const u8 DexDescription_Cleffa_1[] = _( + "On nights with many shooting stars,\n" + "CLEFFA can be seen dancing in a ring.\n" + "They dance through the night and stop"); +static const u8 DexDescription_Cleffa_2[] = _( + "only at the break of day, when these\n" + "POKéMON quench their thirst with the\n" + "morning dew."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Igglybuff_1[] = _( + "IGGLYBUFF has a soft and plushy body\n" + "that feels very much like a marshmallow.\n" + "From this body wafts a gently sweet"); +static const u8 DexDescription_Igglybuff_2[] = _( + "fragrance that soothes and calms the\n" + "emotions of its foes."); +#else +static const u8 DexDescription_Igglybuff_1[] = _( + "IGGLYBUFF’s vocal chords are not\n" + "sufficiently developed. It would hurt\n" + "its throat if it were to sing too much."); +static const u8 DexDescription_Igglybuff_2[] = _( + "This POKéMON gargles with freshwater\n" + "from a clean stream."); +#endif + +static const u8 DexDescription_Togepi_1[] = _( + "As its energy, TOGEPI uses the positive\n" + "emotions of compassion and pleasure\n" + "exuded by people and POKéMON."); +static const u8 DexDescription_Togepi_2[] = _( + "This POKéMON stores up feelings of\n" + "happiness inside its shell, then shares\n" + "them with others."); + +static const u8 DexDescription_Togetic_1[] = _( + "TOGETIC is said to be a POKéMON that\n" + "brings good fortune. When the POKéMON\n" + "spots someone who is pure of heart,"); +static const u8 DexDescription_Togetic_2[] = _( + "it is said to appear and share its\n" + "happiness with that person."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Natu_1[] = _( + "NATU has a highly developed jumping\n" + "ability. The POKéMON flaps and leaps\n" + "onto tree branches that are taller than"); +static const u8 DexDescription_Natu_2[] = _( + "grown-up people to pick at the tree’s\n" + "new shoots."); +#else +static const u8 DexDescription_Natu_1[] = _( + "NATU cannot fly because its wings are\n" + "not yet fully grown. If your eyes meet\n" + "with this POKéMON’s eyes, it will stare"); +static const u8 DexDescription_Natu_2[] = _( + "back intently at you. But if you move\n" + "even slightly, it will hop away to safety."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Xatu_1[] = _( + "XATU is known to stand motionless while\n" + "staring at the sun all day long.\n" + "Some people revere it as a mystical"); +static const u8 DexDescription_Xatu_2[] = _( + "POKéMON out of their belief that XATU\n" + "is in possession of the power to see\n" + "into the future."); +#else +static const u8 DexDescription_Xatu_1[] = _( + "XATU stands rooted and still in one\n" + "spot all day long. People believe that\n" + "this POKéMON does so out of fear of"); +static const u8 DexDescription_Xatu_2[] = _( + "the terrible things it has foreseen in\n" + "the future."); +#endif + +static const u8 DexDescription_Mareep_1[] = _( + "MAREEP’s fluffy coat of wool rubs\n" + "together and builds a static charge.\n" + "The more static electricity is charged,"); +static const u8 DexDescription_Mareep_2[] = _( + "the more brightly the lightbulb at the\n" + "tip of its tail grows."); + +static const u8 DexDescription_Flaaffy_1[] = _( + "FLAAFFY’s wool quality changes so that\n" + "it can generate a high amount of static\n" + "electricity with a small amount of wool."); +static const u8 DexDescription_Flaaffy_2[] = _( + "The bare and slick parts of its hide are\n" + "shielded against electricity."); + +static const u8 DexDescription_Ampharos_1[] = _( + "AMPHAROS gives off so much light that\n" + "it can be seen even from space.\n" + "People in the old days used the light of"); +static const u8 DexDescription_Ampharos_2[] = _( + "this POKéMON to send signals back and\n" + "forth with others far away."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Bellossom_1[] = _( + "A BELLOSSOM grows flowers more\n" + "beautifully if it has evolved from a\n" + "smelly GLOOM - the stinkier the better."); +static const u8 DexDescription_Bellossom_2[] = _( + "At night, this POKéMON closes its\n" + "petals and goes to sleep."); +#else +static const u8 DexDescription_Bellossom_1[] = _( + "When BELLOSSOM gets exposed to plenty\n" + "of sunlight, the leaves ringing its body\n" + "begin to spin around."); +static const u8 DexDescription_Bellossom_2[] = _( + "This POKéMON’s dancing is renowned in\n" + "the southern lands."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Marill_1[] = _( + "When fishing for food at the edge of a\n" + "fast-running stream, MARILL wraps its\n" + "tail around the trunk of a tree."); +static const u8 DexDescription_Marill_2[] = _( + "This POKéMON’s tail is flexible and\n" + "configured to stretch."); +#else +static const u8 DexDescription_Marill_1[] = _( + "MARILL’s oil-filled tail acts much like\n" + "a life preserver. If you see just its\n" + "tail bobbing on the water’s surface,"); +static const u8 DexDescription_Marill_2[] = _( + "it’s a sure indication that this POKéMON\n" + "is diving beneath the water to feed on\n" + "aquatic plants."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Azumarill_1[] = _( + "AZUMARILL can make balloons out of\n" + "air. It makes these air balloons if it\n" + "spots a drowning POKéMON."); +static const u8 DexDescription_Azumarill_2[] = _( + "The air balloons enable the POKéMON in\n" + "trouble to breathe."); +#else +static const u8 DexDescription_Azumarill_1[] = _( + "AZUMARILL’s long ears are indispensable\n" + "sensors. By focusing its hearing, this\n" + "POKéMON can identify what kinds of"); +static const u8 DexDescription_Azumarill_2[] = _( + "prey are around, even in rough and\n" + "fast-running rivers."); +#endif + +static const u8 DexDescription_Sudowoodo_1[] = _( + "SUDOWOODO camouflages itself as a tree\n" + "to avoid being attacked by enemies.\n" + "However, because the forelegs remain"); +static const u8 DexDescription_Sudowoodo_2[] = _( + "green throughout the year, the POKéMON\n" + "is easily identified as a fake during\n" + "the winter."); + +static const u8 DexDescription_Politoed_1[] = _( + "The curled hair on POLITOED’s head is\n" + "proof of its status as a king. It is said\n" + "that the longer and more curled the"); +static const u8 DexDescription_Politoed_2[] = _( + "hair, the more respect this POKéMON\n" + "earns from its peers."); + +static const u8 DexDescription_Hoppip_1[] = _( + "This POKéMON drifts and floats with the\n" + "wind. If it senses the approach of\n" + "strong winds, HOPPIP links its leaves"); +static const u8 DexDescription_Hoppip_2[] = _( + "with other HOPPIP to prepare against\n" + "being blown away."); + +static const u8 DexDescription_Skiploom_1[] = _( + "SKIPLOOM’s flower blossoms when the\n" + "temperature rises above 64 degrees F.\n" + "How much the flower opens depends on"); +static const u8 DexDescription_Skiploom_2[] = _( + "the temperature. For that reason, this\n" + "POKéMON is sometimes used as a\n" + "thermometer."); + +static const u8 DexDescription_Jumpluff_1[] = _( + "JUMPLUFF rides warm southern winds to\n" + "cross the sea and fly to foreign lands.\n" + "The POKéMON descends to the ground"); +static const u8 DexDescription_Jumpluff_2[] = _( + "when it encounters cold air while it is\n" + "floating."); + +static const u8 DexDescription_Aipom_1[] = _( + "AIPOM’s tail ends in a hand-like\n" + "appendage that can be cleverly\n" + "manipulated."); +static const u8 DexDescription_Aipom_2[] = _( + "However, because the POKéMON uses its\n" + "tail so much, its real hands have become\n" + "rather clumsy."); + +static const u8 DexDescription_Sunkern_1[] = _( + "SUNKERN tries to move as little as it\n" + "possibly can. It does so because it\n" + "tries to conserve all the nutrients it"); +static const u8 DexDescription_Sunkern_2[] = _( + "has stored in its body for its\n" + "evolution. It will not eat a thing, \n" + "subsisting only on morning dew."); + +static const u8 DexDescription_Sunflora_1[] = _( + "SUNFLORA converts solar energy into\n" + "nutrition. It moves around actively in\n" + "the daytime when it is warm."); +static const u8 DexDescription_Sunflora_2[] = _( + "It stops moving as soon as the sun goes\n" + "down for the night."); + +static const u8 DexDescription_Yanma_1[] = _( + "YANMA is capable of seeing 360 degrees\n" + "without having to move its eyes.\n" + "It is a great flier that is adept at"); +static const u8 DexDescription_Yanma_2[] = _( + "making sudden stops and turning midair.\n" + "This POKéMON uses its flying ability to\n" + "quickly chase down targeted prey."); + +static const u8 DexDescription_Wooper_1[] = _( + "WOOPER usually lives in water.\n" + "However, it occasionally comes out onto\n" + "land in search of food."); +static const u8 DexDescription_Wooper_2[] = _( + "On land, it coats its body with a gooey,\n" + "toxic film."); + +static const u8 DexDescription_Quagsire_1[] = _( + "QUAGSIRE hunts for food by leaving\n" + "its mouth wide open in water and waiting\n" + "for its prey to blunder in unaware."); +static const u8 DexDescription_Quagsire_2[] = _( + "Because the POKéMON does not move,\n" + "it does not get very hungry."); + +static const u8 DexDescription_Espeon_1[] = _( + "ESPEON is extremely loyal to any\n" + "TRAINER it considers to be worthy.\n" + "It is said that this POKéMON developed"); +static const u8 DexDescription_Espeon_2[] = _( + "its precognitive powers to protect its\n" + "TRAINER from harm."); + +static const u8 DexDescription_Umbreon_1[] = _( + "UMBREON evolved as a result of exposure\n" + "to the moon’s waves.\n" + "It hides silently in darkness and waits"); +static const u8 DexDescription_Umbreon_2[] = _( + "for its foes to make a move.\n" + "The rings on its body glow when it leaps\n" + "to attack."); + +static const u8 DexDescription_Murkrow_1[] = _( + "MURKROW was feared and loathed as the\n" + "alleged bearer of ill fortune.\n" + "This POKéMON shows strong interest in"); +static const u8 DexDescription_Murkrow_2[] = _( + "anything that sparkles or glitters.\n" + "It will even try to steal rings from\n" + "women."); + +static const u8 DexDescription_Slowking_1[] = _( + "SLOWKING undertakes research every\n" + "day in an effort to solve the mysteries\n" + "of the world."); +static const u8 DexDescription_Slowking_2[] = _( + "However, this POKéMON apparently\n" + "forgets everything it has learned if\n" + "the SHELLDER on its head comes off."); + +static const u8 DexDescription_Misdreavus_1[] = _( + "MISDREAVUS frightens people with a\n" + "creepy, sobbing cry. The POKéMON\n" + "apparently uses its red spheres to"); +static const u8 DexDescription_Misdreavus_2[] = _( + "absorb the fearful feelings of foes and\n" + "turn them into nutrition."); + +static const u8 DexDescription_Unown_1[] = _( + "This POKéMON is shaped like ancient\n" + "writing. It is a mystery as to which\n" + "came first, the ancient writings or the"); +static const u8 DexDescription_Unown_2[] = _( + "various UNOWN. Research into this\n" + "topic is ongoing but nothing is known."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Wobbuffet_1[] = _( + "WOBBUFFET does nothing but endure\n" + "attacks - it won’t attack on its own.\n" + "However, it won’t endure an attack on"); +static const u8 DexDescription_Wobbuffet_2[] = _( + "its tail. When that happens, the\n" + "POKéMON will try to take the foe with it\n" + "using DESTINY BOND."); +#else +static const u8 DexDescription_Wobbuffet_1[] = _( + "If two or more WOBBUFFET meet, they will\n" + "turn competitive and try to outdo each\n" + "other’s endurance."); +static const u8 DexDescription_Wobbuffet_2[] = _( + "However, they may try to see which one\n" + "can endure the longest without food.\n" + "TRAINERS need to beware of this habit."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Girafarig_1[] = _( + "GIRAFARIG’s rear head contains a tiny\n" + "brain that is too small for thinking.\n" + "However, the rear head doesn’t need to"); +static const u8 DexDescription_Girafarig_2[] = _( + "sleep, so it can keep watch over its\n" + "surroundings 24 hours a day."); +#else +static const u8 DexDescription_Girafarig_1[] = _( + "GIRAFARIG’s rear head also has a brain,\n" + "but it is small. The rear head attacks in\n" + "response to smells and sounds."); +static const u8 DexDescription_Girafarig_2[] = _( + "Approaching this POKéMON from behind\n" + "can cause the rear head to suddenly\n" + "lash out and bite."); +#endif + +static const u8 DexDescription_Pineco_1[] = _( + "PINECO hangs from a tree branch and\n" + "patiently waits for prey to come along.\n" + "If the POKéMON is disturbed while"); +static const u8 DexDescription_Pineco_2[] = _( + "eating by someone shaking its tree, it\n" + "drops down to the ground and explodes\n" + "with no warning."); + +static const u8 DexDescription_Forretress_1[] = _( + "FORRETRESS conceals itself inside its\n" + "hardened steel shell. The shell is opened\n" + "when the POKéMON is catching prey,"); +static const u8 DexDescription_Forretress_2[] = _( + "but it does so at such a quick pace\n" + "that the shell’s inside cannot be seen."); + +static const u8 DexDescription_Dunsparce_1[] = _( + "DUNSPARCE has a drill for its tail.\n" + "It uses this tail to burrow into the\n" + "ground backwards."); +static const u8 DexDescription_Dunsparce_2[] = _( + "This POKéMON is known to make its nest\n" + "in complex shapes deep under the\n" + "ground."); + +static const u8 DexDescription_Gligar_1[] = _( + "GLIGAR glides through the air without\n" + "a sound as if it were sliding.\n" + "This POKéMON hangs on to the face of"); +static const u8 DexDescription_Gligar_2[] = _( + "its foe using its clawed hind legs and\n" + "the large pincers on its forelegs, then\n" + "injects the prey with its poison barb."); + +static const u8 DexDescription_Steelix_1[] = _( + "STEELIX lives even further underground\n" + "than ONIX. This POKéMON is known to dig\n" + "towards the earth’s core."); +static const u8 DexDescription_Steelix_2[] = _( + "There are records of this POKéMON\n" + "reaching a depth of over six-tenths\n" + "of a mile underground."); + +static const u8 DexDescription_Snubbull_1[] = _( + "By baring its fangs and making a scary\n" + "face, SNUBBULL sends smaller POKéMON\n" + "scurrying away in terror."); +static const u8 DexDescription_Snubbull_2[] = _( + "However, this POKéMON seems a little\n" + "sad at making its foes flee."); + +static const u8 DexDescription_Granbull_1[] = _( + "GRANBULL has a particularly well-\n" + "developed lower jaw. The enormous fangs\n" + "are heavy, causing the POKéMON to tip"); +static const u8 DexDescription_Granbull_2[] = _( + "its head back for balance.\n" + "Unless it is startled, it will not try to\n" + "bite indiscriminately."); + +static const u8 DexDescription_Qwilfish_1[] = _( + "QWILFISH sucks in water, inflating\n" + "itself. This POKéMON uses the pressure\n" + "of the water it swallowed to shoot"); +static const u8 DexDescription_Qwilfish_2[] = _( + "toxic quills all at once from all over\n" + "its body. It finds swimming somewhat\n" + "challenging."); + +static const u8 DexDescription_Scizor_1[] = _( + "SCIZOR has a body with the hardness of\n" + "steel. It is not easily fazed by ordinary\n" + "sorts of attacks."); +static const u8 DexDescription_Scizor_2[] = _( + "This POKéMON flaps its wings to\n" + "regulate its body temperature."); + +static const u8 DexDescription_Shuckle_1[] = _( + "SHUCKLE quietly hides itself under\n" + "rocks, keeping its body concealed\n" + "inside its hard shell while eating"); +static const u8 DexDescription_Shuckle_2[] = _( + "berries it has stored away.\n" + "The berries mix with its body fluids to\n" + "become a juice."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Heracross_1[] = _( + "HERACROSS has sharp claws on its feet.\n" + "These are planted firmly into the\n" + "ground or the bark of a tree, giving the"); +static const u8 DexDescription_Heracross_2[] = _( + "POKéMON a secure and solid footing\n" + "to forcefully fling away foes with\n" + "its proud horn."); +#else +static const u8 DexDescription_Heracross_1[] = _( + "HERACROSS charges in a straight line at\n" + "its foe, slips beneath the foe’s grasp,\n" + "and then scoops up and hurls the"); +static const u8 DexDescription_Heracross_2[] = _( + "opponent with its mighty horn.\n" + "This POKéMON even has enough power\n" + "to topple a massive tree."); +#endif + +static const u8 DexDescription_Sneasel_1[] = _( + "SNEASEL scales trees by punching its\n" + "hooked claws into the bark.\n" + "This POKéMON seeks out unguarded"); +static const u8 DexDescription_Sneasel_2[] = _( + "nests and steals eggs for food while\n" + "the parents are away."); + +static const u8 DexDescription_Teddiursa_1[] = _( + "This POKéMON likes to lick its palms that\n" + "are sweetened by being soaked in honey.\n" + "TEDDIURSA concocts its own honey by"); +static const u8 DexDescription_Teddiursa_2[] = _( + "blending fruits and pollen collected by\n" + "BEEDRILL."); + +static const u8 DexDescription_Ursaring_1[] = _( + "In the forests inhabited by URSARING,\n" + "it is said that there are many streams\n" + "and towering trees where they"); +static const u8 DexDescription_Ursaring_2[] = _( + "gather food. This POKéMON walks\n" + "through its forest gathering food\n" + "every day."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Slugma_1[] = _( + "SLUGMA does not have any blood in its\n" + "body. Instead, intensely hot magma\n" + "circulates throughout this POKéMON’s"); +static const u8 DexDescription_Slugma_2[] = _( + "body, carrying essential nutrients and\n" + "oxygen to its organs."); +#else +static const u8 DexDescription_Slugma_1[] = _( + "Molten magma courses throughout\n" + "SLUGMA’s circulatory system.\n" + "If this POKéMON is chilled, the magma"); +static const u8 DexDescription_Slugma_2[] = _( + "cools and hardens. Its body turns\n" + "brittle and chunks fall off, reducing\n" + "its size."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Magcargo_1[] = _( + "MAGCARGO’s body temperature is\n" + "approximately 18,000 degrees F.\n" + "Water is vaporized on contact."); +static const u8 DexDescription_Magcargo_2[] = _( + "If this POKéMON is caught in the rain,\n" + "the raindrops instantly turn into\n" + "steam, cloaking the area in a thick fog."); +#else +static const u8 DexDescription_Magcargo_1[] = _( + "MAGCARGO’s shell is actually its skin\n" + "that hardened as a result of cooling.\n" + "Its shell is very brittle and fragile -"); +static const u8 DexDescription_Magcargo_2[] = _( + "just touching it causes it to crumble\n" + "apart. This POKéMON returns to its\n" + "original size by dipping itself in magma."); +#endif + +static const u8 DexDescription_Swinub_1[] = _( + "SWINUB roots for food by rubbing its\n" + "snout against the ground. Its favorite\n" + "food is a mushroom that grows under"); +static const u8 DexDescription_Swinub_2[] = _( + "the cover of dead grass.\n" + "This POKéMON occasionally roots out\n" + "hot springs."); + +static const u8 DexDescription_Piloswine_1[] = _( + "PILOSWINE is covered by a thick coat\n" + "of long hair that enables it to endure\n" + "the freezing cold."); +static const u8 DexDescription_Piloswine_2[] = _( + "This POKéMON uses its tusks to dig up\n" + "food that has been buried under ice."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Corsola_1[] = _( + "Clusters of CORSOLA congregate in warm\n" + "seas where they serve as ideal hiding\n" + "places for smaller POKéMON."); +static const u8 DexDescription_Corsola_2[] = _( + "When the water temperature falls, this\n" + "POKéMON migrates to the southern seas."); +#else +static const u8 DexDescription_Corsola_1[] = _( + "CORSOLA’s branches glitter very\n" + "beautifully in seven colors when they\n" + "catch sunlight."); +static const u8 DexDescription_Corsola_2[] = _( + "If any branch breaks off, this POKéMON\n" + "grows it back in just one night."); +#endif + +static const u8 DexDescription_Remoraid_1[] = _( + "REMORAID sucks in water, then expels it\n" + "at high velocity using its abdominal\n" + "muscles to shoot down flying prey."); +static const u8 DexDescription_Remoraid_2[] = _( + "When evolution draws near, this POKéMON\n" + "travels downstream from rivers."); + +static const u8 DexDescription_Octillery_1[] = _( + "OCTILLERY grabs onto its foe using\n" + "its tentacles. This POKéMON tries to\n" + "immobilize it before delivering the"); +static const u8 DexDescription_Octillery_2[] = _( + "finishing blow.\n" + "If the foe turns out to be too strong,\n" + "OCTILLERY spews ink to escape."); + +static const u8 DexDescription_Delibird_1[] = _( + "DELIBIRD carries its food bundled up\n" + "in its tail. There once was a famous\n" + "explorer who managed to reach the peak"); +static const u8 DexDescription_Delibird_2[] = _( + "of Mt. Everest thanks to one of these\n" + "POKéMON sharing its food."); + +static const u8 DexDescription_Mantine_1[] = _( + "On sunny days, schools of MANTINE can\n" + "be seen elegantly leaping over the\n" + "sea’s waves."); +static const u8 DexDescription_Mantine_2[] = _( + "This POKéMON is not bothered by the\n" + "REMORAID that hitches rides."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Skarmory_1[] = _( + "SKARMORY’s steel wings become tattered\n" + "and bashed in from repeated battles.\n" + "Once a year, the battered wings grow"); +static const u8 DexDescription_Skarmory_2[] = _( + "back completely, restoring the cutting\n" + "edges to their pristine state."); +#else +static const u8 DexDescription_Skarmory_1[] = _( + "SKARMORY is entirely encased in hard,\n" + "protective armor. This POKéMON flies at\n" + "close to 190 mph."); +static const u8 DexDescription_Skarmory_2[] = _( + "It slashes foes with its wings that\n" + "possess swordlike cutting edges."); +#endif + +static const u8 DexDescription_Houndour_1[] = _( + "HOUNDOUR hunt as a coordinated pack.\n" + "They communicate with each other using\n" + "a variety of cries to corner their prey."); +static const u8 DexDescription_Houndour_2[] = _( + "This POKéMON’s remarkable teamwork is\n" + "unparalleled."); + +static const u8 DexDescription_Houndoom_1[] = _( + "In a HOUNDOOM pack, the one with its\n" + "horns raked sharply towards the back\n" + "serves a leadership role."); +static const u8 DexDescription_Houndoom_2[] = _( + "These POKéMON choose their leader by\n" + "fighting amongst themselves."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Kingdra_1[] = _( + "KINGDRA sleeps on the seafloor where\n" + "it is otherwise devoid of life.\n" + "When a storm arrives, the POKéMON is"); +static const u8 DexDescription_Kingdra_2[] = _( + "said to awaken and wander about in\n" + "search of prey."); +#else +static const u8 DexDescription_Kingdra_1[] = _( + "KINGDRA lives at extreme ocean depths\n" + "that are otherwise uninhabited.\n" + "It has long been believed that the"); +static const u8 DexDescription_Kingdra_2[] = _( + "yawning of this POKéMON creates\n" + "spiraling ocean currents."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Phanpy_1[] = _( + "PHANPY uses its long nose to shower\n" + "itself. When others gather around, they\n" + "thoroughly douse each other with water."); +static const u8 DexDescription_Phanpy_2[] = _( + "These POKéMON can be seen drying their\n" + "soaking-wet bodies at the edge of\n" + "water."); +#else +static const u8 DexDescription_Phanpy_1[] = _( + "For its nest, PHANPY digs a vertical pit \n" + "in the ground at the edge of a river.\n" + "It marks the area around its nest with"); +static const u8 DexDescription_Phanpy_2[] = _( + "its trunk to let the others know that\n" + "the area has been claimed."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Donphan_1[] = _( + "If DONPHAN were to tackle with its hard\n" + "body, even a house could be destroyed.\n" + "Using its massive strength, the"); +static const u8 DexDescription_Donphan_2[] = _( + "POKéMON helps clear rock and mud slides\n" + "that block mountain trails."); +#else +static const u8 DexDescription_Donphan_1[] = _( + "DONPHAN’s favorite attack is curling\n" + "its body into a ball, then charging at\n" + "its foe while rolling at high speed."); +static const u8 DexDescription_Donphan_2[] = _( + "Once it starts rolling, this POKéMON\n" + "can’t stop very easily."); +#endif + +static const u8 DexDescription_Porygon2_1[] = _( + "PORYGON2 was created by humans using\n" + "the power of science. The man-made\n" + "POKéMON has been endowed with"); +static const u8 DexDescription_Porygon2_2[] = _( + "artificial intelligence that enables it\n" + "to learn new gestures and emotions\n" + "on its own."); + +static const u8 DexDescription_Stantler_1[] = _( + "STANTLER’s magnificent antlers were\n" + "traded at high prices as works of art.\n" + "As a result, this POKéMON was hunted"); +static const u8 DexDescription_Stantler_2[] = _( + "close to extinction by those who were\n" + "after the priceless antlers."); + +static const u8 DexDescription_Smeargle_1[] = _( + "SMEARGLE marks the boundaries of its\n" + "territory using a body fluid that leaks\n" + "out from the tip of its tail."); +static const u8 DexDescription_Smeargle_2[] = _( + "Over 5,000 different marks left by this\n" + "POKéMON have been found."); + +static const u8 DexDescription_Tyrogue_1[] = _( + "TYROGUE becomes stressed out if it\n" + "does not get to train every day.\n" + "When raising this POKéMON, the TRAINER"); +static const u8 DexDescription_Tyrogue_2[] = _( + "must establish and uphold various\n" + "training methods."); + +static const u8 DexDescription_Hitmontop_1[] = _( + "HITMONTOP spins on its head at high\n" + "speed, all the while delivering kicks.\n" + "This technique is a remarkable mix of"); +static const u8 DexDescription_Hitmontop_2[] = _( + "both offense and defense at the same\n" + "time. The POKéMON travels faster\n" + "spinning than it does walking."); + +static const u8 DexDescription_Smoochum_1[] = _( + "SMOOCHUM actively runs about, but\n" + "also falls quite often.\n" + "Whenever the chance arrives, it will"); +static const u8 DexDescription_Smoochum_2[] = _( + "look for its reflection to make sure its\n" + "face hasn’t become dirty."); + +static const u8 DexDescription_Elekid_1[] = _( + "ELEKID stores electricity in its body.\n" + "If it touches metal and accidentally\n" + "discharges all its built-up electricity,"); +static const u8 DexDescription_Elekid_2[] = _( + "this POKéMON begins swinging its arms\n" + "in circles to recharge itself."); + +static const u8 DexDescription_Magby_1[] = _( + "MAGBY’s state of health is determined\n" + "by observing the fire it breathes.\n" + "If the POKéMON is spouting yellow"); +static const u8 DexDescription_Magby_2[] = _( + "flames from its mouth, it is in good\n" + "health. When it is fatigued, black smoke\n" + "will be mixed in with the flames."); + +static const u8 DexDescription_Miltank_1[] = _( + "MILTANK gives over five gallons of milk\n" + "on a daily basis. Its sweet milk is\n" + "enjoyed by children and grown-ups alike."); +static const u8 DexDescription_Miltank_2[] = _( + "People who can’t drink milk turn it into\n" + "yogurt and eat it instead."); + +static const u8 DexDescription_Blissey_1[] = _( + "BLISSEY senses sadness with its fluffy\n" + "coat of fur. If it does so, this POKéMON\n" + "will rush over to the sad person,"); +static const u8 DexDescription_Blissey_2[] = _( + "however far they may be, to share an\n" + "egg of happiness that brings a smile\n" + "to any face."); + +static const u8 DexDescription_Raikou_1[] = _( + "RAIKOU embodies the speed of lightning.\n" + "The roars of this POKéMON send shock\n" + "waves shuddering through the air and"); +static const u8 DexDescription_Raikou_2[] = _( + "shake the ground as if lightning bolts\n" + "had come crashing down."); + +static const u8 DexDescription_Entei_1[] = _( + "ENTEI embodies the passion of magma.\n" + "This POKéMON is thought to have been\n" + "born in the eruption of a volcano."); +static const u8 DexDescription_Entei_2[] = _( + "It sends up massive bursts of fire that\n" + "utterly consume all that they touch."); + +static const u8 DexDescription_Suicune_1[] = _( + "SUICUNE embodies the compassion of\n" + "a pure spring of water. It runs across\n" + "the land with gracefulness."); +static const u8 DexDescription_Suicune_2[] = _( + "This POKéMON has the power to purify\n" + "dirty water."); + +static const u8 DexDescription_Larvitar_1[] = _( + "LARVITAR is born deep under the ground.\n" + "To come up to the surface, this POKéMON\n" + "must eat its way through the soil above."); +static const u8 DexDescription_Larvitar_2[] = _( + "Until it does so, LARVITAR cannot see\n" + "its parent’s face."); + +static const u8 DexDescription_Pupitar_1[] = _( + "PUPITAR creates a gas inside its body\n" + "that it compresses and forcefully\n" + "ejects to propel itself like a jet."); +static const u8 DexDescription_Pupitar_2[] = _( + "The body is very durable - it avoids\n" + "damage even if it hits solid steel."); + +static const u8 DexDescription_Tyranitar_1[] = _( + "TYRANITAR is so overwhelmingly\n" + "powerful, it can bring down a whole\n" + "mountain to make its nest."); +static const u8 DexDescription_Tyranitar_2[] = _( + "This POKéMON wanders about in\n" + "mountains seeking new opponents to\n" + "fight."); + +static const u8 DexDescription_Lugia_1[] = _( + "LUGIA’s wings pack devastating power -\n" + "a light fluttering of its wings can blow\n" + "apart regular houses."); +static const u8 DexDescription_Lugia_2[] = _( + "As a result, this POKéMON chooses to\n" + "live out of sight deep under the sea."); + +static const u8 DexDescription_HoOh_1[] = _( + "HO-OH’s feathers glow in seven colors\n" + "depending on the angle at which they\n" + "are struck by light."); +static const u8 DexDescription_HoOh_2[] = _( + "These feathers are said to bring\n" + "happiness to the bearers. This POKéMON\n" + "is said to live at the foot of a rainbow."); + +static const u8 DexDescription_Celebi_1[] = _( + "This POKéMON came from the future by\n" + "crossing over time.\n" + "It is thought that so long as CELEBI"); +static const u8 DexDescription_Celebi_2[] = _( + "appears, a bright and shining future\n" + "awaits us."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Treecko_1[] = _( + "TREECKO is cool, calm, and collected -\n" + "it never panics under any situation.\n" + "If a bigger foe were to glare at this"); +static const u8 DexDescription_Treecko_2[] = _( + "POKéMON, it would glare right back\n" + "without conceding an inch of ground."); +#else +static const u8 DexDescription_Treecko_1[] = _( + "TREECKO has small hooks on the bottom\n" + "of its feet that enable it to scale\n" + "vertical walls."); +static const u8 DexDescription_Treecko_2[] = _( + "This POKéMON attacks by slamming foes\n" + "with its thick tail."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Grovyle_1[] = _( + "This POKéMON adeptly flies from branch\n" + "to branch in trees.\n" + "In a forest, no POKéMON can ever hope"); +static const u8 DexDescription_Grovyle_2[] = _( + "to catch a fleeing GROVYLE however\n" + "fast they may be."); +#else +static const u8 DexDescription_Grovyle_1[] = _( + "The leaves growing out of GROVYLE’s\n" + "body are convenient for camouflaging\n" + "it from enemies in the forest."); +static const u8 DexDescription_Grovyle_2[] = _( + "This POKéMON is a master at climbing\n" + "trees in jungles."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Sceptile_1[] = _( + "SCEPTILE has seeds growing on its back.\n" + "They are said to be bursting with\n" + "nutrients that revitalize trees."); +static const u8 DexDescription_Sceptile_2[] = _( + "This POKéMON raises the trees in a\n" + "forest with loving care."); +#else +static const u8 DexDescription_Sceptile_1[] = _( + "The leaves growing on SCEPTILE’s body\n" + "are very sharp edged. This POKéMON is\n" + "very agile - it leaps all over the"); +static const u8 DexDescription_Sceptile_2[] = _( + "branches of trees and jumps on its foe\n" + "from above or behind."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Torchic_1[] = _( + "TORCHIC has a place inside its body\n" + "where it keeps its flame. Give it a hug -\n" + "it will be glowing with warmth."); +static const u8 DexDescription_Torchic_2[] = _( + "This POKéMON is covered all over by a\n" + "fluffy coat of down."); +#else +static const u8 DexDescription_Torchic_1[] = _( + "TORCHIC sticks with its TRAINER,\n" + "following behind with unsteady\n" + "steps."); +static const u8 DexDescription_Torchic_2[] = _( + "This POKéMON breathes fire of over\n" + "1,800 degrees F, including fireballs\n" + "that leave the foe scorched black."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Combusken_1[] = _( + "COMBUSKEN battles with the intensely\n" + "hot flames it spews from its beak and\n" + "with outstandingly destructive kicks."); +static const u8 DexDescription_Combusken_2[] = _( + "This POKéMON’s cry is very loud and\n" + "distracting."); +#else +static const u8 DexDescription_Combusken_1[] = _( + "COMBUSKEN toughens up its legs and\n" + "thighs by running through fields and\n" + "mountains."); +static const u8 DexDescription_Combusken_2[] = _( + "This POKéMON’s legs possess both speed\n" + "and power, enabling it to dole out ten\n" + "kicks in one second."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Blaziken_1[] = _( + "BLAZIKEN has incredibly strong legs -\n" + "it can easily clear a 30-story building\n" + "in one leap."); +static const u8 DexDescription_Blaziken_2[] = _( + "This POKéMON’s blazing punches leave\n" + "its foes scorched and blackened."); +#else +static const u8 DexDescription_Blaziken_1[] = _( + "In battle, BLAZIKEN blows out intense\n" + "flames from its wrists and attacks foes\n" + "courageously."); +static const u8 DexDescription_Blaziken_2[] = _( + "The stronger the foe, the more\n" + "intensely this POKéMON’s wrists burn."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Mudkip_1[] = _( + "In water, MUDKIP breathes using the\n" + "gills on its cheeks.\n" + "If it is faced with a tight situation in"); +static const u8 DexDescription_Mudkip_2[] = _( + "battle, this POKéMON will unleash its\n" + "amazing power - it can crush rocks\n" + "bigger than itself."); +#else +static const u8 DexDescription_Mudkip_1[] = _( + "The fin on MUDKIP’s head acts as highly\n" + "sensitive radar. Using this fin to sense\n" + "movements of water and air, this"); +static const u8 DexDescription_Mudkip_2[] = _( + "POKéMON can determine what is taking\n" + "place around it without using its eyes."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Marshtomp_1[] = _( + "MARSHTOMP is much faster at traveling\n" + "through mud than it is at swimming.\n" + "This POKéMON’s hindquarters exhibit"); +static const u8 DexDescription_Marshtomp_2[] = _( + "obvious development, giving it the\n" + "ability to walk on just its hind legs."); +#else +static const u8 DexDescription_Marshtomp_1[] = _( + "The surface of MARSHTOMP’s body is\n" + "enveloped by a thin, sticky film that\n" + "enables it to live on land."); +static const u8 DexDescription_Marshtomp_2[] = _( + "This POKéMON plays in mud on beaches\n" + "when the ocean tide is low."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Swampert_1[] = _( + "SWAMPERT predicts storms by sensing\n" + "subtle differences in the sounds of\n" + "waves and tidal winds with its fins."); +static const u8 DexDescription_Swampert_2[] = _( + "If a storm is approaching, it piles up\n" + "boulders to protect itself."); +#else +static const u8 DexDescription_Swampert_1[] = _( + "SWAMPERT is very strong. It has enough\n" + "power to easily drag a boulder weighing\n" + "more than a ton."); +static const u8 DexDescription_Swampert_2[] = _( + "This POKéMON also has powerful vision\n" + "that lets it see even in murky water."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Poochyena_1[] = _( + "POOCHYENA is an omnivore - it will eat\n" + "anything. A distinguishing feature is\n" + "how large its fangs are compared to"); +static const u8 DexDescription_Poochyena_2[] = _( + "its body. This POKéMON tries to\n" + "intimidate its foes by making the hair\n" + "on its tail bristle out."); +#else +static const u8 DexDescription_Poochyena_1[] = _( + "At first sight, POOCHYENA takes a bite\n" + "at anything that moves.\n" + "This POKéMON chases after prey until"); +static const u8 DexDescription_Poochyena_2[] = _( + "the victim becomes exhausted.\n" + "However, it may turn tail if the prey\n" + "strikes back."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Mightyena_1[] = _( + "MIGHTYENA travel and act as a pack\n" + "in the wild. The memory of its life in the\n" + "wild compels the POKéMON to obey only"); +static const u8 DexDescription_Mightyena_2[] = _( + "those TRAINERS that it recognizes to\n" + "possess superior skill."); +#else +static const u8 DexDescription_Mightyena_1[] = _( + "MIGHTYENA gives obvious signals when\n" + "it is preparing to attack. It starts to\n" + "growl deeply and then flattens its body."); +static const u8 DexDescription_Mightyena_2[] = _( + "This POKéMON will bite savagely with its\n" + "sharply pointed fangs."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Zigzagoon_1[] = _( + "The hair on ZIGZAGOON’s back is \n" + "bristly. It rubs the hard back hair\n" + "against trees to leave its territorial"); +static const u8 DexDescription_Zigzagoon_2[] = _( + "markings.\n" + "This POKéMON may play dead to fool foes\n" + "in battle."); +#else +static const u8 DexDescription_Zigzagoon_1[] = _( + "ZIGZAGOON restlessly wanders\n" + "everywhere at all times. This POKéMON\n" + "does so because it is very curious."); +static const u8 DexDescription_Zigzagoon_2[] = _( + "It becomes interested in anything\n" + "that it happens to see."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Linoone_1[] = _( + "When hunting, LINOONE will make a\n" + "beeline straight for the prey at a full\n" + "run. While this POKéMON is capable of"); +static const u8 DexDescription_Linoone_2[] = _( + "topping 60 mph, it has to come to a\n" + "screeching halt before it can turn."); +#else +static const u8 DexDescription_Linoone_1[] = _( + "LINOONE always runs full speed and only\n" + "in straight lines. If facing an obstacle,\n" + "it makes a right-angle turn to evade it."); +static const u8 DexDescription_Linoone_2[] = _( + "This POKéMON is very challenged by\n" + "gently curving roads."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Wurmple_1[] = _( + "WURMPLE is targeted by SWELLOW as\n" + "prey. This POKéMON will try to resist by\n" + "pointing the spikes on its rear at the"); +static const u8 DexDescription_Wurmple_2[] = _( + "attacking predator.\n" + "It will weaken the foe by leaking poison\n" + "from the spikes."); +#else +static const u8 DexDescription_Wurmple_1[] = _( + "Using the spikes on its rear end, \n" + "WURMPLE peels the bark off trees and\n" + "feeds on the sap that oozes out."); +static const u8 DexDescription_Wurmple_2[] = _( + "This POKéMON’s feet are tipped with\n" + "suction pads that allow it to cling to\n" + "glass without slipping."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Silcoon_1[] = _( + "SILCOON was thought to endure hunger\n" + "and not consume anything before its\n" + "evolution. However, it is now thought"); +static const u8 DexDescription_Silcoon_2[] = _( + "that this POKéMON slakes its thirst by\n" + "drinking rainwater that collects on its\n" + "silk."); +#else +static const u8 DexDescription_Silcoon_1[] = _( + "SILCOON tethers itself to a tree branch\n" + "using silk to keep from falling. There, \n" + "this POKéMON hangs quietly while it"); +static const u8 DexDescription_Silcoon_2[] = _( + "awaits evolution.\n" + "It peers out of the silk cocoon through\n" + "a small hole."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Beautifly_1[] = _( + "BEAUTIFLY has a long mouth like a coiled\n" + "needle, which is very convenient for\n" + "collecting pollen from flowers."); +static const u8 DexDescription_Beautifly_2[] = _( + "This POKéMON rides the spring winds as\n" + "it flits around gathering pollen."); +#else +static const u8 DexDescription_Beautifly_1[] = _( + "BEAUTIFLY’s favorite food is the sweet\n" + "pollen of flowers. If you want to see\n" + "this POKéMON, just leave a potted"); +static const u8 DexDescription_Beautifly_2[] = _( + "flower by an open window. BEAUTIFLY\n" + "is sure to come looking for pollen."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Cascoon_1[] = _( + "If it is attacked, CASCOON remains\n" + "motionless however badly it may be\n" + "hurt. It does so because if it were to"); +static const u8 DexDescription_Cascoon_2[] = _( + "move, its body would be weak upon\n" + "evolution. This POKéMON will also not\n" + "forget the pain it endured."); +#else +static const u8 DexDescription_Cascoon_1[] = _( + "CASCOON makes its protective cocoon\n" + "by wrapping its body entirely with a\n" + "fine silk from its mouth. Once the silk"); +static const u8 DexDescription_Cascoon_2[] = _( + "goes around its body, it hardens.\n" + "This POKéMON prepares for its evolution\n" + "inside the cocoon."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Dustox_1[] = _( + "When DUSTOX flaps its wings, a fine\n" + "dust is scattered all over. This dust is\n" + "actually a powerful poison that will"); +static const u8 DexDescription_Dustox_2[] = _( + "even make a pro wrestler sick.\n" + "This POKéMON searches for food using\n" + "its antennae like radar."); +#else +static const u8 DexDescription_Dustox_1[] = _( + "DUSTOX is instinctively drawn to light.\n" + "Swarms of this POKéMON are attracted\n" + "by the bright lights of cities, where"); +static const u8 DexDescription_Dustox_2[] = _( + "they wreak havoc by stripping the\n" + "leaves off roadside trees for food."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Lotad_1[] = _( + "LOTAD is said to have dwelled on land\n" + "before. However, this POKéMON is\n" + "thought to have returned to water"); +static const u8 DexDescription_Lotad_2[] = _( + "because the leaf on its head grew large\n" + "and heavy. It now lives by floating\n" + "atop the water."); +#else +static const u8 DexDescription_Lotad_1[] = _( + "LOTAD live in ponds and lakes, where\n" + "they float on the surface.\n" + "It grows weak if its broad leaf dies."); +static const u8 DexDescription_Lotad_2[] = _( + "On rare occasions, this POKéMON travels\n" + "on land in search of clean water."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Lombre_1[] = _( + "LOMBRE’s entire body is covered by a\n" + "slippery, slimy film. It feels horribly\n" + "unpleasant to be touched by this"); +static const u8 DexDescription_Lombre_2[] = _( + "POKéMON’s hands.\n" + "LOMBRE is often mistaken for a human\n" + "child."); +#else +static const u8 DexDescription_Lombre_1[] = _( + "LOMBRE is nocturnal - it will get active\n" + "after dusk. It is also a mischief-maker.\n" + "When this POKéMON spots anglers,"); +static const u8 DexDescription_Lombre_2[] = _( + "it tugs on their fishing lines from\n" + "beneath the surface and enjoys their\n" + "consternation."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Ludicolo_1[] = _( + "Upon hearing an upbeat and cheerful\n" + "rhythm, the cells in LUDICOLO’s body\n" + "become very energetic and active."); +static const u8 DexDescription_Ludicolo_2[] = _( + "Even in battle, this POKéMON will\n" + "exhibit an amazing amount of power."); +#else +static const u8 DexDescription_Ludicolo_1[] = _( + "LUDICOLO begins dancing as soon as\n" + "it hears cheerful, festive music.\n" + "This POKéMON is said to appear when it"); +static const u8 DexDescription_Ludicolo_2[] = _( + "hears the singing of children on hiking\n" + "outings."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Seedot_1[] = _( + "SEEDOT looks exactly like an acorn\n" + "when it is dangling from a tree branch.\n" + "It startles other POKéMON by suddenly"); +static const u8 DexDescription_Seedot_2[] = _( + "moving.\n" + "This POKéMON polishes its body once a\n" + "day using leaves."); +#else +static const u8 DexDescription_Seedot_1[] = _( + "SEEDOT attaches itself to a tree\n" + "branch using the top of its head.\n" + "It sucks moisture from the tree while"); +static const u8 DexDescription_Seedot_2[] = _( + "hanging off the branch.\n" + "The more water it drinks, the glossier\n" + "this POKéMON’s body becomes."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Nuzleaf_1[] = _( + "This POKéMON pulls out the leaf on its\n" + "head and makes a flute with it.\n" + "The sound of NUZLEAF’s flute strikes"); +static const u8 DexDescription_Nuzleaf_2[] = _( + "fear and uncertainty in the hearts of\n" + "people lost in a forest."); +#else +static const u8 DexDescription_Nuzleaf_1[] = _( + "NUZLEAF live in densely overgrown\n" + "forests. They occasionally venture out\n" + "of the forest to startle people."); +static const u8 DexDescription_Nuzleaf_2[] = _( + "This POKéMON dislikes having its long\n" + "nose pinched."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Shiftry_1[] = _( + "SHIFTRY’s large fans generate awesome\n" + "gusts of wind at a speed close to 100\n" + "feet per second. The whipped-up wind"); +static const u8 DexDescription_Shiftry_2[] = _( + "blows anything away.\n" + "This POKéMON chooses to live quietly\n" + "deep in forests."); +#else +static const u8 DexDescription_Shiftry_1[] = _( + "SHIFTRY is a mysterious POKéMON that\n" + "is said to live atop towering trees \n" + "dating back over a thousand years."); +static const u8 DexDescription_Shiftry_2[] = _( + "It creates terrific windstorms with\n" + "the fans it holds."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Taillow_1[] = _( + "TAILLOW is young - it has only just\n" + "left its nest. As a result, it sometimes\n" + "becomes lonesome and cries at night."); +static const u8 DexDescription_Taillow_2[] = _( + "This POKéMON feeds on WURMPLE that\n" + "live in forests."); +#else +static const u8 DexDescription_Taillow_1[] = _( + "TAILLOW courageously stands its\n" + "ground against foes, however strong\n" + "they may be."); +static const u8 DexDescription_Taillow_2[] = _( + "This gutsy POKéMON will remain defiant\n" + "even after a loss. On the other hand,\n" + "it cries loudly if it becomes hungry."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Swellow_1[] = _( + "SWELLOW is very conscientious about\n" + "the upkeep of its glossy wings.\n" + "Once two SWELLOW are gathered, they"); +static const u8 DexDescription_Swellow_2[] = _( + "diligently take care of cleaning each\n" + "other’s wings."); +#else +static const u8 DexDescription_Swellow_1[] = _( + "SWELLOW flies high above our heads,\n" + "making graceful arcs in the sky.\n" + "This POKéMON dives at a steep angle as"); +static const u8 DexDescription_Swellow_2[] = _( + "soon as it spots its prey. The hapless\n" + "prey is tightly grasped by SWELLOW’s\n" + "clawed feet, preventing escape."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Wingull_1[] = _( + "WINGULL rides updrafts rising from the\n" + "sea by extending its long and narrow\n" + "wings to glide."); +static const u8 DexDescription_Wingull_2[] = _( + "This POKéMON’s long beak is useful for\n" + "catching prey."); +#else +static const u8 DexDescription_Wingull_1[] = _( + "WINGULL has the habit of carrying prey\n" + "and valuables in its beak and hiding\n" + "them in all sorts of locations."); +static const u8 DexDescription_Wingull_2[] = _( + "This POKéMON rides the winds and flies\n" + "as if it were skating across the sky."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Pelipper_1[] = _( + "PELIPPER searches for food while in\n" + "flight by skimming the wave tops.\n" + "This POKéMON dips its large bill in the"); +static const u8 DexDescription_Pelipper_2[] = _( + "sea to scoop up food, then swallows\n" + "everything in one big gulp."); +#else +static const u8 DexDescription_Pelipper_1[] = _( + "PELIPPER is a flying transporter that\n" + "carries small POKéMON and eggs inside\n" + "its massive bill."); +static const u8 DexDescription_Pelipper_2[] = _( + "This POKéMON builds its nest on steep\n" + "cliffs facing the sea."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Ralts_1[] = _( + "RALTS has the ability to sense the\n" + "emotions of people.\n" + "If its TRAINER is in a cheerful mood,"); +static const u8 DexDescription_Ralts_2[] = _( + "this POKéMON grows cheerful and joyous\n" + "in the same way."); +#else +static const u8 DexDescription_Ralts_1[] = _( + "RALTS senses the emotions of\n" + "people using the horns on its head.\n" + "This POKéMON rarely appears before"); +static const u8 DexDescription_Ralts_2[] = _( + "people. But when it does, it draws\n" + "closer if it senses that the person has\n" + "a positive disposition."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Kirlia_1[] = _( + "KIRLIA uses the horns on its head\n" + "to amplify its psychokinetic power.\n" + "When the POKéMON uses its power,"); +static const u8 DexDescription_Kirlia_2[] = _( + "the air around it becomes distorted,\n" + "creating mirages of nonexistent\n" + "scenery."); +#else +static const u8 DexDescription_Kirlia_1[] = _( + "It is said that a KIRLIA that is\n" + "exposed to the positive emotions of\n" + "its TRAINER grows beautiful."); +static const u8 DexDescription_Kirlia_2[] = _( + "This POKéMON controls psychokinetic\n" + "powers with its highly developed brain."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Gardevoir_1[] = _( + "GARDEVOIR has the psychokinetic\n" + "power to distort the dimensions and\n" + "create a small black hole."); +static const u8 DexDescription_Gardevoir_2[] = _( + "This POKéMON will try to protect its\n" + "TRAINER even at the risk of its own\n" + "life."); +#else +static const u8 DexDescription_Gardevoir_1[] = _( + "GARDEVOIR has the ability to read the\n" + "future. If it senses impending danger\n" + "to its TRAINER, this POKéMON is said to"); +static const u8 DexDescription_Gardevoir_2[] = _( + "unleash its psychokinetic energy at\n" + "full power."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Surskit_1[] = _( + "If SURSKIT senses danger, it secretes\n" + "a thick, sugary syrup from the tip of\n" + "its head."); +static const u8 DexDescription_Surskit_2[] = _( + "There are some POKéMON that love\n" + "eating this syrup."); +#else +static const u8 DexDescription_Surskit_1[] = _( + "From the tips of its feet, SURSKIT\n" + "secretes an oil that enables it to walk\n" + "on water as if it were skating."); +static const u8 DexDescription_Surskit_2[] = _( + "This POKéMON feeds on microscopic\n" + "organisms in ponds and lakes."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Masquerain_1[] = _( + "MASQUERAIN’s antennas have eyelike\n" + "patterns that usually give it an angry\n" + "look. If the “eyes” are droopy and"); +static const u8 DexDescription_Masquerain_2[] = _( + "appear sad, it is said to be a sign\n" + "that a heavy rainfall is on its way."); +#else +static const u8 DexDescription_Masquerain_1[] = _( + "MASQUERAIN intimidates enemies with\n" + "the eyelike patterns on its antennas.\n" + "This POKéMON flaps its four wings to"); +static const u8 DexDescription_Masquerain_2[] = _( + "freely fly in any direction - even\n" + "sideways and backwards - as if it were\n" + "a helicopter."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Shroomish_1[] = _( + "If SHROOMISH senses danger, it shakes\n" + "its body and scatters spores from the\n" + "top of its head."); +static const u8 DexDescription_Shroomish_2[] = _( + "This POKéMON’s spores are so toxic,\n" + "they make trees and weeds wilt."); +#else +static const u8 DexDescription_Shroomish_1[] = _( + "SHROOMISH live in damp soil in the dark\n" + "depths of forests. They are often\n" + "found keeping still under fallen leaves."); +static const u8 DexDescription_Shroomish_2[] = _( + "This POKéMON feeds on compost that\n" + "is made up of fallen, rotted leaves."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Breloom_1[] = _( + "The seeds ringing BRELOOM’s tail are\n" + "made of hardened toxic spores. It is\n" + "horrible to eat the seeds."); +static const u8 DexDescription_Breloom_2[] = _( + "Just taking a bite of this POKéMON’s\n" + "seed will cause your stomach to rumble."); +#else +static const u8 DexDescription_Breloom_1[] = _( + "BRELOOM closes in on its foe with light\n" + "and sprightly footwork, then throws\n" + "punches with its stretchy arms."); +static const u8 DexDescription_Breloom_2[] = _( + "This POKéMON’s fighting technique puts\n" + "boxers to shame."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Slakoth_1[] = _( + "SLAKOTH’s heart beats just once a\n" + "minute. Whatever happens, it is\n" + "content to loaf around motionless."); +static const u8 DexDescription_Slakoth_2[] = _( + "It is rare to see this POKéMON in\n" + "motion."); +#else +static const u8 DexDescription_Slakoth_1[] = _( + "SLAKOTH lolls around for over twenty\n" + "hours every day. Because it moves so\n" + "little, it does not need much food."); +static const u8 DexDescription_Slakoth_2[] = _( + "This POKéMON’s sole daily meal consists\n" + "of just three leaves."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Vigoroth_1[] = _( + "VIGOROTH is simply incapable of\n" + "remaining still. Even when it tries to\n" + "sleep, the blood in its veins grows"); +static const u8 DexDescription_Vigoroth_2[] = _( + "agitated, compelling this POKéMON to\n" + "run wild throughout the jungle before\n" + "it can settle down."); +#else +static const u8 DexDescription_Vigoroth_1[] = _( + "VIGOROTH is always itching and agitated\n" + "to go on a wild rampage. It simply can’t\n" + "tolerate sitting still for even a minute."); +static const u8 DexDescription_Vigoroth_2[] = _( + "This POKéMON’s stress level rises if it\n" + "can’t be moving constantly."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Slaking_1[] = _( + "Wherever SLAKING live, rings of over\n" + "a yard in diameter appear in grassy\n" + "fields. They are made by the POKéMON"); +static const u8 DexDescription_Slaking_2[] = _( + "as it eats all the grass within reach\n" + "while lying prone on the ground."); +#else +static const u8 DexDescription_Slaking_1[] = _( + "SLAKING spends all day lying down and\n" + "lolling about.\n" + "It eats grass growing within its reach."); +static const u8 DexDescription_Slaking_2[] = _( + "If it eats all the grass it can reach,\n" + "this POKéMON reluctantly moves to\n" + "another spot."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Nincada_1[] = _( + "NINCADA lives underground. It uses its\n" + "sharp claws to carve the roots of trees\n" + "and absorb moisture and nutrients."); +static const u8 DexDescription_Nincada_2[] = _( + "This POKéMON can’t withstand bright\n" + "sunlight so avoids it."); +#else +static const u8 DexDescription_Nincada_1[] = _( + "NINCADA lives underground for many\n" + "years in complete darkness.\n" + "This POKéMON absorbs nutrients from"); +static const u8 DexDescription_Nincada_2[] = _( + "the roots of trees. It stays motionless\n" + "as it waits for evolution."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Ninjask_1[] = _( + "If NINJASK is not trained properly,\n" + "it will refuse to obey the TRAINER and\n" + "cry loudly continuously."); +static const u8 DexDescription_Ninjask_2[] = _( + "Because of this quality, this POKéMON\n" + "is said to be one that puts the\n" + "TRAINER’s abilities to the test."); +#else +static const u8 DexDescription_Ninjask_1[] = _( + "NINJASK moves around at such a high\n" + "speed that it cannot be seen, even\n" + "while its crying can be clearly heard."); +static const u8 DexDescription_Ninjask_2[] = _( + "For that reason, this POKéMON was long\n" + "believed to be invisible."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Shedinja_1[] = _( + "SHEDINJA is a peculiar POKéMON.\n" + "It seems to appear unsought in a POKé\n" + "BALL after a NINCADA evolves."); +static const u8 DexDescription_Shedinja_2[] = _( + "This bizarre POKéMON is entirely\n" + "immobile - it doesn’t even breathe."); +#else +static const u8 DexDescription_Shedinja_1[] = _( + "SHEDINJA’s hard body doesn’t move -\n" + "not even a twitch. In fact, its body\n" + "appears to be merely a hollow shell."); +static const u8 DexDescription_Shedinja_2[] = _( + "It is believed that this POKéMON will\n" + "steal the spirit of anyone peering into\n" + "its hollow body from its back."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Whismur_1[] = _( + "WHISMUR is very timid. If it starts to\n" + "cry loudly, it becomes startled by its\n" + "own crying and cries even harder."); +static const u8 DexDescription_Whismur_2[] = _( + "When it finally stops crying, the\n" + "POKéMON goes to sleep, all tired out."); +#else +static const u8 DexDescription_Whismur_1[] = _( + "Normally, WHISMUR’s voice is very quiet -\n" + "it is barely audible even if one is\n" + "paying close attention."); +static const u8 DexDescription_Whismur_2[] = _( + "However, if this POKéMON senses danger,\n" + "it starts crying at an earsplitting\n" + "volume."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Loudred_1[] = _( + "LOUDRED shouts while stamping its feet.\n" + "After it finishes shouting, this\n" + "POKéMON becomes incapable of hearing"); +static const u8 DexDescription_Loudred_2[] = _( + "anything for a while. This is considered\n" + "to be a weak point."); +#else +static const u8 DexDescription_Loudred_1[] = _( + "LOUDRED’s bellowing can completely\n" + "decimate a wood-frame house. It uses\n" + "its voice to punish its foes."); +static const u8 DexDescription_Loudred_2[] = _( + "This POKéMON’s round ears serve as\n" + "loudspeakers."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Exploud_1[] = _( + "EXPLOUD communicates its feelings to\n" + "the others by emitting whistle-like\n" + "sounds from the tubes on its body."); +static const u8 DexDescription_Exploud_2[] = _( + "This POKéMON only raises its voice when\n" + "it is in battle."); +#else +static const u8 DexDescription_Exploud_1[] = _( + "EXPLOUD triggers earthquakes with the\n" + "tremors it creates by bellowing. If this\n" + "POKéMON violently inhales from the"); +static const u8 DexDescription_Exploud_2[] = _( + "ports on its body, it’s a sign that it is\n" + "preparing to let loose a huge bellow."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Makuhita_1[] = _( + "MAKUHITA has a tireless spirit -\n" + "it will never give up hope. It eats a lot\n" + "of food, gets plenty of sleep, and it"); +static const u8 DexDescription_Makuhita_2[] = _( + "trains very rigorously. By living that\n" + "way, this POKéMON packs its body with\n" + "energy."); +#else +static const u8 DexDescription_Makuhita_1[] = _( + "MAKUHITA is tenacious - it will keep\n" + "getting up and attacking its foe\n" + "however many times it is knocked down."); +static const u8 DexDescription_Makuhita_2[] = _( + "Every time it gets back up, this\n" + "POKéMON stores more energy in its body\n" + "for evolving."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Hariyama_1[] = _( + "HARIYAMA’s thick body may appear fat,\n" + "but it is actually a hunk of solid muscle.\n" + "If this POKéMON bears down and"); +static const u8 DexDescription_Hariyama_2[] = _( + "tightens all its muscles, its body\n" + "becomes as hard as a rock."); +#else +static const u8 DexDescription_Hariyama_1[] = _( + "HARIYAMA practices its straight-arm\n" + "slaps in any number of locations.\n" + "One hit of this POKéMON’s powerful,"); +static const u8 DexDescription_Hariyama_2[] = _( + "openhanded, straight-arm punches\n" + "could snap a telephone pole in two."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Azurill_1[] = _( + "AZURILL’s tail is large and bouncy.\n" + "It is packed full of the nutrients this\n" + "POKéMON needs to grow."); +static const u8 DexDescription_Azurill_2[] = _( + "AZURILL can be seen bouncing and\n" + "playing on its big, rubbery tail."); +#else +static const u8 DexDescription_Azurill_1[] = _( + "AZURILL spins its tail as if it were a\n" + "lasso, then hurls it far. The momentum\n" + "of the throw sends its body flying, too."); +static const u8 DexDescription_Azurill_2[] = _( + "Using this unique action, one of these\n" + "POKéMON managed to hurl itself a record\n" + "33 feet."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Nosepass_1[] = _( + "NOSEPASS had been said to be completely\n" + "unmoving, with its magnetic nose\n" + "pointed due north."); +static const u8 DexDescription_Nosepass_2[] = _( + "However, close observation has revealed\n" + "that the POKéMON actually moves by a\n" + "little over 3/8 of an inch every year."); +#else +static const u8 DexDescription_Nosepass_1[] = _( + "NOSEPASS’s magnetic nose is always\n" + "pointed to the north. If two of these\n" + "POKéMON meet, they cannot turn"); +static const u8 DexDescription_Nosepass_2[] = _( + "their faces to each other when they\n" + "are close because their magnetic noses\n" + "repel one another."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Skitty_1[] = _( + "SKITTY is known to chase around\n" + "playfully after its own tail. In the wild,\n" + "this POKéMON lives in holes in the trees"); +static const u8 DexDescription_Skitty_2[] = _( + "of forests. It is very popular as a pet\n" + "because of its adorable looks."); +#else +static const u8 DexDescription_Skitty_1[] = _( + "SKITTY has the habit of becoming\n" + "fascinated by moving objects and\n" + "chasing them around."); +static const u8 DexDescription_Skitty_2[] = _( + "This POKéMON is known to chase after\n" + "its own tail and become dizzy."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Delcatty_1[] = _( + "DELCATTY sleeps anywhere it wants\n" + "without keeping a permanent nest.\n" + "If other POKéMON approach it as it"); +static const u8 DexDescription_Delcatty_2[] = _( + "sleeps, this POKéMON will never fight -\n" + "it will just move away somewhere else."); +#else +static const u8 DexDescription_Delcatty_1[] = _( + "DELCATTY prefers to live an unfettered\n" + "existence in which it can do as it\n" + "pleases at its own pace."); +static const u8 DexDescription_Delcatty_2[] = _( + "Because this POKéMON eats and sleeps\n" + "whenever it decides, its daily routines\n" + "are completely random."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Sableye_1[] = _( + "SABLEYE digs the ground with sharpened\n" + "claws to find rocks that it eats.\n" + "Substances in the eaten rocks"); +static const u8 DexDescription_Sableye_2[] = _( + "crystallize and rise up to the POKéMON’s\n" + "body surface."); +#else +static const u8 DexDescription_Sableye_1[] = _( + "SABLEYE lead quiet lives deep inside\n" + "caverns. They are feared, however,\n" + "because these POKéMON are thought to"); +static const u8 DexDescription_Sableye_2[] = _( + "steal the spirits of people when their\n" + "eyes burn with a sinister glow in the\n" + "darkness."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Mawile_1[] = _( + "Don’t be taken in by this POKéMON’s\n" + "cute face - it’s very dangerous. MAWILE\n" + "fools the foe into letting down its"); +static const u8 DexDescription_Mawile_2[] = _( + "guard, then chomps down with its\n" + "massive jaws. The steel jaws are really\n" + "horns that have been transformed."); +#else +#if REVISION >= 1 +static const u8 DexDescription_Mawile_1[] = _( + "MAWILE’s huge jaws are actually steel\n" + "horns that have been transformed.\n" + "Its docile-looking face serves to lull"); +static const u8 DexDescription_Mawile_2[] = _( + "its foe into letting down its guard.\n" + "When the foe least expects it, MAWILE\n" // Correct spelling of MAWILE + "chomps it with its gaping jaws."); +#else +static const u8 DexDescription_Mawile_1[] = _( + "MAWHILE’s huge jaws are actually steel\n" + "horns that have been transformed.\n" + "Its docile-looking face serves to lull"); +static const u8 DexDescription_Mawile_2[] = _( + "its foe into letting down its guard.\n" + "When the foe least expects it, MAWHILE\n" + "chomps it with its gaping jaws."); +#endif +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Aron_1[] = _( + "ARON has a body of steel.\n" + "With one all-out charge, this POKéMON\n" + "can demolish even a heavy dump truck."); +static const u8 DexDescription_Aron_2[] = _( + "The destroyed dump truck then becomes\n" + "a handy meal for the POKéMON."); +#else +static const u8 DexDescription_Aron_1[] = _( + "This POKéMON has a body of steel.\n" + "To make its body, ARON feeds on\n" + "iron ore that it digs from mountains."); +static const u8 DexDescription_Aron_2[] = _( + "Occasionally, it causes major trouble by\n" + "eating bridges and rails."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Lairon_1[] = _( + "LAIRON feeds on iron contained in\n" + "rocks and water. It makes its nest on\n" + "mountains where iron ore is buried."); +static const u8 DexDescription_Lairon_2[] = _( + "As a result, the POKéMON often clashes\n" + "with humans mining the iron ore."); +#else +static const u8 DexDescription_Lairon_1[] = _( + "LAIRON tempers its steel body by\n" + "drinking highly nutritious mineral\n" + "springwater until it is bloated."); +static const u8 DexDescription_Lairon_2[] = _( + "This POKéMON makes its nest close to\n" + "springs of delicious water."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Aggron_1[] = _( + "AGGRON is surprisingly protective\n" + "of its environment. If its mountain\n" + "is ravaged by a landslide or a fire, this"); +static const u8 DexDescription_Aggron_2[] = _( + "POKéMON will haul topsoil to the area,\n" + "plant trees, and beautifully restore its\n" + "own territory."); +#else +static const u8 DexDescription_Aggron_1[] = _( + "AGGRON claims an entire mountain as its\n" + "own territory. It mercilessly beats up\n" + "anything that violates its environment."); +static const u8 DexDescription_Aggron_2[] = _( + "This POKéMON vigilantly patrols its\n" + "territory at all times."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Meditite_1[] = _( + "MEDITITE heightens its inner energy\n" + "through meditation. It survives on\n" + "just one berry a day."); +static const u8 DexDescription_Meditite_2[] = _( + "Minimal eating is another aspect of\n" + "this POKéMON’s training."); +#else +static const u8 DexDescription_Meditite_1[] = _( + "MEDITITE undertakes rigorous mental\n" + "training deep in the mountains.\n" + "However, whenever it meditates, this"); +static const u8 DexDescription_Meditite_2[] = _( + "POKéMON always loses its concentration\n" + "and focus. As a result, its training\n" + "never ends."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Medicham_1[] = _( + "Through the power of meditation,\n" + "MEDICHAM developed its sixth sense.\n" + "It gained the ability to use"); +static const u8 DexDescription_Medicham_2[] = _( + "psychokinetic powers. This POKéMON is\n" + "known to meditate for a whole month\n" + "without eating."); +#else +static const u8 DexDescription_Medicham_1[] = _( + "It is said that through meditation,\n" + "MEDICHAM heightens energy inside\n" + "its body and sharpens its sixth sense."); +static const u8 DexDescription_Medicham_2[] = _( + "This POKéMON hides its presence by\n" + "merging itself with fields and\n" + "mountains."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Electrike_1[] = _( + "ELECTRIKE runs faster than the human\n" + "eye can follow. The friction from\n" + "running is converted into electricity,"); +static const u8 DexDescription_Electrike_2[] = _( + "which is then stored in this POKéMON’s\n" + "fur."); +#else +static const u8 DexDescription_Electrike_1[] = _( + "ELECTRIKE stores electricity in its\n" + "long body hair. This POKéMON stimulates\n" + "its leg muscles with electric charges."); +static const u8 DexDescription_Electrike_2[] = _( + "These jolts of power give its legs\n" + "explosive acceleration performance."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Manectric_1[] = _( + "MANECTRIC discharges strong\n" + "electricity from its mane. The mane is\n" + "used for collecting electricity in the"); +static const u8 DexDescription_Manectric_2[] = _( + "atmosphere. This POKéMON creates\n" + "thunderclouds above its head."); +#else +static const u8 DexDescription_Manectric_1[] = _( + "MANECTRIC is constantly discharging\n" + "electricity from its mane. The sparks\n" + "sometimes ignite forest fires."); +static const u8 DexDescription_Manectric_2[] = _( + "When it enters a battle, this POKéMON\n" + "creates thunderclouds."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Plusle_1[] = _( + "When PLUSLE is cheering on its partner,\n" + "it flashes with electric sparks from all\n" + "over its body."); +static const u8 DexDescription_Plusle_2[] = _( + "If its partner loses, this POKéMON cries\n" + "loudly."); +#else +static const u8 DexDescription_Plusle_1[] = _( + "PLUSLE always acts as a cheerleader\n" + "for its partners. Whenever a teammate\n" + "puts out a good effort in battle, this"); +static const u8 DexDescription_Plusle_2[] = _( + "POKéMON shorts out its body to create\n" + "the crackling noises of sparks to show\n" + "its joy."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Minun_1[] = _( + "MINUN loves to cheer on its partner in\n" + "battle. It gives off sparks from its\n" + "body while it is doing so."); +static const u8 DexDescription_Minun_2[] = _( + "If its partner is in trouble, this\n" + "POKéMON gives off increasing amounts\n" + "of sparks."); +#else +static const u8 DexDescription_Minun_1[] = _( + "MINUN is more concerned about cheering\n" + "on its partners than its own safety.\n" + "It shorts out the electricity in its"); +static const u8 DexDescription_Minun_2[] = _( + "body to create brilliant showers of\n" + "sparks to cheer on its teammates."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Volbeat_1[] = _( + "VOLBEAT’s tail glows like a lightbulb.\n" + "With other VOLBEAT, it uses its tail to\n" + "draw geometric shapes in the night sky."); +static const u8 DexDescription_Volbeat_2[] = _( + "This POKéMON loves the sweet aroma\n" + "given off by ILLUMISE."); +#else +static const u8 DexDescription_Volbeat_1[] = _( + "With the arrival of night, VOLBEAT emits\n" + "light from its tail. It communicates with\n" + "others by adjusting the intensity and"); +static const u8 DexDescription_Volbeat_2[] = _( + "flashing of its light.\n" + "This POKéMON is attracted by the sweet\n" + "aroma of ILLUMISE."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Illumise_1[] = _( + "ILLUMISE leads a flight of illuminated\n" + "VOLBEAT to draw signs in the night sky.\n" + "This POKéMON is said to earn greater"); +static const u8 DexDescription_Illumise_2[] = _( + "respect from its peers by composing\n" + "more complex designs in the sky."); +#else +static const u8 DexDescription_Illumise_1[] = _( + "ILLUMISE attracts a swarm of VOLBEAT\n" + "using a sweet fragrance. Once the\n" + "VOLBEAT have gathered, this POKéMON"); +static const u8 DexDescription_Illumise_2[] = _( + "leads the lit-up swarm in drawing\n" + "geometric designs on the canvas of\n" + "the night sky."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Roselia_1[] = _( + "On extremely rare occasions, a ROSELIA\n" + "is said to appear with its flowers in\n" + "unusual colors."); +static const u8 DexDescription_Roselia_2[] = _( + "The thorns on this POKéMON’s head\n" + "contain a vicious poison."); +#else +static const u8 DexDescription_Roselia_1[] = _( + "ROSELIA shoots sharp thorns as\n" + "projectiles at any opponent that tries\n" + "to steal the flowers on its arms."); +static const u8 DexDescription_Roselia_2[] = _( + "The aroma of this POKéMON brings\n" + "serenity to living things."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Gulpin_1[] = _( + "Most of GULPIN’s body is made up of its\n" + "stomach - its heart and brain are very\n" + "small in comparison."); +static const u8 DexDescription_Gulpin_2[] = _( + "This POKéMON’s stomach contains\n" + "special enzymes that dissolve anything."); +#else +static const u8 DexDescription_Gulpin_1[] = _( + "Virtually all of GULPIN’s body is its\n" + "stomach. As a result, it can swallow\n" + "something its own size."); +static const u8 DexDescription_Gulpin_2[] = _( + "This POKéMON’s stomach contains a\n" + "special fluid that digests anything."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Swalot_1[] = _( + "SWALOT has no teeth, so what it\n" + "eats, it swallows whole, no matter what.\n" + "Its cavernous mouth yawns widely."); +static const u8 DexDescription_Swalot_2[] = _( + "An automobile tire could easily fit\n" + "inside this POKéMON’s mouth."); +#else +static const u8 DexDescription_Swalot_1[] = _( + "When SWALOT spots prey, it spurts out\n" + "a hideously toxic fluid from its pores\n" + "and sprays the target."); +static const u8 DexDescription_Swalot_2[] = _( + "Once the prey has weakened, this\n" + "POKéMON gulps it down whole with its\n" + "cavernous mouth."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Carvanha_1[] = _( + "If anything invades CARVANHA’s\n" + "territory, it will swarm and tear at the\n" + "intruder with its pointed fangs."); +static const u8 DexDescription_Carvanha_2[] = _( + "On its own, however, this POKéMON turns\n" + "suddenly timid."); +#else +static const u8 DexDescription_Carvanha_1[] = _( + "CARVANHA’s strongly developed jaws\n" + "and its sharply pointed fangs pack the\n" + "destructive power to rip out boat hulls."); +static const u8 DexDescription_Carvanha_2[] = _( + "Many boats have been attacked and\n" + "sunk by this POKéMON."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Sharpedo_1[] = _( + "SHARPEDO can swim at speeds of up to\n" + "75 mph by jetting seawater out of its\n" + "backside."); +static const u8 DexDescription_Sharpedo_2[] = _( + "This POKéMON’s drawback is its inability\n" + "to swim long distances."); +#else +static const u8 DexDescription_Sharpedo_1[] = _( + "Nicknamed “the bully of the sea,”\n" + "SHARPEDO is widely feared.\n" + "Its cruel fangs grow back immediately"); +static const u8 DexDescription_Sharpedo_2[] = _( + "if they snap off.\n" + "Just one of these POKéMON can\n" + "thoroughly tear apart a supertanker."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Wailmer_1[] = _( + "WAILMER can store water inside its body\n" + "to transform itself into a ball for\n" + "bouncing around on the ground."); +static const u8 DexDescription_Wailmer_2[] = _( + "By filling itself up with more water, this\n" + "POKéMON can elevate the height of its\n" + "bounces."); +#else +static const u8 DexDescription_Wailmer_1[] = _( + "WAILMER’s nostrils are located above\n" + "its eyes. This playful POKéMON loves\n" + "to startle people by forcefully snorting"); +static const u8 DexDescription_Wailmer_2[] = _( + "out seawater it stores inside its body\n" + "out of its nostrils."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Wailord_1[] = _( + "When chasing prey, WAILORD herds them\n" + "by leaping out of the water and making\n" + "a humongous splash."); +static const u8 DexDescription_Wailord_2[] = _( + "It is breathtaking to see this POKéMON\n" + "leaping out of the sea with others in\n" + "its pod."); +#else +static const u8 DexDescription_Wailord_1[] = _( + "WAILORD is the largest of all identified\n" + "POKéMON up to now.\n" + "This giant POKéMON swims languorously"); +static const u8 DexDescription_Wailord_2[] = _( + "in the vast open sea, eating massive\n" + "amounts of food at once with its\n" + "enormous mouth."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Numel_1[] = _( + "NUMEL stores magma of almost 2,200\n" + "degrees F within its body. If it gets\n" + "wet, the magma cools and hardens."); +static const u8 DexDescription_Numel_2[] = _( + "In that event, the POKéMON’s body\n" + "grows heavy and its movements become\n" + "sluggish."); +#else +static const u8 DexDescription_Numel_1[] = _( + "NUMEL is extremely dull witted - it\n" + "doesn’t notice being hit. However, it\n" + "can’t stand hunger for even a second."); +static const u8 DexDescription_Numel_2[] = _( + "This POKéMON’s body is a seething\n" + "cauldron of boiling magma."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Camerupt_1[] = _( + "The humps on CAMERUPT’s back are\n" + "formed by a transformation of its\n" + "bones. They sometimes blast out molten"); +static const u8 DexDescription_Camerupt_2[] = _( + "magma. This POKéMON apparently erupts\n" + "often when it is enraged."); +#else +static const u8 DexDescription_Camerupt_1[] = _( + "CAMERUPT has a volcano inside its body.\n" + "Magma of 18,000 degrees F courses\n" + "through its body."); +static const u8 DexDescription_Camerupt_2[] = _( + "Occasionally, the humps on this\n" + "POKéMON’s back erupt, spewing the\n" + "superheated magma."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Torkoal_1[] = _( + "TORKOAL generates energy by burning\n" + "coal. It grows weaker as the fire\n" + "dies down."); +static const u8 DexDescription_Torkoal_2[] = _( + "When it is preparing for battle, this\n" + "POKéMON burns more coal."); +#else +static const u8 DexDescription_Torkoal_1[] = _( + "TORKOAL digs through mountains in\n" + "search of coal. If it finds some, it fills\n" + "hollow spaces on its shell with the coal"); +static const u8 DexDescription_Torkoal_2[] = _( + "and burns it.\n" + "If it is attacked, this POKéMON spouts\n" + "thick black smoke to beat a retreat."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Spoink_1[] = _( + "SPOINK keeps a pearl on top of its head.\n" + "The pearl functions to amplify this\n" + "POKéMON’s psychokinetic powers."); +static const u8 DexDescription_Spoink_2[] = _( + "It is therefore on a constant search\n" + "for a bigger pearl."); +#else +static const u8 DexDescription_Spoink_1[] = _( + "SPOINK bounces around on its tail.\n" + "The shock of its bouncing makes its\n" + "heart pump. As a result, this POKéMON"); +static const u8 DexDescription_Spoink_2[] = _( + "cannot afford to stop bouncing - if it\n" + "stops, its heart will stop."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Grumpig_1[] = _( + "GRUMPIG uses the black pearls on its\n" + "body to wield its fantastic powers.\n" + "When it is doing so, it dances bizarrely."); +static const u8 DexDescription_Grumpig_2[] = _( + "This POKéMON’s black pearls are valuable\n" + "as works of art."); +#else +static const u8 DexDescription_Grumpig_1[] = _( + "GRUMPIG uses the black pearls on its\n" + "body to amplify its psychic power waves\n" + "for gaining total control over its foe."); +static const u8 DexDescription_Grumpig_2[] = _( + "When this POKéMON uses its special\n" + "power, its snorting breath grows\n" + "labored."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Spinda_1[] = _( + "No two SPINDA are said to have\n" + "identical spot patterns on their hides.\n" + "This POKéMON moves in a curious manner"); +static const u8 DexDescription_Spinda_2[] = _( + "as if it is stumbling in dizziness.\n" + "Its lurching movements can cause the\n" + "opponent to become confused."); +#else +static const u8 DexDescription_Spinda_1[] = _( + "All the SPINDA that exist in the\n" + "world are said to have utterly unique\n" + "spot patterns."); +static const u8 DexDescription_Spinda_2[] = _( + "The shaky, tottering steps of this\n" + "POKéMON give it the appearance of\n" + "dancing."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Trapinch_1[] = _( + "TRAPINCH is a patient hunter. It digs\n" + "an inescapable pit in a desert and waits\n" + "for its prey to come tumbling down."); +static const u8 DexDescription_Trapinch_2[] = _( + "This POKéMON can go a whole week\n" + "without access to any water."); +#else +static const u8 DexDescription_Trapinch_1[] = _( + "TRAPINCH’s nest is a sloped, bowl-like\n" + "pit dug in sand. This POKéMON patiently\n" + "waits for prey to tumble down the pit."); +static const u8 DexDescription_Trapinch_2[] = _( + "Its giant jaws have enough strength\n" + "to crush even boulders."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Vibrava_1[] = _( + "VIBRAVA’s wings have not yet\n" + "completed the process of growing.\n" + "Rather than flying long distances,"); +static const u8 DexDescription_Vibrava_2[] = _( + "they are more useful for generating\n" + "ultrasonic waves by vibrating."); +#else +static const u8 DexDescription_Vibrava_1[] = _( + "To make prey faint, VIBRAVA generates\n" + "ultrasonic waves by vigorously making\n" + "its two wings vibrate."); +static const u8 DexDescription_Vibrava_2[] = _( + "This POKéMON’s ultrasonic waves are so\n" + "powerful, they can bring on headaches\n" + "in people."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Flygon_1[] = _( + "FLYGON whips up a sandstorm by\n" + "flapping its wings. The wings create a\n" + "series of notes that sound like singing."); +static const u8 DexDescription_Flygon_2[] = _( + "Because the “singing” is the only thing\n" + "that can be heard in a sandstorm, this\n" + "POKéMON is said to be the desert spirit."); +#else +static const u8 DexDescription_Flygon_1[] = _( + "FLYGON is nicknamed “the elemental \n" + "spirit of the desert.” Because its\n" + "flapping wings whip up a cloud of sand,"); +static const u8 DexDescription_Flygon_2[] = _( + "this POKéMON is always enveloped in a\n" + "sandstorm while flying."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Cacnea_1[] = _( + "The more arid and harsh the\n" + "environment, the more pretty and\n" + "fragrant a flower CACNEA grows."); +static const u8 DexDescription_Cacnea_2[] = _( + "This POKéMON battles by wildly swinging\n" + "its thorny arms."); +#else +static const u8 DexDescription_Cacnea_1[] = _( + "CACNEA lives in arid locations such\n" + "as deserts. It releases a strong aroma\n" + "from its flower to attract prey."); +static const u8 DexDescription_Cacnea_2[] = _( + "When prey comes near, this POKéMON\n" + "shoots sharp thorns from its body to\n" + "bring the victim down."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Cacturne_1[] = _( + "If a traveler is going through a desert\n" + "in the thick of night, CACTURNE\n" + "will follow in a ragtag group."); +static const u8 DexDescription_Cacturne_2[] = _( + "The POKéMON are biding their time,\n" + "waiting for the traveler to tire and\n" + "become incapable of moving."); +#else +static const u8 DexDescription_Cacturne_1[] = _( + "During the daytime, CACTURNE remains\n" + "unmoving so that it does not lose any\n" + "moisture to the harsh desert sun."); +static const u8 DexDescription_Cacturne_2[] = _( + "This POKéMON becomes active at night\n" + "when the temperature drops."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Swablu_1[] = _( + "SWABLU loves to make things clean.\n" + "If it spots something dirty, it will wipe\n" + "and polish it with its cottony wings."); +static const u8 DexDescription_Swablu_2[] = _( + "If its wings become dirty, this POKéMON\n" + "finds a stream and showers itself."); +#else +static const u8 DexDescription_Swablu_1[] = _( + "SWABLU has light and fluffy wings that\n" + "are like cottony clouds. This POKéMON\n" + "is not frightened of people."); +static const u8 DexDescription_Swablu_2[] = _( + "It lands on the heads of people and\n" + "sits there like a cotton-fluff hat."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Altaria_1[] = _( + "ALTARIA sings in a gorgeous soprano.\n" + "Its wings are like cotton clouds.\n" + "This POKéMON catches updrafts with its"); +static const u8 DexDescription_Altaria_2[] = _( + "buoyant wings and soars way up into\n" + "the wild blue yonder."); +#else +static const u8 DexDescription_Altaria_1[] = _( + "ALTARIA dances and wheels through the\n" + "sky among billowing, cotton-like clouds.\n" + "By singing melodies in its crystal-clear"); +static const u8 DexDescription_Altaria_2[] = _( + "voice, this POKéMON makes its listeners\n" + "experience dreamy wonderment."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Zangoose_1[] = _( + "ZANGOOSE usually stays on all fours,\n" + "but when angered, it gets up on its\n" + "hind legs and extends its claws."); +static const u8 DexDescription_Zangoose_2[] = _( + "This POKéMON shares a bitter rivalry\n" + "with SEVIPER that dates back over\n" + "generations."); +#else +static const u8 DexDescription_Zangoose_1[] = _( + "Memories of battling its arch-rival\n" + "SEVIPER are etched into every cell of\n" + "ZANGOOSE’s body."); +static const u8 DexDescription_Zangoose_2[] = _( + "This POKéMON adroitly dodges attacks\n" + "with incredible agility."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Seviper_1[] = _( + "SEVIPER’s swordlike tail serves two\n" + "purposes - it slashes foes and douses\n" + "them with secreted poison."); +static const u8 DexDescription_Seviper_2[] = _( + "This POKéMON will not give up its long-\n" + "running blood feud with ZANGOOSE."); +#else +static const u8 DexDescription_Seviper_1[] = _( + "SEVIPER shares a generations-long\n" + "feud with ZANGOOSE. The scars on its\n" + "body are evidence of vicious battles."); +static const u8 DexDescription_Seviper_2[] = _( + "This POKéMON attacks using its sword-\n" + "edged tail."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Lunatone_1[] = _( + "LUNATONE becomes active around the\n" + "time of the full moon. Instead of\n" + "walking, it moves by floating in midair."); +static const u8 DexDescription_Lunatone_2[] = _( + "The POKéMON’s intimidating red eyes\n" + "cause all those who see it to become\n" + "transfixed with fear."); +#else +static const u8 DexDescription_Lunatone_1[] = _( + "LUNATONE was discovered at a location\n" + "where a meteorite fell. As a result, some\n" + "people theorize that this POKéMON"); +static const u8 DexDescription_Lunatone_2[] = _( + "came from space. However, no one has\n" + "been able to prove this theory so far."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Solrock_1[] = _( + "Sunlight is the source of SOLROCK’s\n" + "power. It is said to possess the ability\n" + "to read the emotions of others."); +static const u8 DexDescription_Solrock_2[] = _( + "This POKéMON gives off intense heat\n" + "while rotating its body."); +#else +static const u8 DexDescription_Solrock_1[] = _( + "SOLROCK is a new species of POKéMON\n" + "that is said to have fallen from space.\n" + "It floats in air and moves silently."); +static const u8 DexDescription_Solrock_2[] = _( + "In battle, this POKéMON releases\n" + "intensely bright light."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Barboach_1[] = _( + "BARBOACH’s body is covered with a\n" + "slimy film. If a foe grabs it, this\n" + "POKéMON just slips out of the enemy’s"); +static const u8 DexDescription_Barboach_2[] = _( + "grip.\n" + "This POKéMON grows weak if the slimy\n" + "coating dries up."); +#else +static const u8 DexDescription_Barboach_1[] = _( + "BARBOACH’s sensitive whiskers serve\n" + "as a superb radar system.\n" + "This POKéMON hides in mud, leaving only"); +static const u8 DexDescription_Barboach_2[] = _( + "its two whiskers exposed while it waits\n" + "for prey to come along."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Whiscash_1[] = _( + "If WHISCASH goes on a wild rampage,\n" + "it sets off a quake-like tremor with a\n" + "radius of over three miles."); +static const u8 DexDescription_Whiscash_2[] = _( + "This POKéMON has the ability to predict\n" + "real earthquakes."); +#else +static const u8 DexDescription_Whiscash_1[] = _( + "WHISCASH is extremely territorial.\n" + "Just one of these POKéMON will claim a\n" + "large pond as its exclusive territory."); +static const u8 DexDescription_Whiscash_2[] = _( + "If a foe approaches it, it thrashes\n" + "about and triggers a massive\n" + "earthquake."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Corphish_1[] = _( + "CORPHISH catches prey with its sharp\n" + "claws. It has no likes or dislikes when it\n" + "comes to food - it will eat anything."); +static const u8 DexDescription_Corphish_2[] = _( + "This POKéMON has no trouble living in\n" + "filthy water."); +#else +static const u8 DexDescription_Corphish_1[] = _( + "CORPHISH were originally foreign\n" + "POKéMON that were imported as pets.\n" + "They eventually turned up in the wild."); +static const u8 DexDescription_Corphish_2[] = _( + "This POKéMON is very hardy and has\n" + "greatly increased its population."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Crawdaunt_1[] = _( + "CRAWDAUNT molts (sheds) its shell\n" + "regularly. Immediately after molting,\n" + "its shell is soft and tender."); +static const u8 DexDescription_Crawdaunt_2[] = _( + "Until the shell hardens, this POKéMON\n" + "hides in its streambed burrow to avoid\n" + "attack from its foes."); +#else +static const u8 DexDescription_Crawdaunt_1[] = _( + "CRAWDAUNT has an extremely violent\n" + "nature that compels it to challenge\n" + "other living things to battle."); +static const u8 DexDescription_Crawdaunt_2[] = _( + "Other life-forms refuse to live in\n" + "ponds inhabited by this POKéMON,\n" + "making them desolate places."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Baltoy_1[] = _( + "As soon as it spots others of its kind,\n" + "BALTOY congregates with them and\n" + "then begins crying noisily in unison."); +static const u8 DexDescription_Baltoy_2[] = _( + "This POKéMON sleeps while cleverly\n" + "balancing itself on its one foot."); +#else +static const u8 DexDescription_Baltoy_1[] = _( + "BALTOY moves while spinning around on\n" + "its one foot. Primitive wall paintings\n" + "depicting this POKéMON living among"); +static const u8 DexDescription_Baltoy_2[] = _( + "people were discovered in some ancient\n" + "ruins."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Claydol_1[] = _( + "CLAYDOL is an enigma that appeared\n" + "from a clay statue made by an ancient\n" + "civilization dating back 20,000 years."); +static const u8 DexDescription_Claydol_2[] = _( + "This POKéMON shoots beams from both\n" + "its hands."); +#else +static const u8 DexDescription_Claydol_1[] = _( + "CLAYDOL are said to be dolls of mud made\n" + "by primitive humans and brought to life\n" + "by exposure to a mysterious ray."); +static const u8 DexDescription_Claydol_2[] = _( + "This POKéMON moves about while\n" + "levitating."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Lileep_1[] = _( + "LILEEP is an ancient POKéMON that was\n" + "regenerated from a fossil. It remains\n" + "permanently anchored to a rock."); +static const u8 DexDescription_Lileep_2[] = _( + "From its immobile perch, this POKéMON\n" + "intently scans for prey with its two\n" + "eyes."); +#else +static const u8 DexDescription_Lileep_1[] = _( + "LILEEP became extinct approximately\n" + "a hundred million years ago.\n" + "This ancient POKéMON attaches itself"); +static const u8 DexDescription_Lileep_2[] = _( + "to a rock on the seafloor and catches\n" + "approaching prey using tentacles \n" + "shaped like flower petals."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Cradily_1[] = _( + "CRADILY’s body serves as an anchor,\n" + "preventing it from being washed away in\n" + "rough seas."); +static const u8 DexDescription_Cradily_2[] = _( + "This POKéMON secretes a strong\n" + "digestive fluid from its tentacles."); +#else +static const u8 DexDescription_Cradily_1[] = _( + "CRADILY roams around the ocean floor\n" + "in search of food. This POKéMON freely\n" + "extends its tree trunk-like neck and"); +static const u8 DexDescription_Cradily_2[] = _( + "captures unwary prey using its eight\n" + "tentacles."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Anorith_1[] = _( + "ANORITH is said to be a type of \n" + "POKéMON predecessor, with eight wings\n" + "at the sides of its body."); +static const u8 DexDescription_Anorith_2[] = _( + "This POKéMON swam in the primordial sea\n" + "by undulating these eight wings."); +#else +static const u8 DexDescription_Anorith_1[] = _( + "ANORITH was regenerated from a\n" + "prehistoric fossil. This primitive\n" + "POKéMON once lived in warm seas."); +static const u8 DexDescription_Anorith_2[] = _( + "It grips its prey firmly between its\n" + "two large claws."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Armaldo_1[] = _( + "ARMALDO is a POKéMON species that\n" + "became extinct in prehistoric times.\n" + "This POKéMON is said to have walked on"); +static const u8 DexDescription_Armaldo_2[] = _( + "its hind legs, which would have been\n" + "more convenient for life on land."); +#else +static const u8 DexDescription_Armaldo_1[] = _( + "ARMALDO’s tough armor makes all attacks\n" + "bounce off. This POKéMON’s two\n" + "enormous claws can be freely extended"); +static const u8 DexDescription_Armaldo_2[] = _( + "or contracted. They have the power to\n" + "punch right through a steel slab."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Feebas_1[] = _( + "While FEEBAS’s body is in tatters,\n" + "it has a hardy and tenacious life force\n" + "that enables it to live anywhere."); +static const u8 DexDescription_Feebas_2[] = _( + "However, this POKéMON is also slow and\n" + "dimwitted, making it an easy catch."); +#else +static const u8 DexDescription_Feebas_1[] = _( + "FEEBAS’s fins are ragged and\n" + "tattered from the start of its life.\n" + "Because of its shoddy appearance, this"); +static const u8 DexDescription_Feebas_2[] = _( + "POKéMON is largely ignored.\n" + "It is capable of living in both the sea\n" + "and in rivers."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Milotic_1[] = _( + "MILOTIC live at the bottom of large\n" + "lakes. When this POKéMON’s body glows a\n" + "vivid pink, it releases a pulsing wave of"); +static const u8 DexDescription_Milotic_2[] = _( + "energy that brings soothing calm to\n" + "restless spirits."); +#else +static const u8 DexDescription_Milotic_1[] = _( + "MILOTIC is said to be the most\n" + "beautiful of all the POKéMON.\n" + "It has the power to becalm such"); +static const u8 DexDescription_Milotic_2[] = _( + "emotions as anger and hostility to quell\n" + "bitter feuding."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Castform_1[] = _( + "CASTFORM borrows the power of nature\n" + "to transform itself into the guises of\n" + "the sun, rain clouds, and snow clouds."); +static const u8 DexDescription_Castform_2[] = _( + "This POKéMON’s feelings change with the\n" + "weather."); +#else +static const u8 DexDescription_Castform_1[] = _( + "CASTFORM’s appearance changes with\n" + "the weather.\n" + "This POKéMON gained the ability to use"); +static const u8 DexDescription_Castform_2[] = _( + "the vast power of nature to protect\n" + "its tiny body."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Kecleon_1[] = _( + "KECLEON alters its body coloration to\n" + "blend in with its surroundings, allowing\n" + "it to sneak up on its prey unnoticed."); +static const u8 DexDescription_Kecleon_2[] = _( + "Then it lashes out with its long,\n" + "stretchy tongue to instantly ensnare\n" + "the unsuspecting target."); +#else +static const u8 DexDescription_Kecleon_1[] = _( + "KECLEON is capable of changing its body\n" + "colors at will to blend in with its\n" + "surroundings."); +static const u8 DexDescription_Kecleon_2[] = _( + "There is one exception - this POKéMON\n" + "can’t change the zigzag pattern on its\n" + "belly."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Shuppet_1[] = _( + "SHUPPET grows by feeding on dark\n" + "emotions, such as vengefulness and \n" + "envy, in the hearts of people."); +static const u8 DexDescription_Shuppet_2[] = _( + "It roams through cities in search of\n" + "grudges that taint people."); +#else +static const u8 DexDescription_Shuppet_1[] = _( + "SHUPPET is attracted by feelings\n" + "of jealousy and vindictiveness.\n" + "If someone develops strong feelings of"); +static const u8 DexDescription_Shuppet_2[] = _( + "vengeance, this POKéMON will appear\n" + "in a swarm and line up beneath the eaves\n" + "of that person’s home."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Banette_1[] = _( + "A cursed energy permeated the stuffing\n" + "of a discarded and forgotten plush doll,\n" + "giving it new life as BANETTE."); +static const u8 DexDescription_Banette_2[] = _( + "The POKéMON’s energy would escape if it\n" + "were to ever open its mouth."); +#else +static const u8 DexDescription_Banette_1[] = _( + "BANETTE generates energy for laying\n" + "strong curses by sticking pins into its\n" + "own body."); +static const u8 DexDescription_Banette_2[] = _( + "This POKéMON was originally a pitiful\n" + "plush doll that was thrown away."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Duskull_1[] = _( + "DUSKULL wanders lost among the deep\n" + "darkness of midnight. There is an oft-\n" + "told admonishment given to misbehaving"); +static const u8 DexDescription_Duskull_2[] = _( + "children that this POKéMON will spirit\n" + "away bad children who earn scoldings\n" + "from their mothers."); +#else +static const u8 DexDescription_Duskull_1[] = _( + "DUSKULL can pass through any wall no\n" + "matter how thick it may be.\n" + "Once this POKéMON chooses a target,"); +static const u8 DexDescription_Duskull_2[] = _( + "it will doggedly pursue the intended\n" + "victim until the break of dawn."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Dusclops_1[] = _( + "DUSCLOPS absorbs anything, however\n" + "large the object may be. This POKéMON\n" + "hypnotizes its foe by waving its hands"); +static const u8 DexDescription_Dusclops_2[] = _( + "in a macabre manner and by bringing its\n" + "single eye to bear. The hypnotized foe\n" + "is made to do DUSCLOPS’s bidding."); +#else +static const u8 DexDescription_Dusclops_1[] = _( + "DUSCLOPS’s body is completely hollow -\n" + "there is nothing at all inside.\n" + "It is said that its body is like a black"); +static const u8 DexDescription_Dusclops_2[] = _( + "hole. This POKéMON will absorb anything\n" + "into its body, but nothing will ever come\n" + "back out."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Tropius_1[] = _( + "Children of the southern tropics eat\n" + "as snacks the fruit that grows in\n" + "bunches around the neck of TROPIUS."); +static const u8 DexDescription_Tropius_2[] = _( + "This POKéMON flies by flapping the\n" + "leaves on its back as if they were\n" + "wings."); +#else +static const u8 DexDescription_Tropius_1[] = _( + "The bunches of fruit around TROPIUS’s\n" + "neck are very popular with children.\n" + "This POKéMON loves fruit, and eats it"); +static const u8 DexDescription_Tropius_2[] = _( + "continuously. Apparently, its love for\n" + "fruit resulted in its own outgrowth\n" + "of fruit."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Chimecho_1[] = _( + "In high winds, CHIMECHO cries as it\n" + "hangs from a tree branch or the eaves\n" + "of a building using a suction cup on its"); +static const u8 DexDescription_Chimecho_2[] = _( + "head.\n" + "This POKéMON plucks berries with its\n" + "long tail and eats them."); +#else +static const u8 DexDescription_Chimecho_1[] = _( + "CHIMECHO makes its cries echo\n" + "inside its hollow body. When this\n" + "POKéMON becomes enraged, its cries"); +static const u8 DexDescription_Chimecho_2[] = _( + "result in ultrasonic waves that have\n" + "the power to knock foes flying."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Absol_1[] = _( + "ABSOL has the ability to foretell the\n" + "coming of natural disasters.\n" + "It lives in a harsh, rugged mountain"); +static const u8 DexDescription_Absol_2[] = _( + "environment. This POKéMON very rarely\n" + "ventures down from the mountains."); +#else +static const u8 DexDescription_Absol_1[] = _( + "Every time ABSOL appears before people,\n" + "it is followed by a disaster such as an\n" + "earthquake or a tidal wave."); +static const u8 DexDescription_Absol_2[] = _( + "As a result, it came to be known as the\n" + "disaster POKéMON."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Wynaut_1[] = _( + "WYNAUT gather on moonlit nights to play\n" + "by squeezing up against each other.\n" + "By being squeezed, this POKéMON gains"); +static const u8 DexDescription_Wynaut_2[] = _( + "endurance and is trained to dole out\n" + "powerful counterattacks."); +#else +static const u8 DexDescription_Wynaut_1[] = _( + "WYNAUT can always be seen with a big,\n" + "happy smile on its face. Look at its tail\n" + "to determine if it is angry."); +static const u8 DexDescription_Wynaut_2[] = _( + "When angered, this POKéMON will be\n" + "slapping the ground with its tail."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Snorunt_1[] = _( + "SNORUNT survives by eating only snow\n" + "and ice.\n" + "Old folklore claims that a house visited"); +static const u8 DexDescription_Snorunt_2[] = _( + "by this POKéMON is sure to prosper for\n" + "many generations to come."); +#else +static const u8 DexDescription_Snorunt_1[] = _( + "SNORUNT live in regions with heavy\n" + "snowfall. In seasons without snow, such\n" + "as spring and summer, this POKéMON"); +static const u8 DexDescription_Snorunt_2[] = _( + "steals away to live quietly among\n" + "stalactites and stalagmites deep in\n" + "caverns."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Glalie_1[] = _( + "GLALIE has the ability to freely\n" + "control ice. For example, it can\n" + "instantly freeze its foe solid."); +static const u8 DexDescription_Glalie_2[] = _( + "After immobilizing its foe in ice, this\n" + "POKéMON enjoys eating it in leisurely\n" + "fashion."); +#else +static const u8 DexDescription_Glalie_1[] = _( + "GLALIE has a body made of rock, which it\n" + "hardens with an armor of ice.\n" + "This POKéMON has the ability to freeze"); +static const u8 DexDescription_Glalie_2[] = _( + "moisture in the atmosphere into any\n" + "shape it desires."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Spheal_1[] = _( + "SPHEAL always travels by rolling\n" + "around on its ball-like body. When the\n" + "season for ice floes arrives, this"); +static const u8 DexDescription_Spheal_2[] = _( + "POKéMON can be seen rolling about on\n" + "ice and crossing the sea."); +#else +static const u8 DexDescription_Spheal_1[] = _( + "SPHEAL is much faster rolling than \n" + "walking to get around. When groups of\n" + "this POKéMON eat, they all clap at once"); +static const u8 DexDescription_Spheal_2[] = _( + "to show their pleasure. Because of this,\n" + "their mealtimes are noisy."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Sealeo_1[] = _( + "SEALEO often balances and rolls\n" + "things on the tip of its nose. While the\n" + "POKéMON is rolling something, it checks"); +static const u8 DexDescription_Sealeo_2[] = _( + "the object’s aroma and texture to\n" + "determine whether it likes the object\n" + "or not."); +#else +static const u8 DexDescription_Sealeo_1[] = _( + "SEALEO has the habit of always juggling\n" + "on the tip of its nose anything it sees\n" + "for the first time."); +static const u8 DexDescription_Sealeo_2[] = _( + "This POKéMON occasionally entertains\n" + "itself by balancing and rolling a SPHEAL\n" + "on its nose."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Walrein_1[] = _( + "WALREIN swims all over in frigid\n" + "seawater while crushing icebergs with\n" + "its grand, imposing tusks."); +static const u8 DexDescription_Walrein_2[] = _( + "Its thick layer of blubber makes enemy\n" + "attacks bounce off harmlessly."); +#else +static const u8 DexDescription_Walrein_1[] = _( + "WALREIN’s two massively developed\n" + "tusks can totally shatter blocks of\n" + "ice weighing ten tons with one blow."); +static const u8 DexDescription_Walrein_2[] = _( + "This POKéMON’s thick coat of blubber\n" + "insulates it from subzero temperatures."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Clamperl_1[] = _( + "CLAMPERL grows while being protected\n" + "by its rock-hard shell. When its body\n" + "becomes too large to fit inside the"); +static const u8 DexDescription_Clamperl_2[] = _( + "shell, it is sure evidence that this\n" + "POKéMON is getting close to evolution."); +#else +static const u8 DexDescription_Clamperl_1[] = _( + "CLAMPERL’s sturdy shell is not only good\n" + "for protection - it is also used for\n" + "clamping and catching prey."); +static const u8 DexDescription_Clamperl_2[] = _( + "A fully grown CLAMPERL’s shell will be\n" + "scored with nicks and scratches all\n" + "over."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Huntail_1[] = _( + "HUNTAIL’s tail is shaped like a fish.\n" + "It uses the tail to attract prey, then\n" + "swallows the prey whole with its large,"); +static const u8 DexDescription_Huntail_2[] = _( + "gaping mouth.\n" + "This POKéMON swims by wiggling its\n" + "slender body like a snake."); +#else +static const u8 DexDescription_Huntail_1[] = _( + "HUNTAIL’s presence went unnoticed by\n" + "people for a long time because it lives\n" + "at extreme depths in the sea."); +static const u8 DexDescription_Huntail_2[] = _( + "This POKéMON’s eyes can see clearly\n" + "even in the murky dark depths of the\n" + "ocean."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Gorebyss_1[] = _( + "Although GOREBYSS is the very picture\n" + "of elegance and beauty while swimming,\n" + "it is also cruel. When it spots prey, this"); +static const u8 DexDescription_Gorebyss_2[] = _( + "POKéMON inserts its thin mouth into the\n" + "prey’s body and drains the prey of its\n" + "body fluids."); +#else +static const u8 DexDescription_Gorebyss_1[] = _( + "GOREBYSS lives in the southern seas\n" + "at extreme depths. Its body is built to\n" + "withstand the enormous pressure of"); +static const u8 DexDescription_Gorebyss_2[] = _( + "water at incredible depths. Because of\n" + "this, this POKéMON’s body is unharmed\n" + "by ordinary attacks."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Relicanth_1[] = _( + "RELICANTH is a rare species that was\n" + "discovered in deep-sea explorations.\n" + "This POKéMON’s body withstands the"); +static const u8 DexDescription_Relicanth_2[] = _( + "enormous water pressure of the ocean\n" + "depths. Its body is covered in tough\n" + "scales that are like craggy rocks."); +#else +static const u8 DexDescription_Relicanth_1[] = _( + "RELICANTH is a POKéMON species that\n" + "existed for a hundred million years\n" + "without ever changing its form."); +static const u8 DexDescription_Relicanth_2[] = _( + "This ancient POKéMON feeds on\n" + "microscopic organisms with its\n" + "toothless mouth."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Luvdisc_1[] = _( + "LUVDISC’s heart-shaped body is a\n" + "symbol of love and romance.\n" + "It is said that any couple meeting this"); +static const u8 DexDescription_Luvdisc_2[] = _( + "POKéMON is promised a loving\n" + "relationship that never ends."); +#else +static const u8 DexDescription_Luvdisc_1[] = _( + "LUVDISC live in shallow seas in the\n" + "tropics. This heart-shaped POKéMON\n" + "earned its name by swimming after"); +static const u8 DexDescription_Luvdisc_2[] = _( + "loving couples it spotted in the\n" + "ocean’s waves."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Bagon_1[] = _( + "BAGON harbors a never-ending dream of\n" + "one day soaring high among the clouds.\n" + "As if trying to dispel its frustration"); +static const u8 DexDescription_Bagon_2[] = _( + "over its inability to fly, this POKéMON\n" + "slams its hard head against huge rocks\n" + "and shatters them into pebbles."); +#else +static const u8 DexDescription_Bagon_1[] = _( + "BAGON has a dream of one day soaring\n" + "in the sky. In doomed efforts to fly,\n" + "this POKéMON hurls itself off cliffs."); +static const u8 DexDescription_Bagon_2[] = _( + "As a result of its dives, its head has \n" + "grown tough and as hard as tempered\n" + "steel."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Shelgon_1[] = _( + "Covering SHELGON’s body are outgrowths\n" + "much like bones. The shell is very hard\n" + "and bounces off enemy attacks."); +static const u8 DexDescription_Shelgon_2[] = _( + "When awaiting evolution, this POKéMON\n" + "hides away in a cavern."); +#else +static const u8 DexDescription_Shelgon_1[] = _( + "Inside SHELGON’s armor-like shell, cells\n" + "are in the midst of transformation\n" + "to create an entirely new body."); +static const u8 DexDescription_Shelgon_2[] = _( + "This POKéMON’s shell is extremely heavy,\n" + "making its movements sluggish."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Salamence_1[] = _( + "By evolving into SALAMENCE, this\n" + "POKéMON finally realizes its long-held\n" + "dream of growing wings."); +static const u8 DexDescription_Salamence_2[] = _( + "To express its joy, it flies and wheels\n" + "all over the sky while spouting flames\n" + "from its mouth."); +#else +static const u8 DexDescription_Salamence_1[] = _( + "SALAMENCE came about as a result of a\n" + "strong, long-held dream of growing\n" + "wings. It is said that this powerful"); +static const u8 DexDescription_Salamence_2[] = _( + "desire triggered a sudden mutation in\n" + "this POKéMON’s cells, causing it to\n" + "sprout its magnificent wings."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Beldum_1[] = _( + "BELDUM keeps itself floating by\n" + "generating a magnetic force that\n" + "repels earth’s natural magnetism."); +static const u8 DexDescription_Beldum_2[] = _( + "When it sleeps, this POKéMON anchors\n" + "itself to a cliff using the hooks on\n" + "its rear."); +#else +static const u8 DexDescription_Beldum_1[] = _( + "Instead of blood, a powerful magnetic\n" + "force courses throughout BELDUM’s\n" + "body. This POKéMON communicates with"); +static const u8 DexDescription_Beldum_2[] = _( + "others by sending controlled pulses of\n" + "magnetism."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Metang_1[] = _( + "When two BELDUM fuse together, METANG\n" + "is formed. The brains of the BELDUM are\n" + "joined by a magnetic nervous system."); +static const u8 DexDescription_Metang_2[] = _( + "This POKéMON turns its arms to the rear\n" + "for traveling at high speed."); +#else +static const u8 DexDescription_Metang_1[] = _( + "When two BELDUM fuse together, METANG\n" + "is formed. The brains of the BELDUM are\n" + "joined by a magnetic nervous system."); +static const u8 DexDescription_Metang_2[] = _( + "By linking its brains magnetically,\n" + "this POKéMON generates strong\n" + "psychokinetic power."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Metagross_1[] = _( + "METAGROSS is the result of two METANG\n" + "achieving fusion. When hunting, this\n" + "POKéMON pins the prey to the ground"); +static const u8 DexDescription_Metagross_2[] = _( + "under its massive body. It then eats\n" + "the helpless victim using the large \n" + "mouth on its stomach."); +#else +static const u8 DexDescription_Metagross_1[] = _( + "METAGROSS has four brains in total.\n" + "Combined, the four brains can breeze\n" + "through difficult calculations faster"); +static const u8 DexDescription_Metagross_2[] = _( + "than a supercomputer.\n" + "This POKéMON can float in the air by\n" + "tucking in its four legs."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Regirock_1[] = _( + "REGIROCK’s body is composed entirely of\n" + "rocks. Recently, a study made the\n" + "startling discovery that the rocks"); +static const u8 DexDescription_Regirock_2[] = _( + "were all unearthed from different\n" + "locations."); +#else +static const u8 DexDescription_Regirock_1[] = _( + "REGIROCK was sealed away by people\n" + "long ago. If this POKéMON’s body is\n" + "damaged in battle, it is said to seek"); +static const u8 DexDescription_Regirock_2[] = _( + "out suitable rocks on its own to repair\n" + "itself."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Regice_1[] = _( + "REGICE cloaks itself with frigid air of\n" + "negative 328 degrees F.\n" + "Things will freeze solid just by going"); +static const u8 DexDescription_Regice_2[] = _( + "near this POKéMON.\n" + "Its icy body is so cold, it will not melt\n" + "even if it is immersed in magma."); +#else +static const u8 DexDescription_Regice_1[] = _( + "REGICE’s body was made during an ice\n" + "age. The deep-frozen body can’t be\n" + "melted, even by fire."); +static const u8 DexDescription_Regice_2[] = _( + "This POKéMON controls frigid air of\n" + "minus 328 degrees F."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Registeel_1[] = _( + "REGISTEEL was imprisoned by people\n" + "in ancient times.\n" + "The metal composing its body is thought"); +static const u8 DexDescription_Registeel_2[] = _( + "to be a curious substance that is not\n" + "of this earth."); +#else +static const u8 DexDescription_Registeel_1[] = _( + "REGISTEEL has a body that is harder\n" + "than any kind of metal.\n" + "Its body is apparently hollow."); +static const u8 DexDescription_Registeel_2[] = _( + "No one has any idea what this POKéMON\n" + "eats."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Latias_1[] = _( + "LATIAS is highly intelligent and capable\n" + "of understanding human speech.\n" + "It is covered with a glass-like down."); +static const u8 DexDescription_Latias_2[] = _( + "The POKéMON enfolds its body with its\n" + "down and refracts light to alter its\n" + "appearance."); +#else +static const u8 DexDescription_Latias_1[] = _( + "LATIAS is highly sensitive to the\n" + "emotions of people. If it senses any\n" + "hostility, this POKéMON ruffles the"); +static const u8 DexDescription_Latias_2[] = _( + "feathers all over its body and cries\n" + "shrilly to intimidate the foe."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Latios_1[] = _( + "LATIOS will only open its heart to a\n" + "TRAINER with a compassionate spirit.\n" + "This POKéMON can fly faster than a jet"); +static const u8 DexDescription_Latios_2[] = _( + "plane by folding its forelegs to minimize\n" + "air resistance."); +#else +static const u8 DexDescription_Latios_1[] = _( + "LATIOS has the ability to make its foe\n" + "see an image of what it has seen or\n" + "imagines in its head."); +static const u8 DexDescription_Latios_2[] = _( + "This POKéMON is intelligent and\n" + "understands human speech."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Kyogre_1[] = _( + "KYOGRE is named in mythology as the\n" + "POKéMON that expanded the sea by\n" + "covering the land with torrential rains"); +static const u8 DexDescription_Kyogre_2[] = _( + "and towering tidal waves.\n" + "It took to sleep after a cataclysmic\n" + "battle with GROUDON."); +#else +static const u8 DexDescription_Kyogre_1[] = _( + "KYOGRE has the power to create massive\n" + "rain clouds that cover the entire sky\n" + "and bring about torrential downpours."); +static const u8 DexDescription_Kyogre_2[] = _( + "This POKéMON saved people who were\n" + "suffering from droughts."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Groudon_1[] = _( + "GROUDON has the power to scatter rain\n" + "clouds and make water evaporate with\n" + "light and heat."); +static const u8 DexDescription_Groudon_2[] = _( + "It came as a savior to people who had\n" + "been suffering from terrible floods."); +#else +static const u8 DexDescription_Groudon_1[] = _( + "GROUDON has long been described in \n" + "mythology as the POKéMON that raised\n" + "lands and expanded continents."); +static const u8 DexDescription_Groudon_2[] = _( + "This POKéMON took to sleep after a\n" + "cataclysmic battle with KYOGRE."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Rayquaza_1[] = _( + "RAYQUAZA is said to have lived for\n" + "hundreds of millions of years in the\n" + "earth’s ozone layer, above the clouds."); +static const u8 DexDescription_Rayquaza_2[] = _( + "Its existence had been completely\n" + "unknown because it lived so high in\n" + "the sky."); +#else +static const u8 DexDescription_Rayquaza_1[] = _( + "RAYQUAZA lived for hundreds of millions\n" + "of years in the earth’s ozone layer, \n" + "never descending to the ground."); +static const u8 DexDescription_Rayquaza_2[] = _( + "This POKéMON appears to feed on water\n" + "and particles in the atmosphere."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Jirachi_1[] = _( + "JIRACHI will awaken from its sleep of\n" + "a thousand years if you sing to it in a\n" + "voice of purity."); +static const u8 DexDescription_Jirachi_2[] = _( + "It is said to make true any wish that\n" + "people desire."); +#else +static const u8 DexDescription_Jirachi_1[] = _( + "A legend states that JIRACHI will make\n" + "true any wish that is written on notes\n" + "attached to its head when it awakens."); +static const u8 DexDescription_Jirachi_2[] = _( + "If this POKéMON senses danger, it will\n" + "fight without awakening."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Deoxys_1[] = _( + "DEOXYS emerged from a virus that came\n" + "from space. It is highly intelligent and\n" + "wields psychokinetic powers."); +static const u8 DexDescription_Deoxys_2[] = _( + "This POKéMON shoots lasers from the\n" + "crystalline organ on its chest."); +#else +static const u8 DexDescription_Deoxys_1[] = _( + "The DNA of a space virus underwent a\n" + "sudden mutation upon exposure to a\n" + "laser beam and resulted in DEOXYS."); +static const u8 DexDescription_Deoxys_2[] = _( + "The crystalline organ on this POKéMON’s\n" + "chest appears to be its brain."); +#endif + +static const struct PokedexEntry gPokedexEntries[] = +{ + { //Dummy + .categoryName = _("UNKNOWN"), + .height = 0, + .weight = 0, + .descriptionPage1 = DexDescription_Dummy_1, + .descriptionPage2 = DexDescription_Dummy_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Bulbasaur + .categoryName = _("SEED"), + .height = 7, + .weight = 69, + .descriptionPage1 = DexDescription_Bulbasaur_1, + .descriptionPage2 = DexDescription_Bulbasaur_2, + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Ivysaur + .categoryName = _("SEED"), + .height = 10, + .weight = 130, + .descriptionPage1 = DexDescription_Ivysaur_1, + .descriptionPage2 = DexDescription_Ivysaur_2, + .pokemonScale = 335, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Venusaur + .categoryName = _("SEED"), + .height = 20, + .weight = 1000, + .descriptionPage1 = DexDescription_Venusaur_1, + .descriptionPage2 = DexDescription_Venusaur_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 388, + .trainerOffset = 6, + }, + { //Charmander + .categoryName = _("LIZARD"), + .height = 6, + .weight = 85, + .descriptionPage1 = DexDescription_Charmander_1, + .descriptionPage2 = DexDescription_Charmander_2, + .pokemonScale = 444, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Charmeleon + .categoryName = _("FLAME"), + .height = 11, + .weight = 190, + .descriptionPage1 = DexDescription_Charmeleon_1, + .descriptionPage2 = DexDescription_Charmeleon_2, + .pokemonScale = 302, + .pokemonOffset = 9, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Charizard + .categoryName = _("FLAME"), + .height = 17, + .weight = 905, + .descriptionPage1 = DexDescription_Charizard_1, + .descriptionPage2 = DexDescription_Charizard_2, + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 302, + .trainerOffset = 3, + }, + { //Squirtle + .categoryName = _("TINY TURTLE"), + .height = 5, + .weight = 90, + .descriptionPage1 = DexDescription_Squirtle_1, + .descriptionPage2 = DexDescription_Squirtle_2, + .pokemonScale = 412, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Wartortle + .categoryName = _("TURTLE"), + .height = 10, + .weight = 225, + .descriptionPage1 = DexDescription_Wartortle_1, + .descriptionPage2 = DexDescription_Wartortle_2, + .pokemonScale = 332, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Blastoise + .categoryName = _("SHELLFISH"), + .height = 16, + .weight = 855, + .descriptionPage1 = DexDescription_Blastoise_1, + .descriptionPage2 = DexDescription_Blastoise_2, + .pokemonScale = 256, + .pokemonOffset = -1, + .trainerScale = 293, + .trainerOffset = 2, + }, + { //Caterpie + .categoryName = _("WORM"), + .height = 3, + .weight = 29, + .descriptionPage1 = DexDescription_Caterpie_1, + .descriptionPage2 = DexDescription_Caterpie_2, + .pokemonScale = 549, + .pokemonOffset = 22, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Metapod + .categoryName = _("COCOON"), + .height = 7, + .weight = 99, + .descriptionPage1 = DexDescription_Metapod_1, + .descriptionPage2 = DexDescription_Metapod_2, + .pokemonScale = 350, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Butterfree + .categoryName = _("BUTTERFLY"), + .height = 11, + .weight = 320, + .descriptionPage1 = DexDescription_Butterfree_1, + .descriptionPage2 = DexDescription_Butterfree_2, + .pokemonScale = 312, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Weedle + .categoryName = _("HAIRY BUG"), + .height = 3, + .weight = 32, + .descriptionPage1 = DexDescription_Weedle_1, + .descriptionPage2 = DexDescription_Weedle_2, + .pokemonScale = 455, + .pokemonOffset = 22, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Kakuna + .categoryName = _("COCOON"), + .height = 6, + .weight = 100, + .descriptionPage1 = DexDescription_Kakuna_1, + .descriptionPage2 = DexDescription_Kakuna_2, + .pokemonScale = 424, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Beedrill + .categoryName = _("POISON BEE"), + .height = 10, + .weight = 295, + .descriptionPage1 = DexDescription_Beedrill_1, + .descriptionPage2 = DexDescription_Beedrill_2, + .pokemonScale = 366, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Pidgey + .categoryName = _("TINY BIRD"), + .height = 3, + .weight = 18, + .descriptionPage1 = DexDescription_Pidgey_1, + .descriptionPage2 = DexDescription_Pidgey_2, + .pokemonScale = 508, + .pokemonOffset = -3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Pidgeotto + .categoryName = _("BIRD"), + .height = 11, + .weight = 300, + .descriptionPage1 = DexDescription_Pidgeotto_1, + .descriptionPage2 = DexDescription_Pidgeotto_2, + .pokemonScale = 331, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Pidgeot + .categoryName = _("BIRD"), + .height = 15, + .weight = 395, + .descriptionPage1 = DexDescription_Pidgeot_1, + .descriptionPage2 = DexDescription_Pidgeot_2, + .pokemonScale = 269, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Rattata + .categoryName = _("MOUSE"), + .height = 3, + .weight = 35, + .descriptionPage1 = DexDescription_Rattata_1, + .descriptionPage2 = DexDescription_Rattata_2, + .pokemonScale = 481, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Raticate + .categoryName = _("MOUSE"), + .height = 7, + .weight = 185, + .descriptionPage1 = DexDescription_Raticate_1, + .descriptionPage2 = DexDescription_Raticate_2, + .pokemonScale = 459, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Spearow + .categoryName = _("TINY BIRD"), + .height = 3, + .weight = 20, + .descriptionPage1 = DexDescription_Spearow_1, + .descriptionPage2 = DexDescription_Spearow_2, + .pokemonScale = 571, + .pokemonOffset = 22, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Fearow + .categoryName = _("BEAK"), + .height = 12, + .weight = 380, + .descriptionPage1 = DexDescription_Fearow_1, + .descriptionPage2 = DexDescription_Fearow_2, + .pokemonScale = 278, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Ekans + .categoryName = _("SNAKE"), + .height = 20, + .weight = 69, + .descriptionPage1 = DexDescription_Ekans_1, + .descriptionPage2 = DexDescription_Ekans_2, + .pokemonScale = 298, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Arbok + .categoryName = _("COBRA"), + .height = 35, + .weight = 650, + .descriptionPage1 = DexDescription_Arbok_1, + .descriptionPage2 = DexDescription_Arbok_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 296, + .trainerOffset = 2, + }, + { //Pikachu + .categoryName = _("MOUSE"), + .height = 4, + .weight = 60, + .descriptionPage1 = DexDescription_Pikachu_1, + .descriptionPage2 = DexDescription_Pikachu_2, + .pokemonScale = 479, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Raichu + .categoryName = _("MOUSE"), + .height = 8, + .weight = 300, + .descriptionPage1 = DexDescription_Raichu_1, + .descriptionPage2 = DexDescription_Raichu_2, + .pokemonScale = 426, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Sandshrew + .categoryName = _("MOUSE"), + .height = 6, + .weight = 120, + .descriptionPage1 = DexDescription_Sandshrew_1, + .descriptionPage2 = DexDescription_Sandshrew_2, + .pokemonScale = 365, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Sandslash + .categoryName = _("MOUSE"), + .height = 10, + .weight = 295, + .descriptionPage1 = DexDescription_Sandslash_1, + .descriptionPage2 = DexDescription_Sandslash_2, + .pokemonScale = 341, + .pokemonOffset = 11, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //NidoranF + .categoryName = _("POISON PIN"), + .height = 4, + .weight = 70, + .descriptionPage1 = DexDescription_NidoranF_1, + .descriptionPage2 = DexDescription_NidoranF_2, + .pokemonScale = 488, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Nidorina + .categoryName = _("POISON PIN"), + .height = 8, + .weight = 200, + .descriptionPage1 = DexDescription_Nidorina_1, + .descriptionPage2 = DexDescription_Nidorina_2, + .pokemonScale = 381, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Nidoqueen + .categoryName = _("DRILL"), + .height = 13, + .weight = 600, + .descriptionPage1 = DexDescription_Nidoqueen_1, + .descriptionPage2 = DexDescription_Nidoqueen_2, + .pokemonScale = 293, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //NidoranM + .categoryName = _("POISON PIN"), + .height = 5, + .weight = 90, + .descriptionPage1 = DexDescription_NidoranM_1, + .descriptionPage2 = DexDescription_NidoranM_2, + .pokemonScale = 511, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Nidorino + .categoryName = _("POISON PIN"), + .height = 9, + .weight = 195, + .descriptionPage1 = DexDescription_Nidorino_1, + .descriptionPage2 = DexDescription_Nidorino_2, + .pokemonScale = 408, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Nidoking + .categoryName = _("DRILL"), + .height = 14, + .weight = 620, + .descriptionPage1 = DexDescription_Nidoking_1, + .descriptionPage2 = DexDescription_Nidoking_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Clefairy + .categoryName = _("FAIRY"), + .height = 6, + .weight = 75, + .descriptionPage1 = DexDescription_Clefairy_1, + .descriptionPage2 = DexDescription_Clefairy_2, + .pokemonScale = 441, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Clefable + .categoryName = _("FAIRY"), + .height = 13, + .weight = 400, + .descriptionPage1 = DexDescription_Clefable_1, + .descriptionPage2 = DexDescription_Clefable_2, + .pokemonScale = 256, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Vulpix + .categoryName = _("FOX"), + .height = 6, + .weight = 99, + .descriptionPage1 = DexDescription_Vulpix_1, + .descriptionPage2 = DexDescription_Vulpix_2, + .pokemonScale = 542, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Ninetales + .categoryName = _("FOX"), + .height = 11, + .weight = 199, + .descriptionPage1 = DexDescription_Ninetales_1, + .descriptionPage2 = DexDescription_Ninetales_2, + .pokemonScale = 339, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Jigglypuff + .categoryName = _("BALLOON"), + .height = 5, + .weight = 55, + .descriptionPage1 = DexDescription_Jigglypuff_1, + .descriptionPage2 = DexDescription_Jigglypuff_2, + .pokemonScale = 433, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Wigglytuff + .categoryName = _("BALLOON"), + .height = 10, + .weight = 120, + .descriptionPage1 = DexDescription_Wigglytuff_1, + .descriptionPage2 = DexDescription_Wigglytuff_2, + .pokemonScale = 328, + .pokemonOffset = 11, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Zubat + .categoryName = _("BAT"), + .height = 8, + .weight = 75, + .descriptionPage1 = DexDescription_Zubat_1, + .descriptionPage2 = DexDescription_Zubat_2, + .pokemonScale = 362, + .pokemonOffset = -5, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Golbat + .categoryName = _("BAT"), + .height = 16, + .weight = 550, + .descriptionPage1 = DexDescription_Golbat_1, + .descriptionPage2 = DexDescription_Golbat_2, + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Oddish + .categoryName = _("WEED"), + .height = 5, + .weight = 54, + .descriptionPage1 = DexDescription_Oddish_1, + .descriptionPage2 = DexDescription_Oddish_2, + .pokemonScale = 423, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Gloom + .categoryName = _("WEED"), + .height = 8, + .weight = 86, + .descriptionPage1 = DexDescription_Gloom_1, + .descriptionPage2 = DexDescription_Gloom_2, + .pokemonScale = 329, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Vileplume + .categoryName = _("FLOWER"), + .height = 12, + .weight = 186, + .descriptionPage1 = DexDescription_Vileplume_1, + .descriptionPage2 = DexDescription_Vileplume_2, + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Paras + .categoryName = _("MUSHROOM"), + .height = 3, + .weight = 54, + .descriptionPage1 = DexDescription_Paras_1, + .descriptionPage2 = DexDescription_Paras_2, + .pokemonScale = 593, + .pokemonOffset = 22, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Parasect + .categoryName = _("MUSHROOM"), + .height = 10, + .weight = 295, + .descriptionPage1 = DexDescription_Parasect_1, + .descriptionPage2 = DexDescription_Parasect_2, + .pokemonScale = 307, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Venonat + .categoryName = _("INSECT"), + .height = 10, + .weight = 300, + .descriptionPage1 = DexDescription_Venonat_1, + .descriptionPage2 = DexDescription_Venonat_2, + .pokemonScale = 360, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = -1, + }, + { //Venomoth + .categoryName = _("POISON MOTH"), + .height = 15, + .weight = 125, + .descriptionPage1 = DexDescription_Venomoth_1, + .descriptionPage2 = DexDescription_Venomoth_2, + .pokemonScale = 285, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 1, + }, + { //Diglett + .categoryName = _("MOLE"), + .height = 2, + .weight = 8, + .descriptionPage1 = DexDescription_Diglett_1, + .descriptionPage2 = DexDescription_Diglett_2, + .pokemonScale = 833, + .pokemonOffset = 25, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Dugtrio + .categoryName = _("MOLE"), + .height = 7, + .weight = 333, + .descriptionPage1 = DexDescription_Dugtrio_1, + .descriptionPage2 = DexDescription_Dugtrio_2, + .pokemonScale = 406, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Meowth + .categoryName = _("SCRATCH CAT"), + .height = 4, + .weight = 42, + .descriptionPage1 = DexDescription_Meowth_1, + .descriptionPage2 = DexDescription_Meowth_2, + .pokemonScale = 480, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Persian + .categoryName = _("CLASSY CAT"), + .height = 10, + .weight = 320, + .descriptionPage1 = DexDescription_Persian_1, + .descriptionPage2 = DexDescription_Persian_2, + .pokemonScale = 320, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Psyduck + .categoryName = _("DUCK"), + .height = 8, + .weight = 196, + .descriptionPage1 = DexDescription_Psyduck_1, + .descriptionPage2 = DexDescription_Psyduck_2, + .pokemonScale = 369, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Golduck + .categoryName = _("DUCK"), + .height = 17, + .weight = 766, + .descriptionPage1 = DexDescription_Golduck_1, + .descriptionPage2 = DexDescription_Golduck_2, + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 273, + .trainerOffset = 1, + }, + { //Mankey + .categoryName = _("PIG MONKEY"), + .height = 5, + .weight = 280, + .descriptionPage1 = DexDescription_Mankey_1, + .descriptionPage2 = DexDescription_Mankey_2, + .pokemonScale = 404, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Primeape + .categoryName = _("PIG MONKEY"), + .height = 10, + .weight = 320, + .descriptionPage1 = DexDescription_Primeape_1, + .descriptionPage2 = DexDescription_Primeape_2, + .pokemonScale = 326, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Growlithe + .categoryName = _("PUPPY"), + .height = 7, + .weight = 190, + .descriptionPage1 = DexDescription_Growlithe_1, + .descriptionPage2 = DexDescription_Growlithe_2, + .pokemonScale = 346, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Arcanine + .categoryName = _("LEGENDARY"), + .height = 19, + .weight = 1550, + .descriptionPage1 = DexDescription_Arcanine_1, + .descriptionPage2 = DexDescription_Arcanine_2, + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 312, + .trainerOffset = 4, + }, + { //Poliwag + .categoryName = _("TADPOLE"), + .height = 6, + .weight = 124, + .descriptionPage1 = DexDescription_Poliwag_1, + .descriptionPage2 = DexDescription_Poliwag_2, + .pokemonScale = 369, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Poliwhirl + .categoryName = _("TADPOLE"), + .height = 10, + .weight = 200, + .descriptionPage1 = DexDescription_Poliwhirl_1, + .descriptionPage2 = DexDescription_Poliwhirl_2, + .pokemonScale = 288, + .pokemonOffset = 11, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Poliwrath + .categoryName = _("TADPOLE"), + .height = 13, + .weight = 540, + .descriptionPage1 = DexDescription_Poliwrath_1, + .descriptionPage2 = DexDescription_Poliwrath_2, + .pokemonScale = 256, + .pokemonOffset = 6, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Abra + .categoryName = _("PSI"), + .height = 9, + .weight = 195, + .descriptionPage1 = DexDescription_Abra_1, + .descriptionPage2 = DexDescription_Abra_2, + .pokemonScale = 363, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Kadabra + .categoryName = _("PSI"), + .height = 13, + .weight = 565, + .descriptionPage1 = DexDescription_Kadabra_1, + .descriptionPage2 = DexDescription_Kadabra_2, + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Alakazam + .categoryName = _("PSI"), + .height = 15, + .weight = 480, + .descriptionPage1 = DexDescription_Alakazam_1, + .descriptionPage2 = DexDescription_Alakazam_2, + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Machop + .categoryName = _("SUPERPOWER"), + .height = 8, + .weight = 195, + .descriptionPage1 = DexDescription_Machop_1, + .descriptionPage2 = DexDescription_Machop_2, + .pokemonScale = 342, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Machoke + .categoryName = _("SUPERPOWER"), + .height = 15, + .weight = 705, + .descriptionPage1 = DexDescription_Machoke_1, + .descriptionPage2 = DexDescription_Machoke_2, + .pokemonScale = 323, + .pokemonOffset = 9, + .trainerScale = 257, + .trainerOffset = 0, + }, + { //Machamp + .categoryName = _("SUPERPOWER"), + .height = 16, + .weight = 1300, + .descriptionPage1 = DexDescription_Machamp_1, + .descriptionPage2 = DexDescription_Machamp_2, + .pokemonScale = 280, + .pokemonOffset = 1, + .trainerScale = 269, + .trainerOffset = -1, + }, + { //Bellsprout + .categoryName = _("FLOWER"), + .height = 7, + .weight = 40, + .descriptionPage1 = DexDescription_Bellsprout_1, + .descriptionPage2 = DexDescription_Bellsprout_2, + .pokemonScale = 354, + .pokemonOffset = 16, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Weepinbell + .categoryName = _("FLYCATCHER"), + .height = 10, + .weight = 64, + .descriptionPage1 = DexDescription_Weepinbell_1, + .descriptionPage2 = DexDescription_Weepinbell_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Victreebel + .categoryName = _("FLYCATCHER"), + .height = 17, + .weight = 155, + .descriptionPage1 = DexDescription_Victreebel_1, + .descriptionPage2 = DexDescription_Victreebel_2, + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 312, + .trainerOffset = 3, + }, + { //Tentacool + .categoryName = _("JELLYFISH"), + .height = 9, + .weight = 455, + .descriptionPage1 = DexDescription_Tentacool_1, + .descriptionPage2 = DexDescription_Tentacool_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Tentacruel + .categoryName = _("JELLYFISH"), + .height = 16, + .weight = 550, + .descriptionPage1 = DexDescription_Tentacruel_1, + .descriptionPage2 = DexDescription_Tentacruel_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 312, + .trainerOffset = 1, + }, + { //Geodude + .categoryName = _("ROCK"), + .height = 4, + .weight = 200, + .descriptionPage1 = DexDescription_Geodude_1, + .descriptionPage2 = DexDescription_Geodude_2, + .pokemonScale = 347, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Graveler + .categoryName = _("ROCK"), + .height = 10, + .weight = 1050, + .descriptionPage1 = DexDescription_Graveler_1, + .descriptionPage2 = DexDescription_Graveler_2, + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Golem + .categoryName = _("MEGATON"), + .height = 14, + .weight = 3000, + .descriptionPage1 = DexDescription_Golem_1, + .descriptionPage2 = DexDescription_Golem_2, + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 296, + .trainerOffset = 2, + }, + { //Ponyta + .categoryName = _("FIRE HORSE"), + .height = 10, + .weight = 300, + .descriptionPage1 = DexDescription_Ponyta_1, + .descriptionPage2 = DexDescription_Ponyta_2, + .pokemonScale = 283, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Rapidash + .categoryName = _("FIRE HORSE"), + .height = 17, + .weight = 950, + .descriptionPage1 = DexDescription_Rapidash_1, + .descriptionPage2 = DexDescription_Rapidash_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 289, + .trainerOffset = 1, + }, + { //Slowpoke + .categoryName = _("DOPEY"), + .height = 12, + .weight = 360, + .descriptionPage1 = DexDescription_Slowpoke_1, + .descriptionPage2 = DexDescription_Slowpoke_2, + .pokemonScale = 256, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Slowbro + .categoryName = _("HERMIT CRAB"), + .height = 16, + .weight = 785, + .descriptionPage1 = DexDescription_Slowbro_1, + .descriptionPage2 = DexDescription_Slowbro_2, + .pokemonScale = 256, + .pokemonOffset = 6, + .trainerScale = 296, + .trainerOffset = 2, + }, + { //Magnemite + .categoryName = _("MAGNET"), + .height = 3, + .weight = 60, + .descriptionPage1 = DexDescription_Magnemite_1, + .descriptionPage2 = DexDescription_Magnemite_2, + .pokemonScale = 288, + .pokemonOffset = -9, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Magneton + .categoryName = _("MAGNET"), + .height = 10, + .weight = 600, + .descriptionPage1 = DexDescription_Magneton_1, + .descriptionPage2 = DexDescription_Magneton_2, + .pokemonScale = 292, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Farfetchd + .categoryName = _("WILD DUCK"), + .height = 8, + .weight = 150, + .descriptionPage1 = DexDescription_Farfetchd_1, + .descriptionPage2 = DexDescription_Farfetchd_2, + .pokemonScale = 330, + .pokemonOffset = 2, + .trainerScale = 293, + .trainerOffset = 2, + }, + { //Doduo + .categoryName = _("TWIN BIRD"), + .height = 14, + .weight = 392, + .descriptionPage1 = DexDescription_Doduo_1, + .descriptionPage2 = DexDescription_Doduo_2, + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 257, + .trainerOffset = -1, + }, + { //Dodrio + .categoryName = _("TRIPLE BIRD"), + .height = 18, + .weight = 852, + .descriptionPage1 = DexDescription_Dodrio_1, + .descriptionPage2 = DexDescription_Dodrio_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 268, + .trainerOffset = 0, + }, + { //Seel + .categoryName = _("SEA LION"), + .height = 11, + .weight = 900, + .descriptionPage1 = DexDescription_Seel_1, + .descriptionPage2 = DexDescription_Seel_2, + .pokemonScale = 297, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Dewgong + .categoryName = _("SEA LION"), + .height = 17, + .weight = 1200, + .descriptionPage1 = DexDescription_Dewgong_1, + .descriptionPage2 = DexDescription_Dewgong_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 275, + .trainerOffset = 0, + }, + { //Grimer + .categoryName = _("SLUDGE"), + .height = 9, + .weight = 300, + .descriptionPage1 = DexDescription_Grimer_1, + .descriptionPage2 = DexDescription_Grimer_2, + .pokemonScale = 258, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Muk + .categoryName = _("SLUDGE"), + .height = 12, + .weight = 300, + .descriptionPage1 = DexDescription_Muk_1, + .descriptionPage2 = DexDescription_Muk_2, + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Shellder + .categoryName = _("BIVALVE"), + .height = 3, + .weight = 40, + .descriptionPage1 = DexDescription_Shellder_1, + .descriptionPage2 = DexDescription_Shellder_2, + .pokemonScale = 675, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Cloyster + .categoryName = _("BIVALVE"), + .height = 15, + .weight = 1325, + .descriptionPage1 = DexDescription_Cloyster_1, + .descriptionPage2 = DexDescription_Cloyster_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 269, + .trainerOffset = 1, + }, + { //Gastly + .categoryName = _("GAS"), + .height = 13, + .weight = 1, + .descriptionPage1 = DexDescription_Gastly_1, + .descriptionPage2 = DexDescription_Gastly_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Haunter + .categoryName = _("GAS"), + .height = 16, + .weight = 1, + .descriptionPage1 = DexDescription_Haunter_1, + .descriptionPage2 = DexDescription_Haunter_2, + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 293, + .trainerOffset = 2, + }, + { //Gengar + .categoryName = _("SHADOW"), + .height = 15, + .weight = 405, + .descriptionPage1 = DexDescription_Gengar_1, + .descriptionPage2 = DexDescription_Gengar_2, + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 302, + .trainerOffset = 2, + }, + { //Onix + .categoryName = _("ROCK SNAKE"), + .height = 88, + .weight = 2100, + .descriptionPage1 = DexDescription_Onix_1, + .descriptionPage2 = DexDescription_Onix_2, + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 515, + .trainerOffset = 14, + }, + { //Drowzee + .categoryName = _("HYPNOSIS"), + .height = 10, + .weight = 324, + .descriptionPage1 = DexDescription_Drowzee_1, + .descriptionPage2 = DexDescription_Drowzee_2, + .pokemonScale = 274, + .pokemonOffset = 6, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Hypno + .categoryName = _("HYPNOSIS"), + .height = 16, + .weight = 756, + .descriptionPage1 = DexDescription_Hypno_1, + .descriptionPage2 = DexDescription_Hypno_2, + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 257, + .trainerOffset = 0, + }, + { //Krabby + .categoryName = _("RIVER CRAB"), + .height = 4, + .weight = 65, + .descriptionPage1 = DexDescription_Krabby_1, + .descriptionPage2 = DexDescription_Krabby_2, + .pokemonScale = 469, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Kingler + .categoryName = _("PINCER"), + .height = 13, + .weight = 600, + .descriptionPage1 = DexDescription_Kingler_1, + .descriptionPage2 = DexDescription_Kingler_2, + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Voltorb + .categoryName = _("BALL"), + .height = 5, + .weight = 104, + .descriptionPage1 = DexDescription_Voltorb_1, + .descriptionPage2 = DexDescription_Voltorb_2, + .pokemonScale = 364, + .pokemonOffset = -8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Electrode + .categoryName = _("BALL"), + .height = 12, + .weight = 666, + .descriptionPage1 = DexDescription_Electrode_1, + .descriptionPage2 = DexDescription_Electrode_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Exeggcute + .categoryName = _("EGG"), + .height = 4, + .weight = 25, + .descriptionPage1 = DexDescription_Exeggcute_1, + .descriptionPage2 = DexDescription_Exeggcute_2, + .pokemonScale = 489, + .pokemonOffset = -4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Exeggutor + .categoryName = _("COCONUT"), + .height = 20, + .weight = 1200, + .descriptionPage1 = DexDescription_Exeggutor_1, + .descriptionPage2 = DexDescription_Exeggutor_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 309, + .trainerOffset = 5, + }, + { //Cubone + .categoryName = _("LONELY"), + .height = 4, + .weight = 65, + .descriptionPage1 = DexDescription_Cubone_1, + .descriptionPage2 = DexDescription_Cubone_2, + .pokemonScale = 545, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Marowak + .categoryName = _("BONE KEEPER"), + .height = 10, + .weight = 450, + .descriptionPage1 = DexDescription_Marowak_1, + .descriptionPage2 = DexDescription_Marowak_2, + .pokemonScale = 293, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Hitmonlee + .categoryName = _("KICKING"), + .height = 15, + .weight = 498, + .descriptionPage1 = DexDescription_Hitmonlee_1, + .descriptionPage2 = DexDescription_Hitmonlee_2, + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 259, + .trainerOffset = 1, + }, + { //Hitmonchan + .categoryName = _("PUNCHING"), + .height = 14, + .weight = 502, + .descriptionPage1 = DexDescription_Hitmonchan_1, + .descriptionPage2 = DexDescription_Hitmonchan_2, + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 277, + .trainerOffset = 2, + }, + { //Lickitung + .categoryName = _("LICKING"), + .height = 12, + .weight = 655, + .descriptionPage1 = DexDescription_Lickitung_1, + .descriptionPage2 = DexDescription_Lickitung_2, + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Koffing + .categoryName = _("POISON GAS"), + .height = 6, + .weight = 10, + .descriptionPage1 = DexDescription_Koffing_1, + .descriptionPage2 = DexDescription_Koffing_2, + .pokemonScale = 369, + .pokemonOffset = -1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Weezing + .categoryName = _("POISON GAS"), + .height = 12, + .weight = 95, + .descriptionPage1 = DexDescription_Weezing_1, + .descriptionPage2 = DexDescription_Weezing_2, + .pokemonScale = 305, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Rhyhorn + .categoryName = _("SPIKES"), + .height = 10, + .weight = 1150, + .descriptionPage1 = DexDescription_Rhyhorn_1, + .descriptionPage2 = DexDescription_Rhyhorn_2, + .pokemonScale = 267, + .pokemonOffset = 6, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Rhydon + .categoryName = _("DRILL"), + .height = 19, + .weight = 1200, + .descriptionPage1 = DexDescription_Rhydon_1, + .descriptionPage2 = DexDescription_Rhydon_2, + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 299, + .trainerOffset = 2, + }, + { //Chansey + .categoryName = _("EGG"), + .height = 11, + .weight = 346, + .descriptionPage1 = DexDescription_Chansey_1, + .descriptionPage2 = DexDescription_Chansey_2, + .pokemonScale = 257, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Tangela + .categoryName = _("VINE"), + .height = 10, + .weight = 350, + .descriptionPage1 = DexDescription_Tangela_1, + .descriptionPage2 = DexDescription_Tangela_2, + .pokemonScale = 304, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Kangaskhan + .categoryName = _("PARENT"), + .height = 22, + .weight = 800, + .descriptionPage1 = DexDescription_Kangaskhan_1, + .descriptionPage2 = DexDescription_Kangaskhan_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 387, + .trainerOffset = 8, + }, + { //Horsea + .categoryName = _("DRAGON"), + .height = 4, + .weight = 80, + .descriptionPage1 = DexDescription_Horsea_1, + .descriptionPage2 = DexDescription_Horsea_2, + .pokemonScale = 399, + .pokemonOffset = -1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Seadra + .categoryName = _("DRAGON"), + .height = 12, + .weight = 250, + .descriptionPage1 = DexDescription_Seadra_1, + .descriptionPage2 = DexDescription_Seadra_2, + .pokemonScale = 299, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Goldeen + .categoryName = _("GOLDFISH"), + .height = 6, + .weight = 150, + .descriptionPage1 = DexDescription_Goldeen_1, + .descriptionPage2 = DexDescription_Goldeen_2, + .pokemonScale = 379, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Seaking + .categoryName = _("GOLDFISH"), + .height = 13, + .weight = 390, + .descriptionPage1 = DexDescription_Seaking_1, + .descriptionPage2 = DexDescription_Seaking_2, + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Staryu + .categoryName = _("STAR SHAPE"), + .height = 8, + .weight = 345, + .descriptionPage1 = DexDescription_Staryu_1, + .descriptionPage2 = DexDescription_Staryu_2, + .pokemonScale = 326, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Starmie + .categoryName = _("MYSTERIOUS"), + .height = 11, + .weight = 800, + .descriptionPage1 = DexDescription_Starmie_1, + .descriptionPage2 = DexDescription_Starmie_2, + .pokemonScale = 301, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Mrmime + .categoryName = _("BARRIER"), + .height = 13, + .weight = 545, + .descriptionPage1 = DexDescription_Mrmime_1, + .descriptionPage2 = DexDescription_Mrmime_2, + .pokemonScale = 258, + .pokemonOffset = 6, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Scyther + .categoryName = _("MANTIS"), + .height = 15, + .weight = 560, + .descriptionPage1 = DexDescription_Scyther_1, + .descriptionPage2 = DexDescription_Scyther_2, + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 293, + .trainerOffset = 2, + }, + { //Jynx + .categoryName = _("HUMAN SHAPE"), + .height = 14, + .weight = 406, + .descriptionPage1 = DexDescription_Jynx_1, + .descriptionPage2 = DexDescription_Jynx_2, + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 300, + .trainerOffset = 1, + }, + { //Electabuzz + .categoryName = _("ELECTRIC"), + .height = 11, + .weight = 300, + .descriptionPage1 = DexDescription_Electabuzz_1, + .descriptionPage2 = DexDescription_Electabuzz_2, + .pokemonScale = 351, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Magmar + .categoryName = _("SPITFIRE"), + .height = 13, + .weight = 445, + .descriptionPage1 = DexDescription_Magmar_1, + .descriptionPage2 = DexDescription_Magmar_2, + .pokemonScale = 277, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Pinsir + .categoryName = _("STAG BEETLE"), + .height = 15, + .weight = 550, + .descriptionPage1 = DexDescription_Pinsir_1, + .descriptionPage2 = DexDescription_Pinsir_2, + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 257, + .trainerOffset = 0, + }, + { //Tauros + .categoryName = _("WILD BULL"), + .height = 14, + .weight = 884, + .descriptionPage1 = DexDescription_Tauros_1, + .descriptionPage2 = DexDescription_Tauros_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Magikarp + .categoryName = _("FISH"), + .height = 9, + .weight = 100, + .descriptionPage1 = DexDescription_Magikarp_1, + .descriptionPage2 = DexDescription_Magikarp_2, + .pokemonScale = 310, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Gyarados + .categoryName = _("ATROCIOUS"), + .height = 65, + .weight = 2350, + .descriptionPage1 = DexDescription_Gyarados_1, + .descriptionPage2 = DexDescription_Gyarados_2, + .pokemonScale = 256, + .pokemonOffset = 6, + .trainerScale = 481, + .trainerOffset = 13, + }, + { //Lapras + .categoryName = _("TRANSPORT"), + .height = 25, + .weight = 2200, + .descriptionPage1 = DexDescription_Lapras_1, + .descriptionPage2 = DexDescription_Lapras_2, + .pokemonScale = 257, + .pokemonOffset = 10, + .trainerScale = 423, + .trainerOffset = 8, + }, + { //Ditto + .categoryName = _("TRANSFORM"), + .height = 3, + .weight = 40, + .descriptionPage1 = DexDescription_Ditto_1, + .descriptionPage2 = DexDescription_Ditto_2, + .pokemonScale = 633, + .pokemonOffset = 23, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Eevee + .categoryName = _("EVOLUTION"), + .height = 3, + .weight = 65, + .descriptionPage1 = DexDescription_Eevee_1, + .descriptionPage2 = DexDescription_Eevee_2, + .pokemonScale = 476, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Vaporeon + .categoryName = _("BUBBLE JET"), + .height = 10, + .weight = 290, + .descriptionPage1 = DexDescription_Vaporeon_1, + .descriptionPage2 = DexDescription_Vaporeon_2, + .pokemonScale = 316, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Jolteon + .categoryName = _("LIGHTNING"), + .height = 8, + .weight = 245, + .descriptionPage1 = DexDescription_Jolteon_1, + .descriptionPage2 = DexDescription_Jolteon_2, + .pokemonScale = 283, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Flareon + .categoryName = _("FLAME"), + .height = 9, + .weight = 250, + .descriptionPage1 = DexDescription_Flareon_1, + .descriptionPage2 = DexDescription_Flareon_2, + .pokemonScale = 306, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Porygon + .categoryName = _("VIRTUAL"), + .height = 8, + .weight = 365, + .descriptionPage1 = DexDescription_Porygon_1, + .descriptionPage2 = DexDescription_Porygon_2, + .pokemonScale = 328, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Omanyte + .categoryName = _("SPIRAL"), + .height = 4, + .weight = 75, + .descriptionPage1 = DexDescription_Omanyte_1, + .descriptionPage2 = DexDescription_Omanyte_2, + .pokemonScale = 521, + .pokemonOffset = 22, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Omastar + .categoryName = _("SPIRAL"), + .height = 10, + .weight = 350, + .descriptionPage1 = DexDescription_Omastar_1, + .descriptionPage2 = DexDescription_Omastar_2, + .pokemonScale = 307, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Kabuto + .categoryName = _("SHELLFISH"), + .height = 5, + .weight = 115, + .descriptionPage1 = DexDescription_Kabuto_1, + .descriptionPage2 = DexDescription_Kabuto_2, + .pokemonScale = 454, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Kabutops + .categoryName = _("SHELLFISH"), + .height = 13, + .weight = 405, + .descriptionPage1 = DexDescription_Kabutops_1, + .descriptionPage2 = DexDescription_Kabutops_2, + .pokemonScale = 271, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Aerodactyl + .categoryName = _("FOSSIL"), + .height = 18, + .weight = 590, + .descriptionPage1 = DexDescription_Aerodactyl_1, + .descriptionPage2 = DexDescription_Aerodactyl_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 302, + .trainerOffset = 4, + }, + { //Snorlax + .categoryName = _("SLEEPING"), + .height = 21, + .weight = 4600, + .descriptionPage1 = DexDescription_Snorlax_1, + .descriptionPage2 = DexDescription_Snorlax_2, + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 423, + .trainerOffset = 11, + }, + { //Articuno + .categoryName = _("FREEZE"), + .height = 17, + .weight = 554, + .descriptionPage1 = DexDescription_Articuno_1, + .descriptionPage2 = DexDescription_Articuno_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 309, + .trainerOffset = 2, + }, + { //Zapdos + .categoryName = _("ELECTRIC"), + .height = 16, + .weight = 526, + .descriptionPage1 = DexDescription_Zapdos_1, + .descriptionPage2 = DexDescription_Zapdos_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 318, + .trainerOffset = 3, + }, + { //Moltres + .categoryName = _("FLAME"), + .height = 20, + .weight = 600, + .descriptionPage1 = DexDescription_Moltres_1, + .descriptionPage2 = DexDescription_Moltres_2, + .pokemonScale = 270, + .pokemonOffset = 0, + .trainerScale = 387, + .trainerOffset = 8, + }, + { //Dratini + .categoryName = _("DRAGON"), + .height = 18, + .weight = 33, + .descriptionPage1 = DexDescription_Dratini_1, + .descriptionPage2 = DexDescription_Dratini_2, + .pokemonScale = 256, + .pokemonOffset = 8, + .trainerScale = 386, + .trainerOffset = 6, + }, + { //Dragonair + .categoryName = _("DRAGON"), + .height = 40, + .weight = 165, + .descriptionPage1 = DexDescription_Dragonair_1, + .descriptionPage2 = DexDescription_Dragonair_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 411, + .trainerOffset = 5, + }, + { //Dragonite + .categoryName = _("DRAGON"), + .height = 22, + .weight = 2100, + .descriptionPage1 = DexDescription_Dragonite_1, + .descriptionPage2 = DexDescription_Dragonite_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 309, + .trainerOffset = 4, + }, + { //Mewtwo + .categoryName = _("GENETIC"), + .height = 20, + .weight = 1220, + .descriptionPage1 = DexDescription_Mewtwo_1, + .descriptionPage2 = DexDescription_Mewtwo_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 309, + .trainerOffset = 4, + }, + { //Mew + .categoryName = _("NEW SPECIES"), + .height = 4, + .weight = 40, + .descriptionPage1 = DexDescription_Mew_1, + .descriptionPage2 = DexDescription_Mew_2, + .pokemonScale = 457, + .pokemonOffset = -2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Chikorita + .categoryName = _("LEAF"), + .height = 9, + .weight = 64, + .descriptionPage1 = DexDescription_Chikorita_1, + .descriptionPage2 = DexDescription_Chikorita_2, + .pokemonScale = 512, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Bayleef + .categoryName = _("LEAF"), + .height = 12, + .weight = 158, + .descriptionPage1 = DexDescription_Bayleef_1, + .descriptionPage2 = DexDescription_Bayleef_2, + .pokemonScale = 296, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Meganium + .categoryName = _("HERB"), + .height = 18, + .weight = 1005, + .descriptionPage1 = DexDescription_Meganium_1, + .descriptionPage2 = DexDescription_Meganium_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 277, + .trainerOffset = 1, + }, + { //Cyndaquil + .categoryName = _("FIRE MOUSE"), + .height = 5, + .weight = 79, + .descriptionPage1 = DexDescription_Cyndaquil_1, + .descriptionPage2 = DexDescription_Cyndaquil_2, + .pokemonScale = 539, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Quilava + .categoryName = _("VOLCANO"), + .height = 9, + .weight = 190, + .descriptionPage1 = DexDescription_Quilava_1, + .descriptionPage2 = DexDescription_Quilava_2, + .pokemonScale = 329, + .pokemonOffset = 11, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Typhlosion + .categoryName = _("VOLCANO"), + .height = 17, + .weight = 795, + .descriptionPage1 = DexDescription_Typhlosion_1, + .descriptionPage2 = DexDescription_Typhlosion_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 268, + .trainerOffset = 1, + }, + { //Totodile + .categoryName = _("BIG JAW"), + .height = 6, + .weight = 95, + .descriptionPage1 = DexDescription_Totodile_1, + .descriptionPage2 = DexDescription_Totodile_2, + .pokemonScale = 487, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Croconaw + .categoryName = _("BIG JAW"), + .height = 11, + .weight = 250, + .descriptionPage1 = DexDescription_Croconaw_1, + .descriptionPage2 = DexDescription_Croconaw_2, + .pokemonScale = 378, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Feraligatr + .categoryName = _("BIG JAW"), + .height = 23, + .weight = 888, + .descriptionPage1 = DexDescription_Feraligatr_1, + .descriptionPage2 = DexDescription_Feraligatr_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 342, + .trainerOffset = 7, + }, + { //Sentret + .categoryName = _("SCOUT"), + .height = 8, + .weight = 60, + .descriptionPage1 = DexDescription_Sentret_1, + .descriptionPage2 = DexDescription_Sentret_2, + .pokemonScale = 439, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Furret + .categoryName = _("LONG BODY"), + .height = 18, + .weight = 325, + .descriptionPage1 = DexDescription_Furret_1, + .descriptionPage2 = DexDescription_Furret_2, + .pokemonScale = 346, + .pokemonOffset = 11, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Hoothoot + .categoryName = _("OWL"), + .height = 7, + .weight = 212, + .descriptionPage1 = DexDescription_Hoothoot_1, + .descriptionPage2 = DexDescription_Hoothoot_2, + .pokemonScale = 380, + .pokemonOffset = -2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Noctowl + .categoryName = _("OWL"), + .height = 16, + .weight = 408, + .descriptionPage1 = DexDescription_Noctowl_1, + .descriptionPage2 = DexDescription_Noctowl_2, + .pokemonScale = 278, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Ledyba + .categoryName = _("FIVE STAR"), + .height = 10, + .weight = 108, + .descriptionPage1 = DexDescription_Ledyba_1, + .descriptionPage2 = DexDescription_Ledyba_2, + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Ledian + .categoryName = _("FIVE STAR"), + .height = 14, + .weight = 356, + .descriptionPage1 = DexDescription_Ledian_1, + .descriptionPage2 = DexDescription_Ledian_2, + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Spinarak + .categoryName = _("STRING SPIT"), + .height = 5, + .weight = 85, + .descriptionPage1 = DexDescription_Spinarak_1, + .descriptionPage2 = DexDescription_Spinarak_2, + .pokemonScale = 414, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Ariados + .categoryName = _("LONG LEG"), + .height = 11, + .weight = 335, + .descriptionPage1 = DexDescription_Ariados_1, + .descriptionPage2 = DexDescription_Ariados_2, + .pokemonScale = 316, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Crobat + .categoryName = _("BAT"), + .height = 18, + .weight = 750, + .descriptionPage1 = DexDescription_Crobat_1, + .descriptionPage2 = DexDescription_Crobat_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 281, + .trainerOffset = 1, + }, + { //Chinchou + .categoryName = _("ANGLER"), + .height = 5, + .weight = 120, + .descriptionPage1 = DexDescription_Chinchou_1, + .descriptionPage2 = DexDescription_Chinchou_2, + .pokemonScale = 424, + .pokemonOffset = -2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Lanturn + .categoryName = _("LIGHT"), + .height = 12, + .weight = 225, + .descriptionPage1 = DexDescription_Lanturn_1, + .descriptionPage2 = DexDescription_Lanturn_2, + .pokemonScale = 269, + .pokemonOffset = 6, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Pichu + .categoryName = _("TINY MOUSE"), + .height = 3, + .weight = 20, + .descriptionPage1 = DexDescription_Pichu_1, + .descriptionPage2 = DexDescription_Pichu_2, + .pokemonScale = 508, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Cleffa + .categoryName = _("STAR SHAPE"), + .height = 3, + .weight = 30, + .descriptionPage1 = DexDescription_Cleffa_1, + .descriptionPage2 = DexDescription_Cleffa_2, + .pokemonScale = 462, + .pokemonOffset = 23, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Igglybuff + .categoryName = _("BALLOON"), + .height = 3, + .weight = 10, + .descriptionPage1 = DexDescription_Igglybuff_1, + .descriptionPage2 = DexDescription_Igglybuff_2, + .pokemonScale = 457, + .pokemonOffset = -1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Togepi + .categoryName = _("SPIKE BALL"), + .height = 3, + .weight = 15, + .descriptionPage1 = DexDescription_Togepi_1, + .descriptionPage2 = DexDescription_Togepi_2, + .pokemonScale = 507, + .pokemonOffset = 23, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Togetic + .categoryName = _("HAPPINESS"), + .height = 6, + .weight = 32, + .descriptionPage1 = DexDescription_Togetic_1, + .descriptionPage2 = DexDescription_Togetic_2, + .pokemonScale = 424, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Natu + .categoryName = _("TINY BIRD"), + .height = 2, + .weight = 20, + .descriptionPage1 = DexDescription_Natu_1, + .descriptionPage2 = DexDescription_Natu_2, + .pokemonScale = 610, + .pokemonOffset = 25, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Xatu + .categoryName = _("MYSTIC"), + .height = 15, + .weight = 150, + .descriptionPage1 = DexDescription_Xatu_1, + .descriptionPage2 = DexDescription_Xatu_2, + .pokemonScale = 256, + .pokemonOffset = 6, + .trainerScale = 318, + .trainerOffset = 4, + }, + { //Mareep + .categoryName = _("WOOL"), + .height = 6, + .weight = 78, + .descriptionPage1 = DexDescription_Mareep_1, + .descriptionPage2 = DexDescription_Mareep_2, + .pokemonScale = 379, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Flaaffy + .categoryName = _("WOOL"), + .height = 8, + .weight = 133, + .descriptionPage1 = DexDescription_Flaaffy_1, + .descriptionPage2 = DexDescription_Flaaffy_2, + .pokemonScale = 372, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Ampharos + .categoryName = _("LIGHT"), + .height = 14, + .weight = 615, + .descriptionPage1 = DexDescription_Ampharos_1, + .descriptionPage2 = DexDescription_Ampharos_2, + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Bellossom + .categoryName = _("FLOWER"), + .height = 4, + .weight = 58, + .descriptionPage1 = DexDescription_Bellossom_1, + .descriptionPage2 = DexDescription_Bellossom_2, + .pokemonScale = 472, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Marill + .categoryName = _("AQUA MOUSE"), + .height = 4, + .weight = 85, + .descriptionPage1 = DexDescription_Marill_1, + .descriptionPage2 = DexDescription_Marill_2, + .pokemonScale = 476, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Azumarill + .categoryName = _("AQUA RABBIT"), + .height = 8, + .weight = 285, + .descriptionPage1 = DexDescription_Azumarill_1, + .descriptionPage2 = DexDescription_Azumarill_2, + .pokemonScale = 448, + .pokemonOffset = 16, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Sudowoodo + .categoryName = _("IMITATION"), + .height = 12, + .weight = 380, + .descriptionPage1 = DexDescription_Sudowoodo_1, + .descriptionPage2 = DexDescription_Sudowoodo_2, + .pokemonScale = 305, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Politoed + .categoryName = _("FROG"), + .height = 11, + .weight = 339, + .descriptionPage1 = DexDescription_Politoed_1, + .descriptionPage2 = DexDescription_Politoed_2, + .pokemonScale = 289, + .pokemonOffset = 6, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Hoppip + .categoryName = _("COTTONWEED"), + .height = 4, + .weight = 5, + .descriptionPage1 = DexDescription_Hoppip_1, + .descriptionPage2 = DexDescription_Hoppip_2, + .pokemonScale = 562, + .pokemonOffset = -7, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Skiploom + .categoryName = _("COTTONWEED"), + .height = 6, + .weight = 10, + .descriptionPage1 = DexDescription_Skiploom_1, + .descriptionPage2 = DexDescription_Skiploom_2, + .pokemonScale = 387, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Jumpluff + .categoryName = _("COTTONWEED"), + .height = 8, + .weight = 30, + .descriptionPage1 = DexDescription_Jumpluff_1, + .descriptionPage2 = DexDescription_Jumpluff_2, + .pokemonScale = 418, + .pokemonOffset = -4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Aipom + .categoryName = _("LONG TAIL"), + .height = 8, + .weight = 115, + .descriptionPage1 = DexDescription_Aipom_1, + .descriptionPage2 = DexDescription_Aipom_2, + .pokemonScale = 363, + .pokemonOffset = 6, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Sunkern + .categoryName = _("SEED"), + .height = 3, + .weight = 18, + .descriptionPage1 = DexDescription_Sunkern_1, + .descriptionPage2 = DexDescription_Sunkern_2, + .pokemonScale = 541, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Sunflora + .categoryName = _("SUN"), + .height = 8, + .weight = 85, + .descriptionPage1 = DexDescription_Sunflora_1, + .descriptionPage2 = DexDescription_Sunflora_2, + .pokemonScale = 444, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Yanma + .categoryName = _("CLEAR WING"), + .height = 12, + .weight = 380, + .descriptionPage1 = DexDescription_Yanma_1, + .descriptionPage2 = DexDescription_Yanma_2, + .pokemonScale = 274, + .pokemonOffset = -1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Wooper + .categoryName = _("WATER FISH"), + .height = 4, + .weight = 85, + .descriptionPage1 = DexDescription_Wooper_1, + .descriptionPage2 = DexDescription_Wooper_2, + .pokemonScale = 479, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Quagsire + .categoryName = _("WATER FISH"), + .height = 14, + .weight = 750, + .descriptionPage1 = DexDescription_Quagsire_1, + .descriptionPage2 = DexDescription_Quagsire_2, + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Espeon + .categoryName = _("SUN"), + .height = 9, + .weight = 265, + .descriptionPage1 = DexDescription_Espeon_1, + .descriptionPage2 = DexDescription_Espeon_2, + .pokemonScale = 363, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Umbreon + .categoryName = _("MOONLIGHT"), + .height = 10, + .weight = 270, + .descriptionPage1 = DexDescription_Umbreon_1, + .descriptionPage2 = DexDescription_Umbreon_2, + .pokemonScale = 317, + .pokemonOffset = 11, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Murkrow + .categoryName = _("DARKNESS"), + .height = 5, + .weight = 21, + .descriptionPage1 = DexDescription_Murkrow_1, + .descriptionPage2 = DexDescription_Murkrow_2, + .pokemonScale = 401, + .pokemonOffset = -8, + .trainerScale = 256, + .trainerOffset = 1, + }, + { //Slowking + .categoryName = _("ROYAL"), + .height = 20, + .weight = 795, + .descriptionPage1 = DexDescription_Slowking_1, + .descriptionPage2 = DexDescription_Slowking_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 309, + .trainerOffset = 5, + }, + { //Misdreavus + .categoryName = _("SCREECH"), + .height = 7, + .weight = 10, + .descriptionPage1 = DexDescription_Misdreavus_1, + .descriptionPage2 = DexDescription_Misdreavus_2, + .pokemonScale = 407, + .pokemonOffset = -8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Unown + .categoryName = _("SYMBOL"), + .height = 5, + .weight = 50, + .descriptionPage1 = DexDescription_Unown_1, + .descriptionPage2 = DexDescription_Unown_2, + .pokemonScale = 411, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Wobbuffet + .categoryName = _("PATIENT"), + .height = 13, + .weight = 285, + .descriptionPage1 = DexDescription_Wobbuffet_1, + .descriptionPage2 = DexDescription_Wobbuffet_2, + .pokemonScale = 274, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Girafarig + .categoryName = _("LONG NECK"), + .height = 15, + .weight = 415, + .descriptionPage1 = DexDescription_Girafarig_1, + .descriptionPage2 = DexDescription_Girafarig_2, + .pokemonScale = 281, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Pineco + .categoryName = _("BAGWORM"), + .height = 6, + .weight = 72, + .descriptionPage1 = DexDescription_Pineco_1, + .descriptionPage2 = DexDescription_Pineco_2, + .pokemonScale = 445, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Forretress + .categoryName = _("BAGWORM"), + .height = 12, + .weight = 1258, + .descriptionPage1 = DexDescription_Forretress_1, + .descriptionPage2 = DexDescription_Forretress_2, + .pokemonScale = 293, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Dunsparce + .categoryName = _("LAND SNAKE"), + .height = 15, + .weight = 140, + .descriptionPage1 = DexDescription_Dunsparce_1, + .descriptionPage2 = DexDescription_Dunsparce_2, + .pokemonScale = 316, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Gligar + .categoryName = _("FLYSCORPION"), + .height = 11, + .weight = 648, + .descriptionPage1 = DexDescription_Gligar_1, + .descriptionPage2 = DexDescription_Gligar_2, + .pokemonScale = 350, + .pokemonOffset = -1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Steelix + .categoryName = _("IRON SNAKE"), + .height = 92, + .weight = 4000, + .descriptionPage1 = DexDescription_Steelix_1, + .descriptionPage2 = DexDescription_Steelix_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 516, + .trainerOffset = 13, + }, + { //Snubbull + .categoryName = _("FAIRY"), + .height = 6, + .weight = 78, + .descriptionPage1 = DexDescription_Snubbull_1, + .descriptionPage2 = DexDescription_Snubbull_2, + .pokemonScale = 465, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Granbull + .categoryName = _("FAIRY"), + .height = 14, + .weight = 487, + .descriptionPage1 = DexDescription_Granbull_1, + .descriptionPage2 = DexDescription_Granbull_2, + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Qwilfish + .categoryName = _("BALLOON"), + .height = 5, + .weight = 39, + .descriptionPage1 = DexDescription_Qwilfish_1, + .descriptionPage2 = DexDescription_Qwilfish_2, + .pokemonScale = 430, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Scizor + .categoryName = _("PINCER"), + .height = 18, + .weight = 1180, + .descriptionPage1 = DexDescription_Scizor_1, + .descriptionPage2 = DexDescription_Scizor_2, + .pokemonScale = 278, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Shuckle + .categoryName = _("MOLD"), + .height = 6, + .weight = 205, + .descriptionPage1 = DexDescription_Shuckle_1, + .descriptionPage2 = DexDescription_Shuckle_2, + .pokemonScale = 485, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Heracross + .categoryName = _("SINGLE HORN"), + .height = 15, + .weight = 540, + .descriptionPage1 = DexDescription_Heracross_1, + .descriptionPage2 = DexDescription_Heracross_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Sneasel + .categoryName = _("SHARP CLAW"), + .height = 9, + .weight = 280, + .descriptionPage1 = DexDescription_Sneasel_1, + .descriptionPage2 = DexDescription_Sneasel_2, + .pokemonScale = 413, + .pokemonOffset = -3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Teddiursa + .categoryName = _("LITTLE BEAR"), + .height = 6, + .weight = 88, + .descriptionPage1 = DexDescription_Teddiursa_1, + .descriptionPage2 = DexDescription_Teddiursa_2, + .pokemonScale = 455, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Ursaring + .categoryName = _("HIBERNATOR"), + .height = 18, + .weight = 1258, + .descriptionPage1 = DexDescription_Ursaring_1, + .descriptionPage2 = DexDescription_Ursaring_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Slugma + .categoryName = _("LAVA"), + .height = 7, + .weight = 350, + .descriptionPage1 = DexDescription_Slugma_1, + .descriptionPage2 = DexDescription_Slugma_2, + .pokemonScale = 329, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Magcargo + .categoryName = _("LAVA"), + .height = 8, + .weight = 550, + .descriptionPage1 = DexDescription_Magcargo_1, + .descriptionPage2 = DexDescription_Magcargo_2, + .pokemonScale = 332, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Swinub + .categoryName = _("PIG"), + .height = 4, + .weight = 65, + .descriptionPage1 = DexDescription_Swinub_1, + .descriptionPage2 = DexDescription_Swinub_2, + .pokemonScale = 324, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Piloswine + .categoryName = _("SWINE"), + .height = 11, + .weight = 558, + .descriptionPage1 = DexDescription_Piloswine_1, + .descriptionPage2 = DexDescription_Piloswine_2, + .pokemonScale = 306, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Corsola + .categoryName = _("CORAL"), + .height = 6, + .weight = 50, + .descriptionPage1 = DexDescription_Corsola_1, + .descriptionPage2 = DexDescription_Corsola_2, + .pokemonScale = 410, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Remoraid + .categoryName = _("JET"), + .height = 6, + .weight = 120, + .descriptionPage1 = DexDescription_Remoraid_1, + .descriptionPage2 = DexDescription_Remoraid_2, + .pokemonScale = 316, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Octillery + .categoryName = _("JET"), + .height = 9, + .weight = 285, + .descriptionPage1 = DexDescription_Octillery_1, + .descriptionPage2 = DexDescription_Octillery_2, + .pokemonScale = 296, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Delibird + .categoryName = _("DELIVERY"), + .height = 9, + .weight = 160, + .descriptionPage1 = DexDescription_Delibird_1, + .descriptionPage2 = DexDescription_Delibird_2, + .pokemonScale = 293, + .pokemonOffset = 11, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Mantine + .categoryName = _("KITE"), + .height = 21, + .weight = 2200, + .descriptionPage1 = DexDescription_Mantine_1, + .descriptionPage2 = DexDescription_Mantine_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 342, + .trainerOffset = 7, + }, + { //Skarmory + .categoryName = _("ARMOR BIRD"), + .height = 17, + .weight = 505, + .descriptionPage1 = DexDescription_Skarmory_1, + .descriptionPage2 = DexDescription_Skarmory_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 271, + .trainerOffset = 1, + }, + { //Houndour + .categoryName = _("DARK"), + .height = 6, + .weight = 108, + .descriptionPage1 = DexDescription_Houndour_1, + .descriptionPage2 = DexDescription_Houndour_2, + .pokemonScale = 393, + .pokemonOffset = 16, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Houndoom + .categoryName = _("DARK"), + .height = 14, + .weight = 350, + .descriptionPage1 = DexDescription_Houndoom_1, + .descriptionPage2 = DexDescription_Houndoom_2, + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Kingdra + .categoryName = _("DRAGON"), + .height = 18, + .weight = 1520, + .descriptionPage1 = DexDescription_Kingdra_1, + .descriptionPage2 = DexDescription_Kingdra_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 287, + .trainerOffset = 0, + }, + { //Phanpy + .categoryName = _("LONG NOSE"), + .height = 5, + .weight = 335, + .descriptionPage1 = DexDescription_Phanpy_1, + .descriptionPage2 = DexDescription_Phanpy_2, + .pokemonScale = 465, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Donphan + .categoryName = _("ARMOR"), + .height = 11, + .weight = 1200, + .descriptionPage1 = DexDescription_Donphan_1, + .descriptionPage2 = DexDescription_Donphan_2, + .pokemonScale = 313, + .pokemonOffset = 9, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Porygon2 + .categoryName = _("VIRTUAL"), + .height = 6, + .weight = 325, + .descriptionPage1 = DexDescription_Porygon2_1, + .descriptionPage2 = DexDescription_Porygon2_2, + .pokemonScale = 320, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Stantler + .categoryName = _("BIG HORN"), + .height = 14, + .weight = 712, + .descriptionPage1 = DexDescription_Stantler_1, + .descriptionPage2 = DexDescription_Stantler_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Smeargle + .categoryName = _("PAINTER"), + .height = 12, + .weight = 580, + .descriptionPage1 = DexDescription_Smeargle_1, + .descriptionPage2 = DexDescription_Smeargle_2, + .pokemonScale = 287, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Tyrogue + .categoryName = _("SCUFFLE"), + .height = 7, + .weight = 210, + .descriptionPage1 = DexDescription_Tyrogue_1, + .descriptionPage2 = DexDescription_Tyrogue_2, + .pokemonScale = 292, + .pokemonOffset = 9, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Hitmontop + .categoryName = _("HANDSTAND"), + .height = 14, + .weight = 480, + .descriptionPage1 = DexDescription_Hitmontop_1, + .descriptionPage2 = DexDescription_Hitmontop_2, + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 257, + .trainerOffset = 0, + }, + { //Smoochum + .categoryName = _("KISS"), + .height = 4, + .weight = 60, + .descriptionPage1 = DexDescription_Smoochum_1, + .descriptionPage2 = DexDescription_Smoochum_2, + .pokemonScale = 440, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Elekid + .categoryName = _("ELECTRIC"), + .height = 6, + .weight = 235, + .descriptionPage1 = DexDescription_Elekid_1, + .descriptionPage2 = DexDescription_Elekid_2, + .pokemonScale = 363, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Magby + .categoryName = _("LIVE COAL"), + .height = 7, + .weight = 214, + .descriptionPage1 = DexDescription_Magby_1, + .descriptionPage2 = DexDescription_Magby_2, + .pokemonScale = 284, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Miltank + .categoryName = _("MILK COW"), + .height = 12, + .weight = 755, + .descriptionPage1 = DexDescription_Miltank_1, + .descriptionPage2 = DexDescription_Miltank_2, + .pokemonScale = 280, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Blissey + .categoryName = _("HAPPINESS"), + .height = 15, + .weight = 468, + .descriptionPage1 = DexDescription_Blissey_1, + .descriptionPage2 = DexDescription_Blissey_2, + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 310, + .trainerOffset = 3, + }, + { //Raikou + .categoryName = _("THUNDER"), + .height = 19, + .weight = 1780, + .descriptionPage1 = DexDescription_Raikou_1, + .descriptionPage2 = DexDescription_Raikou_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 345, + .trainerOffset = 7, + }, + { //Entei + .categoryName = _("VOLCANO"), + .height = 21, + .weight = 1980, + .descriptionPage1 = DexDescription_Entei_1, + .descriptionPage2 = DexDescription_Entei_2, + .pokemonScale = 259, + .pokemonOffset = 0, + .trainerScale = 345, + .trainerOffset = 7, + }, + { //Suicune + .categoryName = _("AURORA"), + .height = 20, + .weight = 1870, + .descriptionPage1 = DexDescription_Suicune_1, + .descriptionPage2 = DexDescription_Suicune_2, + .pokemonScale = 269, + .pokemonOffset = 0, + .trainerScale = 345, + .trainerOffset = 7, + }, + { //Larvitar + .categoryName = _("ROCK SKIN"), + .height = 6, + .weight = 720, + .descriptionPage1 = DexDescription_Larvitar_1, + .descriptionPage2 = DexDescription_Larvitar_2, + .pokemonScale = 472, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Pupitar + .categoryName = _("HARD SHELL"), + .height = 12, + .weight = 1520, + .descriptionPage1 = DexDescription_Pupitar_1, + .descriptionPage2 = DexDescription_Pupitar_2, + .pokemonScale = 292, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Tyranitar + .categoryName = _("ARMOR"), + .height = 20, + .weight = 2020, + .descriptionPage1 = DexDescription_Tyranitar_1, + .descriptionPage2 = DexDescription_Tyranitar_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 345, + .trainerOffset = 7, + }, + { //Lugia + .categoryName = _("DIVING"), + .height = 52, + .weight = 2160, + .descriptionPage1 = DexDescription_Lugia_1, + .descriptionPage2 = DexDescription_Lugia_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 721, + .trainerOffset = 19, + }, + { //HoOh + .categoryName = _("RAINBOW"), + .height = 38, + .weight = 1990, + .descriptionPage1 = DexDescription_HoOh_1, + .descriptionPage2 = DexDescription_HoOh_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 610, + .trainerOffset = 17, + }, + { //Celebi + .categoryName = _("TIME TRAVEL"), + .height = 6, + .weight = 50, + .descriptionPage1 = DexDescription_Celebi_1, + .descriptionPage2 = DexDescription_Celebi_2, + .pokemonScale = 393, + .pokemonOffset = -10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Treecko + .categoryName = _("WOOD GECKO"), + .height = 5, + .weight = 50, + .descriptionPage1 = DexDescription_Treecko_1, + .descriptionPage2 = DexDescription_Treecko_2, + .pokemonScale = 541, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Grovyle + .categoryName = _("WOOD GECKO"), + .height = 9, + .weight = 216, + .descriptionPage1 = DexDescription_Grovyle_1, + .descriptionPage2 = DexDescription_Grovyle_2, + .pokemonScale = 360, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Sceptile + .categoryName = _("FOREST"), + .height = 17, + .weight = 522, + .descriptionPage1 = DexDescription_Sceptile_1, + .descriptionPage2 = DexDescription_Sceptile_2, + .pokemonScale = 256, + .pokemonOffset = -1, + .trainerScale = 275, + .trainerOffset = 2, + }, + { //Torchic + .categoryName = _("CHICK"), + .height = 4, + .weight = 25, + .descriptionPage1 = DexDescription_Torchic_1, + .descriptionPage2 = DexDescription_Torchic_2, + .pokemonScale = 566, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Combusken + .categoryName = _("YOUNG FOWL"), + .height = 9, + .weight = 195, + .descriptionPage1 = DexDescription_Combusken_1, + .descriptionPage2 = DexDescription_Combusken_2, + .pokemonScale = 343, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Blaziken + .categoryName = _("BLAZE"), + .height = 19, + .weight = 520, + .descriptionPage1 = DexDescription_Blaziken_1, + .descriptionPage2 = DexDescription_Blaziken_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 301, + .trainerOffset = 4, + }, + { //Mudkip + .categoryName = _("MUD FISH"), + .height = 4, + .weight = 76, + .descriptionPage1 = DexDescription_Mudkip_1, + .descriptionPage2 = DexDescription_Mudkip_2, + .pokemonScale = 535, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Marshtomp + .categoryName = _("MUD FISH"), + .height = 7, + .weight = 280, + .descriptionPage1 = DexDescription_Marshtomp_1, + .descriptionPage2 = DexDescription_Marshtomp_2, + .pokemonScale = 340, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Swampert + .categoryName = _("MUD FISH"), + .height = 15, + .weight = 819, + .descriptionPage1 = DexDescription_Swampert_1, + .descriptionPage2 = DexDescription_Swampert_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Poochyena + .categoryName = _("BITE"), + .height = 5, + .weight = 136, + .descriptionPage1 = DexDescription_Poochyena_1, + .descriptionPage2 = DexDescription_Poochyena_2, + .pokemonScale = 481, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Mightyena + .categoryName = _("BITE"), + .height = 10, + .weight = 370, + .descriptionPage1 = DexDescription_Mightyena_1, + .descriptionPage2 = DexDescription_Mightyena_2, + .pokemonScale = 362, + .pokemonOffset = 9, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Zigzagoon + .categoryName = _("TINYRACCOON"), + .height = 4, + .weight = 175, + .descriptionPage1 = DexDescription_Zigzagoon_1, + .descriptionPage2 = DexDescription_Zigzagoon_2, + .pokemonScale = 560, + .pokemonOffset = 22, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Linoone + .categoryName = _("RUSHING"), + .height = 5, + .weight = 325, + .descriptionPage1 = DexDescription_Linoone_1, + .descriptionPage2 = DexDescription_Linoone_2, + .pokemonScale = 321, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Wurmple + .categoryName = _("WORM"), + .height = 3, + .weight = 36, + .descriptionPage1 = DexDescription_Wurmple_1, + .descriptionPage2 = DexDescription_Wurmple_2, + .pokemonScale = 711, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Silcoon + .categoryName = _("COCOON"), + .height = 6, + .weight = 100, + .descriptionPage1 = DexDescription_Silcoon_1, + .descriptionPage2 = DexDescription_Silcoon_2, + .pokemonScale = 431, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Beautifly + .categoryName = _("BUTTERFLY"), + .height = 10, + .weight = 284, + .descriptionPage1 = DexDescription_Beautifly_1, + .descriptionPage2 = DexDescription_Beautifly_2, + .pokemonScale = 298, + .pokemonOffset = -1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Cascoon + .categoryName = _("COCOON"), + .height = 7, + .weight = 115, + .descriptionPage1 = DexDescription_Cascoon_1, + .descriptionPage2 = DexDescription_Cascoon_2, + .pokemonScale = 391, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Dustox + .categoryName = _("POISON MOTH"), + .height = 12, + .weight = 316, + .descriptionPage1 = DexDescription_Dustox_1, + .descriptionPage2 = DexDescription_Dustox_2, + .pokemonScale = 269, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Lotad + .categoryName = _("WATER WEED"), + .height = 5, + .weight = 26, + .descriptionPage1 = DexDescription_Lotad_1, + .descriptionPage2 = DexDescription_Lotad_2, + .pokemonScale = 406, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Lombre + .categoryName = _("JOLLY"), + .height = 12, + .weight = 325, + .descriptionPage1 = DexDescription_Lombre_1, + .descriptionPage2 = DexDescription_Lombre_2, + .pokemonScale = 277, + .pokemonOffset = 9, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Ludicolo + .categoryName = _("CAREFREE"), + .height = 15, + .weight = 550, + .descriptionPage1 = DexDescription_Ludicolo_1, + .descriptionPage2 = DexDescription_Ludicolo_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 268, + .trainerOffset = -1, + }, + { //Seedot + .categoryName = _("ACORN"), + .height = 5, + .weight = 40, + .descriptionPage1 = DexDescription_Seedot_1, + .descriptionPage2 = DexDescription_Seedot_2, + .pokemonScale = 472, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Nuzleaf + .categoryName = _("WILY"), + .height = 10, + .weight = 280, + .descriptionPage1 = DexDescription_Nuzleaf_1, + .descriptionPage2 = DexDescription_Nuzleaf_2, + .pokemonScale = 299, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Shiftry + .categoryName = _("WICKED"), + .height = 13, + .weight = 596, + .descriptionPage1 = DexDescription_Shiftry_1, + .descriptionPage2 = DexDescription_Shiftry_2, + .pokemonScale = 290, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Taillow + .categoryName = _("TINYSWALLOW"), + .height = 3, + .weight = 23, + .descriptionPage1 = DexDescription_Taillow_1, + .descriptionPage2 = DexDescription_Taillow_2, + .pokemonScale = 465, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Swellow + .categoryName = _("SWALLOW"), + .height = 7, + .weight = 198, + .descriptionPage1 = DexDescription_Swellow_1, + .descriptionPage2 = DexDescription_Swellow_2, + .pokemonScale = 428, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Wingull + .categoryName = _("SEAGULL"), + .height = 6, + .weight = 95, + .descriptionPage1 = DexDescription_Wingull_1, + .descriptionPage2 = DexDescription_Wingull_2, + .pokemonScale = 295, + .pokemonOffset = -2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Pelipper + .categoryName = _("WATER BIRD"), + .height = 12, + .weight = 280, + .descriptionPage1 = DexDescription_Pelipper_1, + .descriptionPage2 = DexDescription_Pelipper_2, + .pokemonScale = 288, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Ralts + .categoryName = _("FEELING"), + .height = 4, + .weight = 66, + .descriptionPage1 = DexDescription_Ralts_1, + .descriptionPage2 = DexDescription_Ralts_2, + .pokemonScale = 457, + .pokemonOffset = -3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Kirlia + .categoryName = _("EMOTION"), + .height = 8, + .weight = 202, + .descriptionPage1 = DexDescription_Kirlia_1, + .descriptionPage2 = DexDescription_Kirlia_2, + .pokemonScale = 354, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Gardevoir + .categoryName = _("EMBRACE"), + .height = 16, + .weight = 484, + .descriptionPage1 = DexDescription_Gardevoir_1, + .descriptionPage2 = DexDescription_Gardevoir_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Surskit + .categoryName = _("POND SKATER"), + .height = 5, + .weight = 17, + .descriptionPage1 = DexDescription_Surskit_1, + .descriptionPage2 = DexDescription_Surskit_2, + .pokemonScale = 375, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Masquerain + .categoryName = _("EYEBALL"), + .height = 8, + .weight = 36, + .descriptionPage1 = DexDescription_Masquerain_1, + .descriptionPage2 = DexDescription_Masquerain_2, + .pokemonScale = 378, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Shroomish + .categoryName = _("MUSHROOM"), + .height = 4, + .weight = 45, + .descriptionPage1 = DexDescription_Shroomish_1, + .descriptionPage2 = DexDescription_Shroomish_2, + .pokemonScale = 513, + .pokemonOffset = 22, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Breloom + .categoryName = _("MUSHROOM"), + .height = 12, + .weight = 392, + .descriptionPage1 = DexDescription_Breloom_1, + .descriptionPage2 = DexDescription_Breloom_2, + .pokemonScale = 324, + .pokemonOffset = 6, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Slakoth + .categoryName = _("SLACKER"), + .height = 8, + .weight = 240, + .descriptionPage1 = DexDescription_Slakoth_1, + .descriptionPage2 = DexDescription_Slakoth_2, + .pokemonScale = 291, + .pokemonOffset = 16, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Vigoroth + .categoryName = _("WILD MONKEY"), + .height = 14, + .weight = 465, + .descriptionPage1 = DexDescription_Vigoroth_1, + .descriptionPage2 = DexDescription_Vigoroth_2, + .pokemonScale = 301, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Slaking + .categoryName = _("LAZY"), + .height = 20, + .weight = 1305, + .descriptionPage1 = DexDescription_Slaking_1, + .descriptionPage2 = DexDescription_Slaking_2, + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 300, + .trainerOffset = 1, + }, + { //Nincada + .categoryName = _("TRAINEE"), + .height = 5, + .weight = 55, + .descriptionPage1 = DexDescription_Nincada_1, + .descriptionPage2 = DexDescription_Nincada_2, + .pokemonScale = 405, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Ninjask + .categoryName = _("NINJA"), + .height = 8, + .weight = 120, + .descriptionPage1 = DexDescription_Ninjask_1, + .descriptionPage2 = DexDescription_Ninjask_2, + .pokemonScale = 383, + .pokemonOffset = -9, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Shedinja + .categoryName = _("SHED"), + .height = 8, + .weight = 12, + .descriptionPage1 = DexDescription_Shedinja_1, + .descriptionPage2 = DexDescription_Shedinja_2, + .pokemonScale = 372, + .pokemonOffset = -8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Whismur + .categoryName = _("WHISPER"), + .height = 6, + .weight = 163, + .descriptionPage1 = DexDescription_Whismur_1, + .descriptionPage2 = DexDescription_Whismur_2, + .pokemonScale = 373, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Loudred + .categoryName = _("BIG VOICE"), + .height = 10, + .weight = 405, + .descriptionPage1 = DexDescription_Loudred_1, + .descriptionPage2 = DexDescription_Loudred_2, + .pokemonScale = 356, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Exploud + .categoryName = _("LOUD NOISE"), + .height = 15, + .weight = 840, + .descriptionPage1 = DexDescription_Exploud_1, + .descriptionPage2 = DexDescription_Exploud_2, + .pokemonScale = 284, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Makuhita + .categoryName = _("GUTS"), + .height = 10, + .weight = 864, + .descriptionPage1 = DexDescription_Makuhita_1, + .descriptionPage2 = DexDescription_Makuhita_2, + .pokemonScale = 256, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Hariyama + .categoryName = _("ARM THRUST"), + .height = 23, + .weight = 2538, + .descriptionPage1 = DexDescription_Hariyama_1, + .descriptionPage2 = DexDescription_Hariyama_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 343, + .trainerOffset = 7, + }, + { //Azurill + .categoryName = _("POLKA DOT"), + .height = 2, + .weight = 20, + .descriptionPage1 = DexDescription_Azurill_1, + .descriptionPage2 = DexDescription_Azurill_2, + .pokemonScale = 603, + .pokemonOffset = 23, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Nosepass + .categoryName = _("COMPASS"), + .height = 10, + .weight = 970, + .descriptionPage1 = DexDescription_Nosepass_1, + .descriptionPage2 = DexDescription_Nosepass_2, + .pokemonScale = 256, + .pokemonOffset = 9, + .trainerScale = 289, + .trainerOffset = 3, + }, + { //Skitty + .categoryName = _("KITTEN"), + .height = 6, + .weight = 110, + .descriptionPage1 = DexDescription_Skitty_1, + .descriptionPage2 = DexDescription_Skitty_2, + .pokemonScale = 492, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Delcatty + .categoryName = _("PRIM"), + .height = 11, + .weight = 326, + .descriptionPage1 = DexDescription_Delcatty_1, + .descriptionPage2 = DexDescription_Delcatty_2, + .pokemonScale = 322, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Sableye + .categoryName = _("DARKNESS"), + .height = 5, + .weight = 110, + .descriptionPage1 = DexDescription_Sableye_1, + .descriptionPage2 = DexDescription_Sableye_2, + .pokemonScale = 451, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Mawile + .categoryName = _("DECEIVER"), + .height = 6, + .weight = 115, + .descriptionPage1 = DexDescription_Mawile_1, + .descriptionPage2 = DexDescription_Mawile_2, + .pokemonScale = 466, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Aron + .categoryName = _("IRON ARMOR"), + .height = 4, + .weight = 600, + .descriptionPage1 = DexDescription_Aron_1, + .descriptionPage2 = DexDescription_Aron_2, + .pokemonScale = 419, + .pokemonOffset = 23, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Lairon + .categoryName = _("IRON ARMOR"), + .height = 9, + .weight = 1200, + .descriptionPage1 = DexDescription_Lairon_1, + .descriptionPage2 = DexDescription_Lairon_2, + .pokemonScale = 275, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Aggron + .categoryName = _("IRON ARMOR"), + .height = 21, + .weight = 3600, + .descriptionPage1 = DexDescription_Aggron_1, + .descriptionPage2 = DexDescription_Aggron_2, + .pokemonScale = 256, + .pokemonOffset = -1, + .trainerScale = 350, + .trainerOffset = 6, + }, + { //Meditite + .categoryName = _("MEDITATE"), + .height = 6, + .weight = 112, + .descriptionPage1 = DexDescription_Meditite_1, + .descriptionPage2 = DexDescription_Meditite_2, + .pokemonScale = 465, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Medicham + .categoryName = _("MEDITATE"), + .height = 13, + .weight = 315, + .descriptionPage1 = DexDescription_Medicham_1, + .descriptionPage2 = DexDescription_Medicham_2, + .pokemonScale = 298, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Electrike + .categoryName = _("LIGHTNING"), + .height = 6, + .weight = 152, + .descriptionPage1 = DexDescription_Electrike_1, + .descriptionPage2 = DexDescription_Electrike_2, + .pokemonScale = 290, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Manectric + .categoryName = _("DISCHARGE"), + .height = 15, + .weight = 402, + .descriptionPage1 = DexDescription_Manectric_1, + .descriptionPage2 = DexDescription_Manectric_2, + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 257, + .trainerOffset = 0, + }, + { //Plusle + .categoryName = _("CHEERING"), + .height = 4, + .weight = 42, + .descriptionPage1 = DexDescription_Plusle_1, + .descriptionPage2 = DexDescription_Plusle_2, + .pokemonScale = 515, + .pokemonOffset = -9, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Minun + .categoryName = _("CHEERING"), + .height = 4, + .weight = 42, + .descriptionPage1 = DexDescription_Minun_1, + .descriptionPage2 = DexDescription_Minun_2, + .pokemonScale = 512, + .pokemonOffset = -7, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Volbeat + .categoryName = _("FIREFLY"), + .height = 7, + .weight = 177, + .descriptionPage1 = DexDescription_Volbeat_1, + .descriptionPage2 = DexDescription_Volbeat_2, + .pokemonScale = 442, + .pokemonOffset = 16, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Illumise + .categoryName = _("FIREFLY"), + .height = 6, + .weight = 177, + .descriptionPage1 = DexDescription_Illumise_1, + .descriptionPage2 = DexDescription_Illumise_2, + .pokemonScale = 572, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Roselia + .categoryName = _("THORN"), + .height = 3, + .weight = 20, + .descriptionPage1 = DexDescription_Roselia_1, + .descriptionPage2 = DexDescription_Roselia_2, + .pokemonScale = 677, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Gulpin + .categoryName = _("STOMACH"), + .height = 4, + .weight = 103, + .descriptionPage1 = DexDescription_Gulpin_1, + .descriptionPage2 = DexDescription_Gulpin_2, + .pokemonScale = 593, + .pokemonOffset = 23, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Swalot + .categoryName = _("POISON BAG"), + .height = 17, + .weight = 800, + .descriptionPage1 = DexDescription_Swalot_1, + .descriptionPage2 = DexDescription_Swalot_2, + .pokemonScale = 256, + .pokemonOffset = 6, + .trainerScale = 345, + .trainerOffset = 3, + }, + { //Carvanha + .categoryName = _("SAVAGE"), + .height = 8, + .weight = 208, + .descriptionPage1 = DexDescription_Carvanha_1, + .descriptionPage2 = DexDescription_Carvanha_2, + .pokemonScale = 362, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Sharpedo + .categoryName = _("BRUTAL"), + .height = 18, + .weight = 888, + .descriptionPage1 = DexDescription_Sharpedo_1, + .descriptionPage2 = DexDescription_Sharpedo_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 317, + .trainerOffset = 3, + }, + { //Wailmer + .categoryName = _("BALL WHALE"), + .height = 20, + .weight = 1300, + .descriptionPage1 = DexDescription_Wailmer_1, + .descriptionPage2 = DexDescription_Wailmer_2, + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 493, + .trainerOffset = 0, + }, + { //Wailord + .categoryName = _("FLOAT WHALE"), + .height = 145, + .weight = 3980, + .descriptionPage1 = DexDescription_Wailord_1, + .descriptionPage2 = DexDescription_Wailord_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 1352, + .trainerOffset = 18, + }, + { //Numel + .categoryName = _("NUMB"), + .height = 7, + .weight = 240, + .descriptionPage1 = DexDescription_Numel_1, + .descriptionPage2 = DexDescription_Numel_2, + .pokemonScale = 342, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Camerupt + .categoryName = _("ERUPTION"), + .height = 19, + .weight = 2200, + .descriptionPage1 = DexDescription_Camerupt_1, + .descriptionPage2 = DexDescription_Camerupt_2, + .pokemonScale = 256, + .pokemonOffset = 7, + .trainerScale = 345, + .trainerOffset = 6, + }, + { //Torkoal + .categoryName = _("COAL"), + .height = 5, + .weight = 804, + .descriptionPage1 = DexDescription_Torkoal_1, + .descriptionPage2 = DexDescription_Torkoal_2, + .pokemonScale = 390, + .pokemonOffset = 9, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Spoink + .categoryName = _("BOUNCE"), + .height = 7, + .weight = 306, + .descriptionPage1 = DexDescription_Spoink_1, + .descriptionPage2 = DexDescription_Spoink_2, + .pokemonScale = 423, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Grumpig + .categoryName = _("MANIPULATE"), + .height = 9, + .weight = 715, + .descriptionPage1 = DexDescription_Grumpig_1, + .descriptionPage2 = DexDescription_Grumpig_2, + .pokemonScale = 358, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Spinda + .categoryName = _("SPOT PANDA"), + .height = 11, + .weight = 50, + .descriptionPage1 = DexDescription_Spinda_1, + .descriptionPage2 = DexDescription_Spinda_2, + .pokemonScale = 321, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Trapinch + .categoryName = _("ANT PIT"), + .height = 7, + .weight = 150, + .descriptionPage1 = DexDescription_Trapinch_1, + .descriptionPage2 = DexDescription_Trapinch_2, + .pokemonScale = 298, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Vibrava + .categoryName = _("VIBRATION"), + .height = 11, + .weight = 153, + .descriptionPage1 = DexDescription_Vibrava_1, + .descriptionPage2 = DexDescription_Vibrava_2, + .pokemonScale = 370, + .pokemonOffset = 11, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Flygon + .categoryName = _("MYSTIC"), + .height = 20, + .weight = 820, + .descriptionPage1 = DexDescription_Flygon_1, + .descriptionPage2 = DexDescription_Flygon_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 268, + .trainerOffset = 1, + }, + { //Cacnea + .categoryName = _("CACTUS"), + .height = 4, + .weight = 513, + .descriptionPage1 = DexDescription_Cacnea_1, + .descriptionPage2 = DexDescription_Cacnea_2, + .pokemonScale = 455, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Cacturne + .categoryName = _("SCARECROW"), + .height = 13, + .weight = 774, + .descriptionPage1 = DexDescription_Cacturne_1, + .descriptionPage2 = DexDescription_Cacturne_2, + .pokemonScale = 327, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Swablu + .categoryName = _("COTTON BIRD"), + .height = 4, + .weight = 12, + .descriptionPage1 = DexDescription_Swablu_1, + .descriptionPage2 = DexDescription_Swablu_2, + .pokemonScale = 422, + .pokemonOffset = -8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Altaria + .categoryName = _("HUMMING"), + .height = 11, + .weight = 206, + .descriptionPage1 = DexDescription_Altaria_1, + .descriptionPage2 = DexDescription_Altaria_2, + .pokemonScale = 327, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Zangoose + .categoryName = _("CAT FERRET"), + .height = 13, + .weight = 403, + .descriptionPage1 = DexDescription_Zangoose_1, + .descriptionPage2 = DexDescription_Zangoose_2, + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Seviper + .categoryName = _("FANG SNAKE"), + .height = 27, + .weight = 525, + .descriptionPage1 = DexDescription_Seviper_1, + .descriptionPage2 = DexDescription_Seviper_2, + .pokemonScale = 275, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Lunatone + .categoryName = _("METEORITE"), + .height = 10, + .weight = 1680, + .descriptionPage1 = DexDescription_Lunatone_1, + .descriptionPage2 = DexDescription_Lunatone_2, + .pokemonScale = 300, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Solrock + .categoryName = _("METEORITE"), + .height = 12, + .weight = 1540, + .descriptionPage1 = DexDescription_Solrock_1, + .descriptionPage2 = DexDescription_Solrock_2, + .pokemonScale = 328, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Barboach + .categoryName = _("WHISKERS"), + .height = 4, + .weight = 19, + .descriptionPage1 = DexDescription_Barboach_1, + .descriptionPage2 = DexDescription_Barboach_2, + .pokemonScale = 581, + .pokemonOffset = -3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Whiscash + .categoryName = _("WHISKERS"), + .height = 9, + .weight = 236, + .descriptionPage1 = DexDescription_Whiscash_1, + .descriptionPage2 = DexDescription_Whiscash_2, + .pokemonScale = 317, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Corphish + .categoryName = _("RUFFIAN"), + .height = 6, + .weight = 115, + .descriptionPage1 = DexDescription_Corphish_1, + .descriptionPage2 = DexDescription_Corphish_2, + .pokemonScale = 484, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Crawdaunt + .categoryName = _("ROGUE"), + .height = 11, + .weight = 328, + .descriptionPage1 = DexDescription_Crawdaunt_1, + .descriptionPage2 = DexDescription_Crawdaunt_2, + .pokemonScale = 365, + .pokemonOffset = 9, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Baltoy + .categoryName = _("CLAY DOLL"), + .height = 5, + .weight = 215, + .descriptionPage1 = DexDescription_Baltoy_1, + .descriptionPage2 = DexDescription_Baltoy_2, + .pokemonScale = 457, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Claydol + .categoryName = _("CLAY DOLL"), + .height = 15, + .weight = 1080, + .descriptionPage1 = DexDescription_Claydol_1, + .descriptionPage2 = DexDescription_Claydol_2, + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 280, + .trainerOffset = 1, + }, + { //Lileep + .categoryName = _("SEA LILY"), + .height = 10, + .weight = 238, + .descriptionPage1 = DexDescription_Lileep_1, + .descriptionPage2 = DexDescription_Lileep_2, + .pokemonScale = 305, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Cradily + .categoryName = _("BARNACLE"), + .height = 15, + .weight = 604, + .descriptionPage1 = DexDescription_Cradily_1, + .descriptionPage2 = DexDescription_Cradily_2, + .pokemonScale = 267, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Anorith + .categoryName = _("OLD SHRIMP"), + .height = 7, + .weight = 125, + .descriptionPage1 = DexDescription_Anorith_1, + .descriptionPage2 = DexDescription_Anorith_2, + .pokemonScale = 296, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Armaldo + .categoryName = _("PLATE"), + .height = 15, + .weight = 682, + .descriptionPage1 = DexDescription_Armaldo_1, + .descriptionPage2 = DexDescription_Armaldo_2, + .pokemonScale = 312, + .pokemonOffset = 3, + .trainerScale = 271, + .trainerOffset = 0, + }, + { //Feebas + .categoryName = _("FISH"), + .height = 6, + .weight = 74, + .descriptionPage1 = DexDescription_Feebas_1, + .descriptionPage2 = DexDescription_Feebas_2, + .pokemonScale = 423, + .pokemonOffset = -4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Milotic + .categoryName = _("TENDER"), + .height = 62, + .weight = 1620, + .descriptionPage1 = DexDescription_Milotic_1, + .descriptionPage2 = DexDescription_Milotic_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 360, + .trainerOffset = 7, + }, + { //Castform + .categoryName = _("WEATHER"), + .height = 3, + .weight = 8, + .descriptionPage1 = DexDescription_Castform_1, + .descriptionPage2 = DexDescription_Castform_2, + .pokemonScale = 435, + .pokemonOffset = -5, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Kecleon + .categoryName = _("COLOR SWAP"), + .height = 10, + .weight = 220, + .descriptionPage1 = DexDescription_Kecleon_1, + .descriptionPage2 = DexDescription_Kecleon_2, + .pokemonScale = 316, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Shuppet + .categoryName = _("PUPPET"), + .height = 6, + .weight = 23, + .descriptionPage1 = DexDescription_Shuppet_1, + .descriptionPage2 = DexDescription_Shuppet_2, + .pokemonScale = 440, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Banette + .categoryName = _("MARIONETTE"), + .height = 11, + .weight = 125, + .descriptionPage1 = DexDescription_Banette_1, + .descriptionPage2 = DexDescription_Banette_2, + .pokemonScale = 262, + .pokemonOffset = 9, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Duskull + .categoryName = _("REQUIEM"), + .height = 8, + .weight = 150, + .descriptionPage1 = DexDescription_Duskull_1, + .descriptionPage2 = DexDescription_Duskull_2, + .pokemonScale = 406, + .pokemonOffset = -4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Dusclops + .categoryName = _("BECKON"), + .height = 16, + .weight = 306, + .descriptionPage1 = DexDescription_Dusclops_1, + .descriptionPage2 = DexDescription_Dusclops_2, + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 299, + .trainerOffset = 1, + }, + { //Tropius + .categoryName = _("FRUIT"), + .height = 20, + .weight = 1000, + .descriptionPage1 = DexDescription_Tropius_1, + .descriptionPage2 = DexDescription_Tropius_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 344, + .trainerOffset = 7, + }, + { //Chimecho + .categoryName = _("WIND CHIME"), + .height = 6, + .weight = 10, + .descriptionPage1 = DexDescription_Chimecho_1, + .descriptionPage2 = DexDescription_Chimecho_2, + .pokemonScale = 505, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Absol + .categoryName = _("DISASTER"), + .height = 12, + .weight = 470, + .descriptionPage1 = DexDescription_Absol_1, + .descriptionPage2 = DexDescription_Absol_2, + .pokemonScale = 301, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Wynaut + .categoryName = _("BRIGHT"), + .height = 6, + .weight = 140, + .descriptionPage1 = DexDescription_Wynaut_1, + .descriptionPage2 = DexDescription_Wynaut_2, + .pokemonScale = 484, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Snorunt + .categoryName = _("SNOW HAT"), + .height = 7, + .weight = 168, + .descriptionPage1 = DexDescription_Snorunt_1, + .descriptionPage2 = DexDescription_Snorunt_2, + .pokemonScale = 380, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Glalie + .categoryName = _("FACE"), + .height = 15, + .weight = 2565, + .descriptionPage1 = DexDescription_Glalie_1, + .descriptionPage2 = DexDescription_Glalie_2, + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 344, + .trainerOffset = 0, + }, + { //Spheal + .categoryName = _("CLAP"), + .height = 8, + .weight = 395, + .descriptionPage1 = DexDescription_Spheal_1, + .descriptionPage2 = DexDescription_Spheal_2, + .pokemonScale = 315, + .pokemonOffset = 16, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Sealeo + .categoryName = _("BALL ROLL"), + .height = 11, + .weight = 876, + .descriptionPage1 = DexDescription_Sealeo_1, + .descriptionPage2 = DexDescription_Sealeo_2, + .pokemonScale = 338, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Walrein + .categoryName = _("ICE BREAK"), + .height = 14, + .weight = 1506, + .descriptionPage1 = DexDescription_Walrein_1, + .descriptionPage2 = DexDescription_Walrein_2, + .pokemonScale = 316, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Clamperl + .categoryName = _("BIVALVE"), + .height = 4, + .weight = 525, + .descriptionPage1 = DexDescription_Clamperl_1, + .descriptionPage2 = DexDescription_Clamperl_2, + .pokemonScale = 691, + .pokemonOffset = 22, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Huntail + .categoryName = _("DEEP SEA"), + .height = 17, + .weight = 270, + .descriptionPage1 = DexDescription_Huntail_1, + .descriptionPage2 = DexDescription_Huntail_2, + .pokemonScale = 307, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Gorebyss + .categoryName = _("SOUTH SEA"), + .height = 18, + .weight = 226, + .descriptionPage1 = DexDescription_Gorebyss_1, + .descriptionPage2 = DexDescription_Gorebyss_2, + .pokemonScale = 278, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Relicanth + .categoryName = _("LONGEVITY"), + .height = 10, + .weight = 234, + .descriptionPage1 = DexDescription_Relicanth_1, + .descriptionPage2 = DexDescription_Relicanth_2, + .pokemonScale = 316, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Luvdisc + .categoryName = _("RENDEZVOUS"), + .height = 6, + .weight = 87, + .descriptionPage1 = DexDescription_Luvdisc_1, + .descriptionPage2 = DexDescription_Luvdisc_2, + .pokemonScale = 371, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Bagon + .categoryName = _("ROCK HEAD"), + .height = 6, + .weight = 421, + .descriptionPage1 = DexDescription_Bagon_1, + .descriptionPage2 = DexDescription_Bagon_2, + .pokemonScale = 448, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Shelgon + .categoryName = _("ENDURANCE"), + .height = 11, + .weight = 1105, + .descriptionPage1 = DexDescription_Shelgon_1, + .descriptionPage2 = DexDescription_Shelgon_2, + .pokemonScale = 311, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Salamence + .categoryName = _("DRAGON"), + .height = 15, + .weight = 1026, + .descriptionPage1 = DexDescription_Salamence_1, + .descriptionPage2 = DexDescription_Salamence_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Beldum + .categoryName = _("IRON BALL"), + .height = 6, + .weight = 952, + .descriptionPage1 = DexDescription_Beldum_1, + .descriptionPage2 = DexDescription_Beldum_2, + .pokemonScale = 414, + .pokemonOffset = -1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Metang + .categoryName = _("IRON CLAW"), + .height = 12, + .weight = 2025, + .descriptionPage1 = DexDescription_Metang_1, + .descriptionPage2 = DexDescription_Metang_2, + .pokemonScale = 256, + .pokemonOffset = 6, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Metagross + .categoryName = _("IRON LEG"), + .height = 16, + .weight = 5500, + .descriptionPage1 = DexDescription_Metagross_1, + .descriptionPage2 = DexDescription_Metagross_2, + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 447, + .trainerOffset = 9, + }, + { //Regirock + .categoryName = _("ROCK PEAK"), + .height = 17, + .weight = 2300, + .descriptionPage1 = DexDescription_Regirock_1, + .descriptionPage2 = DexDescription_Regirock_2, + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 309, + .trainerOffset = 1, + }, + { //Regice + .categoryName = _("ICEBERG"), + .height = 18, + .weight = 1750, + .descriptionPage1 = DexDescription_Regice_1, + .descriptionPage2 = DexDescription_Regice_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 301, + .trainerOffset = 2, + }, + { //Registeel + .categoryName = _("IRON"), + .height = 19, + .weight = 2050, + .descriptionPage1 = DexDescription_Registeel_1, + .descriptionPage2 = DexDescription_Registeel_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 359, + .trainerOffset = 6, + }, + { //Latias + .categoryName = _("EON"), + .height = 14, + .weight = 400, + .descriptionPage1 = DexDescription_Latias_1, + .descriptionPage2 = DexDescription_Latias_2, + .pokemonScale = 304, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Latios + .categoryName = _("EON"), + .height = 20, + .weight = 600, + .descriptionPage1 = DexDescription_Latios_1, + .descriptionPage2 = DexDescription_Latios_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 294, + .trainerOffset = 3, + }, + { //Kyogre + .categoryName = _("SEA BASIN"), + .height = 45, + .weight = 3520, + .descriptionPage1 = DexDescription_Kyogre_1, + .descriptionPage2 = DexDescription_Kyogre_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 614, + .trainerOffset = 13, + }, + { //Groudon + .categoryName = _("CONTINENT"), + .height = 35, + .weight = 9500, + .descriptionPage1 = DexDescription_Groudon_1, + .descriptionPage2 = DexDescription_Groudon_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 515, + .trainerOffset = 14, + }, + { //Rayquaza + .categoryName = _("SKY HIGH"), + .height = 70, + .weight = 2065, + .descriptionPage1 = DexDescription_Rayquaza_1, + .descriptionPage2 = DexDescription_Rayquaza_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 448, + .trainerOffset = 12, + }, + { //Jirachi + .categoryName = _("WISH"), + .height = 3, + .weight = 11, + .descriptionPage1 = DexDescription_Jirachi_1, + .descriptionPage2 = DexDescription_Jirachi_2, + .pokemonScale = 608, + .pokemonOffset = -8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Deoxys + .categoryName = _("DNA"), + .height = 17, + .weight = 608, + .descriptionPage1 = DexDescription_Deoxys_1, + .descriptionPage2 = DexDescription_Deoxys_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 290, + .trainerOffset = 2, + }, +}; diff --git a/src/data/pokedex_orders.h b/src/data/pokedex_orders.h new file mode 100644 index 000000000..3577e6793 --- /dev/null +++ b/src/data/pokedex_orders.h @@ -0,0 +1,1192 @@ +static const u16 gPokedexOrder_Alphabetical[] = +{ + 387, + 388, + 389, + 390, + 391, + 392, + 393, + 394, + 395, + 396, + 397, + 398, + 399, + 400, + 401, + 402, + 403, + 404, + 405, + 406, + 407, + 408, + 409, + 410, + 411, + 63, // Abra + 359, // Absol + 142, // Aerodactyl + 306, // Aggron + 190, // Aipom + 65, // Alakazam + 334, // Altaria + 181, // Ampharos + 347, // Anorith + 24, // Arbok + 59, // Arcanine + 168, // Ariados + 348, // Armaldo + 304, // Aron + 144, // Articuno + 184, // Azumarill + 298, // Azurill + 371, // Bagon + 343, // Baltoy + 354, // Banette + 339, // Barboach + 153, // Bayleef + 267, // Beautifly + 15, // Beedrill + 374, // Beldum + 182, // Bellossom + 69, // Bellsprout + 9, // Blastoise + 257, // Blaziken + 242, // Blissey + 286, // Breloom + 1, // Bulbasaur + 12, // Butterfree + 331, // Cacnea + 332, // Cacturne + 323, // Camerupt + 318, // Carvanha + 268, // Cascoon + 351, // Castform + 10, // Caterpie + 251, // Celebi + 113, // Chansey + 6, // Charizard + 4, // Charmander + 5, // Charmeleon + 152, // Chikorita + 358, // Chimecho + 170, // Chinchou + 366, // Clamperl + 344, // Claydol + 36, // Clefable + 35, // Clefairy + 173, // Cleffa + 91, // Cloyster + 256, // Combusken + 341, // Corphish + 222, // Corsola + 346, // Cradily + 342, // Crawdaunt + 169, // Crobat + 159, // Croconaw + 104, // Cubone + 155, // Cyndaquil + 301, // Delcatty + 225, // Delibird + 386, // Deoxys + 87, // Dewgong + 50, // Diglett + 132, // Ditto + 85, // Dodrio + 84, // Doduo + 232, // Donphan + 148, // Dragonair + 149, // Dragonite + 147, // Dratini + 96, // Drowzee + 51, // Dugtrio + 206, // Dunsparce + 356, // Dusclops + 355, // Duskull + 269, // Dustox + 133, // Eevee + 23, // Ekans + 125, // Electabuzz + 309, // Electrike + 101, // Electrode + 239, // Elekid + 244, // Entei + 196, // Espeon + 102, // Exeggcute + 103, // Exeggutor + 295, // Exploud + 83, // Farfetchd + 22, // Fearow + 349, // Feebas + 160, // Feraligatr + 180, // Flaaffy + 136, // Flareon + 330, // Flygon + 205, // Forretress + 162, // Furret + 282, // Gardevoir + 92, // Gastly + 94, // Gengar + 74, // Geodude + 203, // Girafarig + 362, // Glalie + 207, // Gligar + 44, // Gloom + 42, // Golbat + 118, // Goldeen + 55, // Golduck + 76, // Golem + 368, // Gorebyss + 210, // Granbull + 75, // Graveler + 88, // Grimer + 383, // Groudon + 253, // Grovyle + 58, // Growlithe + 326, // Grumpig + 316, // Gulpin + 130, // Gyarados + 297, // Hariyama + 93, // Haunter + 214, // Heracross + 107, // Hitmonchan + 106, // Hitmonlee + 237, // Hitmontop + 250, // Ho-Oh + 163, // Hoothoot + 187, // Hoppip + 116, // Horsea + 229, // Houndoom + 228, // Houndour + 367, // Huntail + 97, // Hypno + 174, // Igglybuff + 314, // Illumise + 2, // Ivysaur + 39, // Jigglypuff + 385, // Jirachi + 135, // Jolteon + 189, // Jumpluff + 124, // Jynx + 140, // Kabuto + 141, // Kabutops + 64, // Kadabra + 14, // Kakuna + 115, // Kangaskhan + 352, // Kecleon + 230, // Kingdra + 99, // Kingler + 281, // Kirlia + 109, // Koffing + 98, // Krabby + 382, // Kyogre + 305, // Lairon + 171, // Lanturn + 131, // Lapras + 246, // Larvitar + 380, // Latias + 381, // Latios + 166, // Ledian + 165, // Ledyba + 108, // Lickitung + 345, // Lileep + 264, // Linoone + 271, // Lombre + 270, // Lotad + 294, // Loudred + 272, // Ludicolo + 249, // Lugia + 337, // Lunatone + 370, // Luvdisc + 68, // Machamp + 67, // Machoke + 66, // Machop + 240, // Magby + 219, // Magcargo + 129, // Magikarp + 126, // Magmar + 81, // Magnemite + 82, // Magneton + 296, // Makuhita + 310, // Manectric + 56, // Mankey + 226, // Mantine + 179, // Mareep + 183, // Marill + 105, // Marowak + 259, // Marshtomp + 284, // Masquerain + 303, // Mawile + 308, // Medicham + 307, // Meditite + 154, // Meganium + 52, // Meowth + 376, // Metagross + 375, // Metang + 11, // Metapod + 151, // Mew + 150, // Mewtwo + 262, // Mightyena + 350, // Milotic + 241, // Miltank + 312, // Minun + 200, // Misdreavus + 146, // Moltres + 122, // Mr. mime + 258, // Mudkip + 89, // Muk + 198, // Murkrow + 177, // Natu + 34, // Nidoking + 31, // Nidoqueen + 29, // Nidoran? + 32, // Nidoran? + 30, // Nidorina + 33, // Nidorino + 290, // Nincada + 38, // Ninetales + 291, // Ninjask + 164, // Noctowl + 299, // Nosepass + 322, // Numel + 274, // Nuzleaf + 224, // Octillery + 43, // Oddish + 138, // Omanyte + 139, // Omastar + 95, // Onix + 46, // Paras + 47, // Parasect + 279, // Pelipper + 53, // Persian + 231, // Phanpy + 172, // Pichu + 18, // Pidgeot + 17, // Pidgeotto + 16, // Pidgey + 25, // Pikachu + 221, // Piloswine + 204, // Pineco + 127, // Pinsir + 311, // Plusle + 186, // Politoed + 60, // Poliwag + 61, // Poliwhirl + 62, // Poliwrath + 77, // Ponyta + 261, // Poochyena + 137, // Porygon + 233, // Porygon2 + 57, // Primeape + 54, // Psyduck + 247, // Pupitar + 195, // Quagsire + 156, // Quilava + 211, // Qwilfish + 26, // Raichu + 243, // Raikou + 280, // Ralts + 78, // Rapidash + 20, // Raticate + 19, // Rattata + 384, // Rayquaza + 378, // Regice + 377, // Regirock + 379, // Registeel + 369, // Relicanth + 223, // Remoraid + 112, // Rhydon + 111, // Rhyhorn + 315, // Roselia + 302, // Sableye + 373, // Salamence + 27, // Sandshrew + 28, // Sandslash + 254, // Sceptile + 212, // Scizor + 123, // Scyther + 117, // Seadra + 119, // Seaking + 364, // Sealeo + 273, // Seedot + 86, // Seel + 161, // Sentret + 336, // Seviper + 319, // Sharpedo + 292, // Shedinja + 372, // Shelgon + 90, // Shellder + 275, // Shiftry + 285, // Shroomish + 213, // Shuckle + 353, // Shuppet + 266, // Silcoon + 227, // Skarmory + 188, // Skiploom + 300, // Skitty + 289, // Slaking + 287, // Slakoth + 80, // Slowbro + 199, // Slowking + 79, // Slowpoke + 218, // Slugma + 235, // Smeargle + 238, // Smoochum + 215, // Sneasel + 143, // Snorlax + 361, // Snorunt + 209, // Snubbull + 338, // Solrock + 21, // Spearow + 363, // Spheal + 167, // Spinarak + 327, // Spinda + 325, // Spoink + 7, // Squirtle + 234, // Stantler + 121, // Starmie + 120, // Staryu + 208, // Steelix + 185, // Sudowoodo + 245, // Suicune + 192, // Sunflora + 191, // Sunkern + 283, // Surskit + 333, // Swablu + 317, // Swalot + 260, // Swampert + 277, // Swellow + 220, // Swinub + 276, // Taillow + 114, // Tangela + 128, // Tauros + 216, // Teddiursa + 72, // Tentacool + 73, // Tentacruel + 175, // Togepi + 176, // Togetic + 255, // Torchic + 324, // Torkoal + 158, // Totodile + 328, // Trapinch + 252, // Treecko + 357, // Tropius + 157, // Typhlosion + 248, // Tyranitar + 236, // Tyrogue + 197, // Umbreon + 201, // Unown + 217, // Ursaring + 134, // Vaporeon + 49, // Venomoth + 48, // Venonat + 3, // Venusaur + 329, // Vibrava + 71, // Victreebel + 288, // Vigoroth + 45, // Vileplume + 313, // Volbeat + 100, // Voltorb + 37, // Vulpix + 320, // Wailmer + 321, // Wailord + 365, // Walrein + 8, // Wartortle + 13, // Weedle + 70, // Weepinbell + 110, // Weezing + 340, // Whiscash + 293, // Whismur + 40, // Wigglytuff + 278, // Wingull + 202, // Wobbuffet + 194, // Wooper + 265, // Wurmple + 360, // Wynaut + 178, // Xatu + 193, // Yanma + 335, // Zangoose + 145, // Zapdos + 263, // Zigzagoon + 41, // Zubat +}; +static const u16 gPokedexOrder_Weight[] = +{ + 92, // Gastly + 93, // Haunter + 187, // Hoppip + 50, // Diglett + 351, // Castform + 109, // Koffing + 174, // Igglybuff + 200, // Misdreavus + 358, // Chimecho + 188, // Skiploom + 385, // Jirachi + 333, // Swablu + 292, // Shedinja + 175, // Togepi + 283, // Surskit + 16, // Pidgey + 191, // Sunkern + 339, // Barboach + 172, // Pichu + 298, // Azurill + 315, // Roselia + 177, // Natu + 21, // Spearow + 198, // Murkrow + 353, // Shuppet + 276, // Taillow + 102, // Exeggcute + 255, // Torchic + 270, // Lotad + 10, // Caterpie + 189, // Jumpluff + 173, // Cleffa + 13, // Weedle + 176, // Togetic + 147, // Dratini + 19, // Rattata + 284, // Masquerain + 265, // Wurmple + 211, // Qwilfish + 151, // Mew + 90, // Shellder + 273, // Seedot + 132, // Ditto + 69, // Bellsprout + 311, // Plusle + 52, // Meowth + 312, // Minun + 285, // Shroomish + 251, // Celebi + 222, // Corsola + 252, // Treecko + 327, // Spinda + 201, // Unown + 46, // Paras + 43, // Oddish + 39, // Jigglypuff + 290, // Nincada + 182, // Bellossom + 81, // Magnemite + 25, // Pikachu + 238, // Smoochum + 161, // Sentret + 70, // Weepinbell + 152, // Chikorita + 220, // Swinub + 133, // Eevee + 98, // Krabby + 104, // Cubone + 280, // Ralts + 1, // Bulbasaur + 23, // Ekans + 29, // Nidoran? + 204, // Pineco + 349, // Feebas + 138, // Omanyte + 41, // Zubat + 35, // Clefairy + 258, // Mudkip + 209, // Snubbull + 179, // Mareep + 155, // Cyndaquil + 116, // Horsea + 4, // Charmander + 192, // Sunflora + 183, // Marill + 194, // Wooper + 167, // Spinarak + 44, // Gloom + 370, // Luvdisc + 216, // Teddiursa + 32, // Nidoran? + 7, // Squirtle + 278, // Wingull + 158, // Totodile + 110, // Weezing + 37, // Vulpix + 11, // Metapod + 266, // Silcoon + 129, // Magikarp + 14, // Kakuna + 316, // Gulpin + 100, // Voltorb + 165, // Ledyba + 228, // Houndour + 300, // Skitty + 302, // Sableye + 307, // Meditite + 341, // Corphish + 190, // Aipom + 268, // Cascoon + 303, // Mawile + 140, // Kabuto + 40, // Wigglytuff + 27, // Sandshrew + 223, // Remoraid + 291, // Ninjask + 170, // Chinchou + 60, // Poliwag + 347, // Anorith + 49, // Venomoth + 354, // Banette + 2, // Ivysaur + 180, // Flaaffy + 261, // Poochyena + 360, // Wynaut + 206, // Dunsparce + 178, // Xatu + 355, // Duskull + 83, // Farfetchd + 328, // Trapinch + 118, // Goldeen + 309, // Electrike + 329, // Vibrava + 71, // Victreebel + 153, // Bayleef + 225, // Delibird + 293, // Whismur + 148, // Dragonair + 361, // Snorunt + 263, // Zigzagoon + 314, // Illumise + 313, // Volbeat + 20, // Raticate + 45, // Vileplume + 156, // Quilava + 5, // Charmeleon + 58, // Growlithe + 256, // Combusken + 66, // Machop + 63, // Abra + 33, // Nidorino + 54, // Psyduck + 277, // Swellow + 38, // Ninetales + 30, // Nidorina + 61, // Poliwhirl + 74, // Geodude + 281, // Kirlia + 213, // Shuckle + 334, // Altaria + 318, // Carvanha + 236, // Tyrogue + 163, // Hoothoot + 240, // Magby + 343, // Baltoy + 253, // Grovyle + 352, // Kecleon + 171, // Lanturn + 8, // Wartortle + 368, // Gorebyss + 369, // Relicanth + 239, // Elekid + 340, // Whiscash + 345, // Lileep + 322, // Numel + 287, // Slakoth + 135, // Jolteon + 159, // Croconaw + 136, // Flareon + 117, // Seadra + 196, // Espeon + 367, // Huntail + 197, // Umbreon + 259, // Marshtomp + 274, // Nuzleaf + 215, // Sneasel + 56, // Mankey + 279, // Pelipper + 267, // Beautifly + 224, // Octillery + 184, // Azumarill + 202, // Wobbuffet + 134, // Vaporeon + 28, // Sandslash + 47, // Parasect + 15, // Beedrill + 89, // Muk + 17, // Pidgeotto + 88, // Grimer + 26, // Raichu + 77, // Ponyta + 125, // Electabuzz + 48, // Venonat + 325, // Spoink + 356, // Dusclops + 308, // Medicham + 269, // Dustox + 53, // Persian + 12, // Butterfree + 57, // Primeape + 96, // Drowzee + 162, // Furret + 233, // Porygon2 + 271, // Lombre + 264, // Linoone + 301, // Delcatty + 342, // Crawdaunt + 51, // Dugtrio + 168, // Ariados + 231, // Phanpy + 186, // Politoed + 120, // Staryu + 113, // Chansey + 139, // Omastar + 114, // Tangela + 218, // Slugma + 229, // Houndoom + 166, // Ledian + 79, // Slowpoke + 137, // Porygon + 262, // Mightyena + 193, // Yanma + 22, // Fearow + 185, // Sudowoodo + 119, // Seaking + 286, // Breloom + 84, // Doduo + 18, // Pidgeot + 363, // Spheal + 36, // Clefable + 380, // Latias + 310, // Manectric + 335, // Zangoose + 141, // Kabutops + 94, // Gengar + 294, // Loudred + 124, // Jynx + 164, // Noctowl + 203, // Girafarig + 371, // Bagon + 126, // Magmar + 105, // Marowak + 72, // Tentacool + 288, // Vigoroth + 242, // Blissey + 359, // Absol + 65, // Alakazam + 237, // Hitmontop + 282, // Gardevoir + 210, // Granbull + 106, // Hitmonlee + 107, // Hitmonchan + 227, // Skarmory + 331, // Cacnea + 257, // Blaziken + 254, // Sceptile + 336, // Seviper + 366, // Clamperl + 145, // Zapdos + 214, // Heracross + 62, // Poliwrath + 122, // Mr. mime + 127, // Pinsir + 272, // Ludicolo + 73, // Tentacruel + 42, // Golbat + 219, // Magcargo + 144, // Articuno + 221, // Piloswine + 123, // Scyther + 64, // Kadabra + 235, // Smeargle + 142, // Aerodactyl + 275, // Shiftry + 99, // Kingler + 31, // Nidoqueen + 82, // Magneton + 304, // Aron + 381, // Latios + 146, // Moltres + 346, // Cradily + 386, // Deoxys + 181, // Ampharos + 34, // Nidoking + 207, // Gligar + 24, // Arbok + 108, // Lickitung + 101, // Electrode + 348, // Armaldo + 67, // Machoke + 234, // Stantler + 326, // Grumpig + 246, // Larvitar + 169, // Crobat + 195, // Quagsire + 241, // Miltank + 97, // Hypno + 55, // Golduck + 332, // Cacturne + 80, // Slowbro + 157, // Typhlosion + 199, // Slowking + 115, // Kangaskhan + 121, // Starmie + 317, // Swalot + 324, // Torkoal + 260, // Swampert + 330, // Flygon + 295, // Exploud + 85, // Dodrio + 9, // Blastoise + 296, // Makuhita + 364, // Sealeo + 128, // Tauros + 319, // Sharpedo + 160, // Feraligatr + 86, // Seel + 6, // Charizard + 78, // Rapidash + 374, // Beldum + 299, // Nosepass + 3, // Venusaur + 357, // Tropius + 154, // Meganium + 373, // Salamence + 75, // Graveler + 344, // Claydol + 372, // Shelgon + 111, // Rhyhorn + 212, // Scizor + 87, // Dewgong + 112, // Rhydon + 232, // Donphan + 103, // Exeggutor + 305, // Lairon + 150, // Mewtwo + 217, // Ursaring + 205, // Forretress + 68, // Machamp + 320, // Wailmer + 289, // Slaking + 91, // Cloyster + 365, // Walrein + 247, // Pupitar + 230, // Kingdra + 338, // Solrock + 59, // Arcanine + 350, // Milotic + 337, // Lunatone + 378, // Regice + 243, // Raikou + 245, // Suicune + 244, // Entei + 250, // Ho-Oh + 248, // Tyranitar + 375, // Metang + 379, // Registeel + 384, // Rayquaza + 95, // Onix + 149, // Dragonite + 249, // Lugia + 131, // Lapras + 323, // Camerupt + 226, // Mantine + 377, // Regirock + 130, // Gyarados + 297, // Hariyama + 362, // Glalie + 76, // Golem + 382, // Kyogre + 306, // Aggron + 321, // Wailord + 208, // Steelix + 143, // Snorlax + 376, // Metagross + 383, // Groudon +}; +static const u16 gPokedexOrder_Height[] = +{ + 50, // Diglett + 298, // Azurill + 177, // Natu + 13, // Weedle + 172, // Pichu + 173, // Cleffa + 175, // Togepi + 351, // Castform + 174, // Igglybuff + 10, // Caterpie + 276, // Taillow + 132, // Ditto + 133, // Eevee + 315, // Roselia + 21, // Spearow + 16, // Pidgey + 191, // Sunkern + 90, // Shellder + 19, // Rattata + 81, // Magnemite + 46, // Paras + 265, // Wurmple + 385, // Jirachi + 104, // Cubone + 258, // Mudkip + 194, // Wooper + 116, // Horsea + 52, // Meowth + 29, // Nidoran? + 220, // Swinub + 151, // Mew + 333, // Swablu + 304, // Aron + 311, // Plusle + 312, // Minun + 102, // Exeggcute + 25, // Pikachu + 182, // Bellossom + 316, // Gulpin + 263, // Zigzagoon + 285, // Shroomish + 138, // Omanyte + 331, // Cacnea + 98, // Krabby + 280, // Ralts + 187, // Hoppip + 255, // Torchic + 366, // Clamperl + 74, // Geodude + 183, // Marill + 339, // Barboach + 238, // Smoochum + 100, // Voltorb + 290, // Nincada + 302, // Sableye + 198, // Murkrow + 211, // Qwilfish + 7, // Squirtle + 252, // Treecko + 343, // Baltoy + 43, // Oddish + 270, // Lotad + 39, // Jigglypuff + 283, // Surskit + 155, // Cyndaquil + 140, // Kabuto + 264, // Linoone + 324, // Torkoal + 32, // Nidoran? + 167, // Spinarak + 56, // Mankey + 273, // Seedot + 261, // Poochyena + 231, // Phanpy + 201, // Unown + 170, // Chinchou + 233, // Porygon2 + 60, // Poliwag + 371, // Bagon + 349, // Feebas + 353, // Shuppet + 158, // Totodile + 251, // Celebi + 360, // Wynaut + 27, // Sandshrew + 358, // Chimecho + 370, // Luvdisc + 228, // Houndour + 266, // Silcoon + 309, // Electrike + 4, // Charmander + 307, // Meditite + 278, // Wingull + 223, // Remoraid + 341, // Corphish + 222, // Corsola + 314, // Illumise + 209, // Snubbull + 37, // Vulpix + 246, // Larvitar + 374, // Beldum + 293, // Whismur + 204, // Pineco + 239, // Elekid + 35, // Clefairy + 213, // Shuckle + 216, // Teddiursa + 14, // Kakuna + 300, // Skitty + 176, // Togetic + 118, // Goldeen + 303, // Mawile + 179, // Mareep + 188, // Skiploom + 109, // Koffing + 51, // Dugtrio + 268, // Cascoon + 322, // Numel + 347, // Anorith + 313, // Volbeat + 163, // Hoothoot + 328, // Trapinch + 325, // Spoink + 11, // Metapod + 69, // Bellsprout + 361, // Snorunt + 20, // Raticate + 259, // Marshtomp + 277, // Swellow + 240, // Magby + 58, // Growlithe + 200, // Misdreavus + 1, // Bulbasaur + 236, // Tyrogue + 218, // Slugma + 287, // Slakoth + 281, // Kirlia + 190, // Aipom + 135, // Jolteon + 30, // Nidorina + 184, // Azumarill + 292, // Shedinja + 66, // Machop + 291, // Ninjask + 284, // Masquerain + 355, // Duskull + 192, // Sunflora + 189, // Jumpluff + 120, // Staryu + 180, // Flaaffy + 363, // Spheal + 54, // Psyduck + 219, // Magcargo + 83, // Farfetchd + 41, // Zubat + 137, // Porygon + 161, // Sentret + 318, // Carvanha + 44, // Gloom + 26, // Raichu + 129, // Magikarp + 215, // Sneasel + 305, // Lairon + 256, // Combusken + 224, // Octillery + 33, // Nidorino + 136, // Flareon + 225, // Delibird + 72, // Tentacool + 63, // Abra + 253, // Grovyle + 340, // Whiscash + 156, // Quilava + 196, // Espeon + 88, // Grimer + 152, // Chikorita + 326, // Grumpig + 299, // Nosepass + 53, // Persian + 262, // Mightyena + 48, // Venonat + 82, // Magneton + 77, // Ponyta + 296, // Makuhita + 337, // Lunatone + 28, // Sandslash + 96, // Drowzee + 114, // Tangela + 57, // Primeape + 165, // Ledyba + 40, // Wigglytuff + 47, // Parasect + 139, // Omastar + 294, // Loudred + 8, // Wartortle + 75, // Graveler + 197, // Umbreon + 345, // Lileep + 61, // Poliwhirl + 134, // Vaporeon + 15, // Beedrill + 105, // Marowak + 70, // Weepinbell + 369, // Relicanth + 111, // Rhyhorn + 2, // Ivysaur + 352, // Kecleon + 274, // Nuzleaf + 267, // Beautifly + 17, // Pidgeotto + 168, // Ariados + 86, // Seel + 186, // Politoed + 159, // Croconaw + 113, // Chansey + 354, // Banette + 232, // Donphan + 121, // Starmie + 5, // Charmeleon + 221, // Piloswine + 12, // Butterfree + 329, // Vibrava + 125, // Electabuzz + 342, // Crawdaunt + 301, // Delcatty + 334, // Altaria + 372, // Shelgon + 38, // Ninetales + 207, // Gligar + 364, // Sealeo + 327, // Spinda + 247, // Pupitar + 79, // Slowpoke + 338, // Solrock + 241, // Miltank + 22, // Fearow + 45, // Vileplume + 89, // Muk + 205, // Forretress + 185, // Sudowoodo + 359, // Absol + 193, // Yanma + 269, // Dustox + 108, // Lickitung + 235, // Smeargle + 171, // Lanturn + 101, // Electrode + 271, // Lombre + 286, // Breloom + 153, // Bayleef + 117, // Seadra + 110, // Weezing + 279, // Pelipper + 375, // Metang + 31, // Nidoqueen + 332, // Cacturne + 275, // Shiftry + 308, // Medicham + 335, // Zangoose + 141, // Kabutops + 99, // Kingler + 64, // Kadabra + 119, // Seaking + 36, // Clefable + 126, // Magmar + 202, // Wobbuffet + 92, // Gastly + 122, // Mr. mime + 62, // Poliwrath + 128, // Tauros + 380, // Latias + 181, // Ampharos + 288, // Vigoroth + 166, // Ledian + 76, // Golem + 365, // Walrein + 84, // Doduo + 229, // Houndoom + 34, // Nidoking + 124, // Jynx + 107, // Hitmonchan + 234, // Stantler + 210, // Granbull + 237, // Hitmontop + 195, // Quagsire + 344, // Claydol + 260, // Swampert + 242, // Blissey + 272, // Ludicolo + 295, // Exploud + 206, // Dunsparce + 127, // Pinsir + 91, // Cloyster + 67, // Machoke + 203, // Girafarig + 18, // Pidgeot + 178, // Xatu + 346, // Cradily + 106, // Hitmonlee + 49, // Venomoth + 94, // Gengar + 214, // Heracross + 362, // Glalie + 123, // Scyther + 373, // Salamence + 310, // Manectric + 348, // Armaldo + 65, // Alakazam + 97, // Hypno + 164, // Noctowl + 73, // Tentacruel + 356, // Dusclops + 145, // Zapdos + 42, // Golbat + 376, // Metagross + 282, // Gardevoir + 9, // Blastoise + 80, // Slowbro + 93, // Haunter + 68, // Machamp + 377, // Regirock + 317, // Swalot + 254, // Sceptile + 227, // Skarmory + 55, // Golduck + 386, // Deoxys + 71, // Victreebel + 78, // Rapidash + 6, // Charizard + 367, // Huntail + 87, // Dewgong + 144, // Articuno + 157, // Typhlosion + 142, // Aerodactyl + 368, // Gorebyss + 217, // Ursaring + 154, // Meganium + 378, // Regice + 212, // Scizor + 230, // Kingdra + 147, // Dratini + 85, // Dodrio + 319, // Sharpedo + 169, // Crobat + 162, // Furret + 59, // Arcanine + 243, // Raikou + 257, // Blaziken + 323, // Camerupt + 112, // Rhydon + 379, // Registeel + 23, // Ekans + 330, // Flygon + 357, // Tropius + 381, // Latios + 245, // Suicune + 146, // Moltres + 3, // Venusaur + 103, // Exeggutor + 199, // Slowking + 248, // Tyranitar + 289, // Slaking + 320, // Wailmer + 150, // Mewtwo + 306, // Aggron + 143, // Snorlax + 226, // Mantine + 244, // Entei + 149, // Dragonite + 115, // Kangaskhan + 297, // Hariyama + 160, // Feraligatr + 131, // Lapras + 336, // Seviper + 24, // Arbok + 383, // Groudon + 250, // Ho-Oh + 148, // Dragonair + 382, // Kyogre + 249, // Lugia + 350, // Milotic + 130, // Gyarados + 384, // Rayquaza + 95, // Onix + 208, // Steelix + 321, // Wailord +}; diff --git a/src/daycare.c b/src/daycare.c index 92be45cfa..cded18207 100644..100755 --- a/src/daycare.c +++ b/src/daycare.c @@ -1,7 +1,9 @@ #include "global.h" +#include "daycare.h" #include "pokemon.h" +#include "species.h" +#include "items.h" #include "string_util.h" -#include "asm.h" extern u8 gLastFieldPokeMenuOpened; @@ -33,70 +35,30 @@ u8 Daycare_CountPokemon(struct BoxPokemon *daycare_data) return count; } -#ifndef ASDF -__attribute__((naked)) -void sub_8041324(struct BoxPokemon * box_pokemon, void * void_pointer) +void sub_8041324(struct BoxPokemon * box_pokemon, struct RecordMixing_UnknownStruct * void_pointer) { - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - mov r9, r0\n\ - mov r10, r1\n\ - movs r7, 0\n\ - movs r5, 0\n\ - mov r6, r10\n\ - adds r6, 0x74\n\ - movs r0, 0x1\n\ - mov r8, r0\n\ -_0804133E:\n\ - lsls r0, r5, 2\n\ - adds r0, r5\n\ - lsls r0, 4\n\ - mov r1, r9\n\ - adds r4, r1, r0\n\ - adds r0, r4, 0\n\ - movs r1, 0xB\n\ - bl GetBoxMonData\n\ - cmp r0, 0\n\ - beq _0804136E\n\ - adds r0, r7, 0x1\n\ - lsls r0, 24\n\ - lsrs r7, r0, 24\n\ - adds r0, r4, 0\n\ - movs r1, 0xC\n\ - bl GetBoxMonData\n\ - adds r1, r0, 0\n\ - cmp r1, 0\n\ - bne _0804136E\n\ - lsls r0, r5, 1\n\ - adds r0, r6, r0\n\ - b _08041374\n\ -_0804136E:\n\ - lsls r0, r5, 1\n\ - adds r0, r6, r0\n\ - mov r1, r8\n\ -_08041374:\n\ - strh r1, [r0]\n\ - adds r0, r5, 0x1\n\ - lsls r0, 24\n\ - lsrs r5, r0, 24\n\ - cmp r5, 0x1\n\ - bls _0804133E\n\ - mov r0, r10\n\ - str r7, [r0, 0x70]\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .syntax divided\n"); + u8 i; + u8 specCount; + specCount = 0; + for (i=0; i<2; i++) + { + if (GetBoxMonData(&box_pokemon[i], MON_DATA_SPECIES) != SPECIES_NONE) + { + specCount ++; + if (GetBoxMonData(&box_pokemon[i], MON_DATA_HELD_ITEM) == ITEM_NONE) + { + void_pointer->unk74[i] = 0; + } else + { + void_pointer->unk74[i] = 1; + } + } else + { + void_pointer->unk74[i] = 1; + } + } + void_pointer->unk70 = specCount; } -#endif s8 Daycare_FindEmptySpot(struct BoxPokemon * daycare_data) { diff --git a/src/decompress.c b/src/decompress.c index 37aa1e8d5..d7f7087a7 100644 --- a/src/decompress.c +++ b/src/decompress.c @@ -1,6 +1,5 @@ #include "global.h" #include "decompress.h" -#include "asm.h" #include "data2.h" #include "species.h" #include "text.h" @@ -17,57 +16,57 @@ void LZDecompressVram(const void *src, void *dest) LZ77UnCompVram(src, dest); } -void LoadCompressedObjectPic(const struct SpriteSheet *a) +void LoadCompressedObjectPic(const struct CompressedSpriteSheet *src) { - struct SpriteSheet spriteSheet; + struct SpriteSheet dest; - LZ77UnCompWram(a->data, (void *)WRAM); - spriteSheet.data = (void *)WRAM; - spriteSheet.size = a->size; - spriteSheet.tag = a->tag; - LoadSpriteSheet(&spriteSheet); + LZ77UnCompWram(src->data, (void *)WRAM); + dest.data = (void *)WRAM; + dest.size = src->size; + dest.tag = src->tag; + LoadSpriteSheet(&dest); } -void LoadCompressedObjectPicOverrideBuffer(const struct SpriteSheet *a, void *buffer) +void LoadCompressedObjectPicOverrideBuffer(const struct CompressedSpriteSheet *src, void *buffer) { - struct SpriteSheet spriteSheet; + struct SpriteSheet dest; - LZ77UnCompWram(a->data, buffer); - spriteSheet.data = buffer; - spriteSheet.size = a->size; - spriteSheet.tag = a->tag; - LoadSpriteSheet(&spriteSheet); + LZ77UnCompWram(src->data, buffer); + dest.data = buffer; + dest.size = src->size; + dest.tag = src->tag; + LoadSpriteSheet(&dest); } -void LoadCompressedObjectPalette(const struct SpritePalette *a) +void LoadCompressedObjectPalette(const struct CompressedSpritePalette *src) { - struct SpritePalette spritePalette; + struct SpritePalette dest; - LZ77UnCompWram(a->data, (void *)WRAM); - spritePalette.data = (void *)WRAM; - spritePalette.tag = a->tag; - LoadSpritePalette(&spritePalette); + LZ77UnCompWram(src->data, (void *)WRAM); + dest.data = (void *)WRAM; + dest.tag = src->tag; + LoadSpritePalette(&dest); } -void LoadCompressedObjectPaletteOverrideBuffer(const struct SpritePalette *a, void *buffer) +void LoadCompressedObjectPaletteOverrideBuffer(const struct CompressedSpritePalette *a, void *buffer) { - struct SpritePalette spritePalette; + struct SpritePalette dest; LZ77UnCompWram(a->data, buffer); - spritePalette.data = buffer; - spritePalette.tag = a->tag; - LoadSpritePalette(&spritePalette); + dest.data = buffer; + dest.tag = a->tag; + LoadSpritePalette(&dest); } -void DecompressPicFromTable_2(const struct SpriteSheet *a, u8 b, u8 c, void *d, void *e, s32 species) +void DecompressPicFromTable_2(const struct CompressedSpriteSheet *src, u8 b, u8 c, void *d, void *buffer, s32 species) { if (species > SPECIES_EGG) - LZ77UnCompWram(gMonFrontPicTable[0].data, e); + LZ77UnCompWram(gMonFrontPicTable[0].data, buffer); else - LZ77UnCompWram(a->data, e); + LZ77UnCompWram(src->data, buffer); } -void HandleLoadSpecialPokePic(const struct SpriteSheet *spriteSheet, u32 b, u32 c, u32 d, void *dest, s32 species, u32 g) +void HandleLoadSpecialPokePic(const struct CompressedSpriteSheet *src, u32 b, u32 c, u32 d, void *dest, s32 species, u32 g) { u32 frontOrBack; @@ -77,10 +76,10 @@ void HandleLoadSpecialPokePic(const struct SpriteSheet *spriteSheet, u32 b, u32 else frontOrBack = 1; // frontPic - LoadSpecialPokePic(spriteSheet, b, c, d, dest, species, g, frontOrBack); + LoadSpecialPokePic(src, b, c, d, dest, species, g, frontOrBack); } -void LoadSpecialPokePic(const struct SpriteSheet *spriteSheet, u32 b, u32 c, u32 d, void *dest, s32 species, u32 g, u32 frontOrBack) +void LoadSpecialPokePic(const struct CompressedSpriteSheet *src, u32 b, u32 c, u32 d, void *dest, s32 species, u32 g, u32 frontOrBack) { u8 frontOrBack8 = frontOrBack; @@ -102,7 +101,7 @@ void LoadSpecialPokePic(const struct SpriteSheet *spriteSheet, u32 b, u32 c, u32 else if (species > SPECIES_EGG) // is species unknown? draw the ? icon LZ77UnCompWram(gMonFrontPicTable[0].data, dest); else - LZ77UnCompWram(spriteSheet->data, dest); + LZ77UnCompWram(src->data, dest); DrawSpindaSpots(species, g, dest, frontOrBack8); } diff --git a/src/decoration.c b/src/decoration.c index 279a7568b..a60870ab8 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -1,23 +1,1787 @@ #include "global.h" -#include "asm.h" +#include "main.h" +#include "map_object_constants.h" +#include "rom4.h" +#include "sound.h" +#include "songs.h" +#include "string_util.h" #include "menu.h" +#include "menu_helpers.h" +#include "strings.h" +#include "script.h" +#include "palette.h" +#include "field_player_avatar.h" +#include "field_camera.h" +#include "field_fadetransition.h" +#include "fieldmap.h" +#include "metatile_behavior.h" +#include "event_data.h" +#include "field_weather.h" +#include "decoration.h" -extern u8 gUnknown_020388F2; -extern u8 gUnknown_020388F3; -extern u8 gUnknown_020388F4; -extern u8 gUnknown_020388F6; -extern u8 gUnknown_020388D5; +const u8 DecorDesc_SMALL_DESK[] = _( + "A small desk built\n" + "for one."); -void sub_80FEC94(u8 arg0); -void sub_80FECB8(u8 arg0); -void sub_80FECE0(u8 arg0); +const u8 DecorDesc_POKEMON_DESK[] = _( + "A small desk built in\n" + "the shape of a POKé\n" + "BALL."); -void sub_80FE7EC(u8 arg0) +const u8 DecorDesc_HEAVY_DESK[] = _( + "A large desk made\n" + "of steel. Put some\n" + "decorations on it."); + +const u8 DecorDesc_RAGGED_DESK[] = _( + "A large desk made\n" + "of wood. Put some\n" + "decorations on it."); + +const u8 DecorDesc_COMFORT_DESK[] = _( + "A large desk made\n" + "of leaves. Put some\n" + "decorations on it."); + +const u8 DecorDesc_PRETTY_DESK[] = _( + "A huge desk made\n" + "of glass. Holds lots\n" + "of decorations."); + +const u8 DecorDesc_BRICK_DESK[] = _( + "A huge desk made\n" + "of brick. Holds lots\n" + "of decorations."); + +const u8 DecorDesc_CAMP_DESK[] = _( + "A huge desk made\n" + "of logs. Put lots of\n" + "decorations on it."); + +const u8 DecorDesc_HARD_DESK[] = _( + "A huge desk made\n" + "of rocks. Holds\n" + "many decorations."); + +const u8 DecorDesc_SMALL_CHAIR[] = _( + "A small chair made\n" + "for one."); + +const u8 DecorDesc_POKEMON_CHAIR[] = _( + "A small chair built\n" + "in the shape of a\n" + "POKé BALL."); + +const u8 DecorDesc_HEAVY_CHAIR[] = _( + "A small chair made\n" + "of steel."); + +const u8 DecorDesc_PRETTY_CHAIR[] = _( + "A small chair made\n" + "of glass."); + +const u8 DecorDesc_COMFORT_CHAIR[] = _( + "A small chair made\n" + "of leaves."); + +const u8 DecorDesc_RAGGED_CHAIR[] = _( + "A small chair made\n" + "of wood."); + +const u8 DecorDesc_BRICK_CHAIR[] = _( + "A small chair made\n" + "of brick."); + +const u8 DecorDesc_CAMP_CHAIR[] = _( + "A small chair made\n" + "of logs."); + +const u8 DecorDesc_HARD_CHAIR[] = _( + "A small chair made\n" + "of rock."); + +const u8 DecorDesc_RED_PLANT[] = _( + "A vivid red potted\n" + "plant."); + +const u8 DecorDesc_TROPICAL_PLANT[] = _( + "A flowering tropical\n" + "plant in a pot."); + +const u8 DecorDesc_PRETTY_FLOWERS[] = _( + "A pot of cute\n" + "flowers."); + +const u8 DecorDesc_COLORFUL_PLANT[] = _( + "A large pot with\n" + "many colorful\n" + "flowers."); + +const u8 DecorDesc_BIG_PLANT[] = _( + "A large, umbrella-\n" + "shaped plant in a\n" + "big pot."); + +const u8 DecorDesc_GORGEOUS_PLANT[] = _( + "A large, impressive\n" + "plant in a big pot."); + +const u8 DecorDesc_RED_BRICK[] = _( + "A red-colored brick.\n" + "Decorations can be\n" + "placed on top."); + +const u8 DecorDesc_YELLOW_BRICK[] = _( + "A yellow-colored\n" + "brick. Put some\n" + "decorations on top."); + +const u8 DecorDesc_BLUE_BRICK[] = _( + "A blue-colored\n" + "brick. Put some\n" + "decorations on top."); + +const u8 DecorDesc_RED_BALLOON[] = _( + "A red balloon filled\n" + "with water. Bursts\n" + "if stepped on."); + +const u8 DecorDesc_BLUE_BALLOON[] = _( + "A blue balloon filled\n" + "with water. Bursts\n" + "if stepped on."); + +const u8 DecorDesc_YELLOW_BALLOON[] = _( + "A yellow balloon\n" + "filled with water.\n" + "Pops if stepped on."); + +const u8 DecorDesc_RED_TENT[] = _( + "A large red tent.\n" + "You can hide inside\n" + "it."); + +const u8 DecorDesc_BLUE_TENT[] = _( + "A large blue tent.\n" + "You can hide inside\n" + "it."); + +const u8 DecorDesc_SOLID_BOARD[] = _( + "Place over a hole to\n" + "cross to the other\n" + "side."); + +const u8 DecorDesc_SLIDE[] = _( + "Use to slide down\n" + "from the platform."); + +const u8 DecorDesc_FENCE_LENGTH[] = _( + "A small fence that\n" + "blocks passage."); + +const u8 DecorDesc_FENCE_WIDTH[] = _( + "A small fence that\n" + "blocks passage."); + +const u8 DecorDesc_TIRE[] = _( + "An old large tire.\n" + "Decorations can be\n" + "placed on top."); + +const u8 DecorDesc_STAND[] = _( + "A large pedestal\n" + "with steps."); + +const u8 DecorDesc_MUD_BALL[] = _( + "A large ball of mud.\n" + "Crumbles if stepped\n" + "on."); + +const u8 DecorDesc_BREAKABLE_DOOR[] = _( + "A weird door that\n" + "people can walk\n" + "right through."); + +const u8 DecorDesc_SAND_ORNAMENT[] = _( + "An ornament made\n" + "of sand. Crumbles if\n" + "touched."); + +const u8 DecorDesc_SILVER_SHIELD[] = _( + "Awarded for 50\n" + "straight wins at\n" + "the BATTLE TOWER."); + +const u8 DecorDesc_GOLD_SHIELD[] = _( + "Awarded for 100\n" + "straight wins at\n" + "the BATTLE TOWER."); + +const u8 DecorDesc_GLASS_ORNAMENT[] = _( + "A glass replica of\n" + "a famous sculpture\n" + "at the ART MUSEUM."); + +const u8 DecorDesc_TV[] = _( + "A small, gray-\n" + "colored toy TV."); + +const u8 DecorDesc_ROUND_TV[] = _( + "A toy TV modeled\n" + "in the image of a\n" + "SEEDOT."); + +const u8 DecorDesc_CUTE_TV[] = _( + "A toy TV modeled\n" + "in the image of a\n" + "SKITTY."); + +const u8 DecorDesc_GLITTER_MAT[] = _( + "An odd mat that\n" + "glitters if stepped\n" + "on."); + +const u8 DecorDesc_JUMP_MAT[] = _( + "A trick mat that\n" + "jumps when it is\n" + "stepped on."); + +const u8 DecorDesc_SPIN_MAT[] = _( + "A trick mat that\n" + "spins around when\n" + "stepped on."); + +const u8 DecorDesc_C_LOW_NOTE_MAT[] = _( + "A mat that plays\n" + "a low C note when\n" + "stepped on."); + +const u8 DecorDesc_D_NOTE_MAT[] = _( + "A mat that plays\n" + "a D note when\n" + "stepped on."); + +const u8 DecorDesc_E_NOTE_MAT[] = _( + "A mat that plays\n" + "an E note when\n" + "stepped on."); + +const u8 DecorDesc_F_NOTE_MAT[] = _( + "A mat that plays\n" + "an F note when\n" + "stepped on."); + +const u8 DecorDesc_G_NOTE_MAT[] = _( + "A mat that plays\n" + "a G note when\n" + "stepped on."); + +const u8 DecorDesc_A_NOTE_MAT[] = _( + "A mat that plays\n" + "an A note when\n" + "stepped on."); + +const u8 DecorDesc_B_NOTE_MAT[] = _( + "A mat that plays\n" + "a B note when\n" + "stepped on."); + +const u8 DecorDesc_C_HIGH_NOTE_MAT[] = _( + "A mat that plays\n" + "a high C note when\n" + "stepped on."); + +const u8 DecorDesc_SURF_MAT[] = _( + "A mat designed with\n" + "a SURF image.\n" + "Put items on top."); + +const u8 DecorDesc_THUNDER_MAT[] = _( + "A mat designed with\n" + "a THUNDER image.\n" + "Put items on top."); + +const u8 DecorDesc_FIRE_BLAST_MAT[] = _( + "A mat designed with\n" + "a FIRE BLAST image.\n" + "Put items on top."); + +const u8 DecorDesc_POWDER_SNOW_MAT[] = _( + "A mat with a POWDER\n" + "SNOW image design.\n" + "Put items on top."); + +const u8 DecorDesc_ATTRACT_MAT[] = _( + "A mat designed with\n" + "an ATTRACT image.\n" + "Put items on top."); + +const u8 DecorDesc_FISSURE_MAT[] = _( + "A mat designed with\n" + "a FISSURE image.\n" + "Put items on top."); + +const u8 DecorDesc_SPIKES_MAT[] = _( + "A mat designed with\n" + "a SPIKES image.\n" + "Put items on top."); + +const u8 DecorDesc_BALL_POSTER[] = _( + "A small poster\n" + "printed with POKé\n" + "BALLS."); + +const u8 DecorDesc_GREEN_POSTER[] = _( + "A small poster with\n" + "a TREECKO print."); + +const u8 DecorDesc_RED_POSTER[] = _( + "A small poster with\n" + "a TORCHIC print."); + +const u8 DecorDesc_BLUE_POSTER[] = _( + "A small poster with\n" + "a MUDKIP print."); + +const u8 DecorDesc_CUTE_POSTER[] = _( + "A small poster with\n" + "an AZURILL print."); + +const u8 DecorDesc_PIKA_POSTER[] = _( + "A large poster with\n" + "a PIKACHU and\n" + "PICHU print."); + +const u8 DecorDesc_LONG_POSTER[] = _( + "A large poster with\n" + "a SEVIPER print."); + +const u8 DecorDesc_SEA_POSTER[] = _( + "A large poster with\n" + "a RELICANTH print."); + +const u8 DecorDesc_SKY_POSTER[] = _( + "A large poster with\n" + "a WINGULL print."); + +const u8 DecorDesc_KISS_POSTER[] = _( + "A large poster with\n" + "a SMOOCHUM print."); + +const u8 DecorDesc_PICHU_DOLL[] = _( + "A PICHU doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_PIKACHU_DOLL[] = _( + "A PIKACHU doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_MARILL_DOLL[] = _( + "A MARILL doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_TOGEPI_DOLL[] = _( +#if REVISION >= 1 + "A TOGEPI doll.\n" +#else + "A TOPGEPI doll.\n" +#endif + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_CYNDAQUIL_DOLL[] = _( + "A CYNDAQUIL doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_CHIKORITA_DOLL[] = _( + "A CHIKORITA doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_TOTODILE_DOLL[] = _( + "A TOTODILE doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_JIGGLYPUFF_DOLL[] = _( + "A JIGGLYPUFF doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_MEOWTH_DOLL[] = _( + "A MEOWTH doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_CLEFAIRY_DOLL[] = _( + "A CLEFAIRY doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_DITTO_DOLL[] = _( + "A DITTO doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_SMOOCHUM_DOLL[] = _( + "A SMOOCHUM doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_TREECKO_DOLL[] = _( + "A TREECKO doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_TORCHIC_DOLL[] = _( + "A TORCHIC doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_MUDKIP_DOLL[] = _( + "A MUDKIP doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_DUSKULL_DOLL[] = _( + "A DUSKULL doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_WYNAUT_DOLL[] = _( + "A WYNAUT doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_BALTOY_DOLL[] = _( + "A BALTOY doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_KECLEON_DOLL[] = _( + "A KECLEON doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_AZURILL_DOLL[] = _( + "An AZURILL doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_SKITTY_DOLL[] = _( + "A SKITTY doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_SWABLU_DOLL[] = _( + "A SWABLU doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_GULPIN_DOLL[] = _( + "A GULPIN doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_LOTAD_DOLL[] = _( + "A LOTAD doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_SEEDOT_DOLL[] = _( + "A SEEDOT doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_PIKA_CUSHION[] = _( + "A PIKACHU cushion.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_ROUND_CUSHION[] = _( + "A MARILL cushion.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_KISS_CUSHION[] = _( + "A SMOOCHUM\n" + "cushion. Place it on\n" + "a mat or a desk."); + +const u8 DecorDesc_ZIGZAG_CUSHION[] = _( + "A ZIGZAGOON\n" + "cushion. Place it on\n" + "a mat or a desk."); + +const u8 DecorDesc_SPIN_CUSHION[] = _( + "A SPINDA cushion.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_DIAMOND_CUSHION[] = _( + "A SABLEYE cushion.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_BALL_CUSHION[] = _( + "A BALL cushion.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_GRASS_CUSHION[] = _( + "A grass-mark\n" + "cushion. Place it on\n" + "a mat or a desk."); + +const u8 DecorDesc_FIRE_CUSHION[] = _( + "A fire-mark\n" + "cushion. Place it on\n" + "a mat or a desk."); + +const u8 DecorDesc_WATER_CUSHION[] = _( + "A water-mark\n" + "cushion. Place it on\n" + "a mat or a desk."); + +const u8 DecorDesc_SNORLAX_DOLL[] = _( + "A large doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_RHYDON_DOLL[] = _( + "A large doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_LAPRAS_DOLL[] = _( + "A large doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_VENUSAUR_DOLL[] = _( + "A large doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_CHARIZARD_DOLL[] = _( + "A large doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_BLASTOISE_DOLL[] = _( + "A large doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_WAILMER_DOLL[] = _( + "A large doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_REGIROCK_DOLL[] = _( + "A large doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_REGICE_DOLL[] = _( + "A large doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_REGISTEEL_DOLL[] = _( + "A large doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u16 DecorGfx_SMALL_DESK[] = { + 0x87 +}; + +const u16 DecorGfx_POKEMON_DESK[] = { + 0x8F +}; + +const u16 DecorGfx_HEAVY_DESK[] = { + 0x90, + 0x91, + 0x92, + 0x98, + 0x99, + 0x9A +}; + +const u16 DecorGfx_RAGGED_DESK[] = { + 0x93, + 0x94, + 0x95, + 0x9B, + 0x9C, + 0x9D +}; + +const u16 DecorGfx_COMFORT_DESK[] = { + 0x96, + 0x97, + 0xA3, + 0x9E, + 0x9F, + 0xAB +}; + +const u16 DecorGfx_PRETTY_DESK[] = { + 0xBD, + 0xBE, + 0xBF, + 0xC5, + 0xC6, + 0xC7, + 0xCD, + 0xCE, + 0xCF +}; + +const u16 DecorGfx_BRICK_DESK[] = { + 0xA0, + 0xA1, + 0xA2, + 0xA8, + 0xA9, + 0xAA, + 0xB0, + 0xB1, + 0xB2 +}; + +const u16 DecorGfx_CAMP_DESK[] = { + 0xA4, + 0xA5, + 0xA6, + 0xAC, + 0xAD, + 0xAE, + 0xB4, + 0xB5, + 0xB6 +}; + +const u16 DecorGfx_HARD_DESK[] = { + 0xA7, + 0xBB, + 0xBC, + 0xAF, + 0xC3, + 0xC4, + 0xB7, + 0xCB, + 0xCC +}; + +const u16 DecorGfx_SMALL_CHAIR[] = { + 0xB8 +}; + +const u16 DecorGfx_POKEMON_CHAIR[] = { + 0xB9 +}; + +const u16 DecorGfx_HEAVY_CHAIR[] = { + 0xBA +}; + +const u16 DecorGfx_PRETTY_CHAIR[] = { + 0xC0 +}; + +const u16 DecorGfx_COMFORT_CHAIR[] = { + 0xC1 +}; + +const u16 DecorGfx_RAGGED_CHAIR[] = { + 0xC2 +}; + +const u16 DecorGfx_BRICK_CHAIR[] = { + 0xC8 +}; + +const u16 DecorGfx_CAMP_CHAIR[] = { + 0xC9 +}; + +const u16 DecorGfx_HARD_CHAIR[] = { + 0xCA +}; + +const u16 DecorGfx_RED_PLANT[] = { + 0xD0, + 0xD8 +}; + +const u16 DecorGfx_TROPICAL_PLANT[] = { + 0xD2, + 0xDA +}; + +const u16 DecorGfx_PRETTY_FLOWERS[] = { + 0xD4, + 0xDC +}; + +const u16 DecorGfx_COLORFUL_PLANT[] = { + 0xE0, + 0xE2, + 0xE8, + 0xE9 +}; + +const u16 DecorGfx_BIG_PLANT[] = { + 0xE4, + 0xE6, + 0xEC, + 0xED +}; + +const u16 DecorGfx_GORGEOUS_PLANT[] = { + 0xF0, + 0xF2, + 0xF8, + 0xF9 +}; + +const u16 DecorGfx_RED_BRICK[] = { + 0x25, + 0x2D +}; + +const u16 DecorGfx_YELLOW_BRICK[] = { + 0x26, + 0x2E +}; + +const u16 DecorGfx_BLUE_BRICK[] = { + 0x27, + 0x2F +}; + +const u16 DecorGfx_RED_BALLOON[] = { + 0x138 +}; + +const u16 DecorGfx_BLUE_BALLOON[] = { + 0x13C +}; + +const u16 DecorGfx_YELLOW_BALLOON[] = { + 0x140 +}; + +const u16 DecorGfx_RED_TENT[] = { + 0x30, + 0x31, + 0x32, + 0x38, + 0x39, + 0x3A, + 0x40, + 0x41, + 0x3B +}; + +const u16 DecorGfx_BLUE_TENT[] = { + 0x48, + 0x49, + 0x68, + 0x50, + 0x51, + 0x70, + 0x58, + 0x59, + 0x69 +}; + +const u16 DecorGfx_SOLID_BOARD[] = { + 0x34, + 0x3C +}; + +const u16 DecorGfx_SLIDE[] = { + 0x35, + 0x36, + 0x3D, + 0x3E, + 0x63, + 0x64, + 0x6F, + 0x77 +}; + +const u16 DecorGfx_FENCE_LENGTH[] = { + 0x33 +}; + +const u16 DecorGfx_FENCE_WIDTH[] = { + 0x2C +}; + +const u16 DecorGfx_TIRE[] = { + 0x80, + 0x81, + 0x88, + 0x89 +}; + +const u16 DecorGfx_STAND[] = { + 0x6A, + 0x6B, + 0x6C, + 0x6D, + 0x72, + 0x73, + 0x74, + 0x75 +}; + +const u16 DecorGfx_MUD_BALL[] = { + 0x28 +}; + +const u16 DecorGfx_BREAKABLE_DOOR[] = { + 0x37, + 0x3F +}; + +const u16 DecorGfx_SAND_ORNAMENT[] = { + 0x85, + 0x8D +}; + +const u16 DecorGfx_SILVER_SHIELD[] = { + 0xD6, + 0xDE +}; + +const u16 DecorGfx_GOLD_SHIELD[] = { + 0x12E, + 0x136 +}; + +const u16 DecorGfx_GLASS_ORNAMENT[] = { + 0x82, + 0x8A +}; + +const u16 DecorGfx_TV[] = { + 0xF4 +}; + +const u16 DecorGfx_ROUND_TV[] = { + 0xF5 +}; + +const u16 DecorGfx_CUTE_TV[] = { + 0xF6 +}; + +const u16 DecorGfx_GLITTER_MAT[] = { + 0x60 +}; + +const u16 DecorGfx_JUMP_MAT[] = { + 0x61 +}; + +const u16 DecorGfx_SPIN_MAT[] = { + 0x62 +}; + +const u16 DecorGfx_C_LOW_NOTE_MAT[] = { + 0x78 +}; + +const u16 DecorGfx_D_NOTE_MAT[] = { + 0x79 +}; + +const u16 DecorGfx_E_NOTE_MAT[] = { + 0x7A +}; + +const u16 DecorGfx_F_NOTE_MAT[] = { + 0x7B +}; + +const u16 DecorGfx_G_NOTE_MAT[] = { + 0x7C +}; + +const u16 DecorGfx_A_NOTE_MAT[] = { + 0x7D +}; + +const u16 DecorGfx_B_NOTE_MAT[] = { + 0x7E +}; + +const u16 DecorGfx_C_HIGH_NOTE_MAT[] = { + 0xB3 +}; + +const u16 DecorGfx_SURF_MAT[] = { + 0x42, + 0x43, + 0x44, + 0x4A, + 0x4B, + 0x4C, + 0x52, + 0x53, + 0x54 +}; + +const u16 DecorGfx_THUNDER_MAT[] = { + 0x45, + 0x46, + 0x47, + 0x4D, + 0x4E, + 0x4F, + 0x55, + 0x56, + 0x57 +}; + +const u16 DecorGfx_FIRE_BLAST_MAT[] = { + 0x5A, + 0x5B, + 0x5C, + 0x5D, + 0x5E, + 0x5F, + 0x65, + 0x66, + 0x67 +}; + +const u16 DecorGfx_POWDER_SNOW_MAT[] = { + 0x100, + 0x101, + 0x102, + 0x108, + 0x109, + 0x10A, + 0x110, + 0x111, + 0x112 +}; + +const u16 DecorGfx_ATTRACT_MAT[] = { + 0x103, + 0x104, + 0x105, + 0x10B, + 0x10C, + 0x10D, + 0x113, + 0x114, + 0x115 +}; + +const u16 DecorGfx_FISSURE_MAT[] = { + 0x106, + 0x107, + 0x118, + 0x10E, + 0x10F, + 0x120, + 0x116, + 0x117, + 0x128 +}; + +const u16 DecorGfx_SPIKES_MAT[] = { + 0x119, + 0x11A, + 0x11B, + 0x121, + 0x122, + 0x123, + 0x129, + 0x12A, + 0x12B +}; + +const u16 DecorGfx_BALL_POSTER[] = { + 0x130 +}; + +const u16 DecorGfx_GREEN_POSTER[] = { + 0x131 +}; + +const u16 DecorGfx_RED_POSTER[] = { + 0x132 +}; + +const u16 DecorGfx_BLUE_POSTER[] = { + 0x133 +}; + +const u16 DecorGfx_CUTE_POSTER[] = { + 0x134 +}; + +const u16 DecorGfx_PIKA_POSTER[] = { + 0x11C, + 0x11D +}; + +const u16 DecorGfx_LONG_POSTER[] = { + 0x11E, + 0x11F +}; + +const u16 DecorGfx_SEA_POSTER[] = { + 0x124, + 0x125 +}; + +const u16 DecorGfx_SKY_POSTER[] = { + 0x126, + 0x127 +}; + +const u16 DecorGfx_KISS_POSTER[] = { + 0x12C, + 0x12D +}; + +const u16 DecorGfx_PICHU_DOLL[] = { + MAP_OBJ_GFX_PICHU_DOLL +}; + +const u16 DecorGfx_PIKACHU_DOLL[] = { + MAP_OBJ_GFX_PIKACHU_DOLL +}; + +const u16 DecorGfx_MARILL_DOLL[] = { + MAP_OBJ_GFX_MARILL_DOLL +}; + +const u16 DecorGfx_TOGEPI_DOLL[] = { + MAP_OBJ_GFX_TOGEPI_DOLL +}; + +const u16 DecorGfx_CYNDAQUIL_DOLL[] = { + MAP_OBJ_GFX_CYNDAQUIL_DOLL +}; + +const u16 DecorGfx_CHIKORITA_DOLL[] = { + MAP_OBJ_GFX_CHIKORITA_DOLL +}; + +const u16 DecorGfx_TOTODILE_DOLL[] = { + MAP_OBJ_GFX_TOTODILE_DOLL +}; + +const u16 DecorGfx_JIGGLYPUFF_DOLL[] = { + MAP_OBJ_GFX_JIGGLYPUFF_DOLL +}; + +const u16 DecorGfx_MEOWTH_DOLL[] = { + MAP_OBJ_GFX_MEOWTH_DOLL +}; + +const u16 DecorGfx_CLEFAIRY_DOLL[] = { + MAP_OBJ_GFX_CLEFAIRY_DOLL +}; + +const u16 DecorGfx_DITTO_DOLL[] = { + MAP_OBJ_GFX_DITTO_DOLL +}; + +const u16 DecorGfx_SMOOCHUM_DOLL[] = { + MAP_OBJ_GFX_SMOOCHUM_DOLL +}; + +const u16 DecorGfx_TREECKO_DOLL[] = { + MAP_OBJ_GFX_TREECKO_DOLL +}; + +const u16 DecorGfx_TORCHIC_DOLL[] = { + MAP_OBJ_GFX_TORCHIC_DOLL +}; + +const u16 DecorGfx_MUDKIP_DOLL[] = { + MAP_OBJ_GFX_MUDKIP_DOLL +}; + +const u16 DecorGfx_DUSKULL_DOLL[] = { + MAP_OBJ_GFX_DUSKULL_DOLL +}; + +const u16 DecorGfx_WYNAUT_DOLL[] = { + MAP_OBJ_GFX_WYNAUT_DOLL +}; + +const u16 DecorGfx_BALTOY_DOLL[] = { + MAP_OBJ_GFX_BALTOY_DOLL +}; + +const u16 DecorGfx_KECLEON_DOLL[] = { + MAP_OBJ_GFX_KECLEON_DOLL +}; + +const u16 DecorGfx_AZURILL_DOLL[] = { + MAP_OBJ_GFX_AZURILL_DOLL +}; + +const u16 DecorGfx_SKITTY_DOLL[] = { + MAP_OBJ_GFX_SKITTY_DOLL +}; + +const u16 DecorGfx_SWABLU_DOLL[] = { + MAP_OBJ_GFX_SWABLU_DOLL +}; + +const u16 DecorGfx_GULPIN_DOLL[] = { + MAP_OBJ_GFX_GULPIN_DOLL +}; + +const u16 DecorGfx_LOTAD_DOLL[] = { + MAP_OBJ_GFX_LOTAD_DOLL +}; + +const u16 DecorGfx_SEEDOT_DOLL[] = { + MAP_OBJ_GFX_SEEDOT_DOLL +}; + +const u16 DecorGfx_PIKA_CUSHION[] = { + MAP_OBJ_GFX_PIKA_CUSHION +}; + +const u16 DecorGfx_ROUND_CUSHION[] = { + MAP_OBJ_GFX_ROUND_CUSHION +}; + +const u16 DecorGfx_KISS_CUSHION[] = { + MAP_OBJ_GFX_KISS_CUSHION +}; + +const u16 DecorGfx_ZIGZAG_CUSHION[] = { + MAP_OBJ_GFX_ZIGZAG_CUSHION +}; + +const u16 DecorGfx_SPIN_CUSHION[] = { + MAP_OBJ_GFX_SPIN_CUSHION +}; + +const u16 DecorGfx_DIAMOND_CUSHION[] = { + MAP_OBJ_GFX_DIAMOND_CUSHION +}; + +const u16 DecorGfx_BALL_CUSHION[] = { + MAP_OBJ_GFX_BALL_CUSHION +}; + +const u16 DecorGfx_GRASS_CUSHION[] = { + MAP_OBJ_GFX_GRASS_CUSHION +}; + +const u16 DecorGfx_FIRE_CUSHION[] = { + MAP_OBJ_GFX_FIRE_CUSHION +}; + +const u16 DecorGfx_WATER_CUSHION[] = { + MAP_OBJ_GFX_WATER_CUSHION +}; + +const u16 DecorGfx_SNORLAX_DOLL[] = { + MAP_OBJ_GFX_BIG_SNORLAX_DOLL +}; + +const u16 DecorGfx_RHYDON_DOLL[] = { + MAP_OBJ_GFX_BIG_RHYDON_DOLL +}; + +const u16 DecorGfx_LAPRAS_DOLL[] = { + MAP_OBJ_GFX_BIG_LAPRAS_DOLL +}; + +const u16 DecorGfx_VENUSAUR_DOLL[] = { + MAP_OBJ_GFX_BIG_VENUSAUR_DOLL +}; + +const u16 DecorGfx_CHARIZARD_DOLL[] = { + MAP_OBJ_GFX_BIG_CHARIZARD_DOLL +}; + +const u16 DecorGfx_BLASTOISE_DOLL[] = { + MAP_OBJ_GFX_BIG_BLASTOISE_DOLL +}; + +const u16 DecorGfx_WAILMER_DOLL[] = { + MAP_OBJ_GFX_BIG_WAILMER_DOLL +}; + +const u16 DecorGfx_REGIROCK_DOLL[] = { + MAP_OBJ_GFX_BIG_REGIROCK_DOLL +}; + +const u16 DecorGfx_REGICE_DOLL[] = { + MAP_OBJ_GFX_BIG_REGICE_DOLL +}; + +const u16 DecorGfx_REGISTEEL_DOLL[] = { + MAP_OBJ_GFX_BIG_REGISTEEL_DOLL +}; + +const struct Decoration gDecorations[] = { + {DECOR_NONE, _("SMALL DESK"), DECORPERM_SOLID_FLOOR, DECORSHAPE_1x1, DECORCAT_DESK, 0, DecorDesc_SMALL_DESK, DecorGfx_SMALL_DESK}, + {DECOR_SMALL_DESK, _("SMALL DESK"), DECORPERM_SOLID_FLOOR, DECORSHAPE_1x1, DECORCAT_DESK, 3000, DecorDesc_SMALL_DESK, DecorGfx_SMALL_DESK}, + {DECOR_POKEMON_DESK, _("POKéMON DESK"), DECORPERM_SOLID_FLOOR, DECORSHAPE_1x1, DECORCAT_DESK, 3000, DecorDesc_POKEMON_DESK, DecorGfx_POKEMON_DESK}, + {DECOR_HEAVY_DESK, _("HEAVY DESK"), DECORPERM_SOLID_FLOOR, DECORSHAPE_3x2, DECORCAT_DESK, 6000, DecorDesc_HEAVY_DESK, DecorGfx_HEAVY_DESK}, + {DECOR_RAGGED_DESK, _("RAGGED DESK"), DECORPERM_SOLID_FLOOR, DECORSHAPE_3x2, DECORCAT_DESK, 6000, DecorDesc_RAGGED_DESK, DecorGfx_RAGGED_DESK}, + {DECOR_COMFORT_DESK, _("COMFORT DESK"), DECORPERM_SOLID_FLOOR, DECORSHAPE_3x2, DECORCAT_DESK, 6000, DecorDesc_COMFORT_DESK, DecorGfx_COMFORT_DESK}, + {DECOR_PRETTY_DESK, _("PRETTY DESK"), DECORPERM_SOLID_FLOOR, DECORSHAPE_3x3, DECORCAT_DESK, 9000, DecorDesc_PRETTY_DESK, DecorGfx_PRETTY_DESK}, + {DECOR_BRICK_DESK, _("BRICK DESK"), DECORPERM_SOLID_FLOOR, DECORSHAPE_3x3, DECORCAT_DESK, 9000, DecorDesc_BRICK_DESK, DecorGfx_BRICK_DESK}, + {DECOR_CAMP_DESK, _("CAMP DESK"), DECORPERM_SOLID_FLOOR, DECORSHAPE_3x3, DECORCAT_DESK, 9000, DecorDesc_CAMP_DESK, DecorGfx_CAMP_DESK}, + {DECOR_HARD_DESK, _("HARD DESK"), DECORPERM_SOLID_FLOOR, DECORSHAPE_3x3, DECORCAT_DESK, 9000, DecorDesc_HARD_DESK, DecorGfx_HARD_DESK}, + {DECOR_SMALL_CHAIR, _("SMALL CHAIR"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_CHAIR, 2000, DecorDesc_SMALL_CHAIR, DecorGfx_SMALL_CHAIR}, + {DECOR_POKEMON_CHAIR, _("POKéMON CHAIR"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_CHAIR, 2000, DecorDesc_POKEMON_CHAIR, DecorGfx_POKEMON_CHAIR}, + {DECOR_HEAVY_CHAIR, _("HEAVY CHAIR"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_CHAIR, 2000, DecorDesc_HEAVY_CHAIR, DecorGfx_HEAVY_CHAIR}, + {DECOR_PRETTY_CHAIR, _("PRETTY CHAIR"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_CHAIR, 2000, DecorDesc_PRETTY_CHAIR, DecorGfx_PRETTY_CHAIR}, + {DECOR_COMFORT_CHAIR, _("COMFORT CHAIR"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_CHAIR, 2000, DecorDesc_COMFORT_CHAIR, DecorGfx_COMFORT_CHAIR}, + {DECOR_RAGGED_CHAIR, _("RAGGED CHAIR"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_CHAIR, 2000, DecorDesc_RAGGED_CHAIR, DecorGfx_RAGGED_CHAIR}, + {DECOR_BRICK_CHAIR, _("BRICK CHAIR"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_CHAIR, 2000, DecorDesc_BRICK_CHAIR, DecorGfx_BRICK_CHAIR}, + {DECOR_CAMP_CHAIR, _("CAMP CHAIR"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_CHAIR, 2000, DecorDesc_CAMP_CHAIR, DecorGfx_CAMP_CHAIR}, + {DECOR_HARD_CHAIR, _("HARD CHAIR"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_CHAIR, 2000, DecorDesc_HARD_CHAIR, DecorGfx_HARD_CHAIR}, + {DECOR_RED_PLANT, _("RED PLANT"), DECORPERM_BEHIND_FLOOR, DECORSHAPE_1x2, DECORCAT_PLANT, 3000, DecorDesc_RED_PLANT, DecorGfx_RED_PLANT}, + {DECOR_TROPICAL_PLANT, _("TROPICAL PLANT"), DECORPERM_BEHIND_FLOOR, DECORSHAPE_1x2, DECORCAT_PLANT, 3000, DecorDesc_TROPICAL_PLANT, DecorGfx_TROPICAL_PLANT}, + {DECOR_PRETTY_FLOWERS, _("PRETTY FLOWERS"), DECORPERM_BEHIND_FLOOR, DECORSHAPE_1x2, DECORCAT_PLANT, 3000, DecorDesc_PRETTY_FLOWERS, DecorGfx_PRETTY_FLOWERS}, + {DECOR_COLORFUL_PLANT, _("COLORFUL PLANT"), DECORPERM_BEHIND_FLOOR, DECORSHAPE_2x2, DECORCAT_PLANT, 5000, DecorDesc_COLORFUL_PLANT, DecorGfx_COLORFUL_PLANT}, + {DECOR_BIG_PLANT, _("BIG PLANT"), DECORPERM_BEHIND_FLOOR, DECORSHAPE_2x2, DECORCAT_PLANT, 5000, DecorDesc_BIG_PLANT, DecorGfx_BIG_PLANT}, + {DECOR_GORGEOUS_PLANT, _("GORGEOUS PLANT"), DECORPERM_BEHIND_FLOOR, DECORSHAPE_2x2, DECORCAT_PLANT, 5000, DecorDesc_GORGEOUS_PLANT, DecorGfx_GORGEOUS_PLANT}, + {DECOR_RED_BRICK, _("RED BRICK"), DECORPERM_SOLID_FLOOR, DECORSHAPE_1x2, DECORCAT_ORNAMENT, 500, DecorDesc_RED_BRICK, DecorGfx_RED_BRICK}, + {DECOR_YELLOW_BRICK, _("YELLOW BRICK"), DECORPERM_SOLID_FLOOR, DECORSHAPE_1x2, DECORCAT_ORNAMENT, 500, DecorDesc_YELLOW_BRICK, DecorGfx_YELLOW_BRICK}, + {DECOR_BLUE_BRICK, _("BLUE BRICK"), DECORPERM_SOLID_FLOOR, DECORSHAPE_1x2, DECORCAT_ORNAMENT, 500, DecorDesc_BLUE_BRICK, DecorGfx_BLUE_BRICK}, + {DECOR_RED_BALLOON, _("RED BALLOON"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_ORNAMENT, 500, DecorDesc_RED_BALLOON, DecorGfx_RED_BALLOON}, + {DECOR_BLUE_BALLOON, _("BLUE BALLOON"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_ORNAMENT, 500, DecorDesc_BLUE_BALLOON, DecorGfx_BLUE_BALLOON}, + {DECOR_YELLOW_BALLOON, _("YELLOW BALLOON"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_ORNAMENT, 500, DecorDesc_YELLOW_BALLOON, DecorGfx_YELLOW_BALLOON}, + {DECOR_RED_TENT, _("RED TENT"), DECORPERM_PASS_FLOOR, DECORSHAPE_3x3, DECORCAT_ORNAMENT, 10000, DecorDesc_RED_TENT, DecorGfx_RED_TENT}, + {DECOR_BLUE_TENT, _("BLUE TENT"), DECORPERM_PASS_FLOOR, DECORSHAPE_3x3, DECORCAT_ORNAMENT, 10000, DecorDesc_BLUE_TENT, DecorGfx_BLUE_TENT}, + {DECOR_SOLID_BOARD, _("SOLID BOARD"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x2, DECORCAT_ORNAMENT, 3000, DecorDesc_SOLID_BOARD, DecorGfx_SOLID_BOARD}, + {DECOR_SLIDE, _("SLIDE"), DECORPERM_PASS_FLOOR, DECORSHAPE_2x4, DECORCAT_ORNAMENT, 8000, DecorDesc_SLIDE, DecorGfx_SLIDE}, + {DECOR_FENCE_LENGTH, _("FENCE LENGTH"), DECORPERM_SOLID_FLOOR, DECORSHAPE_1x1, DECORCAT_ORNAMENT, 500, DecorDesc_FENCE_LENGTH, DecorGfx_FENCE_LENGTH}, + {DECOR_FENCE_WIDTH, _("FENCE WIDTH"), DECORPERM_SOLID_FLOOR, DECORSHAPE_1x1, DECORCAT_ORNAMENT, 500, DecorDesc_FENCE_WIDTH, DecorGfx_FENCE_WIDTH}, + {DECOR_TIRE, _("TIRE"), DECORPERM_SOLID_FLOOR, DECORSHAPE_2x2, DECORCAT_ORNAMENT, 800, DecorDesc_TIRE, DecorGfx_TIRE}, + {DECOR_STAND, _("STAND"), DECORPERM_PASS_FLOOR, DECORSHAPE_4x2, DECORCAT_ORNAMENT, 7000, DecorDesc_STAND, DecorGfx_STAND}, + {DECOR_MUD_BALL, _("MUD BALL"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_ORNAMENT, 200, DecorDesc_MUD_BALL, DecorGfx_MUD_BALL}, + {DECOR_BREAKABLE_DOOR, _("BREAKABLE DOOR"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x2, DECORCAT_ORNAMENT, 3000, DecorDesc_BREAKABLE_DOOR, DecorGfx_BREAKABLE_DOOR}, + {DECOR_SAND_ORNAMENT, _("SAND ORNAMENT"), DECORPERM_BEHIND_FLOOR, DECORSHAPE_1x2, DECORCAT_ORNAMENT, 3000, DecorDesc_SAND_ORNAMENT, DecorGfx_SAND_ORNAMENT}, + {DECOR_SILVER_SHIELD, _("SILVER SHIELD"), DECORPERM_BEHIND_FLOOR, DECORSHAPE_1x2, DECORCAT_ORNAMENT, 0, DecorDesc_SILVER_SHIELD, DecorGfx_SILVER_SHIELD}, + {DECOR_GOLD_SHIELD, _("GOLD SHIELD"), DECORPERM_BEHIND_FLOOR, DECORSHAPE_1x2, DECORCAT_ORNAMENT, 0, DecorDesc_GOLD_SHIELD, DecorGfx_GOLD_SHIELD}, + {DECOR_GLASS_ORNAMENT, _("GLASS ORNAMENT"), DECORPERM_BEHIND_FLOOR, DECORSHAPE_1x2, DECORCAT_ORNAMENT, 0, DecorDesc_GLASS_ORNAMENT, DecorGfx_GLASS_ORNAMENT}, + {DECOR_TV, _("TV"), DECORPERM_SOLID_FLOOR, DECORSHAPE_1x1, DECORCAT_ORNAMENT, 3000, DecorDesc_TV, DecorGfx_TV}, + {DECOR_ROUND_TV, _("ROUND TV"), DECORPERM_SOLID_FLOOR, DECORSHAPE_1x1, DECORCAT_ORNAMENT, 4000, DecorDesc_ROUND_TV, DecorGfx_ROUND_TV}, + {DECOR_CUTE_TV, _("CUTE TV"), DECORPERM_SOLID_FLOOR, DECORSHAPE_1x1, DECORCAT_ORNAMENT, 4000, DecorDesc_CUTE_TV, DecorGfx_CUTE_TV}, + {DECOR_GLITTER_MAT, _("GLITTER MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_MAT, 2000, DecorDesc_GLITTER_MAT, DecorGfx_GLITTER_MAT}, + {DECOR_JUMP_MAT, _("JUMP MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_MAT, 2000, DecorDesc_JUMP_MAT, DecorGfx_JUMP_MAT}, + {DECOR_SPIN_MAT, _("SPIN MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_MAT, 2000, DecorDesc_SPIN_MAT, DecorGfx_SPIN_MAT}, + {DECOR_C_LOW_NOTE_MAT, _("C Low NOTE MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_MAT, 500, DecorDesc_C_LOW_NOTE_MAT, DecorGfx_C_LOW_NOTE_MAT}, + {DECOR_D_NOTE_MAT, _("D NOTE MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_MAT, 500, DecorDesc_D_NOTE_MAT, DecorGfx_D_NOTE_MAT}, + {DECOR_E_NOTE_MAT, _("E NOTE MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_MAT, 500, DecorDesc_E_NOTE_MAT, DecorGfx_E_NOTE_MAT}, + {DECOR_F_NOTE_MAT, _("F NOTE MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_MAT, 500, DecorDesc_F_NOTE_MAT, DecorGfx_F_NOTE_MAT}, + {DECOR_G_NOTE_MAT, _("G NOTE MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_MAT, 500, DecorDesc_G_NOTE_MAT, DecorGfx_G_NOTE_MAT}, + {DECOR_A_NOTE_MAT, _("A NOTE MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_MAT, 500, DecorDesc_A_NOTE_MAT, DecorGfx_A_NOTE_MAT}, + {DECOR_B_NOTE_MAT, _("B NOTE MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_MAT, 500, DecorDesc_B_NOTE_MAT, DecorGfx_B_NOTE_MAT}, + {DECOR_C_HIGH_NOTE_MAT, _("C High NOTE MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_MAT, 500, DecorDesc_C_HIGH_NOTE_MAT, DecorGfx_C_HIGH_NOTE_MAT}, + {DECOR_SURF_MAT, _("SURF MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_3x3, DECORCAT_MAT, 4000, DecorDesc_SURF_MAT, DecorGfx_SURF_MAT}, + {DECOR_THUNDER_MAT, _("THUNDER MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_3x3, DECORCAT_MAT, 4000, DecorDesc_THUNDER_MAT, DecorGfx_THUNDER_MAT}, + {DECOR_FIRE_BLAST_MAT, _("FIRE BLAST MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_3x3, DECORCAT_MAT, 4000, DecorDesc_FIRE_BLAST_MAT, DecorGfx_FIRE_BLAST_MAT}, + {DECOR_POWDER_SNOW_MAT, _("POWDER SNOW MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_3x3, DECORCAT_MAT, 4000, DecorDesc_POWDER_SNOW_MAT, DecorGfx_POWDER_SNOW_MAT}, + {DECOR_ATTRACT_MAT, _("ATTRACT MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_3x3, DECORCAT_MAT, 4000, DecorDesc_ATTRACT_MAT, DecorGfx_ATTRACT_MAT}, + {DECOR_FISSURE_MAT, _("FISSURE MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_3x3, DECORCAT_MAT, 4000, DecorDesc_FISSURE_MAT, DecorGfx_FISSURE_MAT}, + {DECOR_SPIKES_MAT, _("SPIKES MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_3x3, DECORCAT_MAT, 4000, DecorDesc_SPIKES_MAT, DecorGfx_SPIKES_MAT}, + {DECOR_BALL_POSTER, _("BALL POSTER"), DECORPERM_NA_WALL, DECORSHAPE_1x1, DECORCAT_POSTER, 1000, DecorDesc_BALL_POSTER, DecorGfx_BALL_POSTER}, + {DECOR_GREEN_POSTER, _("GREEN POSTER"), DECORPERM_NA_WALL, DECORSHAPE_1x1, DECORCAT_POSTER, 1000, DecorDesc_GREEN_POSTER, DecorGfx_GREEN_POSTER}, + {DECOR_RED_POSTER, _("RED POSTER"), DECORPERM_NA_WALL, DECORSHAPE_1x1, DECORCAT_POSTER, 1000, DecorDesc_RED_POSTER, DecorGfx_RED_POSTER}, + {DECOR_BLUE_POSTER, _("BLUE POSTER"), DECORPERM_NA_WALL, DECORSHAPE_1x1, DECORCAT_POSTER, 1000, DecorDesc_BLUE_POSTER, DecorGfx_BLUE_POSTER}, + {DECOR_CUTE_POSTER, _("CUTE POSTER"), DECORPERM_NA_WALL, DECORSHAPE_1x1, DECORCAT_POSTER, 1000, DecorDesc_CUTE_POSTER, DecorGfx_CUTE_POSTER}, + {DECOR_PIKA_POSTER, _("PIKA POSTER"), DECORPERM_NA_WALL, DECORSHAPE_2x1, DECORCAT_POSTER, 1500, DecorDesc_PIKA_POSTER, DecorGfx_PIKA_POSTER}, + {DECOR_LONG_POSTER, _("LONG POSTER"), DECORPERM_NA_WALL, DECORSHAPE_2x1, DECORCAT_POSTER, 1500, DecorDesc_LONG_POSTER, DecorGfx_LONG_POSTER}, + {DECOR_SEA_POSTER, _("SEA POSTER"), DECORPERM_NA_WALL, DECORSHAPE_2x1, DECORCAT_POSTER, 1500, DecorDesc_SEA_POSTER, DecorGfx_SEA_POSTER}, + {DECOR_SKY_POSTER, _("SKY POSTER"), DECORPERM_NA_WALL, DECORSHAPE_2x1, DECORCAT_POSTER, 1500, DecorDesc_SKY_POSTER, DecorGfx_SKY_POSTER}, + {DECOR_KISS_POSTER, _("KISS POSTER"), DECORPERM_NA_WALL, DECORSHAPE_2x1, DECORCAT_POSTER, 1500, DecorDesc_KISS_POSTER, DecorGfx_KISS_POSTER}, + {DECOR_PICHU_DOLL, _("PICHU DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_PICHU_DOLL, DecorGfx_PICHU_DOLL}, + {DECOR_PIKACHU_DOLL, _("PIKACHU DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_PIKACHU_DOLL, DecorGfx_PIKACHU_DOLL}, + {DECOR_MARILL_DOLL, _("MARILL DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_MARILL_DOLL, DecorGfx_MARILL_DOLL}, + {DECOR_TOGEPI_DOLL, _("TOGEPI DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_TOGEPI_DOLL, DecorGfx_TOGEPI_DOLL}, + {DECOR_CYNDAQUIL_DOLL, _("CYNDAQUIL DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_CYNDAQUIL_DOLL, DecorGfx_CYNDAQUIL_DOLL}, + {DECOR_CHIKORITA_DOLL, _("CHIKORITA DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_CHIKORITA_DOLL, DecorGfx_CHIKORITA_DOLL}, + {DECOR_TOTODILE_DOLL, _("TOTODILE DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_TOTODILE_DOLL, DecorGfx_TOTODILE_DOLL}, + {DECOR_JIGGLYPUFF_DOLL, _("JIGGLYPUFF DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_JIGGLYPUFF_DOLL, DecorGfx_JIGGLYPUFF_DOLL}, + {DECOR_MEOWTH_DOLL, _("MEOWTH DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_MEOWTH_DOLL, DecorGfx_MEOWTH_DOLL}, + {DECOR_CLEFAIRY_DOLL, _("CLEFAIRY DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_CLEFAIRY_DOLL, DecorGfx_CLEFAIRY_DOLL}, + {DECOR_DITTO_DOLL, _("DITTO DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_DITTO_DOLL, DecorGfx_DITTO_DOLL}, + {DECOR_SMOOCHUM_DOLL, _("SMOOCHUM DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_SMOOCHUM_DOLL, DecorGfx_SMOOCHUM_DOLL}, + {DECOR_TREECKO_DOLL, _("TREECKO DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_TREECKO_DOLL, DecorGfx_TREECKO_DOLL}, + {DECOR_TORCHIC_DOLL, _("TORCHIC DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_TORCHIC_DOLL, DecorGfx_TORCHIC_DOLL}, + {DECOR_MUDKIP_DOLL, _("MUDKIP DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_MUDKIP_DOLL, DecorGfx_MUDKIP_DOLL}, + {DECOR_DUSKULL_DOLL, _("DUSKULL DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_DUSKULL_DOLL, DecorGfx_DUSKULL_DOLL}, + {DECOR_WYNAUT_DOLL, _("WYNAUT DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_WYNAUT_DOLL, DecorGfx_WYNAUT_DOLL}, + {DECOR_BALTOY_DOLL, _("BALTOY DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_BALTOY_DOLL, DecorGfx_BALTOY_DOLL}, + {DECOR_KECLEON_DOLL, _("KECLEON DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_KECLEON_DOLL, DecorGfx_KECLEON_DOLL}, + {DECOR_AZURILL_DOLL, _("AZURILL DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_AZURILL_DOLL, DecorGfx_AZURILL_DOLL}, + {DECOR_SKITTY_DOLL, _("SKITTY DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_SKITTY_DOLL, DecorGfx_SKITTY_DOLL}, + {DECOR_SWABLU_DOLL, _("SWABLU DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_SWABLU_DOLL, DecorGfx_SWABLU_DOLL}, + {DECOR_GULPIN_DOLL, _("GULPIN DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_GULPIN_DOLL, DecorGfx_GULPIN_DOLL}, + {DECOR_LOTAD_DOLL, _("LOTAD DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_LOTAD_DOLL, DecorGfx_LOTAD_DOLL}, + {DECOR_SEEDOT_DOLL, _("SEEDOT DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_SEEDOT_DOLL, DecorGfx_SEEDOT_DOLL}, + {DECOR_PIKA_CUSHION, _("PIKA CUSHION"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_CUSHION, 2000, DecorDesc_PIKA_CUSHION, DecorGfx_PIKA_CUSHION}, + {DECOR_ROUND_CUSHION, _("ROUND CUSHION"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_CUSHION, 2000, DecorDesc_ROUND_CUSHION, DecorGfx_ROUND_CUSHION}, + {DECOR_KISS_CUSHION, _("KISS CUSHION"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_CUSHION, 2000, DecorDesc_KISS_CUSHION, DecorGfx_KISS_CUSHION}, + {DECOR_ZIGZAG_CUSHION, _("ZIGZAG CUSHION"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_CUSHION, 2000, DecorDesc_ZIGZAG_CUSHION, DecorGfx_ZIGZAG_CUSHION}, + {DECOR_SPIN_CUSHION, _("SPIN CUSHION"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_CUSHION, 2000, DecorDesc_SPIN_CUSHION, DecorGfx_SPIN_CUSHION}, + {DECOR_DIAMOND_CUSHION, _("DIAMOND CUSHION"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_CUSHION, 2000, DecorDesc_DIAMOND_CUSHION, DecorGfx_DIAMOND_CUSHION}, + {DECOR_BALL_CUSHION, _("BALL CUSHION"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_CUSHION, 2000, DecorDesc_BALL_CUSHION, DecorGfx_BALL_CUSHION}, + {DECOR_GRASS_CUSHION, _("GRASS CUSHION"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_CUSHION, 2000, DecorDesc_GRASS_CUSHION, DecorGfx_GRASS_CUSHION}, + {DECOR_FIRE_CUSHION, _("FIRE CUSHION"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_CUSHION, 2000, DecorDesc_FIRE_CUSHION, DecorGfx_FIRE_CUSHION}, + {DECOR_WATER_CUSHION, _("WATER CUSHION"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_CUSHION, 2000, DecorDesc_WATER_CUSHION, DecorGfx_WATER_CUSHION}, + {DECOR_SNORLAX_DOLL, _("SNORLAX DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x2, DECORCAT_DOLL, 10000, DecorDesc_SNORLAX_DOLL, DecorGfx_SNORLAX_DOLL}, + {DECOR_RHYDON_DOLL, _("RHYDON DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x2, DECORCAT_DOLL, 10000, DecorDesc_RHYDON_DOLL, DecorGfx_RHYDON_DOLL}, + {DECOR_LAPRAS_DOLL, _("LAPRAS DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x2, DECORCAT_DOLL, 10000, DecorDesc_LAPRAS_DOLL, DecorGfx_LAPRAS_DOLL}, + {DECOR_VENUSAUR_DOLL, _("VENUSAUR DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x2, DECORCAT_DOLL, 10000, DecorDesc_VENUSAUR_DOLL, DecorGfx_VENUSAUR_DOLL}, + {DECOR_CHARIZARD_DOLL, _("CHARIZARD DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x2, DECORCAT_DOLL, 10000, DecorDesc_CHARIZARD_DOLL, DecorGfx_CHARIZARD_DOLL}, + {DECOR_BLASTOISE_DOLL, _("BLASTOISE DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x2, DECORCAT_DOLL, 10000, DecorDesc_BLASTOISE_DOLL, DecorGfx_BLASTOISE_DOLL}, + {DECOR_WAILMER_DOLL, _("WAILMER DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x2, DECORCAT_DOLL, 10000, DecorDesc_WAILMER_DOLL, DecorGfx_WAILMER_DOLL}, + {DECOR_REGIROCK_DOLL, _("REGIROCK DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x2, DECORCAT_DOLL, 10000, DecorDesc_REGIROCK_DOLL, DecorGfx_REGIROCK_DOLL}, + {DECOR_REGICE_DOLL, _("REGICE DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x2, DECORCAT_DOLL, 10000, DecorDesc_REGICE_DOLL, DecorGfx_REGICE_DOLL}, + {DECOR_REGISTEEL_DOLL, _("REGISTEEL DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x2, DECORCAT_DOLL, 10000, DecorDesc_REGISTEEL_DOLL, DecorGfx_REGISTEEL_DOLL} +}; + +const u8 *const gUnknown_083EC5E4[] = { + SecretBaseText_Desk, + SecretBaseText_Chair, + SecretBaseText_Plant, + SecretBaseText_Ornament, + SecretBaseText_Mat, + SecretBaseText_Poster, + SecretBaseText_Doll, + SecretBaseText_Cushion +}; + +const struct MenuAction2 gUnknown_083EC604[] = { + {SecretBaseText_Decorate, sub_80FF160}, + {SecretBaseText_PutAway, sub_8100A0C}, + {SecretBaseText_Toss, sub_8101700}, + {gUnknownText_Exit, gpu_pal_decompress_alloc_tag_and_upload} +}; + +const u8 *const gUnknown_083EC624[] = { + SecretBaseText_PutOutDecor, + SecretBaseText_StoreChosenDecor, + SecretBaseText_ThrowAwayDecor, + gMenuText_GoBackToPrev +}; + +const struct MenuAction3 gUnknown_083EC634[] = { + {sub_80FF5BC, sub_80FF058}, + {sub_81017A0, sub_80FF058}, + {sub_81017A0, sub_80FF058}, + {sub_8109D04, sub_80FF058} +}; + +const u16 gUnknown_083EC654[] = {0x6318, 0x739C, 0x7FFF}; +const u8 gUnknown_083EC65A[] = _("{PALETTE 13}{STR_VAR_1}"); + +const u8 Unknown_3EC660[] = {0, 1, 2, 3}; +const u8 Unknown_3EC664[] = {0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13}; +const u8 Unknown_3EC670[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}; +const u8 Unknown_3EC680[] = {0, 1, 4, 5, 8, 9, 12, 13, 16, 17, 20, 21}; +const u8 Unknown_3EC68C[] = {0, 1, 2, 3, 4, 5, 6, 7}; +const u8 Unknown_3EC694[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31}; +const u8 Unknown_3EC6B4[] = {0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 16, 17, 18, 19, 20, 21, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 40, 41, 42, 43, 44, 45}; +const u8 Unknown_3EC6D8[] = {0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 16, 17, 18, 19, 20, 21, 24, 25, 26, 27, 28, 29}; + +const u8 Unknown_3EC6F0[] = {0, 0, 0, 0}; +const u8 Unknown_3EC6F4[] = {0, 0, 1, 1, 0, 0, 1, 1}; +const u8 Unknown_3EC6FC[] = {0, 0, 1, 1, 2, 2, 0, 0, 1, 1, 2, 2}; +const u8 Unknown_3EC708[] = {0, 0, 1, 1, 2, 2, 3, 3, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 4, 4, 5, 5, 6, 6, 7, 7}; +const u8 Unknown_3EC728[] = {0, 0, 1, 1, 0, 0, 1, 1, 2, 2, 3, 3, 2, 2, 3, 3}; +const u8 Unknown_3EC738[] = {0, 0, 0, 0, 1, 1, 1, 1}; +const u8 Unknown_3EC740[] = {0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2}; +const u8 Unknown_3EC74C[] = {0, 0, 1, 1, 0, 0, 1, 1, 2, 2, 3, 3, 2, 2, 3, 3, 4, 4, 5, 5, 4, 4, 5, 5, 6, 6, 7, 7, 6, 6, 7, 7}; +const u8 Unknown_3EC76C[] = {0, 0, 1, 1, 2, 2, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 6, 6, 7, 7, 8, 8}; +const u8 Unknown_3EC790[] = {0, 0, 1, 1, 2, 2, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 3, 3, 4, 4, 5, 5}; + +const u8 Unknown_3EC7A8[] = {4, 5, 6, 7}; +const u8 Unknown_3EC7AC[] = {4, 5, 4, 5, 6, 7, 6, 7}; +const u8 Unknown_3EC7B4[] = {4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7}; +const u8 Unknown_3EC7C0[] = {4, 5, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 6, 7, 4, 5, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 6, 7}; +const u8 Unknown_3EC7E0[] = {4, 5, 4, 5, 6, 7, 6, 7, 4, 5, 4, 5, 6, 7, 6, 7}; +const u8 Unknown_3EC7F0[] = {4, 5, 6, 7, 4, 5, 6, 7}; +const u8 Unknown_3EC7F8[] = {4, 5, 6, 7, 4, 5, 6, 7, 4, 5, 6, 7}; +const u8 Unknown_3EC804[] = {4, 5, 4, 5, 6, 7, 6, 7, 4, 5, 4, 5, 6, 7, 6, 7, 4, 5, 4, 5, 6, 7, 6, 7, 4, 5, 4, 5, 6, 7, 6, 7}; +const u8 Unknown_3EC824[] = {4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7}; +const u8 Unknown_3EC848[] = {4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7}; + +const struct UnkStruct_803EC860 gUnknown_083EC860[] = { + {Unknown_3EC660, Unknown_3EC6F0, Unknown_3EC7A8, 0x4}, + {Unknown_3EC68C, Unknown_3EC6F4, Unknown_3EC7AC, 0x8}, + {Unknown_3EC664, Unknown_3EC6FC, Unknown_3EC7B4, 0xc}, + {Unknown_3EC694, Unknown_3EC708, Unknown_3EC7C0, 0x20}, + {Unknown_3EC670, Unknown_3EC728, Unknown_3EC7E0, 0x10}, + {Unknown_3EC68C, Unknown_3EC738, Unknown_3EC7F0, 0x8}, + {Unknown_3EC680, Unknown_3EC740, Unknown_3EC7F8, 0xc}, + {Unknown_3EC694, Unknown_3EC74C, Unknown_3EC804, 0x20}, + {Unknown_3EC6B4, Unknown_3EC76C, Unknown_3EC824, 0x24}, + {Unknown_3EC6D8, Unknown_3EC790, Unknown_3EC848, 0x18} +}; + +const struct UnkStruct_083EC900 gUnknown_083EC900[] = { + {0, 1, 0x78, 0x4e}, + {1, 2, 0x80, 0x4e}, + {1, 3, 0x90, 0x56}, + {1, 3, 0x90, 0x46}, + {0, 2, 0x80, 0x46}, + {2, 2, 0x78, 0x46}, + {2, 3, 0x80, 0x56}, + {2, 3, 0x80, 0x36}, + {0, 3, 0x90, 0x46}, + {1, 3, 0x90, 0x46} +}; + +const union AnimCmd gSpriteAnim_83EC928[] = { + ANIMCMD_FRAME(.imageValue = 0, .duration = 0), + ANIMCMD_END +}; + +const union AnimCmd *const gSpriteAnimTable_83EC930[] = { + gSpriteAnim_83EC928 +}; + +const struct SpriteFrameImage gSpriteImageTable_83EC934[] = { + {.data = (u8 *)&gUnknown_02038900.image, .size = sizeof gUnknown_02038900.image} +}; + +const struct SpriteTemplate gSpriteTemplate_83EC93C = { + .tileTag = 0xffff, + .paletteTag = 3000, + .oam = &gUnknown_020391AC, + .anims = gSpriteAnimTable_83EC930, + .images = gSpriteImageTable_83EC934, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_81009A8 +}; + +const struct SpritePalette gUnknown_083EC954 = {.data = (u16 *)&gUnknown_02038900.palette, .tag = 3000}; + +const struct YesNoFuncTable gUnknown_083EC95C = {.yesFunc = sub_81000C4, .noFunc = sub_810065C}; +const struct YesNoFuncTable gUnknown_083EC964 = {.yesFunc = sub_810026C, .noFunc = sub_810065C}; +const struct YesNoFuncTable gUnknown_083EC96C[] = { + {.yesFunc = sub_80FFAB0, .noFunc = sub_80FFB08}, + {.yesFunc = sub_8100F88, .noFunc = sub_8100FB4} +}; + +const u8 gUnknown_083EC97C[] = {4, 4, 4, 4, 0, 3, 3, 0}; +const u8 gUnknown_083EC984[] = {4, 4, 4, 4, 0, 4, 3, 0}; + +const u16 gUnknown_083EC98C[] = INCBIN_U16("graphics/unknown/83EC98C.gbapal"); +const u16 Unknown_3EC9AC[] = INCBIN_U16("graphics/unknown/83EC9AC.gbapal"); +const struct YesNoFuncTable gUnknown_083EC9CC = {.yesFunc = sub_810153C, .noFunc = sub_8100EEC}; +const struct YesNoFuncTable gUnknown_083EC9D4 = {.yesFunc = sub_8101590, .noFunc = sub_8100EEC}; +const u32 gSpriteImage_83EC9DC[] = INCBIN_U32("graphics/unknown_sprites/83EC9DC.4bpp"); +const struct SpritePalette gUnknown_083ECA5C = {.data = gUnknown_083EC98C, .tag = 8}; +const struct SpritePalette gUnknown_083ECA64 = {.data = Unknown_3EC9AC, .tag = 8}; +const struct OamData gOamData_83ECA6C = { + .size = 1, .priority = 1 +}; + +const union AnimCmd gSpriteAnim_83ECA74[] = { + ANIMCMD_FRAME(.imageValue = 0, .duration = 0), + ANIMCMD_END +}; + +const union AnimCmd *const gSpriteAnimTable_83ECA7C[] = { + gSpriteAnim_83ECA74 +}; + +const struct SpriteFrameImage gSpriteImageTable_83ECA80[] = { + obj_frame_tiles(gSpriteImage_83EC9DC) +}; + +const struct SpriteTemplate gSpriteTemplate_83ECA88 = { + .tileTag = 0xffff, + .paletteTag = 8, + .oam = &gOamData_83ECA6C, + .anims = gSpriteAnimTable_83ECA7C, + .images = gSpriteImageTable_83ECA80, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8101698 +}; + +const struct YesNoFuncTable gUnknown_083ECAA0 = {.yesFunc = sub_8101848, .noFunc = sub_80FED3C}; + +u8 *const unref_label_083ECAA8[] = {ewram}; + +// text + +extern u8 gUnknown_0815F399[]; + +void sub_80FE1DC(void) +{ + sub_80FE2B4(); + MenuDrawTextWindow(0, 0, 10, 9); + PrintMenuItems(1, 1, 4, (const struct MenuAction *)gUnknown_083EC604); + InitMenu(0, 1, 1, 4, gUnknown_020388D4, 9); +} + +void sub_80FE220(void) +{ + gUnknown_020388D4 = 0; + ScriptContext2_Enable(); + sub_80FE1DC(); + sub_80FE394(); +} + +void DecorationPC(u8 taskId) +{ + sub_80FE220(); + gTasks[taskId].func = Task_DecorationPCProcessMenuInput; +} + +void Task_SecretBasePC_Decoration(u8 taskId) +{ + DecorationPC(taskId); + ewram_1f000.items = gSaveBlock1.secretBases[0].decorations; + ewram_1f000.pos = gSaveBlock1.secretBases[0].decorationPos; + ewram_1f000.size = sizeof gSaveBlock1.secretBases[0].decorations; + ewram_1f000.isPlayerRoom = 0; +} + +void DoPlayerPCDecoration(u8 taskId) +{ + DecorationPC(taskId); + ewram_1f000.items = gSaveBlock1.playerRoomDecor; + ewram_1f000.pos = gSaveBlock1.playerRoomDecorPos; + ewram_1f000.size = sizeof gSaveBlock1.playerRoomDecor; + ewram_1f000.isPlayerRoom = 1; +} + +void sub_80FE2B4(void) +{ + u16 palettes[3]; + memcpy(palettes, gUnknown_083EC654, sizeof gUnknown_083EC654); + LoadPalette(&palettes[2], 0xdf, 2); + LoadPalette(&palettes[1], 0xd1, 2); + LoadPalette(&palettes[0], 0xd8, 2); +} + +void Task_DecorationPCProcessMenuInput(u8 taskId) +{ + if (!gPaletteFade.active) + { + if (gMain.newKeys & DPAD_UP) + { + PlaySE(SE_SELECT); + gUnknown_020388D4 = MoveMenuCursor(-1); + sub_80FE394(); + } + if (gMain.newKeys & DPAD_DOWN) + { + PlaySE(SE_SELECT); + gUnknown_020388D4 = MoveMenuCursor(1); + sub_80FE394(); + } + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + gUnknown_083EC604[gUnknown_020388D4].func(taskId); + } else if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + gpu_pal_decompress_alloc_tag_and_upload(taskId); + } + } +} + +void sub_80FE394(void) +{ + MenuFillWindowRectWithBlankTile(2, 15, 27, 18); + MenuPrint(gUnknown_083EC624[gUnknown_020388D4], 2, 15); +} + +void gpu_pal_decompress_alloc_tag_and_upload(u8 taskId) +{ + HandleDestroyMenuCursors(); + MenuZeroFillWindowRect(0, 0, 10, 9); + MenuFillWindowRectWithBlankTile(2, 15, 27, 18); + FreeSpritePaletteByTag(6); + if (ewram_1f000.isPlayerRoom == 0) + { + ScriptContext1_SetupScript(gUnknown_0815F399); + DestroyTask(taskId); + } else + { + ReshowPlayerPC(taskId); + } +} + +void sub_80FE418(u8 taskId) +{ + sub_80FE5AC(taskId); +} + +void sub_80FE428(u8 taskId) +{ + InitMenu(0, 1, 1, 4, gUnknown_020388D4, 9); + sub_80FE394(); + gTasks[taskId].func = Task_DecorationPCProcessMenuInput; +} + +void sub_80FE470(u8 decoCat, u8 left, u8 top, u8 palIdx) // PrintDecorationCategorySelectionMenuString +{ + u8 *strptr; + u8 v0; + v0 = sub_8072CBC(); + // PALETTE {palIdx} + strptr = gStringVar4; + strptr[0] = EXT_CTRL_CODE_BEGIN; + strptr[1] = 5; + strptr[2] = palIdx; + strptr += 3; + strptr = StringCopy(strptr, gUnknown_083EC5E4[decoCat]); + strptr = sub_8072C14(strptr, sub_8134194(decoCat), 0x56, 1); + *strptr++ = 0xba; + strptr = sub_8072C14(strptr, gDecorationInventories[decoCat].size, 0x68, 1); + strptr[0] = EXT_CTRL_CODE_BEGIN; + strptr[1] = 5; + strptr[2] = v0; + strptr[3] = EOS; + MenuPrint(gStringVar4, left, top); +} + +void sub_80FE528(u8 taskId) // PrintDecorationCategorySelectionMenuStrings +{ + u8 decoCat; + MenuDrawTextWindow(0, 0, 14, 19); + for (decoCat=0; decoCat<8; decoCat++) + { + if (ewram_1f000.isPlayerRoom == 1 && gTasks[taskId].data[11] == 0 && decoCat != DECORCAT_DOLL && decoCat != DECORCAT_CUSHION) + { + sub_80FE470(decoCat, 1, 2 * decoCat + 1, 13); // Selectable + } else + { + sub_80FE470(decoCat, 1, 2 * decoCat + 1, 255); // Unselectable + } + } + MenuPrint(gUnknownText_Exit, 1, 17); +} + +void sub_80FE5AC(u8 taskId) +{ + HandleDestroyMenuCursors(); + MenuZeroFillWindowRect(0, 0, 29, 19); + sub_80FE528(taskId); + InitMenu(0, 1, 1, 9, gUnknown_020388F6, 13); + gTasks[taskId].func = sub_80FE604; +} + +void sub_80FE604(u8 taskId) +{ + if (!gPaletteFade.active) + { + if (gMain.newAndRepeatedKeys & DPAD_UP) + { + PlaySE(SE_SELECT); + MoveMenuCursor(-1); + } else if (gMain.newAndRepeatedKeys & DPAD_DOWN) + { + PlaySE(SE_SELECT); + MoveMenuCursor(1); + } else if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + gUnknown_020388F6 = GetMenuCursorPos(); + if (gUnknown_020388F6 != 8) + { + gUnknown_020388D5 = sub_8134194(gUnknown_020388F6); + if (gUnknown_020388D5) + { + sub_8134104(gUnknown_020388F6); + gUnknown_020388D0 = gDecorationInventories[gUnknown_020388F6].items; + sub_80FEF50(taskId); + sub_80F944C(); + sub_80F9480(gUnknown_020388F7, 8); + LoadScrollIndicatorPalette(); + gTasks[taskId].func = sub_80FE868; + } else + { + HandleDestroyMenuCursors(); + MenuZeroFillWindowRect(0, 0, 14, 19); + DisplayItemMessageOnField(taskId, gSecretBaseText_NoDecors, sub_80FE418, 0); + } + } else + { + sub_80FE728(taskId); + } + } else if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + sub_80FE728(taskId); + } + } +} + +void sub_80FE728(u8 taskId) +{ + if (gTasks[taskId].data[11] != 3) + { + sub_80FE758(taskId); + } else + { + sub_8109DAC(taskId); + } +} + +void sub_80FE758(u8 taskId) +{ + HandleDestroyMenuCursors(); + MenuZeroFillWindowRect(0, 0, 14, 19); + if (gTasks[taskId].data[11] != 2) + { + sub_80FE1DC(); + MenuDisplayMessageBox(); + sub_80FE394(); + gTasks[taskId].func = Task_DecorationPCProcessMenuInput; + } else + { + sub_80B3068(taskId); + } +} + +void sub_80FE7A8(u8 taskId) { - sub_8072DEC(); + gTasks[taskId].data[11] = 3; + gUnknown_020388F6 = 0; + sub_80FE5AC(taskId); +} + +void sub_80FE7D4(u8 *dest, u8 decClass) +{ + StringCopy(dest, gUnknown_083EC5E4[decClass]); +} + +void sub_80FE7EC(u8 taskId) +{ + HandleDestroyMenuCursors(); MenuZeroFillWindowRect(0, 0, 29, 19); - sub_80FEC94(arg0); + sub_80FEC94(taskId); sub_80FECB8(gUnknown_020388F6); MenuDrawTextWindow(15, 12, 29, 19); @@ -25,3 +1789,2410 @@ void sub_80FE7EC(u8 arg0) sub_80FECE0(gUnknown_020388F2 + gUnknown_020388F4); InitMenu(0, 1, 2, gUnknown_020388F3 + 1, gUnknown_020388F2, 13); } + +void sub_80FE868(u8 taskId) +{ + sub_80FE7EC(taskId); + gTasks[taskId].func = sub_80FE948; +} + +void sub_80FE894(u8 taskId /*r8*/, s8 cursorVector /*r5*/, s8 bgVector /*r7*/) +{ + int v0 /*r10*/; + u8 v1; + v0 = gUnknown_020388F2 + gUnknown_020388F4 == gUnknown_020388D5; + PlaySE(SE_SELECT); + if (cursorVector != 0) + { + gUnknown_020388F2 = MoveMenuCursor(cursorVector); + } + if (bgVector != 0) + { + v1 = gUnknown_020388F4; + gUnknown_020388F4 = v1 + bgVector; + sub_80FEABC(taskId, 1); + } + if (gUnknown_020388F2 + gUnknown_020388F4 != gUnknown_020388D5) + { + if (v0) + { + MenuDrawTextWindow(15, 12, 29, 19); + } + sub_80FECE0(gUnknown_020388F2 + gUnknown_020388F4); + } else + { + MenuZeroFillWindowRect(15, 12, 29, 19); + } +} + +void sub_80FE948(u8 taskId) +{ + if (!gPaletteFade.active) + { + if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_UP) + { + if (gUnknown_020388F2 != 0) + { + sub_80FE894(taskId, -1, 0); + } else if (gUnknown_020388F4 != 0) + { + sub_80FE894(taskId, 0, -1); + } + } + if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_DOWN) + { + if (gUnknown_020388F2 != gUnknown_020388F3) + { + sub_80FE894(taskId, 1, 0); + } else if (gUnknown_020388F4 + gUnknown_020388F2 != gUnknown_020388D5) + { + sub_80FE894(taskId, 0, 1); + } + } + if (gMain.newKeys & A_BUTTON) + { + HandleDestroyMenuCursors(); + PlaySE(SE_SELECT); + gUnknown_020388F5 = gUnknown_020388F2 + gUnknown_020388F4; + if (gUnknown_020388F5 == gUnknown_020388D5) + { + gUnknown_083EC634[gTasks[taskId].data[11]].func2(taskId); + } else + { + gUnknown_083EC634[gTasks[taskId].data[11]].func1(taskId); + } + } else if (gMain.newKeys & B_BUTTON) + { + HandleDestroyMenuCursors(); + PlaySE(SE_SELECT); + gUnknown_083EC634[gTasks[taskId].data[11]].func2(taskId); + } + } +} + +void sub_80FEABC(u8 taskId, u8 dummy1) +{ + u16 i; + u16 j; + u8 ni; + if (gUnknown_020388F4 != 0 || (DestroyVerticalScrollIndicator(0), gUnknown_020388F4 != 0)) + { + CreateVerticalScrollIndicators(0, 0x3c, 0x08); + } + if (gUnknown_020388F4 + 7 == gUnknown_020388D5) + { + DestroyVerticalScrollIndicator(1); + } + if (gUnknown_020388F4 + 7 < gUnknown_020388D5) + { + CreateVerticalScrollIndicators(1, 0x3c, 0x98); + } + for (i=gUnknown_020388F4; i<gUnknown_020388F4+8; i++) + { + ni = 2 * (i - gUnknown_020388F4) + 2; + if (gUnknown_020388F7[i - gUnknown_020388F4]) + { + sub_80F94F8(&gUnknown_020388F7[i - gUnknown_020388F4]); + } + if (i == gUnknown_020388D5) + { + sub_8072A18(gUnknownText_Exit, 0x08, 8 * ni, 0x68, 1); + break; + } + if (gUnknown_020388D0[i]) + { + if (ewram_1f000.isPlayerRoom == 1 && gUnknown_020388F6 != DECORCAT_DOLL && gUnknown_020388F6 != DECORCAT_CUSHION && gTasks[taskId].data[11] == 0) + { + StringCopy(gStringVar1, gDecorations[gUnknown_020388D0[i]].name); + sub_8072A18(gUnknown_083EC65A, 0x08, 8 * ni, 0x68, 1); + } else + { + sub_8072A18(gDecorations[gUnknown_020388D0[i]].name, 0x08, 8 * ni, 0x68, 1); + } + for (j=0; j<16; j++) + { + if (gUnknown_020388D6[j] - 1 == i) + { + sub_80F94A4(4, &gUnknown_020388F7[i - gUnknown_020388F4], 0x6c, (i - gUnknown_020388F4) * 16 + 24); + break; + } + } + for (j=0; j<12; j++) + { + if (gUnknown_020388E6[j] - 1 == i) + { + sub_80F94A4(5, &gUnknown_020388F7[i - gUnknown_020388F4], 0x6c, (i - gUnknown_020388F4) * 16 + 24); + break; + } + } + } + } +} + +void sub_80FEC94(u8 taskId) +{ + MenuDrawTextWindow(0, 0, 14, 19); + sub_80FEABC(taskId, 0); +} + +void sub_80FECB8(u8 decoCat) +{ + MenuDrawTextWindow(15, 0, 29, 3); + sub_80FE470(decoCat, 16, 1, 0xff); +} + +void sub_80FECE0(u8 decoCat) +{ + sub_8072AB0(gDecorations[gUnknown_020388D0[decoCat]].description, 0x80, 0x68, 0x68, 0x30, 0x1); +} + +void sub_80FED1C(void) +{ + MenuZeroFillWindowRect(15, 0, 29, 3); + MenuZeroFillWindowRect(15, 12, 29, 19); +} + +void sub_80FED3C(u8 taskId) +{ + LoadScrollIndicatorPalette(); + gTasks[taskId].func = sub_80FE868; +} + +bool8 sub_80FED64(u8 a0) +{ + u8 i; + for (i=0; i<16; i++) + { + if (gUnknown_020388D6[i] == a0) + { + return TRUE; + } + } + return FALSE; +} + +void sub_80FED90(u8 taskId) +{ + u16 i; + u16 j; + u16 k; + u16 cnt; + cnt = 0; + for (i=0; i<16; i++) + { + gUnknown_020388D6[i] = 0; + if (i < 12) + { + gUnknown_020388E6[i] = 0; + } + } + for (i=0; i<16; i++) + { + if (gSaveBlock1.secretBases[0].decorations[i] != 0) + { + for (j=0; j<gDecorationInventories[gUnknown_020388F6].size; j++) + { + if (gUnknown_020388D0[j] == gSaveBlock1.secretBases[0].decorations[i]) + { + for (k=0; k<cnt && gUnknown_020388D6[k]!=j+1; k++); + if (k == cnt) + { + gUnknown_020388D6[cnt] = j+1; + cnt++; + break; + } + } + } + } + } + cnt = 0; + for (i=0; i<12; i++) + { + if (gSaveBlock1.playerRoomDecor[i] != 0) + { + for (j=0; j<gDecorationInventories[gUnknown_020388F6].size; j++) + { + if (gUnknown_020388D0[j] == gSaveBlock1.playerRoomDecor[i] && !sub_80FED64(j + 1)) + { + for (k=0; k<cnt && gUnknown_020388E6[k]!=j+1; k++); + if (k == cnt) + { + gUnknown_020388E6[cnt] = j+1; + cnt++; + break; + } + } + } + } + } +} + +void sub_80FEF28(void) +{ + if (gUnknown_020388D5 <= 7) + { + gUnknown_020388F3 = gUnknown_020388D5; + } else + { + gUnknown_020388F3 = 7; + } +} + +void sub_80FEF50(u8 taskId) +{ + sub_80FED90(taskId); + sub_80FEF28(); + gUnknown_020388F2 = 0; + gUnknown_020388F4 = 0; +} + +void sub_80FEF74(void) +{ + sub_80F9520(gUnknown_020388F7, 8); + DestroyVerticalScrollIndicator(0); + DestroyVerticalScrollIndicator(1); + HandleDestroyMenuCursors(); + MenuZeroFillWindowRect(0, 0, 14, 19); +} + +bool8 sub_80FEFA4(void) +{ + u16 i; + int v0; + for (i=0; i<16; i++) + { + v0 = gUnknown_020388F4 + gUnknown_020388F2 + 1; + if (gUnknown_020388D6[i] == v0 || (i < 12 && gUnknown_020388E6[i] == v0)) + { + return FALSE; + } + } + return TRUE; +} + +void sub_80FEFF4(u8 taskId) +{ + if (gMain.newKeys & A_BUTTON || gMain.newKeys & B_BUTTON) + { + LoadScrollIndicatorPalette(); + gTasks[taskId].func = sub_80FE868; + } +} + +void sub_80FF034(u8 taskId) +{ + HandleDestroyMenuCursors(); + MenuZeroFillWindowRect(0, 0, 14, 19); + sub_80FE5AC(taskId); +} + +void sub_80FF058(u8 taskId) +{ + sub_80F9520(gUnknown_020388F7, 8); + DestroyVerticalScrollIndicator(0); + DestroyVerticalScrollIndicator(1); + BuyMenuFreeMemory(); + gTasks[taskId].func = sub_80FF034; +} + +void sub_80FF098(u8 taskId) +{ + gUnknown_020388D5--; + if (gUnknown_020388F4 + 7 > gUnknown_020388D5 && gUnknown_020388F4 != 0) + { + gUnknown_020388F4--; + } + sub_8134104(gUnknown_020388F6); + sub_80FED90(taskId); + sub_80FEF28(); +} + +void sub_80FF0E0(u8 taskId) +{ + gTasks[taskId].data[3] = gSaveBlock1.pos.x; + gTasks[taskId].data[4] = gSaveBlock1.pos.y; + PlayerGetDestCoords(&gTasks[taskId].data[0], &gTasks[taskId].data[1]); +} + +void sub_80FF114(u8 taskId) +{ + DrawWholeMapView(); + warp1_set(gSaveBlock1.location.mapGroup, gSaveBlock1.location.mapNum, -1, gTasks[taskId].data[3], gTasks[taskId].data[4]); + warp_in(); +} +void sub_80FF160(u8 taskId) +{ + if (!sub_81341D4()) + { + DisplayItemMessageOnField(taskId, gSecretBaseText_NoDecors, sub_80FE428, 0); + } else + { + gTasks[taskId].data[11] = 0; + gUnknown_020388F6 = 0; + sub_80FE5AC(taskId); + } +} + +u16 sub_80FF1B0(u8 decoId, u8 a1) +{ + u16 retval; + retval = 0xffff; + + switch (decoId) + { + case DECOR_STAND: + retval = gUnknown_083EC97C[a1] << 12; + return retval; + case DECOR_SLIDE: + retval = gUnknown_083EC984[a1] << 12; + return retval; + default: + return retval; + } +} + +void sub_80FF1EC(u16 mapX, u16 mapY, u8 decWidth, u8 decHeight, u16 decIdx) +{ + u16 i; + u16 j; // r10 + u16 behavior; + u16 flags; // r8 + u16 v0; + u16 v1; + s16 x; + s16 decBottom; + + for (i=0; i<decHeight; i++) + { + decBottom = mapY - decHeight + 1 + i; + for (j=0; j<decWidth; j++) + { + x = mapX + j; + behavior = GetBehaviorByMetatileId(0x200 + gDecorations[decIdx].tiles[i * decWidth + j]); + if (sub_8057288(behavior) == 1 || (gDecorations[decIdx].permission != DECORPERM_PASS_FLOOR && (behavior >> 12))) + { + flags = 0xc00; + } else + { + flags = 0x000; + } + if (gDecorations[decIdx].permission != DECORPERM_NA_WALL && sub_80572B0(MapGridGetMetatileBehaviorAt(x, decBottom)) == 1) + { + v0 = 1; + } else + { + v0 = 0; + } + v1 = sub_80FF1B0(gDecorations[decIdx].id, i * decWidth + j); + if (v1 != 0xffff) + { + MapGridSetMetatileEntryAt(x, decBottom, (gDecorations[decIdx].tiles[i * decWidth + j] + (0x200 | v0)) | flags | v1); + } else + { + MapGridSetMetatileIdAt(x, decBottom, (gDecorations[decIdx].tiles[i * decWidth + j] + (0x200 | v0)) | flags); + } + } + } +} + +void sub_80FF394(u16 mapX, u16 mapY, u16 decIdx) +{ + switch (gDecorations[decIdx].shape) + { + case DECORSHAPE_1x1: + sub_80FF1EC(mapX, mapY, 1, 1, decIdx); + break; + case DECORSHAPE_2x1: + sub_80FF1EC(mapX, mapY, 2, 1, decIdx); + break; + case DECORSHAPE_3x1: // unused + sub_80FF1EC(mapX, mapY, 3, 1, decIdx); + break; + case DECORSHAPE_4x2: + sub_80FF1EC(mapX, mapY, 4, 2, decIdx); + break; + case DECORSHAPE_2x2: + sub_80FF1EC(mapX, mapY, 2, 2, decIdx); + break; + case DECORSHAPE_1x2: + sub_80FF1EC(mapX, mapY, 1, 2, decIdx); + break; + case DECORSHAPE_1x3: // unused + sub_80FF1EC(mapX, mapY, 1, 3, decIdx); + break; + case DECORSHAPE_2x4: + sub_80FF1EC(mapX, mapY, 2, 4, decIdx); + break; + case DECORSHAPE_3x3: + sub_80FF1EC(mapX, mapY, 3, 3, decIdx); + break; + case DECORSHAPE_3x2: + sub_80FF1EC(mapX, mapY, 3, 2, decIdx); + break; + } +} + +void sub_80FF474(void) +{ + u8 i; + u8 j; + for (i=0; i<14; i++) + { + if (FlagGet(i + 0xae) == 1) + { + FlagReset(i + 0xae); + for (j=0; j<gMapHeader.events->mapObjectCount; j++) + { + if (gMapHeader.events->mapObjects[j].flagId == i + 0xae) + { + break; + } + } + VarSet(0x3f20 + gMapHeader.events->mapObjects[j].graphicsId, gUnknown_02038900.decoration->tiles[0]); + gSpecialVar_0x8005 = gMapHeader.events->mapObjects[j].localId; + gSpecialVar_0x8006 = gUnknown_020391A4; + gSpecialVar_0x8007 = gUnknown_020391A6; + show_sprite(gSpecialVar_0x8005, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup); + sub_805C0F8(gSpecialVar_0x8005, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup, gSpecialVar_0x8006, gSpecialVar_0x8007); + sub_805C78C(gSpecialVar_0x8005, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup); + break; + } + } +} + +bool8 sub_80FF58C/*IsThereRoomForMoreDecorations*/(void) +{ + u16 i; + for (i=0; i<ewram_1f000.size; i++) + { + if (ewram_1f000.items[i] == 0) + { + return TRUE; + } + } + return FALSE; +} + +void sub_80FF5BC(u8 taskId) +{ + if (ewram_1f000.isPlayerRoom == 1 && gUnknown_020388F6 != DECORCAT_DOLL && gUnknown_020388F6 != DECORCAT_CUSHION) + { + sub_80FEF74(); + sub_80FED1C(); + DisplayItemMessageOnField(taskId, gSecretBaseText_DecorCantPlace, sub_80FEFF4, 0); + } else if (sub_80FEFA4() == TRUE) + { + if (sub_80FF58C() == TRUE) + { + fade_screen(1, 0); + gTasks[taskId].data[2] = 0; + gTasks[taskId].func = sub_80FF6AC; + } else + { + sub_80FEF74(); + sub_80FED1C(); + ConvertIntToDecimalStringN(gStringVar1, ewram_1f000.size, STR_CONV_MODE_RIGHT_ALIGN, 2); + if (!ewram_1f000.isPlayerRoom) + { + StringExpandPlaceholders(gStringVar4, gSecretBaseText_NoMoreDecor); + } else + { + StringExpandPlaceholders(gStringVar4, gSecretBaseText_NoMoreDecor2); + } + DisplayItemMessageOnField(taskId, gStringVar4, sub_80FEFF4, 0); + } + } else + { + sub_80FEF74(); + sub_80FED1C(); + DisplayItemMessageOnField(taskId, gSecretBaseText_InUseAlready, sub_80FEFF4, 0); + } +} + +void sub_80FF6AC(u8 taskId) +{ + switch (gTasks[taskId].data[2]) + { + case 0: + if (!gPaletteFade.active) + { + sub_80FF0E0(taskId); + DestroyVerticalScrollIndicator(0); + DestroyVerticalScrollIndicator(1); + sub_80F9520(gUnknown_020388F7, 8); + BuyMenuFreeMemory(); + gTasks[taskId].data[2] = 1; + } + break; + case 1: + gPaletteFade.bufferTransferDisabled = 1; + AddDecorationIconObjectFromFieldObject(&gUnknown_02038900, gUnknown_020388D0[gUnknown_020388F5]); + sub_80FF960(taskId); + SetUpPlacingDecorationPlayerAvatar(taskId, &gUnknown_02038900); + pal_fill_black(); + gPaletteFade.bufferTransferDisabled = 0; + gTasks[taskId].data[2] = 2; + break; + case 2: + if (sub_807D770() == 1) + { + gTasks[taskId].data[12] = 0; + sub_810065C(taskId); + } + break; + } +} + +void AddDecorationIconObjectFromFieldObject(struct UnkStruct_02038900 * unk_02038900, u8 decoIdx) +{ + sub_80FEF74(); + sub_80FED1C(); + sub_81006D0(unk_02038900); + unk_02038900->decoration = &gDecorations[decoIdx]; + if (gDecorations[decoIdx].permission != DECORPERM_SOLID_MAT) + { + sub_81008BC(unk_02038900); + sub_8100930(unk_02038900->decoration->shape); + sub_8100874(unk_02038900); + sub_810070C(unk_02038900->palette, ((u16 *)gMapHeader.mapData->secondaryTileset->metatiles + 8 * unk_02038900->decoration->tiles[0])[7] >> 12); + LoadSpritePalette(&gUnknown_083EC954); + gUnknown_020391A8 = gSprites[gUnknown_03004880.unk4].data0; + gUnknown_03004880.unk4 = CreateSprite(&gSpriteTemplate_83EC93C, gUnknown_083EC900[unk_02038900->decoration->shape].x, gUnknown_083EC900[unk_02038900->decoration->shape].y, 0); + } else + { + gUnknown_020391A8 = gSprites[gUnknown_03004880.unk4].data0; + gUnknown_03004880.unk4 = AddPseudoFieldObject(unk_02038900->decoration->tiles[0], sub_81009A8, gUnknown_083EC900[unk_02038900->decoration->shape].x, gUnknown_083EC900[unk_02038900->decoration->shape].y, 1); + gSprites[gUnknown_03004880.unk4].oam.priority = 1; + } +} + +void SetUpPlacingDecorationPlayerAvatar(u8 taskId, struct UnkStruct_02038900 *unk_02038900) +{ + u8 v0; + v0 = 16 * (u8)gTasks[taskId].data[5] + gUnknown_083EC900[unk_02038900->decoration->shape].x - 8 * ((u8)gTasks[taskId].data[5] - 1); + if (unk_02038900->decoration->shape == DECORSHAPE_3x1 || unk_02038900->decoration->shape == DECORSHAPE_3x3 || unk_02038900->decoration->shape == DECORSHAPE_3x2) + { + v0 -= 8; + } + if (gSaveBlock2.playerGender == MALE) + { + gUnknown_020391A9 = AddPseudoFieldObject(0xc1, SpriteCallbackDummy, v0, 0x48, 0); + } else + { + gUnknown_020391A9 = AddPseudoFieldObject(0xc2, SpriteCallbackDummy, v0, 0x48, 0); + } + gSprites[gUnknown_020391A9].oam.priority = 1; + DestroySprite(&gSprites[gUnknown_020391A8]); + gUnknown_020391A8 = gUnknown_03004880.unk4; +} + +void sub_80FF960(u8 taskId) +{ + switch (gDecorations[gUnknown_020388D0[gUnknown_020388F5]].shape) + { + case DECORSHAPE_1x1: + gTasks[taskId].data[5] = 1; + gTasks[taskId].data[6] = 1; + break; + case DECORSHAPE_2x1: + gTasks[taskId].data[5] = 2; + gTasks[taskId].data[6] = 1; + break; + case DECORSHAPE_3x1: + gTasks[taskId].data[5] = 3; + gTasks[taskId].data[6] = 1; + break; + case DECORSHAPE_4x2: + gTasks[taskId].data[5] = 4; + gTasks[taskId].data[6] = 2; + break; + case DECORSHAPE_2x2: + gTasks[taskId].data[5] = 2; + gTasks[taskId].data[6] = 2; + break; + case DECORSHAPE_1x2: + gTasks[taskId].data[5] = 1; + gTasks[taskId].data[6] = 2; + break; + case DECORSHAPE_1x3: + gTasks[taskId].data[5] = 1; + gTasks[taskId].data[6] = 3; + gTasks[taskId].data[1]++; + break; + case DECORSHAPE_2x4: + gTasks[taskId].data[5] = 2; + gTasks[taskId].data[6] = 4; + break; + case DECORSHAPE_3x3: + gTasks[taskId].data[5] = 3; + gTasks[taskId].data[6] = 3; + break; + case DECORSHAPE_3x2: + gTasks[taskId].data[5] = 3; + gTasks[taskId].data[6] = 2; + break; + } +} + +void sub_80FFAB0(u8 taskId) +{ + gTasks[taskId].data[10] = 0; + gSprites[gUnknown_020391A8].data7 = 1; + gSprites[gUnknown_020391A9].data7 = 1; + sub_810045C(); + sub_8100038(taskId); +} + +void sub_80FFB08(u8 taskId) +{ + gTasks[taskId].data[10] = 0; + gSprites[gUnknown_020391A8].data7 = 1; + gSprites[gUnknown_020391A9].data7 = 1; + sub_810045C(); + DisplayItemMessageOnField(taskId, gSecretBaseText_CancelDecorating, sub_8100248, 0); +} + +bool8 sub_80FFB6C(u8 a0, u16 a1) +{ + if (sub_8057274(a0) != 1 || a1 != 0) + { + return FALSE; + } + return TRUE; +} + +bool8 sub_80FFB94(u8 taskId, s16 x, s16 y, u16 decoId) +{ + if (x == gTasks[taskId].data[3] + 7 && y == gTasks[taskId].data[4] + 7 && decoId != 0) + { + return FALSE; + } + return TRUE; +} + +bool8 sub_80FFBDC(u16 a0, const struct Decoration *decoration) +{ + if (sub_8057274(a0) != 1) + { + if (decoration->id == DECOR_SOLID_BOARD && sub_8057300(a0) == 1) + { + return TRUE; + } + if (sub_805729C(a0)) + { + return TRUE; + } + } + return FALSE; +} + +// When behaviorBy is set, it is masked by 0xf000. This is the step that fails to match when built. +#ifdef NONMATCHING +bool8 sub_80FFC24(u8 taskId, const struct Decoration *decoration) +{ + u8 i; + u8 j; + u8 behaviorAt; + u16 behaviorBy; + u8 mapY; + u8 mapX; + s16 curY; + s16 curX; + mapY = gTasks[taskId].data[6]; + mapX = gTasks[taskId].data[5]; + switch (decoration->permission) + { + case DECORPERM_SOLID_FLOOR: + case DECORPERM_PASS_FLOOR: + for (i=0; i<mapY; i++) + { + curY = gTasks[taskId].data[1] - i; + for (j=0; j<mapX; j++) + { + curX = gTasks[taskId].data[0] + j; + behaviorAt = MapGridGetMetatileBehaviorAt(curX, curY); + behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[(mapY - 1 - i) * mapX + j]) & 0xf000; + if (!sub_80FFBDC(behaviorAt, decoration)) + { + return FALSE; + } + if (!sub_80FFB94(taskId, curX, curY, behaviorBy)) + { + return FALSE; + } + behaviorAt = GetFieldObjectIdByXYZ(curX, curY, 0); + if (behaviorAt != 0 && behaviorAt != 16) + { + return FALSE; + } + } + } + break; + case DECORPERM_BEHIND_FLOOR: + for (i=0; i<mapY-1; i++) + { + curY = gTasks[taskId].data[1] - i; + for (j=0; j<mapX; j++) + { + curX = gTasks[taskId].data[0] + j; + behaviorAt = MapGridGetMetatileBehaviorAt(curX, curY); + behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[(mapY - 1 - i) * mapX + j]) & 0xf000; + if (!sub_805729C(behaviorAt) && !sub_80FFB6C(behaviorAt, behaviorBy)) + { + return FALSE; + } + if (!sub_80FFB94(taskId, curX, curY, behaviorBy)) + { + return FALSE; + } + if (GetFieldObjectIdByXYZ(curX, curY, 0) != 16) + { + return FALSE; + } + } + } + curY = gTasks[taskId].data[1] - mapY + 1; + for (j=0; j<mapX; j++) + { + curX = gTasks[taskId].data[0] + j; + behaviorAt = MapGridGetMetatileBehaviorAt(curX, curY); + behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[j]) & 0xf000; + if (!sub_805729C(behaviorAt) && !sub_80572B0(behaviorAt)) + { + return FALSE; + } + if (!sub_80FFB94(taskId, curX, curY, behaviorBy)) + { + return FALSE; + } + behaviorAt = GetFieldObjectIdByXYZ(curX, curY, 0); + if (behaviorAt != 0 && behaviorAt != 16) + { + return FALSE; + } + } + break; + case DECORPERM_NA_WALL: + for (i=0; i<mapY; i++) + { + curY = gTasks[taskId].data[1] - i; + for (j=0; j<mapX; j++) + { + curX = gTasks[taskId].data[0] + j; + if (!sub_80572B0(MapGridGetMetatileBehaviorAt(curX, curY))) + { + return FALSE; + } + if (MapGridGetMetatileIdAt(curX, curY + 1) == 0x28c) + { + return FALSE; + } + } + } + break; + case DECORPERM_SOLID_MAT: + curY = gTasks[taskId].data[1]; + for (j=0; j<mapX; j++) + { + curX = gTasks[taskId].data[0] + j; + behaviorAt = MapGridGetMetatileBehaviorAt(curX, curY); + if (decoration->shape == DECORSHAPE_1x2) + { + if (!sub_80572EC(behaviorAt)) + { + return FALSE; + } + } + else if (!sub_80572D8(behaviorAt)) + { + if (!sub_80572EC(behaviorAt)) + { + return FALSE; + } + } + if (GetFieldObjectIdByXYZ(curX, curY, 0) != 16) + { + return FALSE; + } + } + break; + } + return TRUE; +} +#else +__attribute__((naked)) +bool8 sub_80FFC24(u8 taskId, const struct Decoration *decoration) +{ + asm(".syntax unified\n" + "\tpush {r4-r7,lr}\n" + "\tmov r7, r10\n" + "\tmov r6, r9\n" + "\tmov r5, r8\n" + "\tpush {r5-r7}\n" + "\tsub sp, 0x24\n" + "\tstr r1, [sp]\n" + "\tlsls r0, 24\n" + "\tlsrs r0, 24\n" + "\tmov r10, r0\n" + "\tldr r1, _080FFC60 @ =gTasks\n" + "\tlsls r0, 2\n" + "\tadd r0, r10\n" + "\tlsls r0, 3\n" + "\tadds r0, r1\n" + "\tldrb r2, [r0, 0x14]\n" + "\tstr r2, [sp, 0x4]\n" + "\tldrb r0, [r0, 0x12]\n" + "\tstr r0, [sp, 0x8]\n" + "\tldr r3, [sp]\n" + "\tldrb r0, [r3, 0x11]\n" + "\tadds r2, r1, 0\n" + "\tcmp r0, 0x4\n" + "\tbls _080FFC56\n" + "\tb _08100024\n" + "_080FFC56:\n" + "\tlsls r0, 2\n" + "\tldr r1, _080FFC64 @ =_080FFC68\n" + "\tadds r0, r1\n" + "\tldr r0, [r0]\n" + "\tmov pc, r0\n" + "\t.align 2, 0\n" + "_080FFC60: .4byte gTasks\n" + "_080FFC64: .4byte _080FFC68\n" + "\t.align 2, 0\n" + "_080FFC68:\n" + "\t.4byte _080FFC7C\n" + "\t.4byte _080FFC7C\n" + "\t.4byte _080FFD68\n" + "\t.4byte _080FFF1C\n" + "\t.4byte _080FFFA0\n" + "_080FFC7C:\n" + "\tmovs r6, 0\n" + "\tldr r0, [sp, 0x4]\n" + "\tcmp r6, r0\n" + "\tbcc _080FFC86\n" + "\tb _08100024\n" + "_080FFC86:\n" + "\tmov r1, r10\n" + "\tlsls r1, 2\n" + "\tstr r1, [sp, 0x1C]\n" + "_080FFC8C:\n" + "\tmov r2, r10\n" + "\tlsls r0, r2, 2\n" + "\tadd r0, r10\n" + "\tlsls r0, 3\n" + "\tldr r3, _080FFD64 @ =gTasks\n" + "\tadds r0, r3\n" + "\tldrh r0, [r0, 0xA]\n" + "\tsubs r0, r6\n" + "\tlsls r0, 16\n" + "\tlsrs r0, 16\n" + "\tmov r9, r0\n" + "\tmovs r7, 0\n" + "\tadds r6, 0x1\n" + "\tstr r6, [sp, 0x14]\n" + "\tldr r0, [sp, 0x8]\n" + "\tcmp r7, r0\n" + "\tbcs _080FFD56\n" + "\tmov r1, r9\n" + "\tlsls r1, 16\n" + "\tstr r1, [sp, 0xC]\n" + "\tasrs r1, 16\n" + "\tmov r9, r1\n" + "_080FFCB8:\n" + "\tldr r0, [sp, 0x1C]\n" + "\tadd r0, r10\n" + "\tlsls r0, 3\n" + "\tldr r2, _080FFD64 @ =gTasks\n" + "\tadds r0, r2\n" + "\tldrh r0, [r0, 0x8]\n" + "\tadds r0, r7\n" + "\tlsls r0, 16\n" + "\tmov r8, r0\n" + "\tasrs r6, r0, 16\n" + "\tadds r0, r6, 0\n" + "\tmov r1, r9\n" + "\tbl MapGridGetMetatileBehaviorAt\n" + "\tlsls r0, 24\n" + "\tlsrs r4, r0, 24\n" + "\tldr r3, [sp, 0x4]\n" + "\tldr r1, [sp, 0x14]\n" + "\tsubs r0, r3, r1\n" + "\tldr r2, [sp, 0x8]\n" + "\tadds r1, r0, 0\n" + "\tmuls r1, r2\n" + "\tadds r1, r7\n" + "\tldr r3, [sp]\n" + "\tldr r0, [r3, 0x1C]\n" + "\tlsls r1, 1\n" + "\tadds r1, r0\n" + "\tmovs r2, 0x80\n" + "\tlsls r2, 2\n" + "\tadds r0, r2, 0\n" + "\tldrh r1, [r1]\n" + "\tadds r0, r1\n" + "\tlsls r0, 16\n" + "\tlsrs r0, 16\n" + "\tbl GetBehaviorByMetatileId\n" + "\tmovs r3, 0xF0\n" + "\tlsls r3, 8\n" + "\tadds r1, r3, 0\n" + "\tadds r5, r1, 0\n" + "\tands r5, r0\n" + "\tadds r0, r4, 0\n" + "\tldr r1, [sp]\n" + "\tbl sub_80FFBDC\n" + "\tlsls r0, 24\n" + "\tcmp r0, 0\n" + "\tbne _080FFD1A\n" + "\tb _080FFFF4\n" + "_080FFD1A:\n" + "\tmov r0, r10\n" + "\tadds r1, r6, 0\n" + "\tmov r2, r9\n" + "\tadds r3, r5, 0\n" + "\tbl sub_80FFB94\n" + "\tlsls r0, 24\n" + "\tcmp r0, 0\n" + "\tbne _080FFD2E\n" + "\tb _080FFFF4\n" + "_080FFD2E:\n" + "\tmov r1, r8\n" + "\tlsrs r0, r1, 16\n" + "\tldr r2, [sp, 0xC]\n" + "\tlsrs r1, r2, 16\n" + "\tmovs r2, 0\n" + "\tbl GetFieldObjectIdByXYZ\n" + "\tlsls r0, 24\n" + "\tlsrs r4, r0, 24\n" + "\tcmp r4, 0\n" + "\tbeq _080FFD4A\n" + "\tcmp r4, 0x10\n" + "\tbeq _080FFD4A\n" + "\tb _080FFFF4\n" + "_080FFD4A:\n" + "\tadds r0, r7, 0x1\n" + "\tlsls r0, 24\n" + "\tlsrs r7, r0, 24\n" + "\tldr r3, [sp, 0x8]\n" + "\tcmp r7, r3\n" + "\tbcc _080FFCB8\n" + "_080FFD56:\n" + "\tldr r1, [sp, 0x14]\n" + "\tlsls r0, r1, 24\n" + "\tlsrs r6, r0, 24\n" + "\tldr r2, [sp, 0x4]\n" + "\tcmp r6, r2\n" + "\tbcc _080FFC8C\n" + "\tb _08100024\n" + "\t.align 2, 0\n" + "_080FFD64: .4byte gTasks\n" + "_080FFD68:\n" + "\tmovs r6, 0\n" + "\tmov r3, r10\n" + "\tlsls r3, 2\n" + "\tstr r3, [sp, 0x1C]\n" + "\tldr r0, [sp, 0x4]\n" + "\tsubs r0, 0x1\n" + "\tstr r0, [sp, 0x18]\n" + "\tcmp r6, r0\n" + "\tbge _080FFE54\n" + "\tadds r0, r3, 0\n" + "\tadd r0, r10\n" + "\tlsls r0, 3\n" + "\tstr r0, [sp, 0x10]\n" + "_080FFD82:\n" + "\tldr r1, [sp, 0x10]\n" + "\tadds r0, r1, r2\n" + "\tldrh r0, [r0, 0xA]\n" + "\tsubs r0, r6\n" + "\tlsls r0, 16\n" + "\tlsrs r0, 16\n" + "\tmov r9, r0\n" + "\tmovs r7, 0\n" + "\tadds r6, 0x1\n" + "\tstr r6, [sp, 0x14]\n" + "\tldr r3, [sp, 0x8]\n" + "\tcmp r7, r3\n" + "\tbcs _080FFE48\n" + "\tlsls r0, 16\n" + "\tstr r0, [sp, 0x20]\n" + "_080FFDA0:\n" + "\tldr r1, [sp, 0x10]\n" + "\tadds r0, r1, r2\n" + "\tldrh r0, [r0, 0x8]\n" + "\tadds r0, r7\n" + "\tlsls r0, 16\n" + "\tmov r8, r0\n" + "\tasrs r6, r0, 16\n" + "\tmov r2, r9\n" + "\tlsls r1, r2, 16\n" + "\tadds r0, r6, 0\n" + "\tasrs r1, 16\n" + "\tbl MapGridGetMetatileBehaviorAt\n" + "\tlsls r0, 24\n" + "\tlsrs r4, r0, 24\n" + "\tldr r3, [sp, 0x4]\n" + "\tldr r1, [sp, 0x14]\n" + "\tsubs r0, r3, r1\n" + "\tldr r2, [sp, 0x8]\n" + "\tadds r1, r0, 0\n" + "\tmuls r1, r2\n" + "\tadds r1, r7\n" + "\tldr r3, [sp]\n" + "\tldr r0, [r3, 0x1C]\n" + "\tlsls r1, 1\n" + "\tadds r1, r0\n" + "\tmovs r2, 0x80\n" + "\tlsls r2, 2\n" + "\tadds r0, r2, 0\n" + "\tldrh r1, [r1]\n" + "\tadds r0, r1\n" + "\tlsls r0, 16\n" + "\tlsrs r0, 16\n" + "\tbl GetBehaviorByMetatileId\n" + "\tmovs r3, 0xF0\n" + "\tlsls r3, 8\n" + "\tadds r1, r3, 0\n" + "\tadds r5, r1, 0\n" + "\tands r5, r0\n" + "\tadds r0, r4, 0\n" + "\tbl sub_805729C\n" + "\tlsls r0, 24\n" + "\tcmp r0, 0\n" + "\tbne _080FFE0C\n" + "\tadds r0, r4, 0\n" + "\tadds r1, r5, 0\n" + "\tbl sub_80FFB6C\n" + "\tlsls r0, 24\n" + "\tcmp r0, 0\n" + "\tbne _080FFE0C\n" + "\tb _080FFFF4\n" + "_080FFE0C:\n" + "\tmov r0, r10\n" + "\tadds r1, r6, 0\n" + "\tldr r3, [sp, 0x20]\n" + "\tasrs r2, r3, 16\n" + "\tadds r3, r5, 0\n" + "\tbl sub_80FFB94\n" + "\tlsls r0, 24\n" + "\tcmp r0, 0\n" + "\tbne _080FFE22\n" + "\tb _080FFFF4\n" + "_080FFE22:\n" + "\tmov r1, r8\n" + "\tlsrs r0, r1, 16\n" + "\tldr r2, [sp, 0x20]\n" + "\tlsrs r1, r2, 16\n" + "\tmovs r2, 0\n" + "\tbl GetFieldObjectIdByXYZ\n" + "\tlsls r0, 24\n" + "\tlsrs r0, 24\n" + "\tcmp r0, 0x10\n" + "\tbeq _080FFE3A\n" + "\tb _080FFFF4\n" + "_080FFE3A:\n" + "\tadds r0, r7, 0x1\n" + "\tlsls r0, 24\n" + "\tlsrs r7, r0, 24\n" + "\tldr r2, _080FFF18 @ =gTasks\n" + "\tldr r3, [sp, 0x8]\n" + "\tcmp r7, r3\n" + "\tbcc _080FFDA0\n" + "_080FFE48:\n" + "\tldr r1, [sp, 0x14]\n" + "\tlsls r0, r1, 24\n" + "\tlsrs r6, r0, 24\n" + "\tldr r3, [sp, 0x18]\n" + "\tcmp r6, r3\n" + "\tblt _080FFD82\n" + "_080FFE54:\n" + "\tldr r0, [sp, 0x1C]\n" + "\tadd r0, r10\n" + "\tlsls r0, 3\n" + "\tadds r0, r2\n" + "\tldrh r0, [r0, 0xA]\n" + "\tldr r1, [sp, 0x4]\n" + "\tsubs r0, r1\n" + "\tadds r0, 0x1\n" + "\tlsls r0, 16\n" + "\tlsrs r0, 16\n" + "\tmov r9, r0\n" + "\tmovs r7, 0\n" + "\tldr r3, [sp, 0x8]\n" + "\tcmp r7, r3\n" + "\tbcc _080FFE74\n" + "\tb _08100024\n" + "_080FFE74:\n" + "\tlsls r0, 16\n" + "\tstr r0, [sp, 0x20]\n" + "_080FFE78:\n" + "\tldr r0, [sp, 0x1C]\n" + "\tadd r0, r10\n" + "\tlsls r0, 3\n" + "\tldr r1, _080FFF18 @ =gTasks\n" + "\tadds r0, r1\n" + "\tldrh r0, [r0, 0x8]\n" + "\tadds r0, r7\n" + "\tlsls r0, 16\n" + "\tmov r8, r0\n" + "\tasrs r6, r0, 16\n" + "\tmov r2, r9\n" + "\tlsls r1, r2, 16\n" + "\tadds r0, r6, 0\n" + "\tasrs r1, 16\n" + "\tbl MapGridGetMetatileBehaviorAt\n" + "\tlsls r0, 24\n" + "\tlsrs r4, r0, 24\n" + "\tldr r3, [sp]\n" + "\tldr r0, [r3, 0x1C]\n" + "\tlsls r1, r7, 1\n" + "\tadds r1, r0\n" + "\tmovs r2, 0x80\n" + "\tlsls r2, 2\n" + "\tadds r0, r2, 0\n" + "\tldrh r1, [r1]\n" + "\tadds r0, r1\n" + "\tlsls r0, 16\n" + "\tlsrs r0, 16\n" + "\tbl GetBehaviorByMetatileId\n" + "\tmovs r3, 0xF0\n" + "\tlsls r3, 8\n" + "\tadds r1, r3, 0\n" + "\tadds r5, r1, 0\n" + "\tands r5, r0\n" + "\tadds r0, r4, 0\n" + "\tbl sub_805729C\n" + "\tlsls r0, 24\n" + "\tcmp r0, 0\n" + "\tbne _080FFEDA\n" + "\tadds r0, r4, 0\n" + "\tbl sub_80572B0\n" + "\tlsls r0, 24\n" + "\tcmp r0, 0\n" + "\tbne _080FFEDA\n" + "\tb _080FFFF4\n" + "_080FFEDA:\n" + "\tmov r0, r10\n" + "\tadds r1, r6, 0\n" + "\tldr r3, [sp, 0x20]\n" + "\tasrs r2, r3, 16\n" + "\tadds r3, r5, 0\n" + "\tbl sub_80FFB94\n" + "\tlsls r0, 24\n" + "\tcmp r0, 0\n" + "\tbne _080FFEF0\n" + "\tb _080FFFF4\n" + "_080FFEF0:\n" + "\tmov r1, r8\n" + "\tlsrs r0, r1, 16\n" + "\tldr r2, [sp, 0x20]\n" + "\tlsrs r1, r2, 16\n" + "\tmovs r2, 0\n" + "\tbl GetFieldObjectIdByXYZ\n" + "\tlsls r0, 24\n" + "\tlsrs r4, r0, 24\n" + "\tcmp r4, 0\n" + "\tbeq _080FFF0A\n" + "\tcmp r4, 0x10\n" + "\tbne _080FFFF4\n" + "_080FFF0A:\n" + "\tadds r0, r7, 0x1\n" + "\tlsls r0, 24\n" + "\tlsrs r7, r0, 24\n" + "\tldr r3, [sp, 0x8]\n" + "\tcmp r7, r3\n" + "\tbcc _080FFE78\n" + "\tb _08100024\n" + "\t.align 2, 0\n" + "_080FFF18: .4byte gTasks\n" + "_080FFF1C:\n" + "\tmovs r6, 0\n" + "\tldr r0, [sp, 0x4]\n" + "\tcmp r6, r0\n" + "\tbcc _080FFF26\n" + "\tb _08100024\n" + "_080FFF26:\n" + "\tmov r1, r10\n" + "\tlsls r0, r1, 2\n" + "\tadd r0, r10\n" + "\tlsls r1, r0, 3\n" + "\tldr r2, _080FFF9C @ =gTasks\n" + "\tadds r0, r1, r2\n" + "\tldrh r0, [r0, 0xA]\n" + "\tsubs r0, r6\n" + "\tlsls r0, 16\n" + "\tlsrs r0, 16\n" + "\tmov r9, r0\n" + "\tmovs r7, 0\n" + "\tldr r3, [sp, 0x8]\n" + "\tcmp r7, r3\n" + "\tbcs _080FFF8C\n" + "\tadds r0, r2, 0\n" + "\tadds r1, r0\n" + "\tmov r8, r1\n" + "\tmov r1, r9\n" + "\tlsls r0, r1, 16\n" + "\tasrs r5, r0, 16\n" + "_080FFF50:\n" + "\tmov r2, r8\n" + "\tldrh r0, [r2, 0x8]\n" + "\tadds r0, r7\n" + "\tlsls r0, 16\n" + "\tasrs r4, r0, 16\n" + "\tadds r0, r4, 0\n" + "\tadds r1, r5, 0\n" + "\tbl MapGridGetMetatileBehaviorAt\n" + "\tlsls r0, 24\n" + "\tlsrs r0, 24\n" + "\tbl sub_80572B0\n" + "\tlsls r0, 24\n" + "\tcmp r0, 0\n" + "\tbeq _080FFFF4\n" + "\tadds r0, r4, 0\n" + "\tadds r1, r5, 0x1\n" + "\tbl MapGridGetMetatileIdAt\n" + "\tmovs r1, 0xA3\n" + "\tlsls r1, 2\n" + "\tcmp r0, r1\n" + "\tbeq _080FFFF4\n" + "\tadds r0, r7, 0x1\n" + "\tlsls r0, 24\n" + "\tlsrs r7, r0, 24\n" + "\tldr r3, [sp, 0x8]\n" + "\tcmp r7, r3\n" + "\tbcc _080FFF50\n" + "_080FFF8C:\n" + "\tadds r0, r6, 0x1\n" + "\tlsls r0, 24\n" + "\tlsrs r6, r0, 24\n" + "\tldr r0, [sp, 0x4]\n" + "\tcmp r6, r0\n" + "\tbcc _080FFF26\n" + "\tb _08100024\n" + "\t.align 2, 0\n" + "_080FFF9C: .4byte gTasks\n" + "_080FFFA0:\n" + "\tmov r3, r10\n" + "\tlsls r1, r3, 2\n" + "\tadds r0, r1, r3\n" + "\tlsls r0, 3\n" + "\tadds r0, r2\n" + "\tldrh r0, [r0, 0xA]\n" + "\tmov r9, r0\n" + "\tmovs r7, 0\n" + "\tstr r1, [sp, 0x1C]\n" + "\tldr r0, [sp, 0x8]\n" + "\tcmp r7, r0\n" + "\tbcs _08100024\n" + "\tadds r6, r2, 0\n" + "\tmov r1, r9\n" + "\tlsls r1, 16\n" + "\tstr r1, [sp, 0x20]\n" + "_080FFFC0:\n" + "\tldr r0, [sp, 0x1C]\n" + "\tadd r0, r10\n" + "\tlsls r0, 3\n" + "\tadds r0, r6\n" + "\tldrh r0, [r0, 0x8]\n" + "\tadds r0, r7\n" + "\tlsls r0, 16\n" + "\tlsrs r5, r0, 16\n" + "\tasrs r0, 16\n" + "\tmov r2, r9\n" + "\tlsls r1, r2, 16\n" + "\tasrs r1, 16\n" + "\tbl MapGridGetMetatileBehaviorAt\n" + "\tlsls r0, 24\n" + "\tlsrs r4, r0, 24\n" + "\tldr r3, [sp]\n" + "\tldrb r0, [r3, 0x12]\n" + "\tcmp r0, 0x5\n" + "\tbne _080FFFF8\n" + "_080FFFE8:\n" + "\tadds r0, r4, 0\n" + "\tbl sub_80572EC\n" + "\tlsls r0, 24\n" + "\tcmp r0, 0\n" + "\tbne _08100004\n" + "_080FFFF4:\n" + "\tmovs r0, 0\n" + "\tb _08100026\n" + "_080FFFF8:\n" + "\tadds r0, r4, 0\n" + "\tbl sub_80572D8\n" + "\tlsls r0, 24\n" + "\tcmp r0, 0\n" + "\tbeq _080FFFE8\n" + "_08100004:\n" + "\tadds r0, r5, 0\n" + "\tldr r2, [sp, 0x20]\n" + "\tlsrs r1, r2, 16\n" + "\tmovs r2, 0\n" + "\tbl GetFieldObjectIdByXYZ\n" + "\tlsls r0, 24\n" + "\tlsrs r0, 24\n" + "\tcmp r0, 0x10\n" + "\tbne _080FFFF4\n" + "\tadds r0, r7, 0x1\n" + "\tlsls r0, 24\n" + "\tlsrs r7, r0, 24\n" + "\tldr r3, [sp, 0x8]\n" + "\tcmp r7, r3\n" + "\tbcc _080FFFC0\n" + "_08100024:\n" + "\tmovs r0, 0x1\n" + "_08100026:\n" + "\tadd sp, 0x24\n" + "\tpop {r3-r5}\n" + "\tmov r8, r3\n" + "\tmov r9, r4\n" + "\tmov r10, r5\n" + "\tpop {r4-r7}\n" + "\tpop {r1}\n" + "\tbx r1\n" + ".syntax divided\n"); +} +#endif + +void sub_8100038(u8 taskId) +{ + if (sub_80FFC24(taskId, &gDecorations[gUnknown_020388D0[gUnknown_020388F5]]) == 1) + { + DisplayItemMessageOnField(taskId, gSecretBaseText_PlaceItHere, sub_81000A0, 0); + } else + { + PlaySE(SE_HAZURE); + DisplayItemMessageOnField(taskId, gSecretBaseText_CantBePlacedHere, sub_81006A8, 0); + } +} + +void sub_81000A0(u8 taskId) +{ + DisplayYesNoMenu(20, 8, 1); + DoYesNoFuncWithChoice(taskId, &gUnknown_083EC95C); +} + +void sub_81000C4(u8 taskId) +{ + MenuZeroFillWindowRect(0, 0, 29, 19); + sub_8100174(taskId); + if (gDecorations[gUnknown_020388D0[gUnknown_020388F5]].permission != DECORPERM_SOLID_MAT) + { + sub_80FF394(gTasks[taskId].data[0], gTasks[taskId].data[1], gUnknown_020388D0[gUnknown_020388F5]); + } else + { + gUnknown_020391A4 = gTasks[taskId].data[0] - 7; + gUnknown_020391A6 = gTasks[taskId].data[1] - 7; + ScriptContext1_SetupScript(gUnknown_081A2F7B); + } + gSprites[gUnknown_020391A8].pos1.y += 2; + sub_810028C(taskId); +} + +void sub_8100174(u8 taskId) +{ + u16 i; + for (i=0; i<ewram_1f000.size; i++) + { + if (ewram_1f000.items[i] == 0) + { + ewram_1f000.items[i] = gUnknown_020388D0[gUnknown_020388F5]; + ewram_1f000.pos[i] = ((gTasks[taskId].data[0] - 7) << 4) + (gTasks[taskId].data[1] - 7); + break; + } + } + if (!ewram_1f000.isPlayerRoom) + { + for (i=0; i<16; i++) + { + if (gUnknown_020388D6[i] == 0) + { + gUnknown_020388D6[i] = gUnknown_020388F5 + 1; + break; + } + } + } else + { + for (i=0; i<12; i++) + { + if (gUnknown_020388E6[i] == 0) + { + gUnknown_020388E6[i] = gUnknown_020388F5 + 1; + break; + } + } + } +} + +void sub_8100248(u8 taskId) +{ + DisplayYesNoMenu(20, 8, 1); + DoYesNoFuncWithChoice(taskId, &gUnknown_083EC964); +} + +void sub_810026C(u8 taskId) +{ + MenuZeroFillWindowRect(0, 0, 29, 19); + sub_810028C(taskId); +} + +void sub_810028C(u8 taskId) +{ + fade_screen(1, 0); + gTasks[taskId].data[2] = 0; + gTasks[taskId].func = c1_overworld_prev_quest; +} + +void c1_overworld_prev_quest(u8 taskId) +{ + switch (gTasks[taskId].data[2]) + { + case 0: + ScriptContext2_Enable(); + if (!gPaletteFade.active) + { + sub_80FF114(taskId); + gTasks[taskId].data[2] = 1; + } + break; + case 1: + sub_81016F4(); + FreeSpritePaletteByTag(0xbb8); + gFieldCallback = &sub_8100364; + SetMainCallback2(c2_exit_to_overworld_2_switch); + DestroyTask(taskId); + break; + } +} + +void sub_8100334(u8 taskId) +{ + if (sub_807D770() == 1) + { + gTasks[taskId].func = sub_80FE948; + } +} + +void sub_8100364(void) +{ + ScriptContext2_Enable(); + LoadScrollIndicatorPalette(); + pal_fill_black(); + sub_80FE7EC(CreateTask(sub_8100334, 8)); +} + +bool8 sub_810038C(u8 taskId) +{ + s16 *data; + data = gTasks[taskId].data; + if (gUnknown_020391AA == DIR_SOUTH && data[1] - data[6] - 6 < 0) + { + data[1]++; + return FALSE; + } else if (gUnknown_020391AA == DIR_NORTH && data[1] - 7 >= gMapHeader.mapData->height) + { + data[1]--; + return FALSE; + } else if (gUnknown_020391AA == DIR_WEST && data[0] - 7 < 0) + { + data[0]++; + return FALSE; + } else if (gUnknown_020391AA == DIR_EAST && data[0] + data[5] - 8 >= gMapHeader.mapData->width) + { + data[0]--; + return FALSE; + } + return TRUE; +} + +bool8 sub_8100430(void) +{ + if ((gMain.heldKeys & DPAD_ANY) != DPAD_UP && (gMain.heldKeys & DPAD_ANY) != DPAD_DOWN && (gMain.heldKeys & DPAD_ANY) != DPAD_LEFT && (gMain.heldKeys & DPAD_ANY) != DPAD_RIGHT) + { + return FALSE; + } + return TRUE; +} + +void sub_810045C(void) +{ + gUnknown_020391AA = 0; + gSprites[gUnknown_020391A8].data2 = 0; + gSprites[gUnknown_020391A8].data3 = 0; +} + +void sub_8100494(u8 taskId) +{ + if (!gSprites[gUnknown_020391A8].data4) + { + if (gTasks[taskId].data[10] == 1) + { + gUnknown_083EC96C[gTasks[taskId].data[12]].yesFunc(taskId); + return; + } else if (gTasks[taskId].data[10] == 2) + { + gUnknown_083EC96C[gTasks[taskId].data[12]].noFunc(taskId); + return; + } + if ((gMain.heldKeys & DPAD_ANY) == DPAD_UP) + { + gUnknown_020391AA = DIR_SOUTH; + gSprites[gUnknown_020391A8].data2 = 0; + gSprites[gUnknown_020391A8].data3 = -2; + gTasks[taskId].data[1]--; + } + if ((gMain.heldKeys & DPAD_ANY) == DPAD_DOWN) + { + gUnknown_020391AA = DIR_NORTH; + gSprites[gUnknown_020391A8].data2 = 0; + gSprites[gUnknown_020391A8].data3 = 2; + gTasks[taskId].data[1]++; + } + if ((gMain.heldKeys & DPAD_ANY) == DPAD_LEFT) + { + gUnknown_020391AA = DIR_WEST; + gSprites[gUnknown_020391A8].data2 = -2; + gSprites[gUnknown_020391A8].data3 = 0; + gTasks[taskId].data[0]--; + } + if ((gMain.heldKeys & DPAD_ANY) == DPAD_RIGHT) + { + gUnknown_020391AA = DIR_EAST; + gSprites[gUnknown_020391A8].data2 = 2; + gSprites[gUnknown_020391A8].data3 = 0; + gTasks[taskId].data[0]++; + } + if (!sub_8100430() || !sub_810038C(taskId)) + { + sub_810045C(); + } + } + if (gUnknown_020391AA) + { + gSprites[gUnknown_020391A8].data4++; + gSprites[gUnknown_020391A8].data4 &= 7; + } + if (!gTasks[taskId].data[10]) + { + if (gMain.newKeys & A_BUTTON) + { + gTasks[taskId].data[10] = A_BUTTON; + } + if (gMain.newKeys & B_BUTTON) + { + gTasks[taskId].data[10] = B_BUTTON; + } + } +} + +void sub_810065C(u8 taskId) +{ + MenuZeroFillWindowRect(0, 0, 29, 19); + gSprites[gUnknown_020391A8].data7 = 0; + gTasks[taskId].data[10] = 0; + gTasks[taskId].func = sub_8100494; +} + +void sub_81006A8(u8 taskId) +{ + if ((gMain.newKeys & A_BUTTON) || (gMain.newKeys & B_BUTTON)) + { + sub_810065C(taskId); + } +} + +void sub_81006D0(struct UnkStruct_02038900 *unk_02038900) +{ + u16 i; + for (i=0; i<0x800; i++) + { + unk_02038900->image[i] = 0; + } + for (i=0; i<0x40; i++) + { + unk_02038900->tiles[i] = 0; + } +} + +void sub_810070C(u16 *a0, u16 a1) +{ + u16 i; + for (i=0; i<16; i++) + { + a0[i] = ((u16 *)gMapHeader.mapData->primaryTileset->palettes)[16 * a1 + i]; + } +} + +void sub_8100740(u8 *dest, u16 flags) +{ + u8 buffer[32]; + u16 mode; + u16 i; + mode = flags >> 10; + if (flags != 0) + { + flags &= 0x3ff; + } + for (i=0; i<32; i++) + { + buffer[i] = ((u8 *)gMapHeader.mapData->primaryTileset->tiles)[flags * 32 + i]; + } + switch (mode) + { + case 0: + for (i=0; i<32; i++) + { + dest[i] = buffer[i]; + } + break; + case 1: + for (i=0; i<8; i++) + { + dest[4*i] = (buffer[4*(i+1) - 1] >> 4) + ((buffer[4*(i+1) - 1] & 0xf) << 4); + dest[4*i + 1] = (buffer[4*(i+1) - 2] >> 4) + ((buffer[4*(i+1) - 2] & 0xf) << 4); + dest[4*i + 2] = (buffer[4*(i+1) - 3] >> 4) + ((buffer[4*(i+1) - 3] & 0xf) << 4); + dest[4*i + 3] = (buffer[4*(i+1) - 4] >> 4) + ((buffer[4*(i+1) - 4] & 0xf) << 4); + } + break; + case 2: + for (i=0; i<8; i++) + { + dest[4*i] = buffer[4*(7-i)]; + dest[4*i + 1] = buffer[4*(7-i) + 1]; + dest[4*i + 2] = buffer[4*(7-i) + 2]; + dest[4*i + 3] = buffer[4*(7-i) + 3]; + } + break; + case 3: + for (i=0; i<32; i++) + { + dest[i] = (buffer[31-i] >> 4) + ((buffer[31-i] & 0xf) << 4); + } + break; + } +} + +void sub_8100874(struct UnkStruct_02038900 *unk_02038900) +{ + u16 i; + for (i=0; i<0x40; i++) + sub_8100740(&unk_02038900->image[i * 32], unk_02038900->tiles[i]); +} + +u16 sub_810089C(u16 a0) +{ + return ((u16 *)gMapHeader.mapData->secondaryTileset->metatiles)[a0] & 0xfff; +} + +void sub_81008BC(struct UnkStruct_02038900 *unk_02038900) +{ + u8 i; + u8 shape; + shape = unk_02038900->decoration->shape; + for (i=0; i<gUnknown_083EC860[shape].size; i++) + { + unk_02038900->tiles[gUnknown_083EC860[shape].tiles[i]] = sub_810089C(unk_02038900->decoration->tiles[gUnknown_083EC860[shape].y[i]] * 8 + gUnknown_083EC860[shape].x[i]); + } +} + +void sub_8100930(u8 decoShape) +{ + gUnknown_020391AC.y = 0; + gUnknown_020391AC.affineMode = 0; + gUnknown_020391AC.objMode = 0; + gUnknown_020391AC.mosaic = 0; + gUnknown_020391AC.bpp = 0; + gUnknown_020391AC.shape = gUnknown_083EC900[decoShape].shape; + gUnknown_020391AC.x = 0; + gUnknown_020391AC.matrixNum = 0; + gUnknown_020391AC.size = gUnknown_083EC900[decoShape].size; + gUnknown_020391AC.tileNum = 0; + gUnknown_020391AC.priority = 1; + gUnknown_020391AC.paletteNum = 0; +} + +void sub_81009A8(struct Sprite *sprite) +{ + sprite->data2 = 0; + sprite->data3 = 0; + sprite->data4 = 0; + sprite->data5 = 0; + sprite->data6 = 0; + sprite->data7 = 0; + sprite->callback = sub_81009C0; +} + +void sub_81009C0(struct Sprite *sprite) +{ + if (sprite->data7 == 0) + { + if (sprite->data6 < 15) + { + sprite->invisible = 0; + } else + { + sprite->invisible = 1; + } + sprite->data6 = (sprite->data6 + 1) & 0x1f; + } else + { + sprite->invisible = 0; + } +} + +void sub_8100A0C(u8 taskId) +{ + if (sub_8100D38(taskId) == 1) + { + fade_screen(1, 0); + gTasks[taskId].data[2] = 0; + gTasks[taskId].func = sub_8100E70; + } else + { + DisplayItemMessageOnField(taskId, gSecretBaseText_NoDecorInUse, sub_80FE428, 0); + } +} + +void sub_8100A60(u8 a0) +{ + ewram_1f000.items[a0] = 0; + ewram_1f000.pos[a0] = 0; +} + +void sub_8100A7C(void) +{ + u16 i; + gSpecialVar_0x8005 = 0; + gScriptResult = 0; + if (gSpecialVar_0x8004 == gUnknown_02039234) + { + gScriptResult = 1; + } else if (gDecorations[ewram_1f000.items[gUnknown_020391B4[gSpecialVar_0x8004].decorId]].permission == DECORPERM_SOLID_MAT) + { + gSpecialVar_0x8005 = gUnknown_020391B4[gSpecialVar_0x8004].flagId; + sub_8100A60(gUnknown_020391B4[gSpecialVar_0x8004].decorId); + for (i=0; i<gMapHeader.events->mapObjectCount; i++) + { + if (gMapHeader.events->mapObjects[i].flagId == gSpecialVar_0x8005) + { + gSpecialVar_0x8006 = gMapHeader.events->mapObjects[i].localId; + break; + } + } + } +} + +void sub_8100B20(void) +{ + u8 i; + for (i=0; i<gMapHeader.events->mapObjectCount; i++) + { + if (gMapHeader.events->mapObjects[i].flagId == gSpecialVar_0x8004) + { + gSpecialVar_0x8005 = gMapHeader.events->mapObjects[i].localId; + break; + } + } +} + +void sub_8100B6C(void) +{ + u8 i; + u8 j; + u8 k; + u8 x; + u8 y; + u8 permission; + for (i=0; i<gUnknown_02039234; i++) + { + permission = gDecorations[ewram_1f000.items[gUnknown_020391B4[i].decorId]].permission; + x = ewram_1f000.pos[gUnknown_020391B4[i].decorId] >> 4; + y = ewram_1f000.pos[gUnknown_020391B4[i].decorId] & 0xf; + if (permission != DECORPERM_SOLID_MAT) + { + if (ewram_1f000.items[gUnknown_020391B4[i].decorId] == DECOR_SAND_ORNAMENT && MapGridGetMetatileIdAt(x + 7, y + 7) == 0x28c) + { + gUnknown_020391B4[i].height++; + } + for (j=0; j<gUnknown_020391B4[i].height; j++) + { + for (k=0; k<gUnknown_020391B4[i].width; k++) + { + MapGridSetMetatileEntryAt(x + 7 + k, y + 7 - j, ((u16 *)gMapHeader.mapData->map)[(x + k) + gMapHeader.mapData->width * (y - j)] | 0x3000); + } + } + sub_8100A60(gUnknown_020391B4[i].decorId); + } + } +} + +void sub_8100C88(u8 taskId) +{ + switch (gTasks[taskId].data[2]) + { + case 0: + sub_8100B6C(); + gTasks[taskId].data[2] = 1; + break; + case 1: + if (!gPaletteFade.active) + { + DrawWholeMapView(); + ScriptContext1_SetupScript(gUnknown_081A2F8A); + MenuZeroFillWindowRect(0, 0, 29, 19); + gTasks[taskId].data[2] = 2; + } + break; + case 2: + ScriptContext2_Enable(); + sub_80FED90(taskId); + pal_fill_black(); + gTasks[taskId].data[2] = 3; + break; + case 3: + if (sub_807D770() == 1) + { + gTasks[taskId].data[13] = -1; + DisplayItemMessageOnField(taskId, gSecretBaseText_DecorReturned, sub_81010F0, 0); + } + break; + } +} + +bool8 sub_8100D38(u8 taskId) +{ + u16 i; + for (i=0; i<ewram_1f000.size; i++) + { + if (ewram_1f000.items[i] != 0) + { + gTasks[taskId].data[13] = i; + return TRUE; + } + } + return FALSE; +} + +void SetUpPuttingAwayDecorationPlayerAvatar(void) +{ + player_get_direction_lower_nybble(); + MenuZeroFillWindowRect(0, 0, 29, 19); + gUnknown_020391A8 = gSprites[gUnknown_03004880.unk4].data0; + sub_81016C8(); + gUnknown_03004880.unk4 = CreateSprite(&gSpriteTemplate_83ECA88, 0x78, 0x50, 0); + if (gSaveBlock2.playerGender == MALE) + { + gUnknown_020391A9 = AddPseudoFieldObject(0xc1, SpriteCallbackDummy, 0x88, 0x48, 0); + } else + { + gUnknown_020391A9 = AddPseudoFieldObject(0xc2, SpriteCallbackDummy, 0x88, 0x48, 0); + } + gSprites[gUnknown_020391A9].oam.priority = 1; + DestroySprite(&gSprites[gUnknown_020391A8]); + gUnknown_020391A8 = gUnknown_03004880.unk4; + gSprites[gUnknown_020391A8].oam.priority = 1; +} + +void sub_8100E70(u8 taskId) +{ + s16 *data; + data = gTasks[taskId].data; + switch (data[2]) + { + case 0: + if (!gPaletteFade.active) + { + sub_80FF0E0(taskId); + data[2] = 1; + data[6] = 1; + data[5] = 1; + HandleDestroyMenuCursors(); + } + break; + case 1: + SetUpPuttingAwayDecorationPlayerAvatar(); + pal_fill_black(); + data[2] = 2; + break; + case 2: + if (sub_807D770() == TRUE) + { + data[12] = 1; + sub_8100EEC(taskId); + } + break; + } +} + +void sub_8100EEC(u8 taskId) +{ + MenuZeroFillWindowRect(0, 0, 29, 19); + gSprites[gUnknown_020391A8].data7 = 0; + gSprites[gUnknown_020391A8].invisible = 0; + gSprites[gUnknown_020391A8].callback = sub_8101698; + gSprites[gUnknown_020391A9].pos1.x = 0x88; + gSprites[gUnknown_020391A9].pos1.y = 0x48; + gTasks[taskId].data[10] = 0; + gTasks[taskId].func = sub_8100494; +} + +void sub_8100F88(u8 taskId) +{ + gTasks[taskId].data[10] = 0; + sub_810045C(); + sub_8101024(taskId); +} + +void sub_8100FB4(u8 taskId) +{ + gTasks[taskId].data[10] = 0; + sub_810045C(); + gSprites[gUnknown_020391A8].invisible = 0; + gSprites[gUnknown_020391A8].callback = SpriteCallbackDummy; + DisplayItemMessageOnField(taskId, gSecretBaseText_StopPuttingAwayDecor, sub_810156C, 0); +} + +void sub_8101024(u8 taskId) +{ + u8 mtBehavior; + s16 *data; + sub_8101460(taskId); + if (gUnknown_02039234 != 0) + { + DisplayItemMessageOnField(taskId, gSecretBaseText_ReturnDecor, sub_8101518, 0); + } else + { + data = gTasks[taskId].data; + mtBehavior = MapGridGetMetatileBehaviorAt(data[0], data[1]); + if (MetatileBehavior_IsSecretBasePC(mtBehavior) == TRUE || sub_805738C(mtBehavior) == TRUE) + { + gSprites[gUnknown_020391A8].invisible = 0; + gSprites[gUnknown_020391A8].callback = SpriteCallbackDummy; + DisplayItemMessageOnField(taskId, gSecretBaseText_StopPuttingAwayDecor, sub_810156C, 0); + } else + { + DisplayItemMessageOnField(taskId, gSecretBaseText_NoDecor, sub_81010F0, 0); + } + } +} + +void sub_81010F0(u8 taskId) +{ + if ((gMain.newKeys & A_BUTTON) || (gMain.newKeys & B_BUTTON)) + { + sub_8100EEC(taskId); + } +} + +void sub_8101118(u8 decorIdx, struct UnkStruct_020391B4 *unk_020391B4) +{ + if (gDecorations[decorIdx].shape == DECORSHAPE_1x1) + { + unk_020391B4->width = 1; + unk_020391B4->height = 1; + } else if (gDecorations[decorIdx].shape == DECORSHAPE_2x1) + { + unk_020391B4->width = 2; + unk_020391B4->height = 1; + } else if (gDecorations[decorIdx].shape == DECORSHAPE_3x1) + { + unk_020391B4->width = 3; + unk_020391B4->height = 1; + } else if (gDecorations[decorIdx].shape == DECORSHAPE_4x2) + { + unk_020391B4->width = 4; + unk_020391B4->height = 2; + } else if (gDecorations[decorIdx].shape == DECORSHAPE_2x2) + { + unk_020391B4->width = 2; + unk_020391B4->height = 2; + } else if (gDecorations[decorIdx].shape == DECORSHAPE_1x2) + { + unk_020391B4->width = 1; + unk_020391B4->height = 2; + } else if (gDecorations[decorIdx].shape == DECORSHAPE_1x3) + { + unk_020391B4->width = 1; + unk_020391B4->height = 3; + } else if (gDecorations[decorIdx].shape == DECORSHAPE_2x4) + { + unk_020391B4->width = 2; + unk_020391B4->height = 4; + } else if (gDecorations[decorIdx].shape == DECORSHAPE_3x3) + { + unk_020391B4->width = 3; + unk_020391B4->height = 3; + } else if (gDecorations[decorIdx].shape == DECORSHAPE_3x2) + { + unk_020391B4->width = 3; + unk_020391B4->height = 2; + } +} + +void sub_8101198(u8 x, u8 y) +{ + gSprites[gUnknown_020391A8].invisible = 1; + gSprites[gUnknown_020391A8].callback = SpriteCallbackDummy; + gSprites[gUnknown_020391A9].pos1.x = 0x88 + x * 16; + gSprites[gUnknown_020391A9].pos1.y = 0x48 + y * 16; +} + +bool8 sub_8101200(u8 taskId, u8 decorIdx, struct UnkStruct_020391B4 *unk_020391B4) +{ + u8 x; + u8 y; + u8 xOff; + u8 yOff; + x = gTasks[taskId].data[0] - 7; + y = gTasks[taskId].data[1] - 7; + xOff = ewram_1f000.pos[decorIdx] >> 4; + yOff = ewram_1f000.pos[decorIdx] & 0xf; + if (ewram_1f000.items[decorIdx] == DECOR_SAND_ORNAMENT && MapGridGetMetatileIdAt(xOff + 7, yOff + 7) == 0x28c) + { + unk_020391B4->height--; + } + if (x >= xOff && x < xOff + unk_020391B4->width && y > yOff - unk_020391B4->height && y <= yOff) + { + sub_8101198(unk_020391B4->width - (x - xOff + 1), yOff - y); + return TRUE; + } + return FALSE; +} + +void sub_81012A0(void) +{ + u8 xOff; + u8 yOff; + u16 i; + xOff = ewram_1f000.pos[gUnknown_020391B4[gUnknown_02039234].decorId] >> 4; + yOff = ewram_1f000.pos[gUnknown_020391B4[gUnknown_02039234].decorId] & 0xf; + for (i=0; i<0x40; i++) + { + if (gSaveBlock1.mapObjectTemplates[i].x == xOff && gSaveBlock1.mapObjectTemplates[i].y == yOff && !FlagGet(gSaveBlock1.mapObjectTemplates[i].flagId)) + { + gUnknown_020391B4[gUnknown_02039234].flagId = gSaveBlock1.mapObjectTemplates[i].flagId; + break; + } + } +} + +bool8 sub_8101340(u8 taskId) +{ + u16 i; + for (i=0; i<ewram_1f000.size; i++) + { + if (ewram_1f000.items[i] != 0) + { + if (gDecorations[ewram_1f000.items[i]].permission == DECORPERM_SOLID_MAT) + { + sub_8101118(ewram_1f000.items[i], gUnknown_020391B4); + if (sub_8101200(taskId, i, gUnknown_020391B4) == TRUE) + { + gUnknown_020391B4->decorId = i; + sub_81012A0(); + gUnknown_02039234 = 1; + return TRUE; + } + } + } + } + return FALSE; +} + +void sub_81013B8(u8 a0, u8 a1, u8 a2, u8 a3) +{ + u8 i; + u8 xOff; + u8 yOff; + u8 decorIdx; + for (i=0; i<ewram_1f000.size; i++) + { + decorIdx = ewram_1f000.items[i]; + xOff = ewram_1f000.pos[i] >> 4; + yOff = ewram_1f000.pos[i] & 0xf; + if (decorIdx != 0 && gDecorations[decorIdx].permission == DECORPERM_SOLID_MAT && a0 <= xOff && a1 <= yOff && a2 >= xOff && a3 >= yOff) + { + gUnknown_020391B4[gUnknown_02039234].decorId = i; + sub_81012A0(); + gUnknown_02039234++; + } + } +} + +#ifdef NONMATCHING +void sub_8101460(u8 taskId) +{ + u8 i; + u8 xOff; + u8 yOff; + gUnknown_02039234 = 0; + if (sub_8101340(taskId) != TRUE) + { + for (i=0; i<ewram_1f000.size; i++) + { + if (ewram_1f000.items[i] == 0) // This is using the wrong register! + { + continue; + } + sub_8101118(ewram_1f000.items[i], gUnknown_020391B4); + if (sub_8101200(taskId, i, gUnknown_020391B4) == TRUE) + { + gUnknown_020391B4[0].decorId = i; + gUnknown_02039234++; + break; + } + } + if (gUnknown_02039234 != 0) + { + xOff = ewram_1f000.pos[gUnknown_020391B4[0].decorId] >> 4; + yOff = ewram_1f000.pos[gUnknown_020391B4[0].decorId] & 0xf; + sub_81013B8(xOff, yOff - gUnknown_020391B4[0].height + 1, xOff + gUnknown_020391B4[0].width - 1, yOff); + } + } +} +#else +__attribute__((naked)) +void sub_8101460(u8 taskId) +{ + asm(".syntax unified\n" + "\tpush {r4-r7,lr}\n" + "\tlsls r0, 24\n" + "\tlsrs r6, r0, 24\n" + "\tldr r4, _081014B8 @ =gUnknown_02039234\n" + "\tmovs r0, 0\n" + "\tstrb r0, [r4]\n" + "\tadds r0, r6, 0\n" + "\tbl sub_8101340\n" + "\tlsls r0, 24\n" + "\tlsrs r0, 24\n" + "\tcmp r0, 0x1\n" + "\tbeq _08101504\n" + "\tmovs r5, 0\n" + "\tldr r0, _081014BC @ =ewram_1f000\n" + "\tldrb r1, [r0, 0x8]\n" + "\tcmp r5, r1\n" + "\tbcs _081014D2\n" + "\tadds r7, r4, 0\n" + "_08101486:\n" + "\tldr r0, [r0]\n" + "\tadds r0, r5\n" + "\tldrb r1, [r0] @ compiler incorrectly uses r0 for this and the next instruction\n" + "\tcmp r1, 0\n" + "\tbeq _081014C4\n" + "\tldr r4, _081014C0 @ =gUnknown_020391B4\n" + "\tadds r0, r1, 0\n" + "\tadds r1, r4, 0\n" + "\tbl sub_8101118\n" + "\tadds r0, r6, 0\n" + "\tadds r1, r5, 0\n" + "\tadds r2, r4, 0\n" + "\tbl sub_8101200\n" + "\tlsls r0, 24\n" + "\tlsrs r0, 24\n" + "\tcmp r0, 0x1\n" + "\tbne _081014C4\n" + "\tstrb r5, [r4]\n" + "\tldrb r0, [r7]\n" + "\tadds r0, 0x1\n" + "\tstrb r0, [r7]\n" + "\tb _081014D2\n" + "\t.align 2, 0\n" + "_081014B8: .4byte gUnknown_02039234\n" + "_081014BC: .4byte 0x201f000\n" + "_081014C0: .4byte gUnknown_020391B4\n" + "_081014C4:\n" + "\tadds r0, r5, 0x1\n" + "\tlsls r0, 24\n" + "\tlsrs r5, r0, 24\n" + "\tldr r0, _0810150C @ =ewram_1f000\n" + "\tldrb r1, [r0, 0x8]\n" + "\tcmp r5, r1\n" + "\tbcc _08101486\n" + "_081014D2:\n" + "\tldr r0, _08101510 @ =gUnknown_02039234\n" + "\tldrb r0, [r0]\n" + "\tcmp r0, 0\n" + "\tbeq _08101504\n" + "\tldr r0, _0810150C @ =ewram_1f000\n" + "\tldr r2, _08101514 @ =gUnknown_020391B4\n" + "\tldrb r1, [r2]\n" + "\tldr r0, [r0, 0x4]\n" + "\tadds r0, r1\n" + "\tldrb r1, [r0]\n" + "\tlsrs r0, r1, 4\n" + "\tmovs r3, 0xF\n" + "\tands r3, r1\n" + "\tldrb r1, [r2, 0x2]\n" + "\tsubs r1, r3, r1\n" + "\tadds r1, 0x1\n" + "\tlsls r1, 24\n" + "\tlsrs r1, 24\n" + "\tldrb r2, [r2, 0x1]\n" + "\tadds r2, r0\n" + "\tsubs r2, 0x1\n" + "\tlsls r2, 24\n" + "\tlsrs r2, 24\n" + "\tbl sub_81013B8\n" + "_08101504:\n" + "\tpop {r4-r7}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" + "_0810150C: .4byte 0x201f000\n" + "_08101510: .4byte gUnknown_02039234\n" + "_08101514: .4byte gUnknown_020391B4\n" + ".syntax divided\n"); +} +#endif + +void sub_8101518(u8 taskId) +{ + DisplayYesNoMenu(20, 8, 1); + DoYesNoFuncWithChoice(taskId, &gUnknown_083EC9CC); +} + +void sub_810153C(u8 taskId) +{ + fade_screen(1, 0); + gTasks[taskId].data[2] = 0; + gTasks[taskId].func = sub_8100C88; +} + +void sub_810156C(u8 taskId) +{ + DisplayYesNoMenu(20, 8, 1); + DoYesNoFuncWithChoice(taskId, &gUnknown_083EC9D4); +} + +void sub_8101590(u8 taskId) +{ + MenuZeroFillWindowRect(0, 0, 29, 19); + sub_81015B0(taskId); +} + +void sub_81015B0(u8 taskId) +{ + fade_screen(1, 0); + gTasks[taskId].data[2] = 0; + gTasks[taskId].func = sub_81015E0; +} + +void sub_81015E0(u8 taskId) +{ + switch (gTasks[taskId].data[2]) + { + case 0: + if (!gPaletteFade.active) + { + sub_80FF114(taskId); + gTasks[taskId].data[2] = 1; + } + break; + case 1: + sub_81016F4(); + gFieldCallback = sub_8101678; + SetMainCallback2(c2_exit_to_overworld_2_switch); + DestroyTask(taskId); + break; + } +} + +void sub_8101648(u8 taskId) +{ + if (sub_807D770() == TRUE) + { + gTasks[taskId].func = Task_DecorationPCProcessMenuInput; + } +} + +void sub_8101678(void) +{ + pal_fill_black(); + MenuDisplayMessageBox(); + sub_80FE220(); + CreateTask(sub_8101648, 8); +} + +void sub_8101698(struct Sprite *sprite) +{ + sprite->data0 = (sprite->data0 + 1) & 0x1f; + if (sprite->data0 >= 16) + { + sprite->invisible = TRUE; + } else + { + sprite->invisible = FALSE; + } +} + +void sub_81016C8(void) +{ + if (gSaveBlock2.playerGender == MALE) + { + LoadSpritePalette(&gUnknown_083ECA5C); + } else + { + LoadSpritePalette(&gUnknown_083ECA64); + } +} + +void sub_81016F4(void) +{ + FreeSpritePaletteByTag(8); +} + +void sub_8101700(u8 taskId) +{ + if (!sub_81341D4()) + { + DisplayItemMessageOnField(taskId, gSecretBaseText_NoDecors, sub_80FE428, 0); + } else + { + gTasks[taskId].data[11] = 1; + gUnknown_020388F6 = 0; + sub_80FE5AC(taskId); + } +} + +void sub_8101750(u8 taskId) +{ + if (!sub_81341D4()) + { + DisplayItemMessageOnField(taskId, gSecretBaseText_NoDecors, sub_80FE428, 0); + } else + { + gTasks[taskId].data[11] = 2; + gUnknown_020388F6 = 0; + sub_80FE5AC(taskId); + } +} + +void sub_81017A0(u8 taskId) +{ + sub_80FEF74(); + sub_80FED1C(); + if (sub_80FEFA4() == TRUE) + { + StringCopy(gStringVar1, gDecorations[gUnknown_020388D0[gUnknown_020388F5]].name); + StringExpandPlaceholders(gStringVar4, gSecretBaseText_WillBeDiscarded); + DisplayItemMessageOnField(taskId, gStringVar4, sub_8101824, 0); + } else + { + DisplayItemMessageOnField(taskId, gSecretBaseText_DecorInUse, sub_80FEFF4, 0); + } +} + +void sub_8101824(u8 taskId) +{ + DisplayYesNoMenu(20, 8, 1); + DoYesNoFuncWithChoice(taskId, &gUnknown_083ECAA0); +} + +void sub_8101848(u8 taskId) +{ + MenuZeroFillWindowRect(20, 8, 26, 14); + sub_8109A30(gUnknown_020388D0[gUnknown_020388F5]); + gUnknown_020388D0[gUnknown_020388F5] = DECOR_NONE; + sub_80FF098(taskId); + DisplayItemMessageOnField(taskId, gSecretBaseText_DecorThrownAway, sub_80FEFF4, 0); +} diff --git a/src/decoration_inventory.c b/src/decoration_inventory.c new file mode 100644 index 000000000..35ba7e228 --- /dev/null +++ b/src/decoration_inventory.c @@ -0,0 +1,169 @@ +// +// Created by Scott Norton on 6/5/17. +// + +#include "global.h" +#include "sprite.h" +#include "task.h" +#include "decoration.h" +#include "decoration_inventory.h" + +#define DECOR_INV(ptr) {.items = (u8 *)&ptr, .size = sizeof ptr} + +struct DecorationInventory const gDecorationInventories[] = { + DECOR_INV(gSaveBlock1.decorDesk), + DECOR_INV(gSaveBlock1.decorChair), + DECOR_INV(gSaveBlock1.decorPlant), + DECOR_INV(gSaveBlock1.decorOrnament), + DECOR_INV(gSaveBlock1.decorMat), + DECOR_INV(gSaveBlock1.decorPoster), + DECOR_INV(gSaveBlock1.decorDoll), + DECOR_INV(gSaveBlock1.decorCushion) +}; + +void ClearDecorationInventory(u8 invIdx) +{ + u8 i; + for (i=0; i<gDecorationInventories[invIdx].size; i++) + { + gDecorationInventories[invIdx].items[i] = DECOR_NONE; + } +} + +void ClearDecorationInventories(void) +{ + u8 i; + for (i=0; i<8; i++) + { + ClearDecorationInventory(i); + } +} + +s8 sub_8133F9C(u8 invIdx) +{ + s8 i; + for (i=0; i<(s8)gDecorationInventories[invIdx].size; i++) + { + if (gDecorationInventories[invIdx].items[i] == DECOR_NONE) + { + return i; + } + } + return -1; +} + +bool8 sub_8133FE4(u8 decorIdx) +{ + u8 invIdx; + u8 i; + invIdx = gDecorations[decorIdx].category; + for (i=0; i<gDecorationInventories[invIdx].size; i++) + { + if (gDecorationInventories[invIdx].items[i] == decorIdx) + { + return TRUE; + } + } + return FALSE; +} + +bool8 IsThereStorageSpaceForDecoration(u8 decorIdx) +{ + u8 invIdx; + s8 invSlot; + if (decorIdx == DECOR_NONE) + { + return FALSE; + } + invIdx = gDecorations[decorIdx].category; + invSlot = sub_8133F9C(invIdx); + if (invSlot == -1) + { + return FALSE; + } + gDecorationInventories[invIdx].items[invSlot] = decorIdx; + return TRUE; +} + +bool8 sub_8134074(u8 decorIdx) +{ + u8 invIdx; + if (decorIdx == DECOR_NONE) + { + return FALSE; + } + invIdx = gDecorations[decorIdx].category; + if (sub_8133F9C(invIdx) == -1) + { + return FALSE; + } + return TRUE; +} + +s8 sub_81340A8(u8 decorIdx) +{ + u8 i; + u8 invIdx; + i = 0; + if (decorIdx == DECOR_NONE) + { + return FALSE; + } + for (i=0; i<gDecorationInventories[gDecorations[decorIdx].category].size; i++) + { + invIdx = gDecorations[decorIdx].category; + if (gDecorationInventories[invIdx].items[i] == decorIdx) + { + gDecorationInventories[invIdx].items[i] = DECOR_NONE; + sub_8134104(invIdx); + return TRUE; + } + } + return FALSE; +} + +void sub_8134104(u8 invIdx) +{ + u8 i; + u8 j; + u8 tmp; + for (i=0; i<gDecorationInventories[invIdx].size; i++) + { + for (j=i+1; j<gDecorationInventories[invIdx].size; j++) + { + if (gDecorationInventories[invIdx].items[j] != 0 && (gDecorationInventories[invIdx].items[i] == DECOR_NONE || gDecorationInventories[invIdx].items[i] > gDecorationInventories[invIdx].items[j])) + { + tmp = gDecorationInventories[invIdx].items[i]; + gDecorationInventories[invIdx].items[i] = gDecorationInventories[invIdx].items[j]; + gDecorationInventories[invIdx].items[j] = tmp; + } + } + } +} + +u8 sub_8134194(u8 invIdx) +{ + u8 i; + u8 count; + count = 0; + for (i=0; i<gDecorationInventories[invIdx].size; i++) + { + if (gDecorationInventories[invIdx].items[i] != 0) + { + count++; + } + } + return count; +} + +u8 sub_81341D4(void) +{ + u8 i; + u8 count; + count = 0; + for (i=0; i<8; i++) + { + count += sub_8134194(i); + } + return count; +} diff --git a/src/dewford_trend.c b/src/dewford_trend.c index e4ce0c0c7..aaf4dd66a 100644 --- a/src/dewford_trend.c +++ b/src/dewford_trend.c @@ -1,6 +1,5 @@ #include "global.h" #include "dewford_trend.h" -#include "asm.h" #include "easy_chat.h" #include "event_data.h" #include "link.h" diff --git a/src/diploma.c b/src/diploma.c index 80adac8f7..ba7de58aa 100644 --- a/src/diploma.c +++ b/src/diploma.c @@ -1,5 +1,5 @@ #include "global.h" -#include "asm.h" +#include "diploma.h" #include "main.h" #include "menu.h" #include "palette.h" @@ -10,6 +10,7 @@ #include "strings2.h" #include "task.h" #include "text.h" +#include "unknown_task.h" static void VBlankCB(void); static void MainCB2(void); diff --git a/src/easy_chat.c b/src/easy_chat.c index b21b00368..cc2cd7030 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -1,6 +1,5 @@ #include "global.h" #include "easy_chat.h" -#include "asm.h" #include "data2.h" #include "event_data.h" #include "field_message_box.h" @@ -11,17 +10,9 @@ #include "strings2.h" #include "text.h" -u8 sub_80EB37C(u16); -u8 sub_80EB8C0(void); -u8 sub_80EB868(u8); -u16 sub_80EAE88(u8); -void sub_80EB890(u8); -u16 sub_80EB784(u16 group); -u8 sub_80EAD7C(u8 group); static bool8 sub_80EB680(u16 *, u16, u16, u16); static u16 sub_80EB9D8(void); static u16 sub_80EB960(void); -u16 sub_80EB72C(u16); extern void *gEasyChatGroupWords[]; extern const u8 gEasyChatGroupSizes[]; @@ -216,15 +207,15 @@ void unref_sub_80EB684(u8 arg0, u16 arg1) { { case 5: c = 6; - ptr = (u16*)((void *)&gSaveBlock1.tvShows.shows[arg1] + 0x04); + ptr = (u16*)((void *)&gSaveBlock1.tvShows[arg1] + 0x04); break; case 7: c = 2; - ptr = (u16*)((void *)&gSaveBlock1.tvShows.shows[arg1] + 0x1C); + ptr = (u16*)((void *)&gSaveBlock1.tvShows[arg1] + 0x1C); break; case 8: c = 1; - ptr = (u16*)((void *)&gSaveBlock1.tvShows.shows[arg1] + 0x02); + ptr = (u16*)((void *)&gSaveBlock1.tvShows[arg1] + 0x02); break; default: @@ -471,7 +462,7 @@ static u16 sub_80EB9D8(void) { { const u16 dexNum = SpeciesToNationalPokedexNum(*speciesList); - const u8 local2 = sub_8090D90(dexNum, 0); + const u8 local2 = GetNationalPokedexFlag(dexNum, 0); if (local2) { diff --git a/src/field_camera.c b/src/field_camera.c index df5ccc301..1aed1549b 100644 --- a/src/field_camera.c +++ b/src/field_camera.c @@ -1,9 +1,9 @@ #include "global.h" #include "field_camera.h" -#include "asm.h" -#include "asm_fieldmap.h" #include "berry.h" #include "field_player_avatar.h" +#include "fieldmap.h" +#include "rotating_gate.h" #include "sprite.h" #include "text.h" diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index 8220a144b..2d8140be5 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -1,17 +1,25 @@ #include "global.h" #include "field_control_avatar.h" -#include "asm.h" #include "battle_setup.h" #include "bike.h" +#include "coord_event_weather.h" +#include "daycare.h" #include "event_data.h" +#include "field_fadetransition.h" #include "field_player_avatar.h" +#include "field_poison.h" +#include "field_specials.h" +#include "fieldmap.h" #include "flags.h" +#include "item_menu.h" #include "metatile_behavior.h" #include "rom4.h" #include "safari_zone.h" #include "script.h" +#include "secret_base.h" #include "songs.h" #include "sound.h" +#include "start_menu.h" #include "trainer_see.h" #include "vars.h" #include "wild_encounter.h" @@ -22,7 +30,6 @@ struct Coords32 s32 y; }; -extern const struct Coords32 gUnknown_0821664C[]; extern u16 gScriptLastTalked; extern u16 gScriptFacing; extern struct LinkPlayerMapObject gLinkPlayerMapObjects[]; @@ -82,14 +89,10 @@ static u8 *TryGetFieldMoveScript(struct MapPosition *, u8, u8); static bool32 sub_8068770(void); static bool32 sub_80687A4(void); static bool8 sub_80687E4(struct MapPosition *, u16, u16); -bool8 mapheader_trigger_activate_at__run_now(struct MapPosition *); -bool8 sub_8068870(u16 a); -bool8 sub_8068894(void); static void happiness_algorithm_step(void); static bool8 overworld_poison_step(void); static bool8 is_it_battle_time_3(u16); static bool8 mapheader_run_first_tag2_script_list_match_conditionally(struct MapPosition *, u16, u8); -bool8 sub_8068A64(struct MapPosition *, u16); static bool8 sub_8068B30(u16); static bool8 is_non_stair_warp_tile(u16, u8); static s8 map_warp_check_packed(struct MapHeader *, struct MapPosition *); @@ -98,21 +101,6 @@ static bool8 map_warp_consider_2_to_inside(struct MapPosition *, u16, u8); static s8 map_warp_check(struct MapHeader *, u16, u16, u8); static u8 *mapheader_trigger_activate_at(struct MapHeader *, u16, u16, u8); static struct BgEvent *FindInvisibleMapObjectByPosition(struct MapHeader *, u16, u16, u8); -u8 sub_8068F18(void); - -extern u8 mapheader_run_first_tag2_script_list_match(void); -extern void sub_8071310(void); -extern int sub_80A6D1C(void); -extern u8 sub_80BC050(); -extern u8 sub_80422A0(void); -extern s32 overworld_poison(void); -extern void sub_8080E88(); -extern void walkrun_find_lowest_active_bit_in_bitfield(void); -extern void sub_8080F2C(u8); -extern void sub_8080F48(void); -extern void sub_8080F58(void); -extern void sub_80BC038(); -extern void DoCoordEventWeather(u8); void FieldClearPlayerInput(struct FieldInput *input) { diff --git a/src/field_door.c b/src/field_door.c index fa763a5d6..791ed4c94 100644 --- a/src/field_door.c +++ b/src/field_door.c @@ -1,7 +1,7 @@ #include "global.h" #include "field_door.h" -#include "asm.h" #include "field_camera.h" +#include "fieldmap.h" #include "metatile_behavior.h" #include "task.h" diff --git a/src/field_effect.c b/src/field_effect.c index bbc1144c1..a7f0e4129 100644..100755 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -1,17 +1,427 @@ #include "global.h" -#include "field_effect.h" +#include "data2.h" +#include "script.h" +#include "trig.h" +#include "main.h" #include "field_weather.h" +#include "decompress.h" #include "sprite.h" +#include "menu.h" +#include "palette.h" #include "text.h" +#include "rom4.h" +#include "task.h" +#include "sound.h" +#include "songs.h" +#include "decoration.h" +#include "field_player_avatar.h" +#include "field_map_obj_helpers.h" +#include "field_map_obj.h" +#include "metatile_behavior.h" +#include "field_camera.h" +#include "field_effect.h" +#include "field_fadetransition.h" +#include "fieldmap.h" +#include "field_map_obj.h" +#include "util.h" +#include "field_effect_helpers.h" + +#define subsprite_table(ptr) {.subsprites = ptr, .subspriteCount = (sizeof ptr) / (sizeof(struct Subsprite))} + +#define obj_frame_tiles(ptr) {.data = (u8 *)ptr, .size = sizeof ptr} + +const u32 gSpriteImage_839DC14[] = INCBIN_U32("graphics/birch_speech/birch.4bpp"); +const u16 gBirchPalette[16] = INCBIN_U16("graphics/birch_speech/birch.gbapal"); +const u32 gSpriteImage_839E434[] = INCBIN_U32("graphics/misc/pokeball_glow.4bpp"); +const u16 gFieldEffectObjectPalette4[16] = INCBIN_U16("graphics/field_effect_objects/palettes/04.gbapal"); +const u32 gSpriteImage_839E474[] = INCBIN_U32("graphics/misc/pokecenter_monitor/0.4bpp"); +const u32 gSpriteImage_839E534[] = INCBIN_U32("graphics/misc/pokecenter_monitor/1.4bpp"); +const u32 gSpriteImage_839E5F4[] = INCBIN_U32("graphics/misc/big_hof_monitor.4bpp"); +const u32 gSpriteImage_839E7F4[] = INCBIN_U32("graphics/misc/small_hof_monitor.4bpp"); +const u16 gFieldEffectObjectPalette5[16] = INCBIN_U16("graphics/field_effect_objects/palettes/05.gbapal"); + +// Graphics for the lights streaking past your Pokemon when it uses a field move. +const u32 gFieldMoveStreaksTiles[] = INCBIN_U32("graphics/misc/field_move_streaks.4bpp"); +const u16 gFieldMoveStreaksPalette[16] = INCBIN_U16("graphics/misc/field_move_streaks.gbapal"); +const u16 gFieldMoveStreaksTilemap[] = INCBIN_U16("graphics/misc/field_move_streaks_map.bin"); + +// The following light streaks effect is used when the map is dark (e.g. a cave). +const u32 gDarknessFieldMoveStreaksTiles[] = INCBIN_U32("graphics/misc/darkness_field_move_streaks.4bpp"); +const u16 gDarknessFieldMoveStreaksPalette[16] = INCBIN_U16("graphics/misc/darkness_field_move_streaks.gbapal"); +const u16 gDarknessFieldMoveStreaksTilemap[] = INCBIN_U16("graphics/misc/darkness_field_move_streaks_map.bin"); + +bool8 (*const gFieldEffectScriptFuncs[])(u8 **, u32 *) = { + FieldEffectCmd_loadtiles, + FieldEffectCmd_loadfadedpal, + FieldEffectCmd_loadpal, + FieldEffectCmd_callnative, + FieldEffectCmd_end, + FieldEffectCmd_loadgfx_callnative, + FieldEffectCmd_loadtiles_callnative, + FieldEffectCmd_loadfadedpal_callnative, +}; + +const struct OamData gOamData_839F0F4 = {.size = 3}; +const struct OamData gOamData_839F0FC = {.size = 0}; +const struct OamData gOamData_839F104 = {.size = 1}; + +const struct SpriteFrameImage gSpriteImageTable_839F10C[] = { + obj_frame_tiles(gSpriteImage_839DC14) +}; +const struct SpritePalette gUnknown_0839F114 = {.data = gBirchPalette, .tag = 0x1006}; + +const union AnimCmd gSpriteAnim_839F11C[] = { + ANIMCMD_FRAME(.imageValue = 0, .duration = 1), + ANIMCMD_END +}; + +const union AnimCmd *const gSpriteAnimTable_839F124[] = { + gSpriteAnim_839F11C +}; + +const struct SpriteTemplate gSpriteTemplate_839F128 = { + .tileTag = 0xffff, + .paletteTag = 4102, + .oam = &gOamData_839F0F4, + .anims = (const union AnimCmd *const *)&gSpriteAnimTable_839F124, + .images = gSpriteImageTable_839F10C, + .affineAnims = (const union AffineAnimCmd *const *)&gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +const struct SpritePalette gFieldEffectObjectPaletteInfo4 = {.data = gFieldEffectObjectPalette4, .tag = 0x1007}; +const struct SpritePalette gFieldEffectObjectPaletteInfo5 = {.data = gFieldEffectObjectPalette5, .tag = 0x1010}; +const struct OamData gOamData_839F150 = { + .shape = 1, + .size = 2 +}; + +const struct SpriteFrameImage gSpriteImageTable_839F158[] = { + obj_frame_tiles(gSpriteImage_839E434) +}; + +const struct SpriteFrameImage gSpriteImageTable_839F160[] = { + obj_frame_tiles(gSpriteImage_839E474), + obj_frame_tiles(gSpriteImage_839E534) +}; + +const struct SpriteFrameImage gSpriteImageTable_839F170[] = { + obj_frame_tiles(gSpriteImage_839E5F4) +}; + +const struct SpriteFrameImage gSpriteImageTable_839F178[] = { + {.data = (u8 *)gSpriteImage_839E7F4, .size = 0x200} // the macro breaks down here +}; + +const struct Subsprite Unknown_39F180[] = { + {.x = -12, .y = -8, .priority = 2, .tileOffset = 0, .shape = 1, .size = 0}, + {.x = 4, .y = -8, .priority = 2, .tileOffset = 2, .shape = 0, .size = 0}, + {.x = -12, .y = 0, .priority = 2, .tileOffset = 3, .shape = 1, .size = 0}, + {.x = 4, .y = 0, .priority = 2, .tileOffset = 5, .shape = 0, .size = 0} +}; + +const struct SubspriteTable gUnknown_0839F1A0 = subsprite_table(Unknown_39F180); + +const struct Subsprite Unknown_39F1A8[] = { + {.x = -32, .y = -8, .priority = 2, .tileOffset = 0, .shape = 1, .size = 1}, + {.x = 0, .y = -8, .priority = 2, .tileOffset = 4, .shape = 1, .size = 1}, + {.x = -32, .y = 0, .priority = 2, .tileOffset = 8, .shape = 1, .size = 1}, + {.x = 0, .y = 0, .priority = 2, .tileOffset = 12, .shape = 1, .size = 1} +}; + +const struct SubspriteTable gUnknown_0839F1C8 = subsprite_table(Unknown_39F1A8); + +const union AnimCmd gSpriteAnim_839F1D0[] = { + ANIMCMD_FRAME(.imageValue = 0, .duration = 1), + ANIMCMD_JUMP(0) +}; + +const union AnimCmd gSpriteAnim_839F1D8[] = { + ANIMCMD_FRAME(.imageValue = 0, .duration = 16), + ANIMCMD_FRAME(.imageValue = 1, .duration = 16), + ANIMCMD_FRAME(.imageValue = 0, .duration = 16), + ANIMCMD_FRAME(.imageValue = 1, .duration = 16), + ANIMCMD_FRAME(.imageValue = 0, .duration = 16), + ANIMCMD_FRAME(.imageValue = 1, .duration = 16), + ANIMCMD_FRAME(.imageValue = 0, .duration = 16), + ANIMCMD_FRAME(.imageValue = 1, .duration = 16), + ANIMCMD_END +}; + +const union AnimCmd *const gSpriteAnimTable_839F1FC[] = { + gSpriteAnim_839F1D0, + gSpriteAnim_839F1D8 +}; + +const union AnimCmd *const gSpriteAnimTable_839F204[] = { + gSpriteAnim_839F1D0 +}; + +const struct SpriteTemplate gSpriteTemplate_839F208 = { + .tileTag = 0xffff, + .paletteTag = 4103, + .oam = &gOamData_839F0FC, + .anims = gSpriteAnimTable_839F1FC, + .images = gSpriteImageTable_839F158, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_PokeballGlow +}; + + +const struct SpriteTemplate gSpriteTemplate_839F220 = { + .tileTag = 0xffff, + .paletteTag = 4100, + .oam = &gOamData_839F104, + .anims = gSpriteAnimTable_839F1FC, + .images = gSpriteImageTable_839F160, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_PokecenterMonitor +}; + + +const struct SpriteTemplate gSpriteTemplate_839F238 = { + .tileTag = 0xffff, + .paletteTag = 4112, + .oam = &gOamData_839F104, + .anims = gSpriteAnimTable_839F204, + .images = gSpriteImageTable_839F170, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_HallOfFameMonitor +}; + + +const struct SpriteTemplate gSpriteTemplate_839F250 = { + .tileTag = 0xffff, + .paletteTag = 4112, + .oam = &gOamData_839F150, + .anims = gSpriteAnimTable_839F204, + .images = gSpriteImageTable_839F178, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_HallOfFameMonitor +}; + +void (*const gUnknown_0839F268[])(struct Task *) = { + PokecenterHealEffect_0, + PokecenterHealEffect_1, + PokecenterHealEffect_2, + PokecenterHealEffect_3 +}; -typedef bool8 (*FldEffCmd)(u8 **, u32 *); +void (*const gUnknown_0839F278[])(struct Task *) = { + HallOfFameRecordEffect_0, + HallOfFameRecordEffect_1, + HallOfFameRecordEffect_2, + HallOfFameRecordEffect_3 +}; + +void (*const gUnknown_0839F288[])(struct Sprite *) = { + PokeballGlowEffect_0, + PokeballGlowEffect_1, + PokeballGlowEffect_2, + PokeballGlowEffect_3, + PokeballGlowEffect_4, + PokeballGlowEffect_5, + PokeballGlowEffect_6, + PokeballGlowEffect_7 +}; + +const struct Coords16 gUnknown_0839F2A8[] = { + {.x = 0, .y = 0}, + {.x = 6, .y = 0}, + {.x = 0, .y = 4}, + {.x = 6, .y = 4}, + {.x = 0, .y = 8}, + {.x = 6, .y = 8} +}; + +const u8 gUnknown_0839F2C0[] = {16, 12, 8, 0}; +const u8 gUnknown_0839F2C4[] = {16, 12, 8, 0}; +const u8 gUnknown_0839F2C8[] = { 0, 0, 0, 0}; + +bool8 (*const gUnknown_0839F2CC[])(struct Task *) = { + sub_80867AC, + sub_8086854, + sub_8086870, + sub_80868E4, + sub_808699C, + sub_80869B8, + sub_80869F8 +}; + +bool8 (*const gUnknown_0839F2E8[])(struct Task *) = { + sub_8086AA0, + sub_8086AC0, + sub_8086B30, + sub_8086B54, + sub_8086B64, + sub_8086B88 +}; + +bool8 (*const gUnknown_0839F300[])(struct Task *) = { + sub_8086CF4, + sub_8086D70, + sub_8086DB0, + sub_8086E10, + sub_8086E50, + sub_8086EB0, + sub_8086ED4 +}; + +bool8 (*const gUnknown_0839F31C[])(struct Task *, struct MapObject *) = { + sub_8086FB0, + waterfall_1_do_anim_probably, + waterfall_2_wait_anim_finish_probably, + sub_8087030, + sub_8087058 +}; + +bool8 (*const gUnknown_0839F330[])(struct Task *) = { + sub_8087124, + dive_2_unknown, + dive_3_unknown +}; + +bool8 (*const gUnknown_0839F33C[])(struct Task *, struct MapObject *, struct Sprite *) = { + sub_808722C, + sub_8087264, + sub_8087298, + sub_80872E4, + sub_80873D8, + sub_80873F4 +}; + +bool8 (*const gUnknown_0839F354[])(struct Task *, struct MapObject *, struct Sprite *) = { + sub_80874CC, + sub_80874FC, + sub_8087548, + sub_808759C +}; + +bool8 (*const gUnknown_0839F364[])(struct Task *, struct MapObject *, struct Sprite *) = { + sub_80876C8, + sub_80876F8, + sub_8087774, + sub_80877AC, + sub_80877D4 +}; + +void (*const gUnknown_0839F378[])(struct Task *) = { + sub_80878F4, + sub_8087914 +}; + +const u8 gUnknown_0839F380[] = {1, 3, 4, 2, 1}; + +void (*const gUnknown_0839F388[])(struct Task *) = { + sub_8087AA4, + sub_8087AC8 +}; + +void (*const gUnknown_0839F390[])(struct Task *) = { + sub_8087BEC, + sub_8087C14, + sub_8087CA4, + sub_8087D78 +}; + +void (*const gUnknown_0839F3A0[])(struct Task *) = { + sub_8087E4C, + sub_8087ED8, + sub_8087FDC +}; + +void (*const gUnknown_0839F3AC[])(struct Task *) = { + sub_8088150, + sub_80881C0, + sub_8088228, + sub_80882B4, + sub_80882E4, + sub_8088338, + sub_8088380 +}; + +void (*const gUnknown_0839F3C8[])(struct Task *) = { + sub_80884AC, + sub_80884E8, + sub_8088554, + sub_80885A8, + sub_80885D8, + sub_808860C, + sub_808862C +}; + +void (*const gUnknown_0839F3E4[])(struct Task *) = { + sub_8088984, + sub_80889E4, + sub_8088A30, + sub_8088A78, + sub_8088AF4 +}; + +void (*const gUnknown_0839F3F8[])(struct Task *) = { + sub_8088CA0, + sub_8088CF8, + sub_8088D3C, + sub_8088D94, + sub_8088DD8, + sub_8088E2C, + sub_8088EB4, + sub_8088F10, + sub_8088F30 +}; + +const union AffineAnimCmd SpriteAffineAnim_839F41C[] = { + AFFINEANIMCMD_FRAME(8, 8, -30, 0), + AFFINEANIMCMD_FRAME(28, 28, 0, 30), + AFFINEANIMCMD_END +}; + +const union AffineAnimCmd SpriteAffineAnim_839F434[] = { + AFFINEANIMCMD_FRAME(256, 256, 64, 0), + AFFINEANIMCMD_FRAME(-10, -10, 0, 22), + AFFINEANIMCMD_END +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_0839F44C[] = { + SpriteAffineAnim_839F41C, + SpriteAffineAnim_839F434 +}; + +void (*const gUnknown_0839F454[])(struct Task *) = { + sub_80892A0, + sub_8089354, + sub_80893C0, + sub_8089414, + sub_808948C, + sub_80894C4, + fishE +}; + +const s16 gUnknown_0839F470[] = { + -2, + -4, + -5, + -6, + -7, + -8, + -8, + -8, + -7, + -7, + -6, + -5, + -3, + -2, + 0, + 2, + 4, + 8 +}; static u8 sActiveList[32]; extern u8 *gFieldEffectScriptPointers[]; -extern FldEffCmd gFieldEffectScriptFuncs[]; - u32 FieldEffectStart(u8 id) { u8 *script; @@ -207,3 +617,2790 @@ bool8 FieldEffectActiveListContains(u8 id) return TRUE; return FALSE; } + +u8 CreateTrainerSprite_BirchSpeech(u8 gender, s16 x, s16 y, u8 subpriority, u8 *buffer) +{ + struct SpriteTemplate spriteTemplate; + LoadCompressedObjectPaletteOverrideBuffer(&gTrainerFrontPicPaletteTable[gender], buffer); + LoadCompressedObjectPicOverrideBuffer(&gTrainerFrontPicTable[gender], buffer); + spriteTemplate.tileTag = gTrainerFrontPicTable[gender].tag; + spriteTemplate.paletteTag = gTrainerFrontPicPaletteTable[gender].tag; + spriteTemplate.oam = &gOamData_839F0F4; + spriteTemplate.anims = gDummySpriteAnimTable; + spriteTemplate.images = NULL; + spriteTemplate.affineAnims = gDummySpriteAffineAnimTable; + spriteTemplate.callback = SpriteCallbackDummy; + return CreateSprite(&spriteTemplate, x, y, subpriority); +} + +void LoadTrainerGfx_TrainerCard(u8 gender, u16 palOffset, u8 *dest) +{ + LZDecompressVram(gTrainerFrontPicTable[gender].data, dest); + LoadCompressedPalette(gTrainerFrontPicPaletteTable[gender].data, palOffset, 0x20); +} + +u8 CreateBirchSprite(s16 x, s16 y, u8 subpriority) +{ + LoadSpritePalette(&gUnknown_0839F114); + return CreateSprite(&gSpriteTemplate_839F128, x, y, subpriority); +} + +u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y, u8 subpriority) +{ + DecompressPicFromTable_2(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, gUnknown_081FAF4C[3], gUnknown_081FAF4C[3], species); + LoadCompressedObjectPalette(&gMonPaletteTable[species]); + GetMonSpriteTemplate_803C56C(species, 3); + gUnknown_02024E8C.paletteTag = gMonPaletteTable[0].tag; + sub_807DE38(IndexOfSpritePaletteTag(gMonPaletteTable[0].tag) + 0x10); + return CreateSprite(&gUnknown_02024E8C, x, y, subpriority); +} + +u8 CreateMonSprite_FieldMove(u16 species, u32 d, u32 g, s16 x, s16 y, u8 subpriority) +{ + const struct CompressedSpritePalette *spritePalette; + + HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, (u32)gUnknown_081FAF4C[3] /* this is actually u8* or something, pointing to ewram */, gUnknown_081FAF4C[3], species, g); + spritePalette = sub_80409C8(species, d, g); + LoadCompressedObjectPalette(spritePalette); + GetMonSpriteTemplate_803C56C(species, 3); + gUnknown_02024E8C.paletteTag = spritePalette->tag; + sub_807DE38(IndexOfSpritePaletteTag(spritePalette->tag) + 0x10); + return CreateSprite(&gUnknown_02024E8C, x, y, subpriority); +} + +void FreeResourcesAndDestroySprite(struct Sprite *sprite) +{ + sub_807DE68(); + FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(sprite->oam.paletteNum)); + if (sprite->oam.affineMode != 0) + { + FreeOamMatrix(sprite->oam.matrixNum); + } + DestroySprite(sprite); +} + +#ifdef NONMATCHING +void MultiplyInvertedPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b) +{ + int curRed; + int curGreen; + int curBlue; + + curRed = gPlttBufferUnfaded[i] & 0x1f; + curGreen = (gPlttBufferUnfaded[i] & (0x1f << 5)) >> 5; + curBlue = (gPlttBufferUnfaded[i] & (0x1f << 10)) >> 10; + curRed += (((0x1f - curRed) * r) >> 4); + curGreen += (((0x1f - curGreen) * g) >> 4); + curBlue += (((0x1f - curBlue) * b) >> 4); + gPlttBufferFaded[i] = RGB(curRed, curGreen, curBlue); +} + +void MultiplyPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b) +{ + int curRed; + int curGreen; + int curBlue; + + curRed = gPlttBufferUnfaded[i] & 0x1f; + curGreen = (gPlttBufferUnfaded[i] & (0x1f << 5)) >> 5; + curBlue = (gPlttBufferUnfaded[i] & (0x1f << 10)) >> 10; + curRed -= ((curRed * r) >> 4); + curGreen -= ((curGreen * g) >> 4); + curBlue -= ((curBlue * b) >> 4); + gPlttBufferFaded[i] = RGB(curRed, curGreen, curBlue); +} +#else +__attribute__((naked)) +void MultiplyInvertedPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b) +{ + asm(".syntax unified\n" + "\tpush {r4-r7,lr}\n" + "\tmov r7, r9\n" + "\tmov r6, r8\n" + "\tpush {r6,r7}\n" + "\tlsls r0, 16\n" + "\tlsls r1, 24\n" + "\tlsrs r1, 24\n" + "\tlsls r2, 24\n" + "\tlsrs r2, 24\n" + "\tlsls r3, 24\n" + "\tlsrs r3, 24\n" + "\tldr r4, _08085D00 @ =gPlttBufferUnfaded\n" + "\tlsrs r0, 15\n" + "\tadds r4, r0, r4\n" + "\tldrh r4, [r4]\n" + "\tmovs r5, 0x1F\n" + "\tmov r9, r5\n" + "\tmov r8, r4\n" + "\tmov r6, r8\n" + "\tands r6, r5\n" + "\tmov r8, r6\n" + "\tmovs r6, 0xF8\n" + "\tlsls r6, 2\n" + "\tands r6, r4\n" + "\tlsrs r6, 5\n" + "\tmovs r5, 0xF8\n" + "\tlsls r5, 7\n" + "\tands r4, r5\n" + "\tlsrs r4, 10\n" + "\tmov r7, r9\n" + "\tmov r5, r8\n" + "\tsubs r7, r5\n" + "\tmov r12, r7\n" + "\tmov r7, r12\n" + "\tmuls r7, r1\n" + "\tadds r1, r7, 0\n" + "\tasrs r1, 4\n" + "\tadd r8, r1\n" + "\tmov r5, r9\n" + "\tsubs r1, r5, r6\n" + "\tmuls r1, r2\n" + "\tasrs r1, 4\n" + "\tadds r6, r1\n" + "\tsubs r5, r4\n" + "\tmov r9, r5\n" + "\tmov r1, r9\n" + "\tmuls r1, r3\n" + "\tasrs r1, 4\n" + "\tadds r4, r1\n" + "\tmov r7, r8\n" + "\tlsls r7, 16\n" + "\tlsls r6, 21\n" + "\torrs r6, r7\n" + "\tlsls r4, 26\n" + "\torrs r4, r6\n" + "\tlsrs r4, 16\n" + "\tldr r1, _08085D04 @ =gPlttBufferFaded\n" + "\tadds r0, r1\n" + "\tstrh r4, [r0]\n" + "\tpop {r3,r4}\n" + "\tmov r8, r3\n" + "\tmov r9, r4\n" + "\tpop {r4-r7}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" + "_08085D00: .4byte gPlttBufferUnfaded\n" + "_08085D04: .4byte gPlttBufferFaded\n" + ".syntax divided"); +} + +__attribute__((naked)) +void MultiplyPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b) +{ + asm(".syntax unified\n" + "\tpush {r4-r6,lr}\n" + "\tmov r6, r8\n" + "\tpush {r6}\n" + "\tlsls r0, 16\n" + "\tlsls r1, 24\n" + "\tlsrs r1, 24\n" + "\tlsls r2, 24\n" + "\tlsrs r2, 24\n" + "\tlsls r3, 24\n" + "\tlsrs r3, 24\n" + "\tldr r4, _08085D78 @ =gPlttBufferUnfaded\n" + "\tlsrs r0, 15\n" + "\tadds r4, r0, r4\n" + "\tldrh r4, [r4]\n" + "\tmovs r5, 0x1F\n" + "\tmov r8, r5\n" + "\tmov r6, r8\n" + "\tands r6, r4\n" + "\tmov r8, r6\n" + "\tmovs r5, 0xF8\n" + "\tlsls r5, 2\n" + "\tands r5, r4\n" + "\tlsrs r5, 5\n" + "\tmovs r6, 0xF8\n" + "\tlsls r6, 7\n" + "\tands r4, r6\n" + "\tlsrs r4, 10\n" + "\tmov r6, r8\n" + "\tmuls r6, r1\n" + "\tadds r1, r6, 0\n" + "\tasrs r1, 4\n" + "\tmov r6, r8\n" + "\tsubs r6, r1\n" + "\tadds r1, r5, 0\n" + "\tmuls r1, r2\n" + "\tasrs r1, 4\n" + "\tsubs r5, r1\n" + "\tadds r1, r4, 0\n" + "\tmuls r1, r3\n" + "\tasrs r1, 4\n" + "\tsubs r4, r1\n" + "\tlsls r6, 16\n" + "\tlsls r5, 21\n" + "\torrs r5, r6\n" + "\tlsls r4, 26\n" + "\torrs r4, r5\n" + "\tlsrs r4, 16\n" + "\tldr r1, _08085D7C @ =gPlttBufferFaded\n" + "\tadds r0, r1\n" + "\tstrh r4, [r0]\n" + "\tpop {r3}\n" + "\tmov r8, r3\n" + "\tpop {r4-r6}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" + "_08085D78: .4byte gPlttBufferUnfaded\n" + "_08085D7C: .4byte gPlttBufferFaded\n" + ".syntax divided"); +} +#endif + +void Task_PokecenterHeal(u8 taskId); +u8 CreatePokeballGlowSprite(s16, s16, s16, u16); +u8 PokecenterHealEffectHelper(s16, s16); + +bool8 FldEff_PokecenterHeal(void) +{ + u8 nPokemon; + struct Task *task; + + nPokemon = CalculatePlayerPartyCount(); + task = &gTasks[CreateTask(Task_PokecenterHeal, 0xff)]; + task->data[1] = nPokemon; + task->data[2] = 0x5d; + task->data[3] = 0x24; + task->data[4] = 0x7c; + task->data[5] = 0x18; + return FALSE; +} + +void Task_PokecenterHeal(u8 taskId) +{ + struct Task *task; + task = &gTasks[taskId]; + gUnknown_0839F268[task->data[0]](task); +} + +void PokecenterHealEffect_0(struct Task *task) +{ + task->data[0]++; + task->data[6] = CreatePokeballGlowSprite(task->data[1], task->data[2], task->data[3], 1); + task->data[7] = PokecenterHealEffectHelper(task->data[4], task->data[5]); +} + +void PokecenterHealEffect_1(struct Task *task) +{ + if (gSprites[task->data[6]].data0 > 1) + { + gSprites[task->data[7]].data0++; + task->data[0]++; + } +} + +void PokecenterHealEffect_2(struct Task *task) +{ + if (gSprites[task->data[6]].data0 > 4) + { + task->data[0]++; + } +} + +void PokecenterHealEffect_3(struct Task *task) +{ + if (gSprites[task->data[6]].data0 > 6) + { + DestroySprite(&gSprites[task->data[6]]); + FieldEffectActiveListRemove(FLDEFF_POKECENTER_HEAL); + DestroyTask(FindTaskIdByFunc(Task_PokecenterHeal)); + } +} + +void Task_HallOfFameRecord(u8 taskId); +void HallOfFameRecordEffectHelper(s16, s16, s16, u8); + +bool8 FldEff_HallOfFameRecord(void) +{ + u8 nPokemon; + struct Task *task; + + nPokemon = CalculatePlayerPartyCount(); + task = &gTasks[CreateTask(Task_HallOfFameRecord, 0xff)]; + task->data[1] = nPokemon; + task->data[2] = 0x75; + task->data[3] = 0x34; + return FALSE; +} + +void Task_HallOfFameRecord(u8 taskId) +{ + struct Task *task; + task = &gTasks[taskId]; + gUnknown_0839F278[task->data[0]](task); +} + +void HallOfFameRecordEffect_0(struct Task *task) +{ + u8 taskId; + task->data[0]++; + task->data[6] = CreatePokeballGlowSprite(task->data[1], task->data[2], task->data[3], 0); + taskId = FindTaskIdByFunc(Task_HallOfFameRecord); + HallOfFameRecordEffectHelper(taskId, 0x78, 0x18, 0); + HallOfFameRecordEffectHelper(taskId, 0x28, 0x08, 1); + HallOfFameRecordEffectHelper(taskId, 0x48, 0x08, 1); + HallOfFameRecordEffectHelper(taskId, 0xa8, 0x08, 1); + HallOfFameRecordEffectHelper(taskId, 0xc8, 0x08, 1); +} + +void HallOfFameRecordEffect_1(struct Task *task) +{ + if (gSprites[task->data[6]].data0 > 1) + { + task->data[15]++; // was this ever initialized? is this ever used? + task->data[0]++; + } +} + +void HallOfFameRecordEffect_2(struct Task *task) +{ + if (gSprites[task->data[6]].data0 > 4) + { + task->data[0]++; + } +} + +void HallOfFameRecordEffect_3(struct Task *task) +{ + if (gSprites[task->data[6]].data0 > 6) + { + DestroySprite(&gSprites[task->data[6]]); + FieldEffectActiveListRemove(FLDEFF_HALL_OF_FAME_RECORD); + DestroyTask(FindTaskIdByFunc(Task_HallOfFameRecord)); + } +} + +void SpriteCB_PokeballGlowEffect(struct Sprite *); + +u8 CreatePokeballGlowSprite(s16 data6, s16 x, s16 y, u16 data5) +{ + u8 spriteId; + struct Sprite *sprite; + spriteId = CreateInvisibleSprite(SpriteCB_PokeballGlowEffect); + sprite = &gSprites[spriteId]; + sprite->pos2.x = x; + sprite->pos2.y = y; + sprite->data5 = data5; + sprite->data6 = data6; + sprite->data7 = spriteId; + return spriteId; +} + +void SpriteCB_PokeballGlowEffect(struct Sprite *sprite) +{ + gUnknown_0839F288[sprite->data0](sprite); +} + +void PokeballGlowEffect_0(struct Sprite *sprite) +{ + u8 endSpriteId; + if (sprite->data1 == 0 || (--sprite->data1) == 0) + { + sprite->data1 = 25; + endSpriteId = CreateSpriteAtEnd(&gSpriteTemplate_839F208, gUnknown_0839F2A8[sprite->data2].x + sprite->pos2.x, gUnknown_0839F2A8[sprite->data2].y + sprite->pos2.y, 0); + gSprites[endSpriteId].oam.priority = 2; + gSprites[endSpriteId].data0 = sprite->data7; + sprite->data2++; + sprite->data6--; + PlaySE(SE_BOWA); + } + if (sprite->data6 == 0) + { + sprite->data1 = 32; + sprite->data0++; + } +} + +void PokeballGlowEffect_1(struct Sprite *sprite) +{ + if ((--sprite->data1) == 0) + { + sprite->data0++; + sprite->data1 = 8; + sprite->data2 = 0; + sprite->data3 = 0; + if (sprite->data5) + { + PlayFanfare(BGM_ME_ASA); + } + } +} + +void PokeballGlowEffect_2(struct Sprite *sprite) +{ + u8 phase; + if ((--sprite->data1) == 0) + { + sprite->data1 = 8; + sprite->data2++; + sprite->data2 &= 3; + if (sprite->data2 == 0) + { + sprite->data3++; + } + } + phase = (sprite->data2 + 3) & 3; + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x108, gUnknown_0839F2C0[phase], gUnknown_0839F2C4[phase], gUnknown_0839F2C8[phase]); + phase = (sprite->data2 + 2) & 3; + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x106, gUnknown_0839F2C0[phase], gUnknown_0839F2C4[phase], gUnknown_0839F2C8[phase]); + phase = (sprite->data2 + 1) & 3; + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x102, gUnknown_0839F2C0[phase], gUnknown_0839F2C4[phase], gUnknown_0839F2C8[phase]); + phase = sprite->data2; + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x105, gUnknown_0839F2C0[phase], gUnknown_0839F2C4[phase], gUnknown_0839F2C8[phase]); + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x103, gUnknown_0839F2C0[phase], gUnknown_0839F2C4[phase], gUnknown_0839F2C8[phase]); + if (sprite->data3 > 2) + { + sprite->data0++; + sprite->data1 = 8; + sprite->data2 = 0; + } +} + +void PokeballGlowEffect_3(struct Sprite *sprite) +{ + u8 phase; + if ((--sprite->data1) == 0) + { + sprite->data1 = 8; + sprite->data2++; + sprite->data2 &= 3; + if (sprite->data2 == 3) + { + sprite->data0++; + sprite->data1 = 30; + } + } + phase = sprite->data2; + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x108, gUnknown_0839F2C0[phase], gUnknown_0839F2C4[phase], gUnknown_0839F2C8[phase]); + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x106, gUnknown_0839F2C0[phase], gUnknown_0839F2C4[phase], gUnknown_0839F2C8[phase]); + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x102, gUnknown_0839F2C0[phase], gUnknown_0839F2C4[phase], gUnknown_0839F2C8[phase]); + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x105, gUnknown_0839F2C0[phase], gUnknown_0839F2C4[phase], gUnknown_0839F2C8[phase]); + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x103, gUnknown_0839F2C0[phase], gUnknown_0839F2C4[phase], gUnknown_0839F2C8[phase]); +} + +void PokeballGlowEffect_4(struct Sprite *sprite) +{ + if ((--sprite->data1) == 0) + { + sprite->data0++; + } +} + +void PokeballGlowEffect_5(struct Sprite *sprite) +{ + sprite->data0++; +} + +void PokeballGlowEffect_6(struct Sprite *sprite) +{ + if (sprite->data5 == 0 || IsFanfareTaskInactive()) + { + sprite->data0++; + } +} + +void PokeballGlowEffect_7(struct Sprite *sprite) +{ +} + +void SpriteCB_PokeballGlow(struct Sprite *sprite) +{ + if (gSprites[sprite->data0].data0 > 4) + { + FieldEffectFreeGraphicsResources(sprite); + } +} + +u8 PokecenterHealEffectHelper(s16 x, s16 y) +{ + u8 spriteIdAtEnd; + struct Sprite *sprite; + spriteIdAtEnd = CreateSpriteAtEnd(&gSpriteTemplate_839F220, x, y, 0); + sprite = &gSprites[spriteIdAtEnd]; + sprite->oam.priority = 2; + sprite->invisible = 1; + SetSubspriteTables(sprite, &gUnknown_0839F1A0); + return spriteIdAtEnd; +} + +void SpriteCB_PokecenterMonitor(struct Sprite *sprite) +{ + if (sprite->data0 != 0) + { + sprite->data0 = 0; + sprite->invisible = 0; + StartSpriteAnim(sprite, 1); + } + if (sprite->animEnded) + { + FieldEffectFreeGraphicsResources(sprite); + } +} + +void HallOfFameRecordEffectHelper(s16 a0, s16 a1, s16 a2, u8 a3) +{ + u8 spriteIdAtEnd; + if (!a3) + { + spriteIdAtEnd = CreateSpriteAtEnd(&gSpriteTemplate_839F238, a1, a2, 0); + SetSubspriteTables(&gSprites[spriteIdAtEnd], &gUnknown_0839F1C8); + } else + { + spriteIdAtEnd = CreateSpriteAtEnd(&gSpriteTemplate_839F250, a1, a2, 0); + } + gSprites[spriteIdAtEnd].invisible = 1; + gSprites[spriteIdAtEnd].data0 = a0; +} + +void SpriteCB_HallOfFameMonitor(struct Sprite *sprite) +{ + if (gTasks[sprite->data0].data[15]) + { + if (sprite->data1 == 0 || (--sprite->data1) == 0) + { + sprite->data1 = 16; + sprite->invisible ^= 1; + } + sprite->data2++; + } + if (sprite->data2 > 127) + { + FieldEffectFreeGraphicsResources(sprite); + } +} + +void mapldr_080842E8(void); +void mapldr_08084390(void); +void task00_8084310(u8); +void c3_080843F8(u8); + +void sub_80865BC(void) +{ + SetMainCallback2(c2_exit_to_overworld_2_switch); + gFieldCallback = mapldr_080842E8; +} + +void mapldr_080842E8(void) +{ + pal_fill_black(); + CreateTask(task00_8084310, 0); + ScriptContext2_Enable(); + FreezeMapObjects(); + gFieldCallback = NULL; +} + +void task00_8084310(u8 taskId) +{ + struct Task *task; + task = &gTasks[taskId]; + if (!task->data[0]) + { + if (!sub_807D770()) + { + return; + } + gUnknown_0202FF84[0] = gLastFieldPokeMenuOpened; + if ((int)gUnknown_0202FF84[0] > 5) + { + gUnknown_0202FF84[0] = 0; + } + FieldEffectStart(FLDEFF_USE_FLY); + task->data[0]++; + } + if (!FieldEffectActiveListContains(FLDEFF_USE_FLY)) + { + flag_var_implications_of_teleport_(); + warp_in(); + SetMainCallback2(CB2_LoadMap); + gFieldCallback = mapldr_08084390; + DestroyTask(taskId); + } +} + +void mapldr_08084390(void) +{ + sub_8053E90(); + pal_fill_black(); + CreateTask(c3_080843F8, 0); + gMapObjects[gPlayerAvatar.mapObjectId].mapobj_bit_13 = 1; + if (gPlayerAvatar.flags & 0x08) + { + FieldObjectTurn(&gMapObjects[gPlayerAvatar.mapObjectId], DIR_WEST); + } + ScriptContext2_Enable(); + FreezeMapObjects(); + gFieldCallback = NULL; +} + +void c3_080843F8(u8 taskId) +{ + struct Task *task; + task = &gTasks[taskId]; + if (task->data[0] == 0) + { + if (gPaletteFade.active) + { + return; + } + FieldEffectStart(FLDEFF_FLY_IN); + task->data[0]++; + } + if (!FieldEffectActiveListContains(FLDEFF_FLY_IN)) + { + ScriptContext2_Disable(); + UnfreezeMapObjects(); + DestroyTask(taskId); + } +} + +extern void pal_fill_for_map_transition(void); +void sub_8086774(u8); +extern void CameraObjectReset2(void); +extern void CameraObjectReset1(void); + +void sub_8086748(void) +{ + sub_8053E90(); + pal_fill_for_map_transition(); + ScriptContext2_Enable(); + FreezeMapObjects(); + CreateTask(sub_8086774, 0); + gFieldCallback = NULL; +} + +void sub_8086774(u8 taskId) +{ + struct Task *task; + task = &gTasks[taskId]; + while (gUnknown_0839F2CC[task->data[0]](task)); // return code signifies whether to continue blocking here +} + +bool8 sub_80867AC(struct Task *task) // gUnknown_0839F2CC[0] +{ + struct MapObject *playerObject; + struct Sprite *playerSprite; + playerObject = &gMapObjects[gPlayerAvatar.mapObjectId]; + playerSprite = &gSprites[gPlayerAvatar.spriteId]; + CameraObjectReset2(); + gMapObjects[gPlayerAvatar.mapObjectId].mapobj_bit_13 = 1; + gPlayerAvatar.unk6 = 1; + FieldObjectSetSpecialAnim(playerObject, GetFaceDirectionAnimId(player_get_direction_lower_nybble())); + task->data[4] = playerSprite->subspriteMode; + playerObject->mapobj_bit_26 = 1; + playerSprite->oam.priority = 1; + playerSprite->subspriteMode = 2; + task->data[0]++; + return TRUE; +} + +bool8 sub_8086854(struct Task *task) // gUnknown_0839F2CC[1] +{ + if (sub_807D770()) + { + task->data[0]++; + } + return FALSE; +} + +bool8 sub_8086870(struct Task *task) // gUnknown_0839F2CC[2] +{ + struct Sprite *sprite; + s16 centerToCornerVecY; + sprite = &gSprites[gPlayerAvatar.spriteId]; + centerToCornerVecY = -(sprite->centerToCornerVecY << 1); + sprite->pos2.y = -(sprite->pos1.y + sprite->centerToCornerVecY + gSpriteCoordOffsetY + centerToCornerVecY); + task->data[1] = 1; + task->data[2] = 0; + gMapObjects[gPlayerAvatar.mapObjectId].mapobj_bit_13 = 0; + PlaySE(SE_RU_HYUU); + task->data[0]++; + return FALSE; +} + +bool8 sub_80868E4(struct Task *task) +{ + struct MapObject *mapObject; + struct Sprite *sprite; + + mapObject = &gMapObjects[gPlayerAvatar.mapObjectId]; + sprite = &gSprites[gPlayerAvatar.spriteId]; + sprite->pos2.y += task->data[1]; + if (task->data[1] < 8) + { + task->data[2] += task->data[1]; + if (task->data[2] & 0xf) + { + task->data[1] <<= 1; + } + } + if (task->data[3] == 0 && sprite->pos2.y >= -16) + { + task->data[3]++; + mapObject->mapobj_bit_26 = 0; + sprite->subspriteMode = task->data[4]; + mapObject->mapobj_bit_2 = 1; + } + if (sprite->pos2.y >= 0) + { + PlaySE(SE_W070); + mapObject->mapobj_bit_3 = 1; + mapObject->mapobj_bit_5 = 1; + sprite->pos2.y = 0; + task->data[0]++; + } + return FALSE; +} + +bool8 sub_808699C(struct Task *task) +{ + task->data[0]++; + task->data[1] = 4; + task->data[2] = 0; + SetCameraPanningCallback(NULL); + return TRUE; +} + +bool8 sub_80869B8(struct Task *task) +{ + SetCameraPanning(0, task->data[1]); + task->data[1] = -task->data[1]; + task->data[2]++; + if ((task->data[2] & 3) == 0) + { + task->data[1] >>= 1; + } + if (task->data[1] == 0) + { + task->data[0]++; + } + return FALSE; +} + +bool8 sub_80869F8(struct Task *task) +{ + gPlayerAvatar.unk6 = 0; + ScriptContext2_Disable(); + CameraObjectReset1(); + UnfreezeMapObjects(); + InstallCameraPanAheadCallback(); + DestroyTask(FindTaskIdByFunc(sub_8086774)); + return FALSE; +} + +void sub_8086A68(u8); +extern void sub_80B4824(u8); +extern void sub_8053FF8(void); +extern void fade_8080918(void); + +void sub_8086B98(struct Task *); +void sub_8086BE4(struct Task *); +void sub_8086C30(void); +void sub_8086C40(void); +bool8 sub_8054034(void); +void sub_8086C94(void); +void sub_80B483C(void); +void sub_8086CBC(u8); + +void sub_8086A2C(u8 a0, u8 priority) +{ + u8 taskId; + taskId = CreateTask(sub_8086A68, priority); + gTasks[taskId].data[1] = 0; + if (a0 == 0x6a) + { + gTasks[taskId].data[1] = 1; + } +} + +void sub_8086A68(u8 taskId) +{ + struct Task *task; + task = &gTasks[taskId]; + while (gUnknown_0839F2E8[task->data[0]](task)); +} + +bool8 sub_8086AA0(struct Task *task) +{ + FreezeMapObjects(); + CameraObjectReset2(); + sub_80B4824(task->data[1]); + task->data[0]++; + return FALSE; +} + +bool8 sub_8086AC0(struct Task *task) +{ + struct MapObject *mapObject; + mapObject = &gMapObjects[gPlayerAvatar.mapObjectId]; + if (!FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(mapObject) || FieldObjectClearAnimIfSpecialAnimFinished(mapObject)) + { + FieldObjectSetSpecialAnim(mapObject, GetFaceDirectionAnimId(player_get_direction_lower_nybble())); + task->data[0]++; + task->data[2] = 0; + task->data[3] = 0; + if ((u8)task->data[1] == 0) + { + task->data[0] = 4; + } + PlaySE(SE_ESUKA); + } + return FALSE; +} + +bool8 sub_8086B30(struct Task *task) +{ + sub_8086B98(task); + if (task->data[2] > 3) + { + sub_8086C30(); + task->data[0]++; + } + return FALSE; +} + +bool8 sub_8086B54(struct Task *task) +{ + sub_8086B98(task); + sub_8086C40(); + return FALSE; +} + +bool8 sub_8086B64(struct Task *task) +{ + sub_8086BE4(task); + if (task->data[2] > 3) + { + sub_8086C30(); + task->data[0]++; + } + return FALSE; +} + +bool8 sub_8086B88(struct Task *task) +{ + sub_8086BE4(task); + sub_8086C40(); + return FALSE; +} + +void sub_8086B98(struct Task *task) +{ + struct Sprite *sprite; + sprite = &gSprites[gPlayerAvatar.spriteId]; + sprite->pos2.x = Cos(0x84, task->data[2]); + sprite->pos2.y = Sin(0x94, task->data[2]); + task->data[3]++; + if (task->data[3] & 1) + { + task->data[2]++; + } +} + +void sub_8086BE4(struct Task *task) +{ + struct Sprite *sprite; + sprite = &gSprites[gPlayerAvatar.spriteId]; + sprite->pos2.x = Cos(0x7c, task->data[2]); + sprite->pos2.y = Sin(0x76, task->data[2]); + task->data[3]++; + if (task->data[3] & 1) + { + task->data[2]++; + } +} + +void sub_8086C30(void) +{ + sub_8053FF8(); + fade_8080918(); +} + +void sub_8086C40(void) +{ + if (!gPaletteFade.active && sub_8054034() == TRUE) + { + sub_80B483C(); + warp_in(); + gFieldCallback = sub_8086C94; + SetMainCallback2(CB2_LoadMap); + DestroyTask(FindTaskIdByFunc(sub_8086A68)); + } +} + +void sub_8086C94(void) +{ + sub_8053E90(); + pal_fill_for_map_transition(); + ScriptContext2_Enable(); + CreateTask(sub_8086CBC, 0); + gFieldCallback = NULL; +} + +void sub_8086CBC(u8 taskId) +{ + struct Task *task; + task = &gTasks[taskId]; + while (gUnknown_0839F300[task->data[0]](task)); +} + +bool8 sub_8086CF4(struct Task *task) +{ + struct MapObject *mapObject; + s16 x; + s16 y; + u8 behavior; + CameraObjectReset2(); + mapObject = &gMapObjects[gPlayerAvatar.mapObjectId]; + FieldObjectSetSpecialAnim(mapObject, GetFaceDirectionAnimId(DIR_EAST)); + PlayerGetDestCoords(&x, &y); + behavior = MapGridGetMetatileBehaviorAt(x, y); + task->data[0]++; + task->data[1] = 16; + if (behavior == 0x6b) + { + behavior = 1; + task->data[0] = 3; + } else + { + behavior = 0; + } + sub_80B4824(behavior); + return TRUE; +} + +bool8 sub_8086D70(struct Task *task) +{ + struct Sprite *sprite; + sprite = &gSprites[gPlayerAvatar.spriteId]; + sprite->pos2.x = Cos(0x84, task->data[1]); + sprite->pos2.y = Sin(0x94, task->data[1]); + task->data[0]++; + return FALSE; +} + +bool8 sub_8086DB0(struct Task *task) +{ + struct Sprite *sprite; + sprite = &gSprites[gPlayerAvatar.spriteId]; + sprite->pos2.x = Cos(0x84, task->data[1]); + sprite->pos2.y = Sin(0x94, task->data[1]); + task->data[2]++; + if (task->data[2] & 1) + { + task->data[1]--; + } + if (task->data[1] == 0) + { + sprite->pos2.x = 0; + sprite->pos2.y = 0; + task->data[0] = 5; + } + return FALSE; +} + +bool8 sub_8086E10(struct Task *task) +{ + struct Sprite *sprite; + sprite = &gSprites[gPlayerAvatar.spriteId]; + sprite->pos2.x = Cos(0x7c, task->data[1]); + sprite->pos2.y = Sin(0x76, task->data[1]); + task->data[0]++; + return FALSE; +} + +bool8 sub_8086E50(struct Task *task) +{ + struct Sprite *sprite; + sprite = &gSprites[gPlayerAvatar.spriteId]; + sprite->pos2.x = Cos(0x7c, task->data[1]); + sprite->pos2.y = Sin(0x76, task->data[1]); + task->data[2]++; + if (task->data[2] & 1) + { + task->data[1]--; + } + if (task->data[1] == 0) + { + sprite->pos2.x = 0; + sprite->pos2.y = 0; + task->data[0]++; + } + return FALSE; +} + +extern bool8 sub_80B4850(void); + +bool8 sub_8086EB0(struct Task *task) +{ + if (sub_80B4850()) + { + return FALSE; + } + sub_80B483C(); + task->data[0]++; + return TRUE; +} + +bool8 sub_8086ED4(struct Task *task) +{ + struct MapObject *mapObject; + mapObject = &gMapObjects[gPlayerAvatar.mapObjectId]; + if (FieldObjectClearAnimIfSpecialAnimFinished(mapObject)) + { + CameraObjectReset1(); + ScriptContext2_Disable(); + FieldObjectSetSpecialAnim(mapObject, GetGoSpeed0AnimId(DIR_EAST)); + DestroyTask(FindTaskIdByFunc(sub_8086CBC)); + } + return FALSE; +} + +void sub_8086F64(u8); + +bool8 FldEff_UseWaterfall(void) +{ + u8 taskId; + taskId = CreateTask(sub_8086F64, 0xff); + gTasks[taskId].data[1] = gUnknown_0202FF84[0]; + sub_8086F64(taskId); + return FALSE; +} + +void sub_8086F64(u8 taskId) +{ + while (gUnknown_0839F31C[gTasks[taskId].data[0]](&gTasks[taskId], &gMapObjects[gPlayerAvatar.mapObjectId])); +} + +bool8 sub_8086FB0(struct Task *task, struct MapObject *mapObject) +{ + ScriptContext2_Enable(); + gPlayerAvatar.unk6 = 1; + task->data[0]++; + return FALSE; +} + +bool8 waterfall_1_do_anim_probably(struct Task *task, struct MapObject *mapObject) +{ + ScriptContext2_Enable(); + if (!FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(mapObject)) + { + FieldObjectClearAnimIfSpecialAnimFinished(mapObject); + gUnknown_0202FF84[0] = task->data[1]; + FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON_INIT); + task->data[0]++; + } + return FALSE; +} + +bool8 waterfall_2_wait_anim_finish_probably(struct Task *task, struct MapObject *mapObject) +{ + if (FieldEffectActiveListContains(FLDEFF_FIELD_MOVE_SHOW_MON)) + { + return FALSE; + } + task->data[0]++; + return TRUE; +} + +bool8 sub_8087030(struct Task *task, struct MapObject *mapObject) +{ + FieldObjectSetSpecialAnim(mapObject, GetSimpleGoAnimId(DIR_NORTH)); + task->data[0]++; + return FALSE; +} + +bool8 sub_8087058(struct Task *task, struct MapObject *mapObject) +{ + if (!FieldObjectClearAnimIfSpecialAnimFinished(mapObject)) + { + return FALSE; + } + if (MetatileBehavior_IsWaterfall(mapObject->mapobj_unk_1E)) + { + task->data[0] = 3; + return TRUE; + } + ScriptContext2_Disable(); + gPlayerAvatar.unk6 = 0; + DestroyTask(FindTaskIdByFunc(sub_8086F64)); + FieldEffectActiveListRemove(FLDEFF_USE_WATERFALL); + return FALSE; +} + +void Task_Dive(u8); +extern int dive_warp(struct MapPosition *, u16); + +bool8 FldEff_UseDive(void) +{ + u8 taskId; + taskId = CreateTask(Task_Dive, 0xff); + gTasks[taskId].data[15] = gUnknown_0202FF84[0]; + gTasks[taskId].data[14] = gUnknown_0202FF84[1]; + Task_Dive(taskId); + return FALSE; +} + +void Task_Dive(u8 taskId) +{ + while (gUnknown_0839F330[gTasks[taskId].data[0]](&gTasks[taskId])); +} + +bool8 sub_8087124(struct Task *task) +{ + gPlayerAvatar.unk6 = 1; + task->data[0]++; + return FALSE; +} + +bool8 dive_2_unknown(struct Task *task) +{ + ScriptContext2_Enable(); + gUnknown_0202FF84[0] = task->data[15]; + FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON_INIT); + task->data[0]++; + return FALSE; +} + +bool8 dive_3_unknown(struct Task *task) +{ + struct MapPosition mapPosition; + PlayerGetDestCoords(&mapPosition.x, &mapPosition.y); + if (!FieldEffectActiveListContains(FLDEFF_FIELD_MOVE_SHOW_MON)) + { + dive_warp(&mapPosition, gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_1E); + DestroyTask(FindTaskIdByFunc(Task_Dive)); + FieldEffectActiveListRemove(FLDEFF_USE_DIVE); + } + return FALSE; +} + +void sub_80871D0(u8); +void mapldr_080851BC(void); + +void sub_80871B8(u8 priority) +{ + CreateTask(sub_80871D0, priority); +} + +void sub_80871D0(u8 taskId) +{ + while (gUnknown_0839F33C[gTasks[taskId].data[0]](&gTasks[taskId], &gMapObjects[gPlayerAvatar.mapObjectId], &gSprites[gPlayerAvatar.spriteId])); +} + +bool8 sub_808722C(struct Task *task, struct MapObject *mapObject, struct Sprite *sprite) +{ + FreezeMapObjects(); + CameraObjectReset2(); + SetCameraPanningCallback(NULL); + gPlayerAvatar.unk6 = 1; + mapObject->mapobj_bit_26 = 1; + task->data[1] = 1; + task->data[0]++; + return TRUE; +} + +bool8 sub_8087264(struct Task *task, struct MapObject *mapObject, struct Sprite *sprite) +{ + SetCameraPanning(0, task->data[1]); + task->data[1] = -task->data[1]; + task->data[2]++; + if (task->data[2] > 7) + { + task->data[2] = 0; + task->data[0]++; + } + return FALSE; +} + +bool8 sub_8087298(struct Task *task, struct MapObject *mapObject, struct Sprite *sprite) +{ + sprite->pos2.y = 0; + task->data[3] = 1; + gUnknown_0202FF84[0] = mapObject->coords2.x; + gUnknown_0202FF84[1] = mapObject->coords2.y; + gUnknown_0202FF84[2] = sprite->subpriority - 1; + gUnknown_0202FF84[3] = sprite->oam.priority; + FieldEffectStart(FLDEFF_LAVARIDGE_GYM_WARP); + PlaySE(SE_W153); + task->data[0]++; + return TRUE; +} + +bool8 sub_80872E4(struct Task *task, struct MapObject *mapObject, struct Sprite *sprite) +{ + s16 centerToCornerVecY; + SetCameraPanning(0, task->data[1]); + if (task->data[1] = -task->data[1], ++task->data[2] <= 17) + { + if (!(task->data[2] & 1) && (task->data[1] <= 3)) + { + task->data[1] <<= 1; + } + } else if (!(task->data[2] & 4) && (task->data[1] > 0)) + { + task->data[1] >>= 1; + } + if (task->data[2] > 6) + { + centerToCornerVecY = -(sprite->centerToCornerVecY << 1); + if (sprite->pos2.y > -(sprite->pos1.y + sprite->centerToCornerVecY + gSpriteCoordOffsetY + centerToCornerVecY)) + { + sprite->pos2.y -= task->data[3]; + if (task->data[3] <= 7) + { + task->data[3]++; + } + } else + { + task->data[4] = 1; + } + } + if (task->data[5] == 0 && sprite->pos2.y < -0x10) + { + task->data[5]++; + mapObject->mapobj_bit_26 = 1; + sprite->oam.priority = 1; + sprite->subspriteMode = 2; + } + if (task->data[1] == 0 && task->data[4] != 0) + { + task->data[0]++; + } + return FALSE; +} + +bool8 sub_80873D8(struct Task *task, struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_8053FF8(); + fade_8080918(); + task->data[0]++; + return FALSE; +} + +bool8 sub_80873F4(struct Task *task, struct MapObject *mapObject, struct Sprite *sprite) +{ + if (!gPaletteFade.active && sub_8054034() == TRUE) + { + warp_in(); + gFieldCallback = mapldr_080851BC; + SetMainCallback2(CB2_LoadMap); + DestroyTask(FindTaskIdByFunc(sub_80871D0)); + } + return FALSE; +} + +void sub_8087470(u8); +extern u8 sub_80608A4(u8); + +void mapldr_080851BC(void) +{ + sub_8053E90(); + pal_fill_for_map_transition(); + ScriptContext2_Enable(); + gFieldCallback = NULL; + CreateTask(sub_8087470, 0); +} + +void sub_8087470(u8 taskId) +{ + while (gUnknown_0839F354[gTasks[taskId].data[0]](&gTasks[taskId], &gMapObjects[gPlayerAvatar.mapObjectId], &gSprites[gPlayerAvatar.spriteId])); +} + +bool8 sub_80874CC(struct Task *task, struct MapObject *mapObject, struct Sprite *sprite) +{ + CameraObjectReset2(); + FreezeMapObjects(); + gPlayerAvatar.unk6 = 1; + mapObject->mapobj_bit_13 = 1; + task->data[0]++; + return FALSE; +} + +bool8 sub_80874FC(struct Task *task, struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_807D770()) + { + gUnknown_0202FF84[0] = mapObject->coords2.x; + gUnknown_0202FF84[1] = mapObject->coords2.y; + gUnknown_0202FF84[2] = sprite->subpriority - 1; + gUnknown_0202FF84[3] = sprite->oam.priority; + task->data[1] = FieldEffectStart(FLDEFF_POP_OUT_OF_ASH); + task->data[0]++; + } + return FALSE; +} + +bool8 sub_8087548(struct Task *task, struct MapObject *mapObject, struct Sprite *sprite) +{ + sprite = &gSprites[task->data[1]]; + if (sprite->animCmdIndex > 1) + { + task->data[0]++; + mapObject->mapobj_bit_13 = 0; + CameraObjectReset1(); + PlaySE(SE_W091); + FieldObjectSetSpecialAnim(mapObject, sub_80608A4(DIR_EAST)); + } + return FALSE; +} + +bool8 sub_808759C(struct Task *task, struct MapObject *mapObject, struct Sprite *sprite) +{ + if (FieldObjectClearAnimIfSpecialAnimFinished(mapObject)) + { + gPlayerAvatar.unk6 = 0; + ScriptContext2_Disable(); + UnfreezeMapObjects(); + DestroyTask(FindTaskIdByFunc(sub_8087470)); + } + return FALSE; +} + +extern void sub_8060470(s16 *x, s16 *y, s16 dx, s16 dy); +extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[36]; + +u8 FldEff_LavaridgeGymWarp(void) +{ + u8 spriteId; + sub_8060470((s16 *)&gUnknown_0202FF84[0], (s16 *)&gUnknown_0202FF84[1], 8, 8); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[33], gUnknown_0202FF84[0], gUnknown_0202FF84[1], gUnknown_0202FF84[2]); + gSprites[spriteId].oam.priority = gUnknown_0202FF84[3]; + gSprites[spriteId].coordOffsetEnabled = 1; + return spriteId; +} + +void sub_8087638(struct Sprite *sprite) +{ + if (sprite->animEnded) + { + FieldEffectStop(sprite, FLDEFF_LAVARIDGE_GYM_WARP); + } +} + +void sub_808766C(u8); + +void sub_8087654(u8 priority) +{ + CreateTask(sub_808766C, priority); +} + +void sub_808766C(u8 taskId) +{ + while(gUnknown_0839F364[gTasks[taskId].data[0]](&gTasks[taskId], &gMapObjects[gPlayerAvatar.mapObjectId], &gSprites[gPlayerAvatar.spriteId])); +} + +bool8 sub_80876C8(struct Task *task, struct MapObject *mapObject, struct Sprite *sprite) +{ + FreezeMapObjects(); + CameraObjectReset2(); + gPlayerAvatar.unk6 = 1; + mapObject->mapobj_bit_26 = 1; + task->data[0]++; + return FALSE; +} + +bool8 sub_80876F8(struct Task *task, struct MapObject *mapObject, struct Sprite *sprite) +{ + if (FieldObjectClearAnimIfSpecialAnimFinished(mapObject)) + { + if (task->data[1] > 3) + { + gUnknown_0202FF84[0] = mapObject->coords2.x; + gUnknown_0202FF84[1] = mapObject->coords2.y; + gUnknown_0202FF84[2] = sprite->subpriority - 1; + gUnknown_0202FF84[3] = sprite->oam.priority; + task->data[1] = FieldEffectStart(FLDEFF_POP_OUT_OF_ASH); + task->data[0]++; + } else + { + task->data[1]++; + FieldObjectSetSpecialAnim(mapObject, GetStepInPlaceDelay4AnimId(mapObject->mapobj_unk_18)); + PlaySE(SE_FU_ZUZUZU); + } + } + return FALSE; +} + +bool8 sub_8087774(struct Task *task, struct MapObject *mapObject, struct Sprite *sprite) +{ + if (gSprites[task->data[1]].animCmdIndex == 2) + { + mapObject->mapobj_bit_13 = 1; + task->data[0]++; + } + return FALSE; +} + +bool8 sub_80877AC(struct Task *task, struct MapObject *mapObject, struct Sprite *sprite) +{ + if (!FieldEffectActiveListContains(FLDEFF_POP_OUT_OF_ASH)) + { + sub_8053FF8(); + fade_8080918(); + task->data[0]++; + } + return FALSE; +} + +void sub_80878C4(u8); +void mapldr_080859D4(void); + +bool8 sub_80877D4(struct Task *task, struct MapObject *mapObject, struct Sprite *sprite) +{ + if (!gPaletteFade.active && sub_8054034() == TRUE) + { + warp_in(); + gFieldCallback = sub_8086748; + SetMainCallback2(CB2_LoadMap); + DestroyTask(FindTaskIdByFunc(sub_808766C)); + } + return FALSE; +} + +u8 FldEff_PopOutOfAsh(void) +{ + u8 spriteId; + sub_8060470((s16 *)&gUnknown_0202FF84[0], (s16 *)&gUnknown_0202FF84[1], 8, 8); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[32], gUnknown_0202FF84[0], gUnknown_0202FF84[1], gUnknown_0202FF84[2]); + gSprites[spriteId].oam.priority = gUnknown_0202FF84[3]; + gSprites[spriteId].coordOffsetEnabled = 1; + return spriteId; +} + +void sub_808788C(struct Sprite *sprite) +{ + if (sprite->animEnded) + { + FieldEffectStop(sprite, FLDEFF_POP_OUT_OF_ASH); + } +} + +void sub_80878A8(void) +{ + ScriptContext2_Enable(); + FreezeMapObjects(); + CreateTask(sub_80878C4, 0x50); +} + +void sub_80878C4(u8 taskId) +{ + gUnknown_0839F378[gTasks[taskId].data[0]](&gTasks[taskId]); +} + +void sub_80878F4(struct Task *task) +{ + task->data[0]++; + task->data[14] = 64; + task->data[15] = player_get_direction_lower_nybble(); +} + +void sub_8087914(struct Task *task) +{ + struct MapObject *mapObject; + u8 unknown_0839F380[5]; + memcpy(unknown_0839F380, gUnknown_0839F380, sizeof gUnknown_0839F380); + if (task->data[14] != 0 && (--task->data[14]) == 0) + { + sub_8053FF8(); + fade_8080918(); + } + mapObject = &gMapObjects[gPlayerAvatar.mapObjectId]; + if (!FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(mapObject) || FieldObjectClearAnimIfSpecialAnimFinished(mapObject)) + { + if (task->data[14] == 0 && !gPaletteFade.active && sub_8054034() == TRUE) + { + FieldObjectSetDirection(mapObject, task->data[15]); + sub_8053678(); + warp_in(); + gFieldCallback = mapldr_080859D4; + SetMainCallback2(CB2_LoadMap); + DestroyTask(FindTaskIdByFunc(sub_80878C4)); + } else if (task->data[1] == 0 || (--task->data[1]) == 0) + { + FieldObjectSetSpecialAnim(mapObject, GetFaceDirectionAnimId(unknown_0839F380[mapObject->mapobj_unk_18])); + if (task->data[2] < 12) + { + task->data[2]++; + } + task->data[1] = 8 >> (task->data[2] >> 2); + } + } +} + +void sub_8087A74(u8); + +void mapldr_080859D4(void) +{ + sub_8053E90(); + pal_fill_for_map_transition(); + ScriptContext2_Enable(); + FreezeMapObjects(); + gFieldCallback = NULL; + gMapObjects[gPlayerAvatar.mapObjectId].mapobj_bit_13 = 1; + CreateTask(sub_8087A74, 0); +} + +void sub_8087A74(u8 taskId) +{ + gUnknown_0839F388[gTasks[taskId].data[0]](&gTasks[taskId]); +} + +void sub_8087AA4(struct Task *task) +{ + if (sub_807D770()) + { + task->data[0]++; + task->data[15] = player_get_direction_lower_nybble(); + } +} + +void sub_8087AC8(struct Task *task) +{ + struct MapObject *mapObject; + u8 unknown_0839F380[5]; + memcpy(unknown_0839F380, gUnknown_0839F380, sizeof gUnknown_0839F380); + mapObject = &gMapObjects[gPlayerAvatar.mapObjectId]; + if (task->data[1] == 0 || (--task->data[1]) == 0) + { + if (FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(mapObject) && !FieldObjectClearAnimIfSpecialAnimFinished(mapObject)) + { + return; + } + if (task->data[2] >= 32 && task->data[15] == player_get_direction_lower_nybble()) + { + mapObject->mapobj_bit_13 = 0; + ScriptContext2_Disable(); + UnfreezeMapObjects(); + DestroyTask(FindTaskIdByFunc(sub_8087A74)); + return; + } + FieldObjectSetSpecialAnim(mapObject, GetFaceDirectionAnimId(unknown_0839F380[mapObject->mapobj_unk_18])); + if (task->data[2] < 32) + { + task->data[2]++; + } + task->data[1] = task->data[2] >> 2; + } + mapObject->mapobj_bit_13 ^= 1; +} + +void sub_8087BBC(u8); +void mapldr_08085D88(void); + +void sub_8087BA8(void) +{ + CreateTask(sub_8087BBC, 0); +} + +void sub_8087BBC(u8 taskId) +{ + gUnknown_0839F390[gTasks[taskId].data[0]](&gTasks[taskId]); +} + +void sub_8087BEC(struct Task *task) +{ + ScriptContext2_Enable(); + FreezeMapObjects(); + CameraObjectReset2(); + task->data[15] = player_get_direction_lower_nybble(); + task->data[0]++; +} + +void sub_8087C14(struct Task *task) +{ + struct MapObject *mapObject; + u8 unknown_0839F380[5]; + memcpy(unknown_0839F380, gUnknown_0839F380, sizeof gUnknown_0839F380); + mapObject = &gMapObjects[gPlayerAvatar.mapObjectId]; + if (task->data[1] == 0 || (--task->data[1]) == 0) + { + FieldObjectTurn(mapObject, unknown_0839F380[mapObject->mapobj_unk_18]); + task->data[1] = 8; + task->data[2]++; + } + if (task->data[2] > 7 && task->data[15] == mapObject->mapobj_unk_18) + { + task->data[0]++; + task->data[1] = 4; + task->data[2] = 8; + task->data[3] = 1; + PlaySE(SE_TK_WARPIN); + } +} + +void sub_8087CA4(struct Task *task) +{ + struct MapObject *mapObject; + struct Sprite *sprite; + u8 unknown_0839F380[5]; + memcpy(unknown_0839F380, gUnknown_0839F380, sizeof gUnknown_0839F380); + mapObject = &gMapObjects[gPlayerAvatar.mapObjectId]; + sprite = &gSprites[gPlayerAvatar.spriteId]; + if ((--task->data[1]) <= 0) + { + task->data[1] = 4; + FieldObjectTurn(mapObject, unknown_0839F380[mapObject->mapobj_unk_18]); + } + sprite->pos1.y -= task->data[3]; + task->data[4] += task->data[3]; + if ((--task->data[2]) <= 0 && (task->data[2] = 4, task->data[3] < 8)) + { + task->data[3] <<= 1; + } + if (task->data[4] > 8 && (sprite->oam.priority = 1, sprite->subspriteMode != 0)) + { + sprite->subspriteMode = 2; + } + if (task->data[4] >= 0xa8) + { + task->data[0]++; + sub_8053FF8(); + fade_8080918(); + } +} + +void sub_8087D78(struct Task *task) +{ + if (!gPaletteFade.active && sub_8054034() == TRUE) + { + sub_8053570(); + warp_in(); + SetMainCallback2(CB2_LoadMap); + gFieldCallback = mapldr_08085D88; + DestroyTask(FindTaskIdByFunc(sub_8087BBC)); + } +} + +void sub_8087E1C(u8); + +void mapldr_08085D88(void) +{ + sub_8053E90(); + pal_fill_for_map_transition(); + ScriptContext2_Enable(); + FreezeMapObjects(); + gFieldCallback = NULL; + gMapObjects[gPlayerAvatar.mapObjectId].mapobj_bit_13 = 1; + CameraObjectReset2(); + CreateTask(sub_8087E1C, 0); +} + +void sub_8087E1C(u8 taskId) +{ + gUnknown_0839F3A0[gTasks[taskId].data[0]](&gTasks[taskId]); +} + +void sub_8087E4C(struct Task *task) +{ + struct Sprite *sprite; + s16 centerToCornerVecY; + if (sub_807D770()) + { + sprite = &gSprites[gPlayerAvatar.spriteId]; + centerToCornerVecY = -(sprite->centerToCornerVecY << 1); + sprite->pos2.y = -(sprite->pos1.y + sprite->centerToCornerVecY + gSpriteCoordOffsetY + centerToCornerVecY); + gMapObjects[gPlayerAvatar.mapObjectId].mapobj_bit_13 = 0; + task->data[0]++; + task->data[1] = 8; + task->data[2] = 1; + task->data[14] = sprite->subspriteMode; + task->data[15] = player_get_direction_lower_nybble(); + PlaySE(SE_TK_WARPIN); + } +} + +void sub_8087ED8(struct Task *task) +{ + u8 unknown_0839F380[5]; + struct MapObject *mapObject; + struct Sprite *sprite; + memcpy(unknown_0839F380, gUnknown_0839F380, sizeof gUnknown_0839F380); + mapObject = &gMapObjects[gPlayerAvatar.mapObjectId]; + sprite = &gSprites[gPlayerAvatar.spriteId]; + if ((sprite->pos2.y += task->data[1]) >= -8) + { + if (task->data[13] == 0) + { + task->data[13]++; + mapObject->mapobj_bit_2 = 1; + sprite->subspriteMode = task->data[14]; + } + } else + { + sprite->oam.priority = 1; + if (sprite->subspriteMode != 0) + { + sprite->subspriteMode = 2; + } + } + if (sprite->pos2.y >= -0x30 && task->data[1] > 1 && !(sprite->pos2.y & 1)) + { + task->data[1]--; + } + if ((--task->data[2]) == 0) + { + task->data[2] = 4; + FieldObjectTurn(mapObject, unknown_0839F380[mapObject->mapobj_unk_18]); + } + if (sprite->pos2.y >= 0) + { + sprite->pos2.y = 0; + task->data[0]++; + task->data[1] = 1; + task->data[2] = 0; + } +} + +void sub_8087FDC(struct Task *task) +{ + u8 unknown_0839F380[5]; + struct MapObject *mapObject; + memcpy(unknown_0839F380, gUnknown_0839F380, sizeof gUnknown_0839F380); + mapObject = &gMapObjects[gPlayerAvatar.mapObjectId]; + if ((--task->data[1]) == 0) + { + FieldObjectTurn(mapObject, unknown_0839F380[mapObject->mapobj_unk_18]); + task->data[1] = 8; + if ((++task->data[2]) > 4 && task->data[14] == mapObject->mapobj_unk_18) + { + ScriptContext2_Disable(); + CameraObjectReset1(); + UnfreezeMapObjects(); + DestroyTask(FindTaskIdByFunc(sub_8087E1C)); + } + } +} + +void sub_8088120(u8); +void sub_808847C(u8); +u8 sub_8088830(u32, u32, u32); +void sub_80883DC(void); +void sub_808843C(u16); +void sub_8088890(struct Sprite *); + +bool8 FldEff_FieldMoveShowMon(void) +{ + u8 taskId; + if (is_light_level_1_2_3_5_or_6(sav1_map_get_light_level()) == TRUE) + { + taskId = CreateTask(sub_8088120, 0xff); + } else + { + taskId = CreateTask(sub_808847C, 0xff); + } + gTasks[taskId].data[15] = sub_8088830(gUnknown_0202FF84[0], gUnknown_0202FF84[1], gUnknown_0202FF84[2]); + return FALSE; +} + +bool8 FldEff_FieldMoveShowMonInit(void) +{ + struct Pokemon *pokemon; + u32 flag = gUnknown_0202FF84[0] & 0x80000000; + pokemon = &gPlayerParty[(u8)gUnknown_0202FF84[0]]; + gUnknown_0202FF84[0] = GetMonData(pokemon, MON_DATA_SPECIES); + gUnknown_0202FF84[1] = GetMonData(pokemon, MON_DATA_OT_ID); + gUnknown_0202FF84[2] = GetMonData(pokemon, MON_DATA_PERSONALITY); + gUnknown_0202FF84[0] |= flag; + FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON); + FieldEffectActiveListRemove(FLDEFF_FIELD_MOVE_SHOW_MON_INIT); + return FALSE; +} + +void sub_8088120(u8 taskId) +{ + gUnknown_0839F3AC[gTasks[taskId].data[0]](&gTasks[taskId]); +} + +void sub_8088150(struct Task *task) +{ + task->data[11] = REG_WININ; + task->data[12] = REG_WINOUT; + StoreWordInTwoHalfwords(&task->data[13], (u32)gMain.vblankCallback); + task->data[1] = 0xf0f1; + task->data[2] = 0x5051; + task->data[3] = 0x3f; + task->data[4] = 0x3e; + REG_WIN0H = task->data[1]; + REG_WIN0V = task->data[2]; + REG_WININ = task->data[3]; + REG_WINOUT = task->data[4]; + SetVBlankCallback(sub_80883DC); + task->data[0]++; +} + +void sub_80881C0(struct Task *task) +{ + u16 offset; + u16 delta; + offset = ((REG_BG0CNT >> 2) << 14); + delta = ((REG_BG0CNT >> 8) << 11); + CpuCopy16(gFieldMoveStreaksTiles, (void *)(VRAM + offset), 0x200); + CpuFill32(0, (void *)(VRAM + delta), 0x800); + LoadPalette(gFieldMoveStreaksPalette, 0xf0, 0x20); + sub_808843C(delta); + task->data[0]++; +} + +void sub_8088228(struct Task *task) +{ + s16 v0; + s16 v2; + s16 v3; + task->data[5] -= 16; + v0 = ((u16)task->data[1] >> 8); + v2 = ((u16)task->data[2] >> 8); + v3 = ((u16)task->data[2] & 0xff); + v0 -= 16; + v2 -= 2; + v3 += 2; + if (v0 < 0) + { + v0 = 0; + } + if (v2 < 0x28) + { + v2 = 0x28; + } + if (v3 > 0x78) + { + v3 = 0x78; + } + task->data[1] = (v0 << 8) | (task->data[1] & 0xff); + task->data[2] = (v2 << 8) | v3; + if (v0 == 0 && v2 == 0x28 && v3 == 0x78) + { + gSprites[task->data[15]].callback = sub_8088890; + task->data[0]++; + } +} + +void sub_80882B4(struct Task *task) +{ + task->data[5] -= 16; + if (gSprites[task->data[15]].data7) + { + task->data[0]++; + } +} + +void sub_80882E4(struct Task *task) +{ + s16 v2; + s16 v3; + task->data[5] -= 16; + v2 = (task->data[2] >> 8); + v3 = (task->data[2] & 0xff); + v2 += 6; + v3 -= 6; + if (v2 > 0x50) + { + v2 = 0x50; + } + if (v3 < 0x51) + { + v3 = 0x51; + } + task->data[2] = (v2 << 8) | v3; + if (v2 == 0x50 && v3 == 0x51) + { + task->data[0]++; + } +} + +void sub_8088338(struct Task *task) +{ + u16 bg0cnt; + bg0cnt = (REG_BG0CNT >> 8) << 11; + CpuFill32(0, (void *)VRAM + bg0cnt, 0x800); + task->data[1] = 0xf1; + task->data[2] = 0xa1; + task->data[3] = task->data[11]; + task->data[4] = task->data[12]; + task->data[0]++; +} + +void sub_8088380(struct Task *task) +{ + IntrCallback callback; + LoadWordFromTwoHalfwords((u16 *)&task->data[13], (u32 *)&callback); + SetVBlankCallback(callback); + SetUpWindowConfig(&gWindowConfig_81E6CE4); + InitMenuWindow(&gWindowConfig_81E6CE4); + FreeResourcesAndDestroySprite(&gSprites[task->data[15]]); + FieldEffectActiveListRemove(FLDEFF_FIELD_MOVE_SHOW_MON); + DestroyTask(FindTaskIdByFunc(sub_8088120)); +} + +void sub_80883DC(void) +{ + struct Task *task; + IntrCallback callback; + task = &gTasks[FindTaskIdByFunc(sub_8088120)]; + LoadWordFromTwoHalfwords((u16 *)&task->data[13], (u32 *)&callback); + callback(); + REG_WIN0H = task->data[1]; + REG_WIN0V = task->data[2]; + REG_WININ = task->data[3]; + REG_WINOUT = task->data[4]; + REG_BG0HOFS = task->data[5]; + REG_BG0VOFS = task->data[6]; +} + +void sub_808843C(u16 offs) +{ + u16 i; + u16 *dest; + dest = (u16 *)(VRAM + 0x140 + offs); + for (i=0; i<0x140; i++, dest++) + { + *dest = gFieldMoveStreaksTilemap[i] | 0xf000; + } +} + +void sub_80886B0(void); +bool8 sub_8088708(struct Task *); +void sub_80886F8(struct Task *); +bool8 sub_80887C0(struct Task *); + +void sub_808847C(u8 taskId) +{ + gUnknown_0839F3C8[gTasks[taskId].data[0]](&gTasks[taskId]); +} + +void sub_80884AC(struct Task *task) +{ + REG_BG0HOFS = task->data[1]; + REG_BG0VOFS = task->data[2]; + StoreWordInTwoHalfwords((u16 *)&task->data[13], (u32)gMain.vblankCallback); + SetVBlankCallback(sub_80886B0); + task->data[0]++; +} + +void sub_80884E8(struct Task *task) +{ + u16 offset; + u16 delta; + offset = ((REG_BG0CNT >> 2) << 14); + delta = ((REG_BG0CNT >> 8) << 11); + task->data[12] = delta; + CpuCopy16(gDarknessFieldMoveStreaksTiles, (void *)(VRAM + offset), 0x80); + CpuFill32(0, (void *)(VRAM + delta), 0x800); + LoadPalette(gDarknessFieldMoveStreaksPalette, 0xf0, 0x20); + task->data[0]++; +} + +void sub_8088554(struct Task *task) +{ + if (sub_8088708(task)) + { + REG_WIN1H = 0x00f0; + REG_WIN1V = 0x2878; + gSprites[task->data[15]].callback = sub_8088890; + task->data[0]++; + } + sub_80886F8(task); +} + +void sub_80885A8(struct Task *task) +{ + sub_80886F8(task); + if (gSprites[task->data[15]].data7) + { + task->data[0]++; + } +} + +void sub_80885D8(struct Task *task) +{ + sub_80886F8(task); + task->data[3] = task->data[1] & 7; + task->data[4] = 0; + REG_WIN1H = 0xffff; + REG_WIN1V = 0xffff; + task->data[0]++; +} + +void sub_808860C(struct Task *task) +{ + sub_80886F8(task); + if (sub_80887C0(task)) + { + task->data[0]++; + } +} + +void sub_808862C(struct Task *task) +{ + IntrCallback intrCallback; + u16 bg0cnt; + bg0cnt = (REG_BG0CNT >> 8) << 11; + CpuFill32(0, (void *)VRAM + bg0cnt, 0x800); + LoadWordFromTwoHalfwords((u16 *)&task->data[13], (u32 *)&intrCallback); + SetVBlankCallback(intrCallback); + SetUpWindowConfig(&gWindowConfig_81E6CE4); + InitMenuWindow(&gWindowConfig_81E6CE4); + FreeResourcesAndDestroySprite(&gSprites[task->data[15]]); + FieldEffectActiveListRemove(FLDEFF_FIELD_MOVE_SHOW_MON); + DestroyTask(FindTaskIdByFunc(sub_808847C)); +} + +void sub_80886B0(void) +{ + IntrCallback intrCallback; + struct Task *task; + task = &gTasks[FindTaskIdByFunc(sub_808847C)]; + LoadWordFromTwoHalfwords((u16 *)&task->data[13], (u32 *)&intrCallback); + intrCallback(); + REG_BG0HOFS = task->data[1]; + REG_BG0VOFS = task->data[2]; +} + +void sub_80886F8(struct Task *task) +{ + task->data[1] -= 16; + task->data[3] += 16; +} + +#ifdef NONMATCHING +bool8 sub_8088708(struct Task *task) +{ + u16 i; + u16 srcOffs; + u16 dstOffs; + u16 *dest; + if (task->data[4] >= 32) + { + return TRUE; + } + dstOffs = (task->data[3] >> 3) & 0x1f; + if (dstOffs >= task->data[4]) + { + dstOffs = (32 - dstOffs) & 0x1f; + srcOffs = (32 - task->data[4]) & 0x1f; + dest = (u16 *)(VRAM + 0x140 + (u16)task->data[12]); + for (i=0; i<10; i++) + { + dest[dstOffs + i * 32] = gDarknessFieldMoveStreaksTilemap[srcOffs + i * 32] | 0xf000; + dest[((dstOffs + 1) & 0x1f) + i * 32] = gDarknessFieldMoveStreaksTilemap[((srcOffs + 1) & 0x1f) + i * 32] | 0xf000; + } + task->data[4] += 2; + } + return FALSE; +} +#else +__attribute__((naked)) +bool8 sub_8088708(struct Task *task) +{ + asm_unified("\tpush {r4-r7,lr}\n" + "\tmov r7, r10\n" + "\tmov r6, r9\n" + "\tmov r5, r8\n" + "\tpush {r5-r7}\n" + "\tsub sp, 0x4\n" + "\tadds r5, r0, 0\n" + "\tldrh r2, [r5, 0x10]\n" + "\tmovs r1, 0x10\n" + "\tldrsh r0, [r5, r1]\n" + "\tcmp r0, 0x1F\n" + "\tble _08088724\n" + "\tmovs r0, 0x1\n" + "\tb _080887A8\n" + "_08088724:\n" + "\tldrh r0, [r5, 0xE]\n" + "\tlsls r0, 16\n" + "\tasrs r3, r0, 19\n" + "\tmovs r1, 0x1F\n" + "\tands r3, r1\n" + "\tmovs r4, 0x10\n" + "\tldrsh r0, [r5, r4]\n" + "\tcmp r3, r0\n" + "\tblt _080887A6\n" + "\tmovs r0, 0x20\n" + "\tsubs r3, r0, r3\n" + "\tands r3, r1\n" + "\tsubs r0, r2\n" + "\tmov r12, r0\n" + "\tmov r7, r12\n" + "\tands r7, r1\n" + "\tmov r12, r7\n" + "\tldrh r0, [r5, 0x20]\n" + "\tldr r1, _080887B8 @ =0x06000140\n" + "\tadds r1, r0\n" + "\tmov r8, r1\n" + "\tmovs r4, 0\n" + "\tldr r7, _080887BC @ =gDarknessFieldMoveStreaksTilemap\n" + "\tmov r10, r7\n" + "\tmovs r0, 0xF0\n" + "\tlsls r0, 8\n" + "\tmov r9, r0\n" + "\tadds r1, r3, 0x1\n" + "\tmovs r0, 0x1F\n" + "\tands r1, r0\n" + "\tstr r1, [sp]\n" + "\tmov r6, r12\n" + "\tadds r6, 0x1\n" + "\tands r6, r0\n" + "_08088768:\n" + "\tlsls r1, r4, 5\n" + "\tadds r2, r1, r3\n" + "\tlsls r2, 1\n" + "\tadd r2, r8\n" + "\tmov r7, r12\n" + "\tadds r0, r7, r1\n" + "\tlsls r0, 1\n" + "\tadd r0, r10\n" + "\tldrh r0, [r0]\n" + "\tmov r7, r9\n" + "\torrs r0, r7\n" + "\tstrh r0, [r2]\n" + "\tldr r0, [sp]\n" + "\tadds r2, r1, r0\n" + "\tlsls r2, 1\n" + "\tadd r2, r8\n" + "\tadds r1, r6, r1\n" + "\tlsls r1, 1\n" + "\tadd r1, r10\n" + "\tldrh r0, [r1]\n" + "\tmov r1, r9\n" + "\torrs r0, r1\n" + "\tstrh r0, [r2]\n" + "\tadds r0, r4, 0x1\n" + "\tlsls r0, 16\n" + "\tlsrs r4, r0, 16\n" + "\tcmp r4, 0x9\n" + "\tbls _08088768\n" + "\tldrh r0, [r5, 0x10]\n" + "\tadds r0, 0x2\n" + "\tstrh r0, [r5, 0x10]\n" + "_080887A6:\n" + "\tmovs r0, 0\n" + "_080887A8:\n" + "\tadd sp, 0x4\n" + "\tpop {r3-r5}\n" + "\tmov r8, r3\n" + "\tmov r9, r4\n" + "\tmov r10, r5\n" + "\tpop {r4-r7}\n" + "\tpop {r1}\n" + "\tbx r1\n" + "\t.align 2, 0\n" + "_080887B8: .4byte 0x06000140\n" + "_080887BC: .4byte gDarknessFieldMoveStreaksTilemap"); +} +#endif + +bool8 sub_80887C0(struct Task *task) +{ + u16 i; + u16 dstOffs; + u16 *dest; + if (task->data[4] >= 32) + { + return TRUE; + } + dstOffs = task->data[3] >> 3; + if (dstOffs >= task->data[4]) + { + dstOffs = (task->data[1] >> 3) & 0x1f; + dest = (u16 *)(VRAM + 0x140 + (u16)task->data[12]); + for (i=0; i<10; i++) + { + dest[dstOffs + i * 32] = 0xf000; + dest[((dstOffs + 1) & 0x1f) + i * 32] = 0xf000; + } + task->data[4] += 2; + } + return FALSE; +} + +u8 sub_8088830(u32 a0, u32 a1, u32 a2) +{ + u16 v0; + u8 monSprite; + struct Sprite *sprite; + v0 = (a0 & 0x80000000) >> 16; + a0 &= 0x7fffffff; + monSprite = CreateMonSprite_FieldMove(a0, a1, a2, 0x140, 0x50, 0); + sprite = &gSprites[monSprite]; + sprite->callback = SpriteCallbackDummy; + sprite->oam.priority = 0; + sprite->data0 = a0; + sprite->data6 = v0; + return monSprite; +} + +void sub_80888D4(struct Sprite *); + +void sub_8088890(struct Sprite *sprite) +{ + if ((sprite->pos1.x -= 20) <= 0x78) + { + sprite->pos1.x = 0x78; + sprite->data1 = 30; + sprite->callback = sub_80888D4; + if (sprite->data6) + { + PlayCry2(sprite->data0, 0, 0x7d, 0xa); + } else + { + PlayCry1(sprite->data0, 0); + } + } +} + +void sub_80888F0(struct Sprite *); + +void sub_80888D4(struct Sprite *sprite) +{ + if ((--sprite->data1) == 0) + { + sprite->callback = sub_80888F0; + } +} + +void sub_80888F0(struct Sprite *sprite) +{ + if (sprite->pos1.x < -0x40) + { + sprite->data7 = 1; + } else + { + sprite->pos1.x -= 20; + } +} + +void sub_8088954(u8); + +u8 FldEff_UseSurf(void) +{ + u8 taskId; + taskId = CreateTask(sub_8088954, 0xff); + gTasks[taskId].data[15] = gUnknown_0202FF84[0]; + sav1_reset_battle_music_maybe(); + sub_8053FB0(0x016d); + return FALSE; +} + +void sub_8088954(u8 taskId) +{ + gUnknown_0839F3E4[gTasks[taskId].data[0]](&gTasks[taskId]); +} + +void sub_8088984(struct Task *task) +{ + ScriptContext2_Enable(); + FreezeMapObjects(); + gPlayerAvatar.unk6 = 1; + SetPlayerAvatarStateMask(8); + PlayerGetDestCoords(&task->data[1], &task->data[2]); + MoveCoords(gMapObjects[gPlayerAvatar.mapObjectId].placeholder18, &task->data[1], &task->data[2]); + task->data[0]++; +} + +void sub_80889E4(struct Task *task) +{ + struct MapObject *mapObject; + mapObject = &gMapObjects[gPlayerAvatar.mapObjectId]; + if (!FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(mapObject) || FieldObjectClearAnimIfSpecialAnimFinished(mapObject)) + { + sub_8059BF4(); + FieldObjectSetSpecialAnim(mapObject, 0x39); + task->data[0]++; + } +} + +void sub_8088A30(struct Task *task) +{ + struct MapObject *mapObject; + mapObject = &gMapObjects[gPlayerAvatar.mapObjectId]; + if (FieldObjectCheckIfSpecialAnimFinishedOrInactive(mapObject)) + { + gUnknown_0202FF84[0] = task->data[15] | 0x80000000; + FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON_INIT); + task->data[0]++; + } +} + +void sub_8088A78(struct Task *task) +{ + struct MapObject *mapObject; + if (!FieldEffectActiveListContains(FLDEFF_FIELD_MOVE_SHOW_MON)) + { + mapObject = &gMapObjects[gPlayerAvatar.mapObjectId]; + sub_805B980(mapObject, GetPlayerAvatarGraphicsIdByStateId(3)); + FieldObjectClearAnimIfSpecialAnimFinished(mapObject); + FieldObjectSetSpecialAnim(mapObject, sub_80608D0(mapObject->placeholder18)); + gUnknown_0202FF84[0] = task->data[1]; + gUnknown_0202FF84[1] = task->data[2]; + gUnknown_0202FF84[2] = gPlayerAvatar.mapObjectId; + mapObject->mapobj_unk_1A = FieldEffectStart(FLDEFF_SURF_BLOB); + task->data[0]++; + } +} + +void sub_8088AF4(struct Task *task) +{ + struct MapObject *mapObject; + mapObject = &gMapObjects[gPlayerAvatar.mapObjectId]; + if (FieldObjectClearAnimIfSpecialAnimFinished(mapObject)) + { + gPlayerAvatar.unk6 = 0; + gPlayerAvatar.flags &= 0xdf; + FieldObjectSetSpecialAnim(mapObject, GetFaceDirectionAnimId(mapObject->placeholder18)); + sub_8127ED0(mapObject->mapobj_unk_1A, 1); + UnfreezeMapObjects(); + ScriptContext2_Disable(); + FieldEffectActiveListRemove(FLDEFF_USE_SURF); + DestroyTask(FindTaskIdByFunc(sub_8088954)); + } +} + +void sub_8088BC4(struct Sprite *); + +u8 FldEff_NPCFlyOut(void) +{ + u8 spriteId; + struct Sprite *sprite; + spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[26], 0x78, 0, 1); + sprite = &gSprites[spriteId]; + sprite->oam.paletteNum = 0; + sprite->oam.priority = 1; + sprite->callback = sub_8088BC4; + sprite->data1 = gUnknown_0202FF84[0]; + PlaySE(SE_W019); + return spriteId; +} + +void sub_8088BC4(struct Sprite *sprite) +{ + struct Sprite *npcSprite; + sprite->pos2.x = Cos(sprite->data2, 0x8c); + sprite->pos2.y = Sin(sprite->data2, 0x48); + sprite->data2 = (sprite->data2 + 4) & 0xff; + if (sprite->data0) + { + npcSprite = &gSprites[sprite->data1]; + npcSprite->coordOffsetEnabled = 0; + npcSprite->pos1.x = sprite->pos1.x + sprite->pos2.x; + npcSprite->pos1.y = sprite->pos1.y + sprite->pos2.y - 8; + npcSprite->pos2.x = 0; + npcSprite->pos2.y = 0; + } + if (sprite->data2 >= 0x80) + { + FieldEffectStop(sprite, FLDEFF_NPCFLY_OUT); + } +} + +void sub_8088C70(u8); +extern void sub_8127EFC(u8, u8); +u8 sub_8088F60(void); +bool8 sub_8088FA4(u8); +void sub_8088FC0(u8); +void sub_8088FFC(u8, u8); +void sub_8089018(struct Sprite *); +void sub_80890D8(struct Sprite *); + +u8 FldEff_UseFly(void) +{ + u8 taskId; + taskId = CreateTask(sub_8088C70, 0xfe); + gTasks[taskId].data[1] = gUnknown_0202FF84[0]; + return 0; +} + +void sub_8088C70(u8 taskId) +{ + gUnknown_0839F3F8[gTasks[taskId].data[0]](&gTasks[taskId]); +} + +void sub_8088CA0(struct Task *task) +{ + struct MapObject *mapObject; + mapObject = &gMapObjects[gPlayerAvatar.mapObjectId]; + if (!FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(mapObject) || FieldObjectClearAnimIfSpecialAnimFinished(mapObject)) + { + task->data[15] = gPlayerAvatar.flags; + gPlayerAvatar.unk6 = 0x01; + SetPlayerAvatarStateMask(1); + sub_8059BF4(); + FieldObjectSetSpecialAnim(mapObject, 0x39); + task->data[0]++; + } +} + +void sub_8088CF8(struct Task *task) +{ + struct MapObject *mapObject; + mapObject = &gMapObjects[gPlayerAvatar.mapObjectId]; + if (FieldObjectClearAnimIfSpecialAnimFinished(mapObject)) + { + task->data[0]++; + gUnknown_0202FF84[0] = task->data[1]; + FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON_INIT); + } +} + +void sub_8088D3C(struct Task *task) +{ + struct MapObject *mapObject; + if (!FieldEffectActiveListContains(FLDEFF_FIELD_MOVE_SHOW_MON)) + { + mapObject = &gMapObjects[gPlayerAvatar.mapObjectId]; + if (task->data[15] & 0x08) + { + sub_8127ED0(mapObject->mapobj_unk_1A, 2); + sub_8127EFC(mapObject->mapobj_unk_1A, 0); + } + task->data[1] = sub_8088F60(); + task->data[0]++; + } +} + +void sub_8088D94(struct Task *task) +{ + if (sub_8088FA4(task->data[1])) + { + task->data[0]++; + task->data[2] = 16; + SetPlayerAvatarTransitionFlags(0x01); + FieldObjectSetSpecialAnim(&gMapObjects[gPlayerAvatar.mapObjectId], 0x02); + } +} + +void sub_8088DD8(struct Task *task) +{ + struct MapObject *mapObject; + mapObject = &gMapObjects[gPlayerAvatar.mapObjectId]; + if ((task->data[2] == 0 || (--task->data[2]) == 0) && FieldObjectClearAnimIfSpecialAnimFinished(mapObject)) + { + task->data[0]++; + PlaySE(SE_W019); + sub_8088FC0(task->data[1]); + } +} + +void sub_8088E2C(struct Task *task) +{ + struct MapObject *mapObject; + if ((++task->data[2]) >= 8) + { + mapObject = &gMapObjects[gPlayerAvatar.mapObjectId]; + sub_805B980(mapObject, GetPlayerAvatarGraphicsIdByStateId(0x03)); + StartSpriteAnim(&gSprites[mapObject->spriteId], 0x16); + mapObject->mapobj_bit_12 = 1; + FieldObjectSetSpecialAnim(mapObject, 0x48); + if (task->data[15] & 0x08) + { + DestroySprite(&gSprites[mapObject->mapobj_unk_1A]); + } + task->data[0]++; + task->data[2] = 0; + } +} + +void sub_8088EB4(struct Task *task) +{ + struct MapObject *mapObject; + if ((++task->data[2]) >= 10) + { + mapObject = &gMapObjects[gPlayerAvatar.mapObjectId]; + FieldObjectClearAnimIfSpecialAnimActive(mapObject); + mapObject->mapobj_bit_12 = 0; + mapObject->mapobj_bit_22 = 0; + sub_8088FFC(task->data[1], mapObject->spriteId); + CameraObjectReset2(); + task->data[0]++; + } +} + +void sub_8088F10(struct Task *task) +{ + if (sub_8088FA4(task->data[1])) + { + fade_8080918(); + task->data[0]++; + } +} + +void sub_8088F30(struct Task *task) +{ + if (!gPaletteFade.active) + { + FieldEffectActiveListRemove(FLDEFF_USE_FLY); + DestroyTask(FindTaskIdByFunc(sub_8088C70)); + } +} + +u8 sub_8088F60(void) +{ + u8 spriteId; + struct Sprite *sprite; + spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[26], 0xff, 0xb4, 0x1); + sprite = &gSprites[spriteId]; + sprite->oam.paletteNum = 0; + sprite->oam.priority = 1; + sprite->callback = sub_8089018; + return spriteId; +} + +u8 sub_8088FA4(u8 spriteId) +{ + return gSprites[spriteId].data7; +} + +void sub_8088FC0(u8 spriteId) +{ + struct Sprite *sprite; + sprite = &gSprites[spriteId]; + sprite->callback = sub_80890D8; + sprite->pos1.x = 0x78; + sprite->pos1.y = 0x00; + sprite->pos2.x = 0; + sprite->pos2.y = 0; + memset(&sprite->data0, 0, 8 * sizeof(u16) /* zero all data cells */); + sprite->data6 = 0x40; +} + +void sub_8088FFC(u8 a0, u8 a1) +{ + gSprites[a0].data6 = a1; +} + +void sub_8089018(struct Sprite *sprite) +{ + if (sprite->data7 == 0) + { + if (sprite->data0 == 0) + { + sprite->oam.affineMode = 3; + sprite->affineAnims = gSpriteAffineAnimTable_0839F44C; + InitSpriteAffineAnim(sprite); + StartSpriteAffineAnim(sprite, 0); + sprite->pos1.x = 0x76; + sprite->pos1.y = -0x30; + sprite->data0++; + sprite->data1 = 0x40; + sprite->data2 = 0x100; + } + sprite->data1 += (sprite->data2 >> 8); + sprite->pos2.x = Cos(sprite->data1, 0x78); + sprite->pos2.y = Sin(sprite->data1, 0x78); + if (sprite->data2 < 0x800) + { + sprite->data2 += 0x60; + } + if (sprite->data1 > 0x81) + { + sprite->data7++; + sprite->oam.affineMode = 0; + FreeOamMatrix(sprite->oam.matrixNum); + CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, 0); + } + } +} + +void sub_80890D8(struct Sprite *sprite) +{ + struct Sprite *sprite1; + sprite->pos2.x = Cos(sprite->data2, 0x8c); + sprite->pos2.y = Sin(sprite->data2, 0x48); + sprite->data2 = (sprite->data2 + 4) & 0xff; + if (sprite->data6 != 0x40) + { + sprite1 = &gSprites[sprite->data6]; + sprite1->coordOffsetEnabled = 0; + sprite1->pos1.x = sprite->pos1.x + sprite->pos2.x; + sprite1->pos1.y = sprite->pos1.y + sprite->pos2.y - 8; + sprite1->pos2.x = 0; + sprite1->pos2.y = 0; + } + if (sprite->data2 >= 0x80) + { + sprite->data7 = 1; + } +} + +void sub_808914C(struct Sprite *sprite) +{ + if (sprite->data7 == 0) + { + if (sprite->data0 == 0) + { + sprite->oam.affineMode = 3; + sprite->affineAnims = gSpriteAffineAnimTable_0839F44C; + InitSpriteAffineAnim(sprite); + StartSpriteAffineAnim(sprite, 1); + sprite->pos1.x = 0x5e; + sprite->pos1.y = -0x20; + sprite->data0++; + sprite->data1 = 0xf0; + sprite->data2 = 0x800; + sprite->data4 = 0x80; + } + sprite->data1 += sprite->data2 >> 8; + sprite->data3 += sprite->data2 >> 8; + sprite->data1 &= 0xff; + sprite->pos2.x = Cos(sprite->data1, 0x20); + sprite->pos2.y = Sin(sprite->data1, 0x78); + if (sprite->data2 > 0x100) + { + sprite->data2 -= sprite->data4; + } + if (sprite->data4 < 0x100) + { + sprite->data4 += 24; + } + if (sprite->data2 < 0x100) + { + sprite->data2 = 0x100; + } + if (sprite->data3 >= 60) + { + sprite->data7++; + sprite->oam.affineMode = 0; + FreeOamMatrix(sprite->oam.matrixNum); + sprite->invisible = 1; + } + } +} + +void sub_8089230(u8 spriteId) +{ + sub_8088FC0(spriteId); + gSprites[spriteId].callback = sub_808914C; +} + +void sub_8089270(u8); + +u8 FldEff_FlyIn(void) +{ + CreateTask(sub_8089270, 0xfe); + return 0; +} + +void sub_8089270(u8 taskId) +{ + gUnknown_0839F454[gTasks[taskId].data[0]](&gTasks[taskId]); +} + +void sub_80892A0(struct Task *task) +{ + struct MapObject *mapObject; + mapObject = &gMapObjects[gPlayerAvatar.mapObjectId]; + if (!FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(mapObject) || FieldObjectClearAnimIfSpecialAnimFinished(mapObject)) + { + task->data[0]++; + task->data[2] = 17; + task->data[15] = gPlayerAvatar.flags; + gPlayerAvatar.unk6 = 1; + SetPlayerAvatarStateMask(0x01); + if (task->data[15] & 0x08) + { + sub_8127ED0(mapObject->mapobj_unk_1A, 0); + } + sub_805B980(mapObject, GetPlayerAvatarGraphicsIdByStateId(0x3)); + CameraObjectReset2(); + FieldObjectTurn(mapObject, DIR_WEST); + StartSpriteAnim(&gSprites[mapObject->spriteId], 0x16); + mapObject->mapobj_bit_13 = 0; + task->data[1] = sub_8088F60(); + sub_8088FC0(task->data[1]); + sub_8088FFC(task->data[1], mapObject->spriteId); + } +} + +void sub_8089354(struct Task *task) +{ + struct MapObject *mapObject; + struct Sprite *sprite; + if (task->data[2] == 0 || (--task->data[2]) == 0) + { + mapObject = &gMapObjects[gPlayerAvatar.mapObjectId]; + sprite = &gSprites[mapObject->spriteId]; + sub_8088FFC(task->data[1], 0x40); + sprite->pos1.x += sprite->pos2.x; + sprite->pos1.y += sprite->pos2.y; + sprite->pos2.x = 0; + sprite->pos2.y = 0; + task->data[0]++; + task->data[2] = 0; + } +} + +void sub_80893C0(struct Task *task) +{ + s16 unknown_0839F470[18]; + struct Sprite *sprite; + memcpy(unknown_0839F470, gUnknown_0839F470, sizeof gUnknown_0839F470); + sprite = &gSprites[gPlayerAvatar.spriteId]; + sprite->pos2.y = unknown_0839F470[task->data[2]]; + if ((++task->data[2]) >= 18) + { + task->data[0]++; + } +} + +void sub_8089414(struct Task *task) +{ + struct MapObject *mapObject; + struct Sprite *sprite; + if (sub_8088FA4(task->data[1])) + { + mapObject = &gMapObjects[gPlayerAvatar.mapObjectId]; + sprite = &gSprites[mapObject->spriteId]; + mapObject->mapobj_bit_12 = 0; + sub_805C058(mapObject, mapObject->coords2.x, mapObject->coords2.y); + sprite->pos2.x = 0; + sprite->pos2.y = 0; + sprite->coordOffsetEnabled = 1; + sub_8059BF4(); + FieldObjectSetSpecialAnim(mapObject, 0x39); + task->data[0]++; + } +} + +void sub_808948C(struct Task *task) +{ + if (FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[gPlayerAvatar.mapObjectId])) + { + task->data[0]++; + sub_8089230(task->data[1]); + } +} + +void sub_80894C4(struct Task *task) +{ + if (sub_8088FA4(task->data[1])) + { + DestroySprite(&gSprites[task->data[1]]); + task->data[0]++; + task->data[1] = 0x10; + } +} + +void fishE(struct Task *task) +{ + u8 state; + struct MapObject *mapObject; + if ((--task->data[1]) == 0) + { + mapObject = &gMapObjects[gPlayerAvatar.mapObjectId]; + state = 0; + if (task->data[15] & 0x08) + { + state = 3; + sub_8127ED0(mapObject->mapobj_unk_1A, 1); + } + sub_805B980(mapObject, GetPlayerAvatarGraphicsIdByStateId(state)); + FieldObjectTurn(mapObject, DIR_SOUTH); + gPlayerAvatar.flags = task->data[15]; + gPlayerAvatar.unk6 = 0; + FieldEffectActiveListRemove(FLDEFF_FLY_IN); + DestroyTask(FindTaskIdByFunc(sub_8089270)); + } +} diff --git a/src/field_fadetransition.c b/src/field_fadetransition.c index b5e6c1039..364d55e51 100644 --- a/src/field_fadetransition.c +++ b/src/field_fadetransition.c @@ -1,25 +1,15 @@ #include "global.h" #include "gba/syscall.h" +#include "field_fadetransition.h" +#include "field_player_avatar.h" #include "field_weather.h" +#include "fldeff_flash.h" #include "global.fieldmap.h" +#include "rom4.h" #include "script.h" #include "task.h" -void palette_bg_fill_white(void); -void palette_bg_fill_black(void); -void pal_fill_black(void); -void task0A_asap_script_env_2_enable_and_set_ctx_running(u8); - -extern u8 get_map_light_from_warp0(void); -extern u8 sav1_map_get_light_level(void); -extern u8 fade_type_for_given_maplight_pair(u8, u8); extern u16 gPlttBufferFaded[]; -extern struct MapHeader * warp1_get_mapheader(void); -extern void sub_8059B88(u8); -extern void sub_8053E90(void); - -extern u8 sub_810CDB8(u8, u8); -extern int sub_8080E70(void); void palette_bg_fill_white(void) { diff --git a/src/field_ground_effect.c b/src/field_ground_effect.c index 1aea8f52e..42862d0ff 100644 --- a/src/field_ground_effect.c +++ b/src/field_ground_effect.c @@ -1,26 +1,10 @@ #include "global.h" -#include "asm_fieldmap.h" +#include "field_ground_effect.h" +#include "fieldmap.h" #include "metatile_behavior.h" extern u32 gUnknown_08376008[]; -void FieldObjectUpdateMetatileBehaviors(struct MapObject *); -void GetGroundEffectFlags_Reflection(struct MapObject *, u32 *); -void GetGroundEffectFlags_TallGrassOnSpawn(struct MapObject *, u32 *); -void GetGroundEffectFlags_TallGrassOnBeginStep(struct MapObject *, u32 *); -void GetGroundEffectFlags_LongGrassOnSpawn(struct MapObject *, u32 *); -void GetGroundEffectFlags_LongGrassOnBeginStep(struct MapObject *, u32 *); -void GetGroundEffectFlags_Tracks(struct MapObject *, u32 *); -void GetGroundEffectFlags_SandPile(struct MapObject *, u32 *); -void GetGroundEffectFlags_ShallowFlowingWater(struct MapObject *, u32 *); -void GetGroundEffectFlags_Puddle(struct MapObject *, u32 *); -void GetGroundEffectFlags_Ripple(struct MapObject *, u32 *); -void GetGroundEffectFlags_ShortGrass(struct MapObject *, u32 *); -void GetGroundEffectFlags_HotSprings(struct MapObject *, u32 *); -void GetGroundEffectFlags_Seaweed(struct MapObject *, u32 *); -void GetGroundEffectFlags_JumpLanding(struct MapObject *, u32 *); -u8 FieldObjectCheckForReflectiveSurface(struct MapObject *); - void GetAllGroundEffectFlags_OnSpawn(struct MapObject *mapObj, u32 *flags) { FieldObjectUpdateMetatileBehaviors(mapObj); diff --git a/src/field_map_obj.c b/src/field_map_obj.c index 8c85e7b6d..ade72923d 100755..100644 --- a/src/field_map_obj.c +++ b/src/field_map_obj.c @@ -1,45 +1,24 @@ #include "global.h" #include "field_map_obj.h" -#include "field_map_obj_helpers.h" -#include "fieldmap.h" -#include "asm.h" #include "berry.h" #include "event_data.h" -#include "field_player_avatar.h" +#include "field_camera.h" #include "field_effect.h" +#include "field_effect_helpers.h" #include "field_ground_effect.h" +#include "field_map_obj_helpers.h" +#include "field_player_avatar.h" +#include "fieldmap.h" #include "palette.h" -#include "rom4.h" #include "rng.h" +#include "rom4.h" #include "sprite.h" -#include "field_camera.h" +#include "metatile_behavior.h" +#include "map_constants.h" +#include "trainer_see.h" extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[36]; - -extern void strange_npc_table_clear(void); -extern void ClearPlayerAvatarInfo(void); -extern void npc_load_two_palettes__no_record(u16, u8); -extern void npc_load_two_palettes__and_record(u16, u8); -extern void sub_8060388(s16, s16, s16 *, s16 *); -extern void sub_80634D0(struct MapObject *, struct Sprite *); -extern void pal_patch_for_npc(u16, u16); -extern void CameraObjectReset1(void); - -void sub_805AAB0(void); -u8 GetFieldObjectIdByLocalId(u8); -u8 GetFieldObjectIdByLocalIdAndMapInternal(u8, u8, u8); -u8 GetAvailableFieldObjectSlot(u16, u8, u8, u8 *); -void FieldObjectHandleDynamicGraphicsId(struct MapObject *); -void RemoveFieldObjectInternal(struct MapObject *); -u16 GetFieldObjectFlagIdByFieldObjectId(u8); -void MakeObjectTemplateFromFieldObjectTemplate(struct MapObjectTemplate *mapObjTemplate, struct SpriteTemplate *sprTemplate, struct SubspriteTable **subspriteTables); -struct MapObjectTemplate *GetFieldObjectTemplateByLocalIdAndMap(u8, u8, u8); -void GetFieldObjectMovingCameraOffset(s16 *, s16 *); -void sub_805BDF8(u16); -u8 sub_805BE58(const struct SpritePalette *); -u8 FindFieldObjectPaletteIndexByTag(u16); - struct PairedPalettes { u16 tag; @@ -3182,17 +3161,217 @@ u8 sub_805F2B4(struct MapObject *mapObject, struct Sprite *sprite) return MoveFieldObjectInNextDirectionInSequence(mapObject, sprite, directions); }; -void sub_805F2FC(struct Sprite *sprite); -void FieldObjectCB_TreeDisguise(struct Sprite *sprite); -void FieldObjectCB_MountainDisguise(struct Sprite *sprite); -void sub_805F8E0(struct Sprite *sprite); -void FieldObjectCB_Hidden1(struct Sprite *sprite); -void sub_805FB20(struct Sprite *sprite); -void sub_805FB90(struct Sprite *sprite); -void sub_805FC00(struct Sprite *sprite); -void sub_805FC70(struct Sprite *sprite); +fieldmap_object_cb(sub_805F2FC, sub_805F320, gUnknown_08375588); + +u8 mss_npc_reset_oampriv3_1_unk2_unk3(struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_reset(mapObject, sprite); + if (mapObject->mapobj_unk_21 == 0) + { + mapObject->mapobj_unk_21 = player_get_direction_lower_nybble(); + } + sprite->data1 = 1; + return 1; +} + +extern u8 (*const gUnknown_08375594[])(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8)); + +u8 sub_805F364(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_1C == 0xFF || gPlayerAvatar.running1 == 2) + { + return 0; + } + return gUnknown_08375594[player_get_x22()](mapObject, sprite, player_get_direction_upper_nybble(), NULL); +} + +u8 sub_805F3C4(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (FieldObjectExecRegularAnim(mapObject, sprite)) + { + mapObject->mapobj_bit_1 = 0; + sprite->data1 = 1; + } + return 0; +} + +#ifdef NONMATCHING + +u8 sub_805F3EC(struct MapObject *mapObject, struct Sprite *sprite, u8 a2, u8 *a3(u8)) +{ + return 0; +} + +u8 sub_805F3F0(struct MapObject *mapObject, struct Sprite *sprite, u8 a2, u8 *a3(u8)) +{ + int direction; + direction = state_to_direction(gUnknown_0836DC09[mapObject->animPattern], mapObject->mapobj_unk_21, a2); + FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(direction)); + mapObject->mapobj_bit_1 = 1; + sprite->data1 = 2; + return 1; +} + +u8 sub_805F438(struct MapObject *mapObject, struct Sprite *sprite, u8 a2, u8 *a3(u8)) +{ + s16 x; + s16 y; + int direction; + direction = state_to_direction(gUnknown_0836DC09[mapObject->animPattern], mapObject->mapobj_unk_21, a2); + FieldObjectMoveDestCoords(mapObject, direction, &x, &y); + FieldObjectSetRegularAnim(mapObject, sprite, GetGoSpeed0AnimId(direction)); + if (!npc_block_way(mapObject, x, y, direction) || (a3 != NULL && !a3(MapGridGetMetatileBehaviorAt(x, y)))) + { + FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(direction)); + } + mapObject->mapobj_bit_1 = 1; + sprite->data1 = 2; + return 1; +} +#endif + +asm(".section .text_fmocb2_c\n"); + +fieldmap_object_cb(sub_805F8E0, sub_805F904, gUnknown_083755C0); + +u8 mss_08062EA4(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_1C == 0xFF || gPlayerAvatar.running1 == 2) + { + return 0; + } + return gUnknown_08375594[player_get_x22()](mapObject, sprite, player_get_direction_upper_nybble(), MetatileBehavior_IsPokeGrass); +} + +u8 sub_805F9F8(struct MapObject *, struct Sprite *); -asm(".section .text_b\n"); +void FieldObjectCB_TreeDisguise(struct Sprite *sprite) +{ + struct MapObject *mapObject; + mapObject = &gMapObjects[sprite->data0]; + if (mapObject->mapobj_unk_21 == 0 || (mapObject->mapobj_unk_21 == 1 && sprite->data7 == 0)) + { + FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gUnknown_0202FF84[0], (u8 *)&gUnknown_0202FF84[1], (u8 *)&gUnknown_0202FF84[2]); + mapObject->mapobj_unk_1A = FieldEffectStart(0x1c); + mapObject->mapobj_unk_21 = 1; + sprite->data7 ++; + } + meta_step(&gMapObjects[sprite->data0], sprite, sub_805F9F8); +} + +u8 sub_805F9F8(struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_reset(mapObject, sprite); + return 0; +} + +void FieldObjectCB_MountainDisguise(struct Sprite *sprite) +{ + struct MapObject *mapObject; + mapObject = &gMapObjects[sprite->data0]; + if (mapObject->mapobj_unk_21 == 0 || (mapObject->mapobj_unk_21 == 1 && sprite->data7 == 0)) + { + FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gUnknown_0202FF84[0], (u8 *)&gUnknown_0202FF84[1], (u8 *)&gUnknown_0202FF84[2]); + mapObject->mapobj_unk_1A = FieldEffectStart(0x1d); + mapObject->mapobj_unk_21 = 1; + sprite->data7 ++; + } + meta_step(&gMapObjects[sprite->data0], sprite, sub_805F9F8); +} + +u8 sub_805FAD8(struct MapObject *mapObject, struct Sprite *sprite); +extern u8 (*const gUnknown_083755CC[])(struct MapObject *, struct Sprite *); + +void FieldObjectCB_Hidden1(struct Sprite *sprite) +{ + if (sprite->data7 == 0) + { + gMapObjects[sprite->data0].mapobj_bit_26 = 1; + sprite->subspriteMode = 2; + sprite->oam.priority = 3; + sprite->data7 ++; + } + meta_step(&gMapObjects[sprite->data0], sprite, sub_805FAD8); +} + +u8 sub_805FAD8(struct MapObject *mapObject, struct Sprite *sprite) +{ + return gUnknown_083755CC[sprite->data1](mapObject, sprite); +} + +u8 sub_805FAF8(struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_reset(mapObject, sprite); + return 0; +} + +u8 sub_805FB04(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (FieldObjectExecRegularAnim(mapObject, sprite)) + { + sprite->data1 = 0; + } + return 0; +} + +fieldmap_object_cb(sub_805FB20, sub_805FB44, gUnknown_083755D0); + +u8 sub_805FB64(struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_reset(mapObject, sprite); + FieldObjectSetRegularAnim(mapObject, sprite, GetStepInPlaceDelay16AnimId(mapObject->mapobj_unk_18)); + sprite->data1 = 1; + return 1; +} + +fieldmap_object_cb(sub_805FB90, sub_805FBB4, gUnknown_083755D8); + +u8 sub_805FBD4(struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_reset(mapObject, sprite); + FieldObjectSetRegularAnim(mapObject, sprite, GetStepInPlaceDelay8AnimId(mapObject->mapobj_unk_18)); + sprite->data1 = 1; + return 1; +} + +fieldmap_object_cb(sub_805FC00, sub_805FC24, gUnknown_083755E0); + +u8 sub_805FC44(struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_reset(mapObject, sprite); + FieldObjectSetRegularAnim(mapObject, sprite, GetStepInPlaceDelay4AnimId(mapObject->mapobj_unk_18)); + sprite->data1 = 1; + return 1; +} + +fieldmap_object_cb(sub_805FC70, sub_805FC94, gUnknown_083755E8); + +u8 sub_805FCB4(struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_reset(mapObject, sprite); + FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18)); + mapObject->mapobj_bit_13 = 1; + sprite->data1 = 1; + return 1; +} + +u8 sub_805FCE8(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (FieldObjectExecRegularAnim(mapObject, sprite)) + { + sprite->data1 = 2; + return 1; + } + return 0; +} + +u8 sub_805FD08(struct MapObject *mapObject, struct Sprite *sprite) +{ + mapObject->mapobj_bit_1 = 0; + return 0; +} + +void sub_805FC70(struct Sprite *sprite); void npc_reset(struct MapObject *mapObject, struct Sprite *sprite) { @@ -3682,7 +3861,7 @@ u8 FieldObjectGetSpecialAnim(struct MapObject *mapObject) extern void DoGroundEffects_OnSpawn(struct MapObject *mapObject, struct Sprite *sprite); extern void DoGroundEffects_OnBeginStep(struct MapObject *mapObject, struct Sprite *sprite); extern void DoGroundEffects_OnFinishStep(struct MapObject *mapObject, struct Sprite *sprite); -extern void npc_obj_transfer_image_anim_pause_flag(struct MapObject *mapObject, struct Sprite *sprite); +void npc_obj_transfer_image_anim_pause_flag(struct MapObject *mapObject, struct Sprite *sprite); void sub_80634A0(struct MapObject *mapObject, struct Sprite *sprite); void FieldObjectExecSpecialAnim(struct MapObject *mapObject, struct Sprite *sprite); void FieldObjectUpdateSubpriority(struct MapObject *mapObject, struct Sprite *sprite); @@ -4082,10 +4261,10 @@ int zffu_offset_calc(u8 a0, u8 a1) } #ifdef NONMATCHING -u8 state_to_direction(u8 a0, u8 a1, u8 a2) +int state_to_direction(u8 a0, u8 a1, u8 a2) { int zffuOffset; - asm_comment("For some reason, r2 is being backed up to r3 and restored ahead of the zffu call.") + asm_comment("For some reason, r2 is being backed up to r3 and restored ahead of the zffu call."); if (a1 == 0 || a2 == 0 || a1 > 4 || a2 > 4) { return 0; @@ -4095,42 +4274,42 @@ u8 state_to_direction(u8 a0, u8 a1, u8 a2) } #else __attribute__((naked)) -u8 state_to_direction(u8 a0, u8 a1, u8 a2) +int state_to_direction(u8 a0, u8 a1, u8 a2) { asm(".syntax unified\n\ - push {r4,lr}\n\ - lsls r0, 24\n\ - lsrs r4, r0, 24\n\ - lsls r1, 24\n\ - lsrs r1, 24\n\ - adds r0, r1, 0\n\ - lsls r2, 24\n\ - lsrs r2, 24\n\ - cmp r1, 0\n\ - beq _08060BFC\n\ - cmp r2, 0\n\ - beq _08060BFC\n\ - cmp r1, 0x4\n\ - bhi _08060BFC\n\ - cmp r2, 0x4\n\ - bls _08060C00\n\ + push {r4,lr}\n\ + lsls r0, 24\n\ + lsrs r4, r0, 24\n\ + lsls r1, 24\n\ + lsrs r1, 24\n\ + adds r0, r1, 0\n\ + lsls r2, 24\n\ + lsrs r2, 24\n\ + cmp r1, 0\n\ + beq _08060BFC\n\ + cmp r2, 0\n\ + beq _08060BFC\n\ + cmp r1, 0x4\n\ + bhi _08060BFC\n\ + cmp r2, 0x4\n\ + bls _08060C00\n\ _08060BFC:\n\ - movs r0, 0\n\ - b _08060C12\n\ + movs r0, 0\n\ + b _08060C12\n\ _08060C00:\n\ - adds r1, r2, 0\n\ - bl zffu_offset_calc\n\ - ldr r2, _08060C18 @ =gUnknown_08375767\n\ - lsls r1, r4, 2\n\ - subs r1, 0x5\n\ - adds r0, r1\n\ - adds r0, r2\n\ - ldrb r0, [r0]\n\ + adds r1, r2, 0\n\ + bl zffu_offset_calc\n\ + ldr r2, _08060C18 @ =gUnknown_08375767\n\ + lsls r1, r4, 2\n\ + subs r1, 0x5\n\ + adds r0, r1\n\ + adds r0, r2\n\ + ldrb r0, [r0]\n\ _08060C12:\n\ - pop {r4}\n\ - pop {r1}\n\ - bx r1\n\ - .align 2, 0\n\ + pop {r4}\n\ + pop {r1}\n\ + bx r1\n\ + .align 2, 0\n\ _08060C18: .4byte gUnknown_08375767\n\ .syntax divided\n"); } @@ -4194,7 +4373,7 @@ u8 sub_8060D10(struct MapObject *mapObject, struct Sprite *sprite) return 1; } -void sub_8060D20(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 a2) +void sub_8060D20(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 a3) { s16 x; s16 y; @@ -4203,7 +4382,7 @@ void sub_8060D20(struct MapObject *mapObject, struct Sprite *sprite, u8 directio FieldObjectSetDirection(mapObject, direction); MoveCoords(direction, &x, &y); npc_coords_shift(mapObject, x, y); - oamt_npc_ministep_reset(sprite, direction, a2); + oamt_npc_ministep_reset(sprite, direction, a3); sprite->animPaused = 0; mapObject->mapobj_bit_2 = 1; sprite->data2 = 1; @@ -4211,12 +4390,12 @@ void sub_8060D20(struct MapObject *mapObject, struct Sprite *sprite, u8 directio extern u8 (*const gUnknown_083759C0[5])(u8); -void do_go_anim(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 a2) +void do_go_anim(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 a3) { u8 (*functions[5])(u8); memcpy(functions, gUnknown_083759C0, sizeof(gUnknown_083759C0)); - sub_8060D20(mapObject, sprite, direction, a2); - sub_805FE28(mapObject, sprite, functions[a2](mapObject->mapobj_unk_18)); + sub_8060D20(mapObject, sprite, direction, a3); + sub_805FE28(mapObject, sprite, functions[a3](mapObject->mapobj_unk_18)); } void do_run_anim(struct MapObject *mapObject, struct Sprite *sprite, u8 direction) @@ -4416,3 +4595,2119 @@ bool8 sub_806111C(struct MapObject *mapObject, struct Sprite *sprite) return FALSE; } +extern const s16 gUnknown_08375A34[3]; +extern const s16 gUnknown_08375A3A[3]; + +void sub_806113C(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 a4, u8 a5) +{ + s16 vSPp4[3]; + s16 x; + s16 y; + memcpy(vSPp4, gUnknown_08375A34, sizeof gUnknown_08375A34); + x = 0; + y = 0; + FieldObjectSetDirection(mapObject, direction); + sub_8060320(direction, &x, &y, vSPp4[a4], vSPp4[a4]); + npc_coords_shift(mapObject, mapObject->coords2.x + x, mapObject->coords2.y + y); + sub_80646E4(sprite, direction, a4, a5); + sprite->data2 = 1; + sprite->animPaused = 0; + mapObject->mapobj_bit_2 = 1; + mapObject->mapobj_bit_4 = 1; +} + +void maybe_shadow_1(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 a4, u8 a5) +{ + sub_806113C(mapObject, sprite, direction, a4, a5); + sub_805FE28(mapObject, sprite, get_go_image_anim_num(mapObject->mapobj_unk_18)); + DoShadowFieldEffect(mapObject); +} + +u8 sub_806123C(struct MapObject *mapObject, struct Sprite *sprite, u8 (*const callback)(struct Sprite *)) +{ + s16 vSPp4[3]; + s16 x; + s16 y; + u8 retval; + memcpy(vSPp4, gUnknown_08375A3A, sizeof gUnknown_08375A3A); + retval = callback(sprite); + if (retval == 1 && vSPp4[sprite->data4] != 0) + { + x = 0; + y = 0; + sub_8060320(mapObject->placeholder18, &x, &y, vSPp4[sprite->data4], vSPp4[sprite->data4]); + npc_coords_shift(mapObject, mapObject->coords2.x + x, mapObject->coords2.y + y); + mapObject->mapobj_bit_2 = 1; + mapObject->mapobj_bit_4 = 1; + } else if (retval == 0xff) + { + npc_coords_shift_still(mapObject); + mapObject->mapobj_bit_3 = 1; + mapObject->mapobj_bit_5 = 1; + sprite->animPaused = 1; + } + return retval; +} + +u8 sub_8061300(struct MapObject *mapObject, struct Sprite *sprite) +{ + return sub_806123C(mapObject, sprite, sub_8064704); +} + +u8 sub_8061314(struct MapObject *mapObject, struct Sprite *sprite) +{ + return sub_806123C(mapObject, sprite, sub_806478C); +} + +bool8 sub_8061328(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_8061300(mapObject, sprite) == 0xFF) + { + return TRUE; + } + return FALSE; +} + +bool8 sub_8061340(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_8061314(mapObject, sprite) == 0xFF) + { + return TRUE; + } + return FALSE; +} + +bool8 sub_8061358(struct MapObject *mapObject, struct Sprite *sprite) +{ + u8 retval; + + retval = sub_8061300(mapObject, sprite); + if (retval != 1) + { + if (retval == 0xFF) + { + return TRUE; + } + return FALSE; + } + FieldObjectSetDirection(mapObject, GetOppositeDirection(mapObject->placeholder18)); + sub_805FE64(mapObject, sprite, get_go_image_anim_num(mapObject->mapobj_unk_18)); + return FALSE; +} + +bool8 sub_80613D4(struct MapObject *, struct Sprite *); +bool8 sub_806142C(struct MapObject *, struct Sprite *); +bool8 sub_8061484(struct MapObject *, struct Sprite *); +bool8 sub_80614DC(struct MapObject *, struct Sprite *); + +bool8 sub_80613A8(struct MapObject *mapObject, struct Sprite *sprite) +{ + maybe_shadow_1(mapObject, sprite, DIR_SOUTH, 2, 0); + return sub_80613D4(mapObject, sprite); +} + +bool8 sub_80613D4(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_8061328(mapObject, sprite)) + { + mapObject->mapobj_bit_22 = 0; + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_8061400(struct MapObject *mapObject, struct Sprite *sprite) +{ + maybe_shadow_1(mapObject, sprite, DIR_NORTH, 2, 0); + return sub_806142C(mapObject, sprite); +} + +bool8 sub_806142C(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_8061328(mapObject, sprite)) + { + mapObject->mapobj_bit_22 = 0; + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_8061458(struct MapObject *mapObject, struct Sprite *sprite) +{ + maybe_shadow_1(mapObject, sprite, DIR_WEST, 2, 0); + return sub_8061484(mapObject, sprite); +} + +bool8 sub_8061484(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_8061328(mapObject, sprite)) + { + mapObject->mapobj_bit_22 = 0; + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_80614B0(struct MapObject *mapObject, struct Sprite *sprite) +{ + maybe_shadow_1(mapObject, sprite, DIR_EAST, 2, 0); + return sub_80614DC(mapObject, sprite); +} + +bool8 sub_80614DC(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_8061328(mapObject, sprite)) + { + mapObject->mapobj_bit_22 = 0; + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +void sub_8061508(struct Sprite *sprite, u16 duration) +{ + sprite->data2 = 1; + sprite->data3 = duration; +} + +bool8 sub_8061510(struct MapObject *mapObject, struct Sprite *sprite) +{ + sprite->data3--; + if (!sprite->data3) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_806152C(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_8061508(sprite, 1); + return sub_8061510(mapObject, sprite); +} + +bool8 sub_806154C(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_8061508(sprite, 2); + return sub_8061510(mapObject, sprite); +} + +bool8 sub_806156C(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_8061508(sprite, 4); + return sub_8061510(mapObject, sprite); +} + +bool8 sub_806158C(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_8061508(sprite, 8); + return sub_8061510(mapObject, sprite); +} + +bool8 sub_80615AC(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_8061508(sprite, 16); + return sub_8061510(mapObject, sprite); +} + +bool8 sub_80615EC(struct MapObject *mapObject, struct Sprite *sprite); +bool8 sub_806162C(struct MapObject *mapObject, struct Sprite *sprite); +bool8 sub_806166C(struct MapObject *mapObject, struct Sprite *sprite); +bool8 sub_80616AC(struct MapObject *mapObject, struct Sprite *sprite); + +bool8 sub_80615CC(struct MapObject *mapObject, struct Sprite *sprite) +{ + do_go_anim(mapObject, sprite, DIR_SOUTH, 1); + return sub_80615EC(mapObject, sprite); +} + +bool8 sub_80615EC(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (npc_obj_ministep_stop_on_arrival(mapObject, sprite)) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} +bool8 sub_806160C(struct MapObject *mapObject, struct Sprite *sprite) +{ + do_go_anim(mapObject, sprite, DIR_NORTH, 1); + return sub_806162C(mapObject, sprite); +} + +bool8 sub_806162C(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (npc_obj_ministep_stop_on_arrival(mapObject, sprite)) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} +bool8 sub_806164C(struct MapObject *mapObject, struct Sprite *sprite) +{ + do_go_anim(mapObject, sprite, DIR_WEST, 1); + return sub_806166C(mapObject, sprite); +} + +bool8 sub_806166C(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (npc_obj_ministep_stop_on_arrival(mapObject, sprite)) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} +bool8 sub_806168C(struct MapObject *mapObject, struct Sprite *sprite) +{ + do_go_anim(mapObject, sprite, DIR_EAST, 1); + return sub_80616AC(mapObject, sprite); +} + +bool8 sub_80616AC(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (npc_obj_ministep_stop_on_arrival(mapObject, sprite)) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +void sub_80616CC(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 animId, u16 duration) +{ + FieldObjectSetDirection(mapObject, direction); + sub_805FE28(mapObject, sprite, animId); + sprite->animPaused = 0; + sprite->data2 = 1; + sprite->data3 = duration; +} + +bool8 sub_8061714(struct MapObject *mapObject, struct Sprite *sprite) +{ + sprite->data3--; + if (sprite->data3 == 0) + { + sprite->data2 = 2; + sprite->animPaused = 1; + return TRUE; + } + return FALSE; +} + +bool8 sub_806173C(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sprite->data3 & 1) + { + sprite->animDelayCounter++; + } + return sub_8061714(mapObject, sprite); +} + +bool8 sub_8061778(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_80616CC(mapObject, sprite, DIR_SOUTH, get_go_image_anim_num(DIR_SOUTH), 32); + return sub_806173C(mapObject, sprite); +} + +bool8 sub_80617B0(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_80616CC(mapObject, sprite, DIR_NORTH, get_go_image_anim_num(DIR_NORTH), 32); + return sub_806173C(mapObject, sprite); +} + +bool8 sub_80617E8(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_80616CC(mapObject, sprite, DIR_WEST, get_go_image_anim_num(DIR_WEST), 32); + return sub_806173C(mapObject, sprite); +} + +bool8 sub_8061820(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_80616CC(mapObject, sprite, DIR_EAST, get_go_image_anim_num(DIR_EAST), 32); + return sub_806173C(mapObject, sprite); +} + +bool8 sub_8061858(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_80616CC(mapObject, sprite, DIR_SOUTH, get_go_image_anim_num(DIR_SOUTH), 16); + return sub_8061714(mapObject, sprite); +} + +bool8 sub_8061890(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_80616CC(mapObject, sprite, DIR_NORTH, get_go_image_anim_num(DIR_NORTH), 16); + return sub_8061714(mapObject, sprite); +} + +bool8 sub_80618C8(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_80616CC(mapObject, sprite, DIR_WEST, get_go_image_anim_num(DIR_WEST), 16); + return sub_8061714(mapObject, sprite); +} + +bool8 sub_8061900(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_80616CC(mapObject, sprite, DIR_EAST, get_go_image_anim_num(DIR_EAST), 16); + return sub_8061714(mapObject, sprite); +} + +bool8 sub_8061938(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_80616CC(mapObject, sprite, DIR_SOUTH, get_go_fast_image_anim_num(DIR_SOUTH), 8); + return sub_8061714(mapObject, sprite); +} + +bool8 sub_8061970(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_80616CC(mapObject, sprite, DIR_NORTH, get_go_fast_image_anim_num(DIR_NORTH), 8); + return sub_8061714(mapObject, sprite); +} + +bool8 sub_80619A8(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_80616CC(mapObject, sprite, DIR_WEST, get_go_fast_image_anim_num(DIR_WEST), 8); + return sub_8061714(mapObject, sprite); +} + +bool8 sub_80619E0(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_80616CC(mapObject, sprite, DIR_EAST, get_go_fast_image_anim_num(DIR_EAST), 8); + return sub_8061714(mapObject, sprite); +} + +bool8 sub_8061A18(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_80616CC(mapObject, sprite, DIR_SOUTH, get_go_faster_image_anim_num(DIR_SOUTH), 4); + return sub_8061714(mapObject, sprite); +} + +bool8 sub_8061A50(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_80616CC(mapObject, sprite, DIR_NORTH, get_go_faster_image_anim_num(DIR_NORTH), 4); + return sub_8061714(mapObject, sprite); +} + +bool8 sub_8061A88(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_80616CC(mapObject, sprite, DIR_WEST, get_go_faster_image_anim_num(DIR_WEST), 4); + return sub_8061714(mapObject, sprite); +} + +bool8 sub_8061AC0(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_80616CC(mapObject, sprite, DIR_EAST, get_go_faster_image_anim_num(DIR_EAST), 4); + return sub_8061714(mapObject, sprite); +} + +bool8 sub_8061B18(struct MapObject *, struct Sprite *); + +bool8 sub_8061AF8(struct MapObject *mapObject, struct Sprite *sprite) +{ + do_go_anim(mapObject, sprite, DIR_SOUTH, 2); + return sub_8061B18(mapObject, sprite); +} + +bool8 sub_8061B18(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (npc_obj_ministep_stop_on_arrival(mapObject, sprite)) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + + +bool8 sub_8061B58(struct MapObject *, struct Sprite *); + +bool8 sub_8061B38(struct MapObject *mapObject, struct Sprite *sprite) +{ + do_go_anim(mapObject, sprite, DIR_NORTH, 2); + return sub_8061B58(mapObject, sprite); +} + +bool8 sub_8061B58(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (npc_obj_ministep_stop_on_arrival(mapObject, sprite)) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + + +bool8 sub_8061B98(struct MapObject *, struct Sprite *); + +bool8 sub_8061B78(struct MapObject *mapObject, struct Sprite *sprite) +{ + do_go_anim(mapObject, sprite, DIR_WEST, 2); + return sub_8061B98(mapObject, sprite); +} + +bool8 sub_8061B98(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (npc_obj_ministep_stop_on_arrival(mapObject, sprite)) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + + +bool8 sub_8061BD8(struct MapObject *, struct Sprite *); + +bool8 sub_8061BB8(struct MapObject *mapObject, struct Sprite *sprite) +{ + do_go_anim(mapObject, sprite, DIR_EAST, 2); + return sub_8061BD8(mapObject, sprite); +} + +bool8 sub_8061BD8(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (npc_obj_ministep_stop_on_arrival(mapObject, sprite)) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_8061C18(struct MapObject *, struct Sprite *); + +bool8 sub_8061BF8(struct MapObject *mapObject, struct Sprite *sprite) +{ + do_go_anim(mapObject, sprite, DIR_SOUTH, 3); + return sub_8061C18(mapObject, sprite); +} + +bool8 sub_8061C18(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (npc_obj_ministep_stop_on_arrival(mapObject, sprite)) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_8061C58(struct MapObject *, struct Sprite *); + +bool8 sub_8061C38(struct MapObject *mapObject, struct Sprite *sprite) +{ + do_go_anim(mapObject, sprite, DIR_NORTH, 3); + return sub_8061C58(mapObject, sprite); +} + +bool8 sub_8061C58(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (npc_obj_ministep_stop_on_arrival(mapObject, sprite)) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + + +bool8 sub_8061C98(struct MapObject *, struct Sprite *); + +bool8 sub_8061C78(struct MapObject *mapObject, struct Sprite *sprite) +{ + do_go_anim(mapObject, sprite, DIR_WEST, 3); + return sub_8061C98(mapObject, sprite); +} + +bool8 sub_8061C98(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (npc_obj_ministep_stop_on_arrival(mapObject, sprite)) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + + +bool8 sub_8061CD8(struct MapObject *, struct Sprite *); + +bool8 sub_8061CB8(struct MapObject *mapObject, struct Sprite *sprite) +{ + do_go_anim(mapObject, sprite, DIR_EAST, 3); + return sub_8061CD8(mapObject, sprite); +} + +bool8 sub_8061CD8(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (npc_obj_ministep_stop_on_arrival(mapObject, sprite)) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_8061D18(struct MapObject *, struct Sprite *); + +bool8 sub_8061CF8(struct MapObject *mapObject, struct Sprite *sprite) +{ + do_go_anim(mapObject, sprite, DIR_SOUTH, 4); + return sub_8061D18(mapObject, sprite); +} + +bool8 sub_8061D18(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (npc_obj_ministep_stop_on_arrival(mapObject, sprite)) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_8061D58(struct MapObject *, struct Sprite *); + +bool8 sub_8061D38(struct MapObject *mapObject, struct Sprite *sprite) +{ + do_go_anim(mapObject, sprite, DIR_NORTH, 4); + return sub_8061D58(mapObject, sprite); +} + +bool8 sub_8061D58(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (npc_obj_ministep_stop_on_arrival(mapObject, sprite)) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + + +bool8 sub_8061D98(struct MapObject *, struct Sprite *); + +bool8 sub_8061D78(struct MapObject *mapObject, struct Sprite *sprite) +{ + do_go_anim(mapObject, sprite, DIR_WEST, 4); + return sub_8061D98(mapObject, sprite); +} + +bool8 sub_8061D98(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (npc_obj_ministep_stop_on_arrival(mapObject, sprite)) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + + +bool8 sub_8061DD8(struct MapObject *, struct Sprite *); + +bool8 sub_8061DB8(struct MapObject *mapObject, struct Sprite *sprite) +{ + do_go_anim(mapObject, sprite, DIR_EAST, 4); + return sub_8061DD8(mapObject, sprite); +} + +bool8 sub_8061DD8(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (npc_obj_ministep_stop_on_arrival(mapObject, sprite)) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_8061E18(struct MapObject *, struct Sprite *); + +bool8 do_run_south_anim(struct MapObject *mapObject, struct Sprite *sprite) +{ + do_run_anim(mapObject, sprite, DIR_SOUTH); + return sub_8061E18(mapObject, sprite); +} + +bool8 sub_8061E18(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (npc_obj_ministep_stop_on_arrival(mapObject, sprite)) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_8061E58(struct MapObject *, struct Sprite *); + +bool8 do_run_north_anim(struct MapObject *mapObject, struct Sprite *sprite) +{ + do_run_anim(mapObject, sprite, DIR_NORTH); + return sub_8061E58(mapObject, sprite); +} + +bool8 sub_8061E58(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (npc_obj_ministep_stop_on_arrival(mapObject, sprite)) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_8061E98(struct MapObject *, struct Sprite *); + +bool8 do_run_west_anim(struct MapObject *mapObject, struct Sprite *sprite) +{ + do_run_anim(mapObject, sprite, DIR_WEST); + return sub_8061E98(mapObject, sprite); +} + +bool8 sub_8061E98(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (npc_obj_ministep_stop_on_arrival(mapObject, sprite)) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_8061ED8(struct MapObject *, struct Sprite *); + +bool8 do_run_east_anim(struct MapObject *mapObject, struct Sprite *sprite) +{ + do_run_anim(mapObject, sprite, DIR_EAST); + return sub_8061ED8(mapObject, sprite); +} + +bool8 sub_8061ED8(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (npc_obj_ministep_stop_on_arrival(mapObject, sprite)) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +void npc_set_direction_and_anim__an_proceed(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 animNum) +{ + obj_anim_image_set_and_seek(sprite, animNum, 0); + FieldObjectSetDirection(mapObject, direction); + sprite->data2 = 1; +} + +bool8 sub_8061F24(struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_set_direction_and_anim__an_proceed(mapObject, sprite, mapObject->placeholder18, sprite->animNum); + return FALSE; +} + +bool8 sub_8064864(struct Sprite *); + +bool8 sub_8061F3C(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_8064864(sprite)) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +void sub_8061F5C(struct MapObject *mapObject, struct Sprite *sprite, u8 direction) +{ + sub_806113C(mapObject, sprite, direction, 1, 0); + StartSpriteAnim(sprite, sub_805FD88(direction)); +} + +bool8 sub_8061FB0(struct MapObject *, struct Sprite *); + +bool8 sub_8061F90(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_8061F5C(mapObject, sprite, DIR_SOUTH); + return sub_8061FB0(mapObject, sprite); +} + +bool8 sub_8061FB0(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_8061340(mapObject, sprite)) + { + sprite->data2 = 2; + mapObject->mapobj_bit_5 = 0; + return TRUE; + } + return FALSE; +} + +bool8 sub_8061FF8(struct MapObject *, struct Sprite *); + +bool8 sub_8061FD8(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_8061F5C(mapObject, sprite, DIR_NORTH); + return sub_8061FF8(mapObject, sprite); +} + +bool8 sub_8061FF8(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_8061340(mapObject, sprite)) + { + sprite->data2 = 2; + mapObject->mapobj_bit_5 = 0; + return TRUE; + } + return FALSE; +} + +bool8 sub_8062040(struct MapObject *, struct Sprite *); + +bool8 sub_8062020(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_8061F5C(mapObject, sprite, DIR_WEST); + return sub_8062040(mapObject, sprite); +} + +bool8 sub_8062040(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_8061340(mapObject, sprite)) + { + sprite->data2 = 2; + mapObject->mapobj_bit_5 = 0; + return TRUE; + } + return FALSE; +} + +bool8 sub_8062088(struct MapObject *, struct Sprite *); + +bool8 sub_8062068(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_8061F5C(mapObject, sprite, DIR_EAST); + return sub_8062088(mapObject, sprite); +} + +bool8 sub_8062088(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_8061340(mapObject, sprite)) + { + sprite->data2 = 2; + mapObject->mapobj_bit_5 = 0; + return TRUE; + } + return FALSE; +} + +bool8 sub_80620B0(struct MapObject *mapObject, struct Sprite *sprite) +{ + u8 objectId; + if (!TryGetFieldObjectIdByLocalIdAndMap(0xFF, MAP_GROUP_PETALBURG_CITY, MAP_ID_PETALBURG_CITY, &objectId)) + { + an_look_any(mapObject, sprite, sub_805FE90(mapObject->coords2.x, mapObject->coords2.y, gMapObjects[objectId].coords2.x, gMapObjects[objectId].coords2.y)); + } + sprite->data2 = 1; + return TRUE; +} + +bool8 sub_806210C(struct MapObject *mapObject, struct Sprite *sprite) +{ + u8 objectId; + if (!TryGetFieldObjectIdByLocalIdAndMap(0xFF, MAP_GROUP_PETALBURG_CITY, MAP_ID_PETALBURG_CITY, &objectId)) + { + an_look_any(mapObject, sprite, GetOppositeDirection(sub_805FE90(mapObject->coords2.x, mapObject->coords2.y, gMapObjects[objectId].coords2.x, gMapObjects[objectId].coords2.y))); + } + sprite->data2 = 1; + return TRUE; +} + +bool8 sub_8062170(struct MapObject *mapObject, struct Sprite *sprite) +{ + mapObject->mapobj_bit_9 = 1; + sprite->data2 = 1; + return TRUE; +} + +bool8 sub_8062180(struct MapObject *mapObject, struct Sprite *sprite) +{ + mapObject->mapobj_bit_9 = 0; + sprite->data2 = 1; + return TRUE; +} + +bool8 sub_80621BC(struct MapObject *mapObject, struct Sprite *sprite); + +bool8 sub_8062190(struct MapObject *mapObject, struct Sprite *sprite) +{ + maybe_shadow_1(mapObject, sprite, DIR_SOUTH, 1, 2); + return sub_80621BC(mapObject, sprite); +} + +bool8 sub_80621BC(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_8061328(mapObject, sprite)) + { + mapObject->mapobj_bit_22 = 0; + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_8062214(struct MapObject *mapObject, struct Sprite *sprite); + +bool8 sub_80621E8(struct MapObject *mapObject, struct Sprite *sprite) +{ + maybe_shadow_1(mapObject, sprite, DIR_NORTH, 1, 2); + return sub_8062214(mapObject, sprite); +} + +bool8 sub_8062214(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_8061328(mapObject, sprite)) + { + mapObject->mapobj_bit_22 = 0; + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_806226C(struct MapObject *mapObject, struct Sprite *sprite); + +bool8 sub_8062240(struct MapObject *mapObject, struct Sprite *sprite) +{ + maybe_shadow_1(mapObject, sprite, DIR_WEST, 1, 2); + return sub_806226C(mapObject, sprite); +} + +bool8 sub_806226C(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_8061328(mapObject, sprite)) + { + mapObject->mapobj_bit_22 = 0; + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_80622C4(struct MapObject *mapObject, struct Sprite *sprite); + +bool8 sub_8062298(struct MapObject *mapObject, struct Sprite *sprite) +{ + maybe_shadow_1(mapObject, sprite, DIR_EAST, 1, 2); + return sub_80622C4(mapObject, sprite); +} + +bool8 sub_80622C4(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_8061328(mapObject, sprite)) + { + mapObject->mapobj_bit_22 = 0; + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_806231C(struct MapObject *mapObject, struct Sprite *sprite); + +bool8 sub_80622F0(struct MapObject *mapObject, struct Sprite *sprite) +{ + maybe_shadow_1(mapObject, sprite, DIR_SOUTH, 0, 0); + return sub_806231C(mapObject, sprite); +} + +bool8 sub_806231C(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_8061328(mapObject, sprite)) + { + mapObject->mapobj_bit_22 = 0; + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_8062374(struct MapObject *mapObject, struct Sprite *sprite); + +bool8 sub_8062348(struct MapObject *mapObject, struct Sprite *sprite) +{ + maybe_shadow_1(mapObject, sprite, DIR_NORTH, 0, 0); + return sub_8062374(mapObject, sprite); +} + +bool8 sub_8062374(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_8061328(mapObject, sprite)) + { + mapObject->mapobj_bit_22 = 0; + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_80623CC(struct MapObject *mapObject, struct Sprite *sprite); + +bool8 sub_80623A0(struct MapObject *mapObject, struct Sprite *sprite) +{ + maybe_shadow_1(mapObject, sprite, DIR_WEST, 0, 0); + return sub_80623CC(mapObject, sprite); +} + +bool8 sub_80623CC(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_8061328(mapObject, sprite)) + { + mapObject->mapobj_bit_22 = 0; + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_8062424(struct MapObject *mapObject, struct Sprite *sprite); + +bool8 sub_80623F8(struct MapObject *mapObject, struct Sprite *sprite) +{ + maybe_shadow_1(mapObject, sprite, DIR_EAST, 0, 0); + return sub_8062424(mapObject, sprite); +} + +bool8 sub_8062424(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_8061328(mapObject, sprite)) + { + mapObject->mapobj_bit_22 = 0; + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_806247C(struct MapObject *mapObject, struct Sprite *sprite); + +bool8 sub_8062450(struct MapObject *mapObject, struct Sprite *sprite) +{ + maybe_shadow_1(mapObject, sprite, DIR_SOUTH, 0, 2); + return sub_806247C(mapObject, sprite); +} + +bool8 sub_806247C(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_8061358(mapObject, sprite)) + { + mapObject->mapobj_bit_22 = 0; + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_80624D4(struct MapObject *mapObject, struct Sprite *sprite); + +bool8 sub_80624A8(struct MapObject *mapObject, struct Sprite *sprite) +{ + maybe_shadow_1(mapObject, sprite, DIR_NORTH, 0, 2); + return sub_80624D4(mapObject, sprite); +} + +bool8 sub_80624D4(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_8061358(mapObject, sprite)) + { + mapObject->mapobj_bit_22 = 0; + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_806252C(struct MapObject *mapObject, struct Sprite *sprite); + +bool8 sub_8062500(struct MapObject *mapObject, struct Sprite *sprite) +{ + maybe_shadow_1(mapObject, sprite, DIR_WEST, 0, 2); + return sub_806252C(mapObject, sprite); +} + +bool8 sub_806252C(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_8061358(mapObject, sprite)) + { + mapObject->mapobj_bit_22 = 0; + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_8062584(struct MapObject *mapObject, struct Sprite *sprite); + +bool8 sub_8062558(struct MapObject *mapObject, struct Sprite *sprite) +{ + maybe_shadow_1(mapObject, sprite, DIR_EAST, 0, 2); + return sub_8062584(mapObject, sprite); +} + +bool8 sub_8062584(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_8061358(mapObject, sprite)) + { + mapObject->mapobj_bit_22 = 0; + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_80625B0(struct MapObject *mapObject, struct Sprite *sprite) +{ + an_look_any(mapObject, sprite, gUnknown_0836DC09[mapObject->animPattern]); + return TRUE; +} + +bool8 sub_80625C8(struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_set_direction_and_anim__an_proceed(mapObject, sprite, DIR_SOUTH, 0x14); + return FALSE; +} + +bool8 sub_80625D8(struct MapObject *mapObject, struct Sprite *sprite) +{ + mapObject->mapobj_bit_25 = 0; + sprite->data2 = 1; + return TRUE; +} + +bool8 sub_80625E8(struct MapObject *mapObject, struct Sprite *sprite) +{ + mapObject->mapobj_bit_25 = 1; + sprite->data2 = 1; + return TRUE; +} + +bool8 sub_80625F8(struct MapObject *mapObject, struct Sprite *sprite) +{ + mapObject->mapobj_bit_12 = 1; + sprite->data2 = 1; + return TRUE; +} + +bool8 sub_8062608(struct MapObject *mapObject, struct Sprite *sprite) +{ + mapObject->mapobj_bit_12 = GetFieldObjectGraphicsInfo(mapObject->graphicsId)->inanimate; + sprite->data2 = 1; + return TRUE; +} + +bool8 sub_8062634(struct MapObject *mapObject, struct Sprite *sprite) +{ + mapObject->mapobj_bit_13 = 1; + sprite->data2 = 1; + return TRUE; +} + +bool8 sub_8062644(struct MapObject *mapObject, struct Sprite *sprite) +{ + mapObject->mapobj_bit_13 = 0; + sprite->data2 = 1; + return TRUE; +} + +bool8 do_exclamation_mark_bubble_1(struct MapObject *mapObject, struct Sprite *sprite) +{ + FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gUnknown_0202FF84[0], (u8 *)&gUnknown_0202FF84[1], (u8 *)&gUnknown_0202FF84[2]); + FieldEffectStart(0x0); + sprite->data2 = 1; + return TRUE; +} + +bool8 do_exclamation_mark_bubble_2(struct MapObject *mapObject, struct Sprite *sprite) +{ + FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gUnknown_0202FF84[0], (u8 *)&gUnknown_0202FF84[1], (u8 *)&gUnknown_0202FF84[2]); + FieldEffectStart(0x21); + sprite->data2 = 1; + return TRUE; +} + +bool8 do_heart_bubble(struct MapObject *mapObject, struct Sprite *sprite) +{ + FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gUnknown_0202FF84[0], (u8 *)&gUnknown_0202FF84[1], (u8 *)&gUnknown_0202FF84[2]); + FieldEffectStart(0x2e); + sprite->data2 = 1; + return TRUE; +} + +bool8 sub_8062704(struct MapObject *, struct Sprite *); + +bool8 sub_80626C0(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (mapObject->animPattern == 0x3F) + { + sub_8084794(mapObject); + return FALSE; + } + else if (mapObject->animPattern != 0x39 && mapObject->animPattern != 0x3A) + { + sprite->data2 = 2; + return TRUE; + } + else + { + sub_812869C(mapObject); + sprite->data2 = 1; + return sub_8062704(mapObject, sprite); + } +} + +bool8 sub_8062704(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_81286C4(mapObject)) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_8062724(struct MapObject *mapObject, struct Sprite *sprite) +{ + obj_anim_image_set_and_seek(sprite, 1, 0); + sprite->data2 = 1; + return FALSE; +} + +bool8 sub_8062740(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_8064864(sprite)) + { + sub_8064820(sprite, 0x20); + sprite->data2 = 2; + } + return FALSE; +} + +bool8 sub_8062764(struct MapObject *mapObject, struct Sprite *sprite) +{ + mapObject->mapobj_bit_13 ^= 1; + if (sub_8064824(sprite)) + { + mapObject->mapobj_bit_13 = 1; + sprite->data2 = 3; + } + return FALSE; +} + +bool8 sub_80627A0(struct MapObject *mapObject, struct Sprite *sprite) +{ + obj_anim_image_set_and_seek(sprite, 1, 0); + sprite->data2 = 1; + return FALSE; +} + +bool8 sub_80627BC(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_8064864(sprite)) + { + sub_8064820(sprite, 0x20); + sprite->data2 = 2; + } + return FALSE; +} + +bool8 sub_80627E0(struct MapObject *mapObject, struct Sprite *sprite) +{ + mapObject->mapobj_bit_13 ^= 1; + if (sub_8064824(sprite)) + { + mapObject->mapobj_bit_13 = 1; + sprite->data2 = 3; + } + return FALSE; +} + +bool8 sub_806281C(struct MapObject *mapObject, struct Sprite *sprite) +{ + mapObject->mapobj_bit_26 = 1; + sprite->data2 = 1; + return TRUE; +} + +bool8 sub_806282C(struct MapObject *mapObject, struct Sprite *sprite) +{ + mapObject->mapobj_bit_26 = 0; + sprite->data2 = 1; + return TRUE; +} + +bool8 sub_806283C(struct MapObject *mapObject, struct Sprite *sprite) +{ + sprite->oam.affineMode = 3; + InitSpriteAffineAnim(sprite); + sprite->affineAnimPaused = 1; + sprite->subspriteMode = 0; + return TRUE; +} + +bool8 sub_806286C(struct MapObject *mapObject, struct Sprite *sprite) +{ + FreeOamMatrix(sprite->oam.matrixNum); + sprite->oam.affineMode = 0; + CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, sprite->oam.affineMode); + return TRUE; +} + +bool8 sub_80628D0(struct MapObject *, struct Sprite *); + +bool8 sub_806289C(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_8060ED8(mapObject, sprite, DIR_SOUTH); + sprite->affineAnimPaused = 0; + StartSpriteAffineAnimIfDifferent(sprite, 0); + return sub_80628D0(mapObject, sprite); +} + +bool8 sub_80628D0(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (an_walk_any_2(mapObject, sprite)) + { + sprite->affineAnimPaused = 1; + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_8062930(struct MapObject *, struct Sprite *); + +bool8 sub_80628FC(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_8060ED8(mapObject, sprite, DIR_SOUTH); + sprite->affineAnimPaused = 0; + ChangeSpriteAffineAnimIfDifferent(sprite, 1); + return sub_8062930(mapObject, sprite); +} + +bool8 sub_8062930(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (an_walk_any_2(mapObject, sprite)) + { + sprite->affineAnimPaused = 1; + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +void sub_806295C(struct MapObject *mapObject, struct Sprite *sprite, u8 direction) +{ + FieldObjectSetDirection(mapObject, direction); + npc_coords_shift_still(mapObject); + sub_805FE64(mapObject, sprite, sub_805FDD8(direction)); + sprite->animPaused = 1; + sprite->data2 = 1; +} + +bool8 sub_806299C(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_806295C(mapObject, sprite, DIR_SOUTH); + return TRUE; +} + +bool8 sub_80629AC(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_806295C(mapObject, sprite, DIR_NORTH); + return TRUE; +} + +bool8 sub_80629BC(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_806295C(mapObject, sprite, DIR_WEST); + return TRUE; +} + +bool8 sub_80629CC(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_806295C(mapObject, sprite, DIR_EAST); + return TRUE; +} + +bool8 sub_80629DC(struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_set_direction_and_anim__an_proceed(mapObject, sprite, DIR_SOUTH, sub_805FD98(DIR_SOUTH)); + return FALSE; +} + +bool8 sub_8062A00(struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_set_direction_and_anim__an_proceed(mapObject, sprite, DIR_NORTH, sub_805FD98(DIR_NORTH)); + return FALSE; +} + +bool8 sub_8062A24(struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_set_direction_and_anim__an_proceed(mapObject, sprite, DIR_WEST, sub_805FD98(DIR_WEST)); + return FALSE; +} + +bool8 sub_8062A48(struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_set_direction_and_anim__an_proceed(mapObject, sprite, DIR_EAST, sub_805FD98(DIR_EAST)); + return FALSE; +} + +bool8 sub_8062A6C(struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_set_direction_and_anim__an_proceed(mapObject, sprite, DIR_SOUTH, sub_805FDB8(DIR_SOUTH)); + return FALSE; +} + +bool8 sub_8062A90(struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_set_direction_and_anim__an_proceed(mapObject, sprite, DIR_NORTH, sub_805FDB8(DIR_NORTH)); + return FALSE; +} + +bool8 sub_8062AB4(struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_set_direction_and_anim__an_proceed(mapObject, sprite, DIR_WEST, sub_805FDB8(DIR_WEST)); + return FALSE; +} + +bool8 sub_8062AD8(struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_set_direction_and_anim__an_proceed(mapObject, sprite, DIR_EAST, sub_805FDB8(DIR_EAST)); + return FALSE; +} + +bool8 sub_8062AFC(struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_set_direction_and_anim__an_proceed(mapObject, sprite, DIR_SOUTH, sub_805FDC8(DIR_SOUTH)); + return FALSE; +} + +bool8 sub_8062B20(struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_set_direction_and_anim__an_proceed(mapObject, sprite, DIR_NORTH, sub_805FDC8(DIR_NORTH)); + return FALSE; +} + +bool8 sub_8062B44(struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_set_direction_and_anim__an_proceed(mapObject, sprite, DIR_WEST, sub_805FDC8(DIR_WEST)); + return FALSE; +} + +bool8 sub_8062B68(struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_set_direction_and_anim__an_proceed(mapObject, sprite, DIR_EAST, sub_805FDC8(DIR_EAST)); + return FALSE; +} + +void sub_8062B8C(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 a3, u8 a4) +{ + sub_806113C(mapObject, sprite, direction, a3, a4); + StartSpriteAnimIfDifferent(sprite, sub_805FD98(direction)); + DoShadowFieldEffect(mapObject); +} + +bool8 sub_8062BFC(struct MapObject *, struct Sprite *); + +bool8 sub_8062BD0(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_8062B8C(mapObject, sprite, DIR_SOUTH, 0, 1); + return sub_8062BFC(mapObject, sprite); +} + +bool8 sub_8062BFC(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_8061328(mapObject, sprite)) + { + mapObject->mapobj_bit_22 = 0; + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_8062C54(struct MapObject *, struct Sprite *); + +bool8 sub_8062C28(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_8062B8C(mapObject, sprite, DIR_NORTH, 0, 1); + return sub_8062C54(mapObject, sprite); +} + +bool8 sub_8062C54(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_8061328(mapObject, sprite)) + { + mapObject->mapobj_bit_22 = 0; + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_8062CAC(struct MapObject *, struct Sprite *); + +bool8 sub_8062C80(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_8062B8C(mapObject, sprite, DIR_WEST, 0, 1); + return sub_8062CAC(mapObject, sprite); +} + +bool8 sub_8062CAC(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_8061328(mapObject, sprite)) + { + mapObject->mapobj_bit_22 = 0; + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_8062D04(struct MapObject *, struct Sprite *); + +bool8 sub_8062CD8(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_8062B8C(mapObject, sprite, DIR_EAST, 0, 1); + return sub_8062D04(mapObject, sprite); +} + +bool8 sub_8062D04(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_8061328(mapObject, sprite)) + { + mapObject->mapobj_bit_22 = 0; + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_8062D5C(struct MapObject *, struct Sprite *); + +bool8 sub_8062D30(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_8062B8C(mapObject, sprite, DIR_SOUTH, 1, 1); + return sub_8062D5C(mapObject, sprite); +} + +bool8 sub_8062D5C(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_8061328(mapObject, sprite)) + { + mapObject->mapobj_bit_22 = 0; + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_8062DB4(struct MapObject *, struct Sprite *); + +bool8 sub_8062D88(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_8062B8C(mapObject, sprite, DIR_NORTH, 1, 1); + return sub_8062DB4(mapObject, sprite); +} + +bool8 sub_8062DB4(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_8061328(mapObject, sprite)) + { + mapObject->mapobj_bit_22 = 0; + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_8062E0C(struct MapObject *, struct Sprite *); + +bool8 sub_8062DE0(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_8062B8C(mapObject, sprite, DIR_WEST, 1, 1); + return sub_8062E0C(mapObject, sprite); +} + +bool8 sub_8062E0C(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_8061328(mapObject, sprite)) + { + mapObject->mapobj_bit_22 = 0; + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_8062E64(struct MapObject *, struct Sprite *); + +bool8 sub_8062E38(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_8062B8C(mapObject, sprite, DIR_EAST, 1, 1); + return sub_8062E64(mapObject, sprite); +} + +bool8 sub_8062E64(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_8061328(mapObject, sprite)) + { + mapObject->mapobj_bit_22 = 0; + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_8062EBC(struct MapObject *, struct Sprite *); + +bool8 sub_8062E90(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_8062B8C(mapObject, sprite, DIR_SOUTH, 2, 0); + return sub_8062EBC(mapObject, sprite); +} + +bool8 sub_8062EBC(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_8061328(mapObject, sprite)) + { + mapObject->mapobj_bit_22 = 0; + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_8062F14(struct MapObject *, struct Sprite *); + +bool8 sub_8062EE8(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_8062B8C(mapObject, sprite, DIR_NORTH, 2, 0); + return sub_8062F14(mapObject, sprite); +} + +bool8 sub_8062F14(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_8061328(mapObject, sprite)) + { + mapObject->mapobj_bit_22 = 0; + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_8062F6C(struct MapObject *, struct Sprite *); + +bool8 sub_8062F40(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_8062B8C(mapObject, sprite, DIR_WEST, 2, 0); + return sub_8062F6C(mapObject, sprite); +} + +bool8 sub_8062F6C(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_8061328(mapObject, sprite)) + { + mapObject->mapobj_bit_22 = 0; + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_8062FC4(struct MapObject *, struct Sprite *); + +bool8 sub_8062F98(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_8062B8C(mapObject, sprite, DIR_EAST, 2, 0); + return sub_8062FC4(mapObject, sprite); +} + +bool8 sub_8062FC4(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (sub_8061328(mapObject, sprite)) + { + mapObject->mapobj_bit_22 = 0; + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_8062FF0(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_80616CC(mapObject, sprite, DIR_SOUTH, sub_805FDD8(DIR_SOUTH), 8); + return sub_8061714(mapObject, sprite); +} + +bool8 sub_8063028(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_80616CC(mapObject, sprite, DIR_NORTH, sub_805FDD8(DIR_NORTH), 8); + return sub_8061714(mapObject, sprite); +} + +bool8 sub_8063060(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_80616CC(mapObject, sprite, DIR_WEST, sub_805FDD8(DIR_WEST), 8); + return sub_8061714(mapObject, sprite); +} + +bool8 sub_8063098(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_80616CC(mapObject, sprite, DIR_EAST, sub_805FDD8(DIR_EAST), 8); + return sub_8061714(mapObject, sprite); +} + +void sub_80630D0(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 a3) +{ + sub_8060D20(mapObject, sprite, direction, a3); + StartSpriteAnim(sprite, sub_805FD98(mapObject->mapobj_unk_18)); + SeekSpriteAnim(sprite, 0); +} + +bool8 sub_8063128(struct MapObject *, struct Sprite *); + +bool8 sub_8063108(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_80630D0(mapObject, sprite, DIR_SOUTH, 1); + return sub_8063128(mapObject, sprite); +} + +bool8 sub_8063128(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (npc_obj_ministep_stop_on_arrival(mapObject, sprite)) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_8063168(struct MapObject *, struct Sprite *); + +bool8 sub_8063148(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_80630D0(mapObject, sprite, DIR_NORTH, 1); + return sub_8063168(mapObject, sprite); +} + +bool8 sub_8063168(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (npc_obj_ministep_stop_on_arrival(mapObject, sprite)) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_80631A8(struct MapObject *, struct Sprite *); + +bool8 sub_8063188(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_80630D0(mapObject, sprite, DIR_WEST, 1); + return sub_80631A8(mapObject, sprite); +} + +bool8 sub_80631A8(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (npc_obj_ministep_stop_on_arrival(mapObject, sprite)) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_80631E8(struct MapObject *, struct Sprite *); + +bool8 sub_80631C8(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_80630D0(mapObject, sprite, DIR_EAST, 1); + return sub_80631E8(mapObject, sprite); +} + +bool8 sub_80631E8(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (npc_obj_ministep_stop_on_arrival(mapObject, sprite)) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +void sub_8063208(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 a3) +{ + sub_8060D20(mapObject, sprite, direction, a3); + sub_805FE28(mapObject, sprite, sub_805FDD8(mapObject->mapobj_unk_18)); +} + +bool8 sub_8063258(struct MapObject *, struct Sprite *); + +bool8 sub_8063238(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_8063208(mapObject, sprite, DIR_SOUTH, 1); + return sub_8063258(mapObject, sprite); +} + +bool8 sub_8063258(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (npc_obj_ministep_stop_on_arrival(mapObject, sprite)) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_8063298(struct MapObject *, struct Sprite *); + +bool8 sub_8063278(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_8063208(mapObject, sprite, DIR_NORTH, 1); + return sub_8063298(mapObject, sprite); +} + +bool8 sub_8063298(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (npc_obj_ministep_stop_on_arrival(mapObject, sprite)) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_80632D8(struct MapObject *, struct Sprite *); + +bool8 sub_80632B8(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_8063208(mapObject, sprite, DIR_WEST, 1); + return sub_80632D8(mapObject, sprite); +} + +bool8 sub_80632D8(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (npc_obj_ministep_stop_on_arrival(mapObject, sprite)) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_8063318(struct MapObject *, struct Sprite *); + +bool8 sub_80632F8(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_8063208(mapObject, sprite, DIR_EAST, 1); + return sub_8063318(mapObject, sprite); +} + +bool8 sub_8063318(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (npc_obj_ministep_stop_on_arrival(mapObject, sprite)) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +void sub_8063338(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 a3) +{ + sub_8060D20(mapObject, sprite, direction, a3); + StartSpriteAnim(sprite, sub_805FDB8(mapObject->mapobj_unk_18)); + SeekSpriteAnim(sprite, 0); +} + +bool8 sub_8063390(struct MapObject *, struct Sprite *); + +bool8 sub_8063370(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_8063338(mapObject, sprite, DIR_SOUTH, 1); + return sub_8063390(mapObject, sprite); +} + +bool8 sub_8063390(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (npc_obj_ministep_stop_on_arrival(mapObject, sprite)) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_80633D0(struct MapObject *, struct Sprite *); + +bool8 sub_80633B0(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_8063338(mapObject, sprite, DIR_NORTH, 1); + return sub_80633D0(mapObject, sprite); +} + +bool8 sub_80633D0(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (npc_obj_ministep_stop_on_arrival(mapObject, sprite)) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_8063410(struct MapObject *, struct Sprite *); + +bool8 sub_80633F0(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_8063338(mapObject, sprite, DIR_WEST, 1); + return sub_8063410(mapObject, sprite); +} + +bool8 sub_8063410(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (npc_obj_ministep_stop_on_arrival(mapObject, sprite)) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_8063450(struct MapObject *, struct Sprite *); + +bool8 sub_8063430(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_8063338(mapObject, sprite, DIR_EAST, 1); + return sub_8063450(mapObject, sprite); +} + +bool8 sub_8063450(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (npc_obj_ministep_stop_on_arrival(mapObject, sprite)) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_8063470(struct MapObject *mapObject, struct Sprite *sprite) +{ + return TRUE; +} + +bool8 sub_8063474(struct MapObject *mapObject, struct Sprite *sprite) +{ + sprite->animPaused = 1; + return TRUE; +} + +void npc_obj_transfer_image_anim_pause_flag(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (mapObject->mapobj_bit_10) + { + sprite->animPaused = 1; + } +} + +void sub_80634A0(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (mapObject->mapobj_bit_11) + { + sprite->animPaused = 0; + mapObject->mapobj_bit_10 = 0; + mapObject->mapobj_bit_11 = 0; + } +} + +void sub_80634E8(struct MapObject *, struct Sprite *); +void npc_update_obj_anim_flag(struct MapObject *, struct Sprite *); + +void sub_80634D0(struct MapObject *mapObject, struct Sprite *sprite) +{ + sub_80634E8(mapObject, sprite); + npc_update_obj_anim_flag(mapObject, sprite); +} + +#ifdef NONMATCHING +void sub_80634E8(struct MapObject *mapObject, struct Sprite *sprite) +{ + u16 x; + u16 y; + s16 x2; + s16 y2; + const struct MapObjectGraphicsInfo *graphicsInfo; + mapObject->mapobj_bit_14 = 0; + graphicsInfo = GetFieldObjectGraphicsInfo(mapObject->graphicsId); + if (sprite->coordOffsetEnabled) + { + x = sprite->pos1.x + sprite->pos2.x + sprite->centerToCornerVecX + gSpriteCoordOffsetX; + y = sprite->pos1.y + sprite->pos2.y + sprite->centerToCornerVecY + gSpriteCoordOffsetY; + } else + { + x = sprite->pos1.x + sprite->pos2.x + sprite->centerToCornerVecX; + y = sprite->pos1.y + sprite->pos2.y + sprite->centerToCornerVecY; + } + x2 = graphicsInfo->width + x; // offending line + y2 = graphicsInfo->height + y; // similarly offending line + if ((s16)x >= 0x100 || x2 < -0x10) + { + mapObject->mapobj_bit_14 = 1; + } + if ((s16)y >= 0xB0 || y2 < -0x10) + { + mapObject->mapobj_bit_14 = 1; + } +} +#else +__attribute__((naked)) +void sub_80634E8(struct MapObject *mapObject, struct Sprite *sprite) { + asm(".syntax unified\n\ + push {r4-r6,lr}\n\ + adds r5, r0, 0\n\ + adds r4, r1, 0\n\ + ldrb r1, [r5, 0x1]\n\ + movs r0, 0x41\n\ + negs r0, r0\n\ + ands r0, r1\n\ + strb r0, [r5, 0x1]\n\ + ldrb r0, [r5, 0x5]\n\ + bl GetFieldObjectGraphicsInfo\n\ + adds r6, r0, 0\n\ + adds r0, r4, 0\n\ + adds r0, 0x3E\n\ + ldrb r1, [r0]\n\ + movs r0, 0x2\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _0806354C\n\ + ldrh r1, [r4, 0x24]\n\ + ldrh r0, [r4, 0x20]\n\ + adds r1, r0\n\ + adds r0, r4, 0\n\ + adds r0, 0x28\n\ + ldrb r0, [r0]\n\ + lsls r0, 24\n\ + asrs r0, 24\n\ + ldr r2, _08063544 @ =gSpriteCoordOffsetX\n\ + adds r0, r1\n\ + ldrh r2, [r2]\n\ + adds r0, r2\n\ + lsls r0, 16\n\ + lsrs r3, r0, 16\n\ + ldrh r1, [r4, 0x26]\n\ + ldrh r0, [r4, 0x22]\n\ + adds r1, r0\n\ + adds r0, r4, 0\n\ + adds r0, 0x29\n\ + ldrb r0, [r0]\n\ + lsls r0, 24\n\ + asrs r0, 24\n\ + ldr r2, _08063548 @ =gSpriteCoordOffsetY\n\ + adds r0, r1\n\ + ldrh r2, [r2]\n\ + adds r0, r2\n\ + b _08063574\n\ + .align 2, 0\n\ +_08063544: .4byte gSpriteCoordOffsetX\n\ +_08063548: .4byte gSpriteCoordOffsetY\n\ +_0806354C:\n\ + ldrh r1, [r4, 0x24]\n\ + ldrh r0, [r4, 0x20]\n\ + adds r1, r0\n\ + adds r0, r4, 0\n\ + adds r0, 0x28\n\ + ldrb r0, [r0]\n\ + lsls r0, 24\n\ + asrs r0, 24\n\ + adds r0, r1\n\ + lsls r0, 16\n\ + lsrs r3, r0, 16\n\ + ldrh r1, [r4, 0x26]\n\ + ldrh r0, [r4, 0x22]\n\ + adds r1, r0\n\ + adds r0, r4, 0\n\ + adds r0, 0x29\n\ + ldrb r0, [r0]\n\ + lsls r0, 24\n\ + asrs r0, 24\n\ + adds r0, r1\n\ +_08063574:\n\ + lsls r0, 16\n\ + lsrs r2, r0, 16\n\ + ldrh r0, [r6, 0x8]\n\ + adds r0, r3\n\ + lsls r0, 16\n\ + lsrs r1, r0, 16\n\ + ldrh r0, [r6, 0xA]\n\ + adds r0, r2\n\ + lsls r0, 16\n\ + lsrs r4, r0, 16\n\ + lsls r0, r3, 16\n\ + asrs r0, 16\n\ + cmp r0, 0xFF\n\ + bgt _0806359C\n\ + lsls r0, r1, 16\n\ + asrs r0, 16\n\ + movs r1, 0x10\n\ + negs r1, r1\n\ + cmp r0, r1\n\ + bge _080635A4\n\ +_0806359C:\n\ + ldrb r0, [r5, 0x1]\n\ + movs r1, 0x40\n\ + orrs r0, r1\n\ + strb r0, [r5, 0x1]\n\ +_080635A4:\n\ + lsls r0, r2, 16\n\ + asrs r0, 16\n\ + cmp r0, 0xAF\n\ + bgt _080635B8\n\ + lsls r0, r4, 16\n\ + asrs r0, 16\n\ + movs r1, 0x10\n\ + negs r1, r1\n\ + cmp r0, r1\n\ + bge _080635C0\n\ +_080635B8:\n\ + ldrb r0, [r5, 0x1]\n\ + movs r1, 0x40\n\ + orrs r0, r1\n\ + strb r0, [r5, 0x1]\n\ +_080635C0:\n\ + pop {r4-r6}\n\ + pop {r0}\n\ + bx r0\n\ +.syntax divided\n"); +} +#endif + +void npc_update_obj_anim_flag(struct MapObject *mapObject, struct Sprite *sprite) +{ + sprite->invisible = 0; + if (mapObject->mapobj_bit_13 || mapObject->mapobj_bit_14) + { + sprite->invisible = 1; + } +} diff --git a/src/field_map_obj_helpers.c b/src/field_map_obj_helpers.c index afc3c680c..17584c96a 100644 --- a/src/field_map_obj_helpers.c +++ b/src/field_map_obj_helpers.c @@ -1,14 +1,14 @@ #include "global.h" -#include "asm.h" -#include "asm_fieldmap.h" +#include "field_map_obj_helpers.h" #include "field_effect.h" +#include "field_ground_effect.h" +#include "field_map_obj.h" #include "sprite.h" typedef void (*SpriteStepFunc)(struct Sprite *sprite, u8 dir); extern u32 gUnknown_0202FF84[]; -extern struct UCoords16 gDirectionToVector[]; extern s16 gUnknown_08376194[]; extern SpriteStepFunc *gUnknown_08376180[]; extern s8 *gUnknown_083761D0[]; @@ -76,26 +76,26 @@ void Step1(struct Sprite *sprite, u8 dir) void Step2(struct Sprite *sprite, u8 dir) { - sprite->pos1.x += 2 * gDirectionToVector[dir].x; - sprite->pos1.y += 2 * gDirectionToVector[dir].y; + sprite->pos1.x += 2 * (u16) gDirectionToVector[dir].x; + sprite->pos1.y += 2 * (u16) gDirectionToVector[dir].y; } void Step3(struct Sprite *sprite, u8 dir) { - sprite->pos1.x += 2 * gDirectionToVector[dir].x + gDirectionToVector[dir].x; - sprite->pos1.y += 2 * gDirectionToVector[dir].y + gDirectionToVector[dir].y; + sprite->pos1.x += 2 * (u16) gDirectionToVector[dir].x + (u16) gDirectionToVector[dir].x; + sprite->pos1.y += 2 * (u16) gDirectionToVector[dir].y + (u16) gDirectionToVector[dir].y; } void Step4(struct Sprite *sprite, u8 dir) { - sprite->pos1.x += 4 * gDirectionToVector[dir].x; - sprite->pos1.y += 4 * gDirectionToVector[dir].y; + sprite->pos1.x += 4 * (u16) gDirectionToVector[dir].x; + sprite->pos1.y += 4 * (u16) gDirectionToVector[dir].y; } void Step8(struct Sprite *sprite, u8 dir) { - sprite->pos1.x += 8 * gDirectionToVector[dir].x; - sprite->pos1.y += 8 * gDirectionToVector[dir].y; + sprite->pos1.x += 8 * (u16) gDirectionToVector[dir].x; + sprite->pos1.y += 8 * (u16) gDirectionToVector[dir].y; } void oamt_npc_ministep_reset(struct Sprite *sprite, u8 a2, u8 a3) diff --git a/src/field_message_box.c b/src/field_message_box.c index 798725540..2cd2e66ab 100644 --- a/src/field_message_box.c +++ b/src/field_message_box.c @@ -1,14 +1,12 @@ #include "global.h" #include "field_message_box.h" +#include "menu.h" #include "string_util.h" #include "task.h" #include "text.h" #include "text_window.h" extern struct Window gFieldMessageBoxWindow; -extern u16 gMenuTextWindowContentTileOffset; - -extern u16 gMenuTextTileOffset; static u8 sMessageBoxMode; diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index 1e1162350..3cdb45584 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -1,23 +1,27 @@ #include "global.h" #include "field_player_avatar.h" -#include "asm.h" -#include "asm_fieldmap.h" #include "bike.h" #include "event_data.h" #include "field_effect.h" +#include "field_effect_helpers.h" +#include "field_ground_effect.h" #include "field_map_obj.h" #include "field_map_obj_helpers.h" +#include "fieldmap.h" #include "main.h" #include "map_object_constants.h" #include "menu.h" #include "metatile_behavior.h" +#include "party_menu.h" #include "rng.h" #include "rom4.h" +#include "rotating_gate.h" #include "script.h" #include "songs.h" #include "sound.h" #include "strings2.h" #include "task.h" +#include "tv.h" #include "wild_encounter.h" extern u32 gUnknown_0202FF84[]; @@ -29,41 +33,14 @@ static void MovePlayerAvatarUsingKeypadInput(u8 a, u16 b, u16 c); static void PlayerAllowForcedMovementIfMovingSameDirection(void); static u8 TryDoMetatileBehaviorForcedMovement(void); static u8 GetForcedMovementByMetatileBehavior(void); -u8 ForcedMovement_None(void); -u8 ForcedMovement_Slip(void); -u8 sub_8058AAC(void); -u8 sub_8058AC4(void); -u8 sub_8058ADC(void); -u8 sub_8058AF4(void); -u8 sub_8058B0C(void); -u8 sub_8058B24(void); -u8 sub_8058B3C(void); -u8 sub_8058B54(void); -u8 ForcedMovement_SlideSouth(void); -u8 ForcedMovement_SlideNorth(void); -u8 ForcedMovement_SlideWest(void); -u8 ForcedMovement_SlideEast(void); -u8 sub_8058C04(void); -u8 sub_8058C10(void); -u8 ForcedMovement_MuddySlope(void); static void MovePlayerNotOnBike(u8 a, u16 b); static u8 CheckMovementInputNotOnBike(u8 a); -void PlayerNotOnBikeNotMoving(u8 direction, u16 heldKeys); -void PlayerNotOnBikeTurningInPlace(u8 direction, u16 heldKeys); -void sub_8058D0C(u8 direction, u16 heldKeys); static u8 CheckForPlayerAvatarCollision(u8 a); static u8 sub_8058EF0(s16 a, s16 b, u8 c); static bool8 ShouldJumpLedge(s16 a, s16 b, u8 c); static u8 sub_8058F6C(s16 a, s16 b, u8 c); static void check_acro_bike_metatile(int unused1, int unused2, u8 c, u8 *d); static void DoPlayerAvatarTransition(void); -void nullsub_49(struct MapObject *a); -void PlayerAvatarTransition_Normal(struct MapObject *a); -void PlayerAvatarTransition_MachBike(struct MapObject *a); -void PlayerAvatarTransition_AcroBike(struct MapObject *a); -void PlayerAvatarTransition_Surfing(struct MapObject *a); -void PlayerAvatarTransition_Underwater(struct MapObject *a); -void sub_80591F4(struct MapObject *a); static bool8 player_is_anim_in_certain_ranges(void); static bool8 sub_80592A4(void); static bool8 PlayerIsAnimActive(void); @@ -72,32 +49,8 @@ static void PlayerNotOnBikeCollide(u8 a); static void PlayCollisionSoundIfNotFacingWarp(u8 a); static void sub_8059D60(struct MapObject *a); static void StartStrengthAnim(u8 a, u8 b); -u8 sub_8059E84(struct Task *task, struct MapObject *b, struct MapObject *c); -u8 sub_8059EA4(struct Task *task, struct MapObject *b, struct MapObject *c); -u8 sub_8059F40(struct Task *task, struct MapObject *b, struct MapObject *c); static void sub_8059F94(void); -u8 sub_805A000(struct Task *task, struct MapObject *mapObject); static void sub_805A06C(void); -u8 sub_805A0D8(struct Task *task, struct MapObject *mapObject); -u8 sub_805A100(struct Task *task, struct MapObject *mapObject); -u8 sub_805A178(struct Task *task, struct MapObject *mapObject); -u8 sub_805A1B8(struct Task *task, struct MapObject *mapObject); -u8 Fishing1(struct Task *task); -u8 Fishing2(struct Task *task); -u8 Fishing3(struct Task *task); -u8 Fishing4(struct Task *task); -u8 Fishing5(struct Task *task); -u8 Fishing6(struct Task *task); -u8 Fishing7(struct Task *task); -u8 Fishing8(struct Task *task); -u8 Fishing9(struct Task *task); -u8 Fishing10(struct Task *task); -u8 Fishing11(struct Task *task); -u8 Fishing12(struct Task *task); -u8 Fishing13(struct Task *task); -u8 Fishing14(struct Task *task); -u8 Fishing15(struct Task *task); -u8 Fishing16(struct Task *task); static bool8 (*const gUnknown_0830FB58[])(u8) = { diff --git a/src/field_poison.c b/src/field_poison.c index 4d4d4b975..8c9e029e1 100644 --- a/src/field_poison.c +++ b/src/field_poison.c @@ -1,13 +1,14 @@ #include "global.h" -#include "asm.h" +#include "field_poison.h" #include "field_message_box.h" +#include "fldeff_80C5CD4.h" #include "pokemon.h" +#include "pokemon_summary_screen.h" #include "script.h" #include "string_util.h" #include "task.h" #include "text.h" -extern struct Pokemon gPlayerParty[6]; extern u16 gScriptResult; extern u8 fieldPoisonText_PokemonFainted[]; diff --git a/src/field_region_map.c b/src/field_region_map.c index 66e3d968c..58b0e37bc 100644 --- a/src/field_region_map.c +++ b/src/field_region_map.c @@ -1,17 +1,12 @@ #include "global.h" -#include "asm.h" +#include "field_region_map.h" #include "main.h" #include "menu.h" #include "palette.h" +#include "region_map.h" #include "sprite.h" -#include "text.h" #include "strings2.h" - -extern void sub_80FA8EC(u32, u8); -extern void sub_80FAB10(void); -extern u8 sub_80FAB60(void); -extern void sub_80FBCF0(u32, u8); -extern void sub_80FBB3C(u16, u16); +#include "text.h" struct RegionMapStruct { @@ -30,12 +25,6 @@ struct UnkStruct extern struct UnkStruct unk_2000000; -void CB2_FieldInitRegionMap(void); -void CB2_FieldRegionMap(void); -void VBlankCB_FieldRegionMap(void); -void sub_813EFDC(void); -void sub_813F0C8(void); - void FieldInitRegionMap(MainCallback callback) { SetVBlankCallback(NULL); diff --git a/src/field_special_scene.c b/src/field_special_scene.c index 9e06ede81..c88ac8f65 100644 --- a/src/field_special_scene.c +++ b/src/field_special_scene.c @@ -1,11 +1,16 @@ #include "global.h" #include "field_special_scene.h" -#include "asm.h" #include "event_data.h" #include "field_camera.h" +#include "field_fadetransition.h" +#include "field_map_obj.h" +#include "field_specials.h" +#include "fieldmap.h" +#include "main.h" #include "palette.h" #include "rom4.h" #include "script.h" +#include "script_movement.h" #include "songs.h" #include "sound.h" #include "sprite.h" diff --git a/src/field_specials.c b/src/field_specials.c index 9f5a314e2..2cb2cf795 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -1,5 +1,6 @@ #include "global.h" -#include "asm.h" +#include "field_specials.h" +#include "diploma.h" #include "event_data.h" #include "field_player_avatar.h" #include "main.h" diff --git a/src/field_weather.c b/src/field_weather.c index ff5d5b507..5ff2eddf9 100644 --- a/src/field_weather.c +++ b/src/field_weather.c @@ -1,6 +1,5 @@ #include "global.h" #include "field_weather.h" -#include "asm.h" #include "palette.h" #include "sprite.h" #include "task.h" diff --git a/src/fieldmap.c b/src/fieldmap.c index 0301115d5..e573ec13a 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -1,21 +1,10 @@ #include "global.h" #include "fieldmap.h" #include "palette.h" - -struct BackupMapData -{ - s32 width; - s32 height; - u16 *map; -}; - -extern struct MapHeader * const get_mapheader_by_bank_and_number(u8, u8); -extern void mapheader_run_script_with_tag_x1(void); -extern void sub_80BB970(struct MapEvents *); -extern void sub_80BBCCC(); -extern void sub_8056670(); -extern void UpdateTVScreensOnMap(); -extern void sub_80538F0(u8 mapGroup, u8 mapNum); +#include "rom4.h" +#include "script.h" +#include "secret_base.h" +#include "tv.h" struct ConnectionFlags { @@ -31,9 +20,6 @@ struct Coords32 s32 y; }; -extern const struct Coords32 gUnknown_0821664C[]; -extern struct BackupMapData gUnknown_03004870; - EWRAM_DATA static u16 gUnknown_02029828[0x2800] = {0}; EWRAM_DATA struct MapHeader gMapHeader = {0}; EWRAM_DATA struct Camera gUnknown_0202E844 = {0}; @@ -41,18 +27,6 @@ EWRAM_DATA static struct ConnectionFlags gUnknown_0202E850 = {0}; static const struct ConnectionFlags sDummyConnectionFlags = {0}; -void mapheader_copy_mapdata_with_padding(struct MapHeader *mapHeader); -void sub_80560AC(struct MapHeader *); -void map_copy_with_padding(u16 *map, u16 width, u16 height); -void fillSouthConnection(struct MapHeader *, struct MapHeader *, s32); -void fillNorthConnection(struct MapHeader *, struct MapHeader *, s32); -void fillWestConnection(struct MapHeader *, struct MapHeader *, s32); -void fillEastConnection(struct MapHeader *, struct MapHeader *, s32); -u32 GetBehaviorByMetatileId(u16 metatile); -struct MapConnection *sub_8056A64(u8 direction, int x, int y); -bool8 sub_8056ABC(u8 direction, int x, int y, struct MapConnection *connection); -bool8 sub_8056B20(int x, int src_width, int dest_width, int offset); - struct MapHeader *mapconnection_get_mapheader(struct MapConnection *connection) { return get_mapheader_by_bank_and_number(connection->mapGroup, connection->mapNum); @@ -361,7 +335,7 @@ union Block u16 value; }; -u16 MapGridGetZCoordAt(int x, int y) +u8 MapGridGetZCoordAt(int x, int y) { u16 block; int i; @@ -387,7 +361,7 @@ u16 MapGridGetZCoordAt(int x, int y) return block >> 12; } -u16 MapGridIsImpassableAt(int x, int y) +u8 MapGridIsImpassableAt(int x, int y) { u16 block; int i; @@ -413,7 +387,7 @@ u16 MapGridIsImpassableAt(int x, int y) return (block & 0xc00) >> 10; } -u16 MapGridGetMetatileIdAt(int x, int y) +u32 MapGridGetMetatileIdAt(int x, int y) { u16 block; int i; @@ -453,7 +427,7 @@ u32 MapGridGetMetatileBehaviorAt(int x, int y) return GetBehaviorByMetatileId(metatile) & 0xff; } -u16 MapGridGetMetatileLayerTypeAt(int x, int y) +u8 MapGridGetMetatileLayerTypeAt(int x, int y) { u16 metatile; metatile = MapGridGetMetatileIdAt(x, y); diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c index 8fde74852..e837dbd45 100644 --- a/src/fldeff_cut.c +++ b/src/fldeff_cut.c @@ -1,22 +1,25 @@ #include "global.h" -#include "asm.h" +#include "fldeff_cut.h" #include "field_camera.h" #include "field_effect.h" #include "field_player_avatar.h" +#include "fieldmap.h" #include "map_obj_lock.h" #include "metatile_behavior.h" #include "metatile_behaviors.h" +#include "pokemon_menu.h" #include "rom4.h" #include "rom6.h" #include "script.h" #include "songs.h" #include "sound.h" #include "sprite.h" +#include "task.h" #include "trig.h" extern u8 gCutGrassSpriteArray[8]; // seems to be an array of 8 sprite IDs -extern void (*gUnknown_0300485C)(void); +extern void (*gFieldCallback)(void); extern void (*gUnknown_03005CE4)(void); extern struct SpriteTemplate gSpriteTemplate_CutGrass; @@ -28,18 +31,6 @@ extern u32 gUnknown_0202FF84[]; extern u8 UseCutScript; -extern void sub_808AB90(void); // unknown args -extern void sub_805BCC0(s16 x, s16 y); - -void sub_80A2634(void); -void sub_80A25E8(void); -void sub_80A2684(void); -void sub_80A27A8(s16, s16); -void sub_80A28F4(s16, s16); -void objc_8097BBC(struct Sprite *sprite); -void sub_80A2AB8(void); -void sub_80A2B00(void); // unknown args - bool8 SetUpFieldMove_Cut(void) { s16 x, y; @@ -48,7 +39,7 @@ bool8 SetUpFieldMove_Cut(void) if(npc_before_player_of_type(0x52) == TRUE) // is in front of tree? { - gUnknown_0300485C = sub_808AB90; + gFieldCallback = sub_808AB90; gUnknown_03005CE4 = sub_80A2634; return TRUE; } @@ -67,7 +58,7 @@ bool8 SetUpFieldMove_Cut(void) if(MetatileBehavior_IsPokeGrass(tileBehavior) == TRUE || MetatileBehavior_IsAshGrass(tileBehavior) == TRUE) { - gUnknown_0300485C = sub_808AB90; + gFieldCallback = sub_808AB90; gUnknown_03005CE4 = sub_80A25E8; return TRUE; } diff --git a/src/fldeff_softboiled.c b/src/fldeff_softboiled.c index d0ee712af..45f319c62 100644 --- a/src/fldeff_softboiled.c +++ b/src/fldeff_softboiled.c @@ -1,7 +1,9 @@ #include "global.h" -#include "asm.h" +#include "fldeff_softboiled.h" #include "menu.h" +#include "party_menu.h" #include "pokemon.h" +#include "pokemon_menu.h" #include "songs.h" #include "sound.h" #include "sprite.h" @@ -62,10 +64,6 @@ extern u8 gLastFieldPokeMenuOpened; extern u8 unk_2000000[]; extern u8 gUnknown_0202E8F4; -// Public -bool8 SetUpFieldMove_SoftBoiled(void); -void sub_8133D28(u8 taskid); - // Static static void sub_8133D50(u8 taskId); static void sub_8133E74(u8 taskId); diff --git a/src/fldeff_strength.c b/src/fldeff_strength.c index f9db40a67..1edae09d4 100644 --- a/src/fldeff_strength.c +++ b/src/fldeff_strength.c @@ -1,8 +1,9 @@ #include "global.h" -#include "asm.h" #include "braille_puzzles.h" #include "field_effect.h" +#include "party_menu.h" #include "pokemon.h" +#include "pokemon_menu.h" #include "rom6.h" #include "script.h" #include "task.h" @@ -16,7 +17,7 @@ extern u32 gUnknown_0202FF84[]; extern u8 gLastFieldPokeMenuOpened; extern u16 gScriptResult; -extern void (*gUnknown_0300485C)(void); +extern void (*gFieldCallback)(void); extern void (*gUnknown_03005CE4)(void); extern u8 UseStrengthScript[]; @@ -26,7 +27,7 @@ bool8 SetUpFieldMove_Strength(void) if (ShouldDoBrailleStrengthEffect()) { gScriptResult = gLastFieldPokeMenuOpened; - gUnknown_0300485C = sub_808AB90; + gFieldCallback = sub_808AB90; gUnknown_03005CE4 = sub_811AA38; } else @@ -34,7 +35,7 @@ bool8 SetUpFieldMove_Strength(void) if (npc_before_player_of_type(87) != TRUE) return 0; gScriptResult = gLastFieldPokeMenuOpened; - gUnknown_0300485C = sub_808AB90; + gFieldCallback = sub_808AB90; gUnknown_03005CE4 = sub_811AA18; } diff --git a/src/fldeff_sweetscent.c b/src/fldeff_sweetscent.c index 4e8214b07..6e782f4ac 100644 --- a/src/fldeff_sweetscent.c +++ b/src/fldeff_sweetscent.c @@ -1,8 +1,8 @@ #include "global.h" -#include "asm.h" #include "field_effect.h" #include "field_player_avatar.h" #include "palette.h" +#include "pokemon_menu.h" #include "rom6.h" #include "script.h" #include "sound.h" @@ -18,14 +18,14 @@ static void sub_812C118(u8); extern u32 gUnknown_0202FF84[]; extern u8 gLastFieldPokeMenuOpened; -extern void (*gUnknown_0300485C)(void); +extern void (*gFieldCallback)(void); extern void (*gUnknown_03005CE4)(void); extern u8 SweetScentNothingHereScript[]; bool8 SetUpFieldMove_SweetScent(void) { - gUnknown_0300485C = sub_808AB90; + gFieldCallback = sub_808AB90; gUnknown_03005CE4 = sub_812BFD4; return TRUE; } diff --git a/src/fldeff_teleport.c b/src/fldeff_teleport.c index 0e6933649..df12d3072 100644 --- a/src/fldeff_teleport.c +++ b/src/fldeff_teleport.c @@ -1,26 +1,23 @@ #include "global.h" -#include "asm.h" +#include "fldeff_teleport.h" #include "field_effect.h" #include "field_player_avatar.h" +#include "pokemon_menu.h" #include "rom4.h" #include "rom6.h" - -extern void sub_8087BA8(void); +#include "task.h" extern u32 gUnknown_0202FF84[]; -extern void (*gUnknown_0300485C)(void); +extern void (*gFieldCallback)(void); extern u8 gLastFieldPokeMenuOpened; extern void (*gUnknown_03005CE4)(void); -void hm_teleport_run_dp02scr(void); -void sub_814A404(void); - bool8 SetUpFieldMove_Teleport(void) { if (is_light_level_1_2_3_or_6(gMapHeader.mapType) == TRUE) { - gUnknown_0300485C = sub_808AB90; + gFieldCallback = sub_808AB90; gUnknown_03005CE4 = hm_teleport_run_dp02scr; return TRUE; } diff --git a/src/hof_pc.c b/src/hof_pc.c index fcbc3f7e1..4646d171c 100644 --- a/src/hof_pc.c +++ b/src/hof_pc.c @@ -1,4 +1,5 @@ #include "global.h" +#include "hall_of_fame.h" #include "main.h" #include "palette.h" #include "rom4.h" @@ -6,7 +7,7 @@ #include "script_menu.h" #include "task.h" -extern void sub_81428CC(void); +extern void (*gFieldCallback)(void); extern void (*gUnknown_0300485C)(void); static void ReshowPCMenuAfterHallOfFamePC(void); @@ -21,7 +22,7 @@ void AccessHallOfFamePC(void) void ReturnFromHallOfFamePC(void) { SetMainCallback2(c2_exit_to_overworld_2_switch); - gUnknown_0300485C = ReshowPCMenuAfterHallOfFamePC; + gFieldCallback = ReshowPCMenuAfterHallOfFamePC; } static void ReshowPCMenuAfterHallOfFamePC(void) diff --git a/src/intro.c b/src/intro.c index ba2197ae7..396f5e5df 100644 --- a/src/intro.c +++ b/src/intro.c @@ -1,9 +1,10 @@ #include "global.h" #include "gba/m4a_internal.h" #include "intro.h" -#include "asm.h" #include "data2.h" #include "decompress.h" +#include "hall_of_fame.h" +#include "intro_credits_graphics.h" #include "libgncmultiboot.h" #include "link.h" #include "m4a.h" @@ -18,9 +19,7 @@ #include "task.h" #include "title_screen.h" #include "trig.h" - -extern void *species_and_otid_get_pal(/*TODO: arg types*/); -extern void sub_8143680(int, u8); +#include "unknown_task.h" extern struct SpriteTemplate gUnknown_02024E8C; extern u16 gUnknown_02039318; @@ -32,17 +31,10 @@ extern struct GcmbStruct gMultibootProgramStruct; extern u16 gSaveFileStatus; extern u8 gReservedSpritePaletteCount; extern const u8 gInterfaceGfx_PokeBall[]; -extern const u16 gInterfacePal_PokeBall[]; -extern const struct SpriteSheet gIntro2BrendanSpriteSheet; -extern const struct SpriteSheet gIntro2MaySpriteSheet; -extern const struct SpriteSheet gIntro2BicycleSpriteSheet; -extern const struct SpriteSheet gIntro2LatiosSpriteSheet; -extern const struct SpriteSheet gIntro2LatiasSpriteSheet; -extern const struct SpritePalette gIntro2SpritePalettes[]; +extern const u8 gInterfacePal_PokeBall[]; extern const u8 gIntroCopyright_Gfx[]; extern const u16 gIntroCopyright_Pal[]; extern const u16 gIntroCopyright_Tilemap[]; -extern const u16 gUnknown_08393E64[]; extern void *const gUnknown_0840B5A0[]; //-------------------------------------------------- @@ -419,12 +411,12 @@ static const struct SpriteTemplate gSpriteTemplate_840AFF0 = .affineAnims = gDummySpriteAffineAnimTable, .callback = sub_813DA64, }; -const struct SpriteSheet gUnknown_0840B008[] = +const struct CompressedSpriteSheet gUnknown_0840B008[] = { {gIntroTiles, 0x1400, 2000}, {NULL}, }; -const struct SpriteSheet gUnknown_0840B018[] = +const struct CompressedSpriteSheet gUnknown_0840B018[] = { {gIntro1EonTiles, 0x400, 2002}, {NULL}, @@ -746,17 +738,17 @@ static const struct SpriteTemplate gSpriteTemplate_840B1F4 = .affineAnims = gDummySpriteAffineAnimTable, .callback = sub_813EDFC, }; -const struct SpriteSheet gIntro3PokeballGfx_Table[] = +const struct CompressedSpriteSheet gIntro3PokeballGfx_Table[] = { {gInterfaceGfx_PokeBall, 0x100, 2002}, {NULL}, }; -const struct SpriteSheet gIntro3MiscGfx_Table[] = +const struct CompressedSpriteSheet gIntro3MiscGfx_Table[] = { {gIntro3MiscTiles, 0xa00, 2003}, {NULL}, }; -const struct SpritePalette gInterfacePokeballPal_Table[] = +const struct CompressedSpritePalette gInterfacePokeballPal_Table[] = { {gInterfacePal_PokeBall, 2002}, {NULL}, @@ -1780,15 +1772,15 @@ void sub_813CE30(u16 scrX, u16 scrY, u16 zoom, u16 alpha) static u16 sub_813CE88(u16 species, s16 x, s16 y, u16 d, u8 front) { - void *pal; + const u8 *lzPaletteData; u8 spriteId; if (front) LoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, 0x2000000, gUnknown_0840B5A0[d], species, 0, 1); else LoadSpecialPokePic(&gMonBackPicTable[species], gMonBackPicCoords[species].coords, gMonBackPicCoords[species].y_offset, 0x2000000, gUnknown_0840B5A0[d], species, 0, 0); - pal = species_and_otid_get_pal(species, 0, 0xFFFF); - LoadCompressedPalette(pal, 0x100 + d * 0x10, 0x20); + lzPaletteData = species_and_otid_get_pal(species, 0, 0xFFFF); + LoadCompressedPalette(lzPaletteData, 0x100 + d * 0x10, 0x20); sub_8143648(d, d); spriteId = CreateSprite(&gUnknown_02024E8C, x, y, (d + 1) * 4); gSprites[spriteId].oam.paletteNum = d; diff --git a/src/item.c b/src/item.c index 742a1462f..2eb013490 100644 --- a/src/item.c +++ b/src/item.c @@ -1,11 +1,10 @@ #include "global.h" #include "item.h" #include "items.h" +#include "berry.h" #include "string_util.h" #include "strings.h" -extern struct Berry *GetBerryInfo(u8 berry); - extern u8 gUnknown_02038560; extern struct Item gItems[]; diff --git a/src/item_use.c b/src/item_use.c index d1c1dbf2a..a92161e9a 100644 --- a/src/item_use.c +++ b/src/item_use.c @@ -1,15 +1,19 @@ #include "global.h" -#include "asm.h" +#include "item_use.h" #include "battle.h" #include "berry.h" +#include "bike.h" #include "coins.h" #include "data2.h" #include "event_data.h" +#include "field_effect.h" +#include "field_fadetransition.h" #include "field_map_obj_helpers.h" #include "field_player_avatar.h" #include "field_weather.h" #include "fieldmap.h" #include "item.h" +#include "item_menu.h" #include "items.h" #include "mail.h" #include "main.h" @@ -18,7 +22,12 @@ #include "menu_helpers.h" #include "metatile_behavior.h" #include "palette.h" +#include "party_menu.h" +#include "pokeblock.h" +#include "pokemon_item_effect.h" +#include "pokemon_menu.h" #include "rom4.h" +#include "rom_8094928.h" #include "script.h" #include "songs.h" #include "sound.h" @@ -28,74 +37,22 @@ #include "vars.h" extern void (* gUnknown_03005D00)(u8); +extern void (* gFieldCallback)(void); extern void (* gUnknown_0300485C)(void); -extern void (* gUnknown_03004AE4)(u8); +extern void (* gUnknown_03004AE4)(u8, u16, TaskFunc); extern u8 gUnknown_02038561; extern u8 gLastFieldPokeMenuOpened; -extern u8 gUnknown_02024E6C; +extern u8 gBankInMenu; extern u8 gUnknown_081A1654[]; extern u8 gUnknown_081A168F[]; -extern u16 gUnknown_02024A6A[]; - -extern void HandleItemMenuPaletteFade(u8); -extern void ExecuteItemUseFromBlackPalette(void); -extern void DisplayItemMessageOnField(u8, const u8 *, TaskFunc, u16); -extern void CleanUpItemMenuMessage(u8); -extern void CleanUpOverworldMessage(u8); -extern void ItemUseOnFieldCB_Bike(u8); -extern void ItemUseOnFieldCB_Rod(u8); -extern void ItemUseOnFieldCB_Itemfinder(u8); -extern void sub_80A5D04(void); -extern bool8 IsBikingDisallowedByPlayer(void); -extern void GetOnOffBike(u8); -extern struct MapConnection *sub_8056BA0(s16 x, s16 y); // fieldmap.c -extern void sub_810BA7C(u8); -extern void sub_8080E28(void); -extern void UseMedicine(u8); -extern void sub_8070048(u8); -extern void DoPPRecoveryItemEffect(u8); -extern void DoPPUpItemEffect(u8); -extern void DoRareCandyItemEffect(u8); -extern void DoEvolutionStoneItemEffect(u8); -extern u16 ItemIdToBattleMoveId(u16); -extern void sub_80A3FA0(u16 *, u32, u32, u32, u32, u32); -extern void sub_80A3E0C(void); -extern void TeachMonTMMove(u8); -extern void sub_80878A8(void); -extern void sub_8053014(void); -extern void sub_80A7094(u8); -extern bool8 ExecuteTableBasedItemEffect_(struct Pokemon *mon, u16, u8, u16); -extern void sub_8094E4C(void); -extern u8 ExecuteTableBasedItemEffect__(u8 u8, u16 u16, int i); -extern u8 GetItemEffectType(); -extern void sub_808B020(void); -extern void sub_810B96C(void); +extern u16 gBattlePartyID[]; extern u16 gScriptItemId; extern u16 gBattleTypeFlags; -bool8 ItemfinderCheckForHiddenItems(struct MapEvents *events, u8 taskId); -void RunItemfinderResults(u8); -void ExitItemfinder(u8); -void sub_80C9720(u8); -void sub_80C9838(u8, s16, s16); -u8 GetPlayerDirectionTowardsHiddenItem(s16, s16); -void SetPlayerDirectionTowardsItem(u8); -void DisplayItemRespondingMessageAndExitItemfinder(u8); -void RotatePlayerAndExitItemfinder(u8); -void sub_80C9D00(u8); -void sub_80C9D74(u8); -void sub_80C9EE4(u8); -void sub_80C9F10(u8); -void sub_80C9F80(u8); -void sub_80C9FC0(u8); -void ItemUseOutOfBattle_TMHM(u8); -void ItemUseOutOfBattle_EvolutionStone(u8); -void ItemUseOutOfBattle_CannotUse(u8); - static const u8 gSSTidalBetaString[] = _("この チケットで ふねに のりほうだい\nはやく のってみたいな"); static const u8 gSSTidalBetaString2[] = _("この チケットで ふねに のりほうだい\nはやく のってみたいな"); @@ -150,7 +107,7 @@ void SetUpItemUseOnFieldCallback(u8 taskId) { if (gTasks[taskId].data[2] != 1) { - gUnknown_0300485C = (void *)ExecuteItemUseFromBlackPalette; + gFieldCallback = (void *)ExecuteItemUseFromBlackPalette; ItemMenu_ConfirmNormalFade(taskId); } else @@ -772,7 +729,7 @@ void ItemUseOutOfBattle_PokeblockCase(u8 taskId) } else { - gUnknown_0300485C = (void *)sub_8080E28; + gFieldCallback = (void *)sub_8080E28; sub_810BA7C(1); ItemMenu_ConfirmComplexFade(taskId); } @@ -825,7 +782,7 @@ void sub_80C9C7C(u8 taskId) if(IsPlayerFacingPlantedBerryTree() == TRUE) { gUnknown_03005D00 = sub_80C9D00; - gUnknown_0300485C = ExecuteItemUseFromBlackPalette; + gFieldCallback = ExecuteItemUseFromBlackPalette; gTasks[taskId].data[8] = (u32)c2_exit_to_overworld_2_switch >> 16; gTasks[taskId].data[9] = (u32)c2_exit_to_overworld_2_switch; gTasks[taskId].func = HandleItemMenuPaletteFade; @@ -944,7 +901,7 @@ void sub_80C9F80(u8 var) { DisplayYesNoMenu(7, 7, 1); sub_80A3FA0(gBGTilemapBuffers[1], 8, 8, 5, 4, 1); - sub_80F914C(var, &gUnknown_083D61F4); + DoYesNoFuncWithChoice(var, &gUnknown_083D61F4); } void sub_80C9FC0(u8 var) @@ -1086,7 +1043,7 @@ void sub_80CA2BC(u8 taskId) void ItemUseInBattle_StatIncrease(u8 taskId) { - u16 partyId = gUnknown_02024A6A[gUnknown_02024E6C]; + u16 partyId = gBattlePartyID[gBankInMenu]; MenuZeroFillWindowRect(0, 0xD, 0xD, 0x14); diff --git a/src/link.c b/src/link.c index 17e78e0a5..5f6c32370 100644 --- a/src/link.c +++ b/src/link.c @@ -1,7 +1,9 @@ #include "global.h" #include "link.h" -#include "asm.h" #include "battle.h" +#include "berry.h" +#include "berry_blender.h" +#include "hall_of_fame.h" #include "main.h" #include "menu.h" #include "palette.h" @@ -75,6 +77,7 @@ static void sub_80083E0(void); static void sub_8008454(void); static void sub_80084C8(void); static void sub_80084F4(void); + static void CheckErrorStatus(void); static void CB2_PrintErrorMessage(void); static u8 IsSioMultiMaster(void); diff --git a/src/load_save.c b/src/load_save.c index 0add1b0e3..0630f060c 100644 --- a/src/load_save.c +++ b/src/load_save.c @@ -1,7 +1,6 @@ #include "global.h" #include "gba/flash_internal.h" #include "load_save.h" -#include "asm.h" #include "main.h" #include "pokemon.h" #include "rom4.h" diff --git a/src/lottery_corner.c b/src/lottery_corner.c index 66e1238ef..c2c25b9ac 100644 --- a/src/lottery_corner.c +++ b/src/lottery_corner.c @@ -9,7 +9,6 @@ extern u16 gScriptResult; extern u16 gSpecialVar_0x8004; -extern struct Pokemon gPlayerParty[6]; extern struct PokemonStorage gPokemonStorage; extern u16 gSpecialVar_0x8005; extern u16 gSpecialVar_0x8006; diff --git a/src/mail.c b/src/mail.c index 4ec107011..658d37976 100644 --- a/src/mail.c +++ b/src/mail.c @@ -1,16 +1,20 @@ #include "global.h" #include "mail.h" -#include "asm.h" +#include "easy_chat.h" #include "items.h" +#include "mail_data.h" #include "menu.h" +#include "menu_helpers.h" #include "name_string_util.h" #include "palette.h" +#include "pokemon_icon.h" #include "rom4.h" #include "sprite.h" #include "string_util.h" #include "strings2.h" #include "task.h" #include "text.h" +#include "unknown_task.h" struct UnkMailStruct { @@ -84,7 +88,7 @@ static void sub_80F8FB4(void); void HandleReadMail(struct MailStruct *arg0, MainCallback arg1, bool8 arg2) { u16 mailDesign; - u8 buffer[4]; + u16 buffer[2]; ewram0.varFF = GAME_LANGUAGE; ewram0.var100 = 1; diff --git a/src/mail_data.c b/src/mail_data.c index 23d22e21f..ae3f4b3e8 100644 --- a/src/mail_data.c +++ b/src/mail_data.c @@ -1,15 +1,12 @@ #include "global.h" +#include "mail_data.h" #include "items.h" #include "name_string_util.h" #include "pokemon.h" +#include "pokemon_icon.h" #include "species.h" #include "text.h" -void ClearMailStruct(struct MailStruct *); -u16 SpeciesToMailSpecies(u16, u32); -bool8 ItemIsMail(u16); -u16 GetUnownLetterByPersonality(u32); - void ClearMailData(void) { u8 i; diff --git a/src/main.c b/src/main.c index 19891459c..afaa0e77a 100644 --- a/src/main.c +++ b/src/main.c @@ -2,17 +2,18 @@ #include "gba/flash_internal.h" #include "gba/m4a_internal.h" #include "main.h" -#include "asm.h" #include "intro.h" #include "link.h" #include "load_save.h" #include "m4a.h" #include "play_time.h" #include "rng.h" +#include "rom3.h" #include "rom4.h" #include "rtc.h" #include "siirtc.h" #include "sound.h" +#include "unknown_task.h" extern struct SoundInfo gSoundInfo; extern u32 IntrMain[]; diff --git a/src/main_menu.c b/src/main_menu.c index b2d08698b..09fd06d9e 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -1,14 +1,15 @@ #include "global.h" #include "main_menu.h" -#include "asm.h" #include "data2.h" #include "decompress.h" #include "event_data.h" +#include "field_effect.h" #include "menu.h" #include "mystery_event_menu.h" #include "naming_screen.h" #include "option_menu.h" #include "palette.h" +#include "pokeball.h" #include "rom4.h" #include "rtc.h" #include "save_menu_util.h" @@ -20,6 +21,7 @@ #include "task.h" #include "text.h" #include "title_screen.h" +#include "unknown_task.h" #define BirchSpeechUpdateWindowText() ((u8)MenuUpdateWindowText_OverrideLineLength(24)) @@ -945,14 +947,14 @@ static void Task_NewGameSpeech16(u8 taskId) switch (GenderMenuProcessInput()) { case MALE: - sub_8072DEC(); + HandleDestroyMenuCursors(); PlaySE(SE_SELECT); gSaveBlock2.playerGender = MALE; MenuZeroFillWindowRect(2, 4, 8, 9); gTasks[taskId].func = Task_NewGameSpeech19; break; case FEMALE: - sub_8072DEC(); + HandleDestroyMenuCursors(); PlaySE(SE_SELECT); gSaveBlock2.playerGender = FEMALE; MenuZeroFillWindowRect(2, 4, 8, 9); @@ -1048,7 +1050,7 @@ static void Task_NewGameSpeech21(u8 taskId) case 2: case 3: case 4: - sub_8072DEC(); + HandleDestroyMenuCursors(); PlaySE(SE_SELECT); MenuZeroFillWindowRect(2, 1, 22, 12); SetPresetPlayerName(selection); @@ -1060,7 +1062,7 @@ static void Task_NewGameSpeech21(u8 taskId) gTasks[taskId].func = Task_NewGameSpeech22; break; case -1: //B button - sub_8072DEC(); + HandleDestroyMenuCursors(); PlaySE(SE_SELECT); MenuZeroFillWindowRect(2, 1, 22, 12); gTasks[taskId].func = Task_NewGameSpeech14; //Go back to gender menu diff --git a/src/map_name_popup.c b/src/map_name_popup.c index c10a3f9de..303cc3d07 100644 --- a/src/map_name_popup.c +++ b/src/map_name_popup.c @@ -1,7 +1,8 @@ #include "global.h" -#include "asm.h" +#include "map_name_popup.h" #include "event_data.h" #include "menu.h" +#include "region_map.h" #include "task.h" EWRAM_DATA static u8 sTaskId = 0; diff --git a/src/map_obj_lock.c b/src/map_obj_lock.c index 713ca03f9..bd40bcacc 100644 --- a/src/map_obj_lock.c +++ b/src/map_obj_lock.c @@ -1,8 +1,9 @@ #include "global.h" #include "map_obj_lock.h" -#include "asm.h" +#include "field_map_obj.h" #include "field_map_obj_helpers.h" #include "field_player_avatar.h" +#include "script_movement.h" #include "task.h" extern u16 gScriptFacing; diff --git a/src/matsuda_debug_menu.c b/src/matsuda_debug_menu.c index 018e36567..3665cabd8 100644 --- a/src/matsuda_debug_menu.c +++ b/src/matsuda_debug_menu.c @@ -1,7 +1,8 @@ #include "global.h" #include "matsuda_debug_menu.h" -#include "asm.h" #include "contest.h" +#include "contest_link_80C2020.h" +#include "contest_link_80C857C.h" #include "data2.h" #include "link.h" #include "main.h" @@ -13,6 +14,7 @@ #include "string_util.h" #include "task.h" #include "text.h" +#include "unknown_task.h" extern u8 gUnknown_0203856C; extern u8 gUnknown_0203857D[][64]; @@ -27,8 +29,6 @@ extern u8 gContestPlayerMonIndex; extern u16 gScriptContestCategory; extern u16 gScriptContestRank; -extern struct Window gMenuWindow; - extern u16 gUnknown_030042A4; extern u16 gUnknown_030042A0; extern u16 gUnknown_030042C0; @@ -84,8 +84,6 @@ static void sub_80AA10C(void); static void sub_80AA5BC(u8); static void sub_80AA614(u8, u8); static void sub_80AAD08(struct Sprite *, s8); -extern void sub_80AB47C(void); -extern int sub_80B2A7C(u8); //Don't know return type size u8 unref_sub_80A9B28(void) { diff --git a/src/mauville_old_man.c b/src/mauville_old_man.c index d6fb33917..93684fc60 100644 --- a/src/mauville_old_man.c +++ b/src/mauville_old_man.c @@ -1,20 +1,16 @@ #include "global.h" -#include "asm.h" +#include "mauville_old_man.h" +#include "easy_chat.h" #include "menu.h" #include "rng.h" #include "script.h" #include "string_util.h" #include "strings.h" +#include "trader.h" extern u16 gScriptResult; extern u16 gSpecialVar_0x8004; -extern void sub_80F83F8(void); -extern void sub_81099CC(void); -extern void sub_80F83D0(void); -extern void sub_80F7F80(u8); -extern u16 sub_80EB8EC(void); -extern void sub_80F7DC0(void); extern u32 gUnknown_083E5388[]; extern u32 gUnknown_083E53A8[]; diff --git a/src/menu.c b/src/menu.c index 61eaebb6f..d84a4c3c5 100644 --- a/src/menu.c +++ b/src/menu.c @@ -54,7 +54,7 @@ void CloseMenu(void) MenuZeroFillScreen(); sub_8064E2C(); ScriptContext2_Disable(); - sub_8072DEC(); + HandleDestroyMenuCursors(); } void AppendToList(u8 *list, u8 *pindex, u32 value) @@ -270,14 +270,14 @@ s8 ProcessMenuInput(void) { PlaySE(SE_SELECT); if (gMenu.menu_field_7) - sub_8072DEC(); + HandleDestroyMenuCursors(); return gMenu.cursorPos; } if (gMain.newKeys & B_BUTTON) { if (gMenu.menu_field_7) - sub_8072DEC(); + HandleDestroyMenuCursors(); return -1; } @@ -305,14 +305,14 @@ s8 ProcessMenuInputNoWrap(void) { PlaySE(SE_SELECT); if (gMenu.menu_field_7) - sub_8072DEC(); + HandleDestroyMenuCursors(); return gMenu.cursorPos; } if (gMain.newKeys & B_BUTTON) { if (gMenu.menu_field_7) - sub_8072DEC(); + HandleDestroyMenuCursors(); return -1; } @@ -517,7 +517,7 @@ s8 sub_80727CC(void) if (gMain.newKeys & A_BUTTON) { if (gMenu.menu_field_7) - sub_8072DEC(); + HandleDestroyMenuCursors(); PlaySE(SE_SELECT); return GetMenuCursorPos(); } @@ -525,7 +525,7 @@ s8 sub_80727CC(void) if (gMain.newKeys & B_BUTTON) { if (gMenu.menu_field_7) - sub_8072DEC(); + HandleDestroyMenuCursors(); return -1; } @@ -611,7 +611,7 @@ u8 unref_sub_8072A5C(u8 *dest, u8 *src, u8 left, u16 top, u8 width, u32 a6) return sub_8004FD0(gMenuWindowPtr, dest, src, gMenuTextTileOffset, left, top, width, a6); } -int sub_8072AB0(u8 *str, u8 left, u16 top, u8 width, u8 height, u32 a6) +int sub_8072AB0(const u8 *str, u8 left, u16 top, u8 width, u8 height, u32 a6) { u8 newlineCount = sub_8004FD0(gMenuWindowPtr, NULL, str, gMenuTextTileOffset, left, top, width, a6); @@ -629,7 +629,7 @@ void MenuPrint_RightAligned(u8 *str, u8 left, u8 top) sub_8004D38(gMenuWindowPtr, str, gMenuTextTileOffset, left, top); } -void sub_8072B80(u8 *a1, u8 a2, u8 a3, u8 *a4) +void sub_8072B80(const u8 *a1, u8 a2, u8 a3, const u8 *a4) { u8 buffer[64]; u8 width = GetStringWidth(gMenuWindowPtr, a4); @@ -731,7 +731,7 @@ void sub_8072DDC(u8 a1) sub_8072DCC(8 * a1); } -void sub_8072DEC(void) +void HandleDestroyMenuCursors(void) { - sub_814A7FC(); + DestroyMenuCursor(); } diff --git a/src/menu_cursor.c b/src/menu_cursor.c index fa28332df..cfb38ca47 100644 --- a/src/menu_cursor.c +++ b/src/menu_cursor.c @@ -45,7 +45,7 @@ u8 sub_814A5C0(u8 a1, u16 a2, u8 a3, u16 a4, u8 a5) struct Sprite *v10; if (gUnknown_0203A3D0 != 0x40 || gUnknown_0203A3D1 != 0x40) - sub_814A7FC(); + DestroyMenuCursor(); v9 = 1; if (a2 == 0xFFFF) @@ -120,7 +120,7 @@ u8 unref_sub_814A7AC(u8 a1, u16 a2, u8 a3) return sub_814A758(a1, val1, val2, a3); } -void sub_814A7FC(void) +void DestroyMenuCursor(void) { if (gUnknown_0203A3D0 != 0x40) { diff --git a/src/metatile_behavior.c b/src/metatile_behavior.c index befd6f20d..d05ba0b89 100644 --- a/src/metatile_behavior.c +++ b/src/metatile_behavior.c @@ -1,4 +1,5 @@ #include "global.h" +#include "metatile_behavior.h" #include "metatile_behaviors.h" #define TILE_ATTRIBUTES(three, two, one) (((one) ? 1 : 0) | ((two) ? 2 : 0) | ((three) ? 4 : 0)) @@ -247,8 +248,6 @@ static const u8 sTileBitAttributes[] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE) }; -bool8 MetatileBehavior_IsWaterfall(u8); - // only used as default case for checking jump landing in field_ground_effect. bool8 MetatileBehavior_IsATile(u8 var) { diff --git a/src/money.c b/src/money.c index de0730951..ab4508a39 100644 --- a/src/money.c +++ b/src/money.c @@ -10,8 +10,8 @@ extern u16 gSpecialVar_0x8005; extern u8 gUnknown_02038734; -extern const struct SpriteSheet gUnknown_083CF584; -extern const struct SpritePalette gUnknown_083CF58C; +extern const struct CompressedSpriteSheet gUnknown_083CF584; +extern const struct CompressedSpritePalette gUnknown_083CF58C; extern const struct SpriteTemplate gSpriteTemplate_83CF56C; bool8 IsEnoughMoney(u32 budget, u32 cost) diff --git a/src/mori_debug_menu.c b/src/mori_debug_menu.c index 18c65b7e6..ba79261c0 100644 --- a/src/mori_debug_menu.c +++ b/src/mori_debug_menu.c @@ -1,10 +1,12 @@ #include "global.h" #include "mori_debug_menu.h" -#include "asm.h" #include "data2.h" +#include "daycare.h" +#include "learn_move.h" #include "link.h" #include "main.h" #include "menu.h" +#include "pokeblock.h" #include "start_menu.h" #include "string_util.h" diff --git a/src/mystery_event_menu.c b/src/mystery_event_menu.c index 77c959b07..4be5dec1c 100644 --- a/src/mystery_event_menu.c +++ b/src/mystery_event_menu.c @@ -1,9 +1,9 @@ #include "global.h" #include "mystery_event_menu.h" -#include "asm.h" #include "link.h" #include "main.h" #include "menu.h" +#include "mystery_event_script.h" #include "palette.h" #include "save.h" #include "songs.h" diff --git a/src/mystery_event_script.c b/src/mystery_event_script.c index 515a0722f..e3d533d28 100644 --- a/src/mystery_event_script.c +++ b/src/mystery_event_script.c @@ -1,4 +1,5 @@ #include "global.h" +#include "mystery_event_script.h" #include "script.h" #include "string_util.h" #include "text.h" @@ -16,8 +17,6 @@ extern ScrCmdFunc gScriptFuncs_End[]; extern u8 gOtherText_DataCannotUseVersion[]; -void sub_8126160(u32 val); - bool32 sub_8126098(u16 a1, u32 a2, u16 a3, u32 a4) { if (!(a1 & 0x2)) diff --git a/src/name_string_util.c b/src/name_string_util.c index a1812d5e9..f1a935453 100644 --- a/src/name_string_util.c +++ b/src/name_string_util.c @@ -1,4 +1,5 @@ #include "global.h" +#include "name_string_util.h" #include "string_util.h" #include "text.h" diff --git a/src/naming_screen.c b/src/naming_screen.c index 53ee5ff19..88059e669 100644 --- a/src/naming_screen.c +++ b/src/naming_screen.c @@ -1,10 +1,13 @@ #include "global.h" #include "naming_screen.h" -#include "asm.h" #include "data2.h" +#include "field_effect.h" +#include "field_map_obj.h" +#include "field_player_avatar.h" #include "main.h" #include "menu.h" #include "palette.h" +#include "pokemon_icon.h" #include "songs.h" #include "sound.h" #include "sprite.h" @@ -13,11 +16,7 @@ #include "task.h" #include "text.h" #include "trig.h" - -extern u8 GetRivalAvatarGraphicsIdByStateIdAndGender(u8, u8); -extern u8 CreateMonIcon(); -extern void sub_809D51C(void); -extern void MultiplyInvertedPaletteRGBComponents(u16, u8, u8, u8); +#include "util.h" extern u16 gKeyRepeatStartDelay; @@ -51,7 +50,6 @@ extern const struct SpriteTemplate gSpriteTemplate_83CE688; extern const struct SpriteSheet gUnknown_083CE6A0[]; extern const struct SpritePalette gUnknown_083CE708[]; extern const u8 gNamingScreenMenu_Gfx[]; -extern u16 gMenuMessageBoxContentTileOffset; extern const u16 gNamingScreenPalettes[]; extern const u16 gUnknown_083CE748[]; extern const u16 gUnknown_083CEBF8[]; diff --git a/src/new_game.c b/src/new_game.c index 12e04a4ef..33aacd10a 100644 --- a/src/new_game.c +++ b/src/new_game.c @@ -1,18 +1,30 @@ #include "global.h" #include "new_game.h" -#include "asm.h" +#include "battle_records.h" #include "berry.h" +#include "contest.h" +#include "decoration_inventory.h" #include "dewford_trend.h" +#include "easy_chat.h" #include "event_data.h" +#include "field_specials.h" +#include "item_menu.h" #include "lottery_corner.h" +#include "mail_data.h" +#include "mauville_old_man.h" #include "play_time.h" +#include "player_pc.h" +#include "pokeblock.h" #include "pokedex.h" #include "pokemon_size_record.h" +#include "pokemon_storage_system.h" #include "rng.h" #include "roamer.h" #include "rom4.h" #include "rtc.h" #include "script.h" +#include "secret_base.h" +#include "tv.h" extern u8 gDifferentSaveFile; diff --git a/src/palette.c b/src/palette.c index 165eb2eae..94a4f8092 100644 --- a/src/palette.c +++ b/src/palette.c @@ -1,6 +1,5 @@ #include "global.h" #include "palette.h" -#include "asm.h" #include "blend_palette.h" #include "decompress.h" @@ -615,7 +614,7 @@ static u8 UpdateFastPaletteFade(void) if (b < b0) b = b0; - gPlttBufferFaded[i] = r | (g << 5) | (b << 10); + gPlttBufferFaded[i] = RGB(r, g, b); } break; case FAST_FADE_OUT_TO_WHTIE: @@ -633,7 +632,7 @@ static u8 UpdateFastPaletteFade(void) if (b > 31) b = 31; - gPlttBufferFaded[i] = r | (g << 5) | (b << 10); + gPlttBufferFaded[i] = RGB(r, g, b); } break; case FAST_FADE_IN_FROM_BLACK: @@ -659,7 +658,7 @@ static u8 UpdateFastPaletteFade(void) if (b > b0) b = b0; - gPlttBufferFaded[i] = r | (g << 5) | (b << 10); + gPlttBufferFaded[i] = RGB(r, g, b); } break; case FAST_FADE_OUT_TO_BLACK: @@ -677,7 +676,7 @@ static u8 UpdateFastPaletteFade(void) if (b < 0) b = 0; - gPlttBufferFaded[i] = r | (g << 5) | (b << 10); + gPlttBufferFaded[i] = RGB(r, g, b); } } diff --git a/src/party_menu.c b/src/party_menu.c index ee6bcf2a9..be0db4dc4 100644 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -1,20 +1,28 @@ #include "global.h" -#include "asm.h" +#include "party_menu.h" +#include "battle.h" +#include "battle_interface.h" +#include "battle_party_menu.h" #include "data2.h" +#include "event_data.h" +#include "item.h" +#include "mail_data.h" +#include "main.h" #include "menu.h" +#include "palette.h" #include "pokemon.h" +#include "pokemon_item_effect.h" +#include "pokemon_menu.h" +#include "pokemon_summary_screen.h" +#include "rom_8077ABC.h" +#include "rom_8094928.h" #include "songs.h" #include "sound.h" +#include "species.h" +#include "sprite.h" #include "string_util.h" #include "strings.h" #include "task.h" -#include "sprite.h" -#include "palette.h" -#include "event_data.h" -#include "main.h" -#include "item.h" -#include "battle_interface.h" -#include "species.h" #define DATA_COUNT (6) @@ -31,7 +39,7 @@ struct Unk201B000 u8 unk260; u8 unk261; u8 filler262[2]; - s16 unk264[DATA_COUNT * 2]; + s16 unk264[DATA_COUNT * 2]; // This may be a union u8 filler27C[2]; s16 unk27E; s16 unk280; @@ -88,75 +96,8 @@ extern const u16 gUnknown_08376504[]; extern void (*const gUnknown_08376B54[])(u8); extern const u8 *const gUnknown_08376D04[DATA_COUNT]; extern const struct UnknownStruct5 gUnknown_08376BB4[][6]; -extern const u8 *const gItemEffectTable[]; - -extern bool8 IsDoubleBattle(void); -extern void SetUpBattlePokemonMenu(u8); -extern void sub_808B0C0(u8); -extern u8 GiveMailToMon(struct Pokemon *, u16); -extern bool8 ItemIsMail(u16); -extern void ClearMailStruct(struct MailStruct *); -extern u8 GiveMailToMon2(struct Pokemon *, struct MailStruct *); -extern void TakeMailFromMon(struct Pokemon *); -extern u8 TakeMailFromMon2(struct Pokemon *); -extern u32 CanMonLearnTMHM(struct Pokemon *, u8); -extern void sub_809D9F0(struct Pokemon *, u8, u8, void *, u32); -extern void sub_808B564(); -extern u8 sub_809FA30(void); -extern void sub_808B508(u8); -extern void sub_8032638(); -extern u8 sub_8094C20(); -extern bool8 ExecuteTableBasedItemEffect_(); -extern u8 GetMonStatusAndPokerus(); - -u8 sub_806CA38(u8); -void task_pc_turn_off(); -static void sub_806E884(u8 taskId); -void sub_806F8AC(u8 taskId); -void sub_806FB0C(u8 taskId); -void PartyMenuUpdateLevelOrStatus(struct Pokemon *, u8); -bool8 ExecuteTableBasedItemEffect__(u8, u16, u8); -void sub_80701DC(u8 taskId); -void DoRecoverPP(u8); -void Task_RareCandy1(u8); -void Task_RareCandy2(u8); -void Task_RareCandy3(u8); -void sub_806D538(); -void sub_806D5A4(void); -void sub_806E8D0(u8 taskId, u16 b, TaskFunc c); -void GetMedicineItemEffectMessage(u16); -void sub_8070A20(); -void sub_8070848(u8 taskId); -void sub_8070968(); -void party_menu_link_mon_held_item_object(u8); -void Task_ConfirmGiveHeldItem(u8); -void DisplayGiveHeldItemMessage(u8, u16, u8); -void SetHeldItemIconVisibility(); -void DisplayTakeHeldItemMessage(u8, u16, u8); -void Task_ConfirmTakeHeldMail(u8); -void Task_TeamMonTMMove(u8); -void Task_TeamMonTMMove2(u8); -void Task_TeamMonTMMove3(u8); -void Task_TeamMonTMMove4(u8); -void sub_806F358(u8); -void sub_806F390(u8); -void sub_806F44C(u8); -void TMMoveUpdateMoveSlot(u8); -void StopTryingToTeachMove_806F614(u8); -void StopTryingToTeachMove_806F67C(u8); -void StopTryingToTeachMove_806F6B4(u8); -void sub_806FB44(u8); -void sub_8070C54(); -void SetMonIconAnim(); -u8 GetMonIconSpriteId_maybe(); -void PartyMenuDoPrintHP(u8, int, u16, u16); -void PartyMenuClearLevelStatusTilemap(); -void PartyMenuPrintMonLevelOrStatus(); -u8 GetItemEffectType(); -bool8 IsBlueYellowRedFlute(u16); -void TryPrintPartyMenuMonNickname(); -void sub_8070088(u8); +static void sub_806E884(u8 taskId); /* void sub_806AEDC(void) @@ -1286,7 +1227,7 @@ void DoPPRecoveryItemEffect(u8 taskId, u16 b, TaskFunc c) void ItemUseMoveMenu_HandleMoveSelection(u8 taskId) { - sub_8072DEC(); + HandleDestroyMenuCursors(); MenuZeroFillWindowRect(19, 10, 29, 19); sub_806D5A4(); gTasks[taskId].data[11] = GetMenuCursorPos(); @@ -1295,7 +1236,7 @@ void ItemUseMoveMenu_HandleMoveSelection(u8 taskId) void ItemUseMoveMenu_HandleCancel(u8 taskId) { - sub_8072DEC(); + HandleDestroyMenuCursors(); MenuZeroFillWindowRect(19, 10, 29, 19); if (gMain.inBattle) gTasks[ewram1C000.unk4].func = SetUpBattlePokemonMenu; diff --git a/src/player_pc.c b/src/player_pc.c index c012afb02..9cb395432 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -1,7 +1,10 @@ #include "global.h" -#include "asm.h" +#include "player_pc.h" +#include "decoration.h" +#include "field_fadetransition.h" #include "field_weather.h" #include "item.h" +#include "item_menu.h" #include "items.h" #include "main.h" #include "menu.h" @@ -12,36 +15,172 @@ #include "string_util.h" #include "strings.h" #include "task.h" - -#define NEW_GAME_PC_ITEMS(i, type) ((u16)(gNewGamePCItems + type)[i * 2]) - -// type as in define above -enum -{ - ITEM_ID, - QUANTITY, -}; +#include "songs.h" +#include "name_string_util.h" +#include "mail.h" +#include "rom4.h" +#include "player_pc.h" extern void DisplayItemMessageOnField(u8, const u8*, TaskFunc, u16); extern void DoPlayerPCDecoration(u8); extern void BuyMenuFreeMemory(void); extern void DestroyVerticalScrollIndicator(u8); -extern u8 sub_813AF3C(void); -extern void sub_813AF78(void); -extern void sub_813B108(u8); -extern void sub_813B174(u8); -extern void sub_80A6A30(void); +extern void PauseVerticalScrollIndicator(u8); +extern void StartVerticalScrollIndicators(int); +extern void LoadScrollIndicatorPalette(void); +extern void ClearMailStruct(struct MailStruct *); extern u8 sub_807D770(void); -extern void sub_813AE6C(u8, u8); -extern void sub_813AD58(u16); -extern void sub_813AE0C(u8); -extern void sub_80F996C(u8); -extern void sub_80A418C(u16, enum StringConvertMode, int, int, int); -extern void sub_80F98DC(int); +extern void sub_808B020(void); extern void sub_80A4164(u8 *, u16, enum StringConvertMode, u8); -extern void CreateVerticalScrollIndicators(u32, u32, u32); // unknown args +extern void sub_80A418C(u16, enum StringConvertMode, int, int, int); +extern void sub_80A6A30(void); +extern void sub_80F944C(void); + +extern u8 *gPcItemMenuOptionOrder; +extern u8 gPcItemMenuOptionsNum; + +extern u8 gUnknown_02038561; + +// event scripts +extern u8 gBrendanHouse_TurnPCOff[]; +extern u8 gMayHouse_TurnPCOff[]; + +extern void (*gFieldCallback)(void); + +static void InitPlayerPCMenu(u8 taskId); +static void PlayerPCProcessMenuInput(u8 taskId); +static void InitItemStorageMenu(u8); +static void ItemStorageMenuPrint(const u8 *); +static void ItemStorageMenuProcessInput(u8); +static void ItemStorage_ProcessInput(u8); +static void ItemStorage_SetItemAndMailCount(u8); +static void ItemStorage_DoItemAction(u8); +static void ItemStorage_GoBackToPlayerPCMenu(u8); +static void ItemStorage_HandleQuantityRolling(u8); +static void ItemStorage_DoItemWithdraw(u8); +static void ItemStorage_DoItemToss(u8); +static void ItemStorage_HandleRemoveItem(u8); +static void ItemStorage_WaitPressHandleResumeProcessInput(u8); +static void ItemStorage_HandleResumeProcessInput(u8); +static void ItemStorage_DoItemSwap(u8, bool8); +static void ItemStorage_DrawItemList(u8); +static void ItemStorage_PrintItemPcResponse(u16); +static void ItemStorage_DrawBothListAndDescription(u8); +static void ItemStorage_GoBackToItemPCMenu(u8, u8); +static void ItemStorage_LoadPalette(void); +static u8 GetMailboxMailCount(void); +static void Mailbox_UpdateMailList(void); +static void Mailbox_DrawMailboxMenu(u8); +static void Mailbox_ProcessInput(u8); +static void Mailbox_CloseScrollIndicators(void); +static void Mailbox_PrintWhatToDoWithPlayerMailText(u8); +static void Mailbox_TurnOff(u8); +static void Mailbox_PrintMailOptions(u8); +static void Mailbox_MailOptionsProcessInput(u8); +static void Mailbox_FadeAndReadMail(u8); +static void Mailbox_ReturnToFieldFromReadMail(void); +static void Mailbox_DrawYesNoBeforeMove(u8); +static void Mailbox_DoGiveMailPokeMenu(u8); +static void Mailbox_NoPokemonForMail(u8); +static void Mailbox_Cancel(u8); +static void Mailbox_DrawMailMenuAndDoProcessInput(u8); +static void PlayerPC_ItemStorage(u8 taskId); +static void PlayerPC_Mailbox(u8 taskId); +static void PlayerPC_Decoration(u8 var); +static void PlayerPC_TurnOff(u8 taskId); +static void ItemStorage_Withdraw(u8); +static void ItemStorage_Deposit(u8); +static void ItemStorage_Toss(u8); +static void ItemStorage_Exit(u8); +static void ItemStorage_ResumeInputFromYesToss(u8); +static void ItemStorage_ResumeInputFromNoToss(u8); +static void Mailbox_DoMailMoveToBag(u8); +static void Mailbox_ReturnToInputAfterNo(u8); +static void Mailbox_DoMailRead(u8); +static void Mailbox_MoveToBag(u8); +static void Mailbox_Give(u8); +static void Mailbox_Cancel(u8); + +static const struct TextStruct gPCText_OptionDescList[] = +{ + PCText_TakeOutItems, + PCText_StoreItems, + PCText_ThrowAwayItems, + gMenuText_GoBackToPrev +}; + +static const struct MenuAction2 gPCText_PlayerPCOptionsText[] = +{ + { SecretBaseText_ItemStorage, PlayerPC_ItemStorage }, + { gPCText_Mailbox, PlayerPC_Mailbox }, + { SecretBaseText_Decoration, PlayerPC_Decoration }, + { SecretBaseText_TurnOff, PlayerPC_TurnOff } +}; + +static const u8 gBedroomPC_OptionOrder[] = +{ + PLAYERPC_MENU_ITEMSTORAGE, + PLAYERPC_MENU_MAILBOX, + PLAYERPC_MENU_DECORATION, + PLAYERPC_MENU_TURNOFF +}; + +static const u8 gPlayerPC_OptionOrder[] = +{ + PLAYERPC_MENU_ITEMSTORAGE, + PLAYERPC_MENU_MAILBOX, + PLAYERPC_MENU_TURNOFF +}; + +static const struct MenuAction2 gPCText_ItemPCOptionsText[] = +{ + { PCText_WithdrawItem, ItemStorage_Withdraw }, + { PCText_DepositItem, ItemStorage_Deposit }, + { PCText_TossItem, ItemStorage_Toss }, + { gUnknownText_Exit, ItemStorage_Exit } +}; + +static const struct YesNoFuncTable ResumeFromTossYesNoFuncList[] = // ResumeFromTossYesNoFuncList +{ + ItemStorage_ResumeInputFromYesToss, + ItemStorage_ResumeInputFromNoToss +}; + +static const struct YesNoFuncTable ResumeFromWithdrawYesNoFuncList[] = // ResumeFromWithdrawYesNoFuncList +{ + Mailbox_DoMailMoveToBag, + Mailbox_ReturnToInputAfterNo +}; + +// the use of this struct is meant to be an ItemSlot struct, but NewGameInitPCItems refuses to match without a weird pointer access. +static const struct ItemSlot gNewGamePCItems[] = +{ + { ITEM_POTION, 1 }, + { ITEM_NONE, 0 } +}; + +static const struct MenuAction2 gMailboxMailOptions[] = +{ + { OtherText_Read, Mailbox_DoMailRead }, + { gOtherText_MoveToBag, Mailbox_MoveToBag }, + { OtherText_Give, Mailbox_Give }, + { gOtherText_CancelNoTerminator, Mailbox_Cancel } +}; + +static const u8 gNonSelectedItemFormattedText[] = _("{STR_VAR_1}{CLEAR_TO 80}"); +static const u8 gSelectedItemFormattedText[] = _("{COLOR RED}{STR_VAR_1}{CLEAR_TO 80}"); +static const u8 gNonSelectedItemQuantityFormatText[] = _("{STR_VAR_1}"); +static const u8 gSelectedItemQuantityFormatText[] = _("{COLOR RED}{STR_VAR_1}"); +static const u8 gUnknown_08406330[] = _("{CLEAR_TO 32}"); + +static const u16 gUnknown_08406334[3] = +{ + 0x5294, + 0x6B5A, + 0x7FFF +}; -extern u16 gNewGamePCItems[]; +static const u8 gHighlightedMoveToBagFormatText[] = _("{COLOR RED}{STR_VAR_1}"); extern u8 *gUnknown_02039314; extern struct MenuAction gUnknown_08406298[]; @@ -50,7 +189,6 @@ extern u8 gUnknown_084062B8[]; extern u8 gUnknown_084062BC[]; extern u8 gUnknown_0840632A[]; extern u8 gUnknown_08406327[]; -extern u8 gUnknown_08406330[]; extern u8 gUnknown_0840631E[]; extern u8 gUnknown_08406318[]; @@ -64,24 +202,6 @@ extern u32 gUnknown_08406288[]; extern const struct MenuAction gUnknown_084062C0[]; extern const struct YesNoFuncTable gUnknown_084062E0; -void InitPlayerPCMenu(u8 taskId); -void PlayerPCProcessMenuInput(u8 taskId); -void InitItemStorageMenu(u8); -void ItemStorageMenuPrint(u8 *); -void ItemStorageMenuProcessInput(u8); -void sub_813A280(u8); -void sub_813A240(u8); -void sub_813A4B4(u8); -void sub_813A468(u8); -void HandleQuantityRolling(u8); -void sub_813A6FC(u8); -void sub_813A794(u8); -void sub_813A8F0(u8); -void sub_813A984(u8); -void sub_813A9EC(u8); -void sub_813AA30(u8, u8); -void sub_813ABE8(u8); - void NewGameInitPCItems(void) { u8 i; @@ -94,55 +214,49 @@ void NewGameInitPCItems(void) void BedroomPC(void) { - u8 taskId; - - gUnknown_02039314 = gUnknown_084062B8; - gUnknown_030007B4 = 4; - taskId = CreateTask(TaskDummy, 0); - DisplayItemMessageOnField(taskId, gOtherText_WhatWillYouDo, InitPlayerPCMenu, 0); + gPcItemMenuOptionOrder = (u8 *)gBedroomPC_OptionOrder; + gPcItemMenuOptionsNum = 4; + DisplayItemMessageOnField(CreateTask(TaskDummy, 0), gOtherText_WhatWillYouDo, InitPlayerPCMenu, 0); } void PlayerPC(void) { - u8 taskId; - - gUnknown_02039314 = gUnknown_084062BC; - gUnknown_030007B4 = 3; - taskId = CreateTask(TaskDummy, 0); - DisplayItemMessageOnField(taskId, gOtherText_WhatWillYouDo, InitPlayerPCMenu, 0); + gPcItemMenuOptionOrder = (u8 *)gPlayerPC_OptionOrder; + gPcItemMenuOptionsNum = 3; + DisplayItemMessageOnField(CreateTask(TaskDummy, 0), gOtherText_WhatWillYouDo, InitPlayerPCMenu, 0); } -void InitPlayerPCMenu(u8 taskId) +static void InitPlayerPCMenu(u8 taskId) { - MenuDrawTextWindow(0, 0, 10, gUnknown_030007B4 * 2 + 1); - PrintMenuItemsReordered(1, 1, gUnknown_030007B4, gUnknown_08406298, gUnknown_02039314); - InitMenu(0, 1, 1, gUnknown_030007B4, 0, 9); - gTasks[taskId].func = PlayerPCProcessMenuInput; + MenuDrawTextWindow(0, 0, 10, gPcItemMenuOptionsNum * 2 + 1); + PrintMenuItemsReordered(1, 1, gPcItemMenuOptionsNum, (struct MenuAction *)gPCText_PlayerPCOptionsText, gPcItemMenuOptionOrder); + InitMenu(0, 1, 1, gPcItemMenuOptionsNum, 0, 9); + TASK.FUNC = PlayerPCProcessMenuInput; } -void PlayerPCProcessMenuInput(u8 taskId) +static void PlayerPCProcessMenuInput(u8 taskId) { - if (gMain.newAndRepeatedKeys & 0x40) + if (gMain.newAndRepeatedKeys & DPAD_UP) { - PlaySE(5); + PlaySE(SE_SELECT); MoveMenuCursor(-1); } - else if (gMain.newAndRepeatedKeys & 0x80) + else if (gMain.newAndRepeatedKeys & DPAD_DOWN) { - PlaySE(5); + PlaySE(SE_SELECT); MoveMenuCursor(1); } - else if (gMain.newKeys & 0x1) + else if (gMain.newKeys & A_BUTTON) { - sub_8072DEC(); - PlaySE(5); - gUnknown_08406298[gUnknown_02039314[GetMenuCursorPos()]].func(taskId); + HandleDestroyMenuCursors(); + PlaySE(SE_SELECT); + gPCText_PlayerPCOptionsText[gPcItemMenuOptionOrder[GetMenuCursorPos()]].func(taskId); } - else if (gMain.newKeys & 0x2) + else if (gMain.newKeys & B_BUTTON) { - sub_8072DEC(); - PlaySE(5); - gUnknown_08406298[gUnknown_030007B4[gUnknown_02039314 - 1]].func(taskId); + HandleDestroyMenuCursors(); + PlaySE(SE_SELECT); + gPCText_PlayerPCOptionsText[gPcItemMenuOptionsNum[gPcItemMenuOptionOrder - 1]].func(taskId); // run EXIT. } } @@ -151,44 +265,46 @@ void ReshowPlayerPC(u8 var) DisplayItemMessageOnField(var, gOtherText_WhatWillYouDo, InitPlayerPCMenu, 0); } -void PlayerPC_ItemStorage(u8 taskId) +static void PlayerPC_ItemStorage(u8 taskId) { - InitItemStorageMenu(0); - gTasks[taskId].func = ItemStorageMenuProcessInput; + InitItemStorageMenu(ITEMPC_MENU_WITHDRAW); + TASK.FUNC = ItemStorageMenuProcessInput; } -void PlayerPC_Mailbox(u8 taskId) +static void PlayerPC_Mailbox(u8 taskId) { MenuZeroFillWindowRect(0, 0, 10, 9); - unk_201FE00[3] = sub_813AF3C(); - if (!unk_201FE00[3]) + gMailboxInfo.count = GetMailboxMailCount(); + + if (gMailboxInfo.count == 0) DisplayItemMessageOnField(taskId, gOtherText_NoMailHere, ReshowPlayerPC, 0); else { - unk_201FE00[0] = 0; - unk_201FE00[2] = 0; - sub_813AF78(); - sub_813A240(taskId); - sub_813B108(taskId); - gTasks[taskId].func = sub_813B174; + gMailboxInfo.cursorPos = 0; + gMailboxInfo.itemsAbove = 0; + Mailbox_UpdateMailList(); + ItemStorage_SetItemAndMailCount(taskId); + Mailbox_DrawMailboxMenu(taskId); + TASK.FUNC = Mailbox_ProcessInput; } } -void PlayerPC_Decoration(u8 var) +static void PlayerPC_Decoration(u8 var) { MenuZeroFillWindowRect(0, 0, 10, 9); DoPlayerPCDecoration(var); } -void PlayerPC_TurnOff(u8 taskId) +static void PlayerPC_TurnOff(u8 taskId) { - if (gUnknown_030007B4 == 4) + if (gPcItemMenuOptionsNum == 4) // if the option count is 4, we are at the bedroom PC and not player PC, so do gender specific handling. { MenuZeroFillWindowRect(0, 0, 0x1D, 0x13); - if (!gSaveBlock2.playerGender) - ScriptContext1_SetupScript(&gUnknown_08152850); // male + + if (gSaveBlock2.playerGender == MALE) + ScriptContext1_SetupScript(gBrendanHouse_TurnPCOff); else - ScriptContext1_SetupScript(&gUnknown_08152C75); // female + ScriptContext1_SetupScript(gMayHouse_TurnPCOff); } else { @@ -198,49 +314,49 @@ void PlayerPC_TurnOff(u8 taskId) DestroyTask(taskId); } -void InitItemStorageMenu(u8 var) +static void InitItemStorageMenu(u8 var) { MenuZeroFillWindowRect(0, 0, 10, 9); MenuDrawTextWindow(0, 0, 11, 9); - PrintMenuItems(1, 1, 4, gUnknown_084062C0); + PrintMenuItems(1, 1, 4, (struct MenuAction *)gPCText_ItemPCOptionsText); InitMenu(0, 1, 1, 4, var, 10); - ItemStorageMenuPrint((u8 *)gUnknown_08406288[var]); + ItemStorageMenuPrint(gPCText_OptionDescList[var].text); } -void ItemStorageMenuPrint(u8 *textPtr) +static void ItemStorageMenuPrint(const u8 *textPtr) { MenuFillWindowRectWithBlankTile(2, 15, 27, 18); MenuPrint(textPtr, 2, 15); } -void ItemStorageMenuProcessInput(u8 var) +static void ItemStorageMenuProcessInput(u8 var) { - if (gMain.newAndRepeatedKeys & 0x40) + if (gMain.newAndRepeatedKeys & DPAD_UP) { - PlaySE(5); + PlaySE(SE_SELECT); MoveMenuCursor(-1); - ItemStorageMenuPrint((u8 *)gUnknown_08406288[GetMenuCursorPos()]); + ItemStorageMenuPrint(gPCText_OptionDescList[GetMenuCursorPos()].text); } - else if (gMain.newAndRepeatedKeys & 0x80) + else if (gMain.newAndRepeatedKeys & DPAD_DOWN) { - PlaySE(5); + PlaySE(SE_SELECT); MoveMenuCursor(1); - ItemStorageMenuPrint((u8 *)gUnknown_08406288[GetMenuCursorPos()]); + ItemStorageMenuPrint(gPCText_OptionDescList[GetMenuCursorPos()].text); } - else if (gMain.newKeys & 0x1) + else if (gMain.newKeys & A_BUTTON) { - PlaySE(5); - gUnknown_084062C0[GetMenuCursorPos()].func(var); + PlaySE(SE_SELECT); + gPCText_ItemPCOptionsText[GetMenuCursorPos()].func(var); } - else if (gMain.newKeys & 0x2) + else if (gMain.newKeys & B_BUTTON) { - sub_8072DEC(); - PlaySE(5); - gUnknown_084062C0[3].func(var); + HandleDestroyMenuCursors(); + PlaySE(SE_SELECT); + gPCText_ItemPCOptionsText[ITEMPC_MENU_EXIT].func(var); } } -void Task_ItemStorage_Deposit(u8 taskId) +static void Task_ItemStorage_Deposit(u8 taskId) { if (!gPaletteFade.active) { @@ -249,547 +365,544 @@ void Task_ItemStorage_Deposit(u8 taskId) } } -void ItemStorage_Deposit(u8 taskId) +static void ItemStorage_Deposit(u8 taskId) { - gTasks[taskId].func = Task_ItemStorage_Deposit; + TASK.FUNC = Task_ItemStorage_Deposit; fade_screen(1, 0); } -void sub_813A0C8(u8 taskId) +static void ItemStorage_HandleReturnToProcessInput(u8 taskId) { - if (sub_807D770() == 1) - gTasks[taskId].func = ItemStorageMenuProcessInput; + if (sub_807D770() == TRUE) + TASK.FUNC = ItemStorageMenuProcessInput; } -void sub_813A0F8(void) +void ItemStorage_ReturnToMenuAfterDeposit(void) { MenuDisplayMessageBox(); - InitItemStorageMenu(1); - CreateTask(sub_813A0C8, 0); + InitItemStorageMenu(ITEMPC_MENU_DEPOSIT); + CreateTask(ItemStorage_HandleReturnToProcessInput, 0); pal_fill_black(); } -void ItemStorage_Withdraw(u8 taskId) +static void ItemStorage_Withdraw(u8 taskId) { - u8 var; - u16 * data = gTasks[taskId].data; + s16 *data = TASK.data; - sub_8072DEC(); + HandleDestroyMenuCursors(); MenuZeroFillWindowRect(0, 0, 11, 9); - var = CountUsedPCItemSlots(); - data[2] = var; + NUM_ITEMS = CountUsedPCItemSlots(); - if (var) + if (NUM_ITEMS != 0) { MenuZeroFillWindowRect(0, 14, 29, 19); - data[6] = 0; - data[0] = 0; - data[1] = 0; - sub_813A240(taskId); - sub_813AE6C(taskId, 0); - gTasks[taskId].func = sub_813A280; + CURRENT_ITEM_STORAGE_MENU = ITEMPC_MENU_WITHDRAW; + PAGE_INDEX = 0; + ITEMS_ABOVE_TOP = 0; + ItemStorage_SetItemAndMailCount(taskId); + ItemStorage_GoBackToItemPCMenu(taskId, 0); + TASK.FUNC = ItemStorage_ProcessInput; } else DisplayItemMessageOnField(taskId, gOtherText_NoItems, PlayerPC_ItemStorage, 0); } -void ItemStorage_Toss(u8 taskId) +static void ItemStorage_Toss(u8 taskId) { - u8 var; - u16 * data = gTasks[taskId].data; + s16 *data = TASK.data; - sub_8072DEC(); + HandleDestroyMenuCursors(); MenuZeroFillWindowRect(0, 0, 11, 9); - var = CountUsedPCItemSlots(); - data[2] = var; + NUM_ITEMS = CountUsedPCItemSlots(); - if (var) + if (NUM_ITEMS) { MenuZeroFillWindowRect(0, 14, 29, 19); - data[6] = 2; - data[0] = 0; - data[1] = 0; - sub_813A240(taskId); - sub_813AE6C(taskId, 2); - gTasks[taskId].func = sub_813A280; + CURRENT_ITEM_STORAGE_MENU = ITEMPC_MENU_TOSS; + PAGE_INDEX = 0; + ITEMS_ABOVE_TOP = 0; + ItemStorage_SetItemAndMailCount(taskId); + ItemStorage_GoBackToItemPCMenu(taskId, 2); + TASK.FUNC = ItemStorage_ProcessInput; } else DisplayItemMessageOnField(taskId, gOtherText_NoItems, PlayerPC_ItemStorage, 0); } -void ItemStorage_Exit(u8 var) +static void ItemStorage_Exit(u8 var) { - sub_8072DEC(); + HandleDestroyMenuCursors(); MenuZeroFillWindowRect(0, 0, 11, 9); ReshowPlayerPC(var); } -void sub_813A240(u8 taskId) +static void ItemStorage_SetItemAndMailCount(u8 taskId) { - s16 *data = gTasks[taskId].data; + s16 *data = TASK.data; - if (data[2] > 7) - data[4] = 8; + if (NUM_ITEMS > 7) // we have a full page, so set the num of page items appropriately. + NUM_PAGE_ITEMS = 8; else - data[4] = data[2] + 1; + NUM_PAGE_ITEMS = NUM_ITEMS + 1; // there are not enough items to fill a full page; take the # of items and add 1 for the cancel button. - if (unk_201FE00[3] > 7) - unk_201FE00[1] = 8; + if (gMailboxInfo.count > 7) + gMailboxInfo.pageItems = 8; else - unk_201FE00[1] = unk_201FE00[3] + 1; + gMailboxInfo.pageItems = gMailboxInfo.count + 1; } -void sub_813A280(u8 taskId) +static void ItemStorage_ProcessInput(u8 taskId) { - s16 *data = gTasks[taskId].data; - s16 var; + s16 *data = TASK.data; + s16 trueIndex; if (gMain.newAndRepeatedKeys & DPAD_UP) { - if(data[0]) + if(PAGE_INDEX != 0) // did the cursor move physically upwards? { - PlaySE(5); - data[0] = MoveMenuCursor(-1); - var = data[1] + data[0]; - if (!data[9]) + PlaySE(SE_SELECT); + PAGE_INDEX = MoveMenuCursor(-1); + trueIndex = ITEMS_ABOVE_TOP + PAGE_INDEX; + if (SWITCH_MODE_ACTIVE == FALSE) // are we not currently switching items? { - if (var == data[2]) + if (trueIndex == NUM_ITEMS) // if the cursor is on top of cancel, print the go back to prev description. { - sub_813AD58(0xFFFF); + ItemStorage_PrintItemPcResponse(ITEMPC_GO_BACK_TO_PREV); } else { - sub_813AD58(gSaveBlock1.pcItems[var].itemId); + ItemStorage_PrintItemPcResponse(gSaveBlock1.pcItems[trueIndex].itemId); } } } - else // _0813A2E4 + else // the page cursor is at the top. but we may not be at the top of the true index list, so do another check. { - if (!data[1]) + if (ITEMS_ABOVE_TOP == 0) // did the cursor not move due to being at the top of the list? return; - PlaySE(5); - data[1]--; - sub_813AE0C(taskId); - // probably further down - if (data[9]) - MoveMenuCursor(0); + + PlaySE(SE_SELECT); + ITEMS_ABOVE_TOP--; + ItemStorage_DrawBothListAndDescription(taskId); + + if (SWITCH_MODE_ACTIVE != FALSE) + MoveMenuCursor(0); // don't move the cursor. it's at the top of the page index, but not the true index. } } else if(gMain.newAndRepeatedKeys & DPAD_DOWN) // _0813A306 { - if(data[0] != data[4] - 1) + if(PAGE_INDEX != NUM_PAGE_ITEMS - 1) { - PlaySE(5); - data[0] = MoveMenuCursor(1); - var = data[1] + data[0]; + PlaySE(SE_SELECT); + PAGE_INDEX = MoveMenuCursor(1); + trueIndex = ITEMS_ABOVE_TOP + PAGE_INDEX; - if(data[9]) + if(SWITCH_MODE_ACTIVE != FALSE) return; - if (var == data[2]) - sub_813AD58(0xFFFF); // probably further down + if (trueIndex == NUM_ITEMS) + ItemStorage_PrintItemPcResponse(ITEMPC_GO_BACK_TO_PREV); // probably further down else - sub_813AD58(gSaveBlock1.pcItems[var].itemId); + ItemStorage_PrintItemPcResponse(gSaveBlock1.pcItems[trueIndex].itemId); } - else if(data[1] + data[0] != data[2]) + else if(ITEMS_ABOVE_TOP + PAGE_INDEX != NUM_ITEMS) { - PlaySE(5); - data[1]++; - sub_813AE0C(taskId); + PlaySE(SE_SELECT); + ITEMS_ABOVE_TOP++; + ItemStorage_DrawBothListAndDescription(taskId); - if (data[9]) + if (SWITCH_MODE_ACTIVE != FALSE) MoveMenuCursor(0); } } else if(gMain.newKeys & SELECT_BUTTON) // _0813A3A0 { - if (!data[9]) + if (SWITCH_MODE_ACTIVE == FALSE) { - if (data[0] + data[1] != data[2]) + if (PAGE_INDEX + ITEMS_ABOVE_TOP != NUM_ITEMS) // you cannot swap the Cancel button. { - PlaySE(5); - data[9] = 1; - data[8] = data[1] + data[0]; - sub_813AD58(0xFFF7); + PlaySE(SE_SELECT); + SWITCH_MODE_ACTIVE = TRUE; + SWAP_ITEM_INDEX = ITEMS_ABOVE_TOP + PAGE_INDEX; + ItemStorage_PrintItemPcResponse(ITEMPC_SWITCH_WHICH_ITEM); } // _0813A3DC - sub_813ABE8(taskId); + ItemStorage_DrawItemList(taskId); } else // _0813A3E8 { - PlaySE(5); // merging? - sub_813AA30(taskId, 0); - sub_813AE0C(taskId); + PlaySE(SE_SELECT); + ItemStorage_DoItemSwap(taskId, FALSE); + ItemStorage_DrawBothListAndDescription(taskId); } } else if(gMain.newKeys & A_BUTTON) { - PlaySE(5); - if(!data[9]) + PlaySE(SE_SELECT); + if(SWITCH_MODE_ACTIVE == FALSE) { - if(data[1] + data[0] != data[2]) + if(ITEMS_ABOVE_TOP + PAGE_INDEX != NUM_ITEMS) { - sub_813A4B4(taskId); + ItemStorage_DoItemAction(taskId); } else { - sub_813A468(taskId); + ItemStorage_GoBackToPlayerPCMenu(taskId); } } else { - sub_813AA30(taskId, 0); - sub_813AE0C(taskId); + ItemStorage_DoItemSwap(taskId, FALSE); + ItemStorage_DrawBothListAndDescription(taskId); } } else if(gMain.newKeys & B_BUTTON) { - PlaySE(5); - if(!data[9]) + PlaySE(SE_SELECT); + if(SWITCH_MODE_ACTIVE == FALSE) { - sub_8072DEC(); - sub_813A468(taskId); + HandleDestroyMenuCursors(); + ItemStorage_GoBackToPlayerPCMenu(taskId); } else { - sub_813AA30(taskId, 1); - sub_813AE0C(taskId); + ItemStorage_DoItemSwap(taskId, TRUE); + ItemStorage_DrawBothListAndDescription(taskId); } } } -void sub_813A468(u8 taskId) +static void ItemStorage_GoBackToPlayerPCMenu(u8 taskId) { BuyMenuFreeMemory(); DestroyVerticalScrollIndicator(0); DestroyVerticalScrollIndicator(1); MenuZeroFillWindowRect(0, 0, 29, 19); MenuDisplayMessageBox(); - InitItemStorageMenu(gTasks[taskId].data[6]); - gTasks[taskId].func = ItemStorageMenuProcessInput; + InitItemStorageMenu(TASK.CURRENT_ITEM_STORAGE_MENU); + TASK.FUNC = ItemStorageMenuProcessInput; } -void sub_813A4B4(u8 taskId) +static void ItemStorage_DoItemAction(u8 taskId) { - s16 *data = gTasks[taskId].data; - u8 var = data[0] + data[1]; + s16 *data = TASK.data; + u8 trueIndex = PAGE_INDEX + ITEMS_ABOVE_TOP; - sub_80F996C(0); - sub_80F996C(1); + PauseVerticalScrollIndicator(0); + PauseVerticalScrollIndicator(1); // PauseVerticalScrollIndicator - if(!data[6]) + if(CURRENT_ITEM_STORAGE_MENU == ITEMPC_MENU_WITHDRAW) { - if(gSaveBlock1.pcItems[var].quantity == 1) + if(gSaveBlock1.pcItems[trueIndex].quantity == 1) { - data[3] = 1; - sub_813A6FC(taskId); + NUM_QUANTITY_ROLLER = 1; + ItemStorage_DoItemWithdraw(taskId); return; } else // _0813A50C { - sub_813AD58(0xFFFE); + ItemStorage_PrintItemPcResponse(ITEMPC_HOW_MANY_TO_WITHDRAW); } } - else if(gSaveBlock1.pcItems[var].quantity == 1) // _0813A518 + else if(gSaveBlock1.pcItems[trueIndex].quantity == 1) // _0813A518 { - data[3] = 1; - sub_813A794(taskId); + NUM_QUANTITY_ROLLER = 1; + ItemStorage_DoItemToss(taskId); return; } else { - sub_813AD58(0xFFFC); + ItemStorage_PrintItemPcResponse(ITEMPC_HOW_MANY_TO_TOSS); } - data[3] = 1; + NUM_QUANTITY_ROLLER = 1; MenuDrawTextWindow(6, 8, 13, 11); - sub_80A418C(data[3], STR_CONV_MODE_RIGHT_ALIGN, 8, 9, 3); - gTasks[taskId].func = HandleQuantityRolling; + sub_80A418C(NUM_QUANTITY_ROLLER, STR_CONV_MODE_RIGHT_ALIGN, 8, 9, 3); + TASK.FUNC = ItemStorage_HandleQuantityRolling; } -void HandleQuantityRolling(u8 taskId) +static void ItemStorage_HandleQuantityRolling(u8 taskId) { - s16 *data = gTasks[taskId].data; - u8 var = data[0] + data[1]; + s16 *data = TASK.data; + u8 trueIndex = PAGE_INDEX + ITEMS_ABOVE_TOP; if(gMain.newAndRepeatedKeys & DPAD_UP) { - if(data[3] != gSaveBlock1.pcItems[var].quantity) - data[3]++; + if(NUM_QUANTITY_ROLLER != gSaveBlock1.pcItems[trueIndex].quantity) + NUM_QUANTITY_ROLLER++; else - data[3] = 1; // you are at the max amount of items you have when you press Up, set your quantity back to 1. + NUM_QUANTITY_ROLLER = 1; // you are at the max amount of items you have when you press Up, set your quantity back to 1. - sub_80A418C(data[3], STR_CONV_MODE_RIGHT_ALIGN, 8, 9, 3); // print quantity? + sub_80A418C(NUM_QUANTITY_ROLLER, STR_CONV_MODE_RIGHT_ALIGN, 8, 9, 3); // print quantity? } else if(gMain.newAndRepeatedKeys & DPAD_DOWN) { - if(data[3] != 1) - data[3]--; + if(NUM_QUANTITY_ROLLER != 1) + NUM_QUANTITY_ROLLER--; else - data[3] = gSaveBlock1.pcItems[var].quantity; // you are at 0 when you press down, set your quantity to the amount you have. + NUM_QUANTITY_ROLLER = gSaveBlock1.pcItems[trueIndex].quantity; // you are at 0 when you press down, set your quantity to the amount you have. - sub_80A418C(data[3], STR_CONV_MODE_RIGHT_ALIGN, 8, 9, 3); // print quantity? + sub_80A418C(NUM_QUANTITY_ROLLER, STR_CONV_MODE_RIGHT_ALIGN, 8, 9, 3); // print quantity? } else if(gMain.newAndRepeatedKeys & DPAD_LEFT) // reduce by 10. { - data[3] -= 10; + NUM_QUANTITY_ROLLER -= 10; - if(data[3] <= 0) - data[3] = 1; // dont underflow or allow 0! + if(NUM_QUANTITY_ROLLER <= 0) + NUM_QUANTITY_ROLLER = 1; // dont underflow or allow 0! - sub_80A418C(data[3], STR_CONV_MODE_RIGHT_ALIGN, 8, 9, 3); // print quantity? + sub_80A418C(NUM_QUANTITY_ROLLER, STR_CONV_MODE_RIGHT_ALIGN, 8, 9, 3); // print quantity? } else if(gMain.newAndRepeatedKeys & DPAD_RIGHT) // add 10. { - data[3] += 10; + NUM_QUANTITY_ROLLER += 10; - if(data[3] > gSaveBlock1.pcItems[var].quantity) - data[3] = gSaveBlock1.pcItems[var].quantity; // dont overflow! + if(NUM_QUANTITY_ROLLER > gSaveBlock1.pcItems[trueIndex].quantity) + NUM_QUANTITY_ROLLER = gSaveBlock1.pcItems[trueIndex].quantity; // dont overflow! - sub_80A418C(data[3], STR_CONV_MODE_RIGHT_ALIGN, 8, 9, 3); // print quantity? + sub_80A418C(NUM_QUANTITY_ROLLER, STR_CONV_MODE_RIGHT_ALIGN, 8, 9, 3); // print quantity? } else if(gMain.newKeys & A_BUTTON) // confirm quantity. { - PlaySE(5); + PlaySE(SE_SELECT); MenuZeroFillWindowRect(6, 6, 0xD, 0xB); - if(!data[6]) - sub_813A6FC(taskId); + if(CURRENT_ITEM_STORAGE_MENU == ITEMPC_MENU_WITHDRAW) + ItemStorage_DoItemWithdraw(taskId); else - sub_813A794(taskId); + ItemStorage_DoItemToss(taskId); } else if(gMain.newKeys & B_BUTTON) // cancel quantity. { - PlaySE(5); + PlaySE(SE_SELECT); MenuZeroFillWindowRect(6, 6, 0xD, 0xB); - sub_80F98DC(0); - sub_80F98DC(1); - sub_813AD58(gSaveBlock1.pcItems[data[1] + data[0]].itemId); // why not use var? - gTasks[taskId].func = sub_813A280; + StartVerticalScrollIndicators(0); + StartVerticalScrollIndicators(1); + ItemStorage_PrintItemPcResponse(gSaveBlock1.pcItems[ITEMS_ABOVE_TOP + PAGE_INDEX].itemId); // why not use trueIndex? + TASK.FUNC = ItemStorage_ProcessInput; } } -void sub_813A6FC(u8 taskId) +static void ItemStorage_DoItemWithdraw(u8 taskId) { - s16 *data = gTasks[taskId].data; - u8 var = data[0] + data[1]; + s16 *data = TASK.data; + u8 trueIndex = PAGE_INDEX + ITEMS_ABOVE_TOP; - if(AddBagItem(gSaveBlock1.pcItems[var].itemId, data[3]) == TRUE) // add item works. + if(AddBagItem(gSaveBlock1.pcItems[trueIndex].itemId, NUM_QUANTITY_ROLLER) == TRUE) // add item works. { - CopyItemName(gSaveBlock1.pcItems[var].itemId, gStringVar1); - ConvertIntToDecimalStringN(gStringVar2, data[3], 0, 3); - sub_813AD58(0xFFFD); - gTasks[taskId].func = sub_813A8F0; + CopyItemName(gSaveBlock1.pcItems[trueIndex].itemId, gStringVar1); + ConvertIntToDecimalStringN(gStringVar2, NUM_QUANTITY_ROLLER, 0, 3); + ItemStorage_PrintItemPcResponse(ITEMPC_WITHDREW_THING); + TASK.FUNC = ItemStorage_HandleRemoveItem; } - else // cannot add item. inventory full? + else { - data[3] = 0; - sub_813AD58(0xFFFA); - gTasks[taskId].func = sub_813A984; + NUM_QUANTITY_ROLLER = 0; + ItemStorage_PrintItemPcResponse(ITEMPC_NO_MORE_ROOM); + TASK.FUNC = ItemStorage_WaitPressHandleResumeProcessInput; } } -void sub_813A794(u8 taskId) +static void ItemStorage_DoItemToss(u8 taskId) { - s16 *data = gTasks[taskId].data; - u8 var = data[0] + data[1]; + s16 *data = TASK.data; + u8 var = PAGE_INDEX + ITEMS_ABOVE_TOP; if(ItemId_GetImportance(gSaveBlock1.pcItems[var].itemId) == FALSE) { CopyItemName(gSaveBlock1.pcItems[var].itemId, gStringVar1); - ConvertIntToDecimalStringN(gStringVar2, data[3], 0, 3); - sub_813AD58(65528); + ConvertIntToDecimalStringN(gStringVar2, NUM_QUANTITY_ROLLER, 0, 3); + ItemStorage_PrintItemPcResponse(ITEMPC_OKAY_TO_THROW_AWAY); DisplayYesNoMenu(7, 6, 1); - sub_80F914C(taskId, &gUnknown_084062E0); + DoYesNoFuncWithChoice(taskId, (struct YesNoFuncTable *)&ResumeFromTossYesNoFuncList); } else { - data[3] = 0; - sub_813AD58(65529); - gTasks[taskId].func = sub_813A8F0; + NUM_QUANTITY_ROLLER = 0; + ItemStorage_PrintItemPcResponse(ITEMPC_TOO_IMPORTANT); + TASK.FUNC = ItemStorage_HandleRemoveItem; } } -void sub_813A83C(u8 taskId) +static void ItemStorage_ResumeInputFromYesToss(u8 taskId) { MenuZeroFillWindowRect(0x6, 0x6, 0xD, 0xB); - sub_813AD58(0xFFFB); - gTasks[taskId].func = sub_813A8F0; + ItemStorage_PrintItemPcResponse(ITEMPC_THREW_AWAY_ITEM); + TASK.FUNC = ItemStorage_HandleRemoveItem; } -void sub_813A878(u8 taskId) +static void ItemStorage_ResumeInputFromNoToss(u8 taskId) { - s16 *data = gTasks[taskId].data; + s16 *data = TASK.data; MenuZeroFillWindowRect(0x6, 0x6, 0xD, 0xB); - InitMenu(0, 16, 2, data[4], data[0], 0xD); - sub_80F98DC(0); - sub_80F98DC(1); - sub_813AD58(gSaveBlock1.pcItems[data[1] + data[0]].itemId); - gTasks[taskId].func = sub_813A280; + InitMenu(0, 16, 2, NUM_PAGE_ITEMS, PAGE_INDEX, 0xD); + StartVerticalScrollIndicators(0); + StartVerticalScrollIndicators(1); + ItemStorage_PrintItemPcResponse(gSaveBlock1.pcItems[ITEMS_ABOVE_TOP + PAGE_INDEX].itemId); + TASK.FUNC = ItemStorage_ProcessInput; } -void sub_813A8F0(u8 taskId) +static void ItemStorage_HandleRemoveItem(u8 taskId) { - s16 *data = gTasks[taskId].data; - u16 var; - u8 usedItemSlots; + s16 *data = TASK.data; + s16 oldNumItems; - if(gMain.newKeys & 0x1 || gMain.newKeys == 0x2) + if(gMain.newKeys & A_BUTTON || gMain.newKeys == B_BUTTON) { - RemovePCItem(data[0] + data[1], data[3]); - var = data[2]; - usedItemSlots = CountUsedPCItemSlots(); - data[2] = usedItemSlots; + RemovePCItem(PAGE_INDEX + ITEMS_ABOVE_TOP, NUM_QUANTITY_ROLLER); + oldNumItems = NUM_ITEMS; + NUM_ITEMS = CountUsedPCItemSlots(); - if((s16)var != usedItemSlots && (s16)var < data[4] + data[1] && data[1] != 0) - data[1]--; + if(oldNumItems != NUM_ITEMS && oldNumItems < NUM_PAGE_ITEMS + ITEMS_ABOVE_TOP && ITEMS_ABOVE_TOP != 0) + ITEMS_ABOVE_TOP--; - sub_813A240(taskId); - sub_813A9EC(taskId); - InitMenu(0, 16, 2, data[4], data[0], 0xD); + ItemStorage_SetItemAndMailCount(taskId); + ItemStorage_HandleResumeProcessInput(taskId); + InitMenu(0, 16, 2, NUM_PAGE_ITEMS, PAGE_INDEX, 0xD); } } -void sub_813A984(u8 taskId) +static void ItemStorage_WaitPressHandleResumeProcessInput(u8 taskId) { - s16 *data = gTasks[taskId].data; + s16 *data = TASK.data; - if(gMain.newKeys & 0x1 || gMain.newKeys == 2) + if(gMain.newKeys & A_BUTTON || gMain.newKeys == B_BUTTON) { - sub_813AD58(gSaveBlock1.pcItems[data[1] + data[0]].itemId); - sub_80F98DC(0); - sub_80F98DC(1); - gTasks[taskId].func = sub_813A280; + ItemStorage_PrintItemPcResponse(gSaveBlock1.pcItems[ITEMS_ABOVE_TOP + PAGE_INDEX].itemId); + StartVerticalScrollIndicators(0); + StartVerticalScrollIndicators(1); + TASK.FUNC = ItemStorage_ProcessInput; } } -void sub_813A9EC(u8 taskId) +static void ItemStorage_HandleResumeProcessInput(u8 taskId) { MenuZeroFillWindowRect(0x6, 0x6, 0xD, 0xB); - sub_80F98DC(0); - sub_80F98DC(1); - sub_813AE0C(taskId); - gTasks[taskId].func = sub_813A280; + StartVerticalScrollIndicators(0); + StartVerticalScrollIndicators(1); + ItemStorage_DrawBothListAndDescription(taskId); + TASK.FUNC = ItemStorage_ProcessInput; } -void sub_813AA30(u8 taskId, u8 arg) +static void ItemStorage_DoItemSwap(u8 taskId, bool8 switchModeDisabled) { - s16 *data = gTasks[taskId].data; - u8 var = data[1] + data[0]; + s16 *data = TASK.data; + u8 trueIndex = ITEMS_ABOVE_TOP + PAGE_INDEX; - data[9] = 0; + SWITCH_MODE_ACTIVE = FALSE; - if((u8)data[2] > var && (u8)data[8] != var && arg == 0) + if((u8)NUM_ITEMS > trueIndex && (u8)SWAP_ITEM_INDEX != trueIndex && switchModeDisabled == FALSE) { - struct ItemSlot itemSlot = gSaveBlock1.pcItems[data[8]]; // backup the itemSlot before swapping the two. + struct ItemSlot itemSlot = gSaveBlock1.pcItems[SWAP_ITEM_INDEX]; // backup the itemSlot before swapping the two. - gSaveBlock1.pcItems[data[8]] = gSaveBlock1.pcItems[var]; - gSaveBlock1.pcItems[var] = itemSlot; + gSaveBlock1.pcItems[SWAP_ITEM_INDEX] = gSaveBlock1.pcItems[trueIndex]; + gSaveBlock1.pcItems[trueIndex] = itemSlot; return; } - else if(var == data[2]) + else if(trueIndex == NUM_ITEMS) { - sub_813AD58(0xFFFF); + ItemStorage_PrintItemPcResponse(ITEMPC_GO_BACK_TO_PREV); } else { - sub_813AD58(gSaveBlock1.pcItems[var].itemId); + ItemStorage_PrintItemPcResponse(gSaveBlock1.pcItems[trueIndex].itemId); } /* THEORY: This check produces essentially dead code, but it might have been working in an earlier build in which case it allows a programmer to easily duplicate items without the use of a debug menu. + This gets the page index of the swap index for some reason. It is currently unknown what it would have been used + for, but perhaps it was used to increase the quantity of the item without a debug menu. With the removal of a lot of the debug menus close to release, a programmer may have added this to help test things with a low key (such as planting a lot of duplicated berries, which requires this lazy "cheat") without bringing the relevent debug menus back. The commented out line is intentionally left in below to show what it may have looked like. */ - if(data[8] - data[1] > 0) { // this check is arbitrary and used to generate the correct assembly using the subtraction, which is what matters. the 0 check doesn't. - //gSaveBlock1.pcItems[data[8]].quantity += 100; - gSaveBlock1.pcItems[data[8]].quantity += 0; // do not enforce item cap. + if(SWAP_ITEM_INDEX - ITEMS_ABOVE_TOP <= 0) { // this check is arbitrary and used to generate the correct assembly using the subtraction, which is what matters. the 0 check doesn't. + //gSaveBlock1.pcItems[SWAP_ITEM_INDEX].quantity += 100; + gSaveBlock1.pcItems[SWAP_ITEM_INDEX].quantity += 0; // do not enforce item cap. } } -void sub_813AAC4(u16 arg1, enum StringConvertMode arg2, u8 arg3, u8 arg4, int arg5) +static void ItemStorage_DrawItemQuantity(u16 arg1, enum StringConvertMode arg2, u8 arg3, u8 arg4, int isSwapSelected) { sub_80A4164(gStringVar1, arg1, arg2, arg4); - if(arg5) - MenuPrint(gUnknown_0840632A, 0x1A, arg3); + if(isSwapSelected != FALSE) + MenuPrint(gSelectedItemQuantityFormatText, 0x1A, arg3); else - MenuPrint(gUnknown_08406327, 0x1A, arg3); + MenuPrint(gNonSelectedItemQuantityFormatText, 0x1A, arg3); } -void sub_813AB10(u8 var) +static void ItemStorage_DrawItemVoidQuantity(u8 var) { MenuPrint(gUnknown_08406330, 0x19, var); } -void sub_813AB28(struct ItemSlot *itemSlot, u8 var, int var2) +static void ItemStorage_DrawItemName(struct ItemSlot *itemSlot, u8 var, int isSwapSelected) { CopyItemName(itemSlot->itemId, gStringVar1); - if(var2) - MenuPrint(gUnknown_0840631E, 16, var); + if(isSwapSelected != FALSE) + MenuPrint(gSelectedItemFormattedText, 16, var); else - MenuPrint(gUnknown_08406318, 16, var); + MenuPrint(gNonSelectedItemFormattedText, 16, var); } -void sub_813AB64(struct ItemSlot *itemSlot, u8 var, int var2) +static void ItemStorage_DrawNormalItemEntry(struct ItemSlot *itemSlot, u8 var, int var2) { - sub_813AB28(itemSlot, var, var2); - sub_813AAC4(itemSlot->quantity, STR_CONV_MODE_RIGHT_ALIGN, var, 3, var2); + ItemStorage_DrawItemName(itemSlot, var, var2); + ItemStorage_DrawItemQuantity(itemSlot->quantity, STR_CONV_MODE_RIGHT_ALIGN, var, 3, var2); } -void sub_813AB90(struct ItemSlot *itemSlot, u8 var, int var2) +static void ItemStorage_DrawKeyItemEntry(struct ItemSlot *itemSlot, u8 var, int var2) { - sub_813AB28(itemSlot, var, var2); - sub_813AB10(var); + ItemStorage_DrawItemName(itemSlot, var, var2); + ItemStorage_DrawItemVoidQuantity(var); } -void sub_813ABAC(struct ItemSlot *itemSlot, u8 var, int var2) +static void ItemStorage_DrawTMHMEntry(struct ItemSlot *itemSlot, u8 var, int var2) { - sub_813AB28(itemSlot, var, var2); + ItemStorage_DrawItemName(itemSlot, var, var2); if(itemSlot->itemId < ITEM_HM01) - sub_813AAC4(itemSlot->quantity, STR_CONV_MODE_RIGHT_ALIGN, var, 3, var2); + ItemStorage_DrawItemQuantity(itemSlot->quantity, STR_CONV_MODE_RIGHT_ALIGN, var, 3, var2); else - sub_813AB10(var); // key items do not have a quantity. + ItemStorage_DrawItemVoidQuantity(var); // HMs do not have a quantity. } -void sub_813ABE8(u8 taskId) +static void ItemStorage_DrawItemList(u8 taskId) { - s16 *data = gTasks[taskId].data; - u16 i; + s16 *data = TASK.data; int tempArg; - u16 j = 0; + u16 i; + u16 yCoord = 0; // r5 is i and is unsigned 16-bit. - for(i = data[1]; i < data[1] + data[4]; i++) + for(i = ITEMS_ABOVE_TOP; i < ITEMS_ABOVE_TOP + NUM_PAGE_ITEMS; i++) { - j = (i - data[1]) * 2; + yCoord = (i - ITEMS_ABOVE_TOP) * 2; - if(i != data[2]) + if(i != NUM_ITEMS) { tempArg = 0; - if(data[9] != 0 && i == data[8]) + if(SWITCH_MODE_ACTIVE != FALSE && i == SWAP_ITEM_INDEX) tempArg = 1; switch(GetPocketByItemId(gSaveBlock1.pcItems[i].itemId) - 1) { - case 0: - case 1: - case 3: - sub_813AB64((struct ItemSlot *)&gSaveBlock1.pcItems[i], j + 2, tempArg); - break; - case 4: - sub_813AB90((struct ItemSlot *)&gSaveBlock1.pcItems[i], j + 2, tempArg); - break; - case 2: - sub_813ABAC((struct ItemSlot *)&gSaveBlock1.pcItems[i], j + 2, tempArg); - break; + case 0: + case 1: + case 3: + ItemStorage_DrawNormalItemEntry((struct ItemSlot *)&gSaveBlock1.pcItems[i], yCoord + 2, tempArg); + break; + case 4: + ItemStorage_DrawKeyItemEntry((struct ItemSlot *)&gSaveBlock1.pcItems[i], yCoord + 2, tempArg); + break; + case 2: + ItemStorage_DrawTMHMEntry((struct ItemSlot *)&gSaveBlock1.pcItems[i], yCoord + 2, tempArg); + break; } } else @@ -799,24 +912,460 @@ void sub_813ABE8(u8 taskId) } beforeLabel: - if(i - data[1] < 8) - MenuFillWindowRectWithBlankTile(16, j + 4, 0x1C, 0x12); + if(i - ITEMS_ABOVE_TOP < 8) + MenuFillWindowRectWithBlankTile(16, yCoord + 4, 0x1C, 0x12); - switch(data[1]) + switch(ITEMS_ABOVE_TOP) { default: CreateVerticalScrollIndicators(0, 0xB8, 8); break; weirdCase: - sub_8072A18(gOtherText_CancelNoTerminator, 0x80, (j + 2) * 8, 0x68, 1); + sub_8072A18(gOtherText_CancelNoTerminator, 0x80, (yCoord + 2) * 8, 0x68, 1); goto beforeLabel; case 0: DestroyVerticalScrollIndicator(0); break; } - if(data[1] + data[4] <= data[2]) + if(ITEMS_ABOVE_TOP + NUM_PAGE_ITEMS <= NUM_ITEMS) CreateVerticalScrollIndicators(1, 0xB8, 0x98); else DestroyVerticalScrollIndicator(1); } + +static void ItemStorage_PrintItemPcResponse(u16 itemId) +{ + u8 *string; + + switch(itemId) + { + case ITEMPC_GO_BACK_TO_PREV: + string = (u8 *)gMenuText_GoBackToPrev; + break; + case ITEMPC_HOW_MANY_TO_WITHDRAW: + string = (u8 *)gOtherText_HowManyToWithdraw; + break; + case ITEMPC_WITHDREW_THING: + string = (u8 *)gOtherText_WithdrewThing; + break; + case ITEMPC_HOW_MANY_TO_TOSS: + string = (u8 *)gOtherText_HowManyToToss; + break; + case ITEMPC_THREW_AWAY_ITEM: + string = (u8 *)gOtherText_ThrewAwayItem; + break; + case ITEMPC_NO_MORE_ROOM: + string = (u8 *)gOtherText_NoMoreRoom; + break; + case ITEMPC_TOO_IMPORTANT: + string = (u8 *)gOtherText_TooImportant; + break; + case ITEMPC_OKAY_TO_THROW_AWAY: + string = (u8 *)gOtherText_OkayToThrowAwayPrompt; + break; + case ITEMPC_SWITCH_WHICH_ITEM: + string = (u8 *)gOtherText_SwitchWhichItem; + break; + default: + string = ItemId_GetDescription(itemId); + break; + } + + sub_8072AB0(string, 8, 0x68, 0x68, 0x30, 1); +} + +static void ItemStorage_DrawBothListAndDescription(u8 taskId) +{ + s16 *data = TASK.data; + s16 trueIndex = ITEMS_ABOVE_TOP + PAGE_INDEX; + + ItemStorage_DrawItemList(taskId); + + if(SWITCH_MODE_ACTIVE == FALSE) + { + if(trueIndex == NUM_ITEMS) + ItemStorage_PrintItemPcResponse(ITEMPC_GO_BACK_TO_PREV); + else + ItemStorage_PrintItemPcResponse(gSaveBlock1.pcItems[trueIndex].itemId); + } +} + +static void ItemStorage_GoBackToItemPCMenu(u8 taskId, u8 var) +{ + s16 *data = TASK.data; + + sub_80F944C(); + LoadScrollIndicatorPalette(); + ItemStorage_LoadPalette(); + MenuDrawTextWindow(0xF, 0, 0x1D, 0x13); + MenuDrawTextWindow(0, 0xC, 0xE, 0x13); + MenuDrawTextWindow(0, 0, 0xB, 3); + ItemStorage_PrintItemPcResponse(gSaveBlock1.pcItems[0].itemId); + MenuPrint(gPCText_ItemPCOptionsText[var].text, 1, 1); + ItemStorage_DrawItemList(taskId); + InitMenu(0, 0x10, 2, NUM_PAGE_ITEMS, PAGE_INDEX, 0xD); +} + +static void ItemStorage_LoadPalette(void) +{ + u16 arr[3]; + + memcpy(arr, gUnknown_08406334, sizeof(arr)); + LoadPalette(&arr[2], 0xDF, 2); + LoadPalette(&arr[1], 0xD1, 2); + LoadPalette(&arr[0], 0xD8, 2); +} + +static u8 GetMailboxMailCount(void) +{ + u8 i, j; + + for(i = 0, j = 6; j < 16; j++) + if(gSaveBlock1.mail[j].itemId != 0) + i++; + + return i; +} + +static void Mailbox_UpdateMailList(void) +{ + struct MailStruct mailBuffer; + u8 i, j; + + for (i=6; i<15; i++) + { + for (j=i+1; j<16; j++) + { + if (gSaveBlock1.mail[i].itemId == 0) + { + mailBuffer = gSaveBlock1.mail[i]; + gSaveBlock1.mail[i] = gSaveBlock1.mail[j]; + gSaveBlock1.mail[j] = mailBuffer; + } + } + } +} + +// WWHHHHHYYYYYYYY SOMEBODY PLEASE FIX THIS +static void Mailbox_DrawMailList(u8 taskId) // taskId is unused +{ + u16 yCoord = 0; + u16 i = gMailboxInfo.itemsAbove; + register struct MailboxStruct *tempMailbox asm("r1") = &gMailboxInfo; + register struct MailboxStruct *mailbox asm("r6"); + + if(i < i + tempMailbox->pageItems) + { + mailbox = tempMailbox; + goto forJump; + for(; i < mailbox->itemsAbove + mailbox->pageItems; i++) + { + forJump: + yCoord = (i - mailbox->itemsAbove) * 2; + MenuFillWindowRectWithBlankTile(0x15, yCoord + 2, 0x1C, yCoord + 3); + + if(i != mailbox->count) + { + StringCopy(gStringVar1, (u8 *)gSaveBlock1.mail[i + 6].playerName); + SanitizeNameString(gStringVar1); + MenuPrint(gStringVar1, 0x15, yCoord + 2); + } + else + { + goto weirdCase; // again, what??? + } + } + } + +beforeLabel: + if(i - gMailboxInfo.itemsAbove != 8) + MenuFillWindowRectWithBlankTile(0x15, yCoord + 4, 0x1C, 0x12); + + switch(gMailboxInfo.itemsAbove) + { + default: + CreateVerticalScrollIndicators(0, 0xC8, 8); + break; +weirdCase: + MenuPrint(gOtherText_CancelNoTerminator, 0x15, yCoord + 2); + goto beforeLabel; + case 0: + DestroyVerticalScrollIndicator(0); + break; + } + + if(gMailboxInfo.itemsAbove + gMailboxInfo.pageItems <= gMailboxInfo.count) + CreateVerticalScrollIndicators(1, 0xC8, 0x98); + else + DestroyVerticalScrollIndicator(1); +} + +static void Mailbox_DrawMailboxMenu(u8 taskId) +{ + sub_80F944C(); + LoadScrollIndicatorPalette(); + MenuZeroFillWindowRect(0, 0, 0x1D, 0x13); + MenuDrawTextWindow(0, 0, 0x8, 0x3); + MenuPrint(gPCText_Mailbox, 1, 1); + MenuDrawTextWindow(0x14, 0, 0x1D, 0x13); + Mailbox_DrawMailList(taskId); + InitMenu(0, 0x15, 2, gMailboxInfo.pageItems, gMailboxInfo.cursorPos, 8); +} + +// Mailbox_ProcessInput +static void Mailbox_ProcessInput(u8 taskId) +{ + if(!gPaletteFade.active) + { + if(gMain.newAndRepeatedKeys & DPAD_UP) + { + if(gMailboxInfo.cursorPos != 0) + { + PlaySE(SE_SELECT); + gMailboxInfo.cursorPos = MoveMenuCursor(-1); + } + else if(gMailboxInfo.itemsAbove != 0) + { + PlaySE(SE_SELECT); + gMailboxInfo.itemsAbove--; + Mailbox_DrawMailList(taskId); + } + } + else if(gMain.newAndRepeatedKeys & DPAD_DOWN) + { + if(gMailboxInfo.cursorPos != gMailboxInfo.pageItems - 1) + { + PlaySE(SE_SELECT); + gMailboxInfo.cursorPos = MoveMenuCursor(1); + } + else if(gMailboxInfo.itemsAbove + gMailboxInfo.cursorPos != gMailboxInfo.count) + { + PlaySE(SE_SELECT); + gMailboxInfo.itemsAbove++; + Mailbox_DrawMailList(taskId); + } + } + else if(gMain.newKeys & A_BUTTON) + { + HandleDestroyMenuCursors(); + PlaySE(SE_SELECT); + + if(gMailboxInfo.itemsAbove + gMailboxInfo.cursorPos == gMailboxInfo.count) + { + Mailbox_TurnOff(taskId); + } + else + { + Mailbox_CloseScrollIndicators(); + TASK.FUNC = Mailbox_PrintWhatToDoWithPlayerMailText; + } + } + else if(gMain.newKeys & B_BUTTON) + { + HandleDestroyMenuCursors(); + PlaySE(SE_SELECT); + Mailbox_TurnOff(taskId); + } + } +} + +static void Mailbox_CloseScrollIndicators(void) +{ + BuyMenuFreeMemory(); + DestroyVerticalScrollIndicator(0); + DestroyVerticalScrollIndicator(1); +} + +static void Mailbox_PrintWhatToDoWithPlayerMailText(u8 taskId) +{ + MenuZeroFillWindowRect(0, 0, 0x1D, 0x13); + StringCopy(gStringVar1, gSaveBlock1.mail[gMailboxInfo.itemsAbove + 6 + gMailboxInfo.cursorPos].playerName); + SanitizeNameString(gStringVar1); + StringExpandPlaceholders(gStringVar4, gOtherText_WhatWillYouDoMail); + DisplayItemMessageOnField(taskId, gStringVar4, Mailbox_PrintMailOptions, 0); +} + +static void Mailbox_ReturnToPlayerPC(u8 taskId) +{ + MenuZeroFillWindowRect(0, 0, 0x1D, 0x13); + ReshowPlayerPC(taskId); +} + +static void Mailbox_TurnOff(u8 taskId) +{ + Mailbox_CloseScrollIndicators(); + TASK.FUNC = Mailbox_ReturnToPlayerPC; +} + +static void Mailbox_PrintMailOptions(u8 taskId) // Mailbox_PrintMailOptions +{ + MenuDrawTextWindow(0, 0, 0xC, 0x9); + PrintMenuItems(1, 1, 4, (struct MenuAction *)gMailboxMailOptions); + InitMenu(0, 1, 1, 4, 0, 0xB); + TASK.FUNC = Mailbox_MailOptionsProcessInput; +} + +static void Mailbox_MailOptionsProcessInput(u8 taskId) +{ + if(gMain.newAndRepeatedKeys & DPAD_UP) + { + PlaySE(SE_SELECT); + MoveMenuCursor(-1); + } + else if(gMain.newAndRepeatedKeys & DPAD_DOWN) + { + PlaySE(SE_SELECT); + MoveMenuCursor(1); + } + else if(gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + gMailboxMailOptions[GetMenuCursorPos()].func(taskId); + } + else if(gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + Mailbox_Cancel(taskId); + } +} + +static void Mailbox_DoMailRead(u8 taskId) +{ + fade_screen(1, 0); + TASK.FUNC = Mailbox_FadeAndReadMail; +} + +static void Mailbox_FadeAndReadMail(u8 taskId) +{ + if(!gPaletteFade.active) + { + HandleReadMail(&gSaveBlock1.mail[gMailboxInfo.itemsAbove + 6 + gMailboxInfo.cursorPos], Mailbox_ReturnToFieldFromReadMail, 1); + DestroyTask(taskId); + } +} + +static void Mailbox_HandleReturnToProcessInput(u8 taskId) // Mailbox_HandleReturnToProcessInput +{ + if(sub_807D770() == TRUE) // is black fade finished? why not gPaletteFade.active? + TASK.FUNC = Mailbox_ProcessInput; +} + +static void Mailbox_DoRedrawMailboxMenuAfterReturn(void) +{ + Mailbox_DrawMailboxMenu(CreateTask(Mailbox_HandleReturnToProcessInput, 0)); + pal_fill_black(); +} + +static void Mailbox_ReturnToFieldFromReadMail(void) +{ + gFieldCallback = Mailbox_DoRedrawMailboxMenuAfterReturn; + SetMainCallback2(c2_exit_to_overworld_2_switch); +} + +static void Mailbox_MoveToBag(u8 taskId) +{ + HandleDestroyMenuCursors(); + StringCopy(gStringVar1, gOtherText_MoveToBag); + MenuPrint(gHighlightedMoveToBagFormatText, 1, 3); // gHighlightedMoveToBagFormatText + DisplayItemMessageOnField(taskId, gOtherText_MessageWillBeLost, Mailbox_DrawYesNoBeforeMove, 0); +} + +static void Mailbox_DrawYesNoBeforeMove(u8 taskId) +{ + DisplayYesNoMenu(0x14, 0x8, 0x1); + DoYesNoFuncWithChoice(taskId, (struct YesNoFuncTable *)&ResumeFromWithdrawYesNoFuncList); +} + +static void Mailbox_DoMailMoveToBag(u8 taskId) +{ + struct MailStruct *mail = &gSaveBlock1.mail[gMailboxInfo.itemsAbove + 6 + gMailboxInfo.cursorPos]; + + MenuZeroFillWindowRect(0x14, 8, 0x1A, 0xD); + + if(AddBagItem(mail->itemId, 1) == FALSE) + { + DisplayItemMessageOnField(taskId, gOtherText_BagIsFull, Mailbox_DrawMailMenuAndDoProcessInput, 0); + } + else + { + DisplayItemMessageOnField(taskId, gOtherText_MailWasReturned, Mailbox_DrawMailMenuAndDoProcessInput, 0); + ClearMailStruct(mail); + Mailbox_UpdateMailList(); + + gMailboxInfo.count--; + + if(gMailboxInfo.count < gMailboxInfo.pageItems + gMailboxInfo.itemsAbove && gMailboxInfo.itemsAbove != 0) + gMailboxInfo.itemsAbove--; + + ItemStorage_SetItemAndMailCount(taskId); + } +} + +static void Mailbox_ReturnToInputAfterNo(u8 taskId) // Mailbox_ReturnToInputAfterNo +{ + MenuZeroFillWindowRect(0x14, 0x8, 0x1A, 0xD); + Mailbox_DrawMailMenuAndDoProcessInput(taskId); +} + +static void Mailbox_Give(u8 taskId) +{ + if(CalculatePlayerPartyCount() == 0) + Mailbox_NoPokemonForMail(taskId); // cannot be reached normally + else + { + fade_screen(1, 0); + TASK.FUNC = Mailbox_DoGiveMailPokeMenu; + } +} + +static void Mailbox_DoGiveMailPokeMenu(u8 taskId) // Mailbox_DoGiveMailPokeMenu +{ + if(!gPaletteFade.active) + { + SetMainCallback2(sub_808B020); + gUnknown_02038561 = 3; + DestroyTask(taskId); + } +} + +static void Mailbox_UpdateMailListAfterDeposit(void) +{ + u8 taskId = CreateTask(Mailbox_HandleReturnToProcessInput, 0); + u8 oldCount = gMailboxInfo.count; + + gMailboxInfo.count = GetMailboxMailCount(); + Mailbox_UpdateMailList(); + + if(oldCount != gMailboxInfo.count && gMailboxInfo.count < gMailboxInfo.pageItems + gMailboxInfo.itemsAbove && gMailboxInfo.itemsAbove != 0) // did the count update? + gMailboxInfo.itemsAbove--; + + ItemStorage_SetItemAndMailCount(taskId); + Mailbox_DrawMailboxMenu(taskId); + pal_fill_black(); +} + +void Mailbox_ReturnToMailListAfterDeposit(void) +{ + gFieldCallback = Mailbox_UpdateMailListAfterDeposit; + SetMainCallback2(c2_exit_to_overworld_2_switch); +} + +// you always have at least 1 POKeMON and you cannot receive mail before you leave Littleroot: therefore this function cannot be reached normally. +static void Mailbox_NoPokemonForMail(u8 taskId) +{ + DisplayItemMessageOnField(taskId, gOtherText_NoPokemon, Mailbox_DrawMailMenuAndDoProcessInput, 0); +} + +static void Mailbox_Cancel(u8 taskId) +{ + HandleDestroyMenuCursors(); + MenuZeroFillWindowRect(0, 0, 0xC, 0x9); + Mailbox_DrawMailMenuAndDoProcessInput(taskId); +} + +static void Mailbox_DrawMailMenuAndDoProcessInput(u8 taskId) +{ + Mailbox_DrawMailboxMenu(taskId); + TASK.FUNC = Mailbox_ProcessInput; +} diff --git a/src/pokeball.c b/src/pokeball.c new file mode 100644 index 000000000..ee3b95678 --- /dev/null +++ b/src/pokeball.c @@ -0,0 +1,1193 @@ +#include "global.h" +#include "gba/m4a_internal.h" +#include "battle.h" +#include "decompress.h" +#include "graphics.h" +#include "m4a.h" +#include "main.h" +#include "pokeball.h" +#include "pokemon.h" +#include "rom_8077ABC.h" +#include "songs.h" +#include "sound.h" +#include "sprite.h" +#include "task.h" +#include "trig.h" +#include "util.h" + +extern struct MusicPlayerInfo gMPlay_BGM; +extern u16 gBattleTypeFlags; +extern u8 gBankTarget; +extern u8 gActiveBank; +extern u16 gBattlePartyID[]; +extern u8 gObjectBankIDs[]; +extern u8 gDoingBattleAnim; +extern u8 gHealthboxIDs[]; + +#define GFX_TAG_POKEBALL 55000 +#define GFX_TAG_GREATBALL 55001 +#define GFX_TAG_SAFARIBALL 55002 +#define GFX_TAG_ULTRABALL 55003 +#define GFX_TAG_MASTERBALL 55004 +#define GFX_TAG_NETBALL 55005 +#define GFX_TAG_DIVEBALL 55006 +#define GFX_TAG_NESTBALL 55007 +#define GFX_TAG_REPEATBALL 55008 +#define GFX_TAG_TIMERBALL 55009 +#define GFX_TAG_LUXURYBALL 55010 +#define GFX_TAG_PREMIERBALL 55011 + +static const struct CompressedSpriteSheet sBallSpriteSheets[] = +{ + {gInterfaceGfx_PokeBall, 384, GFX_TAG_POKEBALL}, + {gInterfaceGfx_GreatBall, 384, GFX_TAG_GREATBALL}, + {gInterfaceGfx_SafariBall, 384, GFX_TAG_SAFARIBALL}, + {gInterfaceGfx_UltraBall, 384, GFX_TAG_ULTRABALL}, + {gInterfaceGfx_MasterBall, 384, GFX_TAG_MASTERBALL}, + {gInterfaceGfx_NetBall, 384, GFX_TAG_NETBALL}, + {gInterfaceGfx_DiveBall, 384, GFX_TAG_DIVEBALL}, + {gInterfaceGfx_NestBall, 384, GFX_TAG_NESTBALL}, + {gInterfaceGfx_RepeatBall, 384, GFX_TAG_REPEATBALL}, + {gInterfaceGfx_TimerBall, 384, GFX_TAG_TIMERBALL}, + {gInterfaceGfx_LuxuryBall, 384, GFX_TAG_LUXURYBALL}, + {gInterfaceGfx_PremierBall, 384, GFX_TAG_PREMIERBALL}, +}; + +static const struct CompressedSpritePalette sBallSpritePalettes[] = +{ + {gInterfacePal_PokeBall, GFX_TAG_POKEBALL}, + {gInterfacePal_GreatBall, GFX_TAG_GREATBALL}, + {gInterfacePal_SafariBall, GFX_TAG_SAFARIBALL}, + {gInterfacePal_UltraBall, GFX_TAG_ULTRABALL}, + {gInterfacePal_MasterBall, GFX_TAG_MASTERBALL}, + {gInterfacePal_NetBall, GFX_TAG_NETBALL}, + {gInterfacePal_DiveBall, GFX_TAG_DIVEBALL}, + {gInterfacePal_NestBall, GFX_TAG_NESTBALL}, + {gInterfacePal_RepeatBall, GFX_TAG_REPEATBALL}, + {gInterfacePal_TimerBall, GFX_TAG_TIMERBALL}, + {gInterfacePal_LuxuryBall, GFX_TAG_LUXURYBALL}, + {gInterfacePal_PremierBall, GFX_TAG_PREMIERBALL}, +}; + +static const struct OamData sBallOamData = +{ + .y = 0, + .affineMode = 3, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 1, + .tileNum = 0, + .priority = 2, + .paletteNum = 0, + .affineParam = 0, +}; + +static const union AnimCmd sBallAnimSeq3[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd sBallAnimSeq5[] = +{ + ANIMCMD_FRAME(4, 1), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd sBallAnimSeq4[] = +{ + ANIMCMD_FRAME(8, 5), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd sBallAnimSeq6[] = +{ + ANIMCMD_FRAME(12, 1), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd sBallAnimSeq0[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sBallAnimSeq1[] = +{ + ANIMCMD_FRAME(4, 5), + ANIMCMD_FRAME(8, 5), + ANIMCMD_END, +}; + +static const union AnimCmd sBallAnimSeq2[] = +{ + ANIMCMD_FRAME(4, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +static const union AnimCmd *const sBallAnimSequences[] = +{ + sBallAnimSeq0, + sBallAnimSeq1, + sBallAnimSeq2, + + // unused? + sBallAnimSeq3, + sBallAnimSeq4, + sBallAnimSeq5, + sBallAnimSeq6, +}; + +static const union AffineAnimCmd sBallAffineAnimSeq0[] = +{ + AFFINEANIMCMD_FRAME(0, 0, 0, 1), + AFFINEANIMCMD_JUMP(0), +}; + +static const union AffineAnimCmd sBallAffineAnimSeq1[] = +{ + AFFINEANIMCMD_FRAME(0, 0, -3, 1), + AFFINEANIMCMD_JUMP(0), +}; + +static const union AffineAnimCmd sBallAffineAnimSeq2[] = +{ + AFFINEANIMCMD_FRAME(0, 0, 3, 1), + AFFINEANIMCMD_JUMP(0), +}; + +static const union AffineAnimCmd sBallAffineAnimSeq3[] = +{ + AFFINEANIMCMD_FRAME(256, 256, 0, 0), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd sBallAffineAnimSeq4[] = +{ + AFFINEANIMCMD_FRAME(0, 0, 25, 1), + AFFINEANIMCMD_JUMP(0), +}; + +static const union AffineAnimCmd *const sBallAffineAnimSequences[] = +{ + sBallAffineAnimSeq0, + sBallAffineAnimSeq1, + sBallAffineAnimSeq2, + sBallAffineAnimSeq3, + sBallAffineAnimSeq4, +}; + +static void objc_0804ABD4(struct Sprite *sprite); +const struct SpriteTemplate gBallSpriteTemplates[] = +{ + { + .tileTag = GFX_TAG_POKEBALL, + .paletteTag = GFX_TAG_POKEBALL, + .oam = &sBallOamData, + .anims = sBallAnimSequences, + .images = NULL, + .affineAnims = sBallAffineAnimSequences, + .callback = objc_0804ABD4, + }, + { + .tileTag = GFX_TAG_GREATBALL, + .paletteTag = GFX_TAG_GREATBALL, + .oam = &sBallOamData, + .anims = sBallAnimSequences, + .images = NULL, + .affineAnims = sBallAffineAnimSequences, + .callback = objc_0804ABD4, + }, + { + .tileTag = GFX_TAG_SAFARIBALL, + .paletteTag = GFX_TAG_SAFARIBALL, + .oam = &sBallOamData, + .anims = sBallAnimSequences, + .images = NULL, + .affineAnims = sBallAffineAnimSequences, + .callback = objc_0804ABD4, + }, + { + .tileTag = GFX_TAG_ULTRABALL, + .paletteTag = GFX_TAG_ULTRABALL, + .oam = &sBallOamData, + .anims = sBallAnimSequences, + .images = NULL, + .affineAnims = sBallAffineAnimSequences, + .callback = objc_0804ABD4, + }, + { + .tileTag = GFX_TAG_MASTERBALL, + .paletteTag = GFX_TAG_MASTERBALL, + .oam = &sBallOamData, + .anims = sBallAnimSequences, + .images = NULL, + .affineAnims = sBallAffineAnimSequences, + .callback = objc_0804ABD4, + }, + { + .tileTag = GFX_TAG_NETBALL, + .paletteTag = GFX_TAG_NETBALL, + .oam = &sBallOamData, + .anims = sBallAnimSequences, + .images = NULL, + .affineAnims = sBallAffineAnimSequences, + .callback = objc_0804ABD4, + }, + { + .tileTag = GFX_TAG_DIVEBALL, + .paletteTag = GFX_TAG_DIVEBALL, + .oam = &sBallOamData, + .anims = sBallAnimSequences, + .images = NULL, + .affineAnims = sBallAffineAnimSequences, + .callback = objc_0804ABD4, + }, + { + .tileTag = GFX_TAG_NESTBALL, + .paletteTag = GFX_TAG_NESTBALL, + .oam = &sBallOamData, + .anims = sBallAnimSequences, + .images = NULL, + .affineAnims = sBallAffineAnimSequences, + .callback = objc_0804ABD4, + }, + { + .tileTag = GFX_TAG_REPEATBALL, + .paletteTag = GFX_TAG_REPEATBALL, + .oam = &sBallOamData, + .anims = sBallAnimSequences, + .images = NULL, + .affineAnims = sBallAffineAnimSequences, + .callback = objc_0804ABD4, + }, + { + .tileTag = GFX_TAG_TIMERBALL, + .paletteTag = GFX_TAG_TIMERBALL, + .oam = &sBallOamData, + .anims = sBallAnimSequences, + .images = NULL, + .affineAnims = sBallAffineAnimSequences, + .callback = objc_0804ABD4, + }, + { + .tileTag = GFX_TAG_LUXURYBALL, + .paletteTag = GFX_TAG_LUXURYBALL, + .oam = &sBallOamData, + .anims = sBallAnimSequences, + .images = NULL, + .affineAnims = sBallAffineAnimSequences, + .callback = objc_0804ABD4, + }, + { + .tileTag = GFX_TAG_PREMIERBALL, + .paletteTag = GFX_TAG_PREMIERBALL, + .oam = &sBallOamData, + .anims = sBallAnimSequences, + .images = NULL, + .affineAnims = sBallAffineAnimSequences, + .callback = objc_0804ABD4, + }, +}; + +extern u32 ball_number_to_ball_processing_index(u16); // not sure of return type +extern void sub_80786EC(); +extern bool8 sub_8078718(struct Sprite *); +extern u8 sub_814086C(u8, u8, int, int, u8); +extern u8 sub_8141314(u8, u8, int, u8); + +static void sub_8046464(u8); +static void sub_80466E8(struct Sprite *); +static void sub_80466F4(struct Sprite *); +static void sub_8046760(struct Sprite *); +static void sub_80467F8(struct Sprite *); +static void sub_804684C(struct Sprite *); +static void sub_8046944(struct Sprite *); +static void sub_8046984(struct Sprite *); +static void sub_8046C78(struct Sprite *); +static void sub_8046E7C(struct Sprite *); +static void sub_8046E9C(struct Sprite *); +static void sub_8046FBC(struct Sprite *); +static void sub_8047074(struct Sprite *); +static void sub_80470C4(struct Sprite *); +static void sub_8047230(struct Sprite *); +static void sub_8047254(struct Sprite *); +static void sub_80473D0(struct Sprite *); +static void sub_804748C(struct Sprite *); +static void sub_8047638(struct Sprite *); +static void sub_80476E0(struct Sprite *); +static void sub_8047754(struct Sprite *); +static void sub_804780C(struct Sprite *); +static void sub_8047830(struct Sprite *); +static void oamc_804BEB4(struct Sprite *); +static u16 sub_8047978(u8); + +u8 sub_8046400(u16 a, u8 b) +{ + u8 taskId; + + gDoingBattleAnim = 1; + ewram17810[gActiveBank].unk0_3 = 1; + taskId = CreateTask(sub_8046464, 5); + gTasks[taskId].data[1] = a; + gTasks[taskId].data[2] = b; + gTasks[taskId].data[3] = gActiveBank; + return 0; +} + +static void sub_8046464(u8 taskId) +{ + bool8 sp0 = FALSE; + u16 r8; + u8 r5; + u16 ball; + u8 r4; + u8 spriteId; + + if (gTasks[taskId].data[0] == 0) + { + gTasks[taskId].data[0]++; + return; + } + r8 = gTasks[taskId].data[2]; + r5 = gTasks[taskId].data[3]; + if (GetBankSide(r5) != 0) + ball = GetMonData(&gEnemyParty[gBattlePartyID[r5]], MON_DATA_POKEBALL); + else + ball = GetMonData(&gPlayerParty[gBattlePartyID[r5]], MON_DATA_POKEBALL); + r4 = ball_number_to_ball_processing_index(ball); + sub_80478DC(r4); + spriteId = CreateSprite(&gBallSpriteTemplates[r4], 32, 80, 0x1D); + gSprites[spriteId].data0 = 0x80; + gSprites[spriteId].data1 = 0; + gSprites[spriteId].data7 = r8; + switch (r8) + { + case 0xFF: + gBankTarget = r5; + gSprites[spriteId].pos1.x = 24; + gSprites[spriteId].pos1.y = 68; + gSprites[spriteId].callback = sub_8047074; + break; + case 0xFE: + gSprites[spriteId].pos1.x = sub_8077ABC(r5, 0); + gSprites[spriteId].pos1.y = sub_8077ABC(r5, 1) + 24; + gBankTarget = r5; + gSprites[spriteId].data0 = 0; + gSprites[spriteId].callback = sub_8047254; + break; + default: + gBankTarget = GetBankByPlayerAI(1); + sp0 = TRUE; + break; + } + gSprites[spriteId].data6 = gBankTarget; + if (!sp0) + { + DestroyTask(taskId); + return; + } + gSprites[spriteId].data0 = 0x22; + gSprites[spriteId].data2 = sub_8077ABC(gBankTarget, 0); + gSprites[spriteId].data4 = sub_8077ABC(gBankTarget, 1) - 16; + gSprites[spriteId].data5 = -40; + sub_80786EC(&gSprites[spriteId]); + gSprites[spriteId].oam.affineParam = taskId; + gTasks[taskId].data[4] = gBankTarget; + gTasks[taskId].func = TaskDummy; + PlaySE(SE_NAGERU); +} + +static void objc_0804ABD4(struct Sprite *sprite) +{ + if (sub_8078718(sprite)) + { + u8 taskId = sprite->oam.affineParam; + u8 r5 = gTasks[taskId].data[4]; + u8 r8 = gTasks[taskId].data[2]; + u32 r4; // not sure of this type + + StartSpriteAnim(sprite, 1); + sprite->affineAnimPaused = TRUE; + sprite->pos1.x += sprite->pos2.x; + sprite->pos1.y += sprite->pos2.y; + sprite->pos2.x = 0; + sprite->pos2.y = 0; + sprite->data5 = 0; + r4 = ball_number_to_ball_processing_index(sub_8047978(r5)); + sub_814086C(sprite->pos1.x, sprite->pos1.y - 5, 1, 0x1C, r4); + sprite->data0 = sub_8141314(0, r5, 14, r4); + sprite->data6 = r5; + sprite->data7 = r8; + DestroyTask(taskId); + sprite->callback = sub_80466E8; + } +} + +static void sub_80466E8(struct Sprite *sprite) +{ + sprite->callback = sub_80466F4; +} + +static void sub_80466F4(struct Sprite *sprite) +{ + sprite->data5++; + if (sprite->data5 == 10) + { + sprite->data5 = 0; + sprite->callback = sub_8046760; + StartSpriteAffineAnim(&gSprites[gObjectBankIDs[sprite->data6]], 2); + AnimateSprite(&gSprites[gObjectBankIDs[sprite->data6]]); + gSprites[gObjectBankIDs[sprite->data6]].data1 = 0; + } +} + +static void sub_8046760(struct Sprite *sprite) +{ + sprite->data5++; + if (sprite->data5 == 11) + PlaySE(SE_SUIKOMU); + if (gSprites[gObjectBankIDs[sprite->data6]].affineAnimEnded) + { + StartSpriteAnim(sprite, 2); + gSprites[gObjectBankIDs[sprite->data6]].invisible = TRUE; + sprite->data5 = 0; + sprite->callback = sub_80467F8; + } + else + { + gSprites[gObjectBankIDs[sprite->data6]].data1 += 0x60; + gSprites[gObjectBankIDs[sprite->data6]].pos2.y = -gSprites[gObjectBankIDs[sprite->data6]].data1 >> 8; + } +} + +static void sub_80467F8(struct Sprite *sprite) +{ + if (sprite->animEnded) + { + sprite->data5++; + if (sprite->data5 == 1) + { + sprite->data3 = 0; + sprite->data4 = 32; + sprite->data5 = 0; + sprite->pos1.y += Cos(0, 32); + sprite->pos2.y = -Cos(0, sprite->data4); + sprite->callback = sub_804684C; + } + } +} + +static void sub_804684C(struct Sprite *sprite) +{ + bool8 r5 = FALSE; + + switch (sprite->data3 & 0xFF) + { + case 0: + sprite->pos2.y = -Cos(sprite->data5, sprite->data4); + sprite->data5 += 4 + (sprite->data3 >> 8); + if (sprite->data5 >= 64) + { + sprite->data4 -= 10; + sprite->data3 += 0x101; + if (sprite->data3 >> 8 == 4) + r5 = TRUE; + switch (sprite->data3 >> 8) + { + case 1: + PlaySE(SE_KON); + break; + case 2: + PlaySE(SE_KON2); + break; + case 3: + PlaySE(SE_KON3); + break; + default: + PlaySE(SE_KON4); + break; + } + } + break; + case 1: + sprite->pos2.y = -Cos(sprite->data5, sprite->data4); + sprite->data5 -= 4 + (sprite->data3 >> 8); + if (sprite->data5 <= 0) + { + sprite->data5 = 0; + sprite->data3 &= 0xFF00; + } + break; + } + if (r5) + { + sprite->data3 = 0; + sprite->pos1.y += Cos(64, 32); + sprite->pos2.y = 0; + if (sprite->data7 == 0) + { + sprite->callback = sub_8046C78; + } + else + { + sprite->callback = sub_8046944; + sprite->data4 = 1; + sprite->data5 = 0; + } + } +} + +static void sub_8046944(struct Sprite *sprite) +{ + sprite->data3++; + if (sprite->data3 == 31) + { + sprite->data3 = 0; + sprite->affineAnimPaused = TRUE; + StartSpriteAffineAnim(sprite, 1); + sprite->callback = sub_8046984; + PlaySE(SE_BOWA); + } +} + +static void sub_8046984(struct Sprite *sprite) +{ + switch (sprite->data3 & 0xFF) + { + case 0: + case 2: + sprite->pos2.x += sprite->data4; + sprite->data5 += sprite->data4; + sprite->affineAnimPaused = FALSE; + if (sprite->data5 > 3 || sprite->data5 < -3) + { + sprite->data3++; + sprite->data5 = 0; + } + break; + case 1: + sprite->data5++; + if (sprite->data5 == 1) + { + sprite->data5 = 0; + sprite->data4 = -sprite->data4; + sprite->data3++; + sprite->affineAnimPaused = FALSE; + if (sprite->data4 < 0) + ChangeSpriteAffineAnim(sprite, 2); + else + ChangeSpriteAffineAnim(sprite, 1); + } + else + { + sprite->affineAnimPaused = TRUE; + } + break; + case 3: + sprite->data3 += 0x100; + if (sprite->data3 >> 8 == sprite->data7) + { + sprite->callback = sub_8046C78; + } + else + { + if (sprite->data7 == 4 && sprite->data3 >> 8 == 3) + { + sprite->callback = sub_8046E7C; + sprite->affineAnimPaused = TRUE; + } + else + { + sprite->data3++; + sprite->affineAnimPaused = TRUE; + } + } + break; + case 4: + default: + sprite->data5++; + if (sprite->data5 == 31) + { + sprite->data5 = 0; + sprite->data3 &= 0xFF00; + StartSpriteAffineAnim(sprite, 3); + if (sprite->data4 < 0) + StartSpriteAffineAnim(sprite, 2); + else + StartSpriteAffineAnim(sprite, 1); + PlaySE(SE_BOWA); + } + break; + } +} + +static void sub_8046AD0(u8 taskId) +{ + u8 r6 = gTasks[taskId].data[2]; + u8 r3 = gTasks[taskId].data[1]; + u16 species = gTasks[taskId].data[0]; + + switch (gTasks[taskId].data[15]) + { + case 0: + default: + if (gTasks[taskId].data[8] < 3) + gTasks[taskId].data[8]++; + else + gTasks[taskId].data[15] = r6 + 1; + break; + case 1: + PlayCry1(species, r3); + DestroyTask(taskId); + break; + case 2: + StopCryAndClearCrySongs(); + gTasks[taskId].data[10] = 3; + gTasks[taskId].data[15] = 20; + break; + case 20: + if (gTasks[taskId].data[10] != 0) + { + gTasks[taskId].data[10]--; + break; + } + PlayCry4(species, r3, 1); + DestroyTask(taskId); + break; + case 3: + gTasks[taskId].data[10] = 6; + gTasks[taskId].data[15] = 30; + break; + case 30: + if (gTasks[taskId].data[10] != 0) + { + gTasks[taskId].data[10]--; + break; + } + gTasks[taskId].data[15]++; + // fall through + case 31: + if (!IsCryPlayingOrClearCrySongs()) + { + StopCryAndClearCrySongs(); + gTasks[taskId].data[10] = 3; + gTasks[taskId].data[15]++; + } + break; + case 32: + if (gTasks[taskId].data[10] != 0) + { + gTasks[taskId].data[10]--; + break; + } + PlayCry4(species, r3, 0); + DestroyTask(taskId); + break; + } +} + +static void sub_8046C78(struct Sprite *sprite) +{ + u8 r5 = sprite->data6; + u32 r4; // not sure of this type + + StartSpriteAnim(sprite, 1); + r4 = ball_number_to_ball_processing_index(sub_8047978(r5)); + sub_814086C(sprite->pos1.x, sprite->pos1.y - 5, 1, 0x1C, r4); + sprite->data0 = sub_8141314(1, sprite->data6, 14, r4); + sprite->callback = sub_8046E9C; + if (gMain.inBattle) + { + struct Pokemon *pkmn; + u16 species; + s8 r8; + u16 r4_2; + u8 taskId; + + if (GetBankSide(r5) != 0) + { + pkmn = &gEnemyParty[gBattlePartyID[r5]]; + r8 = 25; + } + else + { + pkmn = &gPlayerParty[gBattlePartyID[r5]]; + r8 = -25; + } + species = GetMonData(pkmn, MON_DATA_SPECIES); + if ((r5 == GetBankByPlayerAI(0) || r5 == GetBankByPlayerAI(1)) + && IsDoubleBattle() && ewram17840.unk9_0) + { + if (gBattleTypeFlags & BATTLE_TYPE_MULTI) + { + if (IsBGMPlaying()) + m4aMPlayStop(&gMPlay_BGM); + } + else + { + m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 128); + } + } + if (!IsDoubleBattle() || !ewram17840.unk9_0) + r4_2 = 0; + else if (r5 == GetBankByPlayerAI(0) || r5 == GetBankByPlayerAI(1)) + r4_2 = 1; + else + r4_2 = 2; + taskId = CreateTask(sub_8046AD0, 3); + gTasks[taskId].data[0] = species; + gTasks[taskId].data[1] = r8; + gTasks[taskId].data[2] = r4_2; + gTasks[taskId].data[15] = 0; + } + StartSpriteAffineAnim(&gSprites[gObjectBankIDs[sprite->data6]], 1); + AnimateSprite(&gSprites[gObjectBankIDs[sprite->data6]]); + gSprites[gObjectBankIDs[sprite->data6]].data1 = 0x1000; +} + +static void sub_8046E7C(struct Sprite *sprite) +{ + sprite->animPaused = TRUE; + sprite->callback = sub_8046FBC; + sprite->data3 = 0; + sprite->data4 = 0; + sprite->data5 = 0; +} + +static void sub_8046E9C(struct Sprite *sprite) +{ + bool8 r7 = FALSE; + u8 r4 = sprite->data6; + + gSprites[gObjectBankIDs[r4]].invisible = FALSE; + if (sprite->animEnded) + sprite->invisible = TRUE; + if (gSprites[gObjectBankIDs[r4]].affineAnimEnded) + { + StartSpriteAffineAnim(&gSprites[gObjectBankIDs[r4]], 0); + r7 = TRUE; + } + else + { + gSprites[gObjectBankIDs[r4]].data1 -= 288; + gSprites[gObjectBankIDs[r4]].pos2.y = gSprites[gObjectBankIDs[r4]].data1 >> 8; + } + if (sprite->animEnded && r7) + { + s32 i; + u32 r3; + + gSprites[gObjectBankIDs[r4]].pos2.y = 0; + gDoingBattleAnim = 0; + ewram17810[r4].unk0_3 = 0; + FreeSpriteOamMatrix(sprite); + DestroySprite(sprite); + for (r3 = 0, i = 0; i < 4; i++) + { + if (ewram17810[i].unk0_3 == 0) + r3++; + } + if (r3 == 4) + { + for (i = 0; i < 12; i++) + sub_804794C(i); + } + } +} + +static void sub_8046FBC(struct Sprite *sprite) +{ + u8 r7 = sprite->data6; + + sprite->data4++; + if (sprite->data4 == 40) + { + return; + } + else if (sprite->data4 == 95) + { + gDoingBattleAnim = 0; + m4aMPlayAllStop(); + PlaySE(BGM_FANFA5); + } + else if (sprite->data4 == 315) + { + FreeOamMatrix(gSprites[gObjectBankIDs[sprite->data6]].oam.matrixNum); + DestroySprite(&gSprites[gObjectBankIDs[sprite->data6]]); + DestroySpriteAndFreeResources(sprite); + if (gMain.inBattle) + ewram17810[r7].unk0_3 = 0; + } +} + +static void sub_8047074(struct Sprite *sprite) +{ + sprite->data0 = 25; + sprite->data2 = sub_8077ABC(sprite->data6, 2); + sprite->data4 = sub_8077ABC(sprite->data6, 3) + 24; + sprite->data5 = -30; + sprite->oam.affineParam = sprite->data6; + sub_80786EC(sprite); + sprite->callback = sub_80470C4; +} + +#define HIBYTE(x) (((x) >> 8) & 0xFF) + +static void sub_80470C4(struct Sprite *sprite) +{ + u32 r6; + u32 r7; + + if (HIBYTE(sprite->data7) >= 35 && HIBYTE(sprite->data7) < 80) + { + s16 r4; + + if ((sprite->oam.affineParam & 0xFF00) == 0) + { + r6 = sprite->data1 & 1; + r7 = sprite->data2 & 1; + sprite->data1 = ((sprite->data1 / 3) & ~1) | r6; + sprite->data2 = ((sprite->data2 / 3) & ~1) | r7; + StartSpriteAffineAnim(sprite, 4); + } + r4 = sprite->data0; + sub_8078B5C(sprite); + sprite->data7 += sprite->data6 / 3; + sprite->pos2.y += Sin(HIBYTE(sprite->data7), sprite->data5); + sprite->oam.affineParam += 0x100; + if ((sprite->oam.affineParam >> 8) % 3 != 0) + sprite->data0 = r4; + else + sprite->data0 = r4 - 1; + if (HIBYTE(sprite->data7) >= 80) + { + r6 = sprite->data1 & 1; + r7 = sprite->data2 & 1; + sprite->data1 = ((sprite->data1 * 3) & ~1) | r6; + sprite->data2 = ((sprite->data2 * 3) & ~1) | r7; + } + } + else + { + if (sub_8078718(sprite)) + { + sprite->pos1.x += sprite->pos2.x; + sprite->pos1.y += sprite->pos2.y; + sprite->pos2.y = 0; + sprite->pos2.x = 0; + sprite->data6 = sprite->oam.affineParam & 0xFF; + sprite->data0 = 0; + if (IsDoubleBattle() && ewram17840.unk9_0 + && sprite->data6 == GetBankByPlayerAI(2)) + sprite->callback = sub_8047230; + else + sprite->callback = sub_8046C78; + StartSpriteAffineAnim(sprite, 0); + } + } +} + +static void sub_8047230(struct Sprite *sprite) +{ + if (sprite->data0++ > 24) + { + sprite->data0 = 0; + sprite->callback = sub_8046C78; + } +} + +static void sub_8047254(struct Sprite *sprite) +{ + sprite->data0++; + if (sprite->data0 > 15) + { + sprite->data0 = 0; + if (IsDoubleBattle() && ewram17840.unk9_0 + && sprite->data6 == GetBankByPlayerAI(3)) + sprite->callback = sub_8047230; + else + sprite->callback = sub_8046C78; + } +} + +static u8 sub_80472B0(u8 a, u8 b, u8 c, u8 d) +{ + return sub_814086C(a, b, c, d, 0); +} + +static u8 sub_80472D8(u8 a, u8 b, u32 c) +{ + return sub_8141314(a, b, c, 0); +} + +void CreatePokeballSprite(u8 a, u8 b, u8 x, u8 y, u8 e, u8 f, u8 g, u32 h) +{ + u8 spriteId; + + LoadCompressedObjectPic(&sBallSpriteSheets[0]); + LoadCompressedObjectPalette(&sBallSpritePalettes[0]); + spriteId = CreateSprite(&gBallSpriteTemplates[0], x, y, f); + gSprites[spriteId].data0 = a; + gSprites[spriteId].data5 = gSprites[a].pos1.x; + gSprites[spriteId].data6 = gSprites[a].pos1.y; + gSprites[a].pos1.x = x; + gSprites[a].pos1.y = y; + gSprites[spriteId].data1 = g; + gSprites[spriteId].data2 = b; + gSprites[spriteId].data3 = h; + gSprites[spriteId].data4 = h >> 16; + gSprites[spriteId].oam.priority = e; + gSprites[spriteId].callback = sub_80473D0; + gSprites[a].invisible = TRUE; +} + +static void sub_80473D0(struct Sprite *sprite) +{ + if (sprite->data1 == 0) + { + u8 r5; + u8 r7 = sprite->data0; + u8 r8 = sprite->data2; + u32 r4 = (u16)sprite->data3 | ((u16)sprite->data4 << 16); + + if (sprite->subpriority != 0) + r5 = sprite->subpriority - 1; + else + r5 = 0; + StartSpriteAnim(sprite, 1); + sub_80472B0(sprite->pos1.x, sprite->pos1.y - 5, sprite->oam.priority, r5); + sprite->data1 = sub_80472D8(1, r8, r4); + sprite->callback = sub_804748C; + gSprites[r7].invisible = FALSE; + StartSpriteAffineAnim(&gSprites[r7], 1); + AnimateSprite(&gSprites[r7]); + gSprites[r7].data1 = 0x1000; + sprite->data7 = 0; + } + else + { + sprite->data1--; + } +} + +static void sub_804748C(struct Sprite *sprite) +{ + bool8 r12 = FALSE; + bool8 r6 = FALSE; + u8 r3 = sprite->data0; + u16 var1; + u16 var2; + + if (sprite->animEnded) + sprite->invisible = TRUE; + if (gSprites[r3].affineAnimEnded) + { + StartSpriteAffineAnim(&gSprites[r3], 0); + r12 = TRUE; + } + var1 = (sprite->data5 - sprite->pos1.x) * sprite->data7 / 128 + sprite->pos1.x; + var2 = (sprite->data6 - sprite->pos1.y) * sprite->data7 / 128 + sprite->pos1.y; + gSprites[r3].pos1.x = var1; + gSprites[r3].pos1.y = var2; + if (sprite->data7 < 128) + { + s16 sine = -(gSineTable[(u8)sprite->data7] / 8); + + sprite->data7 += 4; + gSprites[r3].pos2.x = sine; + gSprites[r3].pos2.y = sine; + } + else + { + gSprites[r3].pos1.x = sprite->data5; + gSprites[r3].pos1.y = sprite->data6; + gSprites[r3].pos2.x = 0; + gSprites[r3].pos2.y = 0; + r6 = TRUE; + } + if (sprite->animEnded && r12 && r6) + DestroySpriteAndFreeResources(sprite); +} + +u8 sub_8047580(u8 a, u8 b, u8 x, u8 y, u8 e, u8 f, u8 g, u32 h) +{ + u8 spriteId; + + LoadCompressedObjectPic(&sBallSpriteSheets[0]); + LoadCompressedObjectPalette(&sBallSpritePalettes[0]); + spriteId = CreateSprite(&gBallSpriteTemplates[0], x, y, f); + gSprites[spriteId].data0 = a; + gSprites[spriteId].data1 = g; + gSprites[spriteId].data2 = b; + gSprites[spriteId].data3 = h; + gSprites[spriteId].data4 = h >> 16; + gSprites[spriteId].oam.priority = e; + gSprites[spriteId].callback = sub_8047638; + return spriteId; +} + +static void sub_8047638(struct Sprite *sprite) +{ + if (sprite->data1 == 0) + { + u8 r6; + u8 r7 = sprite->data0; + u8 r8 = sprite->data2; + u32 r5 = (u16)sprite->data3 | ((u16)sprite->data4 << 16); + + if (sprite->subpriority != 0) + r6 = sprite->subpriority - 1; + else + r6 = 0; + StartSpriteAnim(sprite, 1); + sub_80472B0(sprite->pos1.x, sprite->pos1.y - 5, sprite->oam.priority, r6); + sprite->data1 = sub_80472D8(1, r8, r5); + sprite->callback = sub_80476E0; + StartSpriteAffineAnim(&gSprites[r7], 2); + AnimateSprite(&gSprites[r7]); + gSprites[r7].data1 = 0; + } + else + { + sprite->data1--; + } +} + +static void sub_80476E0(struct Sprite *sprite) +{ + u8 r1; + + sprite->data5++; + if (sprite->data5 == 11) + PlaySE(SE_SUIKOMU); + r1 = sprite->data0; + if (gSprites[r1].affineAnimEnded) + { + StartSpriteAnim(sprite, 2); + gSprites[r1].invisible = TRUE; + sprite->data5 = 0; + sprite->callback = sub_8047754; + } + else + { + gSprites[r1].data1 += 96; + gSprites[r1].pos2.y = -gSprites[r1].data1 >> 8; + } +} + +static void sub_8047754(struct Sprite *sprite) +{ + if (sprite->animEnded) + sprite->callback = SpriteCallbackDummy; +} + +void obj_delete_and_free_associated_resources_(struct Sprite *sprite) +{ + DestroySpriteAndFreeResources(sprite); +} + +void sub_804777C(u8 a) +{ + struct Sprite *sprite = &gSprites[gHealthboxIDs[a]]; + + sprite->data0 = 5; + sprite->data1 = 0; + sprite->pos2.x = 0x73; + sprite->pos2.y = 0; + sprite->callback = sub_8047830; + if (GetBankSide(a) != 0) + { + sprite->data0 = -sprite->data0; + sprite->data1 = -sprite->data1; + sprite->pos2.x = -sprite->pos2.x; + sprite->pos2.y = -sprite->pos2.y; + } + gSprites[sprite->data5].callback(&gSprites[sprite->data5]); + if (GetBankIdentity(a) == 2) + sprite->callback = sub_804780C; +} + +static void sub_804780C(struct Sprite *sprite) +{ + sprite->data1++; + if (sprite->data1 == 20) + { + sprite->data1 = 0; + sprite->callback = sub_8047830; + } +} + +static void sub_8047830(struct Sprite *sprite) +{ + sprite->pos2.x -= sprite->data0; + sprite->pos2.y -= sprite->data1; + if (sprite->pos2.x == 0 && sprite->pos2.y == 0) + sprite->callback = SpriteCallbackDummy; +} + +void sub_8047858(u8 a) +{ + u8 spriteId; + + spriteId = CreateInvisibleSpriteWithCallback(oamc_804BEB4); + gSprites[spriteId].data0 = 1; + gSprites[spriteId].data1 = gHealthboxIDs[a]; + gSprites[spriteId].callback = oamc_804BEB4; +} + +static void oamc_804BEB4(struct Sprite *sprite) +{ + u8 r1 = sprite->data1; + + gSprites[r1].pos2.y = sprite->data0; + sprite->data0 = -sprite->data0; + sprite->data2++; + if (sprite->data2 == 21) + { + gSprites[r1].pos2.x = 0; + gSprites[r1].pos2.y = 0; + DestroySprite(sprite); + } +} + +void sub_80478DC(u8 a) +{ + u16 var; + + if (GetSpriteTileStartByTag(sBallSpriteSheets[a].tag) == 0xFFFF) + { + LoadCompressedObjectPic(&sBallSpriteSheets[a]); + LoadCompressedObjectPalette(&sBallSpritePalettes[a]); + } + switch (a) + { + case 6: + case 10: + case 11: + break; + default: + var = GetSpriteTileStartByTag(sBallSpriteSheets[a].tag); + LZDecompressVram(gUnknown_08D030D0, (void *)(VRAM + 0x10100 + var * 32)); + break; + } +} + +void sub_804794C(u8 a) +{ + FreeSpriteTilesByTag(sBallSpriteSheets[a].tag); + FreeSpritePaletteByTag(sBallSpritePalettes[a].tag); +} + +static u16 sub_8047978(u8 a) +{ + if (GetBankSide(a) == 0) + return GetMonData(&gPlayerParty[gBattlePartyID[a]], MON_DATA_POKEBALL); + else + return GetMonData(&gEnemyParty[gBattlePartyID[a]], MON_DATA_POKEBALL); +} diff --git a/src/pokedex.c b/src/pokedex.c index 97bac3390..17ae9a597 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -1,29 +1,84 @@ + #include "global.h" #include "gba/m4a_internal.h" #include "pokedex.h" -#include "asm.h" +#include "battle.h" +#include "data2.h" #include "decompress.h" #include "event_data.h" +#include "graphics.h" #include "m4a.h" #include "main.h" #include "menu.h" +#include "menu_cursor.h" #include "palette.h" +#include "pokedex_area_screen.h" +#include "pokedex_cry_screen.h" +#include "pokemon.h" #include "rng.h" +#include "rom4.h" #include "songs.h" #include "sound.h" +#include "species.h" #include "string_util.h" #include "strings.h" #include "task.h" #include "trig.h" +#include "unknown_task.h" + +#define NATIONAL_DEX_COUNT 386 + +struct PokedexListItem +{ + u16 dexNum; + u16 seen:1; + u16 owned:1; +}; -// I'm #define-ing these just for now so I can keep using the old unkXXX member names -#define unk60E selectedPokemon -#define unk612 dexMode -#define unk616 dexOrder -#define unk64D selectedScreen -#define unk650 menuIsOpen -#define unk652 menuCursorPos -#define unk654 menuY +struct PokedexView +{ + struct PokedexListItem unk0[NATIONAL_DEX_COUNT]; + u16 unk608; + u8 unk60A_1:1; + u8 unk60A_2:1; + u8 unk60B; + u16 pokemonListCount; + u16 selectedPokemon; + u16 unk610; + u16 dexMode; + u16 unk614; + u16 dexOrder; + u16 unk618; + u16 unk61A; + u16 unk61C; + u16 unk61E[4]; + u16 selectedMonSpriteId; + u16 unk628; + u16 unk62A; + u8 unk62C; + u8 unk62D; + u8 unk62E; + u8 unk62F; + s16 unk630; + s16 unk632; + u16 unk634; + u16 unk636; + u16 unk638; + u16 unk63A[4]; + u8 filler642[8]; + u8 unk64A; + u8 unk64B; + u8 unk64C_1:1; + u8 selectedScreen; + u8 descriptionPageNum; + u8 unk64F; + u8 menuIsOpen; //menuIsOpen + u8 unk651; + u16 menuCursorPos; //Menu cursor position + s16 menuY; //Menu Y position (inverted because we use REG_BG0VOFS for this) + u8 unk656[8]; + u8 unk65E[8]; +}; enum { @@ -44,8 +99,8 @@ struct PokedexEntry /*0x00*/ u8 categoryName[12]; /*0x0C*/ u16 height; //in decimeters /*0x0E*/ u16 weight; //in hectograms - /*0x10*/ u8 *descriptionPage1; - /*0x14*/ u8 *descriptionPage2; + /*0x10*/ const u8 *descriptionPage1; + /*0x14*/ const u8 *descriptionPage2; /*0x18*/ u16 unused; /*0x1A*/ u16 pokemonScale; /*0x1C*/ u16 pokemonOffset; @@ -53,61 +108,1188 @@ struct PokedexEntry /*0x20*/ u16 trainerOffset; }; /*size = 0x24*/ +struct UnknownStruct2 +{ + const u8 *text1; + const u8 *text2; +}; + +struct UnknownStruct1 +{ + const struct UnknownStruct2 *unk0; + u8 unk4; + u8 unk5; + u16 unk6; +}; + +struct UnknownStruct3 +{ + const u8 *text; + u8 unk4; + u8 unk5; + u8 unk6; +}; + +struct UnknownStruct4 +{ + const u8 *text; + u8 unk4; + u8 unk5; + u8 unk6; + u8 unk7; + u8 unk8; + u8 unk9; +}; + extern struct MusicPlayerInfo gMPlay_BGM; extern u8 gReservedSpritePaletteCount; extern struct PokedexView *gPokedexView; +extern struct SpriteTemplate gUnknown_02024E8C; extern u16 gUnknown_0202FFB8; extern u8 gUnknown_0202FFBA; -extern u8 gUnknown_03005CE8; -extern u8 gPokedexMenu_Gfx[]; -extern u8 gUnknown_08E96738[]; -extern u8 gUnknown_08E9C6DC[]; -extern u8 gUnknown_08E96888[]; -extern u8 gUnknown_08E96994[]; -extern struct SpriteSheet gUnknown_083A05CC; -extern struct SpritePalette gUnknown_083A05DC[]; -extern u8 gUnknown_0839FA7C[]; -extern u8 gUnknown_0839F67C[]; -extern u8 gPokedexMenu_Pal[]; -extern u8 gUnknown_0839F73C[]; -extern u8 gUnknown_083A05EC[]; -extern u8 gUnknown_083A05F1[]; -extern struct SpriteTemplate gSpriteTemplate_83A053C; -extern struct SpriteTemplate gSpriteTemplate_83A0524; -extern struct SpriteTemplate gSpriteTemplate_83A0554; -extern struct SpriteTemplate gSpriteTemplate_83A056C; -extern struct SpriteTemplate gSpriteTemplate_83A0584; -extern struct SpriteTemplate gSpriteTemplate_83A059C; -extern struct SpriteTemplate gSpriteTemplate_83A05B4; extern struct PokedexListItem *gUnknown_0202FFBC; +extern u8 gUnknown_03005CE8; extern IntrCallback gUnknown_03005CEC; -extern u8 gUnknown_08E96BD4[]; -extern u8 gUnknown_083A05F8[]; -extern u8 gUnknown_0839F8A0[]; -extern u8 gUnknown_0839F988[]; extern u8 gUnknown_03005E98; -extern u8 gUnknown_083B4EC4[]; -extern u8 gUnknown_08E96ACC[]; -extern u8 gUnknown_08E96B58[]; - -extern struct PokedexEntry gPokedexEntries[]; - -extern void m4aMPlayVolumeControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u16 volume); -extern bool8 BeginNormalPaletteFade(u32, s8, u8, u8, u16); -extern void remove_some_task(void); -extern u8 sub_8091E3C(void); -extern void DisableNationalPokedex(void); -extern void sub_805469C(void); -extern u16 HoennToNationalOrder(u16); -extern u16 NationalToHoennOrder(u16); -extern u16 gPokedexOrder_Alphabetical[]; -extern u16 gPokedexOrder_Weight[]; -extern u16 gPokedexOrder_Height[]; - -u16 NationalPokedexNumToSpecies(u16); +extern const u8 gPokedexMenu_Gfx[]; +extern const u8 gUnknown_08E96738[]; +extern const u8 gUnknown_08E96888[]; +extern const u8 gUnknown_08E96994[]; +extern const u8 gUnknown_08E9C6DC[]; +extern const u8 gUnknown_08D00524[]; +extern const u8 gUnknown_08E96BD4[]; +extern const u8 gUnknown_08E96ACC[]; +extern const u8 gUnknown_08E96B58[]; +extern const u16 gPokedexMenu_Pal[]; +extern const u16 gPokedexMenu2_Pal[]; +extern const struct CompressedSpriteSheet gTrainerFrontPicTable[]; +extern const struct MonCoords gTrainerFrontPicCoords[]; +extern const struct PokedexEntry gPokedexEntries[]; +extern const u8 gPokedexMenuSearch_Gfx[]; +extern const u8 gUnknown_08E96D2C[]; +extern const u16 gPokedexMenuSearch_Pal[]; +extern const u8 gTypeNames[][7]; +extern const u8 gPokedexMenu2_Gfx[]; + +static u8 sub_8091E3C(void); + +static const u16 sPokedexSearchPalette[] = INCBIN_U16("graphics/pokedex/search.gbapal"); +static const u16 sNationalPokedexPalette[] = INCBIN_U16("graphics/pokedex/national.gbapal"); +const u8 gEmptySpacce_839F7FC[0xA4] = {0}; +static const u8 gUnknown_0839F8A0[] = INCBIN_U8("graphics/pokedex/pokedex_cry_layout.bin.lz"); +static const u8 gUnknown_0839F988[] = INCBIN_U8("graphics/pokedex/pokedex_size_layout.bin.lz"); +static const u8 gUnknown_0839FA7C[] = INCBIN_U8("graphics/pokedex/noball.4bpp.lz"); +#include "data/pokedex_orders.h" +static const struct OamData gOamData_83A0404 = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; +static const struct OamData gOamData_83A040C = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 1, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; +static const struct OamData gOamData_83A0414 = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 1, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; +static const struct OamData gOamData_83A041C = +{ + .y = 160, + .affineMode = 0, + .objMode = 2, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 2, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; +static const struct OamData gOamData_83A0424 = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 1, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; +static const struct OamData gOamData_83A042C = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 2, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; +static const union AnimCmd gSpriteAnim_83A0434[] = +{ + ANIMCMD_FRAME(3, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83A043C[] = +{ + ANIMCMD_FRAME(1, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83A0444[] = +{ + ANIMCMD_FRAME(16, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83A044C[] = +{ + ANIMCMD_FRAME(32, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83A0454[] = +{ + ANIMCMD_FRAME(64, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83A045C[] = +{ + ANIMCMD_FRAME(96, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83A0464[] = +{ + ANIMCMD_FRAME(128, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83A046C[] = +{ + ANIMCMD_FRAME(160, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83A0474[] = +{ + ANIMCMD_FRAME(192, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83A047C[] = +{ + ANIMCMD_FRAME(224, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83A0484[] = +{ + ANIMCMD_FRAME(226, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83A048C[] = +{ + ANIMCMD_FRAME(228, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83A0494[] = +{ + ANIMCMD_FRAME(230, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83A049C[] = +{ + ANIMCMD_FRAME(232, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83A04A4[] = +{ + ANIMCMD_FRAME(234, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83A04AC[] = +{ + ANIMCMD_FRAME(236, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83A04B4[] = +{ + ANIMCMD_FRAME(238, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83A04BC[] = +{ + ANIMCMD_FRAME(240, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83A04C4[] = +{ + ANIMCMD_FRAME(242, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83A04CC[] = +{ + ANIMCMD_FRAME(4, 30), + ANIMCMD_END, +}; +static const union AnimCmd *const gSpriteAnimTable_83A04D4[] = +{ + gSpriteAnim_83A0434, +}; +static const union AnimCmd *const gSpriteAnimTable_83A04D8[] = +{ + gSpriteAnim_83A043C, +}; +static const union AnimCmd *const gSpriteAnimTable_83A04DC[] = +{ + gSpriteAnim_83A0444, +}; +static const union AnimCmd *const gSpriteAnimTable_83A04E0[] = +{ + gSpriteAnim_83A044C, + gSpriteAnim_83A0454, + gSpriteAnim_83A045C, + gSpriteAnim_83A0464, +}; +static const union AnimCmd *const gSpriteAnimTable_83A04F0[] = +{ + gSpriteAnim_83A046C, + gSpriteAnim_83A0474, +}; +static const union AnimCmd *const gSpriteAnimTable_83A04F8[] = +{ + gSpriteAnim_83A047C, + gSpriteAnim_83A0484, + gSpriteAnim_83A048C, + gSpriteAnim_83A0494, + gSpriteAnim_83A049C, + gSpriteAnim_83A04A4, + gSpriteAnim_83A04AC, + gSpriteAnim_83A04B4, + gSpriteAnim_83A04BC, + gSpriteAnim_83A04C4, +}; +static const union AnimCmd *const gSpriteAnimTable_83A0520[] = +{ + gSpriteAnim_83A04CC, +}; +static void sub_808EF38(struct Sprite *); +static const struct SpriteTemplate gSpriteTemplate_83A0524 = +{ + .tileTag = 4096, + .paletteTag = 4096, + .oam = &gOamData_83A0404, + .anims = gSpriteAnimTable_83A04D4, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_808EF38, +}; +static void sub_808EF8C(struct Sprite *); +static const struct SpriteTemplate gSpriteTemplate_83A053C = +{ + .tileTag = 4096, + .paletteTag = 4096, + .oam = &gOamData_83A040C, + .anims = gSpriteAnimTable_83A04D8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_808EF8C, +}; +static void sub_808F08C(struct Sprite *); +static const struct SpriteTemplate gSpriteTemplate_83A0554 = +{ + .tileTag = 4096, + .paletteTag = 4096, + .oam = &gOamData_83A0414, + .anims = gSpriteAnimTable_83A04E0, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_808F08C, +}; +static void sub_808F0B4(struct Sprite *); +static const struct SpriteTemplate gSpriteTemplate_83A056C = +{ + .tileTag = 4096, + .paletteTag = 4096, + .oam = &gOamData_83A041C, + .anims = gSpriteAnimTable_83A04DC, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_808F0B4, +}; +static void sub_808ED94(struct Sprite *); +static const struct SpriteTemplate gSpriteTemplate_83A0584 = +{ + .tileTag = 4096, + .paletteTag = 4096, + .oam = &gOamData_83A0424, + .anims = gSpriteAnimTable_83A04F0, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_808ED94, +}; +static const struct SpriteTemplate gSpriteTemplate_83A059C = +{ + .tileTag = 4096, + .paletteTag = 4096, + .oam = &gOamData_83A042C, + .anims = gSpriteAnimTable_83A04F8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_808ED94, +}; +static void sub_808F168(struct Sprite *); +static const struct SpriteTemplate gSpriteTemplate_83A05B4 = +{ + .tileTag = 4096, + .paletteTag = 4096, + .oam = &gOamData_83A042C, + .anims = gSpriteAnimTable_83A0520, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_808F168, +}; +static const struct CompressedSpriteSheet gUnknown_083A05CC[] = +{ + {gPokedexMenu2_Gfx, 0x1F00, 0x1000}, + {NULL, 0, 0}, +}; +static const struct SpritePalette gUnknown_083A05DC[] = +{ + {gPokedexMenu_Pal, 0x1000}, + {NULL, 0}, +}; +static const u8 gUnknown_083A05EC[] = {2, 4, 8, 16, 32}; +static const u8 gUnknown_083A05F1[] = {16, 8, 4, 2, 1}; +const u8 gEmptySpacce_83A05F6[] = {0, 0}; // Padding, maybe? +static const u8 gUnknown_083A05F8[] = _(""); +// TODO: include German entries +#include "data/pokedex_entries_en.h" +static const u16 gUnknown_083B4EC4[16] = {0}; +static const u8 *const sMonFootprintTable[] = +{ + gMonFootprint_Bulbasaur, + gMonFootprint_Bulbasaur, + gMonFootprint_Ivysaur, + gMonFootprint_Venusaur, + gMonFootprint_Charmander, + gMonFootprint_Charmeleon, + gMonFootprint_Charizard, + gMonFootprint_Squirtle, + gMonFootprint_Wartortle, + gMonFootprint_Blastoise, + gMonFootprint_Caterpie, + gMonFootprint_Metapod, + gMonFootprint_Butterfree, + gMonFootprint_Weedle, + gMonFootprint_Kakuna, + gMonFootprint_Beedrill, + gMonFootprint_Pidgey, + gMonFootprint_Pidgeotto, + gMonFootprint_Pidgeot, + gMonFootprint_Rattata, + gMonFootprint_Raticate, + gMonFootprint_Spearow, + gMonFootprint_Fearow, + gMonFootprint_Ekans, + gMonFootprint_Arbok, + gMonFootprint_Pikachu, + gMonFootprint_Raichu, + gMonFootprint_Sandshrew, + gMonFootprint_Sandslash, + gMonFootprint_NidoranF, + gMonFootprint_Nidorina, + gMonFootprint_Nidoqueen, + gMonFootprint_NidoranM, + gMonFootprint_Nidorino, + gMonFootprint_Nidoking, + gMonFootprint_Clefairy, + gMonFootprint_Clefable, + gMonFootprint_Vulpix, + gMonFootprint_Ninetales, + gMonFootprint_Jigglypuff, + gMonFootprint_Wigglytuff, + gMonFootprint_Zubat, + gMonFootprint_Golbat, + gMonFootprint_Oddish, + gMonFootprint_Gloom, + gMonFootprint_Vileplume, + gMonFootprint_Paras, + gMonFootprint_Parasect, + gMonFootprint_Venonat, + gMonFootprint_Venomoth, + gMonFootprint_Diglett, + gMonFootprint_Dugtrio, + gMonFootprint_Meowth, + gMonFootprint_Persian, + gMonFootprint_Psyduck, + gMonFootprint_Golduck, + gMonFootprint_Mankey, + gMonFootprint_Primeape, + gMonFootprint_Growlithe, + gMonFootprint_Arcanine, + gMonFootprint_Poliwag, + gMonFootprint_Poliwhirl, + gMonFootprint_Poliwrath, + gMonFootprint_Abra, + gMonFootprint_Kadabra, + gMonFootprint_Alakazam, + gMonFootprint_Machop, + gMonFootprint_Machoke, + gMonFootprint_Machamp, + gMonFootprint_Bellsprout, + gMonFootprint_Weepinbell, + gMonFootprint_Victreebel, + gMonFootprint_Tentacool, + gMonFootprint_Tentacruel, + gMonFootprint_Geodude, + gMonFootprint_Graveler, + gMonFootprint_Golem, + gMonFootprint_Ponyta, + gMonFootprint_Rapidash, + gMonFootprint_Slowpoke, + gMonFootprint_Slowbro, + gMonFootprint_Magnemite, + gMonFootprint_Magneton, + gMonFootprint_Farfetchd, + gMonFootprint_Doduo, + gMonFootprint_Dodrio, + gMonFootprint_Seel, + gMonFootprint_Dewgong, + gMonFootprint_Grimer, + gMonFootprint_Muk, + gMonFootprint_Shellder, + gMonFootprint_Cloyster, + gMonFootprint_Gastly, + gMonFootprint_Haunter, + gMonFootprint_Gengar, + gMonFootprint_Onix, + gMonFootprint_Drowzee, + gMonFootprint_Hypno, + gMonFootprint_Krabby, + gMonFootprint_Kingler, + gMonFootprint_Voltorb, + gMonFootprint_Electrode, + gMonFootprint_Exeggcute, + gMonFootprint_Exeggutor, + gMonFootprint_Cubone, + gMonFootprint_Marowak, + gMonFootprint_Hitmonlee, + gMonFootprint_Hitmonchan, + gMonFootprint_Lickitung, + gMonFootprint_Koffing, + gMonFootprint_Weezing, + gMonFootprint_Rhyhorn, + gMonFootprint_Rhydon, + gMonFootprint_Chansey, + gMonFootprint_Tangela, + gMonFootprint_Kangaskhan, + gMonFootprint_Horsea, + gMonFootprint_Seadra, + gMonFootprint_Goldeen, + gMonFootprint_Seaking, + gMonFootprint_Staryu, + gMonFootprint_Starmie, + gMonFootprint_Mrmime, + gMonFootprint_Scyther, + gMonFootprint_Jynx, + gMonFootprint_Electabuzz, + gMonFootprint_Magmar, + gMonFootprint_Pinsir, + gMonFootprint_Tauros, + gMonFootprint_Magikarp, + gMonFootprint_Gyarados, + gMonFootprint_Lapras, + gMonFootprint_Ditto, + gMonFootprint_Eevee, + gMonFootprint_Vaporeon, + gMonFootprint_Jolteon, + gMonFootprint_Flareon, + gMonFootprint_Porygon, + gMonFootprint_Omanyte, + gMonFootprint_Omastar, + gMonFootprint_Kabuto, + gMonFootprint_Kabutops, + gMonFootprint_Aerodactyl, + gMonFootprint_Snorlax, + gMonFootprint_Articuno, + gMonFootprint_Zapdos, + gMonFootprint_Moltres, + gMonFootprint_Dratini, + gMonFootprint_Dragonair, + gMonFootprint_Dragonite, + gMonFootprint_Mewtwo, + gMonFootprint_Mew, + gMonFootprint_Chikorita, + gMonFootprint_Bayleef, + gMonFootprint_Meganium, + gMonFootprint_Cyndaquil, + gMonFootprint_Quilava, + gMonFootprint_Typhlosion, + gMonFootprint_Totodile, + gMonFootprint_Croconaw, + gMonFootprint_Feraligatr, + gMonFootprint_Sentret, + gMonFootprint_Furret, + gMonFootprint_Hoothoot, + gMonFootprint_Noctowl, + gMonFootprint_Ledyba, + gMonFootprint_Ledian, + gMonFootprint_Spinarak, + gMonFootprint_Ariados, + gMonFootprint_Crobat, + gMonFootprint_Chinchou, + gMonFootprint_Lanturn, + gMonFootprint_Pichu, + gMonFootprint_Cleffa, + gMonFootprint_Igglybuff, + gMonFootprint_Togepi, + gMonFootprint_Togetic, + gMonFootprint_Natu, + gMonFootprint_Xatu, + gMonFootprint_Mareep, + gMonFootprint_Flaaffy, + gMonFootprint_Ampharos, + gMonFootprint_Bellossom, + gMonFootprint_Marill, + gMonFootprint_Azumarill, + gMonFootprint_Sudowoodo, + gMonFootprint_Politoed, + gMonFootprint_Hoppip, + gMonFootprint_Skiploom, + gMonFootprint_Jumpluff, + gMonFootprint_Aipom, + gMonFootprint_Sunkern, + gMonFootprint_Sunflora, + gMonFootprint_Yanma, + gMonFootprint_Wooper, + gMonFootprint_Quagsire, + gMonFootprint_Espeon, + gMonFootprint_Umbreon, + gMonFootprint_Murkrow, + gMonFootprint_Slowking, + gMonFootprint_Misdreavus, + gMonFootprint_Unown, + gMonFootprint_Wobbuffet, + gMonFootprint_Girafarig, + gMonFootprint_Pineco, + gMonFootprint_Forretress, + gMonFootprint_Dunsparce, + gMonFootprint_Gligar, + gMonFootprint_Steelix, + gMonFootprint_Snubbull, + gMonFootprint_Granbull, + gMonFootprint_Qwilfish, + gMonFootprint_Scizor, + gMonFootprint_Shuckle, + gMonFootprint_Heracross, + gMonFootprint_Sneasel, + gMonFootprint_Teddiursa, + gMonFootprint_Ursaring, + gMonFootprint_Slugma, + gMonFootprint_Magcargo, + gMonFootprint_Swinub, + gMonFootprint_Piloswine, + gMonFootprint_Corsola, + gMonFootprint_Remoraid, + gMonFootprint_Octillery, + gMonFootprint_Delibird, + gMonFootprint_Mantine, + gMonFootprint_Skarmory, + gMonFootprint_Houndour, + gMonFootprint_Houndoom, + gMonFootprint_Kingdra, + gMonFootprint_Phanpy, + gMonFootprint_Donphan, + gMonFootprint_Porygon2, + gMonFootprint_Stantler, + gMonFootprint_Smeargle, + gMonFootprint_Tyrogue, + gMonFootprint_Hitmontop, + gMonFootprint_Smoochum, + gMonFootprint_Elekid, + gMonFootprint_Magby, + gMonFootprint_Miltank, + gMonFootprint_Blissey, + gMonFootprint_Raikou, + gMonFootprint_Entei, + gMonFootprint_Suicune, + gMonFootprint_Larvitar, + gMonFootprint_Pupitar, + gMonFootprint_Tyranitar, + gMonFootprint_Lugia, + gMonFootprint_HoOh, + gMonFootprint_Celebi, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_Treecko, + gMonFootprint_Grovyle, + gMonFootprint_Sceptile, + gMonFootprint_Torchic, + gMonFootprint_Combusken, + gMonFootprint_Blaziken, + gMonFootprint_Mudkip, + gMonFootprint_Marshtomp, + gMonFootprint_Swampert, + gMonFootprint_Poochyena, + gMonFootprint_Mightyena, + gMonFootprint_Zigzagoon, + gMonFootprint_Linoone, + gMonFootprint_Wurmple, + gMonFootprint_Silcoon, + gMonFootprint_Beautifly, + gMonFootprint_Cascoon, + gMonFootprint_Dustox, + gMonFootprint_Lotad, + gMonFootprint_Lombre, + gMonFootprint_Ludicolo, + gMonFootprint_Seedot, + gMonFootprint_Nuzleaf, + gMonFootprint_Shiftry, + gMonFootprint_Nincada, + gMonFootprint_Ninjask, + gMonFootprint_Shedinja, + gMonFootprint_Taillow, + gMonFootprint_Swellow, + gMonFootprint_Shroomish, + gMonFootprint_Breloom, + gMonFootprint_Spinda, + gMonFootprint_Wingull, + gMonFootprint_Pelipper, + gMonFootprint_Surskit, + gMonFootprint_Masquerain, + gMonFootprint_Wailmer, + gMonFootprint_Wailord, + gMonFootprint_Skitty, + gMonFootprint_Delcatty, + gMonFootprint_Kecleon, + gMonFootprint_Baltoy, + gMonFootprint_Claydol, + gMonFootprint_Nosepass, + gMonFootprint_Torkoal, + gMonFootprint_Sableye, + gMonFootprint_Barboach, + gMonFootprint_Whiscash, + gMonFootprint_Luvdisc, + gMonFootprint_Corphish, + gMonFootprint_Crawdaunt, + gMonFootprint_Feebas, + gMonFootprint_Milotic, + gMonFootprint_Carvanha, + gMonFootprint_Sharpedo, + gMonFootprint_Trapinch, + gMonFootprint_Vibrava, + gMonFootprint_Flygon, + gMonFootprint_Makuhita, + gMonFootprint_Hariyama, + gMonFootprint_Electrike, + gMonFootprint_Manectric, + gMonFootprint_Numel, + gMonFootprint_Camerupt, + gMonFootprint_Spheal, + gMonFootprint_Sealeo, + gMonFootprint_Walrein, + gMonFootprint_Cacnea, + gMonFootprint_Cacturne, + gMonFootprint_Snorunt, + gMonFootprint_Glalie, + gMonFootprint_Lunatone, + gMonFootprint_Solrock, + gMonFootprint_Azurill, + gMonFootprint_Spoink, + gMonFootprint_Grumpig, + gMonFootprint_Plusle, + gMonFootprint_Minun, + gMonFootprint_Mawile, + gMonFootprint_Meditite, + gMonFootprint_Medicham, + gMonFootprint_Swablu, + gMonFootprint_Altaria, + gMonFootprint_Wynaut, + gMonFootprint_Duskull, + gMonFootprint_Dusclops, + gMonFootprint_Roselia, + gMonFootprint_Slakoth, + gMonFootprint_Vigoroth, + gMonFootprint_Slaking, + gMonFootprint_Gulpin, + gMonFootprint_Swalot, + gMonFootprint_Tropius, + gMonFootprint_Whismur, + gMonFootprint_Loudred, + gMonFootprint_Exploud, + gMonFootprint_Clamperl, + gMonFootprint_Huntail, + gMonFootprint_Gorebyss, + gMonFootprint_Absol, + gMonFootprint_Shuppet, + gMonFootprint_Banette, + gMonFootprint_Seviper, + gMonFootprint_Zangoose, + gMonFootprint_Relicanth, + gMonFootprint_Aron, + gMonFootprint_Lairon, + gMonFootprint_Aggron, + gMonFootprint_Castform, + gMonFootprint_Volbeat, + gMonFootprint_Illumise, + gMonFootprint_Lileep, + gMonFootprint_Cradily, + gMonFootprint_Anorith, + gMonFootprint_Armaldo, + gMonFootprint_Ralts, + gMonFootprint_Kirlia, + gMonFootprint_Gardevoir, + gMonFootprint_Bagon, + gMonFootprint_Shelgon, + gMonFootprint_Salamence, + gMonFootprint_Beldum, + gMonFootprint_Metang, + gMonFootprint_Metagross, + gMonFootprint_Regirock, + gMonFootprint_Regice, + gMonFootprint_Registeel, + gMonFootprint_Kyogre, + gMonFootprint_Groudon, + gMonFootprint_Rayquaza, + gMonFootprint_Latias, + gMonFootprint_Latios, + gMonFootprint_Jirachi, + gMonFootprint_Deoxys, + gMonFootprint_Chimecho, + gMonFootprint_Bulbasaur, +}; +static const u8 gUnknown_083B5558[] = _("{CLEAR_TO 0}"); +const u8 gUnknown_083B555C[] = INCBIN_U8("graphics/unknown/unknown_3B555C.bin"); +static const struct OamData gOamData_83B557C = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; +static void *const gUnknown_083B5584[] = +{ + (void *)0x02008000, + (void *)0x0200C000, + (void *)0x02010000, + (void *)0x02014000, +}; +static const struct SpriteFrameImage gSpriteImageTable_83B5594[] = +{ + {(u8 *)0x02008000, 0x800}, + {(u8 *)0x02008800, 0x800}, + {(u8 *)0x02009000, 0x800}, + {(u8 *)0x02009800, 0x800}, + {(u8 *)0x0200A000, 0x800}, + {(u8 *)0x0200A800, 0x800}, + {(u8 *)0x0200B000, 0x800}, + {(u8 *)0x0200B800, 0x800}, + {(u8 *)0x0200C000, 0x800}, + {(u8 *)0x0200C800, 0x800}, + {(u8 *)0x0200D000, 0x800}, + {(u8 *)0x0200D800, 0x800}, + {(u8 *)0x0200E000, 0x800}, + {(u8 *)0x0200E800, 0x800}, + {(u8 *)0x0200F000, 0x800}, + {(u8 *)0x0200F800, 0x800}, +}; +static const struct SpriteFrameImage gSpriteImageTable_83B5614[] = +{ + {(u8 *)0x0200C000, 0x800}, + {(u8 *)0x0200C800, 0x800}, + {(u8 *)0x0200D000, 0x800}, + {(u8 *)0x0200D800, 0x800}, + {(u8 *)0x0200E000, 0x800}, + {(u8 *)0x0200E800, 0x800}, + {(u8 *)0x0200F000, 0x800}, + {(u8 *)0x0200F800, 0x800}, + {(u8 *)0x02010000, 0x800}, + {(u8 *)0x02010800, 0x800}, + {(u8 *)0x02011000, 0x800}, + {(u8 *)0x02011800, 0x800}, + {(u8 *)0x02012000, 0x800}, + {(u8 *)0x02012800, 0x800}, + {(u8 *)0x02013000, 0x800}, + {(u8 *)0x02013800, 0x800}, +}; +static const struct SpriteFrameImage gSpriteImageTable_83B5694[] = +{ + {(u8 *)0x02010000, 0x800}, + {(u8 *)0x02010800, 0x800}, + {(u8 *)0x02011000, 0x800}, + {(u8 *)0x02011800, 0x800}, + {(u8 *)0x02012000, 0x800}, + {(u8 *)0x02012800, 0x800}, + {(u8 *)0x02013000, 0x800}, + {(u8 *)0x02013800, 0x800}, + {(u8 *)0x02014000, 0x800}, + {(u8 *)0x02014800, 0x800}, + {(u8 *)0x02015000, 0x800}, + {(u8 *)0x02015800, 0x800}, + {(u8 *)0x02016000, 0x800}, + {(u8 *)0x02016800, 0x800}, + {(u8 *)0x02017000, 0x800}, + {(u8 *)0x02017800, 0x800}, +}; +static const struct SpriteFrameImage gSpriteImageTable_83B5714[] = +{ + {(u8 *)0x02014000, 0x800}, + {(u8 *)0x02014800, 0x800}, + {(u8 *)0x02015000, 0x800}, + {(u8 *)0x02015800, 0x800}, + {(u8 *)0x02016000, 0x800}, + {(u8 *)0x02016800, 0x800}, + {(u8 *)0x02017000, 0x800}, + {(u8 *)0x02017800, 0x800}, + {(u8 *)0x02018000, 0x800}, + {(u8 *)0x02018800, 0x800}, + {(u8 *)0x02019000, 0x800}, + {(u8 *)0x02019800, 0x800}, + {(u8 *)0x0201A000, 0x800}, + {(u8 *)0x0201A800, 0x800}, + {(u8 *)0x0201B000, 0x800}, + {(u8 *)0x0201B800, 0x800}, +}; +static const struct SpriteFrameImage *const gUnknown_083B5794[] = +{ + gSpriteImageTable_83B5594, + gSpriteImageTable_83B5614, + gSpriteImageTable_83B5694, + gSpriteImageTable_83B5714, +}; +static void nullsub_59(struct Sprite *); +static const struct SpriteTemplate gUnknown_083B57A4 = +{ + .tileTag = 0xFFFF, + .paletteTag = 0, + .oam = &gOamData_83B557C, + .anims = NULL, + .images = gSpriteImageTable_83B5594, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = nullsub_59, +}; +static const u8 gUnknown_083B57BC[][4] = +{ + {0, 0, 0, 0}, + {CHAR_A, 3, CHAR_a, 3}, + {CHAR_D, 3, CHAR_d, 3}, + {CHAR_G, 3, CHAR_g, 3}, + {CHAR_J, 3, CHAR_j, 3}, + {CHAR_M, 3, CHAR_m, 3}, + {CHAR_P, 3, CHAR_p, 3}, + {CHAR_S, 3, CHAR_s, 3}, + {CHAR_V, 3, CHAR_v, 3}, + {CHAR_Y, 2, CHAR_y, 2}, +}; +static const struct UnknownStruct3 gUnknown_083B57E4[] = +{ + {DexText_SearchForPoke, 0, 0, 5}, + {DexText_SwitchDex, 6, 0, 5}, + {DexText_ReturnToDex, 12, 0, 5}, +}; +static const struct UnknownStruct4 gUnknown_083B57FC[] = +{ + {DexText_ListByABC, 0, 2, 5, 5, 2, 12}, + {DexText_ListByColor, 0, 4, 5, 5, 4, 12}, + {DexText_ListByType, 0, 6, 5, 5, 6, 6}, + {DexText_ListByType, 0, 6, 5, 11, 6, 6}, + {DexText_SelectDexList, 0, 8, 5, 5, 8, 12}, + {DexText_SelectDexMode, 0, 10, 5, 5, 10, 12}, + {DexText_ExecuteSearchSwitch, 0, 12, 5, 0, 0, 0}, +}; +static const u8 gUnknown_083B5850[][4] = +{ + {0xFF, 0xFF, 0xFF, 1}, + {0xFF, 0xFF, 0, 2}, + {0xFF, 3, 1, 4}, + { 2, 0xFF, 1, 4}, + {0xFF, 0xFF, 2, 5}, + {0xFF, 0xFF, 4, 6}, + {0xFF, 0xFF, 5, 0xFF}, +}; +static const u8 gUnknown_083B586C[][4] = +{ + {0xFF, 0xFF, 0xFF, 0xFF}, + {0xFF, 0xFF, 0xFF, 0xFF}, + {0xFF, 0xFF, 0xFF, 0xFF}, + {0xFF, 0xFF, 0xFF, 0xFF}, + {0xFF, 0xFF, 0xFF, 5}, + {0xFF, 0xFF, 4, 6}, + {0xFF, 0xFF, 5, 0xFF}, +}; +static const u8 gUnknown_083B5888[][4] = +{ + {0xFF, 0xFF, 0xFF, 1}, + {0xFF, 0xFF, 0, 2}, + {0xFF, 3, 1, 4}, + { 2, 0xFF, 1, 4}, + {0xFF, 0xFF, 2, 6}, + {0xFF, 0xFF, 0xFF, 0xFF}, + {0xFF, 0xFF, 4, 0xFF}, +}; +static const u8 gUnknown_083B58A4[][4] = +{ + {0xFF, 0xFF, 0xFF, 0xFF}, + {0xFF, 0xFF, 0xFF, 0xFF}, + {0xFF, 0xFF, 0xFF, 0xFF}, + {0xFF, 0xFF, 0xFF, 0xFF}, + {0xFF, 0xFF, 0xFF, 6}, + {0xFF, 0xFF, 0xFF, 0xFF}, + {0xFF, 0xFF, 4, 0xFF}, +}; +static const struct UnknownStruct2 gUnknown_083B58C0[] = +{ + {DexText_HoennDex2, DexText_HoennDex}, + {DexText_NationalDex2, DexText_NationalDex}, + {NULL, NULL}, +}; +static const struct UnknownStruct2 gUnknown_083B58D8[] = +{ + {DexText_ListByNumber, DexText_NumericalMode}, + {DexText_ListByABC2, DexText_ABCMode}, + {DexText_ListByHeavyToLightest, DexText_HeaviestMode}, + {DexText_ListByLightToHeaviest, DexText_LightestMode}, + {DexText_ListByTallToSmallest, DexText_TallestMode}, + {DexText_ListBySmallToTallest, DexText_SmallestMode}, + {NULL, NULL}, +}; +static const struct UnknownStruct2 gUnknown_083B5910[] = +{ + {DexText_Terminator5, DexText_DontSpecify}, + {DexText_Terminator5, DexText_ABC}, + {DexText_Terminator5, DexText_DEF}, + {DexText_Terminator5, DexText_GHI}, + {DexText_Terminator5, DexText_JKL}, + {DexText_Terminator5, DexText_MNO}, + {DexText_Terminator5, DexText_PQR}, + {DexText_Terminator5, DexText_STU}, + {DexText_Terminator5, DexText_VWX}, + {DexText_Terminator5, DexText_YZ}, + {NULL, NULL}, +}; +static const struct UnknownStruct2 gUnknown_083B5968[] = +{ + {DexText_Terminator5, DexText_DontSpecify}, + {DexText_Terminator5, DexText_Red}, + {DexText_Terminator5, DexText_Blue}, + {DexText_Terminator5, DexText_Yellow}, + {DexText_Terminator5, DexText_Green}, + {DexText_Terminator5, DexText_Black}, + {DexText_Terminator5, DexText_Brown}, + {DexText_Terminator5, DexText_Purple}, + {DexText_Terminator5, DexText_Gray}, + {DexText_Terminator5, DexText_White}, + {DexText_Terminator5, DexText_Pink}, + {NULL, NULL}, +}; +static const struct UnknownStruct2 gUnknown_083B59C8[] = +{ + {DexText_Terminator5, DexText_None}, + {DexText_Terminator5, gTypeNames[TYPE_NORMAL]}, + {DexText_Terminator5, gTypeNames[TYPE_FIGHTING]}, + {DexText_Terminator5, gTypeNames[TYPE_FLYING]}, + {DexText_Terminator5, gTypeNames[TYPE_POISON]}, + {DexText_Terminator5, gTypeNames[TYPE_GROUND]}, + {DexText_Terminator5, gTypeNames[TYPE_ROCK]}, + {DexText_Terminator5, gTypeNames[TYPE_BUG]}, + {DexText_Terminator5, gTypeNames[TYPE_GHOST]}, + {DexText_Terminator5, gTypeNames[TYPE_STEEL]}, + {DexText_Terminator5, gTypeNames[TYPE_FIRE]}, + {DexText_Terminator5, gTypeNames[TYPE_WATER]}, + {DexText_Terminator5, gTypeNames[TYPE_GRASS]}, + {DexText_Terminator5, gTypeNames[TYPE_ELECTRIC]}, + {DexText_Terminator5, gTypeNames[TYPE_PSYCHIC]}, + {DexText_Terminator5, gTypeNames[TYPE_ICE]}, + {DexText_Terminator5, gTypeNames[TYPE_DRAGON]}, + {DexText_Terminator5, gTypeNames[TYPE_DARK]}, + {NULL, NULL}, +}; +static const u8 gUnknown_083B5A60[] = {0, 1}; +static const u8 gUnknown_083B5A62[] = {0, 1, 2, 3, 4, 5}; +static const u8 gUnknown_083B5A68[] = {0xFF, 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17}; +static const struct UnknownStruct1 gUnknown_083B5A7C[] = +{ + {gUnknown_083B5910, 6, 7, 10}, + {gUnknown_083B5968, 8, 9, 11}, + {gUnknown_083B59C8, 10, 11, 18}, + {gUnknown_083B59C8, 12, 13, 18}, + {gUnknown_083B58D8, 4, 5, 6}, + {gUnknown_083B58C0, 2, 3, 2}, +}; +static const u8 gUnknown_083B5AAC[] = _("{STR_VAR_1}{CLEAR_TO 43}"); +static const u8 gUnknown_083B5AB2[] = _("{STR_VAR_1}{CLEAR_TO 96}"); + +static void MainCB(void); +static void Task_PokedexShowMainScreen(u8 taskId); +static void Task_PokedexMainScreen(u8 taskId); +static void sub_808C898(u8 taskId); +static void Task_PokedexMainScreenMenu(u8 taskId); +static void sub_808CA64(u8 taskId); +static void sub_808CAE4(u8 taskId); +static void sub_808CB8C(u8 taskId); +static void Task_ClosePokedex(u8 taskId); +static void sub_808CCC4(u8 taskId); +static void Task_PokedexResultsScreen(u8 taskId); +static void sub_808CEF8(u8 taskId); +static void Task_PokedexResultsScreenMenu(u8 taskId); +static void sub_808D118(u8 taskId); +static void sub_808D198(u8 taskId); +static void Task_PokedexResultsScreenReturnToMainScreen(u8 taskId); +static void Task_PokedexResultsScreenExitPokedex(u8 taskId); +static bool8 sub_808D344(u8 a); +static void sub_808D640(void); +static void SortPokedex(u8 dexMode, u8 sortMode); +static void sub_808DEB0(u16 a, u8 b, u8 c, u16 d); +static void sub_808DF88(u16 a, u8 b, u8 c, u16 d); +static u8 sub_808DFE4(u16 num, u8 b, u8 c); +static void sub_808E090(u8 a, u8 b, u16 c); +static void sub_808E0CC(u16 a, u16 b); +static bool8 sub_808E208(u8 a, u8 b, u8 c); +static u16 sub_808E48C(u16 a, u16 b); +static void sub_808E6BC(void); +static u8 sub_808E71C(void); +static u8 sub_808E82C(void); +static u16 sub_808E888(u16 a1); +static u32 sub_808E8C8(u16 a, s16 b, s16 c); +static void sub_808E978(u8 a); +static void sub_808EDB8(struct Sprite *sprite); +static void sub_808EE28(struct Sprite *sprite); +static u8 sub_808F210(struct PokedexListItem *, u8); +static bool8 sub_808F250(u8 taskId); +static u8 sub_808F284(struct PokedexListItem *, u8); +static void Task_InitPageScreenMultistep(u8 taskId); +static void Task_PageScreenProcessInput(u8 taskId); +static void sub_808F888(u8 taskId); +static void Task_ClosePageScreen(u8 taskId); +static void Task_InitAreaScreenMultistep(u8 taskId); +static void Task_AreaScreenProcessInput(u8 taskId); +static void sub_808FA00(u8 taskId); +static void Task_InitCryScreenMultistep(u8 taskId); +static void Task_CryScreenProcessInput(u8 taskId); +static void sub_808FFBC(u8 taskId); +static void sub_8090040(u8 a); +static void Task_InitSizeScreenMultistep(u8 taskId); +static void Task_SizeScreenProcessInput(u8 taskId); +static void sub_8090498(u8 taskId); +static void sub_80904FC(u16 a); +static void sub_8090540(u16 a); +static void sub_8090584(u8 a, u16 b); +static void sub_8090644(u8 a, u16 b); +static void sub_8090750(u8); +static void sub_8090A3C(u8); +static void sub_8090B8C(u8); +static void sub_8090C28(struct Sprite *); +static void sub_8090C68(void); +static void sub_8091060(u16); +static void sub_8091154(u16 order, u8, u8); +static u8 sub_80911C8(u16 num, u8, u8); +static u8 sub_8091260(u16 num, u8, u8, u8); +static void sub_8091304(const u8 *name, u8, u8); +static void sub_8091458(u16 height, u8 i, u8 i1); +static void sub_8091564(u16 weight, u8 i, u8 i1); +static void sub_8091738(u16, u16, u16); +static void sub_80917CC(u16 i, u16 i1); +static u16 sub_8091818(u8, u16, u16, u16); +static u16 sub_80918EC(u16 a, s16 b, s16 c, u16 d); +static u8 sub_8091A4C(u16 gender, s16, s16, u16); +static void sub_8091E54(u8); +static void sub_809204C(u8); +static void sub_809207C(u8); +static void sub_809217C(u8); +static void sub_80921B0(u8); +static void sub_80923FC(u8); +static void sub_80924A4(u8); +static void sub_8092508(u8); +static void sub_80925CC(u8); +static void sub_8092644(u8); +static void sub_80927B8(u8); +static void sub_80927F0(u8); +static void sub_8092AB0(u8); +static void sub_8092AD4(u8, u8); +static void sub_8092B68(u8); +static void sub_8092C8C(u8); +static void sub_8092D78(u8); +static u8 sub_8092E10(u8, u8); +static void sub_8092EB0(u8); +static void sub_809308C(u8); -// asm/pokedex_area_screen -void ShowPokedexAreaScreen(u16 species, u8 *string); void ResetPokedex(void) { @@ -139,18 +1321,18 @@ void sub_808C0A0(void) gUnknown_0202FFBA = 0x40; } -void sub_808C0B8(void) +static void sub_808C0B8(void) { LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); } -void ClearPokedexView(struct PokedexView *pokedexView) +static void ClearPokedexView(struct PokedexView *pokedexView) { u16 i; - for (i = 0; i <= 385; i++) + for (i = 0; i < NATIONAL_DEX_COUNT; i++) { pokedexView->unk0[i].dexNum |= 0xFFFF; pokedexView->unk0[i].seen = 0; @@ -159,7 +1341,7 @@ void ClearPokedexView(struct PokedexView *pokedexView) pokedexView->unk608 = 0; pokedexView->unk60A_1 = 0; pokedexView->unk60A_2 = 0; - pokedexView->unk60C = 0; + pokedexView->pokemonListCount = 0; pokedexView->selectedPokemon = 0; pokedexView->unk610 = 0; pokedexView->dexMode = 0; @@ -203,30 +1385,30 @@ void CB2_InitPokedex(void) { case 0: default: - { - u8 *addr; - u32 size; + { + u8 *addr; + u32 size; - SetVBlankCallback(NULL); - sub_8091060(0); - addr = (u8 *)VRAM; - size = VRAM_SIZE; - while (1) - { - DmaFill16(3, 0, addr, 0x1000); - addr += 0x1000; - size -= 0x1000; - if (size <= 0x1000) + SetVBlankCallback(NULL); + sub_8091060(0); + addr = (u8 *)VRAM; + size = VRAM_SIZE; + while (1) { - DmaFill16(3, 0, addr, size); - break; + DmaFill16(3, 0, addr, 0x1000); + addr += 0x1000; + size -= 0x1000; + if (size <= 0x1000) + { + DmaFill16(3, 0, addr, size); + break; + } } + DmaClear32(3, OAM, OAM_SIZE); + DmaClear16(3, PLTT, PLTT_SIZE); + gMain.state = 1; } - DmaClear32(3, OAM, OAM_SIZE); - DmaClear16(3, PLTT, PLTT_SIZE); - gMain.state = 1; break; - } case 1: remove_some_task(); ResetTasks(); @@ -264,7 +1446,7 @@ void CB2_InitPokedex(void) gPokedexView->selectedPokemon = gUnknown_0202FFB8; gPokedexView->unk62C = gUnknown_0202FFBA; gPokedexView->selectedScreen = PAGE_SCREEN; - gPokedexView->unk64E = 0; + gPokedexView->descriptionPageNum = 0; if (!IsNationalPokedexEnabled()) { gPokedexView->unk61A = GetHoennPokedexCount(0); @@ -279,19 +1461,20 @@ void CB2_InitPokedex(void) gMain.state++; break; case 3: - { - u16 savedIme; - - savedIme = REG_IME; - REG_IME = 0; - REG_IE |= 1; - REG_IME = savedIme; - REG_DISPSTAT |= 8; - SetVBlankCallback(sub_808C0B8); - SetMainCallback2(MainCB); - SortPokedex(gPokedexView->dexMode, gPokedexView->dexOrder); - m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 0x80); - } + { + u16 savedIme; + + savedIme = REG_IME; + REG_IME = 0; + REG_IE |= 1; + REG_IME = savedIme; + REG_DISPSTAT |= 8; + SetVBlankCallback(sub_808C0B8); + SetMainCallback2(MainCB); + SortPokedex(gPokedexView->dexMode, gPokedexView->dexOrder); + m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 0x80); + } + break; } } @@ -320,7 +1503,7 @@ u8 unref_sub_808C540(void (*func)(u8)) return gTasks[taskId].data[0]; } -void MainCB(void) +static void MainCB(void) { RunTasks(); AnimateSprites(); @@ -328,13 +1511,11 @@ void MainCB(void) UpdatePaletteFade(); } -void Task_PokedexShowMainScreen(u8 taskId) +static void Task_PokedexShowMainScreen(u8 taskId) { gPokedexView->unk64C_1 = 0; if (sub_808D344(0)) - { gTasks[taskId].func = Task_PokedexMainScreen; - } } //Hide menu and process input on main screen @@ -351,9 +1532,9 @@ void Task_PokedexMainScreen(u8 taskId) { sub_808E6BC(); BeginNormalPaletteFade( - ~(1 << (gSprites[gPokedexView->unk626].oam.paletteNum + 16)), + ~(1 << (gSprites[gPokedexView->selectedMonSpriteId].oam.paletteNum + 16)), 0, 0, 0x10, 0); - gSprites[gPokedexView->unk626].callback = sub_808EDB8; + gSprites[gPokedexView->selectedMonSpriteId].callback = sub_808EDB8; gTasks[taskId].func = sub_808CA64; PlaySE(SE_PIN); } @@ -395,16 +1576,14 @@ void Task_PokedexMainScreen(u8 taskId) } } -void sub_808C898(u8 taskId) +static void sub_808C898(u8 taskId) { if (sub_808E208(gPokedexView->unk62F, gPokedexView->unk634, gPokedexView->unk636)) - { gTasks[taskId].func = Task_PokedexMainScreen; - } } //Bring up menu and process menu input -void Task_PokedexMainScreenMenu(u8 taskId) +static void Task_PokedexMainScreenMenu(u8 taskId) { REG_BG0VOFS = gPokedexView->menuY; @@ -429,8 +1608,8 @@ void Task_PokedexMainScreenMenu(u8 taskId) gMain.newKeys |= START_BUTTON; //Exit menu break; case 2: //LIST BOTTOM - gPokedexView->selectedPokemon = gPokedexView->unk60C - 1; - gPokedexView->unk62C = gPokedexView->unk60C * 16 + 0x30; + gPokedexView->selectedPokemon = gPokedexView->pokemonListCount - 1; + gPokedexView->unk62C = gPokedexView->pokemonListCount * 16 + 0x30; sub_808E82C(); sub_808E0CC(gPokedexView->selectedPokemon, 0xE); gMain.newKeys |= START_BUTTON; //Exit menu @@ -463,27 +1642,23 @@ void Task_PokedexMainScreenMenu(u8 taskId) } } -void sub_808CA64(u8 taskId) +static void sub_808CA64(u8 taskId) { - if (gSprites[gPokedexView->unk626].pos1.x == 0x30 && - gSprites[gPokedexView->unk626].pos1.y == 0x38) + if (gSprites[gPokedexView->selectedMonSpriteId].pos1.x == 48 + && gSprites[gPokedexView->selectedMonSpriteId].pos1.y == 56) { gPokedexView->unk64B = gPokedexView->unk64A; - gTasks[taskId].data[0] = sub_808F210(&gPokedexView->unk0[gPokedexView->selectedPokemon], gPokedexView->unk626); + gTasks[taskId].data[0] = sub_808F210(&gPokedexView->unk0[gPokedexView->selectedPokemon], gPokedexView->selectedMonSpriteId); gTasks[taskId].func = sub_808CAE4; } } -void sub_808CAE4(u8 taskId) +static void sub_808CAE4(u8 taskId) { if (gTasks[gTasks[taskId].data[0]].isActive) { - if (gPokedexView->unk64A == 1 && - !sub_808F250(gTasks[taskId].data[0]) && - sub_808E71C()) - { + if (gPokedexView->unk64A == 1 && !sub_808F250(gTasks[taskId].data[0]) && sub_808E71C()) sub_808F284(&gPokedexView->unk0[gPokedexView->selectedPokemon], gTasks[taskId].data[0]); - } } else { @@ -493,13 +1668,13 @@ void sub_808CAE4(u8 taskId) } } -void sub_808CB8C(u8 taskId) +static void sub_808CB8C(u8 taskId) { bool8 isActive = gTasks[gTasks[taskId].data[0]].isActive; if (!isActive) { - if (gPokedexView->unk64F) + if (gPokedexView->unk64F != 0) { gPokedexView->selectedPokemon = isActive; gPokedexView->unk62C = 0x40; @@ -518,7 +1693,7 @@ void sub_808CB8C(u8 taskId) } } -void Task_ClosePokedex(u8 taskId) +static void Task_ClosePokedex(u8 taskId) { if (!gPaletteFade.active) { @@ -532,19 +1707,21 @@ void Task_ClosePokedex(u8 taskId) } } -void sub_808CCC4(u8 taskId) +static void sub_808CCC4(u8 taskId) { gPokedexView->unk64C_1 = 1; if (sub_808D344(3)) gTasks[taskId].func = Task_PokedexResultsScreen; } -void Task_PokedexResultsScreen(u8 taskId) +static void Task_PokedexResultsScreen(u8 taskId) { REG_BG0VOFS = gPokedexView->menuY; if (gPokedexView->menuY) + { gPokedexView->menuY -= 8; + } else { if ((gMain.newKeys & A_BUTTON) && gPokedexView->unk0[gPokedexView->selectedPokemon].seen) @@ -552,8 +1729,8 @@ void Task_PokedexResultsScreen(u8 taskId) u32 a; sub_808E6BC(); - a = (1 << (gSprites[gPokedexView->unk626].oam.paletteNum + 16)); - gSprites[gPokedexView->unk626].callback = sub_808EDB8; + a = (1 << (gSprites[gPokedexView->selectedMonSpriteId].oam.paletteNum + 16)); + gSprites[gPokedexView->selectedMonSpriteId].callback = sub_808EDB8; BeginNormalPaletteFade(~a, 0, 0, 0x10, 0); gTasks[taskId].func = sub_808D118; PlaySE(SE_PIN); @@ -590,18 +1767,20 @@ void Task_PokedexResultsScreen(u8 taskId) } } -void sub_808CEF8(u8 taskId) +static void sub_808CEF8(u8 taskId) { if (sub_808E208(gPokedexView->unk62F, gPokedexView->unk634, gPokedexView->unk636)) gTasks[taskId].func = Task_PokedexResultsScreen; } -void Task_PokedexResultsScreenMenu(u8 taskId) +static void Task_PokedexResultsScreenMenu(u8 taskId) { REG_BG0VOFS = gPokedexView->menuY; - if (gPokedexView->menuY != 0x60) + if (gPokedexView->menuY != 96) + { gPokedexView->menuY += 8; + } else { if (gMain.newKeys & A_BUTTON) @@ -620,8 +1799,8 @@ void Task_PokedexResultsScreenMenu(u8 taskId) gMain.newKeys |= START_BUTTON; break; case 2: //LIST BOTTOM - gPokedexView->selectedPokemon = gPokedexView->unk60C - 1; - gPokedexView->unk62C = gPokedexView->unk60C * 16 + 0x30; + gPokedexView->selectedPokemon = gPokedexView->pokemonListCount - 1; + gPokedexView->unk62C = gPokedexView->pokemonListCount * 16 + 0x30; sub_808E82C(); sub_808E0CC(gPokedexView->selectedPokemon, 0xE); gMain.newKeys |= START_BUTTON; @@ -659,27 +1838,23 @@ void Task_PokedexResultsScreenMenu(u8 taskId) } } -void sub_808D118(u8 taskId) +static void sub_808D118(u8 taskId) { - if (gSprites[gPokedexView->unk626].pos1.x == 0x30 && - gSprites[gPokedexView->unk626].pos1.y == 0x38) + if (gSprites[gPokedexView->selectedMonSpriteId].pos1.x == 48 + && gSprites[gPokedexView->selectedMonSpriteId].pos1.y == 56) { gPokedexView->unk64B = gPokedexView->unk64A; - gTasks[taskId].data[0] = sub_808F210(&gPokedexView->unk0[gPokedexView->selectedPokemon], gPokedexView->unk626); + gTasks[taskId].data[0] = sub_808F210(&gPokedexView->unk0[gPokedexView->selectedPokemon], gPokedexView->selectedMonSpriteId); gTasks[taskId].func = sub_808D198; } } -void sub_808D198(u8 taskId) +static void sub_808D198(u8 taskId) { if (gTasks[gTasks[taskId].data[0]].isActive) { - if (gPokedexView->unk64A == 1 && - !sub_808F250(gTasks[taskId].data[0]) && - sub_808E71C()) - { + if (gPokedexView->unk64A == 1 && !sub_808F250(gTasks[taskId].data[0]) && sub_808E71C()) sub_808F284(&gPokedexView->unk0[gPokedexView->selectedPokemon], gTasks[taskId].data[0]); - } } else { @@ -687,7 +1862,7 @@ void sub_808D198(u8 taskId) } } -void Task_PokedexResultsScreenReturnToMainScreen(u8 taskId) +static void Task_PokedexResultsScreenReturnToMainScreen(u8 taskId) { if (!gPaletteFade.active) { @@ -701,7 +1876,7 @@ void Task_PokedexResultsScreenReturnToMainScreen(u8 taskId) } } -void Task_PokedexResultsScreenExitPokedex(u8 taskId) +static void Task_PokedexResultsScreenExitPokedex(u8 taskId) { if (!gPaletteFade.active) { @@ -715,8 +1890,7 @@ void Task_PokedexResultsScreenExitPokedex(u8 taskId) } } - -bool8 sub_808D344(u8 a) +static bool8 sub_808D344(u8 a) { switch (gMain.state) { @@ -724,7 +1898,6 @@ bool8 sub_808D344(u8 a) default: if (gPaletteFade.active) return 0; - //_0808D39E SetVBlankCallback(NULL); gPokedexView->unk64A = a; sub_8091060(0); @@ -749,7 +1922,7 @@ bool8 sub_808D344(u8 a) ResetSpriteData(); FreeAllSpritePalettes(); gReservedSpritePaletteCount = 8; - LoadCompressedObjectPic(&gUnknown_083A05CC); + LoadCompressedObjectPic(&gUnknown_083A05CC[0]); LoadSpritePalettes(gUnknown_083A05DC); sub_808E978(a); gMain.state++; @@ -793,30 +1966,29 @@ bool8 sub_808D344(u8 a) if (!gPaletteFade.active) { gMain.state = 0; - return 1; + return TRUE; } - else - return 0; + break; } - return 0; + return FALSE; } -void sub_808D640(void) +static void sub_808D640(void) { if (gPokedexView->unk64C_1) - LoadPalette(gUnknown_0839F67C + 0x2, 1, 0xBE); + LoadPalette(sPokedexSearchPalette + 1, 1, sizeof(sPokedexSearchPalette) - sizeof(u16)); else if (!IsNationalPokedexEnabled()) - LoadPalette(gPokedexMenu_Pal + 0x2, 1, 0xBE); + LoadPalette(gPokedexMenu_Pal + 1, 1, 0xBE); else - LoadPalette(gUnknown_0839F73C + 0x2, 1, 0xBE); + LoadPalette(sNationalPokedexPalette + 1, 1, sizeof(sNationalPokedexPalette) - sizeof(u16)); } -void SortPokedex(u8 dexMode, u8 sortMode) +static void SortPokedex(u8 dexMode, u8 sortMode) { u16 vars[3]; //I have no idea why three regular variables are stored in an array, but whatever. s16 i; - gPokedexView->unk60C = 0; + gPokedexView->pokemonListCount = 0; switch (dexMode) { @@ -828,7 +2000,7 @@ void SortPokedex(u8 dexMode, u8 sortMode) case DEX_MODE_NATIONAL: if (IsNationalPokedexEnabled()) { - vars[0] = 386; + vars[0] = NATIONAL_DEX_COUNT; vars[1] = 0; } else @@ -842,17 +2014,16 @@ void SortPokedex(u8 dexMode, u8 sortMode) switch (sortMode) { case 0: - { if (vars[1]) { for (i = 0; i < vars[0]; i++) { vars[2] = HoennToNationalOrder(i + 1); gPokedexView->unk0[i].dexNum = vars[2]; - gPokedexView->unk0[i].seen = sub_8090D90(vars[2], 0); - gPokedexView->unk0[i].owned = sub_8090D90(vars[2], 1); + gPokedexView->unk0[i].seen = GetNationalPokedexFlag(vars[2], 0); + gPokedexView->unk0[i].owned = GetNationalPokedexFlag(vars[2], 1); if (gPokedexView->unk0[i].seen) - gPokedexView->unk60C = i + 1; + gPokedexView->pokemonListCount = i + 1; } } else @@ -864,94 +2035,94 @@ void SortPokedex(u8 dexMode, u8 sortMode) for (i = 0; i < vars[0]; i++) { vars[2] = i + 1; - if (sub_8090D90(vars[2], 0)) + if (GetNationalPokedexFlag(vars[2], 0)) r10 = 1; if (r10) { asm(""); //Needed to match for some reason gPokedexView->unk0[r5].dexNum = vars[2]; - gPokedexView->unk0[r5].seen = sub_8090D90(vars[2], 0); - gPokedexView->unk0[r5].owned = sub_8090D90(vars[2], 1); + gPokedexView->unk0[r5].seen = GetNationalPokedexFlag(vars[2], 0); + gPokedexView->unk0[r5].owned = GetNationalPokedexFlag(vars[2], 1); if (gPokedexView->unk0[r5].seen) - gPokedexView->unk60C = r5 + 1; + gPokedexView->pokemonListCount = r5 + 1; r5++; } } } break; - } case 1: for (i = 0; i < 411; i++) { vars[2] = gPokedexOrder_Alphabetical[i]; - if (NationalToHoennOrder(vars[2]) <= vars[0] && sub_8090D90(vars[2], 0)) + if (NationalToHoennOrder(vars[2]) <= vars[0] && GetNationalPokedexFlag(vars[2], 0)) { - gPokedexView->unk0[gPokedexView->unk60C].dexNum = vars[2]; - gPokedexView->unk0[gPokedexView->unk60C].seen = 1; - gPokedexView->unk0[gPokedexView->unk60C].owned = sub_8090D90(vars[2], 1); - gPokedexView->unk60C++; + gPokedexView->unk0[gPokedexView->pokemonListCount].dexNum = vars[2]; + gPokedexView->unk0[gPokedexView->pokemonListCount].seen = 1; + gPokedexView->unk0[gPokedexView->pokemonListCount].owned = GetNationalPokedexFlag(vars[2], 1); + gPokedexView->pokemonListCount++; } } break; case 2: - for (i = 385; i >= 0; i--) + for (i = NATIONAL_DEX_COUNT - 1; i >= 0; i--) { vars[2] = gPokedexOrder_Weight[i]; - if (NationalToHoennOrder(vars[2]) <= vars[0] && sub_8090D90(vars[2], 1)) + if (NationalToHoennOrder(vars[2]) <= vars[0] && GetNationalPokedexFlag(vars[2], 1)) { - gPokedexView->unk0[gPokedexView->unk60C].dexNum = vars[2]; - gPokedexView->unk0[gPokedexView->unk60C].seen = 1; - gPokedexView->unk0[gPokedexView->unk60C].owned = 1; - gPokedexView->unk60C++; + gPokedexView->unk0[gPokedexView->pokemonListCount].dexNum = vars[2]; + gPokedexView->unk0[gPokedexView->pokemonListCount].seen = 1; + gPokedexView->unk0[gPokedexView->pokemonListCount].owned = 1; + gPokedexView->pokemonListCount++; } } break; case 3: - for (i = 0; i < 386; i++) + for (i = 0; i < NATIONAL_DEX_COUNT; i++) { vars[2] = gPokedexOrder_Weight[i]; - if (NationalToHoennOrder(vars[2]) <= vars[0] && sub_8090D90(vars[2], 1)) + if (NationalToHoennOrder(vars[2]) <= vars[0] && GetNationalPokedexFlag(vars[2], 1)) { - gPokedexView->unk0[gPokedexView->unk60C].dexNum = vars[2]; - gPokedexView->unk0[gPokedexView->unk60C].seen = 1; - gPokedexView->unk0[gPokedexView->unk60C].owned = 1; - gPokedexView->unk60C++; + gPokedexView->unk0[gPokedexView->pokemonListCount].dexNum = vars[2]; + gPokedexView->unk0[gPokedexView->pokemonListCount].seen = 1; + gPokedexView->unk0[gPokedexView->pokemonListCount].owned = 1; + gPokedexView->pokemonListCount++; } } break; case 4: - for (i = 385; i >=0; i--) + for (i = NATIONAL_DEX_COUNT - 1; i >=0; i--) { vars[2] = gPokedexOrder_Height[i]; - if (NationalToHoennOrder(vars[2]) <= vars[0] && sub_8090D90(vars[2], 1)) + if (NationalToHoennOrder(vars[2]) <= vars[0] && GetNationalPokedexFlag(vars[2], 1)) { - gPokedexView->unk0[gPokedexView->unk60C].dexNum = vars[2]; - gPokedexView->unk0[gPokedexView->unk60C].seen = 1; - gPokedexView->unk0[gPokedexView->unk60C].owned = 1; - gPokedexView->unk60C++; + gPokedexView->unk0[gPokedexView->pokemonListCount].dexNum = vars[2]; + gPokedexView->unk0[gPokedexView->pokemonListCount].seen = 1; + gPokedexView->unk0[gPokedexView->pokemonListCount].owned = 1; + gPokedexView->pokemonListCount++; } } break; case 5: - for (i = 0; i < 386; i++) + for (i = 0; i < NATIONAL_DEX_COUNT; i++) { vars[2] = gPokedexOrder_Height[i]; - if (NationalToHoennOrder(vars[2]) <= vars[0] && sub_8090D90(vars[2], 1)) + if (NationalToHoennOrder(vars[2]) <= vars[0] && GetNationalPokedexFlag(vars[2], 1)) { - gPokedexView->unk0[gPokedexView->unk60C].dexNum = vars[2]; - gPokedexView->unk0[gPokedexView->unk60C].seen = 1; - gPokedexView->unk0[gPokedexView->unk60C].owned = 1; - gPokedexView->unk60C++; + gPokedexView->unk0[gPokedexView->pokemonListCount].dexNum = vars[2]; + gPokedexView->unk0[gPokedexView->pokemonListCount].seen = 1; + gPokedexView->unk0[gPokedexView->pokemonListCount].owned = 1; + gPokedexView->pokemonListCount++; } } break; } - for (i = gPokedexView->unk60C; i < 386; i++) + + for (i = gPokedexView->pokemonListCount; i < NATIONAL_DEX_COUNT; i++) { gPokedexView->unk0[i].dexNum |= 0xFFFF; gPokedexView->unk0[i].seen = 0; @@ -959,20 +2130,23 @@ void SortPokedex(u8 dexMode, u8 sortMode) } } -void sub_808DBE8(u8 a, u16 b, u16 c) +static void sub_808DBE8(u8 a, u16 b, u16 c) { + s16 _b; + u16 i; + u16 r2; + switch (a) { case 0: default: - { - u16 i; - s16 _b = b - 5; - + _b = b - 5; for (i = 0; i <= 10; i++) { - if ((u16)_b > 385 || gPokedexView->unk0[_b].dexNum == 0xFFFF) + if (_b < 0 || _b >= NATIONAL_DEX_COUNT || gPokedexView->unk0[_b].dexNum == 0xFFFF) + { sub_808E090(0x11, i * 2, c); + } else { sub_808E090(0x11, i * 2, c); @@ -992,13 +2166,12 @@ void sub_808DBE8(u8 a, u16 b, u16 c) _b++; } break; - } case 1: - { - s16 _b = b - 5; - - if ((u16)_b > 385 || gPokedexView->unk0[_b].dexNum == 0xFFFF) + _b = b - 5; + if (_b < 0 || _b >= NATIONAL_DEX_COUNT || gPokedexView->unk0[_b].dexNum == 0xFFFF) + { sub_808E090(0x11, gPokedexView->unk630 * 2, c); + } else { sub_808E090(0x11, gPokedexView->unk630 * 2, c); @@ -1016,15 +2189,12 @@ void sub_808DBE8(u8 a, u16 b, u16 c) } } break; - } case 2: - { - s16 _b = b + 5; - u16 r2 = gPokedexView->unk630 + 10; - + _b = b + 5; + r2 = gPokedexView->unk630 + 10; if (r2 > 15) r2 -= 16; - if ((u16)_b > 385 || gPokedexView->unk0[_b].dexNum == 0xFFFF) + if (_b < 0 || _b >= NATIONAL_DEX_COUNT || gPokedexView->unk0[_b].dexNum == 0xFFFF) sub_808E090(0x11, r2 * 2, c); else { @@ -1044,10 +2214,9 @@ void sub_808DBE8(u8 a, u16 b, u16 c) } break; } - } } -void sub_808DEB0(u16 a, u8 b, u8 c, u16 d) +static void sub_808DEB0(u16 a, u8 b, u8 c, u16 d) { u8 text[4]; u16 unk[2]; @@ -1057,16 +2226,16 @@ void sub_808DEB0(u16 a, u8 b, u8 c, u16 d) r7 = NationalToHoennOrder(r7); unk[0] = 0x3FC; unk[1] = 0x3FD; - text[0] = r7 / 100 + 0xA1; - text[1] = (r7 % 100) / 10 + 0xA1; - text[2] = (r7 % 100) % 10 + 0xA1; - text[3] = 0xFF; + text[0] = CHAR_0 + r7 / 100; + text[1] = CHAR_0 + (r7 % 100) / 10; + text[2] = CHAR_0 + (r7 % 100) % 10; + text[3] = EOS; *(u16 *)(VRAM + d * 0x800 + c * 0x40 + b * 2) = unk[0]; - *(u16 *)(VRAM + 0x40 + d * 0x800 + c * 0x40 + b * 2) = unk[1]; + *(u16 *)(VRAM + d * 0x800 + (c + 1) * 0x40 + b * 2) = unk[1]; MenuPrint(text, b - 15, c); } -void sub_808DF88(u16 a, u8 b, u8 c, u16 d) +static void sub_808DF88(u16 a, u8 b, u8 c, u16 d) { u16 unk[2]; @@ -1081,152 +2250,57 @@ void sub_808DF88(u16 a, u8 b, u8 c, u16 d) unk[1] = 0; } *(u16 *)(VRAM + d * 0x800 + c * 0x40 + b * 2) = unk[0]; - *(u16 *)(VRAM + 0x40 + d * 0x800 + c * 0x40 + b * 2) = unk[1]; + *(u16 *)(VRAM + d * 0x800 + (c + 1) * 0x40 + b * 2) = unk[1]; } -#ifdef NONMATCHING -//FixMe -u8 sub_808DFE4(u16 a, u8 b, u8 c) +static u8 sub_808DFE4(u16 num, u8 b, u8 c) { u8 text[10]; u8 i; - u32 species; for (i = 0; i < 10; i++) - text[i] = 0; + text[i] = CHAR_SPACE; text[i] = EOS; - species = NationalPokedexNumToSpecies(a); - if (species) - { - for (i = 0; gSpeciesNames[species][i] != EOS && i < 10; i++) - text[i] = gSpeciesNames[species][i]; - } - else + + num = NationalPokedexNumToSpecies(num); + switch (num) { + default: + for (i = 0; gSpeciesNames[num][i] != EOS && i < 10; i++) + text[i] = gSpeciesNames[num][i]; + break; + case 0: for (i = 0; i < 10; i++) - text[i] = 0xAE; + text[i] = CHAR_HYPHEN; + break; } MenuPrint_PixelCoords(text, (b - 0x11) * 8 + 0xFC, c * 8, 0); + return i; } -#else -__attribute__((naked)) -u8 sub_808DFE4(u16 a, u8 b, u8 c) -{ - asm(".syntax unified\n\ - push {r4-r6,lr}\n\ - sub sp, 0xC\n\ - lsls r0, 16\n\ - lsrs r3, r0, 16\n\ - lsls r1, 24\n\ - lsrs r5, r1, 24\n\ - lsls r2, 24\n\ - lsrs r6, r2, 24\n\ - movs r4, 0\n\ - movs r1, 0\n\ -_0808DFF8:\n\ - mov r2, sp\n\ - adds r0, r2, r4\n\ - strb r1, [r0]\n\ - adds r0, r4, 0x1\n\ - lsls r0, 24\n\ - lsrs r4, r0, 24\n\ - cmp r4, 0x9\n\ - bls _0808DFF8\n\ - adds r0, r2, r4\n\ - movs r1, 0xFF\n\ - strb r1, [r0]\n\ - adds r0, r3, 0\n\ - bl NationalPokedexNumToSpecies\n\ - adds r3, r0, 0\n\ - cmp r3, 0\n\ - beq _0808E058\n\ - movs r4, 0\n\ - ldr r2, _0808E054\n\ - movs r0, 0xB\n\ - adds r1, r3, 0\n\ - muls r1, r0\n\ - adds r0, r1, r2\n\ - ldrb r0, [r0]\n\ - subs r5, 0x11\n\ - lsls r6, 19\n\ - cmp r0, 0xFF\n\ - beq _0808E070\n\ - adds r3, r1, 0\n\ -_0808E032:\n\ - mov r0, sp\n\ - adds r1, r0, r4\n\ - adds r0, r4, r3\n\ - adds r0, r2\n\ - ldrb r0, [r0]\n\ - strb r0, [r1]\n\ - adds r0, r4, 0x1\n\ - lsls r0, 24\n\ - lsrs r4, r0, 24\n\ - adds r0, r4, r3\n\ - adds r0, r2\n\ - ldrb r0, [r0]\n\ - cmp r0, 0xFF\n\ - beq _0808E070\n\ - cmp r4, 0x9\n\ - bls _0808E032\n\ - b _0808E070\n\ - .align 2, 0\n\ -_0808E054: .4byte gSpeciesNames\n\ -_0808E058:\n\ - movs r4, 0\n\ - subs r5, 0x11\n\ - lsls r6, 19\n\ - movs r1, 0xAE\n\ -_0808E060:\n\ - mov r2, sp\n\ - adds r0, r2, r4\n\ - strb r1, [r0]\n\ - adds r0, r4, 0x1\n\ - lsls r0, 24\n\ - lsrs r4, r0, 24\n\ - cmp r4, 0x9\n\ - bls _0808E060\n\ -_0808E070:\n\ - lsls r1, r5, 27\n\ - movs r0, 0xFC\n\ - lsls r0, 24\n\ - adds r1, r0\n\ - lsrs r1, 24\n\ - lsrs r2, r6, 16\n\ - mov r0, sp\n\ - movs r3, 0\n\ - bl MenuPrint_PixelCoords\n\ - adds r0, r4, 0\n\ - add sp, 0xC\n\ - pop {r4-r6}\n\ - pop {r1}\n\ - bx r1\n\ - .syntax divided\n"); -} -#endif -void sub_808E090(u8 a, u8 b, u16 c) +static void sub_808E090(u8 a, u8 b, u16 c) { u8 i; for (i = 0; i < 12; i++) { *(u16 *)(VRAM + c * 0x800 + b * 64 + (a + i) * 2) = 0; - *(u16 *)(VRAM + 0x40 + c * 0x800 + b * 64 + (a + i) * 2) = 0; + *(u16 *)(VRAM + c * 0x800 + (b + 1) * 64 + (a + i) * 2) = 0; } } -void sub_808E0CC(u16 a, u16 b) +static void sub_808E0CC(u16 a, u16 b) { u8 i; u16 unk; u8 spriteId; for (i = 0; i < 4; i++) - gPokedexView->unk61E[i] |= 0xFFFF; - gPokedexView->unk626 = 0xFFFF; + gPokedexView->unk61E[i] = 0xFFFF; + gPokedexView->selectedMonSpriteId = 0xFFFF; sub_808DBE8(0, a, b); REG_BG2VOFS = gPokedexView->unk62D; + unk = sub_808E888(a - 1); if (unk != 0xFFFF) { @@ -1234,6 +2308,7 @@ void sub_808E0CC(u16 a, u16 b) gSprites[spriteId].callback = sub_808EE28; gSprites[spriteId].data5 = -32; } + unk = sub_808E888(a); if (unk != 0xFFFF) { @@ -1241,6 +2316,7 @@ void sub_808E0CC(u16 a, u16 b) gSprites[spriteId].callback = sub_808EE28; gSprites[spriteId].data5 = 0; } + unk = sub_808E888(a + 1); if (unk != 0xFFFF) { @@ -1248,11 +2324,12 @@ void sub_808E0CC(u16 a, u16 b) gSprites[spriteId].callback = sub_808EE28; gSprites[spriteId].data5 = 32; } + gPokedexView->unk630 = 0; gPokedexView->unk632 = 0; } -bool8 sub_808E208(u8 a, u8 b, u8 c) +static bool8 sub_808E208(u8 a, u8 b, u8 c) { u16 i; u8 foo; @@ -1283,17 +2360,16 @@ bool8 sub_808E208(u8 a, u8 b, u8 c) gPokedexView->unk62C += gPokedexView->unk628; break; } - return 0; + return FALSE; } - //_0808E36C else { REG_BG2VOFS = gPokedexView->unk62D + gPokedexView->unk630 * 16; - return 1; + return TRUE; } } -void sub_808E398(u8 a, u16 b) +static void sub_808E398(u8 a, u16 b) { u16 unk; u8 spriteId; @@ -1302,22 +2378,19 @@ void sub_808E398(u8 a, u16 b) switch (a) { case 1: - { unk = sub_808E888(b - 1); if (unk != 0xFFFF) { spriteId = sub_808E8C8(unk, 0x60, 0x50); gSprites[spriteId].callback = sub_808EE28; - gSprites[spriteId].data5 = 0xFFC0; + gSprites[spriteId].data5 = -64; } if (gPokedexView->unk630 > 0) gPokedexView->unk630--; else - gPokedexView->unk630 = 0xF; + gPokedexView->unk630 = 15; break; - } case 2: - { unk = sub_808E888(b + 1); if (unk != 0xFFFF) { @@ -1331,370 +2404,90 @@ void sub_808E398(u8 a, u16 b) gPokedexView->unk630 = 0; break; } - } } -#ifdef NONMATCHING -//This one's ridiculous. Fix later -u16 sub_808E48C(u16 a, u16 b) + +// Ugly, ugly, ugly. I couldn't get it to match otherwise. +static u16 sub_808E48C(u16 a, u16 b) { u8 r3; u8 r5; - u32 r10 = 0; - if (!(gMain.heldKeys & 0x40) || a == 0) - { - u8 i; - u16 r6; + u8 i; + u16 r6; + u8 r10 = 0; + if (!((gMain.heldKeys & 0x40) && (a > 0))) + { //_0808E4B6 - if (gMain.heldKeys & 0x80) - { - if (a < gPokedexView->unk60C - 1) - goto _0808E5C4; - } + if (!((gMain.heldKeys & 0x80) && (a < gPokedexView->pokemonListCount - 1))) //_0808E4CE - - if ((gMain.newKeys & 0x20) && a != 0) { - r6 = a; - //_0808E4E0 - for (i = 0; i < 7; i++) + if ((gMain.newKeys & 0x20) && (a > 0)) { - a = sub_8091818(1, a, 0, gPokedexView->unk60C - 1); + r6 = a; + //_0808E4E0 + for (i = 0; i < 7; i++) + a = sub_8091818(1, a, 0, gPokedexView->pokemonListCount - 1); + gPokedexView->unk62C += 16 * (a - r6); + sub_808E82C(); + sub_808E0CC(a, 0xE); + PlaySE(0x6D); + } + //_0808E53C + else if ((gMain.newKeys & 0x10) && (a < gPokedexView->pokemonListCount - 1)) + { + r6 = a; + for (i = 0; i < 7; i++) + a = sub_8091818(0, a, 0, gPokedexView->pokemonListCount - 1); + gPokedexView->unk62C += (a - r6) * 16; + sub_808E82C(); + sub_808E0CC(a, 0xE); + PlaySE(0x6D); + } + _0808E5A2: + if (r10 == 0) + { + gPokedexView->unk638 = 0; + return a; } - - gPokedexView->unk62C += (a - r6) * 16; - sub_808E82C(); - sub_808E0CC(a, 0xE); - PlaySE(SE_Z_PAGE); - goto _0808E5A2; } - //_0808E53C - if (!(gMain.newKeys & 0x10) || a >= gPokedexView->unk60C - 1) - goto _0808E5A2; - - r6 = a; - for (i = 0; i < 7; i++) + else { - a = sub_8091818(0, a, 0, gPokedexView->unk60C - 1); + // to _0808E5C4 + r10 = 2; + a = sub_8091818(0, a, 0, gPokedexView->pokemonListCount - 1); + sub_808E398(2, a); + //goto _0808E60E + sub_808DBE8(2, a, b); + PlaySE(0x6C); + goto _0808E5A2; } - - gPokedexView->unk62C += (a - r6) * 16; - sub_808E82C(); - sub_808E0CC(a, 0xE); - PlaySE(SE_Z_PAGE); - goto _0808E5A2; - - _0808E5A2: - if (r10 != 0) - goto _0808E628; - gPokedexView->unk638 = r10; - return a; - - _0808E5C4: - r10 = 2; - a = sub_8091818(0, a, 0, gPokedexView->unk60C - 1); - sub_808E398(2, a); - //goto _0808E60E - sub_808DBE8(2, a, b); - PlaySE(SE_Z_SCROLL); } - //_0808E5E4 else { + //to _0808E5E4 r10 = 1; - a = sub_8091818(1, a, 0, gPokedexView->unk60C - 1); + a = sub_8091818(1, a, 0, gPokedexView->pokemonListCount - 1); sub_808E398(1, a); //_0808E60E sub_808DBE8(1, a, b); - PlaySE(SE_Z_SCROLL); + PlaySE(0x6C); + goto _0808E5A2; } - //_0808E60E - goto _0808E5A2; - - _0808E628: + //_0808E628 r5 = gUnknown_083A05EC[gPokedexView->unk638 / 4]; r3 = gUnknown_083A05F1[gPokedexView->unk638 / 4]; gPokedexView->unk62E = r3; gPokedexView->unk636 = r3; gPokedexView->unk634 = r5; gPokedexView->unk62F = r10; - gPokedexView->unk628 = r5; + gPokedexView->unk628 = r5 / 2; sub_808E208(gPokedexView->unk62F, gPokedexView->unk634, gPokedexView->unk636); if (gPokedexView->unk638 <= 0xB) gPokedexView->unk638++; return a; } -#else -__attribute__((naked)) -u16 sub_808E48C(u16 a, u16 b) -{ - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - lsls r0, 16\n\ - lsrs r7, r0, 16\n\ - lsls r1, 16\n\ - lsrs r4, r1, 16\n\ - movs r0, 0\n\ - mov r10, r0\n\ - ldr r1, _0808E52C\n\ - ldrh r2, [r1, 0x2C]\n\ - movs r0, 0x40\n\ - ands r0, r2\n\ - adds r3, r1, 0\n\ - cmp r0, 0\n\ - beq _0808E4B6\n\ - cmp r7, 0\n\ - beq _0808E4B6\n\ - b _0808E5E4\n\ -_0808E4B6:\n\ - movs r0, 0x80\n\ - ands r0, r2\n\ - cmp r0, 0\n\ - beq _0808E4CE\n\ - ldr r0, _0808E530\n\ - ldr r0, [r0]\n\ - ldr r1, _0808E534\n\ - adds r0, r1\n\ - ldrh r0, [r0]\n\ - subs r0, 0x1\n\ - cmp r7, r0\n\ - blt _0808E5C4\n\ -_0808E4CE:\n\ - ldrh r1, [r3, 0x2E]\n\ - movs r0, 0x20\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0808E53C\n\ - cmp r7, 0\n\ - beq _0808E53C\n\ - adds r6, r7, 0\n\ - movs r4, 0\n\ -_0808E4E0:\n\ - ldr r5, _0808E530\n\ - ldr r0, [r5]\n\ - ldr r2, _0808E534\n\ - adds r0, r2\n\ - ldrh r3, [r0]\n\ - subs r3, 0x1\n\ - lsls r3, 16\n\ - lsrs r3, 16\n\ - movs r0, 0x1\n\ - adds r1, r7, 0\n\ - movs r2, 0\n\ - bl sub_8091818\n\ - adds r7, r0, 0\n\ - adds r0, r4, 0x1\n\ - lsls r0, 24\n\ - lsrs r4, r0, 24\n\ - cmp r4, 0x6\n\ - bls _0808E4E0\n\ - ldr r1, [r5]\n\ - ldr r3, _0808E538\n\ - adds r1, r3\n\ - subs r0, r7, r6\n\ - lsls r0, 4\n\ - ldrb r2, [r1]\n\ - adds r0, r2\n\ - strb r0, [r1]\n\ - bl sub_808E82C\n\ - adds r0, r7, 0\n\ - movs r1, 0xE\n\ - bl sub_808E0CC\n\ - movs r0, 0x6D\n\ - bl PlaySE\n\ - b _0808E5A2\n\ - .align 2, 0\n\ -_0808E52C: .4byte gMain\n\ -_0808E530: .4byte gPokedexView\n\ -_0808E534: .4byte 0x0000060c\n\ -_0808E538: .4byte 0x0000062c\n\ -_0808E53C:\n\ - ldrh r1, [r3, 0x2E]\n\ - movs r0, 0x10\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0808E5A2\n\ - ldr r0, _0808E5B8\n\ - ldr r0, [r0]\n\ - ldr r3, _0808E5BC\n\ - adds r0, r3\n\ - ldrh r0, [r0]\n\ - subs r0, 0x1\n\ - cmp r7, r0\n\ - bge _0808E5A2\n\ - adds r6, r7, 0\n\ - movs r4, 0\n\ -_0808E55A:\n\ - ldr r5, _0808E5B8\n\ - ldr r0, [r5]\n\ - ldr r1, _0808E5BC\n\ - adds r0, r1\n\ - ldrh r3, [r0]\n\ - subs r3, 0x1\n\ - lsls r3, 16\n\ - lsrs r3, 16\n\ - movs r0, 0\n\ - adds r1, r7, 0\n\ - movs r2, 0\n\ - bl sub_8091818\n\ - adds r7, r0, 0\n\ - adds r0, r4, 0x1\n\ - lsls r0, 24\n\ - lsrs r4, r0, 24\n\ - cmp r4, 0x6\n\ - bls _0808E55A\n\ - ldr r1, [r5]\n\ - ldr r2, _0808E5C0\n\ - adds r1, r2\n\ - subs r0, r7, r6\n\ - lsls r0, 4\n\ - ldrb r3, [r1]\n\ - adds r0, r3\n\ - strb r0, [r1]\n\ - bl sub_808E82C\n\ - adds r0, r7, 0\n\ - movs r1, 0xE\n\ - bl sub_808E0CC\n\ - movs r0, 0x6D\n\ - bl PlaySE\n\ -_0808E5A2:\n\ - mov r0, r10\n\ - cmp r0, 0\n\ - bne _0808E628\n\ - ldr r0, _0808E5B8\n\ - ldr r0, [r0]\n\ - movs r1, 0xC7\n\ - lsls r1, 3\n\ - adds r0, r1\n\ - mov r2, r10\n\ - strh r2, [r0]\n\ - b _0808E68E\n\ - .align 2, 0\n\ -_0808E5B8: .4byte gPokedexView\n\ -_0808E5BC: .4byte 0x0000060c\n\ -_0808E5C0: .4byte 0x0000062c\n\ -_0808E5C4:\n\ - movs r3, 0x2\n\ - mov r10, r3\n\ - lsls r3, r0, 16\n\ - lsrs r3, 16\n\ - movs r0, 0\n\ - adds r1, r7, 0\n\ - movs r2, 0\n\ - bl sub_8091818\n\ - adds r7, r0, 0\n\ - movs r0, 0x2\n\ - adds r1, r7, 0\n\ - bl sub_808E398\n\ - movs r0, 0x2\n\ - b _0808E60E\n\ -_0808E5E4:\n\ - movs r0, 0x1\n\ - mov r10, r0\n\ - ldr r0, _0808E620\n\ - ldr r0, [r0]\n\ - ldr r1, _0808E624\n\ - adds r0, r1\n\ - ldrh r3, [r0]\n\ - subs r3, 0x1\n\ - lsls r3, 16\n\ - lsrs r3, 16\n\ - movs r0, 0x1\n\ - adds r1, r7, 0\n\ - movs r2, 0\n\ - bl sub_8091818\n\ - adds r7, r0, 0\n\ - movs r0, 0x1\n\ - adds r1, r7, 0\n\ - bl sub_808E398\n\ - movs r0, 0x1\n\ -_0808E60E:\n\ - adds r1, r7, 0\n\ - adds r2, r4, 0\n\ - bl sub_808DBE8\n\ - movs r0, 0x6C\n\ - bl PlaySE\n\ - b _0808E5A2\n\ - .align 2, 0\n\ -_0808E620: .4byte gPokedexView\n\ -_0808E624: .4byte 0x0000060c\n\ -_0808E628:\n\ - ldr r1, _0808E6A0\n\ - ldr r6, _0808E6A4\n\ - ldr r2, [r6]\n\ - movs r3, 0xC7\n\ - lsls r3, 3\n\ - mov r9, r3\n\ - adds r0, r2, r3\n\ - ldrh r0, [r0]\n\ - lsrs r0, 2\n\ - adds r1, r0, r1\n\ - ldrb r5, [r1]\n\ - ldr r1, _0808E6A8\n\ - adds r0, r1\n\ - ldrb r3, [r0]\n\ - ldr r0, _0808E6AC\n\ - adds r2, r0\n\ - strb r3, [r2]\n\ - ldr r1, [r6]\n\ - ldr r2, _0808E6B0\n\ - mov r8, r2\n\ - adds r0, r1, r2\n\ - strh r3, [r0]\n\ - ldr r4, _0808E6B4\n\ - adds r0, r1, r4\n\ - strh r5, [r0]\n\ - ldr r3, _0808E6B8\n\ - adds r1, r3\n\ - mov r0, r10\n\ - strb r0, [r1]\n\ - ldr r2, [r6]\n\ - lsrs r5, 1\n\ - movs r1, 0xC5\n\ - lsls r1, 3\n\ - adds r0, r2, r1\n\ - strh r5, [r0]\n\ - adds r3, r2, r3\n\ - ldrb r0, [r3]\n\ - adds r4, r2, r4\n\ - ldrb r1, [r4]\n\ - add r2, r8\n\ - ldrb r2, [r2]\n\ - bl sub_808E208\n\ - ldr r0, [r6]\n\ - mov r2, r9\n\ - adds r1, r0, r2\n\ - ldrh r0, [r1]\n\ - cmp r0, 0xB\n\ - bhi _0808E68E\n\ - adds r0, 0x1\n\ - strh r0, [r1]\n\ -_0808E68E:\n\ - adds r0, r7, 0\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r1}\n\ - bx r1\n\ - .align 2, 0\n\ -_0808E6A0: .4byte gUnknown_083A05EC\n\ -_0808E6A4: .4byte gPokedexView\n\ -_0808E6A8: .4byte gUnknown_083A05F1\n\ -_0808E6AC: .4byte 0x0000062e\n\ -_0808E6B0: .4byte 0x00000636\n\ -_0808E6B4: .4byte 0x00000634\n\ -_0808E6B8: .4byte 0x0000062f\n\ - .syntax divided\n"); -} -#endif -void sub_808E6BC(void) +static void sub_808E6BC(void) { u16 i; @@ -1703,11 +2496,11 @@ void sub_808E6BC(void) u16 spriteId = gPokedexView->unk61E[i]; if (gSprites[spriteId].pos2.x == 0 && gSprites[spriteId].pos2.y == 0 && spriteId != 0xFFFF) - gPokedexView->unk626 = spriteId; + gPokedexView->selectedMonSpriteId = spriteId; } } -u8 sub_808E71C(void) +static u8 sub_808E71C(void) { u16 r2; u16 r4 = gPokedexView->selectedPokemon; @@ -1717,7 +2510,7 @@ u8 sub_808E71C(void) r2 = r4; while (r2 != 0) { - r2 = sub_8091818(1, r2, 0, gPokedexView->unk60C - 1); + r2 = sub_8091818(1, r2, 0, gPokedexView->pokemonListCount - 1); if (gPokedexView->unk0[r2].seen) { @@ -1735,12 +2528,12 @@ u8 sub_808E71C(void) return 1; } } - else if ((gMain.newKeys & DPAD_DOWN) && r4 < gPokedexView->unk60C - 1) + else if ((gMain.newKeys & DPAD_DOWN) && r4 < gPokedexView->pokemonListCount - 1) { r2 = r4; - while (r2 < gPokedexView->unk60C - 1) + while (r2 < gPokedexView->pokemonListCount - 1) { - r2 = sub_8091818(0, r2, 0, gPokedexView->unk60C - 1); + r2 = sub_8091818(0, r2, 0, gPokedexView->pokemonListCount - 1); if (gPokedexView->unk0[r2].seen) { @@ -1761,7 +2554,7 @@ u8 sub_808E71C(void) return 0; } -u8 sub_808E82C(void) +static u8 sub_808E82C(void) { u16 i; @@ -1776,9 +2569,9 @@ u8 sub_808E82C(void) return 0; } -u16 sub_808E888(u16 a1) +static u16 sub_808E888(u16 a1) { - if (a1 > 385 || gPokedexView->unk0[a1].dexNum == 0xFFFF) + if (a1 >= NATIONAL_DEX_COUNT || gPokedexView->unk0[a1].dexNum == 0xFFFF) return 0xFFFF; else if (gPokedexView->unk0[a1].seen) return gPokedexView->unk0[a1].dexNum; @@ -1786,7 +2579,7 @@ u16 sub_808E888(u16 a1) return 0; } -u32 sub_808E8C8(u16 a, u16 b, u16 c) +static u32 sub_808E8C8(u16 a, s16 b, s16 c) { u8 i; @@ -1794,7 +2587,7 @@ u32 sub_808E8C8(u16 a, u16 b, u16 c) { if (gPokedexView->unk61E[i] == 0xFFFF) { - u8 spriteId = sub_80918EC(a, (s16)b, (s16)c, i); + u8 spriteId = sub_80918EC(a, b, c, i); gSprites[spriteId].oam.affineMode = 1; gSprites[spriteId].oam.priority = 3; @@ -1808,38 +2601,38 @@ u32 sub_808E8C8(u16 a, u16 b, u16 c) return 0xFFFF; } -void sub_808E978(u8 a) +static void sub_808E978(u8 a) { u8 spriteId; u16 r5; - spriteId = CreateSprite(&gSpriteTemplate_83A053C, 0xB8, 4, 0); + spriteId = CreateSprite(&gSpriteTemplate_83A053C, 184, 4, 0); gSprites[spriteId].data1 = 0; - spriteId = CreateSprite(&gSpriteTemplate_83A053C, 0xB8, 0x9C, 0); + spriteId = CreateSprite(&gSpriteTemplate_83A053C, 184, 156, 0); gSprites[spriteId].data1 = 1; - gSprites[spriteId].vFlip = 1; + gSprites[spriteId].vFlip = TRUE; - CreateSprite(&gSpriteTemplate_83A0524, 0xEA, 0x14, 0); - CreateSprite(&gSpriteTemplate_83A0554, 0x10, 0x8A, 0); + CreateSprite(&gSpriteTemplate_83A0524, 234, 20, 0); + CreateSprite(&gSpriteTemplate_83A0554, 16, 138, 0); - spriteId = CreateSprite(&gSpriteTemplate_83A0554, 0x30, 0x8A, 0); + spriteId = CreateSprite(&gSpriteTemplate_83A0554, 48, 138, 0); StartSpriteAnim(&gSprites[spriteId], 3); - spriteId = CreateSprite(&gSpriteTemplate_83A0554, 0x10, 0x9E, 0); + spriteId = CreateSprite(&gSpriteTemplate_83A0554, 16, 158, 0); StartSpriteAnim(&gSprites[spriteId], 2); gSprites[spriteId].data2 = 0x80; - spriteId = CreateSprite(&gSpriteTemplate_83A0554, 0x30, 0x9E, 0); + spriteId = CreateSprite(&gSpriteTemplate_83A0554, 48, 158, 0); StartSpriteAnim(&gSprites[spriteId], 1); - spriteId = CreateSprite(&gSpriteTemplate_83A056C, 0, 0x50, 2); + spriteId = CreateSprite(&gSpriteTemplate_83A056C, 0, 80, 2); gSprites[spriteId].oam.affineMode = 1; gSprites[spriteId].oam.matrixNum = 30; gSprites[spriteId].data0 = 0x1E; gSprites[spriteId].data1 = 0; - spriteId = CreateSprite(&gSpriteTemplate_83A056C, 0, 0x50, 2); + spriteId = CreateSprite(&gSpriteTemplate_83A056C, 0, 80, 2); gSprites[spriteId].oam.affineMode = 1; gSprites[spriteId].oam.matrixNum = 31; gSprites[spriteId].data0 = 0x1F; @@ -1849,95 +2642,97 @@ void sub_808E978(u8 a) { u32 _a; - CreateSprite(&gSpriteTemplate_83A0584, 0x20, 0x28, 1); + CreateSprite(&gSpriteTemplate_83A0584, 32, 40, 1); - spriteId = CreateSprite(&gSpriteTemplate_83A0584, 0x20, 0x48, 1); + spriteId = CreateSprite(&gSpriteTemplate_83A0584, 32, 72, 1); StartSpriteAnim(&gSprites[spriteId], 1); _a = 0; - spriteId = CreateSprite(&gSpriteTemplate_83A059C, 0x1C, 0x30, 1); + spriteId = CreateSprite(&gSpriteTemplate_83A059C, 28, 48, 1); r5 = gPokedexView->unk61A / 100; StartSpriteAnim(&gSprites[spriteId], r5); if (r5 != 0) _a = 1; else - gSprites[spriteId].invisible = 1; + gSprites[spriteId].invisible = TRUE; - spriteId = CreateSprite(&gSpriteTemplate_83A059C, 0x22, 0x30, 1); + spriteId = CreateSprite(&gSpriteTemplate_83A059C, 34, 48, 1); r5 = (gPokedexView->unk61A % 100) / 10; if (r5 != 0 || _a != 0) StartSpriteAnim(&gSprites[spriteId], r5); else - gSprites[spriteId].invisible = 1; + gSprites[spriteId].invisible = TRUE; - spriteId = CreateSprite(&gSpriteTemplate_83A059C, 0x28, 0x30, 1); + spriteId = CreateSprite(&gSpriteTemplate_83A059C, 40, 48, 1); r5 = (gPokedexView->unk61A % 100) % 10; StartSpriteAnim(&gSprites[spriteId], r5); _a = 0; - spriteId = CreateSprite(&gSpriteTemplate_83A059C, 0x1C, 0x50, 1); + spriteId = CreateSprite(&gSpriteTemplate_83A059C, 28, 80, 1); r5 = gPokedexView->unk61C / 100; StartSpriteAnim(&gSprites[spriteId], r5); if (r5 != 0) _a = 1; else - gSprites[spriteId].invisible = 1; + gSprites[spriteId].invisible = TRUE; - spriteId = CreateSprite(&gSpriteTemplate_83A059C, 0x22, 0x50, 1); + spriteId = CreateSprite(&gSpriteTemplate_83A059C, 34, 80, 1); r5 = (gPokedexView->unk61C % 100) / 10; if (r5 != 0 || _a != 0) StartSpriteAnim(&gSprites[spriteId], r5); else - gSprites[spriteId].invisible = 1; + gSprites[spriteId].invisible = TRUE; - spriteId = CreateSprite(&gSpriteTemplate_83A059C, 0x28, 0x50, 1); + spriteId = CreateSprite(&gSpriteTemplate_83A059C, 40, 80, 1); r5 = (gPokedexView->unk61C % 100) % 10; StartSpriteAnim(&gSprites[spriteId], r5); - spriteId = CreateSprite(&gSpriteTemplate_83A05B4, 0x8C, 0x60, 1); - gSprites[spriteId].invisible = 1; + spriteId = CreateSprite(&gSpriteTemplate_83A05B4, 140, 96, 1); + gSprites[spriteId].invisible = TRUE; } else { - spriteId = CreateSprite(&gSpriteTemplate_83A05B4, 0x8C, 0x50, 1); - gSprites[spriteId].invisible = 1; + spriteId = CreateSprite(&gSpriteTemplate_83A05B4, 140, 80, 1); + gSprites[spriteId].invisible = TRUE; } } -void nullsub_58(struct Sprite *sprite) +static void nullsub_58(struct Sprite *sprite) { } -void sub_808ED94(struct Sprite *sprite) +static void sub_808ED94(struct Sprite *sprite) { if (gPokedexView->unk64A != 0) DestroySprite(sprite); } //Move Pokemon into position for description page -void sub_808EDB8(struct Sprite *sprite) +static void sub_808EDB8(struct Sprite *sprite) { sprite->oam.priority = 0; sprite->oam.affineMode = 0; sprite->pos2.x = 0; sprite->pos2.y = 0; - if (sprite->pos1.x != 0x30 || sprite->pos1.y != 0x38) + if (sprite->pos1.x != 48 || sprite->pos1.y != 56) { - if (sprite->pos1.x > 0x30) + if (sprite->pos1.x > 48) sprite->pos1.x--; - if (sprite->pos1.x < 0x30) + if (sprite->pos1.x < 48) sprite->pos1.x++; - if (sprite->pos1.y > 0x38) + + if (sprite->pos1.y > 56) sprite->pos1.y--; - if (sprite->pos1.y <0x38) + if (sprite->pos1.y < 56) sprite->pos1.y++; } - //_0808EE1C else + { sprite->callback = nullsub_58; + } } -void sub_808EE28(struct Sprite *sprite) +static void sub_808EE28(struct Sprite *sprite) { u8 data1 = sprite->data1; @@ -1948,223 +2743,132 @@ void sub_808EE28(struct Sprite *sprite) } else { - //_0808EE58 - s32 var; + u32 var; sprite->pos2.y = gSineTable[(u8)sprite->data5] * 76 / 256; var = 0x10000 / gSineTable[sprite->data5 + 0x40]; - if ((u32)var > 0xFFFF) + if (var > 0xFFFF) var = 0xFFFF; SetOamMatrix(sprite->data1 + 1, 0x100, 0, 0, var); sprite->oam.matrixNum = data1 + 1; - //ToDo: clean up these inequalities - if ((u16)(sprite->data5 + 0x3F) <= 0x7E) + if (sprite->data5 > -64 && sprite->data5 < 64) { - sprite->invisible = 0; + sprite->invisible = FALSE; sprite->data0 = 1; } else { - sprite->invisible = 1; + sprite->invisible = TRUE; } - //_0808EEF8 - if ((u16)(sprite->data5 + 0x3F) > 0x7E && sprite->data0 != 0) + + if ((sprite->data5 <= -64 || sprite->data5 >= 64) && sprite->data0 != 0) { DestroySprite(sprite); gPokedexView->unk61E[data1] = 0xFFFF; } } - //_0808EF16 } -void sub_808EF38(struct Sprite *sprite) +static void sub_808EF38(struct Sprite *sprite) { if (gPokedexView->unk64A != 0 && gPokedexView->unk64A != 3) DestroySprite(sprite); else - sprite->pos2.y = gPokedexView->selectedPokemon * 120 / (gPokedexView->unk60C - 1); + sprite->pos2.y = gPokedexView->selectedPokemon * 120 / (gPokedexView->pokemonListCount - 1); } -void sub_808EF8C(struct Sprite *sprite) +static void sub_808EF8C(struct Sprite *sprite) { if (gPokedexView->unk64A != 0 && gPokedexView->unk64A != 3) + { DestroySprite(sprite); + } else { u8 r0; if (sprite->data1 != 0) { - if (gPokedexView->selectedPokemon == gPokedexView->unk60C - 1) - sprite->invisible = 1; + if (gPokedexView->selectedPokemon == gPokedexView->pokemonListCount - 1) + sprite->invisible = TRUE; else - sprite->invisible = 0; + sprite->invisible = FALSE; r0 = sprite->data2; } else { if (gPokedexView->selectedPokemon == 0) - sprite->invisible = 1; + sprite->invisible = TRUE; else - sprite->invisible = 0; - r0 = sprite->data2 - 0x80; + sprite->invisible = FALSE; + r0 = sprite->data2 - 128; } sprite->pos2.y = gSineTable[r0] / 64; sprite->data2 = sprite->data2 + 8; if (gPokedexView->menuIsOpen == 0 && gPokedexView->menuY == 0 && sprite->invisible == 0) - sprite->invisible = 0; + sprite->invisible = FALSE; else - sprite->invisible = 1; + sprite->invisible = TRUE; } } -void sub_808F08C(struct Sprite *sprite) +static void sub_808F08C(struct Sprite *sprite) { if (gPokedexView->unk64A != 0 && gPokedexView->unk64A != 3) DestroySprite(sprite); } -#ifdef NONMATCHING -void sub_808F0B4(struct Sprite *sprite) +static void sub_808F0B4(struct Sprite *sprite) { if (gPokedexView->unk64A != 0 && gPokedexView->unk64A != 3) + { DestroySprite(sprite); + } else { + u8 val; s16 r3; + s16 r0; - u8 unk = gPokedexView->unk62C + sprite->data1; - u16 foo = gSineTable[unk]; - //u8 unk2 = sprite->data0; - //u16 bar = gSineTable[unk + 0x40]; - - SetOamMatrix(sprite->data0, foo, gSineTable[unk + 0x40], (-(u16)foo) >> 16, gSineTable[unk + 0x40]); + val = gPokedexView->unk62C + sprite->data1; + r3 = gSineTable[val]; + r0 = gSineTable[val + 0x40]; + SetOamMatrix(sprite->data0, r0, r3, -r3, r0); - r3 = gSineTable[sprite->data1 + gPokedexView->unk62C]; - sprite->pos2.x = gSineTable[sprite->data1 + gPokedexView->unk62C + 0x40] * 5 / 256; + val = gPokedexView->unk62C + (sprite->data1 + 0x40); + r3 = gSineTable[val]; + r0 = gSineTable[val + 0x40]; + sprite->pos2.x = r0 * 40 / 256; sprite->pos2.y = r3 * 40 / 256; } } -#else -__attribute__((naked)) -void sub_808F0B4(struct Sprite *sprite) -{ - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - sub sp, 0x4\n\ - adds r6, r0, 0\n\ - ldr r1, _0808F0D8 @ =gPokedexView\n\ - ldr r0, [r1]\n\ - ldr r2, _0808F0DC @ =0x0000064a\n\ - adds r0, r2\n\ - ldrb r0, [r0]\n\ - adds r7, r1, 0\n\ - cmp r0, 0\n\ - beq _0808F0E0\n\ - cmp r0, 0x3\n\ - beq _0808F0E0\n\ - adds r0, r6, 0\n\ - bl DestroySprite\n\ - b _0808F158\n\ - .align 2, 0\n\ -_0808F0D8: .4byte gPokedexView\n\ -_0808F0DC: .4byte 0x0000064a\n\ -_0808F0E0:\n\ - ldr r0, [r7]\n\ - ldr r5, _0808F160 @ =0x0000062c\n\ - adds r0, r5\n\ - ldrb r1, [r0]\n\ - ldrh r0, [r6, 0x30]\n\ - adds r1, r0\n\ - lsls r1, 24\n\ - lsrs r1, 24\n\ - ldr r4, _0808F164 @ =gSineTable\n\ - lsls r0, r1, 1\n\ - adds r0, r4\n\ - ldrh r3, [r0]\n\ - adds r1, 0x40\n\ - lsls r1, 1\n\ - adds r1, r4\n\ - ldrh r0, [r6, 0x2E]\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - ldrh r1, [r1]\n\ - lsls r3, 16\n\ - lsrs r2, r3, 16\n\ - negs r3, r3\n\ - lsrs r3, 16\n\ - str r1, [sp]\n\ - bl SetOamMatrix\n\ - ldr r1, [r7]\n\ - adds r1, r5\n\ - ldrh r0, [r6, 0x30]\n\ - adds r0, 0x40\n\ - ldrb r1, [r1]\n\ - adds r0, r1\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - lsls r1, r0, 1\n\ - adds r1, r4\n\ - ldrh r3, [r1]\n\ - adds r0, 0x40\n\ - lsls r0, 1\n\ - adds r0, r4\n\ - movs r2, 0\n\ - ldrsh r1, [r0, r2]\n\ - lsls r0, r1, 2\n\ - adds r0, r1\n\ - lsls r0, 3\n\ - cmp r0, 0\n\ - bge _0808F140\n\ - adds r0, 0xFF\n\ -_0808F140:\n\ - asrs r0, 8\n\ - strh r0, [r6, 0x24]\n\ - lsls r1, r3, 16\n\ - asrs r1, 16\n\ - lsls r0, r1, 2\n\ - adds r0, r1\n\ - lsls r0, 3\n\ - cmp r0, 0\n\ - bge _0808F154\n\ - adds r0, 0xFF\n\ -_0808F154:\n\ - asrs r0, 8\n\ - strh r0, [r6, 0x26]\n\ -_0808F158:\n\ - add sp, 0x4\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ -_0808F160: .4byte 0x0000062c\n\ -_0808F164: .4byte gSineTable\n\ - .syntax divided\n"); -} -#endif -void sub_808F168(struct Sprite *sprite) +static void sub_808F168(struct Sprite *sprite) { if (gPokedexView->unk64A != 0 && gPokedexView->unk64A != 3) + { DestroySprite(sprite); + } else { - u16 r1 = gPokedexView->unk64A == 0 ? 0x50 : 0x60; + u16 r1 = gPokedexView->unk64A == 0 ? 80 : 96; if (gPokedexView->menuIsOpen != 0 && gPokedexView->menuY == r1) { - sprite->invisible = 0; + sprite->invisible = FALSE; sprite->pos2.y = gPokedexView->menuCursorPos * 16; sprite->pos2.x = gSineTable[(u8)sprite->data2] / 64; sprite->data2 += 8; } else - sprite->invisible = 1; + { + sprite->invisible = TRUE; + } } } -u8 sub_808F210(struct PokedexListItem *item, u8 b) +static u8 sub_808F210(struct PokedexListItem *item, u8 b) { u8 taskId; @@ -2178,15 +2882,15 @@ u8 sub_808F210(struct PokedexListItem *item, u8 b) return taskId; } -bool8 sub_808F250(u8 taskId) +static bool8 sub_808F250(u8 taskId) { if (gTasks[taskId].data[0] == 0 && gTasks[taskId].func == Task_PageScreenProcessInput) - return 0; + return FALSE; else - return 1; + return TRUE; } -u8 sub_808F284(struct PokedexListItem *item, u8 b) +static u8 sub_808F284(struct PokedexListItem *item, u8 b) { gUnknown_0202FFBC = item; gTasks[b].data[0] = 1; @@ -2196,7 +2900,7 @@ u8 sub_808F284(struct PokedexListItem *item, u8 b) return b; } -void Task_InitPageScreenMultistep(u8 taskId) +static void Task_InitPageScreenMultistep(u8 taskId) { switch (gMain.state) { @@ -2207,7 +2911,7 @@ void Task_InitPageScreenMultistep(u8 taskId) u16 r2; gPokedexView->unk64A = 1; - gPokedexView->unk64E = 0; + gPokedexView->descriptionPageNum = 0; gUnknown_03005CEC = gMain.vblankCallback; SetVBlankCallback(NULL); r2 = 0; @@ -2241,7 +2945,6 @@ void Task_InitPageScreenMultistep(u8 taskId) sub_8091154(NationalToHoennOrder(gUnknown_0202FFBC->dexNum), 0xD, 3); else sub_8091154(gUnknown_0202FFBC->dexNum, 0xD, 3); - //_0808F45A sub_80911C8(gUnknown_0202FFBC->dexNum, 0x10, 3); MenuPrint(gDexText_UnknownPoke, 11, 5); MenuPrint(gDexText_UnknownHeight, 16, 7); @@ -2254,7 +2957,6 @@ void Task_InitPageScreenMultistep(u8 taskId) MenuPrint(gPokedexEntries[gUnknown_0202FFBC->dexNum].descriptionPage1, 2, 13); sub_80917CC(14, 0x3FC); } - //_0808F50C else { MenuPrint(gUnknown_083A05F8, 2, 13); @@ -2265,27 +2967,24 @@ void Task_InitPageScreenMultistep(u8 taskId) case 5: if (gTasks[taskId].data[1] == 0) { - //_0808F540 gTasks[taskId].data[4] = (u16)sub_80918EC(gUnknown_0202FFBC->dexNum, 0x30, 0x38, 0); gSprites[gTasks[taskId].data[4]].oam.priority = 0; } gMain.state++; break; case 6: - { - u32 r3 = 0; - - if (gTasks[taskId].data[2] != 0) - r3 = 0x14; - if (gTasks[taskId].data[1] != 0) { - r3 |= (1 << (gSprites[gTasks[taskId].data[4]].oam.paletteNum + 0x10)); + u32 r3 = 0; + + if (gTasks[taskId].data[2] != 0) + r3 = 0x14; + if (gTasks[taskId].data[1] != 0) + r3 |= (1 << (gSprites[gTasks[taskId].data[4]].oam.paletteNum + 16)); + BeginNormalPaletteFade(~r3, 0, 16, 0, 0); + SetVBlankCallback(gUnknown_03005CEC); + gMain.state++; } - BeginNormalPaletteFade(~r3, 0, 0x10, 0, 0); - SetVBlankCallback(gUnknown_03005CEC); - gMain.state++; break; - } case 7: REG_BLDCNT = 0; REG_BLDALPHA = 0; @@ -2305,7 +3004,9 @@ void Task_InitPageScreenMultistep(u8 taskId) PlayCry2(NationalPokedexNumToSpecies(gUnknown_0202FFBC->dexNum), 0, 0x7D, 0xA); } else + { gMain.state++; + } } break; case 9: @@ -2323,21 +3024,23 @@ void Task_InitPageScreenMultistep(u8 taskId) } } -void Task_PageScreenProcessInput(u8 taskId) +static void Task_PageScreenProcessInput(u8 taskId) { if (gTasks[taskId].data[0] != 0) { - BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); + BeginNormalPaletteFade(-1, 0, 0, 16, 0); gTasks[taskId].func = sub_808F888; PlaySE(SE_Z_SCROLL); + return; } - else if (gMain.newKeys & B_BUTTON) + if (gMain.newKeys & B_BUTTON) { - BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); + BeginNormalPaletteFade(-1, 0, 0, 16, 0); gTasks[taskId].func = Task_ClosePageScreen; PlaySE(SE_PC_OFF); + return; } - else if (gMain.newKeys & A_BUTTON) + if (gMain.newKeys & A_BUTTON) { switch (gPokedexView->selectedScreen) { @@ -2356,7 +3059,9 @@ void Task_PageScreenProcessInput(u8 taskId) break; case SIZE_SCREEN: if (!gUnknown_0202FFBC->owned) + { PlaySE(SE_HAZURE); + } else { BeginNormalPaletteFade(-0x15, 0, 0, 0x10, 0); @@ -2365,38 +3070,41 @@ void Task_PageScreenProcessInput(u8 taskId) } break; } + return; } - else if (((gMain.newKeys & DPAD_LEFT) + if (((gMain.newKeys & DPAD_LEFT) || ((gMain.newKeys & L_BUTTON) && gSaveBlock2.optionsButtonMode == OPTIONS_BUTTON_MODE_LR)) && gPokedexView->selectedScreen > 0) { gPokedexView->selectedScreen--; sub_8090584(gPokedexView->selectedScreen, 0xD); PlaySE(SE_Z_PAGE); + return; } - else if (((gMain.newKeys & DPAD_RIGHT) + if (((gMain.newKeys & DPAD_RIGHT) || ((gMain.newKeys & R_BUTTON) && gSaveBlock2.optionsButtonMode == OPTIONS_BUTTON_MODE_LR)) && gPokedexView->selectedScreen < 3) { gPokedexView->selectedScreen++; sub_8090584(gPokedexView->selectedScreen, 0xD); PlaySE(SE_Z_PAGE); + return; } } -void sub_808F888(u8 taskId) +static void sub_808F888(u8 taskId) { if (!gPaletteFade.active) gTasks[taskId].func = Task_InitPageScreenMultistep; } -void Task_ClosePageScreen(u8 taskId) +static void Task_ClosePageScreen(u8 taskId) { if (!gPaletteFade.active) DestroyTask(taskId); } -void Task_InitAreaScreenMultistep(u8 taskId) +static void Task_InitAreaScreenMultistep(u8 taskId) { switch (gMain.state) { @@ -2429,13 +3137,13 @@ void Task_InitAreaScreenMultistep(u8 taskId) } } -void Task_AreaScreenProcessInput(u8 taskId) +static void Task_AreaScreenProcessInput(u8 taskId) { if (gPokedexView->unk64F != 0) gTasks[taskId].func = sub_808FA00; } -void sub_808FA00(u8 taskId) +static void sub_808FA00(u8 taskId) { if (!gPaletteFade.active) { @@ -2452,7 +3160,7 @@ void sub_808FA00(u8 taskId) } } -void Task_InitCryScreenMultistep(u8 taskId) +static void Task_InitCryScreenMultistep(u8 taskId) { switch (gMain.state) { @@ -2499,36 +3207,34 @@ void Task_InitCryScreenMultistep(u8 taskId) gMain.state++; break; case 6: - { - struct CryRelatedStruct sp8; - - sp8.unk0 = 0x4020; - sp8.unk2 = 0x1F; - sp8.paletteNo = 8; - sp8.yPos = 0x1E; - sp8.xPos = 0xC; - if (sub_8119E3C(&sp8, 0) != 0) { - gMain.state++; - gUnknown_03005E98 = 0; + struct CryRelatedStruct sp8; + + sp8.unk0 = 0x4020; + sp8.unk2 = 0x1F; + sp8.paletteNo = 8; + sp8.yPos = 0x1E; + sp8.xPos = 0xC; + if (sub_8119E3C(&sp8, 0) != 0) + { + gMain.state++; + gUnknown_03005E98 = 0; + } } break; - } case 7: - { - struct CryRelatedStruct sp10; - - sp10.unk0 = 0x3000; - sp10.unk2 = 0xE; - sp10.paletteNo = 9; - sp10.xPos = 0x12; - sp10.yPos = 3; - if (ShowPokedexCryScreen(&sp10, 1) != 0) { - gMain.state++; + struct CryRelatedStruct sp10; + + sp10.unk0 = 0x3000; + sp10.unk2 = 0xE; + sp10.paletteNo = 9; + sp10.xPos = 0x12; + sp10.yPos = 3; + if (ShowPokedexCryScreen(&sp10, 1) != 0) + gMain.state++; } break; - } case 8: BeginNormalPaletteFade(-0x15, 0, 0x10, 0, 0); SetVBlankCallback(gUnknown_03005CEC); @@ -2552,7 +3258,7 @@ void Task_InitCryScreenMultistep(u8 taskId) } } -void Task_CryScreenProcessInput(u8 taskId) +static void Task_CryScreenProcessInput(u8 taskId) { sub_8119F88(0); @@ -2576,8 +3282,9 @@ void Task_CryScreenProcessInput(u8 taskId) gPokedexView->unk64F = 1; gTasks[taskId].func = sub_808FFBC; PlaySE(SE_PC_OFF); + return; } - else if ((gMain.newKeys & DPAD_LEFT) + if ((gMain.newKeys & DPAD_LEFT) || ((gMain.newKeys & L_BUTTON) && gSaveBlock2.optionsButtonMode == OPTIONS_BUTTON_MODE_LR)) { BeginNormalPaletteFade(-0x15, 0, 0, 0x10, 0); @@ -2585,12 +3292,15 @@ void Task_CryScreenProcessInput(u8 taskId) gPokedexView->unk64F = 2; gTasks[taskId].func = sub_808FFBC; PlaySE(SE_Z_PAGE); + return; } - else if ((gMain.newKeys & DPAD_RIGHT) + if ((gMain.newKeys & DPAD_RIGHT) || ((gMain.newKeys & R_BUTTON) && gSaveBlock2.optionsButtonMode == OPTIONS_BUTTON_MODE_LR)) { if (!gUnknown_0202FFBC->owned) + { PlaySE(SE_HAZURE); + } else { BeginNormalPaletteFade(-0x15, 0, 0, 0x10, 0); @@ -2599,11 +3309,12 @@ void Task_CryScreenProcessInput(u8 taskId) gTasks[taskId].func = sub_808FFBC; PlaySE(SE_Z_PAGE); } + return; } } } -void sub_808FFBC(u8 taskId) +static void sub_808FFBC(u8 taskId) { if (!gPaletteFade.active) { @@ -2619,11 +3330,12 @@ void sub_808FFBC(u8 taskId) break; case 3: gTasks[taskId].func = Task_InitSizeScreenMultistep; + break; } } } -void sub_8090040(u8 a) +static void sub_8090040(u8 a) { u16 unk; @@ -2634,7 +3346,7 @@ void sub_8090040(u8 a) LoadPalette(&unk, 0x5D, 2); } -void Task_InitSizeScreenMultistep(u8 taskId) +static void Task_InitSizeScreenMultistep(u8 taskId) { u8 spriteId; @@ -2664,40 +3376,40 @@ void Task_InitSizeScreenMultistep(u8 taskId) gMain.state++; break; case 3: - { - u8 string[40]; //I hope this is the correct size - - SetUpWindowConfig(&gWindowConfig_81E702C); - InitMenuWindow(&gWindowConfig_81E702C); - string[0] = EOS; - StringAppend(string, gDexText_SizeComparedTo); - StringAppend(string, gSaveBlock2.playerName); - sub_8072BD8(string, 3, 15, 0xC0); - gMain.state++; + { + u8 string[40]; //I hope this is the correct size + + SetUpWindowConfig(&gWindowConfig_81E702C); + InitMenuWindow(&gWindowConfig_81E702C); + string[0] = EOS; + StringAppend(string, gDexText_SizeComparedTo); + StringAppend(string, gSaveBlock2.playerName); + sub_8072BD8(string, 3, 15, 0xC0); + gMain.state++; + } break; - } case 4: ResetPaletteFade(); gMain.state++; break; case 5: - spriteId = sub_8091A4C(gSaveBlock2.playerGender, 0x98, 0x38, 0); + spriteId = sub_8091A4C(gSaveBlock2.playerGender, 152, 56, 0); gSprites[spriteId].oam.affineMode = 1; gSprites[spriteId].oam.matrixNum = 1; gSprites[spriteId].oam.priority = 0; gSprites[spriteId].pos2.y = gPokedexEntries[gUnknown_0202FFBC->dexNum].trainerOffset; SetOamMatrix(1, gPokedexEntries[gUnknown_0202FFBC->dexNum].trainerScale, 0, 0, gPokedexEntries[gUnknown_0202FFBC->dexNum].trainerScale); - LoadPalette(gUnknown_083B4EC4, (gSprites[spriteId].oam.paletteNum + 16) * 16, 0x20); + LoadPalette(gUnknown_083B4EC4, (gSprites[spriteId].oam.paletteNum + 16) * 16, sizeof(gUnknown_083B4EC4)); gMain.state++; break; case 6: - spriteId = sub_80918EC(gUnknown_0202FFBC->dexNum, 0x58, 0x38, 1); + spriteId = sub_80918EC(gUnknown_0202FFBC->dexNum, 88, 56, 1); gSprites[spriteId].oam.affineMode = 1; gSprites[spriteId].oam.matrixNum = 2; gSprites[spriteId].oam.priority = 0; gSprites[spriteId].pos2.y = gPokedexEntries[gUnknown_0202FFBC->dexNum].pokemonOffset; SetOamMatrix(2, gPokedexEntries[gUnknown_0202FFBC->dexNum].pokemonScale, 0, 0, gPokedexEntries[gUnknown_0202FFBC->dexNum].pokemonScale); - LoadPalette(gUnknown_083B4EC4, (gSprites[spriteId].oam.paletteNum + 16) * 16, 0x20); + LoadPalette(gUnknown_083B4EC4, (gSprites[spriteId].oam.paletteNum + 16) * 16, sizeof(gUnknown_083B4EC4)); gMain.state++; break; case 7: @@ -2724,7 +3436,7 @@ void Task_InitSizeScreenMultistep(u8 taskId) } } -void Task_SizeScreenProcessInput(u8 taskId) +static void Task_SizeScreenProcessInput(u8 taskId) { if (gMain.newKeys & B_BUTTON) { @@ -2733,7 +3445,6 @@ void Task_SizeScreenProcessInput(u8 taskId) gTasks[taskId].func = sub_8090498; PlaySE(SE_PC_OFF); } - //_08090430 else if ((gMain.newKeys & DPAD_LEFT) || ((gMain.newKeys & L_BUTTON) && gSaveBlock2.optionsButtonMode == OPTIONS_BUTTON_MODE_LR)) { @@ -2744,7 +3455,7 @@ void Task_SizeScreenProcessInput(u8 taskId) } } -void sub_8090498(u8 taskId) +static void sub_8090498(u8 taskId) { if (!gPaletteFade.active) { @@ -2761,20 +3472,20 @@ void sub_8090498(u8 taskId) } } -void sub_80904FC(u16 a) +static void sub_80904FC(u16 a) { LZ77UnCompVram(gUnknown_08E96ACC, (void *)(VRAM + a * 0x800)); DmaClear16(3, (void *)(VRAM + a * 0x800 + 0xC0), 0x440); } -void sub_8090540(u16 a) +static void sub_8090540(u16 a) { LZ77UnCompVram(gUnknown_08E96B58, (void *)(VRAM + a * 0x800)); DmaClear16(3, (void *)(VRAM + a * 0x800 + 0xC0), 0x440); } #ifdef NONMATCHING -void sub_8090584(u8 a, u16 b) +static void sub_8090584(u8 a, u16 b) { u8 i; //r1 u8 j; //r3 @@ -2814,7 +3525,7 @@ void sub_8090584(u8 a, u16 b) } #else __attribute__((naked)) -void sub_8090584(u8 a, u16 b) +static void sub_8090584(u8 a, u16 b) { asm(".syntax unified\n\ push {r4-r7,lr}\n\ @@ -2920,7 +3631,7 @@ _08090640: .4byte 0x06000072\n\ //Nope, can't get this one to match, either. #ifdef NONMATCHING -void sub_8090644(u8 a, u16 b) +static void sub_8090644(u8 a, u16 b) { u8 i; u8 j; @@ -2958,7 +3669,7 @@ void sub_8090644(u8 a, u16 b) } #else __attribute__((naked)) -void sub_8090644(u8 a, u16 b) +static void sub_8090644(u8 a, u16 b) { asm(".syntax unified\n\ push {r4-r7,lr}\n\ @@ -3081,15 +3792,16 @@ u8 sub_809070C(u16 dexNum, u32 b, u32 c) return taskId; } -/* -void sub_8090750(u8 taskId) +static void sub_8090750(u8 taskId) { + u8 spriteId; u16 dexNum = gTasks[taskId].data[1]; + u16 i; switch (gTasks[taskId].data[0]) { - default: case 0: + default: if (!gPaletteFade.active) { gUnknown_03005CEC = gMain.vblankCallback; @@ -3099,19 +3811,20 @@ void sub_8090750(u8 taskId) } break; case 1: - { - u16 i; - LZ77UnCompVram(gPokedexMenu_Gfx, (void *)(VRAM + 0x4000)); LZ77UnCompVram(gUnknown_08E96BD4, (void *)(VRAM + 0x7800)); for (i = 0; i < 0x280; i++) - ((u16 *)(VRAM + 0x7800))[i] += 0x2000; + { +#ifndef NONMATCHING + asm(""); +#endif + *(u16 *)(VRAM + 0x7800 + 2 * i) += 0x2000; + } sub_8091738(gTasks[taskId].data[1], 2, 0x3FC); ResetPaletteFade(); - LoadPalette(gPokedexMenu_Pal + 2, 0x21, 0x9E); + LoadPalette(gPokedexMenu_Pal + 1, 0x21, 0x9E); gTasks[taskId].data[0]++; break; - } case 2: SetUpWindowConfig(&gWindowConfig_81E7064); InitMenuWindow(&gWindowConfig_81E7064); @@ -3128,7 +3841,7 @@ void sub_8090750(u8 taskId) MenuPrint(gDexText_UnknownPoke, 11, 5); MenuPrint(gDexText_UnknownHeight, 16, 7); MenuPrint(gDexText_UnknownWeight, 16, 9); - sub_8091304(&gPokedexEntries[dexNum], 11, 5); + sub_8091304(gPokedexEntries[dexNum].categoryName, 11, 5); sub_8091458(gPokedexEntries[dexNum].height, 16, 7); sub_8091564(gPokedexEntries[dexNum].weight, 16, 9); MenuPrint(gPokedexEntries[dexNum].descriptionPage1, 2, 13); @@ -3136,16 +3849,13 @@ void sub_8090750(u8 taskId) gTasks[taskId].data[0]++; break; case 4: - { - u8 spriteId = sub_80918EC(dexNum, 0x30, 0x38, 0); - + spriteId = sub_80918EC(dexNum, 0x30, 0x38, 0); gSprites[spriteId].oam.priority = 0; BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); SetVBlankCallback(gUnknown_03005CEC); gTasks[taskId].data[3] = spriteId; gTasks[taskId].data[0]++; break; - } case 5: REG_BLDCNT = 0; REG_BLDALPHA = 0; @@ -3165,4 +3875,1586 @@ void sub_8090750(u8 taskId) break; } } -*/ + +static void sub_8090A3C(u8 taskId) +{ + if (gMain.newKeys & B_BUTTON) + { + BeginNormalPaletteFade(0x0000FFFC, 0, 0, 16, 0); + gSprites[gTasks[taskId].data[3]].callback = sub_8090C28; + gTasks[taskId].func = sub_8090B8C; + return; + } + else if (gMain.newKeys & A_BUTTON) + { + if (gTasks[taskId].data[4] == 0) + { + u16 r4 = gTasks[taskId].data[1]; + + MenuZeroFillWindowRect(2, 13, 27, 19); + MenuPrint(gPokedexEntries[r4].descriptionPage2, 2, 13); + (*(u16 *)(VRAM + 0x7ACA))++; + (*(u16 *)(VRAM + 0x7B0A))++; + gTasks[taskId].data[4] = 1; + PlaySE(SE_PIN); + } + else + { + BeginNormalPaletteFade(0x0000FFFC, 0, 0, 16, 0); + gSprites[gTasks[taskId].data[3]].callback = sub_8090C28; + gTasks[taskId].func = sub_8090B8C; + return; + } + } + gTasks[taskId].data[2]++; + if (gTasks[taskId].data[2] & 0x10) + LoadPalette(gPokedexMenu_Pal + 1, 0x51, 14); + else + LoadPalette(gPokedexMenu2_Pal + 1, 0x51, 14); +} + +static void sub_8090B8C(u8 taskId) +{ + if (!gPaletteFade.active) + { + u16 species; + u32 otId; + u32 personality; + u8 paletteNum; + const u8 *lzPaletteData; + + REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG3_ON | DISPCNT_OBJ_ON; + CpuCopy16(gUnknown_08D00524, (void *)(VRAM + 0xC000), 0x1000); + sub_800D74C(); + species = NationalPokedexNumToSpecies(gTasks[taskId].data[1]); + otId = ((u16)gTasks[taskId].data[13] << 16) | (u16)gTasks[taskId].data[12]; + personality = ((u16)gTasks[taskId].data[15] << 16) | (u16)gTasks[taskId].data[14]; + paletteNum = gSprites[gTasks[taskId].data[3]].oam.paletteNum; + lzPaletteData = species_and_otid_get_pal(species, otId, personality); + LoadCompressedPalette(lzPaletteData, 0x100 | paletteNum * 16, 32); + DestroyTask(taskId); + } +} + +static void sub_8090C28(struct Sprite *sprite) +{ + if (sprite->pos1.x < 0x78) + sprite->pos1.x += 2; + if (sprite->pos1.x > 0x78) + sprite->pos1.x -= 2; + + if (sprite->pos1.y < 0x50) + sprite->pos1.y += 1; + if (sprite->pos1.y > 0x50) + sprite->pos1.y -= 1; +} + +static void sub_8090C68(void) +{ + if (gUnknown_0202FFBC->owned) + { + if (gPokedexView->descriptionPageNum == 0) + { + MenuZeroFillWindowRect(2, 13, 27, 19); + MenuPrint(gPokedexEntries[gUnknown_0202FFBC->dexNum].descriptionPage2, 2, 13); + gPokedexView->descriptionPageNum = 1; + (*(u16 *)(VRAM + 0x7ACA))++; + (*(u16 *)(VRAM + 0x7B0A))++; + PlaySE(SE_PIN); + } + else + { + MenuZeroFillWindowRect(2, 13, 27, 19); + MenuPrint(gPokedexEntries[gUnknown_0202FFBC->dexNum].descriptionPage1, 2, 13); + gPokedexView->descriptionPageNum = 0; + (*(u16 *)(VRAM + 0x7ACA))--; + (*(u16 *)(VRAM + 0x7B0A))--; + PlaySE(SE_PIN); + } + } +} + +const u8 *GetPokemonCategory(u16 dexNum) +{ + return gPokedexEntries[dexNum].categoryName; +} + +u16 GetPokedexHeightWeight(u16 dexNum, u8 data) +{ + switch (data) + { + case 0: // height + return gPokedexEntries[dexNum].height; + case 1: // weight + return gPokedexEntries[dexNum].weight; + default: + return 1; + } +} + +s8 GetNationalPokedexFlag(u16 a, u8 b) +{ + u8 index; + u8 bit; + u8 mask; + s8 retVal; + + a--; + index = a / 8; + bit = a % 8; + mask = 1 << bit; + retVal = 0; + switch (b) + { + case 0: + if (gSaveBlock2.pokedex.seen[index] & mask) + { + if ((gSaveBlock2.pokedex.seen[index] & mask) == (gSaveBlock1.unk938[index] & mask) + && (gSaveBlock2.pokedex.seen[index] & mask) == (gSaveBlock1.unk3A8C[index] & mask)) + retVal = 1; + else + { + gSaveBlock2.pokedex.seen[index] &= ~mask; + gSaveBlock1.unk938[index] &= ~mask; + gSaveBlock1.unk3A8C[index] &= ~mask; + retVal = 0; + } + } + break; + case 1: + if (gSaveBlock2.pokedex.owned[index] & mask) + { + if ((gSaveBlock2.pokedex.owned[index] & mask) == (gSaveBlock2.pokedex.seen[index] & mask) + && (gSaveBlock2.pokedex.owned[index] & mask) == (gSaveBlock1.unk938[index] & mask) + && (gSaveBlock2.pokedex.owned[index] & mask) == (gSaveBlock1.unk3A8C[index] & mask)) + retVal = 1; + else + { + gSaveBlock2.pokedex.owned[index] &= ~mask; + gSaveBlock2.pokedex.seen[index] &= ~mask; + gSaveBlock1.unk938[index] &= ~mask; + gSaveBlock1.unk3A8C[index] &= ~mask; + retVal = 0; + } + } + break; + case 2: + gSaveBlock2.pokedex.seen[index] |= mask; + gSaveBlock1.unk938[index] |= mask; + gSaveBlock1.unk3A8C[index] |= mask; + break; + case 3: + gSaveBlock2.pokedex.owned[index] |= mask; + break; + } + return retVal; +} + +u16 GetNationalPokedexCount(u8 a) +{ + u16 count = 0; + u16 i; + + for (i = 0; i < NATIONAL_DEX_COUNT; i++) + { + switch (a) + { + case 0: + if (GetNationalPokedexFlag(i + 1, 0) != 0) + count++; + break; + case 1: + if (GetNationalPokedexFlag(i + 1, 1) != 0) + count++; + break; + } + } + return count; +} + +u16 GetHoennPokedexCount(u8 a) +{ + u16 count = 0; + u16 i; + + for (i = 0; i < 202; i++) + { + switch (a) + { + case 0: + if (GetNationalPokedexFlag(HoennToNationalOrder(i + 1), 0) != 0) + count++; + break; + case 1: + if (GetNationalPokedexFlag(HoennToNationalOrder(i + 1), 1) != 0) + count++; + break; + } + } + return count; +} + +bool8 sub_8090FC0(void) +{ + u16 i; + + for (i = 0; i < 200; i++) + { + if (GetNationalPokedexFlag(HoennToNationalOrder(i + 1), 1) == 0) + return FALSE; + } + return TRUE; +} + +u16 sub_8090FF4(void) +{ + u16 i; + + for (i = 0; i < 150; i++) + { + if (GetNationalPokedexFlag(i + 1, 1) == 0) + return 0; + } + for (i = 152; i < 250; i++) + { + if (GetNationalPokedexFlag(i + 1, 1) == 0) + return 0; + } + for (i = 252; i < 384; i++) + { + if (GetNationalPokedexFlag(i + 1, 1) == 0) + return 0; + } + return 1; +} + +static void sub_8091060(u16 a) +{ + if (!(a & 0x100)) + { + REG_DISPCNT &= 0xFEFF; + REG_BG0CNT = 0; + REG_BG0HOFS = 0; + REG_BG0VOFS = 0; + } + if (!(a & 0x200)) + { + REG_DISPCNT &= 0xFDFF; + REG_BG1CNT = 0; + REG_BG1HOFS = 0; + REG_BG1VOFS = 0; + } + if (!(a & 0x400)) + { + REG_DISPCNT &= 0xFBFF; + REG_BG2CNT = 0; + REG_BG2HOFS = 0; + REG_BG2VOFS = 0; + } + if (!(a & 0x800)) + { + REG_DISPCNT &= 0xF7FF; + REG_BG3CNT = 0; + REG_BG3HOFS = 0; + REG_BG3VOFS = 0; + } + if (!(a & 0x1000)) + { + REG_DISPCNT &= 0xEFFF; + ResetSpriteData(); + FreeAllSpritePalettes(); + gReservedSpritePaletteCount = 8; + } +} + +static void sub_8091154(u16 order, u8 b, u8 c) +{ + u8 str[4]; + + str[0] = CHAR_0 + order / 100; + str[1] = CHAR_0 + (order % 100) / 10; + str[2] = CHAR_0 + (order % 100) % 10; + str[3] = EOS; + MenuPrint(str, b, c); +} + +static u8 sub_80911C8(u16 num, u8 b, u8 c) +{ + u8 str[11]; + u8 i; + + for (i = 0; i < 11; i++) + str[i] = EOS; + num = NationalPokedexNumToSpecies(num); + switch (num) + { + default: + for (i = 0; gSpeciesNames[num][i] != EOS && i < 10; i++) + str[i] = gSpeciesNames[num][i]; + break; + case 0: + for (i = 0; i < 10; i++) + str[i] = 0xAE; + break; + } + MenuPrint(str, b, c); + return i; +} + +static u8 sub_8091260(u16 num, u8 b, u8 c, u8 d) +{ + u8 str[40]; + u8 *end; + u8 i; + + end = StringCopy(str, gUnknown_083B5558); + str[2] = d; + num = NationalPokedexNumToSpecies(num); + switch (num) + { + default: + for (i = 0; gSpeciesNames[num][i] != EOS && i < 10; i++) + end[i] = gSpeciesNames[num][i]; + break; + case 0: + for (i = 0; i < 10; i++) + end[i] = 0xAE; + break; + } + end[i] = EOS; + MenuPrint(str, b, c); + return i; +} + +static void sub_8091304(const u8 *name, u8 left, u8 top) +{ + u8 str[32]; + u8 i; +#if ENGLISH + u8 j; +#endif + + for (i = 0; name[i] != EOS && i < 11; i++) + str[i] = name[i]; +#if ENGLISH + for (j = 0; gDexText_UnknownPoke[j] == 0xAC || gDexText_UnknownPoke[j] == 0; j++) + ; + j--; + while (gDexText_UnknownPoke[j] != EOS) + str[i++] = gDexText_UnknownPoke[j++]; +#endif + str[i] = EOS; + sub_8072B80(str, left, top, gDexText_UnknownPoke); +} + +void unref_sub_80913A4(u16 a, u8 left, u8 top) +{ + u8 str[6]; + bool8 outputted = FALSE; + u8 result; + + result = a / 1000; + if (result == 0) + { + str[0] = CHAR_SPACE; + outputted = FALSE; + } + else + { + str[0] = CHAR_0 + result; + outputted = TRUE; + } + + result = (a % 1000) / 100; + if (result == 0 && !outputted) + { + str[1] = CHAR_SPACE; + outputted = FALSE; + } + else + { + str[1] = CHAR_0 + result; + outputted = TRUE; + } + + str[2] = CHAR_0 + ((a % 1000) % 100) / 10; + str[3] = CHAR_PERIOD; + str[4] = CHAR_0 + ((a % 1000) % 100) % 10; + str[5] = EOS; + MenuPrint(str, left, top); +} + +#ifdef UNITS_IMPERIAL +#define CHAR_PRIME (0xB4) +#define CHAR_DOUBLE_PRIME (0xB2) +static void sub_8091458(u16 height, u8 left, u8 top) +{ + u8 buffer[16]; + u32 inches, feet; + u8 i = 0; + + inches = (height * 10000) / 254; + if (inches % 10 >= 5) + inches += 10; + feet = inches / 120; + inches = (inches - (feet * 120)) / 10; + + buffer[i++] = EXT_CTRL_CODE_BEGIN; + buffer[i++] = 0x13; + if (feet / 10 == 0) + { + buffer[i++] = 18; + buffer[i++] = feet + CHAR_0; + } + else + { + buffer[i++] = 12; + buffer[i++] = feet / 10 + CHAR_0; + buffer[i++] = (feet % 10) + CHAR_0; + } + buffer[i++] = CHAR_PRIME; + buffer[i++] = (inches / 10) + CHAR_0; + buffer[i++] = (inches % 10) + CHAR_0; + buffer[i++] = CHAR_DOUBLE_PRIME; + buffer[i++] = EOS; + MenuPrint(buffer, left, top); +} +#else +static void sub_8091458(u16 height, u8 left, u8 top) +{ + unref_sub_80913A4(height, left, top); +} +#endif + +#ifdef UNITS_IMPERIAL +static void sub_8091564(u16 weight, u8 left, u8 top) +{ + u8 buffer[16]; + u32 lbs; + u8 i = 0; + bool8 output; + + lbs = (weight * 100000) / 4536; + if (lbs % 10 >= 5) + lbs += 10; + output = FALSE; + + buffer[i] = (lbs / 100000) + CHAR_0; + if (buffer[i] == CHAR_0 && output == FALSE) + { + buffer[i++] = CHAR_SPACE; + buffer[i++] = CHAR_SPACE; + } + else + { + output = TRUE; + i++; + } + + lbs = (lbs % 100000); + buffer[i] = (lbs / 10000) + CHAR_0; + if (buffer[i] == CHAR_0 && output == FALSE) + { + buffer[i++] = CHAR_SPACE; + buffer[i++] = CHAR_SPACE; + } + else + { + output = TRUE; + i++; + } + + lbs = (lbs % 10000); + buffer[i] = (lbs / 1000) + CHAR_0; + if (buffer[i] == CHAR_0 && output == FALSE) + { + buffer[i++] = CHAR_SPACE; + buffer[i++] = CHAR_SPACE; + } + else + { + output = TRUE; + i++; + } + lbs = (lbs % 1000); + buffer[i++] = (lbs / 100) + CHAR_0; + lbs = (lbs % 100); + buffer[i++] = CHAR_PERIOD; + buffer[i++] = (lbs / 10) + CHAR_0; + buffer[i++] = CHAR_SPACE; + buffer[i++] = CHAR_l; + buffer[i++] = CHAR_b; + buffer[i++] = CHAR_s; + buffer[i++] = CHAR_PERIOD; + buffer[i++] = EOS; + MenuPrint(buffer, left, top); +} +#else +static void sub_8091564(u16 arg0, u8 left, u8 top) +{ + unref_sub_80913A4(arg0, left, top); +} +#endif + +static void sub_8091738(u16 num, u16 b, u16 c) +{ + u8 arr[0x80]; + u16 i; + u16 j; + const u8 *r12; + u16 r7; + u8 r3; + + r12 = sMonFootprintTable[NationalPokedexNumToSpecies(num)]; + for (r7 = 0, i = 0; i < 32; i++) + { + r3 = r12[i]; + for (j = 0; j < 4; j++) + { + u32 r1 = j * 2; + s32 r2 = (r3 >> r1) & 1; + + if (r3 & (2 << r1)) + r2 |= 0x10; + +// Needed to match +#ifndef NONMATCHING + asm("");asm("");asm("");asm("");asm(""); +#endif + + arr[r7] = r2; + r7++; + } + } + CpuCopy16(arr, (u16 *)(VRAM + b * 0x4000 + c * 0x20), 0x80); +} + +static void sub_80917CC(u16 a, u16 b) +{ + *(u16 *)(VRAM + a * 0x800 + 0x232) = 0xF000 + b + 0; + *(u16 *)(VRAM + a * 0x800 + 0x234) = 0xF000 + b + 1; + *(u16 *)(VRAM + a * 0x800 + 0x272) = 0xF000 + b + 2; + *(u16 *)(VRAM + a * 0x800 + 0x274) = 0xF000 + b + 3; +} + +static u16 sub_8091818(u8 a, u16 b, u16 c, u16 d) +{ + switch (a) + { + case 1: + if (b > c) + b--; + break; + case 0: + if (b < d) + b++; + break; + case 3: + if (b > c) + b--; + else + b = d; + break; + case 2: + if (b < d) + b++; + else + b = c; + break; + } + return b; +} + +static void nullsub_59(struct Sprite *sprite) +{ +} + +static void sub_8091878(u16 a, u8 b) +{ + gUnknown_02024E8C = gUnknown_083B57A4; + gUnknown_02024E8C.paletteTag = a; + gUnknown_02024E8C.images = gUnknown_083B5794[b]; + gUnknown_02024E8C.anims = gSpriteAnimTable_81E7C64; +} + +static void sub_80918B0(u16 a, u8 b) +{ + gUnknown_02024E8C = gUnknown_083B57A4; + gUnknown_02024E8C.paletteTag = a; + gUnknown_02024E8C.images = gUnknown_083B5794[b]; + gUnknown_02024E8C.anims = gUnknown_081EC2A4[0]; +} + +u16 sub_80918EC(u16 num, s16 x, s16 y, u16 paletteNum) +{ + u8 spriteId; + + num = NationalPokedexNumToSpecies(num); + switch (num) + { + default: + DecompressPicFromTable_2( + &gMonFrontPicTable[num], + gMonFrontPicCoords[num].coords, + gMonFrontPicCoords[num].y_offset, + (void *)0x02000000, + gUnknown_083B5584[paletteNum], + num); + break; + case SPECIES_SPINDA: + LoadSpecialPokePic( + &gMonFrontPicTable[num], + gMonFrontPicCoords[num].coords, + gMonFrontPicCoords[num].y_offset, + 0x02000000, + gUnknown_083B5584[paletteNum], + num, + gSaveBlock2.pokedex.spindaPersonality, + 1); + break; + case SPECIES_UNOWN: + LoadSpecialPokePic( + &gMonFrontPicTable[num], + gMonFrontPicCoords[num].coords, + gMonFrontPicCoords[num].y_offset, + 0x02000000, + gUnknown_083B5584[paletteNum], + num, + gSaveBlock2.pokedex.unownPersonality, + 1); + break; + } + LoadCompressedPalette(gMonPaletteTable[num].data, 0x100 + paletteNum * 16, 32); + sub_8091878(paletteNum, paletteNum); + spriteId = CreateSprite(&gUnknown_02024E8C, x, y, 0); + gSprites[spriteId].oam.paletteNum = paletteNum; + return spriteId; +} + +static u8 sub_8091A4C(u16 gender, s16 x, s16 y, u16 paletteNum) +{ + u8 spriteId; + + DecompressPicFromTable_2( + &gTrainerFrontPicTable[gender], + gTrainerFrontPicCoords[gender].coords, + gTrainerFrontPicCoords[gender].y_offset, + (void *)0x02000000, + gUnknown_083B5584[0], + gender); + sub_80918B0(gender, 0); + spriteId = CreateSprite(&gUnknown_02024E8C, x, y, 0); + gSprites[spriteId].oam.paletteNum = paletteNum; + return spriteId; +} + +int sub_8091AF8(u8 a, u8 b, u8 abcGroup, u8 bodyColor, u8 type1, u8 type2) +{ + u16 species; + u16 i; + u16 resultsCount; + u8 types[2]; + + SortPokedex(a, b); + + for (i = 0, resultsCount = 0; i < NATIONAL_DEX_COUNT; i++) + { + if (gPokedexView->unk0[i].seen) + { + gPokedexView->unk0[resultsCount] = gPokedexView->unk0[i]; + resultsCount++; + } + } + gPokedexView->pokemonListCount = resultsCount; + + // Search by name + if (abcGroup != 0xFF) + { + for (i = 0, resultsCount = 0; i < gPokedexView->pokemonListCount; i++) + { + u8 r3; + + species = NationalPokedexNumToSpecies(gPokedexView->unk0[i].dexNum); + r3 = gSpeciesNames[species][0]; + if ((r3 >= gUnknown_083B57BC[abcGroup][0] && r3 < gUnknown_083B57BC[abcGroup][0] + gUnknown_083B57BC[abcGroup][1]) + || (r3 >= gUnknown_083B57BC[abcGroup][2] && r3 < gUnknown_083B57BC[abcGroup][2] + gUnknown_083B57BC[abcGroup][3])) + { + gPokedexView->unk0[resultsCount] = gPokedexView->unk0[i]; + resultsCount++; + } + } + gPokedexView->pokemonListCount = resultsCount; + } + + // Search by body color + if (bodyColor != 0xFF) + { + for (i = 0, resultsCount = 0; i < gPokedexView->pokemonListCount; i++) + { + species = NationalPokedexNumToSpecies(gPokedexView->unk0[i].dexNum); + + if (bodyColor == gBaseStats[species].bodyColor) + { + gPokedexView->unk0[resultsCount] = gPokedexView->unk0[i]; + resultsCount++; + } + } + gPokedexView->pokemonListCount = resultsCount; + } + + // Search by type + if (type1 != 0xFF || type2 != 0xFF) + { + if (type1 == 0xFF) + { + type1 = type2; + type2 = 0xFF; + } + + if (type2 == 0xFF) + { + for (i = 0, resultsCount = 0; i < gPokedexView->pokemonListCount; i++) + { + if (gPokedexView->unk0[i].owned) + { + species = NationalPokedexNumToSpecies(gPokedexView->unk0[i].dexNum); + + types[0] = gBaseStats[species].type1; + types[1] = gBaseStats[species].type2; + if (types[0] == type1 || types[1] == type1) + { + gPokedexView->unk0[resultsCount] = gPokedexView->unk0[i]; + resultsCount++; + } + } + } + } + else + { + for (i = 0, resultsCount = 0; i < gPokedexView->pokemonListCount; i++) + { + if (gPokedexView->unk0[i].owned) + { + species = NationalPokedexNumToSpecies(gPokedexView->unk0[i].dexNum); + + types[0] = gBaseStats[species].type1; + types[1] = gBaseStats[species].type2; + if ((types[0] == type1 && types[1] == type2) || (types[0] == type2 && types[1] == type1)) + { + gPokedexView->unk0[resultsCount] = gPokedexView->unk0[i]; + resultsCount++; + } + } + } + } + gPokedexView->pokemonListCount = resultsCount; + } + + if (gPokedexView->pokemonListCount != 0) + { + for (i = gPokedexView->pokemonListCount; i < NATIONAL_DEX_COUNT; i++) + { + gPokedexView->unk0[i].dexNum = 0xFFFF; + gPokedexView->unk0[i].seen = FALSE; + gPokedexView->unk0[i].owned = FALSE; + + } + } + + return resultsCount; +} + +void sub_8091E20(const u8 *str) +{ + sub_8072AB0(str, 9, 120, 208, 32, 1); +} + +u8 sub_8091E3C(void) +{ + return CreateTask(sub_8091E54, 0); +} + +static void sub_8091E54(u8 taskId) +{ + u16 i; + + switch (gMain.state) + { + default: + case 0: + if (!gPaletteFade.active) + { + gPokedexView->unk64A = 2; + sub_8091060(0); + LZ77UnCompVram(gPokedexMenuSearch_Gfx, (void *)VRAM); + LZ77UnCompVram(gUnknown_08E96D2C, (void *)(VRAM + 0x7800)); + LoadPalette(gPokedexMenuSearch_Pal + 1, 1, 0x7E); + if (!IsNationalPokedexEnabled()) + { + for (i = 0; i < 17; i++) + { + ((u16 *)(VRAM + 0x7A80))[i] = ((u16 *)(VRAM + 0x7B00))[i]; + ((u16 *)(VRAM + 0x7AC0))[i] = ((u16 *)(VRAM + 0x7B40))[i]; + ((u16 *)(VRAM + 0x7B00))[i] = 1; + ((u16 *)(VRAM + 0x7B40))[i] = 1; + } + } + gMain.state = 1; + } + break; + case 1: + SetUpWindowConfig(&gWindowConfig_81E7064); + InitMenuWindow(&gWindowConfig_81E7064); + LoadCompressedObjectPic(&gUnknown_083A05CC[0]); + LoadSpritePalettes(gUnknown_083A05DC); + sub_809308C(taskId); + for (i = 0; i < 16; i++) + gTasks[taskId].data[i] = 0; + sub_8092EB0(taskId); + sub_8092AB0(0); + sub_8092B68(taskId); + gMain.state++; + break; + case 2: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); + gMain.state++; + break; + case 3: + REG_BG3CNT = 0x0F03; + REG_DISPCNT = 0x1C40; + gMain.state++; + break; + case 4: + if (!gPaletteFade.active) + { + gTasks[taskId].func = sub_809204C; + gMain.state = 0; + } + break; + } +} + +static void sub_809204C(u8 taskId) +{ + sub_8092AB0(gTasks[taskId].data[0]); + sub_8092B68(taskId); + gTasks[taskId].func = sub_809207C; +} + +static void sub_809207C(u8 taskId) +{ + if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_PC_OFF); + gTasks[taskId].func = sub_80927B8; + return; + } + if (gMain.newKeys & A_BUTTON) + { + switch (gTasks[taskId].data[0]) + { + case 0: + PlaySE(SE_PIN); + gTasks[taskId].data[1] = 0; + gTasks[taskId].func = sub_809217C; + break; + case 1: + PlaySE(SE_PIN); + gTasks[taskId].data[1] = 4; + gTasks[taskId].func = sub_809217C; + break; + case 2: + PlaySE(SE_PC_OFF); + gTasks[taskId].func = sub_80927B8; + break; + } + return; + } + if ((gMain.newKeys & DPAD_LEFT) && gTasks[taskId].data[0] > 0) + { + PlaySE(SE_Z_PAGE); + gTasks[taskId].data[0]--; + sub_8092AB0(gTasks[taskId].data[0]); + } + if ((gMain.newKeys & DPAD_RIGHT) && gTasks[taskId].data[0] < 2) + { + PlaySE(SE_Z_PAGE); + gTasks[taskId].data[0]++; + sub_8092AB0(gTasks[taskId].data[0]); + } +} + +static void sub_809217C(u8 taskId) +{ + sub_8092AD4(gTasks[taskId].data[0], gTasks[taskId].data[1]); + sub_8092B68(taskId); + gTasks[taskId].func = sub_80921B0; +} + +static void sub_80921B0(u8 taskId) +{ + const u8 (*r6)[4]; + + if (gTasks[taskId].data[0] != 0) + { + if (!IsNationalPokedexEnabled()) + r6 = gUnknown_083B58A4; + else + r6 = gUnknown_083B586C; + } + else + { + if (!IsNationalPokedexEnabled()) + r6 = gUnknown_083B5888; + else + r6 = gUnknown_083B5850; + } + + if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_BOWA); + sub_8092EB0(taskId); + gTasks[taskId].func = sub_809204C; + return; + } + if (gMain.newKeys & A_BUTTON) + { + if (gTasks[taskId].data[1] == 6) + { + if (gTasks[taskId].data[0] != 0) + { + gUnknown_0202FFBA = 0x40; + gPokedexView->unk62A = 0x40; + gUnknown_0202FFB8 = 0; + gPokedexView->unk610 = 0; + gSaveBlock2.pokedex.unknown1 = sub_8092E10(taskId, 5); + if (!IsNationalPokedexEnabled()) + gSaveBlock2.pokedex.unknown1 = 0; + gPokedexView->unk614 = gSaveBlock2.pokedex.unknown1; + gSaveBlock2.pokedex.order = sub_8092E10(taskId, 4); + gPokedexView->unk618 = gSaveBlock2.pokedex.order; + PlaySE(SE_PC_OFF); + gTasks[taskId].func = sub_80927B8; + } + else + { + sub_8091E20(gDexText_Searching); + gTasks[taskId].func = sub_80923FC; + PlaySE(SE_Z_SEARCH); + } + } + else + { + PlaySE(SE_PIN); + gTasks[taskId].func = sub_80925CC; + } + return; + } + + if ((gMain.newKeys & DPAD_LEFT) && r6[gTasks[taskId].data[1]][0] != 0xFF) + { + PlaySE(SE_SELECT); + gTasks[taskId].data[1] = r6[gTasks[taskId].data[1]][0]; + sub_8092AD4(gTasks[taskId].data[0], gTasks[taskId].data[1]); + } + if ((gMain.newKeys & DPAD_RIGHT) && r6[gTasks[taskId].data[1]][1] != 0xFF) + { + PlaySE(SE_SELECT); + gTasks[taskId].data[1] = r6[gTasks[taskId].data[1]][1]; + sub_8092AD4(gTasks[taskId].data[0], gTasks[taskId].data[1]); + } + if ((gMain.newKeys & DPAD_UP) && r6[gTasks[taskId].data[1]][2] != 0xFF) + { + PlaySE(SE_SELECT); + gTasks[taskId].data[1] = r6[gTasks[taskId].data[1]][2]; + sub_8092AD4(gTasks[taskId].data[0], gTasks[taskId].data[1]); + } + if ((gMain.newKeys & DPAD_DOWN) && r6[gTasks[taskId].data[1]][3] != 0xFF) + { + PlaySE(SE_SELECT); + gTasks[taskId].data[1] = r6[gTasks[taskId].data[1]][3]; + sub_8092AD4(gTasks[taskId].data[0], gTasks[taskId].data[1]); + } +} + +static void sub_80923FC(u8 taskId) +{ + u8 r10 = sub_8092E10(taskId, 5); + u8 r9 = sub_8092E10(taskId, 4); + u8 r8 = sub_8092E10(taskId, 0); + u8 r6 = sub_8092E10(taskId, 1); + u8 r4 = sub_8092E10(taskId, 2); + u8 r0 = sub_8092E10(taskId, 3); + + sub_8091AF8(r10, r9, r8, r6, r4, r0); + gTasks[taskId].func = sub_80924A4; +} + +static void sub_80924A4(u8 taskId) +{ + if (!IsSEPlaying()) + { + if (gPokedexView->pokemonListCount != 0) + { + PlaySE(SE_SEIKAI); + sub_8091E20(gDexText_SearchComplete); + } + else + { + PlaySE(SE_HAZURE); + sub_8091E20(gDexText_NoMatching); + } + gTasks[taskId].func = sub_8092508; + } +} + +static void sub_8092508(u8 taskId) +{ + if (gMain.newKeys & A_BUTTON) + { + if (gPokedexView->pokemonListCount != 0) + { + gPokedexView->unk64F = 1; + gPokedexView->dexMode = sub_8092E10(taskId, 5); + gPokedexView->dexOrder = sub_8092E10(taskId, 4); + gTasks[taskId].func = sub_80927B8; + PlaySE(SE_PC_OFF); + } + else + { + gTasks[taskId].func = sub_809217C; + PlaySE(SE_BOWA); + } + } +} + +static void sub_80925B4(u16 a, int unused) +{ + sub_814AD7C(0x90, (a * 2 + 1) * 8); +} + +static void sub_80925CC(u8 taskId) +{ + u8 r0; + u16 *p1; + u16 *p2; + + sub_8092C8C(0); + r0 = gTasks[taskId].data[1]; + p1 = &gTasks[taskId].data[gUnknown_083B5A7C[r0].unk4]; + p2 = &gTasks[taskId].data[gUnknown_083B5A7C[r0].unk5]; + gTasks[taskId].data[14] = *p1; + gTasks[taskId].data[15] = *p2; + sub_8092D78(taskId); + CreateBlendedOutlineCursor(16, 0xFFFF, 12, 0x2D9F, 11); + sub_80925B4(*p1, 1); + gTasks[taskId].func = sub_8092644; +} + +static void sub_8092644(u8 taskId) +{ + u8 r1; + const struct UnknownStruct2 *r8; + u16 *p1; + u16 *p2; + u16 r2; + bool8 r3; + + r1 = gTasks[taskId].data[1]; + r8 = gUnknown_083B5A7C[r1].unk0; + p1 = &gTasks[taskId].data[gUnknown_083B5A7C[r1].unk4]; + p2 = &gTasks[taskId].data[gUnknown_083B5A7C[r1].unk5]; + r2 = gUnknown_083B5A7C[r1].unk6 - 1; + if (gMain.newKeys & A_BUTTON) + { + sub_814ADC8(); + PlaySE(SE_PIN); + MenuZeroFillWindowRect(18, 1, 28, 12); + sub_8092C8C(1); + gTasks[taskId].func = sub_809217C; + return; + } + if (gMain.newKeys & B_BUTTON) + { + sub_814ADC8(); + PlaySE(SE_BOWA); + MenuZeroFillWindowRect(18, 1, 28, 12); + sub_8092C8C(1); + *p1 = gTasks[taskId].data[14]; + *p2 = gTasks[taskId].data[15]; + gTasks[taskId].func = sub_809217C; + return; + } + r3 = FALSE; + if (gMain.newAndRepeatedKeys & DPAD_UP) + { + if (*p1 != 0) + { + sub_80925B4(*p1, 0); + (*p1)--; + sub_80925B4(*p1, 1); + r3 = TRUE; + } + else if (*p2 != 0) + { + (*p2)--; + sub_8092D78(taskId); + sub_80925B4(*p1, 1); + r3 = TRUE; + } + if (r3) + { + PlaySE(SE_SELECT); + sub_8091E20(r8[*p1 + *p2].text1); + } + return; + } + if (gMain.newAndRepeatedKeys & DPAD_DOWN) + { + if (*p1 < 5 && *p1 < r2) + { + sub_80925B4(*p1, 0); + (*p1)++; + sub_80925B4(*p1, 1); + r3 = TRUE; + } + else if (r2 > 5 && *p2 < r2 - 5) + { + (*p2)++; + sub_8092D78(taskId); + sub_80925B4(5, 1); + r3 = TRUE; + } + if (r3) + { + PlaySE(SE_SELECT); + sub_8091E20(r8[*p1 + *p2].text1); + } + return; + } +} + +static void sub_80927B8(u8 taskId) +{ + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); + gTasks[taskId].func = sub_80927F0; +} + +static void sub_80927F0(u8 taskId) +{ + if (!gPaletteFade.active) + DestroyTask(taskId); +} + +#ifdef NONMATCHING +void sub_8092810(u8 a, u8 b, u8 c, u8 d) +{ + u16 i; + + for (i = 0; i < d; i++) + { + ((u16 *)VRAM)[15 * 0x400 + c * 32 + i + b] &= 0xFFF; + ((u16 *)VRAM)[15 * 0x400 + c * 32 + i + b] |= a << 12; + + ((u16 *)VRAM)[15 * 0x400 + (c + 1) * 32 + i + b] &= 0xFFF; + ((u16 *)VRAM)[15 * 0x400 + (c + 1) * 32 + i + b] |= a << 12; + } +} +#else +__attribute__((naked)) +void sub_8092810(u8 a, u8 b, u8 c, u8 d) +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + lsls r1, 24\n\ + lsrs r1, 24\n\ + mov r12, r1\n\ + lsls r2, 24\n\ + lsrs r1, r2, 24\n\ + lsls r3, 24\n\ + lsrs r5, r3, 8\n\ + movs r3, 0\n\ + cmp r5, 0\n\ + beq _0809285A\n\ + lsls r7, r1, 6\n\ + ldr r6, _08092860 @ =0x00000fff\n\ + lsls r4, r0, 12\n\ +_08092830:\n\ + mov r0, r12\n\ + adds r1, r0, r3\n\ + lsls r1, 1\n\ + adds r1, r7, r1\n\ + ldr r0, _08092864 @ =0x06007800\n\ + adds r2, r1, r0\n\ + ldrh r0, [r2]\n\ + ands r0, r6\n\ + orrs r0, r4\n\ + strh r0, [r2]\n\ + ldr r0, _08092868 @ =0x06007840\n\ + adds r1, r0\n\ + ldrh r0, [r1]\n\ + ands r0, r6\n\ + orrs r0, r4\n\ + strh r0, [r1]\n\ + adds r0, r3, 0x1\n\ + lsls r0, 16\n\ + lsrs r3, r0, 16\n\ + cmp r0, r5\n\ + bcc _08092830\n\ +_0809285A:\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ +_08092860: .4byte 0x00000fff\n\ +_08092864: .4byte 0x06007800\n\ +_08092868: .4byte 0x06007840\n\ + .syntax divided\n"); +} +#endif + +static void sub_809286C(u8 a, u8 b, u8 c) +{ + u8 r5 = (b & 1) | ((c & 1) << 1); + + switch (a) + { + case 0: + case 1: + case 2: + sub_8092810(r5, gUnknown_083B57E4[a].unk4, gUnknown_083B57E4[a].unk5, gUnknown_083B57E4[a].unk6); + break; + case 3: + case 4: + case 7: + case 8: + sub_8092810(r5, gUnknown_083B57FC[a - 3].unk4, gUnknown_083B57FC[a - 3].unk5, gUnknown_083B57FC[a - 3].unk6); + // fall through + case 5: + case 6: + sub_8092810(r5, gUnknown_083B57FC[a - 3].unk7, gUnknown_083B57FC[a - 3].unk8, gUnknown_083B57FC[a - 3].unk9); + break; + case 10: + sub_8092810(r5, gUnknown_083B57FC[2].unk4, gUnknown_083B57FC[2].unk5, gUnknown_083B57FC[2].unk6); + break; + case 9: + if (!IsNationalPokedexEnabled()) + sub_8092810(r5, gUnknown_083B57FC[a - 3].unk4, gUnknown_083B57FC[a - 3].unk5 - 2, gUnknown_083B57FC[a - 3].unk6); + else + sub_8092810(r5, gUnknown_083B57FC[a - 3].unk4, gUnknown_083B57FC[a - 3].unk5, gUnknown_083B57FC[a - 3].unk6); + break; + } +} + +static void sub_8092964(u8 a) +{ + switch (a) + { + case 0: + sub_809286C(0, 0, 0); + sub_809286C(1, 1, 0); + sub_809286C(2, 1, 0); + sub_809286C(3, 1, 0); + sub_809286C(4, 1, 0); + sub_809286C(10, 1, 0); + sub_809286C(5, 1, 0); + sub_809286C(6, 1, 0); + sub_809286C(7, 1, 0); + sub_809286C(8, 1, 0); + sub_809286C(9, 1, 0); + break; + case 1: + sub_809286C(0, 1, 0); + sub_809286C(1, 0, 0); + sub_809286C(2, 1, 0); + sub_809286C(3, 1, 1); + sub_809286C(4, 1, 1); + sub_809286C(10, 1, 1); + sub_809286C(5, 1, 1); + sub_809286C(6, 1, 1); + sub_809286C(7, 1, 0); + sub_809286C(8, 1, 0); + sub_809286C(9, 1, 0); + break; + case 2: + sub_809286C(0, 1, 0); + sub_809286C(1, 1, 0); + sub_809286C(2, 0, 0); + sub_809286C(3, 1, 1); + sub_809286C(4, 1, 1); + sub_809286C(10, 1, 1); + sub_809286C(5, 1, 1); + sub_809286C(6, 1, 1); + sub_809286C(7, 1, 1); + sub_809286C(8, 1, 1); + sub_809286C(9, 1, 1); + break; + } +} + +static void sub_8092AB0(u8 a) +{ + sub_8092964(a); + sub_8091E20(gUnknown_083B57E4[a].text); +} + +static void sub_8092AD4(u8 a, u8 b) +{ + sub_8092964(a); + switch (b) + { + case 0: + sub_809286C(3, 0, 0); + break; + case 1: + sub_809286C(4, 0, 0); + break; + case 2: + sub_809286C(10, 0, 0); + sub_809286C(5, 0, 0); + break; + case 3: + sub_809286C(10, 0, 0); + sub_809286C(6, 0, 0); + break; + case 4: + sub_809286C(7, 0, 0); + break; + case 5: + sub_809286C(8, 0, 0); + break; + case 6: + sub_809286C(9, 0, 0); + break; + } + sub_8091E20(gUnknown_083B57FC[b].text); +} + +static void sub_8092B68(u8 taskId) +{ + u16 var; + + var = gTasks[taskId].data[6] + gTasks[taskId].data[7]; + StringCopy(gStringVar1, gUnknown_083B5910[var].text2); + MenuPrint_PixelCoords(gUnknown_083B5AB2, 45, 16, 1); + + var = gTasks[taskId].data[8] + gTasks[taskId].data[9]; + StringCopy(gStringVar1, gUnknown_083B5968[var].text2); + MenuPrint_PixelCoords(gUnknown_083B5AB2, 45, 32, 1); + + var = gTasks[taskId].data[10] + gTasks[taskId].data[11]; + StringCopy(gStringVar1, gUnknown_083B59C8[var].text2); + MenuPrint_PixelCoords(gUnknown_083B5AAC, 45, 48, 1); + + var = gTasks[taskId].data[12] + gTasks[taskId].data[13]; + StringCopy(gStringVar1, gUnknown_083B59C8[var].text2); + MenuPrint_PixelCoords(gUnknown_083B5AAC, 93, 48, 1); + + var = gTasks[taskId].data[4] + gTasks[taskId].data[5]; + StringCopy(gStringVar1, gUnknown_083B58D8[var].text2); + MenuPrint_PixelCoords(gUnknown_083B5AB2, 45, 64, 1); + + if (IsNationalPokedexEnabled()) + { + var = gTasks[taskId].data[2] + gTasks[taskId].data[3]; + StringCopy(gStringVar1, gUnknown_083B58C0[var].text2); + MenuPrint_PixelCoords(gUnknown_083B5AB2, 45, 80, 1); + } +} + +static void sub_8092C8C(u8 a) +{ + u16 i; + u16 j; + + if (a == 0) + { + *((u16 *)(VRAM + 0x7800 + 0x22)) = 0xC0B; + for (i = 0x12; i < 0x1D; i++) + *((u16 *)(VRAM + 0x7800 + i * 2)) = 0x80D; + *((u16 *)(VRAM + 0x7800 + 0x3A)) = 0x80B; + for (j = 1; j < 13; j++) + { + *((u16 *)(VRAM + 0x7800 + 0x22 + j * 64)) = 0x40A; + for (i = 0x12; i < 0x1D; i++) + *((u16 *)(VRAM + 0x7800 + j * 64 + i * 2)) = 2; + *((u16 *)(VRAM + 0x7800 + 0x3A + j * 64)) = 0xA; + } + *((u16 *)(VRAM + 0x7800 + 0x362)) = 0x40B; + for (i = 0x12; i < 0x1D; i++) + *((u16 *)(VRAM + 0x7800 + 0x340 + i * 2)) = 0xD; + *((u16 *)(VRAM + 0x7800 + 0x37A)) = 0xB; + } + else + { + for (j = 0; j < 14; j++) + { + for (i = 0x11; i < 0x1E; i++) + { + *((u16 *)(VRAM + 0x7800 + j * 64 + i * 2)) = 0x4F; + } + } + } +} + +static void sub_8092D78(u8 taskId) +{ + const struct UnknownStruct2 *r6 = gUnknown_083B5A7C[gTasks[taskId].data[1]].unk0; + const u16 *r8 = &gTasks[taskId].data[gUnknown_083B5A7C[gTasks[taskId].data[1]].unk4]; + const u16 *r7 = &gTasks[taskId].data[gUnknown_083B5A7C[gTasks[taskId].data[1]].unk5]; + u16 i; + u16 j; + + MenuZeroFillWindowRect(18, 1, 28, 12); + for (i = 0, j = *r7; i < 6 && r6[j].text2 != NULL; i++, j++) + { +#ifndef NONMATCHING + j += 0; // Useless statement needed to match +#endif + MenuPrint(r6[j].text2, 18, i * 2 + 1); + } + sub_8091E20(r6[*r8 + *r7].text1); +} + +static u8 sub_8092E10(u8 taskId, u8 b) +{ + const u16 *ptr1 = &gTasks[taskId].data[gUnknown_083B5A7C[b].unk4]; + const u16 *ptr2 = &gTasks[taskId].data[gUnknown_083B5A7C[b].unk5]; + u16 r2 = *ptr1 + *ptr2; + + switch (b) + { + default: + return 0; + case 5: + return gUnknown_083B5A60[r2]; + case 4: + return gUnknown_083B5A62[r2]; + case 0: + if (r2 == 0) + return 0xFF; + else + return r2; + case 1: + if (r2 == 0) + return 0xFF; + else + return r2 - 1; + case 2: + case 3: + return gUnknown_083B5A68[r2]; + } +} + +static void sub_8092EB0(u8 taskId) +{ + u16 r3; + + switch (gPokedexView->unk614) + { + default: + case 0: + r3 = 0; + break; + case 1: + r3 = 1; + break; + } + gTasks[taskId].data[2] = r3; + + switch (gPokedexView->unk618) + { + default: + case 0: + r3 = 0; + break; + case 1: + r3 = 1; + break; + case 2: + r3 = 2; + break; + case 3: + r3 = 3; + break; + case 4: + r3 = 4; + break; + case 5: + r3 = 5; + break; + } + gTasks[taskId].data[4] = r3; +} + +static bool8 sub_8092F44(u8 taskId) +{ + u8 val1 = gTasks[taskId].data[1]; + const u16 *ptr = &gTasks[taskId].data[gUnknown_083B5A7C[val1].unk5]; + u16 val2 = gUnknown_083B5A7C[val1].unk6 - 1; + + if (val2 > 5 && *ptr != 0) + return FALSE; + else + return TRUE; +} + +static bool8 sub_8092F8C(u8 taskId) +{ + u8 val1 = gTasks[taskId].data[1]; + const u16 *ptr = &gTasks[taskId].data[gUnknown_083B5A7C[val1].unk5]; + u16 val2 = gUnknown_083B5A7C[val1].unk6 - 1; + + if (val2 > 5 && *ptr < val2 - 5) + return FALSE; + else + return TRUE; +} + +static void sub_8092FD8(struct Sprite *sprite) +{ + if (gTasks[sprite->data0].func == sub_8092644) + { + u8 val; + + if (sprite->data1 != 0) + { + if (sub_8092F8C(sprite->data0)) + sprite->invisible = TRUE; + else + sprite->invisible = FALSE; + } + else + { + if (sub_8092F44(sprite->data0)) + sprite->invisible = TRUE; + else + sprite->invisible = FALSE; + } + val = sprite->data2 + sprite->data1 * 128; + sprite->pos2.y = gSineTable[val] / 128; + sprite->data2 += 8; + } + else + { + sprite->invisible = TRUE; + } +} + +static void sub_809308C(u8 taskId) +{ + u8 spriteId; + + spriteId = CreateSprite(&gSpriteTemplate_83A053C, 184, 4, 0); + gSprites[spriteId].data0 = taskId; + gSprites[spriteId].data1 = 0; + gSprites[spriteId].callback = sub_8092FD8; + + spriteId = CreateSprite(&gSpriteTemplate_83A053C, 184, 108, 0); + gSprites[spriteId].data0 = taskId; + gSprites[spriteId].data1 = 1; + gSprites[spriteId].vFlip = TRUE; + gSprites[spriteId].callback = sub_8092FD8; +} diff --git a/src/pokedex_cry_screen.c b/src/pokedex_cry_screen.c index 53807befc..92fd832fc 100644 --- a/src/pokedex_cry_screen.c +++ b/src/pokedex_cry_screen.c @@ -1,5 +1,5 @@ #include "global.h" -#include "asm.h" +#include "pokedex_cry_screen.h" #include "palette.h" #include "sprite.h" diff --git a/src/pokemon_1.c b/src/pokemon_1.c index dacbb81c3..c55105ef3 100644 --- a/src/pokemon_1.c +++ b/src/pokemon_1.c @@ -1,5 +1,4 @@ #include "global.h" -#include "asm.h" #include "data2.h" #include "items.h" #include "main.h" @@ -17,17 +16,10 @@ //Extracts the lower 16 bits of a 32-bit number #define LOHALF(n) ((n) & 0xFFFF) -extern struct Pokemon gPlayerParty[6]; // 0x3004360 -extern struct Pokemon gEnemyParty[6]; // 0x30045C0 - extern u8 unk_2000000[]; extern u16 word_2024E82; extern u8 byte_2024E88; -extern u32 gExperienceTables[8][101]; -extern struct BaseStats gBaseStats[]; -extern const u16 *gLevelUpLearnsets[]; - void ZeroBoxMonData(struct BoxPokemon *boxMon) { u8 *raw = (u8 *)boxMon; diff --git a/src/pokemon_2.c b/src/pokemon_2.c index 7fbfc1271..5acdae4d3 100644 --- a/src/pokemon_2.c +++ b/src/pokemon_2.c @@ -1,32 +1,32 @@ #include "global.h" -#include "asm.h" +#include "battle.h" #include "data2.h" #include "event_data.h" #include "main.h" #include "pokemon.h" #include "rng.h" +#include "rom_8077ABC.h" #include "species.h" #include "sprite.h" #include "string_util.h" -#include "text.h" #include "strings2.h" +#include "text.h" +#include "util.h" extern u8 gPlayerPartyCount; -extern struct Pokemon gPlayerParty[6]; extern u8 gEnemyPartyCount; -extern struct Pokemon gEnemyParty[6]; extern u16 unk_20160BC[]; extern struct SecretBaseRecord gSecretBaseRecord; extern u32 dword_2017100[]; extern u16 gBattleTypeFlags; -extern u8 gUnknown_02024A60; +extern u8 gActiveBank; extern struct BattlePokemon gBattleMons[4]; -extern u16 gUnknown_02024BE6; -extern u8 byte_2024C06; -extern u8 gPlayerMonIndex; -extern u8 gEnemyMonIndex; -extern u8 gUnknown_02024C0C; +extern u16 gCurrentMove; +extern u8 gLastUsedAbility; +extern u8 gBankAttacker; +extern u8 gBankTarget; +extern u8 gAbsentBankFlags; extern u8 gXXX_CritRelated; extern u16 gBattleWeather; extern struct BattleEnigmaBerry gEnigmaBerries[]; @@ -36,19 +36,12 @@ extern u16 gTrainerBattleOpponent; extern struct PokemonStorage gPokemonStorage; extern u8 gBadEggNickname[]; -extern u32 gBitTable[]; -extern struct BaseStats gBaseStats[]; extern const struct SpriteTemplate gSpriteTemplate_8208288[]; //array of pointers to arrays of pointers to union AnimCmd (We probably need to typedef this.) -extern u8 gTrainerClassToPicIndex[]; -extern u8 gTrainerClassToNameIndex[]; extern u8 gSecretBaseTrainerClasses[]; -extern u8 gUnknown_08208238[]; -extern u8 gUnknown_0820823C[]; -extern u8 gStatStageRatios[][2]; extern u8 gHoldEffectToType[][2]; -u8 sub_803C348(u8 a1) +u8 CountAliveMons(u8 a1) { s32 i; u8 retVal = 0; @@ -58,21 +51,21 @@ u8 sub_803C348(u8 a1) case 0: for (i = 0; i < 4; i++) { - if (i != gUnknown_02024A60 && !(gUnknown_02024C0C & gBitTable[i])) + if (i != gActiveBank && !(gAbsentBankFlags & gBitTable[i])) retVal++; } break; case 1: for (i = 0; i < 4; i++) { - if (battle_side_get_owner(i) == battle_side_get_owner(gPlayerMonIndex) && !(gUnknown_02024C0C & gBitTable[i])) + if (GetBankSide(i) == GetBankSide(gBankAttacker) && !(gAbsentBankFlags & gBitTable[i])) retVal++; } break; case 2: for (i = 0; i < 4; i++) { - if (battle_side_get_owner(i) == battle_side_get_owner(gEnemyMonIndex) && !(gUnknown_02024C0C & gBitTable[i])) + if (GetBankSide(i) == GetBankSide(gBankTarget) && !(gAbsentBankFlags & gBitTable[i])) retVal++; } break; @@ -84,7 +77,7 @@ u8 sub_803C348(u8 a1) #ifdef NONMATCHING u8 sub_803C434(u8 a1) { - u32 status0 = battle_get_per_side_status(a1); + u32 status0 = GetBankIdentity(a1); register u8 status_ asm("r4"); u8 status; register u32 mask1 asm("r1") = 1; @@ -100,11 +93,11 @@ u8 sub_803C434(u8 a1) val &= val_; if (!val) { - return battle_get_side_with_given_state(status); + return GetBankByPlayerAI(status); } } - if (sub_803C348(0) > 1) + if (CountAliveMons(0) > 1) { u16 r = Random(); register u32 val asm("r1") = mask2; @@ -113,19 +106,19 @@ u8 sub_803C434(u8 a1) { u32 status2 = 2; status2 ^= status; - return battle_get_side_with_given_state(status2); + return GetBankByPlayerAI(status2); } else { - return battle_get_side_with_given_state(status); + return GetBankByPlayerAI(status); } } else { - if (gUnknown_02024C0C & gBitTable[status]) - return battle_get_side_with_given_state(status ^ 2); + if (gAbsentBankFlags & gBitTable[status]) + return GetBankByPlayerAI(status ^ 2); else - return battle_get_side_with_given_state(status); + return GetBankByPlayerAI(status); } } #else @@ -136,7 +129,7 @@ u8 sub_803C434(u8 a1) push {r4-r6,lr}\n\ lsls r0, 24\n\ lsrs r0, 24\n\ - bl battle_get_per_side_status\n\ + bl GetBankIdentity\n\ movs r1, 0x1\n\ movs r6, 0x1\n\ adds r4, r6, 0\n\ @@ -155,7 +148,7 @@ u8 sub_803C434(u8 a1) _0803C45C: .4byte gBattleTypeFlags\n\ _0803C460:\n\ movs r0, 0\n\ - bl sub_803C348\n\ + bl CountAliveMons\n\ lsls r0, 24\n\ lsrs r0, 24\n\ cmp r0, 0x1\n\ @@ -184,14 +177,14 @@ _0803C484:\n\ adds r0, r4, 0\n\ b _0803C4AA\n\ .align 2, 0\n\ -_0803C49C: .4byte gUnknown_02024C0C\n\ +_0803C49C: .4byte gAbsentBankFlags\n\ _0803C4A0: .4byte gBitTable\n\ _0803C4A4:\n\ movs r0, 0x2\n\ eors r5, r0\n\ adds r0, r5, 0\n\ _0803C4AA:\n\ - bl battle_get_side_with_given_state\n\ + bl GetBankByPlayerAI\n\ lsls r0, 24\n\ lsrs r0, 24\n\ pop {r4-r6}\n\ @@ -1138,11 +1131,11 @@ u8 sub_803DAA0(void) u8 GetAbilityBySpecies(u16 species, bool8 altAbility) { if (altAbility) - byte_2024C06 = gBaseStats[species].ability2; + gLastUsedAbility = gBaseStats[species].ability2; else - byte_2024C06 = gBaseStats[species].ability1; + gLastUsedAbility = gBaseStats[species].ability1; - return byte_2024C06; + return gLastUsedAbility; } u8 GetMonAbility(struct Pokemon *mon) @@ -1302,7 +1295,7 @@ void CopyPlayerPartyMonToBattleData(u8 battleIndex, u8 partyIndex) GetMonData(&gPlayerParty[partyIndex], MON_DATA_NICKNAME, nickname); StringCopy10(gBattleMons[battleIndex].nickname, nickname); GetMonData(&gPlayerParty[partyIndex], MON_DATA_OT_NAME, gBattleMons[battleIndex].otName); - *(unk_20160BC + battle_side_get_owner(battleIndex)) = gBattleMons[battleIndex].hp; + *(unk_20160BC + GetBankSide(battleIndex)) = gBattleMons[battleIndex].hp; for (i = 0; i < 8; i++) gBattleMons[battleIndex].statStages[i] = 6; diff --git a/src/pokemon_3.c b/src/pokemon_3.c index f9eb3a7e9..cb8eb2a46 100644 --- a/src/pokemon_3.c +++ b/src/pokemon_3.c @@ -1,17 +1,19 @@ #include "global.h" -#include "asm.h" #include "battle.h" +#include "battle_message.h" #include "data2.h" #include "event_data.h" #include "hold_effects.h" #include "item.h" #include "items.h" #include "link.h" -#include "main.h" #include "m4a.h" +#include "main.h" #include "pokemon.h" #include "rng.h" #include "rom4.h" +#include "rom_8077ABC.h" +#include "rom_8094928.h" #include "rtc.h" #include "songs.h" #include "sound.h" @@ -19,6 +21,7 @@ #include "sprite.h" #include "string_util.h" #include "text.h" +#include "util.h" #define EVO_FRIENDSHIP 0x0001 // Pokémon levels up with friendship ≥ 220 #define EVO_FRIENDSHIP_DAY 0x0002 // Pokémon levels up during the day with friendship ≥ 220 @@ -36,18 +39,6 @@ #define EVO_LEVEL_SHEDINJA 0x000e // Pokémon reaches the specified level (special value for Shedinja) #define EVO_BEAUTY 0x000f // Pokémon levels up with beauty ≥ specified value -struct Evolution -{ - u16 method; - u16 param; - u16 targetSpecies; -}; - -struct EvolutionData -{ - struct Evolution evolutions[5]; -}; - struct SpindaSpot { u8 x, y; @@ -55,42 +46,34 @@ struct SpindaSpot }; extern u8 gPlayerPartyCount; -extern struct Pokemon gPlayerParty[6]; extern u8 gEnemyPartyCount; -extern struct Pokemon gEnemyParty[6]; extern struct BattlePokemon gBattleMons[4]; -extern u8 * const gItemEffectTable[]; -extern u8 gUnknown_02024A60; +extern u8 gActiveBank; extern struct BattleEnigmaBerry gEnigmaBerries[]; -extern struct EvolutionData gEvolutionTable[]; extern u16 gSpeciesToHoennPokedexNum[]; extern u16 gSpeciesToNationalPokedexNum[]; extern u16 gHoennToNationalOrder[]; extern u16 gSpeciesIdToCryId[]; -extern u8 gUnknown_030041C0[]; -extern u8 gUnknown_03004290[]; -extern u8 gUnknown_020238CC[]; -extern u8 gPlayerMonIndex; -extern u8 gEnemyMonIndex; -extern u8 gUnknown_02024C0B; -extern u8 gUnknown_02024E6C; +extern u8 gBattleTextBuff1[]; +extern u8 gBattleTextBuff2[]; +extern u8 gDisplayedStringBattle[]; +extern u8 gBankAttacker; +extern u8 gBankTarget; +extern u8 gStringBank; +extern u8 gBankInMenu; extern struct SpindaSpot gSpindaSpotGraphics[]; extern s8 gNatureStatTable[][5]; extern s8 gUnknown_082082FE[][3]; extern u16 gTrainerBattleOpponent; extern u16 gBattleTypeFlags; -extern struct BaseStats gBaseStats[]; -extern u32 gBitTable[]; -extern u32 gExperienceTables[8][101]; extern u32 gTMHMLearnsets[][2]; -extern const u16 *gLevelUpLearnsets[]; extern u8 gBattleMonForms[]; extern const u8 BattleText_Wally[]; extern const u16 gHMMoves[]; extern s8 gUnknown_083F7E28[]; -extern u8 byte_2024C06; +extern u8 gLastUsedAbility; extern const u8 BattleText_PreventedSwitch[]; -extern u16 gUnknown_02024A6A[]; +extern u16 gBattlePartyID[]; extern u8 gJapaneseNidoranNames[][11]; extern u8 gUnknown_082082F8[]; @@ -100,8 +83,6 @@ extern u8 gUnknown_083FEE5D[]; extern u8 gUnknown_083FEE92[]; extern u8 *gUnknown_08400F58[]; -u8 CheckPartyHasHadPokerus(struct Pokemon *, u8); - bool8 HealStatusConditions(struct Pokemon *mon, u32 unused, u32 healMask, u8 battleId) { u32 status = GetMonData(mon, MON_DATA_STATUS, 0); @@ -131,14 +112,14 @@ u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit) offset = 6; - temp = gItemEffectTable[itemId - 13]; + temp = (u8 *) gItemEffectTable[itemId - 13]; if (!temp && itemId != ITEM_ENIGMA_BERRY) return 0; if (itemId == ITEM_ENIGMA_BERRY) { - temp = gEnigmaBerries[gUnknown_02024A60].itemEffect; + temp = gEnigmaBerries[gActiveBank].itemEffect; } itemEffect = temp; @@ -235,10 +216,10 @@ u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit) void sub_803F324(int stat) { - gEnemyMonIndex = gUnknown_02024E6C; - StringCopy(gUnknown_030041C0, gUnknown_08400F58[gUnknown_082082F8[stat]]); - StringCopy(gUnknown_03004290, gUnknown_083FFDB3); - get_battle_strings_(gUnknown_083FFDD3); + gBankTarget = gBankInMenu; + StringCopy(gBattleTextBuff1, gUnknown_08400F58[gUnknown_082082F8[stat]]); + StringCopy(gBattleTextBuff2, gUnknown_083FFDB3); + StrCpyDecodeToDisplayedStringBattle(gUnknown_083FFDD3); } u8 *sub_803F378(u16 itemId) @@ -250,7 +231,7 @@ u8 *sub_803F378(u16 itemId) { if (gMain.inBattle) { - itemEffect = gEnigmaBerries[gUnknown_02024E6C].itemEffect; + itemEffect = gEnigmaBerries[gBankInMenu].itemEffect; } else { @@ -259,10 +240,10 @@ u8 *sub_803F378(u16 itemId) } else { - itemEffect = gItemEffectTable[itemId - 13]; + itemEffect = (u8 *) gItemEffectTable[itemId - 13]; } - gUnknown_02024C0B = gUnknown_02024E6C; + gStringBank = gBankInMenu; for (i = 0; i < 3; i++) { @@ -276,19 +257,19 @@ u8 *sub_803F378(u16 itemId) } else { - gPlayerMonIndex = gUnknown_02024E6C; - get_battle_strings_(gUnknown_083FEE92); + gBankAttacker = gBankInMenu; + StrCpyDecodeToDisplayedStringBattle(gUnknown_083FEE92); } } } if (itemEffect[3] & 0x80) { - gPlayerMonIndex = gUnknown_02024E6C; - get_battle_strings_(gUnknown_083FEE5D); + gBankAttacker = gBankInMenu; + StrCpyDecodeToDisplayedStringBattle(gUnknown_083FEE5D); } - return gUnknown_020238CC; + return gDisplayedStringBattle; } u8 GetNature(struct Pokemon *mon) @@ -1191,9 +1172,7 @@ void current_map_music_set__default_for_battle(u16 song) PlayNewMapMusic(sub_8040728()); } -const u16 *species_and_otid_get_pal(u16, u32, u32); - -const u16 *pokemon_get_pal(struct Pokemon *mon) +const u8 *pokemon_get_pal(struct Pokemon *mon) { u16 species = GetMonData(mon, MON_DATA_SPECIES2, 0); u32 otId = GetMonData(mon, MON_DATA_OT_ID, 0); @@ -1207,7 +1186,7 @@ const u16 *pokemon_get_pal(struct Pokemon *mon) //Extracts the lower 16 bits of a 32-bit number #define LOHALF(n) ((n) & 0xFFFF) -const u16 *species_and_otid_get_pal(u16 species, u32 otId , u32 personality) +const u8 *species_and_otid_get_pal(u16 species, u32 otId, u32 personality) { u32 shinyValue; @@ -1221,9 +1200,7 @@ const u16 *species_and_otid_get_pal(u16 species, u32 otId , u32 personality) return gMonPaletteTable[species].data; } -const struct SpritePalette *sub_80409C8(u16, u32, u32); - -const struct SpritePalette *sub_8040990(struct Pokemon *mon) +const struct CompressedSpritePalette *sub_8040990(struct Pokemon *mon) { u16 species = GetMonData(mon, MON_DATA_SPECIES2, 0); u32 otId = GetMonData(mon, MON_DATA_OT_ID, 0); @@ -1231,7 +1208,7 @@ const struct SpritePalette *sub_8040990(struct Pokemon *mon) return sub_80409C8(species, otId, personality); } -const struct SpritePalette *sub_80409C8(u16 species, u32 otId , u32 personality) +const struct CompressedSpritePalette *sub_80409C8(u16 species, u32 otId , u32 personality) { u32 shinyValue; @@ -1255,7 +1232,7 @@ bool8 IsHMMove2(u16 move) bool8 sub_8040A3C(u16 species) { - return gBaseStats[species].bodyColor >> 7; // XXX: should this be a bitfield instead? + return gBaseStats[species].unk19_7; } s8 sub_8040A54(struct Pokemon *mon, u8 a2) @@ -1270,8 +1247,6 @@ s8 sub_8040A7C(u32 personality, u8 a2) return gUnknown_083F7E28[nature * 5 + a2]; } -bool8 IsOtherTrainer(u32, u8 *); - bool8 IsTradedMon(struct Pokemon *mon) { u8 otName[8]; @@ -1321,21 +1296,21 @@ void BoxMonRestorePP(struct BoxPokemon *boxMon) void sub_8040B8C(void) { - byte_2024C06 = BATTLE_STRUCT->filler1_2[0x37]; - gUnknown_030041C0[0] = 0xFD; - gUnknown_030041C0[1] = 4; - gUnknown_030041C0[2] = BATTLE_STRUCT->filler1[0x34]; - gUnknown_030041C0[4] = EOS; - if (!battle_side_get_owner(BATTLE_STRUCT->filler1[0x34])) - gUnknown_030041C0[3] = pokemon_order_func(gUnknown_02024A6A[BATTLE_STRUCT->filler1[0x34]]); + gLastUsedAbility = BATTLE_STRUCT->filler1_2[0x37]; + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 4; + gBattleTextBuff1[2] = BATTLE_STRUCT->filler1[0x34]; + gBattleTextBuff1[4] = EOS; + if (!GetBankSide(BATTLE_STRUCT->filler1[0x34])) + gBattleTextBuff1[3] = pokemon_order_func(gBattlePartyID[BATTLE_STRUCT->filler1[0x34]]); else - gUnknown_030041C0[3] = gUnknown_02024A6A[BATTLE_STRUCT->filler1[0x34]]; - gUnknown_03004290[0] = 0xFD; - gUnknown_03004290[1] = 4; - gUnknown_03004290[2] = gUnknown_02024E6C; - gUnknown_03004290[3] = pokemon_order_func(gUnknown_02024A6A[gUnknown_02024E6C]); - gUnknown_03004290[4] = EOS; - sub_8120FFC(BattleText_PreventedSwitch, gStringVar4); + gBattleTextBuff1[3] = gBattlePartyID[BATTLE_STRUCT->filler1[0x34]]; + gBattleTextBuff2[0] = 0xFD; + gBattleTextBuff2[1] = 4; + gBattleTextBuff2[2] = gBankInMenu; + gBattleTextBuff2[3] = pokemon_order_func(gBattlePartyID[gBankInMenu]); + gBattleTextBuff2[4] = EOS; + StrCpyDecodeBattle(BattleText_PreventedSwitch, gStringVar4); } void SetWildMonHeldItem(void) diff --git a/src/pokemon_size_record.c b/src/pokemon_size_record.c index b2f8a1569..f293190e8 100644 --- a/src/pokemon_size_record.c +++ b/src/pokemon_size_record.c @@ -2,14 +2,12 @@ #include "pokemon_size_record.h" #include "data2.h" #include "event_data.h" +#include "pokedex.h" #include "species.h" #include "string_util.h" #include "strings2.h" #include "text.h" -extern u16 SpeciesToNationalPokedexNum(u16); -extern u16 GetPokedexHeightWeight(u16, u8); - struct UnknownStruct { u16 unk0; diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index 679ec0bc4..fb837f1f6 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -1,4 +1,5 @@ #include "global.h" +#include "pokemon_storage_system.h" #include "menu.h" #include "string_util.h" diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 56a56e455..61ae11438 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -1,20 +1,15 @@ #include "global.h" -#include "asm.h" +#include "pokemon_summary_screen.h" #include "link.h" #include "menu.h" #include "pokemon.h" +#include "region_map.h" #include "string_util.h" #include "strings2.h" +#include "tv.h" extern struct Pokemon *unk_2018000; -extern u8 *(gNatureNames[]); - -u8 *sub_80A1E9C(u8 *dest, u8 *src, u8); -u8 PokemonSummaryScreen_CheckOT(struct Pokemon *pokemon); -u8 *PokemonSummaryScreen_CopyPokemonLevel(u8 *dest, u8 level); -u32 GetPlayerTrainerId(void); - bool8 PokemonSummaryScreen_CheckOT(struct Pokemon *mon) { u32 trainerId; diff --git a/src/pokenav.c b/src/pokenav.c index f50f039f8..24253e878 100644 --- a/src/pokenav.c +++ b/src/pokenav.c @@ -1,24 +1,9 @@ #include "global.h" +#include "pokenav.h" #include "battle.h" #include "data2.h" #include "string_util.h" -struct UnkPokenavStruct_Sub { - /*0x0*/ u16 unk0; - /*0x2*/ u8 filler2[6]; -}; - - -struct UnkPokenavStruct { - /*0x0000*/ u8 filler0000[0xCEE8]; - /*0xCEE8*/ struct UnkPokenavStruct_Sub unkCEE8[78]; - /*0xD158*/ u16 unkD158; - -}; - -extern struct UnkPokenavStruct *gUnknown_083DFEC4; - - void sub_80F700C(u8 *arg0, u16 arg1) { struct Trainer *trainer; u8 *ptr; diff --git a/src/post_battle_event_funcs.c b/src/post_battle_event_funcs.c index f0b88025c..8d85705c8 100644 --- a/src/post_battle_event_funcs.c +++ b/src/post_battle_event_funcs.c @@ -1,13 +1,12 @@ #include "global.h" #include "event_data.h" +#include "hall_of_fame.h" #include "load_save.h" #include "main.h" #include "pokemon.h" #include "rom4.h" #include "script_pokemon_80C4.h" -extern void sub_8141F90(void); - extern u8 gUnknown_02039324; int GameClear(void) diff --git a/src/record_mixing.c b/src/record_mixing.c index c84cfd2ae..e1a72cf2e 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -1,30 +1,38 @@ #include "global.h" #include "record_mixing.h" -#include "asm.h" +#include "battle_tower.h" +#include "cable_club.h" +#include "daycare.h" #include "dewford_trend.h" #include "event_data.h" +#include "fldeff_80C5CD4.h" #include "link.h" +#include "mauville_old_man.h" #include "menu.h" +#include "mystery_event_script.h" #include "rom4.h" #include "script.h" +#include "secret_base.h" #include "songs.h" #include "sound.h" #include "string_util.h" #include "strings2.h" #include "task.h" +#include "tv.h" + extern void *recordMixingSecretBases; extern void *recordMixingTvShows; extern void *gUnknown_083D0274; extern void *gUnknown_083D0278; extern void *recordMixingEasyChatPairs; -extern void *gUnknown_083D0280; extern void *gUnknown_083D0284; extern u8 gUnknown_083D0288[2]; extern u8 gUnknown_083D028A[2][3]; extern u8 gUnknown_083D0290[9][4]; -extern struct RecordMixing_UnknownStruct gUnknown_02038738[2]; //Don't know what type this points to +extern struct RecordMixing_UnknownStruct gUnknown_02038738; //Don't know what type this points to +extern struct RecordMixing_UnknownStruct *gUnknown_083D0280; extern u16 gSpecialVar_0x8005; extern u32 gUnknown_03005D2C; extern u8 gUnknown_03000718; @@ -40,11 +48,11 @@ void sub_80B929C(void) struct PlayerRecords { struct SecretBaseRecord secretBases[20]; - u8 tvShows[25][36]; + TVShow tvShows[25]; u8 filler1004[0x40]; u8 filler1044[0x40]; struct EasyChatPair easyChatPairs[5]; - u8 filler10AC[0x78]; + struct RecordMixing_UnknownStruct filler10AC; u8 filler1124[0xA4]; u16 filler11C8[0x34]; }; @@ -52,9 +60,6 @@ struct PlayerRecords { extern struct PlayerRecords unk_2008000; extern struct PlayerRecords unk_2018000; -void sub_80BC300(); -void sub_80C045C(); - void RecordMixing_PrepareExchangePacket(void) { sub_80BC300(); @@ -65,10 +70,10 @@ void RecordMixing_PrepareExchangePacket(void) memcpy(unk_2018000.filler1004, gUnknown_083D0274, 0x40); memcpy(unk_2018000.filler1044, gUnknown_083D0278, 0x40); memcpy(unk_2018000.easyChatPairs, recordMixingEasyChatPairs, 0x28); - gUnknown_02038738[0] = gSaveBlock1.filler_303C[0]; - gUnknown_02038738[1] = gSaveBlock1.filler_303C[1]; - sub_8041324(gSaveBlock1.daycareData, gUnknown_02038738); - memcpy(unk_2018000.filler10AC, gUnknown_083D0280, 0x78); + gUnknown_02038738.data[0] = gSaveBlock1.filler_303C.data[0]; + gUnknown_02038738.data[1] = gSaveBlock1.filler_303C.data[1]; + sub_8041324(gSaveBlock1.daycareData, &gUnknown_02038738); + memcpy(&unk_2018000.filler10AC, gUnknown_083D0280, sizeof(struct RecordMixing_UnknownStruct)); memcpy(unk_2018000.filler1124, gUnknown_083D0284, 0xA4); if (GetMultiplayerId() == 0) @@ -83,7 +88,7 @@ void RecordMixing_ReceiveExchangePacket(u32 a) sub_80B9B1C(unk_2008000.filler1044, sizeof(struct PlayerRecords), a); //UB: Too many arguments for function "sub_80FA4E4" sub_80FA4E4(unk_2008000.easyChatPairs, sizeof(struct PlayerRecords), a); - sub_80B9C6C(unk_2008000.filler10AC, sizeof(struct PlayerRecords), a, unk_2008000.tvShows); + sub_80B9C6C(&unk_2008000.filler10AC, sizeof(struct PlayerRecords), a, unk_2008000.tvShows); sub_80B9B70(unk_2008000.filler1124, sizeof(struct PlayerRecords), a); sub_80B9F3C(unk_2008000.filler11C8, a); } @@ -428,14 +433,20 @@ u8 sub_80B9BBC(u16 *a) #undef NONMATCHING #ifdef NONMATCHING -void sub_80B9BC4(u32 a, u32 b, u32 c, u32 d) +void sub_80B9BC4(struct RecordMixing_UnknownStruct *a, size_t b, u8 c[][2], u8 d, u8 e) { + struct RecordMixing_UnknownStructSub *offA; + struct RecordMixing_UnknownStructSub *offB; + struct RecordMixing_UnknownStructSub v0; + v0 = (offA = ((struct RecordMixing_UnknownStruct *)(b * c[d][0] + (u32)&a))->data)[c[d][1]]; + offA[c[d][1]] = (offB = ((struct RecordMixing_UnknownStruct *)(b * c[e][0] + (u32)&a))->data)[c[e][1]]; + offB[c[e][1]] = v0; //ToDo: Figure out what this strange stack usage is } #else __attribute__((naked)) -void sub_80B9BC4(u32 a, u32 b, u32 c, u32 d) +void sub_80B9BC4(struct RecordMixing_UnknownStruct *a, size_t b, u8 c[][2], u8 d, u8 e) { asm(".syntax unified\n\ push {r4-r6,lr}\n\ @@ -517,75 +528,3 @@ u8 sub_80B9C4C(u8 *a) return r2; } -struct UnkStruct1 -{ - u8 unk0[4]; - u8 unk4[4]; - u8 unk8[4]; - u8 fillerC[0x10]; - u8 unk1C[4][2]; - u8 filler24[8]; - void *unk2C; - u32 unk30; - u32 unk34; - void *unk38; - u32 unk3C; - u32 unk40; - u8 filler44[4]; - u32 unk48; - u32 unk4C; - u32 unk50; - -}; - -/* -//Not finished -extern void sub_80B9C6C(void *a, u32 b, u8 c, void *d) -{ - struct UnkStruct1 s; - u16 r8; - u16 r3; - - s.unk2C = a; - s.unk30 = b; - s.unk38 = d; - s.unk34 = c; - s.unk40 = Random(); - SeedRng(gLinkPlayers[0].trainerId); - r8 = GetLinkPlayerCount(); - r3 = 0; - - s.unk4C = 12; - - while (r3 < 4) - { - - s.unk4[r3] |= 0xFF; - s.unk8[r3] = 0; - - s.unk1C[r3][0] = 0; - s.unk1C[r3][1] = 0; - r3++; - } - s.unk3C = 0; - r3 = 0; - s.unk50 = r8 << 16; - s.unk48 = s.unk30 * s.unk34; - - if (s.unk3C < r8) - { - do //_080B9D00 - { - u32 *r6 = (u32 *)(s.unk2C + s.unk30 * r3); - if (r6[0x1C] != 0 && r6[0x1C] > 0) - { - - } - //_080B9D3C - } - while (r3 < r8); - } - //_080B9D46 -} -*/ - diff --git a/src/roamer.c b/src/roamer.c index 394f81c75..948828d5e 100644 --- a/src/roamer.c +++ b/src/roamer.c @@ -1,7 +1,7 @@ #include "global.h" +#include "roamer.h" #include "pokemon.h" #include "rng.h" -#include "roamer.h" #include "species.h" #ifdef SAPPHIRE diff --git a/src/rom3.c b/src/rom3.c index be6ae0b27..9d8d39f91 100644 --- a/src/rom3.c +++ b/src/rom3.c @@ -1,11 +1,19 @@ #include "global.h" -#include "asm.h" +#include "rom3.h" #include "battle.h" +#include "battle_811DA74.h" +#include "battle_ai.h" +#include "battle_anim.h" +#include "battle_anim_81258BC.h" +#include "battle_anim_8137220.h" +#include "cable_club.h" #include "items.h" #include "link.h" #include "pokemon.h" +#include "rom_8094928.h" #include "species.h" #include "task.h" +#include "util.h" extern u8 unk_2000000[]; @@ -13,7 +21,6 @@ extern u8 unk_2000000[]; #define EWRAM_15000 ((u8 *)(unk_2000000 + 0x15000)) extern u16 gBattleTypeFlags; -extern const u32 gBitTable[]; extern u16 gBattleWeather; extern struct BattlePokemon gBattleMons[]; @@ -21,59 +28,33 @@ extern u8 gUnknown_020238C4; extern u8 gUnknown_020238C5; extern u8 gUnknown_020238C6; extern u32 gUnknown_020239FC; -extern u8 gUnknown_02023A60[][0x200]; -extern u8 gUnknown_02024260[][0x200]; -extern u8 gUnknown_02024A60; -extern u32 gUnknown_02024A64; -extern u8 gUnknown_02024A68; -extern u16 gUnknown_02024A6A[]; -extern u8 gUnknown_02024A72[]; -extern u16 gUnknown_02024BE6; +extern u8 gBattleBufferA[][0x200]; +extern u8 gBattleBufferB[][0x200]; +extern u8 gActiveBank; +extern u32 gBattleExecBuffer; +extern u8 gNoOfAllBanks; +extern u16 gBattlePartyID[]; +extern u8 gBanksBySide[]; +extern u16 gCurrentMove; extern u16 gUnknown_02024BE8; -extern u16 gUnknown_02024C04; -extern u8 byte_2024C06; -extern u8 gPlayerMonIndex; -extern u8 gEnemyMonIndex; -extern u8 gUnknown_02024C0A; -extern u8 gUnknown_02024C0B; -extern u8 gUnknown_02024C0C; -extern u8 gUnknown_02024C0E; +extern u16 gLastUsedItem; +extern u8 gLastUsedAbility; +extern u8 gBankAttacker; +extern u8 gBankTarget; +extern u8 gEffectBank; +extern u8 gStringBank; +extern u8 gAbsentBankFlags; +extern u8 gMultiHitCounter; extern u8 gUnknown_02024C78; -extern u8 gUnknown_02024D26; -extern u8 gUnknown_02024E60[]; -extern u8 gUnknown_02024E64[]; -extern u8 gUnknown_03004040[]; -extern u8 gUnknown_030041C0[]; -extern u8 gUnknown_03004290[]; -extern u8 gUnknown_030042B0[]; -extern void (*gUnknown_030042D4)(void); -extern void (*gUnknown_03004330[])(void); - -extern void sub_800BF28(void); -extern void sub_8083C50(u8); -extern void nullsub_41(void); -extern void nullsub_91(void); -extern void battle_anim_clear_some_data(void); -extern void ClearBattleMonForms(void); -extern void BattleAI_HandleItemUseBeforeAISetup(void); -extern void sub_8094978(u8, int); -extern void sub_800BA78(void); -extern void sub_800B9A8(void); -extern void sub_800BD54(void); -extern void sub_8010800(void); -extern void sub_812B468(void); -extern void sub_8137224(void); -extern void sub_802BF74(void); -extern void sub_8032AE0(void); -extern void sub_8037510(void); -extern void sub_811DA78(void); -extern void dp01_prepare_buffer_wireless_probably(u8 a, u16, u8 *c); -extern void sub_800C1A8(u8); -extern void sub_800C47C(u8); -extern void sub_8007F4C(void); -extern u8 sub_8007ECC(void); -extern void sub_80155A4(); -extern u8 sub_8018324(); +extern u8 gBattleOutcome; +extern u8 gActionSelectionCursor[]; +extern u8 gMoveSelectionCursor[]; +extern u8 gBattleBuffersTransferData[]; +extern u8 gBattleTextBuff1[]; +extern u8 gBattleTextBuff2[]; +extern u8 gBattleTextBuff3[]; +extern void (*gBattleMainFunc)(void); +extern void (*gBattleBankFunc[])(void); void sub_800B858(void) { @@ -89,16 +70,16 @@ void setup_poochyena_battle(void) { s32 i; - gUnknown_030042D4 = nullsub_41; + gBattleMainFunc = nullsub_41; for (i = 0; i < 4; i++) { - gUnknown_03004330[i] = nullsub_91; - gUnknown_02024A72[i] = 0xFF; - gUnknown_02024E60[i] = 0; - gUnknown_02024E64[i] = 0; + gBattleBankFunc[i] = nullsub_91; + gBanksBySide[i] = 0xFF; + gActionSelectionCursor[i] = 0; + gMoveSelectionCursor[i] = 0; } sub_800B858(); - gUnknown_02024A64 = 0; + gBattleExecBuffer = 0; battle_anim_clear_some_data(); ClearBattleMonForms(); BattleAI_HandleItemUseBeforeAISetup(); @@ -124,7 +105,7 @@ void sub_800B950(void) sub_800BD54(); if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - for (i = 0; i < gUnknown_02024A68; i++) + for (i = 0; i < gNoOfAllBanks; i++) sub_8094978(i, 0); } } @@ -133,30 +114,30 @@ void sub_800B9A8(void) { if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) { - gUnknown_030042D4 = sub_8010800; + gBattleMainFunc = sub_8010800; if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) - gUnknown_03004330[0] = sub_812B468; + gBattleBankFunc[0] = SetBankFuncToSafariBufferRunCommand; else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL) - gUnknown_03004330[0] = sub_8137224; + gBattleBankFunc[0] = SetBankFuncToWallyBufferRunCommand; else - gUnknown_03004330[0] = sub_802BF74; - gUnknown_02024A72[0] = 0; - gUnknown_03004330[1] = sub_8032AE0; - gUnknown_02024A72[1] = 1; - gUnknown_02024A68 = 2; + gBattleBankFunc[0] = SetBankFuncToPlayerBufferRunCommand; + gBanksBySide[0] = 0; + gBattleBankFunc[1] = SetBankFuncToOpponentBufferRunCommand; + gBanksBySide[1] = 1; + gNoOfAllBanks = 2; } else { - gUnknown_030042D4 = sub_8010800; - gUnknown_03004330[0] = sub_802BF74; - gUnknown_02024A72[0] = 0; - gUnknown_03004330[1] = sub_8032AE0; - gUnknown_02024A72[1] = 1; - gUnknown_03004330[2] = sub_802BF74; - gUnknown_02024A72[2] = 2; - gUnknown_03004330[3] = sub_8032AE0; - gUnknown_02024A72[3] = 3; - gUnknown_02024A68 = 4; + gBattleMainFunc = sub_8010800; + gBattleBankFunc[0] = SetBankFuncToPlayerBufferRunCommand; + gBanksBySide[0] = 0; + gBattleBankFunc[1] = SetBankFuncToOpponentBufferRunCommand; + gBanksBySide[1] = 1; + gBattleBankFunc[2] = SetBankFuncToPlayerBufferRunCommand; + gBanksBySide[2] = 2; + gBattleBankFunc[3] = SetBankFuncToOpponentBufferRunCommand; + gBanksBySide[3] = 3; + gNoOfAllBanks = 4; } } @@ -169,20 +150,20 @@ void sub_800BA78(void) { if (gBattleTypeFlags & BATTLE_TYPE_WILD) { - gUnknown_030042D4 = sub_8010800; - gUnknown_03004330[0] = sub_802BF74; - gUnknown_02024A72[0] = 0; - gUnknown_03004330[1] = sub_8037510; - gUnknown_02024A72[1] = 1; - gUnknown_02024A68 = 2; + gBattleMainFunc = sub_8010800; + gBattleBankFunc[0] = SetBankFuncToPlayerBufferRunCommand; + gBanksBySide[0] = 0; + gBattleBankFunc[1] = SetBankFuncToLinkOpponentBufferRunCommand; + gBanksBySide[1] = 1; + gNoOfAllBanks = 2; } else { - gUnknown_03004330[1] = sub_802BF74; - gUnknown_02024A72[1] = 0; - gUnknown_03004330[0] = sub_8037510; - gUnknown_02024A72[0] = 1; - gUnknown_02024A68 = 2; + gBattleBankFunc[1] = SetBankFuncToPlayerBufferRunCommand; + gBanksBySide[1] = 0; + gBattleBankFunc[0] = SetBankFuncToLinkOpponentBufferRunCommand; + gBanksBySide[0] = 1; + gNoOfAllBanks = 2; } return; } @@ -190,35 +171,35 @@ void sub_800BA78(void) { if (gBattleTypeFlags & BATTLE_TYPE_WILD) { - gUnknown_030042D4 = sub_8010800; - gUnknown_03004330[0] = sub_802BF74; - gUnknown_02024A72[0] = 0; - gUnknown_03004330[1] = sub_8037510; - gUnknown_02024A72[1] = 1; - gUnknown_03004330[2] = sub_802BF74; - gUnknown_02024A72[2] = 2; - gUnknown_03004330[3] = sub_8037510; - gUnknown_02024A72[3] = 3; - gUnknown_02024A68 = 4; + gBattleMainFunc = sub_8010800; + gBattleBankFunc[0] = SetBankFuncToPlayerBufferRunCommand; + gBanksBySide[0] = 0; + gBattleBankFunc[1] = SetBankFuncToLinkOpponentBufferRunCommand; + gBanksBySide[1] = 1; + gBattleBankFunc[2] = SetBankFuncToPlayerBufferRunCommand; + gBanksBySide[2] = 2; + gBattleBankFunc[3] = SetBankFuncToLinkOpponentBufferRunCommand; + gBanksBySide[3] = 3; + gNoOfAllBanks = 4; } else { - gUnknown_03004330[1] = sub_802BF74; - gUnknown_02024A72[1] = 0; - gUnknown_03004330[0] = sub_8037510; - gUnknown_02024A72[0] = 1; - gUnknown_03004330[3] = sub_802BF74; - gUnknown_02024A72[3] = 2; - gUnknown_03004330[2] = sub_8037510; - gUnknown_02024A72[2] = 3; - gUnknown_02024A68 = 4; + gBattleBankFunc[1] = SetBankFuncToPlayerBufferRunCommand; + gBanksBySide[1] = 0; + gBattleBankFunc[0] = SetBankFuncToLinkOpponentBufferRunCommand; + gBanksBySide[0] = 1; + gBattleBankFunc[3] = SetBankFuncToPlayerBufferRunCommand; + gBanksBySide[3] = 2; + gBattleBankFunc[2] = SetBankFuncToLinkOpponentBufferRunCommand; + gBanksBySide[2] = 3; + gNoOfAllBanks = 4; } return; } multiplayerId = GetMultiplayerId(); if (gBattleTypeFlags & BATTLE_TYPE_WILD) - gUnknown_030042D4 = sub_8010800; + gBattleMainFunc = sub_8010800; for (i = 0; i < 4; i++) { switch (gLinkPlayers[i].lp_field_18) @@ -235,18 +216,18 @@ void sub_800BA78(void) if (i == multiplayerId) { - gUnknown_03004330[gLinkPlayers[i].lp_field_18] = sub_802BF74; + gBattleBankFunc[gLinkPlayers[i].lp_field_18] = SetBankFuncToPlayerBufferRunCommand; switch (gLinkPlayers[i].lp_field_18) { case 0: case 3: - gUnknown_02024A72[gLinkPlayers[i].lp_field_18] = 0; - gUnknown_02024A6A[gLinkPlayers[i].lp_field_18] = 0; + gBanksBySide[gLinkPlayers[i].lp_field_18] = 0; + gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0; break; case 1: case 2: - gUnknown_02024A72[gLinkPlayers[i].lp_field_18] = 2; - gUnknown_02024A6A[gLinkPlayers[i].lp_field_18] = 3; + gBanksBySide[gLinkPlayers[i].lp_field_18] = 2; + gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3; break; } } @@ -255,41 +236,41 @@ void sub_800BA78(void) if ((!(gLinkPlayers[i].lp_field_18 & 1) && !(gLinkPlayers[multiplayerId].lp_field_18 & 1)) || ((gLinkPlayers[i].lp_field_18 & 1) && (gLinkPlayers[multiplayerId].lp_field_18 & 1))) { - gUnknown_03004330[gLinkPlayers[i].lp_field_18] = sub_811DA78; + gBattleBankFunc[gLinkPlayers[i].lp_field_18] = SetBankFuncToLinkPartnerBufferRunCommand; switch (gLinkPlayers[i].lp_field_18) { case 0: case 3: - gUnknown_02024A72[gLinkPlayers[i].lp_field_18] = 0; - gUnknown_02024A6A[gLinkPlayers[i].lp_field_18] = 0; + gBanksBySide[gLinkPlayers[i].lp_field_18] = 0; + gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0; break; case 1: case 2: - gUnknown_02024A72[gLinkPlayers[i].lp_field_18] = 2; - gUnknown_02024A6A[gLinkPlayers[i].lp_field_18] = 3; + gBanksBySide[gLinkPlayers[i].lp_field_18] = 2; + gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3; break; } } else { - gUnknown_03004330[gLinkPlayers[i].lp_field_18] = sub_8037510; + gBattleBankFunc[gLinkPlayers[i].lp_field_18] = SetBankFuncToLinkOpponentBufferRunCommand; switch (gLinkPlayers[i].lp_field_18) { case 0: case 3: - gUnknown_02024A72[gLinkPlayers[i].lp_field_18] = 1; - gUnknown_02024A6A[gLinkPlayers[i].lp_field_18] = 0; + gBanksBySide[gLinkPlayers[i].lp_field_18] = 1; + gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0; break; case 1: case 2: - gUnknown_02024A72[gLinkPlayers[i].lp_field_18] = 3; - gUnknown_02024A6A[gLinkPlayers[i].lp_field_18] = 3; + gBanksBySide[gLinkPlayers[i].lp_field_18] = 3; + gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3; break; } } } } - gUnknown_02024A68 = 4; + gNoOfAllBanks = 4; } void sub_800BD54(void) @@ -299,20 +280,20 @@ void sub_800BD54(void) if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - for (i = 0; i < gUnknown_02024A68; i++) + for (i = 0; i < gNoOfAllBanks; i++) { for (j = 0; j < 6; j++) { if (i < 2) { - if (!(gUnknown_02024A72[i] & 1)) + if (!(gBanksBySide[i] & 1)) { if (GetMonData(&gPlayerParty[j], MON_DATA_HP) != 0 && GetMonData(&gPlayerParty[j], MON_DATA_SPECIES2) != 0 && GetMonData(&gPlayerParty[j], MON_DATA_SPECIES2) != SPECIES_EGG && GetMonData(&gPlayerParty[j], MON_DATA_IS_EGG) == 0) { - gUnknown_02024A6A[i] = j; + gBattlePartyID[i] = j; break; } } @@ -323,22 +304,22 @@ void sub_800BD54(void) && GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != SPECIES_EGG && GetMonData(&gEnemyParty[j], MON_DATA_IS_EGG) == 0) { - gUnknown_02024A6A[i] = j; + gBattlePartyID[i] = j; break; } } } else { - if (!(gUnknown_02024A72[i] & 1)) + if (!(gBanksBySide[i] & 1)) { if (GetMonData(&gPlayerParty[j], MON_DATA_HP) != 0 && GetMonData(&gPlayerParty[j], MON_DATA_SPECIES) != 0 //Probably a typo by Game Freak. The rest use SPECIES2 && GetMonData(&gPlayerParty[j], MON_DATA_SPECIES2) != SPECIES_EGG && GetMonData(&gPlayerParty[j], MON_DATA_IS_EGG) == 0 - && gUnknown_02024A6A[i - 2] != j) + && gBattlePartyID[i - 2] != j) { - gUnknown_02024A6A[i] = j; + gBattlePartyID[i] = j; break; } } @@ -348,9 +329,9 @@ void sub_800BD54(void) && GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != 0 && GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != SPECIES_EGG && GetMonData(&gEnemyParty[j], MON_DATA_IS_EGG) == 0 - && gUnknown_02024A6A[i - 2] != j) + && gBattlePartyID[i - 2] != j) { - gUnknown_02024A6A[i] = j; + gBattlePartyID[i] = j; break; } } @@ -375,14 +356,14 @@ void dp01_prepare_buffer(u8 a, u8 *b, u16 c) case 0: for (i = 0; i < c; i++) { - gUnknown_02023A60[gUnknown_02024A60][i] = *b; + gBattleBufferA[gActiveBank][i] = *b; b++; } break; case 1: for (i = 0; i < c; i++) { - gUnknown_02024260[gUnknown_02024A60][i] = *b; + gBattleBufferB[gActiveBank][i] = *b; b++; } break; @@ -419,13 +400,13 @@ void dp01_prepare_buffer_wireless_probably(u8 a, u16 b, u8 *c) gTasks[gUnknown_020238C4].data[14] = 0; } unk_2000000[gTasks[gUnknown_020238C4].data[14] + 0x14000] = a; - unk_2000000[gTasks[gUnknown_020238C4].data[14] + 0x14001] = gUnknown_02024A60; - unk_2000000[gTasks[gUnknown_020238C4].data[14] + 0x14002] = gPlayerMonIndex; - unk_2000000[gTasks[gUnknown_020238C4].data[14] + 0x14003] = gEnemyMonIndex; + unk_2000000[gTasks[gUnknown_020238C4].data[14] + 0x14001] = gActiveBank; + unk_2000000[gTasks[gUnknown_020238C4].data[14] + 0x14002] = gBankAttacker; + unk_2000000[gTasks[gUnknown_020238C4].data[14] + 0x14003] = gBankTarget; unk_2000000[gTasks[gUnknown_020238C4].data[14] + 0x14004] = r9; unk_2000000[gTasks[gUnknown_020238C4].data[14] + 0x14005] = (r9 & 0x0000FF00) >> 8; - unk_2000000[gTasks[gUnknown_020238C4].data[14] + 0x14006] = gUnknown_02024C0C; - unk_2000000[gTasks[gUnknown_020238C4].data[14] + 0x14007] = gUnknown_02024C0A; + unk_2000000[gTasks[gUnknown_020238C4].data[14] + 0x14006] = gAbsentBankFlags; + unk_2000000[gTasks[gUnknown_020238C4].data[14] + 0x14007] = gEffectBank; for (i = 0; i < b; i++) unk_2000000[gTasks[gUnknown_020238C4].data[14] + 0x14008 + i] = c[i]; gTasks[gUnknown_020238C4].data[14] = gTasks[gUnknown_020238C4].data[14] + r9 + 8; @@ -557,235 +538,235 @@ void sub_800C47C(u8 taskId) switch (unk_2000000[0x15000 + gTasks[taskId].data[15] + 0]) { case 0: - if (gUnknown_02024A64 & gBitTable[r4]) + if (gBattleExecBuffer & gBitTable[r4]) return; - memcpy(gUnknown_02023A60[r4], &unk_2000000[0x15000 + gTasks[taskId].data[15] + 8], r7); + memcpy(gBattleBufferA[r4], &unk_2000000[0x15000 + gTasks[taskId].data[15] + 8], r7); sub_80155A4(r4); if (!(gBattleTypeFlags & BATTLE_TYPE_WILD)) { - gPlayerMonIndex = unk_2000000[0x15000 + gTasks[taskId].data[15] + 2]; - gEnemyMonIndex = unk_2000000[0x15000 + gTasks[taskId].data[15] + 3]; - gUnknown_02024C0C = unk_2000000[0x15000 + gTasks[taskId].data[15] + 6]; - gUnknown_02024C0A = unk_2000000[0x15000 + gTasks[taskId].data[15] + 7]; + gBankAttacker = unk_2000000[0x15000 + gTasks[taskId].data[15] + 2]; + gBankTarget = unk_2000000[0x15000 + gTasks[taskId].data[15] + 3]; + gAbsentBankFlags = unk_2000000[0x15000 + gTasks[taskId].data[15] + 6]; + gEffectBank = unk_2000000[0x15000 + gTasks[taskId].data[15] + 7]; } break; case 1: - memcpy(gUnknown_02024260[r4], &unk_2000000[0x15000 + gTasks[taskId].data[15] + 8], r7); + memcpy(gBattleBufferB[r4], &unk_2000000[0x15000 + gTasks[taskId].data[15] + 8], r7); break; case 2: r2 = unk_2000000[0x15000 + gTasks[taskId].data[15] + 8]; - gUnknown_02024A64 &= ~(gBitTable[r4] << (r2 * 4)); + gBattleExecBuffer &= ~(gBitTable[r4] << (r2 * 4)); break; } gTasks[taskId].data[15] = gTasks[taskId].data[15] + r7 + 8; } } -void dp01_build_cmdbuf_x00_a_b_0(u8 a, u8 b, u8 c) +void EmitGetAttributes(u8 a, u8 b, u8 c) { - gUnknown_03004040[0] = 0; - gUnknown_03004040[1] = b; - gUnknown_03004040[2] = c; - gUnknown_03004040[3] = 0; - dp01_prepare_buffer(a, gUnknown_03004040, 4); + gBattleBuffersTransferData[0] = 0; + gBattleBuffersTransferData[1] = b; + gBattleBuffersTransferData[2] = c; + gBattleBuffersTransferData[3] = 0; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 4); } void dp01_build_cmdbuf_x01_a_b_0(u8 a, u8 b, u8 c) { - gUnknown_03004040[0] = 1; - gUnknown_03004040[1] = b; - gUnknown_03004040[2] = c; - gUnknown_03004040[3] = 0; - dp01_prepare_buffer(a, gUnknown_03004040, 4); + gBattleBuffersTransferData[0] = 1; + gBattleBuffersTransferData[1] = b; + gBattleBuffersTransferData[2] = c; + gBattleBuffersTransferData[3] = 0; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 4); } -void dp01_build_cmdbuf_x02_a_b_varargs(u8 a, u8 b, u8 c, u8 d, u8 *e) +void EmitSetAttributes(u8 a, u8 b, u8 c, u8 d, u8 *e) { int i; - gUnknown_03004040[0] = 2; - gUnknown_03004040[1] = b; - gUnknown_03004040[2] = c; + gBattleBuffersTransferData[0] = 2; + gBattleBuffersTransferData[1] = b; + gBattleBuffersTransferData[2] = c; for (i = 0; i < d; i++) - gUnknown_03004040[3 + i] = *(e++); - dp01_prepare_buffer(a, gUnknown_03004040, d + 3); + gBattleBuffersTransferData[3 + i] = *(e++); + dp01_prepare_buffer(a, gBattleBuffersTransferData, d + 3); } void unref_sub_800C6A4(u8 a, u8 b, u8 c, u8 *d) { int i; - gUnknown_03004040[0] = 3; - gUnknown_03004040[1] = b; - gUnknown_03004040[2] = c; + gBattleBuffersTransferData[0] = 3; + gBattleBuffersTransferData[1] = b; + gBattleBuffersTransferData[2] = c; for (i = 0; i < c; i++) - gUnknown_03004040[3 + i] = *(d++); - dp01_prepare_buffer(a, gUnknown_03004040, c + 3); + gBattleBuffersTransferData[3 + i] = *(d++); + dp01_prepare_buffer(a, gBattleBuffersTransferData, c + 3); } void dp01_build_cmdbuf_x04_4_4_4(u8 a) { - gUnknown_03004040[0] = 4; - gUnknown_03004040[1] = 4; - gUnknown_03004040[2] = 4; - gUnknown_03004040[3] = 4; - dp01_prepare_buffer(a, gUnknown_03004040, 4); + gBattleBuffersTransferData[0] = 4; + gBattleBuffersTransferData[1] = 4; + gBattleBuffersTransferData[2] = 4; + gBattleBuffersTransferData[3] = 4; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 4); } void sub_800C704(u8 a, u8 b, u8 c) { - gUnknown_03004040[0] = 5; - gUnknown_03004040[1] = b; - gUnknown_03004040[2] = c; - gUnknown_03004040[3] = 5; - dp01_prepare_buffer(a, gUnknown_03004040, 4); + gBattleBuffersTransferData[0] = 5; + gBattleBuffersTransferData[1] = b; + gBattleBuffersTransferData[2] = c; + gBattleBuffersTransferData[3] = 5; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 4); } void dp01_build_cmdbuf_x06_a(u8 a, u8 b) { - gUnknown_03004040[0] = 6; - gUnknown_03004040[1] = b; - dp01_prepare_buffer(a, gUnknown_03004040, 2); + gBattleBuffersTransferData[0] = 6; + gBattleBuffersTransferData[1] = b; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 2); } void dp01_build_cmdbuf_x07_7_7_7(u8 a) { - gUnknown_03004040[0] = 7; - gUnknown_03004040[1] = 7; - gUnknown_03004040[2] = 7; - gUnknown_03004040[3] = 7; - dp01_prepare_buffer(a, gUnknown_03004040, 4); + gBattleBuffersTransferData[0] = 7; + gBattleBuffersTransferData[1] = 7; + gBattleBuffersTransferData[2] = 7; + gBattleBuffersTransferData[3] = 7; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 4); } void dp01_build_cmdbuf_x08_8_8_8(u8 a) { - gUnknown_03004040[0] = 8; - gUnknown_03004040[1] = 8; - gUnknown_03004040[2] = 8; - gUnknown_03004040[3] = 8; - dp01_prepare_buffer(a, gUnknown_03004040, 4); + gBattleBuffersTransferData[0] = 8; + gBattleBuffersTransferData[1] = 8; + gBattleBuffersTransferData[2] = 8; + gBattleBuffersTransferData[3] = 8; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 4); } void dp01_build_cmdbuf_x09_9_9_9(u8 a) { - gUnknown_03004040[0] = 9; - gUnknown_03004040[1] = 9; - gUnknown_03004040[2] = 9; - gUnknown_03004040[3] = 9; - dp01_prepare_buffer(a, gUnknown_03004040, 4); + gBattleBuffersTransferData[0] = 9; + gBattleBuffersTransferData[1] = 9; + gBattleBuffersTransferData[2] = 9; + gBattleBuffersTransferData[3] = 9; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 4); } -void dp01_build_cmdbuf_x0A_A_A_A(u8 a) +void EmitFaintAnimation(u8 a) { - gUnknown_03004040[0] = 10; - gUnknown_03004040[1] = 10; - gUnknown_03004040[2] = 10; - gUnknown_03004040[3] = 10; - dp01_prepare_buffer(a, gUnknown_03004040, 4); + gBattleBuffersTransferData[0] = 10; + gBattleBuffersTransferData[1] = 10; + gBattleBuffersTransferData[2] = 10; + gBattleBuffersTransferData[3] = 10; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 4); } void dp01_build_cmdbuf_x0B_B_B_B(u8 a) { - gUnknown_03004040[0] = 11; - gUnknown_03004040[1] = 11; - gUnknown_03004040[2] = 11; - gUnknown_03004040[3] = 11; - dp01_prepare_buffer(a, gUnknown_03004040, 4); + gBattleBuffersTransferData[0] = 11; + gBattleBuffersTransferData[1] = 11; + gBattleBuffersTransferData[2] = 11; + gBattleBuffersTransferData[3] = 11; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 4); } void dp01_build_cmdbuf_x0C_C_C_C(u8 a) { - gUnknown_03004040[0] = 12; - gUnknown_03004040[1] = 12; - gUnknown_03004040[2] = 12; - gUnknown_03004040[3] = 12; - dp01_prepare_buffer(a, gUnknown_03004040, 4); + gBattleBuffersTransferData[0] = 12; + gBattleBuffersTransferData[1] = 12; + gBattleBuffersTransferData[2] = 12; + gBattleBuffersTransferData[3] = 12; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 4); } void dp01_build_cmdbuf_x0D_a(u8 a, u8 b) { - gUnknown_03004040[0] = 13; - gUnknown_03004040[1] = b; - dp01_prepare_buffer(a, gUnknown_03004040, 2); + gBattleBuffersTransferData[0] = 13; + gBattleBuffersTransferData[1] = b; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 2); } void unref_sub_800C828(u8 a, u8 b, u8 *c) { int i; - gUnknown_03004040[0] = 14; - gUnknown_03004040[1] = b; + gBattleBuffersTransferData[0] = 14; + gBattleBuffersTransferData[1] = b; for (i = 0; i < b * 3; i++) - gUnknown_03004040[2 + i] = *(c++); - dp01_prepare_buffer(a, gUnknown_03004040, b * 3 + 2); -} - -void dp01_build_cmdbuf_x0F_aa_b_cc_dddd_e_mlc_weather_00_x1Cbytes(u8 a, u16 b, u8 c, u16 d, s32 e, u8 f, u8 *g) -{ - gUnknown_03004040[0] = 15; - gUnknown_03004040[1] = b; - gUnknown_03004040[2] = (b & 0xFF00) >> 8; - gUnknown_03004040[3] = c; - gUnknown_03004040[4] = d; - gUnknown_03004040[5] = (d & 0xFF00) >> 8; - gUnknown_03004040[6] = e; - gUnknown_03004040[7] = (e & 0x0000FF00) >> 8; - gUnknown_03004040[8] = (e & 0x00FF0000) >> 16; - gUnknown_03004040[9] = (e & 0xFF000000) >> 24; - gUnknown_03004040[10] = f; - gUnknown_03004040[11] = gUnknown_02024C0E; - if (sub_8018324(14, 0, 13, 0, 0) == 0 && sub_8018324(14, 0, 0x4D, 0, 0) == 0) + gBattleBuffersTransferData[2 + i] = *(c++); + dp01_prepare_buffer(a, gBattleBuffersTransferData, b * 3 + 2); +} + +void EmitMoveAnimation(u8 a, u16 b, u8 c, u16 d, s32 e, u8 f, u8 *g) +{ + gBattleBuffersTransferData[0] = 15; + gBattleBuffersTransferData[1] = b; + gBattleBuffersTransferData[2] = (b & 0xFF00) >> 8; + gBattleBuffersTransferData[3] = c; + gBattleBuffersTransferData[4] = d; + gBattleBuffersTransferData[5] = (d & 0xFF00) >> 8; + gBattleBuffersTransferData[6] = e; + gBattleBuffersTransferData[7] = (e & 0x0000FF00) >> 8; + gBattleBuffersTransferData[8] = (e & 0x00FF0000) >> 16; + gBattleBuffersTransferData[9] = (e & 0xFF000000) >> 24; + gBattleBuffersTransferData[10] = f; + gBattleBuffersTransferData[11] = gMultiHitCounter; + if (AbilityBattleEffects(14, 0, 13, 0, 0) == 0 && AbilityBattleEffects(14, 0, 0x4D, 0, 0) == 0) { - gUnknown_03004040[12] = gBattleWeather; - gUnknown_03004040[13] = (gBattleWeather & 0xFF00) >> 8; + gBattleBuffersTransferData[12] = gBattleWeather; + gBattleBuffersTransferData[13] = (gBattleWeather & 0xFF00) >> 8; } else { - gUnknown_03004040[12] = 0; - gUnknown_03004040[13] = 0; + gBattleBuffersTransferData[12] = 0; + gBattleBuffersTransferData[13] = 0; } - gUnknown_03004040[14] = 0; - gUnknown_03004040[15] = 0; - memcpy(&gUnknown_03004040[16], g, 0x1C); - dp01_prepare_buffer(a, gUnknown_03004040, 0x2C); + gBattleBuffersTransferData[14] = 0; + gBattleBuffersTransferData[15] = 0; + memcpy(&gBattleBuffersTransferData[16], g, 0x1C); + dp01_prepare_buffer(a, gBattleBuffersTransferData, 0x2C); } #ifdef NONMATCHING -void dp01_build_cmdbuf_x10_TODO(u8 a, u16 b) +void EmitPrintString(u8 a, u16 b) { int i; //u16 *r12; - gUnknown_03004040[0] = 16; - gUnknown_03004040[1] = gUnknown_02024D26; - gUnknown_03004040[2] = b; - gUnknown_03004040[3] = (b & 0xFF00) >> 8; - - *((u16 *)&gUnknown_03004040[4]) = gUnknown_02024BE6; - *((u16 *)&gUnknown_03004040[6]) = gUnknown_02024BE8; - *((u16 *)&gUnknown_03004040[8]) = gUnknown_02024C04; - - gUnknown_03004040[10] = byte_2024C06; - gUnknown_03004040[11] = unk_2000000[0x16000 + 3]; - gUnknown_03004040[12] = unk_2000000[0x16000 + 0x5E]; - gUnknown_03004040[13] = unk_2000000[0x16000 + 0xC1]; - gUnknown_03004040[14] = gUnknown_02024C0B; - gUnknown_03004040[15] = gBattleMoves[gUnknown_02024BE6].type; + gBattleBuffersTransferData[0] = 16; + gBattleBuffersTransferData[1] = gBattleOutcome; + gBattleBuffersTransferData[2] = b; + gBattleBuffersTransferData[3] = (b & 0xFF00) >> 8; + + *((u16 *)&gBattleBuffersTransferData[4]) = gCurrentMove; + *((u16 *)&gBattleBuffersTransferData[6]) = gUnknown_02024BE8; + *((u16 *)&gBattleBuffersTransferData[8]) = gLastUsedItem; + + gBattleBuffersTransferData[10] = gLastUsedAbility; + gBattleBuffersTransferData[11] = unk_2000000[0x16000 + 3]; + gBattleBuffersTransferData[12] = unk_2000000[0x16000 + 0x5E]; + gBattleBuffersTransferData[13] = unk_2000000[0x16000 + 0xC1]; + gBattleBuffersTransferData[14] = gStringBank; + gBattleBuffersTransferData[15] = gBattleMoves[gCurrentMove].type; for (i = 0; i < 4; i++) { - gUnknown_03004040[16 + i] = gBattleMons[i].ability; + gBattleBuffersTransferData[16 + i] = gBattleMons[i].ability; } for (i = 0; i < 16; i++) { - gUnknown_03004040[20 + i] = gUnknown_030041C0[i]; - gUnknown_03004040[36 + i] = gUnknown_03004290[i]; - gUnknown_03004040[52 + i] = gUnknown_030042B0[i]; + gBattleBuffersTransferData[20 + i] = gBattleTextBuff1[i]; + gBattleBuffersTransferData[36 + i] = gBattleTextBuff2[i]; + gBattleBuffersTransferData[52 + i] = gBattleTextBuff3[i]; } - dp01_prepare_buffer(a, gUnknown_03004040, 0x44); + dp01_prepare_buffer(a, gBattleBuffersTransferData, 0x44); } #else __attribute__((naked)) -void dp01_build_cmdbuf_x10_TODO(u8 a, u16 b) +void EmitPrintString(u8 a, u16 b) { asm(".syntax unified\n\ push {r4-r7,lr}\n\ @@ -798,10 +779,10 @@ void dp01_build_cmdbuf_x10_TODO(u8 a, u16 b) mov r10, r0\n\ lsls r1, 16\n\ lsrs r1, 16\n\ - ldr r2, _0800CA2C @ =gUnknown_03004040\n\ + ldr r2, _0800CA2C @ =gBattleBuffersTransferData\n\ movs r0, 0x10\n\ strb r0, [r2]\n\ - ldr r0, _0800CA30 @ =gUnknown_02024D26\n\ + ldr r0, _0800CA30 @ =gBattleOutcome\n\ ldrb r0, [r0]\n\ strb r0, [r2, 0x1]\n\ strb r1, [r2, 0x2]\n\ @@ -809,17 +790,17 @@ void dp01_build_cmdbuf_x10_TODO(u8 a, u16 b) strb r1, [r2, 0x3]\n\ adds r0, r2, 0x4\n\ mov r12, r0\n\ - ldr r4, _0800CA34 @ =gUnknown_02024BE6\n\ + ldr r4, _0800CA34 @ =gCurrentMove\n\ ldrh r0, [r4]\n\ strh r0, [r2, 0x4]\n\ ldr r0, _0800CA38 @ =gUnknown_02024BE8\n\ ldrh r0, [r0]\n\ mov r1, r12\n\ strh r0, [r1, 0x2]\n\ - ldr r0, _0800CA3C @ =gUnknown_02024C04\n\ + ldr r0, _0800CA3C @ =gLastUsedItem\n\ ldrh r0, [r0]\n\ strh r0, [r1, 0x4]\n\ - ldr r0, _0800CA40 @ =byte_2024C06\n\ + ldr r0, _0800CA40 @ =gLastUsedAbility\n\ ldrb r0, [r0]\n\ strb r0, [r1, 0x6]\n\ ldr r1, _0800CA44 @ =0x02000000\n\ @@ -837,7 +818,7 @@ void dp01_build_cmdbuf_x10_TODO(u8 a, u16 b) ldrb r0, [r1]\n\ mov r1, r12\n\ strb r0, [r1, 0x9]\n\ - ldr r0, _0800CA50 @ =gUnknown_02024C0B\n\ + ldr r0, _0800CA50 @ =gStringBank\n\ ldrb r0, [r0]\n\ strb r0, [r1, 0xA]\n\ ldr r3, _0800CA54 @ =gBattleMoves\n\ @@ -851,7 +832,7 @@ void dp01_build_cmdbuf_x10_TODO(u8 a, u16 b) strb r0, [r3, 0xB]\n\ movs r3, 0\n\ mov r9, r2\n\ - ldr r7, _0800CA58 @ =gUnknown_030042B0\n\ + ldr r7, _0800CA58 @ =gBattleTextBuff3\n\ mov r8, r7\n\ adds r2, 0x10\n\ ldr r0, _0800CA5C @ =gBattleMons\n\ @@ -870,12 +851,12 @@ _0800C9D2:\n\ adds r5, 0x10\n\ mov r4, r12\n\ adds r4, 0x20\n\ - ldr r6, _0800CA60 @ =gUnknown_03004290\n\ + ldr r6, _0800CA60 @ =gBattleTextBuff2\n\ mov r2, r12\n\ adds r2, 0x30\n\ _0800C9F0:\n\ adds r1, r5, r3\n\ - ldr r7, _0800CA64 @ =gUnknown_030041C0\n\ + ldr r7, _0800CA64 @ =gBattleTextBuff1\n\ adds r0, r3, r7\n\ ldrb r0, [r0]\n\ strb r0, [r1]\n\ @@ -903,27 +884,27 @@ _0800C9F0:\n\ pop {r0}\n\ bx r0\n\ .align 2, 0\n\ -_0800CA2C: .4byte gUnknown_03004040\n\ -_0800CA30: .4byte gUnknown_02024D26\n\ -_0800CA34: .4byte gUnknown_02024BE6\n\ +_0800CA2C: .4byte gBattleBuffersTransferData\n\ +_0800CA30: .4byte gBattleOutcome\n\ +_0800CA34: .4byte gCurrentMove\n\ _0800CA38: .4byte gUnknown_02024BE8\n\ -_0800CA3C: .4byte gUnknown_02024C04\n\ -_0800CA40: .4byte byte_2024C06\n\ +_0800CA3C: .4byte gLastUsedItem\n\ +_0800CA40: .4byte gLastUsedAbility\n\ _0800CA44: .4byte 0x02000000\n\ _0800CA48: .4byte 0x00016003\n\ _0800CA4C: .4byte 0x000160c1\n\ -_0800CA50: .4byte gUnknown_02024C0B\n\ +_0800CA50: .4byte gStringBank\n\ _0800CA54: .4byte gBattleMoves\n\ -_0800CA58: .4byte gUnknown_030042B0\n\ +_0800CA58: .4byte gBattleTextBuff3\n\ _0800CA5C: .4byte gBattleMons\n\ -_0800CA60: .4byte gUnknown_03004290\n\ -_0800CA64: .4byte gUnknown_030041C0\n\ +_0800CA60: .4byte gBattleTextBuff2\n\ +_0800CA64: .4byte gBattleTextBuff1\n\ .syntax divided\n"); } #endif __attribute__((naked)) -void dp01_build_cmdbuf_x11_TODO() +void EmitPrintStringPlayerOnly() { asm(".syntax unified\n\ push {r4-r7,lr}\n\ @@ -936,7 +917,7 @@ void dp01_build_cmdbuf_x11_TODO() mov r10, r0\n\ lsls r1, 16\n\ lsrs r1, 16\n\ - ldr r2, _0800CB28 @ =gUnknown_03004040\n\ + ldr r2, _0800CB28 @ =gBattleBuffersTransferData\n\ movs r0, 0x11\n\ strb r0, [r2]\n\ strb r0, [r2, 0x1]\n\ @@ -945,17 +926,17 @@ void dp01_build_cmdbuf_x11_TODO() strb r1, [r2, 0x3]\n\ adds r0, r2, 0x4\n\ mov r12, r0\n\ - ldr r0, _0800CB2C @ =gUnknown_02024BE6\n\ + ldr r0, _0800CB2C @ =gCurrentMove\n\ ldrh r0, [r0]\n\ strh r0, [r2, 0x4]\n\ ldr r0, _0800CB30 @ =gUnknown_02024BE8\n\ ldrh r0, [r0]\n\ mov r1, r12\n\ strh r0, [r1, 0x2]\n\ - ldr r0, _0800CB34 @ =gUnknown_02024C04\n\ + ldr r0, _0800CB34 @ =gLastUsedItem\n\ ldrh r0, [r0]\n\ strh r0, [r1, 0x4]\n\ - ldr r0, _0800CB38 @ =byte_2024C06\n\ + ldr r0, _0800CB38 @ =gLastUsedAbility\n\ ldrb r0, [r0]\n\ strb r0, [r1, 0x6]\n\ ldr r0, _0800CB3C @ =0x02000000\n\ @@ -970,7 +951,7 @@ void dp01_build_cmdbuf_x11_TODO() strb r0, [r7, 0x8]\n\ movs r3, 0\n\ mov r9, r2\n\ - ldr r7, _0800CB48 @ =gUnknown_030042B0\n\ + ldr r7, _0800CB48 @ =gBattleTextBuff3\n\ mov r8, r7\n\ mov r4, r9\n\ adds r4, 0x10\n\ @@ -990,12 +971,12 @@ _0800CACE:\n\ adds r5, 0x10\n\ mov r4, r12\n\ adds r4, 0x20\n\ - ldr r6, _0800CB50 @ =gUnknown_03004290\n\ + ldr r6, _0800CB50 @ =gBattleTextBuff2\n\ mov r2, r12\n\ adds r2, 0x30\n\ _0800CAEC:\n\ adds r1, r5, r3\n\ - ldr r7, _0800CB54 @ =gUnknown_030041C0\n\ + ldr r7, _0800CB54 @ =gBattleTextBuff1\n\ adds r0, r3, r7\n\ ldrb r0, [r0]\n\ strb r0, [r1]\n\ @@ -1023,384 +1004,384 @@ _0800CAEC:\n\ pop {r0}\n\ bx r0\n\ .align 2, 0\n\ -_0800CB28: .4byte gUnknown_03004040\n\ -_0800CB2C: .4byte gUnknown_02024BE6\n\ +_0800CB28: .4byte gBattleBuffersTransferData\n\ +_0800CB2C: .4byte gCurrentMove\n\ _0800CB30: .4byte gUnknown_02024BE8\n\ -_0800CB34: .4byte gUnknown_02024C04\n\ -_0800CB38: .4byte byte_2024C06\n\ +_0800CB34: .4byte gLastUsedItem\n\ +_0800CB38: .4byte gLastUsedAbility\n\ _0800CB3C: .4byte 0x02000000\n\ _0800CB40: .4byte 0x00016003\n\ _0800CB44: .4byte 0x0001605e\n\ -_0800CB48: .4byte gUnknown_030042B0\n\ +_0800CB48: .4byte gBattleTextBuff3\n\ _0800CB4C: .4byte gBattleMons\n\ -_0800CB50: .4byte gUnknown_03004290\n\ -_0800CB54: .4byte gUnknown_030041C0\n\ +_0800CB50: .4byte gBattleTextBuff2\n\ +_0800CB54: .4byte gBattleTextBuff1\n\ .syntax divided\n"); } void dp01_build_cmdbuf_x12_a_bb(u8 a, u8 b, u16 c) { - gUnknown_03004040[0] = 18; - gUnknown_03004040[1] = b; - gUnknown_03004040[2] = c; - gUnknown_03004040[3] = (c & 0xFF00) >> 8; - dp01_prepare_buffer(a, gUnknown_03004040, 4); + gBattleBuffersTransferData[0] = 18; + gBattleBuffersTransferData[1] = b; + gBattleBuffersTransferData[2] = c; + gBattleBuffersTransferData[3] = (c & 0xFF00) >> 8; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 4); } void unref_sub_800CB84(u8 a, u8 b) { - gUnknown_03004040[0] = 19; - gUnknown_03004040[1] = b; - dp01_prepare_buffer(a, gUnknown_03004040, 2); + gBattleBuffersTransferData[0] = 19; + gBattleBuffersTransferData[1] = b; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 2); } void sub_800CBA4(u8 a, u8 b, u8 c, u8 *d) { u32 i; - gUnknown_03004040[0] = 20; - gUnknown_03004040[1] = b; - gUnknown_03004040[2] = c; - gUnknown_03004040[3] = 0; + gBattleBuffersTransferData[0] = 20; + gBattleBuffersTransferData[1] = b; + gBattleBuffersTransferData[2] = c; + gBattleBuffersTransferData[3] = 0; for (i = 0; i < 20; i++) - gUnknown_03004040[4 + i] = d[i]; - dp01_prepare_buffer(a, gUnknown_03004040, 24); + gBattleBuffersTransferData[4 + i] = d[i]; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 24); } void sub_800CBE0(u8 a, u8 *b) { int i; - gUnknown_03004040[0] = 21; + gBattleBuffersTransferData[0] = 21; for (i = 0; i < 3; i++) - gUnknown_03004040[1 + i] = b[i]; - dp01_prepare_buffer(a, gUnknown_03004040, 4); + gBattleBuffersTransferData[1 + i] = b[i]; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 4); } void dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f(u8 a, u8 b, u8 c, u8 d, u8 *e) { int i; - gUnknown_03004040[0] = 22; - gUnknown_03004040[1] = b; - gUnknown_03004040[2] = c; - gUnknown_03004040[3] = d; + gBattleBuffersTransferData[0] = 22; + gBattleBuffersTransferData[1] = b; + gBattleBuffersTransferData[2] = c; + gBattleBuffersTransferData[3] = d; for (i = 0; i < 3; i++) - gUnknown_03004040[4 + i] = e[i]; - dp01_prepare_buffer(a, gUnknown_03004040, 8); //but only 7 bytes were written + gBattleBuffersTransferData[4 + i] = e[i]; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 8); //but only 7 bytes were written } void dp01_build_cmdbuf_x17_17_17_17(u8 a) { - gUnknown_03004040[0] = 23; - gUnknown_03004040[1] = 23; - gUnknown_03004040[2] = 23; - gUnknown_03004040[3] = 23; - dp01_prepare_buffer(a, gUnknown_03004040, 4); + gBattleBuffersTransferData[0] = 23; + gBattleBuffersTransferData[1] = 23; + gBattleBuffersTransferData[2] = 23; + gBattleBuffersTransferData[3] = 23; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 4); } -void dp01_build_cmdbuf_x18_0_aa_health_bar_update(u8 a, s16 b) +void EmitHealthBarUpdate(u8 a, s16 b) { - gUnknown_03004040[0] = 24; - gUnknown_03004040[1] = 0; - gUnknown_03004040[2] = b; - gUnknown_03004040[3] = (b & 0xFF00) >> 8; - dp01_prepare_buffer(a, gUnknown_03004040, 4); + gBattleBuffersTransferData[0] = 24; + gBattleBuffersTransferData[1] = 0; + gBattleBuffersTransferData[2] = b; + gBattleBuffersTransferData[3] = (b & 0xFF00) >> 8; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 4); } -void dp01_build_cmdbuf_x19_a_bb(u8 a, u8 b, s16 c) +void EmitExpBarUpdate(u8 a, u8 b, s16 c) { - gUnknown_03004040[0] = 25; - gUnknown_03004040[1] = b; - gUnknown_03004040[2] = c; - gUnknown_03004040[3] = (c & 0xFF00) >> 8; - dp01_prepare_buffer(a, gUnknown_03004040, 4); + gBattleBuffersTransferData[0] = 25; + gBattleBuffersTransferData[1] = b; + gBattleBuffersTransferData[2] = c; + gBattleBuffersTransferData[3] = (c & 0xFF00) >> 8; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 4); } -void dp01_build_cmdbuf_x1A_aaaa_bbbb(u8 a, u32 b, u32 c) +void EmitStatusIconUpdate(u8 a, u32 b, u32 c) { - gUnknown_03004040[0] = 26; - gUnknown_03004040[1] = b; - gUnknown_03004040[2] = (b & 0x0000FF00) >> 8; - gUnknown_03004040[3] = (b & 0x00FF0000) >> 16; - gUnknown_03004040[4] = (b & 0xFF000000) >> 24; - gUnknown_03004040[5] = c; - gUnknown_03004040[6] = (c & 0x0000FF00) >> 8; - gUnknown_03004040[7] = (c & 0x00FF0000) >> 16; - gUnknown_03004040[8] = (c & 0xFF000000) >> 24; - dp01_prepare_buffer(a, gUnknown_03004040, 9); + gBattleBuffersTransferData[0] = 26; + gBattleBuffersTransferData[1] = b; + gBattleBuffersTransferData[2] = (b & 0x0000FF00) >> 8; + gBattleBuffersTransferData[3] = (b & 0x00FF0000) >> 16; + gBattleBuffersTransferData[4] = (b & 0xFF000000) >> 24; + gBattleBuffersTransferData[5] = c; + gBattleBuffersTransferData[6] = (c & 0x0000FF00) >> 8; + gBattleBuffersTransferData[7] = (c & 0x00FF0000) >> 16; + gBattleBuffersTransferData[8] = (c & 0xFF000000) >> 24; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 9); } -void dp01_build_cmdbuf_x1B_aaaa_b(u8 a, u8 b, u32 c) +void EmitStatusAnimation(u8 a, u8 b, u32 c) { - gUnknown_03004040[0] = 27; - gUnknown_03004040[1] = b; - gUnknown_03004040[2] = c; - gUnknown_03004040[3] = (c & 0x0000FF00) >> 8; - gUnknown_03004040[4] = (c & 0x00FF0000) >> 16; - gUnknown_03004040[5] = (c & 0xFF000000) >> 24; - dp01_prepare_buffer(a, gUnknown_03004040, 6); + gBattleBuffersTransferData[0] = 27; + gBattleBuffersTransferData[1] = b; + gBattleBuffersTransferData[2] = c; + gBattleBuffersTransferData[3] = (c & 0x0000FF00) >> 8; + gBattleBuffersTransferData[4] = (c & 0x00FF0000) >> 16; + gBattleBuffersTransferData[5] = (c & 0xFF000000) >> 24; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 6); } -void dp01_build_cmdbuf_x1C_a(u8 a, u8 b) +void EmitStatusXor(u8 a, u8 b) { - gUnknown_03004040[0] = 28; - gUnknown_03004040[1] = b; - dp01_prepare_buffer(a, gUnknown_03004040, 2); + gBattleBuffersTransferData[0] = 28; + gBattleBuffersTransferData[1] = b; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 2); } void dp01_build_cmdbuf_x1D_1D_numargs_varargs(u8 a, u16 b, u8 *c) { int i; - gUnknown_03004040[0] = 29; - gUnknown_03004040[1] = 29; - gUnknown_03004040[2] = b; - gUnknown_03004040[3] = (b & 0xFF00) >> 8; + gBattleBuffersTransferData[0] = 29; + gBattleBuffersTransferData[1] = 29; + gBattleBuffersTransferData[2] = b; + gBattleBuffersTransferData[3] = (b & 0xFF00) >> 8; for (i = 0; i < b; i++) - gUnknown_03004040[4 + i] = *(c++); - dp01_prepare_buffer(a, gUnknown_03004040, b + 4); + gBattleBuffersTransferData[4 + i] = *(c++); + dp01_prepare_buffer(a, gBattleBuffersTransferData, b + 4); } void unref_sub_800CDD4(u8 a, u32 b, u16 c, u8 *d) { int i; - gUnknown_03004040[0] = 30; - gUnknown_03004040[1] = b; - gUnknown_03004040[2] = (b & 0x0000FF00) >> 8; - gUnknown_03004040[3] = (b & 0x00FF0000) >> 16; - gUnknown_03004040[4] = (b & 0xFF000000) >> 24; - gUnknown_03004040[5] = c; - gUnknown_03004040[6] = (c & 0xFF00) >> 8; + gBattleBuffersTransferData[0] = 30; + gBattleBuffersTransferData[1] = b; + gBattleBuffersTransferData[2] = (b & 0x0000FF00) >> 8; + gBattleBuffersTransferData[3] = (b & 0x00FF0000) >> 16; + gBattleBuffersTransferData[4] = (b & 0xFF000000) >> 24; + gBattleBuffersTransferData[5] = c; + gBattleBuffersTransferData[6] = (c & 0xFF00) >> 8; for (i = 0; i < c; i++) - gUnknown_03004040[7 + i] = *(d++); - dp01_prepare_buffer(a, gUnknown_03004040, c + 7); + gBattleBuffersTransferData[7 + i] = *(d++); + dp01_prepare_buffer(a, gBattleBuffersTransferData, c + 7); } void unref_sub_800CE3C(u8 a, u16 b, u8 *c) { int i; - gUnknown_03004040[0] = 31; - gUnknown_03004040[1] = b; - gUnknown_03004040[2] = (b & 0xFF00) >> 8; + gBattleBuffersTransferData[0] = 31; + gBattleBuffersTransferData[1] = b; + gBattleBuffersTransferData[2] = (b & 0xFF00) >> 8; for (i = 0; i < b; i++) - gUnknown_03004040[3 + i] = *(c++); - dp01_prepare_buffer(a, gUnknown_03004040, b + 3); + gBattleBuffersTransferData[3 + i] = *(c++); + dp01_prepare_buffer(a, gBattleBuffersTransferData, b + 3); } void unref_sub_800CE84(u8 a, u16 b, u8 *c) { int i; - gUnknown_03004040[0] = 32; - gUnknown_03004040[1] = b; - gUnknown_03004040[2] = (b & 0xFF00) >> 8; + gBattleBuffersTransferData[0] = 32; + gBattleBuffersTransferData[1] = b; + gBattleBuffersTransferData[2] = (b & 0xFF00) >> 8; for (i = 0; i < b; i++) - gUnknown_03004040[3 + i] = *(c++); - dp01_prepare_buffer(a, gUnknown_03004040, b + 3); + gBattleBuffersTransferData[3 + i] = *(c++); + dp01_prepare_buffer(a, gBattleBuffersTransferData, b + 3); } void dp01_build_cmdbuf_x21_a_bb(u8 a, u8 b, u16 c) { - gUnknown_03004040[0] = 33; - gUnknown_03004040[1] = b; - gUnknown_03004040[2] = c; - gUnknown_03004040[3] = (c & 0xFF00) >> 8; - dp01_prepare_buffer(a, gUnknown_03004040, 4); + gBattleBuffersTransferData[0] = 33; + gBattleBuffersTransferData[1] = b; + gBattleBuffersTransferData[2] = c; + gBattleBuffersTransferData[3] = (c & 0xFF00) >> 8; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 4); } void dp01_build_cmdbuf_x22_a_three_bytes(u8 a, u8 b, u8 *c) { int i; - gUnknown_03004040[0] = 34; - gUnknown_03004040[1] = b; + gBattleBuffersTransferData[0] = 34; + gBattleBuffersTransferData[1] = b; for (i = 0; i < 3; i++) - gUnknown_03004040[2 + i] = c[i]; - dp01_prepare_buffer(a, gUnknown_03004040, 5); + gBattleBuffersTransferData[2 + i] = c[i]; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 5); } void dp01_build_cmdbuf_x23_aa_0(u8 a, u16 b) { - gUnknown_03004040[0] = 35; - gUnknown_03004040[1] = b; - gUnknown_03004040[2] = (b & 0xFF00) >> 8; - gUnknown_03004040[3] = 0; - dp01_prepare_buffer(a, gUnknown_03004040, 4); + gBattleBuffersTransferData[0] = 35; + gBattleBuffersTransferData[1] = b; + gBattleBuffersTransferData[2] = (b & 0xFF00) >> 8; + gBattleBuffersTransferData[3] = 0; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 4); } void dp01_build_cmdbuf_x24_aa_0(u8 a, u16 b) { - gUnknown_03004040[0] = 36; - gUnknown_03004040[1] = b; - gUnknown_03004040[2] = (b & 0xFF00) >> 8; - gUnknown_03004040[3] = 0; - dp01_prepare_buffer(a, gUnknown_03004040, 4); + gBattleBuffersTransferData[0] = 36; + gBattleBuffersTransferData[1] = b; + gBattleBuffersTransferData[2] = (b & 0xFF00) >> 8; + gBattleBuffersTransferData[3] = 0; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 4); } void dp01_build_cmdbuf_x25_25_25_25(u8 a) { - gUnknown_03004040[0] = 37; - gUnknown_03004040[1] = 37; - gUnknown_03004040[2] = 37; - gUnknown_03004040[3] = 37; - dp01_prepare_buffer(a, gUnknown_03004040, 4); + gBattleBuffersTransferData[0] = 37; + gBattleBuffersTransferData[1] = 37; + gBattleBuffersTransferData[2] = 37; + gBattleBuffersTransferData[3] = 37; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 4); } void dp01_build_cmdbuf_x26_a(u8 a, u8 b) { - gUnknown_03004040[0] = 38; - gUnknown_03004040[1] = b; - dp01_prepare_buffer(a, gUnknown_03004040, 2); + gBattleBuffersTransferData[0] = 38; + gBattleBuffersTransferData[1] = b; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 2); } void dp01_build_cmdbuf_x27_27_27_27(u8 a) { - gUnknown_03004040[0] = 39; - gUnknown_03004040[1] = 39; - gUnknown_03004040[2] = 39; - gUnknown_03004040[3] = 39; - dp01_prepare_buffer(a, gUnknown_03004040, 4); + gBattleBuffersTransferData[0] = 39; + gBattleBuffersTransferData[1] = 39; + gBattleBuffersTransferData[2] = 39; + gBattleBuffersTransferData[3] = 39; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 4); } void dp01_build_cmdbuf_x28_28_28_28(u8 a) { - gUnknown_03004040[0] = 40; - gUnknown_03004040[1] = 40; - gUnknown_03004040[2] = 40; - gUnknown_03004040[3] = 40; - dp01_prepare_buffer(a, gUnknown_03004040, 4); + gBattleBuffersTransferData[0] = 40; + gBattleBuffersTransferData[1] = 40; + gBattleBuffersTransferData[2] = 40; + gBattleBuffersTransferData[3] = 40; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 4); } -void dp01_build_cmdbuf_x29_29_29_29(u8 a) +void EmitHitAnimation(u8 a) { - gUnknown_03004040[0] = 41; - gUnknown_03004040[1] = 41; - gUnknown_03004040[2] = 41; - gUnknown_03004040[3] = 41; - dp01_prepare_buffer(a, gUnknown_03004040, 4); + gBattleBuffersTransferData[0] = 41; + gBattleBuffersTransferData[1] = 41; + gBattleBuffersTransferData[2] = 41; + gBattleBuffersTransferData[3] = 41; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 4); } void dp01_build_cmdbuf_x2A_2A_2A_2A(u8 a) { - gUnknown_03004040[0] = 42; - gUnknown_03004040[1] = 42; - gUnknown_03004040[2] = 42; - gUnknown_03004040[3] = 42; - dp01_prepare_buffer(a, gUnknown_03004040, 4); + gBattleBuffersTransferData[0] = 42; + gBattleBuffersTransferData[1] = 42; + gBattleBuffersTransferData[2] = 42; + gBattleBuffersTransferData[3] = 42; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 4); } -void dp01_build_cmdbuf_x2B_aa_0(u8 a, u16 b) +void EmitEffectivenessSound(u8 a, u16 b) { - gUnknown_03004040[0] = 43; - gUnknown_03004040[1] = b; - gUnknown_03004040[2] = (b & 0xFF00) >> 8; - gUnknown_03004040[3] = 0; - dp01_prepare_buffer(a, gUnknown_03004040, 4); + gBattleBuffersTransferData[0] = 43; + gBattleBuffersTransferData[1] = b; + gBattleBuffersTransferData[2] = (b & 0xFF00) >> 8; + gBattleBuffersTransferData[3] = 0; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 4); } void sub_800D074(u8 a, u16 b) { - gUnknown_03004040[0] = 44; - gUnknown_03004040[1] = b; - gUnknown_03004040[2] = (b & 0xFF00) >> 8; - gUnknown_03004040[3] = 0; - dp01_prepare_buffer(a, gUnknown_03004040, 4); + gBattleBuffersTransferData[0] = 44; + gBattleBuffersTransferData[1] = b; + gBattleBuffersTransferData[2] = (b & 0xFF00) >> 8; + gBattleBuffersTransferData[3] = 0; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 4); } -void dp01_build_cmdbuf_x2D_2D_2D_2D(u8 a) +void EmitFaintingCry(u8 a) { - gUnknown_03004040[0] = 45; - gUnknown_03004040[1] = 45; - gUnknown_03004040[2] = 45; - gUnknown_03004040[3] = 45; - dp01_prepare_buffer(a, gUnknown_03004040, 4); + gBattleBuffersTransferData[0] = 45; + gBattleBuffersTransferData[1] = 45; + gBattleBuffersTransferData[2] = 45; + gBattleBuffersTransferData[3] = 45; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 4); } -void dp01_build_cmdbuf_x2E_a(u8 a, u8 b) +void EmitBattleIntroSlide(u8 a, u8 b) { - gUnknown_03004040[0] = 46; - gUnknown_03004040[1] = b; - dp01_prepare_buffer(a, gUnknown_03004040, 2); + gBattleBuffersTransferData[0] = 46; + gBattleBuffersTransferData[1] = b; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 2); } void dp01_build_cmdbuf_x2F_2F_2F_2F(u8 a) { - gUnknown_03004040[0] = 47; - gUnknown_03004040[1] = 47; - gUnknown_03004040[2] = 47; - gUnknown_03004040[3] = 47; - dp01_prepare_buffer(a, gUnknown_03004040, 4); + gBattleBuffersTransferData[0] = 47; + gBattleBuffersTransferData[1] = 47; + gBattleBuffersTransferData[2] = 47; + gBattleBuffersTransferData[3] = 47; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 4); } void dp01_build_cmdbuf_x30_TODO(u8 a, u8 *b, u8 c) { int i; - gUnknown_03004040[0] = 48; - gUnknown_03004040[1] = c & 0x7F; - gUnknown_03004040[2] = (c & 0x80) >> 7; - gUnknown_03004040[3] = 48; + gBattleBuffersTransferData[0] = 48; + gBattleBuffersTransferData[1] = c & 0x7F; + gBattleBuffersTransferData[2] = (c & 0x80) >> 7; + gBattleBuffersTransferData[3] = 48; for (i = 0; i < 48; i++) - gUnknown_03004040[4 + i] = b[i]; - dp01_prepare_buffer(a, gUnknown_03004040, 52); + gBattleBuffersTransferData[4 + i] = b[i]; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 52); } void dp01_build_cmdbuf_x31_31_31_31(u8 a) { - gUnknown_03004040[0] = 49; - gUnknown_03004040[1] = 49; - gUnknown_03004040[2] = 49; - gUnknown_03004040[3] = 49; - dp01_prepare_buffer(a, gUnknown_03004040, 4); + gBattleBuffersTransferData[0] = 49; + gBattleBuffersTransferData[1] = 49; + gBattleBuffersTransferData[2] = 49; + gBattleBuffersTransferData[3] = 49; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 4); } void dp01_build_cmdbuf_x32_32_32_32(u8 a) { - gUnknown_03004040[0] = 50; - gUnknown_03004040[1] = 50; - gUnknown_03004040[2] = 50; - gUnknown_03004040[3] = 50; - dp01_prepare_buffer(a, gUnknown_03004040, 4); + gBattleBuffersTransferData[0] = 50; + gBattleBuffersTransferData[1] = 50; + gBattleBuffersTransferData[2] = 50; + gBattleBuffersTransferData[3] = 50; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 4); } -void dp01_build_cmdbuf_x33_a_33_33(u8 a, u8 b) +void EmitSpriteInvisibility(u8 a, u8 b) { - gUnknown_03004040[0] = 51; - gUnknown_03004040[1] = b; - gUnknown_03004040[2] = 51; - gUnknown_03004040[3] = 51; - dp01_prepare_buffer(a, gUnknown_03004040, 4); + gBattleBuffersTransferData[0] = 51; + gBattleBuffersTransferData[1] = b; + gBattleBuffersTransferData[2] = 51; + gBattleBuffersTransferData[3] = 51; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 4); } -void dp01_build_cmdbuf_x34_a_bb_aka_battle_anim(u8 a, u8 b, u16 c) +void EmitBattleAnimation(u8 a, u8 b, u16 c) { - gUnknown_03004040[0] = 52; - gUnknown_03004040[1] = b; - gUnknown_03004040[2] = c; - gUnknown_03004040[3] = (c & 0xFF00) >> 8; - dp01_prepare_buffer(a, gUnknown_03004040, 4); + gBattleBuffersTransferData[0] = 52; + gBattleBuffersTransferData[1] = b; + gBattleBuffersTransferData[2] = c; + gBattleBuffersTransferData[3] = (c & 0xFF00) >> 8; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 4); } -void sub_800D1D8(u8 a, u8 b) +void EmitLinkStandbyMsg(u8 a, u8 b) { - gUnknown_03004040[0] = 53; - gUnknown_03004040[1] = b; - dp01_prepare_buffer(a, gUnknown_03004040, 2); + gBattleBuffersTransferData[0] = 53; + gBattleBuffersTransferData[1] = b; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 2); } -void dp01_build_cmdbuf_x38_a(u8 a, u8 b) +void EmitResetActionMoveSelection(u8 a, u8 b) { - gUnknown_03004040[0] = 54; - gUnknown_03004040[1] = b; - dp01_prepare_buffer(a, gUnknown_03004040, 2); + gBattleBuffersTransferData[0] = 54; + gBattleBuffersTransferData[1] = b; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 2); } void dp01_build_cmdbuf_x37_a(u8 a, u8 b) { - gUnknown_03004040[0] = 55; - gUnknown_03004040[1] = b; - dp01_prepare_buffer(a, gUnknown_03004040, 2); + gBattleBuffersTransferData[0] = 55; + gBattleBuffersTransferData[1] = b; + dp01_prepare_buffer(a, gBattleBuffersTransferData, 2); } diff --git a/src/rom4.c b/src/rom4.c index 79ac6d769..2ddd5ed9f 100644 --- a/src/rom4.c +++ b/src/rom4.c @@ -1,24 +1,31 @@ #include "global.h" #include "rom4.h" -#include "asm.h" -#include "asm_fieldmap.h" #include "battle_setup.h" #include "berry.h" +#include "cable_club.h" #include "clock.h" #include "event_data.h" #include "field_camera.h" #include "field_control_avatar.h" #include "field_effect.h" +#include "field_fadetransition.h" +#include "field_ground_effect.h" #include "field_map_obj.h" #include "field_map_obj_helpers.h" #include "field_message_box.h" #include "field_player_avatar.h" -#include "field_weather.h" +#include "field_screen_effect.h" #include "field_special_scene.h" +#include "field_specials.h" +#include "field_tasks.h" +#include "field_weather.h" +#include "fieldmap.h" +#include "fldeff_flash.h" #include "heal_location.h" #include "link.h" #include "load_save.h" #include "main.h" +#include "map_name_popup.h" #include "menu.h" #include "metatile_behavior.h" #include "new_game.h" @@ -26,14 +33,19 @@ #include "play_time.h" #include "rng.h" #include "roamer.h" +#include "rotating_gate.h" #include "safari_zone.h" #include "script.h" #include "script_pokemon_80C4.h" +#include "secret_base.h" #include "songs.h" #include "sound.h" #include "start_menu.h" #include "task.h" #include "tileset_anim.h" +#include "time_events.h" +#include "tv.h" +#include "unknown_task.h" #include "wild_encounter.h" #ifdef SAPPHIRE @@ -48,11 +60,6 @@ struct UnkTVStruct u32 tv_field_4; }; -struct UCoords32 -{ - u32 x, y; -}; - extern struct WarpData gUnknown_020297F0; extern struct WarpData gUnknown_020297F8; extern struct WarpData gUnknown_02029800; @@ -67,12 +74,10 @@ extern u16 (*gUnknown_03000584)(u32); extern u8 gUnknown_03000588; extern u16 word_3004858; -extern void (*gUnknown_0300485C)(void); +extern void (*gFieldCallback)(void); extern u8 gUnknown_03004860; extern u8 gFieldLinkPlayerCount; -extern struct UnkTVStruct gUnknown_03004870; - extern u16 gUnknown_03004898; extern u16 gUnknown_0300489C; @@ -97,8 +102,6 @@ extern u8 TradeRoom_PromptToCancelLink[]; extern u8 TradeRoom_TerminateLink[]; extern u8 gUnknown_081A4508[]; -extern struct UCoords32 gUnknown_0821664C[]; - extern u8 (*gUnknown_082166A0[])(struct LinkPlayerMapObject *, struct MapObject *, u8); extern u8 (*gUnknown_082166AC[])(struct LinkPlayerMapObject *, struct MapObject *, u8); extern void (*gUnknown_082166D8[])(struct LinkPlayerMapObject *, struct MapObject *); @@ -567,7 +570,7 @@ void sub_8053994(u32 a1) not_trainer_hill_battle_pyramid(); if (a1 != 1 && v3) { - UpdateTVScreensOnMap(gUnknown_03004870.tv_field_0, gUnknown_03004870.tv_field_4); + UpdateTVScreensOnMap(gUnknown_03004870.width, gUnknown_03004870.height); sub_80BBCCC(1); } } @@ -1082,11 +1085,11 @@ void sub_80543DC(u16 (*a1)(u32)) void sub_80543E8(void) { - if (gUnknown_0300485C) - gUnknown_0300485C(); + if (gFieldCallback) + gFieldCallback(); else mapldr_default(); - gUnknown_0300485C = NULL; + gFieldCallback = NULL; } void CB2_NewGame(void) @@ -1099,7 +1102,7 @@ void CB2_NewGame(void) PlayTimeCounter_Start(); ScriptContext1_Init(); ScriptContext2_Disable(); - gUnknown_0300485C = ExecuteTruckSequence; + gFieldCallback = ExecuteTruckSequence; do_load_map_stuff_loop(&gMain.state); SetFieldVBlankCallback(); set_callback1(c1_overworld); @@ -1119,7 +1122,7 @@ void CB2_WhiteOut(void) player_avatar_init_params_reset(); ScriptContext1_Init(); ScriptContext2_Disable(); - gUnknown_0300485C = sub_8080B60; + gFieldCallback = sub_8080B60; val = 0; do_load_map_stuff_loop(&val); SetFieldVBlankCallback(); @@ -1166,7 +1169,7 @@ void sub_8054534(void) void sub_8054588(void) { FieldClearVBlankHBlankCallbacks(); - gUnknown_0300485C = sub_8080AC4; + gFieldCallback = sub_8080AC4; SetMainCallback2(c2_80567AC); } @@ -1216,7 +1219,7 @@ void sub_805465C(void) sub_8054F70(); set_callback1(sub_8055354); sub_80543DC(sub_8055390); - gUnknown_0300485C = sub_8080A3C; + gFieldCallback = sub_8080A3C; ScriptContext1_Init(); ScriptContext2_Disable(); c2_exit_to_overworld_2_switch(); @@ -1225,28 +1228,28 @@ void sub_805465C(void) void sub_805469C(void) { FieldClearVBlankHBlankCallbacks(); - gUnknown_0300485C = atk17_seteffectuser; + gFieldCallback = atk17_seteffectuser; c2_exit_to_overworld_2_switch(); } void sub_80546B8(void) { FieldClearVBlankHBlankCallbacks(); - gUnknown_0300485C = sub_80809B0; + gFieldCallback = sub_80809B0; c2_exit_to_overworld_2_switch(); } void c2_exit_to_overworld_1_continue_scripts_restart_music(void) { FieldClearVBlankHBlankCallbacks(); - gUnknown_0300485C = sub_8080990; + gFieldCallback = sub_8080990; c2_exit_to_overworld_2_switch(); } void sub_80546F0(void) { FieldClearVBlankHBlankCallbacks(); - gUnknown_0300485C = sub_8080B60; + gFieldCallback = sub_8080B60; c2_exit_to_overworld_2_switch(); } @@ -1280,7 +1283,7 @@ void CB2_ContinueSavedGame(void) } else { - gUnknown_0300485C = sub_805470C; + gFieldCallback = sub_805470C; set_callback1(c1_overworld); c2_exit_to_overworld_2_switch(); } diff --git a/src/rom6.c b/src/rom6.c index a2b52c9aa..759aed93f 100644 --- a/src/rom6.c +++ b/src/rom6.c @@ -1,9 +1,11 @@ #include "global.h" #include "rom6.h" -#include "asm.h" #include "braille_puzzles.h" #include "field_effect.h" +#include "field_map_obj.h" #include "field_player_avatar.h" +#include "item_use.h" +#include "pokemon_menu.h" #include "rom4.h" #include "script.h" #include "songs.h" @@ -14,15 +16,11 @@ extern u16 gScriptLastTalked; extern u32 gUnknown_0202FF84[]; extern struct MapPosition gUnknown_0203923C; -extern void (*gUnknown_0300485C)(void); +extern void (*gFieldCallback)(void); extern u8 gLastFieldPokeMenuOpened; extern void (*gUnknown_03005CE4)(void); extern u8 UseRockSmashScript[]; -extern void sub_808AB90(void); -extern void task08_080A1C44(u8); -extern u8 sub_80CA1C8(void); - static void task08_080C9820(u8); static void sub_810B3DC(u8); static void sub_810B428(u8); @@ -122,7 +120,7 @@ bool8 SetUpFieldMove_RockSmash(void) { if (npc_before_player_of_type(0x56) == TRUE) { - gUnknown_0300485C = sub_808AB90; + gFieldCallback = sub_808AB90; gUnknown_03005CE4 = sub_810B53C; return TRUE; } @@ -159,7 +157,7 @@ int SetUpFieldMove_Dig(void) { if (sub_80CA1C8() == TRUE) { - gUnknown_0300485C = sub_808AB90; + gFieldCallback = sub_808AB90; gUnknown_03005CE4 = sub_810B5D8; return TRUE; } diff --git a/src/rom_800D42C.c b/src/rom_800D42C.c index 6f153c340..f51779e65 100644 --- a/src/rom_800D42C.c +++ b/src/rom_800D42C.c @@ -4,7 +4,7 @@ #include "text.h" extern u16 gBattleTypeFlags; -extern u8 gUnknown_02024D26; +extern u8 gBattleOutcome; extern struct Window gUnknown_03004210; @@ -37,7 +37,7 @@ extern u8 BattleText_Tie[]; void PrintLinkBattleWinLossTie(void) { - if (gUnknown_02024D26 == 3) + if (gBattleOutcome == 3) { PRINT_MESSAGE(BattleText_Tie, TILE_OFFSET_WIN, CENTER_MESSAGE_X); return; @@ -47,7 +47,7 @@ void PrintLinkBattleWinLossTie(void) { // Double battle? - if (gUnknown_02024D26 == 1) + if (gBattleOutcome == 1) { // lp_field_18 = player position? @@ -89,7 +89,7 @@ void PrintLinkBattleWinLossTie(void) } - if (gUnknown_02024D26 == 1) + if (gBattleOutcome == 1) { if (gLinkPlayers[BATTLE_STRUCT->linkPlayerIndex].lp_field_18 != 0) { diff --git a/src/rom_8077ABC.c b/src/rom_8077ABC.c index 9561db690..249146b37 100644 --- a/src/rom_8077ABC.c +++ b/src/rom_8077ABC.c @@ -1,13 +1,17 @@ #include "global.h" +#include "rom_8077ABC.h" #include "battle.h" +#include "battle_anim.h" #include "blend_palette.h" #include "data2.h" #include "decompress.h" #include "palette.h" +#include "pokemon_icon.h" #include "species.h" #include "sprite.h" #include "task.h" #include "trig.h" +#include "util.h" #define GET_UNOWN_LETTER(personality) ((\ (((personality & 0x03000000) >> 24) << 6) \ @@ -20,11 +24,11 @@ #define NUM_BATTLE_SLOTS 4 -#define gBattleMonPartyPositions gUnknown_02024A6A +#define gBattleMonPartyPositions gBattlePartyID #define gCastformElevations gUnknownCastformData_0837F5A8 #define gCastformBackSpriteYCoords gUnknown_0837F5AC -#define gTransformPersonalities gUnknown_02024E70 -#define gBattleMonSprites gUnknown_02024BE0 +#define gTransformPersonalities gPID_perBank +#define gBattleMonSprites gObjectBankIDs struct Struct_unk_2019348 { @@ -89,7 +93,6 @@ struct BGCnt { extern struct OamData gOamData_837DF9C[]; extern const union AnimCmd *const gDummySpriteAnimTable[]; extern const union AffineAnimCmd *const gDummySpriteAffineAnimTable[]; -extern u8 gMiscBlank_Gfx[]; extern struct Struct_unk_2019348 unk_2019348; extern struct TransformStatus gTransformStatuses[]; @@ -102,50 +105,11 @@ extern u8 gBattleMonSprites[NUM_BATTLE_SLOTS]; extern u8 gBattleAnimPlayerMonIndex; extern u8 gBattleAnimEnemyMonIndex; extern s16 gBattleAnimArgs[8]; -extern u8 gUnknown_02024A72[NUM_BATTLE_SLOTS]; -extern u8 gUnknown_02024A68; // gNumBattleMons? +extern u8 gBanksBySide[NUM_BATTLE_SLOTS]; +extern u8 gNoOfAllBanks; // gNumBattleMons? extern struct OamMatrix gOamMatrices[]; extern struct Struct_2017810 unk_2017810[]; -extern u8 gUnknown_0202F7BE; - -extern u8 IsContest(); -extern bool8 sub_8078874(u8); -extern bool8 b_side_obj__get_some_boolean(u8); -extern void UpdateMonIconFrame(struct Sprite *sprite); -extern void CalcCenterToCornerVec(struct Sprite *sprite, u8 shape, u8 size, u8 affineMode); -extern void *species_and_otid_get_pal(u32, u32, u32); -extern void FreeSpriteOamMatrix(struct Sprite *sprite); -extern void ResetPaletteStructByUid(u16); -extern void DestroyAnimVisualTask(u8 task); -extern u8 CreateInvisibleSpriteWithCallback(void (*callback)(struct Sprite *)); - -u8 sub_8077E44(u8 slot, u16 species, u8 a3); -u8 battle_get_per_side_status(u8 slot); -u8 battle_side_get_owner(u8 slot); -void sub_8078314(struct Sprite *sprite); -void sub_8078364(struct Sprite *sprite); -void move_anim_8072740(struct Sprite *sprite); -void obj_translate_based_on_private_1_2_3_4(struct Sprite *sprite); -bool8 sub_8078B5C(struct Sprite *sprite); -u8 battle_get_per_side_status_permutated(u8 slot); -void sub_8078A5C(struct Sprite *sprite); -void sub_8078BB8(struct Sprite *sprite); -void sub_8078D44(struct Sprite *sprite); -bool8 sub_8078E38(); -void sub_8079518(struct Sprite *sprite); -void sub_80796F8(u8 task); -void sub_80797EC(struct Task *task); -void sub_8079814(u8 taskId); -void sub_8079BF4(s16 *bottom, s16 *top, void *ptr); -void *sub_8079BFC(s16 bottom, s16 top); -void sub_8079A64(u8 sprite); -u16 sub_8079B10(u8 sprite); -u8 sub_8079E90(u8 slot); -void sub_807A784(u8 taskId); -void sub_807A850(struct Task *task, u8 taskId); -void sub_807A8D4(struct Sprite *sprite); -void sub_807A960(struct Sprite *sprite); - +extern u8 gHappinessMoveAnim; EWRAM_DATA union AffineAnimCmd *gUnknown_0202F7D4 = NULL; EWRAM_DATA u32 filler_0202F7D8[3] = {0}; @@ -229,10 +193,10 @@ u8 sub_8077ABC(u8 slot, u8 a2) { switch (a2) { case 0: case 2: - var = gUnknown_0837F578[IS_DOUBLE_BATTLE()][battle_get_per_side_status(slot)].field_0; + var = gUnknown_0837F578[IS_DOUBLE_BATTLE()][GetBankIdentity(slot)].field_0; break; case 1: - var = gUnknown_0837F578[IS_DOUBLE_BATTLE()][battle_get_per_side_status(slot)].field_1; + var = gUnknown_0837F578[IS_DOUBLE_BATTLE()][GetBankIdentity(slot)].field_1; break; case 3: case 4: @@ -244,7 +208,7 @@ u8 sub_8077ABC(u8 slot, u8 a2) { species = unk_2019348.field_0; } } else { - if (battle_side_get_owner(slot)) { + if (GetBankSide(slot)) { transform = &gTransformStatuses[slot]; if (!transform->species) { species = GetMonData(&gEnemyParty[gBattleMonPartyPositions[slot]], MON_DATA_SPECIES); @@ -277,7 +241,7 @@ u8 sub_8077BFC(u8 slot, u16 species) { u8 ret; u16 var; - if (!battle_side_get_owner(slot) || IsContest()) { + if (!GetBankSide(slot) || IsContest()) { if (species == SPECIES_UNOWN) { if (IsContest()) { if (unk_2019348.field_4 & 1) { @@ -335,7 +299,7 @@ u8 sub_8077BFC(u8 slot, u16 species) { u8 sub_8077DD8(u8 slot, u16 species) { u8 ret = 0; - if (battle_side_get_owner(slot) == 1) { + if (GetBankSide(slot) == 1) { if (!IsContest()) { if (species == SPECIES_CASTFORM) { ret = gCastformElevations[gBattleMonForms[slot]]; @@ -352,15 +316,15 @@ u8 sub_8077DD8(u8 slot, u16 species) { u8 sub_8077E44(u8 slot, u16 species, u8 a3) { u16 offset; u8 y; - if (battle_side_get_owner(slot) == 0 || IsContest()) { + if (GetBankSide(slot) == 0 || IsContest()) { offset = sub_8077BFC(slot, species); } else { offset = sub_8077BFC(slot, species); offset -= sub_8077DD8(slot, species); } - y = offset + gUnknown_0837F578[IS_DOUBLE_BATTLE()][battle_get_per_side_status(slot)].field_1; + y = offset + gUnknown_0837F578[IS_DOUBLE_BATTLE()][GetBankIdentity(slot)].field_1; if (a3) { - if (battle_side_get_owner(slot) == 0) { + if (GetBankSide(slot) == 0) { y += 8; } if (y > 104) y = 104; @@ -402,7 +366,7 @@ u8 sub_8077F68(u8 slot) { u8 sub_8077F7C(u8 slot) { u16 var; - if (battle_side_get_owner(slot)) { + if (GetBankSide(slot)) { var = sub_8077ABC(slot, 1) + 16; } else { var = sub_8077ABC(slot, 1) + 17; @@ -416,7 +380,7 @@ u8 sub_8077FC0(u8 slot) { struct TransformStatus *transform; r6 = sub_8077ABC(slot, 1); if (!IsContest()) { - if (battle_side_get_owner(slot)) { + if (GetBankSide(slot)) { transform = &gTransformStatuses[slot]; if (!transform->species) { var = GetMonData(&gEnemyParty[gBattleMonPartyPositions[slot]], MON_DATA_SPECIES); @@ -431,7 +395,7 @@ u8 sub_8077FC0(u8 slot) { var = transform->species; } } - if (battle_side_get_owner(slot)) { + if (GetBankSide(slot)) { r6 -= sub_8077DD8(slot, var); } } @@ -714,7 +678,7 @@ void sub_807867C(struct Sprite *sprite, s16 a2) { } else if (v1 < v2) { sprite->pos1.x += a2; } else { - if (battle_side_get_owner(gBattleAnimPlayerMonIndex)) { + if (GetBankSide(gBattleAnimPlayerMonIndex)) { sprite->pos1.x -= a2; } else { sprite->pos1.x += a2; @@ -767,18 +731,18 @@ void sub_80787B0(struct Sprite *sprite, u8 a2) { sprite->pos1.y += gBattleAnimArgs[1]; } -u8 battle_side_get_owner(u8 slot) { - return gUnknown_02024A72[slot] & 1; +u8 GetBankSide(u8 slot) { + return gBanksBySide[slot] & 1; } -u8 battle_get_per_side_status(u8 slot) { - return gUnknown_02024A72[slot]; +u8 GetBankIdentity(u8 slot) { + return gBanksBySide[slot]; } -u8 battle_get_side_with_given_state(u8 slot) { +u8 GetBankByPlayerAI(u8 slot) { u8 i; - for (i = 0; i < gUnknown_02024A68; i++) { - if (gUnknown_02024A72[i] == slot) { + for (i = 0; i < gNoOfAllBanks; i++) { + if (gBanksBySide[i] == slot) { break; } } @@ -795,10 +759,10 @@ bool8 sub_8078874(u8 slot) { } return FALSE; } else { - if (gUnknown_02024A72[slot] == 0xff) { + if (gBanksBySide[slot] == 0xff) { return FALSE; } - if (battle_side_get_owner(slot)) { + if (GetBankSide(slot)) { if (GetMonData(&gEnemyParty[gBattleMonPartyPositions[slot]], MON_DATA_HP) != 0) { return TRUE; } @@ -832,7 +796,7 @@ void sub_8078954(struct Struct_sub_8078914 *unk) { unk->field_0 = (u8 *)0x6008000; unk->field_4 = (u8 *)0x600f000; unk->field_8 = 0xe; - } else if (battle_get_per_side_status_permutated(gBattleAnimPlayerMonIndex) == 1) { + } else if (GetBankIdentity_permutated(gBattleAnimPlayerMonIndex) == 1) { unk->field_0 = (u8 *)0x6004000; unk->field_4 = (u8 *)0x600e000; unk->field_8 = 0x8; @@ -1220,25 +1184,25 @@ u32 sub_80792C0(u8 a1, u8 a2, u8 a3, u8 a4) { } } else { if (a1) { - if (b_side_obj__get_some_boolean(battle_get_side_with_given_state(0))) { - var |= 1 << (battle_get_side_with_given_state(0) + 16); + if (b_side_obj__get_some_boolean(GetBankByPlayerAI(0))) { + var |= 1 << (GetBankByPlayerAI(0) + 16); } } if (a2) { - if (b_side_obj__get_some_boolean(battle_get_side_with_given_state(2))) { - shift = battle_get_side_with_given_state(2) + 16; + if (b_side_obj__get_some_boolean(GetBankByPlayerAI(2))) { + shift = GetBankByPlayerAI(2) + 16; var |= 1 << shift; } } if (a3) { - if (b_side_obj__get_some_boolean(battle_get_side_with_given_state(1))) { - shift = battle_get_side_with_given_state(1) + 16; + if (b_side_obj__get_some_boolean(GetBankByPlayerAI(1))) { + shift = GetBankByPlayerAI(1) + 16; var |= 1 << shift; } } if (a4) { - if (b_side_obj__get_some_boolean(battle_get_side_with_given_state(3))) { - shift = battle_get_side_with_given_state(3) + 16; + if (b_side_obj__get_some_boolean(GetBankByPlayerAI(3))) { + shift = GetBankByPlayerAI(3) + 16; var |= 1 << shift; } } @@ -1251,7 +1215,7 @@ u8 sub_80793A8(u8 a1) { } u8 unref_sub_80793B0(u8 a1) { - return battle_get_side_with_given_state(a1); + return GetBankByPlayerAI(a1); } void sub_80793C4(struct Sprite *sprite) { @@ -1288,7 +1252,7 @@ void sub_807941C(struct Sprite *sprite) { v2 = 1; } sub_80787B0(sprite, v1); - if (battle_side_get_owner(gBattleAnimPlayerMonIndex)) { + if (GetBankSide(gBattleAnimPlayerMonIndex)) { gBattleAnimArgs[2] = -gBattleAnimArgs[2]; } sprite->data0 = gBattleAnimArgs[4]; @@ -1300,7 +1264,7 @@ void sub_807941C(struct Sprite *sprite) { void sub_80794A8(struct Sprite *sprite) { sub_80787B0(sprite, 1); - if (battle_side_get_owner(gBattleAnimPlayerMonIndex)) { + if (GetBankSide(gBattleAnimPlayerMonIndex)) { gBattleAnimArgs[2] = -gBattleAnimArgs[2]; } sprite->data0 = gBattleAnimArgs[4]; @@ -1333,7 +1297,7 @@ void sub_8079534(struct Sprite *sprite) { sub_8078764(sprite, r4); slot = gBattleAnimEnemyMonIndex; } - if (battle_side_get_owner(gBattleAnimPlayerMonIndex)) { + if (GetBankSide(gBattleAnimPlayerMonIndex)) { gBattleAnimArgs[2] = -gBattleAnimArgs[2]; } sub_8078764(sprite, r4); @@ -1578,7 +1542,7 @@ u16 sub_8079B10(u8 sprite) { species = unk_2019348.field_0; return gMonBackPicCoords[species].y_offset; } else { - if (!battle_side_get_owner(i)) { + if (!GetBankSide(i)) { transform = &gTransformStatuses[slot]; if (!transform->species) { species = GetMonData(&gPlayerParty[gBattleMonPartyPositions[i]], MON_DATA_SPECIES); @@ -1646,11 +1610,11 @@ u8 sub_8079C74(struct Task *task) { void sub_8079CEC(u8 task) { u16 v1; - if (gUnknown_0202F7BE <= 30) { + if (gHappinessMoveAnim <= 30) { v1 = 0; - } else if (gUnknown_0202F7BE <= 100) { + } else if (gHappinessMoveAnim <= 100) { v1 = 1; - } else if (gUnknown_0202F7BE <= 200) { + } else if (gHappinessMoveAnim <= 200) { v1 = 2; } else { v1 = 3; @@ -1676,7 +1640,7 @@ void unref_sub_8079D20(u8 priority) { void sub_8079E24() { int i; - for (i = 0; i < gUnknown_02024A68; i++) { + for (i = 0; i < gNoOfAllBanks; i++) { if (b_side_obj__get_some_boolean(i)) { gSprites[gBattleMonSprites[i]].subpriority = sub_8079E90(i); gSprites[gBattleMonSprites[i]].oam.priority = 2; @@ -1694,7 +1658,7 @@ u8 sub_8079E90(u8 slot) { return 40; } } else { - status = battle_get_per_side_status(slot); + status = GetBankIdentity(slot); if (status == 0) { ret = 30; } else if (status == 2) { @@ -1709,7 +1673,7 @@ u8 sub_8079E90(u8 slot) { } u8 sub_8079ED4(u8 slot) { - u8 status = battle_get_per_side_status(slot); + u8 status = GetBankIdentity(slot); if (IsContest()) { return 2; } @@ -1720,10 +1684,10 @@ u8 sub_8079ED4(u8 slot) { } } -u8 battle_get_per_side_status_permutated(u8 slot) { +u8 GetBankIdentity_permutated(u8 slot) { u8 status; if (!IsContest()) { - status = battle_get_per_side_status(slot); + status = GetBankIdentity(slot); if (status == 0 || status == 3) { return 2; } else { @@ -1821,7 +1785,7 @@ int sub_807A100(u8 slot, u8 a2) { coords = &gMonBackPicCoords[0]; } } else { - if (!battle_side_get_owner(slot)) { + if (!GetBankSide(slot)) { transform = &gTransformStatuses[slot]; if (!transform->species) { species = GetMonData(&gPlayerParty[gBattleMonPartyPositions[slot]], MON_DATA_SPECIES); @@ -1928,7 +1892,7 @@ u8 sub_807A4A0(int a1, u8 sprite, int a3) { void sub_807A544(struct Sprite *sprite) { sub_8078650(sprite); - if (battle_side_get_owner(gBattleAnimPlayerMonIndex)) { + if (GetBankSide(gBattleAnimPlayerMonIndex)) { sprite->pos1.x -= gBattleAnimArgs[0]; gBattleAnimArgs[3] = -gBattleAnimArgs[3]; sprite->hFlip = TRUE; @@ -1945,7 +1909,7 @@ void sub_807A544(struct Sprite *sprite) { } void sub_807A5C4(struct Sprite *sprite) { - if (battle_side_get_owner(gBattleAnimPlayerMonIndex)) { + if (GetBankSide(gBattleAnimPlayerMonIndex)) { sprite->pos1.x -= gBattleAnimArgs[0]; gBattleAnimArgs[3] *= -1; } else { @@ -1963,7 +1927,7 @@ void sub_807A5C4(struct Sprite *sprite) { void sub_807A63C(struct Sprite *sprite) { sub_8078650(sprite); - if (battle_side_get_owner(gBattleAnimPlayerMonIndex)) { + if (GetBankSide(gBattleAnimPlayerMonIndex)) { sprite->pos1.x -= gBattleAnimArgs[0]; } else { sprite->pos1.x += gBattleAnimArgs[0]; @@ -1978,7 +1942,7 @@ void sub_807A69C(u8 taskId) { u16 dest; struct Task *task = &gTasks[taskId]; task->data[0] = obj_id_for_side_relative_to_move(0); - task->data[1] = (battle_side_get_owner(gBattleAnimPlayerMonIndex)) ? -8 : 8; + task->data[1] = (GetBankSide(gBattleAnimPlayerMonIndex)) ? -8 : 8; task->data[2] = 0; task->data[3] = 0; gSprites[task->data[0]].pos2.x -= task->data[0]; @@ -2050,7 +2014,7 @@ void sub_807A8D4(struct Sprite *sprite) { void sub_807A908(struct Sprite *sprite) { sprite->pos1.x = sub_8077ABC(gBattleAnimPlayerMonIndex, 2); sprite->pos1.y = sub_8077ABC(gBattleAnimPlayerMonIndex, 3); - if (!battle_side_get_owner(gBattleAnimPlayerMonIndex)) { + if (!GetBankSide(gBattleAnimPlayerMonIndex)) { sprite->data0 = 5; } else { sprite->data0 = -10; @@ -2077,7 +2041,7 @@ void sub_807A9BC(struct Sprite *sprite) { sprite->data0 = gBattleAnimArgs[2]; sprite->data2 = sprite->pos1.x + gBattleAnimArgs[4]; sprite->data4 = sprite->pos1.y + gBattleAnimArgs[5]; - if (!battle_side_get_owner(gBattleAnimEnemyMonIndex)) { + if (!GetBankSide(gBattleAnimEnemyMonIndex)) { x = (u16)gBattleAnimArgs[4] + 30; sprite->pos1.x += x; sprite->pos1.y = gBattleAnimArgs[5] - 20; diff --git a/src/rom_8094928.c b/src/rom_8094928.c deleted file mode 100644 index 794fc78f6..000000000 --- a/src/rom_8094928.c +++ /dev/null @@ -1,135 +0,0 @@ -#include "global.h" -#include "pokemon.h" - -#define UNK_201606C_ARRAY (unk_2000000 + 0x1606C) // lazy define but whatever. - -extern u8 unk_2000000[]; - -extern struct PokemonStorage gPokemonStorage; -extern u8 IsLinkDoubleBattle(void); -extern u8 IsDoubleBattle(void); -extern u8 battle_get_side_with_given_state(u8); -extern u8 battle_side_get_owner(u8); -void sub_8094998(u8[3], u8); -void sub_8094A74(u8[3], u8, u32); - -extern u8 gUnknown_02038470[3]; -extern u8 sub_803FBBC(void); -extern u16 gUnknown_02024A6A[]; - -void unref_sub_8094928(struct PokemonStorage *ptr) -{ - *ptr = gPokemonStorage; -} - -void unref_sub_8094940(struct PokemonStorage *ptr) -{ - gPokemonStorage = *ptr; -} - -void sub_8094958(void) -{ - sub_8094998(gUnknown_02038470, sub_803FBBC()); -} - -void sub_8094978(u8 arg1, u8 arg2) -{ - sub_8094A74((UNK_201606C_ARRAY) + arg1 * 3, arg2, arg1); -} - -void sub_8094998(u8 arg[3], u8 player_number) -{ - int i; - u32 pos; - u8 temp[6]; - if (IsLinkDoubleBattle() == TRUE) - { - if (player_number) - { - *arg = 0x30; - arg[1] = 0x45; - arg[2] = 0x12; - } - else - { - *arg = 0x03; - arg[1] = 0x12; - arg[2] = 0x45; - } - } - else - { - if (!IsDoubleBattle()) - { - pos = 1; - *temp = gUnknown_02024A6A[battle_get_side_with_given_state(0)]; - for (i = 0; i <= 5; i++) - if (i != *temp) - temp[pos++] = i; - } - else - { - pos = 2; - *temp = gUnknown_02024A6A[battle_get_side_with_given_state(0)]; - temp[1] = gUnknown_02024A6A[battle_get_side_with_given_state(2)]; - for (i = 0; i <= 5; i++) - if ((i != *temp) && (i != temp[1])) - temp[pos++] = i; - } - for (i = 0; i <= 2; i++) - arg[i] = (temp[i << 1] << 4) | temp[(i << 1) + 1]; - } -} - -void sub_8094A74(u8 arg[3], u8 player_number, u32 arg3) -{ - int i, j; - u8 temp[6]; - if (!battle_side_get_owner(arg3)) - { - i = battle_get_side_with_given_state(0); - j = battle_get_side_with_given_state(2); - } - else - { - i = battle_get_side_with_given_state(1); - j = battle_get_side_with_given_state(3); - } - if (IsLinkDoubleBattle() == TRUE) - { - if (player_number) - { - *arg = 0x30; - arg[1] = 0x45; - arg[2] = 0x12; - } - else - { - *arg = 0x03; - arg[1] = 0x12; - arg[2] = 0x45; - } - } - else - { - if (!IsDoubleBattle()) - { - int pos = 1; - *temp = gUnknown_02024A6A[i]; - for (i = 0; i <= 5; i++) - if (i != *temp) - temp[pos++] = i; - } - else - { - int pos = 2; - *temp = gUnknown_02024A6A[i]; - temp[1] = gUnknown_02024A6A[j]; - for (i = 0; i <= 5; i++) - if ((i != *temp) && (i != temp[1])) - temp[pos++] = i; - } - for (i = 0; i <= 2; i++) - arg[i] = (temp[i << 1] << 4) | temp[(i << 1) + 1]; - } -} diff --git a/src/safari_zone.c b/src/safari_zone.c index 8c2b63469..a47c8e951 100644 --- a/src/safari_zone.c +++ b/src/safari_zone.c @@ -1,7 +1,7 @@ #include "global.h" #include "safari_zone.h" -#include "asm.h" #include "event_data.h" +#include "field_fadetransition.h" #include "field_player_avatar.h" #include "main.h" #include "rom4.h" @@ -23,13 +23,13 @@ struct PokeblockFeeder static void ClearAllPokeblockFeeders(void); static void DecrementFeederStepCounters(void); -extern u8 gUnknown_02024D26; +extern u8 gBattleOutcome; EWRAM_DATA u8 gNumSafariBalls = 0; EWRAM_DATA static u16 gSafariZoneStepCounter = 0; EWRAM_DATA static struct PokeblockFeeder gPokeblockFeeders[NUM_POKEBLOCK_FEEDERS] = {0}; -extern void (*gUnknown_0300485C)(void); +extern void (*gFieldCallback)(void); extern u8 gUnknown_081C340A; extern u8 gUnknown_081C342D; @@ -99,14 +99,14 @@ void sub_80C824C(void) { SetMainCallback2(c2_exit_to_overworld_2_switch); } - else if (gUnknown_02024D26 == 8) + else if (gBattleOutcome == 8) { ScriptContext2_RunNewScript(&gUnknown_081C340A); warp_in(); - gUnknown_0300485C = sub_8080E44; + gFieldCallback = sub_8080E44; SetMainCallback2(CB2_LoadMap); } - else if (gUnknown_02024D26 == 7) + else if (gBattleOutcome == 7) { ScriptContext1_SetupScript(&gUnknown_081C3459); ScriptContext1_Stop(); diff --git a/src/save.c b/src/save.c index 9ab6e83f6..570210fb0 100644 --- a/src/save.c +++ b/src/save.c @@ -2,7 +2,6 @@ #include "gba/gba.h" #include "gba/flash_internal.h" #include "save.h" -#include "asm.h" #include "load_save.h" #include "rom4.h" #include "save_failed_screen.h" diff --git a/src/save_failed_screen.c b/src/save_failed_screen.c index a3de0bd00..a64b3eb5f 100644 --- a/src/save_failed_screen.c +++ b/src/save_failed_screen.c @@ -1,12 +1,13 @@ #include "global.h" #include "gba/flash_internal.h" -#include "asm.h" +#include "save_failed_screen.h" #include "m4a.h" #include "main.h" #include "menu.h" #include "palette.h" #include "save.h" #include "sprite.h" +#include "starter_choose.h" #include "strings.h" #include "task.h" #include "text.h" @@ -35,12 +36,6 @@ extern struct SaveFailedClockStruct gSaveFailedClockInfo; extern u32 gDamagedSaveSectors; extern u32 gGameContinueCallback; -extern u8 gBirchHelpGfx[]; - -extern u8 gBirchGrassTilemap[]; -extern u8 gBirchBagTilemap[]; -extern u8 gBirchBagGrassPal[0x40]; - static const struct OamData sClockOamData = { 160, // Y diff --git a/src/save_menu_util.c b/src/save_menu_util.c index 8910bb300..b2dd662d6 100644 --- a/src/save_menu_util.c +++ b/src/save_menu_util.c @@ -1,9 +1,9 @@ #include "global.h" #include "save_menu_util.h" -#include "asm.h" #include "event_data.h" #include "menu.h" #include "pokedex.h" +#include "region_map.h" #include "string_util.h" #include "strings2.h" diff --git a/src/scrcmd.c b/src/scrcmd.c index 33867b58a..a394f2a55 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -1,43 +1,52 @@ #include "global.h" -#include "asm.h" -#include "asm_fieldmap.h" #include "battle_setup.h" #include "berry.h" #include "clock.h" #include "coins.h" +#include "contest_link_80C2020.h" #include "contest_painting.h" #include "data2.h" #include "decoration.h" +#include "decoration_inventory.h" #include "event_data.h" #include "field_door.h" #include "field_effect.h" +#include "field_fadetransition.h" +#include "field_map_obj.h" #include "field_map_obj_helpers.h" #include "field_message_box.h" #include "field_player_avatar.h" +#include "field_screen_effect.h" +#include "field_specials.h" +#include "field_tasks.h" #include "field_weather.h" +#include "fieldmap.h" #include "item.h" #include "main.h" #include "map_obj_lock.h" #include "menu.h" #include "money.h" +#include "mystery_event_script.h" #include "palette.h" +#include "party_menu.h" #include "pokemon.h" #include "rng.h" #include "rom4.h" #include "rtc.h" #include "script.h" #include "script_menu.h" +#include "script_movement.h" #include "script_pokemon_80C4.h" #include "script_pokemon_80F9.h" +#include "shop.h" +#include "slot_machine.h" #include "sound.h" #include "string_util.h" +#include "tv.h" typedef u16 (*SpecialFunc)(void); typedef void (*NativeFunc)(void); -extern struct Pokemon gPlayerParty[6]; // 0x3004360 -extern struct Pokemon gEnemyParty[6]; // 0x30045C0 - extern u32 gUnknown_0202E8AC; extern u32 gUnknown_0202E8B0; extern u16 gUnknown_0202E8B4; @@ -60,9 +69,6 @@ extern SpecialFunc gSpecials[]; extern u8 *gStdScripts[]; extern u8 *gStdScripts_End[]; -extern u8 * const gUnknown_083CE048[]; -extern struct Decoration gDecorations[]; - // This is defined in here so the optimizer can't see its value when compiling // script.c. void * const gNullScriptPtr = NULL; @@ -1410,7 +1416,7 @@ bool8 ScrCmd_bufferstd(struct ScriptContext *ctx) { u8 stringVarIndex = ScriptReadByte(ctx); u16 index = VarGet(ScriptReadHalfword(ctx)); - StringCopy(sScriptStringVars[stringVarIndex], gUnknown_083CE048[index]); + StringCopy(sScriptStringVars[stringVarIndex], gUnknown_083CE048[index].text); return FALSE; } diff --git a/src/script.c b/src/script.c index 7a9c8e102..488a67de1 100644 --- a/src/script.c +++ b/src/script.c @@ -1,6 +1,5 @@ #include "global.h" #include "script.h" -#include "asm_fieldmap.h" #include "event_data.h" #define RAM_SCRIPT_MAGIC 51 diff --git a/src/script_menu.c b/src/script_menu.c index 50941f9ac..23e8bf2d9 100644 --- a/src/script_menu.c +++ b/src/script_menu.c @@ -1,6 +1,7 @@ #include "global.h" #include "script_menu.h" #include "event_data.h" +#include "field_effect.h" #include "menu.h" #include "palette.h" #include "script.h" @@ -573,10 +574,6 @@ extern u8 gPCText_WhichPCShouldBeAccessed[]; extern u16 gScriptResult; -// field_effect -extern void FreeResourcesAndDestroySprite(struct Sprite *sprite); -extern u8 CreateMonSprite_PicBox(u16, s16, s16, u8); - bool8 sub_80B5054(u8 left, u8 top, u8 var3, u8 var4) { if (FuncIsActiveTask(sub_80B52B4) == 1) @@ -684,7 +681,7 @@ void sub_80B52B4(u8 taskId) { gScriptResult = var; } - sub_8072DEC(); + HandleDestroyMenuCursors(); MenuZeroFillWindowRect(gTasks[taskId].data[0], gTasks[taskId].data[1], gTasks[taskId].data[2], gTasks[taskId].data[3]); DestroyTask(taskId); EnableBothScriptContexts(); @@ -847,7 +844,7 @@ void sub_80B5684(u8 taskId) { gScriptResult = var; } - sub_8072DEC(); + HandleDestroyMenuCursors(); MenuZeroFillWindowRect(gTasks[taskId].data[0], gTasks[taskId].data[1], gTasks[taskId].data[2], gTasks[taskId].data[3]); DestroyTask(taskId); EnableBothScriptContexts(); diff --git a/src/script_movement.c b/src/script_movement.c index 2dc816532..31143ed6f 100644 --- a/src/script_movement.c +++ b/src/script_movement.c @@ -1,14 +1,12 @@ #include "global.h" -#include "asm.h" +#include "script_movement.h" +#include "field_map_obj.h" #include "field_map_obj_helpers.h" #include "task.h" +#include "util.h" -extern const u32 gBitTable[]; extern u8 *gUnknown_020384F8[]; -extern void UnfreezeMapObject(struct MapObject *); -extern bool8 FieldObjectIsSpecialAnimActive(struct MapObject *); - static void sub_80A2198(u8); static u8 sub_80A21E0(void); static bool8 sub_80A21F4(u8, u8, u8 *); diff --git a/src/script_pokemon_util_80C4BF0.c b/src/script_pokemon_util_80C4BF0.c index d111cf8f6..ecfd8111b 100644 --- a/src/script_pokemon_util_80C4BF0.c +++ b/src/script_pokemon_util_80C4BF0.c @@ -1,9 +1,13 @@ #include "global.h" -#include "asm.h" #include "battle.h" #include "berry.h" +#include "choose_party.h" #include "contest.h" +#include "contest_link_80C2020.h" +#include "contest_painting.h" #include "data2.h" +#include "daycare.h" +#include "debug.h" #include "decompress.h" #include "event_data.h" #include "items.h" @@ -22,24 +26,12 @@ #define CONTEST_ENTRY_PIC_LEFT 10 #define CONTEST_ENTRY_PIC_TOP 3 -extern void sub_80C46EC(void); -extern void sub_80C4740(void); -extern void sub_80C48F4(void); -extern void sub_80B2A7C(u8); -extern void sub_80AAF30(void); // matsuda debug? -extern u8 sub_80B2C4C(u8, u8); -extern void CB2_ContestPainting(void); -extern void sub_8042044(struct Pokemon *mon, u16, u8); -extern void sub_8121E10(void); -extern void sub_8121E34(void); - extern struct SpriteTemplate gUnknown_02024E8C; -extern struct SpritePalette *sub_80409C8(u16, u32, u32); extern u8 gContestPlayerMonIndex; extern u8 gIsLinkContest; extern u8 gPlayerPartyCount; -extern u8 gSelectedOrderFromParty[]; +extern u8 gBufferedMoves[]; extern u16 gSpecialVar_0x8004; extern u16 gSpecialVar_0x8005; @@ -415,7 +407,7 @@ u8 sub_80C5044(void) void ShowContestEntryMonPic(void) { - struct SpritePalette *paletteData; + const struct CompressedSpritePalette *palette; u32 var1, var2; u16 species; u8 spriteId; @@ -433,13 +425,18 @@ void ShowContestEntryMonPic(void) taskId = CreateTask(sub_80C5190, 0x50); gTasks[taskId].data[0] = 0; gTasks[taskId].data[1] = species; - HandleLoadSpecialPokePic((struct SpriteSheet *)&gMonFrontPicTable[species].data, - gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, - (u32)gUnknown_081FAF4C[0], gUnknown_081FAF4C[1], species, var1); - paletteData = sub_80409C8(species, var2, var1); - LoadCompressedObjectPalette(paletteData); + HandleLoadSpecialPokePic( + &gMonFrontPicTable[species], + gMonFrontPicCoords[species].coords, + gMonFrontPicCoords[species].y_offset, + (u32)gUnknown_081FAF4C[0], + gUnknown_081FAF4C[1], + species, + var1); + palette = sub_80409C8(species, var2, var1); + LoadCompressedObjectPalette(palette); GetMonSpriteTemplate_803C56C(species, 1); - gUnknown_02024E8C.paletteTag = paletteData->tag; + gUnknown_02024E8C.paletteTag = palette->tag; spriteId = CreateSprite(&gUnknown_02024E8C, 0x78, 0x40, 0); gTasks[taskId].data[2] = spriteId; gTasks[taskId].data[3] = left; @@ -560,16 +557,16 @@ u8 ScriptGiveMon(u16 species, u8 var, u16 item, u32 var3, u32 var4, u8 var5) nationalSpecies = SpeciesToNationalPokedexNum(species); // nested if check to fool compiler - if(sentToPc < 2) + switch(sentToPc) { - if(sentToPc >= 0) - { - // set both the seen and caught flags - sub_8090D90(nationalSpecies, 2); - sub_8090D90(nationalSpecies, 3); - } + case 0: + case 1: + GetNationalPokedexFlag(nationalSpecies, 2); + GetNationalPokedexFlag(nationalSpecies, 3); + return sentToPc; + default: + return sentToPc; } - return sentToPc; } u8 ScriptGiveEgg(u16 value) @@ -656,7 +653,7 @@ void sub_80C5568(void) void sub_80C5580(void) { - u8 var = gSelectedOrderFromParty[0]; + u8 var = gBufferedMoves[0]; switch(var) { @@ -679,7 +676,7 @@ void ChooseBattleTowerPlayerParty(void) void SetBattleTowerPlayerParty(void) { - u8 var = gSelectedOrderFromParty[0]; + u8 var = gBufferedMoves[0]; switch(var) { @@ -705,8 +702,8 @@ void ReducePlayerPartyToThree(void) // copy the selected pokemon according to the order. for(i = 0; i < 3; i++) - if(gSelectedOrderFromParty[i]) // as long as the order keeps going (did the player select 1 mon? 2? 3?), do not stop - party[i] = gPlayerParty[gSelectedOrderFromParty[i] - 1]; // index is 0 based, not literal + if(gBufferedMoves[i]) // as long as the order keeps going (did the player select 1 mon? 2? 3?), do not stop + party[i] = gPlayerParty[gBufferedMoves[i] - 1]; // index is 0 based, not literal // delete the last 3 pokemon CpuFill32(0, gPlayerParty, sizeof gPlayerParty); diff --git a/src/script_pokemon_util_80F99CC.c b/src/script_pokemon_util_80F99CC.c index 9e833ec34..606cd9dd4 100644 --- a/src/script_pokemon_util_80F99CC.c +++ b/src/script_pokemon_util_80F99CC.c @@ -1,9 +1,13 @@ #include "global.h" -#include "asm.h" #include "battle_party_menu.h" +#include "choose_party.h" +#include "contest.h" #include "data2.h" +#include "field_fadetransition.h" #include "palette.h" +#include "party_menu.h" #include "pokemon.h" +#include "pokemon_summary_screen.h" #include "rom4.h" #include "script.h" #include "script_pokemon_80F9.h" @@ -18,23 +22,7 @@ extern u16 gSpecialVar_0x8005; extern u8 gUnknown_02038694; extern u16 gScriptResult; -extern void (*gUnknown_0300485C)(void); - -extern void OpenPartyMenu(u8, u8); -extern void TryCreatePartyMenuMonIcon(u8, u8, struct Pokemon *); -extern void LoadHeldItemIconGraphics(void); -extern void CreateHeldItemIcons_806DC34(); // undefined args -extern u8 sub_806BD58(u8, u8); -extern void PartyMenuPrintMonsLevelOrStatus(void); -extern void PrintPartyMenuMonNicknames(void); -extern u8 sub_806B58C(u8); -extern u8 sub_80AE47C(struct Pokemon *party); -extern void sub_806BC3C(u8, u8); -extern u16 sub_806BD80(); // undefined args in battle_party_menu.c -extern u8 sub_806CA38(); -extern void sub_8123138(u8); -extern u8 sub_8040574(struct Pokemon *party); -extern void sub_809D9F0(struct Pokemon *party, u8, u8, void *, u32); +extern void (*gFieldCallback)(void); void sub_80F99CC(void) { @@ -71,7 +59,7 @@ void sub_80F9A8C(u8 taskId) if(!gPaletteFade.active) { gPaletteFade.bufferTransferDisabled = 1; - OpenPartyMenu(gTasks[taskId].data[0], 0); + OpenPartyMenu((u8) gTasks[taskId].data[0], 0); DestroyTask(taskId); } } @@ -284,7 +272,7 @@ void sub_80F9EEC(void) { sub_809D9F0(&gPlayerParty[0], gSpecialVar_0x8004, gPlayerPartyCount - 1, c2_exit_to_overworld_2_switch, 0); unk_2018000.unk8 = 3; - gUnknown_0300485C = sub_8080990; + gFieldCallback = sub_8080990; } void sub_80F9F3C(void) // count pokemon moves diff --git a/src/secret_base.c b/src/secret_base.c index c210a55d2..6291051a6 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -1,21 +1,25 @@ #include "global.h" -#include "string_util.h" -#include "strings.h" -#include "text.h" +#include "secret_base.h" +#include "decoration.h" #include "event_data.h" -#include "vars.h" -#include "rom4.h" -#include "asm.h" -#include "script.h" -#include "field_player_avatar.h" #include "field_camera.h" -#include "map_constants.h" -#include "task.h" -#include "palette.h" -#include "decoration.h" +#include "field_fadetransition.h" +#include "field_player_avatar.h" #include "field_weather.h" +#include "fieldmap.h" +#include "main.h" +#include "map_constants.h" +#include "map_name_popup.h" #include "metatile_behavior.h" +#include "palette.h" #include "pokemon.h" +#include "rom4.h" +#include "script.h" +#include "string_util.h" +#include "strings.h" +#include "task.h" +#include "text.h" +#include "vars.h" extern u8 gUnknown_020387DC; extern u16 gSpecialVar_0x8004; @@ -30,9 +34,7 @@ extern const struct } gUnknown_083D1358[7]; extern const u8 gUnknown_083D1374[4 * 16]; extern void *gUnknown_0300485C; -extern const u8 sub_807D770(void); extern const u8 gUnknown_083D13EC[12]; -extern const u8 sub_80BCCA4(u8); extern u8 gUnknown_081A2E14[]; @@ -251,7 +253,7 @@ void sub_80BBA48(u8 taskid) gSaveBlock1.secretBases[curbaseid].sbr_field_10 ++; sub_80BBA14(); warp_in(); - gUnknown_0300485C = sub_8080990; + gFieldCallback = sub_8080990; SetMainCallback2(CB2_LoadMap); DestroyTask(taskid); break; @@ -300,7 +302,7 @@ void sub_80BBBEC(u8 taskid) idx = 4 * (gUnknown_020387DC / 10); warp1_set(gSaveBlock1.location.mapGroup, gSaveBlock1.location.mapNum, -1, gUnknown_083D1374[idx + 2], gUnknown_083D1374[idx + 3]); warp_in(); - gUnknown_0300485C = sub_80BBB90; + gFieldCallback = sub_80BBB90; SetMainCallback2(CB2_LoadMap); DestroyTask(taskid); } @@ -393,84 +395,84 @@ void sub_80BBCCC(u8 flagIn) { asm(".syntax unified\n\ push {r4-r7,lr}\n\ - mov r7, r8\n\ - push {r7}\n\ - sub sp, 0x4\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - mov r8, r0\n\ - bl CurrentMapIsSecretBase\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - beq _080BBDBC\n\ - ldr r0, _080BBD70 @ =0x00004054\n\ - bl VarGet\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ - movs r1, 0\n\ - mov r0, sp\n\ - strh r1, [r0]\n\ - ldr r6, _080BBD74 @ =gSaveBlock1\n\ - mov r4, sp\n\ - ldr r0, _080BBD78 @ =0x00001a2a\n\ - adds r7, r6, r0\n\ + mov r7, r8\n\ + push {r7}\n\ + sub sp, 0x4\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + mov r8, r0\n\ + bl CurrentMapIsSecretBase\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + beq _080BBDBC\n\ + ldr r0, _080BBD70 @ =0x00004054\n\ + bl VarGet\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + movs r1, 0\n\ + mov r0, sp\n\ + strh r1, [r0]\n\ + ldr r6, _080BBD74 @ =gSaveBlock1\n\ + mov r4, sp\n\ + ldr r0, _080BBD78 @ =0x00001a2a\n\ + adds r7, r6, r0\n\ _080BBCFC:\n\ - lsls r0, r5, 2\n\ - adds r0, r5\n\ - lsls r0, 5\n\ - ldrh r1, [r4]\n\ - adds r2, r0, r1\n\ - ldr r1, _080BBD7C @ =0x00001a1a\n\ - adds r0, r6, r1\n\ - adds r1, r2, r0\n\ - ldrb r0, [r1]\n\ - subs r0, 0x1\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0x77\n\ - bhi _080BBD3A\n\ - ldr r0, _080BBD80 @ =gDecorations\n\ - ldrb r3, [r1]\n\ - lsls r1, r3, 5\n\ - adds r1, r0\n\ - ldrb r0, [r1, 0x11]\n\ - cmp r0, 0x4\n\ - beq _080BBD3A\n\ - adds r0, r2, r7\n\ - ldrb r2, [r0]\n\ - lsrs r0, r2, 4\n\ - adds r0, 0x7\n\ - movs r1, 0xF\n\ - ands r1, r2\n\ - adds r1, 0x7\n\ - adds r2, r3, 0\n\ - bl sub_80FF394\n\ + lsls r0, r5, 2\n\ + adds r0, r5\n\ + lsls r0, 5\n\ + ldrh r1, [r4]\n\ + adds r2, r0, r1\n\ + ldr r1, _080BBD7C @ =0x00001a1a\n\ + adds r0, r6, r1\n\ + adds r1, r2, r0\n\ + ldrb r0, [r1]\n\ + subs r0, 0x1\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + cmp r0, 0x77\n\ + bhi _080BBD3A\n\ + ldr r0, _080BBD80 @ =gDecorations\n\ + ldrb r3, [r1]\n\ + lsls r1, r3, 5\n\ + adds r1, r0\n\ + ldrb r0, [r1, 0x11]\n\ + cmp r0, 0x4\n\ + beq _080BBD3A\n\ + adds r0, r2, r7\n\ + ldrb r2, [r0]\n\ + lsrs r0, r2, 4\n\ + adds r0, 0x7\n\ + movs r1, 0xF\n\ + ands r1, r2\n\ + adds r1, 0x7\n\ + adds r2, r3, 0\n\ + bl sub_80FF394\n\ _080BBD3A:\n\ - ldrh r0, [r4]\n\ - adds r0, 0x1\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - strh r0, [r4]\n\ - cmp r0, 0xF\n\ - bls _080BBCFC\n\ - cmp r5, 0\n\ - beq _080BBD88\n\ - mov r4, sp\n\ - adds r4, 0x2\n\ - movs r2, 0x88\n\ - lsls r2, 2\n\ - mov r0, sp\n\ - adds r1, r4, 0\n\ - bl sub_80BB764\n\ - mov r0, sp\n\ - ldrh r0, [r0]\n\ - adds r0, 0x7\n\ - ldrh r1, [r4]\n\ - adds r1, 0x7\n\ - ldr r2, _080BBD84 @ =0x00000e21\n\ - bl MapGridSetMetatileIdAt\n\ - b _080BBDBC\n\ - .align 2, 0\n\ + ldrh r0, [r4]\n\ + adds r0, 0x1\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + strh r0, [r4]\n\ + cmp r0, 0xF\n\ + bls _080BBCFC\n\ + cmp r5, 0\n\ + beq _080BBD88\n\ + mov r4, sp\n\ + adds r4, 0x2\n\ + movs r2, 0x88\n\ + lsls r2, 2\n\ + mov r0, sp\n\ + adds r1, r4, 0\n\ + bl sub_80BB764\n\ + mov r0, sp\n\ + ldrh r0, [r0]\n\ + adds r0, 0x7\n\ + ldrh r1, [r4]\n\ + adds r1, 0x7\n\ + ldr r2, _080BBD84 @ =0x00000e21\n\ + bl MapGridSetMetatileIdAt\n\ + b _080BBDBC\n\ + .align 2, 0\n\ _080BBD70: .4byte 0x00004054\n\ _080BBD74: .4byte gSaveBlock1\n\ _080BBD78: .4byte 0x00001a2a\n\ @@ -478,37 +480,37 @@ _080BBD7C: .4byte 0x00001a1a\n\ _080BBD80: .4byte gDecorations\n\ _080BBD84: .4byte 0x00000e21\n\ _080BBD88:\n\ - mov r0, r8\n\ - cmp r0, 0x1\n\ - bne _080BBDBC\n\ - ldr r0, _080BBDC8 @ =0x00004089\n\ - bl VarGet\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - cmp r0, 0x1\n\ - bne _080BBDBC\n\ - mov r4, sp\n\ - adds r4, 0x2\n\ - movs r2, 0x88\n\ - lsls r2, 2\n\ - mov r0, sp\n\ - adds r1, r4, 0\n\ - bl sub_80BB764\n\ - mov r0, sp\n\ - ldrh r0, [r0]\n\ - adds r0, 0x7\n\ - ldrh r1, [r4]\n\ - adds r1, 0x7\n\ - ldr r2, _080BBDCC @ =0x00000e0a\n\ - bl MapGridSetMetatileIdAt\n\ + mov r0, r8\n\ + cmp r0, 0x1\n\ + bne _080BBDBC\n\ + ldr r0, _080BBDC8 @ =0x00004089\n\ + bl VarGet\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + cmp r0, 0x1\n\ + bne _080BBDBC\n\ + mov r4, sp\n\ + adds r4, 0x2\n\ + movs r2, 0x88\n\ + lsls r2, 2\n\ + mov r0, sp\n\ + adds r1, r4, 0\n\ + bl sub_80BB764\n\ + mov r0, sp\n\ + ldrh r0, [r0]\n\ + adds r0, 0x7\n\ + ldrh r1, [r4]\n\ + adds r1, 0x7\n\ + ldr r2, _080BBDCC @ =0x00000e0a\n\ + bl MapGridSetMetatileIdAt\n\ _080BBDBC:\n\ - add sp, 0x4\n\ - pop {r3}\n\ - mov r8, r3\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ + add sp, 0x4\n\ + pop {r3}\n\ + mov r8, r3\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ _080BBDC8: .4byte 0x00004089\n\ _080BBDCC: .4byte 0x00000e0a\n\ .syntax divided\n"); @@ -518,220 +520,220 @@ __attribute__((naked)) void sub_80BBDD0(void) { asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x14\n\ - ldr r0, _080BBE00 @ =0x00004054\n\ - bl VarGet\n\ - lsls r0, 16\n\ - lsrs r4, r0, 16\n\ - bl CurrentMapIsSecretBase\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - bne _080BBE08\n\ - ldr r0, _080BBE04 @ =gSaveBlock1 + 0x2688\n\ - str r0, [sp, 0x4]\n\ - adds r0, 0xC\n\ - str r0, [sp, 0x8]\n\ - movs r1, 0xC\n\ - str r1, [sp, 0xC]\n\ - b _080BBE1E\n\ - .align 2, 0\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x14\n\ + ldr r0, _080BBE00 @ =0x00004054\n\ + bl VarGet\n\ + lsls r0, 16\n\ + lsrs r4, r0, 16\n\ + bl CurrentMapIsSecretBase\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + bne _080BBE08\n\ + ldr r0, _080BBE04 @ =gSaveBlock1 + 0x2688\n\ + str r0, [sp, 0x4]\n\ + adds r0, 0xC\n\ + str r0, [sp, 0x8]\n\ + movs r1, 0xC\n\ + str r1, [sp, 0xC]\n\ + b _080BBE1E\n\ + .align 2, 0\n\ _080BBE00: .4byte 0x00004054\n\ _080BBE04: .4byte gSaveBlock1 + 0x2688\n\ _080BBE08:\n\ - lsls r1, r4, 2\n\ - adds r1, r4\n\ - lsls r1, 5\n\ - ldr r0, _080BBF7C @ =gSaveBlock1 + 0x1A1A\n\ - adds r2, r1, r0\n\ - str r2, [sp, 0x4]\n\ - adds r0, 0x10\n\ - adds r1, r0\n\ - str r1, [sp, 0x8]\n\ - movs r3, 0x10\n\ - str r3, [sp, 0xC]\n\ + lsls r1, r4, 2\n\ + adds r1, r4\n\ + lsls r1, 5\n\ + ldr r0, _080BBF7C @ =gSaveBlock1 + 0x1A1A\n\ + adds r2, r1, r0\n\ + str r2, [sp, 0x4]\n\ + adds r0, 0x10\n\ + adds r1, r0\n\ + str r1, [sp, 0x8]\n\ + movs r3, 0x10\n\ + str r3, [sp, 0xC]\n\ _080BBE1E:\n\ - movs r6, 0\n\ - ldr r4, [sp, 0xC]\n\ - cmp r6, r4\n\ - bcc _080BBE28\n\ - b _080BBF6C\n\ + movs r6, 0\n\ + ldr r4, [sp, 0xC]\n\ + cmp r6, r4\n\ + bcc _080BBE28\n\ + b _080BBF6C\n\ _080BBE28:\n\ - ldr r5, _080BBF80 @ =gSaveBlock1\n\ - mov r10, r5\n\ + ldr r5, _080BBF80 @ =gSaveBlock1\n\ + mov r10, r5\n\ _080BBE2C:\n\ - ldr r1, [sp, 0x4]\n\ - adds r0, r1, r6\n\ - ldrb r1, [r0]\n\ - mov r9, r0\n\ - adds r2, r6, 0x1\n\ - str r2, [sp, 0x10]\n\ - cmp r1, 0\n\ - bne _080BBE3E\n\ - b _080BBF5E\n\ + ldr r1, [sp, 0x4]\n\ + adds r0, r1, r6\n\ + ldrb r1, [r0]\n\ + mov r9, r0\n\ + adds r2, r6, 0x1\n\ + str r2, [sp, 0x10]\n\ + cmp r1, 0\n\ + bne _080BBE3E\n\ + b _080BBF5E\n\ _080BBE3E:\n\ - ldrb r0, [r0]\n\ - lsls r0, 5\n\ - ldr r3, _080BBF84 @ =gDecorations\n\ - adds r0, r3\n\ - ldrb r0, [r0, 0x11]\n\ - cmp r0, 0x4\n\ - beq _080BBE4E\n\ - b _080BBF5E\n\ + ldrb r0, [r0]\n\ + lsls r0, 5\n\ + ldr r3, _080BBF84 @ =gDecorations\n\ + adds r0, r3\n\ + ldrb r0, [r0, 0x11]\n\ + cmp r0, 0x4\n\ + beq _080BBE4E\n\ + b _080BBF5E\n\ _080BBE4E:\n\ - movs r5, 0\n\ - ldr r0, _080BBF88 @ =gMapHeader\n\ - ldr r2, [r0, 0x4]\n\ - ldrb r3, [r2]\n\ - mov r8, r0\n\ - cmp r5, r3\n\ - bcs _080BBE8E\n\ - ldr r0, [r2, 0x4]\n\ - ldrh r1, [r0, 0x14]\n\ - ldr r4, _080BBF8C @ =gSpecialVar_0x8004\n\ - ldrh r0, [r4]\n\ - adds r0, 0xAE\n\ - adds r7, r4, 0\n\ - cmp r1, r0\n\ - beq _080BBE8E\n\ - adds r4, r2, 0\n\ - adds r2, r3, 0\n\ + movs r5, 0\n\ + ldr r0, _080BBF88 @ =gMapHeader\n\ + ldr r2, [r0, 0x4]\n\ + ldrb r3, [r2]\n\ + mov r8, r0\n\ + cmp r5, r3\n\ + bcs _080BBE8E\n\ + ldr r0, [r2, 0x4]\n\ + ldrh r1, [r0, 0x14]\n\ + ldr r4, _080BBF8C @ =gSpecialVar_0x8004\n\ + ldrh r0, [r4]\n\ + adds r0, 0xAE\n\ + adds r7, r4, 0\n\ + cmp r1, r0\n\ + beq _080BBE8E\n\ + adds r4, r2, 0\n\ + adds r2, r3, 0\n\ _080BBE70:\n\ - adds r0, r5, 0x1\n\ - lsls r0, 24\n\ - lsrs r5, r0, 24\n\ - cmp r5, r2\n\ - bcs _080BBE8E\n\ - ldr r1, [r4, 0x4]\n\ - lsls r0, r5, 1\n\ - adds r0, r5\n\ - lsls r0, 3\n\ - adds r0, r1\n\ - ldrh r1, [r0, 0x14]\n\ - ldrh r0, [r7]\n\ - adds r0, 0xAE\n\ - cmp r1, r0\n\ - bne _080BBE70\n\ + adds r0, r5, 0x1\n\ + lsls r0, 24\n\ + lsrs r5, r0, 24\n\ + cmp r5, r2\n\ + bcs _080BBE8E\n\ + ldr r1, [r4, 0x4]\n\ + lsls r0, r5, 1\n\ + adds r0, r5\n\ + lsls r0, 3\n\ + adds r0, r1\n\ + ldrh r1, [r0, 0x14]\n\ + ldrh r0, [r7]\n\ + adds r0, 0xAE\n\ + cmp r1, r0\n\ + bne _080BBE70\n\ _080BBE8E:\n\ - mov r1, r8\n\ - ldr r0, [r1, 0x4]\n\ - ldrb r0, [r0]\n\ - cmp r5, r0\n\ - beq _080BBF5E\n\ - ldr r7, _080BBF90 @ =gSpecialVar_0x8006\n\ - ldr r2, [sp, 0x8]\n\ - adds r1, r2, r6\n\ - ldrb r0, [r1]\n\ - lsrs r0, 4\n\ - strh r0, [r7]\n\ - ldr r6, _080BBF94 @ =gSpecialVar_0x8007\n\ - ldrb r1, [r1]\n\ - movs r0, 0xF\n\ - ands r0, r1\n\ - strh r0, [r6]\n\ - ldrh r0, [r7]\n\ - adds r0, 0x7\n\ - ldrh r1, [r6]\n\ - adds r1, 0x7\n\ - bl MapGridGetMetatileBehaviorAt\n\ - lsls r0, 24\n\ - lsrs r4, r0, 24\n\ - adds r0, r4, 0\n\ - bl sub_80572D8\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0x1\n\ - beq _080BBEDA\n\ - adds r0, r4, 0\n\ - bl sub_80572EC\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0x1\n\ - bne _080BBF5E\n\ + mov r1, r8\n\ + ldr r0, [r1, 0x4]\n\ + ldrb r0, [r0]\n\ + cmp r5, r0\n\ + beq _080BBF5E\n\ + ldr r7, _080BBF90 @ =gSpecialVar_0x8006\n\ + ldr r2, [sp, 0x8]\n\ + adds r1, r2, r6\n\ + ldrb r0, [r1]\n\ + lsrs r0, 4\n\ + strh r0, [r7]\n\ + ldr r6, _080BBF94 @ =gSpecialVar_0x8007\n\ + ldrb r1, [r1]\n\ + movs r0, 0xF\n\ + ands r0, r1\n\ + strh r0, [r6]\n\ + ldrh r0, [r7]\n\ + adds r0, 0x7\n\ + ldrh r1, [r6]\n\ + adds r1, 0x7\n\ + bl MapGridGetMetatileBehaviorAt\n\ + lsls r0, 24\n\ + lsrs r4, r0, 24\n\ + adds r0, r4, 0\n\ + bl sub_80572D8\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + cmp r0, 0x1\n\ + beq _080BBEDA\n\ + adds r0, r4, 0\n\ + bl sub_80572EC\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + cmp r0, 0x1\n\ + bne _080BBF5E\n\ _080BBEDA:\n\ - mov r3, r8\n\ - ldr r0, [r3, 0x4]\n\ - ldr r1, [r0, 0x4]\n\ - lsls r4, r5, 1\n\ - adds r4, r5\n\ - lsls r4, 3\n\ - adds r1, r4, r1\n\ - ldr r5, _080BBF98 @ =0x00003f20\n\ - adds r0, r5, 0\n\ - ldrb r1, [r1, 0x1]\n\ - adds r0, r1\n\ - ldr r1, _080BBF9C @ =gScriptResult\n\ - strh r0, [r1]\n\ - ldrh r0, [r1]\n\ - mov r2, r9\n\ - ldrb r1, [r2]\n\ - lsls r1, 5\n\ - ldr r3, _080BBFA0 @ =gDecorations + 0x1C\n\ - adds r1, r3\n\ - ldr r1, [r1]\n\ - ldrh r1, [r1]\n\ - bl VarSet\n\ - mov r5, r8\n\ - ldr r0, [r5, 0x4]\n\ - ldr r0, [r0, 0x4]\n\ - adds r4, r0\n\ - ldrb r0, [r4]\n\ - ldr r1, _080BBF9C @ =gScriptResult\n\ - strh r0, [r1]\n\ - ldr r2, _080BBF8C @ =gSpecialVar_0x8004\n\ - ldrh r0, [r2]\n\ - adds r0, 0xAE\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - bl FlagReset\n\ - ldr r3, _080BBF9C @ =gScriptResult\n\ - ldrb r0, [r3]\n\ - mov r4, r10\n\ - ldrb r1, [r4, 0x5]\n\ - ldrb r2, [r4, 0x4]\n\ - bl show_sprite\n\ - ldr r5, _080BBF9C @ =gScriptResult\n\ - ldrb r0, [r5]\n\ - ldrb r1, [r4, 0x5]\n\ - ldrb r2, [r4, 0x4]\n\ - movs r4, 0\n\ - ldrsh r3, [r7, r4]\n\ - movs r5, 0\n\ - ldrsh r4, [r6, r5]\n\ - str r4, [sp]\n\ - bl sub_805C0F8\n\ - ldr r1, _080BBF9C @ =gScriptResult\n\ - ldrb r0, [r1]\n\ - mov r2, r10\n\ - ldrb r1, [r2, 0x5]\n\ - ldrb r2, [r2, 0x4]\n\ - bl sub_805C78C\n\ - ldr r3, _080BBF8C @ =gSpecialVar_0x8004\n\ - ldrh r0, [r3]\n\ - adds r0, 0x1\n\ - strh r0, [r3]\n\ + mov r3, r8\n\ + ldr r0, [r3, 0x4]\n\ + ldr r1, [r0, 0x4]\n\ + lsls r4, r5, 1\n\ + adds r4, r5\n\ + lsls r4, 3\n\ + adds r1, r4, r1\n\ + ldr r5, _080BBF98 @ =0x00003f20\n\ + adds r0, r5, 0\n\ + ldrb r1, [r1, 0x1]\n\ + adds r0, r1\n\ + ldr r1, _080BBF9C @ =gScriptResult\n\ + strh r0, [r1]\n\ + ldrh r0, [r1]\n\ + mov r2, r9\n\ + ldrb r1, [r2]\n\ + lsls r1, 5\n\ + ldr r3, _080BBFA0 @ =gDecorations + 0x1C\n\ + adds r1, r3\n\ + ldr r1, [r1]\n\ + ldrh r1, [r1]\n\ + bl VarSet\n\ + mov r5, r8\n\ + ldr r0, [r5, 0x4]\n\ + ldr r0, [r0, 0x4]\n\ + adds r4, r0\n\ + ldrb r0, [r4]\n\ + ldr r1, _080BBF9C @ =gScriptResult\n\ + strh r0, [r1]\n\ + ldr r2, _080BBF8C @ =gSpecialVar_0x8004\n\ + ldrh r0, [r2]\n\ + adds r0, 0xAE\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + bl FlagReset\n\ + ldr r3, _080BBF9C @ =gScriptResult\n\ + ldrb r0, [r3]\n\ + mov r4, r10\n\ + ldrb r1, [r4, 0x5]\n\ + ldrb r2, [r4, 0x4]\n\ + bl show_sprite\n\ + ldr r5, _080BBF9C @ =gScriptResult\n\ + ldrb r0, [r5]\n\ + ldrb r1, [r4, 0x5]\n\ + ldrb r2, [r4, 0x4]\n\ + movs r4, 0\n\ + ldrsh r3, [r7, r4]\n\ + movs r5, 0\n\ + ldrsh r4, [r6, r5]\n\ + str r4, [sp]\n\ + bl sub_805C0F8\n\ + ldr r1, _080BBF9C @ =gScriptResult\n\ + ldrb r0, [r1]\n\ + mov r2, r10\n\ + ldrb r1, [r2, 0x5]\n\ + ldrb r2, [r2, 0x4]\n\ + bl sub_805C78C\n\ + ldr r3, _080BBF8C @ =gSpecialVar_0x8004\n\ + ldrh r0, [r3]\n\ + adds r0, 0x1\n\ + strh r0, [r3]\n\ _080BBF5E:\n\ - ldr r4, [sp, 0x10]\n\ - lsls r0, r4, 24\n\ - lsrs r6, r0, 24\n\ - ldr r5, [sp, 0xC]\n\ - cmp r6, r5\n\ - bcs _080BBF6C\n\ - b _080BBE2C\n\ + ldr r4, [sp, 0x10]\n\ + lsls r0, r4, 24\n\ + lsrs r6, r0, 24\n\ + ldr r5, [sp, 0xC]\n\ + cmp r6, r5\n\ + bcs _080BBF6C\n\ + b _080BBE2C\n\ _080BBF6C:\n\ - add sp, 0x14\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ + add sp, 0x14\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ _080BBF7C: .4byte gSaveBlock1 + 0x1A1A\n\ _080BBF80: .4byte gSaveBlock1\n\ _080BBF84: .4byte gDecorations\n\ @@ -794,7 +796,7 @@ void sub_80BC074(u8 taskid) case 2: copy_saved_warp2_bank_and_enter_x_to_warp1(0x7E); warp_in(); - gUnknown_0300485C = mapldr_default; + gFieldCallback = mapldr_default; SetMainCallback2(CB2_LoadMap); ScriptContext2_Disable(); DestroyTask(taskid); @@ -824,8 +826,6 @@ u8 sub_80BC14C(u8 sbid) return 0; } - - u8 *sub_80BC190(u8 *dest, u8 arg1) { // 80bc190 u8 local1; u8 *str; @@ -902,148 +902,148 @@ __attribute__((naked)) void sub_80BC300(void) { asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0xC\n\ - movs r0, 0\n\ - mov r10, r0\n\ - movs r6, 0\n\ - mov r9, r6\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0xC\n\ + movs r0, 0\n\ + mov r10, r0\n\ + movs r6, 0\n\ + mov r9, r6\n\ _080BC314:\n\ - movs r4, 0\n\ - lsls r3, r6, 2\n\ - lsls r2, r6, 1\n\ - ldr r7, _080BC424 @ =gPlayerParty\n\ - adds r1, r6, 0x1\n\ - str r1, [sp]\n\ - adds r1, r3, 0\n\ + movs r4, 0\n\ + lsls r3, r6, 2\n\ + lsls r2, r6, 1\n\ + ldr r7, _080BC424 @ =gPlayerParty\n\ + adds r1, r6, 0x1\n\ + str r1, [sp]\n\ + adds r1, r3, 0\n\ _080BC322:\n\ - adds r0, r1, r4\n\ - lsls r0, 1\n\ - ldr r5, _080BC428 @ =gSaveBlock1 + 0x1A54\n\ - adds r0, r5, r0\n\ - mov r5, r9\n\ - strh r5, [r0]\n\ - adds r0, r4, 0x1\n\ - lsls r0, 16\n\ - lsrs r4, r0, 16\n\ - cmp r4, 0x3\n\ - bls _080BC322\n\ - ldr r1, _080BC42C @ =gSaveBlock1 + 0x1A84\n\ - adds r0, r1, r2\n\ - strh r5, [r0]\n\ - ldr r5, _080BC430 @ =gSaveBlock1 + 0x1A90\n\ - adds r0, r5, r2\n\ - mov r1, r9\n\ - strh r1, [r0]\n\ - ldr r2, _080BC434 @ =gSaveBlock1 + 0x1A9C\n\ - adds r0, r2, r6\n\ - mov r5, r9\n\ - strb r5, [r0]\n\ - ldr r1, _080BC438 @ =gSaveBlock1 + 0x1A3C\n\ - adds r0, r1, r3\n\ - mov r2, r9\n\ - str r2, [r0]\n\ - ldr r3, _080BC43C @ =gSaveBlock1 + 0x1AA2\n\ - adds r0, r3, r6\n\ - strb r2, [r0]\n\ - movs r0, 0x64\n\ - adds r5, r6, 0\n\ - muls r5, r0\n\ - adds r4, r5, r7\n\ - adds r0, r4, 0\n\ - movs r1, 0xB\n\ - bl GetMonData\n\ - cmp r0, 0\n\ - beq _080BC408\n\ - adds r0, r4, 0\n\ - movs r1, 0x2D\n\ - bl GetMonData\n\ - cmp r0, 0\n\ - bne _080BC408\n\ - movs r4, 0\n\ - mov r0, r10\n\ - lsls r0, 2\n\ - mov r8, r0\n\ - mov r1, r10\n\ - lsls r7, r1, 1\n\ - adds r1, 0x1\n\ - str r1, [sp, 0x4]\n\ - ldr r2, _080BC424 @ =gPlayerParty\n\ + adds r0, r1, r4\n\ + lsls r0, 1\n\ + ldr r5, _080BC428 @ =gSaveBlock1 + 0x1A54\n\ + adds r0, r5, r0\n\ + mov r5, r9\n\ + strh r5, [r0]\n\ + adds r0, r4, 0x1\n\ + lsls r0, 16\n\ + lsrs r4, r0, 16\n\ + cmp r4, 0x3\n\ + bls _080BC322\n\ + ldr r1, _080BC42C @ =gSaveBlock1 + 0x1A84\n\ + adds r0, r1, r2\n\ + strh r5, [r0]\n\ + ldr r5, _080BC430 @ =gSaveBlock1 + 0x1A90\n\ + adds r0, r5, r2\n\ + mov r1, r9\n\ + strh r1, [r0]\n\ + ldr r2, _080BC434 @ =gSaveBlock1 + 0x1A9C\n\ + adds r0, r2, r6\n\ + mov r5, r9\n\ + strb r5, [r0]\n\ + ldr r1, _080BC438 @ =gSaveBlock1 + 0x1A3C\n\ + adds r0, r1, r3\n\ + mov r2, r9\n\ + str r2, [r0]\n\ + ldr r3, _080BC43C @ =gSaveBlock1 + 0x1AA2\n\ + adds r0, r3, r6\n\ + strb r2, [r0]\n\ + movs r0, 0x64\n\ + adds r5, r6, 0\n\ + muls r5, r0\n\ + adds r4, r5, r7\n\ + adds r0, r4, 0\n\ + movs r1, 0xB\n\ + bl GetMonData\n\ + cmp r0, 0\n\ + beq _080BC408\n\ + adds r0, r4, 0\n\ + movs r1, 0x2D\n\ + bl GetMonData\n\ + cmp r0, 0\n\ + bne _080BC408\n\ + movs r4, 0\n\ + mov r0, r10\n\ + lsls r0, 2\n\ + mov r8, r0\n\ + mov r1, r10\n\ + lsls r7, r1, 1\n\ + adds r1, 0x1\n\ + str r1, [sp, 0x4]\n\ + ldr r2, _080BC424 @ =gPlayerParty\n\ _080BC38E:\n\ - adds r1, r4, 0\n\ - adds r1, 0xD\n\ - adds r0, r5, r2\n\ - str r2, [sp, 0x8]\n\ - bl GetMonData\n\ - mov r3, r8\n\ - adds r1, r3, r4\n\ - lsls r1, 1\n\ - ldr r3, _080BC428 @ =gSaveBlock1 + 0x1A54\n\ - adds r1, r3, r1\n\ - strh r0, [r1]\n\ - adds r0, r4, 0x1\n\ - lsls r0, 16\n\ - lsrs r4, r0, 16\n\ - ldr r2, [sp, 0x8]\n\ - cmp r4, 0x3\n\ - bls _080BC38E\n\ - movs r0, 0x64\n\ - adds r4, r6, 0\n\ - muls r4, r0\n\ - ldr r0, _080BC424 @ =gPlayerParty\n\ - adds r4, r0\n\ - adds r0, r4, 0\n\ - movs r1, 0xB\n\ - bl GetMonData\n\ - ldr r5, _080BC42C @ =gSaveBlock1 + 0x1A84\n\ - adds r1, r5, r7\n\ - strh r0, [r1]\n\ - adds r0, r4, 0\n\ - movs r1, 0xC\n\ - bl GetMonData\n\ - ldr r2, _080BC430 @ =gSaveBlock1 + 0x1A90\n\ - adds r1, r2, r7\n\ - strh r0, [r1]\n\ - adds r0, r4, 0\n\ - movs r1, 0x38\n\ - bl GetMonData\n\ - ldr r1, _080BC434 @ =gSaveBlock1 + 0x1A9C\n\ - add r1, r10\n\ - strb r0, [r1]\n\ - adds r0, r4, 0\n\ - movs r1, 0\n\ - bl GetMonData\n\ - ldr r1, _080BC438 @ =gSaveBlock1 + 0x1A3C\n\ - add r1, r8\n\ - str r0, [r1]\n\ - adds r0, r4, 0\n\ - bl sub_80BC298\n\ - ldr r1, _080BC43C @ =gSaveBlock1 + 0x1AA2\n\ - add r1, r10\n\ - strb r0, [r1]\n\ - ldr r3, [sp, 0x4]\n\ - lsls r0, r3, 16\n\ - lsrs r0, 16\n\ - mov r10, r0\n\ + adds r1, r4, 0\n\ + adds r1, 0xD\n\ + adds r0, r5, r2\n\ + str r2, [sp, 0x8]\n\ + bl GetMonData\n\ + mov r3, r8\n\ + adds r1, r3, r4\n\ + lsls r1, 1\n\ + ldr r3, _080BC428 @ =gSaveBlock1 + 0x1A54\n\ + adds r1, r3, r1\n\ + strh r0, [r1]\n\ + adds r0, r4, 0x1\n\ + lsls r0, 16\n\ + lsrs r4, r0, 16\n\ + ldr r2, [sp, 0x8]\n\ + cmp r4, 0x3\n\ + bls _080BC38E\n\ + movs r0, 0x64\n\ + adds r4, r6, 0\n\ + muls r4, r0\n\ + ldr r0, _080BC424 @ =gPlayerParty\n\ + adds r4, r0\n\ + adds r0, r4, 0\n\ + movs r1, 0xB\n\ + bl GetMonData\n\ + ldr r5, _080BC42C @ =gSaveBlock1 + 0x1A84\n\ + adds r1, r5, r7\n\ + strh r0, [r1]\n\ + adds r0, r4, 0\n\ + movs r1, 0xC\n\ + bl GetMonData\n\ + ldr r2, _080BC430 @ =gSaveBlock1 + 0x1A90\n\ + adds r1, r2, r7\n\ + strh r0, [r1]\n\ + adds r0, r4, 0\n\ + movs r1, 0x38\n\ + bl GetMonData\n\ + ldr r1, _080BC434 @ =gSaveBlock1 + 0x1A9C\n\ + add r1, r10\n\ + strb r0, [r1]\n\ + adds r0, r4, 0\n\ + movs r1, 0\n\ + bl GetMonData\n\ + ldr r1, _080BC438 @ =gSaveBlock1 + 0x1A3C\n\ + add r1, r8\n\ + str r0, [r1]\n\ + adds r0, r4, 0\n\ + bl sub_80BC298\n\ + ldr r1, _080BC43C @ =gSaveBlock1 + 0x1AA2\n\ + add r1, r10\n\ + strb r0, [r1]\n\ + ldr r3, [sp, 0x4]\n\ + lsls r0, r3, 16\n\ + lsrs r0, 16\n\ + mov r10, r0\n\ _080BC408:\n\ - ldr r5, [sp]\n\ - lsls r0, r5, 16\n\ - lsrs r6, r0, 16\n\ - cmp r6, 0x5\n\ - bls _080BC314\n\ - add sp, 0xC\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ + ldr r5, [sp]\n\ + lsls r0, r5, 16\n\ + lsrs r6, r0, 16\n\ + cmp r6, 0x5\n\ + bls _080BC314\n\ + add sp, 0xC\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ _080BC424: .4byte gPlayerParty\n\ _080BC428: .4byte gSaveBlock1 + 0x1A54\n\ _080BC42C: .4byte gSaveBlock1 + 0x1A84\n\ diff --git a/src/shop.c b/src/shop.c index 81c403e92..d53646a88 100644 --- a/src/shop.c +++ b/src/shop.c @@ -1,9 +1,12 @@ #include "global.h" -#include "asm.h" +#include "shop.h" #include "decompress.h" +#include "field_fadetransition.h" #include "field_weather.h" +#include "item_menu.h" #include "main.h" #include "menu.h" +#include "menu_helpers.h" #include "money.h" #include "palette.h" #include "script.h" @@ -11,6 +14,8 @@ #include "sprite.h" #include "strings.h" #include "task.h" +#include "tv.h" +#include "unknown_task.h" struct UnknownShopStruct { @@ -35,26 +40,6 @@ extern u16 gBuyMenuFrame_Tilemap[]; extern u16 gMenuMoneyPal[16]; extern u16 gUnknown_083CC710[2]; -extern void sub_80A6300(void); -extern void sub_80BE3BC(void); -extern void DisplayItemMessageOnField(u8, const u8*, TaskFunc, u16); -extern u8 sub_807D770(void); -extern void pal_fill_black(void); -extern void sub_80B3764(int, int); -extern void sub_80B37EC(void); -extern void sub_80B40E8(u8); -extern void BuyMenuDrawMapGraphics(void); -extern void sub_80F944C(void); -extern void CreateVerticalScrollIndicators(u32, u32, u32); // unknown args -extern void sub_80F979C(u32, u32); // unknown args - -void sub_80B2E38(u8); -void HandleShopMenuQuit(u8); -void sub_80B2FA0(u8); -void BuyMenuDrawGraphics(void); -void sub_80B3240(void); -void sub_80B3270(void); - u8 CreateShopMenu(bool8 var) { ScriptContext2_Enable(); @@ -154,7 +139,7 @@ void sub_80B2F30(u8 taskId) void HandleShopMenuQuit(u8 taskId) { - sub_8072DEC(); + HandleDestroyMenuCursors(); MenuZeroFillWindowRect(0, 0, 11, 8); sub_80BE3BC(); // in tv.s? ScriptContext2_Disable(); diff --git a/src/slot_machine.c b/src/slot_machine.c index c087bf6b4..c9a06a758 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -1,4 +1,5 @@ #include "global.h" +#include "slot_machine.h" #include "decompress.h" #include "palette.h" #include "task.h" @@ -31,11 +32,6 @@ extern const u16 gUnknown_08E95A18[]; extern u16 gUnknown_08E95AB8[]; extern u16 gUnknown_08E95FB8[]; - -void sub_8104DA4(void); - -u8 sub_8105BB4(u8, u8, s16); - static void LoadSlotMachineWheelOverlay(void); void sub_8104CAC(u8 arg0) { diff --git a/src/smokescreen.c b/src/smokescreen.c index 0406c1cb3..8345cb6ad 100644 --- a/src/smokescreen.c +++ b/src/smokescreen.c @@ -2,8 +2,8 @@ #include "data2.h" #include "decompress.h" #include "sprite.h" +#include "util.h" -extern u8 CreateInvisibleSpriteWithCallback(void (*)(struct Sprite *)); static void sub_8046388(struct Sprite *); diff --git a/src/sound.c b/src/sound.c index ed69ca01d..c9c4916b0 100644 --- a/src/sound.c +++ b/src/sound.c @@ -1,9 +1,9 @@ #include "global.h" #include "gba/m4a_internal.h" #include "sound.h" -#include "asm.h" #include "battle.h" #include "m4a.h" +#include "main.h" #include "songs.h" #include "task.h" @@ -13,7 +13,7 @@ struct Fanfare u16 duration; }; -// Hack: different prototype than definition +// FIXME: different prototype than definition u32 SpeciesToCryId(u32); extern u16 gBattleTypeFlags; diff --git a/src/sprite.c b/src/sprite.c index 409c66cfa..fb8c2b648 100644 --- a/src/sprite.c +++ b/src/sprite.c @@ -57,7 +57,6 @@ static void ClearSpriteCopyRequests(void); static void ResetOamMatrices(void); static void ResetSprite(struct Sprite *sprite); static s16 AllocSpriteTiles(u16 tileCount); -u8 SpriteTileAllocBitmapOp(u16 bit, u8 op); static void RequestSpriteFrameImageCopy(u16 index, u16 tileNum, const struct SpriteFrameImage *images); static void ResetAllSprites(void); static void BeginAnim(struct Sprite *sprite); diff --git a/src/start_menu.c b/src/start_menu.c index a3258bab1..e05f3a999 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -1,10 +1,11 @@ #include "global.h" #include "start_menu.h" -#include "asm.h" #include "event_data.h" #include "field_map_obj_helpers.h" #include "field_player_avatar.h" #include "field_weather.h" +#include "fieldmap.h" +#include "item_menu.h" #include "load_save.h" #include "main.h" #include "map_obj_lock.h" @@ -12,6 +13,8 @@ #include "option_menu.h" #include "palette.h" #include "pokedex.h" +#include "pokemon_menu.h" +#include "pokenav.h" #include "rom4.h" #include "safari_zone.h" #include "save.h" @@ -25,6 +28,7 @@ #include "strings2.h" #include "task.h" #include "trainer_card.h" +#include "unknown_task.h" //Menu actions enum { @@ -49,7 +53,6 @@ extern u16 gSaveFileStatus; extern u16 gScriptResult; extern u8 (*gCallback_03004AE8)(void); extern u8 gUnknown_03004860; -extern u8 gNumSafariBalls; EWRAM_DATA static u8 sStartMenuCursorPos = 0; EWRAM_DATA static u8 sNumStartMenuActions = 0; @@ -399,7 +402,7 @@ static u8 StartMenu_PlayerCallback(void) //When player selects SAVE static u8 StartMenu_SaveCallback(void) { - sub_8072DEC(); + HandleDestroyMenuCursors(); gCallback_03004AE8 = SaveCallback1; return 0; } diff --git a/src/starter_choose.c b/src/starter_choose.c index 32b6adf36..c838f2dc0 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -1,6 +1,5 @@ #include "global.h" #include "starter_choose.h" -#include "asm.h" #include "data2.h" #include "decompress.h" #include "main.h" @@ -15,6 +14,7 @@ #include "strings.h" #include "task.h" #include "trig.h" +#include "unknown_task.h" extern u16 gScriptResult; extern struct SpriteTemplate gUnknown_02024E8C; @@ -23,7 +23,7 @@ extern struct SpriteTemplate gUnknown_02024E8C; // Graphics Data //-------------------------------------------------- -const u16 gBirchBagGrassPal[][16] = +const u16 gBirchBagGrassPal[2][16] = { INCBIN_U16("graphics/misc/birch_bag.gbapal"), INCBIN_U16("graphics/misc/birch_grass.gbapal"), @@ -172,12 +172,12 @@ static const union AffineAnimCmd *const gSpriteAffineAnimTable_83F7790[] = { gSpriteAffineAnim_83F7774, }; -static const struct SpriteSheet gUnknown_083F7794[] = +static const struct CompressedSpriteSheet gUnknown_083F7794[] = { {gBirchBallarrow_Gfx, 0x0800, 0x1000}, {NULL}, }; -static const struct SpriteSheet gUnknown_083F77A4[] = +static const struct CompressedSpriteSheet gUnknown_083F77A4[] = { {gBirchCircle_Gfx, 0x0800, 0x1001}, {NULL}, @@ -483,7 +483,7 @@ static void AddTextColorCtrlCode(u8 *string, u8 bgColor, u8 textColor, u8 shadow static void CreateStarterPokemonLabel(u8 prevSelection, u8 selection) { u8 labelText[72]; - u8 *category; + const u8 *category; u8 srcIndex; u8 dstIndex; u16 species; diff --git a/src/strings.c b/src/strings.c index f41af082c..cc0641dce 100644 --- a/src/strings.c +++ b/src/strings.c @@ -1,4 +1,5 @@ #include "global.h" +#include "strings.h" #if ENGLISH // placeholder strings @@ -923,7 +924,6 @@ const u8 gSystemText_NoSaveFileNoTime[] = _("There is no save file, so the time\ const u8 gSystemText_ClockAdjustmentUsable[] = _("The in-game clock adjustment system\nis now useable."); const u8 gSystemText_Saving[] = _("SAVING...\nDON’T TURN OFF THE POWER."); #elif GERMAN -#include "global.h" // placeholder strings const u8 gExpandedPlaceholder_Empty[] = _(""); @@ -1149,7 +1149,7 @@ const u8 gOtherText_OkayToThrowAwayPrompt[] = _("Willst du wirklich\n{STR_VAR_2} const u8 gOtherText_DadsAdvice[] = _("VATI sagt immer...\n{PLAYER}, dies ist weder der rechte\lOrt noch der rechte Zeitpunkt dafür!{PAUSE_UNTIL_PRESS}"); const u8 gOtherText_CantGetOffBike[] = _("Du kannst hier nicht vom RAD steigen.{PAUSE_UNTIL_PRESS}"); const u8 gOtherText_ItemfinderResponding[] = _("Oh!\nDas Gerät zeigt etwas an!\pHier muss ein Item vergraben sein!{PAUSE_UNTIL_PRESS}"); -const u8 gOtherText_ItemfinderItemUnderfoot[] = _("Das Gerät macht direkt unter\ndeinen Füßen etwas aus!{PAUSE_UNTIL_PRESS}"); +const u8 gOtherText_ItemfinderItemUnderfoot[] = _("Das Gerät macht direkt unter\ndeinen Füßen etwas aus!{PAUSE_UNTIL_PRESS}"); const u8 gOtherText_NoResponse[] = _("... ... ... ... Nichts!\nKeine Anzeige.{PAUSE_UNTIL_PRESS}"); const u8 gOtherText_Coins3[] = _("Deine MÜNZEN:\n{STR_VAR_1}{PAUSE_UNTIL_PRESS}"); const u8 gOtherText_BootedTM[] = _("Eine TM wurde aktiviert."); diff --git a/src/time_events.c b/src/time_events.c index 8cbf52a1a..e1b9a2e9e 100644 --- a/src/time_events.c +++ b/src/time_events.c @@ -1,5 +1,7 @@ #include "global.h" +#include "time_events.h" #include "event_data.h" +#include "field_weather.h" #include "pokemon.h" #include "rng.h" #include "rom4.h" @@ -7,16 +9,14 @@ #include "script.h" #include "task.h" -extern bool8 sub_807DDFC(void); - -u32 GetMirageRnd(void) +static u32 GetMirageRnd(void) { u32 hi = VarGet(VAR_MIRAGE_RND_H); u32 lo = VarGet(VAR_MIRAGE_RND_L); return (hi << 16) | lo; } -void SetMirageRnd(u32 rnd) +static void SetMirageRnd(u32 rnd) { VarSet(VAR_MIRAGE_RND_H, rnd >> 16); VarSet(VAR_MIRAGE_RND_L, rnd); diff --git a/src/title_screen.c b/src/title_screen.c index 241e5489e..dd06956c3 100644 --- a/src/title_screen.c +++ b/src/title_screen.c @@ -1,7 +1,6 @@ #include "global.h" #include "gba/m4a_internal.h" #include "title_screen.h" -#include "asm.h" #include "clear_save_data_menu.h" #include "decompress.h" #include "event_data.h" @@ -10,9 +9,11 @@ #include "main.h" #include "main_menu.h" #include "palette.h" +#include "reset_rtc_screen.h" #include "sound.h" #include "sprite.h" #include "task.h" +#include "unknown_task.h" extern u8 gReservedSpritePaletteCount; extern struct MusicPlayerInfo gMPlay_BGM; @@ -151,7 +152,7 @@ static const struct SpriteTemplate sVersionBannerRightSpriteTemplate = .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallback_VersionBannerRight, }; -static const struct SpriteSheet gUnknown_08393EFC[] = +static const struct CompressedSpriteSheet gUnknown_08393EFC[] = { {gVersionTiles, 0x1000, 1000}, {NULL}, @@ -233,7 +234,7 @@ static const struct SpriteTemplate sStartCopyrightBannerSpriteTemplate = .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallback_PressStartCopyrightBanner, }; -static const struct SpriteSheet gUnknown_08393F8C[] = +static const struct CompressedSpriteSheet gUnknown_08393F8C[] = { {gTitleScreenPressStart_Gfx, 0x520, 1001}, {NULL}, @@ -278,7 +279,7 @@ static const struct SpriteTemplate sPokemonLogoShineSpriteTemplate = .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallback_PokemonLogoShine, }; -static const struct SpriteSheet sPokemonLogoShineSpriteSheet[] = +static const struct CompressedSpriteSheet sPokemonLogoShineSpriteSheet[] = { {sLogoShineTiles, 0x800, 1002}, {NULL}, diff --git a/src/trainer_card.c b/src/trainer_card.c index ef3a2d857..b2a1ad71b 100644 --- a/src/trainer_card.c +++ b/src/trainer_card.c @@ -1,7 +1,8 @@ #include "global.h" #include "trainer_card.h" -#include "asm.h" +#include "easy_chat.h" #include "event_data.h" +#include "field_effect.h" #include "link.h" #include "main.h" #include "menu.h" @@ -16,6 +17,8 @@ #include "string_util.h" #include "strings2.h" #include "task.h" +#include "unknown_task.h" +#include "util.h" typedef void (*Callback)(void); @@ -68,9 +71,8 @@ extern u16 gUnknown_08E8D9C0[]; extern bool8 (*const gUnknown_083B5EBC[])(struct Task *); extern bool8 (*const gUnknown_083B5ED8[])(struct Task *); -// Other signature than on save_menu_util.h +// FIXME: Other signature than on save_menu_util.h void FormatPlayTime(u8 *playtime, u16 hours, u16 minutes, s16 colon); - u16 GetPokedexSeenCount(void); enum diff --git a/src/trainer_see.c b/src/trainer_see.c index 9d58faab8..9b7a47f6b 100644 --- a/src/trainer_see.c +++ b/src/trainer_see.c @@ -1,7 +1,5 @@ #include "global.h" #include "trainer_see.h" -#include "asm.h" -#include "asm_fieldmap.h" #include "battle_setup.h" #include "field_effect.h" #include "field_map_obj.h" @@ -9,6 +7,7 @@ #include "script.h" #include "sprite.h" #include "task.h" +#include "util.h" extern bool8 (*gIsTrainerInRange[])(struct MapObject *, u16, s16, s16); extern bool8 (*gTrainerSeeFuncList[])(u8, struct Task *, struct MapObject *); @@ -373,9 +372,9 @@ void sub_80846E4(u8 taskId) mapObj->mapobj_bit_7 = 0; } -void sub_8084794(u32 var) +void sub_8084794(struct MapObject *var) { - StoreWordInTwoHalfwords(&gTasks[CreateTask(sub_80846E4, 0)].data[1], var); + StoreWordInTwoHalfwords(&gTasks[CreateTask(sub_80846E4, 0)].data[1], (u32)var); } void sub_80847C8(void) diff --git a/src/trig.c b/src/trig.c index d64231087..e16a69e63 100644 --- a/src/trig.c +++ b/src/trig.c @@ -1,7 +1,521 @@ #include "global.h" #include "trig.h" -extern s16 gSineDegreeTable[]; +// Converts a number to Q8.8 fixed-point format +#define Q_8_8(n) ((s16)((n) * 256)) + +// Converts a number to Q4.12 fixed-point format +#define Q_4_12(n) ((s16)((n) * 4096)) + +// Values of sin(x*(π/128)) as Q8.8 fixed-point numbers from x = 0 to x = 319 +const s16 gSineTable[] = +{ + Q_8_8(0), // sin(0*(π/128)) + Q_8_8(0.0234375), // sin(1*(π/128)) + Q_8_8(0.046875), // sin(2*(π/128)) + Q_8_8(0.0703125), // sin(3*(π/128)) + Q_8_8(0.09765625), // sin(4*(π/128)) + Q_8_8(0.12109375), // sin(5*(π/128)) + Q_8_8(0.14453125), // sin(6*(π/128)) + Q_8_8(0.16796875), // sin(7*(π/128)) + Q_8_8(0.19140625), // sin(8*(π/128)) + Q_8_8(0.21875), // sin(9*(π/128)) + Q_8_8(0.2421875), // sin(10*(π/128)) + Q_8_8(0.265625), // sin(11*(π/128)) + Q_8_8(0.2890625), // sin(12*(π/128)) + Q_8_8(0.3125), // sin(13*(π/128)) + Q_8_8(0.3359375), // sin(14*(π/128)) + Q_8_8(0.359375), // sin(15*(π/128)) + Q_8_8(0.37890625), // sin(16*(π/128)) + Q_8_8(0.40234375), // sin(17*(π/128)) + Q_8_8(0.42578125), // sin(18*(π/128)) + Q_8_8(0.44921875), // sin(19*(π/128)) + Q_8_8(0.46875), // sin(20*(π/128)) + Q_8_8(0.4921875), // sin(21*(π/128)) + Q_8_8(0.51171875), // sin(22*(π/128)) + Q_8_8(0.53125), // sin(23*(π/128)) + Q_8_8(0.5546875), // sin(24*(π/128)) + Q_8_8(0.57421875), // sin(25*(π/128)) + Q_8_8(0.59375), // sin(26*(π/128)) + Q_8_8(0.61328125), // sin(27*(π/128)) + Q_8_8(0.6328125), // sin(28*(π/128)) + Q_8_8(0.65234375), // sin(29*(π/128)) + Q_8_8(0.66796875), // sin(30*(π/128)) + Q_8_8(0.6875), // sin(31*(π/128)) + Q_8_8(0.70703125), // sin(32*(π/128)) + Q_8_8(0.72265625), // sin(33*(π/128)) + Q_8_8(0.73828125), // sin(34*(π/128)) + Q_8_8(0.75390625), // sin(35*(π/128)) + Q_8_8(0.76953125), // sin(36*(π/128)) + Q_8_8(0.78515625), // sin(37*(π/128)) + Q_8_8(0.80078125), // sin(38*(π/128)) + Q_8_8(0.81640625), // sin(39*(π/128)) + Q_8_8(0.828125), // sin(40*(π/128)) + Q_8_8(0.84375), // sin(41*(π/128)) + Q_8_8(0.85546875), // sin(42*(π/128)) + Q_8_8(0.8671875), // sin(43*(π/128)) + Q_8_8(0.87890625), // sin(44*(π/128)) + Q_8_8(0.890625), // sin(45*(π/128)) + Q_8_8(0.90234375), // sin(46*(π/128)) + Q_8_8(0.9140625), // sin(47*(π/128)) + Q_8_8(0.921875), // sin(48*(π/128)) + Q_8_8(0.9296875), // sin(49*(π/128)) + Q_8_8(0.94140625), // sin(50*(π/128)) + Q_8_8(0.94921875), // sin(51*(π/128)) + Q_8_8(0.953125), // sin(52*(π/128)) + Q_8_8(0.9609375), // sin(53*(π/128)) + Q_8_8(0.96875), // sin(54*(π/128)) + Q_8_8(0.97265625), // sin(55*(π/128)) + Q_8_8(0.98046875), // sin(56*(π/128)) + Q_8_8(0.984375), // sin(57*(π/128)) + Q_8_8(0.98828125), // sin(58*(π/128)) + Q_8_8(0.9921875), // sin(59*(π/128)) + Q_8_8(0.9921875), // sin(60*(π/128)) + Q_8_8(0.99609375), // sin(61*(π/128)) + Q_8_8(0.99609375), // sin(62*(π/128)) + Q_8_8(0.99609375), // sin(63*(π/128)) + Q_8_8(1), // sin(64*(π/128)) + Q_8_8(0.99609375), // sin(65*(π/128)) + Q_8_8(0.99609375), // sin(66*(π/128)) + Q_8_8(0.99609375), // sin(67*(π/128)) + Q_8_8(0.9921875), // sin(68*(π/128)) + Q_8_8(0.9921875), // sin(69*(π/128)) + Q_8_8(0.98828125), // sin(70*(π/128)) + Q_8_8(0.984375), // sin(71*(π/128)) + Q_8_8(0.98046875), // sin(72*(π/128)) + Q_8_8(0.97265625), // sin(73*(π/128)) + Q_8_8(0.96875), // sin(74*(π/128)) + Q_8_8(0.9609375), // sin(75*(π/128)) + Q_8_8(0.953125), // sin(76*(π/128)) + Q_8_8(0.94921875), // sin(77*(π/128)) + Q_8_8(0.94140625), // sin(78*(π/128)) + Q_8_8(0.9296875), // sin(79*(π/128)) + Q_8_8(0.921875), // sin(80*(π/128)) + Q_8_8(0.9140625), // sin(81*(π/128)) + Q_8_8(0.90234375), // sin(82*(π/128)) + Q_8_8(0.890625), // sin(83*(π/128)) + Q_8_8(0.87890625), // sin(84*(π/128)) + Q_8_8(0.8671875), // sin(85*(π/128)) + Q_8_8(0.85546875), // sin(86*(π/128)) + Q_8_8(0.84375), // sin(87*(π/128)) + Q_8_8(0.828125), // sin(88*(π/128)) + Q_8_8(0.81640625), // sin(89*(π/128)) + Q_8_8(0.80078125), // sin(90*(π/128)) + Q_8_8(0.78515625), // sin(91*(π/128)) + Q_8_8(0.76953125), // sin(92*(π/128)) + Q_8_8(0.75390625), // sin(93*(π/128)) + Q_8_8(0.73828125), // sin(94*(π/128)) + Q_8_8(0.72265625), // sin(95*(π/128)) + Q_8_8(0.70703125), // sin(96*(π/128)) + Q_8_8(0.6875), // sin(97*(π/128)) + Q_8_8(0.66796875), // sin(98*(π/128)) + Q_8_8(0.65234375), // sin(99*(π/128)) + Q_8_8(0.6328125), // sin(100*(π/128)) + Q_8_8(0.61328125), // sin(101*(π/128)) + Q_8_8(0.59375), // sin(102*(π/128)) + Q_8_8(0.57421875), // sin(103*(π/128)) + Q_8_8(0.5546875), // sin(104*(π/128)) + Q_8_8(0.53125), // sin(105*(π/128)) + Q_8_8(0.51171875), // sin(106*(π/128)) + Q_8_8(0.4921875), // sin(107*(π/128)) + Q_8_8(0.46875), // sin(108*(π/128)) + Q_8_8(0.44921875), // sin(109*(π/128)) + Q_8_8(0.42578125), // sin(110*(π/128)) + Q_8_8(0.40234375), // sin(111*(π/128)) + Q_8_8(0.37890625), // sin(112*(π/128)) + Q_8_8(0.359375), // sin(113*(π/128)) + Q_8_8(0.3359375), // sin(114*(π/128)) + Q_8_8(0.3125), // sin(115*(π/128)) + Q_8_8(0.2890625), // sin(116*(π/128)) + Q_8_8(0.265625), // sin(117*(π/128)) + Q_8_8(0.2421875), // sin(118*(π/128)) + Q_8_8(0.21875), // sin(119*(π/128)) + Q_8_8(0.19140625), // sin(120*(π/128)) + Q_8_8(0.16796875), // sin(121*(π/128)) + Q_8_8(0.14453125), // sin(122*(π/128)) + Q_8_8(0.12109375), // sin(123*(π/128)) + Q_8_8(0.09765625), // sin(124*(π/128)) + Q_8_8(0.0703125), // sin(125*(π/128)) + Q_8_8(0.046875), // sin(126*(π/128)) + Q_8_8(0.0234375), // sin(127*(π/128)) + Q_8_8(0), // sin(128*(π/128)) + Q_8_8(-0.0234375), // sin(129*(π/128)) + Q_8_8(-0.046875), // sin(130*(π/128)) + Q_8_8(-0.0703125), // sin(131*(π/128)) + Q_8_8(-0.09765625), // sin(132*(π/128)) + Q_8_8(-0.12109375), // sin(133*(π/128)) + Q_8_8(-0.14453125), // sin(134*(π/128)) + Q_8_8(-0.16796875), // sin(135*(π/128)) + Q_8_8(-0.19140625), // sin(136*(π/128)) + Q_8_8(-0.21875), // sin(137*(π/128)) + Q_8_8(-0.2421875), // sin(138*(π/128)) + Q_8_8(-0.265625), // sin(139*(π/128)) + Q_8_8(-0.2890625), // sin(140*(π/128)) + Q_8_8(-0.3125), // sin(141*(π/128)) + Q_8_8(-0.3359375), // sin(142*(π/128)) + Q_8_8(-0.359375), // sin(143*(π/128)) + Q_8_8(-0.37890625), // sin(144*(π/128)) + Q_8_8(-0.40234375), // sin(145*(π/128)) + Q_8_8(-0.42578125), // sin(146*(π/128)) + Q_8_8(-0.44921875), // sin(147*(π/128)) + Q_8_8(-0.46875), // sin(148*(π/128)) + Q_8_8(-0.4921875), // sin(149*(π/128)) + Q_8_8(-0.51171875), // sin(150*(π/128)) + Q_8_8(-0.53125), // sin(151*(π/128)) + Q_8_8(-0.5546875), // sin(152*(π/128)) + Q_8_8(-0.57421875), // sin(153*(π/128)) + Q_8_8(-0.59375), // sin(154*(π/128)) + Q_8_8(-0.61328125), // sin(155*(π/128)) + Q_8_8(-0.6328125), // sin(156*(π/128)) + Q_8_8(-0.65234375), // sin(157*(π/128)) + Q_8_8(-0.66796875), // sin(158*(π/128)) + Q_8_8(-0.6875), // sin(159*(π/128)) + Q_8_8(-0.70703125), // sin(160*(π/128)) + Q_8_8(-0.72265625), // sin(161*(π/128)) + Q_8_8(-0.73828125), // sin(162*(π/128)) + Q_8_8(-0.75390625), // sin(163*(π/128)) + Q_8_8(-0.76953125), // sin(164*(π/128)) + Q_8_8(-0.78515625), // sin(165*(π/128)) + Q_8_8(-0.80078125), // sin(166*(π/128)) + Q_8_8(-0.81640625), // sin(167*(π/128)) + Q_8_8(-0.828125), // sin(168*(π/128)) + Q_8_8(-0.84375), // sin(169*(π/128)) + Q_8_8(-0.85546875), // sin(170*(π/128)) + Q_8_8(-0.8671875), // sin(171*(π/128)) + Q_8_8(-0.87890625), // sin(172*(π/128)) + Q_8_8(-0.890625), // sin(173*(π/128)) + Q_8_8(-0.90234375), // sin(174*(π/128)) + Q_8_8(-0.9140625), // sin(175*(π/128)) + Q_8_8(-0.921875), // sin(176*(π/128)) + Q_8_8(-0.9296875), // sin(177*(π/128)) + Q_8_8(-0.94140625), // sin(178*(π/128)) + Q_8_8(-0.94921875), // sin(179*(π/128)) + Q_8_8(-0.953125), // sin(180*(π/128)) + Q_8_8(-0.9609375), // sin(181*(π/128)) + Q_8_8(-0.96875), // sin(182*(π/128)) + Q_8_8(-0.97265625), // sin(183*(π/128)) + Q_8_8(-0.98046875), // sin(184*(π/128)) + Q_8_8(-0.984375), // sin(185*(π/128)) + Q_8_8(-0.98828125), // sin(186*(π/128)) + Q_8_8(-0.9921875), // sin(187*(π/128)) + Q_8_8(-0.9921875), // sin(188*(π/128)) + Q_8_8(-0.99609375), // sin(189*(π/128)) + Q_8_8(-0.99609375), // sin(190*(π/128)) + Q_8_8(-0.99609375), // sin(191*(π/128)) + Q_8_8(-1), // sin(192*(π/128)) + Q_8_8(-0.99609375), // sin(193*(π/128)) + Q_8_8(-0.99609375), // sin(194*(π/128)) + Q_8_8(-0.99609375), // sin(195*(π/128)) + Q_8_8(-0.9921875), // sin(196*(π/128)) + Q_8_8(-0.9921875), // sin(197*(π/128)) + Q_8_8(-0.98828125), // sin(198*(π/128)) + Q_8_8(-0.984375), // sin(199*(π/128)) + Q_8_8(-0.98046875), // sin(200*(π/128)) + Q_8_8(-0.97265625), // sin(201*(π/128)) + Q_8_8(-0.96875), // sin(202*(π/128)) + Q_8_8(-0.9609375), // sin(203*(π/128)) + Q_8_8(-0.953125), // sin(204*(π/128)) + Q_8_8(-0.94921875), // sin(205*(π/128)) + Q_8_8(-0.94140625), // sin(206*(π/128)) + Q_8_8(-0.9296875), // sin(207*(π/128)) + Q_8_8(-0.921875), // sin(208*(π/128)) + Q_8_8(-0.9140625), // sin(209*(π/128)) + Q_8_8(-0.90234375), // sin(210*(π/128)) + Q_8_8(-0.890625), // sin(211*(π/128)) + Q_8_8(-0.87890625), // sin(212*(π/128)) + Q_8_8(-0.8671875), // sin(213*(π/128)) + Q_8_8(-0.85546875), // sin(214*(π/128)) + Q_8_8(-0.84375), // sin(215*(π/128)) + Q_8_8(-0.828125), // sin(216*(π/128)) + Q_8_8(-0.81640625), // sin(217*(π/128)) + Q_8_8(-0.80078125), // sin(218*(π/128)) + Q_8_8(-0.78515625), // sin(219*(π/128)) + Q_8_8(-0.76953125), // sin(220*(π/128)) + Q_8_8(-0.75390625), // sin(221*(π/128)) + Q_8_8(-0.73828125), // sin(222*(π/128)) + Q_8_8(-0.72265625), // sin(223*(π/128)) + Q_8_8(-0.70703125), // sin(224*(π/128)) + Q_8_8(-0.6875), // sin(225*(π/128)) + Q_8_8(-0.66796875), // sin(226*(π/128)) + Q_8_8(-0.65234375), // sin(227*(π/128)) + Q_8_8(-0.6328125), // sin(228*(π/128)) + Q_8_8(-0.61328125), // sin(229*(π/128)) + Q_8_8(-0.59375), // sin(230*(π/128)) + Q_8_8(-0.57421875), // sin(231*(π/128)) + Q_8_8(-0.5546875), // sin(232*(π/128)) + Q_8_8(-0.53125), // sin(233*(π/128)) + Q_8_8(-0.51171875), // sin(234*(π/128)) + Q_8_8(-0.4921875), // sin(235*(π/128)) + Q_8_8(-0.46875), // sin(236*(π/128)) + Q_8_8(-0.44921875), // sin(237*(π/128)) + Q_8_8(-0.42578125), // sin(238*(π/128)) + Q_8_8(-0.40234375), // sin(239*(π/128)) + Q_8_8(-0.37890625), // sin(240*(π/128)) + Q_8_8(-0.359375), // sin(241*(π/128)) + Q_8_8(-0.3359375), // sin(242*(π/128)) + Q_8_8(-0.3125), // sin(243*(π/128)) + Q_8_8(-0.2890625), // sin(244*(π/128)) + Q_8_8(-0.265625), // sin(245*(π/128)) + Q_8_8(-0.2421875), // sin(246*(π/128)) + Q_8_8(-0.21875), // sin(247*(π/128)) + Q_8_8(-0.19140625), // sin(248*(π/128)) + Q_8_8(-0.16796875), // sin(249*(π/128)) + Q_8_8(-0.14453125), // sin(250*(π/128)) + Q_8_8(-0.12109375), // sin(251*(π/128)) + Q_8_8(-0.09765625), // sin(252*(π/128)) + Q_8_8(-0.0703125), // sin(253*(π/128)) + Q_8_8(-0.046875), // sin(254*(π/128)) + Q_8_8(-0.0234375), // sin(255*(π/128)) + Q_8_8(0), // sin(256*(π/128)) + Q_8_8(0.0234375), // sin(257*(π/128)) + Q_8_8(0.046875), // sin(258*(π/128)) + Q_8_8(0.0703125), // sin(259*(π/128)) + Q_8_8(0.09765625), // sin(260*(π/128)) + Q_8_8(0.12109375), // sin(261*(π/128)) + Q_8_8(0.14453125), // sin(262*(π/128)) + Q_8_8(0.16796875), // sin(263*(π/128)) + Q_8_8(0.19140625), // sin(264*(π/128)) + Q_8_8(0.21875), // sin(265*(π/128)) + Q_8_8(0.2421875), // sin(266*(π/128)) + Q_8_8(0.265625), // sin(267*(π/128)) + Q_8_8(0.2890625), // sin(268*(π/128)) + Q_8_8(0.3125), // sin(269*(π/128)) + Q_8_8(0.3359375), // sin(270*(π/128)) + Q_8_8(0.359375), // sin(271*(π/128)) + Q_8_8(0.37890625), // sin(272*(π/128)) + Q_8_8(0.40234375), // sin(273*(π/128)) + Q_8_8(0.42578125), // sin(274*(π/128)) + Q_8_8(0.44921875), // sin(275*(π/128)) + Q_8_8(0.46875), // sin(276*(π/128)) + Q_8_8(0.4921875), // sin(277*(π/128)) + Q_8_8(0.51171875), // sin(278*(π/128)) + Q_8_8(0.53125), // sin(279*(π/128)) + Q_8_8(0.5546875), // sin(280*(π/128)) + Q_8_8(0.57421875), // sin(281*(π/128)) + Q_8_8(0.59375), // sin(282*(π/128)) + Q_8_8(0.61328125), // sin(283*(π/128)) + Q_8_8(0.6328125), // sin(284*(π/128)) + Q_8_8(0.65234375), // sin(285*(π/128)) + Q_8_8(0.66796875), // sin(286*(π/128)) + Q_8_8(0.6875), // sin(287*(π/128)) + Q_8_8(0.70703125), // sin(288*(π/128)) + Q_8_8(0.72265625), // sin(289*(π/128)) + Q_8_8(0.73828125), // sin(290*(π/128)) + Q_8_8(0.75390625), // sin(291*(π/128)) + Q_8_8(0.76953125), // sin(292*(π/128)) + Q_8_8(0.78515625), // sin(293*(π/128)) + Q_8_8(0.80078125), // sin(294*(π/128)) + Q_8_8(0.81640625), // sin(295*(π/128)) + Q_8_8(0.828125), // sin(296*(π/128)) + Q_8_8(0.84375), // sin(297*(π/128)) + Q_8_8(0.85546875), // sin(298*(π/128)) + Q_8_8(0.8671875), // sin(299*(π/128)) + Q_8_8(0.87890625), // sin(300*(π/128)) + Q_8_8(0.890625), // sin(301*(π/128)) + Q_8_8(0.90234375), // sin(302*(π/128)) + Q_8_8(0.9140625), // sin(303*(π/128)) + Q_8_8(0.921875), // sin(304*(π/128)) + Q_8_8(0.9296875), // sin(305*(π/128)) + Q_8_8(0.94140625), // sin(306*(π/128)) + Q_8_8(0.94921875), // sin(307*(π/128)) + Q_8_8(0.953125), // sin(308*(π/128)) + Q_8_8(0.9609375), // sin(309*(π/128)) + Q_8_8(0.96875), // sin(310*(π/128)) + Q_8_8(0.97265625), // sin(311*(π/128)) + Q_8_8(0.98046875), // sin(312*(π/128)) + Q_8_8(0.984375), // sin(313*(π/128)) + Q_8_8(0.98828125), // sin(314*(π/128)) + Q_8_8(0.9921875), // sin(315*(π/128)) + Q_8_8(0.9921875), // sin(316*(π/128)) + Q_8_8(0.99609375), // sin(317*(π/128)) + Q_8_8(0.99609375), // sin(318*(π/128)) + Q_8_8(0.99609375), // sin(319*(π/128)) +}; + +// values of sin(x) as Q4.12 fixed-point numbers from x = 0° to x = 179° +const s16 gSineDegreeTable[] = +{ + Q_4_12(0), // sin(0°) + Q_4_12(0.017333984375), // sin(1°) + Q_4_12(0.034912109375), // sin(2°) + Q_4_12(0.05224609375), // sin(3°) + Q_4_12(0.06982421875), // sin(4°) + Q_4_12(0.087158203125), // sin(5°) + Q_4_12(0.1044921875), // sin(6°) + Q_4_12(0.121826171875), // sin(7°) + Q_4_12(0.13916015625), // sin(8°) + Q_4_12(0.156494140625), // sin(9°) + Q_4_12(0.173583984375), // sin(10°) + Q_4_12(0.19091796875), // sin(11°) + Q_4_12(0.2080078125), // sin(12°) + Q_4_12(0.224853515625), // sin(13°) + Q_4_12(0.241943359375), // sin(14°) + Q_4_12(0.2587890625), // sin(15°) + Q_4_12(0.275634765625), // sin(16°) + Q_4_12(0.29248046875), // sin(17°) + Q_4_12(0.30908203125), // sin(18°) + Q_4_12(0.32568359375), // sin(19°) + Q_4_12(0.342041015625), // sin(20°) + Q_4_12(0.3583984375), // sin(21°) + Q_4_12(0.37451171875), // sin(22°) + Q_4_12(0.390625), // sin(23°) + Q_4_12(0.40673828125), // sin(24°) + Q_4_12(0.422607421875), // sin(25°) + Q_4_12(0.4384765625), // sin(26°) + Q_4_12(0.4541015625), // sin(27°) + Q_4_12(0.469482421875), // sin(28°) + Q_4_12(0.48486328125), // sin(29°) + Q_4_12(0.5), // sin(30°) + Q_4_12(0.51513671875), // sin(31°) + Q_4_12(0.530029296875), // sin(32°) + Q_4_12(0.544677734375), // sin(33°) + Q_4_12(0.55908203125), // sin(34°) + Q_4_12(0.573486328125), // sin(35°) + Q_4_12(0.587890625), // sin(36°) + Q_4_12(0.601806640625), // sin(37°) + Q_4_12(0.61572265625), // sin(38°) + Q_4_12(0.62939453125), // sin(39°) + Q_4_12(0.642822265625), // sin(40°) + Q_4_12(0.656005859375), // sin(41°) + Q_4_12(0.669189453125), // sin(42°) + Q_4_12(0.681884765625), // sin(43°) + Q_4_12(0.694580078125), // sin(44°) + Q_4_12(0.70703125), // sin(45°) + Q_4_12(0.71923828125), // sin(46°) + Q_4_12(0.7314453125), // sin(47°) + Q_4_12(0.7431640625), // sin(48°) + Q_4_12(0.754638671875), // sin(49°) + Q_4_12(0.76611328125), // sin(50°) + Q_4_12(0.777099609375), // sin(51°) + Q_4_12(0.7880859375), // sin(52°) + Q_4_12(0.798583984375), // sin(53°) + Q_4_12(0.80908203125), // sin(54°) + Q_4_12(0.819091796875), // sin(55°) + Q_4_12(0.8291015625), // sin(56°) + Q_4_12(0.838623046875), // sin(57°) + Q_4_12(0.84814453125), // sin(58°) + Q_4_12(0.857177734375), // sin(59°) + Q_4_12(0.865966796875), // sin(60°) + Q_4_12(0.87451171875), // sin(61°) + Q_4_12(0.883056640625), // sin(62°) + Q_4_12(0.89111328125), // sin(63°) + Q_4_12(0.898681640625), // sin(64°) + Q_4_12(0.90625), // sin(65°) + Q_4_12(0.91357421875), // sin(66°) + Q_4_12(0.92041015625), // sin(67°) + Q_4_12(0.92724609375), // sin(68°) + Q_4_12(0.93359375), // sin(69°) + Q_4_12(0.939697265625), // sin(70°) + Q_4_12(0.945556640625), // sin(71°) + Q_4_12(0.951171875), // sin(72°) + Q_4_12(0.956298828125), // sin(73°) + Q_4_12(0.961181640625), // sin(74°) + Q_4_12(0.9658203125), // sin(75°) + Q_4_12(0.97021484375), // sin(76°) + Q_4_12(0.974365234375), // sin(77°) + Q_4_12(0.97802734375), // sin(78°) + Q_4_12(0.981689453125), // sin(79°) + Q_4_12(0.98486328125), // sin(80°) + Q_4_12(0.98779296875), // sin(81°) + Q_4_12(0.990234375), // sin(82°) + Q_4_12(0.992431640625), // sin(83°) + Q_4_12(0.994384765625), // sin(84°) + Q_4_12(0.99609375), // sin(85°) + Q_4_12(0.99755859375), // sin(86°) + Q_4_12(0.99853515625), // sin(87°) + Q_4_12(0.999267578125), // sin(88°) + Q_4_12(0.999755859375), // sin(89°) + Q_4_12(1), // sin(90°) + Q_4_12(0.999755859375), // sin(91°) + Q_4_12(0.999267578125), // sin(92°) + Q_4_12(0.99853515625), // sin(93°) + Q_4_12(0.99755859375), // sin(94°) + Q_4_12(0.99609375), // sin(95°) + Q_4_12(0.994384765625), // sin(96°) + Q_4_12(0.992431640625), // sin(97°) + Q_4_12(0.990234375), // sin(98°) + Q_4_12(0.98779296875), // sin(99°) + Q_4_12(0.98486328125), // sin(100°) + Q_4_12(0.981689453125), // sin(101°) + Q_4_12(0.97802734375), // sin(102°) + Q_4_12(0.974365234375), // sin(103°) + Q_4_12(0.97021484375), // sin(104°) + Q_4_12(0.9658203125), // sin(105°) + Q_4_12(0.961181640625), // sin(106°) + Q_4_12(0.956298828125), // sin(107°) + Q_4_12(0.951171875), // sin(108°) + Q_4_12(0.945556640625), // sin(109°) + Q_4_12(0.939697265625), // sin(110°) + Q_4_12(0.93359375), // sin(111°) + Q_4_12(0.92724609375), // sin(112°) + Q_4_12(0.92041015625), // sin(113°) + Q_4_12(0.91357421875), // sin(114°) + Q_4_12(0.90625), // sin(115°) + Q_4_12(0.898681640625), // sin(116°) + Q_4_12(0.89111328125), // sin(117°) + Q_4_12(0.883056640625), // sin(118°) + Q_4_12(0.87451171875), // sin(119°) + Q_4_12(0.865966796875), // sin(120°) + Q_4_12(0.857177734375), // sin(121°) + Q_4_12(0.84814453125), // sin(122°) + Q_4_12(0.838623046875), // sin(123°) + Q_4_12(0.8291015625), // sin(124°) + Q_4_12(0.819091796875), // sin(125°) + Q_4_12(0.80908203125), // sin(126°) + Q_4_12(0.798583984375), // sin(127°) + Q_4_12(0.7880859375), // sin(128°) + Q_4_12(0.777099609375), // sin(129°) + Q_4_12(0.76611328125), // sin(130°) + Q_4_12(0.754638671875), // sin(131°) + Q_4_12(0.7431640625), // sin(132°) + Q_4_12(0.7314453125), // sin(133°) + Q_4_12(0.71923828125), // sin(134°) + Q_4_12(0.70703125), // sin(135°) + Q_4_12(0.694580078125), // sin(136°) + Q_4_12(0.681884765625), // sin(137°) + Q_4_12(0.669189453125), // sin(138°) + Q_4_12(0.656005859375), // sin(139°) + Q_4_12(0.642822265625), // sin(140°) + Q_4_12(0.62939453125), // sin(141°) + Q_4_12(0.61572265625), // sin(142°) + Q_4_12(0.601806640625), // sin(143°) + Q_4_12(0.587890625), // sin(144°) + Q_4_12(0.573486328125), // sin(145°) + Q_4_12(0.55908203125), // sin(146°) + Q_4_12(0.544677734375), // sin(147°) + Q_4_12(0.530029296875), // sin(148°) + Q_4_12(0.51513671875), // sin(149°) + Q_4_12(0.5), // sin(150°) + Q_4_12(0.48486328125), // sin(151°) + Q_4_12(0.469482421875), // sin(152°) + Q_4_12(0.4541015625), // sin(153°) + Q_4_12(0.4384765625), // sin(154°) + Q_4_12(0.422607421875), // sin(155°) + Q_4_12(0.40673828125), // sin(156°) + Q_4_12(0.390625), // sin(157°) + Q_4_12(0.37451171875), // sin(158°) + Q_4_12(0.3583984375), // sin(159°) + Q_4_12(0.342041015625), // sin(160°) + Q_4_12(0.32568359375), // sin(161°) + Q_4_12(0.30908203125), // sin(162°) + Q_4_12(0.29248046875), // sin(163°) + Q_4_12(0.275634765625), // sin(164°) + Q_4_12(0.2587890625), // sin(165°) + Q_4_12(0.241943359375), // sin(166°) + Q_4_12(0.224853515625), // sin(167°) + Q_4_12(0.2080078125), // sin(168°) + Q_4_12(0.19091796875), // sin(169°) + Q_4_12(0.173583984375), // sin(170°) + Q_4_12(0.156494140625), // sin(171°) + Q_4_12(0.13916015625), // sin(172°) + Q_4_12(0.121826171875), // sin(173°) + Q_4_12(0.1044921875), // sin(174°) + Q_4_12(0.087158203125), // sin(175°) + Q_4_12(0.06982421875), // sin(176°) + Q_4_12(0.05224609375), // sin(177°) + Q_4_12(0.034912109375), // sin(178°) + Q_4_12(0.017333984375), // sin(179°) +}; // amplitude * sin(index*(π/128)) s16 Sin(s16 index, s16 amplitude) @@ -1,9 +1,13 @@ #include "global.h" -#include "asm.h" #include "tv.h" +#include "battle_tower.h" +#include "contest_painting.h" #include "data2.h" +#include "easy_chat.h" #include "event_data.h" +#include "fieldmap.h" #include "field_message_box.h" +#include "field_camera.h" #include "flags.h" #include "rng.h" #include "string_util.h" @@ -14,34 +18,33 @@ #include "rom4.h" #include "map_constants.h" #include "strings.h" +#include "battle.h" #include "link.h" #include "easy_chat.h" +#include "field_map_obj.h" +#include "field_specials.h" #include "item.h" #include "items.h" -#include "contest_painting.h" +#include "link.h" +#include "map_constants.h" +#include "naming_screen.h" +#include "pokedex.h" +#include "region_map.h" +#include "rng.h" +#include "rom4.h" #include "rtc.h" +#include "script_menu.h" +#include "species.h" +#include "string_util.h" +#include "strings.h" +#include "text.h" struct UnkTvStruct { s8 var0; }; -struct UnkBattleStruct { - u16 var00; - u8 var02[3]; - u8 var05_0:1; - u8 var05_1:1; - u8 var05_pad2:6; - u16 var06; - u8 pad08[24]; - u16 var20; - u8 pad22[6]; - u16 var28; - u8 var2a[11]; - u8 var35; - u8 var36[11]; -}; -extern struct UnkBattleStruct gUnknown_030042E0; +extern struct Struct30042E0 gBattleResults; extern u8 gUnknown_0300430A[11]; struct OutbreakPokemon @@ -52,13 +55,13 @@ struct OutbreakPokemon /*0x0B*/ u8 location; }; -extern u8 *gUnknown_083D1464[3]; -extern u8 gUnknown_02038694; - struct TVSaleItem { u16 item_id; u16 item_amount; }; + +extern u8 gUnknown_02038694; + extern struct TVSaleItem gUnknown_02038724[3]; extern u16 gSpecialVar_0x8004; @@ -85,11 +88,8 @@ extern u8 *gTVFishingGuruAdviceTextGroup[]; extern u8 *gTVWorldOfMastersTextGroup[]; extern struct OutbreakPokemon gPokeOutbreakSpeciesList[5]; -extern void sub_80BEBF4(void); - extern u16 gUnknown_020387E0; extern u16 gUnknown_020387E2; -extern const u8 *gUnknown_083CE048[]; extern const u8 *gTVNewsTextGroup1[]; extern const u8 *gTVNewsTextGroup2[]; @@ -97,17 +97,30 @@ extern const u8 *gTVNewsTextGroup3[]; extern u16 gScriptLastTalked; -u32 GetPlayerTrainerId(void); + +extern u8 gScriptContestCategory; +extern u8 gScriptContestRank; +extern u8 gUnknown_03004316[11]; +extern u8 gBattleOutcome; + +extern u16 gLastUsedItem; + +extern u8 ewram[]; +#define gUnknown_02007000 (*(ewramStruct_02007000 *)(ewram + 0x7000)) +extern u8 gUnknown_020387E4; + +extern u8 gUnknown_03000720; +extern s8 gUnknown_03000722; void ClearTVShowData(void) { u8 showidx; u8 extradataidx; for (showidx=0; showidx<25; showidx++) { - gSaveBlock1.tvShows.shows[showidx].common.var00 = 0; - gSaveBlock1.tvShows.shows[showidx].common.var01 = 0; + gSaveBlock1.tvShows[showidx].common.var00 = 0; + gSaveBlock1.tvShows[showidx].common.var01 = 0; for (extradataidx=0; extradataidx<34; extradataidx++) { - gSaveBlock1.tvShows.shows[showidx].common.pad02[extradataidx] = 0; + gSaveBlock1.tvShows[showidx].common.pad02[extradataidx] = 0; } } sub_80BEBF4(); @@ -119,7 +132,7 @@ extern u16 sub_8135D3C(u8); extern u8 gScriptContestCategory; extern u8 gScriptContestRank; extern u8 gUnknown_03004316[11]; -extern u8 gUnknown_02024D26; +extern u8 gBattleOutcome; void sub_80BF334(void); void sub_80BF3A4(void); @@ -134,7 +147,8 @@ void sub_80BE074(void); void sub_80BE778(void); void sub_80BEB20(void); -asm(".section .text_a"); +u8 sub_80BFB54(u8); + s8 sub_80BF74C(TVShow tvShow[]); void sub_80BF55C(TVShow tvShow[], u8 showidx); @@ -142,7 +156,7 @@ void sub_80BEA88(void); void sub_80BE138(TVShow *show); void sub_80BE160(TVShow *show); -extern u16 gUnknown_02024C04; +extern u16 gLastUsedItem; void sub_80BE5FC(void); void sub_80BE65C(void); @@ -151,7 +165,375 @@ void nullsub_21(void); void sub_80BE188(void); void sub_80BE320(void); -extern u8 GabbyAndTyGetBattleNum(void); +#ifdef NONMATCHING +u8 special_0x44(void) +{ + u8 i; + u8 j; + u8 var01; + TVShow *tvShow; + for (i=5; i<24; i++) + { + if (gSaveBlock1.tvShows[i].common.var00 == 0) + { + break; + } + } + i = Random() % i; + j = i; + do + { + if (sub_80BFB54(gSaveBlock1.tvShows[i].common.var00) != 4) + { + var01 = gSaveBlock1.tvShows[i].common.var01; + } else + { + tvShow = &gSaveBlock1.tvShows[i]; + if (tvShow->massOutbreak.var16 != 0) { + continue; + } else { + var01 = tvShow->common.var01; + } + } + if (var01 == 1) + { + return i; + } + } while (i == 0 ? i = 23 : i --, i != j); + return 0xff; +} +#else +__attribute__((naked)) +u8 special_0x44(void) +{ + asm(".syntax unified\n" + " push {r4-r7,lr}\n" + " mov r7, r9\n" + " mov r6, r8\n" + " push {r6,r7}\n" + " movs r4, 0x5\n" + " ldr r1, _080BD874 @ =gSaveBlock1\n" + " ldr r2, _080BD878 @ =0x000027ec\n" + " adds r0, r1, r2\n" + " ldrb r0, [r0]\n" + " cmp r0, 0\n" + " beq _080BD834\n" + " adds r2, r1, 0\n" + " ldr r1, _080BD87C @ =0x00002738\n" + "_080BD81A:\n" + " adds r0, r4, 0x1\n" + " lsls r0, 24\n" + " lsrs r4, r0, 24\n" + " cmp r4, 0x17\n" + " bhi _080BD834\n" + " lsls r0, r4, 3\n" + " adds r0, r4\n" + " lsls r0, 2\n" + " adds r0, r2\n" + " adds r0, r1\n" + " ldrb r0, [r0]\n" + " cmp r0, 0\n" + " bne _080BD81A\n" + "_080BD834:\n" + " bl Random\n" + " lsls r0, 16\n" + " lsrs r0, 16\n" + " adds r1, r4, 0\n" + " bl __modsi3\n" + " lsls r0, 24\n" + " lsrs r4, r0, 24\n" + " mov r8, r4\n" + " ldr r7, _080BD874 @ =gSaveBlock1\n" + " ldr r0, _080BD87C @ =0x00002738\n" + " adds r0, r7\n" + " mov r9, r0\n" + "_080BD850:\n" + " lsls r0, r4, 3\n" + " adds r0, r4\n" + " lsls r6, r0, 2\n" + " adds r5, r6, r7\n" + " ldr r1, _080BD87C @ =0x00002738\n" + " adds r0, r5, r1\n" + " ldrb r0, [r0]\n" + " bl sub_80BFB54\n" + " lsls r0, 24\n" + " lsrs r0, 24\n" + " cmp r0, 0x4\n" + " beq _080BD884\n" + " ldr r2, _080BD880 @ =0x00002739\n" + " adds r0, r5, r2\n" + " ldrb r0, [r0]\n" + " b _080BD890\n" + " .align 2, 0\n" + "_080BD874: .4byte gSaveBlock1\n" + "_080BD878: .4byte 0x000027ec\n" + "_080BD87C: .4byte 0x00002738\n" + "_080BD880: .4byte 0x00002739\n" + "_080BD884:\n" + " mov r0, r9\n" + " adds r1, r6, r0\n" + " ldrh r0, [r1, 0x16]\n" + " cmp r0, 0\n" + " bne _080BD898\n" + " ldrb r0, [r1, 0x1]\n" + "_080BD890:\n" + " cmp r0, 0x1\n" + " bne _080BD898\n" + " adds r0, r4, 0\n" + " b _080BD8AC\n" + "_080BD898:\n" + " cmp r4, 0\n" + " bne _080BD8A0\n" + " movs r4, 0x17\n" + " b _080BD8A6\n" + "_080BD8A0:\n" + " subs r0, r4, 0x1\n" + " lsls r0, 24\n" + " lsrs r4, r0, 24\n" + "_080BD8A6:\n" + " cmp r4, r8\n" + " bne _080BD850\n" + " movs r0, 0xFF\n" + "_080BD8AC:\n" + " pop {r3,r4}\n" + " mov r8, r3\n" + " mov r9, r4\n" + " pop {r4-r7}\n" + " pop {r1}\n" + " bx r1\n" + ".syntax divided\n"); +} +#endif + +u8 sub_80BDA30(void); + +u8 sub_80BD8B8(void) +{ + u8 retval; + retval = special_0x44(); + if (retval == 0xff) + { + return 0xff; + } + if (gSaveBlock1.outbreakPokemonSpecies != 0 && gSaveBlock1.tvShows[retval].common.var00 == TVSHOW_MASS_OUTBREAK) + { + return sub_80BDA30(); + } + return retval; +} + +u8 CheckForBigMovieOrEmergencyNewsOnTV(void); +void SetTVMetatilesOnMap(int, int, u16); +bool8 sub_80BECA0(void); +bool8 IsTVShowInSearchOfTrainersAiring(void); + +void UpdateTVScreensOnMap(int width, int height) +{ + u8 bigMovieOrEmergencyNewsOnTv; + FlagSet(SYS_TV_WATCH); + bigMovieOrEmergencyNewsOnTv = CheckForBigMovieOrEmergencyNewsOnTV(); + switch (bigMovieOrEmergencyNewsOnTv) + { + case 1: + SetTVMetatilesOnMap(width, height, 0x3); + break; + case 2: + break; + default: + if (gSaveBlock1.location.mapGroup == MAP_GROUP_LILYCOVE_CITY_COVE_LILY_MOTEL_1F && gSaveBlock1.location.mapNum == MAP_ID_LILYCOVE_CITY_COVE_LILY_MOTEL_1F) + { + SetTVMetatilesOnMap(width, height, 0x3); + } + else if (FlagGet(SYS_TV_START) && (sub_80BD8B8() != 0xff || sub_80BECA0() != 0xff || IsTVShowInSearchOfTrainersAiring())) + { + FlagReset(SYS_TV_WATCH); + SetTVMetatilesOnMap(width, height, 0x3); + } + } +} + +void SetTVMetatilesOnMap(int width, int height, u16 tileId) +{ + int x; + int y; + for (y=0; y<height; y++) + { + for (x=0; x<width; x++) + { + if (MapGridGetMetatileBehaviorAt(x, y) == 0x86) + { + MapGridSetMetatileIdAt(x, y, tileId | 0xc00); + } + } + } +} + +void TurnOffTVScreen(void) +{ + SetTVMetatilesOnMap(gUnknown_03004870.width, gUnknown_03004870.height, 0x2); + DrawWholeMapView(); +} + +u8 sub_80BDA0C(void) +{ + return gSaveBlock1.tvShows[gSpecialVar_0x8004].common.var00; +} + +u8 sub_80BDA30(void) +{ + u8 showIdx; + for (showIdx=0; showIdx<24; showIdx++) + { + if (gSaveBlock1.tvShows[showIdx].common.var00 != 0 && gSaveBlock1.tvShows[showIdx].common.var00 != TVSHOW_MASS_OUTBREAK && gSaveBlock1.tvShows[showIdx].common.var01 == 1) + { + return showIdx; + } + } + return 0xff; +} + +u8 special_0x4a(void) +{ + TVShow *tvShow; + tvShow = &gSaveBlock1.tvShows[gSpecialVar_0x8004]; + if (tvShow->common.var00 == TVSHOW_MASS_OUTBREAK && gSaveBlock1.outbreakPokemonSpecies) + { + return sub_80BDA30(); + } + return gSpecialVar_0x8004; +} + +void ResetGabbyAndTy(void) +{ + gSaveBlock1.gabbyAndTyData.mon1 = 0; + gSaveBlock1.gabbyAndTyData.mon2 = 0; + gSaveBlock1.gabbyAndTyData.lastMove = 0; + gSaveBlock1.gabbyAndTyData.quote = 0xffff; + gSaveBlock1.gabbyAndTyData.valA_0 = 0; + gSaveBlock1.gabbyAndTyData.valA_1 = 0; + gSaveBlock1.gabbyAndTyData.valA_2 = 0; + gSaveBlock1.gabbyAndTyData.valA_3 = 0; + gSaveBlock1.gabbyAndTyData.valA_4 = 0; + gSaveBlock1.gabbyAndTyData.valA_5 = 0; + gSaveBlock1.gabbyAndTyData.valB_0 = 0; + gSaveBlock1.gabbyAndTyData.valB_1 = 0; + gSaveBlock1.gabbyAndTyData.valB_2 = 0; + gSaveBlock1.gabbyAndTyData.valB_3 = 0; + gSaveBlock1.gabbyAndTyData.valB_4 = 0; + gSaveBlock1.gabbyAndTyData.valB_5 = 0; + gSaveBlock1.gabbyAndTyData.mapnum = 0; + gSaveBlock1.gabbyAndTyData.battleNum = 0; +} + +void TakeTVShowInSearchOfTrainersOffTheAir(void); + +void GabbyAndTyBeforeInterview(void) +{ + u8 i; + gSaveBlock1.gabbyAndTyData.mon1 = gBattleResults.unk6; + gSaveBlock1.gabbyAndTyData.mon2 = gBattleResults.unk26; + gSaveBlock1.gabbyAndTyData.lastMove = gBattleResults.unk22; + if (gSaveBlock1.gabbyAndTyData.battleNum != 0xff) + { + gSaveBlock1.gabbyAndTyData.battleNum ++; + } + gSaveBlock1.gabbyAndTyData.valA_0 = gBattleResults.unk5_0; + if (gBattleResults.unk0) + { + gSaveBlock1.gabbyAndTyData.valA_1 = 1; + } else + { + gSaveBlock1.gabbyAndTyData.valA_1 = 0; + } + if (gBattleResults.unk3) + { + gSaveBlock1.gabbyAndTyData.valA_2 = 1; + } else + { + gSaveBlock1.gabbyAndTyData.valA_2 = 0; + } + if (!gBattleResults.unk5_1) + { + for (i=0; i<11; i++) + { + if (gBattleResults.unk36[i] != 0) + { + gSaveBlock1.gabbyAndTyData.valA_3 = 1; + break; + } + } + } else + { + gSaveBlock1.gabbyAndTyData.valA_3 = 1; + } + TakeTVShowInSearchOfTrainersOffTheAir(); + if (gSaveBlock1.gabbyAndTyData.lastMove == 0) + { + FlagSet(1); + } +} + +void sub_80BDC14(void) +{ + gSaveBlock1.gabbyAndTyData.valB_0 = gSaveBlock1.gabbyAndTyData.valA_0; + gSaveBlock1.gabbyAndTyData.valB_1 = gSaveBlock1.gabbyAndTyData.valA_1; + gSaveBlock1.gabbyAndTyData.valB_2 = gSaveBlock1.gabbyAndTyData.valA_2; + gSaveBlock1.gabbyAndTyData.valB_3 = gSaveBlock1.gabbyAndTyData.valA_3; + gSaveBlock1.gabbyAndTyData.valA_4 = 1; + gSaveBlock1.gabbyAndTyData.mapnum = gMapHeader.name; + IncrementGameStat(GAME_STAT_GOT_INTERVIEWED); +} + +void TakeTVShowInSearchOfTrainersOffTheAir(void) +{ + gSaveBlock1.gabbyAndTyData.valA_4 = 0; +} + +u8 GabbyAndTyGetBattleNum(void) +{ + if (gSaveBlock1.gabbyAndTyData.battleNum >= 6) + { + return (gSaveBlock1.gabbyAndTyData.battleNum % 3) + 6; + } + return gSaveBlock1.gabbyAndTyData.battleNum; +} + +bool8 IsTVShowInSearchOfTrainersAiring(void) +{ + return gSaveBlock1.gabbyAndTyData.valA_4; +} + +bool8 GabbyAndTyGetLastQuote(void) +{ + if (gSaveBlock1.gabbyAndTyData.quote == 0xffff) + { + return FALSE; + } + sub_80EB3FC(gStringVar1, gSaveBlock1.gabbyAndTyData.quote); + gSaveBlock1.gabbyAndTyData.quote |= 0xffff; + return TRUE; +} + +u8 sub_80BDD18(void) +{ + if (!gSaveBlock1.gabbyAndTyData.valB_0) + { + return 1; + } + if (gSaveBlock1.gabbyAndTyData.valB_3) + { + return 2; + } + if (gSaveBlock1.gabbyAndTyData.valB_2) + { + return 3; + } + if (gSaveBlock1.gabbyAndTyData.valB_1) + { + return 4; + } + return 0; +} void GabbyAndTySetScriptVarsToFieldObjectLocalIds(void) { switch (GabbyAndTyGetBattleNum()) { @@ -230,38 +612,38 @@ void sub_80BDEC8(void) { total = 0; sub_80BEB20(); sub_80BE778(); - if (gUnknown_030042E0.var28 == 0) { + if (gBattleResults.unk28 == 0) { sub_80BE074(); } else { sub_80BE028(); - if (sub_80BF77C(0xffff) == 0 && StringCompareWithoutExtCtrlCodes(gSpeciesNames[gUnknown_030042E0.var28], gUnknown_030042E0.var2a) != 0) { - gUnknown_03005D38.var0 = sub_80BF74C(gSaveBlock1.tvShows.shows); + if (sub_80BF77C(0xffff) == 0 && StringCompareWithoutExtCtrlCodes(gSpeciesNames[gBattleResults.unk28], gBattleResults.unk2A) != 0) { + gUnknown_03005D38.var0 = sub_80BF74C(gSaveBlock1.tvShows); if (gUnknown_03005D38.var0 != -1 && sub_80BF1B4(TVSHOW_POKEMON_TODAY_CAUGHT) != 1) { for (i=0; i<11; i++) { - total += gUnknown_030042E0.var36[i]; + total += gBattleResults.unk36[i]; } - if (total != 0 || gUnknown_030042E0.var05_1 != 0) { + if (total != 0 || gBattleResults.unk5_1 != 0) { total = FALSE; - show = &gSaveBlock1.tvShows.shows[gUnknown_03005D38.var0]; + show = &gSaveBlock1.tvShows[gUnknown_03005D38.var0]; show->pokemonToday.var00 = TVSHOW_POKEMON_TODAY_CAUGHT; show->pokemonToday.var01 = total; - if (gUnknown_030042E0.var05_1 != 0) { + if (gBattleResults.unk5_1 != 0) { total = 1; item = ITEM_MASTER_BALL; } else { for (i=0; i<11; i++) { - total += gUnknown_030042E0.var36[i]; + total += gBattleResults.unk36[i]; } if (total > 0xff) { total = 0xff; } - item = gUnknown_02024C04; + item = gLastUsedItem; } show->pokemonToday.var12 = total; show->pokemonToday.ball = item; StringCopy(show->pokemonToday.playerName, gSaveBlock2.playerName); - StringCopy(show->pokemonToday.nickname, gUnknown_030042E0.var2a); - show->pokemonToday.species = gUnknown_030042E0.var28; + StringCopy(show->pokemonToday.nickname, gBattleResults.unk2A); + show->pokemonToday.species = gBattleResults.unk28; sub_80BE138(show); show->pokemonToday.language = GAME_LANGUAGE; show->pokemonToday.language2 = sub_80BDEAC(show->pokemonToday.nickname); @@ -274,15 +656,15 @@ void sub_80BDEC8(void) { void sub_80BE028(void) { TVShow *buffer; - buffer = &gSaveBlock1.tvShows.unknown_2A98; + buffer = &gSaveBlock1.tvShows[24]; if (buffer->worldOfMasters.var00 != TVSHOW_WORLD_OF_MASTERS) { - sub_80BF55C(gSaveBlock1.tvShows.shows, 24); + sub_80BF55C(gSaveBlock1.tvShows, 24); buffer->worldOfMasters.var06 = GetGameStat(GAME_STAT_STEPS); buffer->worldOfMasters.var00 = TVSHOW_WORLD_OF_MASTERS; } buffer->worldOfMasters.var02++; - buffer->worldOfMasters.var04 = gUnknown_030042E0.var28; - buffer->worldOfMasters.var08 = gUnknown_030042E0.var06; + buffer->worldOfMasters.var04 = gBattleResults.unk28; + buffer->worldOfMasters.var08 = gBattleResults.unk6; buffer->worldOfMasters.var0a = gMapHeader.name; } @@ -299,18 +681,18 @@ void sub_80BE074(void) { if (total > 0xff) { total = 0xff; } - if (total > 2 && gUnknown_02024D26 == 1) { - gUnknown_03005D38.var0 = sub_80BF74C(gSaveBlock1.tvShows.shows); + if (total > 2 && gBattleOutcome == 1) { + gUnknown_03005D38.var0 = sub_80BF74C(gSaveBlock1.tvShows); if (gUnknown_03005D38.var0 != -1 && sub_80BF1B4(TVSHOW_POKEMON_TODAY_FAILED) != 1) { flag = FALSE; - show = &gSaveBlock1.tvShows.shows[gUnknown_03005D38.var0]; + show = &gSaveBlock1.tvShows[gUnknown_03005D38.var0]; asm_comment("Here the wrong registers are used to hold the show ID and flag."); show->pokemonTodayFailed.var00 = TVSHOW_POKEMON_TODAY_FAILED; show->pokemonTodayFailed.var01 = flag; - show->pokemonTodayFailed.species = gUnknown_030042E0.var06; - show->pokemonTodayFailed.species2 = gUnknown_030042E0.var20; + show->pokemonTodayFailed.species = gBattleResults.unk6; + show->pokemonTodayFailed.species2 = gBattleResults.unk20; show->pokemonTodayFailed.var10 = total; - show->pokemonTodayFailed.var11 = gUnknown_02024D26; + show->pokemonTodayFailed.var11 = gBattleOutcome; show->pokemonTodayFailed.var12 = gMapHeader.name; StringCopy(show->pokemonTodayFailed.playerName, gSaveBlock2.playerName); sub_80BE138(show); @@ -323,94 +705,94 @@ void sub_80BE074(void) { __attribute__((naked)) void sub_80BE074(void) { asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - ldr r0, _080BE118 @ =0x0000ffff\n\ - bl sub_80BF77C\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - bne _080BE112\n\ - movs r1, 0\n\ - movs r5, 0\n\ - ldr r2, _080BE11C @ =gUnknown_03004316\n\ + push {r4-r7,lr}\n\ + ldr r0, _080BE118 @ =0x0000ffff\n\ + bl sub_80BF77C\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + bne _080BE112\n\ + movs r1, 0\n\ + movs r5, 0\n\ + ldr r2, _080BE11C @ =gUnknown_03004316\n\ _080BE088:\n\ - adds r0, r1, r2\n\ - ldrb r0, [r0]\n\ - adds r0, r5, r0\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ - adds r0, r1, 0x1\n\ - lsls r0, 24\n\ - lsrs r1, r0, 24\n\ - cmp r1, 0xA\n\ - bls _080BE088\n\ - cmp r5, 0xFF\n\ - bls _080BE0A2\n\ - movs r5, 0xFF\n\ + adds r0, r1, r2\n\ + ldrb r0, [r0]\n\ + adds r0, r5, r0\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + adds r0, r1, 0x1\n\ + lsls r0, 24\n\ + lsrs r1, r0, 24\n\ + cmp r1, 0xA\n\ + bls _080BE088\n\ + cmp r5, 0xFF\n\ + bls _080BE0A2\n\ + movs r5, 0xFF\n\ _080BE0A2:\n\ - cmp r5, 0x2\n\ - bls _080BE112\n\ - ldr r7, _080BE120 @ =gUnknown_02024D26\n\ - ldrb r0, [r7]\n\ - cmp r0, 0x1\n\ - bne _080BE112\n\ - ldr r6, _080BE124 @ =gSaveBlock1 + 0x2738\n\ - adds r0, r6, 0\n\ - bl sub_80BF74C\n\ - ldr r4, _080BE128 @ =gUnknown_03005D38\n\ - strb r0, [r4]\n\ - lsls r0, 24\n\ - asrs r0, 24\n\ - movs r1, 0x1\n\ - negs r1, r1\n\ - cmp r0, r1\n\ - beq _080BE112\n\ - movs r0, 0x17\n\ - bl sub_80BF1B4\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0x1\n\ - beq _080BE112\n\ - movs r0, 0\n\ - ldrsb r0, [r4, r0]\n\ - lsls r4, r0, 3\n\ - adds r4, r0\n\ - lsls r4, 2\n\ - adds r4, r6\n\ + cmp r5, 0x2\n\ + bls _080BE112\n\ + ldr r7, _080BE120 @ =gBattleOutcome\n\ + ldrb r0, [r7]\n\ + cmp r0, 0x1\n\ + bne _080BE112\n\ + ldr r6, _080BE124 @ =gSaveBlock1 + 0x2738\n\ + adds r0, r6, 0\n\ + bl sub_80BF74C\n\ + ldr r4, _080BE128 @ =gUnknown_03005D38\n\ + strb r0, [r4]\n\ + lsls r0, 24\n\ + asrs r0, 24\n\ + movs r1, 0x1\n\ + negs r1, r1\n\ + cmp r0, r1\n\ + beq _080BE112\n\ + movs r0, 0x17\n\ + bl sub_80BF1B4\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + cmp r0, 0x1\n\ + beq _080BE112\n\ + movs r0, 0\n\ + ldrsb r0, [r4, r0]\n\ + lsls r4, r0, 3\n\ + adds r4, r0\n\ + lsls r4, 2\n\ + adds r4, r6\n\ @ -- Here the compiler puts the status flag in the wrong register. --\n\ - movs r1, 0\n\ - movs r0, 0x17\n\ - strb r0, [r4]\n\ - strb r1, [r4, 0x1]\n\ - ldr r1, _080BE12C @ =gUnknown_030042E0\n\ - ldrh r0, [r1, 0x6]\n\ - strh r0, [r4, 0xC]\n\ - ldrh r0, [r1, 0x20]\n\ - strh r0, [r4, 0xE]\n\ - strb r5, [r4, 0x10]\n\ - ldrb r0, [r7]\n\ - strb r0, [r4, 0x11]\n\ - ldr r0, _080BE130 @ =gMapHeader\n\ - ldrb r0, [r0, 0x14]\n\ - strb r0, [r4, 0x12]\n\ - adds r0, r4, 0\n\ - adds r0, 0x13\n\ - ldr r1, _080BE134 @ =gSaveBlock2\n\ - bl StringCopy\n\ - adds r0, r4, 0\n\ - bl sub_80BE138\n\ - movs r0, 2 @ GAME_LANGUAGE\n\ - strb r0, [r4, 0x2]\n\ + movs r1, 0\n\ + movs r0, 0x17\n\ + strb r0, [r4]\n\ + strb r1, [r4, 0x1]\n\ + ldr r1, _080BE12C @ =gBattleResults\n\ + ldrh r0, [r1, 0x6]\n\ + strh r0, [r4, 0xC]\n\ + ldrh r0, [r1, 0x20]\n\ + strh r0, [r4, 0xE]\n\ + strb r5, [r4, 0x10]\n\ + ldrb r0, [r7]\n\ + strb r0, [r4, 0x11]\n\ + ldr r0, _080BE130 @ =gMapHeader\n\ + ldrb r0, [r0, 0x14]\n\ + strb r0, [r4, 0x12]\n\ + adds r0, r4, 0\n\ + adds r0, 0x13\n\ + ldr r1, _080BE134 @ =gSaveBlock2\n\ + bl StringCopy\n\ + adds r0, r4, 0\n\ + bl sub_80BE138\n\ + movs r0, 2 @ GAME_LANGUAGE\n\ + strb r0, [r4, 0x2]\n\ _080BE112:\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ _080BE118: .4byte 0x0000ffff\n\ _080BE11C: .4byte gUnknown_03004316\n\ -_080BE120: .4byte gUnknown_02024D26\n\ +_080BE120: .4byte gBattleOutcome\n\ _080BE124: .4byte gSaveBlock1 + 0x2738\n\ _080BE128: .4byte gUnknown_03005D38\n\ -_080BE12C: .4byte gUnknown_030042E0\n\ +_080BE12C: .4byte gBattleResults\n\ _080BE130: .4byte gMapHeader\n\ _080BE134: .4byte gSaveBlock2\n\ .syntax divided\n"); @@ -440,9 +822,9 @@ void sub_80BE160(TVShow *show) { void sub_80BE188(void) { TVShow *show; TVShow *buffer; - buffer = &gSaveBlock1.tvShows.unknown_2A98; + buffer = &gSaveBlock1.tvShows[24]; if (buffer->bravoTrainer.var00 == TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE) { - show = &gSaveBlock1.tvShows.shows[gUnknown_03005D38.var0]; + show = &gSaveBlock1.tvShows[gUnknown_03005D38.var0]; show->bravoTrainer.var00 = TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE; show->bravoTrainer.var01 = 1; show->bravoTrainer.species = buffer->bravoTrainer.species; @@ -451,7 +833,7 @@ void sub_80BE188(void) { show->bravoTrainer.contestCategory = buffer->bravoTrainer.contestCategory; show->bravoTrainer.contestRank = buffer->bravoTrainer.contestRank; show->bravoTrainer.var14 = buffer->bravoTrainer.var14; - show->bravoTrainer.var13_5 = buffer->bravoTrainer.var13_5; + show->bravoTrainer.contestResult = buffer->bravoTrainer.contestResult; show->bravoTrainer.contestCategory = buffer->bravoTrainer.contestCategory; sub_80BE160(show); show->bravoTrainer.language = GAME_LANGUAGE; @@ -462,11 +844,11 @@ void sub_80BE188(void) { void sub_80BE23C(u16 a0) { TVShow *show; - show = &gSaveBlock1.tvShows.unknown_2A98; + show = &gSaveBlock1.tvShows[24]; sub_80BF484(); - gUnknown_03005D38.var0 = sub_80BF720(gSaveBlock1.tvShows.shows); + gUnknown_03005D38.var0 = sub_80BF720(gSaveBlock1.tvShows); if (gUnknown_03005D38.var0 != -1) { - sub_80BF55C(gSaveBlock1.tvShows.shows, 24); + sub_80BF55C(gSaveBlock1.tvShows, 24); show->bravoTrainer.var14 = a0; show->bravoTrainer.var00 = TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE; } @@ -474,10 +856,10 @@ void sub_80BE23C(u16 a0) { void sub_80BE284(u8 a0) { TVShow *show; - show = &gSaveBlock1.tvShows.unknown_2A98; - gUnknown_03005D38.var0 = sub_80BF720(gSaveBlock1.tvShows.shows); + show = &gSaveBlock1.tvShows[24]; + gUnknown_03005D38.var0 = sub_80BF720(gSaveBlock1.tvShows); if (gUnknown_03005D38.var0 != -1) { - show->bravoTrainer.var13_5 = a0; + show->bravoTrainer.contestResult = a0; show->bravoTrainer.contestCategory = gScriptContestCategory; show->bravoTrainer.contestRank = gScriptContestRank; show->bravoTrainer.species = GetMonData(&gPlayerParty[gUnknown_02038694], MON_DATA_SPECIES, NULL); @@ -487,13 +869,13 @@ void sub_80BE284(u8 a0) { void sub_80BE320(void) { TVShow *show; - show = &gSaveBlock1.tvShows.shows[gUnknown_03005D38.var0]; + show = &gSaveBlock1.tvShows[gUnknown_03005D38.var0]; show->bravoTrainerTower.var00 = TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE; show->bravoTrainerTower.var01 = 1; StringCopy(show->bravoTrainerTower.trainerName, gSaveBlock2.playerName); StringCopy(show->bravoTrainerTower.pokemonName, gSaveBlock2.filler_A8.filler_3DC); show->bravoTrainerTower.species = gSaveBlock2.filler_A8.var_480; - show->bravoTrainerTower.winningMove = gSaveBlock2.filler_A8.var_482; + show->bravoTrainerTower.defeatedSpecies = gSaveBlock2.filler_A8.var_482; show->bravoTrainerTower.var16 = sub_8135D3C(gSaveBlock2.filler_A8.var_4D0); show->bravoTrainerTower.var1c = gSaveBlock2.filler_A8.var_4AD; if (gSaveBlock2.filler_A8.var_4D0 == 0) { @@ -513,11 +895,11 @@ void sub_80BE3BC(void) { rval = sub_80BF77C(0x5555); if (rval == 0) { - gUnknown_03005D38.var0 = sub_80BF74C(gSaveBlock1.tvShows.shows); + gUnknown_03005D38.var0 = sub_80BF74C(gSaveBlock1.tvShows); if (gUnknown_03005D38.var0 != -1 && sub_80BF1B4(TVSHOW_SMART_SHOPPER) != 1) { sub_80BF20C(); if (gUnknown_02038724[0].item_amount >= 20) { - tvShow = &gSaveBlock1.tvShows.shows[gUnknown_03005D38.var0]; + tvShow = &gSaveBlock1.tvShows[gUnknown_03005D38.var0]; tvShow->smartshopperShow.var00 = TVSHOW_SMART_SHOPPER; tvShow->smartshopperShow.var01 = rval; tvShow->smartshopperShow.shopLocation = gMapHeader.name; @@ -561,7 +943,7 @@ void sub_80BE478(void) return; } - tvShow = &gSaveBlock1.tvShows.shows[gUnknown_03005D38.var0]; + tvShow = &gSaveBlock1.tvShows[gUnknown_03005D38.var0]; tvShow->nameRaterShow.var00 = TVSHOW_NAME_RATER_SHOW; tvShow->nameRaterShow.var01 = 1; @@ -588,7 +970,7 @@ void StartMassOutbreak(void) { TVShow *tvShow; - tvShow = &gSaveBlock1.tvShows.shows[gSpecialVar_0x8004]; + tvShow = &gSaveBlock1.tvShows[gSpecialVar_0x8004]; gSaveBlock1.outbreakPokemonSpecies = tvShow->massOutbreak.species; gSaveBlock1.outbreakLocationMapNum = tvShow->massOutbreak.locationMapNum; @@ -610,7 +992,7 @@ void sub_80BE5FC(void) TVShow *tvShow; u16 species; - tvShow = &gSaveBlock1.tvShows.shows[gUnknown_03005D38.var0]; + tvShow = &gSaveBlock1.tvShows[gUnknown_03005D38.var0]; tvShow->fanclubLetter.var00 = TVSHOW_FAN_CLUB_LETTER; tvShow->fanclubLetter.var01 = 1; @@ -626,7 +1008,7 @@ void sub_80BE65C(void) { TVShow *tvShow; - tvShow = &gSaveBlock1.tvShows.shows[gUnknown_03005D38.var0]; + tvShow = &gSaveBlock1.tvShows[gUnknown_03005D38.var0]; tvShow->recentHappenings.var00 = TVSHOW_RECENT_HAPPENINGS; tvShow->recentHappenings.var01 = 1; @@ -642,7 +1024,7 @@ void sub_80BE6A0(void) TVShow *tvShow; u8 monIndex; - tvShow = &gSaveBlock1.tvShows.shows[gUnknown_03005D38.var0]; + tvShow = &gSaveBlock1.tvShows[gUnknown_03005D38.var0]; tvShow->fanclubOpinions.var00 = TVSHOW_PKMN_FAN_CLUB_OPINIONS; tvShow->fanclubOpinions.var01 = 1; @@ -680,7 +1062,7 @@ void sub_80BE778(void) for (i = 0; i < 24; i++) { - if (gSaveBlock1.tvShows.shows[i].massOutbreak.var00 == TVSHOW_MASS_OUTBREAK) + if (gSaveBlock1.tvShows[i].massOutbreak.var00 == TVSHOW_MASS_OUTBREAK) { return; } @@ -691,7 +1073,7 @@ void sub_80BE778(void) return; } - gUnknown_03005D38.var0 = sub_80BF720(gSaveBlock1.tvShows.shows); + gUnknown_03005D38.var0 = sub_80BF720(gSaveBlock1.tvShows); if (gUnknown_03005D38.var0 == -1) { return; @@ -707,7 +1089,7 @@ void sub_80BE778(void) val2 = gUnknown_03005D38.var0; - tvShow = &gSaveBlock1.tvShows.shows[val2]; + tvShow = &gSaveBlock1.tvShows[val2]; tvShow->massOutbreak.var00 = TVSHOW_MASS_OUTBREAK; tvShow->massOutbreak.var01 = 1; @@ -764,8 +1146,8 @@ void sub_80BE8EC(u16 arg0) TVShow *tvShow; if (gSaveBlock1.outbreakPokemonSpecies == 0) { for (showidx=0; showidx<24; showidx++) { - if (gSaveBlock1.tvShows.shows[showidx].massOutbreak.var00 == TVSHOW_MASS_OUTBREAK && gSaveBlock1.tvShows.shows[showidx].massOutbreak.var01 == 0x01) { - tvShow = &(gSaveBlock1.tvShows.shows[showidx]); + if (gSaveBlock1.tvShows[showidx].massOutbreak.var00 == TVSHOW_MASS_OUTBREAK && gSaveBlock1.tvShows[showidx].massOutbreak.var01 == 0x01) { + tvShow = &(gSaveBlock1.tvShows[showidx]); if (tvShow->massOutbreak.var16 < arg0) tvShow->massOutbreak.var16 = 0; else @@ -784,8 +1166,6 @@ void UpdateMassOutbreakTimeLeft(u16 arg0) gSaveBlock1.outbreakUnk5 -= arg0; } -void sub_80BE9D4(); - void sub_80BE97C(bool8 flag) { u8 var0, var1; @@ -811,9 +1191,9 @@ void sub_80BE97C(bool8 flag) void sub_80BE9D4() { TVShow *show; - gUnknown_03005D38.var0 = sub_80BF74C(gSaveBlock1.tvShows.shows); + gUnknown_03005D38.var0 = sub_80BF74C(gSaveBlock1.tvShows); if (gUnknown_03005D38.var0 != -1 && sub_80BF1B4(TVSHOW_FISHING_ADVICE) != 1) { - show = &(gSaveBlock1.tvShows.shows[gUnknown_03005D38.var0]); + show = &(gSaveBlock1.tvShows[gUnknown_03005D38.var0]); #ifdef NONMATCHING show->pokemonAngler.var00 = TVSHOW_FISHING_ADVICE; show->pokemonAngler.var01 = 0; @@ -839,18 +1219,17 @@ void sub_80BEA50(u16 var) gUnknown_020387E0 = var; } -void sub_80BF55C(TVShow tvShow[], u8 showidx); void sub_80BEA88(void); void sub_80BEA5C(u16 arg0) { TVShow *unk_2a98; - unk_2a98 = &gSaveBlock1.tvShows.unknown_2A98; + unk_2a98 = &gSaveBlock1.tvShows[24]; if (unk_2a98->common.var00 == TVSHOW_WORLD_OF_MASTERS) { if (unk_2a98->worldOfMasters.var02 < 20) { - sub_80BF55C(gSaveBlock1.tvShows.shows, 0x18); + sub_80BF55C(gSaveBlock1.tvShows, 0x18); } else { @@ -863,14 +1242,14 @@ void sub_80BEA88(void) TVShow *unk_2a98; TVShow *tvShow; u8 rval; - unk_2a98 = &gSaveBlock1.tvShows.unknown_2A98; + unk_2a98 = &gSaveBlock1.tvShows[24]; rval = sub_80BF77C(0xFFFF); if (rval == 0) { - gUnknown_03005D38.var0 = sub_80BF74C(gSaveBlock1.tvShows.shows); + gUnknown_03005D38.var0 = sub_80BF74C(gSaveBlock1.tvShows); if (gUnknown_03005D38.var0 != -1 && sub_80BF1B4(TVSHOW_WORLD_OF_MASTERS) != 1) { - tvShow = &gSaveBlock1.tvShows.shows[gUnknown_03005D38.var0]; + tvShow = &gSaveBlock1.tvShows[gUnknown_03005D38.var0]; tvShow->worldOfMasters.var00 = TVSHOW_WORLD_OF_MASTERS; tvShow->worldOfMasters.var01 = rval; tvShow->worldOfMasters.var02 = unk_2a98->worldOfMasters.var02; @@ -885,15 +1264,6 @@ void sub_80BEA88(void) } } -int sub_80BEBC8(struct UnknownSaveStruct2ABC *arg0); -void sub_80BEC10(u8); -void sub_80BF588(TVShow tvShows[]); -void sub_80BF6D8(void); -bool8 sub_80BF77C(u16); -bool8 sub_80BEE48(u8); - -bool8 IsPriceDiscounted(u8); - void sub_80BEB20(void) { u16 rval; struct SaveBlock1 *save; @@ -1097,16 +1467,16 @@ void sub_80BEF10(u8 strvaridx, u8 rank) switch (rank) { case NORMAL_RANK: - StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[NORMAL_RANK + 5]); + StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[NORMAL_RANK + 5].text); break; case SUPER_RANK: - StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[SUPER_RANK + 5]); + StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[SUPER_RANK + 5].text); break; case HYPER_RANK: - StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[HYPER_RANK + 5]); + StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[HYPER_RANK + 5].text); break; case MASTER_RANK: - StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[MASTER_RANK + 5]); + StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[MASTER_RANK + 5].text); break; } } @@ -1116,19 +1486,19 @@ void CopyContestCategoryToStringVar(u8 strvaridx, u8 category) switch (category) { case CONTEST_COOL: - StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_COOL]); + StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_COOL].text); break; case CONTEST_BEAUTY: - StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_BEAUTY]); + StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_BEAUTY].text); break; case CONTEST_CUTE: - StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_CUTE]); + StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_CUTE].text); break; case CONTEST_SMART: - StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_SMART]); + StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_SMART].text); break; case CONTEST_TOUGH: - StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_TOUGH]); + StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_TOUGH].text); break; } } @@ -1136,7 +1506,7 @@ void CopyContestCategoryToStringVar(u8 strvaridx, u8 category) void SetContestCategoryStringVarForInterview(void) { TVShow *tvShow; - tvShow = &gSaveBlock1.tvShows.shows[gSpecialVar_0x8004]; + tvShow = &gSaveBlock1.tvShows[gSpecialVar_0x8004]; CopyContestCategoryToStringVar(1, tvShow->bravoTrainer.contestCategory); } @@ -1196,7 +1566,7 @@ bool8 sub_80BF1B4(u8 showIdx) TVShow *tvShows; u8 i; u32 trainerId; - tvShows = gSaveBlock1.tvShows.shows; + tvShows = gSaveBlock1.tvShows; trainerId = GetPlayerTrainerId(); for (i=5; i<24; i++) { @@ -1237,15 +1607,15 @@ void sub_80BF25C(u8 showType) u8 i; for (i=0; i<5; i++) { - if (gSaveBlock1.tvShows.shows[i].common.var00 == showType) { - if(gSaveBlock1.tvShows.shows[i].common.var01 == 1) + if (gSaveBlock1.tvShows[i].common.var00 == showType) { + if(gSaveBlock1.tvShows[i].common.var01 == 1) { gScriptResult = 1; } else { - sub_80BF55C(gSaveBlock1.tvShows.shows, i); - sub_80BF588(gSaveBlock1.tvShows.shows); + sub_80BF55C(gSaveBlock1.tvShows, i); + sub_80BF588(gSaveBlock1.tvShows); sub_80BF6D8(); } return; @@ -1288,7 +1658,7 @@ void sub_80BF334(void) sub_80BF25C(TVSHOW_FAN_CLUB_LETTER); if (gScriptResult == 0) { StringCopy(gStringVar1, gSpeciesNames[GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SPECIES, 0)]); - show = &gSaveBlock1.tvShows.shows[gUnknown_03005D38.var0]; + show = &gSaveBlock1.tvShows[gUnknown_03005D38.var0]; sub_80EB6FC(show->fanclubLetter.pad04, 6); } } @@ -1298,7 +1668,7 @@ void sub_80BF3A4(void) TVShow *show; sub_80BF25C(TVSHOW_RECENT_HAPPENINGS); if (gScriptResult == 0) { - show = &gSaveBlock1.tvShows.shows[gUnknown_03005D38.var0]; + show = &gSaveBlock1.tvShows[gUnknown_03005D38.var0]; sub_80EB6FC(show->recentHappenings.var04, 6); } } @@ -1311,7 +1681,7 @@ void sub_80BF3DC(void) StringCopy(gStringVar1, gSpeciesNames[GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SPECIES, 0)]); GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_NICKNAME, gStringVar2); StringGetEnd10(gStringVar2); - show = &gSaveBlock1.tvShows.shows[gUnknown_03005D38.var0]; + show = &gSaveBlock1.tvShows[gUnknown_03005D38.var0]; sub_80EB6FC(show->fanclubOpinions.var1C, 2); } } @@ -1331,7 +1701,7 @@ void sub_80BF484(void) TVShow *show; sub_80BF25C(TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE); if (gScriptResult == 0) { - show = &gSaveBlock1.tvShows.shows[gUnknown_03005D38.var0]; + show = &gSaveBlock1.tvShows[gUnknown_03005D38.var0]; sub_80EB6FC(show->bravoTrainer.var04, 2); } } @@ -1341,7 +1711,7 @@ void sub_80BF4BC(void) TVShow *show; sub_80BF25C(TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE); if (gScriptResult == 0) { - show = &gSaveBlock1.tvShows.shows[gUnknown_03005D38.var0]; + show = &gSaveBlock1.tvShows[gUnknown_03005D38.var0]; sub_80EB6FC(show->bravoTrainerTower.var18, 1); // wrong struct ident, fix later } } @@ -1397,7 +1767,7 @@ void sub_80BF588(TVShow tvShow[]) for (showidx2=showidx+1; showidx2<24; showidx2++) { if (tvShow[showidx2].common.var00 != 0) { tvShow[showidx] = tvShow[showidx2]; - sub_80BF55C(gSaveBlock1.tvShows.shows, showidx2); + sub_80BF55C(gSaveBlock1.tvShows, showidx2); break; } } @@ -1418,7 +1788,7 @@ u16 sub_80BF674(u16 species) u16 cspecies; rspecies = (Random() % (NUM_SPECIES - 1)) + 1; cspecies = rspecies; - while ((s8)sub_8090D90(SpeciesToNationalPokedexNum(cspecies), 0) != 1 || cspecies == species) { + while ((s8)GetNationalPokedexFlag(SpeciesToNationalPokedexNum(cspecies), 0) != 1 || cspecies == species) { if (cspecies == SPECIES_BULBASAUR) cspecies = NUM_SPECIES - 1; else @@ -1433,7 +1803,7 @@ u16 sub_80BF674(u16 species) void sub_80BF6D8(void) { - gUnknown_03005D38.var0 = sub_80BF720(gSaveBlock1.tvShows.shows); + gUnknown_03005D38.var0 = sub_80BF720(gSaveBlock1.tvShows); gSpecialVar_0x8006 = gUnknown_03005D38.var0; if (gUnknown_03005D38.var0 == -1) gScriptResult = 1; @@ -1549,7 +1919,7 @@ bool8 sub_80BF974(void) u8 i; for (i=0; i<5; i++) { - if (gSaveBlock1.tvShows.shows[i].common.var00 == gSpecialVar_0x8004) + if (gSaveBlock1.tvShows[i].common.var00 == gSpecialVar_0x8004) return TRUE; } return FALSE; @@ -1677,119 +2047,119 @@ __attribute__((naked)) void GetMomOrDadStringForTVMessage(void) { asm(".syntax unified\n\ - push {r4,lr}\n\ - ldr r1, _080BFC40 @ =gSaveBlock1\n\ - movs r0, 0x4\n\ - ldrsb r0, [r1, r0]\n\ - cmp r0, 0x1\n\ - bne _080BFC6C\n\ - ldr r0, _080BFC44 @ =gSaveBlock2\n\ - ldrb r0, [r0, 0x8]\n\ - cmp r0, 0\n\ - bne _080BFC54\n\ - movs r0, 0x5\n\ - ldrsb r0, [r1, r0]\n\ - cmp r0, 0\n\ - bne _080BFC6C\n\ - ldr r0, _080BFC48 @ =gStringVar1\n\ - ldr r1, _080BFC4C @ =gOtherText_Mom\n\ - bl StringCopy\n\ - ldr r0, _080BFC50 @ =0x00004003\n\ - movs r1, 0x1\n\ - bl VarSet\n\ - b _080BFC6C\n\ - .align 2, 0\n\ + push {r4,lr}\n\ + ldr r1, _080BFC40 @ =gSaveBlock1\n\ + movs r0, 0x4\n\ + ldrsb r0, [r1, r0]\n\ + cmp r0, 0x1\n\ + bne _080BFC6C\n\ + ldr r0, _080BFC44 @ =gSaveBlock2\n\ + ldrb r0, [r0, 0x8]\n\ + cmp r0, 0\n\ + bne _080BFC54\n\ + movs r0, 0x5\n\ + ldrsb r0, [r1, r0]\n\ + cmp r0, 0\n\ + bne _080BFC6C\n\ + ldr r0, _080BFC48 @ =gStringVar1\n\ + ldr r1, _080BFC4C @ =gOtherText_Mom\n\ + bl StringCopy\n\ + ldr r0, _080BFC50 @ =0x00004003\n\ + movs r1, 0x1\n\ + bl VarSet\n\ + b _080BFC6C\n\ + .align 2, 0\n\ _080BFC40: .4byte gSaveBlock1\n\ _080BFC44: .4byte gSaveBlock2\n\ _080BFC48: .4byte gStringVar1\n\ _080BFC4C: .4byte gOtherText_Mom\n\ _080BFC50: .4byte 0x00004003\n\ _080BFC54:\n\ - movs r0, 0x5\n\ - ldrsb r0, [r1, r0]\n\ - cmp r0, 0x2\n\ - bne _080BFC6C\n\ - ldr r0, _080BFCB4 @ =gStringVar1\n\ - ldr r1, _080BFCB8 @ =gOtherText_Mom\n\ - bl StringCopy\n\ - ldr r0, _080BFCBC @ =0x00004003\n\ - movs r1, 0x1\n\ - bl VarSet\n\ + movs r0, 0x5\n\ + ldrsb r0, [r1, r0]\n\ + cmp r0, 0x2\n\ + bne _080BFC6C\n\ + ldr r0, _080BFCB4 @ =gStringVar1\n\ + ldr r1, _080BFCB8 @ =gOtherText_Mom\n\ + bl StringCopy\n\ + ldr r0, _080BFCBC @ =0x00004003\n\ + movs r1, 0x1\n\ + bl VarSet\n\ _080BFC6C:\n\ - ldr r4, _080BFCBC @ =0x00004003\n\ - adds r0, r4, 0\n\ - bl VarGet\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - cmp r0, 0x1\n\ - beq _080BFCAA\n\ - adds r0, r4, 0\n\ - bl VarGet\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - cmp r0, 0x2\n\ - beq _080BFCC0\n\ - adds r0, r4, 0\n\ - bl VarGet\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - cmp r0, 0x2\n\ - bls _080BFCD4\n\ - adds r0, r4, 0\n\ - bl VarGet\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - movs r1, 0x1\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _080BFCC0\n\ + ldr r4, _080BFCBC @ =0x00004003\n\ + adds r0, r4, 0\n\ + bl VarGet\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + cmp r0, 0x1\n\ + beq _080BFCAA\n\ + adds r0, r4, 0\n\ + bl VarGet\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + cmp r0, 0x2\n\ + beq _080BFCC0\n\ + adds r0, r4, 0\n\ + bl VarGet\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + cmp r0, 0x2\n\ + bls _080BFCD4\n\ + adds r0, r4, 0\n\ + bl VarGet\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + movs r1, 0x1\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _080BFCC0\n\ _080BFCAA:\n\ - ldr r0, _080BFCB4 @ =gStringVar1\n\ - ldr r1, _080BFCB8 @ =gOtherText_Mom\n\ - bl StringCopy\n\ - b _080BFD10\n\ - .align 2, 0\n\ + ldr r0, _080BFCB4 @ =gStringVar1\n\ + ldr r1, _080BFCB8 @ =gOtherText_Mom\n\ + bl StringCopy\n\ + b _080BFD10\n\ + .align 2, 0\n\ _080BFCB4: .4byte gStringVar1\n\ _080BFCB8: .4byte gOtherText_Mom\n\ _080BFCBC: .4byte 0x00004003\n\ _080BFCC0:\n\ - ldr r0, _080BFCCC @ =gStringVar1\n\ - ldr r1, _080BFCD0 @ =gOtherText_Dad\n\ - bl StringCopy\n\ - b _080BFD10\n\ - .align 2, 0\n\ + ldr r0, _080BFCCC @ =gStringVar1\n\ + ldr r1, _080BFCD0 @ =gOtherText_Dad\n\ + bl StringCopy\n\ + b _080BFD10\n\ + .align 2, 0\n\ _080BFCCC: .4byte gStringVar1\n\ _080BFCD0: .4byte gOtherText_Dad\n\ _080BFCD4:\n\ - bl Random\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - movs r1, 0x1\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _080BFD00\n\ - ldr r0, _080BFCF8 @ =gStringVar1\n\ - ldr r1, _080BFCFC @ =gOtherText_Mom\n\ - bl StringCopy\n\ - adds r0, r4, 0\n\ - movs r1, 0x1\n\ - bl VarSet\n\ - b _080BFD10\n\ - .align 2, 0\n\ + bl Random\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + movs r1, 0x1\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _080BFD00\n\ + ldr r0, _080BFCF8 @ =gStringVar1\n\ + ldr r1, _080BFCFC @ =gOtherText_Mom\n\ + bl StringCopy\n\ + adds r0, r4, 0\n\ + movs r1, 0x1\n\ + bl VarSet\n\ + b _080BFD10\n\ + .align 2, 0\n\ _080BFCF8: .4byte gStringVar1\n\ _080BFCFC: .4byte gOtherText_Mom\n\ _080BFD00:\n\ - ldr r0, _080BFD18 @ =gStringVar1\n\ - ldr r1, _080BFD1C @ =gOtherText_Dad\n\ - bl StringCopy\n\ - adds r0, r4, 0\n\ - movs r1, 0x2\n\ - bl VarSet\n\ + ldr r0, _080BFD18 @ =gStringVar1\n\ + ldr r1, _080BFD1C @ =gOtherText_Dad\n\ + bl StringCopy\n\ + adds r0, r4, 0\n\ + movs r1, 0x2\n\ + bl VarSet\n\ _080BFD10:\n\ - pop {r4}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ + pop {r4}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ _080BFD18: .4byte gStringVar1\n\ _080BFD1C: .4byte gOtherText_Dad\n\ .syntax divided\n"); @@ -1802,15 +2172,12 @@ void sub_80BFD20(void) RemoveFieldObjectByLocalIdAndMap(5, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup); } -extern u8 ewram[]; -#define gUnknown_02007000 (*(struct ewramStruct_0207000 *)(ewram + 0x7000)) -extern u8 gUnknown_020387E4; - -struct ewramStruct_0207000 { - struct SaveTVStruct tvshows[4]; -}; +typedef union ewramStruct_02007000 { + TVShow tvshows[4][25]; + struct UnknownSaveStruct2ABC unknown_2abc[4][16]; +} ewramStruct_02007000; -void sub_80BFE24(struct SaveTVStruct *arg0, struct SaveTVStruct *arg1, struct SaveTVStruct *arg2, struct SaveTVStruct *arg3); +void sub_80BFE24(TVShow arg0[25], TVShow arg1[25], TVShow arg2[25], TVShow arg3[25]); void sub_80C04A0(void); void sub_80C01D4(void); @@ -1819,44 +2186,45 @@ void sub_80C0408(void); void sub_80BFD44(u8 *arg0, u32 arg1, u8 arg2) { u8 i; - struct ewramStruct_0207000 *ewramTVShows; + ewramStruct_02007000 *ewramTVShows; for (i=0; i<4; i++) { - memcpy(&gUnknown_02007000.tvshows[i], &arg0[i * arg1], sizeof(struct SaveTVStruct)); + memcpy(&gUnknown_02007000.tvshows[i], &arg0[i * arg1], 25 * sizeof(TVShow)); } ewramTVShows = &gUnknown_02007000; switch (arg2) { case 0: - sub_80BFE24(&gSaveBlock1.tvShows, &ewramTVShows->tvshows[1], &ewramTVShows->tvshows[2], &ewramTVShows->tvshows[3]); + sub_80BFE24(gSaveBlock1.tvShows, ewramTVShows->tvshows[1], ewramTVShows->tvshows[2], ewramTVShows->tvshows[3]); break; case 1: - sub_80BFE24(&ewramTVShows->tvshows[0], &gSaveBlock1.tvShows, &ewramTVShows->tvshows[2], &ewramTVShows->tvshows[3]); + sub_80BFE24(ewramTVShows->tvshows[0], gSaveBlock1.tvShows, ewramTVShows->tvshows[2], ewramTVShows->tvshows[3]); break; case 2: - sub_80BFE24(&ewramTVShows->tvshows[0], &ewramTVShows->tvshows[1], &gSaveBlock1.tvShows, &ewramTVShows->tvshows[3]); + sub_80BFE24(ewramTVShows->tvshows[0], ewramTVShows->tvshows[1], gSaveBlock1.tvShows, ewramTVShows->tvshows[3]); break; case 3: - sub_80BFE24(&ewramTVShows->tvshows[0], &ewramTVShows->tvshows[1], &ewramTVShows->tvshows[2], &gSaveBlock1.tvShows); + sub_80BFE24(ewramTVShows->tvshows[0], ewramTVShows->tvshows[1], ewramTVShows->tvshows[2], gSaveBlock1.tvShows); break; } - sub_80BF588(gSaveBlock1.tvShows.shows); + sub_80BF588(gSaveBlock1.tvShows); sub_80C04A0(); - sub_80BF588(gSaveBlock1.tvShows.shows); + sub_80BF588(gSaveBlock1.tvShows); sub_80C01D4(); sub_80C0408(); } extern u8 gUnknown_03000720; +extern u8 gUnknown_03000721; extern s8 gUnknown_03000722; s8 sub_80C019C(TVShow tvShows[]); -bool8 sub_80BFF68(struct SaveTVStruct ** tv1, struct SaveTVStruct ** tv2, u8 idx); +bool8 sub_80BFF68(TVShow * tv1[25], TVShow * tv2[25], u8 idx); u8 sub_80C004C(TVShow *tv1, TVShow *tv2, u8 idx); u8 sub_80C00B4(TVShow *tv1, TVShow *tv2, u8 idx); u8 sub_80C0134(TVShow *tv1, TVShow *tv2, u8 idx); -void sub_80BFE24(struct SaveTVStruct *arg0, struct SaveTVStruct *arg1, struct SaveTVStruct *arg2, struct SaveTVStruct *arg3) +void sub_80BFE24(TVShow arg0[25], TVShow arg1[25], TVShow arg2[25], TVShow arg3[25]) { u8 i, j; - struct SaveTVStruct ** argslist[4]; + TVShow ** argslist[4]; argslist[0] = &arg0; argslist[1] = &arg1; argslist[2] = &arg2; @@ -1866,20 +2234,20 @@ void sub_80BFE24(struct SaveTVStruct *arg0, struct SaveTVStruct *arg1, struct Sa for (i=0; i<gUnknown_03000720; i++) { if (i == 0) gUnknown_020387E4 = i; - gUnknown_03000722 = sub_80C019C(argslist[i][0]->shows); + gUnknown_03000722 = sub_80C019C(argslist[i][0]); if (gUnknown_03000722 == -1) { gUnknown_020387E4++; if (gUnknown_020387E4 == gUnknown_03000720) return; } else { for (j=0; j<gUnknown_03000720-1; j++) { - gUnknown_03005D38.var0 = sub_80BF74C(argslist[(i + j + 1) % gUnknown_03000720][0]->shows); - if (gUnknown_03005D38.var0 != -1 && sub_80BFF68(argslist[(i + j + 1) % gUnknown_03000720], argslist[i], (i + j + 1) % gUnknown_03000720) == 1) { + gUnknown_03005D38.var0 = sub_80BF74C(argslist[(i + j + 1) % gUnknown_03000720][0]); + if (gUnknown_03005D38.var0 != -1 && sub_80BFF68(&argslist[(i + j + 1) % gUnknown_03000720][0], &argslist[i][0], (i + j + 1) % gUnknown_03000720) == 1) { break; } } if (j == gUnknown_03000720 - 1) { - sub_80BF55C(argslist[i][0]->shows, gUnknown_03000722); + sub_80BF55C(argslist[i][0], gUnknown_03000722); } } } @@ -1887,28 +2255,28 @@ void sub_80BFE24(struct SaveTVStruct *arg0, struct SaveTVStruct *arg1, struct Sa } #ifdef NONMATCHING -bool8 sub_80BFF68(struct SaveTVStruct ** arg1, struct SaveTVStruct ** arg2, u8 idx) { +bool8 sub_80BFF68(TVShow * arg1[25], TVShow * arg2[25], u8 idx) { u8 value; u8 switchval; - struct SaveTVStruct *tv1; - struct SaveTVStruct *tv2; + TVShow tv1[25]; + TVShow tv2[25]; tv1 = *arg1; tv2 = *arg2; value = FALSE; - switchval = sub_80BFB54(tv2->shows[gUnknown_03000722].common.var00); + switchval = sub_80BFB54(tv2[gUnknown_03000722].common.var00); switch (switchval) { case 2: - value = sub_80C004C(&tv1->shows[gUnknown_03005D38.var0], &tv2->shows[gUnknown_03000722], idx); + value = sub_80C004C(&tv1[gUnknown_03005D38.var0], &tv2[gUnknown_03000722], idx); break; case 3: - value = sub_80C00B4(&tv1->shows[gUnknown_03005D38.var0], &tv2->shows[gUnknown_03000722], idx); + value = sub_80C00B4(&tv1[gUnknown_03005D38.var0], &tv2[gUnknown_03000722], idx); break; case 4: - value = sub_80C0134(&tv1->shows[gUnknown_03005D38.var0], &tv2->shows[gUnknown_03000722], idx); + value = sub_80C0134(&tv1[gUnknown_03005D38.var0], &tv2[gUnknown_03000722], idx); break; } if (value == TRUE) { - sub_80BF55C(tv2->shows, gUnknown_03000722); + sub_80BF55C(tv2, gUnknown_03000722); return TRUE; } else { return FALSE; @@ -1916,121 +2284,121 @@ bool8 sub_80BFF68(struct SaveTVStruct ** arg1, struct SaveTVStruct ** arg2, u8 i } #else __attribute__((naked)) -bool8 sub_80BFF68(struct SaveTVStruct ** arg1, struct SaveTVStruct ** arg2, u8 idx) { +bool8 sub_80BFF68(TVShow * arg1[25], TVShow * arg2[25], u8 idx) { asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - sub sp, 0x4\n\ - lsls r2, 24\n\ - lsrs r7, r2, 24\n\ - ldr r4, [r0]\n\ - ldr r6, [r1]\n\ - movs r5, 0\n\ - ldr r2, _080BFFA4 @ =gUnknown_03000722\n\ - movs r1, 0\n\ - ldrsb r1, [r2, r1]\n\ - lsls r0, r1, 3\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - adds r0, r6 @ this is the only mimsmatch\n\ - ldrb r0, [r0]\n\ - str r2, [sp]\n\ - bl sub_80BFB54\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - adds r1, r0, 0\n\ - ldr r2, [sp]\n\ - cmp r0, 0x3\n\ - beq _080BFFD8\n\ - cmp r0, 0x3\n\ - bgt _080BFFA8\n\ - cmp r0, 0x2\n\ - beq _080BFFAE\n\ - b _080C0026\n\ - .align 2, 0\n\ + push {r4-r7,lr}\n\ + sub sp, 0x4\n\ + lsls r2, 24\n\ + lsrs r7, r2, 24\n\ + ldr r4, [r0]\n\ + ldr r6, [r1]\n\ + movs r5, 0\n\ + ldr r2, _080BFFA4 @ =gUnknown_03000722\n\ + movs r1, 0\n\ + ldrsb r1, [r2, r1]\n\ + lsls r0, r1, 3\n\ + adds r0, r1\n\ + lsls r0, 2\n\ + adds r0, r6 @ this is the only mimsmatch\n\ + ldrb r0, [r0]\n\ + str r2, [sp]\n\ + bl sub_80BFB54\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + adds r1, r0, 0\n\ + ldr r2, [sp]\n\ + cmp r0, 0x3\n\ + beq _080BFFD8\n\ + cmp r0, 0x3\n\ + bgt _080BFFA8\n\ + cmp r0, 0x2\n\ + beq _080BFFAE\n\ + b _080C0026\n\ + .align 2, 0\n\ _080BFFA4: .4byte gUnknown_03000722\n\ _080BFFA8:\n\ - cmp r1, 0x4\n\ - beq _080C0000\n\ - b _080C0026\n\ + cmp r1, 0x4\n\ + beq _080C0000\n\ + b _080C0026\n\ _080BFFAE:\n\ - ldr r0, _080BFFD4 @ =gUnknown_03005D38\n\ - movs r1, 0\n\ - ldrsb r1, [r0, r1]\n\ - lsls r0, r1, 3\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - adds r0, r4, r0\n\ - ldrb r2, [r2]\n\ - lsls r2, 24\n\ - asrs r2, 24\n\ - lsls r1, r2, 3\n\ - adds r1, r2\n\ - lsls r1, 2\n\ - adds r1, r6, r1\n\ - adds r2, r7, 0\n\ - bl sub_80C004C\n\ - b _080C0022\n\ - .align 2, 0\n\ + ldr r0, _080BFFD4 @ =gUnknown_03005D38\n\ + movs r1, 0\n\ + ldrsb r1, [r0, r1]\n\ + lsls r0, r1, 3\n\ + adds r0, r1\n\ + lsls r0, 2\n\ + adds r0, r4, r0\n\ + ldrb r2, [r2]\n\ + lsls r2, 24\n\ + asrs r2, 24\n\ + lsls r1, r2, 3\n\ + adds r1, r2\n\ + lsls r1, 2\n\ + adds r1, r6, r1\n\ + adds r2, r7, 0\n\ + bl sub_80C004C\n\ + b _080C0022\n\ + .align 2, 0\n\ _080BFFD4: .4byte gUnknown_03005D38\n\ _080BFFD8:\n\ - ldr r0, _080BFFFC @ =gUnknown_03005D38\n\ - movs r1, 0\n\ - ldrsb r1, [r0, r1]\n\ - lsls r0, r1, 3\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - adds r0, r4, r0\n\ - ldrb r2, [r2]\n\ - lsls r2, 24\n\ - asrs r2, 24\n\ - lsls r1, r2, 3\n\ - adds r1, r2\n\ - lsls r1, 2\n\ - adds r1, r6, r1\n\ - adds r2, r7, 0\n\ - bl sub_80C00B4\n\ - b _080C0022\n\ - .align 2, 0\n\ + ldr r0, _080BFFFC @ =gUnknown_03005D38\n\ + movs r1, 0\n\ + ldrsb r1, [r0, r1]\n\ + lsls r0, r1, 3\n\ + adds r0, r1\n\ + lsls r0, 2\n\ + adds r0, r4, r0\n\ + ldrb r2, [r2]\n\ + lsls r2, 24\n\ + asrs r2, 24\n\ + lsls r1, r2, 3\n\ + adds r1, r2\n\ + lsls r1, 2\n\ + adds r1, r6, r1\n\ + adds r2, r7, 0\n\ + bl sub_80C00B4\n\ + b _080C0022\n\ + .align 2, 0\n\ _080BFFFC: .4byte gUnknown_03005D38\n\ _080C0000:\n\ - ldr r0, _080C0030 @ =gUnknown_03005D38\n\ - movs r1, 0\n\ - ldrsb r1, [r0, r1]\n\ - lsls r0, r1, 3\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - adds r0, r4, r0\n\ - ldrb r2, [r2]\n\ - lsls r2, 24\n\ - asrs r2, 24\n\ - lsls r1, r2, 3\n\ - adds r1, r2\n\ - lsls r1, 2\n\ - adds r1, r6, r1\n\ - adds r2, r7, 0\n\ - bl sub_80C0134\n\ + ldr r0, _080C0030 @ =gUnknown_03005D38\n\ + movs r1, 0\n\ + ldrsb r1, [r0, r1]\n\ + lsls r0, r1, 3\n\ + adds r0, r1\n\ + lsls r0, 2\n\ + adds r0, r4, r0\n\ + ldrb r2, [r2]\n\ + lsls r2, 24\n\ + asrs r2, 24\n\ + lsls r1, r2, 3\n\ + adds r1, r2\n\ + lsls r1, 2\n\ + adds r1, r6, r1\n\ + adds r2, r7, 0\n\ + bl sub_80C0134\n\ _080C0022:\n\ - lsls r0, 24\n\ - lsrs r5, r0, 24\n\ + lsls r0, 24\n\ + lsrs r5, r0, 24\n\ _080C0026:\n\ - cmp r5, 0x1\n\ - beq _080C0034\n\ - movs r0, 0\n\ - b _080C0040\n\ - .align 2, 0\n\ + cmp r5, 0x1\n\ + beq _080C0034\n\ + movs r0, 0\n\ + b _080C0040\n\ + .align 2, 0\n\ _080C0030: .4byte gUnknown_03005D38\n\ _080C0034:\n\ - ldr r0, _080C0048 @ =gUnknown_03000722\n\ - ldrb r1, [r0]\n\ - adds r0, r6, 0\n\ - bl sub_80BF55C\n\ - movs r0, 0x1\n\ + ldr r0, _080C0048 @ =gUnknown_03000722\n\ + ldrb r1, [r0]\n\ + adds r0, r6, 0\n\ + bl sub_80BF55C\n\ + movs r0, 0x1\n\ _080C0040:\n\ - add sp, 0x4\n\ - pop {r4-r7}\n\ - pop {r1}\n\ - bx r1\n\ - .align 2, 0\n\ + add sp, 0x4\n\ + pop {r4-r7}\n\ + pop {r1}\n\ + bx r1\n\ + .align 2, 0\n\ _080C0048: .4byte gUnknown_03000722\n\ .syntax divided\n"); } @@ -2092,58 +2460,55 @@ s8 sub_80C019C(TVShow tvShows[]) { return -1; } -void sub_80C03A8(u8 showidx); -void sub_80C03C8(u16 species, u8 showidx); - #ifdef NONMATCHING -void sub_80C01D4(void) { - u8 i; - for (i=0; i<24; i++) { - switch (gSaveBlock1.tvShows.shows[i].common.var00) { - case 0: - break; - case TVSHOW_FAN_CLUB_LETTER: - sub_80C03C8(gSaveBlock1.tvShows.shows[i].fanclubLetter.species, i); - break; - case TVSHOW_RECENT_HAPPENINGS: - break; - case TVSHOW_PKMN_FAN_CLUB_OPINIONS: - sub_80C03C8(gSaveBlock1.tvShows.shows[i].fanclubOpinions.var02, i); - break; - case TVSHOW_UNKN_SHOWTYPE_04: - sub_80C03C8(gSaveBlock1.tvShows.shows[i].worldOfMasters.var06, i); - break; - case TVSHOW_NAME_RATER_SHOW: - sub_80C03C8(gSaveBlock1.tvShows.shows[i].nameRaterShow.species, i); - sub_80C03C8(gSaveBlock1.tvShows.shows[i].nameRaterShow.var1C, i); - break; - case TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE: - sub_80C03C8(gSaveBlock1.tvShows.shows[i].bravoTrainer.species, i); - break; - case TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE: - sub_80C03C8(gSaveBlock1.tvShows.shows[i].bravoTrainerTower.var0a, i); - sub_80C03C8(gSaveBlock1.tvShows.shows[i].bravoTrainerTower.var14, i); - break; - case TVSHOW_POKEMON_TODAY_CAUGHT: - sub_80C03C8(gSaveBlock1.tvShows.shows[i].pokemonToday.species, i); - break; - case TVSHOW_SMART_SHOPPER: - break; - case TVSHOW_POKEMON_TODAY_FAILED: - sub_80C03C8(gSaveBlock1.tvShows.shows[i].pokemonTodayFailed.species, i); - sub_80C03C8(gSaveBlock1.tvShows.shows[i].pokemonTodayFailed.species2, i); - break; - case TVSHOW_FISHING_ADVICE: - sub_80C03C8(gSaveBlock1.tvShows.shows[i].pokemonAngler.var04, i); - break; - case TVSHOW_WORLD_OF_MASTERS: - sub_80C03C8(gSaveBlock1.tvShows.shows[i].worldOfMasters.var08, i); - sub_80C03C8(gSaveBlock1.tvShows.shows[i].worldOfMasters.var04, i); - break; - case TVSHOW_MASS_OUTBREAK: - break; - default: - sub_80C03A8(i); +void sub_80C01D4(void) +{ + u16 i; + for (i=0; i<24; i++) + { + switch (gSaveBlock1.tvShows[i].common.var00) + { + case 0: + case TVSHOW_RECENT_HAPPENINGS: + case TVSHOW_SMART_SHOPPER: + case TVSHOW_MASS_OUTBREAK: + break; + case TVSHOW_FAN_CLUB_LETTER: + sub_80C03C8((&gSaveBlock1.tvShows[i])->fanclubLetter.species, i); + break; + case TVSHOW_PKMN_FAN_CLUB_OPINIONS: + sub_80C03C8((&gSaveBlock1.tvShows[i])->fanclubOpinions.var02, i); + break; + case TVSHOW_UNKN_SHOWTYPE_04: + sub_80C03C8((&gSaveBlock1.tvShows[i])->unkShow04.var06, i); + break; + case TVSHOW_NAME_RATER_SHOW: + sub_80C03C8((&gSaveBlock1.tvShows[i])->nameRaterShow.species, i); + sub_80C03C8((&gSaveBlock1.tvShows[i])->nameRaterShow.var1C, i); + break; + case TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE: + sub_80C03C8((&gSaveBlock1.tvShows[i])->bravoTrainer.species, i); + break; + case TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE: + sub_80C03C8((&gSaveBlock1.tvShows[i])->bravoTrainerTower.species, i); + sub_80C03C8((&gSaveBlock1.tvShows[i])->bravoTrainerTower.defeatedSpecies, i); + break; + case TVSHOW_POKEMON_TODAY_CAUGHT: + sub_80C03C8((&gSaveBlock1.tvShows[i])->pokemonToday.species, i); + break; + case TVSHOW_POKEMON_TODAY_FAILED: + sub_80C03C8((&gSaveBlock1.tvShows[i])->pokemonTodayFailed.species, i); + sub_80C03C8((&gSaveBlock1.tvShows[i])->pokemonTodayFailed.species2, i); + break; + case TVSHOW_FISHING_ADVICE: + sub_80C03C8((&gSaveBlock1.tvShows[i])->pokemonAngler.var04, i); + break; + case TVSHOW_WORLD_OF_MASTERS: + sub_80C03C8((&gSaveBlock1.tvShows[i])->worldOfMasters.var08, i); + sub_80C03C8((&gSaveBlock1.tvShows[i])->worldOfMasters.var04, i); + break; + default: + sub_80C03A8(i); } } } @@ -2151,217 +2516,217 @@ void sub_80C01D4(void) { __attribute__((naked)) void sub_80C01D4(void) { asm(".syntax unified\n\ - push {r4-r6,lr}\n\ - movs r6, 0\n\ + push {r4-r6,lr}\n\ + movs r6, 0\n\ _080C01D8:\n\ - ldr r0, _080C01F8 @ =gSaveBlock1\n\ - lsls r2, r6, 3\n\ - adds r1, r2, r6\n\ - lsls r1, 2\n\ - adds r1, r0\n\ - ldr r0, _080C01FC @ =0x00002738\n\ - adds r1, r0\n\ - ldrb r0, [r1]\n\ - cmp r0, 0x29\n\ - bls _080C01EE\n\ - b _default\n\ + ldr r0, _080C01F8 @ =gSaveBlock1\n\ + lsls r2, r6, 3\n\ + adds r1, r2, r6\n\ + lsls r1, 2\n\ + adds r1, r0\n\ + ldr r0, _080C01FC @ =0x00002738\n\ + adds r1, r0\n\ + ldrb r0, [r1]\n\ + cmp r0, 0x29\n\ + bls _080C01EE\n\ + b _default\n\ _080C01EE:\n\ - lsls r0, 2\n\ - ldr r1, _080C0200 @ =_080C0204\n\ - adds r0, r1\n\ - ldr r0, [r0]\n\ - mov pc, r0\n\ - .align 2, 0\n\ + lsls r0, 2\n\ + ldr r1, _080C0200 @ =_080C0204\n\ + adds r0, r1\n\ + ldr r0, [r0]\n\ + mov pc, r0\n\ + .align 2, 0\n\ _080C01F8: .4byte gSaveBlock1\n\ _080C01FC: .4byte 0x00002738\n\ _080C0200: .4byte _080C0204\n\ - .align 2, 0\n\ + .align 2, 0\n\ _080C0204:\n\ - .4byte _break\n\ - .4byte _fanclubLetter @ TVSHOW_FAN_CLUB_LETTER\n\ - .4byte _break @ TVSHOW_RECENT_HAPPENINGS\n\ - .4byte _fanclubOpinions @ TVSHOW_PKMN_FAN_CLUB_OPINIONS\n\ - .4byte _showtype4 @ TVSHOW_UNKN_SHOWTYPE_04\n\ - .4byte _nameRater @ TVSHOW_NAME_RATER_SHOW\n\ - .4byte _bravoTrainerContest @ TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE\n\ - .4byte _bravoTrainerTower @ TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE\n\ - .4byte _default\n\ - .4byte _default\n\ - .4byte _default\n\ - .4byte _default\n\ - .4byte _default\n\ - .4byte _default\n\ - .4byte _default\n\ - .4byte _default\n\ - .4byte _default\n\ - .4byte _default\n\ - .4byte _default\n\ - .4byte _default\n\ - .4byte _default\n\ - .4byte _pokemonTodayS @ TVSHOW_POKEMON_TODAY_CAUGHT\n\ - .4byte _break @ TVSHOW_SMART_SHOPPER\n\ - .4byte _pokemonTodayF @ TVSHOW_POKEMON_TODAY_FAILED\n\ - .4byte _fishing @ TVSHOW_FISHING_ADVICE\n\ - .4byte _worldOfMasters @ TVSHOW_WORLD_OF_MASTERS\n\ - .4byte _default\n\ - .4byte _default\n\ - .4byte _default\n\ - .4byte _default\n\ - .4byte _default\n\ - .4byte _default\n\ - .4byte _default\n\ - .4byte _default\n\ - .4byte _default\n\ - .4byte _default\n\ - .4byte _default\n\ - .4byte _default\n\ - .4byte _default\n\ - .4byte _default\n\ - .4byte _default\n\ - .4byte _break @ TVSHOW_MASS_OUTBREAK\n\ + .4byte _break\n\ + .4byte _fanclubLetter @ TVSHOW_FAN_CLUB_LETTER\n\ + .4byte _break @ TVSHOW_RECENT_HAPPENINGS\n\ + .4byte _fanclubOpinions @ TVSHOW_PKMN_FAN_CLUB_OPINIONS\n\ + .4byte _showtype4 @ TVSHOW_UNKN_SHOWTYPE_04\n\ + .4byte _nameRater @ TVSHOW_NAME_RATER_SHOW\n\ + .4byte _bravoTrainerContest @ TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE\n\ + .4byte _bravoTrainerTower @ TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE\n\ + .4byte _default\n\ + .4byte _default\n\ + .4byte _default\n\ + .4byte _default\n\ + .4byte _default\n\ + .4byte _default\n\ + .4byte _default\n\ + .4byte _default\n\ + .4byte _default\n\ + .4byte _default\n\ + .4byte _default\n\ + .4byte _default\n\ + .4byte _default\n\ + .4byte _pokemonTodayS @ TVSHOW_POKEMON_TODAY_CAUGHT\n\ + .4byte _break @ TVSHOW_SMART_SHOPPER\n\ + .4byte _pokemonTodayF @ TVSHOW_POKEMON_TODAY_FAILED\n\ + .4byte _fishing @ TVSHOW_FISHING_ADVICE\n\ + .4byte _worldOfMasters @ TVSHOW_WORLD_OF_MASTERS\n\ + .4byte _default\n\ + .4byte _default\n\ + .4byte _default\n\ + .4byte _default\n\ + .4byte _default\n\ + .4byte _default\n\ + .4byte _default\n\ + .4byte _default\n\ + .4byte _default\n\ + .4byte _default\n\ + .4byte _default\n\ + .4byte _default\n\ + .4byte _default\n\ + .4byte _default\n\ + .4byte _default\n\ + .4byte _break @ TVSHOW_MASS_OUTBREAK\n\ _fanclubLetter:\n\ - adds r0, r2, r6\n\ - lsls r0, 2\n\ - ldr r1, _080C02B8 @ =gSaveBlock1 + 0x2738\n\ - adds r0, r1\n\ - ldrh r0, [r0, 0x2]\n\ - b _checkSpecies1 @ sub_80C03C8(r0, i)\n\ - .align 2, 0\n\ + adds r0, r2, r6\n\ + lsls r0, 2\n\ + ldr r1, _080C02B8 @ =gSaveBlock1 + 0x2738\n\ + adds r0, r1\n\ + ldrh r0, [r0, 0x2]\n\ + b _checkSpecies1 @ sub_80C03C8(r0, i)\n\ + .align 2, 0\n\ _080C02B8: .4byte gSaveBlock1 + 0x2738\n\ _fanclubOpinions:\n\ - adds r0, r2, r6\n\ - lsls r0, 2\n\ - ldr r1, _080C02C8 @ =gSaveBlock1 + 0x2738\n\ - adds r0, r1\n\ - ldrh r0, [r0, 0x2]\n\ - b _checkSpecies1 @ sub_80C03C8(r0, i)\n\ - .align 2, 0\n\ + adds r0, r2, r6\n\ + lsls r0, 2\n\ + ldr r1, _080C02C8 @ =gSaveBlock1 + 0x2738\n\ + adds r0, r1\n\ + ldrh r0, [r0, 0x2]\n\ + b _checkSpecies1 @ sub_80C03C8(r0, i)\n\ + .align 2, 0\n\ _080C02C8: .4byte gSaveBlock1 + 0x2738\n\ _showtype4:\n\ - adds r0, r2, r6\n\ - lsls r0, 2\n\ - ldr r1, _080C02D8 @ =gSaveBlock1 + 0x2738\n\ - adds r0, r1\n\ - ldrh r0, [r0, 0x6]\n\ - b _checkSpecies1 @ sub_80C03C8(r0, i)\n\ - .align 2, 0\n\ + adds r0, r2, r6\n\ + lsls r0, 2\n\ + ldr r1, _080C02D8 @ =gSaveBlock1 + 0x2738\n\ + adds r0, r1\n\ + ldrh r0, [r0, 0x6]\n\ + b _checkSpecies1 @ sub_80C03C8(r0, i)\n\ + .align 2, 0\n\ _080C02D8: .4byte gSaveBlock1 + 0x2738\n\ _nameRater:\n\ - adds r4, r2, r6\n\ - lsls r4, 2\n\ - ldr r0, _080C02F4 @ =gSaveBlock1 + 0x2738\n\ - adds r4, r0\n\ - ldrh r0, [r4, 0x2]\n\ - lsls r5, r6, 24\n\ - lsrs r5, 24\n\ - adds r1, r5, 0\n\ - bl sub_80C03C8\n\ - ldrh r0, [r4, 0x1C]\n\ - b _checkSpecies2 @ sub_80C03C8(r0, i)\n\ - .align 2, 0\n\ + adds r4, r2, r6\n\ + lsls r4, 2\n\ + ldr r0, _080C02F4 @ =gSaveBlock1 + 0x2738\n\ + adds r4, r0\n\ + ldrh r0, [r4, 0x2]\n\ + lsls r5, r6, 24\n\ + lsrs r5, 24\n\ + adds r1, r5, 0\n\ + bl sub_80C03C8\n\ + ldrh r0, [r4, 0x1C]\n\ + b _checkSpecies2 @ sub_80C03C8(r0, i)\n\ + .align 2, 0\n\ _080C02F4: .4byte gSaveBlock1 + 0x2738\n\ _bravoTrainerContest:\n\ - adds r0, r2, r6\n\ - lsls r0, 2\n\ - ldr r1, _080C0304 @ =gSaveBlock1 + 0x2738\n\ - adds r0, r1\n\ - ldrh r0, [r0, 0x2]\n\ - b _checkSpecies1 @ sub_80C03C8(r0, i)\n\ - .align 2, 0\n\ + adds r0, r2, r6\n\ + lsls r0, 2\n\ + ldr r1, _080C0304 @ =gSaveBlock1 + 0x2738\n\ + adds r0, r1\n\ + ldrh r0, [r0, 0x2]\n\ + b _checkSpecies1 @ sub_80C03C8(r0, i)\n\ + .align 2, 0\n\ _080C0304: .4byte gSaveBlock1 + 0x2738\n\ _bravoTrainerTower:\n\ - adds r4, r2, r6\n\ - lsls r4, 2\n\ - ldr r0, _080C0320 @ =gSaveBlock1 + 0x2738\n\ - adds r4, r0\n\ - ldrh r0, [r4, 0xA]\n\ - lsls r5, r6, 24\n\ - lsrs r5, 24\n\ - adds r1, r5, 0\n\ - bl sub_80C03C8\n\ - ldrh r0, [r4, 0x14]\n\ - b _checkSpecies2 @ sub_80C03C8(r0, i)\n\ - .align 2, 0\n\ + adds r4, r2, r6\n\ + lsls r4, 2\n\ + ldr r0, _080C0320 @ =gSaveBlock1 + 0x2738\n\ + adds r4, r0\n\ + ldrh r0, [r4, 0xA]\n\ + lsls r5, r6, 24\n\ + lsrs r5, 24\n\ + adds r1, r5, 0\n\ + bl sub_80C03C8\n\ + ldrh r0, [r4, 0x14]\n\ + b _checkSpecies2 @ sub_80C03C8(r0, i)\n\ + .align 2, 0\n\ _080C0320: .4byte gSaveBlock1 + 0x2738\n\ _pokemonTodayS:\n\ - adds r0, r2, r6\n\ - lsls r0, 2\n\ - ldr r1, _080C0330 @ =gSaveBlock1 + 0x2738\n\ - adds r0, r1\n\ - ldrh r0, [r0, 0x10]\n\ - b _checkSpecies1 @ sub_80C03C8(r0, i)\n\ - .align 2, 0\n\ + adds r0, r2, r6\n\ + lsls r0, 2\n\ + ldr r1, _080C0330 @ =gSaveBlock1 + 0x2738\n\ + adds r0, r1\n\ + ldrh r0, [r0, 0x10]\n\ + b _checkSpecies1 @ sub_80C03C8(r0, i)\n\ + .align 2, 0\n\ _080C0330: .4byte gSaveBlock1 + 0x2738\n\ _pokemonTodayF:\n\ - adds r4, r2, r6\n\ - lsls r4, 2\n\ - ldr r0, _080C034C @ =gSaveBlock1 + 0x2738\n\ - adds r4, r0\n\ - ldrh r0, [r4, 0xC]\n\ - lsls r5, r6, 24\n\ - lsrs r5, 24\n\ - adds r1, r5, 0\n\ - bl sub_80C03C8\n\ - ldrh r0, [r4, 0xE]\n\ - b _checkSpecies2 @ sub_80C03C8(r0, i)\n\ - .align 2, 0\n\ + adds r4, r2, r6\n\ + lsls r4, 2\n\ + ldr r0, _080C034C @ =gSaveBlock1 + 0x2738\n\ + adds r4, r0\n\ + ldrh r0, [r4, 0xC]\n\ + lsls r5, r6, 24\n\ + lsrs r5, 24\n\ + adds r1, r5, 0\n\ + bl sub_80C03C8\n\ + ldrh r0, [r4, 0xE]\n\ + b _checkSpecies2 @ sub_80C03C8(r0, i)\n\ + .align 2, 0\n\ _080C034C: .4byte gSaveBlock1 + 0x2738\n\ _fishing:\n\ - adds r0, r2, r6\n\ - lsls r0, 2\n\ - ldr r1, _080C0364 @ =gSaveBlock1 + 0x2738\n\ - adds r0, r1\n\ - ldrh r0, [r0, 0x4]\n\ + adds r0, r2, r6\n\ + lsls r0, 2\n\ + ldr r1, _080C0364 @ =gSaveBlock1 + 0x2738\n\ + adds r0, r1\n\ + ldrh r0, [r0, 0x4]\n\ _checkSpecies1:\n\ - lsls r1, r6, 24\n\ - lsrs r1, 24\n\ - bl sub_80C03C8\n\ - b _break\n\ - .align 2, 0\n\ + lsls r1, r6, 24\n\ + lsrs r1, 24\n\ + bl sub_80C03C8\n\ + b _break\n\ + .align 2, 0\n\ _080C0364: .4byte gSaveBlock1 + 0x2738\n\ _worldOfMasters:\n\ - adds r4, r2, r6\n\ - lsls r4, 2\n\ - ldr r0, _080C0388 @ =gSaveBlock1 + 0x2738\n\ - adds r4, r0\n\ - ldrh r0, [r4, 0x8]\n\ - lsls r5, r6, 24\n\ - lsrs r5, 24\n\ - adds r1, r5, 0\n\ - bl sub_80C03C8\n\ - ldrh r0, [r4, 0x4]\n\ + adds r4, r2, r6\n\ + lsls r4, 2\n\ + ldr r0, _080C0388 @ =gSaveBlock1 + 0x2738\n\ + adds r4, r0\n\ + ldrh r0, [r4, 0x8]\n\ + lsls r5, r6, 24\n\ + lsrs r5, 24\n\ + adds r1, r5, 0\n\ + bl sub_80C03C8\n\ + ldrh r0, [r4, 0x4]\n\ _checkSpecies2:\n\ - adds r1, r5, 0\n\ - bl sub_80C03C8\n\ - b _break\n\ - .align 2, 0\n\ + adds r1, r5, 0\n\ + bl sub_80C03C8\n\ + b _break\n\ + .align 2, 0\n\ _080C0388: .4byte gSaveBlock1 + 0x2738\n\ _default:\n\ - lsls r0, r6, 24\n\ - lsrs r0, 24\n\ - bl sub_80C03A8\n\ + lsls r0, r6, 24\n\ + lsrs r0, 24\n\ + bl sub_80C03A8\n\ _break:\n\ - adds r0, r6, 0x1\n\ - lsls r0, 16\n\ - lsrs r6, r0, 16\n\ - cmp r6, 0x17\n\ - bhi _080C03A0\n\ - b _080C01D8\n\ + adds r0, r6, 0x1\n\ + lsls r0, 16\n\ + lsrs r6, r0, 16\n\ + cmp r6, 0x17\n\ + bhi _080C03A0\n\ + b _080C01D8\n\ _080C03A0:\n\ - pop {r4-r6}\n\ - pop {r0}\n\ - bx r0\n\ + pop {r4-r6}\n\ + pop {r0}\n\ + bx r0\n\ .syntax divided\n"); } #endif void sub_80C03A8(u8 showidx) { - gSaveBlock1.tvShows.shows[showidx].common.var01 = 0; + gSaveBlock1.tvShows[showidx].common.var01 = 0; } void sub_80C03C8(u16 species, u8 showidx) { - if (sub_8090D90(SpeciesToNationalPokedexNum(species), 0) == 0) { - gSaveBlock1.tvShows.shows[showidx].common.var01 = 0; + if (GetNationalPokedexFlag(SpeciesToNationalPokedexNum(species), 0) == 0) { + gSaveBlock1.tvShows[showidx].common.var01 = 0; } } @@ -2370,8 +2735,8 @@ void sub_80C0408(void) { u16 i; if (FlagGet(SYS_GAME_CLEAR) != 1) { for (i=0; i<24; i++) { - if (gSaveBlock1.tvShows.shows[i].common.var00 == TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE || gSaveBlock1.tvShows.shows[i].common.var00 == TVSHOW_MASS_OUTBREAK) { - gSaveBlock1.tvShows.shows[i].common.var01 = 0; + if (gSaveBlock1.tvShows[i].common.var00 == TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE || gSaveBlock1.tvShows[i].common.var00 == TVSHOW_MASS_OUTBREAK) { + gSaveBlock1.tvShows[i].common.var01 = 0; } } } @@ -2380,43 +2745,43 @@ void sub_80C0408(void) { __attribute__((naked)) void sub_80C0408(void) { asm(".syntax unified\n\ - push {r4-r6,lr}\n\ - ldr r0, _080C044C @ =0x00000804\n\ - bl FlagGet\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0x1\n\ - beq _080C0444\n\ - movs r2, 0\n\ - ldr r6, _080C0450 @ =gSaveBlock1\n\ - ldr r4, _080C0454 @ =0x00002739\n\ - movs r3, 0\n\ - ldr r5, _080C0458 @ =0x00002738\n\ + push {r4-r6,lr}\n\ + ldr r0, _080C044C @ =0x00000804\n\ + bl FlagGet\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + cmp r0, 0x1\n\ + beq _080C0444\n\ + movs r2, 0\n\ + ldr r6, _080C0450 @ =gSaveBlock1\n\ + ldr r4, _080C0454 @ =0x00002739\n\ + movs r3, 0\n\ + ldr r5, _080C0458 @ =0x00002738\n\ _080C0422:\n\ - lsls r0, r2, 3\n\ - adds r0, r2\n\ - lsls r0, 2\n\ - adds r1, r0, r6\n\ - adds r0, r1, r5\n\ - ldrb r0, [r0]\n\ - cmp r0, 0x7\n\ - beq _080C0436\n\ - cmp r0, 0x29\n\ - bne _080C043A\n\ + lsls r0, r2, 3\n\ + adds r0, r2\n\ + lsls r0, 2\n\ + adds r1, r0, r6\n\ + adds r0, r1, r5\n\ + ldrb r0, [r0]\n\ + cmp r0, 0x7\n\ + beq _080C0436\n\ + cmp r0, 0x29\n\ + bne _080C043A\n\ _080C0436:\n\ - adds r0, r1, r4\n\ - strb r3, [r0]\n\ + adds r0, r1, r4\n\ + strb r3, [r0]\n\ _080C043A:\n\ - adds r0, r2, 0x1\n\ - lsls r0, 16\n\ - lsrs r2, r0, 16\n\ - cmp r2, 0x17\n\ - bls _080C0422\n\ + adds r0, r2, 0x1\n\ + lsls r0, 16\n\ + lsrs r2, r0, 16\n\ + cmp r2, 0x17\n\ + bls _080C0422\n\ _080C0444:\n\ - pop {r4-r6}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ + pop {r4-r6}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ _080C044C: .4byte 0x00000804\n\ _080C0450: .4byte gSaveBlock1\n\ _080C0454: .4byte 0x00002739\n\ @@ -2428,35 +2793,100 @@ _080C0458: .4byte 0x00002738\n\ void sub_80C045C(void) { u8 i; for (i=0; i<5; i++) { - if (sub_80BFB54(gSaveBlock1.tvShows.shows[i].common.var00) == 2) { - gSaveBlock1.tvShows.shows[i].common.var01 = 0; + if (sub_80BFB54(gSaveBlock1.tvShows[i].common.var00) == 2) { + gSaveBlock1.tvShows[i].common.var01 = 0; + } + } +} + +void sub_80C04A0(void) +{ + s8 showIdx; + s8 count; + count = 0; + for (showIdx=5; showIdx<24; showIdx++) + { + if (gSaveBlock1.tvShows[showIdx].common.var00 == 0) + { + count ++; } } + for (showIdx=0; showIdx<5-count; showIdx++) + { + sub_80BF55C(gSaveBlock1.tvShows, showIdx+5); + } } -asm(".section .dotvshow\n"); +void sub_80C05C4(struct UnknownSaveStruct2ABC[16], struct UnknownSaveStruct2ABC[16], struct UnknownSaveStruct2ABC[16], struct UnknownSaveStruct2ABC[16]); +void sub_80C0750(void); +void sub_80C0788(void); +s8 sub_80C0730(struct UnknownSaveStruct2ABC[16], u8); +void sub_80C06BC(struct UnknownSaveStruct2ABC *[16], struct UnknownSaveStruct2ABC *[16]); -void DoTVShowPokemonFanClubLetter(void); -void DoTVShowRecentHappenings(void); -void DoTVShowPokemonFanClubOpinions(void); -void nullsub_22(void); -void DoTVShowPokemonNewsMassOutbreak(void); -void DoTVShowBravoTrainerPokemonProfile(void); -void DoTVShowBravoTrainerBattleTowerProfile(void); -void DoTVShowPokemonTodaySuccessfulCapture(void); -void DoTVShowTodaysSmartShopper(void); -void DoTVShowTheNameRaterShow(void); -void DoTVShowPokemonTodayFailedCapture(void); -void DoTVShowPokemonAngler(void); -void DoTVShowTheWorldOfMasters(void); +void sub_80C0514(void *a0, u32 a1, u8 a2) +{ + ewramStruct_02007000 *struct02007000; + u8 i; + for (i=0; i<4; i++) + { + memcpy(gUnknown_02007000.unknown_2abc[i], a0 + i * a1, 64); + } + struct02007000 = &gUnknown_02007000; + switch (a2) + { + case 0: + sub_80C05C4(gSaveBlock1.unknown_2ABC, struct02007000->unknown_2abc[1], struct02007000->unknown_2abc[2], struct02007000->unknown_2abc[3]); + break; + case 1: + sub_80C05C4(struct02007000->unknown_2abc[0], gSaveBlock1.unknown_2ABC, struct02007000->unknown_2abc[2], struct02007000->unknown_2abc[3]); + break; + case 2: + sub_80C05C4(struct02007000->unknown_2abc[0], struct02007000->unknown_2abc[1], gSaveBlock1.unknown_2ABC, struct02007000->unknown_2abc[3]); + break; + case 3: + sub_80C05C4(struct02007000->unknown_2abc[0], struct02007000->unknown_2abc[1], struct02007000->unknown_2abc[2], gSaveBlock1.unknown_2ABC); + break; + } + sub_80C0750(); + sub_80C0788(); +} -bool8 sub_80C06E8(struct UnknownSaveStruct2ABC *arg0, struct UnknownSaveStruct2ABC *arg1, s8 arg2); +void sub_80C05C4(struct UnknownSaveStruct2ABC a0[16], struct UnknownSaveStruct2ABC a1[16], struct UnknownSaveStruct2ABC a2[16], struct UnknownSaveStruct2ABC a3[16]) +{ + u8 i; + u8 j; + u8 k; + struct UnknownSaveStruct2ABC ** arglist[4]; + arglist[0] = &a0; + arglist[1] = &a1; + arglist[2] = &a2; + arglist[3] = &a3; + gUnknown_03000721 = GetLinkPlayerCount(); + for (i=0; i<16; i++) + { + for (j=0; j<gUnknown_03000721; j++) + { + gUnknown_03000722 = sub_80C0730(*arglist[j], i); + if (gUnknown_03000722 != -1) + { + for (k=0; k<gUnknown_03000721-1; k++) + { + gUnknown_03005D38.var0 = sub_80BEBC8(*arglist[(j + k + 1) % gUnknown_03000721]); + if (gUnknown_03005D38.var0 != -1) + { + sub_80C06BC(arglist[(j + k + 1) % gUnknown_03000721], arglist[j]); + } + } + } + } + } +} -void sub_80C06BC(int *arg0, int *arg1) { +void sub_80C06BC(struct UnknownSaveStruct2ABC *arg0[16], struct UnknownSaveStruct2ABC *arg1[16]) { struct UnknownSaveStruct2ABC *str0; struct UnknownSaveStruct2ABC *str1; - str0 = (void *)arg0[0]; - str1 = (void *)arg1[0]; + str0 = arg0[0]; + str1 = arg1[0]; str1 += gUnknown_03000722; sub_80C06E8(str0, str1, gUnknown_03005D38.var0); } @@ -2504,8 +2934,8 @@ void sub_80C0788(void) { } void DoTVShow(void) { - if (gSaveBlock1.tvShows.shows[gSpecialVar_0x8004].common.var01 != 0) { - switch (gSaveBlock1.tvShows.shows[gSpecialVar_0x8004].common.var00) { + if (gSaveBlock1.tvShows[gSpecialVar_0x8004].common.var01 != 0) { + switch (gSaveBlock1.tvShows[gSpecialVar_0x8004].common.var00) { case TVSHOW_FAN_CLUB_LETTER: DoTVShowPokemonFanClubLetter(); break; @@ -2556,16 +2986,313 @@ void TVShowConvertInternationalString(u8 *dest, u8 *src, u8 language) { } } -asm(".section .text_c"); +void DoTVShowBravoTrainerPokemonProfile(void) +{ + TVShow *tvShow; + u8 switchval; -void TVShowConvertInternationalString(u8 *, u8 *, u8); + tvShow = &gSaveBlock1.tvShows[gSpecialVar_0x8004]; + gScriptResult = 0; + switchval = gUnknown_020387E8; + switch(switchval) + { + case 0: + TVShowConvertInternationalString(gStringVar1, tvShow->bravoTrainer.playerName, tvShow->bravoTrainer.language); + CopyContestCategoryToStringVar(1, tvShow->bravoTrainer.contestCategory); + sub_80BEF10(2, tvShow->bravoTrainer.contestRank); + if (!StringCompareWithoutExtCtrlCodes(gSpeciesNames[tvShow->bravoTrainer.species], tvShow->bravoTrainer.pokemonNickname)) + { + gUnknown_020387E8 = 8; + } else + { + gUnknown_020387E8 = 1; + } + break; + case 1: + StringCopy(gStringVar1, gSpeciesNames[tvShow->bravoTrainer.species]); + TVShowConvertInternationalString(gStringVar2, tvShow->bravoTrainer.pokemonNickname, tvShow->bravoTrainer.var1f); + CopyContestCategoryToStringVar(2, tvShow->bravoTrainer.contestCategory); + gUnknown_020387E8 = 2; + break; + case 2: + TVShowConvertInternationalString(gStringVar1, tvShow->bravoTrainer.playerName, tvShow->bravoTrainer.language); + if (tvShow->bravoTrainer.contestResult == 0) // placed first + { + gUnknown_020387E8 = 3; + } else + { + gUnknown_020387E8 = 4; + } + break; + case 3: + TVShowConvertInternationalString(gStringVar1, tvShow->bravoTrainer.playerName, tvShow->bravoTrainer.language); + sub_80EB3FC(gStringVar2, tvShow->bravoTrainer.var04[0]); + sub_80BF088(2, tvShow->bravoTrainer.contestResult + 1); + gUnknown_020387E8 = 5; + break; + case 4: + TVShowConvertInternationalString(gStringVar1, tvShow->bravoTrainer.playerName, tvShow->bravoTrainer.language); + sub_80EB3FC(gStringVar2, tvShow->bravoTrainer.var04[0]); + sub_80BF088(2, tvShow->bravoTrainer.contestResult + 1); + gUnknown_020387E8 = 5; + break; + case 5: + TVShowConvertInternationalString(gStringVar1, tvShow->bravoTrainer.playerName, tvShow->bravoTrainer.language); + CopyContestCategoryToStringVar(1, tvShow->bravoTrainer.contestCategory); + sub_80EB3FC(gStringVar3, tvShow->bravoTrainer.var04[1]); + if (tvShow->bravoTrainer.var14) + { + gUnknown_020387E8 = 6; + } else + { + gUnknown_020387E8 = 7; + } + break; + case 6: + StringCopy(gStringVar1, gSpeciesNames[tvShow->bravoTrainer.species]); + StringCopy(gStringVar2, gMoveNames[tvShow->bravoTrainer.var14]); + sub_80EB3FC(gStringVar3, tvShow->bravoTrainer.var04[1]); + gUnknown_020387E8 = 7; + break; + case 7: + TVShowConvertInternationalString(gStringVar1, tvShow->bravoTrainer.playerName, tvShow->bravoTrainer.language); + StringCopy(gStringVar2, gSpeciesNames[tvShow->bravoTrainer.species]); + TVShowDone(); + break; + case 8: + StringCopy(gStringVar1, gSpeciesNames[tvShow->bravoTrainer.species]); + gUnknown_020387E8 = 2; + break; + } + ShowFieldMessage(gTVBravoTrainerTextGroup[switchval]); +} -void TakeTVShowInSearchOfTrainersOffTheAir(void); +void DoTVShowBravoTrainerBattleTowerProfile(void) +{ + TVShow *tvShow; + u8 switchval; + + tvShow = &gSaveBlock1.tvShows[gSpecialVar_0x8004]; + gScriptResult = 0; + switchval = gUnknown_020387E8; + switch(switchval) + { + case 0: + TVShowConvertInternationalString(gStringVar1, tvShow->bravoTrainerTower.trainerName, tvShow->bravoTrainerTower.language); + StringCopy(gStringVar2, gSpeciesNames[tvShow->bravoTrainerTower.species]); + if (tvShow->bravoTrainerTower.var16 >= 7) + { + gUnknown_020387E8 = 1; + } else + { + gUnknown_020387E8 = 2; + } + break; + case 1: + sub_80BF088(0, tvShow->bravoTrainerTower.btLevel); + sub_80BF088(1, tvShow->bravoTrainerTower.var16); + if (tvShow->bravoTrainerTower.var1c == 1) + { + gUnknown_020387E8 = 3; + } else + { + gUnknown_020387E8 = 4; + } + break; + case 2: + TVShowConvertInternationalString(gStringVar1, tvShow->bravoTrainerTower.pokemonName, tvShow->bravoTrainerTower.language); + sub_80BF088(1, tvShow->bravoTrainerTower.var16 + 1); + if (tvShow->bravoTrainerTower.var1b == 0) + { + gUnknown_020387E8 = 5; + } else + { + gUnknown_020387E8 = 6; + } + break; + case 3: + TVShowConvertInternationalString(gStringVar1, tvShow->bravoTrainerTower.pokemonName, tvShow->bravoTrainerTower.language); + StringCopy(gStringVar2, gSpeciesNames[tvShow->bravoTrainerTower.defeatedSpecies]); + if (tvShow->bravoTrainerTower.var1b == 0) + { + gUnknown_020387E8 = 5; + } else + { + gUnknown_020387E8 = 6; + } + break; + case 4: + TVShowConvertInternationalString(gStringVar1, tvShow->bravoTrainerTower.pokemonName, tvShow->bravoTrainerTower.language); + StringCopy(gStringVar2, gSpeciesNames[tvShow->bravoTrainerTower.defeatedSpecies]); + if (tvShow->bravoTrainerTower.var1b == 0) + { + gUnknown_020387E8 = 5; + } else + { + gUnknown_020387E8 = 6; + } + break; + case 5: + TVShowConvertInternationalString(gStringVar1, tvShow->bravoTrainerTower.pokemonName, tvShow->bravoTrainerTower.language); + gUnknown_020387E8 = 11; + break; + case 6: + TVShowConvertInternationalString(gStringVar1, tvShow->bravoTrainerTower.pokemonName, tvShow->bravoTrainerTower.language); + gUnknown_020387E8 = 11; + break; + case 7: + gUnknown_020387E8 = 11; + break; + case 8: + case 9: + case 10: + TVShowConvertInternationalString(gStringVar1, tvShow->bravoTrainerTower.trainerName, tvShow->bravoTrainerTower.language); + gUnknown_020387E8 = 11; + break; + case 11: + sub_80EB3FC(gStringVar1, tvShow->bravoTrainerTower.var18[0]); + if (tvShow->bravoTrainerTower.var1b == 0) + { + gUnknown_020387E8 = 12; + } else + { + gUnknown_020387E8 = 13; + } + break; + case 12: + case 13: + sub_80EB3FC(gStringVar1, tvShow->bravoTrainerTower.var18[0]); + TVShowConvertInternationalString(gStringVar2, tvShow->bravoTrainerTower.trainerName, tvShow->bravoTrainerTower.language); + TVShowConvertInternationalString(gStringVar3, tvShow->bravoTrainerTower.pokemonName, tvShow->bravoTrainerTower.language); + gUnknown_020387E8 = 14; + break; + case 14: + TVShowConvertInternationalString(gStringVar1, tvShow->bravoTrainerTower.trainerName, tvShow->bravoTrainerTower.language); + StringCopy(gStringVar2, gSpeciesNames[tvShow->bravoTrainerTower.species]); + TVShowDone(); + break; + } + ShowFieldMessage(gTVBravoTrainerBattleTowerTextGroup[switchval]); +} + +void DoTVShowTodaysSmartShopper(void) +{ + TVShow *tvShow; + u8 switchval; + + tvShow = &gSaveBlock1.tvShows[gSpecialVar_0x8004]; + gScriptResult = 0; + switchval = gUnknown_020387E8; + switch(switchval) + { + case 0: + TVShowConvertInternationalString(gStringVar1, tvShow->smartshopperShow.playerName, tvShow->smartshopperShow.language); + sub_80FBFB4(gStringVar2, tvShow->smartshopperShow.shopLocation, 0); + if (tvShow->smartshopperShow.itemAmounts[0] >= 0xff) + { + gUnknown_020387E8 = 11; + } else + { + gUnknown_020387E8 = 1; + } + break; + case 1: + TVShowConvertInternationalString(gStringVar1, tvShow->smartshopperShow.playerName, tvShow->smartshopperShow.language); + StringCopy(gStringVar2, ItemId_GetItem(tvShow->smartshopperShow.itemIds[0])->name); + sub_80BF088(2, tvShow->smartshopperShow.itemAmounts[0]); + gUnknown_020387E8 += (Random() % 4) + 1; + break; + case 2: + case 4: + case 5: + if (tvShow->smartshopperShow.itemIds[1] != 0) + { + gUnknown_020387E8 = 6; + } else + { + gUnknown_020387E8 = 10; + } + break; + case 3: + sub_80BF088(2, tvShow->smartshopperShow.itemAmounts[0] + 1); + if (tvShow->smartshopperShow.itemIds[1] != 0) + { + gUnknown_020387E8 = 6; + } else + { + gUnknown_020387E8 = 10; + } + break; + case 6: + StringCopy(gStringVar2, ItemId_GetItem(tvShow->smartshopperShow.itemIds[1])->name); + sub_80BF088(2, tvShow->smartshopperShow.itemAmounts[1]); + if (tvShow->smartshopperShow.itemIds[2] != 0) + { + gUnknown_020387E8 = 7; + } else if (tvShow->smartshopperShow.priceReduced == 1) + { + gUnknown_020387E8 = 8; + } else + { + gUnknown_020387E8 = 9; + } + break; + case 7: + StringCopy(gStringVar2, ItemId_GetItem(tvShow->smartshopperShow.itemIds[2])->name); + sub_80BF088(2, tvShow->smartshopperShow.itemAmounts[2]); + if (tvShow->smartshopperShow.priceReduced == 1) + { + gUnknown_020387E8 = 8; + } else + { + gUnknown_020387E8 = 9; + } + break; + case 8: + if (tvShow->smartshopperShow.itemAmounts[0] < 0xff) + { + gUnknown_020387E8 = 9; + } else + { + gUnknown_020387E8 = 12; + } + break; + case 9: + sub_80BF154(1, &tvShow->smartshopperShow); + TVShowDone(); + break; + case 10: + if (tvShow->smartshopperShow.priceReduced == 1) + { + gUnknown_020387E8 = 8; + } else + { + gUnknown_020387E8 = 9; + } + break; + case 11: + TVShowConvertInternationalString(gStringVar1, tvShow->smartshopperShow.playerName, tvShow->smartshopperShow.language); + StringCopy(gStringVar2, ItemId_GetItem(tvShow->smartshopperShow.itemIds[0])->name); + if (tvShow->smartshopperShow.priceReduced == 1) + { + gUnknown_020387E8 = 8; + } else + { + gUnknown_020387E8 = 12; + } + break; + case 12: + TVShowConvertInternationalString(gStringVar1, tvShow->smartshopperShow.playerName, tvShow->smartshopperShow.language); + TVShowDone(); + break; + } + ShowFieldMessage(gTVSmartShopperTextGroup[switchval]); +} void DoTVShowTheNameRaterShow(void) { TVShow *tvShow; u8 switchval; - tvShow = &gSaveBlock1.tvShows.shows[gSpecialVar_0x8004]; + tvShow = &gSaveBlock1.tvShows[gSpecialVar_0x8004]; gScriptResult = 0; switchval = gUnknown_020387E8; switch (switchval) { @@ -2661,7 +3388,7 @@ void DoTVShowTheNameRaterShow(void) { void DoTVShowPokemonTodaySuccessfulCapture(void) { TVShow *tvShow; u8 switchval; - tvShow = &gSaveBlock1.tvShows.shows[gSpecialVar_0x8004]; + tvShow = &gSaveBlock1.tvShows[gSpecialVar_0x8004]; gScriptResult = 0; switchval = gUnknown_020387E8; switch (switchval) { @@ -2731,7 +3458,7 @@ void DoTVShowPokemonTodayFailedCapture(void) { TVShow *tvShow; u8 switchval; u16 rval; - tvShow = &gSaveBlock1.tvShows.shows[gSpecialVar_0x8004]; + tvShow = &gSaveBlock1.tvShows[gSpecialVar_0x8004]; gScriptResult = 0; switchval = gUnknown_020387E8; switch (switchval) { @@ -2777,7 +3504,7 @@ void DoTVShowPokemonFanClubLetter(void) { TVShow *tvShow; u8 switchval; u16 rval; - tvShow = &gSaveBlock1.tvShows.shows[gSpecialVar_0x8004]; + tvShow = &gSaveBlock1.tvShows[gSpecialVar_0x8004]; gScriptResult = 0; switchval = gUnknown_020387E8; switch (switchval) { @@ -2828,7 +3555,7 @@ void DoTVShowPokemonFanClubLetter(void) { void DoTVShowRecentHappenings(void) { TVShow *tvShow; u8 switchval; - tvShow = &gSaveBlock1.tvShows.shows[gSpecialVar_0x8004]; + tvShow = &gSaveBlock1.tvShows[gSpecialVar_0x8004]; gScriptResult = 0; switchval = gUnknown_020387E8; switch (switchval) { @@ -2860,7 +3587,7 @@ void DoTVShowRecentHappenings(void) { void DoTVShowPokemonFanClubOpinions(void) { TVShow *tvShow; u8 switchval; - tvShow = &gSaveBlock1.tvShows.shows[gSpecialVar_0x8004]; + tvShow = &gSaveBlock1.tvShows[gSpecialVar_0x8004]; gScriptResult = 0; switchval = gUnknown_020387E8; switch (switchval) { @@ -2895,7 +3622,7 @@ void DoTVShowPokemonNewsMassOutbreak(void) { TVShow *tvShow; - tvShow = &gSaveBlock1.tvShows.shows[gSpecialVar_0x8004]; + tvShow = &gSaveBlock1.tvShows[gSpecialVar_0x8004]; sub_80FBFB4(gStringVar1, tvShow->massOutbreak.locationMapNum, 0); @@ -2914,7 +3641,7 @@ void DoTVShowInSearchOfTrainers(void) { switch (switchval) { case 0: sub_80FBFB4(gStringVar1, gSaveBlock1.gabbyAndTyData.mapnum, 0); - if (gSaveBlock1.gabbyAndTyData.val9 > 1) { + if (gSaveBlock1.gabbyAndTyData.battleNum > 1) { gUnknown_020387E8 = 1; } else { gUnknown_020387E8 = 2; @@ -2938,7 +3665,7 @@ void DoTVShowInSearchOfTrainers(void) { break; case 3: StringCopy(gStringVar1, gSpeciesNames[gSaveBlock1.gabbyAndTyData.mon1]); - StringCopy(gStringVar2, gMoveNames[gSaveBlock1.gabbyAndTyData.move1]); + StringCopy(gStringVar2, gMoveNames[gSaveBlock1.gabbyAndTyData.lastMove]); StringCopy(gStringVar3, gSpeciesNames[gSaveBlock1.gabbyAndTyData.mon2]); gUnknown_020387E8 = 8; break; @@ -2949,7 +3676,7 @@ void DoTVShowInSearchOfTrainers(void) { gUnknown_020387E8 = 8; break; case 8: - sub_80EB3FC(gStringVar1, gSaveBlock1.gabbyAndTyData.move2); + sub_80EB3FC(gStringVar1, gSaveBlock1.gabbyAndTyData.quote); StringCopy(gStringVar2, gSpeciesNames[gSaveBlock1.gabbyAndTyData.mon1]); StringCopy(gStringVar3, gSpeciesNames[gSaveBlock1.gabbyAndTyData.mon2]); gScriptResult = 1; @@ -2963,7 +3690,7 @@ void DoTVShowInSearchOfTrainers(void) { void DoTVShowPokemonAngler(void) { TVShow *tvShow; u8 switchval; - tvShow = &gSaveBlock1.tvShows.shows[gSpecialVar_0x8004]; + tvShow = &gSaveBlock1.tvShows[gSpecialVar_0x8004]; gScriptResult = 0; if (tvShow->pokemonAngler.var02 < tvShow->pokemonAngler.var03) { gUnknown_020387E8 = 0; @@ -2991,7 +3718,7 @@ void DoTVShowPokemonAngler(void) { void DoTVShowTheWorldOfMasters(void) { TVShow *tvShow; u8 switchval; - tvShow = &gSaveBlock1.tvShows.shows[gSpecialVar_0x8004]; + tvShow = &gSaveBlock1.tvShows[gSpecialVar_0x8004]; gScriptResult = 0; switchval = gUnknown_020387E8; switch (switchval) { @@ -3022,7 +3749,7 @@ void TVShowDone(void) gScriptResult = 1; gUnknown_020387E8 = 0; - gSaveBlock1.tvShows.shows[gSpecialVar_0x8004].common.var01 = 0; + gSaveBlock1.tvShows[gSpecialVar_0x8004].common.var01 = 0; } void sub_80C2014(void) diff --git a/src/unknown_debug_menu.c b/src/unknown_debug_menu.c index bbaeef63a..6a8bad0d4 100644 --- a/src/unknown_debug_menu.c +++ b/src/unknown_debug_menu.c @@ -1,13 +1,13 @@ #include "global.h" #include "menu.h" -extern u8 gUnknown_02024D1E[]; +extern u8 gBattleCommunication[]; extern u8 (*gCallback_03004AE8)(void); extern const struct MenuAction gUnknown_0842C29C[]; -u8 sub_814A464(void); +static u8 sub_814A464(void); int unref_sub_814A414(void) { @@ -19,7 +19,7 @@ int unref_sub_814A414(void) return 0; } -u8 sub_814A464(void) +static u8 sub_814A464(void) { s8 result = ProcessMenuInput(); if (result == -2) @@ -33,7 +33,7 @@ u8 sub_814A464(void) } else { - gUnknown_02024D1E[0] = result; + gBattleCommunication[0] = result; gCallback_03004AE8 = gUnknown_0842C29C[result].func; return 0; } @@ -43,8 +43,8 @@ u8 sub_814A4B8(void) { gSaveBlock2.filler_A8.var_4AE = 3; gSaveBlock2.filler_A8.var_4AF = 3; - gSaveBlock2.filler_A8.var_4B4 = gUnknown_02024D1E[0] + 1; - gSaveBlock2.filler_A8.var_4B6 = gUnknown_02024D1E[0] + 1; + gSaveBlock2.filler_A8.var_4B4 = gBattleCommunication[0] + 1; + gSaveBlock2.filler_A8.var_4B6 = gBattleCommunication[0] + 1; gSaveBlock2.filler_A8.var_4B0 = 1; gSaveBlock2.filler_A8.var_4B2 = 1; CloseMenu(); diff --git a/src/util.c b/src/util.c index 2278c50fe..c83fe8c8a 100644 --- a/src/util.c +++ b/src/util.c @@ -1,46 +1,46 @@ #include "global.h" -#include "sprite.h" +#include "util.h" extern const struct SpriteTemplate gInvisibleSpriteTemplate; extern const u8 gSpriteDimensions[3][4][2]; extern const u16 gCrc16Table[]; u8 CreateInvisibleSpriteWithCallback(void (*callback)(struct Sprite *)) { - u8 sprite = CreateSprite(&gInvisibleSpriteTemplate, 248, 168, 14); - gSprites[sprite].invisible = TRUE; - gSprites[sprite].callback = callback; - return sprite; + u8 sprite = CreateSprite(&gInvisibleSpriteTemplate, 248, 168, 14); + gSprites[sprite].invisible = TRUE; + gSprites[sprite].callback = callback; + return sprite; } void StoreWordInTwoHalfwords(u16 *h, u32 w) { - h[0] = (u16)(w); - h[1] = (u16)(w >> 16); + h[0] = (u16)(w); + h[1] = (u16)(w >> 16); } void LoadWordFromTwoHalfwords(u16 *h, u32 *w) { - *w = h[0] | (s16)h[1] << 16; + *w = h[0] | (s16)h[1] << 16; } void SetBgAffineStruct(struct BgAffineSrcData *src, u32 texX, u32 texY, s16 scrX, s16 scrY, s16 sx, s16 sy, u16 alpha) { - src->texX = texX; - src->texY = texY; - src->scrX = scrX; - src->scrY = scrY; - src->sx = sx; - src->sy = sy; - src->alpha = alpha; + src->texX = texX; + src->texY = texY; + src->scrX = scrX; + src->scrY = scrY; + src->sx = sx; + src->sy = sy; + src->alpha = alpha; } void DoBgAffineSet(struct BgAffineDstData *dest, u32 texX, u32 texY, s16 scrX, s16 scrY, s16 sx, s16 sy, u16 alpha) { - struct BgAffineSrcData src; - SetBgAffineStruct( - &src, - texX, texY, - scrX, scrY, - sx, sy, - alpha - ); - BgAffineSet(&src, dest, 1); + struct BgAffineSrcData src; + SetBgAffineStruct( + &src, + texX, texY, + scrX, scrY, + sx, sy, + alpha + ); + BgAffineSet(&src, dest, 1); } #ifdef NONMATCHING @@ -48,342 +48,342 @@ void DoBgAffineSet(struct BgAffineDstData *dest, u32 texX, u32 texY, s16 scrX, s // Functionally equivalent. // Only the two yflip loops don't match. void CopySpriteTiles(u8 shape, u8 size, u8 *tiles, u16 *tilemap, u8 *output) { - u8 x, y; - s8 i, j; - u8 xflip[32]; - u8 h = gSpriteDimensions[shape][size][1]; - u8 w = gSpriteDimensions[shape][size][0]; - for (y = 0; y < h; y++) { - int filler = 32 - w; - for (x = 0; x < w; x++) { - int tile = (*tilemap & 0x3ff) * 32; - int attr = *tilemap & 0xc00; - if (attr == 0) { - void *src = tiles + tile; - void *dest = output; - int length = 32; - DmaCopy32(3, src, dest, length); - } else if (attr == 0x800) { // yflip - for (i = 0; i < 8; i++) { - void *src = tiles; - void *dest = output; - int length = 4; - // this is likely wrong, but makes it closer to matching - src += tile + (7 - i) * 4; - dest += i * 4; - DmaCopy32(3, src, dest, length); - } - } else { // xflip - for (i = 0; i < 8; i++) { - for (j = 0; j < 4; j++) { - u8 i2 = i * 4; - xflip[i2 + (3-j)] = (tiles[tile + i2 + j] & 0xf) << 4; - xflip[i2 + (3-j)] |= tiles[tile + i2 + j] >> 4; - } - } - if (*tilemap & 0x800) { // yflip - for (i = 0; i < 8; i++) { - void *src = xflip + (7-i) * 4; - void *dest = output + i*4; - int length = 4; - DmaCopy32(3, src, dest, length); - } - } else { - void *src = xflip; - void *dest = output; - int length = 32; - DmaCopy32(3, src, dest, length); - } - } - tilemap++; - output += 32; - } - tilemap += filler; - } + u8 x, y; + s8 i, j; + u8 xflip[32]; + u8 h = gSpriteDimensions[shape][size][1]; + u8 w = gSpriteDimensions[shape][size][0]; + for (y = 0; y < h; y++) { + int filler = 32 - w; + for (x = 0; x < w; x++) { + int tile = (*tilemap & 0x3ff) * 32; + int attr = *tilemap & 0xc00; + if (attr == 0) { + void *src = tiles + tile; + void *dest = output; + int length = 32; + DmaCopy32(3, src, dest, length); + } else if (attr == 0x800) { // yflip + for (i = 0; i < 8; i++) { + void *src = tiles; + void *dest = output; + int length = 4; + // this is likely wrong, but makes it closer to matching + src += tile + (7 - i) * 4; + dest += i * 4; + DmaCopy32(3, src, dest, length); + } + } else { // xflip + for (i = 0; i < 8; i++) { + for (j = 0; j < 4; j++) { + u8 i2 = i * 4; + xflip[i2 + (3-j)] = (tiles[tile + i2 + j] & 0xf) << 4; + xflip[i2 + (3-j)] |= tiles[tile + i2 + j] >> 4; + } + } + if (*tilemap & 0x800) { // yflip + for (i = 0; i < 8; i++) { + void *src = xflip + (7-i) * 4; + void *dest = output + i*4; + int length = 4; + DmaCopy32(3, src, dest, length); + } + } else { + void *src = xflip; + void *dest = output; + int length = 32; + DmaCopy32(3, src, dest, length); + } + } + tilemap++; + output += 32; + } + tilemap += filler; + } } #else __attribute__((naked)) void CopySpriteTiles(u8 shape, u8 size, u8 *tiles, u16 *tilemap, u8 *output) { - asm("\n" - " .syntax unified\n" - " push {r4-r7,lr}\n" - " mov r7, r10\n" - " mov r6, r9\n" - " mov r5, r8\n" - " push {r5-r7}\n" - " sub sp, 0x3C\n" - " str r2, [sp, 0x20]\n" - " adds r4, r3, 0\n" - " ldr r7, [sp, 0x5C]\n" - " lsls r0, 24\n" - " lsls r1, 24\n" - " ldr r2, _08041008 @ =gSpriteDimensions\n" - " lsrs r1, 23\n" - " lsrs r0, 21\n" - " adds r1, r0\n" - " adds r0, r2, 0x1\n" - " adds r0, r1, r0\n" - " ldrb r0, [r0]\n" - " str r0, [sp, 0x24]\n" - " adds r1, r2\n" - " ldrb r1, [r1]\n" - " str r1, [sp, 0x28]\n" - " movs r1, 0\n" - " cmp r1, r0\n" - " bcc _08040FB4\n" - " b _08041136\n" - "_08040FB4:\n" - " movs r0, 0x20\n" - " ldr r2, [sp, 0x28]\n" - " subs r0, r2\n" - " lsls r0, 1\n" - " str r0, [sp, 0x2C]\n" - "_08040FBE:\n" - " movs r2, 0\n" - " adds r1, 0x1\n" - " str r1, [sp, 0x34]\n" - " ldr r3, [sp, 0x28]\n" - " cmp r2, r3\n" - " bcc _08040FCC\n" - " b _08041124\n" - "_08040FCC:\n" - " ldr r0, _0804100C @ =0x040000d4\n" - " mov r8, r0\n" - "_08040FD0:\n" - " ldrh r1, [r4]\n" - " ldr r0, _08041010 @ =0x000003ff\n" - " ands r0, r1\n" - " lsls r0, 5\n" - " mov r12, r0\n" - " movs r0, 0xC0\n" - " lsls r0, 4\n" - " ands r0, r1\n" - " mov r3, sp\n" - " strh r1, [r3, 0x38]\n" - " cmp r0, 0\n" - " bne _08041018\n" - " ldr r0, [sp, 0x20]\n" - " add r0, r12\n" - " mov r1, r8\n" - " str r0, [r1]\n" - " str r7, [r1, 0x4]\n" - " ldr r3, _08041014 @ =0x84000008\n" - " str r3, [r1, 0x8]\n" - " ldr r0, [r1, 0x8]\n" - " adds r4, 0x2\n" - " str r4, [sp, 0x30]\n" - " adds r7, 0x20\n" - " mov r10, r7\n" - " adds r2, 0x1\n" - " mov r9, r2\n" - " b _08041112\n" - " .align 2, 0\n" - "_08041008: .4byte gSpriteDimensions\n" - "_0804100C: .4byte 0x040000d4\n" - "_08041010: .4byte 0x000003ff\n" - "_08041014: .4byte 0x84000008\n" - "_08041018:\n" - " movs r1, 0x80\n" - " lsls r1, 4\n" - " cmp r0, r1\n" - " bne _08041068\n" - " movs r3, 0\n" - " adds r4, 0x2\n" - " str r4, [sp, 0x30]\n" - " movs r0, 0x20\n" - " adds r0, r7\n" - " mov r10, r0\n" - " adds r2, 0x1\n" - " mov r9, r2\n" - " ldr r4, _08041060 @ =0x040000d4\n" - " ldr r6, _08041064 @ =0x84000001\n" - " movs r5, 0x7\n" - "_08041036:\n" - " lsls r2, r3, 24\n" - " asrs r2, 24\n" - " subs r0, r5, r2\n" - " lsls r0, 2\n" - " add r0, r12\n" - " ldr r1, [sp, 0x20]\n" - " adds r0, r1, r0\n" - " lsls r1, r2, 2\n" - " adds r1, r7, r1\n" - " str r0, [r4]\n" - " str r1, [r4, 0x4]\n" - " str r6, [r4, 0x8]\n" - " ldr r0, [r4, 0x8]\n" - " adds r2, 0x1\n" - " lsls r2, 24\n" - " lsrs r3, r2, 24\n" - " asrs r2, 24\n" - " cmp r2, 0x7\n" - " ble _08041036\n" - " b _08041112\n" - " .align 2, 0\n" - "_08041060: .4byte 0x040000d4\n" - "_08041064: .4byte 0x84000001\n" - "_08041068:\n" - " movs r3, 0\n" - " adds r4, 0x2\n" - " str r4, [sp, 0x30]\n" - " movs r0, 0x20\n" - " adds r0, r7\n" - " mov r10, r0\n" - " adds r2, 0x1\n" - " mov r9, r2\n" - "_08041078:\n" - " movs r2, 0\n" - " lsls r4, r3, 24\n" - " lsls r0, r4, 2\n" - " lsrs r0, 24\n" - " adds r6, r0, 0x3\n" - " mov r1, r12\n" - " adds r5, r1, r0\n" - "_08041086:\n" - " lsls r1, r2, 24\n" - " asrs r1, 24\n" - " subs r0, r6, r1\n" - " mov r2, sp\n" - " adds r3, r2, r0\n" - " adds r0, r5, r1\n" - " ldr r2, [sp, 0x20]\n" - " adds r0, r2, r0\n" - " ldrb r2, [r0]\n" - " movs r0, 0xF\n" - " ands r0, r2\n" - " lsls r0, 4\n" - " lsrs r2, 4\n" - " orrs r0, r2\n" - " strb r0, [r3]\n" - " adds r1, 0x1\n" - " lsls r1, 24\n" - " lsrs r2, r1, 24\n" - " asrs r1, 24\n" - " cmp r1, 0x3\n" - " ble _08041086\n" - " movs r3, 0x80\n" - " lsls r3, 17\n" - " adds r0, r4, r3\n" - " lsrs r3, r0, 24\n" - " asrs r0, 24\n" - " cmp r0, 0x7\n" - " ble _08041078\n" - " movs r0, 0x80\n" - " lsls r0, 4\n" - " mov r1, sp\n" - " ldrh r1, [r1, 0x38]\n" - " ands r0, r1\n" - " cmp r0, 0\n" - " beq _08041104\n" - " movs r3, 0\n" - " ldr r4, _080410FC @ =0x040000d4\n" - " ldr r6, _08041100 @ =0x84000001\n" - " movs r5, 0x7\n" - "_080410D4:\n" - " lsls r1, r3, 24\n" - " asrs r1, 24\n" - " subs r0, r5, r1\n" - " lsls r0, 2\n" - " mov r3, sp\n" - " adds r2, r3, r0\n" - " lsls r0, r1, 2\n" - " adds r0, r7, r0\n" - " str r2, [r4]\n" - " str r0, [r4, 0x4]\n" - " str r6, [r4, 0x8]\n" - " ldr r0, [r4, 0x8]\n" - " adds r1, 0x1\n" - " lsls r1, 24\n" - " lsrs r3, r1, 24\n" - " asrs r1, 24\n" - " cmp r1, 0x7\n" - " ble _080410D4\n" - " b _08041112\n" - " .align 2, 0\n" - "_080410FC: .4byte 0x040000d4\n" - "_08041100: .4byte 0x84000001\n" - "_08041104:\n" - " mov r0, sp\n" - " mov r1, r8\n" - " str r0, [r1]\n" - " str r7, [r1, 0x4]\n" - " ldr r2, _08041148 @ =0x84000008\n" - " str r2, [r1, 0x8]\n" - " ldr r0, [r1, 0x8]\n" - "_08041112:\n" - " ldr r4, [sp, 0x30]\n" - " mov r7, r10\n" - " mov r3, r9\n" - " lsls r0, r3, 24\n" - " lsrs r2, r0, 24\n" - " ldr r0, [sp, 0x28]\n" - " cmp r2, r0\n" - " bcs _08041124\n" - " b _08040FD0\n" - "_08041124:\n" - " ldr r1, [sp, 0x2C]\n" - " adds r4, r1\n" - " ldr r2, [sp, 0x34]\n" - " lsls r0, r2, 24\n" - " lsrs r1, r0, 24\n" - " ldr r3, [sp, 0x24]\n" - " cmp r1, r3\n" - " bcs _08041136\n" - " b _08040FBE\n" - "_08041136:\n" - " add sp, 0x3C\n" - " pop {r3-r5}\n" - " mov r8, r3\n" - " mov r9, r4\n" - " mov r10, r5\n" - " pop {r4-r7}\n" - " pop {r0}\n" - " bx r0\n" - " .align 2, 0\n" - "_08041148: .4byte 0x84000008\n" - " .syntax divided\n" - ); + asm("\n" + " .syntax unified\n" + " push {r4-r7,lr}\n" + " mov r7, r10\n" + " mov r6, r9\n" + " mov r5, r8\n" + " push {r5-r7}\n" + " sub sp, 0x3C\n" + " str r2, [sp, 0x20]\n" + " adds r4, r3, 0\n" + " ldr r7, [sp, 0x5C]\n" + " lsls r0, 24\n" + " lsls r1, 24\n" + " ldr r2, _08041008 @ =gSpriteDimensions\n" + " lsrs r1, 23\n" + " lsrs r0, 21\n" + " adds r1, r0\n" + " adds r0, r2, 0x1\n" + " adds r0, r1, r0\n" + " ldrb r0, [r0]\n" + " str r0, [sp, 0x24]\n" + " adds r1, r2\n" + " ldrb r1, [r1]\n" + " str r1, [sp, 0x28]\n" + " movs r1, 0\n" + " cmp r1, r0\n" + " bcc _08040FB4\n" + " b _08041136\n" + "_08040FB4:\n" + " movs r0, 0x20\n" + " ldr r2, [sp, 0x28]\n" + " subs r0, r2\n" + " lsls r0, 1\n" + " str r0, [sp, 0x2C]\n" + "_08040FBE:\n" + " movs r2, 0\n" + " adds r1, 0x1\n" + " str r1, [sp, 0x34]\n" + " ldr r3, [sp, 0x28]\n" + " cmp r2, r3\n" + " bcc _08040FCC\n" + " b _08041124\n" + "_08040FCC:\n" + " ldr r0, _0804100C @ =0x040000d4\n" + " mov r8, r0\n" + "_08040FD0:\n" + " ldrh r1, [r4]\n" + " ldr r0, _08041010 @ =0x000003ff\n" + " ands r0, r1\n" + " lsls r0, 5\n" + " mov r12, r0\n" + " movs r0, 0xC0\n" + " lsls r0, 4\n" + " ands r0, r1\n" + " mov r3, sp\n" + " strh r1, [r3, 0x38]\n" + " cmp r0, 0\n" + " bne _08041018\n" + " ldr r0, [sp, 0x20]\n" + " add r0, r12\n" + " mov r1, r8\n" + " str r0, [r1]\n" + " str r7, [r1, 0x4]\n" + " ldr r3, _08041014 @ =0x84000008\n" + " str r3, [r1, 0x8]\n" + " ldr r0, [r1, 0x8]\n" + " adds r4, 0x2\n" + " str r4, [sp, 0x30]\n" + " adds r7, 0x20\n" + " mov r10, r7\n" + " adds r2, 0x1\n" + " mov r9, r2\n" + " b _08041112\n" + " .align 2, 0\n" + "_08041008: .4byte gSpriteDimensions\n" + "_0804100C: .4byte 0x040000d4\n" + "_08041010: .4byte 0x000003ff\n" + "_08041014: .4byte 0x84000008\n" + "_08041018:\n" + " movs r1, 0x80\n" + " lsls r1, 4\n" + " cmp r0, r1\n" + " bne _08041068\n" + " movs r3, 0\n" + " adds r4, 0x2\n" + " str r4, [sp, 0x30]\n" + " movs r0, 0x20\n" + " adds r0, r7\n" + " mov r10, r0\n" + " adds r2, 0x1\n" + " mov r9, r2\n" + " ldr r4, _08041060 @ =0x040000d4\n" + " ldr r6, _08041064 @ =0x84000001\n" + " movs r5, 0x7\n" + "_08041036:\n" + " lsls r2, r3, 24\n" + " asrs r2, 24\n" + " subs r0, r5, r2\n" + " lsls r0, 2\n" + " add r0, r12\n" + " ldr r1, [sp, 0x20]\n" + " adds r0, r1, r0\n" + " lsls r1, r2, 2\n" + " adds r1, r7, r1\n" + " str r0, [r4]\n" + " str r1, [r4, 0x4]\n" + " str r6, [r4, 0x8]\n" + " ldr r0, [r4, 0x8]\n" + " adds r2, 0x1\n" + " lsls r2, 24\n" + " lsrs r3, r2, 24\n" + " asrs r2, 24\n" + " cmp r2, 0x7\n" + " ble _08041036\n" + " b _08041112\n" + " .align 2, 0\n" + "_08041060: .4byte 0x040000d4\n" + "_08041064: .4byte 0x84000001\n" + "_08041068:\n" + " movs r3, 0\n" + " adds r4, 0x2\n" + " str r4, [sp, 0x30]\n" + " movs r0, 0x20\n" + " adds r0, r7\n" + " mov r10, r0\n" + " adds r2, 0x1\n" + " mov r9, r2\n" + "_08041078:\n" + " movs r2, 0\n" + " lsls r4, r3, 24\n" + " lsls r0, r4, 2\n" + " lsrs r0, 24\n" + " adds r6, r0, 0x3\n" + " mov r1, r12\n" + " adds r5, r1, r0\n" + "_08041086:\n" + " lsls r1, r2, 24\n" + " asrs r1, 24\n" + " subs r0, r6, r1\n" + " mov r2, sp\n" + " adds r3, r2, r0\n" + " adds r0, r5, r1\n" + " ldr r2, [sp, 0x20]\n" + " adds r0, r2, r0\n" + " ldrb r2, [r0]\n" + " movs r0, 0xF\n" + " ands r0, r2\n" + " lsls r0, 4\n" + " lsrs r2, 4\n" + " orrs r0, r2\n" + " strb r0, [r3]\n" + " adds r1, 0x1\n" + " lsls r1, 24\n" + " lsrs r2, r1, 24\n" + " asrs r1, 24\n" + " cmp r1, 0x3\n" + " ble _08041086\n" + " movs r3, 0x80\n" + " lsls r3, 17\n" + " adds r0, r4, r3\n" + " lsrs r3, r0, 24\n" + " asrs r0, 24\n" + " cmp r0, 0x7\n" + " ble _08041078\n" + " movs r0, 0x80\n" + " lsls r0, 4\n" + " mov r1, sp\n" + " ldrh r1, [r1, 0x38]\n" + " ands r0, r1\n" + " cmp r0, 0\n" + " beq _08041104\n" + " movs r3, 0\n" + " ldr r4, _080410FC @ =0x040000d4\n" + " ldr r6, _08041100 @ =0x84000001\n" + " movs r5, 0x7\n" + "_080410D4:\n" + " lsls r1, r3, 24\n" + " asrs r1, 24\n" + " subs r0, r5, r1\n" + " lsls r0, 2\n" + " mov r3, sp\n" + " adds r2, r3, r0\n" + " lsls r0, r1, 2\n" + " adds r0, r7, r0\n" + " str r2, [r4]\n" + " str r0, [r4, 0x4]\n" + " str r6, [r4, 0x8]\n" + " ldr r0, [r4, 0x8]\n" + " adds r1, 0x1\n" + " lsls r1, 24\n" + " lsrs r3, r1, 24\n" + " asrs r1, 24\n" + " cmp r1, 0x7\n" + " ble _080410D4\n" + " b _08041112\n" + " .align 2, 0\n" + "_080410FC: .4byte 0x040000d4\n" + "_08041100: .4byte 0x84000001\n" + "_08041104:\n" + " mov r0, sp\n" + " mov r1, r8\n" + " str r0, [r1]\n" + " str r7, [r1, 0x4]\n" + " ldr r2, _08041148 @ =0x84000008\n" + " str r2, [r1, 0x8]\n" + " ldr r0, [r1, 0x8]\n" + "_08041112:\n" + " ldr r4, [sp, 0x30]\n" + " mov r7, r10\n" + " mov r3, r9\n" + " lsls r0, r3, 24\n" + " lsrs r2, r0, 24\n" + " ldr r0, [sp, 0x28]\n" + " cmp r2, r0\n" + " bcs _08041124\n" + " b _08040FD0\n" + "_08041124:\n" + " ldr r1, [sp, 0x2C]\n" + " adds r4, r1\n" + " ldr r2, [sp, 0x34]\n" + " lsls r0, r2, 24\n" + " lsrs r1, r0, 24\n" + " ldr r3, [sp, 0x24]\n" + " cmp r1, r3\n" + " bcs _08041136\n" + " b _08040FBE\n" + "_08041136:\n" + " add sp, 0x3C\n" + " pop {r3-r5}\n" + " mov r8, r3\n" + " mov r9, r4\n" + " mov r10, r5\n" + " pop {r4-r7}\n" + " pop {r0}\n" + " bx r0\n" + " .align 2, 0\n" + "_08041148: .4byte 0x84000008\n" + " .syntax divided\n" + ); } #endif int CountTrailingZeroBits(u32 value) { - u8 i; - for (i = 0; i < 32; i++) { - if ((value & 1) == 0) { - value >>= 1; - } else { - return i; - } - } - return 0; + u8 i; + for (i = 0; i < 32; i++) { + if ((value & 1) == 0) { + value >>= 1; + } else { + return i; + } + } + return 0; } u16 CalcCRC16(u8 *data, int length) { - u16 i, j; - u16 crc = 0x1121; - for (i = 0; i < length; i++) { - crc ^= data[i]; - for (j = 0; j < 8; j++) { - if (crc & 1) { - crc = (crc >> 1) ^ 0x8408; - } else { - crc >>= 1; - } - } - } - return ~crc; + u16 i, j; + u16 crc = 0x1121; + for (i = 0; i < length; i++) { + crc ^= data[i]; + for (j = 0; j < 8; j++) { + if (crc & 1) { + crc = (crc >> 1) ^ 0x8408; + } else { + crc >>= 1; + } + } + } + return ~crc; } u16 CalcCRC16WithTable(u8 *data, int length) { - u16 i; - u16 crc = 0x1121; - u8 byte; - for (i = 0; i < length; i++) { - byte = crc >> 8; - crc ^= data[i]; - crc = byte ^ gCrc16Table[(u8)crc]; - } - return ~crc; + u16 i; + u16 crc = 0x1121; + u8 byte; + for (i = 0; i < length; i++) { + byte = crc >> 8; + crc ^= data[i]; + crc = byte ^ gCrc16Table[(u8)crc]; + } + return ~crc; } diff --git a/src/wallclock.c b/src/wallclock.c index 0b9948adc..8db13dc2d 100644 --- a/src/wallclock.c +++ b/src/wallclock.c @@ -1,6 +1,5 @@ #include "global.h" #include "wallclock.h" -#include "asm.h" #include "decompress.h" #include "main.h" #include "menu.h" @@ -11,12 +10,12 @@ #include "strings2.h" #include "task.h" #include "trig.h" +#include "unknown_task.h" extern u16 gSpecialVar_0x8004; extern u8 gMiscClock_Gfx[]; extern u8 gUnknown_08E95774[]; extern u8 gUnknown_08E954B0[]; -extern const struct MenuAction gMenuYesNoItems[]; extern u16 gMiscClockMale_Pal[]; extern u16 gMiscClockFemale_Pal[]; @@ -25,7 +24,7 @@ extern u16 gMiscClockFemale_Pal[]; //-------------------------------------------------- static const u8 ClockGfx_Misc[] = INCBIN_U8("graphics/misc/clock_misc.4bpp.lz"); -static const struct SpriteSheet gUnknown_083F7A90[] = +static const struct CompressedSpriteSheet gUnknown_083F7A90[] = { {ClockGfx_Misc, 0x2000, 0x1000}, {NULL}, @@ -434,7 +433,7 @@ static void Task_SetClock4(u8 taskId) return; case -1: //B button case 1: //NO - sub_8072DEC(); + HandleDestroyMenuCursors(); PlaySE(SE_SELECT); MenuZeroFillWindowRect(23, 8, 29, 13); MenuZeroFillWindowRect(2, 16, 27, 19); diff --git a/src/wild_encounter.c b/src/wild_encounter.c index 9dfcf0e5c..96f47c067 100644 --- a/src/wild_encounter.c +++ b/src/wild_encounter.c @@ -1,41 +1,19 @@ #include "global.h" #include "wild_encounter.h" #include "abilities.h" -#include "asm.h" #include "battle_setup.h" #include "event_data.h" #include "field_player_avatar.h" +#include "fieldmap.h" #include "metatile_behavior.h" +#include "pokeblock.h" #include "rng.h" #include "roamer.h" #include "rom4.h" #include "safari_zone.h" #include "script.h" #include "species.h" - -struct WildPokemon -{ - u8 minLevel; - u8 maxLevel; - u16 species; -}; - -struct WildPokemonInfo -{ - u8 encounterRate; - const struct WildPokemon *wildPokemon; -}; - -struct WildPokemonHeader -{ - u8 mapGroup; - u8 mapNum; - struct WildPokemonInfo *landMonsInfo; - struct WildPokemonInfo *waterMonsInfo; - struct WildPokemonInfo *rockSmashMonsInfo; - struct WildPokemonInfo *fishingMonsInfo; -}; - +#include "tv.h" const struct WildPokemon PetalburgCity_WaterMons [] = { @@ -2921,9 +2899,6 @@ const struct WildPokemonInfo Underwater2_WaterMonsInfo = {4, Underwater2_WaterMo extern u16 gRoute119WaterTileData[]; -extern struct WildPokemonHeader gWildMonHeaders[]; -extern struct Pokemon gEnemyParty[6]; -extern struct Pokemon gPlayerParty[6]; extern u16 gScriptResult; extern struct WildPokemon gWildFeebasRoute119Data; extern u8 Event_RepelWoreOff[]; diff --git a/sym_bss.txt b/sym_bss.txt index c7e0b5d6e..315bad6bb 100644 --- a/sym_bss.txt +++ b/sym_bss.txt @@ -160,7 +160,7 @@ gUnknown_03000760: @ 3000760 gUnknown_030007B0: @ 30007B0 .space 0x4 -gUnknown_030007B4: @ 30007B4 +gPcItemMenuOptionsNum: @ 30007B4 .space 0x4 gUnknown_030007B8: @ 30007B8 diff --git a/sym_common.txt b/sym_common.txt index f8645c427..dfd114c8c 100644 --- a/sym_common.txt +++ b/sym_common.txt @@ -5,7 +5,7 @@ .include "rtc.o" .align 4 -gUnknown_03004040: @ 3004040 +gBattleBuffersTransferData: @ 3004040 .space 0x170 gUnknown_030041B0: @ 30041B0 @@ -17,7 +17,7 @@ gUnknown_030041B4: @ 30041B4 gUnknown_030041B8: @ 30041B8 .space 0x8 -gUnknown_030041C0: @ 30041C0 +gBattleTextBuff1: @ 30041C0 .space 0x10 gUnknown_030041D0: @ 30041D0 @@ -50,7 +50,7 @@ gUnknown_03004288: @ 3004288 gBattleTerrain: @ 300428C .space 0x4 -gUnknown_03004290: @ 3004290 +gBattleTextBuff2: @ 3004290 .space 0x10 gUnknown_030042A0: @ 30042A0 @@ -59,7 +59,7 @@ gUnknown_030042A0: @ 30042A0 gUnknown_030042A4: @ 30042A4 .space 0xC -gUnknown_030042B0: @ 30042B0 +gBattleTextBuff3: @ 30042B0 .space 0x10 gUnknown_030042C0: @ 30042C0 @@ -68,13 +68,13 @@ gUnknown_030042C0: @ 30042C0 gUnknown_030042C4: @ 30042C4 .space 0xC -gUnknown_030042D0: @ 30042D0 +gPreBattleCallback1: @ 30042D0 .space 0x4 -gUnknown_030042D4: @ 30042D4 +gBattleMainFunc: @ 30042D4 .space 0xC -gUnknown_030042E0: @ 30042E0 +gBattleResults: @ 30042E0 .space 0x1C gUnknown_030042FC: @ 30042FC @@ -86,13 +86,13 @@ gUnknown_0300430A: @ 300430A gUnknown_03004316: @ 3004316 .space 0xE -gUnknown_03004324: @ 3004324 +gLeveledUpInBattle: @ 3004324 .space 0xC -gUnknown_03004330: @ 3004330 +gBattleBankFunc: @ 3004330 .space 0x10 -gUnknown_03004340: @ 3004340 +gHealthboxIDs: @ 3004340 .space 0x4 gUnknown_03004344: @ 3004344 @@ -145,7 +145,7 @@ gUnknown_03004854: @ 3004854 word_3004858: @ 3004858 .space 0x4 -gUnknown_0300485C: @ 300485C +gFieldCallback: @ 300485C .space 0x4 gUnknown_03004860: @ 3004860 diff --git a/sym_ewram.txt b/sym_ewram.txt index bf976e5dd..9f810eba7 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -20,7 +20,7 @@ gUnknown_020238C6: @ 20238C6 gUnknown_020238C8: @ 20238C8 .space 0x4 -gUnknown_020238CC: @ 20238CC +gDisplayedStringBattle: @ 20238CC .space 0x12C gBattleTypeFlags: @ 20239F8 @@ -38,7 +38,7 @@ gUnknown_02023A04: @ 2023A04 gUnknown_02023A14: @ 2023A14 .space 0x4C -gUnknown_02023A60: @ 2023A60 +gBattleBufferA: @ 2023A60 .space 0x2 gUnknown_02023A62: @ 2023A62 @@ -50,37 +50,37 @@ gUnknown_02023A63: @ 2023A63 gUnknown_02023A64: @ 2023A64 .space 0x7FC -gUnknown_02024260: @ 2024260 +gBattleBufferB: @ 2024260 .space 0x4 gUnknown_02024264: @ 2024264 .space 0x7FC -gUnknown_02024A60: @ 2024A60 +gActiveBank: @ 2024A60 .space 0x4 -gUnknown_02024A64: @ 2024A64 +gBattleExecBuffer: @ 2024A64 .space 0x4 -gUnknown_02024A68: @ 2024A68 +gNoOfAllBanks: @ 2024A68 .space 0x2 -gUnknown_02024A6A: @ 2024A6A +gBattlePartyID: @ 2024A6A .space 0x8 -gUnknown_02024A72: @ 2024A72 +gBanksBySide: @ 2024A72 .space 0x4 gUnknown_02024A76: @ 2024A76 .space 0x4 -gUnknown_02024A7A: @ 2024A7A +gTurnOrder: @ 2024A7A .space 0x4 -gUnknown_02024A7E: @ 2024A7E +gCurrentMoveTurn: @ 2024A7E .space 0x1 -gUnknown_02024A7F: @ 2024A7F +gFightStateTracker: @ 2024A7F .space 0x1 gBattleMons: @ 2024A80 @@ -104,16 +104,16 @@ gUnknown_02024ACC: @ 2024ACC gUnknown_02024AD0: @ 2024AD0 .space 0x110 -gUnknown_02024BE0: @ 2024BE0 +gObjectBankIDs: @ 2024BE0 .space 0x4 -gUnknown_02024BE4: @ 2024BE4 +gCurrMovePos: @ 2024BE4 .space 0x1 gUnknown_02024BE5: @ 2024BE5 .space 0x1 -gUnknown_02024BE6: @ 2024BE6 +gCurrentMove: @ 2024BE6 .space 0x2 gUnknown_02024BE8: @ 2024BE8 @@ -125,46 +125,46 @@ gUnknown_02024BEA: @ 2024BEA gBattleMoveDamage: @ 2024BEC .space 0x4 -gUnknown_02024BF0: @ 2024BF0 +gHP_dealt: @ 2024BF0 .space 0x4 -gUnknown_02024BF4: @ 2024BF4 +gTakenDmg: @ 2024BF4 .space 0x10 -gUnknown_02024C04: @ 2024C04 +gLastUsedItem: @ 2024C04 .space 0x2 -byte_2024C06: @ 2024C06 +gLastUsedAbility: @ 2024C06 .space 0x1 -gPlayerMonIndex: @ 2024C07 +gBankAttacker: @ 2024C07 .space 0x1 -gEnemyMonIndex: @ 2024C08 +gBankTarget: @ 2024C08 .space 0x1 -gUnknown_02024C09: @ 2024C09 +gBank1: @ 2024C09 .space 0x1 -gUnknown_02024C0A: @ 2024C0A +gEffectBank: @ 2024C0A .space 0x1 -gUnknown_02024C0B: @ 2024C0B +gStringBank: @ 2024C0B .space 0x1 -gUnknown_02024C0C: @ 2024C0C +gAbsentBankFlags: @ 2024C0C .space 0x1 gCritMultiplier: @ 2024C0D .space 0x1 -gUnknown_02024C0E: @ 2024C0E +gMultiHitCounter: @ 2024C0E .space 0x2 -gUnknown_02024C10: @ 2024C10 +gBattlescriptCurrInstr: @ 2024C10 .space 0x8 -gUnknown_02024C18: @ 2024C18 +gActionForBanks: @ 2024C18 .space 0x4 gUnknown_02024C1C: @ 2024C1C @@ -173,10 +173,10 @@ gUnknown_02024C1C: @ 2024C1C gUnknown_02024C2C: @ 2024C2C .space 0x8 -gUnknown_02024C34: @ 2024C34 +gLastUsedMove: @ 2024C34 .space 0x8 -gUnknown_02024C3C: @ 2024C3C +gMoveHitWith: @ 2024C3C .space 0x8 gUnknown_02024C44: @ 2024C44 @@ -185,70 +185,70 @@ gUnknown_02024C44: @ 2024C44 gUnknown_02024C4C: @ 2024C4C .space 0x8 -gUnknown_02024C54: @ 2024C54 +gLockedMove: @ 2024C54 .space 0x8 gUnknown_02024C5C: @ 2024C5C .space 0x4 -gUnknown_02024C60: @ 2024C60 +gChosenMovesByBanks: @ 2024C60 .space 0x8 gBattleMoveFlags: @ 2024C68 .space 0x4 -gUnknown_02024C6C: @ 2024C6C +gHitMarker: @ 2024C6C .space 0x4 gUnknown_02024C70: @ 2024C70 .space 0x4 -gUnknown_02024C74: @ 2024C74 +gTakenDmgBanks: @ 2024C74 .space 0x4 gUnknown_02024C78: @ 2024C78 .space 0x2 -gUnknown_02024C7A: @ 2024C7A +gSideAffecting: @ 2024C7A .space 0x6 -gUnknown_02024C80: @ 2024C80 +gSideTimer: @ 2024C80 .space 0x18 -gUnknown_02024C98: @ 2024C98 +gStatuses3: @ 2024C98 .space 0x10 -gUnknown_02024CA8: @ 2024CA8 +gDisableStructs: @ 2024CA8 .space 0x70 -gUnknown_02024D18: @ 2024D18 +gPauseCounterBattle: @ 2024D18 .space 0x2 -gUnknown_02024D1A: @ 2024D1A +gPaydayMoney: @ 2024D1A .space 0x2 -gUnknown_02024D1C: @ 2024D1C +gRandomTurnNumber: @ 2024D1C .space 0x2 -gUnknown_02024D1E: @ 2024D1E +gBattleCommunication: @ 2024D1E .space 0x1 gUnknown_02024D1F: @ 2024D1F .space 0x7 -gUnknown_02024D26: @ 2024D26 +gBattleOutcome: @ 2024D26 .space 0x2 -gUnknown_02024D28: @ 2024D28 +gProtectStructs: @ 2024D28 .space 0x40 -gUnknown_02024D68: @ 2024D68 +gSpecialStatuses: @ 2024D68 .space 0x50 gBattleWeather: @ 2024DB8 .space 0x4 -gUnknown_02024DBC: @ 2024DBC +gWishFutureKnock: @ 2024DBC .space 0x20 gUnknown_02024DDC: @ 2024DDC @@ -257,13 +257,13 @@ gUnknown_02024DDC: @ 2024DDC gUnknown_02024DE8: @ 2024DE8 .space 0x2 -gUnknown_02024DEA: @ 2024DEA +gSentPokesToOpponent: @ 2024DEA .space 0x2 -gUnknown_02024DEC: @ 2024DEC +gDynamicBasePower: @ 2024DEC .space 0x2 -gUnknown_02024DEE: @ 2024DEE +gExpShareExp: @ 2024DEE .space 0x2 gEnigmaBerries: @ 2024DF0 @@ -272,22 +272,22 @@ gEnigmaBerries: @ 2024DF0 gUnknown_02024DF8: @ 2024DF8 .space 0x68 -gUnknown_02024E60: @ 2024E60 +gActionSelectionCursor: @ 2024E60 .space 0x4 -gUnknown_02024E64: @ 2024E64 +gMoveSelectionCursor: @ 2024E64 .space 0x4 gUnknown_02024E68: @ 2024E68 .space 0x4 -gUnknown_02024E6C: @ 2024E6C +gBankInMenu: @ 2024E6C .space 0x1 -gUnknown_02024E6D: @ 2024E6D +gDoingBattleAnim: @ 2024E6D .space 0x3 -gUnknown_02024E70: @ 2024E70 +gPID_perBank: @ 2024E70 .space 0x10 gBattleMovePower: @ 2024E80 @@ -925,10 +925,10 @@ gUnknown_02039268: @ 2039268 gUnknown_0203926A: @ 203926A .space 0x2 -gUnknown_0203926C: @ 203926C +gAbilitiesPerBank: @ 203926C .space 0x4 -gSelectedOrderFromParty: @ 2039270 +gBufferedMoves: @ 2039270 .space 0x4 gUnknown_02039274: @ 2039274 @@ -976,7 +976,7 @@ gUnknown_02039310: @ 2039310 gUnknown_02039312: @ 2039312 .space 0x2 -gUnknown_02039314: @ 2039314 +gPcItemMenuOptionOrder: @ 2039314 .space 0x4 gUnknown_02039318: @ 2039318 |