/* ** Command & Conquer Renegade(tm) ** Copyright 2025 Electronic Arts Inc. ** ** This program is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation, either version 3 of the License, or ** (at your option) any later version. ** ** This program is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** GNU General Public License for more details. ** ** You should have received a copy of the GNU General Public License ** along with this program. If not, see . */ #ifdef WWDEBUG /****************************************************************************** * * FILE * $Archive: /Commando/Code/Commando/WOLDiags.cpp $ * * DESCRIPTION * * PROGRAMMER * $Author: Denzil_l $ * * VERSION INFO * $Revision: 4 $ * $Modtime: 1/11/02 5:43p $ * ******************************************************************************/ #include "WOLDiags.h" #include #include using namespace WWOnline; void ShowWOLVersion(const RefPtr& session) { unsigned long ver = 0; session->GetChatObject()->GetVersion(&ver); ConsoleFunctionClass::Print("WOLAPI V%u.%u\n", (ver >> 16), (ver & 0xFFFF)); } void ShowServer(const RefPtr& session) { const RefPtr& server = session->GetCurrentServer(); if (server.IsValid()) { WOL::Server& data = server->GetData(); ConsoleFunctionClass::Print("Server: %s:%s TimeZone: %d Position:: %f/%f\n", (const char*)data.connlabel, (const char*)data.name, data.timezone, data.longitude, data.lattitude); } else { ConsoleFunctionClass::Print("WOL not connected\n"); } } void ShowTopic(const RefPtr& session) { ConsoleFunctionClass::Print("Channel Topic: %s\n", session->GetChannelTopic()); } void ShowPingServers(const RefPtr& session) { const PingServerList& pingServers = session->GetPingServerList(); unsigned int count = pingServers.size(); for (unsigned int index = 0; index < count; index++) { const RefPtr& ping = pingServers[index]; ConsoleFunctionClass::Print("%-18s %-4dms - %s\n", ping->GetHostAddress(), ping->GetPingTime(), ping->GetName()); } } struct Dispatch { const char* Cmd; void (*Func)(const RefPtr&); }; const char* WOLConsoleFunctionClass::Get_Help(void) { return ("WOL - Show WOL information"); } void WOLConsoleFunctionClass::Activate(const char* input) { static Dispatch _dispatch[] = { {"pings", ShowPingServers}, {"server", ShowServer}, {"topic", ShowTopic}, {"ver", ShowWOLVersion}, {NULL, NULL} }; RefPtr session = Session::GetInstance(false); if (!session.IsValid()) { ConsoleFunctionClass::Print("Westwood Online not active\n"); return; } int index = 0; const char* cmd = _dispatch[0].Cmd; while (cmd != NULL) { if (stricmp(cmd, input) == 0) { _dispatch[index].Func(session); return; } ++index; cmd = _dispatch[index].Cmd; } } #endif // WWDEBUG