1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-06-27 16:36:03 +00:00

Fixes for using std:vector in ABMHander and further perf improvements

This commit is contained in:
Lars Hofhansl 2017-01-04 11:11:55 -08:00 committed by sfan5
parent ad10b8b762
commit ca3629637c
3 changed files with 22 additions and 13 deletions

View file

@ -305,8 +305,7 @@ public:
inline MapNode getNodeNoEx(v3s16 p)
{
bool is_valid;
MapNode node = getNode(p.X, p.Y, p.Z, &is_valid);
return is_valid ? node : MapNode(CONTENT_IGNORE);
return getNode(p.X, p.Y, p.Z, &is_valid);
}
inline void setNode(s16 x, s16 y, s16 z, MapNode & n)
@ -341,6 +340,22 @@ public:
return getNodeNoCheck(p.X, p.Y, p.Z, valid_position);
}
////
//// Non-checking, unsafe variants of the above
//// MapBlock must be loaded by another function in the same scope/function
//// Caller must ensure that this is not a dummy block (by calling isDummy())
////
inline const MapNode &getNodeUnsafe(s16 x, s16 y, s16 z)
{
return data[z * zstride + y * ystride + x];
}
inline const MapNode &getNodeUnsafe(v3s16 &p)
{
return getNodeUnsafe(p.X, p.Y, p.Z);
}
inline void setNodeNoCheck(s16 x, s16 y, s16 z, MapNode & n)
{
if (data == NULL)
@ -512,7 +527,6 @@ public:
void serializeNetworkSpecific(std::ostream &os, u16 net_proto_version);
void deSerializeNetworkSpecific(std::istream &is);
private:
/*
Private methods