mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-31 01:23:47 +00:00
feat(Core/Scripts): Optimize MovementHandlerScript need#18672 (#18701)
* Add files via upload * Add files via upload
This commit is contained in:
@@ -21,16 +21,18 @@
|
|||||||
|
|
||||||
void ScriptMgr::OnPlayerMove(Player* player, MovementInfo movementInfo, uint32 opcode)
|
void ScriptMgr::OnPlayerMove(Player* player, MovementInfo movementInfo, uint32 opcode)
|
||||||
{
|
{
|
||||||
ExecuteScript<MovementHandlerScript>([&](MovementHandlerScript* script)
|
CALL_ENABLED_HOOKS(MovementHandlerScript, MOVEMENTHOOK_ON_PLAYER_MOVE, script->OnPlayerMove(player, movementInfo, opcode));
|
||||||
{
|
|
||||||
script->OnPlayerMove(player, movementInfo, opcode);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
MovementHandlerScript::MovementHandlerScript(const char* name) :
|
MovementHandlerScript::MovementHandlerScript(const char* name, std::vector<uint16> enabledHooks) :
|
||||||
ScriptObject(name)
|
ScriptObject(name, MOVEMENTHOOK_END)
|
||||||
{
|
{
|
||||||
ScriptRegistry<MovementHandlerScript>::AddScript(this);
|
// If empty - enable all available hooks.
|
||||||
|
if (enabledHooks.empty())
|
||||||
|
for (uint16 i = 0; i < MOVEMENTHOOK_END; i++)
|
||||||
|
enabledHooks.emplace_back(i);
|
||||||
|
|
||||||
|
ScriptRegistry<MovementHandlerScript>::AddScript(this, std::move(enabledHooks));
|
||||||
}
|
}
|
||||||
|
|
||||||
template class AC_GAME_API ScriptRegistry<MovementHandlerScript>;
|
template class AC_GAME_API ScriptRegistry<MovementHandlerScript>;
|
||||||
|
|||||||
@@ -21,10 +21,16 @@
|
|||||||
#include "Object.h"
|
#include "Object.h"
|
||||||
#include "ScriptObject.h"
|
#include "ScriptObject.h"
|
||||||
|
|
||||||
|
enum MovementHook
|
||||||
|
{
|
||||||
|
MOVEMENTHOOK_ON_PLAYER_MOVE,
|
||||||
|
MOVEMENTHOOK_END
|
||||||
|
};
|
||||||
|
|
||||||
class MovementHandlerScript : public ScriptObject
|
class MovementHandlerScript : public ScriptObject
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
MovementHandlerScript(const char* name);
|
MovementHandlerScript(const char* name, std::vector<uint16> enabledHooks = std::vector<uint16>());
|
||||||
|
|
||||||
public:
|
public:
|
||||||
//Called whenever a player moves
|
//Called whenever a player moves
|
||||||
|
|||||||
Reference in New Issue
Block a user