From 743767610a940232bcab0313cf3886136ffa9e66 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Tue, 29 Jun 2004 06:56:31 +0000 Subject: [PATCH] Removed std::string --- dlls/engine/engine.h | 1 - dlls/engine/messages.cpp | 28 +++++++++++++++++++--------- dlls/engine/messages.h | 2 +- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/dlls/engine/engine.h b/dlls/engine/engine.h index 76b3b37d..b1127076 100755 --- a/dlls/engine/engine.h +++ b/dlls/engine/engine.h @@ -1,7 +1,6 @@ #ifndef _ENGINE_INCLUDE_H #define _ENGINE_INCLUDE_H -#include #include #include #include diff --git a/dlls/engine/messages.cpp b/dlls/engine/messages.cpp index 700dcc2d..b691d0ab 100755 --- a/dlls/engine/messages.cpp +++ b/dlls/engine/messages.cpp @@ -1,7 +1,5 @@ #include "engine.h" -using namespace std; - CVector Msg; int msgHooks[256] = {0}; int msgBlocks[256] = {0}; @@ -22,7 +20,11 @@ void argMsg::Reset() { iData = 0; fData = 0.0; - cData.assign(""); + if (cData) + { + delete [] cData; + cData = NULL; + } type = 0; } @@ -49,7 +51,7 @@ void argMsg::Send() WRITE_COORD(fData); break; case arg_string: - WRITE_STRING(cData.c_str()); + WRITE_STRING(cData); break; case arg_entity: WRITE_ENTITY(iData); @@ -236,11 +238,15 @@ void WriteString(const char *sz) } else if (inhook) { if (++msgCount > Msg.size()) { argMsg *p = new argMsg(); - p->cData.assign(sz); + p->cData = new char[strlen(sz)+1]; + strcpy(p->cData, sz); + p->cData[strlen(sz)] = 0; p->type = arg_string; Msg.push_back(p); } else { - Msg[msgCount-1]->cData.assign(sz); + Msg[msgCount-1]->cData = new char[strlen(sz)+1]; + strcpy(Msg[msgCount-1]->cData, sz); + Msg[msgCount-1]->cData[strlen(sz)] = 0; Msg[msgCount-1]->type = arg_string; } RETURN_META(MRES_SUPERCEDE); @@ -417,9 +423,9 @@ static cell AMX_NATIVE_CALL get_msg_arg_string(AMX *amx, cell *params) return 0; } - const char *szVal = Msg[argn]->cData.c_str(); + const char *szVal = Msg[argn]->cData; - return MF_SetAmxString(amx, params[2], szVal, params[3]); + return MF_SetAmxString(amx, params[2], szVal?szVal:"", params[3]); } static cell AMX_NATIVE_CALL set_msg_arg_string(AMX *amx, cell *params) @@ -434,7 +440,11 @@ static cell AMX_NATIVE_CALL set_msg_arg_string(AMX *amx, cell *params) char *szVal = MF_GetAmxString(amx, params[2], 0, &iLen); - Msg[argn]->cData.assign(szVal); + if (Msg[argn]->cData) + delete [] Msg[argn]->cData; + Msg[argn]->cData = new char[strlen(szVal)+1]; + strcpy(Msg[argn]->cData, szVal); + Msg[argn]->cData[strlen(szVal)] = 0; return 1; } diff --git a/dlls/engine/messages.h b/dlls/engine/messages.h index 60ecf619..e8d268f2 100755 --- a/dlls/engine/messages.h +++ b/dlls/engine/messages.h @@ -36,7 +36,7 @@ public: int type; REAL fData; - std::string cData; + char *cData; int iData; };