diff --git a/libs/log4cplus/CMakeLists.txt b/libs/log4cplus/CMakeLists.txt index 02e6955..351ee09 100644 --- a/libs/log4cplus/CMakeLists.txt +++ b/libs/log4cplus/CMakeLists.txt @@ -121,9 +121,6 @@ elseif (WIN32) #set (log4cplus_postfix "${log4cplus_postfix}S") endif () -message (STATUS "Headers: ${log4cplus_headers}") -message (STATUS "Sources: ${log4cplus_sources}") - include_directories ("include") set (log4cplus_all_sources ${log4cplus_sources} ${log4cplus_headers}) diff --git a/src/client/CMakeLists.txt b/src/client/CMakeLists.txt index 852a9e4..8afd498 100644 --- a/src/client/CMakeLists.txt +++ b/src/client/CMakeLists.txt @@ -1,4 +1,5 @@ include_directories (${GREMLIN_SOURCE_DIR}/src/common) +include_directories (${CMAKE_SOURCE_DIR}/libs/horde3d-1.0.0-beta5/Include) # define executable add_executable( gremlin @@ -6,14 +7,10 @@ add_executable( gremlin Explosion main oglfont + Window + Renderer ) -add_dependencies( gremlin - common - glfw - spark -) - target_link_libraries(gremlin - common enet glfw spark log4cplus ${PLATFORM_LIBRARIES} ${OPENGL_LIBRARIES} + common enet glfw spark horde3d log4cplus ${PLATFORM_LIBRARIES} ${OPENGL_LIBRARIES} ) diff --git a/src/client/Client.cpp b/src/client/Client.cpp index a366712..e0bed5e 100644 --- a/src/client/Client.cpp +++ b/src/client/Client.cpp @@ -1,16 +1,11 @@ -/* - * Client.cpp - * - * Created on: 14.01.2011 - * Author: gmueller - */ - #include "Client.h" #include "Network.h" #include "Explosion.h" #include "Time.h" #include "btBulletDynamicsCommon.h" +#include "Horde3D.h" + #include #include @@ -19,110 +14,9 @@ #include #include -GLUquadricObj *quadratic; +namespace gln { + Explosion explosion; - -void setup_light() { - GLfloat LightAmbient[] = { 0.5f, 0.5f, 0.5f, 1.0f }; - GLfloat LightDiffuse[] = { 0.5f, 0.5f, 0.5f, 1.0f }; - GLfloat LightPosition[] = { 1.0f, 1.0f, 1.0f, 0.0f }; - - // setup directional light - glLightfv(GL_LIGHT0, GL_AMBIENT, LightAmbient); - glLightfv(GL_LIGHT0, GL_DIFFUSE, LightDiffuse); - glLightfv(GL_LIGHT0, GL_POSITION, LightPosition); - glEnable(GL_LIGHT0); - - glEnable(GL_LIGHTING); -} - -void setup_opengl() { - - // Open OpenGL window - if (!glfwOpenWindow(640, 480, 0, 0, 0, 0, 0, 0, GLFW_WINDOW)) { - fprintf(stderr, "Failed to open GLFW window\n"); - glfwTerminate(); - exit(EXIT_FAILURE); - } - //glfwDisable(GLFW_MOUSE_CURSOR); - glfwSetWindowTitle("Gremlin Lan Party Game"); - // Enable sticky keys - glfwEnable(GLFW_STICKY_KEYS); - - // general settings - glShadeModel(GL_SMOOTH); - glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); - glEnable(GL_CULL_FACE); - - // setup depth buffer - glClearDepth(1.0f); - glEnable(GL_DEPTH_TEST); - glDepthFunc(GL_LEQUAL); - - // Enable vertical sync (on cards that support it) - glfwSwapInterval(0); -} - -void draw_team(Team *team) { - size_t i = 0; - glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, team->color); - glMatrixMode(GL_MODELVIEW); - glPushMatrix(); - glTranslated(team->x, team->y, team->z); - gluSphere(quadratic, 50.f, 32, 32); - glPopMatrix(); -} -GLuint wallTex = 0; -void Client::drawPlayer(player_t *player) { - if (player->status == 0) - return; - glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, player->team->color); - glMatrixMode(GL_MODELVIEW); - glPushMatrix(); - glMultMatrixf(player->m); - glEnableClientState(GL_VERTEX_ARRAY); - glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glEnableClientState(GL_NORMAL_ARRAY); - glVertexPointer(3, GL_FLOAT, game.shipMesh->vertex_size, - game.shipMesh->vertices); - glTexCoordPointer(2, GL_FLOAT, game.shipMesh->vertex_size, - game.shipMesh->vertices + 3); - glNormalPointer(GL_FLOAT, game.shipMesh->vertex_size, - game.shipMesh->vertices + 5); - for (size_t i = 0; i < game.shipMesh->object_count; i++) { - glDrawElements(GL_TRIANGLES, game.shipMesh->objects[i].face_count * 3, - GL_UNSIGNED_SHORT, - &game.shipMesh->faces[game.shipMesh->objects[i].face_index]); - } - glDisableClientState(GL_VERTEX_ARRAY); - glDisableClientState(GL_TEXTURE_COORD_ARRAY); - glPopMatrix(); -} - -void draw_bomb(bomb_t *bomb) { - if (bomb->status != 1) - return; - GLfloat red[] = { 1.0f, 0.0f, 0.0f, 1.0f }; - glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, red); - glMatrixMode(GL_MODELVIEW); - glPushMatrix(); - glTranslated(bomb->x, bomb->y, bomb->z); - gluSphere(quadratic, 0.5f, 4, 4); - glPopMatrix(); -} - -void draw_point(point_t *point) { - if (point->status == 0) - return; - GLfloat red[] = { 0.0f, 0.0f, 1.0f, 1.0f }; - glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, red); - glMatrixMode(GL_MODELVIEW); - glPushMatrix(); - glTranslated(point->x, point->y, point->z); - gluSphere(quadratic, 3.f, 12, 12); - glPopMatrix(); -} - void setup_explosion() { // Loads particle texture @@ -169,155 +63,6 @@ void setup_explosion() { textures[4]); } -void Client::drawLevel() { - - if (wallTex == 0) { - glGenTextures(1, &wallTex); - glBindTexture(GL_TEXTURE_2D, wallTex); - glEnable(GL_TEXTURE_2D); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, - GL_LINEAR_MIPMAP_LINEAR); - glfwLoadTexture2D("data/wall.tga", GLFW_BUILD_MIPMAPS_BIT); - } else { - glBindTexture(GL_TEXTURE_2D, wallTex); - glEnable(GL_TEXTURE_2D); - } - - GLfloat red[] = { 1.0f, 1.0f, 1.0f, 1.0f }; - glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, red); - - // Enable/Disable features - glPushAttrib(GL_ENABLE_BIT); - glEnable(GL_TEXTURE_2D); - //glDisable( GL_DEPTH_TEST); - // glEnable( GL_LIGHTING); - // glDisable( GL_BLEND); - glColor4f(1, 1, 1, 1); - glMatrixMode(GL_MODELVIEW); - glPushMatrix(); -#if 0 - glTranslated(2000.0, 0.0, 0.0); - //glScaled(5000.0f, 5000.0f, 5000.0f); - float s = 3000.0f, t = 10.0f; - // Just in case we set all vertices to white. - - // Render the front quad - glBegin( GL_QUADS); - glTexCoord2f(0, t); - glNormal3f(0.0, 0.0, 1.0); - glVertex3f(-s, s, -s); - - glTexCoord2f(0, 0); - glNormal3f(0.0, 0.0, 1.0); - glVertex3f(-s, -s, -s); - - glTexCoord2f(t, 0); - glNormal3f(0.0, 0.0, 1.0); - glVertex3f(s, -s, -s); - - glTexCoord2f(t, t); - glNormal3f(0.0, 0.0, 1.0); - glVertex3f(s, s, -s); - glEnd(); - - // Render the left quad - glBegin(GL_QUADS); - glTexCoord2f(0, 0); - glVertex3f(s, -s, s); - - glTexCoord2f(0, t); - glVertex3f(s, s, s); - - glTexCoord2f(t, t); - glVertex3f(s, s, -s); - - glTexCoord2f(t, 0); - glVertex3f(s, -s, -s); - glEnd(); - - // Render the back quad - // glBindTexture(GL_TEXTURE_2D, _skybox[2]); - glBegin(GL_QUADS); - glTexCoord2f(0, 0); - glVertex3f(-s, -s, s); - glTexCoord2f(0, t); - glVertex3f(-s, s, s); - glTexCoord2f(t, t); - glVertex3f(s, s, s); - glTexCoord2f(t, 0); - glVertex3f(s, -s, s); - - glEnd(); - - // Render the right quad - // glBindTexture(GL_TEXTURE_2D, _skybox[3]); - glBegin(GL_QUADS); - glTexCoord2f(0, 0); - glVertex3f(-s, -s, -s); - glTexCoord2f(0, t); - glVertex3f(-s, s, -s); - glTexCoord2f(t, t); - glVertex3f(-s, s, s); - glTexCoord2f(t, 0); - glVertex3f(-s, -s, s); - glEnd(); - - // Render the top quad - //glBindTexture(GL_TEXTURE_2D, _skybox[4]); - glBegin(GL_QUADS); - glTexCoord2f(0, t); - glVertex3f(-s, s, -s); - - glTexCoord2f(t, t); - glVertex3f(s, s, -s); - - glTexCoord2f(t, 0); - glVertex3f(s, s, s); - - glTexCoord2f(0, 0); - glVertex3f(-s, s, s); - - glEnd(); - - // Render the bottom quad - //glBindTexture(GL_TEXTURE_2D, _skybox[5]); - glBegin(GL_QUADS); - glTexCoord2f(0, 0); - glVertex3f(-s, -s, -s); - glTexCoord2f(0, t); - glVertex3f(-s, -s, s); - glTexCoord2f(t, t); - glVertex3f(s, -s, s); - glTexCoord2f(t, 0); - glVertex3f(s, -s, -s); - glEnd(); -#else - glEnableClientState(GL_VERTEX_ARRAY); - glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glEnableClientState(GL_NORMAL_ARRAY); - glVertexPointer(3, GL_FLOAT, game.levelMesh->vertex_size, - game.levelMesh->vertices); - glTexCoordPointer(2, GL_FLOAT, game.levelMesh->vertex_size, - game.levelMesh->vertices + 3); - glNormalPointer(GL_FLOAT, game.levelMesh->vertex_size, - game.levelMesh->vertices + 5); - for (size_t i = 0; i < game.levelMesh->object_count; i++) { - glDrawElements(GL_TRIANGLES, game.levelMesh->objects[i].face_count * 3, - GL_UNSIGNED_SHORT, - &game.levelMesh->faces[game.levelMesh->objects[i].face_index]); - } - glDisableClientState(GL_VERTEX_ARRAY); - glDisableClientState(GL_TEXTURE_COORD_ARRAY); -#endif - - // Restore enable bits and matrix - glPopAttrib(); - glPopMatrix(); -} - void Client::accelerate(double x, double y, double z) { if (game.local_player == 0) return; @@ -365,44 +110,14 @@ void Client::loadConsoleFont() { oglf_load(&font, "data/fonts/console.fnt", font_id); } -void Client::prepareFrame(double rx, double ry, double rz) { - // Get window size (may be different than the requested size) - glfwGetWindowSize(&width, &height); - height = height > 0 ? height : 1; +void Client::initialize(Config &config) { + Application::initialize(config); - // Set viewport - glViewport(0, 0, width, height); + window.initialize(config); + renderer.initialize(&window, config); - // Clear color buffer - glClearColor(0.0f, 0.0f, 0.0f, 0.0f); - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - // Select and setup the projection matrix - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - gluPerspective(60.0f, (GLfloat) width / (GLfloat) height, 1.0f, 10000.0f); - - // Select and setup the modelview matrix - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - gluLookAt(camX, camY, camZ, camX + rx * 10.0f, camY + ry * 10.0f, - camZ + rz * 10.0f, 0.0f, 1.0f, 0.0f); - -} - -void Client::initialize(Arguments &arg) { - Application::initialize(arg); - - // Initialise GLFW - if (!glfwInit()) { - throw("Failed to initialize GLFW"); - } - - setup_opengl(); - setup_explosion(); - quadratic = gluNewQuadric(); - gluQuadricNormals(quadratic, GLU_SMOOTH); - gluQuadricTexture(quadratic, GL_TRUE); + loadConsoleFont(); + //setup_explosion(); if (isMaster()) { Team *team = game.getTeam(0); @@ -425,12 +140,132 @@ void Client::initialize(Arguments &arg) { // setup signals game.ExplosionSignal.connect(this, &Client::onExplosion); -} + renderer.create("level"); +} +void Client::processInput(double step) { + if (!game.local_player) + return; + + btRigidBody *body = game.local_player->body.get(); + if (!body) + return; + + btMatrix3x3 &basis = body->getWorldTransform().getBasis(); + btVector3 front = basis * btVector3(0, 0, -10) * step; + btVector3 right = basis * btVector3(10, 0, 0) * step; + btVector3 up = basis * btVector3(0, 10, 0) * step; + + float accelSpeed = 200 / body->getInvMass(); + btVector3 accel(0, 0, 0); + if (glfwGetKey('W') == GLFW_PRESS) { + accel += accelSpeed * front; + } + + if (glfwGetKey('A') == GLFW_PRESS) { + accel += -accelSpeed * right; + } + + if (glfwGetKey('S') == GLFW_PRESS) { + accel += -accelSpeed * front; + } + + if (glfwGetKey('D') == GLFW_PRESS) { + accel += accelSpeed * right; + } + + if (glfwGetKey('R') == GLFW_PRESS) { + accel += accelSpeed * up; + } + + if (glfwGetKey('F') == GLFW_PRESS) { + accel += -accelSpeed * up; + } + accel *= step; + accelerate(accel.x(), accel.y(), accel.z()); +#if 0 + float rotationSpeed = 1000 / body->getInvMass(); + + float lx = (mouseX - 0.5) * 2; + float ly = (mouseY - 0.5) * 2; + + btVector3 desiredLocalAngualarVelocity = btVector3(0, -2 * lx, 0) + + btVector3(-2 * ly, 0, 0); + btVector3 desiredAngualarVelocity = body->getWorldTransform().getBasis() + * desiredLocalAngualarVelocity; + btVector3 angularVelocity = body->getAngularVelocity(); + btVector3 a = desiredAngualarVelocity - angularVelocity; + float turningAngle = a.length(); + a *= fabs(turningAngle); + + Steering *s = 0; + if (entity->getComponent(s)) + s->setAngularForce(a); + //} + + if (turningAngle > 0.001) { + activate = true; + jetStrength += std::min(0.2f, turningAngle * turningAngle * 10); + + } + + if (glfwGetKey(GLFW_KEY_LEFT) == GLFW_PRESS) { + body->applyForce(-rotationSpeed * right, front); + body->applyForce(rotationSpeed * right, -front); + activate = true; + } + + if (glfwGetKey(GLFW_KEY_RIGHT) == GLFW_PRESS) { + body->applyForce(rotationSpeed * right, front); + body->applyForce(-rotationSpeed * right, -front); + activate = true; + } + + if (glfwGetKey(GLFW_KEY_UP) == GLFW_PRESS) { + body->applyForce(-rotationSpeed * up, front); + body->applyForce(rotationSpeed * up, -front); + activate = true; + } + + if (glfwGetKey(GLFW_KEY_DOWN) == GLFW_PRESS) { + body->applyForce(rotationSpeed * up, front); + body->applyForce(-rotationSpeed * up, -front); + activate = true; + } + + // roll + if (glfwGetKey('Q') == GLFW_PRESS) { + body->applyForce(rotationSpeed * up, right); + body->applyForce(-rotationSpeed * up, -right); + jetStrength += 0.1; + activate = true; + } + + if (glfwGetKey('E') == GLFW_PRESS) { + body->applyForce(-rotationSpeed * up, right); + body->applyForce(rotationSpeed * up, -right); + jetStrength += 0.1; + activate = true; + } + + if (activate) { + body->activate(); + } + + if (jetStrength > 0) { + jet->setVolume(jetStrength); + if (!jet->isPlaying()) { + jet->play2d(true); + } + } else { + jet->stop(); + } +#endif +} void Client::update() { Application::update(); - + window.update(); int x, y; glfwGetMousePos(&x, &y); if (glfwGetMouseButton(GLFW_MOUSE_BUTTON_2) == GLFW_PRESS) { @@ -450,25 +285,7 @@ void Client::update() { if (accelerate_schudule.next(time)) { double t = accelerate_schudule.getInterval(); - double v = 50.0 * t; - if (glfwGetKey('W')) { - accelerate(rx * v, ry * v, rz * v); - } else if (glfwGetKey('S')) { - accelerate(rx * -v, ry * -v, rz * -v); - } - - if (glfwGetKey('A')) { - accelerate(rz * v, 0, -rx * v); - } else if (glfwGetKey('D')) { - accelerate(-rz * v, 0, rx * v); - } - -#if 0 - if (glfwGetKey(GLFW_KEY_SPACE)) { - accelerate(game.local_player->vx * -0.1, - game.local_player->vy * -0.1, game.local_player->vz * -0.1); - } -#endif + processInput(t); } if (glfwGetKey(GLFW_KEY_LCTRL)) { if (time - last_bomb > 1.0) { @@ -477,18 +294,30 @@ void Client::update() { } } + btScalar bullet_trafo[16]; if (game.local_player) { - btVector3 p = game.local_player->body->getWorldTransform().getOrigin(); - - camX = p.x(); - camY = p.y(); - camZ = p.z(); + game.local_player->body->getWorldTransform().getOpenGLMatrix( + bullet_trafo); +// bullet_trafo[12] -= origin.x(); +// bullet_trafo[13] -= origin.y(); +// bullet_trafo[14] -= origin.z(); } else { - camX = 1000.0; - camY = 1000.0; - camZ = 1000.0; + bullet_trafo[12] = 1000.0; + bullet_trafo[13] = 1000.0; + bullet_trafo[14] = 1000.0; } + float trafo[16]; + for (size_t i = 0; i < 16; i++) + trafo[i] = bullet_trafo[i]; + h3dSetNodeTransMat(renderer.getCameraNode(), trafo); +// h3dSetNodeTransform(renderer.getCameraNode(), camX, camY, camZ, +// -theta * 180 / M_PI - 90, phi * 180 / M_PI, 0, 1, 1, 1); +// H3DNode cam = renderer.getCameraNode(); + + renderer.draw(); + +#if 0 prepareFrame(rx, ry, rz); setup_light(); glEnable(GL_LIGHT0); @@ -499,10 +328,10 @@ void Client::update() { // draw_team(&game.teams[i]); for (size_t i = 0; i < GAME_PLAYER_COUNT; i++) - drawPlayer(&game.player[i]); + drawPlayer(&game.player[i]); for (size_t i = 0; i < GAME_BOMB_COUNT; i++) - draw_bomb(&game.bomb[i]); + draw_bomb(&game.bomb[i]); // // for (size_t i = 0; i < GAME_POINT_COUNT; i++) // draw_point(&game.point[i]); @@ -511,7 +340,7 @@ void Client::update() { explosion.update(dt * 1000.0, camX, camY, camZ); explosion.render(); - +#endif glDisable(GL_LIGHT0); glDisable(GL_LIGHTING); glDisable(GL_CULL_FACE); @@ -558,7 +387,6 @@ void Client::shutdown() { Application::shutdown(); - gluDeleteQuadric(quadratic); oglf_destroy(&font); glfwTerminate(); } @@ -567,3 +395,4 @@ void Client::onExplosion(double x, double y, double z) { explosion.add(x, y, z); } +} // namespace grln diff --git a/src/client/Client.h b/src/client/Client.h index 28f06e8..199e313 100644 --- a/src/client/Client.h +++ b/src/client/Client.h @@ -10,14 +10,21 @@ #include "Application.h" #include "Schedule.h" +#include "Renderer.h" +#include "Window.h" + #include "oglfont.h" +namespace gln { + class Client: public Application { public: - void initialize(Arguments &arg); + void initialize(Config &config); void update(); void shutdown(); private: + Window window; + Renderer renderer; double last_bomb; //TODO: use bomb schedule; int last_x, last_y; double phi, theta; @@ -26,8 +33,7 @@ private: int width, height; //TrueTyeFont font; oglf_font_t font; - - void prepareFrame(double rx, double ry, double rz); +void processInput(double step); void accelerate(double x, double y, double z); void drop_bomb(double rx, double ry, double rz, double ttl); void loadConsoleFont(); @@ -38,4 +44,6 @@ private: void drawPlayer(player_t *player); }; +} // namespace grln + #endif /* CLIENT_H_ */ diff --git a/src/client/Explosion.cpp b/src/client/Explosion.cpp index 38f3cd5..199ec50 100644 --- a/src/client/Explosion.cpp +++ b/src/client/Explosion.cpp @@ -1,15 +1,10 @@ -/* - * Explosion.cpp - * - * Created on: 05.01.2011 - * Author: gmueller - */ - #include "Explosion.h" using namespace SPK; using namespace SPK::GL; +namespace gln { + Explosion::~Explosion() { SPKFactory::getInstance().destroyAll(); } @@ -51,7 +46,7 @@ void Explosion::initialize(GLuint textureExplosion, GLuint textureFlash, flashRenderer->setBlending(BLENDING_ADD); flashRenderer->enableRenderingHint(DEPTH_WRITE, false); flashRenderer->setShared(true); - flashRenderer->setScale(scale,scale); + flashRenderer->setScale(scale, scale); // spark 1 renderer GLQuadRenderer* spark1Renderer = GLQuadRenderer::create(); @@ -68,7 +63,7 @@ void Explosion::initialize(GLuint textureExplosion, GLuint textureFlash, GLRenderer* spark2Renderer = NULL; if (GLPointRenderer::loadGLExtPointSprite() && GLPointRenderer::loadGLExtPointParameter()) // uses point sprite if possible - { + { //GLPointRenderer::setPixelPerUnit(45.0f * PI / 180.f, scale * 1024); GLPointRenderer* pointRenderer = GLPointRenderer::create(); pointRenderer->setType(POINT_SPRITE); @@ -82,7 +77,7 @@ void Explosion::initialize(GLuint textureExplosion, GLuint textureFlash, quadRenderer->setTexturingMode(TEXTURE_2D); quadRenderer->setTexture(texturePoint); quadRenderer->setTextureBlending(GL_MODULATE); - quadRenderer->setScale(0.02f * scale, 0.02f * scale); + quadRenderer->setScale(0.02f * scale, 0.02f * scale); spark2Renderer = quadRenderer; } spark2Renderer->setBlending(BLENDING_ADD); @@ -111,9 +106,9 @@ void Explosion::initialize(GLuint textureExplosion, GLuint textureFlash, Interpolator* interpolator = NULL; // pointer to an interpolator that is used to retrieve interpolators // smoke model - Model* smokeModel = Model::create(FLAG_RED | FLAG_GREEN | FLAG_BLUE - | FLAG_ALPHA | FLAG_SIZE | FLAG_ANGLE | FLAG_TEXTURE_INDEX, - FLAG_SIZE | FLAG_ANGLE, + Model* smokeModel = Model::create( + FLAG_RED | FLAG_GREEN | FLAG_BLUE | FLAG_ALPHA | FLAG_SIZE + | FLAG_ANGLE | FLAG_TEXTURE_INDEX, FLAG_SIZE | FLAG_ANGLE, FLAG_SIZE | FLAG_ANGLE | FLAG_TEXTURE_INDEX, FLAG_ALPHA); smokeModel->setParam(PARAM_RED, 0.2f); smokeModel->setParam(PARAM_GREEN, 0.2f); @@ -131,10 +126,11 @@ void Explosion::initialize(GLuint textureExplosion, GLuint textureFlash, interpolator->addEntry(1.0f, 0.0f); // flame model - Model* flameModel = Model::create(FLAG_RED | FLAG_GREEN | FLAG_BLUE - | FLAG_ALPHA | FLAG_SIZE | FLAG_ANGLE | FLAG_TEXTURE_INDEX, - FLAG_ANGLE | FLAG_RED | FLAG_GREEN | FLAG_BLUE, FLAG_ANGLE - | FLAG_TEXTURE_INDEX, FLAG_SIZE | FLAG_ALPHA); + Model* flameModel = Model::create( + FLAG_RED | FLAG_GREEN | FLAG_BLUE | FLAG_ALPHA | FLAG_SIZE + | FLAG_ANGLE | FLAG_TEXTURE_INDEX, + FLAG_ANGLE | FLAG_RED | FLAG_GREEN | FLAG_BLUE, + FLAG_ANGLE | FLAG_TEXTURE_INDEX, FLAG_SIZE | FLAG_ALPHA); flameModel->setParam(PARAM_RED, 1.0f, 0.2f); flameModel->setParam(PARAM_GREEN, 0.5f, 0.2f); flameModel->setParam(PARAM_BLUE, 0.2f, 0.2f); @@ -176,8 +172,9 @@ void Explosion::initialize(GLuint textureExplosion, GLuint textureFlash, spark1Model->setShared(true); // spark 2 model - Model* spark2Model = Model::create(FLAG_RED | FLAG_GREEN | FLAG_BLUE - | FLAG_ALPHA, FLAG_GREEN | FLAG_BLUE | FLAG_ALPHA, FLAG_GREEN); + Model* spark2Model = Model::create( + FLAG_RED | FLAG_GREEN | FLAG_BLUE | FLAG_ALPHA, + FLAG_GREEN | FLAG_BLUE | FLAG_ALPHA, FLAG_GREEN); spark2Model->setParam(PARAM_ALPHA, 1.0f, 0.0f); spark2Model->setParam(PARAM_RED, 1.0f); spark2Model->setParam(PARAM_GREEN, 1.0f, 1.0f, 0.3f, 1.0f); @@ -186,8 +183,8 @@ void Explosion::initialize(GLuint textureExplosion, GLuint textureFlash, spark2Model->setShared(true); // wave model - Model* waveModel = Model::create(FLAG_ALPHA | FLAG_SIZE, FLAG_SIZE - | FLAG_ALPHA); + Model* waveModel = Model::create(FLAG_ALPHA | FLAG_SIZE, + FLAG_SIZE | FLAG_ALPHA); waveModel->setParam(PARAM_SIZE, 0.0f, 4.0f); waveModel->setParam(PARAM_ALPHA, 0.2f, 0.0f); waveModel->setLifeTime(0.8f, 0.8f); @@ -198,8 +195,10 @@ void Explosion::initialize(GLuint textureExplosion, GLuint textureFlash, ////////////// // This zone will be used by several emitters - Sphere* explosionSphere = Sphere::create(Vector3D(0.0f, 0.0f, 0.0f), 0.4f * scale); - Sphere* explosionSphere2 = Sphere::create(Vector3D(0.0f, 0.0f, 0.0f), 0.4f * 2.5* scale); + Sphere* explosionSphere = Sphere::create(Vector3D(0.0f, 0.0f, 0.0f), + 0.4f * scale); + Sphere* explosionSphere2 = Sphere::create(Vector3D(0.0f, 0.0f, 0.0f), + 0.4f * 2.5 * scale); // smoke emitter RandomEmitter* smokeEmitter = RandomEmitter::create(); @@ -302,8 +301,8 @@ void Explosion::initialize(GLuint textureExplosion, GLuint textureFlash, void Explosion::render() { GLRenderer::saveGLStates(); // Renders all the particle systems - for (std::list::const_iterator it = particleSystems.begin(); it - != particleSystems.end(); ++it) + for (std::list::const_iterator it = particleSystems.begin(); + it != particleSystems.end(); ++it) (*it)->render(); GLRenderer::restoreGLStates(); } @@ -349,3 +348,5 @@ void Explosion::update(double dt, double cx, double cy, double cz) { ++it; } } + +} // namespace grln diff --git a/src/client/Explosion.h b/src/client/Explosion.h index 0f1b172..b5f9f85 100644 --- a/src/client/Explosion.h +++ b/src/client/Explosion.h @@ -11,6 +11,8 @@ #include "SPK.h" #include "SPK_GL.h" +namespace gln { + class Explosion { public: ~Explosion(); @@ -24,4 +26,6 @@ private: std::list particleSystems; }; +} // namespace grln + #endif /* EXPLOSION_H_ */ diff --git a/src/client/main.cpp b/src/client/main.cpp index 8c1ca82..06be417 100644 --- a/src/client/main.cpp +++ b/src/client/main.cpp @@ -20,9 +20,11 @@ int main(int argc, const char **argv) { LOG4CPLUS_INFO(logger, " - " << argv[i]); try { - Client app; - Arguments args(argc, argv); - app.initialize(args); + gln::Client app; + gln::Config config; + config.load(argc, argv); + + app.initialize(config); while (app.isRunning()) app.update(); app.shutdown(); diff --git a/src/common/Application.cpp b/src/common/Application.cpp index 56bad52..5f876ff 100644 --- a/src/common/Application.cpp +++ b/src/common/Application.cpp @@ -1,18 +1,13 @@ -/* - * Application.cpp - * - * Created on: 14.01.2011 - * Author: gmueller - */ - #include "Application.h" #include "Time.h" #include "Network.h" #include +namespace gln { + Application::Application() : - running(false), master(false), time(0.0), network(&game) { + running(false), master(false), time(0.0), network(&game) { } @@ -34,7 +29,7 @@ void Application::stop() { running = false; } -void Application::initialize(Arguments &arg) { +void Application::initialize(Config &config) { std::cout << "[Application] initialize" << std::endl; // setup time @@ -49,7 +44,8 @@ void Application::initialize(Arguments &arg) { gameUpdateSchudule.setExact(true); gameUpdateSchudule.setInterval(0.05); - std::string host = arg.getString("-h", std::string()); + std::string host; + config.get("host", host); network.initialize(host); // setup network @@ -89,3 +85,5 @@ void Application::setMaster(bool master) { this->master = master; game.set_master(master ? 1 : 0); } + +} // namespace grln diff --git a/src/common/Application.h b/src/common/Application.h index 72998f2..679aec1 100644 --- a/src/common/Application.h +++ b/src/common/Application.h @@ -1,10 +1,3 @@ -/* - * Application.h - * - * Created on: 14.01.2011 - * Author: gmueller - */ - #ifndef APPLICATION_H_ #define APPLICATION_H_ @@ -13,14 +6,16 @@ #include "Game.h" #include "Schedule.h" -#include "Arguments.h" #include "Network.h" +#include "Config.h" + +namespace gln { class Application: public sigslot::has_slots<> { public: Application(); virtual ~Application(); - virtual void initialize(Arguments &arg); + virtual void initialize(Config &config); virtual void update(); virtual void shutdown(); @@ -50,4 +45,6 @@ protected: double time; }; +} // namespace grln + #endif /* APPLICATION_H_ */ diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index a909e7f..890a27b 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt @@ -6,6 +6,7 @@ add_library( common Game Time Network + Config ) add_dependencies( common diff --git a/src/common/Game.cpp b/src/common/Game.cpp index e3e56f1..c17bea0 100644 --- a/src/common/Game.cpp +++ b/src/common/Game.cpp @@ -1,22 +1,23 @@ #include "Game.h" +#include "btBulletDynamicsCommon.h" + #include #include #include - #include -#include "btBulletDynamicsCommon.h" +namespace gln { Game::Game() : - local_player(0), collisionConfiguration( - new btDefaultCollisionConfiguration()), dispatcher( - new btCollisionDispatcher(collisionConfiguration.get())), - overlappingPairCache(new btDbvtBroadphase), solver( - new btSequentialImpulseConstraintSolver), dynamicsWorld( - new btDiscreteDynamicsWorld(dispatcher.get(), - overlappingPairCache.get(), solver.get(), - collisionConfiguration.get())), levelMesh(0) { + local_player(0), collisionConfiguration( + new btDefaultCollisionConfiguration()), dispatcher( + new btCollisionDispatcher(collisionConfiguration.get())), overlappingPairCache( + new btDbvtBroadphase), solver( + new btSequentialImpulseConstraintSolver), dynamicsWorld( + new btDiscreteDynamicsWorld(dispatcher.get(), + overlappingPairCache.get(), solver.get(), + collisionConfiguration.get())), levelMesh(0) { slaveUpdate.setInterval(1. / 60.); slaveUpdate.setExact(true); } @@ -39,8 +40,8 @@ void reset_player(player_t *player) { if (player->body.get() == 0) return; if (player->team) { - player->body->getWorldTransform().setOrigin(btVector3(player->team->x, - player->team->y, player->team->z)); + player->body->getWorldTransform().setOrigin( + btVector3(player->team->x, player->team->y, player->team->z)); } else { player->body->getWorldTransform().setOrigin(btVector3(0, 0, 0)); } @@ -96,8 +97,8 @@ void setup_bomb(bomb_t *bomb) { } void Game::loadLevelShape() { - levelMesh = tlLoadTrimesh("data/level.obj", TL_FVF_XYZ | TL_FVF_UV - | TL_FVF_NORMAL); + levelMesh = tlLoadTrimesh("data/level.obj", + TL_FVF_XYZ | TL_FVF_UV | TL_FVF_NORMAL); if (levelMesh == 0) throw("level mesh not found! (data/level.obj)"); @@ -124,8 +125,8 @@ void Game::loadLevelShape() { } void Game::loadShipShape() { - shipMesh = tlLoadTrimesh("data/ship.obj", TL_FVF_XYZ | TL_FVF_UV - | TL_FVF_NORMAL); + shipMesh = tlLoadTrimesh("data/ship.obj", + TL_FVF_XYZ | TL_FVF_UV | TL_FVF_NORMAL); /* btIndexedMesh sim; sim.m_numTriangles = shipMesh->face_count; @@ -151,8 +152,9 @@ void Game::loadShipShape() { shipShape.reset(_shipShape); */ - shipShape.reset(new btBoxShape(btVector3(btScalar(1.5), btScalar(1.5), - btScalar(1.5)))); + shipShape.reset( + new btBoxShape( + btVector3(btScalar(1.5), btScalar(1.5), btScalar(1.5)))); } void Game::setupLevel() { @@ -283,8 +285,8 @@ void Game::update_players(double dt) { p->state->getWorldTransform(player_transform); player_transform.getOpenGLMatrix(p->m); - double distance2 = - player_transform.getOrigin().distance2(team_position); + double distance2 = player_transform.getOrigin().distance2( + team_position); if (distance2 < 10000) { p->team->points += p->points; p->points = 0; @@ -298,9 +300,9 @@ void Game::explode_bomb(bomb_t *bomb) { for (i = 0; i < GAME_PLAYER_COUNT; i++) { player_t *p = &player[i]; if (p->status == 0) - continue; + continue; double distance2 = pow(p->x - bomb->x, 2) + pow(p->y - bomb->y, 2) - + pow(p->z - bomb->z, 2); + + pow(p->z - bomb->z, 2); if (distance2 < pow(150., 2.)) { ExplosionSignal(p->x, p->y, p->z); p->x = p->team->x + 100; @@ -325,7 +327,7 @@ void Game::update_bombs(double dt) { for (i = 0; i < GAME_BOMB_COUNT; i++) { bomb_t *b = &bomb[i]; if (b->status == 0) - continue; + continue; b->x += b->vx * dt; b->y += b->vy * dt; b->z += b->vz * dt; @@ -370,11 +372,11 @@ void Game::update_point(point_t *point) { for (i = 0; i < GAME_PLAYER_COUNT; i++) { player_t *P = &player[i]; if (P->status == 0) - continue; + continue; double distance2 = pow(P->x - point->x, 2) + pow(P->y - point->y, 2) - + pow(P->z - point->z, 2); + + pow(P->z - point->z, 2); if (distance2 > 1000.0) - continue; + continue; point->status = 0; P->points += 1; } @@ -386,7 +388,7 @@ void Game::update_points(double dt) { for (i = 0; i < GAME_POINT_COUNT; i++) { point_t *p = &point[i]; if (p->status == 0) - continue; + continue; update_point(p); } } @@ -478,3 +480,5 @@ point_t *Game::spawn_point() { void Game::set_master(int master) { this->master = master; } + +} // namespace grln diff --git a/src/common/Game.h b/src/common/Game.h index bc23e4f..656d157 100644 --- a/src/common/Game.h +++ b/src/common/Game.h @@ -20,6 +20,8 @@ class btTriangleIndexVertexArray; class btRigidBody; class btMotionState; +namespace gln { + typedef struct Team Team; typedef struct player_t player_t; class Game; @@ -122,4 +124,6 @@ private: Schedule slaveUpdate; }; +} // namespace grln + #endif diff --git a/src/common/Network.cpp b/src/common/Network.cpp index 89ef940..8ce09e1 100644 --- a/src/common/Network.cpp +++ b/src/common/Network.cpp @@ -1,10 +1,3 @@ -/* - * network.cpp - * - * Created on: 12.01.2011 - * Author: gmueller - */ - #include "Network.h" #include "btBulletDynamicsCommon.h" @@ -14,8 +7,10 @@ #include #include +namespace gln { + Network::Network(Game *game) : - game(game), client_peer(0) { + game(game), client_peer(0) { } void Network::initialize(const std::string &hostname) { @@ -56,8 +51,8 @@ void Network::initialize(const std::string &hostname) { } /* Wait up to 5 seconds for the connection attempt to succeed. */ - if (enet_host_service(host, &event, 2000) > 0 && event.type - == ENET_EVENT_TYPE_CONNECT) { + if (enet_host_service(host, &event, 2000) > 0 + && event.type == ENET_EVENT_TYPE_CONNECT) { std::cout << "[Network] connected" << std::endl; } else { /* Either the 5 seconds are up or a disconnect event was */ @@ -134,126 +129,77 @@ T *_message_cast(void *p, size_t l) { #define EMIT_END() out << YAML::EndMap;return out;} // player_spawn_message_t -EMIT_START(player_spawn_message_t) - EMIT_FIELD(team_id) - EMIT_FIELD(player_id) +EMIT_START(player_spawn_message_t) EMIT_FIELD(team_id)EMIT_FIELD(player_id) EMIT_END() PARSE_START(player_spawn_message_t) PARSE_FIELD(team_id) PARSE_FIELD(player_id)PARSE_END() // player_kill_message_t -EMIT_START(player_kill_message_t) - EMIT_FIELD(player_id) +EMIT_START(player_kill_message_t) EMIT_FIELD(player_id) EMIT_END() PARSE_START(player_kill_message_t) PARSE_FIELD(player_id)PARSE_END() // accept_message_t -EMIT_START(accept_message_t) - EMIT_FIELD(player_id) +EMIT_START(accept_message_t) EMIT_FIELD(player_id) EMIT_END() PARSE_START(accept_message_t) PARSE_FIELD(player_id)PARSE_END() // player_update_message_t -EMIT_START(player_update_message_t) - EMIT_FIELD(player_id) - EMIT_FIELD(x) - EMIT_FIELD(y) - EMIT_FIELD(z) - EMIT_FIELD(vx) - EMIT_FIELD(vy) - EMIT_FIELD(vz) - EMIT_FIELD(points) +EMIT_START(player_update_message_t) EMIT_FIELD(player_id)EMIT_FIELD(x)EMIT_FIELD( + y)EMIT_FIELD(z)EMIT_FIELD(vx)EMIT_FIELD(vy)EMIT_FIELD(vz)EMIT_FIELD( + points) EMIT_END() -PARSE_START(player_update_message_t) PARSE_FIELD(player_id) - PARSE_FIELD(x) - PARSE_FIELD(y) - PARSE_FIELD(z) - PARSE_FIELD(vx) - PARSE_FIELD(vy) - PARSE_FIELD(vz) +PARSE_START(player_update_message_t) PARSE_FIELD(player_id)PARSE_FIELD(x)PARSE_FIELD( + y)PARSE_FIELD(z)PARSE_FIELD(vx)PARSE_FIELD(vy)PARSE_FIELD(vz) PARSE_FIELD(points)PARSE_END() // player_accelerate_message_t -EMIT_START(player_accelerate_message_t) - EMIT_FIELD(player_id) - EMIT_FIELD(x) - EMIT_FIELD(y) - EMIT_FIELD(z) +EMIT_START(player_accelerate_message_t) EMIT_FIELD(player_id)EMIT_FIELD(x)EMIT_FIELD( + y)EMIT_FIELD(z)EMIT_FIELD(rx)EMIT_FIELD( ry)EMIT_FIELD(rz) EMIT_END() -PARSE_START(player_accelerate_message_t) PARSE_FIELD(player_id) - PARSE_FIELD(x) - PARSE_FIELD(y) - PARSE_FIELD(z)PARSE_END() +PARSE_START(player_accelerate_message_t) PARSE_FIELD(player_id)PARSE_FIELD(x)PARSE_FIELD( + y)PARSE_FIELD(rx)PARSE_FIELD( ry) + PARSE_FIELD(rz)PARSE_END() // bomb_drop_meesage_t -EMIT_START(bomb_drop_meesage_t) - EMIT_FIELD(x) - EMIT_FIELD(y) - EMIT_FIELD(z) - EMIT_FIELD(vx) - EMIT_FIELD(vy) - EMIT_FIELD(vz) - EMIT_FIELD(ttl) +EMIT_START(bomb_drop_meesage_t) EMIT_FIELD(x)EMIT_FIELD(y)EMIT_FIELD(z)EMIT_FIELD( + vx)EMIT_FIELD(vy)EMIT_FIELD(vz)EMIT_FIELD(ttl) EMIT_END() -PARSE_START(bomb_drop_meesage_t) PARSE_FIELD(x) - PARSE_FIELD(y) - PARSE_FIELD(z) - PARSE_FIELD(vx) - PARSE_FIELD(vy) - PARSE_FIELD(vz) +PARSE_START(bomb_drop_meesage_t) PARSE_FIELD(x)PARSE_FIELD(y)PARSE_FIELD(z)PARSE_FIELD( + vx)PARSE_FIELD(vy)PARSE_FIELD(vz) PARSE_FIELD(ttl)PARSE_END() // bomb_update_meesage_t -EMIT_START(bomb_update_meesage_t) - EMIT_FIELD(bomb_index) - EMIT_FIELD(x) - EMIT_FIELD(y) - EMIT_FIELD(z) - EMIT_FIELD(vx) - EMIT_FIELD(vy) - EMIT_FIELD(vz) - EMIT_FIELD(ttl) +EMIT_START(bomb_update_meesage_t) EMIT_FIELD(bomb_index)EMIT_FIELD(x)EMIT_FIELD( + y)EMIT_FIELD(z)EMIT_FIELD(vx)EMIT_FIELD(vy)EMIT_FIELD(vz)EMIT_FIELD( + ttl) EMIT_END() -PARSE_START(bomb_update_meesage_t) PARSE_FIELD(bomb_index) - PARSE_FIELD(x) - PARSE_FIELD(y) - PARSE_FIELD(z) - PARSE_FIELD(vx) - PARSE_FIELD(vy) - PARSE_FIELD(vz) +PARSE_START(bomb_update_meesage_t) PARSE_FIELD(bomb_index)PARSE_FIELD(x)PARSE_FIELD( + y)PARSE_FIELD(z)PARSE_FIELD(vx)PARSE_FIELD(vy)PARSE_FIELD(vz) PARSE_FIELD(ttl)PARSE_END() // point_update_mesage_t -EMIT_START(point_update_mesage_t) - EMIT_FIELD(point_index) - EMIT_FIELD(x) - EMIT_FIELD(y) - EMIT_FIELD(z) - EMIT_FIELD(status) +EMIT_START(point_update_mesage_t) EMIT_FIELD(point_index)EMIT_FIELD(x)EMIT_FIELD( + y)EMIT_FIELD(z)EMIT_FIELD(status) EMIT_END() -PARSE_START(point_update_mesage_t) PARSE_FIELD(point_index) - PARSE_FIELD(x) - PARSE_FIELD(y) - PARSE_FIELD(z) +PARSE_START(point_update_mesage_t) PARSE_FIELD(point_index)PARSE_FIELD(x)PARSE_FIELD( + y)PARSE_FIELD(z) PARSE_FIELD(status)PARSE_END() // team_update_message_t -EMIT_START(team_update_message_t) - EMIT_FIELD(team_id) - EMIT_FIELD(points) - EMIT_FIELD(wins) +EMIT_START(team_update_message_t) EMIT_FIELD(team_id)EMIT_FIELD(points)EMIT_FIELD( + wins) EMIT_END() -PARSE_START(team_update_message_t) PARSE_FIELD(team_id) - PARSE_FIELD(points) +PARSE_START(team_update_message_t) PARSE_FIELD(team_id)PARSE_FIELD(points) PARSE_FIELD(wins)PARSE_END() void Network::dispatch(enet_uint8 *data, size_t length) { @@ -418,9 +364,8 @@ void Network::service(uint32_t timeout) { spwan_msg.player_id = game->player[i].id; YAML::Emitter em; em << spwan_msg; - ENetPacket * packet = enet_packet_create( - (uint8_t *) em.c_str(), em.size(), - ENET_PACKET_FLAG_RELIABLE); + ENetPacket * packet = enet_packet_create((uint8_t *) em.c_str(), + em.size(), ENET_PACKET_FLAG_RELIABLE); enet_peer_send(event.peer, 0, packet); } @@ -436,9 +381,8 @@ void Network::service(uint32_t timeout) { YAML::Emitter em; em << msg; - ENetPacket * packet = enet_packet_create( - (uint8_t *) em.c_str(), em.size(), - ENET_PACKET_FLAG_RELIABLE); + ENetPacket * packet = enet_packet_create((uint8_t *) em.c_str(), + em.size(), ENET_PACKET_FLAG_RELIABLE); enet_peer_send(event.peer, 0, packet); } @@ -453,9 +397,8 @@ void Network::service(uint32_t timeout) { YAML::Emitter em; em << spwan_msg; - ENetPacket * packet = enet_packet_create( - (uint8_t *) em.c_str(), em.size(), - ENET_PACKET_FLAG_RELIABLE); + ENetPacket * packet = enet_packet_create((uint8_t *) em.c_str(), + em.size(), ENET_PACKET_FLAG_RELIABLE); enet_host_broadcast(host, 0, packet); } { @@ -465,9 +408,8 @@ void Network::service(uint32_t timeout) { YAML::Emitter em; em << msg; - ENetPacket * packet = enet_packet_create( - (uint8_t *) em.c_str(), em.size(), - ENET_PACKET_FLAG_RELIABLE); + ENetPacket * packet = enet_packet_create((uint8_t *) em.c_str(), + em.size(), ENET_PACKET_FLAG_RELIABLE); enet_peer_send(event.peer, 0, packet); } // send state @@ -527,3 +469,5 @@ void Network::sendMessage(uint8_t *data, size_t length) { dispatch(data, length); } } + +} // namespace grln diff --git a/src/common/Network.h b/src/common/Network.h index 1e2b965..69f1a37 100644 --- a/src/common/Network.h +++ b/src/common/Network.h @@ -1,10 +1,3 @@ -/* - * network.h - * - * Created on: 12.01.2011 - * Author: gmueller - */ - #ifndef NETWORK_H_ #define NETWORK_H_ @@ -16,6 +9,8 @@ #include +namespace gln { + #define EMIT_DEFINE(msg) YAML::Emitter& operator <<(YAML::Emitter& out, const msg& m); #define MESSAGE_PLAYER_SPAWN 0 @@ -71,6 +66,7 @@ struct player_accelerate_message_t { }; uint16_t player_id; double x, y, z; + double rx, ry, rz; }; EMIT_DEFINE(player_accelerate_message_t) @@ -131,4 +127,6 @@ protected: ENetPeer *client_peer; }; +} // namespace gln + #endif /* NETWORK_H_ */ diff --git a/src/common/Schedule.h b/src/common/Schedule.h index 37eea45..fd9bba7 100644 --- a/src/common/Schedule.h +++ b/src/common/Schedule.h @@ -1,12 +1,6 @@ -/* - * Schedule.h - * - * Created on: 12.06.2010 - * Author: gmueller - */ - #ifndef SCHEDULE_H_ #define SCHEDULE_H_ +namespace gln { class Schedule { double last; @@ -15,7 +9,7 @@ class Schedule { bool paused; public: Schedule() : - last(0.0), interval(1.0), exact(true), paused(false) { + last(0.0), interval(1.0), exact(true), paused(false) { } void init(double now) { @@ -53,4 +47,5 @@ public: } } }; +} // namespace grln #endif /* SCHEDULE_H_ */ diff --git a/src/common/Time.cpp b/src/common/Time.cpp index 8f65b33..12fac5e 100644 --- a/src/common/Time.cpp +++ b/src/common/Time.cpp @@ -1,12 +1,5 @@ -/* - * Timer.cpp - * - * Created on: 12.01.2011 - * Author: gmueller - */ - #include "Time.h" - +namespace gln { #ifdef _WIN32 #define MEAN_AND_LEAN @@ -128,3 +121,4 @@ void PerformanceTimer::set(double t) { } #endif // else _WIN32 +} // namespace grln diff --git a/src/common/Time.h b/src/common/Time.h index 1c32b9a..34a4043 100644 --- a/src/common/Time.h +++ b/src/common/Time.h @@ -1,17 +1,11 @@ -/* - * Timer.h - * - * Created on: 12.01.2011 - * Author: gmueller - */ - #ifndef TIME_H_ #define TIME_H_ +namespace gln { class PerformanceTimer { public: static double get(); static void set(double); }; - +} // namespace grln #endif /* TIME_H_ */ diff --git a/src/server/server.cpp b/src/server/server.cpp index 0308369..6ba3745 100644 --- a/src/server/server.cpp +++ b/src/server/server.cpp @@ -3,18 +3,21 @@ #include #include -Application app; +#include "Config.h" + +gln::Application app; void terminate(int param) { app.stop(); } int main(int argc, const char **argv) { - Arguments args(argc, argv); + gln::Config config; + config.load(argc, argv); try { ::signal(SIGTERM, terminate); app.setMaster(true); - app.initialize(args); + app.initialize(config); while (app.isRunning()) app.update(); app.shutdown();