diff options
author | camthesaxman <cameronghall@cox.net> | 2017-12-17 22:52:24 -0600 |
---|---|---|
committer | camthesaxman <cameronghall@cox.net> | 2017-12-17 22:52:24 -0600 |
commit | c47f80b4f25fb056ccc648eec72b825e6a647edd (patch) | |
tree | e50b47555677336b4a46e0c7dbd165027341b747 | |
parent | 03d266af21522fc1e273e7ee09546c5d836a39a2 (diff) |
decompile sub_80AF1E4 - sub_80AF404
-rw-r--r-- | asm/contest.s | 325 | ||||
-rw-r--r-- | src/contest.c | 146 |
2 files changed, 142 insertions, 329 deletions
diff --git a/asm/contest.s b/asm/contest.s index 66605f3c4..ab1089ffc 100644 --- a/asm/contest.s +++ b/asm/contest.s @@ -5,331 +5,6 @@ .text - thumb_func_start sub_80AF1E4 -sub_80AF1E4: @ 80AF1E4 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - cmp r1, 0 - bne _080AF1FC - adds r0, r5, 0 - adds r0, 0xA - lsls r0, 24 - lsrs r3, r0, 24 - b _080AF1FE -_080AF1FC: - movs r3, 0xE -_080AF1FE: - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - ldr r1, _080AF21C @ =gSharedMem + 0x19260 - adds r1, r0, r1 - ldrh r0, [r1, 0x6] - cmp r0, 0 - bne _080AF228 - ldr r0, _080AF220 @ =gDisplayedStringBattle - ldr r1, _080AF224 @ =gUnknownText_MissedTurn - adds r2, r3, 0 - bl sub_80AE598 - b _080AF23A - .align 2, 0 -_080AF21C: .4byte gSharedMem + 0x19260 -_080AF220: .4byte gDisplayedStringBattle -_080AF224: .4byte gUnknownText_MissedTurn -_080AF228: - ldr r0, _080AF270 @ =gDisplayedStringBattle - ldrh r2, [r1, 0x6] - movs r1, 0xD - muls r1, r2 - ldr r2, _080AF274 @ =gMoveNames - adds r1, r2 - adds r2, r3, 0 - bl sub_80AE598 -_080AF23A: - adds r0, r5, 0 - bl sub_80AF2A0 - ldr r0, _080AF278 @ =gUnknown_03004210 - ldr r1, _080AF270 @ =gDisplayedStringBattle - lsls r2, r5, 2 - adds r2, r5 - lsls r2, 18 - movs r3, 0xAE - lsls r3, 18 - adds r2, r3 - lsrs r2, 16 - ldr r4, _080AF27C @ =gUnknown_083CA318 - lsls r5, 1 - adds r3, r5, r4 - ldrb r3, [r3] - adds r4, 0x1 - adds r5, r4 - ldrb r4, [r5] - str r4, [sp] - bl sub_8003460 - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AF270: .4byte gDisplayedStringBattle -_080AF274: .4byte gMoveNames -_080AF278: .4byte gUnknown_03004210 -_080AF27C: .4byte gUnknown_083CA318 - thumb_func_end sub_80AF1E4 - - thumb_func_start unref_sub_80AF280 -unref_sub_80AF280: @ 80AF280 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 -_080AF288: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80AF1E4 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080AF288 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end unref_sub_80AF280 - - thumb_func_start sub_80AF2A0 -sub_80AF2A0: @ 80AF2A0 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - ldr r4, _080AF2D8 @ =gUnknown_03004210 - ldr r1, _080AF2DC @ =gUnknown_083CA318 - lsrs r0, 23 - adds r2, r0, r1 - ldrb r2, [r2] - adds r1, 0x1 - adds r0, r1 - ldrb r3, [r0] - adds r0, r2, 0x7 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - adds r0, r4, 0 - movs r1, 0 - bl FillWindowRect_DefaultPalette - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AF2D8: .4byte gUnknown_03004210 -_080AF2DC: .4byte gUnknown_083CA318 - thumb_func_end sub_80AF2A0 - - thumb_func_start unref_sub_80AF2E0 -unref_sub_80AF2E0: @ 80AF2E0 - push {r4,lr} - movs r4, 0 -_080AF2E4: - adds r0, r4, 0 - bl sub_80AF2A0 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080AF2E4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end unref_sub_80AF2E0 - - thumb_func_start sub_80AF2FC -sub_80AF2FC: @ 80AF2FC - push {r4-r7,lr} - sub sp, 0x8 - movs r4, 0 - ldr r2, _080AF398 @ =gSharedMem + 0x19260 -_080AF304: - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x2] - ldrh r3, [r0, 0x4] - adds r1, r3 - strh r1, [r0, 0x4] - lsls r0, r4, 1 - add r0, sp - strh r1, [r0] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080AF304 - movs r4, 0 -_080AF326: - movs r2, 0x3 - cmp r2, r4 - bls _080AF354 -_080AF32C: - subs r5, r2, 0x1 - lsls r0, r5, 1 - mov r7, sp - adds r3, r7, r0 - lsls r0, r2, 1 - adds r2, r7, r0 - ldrh r6, [r3] - movs r0, 0 - ldrsh r1, [r3, r0] - movs r7, 0 - ldrsh r0, [r2, r7] - cmp r1, r0 - bge _080AF34C - ldrh r0, [r2] - strh r6, [r2] - strh r0, [r3] -_080AF34C: - lsls r0, r5, 24 - lsrs r2, r0, 24 - cmp r2, r4 - bhi _080AF32C -_080AF354: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _080AF326 - movs r4, 0 - ldr r0, _080AF398 @ =gSharedMem + 0x19260 - mov r12, r0 - movs r7, 0x4 - negs r7, r7 - movs r6, 0x3 -_080AF36A: - movs r2, 0 - lsls r0, r4, 3 - adds r5, r4, 0x1 - subs r0, r4 - lsls r0, 2 - mov r1, r12 - adds r3, r0, r1 - movs r4, 0x4 - ldrsh r1, [r3, r4] -_080AF37C: - lsls r0, r2, 1 - add r0, sp - movs r4, 0 - ldrsh r0, [r0, r4] - cmp r1, r0 - bne _080AF39C - ands r2, r6 - ldrb r1, [r3, 0xB] - adds r0, r7, 0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3, 0xB] - b _080AF3A6 - .align 2, 0 -_080AF398: .4byte gSharedMem + 0x19260 -_080AF39C: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3 - bls _080AF37C -_080AF3A6: - lsls r0, r5, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080AF36A - movs r0, 0x1 - bl sub_80B0F28 - bl sub_80B159C - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80AF2FC - - thumb_func_start sub_80AF3C0 -sub_80AF3C0: @ 80AF3C0 - push {lr} - ldr r2, _080AF3D0 @ =gSharedMem + 0x19260 - adds r3, r2, 0 -_080AF3C6: - ldrh r0, [r2, 0x6] - cmp r0, 0 - bne _080AF3D4 - movs r1, 0x5 - b _080AF3F2 - .align 2, 0 -_080AF3D0: .4byte gSharedMem + 0x19260 -_080AF3D4: - movs r1, 0x2 - ldrsh r0, [r2, r1] - movs r1, 0 - cmp r0, 0 - ble _080AF3F2 - movs r1, 0x1 - cmp r0, 0x1D - ble _080AF3F2 - movs r1, 0x2 - cmp r0, 0x3B - ble _080AF3F2 - movs r1, 0x4 - cmp r0, 0x4F - bgt _080AF3F2 - movs r1, 0x3 -_080AF3F2: - strb r1, [r2, 0x1A] - adds r2, 0x1C - adds r0, r3, 0 - adds r0, 0x54 - cmp r2, r0 - ble _080AF3C6 - pop {r0} - bx r0 - thumb_func_end sub_80AF3C0 - - thumb_func_start sub_80AF404 -sub_80AF404: @ 80AF404 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - ldr r0, _080AF42C @ =gSharedMem + 0x19260 - adds r2, r1, r0 - ldrb r1, [r2, 0xC] - movs r0, 0x6 - ands r0, r1 - cmp r0, 0 - bne _080AF428 - ldrb r1, [r2, 0xB] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080AF430 -_080AF428: - movs r0, 0 - b _080AF432 - .align 2, 0 -_080AF42C: .4byte gSharedMem + 0x19260 -_080AF430: - movs r0, 0x1 -_080AF432: - pop {r1} - bx r1 - thumb_func_end sub_80AF404 - thumb_func_start sub_80AF438 sub_80AF438: @ 80AF438 push {r4-r7,lr} diff --git a/src/contest.c b/src/contest.c index ff460198f..afcc75743 100644 --- a/src/contest.c +++ b/src/contest.c @@ -73,9 +73,9 @@ struct Shared19204 struct UnknownContestStruct1 { - u8 filler0[2]; - u16 unk2; // s16? - u16 unk4; + u16 unk0; + s16 unk2; // s16? + s16 unk4; u16 unk6; // move u16 unk8; u8 unkA; // contest category @@ -210,6 +210,7 @@ extern struct SpriteTemplate gUnknown_02024E8C; extern const struct ContestPokemon gContestOpponents[60]; extern const u8 gUnknown_083CA308[][2]; extern const u8 gUnknown_083CA310[][2]; +extern const u8 gUnknown_083CA318[][2]; extern const struct CompressedSpriteSheet gUnknown_083CA4BC; extern const struct SpriteTemplate gSpriteTemplate_83CA4A4; extern const struct CompressedSpriteSheet gUnknown_083CA4C4; @@ -239,6 +240,7 @@ extern const u8 gUnknown_083CB02C[]; extern const u8 *const gUnknown_083CB2F0[]; extern const u8 gUnknown_083CC59C[]; extern const u8 gUnknown_083CC5A2[]; +extern const u8 gUnknownText_MissedTurn[]; void sub_80AB350(void); @@ -310,6 +312,7 @@ void sub_80AF120(void); void sub_80AF138(void); u16 sub_80AF15C(u8); void sub_80AF1B8(void); +void sub_80AF2A0(u8); void sub_80AF2FC(void); void sub_80AF3C0(void); u8 sub_80AF59C(u8); @@ -1754,7 +1757,6 @@ void sub_80AD960(u8 taskId) sub_80AF860(); gTasks[taskId].data[0] = 1; } - //_080AD9E8 else { sub_80AF2FC(); @@ -2755,3 +2757,139 @@ void sub_80AF1B8(void) for (i = 0; i < 4; i++) shared19260_[i].unk6 = sub_80AF15C(i); } + +void sub_80AF1E4(u8 a, u8 b) +{ + u8 r3; + + if (b == 0) + r3 = a + 10; + else + r3 = 14; + if (shared19260_[a].unk6 == 0) + sub_80AE598(gDisplayedStringBattle, gUnknownText_MissedTurn, r3); + else + sub_80AE598(gDisplayedStringBattle, gMoveNames[shared19260_[a].unk6], r3); + sub_80AF2A0(a); + sub_8003460( + &gUnknown_03004210, + gDisplayedStringBattle, + 696 + a * 20, + gUnknown_083CA318[a][0], + gUnknown_083CA318[a][1]); +} + +void unref_sub_80AF280(u8 a) +{ + u8 i; + + for (i = 0; i < 4; i++) + sub_80AF1E4(i, a); +} + +void sub_80AF2A0(u8 a) +{ + FillWindowRect_DefaultPalette( + &gUnknown_03004210, + 0, + gUnknown_083CA318[a][0], + gUnknown_083CA318[a][1], + gUnknown_083CA318[a][0] + 7, + gUnknown_083CA318[a][1] + 1); +} + +void unref_sub_80AF2E0(void) +{ + u8 i; + + for (i = 0; i < 4; i++) + sub_80AF2A0(i); +} + +void sub_80AF2FC(void) +{ + u8 i; + u8 j; + s16 arr[4]; + + for (i = 0; i < 4; i++) + { + shared19260_[i].unk4 += shared19260_[i].unk2; + arr[i] = shared19260_[i].unk4; + } + for (i = 0; i < 3; i++) + { + for (j = 3; j > i; j--) + { + if (arr[j - 1] < arr[j]) + { + u16 temp = arr[j]; + + arr[j] = arr[j - 1]; + arr[j - 1] = temp; + } + } + } + for (i = 0; i < 4; i++) + { + for (j = 0; j < 4; j++) + { + if (shared19260_[i].unk4 == arr[j]) + { + shared19260_[i].unkB_0 = j; + break; + } + } + } + sub_80B0F28(1); + sub_80B159C(); +} + +void sub_80AF3C0(void) +{ + s32 i; + + for (i = 0; i < 4; i++) + { + u8 var; + + if (shared19260_[i].unk6 == 0) + var = 5; + else if (shared19260_[i].unk2 <= 0) + var = 0; + else if (shared19260_[i].unk2 < 30) + var = 1; + else if (shared19260_[i].unk2 < 60) + var = 2; + else if (shared19260_[i].unk2 < 80) + var = 3; + else + var = 4; + + shared19260_[i].unk1A = var; + } +} + +bool8 sub_80AF404(u8 a) +{ + if ((shared19260_[a].unkC & 6) || shared19260_[a].unkB_7) + return FALSE; + else + return TRUE; +} + +/* +void sub_80AF438(void) +{ + u8 r5; + + for (r5 = 0; r5 < 4; r5++) + { + shared19260_[r5].unk2 = 0; + shared19260_[r5].unk0 = 0; + shared19260_[r5].unk12 = 0; + if (shared19260_[r5].unkC & 6) + + } +} +*/
\ No newline at end of file |