mirror of
				https://github.com/zenorogue/hyperrogue.git
				synced 2025-10-31 14:02:59 +00:00 
			
		
		
		
	rogueviz::presentation:: new options
This commit is contained in:
		| @@ -505,6 +505,51 @@ vector<slide> rvslides_default = { | ||||
|       }, | ||||
|   }; | ||||
|  | ||||
| map<string, gamedata> switch_gd; | ||||
|  | ||||
| EX void switch_game(string from, string to) { | ||||
|   if(game_active) switch_gd[from].storegame(); | ||||
|   if(switch_gd.count(to)) { | ||||
|     switch_gd[to].restoregame(); | ||||
|     switch_gd.erase(to); | ||||
|     } | ||||
|   } | ||||
|  | ||||
| /** have a separate 'game' that lives between several slides */ | ||||
| void uses_game(presmode mode, string name, reaction_t launcher, reaction_t restore) { | ||||
|   if(mode == pmStart) { | ||||
|     switch_game("main", name); | ||||
|     if(!game_active) launcher(); | ||||
|     else restore(); | ||||
|     restorers.push_back([name] { switch_game(name, "main"); }); | ||||
|     } | ||||
|   } | ||||
|  | ||||
| void latex_slide(presmode mode, string s, flagtype flags, int size) { | ||||
|   empty_screen(mode); | ||||
|   add_stat(mode, [=] { | ||||
|     tour::slide_backup(no_find_player, true); | ||||
|     if(flags & sm::SIDE) { | ||||
|       cmode |= sm::SIDE; | ||||
|       dynamicval<bool> db(nomap, false); | ||||
|       dynamicval<color_t> dc(modelcolor, 0xFF); | ||||
|       dynamicval<color_t> dc2(bordcolor, 0); | ||||
|       gamescreen(); | ||||
|       } | ||||
|     else | ||||
|       gamescreen(); | ||||
|     dialog::init(); | ||||
|     dialog_may_latex( | ||||
|       s, | ||||
|       "(LaTeX is off)", | ||||
|       dialog::dialogcolor, size, LATEX_COLOR | ||||
|       ); | ||||
|     dialog::display(); | ||||
|     return true; | ||||
|     }); | ||||
|   no_other_hud(mode); | ||||
|   } | ||||
|  | ||||
| int pres_hooks =  | ||||
|   addHook(hooks_slide, 100, [] (int mode) { | ||||
|     if(currentslide == 0 && slides == default_slides) { | ||||
|   | ||||
| @@ -243,6 +243,8 @@ function<void(presmode)> roguevizslide_action(char c, const T& t, const U& act) | ||||
|   void show_latex(presmode mode, string s); | ||||
|   void dialog_add_latex(string s, color_t color, int size = 100, flagtype flag = 0); | ||||
|   void dialog_may_latex(string latex, string normal, color_t col = dialog::dialogcolor, int size = 100, flagtype flag = 0); | ||||
|   void uses_game(presmode mode, string name, reaction_t launcher, reaction_t restore); | ||||
|   void latex_slide(presmode mode, string s, flagtype flags = 0, int size = 100); | ||||
|  | ||||
|   inline ld angle = 0; | ||||
|   inline int dir = -1; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Zeno Rogue
					Zeno Rogue