diff --git a/source/ps/Network/NMTCreator.h b/source/ps/Network/NMTCreator.h index d9dd5c5107..e007494779 100755 --- a/source/ps/Network/NMTCreator.h +++ b/source/ps/Network/NMTCreator.h @@ -94,6 +94,8 @@ struct _nm: public CNetMessage \ #ifdef NMT_CREATOR_IMPLEMENT +#include "StringConverters.h" + /*************************************************************************/ // Pass 2, GetSerializedLength #define NMT_CREATOR_PASS_GETLENGTH @@ -270,12 +272,12 @@ CStr _nm::GetString() const \ #define NMT_FIELD_INT(_nm, _hosttp, _netsz) \ ret += #_nm _T(": "); \ - ret += CStr(thiz->_nm); \ + ret += NetMessageStringConvert(thiz->_nm); \ ret += _T(", "); #define NMT_FIELD(_tp, _nm) \ ret += #_nm _T(": "); \ - ret += CStr(thiz->_nm); \ + ret += NetMessageStringConvert(thiz->_nm); \ ret += _T(", "); #define END_NMT_CLASS() \ diff --git a/source/ps/Network/StringConverters.h b/source/ps/Network/StringConverters.h new file mode 100755 index 0000000000..18c8be75ff --- /dev/null +++ b/source/ps/Network/StringConverters.h @@ -0,0 +1,23 @@ +#ifndef _StringConverters_H +#define _StringConverters_H + +#include "CStr.h" +#include "simulation/EntityHandles.h" + +template +CStr NetMessageStringConvert(const _T &arg); + +// String Converters +template +inline CStr NetMessageStringConvert(const _T &arg) +{ + return CStr(arg); +} + +template <> +inline CStr NetMessageStringConvert(const HEntity &arg) +{ + return arg.operator CStr8(); +} + +#endif