Ensure missions can only be started in towns that use loyalty

This commit is contained in:
rftrdev
2022-10-26 00:18:30 -07:00
parent 7d360d01ce
commit 54b0bf96b9
+10 -11
View File
@@ -2595,7 +2595,7 @@ BOOLEAN SetupMissionAgentBox(UINT16 x, UINT16 y, INT8 index)
const INT32 worldMin = GetWorldTotalMin(); const INT32 worldMin = GetWorldTotalMin();
const INT32 remaining = endTime - worldMin; const INT32 remaining = endTime - worldMin;
if ((townId < FIRST_TOWN || townId >= NUM_TOWNS || townLoyalty < gRebelCommandSettings.iMinLoyaltyForMission) && rebelCommandSaveInfo.availableMissions[index] != RCAM_SEND_SUPPLIES_TO_TOWN) if (townId < FIRST_TOWN || townId >= NUM_TOWNS || !gfTownUsesLoyalty[townId] || (townLoyalty < gRebelCommandSettings.iMinLoyaltyForMission && rebelCommandSaveInfo.availableMissions[index] != RCAM_SEND_SUPPLIES_TO_TOWN))
{ {
canStartMission = FALSE; canStartMission = FALSE;
swprintf(sText, szRebelCommandText[RCT_MISSION_CANT_START_LOW_LOYALTY]); swprintf(sText, szRebelCommandText[RCT_MISSION_CANT_START_LOW_LOYALTY]);
@@ -2610,16 +2610,11 @@ BOOLEAN SetupMissionAgentBox(UINT16 x, UINT16 y, INT8 index)
canStartMission = FALSE; canStartMission = FALSE;
swprintf(sText, szRebelCommandText[RCT_MISSION_CANT_START_CONTRACT_EXPIRING]); swprintf(sText, szRebelCommandText[RCT_MISSION_CANT_START_CONTRACT_EXPIRING]);
} }
else if (agentIndex[index] == mercs.size() && rebelCommandSaveInfo.availableMissions[index] == RCAM_SEND_SUPPLIES_TO_TOWN) }
{ else if (agentIndex[index] == mercs.size() && rebelCommandSaveInfo.availableMissions[index] == RCAM_SEND_SUPPLIES_TO_TOWN)
canStartMission = FALSE; {
swprintf(sText, szRebelCommandText[RCT_MISSION_CANT_USE_REBEL_AGENT]); canStartMission = FALSE;
} swprintf(sText, szRebelCommandText[RCT_MISSION_CANT_USE_REBEL_AGENT]);
if (!canStartMission)
{
DrawTextToScreen(sText, x, y+295, 231, FONT10ARIAL, FONT_RED, FONT_MCOLOR_BLACK, FALSE, CENTER_JUSTIFIED);
}
} }
else if ((gTacticalStatus.uiFlags & INCOMBAT) || gTacticalStatus.fEnemyInSector) else if ((gTacticalStatus.uiFlags & INCOMBAT) || gTacticalStatus.fEnemyInSector)
{ {
@@ -2641,6 +2636,10 @@ BOOLEAN SetupMissionAgentBox(UINT16 x, UINT16 y, INT8 index)
MSYS_SetBtnUserData(btnId, 0, index); MSYS_SetBtnUserData(btnId, 0, index);
btnIds.push_back(btnId); btnIds.push_back(btnId);
} }
else
{
DrawTextToScreen(sText, x, y+295, 231, FONT10ARIAL, FONT_RED, FONT_MCOLOR_BLACK, FALSE, CENTER_JUSTIFIED);
}
return TRUE; return TRUE;
} }