1 #ifndef _MORALE_H 2 #define _MORALE_H 3 4 #include "JA2Types.h" 5 6 7 #define DEFAULT_MORALE 50 8 9 enum MoraleEventNames 10 { 11 MORALE_KILLED_ENEMY = 0, 12 MORALE_SQUADMATE_DIED, 13 MORALE_SUPPRESSED, 14 MORALE_AIRSTRIKE, 15 MORALE_DID_LOTS_OF_DAMAGE, 16 MORALE_TOOK_LOTS_OF_DAMAGE, // 5 17 MORALE_KILLED_CIVILIAN, 18 MORALE_BATTLE_WON, 19 MORALE_RAN_AWAY, 20 MORALE_HEARD_BATTLE_WON, 21 MORALE_HEARD_BATTLE_LOST, // 10 22 MORALE_TOWN_LIBERATED, 23 MORALE_TOWN_LOST, 24 MORALE_MINE_LIBERATED, 25 MORALE_MINE_LOST, 26 MORALE_SAM_SITE_LIBERATED, // 15 27 MORALE_SAM_SITE_LOST, 28 MORALE_BUDDY_DIED, 29 MORALE_HATED_DIED, 30 MORALE_TEAMMATE_DIED, 31 MORALE_LOW_DEATHRATE, // 20 32 MORALE_HIGH_DEATHRATE, 33 MORALE_GREAT_MORALE, 34 MORALE_POOR_MORALE, 35 MORALE_DRUGS_CRASH, 36 MORALE_ALCOHOL_CRASH, // 25 37 MORALE_MONSTER_QUEEN_KILLED, 38 MORALE_DEIDRANNA_KILLED, 39 MORALE_CLAUSTROPHOBE_UNDERGROUND, 40 MORALE_INSECT_PHOBIC_SEES_CREATURE, 41 MORALE_NERVOUS_ALONE, // 30 42 MORALE_MERC_CAPTURED, 43 MORALE_MERC_MARRIED, 44 MORALE_QUEEN_BATTLE_WON, 45 MORALE_SEX, 46 NUM_MORALE_EVENTS 47 }; 48 49 enum MoraleEventType 50 { 51 TACTICAL_MORALE_EVENT = 0, 52 STRATEGIC_MORALE_EVENT 53 }; 54 55 struct MoraleEvent 56 { 57 UINT8 ubType; 58 INT8 bChange; 59 }; 60 61 extern void HandleMoraleEvent( SOLDIERTYPE * pSoldier, INT8 bMoraleEvent, INT16 sMapX, INT16 sMapY, INT8 bMapZ ); 62 extern void RefreshSoldierMorale( SOLDIERTYPE * pSoldier ); 63 extern INT8 GetMoraleModifier( const SOLDIERTYPE * pSoldier ); 64 65 void HourlyMoraleUpdate( void ); 66 void DailyMoraleUpdate( SOLDIERTYPE *pSoldier ); 67 68 void DecayTacticalMoraleModifiers( void ); 69 70 #endif 71