diff options
author | Marcus Huderle <huderlem@gmail.com> | 2017-10-28 22:18:48 -0700 |
---|---|---|
committer | Marcus Huderle <huderlem@gmail.com> | 2017-10-28 22:18:48 -0700 |
commit | c677029e155aa5f0ef61de708588a36085fd36b4 (patch) | |
tree | a494df53e8de3fe675ad55d19b0341b129dd55ce | |
parent | 978ca50dad8de72a3940b5423fd5c3b87c13eb46 (diff) |
More battle_tower decomp
-rw-r--r-- | asm/battle_tower.s | 380 | ||||
-rw-r--r-- | include/battle_tower.h | 3 | ||||
-rw-r--r-- | include/global.h | 7 | ||||
-rw-r--r-- | include/tv.h | 1 | ||||
-rw-r--r-- | ld_script.txt | 1 | ||||
-rw-r--r-- | src/battle/battle_controller_opponent.c | 2 | ||||
-rw-r--r-- | src/battle/battle_message.c | 4 | ||||
-rw-r--r-- | src/battle_tower.c | 285 | ||||
-rw-r--r-- | src/de_rom_8040FE0.c | 2 | ||||
-rw-r--r-- | src/engine/mystery_event_script.c | 2 |
10 files changed, 297 insertions, 390 deletions
diff --git a/asm/battle_tower.s b/asm/battle_tower.s deleted file mode 100644 index 6d66a8849..000000000 --- a/asm/battle_tower.s +++ /dev/null @@ -1,380 +0,0 @@ - .include "constants/gba_constants.inc" - .include "constants/species_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start unref_sub_8135EE8 -unref_sub_8135EE8: @ 8135EE8 - push {r4-r7,lr} - ldr r7, _08135F0C @ =gSaveBlock2 + 0x498 - ldr r0, _08135F10 @ =0xfffffb68 - adds r2, r7, r0 - ldrb r0, [r2, 0x8] - cmp r0, 0 - beq _08135F18 - ldr r4, _08135F14 @ =gUnknown_08405E7E - ldrb r0, [r2, 0xA] - ldrb r1, [r2, 0xB] - adds r0, r1 - ldrb r1, [r2, 0xC] - adds r0, r1 - ldrb r1, [r2, 0xD] - adds r0, r1 - movs r1, 0x14 - b _08135F2A - .align 2, 0 -_08135F0C: .4byte gSaveBlock2 + 0x498 -_08135F10: .4byte 0xfffffb68 -_08135F14: .4byte gUnknown_08405E7E -_08135F18: - ldr r4, _08135FA8 @ =gUnknown_08405E60 - ldrb r0, [r2, 0xA] - ldrb r1, [r2, 0xB] - adds r0, r1 - ldrb r1, [r2, 0xC] - adds r0, r1 - ldrb r1, [r2, 0xD] - adds r0, r1 - movs r1, 0x1E -_08135F2A: - bl __umodsi3 - adds r0, r4 - ldrb r0, [r0] - strb r0, [r7, 0x1] - adds r0, r7, 0 - adds r0, 0xC - ldr r4, _08135FAC @ =gSaveBlock2 + 0xA - adds r1, r4, 0 - bl copy_word_to_mem - adds r0, r7, 0x4 - subs r4, 0xA - adds r1, r4, 0 - bl StringCopy8 - movs r0, 0x1 - strh r0, [r7, 0x2] - movs r5, 0x7 - movs r4, 0 - ldr r0, _08135FB0 @ =gSaveBlock1 - ldr r1, _08135FB4 @ =0x00002b28 - adds r6, r0, r1 - adds r3, r7, 0 - adds r3, 0x10 - adds r2, r7, 0 - adds r2, 0x28 - adds r1, r7, 0 - adds r1, 0x1C -_08135F64: - ldrh r0, [r6] - strh r0, [r3] - strh r5, [r1] - adds r0, r5, 0x6 - strh r0, [r2] - adds r5, 0x1 - adds r6, 0x2 - adds r3, 0x2 - adds r2, 0x2 - adds r1, 0x2 - adds r4, 0x1 - cmp r4, 0x5 - ble _08135F64 - movs r4, 0 -_08135F80: - movs r0, 0x64 - muls r0, r4 - ldr r1, _08135FB8 @ =gPlayerParty - adds r0, r1 - movs r1, 0x2C - muls r1, r4 - adds r1, 0x34 - adds r1, r7, r1 - bl sub_803AF78 - adds r4, 0x1 - cmp r4, 0x2 - ble _08135F80 - adds r0, r7, 0 - bl sub_8136088 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08135FA8: .4byte gUnknown_08405E60 -_08135FAC: .4byte gSaveBlock2 + 0xA -_08135FB0: .4byte gSaveBlock1 -_08135FB4: .4byte 0x00002b28 -_08135FB8: .4byte gPlayerParty - thumb_func_end unref_sub_8135EE8 - - thumb_func_start sub_8135FBC -sub_8135FBC: @ 8135FBC - ldr r1, _08135FCC @ =gTrainerClassToPicIndex - ldr r0, _08135FD0 @ =gSaveBlock2 - ldr r2, _08135FD4 @ =0x00000499 - adds r0, r2 - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08135FCC: .4byte gTrainerClassToPicIndex -_08135FD0: .4byte gSaveBlock2 -_08135FD4: .4byte 0x00000499 - thumb_func_end sub_8135FBC - - thumb_func_start sub_8135FD8 -sub_8135FD8: @ 8135FD8 - ldr r1, _08135FE8 @ =gTrainerClassToNameIndex - ldr r0, _08135FEC @ =gSaveBlock2 - ldr r2, _08135FF0 @ =0x00000499 - adds r0, r2 - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08135FE8: .4byte gTrainerClassToNameIndex -_08135FEC: .4byte gSaveBlock2 -_08135FF0: .4byte 0x00000499 - thumb_func_end sub_8135FD8 - - thumb_func_start sub_8135FF4 -sub_8135FF4: @ 8135FF4 - push {r4,lr} - adds r3, r0, 0 - movs r2, 0 - ldr r4, _08136018 @ =gSaveBlock2 + 0x49C -_08135FFC: - adds r0, r3, r2 - adds r1, r2, r4 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x6 - ble _08135FFC - adds r1, r3, r2 - movs r0, 0xFF - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08136018: .4byte gSaveBlock2 + 0x49C - thumb_func_end sub_8135FF4 - - thumb_func_start sub_813601C -sub_813601C: @ 813601C - push {r4,r5,lr} - ldr r1, _08136044 @ =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r5, _08136048 @ =gSaveBlock2 + 0x498 - movs r3, 0 - movs r2, 0 - adds r4, r1, 0 - adds r1, r5, 0 -_0813602E: - ldm r1!, {r0} - orrs r3, r0 - adds r2, 0x1 - cmp r2, 0x2D - bls _0813602E - cmp r3, 0 - bne _0813604C - movs r0, 0x1 - strh r0, [r4] - b _08136078 - .align 2, 0 -_08136044: .4byte gScriptResult -_08136048: .4byte gSaveBlock2 + 0x498 -_0813604C: - movs r3, 0 - movs r2, 0 - ldr r4, _08136080 @ =gSaveBlock2 - adds r1, r5, 0 -_08136054: - ldm r1!, {r0} - adds r3, r0 - adds r2, 0x1 - cmp r2, 0x2D - bls _08136054 - movs r1, 0xAA - lsls r1, 3 - adds r0, r4, r1 - ldr r0, [r0] - cmp r0, r3 - beq _08136078 - subs r1, 0xB8 - adds r0, r4, r1 - bl sub_81360AC - ldr r1, _08136084 @ =gScriptResult - movs r0, 0x1 - strh r0, [r1] -_08136078: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08136080: .4byte gSaveBlock2 -_08136084: .4byte gScriptResult - thumb_func_end sub_813601C - - thumb_func_start sub_8136088 -sub_8136088: @ 8136088 - push {r4,lr} - adds r2, r0, 0 - adds r2, 0xB8 - movs r1, 0 - str r1, [r2] - movs r3, 0 - adds r4, r0, 0 -_08136096: - ldr r0, [r2] - ldm r4!, {r1} - adds r0, r1 - str r0, [r2] - adds r3, 0x1 - cmp r3, 0x2D - bls _08136096 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8136088 - - thumb_func_start sub_81360AC -sub_81360AC: @ 81360AC - push {lr} - movs r1, 0 - movs r2, 0 -_081360B2: - stm r0!, {r2} - adds r1, 0x1 - cmp r1, 0x2E - bls _081360B2 - pop {r0} - bx r0 - thumb_func_end sub_81360AC - - thumb_func_start sub_81360C0 -sub_81360C0: @ 81360C0 - push {lr} - ldr r0, _081360CC @ =gSaveBlock2 + 0x4A8 - bl sub_813545C - pop {r0} - bx r0 - .align 2, 0 -_081360CC: .4byte gSaveBlock2 + 0x4A8 - thumb_func_end sub_81360C0 - - thumb_func_start sub_81360D0 -sub_81360D0: @ 81360D0 - push {lr} - ldr r0, _081360E4 @ =gBattleOutcome - ldrb r0, [r0] - cmp r0, 0x3 - bne _081360EC - ldr r1, _081360E8 @ =gStringVar4 - movs r0, 0xFF - strb r0, [r1] - b _08136102 - .align 2, 0 -_081360E4: .4byte gBattleOutcome -_081360E8: .4byte gStringVar4 -_081360EC: - cmp r0, 0x1 - bne _081360FC - ldr r0, _081360F8 @ =gSaveBlock2 + 0x4C0 - bl sub_813545C - b _08136102 - .align 2, 0 -_081360F8: .4byte gSaveBlock2 + 0x4C0 -_081360FC: - ldr r0, _08136108 @ =gSaveBlock2 + 0x4B4 - bl sub_813545C -_08136102: - pop {r0} - bx r0 - .align 2, 0 -_08136108: .4byte gSaveBlock2 + 0x4B4 - thumb_func_end sub_81360D0 - - thumb_func_start sub_813610C -sub_813610C: @ 813610C - push {r4,r5,lr} - movs r4, 0 - ldr r5, _0813612C @ =gSaveBlock2 + 0x556 -_08136112: - adds r0, r4, r5 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0813611E - bl sub_80BFD20 -_0813611E: - adds r4, 0x1 - cmp r4, 0x1 - ble _08136112 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0813612C: .4byte gSaveBlock2 + 0x556 - thumb_func_end sub_813610C - -.ifdef GERMAN - thumb_func_start de_sub_81364AC -de_sub_81364AC: @ 81364AC - push {lr} - ldr r2, _DE_081364C0 @ =gSaveBlock2 - ldr r0, _DE_081364C4 @ =0x00000564 - adds r1, r2, r0 - ldrb r0, [r1] - cmp r0, 0xC8 - bne _DE_081364CC - ldr r1, _DE_081364C8 @ =0x00000499 - adds r0, r2, r1 - b _DE_081364F2 - .align 2, 0 -_DE_081364C0: .4byte gSaveBlock2 -_DE_081364C4: .4byte 0x00000564 -_DE_081364C8: .4byte 0x00000499 -_DE_081364CC: - cmp r0, 0x63 - bhi _DE_081364E4 - ldr r2, _DE_081364E0 @ =gBattleTowerTrainers - ldrb r1, [r1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - b _DE_081364F2 - .align 2, 0 -_DE_081364E0: .4byte gBattleTowerTrainers -_DE_081364E4: - ldrb r0, [r1] - subs r0, 0x64 - movs r1, 0xA4 - muls r0, r1 - adds r0, r2 - adds r1, 0xA9 - adds r0, r1 -_DE_081364F2: - ldrb r0, [r0] - pop {r1} - bx r1 - thumb_func_end de_sub_81364AC - - thumb_func_start de_sub_81364F8 -de_sub_81364F8: @ 81364F8 - ldr r0, _DE_08136504 @ =gSaveBlock2 - ldr r1, _DE_08136508 @ =0x00000499 - adds r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_DE_08136504: .4byte gSaveBlock2 -_DE_08136508: .4byte 0x00000499 - thumb_func_end de_sub_81364F8 -.endif - - .align 2, 0 @ Don't pad with nop. diff --git a/include/battle_tower.h b/include/battle_tower.h index 2f3be2763..5f6cd3b87 100644 --- a/include/battle_tower.h +++ b/include/battle_tower.h @@ -92,5 +92,8 @@ void sub_813461C(u8 levelType); void sub_8134AC0(struct BattleTowerRecord *); u16 sub_8135D3C(u8); void sub_8135FF4(u8*); +u8 sub_8135FBC(void); +u8 sub_8135FD8(void); +void sub_813601C(void); #endif // GUARD_BATTLE_TOWER_H diff --git a/include/global.h b/include/global.h index 4cc5f6bcc..41cffe3c2 100644 --- a/include/global.h +++ b/include/global.h @@ -786,7 +786,12 @@ struct BattleTowerEReaderTrainer /*0x10*/struct { u16 easyChat[6]; } greeting; - /*0x1C*/u8 filler_1C[0x18]; + /*0x1C*/struct { + u16 easyChat[6]; + } farewellPlayerLost; + /*0x28*/struct { + u16 easyChat[6]; + } farewellPlayerWon; /*0x34*/struct UnknownPokemonStruct party[3]; /*0xB8*/u32 checksum; }; diff --git a/include/tv.h b/include/tv.h index 3243fff2c..a933e1779 100644 --- a/include/tv.h +++ b/include/tv.h @@ -107,5 +107,6 @@ void sub_80BE3BC(void); void UpdateTVShowsPerDay(u16); void sub_80C045C(); void sub_80BF088(u8, s32); +void sub_80BFD20(void); #endif // GUARD_TV_H diff --git a/ld_script.txt b/ld_script.txt index a77356dd0..16b09ed87 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -232,7 +232,6 @@ SECTIONS { src/field/decoration_inventory.o(.text); src/field/roamer.o(.text); src/battle_tower.o(.text); - asm/battle_tower.o(.text); src/field/use_pokeblock.o(.text); src/battle/battle_controller_wally.o(.text); src/field/player_pc.o(.text); diff --git a/src/battle/battle_controller_opponent.c b/src/battle/battle_controller_opponent.c index 72b56b962..b6ada3b7b 100644 --- a/src/battle/battle_controller_opponent.c +++ b/src/battle/battle_controller_opponent.c @@ -4,6 +4,7 @@ #include "data2.h" #include "battle_811DA74.h" #include "battle_anim_813F0F4.h" +#include "battle_tower.h" #include "link.h" #include "m4a.h" #include "main.h" @@ -76,7 +77,6 @@ extern u8 sub_8046400(); extern void sub_8032A08(); extern void sub_8043DB0(); extern void sub_8033160(void); -extern u8 sub_8135FBC(void); extern u8 get_trainer_class_pic_index(void); extern void sub_80313A0(struct Sprite *); extern void sub_8032B4C(void); diff --git a/src/battle/battle_message.c b/src/battle/battle_message.c index a3cc320ad..9df153e0a 100644 --- a/src/battle/battle_message.c +++ b/src/battle/battle_message.c @@ -1,6 +1,7 @@ #include "global.h" -#include "battle_message.h" #include "battle.h" +#include "battle_message.h" +#include "battle_tower.h" #include "item.h" #include "items.h" #include "pokemon.h" @@ -127,7 +128,6 @@ u8 GetBankSide(u8 bank); s32 sub_803FC34(u16); void get_trainer_name(u8* dst); u8 get_trainer_class_name_index(void); -u8 sub_8135FD8(void); u8 GetMultiplayerId(void); u8 GetBankByPlayerAI(u8 ID); u8 GetBankSide(u8 bank); diff --git a/src/battle_tower.c b/src/battle_tower.c index 2513322cc..1ed893fdf 100644 --- a/src/battle_tower.c +++ b/src/battle_tower.c @@ -22,6 +22,7 @@ #include "task.h" #include "text.h" #include "trainer.h" +#include "tv.h" #include "vars.h" #include "data/battle_tower/trainers.h" @@ -261,11 +262,11 @@ extern u8 gBattleOutcome; extern struct BattlePokemon gBattleMons[]; extern void ValidateBattleTowerRecordChecksums(void); -extern void sub_813601C(void); extern void sub_81349FC(u8); -extern void sub_81360AC(struct BattleTowerEReaderTrainer *); extern void sub_8135A3C(void); extern void sub_8135CFC(void); +static void ClearEReaderTrainer(struct BattleTowerEReaderTrainer *); +//static void SetEReaderTrainerChecksum(struct BattleTowerEReaderTrainer *ereaderTrainer); static void SetBattleTowerRecordChecksum(struct BattleTowerRecord *); static void ClearBattleTowerRecord(struct BattleTowerRecord *); @@ -2258,7 +2259,7 @@ void sub_8135668(void) case 6: if (gSaveBlock2.filler_A8.battleTowerTrainerId == 200) { - sub_81360AC(&gSaveBlock2.filler_A8.ereaderTrainer); + ClearEReaderTrainer(&gSaveBlock2.filler_A8.ereaderTrainer); } if (gSaveBlock2.filler_A8.totalBattleTowerWins < 9999) @@ -2757,3 +2758,281 @@ void sub_8135E50() IncrementGameStat(GAME_STAT_RECEIVED_RIBBONS); } } + +__attribute__((naked)) +void unref_sub_8135EE8() +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + ldr r7, _08135F0C @ =gSaveBlock2 + 0x498\n\ + ldr r0, _08135F10 @ =0xfffffb68\n\ + adds r2, r7, r0\n\ + ldrb r0, [r2, 0x8]\n\ + cmp r0, 0\n\ + beq _08135F18\n\ + ldr r4, _08135F14 @ =gUnknown_08405E7E\n\ + ldrb r0, [r2, 0xA]\n\ + ldrb r1, [r2, 0xB]\n\ + adds r0, r1\n\ + ldrb r1, [r2, 0xC]\n\ + adds r0, r1\n\ + ldrb r1, [r2, 0xD]\n\ + adds r0, r1\n\ + movs r1, 0x14\n\ + b _08135F2A\n\ + .align 2, 0\n\ +_08135F0C: .4byte gSaveBlock2 + 0x498\n\ +_08135F10: .4byte 0xfffffb68\n\ +_08135F14: .4byte gUnknown_08405E7E\n\ +_08135F18:\n\ + ldr r4, _08135FA8 @ =gUnknown_08405E60\n\ + ldrb r0, [r2, 0xA]\n\ + ldrb r1, [r2, 0xB]\n\ + adds r0, r1\n\ + ldrb r1, [r2, 0xC]\n\ + adds r0, r1\n\ + ldrb r1, [r2, 0xD]\n\ + adds r0, r1\n\ + movs r1, 0x1E\n\ +_08135F2A:\n\ + bl __umodsi3\n\ + adds r0, r4\n\ + ldrb r0, [r0]\n\ + strb r0, [r7, 0x1]\n\ + adds r0, r7, 0\n\ + adds r0, 0xC\n\ + ldr r4, _08135FAC @ =gSaveBlock2 + 0xA\n\ + adds r1, r4, 0\n\ + bl copy_word_to_mem\n\ + adds r0, r7, 0x4\n\ + subs r4, 0xA\n\ + adds r1, r4, 0\n\ + bl StringCopy8\n\ + movs r0, 0x1\n\ + strh r0, [r7, 0x2]\n\ + movs r5, 0x7\n\ + movs r4, 0\n\ + ldr r0, _08135FB0 @ =gSaveBlock1\n\ + ldr r1, _08135FB4 @ =0x00002b28\n\ + adds r6, r0, r1\n\ + adds r3, r7, 0\n\ + adds r3, 0x10\n\ + adds r2, r7, 0\n\ + adds r2, 0x28\n\ + adds r1, r7, 0\n\ + adds r1, 0x1C\n\ +_08135F64:\n\ + ldrh r0, [r6]\n\ + strh r0, [r3]\n\ + strh r5, [r1]\n\ + adds r0, r5, 0x6\n\ + strh r0, [r2]\n\ + adds r5, 0x1\n\ + adds r6, 0x2\n\ + adds r3, 0x2\n\ + adds r2, 0x2\n\ + adds r1, 0x2\n\ + adds r4, 0x1\n\ + cmp r4, 0x5\n\ + ble _08135F64\n\ + movs r4, 0\n\ +_08135F80:\n\ + movs r0, 0x64\n\ + muls r0, r4\n\ + ldr r1, _08135FB8 @ =gPlayerParty\n\ + adds r0, r1\n\ + movs r1, 0x2C\n\ + muls r1, r4\n\ + adds r1, 0x34\n\ + adds r1, r7, r1\n\ + bl sub_803AF78\n\ + adds r4, 0x1\n\ + cmp r4, 0x2\n\ + ble _08135F80\n\ + adds r0, r7, 0\n\ + bl SetEReaderTrainerChecksum\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ +_08135FA8: .4byte gUnknown_08405E60\n\ +_08135FAC: .4byte gSaveBlock2 + 0xA\n\ +_08135FB0: .4byte gSaveBlock1\n\ +_08135FB4: .4byte 0x00002b28\n\ +_08135FB8: .4byte gPlayerParty\n\ +.syntax divided\n"); +} + +u8 sub_8135FBC(void) +{ + return gTrainerClassToPicIndex[gSaveBlock2.filler_A8.ereaderTrainer.trainerClass]; +} + +u8 sub_8135FD8(void) +{ + return gTrainerClassToNameIndex[gSaveBlock2.filler_A8.ereaderTrainer.trainerClass]; +} + +void sub_8135FF4(u8 *text) +{ + s32 i; + + for (i = 0; i < 7; i++) + { + text[i] = gSaveBlock2.filler_A8.ereaderTrainer.name[i]; + } + + text[i] = 0xFF; +} + +void sub_813601C(void) +{ + u32 i; + u32 checksum; + struct BattleTowerEReaderTrainer *ereaderTrainer; + + gScriptResult = 0; + ereaderTrainer = &gSaveBlock2.filler_A8.ereaderTrainer; + + checksum = 0; + for (i = 0; i < sizeof(struct BattleTowerEReaderTrainer) / sizeof(u32) - 1; i++) + { + checksum |= ((u32 *)ereaderTrainer)[i]; + } + + if (checksum == 0) + { + gScriptResult = 1; + return; + } + + checksum = 0; + for (i = 0; i < sizeof(struct BattleTowerEReaderTrainer) / sizeof(u32) - 1; i++) + { + checksum += ((u32 *)ereaderTrainer)[i]; + } + + if (gSaveBlock2.filler_A8.ereaderTrainer.checksum != checksum) + { + ClearEReaderTrainer(&gSaveBlock2.filler_A8.ereaderTrainer); + gScriptResult = 1; + } +} + +void SetEReaderTrainerChecksum(struct BattleTowerEReaderTrainer *ereaderTrainer) +{ + s32 i; + + ereaderTrainer->checksum = 0; + for (i = 0; i < sizeof(struct BattleTowerEReaderTrainer) / sizeof(u32) - 1; i++) + { + ereaderTrainer->checksum += ((u32 *)ereaderTrainer)[i]; + } +} + +void ClearEReaderTrainer(struct BattleTowerEReaderTrainer *ereaderTrainer) +{ + u32 i; + + for (i = 0; i < sizeof(struct BattleTowerEReaderTrainer) / sizeof(u32); i++) + { + ((u32 *)ereaderTrainer)[i] = 0; + } +} + +void sub_81360C0(void) +{ + sub_813545C(gSaveBlock2.filler_A8.ereaderTrainer.greeting.easyChat); +} + +void sub_81360D0(void) +{ + if (gBattleOutcome == BATTLE_DREW) + { + gStringVar4[0] = 0xFF; + } + else if (gBattleOutcome == BATTLE_WON) + { + sub_813545C(gSaveBlock2.filler_A8.ereaderTrainer.farewellPlayerWon.easyChat); + } + else + { + sub_813545C(gSaveBlock2.filler_A8.ereaderTrainer.farewellPlayerLost.easyChat); + } +} + +void sub_813610C(void) +{ + s32 i; + + for (i = 0; i < 2; i++) + { + if (gSaveBlock2.filler_A8.var_4AE[i] == 1) + { + sub_80BFD20(); + } + } +} + + +#if GERMAN +__attribute__((naked)) +u8 de_sub_81364AC(void) +{ + asm(".syntax unified\n\ + push {lr}\n\ + ldr r2, _DE_081364C0 @ =gSaveBlock2\n\ + ldr r0, _DE_081364C4 @ =0x00000564\n\ + adds r1, r2, r0\n\ + ldrb r0, [r1]\n\ + cmp r0, 0xC8\n\ + bne _DE_081364CC\n\ + ldr r1, _DE_081364C8 @ =0x00000499\n\ + adds r0, r2, r1\n\ + b _DE_081364F2\n\ + .align 2, 0\n\ +_DE_081364C0: .4byte gSaveBlock2\n\ +_DE_081364C4: .4byte 0x00000564\n\ +_DE_081364C8: .4byte 0x00000499\n\ +_DE_081364CC:\n\ + cmp r0, 0x63\n\ + bhi _DE_081364E4\n\ + ldr r2, _DE_081364E0 @ =gBattleTowerTrainers\n\ + ldrb r1, [r1]\n\ + lsls r0, r1, 1\n\ + adds r0, r1\n\ + lsls r0, 3\n\ + adds r0, r2\n\ + b _DE_081364F2\n\ + .align 2, 0\n\ +_DE_081364E0: .4byte gBattleTowerTrainers\n\ +_DE_081364E4:\n\ + ldrb r0, [r1]\n\ + subs r0, 0x64\n\ + movs r1, 0xA4\n\ + muls r0, r1\n\ + adds r0, r2\n\ + adds r1, 0xA9\n\ + adds r0, r1\n\ +_DE_081364F2:\n\ + ldrb r0, [r0]\n\ + pop {r1}\n\ + bx r1\n\ +.syntax divided\n"); +} + +__attribute__((naked)) +u8 de_sub_81364F8(void) +{ + asm(".syntax unified\n\ + ldr r0, _DE_08136504 @ =gSaveBlock2\n\ + ldr r1, _DE_08136508 @ =0x00000499\n\ + adds r0, r1\n\ + ldrb r0, [r0]\n\ + bx lr\n\ + .align 2, 0\n\ +_DE_08136504: .4byte gSaveBlock2\n\ +_DE_08136508: .4byte 0x00000499\n\ +.syntax divided\n"); +} +#endif diff --git a/src/de_rom_8040FE0.c b/src/de_rom_8040FE0.c index eebcc1437..953871c8b 100644 --- a/src/de_rom_8040FE0.c +++ b/src/de_rom_8040FE0.c @@ -1,5 +1,6 @@ #include "global.h" #include "battle.h" +#include "battle_tower.h" #if GERMAN @@ -59,7 +60,6 @@ u8 *de_sub_804100C(u8 gender) { u8 de_sub_81364AC(void); u8 get_trainer_class_name_index(void); u8 de_sub_81364F8(void); -u8 sub_8135FD8(void); u8 *de_sub_8041024(s32 arg0, u32 arg1) { u8 nameIndex, trainerClass, gender; diff --git a/src/engine/mystery_event_script.c b/src/engine/mystery_event_script.c index 38ada0685..c07a23262 100644 --- a/src/engine/mystery_event_script.c +++ b/src/engine/mystery_event_script.c @@ -1,5 +1,6 @@ #include "global.h" #include "berry.h" +#include "battle_tower.h" #include "easy_chat.h" #include "event_data.h" #include "mail_data.h" @@ -27,7 +28,6 @@ #endif extern void party_compaction(void); -extern void sub_813601C(void); extern ScrCmdFunc gMysteryEventScriptCmdTable[]; extern ScrCmdFunc gMysteryEventScriptCmdTableEnd[]; |