Krig Game Engine
Loading...
Searching...
No Matches
Engine.h
Go to the documentation of this file.
1
7#ifndef _ENGINE_H_
8#define _ENGINE_H_
9
10#include <GL/glut.h>
11#include <AL/alc.h>
12#include <string>
13
14#include "SoundFX.h"
15#include "gametimer.h"
16#include "KeyState.h"
17#include "GameLevel.h"
18#include "TextGameObject.h"
19
20extern "C" {
21 #include "luajit-2.1/lua.h"
22 #include "luajit-2.1/lualib.h"
23 #include "luajit-2.1/lauxlib.h"
24}
25
26class Engine {
27 public:
28 Engine();
29 ~Engine();
30
31 void gameCycle();
32 void prepare();
33 void initGL();
34 void initAL();
35 void loadSoundFx();
36 void unloadSoundFx();
37
38 void processKeyUp(const int& key);
39 void processKeyDown(const int& key);
40 void processCommands();
41 void processNormalKeyUp(const unsigned char& key);
42 void processNormalKeyDown(const unsigned char& key);
43
44 KeyState* getKeyState() { return &keyState_; }
45 KeyState* getSpecialKeyState() { return &specialKeyState_; }
46
47 void processMouseMove(const int& x, const int& y);
48 float getMouseX() { return mouseX_; }
49 float getMouseY() { return mouseY_; }
50
51 void loadLevel(const char*);
52 void loadLevelFromBuffer(const char*);
53
54 bool loadGame(const std::string&);
55 bool loadIntroCredits();
56
57 void updateGame(const float&);
58 void unloadGame();
59 void unload();
60
61 void shutdown();
62 void pause();
63
64 float getFps() { return fps_; }
65
66 void loadModels();
67 void loadTextures();
68
69 void renderText(const char* s, const float &x, const float &y) {
70 glRasterPos2f (x, y);
71 TextGameObject::render_string(GLUT_BITMAP_HELVETICA_18, s);
72 }
73
74 SoundFX* getSoundFxClass() { return &soundFx_; }
75 bool getIsRunning() { return isRunning_; }
76
77 GameLevel* getCurrentLevel() { return currentLevel_; }
78
79 void swapLevel() {
80 GameLevel *temp = currentLevel_;
81 currentLevel_ = storedLevel_;
82 storedLevel_ = temp;
83 }
84
85 bool loadPng(const char*, unsigned char**, unsigned int*, unsigned int*, unsigned int*);
86
87#if EDIT
88 void getTerrainInfo(int &x, int &z, float &height, int &type, float &red, float &green, float &blue);
89 void updateTerrain(int &x, int &z, float &height, int &type, float &red, float &green, float &blue);
90
91 void updateColor(float &red, float &green, float &blue);
92
93 void setMouseX(float mouseX) { mouseX_ = mouseX; }
94 void setMouseY(float mouseY) { mouseY_ = mouseY; }
95#endif
96
97 private:
98 GameLevel *currentLevel_, *storedLevel_;
99 Camera *mainCamera_, *c1_, *c2_, *c3_, *c4_;
100 KeyState keyState_, specialKeyState_;
101
102 SoundFX soundFx_;
103 ALCdevice *alcDevice_;
104 ALCcontext *alcContext_;
105
106 GameTimer timer_; // game's timer
107 float timeElapsed_; // time elapsed in game
108 float fps_;
109
110 lua_State* luaState_;
111
112 bool isRunning_, isIntroRunning_, isPaused_;
113
114 float mouseX_, mouseY_;
115
116 // Used through game for cel shading
117 GLuint shaderTexture_[1];
118 unsigned int lists_; // lists used for rendering
119
120 void prepLevelLoad();
121
122#if EDIT
123 // Mouse control values
124 float lastX, lastY;
125
126 // Terrain editing values
127 int last_x, last_z, last_type;
128 float last_height;
129 float last_red, last_green, last_blue;
130 bool paint, paintColor;
131#endif
132};
133
134#endif
Representation of a game level or scene.
Lookup state of all keyboard keys.
Load and play sounds.
text based game object.
void shutdown()
void pause()
Definition Camera.h:13
Definition GameLevel.h:30
Definition gametimer.h:18
Definition KeyState.h:16
Definition SoundFX.h:19