diff --git a/src/xrGame/GameObject.cpp b/src/xrGame/GameObject.cpp index ef2586b2463..0fae1492885 100644 --- a/src/xrGame/GameObject.cpp +++ b/src/xrGame/GameObject.cpp @@ -491,8 +491,8 @@ BOOL CGameObject::net_Spawn(CSE_Abstract* DC) { #pragma warning(push) #pragma warning(disable : 4238) - m_ini_file = new CInifile( - &IReader((void*)(*(O->m_ini_string)), O->m_ini_string.size()), FS.get_path("$game_config$")->m_Path); + IReader reader((void*)(*(O->m_ini_string)), O->m_ini_string.size()); + m_ini_file = new CInifile(&reader, FS.get_path("$game_config$")->m_Path); #pragma warning(pop) } diff --git a/src/xrGame/alife_object.cpp b/src/xrGame/alife_object.cpp index 85d3667913e..e994dbd7113 100644 --- a/src/xrGame/alife_object.cpp +++ b/src/xrGame/alife_object.cpp @@ -24,7 +24,8 @@ void CSE_ALifeObject::spawn_supplies(LPCSTR ini_string) #pragma warning(push) #pragma warning(disable : 4238) - CInifile ini(&IReader((void*)ini_string, xr_strlen(ini_string)), FS.get_path("$game_config$")->m_Path); + IReader reader((void*)ini_string, xr_strlen(ini_string)); + CInifile ini(&reader, FS.get_path("$game_config$")->m_Path); #pragma warning(pop) // Alundaio: This will spawn a single random section listed in [spawn_loadout] diff --git a/src/xrGame/alife_trader_abstract.cpp b/src/xrGame/alife_trader_abstract.cpp index af74a98c893..e4571f86706 100644 --- a/src/xrGame/alife_trader_abstract.cpp +++ b/src/xrGame/alife_trader_abstract.cpp @@ -49,8 +49,8 @@ void CSE_ALifeTraderAbstract::spawn_supplies() { #pragma warning(push) #pragma warning(disable : 4238) - CInifile ini(&IReader((void*)(*dynamic_object->m_ini_string), xr_strlen(dynamic_object->m_ini_string)), - FS.get_path("$game_config$")->m_Path); + IReader reader((void*)(*dynamic_object->m_ini_string), xr_strlen(dynamic_object->m_ini_string)); + CInifile ini(&reader, FS.get_path("$game_config$")->m_Path); #pragma warning(pop) if (ini.section_exist("dont_spawn_character_supplies")) diff --git a/src/xrServerEntities/script_ini_file_script.cpp b/src/xrServerEntities/script_ini_file_script.cpp index def72ee9360..3d0fc409329 100644 --- a/src/xrServerEntities/script_ini_file_script.cpp +++ b/src/xrServerEntities/script_ini_file_script.cpp @@ -37,8 +37,8 @@ bool r_line(CScriptIniFile* self, LPCSTR S, int L, luabind::string& N, luabind:: #pragma warning(disable : 4238) CScriptIniFile* create_ini_file(LPCSTR ini_string) { - return ((CScriptIniFile*)new CInifile( - &IReader((void*)ini_string, xr_strlen(ini_string)), FS.get_path("$game_config$")->m_Path)); + IReader reader((void*)ini_string, xr_strlen(ini_string)); + return ((CScriptIniFile*)new CInifile(&reader, FS.get_path("$game_config$")->m_Path)); } #pragma warning(pop) diff --git a/src/xrServerEntities/xrServer_Object_Base.cpp b/src/xrServerEntities/xrServer_Object_Base.cpp index 1425da566fb..487644bdf4b 100644 --- a/src/xrServerEntities/xrServer_Object_Base.cpp +++ b/src/xrServerEntities/xrServer_Object_Base.cpp @@ -157,13 +157,14 @@ IServerEntityShape* CSE_Abstract::shape() { return (nullptr); } CSE_Motion* CSE_Abstract::motion() { return (nullptr); } CInifile& CSE_Abstract::spawn_ini() { - if (!m_ini_file) + if (!m_ini_file) { #pragma warning(push) #pragma warning(disable : 4238) // XXX: what a casting mess.. Do we need to use shared_str for m_ini_string? - m_ini_file = - new CInifile(&IReader((void*)(*(m_ini_string)), m_ini_string.size()), FS.get_path(_game_config_)->m_Path); + IReader reader((void*)(*(m_ini_string)), m_ini_string.size()); + m_ini_file = new CInifile(&reader, FS.get_path(_game_config_)->m_Path); #pragma warning(pop) + } return (*m_ini_file); }