updated keybinding to add mmiddle ckick as tertiary action, added argument to main

This commit is contained in:
Anselme 2016-12-18 14:58:06 +01:00
parent 9c62efeb67
commit b81630c28c
2 changed files with 27 additions and 6 deletions

View File

@ -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<int> 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<int> getShellContext()

View File

@ -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!");