aboutsummaryrefslogtreecommitdiff
path: root/advtrains/signals.lua
diff options
context:
space:
mode:
authororwell96 <orwell@bleipb.de>2020-10-07 14:41:57 +0200
committerorwell96 <orwell@bleipb.de>2020-10-07 14:41:57 +0200
commitb892d793ac22a00ee8708b4697d83c0d0ca06743 (patch)
treec03c9e2f82f33d76809d69b07205c2f4fa53b75b /advtrains/signals.lua
parent1a743c2dd67df10e4e15191b2aeb8532158b28ad (diff)
downloadadvtrains-b892d793ac22a00ee8708b4697d83c0d0ca06743.tar.gz
advtrains-b892d793ac22a00ee8708b4697d83c0d0ca06743.tar.bz2
advtrains-b892d793ac22a00ee8708b4697d83c0d0ca06743.zip
Add windows compatibility in nodedb saving (H#153)
Note: it does not simply add os.delete() but reverts to the "old" behavior of directly overwriting the file, because this did work before.
Diffstat (limited to 'advtrains/signals.lua')
0 files changed, 0 insertions, 0 deletions
de "irrlichttypes_bloated.h" #include <vector> class Map; class IGameDef; enum CollisionType { COLLISION_NODE }; struct CollisionInfo { enum CollisionType type; v3s16 node_p; // COLLISION_NODE bool bouncy; v3f old_speed; v3f new_speed; CollisionInfo(): type(COLLISION_NODE), node_p(-32768,-32768,-32768), bouncy(false), old_speed(0,0,0), new_speed(0,0,0) {} }; struct collisionMoveResult { bool touching_ground; bool collides; bool collides_xz; bool standing_on_unloaded; std::vector<CollisionInfo> collisions; collisionMoveResult(): touching_ground(false), collides(false), collides_xz(false), standing_on_unloaded(false) {} }; // Moves using a single iteration; speed should not exceed pos_max_d/dtime collisionMoveResult collisionMoveSimple(Map *map, IGameDef *gamedef, f32 pos_max_d, const aabb3f &box_0, f32 stepheight, f32 dtime, v3f &pos_f, v3f &speed_f, v3f &accel_f); #if 0 // This doesn't seem to work and isn't used // Moves using as many iterations as needed collisionMoveResult collisionMovePrecise(Map *map, IGameDef *gamedef, f32 pos_max_d, const aabb3f &box_0, f32 stepheight, f32 dtime, v3f &pos_f, v3f &speed_f, v3f &accel_f); #endif // Helper function: // Checks for collision of a moving aabbox with a static aabbox // Returns -1 if no collision, 0 if X collision, 1 if Y collision, 2 if Z collision // dtime receives time until first collision, invalid if -1 is returned int axisAlignedCollision( const aabb3f &staticbox, const aabb3f &movingbox, const v3f &speed, f32 d, f32 &dtime); // Helper function: // Checks if moving the movingbox up by the given distance would hit a ceiling. bool wouldCollideWithCeiling( const std::vector<aabb3f> &staticboxes, const aabb3f &movingbox, f32 y_increase, f32 d); #endif