summaryrefslogtreecommitdiff
path: root/UserInput.cpp
diff options
context:
space:
mode:
authorJonas Ask2009-11-12 01:21:36 +0000
committerJonas Ask2009-11-12 01:21:36 +0000
commitb04bb54ef68a1e10b4126caece7b522d39a4ed05 (patch)
tree0c9d91412cc9f9bdc54330dbdbd27474602f0faa /UserInput.cpp
parent017d462239242224553e4bbb95b6352c7ab639ec (diff)
downloadstonesense-b04bb54ef68a1e10b4126caece7b522d39a4ed05.tar.gz
stonesense-b04bb54ef68a1e10b4126caece7b522d39a4ed05.tar.bz2
stonesense-b04bb54ef68a1e10b4126caece7b522d39a4ed05.tar.xz
Added 7c's Tower Cap. very nice.
ROTATIONS! Finally I think I got them working right (knock on wood). Redid a boat-load of stuff, not gonna list it all.
Diffstat (limited to 'UserInput.cpp')
-rw-r--r--UserInput.cpp37
1 files changed, 31 insertions, 6 deletions
diff --git a/UserInput.cpp b/UserInput.cpp
index 0d5e311..71a30ca 100644
--- a/UserInput.cpp
+++ b/UserInput.cpp
@@ -19,24 +19,49 @@ void automaticReloadProc(){
}
+void moveViewRelativeToRotation( int stepx, int stepy ){
+ switch(DisplayedRotation){
+ case 0:
+ DisplayedSegmentX += stepx;
+ DisplayedSegmentY += stepy;
+ break;
+ case 1:
+ DisplayedSegmentX += stepy;
+ DisplayedSegmentY -= stepx;
+ break;
+ case 2:
+ DisplayedSegmentX -= stepx;
+ DisplayedSegmentY -= stepy;
+ break;
+ case 3:
+ DisplayedSegmentX -= stepy;
+ DisplayedSegmentY += stepx;
+ break;
+ };
+}
+
void doKeys(){
//mouse_callback = mouseProc;
char stepsize = (key[KEY_LSHIFT] || key[KEY_RSHIFT] ? MAPNAVIGATIONSTEPBIG : MAPNAVIGATIONSTEP);
if(key[KEY_UP]){
- DisplayedSegmentY-=stepsize;
+ //DisplayedSegmentY-=stepsize;
+ moveViewRelativeToRotation( 0, -stepsize );
timeToReloadSegment = true;
}
if(key[KEY_DOWN]){
- DisplayedSegmentY+=stepsize;
+ //DisplayedSegmentY+=stepsize;
+ moveViewRelativeToRotation( 0, stepsize );
timeToReloadSegment = true;
}
if(key[KEY_LEFT]){
- DisplayedSegmentX-=stepsize;
+ //DisplayedSegmentX-=stepsize;
+ moveViewRelativeToRotation( -stepsize, 0 );
timeToReloadSegment = true;
}
if(key[KEY_RIGHT]){
- DisplayedSegmentX+=stepsize;
+ //DisplayedSegmentX+=stepsize;
+ moveViewRelativeToRotation( stepsize, 0 );
timeToReloadSegment = true;
}
if(key[KEY_ENTER]){
@@ -45,12 +70,12 @@ void doKeys(){
timeToReloadSegment = true;
}
if(key[KEY_PGDN] || key[KEY_9]){
- DisplayedSegmentZ--;
+ DisplayedSegmentZ -= stepsize;
if(DisplayedSegmentZ<0) DisplayedSegmentZ = 0;
timeToReloadSegment = true;
}
if(key[KEY_PGUP] || key[KEY_0]){
- DisplayedSegmentZ++;
+ DisplayedSegmentZ += stepsize;
timeToReloadSegment = true;
}
if(key[KEY_R]){