1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2025-05-04 00:04:07 +00:00

rogueviz::crystal_sokoban:: using rv_hooks

This commit is contained in:
Zeno Rogue 2021-03-31 01:01:27 +02:00
parent 08fe6995c3
commit b17eca5ff1

View File

@ -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);
});
}