source: trunk/monsterz/monsterz.cpp @ 234

Last change on this file since 234 was 234, checked in by sam, 10 years ago

Add our custom mouse pointer. Switch framerate to 60 fps so that the mouse
movement doesn't appear sluggish.

  • Property svn:keywords set to Id
File size: 1.9 KB
Line 
1//
2// Monsterz
3//
4// Copyright: (c) 2005-2011 Sam Hocevar <sam@hocevar.net>
5//   This program is free software; you can redistribute it and/or
6//   modify it under the terms of the Do What The Fuck You Want To
7//   Public License, Version 2, as published by Sam Hocevar. See
8//   http://sam.zoy.org/projects/COPYING.WTFPL for more details.
9//
10
11#if defined HAVE_CONFIG_H
12#   include "config.h"
13#endif
14
15#include <cstdio>
16#include <cmath>
17#if defined _WIN32
18#   include <direct.h>
19#endif
20
21#include <SDL.h>
22
23#include "core.h"
24#include "game.h"
25#include "sdlinput.h"
26#include "board.h"
27
28#include "debugfps.h"
29
30static float const FPS = 60.0f;
31
32int main(int argc, char **argv)
33{
34    /* Initialise SDL */
35    if (SDL_Init(SDL_INIT_VIDEO) < 0)
36    {
37        fprintf(stderr, "Cannot initialise SDL: %s\n", SDL_GetError());
38        return EXIT_FAILURE;
39    }
40
41    SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
42    SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 16);
43    SDL_Surface *video = SDL_SetVideoMode(640, 480, 0, SDL_OPENGL);
44    if (!video)
45    {
46        fprintf(stderr, "Cannot create OpenGL screen: %s\n", SDL_GetError());
47        SDL_Quit();
48        return EXIT_FAILURE;
49    }
50
51    SDL_WM_SetCaption("Monsterz", NULL);
52    SDL_ShowCursor(0);
53
54    /* Initialise OpenGL */
55    Video::Setup(video->w, video->h);
56
57    /* Create a game */
58#if defined _WIN32
59    _chdir(".."); /* Temporary Win32 hack */
60#endif
61    Game *game = new Game();
62
63    /* Register an input driver and some debug stuff */
64    new SdlInput();
65    new Board(game);
66    new DebugFps(460, 20);
67
68    while (!Ticker::Finished())
69    {
70        /* Tick the game */
71        Ticker::TickGame();
72
73        /* Clear the screen, tick the renderer, show the frame and
74         * clamp to desired framerate. */
75        Video::Clear();
76        Ticker::TickDraw();
77        SDL_GL_SwapBuffers();
78        Ticker::ClampFps(1000.0f / FPS);
79    }
80
81    SDL_Quit();
82
83    return EXIT_SUCCESS;
84}
85
Note: See TracBrowser for help on using the repository browser.