aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Commands
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/scripts/Commands')
-rw-r--r--src/server/scripts/Commands/cs_list.cpp62
1 files changed, 21 insertions, 41 deletions
diff --git a/src/server/scripts/Commands/cs_list.cpp b/src/server/scripts/Commands/cs_list.cpp
index 59cd3a05156..ccca7e79493 100644
--- a/src/server/scripts/Commands/cs_list.cpp
+++ b/src/server/scripts/Commands/cs_list.cpp
@@ -691,52 +691,32 @@ public:
if (*args)
range = atoi((char*)args);
- std::vector<RespawnInfo*> respawns;
LocaleConstant locale = handler->GetSession()->GetSessionDbcLocale();
char const* stringOverdue = sObjectMgr->GetTrinityString(LANG_LIST_RESPAWNS_OVERDUE, locale);
- char const* stringCreature = sObjectMgr->GetTrinityString(LANG_LIST_RESPAWNS_CREATURES, locale);
- char const* stringGameobject = sObjectMgr->GetTrinityString(LANG_LIST_RESPAWNS_GAMEOBJECTS, locale);
uint32 zoneId = player->GetZoneId();
- if (range)
- handler->PSendSysMessage(LANG_LIST_RESPAWNS_RANGE, stringCreature, range);
- else
- handler->PSendSysMessage(LANG_LIST_RESPAWNS_ZONE, stringCreature, GetZoneName(zoneId, handler->GetSessionDbcLocale()), zoneId);
- handler->PSendSysMessage(LANG_LIST_RESPAWNS_LISTHEADER);
- map->GetRespawnInfo(respawns, SPAWN_TYPEMASK_CREATURE, range ? 0 : zoneId);
- for (RespawnInfo* ri : respawns)
- {
- CreatureData const* data = sObjectMgr->GetCreatureData(ri->spawnId);
- if (!data)
- continue;
- if (range && !player->IsInDist(data->spawnPoint, range))
- continue;
- uint32 gridY = ri->gridId / MAX_NUMBER_OF_GRIDS;
- uint32 gridX = ri->gridId % MAX_NUMBER_OF_GRIDS;
-
- std::string respawnTime = ri->respawnTime > GameTime::GetGameTime() ? secsToTimeString(uint64(ri->respawnTime - GameTime::GetGameTime()), true) : stringOverdue;
- handler->PSendSysMessage("%u | %u | [%02u,%02u] | %s (%u) | %s%s", ri->spawnId, ri->entry, gridX, gridY, GetZoneName(ri->zoneId, handler->GetSessionDbcLocale()), ri->zoneId, respawnTime.c_str(), map->IsSpawnGroupActive(data->spawnGroupData->groupId) ? "" : " (inactive)");
- }
-
- respawns.clear();
- if (range)
- handler->PSendSysMessage(LANG_LIST_RESPAWNS_RANGE, stringGameobject, range);
- else
- handler->PSendSysMessage(LANG_LIST_RESPAWNS_ZONE, stringGameobject, GetZoneName(zoneId, handler->GetSessionDbcLocale()), zoneId);
- handler->PSendSysMessage(LANG_LIST_RESPAWNS_LISTHEADER);
- map->GetRespawnInfo(respawns, SPAWN_TYPEMASK_GAMEOBJECT, range ? 0 : zoneId);
- for (RespawnInfo* ri : respawns)
+ for (SpawnObjectType type : EnumUtils::Iterate<SpawnObjectType>())
{
- GameObjectData const* data = sObjectMgr->GetGameObjectData(ri->spawnId);
- if (!data)
- continue;
- if (range && !player->IsInDist(data->spawnPoint, range))
- continue;
- uint32 gridY = ri->gridId / MAX_NUMBER_OF_GRIDS;
- uint32 gridX = ri->gridId % MAX_NUMBER_OF_GRIDS;
-
- std::string respawnTime = ri->respawnTime > GameTime::GetGameTime() ? secsToTimeString(uint64(ri->respawnTime - GameTime::GetGameTime()), true) : stringOverdue;
- handler->PSendSysMessage("%u | %u | [% 02u, % 02u] | %s (%u) | %s%s", ri->spawnId, ri->entry, gridX, gridY, GetZoneName(ri->zoneId, handler->GetSessionDbcLocale()), ri->zoneId, respawnTime.c_str(), map->IsSpawnGroupActive(data->spawnGroupData->groupId) ? "" : " (inactive)");
+ if (range)
+ handler->PSendSysMessage(LANG_LIST_RESPAWNS_RANGE, EnumUtils::ToTitle(type), range);
+ else
+ handler->PSendSysMessage(LANG_LIST_RESPAWNS_ZONE, EnumUtils::ToTitle(type), GetZoneName(zoneId, locale), zoneId);
+ handler->PSendSysMessage(LANG_LIST_RESPAWNS_LISTHEADER);
+ std::vector<RespawnInfo*> respawns;
+ map->GetRespawnInfo(respawns, SpawnObjectTypeMask(1 << type), range ? 0 : zoneId);
+ for (RespawnInfo* ri : respawns)
+ {
+ SpawnData const* data = sObjectMgr->GetSpawnData(ri->type, ri->spawnId);
+ if (!data)
+ continue;
+ if (range && !player->IsInDist(data->spawnPoint, range))
+ continue;
+ uint32 gridY = ri->gridId / MAX_NUMBER_OF_GRIDS;
+ uint32 gridX = ri->gridId % MAX_NUMBER_OF_GRIDS;
+
+ std::string respawnTime = ri->respawnTime > GameTime::GetGameTime() ? secsToTimeString(uint64(ri->respawnTime - GameTime::GetGameTime()), true) : stringOverdue;
+ handler->PSendSysMessage("%u | %u | [%02u,%02u] | %s (%u) | %s%s", ri->spawnId, ri->entry, gridX, gridY, GetZoneName(ri->zoneId, locale), ri->zoneId, respawnTime.c_str(), map->IsSpawnGroupActive(data->spawnGroupData->groupId) ? "" : " (inactive)");
+ }
}
return true;
}