From 8e8a8b06841d8b351f937ab88d853442113dc9a7 Mon Sep 17 00:00:00 2001 From: Stephen Seo Date: Thu, 24 Aug 2023 16:10:22 +0900 Subject: [PATCH] Tweaks to electricity "line" generation --- src/electricity_effect.cc | 9 ++++++++- src/electricity_effect.h | 1 + src/screen_trunner.h | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/electricity_effect.cc b/src/electricity_effect.cc index a9123af..33eebcc 100644 --- a/src/electricity_effect.cc +++ b/src/electricity_effect.cc @@ -26,13 +26,20 @@ ElectricityEffect::ElectricityEffect(Vector3 center, float radius, next = positions.front(); positions.pop(); + dir = Vector3Normalize(center - next); dir = Vector3Normalize(Vector3{call_js_get_random() * 2.0F - 1.0F, call_js_get_random() * 2.0F - 1.0F, - call_js_get_random() * 2.0F - 1.0F}); + call_js_get_random() * 2.0F - 1.0F} + + dir); auto coll = GetRayCollisionSphere(Ray{.position = next, .direction = dir}, center, radius); + if (coll.distance > CYLINDER_LINE_MAX_LENGTH) { + coll.point = + next + Vector3Normalize(coll.point - next) * CYLINDER_LINE_MAX_LENGTH; + } + cylinders.push_back(Cylinder{.start = next, .end = coll.point}); dir = Vector3Normalize(center - coll.point); diff --git a/src/electricity_effect.h b/src/electricity_effect.h index d61e914..bb43010 100644 --- a/src/electricity_effect.h +++ b/src/electricity_effect.h @@ -11,6 +11,7 @@ constexpr int CYLINDER_SPLIT_COUNT = 3; constexpr int CYLINDER_SIDES = 3; constexpr float CYLINDER_MAX_RADIUS = 0.03F; constexpr float CYLINDER_EDGE_OFFSET = 0.01F; +constexpr float CYLINDER_LINE_MAX_LENGTH = 1.5F; class ElectricityEffect { public: diff --git a/src/screen_trunner.h b/src/screen_trunner.h index c1cbdce..2289d72 100644 --- a/src/screen_trunner.h +++ b/src/screen_trunner.h @@ -29,7 +29,7 @@ constexpr float SURFACE_RESET_TIME = 4.0F; constexpr float SURFACE_RESET_TIME_TRI_DRAW = 3.0F; constexpr float SURFACE_RESET_Y_OFFSET = 40.0F; -constexpr int ELECTRICITY_EFFECT_LINE_COUNT = 50; +constexpr int ELECTRICITY_EFFECT_LINE_COUNT = 35; class TRunnerScreen : public Screen { public: