X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fcollision.cpp;h=99874dbfd8c1337d71e9fb440687573ad446d00c;hb=86b19f284990304f5c8322040f277138333a3697;hp=e966ad19deb84289c6d0d6034c3342013420a692;hpb=67a4cb7d8a4461fe7d5206189fd4e9539beb20b7;p=minetest.git diff --git a/src/collision.cpp b/src/collision.cpp index e966ad19d..99874dbfd 100644 --- a/src/collision.cpp +++ b/src/collision.cpp @@ -322,9 +322,12 @@ collisionMoveResult collisionMoveSimple(Environment *env, IGameDef *gamedef, } std::vector nodeboxes; n.getCollisionBoxes(gamedef->ndef(), &nodeboxes, neighbors); + + // Calculate float position only once + v3f posf = intToFloat(p, BS); for (auto box : nodeboxes) { - box.MinEdge += intToFloat(p, BS); - box.MaxEdge += intToFloat(p, BS); + box.MinEdge += posf; + box.MaxEdge += posf; cinfo.emplace_back(false, false, n_bouncy_value, p, box); } } else { @@ -437,7 +440,7 @@ collisionMoveResult collisionMoveSimple(Environment *env, IGameDef *gamedef, Go through every nodebox, find nearest collision */ for (u32 boxindex = 0; boxindex < cinfo.size(); boxindex++) { - NearbyCollisionInfo box_info = cinfo[boxindex]; + const NearbyCollisionInfo &box_info = cinfo[boxindex]; // Ignore if already stepped up this nodebox. if (box_info.is_step_up) continue;