1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-05-01 16:37:45 +00:00

start of marketboard implementation

This commit is contained in:
NotAdam 2018-12-31 23:20:36 +11:00
parent 72261e465b
commit 6ce9d9557e
8 changed files with 86 additions and 2 deletions

View file

@ -267,7 +267,7 @@ namespace Sapphire::Network::Packets
MarketBoardRequestItemInformation = 0x00FE, // updated 4.4 MarketBoardRequestItemInformation = 0x00FE, // updated 4.4
MarketBoardRequestItemListings = 0x00FF, // updated 4.4 MarketBoardRequestItemListings = 0x00FF, // updated 4.4
SearchMarketboard = 0x0103, // updated 4.3 SearchMarketboard = 0x0103, // updated 4.4
ReqExamineFcInfo = 0x010F, // updated 4.1 ReqExamineFcInfo = 0x010F, // updated 4.1
FcInfoReqHandler = 0x011A, // updated 4.2 FcInfoReqHandler = 0x011A, // updated 4.2

View file

@ -270,6 +270,19 @@ struct FFXIVIpcHousingUpdateObjectPosition :
/* 001C */ uint32_t padding; /* 001C */ uint32_t padding;
}; };
struct FFXIVIpcSearchMarketboard :
FFXIVIpcBasePacket< SearchMarketboard >
{
/* 0000 */ uint32_t unk;
/* 0004 */ uint8_t unk2[2];
/* 0006 */ uint8_t itemSearchCategory;
/* 0007 */ uint8_t shouldCheckClassJobId; // wat? seems only 1 there at least...
/* 0008 */ uint8_t maxEquipLevel;
/* 0009 */ uint8_t classJobId;
/* 000A */ char searchStr[40];
/* 0032 */ uint16_t unk4[43];
};
} }
} }
} }

View file

@ -0,0 +1,19 @@
#include "MarketMgr.h"
Sapphire::World::Manager::MarketMgr::MarketMgr( Sapphire::FrameworkPtr pFw ) :
BaseManager( pFw )
{
}
bool Sapphire::World::Manager::MarketMgr::init()
{
return true;
}
void Sapphire::World::Manager::MarketMgr::searchMarketboard( Entity::Player& player,
uint8_t itemSearchCategory, uint8_t maxEquipLevel,
uint8_t classJob )
{
}

View file

@ -0,0 +1,22 @@
#ifndef SAPPHIRE_MARKETMGR_H
#define SAPPHIRE_MARKETMGR_H
#include "ForwardsZone.h"
#include "BaseManager.h"
namespace Sapphire::World::Manager
{
class MarketMgr : public Manager::BaseManager
{
public:
explicit MarketMgr( FrameworkPtr pFw );
bool init();
void searchMarketboard( Entity::Player& player, uint8_t itemSearchCategory, uint8_t maxEquipLevel, uint8_t classJob );
};
}
#endif //SAPPHIRE_MARKETMGR_H

View file

@ -1,3 +1,6 @@
#ifndef SAPPHIRE_PLAYERMGR_H
#define SAPPHIRE_PLAYERMGR_H
#include "ForwardsZone.h" #include "ForwardsZone.h"
#include "BaseManager.h" #include "BaseManager.h"
@ -10,4 +13,6 @@ class PlayerMgr : public Manager::BaseManager
void movePlayerToLandDestination( Sapphire::Entity::Player& player, uint32_t landId, uint16_t param = 0 ); void movePlayerToLandDestination( Sapphire::Entity::Player& player, uint32_t landId, uint16_t param = 0 );
}; };
} }
#endif // SAPPHIRE_PLAYERMGR_H

View file

@ -176,6 +176,8 @@ namespace Sapphire::Network
DECLARE_HANDLER( reqMoveHousingItem ); DECLARE_HANDLER( reqMoveHousingItem );
DECLARE_HANDLER( searchMarketboard );
}; };
} }

View file

@ -36,6 +36,7 @@
#include "Manager/DebugCommandMgr.h" #include "Manager/DebugCommandMgr.h"
#include "Manager/EventMgr.h" #include "Manager/EventMgr.h"
#include "Manager/MarketMgr.h"
#include "Action/Action.h" #include "Action/Action.h"
#include "Action/ActionTeleport.h" #include "Action/ActionTeleport.h"
@ -752,4 +753,16 @@ void Sapphire::Network::GameConnection::reqMoveHousingItem( FrameworkPtr pFw,
housingMgr->reqMoveHousingItem( player, data.ident, data.slot, data.pos, data.rotation ); housingMgr->reqMoveHousingItem( player, data.ident, data.slot, data.pos, data.rotation );
}
void Sapphire::Network::GameConnection::searchMarketboard( FrameworkPtr pFw,
const Sapphire::Network::Packets::FFXIVARR_PACKET_RAW& inPacket,
Entity::Player& player )
{
auto marketMgr = pFw->get< MarketMgr >();
const auto packet = ZoneChannelPacket< Client::FFXIVIpcSearchMarketboard >( inPacket );
const auto& data = packet.data();
marketMgr->searchMarketboard( player, data.itemSearchCategory, data.maxEquipLevel, data.classJobId );
} }

View file

@ -39,6 +39,7 @@
#include "Manager/InventoryMgr.h" #include "Manager/InventoryMgr.h"
#include "Manager/EventMgr.h" #include "Manager/EventMgr.h"
#include "Manager/ItemMgr.h" #include "Manager/ItemMgr.h"
#include "Manager/MarketMgr.h"
using namespace Sapphire::World::Manager; using namespace Sapphire::World::Manager;
@ -160,6 +161,15 @@ void Sapphire::World::ServerMgr::run( int32_t argc, char* argv[] )
return; return;
} }
auto pMarketMgr = std::make_shared< Manager::MarketMgr >( framework() );
framework()->set< Manager::MarketMgr >( pMarketMgr );
if( !pMarketMgr->init() )
{
Logger::fatal( "Failed to setup market manager!" );
return;
}
loadBNpcTemplates(); loadBNpcTemplates();
Network::HivePtr hive( new Network::Hive() ); Network::HivePtr hive( new Network::Hive() );