1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2024-06-24 06:03:23 +00:00

nilrider:: VR support

This commit is contained in:
Zeno Rogue 2022-05-06 19:53:21 +02:00
parent 00d606de47
commit 279fe685ec
2 changed files with 16 additions and 0 deletions

View File

@ -344,6 +344,7 @@ void settings() {
dialog::add_action_push(nil_projection);
dialog::addItem("configure keys", 'k');
dialog::add_action_push(multi::get_key_configurer(1, move_names, "Nilrider keys"));
vrhr::vr_enable_button();
dialog::addItem("RogueViz settings", 'r');
dialog::add_key_action('r', [] {
pushScreen(showSettings);
@ -525,6 +526,9 @@ void initialize_all() {
initialize();
poly_outline = 0xFF;
pushScreen(pick_game);
vrhr::hsm = vrhr::eHeadset::reference;
vrhr::eyes = vrhr::eEyes::equidistant;
vrhr::absolute_unit_in_meters = 6;
}
auto celldemo = arg::add3("-unilcycle", initialize) + arg::add3("-unilplan", [] { planning_mode = true; }) + arg::add3("-viewsim", [] { view_replay = true; })

View File

@ -166,6 +166,18 @@ bool timestamp::tick(level *lev) {
void timestamp::centerview(level *lev) {
// static bool once = false; if(once) return; once = true;
if(vrhr::active()) {
transmatrix Ta = cspin(0, 1, -heading_angle);
transmatrix Tb = cspin(0, 2, -slope);
hyperpoint base = Ta * Tb * point31(0, 0, whrad);
hyperpoint refpoint = rgpushxto0(where) * rgpushxto0(base) * point31(0, 0, whrad+whrad);
centerover = cwt.at; playermoved = false;
View = cspin(0, 2, heading_angle-90*degree) * cspin(1, 2, -90*degree) * gpushxto0(refpoint);
return;
}
auto w = where;
w[2] += 0.2 * lev->scale;
hyperpoint front = rgpushxto0(w) * sym_to_heis(hyperpoint(1e-3 * cos(heading_angle), 1e-3*sin(heading_angle), 0, 1));