aboutsummaryrefslogtreecommitdiff
path: root/src/game/Object.cpp
diff options
context:
space:
mode:
authormegamage <none@none>2009-04-11 12:00:43 -0500
committermegamage <none@none>2009-04-11 12:00:43 -0500
commitc9005f636eb41a7f88400c6925eb2c5d47bf4c9f (patch)
tree19f366fa1dce1cec0db1a8bb4b226f0a722930c8 /src/game/Object.cpp
parent95312bcf02d8045bf4a0c7f9b89cdfa3e4217316 (diff)
*Improve setupatebit code. Also can get more debug info.
--HG-- branch : trunk
Diffstat (limited to 'src/game/Object.cpp')
-rw-r--r--src/game/Object.cpp34
1 files changed, 10 insertions, 24 deletions
diff --git a/src/game/Object.cpp b/src/game/Object.cpp
index 8c16f39cfc6..7ac0ff8c8a6 100644
--- a/src/game/Object.cpp
+++ b/src/game/Object.cpp
@@ -749,20 +749,10 @@ void Object::_BuildValuesUpdate(uint8 updatetype, ByteBuffer * data, UpdateMask
void Object::ClearUpdateMask(bool remove)
{
- if(!m_uint32Values_mirror || !m_uint32Values)
- {
- sLog.outCrash("Object::ClearUpdateMask: Object entry %u (type %u) does not have uint32Values", GetEntry(), GetTypeId());
- return;
- }
+ uint32 *temp = m_uint32Values;
- uint32 temp = m_uint32Values[0];
- temp = m_uint32Values_mirror[0];
+ memcpy(m_uint32Values_mirror, m_uint32Values, m_valuesCount*sizeof(uint32));
- for( uint16 index = 0; index < m_valuesCount; index ++ )
- {
- if(m_uint32Values_mirror[index]!= m_uint32Values[index])
- m_uint32Values_mirror[index] = m_uint32Values[index];
- }
if(m_objectUpdated)
{
if(remove)
@@ -806,27 +796,23 @@ bool Object::LoadValues(const char* data)
void Object::_SetUpdateBits(UpdateMask *updateMask, Player* /*target*/) const
{
- if(!m_uint32Values_mirror || !m_uint32Values)
- {
- sLog.outCrash("Object::_SetUpdateBits: Object entry %u (type %u) does not have uint32Values", GetEntry(), GetTypeId());
- return;
- }
+ uint32 *value = m_uint32Values;
+ uint32 *mirror = m_uint32Values_mirror;
- uint32 temp = m_uint32Values[0];
- temp = m_uint32Values_mirror[0];
-
- for(uint16 index = 0; index < m_valuesCount; ++index)
+ for(uint16 index = 0; index < m_valuesCount; ++index, ++value, ++mirror)
{
- if(m_uint32Values_mirror[index]!= m_uint32Values[index])
+ if(*mirror != *value)
updateMask->SetBit(index);
}
}
void Object::_SetCreateBits(UpdateMask *updateMask, Player* /*target*/) const
{
- for( uint16 index = 0; index < m_valuesCount; index++ )
+ uint32 *value = m_uint32Values;
+
+ for(uint16 index = 0; index < m_valuesCount; ++index, ++value)
{
- if(GetUInt32Value(index) != 0)
+ if(*value)
updateMask->SetBit(index);
}
}