diff --git a/src/servers/sapphire_zone/Actor/Player.h b/src/servers/sapphire_zone/Actor/Player.h index b782515b..c02dd2db 100644 --- a/src/servers/sapphire_zone/Actor/Player.h +++ b/src/servers/sapphire_zone/Actor/Player.h @@ -604,6 +604,7 @@ private: InventoryPtr m_pInventory; std::map< uint32_t, Event::EventHandlerPtr > m_eventHandlerMap; + std::map< uint32_t, uint8_t > m_playerIdToSpawnIdMap; // maps player to spawn id std::queue< uint8_t > m_freeSpawnIdQueue; // queue with spawn ids free to be assigned std::queue< uint8_t > m_freeHateSlotQueue; // queue with "hate slots" free to be assigned diff --git a/src/servers/sapphire_zone/Actor/PlayerEvent.cpp b/src/servers/sapphire_zone/Actor/PlayerEvent.cpp index 571a3d4d..2e08bdb4 100644 --- a/src/servers/sapphire_zone/Actor/PlayerEvent.cpp +++ b/src/servers/sapphire_zone/Actor/PlayerEvent.cpp @@ -79,7 +79,9 @@ void Core::Entity::Player::eventStart( uint64_t actorId, uint32_t eventId, Event::EventHandler::EventType eventType, uint8_t eventParam1, uint32_t eventParam2 ) { + Event::EventHandlerPtr newEvent( new Event::EventHandler( this, actorId, eventId, eventType, eventParam2 ) ); + addEvent( newEvent ); setStateFlag( PlayerStateFlag::Occupied2 ); diff --git a/src/servers/sapphire_zone/Event/EventHandler.cpp b/src/servers/sapphire_zone/Event/EventHandler.cpp index e4ab39cf..1968f59b 100644 --- a/src/servers/sapphire_zone/Event/EventHandler.cpp +++ b/src/servers/sapphire_zone/Event/EventHandler.cpp @@ -9,9 +9,7 @@ Core::Event::EventHandler::EventHandler( Entity::Player* pOwner, uint64_t actorI { m_entryId = static_cast< uint16_t >( eventId ); m_type = static_cast< uint16_t >( eventId >> 16 ); - m_eventParam = eventParam; - m_callback = nullptr; } @@ -72,6 +70,6 @@ bool Core::Event::EventHandler::hasNestedEvent() const void Core::Event::EventHandler::removeNestedEvent() { - m_pNestedEvent.reset(); } + diff --git a/src/servers/sapphire_zone/Event/EventHandler.h b/src/servers/sapphire_zone/Event/EventHandler.h index aa90b3ac..e02434c6 100644 --- a/src/servers/sapphire_zone/Event/EventHandler.h +++ b/src/servers/sapphire_zone/Event/EventHandler.h @@ -94,9 +94,9 @@ namespace Core { void removeNestedEvent(); - protected: Entity::Player* m_pOwner; + uint64_t m_actorId; uint32_t m_eventId; uint16_t m_entryId; diff --git a/src/servers/sapphire_zone/Event/EventHelper.cpp b/src/servers/sapphire_zone/Event/EventHelper.cpp index 01ad969d..526faaeb 100644 --- a/src/servers/sapphire_zone/Event/EventHelper.cpp +++ b/src/servers/sapphire_zone/Event/EventHelper.cpp @@ -51,6 +51,7 @@ std::string Core::Event::getEventName( uint32_t eventId ) return "Aetheryte"; return "Aethernet"; } + case Event::EventHandler::EventHandlerType::Warp: { return "ChocoboTaxi";