mirror of
				https://github.com/zenorogue/hyperrogue.git
				synced 2025-11-04 07:43:02 +00:00 
			
		
		
		
	rogueviz:: used args::add and made hypcity and hypocycloid enablable
This commit is contained in:
		@@ -33,19 +33,12 @@ void drawExtra() {
 | 
			
		||||
  canmove = true; items[itOrbAether] = true;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
auto hooks =
 | 
			
		||||
  addHook(hooks_args, 100, [] {
 | 
			
		||||
    using namespace arg;
 | 
			
		||||
    if(argis("-net")) {
 | 
			
		||||
      PHASE(3);
 | 
			
		||||
auto hooks = arg::add3("-net", [] {
 | 
			
		||||
      init(0);
 | 
			
		||||
      rv_hook(hooks_frame, 0, drawExtra);
 | 
			
		||||
      linepatterns::patTriTree.color = 0x30;
 | 
			
		||||
      linepatterns::patTriOther.color = 0x10;
 | 
			
		||||
      linepatterns::patTriRings.color = 0xFF;
 | 
			
		||||
      return 0;
 | 
			
		||||
      }
 | 
			
		||||
    return 1;
 | 
			
		||||
    });
 | 
			
		||||
      });
 | 
			
		||||
 | 
			
		||||
}}
 | 
			
		||||
 
 | 
			
		||||
@@ -6,15 +6,16 @@
 | 
			
		||||
// see the results posted here:
 | 
			
		||||
 | 
			
		||||
// https://twitter.com/ZenoRogue/status/1375750351391981570
 | 
			
		||||
// -noplayer -geo 4x5 -gp 1 1 -unrectified -switch-fpp -canvas 303030 camera=0 depth=0 -sr 3 -PM 0 -alpha 1 -zoom .95
 | 
			
		||||
// -hypcity -noplayer -geo 4x5 -gp 1 1 -unrectified -switch-fpp -canvas 303030 camera=0 depth=0 -sr 3 -PM 0 -alpha 1 -zoom .95
 | 
			
		||||
 | 
			
		||||
// https://twitter.com/ZenoRogue/status/1375748835046215682
 | 
			
		||||
// -noplayer -geo nil -canvas 303030 -back 44e4 -sight3 3
 | 
			
		||||
// -hypcity -noplayer -geo nil -canvas 303030 -back 44e4 -sight3 3
 | 
			
		||||
 | 
			
		||||
// https://twitter.com/ZenoRogue/status/1375754422752575488
 | 
			
		||||
// add -PM 0 -alpha 1
 | 
			
		||||
//  add -PM 0 -alpha 1
 | 
			
		||||
 | 
			
		||||
namespace hr {
 | 
			
		||||
namespace hypcity {
 | 
			
		||||
 | 
			
		||||
using namespace rogueviz::objmodels;
 | 
			
		||||
 | 
			
		||||
@@ -89,6 +90,8 @@ bool draw_city_at(cell *c, const shiftmatrix& V) {
 | 
			
		||||
  return false;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
auto hypcity_ah = addHook(hooks_drawcell, 100, draw_city_at);
 | 
			
		||||
void enable() { rogueviz::rv_hook(hooks_drawcell, 100, draw_city_at); }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
auto hypcity_ah = arg::add3("-hypcity", enable);
 | 
			
		||||
 | 
			
		||||
}}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,22 +1,24 @@
 | 
			
		||||
// compile with mymake rogueviz/hypocycloid
 | 
			
		||||
 | 
			
		||||
// for https://twitter.com/ZenoRogue/status/1358464890978127875 :
 | 
			
		||||
// hyper -shot-1000 -noscr -canvas i -noplayer -geo 1 circ1=1 circ2=2 show=.05 lw=20 -zoom .9 -animvideo 360 cycloid-2-euc.mp4
 | 
			
		||||
// -hypocyc -shot-1000 -noscr -canvas i -noplayer -geo 1 circ1=1 circ2=2 show=.05 lw=20 -zoom .9 -animvideo 360 cycloid-2-euc.mp4
 | 
			
		||||
// for https://twitter.com/ZenoRogue/status/1358464962088337410 :
 | 
			
		||||
// hyper -shot-1000 -noscr -canvas i -noplayer -geo 0 "circ1=0../0..4../0..|4../0..0../0" "circ2=0../0..8../0..|8../0..0../0" show=.05 lw=3 loops=10 -zoom .9 -animvideo 3600 cycloid-2-hyp.mp4
 | 
			
		||||
// -hypocyc -shot-1000 -noscr -canvas i -noplayer -geo 0 "circ1=0../0..4../0..|4../0..0../0" "circ2=0../0..8../0..|8../0..0../0" show=.05 lw=3 loops=10 -zoom .9 -animvideo 3600 cycloid-2-hyp.mp4
 | 
			
		||||
// for https://twitter.com/ZenoRogue/status/1358465029876690948 :
 | 
			
		||||
// hyper -shot-1000 -noscr -canvas i -noplayer -geo 0 "circ1=0../0..8../0..|8../0..0../0" "circ2=0../0..32../0..|32../0..0../0" prec=3600 show=.05 lw=3 loops=10 -zoom .9 -animvideo 3600 cycloid-4-hyp.mp4
 | 
			
		||||
// -hypocyc -shot-1000 -noscr -canvas i -noplayer -geo 0 "circ1=0../0..8../0..|8../0..0../0" "circ2=0../0..32../0..|32../0..0../0" prec=3600 show=.05 lw=3 loops=10 -zoom .9 -animvideo 3600 cycloid-4-hyp.mp4
 | 
			
		||||
 | 
			
		||||
// for https://twitter.com/ZenoRogue/status/1358506225990828033 :
 | 
			
		||||
// hyper -shot-1000 -noscr -canvas i -noplayer -geo 2 "circ1=0../0...5../0..|.5../0..0../0" "circ2=0../0..1../0..|1../0..0../0" show=.05 lw=3 loops=10 -zoom .9 -animvideo 1200 cycloid-2-sph.mp4
 | 
			
		||||
// -hypocyc -shot-1000 -noscr -canvas i -noplayer -geo 2 "circ1=0../0...5../0..|.5../0..0../0" "circ2=0../0..1../0..|1../0..0../0" show=.05 lw=3 loops=10 -zoom .9 -animvideo 1200 cycloid-2-sph.mp4
 | 
			
		||||
 | 
			
		||||
// for https://twitter.com/ZenoRogue/status/1358505146553159682 :
 | 
			
		||||
// hyper -shot-1000 -noscr -canvas i -noplayer -geo 0 circ1=1 circ2=2 show=.1 lw=5 -zoom .9 "ratio=2../0..8../0..|8../0..2../0" prec=3600 -animvideo 3600 half-radius.mp4
 | 
			
		||||
// -hypocyc -shot-1000 -noscr -canvas i -noplayer -geo 0 circ1=1 circ2=2 show=.1 lw=5 -zoom .9 "ratio=2../0..8../0..|8../0..2../0" prec=3600 -animvideo 3600 half-radius.mp4
 | 
			
		||||
 | 
			
		||||
#include "../hyper.h"
 | 
			
		||||
 | 
			
		||||
namespace hr {
 | 
			
		||||
 | 
			
		||||
namespace hypocyc {
 | 
			
		||||
 | 
			
		||||
/* what to roll on: 0 = circle, 1 = horocycle, 2 = straight line, 3 = equidistant */
 | 
			
		||||
int shape = 0;
 | 
			
		||||
 | 
			
		||||
@@ -143,7 +145,11 @@ void circ_frame() {
 | 
			
		||||
  vid.linewidth /= lw;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
auto shot_hooks = addHook(hooks_frame, 100, circ_frame)
 | 
			
		||||
void enable() {
 | 
			
		||||
  addHook(hooks_frame, 100, circ_frame);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
auto shot_hooks = arg::add2("-hypocyc", enable)
 | 
			
		||||
  + addHook(hooks_configfile, 100, [] {
 | 
			
		||||
    param_f(circ1, "circ1");
 | 
			
		||||
    param_f(circ2, "circ2");
 | 
			
		||||
@@ -159,3 +165,4 @@ auto shot_hooks = addHook(hooks_frame, 100, circ_frame)
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -132,14 +132,8 @@ void create_janko() {
 | 
			
		||||
  gi.menu_displayed_name = "Janko group J1";
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
auto shot_hooks = addHook(hooks_args, 100, [] {
 | 
			
		||||
  if(arg::argis("-janko1x")) {
 | 
			
		||||
    build();
 | 
			
		||||
    experiment();
 | 
			
		||||
    }
 | 
			
		||||
  else return true;
 | 
			
		||||
  return false;
 | 
			
		||||
  }) + addHook(hooks_initialize, 100, create_janko);
 | 
			
		||||
auto shot_hooks = arg::add3("-janko1x", [] { build(); experiment(); })
 | 
			
		||||
 + addHook(hooks_initialize, 100, create_janko);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -156,23 +156,7 @@ void magic(int sides) {
 | 
			
		||||
  rv_hook(hooks_handleKey, 150, magic_rugkey);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
int readArgs() {
 | 
			
		||||
  using namespace arg;
 | 
			
		||||
  
 | 
			
		||||
  if(0) ;
 | 
			
		||||
  else if(argis("-magic")) {
 | 
			
		||||
    PHASEFROM(2);
 | 
			
		||||
    shift(); magic(argi());
 | 
			
		||||
    }
 | 
			
		||||
  else if(argis("-magic3")) {
 | 
			
		||||
    PHASEFROM(2);
 | 
			
		||||
    magic(-1);
 | 
			
		||||
    }
 | 
			
		||||
  else return 1;
 | 
			
		||||
  return 0;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
auto magichook = addHook(hooks_args, 100, readArgs);
 | 
			
		||||
auto magichook = arg::add2("-magic3", [] { magic(-1); }) + arg::add2("-magic", [] { magic(arg::shift_argi()); });
 | 
			
		||||
 
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -281,26 +281,6 @@ void create_model() {
 | 
			
		||||
  
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
#if CAP_COMMANDLINE  
 | 
			
		||||
int readArgs() {
 | 
			
		||||
  using namespace arg;
 | 
			
		||||
           
 | 
			
		||||
  if(0) ;
 | 
			
		||||
  else if(argis("-snub")) {
 | 
			
		||||
    PHASE(3);
 | 
			
		||||
    shift();
 | 
			
		||||
    run_snub(argi(), 3);
 | 
			
		||||
    }
 | 
			
		||||
  else if(argis("-snub4")) {
 | 
			
		||||
    PHASE(3);
 | 
			
		||||
    shift();
 | 
			
		||||
    run_snub(argi(), 4);
 | 
			
		||||
    }
 | 
			
		||||
  else return 1;
 | 
			
		||||
  return 0;
 | 
			
		||||
  }
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
bool frame() { 
 | 
			
		||||
  if(snubon && rug::rugged) {
 | 
			
		||||
    create_model();
 | 
			
		||||
@@ -343,7 +323,9 @@ bool handleKey(int sym, int uni) {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
auto xhook = addHook(hooks_args, 100, readArgs)
 | 
			
		||||
auto xhook = 
 | 
			
		||||
  arg::add3("-snub", [] { run_snub(arg::shift_argi(), 3); })
 | 
			
		||||
+ arg::add3("-snub4", [] { run_snub(arg::shift_argi(), 4); })
 | 
			
		||||
+ addHook(hooks_handleKey, 0, handleKey)
 | 
			
		||||
+ addHook(hooks_prestats, 0, frame)
 | 
			
		||||
+ addHook(hooks_clearmemory, 40, [] () { snubon = false; } )
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
#include "../hyper.h"
 | 
			
		||||
#include "rogueviz.h"
 | 
			
		||||
 | 
			
		||||
// implementation of this demo: https://twitter.com/ZenoRogue/status/1304130700870901761
 | 
			
		||||
 | 
			
		||||
@@ -12,9 +12,9 @@ namespace hr {
 | 
			
		||||
 | 
			
		||||
namespace pentaroll {
 | 
			
		||||
 | 
			
		||||
bool animated;
 | 
			
		||||
void animate();
 | 
			
		||||
 | 
			
		||||
void create_pentaroll() {
 | 
			
		||||
void create_pentaroll(bool animated) {
 | 
			
		||||
  start_game();
 | 
			
		||||
  /* get the list of all close cells */
 | 
			
		||||
  cell *c0 = currentmap->gamestart();
 | 
			
		||||
@@ -54,22 +54,8 @@ void create_pentaroll() {
 | 
			
		||||
      cw1.peek()->landparam = hrand(0x1000000) | 0x808080;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
int args() {
 | 
			
		||||
  using namespace arg;
 | 
			
		||||
           
 | 
			
		||||
  if(0) ;
 | 
			
		||||
 | 
			
		||||
  else if(argis("-pentaroll")) {
 | 
			
		||||
    PHASEFROM(3);
 | 
			
		||||
    
 | 
			
		||||
    /* 1 = animated, 0 = not animated */
 | 
			
		||||
    shift(); animated = argi();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  else return 1;
 | 
			
		||||
  return 0;
 | 
			
		||||
  if(animated) 
 | 
			
		||||
    rogueviz::rv_hook(anims::hooks_anim, 100, animate);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
/* currently not configurable */
 | 
			
		||||
@@ -79,12 +65,8 @@ ld how_far = 1;
 | 
			
		||||
ld orig_distance = 1;
 | 
			
		||||
ld far_distance = 1;
 | 
			
		||||
 | 
			
		||||
auto hooks = 
 | 
			
		||||
    addHook(hooks_args, 100, args)
 | 
			
		||||
  + addHook(hooks_clearmemory, 40, [] () { animated = false; })
 | 
			
		||||
+ addHook(anims::hooks_anim, 100, [] { 
 | 
			
		||||
void animate() {
 | 
			
		||||
 | 
			
		||||
  if(!animated) return;
 | 
			
		||||
  centerover = currentmap->gamestart();
 | 
			
		||||
  
 | 
			
		||||
  ld t = ticks * 20. / anims::period;
 | 
			
		||||
@@ -141,7 +123,9 @@ auto hooks =
 | 
			
		||||
  View = spin((angle-M_PI) * int(t)) * View;
 | 
			
		||||
  
 | 
			
		||||
  anims::moved();
 | 
			
		||||
  });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
auto hooks = arg::add3("-pentaroll", [] { create_pentaroll(arg::shift_argi()); });
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -39,8 +39,7 @@ namespace bricks {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
namespace pentaroll {
 | 
			
		||||
  extern bool animated;
 | 
			
		||||
  extern void create_pentaroll();
 | 
			
		||||
  extern void create_pentaroll(bool);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
namespace ply {
 | 
			
		||||
@@ -656,8 +655,7 @@ slide dmv_slides[] = {
 | 
			
		||||
        set_geometry(gFieldQuotient);
 | 
			
		||||
        */
 | 
			
		||||
        start_game();
 | 
			
		||||
        pentaroll::create_pentaroll();
 | 
			
		||||
        pentaroll::animated = true;
 | 
			
		||||
        pentaroll::create_pentaroll(true);
 | 
			
		||||
        tour::slide_backup(anims::period, 30000.);
 | 
			
		||||
        tour::slide_backup(sightranges[geometry], 4);
 | 
			
		||||
        start_game();
 | 
			
		||||
 
 | 
			
		||||
@@ -33,6 +33,9 @@
 | 
			
		||||
#include "fifteen.cpp"
 | 
			
		||||
#include "crystal-sokoban.cpp"
 | 
			
		||||
 | 
			
		||||
#include "hypcity.cpp"
 | 
			
		||||
#include "hypocycloid.cpp"
 | 
			
		||||
 | 
			
		||||
#include "simple-impossible.cpp"
 | 
			
		||||
#include "ascending-descending.cpp"
 | 
			
		||||
#include "balls.cpp"
 | 
			
		||||
 
 | 
			
		||||
@@ -105,21 +105,7 @@ namespace tree {
 | 
			
		||||
    storeall();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#if CAP_COMMANDLINE
 | 
			
		||||
int readArgs() {
 | 
			
		||||
  using namespace arg;
 | 
			
		||||
 | 
			
		||||
  if(0) ;
 | 
			
		||||
 | 
			
		||||
  else if(argis("-tree")) {
 | 
			
		||||
    PHASE(3); shift(); tree::read(args());
 | 
			
		||||
    }
 | 
			
		||||
  
 | 
			
		||||
  else return 1;
 | 
			
		||||
  return 0;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
int ah = addHook(hooks_args, 120, readArgs)
 | 
			
		||||
int ah = arg::add3("-tree", [] { tree::read(arg::shift_args()); })
 | 
			
		||||
+ addHook(pres::hooks_build_rvtour, 120, [] (string s, vector<tour::slide>& v) {
 | 
			
		||||
    if(s != "data") return;
 | 
			
		||||
    using namespace pres;
 | 
			
		||||
@@ -142,7 +128,6 @@ int ah = addHook(hooks_args, 120, readArgs)
 | 
			
		||||
      })}
 | 
			
		||||
      );
 | 
			
		||||
    });
 | 
			
		||||
#endif
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user