summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMarcus Huderle <huderlem@gmail.com>2018-11-26 16:57:36 -0600
committerGitHub <noreply@github.com>2018-11-26 16:57:36 -0600
commitc233dbb220b9836ef4735d0261445040e028877e (patch)
tree49825aa6123584dcec5409dff79db06d2d012477 /src
parent65622d34cdd08a74b6371b8d399d656bf21cc9b3 (diff)
parent132a486169b05eee87bfec0a34f16703e41843c3 (diff)
Merge pull request #400 from DizzyEggg/util
Match sub_080F8970
Diffstat (limited to 'src')
-rw-r--r--src/rock.c4
-rwxr-xr-xsrc/script_pokemon_util_80F87D8.c200
2 files changed, 12 insertions, 192 deletions
diff --git a/src/rock.c b/src/rock.c
index d39293547..3b8e505d8 100644
--- a/src/rock.c
+++ b/src/rock.c
@@ -431,7 +431,7 @@ void AnimTask_LoadSandstormBackground(u8 taskId)
}
static void sub_8110CB0(u8 taskId)
-{
+{
struct UnknownAnimStruct2 unknownStruct;
if (gTasks[taskId].data[0] == 0)
@@ -718,7 +718,7 @@ static void sub_8111214(struct Task *task)
x += (task->data[12] * 4);
spriteId = CreateSprite(spriteTemplate, x, y, 35);
- if (spriteId != 64)
+ if (spriteId != MAX_SPRITES)
{
gSprites[spriteId].data[0] = 18;
gSprites[spriteId].data[2] = ((task->data[12] * 20) + x) + (task->data[1] * 3);
diff --git a/src/script_pokemon_util_80F87D8.c b/src/script_pokemon_util_80F87D8.c
index 415aec4ea..7fc61f953 100755
--- a/src/script_pokemon_util_80F87D8.c
+++ b/src/script_pokemon_util_80F87D8.c
@@ -38,7 +38,7 @@ extern const struct CompressedSpriteSheet gMonFrontPicTable[];
extern u8 gSelectedOrderFromParty[];
-const u8 gUnknown_0858D8EC[] = { 3, 4, 5, 14 };
+static const u8 gUnknown_0858D8EC[] = { 3, 4, 5, 14 };
static void sub_80F8EE8(u8 taskId);
static void sub_80F9088(u8 taskId);
@@ -144,21 +144,19 @@ u8 sub_80F8940(void)
return var0;
}
-#ifdef NONMATCHING
void sub_80F8970(void)
{
s16 sp[4];
int i, j;
s16 condition;
- u8 var2;
- u8 var1;
s8 var0;
+ u8 var2;
+ u8 r8;
u8 r7;
for (i = 0; i < 4; i++)
sp[i] = gContestMonConditions[i];
-
for (i = 0; i < 3; i++)
{
for (j = 3; j > i; j--)
@@ -174,14 +172,14 @@ void sub_80F8970(void)
condition = sp[gSpecialVar_0x8006];
var0 = 0;
- var1 = 0;
+ r8 = 0;
for (i = 0; i < 4; i++)
{
if (sp[i] == condition)
{
var0++;
if (i == gSpecialVar_0x8006)
- var1 = var0;
+ r8 = var0;
}
}
@@ -192,7 +190,7 @@ void sub_80F8970(void)
}
r7 = i;
- var2 = var1;
+ var2 = r8;
for (i = 0; i < 4; i++)
{
if (condition == gContestMonConditions[i])
@@ -207,191 +205,13 @@ void sub_80F8970(void)
StringCopy(gStringVar2, gContestMons[i].trainerName);
sub_81DB5AC(gStringVar2);
- if (var0 == 1 || var1 == var0)
+ if (var0 == 1)
+ gSpecialVar_0x8006 = r7;
+ else if (r8 == var0)
gSpecialVar_0x8006 = r7;
else
gSpecialVar_0x8006 = r7 + 4;
}
-#else
-NAKED
-void sub_80F8970(void)
-{
- asm_unified("\n\
- push {r4-r7,lr}\n\
- mov r7, r10\n\
- mov r6, r9\n\
- mov r5, r8\n\
- push {r5-r7}\n\
- sub sp, 0x8\n\
- ldr r0, =gContestMonConditions\n\
- mov r12, r0\n\
- ldr r1, =gSpecialVar_0x8006\n\
- mov r9, r1\n\
- ldr r2, =gContestMons + 2\n\
- mov r10, r2\n\
- mov r2, r12\n\
- mov r1, sp\n\
- movs r6, 0x3\n\
-_080F898E:\n\
- ldrh r0, [r2]\n\
- strh r0, [r1]\n\
- adds r2, 0x2\n\
- adds r1, 0x2\n\
- subs r6, 0x1\n\
- cmp r6, 0\n\
- bge _080F898E\n\
- movs r6, 0\n\
-_080F899E:\n\
- movs r1, 0x3\n\
- cmp r1, r6\n\
- ble _080F89C8\n\
-_080F89A4:\n\
- subs r5, r1, 0x1\n\
- lsls r0, r5, 1\n\
- mov r4, sp\n\
- adds r3, r4, r0\n\
- lsls r0, r1, 1\n\
- adds r2, r4, r0\n\
- ldrh r4, [r3]\n\
- movs r7, 0\n\
- ldrsh r1, [r3, r7]\n\
- movs r7, 0\n\
- ldrsh r0, [r2, r7]\n\
- cmp r1, r0\n\
- bge _080F89C2\n\
- strh r4, [r2]\n\
- strh r0, [r3]\n\
-_080F89C2:\n\
- adds r1, r5, 0\n\
- cmp r1, r6\n\
- bgt _080F89A4\n\
-_080F89C8:\n\
- adds r6, 0x1\n\
- cmp r6, 0x2\n\
- ble _080F899E\n\
- mov r2, r9\n\
- ldrh r0, [r2]\n\
- lsls r0, 1\n\
- add r0, sp\n\
- ldrh r0, [r0]\n\
- movs r2, 0\n\
- mov r8, r2\n\
- movs r6, 0\n\
- lsls r0, 16\n\
- asrs r4, r0, 16\n\
- adds r3, r0, 0\n\
- mov r1, sp\n\
- mov r5, r9\n\
-_080F89E8:\n\
- movs r7, 0\n\
- ldrsh r0, [r1, r7]\n\
- cmp r0, r4\n\
- bne _080F8A02\n\
- lsls r0, r2, 24\n\
- movs r2, 0x80\n\
- lsls r2, 17\n\
- adds r0, r2\n\
- lsrs r2, r0, 24\n\
- ldrh r7, [r5]\n\
- cmp r6, r7\n\
- bne _080F8A02\n\
- mov r8, r2\n\
-_080F8A02:\n\
- adds r1, 0x2\n\
- adds r6, 0x1\n\
- cmp r6, 0x3\n\
- ble _080F89E8\n\
- movs r6, 0\n\
- mov r0, sp\n\
- movs r1, 0\n\
- ldrsh r0, [r0, r1]\n\
- asrs r1, r3, 16\n\
- lsls r2, 24\n\
- mov r9, r2\n\
- cmp r0, r1\n\
- beq _080F8A30\n\
- adds r2, r1, 0\n\
- mov r1, sp\n\
-_080F8A20:\n\
- adds r1, 0x2\n\
- adds r6, 0x1\n\
- cmp r6, 0x3\n\
- bgt _080F8A30\n\
- movs r4, 0\n\
- ldrsh r0, [r1, r4]\n\
- cmp r0, r2\n\
- bne _080F8A20\n\
-_080F8A30:\n\
- lsls r0, r6, 24\n\
- lsrs r7, r0, 24\n\
- mov r2, r8\n\
- movs r6, 0\n\
- asrs r1, r3, 16\n\
- mov r5, r12\n\
- movs r4, 0\n\
- ldrsh r0, [r5, r4]\n\
- b _080F8A66\n\
- .pool\n\
-_080F8A50:\n\
- subs r0, r2, 0x1\n\
- lsls r0, 24\n\
- lsrs r2, r0, 24\n\
-_080F8A56:\n\
- adds r6, 0x1\n\
- cmp r6, 0x3\n\
- bgt _080F8A6E\n\
- lsls r0, r6, 1\n\
- add r0, r12\n\
- asrs r1, r3, 16\n\
- movs r5, 0\n\
- ldrsh r0, [r0, r5]\n\
-_080F8A66:\n\
- cmp r1, r0\n\
- bne _080F8A56\n\
- cmp r2, 0x1\n\
- bne _080F8A50\n\
-_080F8A6E:\n\
- lsls r4, r6, 6\n\
- mov r0, r10\n\
- adds r1, r4, r0\n\
- ldr r0, =gStringVar1\n\
- bl StringCopy\n\
- ldr r5, =gStringVar2\n\
- mov r0, r10\n\
- adds r0, 0xB\n\
- adds r4, r0\n\
- adds r0, r5, 0\n\
- adds r1, r4, 0\n\
- bl StringCopy\n\
- adds r0, r5, 0\n\
- bl sub_81DB5AC\n\
- mov r1, r9\n\
- asrs r0, r1, 24\n\
- cmp r0, 0x1\n\
- beq _080F8A9C\n\
- cmp r8, r0\n\
- bne _080F8AB0\n\
-_080F8A9C:\n\
- ldr r0, =gSpecialVar_0x8006\n\
- strh r7, [r0]\n\
- b _080F8AB6\n\
- .pool\n\
-_080F8AB0:\n\
- ldr r1, =gSpecialVar_0x8006\n\
- adds r0, r7, 0x4\n\
- strh r0, [r1]\n\
-_080F8AB6:\n\
- add sp, 0x8\n\
- pop {r3-r5}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- mov r10, r5\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .pool");
-}
-#endif // NONMATCHING
static void ShowContestWinnerCleanup(void)
{
@@ -475,7 +295,7 @@ u8 GiveMonArtistRibbon(void)
SetMonData(&gPlayerParty[gUnknown_02039F24], MON_DATA_ARTIST_RIBBON, &hasArtistRibbon);
if (GetRibbonCount(&gPlayerParty[gUnknown_02039F24]) > 4)
sub_80EE4DC(&gPlayerParty[gUnknown_02039F24], MON_DATA_ARTIST_RIBBON);
-
+
return 1;
}
else