From aadf182dfef9582f326054c41dc0db200cbf9e97 Mon Sep 17 00:00:00 2001
From: D-AIRY <admin@ds-servers.com>
Date: Wed, 9 May 2018 00:16:18 +0300
Subject: [PATCH] string updates; project updates

---
 proj/SkyXEngine/vs2013/SkyXEngine.vcxproj     |   2 +-
 proj/sxaigrid/vs2013/sxaigrid.vcxproj         |   2 +-
 proj/sxanim/vs2013/sxanim.vcxproj             |   2 +-
 proj/sxcore/vs2013/sxcore.vcxproj             |   2 +-
 proj/sxdecals/vs2013/sxdecals.vcxproj         |   2 +-
 proj/sxgame/vs2013/sxgame.vcxproj             |   2 +-
 proj/sxgcore/vs2013/sxgcore.vcxproj           |   2 +-
 proj/sxgenpreview/vs2013/sxgenpreview.vcxproj |   1 +
 proj/sxgeom/vs2013/sxgeom.vcxproj             |   2 +-
 proj/sxguiwinapi/vs2013/sxguiwinapi.vcxproj   |   2 +-
 proj/sxinput/vs2013/sxinput.vcxproj           |   2 +-
 .../vs2013/sxleveleditor.vcxproj              |   3 +-
 .../vs2013/sxmaterialeditor.vcxproj           |   1 +
 proj/sxmtllight/vs2013/sxmtllight.vcxproj     |   2 +-
 proj/sxparticles/vs2013/sxparticles.vcxproj   |   2 +-
 .../vs2013/sxparticleseditor.vcxproj          |   1 +
 proj/sxphysics/vs2013/sxphysics.vcxproj       |   2 +-
 proj/sxpp/vs2013/sxpp.vcxproj                 |   2 +-
 proj/sxscore/vs2013/sxscore.vcxproj           |   2 +-
 proj/sxwincreator/vs2013/sxwincreator.vcxproj |   1 +
 .../libogg/win32/VS2010/libogg_static.vcxproj |   2 +-
 .../VS2010/libvorbis/libvorbis_static.vcxproj |   2 +-
 .../libvorbisfile_static.vcxproj              |   2 +-
 source/common                                 |   2 +-
 source/core/Config.cpp                        |  10 +-
 source/core/Config.h                          |  26 +--
 source/game/CrosshairManager.cpp              |   2 +-
 source/gcore/shader.cpp                       |   6 +
 source/geom/green.h                           |   1 +
 source/geom/static_geom.h                     |   1 +
 source/level/weather.cpp                      |  18 +-
 source/mtllight/light.cpp                     |  14 +-
 source/mtllight/light.h                       |   4 +-
 source/mtllight/material.cpp                  |  82 ++++----
 source/mtllight/sxmtllight.cpp                |   4 +-
 source/particles/effect.cpp                   | 182 +++++++++---------
 source/score/sound.h                          |  25 +--
 source/skyxengine.cpp                         |   2 +-
 source/sxgenpreview/sxgenpreview.cpp          |   4 +-
 source/sxleveleditor/common_callback.cpp      |   2 +-
 source/sxleveleditor/game_callback.cpp        |   2 +-
 source/sxmaterialeditor/paraml_kit.cpp        |   8 +-
 source/sxmaterialeditor/shaders_kit.cpp       |   2 +-
 source/sxparticleseditor/callback_common.cpp  |  22 +--
 44 files changed, 226 insertions(+), 236 deletions(-)

diff --git a/proj/SkyXEngine/vs2013/SkyXEngine.vcxproj b/proj/SkyXEngine/vs2013/SkyXEngine.vcxproj
index c6b3a9fb2..ee6a20731 100644
--- a/proj/SkyXEngine/vs2013/SkyXEngine.vcxproj
+++ b/proj/SkyXEngine/vs2013/SkyXEngine.vcxproj
@@ -40,7 +40,7 @@
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <LinkIncremental>true</LinkIncremental>
+    <LinkIncremental>false</LinkIncremental>
     <OutDir>../../../build/</OutDir>
     <TargetName>$(ProjectName)_d</TargetName>
     <IncludePath>../../../source;../../../sdks/bullet3/src;$(VC_IncludePath);$(WindowsSDK_IncludePath);../../../sdks/dx9sdk/Include;../../../sdks/ogg/libvorbis/include/;../../../sdks/ogg/libogg/include/;</IncludePath>
diff --git a/proj/sxaigrid/vs2013/sxaigrid.vcxproj b/proj/sxaigrid/vs2013/sxaigrid.vcxproj
index 5ef8eddc7..96ab4b14f 100644
--- a/proj/sxaigrid/vs2013/sxaigrid.vcxproj
+++ b/proj/sxaigrid/vs2013/sxaigrid.vcxproj
@@ -40,7 +40,7 @@
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <LinkIncremental>true</LinkIncremental>
+    <LinkIncremental>false</LinkIncremental>
     <OutDir>../../../build/</OutDir>
     <TargetName>$(ProjectName)_d</TargetName>
     <IncludePath>../../../source;$(VC_IncludePath);$(WindowsSDK_IncludePath);../../../sdks/dx9sdk/Include</IncludePath>
diff --git a/proj/sxanim/vs2013/sxanim.vcxproj b/proj/sxanim/vs2013/sxanim.vcxproj
index 87d4e7a17..f737df158 100644
--- a/proj/sxanim/vs2013/sxanim.vcxproj
+++ b/proj/sxanim/vs2013/sxanim.vcxproj
@@ -41,7 +41,7 @@
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <LinkIncremental>true</LinkIncremental>
+    <LinkIncremental>false</LinkIncremental>
     <OutDir>../../../build/</OutDir>
     <TargetName>$(ProjectName)_d</TargetName>
     <IncludePath>$(IncludePath);$(WindowsSdk_71A_IncludePath);../../../source;../../../sdks/dx9sdk/Include;</IncludePath>
diff --git a/proj/sxcore/vs2013/sxcore.vcxproj b/proj/sxcore/vs2013/sxcore.vcxproj
index 3aeefd39a..89a7dcec5 100644
--- a/proj/sxcore/vs2013/sxcore.vcxproj
+++ b/proj/sxcore/vs2013/sxcore.vcxproj
@@ -81,7 +81,7 @@
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <LinkIncremental>true</LinkIncremental>
+    <LinkIncremental>false</LinkIncremental>
     <TargetName>$(ProjectName)_d</TargetName>
     <IncludePath>../../../source;$(VC_IncludePath);$(WindowsSDK_IncludePath);../../../sdks/dx9sdk/Include</IncludePath>
     <LibraryPath>../../../libs;$(LibraryPath);$(WindowsSDK_LibraryPath_x86);../../../sdks/dx9sdk/Lib</LibraryPath>
diff --git a/proj/sxdecals/vs2013/sxdecals.vcxproj b/proj/sxdecals/vs2013/sxdecals.vcxproj
index 1b227e27c..7fc9431be 100644
--- a/proj/sxdecals/vs2013/sxdecals.vcxproj
+++ b/proj/sxdecals/vs2013/sxdecals.vcxproj
@@ -49,7 +49,7 @@
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <LinkIncremental>true</LinkIncremental>
+    <LinkIncremental>false</LinkIncremental>
     <OutDir>../../../build/</OutDir>
     <IncludePath>../../../source;../../../sdks/bullet3/src;$(VC_IncludePath);$(WindowsSdk_71A_IncludePath);../../../sdks/dx9sdk/Include;</IncludePath>
     <LibraryPath>../../../sdks/dx9sdk/Lib;../../../sdks/bullet3/bin;../../../libs;$(VC_LibraryPath_x86);$(WindowsSdk_71A_LibraryPath_x86);</LibraryPath>
diff --git a/proj/sxgame/vs2013/sxgame.vcxproj b/proj/sxgame/vs2013/sxgame.vcxproj
index f4c7b56df..290e27198 100644
--- a/proj/sxgame/vs2013/sxgame.vcxproj
+++ b/proj/sxgame/vs2013/sxgame.vcxproj
@@ -40,7 +40,7 @@
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <LinkIncremental>true</LinkIncremental>
+    <LinkIncremental>false</LinkIncremental>
     <OutDir>../../../build/</OutDir>
     <IncludePath>../../../source;../../../sdks/bullet3/src;$(VC_IncludePath);$(WindowsSdk_71A_IncludePath);;../../../sdks/dx9sdk/Include;</IncludePath>
     <LibraryPath>../../../libs;$(VC_LibraryPath_x86);$(WindowsSdk_71A_LibraryPath_x86);;../../../sdks/dx9sdk/Lib;</LibraryPath>
diff --git a/proj/sxgcore/vs2013/sxgcore.vcxproj b/proj/sxgcore/vs2013/sxgcore.vcxproj
index d74f390dc..5b708ec45 100644
--- a/proj/sxgcore/vs2013/sxgcore.vcxproj
+++ b/proj/sxgcore/vs2013/sxgcore.vcxproj
@@ -41,7 +41,7 @@
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <LinkIncremental>true</LinkIncremental>
+    <LinkIncremental>false</LinkIncremental>
     <OutDir>../../../build/</OutDir>
     <TargetName>$(ProjectName)_d</TargetName>
     <IncludePath>$(IncludePath);$(WindowsSdk_71A_IncludePath);../../../source;../../../sdks/dx9sdk/Include;</IncludePath>
diff --git a/proj/sxgenpreview/vs2013/sxgenpreview.vcxproj b/proj/sxgenpreview/vs2013/sxgenpreview.vcxproj
index 8a3e22b16..7b6af393e 100644
--- a/proj/sxgenpreview/vs2013/sxgenpreview.vcxproj
+++ b/proj/sxgenpreview/vs2013/sxgenpreview.vcxproj
@@ -62,6 +62,7 @@
       <Optimization>Disabled</Optimization>
       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
     <Link>
       <SubSystem>Windows</SubSystem>
diff --git a/proj/sxgeom/vs2013/sxgeom.vcxproj b/proj/sxgeom/vs2013/sxgeom.vcxproj
index 95af52972..e3a078f30 100644
--- a/proj/sxgeom/vs2013/sxgeom.vcxproj
+++ b/proj/sxgeom/vs2013/sxgeom.vcxproj
@@ -62,7 +62,7 @@
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <LinkIncremental>true</LinkIncremental>
+    <LinkIncremental>false</LinkIncremental>
     <OutDir>../../../build/</OutDir>
     <TargetName>$(ProjectName)_d</TargetName>
     <IncludePath>../../../source;$(VC_IncludePath);$(WindowsSDK_IncludePath);../../../sdks/dx9sdk/Include</IncludePath>
diff --git a/proj/sxguiwinapi/vs2013/sxguiwinapi.vcxproj b/proj/sxguiwinapi/vs2013/sxguiwinapi.vcxproj
index 9fed0e9a4..4439bcf54 100644
--- a/proj/sxguiwinapi/vs2013/sxguiwinapi.vcxproj
+++ b/proj/sxguiwinapi/vs2013/sxguiwinapi.vcxproj
@@ -97,7 +97,7 @@
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <LinkIncremental>true</LinkIncremental>
+    <LinkIncremental>false</LinkIncremental>
     <OutDir>../../../build/</OutDir>
     <TargetName>$(ProjectName)_d</TargetName>
     <IncludePath>../../../source;$(IncludePath)</IncludePath>
diff --git a/proj/sxinput/vs2013/sxinput.vcxproj b/proj/sxinput/vs2013/sxinput.vcxproj
index e6adf7499..32f5d6542 100644
--- a/proj/sxinput/vs2013/sxinput.vcxproj
+++ b/proj/sxinput/vs2013/sxinput.vcxproj
@@ -40,7 +40,7 @@
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <LinkIncremental>true</LinkIncremental>
+    <LinkIncremental>false</LinkIncremental>
     <OutDir>../../../build/</OutDir>
     <TargetName>$(ProjectName)_d</TargetName>
     <IncludePath>../../../source;$(VC_IncludePath);$(WindowsSDK_IncludePath);../../../sdks/dx9sdk/Include</IncludePath>
diff --git a/proj/sxleveleditor/vs2013/sxleveleditor.vcxproj b/proj/sxleveleditor/vs2013/sxleveleditor.vcxproj
index dbad1dc4f..a9b876aa4 100644
--- a/proj/sxleveleditor/vs2013/sxleveleditor.vcxproj
+++ b/proj/sxleveleditor/vs2013/sxleveleditor.vcxproj
@@ -40,7 +40,7 @@
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <LinkIncremental>true</LinkIncremental>
+    <LinkIncremental>false</LinkIncremental>
     <TargetName>$(ProjectName)_d</TargetName>
     <IncludePath>../../../sdks/bullet3/src;$(VC_IncludePath);$(WindowsSDK_IncludePath);../../../source;../../../sdks/dx9sdk/Include;</IncludePath>
     <LibraryPath>$(VC_LibraryPath_x86);$(WindowsSDK_LibraryPath_x86);../../../libs;../../../sdks/dx9sdk/lib;</LibraryPath>
@@ -62,6 +62,7 @@
       <Optimization>Disabled</Optimization>
       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;SX_LEVEL_EDITOR;%(PreprocessorDefinitions);SX_LIB_NAME="LEd"</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
     <Link>
       <SubSystem>Windows</SubSystem>
diff --git a/proj/sxmaterialeditor/vs2013/sxmaterialeditor.vcxproj b/proj/sxmaterialeditor/vs2013/sxmaterialeditor.vcxproj
index 218626130..ccc072080 100644
--- a/proj/sxmaterialeditor/vs2013/sxmaterialeditor.vcxproj
+++ b/proj/sxmaterialeditor/vs2013/sxmaterialeditor.vcxproj
@@ -62,6 +62,7 @@
       <Optimization>Disabled</Optimization>
       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;SX_MATERIAL_EDITOR;SX_EXE;%(PreprocessorDefinitions);SX_LIB_NAME="MEd"</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
     <Link>
       <SubSystem>Windows</SubSystem>
diff --git a/proj/sxmtllight/vs2013/sxmtllight.vcxproj b/proj/sxmtllight/vs2013/sxmtllight.vcxproj
index 4014c0d4c..886ed7b49 100644
--- a/proj/sxmtllight/vs2013/sxmtllight.vcxproj
+++ b/proj/sxmtllight/vs2013/sxmtllight.vcxproj
@@ -40,7 +40,7 @@
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <LinkIncremental>true</LinkIncremental>
+    <LinkIncremental>false</LinkIncremental>
     <OutDir>../../../build/</OutDir>
     <TargetName>$(ProjectName)_d</TargetName>
     <IncludePath>../../../source;$(VC_IncludePath);$(WindowsSDK_IncludePath);../../../sdks/dx9sdk/Include</IncludePath>
diff --git a/proj/sxparticles/vs2013/sxparticles.vcxproj b/proj/sxparticles/vs2013/sxparticles.vcxproj
index 014e11310..046d19800 100644
--- a/proj/sxparticles/vs2013/sxparticles.vcxproj
+++ b/proj/sxparticles/vs2013/sxparticles.vcxproj
@@ -40,7 +40,7 @@
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <LinkIncremental>true</LinkIncremental>
+    <LinkIncremental>false</LinkIncremental>
     <IncludePath>../../../source;$(VC_IncludePath);$(WindowsSDK_IncludePath);../../../sdks/dx9sdk/Include</IncludePath>
     <LibraryPath>../../../libs;$(LibraryPath);$(WindowsSDK_LibraryPath_x86);../../../sdks/dx9sdk/Lib</LibraryPath>
     <SourcePath>../../../source;$(VC_LibraryPath_x86);$(WindowsSDK_LibraryPath_x86);../../../sdks/dx9sdk/Include</SourcePath>
diff --git a/proj/sxparticleseditor/vs2013/sxparticleseditor.vcxproj b/proj/sxparticleseditor/vs2013/sxparticleseditor.vcxproj
index 0f58e6331..5e05f5686 100644
--- a/proj/sxparticleseditor/vs2013/sxparticleseditor.vcxproj
+++ b/proj/sxparticleseditor/vs2013/sxparticleseditor.vcxproj
@@ -62,6 +62,7 @@
       <Optimization>Disabled</Optimization>
       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;SX_PARTICLES_EDITOR;%(PreprocessorDefinitions);SX_LIB_NAME="PEd"</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
     <Link>
       <SubSystem>Windows</SubSystem>
diff --git a/proj/sxphysics/vs2013/sxphysics.vcxproj b/proj/sxphysics/vs2013/sxphysics.vcxproj
index 0ab51ba44..4ba5e594b 100644
--- a/proj/sxphysics/vs2013/sxphysics.vcxproj
+++ b/proj/sxphysics/vs2013/sxphysics.vcxproj
@@ -40,7 +40,7 @@
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <LinkIncremental>true</LinkIncremental>
+    <LinkIncremental>false</LinkIncremental>
     <OutDir>../../../build/</OutDir>
     <IncludePath>../../../source;../../../sdks/bullet3/src;$(VC_IncludePath);$(WindowsSdk_71A_IncludePath);../../../sdks/dx9sdk/Include;</IncludePath>
     <LibraryPath>../../../sdks/dx9sdk/Lib;../../../sdks/bullet3/bin;../../../libs;$(VC_LibraryPath_x86);$(WindowsSdk_71A_LibraryPath_x86);</LibraryPath>
diff --git a/proj/sxpp/vs2013/sxpp.vcxproj b/proj/sxpp/vs2013/sxpp.vcxproj
index 2279d7f2c..beb5536af 100644
--- a/proj/sxpp/vs2013/sxpp.vcxproj
+++ b/proj/sxpp/vs2013/sxpp.vcxproj
@@ -40,7 +40,7 @@
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <LinkIncremental>true</LinkIncremental>
+    <LinkIncremental>false</LinkIncremental>
     <IncludePath>../../../source;$(VC_IncludePath);$(WindowsSDK_IncludePath);../../../sdks/dx9sdk/Include</IncludePath>
     <LibraryPath>../../../libs;$(LibraryPath);$(WindowsSDK_LibraryPath_x86);../../../sdks/dx9sdk/Lib</LibraryPath>
     <SourcePath>../../../source;$(VC_LibraryPath_x86);$(WindowsSDK_LibraryPath_x86);../../../sdks/dx9sdk/Include</SourcePath>
diff --git a/proj/sxscore/vs2013/sxscore.vcxproj b/proj/sxscore/vs2013/sxscore.vcxproj
index f7fc15c06..68635f2cf 100644
--- a/proj/sxscore/vs2013/sxscore.vcxproj
+++ b/proj/sxscore/vs2013/sxscore.vcxproj
@@ -57,7 +57,7 @@
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <LinkIncremental>true</LinkIncremental>
+    <LinkIncremental>false</LinkIncremental>
     <OutDir>../../../build/</OutDir>
     <TargetName>$(ProjectName)_d</TargetName>
     <IncludePath>../../../sdks/ogg/libogg/include/;../../../sdks/ogg/libvorbis/include/;../../../source;$(VC_IncludePath);$(WindowsSDK_IncludePath);../../../sdks/dx9sdk/Include</IncludePath>
diff --git a/proj/sxwincreator/vs2013/sxwincreator.vcxproj b/proj/sxwincreator/vs2013/sxwincreator.vcxproj
index 72f9bf985..e7c94f6a2 100644
--- a/proj/sxwincreator/vs2013/sxwincreator.vcxproj
+++ b/proj/sxwincreator/vs2013/sxwincreator.vcxproj
@@ -62,6 +62,7 @@
       <Optimization>Disabled</Optimization>
       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
     <Link>
       <SubSystem>Windows</SubSystem>
diff --git a/sdks/ogg/libogg/win32/VS2010/libogg_static.vcxproj b/sdks/ogg/libogg/win32/VS2010/libogg_static.vcxproj
index 12b0c73bd..ac6a4334e 100644
--- a/sdks/ogg/libogg/win32/VS2010/libogg_static.vcxproj
+++ b/sdks/ogg/libogg/win32/VS2010/libogg_static.vcxproj
@@ -85,7 +85,7 @@
       <PrecompiledHeader>
       </PrecompiledHeader>
       <WarningLevel>Level1</WarningLevel>
-      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
       <CompileAs>CompileAsC</CompileAs>
       <CallingConvention>Cdecl</CallingConvention>
     </ClCompile>
diff --git a/sdks/ogg/libvorbis/win32/VS2010/libvorbis/libvorbis_static.vcxproj b/sdks/ogg/libvorbis/win32/VS2010/libvorbis/libvorbis_static.vcxproj
index 74bd2b117..ae954a83e 100644
--- a/sdks/ogg/libvorbis/win32/VS2010/libvorbis/libvorbis_static.vcxproj
+++ b/sdks/ogg/libvorbis/win32/VS2010/libvorbis/libvorbis_static.vcxproj
@@ -90,7 +90,7 @@
       <PrecompiledHeader>
       </PrecompiledHeader>
       <WarningLevel>Level1</WarningLevel>
-      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
       <CompileAs>CompileAsC</CompileAs>
       <CallingConvention>Cdecl</CallingConvention>
     </ClCompile>
diff --git a/sdks/ogg/libvorbis/win32/VS2010/libvorbisfile/libvorbisfile_static.vcxproj b/sdks/ogg/libvorbis/win32/VS2010/libvorbisfile/libvorbisfile_static.vcxproj
index 784582275..77d7f8f4b 100644
--- a/sdks/ogg/libvorbis/win32/VS2010/libvorbisfile/libvorbisfile_static.vcxproj
+++ b/sdks/ogg/libvorbis/win32/VS2010/libvorbisfile/libvorbisfile_static.vcxproj
@@ -92,7 +92,7 @@
       <PrecompiledHeader>
       </PrecompiledHeader>
       <WarningLevel>Level1</WarningLevel>
-      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
       <CallingConvention>Cdecl</CallingConvention>
     </ClCompile>
     <Lib>
diff --git a/source/common b/source/common
index 1ad20f60b..8c646bd5b 160000
--- a/source/common
+++ b/source/common
@@ -1 +1 @@
-Subproject commit 1ad20f60bbac0b2d9496c64d3ef35cea0fa51b88
+Subproject commit 8c646bd5bb467eb57ff46ba2d951201eacb10be5
diff --git a/source/core/Config.cpp b/source/core/Config.cpp
index 1e345f850..10d776b7f 100644
--- a/source/core/Config.cpp
+++ b/source/core/Config.cpp
@@ -406,7 +406,7 @@ const char* CConfig::getKeyName(const char* section, int key)
 	CConfigString sections(section);
 	if (m_mSections.KeyExists(sections))
 	{
-		if (m_mSections[sections].mValues.Size() > key)
+		if ((int)m_mSections[sections].mValues.Size() > key)
 		{
 			int countiter = 0;
 			AssotiativeArray<CConfigString, CConfig::CValue>::Iterator iter = m_mSections[sections].mValues.begin();
@@ -425,7 +425,7 @@ const char* CConfig::getKeyName(const char* section, int key)
 
 const char* CConfig::getSectionName(int num)
 {
-	if (m_mSections.Size() > num)
+	if((int)m_mSections.Size() > num)
 	{
 		int countiter = 0;
 		AssotiativeArray<CConfigString, CConfig::CSection>::Iterator iter = m_mSections.begin();
@@ -526,12 +526,12 @@ int CConfig::writeFile(const CConfigString & name, CConfigString section, CConfi
 		bool kf = false;
 		bool se = false;
 		UINT sp = 0;
-		for(int i = 0; i < fl; ++i)
+		for(UINT i = 0; i < fl; ++i)
 		{
 			if(szData[i] == '[' && ((i > 0 && (szData[i - 1] == '\r' || szData[i - 1] == '\n')) || i == 0))
 			{
 				bool cmp = true;
-				int j;
+				UINT j;
 				for(j = i + 1; j < fl - 1 && j - i - 1 < sl; ++j)
 				{
 					if(szData[j] != section[j - i - 1])
@@ -757,7 +757,7 @@ AssotiativeArray<CConfigString, CConfig::CSection> * CConfig::getSections()
 
 CConfigString CConfig::getIncludeName(int i)
 {
-	if(i >= 0 && i < m_vIncludes.size())
+	if(i >= 0 && i < (int)m_vIncludes.size())
 	{
 		return(m_vIncludes[i].name);
 	}
diff --git a/source/core/Config.h b/source/core/Config.h
index c9af4da1c..1835a5436 100644
--- a/source/core/Config.h
+++ b/source/core/Config.h
@@ -27,46 +27,46 @@ public:
 	
 	const char & operator[](const unsigned long & num) const
 	{
-		return(this->string[num]);
+		return(m_szString[num]);
 	}
 
 	char & operator[](const unsigned long & num)
 	{
-		return(this->string[num]);
+		return(m_szString[num]);
 	}
 
 	CConfigString & operator=(const CConfigString & str)
 	{
-		Release();
-		string = new char[str.length() + 1];
-		memcpy(string, str.c_str(), str.length() + 1);
+		release();
+		m_szString = new char[str.length() + 1];
+		memcpy(m_szString, str.c_str(), str.length() + 1);
 		return(*this);
 	}
 
 	CConfigString & operator=(const CConfigString * str)
 	{
-		Release();
-		string = new char[str->length() + 1];
-		memcpy(string, str->c_str(), str->length() + 1);
+		release();
+		m_szString = new char[str->length() + 1];
+		memcpy(m_szString, str->c_str(), str->length() + 1);
 		return(*this);
 	}
 
 	bool operator==(const CConfigString &str) const
 	{
-		return (stricmp(str.string, this->string) == 0);
+		return (stricmp(str.m_szString, m_szString) == 0);
 	}
 
 	bool operator==(const CConfigString * str) const
 	{
-		return (stricmp(str->string, this->string) == 0);
+		return (stricmp(str->m_szString, m_szString) == 0);
 	}
 
 	CConfigString & operator+=(const char &	sym)
 	{
 		char * newstring = new char[length() + 2];
-		sprintf(newstring, "%s%c", string, sym);
-		SAFE_DELETE_A(string);
-		string = newstring;
+		sprintf(newstring, "%s%c", m_szString, sym);
+		mem_delete_a(m_szString);
+		m_szString = newstring;
 		return(*this);
 	}
 };
diff --git a/source/game/CrosshairManager.cpp b/source/game/CrosshairManager.cpp
index 8f7c5d774..b4c24db81 100644
--- a/source/game/CrosshairManager.cpp
+++ b/source/game/CrosshairManager.cpp
@@ -117,7 +117,7 @@ void CCrosshairManager::loadConfig(const char * szFile)
 			continue;
 		}
 		AAString aas;
-		aas.SetName(sect);
+		aas.setName(sect);
 		m_mIndex[aas] = m_vCrosshairList.size();
 		m_vCrosshairList.push_back(cd);
 	}
diff --git a/source/gcore/shader.cpp b/source/gcore/shader.cpp
index fc0ab9c96..d702eef84 100644
--- a/source/gcore/shader.cpp
+++ b/source/gcore/shader.cpp
@@ -47,6 +47,12 @@ void SaveShaderFileCache(CShaderFileCache *pShaderFileCache)
 
 	FILE *pFile = fopen(szFullPathCache, "wb");
 
+	if(!pFile)
+	{
+		LibReport(REPORT_MSG_LEVEL_ERROR, "Unable to open file '%s' for writing", szFullPathCache);
+		return;
+	}
+
 	uint32_t tLastModify = FileGetTimeLastModify(szFullPath);
 
 	fwrite(&tLastModify, sizeof(uint32_t), 1, pFile);
diff --git a/source/geom/green.h b/source/geom/green.h
index 3d006558e..d1c427073 100644
--- a/source/geom/green.h
+++ b/source/geom/green.h
@@ -11,6 +11,7 @@ See the license in LICENSE
 #include <common/string.h>
 #include <common/array.h>
 #include <common/SXMath.h>
+#include <common/string_utils.h>
 
 #include <d3d9.h>
 #include <gcore/sxgcore.h>
diff --git a/source/geom/static_geom.h b/source/geom/static_geom.h
index a6c4d21a0..3cb2fd7ca 100644
--- a/source/geom/static_geom.h
+++ b/source/geom/static_geom.h
@@ -8,6 +8,7 @@ See the license in LICENSE
 #define __STATIC_GEOM_H
 
 #include <common/string.h>
+#include <common/string_utils.h>
 #include <common/array.h>
 #include <gcore/sxgcore.h>
 #include "sxgeom.h"
diff --git a/source/level/weather.cpp b/source/level/weather.cpp
index 5fb9ccb16..dddc24a33 100644
--- a/source/level/weather.cpp
+++ b/source/level/weather.cpp
@@ -323,7 +323,7 @@ void CWeather::load(const char *szPath)
 			WEATHER_CONFIG_LACKS_KEY("sun_pos", szPath, m_aTimeSections[i].m_szSection);
 
 		if (config->keyExists(m_aTimeSections[i].m_szSection, "sky_rotation"))
-			m_aTimeSections[i].m_DataSection.m_fSkyRotation = (float)String(config->getKey(m_aTimeSections[i].m_szSection, "sky_rotation")).ToDouble();
+			m_aTimeSections[i].m_DataSection.m_fSkyRotation = (float)String(config->getKey(m_aTimeSections[i].m_szSection, "sky_rotation")).toDouble();
 		else
 			WEATHER_CONFIG_LACKS_KEY("sky_rotation", szPath, m_aTimeSections[i].m_szSection);
 
@@ -379,17 +379,17 @@ void CWeather::load(const char *szPath)
 			WEATHER_CONFIG_LACKS_KEY("clouds_color", szPath, m_aTimeSections[i].m_szSection);
 
 		if (config->keyExists(m_aTimeSections[i].m_szSection, "clouds_rotate"))
-			m_aTimeSections[i].m_DataSection.m_fCloudsRotate = (float)String(config->getKey(m_aTimeSections[i].m_szSection, "clouds_rotate")).ToDouble();
+			m_aTimeSections[i].m_DataSection.m_fCloudsRotate = (float)String(config->getKey(m_aTimeSections[i].m_szSection, "clouds_rotate")).toDouble();
 		else
 			WEATHER_CONFIG_LACKS_KEY("clouds_rotate", szPath, m_aTimeSections[i].m_szSection);
 
 		if (config->keyExists(m_aTimeSections[i].m_szSection, "clouds_transparency"))
-			m_aTimeSections[i].m_DataSection.m_fCloudsTransparency = (float)String(config->getKey(m_aTimeSections[i].m_szSection, "clouds_transparency")).ToDouble();
+			m_aTimeSections[i].m_DataSection.m_fCloudsTransparency = (float)String(config->getKey(m_aTimeSections[i].m_szSection, "clouds_transparency")).toDouble();
 		else
 			WEATHER_CONFIG_LACKS_KEY("clouds_transparency", szPath, m_aTimeSections[i].m_szSection);
 
 		if (config->keyExists(m_aTimeSections[i].m_szSection, "clouds_speed"))
-			m_aTimeSections[i].m_DataSection.m_fCloudsSpeed = (float)String(config->getKey(m_aTimeSections[i].m_szSection, "clouds_speed")).ToDouble();
+			m_aTimeSections[i].m_DataSection.m_fCloudsSpeed = (float)String(config->getKey(m_aTimeSections[i].m_szSection, "clouds_speed")).toDouble();
 		else
 			WEATHER_CONFIG_LACKS_KEY("clouds_speed", szPath, m_aTimeSections[i].m_szSection);
 
@@ -416,12 +416,12 @@ void CWeather::load(const char *szPath)
 			WEATHER_CONFIG_LACKS_KEY("sun_color", szPath, m_aTimeSections[i].m_szSection);
 
 		if (config->keyExists(m_aTimeSections[i].m_szSection, "far"))
-			m_aTimeSections[i].m_DataSection.m_fFar = (float)String(config->getKey(m_aTimeSections[i].m_szSection, "far")).ToDouble();
+			m_aTimeSections[i].m_DataSection.m_fFar = (float)String(config->getKey(m_aTimeSections[i].m_szSection, "far")).toDouble();
 		else
 			WEATHER_CONFIG_LACKS_KEY("far", szPath, m_aTimeSections[i].m_szSection);
 
 		if (config->keyExists(m_aTimeSections[i].m_szSection, "rain_density"))
-			m_aTimeSections[i].m_DataSection.m_fRainDensity = (float)String(config->getKey(m_aTimeSections[i].m_szSection, "rain_density")).ToDouble();
+			m_aTimeSections[i].m_DataSection.m_fRainDensity = (float)String(config->getKey(m_aTimeSections[i].m_szSection, "rain_density")).toDouble();
 		else
 			WEATHER_CONFIG_LACKS_KEY("rain_density", szPath, m_aTimeSections[i].m_szSection);
 
@@ -451,7 +451,7 @@ void CWeather::load(const char *szPath)
 			WEATHER_CONFIG_LACKS_KEY("rain_color", szPath, m_aTimeSections[i].m_szSection);
 
 		if (config->keyExists(m_aTimeSections[i].m_szSection, "fog_density"))
-			m_aTimeSections[i].m_DataSection.m_fFogDensity = (float)String(config->getKey(m_aTimeSections[i].m_szSection, "fog_density")).ToDouble();
+			m_aTimeSections[i].m_DataSection.m_fFogDensity = (float)String(config->getKey(m_aTimeSections[i].m_szSection, "fog_density")).toDouble();
 		else
 			WEATHER_CONFIG_LACKS_KEY("fog_density", szPath, m_aTimeSections[i].m_szSection);
 
@@ -477,12 +477,12 @@ void CWeather::load(const char *szPath)
 			WEATHER_CONFIG_LACKS_KEY("fog_color", szPath, m_aTimeSections[i].m_szSection);
 
 		if (config->keyExists(m_aTimeSections[i].m_szSection, "thunderbolt"))
-			m_aTimeSections[i].m_DataSection.m_hasThunderbolt = String(config->getKey(m_aTimeSections[i].m_szSection, "thunderbolt")).ToBool();
+			m_aTimeSections[i].m_DataSection.m_hasThunderbolt = String(config->getKey(m_aTimeSections[i].m_szSection, "thunderbolt")).toBool();
 		else
 			WEATHER_CONFIG_LACKS_KEY("thunderbolt", szPath, m_aTimeSections[i].m_szSection);
 
 		if (config->keyExists(m_aTimeSections[i].m_szSection, "thunder_period"))
-			m_aTimeSections[i].m_DataSection.m_ulThunderPeriod = String(config->getKey(m_aTimeSections[i].m_szSection, "thunder_period")).ToUnsLongInt();
+			m_aTimeSections[i].m_DataSection.m_ulThunderPeriod = String(config->getKey(m_aTimeSections[i].m_szSection, "thunder_period")).toUnsLongInt();
 		else
 			WEATHER_CONFIG_LACKS_KEY("thunder_period", szPath, m_aTimeSections[i].m_szSection);
 
diff --git a/source/mtllight/light.cpp b/source/mtllight/light.cpp
index 8ea957c2a..e1ba14be3 100644
--- a/source/mtllight/light.cpp
+++ b/source/mtllight/light.cpp
@@ -289,7 +289,7 @@ void Lights::SetLightName(ID id, const char* name)
 	sprintf(ArrLights[id]->Name, "%s", name);
 }
 
-ID Lights::CreatePoint(ID id, const float3* center, float dist, const float3* color, bool isglobal, bool is_shadow, const char* bound_volume)
+ID Lights::CreatePoint(ID id, const float3* center, float dist, const float3* color, bool isglobal, bool is_shadow/*, const char* bound_volume*/)
 {
 	if (GlobalLight != -1 && isglobal)
 	{
@@ -321,14 +321,14 @@ ID Lights::CreatePoint(ID id, const float3* center, float dist, const float3* co
 	}
 
 	tmplight->TypeLight = (isglobal ? LTYPE_LIGHT_GLOBAL : LTYPE_LIGHT_POINT);
-		if(StrValidate(bound_volume))
+		/*if(StrValidate(bound_volume))
 		{
 			
 		}
 		else
-		{
+		{*/
 			D3DXCreateSphere(MLSet::DXDevice, tmplight->Dist, 20, 20, &tmplight->Mesh, 0);
-		}
+		//}
 
 		if (isglobal && is_shadow)
 		{
@@ -371,7 +371,7 @@ ID Lights::CreatePoint(ID id, const float3* center, float dist, const float3* co
 	return tmpid;
 }
 
-ID Lights::CreateDirection(ID id, const float3* pos, float dist, const float3* color, const SMQuaternion* orient, float top_radius, float angle, bool is_shadow, const char* bound_volume)
+ID Lights::CreateDirection(ID id, const float3* pos, float dist, const float3* color, const SMQuaternion* orient, float top_radius, float angle, bool is_shadow/*, const char* bound_volume*/)
 {
 	Light* tmplight = 0;
 
@@ -392,11 +392,11 @@ ID Lights::CreateDirection(ID id, const float3* pos, float dist, const float3* c
 	tmplight->TopBottomRadius.x = top_radius;
 	tmplight->TopBottomRadius.y = bottom_radius;
 
-	if (StrValidate(bound_volume))
+	/*if (StrValidate(bound_volume))
 	{
 		
 	}
-	else
+	else*/
 		SGCore_FCreateCone(top_radius, bottom_radius, dist, &tmplight->Mesh, 32);
 
 	tmplight->TopBottomRadius = float2_t(top_radius, bottom_radius);
diff --git a/source/mtllight/light.h b/source/mtllight/light.h
index 406ad080b..41326569f 100644
--- a/source/mtllight/light.h
+++ b/source/mtllight/light.h
@@ -51,8 +51,8 @@ public:
 
 	bool getExists(ID id) const;
 
-	ID CreatePoint(ID id, const  float3* center, float dist, const  float3* color, bool isglobal, bool is_shadow, const char* bound_volume);
-	ID CreateDirection(ID id, const  float3* pos, float dist, const  float3* color, const SMQuaternion* orient, float top_radius, float angle, bool is_shadow, const char* bound_volume);
+	ID CreatePoint(ID id, const  float3* center, float dist, const  float3* color, bool isglobal, bool is_shadow/*, const char* bound_volume*/);
+	ID CreateDirection(ID id, const  float3* pos, float dist, const  float3* color, const SMQuaternion* orient, float top_radius, float angle, bool is_shadow/*, const char* bound_volume*/);
 
 	void DeleteLight(ID id);
 
diff --git a/source/mtllight/material.cpp b/source/mtllight/material.cpp
index 01906c5bd..12342cb54 100644
--- a/source/mtllight/material.cpp
+++ b/source/mtllight/material.cpp
@@ -1173,17 +1173,17 @@ bool Materials::LoadMtl(const char* name, Material** mtl)
 
 
 		if (config->keyExists(tmp_name, "is_unlit"))
-			tmpMtl->IsUnlit = String(config->getKey(tmp_name, "is_unlit")).ToBool();
+			tmpMtl->IsUnlit = String(config->getKey(tmp_name, "is_unlit")).toBool();
 		else
 			tmpMtl->IsUnlit = false;
 
 		if (config->keyExists(tmp_name, "type"))
-			tmpMtl->Type = (MTLTYPE_MODEL)String(config->getKey(tmp_name, "type")).ToInt();
+			tmpMtl->Type = (MTLTYPE_MODEL)String(config->getKey(tmp_name, "type")).toInt();
 		else
 			tmpMtl->Type = MTLTYPE_MODEL_DEFAULT;
 
 		if (config->keyExists(tmp_name, "physmaterial"))
-			tmpMtl->PhysicsMaterial = (MTLTYPE_PHYSIC)String(config->getKey(tmp_name, "physmaterial")).ToInt();
+			tmpMtl->PhysicsMaterial = (MTLTYPE_PHYSIC)String(config->getKey(tmp_name, "physmaterial")).toInt();
 		else
 			tmpMtl->PhysicsMaterial = MTLTYPE_PHYSIC_DEFAULT;
 
@@ -1278,22 +1278,22 @@ bool Materials::LoadMtl(const char* name, Material** mtl)
 		tmpMtl->LightParam.ThicknessValue = MTL_LIGHTING_DEFAULT_THICKNESS;
 
 		if (config->keyExists(tmp_name, "roughness"))
-			tmpMtl->LightParam.RoughnessValue = String(config->getKey(tmp_name, "roughness")).ToDouble();
+			tmpMtl->LightParam.RoughnessValue = String(config->getKey(tmp_name, "roughness")).toDouble();
 
 		if (config->keyExists(tmp_name, "f0"))
-			tmpMtl->LightParam.F0Value = String(config->getKey(tmp_name, "f0")).ToDouble();
+			tmpMtl->LightParam.F0Value = String(config->getKey(tmp_name, "f0")).toDouble();
 
 		if (config->keyExists(tmp_name, "thickness"))
-			tmpMtl->LightParam.ThicknessValue = String(config->getKey(tmp_name, "thickness")).ToDouble();
+			tmpMtl->LightParam.ThicknessValue = String(config->getKey(tmp_name, "thickness")).toDouble();
 
 		if (config->keyExists(tmp_name, "penetration"))
-			tmpMtl->Penetration = String(config->getKey(tmp_name, "penetration")).ToDouble();
+			tmpMtl->Penetration = String(config->getKey(tmp_name, "penetration")).toDouble();
 
 		if (config->keyExists(tmp_name, "hit_chance"))
-			tmpMtl->HitChance = String(config->getKey(tmp_name, "hit_chance")).ToDouble();
+			tmpMtl->HitChance = String(config->getKey(tmp_name, "hit_chance")).toDouble();
 
 		if (config->keyExists(tmp_name, "density"))
-			tmpMtl->Density = String(config->getKey(tmp_name, "density")).ToDouble();
+			tmpMtl->Density = String(config->getKey(tmp_name, "density")).toDouble();
 
 		tmpMtl->LightParam.ParamTexHand = CreateTexParamLighting(tmpMtl->LightParam.RoughnessValue, tmpMtl->LightParam.F0Value, tmpMtl->LightParam.ThicknessValue);
 
@@ -1302,7 +1302,7 @@ bool Materials::LoadMtl(const char* name, Material** mtl)
 
 		//если есть ключ использования текстуры то грузим
 		if (config->keyExists(tmp_name, "is_texture_param"))
-			istexparam = String(config->getKey(tmp_name, "is_texture_param")).ToBool();
+			istexparam = String(config->getKey(tmp_name, "is_texture_param")).toBool();
 
 		tmpParamLigth[0] = 0;
 		if (config->keyExists(tmp_name, "param_ligth"))
@@ -1326,7 +1326,7 @@ bool Materials::LoadMtl(const char* name, Material** mtl)
 		
 
 		if (config->keyExists(tmp_name, "refraction"))
-			tmpMtl->LightParam.TypeRefraction = (MTLTYPE_TRANSPARENCY)String(config->getKey(tmp_name, "refraction")).ToInt();
+			tmpMtl->LightParam.TypeRefraction = (MTLTYPE_TRANSPARENCY)String(config->getKey(tmp_name, "refraction")).toInt();
 		else
 			tmpMtl->LightParam.TypeRefraction = MTLTYPE_TRANSPARENCY_NONE;
 
@@ -1336,48 +1336,48 @@ bool Materials::LoadMtl(const char* name, Material** mtl)
 			tmpMtl->VS.IsTransTimeDelta = tmpMtl->VS.IsTransWinSize = tmpMtl->VS.IsTransUserData = false;
 
 		if (config->keyExists(tmp_name, "vs_world"))
-			tmpMtl->VS.IsTransWorld = String(config->getKey(tmp_name, "vs_world")).ToInt();
+			tmpMtl->VS.IsTransWorld = String(config->getKey(tmp_name, "vs_world")).toInt();
 
 		if (config->keyExists(tmp_name, "vs_view"))
-			tmpMtl->VS.IsTransView = String(config->getKey(tmp_name, "vs_view")).ToInt();
+			tmpMtl->VS.IsTransView = String(config->getKey(tmp_name, "vs_view")).toInt();
 
 		if (config->keyExists(tmp_name, "vs_projection"))
-			tmpMtl->VS.IsTransProjection = String(config->getKey(tmp_name, "vs_projection")).ToInt();
+			tmpMtl->VS.IsTransProjection = String(config->getKey(tmp_name, "vs_projection")).toInt();
 
 		if (config->keyExists(tmp_name, "vs_worldview"))
-			tmpMtl->VS.IsTransWorldView = String(config->getKey(tmp_name, "vs_worldview")).ToInt();
+			tmpMtl->VS.IsTransWorldView = String(config->getKey(tmp_name, "vs_worldview")).toInt();
 
 		if (config->keyExists(tmp_name, "vs_worldviewprojection"))
-			tmpMtl->VS.IsTransWorldViewProjection = String(config->getKey(tmp_name, "vs_worldviewprojection")).ToInt();
+			tmpMtl->VS.IsTransWorldViewProjection = String(config->getKey(tmp_name, "vs_worldviewprojection")).toInt();
 
 		if (config->keyExists(tmp_name, "vs_poscam"))
-			tmpMtl->VS.IsTransPosCam = String(config->getKey(tmp_name, "vs_poscam")).ToInt();
+			tmpMtl->VS.IsTransPosCam = String(config->getKey(tmp_name, "vs_poscam")).toInt();
 
 		if (config->keyExists(tmp_name, "vs_timedelta"))
-			tmpMtl->VS.IsTransTimeDelta = String(config->getKey(tmp_name, "vs_timedelta")).ToInt();
+			tmpMtl->VS.IsTransTimeDelta = String(config->getKey(tmp_name, "vs_timedelta")).toInt();
 
 		if (config->keyExists(tmp_name, "vs_winsize"))
-			tmpMtl->VS.IsTransWinSize = String(config->getKey(tmp_name, "vs_winsize")).ToInt();
+			tmpMtl->VS.IsTransWinSize = String(config->getKey(tmp_name, "vs_winsize")).toInt();
 
 		if (config->keyExists(tmp_name, "vs_userdata"))
-			tmpMtl->VS.IsTransUserData = String(config->getKey(tmp_name, "vs_userdata")).ToInt();
+			tmpMtl->VS.IsTransUserData = String(config->getKey(tmp_name, "vs_userdata")).toInt();
 
 
 		tmpMtl->VS.Param = float4(0, 0, 0, 0);
 		if (config->keyExists(tmp_name, "vs_userdata_value_x"))
-			tmpMtl->VS.Param.x = String(config->getKey(tmp_name, "vs_userdata_value_x")).ToDouble();
+			tmpMtl->VS.Param.x = String(config->getKey(tmp_name, "vs_userdata_value_x")).toDouble();
 
 		if (config->keyExists(tmp_name, "vs_userdata_value_y"))
-			tmpMtl->VS.Param.y = String(config->getKey(tmp_name, "vs_userdata_value_y")).ToDouble();
+			tmpMtl->VS.Param.y = String(config->getKey(tmp_name, "vs_userdata_value_y")).toDouble();
 
 		if (config->keyExists(tmp_name, "vs_userdata_value_z"))
-			tmpMtl->VS.Param.z = String(config->getKey(tmp_name, "vs_userdata_value_z")).ToDouble();
+			tmpMtl->VS.Param.z = String(config->getKey(tmp_name, "vs_userdata_value_z")).toDouble();
 
 		if (config->keyExists(tmp_name, "vs_userdata_value_w"))
-			tmpMtl->VS.Param.w = String(config->getKey(tmp_name, "vs_userdata_value_w")).ToDouble();
+			tmpMtl->VS.Param.w = String(config->getKey(tmp_name, "vs_userdata_value_w")).toDouble();
 
 		if (config->keyExists(tmp_name, "vs_userdata_trans_in_ps"))
-			tmpMtl->TransVSDataInPS = String(config->getKey(tmp_name, "vs_userdata_trans_in_ps")).ToBool();
+			tmpMtl->TransVSDataInPS = String(config->getKey(tmp_name, "vs_userdata_trans_in_ps")).toBool();
 		else
 			tmpMtl->TransVSDataInPS = false;
 
@@ -1387,54 +1387,54 @@ bool Materials::LoadMtl(const char* name, Material** mtl)
 			tmpMtl->PS.IsTransTimeDelta = tmpMtl->PS.IsTransWinSize = tmpMtl->PS.IsTransUserData = false;
 
 		if (config->keyExists(tmp_name, "ps_world"))
-			tmpMtl->PS.IsTransWorld = String(config->getKey(tmp_name, "ps_world")).ToInt();
+			tmpMtl->PS.IsTransWorld = String(config->getKey(tmp_name, "ps_world")).toInt();
 
 		if (config->keyExists(tmp_name, "ps_view"))
-			tmpMtl->PS.IsTransView = String(config->getKey(tmp_name, "ps_view")).ToInt();
+			tmpMtl->PS.IsTransView = String(config->getKey(tmp_name, "ps_view")).toInt();
 
 		if (config->keyExists(tmp_name, "ps_projection"))
-			tmpMtl->PS.IsTransProjection = String(config->getKey(tmp_name, "ps_projection")).ToInt();
+			tmpMtl->PS.IsTransProjection = String(config->getKey(tmp_name, "ps_projection")).toInt();
 
 		if (config->keyExists(tmp_name, "ps_worldview"))
-			tmpMtl->PS.IsTransWorldView = String(config->getKey(tmp_name, "ps_worldview")).ToInt();
+			tmpMtl->PS.IsTransWorldView = String(config->getKey(tmp_name, "ps_worldview")).toInt();
 
 		if (config->keyExists(tmp_name, "ps_worldviewprojection"))
-			tmpMtl->PS.IsTransWorldViewProjection = String(config->getKey(tmp_name, "ps_worldviewprojection")).ToInt();
+			tmpMtl->PS.IsTransWorldViewProjection = String(config->getKey(tmp_name, "ps_worldviewprojection")).toInt();
 
 		if (config->keyExists(tmp_name, "ps_poscam"))
-			tmpMtl->PS.IsTransPosCam = String(config->getKey(tmp_name, "ps_poscam")).ToInt();
+			tmpMtl->PS.IsTransPosCam = String(config->getKey(tmp_name, "ps_poscam")).toInt();
 
 		if (config->keyExists(tmp_name, "ps_timedelta"))
-			tmpMtl->PS.IsTransTimeDelta = String(config->getKey(tmp_name, "ps_timedelta")).ToInt();
+			tmpMtl->PS.IsTransTimeDelta = String(config->getKey(tmp_name, "ps_timedelta")).toInt();
 
 		if (config->keyExists(tmp_name, "ps_winsize"))
-			tmpMtl->PS.IsTransWinSize = String(config->getKey(tmp_name, "ps_winsize")).ToInt();
+			tmpMtl->PS.IsTransWinSize = String(config->getKey(tmp_name, "ps_winsize")).toInt();
 
 		if (config->keyExists(tmp_name, "ps_userdata"))
-			tmpMtl->PS.IsTransUserData = String(config->getKey(tmp_name, "ps_userdata")).ToInt();
+			tmpMtl->PS.IsTransUserData = String(config->getKey(tmp_name, "ps_userdata")).toInt();
 
 		tmpMtl->PS.Param = float4(0, 0, 0, 0);
 
 		if (config->keyExists(tmp_name, "ps_userdata_value_x"))
-			tmpMtl->PS.Param.x = String(config->getKey(tmp_name, "ps_userdata_value_x")).ToDouble();
+			tmpMtl->PS.Param.x = String(config->getKey(tmp_name, "ps_userdata_value_x")).toDouble();
 
 		if (config->keyExists(tmp_name, "ps_userdata_value_y"))
-			tmpMtl->PS.Param.y = String(config->getKey(tmp_name, "ps_userdata_value_y")).ToDouble();
+			tmpMtl->PS.Param.y = String(config->getKey(tmp_name, "ps_userdata_value_y")).toDouble();
 
 		if (config->keyExists(tmp_name, "ps_userdata_value_z"))
-			tmpMtl->PS.Param.z = String(config->getKey(tmp_name, "ps_userdata_value_z")).ToDouble();
+			tmpMtl->PS.Param.z = String(config->getKey(tmp_name, "ps_userdata_value_z")).toDouble();
 
 		if (config->keyExists(tmp_name, "ps_userdata_value_w"))
-			tmpMtl->PS.Param.w = String(config->getKey(tmp_name, "ps_userdata_value_w")).ToDouble();
+			tmpMtl->PS.Param.w = String(config->getKey(tmp_name, "ps_userdata_value_w")).toDouble();
 
 		if (config->keyExists(tmp_name, "ps_userdata_trans_in_vs"))
-			tmpMtl->TransPSDataInVS = String(config->getKey(tmp_name, "ps_userdata_trans_in_vs")).ToBool();
+			tmpMtl->TransPSDataInVS = String(config->getKey(tmp_name, "ps_userdata_trans_in_vs")).toBool();
 
 		if (config->keyExists(tmp_name, "type_reflect"))
-			tmpMtl->LightParam.TypeReflect = (MTLTYPE_REFLECT)String(config->getKey(tmp_name, "type_reflect")).ToInt();
+			tmpMtl->LightParam.TypeReflect = (MTLTYPE_REFLECT)String(config->getKey(tmp_name, "type_reflect")).toInt();
 
 		if (config->keyExists(tmp_name, "alpha_test"))
-			tmpMtl->IsAlphaTest = String(config->getKey(tmp_name, "alpha_test")).ToBool();
+			tmpMtl->IsAlphaTest = String(config->getKey(tmp_name, "alpha_test")).toBool();
 		else
 			tmpMtl->IsAlphaTest = false;
 
diff --git a/source/mtllight/sxmtllight.cpp b/source/mtllight/sxmtllight.cpp
index bc37f158c..28f0badbf 100644
--- a/source/mtllight/sxmtllight.cpp
+++ b/source/mtllight/sxmtllight.cpp
@@ -191,13 +191,13 @@ SX_LIB_API bool SML_LigthsGetExists(ID id)
 SX_LIB_API ID SML_LigthsCreatePoint(const float3* center, float dist, const float3* color, bool isglobal, bool is_shadowed/*, const char* bound_volume*/)
 {
 	ML_PRECOND(-1);
-	return ArrLights->CreatePoint(-1,center, dist, color, isglobal, is_shadowed, 0);
+	return ArrLights->CreatePoint(-1,center, dist, color, isglobal, is_shadowed/*, 0*/);
 }
 
 SX_LIB_API ID SML_LigthsCreateDirection(const float3* pos, float dist, const float3* color, const SMQuaternion* orient, float top_radius, float angle, bool is_shadow/*, const char* bound_volume*/)
 {
 	ML_PRECOND(-1);
-	return ArrLights->CreateDirection(-1, pos, dist, color, orient, top_radius, angle, is_shadow, 0);
+	return ArrLights->CreateDirection(-1, pos, dist, color, orient, top_radius, angle, is_shadow/*, 0*/);
 }
 
 SX_LIB_API void SML_LigthsRender(ID id, DWORD timeDelta)
diff --git a/source/particles/effect.cpp b/source/particles/effect.cpp
index 4c3452706..f01fa5958 100644
--- a/source/particles/effect.cpp
+++ b/source/particles/effect.cpp
@@ -324,7 +324,7 @@ void Effects::Load(const char* path)
 		return;
 	}
 
-	int eff_count = String(config->getKey("effects", "count")).ToInt();
+	int eff_count = String(config->getKey("effects", "count")).toInt();
 	char eff_section_name[CONFIG_SECTION_MAX_LEN];
 	char part_section_name[CONFIG_SECTION_MAX_LEN];
 
@@ -345,7 +345,7 @@ void Effects::Load(const char* path)
 			EffectNameSet(eff_id, config->getKey(eff_section_name, "name"));
 
 		if (config->keyExists(eff_section_name, "emitters_count"))
-			eff_count_part = String(config->getKey(eff_section_name, "emitters_count")).ToInt();
+			eff_count_part = String(config->getKey(eff_section_name, "emitters_count")).toInt();
 
 		for (int k = 0; k < eff_count_part; ++k)
 		{
@@ -360,226 +360,226 @@ void Effects::Load(const char* path)
 
 
 			if (config->keyExists(part_section_name, "BoundType"))
-				part.BoundType = (PARTICLESTYPE_BOUND)String(config->getKey(part_section_name, "BoundType")).ToInt();
+				part.BoundType = (PARTICLESTYPE_BOUND)String(config->getKey(part_section_name, "BoundType")).toInt();
 
 			if (config->keyExists(part_section_name, "BoundVec1X"))
-				part.BoundVec1.x = String(config->getKey(part_section_name, "BoundVec1X")).ToDouble();
+				part.BoundVec1.x = String(config->getKey(part_section_name, "BoundVec1X")).toDouble();
 			if (config->keyExists(part_section_name, "BoundVec1Y"))
-				part.BoundVec1.y = String(config->getKey(part_section_name, "BoundVec1Y")).ToDouble();
+				part.BoundVec1.y = String(config->getKey(part_section_name, "BoundVec1Y")).toDouble();
 			if (config->keyExists(part_section_name, "BoundVec1Z"))
-				part.BoundVec1.z = String(config->getKey(part_section_name, "BoundVec1Z")).ToDouble();
+				part.BoundVec1.z = String(config->getKey(part_section_name, "BoundVec1Z")).toDouble();
 			if (config->keyExists(part_section_name, "BoundVec1W"))
-				part.BoundVec1.w = String(config->getKey(part_section_name, "BoundVec1W")).ToDouble();
+				part.BoundVec1.w = String(config->getKey(part_section_name, "BoundVec1W")).toDouble();
 
 			if (config->keyExists(part_section_name, "BoundVec2X"))
-				part.BoundVec2.x = String(config->getKey(part_section_name, "BoundVec2X")).ToDouble();
+				part.BoundVec2.x = String(config->getKey(part_section_name, "BoundVec2X")).toDouble();
 			if (config->keyExists(part_section_name, "BoundVec2Y"))
-				part.BoundVec2.y = String(config->getKey(part_section_name, "BoundVec2Y")).ToDouble();
+				part.BoundVec2.y = String(config->getKey(part_section_name, "BoundVec2Y")).toDouble();
 			if (config->keyExists(part_section_name, "BoundVec2Z"))
-				part.BoundVec2.z = String(config->getKey(part_section_name, "BoundVec2Z")).ToDouble();
+				part.BoundVec2.z = String(config->getKey(part_section_name, "BoundVec2Z")).toDouble();
 			if (config->keyExists(part_section_name, "BoundVec2W"))
-				part.BoundVec2.w = String(config->getKey(part_section_name, "BoundVec2W")).ToDouble();
+				part.BoundVec2.w = String(config->getKey(part_section_name, "BoundVec2W")).toDouble();
 
 
 			if (config->keyExists(part_section_name, "SpawnPosType"))
-				part.SpawnPosType = (PARTICLESTYPE_SPAWNPOS)String(config->getKey(part_section_name, "SpawnPosType")).ToInt();
+				part.SpawnPosType = (PARTICLESTYPE_SPAWNPOS)String(config->getKey(part_section_name, "SpawnPosType")).toInt();
 
 			if (config->keyExists(part_section_name, "SpawnOriginX"))
-				part.SpawnOrigin.x = String(config->getKey(part_section_name, "SpawnOriginX")).ToDouble();
+				part.SpawnOrigin.x = String(config->getKey(part_section_name, "SpawnOriginX")).toDouble();
 			if (config->keyExists(part_section_name, "SpawnOriginY"))
-				part.SpawnOrigin.y = String(config->getKey(part_section_name, "SpawnOriginY")).ToDouble();
+				part.SpawnOrigin.y = String(config->getKey(part_section_name, "SpawnOriginY")).toDouble();
 			if (config->keyExists(part_section_name, "SpawnOriginZ"))
-				part.SpawnOrigin.z = String(config->getKey(part_section_name, "SpawnOriginZ")).ToDouble();
+				part.SpawnOrigin.z = String(config->getKey(part_section_name, "SpawnOriginZ")).toDouble();
 
 			if (config->keyExists(part_section_name, "SpawnOriginDisp"))
-				part.SpawnOriginDisp = String(config->getKey(part_section_name, "SpawnOriginDisp")).ToDouble();
+				part.SpawnOriginDisp = String(config->getKey(part_section_name, "SpawnOriginDisp")).toDouble();
 
 			if (config->keyExists(part_section_name, "SpawnBoundBindCreateXNeg"))
-				part.SpawnBoundBindCreateXNeg = String(config->getKey(part_section_name, "SpawnBoundBindCreateXNeg")).ToBool();
+				part.SpawnBoundBindCreateXNeg = String(config->getKey(part_section_name, "SpawnBoundBindCreateXNeg")).toBool();
 			if (config->keyExists(part_section_name, "SpawnBoundBindCreateXPos"))
-				part.SpawnBoundBindCreateXPos = String(config->getKey(part_section_name, "SpawnBoundBindCreateXPos")).ToBool();
+				part.SpawnBoundBindCreateXPos = String(config->getKey(part_section_name, "SpawnBoundBindCreateXPos")).toBool();
 			if (config->keyExists(part_section_name, "SpawnBoundBindCreateYNeg"))
-				part.SpawnBoundBindCreateYNeg = String(config->getKey(part_section_name, "SpawnBoundBindCreateYNeg")).ToBool();
+				part.SpawnBoundBindCreateYNeg = String(config->getKey(part_section_name, "SpawnBoundBindCreateYNeg")).toBool();
 			if (config->keyExists(part_section_name, "SpawnBoundBindCreateYPos"))
-				part.SpawnBoundBindCreateYPos = String(config->getKey(part_section_name, "SpawnBoundBindCreateYPos")).ToBool();
+				part.SpawnBoundBindCreateYPos = String(config->getKey(part_section_name, "SpawnBoundBindCreateYPos")).toBool();
 			if (config->keyExists(part_section_name, "SpawnBoundBindCreateZNeg"))
-				part.SpawnBoundBindCreateZNeg = String(config->getKey(part_section_name, "SpawnBoundBindCreateZNeg")).ToBool();
+				part.SpawnBoundBindCreateZNeg = String(config->getKey(part_section_name, "SpawnBoundBindCreateZNeg")).toBool();
 			if (config->keyExists(part_section_name, "SpawnBoundBindCreateZPos"))
-				part.SpawnBoundBindCreateZPos = String(config->getKey(part_section_name, "SpawnBoundBindCreateZPos")).ToBool();
+				part.SpawnBoundBindCreateZPos = String(config->getKey(part_section_name, "SpawnBoundBindCreateZPos")).toBool();
 
 			if (config->keyExists(part_section_name, "SpawnNextTime"))
-				part.SpawnNextTime = String(config->getKey(part_section_name, "SpawnNextTime")).ToUnsLongInt();
+				part.SpawnNextTime = String(config->getKey(part_section_name, "SpawnNextTime")).toUnsLongInt();
 			if (config->keyExists(part_section_name, "SpawnNextTimeDisp"))
-				part.SpawnNextTimeDisp = String(config->getKey(part_section_name, "SpawnNextTimeDisp")).ToUnsLongInt();
+				part.SpawnNextTimeDisp = String(config->getKey(part_section_name, "SpawnNextTimeDisp")).toUnsLongInt();
 
 
 			if (config->keyExists(part_section_name, "AnimTexCountCadrsX"))
-				part.AnimTexCountCadrsX = String(config->getKey(part_section_name, "AnimTexCountCadrsX")).ToInt();
+				part.AnimTexCountCadrsX = String(config->getKey(part_section_name, "AnimTexCountCadrsX")).toInt();
 			if (config->keyExists(part_section_name, "AnimTexCountCadrsY"))
-				part.AnimTexCountCadrsY = String(config->getKey(part_section_name, "AnimTexCountCadrsY")).ToInt();
+				part.AnimTexCountCadrsY = String(config->getKey(part_section_name, "AnimTexCountCadrsY")).toInt();
 			if (config->keyExists(part_section_name, "AnimTexRate"))
-				part.AnimTexRate = String(config->getKey(part_section_name, "AnimTexRate")).ToInt();
+				part.AnimTexRate = String(config->getKey(part_section_name, "AnimTexRate")).toInt();
 			if (config->keyExists(part_section_name, "AnimTexRateDisp"))
-				part.AnimTexRateDisp = String(config->getKey(part_section_name, "AnimTexRateDisp")).ToInt();
+				part.AnimTexRateDisp = String(config->getKey(part_section_name, "AnimTexRateDisp")).toInt();
 			if (config->keyExists(part_section_name, "AnimTexStartCadr"))
-				part.AnimTexStartCadr = String(config->getKey(part_section_name, "AnimTexStartCadr")).ToInt();
+				part.AnimTexStartCadr = String(config->getKey(part_section_name, "AnimTexStartCadr")).toInt();
 			if (config->keyExists(part_section_name, "AnimTexStartCadrDisp"))
-				part.AnimTexStartCadrDisp = String(config->getKey(part_section_name, "AnimTexStartCadrDisp")).ToInt();
+				part.AnimTexStartCadrDisp = String(config->getKey(part_section_name, "AnimTexStartCadrDisp")).toInt();
 
 
 			if (config->keyExists(part_section_name, "TimeLife"))
-				part.TimeLife = String(config->getKey(part_section_name, "TimeLife")).ToUnsLongInt();
+				part.TimeLife = String(config->getKey(part_section_name, "TimeLife")).toUnsLongInt();
 			if (config->keyExists(part_section_name, "TimeLifeDisp"))
-				part.TimeLifeDisp = String(config->getKey(part_section_name, "TimeLifeDisp")).ToUnsLongInt();
+				part.TimeLifeDisp = String(config->getKey(part_section_name, "TimeLifeDisp")).toUnsLongInt();
 
 			if (config->keyExists(part_section_name, "AlphaDependAge"))
-				part.AlphaDependAge = (PARTICLESTYPE_DEPEND)String(config->getKey(part_section_name, "AlphaDependAge")).ToInt();
+				part.AlphaDependAge = (PARTICLESTYPE_DEPEND)String(config->getKey(part_section_name, "AlphaDependAge")).toInt();
 
 			if (config->keyExists(part_section_name, "SizeX"))
-				part.Size.x = String(config->getKey(part_section_name, "SizeX")).ToDouble();
+				part.Size.x = String(config->getKey(part_section_name, "SizeX")).toDouble();
 			if (config->keyExists(part_section_name, "SizeY"))
-				part.Size.y = String(config->getKey(part_section_name, "SizeY")).ToDouble();
+				part.Size.y = String(config->getKey(part_section_name, "SizeY")).toDouble();
 
 			if (config->keyExists(part_section_name, "SizeDisp"))
-				part.SizeDisp = String(config->getKey(part_section_name, "SizeDisp")).ToDouble();
+				part.SizeDisp = String(config->getKey(part_section_name, "SizeDisp")).toDouble();
 
 			if (config->keyExists(part_section_name, "SizeDependAge"))
-				part.SizeDependAge = (PARTICLESTYPE_DEPEND)String(config->getKey(part_section_name, "SizeDependAge")).ToInt();
+				part.SizeDependAge = (PARTICLESTYPE_DEPEND)String(config->getKey(part_section_name, "SizeDependAge")).toInt();
 
 
 			if (config->keyExists(part_section_name, "VelocityX"))
-				part.Velocity.x = String(config->getKey(part_section_name, "VelocityX")).ToDouble();
+				part.Velocity.x = String(config->getKey(part_section_name, "VelocityX")).toDouble();
 			if (config->keyExists(part_section_name, "VelocityY"))
-				part.Velocity.y = String(config->getKey(part_section_name, "VelocityY")).ToDouble();
+				part.Velocity.y = String(config->getKey(part_section_name, "VelocityY")).toDouble();
 			if (config->keyExists(part_section_name, "VelocityZ"))
-				part.Velocity.z = String(config->getKey(part_section_name, "VelocityZ")).ToDouble();
+				part.Velocity.z = String(config->getKey(part_section_name, "VelocityZ")).toDouble();
 
 			if (config->keyExists(part_section_name, "VelocityDisp"))
-				part.VelocityDisp = String(config->getKey(part_section_name, "VelocityDisp")).ToDouble();
+				part.VelocityDisp = String(config->getKey(part_section_name, "VelocityDisp")).toDouble();
 
 			if (config->keyExists(part_section_name, "VelocityDispXNeg"))
-				part.VelocityDispXNeg = String(config->getKey(part_section_name, "VelocityDispXNeg")).ToDouble();
+				part.VelocityDispXNeg = String(config->getKey(part_section_name, "VelocityDispXNeg")).toDouble();
 			if (config->keyExists(part_section_name, "VelocityDispYNeg"))
-				part.VelocityDispYNeg = String(config->getKey(part_section_name, "VelocityDispYNeg")).ToDouble();
+				part.VelocityDispYNeg = String(config->getKey(part_section_name, "VelocityDispYNeg")).toDouble();
 			if (config->keyExists(part_section_name, "VelocityDispZNeg"))
-				part.VelocityDispZNeg = String(config->getKey(part_section_name, "VelocityDispZNeg")).ToDouble();
+				part.VelocityDispZNeg = String(config->getKey(part_section_name, "VelocityDispZNeg")).toDouble();
 
 
 			if (config->keyExists(part_section_name, "AccelerationX"))
-				part.Acceleration.x = String(config->getKey(part_section_name, "AccelerationX")).ToDouble();
+				part.Acceleration.x = String(config->getKey(part_section_name, "AccelerationX")).toDouble();
 			if (config->keyExists(part_section_name, "AccelerationY"))
-				part.Acceleration.y = String(config->getKey(part_section_name, "AccelerationY")).ToDouble();
+				part.Acceleration.y = String(config->getKey(part_section_name, "AccelerationY")).toDouble();
 			if (config->keyExists(part_section_name, "AccelerationZ"))
-				part.Acceleration.z = String(config->getKey(part_section_name, "AccelerationZ")).ToDouble();
+				part.Acceleration.z = String(config->getKey(part_section_name, "AccelerationZ")).toDouble();
 
 			if (config->keyExists(part_section_name, "AccelerationDisp"))
-				part.AccelerationDisp = String(config->getKey(part_section_name, "AccelerationDisp")).ToDouble();
+				part.AccelerationDisp = String(config->getKey(part_section_name, "AccelerationDisp")).toDouble();
 
 			if (config->keyExists(part_section_name, "AccelerationDispXNeg"))
-				part.AccelerationDispXNeg = String(config->getKey(part_section_name, "AccelerationDispXNeg")).ToBool();
+				part.AccelerationDispXNeg = String(config->getKey(part_section_name, "AccelerationDispXNeg")).toBool();
 			if (config->keyExists(part_section_name, "AccelerationDispYNeg"))
-				part.AccelerationDispYNeg = String(config->getKey(part_section_name, "AccelerationDispYNeg")).ToBool();
+				part.AccelerationDispYNeg = String(config->getKey(part_section_name, "AccelerationDispYNeg")).toBool();
 			if (config->keyExists(part_section_name, "AccelerationDispZNeg"))
-				part.AccelerationDispZNeg = String(config->getKey(part_section_name, "AccelerationDispZNeg")).ToBool();
+				part.AccelerationDispZNeg = String(config->getKey(part_section_name, "AccelerationDispZNeg")).toBool();
 
 
 			if (config->keyExists(part_section_name, "CharacterCircle"))
-				part.CharacterCircle = String(config->getKey(part_section_name, "CharacterCircle")).ToBool();
+				part.CharacterCircle = String(config->getKey(part_section_name, "CharacterCircle")).toBool();
 			if (config->keyExists(part_section_name, "CharacterCircleAxis"))
-				part.CharacterCircleAxis = (PARTICLES_AXIS)String(config->getKey(part_section_name, "CharacterCircleAxis")).ToInt();
+				part.CharacterCircleAxis = (PARTICLES_AXIS)String(config->getKey(part_section_name, "CharacterCircleAxis")).toInt();
 			if (config->keyExists(part_section_name, "CharacterCircleAngle"))
-				part.CharacterCircleAngle = String(config->getKey(part_section_name, "CharacterCircleAngle")).ToDouble();
+				part.CharacterCircleAngle = String(config->getKey(part_section_name, "CharacterCircleAngle")).toDouble();
 			if (config->keyExists(part_section_name, "CharacterCircleAngleDisp"))
-				part.CharacterCircleAngleDisp = String(config->getKey(part_section_name, "CharacterCircleAngleDisp")).ToDouble();
+				part.CharacterCircleAngleDisp = String(config->getKey(part_section_name, "CharacterCircleAngleDisp")).toDouble();
 			if (config->keyExists(part_section_name, "CharacterCircleAngleDispNeg"))
-				part.CharacterCircleAngleDispNeg = String(config->getKey(part_section_name, "CharacterCircleAngleDispNeg")).ToBool();
+				part.CharacterCircleAngleDispNeg = String(config->getKey(part_section_name, "CharacterCircleAngleDispNeg")).toBool();
 
 
 			if (config->keyExists(part_section_name, "CharacterRotate"))
-				part.CharacterRotate = String(config->getKey(part_section_name, "CharacterRotate")).ToBool();
+				part.CharacterRotate = String(config->getKey(part_section_name, "CharacterRotate")).toBool();
 			if (config->keyExists(part_section_name, "CharacterRotateAngle"))
-				part.CharacterRotateAngle = String(config->getKey(part_section_name, "CharacterRotateAngle")).ToDouble();
+				part.CharacterRotateAngle = String(config->getKey(part_section_name, "CharacterRotateAngle")).toDouble();
 			if (config->keyExists(part_section_name, "CharacterRotateAngleDisp"))
-				part.CharacterRotateAngleDisp = String(config->getKey(part_section_name, "CharacterRotateAngleDisp")).ToDouble();
+				part.CharacterRotateAngleDisp = String(config->getKey(part_section_name, "CharacterRotateAngleDisp")).toDouble();
 			if (config->keyExists(part_section_name, "CharacterRotateAngleDispNeg"))
-				part.CharacterRotateAngleDispNeg = String(config->getKey(part_section_name, "CharacterRotateAngleDispNeg")).ToBool();
+				part.CharacterRotateAngleDispNeg = String(config->getKey(part_section_name, "CharacterRotateAngleDispNeg")).toBool();
 
 
 			if (config->keyExists(part_section_name, "CharacterDeviation"))
-				part.CharacterDeviation = String(config->getKey(part_section_name, "CharacterDeviation")).ToBool();
+				part.CharacterDeviation = String(config->getKey(part_section_name, "CharacterDeviation")).toBool();
 			if (config->keyExists(part_section_name, "CharacterDeviationType"))
-				part.CharacterDeviationType = (PARTICLESTYPE_DEVIATION)String(config->getKey(part_section_name, "CharacterDeviationType")).ToInt();
+				part.CharacterDeviationType = (PARTICLESTYPE_DEVIATION)String(config->getKey(part_section_name, "CharacterDeviationType")).toInt();
 			if (config->keyExists(part_section_name, "CharacterDeviationAmplitude"))
-				part.CharacterDeviationAmplitude = String(config->getKey(part_section_name, "CharacterDeviationAmplitude")).ToDouble();
+				part.CharacterDeviationAmplitude = String(config->getKey(part_section_name, "CharacterDeviationAmplitude")).toDouble();
 			if (config->keyExists(part_section_name, "CharacterDeviationCoefAngle"))
-				part.CharacterDeviationCoefAngle = String(config->getKey(part_section_name, "CharacterDeviationCoefAngle")).ToDouble();
+				part.CharacterDeviationCoefAngle = String(config->getKey(part_section_name, "CharacterDeviationCoefAngle")).toDouble();
 			if (config->keyExists(part_section_name, "CharacterDeviationAxis"))
-				part.CharacterDeviationAxis = (PARTICLES_AXIS)String(config->getKey(part_section_name, "CharacterDeviationAxis")).ToInt();
+				part.CharacterDeviationAxis = (PARTICLES_AXIS)String(config->getKey(part_section_name, "CharacterDeviationAxis")).toInt();
 			if (config->keyExists(part_section_name, "CharacterDeviationCountDelayMls"))
-				part.CharacterDeviationCountDelayMls = String(config->getKey(part_section_name, "CharacterDeviationCountDelayMls")).ToUnsLongInt();
+				part.CharacterDeviationCountDelayMls = String(config->getKey(part_section_name, "CharacterDeviationCountDelayMls")).toUnsLongInt();
 			if (config->keyExists(part_section_name, "CharacterDeviationCoefAngleDisp"))
-				part.CharacterDeviationCoefAngleDisp = String(config->getKey(part_section_name, "CharacterDeviationCoefAngleDisp")).ToDouble();
+				part.CharacterDeviationCoefAngleDisp = String(config->getKey(part_section_name, "CharacterDeviationCoefAngleDisp")).toDouble();
 			if (config->keyExists(part_section_name, "CharacterDeviationCoefAngleDispNeg"))
-				part.CharacterDeviationCoefAngleDispNeg = String(config->getKey(part_section_name, "CharacterDeviationCoefAngleDispNeg")).ToBool();
+				part.CharacterDeviationCoefAngleDispNeg = String(config->getKey(part_section_name, "CharacterDeviationCoefAngleDispNeg")).toBool();
 
 			if (config->keyExists(part_section_name, "CharacterDeviationTapX"))
-				part.CharacterDeviationTapX = String(config->getKey(part_section_name, "CharacterDeviationTapX")).ToBool();
+				part.CharacterDeviationTapX = String(config->getKey(part_section_name, "CharacterDeviationTapX")).toBool();
 			if (config->keyExists(part_section_name, "CharacterDeviationTapY"))
-				part.CharacterDeviationTapY = String(config->getKey(part_section_name, "CharacterDeviationTapY")).ToBool();
+				part.CharacterDeviationTapY = String(config->getKey(part_section_name, "CharacterDeviationTapY")).toBool();
 			if (config->keyExists(part_section_name, "CharacterDeviationTapZ"))
-				part.CharacterDeviationTapZ = String(config->getKey(part_section_name, "CharacterDeviationTapZ")).ToBool();
+				part.CharacterDeviationTapZ = String(config->getKey(part_section_name, "CharacterDeviationTapZ")).toBool();
 
 
 			if (config->keyExists(part_section_name, "FigureType"))
-				part.FigureType = (PARTICLESTYPE_FIGURE)String(config->getKey(part_section_name, "FigureType")).ToInt();
+				part.FigureType = (PARTICLESTYPE_FIGURE)String(config->getKey(part_section_name, "FigureType")).toInt();
 			if (config->keyExists(part_section_name, "CharacterDeviationAxis"))
-				part.FigureCountQuads = String(config->getKey(part_section_name, "FigureCountQuads")).ToInt();
+				part.FigureCountQuads = String(config->getKey(part_section_name, "FigureCountQuads")).toInt();
 
 			if (config->keyExists(part_section_name, "FigureRotRand"))
-				part.FigureRotRand = String(config->getKey(part_section_name, "FigureRotRand")).ToBool();
+				part.FigureRotRand = String(config->getKey(part_section_name, "FigureRotRand")).toBool();
 
 			if (config->keyExists(part_section_name, "FigureTapX"))
-				part.FigureTapX = String(config->getKey(part_section_name, "FigureTapX")).ToBool();
+				part.FigureTapX = String(config->getKey(part_section_name, "FigureTapX")).toBool();
 			if (config->keyExists(part_section_name, "FigureTapY"))
-				part.FigureTapY = String(config->getKey(part_section_name, "FigureTapY")).ToBool();
+				part.FigureTapY = String(config->getKey(part_section_name, "FigureTapY")).toBool();
 			if (config->keyExists(part_section_name, "FigureTapZ"))
-				part.FigureTapZ = String(config->getKey(part_section_name, "FigureTapZ")).ToBool();
+				part.FigureTapZ = String(config->getKey(part_section_name, "FigureTapZ")).toBool();
 
 			if (config->keyExists(part_section_name, "ReCreateCount"))
-				part.ReCreateCount = String(config->getKey(part_section_name, "ReCreateCount")).ToInt();
+				part.ReCreateCount = String(config->getKey(part_section_name, "ReCreateCount")).toInt();
 
 			if (config->keyExists(part_section_name, "AlphaBlendType"))
-				part.AlphaBlendType = (PARTICLESTYPE_ALPHABLEND)String(config->getKey(part_section_name, "AlphaBlendType")).ToInt();
+				part.AlphaBlendType = (PARTICLESTYPE_ALPHABLEND)String(config->getKey(part_section_name, "AlphaBlendType")).toInt();
 
 			if (config->keyExists(part_section_name, "ColorCoef"))
-				part.ColorCoef = String(config->getKey(part_section_name, "ColorCoef")).ToDouble();
+				part.ColorCoef = String(config->getKey(part_section_name, "ColorCoef")).toDouble();
 
 			if (config->keyExists(part_section_name, "Soft"))
-				part.Soft = String(config->getKey(part_section_name, "Soft")).ToBool();
+				part.Soft = String(config->getKey(part_section_name, "Soft")).toBool();
 			if (config->keyExists(part_section_name, "SoftCoef"))
-				part.SoftCoef = String(config->getKey(part_section_name, "SoftCoef")).ToDouble();
+				part.SoftCoef = String(config->getKey(part_section_name, "SoftCoef")).toDouble();
 
 			if (config->keyExists(part_section_name, "Refraction"))
-				part.Refraction = String(config->getKey(part_section_name, "Refraction")).ToBool();
+				part.Refraction = String(config->getKey(part_section_name, "Refraction")).toBool();
 			if (config->keyExists(part_section_name, "RefractionCoef"))
-				part.RefractionCoef = String(config->getKey(part_section_name, "RefractionCoef")).ToDouble();
+				part.RefractionCoef = String(config->getKey(part_section_name, "RefractionCoef")).toDouble();
 
 			if (config->keyExists(part_section_name, "TransparencyCoef"))
-				part.TransparencyCoef = String(config->getKey(part_section_name, "TransparencyCoef")).ToDouble();
+				part.TransparencyCoef = String(config->getKey(part_section_name, "TransparencyCoef")).toDouble();
 			if (config->keyExists(part_section_name, "Lighting"))
-				part.Lighting = String(config->getKey(part_section_name, "Lighting")).ToBool();
+				part.Lighting = String(config->getKey(part_section_name, "Lighting")).toBool();
 			if (config->keyExists(part_section_name, "CollisionDelete"))
-				part.CollisionDelete = String(config->getKey(part_section_name, "CollisionDelete")).ToBool();
+				part.CollisionDelete = String(config->getKey(part_section_name, "CollisionDelete")).toBool();
 
 
 			if (config->keyExists(part_section_name, "Track"))
-				part.Track = String(config->getKey(part_section_name, "Track")).ToBool();
+				part.Track = String(config->getKey(part_section_name, "Track")).toBool();
 
 			if (config->keyExists(part_section_name, "TrackSize"))
-				part.TrackSize = String(config->getKey(part_section_name, "TrackSize")).ToDouble();
+				part.TrackSize = String(config->getKey(part_section_name, "TrackSize")).toDouble();
 
 			if (config->keyExists(part_section_name, "TrackTime"))
-				part.TrackTime = String(config->getKey(part_section_name, "TrackTime")).ToUnsLongInt();
+				part.TrackTime = String(config->getKey(part_section_name, "TrackTime")).toUnsLongInt();
 
 			
 			ID part_id = this->EmitterAdd(eff_id, &part);
@@ -588,7 +588,7 @@ void Effects::Load(const char* path)
 				EmitterNameSet(eff_id, part_id, config->getKey(part_section_name, "name"));
 
 			if (config->keyExists(part_section_name, "count"))
-				EmitterCountSet(eff_id, part_id, String(config->getKey(part_section_name, "count")).ToInt());
+				EmitterCountSet(eff_id, part_id, String(config->getKey(part_section_name, "count")).toInt());
 
 			if (config->keyExists(part_section_name, "texture"))
 				EmitterTextureSet(eff_id, part_id, config->getKey(part_section_name, "texture"));
diff --git a/source/score/sound.h b/source/score/sound.h
index 1bdb88b5a..ba46505b8 100644
--- a/source/score/sound.h
+++ b/source/score/sound.h
@@ -29,29 +29,6 @@ See the license in LICENSE
 
 //##########################################################################
 
-//перенести в common
-struct AAStringNR : public AAString
-{
-	__forceinline AAStringNR(const char * str)
-	{
-		tmpName = str;
-		Name[0] = 0;
-	}
-
-	__forceinline AAStringNR()
-	{
-		tmpName = NULL;
-		Name[0] = 0;
-	}
-
-	__forceinline bool operator==(const AAStringNR & str) const
-	{
-		return(stricmp(tmpName ? tmpName : Name, str.tmpName ? str.tmpName : str.Name) == 0);
-	}
-};
-
-//##########################################################################
-
 /*! проверка допустимости id звука, в случае провала вылет */
 #define SOUND_PRECOND(id, retval) \
 if (id >= m_aSounds.size() || id < 0 || !(m_aSounds[id]))\
@@ -157,7 +134,7 @@ inline bool SndGetDataFromStr(const char *szSrcStr, String &sFile, float &fDistA
 	for (int k = 3, kl = aStrConfig.size(); k < kl; ++k)
 	{
 		String str = aStrConfig[k];
-		aDelays.push_back(aStrConfig[k].ToUnsLongInt());
+		aDelays.push_back(aStrConfig[k].toUnsLongInt());
 	}
 
 	if (aDelays.size() > 0)
diff --git a/source/skyxengine.cpp b/source/skyxengine.cpp
index 4224de6bb..5c620b953 100644
--- a/source/skyxengine.cpp
+++ b/source/skyxengine.cpp
@@ -1434,7 +1434,7 @@ IDirect3DTexture9* SkyXEngine_LoadAsPreviewData(const char *szPath)
 IDirect3DTexture9* SkyXEngine_GetPreviewData(const char *szPath)
 {
 	String sPath = szPath;
-	sPath.Replace(SKYXENGINE_RELPATH_GAMESOURCE, SKYXENGINE_RELPATH_EDITOR_CACHE, 0);
+	sPath.replace(SKYXENGINE_RELPATH_GAMESOURCE, SKYXENGINE_RELPATH_EDITOR_CACHE, 0);
 	sPath = FileSetStrExt(sPath.c_str(), "jpg");
 
 	if (FileExistsFile(sPath.c_str()))
diff --git a/source/sxgenpreview/sxgenpreview.cpp b/source/sxgenpreview/sxgenpreview.cpp
index cc20e7509..4e969c072 100644
--- a/source/sxgenpreview/sxgenpreview.cpp
+++ b/source/sxgenpreview/sxgenpreview.cpp
@@ -26,7 +26,7 @@ UINT CreatePreviewTextures()
 	UINT uStartTime = GetTickCount();
 	String sGameTextures = Core_RStringGet(G_RI_STRING_PATH_GS_TEXTURES);
 	String sPreviewTextures = Core_RStringGet(G_RI_STRING_PATH_GS_TEXTURES);
-	sPreviewTextures.Replace(SKYXENGINE_RELPATH_GAMESOURCE, SKYXENGINE_RELPATH_EDITOR_CACHE, 0);
+	sPreviewTextures.replace(SKYXENGINE_RELPATH_GAMESOURCE, SKYXENGINE_RELPATH_EDITOR_CACHE, 0);
 
 	Array<String> aDirs = FileGetListDirs(sGameTextures.c_str());
 
@@ -113,7 +113,7 @@ UINT CreatePreviewModels()
 		//printf("%s\n", aFiles[i].c_str());
 
 		String sPreview = aFiles[i];
-		sPreview.Replace(SKYXENGINE_RELPATH_GAMESOURCE, SKYXENGINE_RELPATH_EDITOR_CACHE, 0);
+		sPreview.replace(SKYXENGINE_RELPATH_GAMESOURCE, SKYXENGINE_RELPATH_EDITOR_CACHE, 0);
 		sPreview = FileSetStrExt(sPreview.c_str(), "jpg");
 
 		if (FileGetTimeLastModify(sPreview.c_str()) >= FileGetTimeLastModify(aFiles[i].c_str()))
diff --git a/source/sxleveleditor/common_callback.cpp b/source/sxleveleditor/common_callback.cpp
index 6da764c94..78c125b62 100644
--- a/source/sxleveleditor/common_callback.cpp
+++ b/source/sxleveleditor/common_callback.cpp
@@ -108,7 +108,7 @@ void SXLevelEditor::LevelSaveAs()
 	char tmpname[1024];
 	//gui_func::dialogs::SelectFileStd(SXGUI_DIALOG_FILE_SAVE, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_LEVELS), FILE_FILTER_LEVEL);
 	gui_func::dialogs::SelectDirOwn(tmpname, tmppath, Core_RStringGet(G_RI_STRING_PATH_GS_LEVELS), "Save level", false, true, 0/*, HandlerPreviewLevel*/);
-	if (StrValidate(tmppath))
+	if(def_str_validate(tmppath))
 	{
 		//StrCutNameNEx(tmppath, tmpname);
 		SLevel_Save(tmpname);
diff --git a/source/sxleveleditor/game_callback.cpp b/source/sxleveleditor/game_callback.cpp
index 2f776aa13..fb0cd3e14 100644
--- a/source/sxleveleditor/game_callback.cpp
+++ b/source/sxleveleditor/game_callback.cpp
@@ -433,7 +433,7 @@ LRESULT SXLevelEditor_ButtonGameValue_Click(HWND hwnd, UINT msg, WPARAM wParam,
 	if (gui_func::dialogs::SelectFileOwn(tmpname, tmppath, Core_RStringGet(G_RI_STRING_PATH_GS_MODELS), "dse", "Select model", true, Core_RStringGet(G_RI_STRING_PATH_GS_MODELS), SXLevelEditor::JobWindow->getHWND(), SkyXEngine_EditorHandlerGetPreviewData, SkyXEngine_EditorHandlerGetDSEinfo))
 	{
 		String tmpstr = tmppath + strlen(Core_RStringGet(G_RI_STRING_PATH_GAMESOURCE));
-		tmpstr.ReplaceAll("\\", "/");
+		tmpstr.replaceAll("\\", "/");
 		sprintf(tmpname, "%s", tmpstr.c_str());
 		SXLevelEditor::EditGameValue->setText(tmpname);
 
diff --git a/source/sxmaterialeditor/paraml_kit.cpp b/source/sxmaterialeditor/paraml_kit.cpp
index ce45e134e..4d1df29fa 100644
--- a/source/sxmaterialeditor/paraml_kit.cpp
+++ b/source/sxmaterialeditor/paraml_kit.cpp
@@ -28,7 +28,7 @@ void ParamLKit::Load(const char* path)
 		return;
 	}
 
-	int count = String(config->getKey("paraml_kit", "count")).ToInt();
+	int count = String(config->getKey("paraml_kit", "count")).toInt();
 	char section_name[CONFIG_SECTION_MAX_LEN];
 
 	for (int i = 0; i < count; ++i)
@@ -45,9 +45,9 @@ void ParamLKit::Load(const char* path)
 
 		paraml* tmpparaml = new paraml();
 		tmpparaml->name = config->getKey(section_name, "name");
-		tmpparaml->thickness = String(config->getKey(section_name, "thickness")).ToDouble();
-		tmpparaml->roughness = String(config->getKey(section_name, "roughness")).ToDouble();
-		tmpparaml->f0 = String(config->getKey(section_name, "f0")).ToDouble();
+		tmpparaml->thickness = String(config->getKey(section_name, "thickness")).toDouble();
+		tmpparaml->roughness = String(config->getKey(section_name, "roughness")).toDouble();
+		tmpparaml->f0 = String(config->getKey(section_name, "f0")).toDouble();
 
 		Arr.push_back(tmpparaml);
 	}
diff --git a/source/sxmaterialeditor/shaders_kit.cpp b/source/sxmaterialeditor/shaders_kit.cpp
index 0a0ce668a..9ac8c3b94 100644
--- a/source/sxmaterialeditor/shaders_kit.cpp
+++ b/source/sxmaterialeditor/shaders_kit.cpp
@@ -28,7 +28,7 @@ void ShadersKit::Load(const char* path)
 		return;
 	}
 
-	int count = String(config->getKey("shaders_kit", "count")).ToInt();
+	int count = String(config->getKey("shaders_kit", "count")).toInt();
 	char section_name[CONFIG_SECTION_MAX_LEN];
 
 	for (int i = 0; i < count; ++i)
diff --git a/source/sxparticleseditor/callback_common.cpp b/source/sxparticleseditor/callback_common.cpp
index 00afd317e..d3e17aa23 100644
--- a/source/sxparticleseditor/callback_common.cpp
+++ b/source/sxparticleseditor/callback_common.cpp
@@ -430,42 +430,42 @@ LRESULT SXParticlesEditor_Edits_Enter(HWND hwnd, UINT msg, WPARAM wParam, LPARAM
 	}
 	else if (hwnd == SXParticlesEditor::EditColorCoef->getHWND())
 	{
-		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, ColorCoef, String(ttext).ToDouble());
+		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, ColorCoef, String(ttext).toDouble());
 	}
 
 	else if (hwnd == SXParticlesEditor::EditColorR->getHWND())
 	{
-		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Color.x, String(ttext).ToDouble());
+		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Color.x, String(ttext).toDouble());
 	}
 	else if (hwnd == SXParticlesEditor::EditColorG->getHWND())
 	{
-		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Color.y, String(ttext).ToDouble());
+		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Color.y, String(ttext).toDouble());
 	}
 	else if (hwnd == SXParticlesEditor::EditColorB->getHWND())
 	{
-		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Color.z, String(ttext).ToDouble());
+		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Color.z, String(ttext).toDouble());
 	}
 	else if (hwnd == SXParticlesEditor::EditColorA->getHWND())
 	{
-		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Color.w, String(ttext).ToDouble());
+		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Color.w, String(ttext).toDouble());
 	}
 
 	else if (hwnd == SXParticlesEditor::EditReCreateCount->getHWND())
 	{
-		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, ReCreateCount, String(ttext).ToInt());
+		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, ReCreateCount, String(ttext).toInt());
 	}
 
 	else if (hwnd == SXParticlesEditor::EditSoftCoef->getHWND())
 	{
-		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SoftCoef, String(ttext).ToDouble());
+		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SoftCoef, String(ttext).toDouble());
 	}
 	else if (hwnd == SXParticlesEditor::EditRefractionCoef->getHWND())
 	{
-		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, RefractionCoef, String(ttext).ToDouble());
+		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, RefractionCoef, String(ttext).toDouble());
 	}
 	else if (hwnd == SXParticlesEditor::EditTransparencyCoef->getHWND())
 	{
-		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, TransparencyCoef, String(ttext).ToDouble());
+		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, TransparencyCoef, String(ttext).toDouble());
 	}
 
 	else if (hwnd == SXParticlesEditor::EditFigureCountQuads->getHWND())
@@ -545,11 +545,11 @@ LRESULT SXParticlesEditor_Edits_Enter(HWND hwnd, UINT msg, WPARAM wParam, LPARAM
 
 	else if (hwnd == SXParticlesEditor::EditTrackSize->getHWND())
 	{
-		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, TrackSize, String(ttext).ToDouble());
+		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, TrackSize, String(ttext).toDouble());
 	}
 	else if (hwnd == SXParticlesEditor::EditTrackTime->getHWND())
 	{
-		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, TrackTime, String(ttext).ToDouble());
+		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, TrackTime, String(ttext).toDouble());
 	}
 
 	else if (hwnd == SXParticlesEditor::EditAnimTexCountCadrsX->getHWND())
-- 
GitLab