mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2026-10-02 10:53:44 +00:00
CDClientSnapshot converts a copy of the client's fdb into its own CDServer-<hash>.sqlite with the cdserver migrations applied, on its own connection. CDClientDatabase::Reconnect opens the new file before letting go of the old one; CDClientManager::Reload empties every table (old entries kept alive so references from spawned objects stay valid), retires the old fdb view and loads again. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
46 lines
2.3 KiB
C++
46 lines
2.3 KiB
C++
#pragma once
|
|
|
|
// Custom Classes
|
|
#include "CDTable.h"
|
|
|
|
struct CDZoneTable {
|
|
uint32_t zoneID; //!< The Zone ID of the object
|
|
uint32_t locStatus; //!< The Locale Status(?)
|
|
std::string zoneName; //!< The name of the zone
|
|
uint32_t scriptID; //!< The Script ID of the zone (ScriptsTable)
|
|
float ghostdistance_min; //!< The minimum ghosting distance
|
|
float ghostdistance; //!< The ghosting distance
|
|
uint32_t population_soft_cap; //!< The "soft cap" on the world population
|
|
uint32_t population_hard_cap; //!< The "hard cap" on the world population
|
|
UNUSED(std::string DisplayDescription); //!< The display description of the world
|
|
UNUSED(std::string mapFolder); //!< ???
|
|
float smashableMinDistance; //!< The minimum smashable distance?
|
|
float smashableMaxDistance; //!< The maximum smashable distance?
|
|
UNUSED(std::string mixerProgram); //!< ???
|
|
UNUSED(std::string clientPhysicsFramerate); //!< The client physics framerate
|
|
std::string serverPhysicsFramerate; //!< The server physics framerate
|
|
uint32_t zoneControlTemplate; //!< The Zone Control template
|
|
uint32_t widthInChunks; //!< The width of the world in chunks
|
|
uint32_t heightInChunks; //!< The height of the world in chunks
|
|
bool petsAllowed; //!< Whether or not pets are allowed in the world
|
|
bool localize; //!< Whether or not the world should be localized
|
|
float fZoneWeight; //!< ???
|
|
UNUSED(std::string thumbnail); //!< The thumbnail of the world
|
|
bool PlayerLoseCoinsOnDeath; //!< Whether or not the user loses coins on death
|
|
bool disableSaveLoc; //!< Disables the saving location?
|
|
float teamRadius; //!< ???
|
|
UNUSED(std::string gate_version); //!< The gate version
|
|
bool mountsAllowed; //!< Whether or not mounts are allowed
|
|
};
|
|
|
|
namespace CDZoneTableTable {
|
|
using Table = std::map<uint32_t, CDZoneTable>;
|
|
void LoadValuesFromDatabase();
|
|
|
|
// Empties the table for a CDClient reload. The old entries are kept alive, so a pointer from Query stays valid
|
|
void Reset();
|
|
|
|
// Queries the table with a zoneID to find.
|
|
const CDZoneTable* Query(uint32_t zoneID);
|
|
};
|