more base class properties work

This commit is contained in:
ZappoMan 2014-08-08 18:06:16 -07:00
parent eda5614a75
commit 55e12baf78
3 changed files with 72 additions and 11 deletions

View file

@ -335,10 +335,6 @@ qDebug() << "EntityItem::appendEntityData() ... lastEdited=" << lastEdited;
propertiesDidntFit -= PROP_SCRIPT;
}
//appendSubclassData(OctreePacketData* packetData, EncodeBitstreamParams& params,
// EntityTreeElementExtraEncodeData* modelTreeElementExtraEncodeData,
// int& propertyCount, OctreeElement::AppendState& appendState);
appendSubclassData(packetData, params, modelTreeElementExtraEncodeData,
requestedProperties,
propertyFlags,
@ -543,9 +539,75 @@ int EntityItem::readEntityDataFromBuffer(const unsigned char* data, int bytesLef
}
}
// other properties velocit, etc should go here...
// PROP_SCRIPT
// script would go here...
// PROP_MASS,
if (propertyFlags.getHasProperty(PROP_MASS)) {
float value;
memcpy(&value, dataAt, sizeof(value));
dataAt += sizeof(value);
bytesRead += sizeof(value);
if (overwriteLocalData) {
_mass = value;
}
}
// PROP_VELOCITY,
if (propertyFlags.getHasProperty(PROP_VELOCITY)) {
glm::vec3 value;
memcpy(&value, dataAt, sizeof(value));
dataAt += sizeof(value);
bytesRead += sizeof(value);
if (overwriteLocalData) {
_velocity = value;
}
}
// PROP_GRAVITY,
if (propertyFlags.getHasProperty(PROP_GRAVITY)) {
glm::vec3 value;
memcpy(&value, dataAt, sizeof(value));
dataAt += sizeof(value);
bytesRead += sizeof(value);
if (overwriteLocalData) {
_gravity = value;
}
}
// PROP_DAMPING,
if (propertyFlags.getHasProperty(PROP_DAMPING)) {
float value;
memcpy(&value, dataAt, sizeof(value));
dataAt += sizeof(value);
bytesRead += sizeof(value);
if (overwriteLocalData) {
_damping = value;
}
}
// PROP_LIFETIME,
if (propertyFlags.getHasProperty(PROP_LIFETIME)) {
float value;
memcpy(&value, dataAt, sizeof(value));
dataAt += sizeof(value);
bytesRead += sizeof(value);
if (overwriteLocalData) {
_lifetime = value;
}
}
// PROP_SCRIPT,
if (propertyFlags.getHasProperty(PROP_SCRIPT)) {
// TODO: fix to new format...
uint16_t length;
memcpy(&length, dataAt, sizeof(length));
dataAt += sizeof(length);
bytesRead += sizeof(length);
QString value((const char*)dataAt);
dataAt += length;
bytesRead += length;
if (overwriteLocalData) {
setScript(value);
}
}
bytesRead += readEntitySubclassDataFromBuffer(dataAt, (bytesLeftToRead - bytesRead), args, propertyFlags, overwriteLocalData);

View file

@ -156,7 +156,6 @@ qDebug() << "ModelEntityItem::readEntitySubclassDataFromBuffer()... <<<<<<<<<<<<
// PROP_MODEL_URL
if (propertyFlags.getHasProperty(PROP_MODEL_URL)) {
// TODO: fix to new format...
uint16_t modelURLLength;
memcpy(&modelURLLength, dataAt, sizeof(modelURLLength));

View file

@ -40,9 +40,6 @@ Model properties:
// REQUIRED TO DO:
A) add velocity, gravity, damping to entity base class
Aa) handle sublass appendEntityData() and readEntityItemIDFromBuffer() similar to how we
handle setProperty()/getProperty() so that each subclass doesn't have to completely reimplement
the entire base class data stream...
Az) visible???
@ -216,5 +213,8 @@ Model properties:
// SOLVED - R) move to EntityItemProperties
// EntityItem::encodeEntityEditMessageDetails()
// EntityTypes::decodeEntityEditPacket()
// SOLVED - Aa) handle sublass appendEntityData() and readEntityItemIDFromBuffer() similar to how we
// handle setProperty()/getProperty() so that each subclass doesn't have to completely reimplement
// the entire base class data stream...