# File: `zoneserver.h` ## Classes - `SpellProcess` - `TradeskillMgr` - `Bot` - `PlayerProximity` - `LocationProximity` - `LocationGrid` - `GridMap` - `TrackedSpawn` - `HouseItem` - `Widget` - `Client` - `Sign` - `Object` - `GroundSpawn` - `GroundSpawnEntry` - `GroundSpawnEntryItem` - `LootTable` - `LootDrop` - `GlobalLoot` - `TransportDestination` - `LocationTransportDestination` - `RevivePoint` - `SpawnScriptTimer` - `FlightPathInfo` - `FlightPathLocation` - `ZoneInfoSlideStructInfo` - `ZoneInfoSlideStructTransitionInfo` - `ZoneInfoSlideStruct` - `ZoneServer` ## Functions - `void ZoneLoop(void *tmp);` - `void SpawnLoop(void *tmp);` - `void SendInitialSpawns(void *tmp);` - `void SendLevelChangedSpawns(void*tmp);` - `void IncrementIncomingClients();` - `void DecrementIncomingClients();` - `void Init();` - `bool Process();` - `bool SpawnProcess();` - `void AddZoneInfoSlideStructTransitionInfo(ZoneInfoSlideStruct* info, int32 x, int32 y, float zoom, float transition_time);` - `void LoadRevivePoints(vector* revive_points);` - `void AddClient(Client* client);` - `void SimpleMessage(int8 type, const char* message, Spawn* from, float distance, bool send_to_sender = true);` - `void HandleChatMessage(Spawn* from, const char* to, int16 channel, const char* message, float distance = 0, const char* channel_name = 0, bool show_bubble = true, int32 language = 0);` - `void HandleChatMessage(Client* client, Spawn* from, const char* to, int16 channel, const char* message, float distance = 0, const char* channel_name = 0, bool show_bubble = true, int32 language = 0);` - `void HandleChatMessage(Client* client, std::string fromName, const char* to, int16 channel, const char* message, float distance = 0, const char* channel_name = 0, int32 language = 0);` - `void HandleChatMessage(std::string fromName, const char* to, int16 channel, const char* message, float distance, const char* channel_name, int32 language);` - `void HandleBroadcast(const char* message);` - `void HandleAnnouncement(const char* message);` - `int16 SetSpawnTargetable(Spawn* spawn, float distance);` - `int16 SetSpawnTargetable(int32 spawn_id);` - `void ApplySetSpawnCommand(Client* client, Spawn* target, int8 type, const char* value);` - `void SetSpawnCommand(Spawn* spawn, int8 type, char* value, Client* client = 0);` - `void SetSpawnCommand(int32 spawn_id, int8 type, char* value, Client* client = 0);` - `void AddLoot(NPC* npc, Spawn* killer = nullptr, GroupLootMethod loot_method = GroupLootMethod::METHOD_FFA, int8 item_rarity = 0, int32 group_id = 0);` - `void AddSpawn(Spawn* spawn);` - `void RemoveDeadEnemyList(Spawn* spawn);` - `void RemoveDeadSpawn(Spawn* spawn);` - `void AddSpawnGroupLocation(int32 group_id, int32 location_id, int32 spawn_location_id);` - `void AddSpawnGroupAssociation(int32 group_id1, int32 group_id2);` - `void AddSpawnGroupChance(int32 group_id, float percent);` - `void RemoveSpawn(Spawn* spawn, bool delete_spawn = true, bool respawn = true, bool lock = true, bool erase_from_spawn_list = true, bool lock_spell_process = false);` - `void ProcessSpawnLocations();` - `void SendQuestUpdates(Client* client, Spawn* spawn = 0);` - `bool CallSpawnScript(Spawn* npc, int8 type, Spawn* spawn = 0, const char* message = 0, bool is_door_open = false, sint32 input_value = 0, sint32* return_value = 0);` - `void SendSpawnVisualState(Spawn* spawn, int16 type);` - `void SendSpellFailedPacket(Client* client, int16 error);` - `void SendInterruptPacket(Spawn* interrupted, LuaSpell* spell, bool fizzle=false);` - `void HandleEmote(Spawn* originator, string name, Spawn* opt_target = nullptr, bool no_target = false);` - `void PlaySoundFile(Client* client, const char* name, float origin_x, float origin_y, float origin_z);` - `void SendZoneSpawns(Client* client);` - `void StartZoneInitialSpawnThread(Client* client);` - `void SendSpawnChanges();` - `void SendSpawnChanges(Spawn* spawn);` - `void SendSpawnChanges(Spawn* spawn, Client* client, bool override_changes = false, bool override_vis_changes = false);` - `void SendSpawnChangesByDBID(int32 spawn_id, Client* client, bool override_changes = false, bool override_vis_changes = false);` - `void SendPlayerPositionChanges(Player* player);` - `void UpdateVitality(float amount);` - `void KillSpawn(bool spawnListLocked, Spawn* dead, Spawn* killer, bool send_packet = true, int8 type = 0, int8 damage_type = 0, int16 kill_blow_type = 0);` - `void SendDamagePacket(Spawn* attacker, Spawn* victim, int8 type1, int8 type2, int8 damage_type, int16 damage, const char* spell_name);` - `void SendHealPacket(Spawn* caster, Spawn* target, int16 type, int32 heal_amt, const char* spell_name);` - `void SendCastSpellPacket(LuaSpell* spell, Entity* caster, int32 spell_visual_override = 0, int16 casttime_override = 0xFFFF);` - `void SendCastSpellPacket(int32 spell_visual, Spawn* target, Spawn* caster = 0);` - `void SendCastEntityCommandPacket(EntityCommand* entity_command, int32 spawn_id, int32 target_id);` - `void TriggerCharSheetTimer();` - `void SendTimeUpdateToAllClients();` - `void AddWidgetTimer(Spawn* widget, float time);` - `bool HasWidgetTimer(Spawn* widget);` - `void Despawn(Spawn* spawn, int32 timer);` - `void RepopSpawns(Client* client, Spawn* spawn);` - `bool AddCloseSpawnsToSpawnGroup(Spawn* spawn, float radius);` - `void Depop(bool respawns = false, bool repop = false);` - `bool IsSpawnGroupAlive(int32 id);` - `void AddEnemyList(NPC* npc);` - `void ReloadClientQuests();` - `void SendAllSpawnsForLevelChange(Client* client);` - `void SendAllSpawnsForSeeInvisChange(Client* client);` - `void SendAllSpawnsForVisChange(Client* client, bool limitToEntities=true);` - `void AddLocationGrid(LocationGrid* grid);` - `void RemoveLocationGrids();` - `void DeleteTransporters();` - `void CheckTransporters(Client* client);` - `void WritePlayerStatistics();` - `bool SendRadiusSpawnInfo(Client* client, float radius);` - `void FindSpawn(Client* client, char* regSearchStr);` - `void AddChangedSpawn(Spawn* spawn);` - `void AddDamagedSpawn(Spawn* spawn);` - `void AddDrowningVictim(Player* player);` - `void RemoveDrowningVictim(Player* player);` - `void DeleteSpellProcess();` - `void LoadSpellProcess();` - `void LockAllSpells(Player* player);` - `void UnlockAllSpells(Player* player);` - `void RemoveSpellTimersFromSpawn(Spawn* spawn, bool remove_all, bool delete_recast = true, bool call_expire_function = true, bool lock_spell_process = false);` - `void Interrupted(Entity* caster, Spawn* interruptor, int16 error_code, bool cancel = false, bool from_movement = false);` - `void ProcessSpell(Spell* spell, Entity* caster, Spawn* target = 0, bool lock = true, bool harvest_spell = false, LuaSpell* customSpell = 0, int16 custom_cast_time = 0, bool in_heroic_opp = false);` - `void ProcessEntityCommand(EntityCommand* entity_command, Entity* caster, Spawn* target, bool lock = true);` - `void AddPlayerTracking(Player* player);` - `void RemovePlayerTracking(Player* player, int8 mode);` - `void SendUpdateTitles(Client *client, Title *suffix = 0, Title *prefix = 0);` - `void SendUpdateTitles(Spawn *spawn, Title *suffix = 0, Title *prefix = 0);` - `void RemoveTargetFromSpell(LuaSpell* spell, Spawn* target, bool remove_caster = false);` - `void SetRain(float val);` - `void SetWind(float val);` - `void ProcessWeather();` - `void ResurrectSpawn(Spawn* spawn, Client* client);` - `void HidePrivateSpawn(Spawn* spawn);` - `bool SetPlayerTargetByName(Client* originator, char* targetName, float distance);` - `std::vector GetGridsByLocation(Spawn* originator, glm::vec3 loc, float distance);` - `void StartZoneSpawnsForLevelThread(Client* client);` - `void SendDispellPacket(Entity* caster, Spawn* target, string dispell_name, string spell_name, int8 dispell_type);` - `void SetupInstance(int32 createdInstanceID=0);` - `void SendUpdateDefaultCommand(Spawn* spawn, const char* command, float distance, Spawn* toplayer = NULL);` - `int32 GetClosestLocation(Spawn* spawn);` - `void PlayFlavor(Client* client, Spawn* spawn, const char* mp3, const char* text, const char* emote, int32 key1, int32 key2, int8 language);` - `void PlayVoice(Client* client, Spawn* spawn, const char* mp3, int32 key1, int32 key2);` - `void PlayFlavor(Spawn* spawn, const char* mp3, const char* text, const char* emote, int32 key1, int32 key2, int8 language);` - `void PlayFlavorID(Spawn* spawn, int8 type, int32 id, int16 index, int8 language);` - `void PlayVoice(Spawn* spawn, const char* mp3, int32 key1, int32 key2);` - `void SendThreatPacket(Spawn* caster, Spawn* target, int32 threat_amt, const char* spell_name);` - `void SendYellPacket(Spawn* yeller, float max_distance=50.0f);` - `void KillSpawnByDistance(Spawn* spawn, float max_distance, bool include_players = false, bool send_packet = false);` - `void SpawnSetByDistance(Spawn* spawn, float max_distance, string field, string value);` - `void AddSpawnScriptTimer(SpawnScriptTimer* timer);` - `void AddMovementNPC(Spawn* spawn);` - `void AddPlayerProximity(Spawn* spawn, float distance, string in_range_function, string leaving_range_function);` - `void AddLocationProximity(float x, float y, float z, float max_variation, string in_range_function, string leaving_range_function);` - `void PlayAnimation(Spawn* spawn, int32 visual_state, Spawn* spawn2 = 0, int8 type = 1);` - `void AddTransportSpawn(Spawn* spawn);` - `void RemovePlayerPassenger(int32 char_id);` - `bool IsDusk() { return isDusk; } // never used, probably meant for lua though` - `void SetZoneName(char* new_zone) {` - `void SetZoneFile(char* zone) {` - `void SetZoneSkyFile(char* zone) {` - `void SetZoneDescription(char* desc) {` - `void SetUnderWorld(float under){ underworld = under; }` - `float GetUnderWorld(){ return underworld; }` - `void SetZoneID(int32 new_id){ zoneID = new_id; }` - `void SetCityZone(bool val) { cityzone = val; }` - `void SetAlwaysLoaded(bool val) { always_loaded = val; }` - `void SetDuplicatedZone(bool val) { duplicated_zone = val; }` - `void SetDuplicatedID(int32 id) { duplicated_id = id; }` - `int32 NumPlayers() { return pNumPlayers; }` - `void SetMinimumStatus(sint16 minStatus) { minimumStatus = minStatus; }` - `sint16 GetMinimumStatus() { return minimumStatus; }` - `void SetMinimumLevel(int16 minLevel) { minimumLevel = minLevel; }` - `void SetMaximumLevel(int16 maxLevel) { maximumLevel = maxLevel; }` - `void SetMinimumVersion(int16 minVersion) { minimumVersion = minVersion; }` - `int16 GetMinimumLevel() { return minimumLevel; }` - `int16 GetMaximumLevel() { return maximumLevel; }` - `int16 GetMinimumVersion() { return minimumVersion; }` - `void SetZoneLockState(bool lock_state) { locked = lock_state; } // JA: /zone lock|unlock` - `int32 GetInstanceID() { return instanceID; }` - `bool IsInstanceZone() { return isInstance; }` - `void SetInstanceID(int32 newInstanceID) { instanceID = newInstanceID; }` - `void SetShutdownTimer(int val){` - `void AddSpawnLocation(int32 id, SpawnLocation* spawnlocation) {` - `void SetInstanceType(int16 type) { InstanceType = (Instance_Type)type; if(type>0)isInstance=true; else isInstance=false; }` - `Instance_Type GetInstanceType() { return InstanceType; }` - `float GetSafeX(){ return safe_x; }` - `float GetSafeY(){ return safe_y; }` - `float GetSafeZ(){ return safe_z; }` - `float GetSafeHeading() { return safe_heading; }` - `void SetSafeX(float val){ safe_x = val; }` - `void SetSafeY(float val){ safe_y = val; }` - `void SetSafeZ(float val){ safe_z = val; }` - `void SetSafeHeading(float val) { safe_heading = val; }` - `float GetXPModifier() { return xp_mod; }` - `void SetXPModifier(float val) { xp_mod = val; }` - `void SetZoneMOTD(string z_motd) { zone_motd = z_motd; }` - `string GetZoneMOTD() { return zone_motd; }` - `bool isZoneShuttingDown ( ) { return zoneShuttingDown; }` - `void Shutdown(){ zoneShuttingDown = true; }` - `int32 GetClientCount(){ return clients.size(); }` - `int32 GetDefaultLockoutTime() { return def_lockout_time; }` - `int32 GetDefaultReenterTime() { return def_reenter_time; }` - `int32 GetDefaultResetTime() { return def_reset_time; }` - `int8 GetForceGroupZoneOption() { return group_zone_option; }` - `void SetDefaultLockoutTime(int32 val) { def_lockout_time = val; }` - `void SetDefaultReenterTime(int32 val) { def_reenter_time = val; }` - `void SetDefaultResetTime(int32 val) { def_reset_time = val; }` - `void SetForceGroupZoneOption(int8 val) { group_zone_option = val; }` - `bool FinishedDepop(){ return finished_depop; }` - `bool isWeatherEnabled() { return weather_enabled; }` - `void SetWeatherEnabled(bool val) { weather_enabled = val; }` - `bool isWeatherAllowed() { return weather_allowed; }` - `void SetWeatherAllowed(bool val) { weather_allowed = val; }` - `int8 GetWeatherType() { return weather_type; }` - `void SetWeatherType(int8 val) { weather_type = val; }` - `int32 GetWeatherFrequency() { return weather_frequency; }` - `void SetWeatherFrequency(int32 val) { weather_frequency = val; }` - `float GetWeatherMinSeverity() { return weather_min_severity; }` - `void SetWeatherMinSeverity(float val) { weather_min_severity = val; }` - `float GetWeatherMaxSeverity() { return weather_max_severity; }` - `void SetWeatherMaxSeverity(float val) { weather_max_severity = val; }` - `float GetWeatherChangeAmount() { return weather_change_amount; }` - `void SetWeatherChangeAmount(float val) { weather_change_amount = val; }` - `float GetWeatherDynamicOffset() { return weather_dynamic_offset; }` - `void SetWeatherDynamicOffset(float val) { weather_dynamic_offset = val; }` - `int8 GetWeatherChance() { return weather_change_chance; }` - `void SetWeatherChance(int8 val) { weather_change_chance = val; }` - `float GetCurrentWeather() { return weather_current_severity; }` - `void SetCurrentWeather(float val) { weather_current_severity = val; }` - `int8 GetWeatherPattern() { return weather_pattern; }` - `void SetWeatherPattern(int8 val) { weather_pattern = val; }` - `void SetWeatherLastChangedTime(int32 val) { weather_last_changed_time = val; }` - `int32 GetExpansionFlag() { return expansion_flag; }` - `void SetExpansionFlag(int32 val) { expansion_flag = val; }` - `int32 GetHolidayFlag() { return holiday_flag; }` - `void SetHolidayFlag(int32 val) { holiday_flag = val; }` - `int32 GetCanBind() { return can_bind; }` - `void SetCanBind(int32 val) { can_bind = val; }` - `bool GetCanGate() { return can_gate; }` - `void SetCanGate(int32 val) { can_gate = val; }` - `bool GetCanEvac() { return can_evac; }` - `void SetCanEvac(int32 val) { can_evac = val; }` - `void RemoveClientImmediately(Client* client);` - `void ClearHate(Entity* entity);` - `void AddFlightPath(int32 id, FlightPathInfo* info);` - `void AddFlightPathLocation(int32 id, FlightPathLocation* location);` - `void DeleteFlightPaths();` - `void SendFlightPathsPackets(Client* client);` - `int32 GetFlightPathIndex(int32 id);` - `float GetFlightPathSpeed(int32 id);` - `void SendSpawn(Spawn* spawn, Client* client); // moved from private to public for bots` - `void ProcessSpawnConditional(int8 condition);` - `void SetSpawnStructs(Client* client);` - `void AddSpawnProximities(Spawn* spawn);` - `void RemoveSpawnProximities(Spawn* spawn);` - `void SetSpawnScript(SpawnEntry* entry, Spawn* spawn);` - `bool IsLoading() {` - `vector GetHouseItems(Client* client);` - `void SendHouseItems(Client* client);` - `int32 GetWatchdogTime() { return watchdogTimestamp; }` - `void SetWatchdogTime(int32 time) { watchdogTimestamp = time; }` - `void CancelThreads();` - `void AddPendingSpawnRemove(int32 id);` - `void ProcessSpawnRemovals();` - `bool SendRemoveSpawn(Client* client, Spawn* spawn, PacketStruct* packet = 0, bool delete_spawn = false);` - `void AddSpawnToGroup(Spawn* spawn, int32 group_id);` - `void QueueStateCommandToClients(int32 spawn_id, int32 state);` - `void QueueDefaultCommand(int32 spawn_id, std::string command, float distance);` - `void ProcessQueuedStateCommands();` - `void RemoveClientsFromZone(ZoneServer* zone);` - `void WorldTimeUpdateTrigger() { sync_game_time_timer.Trigger(); }` - `void StopSpawnScriptTimer(Spawn* spawn, std::string functionName);` - `void SendSubSpawnUpdates(SUBSPAWN_TYPES subtype);` - `bool HouseItemSpawnExists(int32 item_id);` - `void ProcessPendingSpawns();` - `void AddSpawnToGrid(Spawn* spawn, int32 grid_id);` - `void RemoveSpawnFromGrid(Spawn* spawn, int32 grid_id);` - `int32 GetSpawnCountInGrid(int32 grid_id);` - `void SendClientSpawnListInGrid(Client* client, int32 grid_id);` - `void AddIgnoredWidget(int32 id);` - `void AddRespawn(Spawn* spawn);` - `void AddRespawn(int32 locationID, int32 respawnTime);` - `void SendRespawnTimerList(Client* client);` - `void AddTransporter(LocationTransportDestination* loc);` - `void CheckDeadSpawnRemoval();` - `void DeleteData(bool boot_clients = true);` - `void DeleteFactionLists();` - `void ProcessDepop(bool respawns_allowed = false, bool repop = false);` - `void ClientProcess(bool ignore_shutdown_timer = false); // never used outside zone server` - `void RemoveClient(Client* client); // never used outside zone server` - `void DeterminePosition(SpawnLocation* spawnlocation, Spawn* spawn); // never used outside zone server` - `void AddDeadSpawn(Spawn* spawn, int32 timer = 0xFFFFFFFF); // never used outside zone server` - `int32 CalculateSpawnGroup(SpawnLocation* spawnlocation, bool respawn = false); // never used outside zone server` - `float GetSpawnGroupChance(int32 group_id); // never used outside zone server` - `void ProcessSpawnLocation(int32 location_id, map* instNPCs, map* instGroundSpawns, map* instObjSpawns, map* instWidgetSpawns, map* instSignSpawns, bool respawn = false); // never used outside zone server` - `void SendRaidSheetChanges(); // never used outside zone server` - `void SendCharSheetChanges(); // never used outside zone server` - `void SendCharSheetChanges(Client* client); // never used outside zone server` - `void SaveClients(); // never used outside zone server` - `void CheckSendSpawnToClient(); // never used outside zone server` - `void CheckSendSpawnToClient(Client* client, bool initial_login = false); // never used outside zone server` - `void CheckRemoveSpawnFromClient(Spawn* spawn); // never used outside zone server` - `void SaveClient(Client* client); // never used outside zone server` - `void ProcessFaction(Spawn* spawn, Client* client); // never used outside zone server` - `void RegenUpdate(); // never used outside zone server` - `void SendCalculatedXP(Player* player, Spawn* victim); // never used outside zone server, might not be used at all any more` - `void SendTimeUpdate(Client* client); // never used outside zone server` - `void CheckWidgetTimers(); // never used outside zone server` - `void CheckRespawns(); // never used outside zone server` - `void CheckSpawnExpireTimers(); // never used outside zone server` - `void AddSpawnExpireTimer(Spawn* spawn, int32 expire_time, int32 expire_offset = 0); // never used outside zone server` - `void CheckSpawnRange(Client* client, Spawn* spawn, bool initial_login = false); // never used outside zone server` - `void CheckSpawnRange(Spawn* spawn); // never used outside zone server` - `void DeleteSpawnScriptTimers(Spawn* spawn, bool all = false); // never used outside zone server` - `void DeleteSpawnScriptTimers(); // never used outside zone server` - `void CheckSpawnScriptTimers(); // never used outside zone server` - `bool PrepareSpawnID(Player* player, Spawn* spawn); // never used outside zone server` - `void RemoveMovementNPC(Spawn* spawn); // never used outside zone server` - `bool CheckNPCAttacks(NPC* npc, Spawn* victim, Client* client = 0); // never used outside zone server` - `bool AggroVictim(NPC* npc, Spawn* victim, Client* client = 0); // never used outside zone server` - `bool CheckEnemyList(NPC* npc); // never used outside zone server` - `void RemovePlayerProximity(Spawn* spawn, bool all = false); // never used outside zone server` - `void RemovePlayerProximity(Client* client); // never used outside zone server` - `void CheckPlayerProximity(Spawn* spawn, Client* client); // never used outside zone server` - `void RemoveLocationProximities(); // never used outside zone server` - `void CheckLocationProximity(); // never used outside zone server` - `void CheckLocationGrids(); // never used outside zone server` - `void RemoveSpawnSupportFunctions(Spawn* spawn, bool lock_spell_process = false, bool shutdown = false); // never used outside zone server` - `void ReloadTransporters(); // never used outside zone server` - `void DeleteSpawns(bool delete_all); // never used outside zone server` - `void AddPendingDelete(Spawn* spawn); // never used outside zone server` - `void ClearDeadSpawns(); // never used outside zone server` - `void RemoveChangedSpawn(Spawn* spawn); // never used outside zone server` - `void ProcessDrowning(); // never used outside zone server` - `void RemoveDamagedSpawn(Spawn* spawn); // never used outside zone server` - `void ProcessTracking(); // never used outside zone server` - `void ProcessTracking(Client* client); // never used outside zone server` - `void SendEpicMobDeathToGuild(Player* killer, Spawn* victim); // never used outside zone server` - `void ProcessAggroChecks(Spawn* spawn); // never used outside zone server` - `bool CombatProcess(Spawn* spawn); // never used outside zone server` - `void LootProcess(Spawn* spawn);` - `void CloseSpawnLootWindow(Spawn* spawn);` - `void InitWeather(); // never used outside zone server` - `void DismissAllPets(); // never used outside zone server` - `void SetEntityCommandList(int32 id, EntityCommand* command);` - `void ClearEntityCommands();` - `void AddNPC(int32 id, NPC* npc);` - `void AddNPCSkill(int32 list_id, int32 skill_id, int16 value);` - `void AddNPCEquipment(int32 list_id, int32 item_id);` - `void SetNPCEquipment(NPC* npc);` - `void AddObject(int32 id, Object* object){ object_list[id] = object; }` - `void AddSign(int32 id, Sign* sign){ sign_list[id] = sign; }` - `void AddWidget(int32 id, Widget* widget);` - `void AddGroundSpawnEntry(int32 groundspawn_id, int16 min_skill_level, int16 min_adventure_level, int8 bonus_table, float harvest1, float harvest3, float harvest5, float harvest_imbue, float harvest_rare, float harvest10, int32 harvest_coin);` - `void AddGroundSpawnItem(int32 groundspawn_id, int32 item_id, int8 is_rare, int32 grid_id);` - `void LoadGroundSpawnEntries();` - `void LoadGroundSpawnItems();` - `void DeleteGroundSpawnItems();` - `void AddGroundSpawn(int32 id, GroundSpawn* spawn);` - `void AddLootTable(int32 id, LootTable* table);` - `void AddLootDrop(int32 id, LootDrop* drop);` - `void AddSpawnLootList(int32 spawn_id, int32 id);` - `void ClearSpawnLootList(int32 spawn_id);` - `void AddLevelLootList(GlobalLoot* loot);` - `void AddRacialLootList(int16 racial_id, GlobalLoot* loot);` - `void AddZoneLootList(int32 zone, GlobalLoot* loot);` - `void ClearLootTables();` - `vector GetSpawnLootList(int32 spawn_id, int32 zone_id, int8 spawn_level, int16 racial_id, Spawn* spawn = 0);` - `void AddLocationTransporter(int32 zone_id, string message, float trigger_x, float trigger_y, float trigger_z, float trigger_radius, int32 destination_zone_id, float destination_x, float destination_y, float destination_z, float destination_heading, int32 cost, int32 unique_id);` - `void GetTransporters(vector* returnList, Client* client, int32 transport_id);` - `void DeleteGlobalTransporters();` - `void AddTransportMap(int32 id, string name);` - `bool TransportHasMap(int32 id);` - `string GetTransportMap(int32 id);` - `void DeleteTransporterMaps();` - `void DeleteGlobalSpawns();` - `void ReloadSpawns();` - `void SendStateCommand(Spawn* spawn, int32 state);` - `int32 getGroupraidMinLevel() const {` - `int32 getGroupraidMaxLevel() const {` - `int32 getGroupraidAvgLevel() const {` - `int32 getGroupraidFirstLevel() const {` - `void setGroupRaidLevels(int32 min_level, int32 max_level, int32 avg_level, int32 first_level) {` ## Notable Comments - /* - */ - // Can't verify these 3 values - // 32768 - SF - // 131072 - AoD - /* JA: TODO Turn into R_World Rules */ - // need to attempt to clean this up and add xml comments, remove unused code, find a logical way to sort the functions maybe by get/set/process/add etc... - /// Sends the game time packet to all connected clients - /// Set the rain levl in the zone - /// Level of rain in the zone 0.0 - 1.1 (rain starts at 0.76)