Created top hak for crafting dialog. Moved Bioware creature abilities to top hak. Fixed DMFI wand handouts. Added DMFI language handouts. Added CCOH 6. Disabled PC corpse system. Modified new player startup system. Full compile. Updated release archive.
120 lines
3.1 KiB
Plaintext
120 lines
3.1 KiB
Plaintext
//////////////////////////////////////////////////////////////////////////////
|
|
// mk_inc_language.nss
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
#include "mk_inc_debug"
|
|
|
|
const string MK_LANG_2DA_FILE = "mk_language";
|
|
const string MK_LANG_LANGUAGE_ID = "MK_LANG_LANGUAGE_ID";
|
|
|
|
//int g_nMK_LANG_LanguageID = 0;
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
// Tries to detect the language by reading strings from dialog.tlk
|
|
// returns the detected language (as row number of 'mk_language.2da'
|
|
// 0: English
|
|
// 1: German
|
|
// 2: French
|
|
// 3: Spanish
|
|
// 4: Italian
|
|
// 5: Polish
|
|
// -1: Unknown Language / Language not detected
|
|
int MK_LANG_DetectLanguage(object oPC, int bDisplayMessage=FALSE);
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
// returns language (as row number of 'mk_language.2da'
|
|
// 0: English
|
|
// 1: German
|
|
// 2: French
|
|
// 3: Spanish
|
|
// 4: Italian
|
|
// 5: Polish
|
|
// if no language was detected 0 (English) is returned
|
|
int MK_LANG_GetLanguage();
|
|
|
|
|
|
object MK_LANG_GetObject()
|
|
{
|
|
object oReturn = GetPCSpeaker();
|
|
if (!GetIsObjectValid(oReturn)) oReturn = OBJECT_SELF;
|
|
return oReturn;
|
|
}
|
|
|
|
string MK_LANG_Get2DAString(string sColumn, int nRow)
|
|
{
|
|
return Get2DAString(MK_LANG_2DA_FILE, sColumn, nRow);
|
|
}
|
|
|
|
int MK_LANG_Get2DAInt(string sColumn, int nRow)
|
|
{
|
|
string s = MK_LANG_Get2DAString(sColumn, nRow);
|
|
if (s=="") return -1;
|
|
return StringToInt(s);
|
|
}
|
|
|
|
int MK_LANG_GetLanguage()
|
|
{
|
|
object oPC = MK_LANG_GetObject();
|
|
return GetLocalInt(oPC, MK_LANG_LANGUAGE_ID);
|
|
}
|
|
|
|
string MK_LANG_GetLanguageID()
|
|
{
|
|
int nLanguage = MK_LANG_GetLanguage();
|
|
return MK_LANG_Get2DAString("ID", nLanguage);
|
|
}
|
|
|
|
int MK_LANG_GetLanguageHasDialogF()
|
|
{
|
|
int nLanguage = MK_LANG_GetLanguage();
|
|
return MK_LANG_Get2DAInt("DialogF", nLanguage);
|
|
}
|
|
|
|
void MK_LANG_SetLanguage(object oPC, int nLanguage)
|
|
{
|
|
SetLocalInt(oPC, MK_LANG_LANGUAGE_ID, nLanguage);
|
|
}
|
|
|
|
int MK_LANG_DetectLanguage(object oPC, int bDisplayMessage)
|
|
{
|
|
string sID;
|
|
int iRow = 0;
|
|
string sValue1, sValue2;
|
|
int nStrRef;
|
|
do
|
|
{
|
|
sID = MK_LANG_Get2DAString("ID", iRow);
|
|
if (sID!="")
|
|
{
|
|
nStrRef = MK_LANG_Get2DAInt("StrRef", iRow);
|
|
if (nStrRef!=-1)
|
|
{
|
|
sValue1 = MK_LANG_Get2DAString("Value", iRow);
|
|
sValue2 = GetStringByStrRef(nStrRef);
|
|
MK_DEBUG_TRACE("MK_LANG_DetectLanguage(): '"+sValue1+"' - '"+sValue2+"'");
|
|
if (sValue1 == sValue2)
|
|
{
|
|
// g_nMK_LANG_LanguageID = iRow;
|
|
if (bDisplayMessage)
|
|
{
|
|
SendMessageToPC(oPC, "Language Detection: detected language is '"+MK_LANG_Get2DAString("Language", iRow)+"'!");
|
|
}
|
|
MK_LANG_SetLanguage(oPC, iRow);
|
|
return iRow;
|
|
}
|
|
}
|
|
}
|
|
iRow++;
|
|
}
|
|
while (sID!="");
|
|
SendMessageToPC(oPC, "Language Detection: language not found in 'mk_language.2da'!");
|
|
return -1;
|
|
}
|
|
|
|
|
|
/*
|
|
void main()
|
|
{
|
|
}
|
|
/**/
|