mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
- Fix: machines have opinions
- Fix: machines get diseases - Fix: disease assignment menu box accessible if feature is off git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8093 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -12220,39 +12220,27 @@ void AssignmentMenuBtnCallback( MOUSE_REGION * pRegion, INT32 iReason )
|
||||
break;
|
||||
|
||||
case ASSIGN_MENU_DOCTOR_DIAGNOSIS:
|
||||
if ( 1 )
|
||||
if ( CanCharacterDiagnoseDisease( pSoldier ) )
|
||||
{
|
||||
fShowSquadMenu = FALSE;
|
||||
fShowTrainingMenu = FALSE;
|
||||
fShowVehicleMenu = FALSE;
|
||||
fShowFacilityMenu = FALSE; // HEADROCK HAM 3.6: Facility Menu
|
||||
fShowPrisonerMenu = FALSE;
|
||||
fShowDiseaseMenu = FALSE;
|
||||
fShowRepairMenu = FALSE;
|
||||
fShownContractMenu = FALSE;
|
||||
fTeamPanelDirty = TRUE;
|
||||
fMapScreenBottomDirty = TRUE;
|
||||
|
||||
pSoldier->bOldAssignment = pSoldier->bAssignment;
|
||||
|
||||
if ( pSoldier->bSectorZ == 0 )
|
||||
|
||||
if ( DisplayDiseaseMenu( pSoldier ) )
|
||||
{
|
||||
fShowDiseaseMenu = FALSE;
|
||||
|
||||
if ( DisplayDiseaseMenu( pSoldier ) )
|
||||
{
|
||||
fShowDiseaseMenu = TRUE;
|
||||
DetermineBoxPositions( );
|
||||
}
|
||||
fShowDiseaseMenu = TRUE;
|
||||
DetermineBoxPositions( );
|
||||
}
|
||||
}
|
||||
else if ( 0 )
|
||||
{
|
||||
fTeamPanelDirty = TRUE;
|
||||
fMapScreenBottomDirty = TRUE;
|
||||
swprintf( sString, zMarksMapScreenText[18], pSoldier->GetName( ) );
|
||||
|
||||
DoScreenIndependantMessageBox( sString, MSG_BOX_FLAG_OK, NULL );
|
||||
}
|
||||
break;
|
||||
case( ASSIGN_MENU_PATIENT ):
|
||||
|
||||
|
||||
@@ -1299,7 +1299,11 @@ INT8 GetDynamicOpinion( UINT8 usProfileA, UINT8 usProfileB, UINT8 usEvent )
|
||||
{
|
||||
INT32 opinion = 0;
|
||||
|
||||
if ( usProfileA == NO_PROFILE || usProfileA == NO_PROFILE )
|
||||
if ( usProfileA == NO_PROFILE || usProfileB == NO_PROFILE )
|
||||
return opinion;
|
||||
|
||||
// machines aren't people
|
||||
if ( gMercProfiles[usProfileA].ubBodyType == ROBOTNOWEAPON || gMercProfiles[usProfileB].ubBodyType == ROBOTNOWEAPON )
|
||||
return opinion;
|
||||
|
||||
if ( usEvent >= OPINIONEVENT_MAX )
|
||||
|
||||
@@ -18371,6 +18371,10 @@ void SOLDIERTYPE::Infect( UINT8 aDisease )
|
||||
if ( !gGameExternalOptions.fDisease )
|
||||
return;
|
||||
|
||||
// diseases should not affect machines
|
||||
if ( (this->flags.uiStatusFlags & SOLDIER_VEHICLE) || AM_A_ROBOT( this ) )
|
||||
return;
|
||||
|
||||
// we are getting infected. Raise our disease points, but not over the level of an infection
|
||||
if ( aDisease < NUM_DISEASES && this->sDiseasePoints[aDisease] < Disease[aDisease].sInfectionPtsInitial )
|
||||
{
|
||||
@@ -18404,6 +18408,10 @@ void SOLDIERTYPE::AddDiseasePoints( UINT8 aDisease, INT32 aVal )
|
||||
if ( !gGameExternalOptions.fDisease )
|
||||
return;
|
||||
|
||||
// diseases should not affect machines
|
||||
if ( (this->flags.uiStatusFlags & SOLDIER_VEHICLE) || AM_A_ROBOT( this ) )
|
||||
return;
|
||||
|
||||
if ( aDisease < NUM_DISEASES )
|
||||
{
|
||||
this->sDiseasePoints[aDisease] = min( Disease[aDisease].sInfectionPtsFull, max( this->sDiseasePoints[aDisease] + aVal, -Disease[aDisease].sInfectionPtsOutbreak ) );
|
||||
|
||||
Reference in New Issue
Block a user