From 933d63e1fd865ccca2ef8f75d6273d093a455900 Mon Sep 17 00:00:00 2001 From: yenatch Date: Sat, 20 Jan 2018 18:34:37 -0500 Subject: make special ids global --- data/specials.inc | 1 + 1 file changed, 1 insertion(+) diff --git a/data/specials.inc b/data/specials.inc index 6904a2b6b..73aa3e093 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -1,4 +1,5 @@ .macro def_special ptr +.global SPECIAL_\ptr .set SPECIAL_\ptr, __special__ .set __special__, __special__ + 1 .4byte \ptr -- cgit v1.2.3 From 9f1f9827a8a6057d86b63ccca34d96f5ae080c4f Mon Sep 17 00:00:00 2001 From: yenatch Date: Sun, 21 Jan 2018 13:51:28 -0500 Subject: fix shell scripts in install instructions --- INSTALL.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/INSTALL.md b/INSTALL.md index b852dd126..dfd992f2f 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -6,12 +6,12 @@ Make sure that there is an environment variable called DEVKITARM with the path o Then get the compiler from https://github.com/pret/agbcc and run the following commands. - build.sh - install.sh PATH_OF_POKERUBY_DIRECTORY + ./build.sh + ./install.sh PATH_OF_POKERUBY_DIRECTORY Then in the pokeruby directory, build the tools. - build_tools.sh + ./build_tools.sh Finally, build the rom. -- cgit v1.2.3 From 796d331df605f17b3e5d89d494d89ce7a907eaab Mon Sep 17 00:00:00 2001 From: Thomas Winwood Date: Mon, 22 Jan 2018 06:35:10 +0000 Subject: Use BATTLE_TYPE_DOUBLE constant in guard.c --- src/battle/anim/guard.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/battle/anim/guard.c b/src/battle/anim/guard.c index ab093eab1..01cf07e39 100644 --- a/src/battle/anim/guard.c +++ b/src/battle/anim/guard.c @@ -12,7 +12,7 @@ extern u16 gBattleTypeFlags; void sub_80D3014(struct Sprite *sprite) { - if ((gBattleTypeFlags & 1) && IsAnimBankSpriteVisible(gAnimBankAttacker ^ 2)) + if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && IsAnimBankSpriteVisible(gAnimBankAttacker ^ 2)) { sub_807A3FC(gAnimBankAttacker, 0, &sprite->pos1.x, &sprite->pos1.y); sprite->pos1.y += 40; -- cgit v1.2.3 From 4e98ffed3339ca9fd7c4f0915da707aa8b2417ef Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 22 Jan 2018 14:54:37 -0500 Subject: through sub_80C8604 --- asm/contest_link_80C857C.s | 133 -------------------------------------- include/ewram.h | 1 + ld_script.txt | 3 +- src/battle/contest_link_80C857C.c | 46 +++++++++++++ 4 files changed, 49 insertions(+), 134 deletions(-) diff --git a/asm/contest_link_80C857C.s b/asm/contest_link_80C857C.s index 6afcaec6d..c6958462c 100644 --- a/asm/contest_link_80C857C.s +++ b/asm/contest_link_80C857C.s @@ -5,139 +5,6 @@ .text - thumb_func_start sub_80C857C -sub_80C857C: @ 80C857C - push {r4,r5,lr} - adds r2, r0, 0 - lsls r4, r1, 16 - lsrs r4, 16 - ldr r5, _080C85A8 @ =gSharedMem + 0x1E000 - adds r0, r5, 0 - adds r1, r2, 0 - adds r2, r4, 0 - bl memcpy - bl bitmask_all_link_players_but_self - lsls r0, 24 - lsrs r0, 24 - adds r1, r5, 0 - adds r2, r4, 0 - bl SendBlock - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C85A8: .4byte gSharedMem + 0x1E000 - thumb_func_end sub_80C857C - - thumb_func_start sub_80C85AC -sub_80C85AC: @ 80C85AC - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x80 - lsls r1, 17 - lsls r1, r0 - lsrs r4, r1, 24 - bl GetBlockReceivedStatus - adds r1, r4, 0 - ands r1, r0 - cmp r1, 0 - beq _080C85D0 - adds r0, r4, 0 - bl ResetBlockReceivedFlag - movs r0, 0x1 - b _080C85D2 -_080C85D0: - movs r0, 0 -_080C85D2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80C85AC - - thumb_func_start sub_80C85D8 -sub_80C85D8: @ 80C85D8 - push {r4,lr} - movs r4, 0 -_080C85DC: - bl GetBlockReceivedStatus - lsls r0, 24 - lsrs r0, 24 - asrs r0, r4 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080C85F2 - movs r0, 0 - b _080C85FE -_080C85F2: - adds r4, 0x1 - cmp r4, 0x3 - ble _080C85DC - bl ResetBlockReceivedFlags - movs r0, 0x1 -_080C85FE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80C85D8 - -.ifdef ENGLISH - thumb_func_start sub_80C8604 -sub_80C8604: @ 80C8604 - push {r4-r6,lr} - lsls r0, 24 - lsrs r2, r0, 24 - movs r1, 0 - ldr r5, _080C8638 @ =gTasks - ldr r6, _080C863C @ =sub_80C8644 - ldr r4, _080C8640 @ =gBlockRecvBuffer - movs r3, 0xFF -_080C8614: - lsls r0, r1, 8 - adds r0, r4 - strh r3, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x3 - bls _080C8614 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r5 - movs r1, 0 - strh r1, [r0, 0x8] - str r6, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C8638: .4byte gTasks -_080C863C: .4byte sub_80C8644 -_080C8640: .4byte gBlockRecvBuffer - thumb_func_end sub_80C8604 -.else - thumb_func_start sub_80C8604 -sub_80C8604: @ 80C8604 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C861C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0x8] - ldr r0, _080C8620 @ =sub_80C8644 - str r0, [r1] - bx lr - .align 2, 0 -_080C861C: .4byte gTasks -_080C8620: .4byte sub_80C8644 - thumb_func_end sub_80C8604 -.endif - thumb_func_start sub_80C8644 sub_80C8644: @ 80C8644 lsls r0, 24 diff --git a/include/ewram.h b/include/ewram.h index 13e478ff1..2f1c2d1ab 100644 --- a/include/ewram.h +++ b/include/ewram.h @@ -261,6 +261,7 @@ extern u8 gSharedMem[]; #define eHallOfFame (struct HallOfFame *)(gSharedMem + 0x1E000) #define HALL_OF_FAME_SHEET_0 ((u8 *)(gSharedMem + 0x1E000)) #define ewram1E000_2 (const u8 *)(gSharedMem + 0x1E000) +#define eContestLinkSendBuffer gSharedMem + 0x1E000 #define HALL_OF_FAME_SHEET_1 ((u8 *)(gSharedMem + 0x1E800)) #define ewram_1f000 (*(struct DecoPCPointers *)(gSharedMem + 0x1f000)) #define ewramSavedPokeballsPocket ((struct ItemSlot *)(gSharedMem + 0x1F000)) // saved Pokeballs pocket (for Wally battle) diff --git a/ld_script.txt b/ld_script.txt index 5dcdf948d..411d282d1 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -169,8 +169,9 @@ SECTIONS { src/field/field_special_scene.o(.text); src/field/rotating_gate.o(.text); src/field/safari_zone.o(.text); - asm/contest_link_80C857C.o(.text); src/battle/contest_link_80C857C.o(.text); + asm/contest_link_80C857C.o(.text); + src/battle/contest_link_80C857C.o(.text_de); src/field/item_use.o(.text); src/battle/anim/powder.o(.text); src/battle/anim/orbs.o(.text); diff --git a/src/battle/contest_link_80C857C.c b/src/battle/contest_link_80C857C.c index 616a72d27..e0b24b9e1 100644 --- a/src/battle/contest_link_80C857C.c +++ b/src/battle/contest_link_80C857C.c @@ -1,6 +1,52 @@ #include "global.h" +#include "ewram.h" +#include "task.h" #include "link.h" +void sub_80C8644(u8 taskId); + +void sub_80C857C(const void *data, u16 size) +{ + memcpy(eContestLinkSendBuffer, data, size); + SendBlock(bitmask_all_link_players_but_self(), eContestLinkSendBuffer, size); +} + +bool8 sub_80C85AC(u8 who) +{ + u8 flag = 1 << who; + if (!(GetBlockReceivedStatus() & flag)) + return FALSE; + ResetBlockReceivedFlag(flag); + return TRUE; +} + +bool8 sub_80C85D8(void) +{ + int i; + + for (i = 0; i < MAX_LINK_PLAYERS; i++) + { + if (!((GetBlockReceivedStatus() >> i) & 1)) + return FALSE; + } + ResetBlockReceivedFlags(); + return TRUE; +} + +void sub_80C8604(u8 taskId) +{ +#if ENGLISH + u8 i; + + for (i = 0; i < 4; i++) + gBlockRecvBuffer[i][0] = 0xff; +#endif + gTasks[taskId].data[0] = 0; + gTasks[taskId].func = sub_80C8644; +} + +asm(".section .text_de"); + #if GERMAN void de_sub_80C9274(bool32 arg0) -- cgit v1.2.3 From fc504ce61b8698bc4777bbd37a8766b8c35a5814 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 22 Jan 2018 15:51:57 -0500 Subject: through (nonmatching) sub_80C86A0 --- asm/contest_link_80C857C.s | 139 ----------------------------------- include/contest.h | 3 + src/battle/contest_link_80C857C.c | 150 +++++++++++++++++++++++++++++++++++++- 3 files changed, 152 insertions(+), 140 deletions(-) diff --git a/asm/contest_link_80C857C.s b/asm/contest_link_80C857C.s index c6958462c..1ac60af96 100644 --- a/asm/contest_link_80C857C.s +++ b/asm/contest_link_80C857C.s @@ -5,145 +5,6 @@ .text - thumb_func_start sub_80C8644 -sub_80C8644: @ 80C8644 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C8658 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _080C865C @ =sub_80C8660 - str r0, [r1] - bx lr - .align 2, 0 -_080C8658: .4byte gTasks -_080C865C: .4byte sub_80C8660 - thumb_func_end sub_80C8644 - - thumb_func_start sub_80C8660 -sub_80C8660: @ 80C8660 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080C8694 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - beq _080C868E - bl GetMultiplayerId - ldr r1, _080C8698 @ =gContestPlayerMonIndex - strb r0, [r1] - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bne _080C868E - ldr r1, _080C869C @ =gIsLinkContest - movs r0, 0x1 - strb r0, [r1] - adds r0, r4, 0 - bl SwitchTaskToFollowupFunc -_080C868E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C8694: .4byte gReceivedRemoteLinkPlayers -_080C8698: .4byte gContestPlayerMonIndex -_080C869C: .4byte gIsLinkContest - thumb_func_end sub_80C8660 - - thumb_func_start sub_80C86A0 -sub_80C86A0: @ 80C86A0 - push {r4,r5,lr} - adds r4, r0, 0 -.ifdef ENGLISH - movs r5, 0x2 -.else - movs r5, 0x5 -.endif - ldrb r0, [r4] - cmp r0, 0xFC - bne _080C86B6 - ldrb r0, [r4, 0x1] - cmp r0, 0x15 - bne _080C86B6 -.ifdef ENGLISH - movs r0, 0x2 -.else - movs r0, 0x5 -.endif - b _080C872C -_080C86B6: - adds r0, r4, 0 - bl StringLength - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x5 - bhi _080C872A - ldrb r0, [r4] - cmp r0, 0xFF - beq _080C872A -_080C86CA: - ldrb r1, [r4] - adds r0, r1, 0 - adds r0, 0x45 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x33 - bls _080C871E - adds r0, r1, 0 - adds r0, 0x5F - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x9 - bls _080C871E - adds r0, r1, 0 - cmp r0, 0 - beq _080C871E - cmp r0, 0xAD - beq _080C871E - cmp r0, 0xB8 - beq _080C871E - cmp r0, 0xAB - beq _080C871E - cmp r0, 0xAC - beq _080C871E - cmp r0, 0xB5 - beq _080C871E - cmp r0, 0xB6 - beq _080C871E - cmp r0, 0xBA - beq _080C871E - cmp r0, 0xAE - beq _080C871E - cmp r0, 0xB0 - beq _080C871E - cmp r0, 0xB1 - beq _080C871E - cmp r0, 0xB2 - beq _080C871E - cmp r0, 0xB3 - beq _080C871E - cmp r0, 0xB1 - bne _080C8728 -_080C871E: - adds r4, 0x1 - ldrb r0, [r4] - cmp r0, 0xFF - bne _080C86CA - b _080C872A -_080C8728: - movs r5, 0x1 -_080C872A: - adds r0, r5, 0 -_080C872C: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80C86A0 - .ifdef ENGLISH thumb_func_start sub_80C8734 sub_80C8734: @ 80C8734 diff --git a/include/contest.h b/include/contest.h index 6b1f1f520..e8e68f0e6 100644 --- a/include/contest.h +++ b/include/contest.h @@ -271,4 +271,7 @@ struct UnknownContestStruct6 #define shared19338 ((struct UnknownContestStruct4 *)(gSharedMem + 0x19338)) #define shared19348 (*(struct UnknownContestStruct8 *)(gSharedMem + 0x19348)) +extern u8 gContestPlayerMonIndex; +extern u8 gIsLinkContest; + #endif // GUARD_CONTEST_H diff --git a/src/battle/contest_link_80C857C.c b/src/battle/contest_link_80C857C.c index e0b24b9e1..3360ecbb6 100644 --- a/src/battle/contest_link_80C857C.c +++ b/src/battle/contest_link_80C857C.c @@ -1,9 +1,13 @@ #include "global.h" #include "ewram.h" #include "task.h" +#include "contest.h" +#include "text.h" +#include "string_util.h" #include "link.h" -void sub_80C8644(u8 taskId); +static void sub_80C8644(u8 taskId); +static void sub_80C8660(u8 taskId); void sub_80C857C(const void *data, u16 size) { @@ -45,6 +49,150 @@ void sub_80C8604(u8 taskId) gTasks[taskId].func = sub_80C8644; } +static void sub_80C8644(u8 taskId) +{ + gTasks[taskId].func = sub_80C8660; +} + +static void sub_80C8660(u8 taskId) +{ + if (gReceivedRemoteLinkPlayers) + { + gContestPlayerMonIndex = GetMultiplayerId(); + if (GetLinkPlayerCount() == MAX_LINK_PLAYERS) + { + gIsLinkContest = TRUE; + SwitchTaskToFollowupFunc(taskId); + } + } +} + +#ifdef NONMATCHING +u8 sub_80C86A0(const u8 *string) +{ + u8 language = GAME_LANGUAGE; + if (string[0] == EXT_CTRL_CODE_BEGIN && string[1] == 0x15) + return language; + if (StringLength(string) > 5) + return language; + for (; *string != EOS; string++) + { + if (!((*string >= CHAR_A && *string <= CHAR_z) || + (*string >= CHAR_0 + 0 && *string <= CHAR_0 + 9) || + *string == CHAR_SPACE || + *string == CHAR_PERIOD || + *string == CHAR_COMMA || + *string == 0xAB || + *string == CHAR_QUESTION_MARK || + *string == CHAR_MALE || + *string == CHAR_FEMALE || + *string == CHAR_SLASH || + *string == CHAR_HYPHEN || + *string == CHAR_ELLIPSIS || + *string == 0xB1 || + *string == 0xB2 || + *string == 0xB3 || + *string == 0xB1 + )) + { + language = LANGUAGE_JAPANESE; + break; + } + } + return language; +} +#else +__attribute__((naked)) u8 sub_80C86A0(const u8 *string) +{ + asm_unified("\tpush {r4,r5,lr}\n" + "\tadds r4, r0, 0\n" + ".ifdef ENGLISH\n" + "\tmovs r5, 0x2\n" + ".else\n" + "\tmovs r5, 0x5\n" + ".endif\n" + "\tldrb r0, [r4]\n" + "\tcmp r0, 0xFC\n" + "\tbne _080C86B6\n" + "\tldrb r0, [r4, 0x1]\n" + "\tcmp r0, 0x15\n" + "\tbne _080C86B6\n" + ".ifdef ENGLISH\n" + "\tmovs r0, 0x2\n" + ".else\n" + "\tmovs r0, 0x5\n" + ".endif\n" + "\tb _080C872C\n" + "_080C86B6:\n" + "\tadds r0, r4, 0\n" + "\tbl StringLength\n" + "\tlsls r0, 16\n" + "\tlsrs r0, 16\n" + "\tcmp r0, 0x5\n" + "\tbhi _080C872A\n" + "\tldrb r0, [r4]\n" + "\tcmp r0, 0xFF\n" + "\tbeq _080C872A\n" + "_080C86CA:\n" + "\tldrb r1, [r4]\n" + "\tadds r0, r1, 0\n" + "\tadds r0, 0x45\n" + "\tlsls r0, 24\n" + "\tlsrs r0, 24\n" + "\tcmp r0, 0x33\n" + "\tbls _080C871E\n" + "\tadds r0, r1, 0\n" + "\tadds r0, 0x5F\n" + "\tlsls r0, 24\n" + "\tlsrs r0, 24\n" + "\tcmp r0, 0x9\n" + "\tbls _080C871E\n" + "\tadds r0, r1, 0\n" + "\tcmp r0, 0\n" + "\tbeq _080C871E\n" + "\tcmp r0, 0xAD\n" + "\tbeq _080C871E\n" + "\tcmp r0, 0xB8\n" + "\tbeq _080C871E\n" + "\tcmp r0, 0xAB\n" + "\tbeq _080C871E\n" + "\tcmp r0, 0xAC\n" + "\tbeq _080C871E\n" + "\tcmp r0, 0xB5\n" + "\tbeq _080C871E\n" + "\tcmp r0, 0xB6\n" + "\tbeq _080C871E\n" + "\tcmp r0, 0xBA\n" + "\tbeq _080C871E\n" + "\tcmp r0, 0xAE\n" + "\tbeq _080C871E\n" + "\tcmp r0, 0xB0\n" + "\tbeq _080C871E\n" + "\tcmp r0, 0xB1\n" + "\tbeq _080C871E\n" + "\tcmp r0, 0xB2\n" + "\tbeq _080C871E\n" + "\tcmp r0, 0xB3\n" + "\tbeq _080C871E\n" + "\tcmp r0, 0xB1\n" + "\tbne _080C8728\n" + "_080C871E:\n" + "\tadds r4, 0x1\n" + "\tldrb r0, [r4]\n" + "\tcmp r0, 0xFF\n" + "\tbne _080C86CA\n" + "\tb _080C872A\n" + "_080C8728:\n" + "\tmovs r5, 0x1\n" + "_080C872A:\n" + "\tadds r0, r5, 0\n" + "_080C872C:\n" + "\tpop {r4,r5}\n" + "\tpop {r1}\n" + "\tbx r1"); +} +#endif + asm(".section .text_de"); #if GERMAN -- cgit v1.2.3 From b2ea9aec023be26a83853ca53134ce78b95ac2e6 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 22 Jan 2018 17:33:02 -0500 Subject: sub_80C8734 --- asm/contest_link_80C857C.s | 409 -------------------------------------- src/battle/contest_link_80C857C.c | 104 ++++++++++ 2 files changed, 104 insertions(+), 409 deletions(-) diff --git a/asm/contest_link_80C857C.s b/asm/contest_link_80C857C.s index 1ac60af96..2fdd4bbcd 100644 --- a/asm/contest_link_80C857C.s +++ b/asm/contest_link_80C857C.s @@ -5,415 +5,6 @@ .text -.ifdef ENGLISH - thumb_func_start sub_80C8734 -sub_80C8734: @ 80C8734 - 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 r9, r0 - ldr r1, _080C8768 @ =gTasks - lsls r5, r0, 2 - adds r0, r5, r0 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080C876C - cmp r0, 0x1 - beq _080C87D0 - movs r0, 0 - strh r0, [r4, 0x8] - mov r0, r9 - bl SwitchTaskToFollowupFunc - b _080C8896 - .align 2, 0 -_080C8768: .4byte gTasks -_080C876C: - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - bne _080C87A8 - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - bne _080C8782 - b _080C8896 -_080C8782: - ldr r0, _080C879C @ =gBlockSendBuffer - ldr r1, _080C87A0 @ =gContestPlayerMonIndex - ldrb r1, [r1] - lsls r1, 6 - ldr r2, _080C87A4 @ =gContestMons - adds r1, r2 - movs r2, 0x40 - bl memcpy - movs r0, 0x2 - bl sub_8007E9C - b _080C87BA - .align 2, 0 -_080C879C: .4byte gBlockSendBuffer -_080C87A0: .4byte gContestPlayerMonIndex -_080C87A4: .4byte gContestMons -_080C87A8: - ldr r0, _080C87C4 @ =gBlockSendBuffer - ldr r1, _080C87C8 @ =gContestPlayerMonIndex - ldrb r1, [r1] - lsls r1, 6 - ldr r2, _080C87CC @ =gContestMons - adds r1, r2 - movs r2, 0x40 - bl memcpy -_080C87BA: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080C8896 - .align 2, 0 -_080C87C4: .4byte gBlockSendBuffer -_080C87C8: .4byte gContestPlayerMonIndex -_080C87CC: .4byte gContestMons -_080C87D0: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8896 - movs r7, 0 - str r5, [sp] - ldr r0, _080C8818 @ =gContestMons - ldr r6, _080C881C @ =gLinkPlayers - movs r5, 0 - mov r10, r0 - movs r2, 0xFF - mov r8, r2 -_080C87EA: - lsls r1, r7, 8 - ldr r0, _080C8820 @ =gBlockRecvBuffer - adds r1, r0 - mov r0, r10 - movs r2, 0x40 - bl memcpy - ldr r0, _080C8824 @ =gContestMons + 0x2 - adds r4, r5, r0 - ldrh r0, [r6, 0x1A] - cmp r0, 0x1 - bne _080C8828 - adds r0, r4, 0 - bl sub_80C86A0 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl ConvertInternationalString - b _080C883E - .align 2, 0 -_080C8818: .4byte gContestMons -_080C881C: .4byte gLinkPlayers -_080C8820: .4byte gBlockRecvBuffer -_080C8824: .4byte gContestMons + 0x2 -_080C8828: - ldrb r0, [r4, 0xA] - cmp r0, 0xFC - bne _080C8838 - adds r0, r4, 0 - movs r1, 0x1 - bl ConvertInternationalString - b _080C883E -_080C8838: - strb r0, [r4, 0x5] - mov r1, r8 - strb r1, [r4, 0xA] -_080C883E: - ldr r0, _080C886C @ =gContestMons + 0xD - adds r4, r5, r0 - ldrh r0, [r6, 0x1A] - cmp r0, 0x1 - bne _080C8870 - mov r2, r8 - strb r2, [r4, 0x7] - ldrb r0, [r4, 0x4] - strb r0, [r4, 0x6] - ldrb r0, [r4, 0x3] - strb r0, [r4, 0x5] - ldrb r0, [r4, 0x2] - strb r0, [r4, 0x4] - ldrb r0, [r4, 0x1] - strb r0, [r4, 0x3] - ldrb r0, [r4] - strb r0, [r4, 0x2] - movs r0, 0x15 - strb r0, [r4, 0x1] - movs r0, 0xFC - strb r0, [r4] - b _080C8878 - .align 2, 0 -_080C886C: .4byte gContestMons + 0xD -_080C8870: - ldrb r0, [r4, 0x7] - strb r0, [r4, 0x5] - mov r0, r8 - strb r0, [r4, 0x7] -_080C8878: - adds r6, 0x1C - adds r5, 0x40 - movs r1, 0x40 - add r10, r1 - adds r7, 0x1 - cmp r7, 0x3 - ble _080C87EA - ldr r0, _080C88A8 @ =gTasks - ldr r1, [sp] - add r1, r9 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_080C8896: - 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 -_080C88A8: .4byte gTasks - thumb_func_end sub_80C8734 -.else - thumb_func_start sub_80C8734 -sub_80C8734: @ 80C8734 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080C8760 @ =gTasks - lsls r4, r5, 2 - adds r0, r4, r5 - lsls r0, 3 - adds r2, r0, r1 - movs r3, 0x8 - ldrsh r0, [r2, r3] - cmp r0, 0x1 - beq _080C8800 - cmp r0, 0x1 - bgt _080C8764 - cmp r0, 0 - beq _080C8770 - b _080C88E0 - .align 2, 0 -_080C8760: .4byte gTasks -_080C8764: - cmp r0, 0x2 - bne _080C876A - b _080C88D4_B -_080C876A: - cmp r0, 0x8 - beq _080C8770 - b _080C88E0 -_080C8770: - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - bne _080C87D4 - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - bne _080C8786 - b _080C88EE -_080C8786: - ldr r0, _080C87A0 @ =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 - bne _080C87A4 - movs r0, 0x3 - strh r0, [r4, 0x8] - b _080C88EE - .align 2, 0 -_080C87A0: .4byte gTasks -_080C87A4: - ldr r0, _080C87C8 @ =gBlockSendBuffer - ldr r1, _080C87CC @ =gContestPlayerMonIndex - ldrb r1, [r1] - lsls r1, 6 - ldr r2, _080C87D0 @ =gContestMons - adds r1, r2 - movs r2, 0x40 - bl memcpy - movs r0, 0 - bl de_sub_80C9274 - movs r0, 0x2 - bl sub_8007E9C - movs r0, 0x1 - strh r0, [r4, 0x8] - b _080C88EE - .align 2, 0 -_080C87C8: .4byte gBlockSendBuffer -_080C87CC: .4byte gContestPlayerMonIndex -_080C87D0: .4byte gContestMons -_080C87D4: - ldr r0, _080C87F0 @ =gBlockSendBuffer - ldr r1, _080C87F4 @ =gContestPlayerMonIndex - ldrb r1, [r1] - lsls r1, 6 - ldr r2, _080C87F8 @ =gContestMons - adds r1, r2 - movs r2, 0x40 - bl memcpy - movs r0, 0 - bl de_sub_80C9294 - ldr r1, _080C87FC @ =gTasks - b _080C88E0 - .align 2, 0 -_080C87F0: .4byte gBlockSendBuffer -_080C87F4: .4byte gContestPlayerMonIndex -_080C87F8: .4byte gContestMons -_080C87FC: .4byte gTasks -_080C8800: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C88EE - movs r2, 0 - mov r8, r2 - str r4, [sp] - ldr r0, _080C884C @ =gContestMons - ldr r7, _080C8850 @ =gLinkPlayers - movs r6, 0 - mov r10, r0 - movs r3, 0xFF - mov r9, r3 -_080C881C: - mov r0, r8 - lsls r1, r0, 8 - ldr r0, _080C8854 @ =gBlockRecvBuffer - adds r1, r0 - mov r0, r10 - movs r2, 0x40 - bl memcpy - ldr r1, _080C8858 @ =gContestMons + 0x2 - adds r4, r6, r1 - ldrh r0, [r7, 0x1A] - cmp r0, 0x1 - bne _080C885C - adds r0, r4, 0 - bl sub_80C86A0 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl ConvertInternationalString - b _080C8872 - .align 2, 0 -_080C884C: .4byte gContestMons -_080C8850: .4byte gLinkPlayers -_080C8854: .4byte gBlockRecvBuffer -_080C8858: .4byte gContestMons + 0x2 -_080C885C: - ldrb r0, [r4, 0xA] - cmp r0, 0xFC - bne _080C886C - adds r0, r4, 0 - movs r1, 0x1 - bl ConvertInternationalString - b _080C8872 -_080C886C: - strb r0, [r4, 0x5] - mov r2, r9 - strb r2, [r4, 0xA] -_080C8872: - ldr r0, _080C88A0 @ =gContestMons + 0xD - adds r4, r6, r0 - ldrh r0, [r7, 0x1A] - cmp r0, 0x1 - bne _080C88A4 - mov r3, r9 - strb r3, [r4, 0x7] - ldrb r0, [r4, 0x4] - strb r0, [r4, 0x6] - ldrb r0, [r4, 0x3] - strb r0, [r4, 0x5] - ldrb r0, [r4, 0x2] - strb r0, [r4, 0x4] - ldrb r0, [r4, 0x1] - strb r0, [r4, 0x3] - ldrb r0, [r4] - strb r0, [r4, 0x2] - movs r0, 0x15 - strb r0, [r4, 0x1] - movs r0, 0xFC - strb r0, [r4] - b _080C88AC - .align 2, 0 -_080C88A0: .4byte gContestMons + 0xD -_080C88A4: - ldrb r0, [r4, 0x7] - strb r0, [r4, 0x5] - mov r0, r9 - strb r0, [r4, 0x7] -_080C88AC: - adds r7, 0x1C - adds r6, 0x40 - movs r1, 0x40 - add r10, r1 - movs r2, 0x1 - add r8, r2 - mov r3, r8 - cmp r3, 0x3 - ble _080C881C - ldr r0, _080C88D0 @ =gTasks - ldr r2, [sp] - adds r1, r2, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _080C88EE - .align 2, 0 -_080C88D0: .4byte gTasks -_080C88D4_B: - movs r0, 0 - strh r0, [r2, 0x8] - adds r0, r5, 0 - bl SwitchTaskToFollowupFunc - b _080C88EE -_080C88E0: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] -_080C88EE: - 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_80C8734 -.endif - thumb_func_start sub_80C88AC sub_80C88AC: @ 80C88AC push {r4,r5,lr} diff --git a/src/battle/contest_link_80C857C.c b/src/battle/contest_link_80C857C.c index 3360ecbb6..b86e7bb9c 100644 --- a/src/battle/contest_link_80C857C.c +++ b/src/battle/contest_link_80C857C.c @@ -8,6 +8,10 @@ static void sub_80C8644(u8 taskId); static void sub_80C8660(u8 taskId); +#if GERMAN +void de_sub_80C9274(bool32 arg0); +void de_sub_80C9294(bool32 arg0); +#endif void sub_80C857C(const void *data, u16 size) { @@ -193,6 +197,106 @@ __attribute__((naked)) u8 sub_80C86A0(const u8 *string) } #endif +void sub_80C8734(u8 taskId) +{ + int i; + u8 *name; + + switch (gTasks[taskId].data[0]) { +#if ENGLISH + default: + gTasks[taskId].data[0] = 0; + SwitchTaskToFollowupFunc(taskId); + break; +#elif GERMAN + case 8: +#endif + case 0: + if (GetMultiplayerId() == 0) { + if (sub_8007ECC()) { +#if GERMAN + if (gTasks[taskId].data[0] == 0) + { + gTasks[taskId].data[0] = 3; + } + else + { +#endif + memcpy(gBlockSendBuffer, gContestMons + gContestPlayerMonIndex, sizeof(struct ContestPokemon)); +#if GERMAN + de_sub_80C9274(FALSE); +#endif + sub_8007E9C(2); +#if GERMAN + gTasks[taskId].data[0] = 1; + } +#else + gTasks[taskId].data[0]++; +#endif + } + } + else + { + memcpy(gBlockSendBuffer, gContestMons + gContestPlayerMonIndex, sizeof(struct ContestPokemon)); +#if GERMAN + de_sub_80C9294(FALSE); +#endif + gTasks[taskId].data[0]++; + } + break; + case 1: + if (sub_80C85D8()) + { + for (i = 0; i < MAX_LINK_PLAYERS; i++) + { + memcpy(gContestMons + i, gBlockRecvBuffer[i], sizeof(struct ContestPokemon)); + name = gContestMons[i].nickname; + if (gLinkPlayers[i].language == LANGUAGE_JAPANESE) + { + ConvertInternationalString(name, sub_80C86A0(name)); + } + else if (name[10] == EXT_CTRL_CODE_BEGIN) + { + ConvertInternationalString(name, LANGUAGE_JAPANESE); + } else + { + name[5] = name[10]; + name[10] = EOS; + } + name = gContestMons[i].trainerName; + if (gLinkPlayers[i].language == LANGUAGE_JAPANESE) + { + name[7] = EOS; + name[6] = name[4]; + name[5] = name[3]; + name[4] = name[2]; + name[3] = name[1]; + name[2] = name[0]; + name[1] = 0x15; + name[0] = EXT_CTRL_CODE_BEGIN; + } + else + { + name[5] = name[7]; + name[7] = EOS; + } + } + gTasks[taskId].data[0]++; + } + break; +#if GERMAN + case 2: + gTasks[taskId].data[0] = 0; + SwitchTaskToFollowupFunc(taskId); + break; + default: + gTasks[taskId].data[0]++; + break; +#endif + } +} + + asm(".section .text_de"); #if GERMAN -- cgit v1.2.3 From 84769240d2002281c7bc274f18aab76fbe908483 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 22 Jan 2018 18:04:04 -0500 Subject: sub_80C88AC --- asm/contest_link_80C857C.s | 67 --------------------------------------- include/contest.h | 1 + src/battle/contest_link_80C857C.c | 33 +++++++++++++++++++ src/contest.c | 6 ++-- src/script_pokemon_util_80C4BF0.c | 6 ++-- sym_common.txt | 2 +- 6 files changed, 41 insertions(+), 74 deletions(-) diff --git a/asm/contest_link_80C857C.s b/asm/contest_link_80C857C.s index 2fdd4bbcd..e73efe74d 100644 --- a/asm/contest_link_80C857C.s +++ b/asm/contest_link_80C857C.s @@ -5,73 +5,6 @@ .text - thumb_func_start sub_80C88AC -sub_80C88AC: @ 80C88AC - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080C88D4 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080C88D8 - cmp r0, 0x1 - beq _080C88FC - movs r0, 0 - strh r0, [r5, 0x8] - adds r0, r2, 0 - bl SwitchTaskToFollowupFunc - b _080C8924 - .align 2, 0 -_080C88D4: .4byte gTasks -_080C88D8: - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - bne _080C891E - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8924 - ldr r0, _080C88F8 @ =gRngValue - movs r1, 0x4 - bl sub_80C857C - b _080C891E - .align 2, 0 -_080C88F8: .4byte gRngValue -_080C88FC: - movs r0, 0 - bl sub_80C85AC - lsls r0, 24 - cmp r0, 0 - beq _080C8924 - ldr r0, _080C892C @ =gRngValue - ldr r4, _080C8930 @ =gBlockRecvBuffer - adds r1, r4, 0 - movs r2, 0x4 - bl memcpy - ldr r0, _080C8934 @ =gUnknown_03005D28 - adds r1, r4, 0 - movs r2, 0x4 - bl memcpy -_080C891E: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] -_080C8924: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C892C: .4byte gRngValue -_080C8930: .4byte gBlockRecvBuffer -_080C8934: .4byte gUnknown_03005D28 - thumb_func_end sub_80C88AC - .ifdef ENGLISH thumb_func_start sub_80C8938 sub_80C8938: @ 80C8938 diff --git a/include/contest.h b/include/contest.h index e8e68f0e6..dfa0e38da 100644 --- a/include/contest.h +++ b/include/contest.h @@ -273,5 +273,6 @@ struct UnknownContestStruct6 extern u8 gContestPlayerMonIndex; extern u8 gIsLinkContest; +extern u32 gContestRngValue; #endif // GUARD_CONTEST_H diff --git a/src/battle/contest_link_80C857C.c b/src/battle/contest_link_80C857C.c index b86e7bb9c..937193172 100644 --- a/src/battle/contest_link_80C857C.c +++ b/src/battle/contest_link_80C857C.c @@ -1,5 +1,6 @@ #include "global.h" #include "ewram.h" +#include "random.h" #include "task.h" #include "contest.h" #include "text.h" @@ -296,6 +297,38 @@ void sub_80C8734(u8 taskId) } } +void sub_80C88AC(u8 taskId) +{ + switch (gTasks[taskId].data[0]) + { + default: + gTasks[taskId].data[0] = 0; + SwitchTaskToFollowupFunc(taskId); + break; + case 0: + if (GetMultiplayerId() == 0) + { + if (sub_8007ECC()) + { + sub_80C857C(&gRngValue, sizeof(u32)); + gTasks[taskId].data[0]++; + } + } + else + { + gTasks[taskId].data[0]++; + } + break; + case 1: + if (sub_80C85AC(0)) + { + memcpy(&gRngValue, gBlockRecvBuffer[0], sizeof(u32)); + memcpy(&gContestRngValue, gBlockRecvBuffer[0], sizeof(u32)); + gTasks[taskId].data[0]++; + } + break; + } +} asm(".section .text_de"); diff --git a/src/contest.c b/src/contest.c index 93d1a8efc..ce29d80b0 100644 --- a/src/contest.c +++ b/src/contest.c @@ -59,7 +59,7 @@ extern u16 gBattle_BG0_Y; extern u16 gBattle_BG0_X; extern u16 gBattle_BG1_X; extern u16 gBattle_WIN0H; -extern u32 gUnknown_03005D28; // saved RNG value +extern u32 gContestRngValue; // saved RNG value extern struct SpriteTemplate gUnknown_02024E8C; @@ -495,7 +495,7 @@ void sub_80AB6B4(u8 taskId) GetMultiplayerId(); // unused return value DestroyTask(taskId); gTasks[sContest.mainTaskId].func = sub_80AB960; - gRngValue = gUnknown_03005D28; + gRngValue = gContestRngValue; } } @@ -1812,7 +1812,7 @@ void sub_80ADDA4(u8 taskId) sub_80AF668(); sub_80AF138(); sub_80BE23C(sContestantStatus[gContestPlayerMonIndex].prevMove); - gUnknown_03005D28 = gRngValue; + gContestRngValue = gRngValue; StringExpandPlaceholders(gStringVar4, gUnknown_083CB02C); Text_InitWindow8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15); gTasks[taskId].data[2] = 0; diff --git a/src/script_pokemon_util_80C4BF0.c b/src/script_pokemon_util_80C4BF0.c index f991297ab..e51bc3522 100644 --- a/src/script_pokemon_util_80C4BF0.c +++ b/src/script_pokemon_util_80C4BF0.c @@ -45,7 +45,7 @@ extern u16 gSpecialVar_ContestCategory; extern u16 gSpecialVar_ContestRank; extern u16 gSpecialVar_Result; -extern u32 gUnknown_03005D28; +extern u32 gContestRngValue; extern u8 gUnknown_02038694; extern u8 gUnknown_0203856C; @@ -373,8 +373,8 @@ void ScriptRandom(void) if(gIsLinkContest & 1) { - gUnknown_03005D28 = 1103515245 * gUnknown_03005D28 + 24691; - random = gUnknown_03005D28 >> 16; + gContestRngValue = 1103515245 * gContestRngValue + 24691; + random = gContestRngValue >> 16; scriptPtr = &gSpecialVar_Result; } else diff --git a/sym_common.txt b/sym_common.txt index 64e87c046..0bc9fd80c 100644 --- a/sym_common.txt +++ b/sym_common.txt @@ -213,7 +213,7 @@ gFieldItemUseCallback = .; gBagPocketScrollStates = .; . += 0x14; SYMBOL(gCurrentBagPocketItemSlots, 4) -SYMBOL(gUnknown_03005D28, 4) +SYMBOL(gContestRngValue, 4) // record_mixing.c SYMBOL(gUnknown_03005D2C, 4) -- cgit v1.2.3 From 9474c491c070fe38e89f7b3848a5820c763fe045 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 22 Jan 2018 19:03:23 -0500 Subject: sub_80C8938 --- asm/contest_link_80C857C.s | 210 -------------------------------------- src/battle/contest_link_80C857C.c | 68 ++++++++++++ 2 files changed, 68 insertions(+), 210 deletions(-) diff --git a/asm/contest_link_80C857C.s b/asm/contest_link_80C857C.s index e73efe74d..6dc96e85d 100644 --- a/asm/contest_link_80C857C.s +++ b/asm/contest_link_80C857C.s @@ -5,216 +5,6 @@ .text -.ifdef ENGLISH - thumb_func_start sub_80C8938 -sub_80C8938: @ 80C8938 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080C8968 @ =gTasks - mov r8, r0 - lsls r6, r5, 2 - adds r0, r6, r5 - lsls r7, r0, 3 - mov r1, r8 - adds r4, r7, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080C896C - cmp r0, 0x1 - beq _080C8998 - movs r0, 0 - strh r0, [r4, 0x8] - adds r0, r5, 0 - bl SwitchTaskToFollowupFunc - b _080C89CE - .align 2, 0 -_080C8968: .4byte gTasks -_080C896C: - ldr r1, _080C8994 @ =gBlockSendBuffer - ldrh r0, [r4, 0x1A] - strb r0, [r1] - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - bne _080C898C - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C89CE - movs r0, 0x2 - bl sub_8007E9C -_080C898C: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080C89CE - .align 2, 0 -_080C8994: .4byte gBlockSendBuffer -_080C8998: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C89CE - movs r3, 0 - mov r12, r8 - adds r1, r6, 0 - ldr r4, _080C89D8 @ =gBlockRecvBuffer - mov r0, r12 - adds r0, 0xA - adds r2, r7, r0 - movs r6, 0x80 - lsls r6, 1 -_080C89B4: - ldrh r0, [r4] - strh r0, [r2] - adds r4, r6 - adds r2, 0x2 - adds r3, 0x1 - cmp r3, 0x3 - ble _080C89B4 - adds r1, r5 - lsls r1, 3 - add r1, r12 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_080C89CE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C89D8: .4byte gBlockRecvBuffer - thumb_func_end sub_80C8938 -.else - thumb_func_start sub_80C8938 -sub_80C8938: @ 80C8938 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080C8960 @ =gTasks - lsls r5, r4, 2 - adds r0, r5, r4 - lsls r6, r0, 3 - adds r2, r6, r1 - movs r3, 0x8 - ldrsh r0, [r2, r3] - mov r8, r1 - cmp r0, 0x1 - beq _080C89C4 - cmp r0, 0x1 - bgt _080C8964 - cmp r0, 0 - beq _080C896C - b _080C8A0C - .align 2, 0 -_080C8960: .4byte gTasks -_080C8964: - cmp r0, 0x2 - beq _080C8A00 - cmp r0, 0x8 - bne _080C8A0C -_080C896C: - ldr r1, _080C89A0 @ =gBlockSendBuffer - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - mov r2, r8 - adds r4, r0, r2 - ldrh r0, [r4, 0x1A] - strb r0, [r1] - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - bne _080C89B6 - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8A1A - movs r3, 0x8 - ldrsh r0, [r4, r3] - cmp r0, 0 - bne _080C89A4 - movs r0, 0x3 - strh r0, [r4, 0x8] - b _080C8A1A - .align 2, 0 -_080C89A0: .4byte gBlockSendBuffer -_080C89A4: - movs r0, 0x1 - bl de_sub_80C9274 - movs r0, 0x2 - bl sub_8007E9C - movs r0, 0x1 - strh r0, [r4, 0x8] - b _080C8A1A -_080C89B6: - movs r0, 0x1 - bl de_sub_80C9294 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080C8A1A -_080C89C4: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8A1A - movs r3, 0 - adds r7, r5, 0 - ldr r1, _080C89FC @ =gBlockRecvBuffer - mov r0, r8 - adds r0, 0xA - adds r2, r6, r0 - movs r5, 0x80 - lsls r5, 1 -_080C89DE: - ldrh r0, [r1] - strh r0, [r2] - adds r1, r5 - adds r2, 0x2 - adds r3, 0x1 - cmp r3, 0x3 - ble _080C89DE - adds r1, r7, r4 - lsls r1, 3 - add r1, r8 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _080C8A1A - .align 2, 0 -_080C89FC: .4byte gBlockRecvBuffer -_080C8A00: - movs r0, 0 - strh r0, [r2, 0x8] - adds r0, r4, 0 - bl SwitchTaskToFollowupFunc - b _080C8A1A -_080C8A0C: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - add r0, r8 - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] -_080C8A1A: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80C8938 -.endif - thumb_func_start sub_80C89DC sub_80C89DC: @ 80C89DC push {r4,lr} diff --git a/src/battle/contest_link_80C857C.c b/src/battle/contest_link_80C857C.c index 937193172..17b82388c 100644 --- a/src/battle/contest_link_80C857C.c +++ b/src/battle/contest_link_80C857C.c @@ -330,6 +330,74 @@ void sub_80C88AC(u8 taskId) } } +void sub_80C8938(u8 taskId) +{ + int i; + + switch (gTasks[taskId].data[0]) + { +#if ENGLISH + default: + gTasks[taskId].data[0] = 0; + SwitchTaskToFollowupFunc(taskId); + break; +#elif GERMAN + case 8: +#endif + case 0: + gBlockSendBuffer[0] = gTasks[taskId].data[9]; + if (GetMultiplayerId() == 0) + { + if (sub_8007ECC()) + { +#if GERMAN + if (gTasks[taskId].data[0] == 0) + { + gTasks[taskId].data[0] = 3; + } + else + { + de_sub_80C9274(TRUE); +#endif + sub_8007E9C(2); +#if ENGLISH + gTasks[taskId].data[0]++; +#elif GERMAN + gTasks[taskId].data[0] = 1; + } +#endif + } + } + else + { +#if GERMAN + de_sub_80C9294(TRUE); +#endif + gTasks[taskId].data[0]++; + } + break; + case 1: + if (sub_80C85D8()) + { + for (i = 0; i < MAX_LINK_PLAYERS; i++) + { + gTasks[taskId].data[i + 1] = gBlockRecvBuffer[i][0]; + } + gTasks[taskId].data[0]++; + } + break; +#if GERMAN + case 2: + gTasks[taskId].data[0] = 0; + SwitchTaskToFollowupFunc(taskId); + break; + default: + gTasks[taskId].data[0]++; + break; +#endif + } +} + asm(".section .text_de"); #if GERMAN -- cgit v1.2.3 From 5312cf566196e662aa7edd4ef68f32922eb54180 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 22 Jan 2018 19:20:26 -0500 Subject: through sub_80C8A38 --- asm/contest_link_80C857C.s | 126 -------------------------------------- src/battle/contest_link_80C857C.c | 54 ++++++++++++++++ 2 files changed, 54 insertions(+), 126 deletions(-) diff --git a/asm/contest_link_80C857C.s b/asm/contest_link_80C857C.s index 6dc96e85d..4285531f7 100644 --- a/asm/contest_link_80C857C.s +++ b/asm/contest_link_80C857C.s @@ -5,132 +5,6 @@ .text - thumb_func_start sub_80C89DC -sub_80C89DC: @ 80C89DC - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080C8A04 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080C8A08 - cmp r0, 0x1 - beq _080C8A20 - movs r0, 0 - strh r0, [r4, 0x8] - adds r0, r2, 0 - bl SwitchTaskToFollowupFunc - b _080C8A30 - .align 2, 0 -_080C8A04: .4byte gTasks -_080C8A08: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8A30 - ldr r0, _080C8A1C @ =gContestPlayerMonIndex - movs r1, 0x1 - bl sub_80C857C - b _080C8A2A - .align 2, 0 -_080C8A1C: .4byte gContestPlayerMonIndex -_080C8A20: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8A30 -_080C8A2A: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080C8A30: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80C89DC - - thumb_func_start sub_80C8A38 -sub_80C8A38: @ 80C8A38 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r7, _080C8A60 @ =gTasks - lsls r6, r5, 2 - adds r0, r6, r5 - lsls r0, 3 - adds r4, r0, r7 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080C8A64 - cmp r0, 0x1 - beq _080C8A94 - movs r0, 0 - strh r0, [r4, 0x8] - adds r0, r5, 0 - bl SwitchTaskToFollowupFunc - b _080C8AC2 - .align 2, 0 -_080C8A60: .4byte gTasks -_080C8A64: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8AC2 - ldr r0, _080C8A8C @ =gContestPlayerMonIndex - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - ldr r1, _080C8A90 @ =gSharedMem + 0x19266 - adds r0, r1 - movs r1, 0x2 - bl sub_80C857C - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080C8AC2 - .align 2, 0 -_080C8A8C: .4byte gContestPlayerMonIndex -_080C8A90: .4byte gSharedMem + 0x19266 -_080C8A94: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8AC2 - ldr r1, _080C8AC8 @ =gBlockRecvBuffer - ldr r3, _080C8ACC @ =gSharedMem + 0x19266 - movs r4, 0x80 - lsls r4, 1 - movs r2, 0x3 -_080C8AA8: - ldrh r0, [r1] - strh r0, [r3] - adds r1, r4 - adds r3, 0x1C - subs r2, 0x1 - cmp r2, 0 - bge _080C8AA8 - adds r1, r6, r5 - lsls r1, 3 - adds r1, r7 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_080C8AC2: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C8AC8: .4byte gBlockRecvBuffer -_080C8ACC: .4byte gSharedMem + 0x19266 - thumb_func_end sub_80C8A38 - thumb_func_start sub_80C8AD0 sub_80C8AD0: @ 80C8AD0 push {r4,lr} diff --git a/src/battle/contest_link_80C857C.c b/src/battle/contest_link_80C857C.c index 17b82388c..cef290adf 100644 --- a/src/battle/contest_link_80C857C.c +++ b/src/battle/contest_link_80C857C.c @@ -398,6 +398,60 @@ void sub_80C8938(u8 taskId) } } +void sub_80C89DC(u8 taskId) +{ + switch (gTasks[taskId].data[0]) + { + default: + gTasks[taskId].data[0] = 0; + SwitchTaskToFollowupFunc(taskId); + break; + case 0: + if (sub_8007ECC()) + { + sub_80C857C(&gContestPlayerMonIndex, sizeof(u8)); + gTasks[taskId].data[0]++; + } + break; + case 1: + if (sub_80C85D8()) + { + gTasks[taskId].data[0]++; + } + break; + } +} + +void sub_80C8A38(u8 taskId) +{ + int i; + + switch (gTasks[taskId].data[0]) + { + default: + gTasks[taskId].data[0] = 0; + SwitchTaskToFollowupFunc(taskId); + break; + case 0: + if (sub_8007ECC()) + { + sub_80C857C(&sContestantStatus[gContestPlayerMonIndex].currMove, sizeof(u16)); + gTasks[taskId].data[0]++; + } + break; + case 1: + if (sub_80C85D8()) + { + for (i = 0; i < MAX_LINK_PLAYERS; i++) + { + *&sContestantStatus[i].currMove = gBlockRecvBuffer[i][0]; + } + gTasks[taskId].data[0]++; + } + break; + } +} + asm(".section .text_de"); #if GERMAN -- cgit v1.2.3 From cbab0f740349cbeece60f2155537c2a9870d2318 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 22 Jan 2018 20:24:02 -0500 Subject: sub_80C8AD0 --- asm/contest_link_80C857C.s | 198 -------------------------------------- include/contest.h | 5 + src/battle/contest_link_80C857C.c | 77 +++++++++++++++ src/debug/matsuda_debug_menu.c | 8 -- src/script_pokemon_util_80C4BF0.c | 12 --- 5 files changed, 82 insertions(+), 218 deletions(-) diff --git a/asm/contest_link_80C857C.s b/asm/contest_link_80C857C.s index 4285531f7..61117e28c 100644 --- a/asm/contest_link_80C857C.s +++ b/asm/contest_link_80C857C.s @@ -5,204 +5,6 @@ .text - thumb_func_start sub_80C8AD0 -sub_80C8AD0: @ 80C8AD0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080C8AF8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r1 - movs r3, 0x8 - ldrsh r0, [r2, r3] - adds r3, r1, 0 - cmp r0, 0xB - bls _080C8AEC - b _080C8C70 -_080C8AEC: - lsls r0, 2 - ldr r1, _080C8AFC @ =_080C8B00 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C8AF8: .4byte gTasks -_080C8AFC: .4byte _080C8B00 - .align 2, 0 -_080C8B00: - .4byte _080C8B30 - .4byte _080C8B4C - .4byte _080C8B74 - .4byte _080C8B98 - .4byte _080C8BB0 - .4byte _080C8B74 - .4byte _080C8BD8 - .4byte _080C8BF0 - .4byte _080C8B74 - .4byte _080C8C18 - .4byte _080C8C30 - .4byte _080C8B74 -_080C8B30: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - bne _080C8B3C - b _080C8C7A -_080C8B3C: - ldr r0, _080C8B48 @ =gUnknown_02038678 - movs r1, 0x8 - bl sub_80C857C - b _080C8C4C - .align 2, 0 -_080C8B48: .4byte gUnknown_02038678 -_080C8B4C: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - bne _080C8B58 - b _080C8C7A -_080C8B58: - ldr r0, _080C8B68 @ =gUnknown_02038678 - ldr r1, _080C8B6C @ =gUnknown_0203869B - ldrb r1, [r1] - lsls r1, 8 - ldr r2, _080C8B70 @ =gBlockRecvBuffer - adds r1, r2 - movs r2, 0x8 - b _080C8C48 - .align 2, 0 -_080C8B68: .4byte gUnknown_02038678 -_080C8B6C: .4byte gUnknown_0203869B -_080C8B70: .4byte gBlockRecvBuffer -_080C8B74: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r3 - ldrh r0, [r2, 0xA] - adds r1, r0, 0x1 - strh r1, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - bgt _080C8B8C - b _080C8C7A -_080C8B8C: - movs r0, 0 - strh r0, [r2, 0xA] - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - b _080C8C7A -_080C8B98: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8C7A - ldr r0, _080C8BAC @ =gUnknown_02038680 - movs r1, 0x8 - bl sub_80C857C - b _080C8C4C - .align 2, 0 -_080C8BAC: .4byte gUnknown_02038680 -_080C8BB0: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8C7A - ldr r0, _080C8BCC @ =gUnknown_02038680 - ldr r1, _080C8BD0 @ =gUnknown_0203869B - ldrb r1, [r1] - lsls r1, 8 - ldr r2, _080C8BD4 @ =gBlockRecvBuffer - adds r1, r2 - movs r2, 0x8 - b _080C8C48 - .align 2, 0 -_080C8BCC: .4byte gUnknown_02038680 -_080C8BD0: .4byte gUnknown_0203869B -_080C8BD4: .4byte gBlockRecvBuffer -_080C8BD8: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8C7A - ldr r0, _080C8BEC @ =gUnknown_02038688 - movs r1, 0x8 - bl sub_80C857C - b _080C8C4C - .align 2, 0 -_080C8BEC: .4byte gUnknown_02038688 -_080C8BF0: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8C7A - ldr r0, _080C8C0C @ =gUnknown_02038688 - ldr r1, _080C8C10 @ =gUnknown_0203869B - ldrb r1, [r1] - lsls r1, 8 - ldr r2, _080C8C14 @ =gBlockRecvBuffer - adds r1, r2 - movs r2, 0x8 - b _080C8C48 - .align 2, 0 -_080C8C0C: .4byte gUnknown_02038688 -_080C8C10: .4byte gUnknown_0203869B -_080C8C14: .4byte gBlockRecvBuffer -_080C8C18: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8C7A - ldr r0, _080C8C2C @ =gContestFinalStandings - movs r1, 0x4 - bl sub_80C857C - b _080C8C4C - .align 2, 0 -_080C8C2C: .4byte gContestFinalStandings -_080C8C30: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8C7A - ldr r0, _080C8C60 @ =gContestFinalStandings - ldr r1, _080C8C64 @ =gUnknown_0203869B - ldrb r1, [r1] - lsls r1, 8 - ldr r2, _080C8C68 @ =gBlockRecvBuffer - adds r1, r2 - movs r2, 0x4 -_080C8C48: - bl memcpy -_080C8C4C: - ldr r1, _080C8C6C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - b _080C8C7A - .align 2, 0 -_080C8C60: .4byte gContestFinalStandings -_080C8C64: .4byte gUnknown_0203869B -_080C8C68: .4byte gBlockRecvBuffer -_080C8C6C: .4byte gTasks -_080C8C70: - movs r0, 0 - strh r0, [r2, 0x8] - adds r0, r4, 0 - bl SwitchTaskToFollowupFunc -_080C8C7A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80C8AD0 - thumb_func_start sub_80C8C80 sub_80C8C80: @ 80C8C80 push {r4,lr} diff --git a/include/contest.h b/include/contest.h index dfa0e38da..a15ca67e6 100644 --- a/include/contest.h +++ b/include/contest.h @@ -274,5 +274,10 @@ struct UnknownContestStruct6 extern u8 gContestPlayerMonIndex; extern u8 gIsLinkContest; extern u32 gContestRngValue; +extern s16 gUnknown_02038678[4]; +extern s16 gUnknown_02038680[4]; +extern u16 gUnknown_02038688[4]; +extern u8 gContestFinalStandings[4]; +extern u8 gUnknown_0203869B; #endif // GUARD_CONTEST_H diff --git a/src/battle/contest_link_80C857C.c b/src/battle/contest_link_80C857C.c index cef290adf..465bb0487 100644 --- a/src/battle/contest_link_80C857C.c +++ b/src/battle/contest_link_80C857C.c @@ -452,6 +452,83 @@ void sub_80C8A38(u8 taskId) } } +void sub_80C8AD0(u8 taskId) +{ + switch (gTasks[taskId].data[0]) + { + case 0: + if (sub_8007ECC()) + { + sub_80C857C(gUnknown_02038678, sizeof gUnknown_02038678); + gTasks[taskId].data[0]++; + } + break; + case 1: + if (sub_80C85D8()) + { + memcpy(gUnknown_02038678, gBlockRecvBuffer[gUnknown_0203869B], sizeof gUnknown_02038678); + gTasks[taskId].data[0]++; + } + break; + case 2: + case 5: + case 8: + case 11: + if (gTasks[taskId].data[1]++ > 10) + { + gTasks[taskId].data[1] = 0; + gTasks[taskId].data[0]++; + } + break; + case 3: + if (sub_8007ECC()) + { + sub_80C857C(gUnknown_02038680, sizeof gUnknown_02038680); + gTasks[taskId].data[0]++; + } + break; + case 4: + if (sub_80C85D8()) + { + memcpy(gUnknown_02038680, gBlockRecvBuffer[gUnknown_0203869B], sizeof gUnknown_02038680); + gTasks[taskId].data[0]++; + } + break; + case 6: + if (sub_8007ECC()) + { + sub_80C857C(gUnknown_02038688, sizeof gUnknown_02038688); + gTasks[taskId].data[0]++; + } + break; + case 7: + if (sub_80C85D8()) + { + memcpy(gUnknown_02038688, gBlockRecvBuffer[gUnknown_0203869B], sizeof gUnknown_02038688); + gTasks[taskId].data[0]++; + } + break; + case 9: + if (sub_8007ECC()) + { + sub_80C857C(gContestFinalStandings, sizeof gContestFinalStandings); + gTasks[taskId].data[0]++; + } + break; + case 10: + if (sub_80C85D8()) + { + memcpy(gContestFinalStandings, gBlockRecvBuffer[gUnknown_0203869B], sizeof gContestFinalStandings); + gTasks[taskId].data[0]++; + } + break; + default: + gTasks[taskId].data[0] = 0; + SwitchTaskToFollowupFunc(taskId); + break; + } +} + asm(".section .text_de"); #if GERMAN diff --git a/src/debug/matsuda_debug_menu.c b/src/debug/matsuda_debug_menu.c index da1937adb..15d28df09 100644 --- a/src/debug/matsuda_debug_menu.c +++ b/src/debug/matsuda_debug_menu.c @@ -19,13 +19,7 @@ extern u8 gUnknown_0203856C; extern s16 gUnknown_02038670[]; -extern s16 gUnknown_02038678[]; -extern s16 gUnknown_02038680[]; -extern u8 gContestFinalStandings[]; extern u8 gUnknown_02038694; -extern u8 gIsLinkContest; -extern u8 gUnknown_0203869B; -extern u8 gContestPlayerMonIndex; extern u16 gSpecialVar_ContestCategory; extern u16 gSpecialVar_ContestRank; @@ -40,8 +34,6 @@ extern u16 gBattle_BG3_Y; extern u8 (*gMenuCallback)(void); -extern bool8 gReceivedRemoteLinkPlayers; - static bool8 sub_80A9B78(void); static void sub_80A9BE4(u8 taskId); static void sub_80A9C98(u8); diff --git a/src/script_pokemon_util_80C4BF0.c b/src/script_pokemon_util_80C4BF0.c index e51bc3522..513f6ce2a 100644 --- a/src/script_pokemon_util_80C4BF0.c +++ b/src/script_pokemon_util_80C4BF0.c @@ -32,26 +32,14 @@ extern void sub_80C4698(u8 *, u8); extern struct SpriteTemplate gUnknown_02024E8C; -extern u8 gContestPlayerMonIndex; -extern u8 gIsLinkContest; -extern u8 gPlayerPartyCount; extern u8 gSelectedOrderFromParty[]; -extern u16 gSpecialVar_0x8004; -extern u16 gSpecialVar_0x8005; -extern u16 gSpecialVar_0x8006; - extern u16 gSpecialVar_ContestCategory; extern u16 gSpecialVar_ContestRank; -extern u16 gSpecialVar_Result; - -extern u32 gContestRngValue; extern u8 gUnknown_02038694; extern u8 gUnknown_0203856C; -extern u8 gContestFinalStandings[]; extern s16 gUnknown_02038670[]; -extern s16 gUnknown_02038678[]; void SetContestTrainerGfxIds(void) { -- cgit v1.2.3 From 399856bc7ead101718891712dd20dd85e138e640 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 22 Jan 2018 20:30:31 -0500 Subject: sub_80C8C80 --- asm/contest_link_80C857C.s | 189 -------------------------------------- include/contest.h | 1 + src/battle/contest_link_80C857C.c | 77 ++++++++++++++++ 3 files changed, 78 insertions(+), 189 deletions(-) diff --git a/asm/contest_link_80C857C.s b/asm/contest_link_80C857C.s index 61117e28c..a27a96253 100644 --- a/asm/contest_link_80C857C.s +++ b/asm/contest_link_80C857C.s @@ -5,195 +5,6 @@ .text - thumb_func_start sub_80C8C80 -sub_80C8C80: @ 80C8C80 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080C8CA8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r1 - movs r3, 0x8 - ldrsh r0, [r2, r3] - adds r3, r1, 0 - cmp r0, 0xB - bls _080C8C9C - b _080C8E0C -_080C8C9C: - lsls r0, 2 - ldr r1, _080C8CAC @ =_080C8CB0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C8CA8: .4byte gTasks -_080C8CAC: .4byte _080C8CB0 - .align 2, 0 -_080C8CB0: - .4byte _080C8CE0 - .4byte _080C8CFC - .4byte _080C8D24 - .4byte _080C8D46 - .4byte _080C8D60 - .4byte _080C8D24 - .4byte _080C8D88 - .4byte _080C8DA0 - .4byte _080C8D24 - .4byte _080C8DB4 - .4byte _080C8DCC - .4byte _080C8D24 -_080C8CE0: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - bne _080C8CEC - b _080C8E16 -_080C8CEC: - ldr r0, _080C8CF8 @ =gSharedMem + 0x19260 - movs r1, 0x70 - bl sub_80C857C - b _080C8DE8 - .align 2, 0 -_080C8CF8: .4byte gSharedMem + 0x19260 -_080C8CFC: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - bne _080C8D08 - b _080C8E16 -_080C8D08: - ldr r0, _080C8D18 @ =gSharedMem + 0x19260 - ldr r1, _080C8D1C @ =gUnknown_0203869B - ldrb r1, [r1] - lsls r1, 8 - ldr r2, _080C8D20 @ =gBlockRecvBuffer - adds r1, r2 - movs r2, 0x70 - b _080C8DE4 - .align 2, 0 -_080C8D18: .4byte gSharedMem + 0x19260 -_080C8D1C: .4byte gUnknown_0203869B -_080C8D20: .4byte gBlockRecvBuffer -_080C8D24: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r3 - ldrh r0, [r2, 0xA] - adds r1, r0, 0x1 - strh r1, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - ble _080C8E16 - movs r0, 0 - strh r0, [r2, 0xA] - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - b _080C8E16 -_080C8D46: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8E16 - ldr r0, _080C8D5C @ =gSharedMem + 0x192D0 - movs r1, 0x14 - bl sub_80C857C - b _080C8DE8 - .align 2, 0 -_080C8D5C: .4byte gSharedMem + 0x192D0 -_080C8D60: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8E16 - ldr r0, _080C8D7C @ =gSharedMem + 0x192D0 - ldr r1, _080C8D80 @ =gUnknown_0203869B - ldrb r1, [r1] - lsls r1, 8 - ldr r2, _080C8D84 @ =gBlockRecvBuffer - adds r1, r2 - movs r2, 0x14 - b _080C8DE4 - .align 2, 0 -_080C8D7C: .4byte gSharedMem + 0x192D0 -_080C8D80: .4byte gUnknown_0203869B -_080C8D84: .4byte gBlockRecvBuffer -_080C8D88: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8E16 - ldr r0, _080C8D9C @ =gSharedMem + 0x19328 - movs r1, 0x4 - bl sub_80C857C - b _080C8DE8 - .align 2, 0 -_080C8D9C: .4byte gSharedMem + 0x19328 -_080C8DA0: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8E16 - ldr r0, _080C8DB0 @ =gSharedMem + 0x19328 - b _080C8DD8 - .align 2, 0 -_080C8DB0: .4byte gSharedMem + 0x19328 -_080C8DB4: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8E16 - ldr r0, _080C8DC8 @ =gUnknown_02038696 - movs r1, 0x4 - bl sub_80C857C - b _080C8DE8 - .align 2, 0 -_080C8DC8: .4byte gUnknown_02038696 -_080C8DCC: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8E16 - ldr r0, _080C8DFC @ =gUnknown_02038696 -_080C8DD8: - ldr r1, _080C8E00 @ =gUnknown_0203869B - ldrb r1, [r1] - lsls r1, 8 - ldr r2, _080C8E04 @ =gBlockRecvBuffer - adds r1, r2 - movs r2, 0x4 -_080C8DE4: - bl memcpy -_080C8DE8: - ldr r1, _080C8E08 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - b _080C8E16 - .align 2, 0 -_080C8DFC: .4byte gUnknown_02038696 -_080C8E00: .4byte gUnknown_0203869B -_080C8E04: .4byte gBlockRecvBuffer -_080C8E08: .4byte gTasks -_080C8E0C: - movs r0, 0 - strh r0, [r2, 0x8] - adds r0, r4, 0 - bl SwitchTaskToFollowupFunc -_080C8E16: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80C8C80 - .ifdef ENGLISH thumb_func_start sub_80C8E1C sub_80C8E1C: @ 80C8E1C diff --git a/include/contest.h b/include/contest.h index a15ca67e6..f8fceae79 100644 --- a/include/contest.h +++ b/include/contest.h @@ -278,6 +278,7 @@ extern s16 gUnknown_02038678[4]; extern s16 gUnknown_02038680[4]; extern u16 gUnknown_02038688[4]; extern u8 gContestFinalStandings[4]; +extern u8 gUnknown_02038696[4]; extern u8 gUnknown_0203869B; #endif // GUARD_CONTEST_H diff --git a/src/battle/contest_link_80C857C.c b/src/battle/contest_link_80C857C.c index 465bb0487..84695fb37 100644 --- a/src/battle/contest_link_80C857C.c +++ b/src/battle/contest_link_80C857C.c @@ -529,6 +529,83 @@ void sub_80C8AD0(u8 taskId) } } +void sub_80C8C80(u8 taskId) +{ + switch (gTasks[taskId].data[0]) + { + case 0: + if (sub_8007ECC()) + { + sub_80C857C(sContestantStatus, 4 * sizeof(struct ContestantStatus)); + gTasks[taskId].data[0]++; + } + break; + case 1: + if (sub_80C85D8()) + { + memcpy(sContestantStatus, gBlockRecvBuffer[gUnknown_0203869B], 4 * sizeof(struct ContestantStatus)); + gTasks[taskId].data[0]++; + } + break; + case 2: + case 5: + case 8: + case 11: + if (gTasks[taskId].data[1]++ > 10) + { + gTasks[taskId].data[1] = 0; + gTasks[taskId].data[0]++; + } + break; + case 3: + if (sub_8007ECC()) + { + sub_80C857C(&shared192D0, sizeof shared192D0); + gTasks[taskId].data[0]++; + } + break; + case 4: + if (sub_80C85D8()) + { + memcpy(&shared192D0, gBlockRecvBuffer[gUnknown_0203869B], sizeof shared192D0); + gTasks[taskId].data[0]++; + } + break; + case 6: + if (sub_8007ECC()) + { + sub_80C857C(&shared19328, sizeof shared19328); + gTasks[taskId].data[0]++; + } + break; + case 7: + if (sub_80C85D8()) + { + memcpy(&shared19328, gBlockRecvBuffer[gUnknown_0203869B], sizeof shared19328); + gTasks[taskId].data[0]++; + } + break; + case 9: + if (sub_8007ECC()) + { + sub_80C857C(gUnknown_02038696, sizeof gUnknown_02038696); + gTasks[taskId].data[0]++; + } + break; + case 10: + if (sub_80C85D8()) + { + memcpy(gUnknown_02038696, gBlockRecvBuffer[gUnknown_0203869B], sizeof gUnknown_02038696); + gTasks[taskId].data[0]++; + } + break; + default: + gTasks[taskId].data[0] = 0; + SwitchTaskToFollowupFunc(taskId); + break; + } +} + asm(".section .text_de"); #if GERMAN -- cgit v1.2.3 From 765b2ffe3f7f49e49cc416a930a6e60ee265ce14 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 22 Jan 2018 20:38:05 -0500 Subject: sub_80C8E1C --- asm/contest_link_80C857C.s | 210 -------------------------------------- src/battle/contest_link_80C857C.c | 68 ++++++++++++ 2 files changed, 68 insertions(+), 210 deletions(-) diff --git a/asm/contest_link_80C857C.s b/asm/contest_link_80C857C.s index a27a96253..27cdfd2a3 100644 --- a/asm/contest_link_80C857C.s +++ b/asm/contest_link_80C857C.s @@ -5,216 +5,6 @@ .text -.ifdef ENGLISH - thumb_func_start sub_80C8E1C -sub_80C8E1C: @ 80C8E1C - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080C8E4C @ =gTasks - mov r8, r0 - lsls r6, r5, 2 - adds r0, r6, r5 - lsls r7, r0, 3 - mov r1, r8 - adds r4, r7, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080C8E50 - cmp r0, 0x1 - beq _080C8E7C - movs r0, 0 - strh r0, [r4, 0x8] - adds r0, r5, 0 - bl SwitchTaskToFollowupFunc - b _080C8EAE - .align 2, 0 -_080C8E4C: .4byte gTasks -_080C8E50: - ldr r1, _080C8E78 @ =gBlockSendBuffer - movs r0, 0x64 - strb r0, [r1] - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - bne _080C8E70 - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8EAE - movs r0, 0x2 - bl sub_8007E9C -_080C8E70: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080C8EAE - .align 2, 0 -_080C8E78: .4byte gBlockSendBuffer -_080C8E7C: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8EAE - ldr r1, _080C8EB8 @ =gBlockRecvBuffer - mov r0, r8 - adds r0, 0x12 - adds r2, r7, r0 - movs r4, 0x80 - lsls r4, 1 - movs r3, 0x3 -_080C8E94: - ldrh r0, [r1] - strh r0, [r2] - adds r1, r4 - adds r2, 0x2 - subs r3, 0x1 - cmp r3, 0 - bge _080C8E94 - adds r1, r6, r5 - lsls r1, 3 - add r1, r8 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_080C8EAE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C8EB8: .4byte gBlockRecvBuffer - thumb_func_end sub_80C8E1C -.else - thumb_func_start sub_80C8E1C -sub_80C8E1C: @ 80C8E1C - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080C8E40 @ =gTasks - lsls r4, r5, 2 - adds r0, r4, r5 - lsls r6, r0, 3 - adds r2, r6, r1 - movs r3, 0x8 - ldrsh r0, [r2, r3] - adds r7, r1, 0 - cmp r0, 0x1 - beq _080C8EB0 - cmp r0, 0x1 - bgt _080C8E44 - cmp r0, 0 - beq _080C8E4C - b _080C8EF8 - .align 2, 0 -_080C8E40: .4byte gTasks -_080C8E44: - cmp r0, 0x2 - beq _080C8EEC - cmp r0, 0x8 - bne _080C8EF8 -_080C8E4C: - ldr r1, _080C8E80 @ =gBlockSendBuffer - movs r0, 0x64 - strb r0, [r1] - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - bne _080C8E9A - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8F06 - ldr r0, _080C8E84 @ =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 - bne _080C8E88 - movs r0, 0x3 - strh r0, [r4, 0x8] - b _080C8F06 - .align 2, 0 -_080C8E80: .4byte gBlockSendBuffer -_080C8E84: .4byte gTasks -_080C8E88: - movs r0, 0 - bl de_sub_80C9274 - movs r0, 0x2 - bl sub_8007E9C - movs r0, 0x1 - strh r0, [r4, 0x8] - b _080C8F06 -_080C8E9A: - movs r0, 0 - bl de_sub_80C9294 - ldr r0, _080C8EAC @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - b _080C8EDE - .align 2, 0 -_080C8EAC: .4byte gTasks -_080C8EB0: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8F06 - adds r1, r4, 0 - ldr r4, _080C8EE8 @ =gBlockRecvBuffer - adds r0, r7, 0 - adds r0, 0x12 - adds r2, r6, r0 - movs r6, 0x80 - lsls r6, 1 - movs r3, 0x3 -_080C8ECA: - ldrh r0, [r4] - strh r0, [r2] - adds r4, r6 - adds r2, 0x2 - subs r3, 0x1 - cmp r3, 0 - bge _080C8ECA - adds r1, r5 - lsls r1, 3 - adds r1, r7 -_080C8EDE: - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _080C8F06 - .align 2, 0 -_080C8EE8: .4byte gBlockRecvBuffer -_080C8EEC: - movs r0, 0 - strh r0, [r2, 0x8] - adds r0, r5, 0 - bl SwitchTaskToFollowupFunc - b _080C8F06 -_080C8EF8: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r7 - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] -_080C8F06: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80C8E1C -.endif - thumb_func_start sub_80C8EBC sub_80C8EBC: @ 80C8EBC push {r4,lr} diff --git a/src/battle/contest_link_80C857C.c b/src/battle/contest_link_80C857C.c index 84695fb37..f505fa658 100644 --- a/src/battle/contest_link_80C857C.c +++ b/src/battle/contest_link_80C857C.c @@ -606,6 +606,74 @@ void sub_80C8C80(u8 taskId) } } +void sub_80C8E1C(u8 taskId) +{ + int i; + + switch (gTasks[taskId].data[0]) + { +#if ENGLISH + default: + gTasks[taskId].data[0] = 0; + SwitchTaskToFollowupFunc(taskId); + break; +#elif GERMAN + case 8: +#endif + case 0: + gBlockSendBuffer[0] = 0x64; + if (GetMultiplayerId() == 0) + { + if (sub_8007ECC()) + { +#if GERMAN + if (gTasks[taskId].data[0] == 0) + { + gTasks[taskId].data[0] = 3; + } + else + { + de_sub_80C9274(FALSE); +#endif + sub_8007E9C(2); +#if ENGLISH + gTasks[taskId].data[0]++; +#else + gTasks[taskId].data[0] = 1; + } +#endif + } + } + else + { +#if GERMAN + de_sub_80C9294(FALSE); +#endif + gTasks[taskId].data[0]++; + } + break; + case 1: + if (sub_80C85D8()) + { + for (i = 0; i < MAX_LINK_PLAYERS; i++) + { + gTasks[taskId].data[5 + i] = gBlockRecvBuffer[i][0]; + } + gTasks[taskId].data[0]++; + } + break; +#if GERMAN + case 2: + gTasks[taskId].data[0] = 0; + SwitchTaskToFollowupFunc(taskId); + break; + default: + gTasks[taskId].data[0]++; + break; +#endif + } +} + asm(".section .text_de"); #if GERMAN -- cgit v1.2.3 From c723b341c50df19f8951353a7efd4ab83bf56833 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 22 Jan 2018 20:52:41 -0500 Subject: through sub_80C8F34 --- asm/contest_link_80C857C.s | 130 -------------------------------------- include/contest.h | 2 + ld_script.txt | 2 - src/battle/contest_link_80C857C.c | 60 ++++++++++++++++-- src/contest_ai.c | 1 - src/debug/matsuda_debug_menu.c | 1 - src/script_pokemon_util_80C4BF0.c | 1 - 7 files changed, 56 insertions(+), 141 deletions(-) delete mode 100644 asm/contest_link_80C857C.s diff --git a/asm/contest_link_80C857C.s b/asm/contest_link_80C857C.s deleted file mode 100644 index 27cdfd2a3..000000000 --- a/asm/contest_link_80C857C.s +++ /dev/null @@ -1,130 +0,0 @@ - .include "constants/gba_constants.inc" - .include "include/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_80C8EBC -sub_80C8EBC: @ 80C8EBC - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080C8EE4 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080C8EE8_B - cmp r0, 0x1 - beq _080C8F00 - movs r0, 0 - strh r0, [r4, 0x8] - adds r0, r2, 0 - bl SwitchTaskToFollowupFunc - b _080C8F22 - .align 2, 0 -_080C8EE4: .4byte gTasks -_080C8EE8_B: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8F22 - ldr r0, _080C8EFC @ =gUnknown_02038670 - movs r1, 0x8 - bl sub_80C857C - b _080C8F1C - .align 2, 0 -_080C8EFC: .4byte gUnknown_02038670 -_080C8F00: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8F22 - ldr r0, _080C8F28 @ =gUnknown_02038670 - ldr r1, _080C8F2C @ =gUnknown_0203869B - ldrb r1, [r1] - lsls r1, 8 - ldr r2, _080C8F30 @ =gBlockRecvBuffer - adds r1, r2 - movs r2, 0x8 - bl memcpy -_080C8F1C: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080C8F22: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C8F28: .4byte gUnknown_02038670 -_080C8F2C: .4byte gUnknown_0203869B -_080C8F30: .4byte gBlockRecvBuffer - thumb_func_end sub_80C8EBC - - thumb_func_start sub_80C8F34 -sub_80C8F34: @ 80C8F34 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080C8F5C @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080C8F60 - cmp r0, 0x1 - beq _080C8F78 - movs r0, 0 - strh r0, [r4, 0x8] - adds r0, r2, 0 - bl SwitchTaskToFollowupFunc - b _080C8F9A - .align 2, 0 -_080C8F5C: .4byte gTasks -_080C8F60: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8F9A - ldr r0, _080C8F74 @ =gUnknown_02038696 - movs r1, 0x4 - bl sub_80C857C - b _080C8F94 - .align 2, 0 -_080C8F74: .4byte gUnknown_02038696 -_080C8F78: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8F9A - ldr r0, _080C8FA0 @ =gUnknown_02038696 - ldr r1, _080C8FA4 @ =gUnknown_0203869B - ldrb r1, [r1] - lsls r1, 8 - ldr r2, _080C8FA8 @ =gBlockRecvBuffer - adds r1, r2 - movs r2, 0x4 - bl memcpy -_080C8F94: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080C8F9A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C8FA0: .4byte gUnknown_02038696 -_080C8FA4: .4byte gUnknown_0203869B -_080C8FA8: .4byte gBlockRecvBuffer - thumb_func_end sub_80C8F34 - - .align 2, 0 @ Don't pad with nop. diff --git a/include/contest.h b/include/contest.h index f8fceae79..b0bdd7f61 100644 --- a/include/contest.h +++ b/include/contest.h @@ -274,6 +274,8 @@ struct UnknownContestStruct6 extern u8 gContestPlayerMonIndex; extern u8 gIsLinkContest; extern u32 gContestRngValue; +extern u8 gUnknown_02038696[4]; +extern s16 gUnknown_02038670[4]; extern s16 gUnknown_02038678[4]; extern s16 gUnknown_02038680[4]; extern u16 gUnknown_02038688[4]; diff --git a/ld_script.txt b/ld_script.txt index 411d282d1..fc13444f1 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -170,8 +170,6 @@ SECTIONS { src/field/rotating_gate.o(.text); src/field/safari_zone.o(.text); src/battle/contest_link_80C857C.o(.text); - asm/contest_link_80C857C.o(.text); - src/battle/contest_link_80C857C.o(.text_de); src/field/item_use.o(.text); src/battle/anim/powder.o(.text); src/battle/anim/orbs.o(.text); diff --git a/src/battle/contest_link_80C857C.c b/src/battle/contest_link_80C857C.c index f505fa658..e85350aea 100644 --- a/src/battle/contest_link_80C857C.c +++ b/src/battle/contest_link_80C857C.c @@ -228,11 +228,11 @@ void sub_80C8734(u8 taskId) de_sub_80C9274(FALSE); #endif sub_8007E9C(2); -#if GERMAN - gTasks[taskId].data[0] = 1; - } -#else +#if ENGLISH gTasks[taskId].data[0]++; +#elif GERMAN + gTasks[taskId].data[0] = 1; + } #endif } } @@ -638,7 +638,7 @@ void sub_80C8E1C(u8 taskId) sub_8007E9C(2); #if ENGLISH gTasks[taskId].data[0]++; -#else +#elif GERMAN gTasks[taskId].data[0] = 1; } #endif @@ -674,7 +674,55 @@ void sub_80C8E1C(u8 taskId) } } -asm(".section .text_de"); +void sub_80C8EBC(u8 taskId) +{ + switch (gTasks[taskId].data[0]) + { + default: + gTasks[taskId].data[0] = 0; + SwitchTaskToFollowupFunc(taskId); + break; + case 0: + if (sub_8007ECC()) + { + sub_80C857C(gUnknown_02038670, sizeof gUnknown_02038670); + gTasks[taskId].data[0]++; + } + break; + case 1: + if (sub_80C85D8()) + { + memcpy(gUnknown_02038670, gBlockRecvBuffer[gUnknown_0203869B], sizeof gUnknown_02038670); + gTasks[taskId].data[0]++; + } + break; + } +} + +void sub_80C8F34(u8 taskId) +{ + switch (gTasks[taskId].data[0]) + { + default: + gTasks[taskId].data[0] = 0; + SwitchTaskToFollowupFunc(taskId); + break; + case 0: + if (sub_8007ECC()) + { + sub_80C857C(gUnknown_02038696, sizeof gUnknown_02038696); + gTasks[taskId].data[0]++; + } + break; + case 1: + if (sub_80C85D8()) + { + memcpy(gUnknown_02038696, gBlockRecvBuffer[gUnknown_0203869B], sizeof gUnknown_02038696); + gTasks[taskId].data[0]++; + } + break; + } +} #if GERMAN diff --git a/src/contest_ai.c b/src/contest_ai.c index 66b387270..1e249083b 100644 --- a/src/contest_ai.c +++ b/src/contest_ai.c @@ -8,7 +8,6 @@ extern u8 AreMovesContestCombo(u16, u16); extern bool8 sub_80B214C(u8); extern bool8 Contest_IsMonsTurnDisabled(u8); -extern s16 gUnknown_02038670[]; extern u16 gSpecialVar_ContestCategory; extern u8 *gAIScriptPtr; diff --git a/src/debug/matsuda_debug_menu.c b/src/debug/matsuda_debug_menu.c index 15d28df09..efd952ef7 100644 --- a/src/debug/matsuda_debug_menu.c +++ b/src/debug/matsuda_debug_menu.c @@ -18,7 +18,6 @@ #include "ewram.h" extern u8 gUnknown_0203856C; -extern s16 gUnknown_02038670[]; extern u8 gUnknown_02038694; extern u16 gSpecialVar_ContestCategory; extern u16 gSpecialVar_ContestRank; diff --git a/src/script_pokemon_util_80C4BF0.c b/src/script_pokemon_util_80C4BF0.c index 513f6ce2a..02e66d313 100644 --- a/src/script_pokemon_util_80C4BF0.c +++ b/src/script_pokemon_util_80C4BF0.c @@ -39,7 +39,6 @@ extern u16 gSpecialVar_ContestRank; extern u8 gUnknown_02038694; extern u8 gUnknown_0203856C; -extern s16 gUnknown_02038670[]; void SetContestTrainerGfxIds(void) { -- cgit v1.2.3 From cc0d7a675d5fc85adac3bd94387c54e0eb507495 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 22 Jan 2018 21:01:33 -0500 Subject: Rename some static functions --- asm/contest_link_80C2020.s | 4 +- include/link.h | 2 +- src/battle/battle_2.c | 16 +++--- src/battle/contest_link_80C857C.c | 104 +++++++++++++++++++------------------- src/engine/link.c | 9 +--- src/engine/trade.c | 16 +++--- src/field/field_fadetransition.c | 2 +- src/rom3.c | 2 +- src/scene/berry_blender.c | 16 +++--- 9 files changed, 83 insertions(+), 88 deletions(-) diff --git a/asm/contest_link_80C2020.s b/asm/contest_link_80C2020.s index 8a0f096f0..891711bc5 100644 --- a/asm/contest_link_80C2020.s +++ b/asm/contest_link_80C2020.s @@ -657,7 +657,7 @@ sub_80C25C0: @ 80C25C0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl sub_8007ECC + bl IsLinkTaskFinished lsls r0, 24 cmp r0, 0 beq _080C25EC @@ -5778,7 +5778,7 @@ sub_80C4B5C: @ 80C4B5C ldrh r0, [r0] cmp r0, 0x1 bne _080C4B90 - bl sub_8007ECC + bl IsLinkTaskFinished lsls r0, 24 cmp r0, 0 beq _080C4B9E diff --git a/include/link.h b/include/link.h index 367add625..6581fdbba 100644 --- a/include/link.h +++ b/include/link.h @@ -167,7 +167,7 @@ u8 GetMultiplayerId(void); u8 bitmask_all_link_players_but_self(void); bool8 SendBlock(u8, void *, u16); bool8 sub_8007E9C(u8); -bool8 sub_8007ECC(void); +bool8 IsLinkTaskFinished(void); u8 GetBlockReceivedStatus(void); void ResetBlockReceivedFlags(void); void ResetBlockReceivedFlag(u8); diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c index b00c35312..2ad2adb04 100644 --- a/src/battle/battle_2.c +++ b/src/battle/battle_2.c @@ -396,7 +396,7 @@ void sub_800EC9C(void) case 0: if (gBattleTypeFlags & BATTLE_TYPE_LINK) { - if (gReceivedRemoteLinkPlayers != 0 && sub_8007ECC()) + if (gReceivedRemoteLinkPlayers != 0 && IsLinkTaskFinished()) { gBattleStruct->unk0 = 1; gBattleStruct->unk1 = 1; @@ -464,7 +464,7 @@ void sub_800EC9C(void) } break; case 2: - if (sub_8007ECC()) + if (IsLinkTaskFinished()) { SendBlock(bitmask_all_link_players_but_self(), gPlayerParty, sizeof(*gPlayerParty) * 2); gBattleCommunication[0]++; @@ -479,7 +479,7 @@ void sub_800EC9C(void) } break; case 4: - if (sub_8007ECC()) + if (IsLinkTaskFinished()) { SendBlock(bitmask_all_link_players_but_self(), gPlayerParty + 2, sizeof(*gPlayerParty) * 2); gBattleCommunication[0]++; @@ -494,7 +494,7 @@ void sub_800EC9C(void) } break; case 6: - if (sub_8007ECC()) + if (IsLinkTaskFinished()) { SendBlock(bitmask_all_link_players_but_self(), gPlayerParty + 4, sizeof(*gPlayerParty) * 2); gBattleCommunication[0]++; @@ -579,7 +579,7 @@ void sub_800F104(void) switch (gBattleCommunication[0]) { case 0: - if (gReceivedRemoteLinkPlayers != 0 && sub_8007ECC()) + if (gReceivedRemoteLinkPlayers != 0 && IsLinkTaskFinished()) { sub_800F02C(); SendBlock(bitmask_all_link_players_but_self(), gSharedMem, 0x60); @@ -639,7 +639,7 @@ void sub_800F298(void) switch (gBattleCommunication[0]) { case 0: - if (gReceivedRemoteLinkPlayers != 0 && sub_8007ECC()) + if (gReceivedRemoteLinkPlayers != 0 && IsLinkTaskFinished()) { gBattleStruct->unk0 = 1; gBattleStruct->unk1 = 1; @@ -732,7 +732,7 @@ void sub_800F298(void) break; case 2: step_2: - if (sub_8007ECC()) + if (IsLinkTaskFinished()) { SendBlock(bitmask_all_link_players_but_self(), ewram1D000, sizeof(struct Pokemon) * 2); gBattleCommunication[0]++; @@ -795,7 +795,7 @@ void sub_800F298(void) } break; case 4: - if (sub_8007ECC()) + if (IsLinkTaskFinished()) { SendBlock(bitmask_all_link_players_but_self(), ewram1D000 + 2, sizeof(struct Pokemon)); gBattleCommunication[0]++; diff --git a/src/battle/contest_link_80C857C.c b/src/battle/contest_link_80C857C.c index e85350aea..01088bf53 100644 --- a/src/battle/contest_link_80C857C.c +++ b/src/battle/contest_link_80C857C.c @@ -10,17 +10,17 @@ static void sub_80C8644(u8 taskId); static void sub_80C8660(u8 taskId); #if GERMAN -void de_sub_80C9274(bool32 arg0); -void de_sub_80C9294(bool32 arg0); +static void de_sub_80C9274(bool32 arg0); +static void de_sub_80C9294(bool32 arg0); #endif -void sub_80C857C(const void *data, u16 size) +static void SendBlockToAllOpponents(const void *data, u16 size) { memcpy(eContestLinkSendBuffer, data, size); SendBlock(bitmask_all_link_players_but_self(), eContestLinkSendBuffer, size); } -bool8 sub_80C85AC(u8 who) +static bool8 HasPlayerReceivedBlock(u8 who) { u8 flag = 1 << who; if (!(GetBlockReceivedStatus() & flag)) @@ -29,7 +29,7 @@ bool8 sub_80C85AC(u8 who) return TRUE; } -bool8 sub_80C85D8(void) +static bool8 HaveAllPlayersReceivedBlock(void) { int i; @@ -214,7 +214,7 @@ void sub_80C8734(u8 taskId) #endif case 0: if (GetMultiplayerId() == 0) { - if (sub_8007ECC()) { + if (IsLinkTaskFinished()) { #if GERMAN if (gTasks[taskId].data[0] == 0) { @@ -246,7 +246,7 @@ void sub_80C8734(u8 taskId) } break; case 1: - if (sub_80C85D8()) + if (HaveAllPlayersReceivedBlock()) { for (i = 0; i < MAX_LINK_PLAYERS; i++) { @@ -308,9 +308,9 @@ void sub_80C88AC(u8 taskId) case 0: if (GetMultiplayerId() == 0) { - if (sub_8007ECC()) + if (IsLinkTaskFinished()) { - sub_80C857C(&gRngValue, sizeof(u32)); + SendBlockToAllOpponents(&gRngValue, sizeof(u32)); gTasks[taskId].data[0]++; } } @@ -320,7 +320,7 @@ void sub_80C88AC(u8 taskId) } break; case 1: - if (sub_80C85AC(0)) + if (HasPlayerReceivedBlock(0)) { memcpy(&gRngValue, gBlockRecvBuffer[0], sizeof(u32)); memcpy(&gContestRngValue, gBlockRecvBuffer[0], sizeof(u32)); @@ -348,7 +348,7 @@ void sub_80C8938(u8 taskId) gBlockSendBuffer[0] = gTasks[taskId].data[9]; if (GetMultiplayerId() == 0) { - if (sub_8007ECC()) + if (IsLinkTaskFinished()) { #if GERMAN if (gTasks[taskId].data[0] == 0) @@ -377,7 +377,7 @@ void sub_80C8938(u8 taskId) } break; case 1: - if (sub_80C85D8()) + if (HaveAllPlayersReceivedBlock()) { for (i = 0; i < MAX_LINK_PLAYERS; i++) { @@ -407,14 +407,14 @@ void sub_80C89DC(u8 taskId) SwitchTaskToFollowupFunc(taskId); break; case 0: - if (sub_8007ECC()) + if (IsLinkTaskFinished()) { - sub_80C857C(&gContestPlayerMonIndex, sizeof(u8)); + SendBlockToAllOpponents(&gContestPlayerMonIndex, sizeof(u8)); gTasks[taskId].data[0]++; } break; case 1: - if (sub_80C85D8()) + if (HaveAllPlayersReceivedBlock()) { gTasks[taskId].data[0]++; } @@ -433,14 +433,14 @@ void sub_80C8A38(u8 taskId) SwitchTaskToFollowupFunc(taskId); break; case 0: - if (sub_8007ECC()) + if (IsLinkTaskFinished()) { - sub_80C857C(&sContestantStatus[gContestPlayerMonIndex].currMove, sizeof(u16)); + SendBlockToAllOpponents(&sContestantStatus[gContestPlayerMonIndex].currMove, sizeof(u16)); gTasks[taskId].data[0]++; } break; case 1: - if (sub_80C85D8()) + if (HaveAllPlayersReceivedBlock()) { for (i = 0; i < MAX_LINK_PLAYERS; i++) { @@ -457,14 +457,14 @@ void sub_80C8AD0(u8 taskId) switch (gTasks[taskId].data[0]) { case 0: - if (sub_8007ECC()) + if (IsLinkTaskFinished()) { - sub_80C857C(gUnknown_02038678, sizeof gUnknown_02038678); + SendBlockToAllOpponents(gUnknown_02038678, sizeof gUnknown_02038678); gTasks[taskId].data[0]++; } break; case 1: - if (sub_80C85D8()) + if (HaveAllPlayersReceivedBlock()) { memcpy(gUnknown_02038678, gBlockRecvBuffer[gUnknown_0203869B], sizeof gUnknown_02038678); gTasks[taskId].data[0]++; @@ -481,42 +481,42 @@ void sub_80C8AD0(u8 taskId) } break; case 3: - if (sub_8007ECC()) + if (IsLinkTaskFinished()) { - sub_80C857C(gUnknown_02038680, sizeof gUnknown_02038680); + SendBlockToAllOpponents(gUnknown_02038680, sizeof gUnknown_02038680); gTasks[taskId].data[0]++; } break; case 4: - if (sub_80C85D8()) + if (HaveAllPlayersReceivedBlock()) { memcpy(gUnknown_02038680, gBlockRecvBuffer[gUnknown_0203869B], sizeof gUnknown_02038680); gTasks[taskId].data[0]++; } break; case 6: - if (sub_8007ECC()) + if (IsLinkTaskFinished()) { - sub_80C857C(gUnknown_02038688, sizeof gUnknown_02038688); + SendBlockToAllOpponents(gUnknown_02038688, sizeof gUnknown_02038688); gTasks[taskId].data[0]++; } break; case 7: - if (sub_80C85D8()) + if (HaveAllPlayersReceivedBlock()) { memcpy(gUnknown_02038688, gBlockRecvBuffer[gUnknown_0203869B], sizeof gUnknown_02038688); gTasks[taskId].data[0]++; } break; case 9: - if (sub_8007ECC()) + if (IsLinkTaskFinished()) { - sub_80C857C(gContestFinalStandings, sizeof gContestFinalStandings); + SendBlockToAllOpponents(gContestFinalStandings, sizeof gContestFinalStandings); gTasks[taskId].data[0]++; } break; case 10: - if (sub_80C85D8()) + if (HaveAllPlayersReceivedBlock()) { memcpy(gContestFinalStandings, gBlockRecvBuffer[gUnknown_0203869B], sizeof gContestFinalStandings); gTasks[taskId].data[0]++; @@ -534,14 +534,14 @@ void sub_80C8C80(u8 taskId) switch (gTasks[taskId].data[0]) { case 0: - if (sub_8007ECC()) + if (IsLinkTaskFinished()) { - sub_80C857C(sContestantStatus, 4 * sizeof(struct ContestantStatus)); + SendBlockToAllOpponents(sContestantStatus, 4 * sizeof(struct ContestantStatus)); gTasks[taskId].data[0]++; } break; case 1: - if (sub_80C85D8()) + if (HaveAllPlayersReceivedBlock()) { memcpy(sContestantStatus, gBlockRecvBuffer[gUnknown_0203869B], 4 * sizeof(struct ContestantStatus)); gTasks[taskId].data[0]++; @@ -558,42 +558,42 @@ void sub_80C8C80(u8 taskId) } break; case 3: - if (sub_8007ECC()) + if (IsLinkTaskFinished()) { - sub_80C857C(&shared192D0, sizeof shared192D0); + SendBlockToAllOpponents(&shared192D0, sizeof shared192D0); gTasks[taskId].data[0]++; } break; case 4: - if (sub_80C85D8()) + if (HaveAllPlayersReceivedBlock()) { memcpy(&shared192D0, gBlockRecvBuffer[gUnknown_0203869B], sizeof shared192D0); gTasks[taskId].data[0]++; } break; case 6: - if (sub_8007ECC()) + if (IsLinkTaskFinished()) { - sub_80C857C(&shared19328, sizeof shared19328); + SendBlockToAllOpponents(&shared19328, sizeof shared19328); gTasks[taskId].data[0]++; } break; case 7: - if (sub_80C85D8()) + if (HaveAllPlayersReceivedBlock()) { memcpy(&shared19328, gBlockRecvBuffer[gUnknown_0203869B], sizeof shared19328); gTasks[taskId].data[0]++; } break; case 9: - if (sub_8007ECC()) + if (IsLinkTaskFinished()) { - sub_80C857C(gUnknown_02038696, sizeof gUnknown_02038696); + SendBlockToAllOpponents(gUnknown_02038696, sizeof gUnknown_02038696); gTasks[taskId].data[0]++; } break; case 10: - if (sub_80C85D8()) + if (HaveAllPlayersReceivedBlock()) { memcpy(gUnknown_02038696, gBlockRecvBuffer[gUnknown_0203869B], sizeof gUnknown_02038696); gTasks[taskId].data[0]++; @@ -624,7 +624,7 @@ void sub_80C8E1C(u8 taskId) gBlockSendBuffer[0] = 0x64; if (GetMultiplayerId() == 0) { - if (sub_8007ECC()) + if (IsLinkTaskFinished()) { #if GERMAN if (gTasks[taskId].data[0] == 0) @@ -653,7 +653,7 @@ void sub_80C8E1C(u8 taskId) } break; case 1: - if (sub_80C85D8()) + if (HaveAllPlayersReceivedBlock()) { for (i = 0; i < MAX_LINK_PLAYERS; i++) { @@ -683,14 +683,14 @@ void sub_80C8EBC(u8 taskId) SwitchTaskToFollowupFunc(taskId); break; case 0: - if (sub_8007ECC()) + if (IsLinkTaskFinished()) { - sub_80C857C(gUnknown_02038670, sizeof gUnknown_02038670); + SendBlockToAllOpponents(gUnknown_02038670, sizeof gUnknown_02038670); gTasks[taskId].data[0]++; } break; case 1: - if (sub_80C85D8()) + if (HaveAllPlayersReceivedBlock()) { memcpy(gUnknown_02038670, gBlockRecvBuffer[gUnknown_0203869B], sizeof gUnknown_02038670); gTasks[taskId].data[0]++; @@ -708,14 +708,14 @@ void sub_80C8F34(u8 taskId) SwitchTaskToFollowupFunc(taskId); break; case 0: - if (sub_8007ECC()) + if (IsLinkTaskFinished()) { - sub_80C857C(gUnknown_02038696, sizeof gUnknown_02038696); + SendBlockToAllOpponents(gUnknown_02038696, sizeof gUnknown_02038696); gTasks[taskId].data[0]++; } break; case 1: - if (sub_80C85D8()) + if (HaveAllPlayersReceivedBlock()) { memcpy(gUnknown_02038696, gBlockRecvBuffer[gUnknown_0203869B], sizeof gUnknown_02038696); gTasks[taskId].data[0]++; @@ -726,7 +726,7 @@ void sub_80C8F34(u8 taskId) #if GERMAN -void de_sub_80C9274(bool32 arg0) +static void de_sub_80C9274(bool32 arg0) { if (deUnkValue2 == 1) { @@ -737,7 +737,7 @@ void de_sub_80C9274(bool32 arg0) } } -void de_sub_80C9294(bool32 arg0) +static void de_sub_80C9294(bool32 arg0) { if (deUnkValue2 == 1) { diff --git a/src/engine/link.c b/src/engine/link.c index ec94295d7..33037b817 100644 --- a/src/engine/link.c +++ b/src/engine/link.c @@ -898,14 +898,9 @@ bool8 sub_8007E9C(u8 a1) } } -bool8 sub_8007ECC(void) +bool8 IsLinkTaskFinished(void) { - u8 retVal = FALSE; - - if (!gLinkCallback) - retVal = TRUE; - - return retVal; + return gLinkCallback == NULL; } u8 GetBlockReceivedStatus(void) diff --git a/src/engine/trade.c b/src/engine/trade.c index 4dc27ea6f..4bd39c4ef 100644 --- a/src/engine/trade.c +++ b/src/engine/trade.c @@ -1711,7 +1711,7 @@ static bool8 sub_8048D44(void) gUnknown_03004824->unk_0075 ++; break; case 1: - if (sub_8007ECC()) + if (IsLinkTaskFinished()) { if (GetBlockReceivedStatus() == 0) { @@ -2210,7 +2210,7 @@ static void sub_8049A20(void) { sub_804AADC(3, 1); gUnknown_03004824->linkData[0] = 0xbbbb; - if (sub_8007ECC()) + if (IsLinkTaskFinished()) { Trade_SendData(gUnknown_03004824); } @@ -2239,7 +2239,7 @@ static void sub_8049AC0(void) else { sub_804AADC(3, 1); - if (sub_8007ECC()) + if (IsLinkTaskFinished()) { gUnknown_03004824->linkData[0] = 0xbbcc; Trade_SendData(gUnknown_03004824); @@ -4632,7 +4632,7 @@ static void sub_804BB78(void) switch (gUnknown_03004828->unk_00bd) { case 1: - if (sub_8007ECC()) + if (IsLinkTaskFinished()) { Trade_SendData(gUnknown_03004828); gUnknown_03004828->unk_00bd ++; @@ -5534,13 +5534,13 @@ static void sub_804DC88(void) gMain.state = 101; gUnknown_03004828->unk_00c0 = 0; } - if (sub_8007ECC()) + if (IsLinkTaskFinished()) { gMain.state = 2; } break; case 101: - if (sub_8007ECC()) + if (IsLinkTaskFinished()) { gMain.state = 2; } @@ -5592,7 +5592,7 @@ static void sub_804DC88(void) gMain.state = 42; break; case 42: - if (sub_8007ECC()) + if (IsLinkTaskFinished()) { sub_8125E04(); gSoftResetDisabled = FALSE; @@ -5607,7 +5607,7 @@ static void sub_804DC88(void) } break; case 6: - if (sub_8007ECC()) + if (IsLinkTaskFinished()) { BeginNormalPaletteFade(-1, 0, 0, 16, 0); gMain.state ++; diff --git a/src/field/field_fadetransition.c b/src/field/field_fadetransition.c index ad1cd4a59..d68be3b36 100644 --- a/src/field/field_fadetransition.c +++ b/src/field/field_fadetransition.c @@ -146,7 +146,7 @@ void sub_8080A5C(u8 taskId) task->data[0]++; break; case 1: - if (sub_8007ECC()) + if (IsLinkTaskFinished()) { pal_fill_for_map_transition(); task->data[0]++; diff --git a/src/rom3.c b/src/rom3.c index 713713162..000de8356 100644 --- a/src/rom3.c +++ b/src/rom3.c @@ -463,7 +463,7 @@ void sub_800C1A8(u8 taskId) } break; case 4: - if (sub_8007ECC()) + if (IsLinkTaskFinished()) { var = (ewram14004arr(0, gTasks[taskId].data[15]) | (ewram14004arr(1, gTasks[taskId].data[15]) << 8)); gTasks[taskId].data[13] = 1; diff --git a/src/scene/berry_blender.c b/src/scene/berry_blender.c index 7567899ae..2cb68ccf1 100644 --- a/src/scene/berry_blender.c +++ b/src/scene/berry_blender.c @@ -1163,7 +1163,7 @@ static void sub_804E9F8(void) gBerryBlenderData->framesToWait = 0; break; case 9: - if (sub_8007ECC()) + if (IsLinkTaskFinished()) { ResetBlockReceivedFlags(); if (GetMultiplayerId() == 0) @@ -1215,7 +1215,7 @@ static void sub_804E9F8(void) } break; case 13: - if (sub_8007ECC()) + if (IsLinkTaskFinished()) { gBerryBlenderData->field_0++; sub_8051414(&gBerryBlenderData->field_168); @@ -1257,7 +1257,7 @@ static void sub_804E9F8(void) gBerryBlenderData->field_0++; break; case 20: - if (sub_8007ECC()) + if (IsLinkTaskFinished()) { sub_8007E24(); gBerryBlenderData->field_0++; @@ -2506,7 +2506,7 @@ static void sub_8050954(void) case 3: if (/*multiplayerID != 0*/ GetMultiplayerId() != 0) gBerryBlenderData->field_6F++; - else if (sub_8007ECC()) + else if (IsLinkTaskFinished()) { gBerryBlenderData->field_1BC = gBerryBlenderData->gameFrameTime; gBerryBlenderData->field_1C0 = gBerryBlenderData->max_RPM; @@ -2646,7 +2646,7 @@ bool8 sub_8050CE8(void) gBerryBlenderData->framesToWait = 0; break; case 1: - if (sub_8007ECC()) + if (IsLinkTaskFinished()) { gBerryBlenderData->field_1C4++; gSoftResetDisabled = TRUE; @@ -2665,7 +2665,7 @@ bool8 sub_8050CE8(void) } break; case 4: - if (sub_8007ECC()) + if (IsLinkTaskFinished()) { if (sub_8125E6C()) gBerryBlenderData->field_1C4 = 5; @@ -2752,7 +2752,7 @@ static void sub_8050E30(void) gBerryBlenderData->field_6F++; break; case 6: - if (sub_8007ECC()) + if (IsLinkTaskFinished()) { gBerryBlenderData->framesToWait = 0; gBerryBlenderData->field_6F++; @@ -2771,7 +2771,7 @@ static void sub_8050E30(void) sub_80084A4(); break; case 9: - if (sub_8007ECC()) + if (IsLinkTaskFinished()) { BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); gBerryBlenderData->field_6F++; -- cgit v1.2.3 From 76c40aac928d139afa725182ab291436f809258d Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 23 Jan 2018 08:09:31 -0500 Subject: Clean up English/German blocks (fingers crossed) --- src/battle/contest_link_80C857C.c | 46 ++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 25 deletions(-) diff --git a/src/battle/contest_link_80C857C.c b/src/battle/contest_link_80C857C.c index 01088bf53..4fb236294 100644 --- a/src/battle/contest_link_80C857C.c +++ b/src/battle/contest_link_80C857C.c @@ -215,24 +215,22 @@ void sub_80C8734(u8 taskId) case 0: if (GetMultiplayerId() == 0) { if (IsLinkTaskFinished()) { -#if GERMAN +#if ENGLISH + memcpy(gBlockSendBuffer, gContestMons + gContestPlayerMonIndex, sizeof(struct ContestPokemon)); + sub_8007E9C(2); + gTasks[taskId].data[0]++; +#elif GERMAN if (gTasks[taskId].data[0] == 0) { gTasks[taskId].data[0] = 3; } else { -#endif - memcpy(gBlockSendBuffer, gContestMons + gContestPlayerMonIndex, sizeof(struct ContestPokemon)); -#if GERMAN - de_sub_80C9274(FALSE); -#endif - sub_8007E9C(2); -#if ENGLISH - gTasks[taskId].data[0]++; -#elif GERMAN - gTasks[taskId].data[0] = 1; - } + memcpy(gBlockSendBuffer, gContestMons + gContestPlayerMonIndex, sizeof(struct ContestPokemon)); + de_sub_80C9274(FALSE); + sub_8007E9C(2); + gTasks[taskId].data[0] = 1; + } #endif } } @@ -350,7 +348,10 @@ void sub_80C8938(u8 taskId) { if (IsLinkTaskFinished()) { -#if GERMAN +#if ENGLISH + sub_8007E9C(2); + gTasks[taskId].data[0]++; +#elif GERMAN if (gTasks[taskId].data[0] == 0) { gTasks[taskId].data[0] = 3; @@ -358,11 +359,7 @@ void sub_80C8938(u8 taskId) else { de_sub_80C9274(TRUE); -#endif - sub_8007E9C(2); -#if ENGLISH - gTasks[taskId].data[0]++; -#elif GERMAN + sub_8007E9C(2); gTasks[taskId].data[0] = 1; } #endif @@ -626,7 +623,10 @@ void sub_80C8E1C(u8 taskId) { if (IsLinkTaskFinished()) { -#if GERMAN +#if ENGLISH + sub_8007E9C(2); + gTasks[taskId].data[0]++; +#elif GERMAN if (gTasks[taskId].data[0] == 0) { gTasks[taskId].data[0] = 3; @@ -634,12 +634,8 @@ void sub_80C8E1C(u8 taskId) else { de_sub_80C9274(FALSE); -#endif - sub_8007E9C(2); -#if ENGLISH - gTasks[taskId].data[0]++; -#elif GERMAN - gTasks[taskId].data[0] = 1; + sub_8007E9C(2); + gTasks[taskId].data[0] = 1; } #endif } -- cgit v1.2.3 From e8bddb83db39e4352fd2f44d21e761de1174451d Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Fri, 26 Jan 2018 22:10:05 -0800 Subject: fix build --- src/battle/anim/guard.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/battle/anim/guard.c b/src/battle/anim/guard.c index 01cf07e39..254160109 100644 --- a/src/battle/anim/guard.c +++ b/src/battle/anim/guard.c @@ -1,4 +1,5 @@ #include "global.h" +#include "battle.h" #include "battle_anim.h" #include "rom_8077ABC.h" -- cgit v1.2.3