Lephisto/src/player.h

80 lines
2.5 KiB
C

#pragma once
#include "pilot.h"
/* Flag definitions. */
#define PLAYER_TURN_LEFT (1<<0) /* Player is turning left. */
#define PLAYER_TURN_RIGHT (1<<1) /* Player is turning right. */
#define PLAYER_REVERSE (1<<2) /* Player is facint opposite vel. */
#define PLAYER_AFTERBURNER (1<<3) /* Player is burning it up. */
#define PLAYER_DESTROYED (1<<9) /* Player goes BOOM! */
#define PLAYER_FACE (1<<10) /* Player is facing target. */
#define PLAYER_PRIMARY (1<<11) /* Player is shooting primary weapon. */
#define PLAYER_SECONDARY (1<<12) /* Player is shooting secondary weapon. */
#define PLAYER_LANDACK (1<<13) /* Player has permission to land. */
#define PLAYER_CREATING (1<<14) /* Player is being created. */
/* Flag functions. */
#define player_isFlag(f) (player_flags & f)
#define player_setFlag(f) if(!player_isFlag(f)) (player_flags |= f)
#define player_rmFlag(f) if(player_isFlag(f)) (player_flags ^= f)
/* The player. */
extern Pilot* pilot;
extern char* player_name;
extern unsigned int player_flags;
extern int combat_crating;
/* Enums. */
/* For render functions. */
typedef enum RadarShape_ { RADAR_RECT, RADAR_CIRCLE } RadarShape;
/* Creation/Cleanup. */
void player_new(void);
void player_newShip(Ship* ship, double px, double py,
double vx, double vy, double dir);
void player_cleanup(void);
int gui_load(const char* name);
/* Render. */
int gui_init(void);
void gui_free(void);
void player_render(void);
void player_renderBG(void); /* Render BG layer. */
/* Misc. */
void player_message(const char* fmt, ...);
void player_clear(void);
void player_warp(const double x, const double y);
const char* player_rating(void);
/* Cargo. */
int player_outfitOwned(const char* outfitname);
int player_cargoOwned(const char* commodityname);
void player_rmMissionCargo(unsigned int cargo_id);
/* Pilot ships. */
char** player_ships(int* nships);
int player_nships(void);
Pilot* player_getShip(char* shipname);
char* player_getLoc(char* shipname);
void player_setLoc(char* shipname, char* loc);
void player_swapShip(char* shipname);
/* Player missions. */
void player_missionFinished(int id);
int player_missionAlreadyDone(int id);
/* Keybind actions. */
void player_setRadarRel(int mod);
void player_secondaryNext(void);
void player_targetPlanet(void);
void player_land(void);
void player_targetHyperspace(void);
void player_jump(void);
void player_screenshot(void);
void player_afterburn(void);
void player_afterburnOver(void);
void player_accel(double acc);
void player_accelOver(void);