Merge branch 'classheader' into 'master'

Some include cleanup

See merge request OpenMW/openmw!4815
This commit is contained in:
AnyOldName3 2025-07-28 22:35:24 +00:00
commit 7c3fa3c89f
8 changed files with 32 additions and 23 deletions

View File

@ -8,9 +8,6 @@
#include <string_view>
#include <vector>
#include "../mwmechanics/greetingstate.hpp"
#include "../mwrender/animationpriority.hpp"
#include "../mwworld/ptr.hpp"
namespace osg
@ -27,6 +24,11 @@ namespace ESM
class ESMWriter;
}
namespace MWMechanics
{
enum class GreetingState;
}
namespace MWWorld
{
class Ptr;

View File

@ -73,7 +73,7 @@ namespace MWMechanics
CharacterController mCharacterController;
int mGreetingTimer{ 0 };
float mTargetAngleRadians{ 0.f };
GreetingState mGreetingState{ Greet_None };
GreetingState mGreetingState{ GreetingState::None };
Misc::DeviatingPeriodicTimer mEngageCombat{ 1.0f, 0.25f,
Misc::Rng::deviate(0, 0.25f, MWBase::Environment::get().getWorld()->getPrng()) };
bool mIsTurningToPlayer{ false };

View File

@ -50,6 +50,7 @@
#include "attacktype.hpp"
#include "character.hpp"
#include "creaturestats.hpp"
#include "greetingstate.hpp"
#include "movement.hpp"
#include "npcstats.hpp"
#include "steering.hpp"
@ -487,7 +488,7 @@ namespace MWMechanics
{
actorState.setTurningToPlayer(false);
actorState.setGreetingTimer(0);
actorState.setGreetingState(Greet_None);
actorState.setGreetingState(GreetingState::None);
return;
}
@ -525,7 +526,7 @@ namespace MWMechanics
int greetingTimer = actorState.getGreetingTimer();
GreetingState greetingState = actorState.getGreetingState();
if (greetingState == Greet_None)
if (greetingState == GreetingState::None)
{
if ((playerPos - actorPos).length2() <= helloDistance * helloDistance && !playerStats.isDead()
&& !actorStats.isParalyzed() && !isTargetMagicallyHidden(player)
@ -535,14 +536,14 @@ namespace MWMechanics
if (greetingTimer >= GREETING_SHOULD_START)
{
greetingState = Greet_InProgress;
greetingState = GreetingState::InProgress;
if (!MWBase::Environment::get().getDialogueManager()->say(actor, ESM::RefId::stringRefId("hello")))
greetingState = Greet_Done;
greetingState = GreetingState::Done;
greetingTimer = 0;
}
}
if (greetingState == Greet_InProgress)
if (greetingState == GreetingState::InProgress)
{
greetingTimer++;
@ -554,16 +555,16 @@ namespace MWMechanics
if (greetingTimer >= GREETING_COOLDOWN)
{
greetingState = Greet_Done;
greetingState = GreetingState::Done;
greetingTimer = 0;
}
}
if (greetingState == Greet_Done)
if (greetingState == GreetingState::Done)
{
float resetDist = 2 * helloDistance;
if ((playerPos - actorPos).length2() >= resetDist * resetDist)
greetingState = Greet_None;
greetingState = GreetingState::None;
}
actorState.setGreetingTimer(greetingTimer);
@ -2381,7 +2382,7 @@ namespace MWMechanics
{
const auto it = mIndex.find(ptr.mRef);
if (it == mIndex.end())
return Greet_None;
return GreetingState::None;
return it->second->getGreetingState();
}

View File

@ -12,6 +12,7 @@
#include "character.hpp"
#include "creaturestats.hpp"
#include "greetingstate.hpp"
#include "movement.hpp"
namespace
@ -77,7 +78,7 @@ namespace MWMechanics
if (!stats.getMovementFlag(CreatureStats::Flag_ForceJump)
&& !stats.getMovementFlag(CreatureStats::Flag_ForceSneak)
&& (mechMgr->isTurningToPlayer(actor) || mechMgr->getGreetingState(actor) == Greet_InProgress))
&& (mechMgr->isTurningToPlayer(actor) || mechMgr->getGreetingState(actor) == GreetingState::InProgress))
return false;
const osg::Vec3f actorPos(actor.getRefData().getPosition().asVec3());

View File

@ -25,6 +25,7 @@
#include "actorutil.hpp"
#include "character.hpp"
#include "creaturestats.hpp"
#include "greetingstate.hpp"
#include "movement.hpp"
#include "pathgrid.hpp"
@ -257,7 +258,7 @@ namespace MWMechanics
&& !cStats.getMovementFlag(CreatureStats::Flag_ForceSneak))
{
GreetingState greetingState = MWBase::Environment::get().getMechanicsManager()->getGreetingState(actor);
if (greetingState == Greet_InProgress)
if (greetingState == GreetingState::InProgress)
{
if (storage.mState == AiWanderStorage::Wander_Walking)
{
@ -526,7 +527,7 @@ namespace MWMechanics
// Check if idle animation finished
GreetingState greetingState = MWBase::Environment::get().getMechanicsManager()->getGreetingState(actor);
if (!checkIdle(actor, storage.mIdleAnimation) && (greetingState == Greet_Done || greetingState == Greet_None))
if (!checkIdle(actor, storage.mIdleAnimation) && greetingState != GreetingState::InProgress)
{
if (mPathFinder.isPathConstructed())
storage.setState(AiWanderStorage::Wander_Walking, !mUsePathgrid);

View File

@ -3,11 +3,11 @@
namespace MWMechanics
{
enum GreetingState
enum class GreetingState
{
Greet_None,
Greet_InProgress,
Greet_Done
None,
InProgress,
Done
};
}

View File

@ -22,6 +22,7 @@
#include "../mwmechanics/aitravel.hpp"
#include "../mwmechanics/aiwander.hpp"
#include "../mwmechanics/creaturestats.hpp"
#include "../mwmechanics/greetingstate.hpp"
#include "../mwbase/environment.hpp"
#include "../mwbase/mechanicsmanager.hpp"
@ -487,7 +488,7 @@ namespace MWScript
else if (testedTargetId == "Player") // Currently the player ID is hardcoded
{
MWBase::MechanicsManager* mechMgr = MWBase::Environment::get().getMechanicsManager();
bool greeting = mechMgr->getGreetingState(actor) == MWMechanics::Greet_InProgress;
bool greeting = mechMgr->getGreetingState(actor) == MWMechanics::GreetingState::InProgress;
bool sayActive = MWBase::Environment::get().getSoundManager()->sayActive(actor);
targetsAreEqual = (greeting && sayActive) || mechMgr->isTurningToPlayer(actor);
}

View File

@ -6,7 +6,6 @@
#include <string>
#include <vector>
#include <osg/Quat>
#include <osg/Vec4f>
#include "doorstate.hpp"
@ -16,9 +15,13 @@
#include "../mwmechanics/damagesourcetype.hpp"
#include <components/esm/refid.hpp>
#include <components/esm3/loadskil.hpp>
#include <components/vfs/pathutil.hpp>
namespace osg
{
class Quat;
}
namespace ESM
{
struct ObjectState;