mirror of
https://github.com/overte-org/overte.git
synced 2025-08-06 10:43:45 +02:00
Merge pull request #14742 from hyperlogic/bug-fix/user-recenter-model-pref
Settings > Controls > User Recenter Model now saves properly
This commit is contained in:
commit
a2b2f3f67c
2 changed files with 37 additions and 1 deletions
|
@ -95,6 +95,37 @@ const float CENTIMETERS_PER_METER = 100.0f;
|
||||||
|
|
||||||
const QString AVATAR_SETTINGS_GROUP_NAME { "Avatar" };
|
const QString AVATAR_SETTINGS_GROUP_NAME { "Avatar" };
|
||||||
|
|
||||||
|
static const QString USER_RECENTER_MODEL_FORCE_SIT = QStringLiteral("ForceSit");
|
||||||
|
static const QString USER_RECENTER_MODEL_FORCE_STAND = QStringLiteral("ForceStand");
|
||||||
|
static const QString USER_RECENTER_MODEL_AUTO = QStringLiteral("Auto");
|
||||||
|
static const QString USER_RECENTER_MODEL_DISABLE_HMD_LEAN = QStringLiteral("DisableHMDLean");
|
||||||
|
|
||||||
|
MyAvatar::SitStandModelType stringToUserRecenterModel(const QString& str) {
|
||||||
|
if (str == USER_RECENTER_MODEL_FORCE_SIT) {
|
||||||
|
return MyAvatar::ForceSit;
|
||||||
|
} else if (str == USER_RECENTER_MODEL_FORCE_STAND) {
|
||||||
|
return MyAvatar::ForceStand;
|
||||||
|
} else if (str == USER_RECENTER_MODEL_DISABLE_HMD_LEAN) {
|
||||||
|
return MyAvatar::DisableHMDLean;
|
||||||
|
} else {
|
||||||
|
return MyAvatar::Auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
QString userRecenterModelToString(MyAvatar::SitStandModelType model) {
|
||||||
|
switch (model) {
|
||||||
|
case MyAvatar::ForceSit:
|
||||||
|
return USER_RECENTER_MODEL_FORCE_SIT;
|
||||||
|
case MyAvatar::ForceStand:
|
||||||
|
return USER_RECENTER_MODEL_FORCE_STAND;
|
||||||
|
case MyAvatar::DisableHMDLean:
|
||||||
|
return USER_RECENTER_MODEL_DISABLE_HMD_LEAN;
|
||||||
|
case MyAvatar::Auto:
|
||||||
|
default:
|
||||||
|
return USER_RECENTER_MODEL_AUTO;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
MyAvatar::MyAvatar(QThread* thread) :
|
MyAvatar::MyAvatar(QThread* thread) :
|
||||||
Avatar(thread),
|
Avatar(thread),
|
||||||
_yawSpeed(YAW_SPEED_DEFAULT),
|
_yawSpeed(YAW_SPEED_DEFAULT),
|
||||||
|
@ -139,7 +170,8 @@ MyAvatar::MyAvatar(QThread* thread) :
|
||||||
_useSnapTurnSetting(QStringList() << AVATAR_SETTINGS_GROUP_NAME << "useSnapTurn", _useSnapTurn),
|
_useSnapTurnSetting(QStringList() << AVATAR_SETTINGS_GROUP_NAME << "useSnapTurn", _useSnapTurn),
|
||||||
_userHeightSetting(QStringList() << AVATAR_SETTINGS_GROUP_NAME << "userHeight", DEFAULT_AVATAR_HEIGHT),
|
_userHeightSetting(QStringList() << AVATAR_SETTINGS_GROUP_NAME << "userHeight", DEFAULT_AVATAR_HEIGHT),
|
||||||
_flyingHMDSetting(QStringList() << AVATAR_SETTINGS_GROUP_NAME << "flyingHMD", _flyingPrefHMD),
|
_flyingHMDSetting(QStringList() << AVATAR_SETTINGS_GROUP_NAME << "flyingHMD", _flyingPrefHMD),
|
||||||
_avatarEntityCountSetting(QStringList() << AVATAR_SETTINGS_GROUP_NAME << "avatarEntityData" << "size", 0)
|
_avatarEntityCountSetting(QStringList() << AVATAR_SETTINGS_GROUP_NAME << "avatarEntityData" << "size", 0),
|
||||||
|
_userRecenterModelSetting(QStringList() << AVATAR_SETTINGS_GROUP_NAME << "userRecenterModel", USER_RECENTER_MODEL_AUTO)
|
||||||
{
|
{
|
||||||
_clientTraitsHandler.reset(new ClientTraitsHandler(this));
|
_clientTraitsHandler.reset(new ClientTraitsHandler(this));
|
||||||
|
|
||||||
|
@ -1318,6 +1350,7 @@ void MyAvatar::saveData() {
|
||||||
_useSnapTurnSetting.set(_useSnapTurn);
|
_useSnapTurnSetting.set(_useSnapTurn);
|
||||||
_userHeightSetting.set(getUserHeight());
|
_userHeightSetting.set(getUserHeight());
|
||||||
_flyingHMDSetting.set(getFlyingHMDPref());
|
_flyingHMDSetting.set(getFlyingHMDPref());
|
||||||
|
_userRecenterModelSetting.set(userRecenterModelToString(getUserRecenterModel()));
|
||||||
|
|
||||||
auto hmdInterface = DependencyManager::get<HMDScriptingInterface>();
|
auto hmdInterface = DependencyManager::get<HMDScriptingInterface>();
|
||||||
saveAvatarEntityDataToSettings();
|
saveAvatarEntityDataToSettings();
|
||||||
|
@ -1904,6 +1937,8 @@ void MyAvatar::loadData() {
|
||||||
setUserHeight(_userHeightSetting.get(DEFAULT_AVATAR_HEIGHT));
|
setUserHeight(_userHeightSetting.get(DEFAULT_AVATAR_HEIGHT));
|
||||||
setTargetScale(_scaleSetting.get());
|
setTargetScale(_scaleSetting.get());
|
||||||
|
|
||||||
|
setUserRecenterModel(stringToUserRecenterModel(_userRecenterModelSetting.get(USER_RECENTER_MODEL_AUTO)));
|
||||||
|
|
||||||
setEnableMeshVisible(Menu::getInstance()->isOptionChecked(MenuOption::MeshVisible));
|
setEnableMeshVisible(Menu::getInstance()->isOptionChecked(MenuOption::MeshVisible));
|
||||||
_follow.setToggleHipsFollowing (Menu::getInstance()->isOptionChecked(MenuOption::ToggleHipsFollowing));
|
_follow.setToggleHipsFollowing (Menu::getInstance()->isOptionChecked(MenuOption::ToggleHipsFollowing));
|
||||||
setEnableDebugDrawBaseOfSupport(Menu::getInstance()->isOptionChecked(MenuOption::AnimDebugDrawBaseOfSupport));
|
setEnableDebugDrawBaseOfSupport(Menu::getInstance()->isOptionChecked(MenuOption::AnimDebugDrawBaseOfSupport));
|
||||||
|
|
|
@ -1983,6 +1983,7 @@ private:
|
||||||
Setting::Handle<bool> _allowTeleportingSetting { "allowTeleporting", true };
|
Setting::Handle<bool> _allowTeleportingSetting { "allowTeleporting", true };
|
||||||
std::vector<Setting::Handle<QUuid>> _avatarEntityIDSettings;
|
std::vector<Setting::Handle<QUuid>> _avatarEntityIDSettings;
|
||||||
std::vector<Setting::Handle<QByteArray>> _avatarEntityDataSettings;
|
std::vector<Setting::Handle<QByteArray>> _avatarEntityDataSettings;
|
||||||
|
Setting::Handle<QString> _userRecenterModelSetting;
|
||||||
|
|
||||||
// AvatarEntities stuff:
|
// AvatarEntities stuff:
|
||||||
// We cache the "map of unfortunately-formatted-binary-blobs" because they are expensive to compute
|
// We cache the "map of unfortunately-formatted-binary-blobs" because they are expensive to compute
|
||||||
|
|
Loading…
Reference in a new issue