diff options
Diffstat (limited to 'src/GameInitDispose.cpp')
-rw-r--r-- | src/GameInitDispose.cpp | 106 |
1 files changed, 42 insertions, 64 deletions
diff --git a/src/GameInitDispose.cpp b/src/GameInitDispose.cpp index b208df5..7599837 100644 --- a/src/GameInitDispose.cpp +++ b/src/GameInitDispose.cpp @@ -21,6 +21,7 @@ // along with Black Shades. If not, see <https://www.gnu.org/licenses/>. #include <AL/alc.h> +#include <GLFW/glfw3.h> #include "config.h" #include "Textures.h" @@ -61,9 +62,10 @@ extern int psychickey; Game* makeGame(Config config) { auto game = new Game(); - game->screenwidth = config.screen_width; - game->screenheight = config.screen_height; + game->screenwidth = config.width; + game->screenheight = config.height; game->usermousesensitivity = config.mouse_sensitivity; + game->mousesensitivity = game->usermousesensitivity; game->debug = config.debug; game->vblsync = config.vsync; blood = config.blood; @@ -72,6 +74,27 @@ Game* makeGame(Config config) game->customlevels = config.custom_levels; game->musictoggle = config.music; game->azertykeyboard = config.azerty; + + if (!game->initialized) { + // TODO: Read high score + ifstream ipstream2 {"highscore.txt"}; + if (!ipstream2) { + ofstream opstream("highscore.txt"); + opstream << (game->highscore = 0) << endl; + opstream << (game->beatgame = 0) << endl; + opstream.close(); + } else { + ipstream2 >> game->highscore; + ipstream2.ignore(256,'\n'); + ipstream2 >> game->beatgame; + ipstream2.close(); + } + + game->sps = 40; + game->maxfps = 90; + game->disttest = true; + game->cubetest = true; + } return game; } @@ -370,7 +393,7 @@ void Game::LoadingScreen(float percent) static char string[256]=""; sprintf (string, "LOADING..."); text.glPrint(280,195,string,1,1,640,480); - SDL_GL_SwapBuffers( ); + glfwSwapBuffers(glfwGetCurrentContext()); } void LoadPersonSpriteTexture(char *fileName, GLuint *textureid) @@ -658,25 +681,24 @@ void initGame(Game* game) if (!game->initialized) { if (game->azertykeyboard) { - forwardskey = MAC_Z_KEY; - backwardskey = MAC_S_KEY; - leftkey = MAC_Q_KEY; - rightkey = MAC_D_KEY; - aimkey = MAC_A_KEY; - psychicaimkey = MAC_E_KEY; - psychickey = MAC_W_KEY; + forwardskey = GLFW_KEY_Z; + backwardskey = GLFW_KEY_S; + leftkey = GLFW_KEY_Q; + rightkey = GLFW_KEY_D; + aimkey = GLFW_KEY_A; + psychicaimkey = GLFW_KEY_E; + psychickey = GLFW_KEY_W; } else { - forwardskey = MAC_W_KEY; - backwardskey = MAC_S_KEY; - leftkey = MAC_A_KEY; - rightkey = MAC_D_KEY; - aimkey = MAC_Q_KEY; - psychicaimkey = MAC_E_KEY; - psychickey = MAC_Z_KEY; + forwardskey = GLFW_KEY_W; + backwardskey = GLFW_KEY_S; + leftkey = GLFW_KEY_A; + rightkey = GLFW_KEY_D; + aimkey = GLFW_KEY_Q; + psychicaimkey = GLFW_KEY_E; + psychickey = GLFW_KEY_Z; } soundscalefactor=soundscalefactordefault; //Setup sound falloff - game->gQuit = false; // Sounds LoadSounds(game->musictoggle); @@ -1787,61 +1809,17 @@ void initGame(Game* game) decals.howmanydecals=0; sprites.howmanysprites=0; game->losedelay = 1; + game->framespersecond = 60.0f; } void initGl(Game* game) { - // Config - game->mousesensitivity = 1.0f; - if (!game->initialized) { - // TODO: Read high score - ifstream ipstream2 {"highscore.txt"}; - if (!ipstream2) { - ofstream opstream("highscore.txt"); - opstream << (game->highscore = 0) << endl; - opstream << (game->beatgame = 0) << endl; - opstream.close(); - } else { - ipstream2 >> game->highscore; - ipstream2.ignore(256,'\n'); - ipstream2 >> game->beatgame; - ipstream2.close(); - } - - game->sps = 40; - game->maxfps = 90; - game->disttest = true; - game->cubetest = true; - } - - // Setup screen - if (SDL_Init(SDL_INIT_VIDEO) == -1) { - fprintf(stderr, "SDL Init Video failed: %s\n", SDL_GetError()); - exit(EXIT_FAILURE); - } - atexit(SDL_Quit); - - SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 5); - SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 5); - SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 5); - SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 16); - SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); - - if (SDL_SetVideoMode(game->screenwidth, game->screenheight, - 0, SDL_OPENGL) == NULL) { - fprintf(stderr, "(OpenGL) SDL SetVideoMode failed: %s\n", - SDL_GetError()); - exit(EXIT_FAILURE); - } - SDL_WM_SetCaption("Black Shades", "Black Shades"); - SDL_EnableUNICODE(1); /* toggle it to ON */ - game->text.LoadFontTexture((char*) ":Data:Textures:Font.png"); game->text.BuildFont(); glAlphaFunc(GL_GREATER, 0.01); glDepthFunc(GL_LESS); glPolygonOffset(-8,0); - glPolygonMode( GL_FRONT_AND_BACK, GL_FILL ); + glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); } GLvoid Game::ReSizeGLScene(float fov, float near) |