1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2025-01-12 02:10:34 +00:00

rogueviz::cylon:: use rv_hook

This commit is contained in:
Zeno Rogue 2021-03-31 11:13:37 +02:00
parent 8fa9a13165
commit f03939b46c
2 changed files with 22 additions and 38 deletions

View File

@ -12,8 +12,6 @@ namespace rogueviz {
namespace cylon { namespace cylon {
bool on;
ld cscale = .2; ld cscale = .2;
ld cylball; ld cylball;
@ -216,8 +214,6 @@ void reset() {
bool draw_ptriangle(cell *c, const shiftmatrix& V) { bool draw_ptriangle(cell *c, const shiftmatrix& V) {
if(!on) return false;
if(ir && ir->icgi != &cgi) reset(); if(ir && ir->icgi != &cgi) reset();
if(!ir) { ir = new iring; ir->init(); if(!ir) { ir = new iring; ir->init();
@ -249,46 +245,34 @@ bool draw_ptriangle(cell *c, const shiftmatrix& V) {
bool cylanim = false; bool cylanim = false;
void o_key(o_funcs& v) { void o_key(o_funcs& v) {
if(on) v.push_back(named_functionality("ring size", [] { v.push_back(named_functionality("ring size", [] {
dialog::editNumber(cscale, 0, 1, .01, .1, "", ""); dialog::editNumber(cscale, 0, 1, .01, .1, "", "");
dialog::reaction = reset; dialog::reaction = reset;
})); }));
} }
auto hchook = addHook(hooks_drawcell, 100, draw_ptriangle) void enable() {
rogueviz::rv_hook(hooks_drawcell, 100, draw_ptriangle);
#if CAP_COMMANDLINE rogueviz::rv_hook(anims::hooks_anim, 100, [] {
+ addHook(hooks_args, 100, [] { if(!ir || !cylanim) return;
using namespace arg;
if(0) ;
else if(argis("-cylon")) {
on = true;
}
else if(argis("-cyls")) {
shift_arg_formula(cscale);
}
else if(argis("-cylanim")) {
cylanim = !cylanim;
}
else if(argis("-cylball")) {
shift_arg_formula(cylball);
}
else return 1;
return 0;
})
#endif
+ addHook(anims::hooks_anim, 100, [] {
if(!ir || !cylanim || !on) return;
centerover = currentmap->gamestart(); centerover = currentmap->gamestart();
long long isp = isize(ir->path); long long isp = isize(ir->path);
View = ir->path[isp-1 - (ticks * isp / int(anims::period)) % isp]; View = ir->path[isp-1 - (ticks * isp / int(anims::period)) % isp];
shift_view(point3(0, 0.3, 0)); shift_view(point3(0, 0.3, 0));
anims::moved(); anims::moved();
}) });
rogueviz::rv_hook(hooks_o_key, 80, o_key);
}
+ addHook(hooks_o_key, 80, o_key) auto hchook =
arg::add3("-cylon", enable)
+ addHook(hooks_configfile, 100, [] {
param_f(cscale, "cyls");
param_b(cylanim, "cylanim");
param_f(cylball, "cylball");
})
+ addHook(pres::hooks_build_rvtour, 167, [] (string s, vector<tour::slide>& v) { + addHook(pres::hooks_build_rvtour, 167, [] (string s, vector<tour::slide>& v) {
if(s != "noniso") return; if(s != "noniso") return;

View File

@ -6,7 +6,7 @@
namespace rogueviz { namespace rogueviz {
namespace cylon { namespace cylon {
extern bool on; extern void enable();
extern bool cylanim; extern bool cylanim;
} }
@ -1040,7 +1040,7 @@ slide dmv_slides[] = {
stop_game(); stop_game();
set_geometry(gNil); set_geometry(gNil);
tour::slide_backup(mapeditor::drawplayer, false); tour::slide_backup(mapeditor::drawplayer, false);
tour::slide_backup(rogueviz::cylon::on, true); rogueviz::cylon::enable();
tour::slide_backup(smooth_scrolling, true); tour::slide_backup(smooth_scrolling, true);
tour::on_restore(nilv::set_flags); tour::on_restore(nilv::set_flags);
tour::slide_backup(nilv::nilperiod, make_array(3, 3, 3)); tour::slide_backup(nilv::nilperiod, make_array(3, 3, 3));