mirror of
				https://github.com/zenorogue/hyperrogue.git
				synced 2025-10-30 21:42:59 +00:00 
			
		
		
		
	using new setCanvas function in RogueViz presentations
This commit is contained in:
		| @@ -1497,7 +1497,7 @@ void geodesic_screen(tour::presmode mode, int id) { | ||||
|   static hyperpoint start, middle, target, nlh, nlh1, nlh2; | ||||
|   const ld coord = 10; | ||||
|    | ||||
|   setCanvas(mode, '0'); | ||||
|   setWhiteCanvas(mode); | ||||
|   if(mode == pmStart) { | ||||
|     slide_backup(pmodel); | ||||
|     slide_backup(pconf.clip_min); | ||||
| @@ -1686,7 +1686,7 @@ slide embchess_slides[] = { | ||||
|    "to access various options. The next slides are slides from that video.\n\n", | ||||
|  | ||||
|   [] (presmode mode) { | ||||
|     setCanvas(mode, '0'); | ||||
|     setWhiteCanvas(mode); | ||||
|     slide_url(mode, 'y', "YouTube link", "https://youtu.be/Rhjv_PazzZE"); | ||||
|     slide_action(mode, 'a', "activate / configure", act_or_config); | ||||
|     if(mode == pmKey) act_or_config(); | ||||
|   | ||||
| @@ -469,7 +469,7 @@ auto fifteen_hook = | ||||
|                 slide_error(mode, "file " + fname + " not found"); | ||||
|                 return; | ||||
|                 } | ||||
|               setCanvas(mode, '0'); | ||||
|               setWhiteCanvas(mode); | ||||
|               if(mode == pmStart) { | ||||
|                 slide_backup(mapeditor::drawplayer, mapeditor::drawplayer); | ||||
|                 slide_backup(vid.wallmode, 2); | ||||
|   | ||||
| @@ -556,7 +556,7 @@ bool drawVertex(const shiftmatrix &V, cell *c, shmup::monster *m) { | ||||
|    | ||||
|   void flock_slide(tour::presmode mode, int _N, reaction_t t) { | ||||
|     using namespace tour; | ||||
|     setCanvas(mode, '0'); | ||||
|     setWhiteCanvas(mode); | ||||
|     if(mode == pmStart) { | ||||
|       slide_backup(mapeditor::drawplayer); | ||||
|       t(); | ||||
|   | ||||
| @@ -167,7 +167,7 @@ void heat_slide(vector<tour::slide>& v, string title, string desc, reaction_t t) | ||||
|     tour::slide{cap + title, 18, LEGAL::NONE | QUICKGEO, desc,  | ||||
|     | ||||
|   [t] (presmode mode) { | ||||
|     setCanvas(mode, '0'); | ||||
|     setPlainCanvas(mode); | ||||
|     slide_backup(vid.use_smart_range, 2); | ||||
|     slide_backup(vid.smart_range_detail, 1); | ||||
|     slide_backup(vid.cells_drawn_limit, 100000); | ||||
|   | ||||
| @@ -131,16 +131,14 @@ auto hypcity_ah = arg::add3("-hypcity", enable) | ||||
|               if(mode == pmStart && dim == 2 && !vid.always3) { | ||||
|                 geom3::switch_fpp(); | ||||
|                 } | ||||
|               setCanvas(mode, '0'); | ||||
|               if(mode == pmStart) { | ||||
|               setWhiteCanvas(mode, [setter, dim] { | ||||
|                 slide_backup(canvas_default_wall, waInvisibleFloor); | ||||
|                 if(dim == 2) slide_backup(vid.camera, 0); | ||||
|                 if(dim == 2) slide_backup(vid.depth, 0); | ||||
|                 slide_backup(context_fog, false); | ||||
|                 setter(); | ||||
|                 start_game(); | ||||
|                 enable(); | ||||
|                 } | ||||
|                 }); | ||||
|               if(mode == pmStart) enable(); | ||||
|               non_game_slide_scroll(mode); | ||||
|               }}); | ||||
|         }; | ||||
|   | ||||
| @@ -436,7 +436,7 @@ auto msc = arg::add3("-analogs", enable) | ||||
|         [] (presmode mode) { | ||||
|           slide_url(mode, 'y', "YouTube link (with description)", "https://youtu.be/H7NKhKTjHVE"); | ||||
|           slide_url(mode, 'm', "HyperRogue page about projections", "http://www.roguetemple.com/z/hyper/models.php"); | ||||
|           setCanvas(mode, '0'); | ||||
|           setWhiteCanvas(mode); | ||||
|           if(mode == pmStart) { | ||||
|             slide_backup(mapeditor::drawplayer); | ||||
|             slide_backup(vid.use_smart_range); | ||||
|   | ||||
| @@ -247,7 +247,7 @@ vector<cell*> current_list; | ||||
| void mine_slide(tour::presmode mode, reaction_t set_geom, function<vector<cell*>()> celllister, function<void(cell*)> assigner) { | ||||
|   using namespace tour; | ||||
|   ccolor::plain.ctab = {0}; | ||||
|   setCanvas(mode, '0'); | ||||
|   setWhiteCanvas(mode); | ||||
|   if(mode == pmStart) { | ||||
|     slide_backup(mapeditor::drawplayer, false); | ||||
|     slide_backup(no_find_player, true); | ||||
| @@ -299,7 +299,7 @@ using namespace rogueviz::pres; | ||||
|  | ||||
| void wfc_slide(presmode mode, int type, int rad, int cutoff) { | ||||
|   static vector<pair<cell*, int>> colors; | ||||
|   setCanvas(mode, '0'); | ||||
|   setWhiteCanvas(mode); | ||||
|   dynamic_wfc::wfctype = type; | ||||
|   dynamic_wfc::wfcrad = rad; | ||||
|   dynamic_wfc::cutoff = cutoff; | ||||
| @@ -419,7 +419,7 @@ slide sweeper_slides[] = { | ||||
|   {"Variants: HyperRogue minefield", 123, LEGAL::ANY | QUICKGEO,  | ||||
|     "The other one is the Minefield land in HyperRogue. It is heavily modified from the original but the basic idea stays the same.",  | ||||
|     [] (presmode mode) { | ||||
|       setCanvas(mode, '0'); | ||||
|       setWhiteCanvas(mode); | ||||
|       if(mode == pmStart) { | ||||
|         stop_game(); | ||||
|         firstland = specialland = laMinefield; | ||||
| @@ -509,7 +509,7 @@ slide sweeper_slides[] = { | ||||
|     "For creatures restricted to just this surface, they are indeed striaght lines!\n\n" | ||||
|     , | ||||
|     [] (presmode mode) { | ||||
|       setCanvas(mode, '0'); | ||||
|       setWhiteCanvas(mode); | ||||
|       if(mode == pmStart) { | ||||
|         tour::slide_backup(mapeditor::drawplayer, false); | ||||
|         enable_earth(); | ||||
| @@ -538,17 +538,13 @@ slide sweeper_slides[] = { | ||||
|     "The hyperbolic geometry is the opposite. We can have a pentagon with five right angles.\n\n" | ||||
|     , | ||||
|     [] (presmode mode) { | ||||
|       setCanvas(mode, 'c'); | ||||
|       if(mode == pmStart) { | ||||
|         stop_game(); | ||||
|       setCanvas(mode, &ccolor::chessboard, [] { | ||||
|         set_geometry(g45); | ||||
|         set_variation(eVariation::pure); | ||||
|         tour::slide_backup(ccolor::chessboard.ctab[0], 0x104010); | ||||
|         tour::slide_backup(ccolor::chessboard.ctab[1], 0x10F010); | ||||
|         tour::slide_backup(ccolor::chessboard.ctab, colortable{0x104010, 0x10F010}); | ||||
|         tour::slide_backup(vid.use_smart_range, 2); | ||||
|         tour::slide_backup(vid.smart_range_detail, 1); | ||||
|         start_game(); | ||||
|         }         | ||||
|         }); | ||||
|       // mine_slide(mode, geom_pentagos, cl_pentagons, chessboard_assigner); | ||||
|       non_game_slide_scroll(mode); | ||||
|       tour::slide_backup(draw_centerover, false); | ||||
| @@ -559,14 +555,12 @@ slide sweeper_slides[] = { | ||||
|     "The hyperbolic plane has a tree-like structure. It is best seen in the 'binary tiling'. Press '5' to show the pattern.\n\n" | ||||
|     , | ||||
|     [] (presmode mode) { | ||||
|       setCanvas(mode, 'g'); | ||||
|       non_game_slide_scroll(mode); | ||||
|       if(mode == pmStart) { | ||||
|         tour::slide_backup(ccolor::plain.ctab[0], 0x10A010); | ||||
|         stop_game(); | ||||
|       setCanvasColor(mode, 0x10A010, [] { | ||||
|         set_geometry(gBinary4); | ||||
|         set_variation(eVariation::pure); | ||||
|         start_game(); | ||||
|         }); | ||||
|       non_game_slide_scroll(mode); | ||||
|       if(mode == pmStart) { | ||||
|         tour::slide_backup(vid.use_smart_range, 2); | ||||
|         tour::slide_backup(vid.smart_range_detail, 1); | ||||
|         View = spin90(); | ||||
| @@ -589,13 +583,12 @@ slide sweeper_slides[] = { | ||||
|     "Other hyperbolic tessellations have a similar structure, just a bit more complicated...\n\n" | ||||
|     , | ||||
|     [] (presmode mode) { | ||||
|       setCanvas(mode, '0'); | ||||
|       non_game_slide_scroll(mode); | ||||
|       if(mode == pmStart) { | ||||
|         stop_game(); | ||||
|       setWhiteCanvas(mode, [] { | ||||
|         set_variation(eVariation::pure); | ||||
|         tour::slide_backup(vid.creature_scale, 0.5); | ||||
|         start_game(); | ||||
|         }); | ||||
|       non_game_slide_scroll(mode); | ||||
|       if(mode == pmStart) { | ||||
|         tour::slide_backup(viewdists, true); | ||||
|         using linepatterns::patTree; | ||||
|         tour::slide_backup(patTree.color, 0xFFFFFFFF); | ||||
| @@ -837,14 +830,12 @@ slide sweeper_slides[] = { | ||||
|     "To see this, let's remind you of the binary tiling..." | ||||
|     , | ||||
|     [] (presmode mode) { | ||||
|       setCanvas(mode, 'g'); | ||||
|       non_game_slide_scroll(mode); | ||||
|       if(mode == pmStart) { | ||||
|         tour::slide_backup(ccolor::plain.ctab[0], 0x10A010); | ||||
|         stop_game(); | ||||
|       setCanvasColor(mode, 0x10A010, [] { | ||||
|         set_geometry(gBinary4); | ||||
|         set_variation(eVariation::pure); | ||||
|         start_game(); | ||||
|         }); | ||||
|       non_game_slide_scroll(mode); | ||||
|       if(mode == pmStart) { | ||||
|         tour::slide_backup(vid.use_smart_range, 2); | ||||
|         tour::slide_backup(vid.smart_range_detail, 1); | ||||
|         View = spin90(); | ||||
|   | ||||
| @@ -284,7 +284,12 @@ auto hchook = | ||||
|     | ||||
|   [] (presmode mode) { | ||||
|     slide_url(mode, 'y', "YouTube link", "https://youtu.be/3WejR74o6II"); | ||||
|     setCanvas(mode, '0'); | ||||
|     setWhiteCanvas(mode, [] { | ||||
|       set_geometry(gNil); | ||||
|       tour::on_restore(nilv::set_flags); | ||||
|       tour::slide_backup(nilv::nilperiod, make_array(3, 3, 3)); | ||||
|       nilv::set_flags(); | ||||
|       }); | ||||
|      | ||||
|     slidecommand = "animation"; | ||||
|     if(mode == pmKey) { | ||||
| @@ -292,14 +297,8 @@ auto hchook = | ||||
|       } | ||||
|      | ||||
|     if(mode == pmStart) { | ||||
|       stop_game(); | ||||
|       set_geometry(gNil); | ||||
|       tour::slide_backup(mapeditor::drawplayer, false); | ||||
|       tour::slide_backup(smooth_scrolling, true); | ||||
|       tour::on_restore(nilv::set_flags); | ||||
|       tour::slide_backup(nilv::nilperiod, make_array(3, 3, 3)); | ||||
|       nilv::set_flags(); | ||||
|       start_game(); | ||||
|       playermoved = false; | ||||
|       enable(); | ||||
|       } | ||||
|   | ||||
| @@ -324,7 +324,7 @@ auto hook = arg::add3("-inner-map", enable) | ||||
|         , | ||||
|         [] (presmode mode) { | ||||
|           slide_url(mode, 't', "Twitter link (with description)", "https://twitter.com/zenorogue/status/1212408644941295619"); | ||||
|           setCanvas(mode, 'r'); | ||||
|           setCanvas(mode, &ccolor::random, [] { slide_backup(ccolor::rwalls, 0); }); | ||||
|            | ||||
|           if(mode == pmStart) { | ||||
|             if(!shmup::on) restart_game(rg::shmup); | ||||
|   | ||||
| @@ -598,7 +598,7 @@ auto hooks = | ||||
|       v.push_back(tour::slide{ | ||||
|         s, 10, tour::LEGAL::NONE | tour::QUICKSKIP | tour::QUICKGEO | tour::ALWAYS_TEXT, desc, | ||||
|         [=] (tour::presmode mode) { | ||||
|           setCanvas(mode, '0'); | ||||
|           setWhiteCanvas(mode); | ||||
|           if(youtube != "") | ||||
|             slide_url(mode, 'y', "YouTube link", youtube); | ||||
|           if(twitter != "") | ||||
|   | ||||
| @@ -12,8 +12,7 @@ bool in_special = false; | ||||
| auto geoslide(eGeometry g, char canvas, int jhole, int jblock) { | ||||
|   using namespace tour; | ||||
|   return [=] (presmode mode) { | ||||
|     setCanvas(mode, '0'); | ||||
|     if(mode == pmStart) { | ||||
|     setWhiteCanvas(mode, [&] { | ||||
|       set_geometry(g); | ||||
|       if(g == gSphere) { | ||||
|         set_geometry(gProduct); | ||||
| @@ -31,12 +30,11 @@ auto geoslide(eGeometry g, char canvas, int jhole, int jblock) { | ||||
|       tour::slide_backup(ccolor::jblock, jblock); | ||||
|       tour::slide_backup(ccolor::which, ccolor::legacy(canvas)); | ||||
|       tour::slide_backup(vid.linewidth, vid.linewidth / 10); | ||||
|       start_game(); | ||||
|       if(jblock < 0) { | ||||
|         pmodel = mdDisk; | ||||
|         sightranges[gSol] = 4; | ||||
|         } | ||||
|       } | ||||
|       }); | ||||
|     rogueviz::pres::non_game_slide_scroll(mode); | ||||
|     if(mode == pmStop && jblock < 0) | ||||
|       pmodel = mdGeodesic; | ||||
| @@ -163,11 +161,9 @@ tour::slide *gen_noniso_demo() { | ||||
|       "This is a presentation of non-isotropic geometries.", | ||||
|       [] (presmode mode) { | ||||
|         slide_url(mode, 'p', "paper about non-isotropic geometries", "https://arxiv.org/abs/2002.09533"); | ||||
|         setCanvas(mode, 'r'); | ||||
|         if(mode == pmStart) { | ||||
|         setCanvas(mode, &ccolor::random, [] { | ||||
|           set_geometry(gCubeTiling); | ||||
|           start_game(); | ||||
|           } | ||||
|           }); | ||||
|         } | ||||
|       }); | ||||
|  | ||||
|   | ||||
| @@ -1443,7 +1443,7 @@ void portal_slideshow(tour::ss::slideshow_callback cb) { | ||||
|       portal_slides.emplace_back( | ||||
|         tour::slide{s, 100, LEGAL::NONE | QUICKGEO | QUICKSKIP | ALWAYS_TEXT, text, | ||||
|           [=] (presmode mode) { | ||||
|             setCanvas(mode, '0'); | ||||
|             setPlainCanvas(mode); | ||||
|             if(youtube != "") | ||||
|               slide_url(mode, 'y', "YouTube link", youtube); | ||||
|             non_game_slide_scroll(mode); | ||||
|   | ||||
| @@ -328,7 +328,7 @@ auto xhook = | ||||
|      "Move the mouse nearer and further away from the X.", | ||||
|       | ||||
|     [] (presmode mode) { | ||||
|       setCanvas(mode, '0'); | ||||
|       setPlainCanvas(mode); | ||||
|       slide_url(mode, 'u', "open the URL", "http://www.roguetemple.com/z/sims/snub/"); | ||||
|       slide_backup(rug::model_distance); | ||||
|       slide_backup(vid.rug_config.model); | ||||
|   | ||||
| @@ -526,11 +526,12 @@ auto msc = | ||||
|         , | ||||
|         [] (presmode mode) { | ||||
|           slide_url(mode, 't', "Twitter link (with description)", "https://twitter.com/ZenoRogue/status/1339946298460483589"); | ||||
|           setCanvas(mode, '0'); | ||||
|           setPlainCanvas(mode, [] { | ||||
|             set_geometry(gSphere); | ||||
|             }); | ||||
|            | ||||
|           if(mode == pmStart) { | ||||
|             enable(); | ||||
|             set_geometry(gSphere); | ||||
|             slide_backup(canvas_default_wall, waInvisibleFloor); | ||||
|             slide_backup(pmodel, mdDisk); | ||||
|             slide_backup(pconf.scale, 1000); | ||||
|   | ||||
| @@ -827,7 +827,7 @@ auto chk = arg::add3("-platformer", enable) | ||||
|           slide_url(mode, 'y', "non-Euclidean platformer (YouTube)", "https://www.youtube.com/watch?v=eb2DhCcGH7U"); | ||||
|           slide_url(mode, 't', "non-Euclidean platformer (Twitter)", "https://twitter.com/ZenoRogue/status/1467233150380089345"); | ||||
|           slide_url(mode, 'g', "how to edit this", "https://github.com/zenorogue/hyperrogue/blob/master/rogueviz/platformer.cpp"); | ||||
|           setCanvas(mode, '0'); | ||||
|           setPlainCanvas(mode); | ||||
|           using namespace tour; | ||||
|           if(mode == pmStart) { | ||||
|             mapstream::loadMap("platformer.lev"); | ||||
|   | ||||
| @@ -91,7 +91,7 @@ struct dmv_grapher : grapher { | ||||
|  | ||||
| void nil_screen(presmode mode, int id) { | ||||
|   use_angledir(mode, id == 0); | ||||
|   setCanvas(mode, '0'); | ||||
|   setPlainCanvas(mode); | ||||
|   if(mode == pmStart) { | ||||
|     slide_backup(pmodel); | ||||
|     slide_backup(pconf.clip_min); | ||||
| @@ -287,7 +287,7 @@ void geodesic_screen(presmode mode, int id) { | ||||
|  | ||||
|   use_angledir(mode, id == 0); | ||||
|    | ||||
|   setCanvas(mode, '0'); | ||||
|   setPlainCanvas(mode); | ||||
|   if(mode == pmStart) { | ||||
|     slide_backup(pmodel); | ||||
|     slide_backup(pconf.clip_min); | ||||
| @@ -471,7 +471,7 @@ void geodesic_screen(presmode mode, int id) { | ||||
|  | ||||
| void brick_slide(int i, presmode mode, eGeometry geom, eModel md, int anim) { | ||||
|   using namespace tour; | ||||
|   setCanvas(mode, '0'); | ||||
|   setPlainCanvas(mode); | ||||
|   if(mode == pmStart) { | ||||
|     set_geometry(geom); | ||||
|     start_game(); | ||||
| @@ -511,7 +511,7 @@ void ply_slide(tour::presmode mode, eGeometry geom, eModel md, bool anim) { | ||||
|     check_cgi(); | ||||
|     cgi.require_shapes(); | ||||
|     } | ||||
|   setCanvas(mode, '0'); | ||||
|   setPlainCanvas(mode); | ||||
|   if(mode == pmStart) { | ||||
|     set_geometry(geom); | ||||
|     start_game(); | ||||
| @@ -534,7 +534,7 @@ void ply_slide(tour::presmode mode, eGeometry geom, eModel md, bool anim) { | ||||
|  | ||||
| void impossible_ring_slide(tour::presmode mode) { | ||||
|   using namespace tour; | ||||
|   setCanvas(mode, '0'); | ||||
|   setPlainCanvas(mode); | ||||
|   if(mode == pmStart) { | ||||
|     set_geometry(gCubeTiling); | ||||
|     start_game(); | ||||
| @@ -626,20 +626,14 @@ slide dmv_slides[] = { | ||||
|     "The sum of angles of a triangle is 180 degrees.\n\n", | ||||
|     [] (presmode mode) { | ||||
|       if(mode == pmStartAll) enable_canvas(); | ||||
|       setCanvas(mode, 'F'); | ||||
|       if(mode == pmStart) { | ||||
|         stop_game(); | ||||
|         slide_backup(firstland, laCanvas);         | ||||
|         slide_backup(specialland, laCanvas); | ||||
|  | ||||
|       setCanvas(mode, &ccolor::football, [] { | ||||
|         set_geometry(gArchimedean); arcm::current.parse("3^6"); | ||||
|         set_variation(eVariation::pure); | ||||
|  | ||||
|         slide_backup(ccolor::football.ctab[0], 0xC0FFC0); | ||||
|         slide_backup(ccolor::football.ctab[1], 0x80FF80); | ||||
|         slide_backup(ccolor::which->ctab, colortable{0xC0FFC0, 0x80FF80}); | ||||
|         }); | ||||
|       if(mode == pmStart) { | ||||
|         slide_backup(pconf.alpha, 1);  | ||||
|         slide_backup(pconf.scale, 1);  | ||||
|         start_game(); | ||||
|         slide_backup(patterns::whichShape, '9'); | ||||
|         slide_backup(vid.use_smart_range, 2); | ||||
|         slide_backup(mapeditor::drawplayer, false); | ||||
| @@ -664,7 +658,7 @@ slide dmv_slides[] = { | ||||
|     "For creatures restricted to just this surface, they are indeed striaght lines!\n\n" | ||||
|     , | ||||
|     [] (presmode mode) { | ||||
|       setCanvas(mode, '0'); | ||||
|       setPlainCanvas(mode); | ||||
|       if(mode == pmStart) { | ||||
|         tour::slide_backup(mapeditor::drawplayer, false); | ||||
|         enable_earth(); | ||||
| @@ -701,19 +695,15 @@ slide dmv_slides[] = { | ||||
|     "In hyperbolic geometry, the sum of angles of a triangle is less than 180 degrees.\n\n", | ||||
|     [] (presmode mode) { | ||||
|       if(mode == pmStartAll) enable_canvas(); | ||||
|       setCanvas(mode, 'F'); | ||||
|       if(mode == pmStart) { | ||||
|         stop_game(); | ||||
|         slide_backup(firstland, laCanvas);         | ||||
|         slide_backup(specialland, laCanvas); | ||||
|       setCanvas(mode, &ccolor::football, [] { | ||||
|         set_geometry(gNormal); | ||||
|         set_variation(eVariation::bitruncated); | ||||
|         slide_backup(ccolor::football.ctab[0], 0xC0FFC0); | ||||
|         slide_backup(ccolor::football.ctab[1], 0x80FF80); | ||||
|         slide_backup(ccolor::which->ctab, colortable{0xC0FFC0, 0x80FF80}); | ||||
|         }); | ||||
|       if(mode == pmStart) { | ||||
|         slide_backup(pconf.alpha, 1);  | ||||
|         slide_backup(pconf.scale, 1);  | ||||
|         slide_backup(rug::mouse_control_rug, true); | ||||
|         start_game(); | ||||
|         slide_backup(patterns::whichShape, '9'); | ||||
|         } | ||||
|       if(mode == pmStart) { | ||||
| @@ -759,10 +749,9 @@ slide dmv_slides[] = { | ||||
|         slide_backup(vid.fov, 120); | ||||
|         } | ||||
|  | ||||
|       setCanvas(mode, '0'); | ||||
|       setPlainCanvas(mode, [] { set_geometry(gSpace534); }); | ||||
|        | ||||
|       if(mode == pmStart) { | ||||
|         set_geometry(gSpace534); | ||||
|         /* | ||||
|         static bool solved = false; | ||||
|         if(!solved) { | ||||
| @@ -917,12 +906,10 @@ slide dmv_slides[] = { | ||||
|     "(press Home/End and arrow keys to move)", | ||||
|  | ||||
|     [] (presmode mode) { | ||||
|       setCanvas(mode, '0'); | ||||
|       setWhiteCanvas(mode, [] { set_geometry(gNil); }); | ||||
|       slidecommand = "highlight dimensions"; | ||||
|       if(mode == pmStart) { | ||||
|         tour::slide_backup(pmodel, mdGeodesic); | ||||
|         set_geometry(gNil); | ||||
|         start_game(); | ||||
|         rogueviz::rv_hook(hooks_drawcell, 100, rogueviz::nilcompass::draw_compass); | ||||
|         View = Id; | ||||
|         shift_view(ztangent(.5)); | ||||
| @@ -1199,22 +1186,19 @@ slide dmv_slides[] = { | ||||
|     "Here is how it looks in Nil. Press '5' to animate.\n", | ||||
|     | ||||
|   [] (presmode mode) { | ||||
|     setCanvas(mode, '0'); | ||||
|     setWhiteCanvas(mode, [] { | ||||
|       set_geometry(gNil); | ||||
|       tour::on_restore(nilv::set_flags); | ||||
|       tour::slide_backup(nilv::nilperiod, make_array(3, 3, 3)); | ||||
|       nilv::set_flags(); | ||||
|       }); | ||||
|      | ||||
|     slidecommand = "animation"; | ||||
|     if(mode == pmKey) { | ||||
|       tour::slide_backup(rogueviz::cylon::cylanim, !rogueviz::cylon::cylanim); | ||||
|       } | ||||
|      | ||||
|     if(mode == pmStart) { | ||||
|       stop_game(); | ||||
|       set_geometry(gNil); | ||||
|       rogueviz::cylon::enable(); | ||||
|       tour::on_restore(nilv::set_flags); | ||||
|       tour::slide_backup(nilv::nilperiod, make_array(3, 3, 3)); | ||||
|       nilv::set_flags(); | ||||
|       start_game(); | ||||
|       } | ||||
|     if(mode == pmStart) rogueviz::cylon::enable(); | ||||
|     non_game_slide_scroll(mode); | ||||
|     }}, | ||||
|  | ||||
| @@ -1261,13 +1245,8 @@ slide dmv_slides[] = { | ||||
|     [] (presmode mode) { | ||||
|       slide_url(mode, 'y', "YouTube link", "https://www.youtube.com/watch?v=mxvUAcgN3go"); | ||||
|       slide_url(mode, 'n', "Nil Rider", "https://zenorogue.itch.io/nil-rider"); | ||||
|       setCanvas(mode, '0'); | ||||
|       setWhiteCanvas(mode, [] { set_geometry(gNil); }); | ||||
|       if(mode == pmStart) { | ||||
|         stop_game(); | ||||
|         set_geometry(gNil); | ||||
|         check_cgi(); | ||||
|         cgi.require_shapes(); | ||||
|         start_game(); | ||||
|         rogueviz::balls::initialize(1); | ||||
|         rogueviz::balls::balls.resize(3); | ||||
|         pmodel = mdEquidistant; | ||||
|   | ||||
| @@ -211,7 +211,7 @@ auto hooks = | ||||
|           "You can also obtain a different geometry (Berger sphere) by stretching along the fibers. Press 5 to stretch."+bonus | ||||
|           , | ||||
|           [m] (presmode mode) { | ||||
|             setCanvas(mode, '0'); | ||||
|             setWhiteCanvas(mode); | ||||
|             slide_url(mode, 't', "Twitter link", "https://twitter.com/ZenoRogue/status/1166723332840001536"); | ||||
|             slide_url(mode, 's', "stretched Twitter link", "https://twitter.com/ZenoRogue/status/1258035231996682244"); | ||||
|             if(mode == pmStart) { | ||||
| @@ -238,7 +238,7 @@ auto hooks = | ||||
|           "Again, press 5 to stretch."+bonus | ||||
|           , | ||||
|           [m] (presmode mode) { | ||||
|             setCanvas(mode, '0'); | ||||
|             setWhiteCanvas(mode); | ||||
|             slide_url(mode, 's', "stretched Twitter link", "https://twitter.com/ZenoRogue/status/1259143275115687936"); | ||||
|             if(mode == pmStart) { | ||||
|               set_geometry(gKleinQuartic); | ||||
|   | ||||
| @@ -160,7 +160,7 @@ void rw_slide(vector<tour::slide>& v, string title, string desc, reaction_t t) { | ||||
|     tour::slide{cap + title, 18, LEGAL::NONE | QUICKGEO, desc,  | ||||
|     | ||||
|   [t] (presmode mode) { | ||||
|     setCanvas(mode, '0'); | ||||
|     setPlainCanvas(mode); | ||||
|  | ||||
|     if(mode == pmStart) { | ||||
|       tour::slide_backup(mapeditor::drawplayer, false); | ||||
|   | ||||
| @@ -210,7 +210,7 @@ void snow_slide(vector<tour::slide>& v, string title, string desc, reaction_t t) | ||||
|     tour::slide{cap + title, 18, LEGAL::NONE | QUICKGEO, desc,  | ||||
|     | ||||
|   [t] (presmode mode) { | ||||
|     setCanvas(mode, '0'); | ||||
|     setPlainCanvas(mode); | ||||
|  | ||||
|     slidecommand = "auto-movement"; | ||||
|     if(mode == pmKey) { | ||||
|   | ||||
| @@ -248,7 +248,7 @@ int phooks = arg::add3("-stair", enable) | ||||
|      "Press '5' to change the curvature or other parameters.", | ||||
|       | ||||
|     [] (presmode mode) { | ||||
|       setCanvas(mode, '0'); | ||||
|       setPlainCanvas(mode); | ||||
|       if(mode == pmStart) staircase::make_staircase(); | ||||
|       slidecommand = "staircase menu"; | ||||
|       if(mode == pmKey) pushScreen(staircase::showMenu); | ||||
|   | ||||
| @@ -332,7 +332,7 @@ auto hook = 0 | ||||
|   [] (presmode mode) { | ||||
|     slide_url(mode, 'y', "YouTube link", "https://www.youtube.com/watch?v=bKzibaNqEog"); | ||||
|     slide_url(mode, 't', "Twitter link", "https://twitter.com/ZenoRogue/status/1247900522905886723"); | ||||
|     setCanvas(mode, '0'); | ||||
|     setPlainCanvas(mode); | ||||
|      | ||||
|     if((mode == pmStop || mode == pmGeometry) && rug::rugged) rug::close(); | ||||
|      | ||||
|   | ||||
| @@ -500,7 +500,7 @@ bool draw_ptriangle(cell *c, const shiftmatrix& V) { | ||||
| #if CAP_RVSLIDES | ||||
| void slide_itri(tour::presmode mode, int id) { | ||||
|   using namespace tour; | ||||
|   setCanvas(mode, '0'); | ||||
|   setPlainCanvas(mode); | ||||
|    | ||||
|   if(mode == pmStart) { | ||||
|     stop_game(); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Zeno Rogue
					Zeno Rogue