diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-03-29 08:49:22 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-03-29 08:49:22 -0400 |
commit | 7eb178c36e5d4c5dba5f600346228969f4e33b9a (patch) | |
tree | 28c906adf3bae0763ea6e62188c8ff48e4d3ecff | |
parent | 59f81c5f2a25ec77baf4a30c3da9ccb7675d1562 (diff) |
Start decompiling contest_effect
-rw-r--r-- | asm/contest_effect.s | 85 | ||||
-rw-r--r-- | include/contest.h | 1 | ||||
-rw-r--r-- | include/contest_effect.h | 6 | ||||
-rw-r--r-- | ld_script.txt | 2 | ||||
-rw-r--r-- | src/contest.c | 2 | ||||
-rw-r--r-- | src/contest_ai.c | 2 | ||||
-rw-r--r-- | src/contest_effect.c | 33 |
7 files changed, 44 insertions, 87 deletions
diff --git a/asm/contest_effect.s b/asm/contest_effect.s index 341cb0903..57ff6dfd0 100644 --- a/asm/contest_effect.s +++ b/asm/contest_effect.s @@ -5,91 +5,6 @@ .text - thumb_func_start AreMovesContestCombo -AreMovesContestCombo: @ 80B7D24 - push {r4,lr} - sub sp, 0x4 - lsls r0, 16 - lsls r1, 16 - ldr r2, _080B7D78 @ =gContestMoves - lsrs r0, 13 - adds r0, r2 - ldrb r4, [r0, 0x2] - mov r3, sp - lsrs r1, 13 - adds r1, r2 - ldrb r0, [r1, 0x3] - strb r0, [r3] - mov r2, sp - ldrb r0, [r1, 0x4] - strb r0, [r2, 0x1] - ldrb r0, [r1, 0x5] - strb r0, [r2, 0x2] - mov r0, sp - ldrb r1, [r1, 0x6] - strb r1, [r0, 0x3] - cmp r4, 0 - beq _080B7D80 - mov r0, sp - ldrb r0, [r0] - cmp r4, r0 - beq _080B7D6E - mov r0, sp - ldrb r0, [r0, 0x1] - cmp r4, r0 - beq _080B7D6E - mov r0, sp - ldrb r0, [r0, 0x2] - cmp r4, r0 - beq _080B7D6E - cmp r4, r1 - bne _080B7D80 -_080B7D6E: - ldr r0, _080B7D7C @ =gComboStarterLookupTable - adds r0, r4, r0 - ldrb r0, [r0] - b _080B7D82 - .align 2, 0 -_080B7D78: .4byte gContestMoves -_080B7D7C: .4byte gComboStarterLookupTable -_080B7D80: - movs r0, 0 -_080B7D82: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end AreMovesContestCombo - - thumb_func_start ContestEffect_00 -ContestEffect_00: @ 80B7D8C - bx lr - thumb_func_end ContestEffect_00 - - thumb_func_start ContestEffect_01 -ContestEffect_01: @ 80B7D90 - push {lr} - ldr r3, _080B7DB8 @ =gSharedMem + 0x192D0 - ldrb r1, [r3, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r3, 0 - subs r1, 0x70 - adds r0, r1 - ldrb r1, [r0, 0x10] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0, 0x10] - ldrb r0, [r3, 0x11] - movs r1, 0 - bl sub_80B13EC - pop {r0} - bx r0 - .align 2, 0 -_080B7DB8: .4byte gSharedMem + 0x192D0 - thumb_func_end ContestEffect_01 - thumb_func_start ContestEffect_02 ContestEffect_02: @ 80B7DBC push {lr} diff --git a/include/contest.h b/include/contest.h index 557b9e5c4..f8879f8a5 100644 --- a/include/contest.h +++ b/include/contest.h @@ -277,5 +277,6 @@ extern u16 gUnknown_02038688[4]; extern u8 gContestFinalStandings[4]; extern u8 gUnknown_02038696[4]; extern u8 gUnknown_0203869B; +void sub_80B13EC(u8 a, u8 b); #endif // GUARD_CONTEST_H diff --git a/include/contest_effect.h b/include/contest_effect.h new file mode 100644 index 000000000..2840bf106 --- /dev/null +++ b/include/contest_effect.h @@ -0,0 +1,6 @@ +#ifndef POKERUBY_GBA_CONTEST_EFFECT_H +#define POKERUBY_GBA_CONTEST_EFFECT_H + +extern bool8 AreMovesContestCombo(u16, u16); + +#endif //POKERUBY_GBA_CONTEST_EFFECT_H diff --git a/ld_script.txt b/ld_script.txt index 619e06350..2eae4d81c 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -160,6 +160,7 @@ SECTIONS { src/script_menu.o(.text); src/naming_screen.o(.text); src/money.o(.text); + src/contest_effect.o(.text); asm/contest_effect.o(.text); src/record_mixing.o(.text); src/debug/sound_check_menu.o(.text); @@ -594,6 +595,7 @@ SECTIONS { src/script_menu.o(.rodata); src/naming_screen.o(.rodata); src/money.o(.rodata); + src/contest_effect.o(.rodata); data/contest_effect.o(.rodata); src/record_mixing.o(.data); src/record_mixing.o(.rodata); diff --git a/src/contest.c b/src/contest.c index 84e5d807b..c27844beb 100644 --- a/src/contest.c +++ b/src/contest.c @@ -8,6 +8,7 @@ #include "battle_anim.h" #include "blend_palette.h" #include "contest.h" +#include "contest_effect.h" #include "contest_link_80C857C.h" #include "data2.h" #include "decompress.h" @@ -35,7 +36,6 @@ extern u8 gUnknown_020297ED; -extern u8 AreMovesContestCombo(u16, u16); // I don't think this is a bool extern void sub_80C8A38(u8); extern void sub_80C8AD0(u8); extern void sub_80C8C80(u8); diff --git a/src/contest_ai.c b/src/contest_ai.c index 1e249083b..63894635b 100644 --- a/src/contest_ai.c +++ b/src/contest_ai.c @@ -2,9 +2,9 @@ #include "contest.h" #include "random.h" #include "contest_ai.h" +#include "contest_effect.h" #include "ewram.h" -extern u8 AreMovesContestCombo(u16, u16); extern bool8 sub_80B214C(u8); extern bool8 Contest_IsMonsTurnDisabled(u8); diff --git a/src/contest_effect.c b/src/contest_effect.c new file mode 100644 index 000000000..f1606517b --- /dev/null +++ b/src/contest_effect.c @@ -0,0 +1,33 @@ +#include "global.h" +#include "ewram.h" +#include "contest.h" + +extern bool8 const gComboStarterLookupTable[]; + +bool8 AreMovesContestCombo(u16 lastMove, u16 nextMove) { + u8 nextMoveComboMoves[4]; + u8 lastMoveComboStarterId = gContestMoves[lastMove].comboStarterId; + nextMoveComboMoves[0] = gContestMoves[nextMove].comboMoves[0]; + nextMoveComboMoves[1] = gContestMoves[nextMove].comboMoves[1]; + nextMoveComboMoves[2] = gContestMoves[nextMove].comboMoves[2]; + nextMoveComboMoves[3] = gContestMoves[nextMove].comboMoves[3]; + + if (lastMoveComboStarterId == 0) + return 0; + + if (lastMoveComboStarterId == nextMoveComboMoves[0] || lastMoveComboStarterId == nextMoveComboMoves[1] || lastMoveComboStarterId == nextMoveComboMoves[2] || lastMoveComboStarterId == nextMoveComboMoves[3]) + return gComboStarterLookupTable[lastMoveComboStarterId]; + + return 0; +} + +void ContestEffect_00(void) +{ +} + +void ContestEffect_01(void) +{ + sContestantStatus[shared192D0.unk11].unk10_2 = TRUE; + sub_80B13EC(shared192D0.unk11, 0); +} + |