mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
- Improved compatibility with different russian JA2 distribs' resources
- International/russian *.npc file format unified, performed conversion on-the-fly - New 1.13 messages' text moved to Text.h/_*Text.cpp - Russian translation fixed/refined git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@1610 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -1728,19 +1728,20 @@ CHAR8 *GetDialogueDataFilename( UINT8 ubCharacterNum, UINT16 usQuoteNum, BOOLEAN
|
||||
{
|
||||
// Lesh: patch to allow playback ogg speech files
|
||||
// build name of wav file (characternum + quotenum)
|
||||
#ifdef RUSSIAN
|
||||
sprintf( zFileName,"NPC_SPEECH\\g_%03d_%03d.ogg",ubCharacterNum,usQuoteNum );
|
||||
if ( !FileExists( zFileName ) )
|
||||
{
|
||||
sprintf( zFileName,"NPC_SPEECH\\g_%03d_%03d.wav",ubCharacterNum,usQuoteNum );
|
||||
}
|
||||
#else
|
||||
//SB: curiously, there are no g_%03d_%03d audio files in all russian versions
|
||||
// #ifdef RUSSIAN
|
||||
// sprintf( zFileName,"NPC_SPEECH\\g_%03d_%03d.ogg",ubCharacterNum,usQuoteNum );
|
||||
// if ( !FileExists( zFileName ) )
|
||||
// {
|
||||
// sprintf( zFileName,"NPC_SPEECH\\g_%03d_%03d.wav",ubCharacterNum,usQuoteNum );
|
||||
// }
|
||||
// #else
|
||||
sprintf( zFileName,"NPC_SPEECH\\d_%03d_%03d.ogg",ubCharacterNum,usQuoteNum );
|
||||
if ( !FileExists( zFileName ) )
|
||||
{
|
||||
sprintf( zFileName,"NPC_SPEECH\\d_%03d_%03d.wav",ubCharacterNum,usQuoteNum );
|
||||
}
|
||||
#endif
|
||||
// #endif
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1795,6 +1796,16 @@ CHAR8 *GetDialogueDataFilename( UINT8 ubCharacterNum, UINT16 usQuoteNum, BOOLEAN
|
||||
if ( !FileExists( zFileName ) )
|
||||
{
|
||||
sprintf( zFileName,"SPEECH\\r_%03d_%03d.wav",ubCharacterNum,usQuoteNum );
|
||||
//<SB> Also check for Russian Gold sound files (identical to international ones)
|
||||
if(! FileExists( zFileName ) )
|
||||
{
|
||||
sprintf( zFileName,"SPEECH\\%03d_%03d.ogg",ubCharacterNum,usQuoteNum );
|
||||
if ( !FileExists( zFileName ) )
|
||||
{
|
||||
sprintf( zFileName,"SPEECH\\%03d_%03d.wav",ubCharacterNum,usQuoteNum );
|
||||
}
|
||||
}
|
||||
//</SB>
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
@@ -2199,27 +2199,27 @@ void INVRenderItem( UINT32 uiBuffer, SOLDIERTYPE * pSoldier, OBJECTTYPE *pObjec
|
||||
sNewY = sY + 13; // rather arbitrary
|
||||
if ( pSoldier->bWeaponMode == WM_BURST )
|
||||
{
|
||||
swprintf( pStr, L"BRST" );
|
||||
swprintf( pStr, New113Message[MSG113_BRST] );
|
||||
SetFontForeground( FONT_RED );
|
||||
}
|
||||
else if(pSoldier->bWeaponMode == WM_AUTOFIRE)
|
||||
{
|
||||
swprintf( pStr, L"AUTO" );
|
||||
swprintf( pStr, New113Message[MSG113_AUTO] );
|
||||
SetFontForeground( FONT_RED );
|
||||
}
|
||||
else if(pSoldier->bWeaponMode == WM_ATTACHED_GL)
|
||||
{
|
||||
swprintf( pStr, L"GL" );
|
||||
swprintf( pStr, New113Message[MSG113_GL] );
|
||||
SetFontForeground( FONT_YELLOW );
|
||||
}
|
||||
else if(pSoldier->bWeaponMode == WM_ATTACHED_GL_BURST)
|
||||
{
|
||||
swprintf( pStr, L"GL BRST" );
|
||||
swprintf( pStr, New113Message[MSG113_GL_BRST] );
|
||||
SetFontForeground( FONT_YELLOW );
|
||||
}
|
||||
else if(pSoldier->bWeaponMode == WM_ATTACHED_GL_AUTO)
|
||||
{
|
||||
swprintf( pStr, L"GL AUTO" );
|
||||
swprintf( pStr, New113Message[MSG113_GL_AUTO] );
|
||||
SetFontForeground( FONT_YELLOW );
|
||||
}
|
||||
|
||||
|
||||
@@ -34,6 +34,8 @@
|
||||
#include "Dialogue Control.h"
|
||||
#endif
|
||||
|
||||
#include "Text.h"
|
||||
|
||||
extern BOOLEAN gfHiddenInterrupt;
|
||||
extern BOOLEAN gfUseAlternateQueenPosition;
|
||||
|
||||
@@ -2334,7 +2336,7 @@ INT8 DecideActionRed(SOLDIERTYPE *pSoldier, UINT8 ubUnconsciousOK)
|
||||
pSoldier->bAimTime = 0;
|
||||
pSoldier->bDoBurst = 1;
|
||||
|
||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"Suppression Fire!" );
|
||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, New113Message[ MSG113_SUPPRESSIONFIRE ] );
|
||||
Menptr[BestShot.ubOpponent].ubSuppressionPoints += pSoldier->bDoAutofire;
|
||||
Menptr[BestShot.ubOpponent].ubSuppressorID = pSoldier->ubID;
|
||||
return( AI_ACTION_FIRE_GUN );
|
||||
@@ -4976,7 +4978,7 @@ INT8 DecideAction(SOLDIERTYPE *pSoldier)
|
||||
{
|
||||
if ( !sniperwarning && pSoldier->bOrders == SNIPER )
|
||||
{
|
||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"Watch out for snipers..." );
|
||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, New113Message[MSG113_WATHCHOUTFORSNIPERS] );
|
||||
sniperwarning = TRUE;
|
||||
}
|
||||
|
||||
|
||||
+10
-1
@@ -176,7 +176,16 @@ NPCQuoteInfo * LoadQuoteFile( UINT8 ubNPC )
|
||||
}
|
||||
|
||||
FileClose( hFile );
|
||||
|
||||
//<SB> check for Russian script & make a runtime conversion of it to International :D
|
||||
// just offset ptr 4 bytes backward
|
||||
if( *(DWORD*)pFileData == 0x00350039 )
|
||||
{
|
||||
NPCQuoteInfo * pEnglishScript = (NPCQuoteInfo *) MemAlloc( uiFileSize );
|
||||
memcpy( pEnglishScript, ((char*)pFileData)+4, uiFileSize-4 );
|
||||
MemFree( pFileData );
|
||||
return( pEnglishScript );
|
||||
}
|
||||
//</SB>
|
||||
return( pFileData );
|
||||
}
|
||||
|
||||
|
||||
+7
-6
@@ -35,10 +35,10 @@
|
||||
|
||||
typedef struct
|
||||
{
|
||||
|
||||
#if defined( CRIPPLED_VERSION ) || defined( RUSSIAN )
|
||||
UINT8 ubIdentifier[4];
|
||||
#endif
|
||||
//SB: unify structure for all versions
|
||||
// #if defined( CRIPPLED_VERSION ) || defined( RUSSIAN )
|
||||
// UINT8 ubIdentifier[4];
|
||||
// #endif
|
||||
|
||||
UINT16 fFlags;
|
||||
|
||||
@@ -71,9 +71,10 @@ typedef struct
|
||||
UINT16 usGoToGridno;
|
||||
INT16 sActionData; // special action value
|
||||
|
||||
#if !defined( CRIPPLED_VERSION ) && !defined( RUSSIAN )
|
||||
//SB: unify structure for all versions
|
||||
//#if !defined( CRIPPLED_VERSION ) && !defined( RUSSIAN )
|
||||
UINT8 ubUnused[4];
|
||||
#endif
|
||||
//#endif
|
||||
|
||||
} NPCQuoteInfo; // 32 bytes
|
||||
|
||||
|
||||
@@ -26,6 +26,8 @@
|
||||
#include "GameSettings.h"
|
||||
#endif
|
||||
|
||||
#include "Text.h"
|
||||
|
||||
//effects whether or not time of day effects the lighting. Underground
|
||||
//maps have an ambient light level that is saved in the map, and doesn't change.
|
||||
BOOLEAN gfBasement = FALSE;
|
||||
@@ -708,12 +710,12 @@ void EnvBeginRainStorm( UINT8 ubIntensity )
|
||||
{
|
||||
// Turn on rain storms
|
||||
guiEnvWeather |= WEATHER_FORECAST_THUNDERSHOWERS;
|
||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"Storm started." );
|
||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, New113Message[MSG113_STORM_STARTED] );
|
||||
}
|
||||
else
|
||||
{
|
||||
guiEnvWeather |= WEATHER_FORECAST_SHOWERS;
|
||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"Rain started." );
|
||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, New113Message[MSG113_RAIN_STARTED] );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -729,11 +731,11 @@ void EnvEndRainStorm( )
|
||||
|
||||
if ( guiEnvWeather & WEATHER_FORECAST_THUNDERSHOWERS )
|
||||
{
|
||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"Storm ended." );
|
||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, New113Message[MSG113_STORM_ENDED] );
|
||||
}
|
||||
else
|
||||
{
|
||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"Rain ended." );
|
||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, New113Message[MSG113_RAIN_ENDED] );
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -9,6 +9,8 @@
|
||||
#endif
|
||||
|
||||
#include "Language Defines.h"
|
||||
//SB
|
||||
#include "FileMan.h"
|
||||
|
||||
BOOLEAN GetMLGFilename( SGPFILENAME filename, UINT16 usMLGGraphicID )
|
||||
{
|
||||
@@ -260,108 +262,218 @@ BOOLEAN GetMLGFilename( SGPFILENAME filename, UINT16 usMLGGraphicID )
|
||||
sprintf( zLanguage, "TAIWANESE" );
|
||||
#endif
|
||||
|
||||
//SB: Also check for russian Gold version, like English
|
||||
switch( usMLGGraphicID )
|
||||
{
|
||||
case MLG_AIMSYMBOL:
|
||||
sprintf( filename, "%s\\AimSymbol_%s.sti", zLanguage, zLanguage );
|
||||
return TRUE;
|
||||
break;
|
||||
case MLG_BOBBYNAME:
|
||||
sprintf( filename, "%s\\BobbyName_%s.sti", zLanguage, zLanguage );
|
||||
return TRUE;
|
||||
break;
|
||||
case MLG_BOBBYRAYAD21:
|
||||
sprintf( filename, "%s\\BobbyRayAd_21_%s.sti", zLanguage, zLanguage );
|
||||
return TRUE;
|
||||
break;
|
||||
case MLG_BOBBYRAYLINK:
|
||||
sprintf( filename, "%s\\BobbyRayLink_%s.sti", zLanguage, zLanguage );
|
||||
return TRUE;
|
||||
break;
|
||||
case MLG_CLOSED:
|
||||
sprintf( filename, "%s\\Closed_%s.sti", zLanguage, zLanguage );
|
||||
return TRUE;
|
||||
break;
|
||||
case MLG_CONFIRMORDER:
|
||||
sprintf( filename, "%s\\ConfirmOrder_%s.sti", zLanguage, zLanguage );
|
||||
return TRUE;
|
||||
break;
|
||||
case MLG_DESKTOP:
|
||||
sprintf( filename, "%s\\desktop_%s.pcx", zLanguage, zLanguage );
|
||||
return TRUE;
|
||||
break;
|
||||
case MLG_FUNERALAD9:
|
||||
sprintf( filename, "%s\\FuneralAd_9_%s.sti", zLanguage, zLanguage );
|
||||
return TRUE;
|
||||
break;
|
||||
case MLG_GOLDPIECEBUTTONS:
|
||||
sprintf( filename, "%s\\goldpiecebuttons_%s.sti", zLanguage, zLanguage );
|
||||
return TRUE;
|
||||
break;
|
||||
case MLG_HISTORY:
|
||||
sprintf( filename, "%s\\history_%s.sti", zLanguage, zLanguage );
|
||||
return TRUE;
|
||||
break;
|
||||
case MLG_INSURANCEAD10:
|
||||
sprintf( filename, "%s\\insurancead_10_%s.sti", zLanguage, zLanguage );
|
||||
return TRUE;
|
||||
break;
|
||||
case MLG_INSURANCELINK:
|
||||
sprintf( filename, "%s\\insurancelink_%s.sti", zLanguage, zLanguage );
|
||||
return TRUE;
|
||||
break;
|
||||
case MLG_INSURANCETITLE:
|
||||
sprintf( filename, "%s\\largetitle_%s.sti", zLanguage, zLanguage );
|
||||
return TRUE;
|
||||
break;
|
||||
case MLG_LARGEFLORISTSYMBOL:
|
||||
sprintf( filename, "%s\\LargeSymbol_%s.sti", zLanguage, zLanguage );
|
||||
return TRUE;
|
||||
break;
|
||||
case MLG_ORDERGRID:
|
||||
sprintf( filename, "%s\\OrderGrid_%s.sti", zLanguage, zLanguage );
|
||||
return TRUE;
|
||||
break;
|
||||
case MLG_SMALLFLORISTSYMBOL:
|
||||
sprintf( filename, "%s\\SmallSymbol_%s.sti", zLanguage, zLanguage );
|
||||
return TRUE;
|
||||
break;
|
||||
case MLG_STATSBOX:
|
||||
sprintf( filename, "%s\\StatsBox_%s.sti", zLanguage, zLanguage );
|
||||
return TRUE;
|
||||
break;
|
||||
case MLG_MCGILLICUTTYS:
|
||||
sprintf( filename, "%s\\McGillicuttys_%s.sti", zLanguage, zLanguage );
|
||||
return TRUE;
|
||||
break;
|
||||
case MLG_MORTUARY:
|
||||
sprintf( filename, "%s\\Mortuary_%s.sti", zLanguage, zLanguage );
|
||||
return TRUE;
|
||||
break;
|
||||
case MLG_MORTUARYLINK:
|
||||
sprintf( filename, "%s\\MortuaryLink_%s.sti", zLanguage, zLanguage );
|
||||
return TRUE;
|
||||
break;
|
||||
case MLG_PREBATTLEPANEL:
|
||||
sprintf( filename, "%s\\PreBattlePanel_%s.sti", zLanguage, zLanguage );
|
||||
return TRUE;
|
||||
break;
|
||||
case MLG_SMALLTITLE:
|
||||
sprintf( filename, "%s\\SmallTitle_%s.sti", zLanguage, zLanguage );
|
||||
return TRUE;
|
||||
break;
|
||||
case MLG_STOREPLAQUE:
|
||||
sprintf( filename, "%s\\StorePlaque_%s.sti", zLanguage, zLanguage );
|
||||
return TRUE;
|
||||
break;
|
||||
case MLG_TITLETEXT:
|
||||
sprintf( filename, "%s\\titletext_%s.sti", zLanguage, zLanguage );
|
||||
return TRUE;
|
||||
break;
|
||||
case MLG_TOALUMNI:
|
||||
sprintf( filename, "%s\\ToAlumni_%s.sti", zLanguage, zLanguage );
|
||||
return TRUE;
|
||||
break;
|
||||
case MLG_TOMUGSHOTS:
|
||||
sprintf( filename, "%s\\ToMugShots_%s.sti", zLanguage, zLanguage );
|
||||
return TRUE;
|
||||
break;
|
||||
case MLG_TOSTATS:
|
||||
sprintf( filename, "%s\\ToStats_%s.sti", zLanguage, zLanguage );
|
||||
return TRUE;
|
||||
break;
|
||||
case MLG_WARNING:
|
||||
sprintf( filename, "%s\\Warning_%s.sti", zLanguage, zLanguage );
|
||||
return TRUE;
|
||||
break;
|
||||
case MLG_YOURAD13:
|
||||
sprintf( filename, "%s\\YourAd_13_%s.sti", zLanguage, zLanguage );
|
||||
return TRUE;
|
||||
break;
|
||||
case MLG_OPTIONHEADER:
|
||||
sprintf( filename, "%s\\optionscreenaddons_%s.sti", zLanguage, zLanguage );
|
||||
return TRUE;
|
||||
break;
|
||||
case MLG_LOADSAVEHEADER:
|
||||
sprintf( filename, "%s\\loadscreenaddons_%s.sti", zLanguage, zLanguage );
|
||||
return TRUE;
|
||||
break;
|
||||
case MLG_SPLASH:
|
||||
sprintf( filename, "%s\\splash_%s.sti", zLanguage, zLanguage );
|
||||
return TRUE;
|
||||
break;
|
||||
case MLG_IMPSYMBOL:
|
||||
sprintf( filename, "%s\\IMPSymbol_%s.sti", zLanguage, zLanguage );
|
||||
return TRUE;
|
||||
break;
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if(FileExists( filename ))
|
||||
return TRUE;
|
||||
|
||||
switch( usMLGGraphicID )
|
||||
{
|
||||
case MLG_AIMSYMBOL:
|
||||
sprintf( filename, "LAPTOP\\AimSymbol.sti" );
|
||||
return TRUE;
|
||||
case MLG_BOBBYNAME:
|
||||
sprintf( filename, "LAPTOP\\BobbyName.sti" );
|
||||
return TRUE;
|
||||
case MLG_BOBBYRAYAD21:
|
||||
sprintf( filename, "LAPTOP\\BobbyRayAd_21.sti" );
|
||||
return TRUE;
|
||||
case MLG_BOBBYRAYLINK:
|
||||
sprintf( filename, "LAPTOP\\BobbyRayLink.sti" );
|
||||
return TRUE;
|
||||
case MLG_CLOSED:
|
||||
sprintf( filename, "LAPTOP\\Closed.sti" );
|
||||
return TRUE;
|
||||
case MLG_CONFIRMORDER:
|
||||
sprintf( filename, "LAPTOP\\ConfirmOrder.sti" );
|
||||
return TRUE;
|
||||
case MLG_DESKTOP:
|
||||
sprintf( filename, "LAPTOP\\desktop.pcx" );
|
||||
return TRUE;
|
||||
case MLG_FUNERALAD9:
|
||||
sprintf( filename, "LAPTOP\\FuneralAd_9.sti" );
|
||||
return TRUE;
|
||||
case MLG_GOLDPIECEBUTTONS:
|
||||
sprintf( filename, "INTERFACE\\goldpiecebuttons.sti" );
|
||||
return TRUE;
|
||||
case MLG_HISTORY:
|
||||
sprintf( filename, "LAPTOP\\history.sti" );
|
||||
return TRUE;
|
||||
case MLG_INSURANCEAD10:
|
||||
sprintf( filename, "LAPTOP\\insurancead_10.sti" );
|
||||
return TRUE;
|
||||
case MLG_INSURANCELINK:
|
||||
sprintf( filename, "LAPTOP\\insurancelink.sti" );
|
||||
return TRUE;
|
||||
case MLG_INSURANCETITLE:
|
||||
sprintf( filename, "LAPTOP\\largetitle.sti" );
|
||||
return TRUE;
|
||||
case MLG_LARGEFLORISTSYMBOL:
|
||||
sprintf( filename, "LAPTOP\\LargeSymbol.sti" );
|
||||
return TRUE;
|
||||
case MLG_SMALLFLORISTSYMBOL:
|
||||
sprintf( filename, "LAPTOP\\SmallSymbol.sti" );
|
||||
return TRUE;
|
||||
case MLG_MCGILLICUTTYS:
|
||||
sprintf( filename, "LAPTOP\\McGillicuttys.sti" );
|
||||
return TRUE;
|
||||
case MLG_MORTUARY:
|
||||
sprintf( filename, "LAPTOP\\Mortuary.sti" );
|
||||
return TRUE;
|
||||
case MLG_MORTUARYLINK:
|
||||
sprintf( filename, "LAPTOP\\MortuaryLink.sti" );
|
||||
return TRUE;
|
||||
case MLG_ORDERGRID:
|
||||
sprintf( filename, "LAPTOP\\OrderGrid.sti" );
|
||||
return TRUE;
|
||||
case MLG_PREBATTLEPANEL:
|
||||
sprintf( filename, "INTERFACE\\PreBattlePanel.sti" );
|
||||
return TRUE;
|
||||
case MLG_SMALLTITLE:
|
||||
sprintf( filename, "LAPTOP\\SmallTitle.sti" );
|
||||
return TRUE;
|
||||
case MLG_STATSBOX:
|
||||
sprintf( filename, "LAPTOP\\StatsBox.sti" );
|
||||
return TRUE;
|
||||
case MLG_STOREPLAQUE:
|
||||
sprintf( filename, "LAPTOP\\BobbyStorePlaque.sti" );
|
||||
return TRUE;
|
||||
case MLG_TITLETEXT:
|
||||
sprintf( filename, "LOADSCREENS\\titletext.sti" );
|
||||
return TRUE;
|
||||
case MLG_TOALUMNI:
|
||||
sprintf( filename, "LAPTOP\\ToAlumni.sti" );
|
||||
return TRUE;
|
||||
case MLG_TOMUGSHOTS:
|
||||
sprintf( filename, "LAPTOP\\ToMugShots.sti" );
|
||||
return TRUE;
|
||||
case MLG_TOSTATS:
|
||||
sprintf( filename, "LAPTOP\\ToStats.sti" );
|
||||
return TRUE;
|
||||
case MLG_WARNING:
|
||||
sprintf( filename, "LAPTOP\\Warning.sti" );
|
||||
return TRUE;
|
||||
case MLG_YOURAD13:
|
||||
sprintf( filename, "LAPTOP\\YourAd_13.sti" );
|
||||
return TRUE;
|
||||
case MLG_OPTIONHEADER:
|
||||
sprintf( filename, "INTERFACE\\optionscreenaddons.sti" );
|
||||
return TRUE;
|
||||
case MLG_LOADSAVEHEADER:
|
||||
sprintf( filename, "INTERFACE\\loadscreenaddons.sti" );
|
||||
return TRUE;
|
||||
case MLG_SPLASH:
|
||||
sprintf( filename, "INTERFACE\\splash.sti" );
|
||||
return TRUE;
|
||||
case MLG_IMPSYMBOL:
|
||||
sprintf( filename, "LAPTOP\\IMPSymbol.sti" );
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
return FALSE;
|
||||
|
||||
+16
-2
@@ -1524,8 +1524,22 @@ extern STR16 GetWeightUnitString( void );
|
||||
FLOAT GetWeightBasedOnMetricOption( UINT32 uiObjectWeight );
|
||||
|
||||
|
||||
//SB: new 1.13 messages
|
||||
extern STR16 New113Message[];
|
||||
|
||||
|
||||
|
||||
enum
|
||||
{
|
||||
MSG113_STORM_STARTED,
|
||||
MSG113_STORM_ENDED,
|
||||
MSG113_RAIN_STARTED,
|
||||
MSG113_RAIN_ENDED,
|
||||
MSG113_WATHCHOUTFORSNIPERS,
|
||||
MSG113_SUPPRESSIONFIRE,
|
||||
MSG113_BRST,
|
||||
MSG113_AUTO,
|
||||
MSG113_GL,
|
||||
MSG113_GL_BRST,
|
||||
MSG113_GL_AUTO,
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -4207,6 +4207,13 @@ STR16 gzTooltipStrings[] =
|
||||
L"|Armor: %s\n",
|
||||
};
|
||||
|
||||
|
||||
STR16 New113Message[] =
|
||||
{
|
||||
L"Storm started.",
|
||||
L"Storm ended.",
|
||||
L"Rain started.",
|
||||
L"Rain ended.",
|
||||
L"Watch out for snipers...",
|
||||
};
|
||||
|
||||
#endif //DUTCH
|
||||
|
||||
@@ -4202,5 +4202,19 @@ STR16 gzTooltipStrings[] =
|
||||
L"|Armor: %s\n",
|
||||
};
|
||||
|
||||
STR16 New113Message[] =
|
||||
{
|
||||
L"Storm started.",
|
||||
L"Storm ended.",
|
||||
L"Rain started.",
|
||||
L"Rain ended.",
|
||||
L"Watch out for snipers...",
|
||||
L"Suppression fire!",
|
||||
L"BRST",
|
||||
L"AUTO",
|
||||
L"GL",
|
||||
L"GL BRST",
|
||||
L"GL AUTO",
|
||||
};
|
||||
|
||||
#endif //ENGLISH
|
||||
@@ -4189,4 +4189,19 @@ STR16 gzTooltipStrings[] =
|
||||
L"|Armor: %s\n",
|
||||
};
|
||||
|
||||
STR16 New113Message[] =
|
||||
{
|
||||
L"Storm started.",
|
||||
L"Storm ended.",
|
||||
L"Rain started.",
|
||||
L"Rain ended.",
|
||||
L"Watch out for snipers...",
|
||||
L"Suppression fire!",
|
||||
L"BRST",
|
||||
L"AUTO",
|
||||
L"GL",
|
||||
L"GL BRST",
|
||||
L"GL AUTO",
|
||||
};
|
||||
|
||||
#endif //FRENCH
|
||||
|
||||
@@ -3994,4 +3994,19 @@ STR16 gzTooltipStrings[] =
|
||||
L"|Rüstung: %s\n",
|
||||
};
|
||||
|
||||
STR16 New113Message[] =
|
||||
{
|
||||
L"Storm started.",
|
||||
L"Storm ended.",
|
||||
L"Rain started.",
|
||||
L"Rain ended.",
|
||||
L"Watch out for snipers...",
|
||||
L"Suppression fire!",
|
||||
L"BRST",
|
||||
L"AUTO",
|
||||
L"GL",
|
||||
L"GL BRST",
|
||||
L"GL AUTO",
|
||||
};
|
||||
|
||||
#endif //GERMAN
|
||||
|
||||
+14
-1
@@ -4186,6 +4186,19 @@ STR16 gzTooltipStrings[] =
|
||||
L"|Armor: %s\n",
|
||||
};
|
||||
|
||||
|
||||
STR16 New113Message[] =
|
||||
{
|
||||
L"Storm started.",
|
||||
L"Storm ended.",
|
||||
L"Rain started.",
|
||||
L"Rain ended.",
|
||||
L"Watch out for snipers...",
|
||||
L"Suppression fire!",
|
||||
L"BRST",
|
||||
L"AUTO",
|
||||
L"GL",
|
||||
L"GL BRST",
|
||||
L"GL AUTO",
|
||||
};
|
||||
|
||||
#endif //ITALIAN
|
||||
|
||||
+41
-40
@@ -13,56 +13,57 @@
|
||||
|
||||
STR16 zNewTacticalMessages[]=
|
||||
{
|
||||
L"Range to target: %d tiles, Brightness: %d/%d",
|
||||
L"Attaching the transmitter to your laptop computer.",
|
||||
L"You cannot afford to hire %s",
|
||||
L"For a limited time, the above fee covers the cost of the entire mission and includes the equipment listed below.",
|
||||
L"Hire %s now and take advantage of our unprecedented 'one fee covers all' pricing. Also included in this unbelievable offer is the mercenary's personal equipment at no charge.",
|
||||
L"Fee",
|
||||
L"There is someone else in the sector...",
|
||||
L"Gun Range: %d tiles, Chance to hit: %d percent",
|
||||
L"Display Cover",
|
||||
L"Line of Sight",
|
||||
L"New Recruits cannot arrive there.",
|
||||
L"Since your laptop has no transmitter, you won't be able to hire new team members. Perhaps this would be a good time to load a saved game or start over!",
|
||||
L"%s hears the sound of crumpling metal coming from underneath Jerry's body. It sounds disturbingly like your laptop antenna being crushed.", //the %s is the name of a merc. @@@ Modified
|
||||
L"After scanning the note left behind by Deputy Commander Morris, %s senses an oppurtinity. The note contains the coordinates for launching missiles against different towns in Arulco. It also gives the coodinates of the origin - the missile facility.",
|
||||
L"Noticing the control panel, %s figures the numbers can be reveresed, so that the missile might destroy this very facility. %s needs to find an escape route. The elevator appears to offer the fastest solution...",
|
||||
L"This is an IRON MAN game and you cannot save when enemies are around.", // @@@ new text
|
||||
L"(Cannot save during combat)", //@@@@ new text
|
||||
L"The current campaign name is greater than 30 characters.", // @@@ new text
|
||||
L"The current campaign cannot be found.", // @@@ new text
|
||||
L"Campaign: Default ( %S )", // @@@ new text
|
||||
L"Campaign: %S", // @@@ new text
|
||||
L"You have selected the campaign %S. This campaign is a player-modified version of the original Unfinished Business campaign. Are you sure you wish to play the %S campaign?", // @@@ new text
|
||||
L"In order to use the editor, please select a campaign other than the default.", ///@@new
|
||||
L"Расстояние до цели: %d ед.",
|
||||
L"Передатчик подключен к вашему ноутбуку.",
|
||||
L"Вы не можете нанять %s",
|
||||
L"Предложение действует ограниченное время и покрывает стоимость найма на всю миссию, плюс вы так же получите оборудование, перечисленное ниже.",
|
||||
L"Наемник %s - наше невероятное суперпредложение 'одна плата за все'. Вы также бесплатно получите его персональную экипировку.",
|
||||
L"Гонорар",
|
||||
L"В секторе кто-то есть...",
|
||||
L"Дальнобойность: %d ед, расстояние до цели: %d ед",
|
||||
L"Показать укрытия",
|
||||
L"Линия прицела",
|
||||
L"Новые наемники не могут высадится здесь.",
|
||||
L"Так как ваш ноутбук лишился антенны, то вы не сможете нанять новых наемников. Возможно, сейчас вам стоит загрузить одну из сохраненных игр, или начать игру заново!",
|
||||
L"%s слышит металлический хруст под телом Джерри. Похоже этот чмо сломал антенну вашего ноутбука.", //the %s is the name of a merc. @@@ Modified
|
||||
L"После прочтения записей, оставленных помощником командира Морриса, %s видит, что не все еще потеряно. В записке содержатся координаты городов Арулько для запуска по ним ракет. Кроме того, там также указаны координаты самой ракетной базы.",
|
||||
L"Изучив панель управления, %s понимает что координаты цели можно измененить, и тогда ракета уничтожит эту базу. %s не собирается умирать, а значит нужно быстрее отсюда выбираться. Похоже что самый быстрый способ это лифт...",
|
||||
L"В начале игры вы выбрали режим \"Стальная воля\" и теперь не можете записываться во время боя.", // @@@ new text
|
||||
L"(Нельзя сохраняться во время боя)", //@@@@ new text
|
||||
L"Текущая кампания длиннее 30 символов.", // @@@ new text
|
||||
L"Текущая кампания не найдена.", // @@@ new text
|
||||
L"Кампания: По умолчанию ( %S )", // @@@ new text
|
||||
L"Кампания: %S", // @@@ new text
|
||||
L"Вы выбрали кампанию %S. Эта кампания является модификацией оригинальной кампании Unfinished Business. Вы уверены, что хотите играть кампанию %S?", // @@@ new text
|
||||
L"Чтобы воспользоваться редактором, смените кампанию по умолчанию на другую.", ///@@new
|
||||
};
|
||||
|
||||
|
||||
//these strings match up with the defines in IMP Skill trait.cpp
|
||||
STR16 gzIMPSkillTraitsText[]=
|
||||
{
|
||||
L"Lock picking",
|
||||
L"Hand to hand combat",
|
||||
L"Electronics",
|
||||
L"Night operations",
|
||||
L"Throwing",
|
||||
L"Teaching",
|
||||
L"Heavy Weapons",
|
||||
L"Auto Weapons",
|
||||
L"Stealth",
|
||||
L"Ambidextrous",
|
||||
L"Knifing",
|
||||
L"Rooftop Sniping",
|
||||
L"Camouflage",
|
||||
L"Martial Arts",
|
||||
L"Взлом замков",
|
||||
L"Рукопашный бой",
|
||||
L"Электроника",
|
||||
L"Ночные операции",
|
||||
L"Метание",
|
||||
L"Инструктор",
|
||||
L"Тяжелое оружие",
|
||||
L"Авт. оружие",
|
||||
L"Скрытность",
|
||||
L"Стрельба с двух рук",
|
||||
L"Холодное оружие",
|
||||
L"Стрельба с крыш",
|
||||
L"Камуфляж",
|
||||
L"Боевые искуства",
|
||||
|
||||
L"None",
|
||||
L"I.M.P. Specialties",
|
||||
L"Нет",
|
||||
L"Специализация I.M.P.",
|
||||
};
|
||||
//@@@: New string as of March 3, 2000.
|
||||
STR16 gzIronManModeWarningText[]=
|
||||
{
|
||||
L"You have chosen IRON MAN mode. This setting makes the game considerably more challenging as you will not be able to save your game when in a sector occupied by enemies. This setting will affect the entire course of the game. Are you sure want to play in IRON MAN mode?",
|
||||
L"Вы выбрали режим \"Стальная воля\". Проходить игру станет гораздо сложнее, так как вы не сможете сохранять игру, когда ваши наемники будут находиться в одном секторе с противником. Во время игры этот режим нельзя будет отключить. Вы уверены, что желаете играть в режиме \"Стальная воля\"?",
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -4178,5 +4178,19 @@ STR16 gzTooltipStrings[] =
|
||||
L"|Armor: %s\n",
|
||||
};
|
||||
|
||||
STR16 New113Message[] =
|
||||
{
|
||||
L"Storm started.",
|
||||
L"Storm ended.",
|
||||
L"Rain started.",
|
||||
L"Rain ended.",
|
||||
L"Watch out for snipers...",
|
||||
L"Suppression fire!",
|
||||
L"BRST",
|
||||
L"AUTO",
|
||||
L"GL",
|
||||
L"GL BRST",
|
||||
L"GL AUTO",
|
||||
};
|
||||
|
||||
#endif //POLISH
|
||||
|
||||
+1628
-1614
File diff suppressed because it is too large
Load Diff
@@ -3958,7 +3958,19 @@ STR16 gzLateLocalizedString[] =
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
STR16 New113Message[] =
|
||||
{
|
||||
L"Storm started.",
|
||||
L"Storm ended.",
|
||||
L"Rain started.",
|
||||
L"Rain ended.",
|
||||
L"Watch out for snipers...",
|
||||
L"Suppression fire!",
|
||||
L"BRST",
|
||||
L"AUTO",
|
||||
L"GL",
|
||||
L"GL BRST",
|
||||
L"GL AUTO",
|
||||
};
|
||||
|
||||
#endif //TAIWANESE
|
||||
|
||||
+8
-2
@@ -376,9 +376,11 @@ UINT32 InitScreenHandle(void)
|
||||
strcpy( vs_desc.ImageFile, "ja2_logo.STI" );
|
||||
|
||||
hVSurface = CreateVideoSurface( &vs_desc );
|
||||
//SB: JA2 Gold Rus doesn't contain such file!
|
||||
#ifndef RUSSIAN
|
||||
if( !hVSurface )
|
||||
AssertMsg( 0, "Failed to load ja2_logo.sti!" );
|
||||
|
||||
#endif
|
||||
//BltVideoSurfaceToVideoSurface( ghFrameBuffer, hVSurface, 0, 0, 0, VS_BLT_FAST, NULL );
|
||||
ubCurrentScreen = 1;
|
||||
|
||||
@@ -423,7 +425,11 @@ UINT32 InitScreenHandle(void)
|
||||
InvalidateScreen( );
|
||||
|
||||
// Delete video Surface
|
||||
DeleteVideoSurface( hVSurface );
|
||||
//SB: JA2 Gold Rus doesn't contain such file!
|
||||
#ifdef RUSSIAN
|
||||
if( hVSurface )
|
||||
#endif
|
||||
DeleteVideoSurface( hVSurface );
|
||||
//ATE: Set to true to reset before going into main screen!
|
||||
|
||||
SetCurrentCursorFromDatabase( VIDEO_NO_CURSOR );
|
||||
|
||||
Reference in New Issue
Block a user