From 2b8b24e3f5135a9517fe8fe70e22822171b22ba0 Mon Sep 17 00:00:00 2001 From: Zeno Rogue Date: Sun, 22 Jun 2025 16:03:07 +0200 Subject: [PATCH] rogueviz:: ads:: ship_history_period --- rogueviz/ads/display.cpp | 4 ++++ rogueviz/ads/ds-game.cpp | 4 ++++ rogueviz/ads/globals.cpp | 2 ++ rogueviz/ads/views.cpp | 6 +++++- 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/rogueviz/ads/display.cpp b/rogueviz/ads/display.cpp index 793d1eec..ec0c7c94 100644 --- a/rogueviz/ads/display.cpp +++ b/rogueviz/ads/display.cpp @@ -190,8 +190,12 @@ void draw_game_cell(const cell_to_draw& cd) { if(rock.type != oParticle) view_time(shiftless(rgpushxto0(rock.pt_main.h)), rock.pt_main.shift, 0xFFFFFF); } + ld last_shown = -HUGE_VAL; if(paused || which_cross) if(hv) for(auto& rock: ci.shipstates) { + if(rock.start < last_shown + ship_history_period) continue; + last_shown = rock.start; + render_ship_parts([&] (const hpcshape& sh, color_t col, int sym) { int dx = sym ? -1 : 1; for(int i=sh.s; i times; if(paused) for(auto& ss: history) { + if(ss.start < last_shown + ship_history_period) continue; + last_shown = ss.start; times.push_back(ss.start); if(ss.at.shift < current.shift - 4 * TAU) continue; if(ss.at.shift > current.shift + 4 * TAU) continue; diff --git a/rogueviz/ads/globals.cpp b/rogueviz/ads/globals.cpp index c8dcafbe..07e184b6 100644 --- a/rogueviz/ads/globals.cpp +++ b/rogueviz/ads/globals.cpp @@ -58,6 +58,8 @@ bool view_proper_times = false; /** format for displaying time */ const char *tformat = "%.2f"; +ld ship_history_period = 0; + void game_menu(); void restart(); void change_scale(ld s); diff --git a/rogueviz/ads/views.cpp b/rogueviz/ads/views.cpp index 1440216a..2796184b 100644 --- a/rogueviz/ads/views.cpp +++ b/rogueviz/ads/views.cpp @@ -206,6 +206,10 @@ auto view_hooks = + arg::add3("-ads-replay", [] { arg::shift(); int i = arg::argi(); if(i != in_replay) switch_replay(); }) + arg::add3("-ads-duality", [] { arg::shift(); use_duality = arg::argi(); }) + arg::add3("-ads-cone", [] { arg::shift(); which_cross = arg::argi(); }) -+ arg::add3("-ads-spacetime", [] { arg::shift(); switch_spacetime_to(arg::argi()); }); ++ arg::add3("-ads-ship-history", [] { arg::shift_arg_formula(ship_history_period); }) ++ arg::add3("-ads-spacetime", [] { arg::shift(); switch_spacetime_to(arg::argi()); + pmodel = mdRelPerspective; + use_duality = 0; + }); }}