summaryrefslogtreecommitdiff
path: root/src/RobotRace.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/RobotRace.java')
-rw-r--r--src/RobotRace.java18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/RobotRace.java b/src/RobotRace.java
index f3d6b8a..f310997 100644
--- a/src/RobotRace.java
+++ b/src/RobotRace.java
@@ -16,6 +16,7 @@ import robotrace.Vector;
import static java.lang.Math.*;
import java.net.URI;
import java.net.URISyntaxException;
+import java.util.Arrays;
import java.util.Locale;
import java.util.Random;
@@ -648,6 +649,23 @@ public class RobotRace extends Base {
System.err.println("Triggering pause...");
robotRace.requestPauseToggle = true;
return true;
+ case KeyEvent.VK_O: /* camera mode: Overview */
+ case KeyEvent.VK_H: /* camera mode: Helicopter */
+ case KeyEvent.VK_M: /* camera mode: Motorcycle */
+ if (robotRace.mainWindow != null) {
+ System.err.println("Changing camera to: " + e.getKeyChar());
+ // map from camera mode (array index) to key codes
+ Integer cameraModes[] = new Integer[] {
+ KeyEvent.VK_O, /* 0: default mode (Overview) */
+ KeyEvent.VK_H, /* 1: helicopter */
+ KeyEvent.VK_M, /* 2: Motor cycle */
+ };
+ int i = Arrays.asList(cameraModes).indexOf(e.getKeyCode());
+ assert i != -1 : "Camera mode not found for key";
+ robotRace.gs.camMode = i;
+ robotRace.mainWindow.updateElements();
+ }
+ return true;
default:
return false;
}