2015-10-20 13:51:49 +02:00
|
|
|
/*
|
|
|
|
Copyright (C) 2015 Parallel Realities
|
|
|
|
|
|
|
|
This program is free software; you can redistribute it and/or
|
|
|
|
modify it under the terms of the GNU General Public License
|
|
|
|
as published by the Free Software Foundation; either version 2
|
|
|
|
of the License, or (at your option) any later version.
|
|
|
|
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
|
|
|
|
See the GNU General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
|
|
along with this program; if not, write to the Free Software
|
|
|
|
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
2015-11-14 15:45:19 +01:00
|
|
|
#ifndef REVISION
|
|
|
|
#define REVISION 0
|
|
|
|
#endif
|
|
|
|
|
2015-12-03 00:20:19 +01:00
|
|
|
#ifndef DATA_DIR
|
|
|
|
#define DATA_DIR ""
|
|
|
|
#endif
|
|
|
|
|
2015-10-20 13:51:49 +02:00
|
|
|
#define PI 3.14159265358979323846
|
|
|
|
#define MIN(a,b) (((a)<(b))?(a):(b))
|
|
|
|
#define MAX(a,b) (((a)>(b))?(a):(b))
|
|
|
|
#define STRNCPY(dest, src, n) strncpy(dest, src, n); dest[n - 1] = '\0'
|
|
|
|
#define TO_RAIDANS(angleDegrees) (angleDegrees * PI / 180.0)
|
|
|
|
#define TO_DEGREES(angleRadians) (angleRadians * 180.0 / PI)
|
|
|
|
|
|
|
|
#define SCREEN_WIDTH 1280
|
|
|
|
#define SCREEN_HEIGHT 720
|
|
|
|
|
|
|
|
#define MAX_KEYBOARD_KEYS 350
|
2015-11-23 15:52:11 +01:00
|
|
|
#define MAX_MOUSE_BUTTONS 8
|
2015-10-20 13:51:49 +02:00
|
|
|
|
2015-11-22 14:19:35 +01:00
|
|
|
#define FPS 60
|
|
|
|
#define LOGIC_RATE (1000 / FPS)
|
2015-10-20 13:51:49 +02:00
|
|
|
|
|
|
|
#define MAX_NAME_LENGTH 32
|
|
|
|
#define MAX_DESCRIPTION_LENGTH 512
|
|
|
|
#define MAX_FILENAME_LENGTH 1024
|
|
|
|
|
|
|
|
#define NUM_TEXTURE_BUCKETS 32
|
|
|
|
|
|
|
|
#define MAX_STARS 500
|
|
|
|
|
|
|
|
#define MAX_FONTS 32
|
|
|
|
#define NUM_TEXT_BUCKETS 64
|
|
|
|
|
|
|
|
#define MAX_FIGHTER_GUNS 12
|
2015-11-01 11:46:24 +01:00
|
|
|
#define MAX_TARGET_RANGE 65536
|
2015-10-20 13:51:49 +02:00
|
|
|
|
2015-11-01 23:19:39 +01:00
|
|
|
#define GRID_CELL_WIDTH 640
|
|
|
|
#define GRID_CELL_HEIGHT 360
|
2015-11-02 08:57:45 +01:00
|
|
|
#define GRID_SIZE 50
|
2015-11-11 20:16:04 +01:00
|
|
|
#define MAX_GRID_CANDIDATES 256
|
2015-11-02 19:07:26 +01:00
|
|
|
#define GRID_RESTRICTION_SIZE 250
|
2015-11-01 23:19:39 +01:00
|
|
|
|
2015-10-21 20:21:45 +02:00
|
|
|
#define BF_NONE 0
|
|
|
|
#define BF_ENGINE (2 << 0)
|
|
|
|
#define BF_SYSTEM_DAMAGE (2 << 1)
|
2015-11-18 17:02:10 +01:00
|
|
|
#define BF_SHIELD_DAMAGE (2 << 2)
|
|
|
|
#define BF_EXPLODES (2 << 3)
|
2015-10-20 13:51:49 +02:00
|
|
|
|
2015-10-26 20:16:12 +01:00
|
|
|
#define EF_NONE 0
|
|
|
|
#define EF_NO_KILL (2 << 0)
|
2015-11-14 17:14:48 +01:00
|
|
|
#define EF_DISABLED (2 << 1)
|
2015-10-26 20:16:12 +01:00
|
|
|
#define EF_IMMORTAL (2 << 2)
|
|
|
|
#define EF_MISSION_TARGET (2 << 3)
|
2015-11-18 12:27:05 +01:00
|
|
|
#define EF_NO_MT_BOX (2 << 4)
|
|
|
|
#define EF_HAS_ROPE (2 << 5)
|
|
|
|
#define EF_COLLECTS_ITEMS (2 << 6)
|
|
|
|
#define EF_MUST_DISABLE (2 << 7)
|
2015-11-21 18:32:39 +01:00
|
|
|
#define EF_RETREATING (2 << 8)
|
2015-11-20 23:51:44 +01:00
|
|
|
#define EF_NO_EPIC (2 << 9)
|
2015-11-29 14:23:01 +01:00
|
|
|
#define EF_STATIC (2 << 10)
|
2015-12-07 20:19:14 +01:00
|
|
|
#define EF_TAKES_DAMAGE (2 << 11)
|
2015-12-10 13:40:23 +01:00
|
|
|
#define EF_SECONDARY_TARGET (2 << 12)
|
2015-12-12 18:12:25 +01:00
|
|
|
#define EF_AI_TARGET (2 << 13)
|
|
|
|
#define EF_AI_LEADER (2 << 14)
|
2015-11-18 12:27:05 +01:00
|
|
|
|
|
|
|
#define AIF_NONE 0
|
|
|
|
#define AIF_FOLLOWS_PLAYER (2 << 0)
|
2015-11-28 15:33:05 +01:00
|
|
|
#define AIF_MOVES_TO_PLAYER (2 << 1)
|
|
|
|
#define AIF_UNLIMITED_RANGE (2 << 2)
|
|
|
|
#define AIF_COLLECTS_ITEMS (2 << 3)
|
|
|
|
#define AIF_TOWS (2 << 4)
|
|
|
|
#define AIF_RETREATS (2 << 5)
|
|
|
|
#define AIF_GOAL_EXTRACTION (2 << 6)
|
|
|
|
#define AIF_AVOIDS_COMBAT (2 << 7)
|
|
|
|
#define AIF_DEFENSIVE (2 << 8)
|
|
|
|
#define AIF_MISSILE_BOAT (2 << 9)
|
2015-11-30 12:29:56 +01:00
|
|
|
#define AIF_AGGRESSIVE (2 << 10)
|
|
|
|
#define AIF_INSTANT_DIE (2 << 11)
|
2015-12-08 23:42:31 +01:00
|
|
|
#define AIF_LONG_RANGE_FIRE (2 << 12)
|
2015-10-23 23:44:39 +02:00
|
|
|
|
2015-11-15 17:18:17 +01:00
|
|
|
/* player abilities */
|
2015-11-16 00:23:03 +01:00
|
|
|
#define BOOST_RECHARGE_TIME (FPS * 7)
|
2015-11-15 18:12:04 +01:00
|
|
|
#define BOOST_FINISHED_TIME (FPS * 0.75)
|
2015-11-16 00:23:03 +01:00
|
|
|
#define ECM_RECHARGE_TIME (FPS * 7)
|
2015-11-15 17:18:17 +01:00
|
|
|
|
2015-10-26 18:27:43 +01:00
|
|
|
enum
|
|
|
|
{
|
2015-10-26 20:16:12 +01:00
|
|
|
ET_FIGHTER,
|
2015-11-16 13:31:50 +01:00
|
|
|
ET_ITEM,
|
2015-11-09 23:46:57 +01:00
|
|
|
ET_WAYPOINT,
|
2015-12-07 20:19:14 +01:00
|
|
|
ET_EXTRACTION_POINT,
|
|
|
|
ET_CAPITAL_SHIP_COMPONENT,
|
|
|
|
ET_CAPITAL_SHIP_GUN,
|
2015-12-10 12:11:04 +01:00
|
|
|
ET_CAPITAL_SHIP_ENGINE,
|
2015-12-07 20:19:14 +01:00
|
|
|
ET_CAPITAL_SHIP
|
2015-10-26 18:27:43 +01:00
|
|
|
};
|
|
|
|
|
2015-10-20 13:51:49 +02:00
|
|
|
enum
|
|
|
|
{
|
|
|
|
TA_LEFT,
|
|
|
|
TA_RIGHT,
|
|
|
|
TA_CENTER
|
|
|
|
};
|
|
|
|
|
|
|
|
enum
|
|
|
|
{
|
|
|
|
ALIVE_ALIVE,
|
|
|
|
ALIVE_DYING,
|
2015-11-11 23:33:33 +01:00
|
|
|
ALIVE_DEAD,
|
|
|
|
ALIVE_ESCAPED
|
2015-10-20 13:51:49 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
enum
|
|
|
|
{
|
|
|
|
SIDE_NONE,
|
|
|
|
SIDE_ALLIES,
|
2015-11-17 08:23:50 +01:00
|
|
|
SIDE_REBEL,
|
2015-10-20 13:51:49 +02:00
|
|
|
SIDE_PANDORAN,
|
|
|
|
SIDE_PIRATE,
|
|
|
|
SIDE_CSN,
|
|
|
|
SIDE_INF,
|
2015-11-01 10:25:10 +01:00
|
|
|
SIDE_UNF,
|
|
|
|
SIDE_MAX
|
2015-10-20 13:51:49 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
enum
|
|
|
|
{
|
|
|
|
BT_NONE,
|
|
|
|
BT_PARTICLE,
|
|
|
|
BT_PLASMA,
|
|
|
|
BT_LASER,
|
|
|
|
BT_MAG,
|
|
|
|
BT_ROCKET,
|
|
|
|
BT_MISSILE,
|
|
|
|
BT_FF,
|
|
|
|
BT_MAX
|
|
|
|
};
|
|
|
|
|
|
|
|
enum
|
|
|
|
{
|
|
|
|
EFFECT_LINE,
|
|
|
|
EFFECT_TEXTURE,
|
2015-11-29 09:34:25 +01:00
|
|
|
EFFECT_HALO,
|
|
|
|
EFFECT_ECM
|
2015-10-20 13:51:49 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
enum
|
|
|
|
{
|
|
|
|
SND_PARTICLE,
|
|
|
|
SND_PLASMA,
|
2015-11-18 17:02:10 +01:00
|
|
|
SND_LASER,
|
2015-10-20 13:51:49 +02:00
|
|
|
SND_MAG,
|
|
|
|
SND_ARMOUR_HIT,
|
|
|
|
SND_SHIELD_HIT,
|
2015-11-18 17:02:10 +01:00
|
|
|
SND_SHIELD_BREAK,
|
2015-10-20 13:51:49 +02:00
|
|
|
SND_EXPLOSION_1,
|
|
|
|
SND_EXPLOSION_2,
|
|
|
|
SND_EXPLOSION_3,
|
|
|
|
SND_EXPLOSION_4,
|
2015-11-16 13:31:50 +01:00
|
|
|
SND_GET_ITEM,
|
2015-10-24 15:52:55 +02:00
|
|
|
SND_MISSILE,
|
2015-11-16 19:39:49 +01:00
|
|
|
SND_INCOMING,
|
2015-11-15 18:12:04 +01:00
|
|
|
SND_BOOST,
|
2015-11-29 13:55:36 +01:00
|
|
|
SND_RADIO,
|
2015-10-20 13:51:49 +02:00
|
|
|
SND_GUI_CLICK,
|
|
|
|
SND_GUI_SELECT,
|
|
|
|
SND_GUI_CLOSE,
|
|
|
|
SND_GUI_DENIED,
|
|
|
|
SND_MAX
|
|
|
|
};
|
|
|
|
|
|
|
|
enum
|
|
|
|
{
|
|
|
|
OS_INCOMPLETE,
|
|
|
|
OS_COMPLETE,
|
|
|
|
OS_FAILED,
|
2015-10-21 20:21:45 +02:00
|
|
|
OS_CONDITION
|
2015-10-20 13:51:49 +02:00
|
|
|
};
|
|
|
|
|
2015-10-22 08:08:03 +02:00
|
|
|
enum
|
|
|
|
{
|
|
|
|
TT_DESTROY,
|
2015-10-28 20:12:58 +01:00
|
|
|
TT_DISABLE,
|
2015-11-11 23:33:33 +01:00
|
|
|
TT_WAYPOINT,
|
2015-11-16 13:31:50 +01:00
|
|
|
TT_ESCAPED,
|
2015-11-20 23:51:44 +01:00
|
|
|
TT_PLAYER_ESCAPED,
|
2015-11-16 13:31:50 +01:00
|
|
|
TT_ITEM
|
2015-10-22 08:08:03 +02:00
|
|
|
};
|
|
|
|
|
2015-10-20 13:51:49 +02:00
|
|
|
enum
|
|
|
|
{
|
|
|
|
MS_START,
|
|
|
|
MS_IN_PROGRESS,
|
|
|
|
MS_PAUSED,
|
|
|
|
MS_COMPLETE,
|
|
|
|
MS_FAILED
|
|
|
|
};
|
|
|
|
|
2015-10-23 23:44:39 +02:00
|
|
|
enum
|
|
|
|
{
|
2015-10-20 13:51:49 +02:00
|
|
|
WT_BUTTON,
|
2015-11-26 09:16:29 +01:00
|
|
|
WT_IMG_BUTTON,
|
|
|
|
WT_SELECT,
|
|
|
|
WT_SELECT_BUTTON
|
2015-10-20 13:51:49 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
enum
|
|
|
|
{
|
|
|
|
CHALLENGE_ARMOUR,
|
|
|
|
CHALLENGE_TIME,
|
|
|
|
CHALLENGE_ACCURACY,
|
|
|
|
CHALLENGE_NO_LOSSES,
|
|
|
|
CHALLENGE_1_LOSS,
|
|
|
|
CHALLENGE_LOSSES,
|
2015-10-24 17:00:06 +02:00
|
|
|
CHALLENGE_PLAYER_KILLS,
|
|
|
|
CHALLENGE_DISABLE,
|
|
|
|
CHALLENGE_TIME_MINS
|
2015-10-20 13:51:49 +02:00
|
|
|
};
|
2015-10-25 01:01:46 +02:00
|
|
|
|
|
|
|
enum
|
|
|
|
{
|
|
|
|
STAT_MISSIONS_STARTED,
|
|
|
|
STAT_MISSIONS_COMPLETED,
|
|
|
|
STAT_SHOTS_FIRED,
|
|
|
|
STAT_SHOTS_HIT,
|
|
|
|
STAT_MISSILES_FIRED,
|
|
|
|
STAT_MISSILES_HIT,
|
|
|
|
STAT_ENEMIES_KILLED,
|
|
|
|
STAT_ENEMIES_KILLED_PLAYER,
|
|
|
|
STAT_ALLIES_KILLED,
|
|
|
|
STAT_PLAYER_KILLED,
|
2015-11-17 08:23:50 +01:00
|
|
|
STAT_ENEMIES_DISABLED,
|
2015-10-29 17:18:41 +01:00
|
|
|
STAT_ENEMIES_ESCAPED,
|
2015-11-17 08:23:50 +01:00
|
|
|
STAT_ECM,
|
|
|
|
STAT_BOOST,
|
|
|
|
STAT_MISSILES_EVADED,
|
|
|
|
STAT_MISSILES_STRUCK,
|
|
|
|
STAT_CIVILIANS_RESCUED,
|
|
|
|
STAT_CIVILIANS_KILLED,
|
|
|
|
STAT_TUG,
|
|
|
|
STAT_SHUTTLE,
|
|
|
|
STAT_NUM_TOWED,
|
|
|
|
STAT_ITEMS_COLLECTED,
|
|
|
|
STAT_EPIC_KILL_STREAK,
|
|
|
|
/* add stats before here, so as not to mess up the stats screen */
|
2015-10-25 01:01:46 +02:00
|
|
|
STAT_TIME,
|
|
|
|
STAT_MAX
|
|
|
|
};
|