summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/contest_link.c140
1 files changed, 26 insertions, 114 deletions
diff --git a/src/contest_link.c b/src/contest_link.c
index 974b9ef5d..a69d5ba3d 100644
--- a/src/contest_link.c
+++ b/src/contest_link.c
@@ -72,131 +72,43 @@ static void sub_80C8660(u8 taskId)
}
}
-#ifdef NONMATCHING
u8 GetStringLanguage(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 (StringLength(string) < OT_NAME_LENGTH - 1)
{
- 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
- ))
+ while (*string != EOS)
{
- language = LANGUAGE_JAPANESE;
- break;
+ 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 == CHAR_EXCL_MARK ||
+ *string == CHAR_QUESTION_MARK ||
+ *string == CHAR_MALE ||
+ *string == CHAR_FEMALE ||
+ *string == CHAR_SLASH ||
+ *string == CHAR_HYPHEN ||
+ *string == CHAR_ELLIPSIS ||
+ *string == CHAR_DBL_QUOT_LEFT ||
+ *string == CHAR_DBL_QUOT_RIGHT ||
+ *string == CHAR_SGL_QUOT_LEFT ||
+ *string == CHAR_DBL_QUOT_LEFT)) // Most likely a typo, CHAR_SGL_QUOT_RIGHT should be here instead.
+ {
+ string++;
+ }
+ else
+ {
+ language = LANGUAGE_JAPANESE;
+ break;
+ }
}
}
return language;
}
-#else
-NAKED u8 GetStringLanguage(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
void sub_80C8734(u8 taskId)
{