mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-11-27 14:37:16 +00:00
rogueviz:: help done via hooks
This commit is contained in:
parent
26b4e1a7ab
commit
6303b8033b
33
help.cpp
33
help.cpp
@ -759,6 +759,8 @@ void appendHelp(string s) {
|
||||
unsigned char lastval;
|
||||
int windtotal;
|
||||
|
||||
hookset<void(cell*)> *hooks_mouseover;
|
||||
|
||||
void describeMouseover() {
|
||||
DEBB(DF_GRAPH, (debugfile,"describeMouseover\n"));
|
||||
|
||||
@ -900,9 +902,7 @@ void describeMouseover() {
|
||||
}
|
||||
}
|
||||
|
||||
#if CAP_ROGUEVIZ
|
||||
rogueviz::describe(c);
|
||||
#endif
|
||||
callhooks(hooks_mouseover, c);
|
||||
|
||||
if(mousey < vid.fsize * 3/2) getcstat = SDLK_F1;
|
||||
}
|
||||
@ -955,29 +955,24 @@ void showHelp() {
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
hookset<bool()> *hooks_default_help;
|
||||
|
||||
void gotoHelp(const string& h) {
|
||||
help = h;
|
||||
help_extensions.clear();
|
||||
pushScreen(showHelp);
|
||||
if(help == "@") {
|
||||
|
||||
/*
|
||||
#if CAP_ROGUEVIZ
|
||||
if(rogueviz::on) {
|
||||
help = rogueviz::makehelp();
|
||||
help_extensions.push_back(help_extension{'u', XLAT("RogueViz menu"), [] () { popScreen(); pushScreen(rogueviz::showMenu); }});
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
*/
|
||||
|
||||
if(callhandlers(false, hooks_default_help)) return;
|
||||
|
||||
#if CAP_RUG
|
||||
if(rug::rugged) {
|
||||
help = rug::makehelp();
|
||||
help_extensions.push_back(help_extension{'m', XLAT("Hypersian Rug menu"), [] () { popScreen(); rug::select(); }});
|
||||
help_extensions.push_back(help_extension{'h', XLAT("HyperRogue help"), [] () { buildHelpText(); }});
|
||||
return;
|
||||
}
|
||||
if(rug::rugged) {
|
||||
help = rug::makehelp();
|
||||
help_extensions.push_back(help_extension{'m', XLAT("Hypersian Rug menu"), [] () { popScreen(); rug::select(); }});
|
||||
help_extensions.push_back(help_extension{'h', XLAT("HyperRogue help"), [] () { buildHelpText(); }});
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
buildHelpText();
|
||||
|
3
hyper.h
3
hyper.h
@ -2040,7 +2040,8 @@ extern hookset<bool(int argc, char** argv)> *hooks_main;
|
||||
extern hookset<int()> *hooks_args;
|
||||
extern hookset<bool(cell*)> *hooks_mark;
|
||||
extern hookset<eLand(eLand)> *hooks_nextland;
|
||||
extern hookset<bool()> *hooks_welcome_message;
|
||||
extern hookset<bool()> *hooks_welcome_message, *hooks_default_help;
|
||||
extern hookset<void(cell*)> *hooks_mouseover;
|
||||
|
||||
// hooks to extend HyperRogue with an external program
|
||||
// start compilation from another file which defines EXTRA_..., includes
|
||||
|
@ -714,8 +714,9 @@ void sominit(int initto) {
|
||||
}
|
||||
}
|
||||
|
||||
void describe(cell *c) {
|
||||
void describe_cell(cell *c) {
|
||||
if(cmode & sm::HELP) return;
|
||||
if(kind != kKohonen) return;
|
||||
neuron *n = getNeuronSlow(c);
|
||||
if(!n) return;
|
||||
help += "cell number: " + its(neuronId(*n)) + " (" + its(n->allsamples) + ")\n";
|
||||
@ -1373,7 +1374,8 @@ int readArgs() {
|
||||
auto hooks = addHook(hooks_args, 100, readArgs);
|
||||
#endif
|
||||
|
||||
auto hooks2 = addHook(hooks_frame, 50, levelline::draw);
|
||||
auto hooks2 = addHook(hooks_frame, 50, levelline::draw)
|
||||
+ addHook(hooks_mouseover, 100, describe_cell);
|
||||
|
||||
void clear() {
|
||||
printf("clearing Kohonen...\n");
|
||||
|
49
rogueviz.cpp
49
rogueviz.cpp
@ -954,10 +954,6 @@ bool edgecmp(edgeinfo *e1, edgeinfo *e2) {
|
||||
return e1->weight > e2->weight;
|
||||
}
|
||||
|
||||
void describe(cell *c) {
|
||||
if(kind == kKohonen) return kohonen::describe(c);
|
||||
}
|
||||
|
||||
bool describe_monster(shmup::monster *m, string& out) {
|
||||
|
||||
if(m->type != moRogueviz) return false;
|
||||
@ -1783,25 +1779,6 @@ void showMenu() {
|
||||
};
|
||||
}
|
||||
|
||||
string makehelp() {
|
||||
string ret =
|
||||
"This is RogueViz, a visualization engine based on HyperRogue.\n\nUse WASD to move, v for menu.\n\n"
|
||||
"Read more about RogueViz on : http://roguetemple.com/z/hyper/rogueviz.php\n\n";
|
||||
if(kind == kAnyGraph)
|
||||
ret += "Current visualization: any graph\n\n" + fname;
|
||||
if(kind == kTree)
|
||||
ret += "Current visualization: tree\n\n" + fname;
|
||||
if(kind == kSpiral)
|
||||
ret += "Current visualization: spiral\n\n";
|
||||
if(kind == kSAG)
|
||||
ret += "Current visualization: SAG\n\n" + fname;
|
||||
if(kind == kCollatz)
|
||||
ret += "Current visualization: Collatz conjecture\n\n";
|
||||
if(kind == kFullNet)
|
||||
ret += "Current visualization: full net\n\n";
|
||||
return ret;
|
||||
}
|
||||
|
||||
namespace rvtour {
|
||||
|
||||
using namespace tour;
|
||||
@ -2072,6 +2049,29 @@ int rvtour_hooks =
|
||||
|
||||
}
|
||||
|
||||
bool default_help() {
|
||||
if(!rogueviz::on) return false;
|
||||
|
||||
help =
|
||||
"This is RogueViz, a visualization engine based on HyperRogue.\n\nUse WASD to move, v for menu.\n\n"
|
||||
"Read more about RogueViz on : http://roguetemple.com/z/hyper/rogueviz.php\n\n";
|
||||
if(kind == kAnyGraph)
|
||||
help += "Current visualization: any graph\n\n" + fname;
|
||||
if(kind == kTree)
|
||||
help += "Current visualization: tree\n\n" + fname;
|
||||
if(kind == kSpiral)
|
||||
help += "Current visualization: spiral\n\n";
|
||||
if(kind == kSAG)
|
||||
help += "Current visualization: SAG\n\n" + fname;
|
||||
if(kind == kCollatz)
|
||||
help += "Current visualization: Collatz conjecture\n\n";
|
||||
if(kind == kFullNet)
|
||||
help += "Current visualization: full net\n\n";
|
||||
|
||||
help_extensions.push_back(help_extension{'u', XLAT("RogueViz menu"), [] () { popScreen(); pushScreen(showMenu); }});
|
||||
return true;
|
||||
}
|
||||
|
||||
auto hooks =
|
||||
addHook(hooks_frame, 0, drawExtra) +
|
||||
#if CAP_COMMANDLINE
|
||||
@ -2093,7 +2093,8 @@ auto hooks =
|
||||
if(rogueviz::on) addMessage(XLAT("Welcome to RogueViz!"));
|
||||
return rogueviz::on;
|
||||
}) +
|
||||
0;
|
||||
addHook(hooks_default_help, 100, default_help) +
|
||||
0;
|
||||
|
||||
};
|
||||
|
||||
|
@ -4,10 +4,8 @@ namespace rogueviz {
|
||||
using namespace hr;
|
||||
|
||||
extern bool on;
|
||||
void describe(cell *c);
|
||||
void drawExtra();
|
||||
void close();
|
||||
string makehelp();
|
||||
|
||||
void init();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user