1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2025-02-04 13:19:20 +00:00

rogueviz:: fixed dhrg-pres

This commit is contained in:
Zeno Rogue 2024-06-16 15:47:41 +02:00
parent 38e07081ad
commit bb96612fc6

View File

@ -3,7 +3,7 @@
#include "rogueviz.h" #include "rogueviz.h"
#define RVPATH HYPERPATH "rogueviz/" #define RVPATH HYPERPATH "rogueviz/"
#if CAP_RVPRES #if CAP_RVSLIDES
namespace dhrg { namespace dhrg {
void graphv(std::string s); void graphv(std::string s);
extern double graph_R; extern double graph_R;
@ -69,7 +69,7 @@ void greedy_test() {
} }
void launch_sea() { void launch_sea() {
enable_canvas_backup('0'); enable_canvas_backup(&ccolor::plain);
start_game(); start_game();
dhrg::graphv("rogueviz/dhrg-data/sea-ppl"); dhrg::graphv("rogueviz/dhrg-data/sea-ppl");
resetview(); resetview();
@ -150,7 +150,7 @@ color_t dhrg_grid = 0x00FF00A0;
void graph_visuals(presmode mode) { void graph_visuals(presmode mode) {
if(mode == pmStart) { if(mode == pmStart) {
slide_backup(patterns::canvasback, 0xFF00); slide_backup(ccolor::plain.ctab, colortable{{0xFF00}});
slide_backup(canvas_default_wall, waInvisibleFloor); slide_backup(canvas_default_wall, waInvisibleFloor);
slide_backup(rogueviz::showlabels, true); slide_backup(rogueviz::showlabels, true);
slide_backup(rogueviz::ggamma, 2); slide_backup(rogueviz::ggamma, 2);
@ -296,21 +296,16 @@ slide dhrg_slides[] = {
{"Animated Hyperbolic Plane", 10, LEGAL::ANY | QUICKGEO | NOTITLE, "Scroll the map to learn how hyperbolic geometry works.", {"Animated Hyperbolic Plane", 10, LEGAL::ANY | QUICKGEO | NOTITLE, "Scroll the map to learn how hyperbolic geometry works.",
[] (presmode mode) { [] (presmode mode) {
setCanvas(mode, 'F'); setCanvas(mode, &ccolor::football, [] {
if(mode == pmStart) { tour::slide_backup(ccolor::which->ctab, colortable{0x10F010, 0x104010});
stop_game();
tour::slide_backup(smooth_scrolling, true); tour::slide_backup(smooth_scrolling, true);
tour::slide_backup(colortables['F'][0], 0x10F010);
tour::slide_backup(colortables['F'][1], 0x104010);
tour::slide_backup(patterns::canvasback, 0x10F010);
tour::slide_backup(vid.use_smart_range, 2); tour::slide_backup(vid.use_smart_range, 2);
tour::slide_backup(vid.smart_range_detail, 5); tour::slide_backup(vid.smart_range_detail, 5);
tour::slide_backup(mapeditor::drawplayer, false); tour::slide_backup(mapeditor::drawplayer, false);
tour::slide_backup(no_find_player, true); tour::slide_backup(no_find_player, true);
tour::slide_backup(draw_centerover, false); tour::slide_backup(draw_centerover, false);
tour::slide_backup(vid.axes, 0); tour::slide_backup(vid.axes, 0);
start_game(); });
}
// mine_slide(mode, geom_pentagos, cl_pentagons, chessboard_assigner); // mine_slide(mode, geom_pentagos, cl_pentagons, chessboard_assigner);
no_other_hud(mode); no_other_hud(mode);
} }
@ -320,7 +315,7 @@ slide dhrg_slides[] = {
"Hyperbolic geometry has a tree-like structure, and expands exponentially.\n\nThis tree-like structure has been used in applications, for visualizing and modeling tree-like hierarchical structures.\n\nPress '5' to show the expansion.\n\n" "Hyperbolic geometry has a tree-like structure, and expands exponentially.\n\nThis tree-like structure has been used in applications, for visualizing and modeling tree-like hierarchical structures.\n\nPress '5' to show the expansion.\n\n"
, ,
[] (presmode mode) { [] (presmode mode) {
setCanvas(mode, '0'); setWhiteCanvas(mode, []{});
view_treelike(mode); view_treelike(mode);
// mine_slide(mode, geom_pentagos, cl_pentagons, chessboard_assigner); // mine_slide(mode, geom_pentagos, cl_pentagons, chessboard_assigner);
if(mode == pmFrame) clearMessages(); if(mode == pmFrame) clearMessages();
@ -335,9 +330,12 @@ slide dhrg_slides[] = {
if((cmode && sm::EXPANSION) && show_distance_lists) { if((cmode && sm::EXPANSION) && show_distance_lists) {
vector<dialog::item> it = std::move(dialog::items); vector<dialog::item> it = std::move(dialog::items);
dialog::items.clear(); dialog::items.clear();
dialog::start_list(1600, 1600, 'a');
bool to_end = true;
for(auto& d: it) { for(auto& d: it) {
if(d.key == 'S' || d.key == 'C') continue; if(d.key == 'S' || d.key == 'C' || d.key == 'D') continue;
if(d.body == "" && d.value == "") continue; if(d.body == "" && d.value == "") continue;
if(to_end && d.body.find("(") != string::npos) { println(hlog, "END"); dialog::end_list(); to_end = false; }
string latexbody = d.body + d.value; string latexbody = d.body + d.value;
auto rep = [&] (string s, string t) { auto rep = [&] (string s, string t) {
while(latexbody.find(s) != string::npos) while(latexbody.find(s) != string::npos)
@ -485,13 +483,14 @@ slide dhrg_slides[] = {
{"Basic Algorithmic Properties", 999, LEGAL::NONE | QUICKGEO | NOTITLE, "Basic algorithmic properties of hyperbolic tessellations... press '5' to show some shortest distances.", {"Basic Algorithmic Properties", 999, LEGAL::NONE | QUICKGEO | NOTITLE, "Basic algorithmic properties of hyperbolic tessellations... press '5' to show some shortest distances.",
[] (presmode mode) { [] (presmode mode) {
setCanvas(mode, '0'); setWhiteCanvas(mode, [] {});
view_treelike(mode); view_treelike(mode);
if(mode == pmStart) tour::slide_backup(number_coding, ncNone); if(mode == pmStart) tour::slide_backup(number_coding, ncNone);
if(mode == pmStart) tour::slide_backup(vid.creature_scale, 1); if(mode == pmStart) tour::slide_backup(vid.creature_scale, 1);
if(mode == pmStart) cpath.clear(); if(mode == pmStart) cpath.clear();
if(mode == pmKey) prepare_cpath(); if(mode == pmKey) prepare_cpath();
rogueviz::rv_hook(hooks_frame, 100, [] { rogueviz::rv_hook(hooks_frame, 100, [] {
if(nomap) return;
if(cpath.size()) { if(cpath.size()) {
static bool drawn = true; static bool drawn = true;
if(drawn) println(hlog, "drawn"), drawn = false; if(drawn) println(hlog, "drawn"), drawn = false;