From b81630c28ca4059065a2764152499f9bfb9b3b97 Mon Sep 17 00:00:00 2001 From: Anselme Date: Sun, 18 Dec 2016 14:58:06 +0100 Subject: [PATCH] updated keybinding to add mmiddle ckick as tertiary action, added argument to main --- src/defaultkeysmap.h | 5 +++-- src/test/main.cpp | 28 ++++++++++++++++++++++++---- 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/src/defaultkeysmap.h b/src/defaultkeysmap.h index 41c5d60..97fc000 100644 --- a/src/defaultkeysmap.h +++ b/src/defaultkeysmap.h @@ -6,7 +6,7 @@ class DefaultKeysMap : public IKeysMap { public: - enum{MAIN_ACTION, SECONDARY_ACTION, MOVE_FORWARD, MOVE_BACKWARD, STRAFE_LEFT, STRAFE_RIGHT, + enum{MAIN_ACTION, SECONDARY_ACTION, TERTIARY_ACTION, MOVE_FORWARD, MOVE_BACKWARD, STRAFE_LEFT, STRAFE_RIGHT, TOGGLE_NOCLIP, TOGGLE_PHYSICS_DEBUG, TOGGLE_CONSOLE, MOVE_CURSOR_LEFT, MOVE_CURSOR_RIGHT, PLOP_TEST, CLEAR_CONSOLE, EXIT_GAME,LAST_DEFAULT_ACTION}; @@ -14,6 +14,7 @@ public: DefaultKeysMap(){ keys.push_back( {MAIN_ACTION, sf::Keyboard::KeyCount + sf::Mouse::Left, IKeysMap::PRESSED} ); keys.push_back( {SECONDARY_ACTION, sf::Keyboard::KeyCount + sf::Mouse::Right, IKeysMap::PRESSED} ); + keys.push_back( {TERTIARY_ACTION, sf::Keyboard::KeyCount + sf::Mouse::Middle, IKeysMap::PRESSED} ); keys.push_back( {MOVE_FORWARD, sf::Keyboard::Z, IKeysMap::HOLD} ); keys.push_back( {MOVE_BACKWARD, sf::Keyboard::S, IKeysMap::HOLD} ); keys.push_back( {STRAFE_LEFT, sf::Keyboard::Q, IKeysMap::HOLD} ); @@ -30,7 +31,7 @@ public: static std::vector getDefaultContext() { - return {MAIN_ACTION, SECONDARY_ACTION, MOVE_FORWARD, MOVE_BACKWARD, STRAFE_LEFT, STRAFE_RIGHT, TOGGLE_NOCLIP, TOGGLE_PHYSICS_DEBUG, TOGGLE_CONSOLE, EXIT_GAME}; + return {MAIN_ACTION, SECONDARY_ACTION, TERTIARY_ACTION, MOVE_FORWARD, MOVE_BACKWARD, STRAFE_LEFT, STRAFE_RIGHT, TOGGLE_NOCLIP, TOGGLE_PHYSICS_DEBUG, TOGGLE_CONSOLE, EXIT_GAME}; } static std::vector getShellContext() diff --git a/src/test/main.cpp b/src/test/main.cpp index a8c167c..9a15b19 100644 --- a/src/test/main.cpp +++ b/src/test/main.cpp @@ -102,12 +102,31 @@ void generateTerrain(SceneTree *scene, btDiscreteDynamicsWorld *world) } } -int main(){ +int main(int argc, char** argv){ + enum Mode { SIMPLEST_TEST, TERRAIN_TEST, FULLSCREEN_DEMO }; + Mode mode = SIMPLEST_TEST; + if(argc > 1) + { + std::string modeStr(argv[1]); + if(modeStr == "terrain") + mode = TERRAIN_TEST; + else if(modeStr == "demo") + mode = FULLSCREEN_DEMO; + else if(modeStr == "simple") + mode = SIMPLEST_TEST; + else + std::cout << "AVAILABLE MODES : simple(default) / terrain / demo" << std::endl; + } + Engine engine; + // this creates the opengl context // the opengl context must exist before any opengl class is used (texture, pipeline, etc..) - engine.createWindow("Sparrow Engine Testing Environment"); + if(mode == FULLSCREEN_DEMO) + engine.createWindow("Sparrow Engine Testing Environment", 1920, 1080, false); + else + engine.createWindow("Sparrow Engine Testing Environment"); // setting up SparrowEngine engine.initPhysics(); @@ -149,7 +168,7 @@ int main(){ engine.getPhysics()->addRigidBody(player->getRigidbody()); // throw cubes and spheres with mouse clicks - Potator *potator = new Potator(player, DefaultKeysMap::MAIN_ACTION, DefaultKeysMap::SECONDARY_ACTION); + Potator *potator = new Potator(player, DefaultKeysMap::MAIN_ACTION, DefaultKeysMap::SECONDARY_ACTION, DefaultKeysMap::TERTIARY_ACTION); scene->getRootObject()->addChild(potator); // lighting @@ -159,7 +178,8 @@ int main(){ scene->getRootObject()->addChild(sunLight); // terrain -// generateTerrain(scene, engine.getPhysics()); + if(mode != SIMPLEST_TEST) + generateTerrain(scene, engine.getPhysics()); // shell output tests engine.outputShell("Hello World!");