1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2025-04-21 02:03:16 +00:00

rogueviz::ads:: main help, help for DS game

This commit is contained in:
Zeno Rogue 2025-02-10 19:01:23 +01:00
parent 8dac0e0f68
commit 9c9b37f2fb
5 changed files with 30 additions and 3 deletions

View File

@ -89,7 +89,7 @@ void restart() {
}
void run_ads_game_hooks() {
rogueviz::rv_hook(hooks_global_mouseover, 100, ads_mouseover);
rogueviz::rv_hook(hooks_global_mouseover, 100, generate_mouseovers);
rogueviz::rv_change<color_t>(titlecolor, 0);
rogueviz::rv_hook(hooks_frame, 100, view_ads_game);
rogueviz::rv_hook(hooks_prestats, 100, display_rsrc);

View File

@ -91,7 +91,7 @@ bool handleKey(int sym, int uni) {
if(sym == 'v') pushScreen(game_menu);
if(sym == SDLK_ESCAPE) pushScreen(game_menu);
if(sym == SDLK_F1) {
if(help == "@") help = "help not known";
if(help == "@") help = get_main_help();
gotoHelp(help);
}
return true;

View File

@ -501,6 +501,8 @@ bool invalid(cross_result& res) {
void view_ds_game() {
displayed.clear();
mousetester = kleinize(unshift(mouseh));
under_mouse.clear();
bool hv = hyperbolic;
bool hvrel = among(pmodel, mdRelPerspective, mdRelOrthogonal);
@ -510,6 +512,8 @@ void view_ds_game() {
copyright_shown = "";
if(!hv) draw_textures();
bool only_main = false;
if(1) {
for(auto& r: rocks) {
auto& rock = *r;
@ -546,6 +550,12 @@ void view_ds_game() {
vector<hyperpoint> circle_flat;
for(auto c: rock.pts) circle_flat.push_back(c.h / (1 + c.h[2]));
if(rock.type != oParticle && pointcrash(mousetester, rock.pts)) {
if(only_main) break;
if(&rock == main_rock) { under_mouse.clear(); only_main = true; }
under_mouse.push_back(&rock);
}
ld area = 0;
for(int i=0; i<isize(circle_flat)-1; i++)
@ -743,6 +753,8 @@ void run_ds_game_hooks() {
rogueviz::rv_hook(hooks_prestats, 100, display_rsrc);
rogueviz::rv_hook(hooks_handleKey, 150, handleKey);
rogueviz::rv_hook(anims::hooks_anim, 100, replay_animation);
rogueviz::rv_hook(hooks_global_mouseover, 100, generate_mouseovers);
rogueviz::rv_change<color_t>(titlecolor, 0xFFC000);
}
void run_ds_game() {

View File

@ -247,4 +247,7 @@ void save_to_hiscores();
void hiscore_menu();
void load_hiscores();
string get_main_help();
int generate_mouseovers();
}}

View File

@ -101,7 +101,7 @@ void explain_undermouse() {
}
}
int ads_mouseover() {
int generate_mouseovers() {
titlecolor = 0xFFFFFF;
if(!paused) {
@ -115,6 +115,7 @@ int ads_mouseover() {
hyperpoint h1 = normalize(unshift(mouseh));
hybrid::in_actual([&] {
if(main_rock) return;
h1[3] = h1[2]; h1[2] = 0;
ads_point rel = ads_inverse(current * vctrV) * ads_point(h1, 0);
cell *c = hybrid::get_at(vctr, 0);
@ -142,5 +143,16 @@ int ads_mouseover() {
return 3;
}
string get_main_help() {
if(main_rock)
return
"Keep close to the yellow star! The space is expanding, so if you go too far away from it, you will never be able to get back.\n\n"
"You have to avoid (or shoot) the white asteroids which are continuously thrown at you. In longer runs, you also need to catch items to replenish your resources.\n\n"
"Good luck!\n\nSee the Guided Tour for more explanation about how de Sitter spacetime used in this game works.";
else return
"Explore the world, shoot asteroids and enemies, collect treasures and resources. The more treasures you collect, the harder the game becomes. Good luck!\n\n"
"See the Guided Tour for more explanation about how anti-de Sitter spacetime used in this game works.";
}
}
}