diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 59ebd4ab..071ebc50 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1327,15 +1327,15 @@ struct FFXIVIpcObjectSpawn : FFXIVIpcBasePacket uint32_t hierachyId; float scale; int16_t unknown20a; - uint16_t unknown20b; + uint16_t rotation; int16_t unknown24a; int16_t unknown24b; uint16_t unknown28a; int16_t unknown28c; uint32_t unknown2C; Common::FFXIVARR_POSITION3 position; - int16_t rotation; - int16_t unknown; + int16_t unknown3C; + int16_t unknown3E; }; struct FFXIVIpcObjectDespawn : FFXIVIpcBasePacket diff --git a/src/servers/sapphire_zone/Actor/EventObject.cpp b/src/servers/sapphire_zone/Actor/EventObject.cpp index abc5c92e..11fa13a3 100644 --- a/src/servers/sapphire_zone/Actor/EventObject.cpp +++ b/src/servers/sapphire_zone/Actor/EventObject.cpp @@ -9,6 +9,7 @@ #include #include #include +#include using namespace Core::Common; using namespace Core::Network::Packets; @@ -19,7 +20,7 @@ extern Core::Logger g_log; Core::Entity::EventObject::EventObject( uint32_t actorId, uint32_t objectId, uint32_t mapLinkId, uint8_t initialState, Common::FFXIVARR_POSITION3 pos, - const std::string& givenName ) : + float rotation, const std::string& givenName ) : Core::Entity::Actor( ObjKind::EventObj ), m_mapLinkId( mapLinkId ), m_state( initialState ), @@ -30,6 +31,7 @@ Core::Entity::EventObject::EventObject( uint32_t actorId, uint32_t objectId, uin m_pos.x = pos.x; m_pos.y = pos.y; m_pos.z = pos.z; + m_rot = rotation; } uint32_t Core::Entity::EventObject::getMapLinkId() const @@ -112,6 +114,7 @@ void Core::Entity::EventObject::spawn( Core::Entity::PlayerPtr pTarget ) eobjStatePacket.data().position = getPos(); eobjStatePacket.data().scale = getScale(); eobjStatePacket.data().actorId = getId(); + eobjStatePacket.data().rotation = Math::Util::floatToUInt16Rot( getRot() ); pTarget->queuePacket( eobjStatePacket ); } diff --git a/src/servers/sapphire_zone/Actor/EventObject.h b/src/servers/sapphire_zone/Actor/EventObject.h index 2fd57a09..f1762b52 100644 --- a/src/servers/sapphire_zone/Actor/EventObject.h +++ b/src/servers/sapphire_zone/Actor/EventObject.h @@ -11,7 +11,7 @@ namespace Entity { public: EventObject( uint32_t actorId, uint32_t objectId, uint32_t mapLinkId, uint8_t initialState, Common::FFXIVARR_POSITION3 pos, - const std::string& givenName = "none" ); + float rotation, const std::string& givenName = "none" ); using OnTalkEventHandler = std::function< void( Entity::Player&, Entity::EventObjectPtr, InstanceContentPtr, uint64_t ) >; diff --git a/src/servers/sapphire_zone/Script/ScriptLoader.h b/src/servers/sapphire_zone/Script/ScriptLoader.h index 1e99d86e..6cd1efa4 100644 --- a/src/servers/sapphire_zone/Script/ScriptLoader.h +++ b/src/servers/sapphire_zone/Script/ScriptLoader.h @@ -9,7 +9,8 @@ #include "ScriptInfo.h" #ifdef _WIN32 -#include +#define WIN32_LEAN_AND_MEAN +#include typedef HMODULE ModuleHandle; #else #include diff --git a/src/servers/sapphire_zone/Script/Scripts/ScriptObject.h b/src/servers/sapphire_zone/Script/Scripts/ScriptObject.h index fd0c8537..a2ad2f9d 100644 --- a/src/servers/sapphire_zone/Script/Scripts/ScriptObject.h +++ b/src/servers/sapphire_zone/Script/Scripts/ScriptObject.h @@ -2,6 +2,7 @@ #define SAPPHIRE_SCRIPTOBJECT_H #include +#include