// Prints information about all of the universes in the array // to a given player. void CHSUniverseDBDef::PrintInfo(int player) { if (m_mapUniverses.empty()) { hsInterface.Notify(player, "No universes currently loaded."); return; } hsInterface.Notify(player, "[Room#] Name Objects Active"); CSTLUniverseMap::iterator iter; for (iter = m_mapUniverses.begin(); iter != m_mapUniverses.end(); iter++) { CHSUniverse *pUniverse = iter->second; if (pUniverse) { hsInterface.Notify(player, hsInterface. HSPrintf("[%5d] %-32s%4d %4d", pUniverse->GetID(), pUniverse->GetName(), pUniverse->GetNumObjects(), pUniverse->GetNumActiveObjects())); } } }
void CHSHandlerUniverse::HandleGetUniverseList(CHSPacket * pPacket) { hs_log("ADMIN SERVER: Handle packet GetUniverseList"); CHSPGetUniverseList *cmdGetList = static_cast < CHSPGetUniverseList * >(pPacket); // Create a class list packet as a response. CHSPUniverseList cmdList; cmdList.SetPacketAddress(cmdGetList->GetPacketAddress()); THSUniverseIterator tIter; HS_BOOL8 bContinue; for (bContinue = CHSUniverseDB::GetInstance().GetFirstUniverse(tIter); bContinue; bContinue = CHSUniverseDB::GetInstance().GetNextUniverse(tIter)) { if (tIter.pValue != NULL) { CHSUniverse *pUniverse = (CHSUniverse *) tIter.pValue; CHSPUniverseList::THSUniverse tEntry; tEntry.uiID = pUniverse->GetID(); tEntry.strName = pUniverse->GetName(); tEntry.uiNumObjects = pUniverse->GetNumObjects(); tEntry.uiNumActiveObjects = pUniverse->GetNumActiveObjects(); cmdList.AddUniverse(tEntry); } } HSNetwork.SendPacket(cmdList); }