mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
New feature: exploration assignment indicates items on the map
For more info, see http://thepit.ja-galaxy-forum.com/index.php?t=msg&goto=360244&#msg_360244 git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8815 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -2253,6 +2253,8 @@ void LoadGameExternalOptions()
|
||||
|
||||
gGameExternalOptions.fAdministrationPointsPerPercent = (FLOAT)iniReader.ReadDouble( "Strategic Assignment Settings", "ADMINISTRATION_POINTS_PER_PERCENT", 20.0f, 1.0f, 1000.0f );
|
||||
gGameExternalOptions.fAdministrationMaxPercent = iniReader.ReadInteger( "Strategic Assignment Settings", "ADMINISTRATION_MAX_PERCENTAGE", 15, 0, 100 );
|
||||
|
||||
gGameExternalOptions.fExplorationPointsModifier = (FLOAT)iniReader.ReadDouble("Strategic Assignment Settings", "EXPLORATION_POINTS_MODIFIER", 1.0f, 0.01f, 10.0f );
|
||||
|
||||
gGameExternalOptions.fUseXMLSquadNames = iniReader.ReadBoolean("Strategic Assignment Settings", "USE_XML_SQUADNAMES", FALSE);
|
||||
|
||||
|
||||
@@ -737,6 +737,8 @@ typedef struct
|
||||
FLOAT fAdministrationPointsPerPercent;
|
||||
UINT16 fAdministrationMaxPercent;
|
||||
|
||||
FLOAT fExplorationPointsModifier;
|
||||
|
||||
INT32 ubTrainingSkillMin;
|
||||
INT32 ubTrainingSkillMax;
|
||||
INT32 ubSelfTrainingDivisor;
|
||||
|
||||
+2
-2
@@ -55,8 +55,8 @@
|
||||
|
||||
#endif
|
||||
|
||||
CHAR8 czVersionNumber[16] = { "Build 20.05.30" }; //YY.MM.DD
|
||||
CHAR8 czVersionNumber[16] = { "Build 20.06.01" }; //YY.MM.DD
|
||||
CHAR16 zTrackingNumber[16] = { L"Z" };
|
||||
CHAR16 zRevisionNumber[16] = { L"Revision 8811" };
|
||||
CHAR16 zRevisionNumber[16] = { L"Revision 8815" };
|
||||
|
||||
// SAVE_GAME_VERSION is defined in header, change it there
|
||||
|
||||
@@ -366,7 +366,7 @@ void PixelDraw( BOOLEAN fClip, INT32 xp, INT32 yp, INT16 sColor, UINT8 *pScreen
|
||||
}
|
||||
|
||||
// Flugente: alter the colour of existing pixels instead of fully replacing the colour
|
||||
void PixelAlterColour(BOOLEAN fClip, INT32 xp, INT32 yp, UINT8 col1, UINT8 col2, UINT8 *pScreen)
|
||||
void PixelAlterColour(BOOLEAN fClip, INT32 xp, INT32 yp, INT16 sColor, UINT8 *pScreen)
|
||||
{
|
||||
if ( fClip && !ClipPoint( xp, yp ) )
|
||||
return;
|
||||
@@ -374,6 +374,9 @@ void PixelAlterColour(BOOLEAN fClip, INT32 xp, INT32 yp, UINT8 col1, UINT8 col2,
|
||||
// point to the bitmap address first pixel to draw
|
||||
pScreen += yp * giImageWidth + xp * 2;
|
||||
|
||||
INT8 col2 = sColor >> 8;
|
||||
INT8 col1 = sColor & 0x00ff;
|
||||
|
||||
pScreen[0] |= col1;
|
||||
pScreen[1] |= col2;
|
||||
}
|
||||
|
||||
@@ -59,7 +59,7 @@ void SetClippingRegionAndImageWidth(
|
||||
void PixelDraw( BOOLEAN fClip, INT32 xp, INT32 yp, INT16 sColor, UINT8 *pScreen );
|
||||
|
||||
// Flugente: alter the colour of existing pixels instead of fully replacing the colour
|
||||
void PixelAlterColour( BOOLEAN fClip, INT32 xp, INT32 yp, UINT8 col1, UINT8 col2, UINT8 *pScreen );
|
||||
void PixelAlterColour( BOOLEAN fClip, INT32 xp, INT32 yp, INT16 sColor, UINT8 *pScreen );
|
||||
|
||||
void LineDraw( BOOL fClip, int XStart, int YStart, int XEnd, int YEnd, short Color, UINT8 *ScreenPtr);
|
||||
void LineDraw( BOOL fClip, int XStart, int YStart, int XEnd, int YEnd, short Color, UINT8 *ScreenPtr);
|
||||
|
||||
+205
-1
@@ -513,6 +513,9 @@ void HandleSpyAssignments();
|
||||
// Flugente: handle administration assignment
|
||||
void HandleAdministrationAssignments();
|
||||
|
||||
// Flugente: handle exploration assignements
|
||||
void HandleExplorationAssignments();
|
||||
|
||||
// is the character between secotrs in mvt
|
||||
BOOLEAN CharacterIsBetweenSectors( SOLDIERTYPE *pSoldier );
|
||||
|
||||
@@ -1111,6 +1114,29 @@ BOOLEAN CanCharacterAdministration( SOLDIERTYPE *pSoldier )
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOLEAN CanCharacterExplore( SOLDIERTYPE *pSoldier )
|
||||
{
|
||||
AssertNotNIL( pSoldier );
|
||||
|
||||
if ( !BasicCanCharacterAssignment( pSoldier, TRUE ) )
|
||||
return FALSE;
|
||||
|
||||
if ( pSoldier->bSectorZ )
|
||||
{
|
||||
UNDERGROUND_SECTORINFO* pSector = FindUnderGroundSector( pSoldier->sSectorX, pSoldier->sSectorY, pSoldier->bSectorZ );
|
||||
if ( !pSector || pSector->usExplorationProgress >= 250 )
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
SECTORINFO* pSector = &( SectorInfo[SECTOR( pSoldier->sSectorX, pSoldier->sSectorY )] );
|
||||
if ( !pSector || pSector->usExplorationProgress >= 250 )
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOLEAN IsAnythingAroundForSoldierToRepair( SOLDIERTYPE * pSoldier )
|
||||
{
|
||||
AssertNotNIL(pSoldier);
|
||||
@@ -2967,6 +2993,9 @@ void UpdateAssignments()
|
||||
// handle administration assignment
|
||||
HandleAdministrationAssignments();
|
||||
|
||||
// handle exploration
|
||||
HandleExplorationAssignments();
|
||||
|
||||
// check to see if anyone is done healing?
|
||||
UpdatePatientsWhoAreDoneHealing( );
|
||||
|
||||
@@ -6898,6 +6927,96 @@ void HandleAdministrationAssignments()
|
||||
}
|
||||
}
|
||||
|
||||
// Flugente: handle exploration assignments
|
||||
void HandleExplorationAssignments()
|
||||
{
|
||||
SOLDIERTYPE *pSoldier = NULL;
|
||||
UINT32 uiCnt = 0;
|
||||
UINT32 firstid = gTacticalStatus.Team[gbPlayerNum].bFirstID;
|
||||
UINT32 lastid = gTacticalStatus.Team[gbPlayerNum].bLastID;
|
||||
for ( uiCnt = firstid, pSoldier = MercPtrs[uiCnt]; uiCnt <= lastid; ++uiCnt, ++pSoldier )
|
||||
{
|
||||
if ( pSoldier && pSoldier->bAssignment == EXPLORATION && !pSoldier->flags.fMercAsleep && EnoughTimeOnAssignment( pSoldier ) )
|
||||
{
|
||||
UINT32 pts = pSoldier->GetExplorationPoints();
|
||||
|
||||
bool awardpts = false;
|
||||
|
||||
if ( pSoldier->bSectorZ )
|
||||
{
|
||||
UNDERGROUND_SECTORINFO *pSector;
|
||||
pSector = FindUnderGroundSector( pSoldier->sSectorX, pSoldier->sSectorY, pSoldier->bSectorZ );
|
||||
if ( pSector && pSector->usExplorationProgress < 250 )
|
||||
{
|
||||
awardpts = true;
|
||||
|
||||
UINT32 oldprogress = pSector->usExplorationProgress;
|
||||
UINT32 newprogress = min( 255, oldprogress + pts );
|
||||
|
||||
if ( newprogress > 250 )
|
||||
{
|
||||
pSector->usExplorationProgress = 255;
|
||||
|
||||
CHAR16 wSectorName[64];
|
||||
GetShortSectorString( pSoldier->sSectorX, pSoldier->sSectorY, wSectorName );
|
||||
|
||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, Message[STR_ASSIGNMENT_EXPLORATION_DONE], pSoldier->GetName(), wSectorName );
|
||||
|
||||
AssignmentDone( pSoldier, TRUE, TRUE );
|
||||
}
|
||||
else
|
||||
{
|
||||
pSector->usExplorationProgress = (UINT8)newprogress;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
AssignmentDone( pSoldier, TRUE, TRUE );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
SECTORINFO* pSector = &( SectorInfo[SECTOR( pSoldier->sSectorX, pSoldier->sSectorY )] );
|
||||
|
||||
if ( pSector && pSector->usExplorationProgress < 250 )
|
||||
{
|
||||
awardpts = true;
|
||||
|
||||
UINT32 oldprogress = pSector->usExplorationProgress;
|
||||
UINT32 newprogress = min( 255, oldprogress + pts );
|
||||
|
||||
if ( newprogress > 250 )
|
||||
{
|
||||
pSector->usExplorationProgress = 255;
|
||||
|
||||
CHAR16 wSectorName[64];
|
||||
GetShortSectorString( pSoldier->sSectorX, pSoldier->sSectorY, wSectorName );
|
||||
|
||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, Message[STR_ASSIGNMENT_EXPLORATION_DONE], pSoldier->GetName(), wSectorName );
|
||||
|
||||
AssignmentDone( pSoldier, TRUE, TRUE );
|
||||
}
|
||||
else
|
||||
{
|
||||
pSector->usExplorationProgress = (UINT8)newprogress;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
AssignmentDone( pSoldier, TRUE, TRUE );
|
||||
}
|
||||
}
|
||||
|
||||
if ( awardpts )
|
||||
{
|
||||
StatChange( pSoldier, AGILAMT, 1, FROM_TRAINING );
|
||||
StatChange( pSoldier, WISDOMAMT, 1, FROM_TRAINING );
|
||||
StatChange( pSoldier, EXPERAMT, 1, FROM_TRAINING );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// handle snitch spreading propaganda assignment
|
||||
// totally not a copy of HandleRadioScanInSector
|
||||
void HandleSpreadingPropagandaInSector( INT16 sMapX, INT16 sMapY, INT8 bZ )
|
||||
@@ -10567,7 +10686,19 @@ void HandleShadingOfLinesForAssignmentMenus( void )
|
||||
{
|
||||
ShadeStringInBox( ghAssignmentBox, ASSIGN_MENU_ADMINISTRATION );
|
||||
}
|
||||
|
||||
|
||||
// exploration
|
||||
if ( CanCharacterExplore( pSoldier ) )
|
||||
{
|
||||
// unshade line
|
||||
UnShadeStringInBox( ghAssignmentBox, ASSIGN_MENU_EXPLORATION );
|
||||
}
|
||||
else
|
||||
{
|
||||
// shade line
|
||||
ShadeStringInBox( ghAssignmentBox, ASSIGN_MENU_EXPLORATION );
|
||||
}
|
||||
|
||||
// militia
|
||||
if ( CanCharacterOnDuty( pSoldier ) )
|
||||
{
|
||||
@@ -14130,6 +14261,42 @@ void AssignmentMenuBtnCallback( MOUSE_REGION * pRegion, INT32 iReason )
|
||||
}
|
||||
break;
|
||||
|
||||
case ASSIGN_MENU_EXPLORATION:
|
||||
if ( CanCharacterExplore( pSoldier ) )
|
||||
{
|
||||
// stop showing menu
|
||||
fShowAssignmentMenu = FALSE;
|
||||
giAssignHighLine = -1;
|
||||
|
||||
pSoldier->bOldAssignment = pSoldier->bAssignment;
|
||||
|
||||
if ( ( pSoldier->bAssignment != EXPLORATION ) )
|
||||
{
|
||||
SetTimeOfAssignmentChangeForMerc( pSoldier );
|
||||
}
|
||||
|
||||
// remove from squad
|
||||
if ( pSoldier->bOldAssignment == VEHICLE )
|
||||
{
|
||||
TakeSoldierOutOfVehicle( pSoldier );
|
||||
}
|
||||
RemoveCharacterFromSquads( pSoldier );
|
||||
|
||||
ChangeSoldiersAssignment( pSoldier, EXPLORATION );
|
||||
|
||||
AssignMercToAMovementGroup( pSoldier );
|
||||
|
||||
MakeSoldiersTacticalAnimationReflectAssignment( pSoldier );
|
||||
|
||||
// set dirty flag
|
||||
fTeamPanelDirty = TRUE;
|
||||
fMapScreenBottomDirty = TRUE;
|
||||
|
||||
// set assignment for group
|
||||
SetAssignmentForList( (INT8)EXPLORATION, 0 );
|
||||
}
|
||||
break;
|
||||
|
||||
case( ASSIGN_MENU_CANCEL ):
|
||||
fShowAssignmentMenu = FALSE;
|
||||
giAssignHighLine = -1;
|
||||
@@ -17083,6 +17250,30 @@ void SetSoldierAssignment( SOLDIERTYPE *pSoldier, INT8 bAssignment, INT32 iParam
|
||||
AssignMercToAMovementGroup( pSoldier );
|
||||
}
|
||||
break;
|
||||
|
||||
case EXPLORATION:
|
||||
if ( CanCharacterExplore( pSoldier ) )
|
||||
{
|
||||
pSoldier->bOldAssignment = pSoldier->bAssignment;
|
||||
|
||||
// remove from squad
|
||||
RemoveCharacterFromSquads( pSoldier );
|
||||
|
||||
// remove from any vehicle
|
||||
if ( pSoldier->bOldAssignment == VEHICLE )
|
||||
{
|
||||
TakeSoldierOutOfVehicle( pSoldier );
|
||||
}
|
||||
|
||||
if ( pSoldier->bAssignment != bAssignment )
|
||||
{
|
||||
SetTimeOfAssignmentChangeForMerc( pSoldier );
|
||||
}
|
||||
|
||||
ChangeSoldiersAssignment( pSoldier, bAssignment );
|
||||
AssignMercToAMovementGroup( pSoldier );
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18234,6 +18425,10 @@ void ReEvaluateEveryonesNothingToDo( BOOLEAN aDoExtensiveCheck )
|
||||
fNothingToDo = !CanCharacterAdministration( pSoldier ) || !GetNumberofAdministratableMercs( pSoldier->sSectorX, pSoldier->sSectorY );
|
||||
break;
|
||||
|
||||
case EXPLORATION:
|
||||
fNothingToDo = !CanCharacterExplore( pSoldier );
|
||||
break;
|
||||
|
||||
case VEHICLE:
|
||||
default: // squads
|
||||
fNothingToDo = FALSE;
|
||||
@@ -18589,6 +18784,15 @@ void SetAssignmentForList( INT8 bAssignment, INT8 bParam )
|
||||
}
|
||||
break;
|
||||
|
||||
case EXPLORATION:
|
||||
if ( CanCharacterExplore( pSoldier ) )
|
||||
{
|
||||
pSoldier->bOldAssignment = pSoldier->bAssignment;
|
||||
SetSoldierAssignment( pSoldier, bAssignment, bParam, 0, 0 );
|
||||
fItWorked = TRUE;
|
||||
}
|
||||
break;
|
||||
|
||||
case( SQUAD_1 ):
|
||||
case( SQUAD_2 ):
|
||||
case( SQUAD_3 ):
|
||||
|
||||
@@ -98,6 +98,7 @@ enum
|
||||
DRILL_MILITIA, // train existing militia (does not create new ones)
|
||||
BURIAL, // merc removes corpses in this sector
|
||||
ADMINISTRATION, // merc boosts the effectiveness of other mercs
|
||||
EXPLORATION, // merc searches the sector for undiscovered items
|
||||
NUM_ASSIGNMENTS,
|
||||
};
|
||||
|
||||
@@ -213,6 +214,7 @@ BOOLEAN CanCharacterSpyAssignment( SOLDIERTYPE *pSoldier );
|
||||
|
||||
BOOLEAN CanCharacterBurial( SOLDIERTYPE *pSoldier );
|
||||
BOOLEAN CanCharacterAdministration( SOLDIERTYPE *pSoldier );
|
||||
BOOLEAN CanCharacterExplore( SOLDIERTYPE *pSoldier );
|
||||
|
||||
// can this character be assigned as a repairman?
|
||||
BOOLEAN CanCharacterRepair( SOLDIERTYPE *pCharacter );
|
||||
|
||||
@@ -574,7 +574,7 @@ typedef struct SECTORINFO
|
||||
UINT8 ubNumAdmins_Turncoat;
|
||||
UINT8 ubNumTroops_Turncoat;
|
||||
UINT8 ubNumElites_Turncoat;
|
||||
UINT8 bPadding_1;
|
||||
UINT8 usExplorationProgress;
|
||||
|
||||
INT8 bPadding[ 8 ];
|
||||
|
||||
@@ -624,8 +624,9 @@ typedef struct UNDERGROUND_SECTORINFO
|
||||
|
||||
UINT8 ubNumJeeps;
|
||||
UINT8 ubJeepsInBattle;
|
||||
UINT8 usExplorationProgress;
|
||||
|
||||
INT8 bPadding[14];
|
||||
INT8 bPadding[12];
|
||||
//no padding left!
|
||||
}UNDERGROUND_SECTORINFO;
|
||||
|
||||
|
||||
@@ -134,6 +134,7 @@ enum {
|
||||
ASSIGN_MENU_FORTIFY, // added by Flugente
|
||||
ASSIGN_MENU_SPY, // added by Flugente
|
||||
ASSIGN_MENU_ADMINISTRATION, // added by Flugente
|
||||
ASSIGN_MENU_EXPLORATION, // added by Flugente
|
||||
ASSIGN_MENU_FACILITY, // HEAROCK HAM 3.6: Facility List menu
|
||||
ASSIGN_MENU_CANCEL,
|
||||
MAX_ASSIGN_STRING_COUNT,
|
||||
|
||||
@@ -2428,6 +2428,16 @@ void HandleRenderFaceAdjustments( FACETYPE *pFace, BOOLEAN fDisplayBuffer, BOOLE
|
||||
|
||||
swprintf(sString, L"%d/%3.1f", sPtsAvailable, bPtsAvailable);
|
||||
break;
|
||||
|
||||
case EXPLORATION:
|
||||
sIconIndex_Assignment = 34;
|
||||
fDoIcon_Assignment = TRUE;
|
||||
fShowCustomText = TRUE;
|
||||
sPtsAvailable = (INT16)MercPtrs[pFace->ubSoldierID]->GetExplorationPoints();
|
||||
|
||||
// we only show our points, not how far we are with the task, lest the player deduct how many items there are to find in the first place
|
||||
swprintf( sString, L"%d", sPtsAvailable );
|
||||
break;
|
||||
}
|
||||
|
||||
// Check for being serviced...
|
||||
|
||||
@@ -619,6 +619,8 @@ void DrawExplosionWarning( INT32 sGridno, INT8 sLevel, INT8 sDelay )
|
||||
// make sure to check for these boundaries later on, and only draw inside them
|
||||
SetClippingRegionAndImageWidth( uiDestPitchBYTES, gsVIEWPORT_START_X, gsVIEWPORT_WINDOW_START_Y, gsVIEWPORT_END_X, gsVIEWPORT_WINDOW_END_Y );
|
||||
|
||||
UINT16 red = Get16BPPColor( FROMRGB( 255, 0, 0 ) );
|
||||
|
||||
INT16 numcircles = max( 1, 4 - sDelay);
|
||||
|
||||
// we determine the biggest rectangle we have to reserve
|
||||
@@ -658,7 +660,7 @@ void DrawExplosionWarning( INT32 sGridno, INT8 sLevel, INT8 sDelay )
|
||||
if ( radius_inner <= diff && diff <= radius_outer )
|
||||
{
|
||||
// we alter the colour of existing pixels instead of fully replacing the colour. As a result, one can still see the map regions we draw over, which looks a lot better
|
||||
PixelAlterColour( FALSE, x, y, 0x00, 0x88, pDestBuf );
|
||||
PixelAlterColour( FALSE, x, y, red, pDestBuf );
|
||||
|
||||
sthdrawn = TRUE;
|
||||
}
|
||||
@@ -733,6 +735,8 @@ void DrawTraitRadius( INT32 sGridno, INT8 sLevel, INT32 sRadius, INT16 sThicknes
|
||||
best_yl = min( best_yl, yl );
|
||||
best_yr = max( best_yr, yr );
|
||||
|
||||
UINT16 blue = Get16BPPColor( FROMRGB( 0, 0, 255 ) );
|
||||
|
||||
for ( INT32 x = xl; x <= xr; ++x )
|
||||
{
|
||||
FLOAT xdiffsquared = (FLOAT)((sScreenX - x) * (sScreenX - x));
|
||||
@@ -744,7 +748,7 @@ void DrawTraitRadius( INT32 sGridno, INT8 sLevel, INT32 sRadius, INT16 sThicknes
|
||||
if ( radius_inner <= diff && diff <= radius_outer )
|
||||
{
|
||||
// we alter the colour of existing pixels instead of fully replacing the colour. As a result, one can still see the map regions we draw over, which looks a lot better
|
||||
PixelAlterColour( FALSE, x, y, 0xFF, 0x00, pDestBuf );
|
||||
PixelAlterColour( FALSE, x, y, blue, pDestBuf );
|
||||
|
||||
sthdrawn = TRUE;
|
||||
}
|
||||
|
||||
@@ -205,6 +205,7 @@ enum {
|
||||
BG_HACKERSKILL, // hacking skill from 0 to 100, > 0 means hacking is possible
|
||||
BG_BURIAL_ASSIGNMENT, // modifies effectivity of 'BURIAL' assignment
|
||||
BG_ADMINISTRATION_ASSIGNMENT, // modifies effectivity of 'ADMINISTRATION' assignment
|
||||
BG_EXPLORATION_ASSIGNMENT, // modifies effectivity of 'EXPLORATION' assignment
|
||||
|
||||
BG_MAX,
|
||||
};
|
||||
|
||||
@@ -20684,7 +20684,7 @@ FLOAT SOLDIERTYPE::GetAdministrationModifier()
|
||||
// Flugente: those with the <scrounging> background occasionally steal money from the locals
|
||||
UINT8 SOLDIERTYPE::GetThiefStealMoneyChance()
|
||||
{
|
||||
if ( this->stats.bLife < OKLIFE )
|
||||
if ( this->stats.bLife < OKLIFE || ( this->usSoldierFlagMask & SOLDIER_POW ) )
|
||||
return 0;
|
||||
|
||||
UINT32 val = 1 * EffectiveAgility( this, FALSE ) + 8 * EffectiveDexterity( this, FALSE ) + 10 * EffectiveExpLevel( this, FALSE );
|
||||
@@ -21001,6 +21001,60 @@ void SOLDIERTYPE::OrderAllTurnCoatToSwitchSides()
|
||||
}
|
||||
}
|
||||
|
||||
UINT32 SOLDIERTYPE::GetExplorationPoints()
|
||||
{
|
||||
if ( this->stats.bLife < OKLIFE || ( this->usSoldierFlagMask & SOLDIER_POW ) )
|
||||
return 0;
|
||||
|
||||
// if not on correct assignment, no gain
|
||||
if ( this->bAssignment != EXPLORATION )
|
||||
return 0;
|
||||
|
||||
UINT32 val = 400 + 1 * EffectiveWisdom( this ) + 1 * EffectiveAgility( this, FALSE ) + 5 * EffectiveExpLevel( this, FALSE )
|
||||
+ 150 * NUM_SKILL_TRAITS( this, SCOUTING_NT ) + 50 * NUM_SKILL_TRAITS( this, SURVIVAL_NT ) + (this->HasBackgroundFlag( BACKGROUND_SCROUNGING ) ? 150 : 0);
|
||||
|
||||
// personality/disability modifiers
|
||||
FLOAT persmodifier = 1.0f;
|
||||
//if ( DoesMercHaveDisability( this, HEAT_INTOLERANT ) ) persmodifier -= 0.20f;
|
||||
//if ( DoesMercHaveDisability( this, NERVOUS ) ) persmodifier -= 0.20f;
|
||||
if ( DoesMercHaveDisability( this, CLAUSTROPHOBIC ) ) persmodifier -= 0.03f;
|
||||
//if ( DoesMercHaveDisability( this, NONSWIMMER ) ) persmodifier -= 0.20f;
|
||||
//if ( DoesMercHaveDisability( this, FEAR_OF_INSECTS ) ) persmodifier -= 0.20f;
|
||||
if ( DoesMercHaveDisability( this, FORGETFUL ) ) persmodifier -= 0.30f;
|
||||
//if ( DoesMercHaveDisability( this, PSYCHO ) ) persmodifier -= 0.20f;
|
||||
//if ( DoesMercHaveDisability( this, DEAF ) ) persmodifier -= 0.15f;
|
||||
if ( DoesMercHaveDisability( this, SHORTSIGHTED ) ) persmodifier -= 0.30f;
|
||||
//if ( DoesMercHaveDisability( this, HEMOPHILIAC ) ) persmodifier -= 0.20f;
|
||||
if ( DoesMercHaveDisability( this, AFRAID_OF_HEIGHTS ) ) persmodifier -= 0.02f;
|
||||
//if ( DoesMercHaveDisability( this, SELF_HARM ) ) persmodifier -= 0.20f;
|
||||
|
||||
if ( gGameOptions.fNewTraitSystem )
|
||||
{
|
||||
//if ( DoesMercHavePersonality( this, CHAR_TRAIT_SOCIABLE ) ) persmodifier += 0.25f;
|
||||
//if ( DoesMercHavePersonality( this, CHAR_TRAIT_LONER ) ) persmodifier -= 0.05f;
|
||||
//if ( DoesMercHavePersonality( this, CHAR_TRAIT_OPTIMIST ) ) persmodifier += 0.05f;
|
||||
//if ( DoesMercHavePersonality( this, CHAR_TRAIT_ASSERTIVE ) ) persmodifier += 0.15f;
|
||||
//if ( DoesMercHavePersonality( this, CHAR_TRAIT_INTELLECTUAL ) ) persmodifier += 0.15f;
|
||||
//if ( DoesMercHavePersonality( this, CHAR_TRAIT_PRIMITIVE ) ) persmodifier -= 0.15f;
|
||||
//if ( DoesMercHavePersonality( this, CHAR_TRAIT_AGGRESSIVE ) ) persmodifier -= 0.15f;
|
||||
//if ( DoesMercHavePersonality( this, CHAR_TRAIT_PHLEGMATIC ) ) persmodifier -= 0.05f;
|
||||
//if ( DoesMercHavePersonality( this, CHAR_TRAIT_DAUNTLESS ) ) persmodifier -= 0.13f;
|
||||
//if ( DoesMercHavePersonality( this, CHAR_TRAIT_PACIFIST ) ) persmodifier -= 0.03f;
|
||||
//if ( DoesMercHavePersonality( this, CHAR_TRAIT_MALICIOUS ) ) persmodifier -= 0.13f;
|
||||
//if ( DoesMercHavePersonality( this, CHAR_TRAIT_SHOWOFF ) ) persmodifier -= 0.08f;
|
||||
if ( DoesMercHavePersonality( this, CHAR_TRAIT_COWARD ) ) persmodifier -= 0.02f;
|
||||
}
|
||||
|
||||
// background modifier
|
||||
persmodifier += ( this->GetBackgroundValue( BG_EXPLORATION_ASSIGNMENT ) ) / 100.0f;
|
||||
|
||||
UINT32 totalvalue = val * persmodifier * gGameExternalOptions.fExplorationPointsModifier / 10;
|
||||
|
||||
ReducePointsForFatigue( this, &totalvalue );
|
||||
|
||||
return totalvalue;
|
||||
}
|
||||
|
||||
INT32 CheckBleeding( SOLDIERTYPE *pSoldier )
|
||||
{
|
||||
INT8 bBandaged; //,savedOurTurn;
|
||||
|
||||
@@ -2038,6 +2038,9 @@ public:
|
||||
void AttemptToCreateTurncoat( UINT16 usID );
|
||||
BOOLEAN OrderTurnCoatToSwitchSides( UINT16 usID );
|
||||
void OrderAllTurnCoatToSwitchSides();
|
||||
|
||||
// Flugente: exploration assignment
|
||||
UINT32 GetExplorationPoints();
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
}; // SOLDIERTYPE;
|
||||
|
||||
@@ -140,6 +140,7 @@ backgroundStartElementHandle(void *userData, const XML_Char *name, const XML_Cha
|
||||
strcmp(name, "hackerskill" ) == 0 ||
|
||||
strcmp(name, "burial_assignment" ) == 0 ||
|
||||
strcmp(name, "administration_assignment" ) == 0 ||
|
||||
strcmp(name, "exploration_assignment" ) == 0 ||
|
||||
strcmp(name, "druguse") == 0 ||
|
||||
strcmp(name, "xenophobic") == 0 ||
|
||||
strcmp(name, "corruptionspread") == 0 ||
|
||||
@@ -610,6 +611,11 @@ backgroundEndElementHandle(void *userData, const XML_Char *name)
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curBackground.value[BG_ADMINISTRATION_ASSIGNMENT] = min( 1000, max( -50, (INT16)atol( pData->szCharData ) ) );
|
||||
}
|
||||
else if ( strcmp( name, "exploration_assignment" ) == 0 )
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curBackground.value[BG_EXPLORATION_ASSIGNMENT] = min( 1000, max( -100, (INT16)atol( pData->szCharData ) ) );
|
||||
}
|
||||
else if(strcmp(name, "druguse") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
|
||||
+153
-48
@@ -39,6 +39,7 @@
|
||||
#include "tile surface.h"
|
||||
#include "GameSettings.h"
|
||||
#include <vector>
|
||||
#include "Action Items.h" // added by Flugente
|
||||
#endif
|
||||
|
||||
#include "connect.h"
|
||||
@@ -110,6 +111,7 @@ BOOLEAN GetOverheadMouseGridNoForFullSoldiersGridNo( INT32 *psGridNo );
|
||||
extern BOOLEAN AnyItemsVisibleOnLevel( ITEM_POOL *pItemPool, INT8 bZLevel );
|
||||
extern void HandleAnyMercInSquadHasCompatibleStuff( UINT8 ubSquad, OBJECTTYPE *pObject, BOOLEAN fReset );
|
||||
|
||||
extern UNDERGROUND_SECTORINFO* FindUnderGroundSector( INT16 sMapX, INT16 sMapY, UINT8 bMapZ );
|
||||
|
||||
//Isometric utilities (for overhead stuff only)
|
||||
BOOLEAN GetOverheadMouseGridNo( INT32 *psGridNo );
|
||||
@@ -1664,66 +1666,169 @@ void RenderOverheadOverlays()
|
||||
UINT16 blue = Get16BPPColor(FROMRGB(0, 0, 255));
|
||||
UINT16 green = Get16BPPColor(FROMRGB(0, 255, 0));
|
||||
UINT16 white = Get16BPPColor(FROMRGB(255, 255, 255));
|
||||
UINT16 red_dull = Get16BPPColor( FROMRGB( 142, 0, 0 ) );
|
||||
UINT16 blue_dull = Get16BPPColor( FROMRGB( 0, 0, 248 ) );
|
||||
UINT16 green_dull = Get16BPPColor( FROMRGB( 0, 127, 0 ) );
|
||||
|
||||
// Flugente: exploration assignment
|
||||
bool explored = false;
|
||||
if ( gbWorldSectorZ )
|
||||
{
|
||||
UNDERGROUND_SECTORINFO *pSector;
|
||||
pSector = FindUnderGroundSector( gWorldSectorX, gWorldSectorY, gbWorldSectorZ );
|
||||
if ( pSector && pSector->usExplorationProgress >= 250 )
|
||||
explored = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
UINT8 sector = SECTOR( gWorldSectorX, gWorldSectorY );
|
||||
|
||||
if ( SectorInfo[sector].usExplorationProgress >= 250 )
|
||||
explored = true;
|
||||
}
|
||||
|
||||
INT32 radiusingridnos = 5;
|
||||
FLOAT thickness = 4;
|
||||
|
||||
// determine radius
|
||||
// x-diff is 4 per unit, y-diff 2 per unit
|
||||
FLOAT xdiffsquared = (FLOAT)( 16 * radiusingridnos * radiusingridnos );
|
||||
FLOAT radius = sqrt( (FLOAT)( xdiffsquared + 4 * 4 * radiusingridnos * radiusingridnos ) );
|
||||
|
||||
FLOAT radius_inner = radius - thickness / 2;
|
||||
FLOAT radius_outer = radius + thickness / 2;
|
||||
|
||||
for( i = 0 ; i < guiNumWorldItems; ++i )
|
||||
{
|
||||
pWorldItem = &gWorldItems[ i ];
|
||||
if( !pWorldItem || !pWorldItem->fExists || pWorldItem->bVisible != VISIBLE && !(gTacticalStatus.uiFlags & SHOW_ALL_ITEMS) )
|
||||
if( !pWorldItem || !pWorldItem->fExists )
|
||||
continue;
|
||||
|
||||
if(!GetOverheadScreenXYFromGridNo(pWorldItem->sGridNo, &sX, &sY))//dnl ch45 041009
|
||||
continue;
|
||||
|
||||
//adjust for position.
|
||||
//sX += 2;
|
||||
sY += 6;
|
||||
sY -= ( GetOffsetLandHeight( pWorldItem->sGridNo ) /5);
|
||||
|
||||
sY += ( gsRenderHeight / 5 );
|
||||
|
||||
// Smaller maps
|
||||
if (gsStartRestrictedX > 0)
|
||||
// display item
|
||||
if ( pWorldItem->bVisible == VISIBLE
|
||||
|| ( gTacticalStatus.uiFlags & SHOW_ALL_ITEMS ) )
|
||||
{
|
||||
sX += gsStartRestrictedX;
|
||||
}
|
||||
// Full size maps
|
||||
else
|
||||
{
|
||||
sX += iOffsetHorizontal;
|
||||
if ( !GetOverheadScreenXYFromGridNo( pWorldItem->sGridNo, &sX, &sY ) )//dnl ch45 041009
|
||||
continue;
|
||||
|
||||
//adjust for position.
|
||||
|
||||
// Smaller maps
|
||||
if ( gsStartRestrictedX > 0 )
|
||||
{
|
||||
sX += gsStartRestrictedX;
|
||||
}
|
||||
// Full size maps
|
||||
else
|
||||
{
|
||||
sX += iOffsetHorizontal;
|
||||
}
|
||||
|
||||
INT16 offsetlandheight = GetOffsetLandHeight( pWorldItem->sGridNo ) / 5;
|
||||
sY += 6 - offsetlandheight;
|
||||
sY += ( gsRenderHeight / 5 );
|
||||
|
||||
// Smaller maps
|
||||
if ( gsStartRestrictedY > 0 )
|
||||
{
|
||||
sY += gsStartRestrictedY;
|
||||
}
|
||||
// Full size maps
|
||||
else
|
||||
{
|
||||
sY += iOffsetVertical;
|
||||
}
|
||||
|
||||
/*sX += iOffsetHorizontal + gsStartRestrictedX;
|
||||
sY += iOffsetVertical + gsStartRestrictedY;*/
|
||||
|
||||
if ( gfOverItemPool && gsOveritemPoolGridNo == pWorldItem->sGridNo )
|
||||
{
|
||||
usLineColor = red;
|
||||
}
|
||||
else if ( gfRadarCurrentGuyFlash )
|
||||
{
|
||||
usLineColor = black;
|
||||
}
|
||||
else switch ( pWorldItem->bVisible )
|
||||
{
|
||||
case HIDDEN_ITEM: usLineColor = blue; break;
|
||||
case BURIED: usLineColor = red; break;
|
||||
case HIDDEN_IN_OBJECT: usLineColor = blue; break;
|
||||
case INVISIBLE: usLineColor = green; break;
|
||||
case VISIBLE: usLineColor = white; break;
|
||||
}
|
||||
|
||||
PixelDraw( FALSE, sX, sY, usLineColor, pDestBuf );
|
||||
}
|
||||
|
||||
// Smaller maps
|
||||
if (gsStartRestrictedY > 0)
|
||||
// Flugente: exploration
|
||||
// draw a circle around items the player does not yet know of if the player has been fully explored
|
||||
// exclude most action items, except for explosive ones
|
||||
if ( explored
|
||||
&& pWorldItem->bVisible != VISIBLE
|
||||
&& ( pWorldItem->object.usItem != ACTION_ITEM || pWorldItem->object[0]->data.misc.bActionValue == ACTION_ITEM_BLOW_UP ) )
|
||||
{
|
||||
sY += gsStartRestrictedY;
|
||||
}
|
||||
// Full size maps
|
||||
else
|
||||
{
|
||||
sY += iOffsetVertical;
|
||||
}
|
||||
// in order not go give away the precise location of the item, have the center of the circles vary, but with the item being inside
|
||||
// we can't use random numbers as the circles shouldn't move upon repeated calls, so use modulo magic
|
||||
INT16 totalvariationsquared = ( 4 + pWorldItem->sGridNo * 37 ) % radiusingridnos*radiusingridnos;
|
||||
INT16 variation_x = sqrt(( ( pWorldItem->sGridNo * 13 ) % 100 ) * totalvariationsquared / 100);
|
||||
INT16 variation_y = sqrt( totalvariationsquared - variation_x * variation_x );
|
||||
|
||||
/*sX += iOffsetHorizontal + gsStartRestrictedX;
|
||||
sY += iOffsetVertical + gsStartRestrictedY;*/
|
||||
|
||||
if ( gfOverItemPool && gsOveritemPoolGridNo == pWorldItem->sGridNo )
|
||||
{
|
||||
usLineColor = red;
|
||||
}
|
||||
else if (gfRadarCurrentGuyFlash)
|
||||
{
|
||||
usLineColor = black;
|
||||
}
|
||||
else switch (pWorldItem->bVisible)
|
||||
{
|
||||
case HIDDEN_ITEM: usLineColor = blue; break;
|
||||
case BURIED: usLineColor = red; break;
|
||||
case HIDDEN_IN_OBJECT: usLineColor = blue; break;
|
||||
case INVISIBLE: usLineColor = green; break;
|
||||
case VISIBLE: usLineColor = white; break;
|
||||
}
|
||||
if ( pWorldItem->sGridNo % 8 < 4 ) variation_x *= -1;
|
||||
if ( (2 + pWorldItem->sGridNo) % 8 < 4 ) variation_y *= -1;
|
||||
|
||||
PixelDraw( FALSE, sX, sY, usLineColor, pDestBuf );
|
||||
INT32 centergridno = pWorldItem->sGridNo + variation_y * WORLD_COLS + variation_x;
|
||||
INT16 sX_Center, sY_Center;
|
||||
if ( GetOverheadScreenXYFromGridNo( centergridno, &sX_Center, &sY_Center ) )
|
||||
{
|
||||
//adjust for position.
|
||||
|
||||
// Smaller maps
|
||||
if ( gsStartRestrictedX > 0 )
|
||||
sX_Center += gsStartRestrictedX;
|
||||
// Full size maps
|
||||
else
|
||||
sX_Center += iOffsetHorizontal;
|
||||
|
||||
sY_Center += 6 - GetOffsetLandHeight( pWorldItem->sGridNo ) / 5;
|
||||
sY_Center += ( gsRenderHeight / 5 );
|
||||
|
||||
// Smaller maps
|
||||
if ( gsStartRestrictedY > 0 )
|
||||
sY_Center += gsStartRestrictedY;
|
||||
// Full size maps
|
||||
else
|
||||
sY_Center += iOffsetVertical;
|
||||
|
||||
// determine area of where the circle will be drawn in, take into account what part of the sector we actually see
|
||||
INT32 xr = sX_Center + radius;
|
||||
INT32 yr = sY_Center + radius;
|
||||
|
||||
for ( INT32 x = sX_Center - radius; x <= xr; ++x )
|
||||
{
|
||||
FLOAT xdiffsquared = (FLOAT)( ( sX_Center - x ) * ( sX_Center - x ) );
|
||||
|
||||
for ( INT32 y = sY_Center - radius; y <= yr; ++y )
|
||||
{
|
||||
FLOAT diff = sqrt( (FLOAT)( xdiffsquared + 4 * ( sY_Center - y ) * ( sY_Center - y ) ) );
|
||||
|
||||
if ( radius_inner <= diff && diff <= radius_outer )
|
||||
{
|
||||
// we alter the colour of existing pixels instead of fully replacing the colour. As a result, one can still see the map regions we draw over, which looks a lot better
|
||||
switch ( pWorldItem->bVisible )
|
||||
{
|
||||
case HIDDEN_ITEM: PixelAlterColour( FALSE, x, y, blue_dull, pDestBuf ); break;
|
||||
case BURIED: PixelAlterColour( FALSE, x, y, red_dull, pDestBuf ); break;
|
||||
case HIDDEN_IN_OBJECT: PixelAlterColour( FALSE, x, y, blue_dull, pDestBuf ); break;
|
||||
case INVISIBLE: PixelAlterColour( FALSE, x, y, green_dull, pDestBuf ); break;
|
||||
case VISIBLE: PixelAlterColour( FALSE, x, y, white, pDestBuf ); break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
InvalidateRegion( sX, sY, (INT16)( sX + 1 ), (INT16)( sY + 1 ) );
|
||||
}
|
||||
|
||||
@@ -610,6 +610,8 @@ enum
|
||||
STR_ASSIGNMENT_NOTPOSSIBLE,
|
||||
STR_ASSIGNMENT_NOMILITIAPRESENT,
|
||||
|
||||
STR_ASSIGNMENT_EXPLORATION_DONE,
|
||||
|
||||
TEXT_NUM_STR_MESSAGE,
|
||||
};
|
||||
|
||||
|
||||
@@ -2364,6 +2364,8 @@ CHAR16 Message[][STRING_LENGTH] =
|
||||
|
||||
L"此时无法分配任务", //L"Assignment not possible at the moment",
|
||||
L"没有能够训练的民兵。", //L"No militia that can be drilled present.",
|
||||
|
||||
L"%s has fully explored %s.", // TODO.Translate
|
||||
};
|
||||
|
||||
// the country and its noun in the game
|
||||
@@ -2477,6 +2479,7 @@ STR16 pAssignmentStrings[] =
|
||||
L"训练民兵", //L"DMilitia",
|
||||
L"掩埋尸体", //L"Burial",
|
||||
L"管理", //L"Admin",
|
||||
L"Explore", // TODO.Translate
|
||||
};
|
||||
|
||||
|
||||
@@ -2586,6 +2589,7 @@ STR16 pPersonnelAssignmentStrings[] =
|
||||
L"训练现有的民兵", //L"Drill existing militia",
|
||||
L"掩埋尸体", //L"Bury corpses",
|
||||
L"管理人员", //L"Administration",
|
||||
L"Exploration", // TODO.Translate
|
||||
};
|
||||
|
||||
|
||||
@@ -2654,6 +2658,7 @@ STR16 pLongAssignmentStrings[] =
|
||||
L"训练现有的民兵", //L"Drill existing militia",
|
||||
L"掩埋尸体", //L"Bury corpses",
|
||||
L"管理人员", //L"Administration",
|
||||
L"Exploration", // TODO.Translate
|
||||
};
|
||||
|
||||
|
||||
@@ -2778,6 +2783,7 @@ STR16 pAssignMenuStrings[] =
|
||||
L"筑防", //L"Fortify", fortify sector
|
||||
L"情报", //L"Intel", covert assignments
|
||||
L"管理", //L"Administer",
|
||||
L"Explore", // TODO.Translate
|
||||
L"设施", // the merc is using/staffing a facility //ham3.6
|
||||
L"取消",
|
||||
};
|
||||
@@ -9106,6 +9112,7 @@ STR16 szBackgroundText_Value[]=
|
||||
L" 间谍技能: %s%d ",//L" hacking skill: %s%d ",
|
||||
L" %s%d%% 掩埋尸体速度 \n", //L" %s%d%% burial speed\n",
|
||||
L" %s%d%% 管理效率 \n", //L" %s%d%% administration effectiveness\n",
|
||||
L" %s%d%% exploration effectiveness\n", // TODO.Translate
|
||||
};
|
||||
|
||||
STR16 szBackgroundTitleText[] =
|
||||
|
||||
@@ -2363,6 +2363,8 @@ CHAR16 Message[][STRING_LENGTH] =
|
||||
|
||||
L"Assignment not possible at the moment", // TODO.Translate
|
||||
L"No militia that can be drilled present.",
|
||||
|
||||
L"%s has fully explored %s.", // TODO.Translate
|
||||
};
|
||||
|
||||
// the country and its noun in the game
|
||||
@@ -2476,6 +2478,7 @@ STR16 pAssignmentStrings[] =
|
||||
L"DMilitia",
|
||||
L"Burial",
|
||||
L"Admin", // TODO.Translate
|
||||
L"Explore", // TODO.Translate
|
||||
};
|
||||
|
||||
|
||||
@@ -2585,6 +2588,7 @@ STR16 pPersonnelAssignmentStrings[] =
|
||||
L"Drill existing militia",
|
||||
L"Bury corpses",
|
||||
L"Administration", // TODO.Translate
|
||||
L"Exploration", // TODO.Translate
|
||||
};
|
||||
|
||||
|
||||
@@ -2653,6 +2657,7 @@ STR16 pLongAssignmentStrings[] =
|
||||
L"Drill existing militia",
|
||||
L"Bury corpses",
|
||||
L"Administration", // TODO.Translate
|
||||
L"Exploration", // TODO.Translate
|
||||
};
|
||||
|
||||
|
||||
@@ -2777,6 +2782,7 @@ STR16 pAssignMenuStrings[] =
|
||||
L"Fortify", // fortify sector // TODO.Translate
|
||||
L"Intel", // covert assignments // TODO.Translate
|
||||
L"Administer", // TODO.Translate
|
||||
L"Explore", // TODO.Translate
|
||||
L"Facility", // the merc is using/staffing a facility // TODO.Translate
|
||||
L"Stop", // cancel this menu
|
||||
};
|
||||
@@ -9125,6 +9131,7 @@ STR16 szBackgroundText_Value[]=
|
||||
L" hacking skill: %s%d ", // TODO.Translate
|
||||
L" %s%d%% burial speed\n", // TODO.Translate
|
||||
L" %s%d%% administration effectiveness\n", // TODO.Translate
|
||||
L" %s%d%% exploration effectiveness\n", // TODO.Translate
|
||||
};
|
||||
|
||||
STR16 szBackgroundTitleText[] = // TODO.Translate
|
||||
|
||||
@@ -2364,6 +2364,8 @@ CHAR16 Message[][STRING_LENGTH] =
|
||||
|
||||
L"Assignment not possible at the moment",
|
||||
L"No militia that can be drilled present.",
|
||||
|
||||
L"%s has fully explored %s.",
|
||||
};
|
||||
|
||||
// the country and its noun in the game
|
||||
@@ -2477,6 +2479,7 @@ STR16 pAssignmentStrings[] =
|
||||
L"DMilitia",
|
||||
L"Burial",
|
||||
L"Admin",
|
||||
L"Explore",
|
||||
};
|
||||
|
||||
|
||||
@@ -2586,6 +2589,7 @@ STR16 pPersonnelAssignmentStrings[] =
|
||||
L"Drill existing militia",
|
||||
L"Bury corpses",
|
||||
L"Administration",
|
||||
L"Exploration",
|
||||
};
|
||||
|
||||
|
||||
@@ -2654,6 +2658,7 @@ STR16 pLongAssignmentStrings[] =
|
||||
L"Drill existing militia",
|
||||
L"Bury corpses",
|
||||
L"Administration",
|
||||
L"Exploration",
|
||||
};
|
||||
|
||||
|
||||
@@ -2778,6 +2783,7 @@ STR16 pAssignMenuStrings[] =
|
||||
L"Fortify", // fortify sector
|
||||
L"Intel", // covert assignments
|
||||
L"Administer",
|
||||
L"Explore",
|
||||
L"Facility", // the merc is using/staffing a facility
|
||||
L"Cancel", // cancel this menu
|
||||
};
|
||||
@@ -9120,6 +9126,7 @@ STR16 szBackgroundText_Value[]=
|
||||
L" hacking skill: %s%d ",
|
||||
L" %s%d%% burial speed\n",
|
||||
L" %s%d%% administration effectiveness\n",
|
||||
L" %s%d%% exploration effectiveness\n",
|
||||
};
|
||||
|
||||
STR16 szBackgroundTitleText[] =
|
||||
|
||||
@@ -2372,6 +2372,8 @@ CHAR16 Message[][STRING_LENGTH] =
|
||||
|
||||
L"Assignment not possible at the moment", // TODO.Translate
|
||||
L"No militia that can be drilled present.",
|
||||
|
||||
L"%s has fully explored %s.", // TODO.Translate
|
||||
};
|
||||
|
||||
// the country and its noun in the game // TODO.Translate
|
||||
@@ -2485,6 +2487,7 @@ STR16 pAssignmentStrings[] =
|
||||
L"DMilitia",
|
||||
L"Burial",
|
||||
L"Admin", // TODO.Translate
|
||||
L"Explore", // TODO.Translate
|
||||
};
|
||||
|
||||
|
||||
@@ -2594,6 +2597,7 @@ STR16 pPersonnelAssignmentStrings[] =
|
||||
L"Drill existing militia",
|
||||
L"Bury corpses",
|
||||
L"Administration", // TODO.Translate
|
||||
L"Exploration", // TODO.Translate
|
||||
};
|
||||
|
||||
|
||||
@@ -2662,6 +2666,7 @@ STR16 pLongAssignmentStrings[] =
|
||||
L"Drill existing militia",
|
||||
L"Bury corpses",
|
||||
L"Administration", // TODO.Translate
|
||||
L"Exploration", // TODO.Translate
|
||||
};
|
||||
|
||||
|
||||
@@ -2786,6 +2791,7 @@ STR16 pAssignMenuStrings[] =
|
||||
L"Fortify", // fortify sector // TODO.Translate
|
||||
L"Intel", // covert assignments // TODO.Translate
|
||||
L"Administer", // TODO.Translate
|
||||
L"Explore", // TODO.Translate
|
||||
L"Affectat.", // the merc is using/staffing a facility
|
||||
L"Annuler", // cancel this menu
|
||||
};
|
||||
@@ -9107,6 +9113,7 @@ STR16 szBackgroundText_Value[]=
|
||||
L" hacking skill: %s%d ", // TODO.Translate
|
||||
L" %s%d%% burial speed\n", // TODO.Translate
|
||||
L" %s%d%% administration effectiveness\n", // TODO.Translate
|
||||
L" %s%d%% exploration effectiveness\n", // TODO.Translate
|
||||
};
|
||||
|
||||
STR16 szBackgroundTitleText[] =
|
||||
|
||||
@@ -2380,6 +2380,8 @@ CHAR16 Message[][STRING_LENGTH] =
|
||||
|
||||
L"Assignment not possible at the moment", // TODO.Translate
|
||||
L"No militia that can be drilled present.",
|
||||
|
||||
L"%s hat %s vollständig erkundet.",
|
||||
};
|
||||
|
||||
// the country and its noun in the game
|
||||
@@ -2490,6 +2492,7 @@ STR16 pAssignmentStrings[] =
|
||||
L"DMilitia",
|
||||
L"Burial",
|
||||
L"Admin", // TODO.Translate
|
||||
L"Explore", // TODO.Translate
|
||||
};
|
||||
|
||||
STR16 pMilitiaString[] =
|
||||
@@ -2595,6 +2598,7 @@ STR16 pPersonnelAssignmentStrings[] =
|
||||
L"Drill existing militia",
|
||||
L"Bury corpses",
|
||||
L"Administration", // TODO.Translate
|
||||
L"Exploration", // TODO.Translate
|
||||
};
|
||||
|
||||
// refer to above for comments
|
||||
@@ -2661,6 +2665,7 @@ STR16 pLongAssignmentStrings[] =
|
||||
L"Drill existing militia",
|
||||
L"Bury corpses",
|
||||
L"Administration", // TODO.Translate
|
||||
L"Exploration", // TODO.Translate
|
||||
};
|
||||
|
||||
// the contract options
|
||||
@@ -2781,6 +2786,7 @@ STR16 pAssignMenuStrings[] =
|
||||
L"Fortify", // fortify sector // TODO.Translate
|
||||
L"Intel", // covert assignments // TODO.Translate
|
||||
L"Administer", // TODO.Translate
|
||||
L"Explore", // TODO.Translate
|
||||
L"Betrieb", // the merc is using/staffing a facility
|
||||
L"Abbrechen", // cancel this menu
|
||||
};
|
||||
@@ -8937,6 +8943,7 @@ STR16 szBackgroundText_Value[]=
|
||||
L" hacking skill: %s%d ", // TODO.Translate
|
||||
L" %s%d%% burial speed\n", // TODO.Translate
|
||||
L" %s%d%% administration effectiveness\n", // TODO.Translate
|
||||
L" %s%d%% exploration effectiveness\n", // TODO.Translate
|
||||
};
|
||||
|
||||
STR16 szBackgroundTitleText[] = // TODO.Translate
|
||||
|
||||
@@ -2358,6 +2358,8 @@ CHAR16 Message[][STRING_LENGTH] =
|
||||
|
||||
L"Assignment not possible at the moment", // TODO.Translate
|
||||
L"No militia that can be drilled present.",
|
||||
|
||||
L"%s has fully explored %s.", // TODO.Translate
|
||||
};
|
||||
|
||||
// the country and its noun in the game
|
||||
@@ -2471,6 +2473,7 @@ STR16 pAssignmentStrings[] =
|
||||
L"DMilitia",
|
||||
L"Burial",
|
||||
L"Admin", // TODO.Translate
|
||||
L"Explore", // TODO.Translate
|
||||
};
|
||||
|
||||
|
||||
@@ -2580,6 +2583,7 @@ STR16 pPersonnelAssignmentStrings[] =
|
||||
L"Drill existing militia",
|
||||
L"Bury corpses",
|
||||
L"Administration", // TODO.Translate
|
||||
L"Exploration", // TODO.Translate
|
||||
};
|
||||
|
||||
|
||||
@@ -2648,6 +2652,7 @@ STR16 pLongAssignmentStrings[] =
|
||||
L"Drill existing militia",
|
||||
L"Bury corpses",
|
||||
L"Administration", // TODO.Translate
|
||||
L"Exploration", // TODO.Translate
|
||||
};
|
||||
|
||||
|
||||
@@ -2772,6 +2777,7 @@ STR16 pAssignMenuStrings[] =
|
||||
L"Fortify", // fortify sector // TODO.Translate
|
||||
L"Intel", // covert assignments // TODO.Translate
|
||||
L"Administer", // TODO.Translate
|
||||
L"Explore", // TODO.Translate
|
||||
L"Facility", // the merc is using/staffing a facility // TODO.Translate
|
||||
L"Annulla", // cancel this menu
|
||||
};
|
||||
@@ -9116,6 +9122,7 @@ STR16 szBackgroundText_Value[]=
|
||||
L" hacking skill: %s%d ", // TODO.Translate
|
||||
L" %s%d%% burial speed\n", // TODO.Translate
|
||||
L" %s%d%% administration effectiveness\n", // TODO.Translate
|
||||
L" %s%d%% exploration effectiveness\n", // TODO.Translate
|
||||
};
|
||||
|
||||
STR16 szBackgroundTitleText[] = // TODO.Translate
|
||||
|
||||
@@ -2370,6 +2370,8 @@ CHAR16 Message[][STRING_LENGTH] =
|
||||
|
||||
L"Assignment not possible at the moment", // TODO.Translate
|
||||
L"No militia that can be drilled present.",
|
||||
|
||||
L"%s has fully explored %s.", // TODO.Translate
|
||||
};
|
||||
|
||||
// the country and its noun in the game
|
||||
@@ -2483,6 +2485,7 @@ STR16 pAssignmentStrings[] =
|
||||
L"DMilitia",
|
||||
L"Burial",
|
||||
L"Admin", // TODO.Translate
|
||||
L"Explore", // TODO.Translate
|
||||
};
|
||||
|
||||
|
||||
@@ -2592,6 +2595,7 @@ STR16 pPersonnelAssignmentStrings[] =
|
||||
L"Drill existing militia",
|
||||
L"Bury corpses",
|
||||
L"Administration", // TODO.Translate
|
||||
L"Exploration", // TODO.Translate
|
||||
};
|
||||
|
||||
|
||||
@@ -2660,6 +2664,7 @@ STR16 pLongAssignmentStrings[] =
|
||||
L"Drill existing militia",
|
||||
L"Bury corpses",
|
||||
L"Administration", // TODO.Translate
|
||||
L"Exploration", // TODO.Translate
|
||||
};
|
||||
|
||||
|
||||
@@ -2784,6 +2789,7 @@ STR16 pAssignMenuStrings[] =
|
||||
L"Fortify", // fortify sector // TODO.Translate
|
||||
L"Intel", // covert assignments // TODO.Translate
|
||||
L"Administer", // TODO.Translate
|
||||
L"Explore", // TODO.Translate
|
||||
L"Facility", // the merc is using/staffing a facility // TODO.Translate
|
||||
L"Anuluj", // cancel this menu
|
||||
};
|
||||
@@ -9129,6 +9135,7 @@ STR16 szBackgroundText_Value[]=
|
||||
L" hacking skill: %s%d ", // TODO.Translate
|
||||
L" %s%d%% burial speed\n", // TODO.Translate
|
||||
L" %s%d%% administration effectiveness\n", // TODO.Translate
|
||||
L" %s%d%% exploration effectiveness\n", // TODO.Translate
|
||||
};
|
||||
|
||||
STR16 szBackgroundTitleText[] = // TODO.Translate
|
||||
|
||||
@@ -2364,6 +2364,8 @@ CHAR16 Message[][STRING_LENGTH] =
|
||||
|
||||
L"Assignment not possible at the moment", // TODO.Translate
|
||||
L"No militia that can be drilled present.",
|
||||
|
||||
L"%s has fully explored %s.", // TODO.Translate
|
||||
};
|
||||
|
||||
// the country and its noun in the game
|
||||
@@ -2477,6 +2479,7 @@ STR16 pAssignmentStrings[] =
|
||||
L"DMilitia",
|
||||
L"Burial",
|
||||
L"Admin", // TODO.Translate
|
||||
L"Explore", // TODO.Translate
|
||||
};
|
||||
|
||||
|
||||
@@ -2586,6 +2589,7 @@ STR16 pPersonnelAssignmentStrings[] =
|
||||
L"Drill existing militia",
|
||||
L"Bury corpses",
|
||||
L"Administration", // TODO.Translate
|
||||
L"Exploration", // TODO.Translate
|
||||
};
|
||||
|
||||
|
||||
@@ -2654,6 +2658,7 @@ STR16 pLongAssignmentStrings[] =
|
||||
L"Drill existing militia",
|
||||
L"Bury corpses",
|
||||
L"Administration", // TODO.Translate
|
||||
L"Exploration", // TODO.Translate
|
||||
};
|
||||
|
||||
|
||||
@@ -2778,6 +2783,7 @@ STR16 pAssignMenuStrings[] =
|
||||
L"Укреплять", // fortify sector
|
||||
L"Intel", // covert assignments // TODO.Translate
|
||||
L"Administer", // TODO.Translate
|
||||
L"Explore", // TODO.Translate
|
||||
L"Занятия", // the merc is using/staffing a facility
|
||||
L"Отмена", // cancel this menu
|
||||
};
|
||||
@@ -9106,6 +9112,7 @@ STR16 szBackgroundText_Value[]=
|
||||
L" Взлом: %s%d ",
|
||||
L" %s%d%% burial speed\n", // TODO.Translate
|
||||
L" %s%d%% administration effectiveness\n", // TODO.Translate
|
||||
L" %s%d%% exploration effectiveness\n", // TODO.Translate
|
||||
};
|
||||
|
||||
STR16 szBackgroundTitleText[] =
|
||||
|
||||
Reference in New Issue
Block a user