1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-04-27 22:57:45 +00:00

Merge pull request #237 from GokuWeedLord/master

add festival support
This commit is contained in:
Mordred 2018-02-02 17:19:56 +01:00 committed by GitHub
commit 1de659e040
6 changed files with 34 additions and 1 deletions

View file

@ -635,6 +635,8 @@ namespace Common {
GearSetEquipMsg = 0x321,
DisableCurrentFestival = 0x386,
ToggleOrchestrionUnlock = 0x396,
Dismount = 0x3a0
};

View file

@ -600,7 +600,7 @@ struct FFXIVIpcInitZone : FFXIVIpcBasePacket<InitZone>
uint8_t weatherId;
uint8_t bitmask;
uint16_t unknown5;
uint16_t unknown6;
uint16_t festivalId;
uint16_t unknown7;
uint32_t unknown8;
Common::FFXIVARR_POSITION3 pos;

View file

@ -1623,6 +1623,7 @@ void Player::sendZonePackets()
initZonePacket.data().weatherId = static_cast< uint8_t >( getCurrentZone()->getCurrentWeather() );
initZonePacket.data().bitmask = 0x1;
initZonePacket.data().unknown5 = 0x2A;
initZonePacket.data().festivalId = getCurrentZone()->getCurrentFestival();
initZonePacket.data().pos.x = getPos().x;
initZonePacket.data().pos.y = getPos().y;
initZonePacket.data().pos.z = getPos().z;

View file

@ -762,4 +762,19 @@ void Core::DebugCommandHandler::instance( char* data, Entity::Player &player, bo
{
player.exitInstance();
}
else if( subCommand == "festival" )
{
uint32_t festivalId;
sscanf( params.c_str(), "%d", &festivalId );
player.getCurrentZone()->setCurrentFestival( static_cast< uint16_t >( festivalId ) );
}
else if( subCommand == "disablefestival" )
{
Network::Packets::ZoneChannelPacket< Network::Packets::Server::FFXIVIpcActorControl143 > actorControl( player.getId() );
actorControl.data().category = Core::Common::ActorControlType::DisableCurrentFestival;
player.queuePacket( actorControl );
player.getCurrentZone()->setCurrentFestival( 0 );
}
}

View file

@ -48,6 +48,7 @@ Zone::Zone()
, m_currentWeather( static_cast< uint8_t >( Common::Weather::FairSkies ) )
, m_weatherOverride( 0 )
, m_lastMobUpdate( 0 )
, m_currentFestivalId( 0 )
{
}
@ -118,6 +119,16 @@ uint8_t Zone::getCurrentWeather() const
return m_currentWeather;
}
uint16_t Zone::getCurrentFestival() const
{
return m_currentFestivalId;
}
void Zone::setCurrentFestival( uint16_t festivalId )
{
m_currentFestivalId = festivalId;
}
CellCache* Zone::getCellCacheList( uint32_t cellx, uint32_t celly )
{
assert( cellx < _sizeX );

View file

@ -51,6 +51,7 @@ protected:
uint64_t m_lastMobUpdate;
uint16_t m_currentFestivalId;
boost::shared_ptr< Data::TerritoryType > m_territoryTypeInfo;
std::map< uint8_t, int32_t> m_weatherRateMap;
@ -70,6 +71,9 @@ public:
uint8_t getCurrentWeather() const;
uint16_t getCurrentFestival() const;
void setCurrentFestival( uint16_t festivalId );
CellCache* getCellCacheList( uint32_t cellx, uint32_t celly );
CellCache* getCellCacheAndCreate( uint32_t cellx, uint32_t celly );