etqw-sdk/source/game/botai/Bot_Common.h

253 lines
5.9 KiB
C

// Copyright (C) 2007 Id Software, Inc.
//
#ifndef __BOT_COMMON_H__
#define __BOT_COMMON_H__
enum playerWeaponTypes_t { //mal: keep adding more as we support them!
NULL_WEAP = -1,
KNIFE, // knife and spikes
PISTOL, // blaster/pistol
SMG, // assault rifle and lacerator
GRENADE, // shrap grenade of either team
EMP, // emp grenade of either team
ROCKET, // rocket launcher
HEAVY_MG, // heavy mg/ hyper blaster
HEALTH, // health packs
NEEDLE, // defib/stroy tool
BINOCS, // normal binoculars - NOT deploy tools!
AIRCAN, // violator/airstrike marker
SHOTGUN, // shotgun, nailgun
PLIERS, // tool for fixing stuff
SCOPED_SMG, // covert's SMG
NADE_SMG, // eng's SMG
SNIPERRIFLE, // sniper rifle/railgun
HE_CHARGE, // he and plasma charge
LANDMINE, // landmine
HACK_TOOL, // hack tool for covertops
AMMO_PACK, // just what it says.
SMOKE_NADE, // GDF smoke grenades
DEPLOY_TOOL, // Eng/FOps/Covert deploy tool
SHIELD_GUN, // Strogg Force Shield weapon
TELEPORTER, // Strogg Covert teleport weapon
FLYER_HIVE, // Strogg Covert Flyer Hive
SUPPLY_MARKER, // GDF Supply Marker
THIRD_EYE, // GDF Covert 3rd Eye camera.
PARACHUTE // GDF and STROGG have this when spawning in.
};
enum playerVehicleTypes_t { //mal: keep adding more as we support them!
NULL_VEHICLE = -1,
HUSKY,
BADGER,
TITAN,
HOG,
GOLIATH,
DESECRATOR,
MCP,
//mal: the 2 below are the only water vehicles
PLATYPUS,
TROJAN,
//mal: from here on out, is nothing but flying vehicles. We check in the code if the vehicle type is >= to icarus to find out if vehicle flys.
ICARUS,
ANANSI,
HORNET,
BUFFALO
};
#define TURRET_ANGLE_RANGE 135
#define NULL_DEPLOYABLE 0
#define ARTILLERY 1
#define ROCKET_ARTILLERY 2
#define NUKE 4 //mal: the BIG guns like the Hammer and DMC
#define APT 8
#define AVT 16
#define RADAR 32
#define AIT 64
//mal: vehicles can have multiple flags ( ex: icarus can be a personal vehicle, as well as an air one, trojan can be a big ground, and a water ).
#define NO_VEHICLE -1
#define NULL_VEHICLE_FLAGS 0
#define PERSONAL 1
#define GROUND 2
#define ARMOR 4
#define AIR 8
#define WATER 16
#define AIR_TRANSPORT 32 //buffalo only atm.
#define GROUND_TRANSPORT 64 //trojan only atm.
#define ALL_VEHICLES_BUT_ICARUS 126
#define MAX_VEHICLE_RANGE 2500.0f
#define HUNT_MAX_VEHICLE_RANGE 3000.0f
#define BOT_SKILL_EASY 0
#define BOT_SKILL_NORMAL 1
#define BOT_SKILL_EXPERT 2
#define BOT_SKILL_DEMO 3
#define LOW_SKILL_BOT_HEALTH 60
#define MISSION_NULL -1
#define MISSION_OBJ -2
enum playerTeamTypes_t {
NOTEAM = -1, // spectator
GDF,
STROGG
};
enum moveDirections_t {
NULL_DIR = -1,
FORWARD,
BACK,
RIGHT,
LEFT
};
enum playerClassTypes_t { //mal: we dont care about the strogg, since the classes are pretty much a 1 to 1 match
NOCLASS = -1,
MEDIC,
SOLDIER,
ENGINEER,
FIELDOPS,
COVERTOPS,
MAX_BOT_TEAMS
};
enum botGoalTypes_t {
NULL_GOAL_TYPE = -1,
REVIVE_SOMEONE, //0
HEAL_SOMEONE, //1
PLANT_MINES, //2
GRAB_FORWARD_SPAWN, //3
DO_OBJECTIVE, //4
REPAIR_VEHICLE, //5
REPAIR_DEPLOYABLE, //6
DESTROY_VEHICLE, //7
GO_DESTROY_DEPLOYABLE, //8
GO_DEPLOY_DEPLOYABLE, //9
KILL_PLAYER, //10
DEFEND_AREA, //11
GO_HACK_DEPLOYABLE, //12
CONTRUCT_TOWER, //13
SUPPLY_AMMO, //14
SEND_FIRESUPPORT, //15
REPAIR_MCP_GOAL, //16
CAPTURE_FORWARD_SPAWN, //17
LIBERATE_FORWARD_SPAWN, //18
LIBERATE_FORWARD_SPAWN_COVERTOPS, //19
RETURN_CARRYABLE, //20
GRAB_CARRYABLE, //21
DELIVER_CARRYABLE, //22
SPAWNHOST_BODY, //23
DESTROY_STROGG_SPAWNHOST, //24
CONSTRUCT_MG_NEST, //25
GO_DEPLOY_RADAR, //26
GO_HACK_SHIELD, //27
GO_DEPLOY_FIRESUPPORT, //28
ATTACK_MCP //29
};
enum botMoveFlags_t {
NULLMOVEFLAG = -1,
PRONE,
CROUCH,
WALK,
RANDOM_STANCE, //mal: with a random stance, could decide to randomly stand or crouch.
RUN,
REVERSE, //mal: move backwards to this location - used for vehicles.
SPRINT,
SPRINT_ATTACK, //mal: this is a vehicle based sprint - where we use it to attack, instead of just to get somewhere fast ( less safety precautions ).
STRAFEJUMP,
JUMP_MOVE //mal: only used by the flyer hives for now
};
enum dangerTypes_t { //mal: we also use this to track entity types in the botThread
NULL_DANGER,
HAND_GRENADE,
PLANTED_CHARGE,
THROWN_AIRSTRIKE,
PLANTED_LANDMINE,
INGAME_PLAYER,
INGAME_VEHICLE,
THIRD_EYE_CAM,
STROGG_HIVE,
ANTI_PERSONAL,
ANTI_VEHICLE,
ARTY_DANGER,
STROY_BOMB_DANGER
};
enum botPostureFlags_t {
IS_PRONE,
IS_CROUCHED,
IS_STANDING
};
enum botChatTypes_t {
//NOTE: for many of these, there is more then 1 chat that works, so we'll randomly pick one for variety.
NULL_CHAT,
HEAL_ME,
REVIVE_ME,
COVER_ME,
FOLLOW_ME,
ENEMY_DISGUISED,
NEED_BACKUP,
YES,
NO,
HOLDFIRE,
ONOFFENSE,
ONDEFENSE,
THANKS,
MY_CLASS,
YOURWELCOME,
IMAMEDIC,
MOVE,
REARM_ME,
KILLED_TAUNT,
WARMUP_TAUNT,
GENERAL_TAUNT,
SUPPLIES_DROPPED,
MEDPACK_DROPPED,
AMMO_ACK,
IM_DISGUISED,
ENEMY_DISGUISED_AS_ME,
REPLY_TAUNT,
ACKNOWLEDGE_YES,
ACKNOWLEDGE_NO,
MEDIC_ACK,
LETS_GO,
GENERIC_PLANT,
GENERIC_BUILD,
GENERIC_HACK,
INCOMING_INFANTRY,
INCOMING_VEHICLE,
INCOMING_AIRCRAFT,
MINES_SPOTTED,
HOLD_VEHICLE,
NEED_LIFT,
HELLO,
ENDGAME_WIN,
ENDGAME_LOSE,
SORRY,
NEED_ESCORT,
CMD_DECLINED,
NEED_REPAIR,
TAKE_SPAWN,
CONTEXT_NEED_RIDE,
CONTEXT_KILL_TARGET,
CONTEXT_REPAIR_TARGET,
CONTEXT_DO_OBJECTIVE,
TK_REVIVE_CHAT,
WILL_FIX_RIDE,
STOP_WILL_FIX_RIDE,
MOVE_OUT,
GOT_YOUR_BACK,
GLOBAL_SORRY
};
#endif /* !__BOT_COMMON_H__ */