Files
source/Strategic/Facilities.h
BeatAroundTheBuscherandGitHub ed00830202 Fixes Upper/Lower Casing for include paths (#487)
* Fixing upper/lower case for includes

types.h, zconf.h and zlib.h were renamed so that global includes like Types.h
are not used.
2025-08-16 22:01:12 -03:00

84 lines
2.9 KiB
C

#ifndef _FACILITIES_H
#define _FACILITIES_H
#include "Campaign Types.h"
#include "Soldier Control.h"
// Get a specific modifier for a specific assignment at a specific facility. Includes Ambient (non-assignment based)
// effects, if any.
INT16 GetFacilityModifier( UINT8 ubModifierType, UINT8 ubFacilityType, UINT8 ubAssignmentType );
// Get a specific modifier from all facilities in the soldier's sector. This utilizes the above function.
INT16 GetSectorModifier( SOLDIERTYPE *pSoldier, UINT8 ubModifierType );
// Level of awareness to enemy movements, bestowed by facilities
extern void UpdateStrategicDetectionLevel( );
// Adjustment to Skyrider's cost-per-tile, bestowed by facilities
extern void UpdateSkyriderCostModifier( );
extern INT16 gsSkyriderCostModifier; // This variable is SAVED/LOADED
// HEADROCK HAM 3.6: Strategic info variable, total of income/costs accumulated for the use of facilities today.
// Account settle and reset at midnight, unless player can't pay (in which case, carries over to the next day).
extern INT32 giTotalEarnedForFacilityOperationsToday; // This variable is SAVED and LOADED.
extern INT32 giTotalOwedForFacilityOperationsToday; // This variable is SAVED and LOADED.
// Do we have outstanding debts for facility operation?
extern BOOLEAN gfOutstandingFacilityDebt; // This variable is SAVED and LOADED.
// Place this here for facility staffing checks.
extern UINT32 GetWorldTotalMin( );
// These are all the different modifiers we could be checking for.
enum
{
FACILITY_PERFORMANCE_MOD = 0,
FACILITY_SLEEP_MOD,
FACILITY_FATIGUE_MOD,
FACILITY_KIT_DEGRADE_MOD,
FACILITY_MAX_MORALE,
FACILITY_MAX_BREATH,
FACILITY_DETECT_IMMEDIATE,
FACILITY_DETECT_DYNAMIC,
FACILITY_DETECT_LONGRANGE,
FACILITY_DETECT_ANYWHERE,
FACILITY_COUNT_INWILD,
FACILITY_COUNT_INCITIES,
FACILITY_MINE_INCOME_MOD,
FACILITY_SKYRIDER_COST_MOD,
FACILITY_CANTINA_MOD,
FACILITY_PRISON_MOD
};
// HEADROCK HAM 3.6: Different enemy detection and counting levels
enum
{
DETECT_ENEMIES_DYNAMIC = 0,
DETECT_ENEMIES_LONGRANGE,
DETECT_ENEMIES_ANYWHERE,
COUNT_ENEMIES_IN_WILD,
COUNT_ENEMIES_IN_CITIES,
};
void UpdateGlobalVariablesFromFacilities( void );
void UpdateFacilityUsageCosts( void );
void HandleDailyPaymentFacilityIncome( void );
void HandleDailyPaymentFacilityDebt( void );
void HandleManualPaymentFacilityDebt( void );
void HandleHourlyRisks( void );
INT32 MineIncomeModifierFromFacility( UINT8 ubMine );
INT8 GetSoldierFacilityAssignmentIndex( SOLDIERTYPE *pSoldier );
void HandleRisksForSoldier( SOLDIERTYPE *pSoldier );
void HandleRisksForSoldierFacilityAssignment( SOLDIERTYPE *pSoldier, UINT8 ubFacilityType, UINT8 ubAssignmentType );
INT16 FacilityRiskResult( SOLDIERTYPE *pSoldier, UINT8 ubRiskType, UINT8 ubFacilityType, UINT8 ubAssignmentType );
INT32 GetTotalFacilityHourlyCosts( BOOLEAN fPositive );
void InitFacilities();
#endif