You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

183 lines
2.9 KiB

#ifndef __BETACORE_GAME_HPP__
#define __BETACORE_GAME_HPP__
#ifdef _WIN32
#define SDL_MAIN_HANDLED
#include <Windows.h>
#include <GLU.h>
#include <GL/gl.h>
#elif linux
#include <GL/glu.h>
#endif
#include <SDL2/SDL.h>
#include <SDL2/SDL_opengl.h>
#include <stdio.h>
#include <string.h>
#include <string>
#include <math.h>
#define PI 3.14159265359
#include "common.hpp"
#include "client.hpp"
namespace betacore
{
class Game
{
private:
SDL_Window *WINDOW = NULL;
SDL_GLContext glContext;
const int SCREEN_WIDTH = 800;
const int SCREEN_HEIGHT = 600;
int MONITOR_WIDTH = 1920;
int MONITOR_HEIGHT = 1080;
const char *TITLE;
bool KEEP_ALIVE = true;
bool SHOW_GRID = false;
SHAPE USER_CURRENT = NONE;
SHAPE GUST_CURRENT = NONE;
MODE ME;
bool KEY_UP_ARROW_ACTIVE = false;
bool KEY_DOWN_ARROW_ACTIVE = false;
bool KEY_LEFT_ARROW_ACTIVE = false;
bool KEY_RIGHT_ARROW_ACTIVE = false;
bool KEY_SPACE_ACTIVE = false;
bool KEY_RETURN_ACTIVE = false;
bool FULL_SCREEN = false;
Client *client = nullptr;
public:
Game(MODE mode,
int port,
std::string url);
~Game();
int init();
int initGL();
/**
* Draws box for use with guest \ current screens
*/
void box();
/**
* Close the application
*/
void close();
/*
* Draw a grid on the screen (G key)
*/
void grid();
/*
* Paint the gl context
*/
void paint();
/*
* SDL Context
*/
void events(SDL_Event &event);
/*
* On key down events
*/
void key_down(SDL_Keycode key_code);
/*
* On key up events
*/
void key_up(SDL_Keycode key_code);
/*
* Resize the window to width : height
*/
void resize(int width, int height);
/**
* Draw a filled triange
*/
void triangle();
/*
* Draw a filled or wireframe triangle
*/
void triangle(bool filled);
/*
* Draw a filled or wireframe square
*/
void square();
/*
* Draw a filled or wireframe square
*/
void square(bool filled);
/*
* Draw a filled or wireframe circle
*/
void circle();
/*
* Draw a filled or wireframe circle
*/
void circle(bool filled);
/*
* Draw a filled or wireframe pentagon
*/
void pentagon();
/*
* Draw a filled or wireframe pentagon
*/
void pentagon(bool filled);
/*
* Draw a wireframe rectangle
*/
void rectangle();
/*
* Draw a filled or wireframe cross
*/
void cross(bool filled);
/*
* Draw the key pad compass
*/
void compass();
/*
* Event call for up
*/
void on_key_up_arrow();
/*
* Event call for down
*/
void on_key_down_arrow();
/*
* Event call for left
*/
void on_key_left_arrow();
/*
* Event call for right
*/
void on_key_right_arrow();
/*
* Event call for space
*/
void on_key_space();
/*
* Event call for enter
*/
void on_key_enter();
void top_screen();
/*
* Draw user screen
*/
void user_screen();
/*
* Draw guest screen
*/
void guest_screen();
/*
* On update from network
*/
void update(SHAPE &s, MODE &m);
};
} // namespace betacore
#endif