Skip to content

Commit 0a164db

Browse files
committed
Added get_map_language
1 parent 796b5bc commit 0a164db

File tree

3 files changed

+36
-14
lines changed

3 files changed

+36
-14
lines changed

game/source/cseries/language.cpp

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -125,38 +125,44 @@ const char* get_language_display_name(e_language language)
125125
{
126126
//return INVOKE(0x0052FDC0, get_language_display_name, language);
127127

128+
const char* result = "";
128129
if (IN_RANGE(language, _language_invalid, k_language_count))
129-
return k_language_names[language];
130-
131-
return "";
130+
{
131+
result = k_language_names[language];
132+
}
133+
return result;
132134
}
133135

134136
e_language get_language_from_display_name_slow(const char* display_name)
135137
{
136138
//return INVOKE(0x0052FE60, get_language_from_display_name_slow, display_name);
137139

138140
e_language language = k_language_default;
139-
140141
while (true)
141142
{
142143
if (csstricmp(display_name, get_language_display_name(language)) == 0)
144+
{
143145
break;
146+
}
144147

145148
if (++language >= k_language_count)
149+
{
146150
return _language_invalid;
151+
}
147152
}
148-
149153
return language;
150154
}
151155

152156
const char* __cdecl get_language_iso_639_1_name(e_language language)
153157
{
154158
//return INVOKE(0x0052FF30, get_language_display_name, language);
155159

156-
if (language > _language_invalid && language < k_language_count)
157-
return k_language_iso_639_1_names[language];
158-
159-
return "";
160+
const char* result = "";
161+
if (IN_RANGE(language, _language_invalid, k_language_count))
162+
{
163+
result = k_language_iso_639_1_names[language];
164+
}
165+
return result;
160166
}
161167

162168
const char* __cdecl get_language_suffix(e_language language, bool english_is_empty)
@@ -169,7 +175,9 @@ const char* __cdecl get_language_suffix(e_language language, bool english_is_emp
169175
case _language_english:
170176
{
171177
if (!english_is_empty)
178+
{
172179
result = "en";
180+
}
173181
}
174182
break;
175183
case _language_japanese:
@@ -228,7 +236,6 @@ const char* __cdecl get_language_suffix(e_language language, bool english_is_emp
228236
}
229237
break;
230238
}
231-
232239
return result;
233240
}
234241

@@ -268,5 +275,7 @@ void __cdecl set_current_language_from_display_name_slow(const char* display_nam
268275

269276
e_language language = get_language_from_display_name_slow(display_name);
270277
if (language != _language_invalid)
278+
{
271279
set_current_language(language);
280+
}
272281
}

game/source/game/game_globals.cpp

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,24 @@ rgb_color const k_player_colors[]
4040

4141
c_typed_tag_block<rgb_color> s_game_globals::profile_colors{};
4242

43+
e_language get_map_language()
44+
{
45+
e_language result = k_first_language;
46+
if (global_scenario && VALID_INDEX(global_game_globals->language, k_language_count))
47+
{
48+
result = global_game_globals->language;
49+
}
50+
return result;
51+
}
52+
4353
int32 get_map_minor_version()
4454
{
55+
int32 result = NONE;
4556
if (global_scenario)
46-
return cache_files_get_header()->minor_version_number;
47-
else
48-
return NONE;
57+
{
58+
result = cache_files_get_header()->minor_version_number;
59+
}
60+
return result;
4961
}
5062

5163
void s_game_globals::update_static_runtime_data()

game/source/game/game_globals.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ struct game_globals_storage
6060
};
6161
static_assert(sizeof(game_globals_storage) == 0x25208);
6262

63+
extern e_language get_map_language();
6364
extern int32 get_map_minor_version();
6465

6566
struct s_damage_globals_definition;
@@ -83,7 +84,7 @@ struct s_game_globals
8384

8485
int32 unused0[0x2B];
8586

86-
c_enum<e_language, int32, _language_invalid, k_language_count> language;
87+
e_language language;
8788
c_typed_tag_block<s_game_globals_havok_cleanup_resources> havok_cleanup_resources;
8889
c_typed_tag_block<s_sound_globals_definition> sound_globals;
8990

0 commit comments

Comments
 (0)