From f0c35ba9e9ac3d6c7371bcb29738722bf38d1c61 Mon Sep 17 00:00:00 2001 From: Dmitriy Date: Thu, 11 Jun 2015 14:19:52 +0300 Subject: [PATCH] save point, testing needed --- include/core.h | 14 +++---- include/resource.h | 4 +- source/basecode.cpp | 94 +++++++++++++++++++++++++------------------- source/combat.cpp | 2 +- source/interface.cpp | 48 +++++++++++----------- source/manager.cpp | 8 ++-- source/support.cpp | 21 +++------- 7 files changed, 96 insertions(+), 95 deletions(-) diff --git a/include/core.h b/include/core.h index fef85fb..b261dd6 100644 --- a/include/core.h +++ b/include/core.h @@ -1049,10 +1049,10 @@ private: bool OutOfBombTimer (void); void SelectLeaderEachTeam (int team); - Vector CheckToss (const Vector &start, Vector end); - Vector CheckThrow (const Vector &start, Vector end); - Vector GetAimPosition (void); - Vector CheckBombAudible (void); + const Vector &CheckToss (const Vector &start, Vector end); + const Vector &CheckThrow (const Vector &start, Vector end); + const Vector &GetAimPosition (void); + const Vector &CheckBombAudible (void); float GetZOffset (float distance); @@ -1345,7 +1345,8 @@ public: // grenades void UpdateActiveGrenades (void); - const Array GetActiveGrenades (void); + const Array &GetActiveGrenades (void); + inline bool HasActiveGrenades (void) { return !m_activeGrenades.IsEmpty (); @@ -1646,7 +1647,7 @@ extern const char *GetField (const char *string, int fieldId, bool endLine = fal extern const char *FormatBuffer (const char *format, ...); extern uint16 GenerateBuildNumber (void); -extern Vector GetEntityOrigin (edict_t *ent); +extern const Vector &GetEntityOrigin (edict_t *ent); extern void FreeLibraryMemory (void); extern void RoundInit (void); @@ -1660,7 +1661,6 @@ extern void DetectCSVersion (void); extern void PlaySound (edict_t *ent, const char *soundName); extern void ServerPrint (const char *format, ...); extern void ChartPrint (const char *format, ...); -extern void ServerPrintNoTag (const char *format, ...); extern void CenterPrint (const char *format, ...); extern void ClientPrint (edict_t *ent, int dest, const char *format, ...); extern void HudMessage (edict_t *ent, bool toCenter, Vector rgb, char *format, ...); diff --git a/include/resource.h b/include/resource.h index 37d956e..f728139 100644 --- a/include/resource.h +++ b/include/resource.h @@ -10,10 +10,10 @@ #pragma once // general product information -#define PRODUCT_NAME "YaPB" +#define PRODUCT_NAME "Yet Another POD-Bot" #define PRODUCT_VERSION "2.7" #define PRODUCT_AUTHOR "YaPB Dev Team" -#define PRODUCT_URL "http://yapb.jeefo.net/" +#define PRODUCT_URL "http://yapb.ru/" #define PRODUCT_EMAIL "dmitry@jeefo.net" #define PRODUCT_LOGTAG "YAPB" #define PRODUCT_DESCRIPTION PRODUCT_NAME " v" PRODUCT_VERSION " - The Counter-Strike Bot" diff --git a/source/basecode.cpp b/source/basecode.cpp index d03bc50..4bfcdff 100644 --- a/source/basecode.cpp +++ b/source/basecode.cpp @@ -246,27 +246,23 @@ void Bot::AvoidGrenades (void) if (!g_botManager->HasActiveGrenades ()) return; - edict_t *ent = m_avoidGrenade; - // check if old pointers to grenade is invalid - if (IsEntityNull (ent)) + if (IsEntityNull (m_avoidGrenade)) { m_avoidGrenade = NULL; m_needAvoidGrenade = 0; } - else if ((ent->v.flags & FL_ONGROUND) || (ent->v.effects & EF_NODRAW)) + else if ((m_avoidGrenade->v.flags & FL_ONGROUND) || (m_avoidGrenade->v.effects & EF_NODRAW)) { m_avoidGrenade = NULL; m_needAvoidGrenade = 0; } - ent = NULL; + Array activeGrenades = g_botManager->GetActiveGrenades (); // find all grenades on the map - while (!IsEntityNull (ent = FIND_ENTITY_BY_CLASSNAME (ent, "grenade"))) + IterateArray (activeGrenades, it) { - // if grenade is invisible don't care for it - if (ent->v.effects & EF_NODRAW) - continue; + edict_t *ent = activeGrenades[it]; // check if visible to the bot if (!EntityIsVisible (ent->v.origin) && InFieldOfView (ent->v.origin - EyePosition ()) > pev->fov / 2) @@ -277,7 +273,7 @@ void Bot::AvoidGrenades (void) { const Vector &position = (GetEntityOrigin (ent) - EyePosition ()).ToAngles (); - // don't look at flashbang + // don't look at flash bang if (!(m_states & STATE_SEEING_ENEMY)) { pev->v_angle.y = AngleNormalize (position.y + 180.0f); @@ -301,8 +297,8 @@ void Bot::AvoidGrenades (void) { MakeVectors (pev->v_angle); - Vector dirToPoint = (pev->origin - ent->v.origin).Normalize2D (); - Vector rightSide = g_pGlobals->v_right.Normalize2D (); + const Vector &dirToPoint = (pev->origin - ent->v.origin).Normalize2D (); + const Vector &rightSide = g_pGlobals->v_right.Normalize2D (); if ((dirToPoint | rightSide) > 0) m_needAvoidGrenade = -1; @@ -321,21 +317,25 @@ bool Bot::IsBehindSmokeClouds (edict_t *ent) if (!g_botManager->HasActiveGrenades ()) return false; - edict_t *pentGrenade = NULL; - Vector betweenUs = (ent->v.origin - pev->origin).Normalize (); + const Vector &betweenUs = (ent->v.origin - pev->origin).Normalize (); + Array activeGrenades = g_botManager->GetActiveGrenades (); - while (!IsEntityNull (pentGrenade = FIND_ENTITY_BY_CLASSNAME (pentGrenade, "grenade"))) + // find all grenades on the map + IterateArray (activeGrenades, it) { + edict_t *pentGrenade = activeGrenades[it]; + // if grenade is invisible don't care for it - if ((pentGrenade->v.effects & EF_NODRAW) || !(pentGrenade->v.flags & (FL_ONGROUND | FL_PARTIALGROUND)) || strcmp (STRING (pentGrenade->v.model) + 9, "smokegrenade.mdl")) + if (!(pentGrenade->v.flags & (FL_ONGROUND | FL_PARTIALGROUND)) || strcmp (STRING (pentGrenade->v.model) + 9, "smokegrenade.mdl")) continue; // check if visible to the bot if (!EntityIsVisible (ent->v.origin) && InFieldOfView (ent->v.origin - EyePosition ()) > pev->fov / 3) continue; - Vector betweenNade = (GetEntityOrigin (pentGrenade) - pev->origin).Normalize (); - Vector betweenResult = ((Vector (betweenNade.y, betweenNade.x, 0) * 150.0 + GetEntityOrigin (pentGrenade)) - pev->origin).Normalize (); + const Vector &entityOrigin = GetEntityOrigin (pentGrenade); + const Vector &betweenNade = (entityOrigin - pev->origin).Normalize (); + const Vector &betweenResult = ((Vector (betweenNade.y, betweenNade.x, 0) * 150.0 + entityOrigin) - pev->origin).Normalize (); if ((betweenNade | betweenUs) > (betweenNade | betweenResult)) return true; @@ -533,26 +533,29 @@ void Bot::FindItem (void) bool allowPickup = false; float distance, minDistance = 341.0; + const float searchRadius = 340.0f; if (!IsEntityNull (m_pickupItem)) { bool itemExists = false; pickupItem = m_pickupItem; - while (!IsEntityNull (ent = FIND_ENTITY_IN_SPHERE (ent, pev->origin, 340.0))) + while (!IsEntityNull (ent = FIND_ENTITY_IN_SPHERE (ent, pev->origin, searchRadius))) { if ((ent->v.effects & EF_NODRAW) || IsValidPlayer (ent->v.owner)) - continue; // someone owns this weapon or it hasn't respawned yet + continue; // someone owns this weapon or it hasn't re spawned yet if (ent == pickupItem) { if (ItemIsVisible (GetEntityOrigin (ent), const_cast (STRING (ent->v.classname)))) itemExists = true; + break; } } if (itemExists) return; + else { m_pickupItem = NULL; @@ -571,7 +574,7 @@ void Bot::FindItem (void) m_pickupItem = NULL; m_pickupType = PICKUP_NONE; - while (!IsEntityNull (ent = FIND_ENTITY_IN_SPHERE (ent, pev->origin, 340.0))) + while (!IsEntityNull (ent = FIND_ENTITY_IN_SPHERE (ent, pev->origin, searchRadius))) { allowPickup = false; // assume can't use it until known otherwise @@ -665,7 +668,7 @@ void Bot::FindItem (void) if (pickupType == PICKUP_DROPPED_C4) { allowPickup = true; - m_destOrigin = entityOrigin; // ensure we reached droped bomb + m_destOrigin = entityOrigin; // ensure we reached dropped bomb ChatterMessage (Chatter_FoundC4); // play info about that DeleteSearchNodes (); @@ -855,7 +858,7 @@ void Bot::GetCampDirection (Vector *dest) // mostly used for getting a good camping direction vector if not camping on a camp waypoint TraceResult tr; - Vector src = EyePosition (); + const Vector &src = EyePosition (); TraceLine (src, *dest, true, GetEntity (), &tr); @@ -1897,7 +1900,7 @@ void Bot::SetConditions (void) if (allowThrowing && m_seeEnemyTime + 2.0 < GetWorldTime ()) { - Vector enemyPredict = ((m_lastEnemy->v.velocity * 0.5).SkipZ () + m_lastEnemy->v.origin); + const Vector &enemyPredict = ((m_lastEnemy->v.velocity * 0.5).SkipZ () + m_lastEnemy->v.origin); int searchTab[4], count = 4; float searchRadius = m_lastEnemy->v.velocity.GetLength2D (); @@ -3007,7 +3010,7 @@ void Bot::ChooseAimDirection (void) { if ((g_experienceData + (index * g_numWaypoints) + index)->team0DangerIndex != -1) { - Vector dest = g_waypoint->GetPath ((g_experienceData + (index * g_numWaypoints) + index)->team0DangerIndex)->origin; + const Vector &dest = g_waypoint->GetPath ((g_experienceData + (index * g_numWaypoints) + index)->team0DangerIndex)->origin; TraceLine (pev->origin, dest, true, GetEntity (), &tr); if (tr.flFraction > 0.8 || tr.pHit != g_worldEdict) @@ -3018,7 +3021,7 @@ void Bot::ChooseAimDirection (void) { if ((g_experienceData + (index * g_numWaypoints) + index)->team1DangerIndex != -1) { - Vector dest = g_waypoint->GetPath ((g_experienceData + (index * g_numWaypoints) + index)->team1DangerIndex)->origin; + const Vector &dest = g_waypoint->GetPath ((g_experienceData + (index * g_numWaypoints) + index)->team1DangerIndex)->origin; TraceLine (pev->origin, dest, true, GetEntity (), &tr); if (tr.flFraction > 0.8 || tr.pHit != g_worldEdict) @@ -3734,7 +3737,7 @@ void Bot::RunTask (void) int foundPoints[3]; int distanceTab[3]; - Vector dotA = (destination - pev->origin).Normalize2D (); + const Vector &dotA = (destination - pev->origin).Normalize2D (); for (i = 0; i < g_numWaypoints; i++) { @@ -3742,7 +3745,7 @@ void Bot::RunTask (void) if (!g_waypoint->IsVisible (m_currentWaypointIndex, i) || (i == m_currentWaypointIndex)) continue; - Vector dotB = (g_waypoint->GetPath (i)->origin - pev->origin).Normalize2D (); + const Vector &dotB = (g_waypoint->GetPath (i)->origin - pev->origin).Normalize2D (); if ((dotA | dotB) > 0.9) { @@ -4260,9 +4263,13 @@ void Bot::RunTask (void) else { edict_t *ent = NULL; + Array activeGrenades = g_botManager->GetActiveGrenades (); - while (!IsEntityNull (ent = FIND_ENTITY_BY_CLASSNAME (ent, "grenade"))) + // find all grenades on the map + IterateArray (activeGrenades, it) { + ent = activeGrenades[it]; + if (ent->v.owner == GetEntity () && strcmp (STRING (ent->v.model) + 9, "hegrenade.mdl") == 0) { // set the correct velocity for the grenade @@ -4326,8 +4333,13 @@ void Bot::RunTask (void) else { edict_t *ent = NULL; - while (!IsEntityNull (ent = FIND_ENTITY_BY_CLASSNAME (ent, "grenade"))) + Array activeGrenades = g_botManager->GetActiveGrenades (); + + // find all grenades on the map + IterateArray (activeGrenades, it) { + ent = activeGrenades[it]; + if (ent->v.owner == GetEntity () && strcmp (STRING (ent->v.model) + 9, "flashbang.mdl") == 0) { // set the correct velocity for the grenade @@ -4913,10 +4925,10 @@ void Bot::BotAI (void) SetIdealReactionTimes (); // calculate 2 direction vectors, 1 without the up/down component - Vector directionOld = m_destOrigin - (pev->origin + pev->velocity * m_frameInterval); + const Vector &directionOld = m_destOrigin - (pev->origin + pev->velocity * m_frameInterval); Vector directionNormal = directionOld.Normalize (); - Vector direction = directionNormal; + const Vector &direction = directionNormal; directionNormal.z = 0.0; m_moveAngles = directionOld.ToAngles (); @@ -5251,13 +5263,13 @@ void Bot::BotAI (void) while (node != NULL) { - Vector srcPath = g_waypoint->GetPath (node->index)->origin; + const Vector &srcPath = g_waypoint->GetPath (node->index)->origin; node = node->next; if (node != NULL) { - Vector dest = g_waypoint->GetPath (node->index)->origin; - DrawArrow (g_hostEntity, srcPath, dest, 15, 0, 255, 100, 55, 200, 5, 1); + const Vector &dstPath = g_waypoint->GetPath (node->index)->origin; + DrawArrow (g_hostEntity, srcPath, dstPath, 15, 0, 255, 100, 55, 200, 5, 1); } } } @@ -5640,13 +5652,13 @@ void Bot::DebugMsg (const char *format, ...) vsprintf (buffer, format, ap); va_end (ap); - ServerPrintNoTag ("%s: %s", STRING (pev->netname), buffer); + ServerPrint ("%s: %s", STRING (pev->netname), buffer); if (yb_debug.GetInt () >= 3) AddLogEntry (false, LL_DEFAULT, "%s: %s", STRING (pev->netname), buffer); } -Vector Bot::CheckToss (const Vector &start, Vector end) +const Vector &Bot::CheckToss (const Vector &start, Vector end) { // this function returns the velocity at which an object should looped from start to land near end. // returns null vector if toss is not feasible. @@ -5701,7 +5713,7 @@ Vector Bot::CheckToss (const Vector &start, Vector end) return nadeVelocity * 0.777; } -Vector Bot::CheckThrow (const Vector &start, Vector end) +const Vector &Bot::CheckThrow (const Vector &start, Vector end) { // this function returns the velocity vector at which an object should be thrown from start to hit end. // returns null vector if throw is not feasible. @@ -5740,7 +5752,7 @@ Vector Bot::CheckThrow (const Vector &start, Vector end) return nadeVelocity * 0.7793; } -Vector Bot::CheckBombAudible (void) +const Vector &Bot::CheckBombAudible (void) { // this function checks if bomb is can be heard by the bot, calculations done by manual testing. @@ -5750,7 +5762,7 @@ Vector Bot::CheckBombAudible (void) if (m_difficulty >= 3) return g_waypoint->GetBombPosition(); - Vector bombOrigin = g_waypoint->GetBombPosition (); + const Vector &bombOrigin = g_waypoint->GetBombPosition (); float timeElapsed = ((GetWorldTime () - g_timeBombPlanted) / mp_c4timer.GetFloat ()) * 100; float desiredRadius = 768.0; @@ -5925,7 +5937,7 @@ bool Bot::OutOfBombTimer (void) if (timeLeft > 16) return false; - Vector bombOrigin = g_waypoint->GetBombPosition (); + const Vector &bombOrigin = g_waypoint->GetBombPosition (); // for terrorist, if timer is lower than eleven seconds, return true if (static_cast (timeLeft) < 16 && m_team == TEAM_TF && (bombOrigin - pev->origin).GetLength () < 1000) diff --git a/source/combat.cpp b/source/combat.cpp index 4bc7ca0..64cc786 100644 --- a/source/combat.cpp +++ b/source/combat.cpp @@ -271,7 +271,7 @@ bool Bot::LookupEnemy (void) return false; } -Vector Bot::GetAimPosition (void) +const Vector &Bot::GetAimPosition (void) { // the purpose of this function, is to make bot aiming not so ideal. it's mutate m_enemyOrigin enemy vector // returned from visibility check function. diff --git a/source/interface.cpp b/source/interface.cpp index d7e2372..e5d06fc 100644 --- a/source/interface.cpp +++ b/source/interface.cpp @@ -165,7 +165,7 @@ int BotCommandHandler (edict_t *ent, const char *arg0, const char *arg1, const c "------------------------------------------------\n" "Name: %s\n" "Version: %s (Build: %u)\n" - "Compiled: %s, %s +300 (GMT)\n" + "Compiled: %s, %s tz: +3\n" "------------------------------------------------"; ClientPrint (ent, print_console, versionData, PRODUCT_NAME, PRODUCT_VERSION, GenerateBuildNumber (), __DATE__, __TIME__); @@ -201,27 +201,27 @@ int BotCommandHandler (edict_t *ent, const char *arg0, const char *arg1, const c if (!IsDedicatedServer ()) { - ServerPrintNoTag ("yapb autowp - toggle autowppointing."); - ServerPrintNoTag ("yapb wp - toggle waypoint showing."); - ServerPrintNoTag ("yapb wp on noclip - enable noclip cheat"); - ServerPrintNoTag ("yapb wp save nocheck - save waypoints without checking."); - ServerPrintNoTag ("yapb wp add - open menu for waypoint creation."); - ServerPrintNoTag ("yapb wp menu - open main waypoint menu."); - ServerPrintNoTag ("yapb wp addbasic - creates basic waypoints on map."); - ServerPrintNoTag ("yapb wp find - show direction to specified waypoint."); - ServerPrintNoTag ("yapb wp load - wload the waypoint file from hard disk."); - ServerPrintNoTag ("yapb wp check - checks if all waypoints connections are valid."); - ServerPrintNoTag ("yapb wp cache - cache nearest waypoint."); - ServerPrintNoTag ("yapb wp teleport - teleport hostile to specified waypoint."); - ServerPrintNoTag ("yapb wp setradius - manually sets the wayzone radius for this waypoint."); - ServerPrintNoTag ("yapb path autodistance - opens menu for setting autopath maximum distance."); - ServerPrintNoTag ("yapb path cache - remember the nearest to player waypoint."); - ServerPrintNoTag ("yapb path create - opens menu for path creation."); - ServerPrintNoTag ("yapb path delete - delete path from cached to nearest waypoint."); - ServerPrintNoTag ("yapb path create_in - creating incoming path connection."); - ServerPrintNoTag ("yapb path create_out - creating outgoing path connection."); - ServerPrintNoTag ("yapb path create_both - creating both-ways path connection."); - ServerPrintNoTag ("yapb exp save - save the experience data."); + ServerPrint ("yapb autowp - toggle autowppointing."); + ServerPrint ("yapb wp - toggle waypoint showing."); + ServerPrint ("yapb wp on noclip - enable noclip cheat"); + ServerPrint ("yapb wp save nocheck - save waypoints without checking."); + ServerPrint ("yapb wp add - open menu for waypoint creation."); + ServerPrint ("yapb wp menu - open main waypoint menu."); + ServerPrint ("yapb wp addbasic - creates basic waypoints on map."); + ServerPrint ("yapb wp find - show direction to specified waypoint."); + ServerPrint ("yapb wp load - wload the waypoint file from hard disk."); + ServerPrint ("yapb wp check - checks if all waypoints connections are valid."); + ServerPrint ("yapb wp cache - cache nearest waypoint."); + ServerPrint ("yapb wp teleport - teleport hostile to specified waypoint."); + ServerPrint ("yapb wp setradius - manually sets the wayzone radius for this waypoint."); + ServerPrint ("yapb path autodistance - opens menu for setting autopath maximum distance."); + ServerPrint ("yapb path cache - remember the nearest to player waypoint."); + ServerPrint ("yapb path create - opens menu for path creation."); + ServerPrint ("yapb path delete - delete path from cached to nearest waypoint."); + ServerPrint ("yapb path create_in - creating incoming path connection."); + ServerPrint ("yapb path create_out - creating outgoing path connection."); + ServerPrint ("yapb path create_both - creating both-ways path connection."); + ServerPrint ("yapb exp save - save the experience data."); } } } @@ -249,7 +249,7 @@ int BotCommandHandler (edict_t *ent, const char *arg0, const char *arg1, const c if (stricmp (arg0, "randgen") == 0) { for (int i = 0; i < 500; i++) - ServerPrintNoTag ("Result Range[0 - 100]: %d", Random.Long (0, 100)); + ServerPrint ("Result Range[0 - 100]: %d", Random.Long (0, 100)); } #if defined (MMGR_H) // dump memory information @@ -1440,7 +1440,7 @@ void ClientCommand (edict_t *ent) if (path->flags & FLAG_NOHOSTAGE) noHostagePoints++; } - ServerPrintNoTag ("Waypoints: %d - T Points: %d\n" + ServerPrint ("Waypoints: %d - T Points: %d\n" "CT Points: %d - Goal Points: %d\n" "Rescue Points: %d - Camp Points: %d\n" "Block Hostage Points: %d - Sniper Points: %d\n", g_numWaypoints, terrPoints, ctPoints, goalPoints, rescuePoints, campPoints, noHostagePoints, sniperPoints); diff --git a/source/manager.cpp b/source/manager.cpp index eddcc6c..a140d4b 100644 --- a/source/manager.cpp +++ b/source/manager.cpp @@ -244,7 +244,7 @@ void BotManager::Think (void) // error occurred. kick off all bots and then print a warning message RemoveAll (); - ServerPrintNoTag ("**** INTERNAL BOT ERROR! PLEASE SHUTDOWN AND RESTART YOUR SERVER! ****"); + ServerPrint ("**** INTERNAL BOT ERROR! PLEASE SHUTDOWN AND RESTART YOUR SERVER! ****"); } #else m_bots[i]->Think (); @@ -612,7 +612,7 @@ void BotManager::ListBots (void) { // this function list's bots currently playing on the server - ServerPrintNoTag ("%-3.5s %-9.13s %-17.18s %-3.4s %-3.4s %-3.4s", "index", "name", "personality", "team", "difficulty", "frags"); + ServerPrint ("%-3.5s %-9.13s %-17.18s %-3.4s %-3.4s %-3.4s", "index", "name", "personality", "team", "difficulty", "frags"); for (int i = 0; i < GetMaxClients (); i++) { @@ -624,7 +624,7 @@ void BotManager::ListBots (void) Bot *bot = GetBot (player); if (bot != NULL) - ServerPrintNoTag ("[%-3.1d] %-9.13s %-17.18s %-3.4s %-3.1d %-3.1d", i, STRING (player->v.netname), bot->m_personality == PERSONALITY_RUSHER ? "rusher" : bot->m_personality == PERSONALITY_NORMAL ? "normal" : "careful", GetTeam (player) != 0 ? "CT" : "T", bot->m_difficulty, static_cast (player->v.frags)); + ServerPrint ("[%-3.1d] %-9.13s %-17.18s %-3.4s %-3.1d %-3.1d", i, STRING (player->v.netname), bot->m_personality == PERSONALITY_RUSHER ? "rusher" : bot->m_personality == PERSONALITY_NORMAL ? "normal" : "careful", GetTeam (player) != 0 ? "CT" : "T", bot->m_difficulty, static_cast (player->v.frags)); } } } @@ -1366,7 +1366,7 @@ void BotManager::UpdateActiveGrenades (void) } } -const Array BotManager::GetActiveGrenades (void) +const Array &BotManager::GetActiveGrenades (void) { return m_activeGrenades; } \ No newline at end of file diff --git a/source/support.cpp b/source/support.cpp index e1ac758..06f735f 100644 --- a/source/support.cpp +++ b/source/support.cpp @@ -136,7 +136,7 @@ bool IsVisible (const Vector &origin, edict_t *ent) return true; // line of sight is valid. } -Vector GetEntityOrigin (edict_t *ent) +const Vector &GetEntityOrigin (edict_t *ent) { // this expanded function returns the vector origin of a bounded entity, assuming that any // entity that has a bounding box has its center at the center of the bounding box itself. @@ -881,19 +881,8 @@ void ServerPrint (const char *format, ...) vsprintf (string, g_localizer->TranslateInput (format), ap); va_end (ap); - SERVER_PRINT (FormatBuffer ("%s\n", string)); -} - -void ServerPrintNoTag (const char *format, ...) -{ - va_list ap; - char string[3072]; - - va_start (ap, format); - vsprintf (string, g_localizer->TranslateInput (format), ap); - va_end (ap); - - SERVER_PRINT (FormatBuffer ("%s\n", string)); + SERVER_PRINT (string); + SERVER_PRINT ("\n"); } void CenterPrint (const char *format, ...) @@ -954,7 +943,7 @@ void ClientPrint (edict_t *ent, int dest, const char *format, ...) if (dest & 0x3ff) ServerPrint (string); else - ServerPrintNoTag (string); + ServerPrint (string); return; } @@ -1206,7 +1195,7 @@ void AddLogEntry (bool outputToConsole, int logLevel, const char *format, ...) } if (outputToConsole) - ServerPrintNoTag ("%s%s", levelString, buffer); + ServerPrint ("%s%s", levelString, buffer); // now check if logging disabled if (!(logLevel & LL_IGNORE))