mirror of
				https://github.com/zenorogue/hyperrogue.git
				synced 2025-10-31 22:12:59 +00:00 
			
		
		
		
	intra:: select edge ratio
This commit is contained in:
		
							
								
								
									
										31
									
								
								intra.cpp
									
									
									
									
									
								
							
							
						
						
									
										31
									
								
								intra.cpp
									
									
									
									
									
								
							| @@ -809,6 +809,15 @@ EX void show_portals() { | ||||
|     dialog::add_action_push(ray::configure); | ||||
|     } | ||||
|  | ||||
|   if(prod && point_direction < mouseover2->type - 2) { | ||||
|     ld r = get_ratio_edge(mouseover2, point_direction); | ||||
|     dialog::addSelItem(XLAT("height-to-width ratio"), fts(r), 'r'); | ||||
|     dialog::add_action([] { | ||||
|       be_ratio_edge(mouseover2, point_direction); | ||||
|       }); | ||||
|     } | ||||
|   else dialog::addBreak(100); | ||||
|  | ||||
|   walking::add_options(); | ||||
|  | ||||
|   dialog::addHelp(); | ||||
| @@ -847,14 +856,28 @@ EX void be_ratio(ld v IS(1)) { | ||||
|   cgi.require_basics(); | ||||
|   } | ||||
|  | ||||
| EX void be_ratio_edge(int i, ld v IS(1)) { | ||||
|   start_game(); | ||||
|   ld len = hdist(currentmap->get_corner(cwt.at, i), currentmap->get_corner(cwt.at, (i+1)%cwt.at->type)); | ||||
|   PIU( vid.plevel_factor = v * len / cgi.scalefactor ); | ||||
| EX ld get_edge_length(cell *c, int i) { | ||||
|   auto c1 = hybrid::get_where(c).first; | ||||
|   return PIU( hdist(currentmap->get_corner(c1, i), currentmap->get_corner(c1, (i+c1->type-1)%c1->type)) ); | ||||
|   } | ||||
|  | ||||
| EX ld get_ratio_edge(cell *c, int i) { | ||||
|   ld len = get_edge_length(c, i); | ||||
|   return PIU( vid.plevel_factor * cgi.scalefactor / len ); | ||||
|   } | ||||
|  | ||||
| EX void be_ratio_edge(cell *c, int i, ld v IS(1)) { | ||||
|   ld len = get_edge_length(c, i); | ||||
|   vid.plevel_factor = v * len / cgi.scalefactor; | ||||
|   check_cgi(); | ||||
|   cgi.require_basics(); | ||||
|   } | ||||
|  | ||||
| EX void be_ratio_edge(int i, ld v IS(1)) { | ||||
|   start_game(); | ||||
|   be_ratio_edge(cwt.at, i, v); | ||||
|   } | ||||
|  | ||||
| /** Remove the space with the given id. Turns off intra */ | ||||
| EX void kill(int id) { | ||||
|   if(in) become(); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Zeno Rogue
					Zeno Rogue