mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-05-04 08:14:08 +00:00
rogueviz::crystal_sokoban:: using rv_hooks
This commit is contained in:
parent
08fe6995c3
commit
b17eca5ff1
@ -37,6 +37,8 @@ undo_state current_state() {
|
|||||||
return u;
|
return u;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void sb_hooks();
|
||||||
|
|
||||||
void run_sb() {
|
void run_sb() {
|
||||||
crystal::compass_probability = 0;
|
crystal::compass_probability = 0;
|
||||||
stop_game();
|
stop_game();
|
||||||
@ -46,7 +48,6 @@ void run_sb() {
|
|||||||
patterns::whichCanvas = 'g';
|
patterns::whichCanvas = 'g';
|
||||||
patterns::canvasback = 0x101010;
|
patterns::canvasback = 0x101010;
|
||||||
check_cgi();
|
check_cgi();
|
||||||
vizid = &on;
|
|
||||||
start_game();
|
start_game();
|
||||||
|
|
||||||
for(int z=-8; z<8; z++)
|
for(int z=-8; z<8; z++)
|
||||||
@ -114,8 +115,6 @@ void restore_undo() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool sokomap2() {
|
bool sokomap2() {
|
||||||
bool in = vizid == &on;
|
|
||||||
if(!in) return false;
|
|
||||||
|
|
||||||
if(undos.back().where != cwt.at) save_undo();
|
if(undos.back().where != cwt.at) save_undo();
|
||||||
|
|
||||||
@ -157,14 +156,21 @@ bool sokomap2() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool soko_key(int sym, int uni) {
|
bool soko_key(int sym, int uni) {
|
||||||
bool in = vizid == &on;
|
if((cmode & sm::NORMAL) && (uni == SDLK_BACKSPACE || uni == 'r') && isize(undos) != 1) {
|
||||||
if((cmode & sm::NORMAL) && (uni == SDLK_BACKSPACE || uni == 'r') && in && isize(undos) != 1) {
|
|
||||||
restore_undo();
|
restore_undo();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
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, [] {
|
auto sbhook = addHook(hooks_args, 100, [] {
|
||||||
using namespace arg;
|
using namespace arg;
|
||||||
@ -177,12 +183,7 @@ auto sbhook = addHook(hooks_args, 100, [] {
|
|||||||
}
|
}
|
||||||
else return 1;
|
else return 1;
|
||||||
return 0;
|
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);
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user