diff --git a/apps/openmw/mwmechanics/character.cpp b/apps/openmw/mwmechanics/character.cpp index f73223e94..fe87e2074 100644 --- a/apps/openmw/mwmechanics/character.cpp +++ b/apps/openmw/mwmechanics/character.cpp @@ -687,7 +687,7 @@ void CharacterController::playRandomDeath(float startpoint) Start of tes3mp addition If this is a LocalActor or DedicatedActor whose death animation is supposed to be finished, - set the start point to the animation's end + set the startpoint to the animation's end */ if (mPtr.getClass().getCreatureStats(mPtr).isDeathAnimationFinished() && (mwmp::Main::get().getCellController()->isLocalActor(mPtr) || mwmp::Main::get().getCellController()->isDedicatedActor(mPtr))) { diff --git a/apps/openmw/mwmp/DedicatedActor.cpp b/apps/openmw/mwmp/DedicatedActor.cpp index 978a94471..dbb5c6ce1 100644 --- a/apps/openmw/mwmp/DedicatedActor.cpp +++ b/apps/openmw/mwmp/DedicatedActor.cpp @@ -43,8 +43,13 @@ DedicatedActor::~DedicatedActor() void DedicatedActor::update(float dt) { - move(dt); - setAnimFlags(); + // Only move and set anim flags if the framerate isn't too low + if (dt < 0.1) + { + move(dt); + setAnimFlags(); + } + playAnimation(); playSound(); setStatsDynamic(); diff --git a/apps/openmw/mwmp/DedicatedPlayer.cpp b/apps/openmw/mwmp/DedicatedPlayer.cpp index 13c20173c..4e6af2a6e 100644 --- a/apps/openmw/mwmp/DedicatedPlayer.cpp +++ b/apps/openmw/mwmp/DedicatedPlayer.cpp @@ -83,8 +83,12 @@ void DedicatedPlayer::update(float dt) ptrCreatureStats->setAiSetting(MWMechanics::CreatureStats::AI_Flee, 0); ptrCreatureStats->setAiSetting(MWMechanics::CreatureStats::AI_Hello, 0); - move(dt); - updateAnimFlags(); + // Only move and set anim flags if the framerate isn't too low + if (dt < 0.1) + { + move(dt); + setAnimFlags(); + } } void DedicatedPlayer::move(float dt) @@ -120,7 +124,7 @@ void DedicatedPlayer::move(float dt) world->rotateObject(ptr, position.rot[0], position.rot[1], position.rot[2]); } -void DedicatedPlayer::updateAnimFlags() +void DedicatedPlayer::setAnimFlags() { using namespace MWMechanics; @@ -154,7 +158,7 @@ void DedicatedPlayer::updateAnimFlags() ptrCreatureStats->setMovementFlag(CreatureStats::Flag_ForceMoveJump, (movementFlags & CreatureStats::Flag_ForceMoveJump) != 0); } -void DedicatedPlayer::updateEquipment() +void DedicatedPlayer::setEquipment() { MWWorld::InventoryStore& invStore = ptr.getClass().getInventoryStore(ptr); for (int slot = 0; slot < MWWorld::InventoryStore::Slots; ++slot) @@ -194,7 +198,7 @@ void DedicatedPlayer::updateEquipment() } } -void DedicatedPlayer::updateCell() +void DedicatedPlayer::setCell() { // Prevent cell update when player hasn't been instantiated yet if (state == 0) diff --git a/apps/openmw/mwmp/DedicatedPlayer.hpp b/apps/openmw/mwmp/DedicatedPlayer.hpp index 3307d7045..ce91de558 100644 --- a/apps/openmw/mwmp/DedicatedPlayer.hpp +++ b/apps/openmw/mwmp/DedicatedPlayer.hpp @@ -34,9 +34,9 @@ namespace mwmp void update(float dt); void move(float dt); - void updateAnimFlags(); - void updateEquipment(); - void updateCell(); + void setAnimFlags(); + void setEquipment(); + void setCell(); void updateMarker(); void removeMarker(); diff --git a/apps/openmw/mwmp/PlayerList.cpp b/apps/openmw/mwmp/PlayerList.cpp index 30942cf71..9c3d6ddcd 100644 --- a/apps/openmw/mwmp/PlayerList.cpp +++ b/apps/openmw/mwmp/PlayerList.cpp @@ -183,7 +183,7 @@ void PlayerList::createPlayer(RakNet::RakNetGUID guid) world->disable(players[guid]->ptr); dedicPlayer->setPtr(world->moveObject(dedicPlayer->ptr, cellStore, spawnPos.pos[0], spawnPos.pos[1], spawnPos.pos[2])); - dedicPlayer->updateCell(); + dedicPlayer->setCell(); ESM::CustomMarker mEditingMarker = Main::get().getGUIController()->CreateMarker(guid); dedicPlayer->marker = mEditingMarker; diff --git a/apps/openmw/mwmp/processors/player/ProcessorPlayerAnimFlags.hpp b/apps/openmw/mwmp/processors/player/ProcessorPlayerAnimFlags.hpp index 0390278fd..246af1cea 100644 --- a/apps/openmw/mwmp/processors/player/ProcessorPlayerAnimFlags.hpp +++ b/apps/openmw/mwmp/processors/player/ProcessorPlayerAnimFlags.hpp @@ -26,7 +26,7 @@ namespace mwmp static_cast(player)->updateAnimFlags(true); } else if (player != 0) - static_cast(player)->updateAnimFlags(); + static_cast(player)->setAnimFlags(); } }; } diff --git a/apps/openmw/mwmp/processors/player/ProcessorPlayerCellChange.hpp b/apps/openmw/mwmp/processors/player/ProcessorPlayerCellChange.hpp index 9ca5cecc2..af807ef38 100644 --- a/apps/openmw/mwmp/processors/player/ProcessorPlayerCellChange.hpp +++ b/apps/openmw/mwmp/processors/player/ProcessorPlayerCellChange.hpp @@ -28,7 +28,7 @@ namespace mwmp static_cast(player)->setCell(); } else if (player != 0) - static_cast(player)->updateCell(); + static_cast(player)->setCell(); } }; } diff --git a/apps/openmw/mwmp/processors/player/ProcessorPlayerEquipment.hpp b/apps/openmw/mwmp/processors/player/ProcessorPlayerEquipment.hpp index 0e2eac6ae..e09eee61c 100644 --- a/apps/openmw/mwmp/processors/player/ProcessorPlayerEquipment.hpp +++ b/apps/openmw/mwmp/processors/player/ProcessorPlayerEquipment.hpp @@ -28,7 +28,7 @@ namespace mwmp static_cast(player)->setEquipment(); } else if (player != 0) - static_cast(player)->updateEquipment(); + static_cast(player)->setEquipment(); } }; }