mirror of
https://github.com/SWG-Source/src.git
synced 2026-07-28 22:15:49 -04:00
Merge branch 'testing'
This commit is contained in:
@@ -79,7 +79,6 @@ public:
|
||||
virtual void startLoadAfterSaveComplete() =0;
|
||||
|
||||
protected:
|
||||
typedef std::vector<AbstractTableBuffer *> BufferListType;
|
||||
typedef std::vector<ObjectLocator *> LocatorListType;
|
||||
typedef std::vector<CustomPersistStep*> CustomStepListType;
|
||||
|
||||
@@ -88,7 +87,6 @@ public:
|
||||
* The base class deals with the buffers using only the interface of
|
||||
* AbstractTableBuffer.
|
||||
*/
|
||||
BufferListType m_bufferList;
|
||||
LocatorListType m_locatorList; ///< List of ObjectLocators that find objects in the database
|
||||
CustomStepListType m_customStepList; ///< List of extra things to do while saving this snapshot (e.g. associating characters with accounts)
|
||||
|
||||
|
||||
@@ -44,14 +44,7 @@
|
||||
// ======================================================================
|
||||
|
||||
/**
|
||||
* Construct a snapshot.
|
||||
*
|
||||
* This and the header file should be the only places that the entire
|
||||
* list of buffers is hard-coded. Every other place where you want to refer
|
||||
* to all the buffers should use m_bufferList. This will reduce the number
|
||||
* of places the code needs to be changed if new buffers are added.
|
||||
* (Referring to a _specific_ buffer when you know you need that buffer
|
||||
* is kosher.)
|
||||
* Construct a commodities snapshot.
|
||||
*/
|
||||
CommoditiesSnapshot::CommoditiesSnapshot(DB::ModeQuery::Mode mode) :
|
||||
Snapshot(mode, false),
|
||||
|
||||
@@ -53,8 +53,7 @@
|
||||
* Construct a snapshot.
|
||||
*
|
||||
* This and the header file should be the only places that the entire
|
||||
* list of buffers is hard-coded. Every other place where you want to refer
|
||||
* to all the buffers should use m_bufferList. This will reduce the number
|
||||
* list of buffers is hard-coded. This will reduce the number
|
||||
* of places the code needs to be changed if new buffers are added.
|
||||
* (Referring to a _specific_ buffer when you know you need that buffer
|
||||
* is kosher.)
|
||||
@@ -72,50 +71,11 @@ SwgSnapshot::SwgSnapshot(DB::ModeQuery::Mode mode, bool useGoldDatabase)
|
||||
m_resourceContainerObjectBuffer(mode), m_resourceTypeBuffer(), m_scriptBuffer(), m_shipObjectBuffer(mode),
|
||||
m_staticObjectBuffer(mode), m_tangibleObjectBuffer(mode), m_universeObjectBuffer(mode),
|
||||
m_vehicleObjectBuffer(mode), m_waypointBuffer(mode), m_weaponObjectBuffer(mode),
|
||||
m_immediateDeleteStep(nullptr), m_offlineMoneyCustomPersistStep(nullptr) {
|
||||
m_bufferList.push_back(&m_battlefieldMarkerObjectBuffer);
|
||||
m_bufferList.push_back(&m_battlefieldParticipantBuffer);
|
||||
m_bufferList.push_back(&m_buildingObjectBuffer);
|
||||
m_bufferList.push_back(&m_bountyHunterTargetBuffer);
|
||||
m_bufferList.push_back(&m_cellObjectBuffer);
|
||||
m_bufferList.push_back(&m_cityObjectBuffer);
|
||||
m_bufferList.push_back(&m_creatureObjectBuffer);
|
||||
m_bufferList.push_back(&m_experienceBuffer);
|
||||
m_bufferList.push_back(&m_factoryObjectBuffer);
|
||||
m_bufferList.push_back(&m_guildObjectBuffer);
|
||||
m_bufferList.push_back(&m_harvesterInstallationObjectBuffer);
|
||||
m_bufferList.push_back(&m_installationObjectBuffer);
|
||||
m_bufferList.push_back(&m_intangibleObjectBuffer);
|
||||
m_bufferList.push_back(&m_locationBuffer);
|
||||
m_bufferList.push_back(&m_manufactureInstallationObjectBuffer);
|
||||
m_bufferList.push_back(&m_manufactureSchematicAttributeBuffer);
|
||||
m_bufferList.push_back(&m_manufactureSchematicObjectBuffer);
|
||||
m_bufferList.push_back(&m_messageBuffer);
|
||||
m_bufferList.push_back(&m_missionObjectBuffer);
|
||||
m_bufferList.push_back(&m_objvarBuffer);
|
||||
m_bufferList.push_back(&m_planetObjectBuffer);
|
||||
m_bufferList.push_back(&m_playerObjectBuffer);
|
||||
m_bufferList.push_back(&m_playerQuestObjectBuffer);
|
||||
m_bufferList.push_back(&m_propertyListBuffer);
|
||||
m_bufferList.push_back(&m_resourceContainerObjectBuffer);
|
||||
m_bufferList.push_back(&m_resourceTypeBuffer);
|
||||
m_bufferList.push_back(&m_scriptBuffer);
|
||||
m_bufferList.push_back(&m_shipObjectBuffer);
|
||||
m_bufferList.push_back(&m_staticObjectBuffer);
|
||||
m_bufferList.push_back(&m_tangibleObjectBuffer);
|
||||
m_bufferList.push_back(&m_universeObjectBuffer);
|
||||
m_bufferList.push_back(&m_vehicleObjectBuffer);
|
||||
m_bufferList.push_back(&m_waypointBuffer);
|
||||
m_bufferList.push_back(&m_weaponObjectBuffer);
|
||||
|
||||
// note: m_objectTableBuffer is left off bufferList intentionally
|
||||
}
|
||||
m_immediateDeleteStep(nullptr), m_offlineMoneyCustomPersistStep(nullptr) {}
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
SwgSnapshot::~SwgSnapshot() {
|
||||
m_bufferList.clear();
|
||||
}
|
||||
SwgSnapshot::~SwgSnapshot() {}
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
@@ -212,9 +172,40 @@ void
|
||||
SwgSnapshot::handleDeleteMessage(const NetworkId &objectId, int reasonCode, bool immediate, bool demandLoadedContainer, bool cascadeReason) {
|
||||
m_objectTableBuffer.handleDeleteMessage(objectId, reasonCode, demandLoadedContainer, cascadeReason);
|
||||
|
||||
for (BufferListType::iterator buffer = m_bufferList.begin(); buffer != m_bufferList.end(); ++buffer) {
|
||||
(*buffer)->removeObject(objectId); // if the object is deleted, no reason to save other data for it
|
||||
}
|
||||
m_battlefieldMarkerObjectBuffer->removeObject(objectId);
|
||||
m_battlefieldParticipantBuffer->removeObject(objectId);
|
||||
m_buildingObjectBuffer->removeObject(objectId);
|
||||
m_bountyHunterTargetBuffer->removeObject(objectId);
|
||||
m_cellObjectBuffer->removeObject(objectId);
|
||||
m_cityObjectBuffer->removeObject(objectId);
|
||||
m_creatureObjectBuffer->removeObject(objectId);
|
||||
m_experienceBuffer->removeObject(objectId);
|
||||
m_factoryObjectBuffer->removeObject(objectId);
|
||||
m_guildObjectBuffer->removeObject(objectId);
|
||||
m_harvesterInstallationObjectBuffer->removeObject(objectId);
|
||||
m_installationObjectBuffer->removeObject(objectId);
|
||||
m_intangibleObjectBuffer->removeObject(objectId);
|
||||
m_locationBuffer->removeObject(objectId);
|
||||
m_manufactureInstallationObjectBuffer->removeObject(objectId);
|
||||
m_manufactureSchematicAttributeBuffer->removeObject(objectId);
|
||||
m_manufactureSchematicObjectBuffer->removeObject(objectId);
|
||||
m_messageBuffer->removeObject(objectId);
|
||||
m_missionObjectBuffer->removeObject(objectId);
|
||||
m_objvarBuffer->removeObject(objectId);
|
||||
m_planetObjectBuffer->removeObject(objectId);
|
||||
m_playerObjectBuffer->removeObject(objectId);
|
||||
m_playerQuestObjectBuffer->removeObject(objectId);
|
||||
m_propertyListBuffer->removeObject(objectId);
|
||||
m_resourceContainerObjectBuffer->removeObject(objectId);
|
||||
m_resourceTypeBuffer->removeObject(objectId);
|
||||
m_scriptBuffer->removeObject(objectId);
|
||||
m_shipObjectBuffer->removeObject(objectId);
|
||||
m_staticObjectBuffer->removeObject(objectId);
|
||||
m_tangibleObjectBuffer->removeObject(objectId);
|
||||
m_universeObjectBuffer->removeObject(objectId);
|
||||
m_vehicleObjectBuffer->removeObject(objectId);
|
||||
m_waypointBuffer->removeObject(objectId);
|
||||
m_weaponObjectBuffer->removeObject(objectId);
|
||||
|
||||
if (immediate && (getMode() != DB::ModeQuery::mode_INSERT)) {
|
||||
if (!m_immediateDeleteStep) {
|
||||
@@ -474,11 +465,41 @@ bool SwgSnapshot::load(DB::Session *session) {
|
||||
}
|
||||
m_objectTableBuffer.getTags(tags);
|
||||
|
||||
for (BufferListType::iterator buffer = m_bufferList.begin(); buffer != m_bufferList.end(); ++buffer) {
|
||||
if (!((*buffer)->load(session, tags, schema, getUseGoldDatabase()))) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// the buffer list was fucked so we'll do this the old fashioned way
|
||||
if (!((m_battlefieldMarkerObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; }
|
||||
if (!((m_battlefieldParticipantBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; }
|
||||
if (!((m_buildingObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; }
|
||||
if (!((m_bountyHunterTargetBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; }
|
||||
if (!((m_cellObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; }
|
||||
if (!((m_cityObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; }
|
||||
if (!((m_creatureObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; }
|
||||
if (!((m_experienceBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; }
|
||||
if (!((m_factoryObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; }
|
||||
if (!((m_guildObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; }
|
||||
if (!((m_harvesterInstallationObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; }
|
||||
if (!((m_installationObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; }
|
||||
if (!((m_intangibleObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; }
|
||||
if (!((m_locationBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; }
|
||||
if (!((m_manufactureInstallationObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; }
|
||||
if (!((m_manufactureSchematicAttributeBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; }
|
||||
if (!((m_manufactureSchematicObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; }
|
||||
if (!((m_messageBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; }
|
||||
if (!((m_missionObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; }
|
||||
if (!((m_objvarBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; }
|
||||
if (!((m_planetObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; }
|
||||
if (!((m_playerObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; }
|
||||
if (!((m_playerQuestObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; }
|
||||
if (!((m_propertyListBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; }
|
||||
if (!((m_resourceContainerObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; }
|
||||
if (!((m_resourceTypeBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; }
|
||||
if (!((m_scriptBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; }
|
||||
if (!((m_shipObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; }
|
||||
if (!((m_staticObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; }
|
||||
if (!((m_tangibleObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; }
|
||||
if (!((m_universeObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; }
|
||||
if (!((m_vehicleObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; }
|
||||
if (!((m_waypointBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; }
|
||||
if (!((m_weaponObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; }
|
||||
|
||||
DEBUG_REPORT_LOG(ConfigServerDatabase::getLogObjectLoading(), ("Load end.\n"));
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user