| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804 |
- /*
- ** 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 <http://www.gnu.org/licenses/>.
- */
- //
- // Filename: diagnostics.cpp
- // Project: Network.lib, for Commando
- // Author: Tom Spencer-Smith
- // Date: Dec 1998
- // Description:
- //
- #include "diagnostics.h"
- #include <stdio.h>
- #include "wwdebug.h"
- #include "assets.h"
- #include "font3d.h"
- #include "render2d.h"
- //
- // Add any includes for exposed interfaces that you are diagnosing
- //
- #include "devoptions.h"
- #include "cnetwork.h"
- #include "gamedata.h"
- #include "networkobjectmgr.h"
- #include "serverfps.h"
- #include "sbbomanager.h"
- #include "singlepl.h"
- #include "gameobjmanager.h"
- #include "gamemode.h"
- #include "humanphys.h"
- #include "playermanager.h"
- #include "useroptions.h"
- #include "packetmgr.h"
- #include "apppacketstats.h"
- #include "connect.h"
- #include "wwprofile.h"
- #include "vehicle.h"
- #include "csdamageevent.h"
- #include "specialbuilds.h"
- #include "consolemode.h"
- #include "gametype.h"
- static int RendererFps;
- static int RendererSFps;
- static int RendererPing;
- static int RendererBandwidthBps;
- static bool RendererGodStatus;
- static bool RendererVipStatus;
- //
- // Class statics
- //
- Render2DTextClass * cDiagnostics::PRenderer = NULL;
- Font3DInstanceClass * cDiagnostics::PFont = NULL;
- float cDiagnostics::DiagnosticX = 0;
- float cDiagnostics::DiagnosticY = 0;
- //-----------------------------------------------------------------------------
- void cDiagnostics::Init(void)
- {
- if (!ConsoleBox.Is_Exclusive()) {
- WWASSERT(WW3DAssetManager::Get_Instance() != NULL);
- PFont = WW3DAssetManager::Get_Instance()->Get_Font3DInstance("FONT6x8.TGA");
- WWASSERT(PFont != NULL);
- SET_REF_OWNER(PFont);
- PFont->Set_Mono_Spaced();
- PRenderer = new Render2DTextClass(PFont);
- WWASSERT(PRenderer != NULL);
- RectClass rect = Render2DClass::Get_Screen_Resolution();
- PRenderer->Set_Coordinate_Range(rect);
- DiagnosticX = 10;
- //DiagnosticY = 10;
- RendererFps=0;
- RendererSFps=0;
- RendererPing = 0;
- RendererBandwidthBps = 0;
- RendererGodStatus=false;
- RendererVipStatus=false;
- }
- }
- //-----------------------------------------------------------------------------
- void cDiagnostics::Close(void)
- {
- if (PFont != NULL) {
- PFont->Release_Ref();
- PFont = NULL;
- }
- if (PRenderer != NULL) {
- delete PRenderer;
- PRenderer = NULL;
- }
- }
- //-----------------------------------------------------------------------------
- void cDiagnostics::Show_Object_Tally(void)
- {
- cAppPacketStats::Update_Object_Tally();
- Add_Diagnostic("");
- Add_Diagnostic("Object stats (reset with APTR command):");
- Add_Diagnostic(cAppPacketStats::Get_Heading());
- for (BYTE i = 0; i < APPPACKETTYPE_COUNT; i++)
- {
- Add_Diagnostic(cAppPacketStats::Get_Description(i));
- }
- }
- //-----------------------------------------------------------------------------
- void cDiagnostics::Add_Diagnostic(LPCSTR format, ...)
- {
- if (PRenderer) {
- va_list va;
- char buffer[1024];
- va_start(va, format);
- ::vsprintf(buffer, format, va);
- WWASSERT(PRenderer != NULL);
- PRenderer->Set_Location(Vector2(DiagnosticX, DiagnosticY));
- PRenderer->Draw_Text(buffer);
- WWASSERT(PRenderer->Peek_Font() != NULL);
- DiagnosticY += (int)(PRenderer->Peek_Font()->Char_Height() * 1.2);
- }
- }
- //-----------------------------------------------------------------------------
- void cDiagnostics::Render(void)
- {
- if (PFont == NULL || PRenderer == NULL) {
- return;
- }
- #ifdef BETACLIENT
- PRenderer->Reset();
- RectClass rect = Render2DClass::Get_Screen_Resolution();
- PRenderer->Set_Location(Vector2(rect.Left + 5, rect.Bottom - 10));
- PRenderer->Draw_Text("BETACLIENT");
- PRenderer->Render();
- #endif // BETACLIENT
- #ifdef FREEDEDICATEDSERVER
- PRenderer->Reset();
- RectClass rect = Render2DClass::Get_Screen_Resolution();
- PRenderer->Set_Location(Vector2(rect.Left + 5, rect.Bottom - 10));
- PRenderer->Draw_Text("FREEDEDICATEDSERVER");
- PRenderer->Render();
- #endif // FREEDEDICATEDSERVER
- #ifdef MULTIPLAYERDEMO
- PRenderer->Reset();
- RectClass rect = Render2DClass::Get_Screen_Resolution();
- PRenderer->Set_Location(Vector2(rect.Left + 5, rect.Bottom - 10));
- PRenderer->Draw_Text("MULTIPLAYER DEMO");
- PRenderer->Render();
- #endif // MULTIPLAYERDEMO
- bool changed=false;
- if (cDevOptions::ShowFps.Is_True()) {
- int fps=cNetwork::Get_Fps();
- if (fps!=RendererFps) {
- RendererFps=fps;
- changed=true;
- }
- if (cNetwork::I_Am_Only_Client())
- {
- fps=cServerFps::Get_Instance()->Get_Fps();
- if (fps!=RendererSFps) {
- RendererSFps=fps;
- changed=true;
- }
- if (cNetwork::PClientConnection) {
- cRemoteHost *server = cNetwork::PClientConnection->Get_Remote_Host(0);
- if (server) {
- int ping = server->Get_Average_Internal_Pingtime_Ms();
- if (ping && ping != RendererPing) {
- RendererPing = ping;
- changed = true;
- }
- int bps = PacketManager.Get_Compressed_Bandwidth_In(&server->Get_Address());
- if (bps && bps != RendererBandwidthBps) {
- RendererBandwidthBps = bps;
- changed = true;
- }
- }
- }
- } else {
- int bps = PacketManager.Get_Total_Compressed_Bandwidth_Out();
- if (bps && bps != RendererBandwidthBps) {
- RendererBandwidthBps = bps;
- changed = true;
- }
- }
- }
- // If we displayed fps last frame, turn it off now
- else {
- if (RendererFps) {
- changed=true;
- }
- RendererFps=0;
- }
- #ifdef WWDEBUG
- bool god_status = cDevOptions::ShowGodStatus.Is_True() && cNetwork::I_Am_Client();
- if (god_status!=RendererGodStatus) {
- RendererGodStatus=god_status;
- changed=true;
- }
- bool vip_status = cNetwork::I_Am_Client();
- if (vip_status != RendererVipStatus) {
- RendererVipStatus = vip_status;
- changed = true;
- }
- // If diagnostics are displayed, changes happen most likely every frame
- if (cDevOptions::ShowDiagnostics.Is_True() || cDevOptions::ShowObjectTally.Is_True()) {
- changed=true;
- }
- #endif //WWDEBUG
- if (cDevOptions::ShowFps.Is_True()) {
- // Stop the flicker
- changed = true;
- }
- // Render only if changed!
- if (!changed) {
- PRenderer->Render();
- return;
- }
- PRenderer->Reset();
- DiagnosticY = 75;
- if (cDevOptions::ShowFps.Is_True()) {
- StringClass fps_text;
- fps_text.Format("FPS = %3d", RendererFps);
- if (cNetwork::I_Am_Only_Client())
- {
- StringClass server_fps_text;
- server_fps_text.Format(", SFPS = %3d", RendererSFps);
- fps_text += server_fps_text;
- if (cNetwork::PClientConnection && cNetwork::PClientConnection->Get_Remote_Host(0)) {
- StringClass ping_time;
- ping_time.Format(", PING = %4d", min(9999, RendererPing));
- fps_text += ping_time;
- }
- }
- if (!IS_SOLOPLAY) {
- StringClass bps_text;
- bps_text.Format(", KBPS = %4d", RendererBandwidthBps / 1024);
- fps_text += bps_text;
- }
- float width = PFont->String_Width(fps_text);
- RectClass rect = Render2DClass::Get_Screen_Resolution();
- PRenderer->Set_Location(Vector2(rect.Right - width - 5, rect.Top + 2));
- PRenderer->Draw_Text(fps_text);
- }
- #ifdef WWDEBUG
- //
- // Show god status
- //
- if (god_status) {
- cPlayer * p_player = cNetwork::Get_My_Player_Object();
- if (p_player != NULL && p_player->Invulnerable.Is_True()) {
- RectClass rect = Render2DClass::Get_Screen_Resolution();
- PRenderer->Set_Location(Vector2(rect.Left + 10, rect.Bottom - 20));
- PRenderer->Draw_Text("GOD");
- }
- }
- //
- // Show vip status
- //
- if (vip_status) {
- cPlayer * p_player = cNetwork::Get_My_Player_Object();
- if (p_player != NULL && p_player->Get_Damage_Scale_Factor() < 100) {
- RectClass rect = Render2DClass::Get_Screen_Resolution();
- PRenderer->Set_Location(Vector2(rect.Left + 10, rect.Bottom - 30));
- PRenderer->Draw_Text("VIP");
- }
- }
- /*
- if (cNetwork::I_Am_Server() && cDevOptions::ShowBandwidthBudgetOut.Is_True()) {
- Add_Diagnostic("BBO: %d bps\n", cNetwork::PServerConnection->Get_Bandwidth_Budget_Out());
- }
- */
- if (cDevOptions::ShowObjectTally.Is_True()) {
- Show_Object_Tally();
- }
- if (cDevOptions::ShowDiagnostics.Is_True()) {
- if (cNetwork::I_Am_Server()) {
- Add_Diagnostic("BBO (server): %d bps\n", cNetwork::PServerConnection->Get_Bandwidth_Budget_Out());
- }
- if (cNetwork::I_Am_Client()) {
- Add_Diagnostic("BBO (client): %d bps\n", cNetwork::PClientConnection->Get_Bandwidth_Budget_Out());
- Add_Diagnostic("CSC Last Ping: %d ms", CombatManager::Get_Last_Round_Trip_Ping_Ms());
- Add_Diagnostic("CSC Avg. Ping: %d ms", CombatManager::Get_Avg_Round_Trip_Ping_Ms());
- }
- int low = 0;
- int high = 0;
- int current = 0;
- cConnection::Get_Latency(low, high, current);
- Add_Diagnostic("latency sim: (%d, %d) : %d", low, high, current);
- cConnection::Get_Latency(low, high, current);
- Add_Diagnostic("#netobjects: %d", NetworkObjectMgrClass::Get_Object_Count());
- Add_Diagnostic("#players: %d", cPlayerManager::Count());
- if (cNetwork::I_Am_Server()) {
- Add_Diagnostic("NetToCombatRatio: %-5.2f", cSbboManager::Get_Net_To_Combat_Ratio());
- Add_Diagnostic("ThinkCount: %d", cNetwork::Get_Think_Count());
- }
- Add_Diagnostic("I_Am_Client: %d", cNetwork::I_Am_Client());
- Add_Diagnostic("I_Am_Server: %d", cNetwork::I_Am_Server());
- Add_Diagnostic("NetUpdateRate: %d", cUserOptions::NetUpdateRate.Get());
- Add_Diagnostic("ClientHintFactor: %5.2f", cUserOptions::ClientHintFactor.Get());
- Add_Diagnostic("MaxFacingPenalty: %5.2f", cUserOptions::MaxFacingPenalty.Get());
- if (cNetwork::I_Am_Client()) {
- SoldierGameObj * p_my_soldier = GameObjManager::Find_Soldier_Of_Client_ID(cNetwork::Get_My_Id());
- if (p_my_soldier != NULL) {
- int tally = p_my_soldier->Tally_Vis_Visible_Soldiers();
- if (tally >= 0) {
- Add_Diagnostic("Soldiers VV: %d", tally);
- } else {
- Add_Diagnostic("Soldiers VV: NO VIS HERE");
- }
- //Add_Diagnostic("--------------------");
- //Add_Diagnostic("In elevator: %d", p_my_soldier->Is_In_Elevator());
- }
- }
- if (PTheGameData != NULL) {
- Add_Diagnostic("ip addy: %s:%u",
- cNetUtil::Address_To_String(PTheGameData->Get_Ip_Address()),
- PTheGameData->Get_Port());
- Add_Diagnostic("mapname: %s", PTheGameData->Get_Map_Name());
- Add_Diagnostic("HostedGameNumber: %d", cGameData::Get_Hosted_Game_Number());
- }
- Add_Diagnostic("PacketManager:");
- Add_Diagnostic(" FlushFrequency: %d", PacketManager.Get_Flush_Frequency());
- Add_Diagnostic(" AllowDeltas: %d", PacketManager.Get_Allow_Deltas());
- Add_Diagnostic(" AllowCombos: %d", PacketManager.Get_Allow_Combos());
- //Add_Diagnostic("Frames: %d", WWProfileManager::Get_Frame_Count_Since_Reset());
- //
- // Let's track how many vehicles are in the world, and how many of those
- // have drivers.
- //
- int vehicle_count = 0;
- int vehicle_driven_count = 0;
- SLNode<BaseGameObj> * objnode;
- for (objnode = GameObjManager::Get_Game_Obj_List()->Head(); objnode; objnode = objnode->Next()) {
- WWASSERT(objnode->Data() != NULL);
- PhysicalGameObj * p_phys_obj = objnode->Data()->As_PhysicalGameObj();
- if (p_phys_obj != NULL && p_phys_obj->As_VehicleGameObj() != NULL) {
- vehicle_count++;
- if (p_phys_obj->As_VehicleGameObj()->Get_Driver() != NULL) {
- vehicle_driven_count++;
- }
- }
- }
- Add_Diagnostic("Vehicles: %d (%d with driver)", vehicle_count, vehicle_driven_count);
- //Add_Diagnostic("AreClientsTrusted: %d", cCsDamageEvent::Get_Are_Clients_Trusted());
- //Add_Diagnostic("DriverIsAlwaysGunner: %d", VehicleGameObj::Get_Driver_Is_Always_Gunner());
- //Add_Diagnostic("CameraLockedToTurret: %d", VehicleGameObj::Get_Camera_Locked_To_Turret());
- if (PTheGameData != NULL) {
- Add_Diagnostic("SpawnWeapons: %d", PTheGameData->SpawnWeapons.Get());
- /*
- StringClass mvp_name;
- PTheGameData->Get_Mvp_Name().Convert_To(mvp_name);
- Add_Diagnostic("MVP: %s", mvp_name.Peek_Buffer());
- */
- Add_Diagnostic("Win Type: %d", (int) PTheGameData->Get_Win_Type());
- Add_Diagnostic("DurationS: %u", (int) PTheGameData->Get_Game_Duration_S());
- }
- }
- #endif // WWDEBUG
- PRenderer->Render();
- }
- /*
- Add_Diagnostic("PTheGameData: %d", PTheGameData);
- if (PTheGameData != NULL) {
- Add_Diagnostic("ip addy: %s", cNetUtil::Address_To_String(
- PTheGameData->Get_Ip_Address()));
- Add_Diagnostic("owner: %s", PTheGameData->Get_Owner());
- Add_Diagnostic("map: %s", PTheGameData->Get_Map_Name());
- if (PTheGameData->Is_Lms()) {
- Add_Diagnostic("reap: %5.2f", The_Lms_Game()->Get_Reaper_Countdown_Seconds());
- }
- }
- //
- // Toss all the defunct diagnostics down here
- //
- if (cDevOptions::ShowMenuStack.Is_True()) {
- Add_Diagnostic("MENU STACK:");
- for (int i = 0; i <= MenuManager::Get_Current_Depth(); i++) {
- //Add_Diagnostic(" %-30s %d",
- // MenuManager::Get_Menu_Stack_Name_Element(i),
- // MenuManager::Get_Menu_Stack_Index_Element(i));
- Add_Diagnostic(" %-30s",
- MenuManager::Get_Menu_Stack_Name_Element(i));
- }
- }
- if (cNetwork::I_Am_Only_Client()) {
- Add_Diagnostic("CIM : %d", cUserOptions::ClientInterpolationModel.Get());
- }
- Add_Diagnostic("I_Am_Server: %d", cNetwork::I_Am_Server());
- Add_Diagnostic("I_Am_Client: %d", cNetwork::I_Am_Client());
- Add_Diagnostic("cNetwork::Get_Update_Count: %d", cNetwork::Get_Update_Count());
- if (cNetwork::I_Am_Client()) {
- cPlayer * p_me = cNetwork::Get_My_Player_Object();
- if (p_me == NULL) {
- Add_Diagnostic("p_me == NULL");
- } else {
- Add_Diagnostic("p_me != NULL");
- if (p_me->Is_Living()) {
- Add_Diagnostic("p_me->Is_Living()");
- } else {
- Add_Diagnostic("! p_me->Is_Living()");
- }
- Add_Diagnostic("p_me->Get_Spectatee_Id() == %d", p_me->Get_Spectatee_Id());
- }
- }
- //Add_Diagnostic("Menu elements = %d", MenuManager::Get_Count());
- //Add_Diagnostic("Get_Current_Entry_Index = %d", MenuManager::Get_Current_Entry_Index());
- if (cDevOptions::ShowMenuStack.Is_True()) {
- Add_Diagnostic("MENU STACK:");
- for (int i = 0; i <= MenuManager::Get_Current_Depth(); i++) {
- //Add_Diagnostic(" %-30s %d",
- // MenuManager::Get_Menu_Stack_Name_Element(i),
- // MenuManager::Get_Menu_Stack_Index_Element(i));
- Add_Diagnostic(" %-30s",
- MenuManager::Get_Menu_Stack_Name_Element(i));
- }
- }
- //Add_Diagnostic("Will_Be_Server: %d", cNetwork::Will_Be_Server());
- //Add_Diagnostic("Will_Be_Client: %d", cNetwork::Will_Be_Client());
- SLNode<BaseGameObj> * objnode;
- PhysicalGameObj * p_phys_obj;
- for (objnode = GameObjManager::Get_Game_Obj_List()->Head(); objnode; objnode = objnode->Next()) {
- WWASSERT(objnode->Data() != NULL);
- p_phys_obj = objnode->Data()->As_PhysicalGameObj();
- if (p_phys_obj != NULL && p_phys_obj->As_SoldierGameObj() != NULL) {
- Add_Diagnostic("Soldier: ID %d, Type %d",
- p_phys_obj->Get_ID(),
- p_phys_obj->Get_Player_Type());
- }
- }
- cRemoteHost * p_rhost = NULL;
- if (cNetwork::I_Am_Client_Server()) {
- p_rhost = cNetwork::Get_Server_Rhost(2);
- } else if (cNetwork::I_Am_Only_Server()) {
- p_rhost = cNetwork::Get_Server_Rhost(1);
- } else if (cNetwork::I_Am_Client()) {
- p_rhost = cNetwork::Get_Client_Rhost();
- }
- if (p_rhost != NULL) {
- float sample_target_bits = cNetUtil::Get_Net_Stats_Sample_Time_Ms() / 1000.0f * p_rhost->Get_Target_Bps();
- Add_Diagnostic("TargetBps : %d / %d",
- (int) sample_target_bits, p_rhost->Get_Target_Bps());
- Add_Diagnostic("STAT_BitsSent : %-d", p_rhost->Stats.StatSnapshot[STAT_BitsSent]);
- }
- if (cNetwork::I_Am_Server()) {
- for (int i = 0; i < 20; i++) {
- if (cNetwork::Get_Server_Rhost(i) != NULL) {
- Add_Diagnostic("Server rhost %d", i);
- }
- }
- }
- Add_Diagnostic("MENU STACK:");
- for (int i = 0; i <= MenuManager::Get_Current_Depth(); i++) {
- Add_Diagnostic(" %-30s %d",
- MenuManager::Get_Menu_Stack_Name_Element(i),
- MenuManager::Get_Menu_Stack_Index_Element(i));
- }
- Add_Diagnostic("menu_direction: %d", MenuManager::Get_Menu_Direction());
- Add_Diagnostic("SPG: %d", xxx);
- Add_Diagnostic("LEVEL : %s", SaveGameManager::Get_Level_Filename());
- if (cNetwork::I_Am_Server()) {
- Add_Diagnostic("Host 0 = %d", cNetwork::PServerConnection->Get_Remote_Host(0));
- Add_Diagnostic("Host 1 = %d", cNetwork::PServerConnection->Get_Remote_Host(1));
- }
- Add_Diagnostic("Duration: %d s", The_Game()->Get_Duration_Seconds());
- Add_Diagnostic("ServerQuickstart: %d", cUserOptions::ServerQuickstart.Get());
- Add_Diagnostic("ClientQuickstart: %d", cUserOptions::ClientQuickstart.Get());
- Add_Diagnostic("# teams = %d", cTeamManager::Count());
- Add_Diagnostic("Team: %d", cUserOptions::Get_Player_Type_Choice());
- Add_Diagnostic("Players: %d", cPlayerManager::Count());
- Add_Diagnostic("game channels: %d", cGameChannelList::Get_Chan_List()->Get_Count());
- extern int menu_direction;
- Add_Diagnostic("menu_direction: %d", MenuManager::Get_Menu_Direction());
- Add_Diagnostic("COMBAT ACTIVE: %d", GameModeManager::Find("Combat")->Is_Active());
- if (PLC != NULL) {
- Add_Diagnostic("Location: %s",
- Translate_Location(PLC->Get_Current_Location()));
- } else if (PWC != NULL) {
- Add_Diagnostic("Location: %s",
- Translate_Location(PWC->CurrentLocation));
- }
- Add_Diagnostic("ENTRIES:");
- int index = 0;
- MenuEntryClass * p_entry;
- do {
- p_entry = MenuManager::Find_Entry(index);
- if (p_entry != NULL) {
- Add_Diagnostic("%2d. %s (%d)",
- index, p_entry->Get_Name(), p_entry->Is_Cancel_Option());
- }
- index++;
- } while (p_entry != NULL);
- if (PWC != NULL) {
- SLNode<cNick> * objnode;
- for (objnode = PWC->Get_Banned_List()->Head(); objnode; objnode = objnode->Next()) {
- cNick * p_nick = objnode->Data();
- WWASSERT(p_nick != NULL);
- Add_Diagnostic("Banned : %s", p_nick->Nickname);
- }
- }
- */
- /*
- //#include "lcw.h"
- //
- // LCW - slow to compress, fast to decompress
- //
- char source[5000]; // datasize
- for (int i = 0; i < sizeof(source); i++) {
- source[i] = rand() % 256;
- }
- char dest[6000]; // >= datasize + datasize/128
- int retcode = LCW_Comp(source, dest, sizeof(source));
- Debug_Say(("Compressed down to %d bytes\n", retcode));
- */
- /*
- //#include "lzo.h"
- //
- // LZO - fast to compress, fast to decompress
- //
- #define SOURCE_BUFFER_SIZE 5000
- #define COMPRESSED_BUFFER_SIZE LZO_BUFFER_SIZE(SOURCE_BUFFER_SIZE)
- char source[SOURCE_BUFFER_SIZE];
- char dest[COMPRESSED_BUFFER_SIZE];
- char source2[SOURCE_BUFFER_SIZE];
- int source_size = sizeof(source);
- //
- // Put some data in source
- //
- for (int i = 0; i < source_size; i++) {
- source[i] = rand() % 256;
- }
- //
- // Compress
- //
- int compressed_size;
- int lzo_code = LZOCompressor::Compress((const lzo_byte *) source,
- (lzo_uint) source_size,
- (lzo_byte *) dest,
- (unsigned *) &compressed_size);
- WWASSERT(lzo_code == LZO_E_OK);
- WWASSERT(compressed_size <= COMPRESSED_BUFFER_SIZE);
- Debug_Say(("Compressed from %d to %d bytes\n",
- source_size, compressed_size));
- //
- // Decompress
- //
- int lzo_code_2;
- int decompressed_size;
- lzo_code_2 = LZOCompressor::Decompress((const lzo_byte*) dest,
- (lzo_uint) compressed_size,
- (lzo_byte*) source2,
- (unsigned *) &decompressed_size);
- WWASSERT(lzo_code_2 == LZO_E_OK);
- WWASSERT(decompressed_size <= SOURCE_BUFFER_SIZE);
- Debug_Say(("Decompressed from %d to %d bytes\n",
- compressed_size, decompressed_size));
- //
- // Compare with original
- //
- WWASSERT(decompressed_size == source_size);
- WWASSERT(memcmp(source, source2, source_size) == 0);
- */
- //void test(Vector3 v) {}
- //const Vector3 white = Vector3(1, 1, 1);
- //Vector3 test2(void) {return white;}
- /*
- #include "overlay.h"
- #include "langmode.h"
- #include "wolgmode.h"
- #include "chatshre.h"
- #include "useroptions.h"
- #include "menu.h"
- #include "playermanager.h"
- #include "gamechanlist.h"
- #include "menuentry.h"
- #include "savegame.h"
- #include "gameobjmanager.h"
- #include "gametype.h"
- #include "quat.h"
- #include "wwprofile.h"
- */
- //#include "nettgas.h"
- //sprintf(buffer, "SFPS %d", cNetwork::Get_Server_Fps());
- /*
- if (cNetwork::I_Am_Server() &&
- GameModeManager::Find("Combat")->Is_Active() &&
- The_Game() != NULL &&
- The_Game()->As_Lms() != NULL) {
- Add_Diagnostic("ReaperCountdownSeconds = %d",
- (int) The_Game()->As_Lms()->Get_Reaper_Countdown_Seconds());
- }
- */
- //#include "gdlms.h"
- //Add_Diagnostic("#delobjects: %d", NetworkObjectMgrClass::Get_Pending_Object_Count());
- //Add_Diagnostic("CSC Last Ping: %d ms", cClientPingManager::Get_Last_Round_Trip_Ping_Ms());
- //Add_Diagnostic("CSC Avg. Ping: %d ms", cClientPingManager::Compute_Average_Round_Trip_Ping_Ms());
- //#include "clientpingmanager.h"
- /*
- char buffer[20];
- RectClass rect;
- sprintf(buffer, "%d", RendererFps);
- rect = Render2DClass::Get_Screen_Resolution();
- PRenderer->Set_Location(Vector2(rect.Right - 25, rect.Top + 10));
- PRenderer->Draw_Text(buffer);
- if (cNetwork::I_Am_Only_Client())
- {
- WWASSERT(cServerFps::Get_Instance() != NULL);
- sprintf(buffer, "SFPS %d", RendererSFps);
- rect = Render2DClass::Get_Screen_Resolution();
- PRenderer->Set_Location(Vector2(rect.Right - 70, rect.Top + 20));
- PRenderer->Draw_Text(buffer);
- }
- */
- /*
- //
- // Strip the leading "APPPACKETTYPE_"
- //
- WWASSERT(::strlen(cAppPacketStats::Interpret_Type(i)) > 14);
- char name[200] = "";
- ::strcpy(name, &cAppPacketStats::Interpret_Type(i)[14]);
- int tally = cAppPacketStats::Get_Object_Tally(i);
- char line[1000];
- if (tally > 0)
- {
- ::sprintf(line, "%-3d %s", tally, name);
- }
- else
- {
- ::sprintf(line, " %s", name);
- }
- Add_Diagnostic(line);
- */
- /*
- #ifdef BETASERVER
- PRenderer->Reset();
- RectClass rect = Render2DClass::Get_Screen_Resolution();
- PRenderer->Set_Location(Vector2(rect.Left + 5, rect.Bottom - 10));
- PRenderer->Draw_Text("BETASERVER");
- PRenderer->Render();
- #endif // BETASERVER
- */
- //Add_Diagnostic("Is_Single_Player: %d", cSinglePlayerData::Is_Single_Player());
|