mirror of
https://github.com/overte-org/overte.git
synced 2025-08-06 10:43:45 +02:00
a simple hack to accept newer server scripts
This commit is contained in:
parent
f165e364e2
commit
f1b4f79ad9
2 changed files with 21 additions and 1 deletions
|
@ -780,7 +780,24 @@ int EntityItem::readEntityDataFromBuffer(const unsigned char* data, int bytesLef
|
||||||
READ_ENTITY_PROPERTY(PROP_LIFETIME, float, updateLifetime);
|
READ_ENTITY_PROPERTY(PROP_LIFETIME, float, updateLifetime);
|
||||||
READ_ENTITY_PROPERTY(PROP_SCRIPT, QString, setScript);
|
READ_ENTITY_PROPERTY(PROP_SCRIPT, QString, setScript);
|
||||||
READ_ENTITY_PROPERTY(PROP_SCRIPT_TIMESTAMP, quint64, setScriptTimestamp);
|
READ_ENTITY_PROPERTY(PROP_SCRIPT_TIMESTAMP, quint64, setScriptTimestamp);
|
||||||
|
|
||||||
|
bool previousOverwriteLocalDataValue = overwriteLocalData;
|
||||||
|
|
||||||
|
if (!overwriteLocalData) {
|
||||||
|
// We've decided not to read the data in this update because we have a newer local state of the entity.
|
||||||
|
// In order to work around a bug stopping server script changes from being received by an entity script server
|
||||||
|
// running a script that continously updates an entity, we force the overwriting of the server scripts
|
||||||
|
// if we believe this update might have a newer version than the one we have locally.
|
||||||
|
|
||||||
|
if (_lastEditedFromRemote > _serverScriptsChangedTimestamp) {
|
||||||
|
overwriteLocalData = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
READ_ENTITY_PROPERTY(PROP_SERVER_SCRIPTS, QString, setServerScripts);
|
READ_ENTITY_PROPERTY(PROP_SERVER_SCRIPTS, QString, setServerScripts);
|
||||||
|
|
||||||
|
overwriteLocalData = previousOverwriteLocalDataValue;
|
||||||
|
|
||||||
READ_ENTITY_PROPERTY(PROP_REGISTRATION_POINT, glm::vec3, updateRegistrationPoint);
|
READ_ENTITY_PROPERTY(PROP_REGISTRATION_POINT, glm::vec3, updateRegistrationPoint);
|
||||||
|
|
||||||
READ_ENTITY_PROPERTY(PROP_ANGULAR_DAMPING, float, updateAngularDamping);
|
READ_ENTITY_PROPERTY(PROP_ANGULAR_DAMPING, float, updateAngularDamping);
|
||||||
|
|
|
@ -261,7 +261,8 @@ public:
|
||||||
void setScriptTimestamp(const quint64 value) { _scriptTimestamp = value; }
|
void setScriptTimestamp(const quint64 value) { _scriptTimestamp = value; }
|
||||||
|
|
||||||
QString getServerScripts() const { return _serverScripts; }
|
QString getServerScripts() const { return _serverScripts; }
|
||||||
void setServerScripts(const QString& serverScripts) { _serverScripts = serverScripts; }
|
void setServerScripts(const QString& serverScripts)
|
||||||
|
{ _serverScripts = serverScripts; _serverScriptsChangedTimestamp = usecTimestampNow(); }
|
||||||
|
|
||||||
const QString& getCollisionSoundURL() const { return _collisionSoundURL; }
|
const QString& getCollisionSoundURL() const { return _collisionSoundURL; }
|
||||||
void setCollisionSoundURL(const QString& value);
|
void setCollisionSoundURL(const QString& value);
|
||||||
|
@ -515,7 +516,9 @@ protected:
|
||||||
QString _script; /// the value of the script property
|
QString _script; /// the value of the script property
|
||||||
QString _loadedScript; /// the value of _script when the last preload signal was sent
|
QString _loadedScript; /// the value of _script when the last preload signal was sent
|
||||||
quint64 _scriptTimestamp{ ENTITY_ITEM_DEFAULT_SCRIPT_TIMESTAMP }; /// the script loaded property used for forced reload
|
quint64 _scriptTimestamp{ ENTITY_ITEM_DEFAULT_SCRIPT_TIMESTAMP }; /// the script loaded property used for forced reload
|
||||||
|
|
||||||
QString _serverScripts;
|
QString _serverScripts;
|
||||||
|
quint64 _serverScriptsChangedTimestamp; /// keep track of time when _serverScripts property was last changed
|
||||||
|
|
||||||
/// the value of _scriptTimestamp when the last preload signal was sent
|
/// the value of _scriptTimestamp when the last preload signal was sent
|
||||||
// NOTE: on construction we want this to be different from _scriptTimestamp so we intentionally bump it
|
// NOTE: on construction we want this to be different from _scriptTimestamp so we intentionally bump it
|
||||||
|
|
Loading…
Reference in a new issue