through sub_80D883C
This commit is contained in:
-282
@@ -5,288 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start sub_80D8610
|
|
||||||
sub_80D8610: @ 80D8610
|
|
||||||
push {r4-r7,lr}
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r7, r0, 24
|
|
||||||
movs r6, 0
|
|
||||||
ldr r3, =gMain
|
|
||||||
ldr r1, =gContestMons
|
|
||||||
ldr r0, =gContestPlayerMonIndex
|
|
||||||
ldrb r0, [r0]
|
|
||||||
lsls r0, 6
|
|
||||||
adds r1, 0x1E
|
|
||||||
adds r1, r0, r1
|
|
||||||
movs r2, 0x3
|
|
||||||
_080D8628:
|
|
||||||
ldrh r0, [r1]
|
|
||||||
cmp r0, 0
|
|
||||||
beq _080D8634
|
|
||||||
adds r0, r6, 0x1
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r6, r0, 24
|
|
||||||
_080D8634:
|
|
||||||
adds r1, 0x2
|
|
||||||
subs r2, 0x1
|
|
||||||
cmp r2, 0
|
|
||||||
bge _080D8628
|
|
||||||
ldrh r0, [r3, 0x2E]
|
|
||||||
movs r5, 0x1
|
|
||||||
ands r5, r0
|
|
||||||
cmp r5, 0
|
|
||||||
beq _080D8670
|
|
||||||
movs r0, 0x5
|
|
||||||
bl PlaySE
|
|
||||||
ldr r0, =gTasks
|
|
||||||
lsls r1, r7, 2
|
|
||||||
adds r1, r7
|
|
||||||
lsls r1, 3
|
|
||||||
adds r1, r0
|
|
||||||
ldr r0, =sub_80D8894
|
|
||||||
str r0, [r1]
|
|
||||||
b _080D87FA
|
|
||||||
.pool
|
|
||||||
_080D8670:
|
|
||||||
ldrh r0, [r3, 0x30]
|
|
||||||
cmp r0, 0x20
|
|
||||||
bne _080D8678
|
|
||||||
b _080D87FA
|
|
||||||
_080D8678:
|
|
||||||
cmp r0, 0x20
|
|
||||||
bgt _080D8682
|
|
||||||
cmp r0, 0x2
|
|
||||||
beq _080D868E
|
|
||||||
b _080D87FA
|
|
||||||
_080D8682:
|
|
||||||
cmp r0, 0x40
|
|
||||||
beq _080D8730
|
|
||||||
cmp r0, 0x80
|
|
||||||
bne _080D868C
|
|
||||||
b _080D879C
|
|
||||||
_080D868C:
|
|
||||||
b _080D87FA
|
|
||||||
_080D868E:
|
|
||||||
movs r0, 0x5
|
|
||||||
bl PlaySE
|
|
||||||
movs r0, 0
|
|
||||||
bl sub_80DC490
|
|
||||||
ldr r0, =gStringVar1
|
|
||||||
ldr r1, =gContestResources
|
|
||||||
ldr r1, [r1]
|
|
||||||
ldr r1, [r1]
|
|
||||||
ldrb r1, [r1, 0x1]
|
|
||||||
adds r1, 0x1
|
|
||||||
movs r2, 0
|
|
||||||
movs r3, 0x1
|
|
||||||
bl ConvertIntToDecimalStringN
|
|
||||||
ldr r0, =gContestPlayerMonIndex
|
|
||||||
ldrb r0, [r0]
|
|
||||||
bl sub_80DBCA8
|
|
||||||
lsls r0, 24
|
|
||||||
cmp r0, 0
|
|
||||||
bne _080D86DC
|
|
||||||
ldr r0, =gDisplayedStringBattle
|
|
||||||
ldr r1, =gText_0827D507
|
|
||||||
bl StringCopy
|
|
||||||
b _080D86E4
|
|
||||||
.pool
|
|
||||||
_080D86DC:
|
|
||||||
ldr r0, =gDisplayedStringBattle
|
|
||||||
ldr r1, =gText_0827D531
|
|
||||||
bl StringCopy
|
|
||||||
_080D86E4:
|
|
||||||
bl sub_80DB89C
|
|
||||||
ldr r4, =gStringVar4
|
|
||||||
ldr r1, =gDisplayedStringBattle
|
|
||||||
adds r0, r4, 0
|
|
||||||
bl StringExpandPlaceholders
|
|
||||||
adds r0, r4, 0
|
|
||||||
movs r1, 0
|
|
||||||
bl sub_80DEC30
|
|
||||||
ldr r0, =gBattle_BG0_Y
|
|
||||||
movs r1, 0
|
|
||||||
strh r1, [r0]
|
|
||||||
ldr r0, =gBattle_BG2_Y
|
|
||||||
strh r1, [r0]
|
|
||||||
ldr r1, =gTasks
|
|
||||||
lsls r0, r7, 2
|
|
||||||
adds r0, r7
|
|
||||||
lsls r0, 3
|
|
||||||
adds r0, r1
|
|
||||||
ldr r1, =sub_80D8424
|
|
||||||
str r1, [r0]
|
|
||||||
b _080D87FA
|
|
||||||
.pool
|
|
||||||
_080D8730:
|
|
||||||
ldr r4, =gContestResources
|
|
||||||
ldr r0, [r4]
|
|
||||||
ldr r0, [r0]
|
|
||||||
ldrb r0, [r0]
|
|
||||||
lsls r0, 24
|
|
||||||
asrs r0, 24
|
|
||||||
bl sub_80D883C
|
|
||||||
ldr r0, [r4]
|
|
||||||
ldr r1, [r0]
|
|
||||||
ldrb r0, [r1]
|
|
||||||
cmp r0, 0
|
|
||||||
bne _080D8754
|
|
||||||
subs r0, r6, 0x1
|
|
||||||
b _080D8756
|
|
||||||
.pool
|
|
||||||
_080D8754:
|
|
||||||
subs r0, 0x1
|
|
||||||
_080D8756:
|
|
||||||
strb r0, [r1]
|
|
||||||
ldr r4, =gContestResources
|
|
||||||
ldr r0, [r4]
|
|
||||||
ldr r0, [r0]
|
|
||||||
ldrb r0, [r0]
|
|
||||||
lsls r0, 24
|
|
||||||
asrs r0, 24
|
|
||||||
bl sub_80D880C
|
|
||||||
ldr r2, =gContestMons
|
|
||||||
ldr r0, [r4]
|
|
||||||
ldr r0, [r0]
|
|
||||||
ldrb r1, [r0]
|
|
||||||
lsls r1, 1
|
|
||||||
ldr r0, =gContestPlayerMonIndex
|
|
||||||
ldrb r0, [r0]
|
|
||||||
lsls r0, 6
|
|
||||||
adds r1, r0
|
|
||||||
adds r2, 0x1E
|
|
||||||
adds r1, r2
|
|
||||||
ldrh r0, [r1]
|
|
||||||
bl prints_contest_move_description
|
|
||||||
cmp r6, 0x1
|
|
||||||
bls _080D87FA
|
|
||||||
movs r0, 0x5
|
|
||||||
bl PlaySE
|
|
||||||
b _080D87FA
|
|
||||||
.pool
|
|
||||||
_080D879C:
|
|
||||||
ldr r4, =gContestResources
|
|
||||||
ldr r0, [r4]
|
|
||||||
ldr r0, [r0]
|
|
||||||
ldrb r0, [r0]
|
|
||||||
lsls r0, 24
|
|
||||||
asrs r0, 24
|
|
||||||
bl sub_80D883C
|
|
||||||
ldr r0, [r4]
|
|
||||||
ldr r1, [r0]
|
|
||||||
ldrb r2, [r1]
|
|
||||||
subs r0, r6, 0x1
|
|
||||||
cmp r2, r0
|
|
||||||
bne _080D87C0
|
|
||||||
strb r5, [r1]
|
|
||||||
b _080D87C4
|
|
||||||
.pool
|
|
||||||
_080D87C0:
|
|
||||||
adds r0, r2, 0x1
|
|
||||||
strb r0, [r1]
|
|
||||||
_080D87C4:
|
|
||||||
ldr r4, =gContestResources
|
|
||||||
ldr r0, [r4]
|
|
||||||
ldr r0, [r0]
|
|
||||||
ldrb r0, [r0]
|
|
||||||
lsls r0, 24
|
|
||||||
asrs r0, 24
|
|
||||||
bl sub_80D880C
|
|
||||||
ldr r2, =gContestMons
|
|
||||||
ldr r0, [r4]
|
|
||||||
ldr r0, [r0]
|
|
||||||
ldrb r1, [r0]
|
|
||||||
lsls r1, 1
|
|
||||||
ldr r0, =gContestPlayerMonIndex
|
|
||||||
ldrb r0, [r0]
|
|
||||||
lsls r0, 6
|
|
||||||
adds r1, r0
|
|
||||||
adds r2, 0x1E
|
|
||||||
adds r1, r2
|
|
||||||
ldrh r0, [r1]
|
|
||||||
bl prints_contest_move_description
|
|
||||||
cmp r6, 0x1
|
|
||||||
bls _080D87FA
|
|
||||||
movs r0, 0x5
|
|
||||||
bl PlaySE
|
|
||||||
_080D87FA:
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.pool
|
|
||||||
thumb_func_end sub_80D8610
|
|
||||||
|
|
||||||
thumb_func_start sub_80D880C
|
|
||||||
sub_80D880C: @ 80D880C
|
|
||||||
push {lr}
|
|
||||||
sub sp, 0x10
|
|
||||||
adds r3, r0, 0
|
|
||||||
lsls r3, 25
|
|
||||||
movs r0, 0xF8
|
|
||||||
lsls r0, 21
|
|
||||||
adds r3, r0
|
|
||||||
lsrs r3, 24
|
|
||||||
movs r0, 0x2
|
|
||||||
str r0, [sp]
|
|
||||||
str r0, [sp, 0x4]
|
|
||||||
movs r0, 0x11
|
|
||||||
str r0, [sp, 0x8]
|
|
||||||
movs r0, 0x1
|
|
||||||
str r0, [sp, 0xC]
|
|
||||||
movs r0, 0x2
|
|
||||||
movs r1, 0x37
|
|
||||||
movs r2, 0
|
|
||||||
bl sub_80DECB8
|
|
||||||
add sp, 0x10
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
thumb_func_end sub_80D880C
|
|
||||||
|
|
||||||
thumb_func_start sub_80D883C
|
|
||||||
sub_80D883C: @ 80D883C
|
|
||||||
push {r4-r6,lr}
|
|
||||||
mov r6, r8
|
|
||||||
push {r6}
|
|
||||||
sub sp, 0x10
|
|
||||||
adds r4, r0, 0
|
|
||||||
lsls r4, 24
|
|
||||||
asrs r4, 23
|
|
||||||
adds r3, r4, 0
|
|
||||||
adds r3, 0x1F
|
|
||||||
lsls r3, 24
|
|
||||||
lsrs r3, 24
|
|
||||||
movs r0, 0x2
|
|
||||||
mov r8, r0
|
|
||||||
str r0, [sp]
|
|
||||||
movs r5, 0x1
|
|
||||||
str r5, [sp, 0x4]
|
|
||||||
movs r6, 0x11
|
|
||||||
str r6, [sp, 0x8]
|
|
||||||
str r5, [sp, 0xC]
|
|
||||||
movs r1, 0xB
|
|
||||||
movs r2, 0
|
|
||||||
bl sub_80DECB8
|
|
||||||
adds r4, 0x20
|
|
||||||
lsls r4, 24
|
|
||||||
lsrs r4, 24
|
|
||||||
mov r0, r8
|
|
||||||
str r0, [sp]
|
|
||||||
str r5, [sp, 0x4]
|
|
||||||
str r6, [sp, 0x8]
|
|
||||||
str r5, [sp, 0xC]
|
|
||||||
movs r0, 0x2
|
|
||||||
movs r1, 0xB
|
|
||||||
movs r2, 0
|
|
||||||
adds r3, r4, 0
|
|
||||||
bl sub_80DECB8
|
|
||||||
add sp, 0x10
|
|
||||||
pop {r3}
|
|
||||||
mov r8, r3
|
|
||||||
pop {r4-r6}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
thumb_func_end sub_80D883C
|
|
||||||
|
|
||||||
thumb_func_start sub_80D8894
|
thumb_func_start sub_80D8894
|
||||||
sub_80D8894: @ 80D8894
|
sub_80D8894: @ 80D8894
|
||||||
push {r4,r5,lr}
|
push {r4,r5,lr}
|
||||||
|
|||||||
+80
-3
@@ -54,11 +54,10 @@ void vblank_cb_battle(void);
|
|||||||
void sub_80D823C(void);
|
void sub_80D823C(void);
|
||||||
void sub_80D833C(u8 taskId);
|
void sub_80D833C(u8 taskId);
|
||||||
void sub_80D8424(u8);
|
void sub_80D8424(u8);
|
||||||
bool8 AreMovesContestCombo(u16, u16);
|
|
||||||
void sub_80D8610(u8);
|
void sub_80D8610(u8);
|
||||||
void sub_80D880C(s8);
|
|
||||||
void prints_contest_move_description(u16);
|
|
||||||
void sub_80D8490(u8);
|
void sub_80D8490(u8);
|
||||||
|
void sub_80D880C(s8);
|
||||||
|
void sub_80D883C(s8);
|
||||||
void sub_80D8894(u8);
|
void sub_80D8894(u8);
|
||||||
u8 sub_80DB0C4(void);
|
u8 sub_80DB0C4(void);
|
||||||
u8 sub_80DB120(void);
|
u8 sub_80DB120(void);
|
||||||
@@ -85,6 +84,9 @@ void sub_80DEA20(void);
|
|||||||
void sub_80DEBD0(u32, u8 *, u8, u8, u8);
|
void sub_80DEBD0(u32, u8 *, u8, u8, u8);
|
||||||
void sub_80DEC30(u8 *, u8);
|
void sub_80DEC30(u8 *, u8);
|
||||||
bool32 sub_80DED4C(void);
|
bool32 sub_80DED4C(void);
|
||||||
|
bool8 AreMovesContestCombo(u16, u16);
|
||||||
|
void prints_contest_move_description(u16);
|
||||||
|
void sub_80DECB8(u8, u16, u8, u8, u8, u8, u8, u8);
|
||||||
|
|
||||||
|
|
||||||
EWRAM_DATA struct ContestPokemon gContestMons[4] = {0};
|
EWRAM_DATA struct ContestPokemon gContestMons[4] = {0};
|
||||||
@@ -681,3 +683,78 @@ void sub_80D8490(u8 taskId)
|
|||||||
prints_contest_move_description(gContestMons[gContestPlayerMonIndex].moves[gContestResources->field_0->playerMoveChoice]);
|
prints_contest_move_description(gContestMons[gContestPlayerMonIndex].moves[gContestResources->field_0->playerMoveChoice]);
|
||||||
gTasks[taskId].func = sub_80D8610;
|
gTasks[taskId].func = sub_80D8610;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void sub_80D8610(u8 taskId)
|
||||||
|
{
|
||||||
|
u8 numMoves = 0;
|
||||||
|
s32 i;
|
||||||
|
|
||||||
|
for (i = 0; i < 4; i++)
|
||||||
|
{
|
||||||
|
if (gContestMons[gContestPlayerMonIndex].moves[i] != MOVE_NONE)
|
||||||
|
numMoves++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gMain.newKeys & A_BUTTON)
|
||||||
|
{
|
||||||
|
PlaySE(SE_SELECT);
|
||||||
|
gTasks[taskId].func = sub_80D8894;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
switch (gMain.newAndRepeatedKeys)
|
||||||
|
{
|
||||||
|
case B_BUTTON:
|
||||||
|
PlaySE(SE_SELECT);
|
||||||
|
sub_80DC490(FALSE);
|
||||||
|
ConvertIntToDecimalStringN(gStringVar1, gContestResources->field_0->turnNumber + 1, STR_CONV_MODE_LEFT_ALIGN, 1);
|
||||||
|
if (!sub_80DBCA8(gContestPlayerMonIndex))
|
||||||
|
StringCopy(gDisplayedStringBattle, gText_0827D507);
|
||||||
|
else
|
||||||
|
StringCopy(gDisplayedStringBattle, gText_0827D531);
|
||||||
|
sub_80DB89C();
|
||||||
|
StringExpandPlaceholders(gStringVar4, gDisplayedStringBattle);
|
||||||
|
sub_80DEC30(gStringVar4, 0);
|
||||||
|
gBattle_BG0_Y = 0;
|
||||||
|
gBattle_BG2_Y = 0;
|
||||||
|
gTasks[taskId].func = sub_80D8424;
|
||||||
|
break;
|
||||||
|
case DPAD_LEFT:
|
||||||
|
case DPAD_RIGHT:
|
||||||
|
break;
|
||||||
|
case DPAD_UP:
|
||||||
|
sub_80D883C(gContestResources->field_0->playerMoveChoice);
|
||||||
|
if (gContestResources->field_0->playerMoveChoice == 0)
|
||||||
|
gContestResources->field_0->playerMoveChoice = numMoves - 1;
|
||||||
|
else
|
||||||
|
gContestResources->field_0->playerMoveChoice--;
|
||||||
|
sub_80D880C(gContestResources->field_0->playerMoveChoice);
|
||||||
|
prints_contest_move_description(gContestMons[gContestPlayerMonIndex].moves[gContestResources->field_0->playerMoveChoice]);
|
||||||
|
if (numMoves > 1)
|
||||||
|
PlaySE(SE_SELECT);
|
||||||
|
break;
|
||||||
|
case DPAD_DOWN:
|
||||||
|
sub_80D883C(gContestResources->field_0->playerMoveChoice);
|
||||||
|
if (gContestResources->field_0->playerMoveChoice == numMoves - 1)
|
||||||
|
gContestResources->field_0->playerMoveChoice = 0;
|
||||||
|
else
|
||||||
|
gContestResources->field_0->playerMoveChoice++;
|
||||||
|
sub_80D880C(gContestResources->field_0->playerMoveChoice);
|
||||||
|
prints_contest_move_description(gContestMons[gContestPlayerMonIndex].moves[gContestResources->field_0->playerMoveChoice]);
|
||||||
|
if (numMoves > 1)
|
||||||
|
PlaySE(SE_SELECT);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_80D880C(s8 a0)
|
||||||
|
{
|
||||||
|
sub_80DECB8(2, 55, 0, 31 + a0 * 2, 2, 2, 17, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_80D883C(s8 a0)
|
||||||
|
{
|
||||||
|
sub_80DECB8(2, 11, 0, 31 + a0 * 2, 2, 1, 17, 1);
|
||||||
|
sub_80DECB8(2, 11, 0, 32 + a0 * 2, 2, 1, 17, 1);
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user