File tree Expand file tree Collapse file tree 2 files changed +6
-14
lines changed
libopenage/gamestate/system Expand file tree Collapse file tree 2 files changed +6
-14
lines changed Original file line number Diff line number Diff line change @@ -67,15 +67,11 @@ const time::time_t ApplyEffect::apply_effect(const std::shared_ptr<gamestate::Ga
6767 auto path_angle = path_vector.to_angle ();
6868
6969 if (not turn_speed->is_infinite_positive ()) {
70- auto angle_diff = path_angle - effector_angle;
71- if (angle_diff < 0 ) {
72- // get the positive difference
73- angle_diff = angle_diff * -1 ;
74- }
70+ auto angle_diff = path_angle.abs_diff (effector_angle);
71+
7572 if (angle_diff > 180 ) {
7673 // always use the smaller angle
77- angle_diff = angle_diff - 360 ;
78- angle_diff = angle_diff * -1 ;
74+ angle_diff = coord::phys_angle_t ::same_type_but_unsigned{360 } - angle_diff;
7975 }
8076
8177 double turn_time = angle_diff.to_double () / turn_speed->get ();
Original file line number Diff line number Diff line change @@ -171,15 +171,11 @@ const time::time_t Move::move_default(const std::shared_ptr<gamestate::GameEntit
171171
172172 // rotation
173173 if (not turn_speed->is_infinite_positive ()) {
174- auto angle_diff = path_angle - current_angle;
175- if (angle_diff < 0 ) {
176- // get the positive difference
177- angle_diff = angle_diff * -1 ;
178- }
174+ auto angle_diff = path_angle.abs_diff (current_angle);
175+
179176 if (angle_diff > 180 ) {
180177 // always use the smaller angle
181- angle_diff = angle_diff - 360 ;
182- angle_diff = angle_diff * -1 ;
178+ angle_diff = coord::phys_angle_t ::same_type_but_unsigned{360 } - angle_diff;
183179 }
184180
185181 // Set an intermediate position keyframe to halt the game entity
You can’t perform that action at this time.
0 commit comments