mirror of
https://github.com/minetest/minetest.git
synced 2025-01-10 23:37:29 +01:00
Remove unused pos_max_d
This commit is contained in:
parent
9a44d835d6
commit
c00129360e
@ -96,7 +96,6 @@ void ClientEnvironment::step(float dtime)
|
|||||||
/*
|
/*
|
||||||
Maximum position increment
|
Maximum position increment
|
||||||
*/
|
*/
|
||||||
//f32 position_max_increment = 0.05*BS;
|
|
||||||
f32 position_max_increment = 0.1*BS;
|
f32 position_max_increment = 0.1*BS;
|
||||||
|
|
||||||
// Maximum time increment (for collision detection etc)
|
// Maximum time increment (for collision detection etc)
|
||||||
@ -176,12 +175,11 @@ void ClientEnvironment::step(float dtime)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Move the lplayer.
|
Move the local player.
|
||||||
This also does collision detection.
|
This also does collision detection.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
lplayer->move(dtime_part, this, position_max_increment,
|
lplayer->move(dtime_part, this, &player_collisions);
|
||||||
&player_collisions);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool player_immortal = false;
|
bool player_immortal = false;
|
||||||
|
@ -1143,11 +1143,10 @@ void GenericCAO::step(float dtime, ClientEnvironment *env)
|
|||||||
box.MinEdge *= BS;
|
box.MinEdge *= BS;
|
||||||
box.MaxEdge *= BS;
|
box.MaxEdge *= BS;
|
||||||
collisionMoveResult moveresult;
|
collisionMoveResult moveresult;
|
||||||
f32 pos_max_d = BS*0.125; // Distance per iteration
|
|
||||||
v3f p_pos = m_position;
|
v3f p_pos = m_position;
|
||||||
v3f p_velocity = m_velocity;
|
v3f p_velocity = m_velocity;
|
||||||
moveresult = collisionMoveSimple(env,env->getGameDef(),
|
moveresult = collisionMoveSimple(env,env->getGameDef(),
|
||||||
pos_max_d, box, m_prop.stepheight, dtime,
|
box, m_prop.stepheight, dtime,
|
||||||
&p_pos, &p_velocity, m_acceleration,
|
&p_pos, &p_velocity, m_acceleration,
|
||||||
this, m_prop.collideWithObjects);
|
this, m_prop.collideWithObjects);
|
||||||
// Apply results
|
// Apply results
|
||||||
|
@ -209,7 +209,7 @@ bool LocalPlayer::updateSneakNode(Map *map, const v3f &position,
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void LocalPlayer::move(f32 dtime, Environment *env, f32 pos_max_d,
|
void LocalPlayer::move(f32 dtime, Environment *env,
|
||||||
std::vector<CollisionInfo> *collision_info)
|
std::vector<CollisionInfo> *collision_info)
|
||||||
{
|
{
|
||||||
// Node at feet position, update each ClientEnvironment::step()
|
// Node at feet position, update each ClientEnvironment::step()
|
||||||
@ -218,7 +218,7 @@ void LocalPlayer::move(f32 dtime, Environment *env, f32 pos_max_d,
|
|||||||
|
|
||||||
// Temporary option for old move code
|
// Temporary option for old move code
|
||||||
if (!physics_override.new_move) {
|
if (!physics_override.new_move) {
|
||||||
old_move(dtime, env, pos_max_d, collision_info);
|
old_move(dtime, env, collision_info);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -320,17 +320,6 @@ void LocalPlayer::move(f32 dtime, Environment *env, f32 pos_max_d,
|
|||||||
nodemgr->get(node2.getContent()).climbable) && !free_move;
|
nodemgr->get(node2.getContent()).climbable) && !free_move;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
Collision uncertainty radius
|
|
||||||
Make it a bit larger than the maximum distance of movement
|
|
||||||
*/
|
|
||||||
//f32 d = pos_max_d * 1.1;
|
|
||||||
// A fairly large value in here makes moving smoother
|
|
||||||
f32 d = 0.15f * BS;
|
|
||||||
|
|
||||||
// This should always apply, otherwise there are glitches
|
|
||||||
sanity_check(d > pos_max_d);
|
|
||||||
|
|
||||||
// Player object property step height is multiplied by BS in
|
// Player object property step height is multiplied by BS in
|
||||||
// /src/script/common/c_content.cpp and /src/content_sao.cpp
|
// /src/script/common/c_content.cpp and /src/content_sao.cpp
|
||||||
float player_stepheight = (m_cao == nullptr) ? 0.0f :
|
float player_stepheight = (m_cao == nullptr) ? 0.0f :
|
||||||
@ -341,7 +330,7 @@ void LocalPlayer::move(f32 dtime, Environment *env, f32 pos_max_d,
|
|||||||
const v3f initial_speed = m_speed;
|
const v3f initial_speed = m_speed;
|
||||||
|
|
||||||
collisionMoveResult result = collisionMoveSimple(env, m_client,
|
collisionMoveResult result = collisionMoveSimple(env, m_client,
|
||||||
pos_max_d, m_collisionbox, player_stepheight, dtime,
|
m_collisionbox, player_stepheight, dtime,
|
||||||
&position, &m_speed, accel_f, m_cao);
|
&position, &m_speed, accel_f, m_cao);
|
||||||
|
|
||||||
bool could_sneak = control.sneak && !free_move && !in_liquid &&
|
bool could_sneak = control.sneak && !free_move && !in_liquid &&
|
||||||
@ -528,12 +517,12 @@ void LocalPlayer::move(f32 dtime, Environment *env, f32 pos_max_d,
|
|||||||
m_can_jump = m_can_jump && jumpspeed != 0.0f;
|
m_can_jump = m_can_jump && jumpspeed != 0.0f;
|
||||||
|
|
||||||
// Autojump
|
// Autojump
|
||||||
handleAutojump(dtime, env, result, initial_position, initial_speed, pos_max_d);
|
handleAutojump(dtime, env, result, initial_position, initial_speed);
|
||||||
}
|
}
|
||||||
|
|
||||||
void LocalPlayer::move(f32 dtime, Environment *env, f32 pos_max_d)
|
void LocalPlayer::move(f32 dtime, Environment *env)
|
||||||
{
|
{
|
||||||
move(dtime, env, pos_max_d, NULL);
|
move(dtime, env, nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
void LocalPlayer::applyControl(float dtime, Environment *env)
|
void LocalPlayer::applyControl(float dtime, Environment *env)
|
||||||
@ -827,7 +816,7 @@ void LocalPlayer::accelerate(const v3f &target_speed, const f32 max_increase_H,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Temporary option for old move code
|
// Temporary option for old move code
|
||||||
void LocalPlayer::old_move(f32 dtime, Environment *env, f32 pos_max_d,
|
void LocalPlayer::old_move(f32 dtime, Environment *env,
|
||||||
std::vector<CollisionInfo> *collision_info)
|
std::vector<CollisionInfo> *collision_info)
|
||||||
{
|
{
|
||||||
Map *map = &env->getMap();
|
Map *map = &env->getMap();
|
||||||
@ -924,15 +913,6 @@ void LocalPlayer::old_move(f32 dtime, Environment *env, f32 pos_max_d,
|
|||||||
is_climbing = (nodemgr->get(node.getContent()).climbable ||
|
is_climbing = (nodemgr->get(node.getContent()).climbable ||
|
||||||
nodemgr->get(node2.getContent()).climbable) && !free_move;
|
nodemgr->get(node2.getContent()).climbable) && !free_move;
|
||||||
|
|
||||||
/*
|
|
||||||
Collision uncertainty radius
|
|
||||||
Make it a bit larger than the maximum distance of movement
|
|
||||||
*/
|
|
||||||
//f32 d = pos_max_d * 1.1;
|
|
||||||
// A fairly large value in here makes moving smoother
|
|
||||||
f32 d = 0.15f * BS;
|
|
||||||
// This should always apply, otherwise there are glitches
|
|
||||||
sanity_check(d > pos_max_d);
|
|
||||||
// Maximum distance over border for sneaking
|
// Maximum distance over border for sneaking
|
||||||
f32 sneak_max = BS * 0.4f;
|
f32 sneak_max = BS * 0.4f;
|
||||||
|
|
||||||
@ -971,7 +951,7 @@ void LocalPlayer::old_move(f32 dtime, Environment *env, f32 pos_max_d,
|
|||||||
const v3f initial_speed = m_speed;
|
const v3f initial_speed = m_speed;
|
||||||
|
|
||||||
collisionMoveResult result = collisionMoveSimple(env, m_client,
|
collisionMoveResult result = collisionMoveSimple(env, m_client,
|
||||||
pos_max_d, m_collisionbox, player_stepheight, dtime,
|
m_collisionbox, player_stepheight, dtime,
|
||||||
&position, &m_speed, accel_f, m_cao);
|
&position, &m_speed, accel_f, m_cao);
|
||||||
|
|
||||||
// Position was slightly changed; update standing node pos
|
// Position was slightly changed; update standing node pos
|
||||||
@ -1155,7 +1135,7 @@ void LocalPlayer::old_move(f32 dtime, Environment *env, f32 pos_max_d,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Autojump
|
// Autojump
|
||||||
handleAutojump(dtime, env, result, initial_position, initial_speed, pos_max_d);
|
handleAutojump(dtime, env, result, initial_position, initial_speed);
|
||||||
}
|
}
|
||||||
|
|
||||||
float LocalPlayer::getSlipFactor(Environment *env, const v3f &speedH)
|
float LocalPlayer::getSlipFactor(Environment *env, const v3f &speedH)
|
||||||
@ -1178,8 +1158,7 @@ float LocalPlayer::getSlipFactor(Environment *env, const v3f &speedH)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void LocalPlayer::handleAutojump(f32 dtime, Environment *env,
|
void LocalPlayer::handleAutojump(f32 dtime, Environment *env,
|
||||||
const collisionMoveResult &result, const v3f &initial_position,
|
const collisionMoveResult &result, v3f initial_position, v3f initial_speed)
|
||||||
const v3f &initial_speed, f32 pos_max_d)
|
|
||||||
{
|
{
|
||||||
PlayerSettings &player_settings = getPlayerSettings();
|
PlayerSettings &player_settings = getPlayerSettings();
|
||||||
if (!player_settings.autojump)
|
if (!player_settings.autojump)
|
||||||
@ -1235,7 +1214,7 @@ void LocalPlayer::handleAutojump(f32 dtime, Environment *env,
|
|||||||
v3f jump_speed = initial_speed;
|
v3f jump_speed = initial_speed;
|
||||||
|
|
||||||
// try at peak of jump, zero step height
|
// try at peak of jump, zero step height
|
||||||
collisionMoveResult jump_result = collisionMoveSimple(env, m_client, pos_max_d,
|
collisionMoveResult jump_result = collisionMoveSimple(env, m_client,
|
||||||
m_collisionbox, 0.0f, dtime, &jump_pos, &jump_speed, v3f(0.0f), m_cao);
|
m_collisionbox, 0.0f, dtime, &jump_pos, &jump_speed, v3f(0.0f), m_cao);
|
||||||
|
|
||||||
// see if we can get a little bit farther horizontally if we had
|
// see if we can get a little bit farther horizontally if we had
|
||||||
|
@ -16,6 +16,7 @@ class GenericCAO;
|
|||||||
class ClientActiveObject;
|
class ClientActiveObject;
|
||||||
class ClientEnvironment;
|
class ClientEnvironment;
|
||||||
class IGameDef;
|
class IGameDef;
|
||||||
|
struct CollisionInfo;
|
||||||
struct collisionMoveResult;
|
struct collisionMoveResult;
|
||||||
|
|
||||||
enum class LocalPlayerAnimation
|
enum class LocalPlayerAnimation
|
||||||
@ -68,11 +69,8 @@ public:
|
|||||||
|
|
||||||
f32 gravity = 0; // total downwards acceleration
|
f32 gravity = 0; // total downwards acceleration
|
||||||
|
|
||||||
void move(f32 dtime, Environment *env, f32 pos_max_d);
|
void move(f32 dtime, Environment *env);
|
||||||
void move(f32 dtime, Environment *env, f32 pos_max_d,
|
void move(f32 dtime, Environment *env,
|
||||||
std::vector<CollisionInfo> *collision_info);
|
|
||||||
// Temporary option for old move code
|
|
||||||
void old_move(f32 dtime, Environment *env, f32 pos_max_d,
|
|
||||||
std::vector<CollisionInfo> *collision_info);
|
std::vector<CollisionInfo> *collision_info);
|
||||||
|
|
||||||
void applyControl(float dtime, Environment *env);
|
void applyControl(float dtime, Environment *env);
|
||||||
@ -174,10 +172,11 @@ private:
|
|||||||
const f32 max_increase_V, const bool use_pitch);
|
const f32 max_increase_V, const bool use_pitch);
|
||||||
bool updateSneakNode(Map *map, const v3f &position, const v3f &sneak_max);
|
bool updateSneakNode(Map *map, const v3f &position, const v3f &sneak_max);
|
||||||
float getSlipFactor(Environment *env, const v3f &speedH);
|
float getSlipFactor(Environment *env, const v3f &speedH);
|
||||||
|
void old_move(f32 dtime, Environment *env,
|
||||||
|
std::vector<CollisionInfo> *collision_info);
|
||||||
void handleAutojump(f32 dtime, Environment *env,
|
void handleAutojump(f32 dtime, Environment *env,
|
||||||
const collisionMoveResult &result,
|
const collisionMoveResult &result,
|
||||||
const v3f &position_before_move, const v3f &speed_before_move,
|
v3f position_before_move, v3f speed_before_move);
|
||||||
f32 pos_max_d);
|
|
||||||
|
|
||||||
v3f m_position;
|
v3f m_position;
|
||||||
v3s16 m_standing_node;
|
v3s16 m_standing_node;
|
||||||
|
@ -89,7 +89,7 @@ void Particle::step(float dtime, ClientEnvironment *env)
|
|||||||
aabb3f box(v3f(-m_p.size / 2.0f), v3f(m_p.size / 2.0f));
|
aabb3f box(v3f(-m_p.size / 2.0f), v3f(m_p.size / 2.0f));
|
||||||
v3f p_pos = m_pos * BS;
|
v3f p_pos = m_pos * BS;
|
||||||
v3f p_velocity = m_velocity * BS;
|
v3f p_velocity = m_velocity * BS;
|
||||||
collisionMoveResult r = collisionMoveSimple(env, env->getGameDef(), BS * 0.5f,
|
collisionMoveResult r = collisionMoveSimple(env, env->getGameDef(),
|
||||||
box, 0.0f, dtime, &p_pos, &p_velocity, m_acceleration * BS, nullptr,
|
box, 0.0f, dtime, &p_pos, &p_velocity, m_acceleration * BS, nullptr,
|
||||||
m_p.object_collision);
|
m_p.object_collision);
|
||||||
|
|
||||||
|
@ -323,7 +323,7 @@ static void add_object_boxes(Environment *env,
|
|||||||
#define PROFILER_NAME(text) (dynamic_cast<ServerEnvironment*>(env) ? ("Server: " text) : ("Client: " text))
|
#define PROFILER_NAME(text) (dynamic_cast<ServerEnvironment*>(env) ? ("Server: " text) : ("Client: " text))
|
||||||
|
|
||||||
collisionMoveResult collisionMoveSimple(Environment *env, IGameDef *gamedef,
|
collisionMoveResult collisionMoveSimple(Environment *env, IGameDef *gamedef,
|
||||||
f32 pos_max_d, const aabb3f &box_0,
|
const aabb3f &box_0,
|
||||||
f32 stepheight, f32 dtime,
|
f32 stepheight, f32 dtime,
|
||||||
v3f *pos_f, v3f *speed_f,
|
v3f *pos_f, v3f *speed_f,
|
||||||
v3f accel_f, ActiveObject *self,
|
v3f accel_f, ActiveObject *self,
|
||||||
|
@ -53,10 +53,9 @@ struct collisionMoveResult
|
|||||||
/// @warning For unit test use only.
|
/// @warning For unit test use only.
|
||||||
extern bool g_collision_problems_encountered;
|
extern bool g_collision_problems_encountered;
|
||||||
|
|
||||||
/// @brief Moves using a single iteration; speed should not exceed pos_max_d/dtime
|
|
||||||
/// @param self (optional) ActiveObject to ignore in the collision detection.
|
/// @param self (optional) ActiveObject to ignore in the collision detection.
|
||||||
collisionMoveResult collisionMoveSimple(Environment *env,IGameDef *gamedef,
|
collisionMoveResult collisionMoveSimple(Environment *env, IGameDef *gamedef,
|
||||||
f32 pos_max_d, const aabb3f &box_0,
|
const aabb3f &box_0,
|
||||||
f32 stepheight, f32 dtime,
|
f32 stepheight, f32 dtime,
|
||||||
v3f *pos_f, v3f *speed_f,
|
v3f *pos_f, v3f *speed_f,
|
||||||
v3f accel_f, ActiveObject *self=NULL,
|
v3f accel_f, ActiveObject *self=NULL,
|
||||||
|
@ -127,7 +127,6 @@ struct PlayerPhysicsOverride
|
|||||||
};
|
};
|
||||||
|
|
||||||
class Map;
|
class Map;
|
||||||
struct CollisionInfo;
|
|
||||||
struct HudElement;
|
struct HudElement;
|
||||||
class Environment;
|
class Environment;
|
||||||
|
|
||||||
@ -140,12 +139,6 @@ public:
|
|||||||
|
|
||||||
DISABLE_CLASS_COPY(Player);
|
DISABLE_CLASS_COPY(Player);
|
||||||
|
|
||||||
virtual void move(f32 dtime, Environment *env, f32 pos_max_d)
|
|
||||||
{}
|
|
||||||
virtual void move(f32 dtime, Environment *env, f32 pos_max_d,
|
|
||||||
std::vector<CollisionInfo> *collision_info)
|
|
||||||
{}
|
|
||||||
|
|
||||||
// in BS-space
|
// in BS-space
|
||||||
inline void setSpeed(v3f speed)
|
inline void setSpeed(v3f speed)
|
||||||
{
|
{
|
||||||
|
@ -155,12 +155,11 @@ void LuaEntitySAO::step(float dtime, bool send_recommended)
|
|||||||
aabb3f box = m_prop.collisionbox;
|
aabb3f box = m_prop.collisionbox;
|
||||||
box.MinEdge *= BS;
|
box.MinEdge *= BS;
|
||||||
box.MaxEdge *= BS;
|
box.MaxEdge *= BS;
|
||||||
f32 pos_max_d = BS*0.25; // Distance per iteration
|
|
||||||
v3f p_pos = m_base_position;
|
v3f p_pos = m_base_position;
|
||||||
v3f p_velocity = m_velocity;
|
v3f p_velocity = m_velocity;
|
||||||
v3f p_acceleration = m_acceleration;
|
v3f p_acceleration = m_acceleration;
|
||||||
moveresult = collisionMoveSimple(m_env, m_env->getGameDef(),
|
moveresult = collisionMoveSimple(m_env, m_env->getGameDef(),
|
||||||
pos_max_d, box, m_prop.stepheight, dtime,
|
box, m_prop.stepheight, dtime,
|
||||||
&p_pos, &p_velocity, p_acceleration,
|
&p_pos, &p_velocity, p_acceleration,
|
||||||
this, m_prop.collideWithObjects);
|
this, m_prop.collideWithObjects);
|
||||||
moveresult_p = &moveresult;
|
moveresult_p = &moveresult;
|
||||||
|
@ -1404,21 +1404,6 @@ void ServerEnvironment::step(float dtime)
|
|||||||
m_game_time_fraction_counter -= (float)inc_i;
|
m_game_time_fraction_counter -= (float)inc_i;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
Handle players
|
|
||||||
*/
|
|
||||||
{
|
|
||||||
ScopeProfiler sp(g_profiler, "ServerEnv: move players", SPT_AVG);
|
|
||||||
for (RemotePlayer *player : m_players) {
|
|
||||||
// Ignore disconnected players
|
|
||||||
if (player->getPeerId() == PEER_ID_INEXISTENT)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
// Move
|
|
||||||
player->move(dtime, this, 100 * BS);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Manage active block list
|
Manage active block list
|
||||||
*/
|
*/
|
||||||
|
@ -213,7 +213,6 @@ void TestCollision::testCollisionMoveSimple(IGameDef *gamedef)
|
|||||||
for (s16 z = 0; z < MAP_BLOCKSIZE; z++)
|
for (s16 z = 0; z < MAP_BLOCKSIZE; z++)
|
||||||
env->getMap().setNode({x, 0, z}, MapNode(t_CONTENT_STONE));
|
env->getMap().setNode({x, 0, z}, MapNode(t_CONTENT_STONE));
|
||||||
|
|
||||||
const f32 pos_max_d = 0.25f * BS; // ?
|
|
||||||
v3f pos, speed, accel;
|
v3f pos, speed, accel;
|
||||||
const aabb3f box(fpos(-0.1f, 0, -0.1f), fpos(0.1f, 1.4f, 0.1f));
|
const aabb3f box(fpos(-0.1f, 0, -0.1f), fpos(0.1f, 1.4f, 0.1f));
|
||||||
collisionMoveResult res;
|
collisionMoveResult res;
|
||||||
@ -222,7 +221,7 @@ void TestCollision::testCollisionMoveSimple(IGameDef *gamedef)
|
|||||||
pos = fpos(4, 1, 4);
|
pos = fpos(4, 1, 4);
|
||||||
speed = fpos(0, 0, 0);
|
speed = fpos(0, 0, 0);
|
||||||
accel = fpos(0, 1, 0);
|
accel = fpos(0, 1, 0);
|
||||||
res = collisionMoveSimple(env.get(), gamedef, pos_max_d, box, 0.0f, 1.0f,
|
res = collisionMoveSimple(env.get(), gamedef, box, 0.0f, 1.0f,
|
||||||
&pos, &speed, accel);
|
&pos, &speed, accel);
|
||||||
|
|
||||||
UASSERT(!res.touching_ground || !res.collides || !res.standing_on_object);
|
UASSERT(!res.touching_ground || !res.collides || !res.standing_on_object);
|
||||||
@ -236,7 +235,7 @@ void TestCollision::testCollisionMoveSimple(IGameDef *gamedef)
|
|||||||
pos = fpos(0, 0.5f, 0);
|
pos = fpos(0, 0.5f, 0);
|
||||||
speed = fpos(0, 0, 0);
|
speed = fpos(0, 0, 0);
|
||||||
accel = fpos(0, -9.81f, 0);
|
accel = fpos(0, -9.81f, 0);
|
||||||
res = collisionMoveSimple(env.get(), gamedef, pos_max_d, box, 0.0f, 0.04f,
|
res = collisionMoveSimple(env.get(), gamedef, box, 0.0f, 0.04f,
|
||||||
&pos, &speed, accel);
|
&pos, &speed, accel);
|
||||||
|
|
||||||
UASSERT(res.collides);
|
UASSERT(res.collides);
|
||||||
@ -256,7 +255,7 @@ void TestCollision::testCollisionMoveSimple(IGameDef *gamedef)
|
|||||||
pos = fpos(0, -100, 0);
|
pos = fpos(0, -100, 0);
|
||||||
speed = fpos(0, 0, 0);
|
speed = fpos(0, 0, 0);
|
||||||
accel = fpos(0, 0, 0);
|
accel = fpos(0, 0, 0);
|
||||||
res = collisionMoveSimple(env.get(), gamedef, pos_max_d, box, 0.0f, 1/60.0f,
|
res = collisionMoveSimple(env.get(), gamedef, box, 0.0f, 1/60.0f,
|
||||||
&pos, &speed, accel);
|
&pos, &speed, accel);
|
||||||
UASSERT(!res.collides);
|
UASSERT(!res.collides);
|
||||||
|
|
||||||
@ -264,7 +263,7 @@ void TestCollision::testCollisionMoveSimple(IGameDef *gamedef)
|
|||||||
pos = fpos(0, -100, 0);
|
pos = fpos(0, -100, 0);
|
||||||
speed = fpos(5, 0, 0);
|
speed = fpos(5, 0, 0);
|
||||||
accel = fpos(0, 0, 0);
|
accel = fpos(0, 0, 0);
|
||||||
res = collisionMoveSimple(env.get(), gamedef, pos_max_d, box, 0.0f, 1/60.0f,
|
res = collisionMoveSimple(env.get(), gamedef, box, 0.0f, 1/60.0f,
|
||||||
&pos, &speed, accel);
|
&pos, &speed, accel);
|
||||||
UASSERTEQ_V3F(speed, fpos(0, 0, 0));
|
UASSERTEQ_V3F(speed, fpos(0, 0, 0));
|
||||||
UASSERT(!res.collides); // FIXME this is actually inconsistent
|
UASSERT(!res.collides); // FIXME this is actually inconsistent
|
||||||
|
Loading…
Reference in New Issue
Block a user