mirror of
https://github.com/1dot13/source.git
synced 2026-08-05 14:00:23 +02:00
git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@590 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
+263
-184
@@ -8,121 +8,100 @@
|
||||
|
||||
BOOLEAN LoadItemInfo(UINT16 ubIndex, STR16 pNameString, STR16 pInfoString )
|
||||
{
|
||||
//HWFILE hFile;
|
||||
//UINT32 uiBytesRead;
|
||||
//UINT16 i;
|
||||
//UINT32 uiStartSeekAmount;
|
||||
|
||||
// DebugMsg(TOPIC_JA2, DBG_LEVEL_3,String("LoadItemInfo"));
|
||||
|
||||
for (int i=0;i<80;i++)
|
||||
if (pNameString != NULL)
|
||||
{
|
||||
if ( i<(int)strlen(Item[ubIndex].szLongItemName ))
|
||||
pNameString[i] = Item[ubIndex].szLongItemName [i];
|
||||
else
|
||||
pNameString[i] ='\0';
|
||||
for (int i=0;i<80;i++)
|
||||
{
|
||||
if ( i<(int)strlen(Item[ubIndex].szLongItemName ))
|
||||
{
|
||||
pNameString[i] = Item[ubIndex].szLongItemName [i];
|
||||
|
||||
// WANNE: German specific characters
|
||||
#ifdef GERMAN
|
||||
switch( pNameString[ i ] )
|
||||
{
|
||||
// ü
|
||||
case 65532: pNameString[i] = 252; break;
|
||||
// Ü
|
||||
case 65500: pNameString[i] = 220; break;
|
||||
// ä
|
||||
case 65508: pNameString[i] = 228; break;
|
||||
// Ä
|
||||
case 65476: pNameString[i] = 196; break;
|
||||
// ö
|
||||
case 65526: pNameString[i] = 246; break;
|
||||
// Ö
|
||||
case 65494: pNameString[i] = 214; break;
|
||||
// ß
|
||||
case 65503: pNameString[i] = 223; break;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef POLISH
|
||||
switch( pNameString[ i ] )
|
||||
{
|
||||
case 260: pNameString[ i ] = 165; break;
|
||||
case 262: pNameString[ i ] = 198; break;
|
||||
case 280: pNameString[ i ] = 202; break;
|
||||
case 321: pNameString[ i ] = 163; break;
|
||||
case 323: pNameString[ i ] = 209; break;
|
||||
case 211: pNameString[ i ] = 211; break;
|
||||
|
||||
case 346: pNameString[ i ] = 338; break;
|
||||
case 379: pNameString[ i ] = 175; break;
|
||||
case 377: pNameString[ i ] = 143; break;
|
||||
case 261: pNameString[ i ] = 185; break;
|
||||
case 263: pNameString[ i ] = 230; break;
|
||||
case 281: pNameString[ i ] = 234; break;
|
||||
|
||||
case 322: pNameString[ i ] = 179; break;
|
||||
case 324: pNameString[ i ] = 241; break;
|
||||
case 243: pNameString[ i ] = 243; break;
|
||||
case 347: pNameString[ i ] = 339; break;
|
||||
case 380: pNameString[ i ] = 191; break;
|
||||
case 378: pNameString[ i ] = 376; break;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
pNameString[i] ='\0';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(pInfoString != NULL)
|
||||
{
|
||||
// WANNE: CHANGE THIS
|
||||
for (int i=0;i<400;i++)
|
||||
{
|
||||
if ( i<(int)strlen(Item[ubIndex].szItemDesc ))
|
||||
pInfoString[i] = Item[ubIndex].szItemDesc [i];
|
||||
else
|
||||
pInfoString[i] ='\0';
|
||||
}
|
||||
}
|
||||
/*
|
||||
hFile = FileOpen(ITEMSTRINGFILENAME, FILE_ACCESS_READ, FALSE);
|
||||
if ( !hFile )
|
||||
{
|
||||
return( FALSE );
|
||||
}
|
||||
|
||||
// Get current mercs bio info
|
||||
uiStartSeekAmount = ( ( SIZE_SHORT_ITEM_NAME + SIZE_ITEM_NAME + SIZE_ITEM_INFO) * ubIndex );
|
||||
|
||||
// Skip short names
|
||||
uiStartSeekAmount += SIZE_SHORT_ITEM_NAME;
|
||||
|
||||
if ( FileSeek( hFile, uiStartSeekAmount, FILE_SEEK_FROM_START ) == FALSE )
|
||||
{
|
||||
FileClose(hFile);
|
||||
return( FALSE );
|
||||
}
|
||||
|
||||
if( !FileRead( hFile, pNameString, SIZE_ITEM_NAME, &uiBytesRead) )
|
||||
{
|
||||
FileClose(hFile);
|
||||
return( FALSE );
|
||||
}
|
||||
|
||||
DebugMsg(TOPIC_JA2, DBG_LEVEL_3,String("LoadItemInfo: pNameString file read = %s",pNameString));
|
||||
|
||||
// Decrement, by 1, any value > 32
|
||||
for(i=0; (i<SIZE_ITEM_NAME) && (pNameString[i] != 0); i++ )
|
||||
{
|
||||
if( pNameString[i] > 33 )
|
||||
pNameString[i] -= 1;
|
||||
#ifdef POLISH
|
||||
switch( pNameString[ i ] )
|
||||
{
|
||||
case 260: pNameString[ i ] = 165; break;
|
||||
case 262: pNameString[ i ] = 198; break;
|
||||
case 280: pNameString[ i ] = 202; break;
|
||||
case 321: pNameString[ i ] = 163; break;
|
||||
case 323: pNameString[ i ] = 209; break;
|
||||
case 211: pNameString[ i ] = 211; break;
|
||||
pInfoString[i] = Item[ubIndex].szItemDesc [i];
|
||||
|
||||
case 346: pNameString[ i ] = 338; break;
|
||||
case 379: pNameString[ i ] = 175; break;
|
||||
case 377: pNameString[ i ] = 143; break;
|
||||
case 261: pNameString[ i ] = 185; break;
|
||||
case 263: pNameString[ i ] = 230; break;
|
||||
case 281: pNameString[ i ] = 234; break;
|
||||
|
||||
case 322: pNameString[ i ] = 179; break;
|
||||
case 324: pNameString[ i ] = 241; break;
|
||||
case 243: pNameString[ i ] = 243; break;
|
||||
case 347: pNameString[ i ] = 339; break;
|
||||
case 380: pNameString[ i ] = 191; break;
|
||||
case 378: pNameString[ i ] = 376; break;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
DebugMsg(TOPIC_JA2, DBG_LEVEL_3,String("LoadItemInfo: pNameString after decrement = %s",pNameString));
|
||||
DebugMsg(TOPIC_JA2, DBG_LEVEL_3,String("LoadItemInfo: pNameString after decrement = %s",pNameString+1));
|
||||
DebugMsg(TOPIC_JA2, DBG_LEVEL_3,String("LoadItemInfo: pNameString after decrement = %s",pNameString+2));
|
||||
DebugMsg(TOPIC_JA2, DBG_LEVEL_3,String("LoadItemInfo: pNameString after decrement = %s",pNameString+3));
|
||||
|
||||
// condition added by Chris - so we can get the name without the item info
|
||||
// when desired, by passing in a null pInfoString
|
||||
|
||||
if (pInfoString != NULL)
|
||||
{
|
||||
// Get the additional info
|
||||
uiStartSeekAmount = ((SIZE_ITEM_NAME + SIZE_SHORT_ITEM_NAME + SIZE_ITEM_INFO) * ubIndex ) + SIZE_ITEM_NAME + SIZE_SHORT_ITEM_NAME;
|
||||
if ( FileSeek( hFile, uiStartSeekAmount, FILE_SEEK_FROM_START ) == FALSE )
|
||||
{
|
||||
FileClose(hFile);
|
||||
return( FALSE );
|
||||
}
|
||||
|
||||
if( !FileRead( hFile, pInfoString, SIZE_ITEM_INFO, &uiBytesRead) )
|
||||
{
|
||||
FileClose(hFile);
|
||||
return( FALSE );
|
||||
}
|
||||
|
||||
// Decrement, by 1, any value > 32
|
||||
for(i=0; (i<SIZE_ITEM_INFO) && (pInfoString[i] != 0); i++ )
|
||||
{
|
||||
if( pInfoString[i] > 33 )
|
||||
pInfoString[i] -= 1;
|
||||
#ifdef POLISH
|
||||
// WANNE: German specific characters
|
||||
#ifdef GERMAN
|
||||
switch( pInfoString[ i ] )
|
||||
{
|
||||
// ü
|
||||
case 65532: pInfoString[i] = 252; break;
|
||||
// Ü
|
||||
case 65500: pInfoString[i] = 220; break;
|
||||
// ä
|
||||
case 65508: pInfoString[i] = 228; break;
|
||||
// Ä
|
||||
case 65476: pInfoString[i] = 196; break;
|
||||
// ö
|
||||
case 65526: pInfoString[i] = 246; break;
|
||||
// Ö
|
||||
case 65494: pInfoString[i] = 214; break;
|
||||
// ß
|
||||
case 65503: pInfoString[i] = 223; break;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef POLISH
|
||||
switch( pNameString[ i ] )
|
||||
{
|
||||
case 260: pInfoString[ i ] = 165; break;
|
||||
case 262: pInfoString[ i ] = 198; break;
|
||||
@@ -145,38 +124,146 @@ BOOLEAN LoadItemInfo(UINT16 ubIndex, STR16 pNameString, STR16 pInfoString )
|
||||
case 380: pInfoString[ i ] = 191; break;
|
||||
case 378: pInfoString[ i ] = 376; break;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
pInfoString[i] ='\0';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
FileClose(hFile);
|
||||
*/
|
||||
return(TRUE);
|
||||
}
|
||||
|
||||
BOOLEAN LoadBRName(UINT16 ubIndex, STR16 pNameString )
|
||||
{
|
||||
|
||||
for (int i=0;i<80;i++)
|
||||
if (pNameString != NULL)
|
||||
{
|
||||
if ( i<(int)strlen(Item[ubIndex].szBRName))
|
||||
pNameString[i] = Item[ubIndex].szBRName [i];
|
||||
else
|
||||
pNameString[i] ='\0';
|
||||
}
|
||||
for (int i=0;i<80;i++)
|
||||
{
|
||||
if ( i<(int)strlen(Item[ubIndex].szBRName))
|
||||
{
|
||||
pNameString[i] = Item[ubIndex].szBRName [i];
|
||||
|
||||
// WANNE: German specific characters
|
||||
#ifdef GERMAN
|
||||
switch( pNameString[ i ] )
|
||||
{
|
||||
// ü
|
||||
case 65532: pNameString[i] = 252; break;
|
||||
// Ü
|
||||
case 65500: pNameString[i] = 220; break;
|
||||
// ä
|
||||
case 65508: pNameString[i] = 228; break;
|
||||
// Ä
|
||||
case 65476: pNameString[i] = 196; break;
|
||||
// ö
|
||||
case 65526: pNameString[i] = 246; break;
|
||||
// Ö
|
||||
case 65494: pNameString[i] = 214; break;
|
||||
// ß
|
||||
case 65503: pNameString[i] = 223; break;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef POLISH
|
||||
switch( pNameString[ i ] )
|
||||
{
|
||||
case 260: pNameString[ i ] = 165; break;
|
||||
case 262: pNameString[ i ] = 198; break;
|
||||
case 280: pNameString[ i ] = 202; break;
|
||||
case 321: pNameString[ i ] = 163; break;
|
||||
case 323: pNameString[ i ] = 209; break;
|
||||
case 211: pNameString[ i ] = 211; break;
|
||||
|
||||
case 346: pNameString[ i ] = 338; break;
|
||||
case 379: pNameString[ i ] = 175; break;
|
||||
case 377: pNameString[ i ] = 143; break;
|
||||
case 261: pNameString[ i ] = 185; break;
|
||||
case 263: pNameString[ i ] = 230; break;
|
||||
case 281: pNameString[ i ] = 234; break;
|
||||
|
||||
case 322: pNameString[ i ] = 179; break;
|
||||
case 324: pNameString[ i ] = 241; break;
|
||||
case 243: pNameString[ i ] = 243; break;
|
||||
case 347: pNameString[ i ] = 339; break;
|
||||
case 380: pNameString[ i ] = 191; break;
|
||||
case 378: pNameString[ i ] = 376; break;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
pNameString[i] ='\0';
|
||||
}
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOLEAN LoadBRDesc(UINT16 ubIndex, STR16 pDescString )
|
||||
{
|
||||
|
||||
for (int i=0;i<400;i++)
|
||||
if (pDescString != NULL)
|
||||
{
|
||||
if ( i<(int)strlen(Item[ubIndex].szBRDesc))
|
||||
pDescString[i] = Item[ubIndex].szBRDesc [i];
|
||||
else
|
||||
pDescString[i] ='\0';
|
||||
for (int i=0;i<400;i++)
|
||||
{
|
||||
if ( i<(int)strlen(Item[ubIndex].szBRDesc))
|
||||
{
|
||||
pDescString[i] = Item[ubIndex].szBRDesc [i];
|
||||
|
||||
// WANNE: German specific characters
|
||||
#ifdef GERMAN
|
||||
switch( pDescString[ i ] )
|
||||
{
|
||||
// ü
|
||||
case 65532: pDescString[i] = 252; break;
|
||||
// Ü
|
||||
case 65500: pDescString[i] = 220; break;
|
||||
// ä
|
||||
case 65508: pDescString[i] = 228; break;
|
||||
// Ä
|
||||
case 65476: pDescString[i] = 196; break;
|
||||
// ö
|
||||
case 65526: pDescString[i] = 246; break;
|
||||
// Ö
|
||||
case 65494: pDescString[i] = 214; break;
|
||||
// ß
|
||||
case 65503: pDescString[i] = 223; break;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef POLISH
|
||||
switch( pDescString[ i ] )
|
||||
{
|
||||
case 260: pDescString[ i ] = 165; break;
|
||||
case 262: pDescString[ i ] = 198; break;
|
||||
case 280: pDescString[ i ] = 202; break;
|
||||
case 321: pDescString[ i ] = 163; break;
|
||||
case 323: pDescString[ i ] = 209; break;
|
||||
case 211: pDescString[ i ] = 211; break;
|
||||
|
||||
case 346: pDescString[ i ] = 338; break;
|
||||
case 379: pDescString[ i ] = 175; break;
|
||||
case 377: pDescString[ i ] = 143; break;
|
||||
case 261: pDescString[ i ] = 185; break;
|
||||
case 263: pDescString[ i ] = 230; break;
|
||||
case 281: pDescString[ i ] = 234; break;
|
||||
|
||||
case 322: pDescString[ i ] = 179; break;
|
||||
case 324: pDescString[ i ] = 241; break;
|
||||
case 243: pDescString[ i ] = 243; break;
|
||||
case 347: pDescString[ i ] = 339; break;
|
||||
case 380: pDescString[ i ] = 191; break;
|
||||
case 378: pDescString[ i ] = 376; break;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
pDescString[i] ='\0';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
@@ -184,77 +271,69 @@ BOOLEAN LoadBRDesc(UINT16 ubIndex, STR16 pDescString )
|
||||
|
||||
BOOLEAN LoadShortNameItemInfo(UINT16 ubIndex, STR16 pNameString )
|
||||
{
|
||||
|
||||
for (int i=0;i<80;i++)
|
||||
if(pNameString != NULL)
|
||||
{
|
||||
if ( i<(int)strlen(Item[ubIndex].szItemName))
|
||||
pNameString[i] = Item[ubIndex].szItemName [i];
|
||||
else
|
||||
pNameString[i] ='\0';
|
||||
}
|
||||
/*
|
||||
HWFILE hFile;
|
||||
// wchar_t DestString[ SIZE_MERC_BIO_INFO ];
|
||||
UINT32 uiBytesRead;
|
||||
UINT16 i;
|
||||
UINT32 uiStartSeekAmount;
|
||||
|
||||
hFile = FileOpen(ITEMSTRINGFILENAME, FILE_ACCESS_READ, FALSE);
|
||||
if ( !hFile )
|
||||
{
|
||||
return( FALSE );
|
||||
}
|
||||
|
||||
|
||||
// Get current mercs bio info
|
||||
uiStartSeekAmount = ( ( SIZE_SHORT_ITEM_NAME + SIZE_ITEM_NAME + SIZE_ITEM_INFO ) * ubIndex );
|
||||
|
||||
if ( FileSeek( hFile, uiStartSeekAmount, FILE_SEEK_FROM_START ) == FALSE )
|
||||
{
|
||||
FileClose(hFile);
|
||||
return( FALSE );
|
||||
}
|
||||
|
||||
if( !FileRead( hFile, pNameString, SIZE_ITEM_NAME, &uiBytesRead) )
|
||||
{
|
||||
FileClose(hFile);
|
||||
return( FALSE );
|
||||
}
|
||||
|
||||
// Decrement, by 1, any value > 32
|
||||
for(i=0; (i<SIZE_ITEM_NAME) && (pNameString[i] != 0); i++ )
|
||||
{
|
||||
if( pNameString[i] > 33 )
|
||||
pNameString[i] -= 1;
|
||||
#ifdef POLISH
|
||||
switch( pNameString[ i ] )
|
||||
// WANNE:
|
||||
for (int i=0;i<80;i++)
|
||||
{
|
||||
if ( i<(int)strlen(Item[ubIndex].szItemName))
|
||||
{
|
||||
case 260: pNameString[ i ] = 165; break;
|
||||
case 262: pNameString[ i ] = 198; break;
|
||||
case 280: pNameString[ i ] = 202; break;
|
||||
case 321: pNameString[ i ] = 163; break;
|
||||
case 323: pNameString[ i ] = 209; break;
|
||||
case 211: pNameString[ i ] = 211; break;
|
||||
pNameString[i] = Item[ubIndex].szItemName [i];
|
||||
|
||||
case 346: pNameString[ i ] = 338; break;
|
||||
case 379: pNameString[ i ] = 175; break;
|
||||
case 377: pNameString[ i ] = 143; break;
|
||||
case 261: pNameString[ i ] = 185; break;
|
||||
case 263: pNameString[ i ] = 230; break;
|
||||
case 281: pNameString[ i ] = 234; break;
|
||||
// WANNE: German specific characters
|
||||
#ifdef GERMAN
|
||||
switch( pNameString[ i ] )
|
||||
{
|
||||
// ü
|
||||
case 65532: pNameString[i] = 252; break;
|
||||
// Ü
|
||||
case 65500: pNameString[i] = 220; break;
|
||||
// ä
|
||||
case 65508: pNameString[i] = 228; break;
|
||||
// Ä
|
||||
case 65476: pNameString[i] = 196; break;
|
||||
// ö
|
||||
case 65526: pNameString[i] = 246; break;
|
||||
// Ö
|
||||
case 65494: pNameString[i] = 214; break;
|
||||
// ß
|
||||
case 65503: pNameString[i] = 223; break;
|
||||
}
|
||||
#endif
|
||||
|
||||
case 322: pNameString[ i ] = 179; break;
|
||||
case 324: pNameString[ i ] = 241; break;
|
||||
case 243: pNameString[ i ] = 243; break;
|
||||
case 347: pNameString[ i ] = 339; break;
|
||||
case 380: pNameString[ i ] = 191; break;
|
||||
case 378: pNameString[ i ] = 376; break;
|
||||
#ifdef POLISH
|
||||
switch( pNameString[ i ] )
|
||||
{
|
||||
case 260: pNameString[ i ] = 165; break;
|
||||
case 262: pNameString[ i ] = 198; break;
|
||||
case 280: pNameString[ i ] = 202; break;
|
||||
case 321: pNameString[ i ] = 163; break;
|
||||
case 323: pNameString[ i ] = 209; break;
|
||||
case 211: pNameString[ i ] = 211; break;
|
||||
|
||||
case 346: pNameString[ i ] = 338; break;
|
||||
case 379: pNameString[ i ] = 175; break;
|
||||
case 377: pNameString[ i ] = 143; break;
|
||||
case 261: pNameString[ i ] = 185; break;
|
||||
case 263: pNameString[ i ] = 230; break;
|
||||
case 281: pNameString[ i ] = 234; break;
|
||||
|
||||
case 322: pNameString[ i ] = 179; break;
|
||||
case 324: pNameString[ i ] = 241; break;
|
||||
case 243: pNameString[ i ] = 243; break;
|
||||
case 347: pNameString[ i ] = 339; break;
|
||||
case 380: pNameString[ i ] = 191; break;
|
||||
case 378: pNameString[ i ] = 376; break;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
else
|
||||
{
|
||||
pNameString[i] ='\0';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
FileClose(hFile);
|
||||
*/
|
||||
return(TRUE);
|
||||
}
|
||||
|
||||
|
||||
@@ -23,6 +23,80 @@ extern BOOLEAN GetCDromDriveLetter( STR8 pString );
|
||||
|
||||
BOOLEAN PerformTimeLimitedCheck();
|
||||
|
||||
// WANNE:
|
||||
/* Given a string, replaces all instances of "oldpiece" with "newpiece".
|
||||
*
|
||||
* Modified this routine to eliminate recursion and to avoid infinite
|
||||
* expansion of string when newpiece contains oldpiece. --Byron
|
||||
*/
|
||||
char *Replace(char *string, char *oldpiece, char *newpiece) {
|
||||
|
||||
int str_index, newstr_index, oldpiece_index, end,
|
||||
|
||||
new_len, old_len, cpy_len;
|
||||
char *c;
|
||||
static char newstring[MAXLINE];
|
||||
|
||||
if ((c = (char *) strstr(string, oldpiece)) == NULL)
|
||||
|
||||
return string;
|
||||
|
||||
new_len = strlen(newpiece);
|
||||
old_len = strlen(oldpiece);
|
||||
end = strlen(string) - old_len;
|
||||
oldpiece_index = c - string;
|
||||
|
||||
|
||||
newstr_index = 0;
|
||||
str_index = 0;
|
||||
while(str_index <= end && c != NULL)
|
||||
{
|
||||
|
||||
/* Copy characters from the left of matched pattern occurence */
|
||||
cpy_len = oldpiece_index-str_index;
|
||||
strncpy(newstring+newstr_index, string+str_index, cpy_len);
|
||||
newstr_index += cpy_len;
|
||||
str_index += cpy_len;
|
||||
|
||||
/* Copy replacement characters instead of matched pattern */
|
||||
strcpy(newstring+newstr_index, newpiece);
|
||||
newstr_index += new_len;
|
||||
str_index += old_len;
|
||||
|
||||
/* Check for another pattern match */
|
||||
if((c = (char *) strstr(string+str_index, oldpiece)) != NULL)
|
||||
oldpiece_index = c - string;
|
||||
|
||||
|
||||
}
|
||||
/* Copy remaining characters from the right of last matched pattern */
|
||||
strcpy(newstring+newstr_index, string+str_index);
|
||||
|
||||
return newstring;
|
||||
}
|
||||
|
||||
// WANNE: Replaces german specific characters
|
||||
char *ReplaceGermanSpecialCharacters(char *text)
|
||||
{
|
||||
// ä
|
||||
text = Replace(text, "ä", "ä");
|
||||
// Ä
|
||||
text = Replace(text, "Ä", "Ä");
|
||||
// ö
|
||||
text = Replace(text, "ö", "ö");
|
||||
// Ö
|
||||
text = Replace(text, "Ö", "Ö");
|
||||
// ü
|
||||
text = Replace(text, "ü", "ü");
|
||||
// Ü
|
||||
text = Replace(text, "Ü", "Ü");
|
||||
// ß
|
||||
text = Replace(text, "ß", "ß");
|
||||
|
||||
return text;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//#define TIME_LIMITED_VERSION
|
||||
void FilenameForBPP(STR pFilename, STR pDestination)
|
||||
|
||||
@@ -7,6 +7,9 @@
|
||||
|
||||
#define GETPIXELDEPTH( ) ( gbPixelDepth )
|
||||
|
||||
// WANNE: Maximum number of characters in german description (German xml files)
|
||||
#define MAXLINE 200
|
||||
|
||||
BOOLEAN CreateSGPPaletteFromCOLFile( SGPPaletteEntry *pPalette, SGPFILENAME ColFile );
|
||||
BOOLEAN DisplayPaletteRep( PaletteRepID aPalRep, UINT8 ubXPos, UINT8 ubYPos, UINT32 uiDestSurface );
|
||||
|
||||
@@ -22,6 +25,12 @@ void HandleLimitedNumExecutions( );
|
||||
BOOLEAN HandleJA2CDCheck( );
|
||||
BOOLEAN HandleJA2CDCheckTwo( );
|
||||
|
||||
// WANNE: This method replaces characters in a given text with new characters
|
||||
char *Replace(char *string, char *oldpiece, char *newpiece);
|
||||
// WANNE: This method calls the replace method and replaces all german specific characters
|
||||
char *ReplaceGermanSpecialCharacters(char *text);
|
||||
|
||||
|
||||
// Snap: integer division that rounds the result to the nearest integer
|
||||
template<class Integer>
|
||||
inline Integer idiv(Integer a, Integer b)
|
||||
|
||||
@@ -42,6 +42,7 @@
|
||||
#include "Debug Control.h"
|
||||
#include "expat.h"
|
||||
#include "XML.h"
|
||||
#include "utilities.h"
|
||||
#endif
|
||||
|
||||
struct
|
||||
@@ -260,11 +261,20 @@ itemEndElementHandle(void *userData, const char *name)
|
||||
pData->curArray[pData->curItem.uiIndex] = pData->curItem; //write the item into the table
|
||||
else if ( sizeof(pData->curItem.szItemName)>0 && localizedTextOnly )
|
||||
{
|
||||
// WANNE: Replace specific characters (ö, ä, ...)
|
||||
#ifdef GERMAN
|
||||
strcpy((char *)pData->curArray[pData->curItem.uiIndex].szItemName, (char *)ReplaceGermanSpecialCharacters((char *)pData->curItem.szItemName));
|
||||
strcpy((char *)pData->curArray[pData->curItem.uiIndex].szLongItemName, (char *)ReplaceGermanSpecialCharacters((char *)pData->curItem.szLongItemName));
|
||||
strcpy((char *)pData->curArray[pData->curItem.uiIndex].szBRName, (char *)ReplaceGermanSpecialCharacters((char *)pData->curItem.szBRName));
|
||||
strcpy((char *)pData->curArray[pData->curItem.uiIndex].szItemDesc, (char *)ReplaceGermanSpecialCharacters((char *)pData->curItem.szItemDesc));
|
||||
strcpy((char *)pData->curArray[pData->curItem.uiIndex].szBRDesc, (char *)ReplaceGermanSpecialCharacters((char *)pData->curItem.szBRDesc));
|
||||
#else
|
||||
strcpy(pData->curArray[pData->curItem.uiIndex].szItemName,pData->curItem.szItemName);
|
||||
strcpy(pData->curArray[pData->curItem.uiIndex].szLongItemName,pData->curItem.szLongItemName);
|
||||
strcpy(pData->curArray[pData->curItem.uiIndex].szBRName,pData->curItem.szBRName);
|
||||
strcpy(pData->curArray[pData->curItem.uiIndex].szItemDesc,pData->curItem.szItemDesc);
|
||||
strcpy(pData->curArray[pData->curItem.uiIndex].szBRDesc,pData->curItem.szBRDesc);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -995,6 +1005,7 @@ BOOLEAN ReadInItemStats(STR fileName, BOOLEAN localizedVersion )
|
||||
UINT32 uiBytesRead;
|
||||
UINT32 uiFSize;
|
||||
CHAR8 * lpcBuffer;
|
||||
|
||||
XML_Parser parser = XML_ParserCreate(NULL);
|
||||
|
||||
itemParseData pData;
|
||||
|
||||
@@ -3461,6 +3461,7 @@ STR16 zOptionsToggleText[] =
|
||||
L"Tracer effect for single shot",
|
||||
L"Rain noises",
|
||||
L"Random I.M.P personality",
|
||||
L"Auto save",
|
||||
};
|
||||
|
||||
//This is the help text associated with the above toggles.
|
||||
@@ -3537,7 +3538,7 @@ STR16 zOptionsScreenHelpText[] =
|
||||
L"When ON, tracer effect will be shown for single shots.",
|
||||
L"When ON, you will hear rain noises when it is raining.",
|
||||
L"When ON, I.M.P characters will get random personality and attitude.",
|
||||
|
||||
L"When ON, game will be saved in tactical after each players turn.",
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -3464,6 +3464,7 @@ STR16 zOptionsToggleText[] =
|
||||
L"Rain noises",
|
||||
L"Allow crows",
|
||||
L"Random I.M.P personality",
|
||||
L"Auto save",
|
||||
};
|
||||
|
||||
//This is the help text associated with the above toggles.
|
||||
@@ -3541,6 +3542,7 @@ STR16 zOptionsScreenHelpText[] =
|
||||
L"When ON, you will hear rain noises when it is raining.",
|
||||
L"When ON, the crows are present in game.",
|
||||
L"When ON, I.M.P characters will get random personality and attitude.",
|
||||
L"When ON, game will be saved after each players turn.",
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -3450,6 +3450,7 @@ STR16 zOptionsToggleText[] =
|
||||
L"Tracer effect for single shot",
|
||||
L"Rain noises",
|
||||
L"Random I.M.P personality",
|
||||
L"Auto save",
|
||||
};
|
||||
|
||||
//This is the help text associated with the above toggles.
|
||||
@@ -3526,6 +3527,7 @@ STR16 zOptionsScreenHelpText[] =
|
||||
L"When ON, tracer effect will be shown for single shots.",
|
||||
L"When ON, you will hear rain noises when it is raining.",
|
||||
L"When ON, I.M.P characters will get random personality and attitude.",
|
||||
L"When ON, game will be saved in tactical after each players turn.",
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -3270,6 +3270,7 @@ STR16 zOptionsToggleText[] =
|
||||
L"Regengeräusche",
|
||||
L"Krähen erlauben",
|
||||
L"Zufällige B.S.E Personalität",
|
||||
L"Automatisch speichern",
|
||||
};
|
||||
|
||||
//This is the help text associated with the above toggles.
|
||||
@@ -3347,6 +3348,7 @@ STR16 zOptionsScreenHelpText[] =
|
||||
L"Wenn diese Funktion aktiviert ist, werden Regengeräusche hörbar falls es regnet.",
|
||||
L"Wenn diese Funktion aktiviert ist, sind Krähen im Spiel vorhanden.",
|
||||
L"Wenn diese Funktion aktiviert ist, erhalten B.S.E Charaktere zufällige Persönlichkeit und Einstellung.",
|
||||
L"Wenn diese Funktion aktiviert ist, wird nach jeder Runde automatisch gespeichert.",
|
||||
};
|
||||
|
||||
STR16 gzGIOScreenText[] =
|
||||
|
||||
@@ -3443,6 +3443,7 @@ STR16 zOptionsToggleText[] =
|
||||
L"Tracer effect for single shot",
|
||||
L"Rain noises",
|
||||
L"Random I.M.P personality",
|
||||
L"Auto save",
|
||||
};
|
||||
|
||||
//This is the help text associated with the above toggles.
|
||||
@@ -3519,6 +3520,7 @@ STR16 zOptionsScreenHelpText[] =
|
||||
L"When ON, tracer effect will be shown for single shots.",
|
||||
L"When ON, you will hear rain noises when it is raining.",
|
||||
L"When ON, I.M.P characters will get random personality and attitude.",
|
||||
L"When ON, game will be saved in tactical after each players turn.",
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -3443,6 +3443,7 @@ STR16 zOptionsToggleText[] =
|
||||
L"Tracer effect for single shot",
|
||||
L"Rain noises",
|
||||
L"Random I.M.P personality",
|
||||
L"Auto save",
|
||||
};
|
||||
|
||||
//This is the help text associated with the above toggles.
|
||||
@@ -3519,6 +3520,7 @@ STR16 zOptionsScreenHelpText[] =
|
||||
L"When ON, tracer effect will be shown for single shots.",
|
||||
L"When ON, you will hear rain noises when it is raining.",
|
||||
L"When ON, I.M.P characters will get random personality and attitude.",
|
||||
L"When ON, game will be saved in tactical after each players turn.",
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -3454,6 +3454,7 @@ STR16 zOptionsToggleText[] =
|
||||
L"Rain noises",
|
||||
L"Allow crows",
|
||||
L"Random I.M.P personality",
|
||||
L"Auto save",
|
||||
};
|
||||
|
||||
//This is the help text associated with the above toggles.
|
||||
@@ -3531,6 +3532,7 @@ STR16 zOptionsScreenHelpText[] =
|
||||
L"When ON, you will hear rain noises when it is raining.",
|
||||
L"When ON, the crows are present in game.",
|
||||
L"When ON, I.M.P characters will get random personality and attitude.",
|
||||
L"When ON, game will be saved in tactical after each players turn.",
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user