mirror of
https://bitbucket.org/theswgsource/src-1.2.git
synced 2026-07-30 00:15:47 -04:00
101 lines
3.2 KiB
C++
Executable File
101 lines
3.2 KiB
C++
Executable File
// ======================================================================
|
|
//
|
|
// MoveToPlayerCustomPersistStep.cpp
|
|
// copyright (c) 2001 Sony Online Entertainment
|
|
//
|
|
// ======================================================================
|
|
|
|
#include "serverDatabase/FirstServerDatabase.h"
|
|
#include "serverDatabase/MoveToPlayerCustomPersistStep.h"
|
|
|
|
#include "serverDatabase/CharacterQueries.h"
|
|
#include "serverDatabase/DatabaseProcess.h"
|
|
#include "serverDatabase/DataLookup.h"
|
|
#include "serverDatabase/Persister.h"
|
|
#include "sharedDatabaseInterface/DbSession.h"
|
|
#include "sharedLog/Log.h"
|
|
|
|
// ======================================================================
|
|
|
|
MoveToPlayerCustomPersistStep::MoveToPlayerCustomPersistStep(const NetworkId &objectId, const NetworkId &targetPlayer, int maxDepth, bool useBank, bool useDatapad) :
|
|
m_objectId(objectId),
|
|
m_targetPlayer(targetPlayer),
|
|
m_maxDepth(maxDepth),
|
|
m_useBank(useBank),
|
|
m_useDatapad(useDatapad)
|
|
{
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
MoveToPlayerCustomPersistStep::~MoveToPlayerCustomPersistStep()
|
|
{
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
bool MoveToPlayerCustomPersistStep::beforePersist(DB::Session *session)
|
|
{
|
|
UNREF(session);
|
|
return true;
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
bool MoveToPlayerCustomPersistStep::afterPersist(DB::Session *session)
|
|
{
|
|
MoveToPlayerQuery qry(m_objectId, m_targetPlayer, m_maxDepth, m_useBank, m_useDatapad);
|
|
if (! (session->exec(&qry)))
|
|
return false;
|
|
qry.done();
|
|
return true;
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
void MoveToPlayerCustomPersistStep::onComplete()
|
|
{
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
MoveToPlayerCustomPersistStep::MoveToPlayerQuery::MoveToPlayerQuery(const NetworkId &objectId, const NetworkId &targetPlayer, int maxDepth, bool useBank, bool useDatapad) :
|
|
object_id(objectId),
|
|
target_player(targetPlayer),
|
|
max_depth(maxDepth),
|
|
m_useBank(useBank),
|
|
m_useDatapad(useDatapad)
|
|
{
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
void MoveToPlayerCustomPersistStep::MoveToPlayerQuery::getSQL(std::string &sql)
|
|
{
|
|
if (m_useBank)
|
|
sql="begin "+DatabaseProcess::getInstance().getSchemaQualifier()+"admin.move_to_player_bank (:object_id, :target_player); end;";
|
|
else if (m_useDatapad)
|
|
sql="begin "+DatabaseProcess::getInstance().getSchemaQualifier()+"admin.move_to_player_datapad (:object_id, :target_player, :max_depth); end;";
|
|
else
|
|
sql="begin "+DatabaseProcess::getInstance().getSchemaQualifier()+"admin.move_to_player (:object_id, :target_player); end;";
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
bool MoveToPlayerCustomPersistStep::MoveToPlayerQuery::bindParameters()
|
|
{
|
|
if (!bindParameter(object_id)) return false;
|
|
if (!bindParameter(target_player)) return false;
|
|
if (m_useDatapad && !bindParameter(max_depth)) return false;
|
|
return true;
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
bool MoveToPlayerCustomPersistStep::MoveToPlayerQuery::bindColumns()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
// ======================================================================
|