From b17eca5ff1bf6f2a55a9ac1d1b1f9adc09aaee64 Mon Sep 17 00:00:00 2001 From: Zeno Rogue Date: Wed, 31 Mar 2021 01:01:27 +0200 Subject: [PATCH] rogueviz::crystal_sokoban:: using rv_hooks --- rogueviz/crystal-sokoban.cpp | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/rogueviz/crystal-sokoban.cpp b/rogueviz/crystal-sokoban.cpp index 7fd4b2a1..a78e26ed 100644 --- a/rogueviz/crystal-sokoban.cpp +++ b/rogueviz/crystal-sokoban.cpp @@ -37,6 +37,8 @@ undo_state current_state() { return u; } +void sb_hooks(); + void run_sb() { crystal::compass_probability = 0; stop_game(); @@ -46,7 +48,6 @@ void run_sb() { patterns::whichCanvas = 'g'; patterns::canvasback = 0x101010; check_cgi(); - vizid = &on; start_game(); for(int z=-8; z<8; z++) @@ -114,8 +115,6 @@ void restore_undo() { } bool sokomap2() { - bool in = vizid == &on; - if(!in) return false; if(undos.back().where != cwt.at) save_undo(); @@ -157,14 +156,21 @@ bool sokomap2() { } bool soko_key(int sym, int uni) { - bool in = vizid == &on; - if((cmode & sm::NORMAL) && (uni == SDLK_BACKSPACE || uni == 'r') && in && isize(undos) != 1) { + if((cmode & sm::NORMAL) && (uni == SDLK_BACKSPACE || uni == 'r') && isize(undos) != 1) { restore_undo(); return true; } return false; } +void sb_hooks() { + rv_hook(hooks_prestats, 90, sokomap2); + rv_hook(hooks_welcome_message, 50, [] () { + addMessage(XLAT("Welcome to Crystal Sokoban!")); + return true; + }); + rv_hook(hooks_handleKey, 50, soko_key); + } auto sbhook = addHook(hooks_args, 100, [] { using namespace arg; @@ -177,12 +183,7 @@ auto sbhook = addHook(hooks_args, 100, [] { } else return 1; return 0; - }) + addHook(hooks_prestats, 90, sokomap2) - + addHook(hooks_welcome_message, 50, [] () { - if(vizid == &on) addMessage(XLAT("Welcome to Crystal Sokoban!")); - return bool(vizid); - }) + - + addHook(hooks_handleKey, 50, soko_key); + }); }