Files
source/Tactical/Overhead Types.h
T
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

378 lines
11 KiB
C

#ifndef __OVERHEAD_TYPES_H
#define __OVERHEAD_TYPES_H
// GLOBAL HEADER FOR DATA, TYPES FOR TACTICAL ENGINE
#include "types.h"
#define REFINE_AIM_1 0
#define REFINE_AIM_MID1 1
#define REFINE_AIM_2 2
#define REFINE_AIM_MID2 3
#define REFINE_AIM_3 4
#define REFINE_AIM_MID3 5
#define REFINE_AIM_4 6
#define REFINE_AIM_MID4 7
#define REFINE_AIM_5 8
#define REFINE_AIM_BURST -1 // SANDRO - I've changed this from 10 to -1, so when the code asks about how much we aim, it does not return this high value when we don't aim at all
// hopefully, it will not cause any troubles anywhere .. it shouldn't
#define AIM_SHOT_RANDOM 0
#define AIM_SHOT_HEAD 1
#define AIM_SHOT_TORSO 2
#define AIM_SHOT_LEGS 3
#define AIM_SHOT_GLAND 4
#define MIN_AMB_LEVEL_FOR_MERC_LIGHTS 9
#define MAXTEAMS_SP 6 // WANNE: for singleplayer
#define MAXTEAMS 11 //hayden
#define MAXMERCS MAX_NUM_SOLDIERS
//TACTICAL OVERHEAD STUFF
//#define NO_SOLDIER TOTAL_SOLDIERS // SAME AS NOBODY
//#define NOBODY NO_SOLDIER
#define NOBODY TOTAL_SOLDIERS
// TACTICAL ENGINE STATUS FLAGS
#define REALTIME 0x000000002
#define TURNBASED 0x000000004
#define IN_ENDGAME_SEQUENCE 0x000000008
#define SHOW_ALL_ITEMS 0x000000010
#define SHOW_AP_LEFT 0x000000020
#define SHOW_ALL_MERCS 0x000000040
#define TRANSLUCENCY_TYPE 0x000000080
#define GODMODE 0x000000100
#define DEMOMODE 0x000000200
#define PLAYER_TEAM_DEAD 0x000000400
#define NPC_TEAM_DEAD 0x000000800
#define DISALLOW_SIGHT 0x000001000
#define CHECK_SIGHT_AT_END_OF_ATTACK 0x000002000
#define IN_CREATURE_LAIR 0x000004000
#define HIDE_TREES 0x000008000
#define NOHIDE_REDUNDENCY 0x000010000
#define DEBUGCLIFFS 0x000020000
#define INCOMBAT 0x000040000
#define WANT_MILITIA_REINFORCEMENTS 0x000080000
#define ACTIVE 0x000100000
#define SHOW_Z_BUFFER 0x000200000
#define SLOW_ANIMATION 0x000400000
#define ENGAGED_IN_CONV 0x000800000
#define LOADING_SAVED_GAME 0x001000000
#define OUR_MERCS_AUTO_MOVE 0x002000000
#define SHOW_ALL_ROOFS 0x004000000
#define NEWLY_ENTERED_SECTOR 0x008000000
#define RED_ITEM_GLOW_ON 0x010000000
#define IGNORE_ENGAGED_IN_CONV_UI_UNLOCK 0x020000000
#define IGNORE_ALL_OBSTACLES 0x040000000
#define IN_DEIDRANNA_ENDGAME 0x080000000
#define DONE_DEIDRANNA_ENDGAME 0x100000000
#define OKBREATH 10
#define OKLIFE 15
#define CONSCIOUSNESS 10
// VIEWRANGE DEFINES
#define NORMAL_VIEW_RANGE 13
#define MIN_RANGE_FOR_BLOWNAWAY 40
// MODIFIERS FOR AP COST FOR MOVEMENT
#define RUNDIVISOR 1.8
#define WALKCOST -1
#define SWATCOST 0
#define CRAWLCOST 1
// CHRISL: AP Cost Movement modifiers when wearing a backpack
#define RUNDIVISORBPACK 1.5
#define WALKCOSTBPACK 0
#define SWATCOSTBPACK 1
#define CRAWLCOSTBPACK 2
// defines
// ######################################################
#define MAX_PATH_LIST_SIZE 30
#define NUM_SOLDIER_SHADES 48
#define NUM_SOLDIER_EFFECTSHADES 2
// TIMER DELAYS
#define DAMAGE_DISPLAY_DELAY 250
#define FADE_DELAY 150
#define FLASH_SELECTOR_DELAY 4000
#define BLINK_SELECTOR_DELAY 250
#define PTR_OURTEAM (pSoldier->bTeam == gbPlayerNum)
#define DONTLOOK 0
#define LOOK 1
#define NOLOCATE 0
#define LOCATE 1
#define DONTSETLOCATOR 0
#define SETLOCATOR 1
#define SETANDREMOVEPREVIOUSLOCATOR 2
#define SETLOCATORFAST 3
#define NOCENTERING 0
#define NOUPDATE 0
#define UPDATE 1
// ORDERS
enum
{
STATIONARY = 0, // moves max 1 sq., no matter what's going on
ONGUARD, // moves max 2 sqs. until alerted by something
CLOSEPATROL, // patrols within 5 spaces until alerted
FARPATROL, // patrols within 15 spaces
POINTPATROL, // patrols using patrolGrids
ONCALL, // helps buddies anywhere within the sector
SEEKENEMY, // not tied down to any one particular spot
RNDPTPATROL, // patrols randomly using patrolGrids
SNIPER, // snipes
MAXORDERS
};
// ATTITUDES
enum
{
DEFENSIVE = 0,
BRAVESOLO,
BRAVEAID,
CUNNINGSOLO,
CUNNINGAID,
AGGRESSIVE,
MAXATTITUDES,
ATTACKSLAYONLY // special hyperaggressive vs Slay only value for Carmen the bounty hunter
};
// alert status types
enum
{
STATUS_GREEN = 0, // everything's OK, no suspicion
STATUS_YELLOW, // he or his friend heard something
STATUS_RED, // has definite evidence of opponent
STATUS_BLACK, // currently sees an active opponent
NUM_STATUS_STATES
};
enum
{
MORALE_HOPELESS = 0,
MORALE_WORRIED,
MORALE_NORMAL,
MORALE_CONFIDENT,
MORALE_FEARLESS,
NUM_MORALE_STATES
};
// DEFINES FOR WEAPON HIT EVENT SPECIAL PARAM
#define FIRE_WEAPON_NO_SPECIAL 0
#define FIRE_WEAPON_BURST_SPECIAL 1
#define FIRE_WEAPON_HEAD_EXPLODE_SPECIAL 2
#define FIRE_WEAPON_CHEST_EXPLODE_SPECIAL 3
#define FIRE_WEAPON_LEG_FALLDOWN_SPECIAL 4
#define FIRE_WEAPON_HIT_BY_KNIFE_SPECIAL 5
#define FIRE_WEAPON_SLEEP_DART_SPECIAL 6
#define FIRE_WEAPON_BLINDED_BY_SPIT_SPECIAL 7
#define FIRE_WEAPON_TOSSED_OBJECT_SPECIAL 8
#define FIRE_WEAPON_BLINDED 9
#define FIRE_WEAPON_DEAFENED 10
#define FIRE_WEAPON_BLINDED_AND_DEAFENED 11
#define FIRE_WEAPON_BLINDED_SPECIAL 12 // Flugente: works like FIRE_WEAPON_BLINDED_BY_SPIT_SPECIAL but without the damage dependency
#define FIRE_WEAPON_VEHICLE_TRAUMA 13
#define NO_INTERRUPTS 0
#define ALLOW_INTERRUPTS 1
#define SIGHT_LOOK 0x1
//#define SIGHT_SEND 0x2 // no longer needed using LOCAL OPPLISTs
#define SIGHT_RADIO 0x4
#define SIGHT_INTERRUPT 0x8
#define SIGHT_ALL 0xF
// CHANGE THIS VALUE TO AFFECT TOTAL SIGHT RANGE
//#define STRAIGHT_RANGE gGameExternalOptions.ubStraightSightRange
// CHANGE THESE VALUES TO ADJUST VARIOUS FOV ANGLES
#define STRAIGHT_RATIO 1 //* 1.5
#define ANGLE_RATIO 0.857 //* 1.5
#define SIDE_RATIO 0.571 //* 1.5
// CJC: Changed SBEHIND_RATIO (side-behind ratio) to be 0 to make stealth attacks easier
// Changed on September 21, 1998
//#define SBEHIND_RATIO 0.142
#define SBEHIND_RATIO 0
#define BEHIND_RATIO 0
// looking distance defines
//#define BEHIND (INT8)( BEHIND_RATIO * STRAIGHT_RANGE )
//#define SBEHIND (INT8)( SBEHIND_RATIO * STRAIGHT_RANGE )
//#define SIDE (INT8)( SIDE_RATIO * STRAIGHT_RANGE )
//#define ANGLE (INT8)( ANGLE_RATIO * STRAIGHT_RANGE )
//#define STRAIGHT (INT8)( STRAIGHT_RATIO * STRAIGHT_RANGE )
// opplist value constants
#define HEARD_3_TURNS_AGO -4
#define HEARD_2_TURNS_AGO -3
#define HEARD_LAST_TURN -2
#define HEARD_THIS_TURN -1
#define NOT_HEARD_OR_SEEN 0
#define SEEN_CURRENTLY 1
#define SEEN_THIS_TURN 2
#define SEEN_LAST_TURN 3
#define SEEN_2_TURNS_AGO 4
#define SEEN_3_TURNS_AGO 5
#define OLDEST_SEEN_VALUE SEEN_3_TURNS_AGO
#define OLDEST_HEARD_VALUE HEARD_3_TURNS_AGO
#define UNDER_FIRE 2
#define UNDER_FIRE_LAST_TURN 1
#define MAX_DISTANCE_FOR_PROXIMITY_SIGHT 15
// DEFINES FOR BODY TYPE SUBSTITUTIONS
#define SUB_ANIM_BIGGUYSHOOT2 0x00000001
#define SUB_ANIM_BIGGUYTHREATENSTANCE 0x00000002
// Enumerate directions
enum WorldDirections
{
NORTH = 0,
NORTHEAST,
EAST,
SOUTHEAST,
SOUTH,
SOUTHWEST,
WEST,
NORTHWEST,
NUM_WORLD_DIRECTIONS,
DIRECTION_IRRELEVANT,
DIRECTION_EXITGRID = 255,
};
// Starting Sector
// HEADROCK HAM 3.5: Externalized.
//UINT8 startingX = 9;
//UINT8 startingY = 1;
const int startingZ = 0;
// ENUMERATION OF SOLDIER POSIITONS IN GLOBAL SOLDIER LIST
// WDS - make number of mercenaries, etc. be configurable
#define CODE_MAXIMUM_NUMBER_OF_PLAYER_MERCS 32
extern UINT8 giMAXIMUM_NUMBER_OF_PLAYER_MERCS;
#define CODE_MAXIMUM_NUMBER_OF_PLAYER_VEHICLES 6
extern UINT8 giMAXIMUM_NUMBER_OF_PLAYER_VEHICLES;
#define CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS CODE_MAXIMUM_NUMBER_OF_PLAYER_MERCS+CODE_MAXIMUM_NUMBER_OF_PLAYER_VEHICLES
extern UINT8 giMAXIMUM_NUMBER_OF_PLAYER_SLOTS;
#define CODE_MAXIMUM_NUMBER_OF_ENEMIES 64
extern UINT8 giMAXIMUM_NUMBER_OF_ENEMIES;
#define CODE_MAXIMUM_NUMBER_OF_CREATURES 40
extern UINT8 giMAXIMUM_NUMBER_OF_CREATURES;
#define CODE_MAXIMUM_NUMBER_OF_REBELS 64
extern UINT8 giMAXIMUM_NUMBER_OF_REBELS;
#define CODE_MAXIMUM_NUMBER_OF_CIVS 40
extern UINT8 giMAXIMUM_NUMBER_OF_CIVS;
// The following should be the largest from the above set of constants.
// Note: Is there any way to compute this via the preprocessor?
#define LARGEST_NUMBER_IN_ANY_GROUP 64
#define MAX_NUM_SOLDIERS (CODE_MAXIMUM_NUMBER_OF_PLAYER_MERCS+CODE_MAXIMUM_NUMBER_OF_PLAYER_VEHICLES+CODE_MAXIMUM_NUMBER_OF_ENEMIES+CODE_MAXIMUM_NUMBER_OF_CREATURES+CODE_MAXIMUM_NUMBER_OF_REBELS+CODE_MAXIMUM_NUMBER_OF_CIVS)
#define NUM_PLANNING_MERCS 8
#define TOTAL_SOLDIERS ( NUM_PLANNING_MERCS + MAX_NUM_SOLDIERS )
// If there are more than (one less the size of the field used to store IDs (currently a char)) then fail
#if TOTAL_SOLDIERS > 254
#error Too many!
#endif
#if CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS > LARGEST_NUMBER_IN_ANY_GROUP
#error _LARGEST_NUMBER_IN_ANY_GROUP is too small
#endif
#if CODE_MAXIMUM_NUMBER_OF_ENEMIES > LARGEST_NUMBER_IN_ANY_GROUP
#error _LARGEST_NUMBER_IN_ANY_GROUP is too small
#endif
#if CODE_MAXIMUM_NUMBER_OF_CREATURES > LARGEST_NUMBER_IN_ANY_GROUP
#error _LARGEST_NUMBER_IN_ANY_GROUP is too small
#endif
#if CODE_MAXIMUM_NUMBER_OF_REBELS > LARGEST_NUMBER_IN_ANY_GROUP
#error _LARGEST_NUMBER_IN_ANY_GROUP is too small
#endif
#if CODE_MAXIMUM_NUMBER_OF_CIVS > LARGEST_NUMBER_IN_ANY_GROUP
#error _LARGEST_NUMBER_IN_ANY_GROUP is too small
#endif
// DEFINE TEAMS
#define OUR_TEAM 0
#define ENEMY_TEAM 1
#define CREATURE_TEAM 2
#define MILITIA_TEAM 3
#define CIV_TEAM 4
#define LAST_TEAM LAN_TEAM_FOUR
#define PLAYER_PLAN 5
#define LAN_TEAM_ONE 6
#define LAN_TEAM_TWO 7
#define LAN_TEAM_THREE 8
#define LAN_TEAM_FOUR 9
//hayden
// boxing state
enum BoxingStates
{
NOT_BOXING = 0,
BOXING_WAITING_FOR_PLAYER,
PRE_BOXING,
BOXING,
DISQUALIFIED,
WON_ROUND,
LOST_ROUND
} ;
// PALETTE SUBSITUTION TYPES
typedef struct
{
UINT8 ubStart;
UINT8 ubEnd;
} PaletteSubRangeType;
typedef CHAR8 PaletteRepID[ 30 ];
typedef struct
{
UINT8 ubType;
PaletteRepID ID;
UINT8 ubPaletteSize;
UINT8 *r;
UINT8 *g;
UINT8 *b;
} PaletteReplacementType;
// MACROS
// This will set an animation ID
#define SET_PALETTEREP_ID( a, b ) ( strcpy( a, b ) )
// strcmp returns 0 if true!
#define COMPARE_PALETTEREP_ID( a, b ) ( strcmp( a, b ) ? FALSE : TRUE )
#endif