#ifndef _MORALE_H #define _MORALE_H #include "Types.h" #include "Soldier Control.h" #define DEFAULT_MORALE 50 typedef enum { MORALE_KILLED_ENEMY = 0, MORALE_SQUADMATE_DIED, MORALE_SUPPRESSED, MORALE_AIRSTRIKE, MORALE_DID_LOTS_OF_DAMAGE, MORALE_TOOK_LOTS_OF_DAMAGE, // 5 MORALE_KILLED_CIVILIAN, MORALE_BATTLE_WON, MORALE_RAN_AWAY, MORALE_HEARD_BATTLE_WON, MORALE_HEARD_BATTLE_LOST, // 10 MORALE_TOWN_LIBERATED, MORALE_TOWN_LOST, MORALE_MINE_LIBERATED, MORALE_MINE_LOST, MORALE_SAM_SITE_LIBERATED, // 15 MORALE_SAM_SITE_LOST, MORALE_BUDDY_DIED, MORALE_HATED_DIED, MORALE_TEAMMATE_DIED, MORALE_LOW_DEATHRATE, // 20 MORALE_HIGH_DEATHRATE, MORALE_GREAT_MORALE, MORALE_POOR_MORALE, MORALE_DRUGS_CRASH, MORALE_ALCOHOL_CRASH, // 25 MORALE_MONSTER_QUEEN_KILLED, MORALE_DEIDRANNA_KILLED, MORALE_CLAUSTROPHOBE_UNDERGROUND, MORALE_INSECT_PHOBIC_SEES_CREATURE, MORALE_NERVOUS_ALONE, // 30 MORALE_MERC_CAPTURED, MORALE_MERC_MARRIED, MORALE_QUEEN_BATTLE_WON, MORALE_SEX, // added by SANDRO MORALE_HEAT_INTOLERANT_IN_DESERT, MORALE_PSYCHO_UNABLE_TO_PSYCHO, MORALE_PACIFIST_GAIN_NONCOMBAT, MORALE_MALICIOUS_HIT, NUM_MORALE_EVENTS } MoraleEventNames; typedef enum { TACTICAL_MORALE_EVENT = 0, STRATEGIC_MORALE_EVENT } MoraleEventType; typedef struct MoraleEvent { UINT8 ubType; INT8 bChange; } MoraleEvent; extern void HandleMoraleEvent( SOLDIERTYPE * pSoldier, INT8 bMoraleEvent, INT16 sMapX, INT16 sMapY, INT8 bMapZ ); extern void RefreshSoldierMorale( SOLDIERTYPE * pSoldier ); extern INT8 GetMoraleModifier( SOLDIERTYPE * pSoldier ); void HourlyMoraleUpdate( void ); void DailyMoraleUpdate( SOLDIERTYPE *pSoldier ); void DecayTacticalMoraleModifiers( void ); #endif