diff --git a/include/game/gamework_data.h b/include/game/gamework_data.h index 2038a68b..52d2eb72 100644 --- a/include/game/gamework_data.h +++ b/include/game/gamework_data.h @@ -105,7 +105,7 @@ typedef struct player_state { typedef struct game_stat { /* 0x0 */ s16 unk_00; -/* 0x2 */ s8 language; +/* 0x2 */ u8 language; /* 0x3 */ u8 sound_mode; /* 0x4 */ s8 rumble; /* 0x6 */ u16 total_stars; @@ -147,4 +147,9 @@ extern PlayerState GWPlayer[4]; extern SystemState GWSystem; extern GameStat GWGameStat; +static inline s32 GWLanguageGet(void) +{ + return GWGameStat.language; +} + #endif diff --git a/src/game/board/main.c b/src/game/board/main.c index 303ef88a..55c89fcd 100644 --- a/src/game/board/main.c +++ b/src/game/board/main.c @@ -2042,13 +2042,8 @@ void BoardLast5GfxInit(void) prio = 1400; } spr_file = last5GfxSprTbl[i]; - if(i == 2 && work->is_last) { - //FIXME: unnecessary extsb during comparison - s8 language = GWGameStat.language; - if(language != 0) { - spr_file = MAKE_DATA_NUM(DATADIR_BOARD, 98); - } - + if(i == 2 && work->is_last && GWLanguageGet() != 0) { + spr_file = MAKE_DATA_NUM(DATADIR_BOARD, 98); } BoardSpriteCreate(spr_file, prio, NULL, &work->sprites[i]); HuSprGrpMemberSet(work->group, i, work->sprites[i]); diff --git a/src/game/window.c b/src/game/window.c index 92d30fa4..91e72636 100644 --- a/src/game/window.c +++ b/src/game/window.c @@ -201,14 +201,12 @@ void HuWindowInit(void) { void HuWinInit(s32 mess_data_no) { s16 i; void *anim_data; - s8 language; if (!winProc) { HuAR_ARAMtoMRAM(winAMemP); winProc = HuPrcCreate(HuWinProc, 0x64, 0x1000, 0); HuPrcSetStat(winProc, 0xC); - language = GWGameStat.language; - LanguageNo = language; + LanguageNo = GWLanguageGet(); messDataNo = mess_data_no; fontWidthP = (LanguageNo == 0) ? charWJTbl : charWETbl; HuWinMesRead(mess_data_no);