mirror of
https://github.com/1dot13/source.git
synced 2026-08-26 14:30:26 +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;
|
break;
|
||||||
|
|
||||||
case ASSIGN_MENU_DOCTOR_DIAGNOSIS:
|
case ASSIGN_MENU_DOCTOR_DIAGNOSIS:
|
||||||
if ( 1 )
|
if ( CanCharacterDiagnoseDisease( pSoldier ) )
|
||||||
{
|
{
|
||||||
fShowSquadMenu = FALSE;
|
fShowSquadMenu = FALSE;
|
||||||
fShowTrainingMenu = FALSE;
|
fShowTrainingMenu = FALSE;
|
||||||
fShowVehicleMenu = FALSE;
|
fShowVehicleMenu = FALSE;
|
||||||
fShowFacilityMenu = FALSE; // HEADROCK HAM 3.6: Facility Menu
|
fShowFacilityMenu = FALSE; // HEADROCK HAM 3.6: Facility Menu
|
||||||
fShowPrisonerMenu = FALSE;
|
fShowPrisonerMenu = FALSE;
|
||||||
|
fShowDiseaseMenu = FALSE;
|
||||||
fShowRepairMenu = FALSE;
|
fShowRepairMenu = FALSE;
|
||||||
fShownContractMenu = FALSE;
|
fShownContractMenu = FALSE;
|
||||||
fTeamPanelDirty = TRUE;
|
fTeamPanelDirty = TRUE;
|
||||||
fMapScreenBottomDirty = TRUE;
|
fMapScreenBottomDirty = TRUE;
|
||||||
|
|
||||||
pSoldier->bOldAssignment = pSoldier->bAssignment;
|
pSoldier->bOldAssignment = pSoldier->bAssignment;
|
||||||
|
|
||||||
if ( pSoldier->bSectorZ == 0 )
|
if ( DisplayDiseaseMenu( pSoldier ) )
|
||||||
{
|
{
|
||||||
fShowDiseaseMenu = FALSE;
|
fShowDiseaseMenu = TRUE;
|
||||||
|
DetermineBoxPositions( );
|
||||||
if ( DisplayDiseaseMenu( pSoldier ) )
|
|
||||||
{
|
|
||||||
fShowDiseaseMenu = TRUE;
|
|
||||||
DetermineBoxPositions( );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ( 0 )
|
|
||||||
{
|
|
||||||
fTeamPanelDirty = TRUE;
|
|
||||||
fMapScreenBottomDirty = TRUE;
|
|
||||||
swprintf( sString, zMarksMapScreenText[18], pSoldier->GetName( ) );
|
|
||||||
|
|
||||||
DoScreenIndependantMessageBox( sString, MSG_BOX_FLAG_OK, NULL );
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case( ASSIGN_MENU_PATIENT ):
|
case( ASSIGN_MENU_PATIENT ):
|
||||||
|
|
||||||
|
|||||||
@@ -1299,7 +1299,11 @@ INT8 GetDynamicOpinion( UINT8 usProfileA, UINT8 usProfileB, UINT8 usEvent )
|
|||||||
{
|
{
|
||||||
INT32 opinion = 0;
|
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;
|
return opinion;
|
||||||
|
|
||||||
if ( usEvent >= OPINIONEVENT_MAX )
|
if ( usEvent >= OPINIONEVENT_MAX )
|
||||||
|
|||||||
@@ -18371,6 +18371,10 @@ void SOLDIERTYPE::Infect( UINT8 aDisease )
|
|||||||
if ( !gGameExternalOptions.fDisease )
|
if ( !gGameExternalOptions.fDisease )
|
||||||
return;
|
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
|
// 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 )
|
if ( aDisease < NUM_DISEASES && this->sDiseasePoints[aDisease] < Disease[aDisease].sInfectionPtsInitial )
|
||||||
{
|
{
|
||||||
@@ -18404,6 +18408,10 @@ void SOLDIERTYPE::AddDiseasePoints( UINT8 aDisease, INT32 aVal )
|
|||||||
if ( !gGameExternalOptions.fDisease )
|
if ( !gGameExternalOptions.fDisease )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
// diseases should not affect machines
|
||||||
|
if ( (this->flags.uiStatusFlags & SOLDIER_VEHICLE) || AM_A_ROBOT( this ) )
|
||||||
|
return;
|
||||||
|
|
||||||
if ( aDisease < NUM_DISEASES )
|
if ( aDisease < NUM_DISEASES )
|
||||||
{
|
{
|
||||||
this->sDiseasePoints[aDisease] = min( Disease[aDisease].sInfectionPtsFull, max( this->sDiseasePoints[aDisease] + aVal, -Disease[aDisease].sInfectionPtsOutbreak ) );
|
this->sDiseasePoints[aDisease] = min( Disease[aDisease].sInfectionPtsFull, max( this->sDiseasePoints[aDisease] + aVal, -Disease[aDisease].sInfectionPtsOutbreak ) );
|
||||||
|
|||||||
Reference in New Issue
Block a user