From 508c63d731f2134689c91d602a344a158c04906f Mon Sep 17 00:00:00 2001 From: Zeno Rogue Date: Mon, 9 Jul 2018 18:59:12 +0200 Subject: [PATCH] calls to rogueviz::mark and rogueviz::fixparam from HR main are now replaced by hooks --- basegraph.cpp | 3 --- game.cpp | 6 +++--- graph.cpp | 7 ++++--- hyper.h | 3 ++- polygons.cpp | 3 --- rogueviz.cpp | 3 ++- rogueviz.h | 3 --- 7 files changed, 11 insertions(+), 17 deletions(-) diff --git a/basegraph.cpp b/basegraph.cpp index 03fbbf54..cb7a0e2d 100644 --- a/basegraph.cpp +++ b/basegraph.cpp @@ -1025,9 +1025,6 @@ void saveHighQualityShot(const char *fname, const char *caption, int fade) { // if(vid.pmodel == 0) vid.scale = 0.99; calcparam(); - #if CAP_ROGUEVIZ - rogueviz::fixparam(); - #endif renderbuffer glbuf(vid.xres, vid.yres, vid.usingGL); glbuf.enable(); diff --git a/game.cpp b/game.cpp index 21d3573d..77cc2b51 100644 --- a/game.cpp +++ b/game.cpp @@ -8044,10 +8044,10 @@ bool mightBeMine(cell *c) { return c->wall == waMineUnknown || c->wall == waMineMine; } +hookset *hooks_mark; + void performMarkCommand(cell *c) { -#if CAP_ROGUEVIZ - rogueviz::mark(c); -#endif + if(callhandlers(false, hooks_mark, c)) return; if(c->land == laCA && c->wall == waNone) c->wall = waFloorA; else if(c->land == laCA && c->wall == waFloorA) diff --git a/graph.cpp b/graph.cpp index d2f2f025..da3b3d2f 100644 --- a/graph.cpp +++ b/graph.cpp @@ -5321,6 +5321,8 @@ bool sidescreen; bool dronemode; +purehookset hooks_calcparam; + void calcparam() { DEBB(DF_GRAPH, (debugfile,"calc param\n")); vid.xcenter = vid.xres / 2; @@ -5361,6 +5363,8 @@ void calcparam() { else stereo::scrdist = vid.radius; stereo::scrdist_text = stereo::scrdist; + + callhooks(hooks_calcparam); } int ringcolor = darkena(0xFF, 0, 0xFF); @@ -5616,9 +5620,6 @@ void drawscreen() { calcparam(); // rug::setVidParam(); - #if CAP_ROGUEVIZ - rogueviz::fixparam(); - #endif #if CAP_GL if(vid.usingGL) setGLProjection(); diff --git a/hyper.h b/hyper.h index 383a09a1..6456030d 100644 --- a/hyper.h +++ b/hyper.h @@ -2013,7 +2013,7 @@ template int addHook(hookset*& m, int prio, const U& hook) return 0; } -extern purehookset hooks_frame, hooks_stats, clearmemory, hooks_config, hooks_tests, hooks_removecells, hooks_initgame; +extern purehookset hooks_frame, hooks_stats, clearmemory, hooks_config, hooks_tests, hooks_removecells, hooks_initgame, hooks_calcparam; template void callhooks(hookset *h, U... args) { if(h) for(auto& p: *h) p.second(args...); @@ -2031,6 +2031,7 @@ extern hookset *hooks_handleKey; extern hookset *hooks_drawcell; extern hookset *hooks_main; extern hookset *hooks_args; +extern hookset *hooks_mark; extern hookset *hooks_nextland; // hooks to extend HyperRogue with an external program diff --git a/polygons.cpp b/polygons.cpp index 83eb4c78..e73aec3d 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -2567,9 +2567,6 @@ namespace svg { vid.usingGL = false; vid.xres = vid.yres = svgsize ? svgsize : min(1 << (get_sightrange()+7), 16384); calcparam(); -#if CAP_ROGUEVIZ - rogueviz::fixparam(); -#endif dynamicval v6(inHighQual, true); darken = 0; diff --git a/rogueviz.cpp b/rogueviz.cpp index 23408c7e..7ae03d8b 100644 --- a/rogueviz.cpp +++ b/rogueviz.cpp @@ -2045,7 +2045,8 @@ auto hooks = addHook(hooks_config, 0, [] () { tour::ss::list(rogueviz::rvtour::rvslides); }) + #endif addHook(clearmemory, 0, close) + - addHook(hooks_prestats, 100, rogueviz_hud); + addHook(hooks_prestats, 100, rogueviz_hud) + + addHook(hooks_calcparam, 100, fixparam); }; diff --git a/rogueviz.h b/rogueviz.h index 8d4f3066..2a18696d 100644 --- a/rogueviz.h +++ b/rogueviz.h @@ -11,10 +11,7 @@ namespace rogueviz { bool virt(shmup::monster *m); void turn(int delta); void drawExtra(); - void fixparam(); - int readArgs(); void close(); - void mark(cell *c); void showMenu(); string makehelp();