From 99d1072f203c196087d2787e11d04663fbffaabb Mon Sep 17 00:00:00 2001 From: Flerp Date: Thu, 13 Nov 2025 19:33:11 -0800 Subject: [PATCH] Separating movespeed change and adding delay --- src/mod_swift_travel_form.cpp | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/mod_swift_travel_form.cpp b/src/mod_swift_travel_form.cpp index c3cf02c..4577a2a 100644 --- a/src/mod_swift_travel_form.cpp +++ b/src/mod_swift_travel_form.cpp @@ -4,6 +4,8 @@ #include "Unit.h" #include "Item.h" #include "SharedDefines.h" +#include "EventProcessor.h" +#include "World.h" namespace { @@ -45,6 +47,22 @@ namespace return false; return true; } + + class SwiftTravelEvent : public BasicEvent + { + public: + SwiftTravelEvent(Player* player, uint8 form) : _player(player), _form(form) {} + bool Execute(uint64, uint32) override + { + if (_player && _player->IsInWorld()) + if (_form == FORM_TRAVEL) + _player->SetSpeed(MOVE_RUN, 2.0f, true); + return true; + } + private: + Player* _player; + uint8 _form; + }; } class SwiftTravelForm_WorldScript : public WorldScript @@ -83,8 +101,7 @@ public: if (!RequirementsMet(player)) return; - if (form == FORM_TRAVEL) - player->SetSpeed(MOVE_RUN, 2.0f, true); + player->m_Events.AddEvent(new SwiftTravelEvent(player, form), player->m_Events.CalculateTime(500)); } };