#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); // 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);