diff options
| author | Jonas Ask | 2009-11-12 01:21:36 +0000 |
|---|---|---|
| committer | Jonas Ask | 2009-11-12 01:21:36 +0000 |
| commit | b04bb54ef68a1e10b4126caece7b522d39a4ed05 (patch) | |
| tree | 0c9d91412cc9f9bdc54330dbdbd27474602f0faa /UserInput.cpp | |
| parent | 017d462239242224553e4bbb95b6352c7ab639ec (diff) | |
| download | stonesense-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.cpp | 37 |
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]){
|
