MCPcopy Create free account
hub / github.com/DescentDevelopers/Descent3 / LocalizeLevelName

Function LocalizeLevelName

Descent3/LoadLevel.cpp:5726–5779  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5724int Localization_GetLanguage(void);
5725
5726char *LocalizeLevelName(char *level) {
5727 static char local_name[101];
5728
5729 char **english_names;
5730 int num_english_names;
5731
5732 char **local_names;
5733 int num_local_names;
5734
5735 local_name[0] = 0;
5736
5737 // Don't waste our time if we're already in english
5738 int save_lang = Localization_GetLanguage();
5739 if (LANGUAGE_ENGLISH == save_lang) {
5740 strcpy(local_name, level);
5741 return local_name;
5742 }
5743
5744 Localization_SetLanguage(LANGUAGE_ENGLISH);
5745 // Save the current language, then bash it to english
5746 if (!CreateStringTable("level_names.str", &english_names, &num_english_names)) {
5747 mprintf(0, "Couldn't open level_names stringtable!\n");
5748 Localization_SetLanguage(save_lang);
5749 strcpy(local_name, level);
5750 return local_name;
5751 }
5752
5753 // Restore the correct language
5754 Localization_SetLanguage(save_lang);
5755
5756 if (!CreateStringTable("level_names.str", &local_names, &num_local_names)) {
5757 mprintf(0, "Couldn't open level_names stringtable!\n");
5758 // destroy the english stringtable...
5759 DestroyStringTable(english_names, num_english_names);
5760
5761 strcpy(local_name, level);
5762 return local_name;
5763 }
5764
5765 // Now search for the correct level
5766 for (int i = 0; i < num_english_names; i++) {
5767 if (0 == stricmp(level, english_names[i])) {
5768 // Ok, we found a match. So return the local text.
5769 strcpy(local_name, local_names[i]);
5770 DestroyStringTable(english_names, num_english_names);
5771 DestroyStringTable(local_names, num_local_names);
5772 return local_name;
5773 }
5774 }
5775
5776 // We didn't find it, so just use the english
5777 strcpy(local_name, level);
5778 return local_name;
5779}

Callers 1

ifFunction · 0.85

Calls 4

Localization_GetLanguageFunction · 0.85
Localization_SetLanguageFunction · 0.85
CreateStringTableFunction · 0.85
DestroyStringTableFunction · 0.85

Tested by

no test coverage detected