Merge pull request #93 from Cuyler36/m_mail_check_ovl_bugfixes

Add bugfixes for m_mail_check_ovl.c
This commit is contained in:
Cuyler36
2023-07-27 14:40:55 -04:00
committed by GitHub
+119
View File
@@ -122,7 +122,12 @@ static u8 str_a_table[] = {
CHAR_v, CHAR_e,
CHAR_v, CHAR_o,
CHAR_w, CHAR_a,
#ifndef BUGFIXES
0, 0
#else
CHAR_CONTROL_CODE, 0
#endif
};
static u8 str_b_table[] = {
@@ -175,7 +180,12 @@ static u8 str_b_table[] = {
CHAR_u, CHAR_t,
CHAR_u, CHAR_y,
CHAR_y, CHAR_SPACE,
#ifndef BUGFIXES
0, 0
#else
CHAR_CONTROL_CODE, 0
#endif
};
static u8 str_c_table[] = {
@@ -223,6 +233,10 @@ static u8 str_c_table[] = {
CHAR_u, CHAR_r,
CHAR_u, CHAR_s,
CHAR_u, CHAR_t,
#ifdef BUGFIXES
CHAR_CONTROL_CODE, 0
#endif
};
static u8 str_d_table[] = {
@@ -275,7 +289,12 @@ static u8 str_d_table[] = {
CHAR_u, CHAR_r,
CHAR_u, CHAR_s,
CHAR_u, CHAR_t,
#ifndef BUGFIXES
0, 0
#else
CHAR_CONTROL_CODE, 0
#endif
};
static u8 str_e_table[] = {
@@ -307,6 +326,10 @@ static u8 str_e_table[] = {
CHAR_x, CHAR_e,
CHAR_x, CHAR_p,
CHAR_y, CHAR_e,
#ifdef BUGFIXES
CHAR_CONTROL_CODE, 0
#endif
};
static u8 str_f_table[] = {
@@ -349,7 +372,12 @@ static u8 str_f_table[] = {
CHAR_u, CHAR_l,
CHAR_u, CHAR_n,
CHAR_u, CHAR_t,
#ifndef BUGFIXES
0, 0
#else
CHAR_CONTROL_CODE, 0
#endif
};
static u8 str_g_table[] = {
@@ -379,6 +407,10 @@ static u8 str_g_table[] = {
CHAR_u, CHAR_e,
CHAR_u, CHAR_i,
CHAR_u, CHAR_n,
#ifdef BUGFIXES
CHAR_CONTROL_CODE, 0
#endif
};
static u8 str_h_table[] = {
@@ -418,6 +450,10 @@ static u8 str_h_table[] = {
CHAR_u, CHAR_n,
CHAR_u, CHAR_r,
CHAR_u, CHAR_s,
#ifdef BUGFIXES
CHAR_CONTROL_CODE, 0
#endif
};
static u8 str_i_table[] = {
@@ -440,7 +476,12 @@ static u8 str_i_table[] = {
CHAR_s, CHAR_l,
CHAR_t, CHAR_SPACE,
CHAR_t, CHAR_s,
#ifndef BUGFIXES
0, 0
#else
CHAR_CONTROL_CODE, 0
#endif
};
static u8 str_j_table[] = {
@@ -453,7 +494,12 @@ static u8 str_j_table[] = {
CHAR_u, CHAR_m,
CHAR_u, CHAR_n,
CHAR_u, CHAR_s,
#ifndef BUGFIXES
0, 0
#else
CHAR_CONTROL_CODE, 0
#endif
};
static u8 str_k_table[] = {
@@ -467,6 +513,10 @@ static u8 str_k_table[] = {
CHAR_n, CHAR_e,
CHAR_n, CHAR_i,
CHAR_n, CHAR_o,
#ifdef BUGFIXES
CHAR_CONTROL_CODE, 0
#endif
};
static u8 str_l_table[] = {
@@ -510,6 +560,10 @@ static u8 str_l_table[] = {
CHAR_o, CHAR_w,
CHAR_u, CHAR_n,
CHAR_y, CHAR_i,
#ifdef BUGFIXES
CHAR_CONTROL_CODE, 0
#endif
};
static u8 str_m_table[] = {
@@ -551,6 +605,10 @@ static u8 str_m_table[] = {
CHAR_u, CHAR_s,
CHAR_y, CHAR_SPACE,
CHAR_y, CHAR_s,
#ifdef BUGFIXES
CHAR_CONTROL_CODE, 0
#endif
};
static u8 str_n_table[] = {
@@ -578,6 +636,10 @@ static u8 str_n_table[] = {
CHAR_o, CHAR_v,
CHAR_o, CHAR_w,
CHAR_u, CHAR_m,
#ifdef BUGFIXES
CHAR_CONTROL_CODE, 0
#endif
};
static u8 str_o_table[] = {
@@ -606,7 +668,12 @@ static u8 str_o_table[] = {
CHAR_u, CHAR_t,
CHAR_v, CHAR_e,
CHAR_w, CHAR_n,
#ifndef BUGFIXES
0, 0
#else
CHAR_CONTROL_CODE, 0
#endif
};
static u8 str_p_table[] = {
@@ -648,13 +715,22 @@ static u8 str_p_table[] = {
CHAR_u, CHAR_r,
CHAR_u, CHAR_s,
CHAR_u, CHAR_t,
#ifdef BUGFIXES
CHAR_CONTROL_CODE, 0
#endif
};
static u8 str_q_table[] = {
CHAR_u, CHAR_a,
CHAR_u, CHAR_e,
CHAR_u, CHAR_i,
#ifndef BUGFIXES
0, 0
#else
CHAR_CONTROL_CODE, 0
#endif
};
static u8 str_r_table[] = {
@@ -692,6 +768,10 @@ static u8 str_r_table[] = {
CHAR_u, CHAR_l,
CHAR_u, CHAR_n,
CHAR_u, CHAR_s,
#ifdef BUGFIXES
CHAR_CONTROL_CODE, 0
#endif
};
static u8 str_s_table[] = {
@@ -782,7 +862,12 @@ static u8 str_s_table[] = {
CHAR_w, CHAR_i,
CHAR_w, CHAR_u,
CHAR_y, CHAR_s,
#ifndef BUGFIXES
0, 0
#else
CHAR_CONTROL_CODE, 0
#endif
};
static u8 str_t_table[] = {
@@ -837,7 +922,12 @@ static u8 str_t_table[] = {
CHAR_w, CHAR_o,
CHAR_y, CHAR_i,
CHAR_y, CHAR_p,
#ifndef BUGFIXES
0, 0
#else
CHAR_CONTROL_CODE, 0
#endif
};
static u8 str_u_table[] = {
@@ -852,7 +942,12 @@ static u8 str_u_table[] = {
CHAR_s, CHAR_SPACE,
CHAR_s, CHAR_e,
CHAR_s, CHAR_u,
#ifndef BUGFIXES
0, 0
#else
CHAR_CONTROL_CODE, 0
#endif
};
static u8 str_v_table[] = {
@@ -866,6 +961,10 @@ static u8 str_v_table[] = {
CHAR_o, CHAR_i,
CHAR_o, CHAR_l,
CHAR_o, CHAR_t,
#ifdef BUGFIXES
CHAR_CONTROL_CODE, 0
#endif
};
static u8 str_w_table[] = {
@@ -909,6 +1008,10 @@ static u8 str_w_table[] = {
CHAR_o, CHAR_u,
CHAR_r, CHAR_i,
CHAR_r, CHAR_o,
#ifdef BUGFIXES
CHAR_CONTROL_CODE, 0
#endif
};
static u8 str_x_table[] = {
@@ -923,11 +1026,20 @@ static u8 str_y_table[] = {
CHAR_e, CHAR_s,
CHAR_e, CHAR_t,
CHAR_o, CHAR_u,
#ifndef BUGFIXES
0, 0
#else
CHAR_CONTROL_CODE, 0
#endif
};
static u8 str_z_table[] = {
CHAR_e, CHAR_r,
#ifdef BUGFIXES
CHAR_CONTROL_CODE, 0
#endif
};
static mMck_cmp_str_table_c cmp_str_table_c[26] = {
@@ -969,6 +1081,13 @@ static int mMck_cmp_key(u8* str) {
u8* str_table = cmp_str_table_c[i].str_table;
if (char0 == cmp_str_table_c[i].trigger_lower || char0 == cmp_str_table_c[i].trigger_upper) {
/*
BUG: in the NTSC-U (US version) of AC, the string tables are missing the control code character (0x7F).
The game will continue processing data as syllable values until it either reaches an unrelated 0x7F byte,
or it finds two consecutive bytes which satisfies the current syllable pair.
*/
for (str_table; str_table[0] != CHAR_CONTROL_CODE; str_table = mMck_next_key(str_table)) {
if (char1 == str_table[0] && char2 == str_table[1]) {
return TRUE; /* Valid 3-letter (syllable?) match found */