Lephisto/src/player.h

48 lines
1.3 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_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.
// Flag functions.
#define player_isFlag(f) (player_flags & f)
#define player_setFlag(f) (player_flags |= f)
#define player_rmFlag(f) (player_flags ^= f)
// The player.
extern Pilot* pilot;
extern unsigned int player_flags;
extern unsigned int credits;
typedef enum { RADAR_RECT, RADAR_CIRCLE } RadarShape; // For render functions.
// Creation.
void player_new(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);
// Keybind actions.
void player_setRadarRel(int mod);
void player_board(void);
void player_secondaryNext(void);
void player_targetPlanet(void);
void player_land(void);
void player_targetHyperspace(void);
void player_jump(void);
void player_screenshot(void);