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

More fw cleanup

This commit is contained in:
Mordred 2018-12-25 01:57:50 +01:00
parent 101f284003
commit 199d7a6ec6
14 changed files with 79 additions and 98 deletions

View file

@ -19,16 +19,14 @@ using namespace Sapphire::Network::Packets;
using namespace Sapphire::Network::Packets::Server;
using namespace Sapphire::Network::ActorControl;
extern Sapphire::Framework g_fw;
Sapphire::Action::ActionTeleport::ActionTeleport()
{
m_handleActionType = HandleActionType::Event;
}
Sapphire::Action::ActionTeleport::ActionTeleport( Entity::CharaPtr pActor, uint16_t targetZone, uint16_t cost )
Sapphire::Action::ActionTeleport::ActionTeleport( Entity::CharaPtr pActor, uint16_t targetZone, uint16_t cost, FrameworkPtr pFw )
{
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
auto pExdData = pFw->get< Data::ExdDataGenerated >();
m_startTime = 0;
m_id = 5;
m_handleActionType = HandleActionType::Teleport;

View file

@ -18,7 +18,7 @@ namespace Sapphire::Action
~ActionTeleport();
ActionTeleport( Entity::CharaPtr pActor, uint16_t action, uint16_t cost );
ActionTeleport( Entity::CharaPtr pActor, uint16_t action, uint16_t cost, FrameworkPtr pFw );
void onStart() override;

View file

@ -27,10 +27,6 @@
#include "Math/CalcBattle.h"
#include "Framework.h"
extern Sapphire::Framework g_fw;
using namespace Sapphire::Common;
using namespace Sapphire::Network::Packets;
//using namespace Sapphire::Network::Packets::Server;
@ -297,16 +293,10 @@ Send a packet to all players in range, potentially to self if set and is player
*/
void Sapphire::Entity::Actor::sendToInRangeSet( Network::Packets::FFXIVPacketBasePtr pPacket, bool bToSelf )
{
auto pServerZone = g_fw.get< World::ServerMgr >();
if( bToSelf && isPlayer() )
{
auto pPlayer = getAsPlayer();
auto pSession = pServerZone->getSession( pPlayer->getId() );
// it might be that the player DC'd in which case the session would be invalid
if( pSession )
pSession->getZoneConnection()->queueOutPacket( pPacket );
pPlayer->queuePacket( pPacket );
}
if( m_inRangePlayers.empty() )

View file

@ -43,8 +43,6 @@
#include "ServerMgr.h"
#include "Framework.h"
extern Sapphire::Framework g_fw;
using namespace Sapphire::Common;
using namespace Sapphire::Network::Packets;
using namespace Sapphire::Network::Packets::Server;
@ -56,7 +54,7 @@ using InvSlotPair = std::pair< uint16_t, int8_t >;
using InvSlotPairVec = std::vector< InvSlotPair >;
// player constructor
Sapphire::Entity::Player::Player() :
Sapphire::Entity::Player::Player( FrameworkPtr pFw ) :
Chara( ObjKind::Player ),
m_lastWrite( 0 ),
m_lastPing( 0 ),
@ -77,7 +75,8 @@ Sapphire::Entity::Player::Player() :
m_mount( 0 ),
m_emoteMode( 0 ),
m_directorInitialized( false ),
m_onEnterEventDone( false )
m_onEnterEventDone( false ),
m_pFw( pFw )
{
m_id = 0;
m_currentStance = Stance::Passive;
@ -109,7 +108,7 @@ Sapphire::Entity::Player::~Player()
void Sapphire::Entity::Player::injectPacket( const std::string& path )
{
auto pServerZone = g_fw.get< World::ServerMgr >();
auto pServerZone = m_pFw->get< World::ServerMgr >();
auto session = pServerZone->getSession( getId() );
if( session )
session->getZoneConnection()->injectPacket( path, *this );
@ -195,7 +194,7 @@ bool Sapphire::Entity::Player::isMarkedForRemoval() const
Sapphire::Common::OnlineStatus Sapphire::Entity::Player::getOnlineStatus() const
{
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
auto pExdData = m_pFw->get< Data::ExdDataGenerated >();
if( !pExdData )
return OnlineStatus::Online;
@ -250,7 +249,7 @@ void Sapphire::Entity::Player::calculateStats()
uint8_t level = getLevel();
uint8_t job = static_cast< uint8_t >( getClass() );
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
auto pExdData = m_pFw->get< Data::ExdDataGenerated >();
auto classInfo = pExdData->get< Sapphire::Data::ClassJob >( job );
auto tribeInfo = pExdData->get< Sapphire::Data::Tribe >( tribe );
@ -339,8 +338,8 @@ void Sapphire::Entity::Player::sendStats()
void Sapphire::Entity::Player::teleport( uint16_t aetheryteId, uint8_t type )
{
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
auto pTeriMgr = g_fw.get< TerritoryMgr >();
auto pExdData = m_pFw->get< Data::ExdDataGenerated >();
auto pTeriMgr = m_pFw->get< TerritoryMgr >();
auto data = pExdData->get< Sapphire::Data::Aetheryte >( aetheryteId );
@ -407,7 +406,7 @@ void Sapphire::Entity::Player::returnToHomepoint()
void Sapphire::Entity::Player::setZone( uint32_t zoneId )
{
auto pTeriMgr = g_fw.get< TerritoryMgr >();
auto pTeriMgr = m_pFw->get< TerritoryMgr >();
m_onEnterEventDone = false;
if( !pTeriMgr->movePlayer( zoneId, getAsPlayer() ) )
{
@ -425,7 +424,7 @@ void Sapphire::Entity::Player::setZone( uint32_t zoneId )
bool Sapphire::Entity::Player::setInstance( uint32_t instanceContentId )
{
auto pTeriMgr = g_fw.get< TerritoryMgr >();
auto pTeriMgr = m_pFw->get< TerritoryMgr >();
m_onEnterEventDone = false;
auto instance = pTeriMgr->getInstanceZonePtr( instanceContentId );
if( !instance )
@ -440,7 +439,7 @@ bool Sapphire::Entity::Player::setInstance( ZonePtr instance )
if( !instance )
return false;
auto pTeriMgr = g_fw.get< TerritoryMgr >();
auto pTeriMgr = m_pFw->get< TerritoryMgr >();
auto currentZone = getCurrentZone();
@ -463,7 +462,7 @@ bool Sapphire::Entity::Player::setInstance( ZonePtr instance )
bool Sapphire::Entity::Player::exitInstance()
{
auto pTeriMgr = g_fw.get< TerritoryMgr >();
auto pTeriMgr = m_pFw->get< TerritoryMgr >();
// check if housing zone
if( pTeriMgr->isHousingTerritory( m_prevTerritoryTypeId ) )
@ -548,7 +547,7 @@ void Sapphire::Entity::Player::discover( int16_t map_id, int16_t sub_id )
// section to starts at 320 - 4 bytes long
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
auto pExdData = m_pFw->get< Data::ExdDataGenerated >();
int32_t offset = 4;
@ -640,7 +639,7 @@ bool Sapphire::Entity::Player::isActionLearned( uint8_t actionId ) const
void Sapphire::Entity::Player::gainExp( uint32_t amount )
{
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
auto pExdData = m_pFw->get< Data::ExdDataGenerated >();
uint32_t currentExp = getExp();
@ -721,14 +720,14 @@ void Sapphire::Entity::Player::sendStatusUpdate( bool toSelf )
uint8_t Sapphire::Entity::Player::getLevel() const
{
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
auto pExdData = m_pFw->get< Data::ExdDataGenerated >();
uint8_t classJobIndex = pExdData->get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( getClass() ) )->expArrayIndex;
return static_cast< uint8_t >( m_classArray[ classJobIndex ] );
}
uint8_t Sapphire::Entity::Player::getLevelForClass( Common::ClassJob pClass ) const
{
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
auto pExdData = m_pFw->get< Data::ExdDataGenerated >();
uint8_t classJobIndex = pExdData->get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( pClass ) )->expArrayIndex;
return static_cast< uint8_t >( m_classArray[ classJobIndex ] );
}
@ -741,14 +740,14 @@ bool Sapphire::Entity::Player::isClassJobUnlocked( Common::ClassJob classJob ) c
uint32_t Sapphire::Entity::Player::getExp() const
{
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
auto pExdData = m_pFw->get< Data::ExdDataGenerated >();
uint8_t classJobIndex = pExdData->get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( getClass() ) )->expArrayIndex;
return m_expArray[ classJobIndex ];
}
void Sapphire::Entity::Player::setExp( uint32_t amount )
{
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
auto pExdData = m_pFw->get< Data::ExdDataGenerated >();
uint8_t classJobIndex = pExdData->get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( getClass() ) )->expArrayIndex;
m_expArray[ classJobIndex ] = amount;
}
@ -790,14 +789,14 @@ void Sapphire::Entity::Player::setClassJob( Common::ClassJob classJob )
void Sapphire::Entity::Player::setLevel( uint8_t level )
{
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
auto pExdData = m_pFw->get< Data::ExdDataGenerated >();
uint8_t classJobIndex = pExdData->get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( getClass() ) )->expArrayIndex;
m_classArray[ classJobIndex ] = level;
}
void Sapphire::Entity::Player::setLevelForClass( uint8_t level, Common::ClassJob classjob )
{
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
auto pExdData = m_pFw->get< Data::ExdDataGenerated >();
uint8_t classJobIndex = pExdData->get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( classjob ) )->expArrayIndex;
if( m_classArray[ classJobIndex ] == 0 )
@ -942,7 +941,7 @@ const uint8_t* Sapphire::Entity::Player::getStateFlags() const
bool Sapphire::Entity::Player::actionHasCastTime( uint32_t actionId ) //TODO: Add logic for special cases
{
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
auto pExdData = m_pFw->get< Data::ExdDataGenerated >();
auto actionInfoPtr = pExdData->get< Sapphire::Data::Action >( actionId );
if( actionInfoPtr->preservesCombo )
return false;
@ -1103,7 +1102,7 @@ void Sapphire::Entity::Player::update( int64_t currTime )
void Sapphire::Entity::Player::onMobKill( uint16_t nameId )
{
auto pScriptMgr = g_fw.get< Scripting::ScriptMgr >();
auto pScriptMgr = m_pFw->get< Scripting::ScriptMgr >();
pScriptMgr->onMobKill( *getAsPlayer(), nameId );
}
@ -1204,7 +1203,7 @@ const uint8_t* Sapphire::Entity::Player::getGcRankArray() const
void Sapphire::Entity::Player::queuePacket( Network::Packets::FFXIVPacketBasePtr pPacket )
{
auto pServerZone = g_fw.get< World::ServerMgr >();
auto pServerZone = m_pFw->get< World::ServerMgr >();
auto pSession = pServerZone->getSession( m_id );
if( !pSession )
@ -1219,7 +1218,7 @@ void Sapphire::Entity::Player::queuePacket( Network::Packets::FFXIVPacketBasePtr
void Sapphire::Entity::Player::queueChatPacket( Network::Packets::FFXIVPacketBasePtr pPacket )
{
auto pServerZone = g_fw.get< World::ServerMgr >();
auto pServerZone = m_pFw->get< World::ServerMgr >();
auto pSession = pServerZone->getSession( m_id );
if( !pSession )
@ -1555,7 +1554,7 @@ void Sapphire::Entity::Player::sendZonePackets()
if( isLogin() )
{
//Update player map in servermgr - in case player name has been changed
auto pServerMgr = g_fw.get< World::ServerMgr >();
auto pServerMgr = m_pFw->get< World::ServerMgr >();
pServerMgr->updatePlayerName( getId(), getName() );
}
@ -1603,7 +1602,7 @@ void Sapphire::Entity::Player::sendZonePackets()
sendItemLevel();
}
auto pHousingMgr = g_fw.get< HousingMgr >();
auto pHousingMgr = m_pFw->get< HousingMgr >();
if( Sapphire::LandPtr pLand = pHousingMgr->getLandByOwnerId( getId() ) )
{
uint32_t state = 0;
@ -1731,9 +1730,9 @@ void Sapphire::Entity::Player::emoteInterrupt()
sendToInRangeSet( makeActorControl142( getId(), ActorControlType::EmoteInterrupt ) );
}
void Sapphire::Entity::Player::teleportQuery( uint16_t aetheryteId )
void Sapphire::Entity::Player::teleportQuery( uint16_t aetheryteId, FrameworkPtr pFw )
{
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
auto pExdData = pFw->get< Data::ExdDataGenerated >();
// TODO: only register this action if enough gil is in possession
auto targetAetheryte = pExdData->get< Sapphire::Data::Aetheryte >( aetheryteId );
@ -1757,7 +1756,7 @@ void Sapphire::Entity::Player::teleportQuery( uint16_t aetheryteId )
if( !insufficientGil )
{
Action::ActionPtr pActionTeleport;
pActionTeleport = Action::make_ActionTeleport( getAsPlayer(), aetheryteId, cost );
pActionTeleport = Action::make_ActionTeleport( getAsPlayer(), aetheryteId, cost, pFw );
setCurrentAction( pActionTeleport );
}
}

View file

@ -39,7 +39,7 @@ namespace Sapphire::Entity
{
public:
/*! Contructor */
Player();
Player( FrameworkPtr pFw );
/*! Destructor */
~Player();
@ -523,7 +523,7 @@ namespace Sapphire::Entity
void teleport( uint16_t aetheryteId, uint8_t type = 1 );
/*! query teleport of a specified type */
void teleportQuery( uint16_t aetheryteId );
void teleportQuery( uint16_t aetheryteId, FrameworkPtr pFw );
/*! prepares zoning / fades out the screen */
void prepareZoning( uint16_t targetZone, bool fadeOut, uint8_t fadoutTime = 0, uint16_t animation = 0 );
@ -1047,6 +1047,9 @@ namespace Sapphire::Entity
Util::SpawnIndexAllocator< uint8_t > m_objSpawnIndexAllocator;
Util::SpawnIndexAllocator< uint8_t > m_actorSpawnIndexAllocator;
// todo: temporary store ptr to framework
FrameworkPtr m_pFw;
};
}

View file

@ -19,8 +19,6 @@
#include "ServerMgr.h"
#include "Framework.h"
extern Sapphire::Framework g_fw;
using namespace Sapphire::Common;
using namespace Sapphire::Network::Packets;
using namespace Sapphire::Network::Packets::Server;
@ -328,7 +326,7 @@ void Sapphire::Entity::Player::eventItemActionStart( uint32_t eventId,
void Sapphire::Entity::Player::onLogin()
{
auto pConfig = g_fw.get< ConfigMgr >();
auto pConfig = m_pFw->get< ConfigMgr >();
auto motd = pConfig->getValue< std::string >( "General", "MotD", "" );
std::istringstream ss( motd );

View file

@ -33,8 +33,6 @@
#include "Framework.h"
#include <Network/CommonActorControl.h>
extern Sapphire::Framework g_fw;
using namespace Sapphire::Common;
using namespace Sapphire::Network::Packets;
using namespace Sapphire::Network::Packets::Server;
@ -116,7 +114,7 @@ void Sapphire::Entity::Player::sendItemLevel()
void Sapphire::Entity::Player::equipWeapon( ItemPtr pItem, bool updateClass )
{
auto exdData = g_fw.get< Sapphire::Data::ExdDataGenerated >();
auto exdData = m_pFw->get< Sapphire::Data::ExdDataGenerated >();
if( !exdData )
return;
@ -137,7 +135,7 @@ void Sapphire::Entity::Player::equipWeapon( ItemPtr pItem, bool updateClass )
void Sapphire::Entity::Player::equipSoulCrystal( ItemPtr pItem, bool updateJob )
{
auto exdData = g_fw.get< Sapphire::Data::ExdDataGenerated >();
auto exdData = m_pFw->get< Sapphire::Data::ExdDataGenerated >();
if ( !exdData )
return;
@ -248,7 +246,7 @@ void Sapphire::Entity::Player::unequipItem( Common::GearSetSlot equipSlotId, Ite
void Sapphire::Entity::Player::unequipSoulCrystal( ItemPtr pItem )
{
auto exdData = g_fw.get< Sapphire::Data::ExdDataGenerated >();
auto exdData = m_pFw->get< Sapphire::Data::ExdDataGenerated >();
if ( !exdData )
return;
@ -358,7 +356,7 @@ void Sapphire::Entity::Player::removeCrystal( Common::CrystalType type, uint32_t
void Sapphire::Entity::Player::sendInventory()
{
auto pInvMgr = g_fw.get< World::Manager::InventoryMgr >();
auto pInvMgr = m_pFw->get< World::Manager::InventoryMgr >();
for( auto it = m_storageMap.begin(); it != m_storageMap.end(); ++it )
{
@ -426,7 +424,7 @@ uint32_t Sapphire::Entity::Player::getCrystal( CrystalType type )
void Sapphire::Entity::Player::writeInventory( InventoryType type )
{
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto storage = m_storageMap[ type ];
@ -455,7 +453,7 @@ void Sapphire::Entity::Player::writeInventory( InventoryType type )
void Sapphire::Entity::Player::writeItem( Sapphire::ItemPtr pItem ) const
{
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto stmt = pDb->getPreparedStatement( Db::CHARA_ITEMGLOBAL_UP );
// todo: add more fields
@ -470,7 +468,7 @@ void Sapphire::Entity::Player::writeItem( Sapphire::ItemPtr pItem ) const
void Sapphire::Entity::Player::deleteItemDb( Sapphire::ItemPtr item ) const
{
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto stmt = pDb->getPreparedStatement( Db::CHARA_ITEMGLOBAL_DELETE );
stmt->setInt64( 1, item->getUId() );
@ -488,8 +486,8 @@ bool Sapphire::Entity::Player::isObtainable( uint32_t catalogId, uint8_t quantit
Sapphire::ItemPtr Sapphire::Entity::Player::addItem( uint32_t catalogId, uint32_t quantity, bool isHq, bool silent )
{
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto pExdData = m_pFw->get< Data::ExdDataGenerated >();
auto itemInfo = pExdData->get< Sapphire::Data::Item >( catalogId );
// if item data doesn't exist or it's a blank field

View file

@ -9,8 +9,6 @@
#include "Session.h"
#include "Framework.h"
extern Sapphire::Framework g_fw;
using namespace Sapphire::Common;
using namespace Sapphire::Network::Packets;
using namespace Sapphire::Network::Packets::Server;
@ -1030,7 +1028,7 @@ void Sapphire::Entity::Player::removeQuestsCompleted( uint32_t questId )
bool Sapphire::Entity::Player::giveQuestRewards( uint32_t questId, uint32_t optionalChoice )
{
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
auto pExdData = m_pFw->get< Data::ExdDataGenerated >();
uint32_t playerLevel = getLevel();
auto questInfo = pExdData->get< Sapphire::Data::Quest >( questId );

View file

@ -21,8 +21,6 @@
#include "ServerMgr.h"
#include "Framework.h"
extern Sapphire::Framework g_fw;
using namespace Sapphire::Common;
using namespace Sapphire::Network::Packets;
using namespace Sapphire::Network::Packets::Server;
@ -31,8 +29,8 @@ using namespace Sapphire::World::Manager;
// load player from the db
bool Sapphire::Entity::Player::load( uint32_t charId, World::SessionPtr pSession )
{
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto pTeriMgr = g_fw.get< TerritoryMgr >();
auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto pTeriMgr = m_pFw->get< TerritoryMgr >();
const std::string char_id_str = std::to_string( charId );
@ -248,7 +246,7 @@ bool Sapphire::Entity::Player::load( uint32_t charId, World::SessionPtr pSession
bool Sapphire::Entity::Player::loadActiveQuests()
{
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto stmt = pDb->getPreparedStatement( Db::ZoneDbStatements::CHARA_SEL_QUEST );
stmt->setUInt( 1, m_id );
@ -284,7 +282,7 @@ bool Sapphire::Entity::Player::loadActiveQuests()
bool Sapphire::Entity::Player::loadClassData()
{
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
// ClassIdx, Exp, Lvl
auto stmt = pDb->getPreparedStatement( Db::ZoneDbStatements::CHARA_CLASS_SEL );
stmt->setUInt( 1, m_id );
@ -305,7 +303,7 @@ bool Sapphire::Entity::Player::loadClassData()
bool Sapphire::Entity::Player::loadSearchInfo()
{
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto stmt = pDb->getPreparedStatement( Db::ZoneDbStatements::CHARA_SEL_SEARCHINFO );
stmt->setUInt( 1, m_id );
auto res = pDb->query( stmt );
@ -327,7 +325,7 @@ bool Sapphire::Entity::Player::loadSearchInfo()
void Sapphire::Entity::Player::updateSql()
{
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
/*"Hp 1, Mp 2, Tp 3, Gp 4, Mode 5, Mount 6, InvincibleGM 7, Voice 8, "
"Customize 9, ModelMainWeapon 10, ModelSubWeapon 11, ModelSystemWeapon 12, "
"ModelEquip 13, EmoteModeType 14, Language 15, IsNewGame 16, IsNewAdventurer 17, "
@ -469,8 +467,8 @@ void Sapphire::Entity::Player::updateSql()
void Sapphire::Entity::Player::updateDbClass() const
{
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto pExdData = m_pFw->get< Data::ExdDataGenerated >();
uint8_t classJobIndex = pExdData->get< Sapphire::Data::ClassJob >( static_cast<uint8_t>( getClass() ) )->expArrayIndex;
//Exp = ?, Lvl = ? WHERE CharacterId = ? AND ClassIdx = ?
@ -484,7 +482,7 @@ void Sapphire::Entity::Player::updateDbClass() const
void Sapphire::Entity::Player::insertDbClass( const uint8_t classJobIndex ) const
{
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto stmtClass = pDb->getPreparedStatement( Db::CHARA_CLASS_INS );
stmtClass->setInt( 1, getId() );
stmtClass->setInt( 2, classJobIndex );
@ -495,7 +493,7 @@ void Sapphire::Entity::Player::insertDbClass( const uint8_t classJobIndex ) cons
void Sapphire::Entity::Player::updateDbSearchInfo() const
{
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto stmtS = pDb->getPreparedStatement( Db::CHARA_SEARCHINFO_UP_SELECTCLASS );
stmtS->setInt( 1, m_searchSelectClass );
stmtS->setInt( 2, m_id );
@ -514,7 +512,7 @@ void Sapphire::Entity::Player::updateDbSearchInfo() const
void Sapphire::Entity::Player::updateDbAllQuests() const
{
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
for( int32_t i = 0; i < 30; i++ )
{
if( !m_activeQuests[ i ] )
@ -539,7 +537,7 @@ void Sapphire::Entity::Player::updateDbAllQuests() const
void Sapphire::Entity::Player::deleteQuest( uint16_t questId ) const
{
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto stmt = pDb->getPreparedStatement( Db::CHARA_QUEST_DEL );
stmt->setInt( 1, m_id );
stmt->setInt( 2, questId );
@ -548,7 +546,7 @@ void Sapphire::Entity::Player::deleteQuest( uint16_t questId ) const
void Sapphire::Entity::Player::insertQuest( uint16_t questId, uint8_t index, uint8_t seq ) const
{
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto stmt = pDb->getPreparedStatement( Db::CHARA_QUEST_INS );
stmt->setInt( 1, m_id );
stmt->setInt( 2, index );
@ -567,10 +565,10 @@ void Sapphire::Entity::Player::insertQuest( uint16_t questId, uint8_t index, uin
Sapphire::ItemPtr Sapphire::Entity::Player::createItem( uint32_t catalogId, uint32_t quantity )
{
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto pExdData = m_pFw->get< Data::ExdDataGenerated >();
auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto itemInfo = pExdData->get< Sapphire::Data::Item >( catalogId );
auto itemMgr = g_fw.get< World::Manager::ItemMgr >();
auto itemMgr = m_pFw->get< World::Manager::ItemMgr >();
if( !itemInfo )
return nullptr;
@ -599,8 +597,8 @@ Sapphire::ItemPtr Sapphire::Entity::Player::createItem( uint32_t catalogId, uint
bool Sapphire::Entity::Player::loadInventory()
{
auto itemMgr = g_fw.get< World::Manager::ItemMgr >();
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto itemMgr = m_pFw->get< World::Manager::ItemMgr >();
auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
//////////////////////////////////////////////////////////////////////////////////////////////////////
// load active gearset
auto res = pDb->query( "SELECT storageId, container_0, container_1, container_2, container_3, "

View file

@ -9,9 +9,6 @@
#include <Logging/Logger.h>
#include <Database/DatabaseDef.h>
extern Sapphire::Framework g_fw;
Sapphire::World::Manager::ItemMgr::ItemMgr( Sapphire::FrameworkPtr pFw ) :
BaseManager( pFw )
{
@ -125,8 +122,8 @@ bool Sapphire::World::Manager::ItemMgr::isOneHandedWeapon( Common::ItemUICategor
Sapphire::ItemPtr Sapphire::World::Manager::ItemMgr::loadItem( uint64_t uId )
{
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto pExdData = framework()->get< Data::ExdDataGenerated >();
auto pDb = framework()->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
// load actual item
auto itemRes = pDb->query(
"SELECT catalogId, stack, flags FROM charaglobalitem WHERE itemId = " + std::to_string( uId ) + ";" );
@ -182,7 +179,7 @@ Sapphire::Common::ContainerType Sapphire::World::Manager::ItemMgr::getContainerT
uint32_t Sapphire::World::Manager::ItemMgr::getNextUId()
{
uint32_t charId = 0;
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto pDb = framework()->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
auto pQR = pDb->query( "SELECT MAX(ItemId) FROM charaglobalitem" );
if( !pQR->next() )

View file

@ -84,7 +84,6 @@ void Sapphire::Network::GameConnection::clientTriggerHandler( FrameworkPtr pFw,
"\nparam3: " + Util::intToHexString( static_cast< uint64_t >( param3 & 0xFFFFFFFFFFFFFFF ), 16 )
);
//g_log.Log(LoggingSeverity::debug, "[" + std::to_string(m_pSession->getId()) + "] " + pInPacket->toString());
switch( commandId )
@ -273,7 +272,7 @@ void Sapphire::Network::GameConnection::clientTriggerHandler( FrameworkPtr pFw,
case ClientTriggerType::Teleport: // Teleport
{
player.teleportQuery( param11 );
player.teleportQuery( param11, pFw );
break;
}
case ClientTriggerType::DyeItem: // Dye item

View file

@ -301,7 +301,7 @@ bool Sapphire::World::ServerMgr::createSession( uint32_t sessionId )
Logger::info( "[" + session_id_str + "] Creating new session" );
std::shared_ptr< Session > newSession( new Session( sessionId ) );
std::shared_ptr< Session > newSession( new Session( sessionId, framework() ) );
m_sessionMapById[ sessionId ] = newSession;
if( !newSession->loadPlayer() )

View file

@ -12,11 +12,12 @@
namespace fs = std::experimental::filesystem;
Sapphire::World::Session::Session( uint32_t sessionId ) :
Sapphire::World::Session::Session( uint32_t sessionId, FrameworkPtr pFw ) :
m_sessionId( sessionId ),
m_lastDataTime( Util::getTimeSeconds() ),
m_lastSqlTime( Util::getTimeSeconds() ),
m_isValid( false )
m_isValid( false ),
m_pFw( pFw )
{
}
@ -50,7 +51,7 @@ Sapphire::Network::GameConnectionPtr Sapphire::World::Session::getChatConnection
bool Sapphire::World::Session::loadPlayer()
{
m_pPlayer = Entity::make_Player();
m_pPlayer = Entity::make_Player( m_pFw );
if( !m_pPlayer->load( m_sessionId, shared_from_this() ) )
{

View file

@ -11,7 +11,7 @@ namespace Sapphire::World
class Session : public std::enable_shared_from_this< Session >
{
public:
Session( uint32_t sessionId );
Session( uint32_t sessionId, FrameworkPtr pFw );
~Session();
@ -67,6 +67,8 @@ namespace Sapphire::World
Network::GameConnectionPtr m_pZoneConnection;
Network::GameConnectionPtr m_pChatConnection;
FrameworkPtr m_pFw;
};
}