1) Do not use a "Tab" instead "Space" in the text messages. We don't have symbol for symbol "Tab" in the fonts, so when we use it in the text the game show "A"

2) Fixed mistakes in English
3) New translation for Russian text 

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8025 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
inshy
2016-01-17 09:54:44 +00:00
parent b430965027
commit 4cf9f557f8
3 changed files with 252 additions and 252 deletions
+72 -72
View File
@@ -100,7 +100,7 @@ BOOLEAN gfRandomizingPatrolGroup = FALSE;
UINT8 gubNumGroupsArrivedSimultaneously = 0;
//Doesn't require text localization. This is for debug strings only.
//Doesn't require text localization. This is for debug strings only.
UINT8 gszTerrain[NUM_TRAVTERRAIN_TYPES][15] =
{
"TOWN", "ROAD", "PLAINS", "SAND", "SPARSE", "DENSE", "SWAMP",
@@ -163,7 +163,7 @@ BOOLEAN gfWaitingForInput = FALSE;
//Player grouping functions
//.........................
//Creates a new player group, returning the unique ID of that group. This is the first
//Creates a new player group, returning the unique ID of that group. This is the first
//step before adding waypoints and members to the player group.
UINT8 CreateNewPlayerGroupDepartingFromSector( UINT8 ubSectorX, UINT8 ubSectorY )
{
@@ -397,7 +397,7 @@ BOOLEAN RemovePlayerFromGroup( UINT8 ubGroupID, SOLDIERTYPE *pSoldier )
//KM : August 6, 1999 Patch fix
// Because the release build has no assertions, it was still possible for the group to be null,
// causing a crash. Instead of crashing, it'll simply return false.
// causing a crash. Instead of crashing, it'll simply return false.
if( !pGroup )
{
return FALSE;
@@ -436,14 +436,14 @@ BOOLEAN GroupReversingDirectionsBetweenSectors( GROUP *pGroup, UINT8 ubSectorX,
if ( pGroup->usGroupTeam == OUR_TEAM )
{
// ARM: because we've changed the group's ubSectoryX and ubSectorY, we must now also go and change the sSectorX and
// sSectorY of all the soldiers in this group so that they stay in synch. Otherwise pathing and movement problems
// sSectorY of all the soldiers in this group so that they stay in synch. Otherwise pathing and movement problems
// will result since the group is in one place while the merc is in another...
SetLocationOfAllPlayerSoldiersInGroup( pGroup, pGroup->ubSectorX, pGroup->ubSectorY, 0 );
}
// IMPORTANT: The traverse time doesn't change just because we reverse directions! It takes the same time no matter
// which direction you're going in! This becomes critical in case the player reverse directions again before moving!
// IMPORTANT: The traverse time doesn't change just because we reverse directions! It takes the same time no matter
// which direction you're going in! This becomes critical in case the player reverse directions again before moving!
// The time it takes to arrive there will be exactly the amount of time we have been moving away from it.
SetGroupArrivalTime( pGroup, pGroup->uiTraverseTime - pGroup->uiArrivalTime + GetWorldTotalMin() * 2 );
@@ -470,7 +470,7 @@ BOOLEAN GroupReversingDirectionsBetweenSectors( GROUP *pGroup, UINT8 ubSectorX,
// To handle this situation, RebuildWayPointsForGroupPath() will issue it's own call after it's ready for it.
if ( !fBuildingWaypoints )
{
// never really left. Must set check for battle TRUE in order for HandleNonCombatGroupArrival() to run!
// never really left. Must set check for battle TRUE in order for HandleNonCombatGroupArrival() to run!
GroupArrivedAtSector( pGroup->ubGroupID, TRUE, TRUE );
}
}
@@ -518,7 +518,7 @@ BOOLEAN GroupBetweenSectorsAndSectorXYIsInDifferentDirection( GROUP *pGroup, UIN
return FALSE;
}
// Compare the dx/dy's. If they're exactly the same, group is travelling in the same direction as before, so we're not
// Compare the dx/dy's. If they're exactly the same, group is travelling in the same direction as before, so we're not
// changing directions.
// Note that 90-degree orthogonal changes are considered changing direction, as well as the full 180-degree reversal.
// That's because the party must return to the previous sector in each of those cases, too.
@@ -531,7 +531,7 @@ BOOLEAN GroupBetweenSectorsAndSectorXYIsInDifferentDirection( GROUP *pGroup, UIN
}
//Appends a waypoint to the end of the list. Waypoint MUST be on the
//Appends a waypoint to the end of the list. Waypoint MUST be on the
//same horizontal or vertical level as the last waypoint added.
BOOLEAN AddWaypointToPGroup( GROUP* pGroup, UINT8 ubSectorX, UINT8 ubSectorY ) //Same, but overloaded
{
@@ -546,7 +546,7 @@ BOOLEAN AddWaypointToPGroup( GROUP* pGroup, UINT8 ubSectorX, UINT8 ubSectorY ) /
if( !pGroup )
return FALSE;
//At this point, we have the group, and a valid coordinate. Now we must
//At this point, we have the group, and a valid coordinate. Now we must
//determine that this waypoint will be aligned exclusively to either the x or y axis of
//the last waypoint in the list.
pWay = pGroup->pWaypoints;
@@ -560,10 +560,10 @@ BOOLEAN AddWaypointToPGroup( GROUP* pGroup, UINT8 ubSectorX, UINT8 ubSectorY ) /
AddSectorToFrontOfMercPathForAllSoldiersInGroup( pGroup, pGroup->ubSectorX, pGroup->ubSectorY );
}
//Very special case that requiring specific coding. Check out the comments
//Very special case that requiring specific coding. Check out the comments
//at the above function for more information.
fReversingDirection = TRUE;
// ARM: Kris - new rulez. Must still fall through and add a waypoint anyway!!!
// ARM: Kris - new rulez. Must still fall through and add a waypoint anyway!!!
}
else
{ //No waypoints, so compare against the current location.
@@ -754,9 +754,9 @@ GROUP* CreateNewEnemyGroupDepartingFromSector( UINT32 uiSector, UINT8 ubNumAdmin
CHAR16 str[ 512 ];
if ( PlayerMercsInSector( pNew->ubSectorX, pNew->ubSectorY, 0 ) || NumNonPlayerTeamMembersInSector( pNew->ubSectorX, pNew->ubSectorY, MILITIA_TEAM ) )
{
swprintf( str, L"Attempting to send enemy troops from player occupied location. "
swprintf( str, L"Attempting to send enemy troops from player occupied location. "
L"Please ALT+TAB out of the game before doing anything else and send 'Strategic Decisions.txt' "
L"and this message. You'll likely need to revert to a previous save. If you can reproduce this "
L"and this message. You'll likely need to revert to a previous save. If you can reproduce this "
L"with a save close to this event, that would really help me! -- KM:0" );
DoScreenIndependantMessageBox( str, MSG_BOX_FLAG_OK, NULL );
}
@@ -764,8 +764,8 @@ GROUP* CreateNewEnemyGroupDepartingFromSector( UINT32 uiSector, UINT8 ubNumAdmin
* Not valid
else if( pNew->ubGroupSize > 25 )
{
swprintf( str, L"Strategic AI warning: Creating an enemy group containing %d soldiers "
L"(%d admins, %d troops, %d elites) in sector %c%d. This message is a temporary test message "
swprintf( str, L"Strategic AI warning: Creating an enemy group containing %d soldiers "
L"(%d admins, %d troops, %d elites) in sector %c%d. This message is a temporary test message "
L"to evaluate a potential problems with very large enemy groups.",
pNew->ubGroupSize, ubNumAdmins, ubNumTroops, ubNumElites,
pNew->ubSectorY + 'A' - 1, pNew->ubSectorX );
@@ -831,9 +831,9 @@ GROUP* CreateNewMilitiaGroupDepartingFromSector( UINT32 uiSector, UINT8 ubNumAdm
/*CHAR16 str[512];
if ( PlayerMercsInSector( pNew->ubSectorX, pNew->ubSectorY, 0 ) || NumNonPlayerTeamMembersInSector( pNew->ubSectorX, pNew->ubSectorY, MILITIA_TEAM ) )
{
swprintf( str, L"Attempting to send enemy troops from player occupied location. "
swprintf( str, L"Attempting to send enemy troops from player occupied location. "
L"Please ALT+TAB out of the game before doing anything else and send 'Strategic Decisions.txt' "
L"and this message. You'll likely need to revert to a previous save. If you can reproduce this "
L"and this message. You'll likely need to revert to a previous save. If you can reproduce this "
L"with a save close to this event, that would really help me! -- KM:0" );
DoScreenIndependantMessageBox( str, MSG_BOX_FLAG_OK, NULL );
}*/
@@ -841,8 +841,8 @@ GROUP* CreateNewMilitiaGroupDepartingFromSector( UINT32 uiSector, UINT8 ubNumAdm
* Not valid
else if( pNew->ubGroupSize > 25 )
{
swprintf( str, L"Strategic AI warning: Creating an enemy group containing %d soldiers "
L"(%d admins, %d troops, %d elites) in sector %c%d. This message is a temporary test message "
swprintf( str, L"Strategic AI warning: Creating an enemy group containing %d soldiers "
L"(%d admins, %d troops, %d elites) in sector %c%d. This message is a temporary test message "
L"to evaluate a potential problems with very large enemy groups.",
pNew->ubGroupSize, ubNumAdmins, ubNumTroops, ubNumElites,
pNew->ubSectorY + 'A' - 1, pNew->ubSectorX );
@@ -1003,8 +1003,8 @@ void HandleImportantPBIQuote( SOLDIERTYPE *pSoldier, GROUP *pInitiatingBattleGro
}
}
//If this is called, we are setting the game up to bring up the prebattle interface. Before doing so,
//one of the involved mercs will pipe up. When he is finished, we automatically go into the mapscreen,
//If this is called, we are setting the game up to bring up the prebattle interface. Before doing so,
//one of the involved mercs will pipe up. When he is finished, we automatically go into the mapscreen,
//regardless of the mode we are in.
void PrepareForPreBattleInterface( GROUP *pPlayerDialogGroup, GROUP *pInitiatingBattleGroup )
{
@@ -1022,7 +1022,7 @@ void PrepareForPreBattleInterface( GROUP *pPlayerDialogGroup, GROUP *pInitiating
{
// WDS Note: This can validly happen when multiple teams retreat and then immediately return to a sector.
// Just returning causes no problems.
// AssertMsg( 0, "fDisableMapInterfaceDueToBattle is set before attempting to bring up PBI. Please send PRIOR save if possible and details on anything that just happened before this battle." );
// AssertMsg( 0, "fDisableMapInterfaceDueToBattle is set before attempting to bring up PBI. Please send PRIOR save if possible and details on anything that just happened before this battle." );
return;
}
@@ -1151,7 +1151,7 @@ BOOLEAN CheckConditionsForBattle( GROUP *pGroup )
if( gfWorldLoaded )
{
//look for people arriving in the currently loaded sector. This handles reinforcements.
//look for people arriving in the currently loaded sector. This handles reinforcements.
curr = FindMovementGroupInSector( (UINT8)gWorldSectorX, (UINT8)gWorldSectorY, OUR_TEAM );
if( !gbWorldSectorZ && PlayerMercsInSector( (UINT8)gWorldSectorX, (UINT8)gWorldSectorY, gbWorldSectorZ ) &&
@@ -1193,8 +1193,8 @@ BOOLEAN CheckConditionsForBattle( GROUP *pGroup )
(!IsGroupTheHelicopterGroup( curr ) || !fHelicopterIsAirBorne) &&
(!curr->fVehicle || NumberMercsInVehicleGroup( curr )) )
{
//Now, a player group is in this sector. Determine if the group contains any mercs that can fight.
//Vehicles, EPCs and the robot doesn't count. Mercs below OKLIFE do.
//Now, a player group is in this sector. Determine if the group contains any mercs that can fight.
//Vehicles, EPCs and the robot doesn't count. Mercs below OKLIFE do.
pPlayer = curr->pPlayerList;
while( pPlayer )
{
@@ -1296,17 +1296,17 @@ BOOLEAN CheckConditionsForBattle( GROUP *pGroup )
if( !fAliveMerc && !fMilitiaPresent )
{
//empty vehicle, everyone dead, don't care. Enemies don't care.
//empty vehicle, everyone dead, don't care. Enemies don't care.
return FALSE;
}
if( fBattlePending )
{
//A battle is pending, but the players could be all unconcious or dead.
//Go through every group until we find at least one concious merc. The looping will determine
//if there are any live mercs and/or concious ones. If there are no concious mercs, but alive ones,
//Go through every group until we find at least one concious merc. The looping will determine
//if there are any live mercs and/or concious ones. If there are no concious mercs, but alive ones,
//then we will go straight to autoresolve, where the enemy will likely annihilate them or capture them.
//If there are no alive mercs, then there is nothing anybody can do. The enemy will completely ignore
//If there are no alive mercs, then there is nothing anybody can do. The enemy will completely ignore
//this, and continue on.
// WANNE: ValidateGroups now returns a BOOLEAN Value (TRUE/FALSE) if the attacking is valid.
@@ -1460,7 +1460,7 @@ void CalculateNextMoveIntention( GROUP *pGroup )
case CIRCULAR:
wp = wp->next;
if( !wp )
{ //reached the end of the patrol route. Set to the first waypoint in list, indefinately.
{ //reached the end of the patrol route. Set to the first waypoint in list, indefinately.
//NOTE: If the last waypoint isn't exclusively aligned to the x or y axis of the first
// waypoint, there will be an assertion failure inside the waypoint movement code.
pGroup->ubNextWaypointID = 0;
@@ -1848,7 +1848,7 @@ void GroupArrivedAtSector( UINT8 ubGroupID, BOOLEAN fCheckForBattle, BOOLEAN fNe
if( pGroup->pPlayerList == NULL )
{
// nobody here, better just get out now
AssertMsg( 0, String( "Player group %d arrived in sector empty. KM 0", ubGroupID ) );
AssertMsg( 0, String( "Player group %d arrived in sector empty. KM 0", ubGroupID ) );
return;
}
}
@@ -1887,7 +1887,7 @@ void GroupArrivedAtSector( UINT8 ubGroupID, BOOLEAN fCheckForBattle, BOOLEAN fNe
#else
if( AreInMeanwhile() )
{
pGroup->uiArrivalTime ++; //tack on only 1 minute if we are in a meanwhile scene. This effectively
pGroup->uiArrivalTime ++; //tack on only 1 minute if we are in a meanwhile scene. This effectively
//prevents any battle from occurring while inside a meanwhile scene.
}
else
@@ -1946,10 +1946,10 @@ void GroupArrivedAtSector( UINT8 ubGroupID, BOOLEAN fCheckForBattle, BOOLEAN fNe
SOLDIERTYPE *pSoldier;
INT32 iVehicleID;
iVehicleID = GivenMvtGroupIdFindVehicleId( pGroup->ubGroupID );
AssertMsg( iVehicleID != -1, "GroupArrival for vehicle group. Invalid iVehicleID. " );
AssertMsg( iVehicleID != -1, "GroupArrival for vehicle group. Invalid iVehicleID. " );
pSoldier = GetSoldierStructureForVehicle( iVehicleID );
AssertMsg( pSoldier, "GroupArrival for vehicle group. Invalid soldier pointer." );
AssertMsg( pSoldier, "GroupArrival for vehicle group. Invalid soldier pointer." );
SpendVehicleFuel( pSoldier, (INT16)(pGroup->uiTraverseTime*6) );
@@ -2217,7 +2217,7 @@ void GroupArrivedAtSector( UINT8 ubGroupID, BOOLEAN fCheckForBattle, BOOLEAN fNe
{
//Determine if a battle should start.
//if a battle does start, or get's delayed, then we will keep the group in memory including
//all waypoints, until after the battle is resolved. At that point, we will continue the processing.
//all waypoints, until after the battle is resolved. At that point, we will continue the processing.
if( fCheckForBattle && !CheckConditionsForBattle( pGroup ) && !gfWaitingForInput )
{
GROUP *next;
@@ -2463,7 +2463,7 @@ void HandleOtherGroupsArrivingSimultaneously( UINT8 ubSectorX, UINT8 ubSectorY,
}
}
//The user has just approved to plan a simultaneous arrival. So we will syncronize all of the involved
//The user has just approved to plan a simultaneous arrival. So we will syncronize all of the involved
//groups so that they arrive at the same time (which is the time the final group would arrive).
void PrepareGroupsForSimultaneousArrival()
{
@@ -2515,7 +2515,7 @@ void PrepareGroupsForSimultaneousArrival()
pGroup = pGroup->next;
}
//We still have the first group that has arrived. Because they are set up to be in the destination
//We still have the first group that has arrived. Because they are set up to be in the destination
//sector, we will "warp" them back to the last sector, and also setup a new arrival time for them.
pGroup = gpPendingSimultaneousGroup;
pGroup->ubNextX = pGroup->ubSectorX;
@@ -2553,8 +2553,8 @@ void PrepareGroupsForSimultaneousArrival()
DelayEnemyGroupsIfPathsCross( pGroup );
}
//See if there are other groups OTW. If so, and if we haven't asked the user yet to plan
//a simultaneous attack, do so now, and readjust the groups accordingly. If it is possible
//See if there are other groups OTW. If so, and if we haven't asked the user yet to plan
//a simultaneous attack, do so now, and readjust the groups accordingly. If it is possible
//to do so, then we will set up the gui, and postpone the prebattle interface.
BOOLEAN PossibleToCoordinateSimultaneousGroupArrivals( GROUP *pFirstGroup )
{
@@ -2618,7 +2618,7 @@ BOOLEAN PossibleToCoordinateSimultaneousGroupArrivals( GROUP *pFirstGroup )
//header, sector, singular/plural str, confirmation string.
//Ex: Enemies have been detected in sector J9 and another squad is
// about to arrive. Do you wish to coordinate a simultaneous arrival?
// about to arrive. Do you wish to coordinate a simultaneous arrival?
swprintf( str, pStr,
pEnemyType, //Enemy type (Enemies or bloodcats)
'A' + gpPendingSimultaneousGroup->ubSectorY - 1, gpPendingSimultaneousGroup->ubSectorX ); //Sector location
@@ -2939,7 +2939,7 @@ void RemoveGroupWaypoints( UINT8 ubGroupID )
void RemovePGroupWaypoints( GROUP *pGroup )
{
WAYPOINT* wp;
//if there aren't any waypoints to delete, then return. This also avoids setting
//if there aren't any waypoints to delete, then return. This also avoids setting
//the fWaypointsCancelled flag.
if( !pGroup->pWaypoints )
return;
@@ -2954,7 +2954,7 @@ void RemovePGroupWaypoints( GROUP *pGroup )
pGroup->pWaypoints = NULL;
//By setting this flag, it acknowledges the possibility that the group is currently between sectors,
//and will continue moving until it reaches the next sector. If the user decides to change directions,
//and will continue moving until it reaches the next sector. If the user decides to change directions,
//during this process, the arrival event must be modified to send the group back.
//pGroup->fWaypointsCancelled = TRUE;
}
@@ -3358,7 +3358,7 @@ INT32 GetSectorMvtTimeForGroup( UINT8 ubSector, UINT8 ubDirection, GROUP *pGroup
// THIS FUNCTION WAS WRITTEN TO HANDLE MOVEMENT TYPES WHERE MORE THAN ONE TRANSPORTAION TYPE IS AVAILABLE.
//Determine the group's method(s) of tranportation. If more than one,
//Determine the group's method(s) of tranportation. If more than one,
//we will always use the highest time.
// WANNE: If we have an old savegame (from the dev. trunk, where the skyrider can only move on roads), just change the "pGroup->ubTransportationMask" to 16 for the heli to fix it in the savegame
fFoot = (UINT8)(pGroup->ubTransportationMask & FOOT);
@@ -3372,9 +3372,9 @@ INT32 GetSectorMvtTimeForGroup( UINT8 ubSector, UINT8 ubDirection, GROUP *pGroup
if( ubTraverseType == EDGEOFWORLD )
return 0xffffffff; //can't travel here!
// ARM: Made air-only travel take its normal time per sector even through towns. Because Skyrider charges by the sector,
// ARM: Made air-only travel take its normal time per sector even through towns. Because Skyrider charges by the sector,
// not by flying time, it's annoying when his default route detours through a town to save time, but costs extra money.
// This isn't exactly unrealistic, since the chopper shouldn't be faster flying over a town anyway... Not that other
// This isn't exactly unrealistic, since the chopper shouldn't be faster flying over a town anyway... Not that other
// kinds of travel should be either - but the towns represents a kind of warping of our space-time scale as it is...
if( ( ubTraverseType == TOWN ) && ( pGroup->ubTransportationMask != AIR ) )
return 5; //very fast, and vehicle types don't matter.
@@ -3411,7 +3411,7 @@ INT32 GetSectorMvtTimeForGroup( UINT8 ubSector, UINT8 ubDirection, GROUP *pGroup
{
pSoldier = curr->pSoldier;
if( pSoldier->bAssignment != VEHICLE )
{ //Soldier is on foot and travelling. Factor encumbrance into movement rate.
{ //Soldier is on foot and travelling. Factor encumbrance into movement rate.
iEncumbrance = CalculateCarriedWeight( pSoldier );
if( iEncumbrance > iHighestEncumbrance )
{
@@ -3779,7 +3779,7 @@ BOOLEAN PlayersBetweenTheseSectors( INT16 sSource, INT16 sDest, INT32 *iCountEnt
// Assert( gfPreBattleInterfaceActive );
}
// get number of characters entering/existing between these two sectors. Special conditions during
// get number of characters entering/existing between these two sectors. Special conditions during
// pre-battle interface to return where this function is used to show potential retreating directions instead!
// check all groups
@@ -4582,7 +4582,7 @@ void RetreatGroupToPreviousSector( GROUP *pGroup )
}
}
else
{ //Group doesn't have a previous sector. Create one, then recurse
{ //Group doesn't have a previous sector. Create one, then recurse
CalculateGroupRetreatSector( pGroup );
RetreatGroupToPreviousSector( pGroup );
}
@@ -4682,7 +4682,7 @@ BOOLEAN GroupAtFinalDestination( GROUP *pGroup )
wp = GetFinalWaypoint( pGroup );
if( !wp )
{ //no waypoints, so the group is at it's destination. This happens when
{ //no waypoints, so the group is at it's destination. This happens when
//an enemy group is created in the destination sector (which is legal for
//staging groups which always stop adjacent to their real sector destination)
return TRUE;
@@ -4717,7 +4717,7 @@ WAYPOINT *GetFinalWaypoint( GROUP *pGroup )
}
//The sector supplied resets ALL enemy groups in the sector specified. See comments in
//The sector supplied resets ALL enemy groups in the sector specified. See comments in
//ResetMovementForNonPlayerGroup() for more details on what the resetting does.
void ResetMovementForNonPlayerGroupsInLocation( UINT8 ubSectorX, UINT8 ubSectorY )
{
@@ -4742,9 +4742,9 @@ void ResetMovementForNonPlayerGroupsInLocation( UINT8 ubSectorX, UINT8 ubSectorY
//This function is used to reset the location of the enemy group if they are
//currently between sectors. If they were 50% of the way from sector A10 to A11,
//currently between sectors. If they were 50% of the way from sector A10 to A11,
//then after this function is called, then that group would be 0% of the way from
//sector A10 to A11. In no way does this function effect the strategic path for
//sector A10 to A11. In no way does this function effect the strategic path for
//the group.
void ResetMovementForNonPlayerGroup( GROUP *pGroup )
{
@@ -4813,8 +4813,8 @@ void ResetMovementForNonPlayerGroup( GROUP *pGroup )
//Calculate the new arrival time (all data pertaining to movement should be valid)
if( pGroup->uiTraverseTime > 400 )
{ //The group was likely sleeping which makes for extremely long arrival times. Shorten it
//arbitrarily. Doesn't really matter if this isn't accurate.
{ //The group was likely sleeping which makes for extremely long arrival times. Shorten it
//arbitrarily. Doesn't really matter if this isn't accurate.
pGroup->uiTraverseTime = 90;
}
SetGroupArrivalTime( pGroup, GetWorldTotalMin() + pGroup->uiTraverseTime );
@@ -4898,7 +4898,7 @@ void UpdatePersistantGroupsFromOldSave( UINT32 uiSavedGameVersion )
}
//Determines if any particular group WILL be moving through a given sector given it's current
//position in the route and the pGroup->ubMoveType must be ONE_WAY. If the group is currently
//position in the route and the pGroup->ubMoveType must be ONE_WAY. If the group is currently
//IN the sector, or just left the sector, it will return FALSE.
BOOLEAN GroupWillMoveThroughSector( GROUP *pGroup, UINT8 ubSectorX, UINT8 ubSectorY )
{
@@ -4907,7 +4907,7 @@ BOOLEAN GroupWillMoveThroughSector( GROUP *pGroup, UINT8 ubSectorX, UINT8 ubSect
UINT8 ubOrigX, ubOrigY;
Assert( pGroup );
AssertMsg( pGroup->ubMoveType == ONE_WAY, String( "GroupWillMoveThroughSector() -- Attempting to test group with an invalid move type. ubGroupID: %d, ubMoveType: %d, sector: %c%d -- KM:0",
AssertMsg( pGroup->ubMoveType == ONE_WAY, String( "GroupWillMoveThroughSector() -- Attempting to test group with an invalid move type. ubGroupID: %d, ubMoveType: %d, sector: %c%d -- KM:0",
pGroup->ubGroupID, pGroup->ubMoveType, pGroup->ubSectorY + 'A' - 1, pGroup->ubSectorX ) );
//Preserve the original sector values, as we will be temporarily modifying the group's ubSectorX/Y values
@@ -5038,7 +5038,7 @@ void AddFuelToVehicle( SOLDIERTYPE *pSoldier, SOLDIERTYPE *pVehicle )
{
#ifdef JA2BETAVERSION
CHAR16 str[ 100 ];
swprintf( str, L"%s is supposed to have gas can in hand. ATE:0", pSoldier->name );
swprintf( str, L"%s is supposed to have gas can in hand. ATE:0", pSoldier->name );
DoScreenIndependantMessageBox( str, MSG_BOX_FLAG_OK, NULL );
#endif
return;
@@ -5118,7 +5118,7 @@ void SetLocationOfAllPlayerSoldiersInGroup( GROUP *pGroup, INT16 sSectorX, INT16
pSoldier = GetSoldierStructureForVehicle( iVehicleId );
Assert ( pSoldier );
// these are apparently unnecessary, since vehicles are part of the pPlayerList in a vehicle group. Oh well.
// these are apparently unnecessary, since vehicles are part of the pPlayerList in a vehicle group. Oh well.
pSoldier->sSectorX = sSectorX;
pSoldier->sSectorY = sSectorY;
pSoldier->bSectorZ = bSectorZ;
@@ -5183,7 +5183,7 @@ void RandomizePatrolGroupLocation( GROUP *pGroup )
wp = wp->next;
}
//logic error if this fails. We should have a null value for ubChosen
//logic error if this fails. We should have a null value for ubChosen
Assert( !ubChosen );
Assert( wp );
@@ -5259,7 +5259,7 @@ BOOLEAN TestForBloodcatAmbush( GROUP *pGroup )
// Bloodcats still exist here, but aren't at the optimal number?
if( pSector->bBloodCats > 0 && pSector->bBloodCats < pSector->bBloodCatPlacements )
{
//Slowly have them recuperate if we haven't been here for a long time. The population will
//Slowly have them recuperate if we haven't been here for a long time. The population will
//come back up to the maximum if left long enough.
INT32 iBloodCatDiff;
iBloodCatDiff = pSector->bBloodCatPlacements - pSector->bBloodCats;
@@ -5446,7 +5446,7 @@ void PlaceGroupInSector( UINT8 ubGroupID, INT16 sPrevX, INT16 sPrevY, INT16 sNex
// ARM: centralized it so we can do a comprehensive Assert on it. Causing problems with helicopter group!
// ARM: centralized it so we can do a comprehensive Assert on it. Causing problems with helicopter group!
void SetGroupArrivalTime( GROUP *pGroup, UINT32 uiArrivalTime )
{
// PLEASE CENTRALIZE ALL CHANGES TO THE ARRIVAL TIMES OF GROUPS THROUGH HERE, ESPECIALLY THE HELICOPTER GROUP!!!
@@ -5456,7 +5456,7 @@ void SetGroupArrivalTime( GROUP *pGroup, UINT32 uiArrivalTime )
// the chopper groups must NEVER be delayed for any reason - it gets excluded from simultaneous arrival logic
// Also note that non-chopper groups can currently be delayed such that this assetion would fail - enemy groups by
// DelayEnemyGroupsIfPathsCross(), and player groups via PrepareGroupsForSimultaneousArrival(). So we skip the assert.
// DelayEnemyGroupsIfPathsCross(), and player groups via PrepareGroupsForSimultaneousArrival(). So we skip the assert.
if ( IsGroupTheHelicopterGroup( pGroup ) )
{
@@ -5540,8 +5540,8 @@ void PlayerGroupArrivedSafelyInSector( GROUP *pGroup, BOOLEAN fCheckForNPCs )
// NOTE: Of course, it would be better if they continued onwards once everyone was ready to go again, in which
// case we'd want to preserve the plotted path, but since the player can mess with the squads, etc.
// in the mean-time, that just seemed to risky to try to support. They could get into a fight and be too
// injured to move, etc. Basically, we'd have run a complete CanCharacterMoveInStrategic(0 check on all of them.
// in the mean-time, that just seemed to risky to try to support. They could get into a fight and be too
// injured to move, etc. Basically, we'd have run a complete CanCharacterMoveInStrategic(0 check on all of them.
// It's a wish list task for AM...
// stop time so player can react if group was already on the move and suddenly halts
@@ -5833,14 +5833,14 @@ BOOLEAN ValidateGroups( GROUP *pGroup )
CHAR16 str[ 512 ];
if( pGroup->ubSectorIDOfLastReassignment == 255 )
{
swprintf( str, L"Enemy group found with 0 troops in it. This is illegal and group will be deleted."
swprintf( str, L"Enemy group found with 0 troops in it. This is illegal and group will be deleted."
L" Group %d in sector %c%d originated from sector %c%d.",
pGroup->ubGroupID, pGroup->ubSectorY + 'A' - 1, pGroup->ubSectorX,
SECTORY( pGroup->ubCreatedSectorID ) + 'A' - 1, SECTORX( pGroup->ubCreatedSectorID ) );
}
else
{
swprintf( str, L"Enemy group found with 0 troops in it. This is illegal and group will be deleted."
swprintf( str, L"Enemy group found with 0 troops in it. This is illegal and group will be deleted."
L" Group %d in sector %c%d originated from sector %c%d and last reassignment location was %c%d.",
pGroup->ubGroupID, pGroup->ubSectorY + 'A' - 1, pGroup->ubSectorX,
SECTORY( pGroup->ubCreatedSectorID ) + 'A' - 1, SECTORX( pGroup->ubCreatedSectorID ),
@@ -5974,8 +5974,8 @@ void CheckCombatInSectorDueToUnusualEnemyArrival( UINT8 aTeam, INT16 sX, INT16 s
(!IsGroupTheHelicopterGroup( curr ) || !fHelicopterIsAirBorne) &&
(!curr->fVehicle || NumberMercsInVehicleGroup( curr )) )
{
//Now, a player group is in this sector. Determine if the group contains any mercs that can fight.
//Vehicles, EPCs and the robot doesn't count. Mercs below OKLIFE do.
//Now, a player group is in this sector. Determine if the group contains any mercs that can fight.
//Vehicles, EPCs and the robot doesn't count. Mercs below OKLIFE do.
pPlayer = curr->pPlayerList;
while ( pPlayer )
{
@@ -6057,10 +6057,10 @@ void CheckCombatInSectorDueToUnusualEnemyArrival( UINT8 aTeam, INT16 sX, INT16 s
if ( fBattlePending )
{
//A battle is pending, but the players could be all unconcious or dead.
//Go through every group until we find at least one concious merc. The looping will determine
//if there are any live mercs and/or concious ones. If there are no concious mercs, but alive ones,
//Go through every group until we find at least one concious merc. The looping will determine
//if there are any live mercs and/or concious ones. If there are no concious mercs, but alive ones,
//then we will go straight to autoresolve, where the enemy will likely annihilate them or capture them.
//If there are no alive mercs, then there is nothing anybody can do. The enemy will completely ignore
//If there are no alive mercs, then there is nothing anybody can do. The enemy will completely ignore
//this, and continue on.
StopTimeCompression( );
+4 -4
View File
@@ -497,7 +497,7 @@ STR16 QuestDescText[] =
L"Rescue Maria",
L"Chitzena Chalice",
L"Held in Alma",
L"Interogation",
L"Interrogation",
L"Hillbilly Problem", //10
L"Find Scientist",
@@ -538,11 +538,11 @@ STR16 FactDescText[] =
L"Orta Liberated", //10
L"Meduna Liberated",
L"Pacos approched",
L"Pacos approached",
L"Fatima Read note",
L"Fatima Walked away from player",
L"Dimitri (#60) is dead",
L"Fatima responded to Dimitri's supprise",
L"Fatima responded to Dimitri's surprise",
L"Carlo's exclaimed 'no one moves'",
L"Fatima described note",
L"Fatima arrives at final dest",
@@ -600,7 +600,7 @@ STR16 FactDescText[] =
L"Dynamo asked for first aid",
L"Dynamo can be recruited",
L"Npc is bleeding",
L"Shank wnts to join",
L"Shank wants to join",
L"NPC is bleeding", //70
L"Player Team has head & Carmen in San Mona",
+176 -176
View File
@@ -155,7 +155,7 @@ STR16 pOtherButtonsText[] =
STR16 pOtherButtonsHelpText[] =
{
L"Инструктаж",
L"Принять миссии",
L"Принять задания",
};
@@ -173,7 +173,7 @@ STR16 pSectorPageText[] =
L">>",
L"Тип: ",
L"Нет данных",
L"Missing of defined missions. Add missions to the file TableData\\BriefingRoom\\BriefingRoom.xml. First mission has to be visible. Put value Hidden = 0.",
L"Нет поставленных заданий. Добавьте задания в файл TableData\\BriefingRoom\\BriefingRoom.xml. Первое задание должно быть видимым. Чтобы скрыть задание, установите значение = 0.",
L"Брифинг-зал. Пожалуйста, нажмите кнопку 'Войти'.",
};
@@ -220,7 +220,7 @@ STR16 pEncyclopediaShortCharacterText[] =
STR16 pEncyclopediaHelpText[] =
{
L"Показать все",
L"Показать всё",
L"Показать города",
L"Показать базы ПВО",
L"Показать другие места",
@@ -235,7 +235,7 @@ STR16 pEncyclopediaHelpText[] =
STR16 pEncyclopediaSkrotyText[] =
{
L"Все",
L"Всё",
L"Город",
L"ПВО",
L"Друг.",
@@ -251,7 +251,7 @@ STR16 pEncyclopediaSkrotyText[] =
STR16 pEncyclopediaFilterLocationText[] =
{//major location filter button text max 7 chars
//..L"------v"
L"Все",//0
L"Всё",//0
L"Города",
L"ПВО",
L"Шахты",
@@ -262,7 +262,7 @@ STR16 pEncyclopediaFilterLocationText[] =
L"Другое",
//filter button tooltip
//..L"---------------------------------------------------------------------v"
L"Показать все",//facility index + 1
L"Показать всё",//facility index + 1
L"Показать города",
L"Показать базы ПВО",
L"Показать шахты",
@@ -302,8 +302,8 @@ STR16 pEncyclopediaFilterCharText[] =
L"Показать наёмников из A.I.M.",
L"Показать наёмников из M.E.R.C",
L"Показать повстанцев",
L"Показать ненанимаемых персонажей",
L"Показать созданных игроком персонажей",
L"Показать неигровых персонажей",
L"Показать персонажей игрока",
L"Показать другое\n[|Л|К|М] переключить фильтр\n[|П|К|М] сбросить фильтр",
};
@@ -324,7 +324,7 @@ STR16 pEncyclopediaSubFilterCharText[] =
STR16 pEncyclopediaFilterItemText[] =
{//major item filter button text max 7 chars
//..L"------v"
L"Все",//0
L"Всё",//0
L"Оружие",
L"Патроны",
L"Броня",
@@ -333,7 +333,7 @@ STR16 pEncyclopediaFilterItemText[] =
L"Разное",//add new filter buttons before misc
//filter button tooltip
//..L"---------------------------------------------------------------------v"
L"Показать все",//misc index + 1
L"Показать всё",//misc index + 1
L"Показать оружие\n[|Л|К|М] переключить фильтр\n[|П|К|М] сбросить фильтр",
L"Показать боеприпасы\n[|Л|К|М] переключить фильтр\n[|П|К|М] сбросить фильтр",
L"Показать броню\n[|Л|К|М] переключить фильтр\n[|П|К|М] сбросить фильтр",
@@ -385,8 +385,8 @@ STR16 pEncyclopediaSubFilterItemText[] =
L"Оптика",
L"Доп.",
L"Дуло",
L"Внешн.",
L"Внутр.",
L"Съёмн.",
L"Встроен.",
L"Другое",
L"",//reserved. insert new attachment filters above!
//Misc......v"
@@ -413,7 +413,7 @@ STR16 pEncyclopediaFilterQuestText[] =
//..L"---------------------------------------------------------------------v"
L"Показать все",//misc index + 1
L"Показать активные квесты",
L"Показать завершенные квесты",
L"Показать завершённые квесты",
};
STR16 pEncyclopediaSubFilterQuestText[] =
@@ -423,10 +423,9 @@ STR16 pEncyclopediaSubFilterQuestText[] =
L"",//reserved. insert new completed quest subfilters above!
};
STR16 pEncyclopediaShortInventoryText[] =
{
L"Все", //0
L"Всё", //0
L"Оружие",
L"Патроны",
L"Разгр.",
@@ -487,156 +486,154 @@ STR16 BoxFilter[] =
L"Разное", //34
};
// TODO.Translate
STR16 QuestDescText[] =
STR16 QuestDescText[] =
{
L"Deliver Letter",
L"Food Route",
L"Terrorists",
L"Kingpin Chalice",
L"Kingpin Money",
L"Runaway Joey",
L"Rescue Maria",
L"Chitzena Chalice",
L"Held in Alma",
L"Interogation",
L"Доставка письма",
L"Поставка еды",
L"Террористы",
L"Кубок Босса",
L"Деньги Босса",
L"Беглец Джои",
L"Спасение Марии",
L"Кубок Читзены",
L"Пленники в Альме",
L"Допрос",
L"Hillbilly Problem", //10
L"Find Scientist",
L"Deliver Video Camera",
L"Blood Cats",
L"Find Hermit",
L"Creatures",
L"Find Chopper Pilot",
L"Escort SkyRider",
L"Free Dynamo",
L"Escort Tourists",
L"Проблемные фермеры", //10
L"Найти учёного",
L"Принести видеокамеру",
L"Кошки-убийцы",
L"Найти отшельника",
L"Твари в шахте",
L"Найти пилота вертолёта",
L"Сопроводить Всадника",
L"Освободить Динамо",
L"Сопроводить туристов",
L"Doreen", //20
L"Leather Shop Dream",
L"Escort Shank",
L"Проверить Дорин", //20
L"Мечта о магазине",
L"Сопроводить Шенка",
L"No 23 Yet",
L"No 24 Yet",
L"Kill Deidranna",
L"Убить Дейдрану",
L"No 26 Yet",
L"No 27 Yet",
L"No 28 Yet",
L"No 29 Yet",
};
// TODO.Translate
STR16 FactDescText[] =
STR16 FactDescText[] =
{
L"Omerta Liberated",
L"Drassen Liberated",
L"Sanmona Liberated",
L"Cambria Liberated",
L"Alma Liberated",
L"Grumm Liberated",
L"Tixa Liberated",
L"Chitzena Liberated",
L"Estoni Liberated",
L"Balime Liberated",
L"Омерта освобождена",
L"Драссен освобождён",
L"Сан-Мона освобождена",
L"Камбрия освобождена",
L"Альма освобождена",
L"Грам освобождён",
L"Тикса освобождена",
L"Читзена освобождена",
L"Эстони освобождён",
L"Балайм освобождён",
L"Orta Liberated", //10
L"Meduna Liberated",
L"Pacos approched",
L"Fatima Read note",
L"Fatima Walked away from player",
L"Dimitri (#60) is dead",
L"Fatima responded to Dimitri's supprise",
L"Carlo's exclaimed 'no one moves'",
L"Fatima described note",
L"Fatima arrives at final dest",
L"Орта освобождена", //10
L"Медуна освобождена",
L"Поговорили с Пакосом",
L"Фатима прочла письмо",
L"Фатима сбежала от игрока",
L"Димитрий (#60) мёртв",
L"Фатима ответила на удивление Димитрия",
L"Карлос крикнул 'никому не двигаться'",
L"Фатима рассказала о письме",
L"Фатима пришла в место назначения",
L"Dimitri said Fatima has proof", //20
L"Miguel overheard conversation",
L"Miguel asked for letter",
L"Miguel read note",
L"Ira comment on Miguel reading note",
L"Rebels are enemies",
L"Fatima spoken to before given note",
L"Start Drassen quest",
L"Miguel offered Ira",
L"Pacos hurt/Killed",
L"Димитрий сказал, что у Фатимы есть доказательства", //20
L"Мигель выслушал доводы",
L"Мигель попросил письмо",
L"Мигель прочёл письмо",
L"Айра прокоментировала письмо Мигелю",
L"Повстанцы наши враги",
L"Разговор Фатимы до передачи письма",
L"Получено задание с Драссеном",
L"Мигель предложил Айру",
L"Пакос ранен или убит",
L"Pacos is in A10", //30
L"Current Sector is safe",
L"Bobby R Shpmnt in transit",
L"Bobby R Shpmnt in Drassen",
L"33 is TRUE and it arrived within 2 hours",
L"33 is TRUE 34 is false more then 2 hours",
L"Player has realized part of shipment is missing",
L"36 is TRUE and Pablo was injured by player",
L"Pablo admitted theft",
L"Pablo returned goods, set 37 false",
L"Пакос в A10", //30
L"В секотре безопасно",
L"Посылка от БР в пути",
L"Посылка от БР в Драссене",
L"33 - ВЕРНО и прибыло в течение 2 часов",
L"33 - ВЕРНО 34 - ЛОЖЬ, более чем 2 часа",
L"Игрок заметил что часть груза пропала",
L"36 - ВЕРНО и Пабло был избит игроком",
L"Пабло проворовался",
L"Пабло вернул украденное, set 37 false",
L"Miguel will join team", //40
L"Gave some cash to Pablo",
L"Skyrider is currently under escort",
L"Skyrider is close to his chopper in Drassen",
L"Skyrider explained deal",
L"Player has clicked on Heli in Mapscreen at least once",
L"NPC is owed money",
L"Npc is wounded",
L"Npc was wounded by Player",
L"Father J.Walker was told of food shortage",
L"Мигель присоединится к команде", //40
L"Дали Пабло немного денег",
L"Небесного всадника сопровождают в город",
L"Небесный Всадник уже близок к своему вертолёту в Драссене",
L"Небесный всадник оговорил условия контракта",
L"Игрок выбрал вертолёт на стратегическом экране как минимум один раз",
L"Неигровому персонажу должны денег",
L"Неигровой персонаж ранен",
L"Неигровой персонаж ранен игроком",
L"Отцу Джону Уолкеру сказали о нехватке продовольствия",
L"Ira is not in sector", //50
L"Ira is doing the talking",
L"Food quest over",
L"Pablo stole something from last shpmnt",
L"Last shipment crashed",
L"Last shipment went to wrong airport",
L"24 hours elapsed since notified that shpment went to wrong airport",
L"Lost package arrived with damaged goods. 56 to False",
L"Lost package is lost permanently. Turn 56 False",
L"Next package can (random) be lost",
L"Айра не в секторе", //50
L"Айра ведёт беседу",
L"Задание с продовольствием выполнено",
L"Пабло что-то украл с последней посылки",
L"Последнее отправление повреждено",
L"Последнее отправление отправлено не туда",
L"Прошло 24 часа с момента сообщения, что отправление отправлено не в тот аэропорт",
L"Потерянная посылка пришла с повреждённым грузом. 56 to False",
L"Потерянная посылка пропала бесследно. Turn 56 False",
L"Следующее отправление может быть (random) потеряно",
L"Next package can(random) be delayed", //60
L"Package is medium sized",
L"Package is largesized",
L"Doreen has conscience",
L"Player Spoke to Gordon",
L"Ira is still npc and in A10-2(hasnt joined)",
L"Dynamo asked for first aid",
L"Dynamo can be recruited",
L"Npc is bleeding",
L"Shank wnts to join",
L"Следующее отправление может быть (random) задержано", //60
L"Отправление среднего размера",
L"Отправление большого размера",
L"У Дорин проснулась совесть",
L"Игрок поговорил с Гордоном",
L"Айра до сих пор неигровой персонаж и находится в A10-2(не присоединилась)",
L"Динамо просит оказать ему первую помощь",
L"Динамо можно нанять",
L"Неигровой персонаж истекает кровью",
L"Шенк хочет присоединиться",
L"NPC is bleeding", //70
L"Player Team has head & Carmen in San Mona",
L"Player Team has head & Carmen in Cambria",
L"Player Team has head & Carmen in Drassen",
L"Father is drunk",
L"Player has wounded mercs within 8 tiles of NPC",
L"1 & only 1 merc wounded within 8 tiles of NPC",
L"More then 1 wounded merc within 8 tiles of NPC",
L"Brenda is in the store ",
L"Brenda is Dead",
L"Неигровой персонаж истекает кровью", //70
L"У игрока есть голова и Кармен в Сан-Мона",
L"У игрока есть голова и Кармен в Камбрии",
L"У игрока есть голова и Кармен в Драссене",
L"Отец пьян",
L"Раненые бойцы игрока находятся ближе 8 тайлов от неигрового персонажа",
L"1 и только 1 раненый боец ближе 8 тайлов от неигрового персонажа",
L"Больше одного раненного бойца ближе 8 тайлов от неигрового персонажа",
L"Бренда в магазине ",
L"Бренда мертва",
L"Brenda is at home", //80
L"NPC is an enemy",
L"Speaker Strength >= 84 and < 3 males present",
L"Speaker Strength >= 84 and at least 3 males present",
L"Hans lets ou see Tony",
L"Hans is standing on 13523",
L"Tony isnt available Today",
L"Female is speaking to NPC",
L"Player has enjoyed the Brothel",
L"Carla is available",
L"Бренда у себя дома", //80
L"Неигровой персонаж - враг",
L"Уровень разговора >= 84 и < 3 мужчин присутствует",
L"Уровень разговора >= 84 и хотя бы 3 мужчины присутствует",
L"Ганс позволил нам встретиться с Тони",
L"Ганс стоит на позиции 13523",
L"Сегодня Тони нет",
L"Женщина разговаривает с неигровым персонажем",
L"Игрок развлекался в борделе",
L"Карла доступна",
L"Cindy is available", //90
L"Bambi is available",
L"No girls is available",
L"Player waited for girls",
L"Player paid right amount of money",
L"Синди доступна", //90
L"Бэмби доступна",
L"Свободных девочек нет",
L"Игрок ожидал девочек",
L"Игрок заплатил правильную сумму денег",
L"Mercs walked by goon",
L"More thean 1 merc present within 3 tiles of NPC",
L"At least 1 merc present withing 3 tiles of NPC",
L"Kingping expectingh visit from player",
L"Darren expecting money from player",
L"Босс ожидает визита игрока",
L"Дэррен ожидает денег от игрока",
L"Player within 5 tiles and NPC is visible", // 100
L"Carmen is in San Mona",
@@ -1080,6 +1077,7 @@ STR16 FactDescText[] =
L"",
L"", //500
};
//-----------
// Editor
@@ -2804,7 +2802,7 @@ STR16 pTraitSkillsMenuDescStrings[] =
STR16 pTraitSkillsDenialStrings[] =
{
L"Требуется:\n",
L" - %d AP\n",
L" - %d ОД\n",
L" - %s\n",
L" - %s или выше\n",
L" - %s или выше или\n",
@@ -2814,7 +2812,7 @@ STR16 pTraitSkillsDenialStrings[] =
L" - одержимость бесами",
};
STR16 pSkillMenuStrings[] = // TODO.Translate
STR16 pSkillMenuStrings[] =
{
L"Ополчение",
L"Другие отряды",
@@ -3643,7 +3641,7 @@ STR16 gzMoneyAmounts[6] =
L"Взять",
};
// short words meaning "Advantages" for "Pros" and "Disadvantages" for "Cons."
// short words meaning "Advantages" for "Pros" and "Disadvantages" for "Cons."
CHAR16 gzProsLabel[10] =
{
L"+",
@@ -5550,7 +5548,7 @@ STR16 BobbyRFilter[] =
L"Головные",
L"Разгр.с-мы",
L"Прицелы", // Madd: new BR filters
L"Рукоят./ЛЦУ",
L"Рукоят/ЛЦУ",
L"Дул.насад.",
L"Приклады",
L"Маг./спуск.",
@@ -6840,7 +6838,7 @@ STR16 pMilitiaButtonsHelpText[] =
L"Убрать (|R|i|g|h|t |C|l|i|c|k)\nДобавить (|L|e|f|t |C|l|i|c|k)\nНовобранцы", // button help text informing player they can pick up or drop militia with this button
L"Убрать (|R|i|g|h|t |C|l|i|c|k)\nДобавить (|L|e|f|t |C|l|i|c|k)\nРядовые",
L"Убрать (|R|i|g|h|t |C|l|i|c|k)\nДобавить (|L|e|f|t |C|l|i|c|k)\nВетераны",
L"Равномерно распределить ополчение по доступным секторам",
L"Равномерно распределить ополчение\nпо доступным секторам",
};
STR16 pMapScreenJustStartedHelpText[] =
@@ -8593,30 +8591,32 @@ STR16 gzMapInventoryFilterOptions[] =
L"Скрыть всё",
};
// MercCompare (MeLoDy)
// TODO.Translate
STR16 gzMercCompare[] =
{
L"???",
L"Base opinion:",
L"Первое мнение:",
L"Dislikes %s %s",
L"Likes %s %s",
L"Не нравятся %s %s",
L"Симпатизирует %s %s",
L"Strongly hates %s",
L"Hates %s", // 5
L"Люто ненавидит %s",
L"Ненавидит %s", // 5
L"Deep racism against %s",
L"Racism against %s",
L"Лютый расист в отношении к %s",
L"Расист в отношении к %s",
L"Cares deeply about looks",
L"Cares about looks",
L"Излишне заботится о внешности",
L"Заботится о внешности",
L"Very sexist", // 10
L"Sexist",
L"Лютый сексист", // 10
L"Сексист",
L"Dislikes other background",
L"Dislikes other backgrounds",
L"Past grievances",
L"Затаил обиду",
L"____", // 15
L"/",
};
@@ -9111,14 +9111,14 @@ STR16 szCareLevelText[]=
{
L"не",
L"немного",
L"очень",
L"сильно",
};
STR16 szRacistText[]=
{
L"не",
L"немного",
L"очень",
L"сильно",
};
STR16 szSexistText[]=
@@ -9302,10 +9302,10 @@ STR16 szCampaignHistoryWebpageString[]=
L"Повышеный",
L"Общий",
L"Детальный",
L"Предыдущий",
L"Полный",
L"Назад",
L"Следующий",
L"Далее",
L"Эпизод",
L"День",
};
@@ -9641,24 +9641,24 @@ STR16 szMercCompareWebSite[] =
L" Парные сравнения",
L" Отзывы клиентов",
L" Если выш бизнес предполагает инновационные решения для критических приложений, работающих в режиме реального времени, возможно некоторые из этих наблюдений будут вам знакомы:",
L" Если ваш бизнес предполагает инновационные решения для критических приложений, работающих в режиме реального времени, возможно, некоторые из этих наблюдений будут вам знакомы:",
L"Ваша команда борется сама с собой.",
L"Ваши сотрудники тратят время мешая друг другу.",
L"В вашем коллективе большая текучесть кадров.",
L"Вы постоянно получаете низкие оценки по удовлетворенности персонала работой.",
L" Если вы столкнулись хотя бы с одной из этих ситуаций, то, возможно, в вашем бизнесе есть проблемы. И скорее всего, ваши сотрудники не станут работать в полную силу. Но благодаря нашей запатентованной и простой для понимания системе \"БоЛТиК\", вы сможете вернуть производительность и счастливые улыбки на лицах всех ваших сотрудников в мгновение ока!",
L" Если вы столкнулись хотя бы с одной из этих ситуаций, то, возможно, в вашем деле есть проблемы. И скорее всего, ваши сотрудники не станут работать в полную силу. Но благодаря нашей запатентованной и простой для понимания системе \"БоЛТиК\", вы сможете вернуть производительность и счастливые улыбки на лицах всех ваших сотрудников в мгновение ока!",
// customer quotes
L"Несколько цитат наших довольных клиентов:",
L"Несколько цитат наших благодарных клиентов:",
L"Мои прошлые отношения были просто ужасны. Я винила во всём себя... но теперь то я знаю. Все мужчины заслуживают смерти! Спасибо тебе, \"БоЛТиК\", за моё прозрение!",
L"-Луиза Г., романист-",
L"Я никогда не ладили со своими братьями, а в последнее время отношения совсем стали из рук вон плохими. Вы показали мне, что постыдное недоверие к отцу виной всему. Спасибо вам за это! Я должен открыто всё сказать отцу.",
L"Я никогда не ладил со своими братьями, а в последнее время отношения совсем стали из рук вон плохими. Вы показали мне, что постыдное недоверие к отцу виной всему. Спасибо вам за это! Я должен открыто всё сказать отцу.",
L"-Конрад C., Исправительное учреждение-",
L"Я одиночка по жизни и работа в команде для меня была просто пыткой. Ваши представления показали мне как стать частью команды. Ваш вклад просто неоценим!",
L"Я одиночка по жизни, и работа в команде была просто пыткой. Но методика \"БоЛТиК\" показала мне как стать частью команды. Этот вклад просто неоценим!",
L"-Грант В., Заклинатель змей-",
L"В моей работе необходимо доверять каждому члену команды на все 100 процентов. Вот почему мы обратились к экспертам, вот почему мы обратились к компании \"БоЛТиК\".",
L"-Халлэ Л., СПК-",
L"Прежде всего хочу признать, что наш коллектив был весьма разношерстым, из-за чего были частые конфликты. Но мы научились уважать друг друга, и в настоящее время дополнем друг друга.",
L"Прежде всего хочу признать, что наш коллектив был весьма разношерстым, из-за чего были частые конфликты. Но мы научились уважать друг друга, и в настоящее время дополняем друг друга.",
L"-Майкл C., НАСА-",
L"Рекоммендую отдать предпочтение этому сайту!",
L"-Каспар Х., Логистическая компания H&C-",
@@ -10888,17 +10888,17 @@ STR16 szIMPGearDropDownNoneText[] =
STR16 szMilitiaStrategicMovementText[] =
{
L"We cannot relay orders to this sector, militia command not possible.",
L"Unassigned",
L"Group No.",
L"Next",
L"Нельзя отдавать приказы в этом секторе, команды ополчению невозможны.",
L"Незадействованы",
L"Группа №",
L"Далее",
L"ETA",
L"Group %d (new)",
L"Group %d",
L"РВП",
L"Группа %d (новая)",
L"Группа %d",
L"Final",
L"Militia Volunteers: %d (+%5.3f)",
L"Ополченцы добровольцы: %d (+%5.3f)",
};
STR16 szEnemyHeliText[] = // TODO.Translate