mirror of
				https://github.com/zenorogue/hyperrogue.git
				synced 2025-10-30 21:42:59 +00:00 
			
		
		
		
	game_keys_scroll option
This commit is contained in:
		| @@ -646,6 +646,9 @@ EX void initConfig() { | |||||||
|   param_b(resizable, "resizable", true) |   param_b(resizable, "resizable", true) | ||||||
|   -> editable("resizable window", 'r'); |   -> editable("resizable window", 'r'); | ||||||
|  |  | ||||||
|  |   param_b(no_find_player, "no_find_player"); | ||||||
|  |   param_b(game_keys_scroll, "game_keys_scroll"); | ||||||
|  |  | ||||||
|   param_b(arb::apeirogon_consistent_coloring, "apeirogon_consistent_coloring", true) |   param_b(arb::apeirogon_consistent_coloring, "apeirogon_consistent_coloring", true) | ||||||
|   -> editable("apeirogon_consistent_coloring", 'c'); |   -> editable("apeirogon_consistent_coloring", 'c'); | ||||||
|   param_b(arb::apeirogon_hide_grid_edges, "apeirogon_hide_grid_edges", true) |   param_b(arb::apeirogon_hide_grid_edges, "apeirogon_hide_grid_edges", true) | ||||||
|   | |||||||
							
								
								
									
										53
									
								
								control.cpp
									
									
									
									
									
								
							
							
						
						
									
										53
									
								
								control.cpp
									
									
									
									
									
								
							| @@ -356,14 +356,22 @@ EX void full_forward_camera(ld t) { | |||||||
|     } |     } | ||||||
|   } |   } | ||||||
|  |  | ||||||
| EX void full_strafe_camera(ld t) { | EX void full_cstrafe_camera(int dir, ld t) { | ||||||
|   if(GDIM == 3) { |   if(GDIM == 3) { | ||||||
|     shift_view(ctangent(0, t * camera_speed)); |     shift_view(ctangent(dir, t * camera_speed)); | ||||||
|     didsomething = true; |     didsomething = true; | ||||||
|     playermoved = false; |     playermoved = false; | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  | EX void full_strafe_camera(ld t) { full_cstrafe_camera(0, t); } | ||||||
|  |  | ||||||
|  | EX void full_ystrafe_camera(ld t) { | ||||||
|  |   if(walking::on) walking::eye_level += t; | ||||||
|  |   else full_cstrafe_camera(1, t); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |  | ||||||
| EX ld third_person_rotation = 0; | EX ld third_person_rotation = 0; | ||||||
|  |  | ||||||
| EX void full_rotate_camera(int dir, ld val) { | EX void full_rotate_camera(int dir, ld val) { | ||||||
| @@ -512,7 +520,7 @@ EX void handleKeyNormal(int sym, int uni) { | |||||||
|   if(handleTune(sym, uni)) return; |   if(handleTune(sym, uni)) return; | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|   if(!(uni >= 'A' && uni <= 'Z') && DEFAULTCONTROL) { |   if(!(uni >= 'A' && uni <= 'Z') && DEFAULTCONTROL && !game_keys_scroll) { | ||||||
|     for(int i=0; i<8; i++) |     for(int i=0; i<8; i++) | ||||||
|       if(among(sym, keys_vi[i], keys_wasd[i], keys_numpad[i])) |       if(among(sym, keys_vi[i], keys_wasd[i], keys_numpad[i])) | ||||||
|         movepckeydir(i); |         movepckeydir(i); | ||||||
| @@ -535,7 +543,7 @@ EX void handleKeyNormal(int sym, int uni) { | |||||||
|     } |     } | ||||||
|   #endif |   #endif | ||||||
|    |    | ||||||
|   if(DEFAULTCONTROL) { |   if(DEFAULTCONTROL && !game_keys_scroll) { | ||||||
|     if(sym == '.' || sym == 's') movepcto(-1, 1); |     if(sym == '.' || sym == 's') movepcto(-1, 1); | ||||||
|     if((sym == SDLK_DELETE || sym == SDLK_KP_PERIOD || sym == 'g') && uni != 'G' && uni != 'G'-64)  |     if((sym == SDLK_DELETE || sym == SDLK_KP_PERIOD || sym == 'g') && uni != 'G' && uni != 'G'-64)  | ||||||
|       movepcto(MD_DROP, 1); |       movepcto(MD_DROP, 1); | ||||||
| @@ -550,7 +558,7 @@ EX void handleKeyNormal(int sym, int uni) { | |||||||
|       } |       } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   if(sym == SDLK_KP5 && DEFAULTCONTROL) movepcto(-1, 1); |   if(sym == SDLK_KP5 && DEFAULTCONTROL && !game_keys_scroll) movepcto(-1, 1); | ||||||
|  |  | ||||||
|   if(sym == SDLK_F5) { |   if(sym == SDLK_F5) { | ||||||
|     #if CAP_DAILY |     #if CAP_DAILY | ||||||
| @@ -580,7 +588,7 @@ EX void handleKeyNormal(int sym, int uni) { | |||||||
|    |    | ||||||
|   if(uni == 'o' && DEFAULTNOR(sym)) get_o_key().second(); |   if(uni == 'o' && DEFAULTNOR(sym)) get_o_key().second(); | ||||||
| #if CAP_INV | #if CAP_INV | ||||||
|   if(uni == 'i' && DEFAULTNOR(sym) && inv::on)  |   if(uni == 'i' && DEFAULTNOR(sym) && inv::on && !game_keys_scroll) | ||||||
|     pushScreen(inv::show); |     pushScreen(inv::show); | ||||||
| #endif | #endif | ||||||
|    |    | ||||||
| @@ -689,13 +697,16 @@ EX void resize_screen_to(int x, int y) { | |||||||
|  |  | ||||||
| int lastframe; | int lastframe; | ||||||
|  |  | ||||||
| EX int sc_ticks; | EX int sc_ticks, sc_ticks2; | ||||||
|  |  | ||||||
| EX bool mouseaiming(bool shmupon) { | EX bool mouseaiming(bool shmupon) { | ||||||
|   return |   return | ||||||
|     (GDIM == 3 && !shmupon) || (rug::rugged && (lctrlclick ^ rug::mouse_control_rug)); |     (GDIM == 3 && !shmupon) || (rug::rugged && (lctrlclick ^ rug::mouse_control_rug)); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  | /* visualization only -- the HyperRogue movement keys should move the camera */ | ||||||
|  | EX bool game_keys_scroll; | ||||||
|  |  | ||||||
| EX void mainloopiter() { | EX void mainloopiter() { | ||||||
|   GLWRAP; |   GLWRAP; | ||||||
|   DEBB(DF_GRAPH, ("main loop\n")); |   DEBB(DF_GRAPH, ("main loop\n")); | ||||||
| @@ -907,7 +918,10 @@ EX void mainloopiter() { | |||||||
|     lastticks = ticks; |     lastticks = ticks; | ||||||
|      |      | ||||||
|     #if CAP_SDL2 |     #if CAP_SDL2 | ||||||
|     const Uint8 *keystate = SDL_GetKeyboardState(NULL); |     rug::using_rugview urv; | ||||||
|  |     auto& lastticks = sc_ticks; | ||||||
|  |     ld t = (ticks - lastticks) * shiftmul / 1000.; | ||||||
|  |     lastticks = ticks; | ||||||
|  |  | ||||||
|     if(keystate[SDL_SCANCODE_END] && GDIM == 3 && DEFAULTNOR(SDL_SCANCODE_END)) full_forward_camera(-t); |     if(keystate[SDL_SCANCODE_END] && GDIM == 3 && DEFAULTNOR(SDL_SCANCODE_END)) full_forward_camera(-t); | ||||||
|     if(keystate[SDL_SCANCODE_HOME] && GDIM == 3 && DEFAULTNOR(SDL_SCANCODE_HOME)) full_forward_camera(t); |     if(keystate[SDL_SCANCODE_HOME] && GDIM == 3 && DEFAULTNOR(SDL_SCANCODE_HOME)) full_forward_camera(t); | ||||||
| @@ -919,7 +933,6 @@ EX void mainloopiter() { | |||||||
|     if(keystate[SDL_SCANCODE_PAGEDOWN] && DEFAULTNOR(SDL_SCANCODE_PAGEDOWN)) full_rotate_view(-t * 180 / M_PI, -t); |     if(keystate[SDL_SCANCODE_PAGEDOWN] && DEFAULTNOR(SDL_SCANCODE_PAGEDOWN)) full_rotate_view(-t * 180 / M_PI, -t); | ||||||
|  |  | ||||||
|     #else |     #else | ||||||
|     Uint8 *keystate = SDL_GetKeyState(NULL); |  | ||||||
|  |  | ||||||
|     if(keystate[SDLK_END] && GDIM == 3 && DEFAULTNOR(SDLK_END)) full_forward_camera(-t); |     if(keystate[SDLK_END] && GDIM == 3 && DEFAULTNOR(SDLK_END)) full_forward_camera(-t); | ||||||
|     if(keystate[SDLK_HOME] && GDIM == 3 && DEFAULTNOR(SDLK_HOME)) full_forward_camera(t); |     if(keystate[SDLK_HOME] && GDIM == 3 && DEFAULTNOR(SDLK_HOME)) full_forward_camera(t); | ||||||
| @@ -933,6 +946,28 @@ EX void mainloopiter() { | |||||||
|     } |     } | ||||||
|   else sc_ticks = ticks; |   else sc_ticks = ticks; | ||||||
|  |  | ||||||
|  |   if(game_keys_scroll && !shmup::on && (cmode & sm::NORMAL)) { | ||||||
|  |     rug::using_rugview urv; | ||||||
|  |     auto& lastticks = sc_ticks2; | ||||||
|  |     ld t = (ticks - lastticks) * shiftmul / 1000.; | ||||||
|  |     lastticks = ticks; | ||||||
|  |     println(hlog, "t = ", t); | ||||||
|  |  | ||||||
|  |     if(keystate['d'] && DEFAULTNOR('d')) full_rotate_camera(0, -t); | ||||||
|  |     if(keystate['a'] && DEFAULTNOR('a')) full_rotate_camera(0, t); | ||||||
|  |     if(keystate['w'] && DEFAULTNOR('w')) full_rotate_camera(1, t); | ||||||
|  |     if(keystate['s'] && DEFAULTNOR('s')) full_rotate_camera(1, -t); | ||||||
|  |     if(keystate['q'] && DEFAULTNOR('q')) full_rotate_view(t * 180 / M_PI, t); | ||||||
|  |     if(keystate['e'] && DEFAULTNOR('e')) full_rotate_view(-t * 180 / M_PI, -t); | ||||||
|  |  | ||||||
|  |     if(keystate['i'] && GDIM == 3 && DEFAULTNOR('i')) full_forward_camera(-t); | ||||||
|  |     if(keystate['k'] && GDIM == 3 && DEFAULTNOR('k')) full_forward_camera(t); | ||||||
|  |     if(keystate['l'] && GDIM == 3 && DEFAULTNOR('l')) full_strafe_camera(-t); | ||||||
|  |     if(keystate['j'] && GDIM == 3 && DEFAULTNOR('j')) full_strafe_camera(t); | ||||||
|  |     if(keystate['h'] && GDIM == 3 && DEFAULTNOR('h')) full_ystrafe_camera(-t); | ||||||
|  |     if(keystate['y'] && GDIM == 3 && DEFAULTNOR('y')) full_ystrafe_camera(t); | ||||||
|  |     } | ||||||
|  |  | ||||||
|   #if CAP_VR |   #if CAP_VR | ||||||
|   vrhr::vr_control(); |   vrhr::vr_control(); | ||||||
|   #endif |   #endif | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Zeno Rogue
					Zeno Rogue