summaryrefslogtreecommitdiff
path: root/src/d
diff options
context:
space:
mode:
authorElijah Thomas <42302100+elijah-thomas774@users.noreply.github.com>2025-09-27 12:38:36 -0400
committerGitHub <noreply@github.com>2025-09-27 12:38:36 -0400
commit3c4bfedd5d1591c60bddffe0cd196c90db852cfc (patch)
treed6cf396866b41a12584796962598c413a622dfc7 /src/d
parent74aef290933bf0183d839c7b24a2330f470a6997 (diff)
parent183ce0e86f7c7796568607b5239035406ea448d2 (diff)
Merge pull request #256 from robojumper/d_lang
d_lang OK
Diffstat (limited to 'src/d')
-rw-r--r--src/d/d_dvd_drive_error.cpp9
-rw-r--r--src/d/d_lang.cpp19
-rw-r--r--src/d/d_message.cpp8
-rw-r--r--src/d/lyt/d_lyt_auto_explain.cpp5
-rw-r--r--src/d/lyt/d_lyt_game_over.cpp9
-rw-r--r--src/d/lyt/d_lyt_pause.cpp2
6 files changed, 34 insertions, 18 deletions
diff --git a/src/d/d_dvd_drive_error.cpp b/src/d/d_dvd_drive_error.cpp
index d27fdedc..461c98c4 100644
--- a/src/d/d_dvd_drive_error.cpp
+++ b/src/d/d_dvd_drive_error.cpp
@@ -2,6 +2,7 @@
#include "d/d_dvd_unk.h"
#include "d/d_gfx.h"
+#include "d/d_lang.h"
#include "d/d_lyt_hio.h"
#include "d/d_reset.h"
#include "egg/gfx/eggDrawGX.h"
@@ -64,8 +65,6 @@ static const wchar_t *sErrorsFr[] = {
sErrFrDiskError,
};
-extern "C" u8 fn_80054F30();
-
void dDvdDriveError_c::draw() {
EGG::Screen screen;
screen.SetCanvasMode(EGG::Screen::CANVASMODE_0);
@@ -105,11 +104,11 @@ void dDvdDriveError_c::draw() {
idx = 2;
}
- u8 lang = fn_80054F30();
+ u8 lang = getCurrentLanguage1();
const wchar_t *str;
- if (lang == 3) {
+ if (lang == D_LANG_FR) {
str = sErrorsFr[idx];
- } else if (lang == 4) {
+ } else if (lang == D_LANG_ES) {
str = sErrorsEs[idx];
} else {
str = sErrorsEn[idx];
diff --git a/src/d/d_lang.cpp b/src/d/d_lang.cpp
new file mode 100644
index 00000000..80dd9e00
--- /dev/null
+++ b/src/d/d_lang.cpp
@@ -0,0 +1,19 @@
+#include "d/d_lang.h"
+
+#include "rvl/SC/scapi.h"
+
+u8 getCurrentLanguage1() {
+ return getCurrentLanguage2();
+}
+
+u8 getCurrentLanguage2() {
+ return getCurrentLanguage();
+}
+
+u8 getCurrentLanguage() {
+ u8 lang = SCGetLanguage();
+ if (lang != SC_LANG_FR && lang != SC_LANG_SP) {
+ lang = SC_LANG_EN;
+ }
+ return lang;
+}
diff --git a/src/d/d_message.cpp b/src/d/d_message.cpp
index 7dbb76c4..c4490b60 100644
--- a/src/d/d_message.cpp
+++ b/src/d/d_message.cpp
@@ -6,6 +6,7 @@
#include "d/a/d_a_itembase.h"
#include "d/a/d_a_player.h"
#include "d/d_base.h"
+#include "d/d_lang.h"
#include "d/d_light_env.h"
#include "d/d_lyt_hio.h"
#include "d/d_player.h"
@@ -1776,13 +1777,12 @@ void dMessage_c::reset() {
mMinigameTime = 0;
}
-extern "C" u8 fn_80054F30();
static SizedString<8> sCurrentLanguage;
const char *dMessage_c::getLanguageIdentifier() {
- u8 lang = fn_80054F30();
- if (lang == 3) {
+ u8 lang = getCurrentLanguage1();
+ if (lang == D_LANG_FR) {
sCurrentLanguage = "fr_US";
- } else if (lang == 4) {
+ } else if (lang == D_LANG_ES) {
sCurrentLanguage = "es_US";
} else {
sCurrentLanguage = "en_US";
diff --git a/src/d/lyt/d_lyt_auto_explain.cpp b/src/d/lyt/d_lyt_auto_explain.cpp
index 4c3e87fd..946ff95d 100644
--- a/src/d/lyt/d_lyt_auto_explain.cpp
+++ b/src/d/lyt/d_lyt_auto_explain.cpp
@@ -1,6 +1,7 @@
#include "d/lyt/d_lyt_auto_explain.h"
#include "common.h"
+#include "d/d_lang.h"
#include "d/d_tag_processor.h"
#include "d/lyt/d2d.h"
#include "d/lyt/d_lyt_control_game.h"
@@ -45,11 +46,9 @@ void dLytAutoExplain_c::executeState_Invisible() {
}
void dLytAutoExplain_c::finalizeState_Invisible() {}
-extern "C" u8 fn_80054F30();
-
void dLytAutoExplain_c::initializeState_In() {
int numLines = mpTagProcessor->getNumLinesMaybe() - 1;
- if (fn_80054F30() != 0 && numLines == 3) {
+ if (getCurrentLanguage1() != D_LANG_JP && numLines == 3) {
numLines = 2;
}
diff --git a/src/d/lyt/d_lyt_game_over.cpp b/src/d/lyt/d_lyt_game_over.cpp
index f50045fd..b3939590 100644
--- a/src/d/lyt/d_lyt_game_over.cpp
+++ b/src/d/lyt/d_lyt_game_over.cpp
@@ -3,6 +3,7 @@
#include "common.h"
#include "d/d_base.h"
#include "d/d_fader.h"
+#include "d/d_lang.h"
#include "d/d_message.h"
#include "d/d_sc_game.h"
#include "d/d_sc_title.h"
@@ -62,14 +63,12 @@ dLytGameOver_c::dLytGameOver_c() : mStateMgr(*this) {
init();
}
-extern "C" u8 fn_80054F30();
-
bool dLytGameOver_c::build() {
- u8 lang = fn_80054F30();
+ u8 lang = getCurrentLanguage1();
s32 variant;
- if (lang == 3) {
+ if (lang == D_LANG_FR) {
variant = 1;
- } else if (lang == 4) {
+ } else if (lang == D_LANG_ES) {
variant = 2;
} else {
variant = 0;
diff --git a/src/d/lyt/d_lyt_pause.cpp b/src/d/lyt/d_lyt_pause.cpp
index 926de978..aa6cc565 100644
--- a/src/d/lyt/d_lyt_pause.cpp
+++ b/src/d/lyt/d_lyt_pause.cpp
@@ -358,7 +358,7 @@ void dLytPauseMain_c::initializeState_Select() {
mpPauseText->requestIn();
}
}
-extern "C" void fn_80059F40(void *);
+
void dLytPauseMain_c::executeState_Select() {
switch (mStep) {
case 0: {