blobwarsAttrition/src/defs.h

221 lines
3.7 KiB
C

/*
Copyright (C) 2018 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.
*/
#ifndef REVISION
#define REVISION 0
#endif
#ifndef DATA_DIR
#define DATA_DIR ""
#endif
#define _(string) getTranslatedString(string)
#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 SAVE_FILENAME "game.save"
#define CONFIG_FILENAME "config.json"
#define SCREEN_WIDTH 1280
#define SCREEN_HEIGHT 720
#define MAX_KEYBOARD_KEYS 350
#define MAX_MOUSE_BUTTONS 6
#define FPS 60
#define LOGIC_RATE (1000.0 / FPS)
#define MAX_FONTS 64
#define NUM_TEXT_BUCKETS 64
#define TEXT_TTL (1000 * 20)
#define MAX_NAME_LENGTH 32
#define MAX_DESCRIPTION_LENGTH 512
#define MAX_LINE_LENGTH 1024
#define MAX_FILENAME_LENGTH 1024
#define NUM_TEXTURE_BUCKETS 32
#define MAP_WIDTH 200
#define MAP_HEIGHT 200
#define MAP_TILE_SIZE 64
#define MAP_TILE_AIR 0
#define MAP_TILE_WATER 1
#define MAP_TILE_SLIME 2
#define MAP_TILE_LAVA 3
#define MAP_TILE_SOLID 4
#define MAP_TILE_NON_SOLID 200
#define MAP_TILE_ANIMATED_WATER 240
#define MAP_TILE_ANIMATED_SLIME 245
#define MAP_TILE_ANIMATED_LAVA 250
#define MAP_TILE_OUTSIDE 255
#define MAP_TILE_MAX 256
#define MAX_SPRITE_FRAMES 8
#define JUMP_POWER 1
#define MAX_KEY_TYPES 12
#define ET_ENEMY 0
#define ET_KEY 1
#define ET_MIA 2
#define ET_BOB 3
#define ET_DESTRUCTABLE 4
#define ET_BOSS 5
#define EF_NONE 0
#define EF_HEART_CELL (2 << 0)
#define EF_WEIGHTLESS (2 << 1)
#define EF_BOMB_SHIELD (2 << 2)
#define EF_IMMUNE (2 << 3)
enum
{
FACING_RIGHT,
FACING_LEFT
};
enum
{
WPN_PISTOL,
WPN_PLASMA,
WPN_SPREAD,
WPN_LASER,
WPN_GRENADES,
WPN_ANY,
WPN_AIMED_PISTOL,
WPN_MACHINE_GUN,
WPN_SHOTGUN,
WPN_MISSILE
};
enum
{
ALIVE_ALIVE
};
enum
{
CONTROL_LEFT,
CONTROL_RIGHT,
CONTROL_UP,
CONTROL_DOWN,
CONTROL_FIRE,
CONTROL_JUMP,
CONTROL_JETPACK,
CONTROL_SCREENSHOT,
CONTROL_MAX
};
enum
{
TA_LEFT,
TA_RIGHT,
TA_CENTER
};
enum
{
MS_INCOMPLETE,
MS_PARTIAL,
MS_MISSING_HEART_CELL,
MS_COMPLETE
};
enum
{
PLANE_BACKGROUND,
PLANE_FOREGROUND
};
enum
{
PT_LINE,
PT_POINT,
PT_TEXTURED
};
enum
{
MSG_STANDARD,
MSG_GAMEPLAY,
MSG_PROGRESS,
MSG_OBJECTIVE
};
enum
{
SND_SELECT,
SND_BACK,
SND_PISTOL,
SND_MACHINE_GUN,
SND_PLASMA,
SND_THROW,
SND_SPREAD,
SND_SHOTGUN,
SND_LASER,
SND_MISSILE,
SND_RICO_1,
SND_RICO_2,
SND_GRENADE_BOUNCE,
SND_EXPLOSION,
SND_FLESH_HIT,
SND_METAL_HIT,
SND_DEATH_1,
SND_DEATH_2,
SND_DEATH_3,
SND_SPLAT,
SND_DROID_DIE_1,
SND_DROID_DIE_2,
SND_PRESSURE_PLATE,
SND_DOOR_START,
SND_DOOR_FINISH,
SND_CHERRY,
SND_ITEM,
SND_KEY,
SND_WEAPON,
SND_TELEPORT,
SND_APPEAR,
SND_MIA,
SND_WATER_IN,
SND_WATER_OUT,
SND_SLIME,
SND_DROWN,
SND_DENIED,
SND_CONFIRMED,
SND_MISSION_COMPLETE,
SND_HEART_CELL,
SND_MAX
};
enum
{
CH_PLAYER,
CH_EXPLODE,
CH_WEAPON,
CH_MAX
};