![]() |
Pyrogenesis HEAD
Pyrogenesis, a RTS Engine
|
#include "precompiled.h"#include "CCmpUnitMotion.h"#include "CCmpUnitMotionManager.h"#include "maths/MathUtil.h"#include "ps/CLogger.h"#include "ps/Profile.h"#include <algorithm>#include <limits>#include <unordered_set>#include <vector>
Classes | |
| struct | SerializeHelper< CCmpUnitMotionManager::MotionState > |
| struct | SerializeHelper< EntityMap< CCmpUnitMotionManager::MotionState > > |
Namespaces | |
| namespace | anonymous_namespace{CCmpUnitMotion_System.cpp} |
Macros | |
| #define | DEBUG_STATS 0 |
| #define | DEBUG_RENDER 0 |
| #define | DEBUG_RENDER_ALL_PUSH 0 |
Variables | |
| constexpr int | anonymous_namespace{CCmpUnitMotion_System.cpp}::PUSHING_GRID_SIZE = 20 |
| Units push within their square and neighboring squares (except diagonals). More... | |
| constexpr entity_pos_t | anonymous_namespace{CCmpUnitMotion_System.cpp}::PUSHING_CORRECTION = entity_pos_t::FromFraction(5, 7) |
| For pushing, treat the clearances as a circle - they're defined as squares, so we'll take the circumscribing square (approximately). More... | |
| constexpr int | anonymous_namespace{CCmpUnitMotion_System.cpp}::PUSHING_REDUCTION_FACTOR = 2 |
| Arbitrary constant used to reduce pushing to levels that won't break physics for our turn length. More... | |
| constexpr entity_pos_t | anonymous_namespace{CCmpUnitMotion_System.cpp}::MAX_DISTANCE_FACTOR = entity_pos_t::FromFraction(5, 2) |
| Maximum distance-related multiplier. More... | |
| constexpr int | anonymous_namespace{CCmpUnitMotion_System.cpp}::MAX_PUSHING_MULTIPLIER = 4 |
| Maximum pushing multiplier for a single push calculation. More... | |
| constexpr entity_pos_t | anonymous_namespace{CCmpUnitMotion_System.cpp}::PERPENDICULAR_NUDGE_THRESHOLD = entity_pos_t::FromFraction(-1, 10) |
| When two units collide, if their movement dot product is below this value, give them a perpendicular nudge instead of trying to push in the regular way. More... | |
| constexpr int | anonymous_namespace{CCmpUnitMotion_System.cpp}::MAX_PUSH_DAMPING_PRESSURE = 160 |
| Pushing is dampened by pushing pressure, but this is capped so that units still get pushed. More... | |
| constexpr int | anonymous_namespace{CCmpUnitMotion_System.cpp}::MIN_PRESSURE_IF_OBSTRUCTED = 80 |
| When units are obstructed because they're being pushed away from where they want to go, raise the pushing pressure to at least this value. More... | |
| constexpr entity_pos_t | anonymous_namespace{CCmpUnitMotion_System.cpp}::PRESSURE_STATIC_FACTOR = entity_pos_t::FromInt(2) |
| These two numbers are used to calculate pushing pressure between two units. More... | |
| constexpr int | anonymous_namespace{CCmpUnitMotion_System.cpp}::PRESSURE_DISTANCE_FACTOR = 5 |
| #define DEBUG_RENDER 0 |
| #define DEBUG_RENDER_ALL_PUSH 0 |
| #define DEBUG_STATS 0 |