diff --git a/Strategic/Assignments.cpp b/Strategic/Assignments.cpp index 9b4a9c96..b547f1ad 100644 --- a/Strategic/Assignments.cpp +++ b/Strategic/Assignments.cpp @@ -15358,14 +15358,14 @@ void SetSoldierAssignment( SOLDIERTYPE *pSoldier, INT8 bAssignment, INT32 iParam TakeSoldierOutOfVehicle( pSoldier ); } - if( ( pSoldier->bAssignment != ASSIGNMENT_HOSPITAL ) ) + if ( (pSoldier->bAssignment != bAssignment) ) { SetTimeOfAssignmentChangeForMerc( pSoldier ); } RebuildCurrentSquad( ); - ChangeSoldiersAssignment( pSoldier, ASSIGNMENT_HOSPITAL ); + ChangeSoldiersAssignment( pSoldier, bAssignment ); AssignMercToAMovementGroup( pSoldier ); } @@ -16029,15 +16029,7 @@ BOOLEAN IsTheSAMSiteInSectorRepairable( INT16 sSectorX, INT16 sSectorY, INT16 sS { INT8 bSAMCondition = StrategicMap[CALCULATE_STRATEGIC_INDEX( sSectorX, sSectorY )].bSAMCondition; - if ( bSAMCondition < 100 ) - { - return( TRUE ); - } - else - { - // it's not broken at all, or it's beyond repair - return( FALSE ); - } + return (bSAMCondition < 100); } } diff --git a/Strategic/LuaInitNPCs.cpp b/Strategic/LuaInitNPCs.cpp index c6df63c4..f4a443fd 100644 --- a/Strategic/LuaInitNPCs.cpp +++ b/Strategic/LuaInitNPCs.cpp @@ -4864,31 +4864,27 @@ return 1; static int l_NumWoundedMercsNearby(lua_State *L) { - if ( lua_gettop(L) >= 1 ) { - INT8 ID = lua_tointeger(L,1); - INT8 ID2 = NumWoundedMercsNearby(ID); + UINT8 ID = lua_tointeger(L,1); + UINT32 ID2 = NumWoundedMercsNearby( ID ); lua_pushinteger(L, ID2); } -return 1; + return 1; } - static int l_gubFact(lua_State *L) { - if ( lua_gettop(L) >= 2 ) { UINT32 Fact = lua_tointeger(L,1); BOOLEAN Bool = lua_toboolean(L,2); - gubFact[Fact] = Bool; - + gubFact[Fact] = Bool; } -return 0; + return 0; } static int l_CheckPlayerHasHead(lua_State *L) diff --git a/Strategic/Quests.cpp b/Strategic/Quests.cpp index 4fd38fe2..6eb78438 100644 --- a/Strategic/Quests.cpp +++ b/Strategic/Quests.cpp @@ -270,30 +270,29 @@ BOOLEAN CheckIfMercIsNearNPC( SOLDIERTYPE *pMerc, UINT8 ubProfileId ) } -INT8 NumWoundedMercsNearby( UINT8 ubProfileID ) +UINT32 NumWoundedMercsNearby( UINT8 ubProfileID ) { - INT8 bNumber = 0; - UINT32 uiLoop; - SOLDIERTYPE * pNPC; - SOLDIERTYPE * pSoldier; - INT32 sGridNo; + UINT32 bNumber = 0; + SOLDIERTYPE* pSoldier; - pNPC = FindSoldierByProfileID( ubProfileID, FALSE ); + SOLDIERTYPE* pNPC = FindSoldierByProfileID( ubProfileID, FALSE ); if (!pNPC) { return( FALSE ); } - sGridNo = pNPC->sGridNo; - for ( uiLoop = 0; uiLoop < guiNumMercSlots; uiLoop++) + INT32 sGridNo = pNPC->sGridNo; + + for ( UINT32 uiLoop = 0; uiLoop < guiNumMercSlots; ++uiLoop ) { pSoldier = MercSlots[ uiLoop ]; - if ( pSoldier && pSoldier->bTeam == gbPlayerNum && pSoldier->stats.bLife > 0 && pSoldier->stats.bLife < pSoldier->stats.bLifeMax && pSoldier->bAssignment != ASSIGNMENT_HOSPITAL ) + if ( pSoldier && pSoldier->bTeam == gbPlayerNum && pSoldier->stats.bLife > 0 && pSoldier->stats.bLife < pSoldier->stats.bLifeMax && pSoldier->bAssignment != ASSIGNMENT_HOSPITAL + && pSoldier->sSectorX == pNPC->sSectorX && pSoldier->sSectorY == pNPC->sSectorY && pSoldier->bSectorZ == pNPC->bSectorZ ) { if (PythSpacesAway( sGridNo, pSoldier->sGridNo ) <= HOSPITAL_PATIENT_DISTANCE) { - bNumber++; + ++bNumber; } } } diff --git a/Strategic/Quests.h b/Strategic/Quests.h index f9944c59..cbc98a3a 100644 --- a/Strategic/Quests.h +++ b/Strategic/Quests.h @@ -667,7 +667,7 @@ extern BOOLEAN CheckGuyVisible( UINT8 ubNPC, UINT8 ubGuy ); extern BOOLEAN CheckNPCAt( UINT8 ubNPC, INT32 sGridNo ); extern BOOLEAN CheckNPCIsEnemy( UINT8 ubProfileID ); extern BOOLEAN CheckIfMercIsNearNPC( SOLDIERTYPE *pMerc, UINT8 ubProfileId ); -extern INT8 NumWoundedMercsNearby( UINT8 ubProfileID ); +extern UINT32 NumWoundedMercsNearby( UINT8 ubProfileID ); extern INT8 NumMercsNear( UINT8 ubProfileID, UINT8 ubMaxDist ); extern BOOLEAN CheckNPCIsEPC( UINT8 ubProfileID ); //DBrot: More Rooms diff --git a/Tactical/Interface Dialogue.cpp b/Tactical/Interface Dialogue.cpp index a55f4ed1..897c83f7 100644 --- a/Tactical/Interface Dialogue.cpp +++ b/Tactical/Interface Dialogue.cpp @@ -4550,23 +4550,19 @@ UINT32 CalcPatientMedicalCost( SOLDIERTYPE * pSoldier ) UINT32 CalcMedicalCost( UINT8 ubId ) { - INT32 cnt; - UINT32 uiCostSoFar; - INT32 sGridNo = 0; - SOLDIERTYPE * pSoldier, *pNPC; - - uiCostSoFar = 0; - + UINT32 uiCostSoFar = 0; + SOLDIERTYPE* pSoldier; + // find the doctor's soldiertype to get his position - pNPC = FindSoldierByProfileID( ubId, FALSE ); + SOLDIERTYPE* pNPC = FindSoldierByProfileID( ubId, FALSE ); if (!pNPC) { return( 0 ); } - sGridNo = pNPC->sGridNo; + INT32 sGridNo = pNPC->sGridNo; - for ( cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; cnt++) + for ( UINT32 cnt = gTacticalStatus.Team[gbPlayerNum].bFirstID; cnt <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++cnt ) { pSoldier = MercPtrs[ cnt ]; if ( pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife > 0 && pSoldier->bAssignment != ASSIGNMENT_HOSPITAL ) @@ -4596,8 +4592,6 @@ BOOLEAN PlayerTeamHasTwoSpotsLeft( ) return ( CountNonVehiclesOnPlayerTeam() <= OUR_TEAM_SIZE_NO_VEHICLE - 2 ); } - - void StartDialogueMessageBox( UINT8 ubProfileID, UINT16 usMessageBoxType ) { INT32 iTemp; @@ -4869,85 +4863,50 @@ void DialogueMessageBoxCallBack( UINT8 ubExitValue ) } break; case NPC_ACTION_MEDICAL_REQUESTOR: - case NPC_ACTION_MEDICAL_REQUESTOR_2: - if (ubProfile == VINCE) + case NPC_ACTION_MEDICAL_REQUESTOR_2: + if ( gusDialogueMessageBoxType == NPC_ACTION_MEDICAL_REQUESTOR ) { - if ( gusDialogueMessageBoxType == NPC_ACTION_MEDICAL_REQUESTOR ) + if ( ubExitValue == MSG_BOX_RETURN_YES ) { - if ( ubExitValue == MSG_BOX_RETURN_YES ) - { - // give the guy the cash - TriggerNPCRecord( VINCE, 23 ); - } - else - { - // no cash, no help - TriggerNPCRecord( VINCE, 24 ); - } + // give the guy the cash + TriggerNPCRecord( ubProfile, 23 ); } else { - if ( ubExitValue == MSG_BOX_RETURN_YES ) + // no cash, no help + TriggerNPCRecord( ubProfile, 24 ); + } + } + else + { + if ( ubExitValue == MSG_BOX_RETURN_YES ) + { + //HandleNPCDoAction( VINCE, NPC_ACTION_CHECK_DOCTORING_MONEY_GIVEN, 0 ); + if ( CheckFact( FACT_WOUNDED_MERCS_NEARBY, ubProfile ) ) { - //HandleNPCDoAction( VINCE, NPC_ACTION_CHECK_DOCTORING_MONEY_GIVEN, 0 ); - if ( CheckFact( FACT_WOUNDED_MERCS_NEARBY, VINCE) ) - { - TriggerNPCRecord( VINCE, 26 ); - } - else if( CheckFact( FACT_ONE_WOUNDED_MERC_NEARBY, VINCE ) ) - { - TriggerNPCRecord( VINCE, 25 ); - } + TriggerNPCRecord( ubProfile, 26 ); + } + else if ( CheckFact( FACT_ONE_WOUNDED_MERC_NEARBY, ubProfile ) ) + { + TriggerNPCRecord( ubProfile, 25 ); + } + + if ( ubProfile == VINCE ) giHospitalTempBalance = 0; - } else - { - // just don't want the help - TriggerNPCRecord( VINCE, 34 ); - } - } - - DeleteTalkingMenu(); - } - else // Steven Willis - { - if( gusDialogueMessageBoxType == NPC_ACTION_MEDICAL_REQUESTOR ) - { - if ( ubExitValue == MSG_BOX_RETURN_YES ) - { - // give the guy the cash - TriggerNPCRecord( STEVE, 23 ); - } - else - { - // no cahs, no help - TriggerNPCRecord( STEVE, 24 ); - } + gMercProfiles[VINCE].iBalance = 0; } else { - if ( ubExitValue == MSG_BOX_RETURN_YES ) - { - //HandleNPCDoAction( STEVE, NPC_ACTION_CHECK_DOCTORING_MONEY_GIVEN, 0 ); - if ( CheckFact( FACT_WOUNDED_MERCS_NEARBY, STEVE) ) - { - TriggerNPCRecord( STEVE, 26 ); - } - else if( CheckFact( FACT_ONE_WOUNDED_MERC_NEARBY, STEVE ) ) - { - TriggerNPCRecord( STEVE, 25 ); - } - gMercProfiles[ VINCE ].iBalance = 0; - } + // just don't want the help + if ( ubProfile == VINCE ) + TriggerNPCRecord( ubProfile, 34 ); else - { - // just don't want the help TriggerNPCRecord( STEVE, 30 ); - } } - - DeleteTalkingMenu(); } + + DeleteTalkingMenu(); break; case NPC_ACTION_BUY_VEHICLE_REQUESTOR: if ( ubExitValue == MSG_BOX_RETURN_YES )