Added new assignments for training existing militia and doctoring them.

For more info, see http://thepit.ja-galaxy-forum.com/index.php?t=msg&th=23044&goto=352617&#msg_352617

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8537 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Flugente
2018-03-04 21:20:38 +00:00
parent a95c4fd614
commit 82a2b6c2db
27 changed files with 1939 additions and 218 deletions
+2 -2
View File
@@ -715,10 +715,10 @@ void ChangeStat( MERCPROFILESTRUCT *pProfile, SOLDIERTYPE *pSoldier, UINT8 ubSta
//Madd: option to make mercs quiet during training / doctoring / repairing
if ( ((pSoldier->bAssignment == TRAIN_BY_OTHER || pSoldier->bAssignment == TRAIN_TEAMMATE || pSoldier->bAssignment == TRAIN_SELF ||
pSoldier->bAssignment == FACILITY_STAFF || pSoldier->bAssignment == TRAIN_TOWN || pSoldier->bAssignment == TRAIN_MOBILE
|| pSoldier->bAssignment == TRAIN_WORKERS )
|| pSoldier->bAssignment == TRAIN_WORKERS || pSoldier->bAssignment == DRILL_MILITIA )
&& !gGameSettings.fOptions[TOPTION_QUIET_TRAINING]) ||
(IS_REPAIR(pSoldier->bAssignment) && !gGameSettings.fOptions[TOPTION_QUIET_REPAIRING]) ||
(IS_DOCTOR(pSoldier->bAssignment) && !gGameSettings.fOptions[TOPTION_QUIET_DOCTORING]))
((IS_DOCTOR(pSoldier->bAssignment) || pSoldier->bAssignment == DOCTOR_MILITIA ) && !gGameSettings.fOptions[TOPTION_QUIET_DOCTORING]))
TacticalCharacterDialogue( pSoldier, QUOTE_EXPERIENCE_GAIN );
}
+18 -5
View File
@@ -2277,15 +2277,26 @@ void HandleRenderFaceAdjustments( FACETYPE *pFace, BOOLEAN fDisplayBuffer, BOOLE
switch( pSoldier->bAssignment )
{
CASE_DOCTOR:
case DOCTOR_MILITIA:
sIconIndex_Assignment = 1;
fDoIcon_Assignment = TRUE;
sPtsAvailable = CalculateHealingPointsForDoctor( MercPtrs[ pFace->ubSoldierID ], &usMaximumPts, FALSE );
fShowNumber = TRUE;
fShowMaximum = TRUE;
// divide both amounts by 10 to make the displayed numbers a little more user-palatable (smaller)
sPtsAvailable = ( sPtsAvailable + 5 ) / 10;
usMaximumPts = ( usMaximumPts + 5 ) / 10;
fShowCustomText = TRUE;
if ( pSoldier->bAssignment == DOCTOR_MILITIA )
{
// show percentage that we can heal
swprintf( sString, L"%3.1f/%3.1f", (FLOAT)( sPtsAvailable * gGameExternalOptions.dIndividualMilitiaDoctorHealModifier ), (FLOAT)( usMaximumPts * gGameExternalOptions.dIndividualMilitiaDoctorHealModifier ) );
}
else
{
// shos HP we can heal
swprintf( sString, L"%3.1f/%3.1f", (FLOAT)( sPtsAvailable ) / 100.0f, (FLOAT)( usMaximumPts ) / 100.0f );
}
usTextWidth = StringPixLength( sString, FONT10ARIAL );
break;
CASE_PATIENT:
@@ -2305,6 +2316,7 @@ void HandleRenderFaceAdjustments( FACETYPE *pFace, BOOLEAN fDisplayBuffer, BOOLE
case TRAIN_TEAMMATE:
case TRAIN_BY_OTHER:
case TRAIN_WORKERS:
case DRILL_MILITIA:
sIconIndex_Assignment = 3;
fDoIcon_Assignment = TRUE;
fShowNumber = TRUE;
@@ -2320,6 +2332,7 @@ void HandleRenderFaceAdjustments( FACETYPE *pFace, BOOLEAN fDisplayBuffer, BOOLE
break;
case( TRAIN_TOWN ):
case( TRAIN_MOBILE ):
case DRILL_MILITIA:
sPtsAvailable = GetTownTrainPtsForCharacter( MercPtrs[ pFace->ubSoldierID ], &usMaximumPts );
// divide both amounts by 10 to make the displayed numbers a little more user-palatable (smaller)
sPtsAvailable = ( sPtsAvailable + 5 ) / 10;
+1 -1
View File
@@ -1731,7 +1731,7 @@ void AddSoldierToSectorGridNo( SOLDIERTYPE *pSoldier, INT32 sGridNo, UINT8 ubDir
{
InternalSoldierInSectorSleep( pSoldier, pSoldier->sInsertionGridNo, FALSE );
}
else if ( IS_DOCTOR(pSoldier->bAssignment) )
else if ( IS_DOCTOR(pSoldier->bAssignment) || pSoldier->bAssignment == DOCTOR_MILITIA )
{
SoldierInSectorDoctor( pSoldier, pSoldier->sInsertionGridNo );
}
+1 -1
View File
@@ -635,7 +635,7 @@ SOLDIERTYPE* TacticalCreateSoldier( SOLDIERCREATE_STRUCT *pCreateStruct, UINT8 *
// do not do so during loading of a savegame
if ( tbTeam == MILITIA_TEAM && !pCreateStruct->fUseExistingSoldier )
{
Soldier.usIndividualMilitiaID = GetIdOfUnusedindividualMilitia( pCreateStruct->ubSoldierClass, SECTOR( pCreateStruct->sSectorX, pCreateStruct->sSectorY ) );
Soldier.usIndividualMilitiaID = GetIdOfUnusedIndividualMilitia( pCreateStruct->ubSoldierClass, SECTOR( pCreateStruct->sSectorX, pCreateStruct->sSectorY ) );
}
// OK, CHECK IF WE HAVE A VALID PROFILE ID!