- on-the-fly convertation of all codepages to unicode (by lalien and bugmonster). I think this is needed for a Polish release in the future.

BE SURE TO UPDATE FROM SVN GAME DIR (REV. 1050) TO GET THE NEEDED GAME DATA FILES FOR THIS SOURCE MODIFICATION 

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@2417 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Wanne
2008-11-14 11:50:38 +00:00
parent 59f652c6a2
commit 8f2201afe4
13 changed files with 609 additions and 580 deletions
+3 -3
View File
@@ -18,7 +18,7 @@ CHAR16 zVersionLabel[256] = { L"Map Editor v1.13.2389" };
#elif defined JA2BETAVERSION #elif defined JA2BETAVERSION
//BETA/TEST BUILD VERSION //BETA/TEST BUILD VERSION
CHAR16 zVersionLabel[256] = { L"Debug v1.13.2415" }; CHAR16 zVersionLabel[256] = { L"Debug v1.13.2417" };
#elif defined CRIPPLED_VERSION #elif defined CRIPPLED_VERSION
@@ -28,11 +28,11 @@ CHAR16 zVersionLabel[256] = { L"Beta v. 0.98" };
#else #else
//RELEASE BUILD VERSION //RELEASE BUILD VERSION
CHAR16 zVersionLabel[256] = { L"Release v1.13.2415" }; CHAR16 zVersionLabel[256] = { L"Release v1.13.2417" };
#endif #endif
CHAR8 czVersionNumber[16] = { "Build 08.11.13" }; //YY.MM.DD CHAR8 czVersionNumber[16] = { "Build 08.11.14" }; //YY.MM.DD
CHAR16 zTrackingNumber[16] = { L"Z" }; CHAR16 zTrackingNumber[16] = { L"Z" };
+64 -60
View File
@@ -49,6 +49,7 @@
#include "Strategic Town Loyalty.h" #include "Strategic Town Loyalty.h"
#include "connect.h" #include "connect.h"
#include "fresh_header.h" #include "fresh_header.h"
#include "Encrypted File.h"
// //
//****** Defines ****** //****** Defines ******
@@ -1100,7 +1101,7 @@ BOOLEAN LoadMercBioInfo(UINT8 ubIndex, STR16 pInfoString, STR16 pAddInfo)
{ {
HWFILE hFile; HWFILE hFile;
UINT32 uiBytesRead; UINT32 uiBytesRead;
UINT16 i; //UINT16 i;
UINT32 uiStartSeekAmount; UINT32 uiStartSeekAmount;
@@ -1124,38 +1125,39 @@ BOOLEAN LoadMercBioInfo(UINT8 ubIndex, STR16 pInfoString, STR16 pAddInfo)
return( FALSE ); return( FALSE );
} }
// Decrement, by 1, any value > 32 //// Decrement, by 1, any value > 32
for(i=0; (i<SIZE_MERC_BIO_INFO) && (pInfoString[i] != 0); i++ ) //for(i=0; (i<SIZE_MERC_BIO_INFO) && (pInfoString[i] != 0); i++ )
{ //{
if( pInfoString[i] > 33 ) // if( pInfoString[i] > 33 )
pInfoString[i] -= 1; // pInfoString[i] -= 1;
#ifdef POLISH // #ifdef POLISH
switch( pInfoString[ i ] ) // switch( pInfoString[ i ] )
{ // {
case 260: pInfoString[ i ] = 165; break; // case 260: pInfoString[ i ] = 165; break;
case 262: pInfoString[ i ] = 198; break; // case 262: pInfoString[ i ] = 198; break;
case 280: pInfoString[ i ] = 202; break; // case 280: pInfoString[ i ] = 202; break;
case 321: pInfoString[ i ] = 163; break; // case 321: pInfoString[ i ] = 163; break;
case 323: pInfoString[ i ] = 209; break; // case 323: pInfoString[ i ] = 209; break;
case 211: pInfoString[ i ] = 211; break; // case 211: pInfoString[ i ] = 211; break;
case 346: pInfoString[ i ] = 338; break; // case 346: pInfoString[ i ] = 338; break;
case 379: pInfoString[ i ] = 175; break; // case 379: pInfoString[ i ] = 175; break;
case 377: pInfoString[ i ] = 143; break; // case 377: pInfoString[ i ] = 143; break;
case 261: pInfoString[ i ] = 185; break; // case 261: pInfoString[ i ] = 185; break;
case 263: pInfoString[ i ] = 230; break; // case 263: pInfoString[ i ] = 230; break;
case 281: pInfoString[ i ] = 234; break; // case 281: pInfoString[ i ] = 234; break;
case 322: pInfoString[ i ] = 179; break;
case 324: pInfoString[ i ] = 241; break;
case 243: pInfoString[ i ] = 243; break;
case 347: pInfoString[ i ] = 339; break;
case 380: pInfoString[ i ] = 191; break;
case 378: pInfoString[ i ] = 376; break;
}
#endif
}
// case 322: pInfoString[ i ] = 179; break;
// case 324: pInfoString[ i ] = 241; break;
// case 243: pInfoString[ i ] = 243; break;
// case 347: pInfoString[ i ] = 339; break;
// case 380: pInfoString[ i ] = 191; break;
// case 378: pInfoString[ i ] = 376; break;
// }
// #endif
//}
DecodeString(pInfoString, SIZE_MERC_BIO_INFO);
// Get the additional info // Get the additional info
uiStartSeekAmount = ((SIZE_MERC_BIO_INFO + SIZE_MERC_ADDITIONAL_INFO) * ubIndex )+ SIZE_MERC_BIO_INFO ; uiStartSeekAmount = ((SIZE_MERC_BIO_INFO + SIZE_MERC_ADDITIONAL_INFO) * ubIndex )+ SIZE_MERC_BIO_INFO ;
@@ -1169,37 +1171,39 @@ BOOLEAN LoadMercBioInfo(UINT8 ubIndex, STR16 pInfoString, STR16 pAddInfo)
return( FALSE ); return( FALSE );
} }
// Decrement, by 1, any value > 32 //// Decrement, by 1, any value > 32
for(i=0; (i<SIZE_MERC_BIO_INFO) && (pAddInfo[i] != 0); i++ ) //for(i=0; (i<SIZE_MERC_BIO_INFO) && (pAddInfo[i] != 0); i++ )
{ //{
if( pAddInfo[i] > 33 ) // if( pAddInfo[i] > 33 )
pAddInfo[i] -= 1; // pAddInfo[i] -= 1;
#ifdef POLISH // #ifdef POLISH
switch( pAddInfo[ i ] ) // switch( pAddInfo[ i ] )
{ // {
case 260: pAddInfo[ i ] = 165; break; // case 260: pAddInfo[ i ] = 165; break;
case 262: pAddInfo[ i ] = 198; break; // case 262: pAddInfo[ i ] = 198; break;
case 280: pAddInfo[ i ] = 202; break; // case 280: pAddInfo[ i ] = 202; break;
case 321: pAddInfo[ i ] = 163; break; // case 321: pAddInfo[ i ] = 163; break;
case 323: pAddInfo[ i ] = 209; break; // case 323: pAddInfo[ i ] = 209; break;
case 211: pAddInfo[ i ] = 211; break; // case 211: pAddInfo[ i ] = 211; break;
case 346: pAddInfo[ i ] = 338; break; // case 346: pAddInfo[ i ] = 338; break;
case 379: pAddInfo[ i ] = 175; break; // case 379: pAddInfo[ i ] = 175; break;
case 377: pAddInfo[ i ] = 143; break; // case 377: pAddInfo[ i ] = 143; break;
case 261: pAddInfo[ i ] = 185; break; // case 261: pAddInfo[ i ] = 185; break;
case 263: pAddInfo[ i ] = 230; break; // case 263: pAddInfo[ i ] = 230; break;
case 281: pAddInfo[ i ] = 234; break; // case 281: pAddInfo[ i ] = 234; break;
case 322: pAddInfo[ i ] = 179; break; // case 322: pAddInfo[ i ] = 179; break;
case 324: pAddInfo[ i ] = 241; break; // case 324: pAddInfo[ i ] = 241; break;
case 243: pAddInfo[ i ] = 243; break; // case 243: pAddInfo[ i ] = 243; break;
case 347: pAddInfo[ i ] = 339; break; // case 347: pAddInfo[ i ] = 339; break;
case 380: pAddInfo[ i ] = 191; break; // case 380: pAddInfo[ i ] = 191; break;
case 378: pAddInfo[ i ] = 376; break; // case 378: pAddInfo[ i ] = 376; break;
} // }
#endif // #endif
} //}
DecodeString(pAddInfo, SIZE_MERC_BIO_INFO);
FileClose(hFile); FileClose(hFile);
return(TRUE); return(TRUE);
+262 -370
View File
@@ -657,6 +657,8 @@ INT16 GetIndex(CHAR16 siChar)
UINT16 ssCount=0; UINT16 ssCount=0;
UINT16 usNumberOfSymbols = pFManager->pTranslationTable->usNumberOfSymbols; UINT16 usNumberOfSymbols = pFManager->pTranslationTable->usNumberOfSymbols;
siChar = GetUnicodeChar(siChar);
// search the Translation Table and return the index for the font // search the Translation Table and return the index for the font
pTrav = pFManager->pTranslationTable->DynamicArrayOf16BitValues; pTrav = pFManager->pTranslationTable->DynamicArrayOf16BitValues;
while (ssCount < usNumberOfSymbols ) while (ssCount < usNumberOfSymbols )
@@ -677,6 +679,144 @@ INT16 GetIndex(CHAR16 siChar)
} }
CHAR16 GetUnicodeChar(CHAR16 siChar)
{
#ifdef GERMAN
//switch( siChar )
//{
// // ü
// case 252: siChar = 252; break;
// // Ü
// case 220: siChar = 220; break;
// // ä
// case 228: siChar = 228; break;
// // Ä
// case 196: siChar = 196; break;
// // ö
// case 246: siChar = 246; break;
// // Ö
// case 214: siChar = 214; break;
// // ß
// case 223: siChar = 223; break;
//}
#endif
#ifdef RUSSIAN
switch( siChar )
{
//capital letters
case 168: siChar = 1025; break; //U+0401 d0 81 CYRILLIC CAPITAL LETTER IO
case 192: siChar = 1040; break; //U+0410 A d0 90 CYRILLIC CAPITAL LETTER A
case 193: siChar = 1041; break;
case 194: siChar = 1042; break;
case 195: siChar = 1043; break;
case 196: siChar = 1044; break;
case 197: siChar = 1045; break;
case 198: siChar = 1046; break;
case 199: siChar = 1047; break;
case 200: siChar = 1048; break;
case 201: siChar = 1049; break;
case 202: siChar = 1050; break;
case 203: siChar = 1051; break;
case 204: siChar = 1052; break;
case 205: siChar = 1053; break;
case 206: siChar = 1054; break;
case 207: siChar = 1055; break;
case 208: siChar = 1056; break;
case 209: siChar = 1057; break;
case 210: siChar = 1058; break;
case 211: siChar = 1059; break;
case 212: siChar = 1060; break;
case 213: siChar = 1061; break;
case 214: siChar = 1062; break;
case 215: siChar = 1063; break;
case 216: siChar = 1064; break;
case 217: siChar = 1065; break;
case 218: siChar = 1066; break;
case 219: siChar = 1067; break;
case 220: siChar = 1068; break;
case 221: siChar = 1069; break;
case 222: siChar = 1070; break;
case 223: siChar = 1071; break; //U+042F d0 af CYRILLIC CAPITAL LETTER YA
//small letters
case 185: siChar = 8470; break; // ?
case 178: siChar = 1030; break; // ?
case 161: siChar = 1038; break; // í
case 179: siChar = 1110; break; // ?
case 162: siChar = 1118; break; // ó
case 165: siChar = 1168; break; // Ñ
case 170: siChar = 1028; break; // ¬
case 175: siChar = 1031; break; // »
case 180: siChar = 1169; break; // ?
case 186: siChar = 1108; break; // ?
case 191: siChar = 1111; break; // ?
case 184: siChar = 1105; break; //U+0451 d1 91 CYRILLIC SMALL LETTER IO
case 224: siChar = 1072; break; //U+0430 a d0 b0 CYRILLIC SMALL LETTER A
case 225: siChar = 1073; break;
case 226: siChar = 1074; break;
case 227: siChar = 1075; break;
case 228: siChar = 1076; break;
case 229: siChar = 1077; break;
case 230: siChar = 1078; break;
case 231: siChar = 1079; break;
case 232: siChar = 1080; break;
case 233: siChar = 1081; break;
case 234: siChar = 1082; break;
case 235: siChar = 1083; break;
case 236: siChar = 1084; break;
case 237: siChar = 1085; break;
case 238: siChar = 1086; break;
case 239: siChar = 1087; break; //U+043F d0 bf CYRILLIC SMALL LETTER PE
case 240: siChar = 1088; break; //U+0440 p d1 80 CYRILLIC SMALL LETTER ER
case 241: siChar = 1089; break;
case 242: siChar = 1090; break;
case 243: siChar = 1091; break;
case 244: siChar = 1092; break;
case 245: siChar = 1093; break;
case 246: siChar = 1094; break;
case 247: siChar = 1095; break;
case 248: siChar = 1096; break;
case 249: siChar = 1097; break;
case 250: siChar = 1098; break;
case 251: siChar = 1099; break;
case 252: siChar = 1100; break;
case 253: siChar = 1101; break;
case 254: siChar = 1102; break;
case 255: siChar = 1103; break; //U+044F d1 8f CYRILLIC SMALL LETTER YA
}
#endif
#ifdef POLISH
switch( siChar )
{
case 165: siChar = 260; break;
case 198: siChar = 262; break;
case 202: siChar = 280; break;
case 163: siChar = 321; break;
case 209: siChar = 323; break;
case 211: siChar = 211; break;
case 338: siChar = 346; break;
case 175: siChar = 379; break;
case 143: siChar = 377; break;
case 185: siChar = 261; break;
case 230: siChar = 263; break;
case 234: siChar = 281; break;
case 179: siChar = 322; break;
case 241: siChar = 324; break;
case 243: siChar = 243; break;
case 339: siChar = 347; break;
case 191: siChar = 380; break;
case 376: siChar = 378; break;
}
#endif
return siChar;
}
//***************************************************************************** //*****************************************************************************
// SetFont // SetFont
// //
@@ -1285,12 +1425,15 @@ FontTranslationTable *CreateEnglishTransTable( )
pTable = (FontTranslationTable *)MemAlloc(sizeof(FontTranslationTable)); pTable = (FontTranslationTable *)MemAlloc(sizeof(FontTranslationTable));
memset(pTable, 0, sizeof(FontTranslationTable) ); memset(pTable, 0, sizeof(FontTranslationTable) );
#ifdef JA2 //#ifdef JA2
// ha ha, we have more than Wizardry now (again) // // ha ha, we have more than Wizardry now (again)
pTable->usNumberOfSymbols = 255; // pTable->usNumberOfSymbols = 255;
#else //#else
pTable->usNumberOfSymbols = 255; // pTable->usNumberOfSymbols = 255;
#endif //#endif
pTable->usNumberOfSymbols = 200;
pTable->DynamicArrayOf16BitValues = (UINT16 *)MemAlloc(pTable->usNumberOfSymbols * 2); pTable->DynamicArrayOf16BitValues = (UINT16 *)MemAlloc(pTable->usNumberOfSymbols * 2);
temp = pTable->DynamicArrayOf16BitValues; temp = pTable->DynamicArrayOf16BitValues;
@@ -1481,9 +1624,7 @@ FontTranslationTable *CreateEnglishTransTable( )
*temp = ' '; //93 *temp = ' '; //93
temp++; temp++;
#ifdef JA2 // GERMAN letters in UNICODE
#ifdef GERMAN
*temp = 196; // "A" umlaut *temp = 196; // "A" umlaut
temp++; temp++;
*temp = 214; // "O" umlaut *temp = 214; // "O" umlaut
@@ -1496,469 +1637,220 @@ FontTranslationTable *CreateEnglishTransTable( )
temp++; temp++;
*temp = 252; // "u" umlaut *temp = 252; // "u" umlaut
temp++; temp++;
*temp = 223; // double-s that looks like a beta/B // 100 *temp = 223; // double-s that looks like a beta/B
temp++; temp++;
#else
*temp = 0; // "A" umlaut
temp++;
*temp = 0; // "O" umlaut
temp++;
*temp = 0; // "U" umlaut
temp++;
*temp = 0; // "a" umlaut
temp++;
*temp = 0; // "o" umlaut
temp++;
*temp = 0; // "u" umlaut
temp++;
*temp = 0; // double-s that looks like a beta/B // 100
temp++;
#endif
*temp = 192; // À // RUSSIAN letters in UNICODE
temp++;
*temp = 193; // Á
temp++;
*temp = 194; // Ã
temp++;
*temp = 195; // Ä
temp++;
*temp = 196; // Å
temp++;
*temp = 197; // ¨
temp++;
*temp = 198; // Æ
temp++;
*temp = 199; // Ç
temp++;
*temp = 200; // È 140
temp++;
*temp = 201; // É
temp++;
*temp = 202; // Ê
temp++;
*temp = 203; // Ë
temp++;
*temp = 204; // Ì
temp++;
*temp = 205; // Í
temp++;
*temp = 206; // Î
temp++;
*temp = 207; // Ï
temp++;
*temp = 208; // Ð
temp++;
*temp = 209; // Ñ
temp++;
*temp = 210; // Ò 150
temp++;
*temp = 211; // Ó
temp++;
*temp = 212; // Ô
temp++;
*temp = 213; // Õ
temp++;
*temp = 214; // Ö
temp++;
*temp = 215; // ×
temp++;
*temp = 216; // Ø
temp++;
*temp = 217; // Ù
temp++;
*temp = 218; // Ú
temp++;
*temp = 219; // Û
temp++;
*temp = 220; // Ü 160
temp++;
*temp = 221; // Ý
temp++;
*temp = 222; // Þ
temp++;
*temp = 223; // ß
temp++;
*temp = 224; // à
temp++;
*temp = 225; // á
temp++;
*temp = 226; // â
temp++;
*temp = 227; // ã
temp++;
*temp = 228; // ä
temp++;
*temp = 229; // å
temp++;
*temp = 230; // ¸ 170
temp++;
*temp = 231; // æ
temp++;
*temp = 232; // ç
temp++;
*temp = 233; // è
temp++;
*temp = 234; // é
temp++;
*temp = 235; // ê
temp++;
*temp = 236; // ë
temp++;
*temp = 237; // ì
temp++;
*temp = 238; // í
temp++;
*temp = 239; // î 170
temp++;
*temp = 240; // ï
temp++;
*temp = 241; // ð
temp++;
*temp = 242; // ñ
temp++;
*temp = 243; // ò
temp++;
*temp = 244; // ó
temp++;
*temp = 245; // ô
temp++;
*temp = 246; // õ
temp++;
*temp = 247; // ö
temp++;
*temp = 248; // ÷
temp++;
*temp = 249; // ø 170
temp++;
*temp = 250; // ù
temp++;
*temp = 251; // ú
temp++;
*temp = 252; // û
temp++;
*temp = 253; // ü 170
temp++;
*temp = 254; // ý
temp++;
*temp = 255; // þ
temp++;
// START OF FUNKY RUSSIAN STUFF
*temp = 1040; //À *temp = 1040; //À
temp++; temp++;
*temp = 1041; *temp = 1041; //Á
temp++; temp++;
*temp = 1042; *temp = 1042; //Â
temp++; temp++;
*temp = 1043; *temp = 1043; //Ã
temp++; temp++;
*temp = 1044; *temp = 1044; //Ä
temp++; temp++;
*temp = 1045; *temp = 1045; //Å
temp++; temp++;
*temp = 1046; *temp = 1046; //Æ
temp++; temp++;
*temp = 1047; *temp = 1047; //Ç
temp++; temp++;
*temp = 1048; *temp = 1048; //È
temp++; temp++;
*temp = 1049; //110 *temp = 1049; //É
temp++; temp++;
*temp = 1050; *temp = 1050; //Ê
temp++; temp++;
*temp = 1051; *temp = 1051; //Ë
temp++; temp++;
*temp = 1052; *temp = 1052; //Ì
temp++; temp++;
*temp = 1053; *temp = 1053; //Í
temp++; temp++;
*temp = 1054; *temp = 1054; //Î
temp++; temp++;
*temp = 1055; *temp = 1055; //Ï
temp++; temp++;
*temp = 1056; *temp = 1056; //Ð
temp++; temp++;
*temp = 1057; *temp = 1057; //Ñ
temp++; temp++;
*temp = 1058; *temp = 1058; //Ò
temp++; temp++;
*temp = 1059; //120 *temp = 1059; //Ó
temp++; temp++;
*temp = 1060; *temp = 1060; //Ô
temp++; temp++;
*temp = 1061; *temp = 1061; //Õ
temp++; temp++;
*temp = 1062; *temp = 1062; //Ö
temp++; temp++;
*temp = 1063; *temp = 1063; //×
temp++; temp++;
*temp = 1064; *temp = 1064; //Ø
temp++; temp++;
*temp = 1065; *temp = 1065; //Ù
temp++; temp++;
*temp = 1066; *temp = 1066; //Ú
temp++; temp++;
*temp = 1067; *temp = 1067; //Û
temp++; temp++;
*temp = 1068; *temp = 1068; //Ü
temp++; temp++;
*temp = 1069; // 130 *temp = 1069; //Ý
temp++; temp++;
*temp = 1070; *temp = 1070; //Þ
temp++; temp++;
*temp = 1071; *temp = 1071; //ß
temp++;
*temp = 1072; // à
temp++; temp++;
*temp = 1072; // Ä *temp = 1073; // á
temp++; temp++;
*temp = 1073; // À *temp = 1074; // â
temp++; temp++;
*temp = 1074; // Á *temp = 1075; // ã
temp++; temp++;
*temp = 1075; // Â *temp = 1076; // ä
temp++; temp++;
*temp = 1076; // Ã *temp = 1077; // å
temp++; temp++;
*temp = 1077; // Å *temp = 1078; // æ
temp++; temp++;
*temp = 1078; // ¨ *temp = 1079; // ç
temp++; temp++;
*temp = 1079; // Ç 140 *temp = 1080; // è
temp++; temp++;
*temp = 1080; // Ë *temp = 1081; // é
temp++; temp++;
*temp = 1081; // È *temp = 1082; // ê
temp++; temp++;
*temp = 1082; // É 140 *temp = 1083; // ë
temp++; temp++;
*temp = 1083; // Ê *temp = 1084; // ì
temp++; temp++;
*temp = 1084; // Ï *temp = 1085; // í
temp++; temp++;
*temp = 1085; // Ö *temp = 1086; // î
temp++; temp++;
*temp = 1086; // Ò *temp = 1087; // ï
temp++; temp++;
*temp = 1087; // Ó *temp = 1088; // ð
temp++; temp++;
*temp = 1088; // Ô *temp = 1089; // ñ
temp++; temp++;
*temp = 1089; // Ü 150 *temp = 1090; // ò
temp++; temp++;
*temp = 1090; // Ù *temp = 1091; // ó
temp++; temp++;
*temp = 1091; // Ú *temp = 1092; // ô
temp++; temp++;
*temp = 1092; // Û 150 *temp = 1093; // õ
temp++; temp++;
*temp = 1093; // ä *temp = 1094; // ö
temp++; temp++;
*temp = 1094; // à *temp = 1095; // ÷
temp++; temp++;
*temp = 1095; // á *temp = 1096; // ø
temp++; temp++;
*temp = 1096; // â *temp = 1097; // ù
temp++; temp++;
*temp = 1097; // ç *temp = 1098; // ú
temp++; temp++;
*temp = 1098; // ë *temp = 1099; // û
temp++; temp++;
*temp = 1099; // è 160 *temp = 1100; // ü
temp++; temp++;
*temp = 1100; // é *temp = 1101; // ý
temp++; temp++;
*temp = 1101; // ê *temp = 1102; // þ
temp++; temp++;
*temp = 1102; // ï 160 *temp = 1103; // ÿ
temp++;
*temp = 1103; // ö
temp++; temp++;
//SB: new russian & bellorussian & ukrainian symbols // BELORUSSIAN and UKRAINIAN letters in UNICODE
// in ascii *temp = 8470; // ¹
*temp = 185; // ¹
temp++; temp++;
*temp = 168; // ¨ *temp = 1025; // ¨
temp++; temp++;
*temp = 178; // ² *temp = 1030; // ²
temp++; temp++;
*temp = 161; // ¡ *temp = 1038; // ¡
temp++; temp++;
*temp = 184; // ¸ *temp = 1105; // ¸
temp++; temp++;
*temp = 179; // ³ *temp = 1110; // ³
temp++; temp++;
*temp = 162; // ¢ *temp = 1118; // ¢
temp++; temp++;
*temp = 165; // ¥ *temp = 1168; // ¥
temp++; temp++;
*temp = 170; // ª *temp = 1028; // ª
temp++; temp++;
*temp = 175; // ¯ *temp = 1031; // ¯
temp++; temp++;
*temp = 180; // ´ *temp = 1169; // ´
temp++; temp++;
*temp = 186; // º *temp = 1108; // º
temp++; temp++;
*temp = 191; // ¿ *temp = 1111; // ¿
temp++; temp++;
// in unicode
*temp = 0x2116; // ¹
temp++;
*temp = 0x0401; // ¨
temp++;
*temp = 0x0406; // ²
temp++;
*temp = 0x040E; // ¡
temp++;
*temp = 0x0451; // ¸
temp++;
*temp = 0x0456; // ³
temp++;
*temp = 0x045E; // ¢
temp++;
*temp = 0x0490; // ¥
temp++;
*temp = 0x0404; // ª
temp++;
*temp = 0x0407; // ¯
temp++;
*temp = 0x0491; // ´
temp++;
*temp = 0x0454; // º
temp++;
*temp = 0x0457; // ¿
temp++;
#else
// Windows Code Page 1252 Western Standard Character Set
*temp = 193; // "A" acute // POLISH letters in UNICODE
*temp = 260; // ¥ (îí)
temp++; temp++;
*temp = 192; // "A" grave *temp = 262; // Æ (öå)
temp++; temp++;
*temp = 193; // "A" circumflex *temp = 280; // Ê (ýí)
temp++; temp++;
*temp = 196; // "A" umlaut *temp = 321; // £ (ýëü)
temp++; temp++;
*temp = 195; // "A" tilde *temp = 323; // Ñ (ýíü)
temp++; temp++;
*temp = 197; // "A" ring *temp = 211; // Ó (î êðàòêîå)
temp++; temp++;
*temp = 199; // "C" cedile *temp = 346; // Œ (ýñü)
temp++; temp++;
*temp = 201; // "E" acute *temp = 379; // ¯ (æåò)
temp++; temp++;
*temp = 200; // "E" grave *temp = 377; // (çåò)
temp++; temp++;
*temp = 202; // "E" circumflex *temp = 261; // ¹ (îí)
temp++; temp++;
*temp = 203; // "E" umlaut *temp = 263; // æ (öå)
temp++; temp++;
*temp = 205; // "I" acute *temp = 281; // ê (ýí)
temp++; temp++;
*temp = 204; // "I" grave *temp = 322; // ³ (ýëü)
temp++; temp++;
*temp = 206; // "I" circumflex *temp = 324; // ñ (ýíü)
temp++; temp++;
*temp = 207; // "I" umlaut *temp = 243; // ó (î êðàòêîå)
temp++; temp++;
*temp = 209; // "N" tilde *temp = 347; // œ (ýñü)
temp++; temp++;
*temp = 211; // "O" acute *temp = 380; // ¿ (æåò)
temp++; temp++;
*temp = 210; // "O" grave *temp = 378; // Ÿ (çåò)
temp++; temp++;
*temp = 212; // "O" circumflex
temp++;
*temp = 214; // "O" umlaut
temp++;
*temp = 213; // "O" tilde
temp++;
*temp = 216; // "0" O strike-through
temp++;
*temp = 218; // "U" acute
temp++;
*temp = 217; // "U" grave
temp++;
*temp = 219; // "U" circumflex
temp++;
*temp = 220; // "U" umlaut
temp++;
*temp = 221; // "Y" acute
temp++;
*temp = 225; // "a" acute
temp++;
*temp = 224; // "a" grave
temp++;
*temp = 226; // "a" circumflex
temp++;
*temp = 228; // "a" umlaut
temp++;
*temp = 227; // "a" tilde
temp++;
*temp = 229; // "a" ring
temp++;
*temp = 231; // "c" cedile
temp++;
*temp = 233; // "e" acute
temp++;
*temp = 232; // "e" grave
temp++;
*temp = 234; // "e" circumflex
temp++;
*temp = 235; // "e" umlaut
temp++;
*temp = 237; // "i" acute
temp++;
*temp = 236; // "i" grave
temp++;
*temp = 238; // "i" circumflex
temp++;
*temp = 239; // "i" umlaut
temp++;
*temp = 241; // "n" tilde
temp++;
*temp = 243; // "o" acute
temp++;
*temp = 242; // "o" grave
temp++;
*temp = 244; // "o" circumflex
temp++;
*temp = 246; // "o" umlaut
temp++;
*temp = 245; // "o" tilde
temp++;
*temp = 248; // "o" strike-through
temp++;
*temp = 250; // "u" acute
temp++;
*temp = 249; // "u" grave
temp++;
*temp = 251; // "u" circumflex
temp++;
*temp = 252; // "u" umlaut
temp++;
*temp = 254; // "y" acute
temp++;
*temp = 255; // "y" umlaut
temp++;
*temp = 223; // beta
// Font glyphs for spell targeting icons // Font glyphs for spell targeting icons
//ATE: IMPORTANT! INcreate the array above if you add any new items here... //ATE: IMPORTANT! INcreate the array above if you add any new items here...
temp++; //temp++;
*temp = FONT_GLYPH_TARGET_POINT; //*temp = FONT_GLYPH_TARGET_POINT;
temp++; //temp++;
*temp = FONT_GLYPH_TARGET_CONE; //*temp = FONT_GLYPH_TARGET_CONE;
temp++; //temp++;
*temp = FONT_GLYPH_TARGET_SINGLE; //*temp = FONT_GLYPH_TARGET_SINGLE;
temp++; //temp++;
*temp = FONT_GLYPH_TARGET_GROUP; //*temp = FONT_GLYPH_TARGET_GROUP;
temp++; //temp++;
*temp = FONT_GLYPH_TARGET_NONE; //*temp = FONT_GLYPH_TARGET_NONE;
// 154
#endif
// 200
return pTable; return pTable;
} }
+2
View File
@@ -183,3 +183,5 @@ void FindFontCenterCoordinates( INT16 sLeft, INT16 sTop, INT16 sWidth, INT16 sHe
*/ */
#endif #endif
CHAR16 GetUnicodeChar(CHAR16 siChar);
+157 -31
View File
@@ -10,8 +10,7 @@
BOOLEAN LoadEncryptedDataFromFile(STR pFileName, STR16 pDestString, UINT32 uiSeekFrom, UINT32 uiSeekAmount) BOOLEAN LoadEncryptedDataFromFile(STR pFileName, STR16 pDestString, UINT32 uiSeekFrom, UINT32 uiSeekAmount)
{ {
HWFILE hFile; HWFILE hFile;
UINT16 i;
UINT32 uiBytesRead; UINT32 uiBytesRead;
@@ -36,38 +35,165 @@ BOOLEAN LoadEncryptedDataFromFile(STR pFileName, STR16 pDestString, UINT32 uiSee
return( FALSE ); return( FALSE );
} }
// Decrement, by 1, any value > 32
for(i=0; (i<uiSeekAmount) && (pDestString[i] != 0); i++ )
{
if( pDestString[i] > 33 )
pDestString[i] -= 1;
#ifdef POLISH
switch( pDestString[ i ] )
{
case 260: pDestString[ i ] = 165; break;
case 262: pDestString[ i ] = 198; break;
case 280: pDestString[ i ] = 202; break;
case 321: pDestString[ i ] = 163; break;
case 323: pDestString[ i ] = 209; break;
case 211: pDestString[ i ] = 211; break;
case 346: pDestString[ i ] = 338; break;
case 379: pDestString[ i ] = 175; break;
case 377: pDestString[ i ] = 143; break;
case 261: pDestString[ i ] = 185; break;
case 263: pDestString[ i ] = 230; break;
case 281: pDestString[ i ] = 234; break;
case 322: pDestString[ i ] = 179; break; //// Decrement, by 1, any value > 32
case 324: pDestString[ i ] = 241; break; //for(i=0; (i<uiSeekAmount) && (pDestString[i] != 0); i++ )
case 243: pDestString[ i ] = 243; break; //{
case 347: pDestString[ i ] = 339; break; // if( pDestString[i] > 33 )
case 380: pDestString[ i ] = 191; break; // pDestString[i] -= 1;
case 378: pDestString[ i ] = 376; break; //
}
#endif //}
}
DecodeString(pDestString, uiSeekAmount);
FileClose(hFile); FileClose(hFile);
return(TRUE); return(TRUE);
} }
void DecodeString(STR16 pDestString, UINT32 uiSeekAmount)
{
UINT32 i;
// Decrement, by 1, any value > 32
for(i=0; (i<uiSeekAmount) && (pDestString[i] != 0); i++ )
{
if( pDestString[i] > 33 )
pDestString[i] -= 1;
//#ifdef GERMAN
// //switch( pDestString[ i ] )
// //{
// // // ü
// // case 252: pDestString[i] = 252; break;
// // // Ü
// // case 220: pDestString[i] = 220; break;
// // // ä
// // case 228: pDestString[i] = 228; break;
// // // Ä
// // case 196: pDestString[i] = 196; break;
// // // ö
// // case 246: pDestString[i] = 246; break;
// // // Ö
// // case 214: pDestString[i] = 214; break;
// // // ß
// // case 223: pDestString[i] = 223; break;
// //}
//#endif
//#ifdef RUSSIAN
// switch( pDestString[ i ] )
// {
// //capital letters
// case 168: pDestString[ i ] = 1025; break; //U+0401 d0 81 CYRILLIC CAPITAL LETTER IO
// case 192: pDestString[ i ] = 1040; break; //U+0410 A d0 90 CYRILLIC CAPITAL LETTER A
// case 193: pDestString[ i ] = 1041; break;
// case 194: pDestString[ i ] = 1042; break;
// case 195: pDestString[ i ] = 1043; break;
// case 196: pDestString[ i ] = 1044; break;
// case 197: pDestString[ i ] = 1045; break;
// case 198: pDestString[ i ] = 1046; break;
// case 199: pDestString[ i ] = 1047; break;
// case 200: pDestString[ i ] = 1048; break;
// case 201: pDestString[ i ] = 1049; break;
// case 202: pDestString[ i ] = 1050; break;
// case 203: pDestString[ i ] = 1051; break;
// case 204: pDestString[ i ] = 1052; break;
// case 205: pDestString[ i ] = 1053; break;
// case 206: pDestString[ i ] = 1054; break;
// case 207: pDestString[ i ] = 1055; break;
// case 208: pDestString[ i ] = 1056; break;
// case 209: pDestString[ i ] = 1057; break;
// case 210: pDestString[ i ] = 1058; break;
// case 211: pDestString[ i ] = 1059; break;
// case 212: pDestString[ i ] = 1060; break;
// case 213: pDestString[ i ] = 1061; break;
// case 214: pDestString[ i ] = 1062; break;
// case 215: pDestString[ i ] = 1063; break;
// case 216: pDestString[ i ] = 1064; break;
// case 217: pDestString[ i ] = 1065; break;
// case 218: pDestString[ i ] = 1066; break;
// case 219: pDestString[ i ] = 1067; break;
// case 220: pDestString[ i ] = 1068; break;
// case 221: pDestString[ i ] = 1069; break;
// case 222: pDestString[ i ] = 1070; break;
// case 223: pDestString[ i ] = 1071; break; //U+042F d0 af CYRILLIC CAPITAL LETTER YA
// //small letters
// case 184: pDestString[ i ] = 1105; break; //U+0451 d1 91 CYRILLIC SMALL LETTER IO
//case 185: pDestString[ i ] = 8470; break; // ?
//case 178: pDestString[ i ] = 1030; break; // ?
//case 161: pDestString[ i ] = 1038; break; // í
//case 179: pDestString[ i ] = 1110; break; // ?
//case 162: pDestString[ i ] = 1118; break; // ó
//case 165: pDestString[ i ] = 1168; break; // Ń
//case 170: pDestString[ i ] = 1028; break; // Ź
//case 175: pDestString[ i ] = 1031; break; // ť
//case 180: pDestString[ i ] = 1169; break; // ?
//case 186: pDestString[ i ] = 1108; break; // ?
//case 191: pDestString[ i ] = 1111; break; // ?
// case 224: pDestString[ i ] = 1072; break; //U+0430 a d0 b0 CYRILLIC SMALL LETTER A
// case 225: pDestString[ i ] = 1073; break;
// case 226: pDestString[ i ] = 1074; break;
// case 227: pDestString[ i ] = 1075; break;
// case 228: pDestString[ i ] = 1076; break;
// case 229: pDestString[ i ] = 1077; break;
// case 230: pDestString[ i ] = 1078; break;
// case 231: pDestString[ i ] = 1079; break;
// case 232: pDestString[ i ] = 1080; break;
// case 233: pDestString[ i ] = 1081; break;
// case 234: pDestString[ i ] = 1082; break;
// case 235: pDestString[ i ] = 1083; break;
// case 236: pDestString[ i ] = 1084; break;
// case 237: pDestString[ i ] = 1085; break;
// case 238: pDestString[ i ] = 1086; break;
// case 239: pDestString[ i ] = 1087; break; //U+043F d0 bf CYRILLIC SMALL LETTER PE
// case 240: pDestString[ i ] = 1088; break; //U+0440 p d1 80 CYRILLIC SMALL LETTER ER
// case 241: pDestString[ i ] = 1089; break;
// case 242: pDestString[ i ] = 1090; break;
// case 243: pDestString[ i ] = 1091; break;
// case 244: pDestString[ i ] = 1092; break;
// case 245: pDestString[ i ] = 1093; break;
// case 246: pDestString[ i ] = 1094; break;
// case 247: pDestString[ i ] = 1095; break;
// case 248: pDestString[ i ] = 1096; break;
// case 249: pDestString[ i ] = 1097; break;
// case 250: pDestString[ i ] = 1098; break;
// case 251: pDestString[ i ] = 1099; break;
// case 252: pDestString[ i ] = 1100; break;
// case 253: pDestString[ i ] = 1101; break;
// case 254: pDestString[ i ] = 1102; break;
// case 255: pDestString[ i ] = 1103; break; //U+044F d1 8f CYRILLIC SMALL LETTER YA
// }
//#endif
//#ifdef POLISH
// switch( pDestString[ i ] )
// {
// case 165: pDestString[ i ] = 260; break;
// case 198: pDestString[ i ] = 262; break;
// case 202: pDestString[ i ] = 280; break;
// case 163: pDestString[ i ] = 321; break;
// case 209: pDestString[ i ] = 323; break;
// case 211: pDestString[ i ] = 211; break;
// case 338: pDestString[ i ] = 346; break;
// case 175: pDestString[ i ] = 379; break;
// case 143: pDestString[ i ] = 377; break;
// case 185: pDestString[ i ] = 261; break;
// case 230: pDestString[ i ] = 263; break;
// case 234: pDestString[ i ] = 281; break;
// case 179: pDestString[ i ] = 322; break;
// case 241: pDestString[ i ] = 324; break;
// case 243: pDestString[ i ] = 243; break;
// case 339: pDestString[ i ] = 347; break;
// case 191: pDestString[ i ] = 380; break;
// case 376: pDestString[ i ] = 378; break;
// }
//#endif
}
}
+1
View File
@@ -4,5 +4,6 @@
#include "types.h" #include "types.h"
BOOLEAN LoadEncryptedDataFromFile(STR pFileName, STR16 pDestString, UINT32 uiSeekFrom, UINT32 uiSeekAmount); BOOLEAN LoadEncryptedDataFromFile(STR pFileName, STR16 pDestString, UINT32 uiSeekFrom, UINT32 uiSeekAmount);
void DecodeString(STR16 pDestString, UINT32 uiSeekAmount);
#endif #endif
+1
View File
@@ -1,3 +1,4 @@
#pragma setlocale("GERMAN")
#ifdef PRECOMPILEDHEADERS #ifdef PRECOMPILEDHEADERS
#include "Utils All.h" #include "Utils All.h"
#else #else
+1
View File
@@ -1,3 +1,4 @@
#pragma setlocale("GERMAN")
#ifdef PRECOMPILEDHEADERS #ifdef PRECOMPILEDHEADERS
#include "Utils All.h" #include "Utils All.h"
#include "_Ja25GermanText.h" #include "_Ja25GermanText.h"
+1
View File
@@ -1,3 +1,4 @@
#pragma setlocale("POLISH")
#ifdef PRECOMPILEDHEADERS #ifdef PRECOMPILEDHEADERS
#include "Utils All.h" #include "Utils All.h"
#include "_Ja25Polishtext.h" #include "_Ja25Polishtext.h"
+1
View File
@@ -1,3 +1,4 @@
#pragma setlocale("RUSSIAN")
#ifdef PRECOMPILEDHEADERS #ifdef PRECOMPILEDHEADERS
#include "Utils All.h" #include "Utils All.h"
#include "_Ja25RussianText.h" #include "_Ja25RussianText.h"
+4 -4
View File
@@ -1,3 +1,4 @@
#pragma setlocale("POLISH")
#include "Utils All.h" #include "Utils All.h"
#include "Language Defines.h" #include "Language Defines.h"
@@ -3762,10 +3763,9 @@ STR16 zOptionsScreenHelpText[] =
L"Jeśli WŁĄCZONE, gra będzie zapisywana każdorazowo po zakończeniu tury gracza.", L"Jeśli WŁĄCZONE, gra będzie zapisywana każdorazowo po zakończeniu tury gracza.",
L"Jeśli WŁĄCZONE, Skyrider nie będzie nic mówił.", L"Jeśli WŁĄCZONE, Skyrider nie będzie nic mówił.",
L"Jeśli WŁĄCZONE, gra będzie obciążała procesor w mniejszym stopniu.", L"Jeśli WŁĄCZONE, gra będzie obciążała procesor w mniejszym stopniu.",
L"Jeœli W£¥CZONE, gra bêdzie u¿yciem "Enhanced Description Box" opisu.", L"Jeœli W£¥CZONE, gra bêdzie u¿yciem 'Enhanced Description Box' opisu.",
}; };
STR16 gzGIOScreenText[] = STR16 gzGIOScreenText[] =
{ {
L"POCZĄTKOWE USTAWIENIA GRY", L"POCZĄTKOWE USTAWIENIA GRY",
@@ -4330,7 +4330,7 @@ STR16 gzLateLocalizedString[] =
//55 //55
L"Nie można kompresować czasu, gdy otwarty jest inwentarz sektora.", L"Nie można kompresować czasu, gdy otwarty jest inwentarz sektora.",
L"Nie odnaleziono p³yty nr 2 Jagged Alliance 2 v1.13.", L"Nie odnaleziono p³yty nr 2 Jagged Alliance 2.",
L"Przedmioty zostały pomyślnie połączone.", L"Przedmioty zostały pomyślnie połączone.",
@@ -4535,7 +4535,7 @@ STR16 MPClientMessage[] =
STR16 MPHelp[] = STR16 MPHelp[] =
{ {
// 0 // 0
L"Welcome to Jagged Alliance2 2 v1.13 Multiplayer", L"Welcome to JAGGED ALLIANCE 2 v1.13 Multiplayer",
L"Press 'F1' for help", L"Press 'F1' for help",
L"Multiplayer controls (from strategy screen)", L"Multiplayer controls (from strategy screen)",
L"* first set up ja2_mp.ini *", L"* first set up ja2_mp.ini *",
+110 -110
View File
@@ -1,4 +1,4 @@
#pragma setlocale("RUSSIAN")
#ifdef PRECOMPILEDHEADERS #ifdef PRECOMPILEDHEADERS
#include "Utils All.h" #include "Utils All.h"
#else #else
@@ -243,33 +243,33 @@ CHAR16 Message[][STRING_LENGTH] =
L"%s è %s îêàçûâàþò ïåðâóþ ïîìîùü (ëþáàÿ êëàâèøà - îòìåíà).", L"%s è %s îêàçûâàþò ïåðâóþ ïîìîùü (ëþáàÿ êëàâèøà - îòìåíà).",
// the following 17 strings are used to create lists of gun advantages and disadvantages // the following 17 strings are used to create lists of gun advantages and disadvantages
// (separated by commas) // (separated by commas)
L"надежен", L"надёжно",
L"ненадежен", L"ненадёжно",
L"ïðîñòîé ðåìîíò", L"ïðîñòîé ðåìîíò",
L"ñëîæíûé ðåìîíò", L"ñëîæíûé ðåìîíò",
L"áîëüøîé óðîí", L"áîëüøîé óðîí",
L"ìàëûé óðîí", L"ìàëûé óðîí",
L"скорострельный", L"скорострельное",
L"нескоростр.", L"нескорострельное",
L"äàëüíèé áîé", L"äàëüíèé áîé",
L"áëèæíèé áîé", L"áëèæíèé áîé",
L"легкий", L"лёгкое",
L"тяжелый", L"тяжёлое",
L"компактный", L"компактное",
L"очередями", L"очередями", //fast burst fire
L"", //нет отсечки очереди L"нет отсечки очереди",
L"áîë.ìàãàçèí", L"áîë.ìàãàçèí",
L"ìàë.ìàãàçèí", L"ìàë.ìàãàçèí",
// In the following two lines, all %s's are merc names // In the following two lines, all %s's are merc names
L"%s: камуфляжная краска стерлась.", L"%s: камуфляжная краска стёрлась.",
L"%s: êàìóôëÿæíàÿ êðàñêà ñìûëàñü.", L"%s: êàìóôëÿæíàÿ êðàñêà ñìûëàñü.",
// The first %s is a merc name and the second %s is an item name // The first %s is a merc name and the second %s is an item name
L"Âòîðîå îðóæèå: çàêîí÷èëèñü ïàòðîíû!", L"Âòîðîå îðóæèå: çàêîí÷èëèñü ïàòðîíû!",
L"%s крадет %s.", L"%s крадёт %s.",
// The %s is a merc name // The %s is a merc name
@@ -1101,7 +1101,7 @@ CHAR16 gWeaponStatsDesc[][ 16 ] =
L"Âåñ:", //12 L"Âåñ:", //12
L"Îãëóøåíèå:",//13 L"Îãëóøåíèå:",//13
// HEADROCK: Added new strings for extended description ** REDUNDANT ** // HEADROCK: Added new strings for extended description ** REDUNDANT **
L"АВТОШТРАФ:", //14 L"AUTOPEN:", //14
L"AUTO/5:", //15 L"AUTO/5:", //15
L"Âñåãî:", //16 L"Âñåãî:", //16
@@ -1112,41 +1112,41 @@ CHAR16 gWeaponStatsDesc[][ 16 ] =
// changing item type while watching its description box // changing item type while watching its description box
STR16 gzWeaponStatsFasthelp[ 27 ] = STR16 gzWeaponStatsFasthelp[ 27 ] =
{ {
L"Дальность", L"Дальнобойность", //Range
L"Урон", L"Урон", //Damage
L"Burst/Auto Penalty", L"Штраф за отдачу при\nстрельбе очередью\n(c отсечкой/без)", //Burst/Auto Penalty
L"Autofire shots per 5 AP", L"Выстрелов в автоматическом\nрежиме за 5 ОД", //Autofire shots per 5 AP
L"Точность", L"Точность", //Accuracy
L"Надёжность", L"Надёжность", //Reliability
L"Простота ремонта", L"Простота ремонта", //Repair Ease
L"ОД на вскидку", L"ОД на вскидку", //APs to ready
L"ОД на 1 выстрел", L"ОД на 1 выстрел", //APs to fire Single
L"ОД на огонь с отсечкой", L"ОД на огонь с отсечкой", //APs to fire Burst
L"ОД на огонь очередью", L"ОД на огонь очередью", //APs to fire Auto
L"ОД на замену магазина", L"ОД на замену магазина", //APs to Reload
L"ОД на досылку патрона", L"ОД на досылку патрона", //APs to Reload Manually
L"Пламегаситель", L"Пламегаситель", //Flash Suppression
L"Шумность (Чем меньше, тем лучше)", L"Шумность (чем меньше, тем лучше)", //Loudness (Lower is better)
L"To-Hit Modifier", L"Модификатор точности", //To-Hit Modifier
L"Average Best Laser Range", L"Радиус наилучшей видимости\nточки прицеливания", //Average Best Laser Range
L"Aiming Modifier", L"Модификатор прицельной стрельбы", //Aiming Modifier
L"Min. Range for Aiming Bonus", L"Минимальная эффективная дальность", //Min. Range for Aiming Bonus
L"Bipod Modifier", L"Бонус от сошек\n(при стрельбе лёжа)", //Bipod Modifier
L"ОД на бросок", L"ОД на бросок", //APs to Throw
L"ОД на выстрел", L"ОД на выстрел", //APs to Launch
L"ОД на удар ножом", L"ОД на удар ножом", //APs to Stab
L"Не стреляет одиночными!", L"Не стреляет одиночными!", //No Single Shot!
L"Нет отсечки патрона!", L"Нет отсечки патрона!", //No Burst Mode!
L"Нет автоматического режима!", L"Нет автоматического режима!", //No Auto Mode!
L"ОД на удар", L"ОД на удар", //APs to Bash
}; };
STR16 gzWeaponStatsFasthelpTactical[ 27 ] = STR16 gzWeaponStatsFasthelpTactical[ 27 ] =
{ {
L"Дальность", L"Дальнобойность",
L"Óðîí", L"Óðîí",
L"Burst/Auto Penalty", L"Штраф за отдачу при\nстрельбе очередью\n(c отсечкой/без)",
L"Autofire shots per 5 AP", L"Выстрелов в автоматическом\nрежиме за 5 ОД",
L"Òî÷íîñòü", L"Òî÷íîñòü",
L"Íà䏿íîñòü", L"Íà䏿íîñòü",
L"Ïðîñòîòà ðåìîíòà", L"Ïðîñòîòà ðåìîíòà",
@@ -1156,13 +1156,13 @@ STR16 gzWeaponStatsFasthelpTactical[ 27 ] =
L"ÎÄ íà îãîíü î÷åðåäüþ", L"ÎÄ íà îãîíü î÷åðåäüþ",
L"ÎÄ íà çàìåíó ìàãàçèíà", L"ÎÄ íà çàìåíó ìàãàçèíà",
L"ÎÄ íà äîñûëêó ïàòðîíà", L"ÎÄ íà äîñûëêó ïàòðîíà",
L"To-Hit Modifier", L"Модификатор точности",
L"Average Best Laser Range", L"Радиус наилучшей видимости\nточки прицеливания",
L"Aiming Modifier", L"Модификатор прицельной стрельбы",
L"Min. Range for Aiming Bonus", L"Минимальная эффективная дальность",
L"Ïëàìåãàñèòåëü", L"Ïëàìåãàñèòåëü",
L"Шумность\n(Чем меньше, тем лучше)", L"Шумность\n(чем меньше, тем лучше)",
L"Bipod Modifier", L"Бонус от сошек\n(при стрельбе лёжа)",
L"ÎÄ íà áðîñîê", L"ÎÄ íà áðîñîê",
L"ÎÄ íà âûñòðåë", L"ÎÄ íà âûñòðåë",
L"ÎÄ íà óäàð íîæîì", L"ÎÄ íà óäàð íîæîì",
@@ -1177,17 +1177,17 @@ STR16 gzAmmoStatsFasthelp[ 20 ] =
L"Armor Penetration (Lower is better)", L"Armor Penetration (Lower is better)",
L"Bullet Tumble (Higher is better)", L"Bullet Tumble (Higher is better)",
L"Pre-impact Explosion (Higher is better)", L"Pre-impact Explosion (Higher is better)",
L"Трассирующий эффект", L"Трассирующий эффект", //Tracer Effect
L"Anti-Tank", L"Кумулятивные", //Anti-Tank
L"Lockbuster", L"Lockbuster",
L"Ignores Armor", L"Игнорируется наличие брони", //Ignores Armor
L"Acidic", L"Кислотный эффект", //Acidic
L"Range Modifier", L"Модификатор дальнобойности", //Range Modifier
L"Damage Modifier", L"Модификатор урона", //Damage Modifier
L"To-Hit Modifier", L"Модификатор точности", //To-Hit Modifier
L"Burst/Auto Penalty Modifier (Higher is better)", L"Burst/Auto Penalty Modifier (Higher is better)",
L"Reliability Modifier", L"Модификатор надёжности", //Reliability Modifier
L"Loudness Modifier (Lower is better)", L"Модификатор шумности\n(чем меньше, тем лучше)", //Loudness Modifier (Lower is better)
L"", L"",
L"", L"",
L"", L"",
@@ -1198,23 +1198,23 @@ STR16 gzAmmoStatsFasthelp[ 20 ] =
STR16 gzArmorStatsFasthelp[ 20 ] = STR16 gzArmorStatsFasthelp[ 20 ] =
{ {
L"Защита", L"Защита", //Protection
L"Покрытие тела\n(чем больше, тем лучше)", L"Покрытие тела\n(чем больше, тем лучше)", //Coverage (Higher is better)
L"Изнашиваемость\n(чем меньше, тем лучше)", L"Изнашиваемость\n(чем меньше, тем лучше)", //Degrade Rate (Lower is better)
L"Влияние на подвижность", L"Влияние на подвижность", //AP Modifier
L"To-Hit Modifier", L"Модификатор точности", //To-Hit Modifier
L"Камуфляж (Лес)", L"Камуфляж 'Лес'",
L"Камуфляж (Город)", L"Камуфляж 'Город'",
L"Камуфляж (Пустыня)", L"Камуфляж 'Пустыня'",
L"Камуфляж (Снег)", L"Камуфляж 'Снег'",
L"Stealth Modifier", L"Модификатор скрытности", //Stealth Modifier
L"Vision Range Modifier", L"Модификатор диапазона\nвидимости", //Vision Range Modifier
L"Day Vision Range Modifier", L"Модификатор диапазона\nвидимости днём", //Day Vision Range Modifier
L"Night Vision Range Modifier", L"Модификатор диапазона\nвидимости ночью", //Night Vision Range Modifier
L"Bright Light Vision Range Modifier", L"Модификатор диапазона\nвидимости при ярком освещении",//Bright Light Vision Range Modifier
L"Cave Vision Range Modifier", L"Модификатор диапазона\nвидимости в пещере", //Cave Vision Range Modifier
L"Tunnel Vision Percentage", L"Процент видимости в тоннеле", //Tunnel Vision Percentage
L"Hearing Range Modifier", L"Модификатор диапазона\nслышимости", //Hearing Range Modifier
L"", L"",
L"", L"",
L"", L"",
@@ -1222,14 +1222,14 @@ STR16 gzArmorStatsFasthelp[ 20 ] =
STR16 gzExplosiveStatsFasthelp[ 20 ] = STR16 gzExplosiveStatsFasthelp[ 20 ] =
{ {
L"Урон", L"Урон", //Damage
L"Оглушение", //отнимает энергию L"Оглушение", //отнимает энергию //Stun Damage
L"Зона слышимости взрыва\n(чем меньше, тем лучше)", L"Зона слышимости взрыва\n(чем меньше, тем лучше)", //Blast Loudness (Lower is better)
L"Взрывоопасность!!!\n(чем меньше, тем лучше)", L"Взрывоопасность!!!\n(чем меньше, тем лучше)", //Volatility!!! (Lower is better)
L"Зона действия взрыва", L"Зона действия взрыва", //Blast Radius
L"Начальная зона действия", L"Начальная зона действия", //Effect Start Radius
L"Максимальная зона действия", L"Конечная зона действия", //Effect Final Radius
L"Время действия", L"Время действия", //Effect Duration
L"", L"",
L"", L"",
L"", L"",
@@ -1247,13 +1247,13 @@ STR16 gzExplosiveStatsFasthelp[ 20 ] =
STR16 gzMiscItemStatsFasthelp[ 34 ] = STR16 gzMiscItemStatsFasthelp[ 34 ] =
{ {
L"Item Size Modifier (Lower is better)", // 0 L"Item Size Modifier (Lower is better)", // 0
L"Reliability Modifier", L"Модификатор надёжности", //Reliability Modifier
L"Loudness Modifier (Lower is better)", L"Модификатор шумности\n(чем меньше, тем лучше)", //Loudness Modifier (Lower is better)
L"Hides Muzzle Flash", L"Скрывает вспышку", //Hides Muzzle Flash
L"Bipod Modifier", L"Модификатор сошек", //Bipod Modifier
L"Range Modifier", // 5 L"Модификатор дальнобойности", // 5 //Range Modifier
L"To-Hit Modifier", L"Модификатор точности", //To-Hit Modifier
L"Best Laser Range", L"Радиус наилучшей видимости\nточки прицеливания", //Best Laser Range
L"Aiming Bonus Modifier", L"Aiming Bonus Modifier",
L"Burst Size Modifier", L"Burst Size Modifier",
L"Burst Penalty Modifier (Higher is better)", // 10 L"Burst Penalty Modifier (Higher is better)", // 10
@@ -1263,23 +1263,23 @@ STR16 gzMiscItemStatsFasthelp[ 34 ] =
L"AP to Auto-Fire Modifier (Lower is better)", L"AP to Auto-Fire Modifier (Lower is better)",
L"AP to Ready Modifier (Lower is better)", // 15 L"AP to Ready Modifier (Lower is better)", // 15
L"AP to Reload Modifier (Lower is better)", L"AP to Reload Modifier (Lower is better)",
L"Magazine Size Modifier", L"Модификатор объёма магазина", //Magazine Size Modifier
L"AP to Attack Modifier (Lower is better)", L"AP to Attack Modifier (Lower is better)",
L"Damage Modifier", L"Модификатор урона", //Damage Modifier
L"Melee Damage Modifier", // 20 L"Melee Damage Modifier", // 20
L"Камуфляж (Лес)", L"Камуфляж 'Лес'",
L"Камуфляж (Город)", L"Камуфляж 'Город'",
L"Камуфляж (Пустыня)", L"Камуфляж 'Пустыня'",
L"Камуфляж (Снег)", L"Камуфляж 'Снег'",
L"Stealth Modifier", // 25 L"Модификатор скрытности", // 25
L"Hearing Range Modifier", L"Модификатор диапазона\nслышимости",
L"Vision Range Modifier", L"Модификатор диапазона\nвидимости",
L"Day Vision Range Modifier", L"Модификатор диапазона\nвидимости днём",
L"Night Vision Range Modifier", L"Модификатор диапазона\nвидимости ночью",
L"Bright Light Vision Range Modifier", //30 L"Модификатор диапазона\nвидимости при ярком освещении", //30
L"Cave Vision Range Modifier", L"Модификатор диапазона\nвидимости в пещере",
L"Tunnel Vision Percentage (Lower is better)", L"Процент видимости в тоннеле\n(чем меньше, тем лучше)", //Tunnel Vision Percentage (Lower is better)
L"Minimum Range for Aiming Bonus", L"Минимальная эффективная\nдальность оптики", //Minimum Range for Aiming Bonus
}; };
// HEADROCK: End new tooltip text // HEADROCK: End new tooltip text
@@ -3683,7 +3683,7 @@ STR16 zOptionsToggleText[] =
L"Àâòîñîõðàíåíèå êàæäûé õîä", L"Àâòîñîõðàíåíèå êàæäûé õîä",
L"Ìîë÷àëèâûé ïèëîò âåðòîë¸òà", L"Ìîë÷àëèâûé ïèëîò âåðòîë¸òà",
L"Íèçêàÿ çàãðóçêà ïðîöåññîðà", L"Íèçêàÿ çàãðóçêà ïðîöåññîðà",
L"Расширенное описание предметов", //Enhanced Description Box L"Подробное описание предметов", //Enhanced Description Box
}; };
//This is the help text associated with the above toggles. //This is the help text associated with the above toggles.
@@ -3729,7 +3729,7 @@ STR16 zOptionsScreenHelpText[] =
L"Åñëè âêëþ÷åíî, òî èñïîëüçóåòñÿ ìåòðè÷åñêàÿ ñèñòåìà ìåð,\nèíà÷å áóäåò áðèòàíñêàÿ.", L"Åñëè âêëþ÷åíî, òî èñïîëüçóåòñÿ ìåòðè÷åñêàÿ ñèñòåìà ìåð,\nèíà÷å áóäåò áðèòàíñêàÿ.",
//Merc Lighted movement //Merc Lighted movement
L"При ходьбе карта подсвечивается вокруг бойца (|G).\nВыключите опцию для повышения производительности системы.", L"При ходьбе карта подсвечивается вокруг бойца (|G).\nОтключите эту настройку для повышения производительности системы.",
//Smart cursor //Smart cursor
L"Åñëè âêëþ÷åíî, òî ïåðåìåùåíèå êóðñîðà âîçëå íàåìíèêà\nàâòîìàòè÷åñêè âûáèðàåò åãî.", L"Åñëè âêëþ÷åíî, òî ïåðåìåùåíèå êóðñîðà âîçëå íàåìíèêà\nàâòîìàòè÷åñêè âûáèðàåò åãî.",
@@ -3764,7 +3764,7 @@ STR16 zOptionsScreenHelpText[] =
L"Åñëè âêëþ÷åíî, èãðà áóäåò àâòîìàòè÷åñêè ñîõðàíÿòüñÿ\nïîñëå êàæäîãî õîäà èãðîêà.", L"Åñëè âêëþ÷åíî, èãðà áóäåò àâòîìàòè÷åñêè ñîõðàíÿòüñÿ\nïîñëå êàæäîãî õîäà èãðîêà.",
L"Åñëè âêëþ÷åíî, Íåáåñíûé Âñàäíèê\níå áóäåò âàñ ðàçäðàæàòü áîëòëèâîñòüþ.", L"Åñëè âêëþ÷åíî, Íåáåñíûé Âñàäíèê\níå áóäåò âàñ ðàçäðàæàòü áîëòëèâîñòüþ.",
L"Åñëè âêëþ÷åíî, èãðà áóäåò èñïîëüçîâàòü\nìåíüøå ïðîöåññîðíîãî âðåìåíè.", L"Åñëè âêëþ÷åíî, èãðà áóäåò èñïîëüçîâàòü\nìåíüøå ïðîöåññîðíîãî âðåìåíè.",
L"Если включено, будет задействовано\nрасширенное описание предметов.", //EDB description L"Если включено, будет задействовано\nподробное описание предметов.", //EDB description
}; };
@@ -3910,7 +3910,7 @@ STR16 pMessageStrings[] =
L"Ýòà ÿ÷åéêà çàðåçåðâèðîâàíà äëÿ Áûñòðîãî Ñîõðàíåíèÿ, êîòîðîå ìîæíî ïðîâåñòè ñ òàêòè÷åñêîé êàðòû èëè ñ ãëîáàëüíîé êàðòû, íàæàâ êëàâèøè ALT+S.", L"Ýòà ÿ÷åéêà çàðåçåðâèðîâàíà äëÿ Áûñòðîãî Ñîõðàíåíèÿ, êîòîðîå ìîæíî ïðîâåñòè ñ òàêòè÷åñêîé êàðòû èëè ñ ãëîáàëüíîé êàðòû, íàæàâ êëàâèøè ALT+S.",
L"Îòêðûòàÿ", L"Îòêðûòàÿ",
L"Çàêðûòàÿ", L"Çàêðûòàÿ",
L"У вас заканчивается свободное дисковое пространство. На диске есть всего %sMб свободного места, а для Jagged Alliance 2 v1.13 требуется %sMб.", L"У вас заканчивается свободное дисковое пространство. На диске есть всего %sMб свободного места, а для Jagged Alliance 2 требуется %sMб.",
L"Èç A.I.M. íàíÿò áîåö %s.", L"Èç A.I.M. íàíÿò áîåö %s.",
L"%s ëîâèò %s.", //'Merc name' has caught 'item' -- let SirTech know if name comes after item. L"%s ëîâèò %s.", //'Merc name' has caught 'item' -- let SirTech know if name comes after item.
L"%s ïðèíèìàåò ïðåïàðàò.", //'Merc name' has taken the drug L"%s ïðèíèìàåò ïðåïàðàò.", //'Merc name' has taken the drug
@@ -4539,7 +4539,7 @@ STR16 MPClientMessage[] =
STR16 MPHelp[] = STR16 MPHelp[] =
{ {
// 0 // 0
L"Запущена сетевая игра Jagged Alliance 2 v1.13", L"Запущена сетевая игра Jagged Alliance 2",
L"Íàæìèòå F1 äëÿ ïðîñìîòðà ïîìîùè.", L"Íàæìèòå F1 äëÿ ïðîñìîòðà ïîìîùè.",
L"Óïðàâëåíèå ñåòåâîé èãðîé (íà ñòðàòåãè÷åñêîì ýêðàíå)", L"Óïðàâëåíèå ñåòåâîé èãðîé (íà ñòðàòåãè÷åñêîì ýêðàíå)",
L"* Ñïåðâà óñòàíîâèòå íàñòðîéêè â ôàéëå ja2_mp.ini *", L"* Ñïåðâà óñòàíîâèòå íàñòðîéêè â ôàéëå ja2_mp.ini *",
+2 -2
View File
@@ -66,7 +66,7 @@
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalDependencies="Winmm.lib .\Multiplayer\raknet\RakNetLibStaticDebug.lib ws2_32.lib" AdditionalDependencies="Winmm.lib .\Multiplayer\raknet\RakNetLibStaticDebug.lib ws2_32.lib"
OutputFile="$(OutDir)\ja2_debug_2389_en.exe" OutputFile="$(OutDir)\ja2_debug_2417_en.exe"
LinkIncremental="2" LinkIncremental="2"
GenerateDebugInformation="true" GenerateDebugInformation="true"
SubSystem="2" SubSystem="2"
@@ -145,7 +145,7 @@
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalDependencies="Winmm.lib .\Multiplayer\raknet\RakNetLibStatic.lib ws2_32.lib" AdditionalDependencies="Winmm.lib .\Multiplayer\raknet\RakNetLibStatic.lib ws2_32.lib"
OutputFile="$(OutDir)\ja2_release_2415_en.exe" OutputFile="$(OutDir)\ja2_release_2417_en.exe"
LinkIncremental="1" LinkIncremental="1"
GenerateDebugInformation="true" GenerateDebugInformation="true"
GenerateMapFile="true" GenerateMapFile="true"