Render::Render() : Widget(NULL, "Render") { assert(_instance == NULL); _instance = this; _childEventSender = NULL; _viewport = Rect(Point(0, 0), Application::instance()->windowSettings().size); _fpsTimer.setIntervalMsec(500); _fps = 1.0f; _frames = 0; setEventMask(ET_AllEvents); setVisible(true); _mapDialog = new MapDialog(this); _gameDialog = new GameDialog(this); _simulation = new Simulation(this, "Simulation"); _settingsDialog = new SettingsDialog(this); _console = new Console(this); Settings::instance()->registerSetting<bool>("FPS", true); BindingManager *b = BindingManager::instance(); b->registerKey("Console", KeyBinding(SDLK_BACKQUOTE)); b->registerKey("ToggleFPS", KeyBinding(SDLK_F1)); b->registerKey("Quit", KeyBinding(SDLK_F4)); }
Simulation::Simulation(Widget* pParent, const string &pName) : Widget(pParent, pName.empty() ? genericName("Simulation") : pName, 1000) { enableInput(); _map = new Map(&_fractal, name() + "_Map"); _map->setScale(Vector3D(20.0f, 800.0f, 20.0f)); _player = new Player(_map); _player->setTeam(Player::Team_Blue); _player->setControlType(Player::Control_AngularVelocity); _player->setAI(false); _player->setFrameVisible(false); _hudMode = Hud_Full; _updateTimer.setIntervalMsec(5); _messageTimer.setIntervalMsec(50); BindingManager *b = BindingManager::instance(); b->registerKey("RollNegative", KeyBinding(SDLK_KP4)); b->registerKey("RollPositive", KeyBinding(SDLK_KP6)); b->registerKey("PitchNegative", KeyBinding(SDLK_KP8)); b->registerKey("PitchPositive", KeyBinding(SDLK_KP2)); b->registerKey("YawNegative", KeyBinding(SDLK_KP1)); b->registerKey("YawPositive", KeyBinding(SDLK_KP3)); b->registerKey("Accelerate", KeyBinding(SDLK_KP_PLUS)); b->registerKey("Decelerate", KeyBinding(SDLK_KP_MINUS)); b->registerKey("ViewYNegative", KeyBinding(SDLK_1)); b->registerKey("ViewYPositive", KeyBinding(SDLK_4)); b->registerKey("ViewXNegative", KeyBinding(SDLK_2)); b->registerKey("ViewXPositive", KeyBinding(SDLK_3)); b->registerKey("ViewZoomIn", KeyBinding(SDLK_5)); b->registerKey("ViewZoomOut", KeyBinding(SDLK_6)); b->registerKey("Fog", KeyBinding(SDLK_f)); b->registerKey("Hud", KeyBinding(SDLK_h)); b->registerKey("View", KeyBinding(SDLK_v)); b->registerKey("GameMenu", KeyBinding(SDLK_ESCAPE)); b->registerKey("Fire", KeyBinding(SDLK_SPACE)); b->registerJoystickAxis("Roll", JoystickAxisBinding(0)); b->registerJoystickAxis("Pitch", JoystickAxisBinding(1)); b->registerJoystickAxis("Yaw", JoystickAxisBinding(3)); b->registerJoystickAxis("Acceleration", JoystickAxisBinding(2)); b->registerJoystickButton("Fire", JoystickButtonBinding(0)); Settings *s = Settings::instance(); s->registerSetting<string>("PlayerName", _player->name()); s->registerSetting<int>("DisplayQuality", Quality_Medium); s->registerSetting<float>("FOV", 45.0f); }