function escapeFromGame() { disconnect(); } function showPlayerList(%val) { if (%val) PlayerListGui.toggle(); } function hideHUDs(%val) { if (%val) HudlessPlayGui.toggle(); } function doScreenShotHudless(%val) { if(%val) { canvas.setContent(HudlessPlayGui); //doScreenshot(%val); schedule(10, 0, "doScreenShot", %val); } else { %playGUIName = ProjectSettings.value("UI/playGUIName"); Canvas.setContent(%playGUIName); } } $movementSpeed = 1; // m/s function setSpeed(%speed) { if(%speed) $movementSpeed = %speed; } function moveleft(%val) { $mvLeftAction = %val * $movementSpeed; } function moveright(%val) { $mvRightAction = %val * $movementSpeed; } function moveforward(%val) { $mvForwardAction = %val * $movementSpeed; } function movebackward(%val) { $mvBackwardAction = %val * $movementSpeed; } function moveup(%val) { %object = ServerConnection.getControlObject(); if(%object.isInNamespaceHierarchy("Camera")) $mvUpAction = %val * $movementSpeed; } function movedown(%val) { %object = ServerConnection.getControlObject(); if(%object.isInNamespaceHierarchy("Camera")) $mvDownAction = %val * $movementSpeed; } function turnLeft( %val ) { $mvYawRightSpeed = %val ? $Pref::Input::KeyboardTurnSpeed : 0; } function turnRight( %val ) { $mvYawLeftSpeed = %val ? $Pref::Input::KeyboardTurnSpeed : 0; } function panUp( %val ) { $mvPitchDownSpeed = %val ? $Pref::Input::KeyboardTurnSpeed : 0; } function panDown( %val ) { $mvPitchUpSpeed = %val ? $Pref::Input::KeyboardTurnSpeed : 0; } function getMouseAdjustAmount(%val) { // based on a default camera FOV of 90' return(%val * ($cameraFov / 90) * 0.01) * $pref::Input::LinkMouseSensitivity; } function getGamepadAdjustAmount(%val) { // based on a default camera FOV of 90' return(%val * ($cameraFov / 90) * 0.01) * 10.0; } function yaw(%val) { %yawAdj = getMouseAdjustAmount(%val); if(ServerConnection.isControlObjectRotDampedCamera()) { // Clamp and scale %yawAdj = mClamp(%yawAdj, -m2Pi()+0.01, m2Pi()-0.01); %yawAdj *= 0.5; } $mvYaw += %yawAdj; } function pitch(%val) { %pitchAdj = getMouseAdjustAmount(%val); if(ServerConnection.isControlObjectRotDampedCamera()) { // Clamp and scale %pitchAdj = mClamp(%pitchAdj, -m2Pi()+0.01, m2Pi()-0.01); %pitchAdj *= 0.5; } $mvPitch += %pitchAdj; } function jump(%val) { $mvTriggerCount2++; } function gamePadMoveX( %val ) { if(%val > 0) { $mvRightAction = %val * $movementSpeed; $mvLeftAction = 0; } else { $mvRightAction = 0; $mvLeftAction = -%val * $movementSpeed; } } function gamePadMoveY( %val ) { if(%val > 0) { $mvForwardAction = %val * $movementSpeed; $mvBackwardAction = 0; } else { $mvForwardAction = 0; $mvBackwardAction = -%val * $movementSpeed; } } function gamepadYaw(%val) { %yawAdj = getGamepadAdjustAmount(%val); if(ServerConnection.isControlObjectRotDampedCamera()) { // Clamp and scale %yawAdj = mClamp(%yawAdj, -m2Pi()+0.01, m2Pi()-0.01); %yawAdj *= 0.5; } if(%yawAdj > 0) { $mvYawLeftSpeed = %yawAdj; $mvYawRightSpeed = 0; } else { $mvYawLeftSpeed = 0; $mvYawRightSpeed = -%yawAdj; } } function gamepadPitch(%val) { %pitchAdj = getGamepadAdjustAmount(%val); if(ServerConnection.isControlObjectRotDampedCamera()) { // Clamp and scale %pitchAdj = mClamp(%pitchAdj, -m2Pi()+0.01, m2Pi()-0.01); %pitchAdj *= 0.5; } if(%pitchAdj > 0) { $mvPitchDownSpeed = %pitchAdj; $mvPitchUpSpeed = 0; } else { $mvPitchDownSpeed = 0; $mvPitchUpSpeed = -%pitchAdj; } } function startRecordingDemo( %val ) { if ( %val ) startDemoRecord(); } function stopRecordingDemo( %val ) { if ( %val ) stopDemoRecord(); } //------------------------------------------------------------------------------ // Debugging Functions //------------------------------------------------------------------------------ function showMetrics(%val) { if(%val) { if(!Canvas.isMember(FrameOverlayGui)) metrics("fps gfx shadow sfx terrain groundcover forest net"); else metrics(""); } } GlobalActionMap.bind(keyboard, "ctrl F2", showMetrics); //------------------------------------------------------------------------------ // // Start profiler by pressing ctrl f3 // ctrl f3 - starts profile that will dump to console and file // function doProfile(%val) { if (%val) { // key down -- start profile echo("Starting profile session..."); profilerReset(); profilerEnable(true); } else { // key up -- finish off profile echo("Ending profile session..."); profilerDumpToFile("profilerDumpToFile" @ getSimTime() @ ".txt"); profilerEnable(false); } }