diff --git a/.gitkeep b/.gitkeep deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/build/gamesource/config/entities/classes.ent b/build/gamesource/config/entities/classes.ent index b0b7cf2c7190c9660cefe1732cf049de2d73ade8..8b2422ed126b5fdbee25bfdceb62b569156dd57e 100644 --- a/build/gamesource/config/entities/classes.ent +++ b/build/gamesource/config/entities/classes.ent @@ -51,6 +51,10 @@ single_speed = 40; выст/мин burst_speed = 100; выст/мин effective_distance = 650 + +;разброс +spread_base = 0.33 ;угол (в градусах) базовой дисперсии оружия (оружия, зажатого в тисках) + ; Боевая скорострельность (одиночными): 40 выст/мин ; Боевая скорострельность (очередями): 100 выст/мин ; Дальность, до которой сохраняется убойное действие пули: 1350 м @@ -80,8 +84,6 @@ durability = 350000 durability_return_min = 0.7 ; при ремонте: durability_return_max = 0.9 ; durability_max = durability_max * rand(durability_return_min, durability_return_max) -;разброс -fire_dispersion_base = 0.33 ;угол (в градусах) базовой дисперсии оружия (оружия, зажатого в тисках) ;отдача cam_return = 0 diff --git a/build/sysconfig.cfg b/build/sysconfig.cfg index cf190d3f6e162e0e1227562d504984882c7e23a2..595abcb14e782db5c72c44363f5e0911ff0a0386 100644 --- a/build/sysconfig.cfg +++ b/build/sysconfig.cfg @@ -24,9 +24,9 @@ bind f8 change_mode_window_abs cl_mode_editor 1 r_default_fov 1.046 -r_stats 0 -r_win_width 1024 -r_win_height 768 +r_stats 1 +r_win_width 800 +r_win_height 600 pp_ssao 1 pp_bloom true diff --git a/proj/sxgame/vs2013/sxgame.vcxproj b/proj/sxgame/vs2013/sxgame.vcxproj index a0ebed554340ecea118d218c68b7fbdf3c231d50..49968e5526ed205c8010da021f8bb518cb1fdeec 100644 --- a/proj/sxgame/vs2013/sxgame.vcxproj +++ b/proj/sxgame/vs2013/sxgame.vcxproj @@ -97,6 +97,7 @@ <ClCompile Include="..\..\..\source\game\BaseSilencer.cpp" /> <ClCompile Include="..\..\..\source\game\BaseWeaponAddon.cpp" /> <ClCompile Include="..\..\..\source\game\BaseTrigger.cpp" /> + <ClCompile Include="..\..\..\source\game\BaseCharacter.cpp" /> <ClCompile Include="..\..\..\source\game\crosshair.cpp" /> <ClCompile Include="..\..\..\source\game\CrosshairManager.cpp" /> <ClCompile Include="..\..\..\source\game\EntityFactory.cpp" /> @@ -110,20 +111,20 @@ <ClCompile Include="..\..\..\source\game\PathCorner.cpp" /> <ClCompile Include="..\..\..\source\game\proptable.cpp" /> <ClCompile Include="..\..\..\source\game\Ragdoll.cpp" /> - <ClCompile Include="..\..\..\source\game\SXbaseAmmo.cpp" /> - <ClCompile Include="..\..\..\source\game\SXbaseAmmoBox.cpp" /> - <ClCompile Include="..\..\..\source\game\SXbaseAnimating.cpp" /> - <ClCompile Include="..\..\..\source\game\SXbaseEntity.cpp" /> - <ClCompile Include="..\..\..\source\game\SXbaseItem.cpp" /> - <ClCompile Include="..\..\..\source\game\SXbaseRiffle.cpp" /> - <ClCompile Include="..\..\..\source\game\SXbaseSupply.cpp" /> - <ClCompile Include="..\..\..\source\game\SXbaseTool.cpp" /> - <ClCompile Include="..\..\..\source\game\SXbaseWeapon.cpp" /> + <ClCompile Include="..\..\..\source\game\BaseAmmo.cpp" /> + <ClCompile Include="..\..\..\source\game\BaseAmmoBox.cpp" /> + <ClCompile Include="..\..\..\source\game\BaseAnimating.cpp" /> + <ClCompile Include="..\..\..\source\game\BaseEntity.cpp" /> + <ClCompile Include="..\..\..\source\game\BaseItem.cpp" /> + <ClCompile Include="..\..\..\source\game\BaseRiffle.cpp" /> + <ClCompile Include="..\..\..\source\game\BaseSupply.cpp" /> + <ClCompile Include="..\..\..\source\game\BaseTool.cpp" /> + <ClCompile Include="..\..\..\source\game\BaseWeapon.cpp" /> <ClCompile Include="..\..\..\source\game\sxgame_dll.cpp" /> - <ClCompile Include="..\..\..\source\game\SXplayer.cpp" /> - <ClCompile Include="..\..\..\source\game\SXplayerSpawn.cpp" /> - <ClCompile Include="..\..\..\source\game\SXpointCamera.cpp" /> - <ClCompile Include="..\..\..\source\game\SXpointEntity.cpp" /> + <ClCompile Include="..\..\..\source\game\Player.cpp" /> + <ClCompile Include="..\..\..\source\game\PlayerSpawn.cpp" /> + <ClCompile Include="..\..\..\source\game\PointCamera.cpp" /> + <ClCompile Include="..\..\..\source\game\PointEntity.cpp" /> </ItemGroup> <ItemGroup> <ClInclude Include="..\..\..\source\common\AAString.h" /> @@ -133,6 +134,7 @@ <ClInclude Include="..\..\..\source\game\BaseSilencer.h" /> <ClInclude Include="..\..\..\source\game\BaseWeaponAddon.h" /> <ClInclude Include="..\..\..\source\game\BaseTrigger.h" /> + <ClInclude Include="..\..\..\source\game\BaseCharacter.h" /> <ClInclude Include="..\..\..\source\game\crosshair.h" /> <ClInclude Include="..\..\..\source\game\CrosshairManager.h" /> <ClInclude Include="..\..\..\source\game\EntityFactory.h" /> @@ -146,22 +148,22 @@ <ClInclude Include="..\..\..\source\game\PathCorner.h" /> <ClInclude Include="..\..\..\source\game\proptable.h" /> <ClInclude Include="..\..\..\source\game\Ragdoll.h" /> - <ClInclude Include="..\..\..\source\game\SXbaseAmmo.h" /> - <ClInclude Include="..\..\..\source\game\SXbaseAmmoBox.h" /> - <ClInclude Include="..\..\..\source\game\SXbaseAnimating.h" /> - <ClInclude Include="..\..\..\source\game\SXbaseEntity.h" /> - <ClInclude Include="..\..\..\source\game\SXbaseItem.h" /> - <ClInclude Include="..\..\..\source\game\SXbasePistol.h" /> - <ClInclude Include="..\..\..\source\game\SXbaseRiffle.h" /> + <ClInclude Include="..\..\..\source\game\BaseAmmo.h" /> + <ClInclude Include="..\..\..\source\game\BaseAmmoBox.h" /> + <ClInclude Include="..\..\..\source\game\BaseAnimating.h" /> + <ClInclude Include="..\..\..\source\game\BaseEntity.h" /> + <ClInclude Include="..\..\..\source\game\BaseItem.h" /> + <ClInclude Include="..\..\..\source\game\BasePistol.h" /> + <ClInclude Include="..\..\..\source\game\BaseRiffle.h" /> <ClInclude Include="..\..\..\source\game\SXbaseSnipe.h" /> - <ClInclude Include="..\..\..\source\game\SXbaseSupply.h" /> - <ClInclude Include="..\..\..\source\game\SXbaseTool.h" /> - <ClInclude Include="..\..\..\source\game\SXbaseWeapon.h" /> + <ClInclude Include="..\..\..\source\game\BaseSupply.h" /> + <ClInclude Include="..\..\..\source\game\BaseTool.h" /> + <ClInclude Include="..\..\..\source\game\BaseWeapon.h" /> <ClInclude Include="..\..\..\source\game\sxgame.h" /> - <ClInclude Include="..\..\..\source\game\SXplayer.h" /> - <ClInclude Include="..\..\..\source\game\SXplayerSpawn.h" /> - <ClInclude Include="..\..\..\source\game\SXpointCamera.h" /> - <ClInclude Include="..\..\..\source\game\SXpointEntity.h" /> + <ClInclude Include="..\..\..\source\game\Player.h" /> + <ClInclude Include="..\..\..\source\game\PlayerSpawn.h" /> + <ClInclude Include="..\..\..\source\game\PointCamera.h" /> + <ClInclude Include="..\..\..\source\game\PointEntity.h" /> </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <ImportGroup Label="ExtensionTargets"> diff --git a/proj/sxgame/vs2013/sxgame.vcxproj.filters b/proj/sxgame/vs2013/sxgame.vcxproj.filters index 55022f88ce2ef8af728f3e0df1b75771cfcf09cd..1fd6f5807ca9c46dcab9e6cc3389acce1053427e 100644 --- a/proj/sxgame/vs2013/sxgame.vcxproj.filters +++ b/proj/sxgame/vs2013/sxgame.vcxproj.filters @@ -49,14 +49,23 @@ <Filter Include="Source Files\ents\triggers"> <UniqueIdentifier>{a19af9a9-9698-4f6e-94fc-fc12afaa10a2}</UniqueIdentifier> </Filter> + <Filter Include="Header Files\ents\characters"> + <UniqueIdentifier>{dd25ca33-fbd9-40fb-878e-4d2f1531565f}</UniqueIdentifier> + </Filter> + <Filter Include="Header Files\ents\characters\npc"> + <UniqueIdentifier>{befd7b49-c663-45c4-87cf-9d481da7fb90}</UniqueIdentifier> + </Filter> + <Filter Include="Source Files\ents\characters"> + <UniqueIdentifier>{9a873af0-2663-4675-9e2e-ce30a5bfc8ea}</UniqueIdentifier> + </Filter> + <Filter Include="Source Files\ents\characters\npc"> + <UniqueIdentifier>{474c6cbf-9b16-4a74-876b-edd6fc116cbc}</UniqueIdentifier> + </Filter> </ItemGroup> <ItemGroup> <ClCompile Include="..\..\..\source\game\sxgame_dll.cpp"> <Filter>Source Files</Filter> </ClCompile> - <ClCompile Include="..\..\..\source\game\SXbaseEntity.cpp"> - <Filter>Source Files\ents</Filter> - </ClCompile> <ClCompile Include="..\..\..\source\game\proptable.cpp"> <Filter>Source Files</Filter> </ClCompile> @@ -69,21 +78,6 @@ <ClCompile Include="..\..\..\source\game\EntityManager.cpp"> <Filter>Source Files</Filter> </ClCompile> - <ClCompile Include="..\..\..\source\game\SXpointEntity.cpp"> - <Filter>Source Files\ents</Filter> - </ClCompile> - <ClCompile Include="..\..\..\source\game\SXplayerSpawn.cpp"> - <Filter>Source Files\ents</Filter> - </ClCompile> - <ClCompile Include="..\..\..\source\game\SXplayer.cpp"> - <Filter>Source Files\ents</Filter> - </ClCompile> - <ClCompile Include="..\..\..\source\game\SXpointCamera.cpp"> - <Filter>Source Files\ents</Filter> - </ClCompile> - <ClCompile Include="..\..\..\source\game\SXbaseAnimating.cpp"> - <Filter>Source Files\ents</Filter> - </ClCompile> <ClCompile Include="..\..\..\source\game\PathCorner.cpp"> <Filter>Source Files\ents</Filter> </ClCompile> @@ -93,30 +87,6 @@ <ClCompile Include="..\..\..\source\game\GameData.cpp"> <Filter>Source Files</Filter> </ClCompile> - <ClCompile Include="..\..\..\source\game\SXbaseItem.cpp"> - <Filter>Source Files\ents\items</Filter> - </ClCompile> - <ClCompile Include="..\..\..\source\game\SXbaseAmmo.cpp"> - <Filter>Source Files\ents\items</Filter> - </ClCompile> - <ClCompile Include="..\..\..\source\game\SXbaseAmmoBox.cpp"> - <Filter>Source Files\ents\items</Filter> - </ClCompile> - <ClCompile Include="..\..\..\source\game\SXbaseTool.cpp"> - <Filter>Source Files\ents\items\tools</Filter> - </ClCompile> - <ClCompile Include="..\..\..\source\game\SXbaseRiffle.cpp"> - <Filter>Source Files\ents\items\tools\weapons</Filter> - </ClCompile> - <ClCompile Include="..\..\..\source\game\SXbaseWeapon.cpp"> - <Filter>Source Files\ents\items\tools</Filter> - </ClCompile> - <ClCompile Include="..\..\..\source\game\NPCBase.cpp"> - <Filter>Source Files\ents</Filter> - </ClCompile> - <ClCompile Include="..\..\..\source\game\NPCZombie.cpp"> - <Filter>Source Files\ents</Filter> - </ClCompile> <ClCompile Include="..\..\..\source\game\LightDirectional.cpp"> <Filter>Source Files\ents</Filter> </ClCompile> @@ -150,7 +120,52 @@ <ClCompile Include="..\..\..\source\game\BaseTrigger.cpp"> <Filter>Source Files\ents\triggers</Filter> </ClCompile> - <ClCompile Include="..\..\..\source\game\SXbaseSupply.cpp"> + <ClCompile Include="..\..\..\source\game\NPCZombie.cpp"> + <Filter>Source Files\ents\characters\npc</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\game\NPCBase.cpp"> + <Filter>Source Files\ents\characters</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\game\BaseEntity.cpp"> + <Filter>Source Files\ents</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\game\BaseAnimating.cpp"> + <Filter>Source Files\ents</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\game\PlayerSpawn.cpp"> + <Filter>Source Files\ents</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\game\PointCamera.cpp"> + <Filter>Source Files\ents</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\game\PointEntity.cpp"> + <Filter>Source Files\ents</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\game\BaseTool.cpp"> + <Filter>Source Files\ents\items\tools</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\game\BaseWeapon.cpp"> + <Filter>Source Files\ents\items\tools</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\game\BaseRiffle.cpp"> + <Filter>Source Files\ents\items\tools\weapons</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\game\Player.cpp"> + <Filter>Source Files\ents\characters</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\game\BaseCharacter.cpp"> + <Filter>Source Files\ents\characters</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\game\BaseSupply.cpp"> + <Filter>Source Files\ents\items</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\game\BaseItem.cpp"> + <Filter>Source Files\ents\items</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\game\BaseAmmo.cpp"> + <Filter>Source Files\ents\items</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\game\BaseAmmoBox.cpp"> <Filter>Source Files\ents\items</Filter> </ClCompile> </ItemGroup> @@ -161,30 +176,12 @@ <ClInclude Include="..\..\..\source\game\EntityManager.h"> <Filter>Header Files</Filter> </ClInclude> - <ClInclude Include="..\..\..\source\game\SXbaseEntity.h"> - <Filter>Header Files\ents</Filter> - </ClInclude> - <ClInclude Include="..\..\..\source\game\SXbaseAnimating.h"> - <Filter>Header Files\ents</Filter> - </ClInclude> - <ClInclude Include="..\..\..\source\game\SXplayer.h"> - <Filter>Header Files\ents</Filter> - </ClInclude> - <ClInclude Include="..\..\..\source\game\SXpointEntity.h"> - <Filter>Header Files\ents</Filter> - </ClInclude> - <ClInclude Include="..\..\..\source\game\SXplayerSpawn.h"> - <Filter>Header Files\ents</Filter> - </ClInclude> <ClInclude Include="..\..\..\source\game\EntityFactory.h"> <Filter>Header Files</Filter> </ClInclude> <ClInclude Include="..\..\..\source\game\proptable.h"> <Filter>Header Files</Filter> </ClInclude> - <ClInclude Include="..\..\..\source\game\SXpointCamera.h"> - <Filter>Header Files\ents</Filter> - </ClInclude> <ClInclude Include="..\..\..\source\game\PathCorner.h"> <Filter>Header Files\ents</Filter> </ClInclude> @@ -197,36 +194,9 @@ <ClInclude Include="..\..\..\source\common\AAString.h"> <Filter>Header Files</Filter> </ClInclude> - <ClInclude Include="..\..\..\source\game\SXbaseRiffle.h"> - <Filter>Header Files\ents\items\tools\weapons</Filter> - </ClInclude> <ClInclude Include="..\..\..\source\game\SXbaseSnipe.h"> <Filter>Header Files\ents\items\tools\weapons</Filter> </ClInclude> - <ClInclude Include="..\..\..\source\game\SXbasePistol.h"> - <Filter>Header Files\ents\items\tools\weapons</Filter> - </ClInclude> - <ClInclude Include="..\..\..\source\game\SXbaseTool.h"> - <Filter>Header Files\ents\items\tools</Filter> - </ClInclude> - <ClInclude Include="..\..\..\source\game\SXbaseAmmo.h"> - <Filter>Header Files\ents\items</Filter> - </ClInclude> - <ClInclude Include="..\..\..\source\game\SXbaseItem.h"> - <Filter>Header Files\ents\items</Filter> - </ClInclude> - <ClInclude Include="..\..\..\source\game\SXbaseAmmoBox.h"> - <Filter>Header Files\ents\items</Filter> - </ClInclude> - <ClInclude Include="..\..\..\source\game\SXbaseWeapon.h"> - <Filter>Header Files\ents\items\tools</Filter> - </ClInclude> - <ClInclude Include="..\..\..\source\game\NPCBase.h"> - <Filter>Header Files\ents</Filter> - </ClInclude> - <ClInclude Include="..\..\..\source\game\NPCZombie.h"> - <Filter>Header Files\ents</Filter> - </ClInclude> <ClInclude Include="..\..\..\source\game\LightDirectional.h"> <Filter>Header Files\ents</Filter> </ClInclude> @@ -260,8 +230,56 @@ <ClInclude Include="..\..\..\source\game\BaseTrigger.h"> <Filter>Header Files\ents\triggers</Filter> </ClInclude> - <ClInclude Include="..\..\..\source\game\SXbaseSupply.h"> + <ClInclude Include="..\..\..\source\game\NPCBase.h"> + <Filter>Header Files\ents\characters</Filter> + </ClInclude> + <ClInclude Include="..\..\..\source\game\NPCZombie.h"> + <Filter>Header Files\ents\characters\npc</Filter> + </ClInclude> + <ClInclude Include="..\..\..\source\game\BaseEntity.h"> + <Filter>Header Files\ents</Filter> + </ClInclude> + <ClInclude Include="..\..\..\source\game\BaseAnimating.h"> + <Filter>Header Files\ents</Filter> + </ClInclude> + <ClInclude Include="..\..\..\source\game\PlayerSpawn.h"> + <Filter>Header Files\ents</Filter> + </ClInclude> + <ClInclude Include="..\..\..\source\game\PointCamera.h"> + <Filter>Header Files\ents</Filter> + </ClInclude> + <ClInclude Include="..\..\..\source\game\PointEntity.h"> + <Filter>Header Files\ents</Filter> + </ClInclude> + <ClInclude Include="..\..\..\source\game\BaseTool.h"> + <Filter>Header Files\ents\items\tools</Filter> + </ClInclude> + <ClInclude Include="..\..\..\source\game\BaseWeapon.h"> + <Filter>Header Files\ents\items\tools</Filter> + </ClInclude> + <ClInclude Include="..\..\..\source\game\BaseRiffle.h"> + <Filter>Header Files\ents\items\tools\weapons</Filter> + </ClInclude> + <ClInclude Include="..\..\..\source\game\Player.h"> + <Filter>Header Files\ents\characters</Filter> + </ClInclude> + <ClInclude Include="..\..\..\source\game\BaseCharacter.h"> + <Filter>Header Files\ents\characters</Filter> + </ClInclude> + <ClInclude Include="..\..\..\source\game\BaseSupply.h"> <Filter>Header Files\ents\items</Filter> </ClInclude> + <ClInclude Include="..\..\..\source\game\BaseItem.h"> + <Filter>Header Files\ents\items</Filter> + </ClInclude> + <ClInclude Include="..\..\..\source\game\BaseAmmo.h"> + <Filter>Header Files\ents\items</Filter> + </ClInclude> + <ClInclude Include="..\..\..\source\game\BaseAmmoBox.h"> + <Filter>Header Files\ents\items</Filter> + </ClInclude> + <ClInclude Include="..\..\..\source\game\BasePistol.h"> + <Filter>Header Files\ents\items\tools\weapons</Filter> + </ClInclude> </ItemGroup> </Project> \ No newline at end of file diff --git a/source/SkyXEngine_Build/SkyXEngine_Build.cpp b/source/SkyXEngine_Build/SkyXEngine_Build.cpp index 884d3258c17cbf3f6499620edbb1d200a37526fc..50232fab65535afaa7c7ee20db16c7caded02074 100644 --- a/source/SkyXEngine_Build/SkyXEngine_Build.cpp +++ b/source/SkyXEngine_Build/SkyXEngine_Build.cpp @@ -23,17 +23,17 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLin SGeom_0SettGreenSetFreqGrass(30); /*NPCBase* npc = new NPCBase(); - npc->SetModel("models/stalker_zombi/stalker_zombi_a.dse"); - npc->SetPos(&float3(0, 0, 0));*/ + npc->setModel("models/stalker_zombi/stalker_zombi_a.dse"); + npc->setPos(&float3(0, 0, 0));*/ /*for (int i = 0; i < 10; ++i) { - SXbaseEntity* bEnt = SXGame_CreateEntity("npc_zombie"); - bEnt->SetFlags(bEnt->GetFlags() | EF_EXPORT | EF_LEVEL); + CBaseEntity* bEnt = SXGame_CreateEntity("npc_zombie"); + bEnt->setFlags(bEnt->getFlags() | EF_EXPORT | EF_LEVEL); char pos[256]; //sprintf(pos, "%f %f %f", randf(-0.1, 0.1), randf(-0.1, 0.1), randf(-0.1, 0.1)); - //bEnt->SetKV("origin", "14.90 0.36 25.56"); - bEnt->SetKV("origin", "0 0 0"); + //bEnt->setKV("origin", "14.90 0.36 25.56"); + bEnt->setKV("origin", "0 0 0"); }*/ /*for (int i = 0; i < 10; ++i) diff --git a/source/anim/animated.cpp b/source/anim/animated.cpp index ceab902136c174c86c0e34e036f4584d8ea70231..c7de1b11a86160292e266477b55808fab4fcc66a 100644 --- a/source/anim/animated.cpp +++ b/source/anim/animated.cpp @@ -98,7 +98,7 @@ void ModelFile::Load(const char * name) for(uint32_t i = 0; i < m_hdr2.iDepsCount; i++) { fread(&md, sizeof(ModelDependensy), 1, fp); - m_pDeps[i] = m_pMgr->LoadModel(md.szName); + m_pDeps[i] = m_pMgr->loadModel(md.szName); } } } @@ -137,13 +137,13 @@ void ModelFile::Load(const char * name) { fread(m_iMaterials[j][i].szName, 1, MODEL_MAX_NAME, fp); - m_iMaterials[j][i].iMat = m_pMgr->GetMaterial(m_iMaterials[j][i].szName); //3 + m_iMaterials[j][i].iMat = m_pMgr->getMaterial(m_iMaterials[j][i].szName); //3 } } } - SGCore_LoadTexLoadTextures(); + //SGCore_LoadTexLoadTextures(); if(m_hdr.iAnimationsOffset) { @@ -268,7 +268,7 @@ void ModelFile::Load6(const char * name) for(uint32_t i = 0; i < m_hdr2.iDepsCount; i++) { fread(&md, sizeof(ModelDependensy), 1, fp); - m_pDeps[i] = m_pMgr->LoadModel(md.szName); + m_pDeps[i] = m_pMgr->loadModel(md.szName); } } } @@ -316,7 +316,7 @@ void ModelFile::Load6(const char * name) } //fread(m_iMaterials[j][i].szName, 1, MODEL_MAX_NAME, fp); - m_iMaterials[j][i].iMat = m_pMgr->GetMaterial(m_iMaterials[j][i].szName, true); //3 + m_iMaterials[j][i].iMat = m_pMgr->getMaterial(m_iMaterials[j][i].szName, true); //3 } } @@ -405,11 +405,11 @@ void ModelFile::LoadParts() { for(uint32_t i = 0; i < m_hdr2.iDepsCount; ++i) { - m_pParts[i].pMdl = m_pMgr->LoadModel(m_pParts[i].file); + m_pParts[i].pMdl = m_pMgr->loadModel(m_pParts[i].file); } } -void ModelFile::GetBoneName(UINT id, char * name, int len) const +void ModelFile::getBoneName(UINT id, char * name, int len) const { if(id >= m_hdr2.iBoneTableCount) { @@ -432,7 +432,7 @@ UINT ModelFile::GetBoneID(const char * name) return(-1); } -const ModelHitbox * ModelFile::GetHitbox(const char * name) const +const ModelHitbox * ModelFile::getHitbox(const char * name) const { for(uint32_t i = 0; i < m_hdr2.iHitboxCount; ++i) { @@ -443,7 +443,7 @@ const ModelHitbox * ModelFile::GetHitbox(const char * name) const } return(NULL); } -const ModelHitbox * ModelFile::GetHitbox(uint32_t id) const +const ModelHitbox * ModelFile::getHitbox(uint32_t id) const { if(id >= m_hdr2.iHitboxCount) { @@ -451,7 +451,7 @@ const ModelHitbox * ModelFile::GetHitbox(uint32_t id) const } return(&m_pHitboxes[id]); } -uint32_t ModelFile::GetHitboxCount() const +uint32_t ModelFile::getHitboxCount() const { return(m_hdr2.iHitboxCount); } @@ -544,7 +544,7 @@ const ModelBoneController * ModelFile::GetController(UINT id) const } return(&m_pControllers[id]); } -UINT ModelFile::GetBoneCount() const +UINT ModelFile::getBoneCount() const { return(m_hdr.iBoneCount); } @@ -557,7 +557,7 @@ UINT ModelFile::GetControllersCount() const return(m_hdr2.iControllersCount); } #ifndef _SERVER -void ModelFile::Render(SMMATRIX * mWorld, UINT nSkin, UINT nLod, ID idOverrideMaterial) +void ModelFile::render(SMMATRIX * mWorld, UINT nSkin, UINT nLod, ID idOverrideMaterial) { if(nSkin >= m_hdr.iSkinCount) { @@ -581,7 +581,7 @@ void ModelFile::Render(SMMATRIX * mWorld, UINT nSkin, UINT nLod, ID idOverrideMa m_pMgr->m_pd3dDevice->SetIndices(m_ppIndexBuffer[nLod]); m_pMgr->m_pd3dDevice->SetStreamSource(0, m_ppVertexBuffer[nLod], 0, iVertSize[vtype]); - m_pMgr->SetVertexDeclaration(vtype); + m_pMgr->setVertexDeclaration(vtype); for(UINT i = 0; i < m_pLods[nLod].iSubMeshCount; i++) { @@ -827,7 +827,7 @@ void ModelFile::BuildMeshBuffers() } -const ISXBound * ModelFile::GetBound() const +const ISXBound * ModelFile::getBound() const { return(m_pBoundBox); } @@ -889,7 +889,7 @@ ModelFile::~ModelFile() { for(uint32_t i = 0; i < m_hdr2.iDepsCount; ++i) { - m_pMgr->UnloadModel(m_pParts[i].pMdl); + m_pMgr->unloadModel(m_pParts[i].pMdl); } } mem_delete_a(m_pParts); @@ -1052,7 +1052,7 @@ m_pRagdoll(0) m_pIsBoneWorld[i] = NULL; } - myId = pMgr->Register(this); + myId = pMgr->reg(this); } Animation::~Animation() @@ -1067,10 +1067,10 @@ Animation::~Animation() mem_delete_a(m_pBoneMatrix); mem_delete_a(m_FinalBones); mem_delete_a(m_pBoneMatrixRender); - m_pMgr->UnRegister(myId); + m_pMgr->unreg(myId); } -SMMATRIX Animation::GetBoneTransform(UINT _id) +SMMATRIX Animation::getBoneTransform(UINT _id) { //id *= 2; int id = m_FinalBones[_id].pid; @@ -1083,23 +1083,23 @@ SMMATRIX Animation::GetBoneTransform(UINT _id) return(q.GetMatrix() * SMMatrixTranslation(pos)); } -float3 Animation::GetBoneTransformPos(UINT id) +float3 Animation::getBoneTransformPos(UINT id) { ModelBone * mBonesOrig = m_pMdl->m_pBonesBindPoseInv; - return(GetOrient() * ((m_pBoneMatrixRender[id].position - m_pBoneMatrixRender[id].orient * (float3)mBonesOrig[id].position) * m_fScale) + GetPos()); + return(getOrient() * ((m_pBoneMatrixRender[id].position - m_pBoneMatrixRender[id].orient * (float3)mBonesOrig[id].position) * m_fScale) + getPos()); } -SMQuaternion Animation::GetBoneTransformRot(UINT id) +SMQuaternion Animation::getBoneTransformRot(UINT id) { ModelBone * mBonesOrig = m_pMdl->m_pBonesBindPoseInv; - return(GetOrient() * m_pBoneMatrixRender[id].orient * mBonesOrig[id].orient.Conjugate()); + return(getOrient() * m_pBoneMatrixRender[id].orient * mBonesOrig[id].orient.Conjugate()); } /* bool Animation::IsVisibleFrustum(Core::ControllMoving::Frustum* frustum) { m_pMdl->BoundVol.GetSphere(&jcenter2, &jradius); - jcenter = SMVector3Transform(jcenter2, GetWorldTM()); + jcenter = SMVector3Transform(jcenter2, getWorldTM()); if((frustum->SphereInFrustum(&jcenter, jradius))) return true; @@ -1118,15 +1118,15 @@ void Animation::SyncAnims() } } -void Animation::SetModel(const char * file) +void Animation::setModel(const char * file) { mem_delete(m_pMdl); - m_pMdl = const_cast<ModelFile*>(m_pMgr->LoadModel(file)); + m_pMdl = const_cast<ModelFile*>(m_pMgr->loadModel(file)); if(!m_pMdl) { return; } - AddModel(m_pMdl); + addModel(m_pMdl); DownloadData(); } @@ -1141,7 +1141,7 @@ void Animation::DownloadData() mem_delete_a(m_pIsBoneWorld[slot]); } - m_iBoneCount = m_pMdl->GetBoneCount(); + m_iBoneCount = m_pMdl->getBoneCount(); SyncAnims(); @@ -1190,7 +1190,7 @@ void Animation::setRagdoll(IAnimRagdoll * pRagdoll) if(m_pRagdoll) { ModelBone * mBonesOrig = m_pMdl->m_pBonesBindPoseInv; - StopAll(); + stopAll(); for(UINT i = 0; i < m_iBoneCount; ++i) { if(/*i == 18 && */(m_pIsBoneWorld[0][i] = pRagdoll->isBoneAffected(i))) @@ -1208,12 +1208,12 @@ void Animation::setRagdoll(IAnimRagdoll * pRagdoll) } } -ModelSequence const * Animation::GetCurAnim(int slot) +ModelSequence const * Animation::getCurAnim(int slot) { return(m_pMdl->GetSequence(m_iPlayingAnim[slot])); } -void Animation::Advance(unsigned long int dt) +void Animation::advance(unsigned long int dt) { if(!m_pMdl || m_pMdl->m_hdr.iFlags & MODEL_FLAG_STATIC) { @@ -1390,7 +1390,7 @@ void Animation::Advance(unsigned long int dt) } } -inline bool Animation::PlayingAnimations() +inline bool Animation::playingAnimations() { for(int i = 0; i<BLEND_MAX; i++) { @@ -1400,7 +1400,7 @@ inline bool Animation::PlayingAnimations() return false; } -void Animation::StopAll() +void Animation::stopAll() { for(int i = 0; i < BLEND_MAX; ++i) { @@ -1413,7 +1413,7 @@ void Animation::StopAll() } } -void Animation::SetProgress(float progress, UINT slot) +void Animation::setProgress(float progress, UINT slot) { const ModelSequence * pCurAnim = m_pMdl->GetSequence(m_iPlayingAnim[slot]); if(!pCurAnim) @@ -1431,12 +1431,12 @@ void Animation::SetProgress(float progress, UINT slot) } -void Animation::SetAdvance(bool set, UINT slot) +void Animation::setAdvance(bool set, UINT slot) { m_bDoAdvance[slot] = set; } -void Animation::Stop(UINT slot) +void Animation::stop(UINT slot) { if(m_bIsAnimationPlaying[slot]) { @@ -1445,7 +1445,7 @@ void Animation::Stop(UINT slot) } } -void Animation::Resume(UINT slot) +void Animation::resume(UINT slot) { if(!m_bIsAnimationPlaying[slot]) { @@ -1625,7 +1625,7 @@ void Animation::RenderSkeleton(int hlBone) mem_delete_a(verts); } -inline bool Animation::PlayingAnimations(const char* name) +inline bool Animation::playingAnimations(const char* name) { for(int i = 0; i<BLEND_MAX; i++) { @@ -1635,7 +1635,7 @@ inline bool Animation::PlayingAnimations(const char* name) return false; } -void Animation::Play(const char * name, UINT iFadeTime, UINT slot, bool bReplaceActivity) // name: Animation name; changeTime: time to fade to this animation from previous +void Animation::play(const char * name, UINT iFadeTime, UINT slot, bool bReplaceActivity) // name: Animation name; changeTime: time to fade to this animation from previous { if(!m_pMdl) { @@ -1673,7 +1673,7 @@ void Animation::Play(const char * name, UINT iFadeTime, UINT slot, bool bReplace } } -void Animation::SetBoneController(const String & name, float value, MODEL_BONE_CTL what) +void Animation::setBoneController(const String & name, float value, MODEL_BONE_CTL what) { if(m_mfBoneControllers.KeyExists(name)) { @@ -1728,7 +1728,7 @@ void Animation::UpdateControllers() } } -void Animation::StartActivity(const char * name, UINT iFadeTime, UINT slot) +void Animation::startActivity(const char * name, UINT iFadeTime, UINT slot) { for(int i = 0, l = m_pMdl->m_hdr2.iActivitiesTableCount; i < l; ++i) { @@ -1767,7 +1767,7 @@ void Animation::PlayActivityNext(UINT slot) { if(fMaxChance >= fch) { - Play(m_pMdl->GetSequence(i)->name, m_iCurrentActivityFadeTime[slot], slot, false); + play(m_pMdl->GetSequence(i)->name, m_iCurrentActivityFadeTime[slot], slot, false); break; } fMaxChance += (float)m_pMdl->GetSequence(i)->act_chance; @@ -1775,42 +1775,42 @@ void Animation::PlayActivityNext(UINT slot) } } -int Animation::GetActiveSkin() +int Animation::getActiveSkin() { return(m_iCurrentSkin); } -void Animation::SetSkin(int n) +void Animation::setSkin(int n) { m_iCurrentSkin = n; } -void Animation::SetPos(const float3 & pos) +void Animation::setPos(const float3 & pos) { m_vPosition = pos; } -float3 Animation::GetPos() +float3 Animation::getPos() { return(m_vPosition); } -SMMATRIX Animation::GetWorldTM() +SMMATRIX Animation::getWorldTM() { return(SMMatrixScaling(m_fScale, m_fScale, m_fScale) * m_vOrientation.GetMatrix() * SMMatrixTranslation(m_vPosition)); } -void Animation::SetOrient(const SMQuaternion & pos) +void Animation::setOrient(const SMQuaternion & pos) { m_vOrientation = pos; } -SMQuaternion Animation::GetOrient() +SMQuaternion Animation::getOrient() { return(m_vOrientation); } -void Animation::Render() +void Animation::render() { if(!m_bEnabled) { @@ -1829,7 +1829,7 @@ void Animation::Render() m_pMgr->m_pd3dDevice->SetVertexShaderConstantF(16, (float*)m_pBoneMatrixRender, sizeof(ModelBoneShader)* m_iBoneCount / sizeof(float) / 4); } - m_pMdl->Render(&(GetWorldTM()), m_iCurrentSkin, 0, m_idOverrideMaterial); + m_pMdl->render(&(getWorldTM()), m_iCurrentSkin, 0, m_idOverrideMaterial); } void Animation::setOverrideMaterial(const char *name) @@ -1841,52 +1841,52 @@ void Animation::enable(bool enable) m_bEnabled = enable; } -UINT Animation::GetBoneCount() const +UINT Animation::getBoneCount() const { - return(m_pMdl->GetBoneCount()); + return(m_pMdl->getBoneCount()); } -void Animation::GetBoneName(UINT id, char * name, int len) const +void Animation::getBoneName(UINT id, char * name, int len) const { - m_pMdl->GetBoneName(id, name, len); + m_pMdl->getBoneName(id, name, len); } -UINT Animation::GetBone(const char * str) +UINT Animation::getBone(const char * str) { return(m_pMdl->GetBoneID(str)); } -const ModelHitbox * Animation::GetHitbox(uint32_t id) const +const ModelHitbox * Animation::getHitbox(uint32_t id) const { - return(m_pMdl->GetHitbox(id)); + return(m_pMdl->getHitbox(id)); } -uint32_t Animation::GetHitboxCount() const +uint32_t Animation::getHitboxCount() const { - return(m_pMdl->GetHitboxCount()); + return(m_pMdl->getHitboxCount()); } -AnimStateCB Animation::SetCallback(AnimStateCB cb) +AnimStateCB Animation::setCallback(AnimStateCB cb) { AnimStateCB old = m_pfnCallBack; m_pfnCallBack = cb; return(old); } -AnimProgressCB Animation::SetProgressCB(AnimProgressCB cb) +AnimProgressCB Animation::setProgressCB(AnimProgressCB cb) { AnimProgressCB old = m_pfnProgressCB; m_pfnProgressCB = cb; return(old); } -const ModelFile * Animation::AddModel(const char * mdl, UINT flags, char * name) +const ModelFile * Animation::addModel(const char * mdl, UINT flags, char * name) { - const ModelFile * pMdl = m_pMgr->LoadModel(mdl); + const ModelFile * pMdl = m_pMgr->loadModel(mdl); if(pMdl) { - AddModel(pMdl, flags, name); + addModel(pMdl, flags, name); } return(pMdl); } -void Animation::AddModel(const ModelFile * mdl, UINT flags, char * name) +void Animation::addModel(const ModelFile * mdl, UINT flags, char * name) { ModelPart pt; pt.pMdl = mdl; @@ -1902,9 +1902,9 @@ void Animation::AddModel(const ModelFile * mdl, UINT flags, char * name) pt.file[0] = 0; } pt.attachDesc.type = MA_SKIN; - AddModel(&pt); + addModel(&pt); } -int Animation::AddModel(ModelPart * mp) +int Animation::addModel(ModelPart * mp) { if(!mp) { @@ -1923,7 +1923,7 @@ ModelPart * Animation::GetPart(UINT idx) return(m_mMdls[idx]); } -void Animation::DelModel(ModelPart * mp) +void Animation::delModel(ModelPart * mp) { for(int i = 0, l = m_mMdls.size(); i < l; ++i) { @@ -1941,12 +1941,12 @@ UINT Animation::GetPartCount() return(m_mMdls.size()); } -const ISXBound * Animation::GetBound() const +const ISXBound * Animation::getBound() const { - return(m_pMdl->GetBound()); + return(m_pMdl->getBound()); } -void Animation::Assembly() +void Animation::assembly() { //mem_delete(m_pMdl); ///@TODO: clear previous data @@ -2004,7 +2004,7 @@ void Animation::Assembly() } } } - m_iBoneCount = m_pMdl->GetBoneCount(); + m_iBoneCount = m_pMdl->getBoneCount(); //build relink lists for(int i = 0, l = m_mMdls.size(); i < l; ++i) @@ -2014,10 +2014,10 @@ void Animation::Assembly() { continue; } - for(int j = 0, ll = mp->pMdl->GetBoneCount(); j < ll; ++j) + for(int j = 0, ll = mp->pMdl->getBoneCount(); j < ll; ++j) { vvBoneRelinkList[i][j] = 0; - for(int k = 0, lll = m_pMdl->GetBoneCount(); k < lll; ++k) + for(int k = 0, lll = m_pMdl->getBoneCount(); k < lll; ++k) { if(!strcmp(mp->pMdl->m_pBones[j].szName, m_pMdl->m_pBones[k].szName)) { @@ -2127,7 +2127,7 @@ void Animation::Assembly() { hb = mdl->m_pHitboxes[j]; hb.bone_id = -1; - for(int k = 0, lll = m_pMdl->GetBoneCount(); k < lll; ++k) + for(int k = 0, lll = m_pMdl->getBoneCount(); k < lll; ++k) { if(!strcmp(hb.bone, m_pMdl->m_pBones[k].szName)) { @@ -2155,10 +2155,10 @@ void Animation::Assembly() for(uint32_t i = 0; i < m_pMdl->m_hdr.iMaterialCount; ++i) { strcpy(m_pMdl->m_iMaterials[0][i].szName, vszMats[i]); - m_pMdl->m_iMaterials[0][i].iMat = m_pMgr->GetMaterial(m_pMdl->m_iMaterials[0][i].szName); + m_pMdl->m_iMaterials[0][i].iMat = m_pMgr->getMaterial(m_pMdl->m_iMaterials[0][i].szName); } - SGCore_LoadTexLoadTextures(); + //SGCore_LoadTexLoadTextures(); m_pMdl->m_hdr.iLODcount = vvLods.size(); m_pMdl->m_pLods = new ModelLoD[m_pMdl->m_hdr.iLODcount]; @@ -2256,7 +2256,7 @@ void Animation::Release() delete this; } -void Animation::GetPhysData( +void Animation::getPhysData( int32_t * piShapeCount, HITBOX_TYPE ** phTypes, float3_t *** pppfData, @@ -2299,7 +2299,7 @@ void Animation::GetPhysData( } } -void Animation::FreePhysData( +void Animation::freePhysData( int32_t iShapeCount, HITBOX_TYPE * hTypes, float3_t ** ppfData, @@ -2320,7 +2320,7 @@ void Animation::FreePhysData( * */ -const ModelFile * AnimationManager::LoadModel(const char * name, bool newInst) +const ModelFile * AnimationManager::loadModel(const char * name, bool newInst) { if(!newInst && m_pModels.KeyExists(name)) { @@ -2339,12 +2339,12 @@ const ModelFile * AnimationManager::LoadModel(const char * name, bool newInst) { mdl->LoadParts(); Animation tmp(this); - tmp.AddModel(mdl); + tmp.addModel(mdl); for(uint32_t i = 0; i < mdl->m_hdr2.iDepsCount; ++i) { - tmp.AddModel(&mdl->m_pParts[i]); + tmp.addModel(&mdl->m_pParts[i]); } - tmp.Assembly(); + tmp.assembly(); strcpy(tmp.m_pMdl->m_szFileName, mdl->m_szFileName); ModelFile * tmpmdl = mdl; mdl = tmp.m_pMdl; @@ -2360,7 +2360,7 @@ const ModelFile * AnimationManager::LoadModel(const char * name, bool newInst) } } -void AnimationManager::UnloadModel(const ModelFile * mdl) +void AnimationManager::unloadModel(const ModelFile * mdl) { for(AssotiativeArray<String, ModelFile*>::Iterator i = m_pModels.begin(); i; i++) { @@ -2378,7 +2378,7 @@ m_pd3dDevice(dev), m_iVisID(0), m_iThreadNum(1) { - InitVertexDeclarations(); + initVertexDeclarations(); } AnimationManager::~AnimationManager() @@ -2389,7 +2389,7 @@ AnimationManager::~AnimationManager() } } -void AnimationManager::InitVertexDeclarations() +void AnimationManager::initVertexDeclarations() { D3DVERTEXELEMENT9 layoutStatic[] = { @@ -2436,26 +2436,26 @@ void AnimationManager::InitVertexDeclarations() m_pd3dDevice->CreateVertexDeclaration(layoutDynamicEx, &pVertexDeclaration[MVT_DYNAMIC_EX]); } -void AnimationManager::SetVertexDeclaration(MODEL_VERTEX_TYPE nDecl) +void AnimationManager::setVertexDeclaration(MODEL_VERTEX_TYPE nDecl) { if(nDecl >= MVT_SIZE) { - reportf(REPORT_MSG_LEVEL_ERROR, "Unknown vertex declaration %d in AnimationManager::SetVertexDeclaration()\n", nDecl); + reportf(REPORT_MSG_LEVEL_ERROR, "Unknown vertex declaration %d in AnimationManager::setVertexDeclaration()\n", nDecl); return; } m_pd3dDevice->SetVertexDeclaration(pVertexDeclaration[nDecl]); } -UINT AnimationManager::Register(Animation * pAnim) +UINT AnimationManager::reg(Animation * pAnim) { m_pAnimatedList.push_back(pAnim); return(m_pAnimatedList.size() - 1); } -void AnimationManager::UnRegister(UINT id) +void AnimationManager::unreg(UINT id) { m_pAnimatedList.erase(id); } -void AnimationManager::Render(ID for_id) +void AnimationManager::render(ID for_id) { #ifndef _SERVER Animation * pAnim; @@ -2464,12 +2464,12 @@ void AnimationManager::Render(ID for_id) pAnim = m_pAnimatedList[i]; if(for_id < 0 || pAnim->m_vIsVisibleFor[for_id]) { - pAnim->Render(); + pAnim->render(); } } #endif } -void AnimationManager::Update(int thread) +void AnimationManager::update(int thread) { if(thread >= m_iThreadNum) { @@ -2478,11 +2478,11 @@ void AnimationManager::Update(int thread) } for(uint32_t i = thread, l = m_pAnimatedList.size(); i < l; i += m_iThreadNum) { - m_pAnimatedList[i]->Advance(GetTickCount()); + m_pAnimatedList[i]->advance(GetTickCount()); } } -void AnimationManager::Sync() +void AnimationManager::sync() { for(uint32_t i = 0, l = m_pAnimatedList.size(); i < l; ++i) { @@ -2490,14 +2490,14 @@ void AnimationManager::Sync() } } -UINT AnimationManager::GetMaterial(const char * mat, bool bStatic) +UINT AnimationManager::getMaterial(const char * mat, bool bStatic) { char * tmp = (char*)alloca(sizeof(char)* (strlen(mat) + 5)); sprintf(tmp, "%s.dds", mat); return(SGCore_MtlLoad(tmp, bStatic ? MTL_TYPE_GEOM : MTL_TYPE_SKIN)); } -void AnimationManager::ComputeVis(const ISXFrustum * frustum, const float3 * viewpos, ID id_arr) +void AnimationManager::computeVis(const ISXFrustum * frustum, const float3 * viewpos, ID id_arr) { float3 jcenter; float3 jradius; @@ -2508,9 +2508,9 @@ void AnimationManager::ComputeVis(const ISXFrustum * frustum, const float3 * vie for(uint32_t i = 0, l = m_pAnimatedList.size(); i < l; ++i) { pAnim = m_pAnimatedList[i]; - pAnim->GetBound()->GetSphere(&jcenter, &jradius.x); + pAnim->getBound()->GetSphere(&jcenter, &jradius.x); - m = pAnim->GetWorldTM(); + m = pAnim->getWorldTM(); m._11 = SMVector3Length(float3(m._11, m._21, m._31)); m._22 = SMVector3Length(float3(m._12, m._22, m._32)); m._33 = SMVector3Length(float3(m._13, m._23, m._33)); @@ -2523,7 +2523,7 @@ void AnimationManager::ComputeVis(const ISXFrustum * frustum, const float3 * vie } } -ID AnimationManager::GetNextVisId() +ID AnimationManager::getNextVisId() { if(m_vFreeVisIDs.size() > 0) { @@ -2534,7 +2534,7 @@ ID AnimationManager::GetNextVisId() return(++m_iVisID); } -void AnimationManager::FreeVisID(ID id) +void AnimationManager::freeVisID(ID id) { if(id <= m_iVisID) { @@ -2543,7 +2543,7 @@ void AnimationManager::FreeVisID(ID id) } -void AnimationManager::SetThreadNum(int num) +void AnimationManager::setThreadNum(int num) { m_iThreadNum = num; } \ No newline at end of file diff --git a/source/anim/animated.h b/source/anim/animated.h index 1e836d0c5c6f885ce49fe5af5e36a88a7703690f..16c0f3b787c456bd25ef5bf92b9a27971d9dd4e8 100644 --- a/source/anim/animated.h +++ b/source/anim/animated.h @@ -39,7 +39,7 @@ public: bool Save(const char * name); #ifndef _SERVER - void Render(SMMATRIX * mWorld, UINT nSkin, UINT nLod=0, ID idOverrideMaterial=-1); + void render(SMMATRIX * mWorld, UINT nSkin, UINT nLod=0, ID idOverrideMaterial=-1); #endif void BuildMeshBuffers(); @@ -47,27 +47,27 @@ public: const ModelSequence * GetSequence(UINT id) const; const ModelSequence * GetSequence(const char * name) const; const ModelBoneController * GetController(UINT id) const; - UINT GetBoneCount() const; + UINT getBoneCount() const; UINT GetSequenceCount() const; UINT GetControllersCount() const; UINT GetBoneID(const char * name); - void GetBoneName(UINT id, char * name, int len) const; + void getBoneName(UINT id, char * name, int len) const; ModelMatrial ** m_iMaterials; ModelLoD * m_pLods; //SkyXEngine::Graphics::ThreeD::Bound BoundVol; - const ModelHitbox * GetHitbox(const char * name) const; - const ModelHitbox * GetHitbox(uint32_t id) const; - uint32_t GetHitboxCount() const; + const ModelHitbox * getHitbox(const char * name) const; + const ModelHitbox * getHitbox(uint32_t id) const; + uint32_t getHitboxCount() const; void AddHitbox(const ModelHitbox * hb); void DelHitbox(const char * name); void DelHitbox(uint32_t id); void LoadParts(); - const ISXBound * GetBound() const; + const ISXBound * getBound() const; protected: @@ -127,89 +127,89 @@ public: SX_ALIGNED_OP_MEM - void Advance(unsigned long int dt); + void advance(unsigned long int dt); #ifndef _SERVER - void Render(); + void render(); #endif - void SetModel(const char * file); + void setModel(const char * file); - void Play(const char * name, UINT iFadeTime = 0, UINT slot = 0, bool bReplaceActivity = true); // name: Animation name; changeTime: time to fade to this animation from previous - void Stop(UINT slot = 0); - void Resume(UINT slot = 0); + void play(const char * name, UINT iFadeTime = 0, UINT slot = 0, bool bReplaceActivity = true); // name: Animation name; changeTime: time to fade to this animation from previous + void stop(UINT slot = 0); + void resume(UINT slot = 0); - void SetProgress(float progress, UINT slot = 0); - void SetAdvance(bool set, UINT slot = 0); + void setProgress(float progress, UINT slot = 0); + void setAdvance(bool set, UINT slot = 0); - void StartActivity(const char * name, UINT iFadeTime = 0, UINT slot = 0); + void startActivity(const char * name, UINT iFadeTime = 0, UINT slot = 0); - void SetBoneController(const String & name, float value, MODEL_BONE_CTL what); + void setBoneController(const String & name, float value, MODEL_BONE_CTL what); - SMMATRIX GetBoneTransform(UINT id); - float3 GetBoneTransformPos(UINT id); - SMQuaternion GetBoneTransformRot(UINT id); - UINT GetBone(const char * str); - UINT GetBoneCount() const; - void GetBoneName(UINT id, char * name, int len) const; + SMMATRIX getBoneTransform(UINT id); + float3 getBoneTransformPos(UINT id); + SMQuaternion getBoneTransformRot(UINT id); + UINT getBone(const char * str); + UINT getBoneCount() const; + void getBoneName(UINT id, char * name, int len) const; - inline bool PlayingAnimations(); - inline bool PlayingAnimations(const char* name); - void StopAll(); + inline bool playingAnimations(); + inline bool playingAnimations(const char* name); + void stopAll(); - int GetActiveSkin(); - void SetSkin(int n); + int getActiveSkin(); + void setSkin(int n); - void SetPos(const float3 & pos); - float3 GetPos(); + void setPos(const float3 & pos); + float3 getPos(); - void SetOrient(const SMQuaternion & pos); - SMQuaternion GetOrient(); + void setOrient(const SMQuaternion & pos); + SMQuaternion getOrient(); - SMMATRIX GetWorldTM(); + SMMATRIX getWorldTM(); - AnimStateCB SetCallback(AnimStateCB cb); - AnimProgressCB SetProgressCB(AnimProgressCB cb); + AnimStateCB setCallback(AnimStateCB cb); + AnimProgressCB setProgressCB(AnimProgressCB cb); - ModelSequence const * GetCurAnim(int slot); + ModelSequence const * getCurAnim(int slot); ModelFile * m_pMdl; void SyncAnims(); - const ModelFile * AddModel(const char * mdl, UINT flags = MI_ALL, char * name = "No name"); - void AddModel(const ModelFile * mdl, UINT flags = MI_ALL, char * name="No name"); - int AddModel(ModelPart * mp); - void DelModel(ModelPart * mp); - void Assembly(); + const ModelFile * addModel(const char * mdl, UINT flags = MI_ALL, char * name = "No name"); + void addModel(const ModelFile * mdl, UINT flags = MI_ALL, char * name="No name"); + int addModel(ModelPart * mp); + void delModel(ModelPart * mp); + void assembly(); ModelPart * GetPart(UINT idx); UINT GetPartCount(); - const ISXBound * GetBound() const; + const ISXBound * getBound() const; void SwapBoneBuffs(); void Release(); - void SetScale(float fScale) + void setScale(float fScale) { m_fScale = fScale; } - float GetScale() + float getScale() { return(m_fScale); } - void GetPhysData( + void getPhysData( int32_t * piShapeCount, HITBOX_TYPE ** phTypes, float3_t *** pppfData, int32_t ** ppfDataLen); - void FreePhysData( + void freePhysData( int32_t iShapeCount, HITBOX_TYPE * hTypes, float3_t ** ppfData, @@ -217,8 +217,8 @@ public: void RenderSkeleton(int hlBone=-1); - virtual const ModelHitbox * GetHitbox(uint32_t id) const; - virtual uint32_t GetHitboxCount() const; + virtual const ModelHitbox * getHitbox(uint32_t id) const; + virtual uint32_t getHitboxCount() const; virtual void setOverrideMaterial(const char *name); virtual void enable(bool enable); @@ -314,32 +314,32 @@ class AnimationManager public: AnimationManager(IDirect3DDevice9 * dev); ~AnimationManager(); - const ModelFile * LoadModel(const char * name, bool newInst = false); - void UnloadModel(const ModelFile * mdl); + const ModelFile * loadModel(const char * name, bool newInst = false); + void unloadModel(const ModelFile * mdl); - UINT Register(Animation * pAnim); - void UnRegister(UINT id); + UINT reg(Animation * pAnim); + void unreg(UINT id); - void Render(ID for_id=-1); - void Update(int thread = 0); - void Sync(); + void render(ID for_id=-1); + void update(int thread = 0); + void sync(); - void SetVertexDeclaration(MODEL_VERTEX_TYPE nDecl); + void setVertexDeclaration(MODEL_VERTEX_TYPE nDecl); - UINT GetMaterial(const char * mat, bool bStatic = false); + UINT getMaterial(const char * mat, bool bStatic = false); - void ComputeVis(const ISXFrustum * frustum, const float3 * viewpos, ID id_arr); + void computeVis(const ISXFrustum * frustum, const float3 * viewpos, ID id_arr); - ID GetNextVisId(); - void FreeVisID(ID id); + ID getNextVisId(); + void freeVisID(ID id); - void SetThreadNum(int num); + void setThreadNum(int num); protected: friend class ModelFile; friend class Animation; AssotiativeArray<String, ModelFile*> m_pModels; - void InitVertexDeclarations(); + void initVertexDeclarations(); IDirect3DVertexDeclaration9 * pVertexDeclaration[MVT_SIZE]; diff --git a/source/anim/sxanim.h b/source/anim/sxanim.h index f5341d9e305eb90c1c8617a4feed5b28a5a4c086..69a0422abecb6950fa9adf5b4240e6809ca25c25 100644 --- a/source/anim/sxanim.h +++ b/source/anim/sxanim.h @@ -92,47 +92,47 @@ public: /*! Выполняет обновление состояния воспроизведения анимации @param[in] dt Текущее абсолютное время в микросекундах */ - virtual void Advance(unsigned long int dt) = 0; + virtual void advance(unsigned long int dt) = 0; #ifndef _SERVER //! Выполняет отрисовку модели - virtual void Render() = 0; + virtual void render() = 0; #endif /*! Загружает новую модель для воспроизведения @param[in] file Имя файла модели */ - virtual void SetModel(const char * file) = 0; + virtual void setModel(const char * file) = 0; /*! Запускает воспроизведения анимации @param[in] name Имя анимации @param[in] iFadeTime Время перехода от предыдущей анимации к новой в ms @param[in] slot Слот для воспроизведения. От 0 до BLEND_MAX */ - virtual void Play(const char * name, UINT iFadeTime = 0, UINT slot = 0, bool bReplaceActivity=true) = 0; + virtual void play(const char * name, UINT iFadeTime = 0, UINT slot = 0, bool bReplaceActivity=true) = 0; /*! Останавливает воспроизведения для указанного слота @param[in] slot Слот для остановки. От 0 до BLEND_MAX */ - virtual void Stop(UINT slot = 0) = 0; + virtual void stop(UINT slot = 0) = 0; /*! Возобновляет воспроизведения для указанного слота @param[in] slot Слот для возобновления. От 0 до BLEND_MAX */ - virtual void Resume(UINT slot = 0) = 0; + virtual void resume(UINT slot = 0) = 0; /*! Устанавливает прогресс воспроизведения в конкретном слоте @warning Если в конкретном слоте не происходит воспроизведения, не будет эффекта @param[in] progress Значение прогресса. От 0 до 1 @param[in] slot Слот. От 0 до BLEND_MAX */ - virtual void SetProgress(float progress, UINT slot = 0) = 0; + virtual void setProgress(float progress, UINT slot = 0) = 0; /*! Разрешает/запрещает обновление конкретного слота @param[in] set разрешить/запретить @param[in] slot Слот. От 0 до BLEND_MAX */ - virtual void SetAdvance(bool set, UINT slot = 0) = 0; + virtual void setAdvance(bool set, UINT slot = 0) = 0; /*! Запускает воспроизведение указанной активности в заданном слоте @param[in] name Имя анимации @@ -141,7 +141,7 @@ public: @warning В данный момент не работат */ - virtual void StartActivity(const char * name, UINT iFadeTime = 0, UINT slot = 0) = 0; + virtual void startActivity(const char * name, UINT iFadeTime = 0, UINT slot = 0) = 0; /*! Устанавливает значение для заданного контроллера @param[in] name Имя контроллера @@ -150,103 +150,103 @@ public: @warning В данный момент не работат */ - virtual void SetBoneController(const String & name, float value, MODEL_BONE_CTL what) = 0; + virtual void setBoneController(const String & name, float value, MODEL_BONE_CTL what) = 0; /*! Возвращает смещение указанной кости @param[in] id Номер кости @return Смещение кости */ - virtual float3 GetBoneTransformPos(UINT id) = 0; + virtual float3 getBoneTransformPos(UINT id) = 0; /*! Возвращает вращение указанной кости @param[in] id Номер кости @return Вращение кости */ - virtual SMQuaternion GetBoneTransformRot(UINT id) = 0; + virtual SMQuaternion getBoneTransformRot(UINT id) = 0; /*! Возвращает трансформацию указанной кости @param[in] id Номер кости @return Матрица трансформации кости */ - virtual SMMATRIX GetBoneTransform(UINT id) = 0; + virtual SMMATRIX getBoneTransform(UINT id) = 0; /*! Возвращает идентификатор указанной кости @param[in] str Имя кости @return Номер кости */ - virtual UINT GetBone(const char * str) = 0; + virtual UINT getBone(const char * str) = 0; /*! Возвращает количество костей @return Количество костей */ - virtual UINT GetBoneCount() const = 0; + virtual UINT getBoneCount() const = 0; /*! Возвращает имя указанной кости @param[in] id Номер кости @param[out] name Буфер для записи имени @param[out] len Размер буфера для записи */ - virtual void GetBoneName(UINT id, char * name, int len) const = 0; + virtual void getBoneName(UINT id, char * name, int len) const = 0; /*! Проверяет, воспроизводится ли анимация */ - virtual inline bool PlayingAnimations() = 0; + virtual inline bool playingAnimations() = 0; /*! Проверяет, воспроизводится ли анимация @param[in] name Имя анимации */ - virtual inline bool PlayingAnimations(const char* name) = 0; + virtual inline bool playingAnimations(const char* name) = 0; /*! Останавливает воспроизведение всех анимаций */ - virtual void StopAll() = 0; + virtual void stopAll() = 0; /*! Возвращает номер текущего скина */ - virtual int GetActiveSkin() = 0; + virtual int getActiveSkin() = 0; /*! Устанавливает активный скин @param[in] n Номер скина */ - virtual void SetSkin(int n) = 0; + virtual void setSkin(int n) = 0; /*! Устанавливает мировую позицию модели @param[in] pos позиция */ - virtual void SetPos(const float3 & pos) = 0; + virtual void setPos(const float3 & pos) = 0; /*! Возвращает мировую позицию модели */ - virtual float3 GetPos() = 0; + virtual float3 getPos() = 0; /*! Устанавливает вращение модели @param[in] pos позиция */ - virtual void SetOrient(const SMQuaternion & pos) = 0; + virtual void setOrient(const SMQuaternion & pos) = 0; /*! Возвращает вращение модели */ - virtual SMQuaternion GetOrient() = 0; + virtual SMQuaternion getOrient() = 0; /*! Получает мировую матрицу модели */ - virtual SMMATRIX GetWorldTM() = 0; + virtual SMMATRIX getWorldTM() = 0; /*! Устанавливает коллбэк на изменение состояния объекта */ - virtual AnimStateCB SetCallback(AnimStateCB cb) = 0; + virtual AnimStateCB setCallback(AnimStateCB cb) = 0; /*! Устанавливает коллбэк на изменение состояния воспроизведения */ - virtual AnimProgressCB SetProgressCB(AnimProgressCB cb) = 0; + virtual AnimProgressCB setProgressCB(AnimProgressCB cb) = 0; /*! Получает текущую воспроизводимую анимацию в слоте */ - virtual ModelSequence const * GetCurAnim(int slot) = 0; + virtual ModelSequence const * getCurAnim(int slot) = 0; /*! Получает ограничивающий объем модели */ - virtual const ISXBound * GetBound() const = 0; + virtual const ISXBound * getBound() const = 0; /*! Уничтожает объект */ @@ -254,17 +254,17 @@ public: /*! Устанавливает масштаб */ - virtual void SetScale(float fScale) = 0; - virtual float GetScale() = 0; + virtual void setScale(float fScale) = 0; + virtual float getScale() = 0; - virtual void GetPhysData( + virtual void getPhysData( int32_t * piShapeCount, HITBOX_TYPE ** phTypes, float3_t *** pppfData, int32_t ** ppfDataLen ) = 0; - virtual void FreePhysData( + virtual void freePhysData( int32_t iShapeCount, HITBOX_TYPE * hTypes, float3_t ** ppfData, @@ -272,14 +272,14 @@ public: ) = 0; - virtual const ModelFile * AddModel(const char * mdl, UINT flags = MI_ALL, char * name = "No name") = 0; - virtual void AddModel(const ModelFile * mdl, UINT flags = MI_ALL, char * name = "No name") = 0; - virtual int AddModel(ModelPart * mp) = 0; - virtual void DelModel(ModelPart * mp) = 0; - virtual void Assembly() = 0; + virtual const ModelFile * addModel(const char * mdl, UINT flags = MI_ALL, char * name = "No name") = 0; + virtual void addModel(const ModelFile * mdl, UINT flags = MI_ALL, char * name = "No name") = 0; + virtual int addModel(ModelPart * mp) = 0; + virtual void delModel(ModelPart * mp) = 0; + virtual void assembly() = 0; - virtual const ModelHitbox * GetHitbox(uint32_t id) const = 0; - virtual uint32_t GetHitboxCount() const = 0; + virtual const ModelHitbox * getHitbox(uint32_t id) const = 0; + virtual uint32_t getHitboxCount() const = 0; virtual void setOverrideMaterial(const char * name) = 0; virtual void enable(bool enable) = 0; diff --git a/source/anim/sxanim_dll.cpp b/source/anim/sxanim_dll.cpp index 2b8f7faa0f47555ea9881a1bf479b9bd0d153042..b519ba7ce514f4f2845faa7b5c80e8d5074ff3dc 100644 --- a/source/anim/sxanim_dll.cpp +++ b/source/anim/sxanim_dll.cpp @@ -54,22 +54,22 @@ SX_LIB_API void SXAnim_AKill() SX_LIB_API void SXAnim_Update(int thread) { SA_PRECOND(_VOID); - g_mgr->Update(thread); + g_mgr->update(thread); } SX_LIB_API void SXAnim_UpdateSetThreadNum(int num) { SA_PRECOND(_VOID); - g_mgr->SetThreadNum(num); + g_mgr->setThreadNum(num); } SX_LIB_API void SXAnim_Sync() { SA_PRECOND(_VOID); - g_mgr->Sync(); + g_mgr->sync(); } SX_LIB_API void SXAnim_Render(ID for_id) { SA_PRECOND(_VOID); - g_mgr->Render(for_id); + g_mgr->render(for_id); } SX_LIB_API IAnimPlayer * SXAnim_CreatePlayer(const char * mdl) @@ -78,7 +78,7 @@ SX_LIB_API IAnimPlayer * SXAnim_CreatePlayer(const char * mdl) Animation * anim = new Animation(g_mgr); if(mdl) { - anim->SetModel(mdl); + anim->setModel(mdl); } return(anim); } @@ -86,18 +86,18 @@ SX_LIB_API IAnimPlayer * SXAnim_CreatePlayer(const char * mdl) SX_LIB_API void SXAnim_ModelsComVisible(const ISXFrustum * frustum, const float3 * viewpos, ID id_arr) { SA_PRECOND(_VOID); - g_mgr->ComputeVis(frustum, viewpos, id_arr); + g_mgr->computeVis(frustum, viewpos, id_arr); } SX_LIB_API ID SXAnim_ModelsAddArrForCom() { SA_PRECOND(-1); - return(g_mgr->GetNextVisId()); + return(g_mgr->getNextVisId()); } SX_LIB_API void SXAnim_ModelsDelArrForCom(ID id_arr) { SA_PRECOND(_VOID); - g_mgr->FreeVisID(id_arr); + g_mgr->freeVisID(id_arr); } SX_LIB_API void SXAnim_Dbg_Set(report_func rf) diff --git a/source/common b/source/common index 358f676071d7a332e43f43870e461e3882dab5fb..6d30eb4c6e806568c952dffbd90d3ae59ff01a43 160000 --- a/source/common +++ b/source/common @@ -1 +1 @@ -Subproject commit 358f676071d7a332e43f43870e461e3882dab5fb +Subproject commit 6d30eb4c6e806568c952dffbd90d3ae59ff01a43 diff --git a/source/core/Config.cpp b/source/core/Config.cpp index 481308860a16ea285ece0ee2b4ea656bc7195180..8760167988eb469a18636543ca0fbd848e46a863 100644 --- a/source/core/Config.cpp +++ b/source/core/Config.cpp @@ -90,7 +90,8 @@ int CConfig::parse(const char* file) char c; char cn = 0; - while(!feof(fp)) + bool isRunning = true; + while(isRunning) { if(cn) { @@ -100,6 +101,11 @@ int CConfig::parse(const char* file) else { c = fgetc(fp); + if(feof(fp)) + { + c = '\n'; + isRunning = false; + } } if(bSectionNameDone) { diff --git a/source/decals/DecalManager.cpp b/source/decals/DecalManager.cpp index 588111e633186743682d1e61fc4c575ca3e6802b..6d9c91b04fcdb04db6ded0424c92ad665bd1bb83 100644 --- a/source/decals/DecalManager.cpp +++ b/source/decals/DecalManager.cpp @@ -92,19 +92,19 @@ DecalManager::~DecalManager() } -int DecalManager::AddDecal(Decal * pDecal) +int DecalManager::addDecal(Decal * pDecal) { static const int * MAX_DECALS = GET_PCVAR_INT("r_maxdecals"); static const int * DECAL_MAX_OVERLAPPED = GET_PCVAR_INT("r_max_overlapped_decals"); int numdecal = 0; - //printf("AddDecal(); bgn; c = %d\n", m_vDecals.size()); + //printf("addDecal(); bgn; c = %d\n", m_vDecals.size()); if(m_vDecals.size() >= (UINT)*MAX_DECALS) { for(UINT i = 0, l = m_vDecals.size(); i < l; ++i) { if(!(m_vDecals[i]->m_flags & DECAL_PERMANENT)) { - RemoveDecal(i); + removeDecal(i); break; } } @@ -112,7 +112,7 @@ int DecalManager::AddDecal(Decal * pDecal) numdecal = m_vDecals.size(); m_vDecals.push_back(pDecal); - //ArrPerSound[numdecal]->Render(); + //ArrPerSound[numdecal]->render(); static UINT iDecalId = 0; _DecalMatItem dmi; dmi.m_pDecal = pDecal; @@ -131,22 +131,22 @@ int DecalManager::AddDecal(Decal * pDecal) iOverlappedCount++; if(iOverlappedCount > (UINT)*DECAL_MAX_OVERLAPPED) { - //printf("AddDecal(); rmv\n"); - RemoveDecal(iFirstOverlpd); + //printf("addDecal(); rmv\n"); + removeDecal(iFirstOverlpd); break; } } } //pDecal->iMatSortId = m_MaterialSort[pDecal->m_material].size(); m_MaterialSort[pDecal->m_material].push_back(dmi); - //printf("AddDecal(); end; c = %d\n", m_vDecals.size()); + //printf("addDecal(); end; c = %d\n", m_vDecals.size()); m_bNeedUpdate = true; return numdecal; } -void DecalManager::RemoveDecal(UINT iDecal) +void DecalManager::removeDecal(UINT iDecal) { - //printf("RemoveDecal(); bgn; c = %d\n", m_vDecals.size()); + //printf("removeDecal(); bgn; c = %d\n", m_vDecals.size()); if(iDecal >= m_vDecals.size()) { return; @@ -164,10 +164,10 @@ void DecalManager::RemoveDecal(UINT iDecal) m_aDecals.Delete(m_vDecals[iDecal]); m_vDecals.erase(iDecal); m_bNeedUpdate = true; - //printf("RemoveDecal(); end; c = %d\n", m_vDecals.size()); + //printf("removeDecal(); end; c = %d\n", m_vDecals.size()); } -bool DecalManager::Inside(const float3_t * p, char axis, float coord) +bool DecalManager::inside(const float3_t * p, char axis, float coord) { switch(axis) { @@ -179,7 +179,7 @@ bool DecalManager::Inside(const float3_t * p, char axis, float coord) return(false); } -void DecalManager::Intersect(const float3_t * one, const float3_t * two, float3_t * out, char axis, float coord) +void DecalManager::intersect(const float3_t * one, const float3_t * two, float3_t * out, char axis, float coord) { float t; switch(axis) @@ -195,7 +195,7 @@ void DecalManager::Intersect(const float3_t * one, const float3_t * two, float3_ *out = (float3)SMVectorLerp(*two, *one, t); } -void DecalManager::Clip(const Array<float3_t> & InVerts, Array<float3_t> & OutVerts, char axis, float coord) +void DecalManager::clip(const Array<float3_t> & InVerts, Array<float3_t> & OutVerts, char axis, float coord) { OutVerts.clear(); if(!InVerts.size()) @@ -214,16 +214,16 @@ void DecalManager::Clip(const Array<float3_t> & InVerts, Array<float3_t> & OutVe for(j = 0; j < vertCount; j++) { p = &InVerts[j]; - if(Inside(p, axis, coord)) + if(inside(p, axis, coord)) { - if(Inside(s, axis, coord)) + if(inside(s, axis, coord)) { OutVerts.push_back(*p); outCount++; } else { - Intersect(s, p, &out, axis, coord); + intersect(s, p, &out, axis, coord); OutVerts.push_back(out); outCount++; @@ -233,9 +233,9 @@ void DecalManager::Clip(const Array<float3_t> & InVerts, Array<float3_t> & OutVe } else { - if(Inside(s, axis, coord)) + if(inside(s, axis, coord)) { - Intersect(p, s, &out, axis, coord); + intersect(p, s, &out, axis, coord); OutVerts.push_back(out); outCount++; } @@ -246,7 +246,7 @@ void DecalManager::Clip(const Array<float3_t> & InVerts, Array<float3_t> & OutVe //return outCount; } -const DecalType * DecalManager::GetDecalType(DECAL_TYPE type) +const DecalType * DecalManager::getDecalType(DECAL_TYPE type) { if(type < 0 || type >= DECAL_TYPE_LAST) { @@ -256,7 +256,7 @@ const DecalType * DecalManager::GetDecalType(DECAL_TYPE type) return(&m_DecalTypes[type]); } -void DecalManager::ShootDecal(DECAL_TYPE type, const float3 & position, ID iMaterial, int iEnt, const float3 * saxis, float scale, int flags, const float3 * _normal) +void DecalManager::shootDecal(DECAL_TYPE type, const float3 & position, ID iMaterial, int iEnt, const float3 * saxis, float scale, int flags, const float3 * _normal) { // g_dbgDraw.clear(); //m_dbgRender.push_back(position); @@ -303,7 +303,7 @@ void DecalManager::ShootDecal(DECAL_TYPE type, const float3 & position, ID iMate } else { - dt = GetDecalType(type); + dt = getDecalType(type); if(!dt) { return; @@ -475,7 +475,7 @@ void DecalManager::ShootDecal(DECAL_TYPE type, const float3 & position, ID iMate } } - ComputeBasis(n, (di.m_Flags & DECAL_USESAXIS) ? &(float3)di.m_SAxis : NULL, tsBasis); + computeBasis(n, (di.m_Flags & DECAL_USESAXIS) ? &(float3)di.m_SAxis : NULL, tsBasis); mBasis.r[0] = float4(float3(tsBasis[0]), 0.0f); mBasis.r[1] = float4(float3(tsBasis[1]), 0.0f); @@ -497,10 +497,10 @@ void DecalManager::ShootDecal(DECAL_TYPE type, const float3 & position, ID iMate float nn = vClippedVerts[0].z + 0.002f; //Clip decal by triangle in {S, T} plane - Clip(vClippedVerts, vClippedVerts2, 's', sBound.y); - Clip(vClippedVerts2, vClippedVerts, 's', sBound.x); - Clip(vClippedVerts, vClippedVerts2, 't', tBound.y); - Clip(vClippedVerts2, vClippedVerts, 't', tBound.x); + clip(vClippedVerts, vClippedVerts2, 's', sBound.y); + clip(vClippedVerts2, vClippedVerts, 's', sBound.x); + clip(vClippedVerts, vClippedVerts2, 't', tBound.y); + clip(vClippedVerts2, vClippedVerts, 't', tBound.x); /*for(int ijk = 0; ijk < 3; ijk++) { @@ -550,11 +550,11 @@ void DecalManager::ShootDecal(DECAL_TYPE type, const float3 & position, ID iMate decal->m_pVerts = new DecalVertex[decal->iVertCount]; memcpy(decal->m_pVerts, &vDecalVerts[0], sizeof(DecalVertex) * vDecalVerts.size()); - int numdecal = AddDecal(decal); + int numdecal = addDecal(decal); } } -void DecalManager::Render() +void DecalManager::render() { /*for(int i = 0, l = g_dbgDraw.size(); i < l; i += 3) { @@ -562,7 +562,7 @@ void DecalManager::Render() } SXPhysics_GetDynWorld()->getDebugDrawer()->drawSphere(F3_BTVEC(spherePos), spherePos.w, btVector3(1, 1, 1)); */ - UpdateBuffer(); + updateBuffer(); if(!m_pVertexBuffer) { @@ -603,7 +603,7 @@ void DecalManager::Render() dev->SetRenderState(D3DRS_ALPHABLENDENABLE, FALSE); } -void DecalManager::UpdateBuffer() +void DecalManager::updateBuffer() { if(!m_bNeedUpdate) { @@ -669,12 +669,12 @@ void DecalManager::UpdateBuffer() } -void DecalManager::Update() +void DecalManager::update() { //empty } -void DecalManager::Sync() +void DecalManager::sync() { //empty } diff --git a/source/decals/DecalManager.h b/source/decals/DecalManager.h index 0354d3bc425ec06c6eb40afed335e89eed9706d0..3944f24be931de1f7293e802e515bf4d115f1be0 100644 --- a/source/decals/DecalManager.h +++ b/source/decals/DecalManager.h @@ -118,25 +118,25 @@ public: DecalManager(); ~DecalManager(); - int AddDecal(Decal * pDecal); + int addDecal(Decal * pDecal); - void RemoveDecal(UINT iDecal); + void removeDecal(UINT iDecal); - const DecalType * GetDecalType(DECAL_TYPE type); + const DecalType * getDecalType(DECAL_TYPE type); - bool Inside(const float3_t * p, char axis, float coord); + bool inside(const float3_t * p, char axis, float coord); - void Render(); + void render(); - void Update(); - void Sync(); + void update(); + void sync(); - void Intersect(const float3_t * one, const float3_t * two, float3_t * out, char axis, float coord); + void intersect(const float3_t * one, const float3_t * two, float3_t * out, char axis, float coord); - void Clip(const Array<float3_t> & InVerts, Array<float3_t> & OutVerts, char axis, float coord); + void clip(const Array<float3_t> & InVerts, Array<float3_t> & OutVerts, char axis, float coord); - void ComputeBasis(float3 const & surfaceNormal, float3 const * pSAxis, float3 * textureSpaceBasis) + void computeBasis(float3 const & surfaceNormal, float3 const * pSAxis, float3 * textureSpaceBasis) { // s, t, textureSpaceNormal (T cross S = textureSpaceNormal(N)) // N @@ -204,9 +204,9 @@ public: textureSpaceBasis[1] = SMVector3Normalize(textureSpaceBasis[1]); } - void UpdateBuffer(); + void updateBuffer(); - void ShootDecal(DECAL_TYPE type, const float3 & position, ID iMaterial = -1, int iEnt = 0, const float3 * saxis = NULL, float scale = 1.0f, int flags = 0, const float3 * normal = NULL); + void shootDecal(DECAL_TYPE type, const float3 & position, ID iMaterial = -1, int iEnt = 0, const float3 * saxis = NULL, float scale = 1.0f, int flags = 0, const float3 * normal = NULL); }; #endif diff --git a/source/decals/sxdecals_dll.cpp b/source/decals/sxdecals_dll.cpp index 77ee8f539131a59b4fe64a104fd67ed9e38f66dc..2b077d2f2abf6b0c3e73244e2ad8581ad7878906 100644 --- a/source/decals/sxdecals_dll.cpp +++ b/source/decals/sxdecals_dll.cpp @@ -67,13 +67,13 @@ SX_LIB_API void SXDecals_AKill() SX_LIB_API void SXDecals_Update() { SP_PRECOND(_VOID); - g_pMgr->Update(); + g_pMgr->update(); } SX_LIB_API void SXDecals_Sync() { SP_PRECOND(_VOID); - g_pMgr->Sync(); + g_pMgr->sync(); } SX_LIB_API void SXDecals_Dbg_Set(report_func rf) @@ -84,7 +84,7 @@ SX_LIB_API void SXDecals_Dbg_Set(report_func rf) SX_LIB_API void SXDecals_Render() { SP_PRECOND(_VOID); - g_pMgr->Render(); + g_pMgr->render(); } SX_LIB_API void SXDecals_ShootDecal(DECAL_TYPE type, const float3 & fWorldPos, const float3 & normal) @@ -95,11 +95,11 @@ SX_LIB_API void SXDecals_ShootDecal(DECAL_TYPE type, const float3 & fWorldPos, c reportf(REPORT_MSG_LEVEL_WARNING, "Unable to use DECAL_TYPE_CUSTOM with SXDecals_ShootDecal\n"); return; } - g_pMgr->ShootDecal(type, fWorldPos, 0, 0, 0, 1.0f, 0, &normal); + g_pMgr->shootDecal(type, fWorldPos, 0, 0, 0, 1.0f, 0, &normal); } SX_LIB_API void SXDecals_ShootDecalEx(DECAL_TYPE type, const float3 & fWorldPos, const float3 & normal, int flags, ID material, float fScale, const float3 * saxis) { SP_PRECOND(_VOID); - g_pMgr->ShootDecal(type, fWorldPos, material, 0, saxis, fScale, flags, &normal); + g_pMgr->shootDecal(type, fWorldPos, material, 0, saxis, fScale, flags, &normal); } diff --git a/source/editors_utils/axes_helper.cpp b/source/editors_utils/axes_helper.cpp index 2c9e6427eed31c835a21e4e421e344e2b89d0cef..6618e603524b4e5ef19fc038ae50592afb324251 100644 --- a/source/editors_utils/axes_helper.cpp +++ b/source/editors_utils/axes_helper.cpp @@ -60,7 +60,7 @@ const float3 & AxesHelper::GetRotation() return Rotation; } -const float3 & AxesHelper::GetScale() +const float3 & AxesHelper::getScale() { return Scale; } diff --git a/source/editors_utils/axes_helper.h b/source/editors_utils/axes_helper.h index 3deba7abba120c8a2ac2f505101fca5d12f9bca4..7521b323b6b1d315e0cf6c894a114d1537d544a6 100644 --- a/source/editors_utils/axes_helper.h +++ b/source/editors_utils/axes_helper.h @@ -63,7 +63,7 @@ public: const float3 & GetPosition(); const float3 & GetRotation(); - const float3 & GetScale(); + const float3 & getScale(); const SMQuaternion & GetRotationQ(); void OnMouseMove(int x, int y); diff --git a/source/game/SXbaseAmmo.cpp b/source/game/BaseAmmo.cpp similarity index 81% rename from source/game/SXbaseAmmo.cpp rename to source/game/BaseAmmo.cpp index cc588a00071943f254dcad7100c169c8d3edd79c..49de3f3b78639c53e75dd4c8980d29409150df54 100644 --- a/source/game/SXbaseAmmo.cpp +++ b/source/game/BaseAmmo.cpp @@ -1,10 +1,10 @@ -#include "SXbaseAmmo.h" +#include "BaseAmmo.h" /*! \skydocent base_ammo Базовый класс для патронов */ -BEGIN_PROPTABLE(SXbaseAmmo) +BEGIN_PROPTABLE(CBaseAmmo) //! Начальная скорость пули DEFINE_FIELD_FLOAT(m_fStartSpeed, PDFF_NOEDIT | PDFF_NOEXPORT, "start_speed", "", EDITOR_NONE) //! Масса пули, кг @@ -13,9 +13,9 @@ BEGIN_PROPTABLE(SXbaseAmmo) DEFINE_FIELD_FLOAT(m_fArmorPiercing, PDFF_NOEDIT | PDFF_NOEXPORT, "armor_piercing", "", EDITOR_NONE) END_PROPTABLE() -REGISTER_ENTITY_NOLISTING(SXbaseAmmo, base_ammo); +REGISTER_ENTITY_NOLISTING(CBaseAmmo, base_ammo); -SXbaseAmmo::SXbaseAmmo(EntityManager * pMgr): +CBaseAmmo::CBaseAmmo(CEntityManager * pMgr): BaseClass(pMgr), m_fStartSpeed(0.0f), m_fBulletMass(0.0f), diff --git a/source/game/SXbaseAmmo.h b/source/game/BaseAmmo.h similarity index 80% rename from source/game/SXbaseAmmo.h rename to source/game/BaseAmmo.h index a289b1e683f2b6a71fe4a6996ddb3eee4e0c2b36..1ffa8be98fec833c66d0bef39a6bfc17a53f2bf3 100644 --- a/source/game/SXbaseAmmo.h +++ b/source/game/BaseAmmo.h @@ -8,17 +8,17 @@ See the license in LICENSE Патроны */ -#ifndef _SXbaseAmmo_H_ -#define _SXbaseAmmo_H_ +#ifndef _CBaseAmmo_H_ +#define _CBaseAmmo_H_ -#include "SXbaseSupply.h" +#include "BaseSupply.h" /*! Базовый класс патронов \ingroup cbaseitem */ -class SXbaseAmmo: public SXbaseSupply +class CBaseAmmo: public CBaseSupply { - DECLARE_CLASS(SXbaseAmmo, SXbaseSupply); + DECLARE_CLASS(CBaseAmmo, CBaseSupply); DECLARE_PROPTABLE(); public: DECLARE_CONSTRUCTOR(); diff --git a/source/game/SXbaseAmmoBox.cpp b/source/game/BaseAmmoBox.cpp similarity index 85% rename from source/game/SXbaseAmmoBox.cpp rename to source/game/BaseAmmoBox.cpp index c2da6149e1dc25a4c7e7b9b643610f7c582e8ac2..5be0609c3dd4835a34facc832c6e9cf28d6a0627 100644 --- a/source/game/SXbaseAmmoBox.cpp +++ b/source/game/BaseAmmoBox.cpp @@ -1,10 +1,10 @@ -#include "SXbaseAmmoBox.h" +#include "BaseAmmoBox.h" /*! \skydocent base_ammobox Базовый класс коробки с припасами. При использовании, выдает игроку items_per_use объектов item_class, если внутри содержится достаточно */ -BEGIN_PROPTABLE(SXbaseAmmoBox) +BEGIN_PROPTABLE(CBaseAmmoBox) //! Объем коробки в итемах DEFINE_FIELD_INT(m_iMaxItems, PDFF_NOEDIT | PDFF_NOEXPORT, "max_items", "", EDITOR_NONE) //! Текущее количество итемов внутри @@ -15,9 +15,9 @@ BEGIN_PROPTABLE(SXbaseAmmoBox) DEFINE_FIELD_STRING(m_szAmmoType, PDFF_NOEDIT | PDFF_NOEXPORT, "item_class", "", EDITOR_NONE) END_PROPTABLE() -REGISTER_ENTITY_NOLISTING(SXbaseAmmoBox, base_ammobox); +REGISTER_ENTITY_NOLISTING(CBaseAmmoBox, base_ammobox); -SXbaseAmmoBox::SXbaseAmmoBox(EntityManager * pMgr): +CBaseAmmoBox::CBaseAmmoBox(CEntityManager * pMgr): BaseClass(pMgr), m_iMaxItems(0), m_iCurItems(0), diff --git a/source/game/SXbaseAmmoBox.h b/source/game/BaseAmmoBox.h similarity index 77% rename from source/game/SXbaseAmmoBox.h rename to source/game/BaseAmmoBox.h index f9cc7a682eca76e980437d79e5d4e745217ee903..db3f28fd63a7536c12ed1c0ee6e3a3fedc52bd5f 100644 --- a/source/game/SXbaseAmmoBox.h +++ b/source/game/BaseAmmoBox.h @@ -8,20 +8,20 @@ See the license in LICENSE Аммобокс */ -#ifndef _SXbaseAmmoBox_H_ -#define _SXbaseAmmoBox_H_ +#ifndef _CBaseAmmoBox_H_ +#define _CBaseAmmoBox_H_ -#include "SXbaseItem.h" +#include "BaseItem.h" /*! Аммобокс \ingroup cbaseitem */ -class SXbaseAmmoBox: public SXbaseItem +class CBaseAmmoBox: public CBaseItem { - DECLARE_CLASS(SXbaseAmmoBox, SXbaseItem); + DECLARE_CLASS(CBaseAmmoBox, CBaseItem); DECLARE_PROPTABLE(); public: - ThisClass(EntityManager * pMgr); + ThisClass(CEntityManager * pMgr); int m_iMaxItems; //!< Максимальное количество предметов, которые бокс может выдать int m_iCurItems; //!< Сколько осталось diff --git a/source/game/SXbaseAnimating.cpp b/source/game/BaseAnimating.cpp similarity index 53% rename from source/game/SXbaseAnimating.cpp rename to source/game/BaseAnimating.cpp index af7af8fb3ae7d42d722a78542ff853e467e9b0f1..84c15d366bd16de4f1a894a44b6ce9f69a55046a 100644 --- a/source/game/SXbaseAnimating.cpp +++ b/source/game/BaseAnimating.cpp @@ -1,11 +1,11 @@ -#include "SXbaseAnimating.h" +#include "BaseAnimating.h" #include "gcore/sxgcore.h" /*! \skydocent base_animating Базовый класс для объектов, имеющих объем в игровом мире */ -BEGIN_PROPTABLE(SXbaseAnimating) +BEGIN_PROPTABLE(CBaseAnimating) //! Файл модели. Поддерживаются статические и анимированные модели DEFINE_FIELD_STRING(m_szModelFile, 0, "model", "Model file", EDITOR_FILEFIELD) FILE_OPTION("Model file (*.dse)", "*.dse") @@ -15,9 +15,9 @@ BEGIN_PROPTABLE(SXbaseAnimating) DEFINE_FIELD_FLOAT(m_fBaseScale, 0, "scale", "Scale", EDITOR_TEXTFIELD) END_PROPTABLE() -REGISTER_ENTITY_NOLISTING(SXbaseAnimating, base_animating); +REGISTER_ENTITY_NOLISTING(CBaseAnimating, base_animating); -SXbaseAnimating::SXbaseAnimating(EntityManager * pMgr): +CBaseAnimating::CBaseAnimating(CEntityManager * pMgr): BaseClass(pMgr), m_pAnimPlayer(NULL), m_fBaseScale(1.0f), @@ -26,53 +26,53 @@ SXbaseAnimating::SXbaseAnimating(EntityManager * pMgr): { } -SXbaseAnimating::~SXbaseAnimating() +CBaseAnimating::~CBaseAnimating() { - ReleasePhysics(); + releasePhysics(); mem_release(m_pAnimPlayer); } -void SXbaseAnimating::GetMinMax(float3 * min, float3 * max) +void CBaseAnimating::getMinMax(float3 * min, float3 * max) { if (m_pAnimPlayer) { - const ISXBound * bound = m_pAnimPlayer->GetBound(); + const ISXBound * bound = m_pAnimPlayer->getBound(); bound->GetMinMax(min, max); } } -void SXbaseAnimating::GetSphere(float3 * center, float * radius) +void CBaseAnimating::getSphere(float3 * center, float * radius) { - if (m_pAnimPlayer) + if(m_pAnimPlayer) { - const ISXBound * bound = m_pAnimPlayer->GetBound(); + const ISXBound * bound = m_pAnimPlayer->getBound(); bound->GetSphere(center, radius); } } -bool SXbaseAnimating::SetKV(const char * name, const char * value) +bool CBaseAnimating::setKV(const char * name, const char * value) { - if(!BaseClass::SetKV(name, value)) + if(!BaseClass::setKV(name, value)) { return(false); } if(!strcmp(name, "model")) { - SetModel(value); + setModel(value); } else if(!strcmp(name, "scale")) { - ReleasePhysics(); - m_pAnimPlayer->SetScale(m_fBaseScale); - InitPhysics(); + releasePhysics(); + m_pAnimPlayer->setScale(m_fBaseScale); + initPhysics(); } return(true); } -void SXbaseAnimating::SetModel(const char * mdl) +void CBaseAnimating::setModel(const char * mdl) { - _SetStrVal(&m_szModelFile, mdl); - ReleasePhysics(); + _setStrVal(&m_szModelFile, mdl); + releasePhysics(); if(!mdl[0] && m_pAnimPlayer) { mem_release(m_pAnimPlayer); @@ -84,80 +84,80 @@ void SXbaseAnimating::SetModel(const char * mdl) } else { - m_pAnimPlayer->SetModel(mdl); + m_pAnimPlayer->setModel(mdl); } - InitPhysics(); + initPhysics(); } -float3 SXbaseAnimating::GetAttachmentPos(int id) +float3 CBaseAnimating::getAttachmentPos(int id) { float3 pos; if(!m_pAnimPlayer && id >= 0) { - pos = m_pAnimPlayer->GetBoneTransformPos(id); + pos = m_pAnimPlayer->getBoneTransformPos(id); } - return(GetOrient() * pos + GetPos()); + return(getOrient() * pos + getPos()); } -SMQuaternion SXbaseAnimating::GetAttachmentRot(int id) +SMQuaternion CBaseAnimating::getAttachmentRot(int id) { SMQuaternion rot; if(!m_pAnimPlayer && id >= 0) { - rot = m_pAnimPlayer->GetBoneTransformRot(id); + rot = m_pAnimPlayer->getBoneTransformRot(id); } - return(GetOrient() * rot); + return(getOrient() * rot); } -void SXbaseAnimating::OnSync() +void CBaseAnimating::onSync() { - BaseClass::OnSync(); + BaseClass::onSync(); if(!m_pParent && m_pRigidBody) { - SetPos(BTVEC_F3(m_pRigidBody->getWorldTransform().getOrigin())); - SetOrient(BTQUAT_Q4(m_pRigidBody->getWorldTransform().getRotation())); + setPos(BTVEC_F3(m_pRigidBody->getWorldTransform().getOrigin())); + setOrient(BTQUAT_Q4(m_pRigidBody->getWorldTransform().getRotation())); } else if(m_pRigidBody) { - // m_pRigidBody->getWorldTransform().setOrigin(F3_BTVEC(GetPos())); - // m_pRigidBody->getWorldTransform().setRotation(Q4_BTQUAT(GetOrient())); + // m_pRigidBody->getWorldTransform().setOrigin(F3_BTVEC(getPos())); + // m_pRigidBody->getWorldTransform().setRotation(Q4_BTQUAT(getOrient())); } if(m_pAnimPlayer) { - m_pAnimPlayer->SetScale(m_fBaseScale); - m_pAnimPlayer->SetPos(GetPos()); - m_pAnimPlayer->SetOrient(GetOrient()); + m_pAnimPlayer->setScale(m_fBaseScale); + m_pAnimPlayer->setPos(getPos()); + m_pAnimPlayer->setOrient(getOrient()); } } -void SXbaseAnimating::PlayAnimation(const char * name, UINT iFadeTime, UINT slot) +void CBaseAnimating::playAnimation(const char * name, UINT iFadeTime, UINT slot) { if(m_pAnimPlayer) { - m_pAnimPlayer->Play(name, iFadeTime, slot); + m_pAnimPlayer->play(name, iFadeTime, slot); } } -bool SXbaseAnimating::PlayingAnimations(const char* name) +bool CBaseAnimating::playingAnimations(const char* name) { if(m_pAnimPlayer) { - return(m_pAnimPlayer->PlayingAnimations(name)); + return(m_pAnimPlayer->playingAnimations(name)); } return(false); } -void SXbaseAnimating::PlayActivity(const char * name, UINT iFadeTime, UINT slot) +void CBaseAnimating::playActivity(const char * name, UINT iFadeTime, UINT slot) { if(m_pAnimPlayer) { - m_pAnimPlayer->StartActivity(name, iFadeTime, slot); + m_pAnimPlayer->startActivity(name, iFadeTime, slot); } } -void SXbaseAnimating::InitPhysics() +void CBaseAnimating::initPhysics() { if(!m_pAnimPlayer) { @@ -168,9 +168,9 @@ void SXbaseAnimating::InitPhysics() float3_t ** ppfData; int32_t * pfDataLen; - //m_pAnimPlayer->SetScale(m_fBaseScale); + //m_pAnimPlayer->setScale(m_fBaseScale); - m_pAnimPlayer->GetPhysData(&iShapeCount, &phTypes, &ppfData, &pfDataLen); + m_pAnimPlayer->getPhysData(&iShapeCount, &phTypes, &ppfData, &pfDataLen); for(int i = 0; i < iShapeCount; ++i) { @@ -181,13 +181,13 @@ void SXbaseAnimating::InitPhysics() break; } - m_pAnimPlayer->FreePhysData(iShapeCount, phTypes, ppfData, pfDataLen); + m_pAnimPlayer->freePhysData(iShapeCount, phTypes, ppfData, pfDataLen); - CreatePhysBody(); + createPhysBody(); } -void SXbaseAnimating::CreatePhysBody() +void CBaseAnimating::createPhysBody() { if(m_pCollideShape) { @@ -211,30 +211,30 @@ void SXbaseAnimating::CreatePhysBody() } } -void SXbaseAnimating::RemovePhysBody() +void CBaseAnimating::removePhysBody() { SXPhysics_RemoveShape(m_pRigidBody); mem_delete(m_pRigidBody); } -void SXbaseAnimating::ReleasePhysics() +void CBaseAnimating::releasePhysics() { - RemovePhysBody(); + removePhysBody(); mem_delete(m_pCollideShape); } -void SXbaseAnimating::SetPos(const float3 & pos) +void CBaseAnimating::setPos(const float3 & pos) { - BaseClass::SetPos(pos); + BaseClass::setPos(pos); if(m_pRigidBody) { m_pRigidBody->getWorldTransform().setOrigin(F3_BTVEC(pos)); } } -void SXbaseAnimating::SetOrient(const SMQuaternion & q) +void CBaseAnimating::setOrient(const SMQuaternion & q) { - BaseClass::SetOrient(q); + BaseClass::setOrient(q); if(m_pRigidBody) { m_pRigidBody->getWorldTransform().setRotation(Q4_BTQUAT(q)); diff --git a/source/game/BaseAnimating.h b/source/game/BaseAnimating.h new file mode 100644 index 0000000000000000000000000000000000000000..58f339125f67d325776cf89135bae727b30eb8a9 --- /dev/null +++ b/source/game/BaseAnimating.h @@ -0,0 +1,68 @@ + +/****************************************************** +Copyright © Vitaliy Buturlin, Evgeny Danilovich, 2017 +See the license in LICENSE +******************************************************/ + +/*! +\file +Анимированный игровой объект +*/ + +/*! \defgroup cbaseanimating Моделированные объекты +\ingroup cbaseentity +@{ +*/ + +#ifndef _CBaseAnimating_H_ +#define _CBaseAnimating_H_ + +#include "BaseEntity.h" +#include <anim/sxanim.h> + +//! Анимированный игровой объект +class CBaseAnimating: public CBaseEntity +{ + DECLARE_CLASS(CBaseAnimating, CBaseEntity); + DECLARE_PROPTABLE(); +public: + CBaseAnimating(CEntityManager * pMgr); + ~CBaseAnimating(); + + void getMinMax(float3 * min, float3 * max); + void getSphere(float3 * center, float * radius); + + bool setKV(const char * name, const char * value); + + void setModel(const char * mdl); + + float3 getAttachmentPos(int id); + SMQuaternion getAttachmentRot(int id); + + void onSync(); + + void playAnimation(const char * name, UINT iFadeTime = 0, UINT slot = 0); + void playActivity(const char * name, UINT iFadeTime = 0, UINT slot = 0); + + + bool playingAnimations(const char* name); + void setPos(const float3 & pos); + void setOrient(const SMQuaternion & q); + +protected: + IAnimPlayer * m_pAnimPlayer; + const char * m_szModelFile; + float m_fBaseScale; + + virtual void initPhysics(); + virtual void createPhysBody(); + void releasePhysics(); + virtual void removePhysBody(); + + btCollisionShape * m_pCollideShape; + btRigidBody * m_pRigidBody; +}; + +#endif + +/*! @} cbaseanimating */ diff --git a/source/game/BaseCharacter.cpp b/source/game/BaseCharacter.cpp new file mode 100644 index 0000000000000000000000000000000000000000..0ee51d3d0a981f9678a68c26a05190ffeb4a6465 --- /dev/null +++ b/source/game/BaseCharacter.cpp @@ -0,0 +1,246 @@ + +#include "BaseCharacter.h" +#include "GameData.h" +#include "BaseTool.h" +#include "BaseWeapon.h" + +/*! \skydocent base_character +Базовый класс персонажа +*/ + +BEGIN_PROPTABLE(CBaseCharacter) + // empty +END_PROPTABLE() + +REGISTER_ENTITY_NOLISTING(CBaseCharacter, base_character); + +class btKinematicClosestNotMeRayResultCallback: public btCollisionWorld::ClosestRayResultCallback +{ +public: + btKinematicClosestNotMeRayResultCallback(btCollisionObject* me, const btVector3& rayFromWorld, const btVector3& rayToWorld): btCollisionWorld::ClosestRayResultCallback(rayFromWorld, rayToWorld) + { + m_me = me; + m_shapeInfo = {-1, -1}; + } + + virtual btScalar addSingleResult(btCollisionWorld::LocalRayResult& rayResult, bool normalInWorldSpace) + { + if(rayResult.m_collisionObject == m_me) + return 1.0; + if(rayResult.m_localShapeInfo) + { + m_shapeInfo = *rayResult.m_localShapeInfo; + } + return ClosestRayResultCallback::addSingleResult(rayResult, normalInWorldSpace); + } + btCollisionWorld::LocalShapeInfo m_shapeInfo; +protected: + btCollisionObject* m_me; +}; + +CBaseCharacter::CBaseCharacter(CEntityManager * pMgr): + BaseClass(pMgr), + m_uMoveDir(PM_OBSERVER), + m_vPitchYawRoll(float3_t(0, 0, 0)), + m_pActiveTool(NULL), + m_fCurrentSpread(0.0f) +{ + btTransform startTransform; + startTransform.setIdentity(); + startTransform.setOrigin(F3_BTVEC(m_vPosition)); + //startTransform.setOrigin(btVector3(0, 12, 10)); + + m_pGhostObject = new btPairCachingGhostObject(); + m_pGhostObject->setWorldTransform(startTransform); + //sweepBP->getOverlappingPairCache()->setInternalGhostPairCallback(new btGhostPairCallback()); + m_pCollideShape = new btCapsuleShape(0.4f, 1.0f); + m_pGhostObject->setCollisionShape(m_pCollideShape); + m_pGhostObject->setCollisionFlags(btCollisionObject::CF_CHARACTER_OBJECT); + m_pGhostObject->setUserPointer(this); + + btScalar stepHeight = 0.4f; + m_pCharacter = new btKinematicCharacterController(m_pGhostObject, (btConvexShape*)m_pCollideShape, stepHeight, btVector3(0.0f, 1.0f, 0.0f)); + m_pCharacter->setMaxJumpHeight(0.60f); + m_pCharacter->setJumpSpeed(3.50f); + //m_pCharacter->setJumpSpeed(3.5f); + m_pCharacter->setGravity(btVector3(0, -10.0f, 0)); + //m_pCharacter->setGravity(1.0f); + m_pCharacter->setFallSpeed(300.0f); + //m_pCharacter->setFallSpeed(30.0f); + + SXPhysics_GetDynWorld()->addCollisionObject(m_pGhostObject, btBroadphaseProxy::CharacterFilter, btBroadphaseProxy::AllFilter & ~btBroadphaseProxy::DebrisFilter); + + m_pGhostObject->setCollisionFlags(m_pGhostObject->getCollisionFlags() | btCollisionObject::CF_DISABLE_VISUALIZE_OBJECT); + + SXPhysics_GetDynWorld()->addAction(m_pCharacter); + + + m_flashlight = (CLightDirectional*)CREATE_ENTITY("light_directional", m_pMgr); + //m_flashlight->setPos(getPos() + float3(0.f, 0.1f, 0.f)); + m_flashlight->setPos(getPos() + float3(0.f, 0.2f, 0.1f)); + m_flashlight->setOrient(getOrient() * SMQuaternion(SM_PIDIV2, 'x')); + m_flashlight->setParent(this); + m_flashlight->setDist(20.f); + m_flashlight->setAngle(SMToRadian(60)); + m_flashlight->setColor(float3(3.5, 3.5, 3.5)); + //m_flashlight->setShadowType(-1); + m_flashlight->setShadowType(1); + + m_idTaskSpread = SET_INTERVAL(updateSpread, 1.0f / 30.0f); +} + +CBaseCharacter::~CBaseCharacter() +{ + CLEAR_INTERVAL(m_idTaskSpread); + REMOVE_ENTITY(m_flashlight); +} + + +void CBaseCharacter::attack(BOOL state) +{ + if(m_uMoveDir & PM_OBSERVER) + { + return; + } + if(m_pActiveTool) + { + m_pActiveTool->primaryAction(state); + } +} + +void CBaseCharacter::attack2(BOOL state) +{ + if(m_uMoveDir & PM_OBSERVER) + { + return; + } + if(m_pActiveTool) + { + m_pActiveTool->secondaryAction(state); + } +} + +void CBaseCharacter::reload() +{ + if(m_uMoveDir & PM_OBSERVER) + { + return; + } + if(m_pActiveTool) + { + m_pActiveTool->reload(); + } +} + +void CBaseCharacter::toggleFlashlight() +{ + m_flashlight->toggleEnable(); +} + +void CBaseCharacter::nextFireMode() +{ + if(m_uMoveDir & PM_OBSERVER) + { + return; + } + if(m_pActiveTool) + { + //@FIXME: Add correct call + //m_pActiveTool->nextFireMode(); + } +} + +bool CBaseCharacter::onGround() +{ + return(m_pCharacter->onGround()); +} + +void CBaseCharacter::playFootstepsSound() +{ + if(!(m_uMoveDir & PM_OBSERVER)) + { + if(onGround()) + { + float3 start = getPos(), + end = start + float3(0.0f, -2.0f, 0.0f); + btKinematicClosestNotMeRayResultCallback cb(m_pGhostObject, F3_BTVEC(start), F3_BTVEC(end)); + SXPhysics_GetDynWorld()->rayTest(F3_BTVEC(start), F3_BTVEC(end), cb); + + if(cb.hasHit() && cb.m_shapeInfo.m_shapePart == 0 && cb.m_shapeInfo.m_triangleIndex >= 0) + { + MTLTYPE_PHYSIC type = (MTLTYPE_PHYSIC)SXPhysics_GetMtlType(cb.m_collisionObject, &cb.m_shapeInfo); + g_pGameData->playFootstepSound(type, BTVEC_F3(cb.m_hitPointWorld)); + } + } + } +} + +float CBaseCharacter::getMomentSpread() +{ + if(!m_pActiveTool || !m_pActiveTool->isWeapon()) + { + return(0.0f); + } + + CBaseWeapon *pWpn = (CBaseWeapon*)m_pActiveTool; + + float fBaseSpread = pWpn->getBaseSpread(); + + const float fIdleSpreadBase = 1.0f, fIdleSpreadMult = pWpn->getSpreadCoeff(SPREAD_COEFF_IDLE), // стоя + fCrouchSpreadBase = 1.0f, fCrouchSpreadMult = pWpn->getSpreadCoeff(SPREAD_COEFF_CROUCH), // пригувшись + fLaySpreadBase = 1.0f, fLaySpreadMult = pWpn->getSpreadCoeff(SPREAD_COEFF_CRAWL), // лежа + + fWalkSpreadBase = 1.0f, fWalkSpreadMult = pWpn->getSpreadCoeff(SPREAD_COEFF_WALK), // в ходьбе + fRunSpreadBase = 1.0f, fRunSpreadMult = pWpn->getSpreadCoeff(SPREAD_COEFF_RUN), // в беге + fAirborneSpreadBase = 1.0f, fAirborneSpreadMult = pWpn->getSpreadCoeff(SPREAD_COEFF_AIRBORNE), // в прыжке + fConditionSpreadBase = 1.0f, fConditionSpreadMult = pWpn->getSpreadCoeff(SPREAD_COEFF_CONDITION), // состояние оружия + fArmSpreadBase = 1.0f, fArmSpreadMult = pWpn->getSpreadCoeff(SPREAD_COEFF_ARM), // состояние рук + fIronSightSpreadBase = 1.0f, fIronSightSpreadMult = pWpn->getSpreadCoeff(SPREAD_COEFF_IRONSIGHT); // в прицеливании + + + + float fMomentSpread = fBaseSpread * + (fIdleSpreadBase + (!(m_uMoveDir & (PM_CROUCH | PM_CRAWL)) ? fIdleSpreadMult : 0.0f)) * + (fWalkSpreadBase + (((m_uMoveDir & (PM_FORWARD | PM_BACKWARD | PM_LEFT | PM_RIGHT)) && !(m_uMoveDir & PM_RUN)) ? fWalkSpreadMult : 0.0f)) * + (fCrouchSpreadBase + ((m_uMoveDir & PM_CROUCH) ? fCrouchSpreadMult : 0.0f)) * + (fRunSpreadBase + ((m_uMoveDir & PM_RUN) ? fRunSpreadMult : 0.0f)) * + (fLaySpreadBase + ((m_uMoveDir & PM_CRAWL) ? fLaySpreadMult : 0.0f)) * + (fAirborneSpreadBase + (!onGround() ? fAirborneSpreadMult : 0.0f)) * + (fConditionSpreadBase + (fConditionSpreadMult * (1.0f - pWpn->getCondition()))) * + // (fArmSpreadBase + (fArmSpreadMult * (1.0f - getArmCondition()))) * + (fIronSightSpreadBase + (pWpn->isIronSight() ? fIronSightSpreadMult : 0.0f)) + ; + + //printf("%5.3f => %5.3f\n", fMomentSpread, fBaseSpread); + if(fMomentSpread < fBaseSpread) + { + fMomentSpread = fBaseSpread; + } + return(fMomentSpread); +} + +void CBaseCharacter::updateSpread(float dt) +{ + float fMomentSpread = getMomentSpread(); + float fWeaponMass = m_pActiveTool ? m_pActiveTool->getWeight() : 0.0f; + //printf("%5.3f => %5.3f\n", fMomentSpread, m_fCurrentSpread); + if(m_fCurrentSpread < fMomentSpread) + { + m_fCurrentSpread += fMomentSpread * (3.0f * dt); + } + else + { + float fDivider = 5.0f; + float fCoeff = (3.0f * dt) * (fDivider / (fWeaponMass + (fDivider / 0.9f)) + 0.1f); + if(fCoeff > 1.0f) + { + fCoeff = 1.0f; + } + m_fCurrentSpread -= (m_fCurrentSpread - fMomentSpread) * fCoeff; + } +} + +float CBaseCharacter::getCurrentSpread() +{ + return(m_fCurrentSpread); +} diff --git a/source/game/BaseCharacter.h b/source/game/BaseCharacter.h new file mode 100644 index 0000000000000000000000000000000000000000..51609b515df0268e192de731d013c46e81a78925 --- /dev/null +++ b/source/game/BaseCharacter.h @@ -0,0 +1,106 @@ + +/****************************************************** +Copyright � Vitaliy Buturlin, Evgeny Danilovich, 2017 +See the license in LICENSE +******************************************************/ + +/*! +\file +������� ����� ��������� +*/ + +/*! \ingroup cbaseanimating +@{ +*/ + +#ifndef _CBaseCharacter_H_ +#define _CBaseCharacter_H_ + +#include "BaseAnimating.h" +#include "LightDirectional.h" + +class CBaseTool; + +//! ���� �������� ������ +enum PLAYER_MOVE +{ + PM_NONE = 0, + PM_FORWARD = 0x01, //!< ������ + PM_BACKWARD = 0x02, //!< ����� + PM_LEFT = 0x04, //!< ����� + PM_RIGHT = 0x08, //!< ������ + PM_CROUCH = 0x10, //!< �������� + PM_JUMP = 0x20, //!< �������� + PM_RUN = 0x40, //!< ������ + PM_CRAWL = 0x80, //!< ������ + PM_OBSERVER = 0x100, //!< ����������� + + PM_STOP = 0xFFFF +}; + +//! ����� ������ \ingroup cbaseanimating +class CBaseCharacter: public CBaseAnimating +{ + DECLARE_CLASS(CBaseCharacter, CBaseAnimating); + DECLARE_PROPTABLE(); +public: + CBaseCharacter(CEntityManager * pMgr); + ~CBaseCharacter(); + + //! ���������/������������� ��������� ����� + void attack(BOOL state); + //! ���������/������������� ��������� ����� + void attack2(BOOL state); + //! ��������� ����������� ��������� ������ + void reload(); + //! ��������/��������� ������ + void toggleFlashlight(); + //! ����������� ����� �������� ��������� ������ + void nextFireMode(); + + //! ��������� �� ����� �� ����� + bool onGround(); + + //! ������������� ���� ����� � ������ ��������� �� ������� ����� ����� + void playFootstepsSound(); + + + //! �������� ������������ ��� �������� ������ ����������� �������� (� ������ �������� ��������) + float getCurrentSpread(); + +protected: + //! ������� + CLightDirectional* m_flashlight; + + //! ������� �������� + UINT m_uMoveDir; + + //! ������� ���������� � ����� + CBaseTool * m_pActiveTool; + + //! ��� ������ @{ + btCollisionShape * m_pCollideShape; + btRigidBody * m_pRigidBody; + btPairCachingGhostObject * m_pGhostObject; + btKinematicCharacterController * m_pCharacter; + //! @} + + //! ���� �������� ������ + float3_t m_vPitchYawRoll; + + //! ���������� �������� ������������ �������� + float getMomentSpread(); + + //! ������ ���������� �������� + ID m_idTaskSpread; + + //! ��������� �������� �������� + virtual void updateSpread(float dt); + + //! ����������� �������� �������� + float m_fCurrentSpread; +}; + +#endif + +//! @} diff --git a/source/game/SXbaseEntity.cpp b/source/game/BaseEntity.cpp similarity index 76% rename from source/game/SXbaseEntity.cpp rename to source/game/BaseEntity.cpp index 4cff430e8faf6eab1f6faa11edd46e1690c0cb11..a8f3613c12a964329050d09a49e8bf961f613742 100644 --- a/source/game/SXbaseEntity.cpp +++ b/source/game/BaseEntity.cpp @@ -1,6 +1,6 @@ #include <stdio.h> -#include "SXbaseEntity.h" +#include "BaseEntity.h" #include "EntityManager.h" @@ -8,7 +8,7 @@ Базовый объект. От него наследуются все остальные объекты */ -BEGIN_PROPTABLE_NOBASE(SXbaseEntity) +BEGIN_PROPTABLE_NOBASE(CBaseEntity) //! Имя объекта DEFINE_FIELD_STRING(m_szName, 0, "name", "Name", EDITOR_TEXTFIELD) //! Позиция в мире @@ -29,11 +29,11 @@ BEGIN_PROPTABLE_NOBASE(SXbaseEntity) //EDITOR_COMBO_END() END_PROPTABLE() -REGISTER_ENTITY_NOLISTING(SXbaseEntity, base_entity); +REGISTER_ENTITY_NOLISTING(CBaseEntity, base_entity); -void SXbaseEntity::SetDefaults() +void CBaseEntity::setDefaults() { - proptable_t * pt = GetPropTable(); + proptable_t * pt = getPropTable(); const char * estr = GetEmptyString(); while(pt) { @@ -48,7 +48,7 @@ void SXbaseEntity::SetDefaults() } } -SXbaseEntity::SXbaseEntity(EntityManager * pWorld): +CBaseEntity::CBaseEntity(CEntityManager * pWorld): m_iId(0), m_iFlags(0), m_pMgr(pWorld), @@ -59,12 +59,12 @@ SXbaseEntity::SXbaseEntity(EntityManager * pWorld): m_pOwner(NULL)/*, m_vDiscreteLinearVelocity(float3_t(0.0f, 0.0f, 0.0f))*/ { - m_iId = pWorld->Register(this); + m_iId = pWorld->reg(this); } -/*void SXbaseEntity::SetDefaults() +/*void CBaseEntity::setDefaults() { - proptable_t * pt = GetPropTable(); + proptable_t * pt = getPropTable(); const char * estr = GetEmptyString(); const char * defstr = NULL; while(pt) @@ -80,11 +80,11 @@ SXbaseEntity::SXbaseEntity(EntityManager * pWorld): } }*/ -SXbaseEntity::~SXbaseEntity() +CBaseEntity::~CBaseEntity() { - m_pMgr->Unregister(m_iId); + m_pMgr->unreg(m_iId); - proptable_t * pt = GetPropTable(); + proptable_t * pt = getPropTable(); const char * estr = GetEmptyString(); while(pt) { @@ -103,22 +103,22 @@ SXbaseEntity::~SXbaseEntity() } } -void SXbaseEntity::SetClassName(const char * name) +void CBaseEntity::setClassName(const char * name) { m_szClassName = name; } -const char * SXbaseEntity::GetName() +const char * CBaseEntity::getName() { return(m_szName); } -const char * SXbaseEntity::GetClassName() +const char * CBaseEntity::getClassName() { return(m_szClassName); } -void SXbaseEntity::GetMinMax(float3 * min, float3 * max) +void CBaseEntity::getMinMax(float3 * min, float3 * max) { if (min) min->x = min->y = min->z = 0; @@ -127,7 +127,7 @@ void SXbaseEntity::GetMinMax(float3 * min, float3 * max) max->x = max->y = max->z = 0; } -void SXbaseEntity::GetSphere(float3 * center, float * radius) +void CBaseEntity::getSphere(float3 * center, float * radius) { if (center) center->x = center->y = center->z = 0; @@ -136,50 +136,50 @@ void SXbaseEntity::GetSphere(float3 * center, float * radius) radius = 0; } -void SXbaseEntity::SetPos(const float3 & pos) +void CBaseEntity::setPos(const float3 & pos) { m_vPosition = pos; } -float3 SXbaseEntity::GetPos() +float3 CBaseEntity::getPos() { return(m_vPosition); } -void SXbaseEntity::SetOrient(const SMQuaternion & q) +void CBaseEntity::setOrient(const SMQuaternion & q) { m_vOrientation = q; } -SMQuaternion SXbaseEntity::GetOrient() +SMQuaternion CBaseEntity::getOrient() { return(m_vOrientation); } -ID SXbaseEntity::GetId() +ID CBaseEntity::getId() { return(m_iId); } -UINT SXbaseEntity::GetFlags() +UINT CBaseEntity::getFlags() { return(m_iFlags); } -void SXbaseEntity::SetFlags(UINT f) +void CBaseEntity::setFlags(UINT f) { m_iFlags = f; } -SMMATRIX SXbaseEntity::GetWorldTM() +SMMATRIX CBaseEntity::getWorldTM() { return(m_vOrientation.GetMatrix() * SMMatrixTranslation(m_vPosition)); } -bool SXbaseEntity::SetKV(const char * name, const char * value) +bool CBaseEntity::setKV(const char * name, const char * value) { - propdata_t * field = GetField(name); + propdata_t * field = getField(name); if(!field) { return(false); @@ -188,7 +188,7 @@ bool SXbaseEntity::SetKV(const char * name, const char * value) SMQuaternion q; int d; float f; - SXbaseEntity * pEnt; + CBaseEntity * pEnt; switch(field->type) { case PDF_INT: @@ -220,7 +220,7 @@ bool SXbaseEntity::SetKV(const char * name, const char * value) } return(false); case PDF_STRING: - _SetStrVal(&(this->*((const char * ThisClass::*)field->pField)), value); + _setStrVal(&(this->*((const char * ThisClass::*)field->pField)), value); break; case PDF_ANGLES: if(4 == sscanf(value, "%f %f %f %f", &q.x, &q.y, &q.z, &q.w)) @@ -238,16 +238,16 @@ bool SXbaseEntity::SetKV(const char * name, const char * value) return(false); case PDF_ENTITY: case PDF_PARENT: - pEnt = m_pMgr->FindEntityByName(value); + pEnt = m_pMgr->findEntityByName(value); if(pEnt || !value[0]) { if(field->type == PDF_PARENT) { - SetParent(pEnt); + setParent(pEnt); } else { - this->*((SXbaseEntity * ThisClass::*)field->pField) = pEnt; + this->*((CBaseEntity * ThisClass::*)field->pField) = pEnt; } return(true); } @@ -312,16 +312,16 @@ bool SXbaseEntity::SetKV(const char * name, const char * value) } return(true); } -bool SXbaseEntity::GetKV(const char * name, char * out, int bufsize) +bool CBaseEntity::getKV(const char * name, char * out, int bufsize) { - propdata_t * field = GetField(name); + propdata_t * field = getField(name); if(!field) { return(false); } SMQuaternion q; float3_t f3; - SXbaseEntity * pEnt; + CBaseEntity * pEnt; switch(field->type) { case PDF_INT: @@ -334,7 +334,7 @@ bool SXbaseEntity::GetKV(const char * name, char * out, int bufsize) sprintf_s(out, bufsize, "%f", this->*((float ThisClass::*)field->pField)); break; case PDF_VECTOR: - sprintf_s(out, bufsize, "%f %f %f", (this->*((float3_t ThisClass::*)field->pField)).x, (this->*((float3_t SXbaseEntity::*)field->pField)).y, (this->*((float3_t SXbaseEntity::*)field->pField)).z); + sprintf_s(out, bufsize, "%f %f %f", (this->*((float3_t ThisClass::*)field->pField)).x, (this->*((float3_t CBaseEntity::*)field->pField)).y, (this->*((float3_t CBaseEntity::*)field->pField)).z); break; case PDF_BOOL: sprintf_s(out, bufsize, "%d", this->*((bool ThisClass::*)field->pField) ? 1 : 0); @@ -349,14 +349,14 @@ bool SXbaseEntity::GetKV(const char * name, char * out, int bufsize) break; case PDF_ENTITY: case PDF_PARENT: - pEnt = this->*((SXbaseEntity * ThisClass::*)field->pField); + pEnt = this->*((CBaseEntity * ThisClass::*)field->pField); if(!pEnt) { sprintf_s(out, bufsize, ""); } else { - sprintf_s(out, bufsize, "%s", pEnt->GetName()); + sprintf_s(out, bufsize, "%s", pEnt->getName()); } break; case PDF_OUTPUT: @@ -388,31 +388,31 @@ bool SXbaseEntity::GetKV(const char * name, char * out, int bufsize) return(true); } -void SXbaseEntity::SetParent(SXbaseEntity * pEnt, int attachment) +void CBaseEntity::setParent(CBaseEntity * pEnt, int attachment) { m_pParent = pEnt; if(pEnt) { if(attachment >= 0) { - m_vOffsetPos = (float3)(m_vPosition - m_pParent->GetAttachmentPos(attachment)); - m_vOffsetOrient = m_vOrientation * m_pParent->GetAttachmentRot(attachment).Conjugate(); + m_vOffsetPos = (float3)(m_vPosition - m_pParent->getAttachmentPos(attachment)); + m_vOffsetOrient = m_vOrientation * m_pParent->getAttachmentRot(attachment).Conjugate(); } else { - m_vOffsetPos = m_pParent->GetOrient().Conjugate() * (float3)(m_vPosition - m_pParent->GetPos()); - m_vOffsetOrient = m_vOrientation * m_pParent->GetOrient().Conjugate(); + m_vOffsetPos = m_pParent->getOrient().Conjugate() * (float3)(m_vPosition - m_pParent->getPos()); + m_vOffsetOrient = m_vOrientation * m_pParent->getOrient().Conjugate(); } m_iParentAttachment = attachment; } } -SXbaseEntity * SXbaseEntity::GetParent() +CBaseEntity * CBaseEntity::getParent() { return(m_pParent); } -/*void SXbaseEntity::updateDiscreteLinearVelocity(int step, float dt) +/*void CBaseEntity::updateDiscreteLinearVelocity(int step, float dt) { if(step == 0) { @@ -444,60 +444,60 @@ SXbaseEntity * SXbaseEntity::GetParent() } }*/ -void SXbaseEntity::OnSync() +void CBaseEntity::onSync() { if(m_pParent) { - m_pParent->OnSync(); + m_pParent->onSync(); if(m_iParentAttachment >= 0) { - m_vPosition = (float3)(m_pParent->GetAttachmentPos(m_iParentAttachment) + m_vOffsetPos); - m_vOrientation = m_pParent->GetAttachmentRot(m_iParentAttachment) * m_vOffsetOrient; + m_vPosition = (float3)(m_pParent->getAttachmentPos(m_iParentAttachment) + m_vOffsetPos); + m_vOrientation = m_pParent->getAttachmentRot(m_iParentAttachment) * m_vOffsetOrient; } else { - m_vPosition = (float3)(m_pParent->GetPos() + m_pParent->GetOrient() * m_vOffsetPos); - m_vOrientation = m_vOffsetOrient * m_pParent->GetOrient(); + m_vPosition = (float3)(m_pParent->getPos() + m_pParent->getOrient() * m_vOffsetPos); + m_vOrientation = m_vOffsetOrient * m_pParent->getOrient(); } //if(m_pPhysObj) //{ - // m_pPhysObj->SetPos(m_vPosition); - // m_pPhysObj->SetOrient(m_vOrientation); + // m_pPhysObj->setPos(m_vPosition); + // m_pPhysObj->setOrient(m_vOrientation); //} } //else if(m_pPhysObj) //{ // m_vPosition = m_pPhysObj->GetPos(); - // m_vOrientation = m_pPhysObj->GetOrient(); + // m_vOrientation = m_pPhysObj->getOrient(); //} } -void SXbaseEntity::OnPostLoad() +void CBaseEntity::onPostLoad() { updateOutputs(); } -float3 SXbaseEntity::GetAttachmentPos(int id) +float3 CBaseEntity::getAttachmentPos(int id) { return(float3()); } -SMQuaternion SXbaseEntity::GetAttachmentRot(int id) +SMQuaternion CBaseEntity::getAttachmentRot(int id) { return(SMQuaternion()); } -void SXbaseEntity::SetOwner(SXbaseEntity * pEnt) +void CBaseEntity::setOwner(CBaseEntity * pEnt) { m_pOwner = pEnt; } -SXbaseEntity * SXbaseEntity::GetOwner() +CBaseEntity * CBaseEntity::getOwner() { return(m_pOwner); } -void SXbaseEntity::_SetStrVal(const char ** to, const char * value) +void CBaseEntity::_setStrVal(const char ** to, const char * value) { char * str = (char*)*to; if(str && !fstrcmp(str, value)) @@ -528,19 +528,19 @@ void SXbaseEntity::_SetStrVal(const char ** to, const char * value) } } -EntityManager * SXbaseEntity::getManager() +CEntityManager * CBaseEntity::getManager() { return(m_pMgr); } -/*const float3_t & SXbaseEntity::getDiscreteLinearVelocity() const +/*const float3_t & CBaseEntity::getDiscreteLinearVelocity() const { return(m_vDiscreteLinearVelocity); }*/ -void SXbaseEntity::updateOutputs() +void CBaseEntity::updateOutputs() { - proptable_t * pt = GetPropTable(); + proptable_t * pt = getPropTable(); while(pt) { for(int i = 0; i < pt->numFields; ++i) @@ -554,22 +554,22 @@ void SXbaseEntity::updateOutputs() named_output_t * pOut = &pOutput->pOutputs[j]; mem_delete_a(pOut->pOutputs); - pOut->iOutCount = m_pMgr->CountEntityByName(pOut->szTargetName); + pOut->iOutCount = m_pMgr->countEntityByName(pOut->szTargetName); if(!pOut->iOutCount) { - printf(COLOR_CYAN "Broken output target '%s' source '%s'.'%s'\n" COLOR_RESET, pOut->szTargetName, GetClassName(), m_szName); + printf(COLOR_CYAN "Broken output target '%s' source '%s'.'%s'\n" COLOR_RESET, pOut->szTargetName, getClassName(), m_szName); continue; } pOut->pOutputs = new input_t[pOut->iOutCount]; - SXbaseEntity * pEnt = NULL; + CBaseEntity * pEnt = NULL; int c = 0; - while((pEnt = m_pMgr->FindEntityByName(pOut->szTargetName, pEnt))) + while((pEnt = m_pMgr->findEntityByName(pOut->szTargetName, pEnt))) { - propdata_t * pField = pEnt->GetField(pOut->szTargetInput); + propdata_t * pField = pEnt->getField(pOut->szTargetInput); if(!pField || !(pField->flags & PDFF_INPUT)) { - printf(COLOR_CYAN "Class '%s' has no input '%s', obj '%s'\n" COLOR_RESET, pEnt->GetClassName(), pOut->szTargetInput, pOut->szTargetName); + printf(COLOR_CYAN "Class '%s' has no input '%s', obj '%s'\n" COLOR_RESET, pEnt->getClassName(), pOut->szTargetInput, pOut->szTargetName); --pOut->iOutCount; continue; } @@ -618,14 +618,14 @@ void SXbaseEntity::updateOutputs() } break; case PDF_STRING: - _SetStrVal(&pOut->pOutputs[c].data.parameter.str, value); + _setStrVal(&pOut->pOutputs[c].data.parameter.str, value); bParsed = true; break; } if(!bParsed) { - printf(COLOR_CYAN "Cannot parse input parameter '%s', class '%s', input '%s', obj '%s'\n" COLOR_RESET, value, pEnt->GetClassName(), pOut->szTargetInput, pOut->szTargetName); + printf(COLOR_CYAN "Cannot parse input parameter '%s', class '%s', input '%s', obj '%s'\n" COLOR_RESET, value, pEnt->getClassName(), pOut->szTargetInput, pOut->szTargetName); --pOut->iOutCount; continue; } diff --git a/source/game/SXbaseEntity.h b/source/game/BaseEntity.h similarity index 75% rename from source/game/SXbaseEntity.h rename to source/game/BaseEntity.h index 765de460e966f5f884df5016cd5137591659d444..d926c8b9e50375c58b5a71461467f75fd9474d9a 100644 --- a/source/game/SXbaseEntity.h +++ b/source/game/BaseEntity.h @@ -15,8 +15,8 @@ See the license in LICENSE @{ */ -#ifndef _SXbaseEntity_H_ -#define _SXbaseEntity_H_ +#ifndef _CBaseEntity_H_ +#define _CBaseEntity_H_ #include <gdefines.h> #include <common/SXMath.h> @@ -33,80 +33,80 @@ See the license in LICENSE #pragma warning(disable:4251) //! Базовый объект, от которого наследуются все остальные классы объектов. -class SXGAME_EXPORT SXbaseEntity +class SXGAME_EXPORT CBaseEntity { - DECLARE_CLASS_NOBASE(SXbaseEntity); + DECLARE_CLASS_NOBASE(CBaseEntity); DECLARE_PROPTABLE(); - friend class EntityManager; + friend class CEntityManager; public: //! Конструктор - SXbaseEntity(EntityManager * pMgr); - virtual ~SXbaseEntity(); + CBaseEntity(CEntityManager * pMgr); + virtual ~CBaseEntity(); //! Возвращает имя движкового класса объекта - const char * GetClassName(); + const char * getClassName(); //! Возвращает имя объекта - const char * GetName(); + const char * getName(); //! Возвращает баунд объекта - virtual void GetMinMax(float3 * min, float3 * max); + virtual void getMinMax(float3 * min, float3 * max); //! Возвращает баунд сферу объекта - virtual void GetSphere(float3 * center, float * radius); + virtual void getSphere(float3 * center, float * radius); //! Устанавливает мировую позицию объекта - virtual void SetPos(const float3 & pos); + virtual void setPos(const float3 & pos); //! Получает мировую позицию объекта - float3 GetPos(); + float3 getPos(); //! Получает ID объекта в системе - ID GetId(); + ID getId(); //! Получает флаги объекта - UINT GetFlags(); + UINT getFlags(); //! Устанавливает флаги объекта - void SetFlags(UINT f); + void setFlags(UINT f); //! Получает мировую матрицу трансформации для объекта - SMMATRIX GetWorldTM(); + SMMATRIX getWorldTM(); //! Устанавливает вращение объекта - virtual void SetOrient(const SMQuaternion & q); + virtual void setOrient(const SMQuaternion & q); //! Возвращает вращение объекта - SMQuaternion GetOrient(); + SMQuaternion getOrient(); //! Устанавливает свойство объекта - virtual bool SetKV(const char * name, const char * value); + virtual bool setKV(const char * name, const char * value); //! Получает свойство объекта - virtual bool GetKV(const char * name, char * out, int bufsize); + virtual bool getKV(const char * name, char * out, int bufsize); //! Устанавливает родительский объект для объекта - void SetParent(SXbaseEntity * pEnt, int attachment = -1); + void setParent(CBaseEntity * pEnt, int attachment = -1); //! Возвращает родительский объект объекта - SXbaseEntity * GetParent(); + CBaseEntity * getParent(); //! Устанавливает владельца - void SetOwner(SXbaseEntity * pEnt); + void setOwner(CBaseEntity * pEnt); //! Возвращает владельца объекта - SXbaseEntity * GetOwner(); + CBaseEntity * getOwner(); //! Получает объект менеджера - EntityManager * getManager(); + CEntityManager * getManager(); //void updateDiscreteLinearVelocity(int step, float dt); //const float3_t & getDiscreteLinearVelocity() const; private: - void SetClassName(const char * name); - void SetDefaults(); + void setClassName(const char * name); + void setDefaults(); const char * m_szClassName; protected: - EntityManager * m_pMgr; + CEntityManager * m_pMgr; //! Позиция объекта float3_t m_vPosition; @@ -136,27 +136,27 @@ protected: const char * m_szName; //! Родитель - SXbaseEntity * m_pParent; + CBaseEntity * m_pParent; //! Индекс кости родителя int m_iParentAttachment; //! Владелец - SXbaseEntity * m_pOwner; + CBaseEntity * m_pOwner; //! Вызывается на стадии синхронизации - virtual void OnSync(); + virtual void onSync(); //! Вызывается при создании после установки всех свойств - virtual void OnPostLoad(); + virtual void onPostLoad(); //! Получает смещение для кости - virtual float3 GetAttachmentPos(int id); + virtual float3 getAttachmentPos(int id); //! Получает вращение для кости - virtual SMQuaternion GetAttachmentRot(int id); + virtual SMQuaternion getAttachmentRot(int id); /*! Устанавливает значение строкового свойства \note только для внутреннего использования */ - void _SetStrVal(const char ** to, const char * value); + void _setStrVal(const char ** to, const char * value); /*! Обновляет выходы \note только для внутреннего использования diff --git a/source/game/BaseHandle.cpp b/source/game/BaseHandle.cpp index 00623afd5ce8d7d59f4d17d814ac4b420c2cafa1..efb909328be71f41b62d6dc11e672e46608e7734 100644 --- a/source/game/BaseHandle.cpp +++ b/source/game/BaseHandle.cpp @@ -10,7 +10,7 @@ END_PROPTABLE() REGISTER_ENTITY_NOLISTING(CBaseHandle, base_handle); -CBaseHandle::CBaseHandle(EntityManager * pMgr): +CBaseHandle::CBaseHandle(CEntityManager * pMgr): BaseClass(pMgr) { m_addonType = WPN_ADDON_HANDLE; diff --git a/source/game/SXbaseItem.cpp b/source/game/BaseItem.cpp similarity index 84% rename from source/game/SXbaseItem.cpp rename to source/game/BaseItem.cpp index 2374bca2d7dd859eef66ba7fdb245bc10cb46969..513e651f96da41e41ec5145c9f901e908682c21d 100644 --- a/source/game/SXbaseItem.cpp +++ b/source/game/BaseItem.cpp @@ -1,10 +1,10 @@ -#include "SXbaseItem.h" +#include "BaseItem.h" /*! \skydocent base_item Базовый объект элемента инвентаря игрока */ -BEGIN_PROPTABLE(SXbaseItem) +BEGIN_PROPTABLE(CBaseItem) //! Имя в инвентаре DEFINE_FIELD_STRING(m_szInvName, PDFF_NOEDIT | PDFF_NOEXPORT, "inv_name", "", EDITOR_NONE) //! Может ли стакаться @@ -19,9 +19,9 @@ BEGIN_PROPTABLE(SXbaseItem) DEFINE_FIELD_BOOL(m_bPickable, PDFF_NOEDIT | PDFF_NOEXPORT, "inv_pickable", "", EDITOR_NONE) END_PROPTABLE() -REGISTER_ENTITY_NOLISTING(SXbaseItem, base_item); +REGISTER_ENTITY_NOLISTING(CBaseItem, base_item); -SXbaseItem::SXbaseItem(EntityManager * pMgr): +CBaseItem::CBaseItem(CEntityManager * pMgr): BaseClass(pMgr), m_bInvStackable(true), m_iInvStackCurSize(0), @@ -30,3 +30,8 @@ SXbaseItem::SXbaseItem(EntityManager * pMgr): m_bPickable(true) { } + +float CBaseItem::getWeight() +{ + return(m_iInvWeight); +} diff --git a/source/game/SXbaseItem.h b/source/game/BaseItem.h similarity index 82% rename from source/game/SXbaseItem.h rename to source/game/BaseItem.h index c0ce2ecd9700ff308ced164761e939461de8b8ce..dbe03a4d18a3730ce0dfc305faf3464a637625dc 100644 --- a/source/game/SXbaseItem.h +++ b/source/game/BaseItem.h @@ -13,15 +13,15 @@ See the license in LICENSE @{ */ -#ifndef _SXbaseItem_H_ -#define _SXbaseItem_H_ +#ifndef _CBaseItem_H_ +#define _CBaseItem_H_ -#include "SXbaseAnimating.h" +#include "BaseAnimating.h" //! Базовый класс предмета инвентаря -class SXbaseItem: public SXbaseAnimating +class CBaseItem: public CBaseAnimating { - DECLARE_CLASS(SXbaseItem, SXbaseAnimating); + DECLARE_CLASS(CBaseItem, CBaseAnimating); DECLARE_PROPTABLE(); public: DECLARE_CONSTRUCTOR(); @@ -32,6 +32,10 @@ public: int m_iInvStackMaxSize; //!< Максимальное количество итемов в стеке float m_iInvWeight; //!< Масса объекта bool m_bPickable; //!< Можно ли поднять объект + + + //! Масса объекта + virtual float getWeight(); }; #endif diff --git a/source/game/BaseMag.cpp b/source/game/BaseMag.cpp index 530ada6bdd0b57493a3877d12438512051d22010..b39261340bd5262e29bb1d172b69d9ae086f6cf2 100644 --- a/source/game/BaseMag.cpp +++ b/source/game/BaseMag.cpp @@ -13,7 +13,7 @@ END_PROPTABLE() REGISTER_ENTITY_NOLISTING(CBaseMag, base_mag); -CBaseMag::CBaseMag(EntityManager * pMgr): +CBaseMag::CBaseMag(CEntityManager * pMgr): BaseClass(pMgr), m_iCapacity(0), m_iCurrentLoad(0) diff --git a/source/game/SXbasePistol.h b/source/game/BasePistol.h similarity index 68% rename from source/game/SXbasePistol.h rename to source/game/BasePistol.h index 7f657933c7d5f50f0c57658e2106e634f7dc8af4..4cb5683d626435f88c556bcf196dc9cb604e2ac3 100644 --- a/source/game/SXbasePistol.h +++ b/source/game/BasePistol.h @@ -8,17 +8,17 @@ See the license in LICENSE Пистолеты */ -#ifndef _SXbasePistol_H_ -#define _SXbasePistol_H_ +#ifndef _CBasePistol_H_ +#define _CBasePistol_H_ /*! Пистолеты \ingroup cbaseitem */ -#include "SXbaseWeapon.h" +#include "BaseWeapon.h" -class SXbasePistol: public SXbaseWeapon +class CBasePistol: public CBaseWeapon { - DECLARE_CLASS(SXbasePistol, SXbaseWeapon); + DECLARE_CLASS(CBasePistol, CBaseWeapon); DECLARE_PROPTABLE(); public: DECLARE_TRIVIAL_CONSTRUCTOR(); diff --git a/source/game/BaseRiffle.cpp b/source/game/BaseRiffle.cpp new file mode 100644 index 0000000000000000000000000000000000000000..7a60a011dc32c57cdeb17f24078a59959a987ce9 --- /dev/null +++ b/source/game/BaseRiffle.cpp @@ -0,0 +1,12 @@ +#include "BaseRiffle.h" + +/*! \skydocent base_riffle +Базовый класс винтовки +*/ + +BEGIN_PROPTABLE(CBaseRiffle) +// empty +END_PROPTABLE() + +REGISTER_ENTITY_NOLISTING(CBaseRiffle, base_riffle); + diff --git a/source/game/SXbaseRiffle.h b/source/game/BaseRiffle.h similarity index 60% rename from source/game/SXbaseRiffle.h rename to source/game/BaseRiffle.h index 5282cca659a7b5f3cd075f1b15edc0885c5255db..8be69ac536b64429b888cb52422fa69a867c9543 100644 --- a/source/game/SXbaseRiffle.h +++ b/source/game/BaseRiffle.h @@ -8,24 +8,24 @@ See the license in LICENSE Винтовки */ -#ifndef _SXbaseRiffle_H_ -#define _SXbaseRiffle_H_ +#ifndef _CBaseRiffle_H_ +#define _CBaseRiffle_H_ -#include "SXbaseWeapon.h" +#include "BaseWeapon.h" /*! Винтовки \ingroup cbaseitem */ -class SXbaseRiffle: public SXbaseWeapon +class CBaseRiffle: public CBaseWeapon { - DECLARE_CLASS(SXbaseRiffle, SXbaseWeapon); + DECLARE_CLASS(CBaseRiffle, CBaseWeapon); DECLARE_PROPTABLE(); public: DECLARE_TRIVIAL_CONSTRUCTOR(); - //void PrimaryAction(BOOL st); - //void SecondaryAction(BOOL st); - //void Reload(); + //void primaryAction(BOOL st); + //void secondaryAction(BOOL st); + //void reload(); //void Deploy(); }; diff --git a/source/game/BaseScope.cpp b/source/game/BaseScope.cpp index dc77ba76b18fb0455761834f36564e6fa5531d7e..26e8b012e2b3f274e9a6d51782b06c9224d994a1 100644 --- a/source/game/BaseScope.cpp +++ b/source/game/BaseScope.cpp @@ -10,7 +10,7 @@ END_PROPTABLE() REGISTER_ENTITY_NOLISTING(CBaseScope, base_scope); -CBaseScope::CBaseScope(EntityManager * pMgr): +CBaseScope::CBaseScope(CEntityManager * pMgr): BaseClass(pMgr) { m_addonType = WPN_ADDON_SCOPE; diff --git a/source/game/BaseSilencer.cpp b/source/game/BaseSilencer.cpp index 8854dc3661881b1454f0587748f8867aa128285d..e73175deffea836e4897eda91ec32c2b26cf25fc 100644 --- a/source/game/BaseSilencer.cpp +++ b/source/game/BaseSilencer.cpp @@ -10,7 +10,7 @@ END_PROPTABLE() REGISTER_ENTITY_NOLISTING(CBaseSilencer, base_silencer); -CBaseSilencer::CBaseSilencer(EntityManager * pMgr): +CBaseSilencer::CBaseSilencer(CEntityManager * pMgr): BaseClass(pMgr) { m_addonType = WPN_ADDON_SILENCER; diff --git a/source/game/SXbaseSupply.cpp b/source/game/BaseSupply.cpp similarity index 56% rename from source/game/SXbaseSupply.cpp rename to source/game/BaseSupply.cpp index 0a5429fec37ccd6bf3c100dbc519cd9264359e8d..e205da0e0e3bd0cf16b4f79a35fc51dfaf56f825 100644 --- a/source/game/SXbaseSupply.cpp +++ b/source/game/BaseSupply.cpp @@ -1,11 +1,11 @@ -#include "SXbaseSupply.h" +#include "BaseSupply.h" /*! \skydocent base_supply Базовый класс припаса (патроны, батарейки, т.д) */ -BEGIN_PROPTABLE(SXbaseSupply) +BEGIN_PROPTABLE(CBaseSupply) //empty END_PROPTABLE() -REGISTER_ENTITY_NOLISTING(SXbaseSupply, base_supply); +REGISTER_ENTITY_NOLISTING(CBaseSupply, base_supply); diff --git a/source/game/SXbaseSupply.h b/source/game/BaseSupply.h similarity index 75% rename from source/game/SXbaseSupply.h rename to source/game/BaseSupply.h index 5a2f0e19d23b8271973f0ebe316c4064679a53a3..7b25b940b86952eb5d089c08dd97f2fda53f3495 100644 --- a/source/game/SXbaseSupply.h +++ b/source/game/BaseSupply.h @@ -8,17 +8,17 @@ See the license in LICENSE Базовый класс припаса */ -#ifndef _SXbaseSupply_H_ -#define _SXbaseSupply_H_ +#ifndef _CBaseSupply_H_ +#define _CBaseSupply_H_ -#include "SXbaseItem.h" +#include "BaseItem.h" /*! Базовый класс припаса (патроны, батарейки, прочие расходники) \ingroup cbaseitem */ -class SXbaseSupply: public SXbaseItem +class CBaseSupply: public CBaseItem { - DECLARE_CLASS(SXbaseSupply, SXbaseItem); + DECLARE_CLASS(CBaseSupply, CBaseItem); DECLARE_PROPTABLE(); public: DECLARE_TRIVIAL_CONSTRUCTOR(); diff --git a/source/game/SXbaseTool.cpp b/source/game/BaseTool.cpp similarity index 77% rename from source/game/SXbaseTool.cpp rename to source/game/BaseTool.cpp index 9b7ce26c3b5cb59a6fb5c68a97f1630d928c089b..f319ab17618f460c2d8e052eb5d9977ae0c32f60 100644 --- a/source/game/SXbaseTool.cpp +++ b/source/game/BaseTool.cpp @@ -1,15 +1,15 @@ -#include "SXbaseTool.h" +#include "BaseTool.h" #include <particles/sxparticles.h> #include <decals/sxdecals.h> -#include "SXplayer.h" +#include "Player.h" /*! \skydocent base_tool Базовый класс для инструмента (в т.ч оружие). То, что игрок может взять в руки и использовать */ -BEGIN_PROPTABLE(SXbaseTool) +BEGIN_PROPTABLE(CBaseTool) //! Время перезарядки, с DEFINE_FIELD_FLOAT(m_fReloadTime, PDFF_NOEDIT | PDFF_NOEXPORT, "reload_time", "", EDITOR_NONE) //! Время прицеливания, с @@ -43,9 +43,9 @@ BEGIN_PROPTABLE(SXbaseTool) END_PROPTABLE() -REGISTER_ENTITY_NOLISTING(SXbaseTool, base_tool); +REGISTER_ENTITY_NOLISTING(CBaseTool, base_tool); -SXbaseTool::SXbaseTool(EntityManager * pMgr): +CBaseTool::CBaseTool(CEntityManager * pMgr): BaseClass(pMgr), m_bInPrimaryAction(false), m_bInSecondaryAction(false), @@ -59,21 +59,22 @@ SXbaseTool::SXbaseTool(EntityManager * pMgr): m_iSoundAction2(-1), m_iMuzzleFlash(-1), m_iMuzzleFlash2(-1), - m_fMaxDistance(1000.0f) + m_fMaxDistance(1000.0f), + m_bIsWeapon(false) { m_bInvStackable = false; - m_iIvalUpdate = SET_INTERVAL(_Update, 0); + m_iIvalUpdate = SET_INTERVAL(_update, 0); } -SXbaseTool::~SXbaseTool() +CBaseTool::~CBaseTool() { CLEAR_INTERVAL(m_iIvalUpdate); } -void SXbaseTool::OnPostLoad() +void CBaseTool::onPostLoad() { - BaseClass::OnPostLoad(); + BaseClass::onPostLoad(); if(m_szPrimaryActionSound[0]) { @@ -93,36 +94,36 @@ void SXbaseTool::OnPostLoad() } } -void SXbaseTool::SetNextUse(float time) +void CBaseTool::setNextUse(float time) { m_bCanUse = false; - SET_TIMEOUT(_AllowUse, time); + SET_TIMEOUT(_allowUse, time); } -bool SXbaseTool::CanUse() +bool CBaseTool::canUse() { return(m_bCanUse); } -void SXbaseTool::PrimaryAction(BOOL st) +void CBaseTool::primaryAction(BOOL st) { m_bInPrimaryAction = st != FALSE; if(st) { - PlayAnimation("shoot1"); + playAnimation("shoot1"); if(ID_VALID(m_iMuzzleFlash)) { SPE_EffectEnableSet(m_iMuzzleFlash, true); } if(ID_VALID(m_iSoundAction1)) { - SSCore_SndInstancePlay3d(m_iSoundAction1, &GetPos()); + SSCore_SndInstancePlay3d(m_iSoundAction1, &getPos()); } - //((SXplayer*)m_pOwner)->is + //((CPlayer*)m_pOwner)->is //trace line - float3 start = GetPos(); - float3 dir = m_pParent->GetOrient() * float3(0.0f, 0.0f, 1.0f); + float3 start = getPos(); + float3 dir = m_pParent->getOrient() * float3(0.0f, 0.0f, 1.0f); float3 end = start + dir * m_fMaxDistance; btCollisionWorld::ClosestRayResultCallback cb(F3_BTVEC(start), F3_BTVEC(end)); SXPhysics_GetDynWorld()->rayTest(F3_BTVEC(start), F3_BTVEC(end), cb); @@ -141,39 +142,39 @@ void SXbaseTool::PrimaryAction(BOOL st) } } -void SXbaseTool::SecondaryAction(BOOL st) +void CBaseTool::secondaryAction(BOOL st) { m_bInSecondaryAction = st != FALSE; if(m_iZoomable) { - ((SXplayer*)m_pOwner)->GetCrosshair()->Enable(!st); + ((CPlayer*)m_pOwner)->getCrosshair()->enable(!st); } } -void SXbaseTool::SetIsWorldModel(bool b) +void CBaseTool::setIsWorldModel(bool b) { m_bWorldModel = b; } -void SXbaseTool::Reload() +void CBaseTool::reload() { - if(CanUse()) + if(canUse()) { - SetNextUse(m_fReloadTime); - PlayAnimation("reload"); + setNextUse(m_fReloadTime); + playAnimation("reload"); } } -void SXbaseTool::AttachHands() +void CBaseTool::attachHands() { if(m_pAnimPlayer) { - m_pAnimPlayer->AddModel("models/weapons/hands.dse"); - m_pAnimPlayer->Assembly(); + m_pAnimPlayer->addModel("models/weapons/hands.dse"); + m_pAnimPlayer->assembly(); } } -void SXbaseTool::DbgMove(int dir, float dy) +void CBaseTool::dbgMove(int dir, float dy) { switch(dir) { @@ -205,22 +206,22 @@ void SXbaseTool::DbgMove(int dir, float dy) } } -void SXbaseTool::OnSync() +void CBaseTool::onSync() { - float3_t ang = ((SXplayer*)m_pOwner)->GetWeaponDeltaAngles(); + float3_t ang = ((CPlayer*)m_pOwner)->getWeaponDeltaAngles(); m_vOffsetOrient = m_qSlotRotResult * SMQuaternion(ang.x, 'x') * SMQuaternion(ang.y, 'y') * SMQuaternion(ang.z, 'z'); - BaseClass::OnSync(); + BaseClass::onSync(); if(m_pAnimPlayer) { //SPE_EffectPlayByID - float3 pos = m_pAnimPlayer->GetBoneTransformPos(m_pAnimPlayer->GetBone("muzzle_rifle1")); + float3 pos = m_pAnimPlayer->getBoneTransformPos(m_pAnimPlayer->getBone("muzzle_rifle1")); SPE_EffectPosSet(m_iMuzzleFlash, &pos); //pos = m_vOrientation * float3(0, 0, 1); SPE_EffectRotSetQ(m_iMuzzleFlash, m_vOrientation); } } -void SXbaseTool::_Update(float dt) +void CBaseTool::_update(float dt) { float speed = 1.0f / m_fZoomTime; if(m_bInSecondaryAction && m_iZoomable) @@ -232,7 +233,7 @@ void SXbaseTool::_Update(float dt) { m_fZoomProgress = 1.0f; } - _Rezoom(); + _rezoom(); } } else @@ -244,19 +245,19 @@ void SXbaseTool::_Update(float dt) { m_fZoomProgress = 0.0f; } - _Rezoom(); + _rezoom(); } } } -void SXbaseTool::SetParent(SXbaseEntity * pEnt, int attachment) +void CBaseTool::setParent(CBaseEntity * pEnt, int attachment) { - BaseClass::SetParent(pEnt, attachment); + BaseClass::setParent(pEnt, attachment); - _Rezoom(); + _rezoom(); } -void SXbaseTool::_Rezoom() +void CBaseTool::_rezoom() { const float * r_default_fov = GET_PCVAR_FLOAT("r_default_fov"); m_vOffsetPos = (float3)vlerp(m_vSlotPos, m_vSlotPosAim, m_fZoomProgress); @@ -264,6 +265,16 @@ void SXbaseTool::_Rezoom() m_qSlotRotResult = SMquaternionSlerp(m_qSlotRot, m_qSlotRotAim, m_fZoomProgress); if(m_pOwner) { - ((SXplayer*)m_pOwner)->GetCamera()->GetCamera()->SetFOV(SMToRadian(vlerp(*r_default_fov, *r_default_fov - 10.0f, m_fZoomProgress))); + ((CPlayer*)m_pOwner)->getCamera()->getCamera()->SetFOV(SMToRadian(vlerp(*r_default_fov, *r_default_fov - 10.0f, m_fZoomProgress))); } } + +bool CBaseTool::isWeapon() const +{ + return(m_bIsWeapon); +} + +float CBaseTool::getCondition() const +{ + return(1.0f); +} diff --git a/source/game/SXbaseTool.h b/source/game/BaseTool.h similarity index 60% rename from source/game/SXbaseTool.h rename to source/game/BaseTool.h index 4a34d6f65b651506cd1bbcdb60ea80433e7a1d10..b443fe1a82ae7c9039f81341b1836299365041d6 100644 --- a/source/game/SXbaseTool.h +++ b/source/game/BaseTool.h @@ -8,10 +8,10 @@ See the license in LICENSE Базовый класс инструмента */ -#ifndef _SXbaseTool_H_ -#define _SXbaseTool_H_ +#ifndef _CBaseTool_H_ +#define _CBaseTool_H_ -#include "SXbaseItem.h" +#include "BaseItem.h" #include <score/sxscore.h> enum @@ -29,34 +29,40 @@ enum /*! Инструмент \ingroup cbaseitem */ -class SXbaseTool: public SXbaseItem +class CBaseTool: public CBaseItem { - DECLARE_CLASS(SXbaseTool, SXbaseItem); + DECLARE_CLASS(CBaseTool, CBaseItem); DECLARE_PROPTABLE(); public: DECLARE_CONSTRUCTOR(); - ~SXbaseTool(); + ~CBaseTool(); - virtual void OnPostLoad(); + virtual void onPostLoad(); - virtual void PrimaryAction(BOOL st); - virtual void SecondaryAction(BOOL st); - virtual void Reload(); + virtual void primaryAction(BOOL st); + virtual void secondaryAction(BOOL st); + virtual void reload(); //virtual void Deploy() = 0; - void SetNextUse(float time); - bool CanUse(); + void setNextUse(float time); + bool canUse(); - void SetIsWorldModel(bool b); + void setIsWorldModel(bool b); - void AttachHands(); + void attachHands(); - void DbgMove(int dir, float delta); + void dbgMove(int dir, float delta); - void OnSync(); + void onSync(); - void SetParent(SXbaseEntity * pEnt, int attachment = -1); + void setParent(CBaseEntity * pEnt, int attachment = -1); + + //! Этот инструмент - оружие + bool isWeapon() const; + + //! Состояние: 1 - целое; 0 - сломанное + float getCondition() const; protected: @@ -71,13 +77,13 @@ protected: float m_fZoomProgress; - void _AllowUse(float dt) + void _allowUse(float dt) { m_bCanUse = true; } - void _Update(float dt); - void _Rezoom(); + void _update(float dt); + void _rezoom(); float m_fReloadTime; @@ -105,6 +111,9 @@ protected: const char * m_szUsableAmmos; float m_fMaxDistance; + + //! Этот инструмент - оружие + bool m_bIsWeapon; }; #endif diff --git a/source/game/BaseTrigger.cpp b/source/game/BaseTrigger.cpp index 31e083829f10c2838ed39f5355fe557f654b9137..7b7d8a89420492ee13242a90609743fc153257cf 100644 --- a/source/game/BaseTrigger.cpp +++ b/source/game/BaseTrigger.cpp @@ -24,7 +24,7 @@ END_PROPTABLE() REGISTER_ENTITY(CBaseTrigger, trigger); -CBaseTrigger::CBaseTrigger(EntityManager * pMgr): +CBaseTrigger::CBaseTrigger(CEntityManager * pMgr): BaseClass(pMgr), m_bEnabled(true), m_pGhostObject(NULL), @@ -35,13 +35,13 @@ CBaseTrigger::CBaseTrigger(EntityManager * pMgr): CBaseTrigger::~CBaseTrigger() { - RemovePhysBody(); + removePhysBody(); CLEAR_INTERVAL(m_idUpdateInterval); } -void CBaseTrigger::OnPostLoad() +void CBaseTrigger::onPostLoad() { - BaseClass::OnPostLoad(); + BaseClass::onPostLoad(); if(m_pAnimPlayer) { @@ -99,7 +99,7 @@ void CBaseTrigger::inToggle(inputdata_t * pInputdata) toggle(); } -void CBaseTrigger::CreatePhysBody() +void CBaseTrigger::createPhysBody() { if(m_pCollideShape) { @@ -113,7 +113,7 @@ void CBaseTrigger::CreatePhysBody() } } -void CBaseTrigger::RemovePhysBody() +void CBaseTrigger::removePhysBody() { if(m_pGhostObject) { @@ -122,22 +122,22 @@ void CBaseTrigger::RemovePhysBody() } } -void CBaseTrigger::onTouchStart(SXbaseEntity *pActivator) +void CBaseTrigger::onTouchStart(CBaseEntity *pActivator) { FIRE_OUTPUT(m_onTouchStart, pActivator); } -void CBaseTrigger::onTouchEnd(SXbaseEntity *pActivator) +void CBaseTrigger::onTouchEnd(CBaseEntity *pActivator) { FIRE_OUTPUT(m_onTouchEnd, pActivator); } -void CBaseTrigger::onTouchEndAll(SXbaseEntity *pActivator) +void CBaseTrigger::onTouchEndAll(CBaseEntity *pActivator) { FIRE_OUTPUT(m_onTouchEndAll, pActivator); } -void CBaseTrigger::OnSync() +void CBaseTrigger::onSync() { - BaseClass::OnSync(); + BaseClass::onSync(); if(!m_pGhostObject || !m_bEnabled) { @@ -175,11 +175,11 @@ void CBaseTrigger::OnSync() ? manifoldArray[0]->getBody1() : manifoldArray[0]->getBody0(); - SXbaseEntity * pEnt = (SXbaseEntity*)pObject->getUserPointer(); + CBaseEntity * pEnt = (CBaseEntity*)pObject->getUserPointer(); if(pEnt) { m_aNewTouches.push_back(pEnt); - //printf("touched %s\n", pEnt->GetClassName()); + //printf("touched %s\n", pEnt->getClassName()); } } } @@ -218,7 +218,7 @@ void CBaseTrigger::update(float dt) onTouchStart(m_aNewTouches[i]); } } - SXbaseEntity * pLastTouch = NULL; + CBaseEntity * pLastTouch = NULL; for(int j = 0, jl = m_aTouches.size(); j < jl; ++j) { if(m_aTouches[j]) diff --git a/source/game/BaseTrigger.h b/source/game/BaseTrigger.h index 672b1d9fb36df0b218c4555e771a2aea35284ecc..be7e9c5d568d50ab12616bf50eacbd0aeffb4d1c 100644 --- a/source/game/BaseTrigger.h +++ b/source/game/BaseTrigger.h @@ -17,19 +17,19 @@ See the license in LICENSE #ifndef _BaseTrigger_H_ #define _BaseTrigger_H_ -#include "SXbaseAnimating.h" +#include "BaseAnimating.h" //! Базовый класс триггера -class CBaseTrigger: public SXbaseAnimating +class CBaseTrigger: public CBaseAnimating { - DECLARE_CLASS(CBaseTrigger, SXbaseAnimating); + DECLARE_CLASS(CBaseTrigger, CBaseAnimating); DECLARE_PROPTABLE(); public: DECLARE_CONSTRUCTOR(); ~CBaseTrigger(); - void OnSync(); - void OnPostLoad(); + void onSync(); + void onPostLoad(); void enable(); void disable(); @@ -41,8 +41,8 @@ protected: ID m_idDevMaterial; - Array<SXbaseEntity*> m_aTouches; - Array<SXbaseEntity*> m_aNewTouches; + Array<CBaseEntity*> m_aTouches; + Array<CBaseEntity*> m_aNewTouches; output_t m_onTouchStart; output_t m_onTouchEnd; @@ -56,12 +56,12 @@ protected: void inDisable(inputdata_t * pInputdata); void inToggle(inputdata_t * pInputdata); - virtual void CreatePhysBody(); - virtual void RemovePhysBody(); + virtual void createPhysBody(); + virtual void removePhysBody(); - virtual void onTouchStart(SXbaseEntity *pActivator); - virtual void onTouchEnd(SXbaseEntity *pActivator); - virtual void onTouchEndAll(SXbaseEntity *pActivator); + virtual void onTouchStart(CBaseEntity *pActivator); + virtual void onTouchEnd(CBaseEntity *pActivator); + virtual void onTouchEndAll(CBaseEntity *pActivator); }; #endif diff --git a/source/game/SXbaseWeapon.cpp b/source/game/BaseWeapon.cpp similarity index 61% rename from source/game/SXbaseWeapon.cpp rename to source/game/BaseWeapon.cpp index f68fc039f0bca3aeb6e1c2240d5b9686c66cc79d..c69fa94b80cd653c60bc589250392915f8ceca6e 100644 --- a/source/game/SXbaseWeapon.cpp +++ b/source/game/BaseWeapon.cpp @@ -1,14 +1,14 @@ #include <particles/sxparticles.h> -#include "SXbaseWeapon.h" -#include "SXplayer.h" +#include "BaseWeapon.h" +#include "Player.h" /*! \skydocent base_weapon Базовый класс для оружия */ -BEGIN_PROPTABLE(SXbaseWeapon) +BEGIN_PROPTABLE(CBaseWeapon) //! Совместимые прицелы, классы через запятую DEFINE_FIELD_STRING(m_szAddonScopes, PDFF_NOEDIT | PDFF_NOEXPORT, "addon_scopes", "", EDITOR_NONE) //! Совместимые глушители @@ -51,11 +51,33 @@ BEGIN_PROPTABLE(SXbaseWeapon) DEFINE_FIELD_INT(m_iCapacity, PDFF_NOEDIT | PDFF_NOEXPORT, "capacity", "", EDITOR_NONE) //! Текущая загрузка без учета магазина DEFINE_FIELD_INT(m_iCurrentLoad, PDFF_NOEDIT, "current_load", "", EDITOR_NONE) + + + //! угол (в градусах) базовой дисперсии оружия (оружия, зажатого в тисках) + DEFINE_FIELD_FLOAT(m_fBaseSpread, PDFF_NOEDIT | PDFF_NOEXPORT, "spread_base", "", EDITOR_NONE) + //! коэффициент разброса в стоя + DEFINE_FIELD_FLOAT(m_fSpreadIdle, PDFF_NOEDIT | PDFF_NOEXPORT, "spread_idle", "", EDITOR_NONE) + //! коэффициент разброса пригнувшись + DEFINE_FIELD_FLOAT(m_fSpreadCrouch, PDFF_NOEDIT | PDFF_NOEXPORT, "spread_crouch", "", EDITOR_NONE) + //! коэффициент разброса лежа + DEFINE_FIELD_FLOAT(m_fSpreadCrawl, PDFF_NOEDIT | PDFF_NOEXPORT, "spread_crawl", "", EDITOR_NONE) + //! коэффициент разброса в ходьбе + DEFINE_FIELD_FLOAT(m_fSpreadWalk, PDFF_NOEDIT | PDFF_NOEXPORT, "spread_walk", "", EDITOR_NONE) + //! коэффициент разброса в беге + DEFINE_FIELD_FLOAT(m_fSpreadRun, PDFF_NOEDIT | PDFF_NOEXPORT, "spread_run", "", EDITOR_NONE) + //! коэффициент разброса в полете (прыжок) + DEFINE_FIELD_FLOAT(m_fSpreadAirborne, PDFF_NOEDIT | PDFF_NOEXPORT, "spread_airborne", "", EDITOR_NONE) + //! коэффициент разброса от состояния оружия + DEFINE_FIELD_FLOAT(m_fSpreadCondition, PDFF_NOEDIT | PDFF_NOEXPORT, "spread_condition", "", EDITOR_NONE) + //! коэффициент разброса от состояния рук + DEFINE_FIELD_FLOAT(m_fSpreadArm, PDFF_NOEDIT | PDFF_NOEXPORT, "spread_arm", "", EDITOR_NONE) + //! коэффициент разброса в прицеливании + DEFINE_FIELD_FLOAT(m_fSpreadIronSight, PDFF_NOEDIT | PDFF_NOEXPORT, "spread_ironsight", "", EDITOR_NONE) END_PROPTABLE() -REGISTER_ENTITY_NOLISTING(SXbaseWeapon, base_weapon); +REGISTER_ENTITY_NOLISTING(CBaseWeapon, base_weapon); -SXbaseWeapon::SXbaseWeapon(EntityManager * pMgr): +CBaseWeapon::CBaseWeapon(CEntityManager * pMgr): BaseClass(pMgr), m_pSilencer(NULL), m_pScope(NULL), @@ -72,12 +94,25 @@ SXbaseWeapon::SXbaseWeapon(EntityManager * pMgr): m_idSndSwitch(-1), m_iCapacity(1), - m_iCurrentLoad(0) -{} + m_iCurrentLoad(0), + + m_fBaseSpread(0.33f), + m_fSpreadIdle(0.01f), + m_fSpreadCrouch(0.007f), + m_fSpreadCrawl(0.001f), + m_fSpreadWalk(1.0f), + m_fSpreadRun(4.0f), + m_fSpreadAirborne(5.0f), + m_fSpreadCondition(3.0f), + m_fSpreadArm(3.0f), + m_fSpreadIronSight(-0.8f) +{ + m_bIsWeapon = true; +} -void SXbaseWeapon::OnPostLoad() +void CBaseWeapon::onPostLoad() { - BaseClass::OnPostLoad(); + BaseClass::onPostLoad(); if(m_szSndDraw[0]) { @@ -105,9 +140,9 @@ void SXbaseWeapon::OnPostLoad() } } -bool SXbaseWeapon::SetKV(const char * name, const char * value) +bool CBaseWeapon::setKV(const char * name, const char * value) { - if(!BaseClass::SetKV(name, value)) + if(!BaseClass::setKV(name, value)) { return(false); } @@ -141,32 +176,32 @@ bool SXbaseWeapon::SetKV(const char * name, const char * value) } if(!m_iFireModes) { - printf(COLOR_LRED "No firemodes defined for '%s'\n" COLOR_RESET, GetClassName()); + printf(COLOR_LRED "No firemodes defined for '%s'\n" COLOR_RESET, getClassName()); } } return(true); } -void SXbaseWeapon::PrimaryAction(BOOL st) +void CBaseWeapon::primaryAction(BOOL st) { m_bInPrimaryAction = st != FALSE; if(st) { - PlayAnimation("shoot1"); + playAnimation("shoot1"); if(ID_VALID(m_iMuzzleFlash)) { SPE_EffectEnableSet(m_iMuzzleFlash, true); } if(ID_VALID(m_iSoundAction1)) { - SSCore_SndInstancePlay3d(m_iSoundAction1, &GetPos()); + SSCore_SndInstancePlay3d(m_iSoundAction1, &getPos()); } - //((SXplayer*)m_pOwner)->is + //((CPlayer*)m_pOwner)->is //trace line - float3 start = GetPos(); - float3 dir = m_pParent->GetOrient() * float3(0.0f, 0.0f, 1.0f); + float3 start = getPos(); + float3 dir = m_pParent->getOrient() * float3(0.0f, 0.0f, 1.0f); float3 end = start + dir * m_fMaxDistance; btCollisionWorld::ClosestRayResultCallback cb(F3_BTVEC(start), F3_BTVEC(end)); SXPhysics_GetDynWorld()->rayTest(F3_BTVEC(start), F3_BTVEC(end), cb); @@ -185,16 +220,16 @@ void SXbaseWeapon::PrimaryAction(BOOL st) } } -void SXbaseWeapon::SecondaryAction(BOOL st) +void CBaseWeapon::secondaryAction(BOOL st) { m_bInSecondaryAction = st != FALSE; if(m_iZoomable) { - ((SXplayer*)m_pOwner)->GetCrosshair()->Enable(!st); + ((CPlayer*)m_pOwner)->getCrosshair()->enable(!st); } } -void SXbaseWeapon::Reload() +void CBaseWeapon::reload() { if(!m_pMag) { @@ -206,7 +241,7 @@ void SXbaseWeapon::Reload() printf(COLOR_MAGENTA "Cannot reload without owner!\n" COLOR_RESET); return; } - if(CanUse()) + if(canUse()) { //int count = m_pOwner->getInventory()->consumeItems("ammo_5.45x39ps", m_pMag->getCapacity() - m_pMag->getLoad() + m_iCapacity - m_iCurrentLoad); //count += m_iCurrentLoad; @@ -214,28 +249,28 @@ void SXbaseWeapon::Reload() //count -= m_iCurrentLoad; //m_pMag->load(count); - SetNextUse(m_fReloadTime); - PlayAnimation("reload"); + setNextUse(m_fReloadTime); + playAnimation("reload"); if(ID_VALID(m_idSndReload)) { - SSCore_SndInstancePlay3d(m_idSndReload, &GetPos()); + SSCore_SndInstancePlay3d(m_idSndReload, &getPos()); } } } -void SXbaseWeapon::setFireMode(FIRE_MODE mode) +void CBaseWeapon::setFireMode(FIRE_MODE mode) { if(!(m_iFireModes & mode)) { m_fireMode = mode; if(ID_VALID(m_idSndReload)) { - SSCore_SndInstancePlay3d(m_idSndSwitch, &GetPos()); + SSCore_SndInstancePlay3d(m_idSndSwitch, &getPos()); } } } -void SXbaseWeapon::nextFireMode() +void CBaseWeapon::nextFireMode() { int cur = (int)log2f((float)m_fireMode); int newMode = cur; @@ -250,7 +285,53 @@ void SXbaseWeapon::nextFireMode() } } -bool SXbaseWeapon::canShoot() +bool CBaseWeapon::canShoot() { return(m_iCurrentLoad > 0 || (m_pMag && m_pMag->getLoad() > 0)); } + +float CBaseWeapon::getWeight() +{ + return(m_iInvWeight + + (m_pHandle ? m_pHandle->getWeight() : 0.0f) + + (m_pScope ? m_pScope->getWeight() : 0.0f) + + (m_pMag ? m_pMag->getWeight() : 0.0f) + + (m_pSilencer ? m_pSilencer->getWeight() : 0.0f) + ); +} + +float CBaseWeapon::getBaseSpread() const +{ + return(m_fBaseSpread); +} + +bool CBaseWeapon::isIronSight() const +{ + return(m_iZoomable && m_bInSecondaryAction); +} + +float CBaseWeapon::getSpreadCoeff(SPREAD_COEFF what) const +{ + switch(what) + { + case SPREAD_COEFF_IDLE: + return(m_fSpreadIdle); + case SPREAD_COEFF_CROUCH: + return(m_fSpreadCrouch); + case SPREAD_COEFF_CRAWL: + return(m_fSpreadCrawl); + case SPREAD_COEFF_WALK: + return(m_fSpreadWalk); + case SPREAD_COEFF_RUN: + return(m_fSpreadRun); + case SPREAD_COEFF_AIRBORNE: + return(m_fSpreadAirborne); + case SPREAD_COEFF_CONDITION: + return(m_fSpreadCondition); + case SPREAD_COEFF_ARM: + return(m_fSpreadArm); + case SPREAD_COEFF_IRONSIGHT: + return(m_fSpreadIronSight); + } + return(1.0f); +} diff --git a/source/game/SXbaseWeapon.h b/source/game/BaseWeapon.h similarity index 51% rename from source/game/SXbaseWeapon.h rename to source/game/BaseWeapon.h index 7f46533db667e5cc88240bc179587c995b09183d..91ae59b8b1633d22c062f748d032372c49868257 100644 --- a/source/game/SXbaseWeapon.h +++ b/source/game/BaseWeapon.h @@ -8,10 +8,10 @@ See the license in LICENSE Базовый класс оружия */ -#ifndef _SXbaseWeapon_H_ -#define _SXbaseWeapon_H_ +#ifndef _CBaseWeapon_H_ +#define _CBaseWeapon_H_ -#include "SXbaseTool.h" +#include "BaseTool.h" #include "BaseScope.h" #include "BaseHandle.h" @@ -28,28 +28,55 @@ enum FIRE_MODE }; #define FIRE_MODE_COUNT 3 +//! Идентификаторы для получения коэффициентов разброса +enum SPREAD_COEFF +{ + SPREAD_COEFF_IDLE, //!< стоя + SPREAD_COEFF_CROUCH, //!< пригувшись + SPREAD_COEFF_CRAWL, //!< лежа + SPREAD_COEFF_WALK, //!< в ходьбе + SPREAD_COEFF_RUN, //!< в беге + SPREAD_COEFF_AIRBORNE, //!< в прыжке + SPREAD_COEFF_CONDITION, //!< состояние оружия + SPREAD_COEFF_ARM, //!< состояние рук + SPREAD_COEFF_IRONSIGHT, //!< в прицеливании +}; + /*! Оружие \ingroup cbaseitem */ -class SXbaseWeapon: public SXbaseTool +class CBaseWeapon: public CBaseTool { - DECLARE_CLASS(SXbaseWeapon, SXbaseTool); + DECLARE_CLASS(CBaseWeapon, CBaseTool); DECLARE_PROPTABLE(); public: DECLARE_CONSTRUCTOR(); - virtual void OnPostLoad(); + virtual void onPostLoad(); - virtual void PrimaryAction(BOOL st); - virtual void SecondaryAction(BOOL st); - virtual void Reload(); + virtual void primaryAction(BOOL st); + virtual void secondaryAction(BOOL st); + virtual void reload(); - virtual bool SetKV(const char * name, const char * value); + virtual bool setKV(const char * name, const char * value); void setFireMode(FIRE_MODE mode); void nextFireMode(); bool canShoot(); + //! Масса объекта + float getWeight(); + + + //! угол (в градусах) базовой дисперсии оружия (оружия, зажатого в тисках) + float getBaseSpread() const; + + //! в прицеливании + bool isIronSight() const; + + //! Коэффициент разброса + float getSpreadCoeff(SPREAD_COEFF what) const; + protected: // Compatible addons @@ -94,6 +121,18 @@ protected: // Without mag int m_iCapacity; int m_iCurrentLoad; + + // Spread + float m_fBaseSpread; + float m_fSpreadIdle; + float m_fSpreadCrouch; + float m_fSpreadCrawl; + float m_fSpreadWalk; + float m_fSpreadRun; + float m_fSpreadAirborne; + float m_fSpreadCondition; + float m_fSpreadArm; + float m_fSpreadIronSight; }; #endif diff --git a/source/game/BaseWeaponAddon.cpp b/source/game/BaseWeaponAddon.cpp index d1dd2dc5e376c25bb39366bc044f6ad6d68c1750..26fe086f971fc15067a52fd317129d73586b2b26 100644 --- a/source/game/BaseWeaponAddon.cpp +++ b/source/game/BaseWeaponAddon.cpp @@ -10,7 +10,7 @@ END_PROPTABLE() REGISTER_ENTITY_NOLISTING(CBaseWeaponAddon, base_wpn_addon); -CBaseWeaponAddon::CBaseWeaponAddon(EntityManager * pMgr): +CBaseWeaponAddon::CBaseWeaponAddon(CEntityManager * pMgr): BaseClass(pMgr), m_addonType(WPN_ADDON_NONE) { diff --git a/source/game/BaseWeaponAddon.h b/source/game/BaseWeaponAddon.h index 3b466f61cacbbd975713a30447e703a4f39670fa..6521d8abcf9b5c0dbfb4aeeea5a310274908edee 100644 --- a/source/game/BaseWeaponAddon.h +++ b/source/game/BaseWeaponAddon.h @@ -11,7 +11,7 @@ See the license in LICENSE #ifndef _BaseWeaponAddon_H_ #define _BaseWeaponAddon_H_ -#include "SXbaseItem.h" +#include "BaseItem.h" /*! Тип навеса \ingroup cbaseitem @@ -28,9 +28,9 @@ enum WPN_ADDON /*! Навесы на оружие \ingroup cbaseitem */ -class CBaseWeaponAddon: public SXbaseItem +class CBaseWeaponAddon: public CBaseItem { - DECLARE_CLASS(CBaseWeaponAddon, SXbaseItem); + DECLARE_CLASS(CBaseWeaponAddon, CBaseItem); DECLARE_PROPTABLE(); public: DECLARE_CONSTRUCTOR(); diff --git a/source/game/CrosshairManager.cpp b/source/game/CrosshairManager.cpp index e1db15a8e4a1eba6789dcac026e1afa9dd8d318f..3275b81a1082952ff507950ad908789e651544a6 100644 --- a/source/game/CrosshairManager.cpp +++ b/source/game/CrosshairManager.cpp @@ -1,27 +1,27 @@ #include "CrosshairManager.h" -AssotiativeArray<AAString, ID> CrosshairManager::m_mIndex; -Array<CrosshairManager::CrosshairDesc> CrosshairManager::m_vCrosshairList; +AssotiativeArray<AAString, ID> CCrosshairManager::m_mIndex; +Array<CCrosshairManager::CrosshairDesc> CCrosshairManager::m_vCrosshairList; extern report_func reportf; -void CrosshairManager::loadCrosshair(ID id, Crosshair * pCrosshair) +void CCrosshairManager::loadCrosshair(ID id, CCrosshair * pCCrosshair) { if(id < 0 || id >= (ID)m_vCrosshairList.size()) { return; } CrosshairDesc * desc = &m_vCrosshairList[id]; - pCrosshair->SetAngle(desc->fAngle); - pCrosshair->SetFixedRadius(desc->fRadius); - pCrosshair->SetNumSegmens(desc->iNumSegments); - pCrosshair->SetStyle(desc->style); - pCrosshair->SetTexInfo(desc->f2TexOffset, desc->f2TexSize); - pCrosshair->SetTexture(desc->idTexture); + pCCrosshair->setAngle(desc->fAngle); + pCCrosshair->setFixedRadius(desc->fRadius); + pCCrosshair->setNumSegmens(desc->iNumSegments); + pCCrosshair->setStyle(desc->style); + pCCrosshair->setTexInfo(desc->f2TexOffset, desc->f2TexSize); + pCCrosshair->setTexture(desc->idTexture); } -void CrosshairManager::loadConfig(const char * szFile) +void CCrosshairManager::loadConfig(const char * szFile) { ISXConfig * config = Core_OpConfig(szFile); int sections = config->getSectionCount(); @@ -71,15 +71,15 @@ void CrosshairManager::loadConfig(const char * szFile) } if(strcmpi(str, "split_move") == 0) { - cd.style = Crosshair::SPLIT_MOVE; + cd.style = CCrosshair::SPLIT_MOVE; } else if(strcmpi(str, "scaled") == 0) { - cd.style = Crosshair::SCALED; + cd.style = CCrosshair::SCALED; } else { - reportf(REPORT_MSG_LEVEL_WARNING, "Unknown crosshair style '%s' for '%s'\n", str, sect); + reportf(REPORT_MSG_LEVEL_WARNING, "Unknown CCrosshair style '%s' for '%s'\n", str, sect); continue; } @@ -91,7 +91,7 @@ void CrosshairManager::loadConfig(const char * szFile) } else { - reportf(REPORT_MSG_LEVEL_WARNING, "Unable to read crosshair tex '%s'\n", sect); + reportf(REPORT_MSG_LEVEL_WARNING, "Unable to read CCrosshair tex '%s'\n", sect); continue; } int x, y; @@ -101,7 +101,7 @@ void CrosshairManager::loadConfig(const char * szFile) } else { - reportf(REPORT_MSG_LEVEL_WARNING, "Unable to read crosshair tex_offset '%s'. Expected format: '[x,y]'\n", sect); + reportf(REPORT_MSG_LEVEL_WARNING, "Unable to read CCrosshair tex_offset '%s'. Expected format: '[x,y]'\n", sect); continue; } if(config->keyExists(sect, "tex_size") && sscanf(config->getKey(sect, "tex_size"), "[%d,%d]", &x, &y) == 2) @@ -110,7 +110,7 @@ void CrosshairManager::loadConfig(const char * szFile) } else { - reportf(REPORT_MSG_LEVEL_WARNING, "Unable to read crosshair tex_size '%s'. Expected format: '[x,y]'\n", sect); + reportf(REPORT_MSG_LEVEL_WARNING, "Unable to read CCrosshair tex_size '%s'. Expected format: '[x,y]'\n", sect); continue; } AAString aas; @@ -122,7 +122,7 @@ void CrosshairManager::loadConfig(const char * szFile) mem_release(config); } -ID CrosshairManager::getCrosshairID(const char * szName) +ID CCrosshairManager::getCrosshairID(const char * szName) { const AssotiativeArray<AAString, ID>::Node * pNode; if(m_mIndex.KeyExists(AAString(szName), &pNode)) diff --git a/source/game/CrosshairManager.h b/source/game/CrosshairManager.h index 4677423328a3ba10ff6e121d560afb551ed23a16..62a775e0c131874ec0efc7b7882b5c39a856c63b 100644 --- a/source/game/CrosshairManager.h +++ b/source/game/CrosshairManager.h @@ -6,10 +6,10 @@ #include <common/AAString.h> #include "crosshair.h" -class CrosshairManager +class CCrosshairManager { public: - static void loadCrosshair(ID id, Crosshair * pCrosshair); + static void loadCrosshair(ID id, CCrosshair * pCrosshair); static void loadConfig(const char * szFile); static ID getCrosshairID(const char * szName); @@ -19,7 +19,7 @@ protected: float fAngle; float fRadius; int iNumSegments; - Crosshair::STYLE style; + CCrosshair::STYLE style; float2_t f2TexOffset; float2_t f2TexSize; ID idTexture; diff --git a/source/game/EntityFactory.cpp b/source/game/EntityFactory.cpp index 0d1d446e7177474c84ccc462e6648d2cda8a192e..c0be706e360f81b950fd5875b7b982d6be2903a5 100644 --- a/source/game/EntityFactory.cpp +++ b/source/game/EntityFactory.cpp @@ -1,34 +1,34 @@ #include "EntityFactory.h" -#include "SXbaseEntity.h" +#include "BaseEntity.h" -EntityFactoryMap::EntityFactoryMap(): +CEntityFactoryMap::CEntityFactoryMap(): m_iShowInListCount(0) { } -void EntityFactoryMap::AddFactory(IEntityFactory * pFactory, const char * szName) +void CEntityFactoryMap::addFactory(IEntityFactory * pFactory, const char * szName) { - if(!pFactory->IsEditorHidden()) + if(!pFactory->isEditorHidden()) { ++m_iShowInListCount; } m_mFactories[AAString(szName)] = pFactory; } -SXbaseEntity * EntityFactoryMap::Create(const char * szName, EntityManager * pWorld, bool bDelayPostLoad) +CBaseEntity * CEntityFactoryMap::create(const char * szName, CEntityManager * pWorld, bool bDelayPostLoad) { - IEntityFactory * pFactory = GetFactory(szName); + IEntityFactory * pFactory = getFactory(szName); if(pFactory) { - EntDefaultsMap * defs = pFactory->GetDefaults(); - SXbaseEntity * pEnt = pFactory->Create(pWorld); - pEnt->SetDefaults(); - pEnt->SetClassName(pFactory->GetClassName()); + EntDefaultsMap * defs = pFactory->getDefaults(); + CBaseEntity * pEnt = pFactory->create(pWorld); + pEnt->setDefaults(); + pEnt->setClassName(pFactory->getClassName()); if(defs->Size() > 0) { - proptable_t * pt = pFactory->GetPropTable(); + proptable_t * pt = pFactory->getPropTable(); const char * key; const EntDefaultsMap::Node * pNode; while(pt) @@ -38,7 +38,7 @@ SXbaseEntity * EntityFactoryMap::Create(const char * szName, EntityManager * pWo key = pt->pData[i].szKey; if(defs->KeyExists(AAString(key), &pNode)) { - pEnt->SetKV(key, *(pNode->Val)); + pEnt->setKV(key, *(pNode->Val)); } } @@ -47,25 +47,25 @@ SXbaseEntity * EntityFactoryMap::Create(const char * szName, EntityManager * pWo } if(!bDelayPostLoad) { - pEnt->OnPostLoad(); + pEnt->onPostLoad(); } return(pEnt); } return(NULL); } -void EntityFactoryMap::Destroy(SXbaseEntity * pEnt) +void CEntityFactoryMap::destroy(CBaseEntity * pEnt) { if(pEnt) { - IEntityFactory * pFactory = GetFactory(pEnt->GetClassName()); + IEntityFactory * pFactory = getFactory(pEnt->getClassName()); if(pFactory) { - return(pFactory->Destroy(pEnt)); + return(pFactory->destroy(pEnt)); } } } -IEntityFactory * EntityFactoryMap::GetFactory(const char * szName) +IEntityFactory * CEntityFactoryMap::getFactory(const char * szName) { AAString key(szName); if(m_mFactories.KeyExists(key)) @@ -75,33 +75,33 @@ IEntityFactory * EntityFactoryMap::GetFactory(const char * szName) return(NULL); } -EntityFactoryMap * EntityFactoryMap::GetInstance() +CEntityFactoryMap * CEntityFactoryMap::GetInstance() { - static EntityFactoryMap map; + static CEntityFactoryMap map; return(&map); } -proptable_t * EntityFactoryMap::GetPropTable(const char * szClass) +proptable_t * CEntityFactoryMap::getPropTable(const char * szClass) { - return(GetFactory(szClass)->GetPropTable()); + return(getFactory(szClass)->getPropTable()); } -bool EntityFactoryMap::IsEditorHidden(const char * szClass) +bool CEntityFactoryMap::isEditorHidden(const char * szClass) { - return(GetFactory(szClass)->IsEditorHidden()); + return(getFactory(szClass)->isEditorHidden()); } -EntDefaultsMap * EntityFactoryMap::GetDefaults(const char * szClass) +EntDefaultsMap * CEntityFactoryMap::getDefaults(const char * szClass) { - return(GetFactory(szClass)->GetDefaults()); + return(getFactory(szClass)->getDefaults()); } -int EntityFactoryMap::GetListCount() +int CEntityFactoryMap::getListCount() { return(m_iShowInListCount); } -void EntityFactoryMap::GetListing(const char ** pszOut, int size) +void CEntityFactoryMap::getListing(const char ** pszOut, int size) { int j = 0; if(size > m_iShowInListCount) @@ -110,9 +110,9 @@ void EntityFactoryMap::GetListing(const char ** pszOut, int size) } for(AssotiativeArray<AAString, IEntityFactory*>::Iterator i = m_mFactories.begin(); i && j < size; i++) { - if(!(*i.second)->IsEditorHidden()) + if(!(*i.second)->isEditorHidden()) { - pszOut[j++] = i.first->GetName(); + pszOut[j++] = i.first->getName(); } } } diff --git a/source/game/EntityFactory.h b/source/game/EntityFactory.h index 8238488f3dba46a1f580ef20dc8f81b2b2ec0675..2ba5cd2282a395eb59a0002e8acaee67c8544140 100644 --- a/source/game/EntityFactory.h +++ b/source/game/EntityFactory.h @@ -1,5 +1,5 @@ -#ifndef _DSentityFactory_H_ -#define _DSentityFactory_H_ +#ifndef _CEntityFactory_H_ +#define _CEntityFactory_H_ #include <gdefines.h> #include <common/AssotiativeArray.h> @@ -9,62 +9,58 @@ #include "proptable.h" -#ifdef GetClassName -#undef GetClassName -#endif - typedef AssotiativeArray<AAString, const char *> EntDefaultsMap; -class SXbaseEntity; -class EntityManager; +class CBaseEntity; +class CEntityManager; class IEntityFactory { public: - virtual SXbaseEntity * Create(EntityManager * pWorld) = 0; - virtual void Destroy(SXbaseEntity * pEnt) = 0; - virtual const char * GetClassName() = 0; - virtual proptable_t * GetPropTable() = 0; - virtual bool IsEditorHidden() = 0; - virtual EntDefaultsMap * GetDefaults() = 0; - virtual IEntityFactory * Copy(const char * szName, bool showInListing) = 0; + virtual CBaseEntity * create(CEntityManager * pWorld) = 0; + virtual void destroy(CBaseEntity * pEnt) = 0; + virtual const char * getClassName() = 0; + virtual proptable_t * getPropTable() = 0; + virtual bool isEditorHidden() = 0; + virtual EntDefaultsMap * getDefaults() = 0; + virtual IEntityFactory * copy(const char * szName, bool showInListing) = 0; }; -class EntityFactoryMap +class CEntityFactoryMap { - friend class EntityManager; + friend class CEntityManager; public: - EntityFactoryMap(); + CEntityFactoryMap(); - void AddFactory(IEntityFactory * pFactory, const char * szName); - SXbaseEntity * Create(const char * szName, EntityManager * pMgr, bool bDelayPostLoad=false); - void Destroy(SXbaseEntity * pEnt); + void addFactory(IEntityFactory * pFactory, const char * szName); + CBaseEntity * create(const char * szName, CEntityManager * pMgr, bool bDelayPostLoad=false); + void destroy(CBaseEntity * pEnt); - static EntityFactoryMap * GetInstance(); - proptable_t * GetPropTable(const char * szClass); - bool IsEditorHidden(const char * szClass); - EntDefaultsMap * GetDefaults(const char * szClass); + static CEntityFactoryMap * GetInstance(); + proptable_t * getPropTable(const char * szClass); + bool isEditorHidden(const char * szClass); + EntDefaultsMap * getDefaults(const char * szClass); - int GetListCount(); - void GetListing(const char ** pszOut, int size); + int getListCount(); + void getListing(const char ** pszOut, int size); private: - IEntityFactory * GetFactory(const char * szName); + IEntityFactory * getFactory(const char * szName); AssotiativeArray<AAString, IEntityFactory*> m_mFactories; int m_iShowInListCount; }; template <class T> -class EntityFactory: public IEntityFactory +class CEntityFactory: public IEntityFactory { public: - EntityFactory(const char * szName, bool showInListing) + CEntityFactory(const char * szName, bool showInListing) { m_bShowInListing = showInListing; m_szClassName = szName; m_pPropTable = T::SGetPropTable(); - EntityFactoryMap::GetInstance()->AddFactory(this, szName); + CEntityFactoryMap::GetInstance()->addFactory(this, szName); } - ~EntityFactory() + ~CEntityFactory() { T::ReleasePropData(); for(int i = 0, l = m_vDerivatives.size(); i < l; ++i) @@ -73,21 +69,21 @@ public: } } - IEntityFactory * Copy(const char * szName, bool showInListing) + IEntityFactory * copy(const char * szName, bool showInListing) { - EntityFactory<T> * newF = new EntityFactory<T>(*this); + CEntityFactory<T> * newF = new CEntityFactory<T>(*this); newF->m_szClassName = szName; newF->m_bShowInListing = showInListing; m_vDerivatives.push_back(newF); return(newF); } - SXbaseEntity * Create(EntityManager * pWorld) + CBaseEntity * create(CEntityManager * pWorld) { return(new T(pWorld)); } - void Destroy(SXbaseEntity * pEnt) + void destroy(CBaseEntity * pEnt) { if(pEnt) { @@ -95,22 +91,22 @@ public: } } - const char * GetClassName() + const char * getClassName() { return(m_szClassName); } - proptable_t * GetPropTable() + proptable_t * getPropTable() { return(m_pPropTable); } - bool IsEditorHidden() + bool isEditorHidden() { return(!m_bShowInListing); } - EntDefaultsMap * GetDefaults() + EntDefaultsMap * getDefaults() { return(&m_mDefaults); } @@ -120,17 +116,17 @@ private: proptable_t * m_pPropTable; bool m_bShowInListing; EntDefaultsMap m_mDefaults; - Array<EntityFactory<T>*> m_vDerivatives; + Array<CEntityFactory<T>*> m_vDerivatives; }; #define REGISTER_ENTITY(cls, name) \ - EntityFactory<cls> ent_ ## name ## _factory(#name, 1) + CEntityFactory<cls> ent_ ## name ## _factory(#name, 1) #define REGISTER_ENTITY_NOLISTING(cls, name) \ - EntityFactory<cls> ent_ ## name ## _factory(#name, 0) + CEntityFactory<cls> ent_ ## name ## _factory(#name, 0) -#define CREATE_ENTITY(cls, mgr) EntityFactoryMap::GetInstance()->Create(cls, mgr) -#define CREATE_ENTITY_NOPOST(cls, mgr) EntityFactoryMap::GetInstance()->Create(cls, mgr, 1) -#define REMOVE_ENTITY(ent) EntityFactoryMap::GetInstance()->Destroy(ent) +#define CREATE_ENTITY(cls, mgr) CEntityFactoryMap::GetInstance()->create(cls, mgr) +#define CREATE_ENTITY_NOPOST(cls, mgr) CEntityFactoryMap::GetInstance()->create(cls, mgr, 1) +#define REMOVE_ENTITY(ent) CEntityFactoryMap::GetInstance()->destroy(ent) #endif diff --git a/source/game/EntityManager.cpp b/source/game/EntityManager.cpp index 0ec7bc50803f166b36b0fca1697bf68f308f7ac4..dd55b14b9b27d9c2ce40352a4f5a7699e3a711b3 100644 --- a/source/game/EntityManager.cpp +++ b/source/game/EntityManager.cpp @@ -1,30 +1,30 @@ #include "EntityManager.h" -#include "SXbaseEntity.h" +#include "BaseEntity.h" #include <core/sxcore.h> #include <mutex> -EntityManager::EntityManager(): +CEntityManager::CEntityManager(): m_iThreadNum(1), m_pDefaultsConf(NULL), m_pDynClassConf(NULL) { - LoadDefaults(); - LoadDynClasses(); + loadDefaults(); + loadDynClasses(); - Core_0RegisterConcmdClsArg("ent_dump", this, (SXCONCMDCLSARG)&EntityManager::DumpList); - Core_0RegisterConcmdClsArg("ent_kv", this, (SXCONCMDCLSARG)&EntityManager::EntKV); + Core_0RegisterConcmdClsArg("ent_dump", this, (SXCONCMDCLSARG)&CEntityManager::dumpList); + Core_0RegisterConcmdClsArg("ent_kv", this, (SXCONCMDCLSARG)&CEntityManager::entKV); } -EntityManager::~EntityManager() +CEntityManager::~CEntityManager() { mem_release(m_pDynClassConf); mem_release(m_pDefaultsConf); } -void EntityManager::Update(int thread) +void CEntityManager::update(int thread) { time_point tNow = std::chrono::high_resolution_clock::now(); timeout_t * t; @@ -74,7 +74,7 @@ void EntityManager::Update(int thread) } } -void EntityManager::SetThreadNum(int num) +void CEntityManager::setThreadNum(int num) { if(num > 0) { @@ -82,9 +82,9 @@ void EntityManager::SetThreadNum(int num) } } -void EntityManager::Sync() +void CEntityManager::sync() { - SXbaseEntity * pEnt; + CBaseEntity * pEnt; for(int i = 0, l = m_vTimeout.size(); i < l; ++i) { if(m_vTimeout[i].status == TS_DONE) @@ -119,27 +119,27 @@ void EntityManager::Sync() if(pEnt) { //pEnt->updateDiscreteLinearVelocity(0, dt); - pEnt->OnSync(); + pEnt->onSync(); //pEnt->updateDiscreteLinearVelocity(1, dt); } } //tOld = std::chrono::high_resolution_clock::now(); } -void EntityManager::unloadObjLevel() +void CEntityManager::unloadObjLevel() { - SXbaseEntity * pEnt; + CBaseEntity * pEnt; for (int i = 0, l = m_vEntList.size(); i < l; ++i) { pEnt = m_vEntList[i]; - if (pEnt && (pEnt->GetFlags() & EF_LEVEL)) + if (pEnt && (pEnt->getFlags() & EF_LEVEL)) { REMOVE_ENTITY(pEnt); } } } -ID EntityManager::Register(SXbaseEntity * pEnt) +ID CEntityManager::reg(CBaseEntity * pEnt) { ID ent; if(!pEnt) @@ -159,7 +159,7 @@ ID EntityManager::Register(SXbaseEntity * pEnt) } return(ent); } -void EntityManager::Unregister(ID ent) +void CEntityManager::unreg(ID ent) { //@TODO: Clear all sheduled timeouts and outputs if(m_vEntList.size() <= (UINT)ent || ent < 0) @@ -170,7 +170,7 @@ void EntityManager::Unregister(ID ent) m_vFreeIDs.push_back(ent); } -ID EntityManager::SetTimeout(void(SXbaseEntity::*func)(float dt), SXbaseEntity * pEnt, float delay) +ID CEntityManager::setTimeout(void(CBaseEntity::*func)(float dt), CBaseEntity * pEnt, float delay) { timeout_t t; t.status = TS_WAIT; @@ -198,7 +198,7 @@ ID EntityManager::SetTimeout(void(SXbaseEntity::*func)(float dt), SXbaseEntity * return(id); } -ID EntityManager::SetInterval(void(SXbaseEntity::*func)(float dt), SXbaseEntity * pEnt, float delay) +ID CEntityManager::setInterval(void(CBaseEntity::*func)(float dt), CBaseEntity * pEnt, float delay) { timeout_t t; t.status = TS_WAIT; @@ -226,7 +226,7 @@ ID EntityManager::SetInterval(void(SXbaseEntity::*func)(float dt), SXbaseEntity return(id); } -void EntityManager::ClearInterval(ID id) +void CEntityManager::clearInterval(ID id) { if(id < 0 || (UINT)id >= m_vInterval.size()) { @@ -237,7 +237,7 @@ void EntityManager::ClearInterval(ID id) m_vInterval[id].status = TS_DONE; } } -void EntityManager::ClearTimeout(ID id) +void CEntityManager::clearTimeout(ID id) { if(id < 0 || (UINT)id >= m_vTimeout.size()) { @@ -249,12 +249,12 @@ void EntityManager::ClearTimeout(ID id) } } -bool EntityManager::Export(const char * file) +bool CEntityManager::exportList(const char * file) { ISXConfig * conf = Core_CrConfig(); conf->New(file); char buf[4096], sect[32]; - SXbaseEntity * pEnt; + CBaseEntity * pEnt; proptable_t * pTbl; int ic = 0; @@ -265,20 +265,20 @@ bool EntityManager::Export(const char * file) pEnt = m_vEntList[i]; sprintf(sect, "ent_%d", ic); - if(!(pEnt->GetFlags() & EF_EXPORT)) + if(!(pEnt->getFlags() & EF_EXPORT)) { continue; } - conf->set(sect, "classname", pEnt->GetClassName()); - pTbl = EntityFactoryMap::GetInstance()->GetPropTable(pEnt->GetClassName()); + conf->set(sect, "classname", pEnt->getClassName()); + pTbl = CEntityFactoryMap::GetInstance()->getPropTable(pEnt->getClassName()); do { for(int j = 0; j < pTbl->numFields; ++j) { if(pTbl->pData[j].szKey && !conf->keyExists(sect, pTbl->pData[j].szKey)) { - pEnt->GetKV(pTbl->pData[j].szKey, buf, sizeof(buf)); + pEnt->getKV(pTbl->pData[j].szKey, buf, sizeof(buf)); conf->set(sect, pTbl->pData[j].szKey, buf); } } @@ -295,12 +295,12 @@ bool EntityManager::Export(const char * file) return(ret); } -bool EntityManager::Import(const char * file) +bool CEntityManager::import(const char * file) { ISXConfig * conf = Core_CrConfig(); char sect[32]; - SXbaseEntity * pEnt = NULL; - Array<SXbaseEntity*> tmpList; + CBaseEntity * pEnt = NULL; + Array<CBaseEntity*> tmpList; if(conf->open(file)) { goto err; @@ -336,17 +336,17 @@ bool EntityManager::Import(const char * file) } if(conf->keyExists(sect, "name")) { - pEnt->SetKV("name", conf->getKey(sect, "name")); + pEnt->setKV("name", conf->getKey(sect, "name")); } if(conf->keyExists(sect, "origin")) { - pEnt->SetKV("origin", conf->getKey(sect, "origin")); + pEnt->setKV("origin", conf->getKey(sect, "origin")); } if(conf->keyExists(sect, "rotation")) { - pEnt->SetKV("rotation", conf->getKey(sect, "rotation")); + pEnt->setKV("rotation", conf->getKey(sect, "rotation")); } - pEnt->SetFlags(pEnt->GetFlags() | EF_EXPORT | EF_LEVEL); + pEnt->setFlags(pEnt->getFlags() | EF_EXPORT | EF_LEVEL); tmpList[i] = pEnt; } @@ -364,10 +364,10 @@ bool EntityManager::Import(const char * file) key = conf->getKeyName(sect, j); if(strcmp(key, "classname") && strcmp(key, "origin") && strcmp(key, "name") && strcmp(key, "rotation")) { - pEnt->SetKV(key, conf->getKey(sect, key)); + pEnt->setKV(key, conf->getKey(sect, key)); } } - pEnt->OnPostLoad(); + pEnt->onPostLoad(); } mem_release(conf); @@ -379,20 +379,20 @@ err: } -SXbaseEntity * EntityManager::FindEntityByName(const char * name, SXbaseEntity * pStart) +CBaseEntity * CEntityManager::findEntityByName(const char * name, CBaseEntity * pStart) { if(!name[0]) { return(NULL); } bool bFound = !pStart; - SXbaseEntity * pEnt; + CBaseEntity * pEnt; for(int i = 0, l = m_vEntList.size(); i < l; ++i) { pEnt = m_vEntList[i]; if(bFound) { - if(!strcmp(pEnt->GetName(), name)) + if(!strcmp(pEnt->getName(), name)) { return(pEnt); } @@ -408,7 +408,7 @@ SXbaseEntity * EntityManager::FindEntityByName(const char * name, SXbaseEntity * return(NULL); } -int EntityManager::CountEntityByName(const char * name) +int CEntityManager::countEntityByName(const char * name) { if(!name[0]) { @@ -417,7 +417,7 @@ int EntityManager::CountEntityByName(const char * name) int c = 0; for(int i = 0, l = m_vEntList.size(); i < l; ++i) { - if(!strcmp(m_vEntList[i]->GetName(), name)) + if(!strcmp(m_vEntList[i]->getName(), name)) { ++c; } @@ -425,16 +425,16 @@ int EntityManager::CountEntityByName(const char * name) return(c); } -SXbaseEntity * EntityManager::FindEntityByClass(const char * name, SXbaseEntity * pStart) +CBaseEntity * CEntityManager::findEntityByClass(const char * name, CBaseEntity * pStart) { bool bFound = !pStart; - SXbaseEntity * pEnt; + CBaseEntity * pEnt; for(int i = 0, l = m_vEntList.size(); i < l; ++i) { pEnt = m_vEntList[i]; if(bFound) { - if(!strcmp(pEnt->GetClassName(), name)) + if(!strcmp(pEnt->getClassName(), name)) { return(pEnt); } @@ -450,7 +450,7 @@ SXbaseEntity * EntityManager::FindEntityByClass(const char * name, SXbaseEntity return(NULL); } -void EntityManager::LoadDefaults() +void CEntityManager::loadDefaults() { m_pDefaultsConf = Core_CrConfig(); if(m_pDefaultsConf->open("config/entities/defaults.ent") < 0) @@ -465,7 +465,7 @@ void EntityManager::LoadDefaults() for(int i = 0, l = m_pDefaultsConf->getSectionCount(); i < l; ++i) { sect = m_pDefaultsConf->getSectionName(i); - if(!(defs = EntityFactoryMap::GetInstance()->GetDefaults(sect))) + if(!(defs = CEntityFactoryMap::GetInstance()->getDefaults(sect))) { continue; } @@ -477,7 +477,7 @@ void EntityManager::LoadDefaults() } } -void EntityManager::LoadDynClasses() +void CEntityManager::loadDynClasses() { m_pDynClassConf = Core_CrConfig(); if(m_pDynClassConf->open("config/entities/classes.ent") < 0) @@ -498,7 +498,7 @@ void EntityManager::LoadDynClasses() printf(COLOR_LRED "Couldn't create entity class '%s': Unknown base class\n" COLOR_RESET, newClass); continue; } - IEntityFactory * pOldFactory = EntityFactoryMap::GetInstance()->GetFactory(baseClass); + IEntityFactory * pOldFactory = CEntityFactoryMap::GetInstance()->getFactory(baseClass); if(!pOldFactory) { printf(COLOR_LRED "Couldn't create entity class '%s': Base class '%s' is undefined\n" COLOR_RESET, newClass, baseClass); @@ -508,14 +508,14 @@ void EntityManager::LoadDynClasses() { bShow = strcmp(key, "0") && strcmp(key, "false"); } - IEntityFactory * newFactory = pOldFactory->Copy(newClass, bShow); - EntityFactoryMap::GetInstance()->AddFactory(newFactory, newClass); + IEntityFactory * newFactory = pOldFactory->copy(newClass, bShow); + CEntityFactoryMap::GetInstance()->addFactory(newFactory, newClass); - if(!(defs = EntityFactoryMap::GetInstance()->GetDefaults(newClass))) + if(!(defs = CEntityFactoryMap::GetInstance()->getDefaults(newClass))) { continue; } - if((baseDefs = EntityFactoryMap::GetInstance()->GetDefaults(baseClass))) + if((baseDefs = CEntityFactoryMap::GetInstance()->getDefaults(baseClass))) { for(EntDefaultsMap::Iterator i = baseDefs->begin(); i; i++) { @@ -530,7 +530,7 @@ void EntityManager::LoadDynClasses() } } -void EntityManager::DumpList(int argc, const char ** argv) +void CEntityManager::dumpList(int argc, const char ** argv) { const char * filter = ""; if(argc > 1) @@ -548,21 +548,21 @@ void EntityManager::DumpList(int argc, const char ** argv) for(int i = 0, l = m_vEntList.size(); i < l; ++i) { - SXbaseEntity * pEnt = m_vEntList[i]; + CBaseEntity * pEnt = m_vEntList[i]; if(!pEnt) { continue; } - if(!filter[0] || strstr(pEnt->GetClassName(), filter)) + if(!filter[0] || strstr(pEnt->getClassName(), filter)) { - printf(" " COLOR_LGREEN "%4d" COLOR_GREEN " | " COLOR_LGREEN "%24s" COLOR_GREEN " | " COLOR_LGREEN "%16s" COLOR_GREEN " |\n", i, pEnt->GetClassName(), pEnt->GetName()); + printf(" " COLOR_LGREEN "%4d" COLOR_GREEN " | " COLOR_LGREEN "%24s" COLOR_GREEN " | " COLOR_LGREEN "%16s" COLOR_GREEN " |\n", i, pEnt->getClassName(), pEnt->getName()); } } printf("-----------------------------------------------------\n" COLOR_RESET); } -void EntityManager::EntKV(int argc, const char ** argv) +void CEntityManager::entKV(int argc, const char ** argv) { int id = 0; if(argc == 1) @@ -575,7 +575,7 @@ void EntityManager::EntKV(int argc, const char ** argv) printf("Usage: \n ent_kv <entid> [keyname [new_value]]\n"); return; } - SXbaseEntity * pEnt; + CBaseEntity * pEnt; if(id < 0 || (UINT)id >= m_vEntList.size() || !(pEnt = m_vEntList[id])) { printf(COLOR_LRED "Invalid entity id\n" COLOR_RESET); @@ -586,14 +586,14 @@ void EntityManager::EntKV(int argc, const char ** argv) { case 2: // dump all KVs { - proptable_t * pt = EntityFactoryMap::GetInstance()->GetPropTable(pEnt->GetClassName()); + proptable_t * pt = CEntityFactoryMap::GetInstance()->getPropTable(pEnt->getClassName()); while(pt) { for(int i = 0; i < pt->numFields; ++i) { if(pt->pData[i].szKey) { - pEnt->GetKV(pt->pData[i].szKey, buf, sizeof(buf)); + pEnt->getKV(pt->pData[i].szKey, buf, sizeof(buf)); printf("%s = %s\n", pt->pData[i].szKey, buf); } } @@ -602,22 +602,22 @@ void EntityManager::EntKV(int argc, const char ** argv) } break; case 3: // show KV - pEnt->GetKV(argv[2], buf, sizeof(buf)); + pEnt->getKV(argv[2], buf, sizeof(buf)); printf("%s = %s\n", argv[2], buf); break; case 4: // set new KV - pEnt->SetKV(argv[2], argv[3]); + pEnt->setKV(argv[2], argv[3]); break; } } -int EntityManager::GetCount() +int CEntityManager::getCount() { return(m_vEntList.size()); } -SXbaseEntity * EntityManager::GetById(ID id) +CBaseEntity * CEntityManager::getById(ID id) { if(id < 0 || (UINT)id >= m_vEntList.size()) { @@ -626,7 +626,7 @@ SXbaseEntity * EntityManager::GetById(ID id) return(m_vEntList[id]); } -void EntityManager::setOutputTimeout(named_output_t * pOutput, inputdata_t * pData) +void CEntityManager::setOutputTimeout(named_output_t * pOutput, inputdata_t * pData) { timeout_output_t t; t.status = TS_WAIT; diff --git a/source/game/EntityManager.h b/source/game/EntityManager.h index f2c7eb17ab078525bda52318d8aeae49e4b2c091..34671f774f1c35e6984e379f71bb29d26050e9fd 100644 --- a/source/game/EntityManager.h +++ b/source/game/EntityManager.h @@ -11,24 +11,24 @@ typedef std::chrono::system_clock::time_point time_point; -class SXbaseEntity; +class CBaseEntity; struct ISXConfig; /*! Однократно запустить функцию fn через время time \note Должно вызываться изнутри класса объекта */ -#define SET_TIMEOUT(fn, time) m_pMgr->SetTimeout((void(SXbaseEntity::*)(float))&ThisClass::fn, this, time) +#define SET_TIMEOUT(fn, time) m_pMgr->setTimeout((void(CBaseEntity::*)(float))&ThisClass::fn, this, time) /*! Запускать функцию fn через каждые time секунд Возвращает идентификатор таймера \note Должно вызываться изнутри класса объекта */ -#define SET_INTERVAL(fn, time) m_pMgr->SetInterval((void(SXbaseEntity::*)(float))&ThisClass::fn, this, time) +#define SET_INTERVAL(fn, time) m_pMgr->setInterval((void(CBaseEntity::*)(float))&ThisClass::fn, this, time) /*! Отменить интервал по идентификатору \note Должно вызываться изнутри класса объекта */ -#define CLEAR_INTERVAL(id) m_pMgr->ClearInterval(id) +#define CLEAR_INTERVAL(id) m_pMgr->clearInterval(id) enum TIMEOUT_STATUS { @@ -40,8 +40,8 @@ enum TIMEOUT_STATUS struct timeout_t { TIMEOUT_STATUS status; - void(SXbaseEntity::*func)(float dt); - SXbaseEntity * pEnt; + void(CBaseEntity::*func)(float dt); + CBaseEntity * pEnt; time_point fStartTime; time_point fNextTime; }; @@ -55,47 +55,47 @@ struct timeout_output_t inputdata_t data; }; -class EntityManager +class CEntityManager { - friend class SXbaseEntity; + friend class CBaseEntity; public: - EntityManager(); - ~EntityManager(); + CEntityManager(); + ~CEntityManager(); - void Update(int thread); - void SetThreadNum(int num); - void Sync(); + void update(int thread); + void setThreadNum(int num); + void sync(); void unloadObjLevel(); - void LoadDefaults(); - void LoadDynClasses(); + void loadDefaults(); + void loadDynClasses(); - ID SetTimeout(void(SXbaseEntity::*func)(float dt), SXbaseEntity * pEnt, float delay); - ID SetInterval(void(SXbaseEntity::*func)(float dt), SXbaseEntity * pEnt, float delay); + ID setTimeout(void(CBaseEntity::*func)(float dt), CBaseEntity * pEnt, float delay); + ID setInterval(void(CBaseEntity::*func)(float dt), CBaseEntity * pEnt, float delay); void setOutputTimeout(named_output_t * pOutput, inputdata_t * pData); - void ClearTimeout(ID id); - void ClearInterval(ID id); + void clearTimeout(ID id); + void clearInterval(ID id); - int CountEntityByName(const char * name); - SXbaseEntity * FindEntityByName(const char * name, SXbaseEntity * pStart = 0); + int countEntityByName(const char * name); + CBaseEntity * findEntityByName(const char * name, CBaseEntity * pStart = 0); - SXbaseEntity * FindEntityByClass(const char * name, SXbaseEntity * pStart = 0); + CBaseEntity * findEntityByClass(const char * name, CBaseEntity * pStart = 0); - bool Export(const char * file); - bool Import(const char * file); + bool exportList(const char * file); + bool import(const char * file); - void DumpList(int argc, const char ** argv); - void EntKV(int argc, const char ** argv); + void dumpList(int argc, const char ** argv); + void entKV(int argc, const char ** argv); - int GetCount(); - SXbaseEntity * GetById(ID id); + int getCount(); + CBaseEntity * getById(ID id); protected: - ID Register(SXbaseEntity * pEnt); - void Unregister(ID ent); + ID reg(CBaseEntity * pEnt); + void unreg(ID ent); - Array<SXbaseEntity*, 64> m_vEntList; + Array<CBaseEntity*, 64> m_vEntList; Array<ID> m_vFreeIDs; Array<timeout_t> m_vTimeout; diff --git a/source/game/FuncTrain.cpp b/source/game/FuncTrain.cpp index 819e9d77468464a6ce51af777b06b0816c04950a..4b238b01628615fcde604b9caad9fc3438a42e4a 100644 --- a/source/game/FuncTrain.cpp +++ b/source/game/FuncTrain.cpp @@ -5,7 +5,7 @@ Поезд, движется по траектории, построенной из path_corner */ -BEGIN_PROPTABLE(FuncTrain) +BEGIN_PROPTABLE(CFuncTrain) //! Скорость движения DEFINE_FIELD_FLOAT(m_fSpeed, 0, "speed", "Move speed", EDITOR_TEXTFIELD) @@ -13,9 +13,9 @@ BEGIN_PROPTABLE(FuncTrain) DEFINE_FIELD_ENTITY(m_pStartStop, 0, "start", "Start point", EDITOR_TEXTFIELD) END_PROPTABLE() -REGISTER_ENTITY(FuncTrain, func_train); +REGISTER_ENTITY(CFuncTrain, func_train); -FuncTrain::FuncTrain(EntityManager * pMgr): +CFuncTrain::CFuncTrain(CEntityManager * pMgr): BaseClass(pMgr), m_fSpeed(0.0f), m_pStartStop(NULL), @@ -24,18 +24,18 @@ FuncTrain::FuncTrain(EntityManager * pMgr): { } -void FuncTrain::OnPostLoad() +void CFuncTrain::onPostLoad() { - BaseClass::OnPostLoad(); + BaseClass::onPostLoad(); m_pCurStop = m_pStartStop; if(m_pStartStop) { - // SetPos(m_pStartStop->GetPos()); - // SetOrient(m_pStartStop->GetOrient()); + // setPos(m_pStartStop->getPos()); + // setOrient(m_pStartStop->getOrient()); } } -void FuncTrain::Stop() +void CFuncTrain::stop() { if(m_bRunning) { @@ -44,16 +44,16 @@ void FuncTrain::Stop() } } -void FuncTrain::Start() +void CFuncTrain::start() { if(!m_bRunning) { m_bRunning = true; - m_iPostIval = SET_INTERVAL(MoveFunc, 1.0f/60.0f); + m_iPostIval = SET_INTERVAL(moveFunc, 1.0f/60.0f); } } -void FuncTrain::MoveFunc(float dt) +void CFuncTrain::moveFunc(float dt) { m_fCurDist += m_fSpeed * dt; while(m_pCurStop && (m_fCurDist > m_pCurStop->GetLength())) @@ -63,8 +63,8 @@ void FuncTrain::MoveFunc(float dt) } if(m_pCurStop) { - SetPos(m_pCurStop->GetPoint(m_fCurDist)); - SetOrient(m_pCurStop->GetRot(m_fCurDist)); + setPos(m_pCurStop->getPoint(m_fCurDist)); + setOrient(m_pCurStop->getRot(m_fCurDist)); } else { @@ -73,8 +73,8 @@ void FuncTrain::MoveFunc(float dt) { m_pCurStop = m_pCurStop->GetNext(); } - SetPos(m_pCurStop->GetPoint(m_fCurDist)); - SetOrient(m_pCurStop->GetRot(m_fCurDist)); - Stop(); + setPos(m_pCurStop->getPoint(m_fCurDist)); + setOrient(m_pCurStop->getRot(m_fCurDist)); + stop(); } } diff --git a/source/game/FuncTrain.h b/source/game/FuncTrain.h index ae7a8aca90ab87178145bee427840180be9eb00f..57d1b32ceb11b4a4a622d35962e2964c26cd6345 100644 --- a/source/game/FuncTrain.h +++ b/source/game/FuncTrain.h @@ -7,36 +7,36 @@ See the license in LICENSE \file Поезда класс */ -#ifndef _FuncTrain_H_ -#define _FuncTrain_H_ +#ifndef _CFuncTrain_H_ +#define _CFuncTrain_H_ -#include "SXpointEntity.h" +#include "PointEntity.h" -class PathCorner; +class CPathCorner; /*! Поезда класс \ingroup cpointentity */ -class FuncTrain: public SXpointEntity +class CFuncTrain: public CPointEntity { - DECLARE_CLASS(FuncTrain, SXpointEntity); + DECLARE_CLASS(CFuncTrain, CPointEntity); DECLARE_PROPTABLE(); public: - FuncTrain(EntityManager * pMgr); + CFuncTrain(CEntityManager * pMgr); //! Остановить - void Stop(); + void stop(); //! Запустить - void Start(); + void start(); protected: - void OnPostLoad(); - void MoveFunc(float dt); + void onPostLoad(); + void moveFunc(float dt); //! Начальная точка движения - PathCorner * m_pStartStop; + CPathCorner * m_pStartStop; //! Текущая точка - PathCorner * m_pCurStop; + CPathCorner * m_pCurStop; //! Скорость float m_fSpeed; diff --git a/source/game/GameData.cpp b/source/game/GameData.cpp index 89325701672b89a74e838e0744e16b9ac8b08441..14237499e62e8a5dc48a05d76ab818006af16862 100644 --- a/source/game/GameData.cpp +++ b/source/game/GameData.cpp @@ -6,9 +6,9 @@ #include <score/sxscore.h> -SXplayer * GameData::m_pPlayer; -SXpointCamera * GameData::m_pActiveCamera; -EntityManager * GameData::m_pMgr; +CPlayer * GameData::m_pPlayer; +CPointCamera * GameData::m_pActiveCamera; +CEntityManager * GameData::m_pMgr; CRagdoll * g_pRagdoll; IAnimPlayer * pl; @@ -17,7 +17,7 @@ GameData::GameData() { loadFoostepsSounds(); - m_pMgr = new EntityManager(); + m_pMgr = new CEntityManager(); Core_0RegisterConcmd("+forward", ccmd_forward_on); Core_0RegisterConcmd("-forward", ccmd_forward_off); @@ -59,27 +59,27 @@ GameData::GameData() Core_0RegisterCVarFloat("cl_bob_walk", 0.5f, "View bobbing walk period"); Core_0RegisterCVarFloat("cl_bob_run", 1.0f, "View bobbing run period"); - CrosshairManager::loadConfig("config/game/crosshairs.cfg"); + CCrosshairManager::loadConfig("config/game/crosshairs.cfg"); - m_pPlayer = (SXplayer*)CREATE_ENTITY("player", m_pMgr); - m_pActiveCamera = m_pPlayer->GetCamera(); - m_pCrosshair = m_pPlayer->GetCrosshair(); + m_pPlayer = (CPlayer*)CREATE_ENTITY("player", m_pMgr); + m_pActiveCamera = m_pPlayer->getCamera(); + m_pCrosshair = m_pPlayer->getCrosshair(); - ID idCrosshairDefault = CrosshairManager::getCrosshairID("default"); + ID idCrosshairDefault = CCrosshairManager::getCrosshairID("default"); if(ID_VALID(idCrosshairDefault)) { - CrosshairManager::loadCrosshair(idCrosshairDefault, m_pCrosshair); + CCrosshairManager::loadCrosshair(idCrosshairDefault, m_pCrosshair); } - Core_0RegisterConcmdClsArg("+debug_slot_move", m_pPlayer, (SXCONCMDCLSARG)&SXplayer::_ccmd_slot_on); - Core_0RegisterConcmdCls("-debug_slot_move", m_pPlayer, (SXCONCMDCLS)&SXplayer::_ccmd_slot_off); + Core_0RegisterConcmdClsArg("+debug_slot_move", m_pPlayer, (SXCONCMDCLSARG)&CPlayer::_ccmd_slot_on); + Core_0RegisterConcmdCls("-debug_slot_move", m_pPlayer, (SXCONCMDCLS)&CPlayer::_ccmd_slot_off); - //m_pPlayer->SetModel("models/stalker_zombi/stalker_zombi_a.dse"); - //m_pPlayer->PlayAnimation("reload"); + //m_pPlayer->setModel("models/stalker_zombi/stalker_zombi_a.dse"); + //m_pPlayer->playAnimation("reload"); //pl = SXAnim_CreatePlayer("models/stalker_zombi/stalker_zombi_a.dse"); - //pl->SetPos(float3(0, 0, 0)); + //pl->setPos(float3(0, 0, 0)); //g_pRagdoll = new CRagdoll(pl); //pl->setRagdoll(g_pRagdoll); } @@ -96,20 +96,20 @@ GameData::~GameData() } } -void GameData::Update() +void GameData::update() { - m_pCrosshair->Update(); + m_pCrosshair->update(); } -void GameData::Render() +void GameData::render() { } -void GameData::RenderHUD() +void GameData::renderHUD() { - m_pCrosshair->Render(); + m_pCrosshair->render(); } -void GameData::Sync() +void GameData::sync() { - m_pCrosshair->OnSync(); + m_pCrosshair->onSync(); } void GameData::playFootstepSound(MTLTYPE_PHYSIC mtl_type, const float3 &f3Pos) @@ -176,112 +176,112 @@ void GameData::loadFoostepsSounds() void GameData::ccmd_forward_on() { - m_pPlayer->Move(PM_FORWARD, TRUE); + m_pPlayer->move(PM_FORWARD, TRUE); } void GameData::ccmd_forward_off() { - m_pPlayer->Move(PM_FORWARD, FALSE); + m_pPlayer->move(PM_FORWARD, FALSE); } void GameData::ccmd_backward_on() { - m_pPlayer->Move(PM_BACKWARD, TRUE); + m_pPlayer->move(PM_BACKWARD, TRUE); } void GameData::ccmd_backward_off() { - m_pPlayer->Move(PM_BACKWARD, FALSE); + m_pPlayer->move(PM_BACKWARD, FALSE); } void GameData::ccmd_left_on() { - m_pPlayer->Move(PM_LEFT, TRUE); + m_pPlayer->move(PM_LEFT, TRUE); } void GameData::ccmd_left_off() { - m_pPlayer->Move(PM_LEFT, FALSE); + m_pPlayer->move(PM_LEFT, FALSE); } void GameData::ccmd_right_on() { - m_pPlayer->Move(PM_RIGHT, TRUE); + m_pPlayer->move(PM_RIGHT, TRUE); } void GameData::ccmd_right_off() { - m_pPlayer->Move(PM_RIGHT, FALSE); + m_pPlayer->move(PM_RIGHT, FALSE); } void GameData::ccmd_boost_on() { - m_pPlayer->Move(PM_RUN, TRUE); + m_pPlayer->move(PM_RUN, TRUE); } void GameData::ccmd_boost_off() { - m_pPlayer->Move(PM_RUN, FALSE); + m_pPlayer->move(PM_RUN, FALSE); } void GameData::ccmd_crouch_on() { - m_pPlayer->Move(PM_CROUCH, TRUE); + m_pPlayer->move(PM_CROUCH, TRUE); } void GameData::ccmd_crouch_off() { - m_pPlayer->Move(PM_CROUCH, FALSE); + m_pPlayer->move(PM_CROUCH, FALSE); } void GameData::ccmd_crawl_on() { - m_pPlayer->Move(PM_CRAWL, TRUE); + m_pPlayer->move(PM_CRAWL, TRUE); } void GameData::ccmd_crawl_off() { - m_pPlayer->Move(PM_CRAWL, FALSE); + m_pPlayer->move(PM_CRAWL, FALSE); } void GameData::ccmd_jump_on() { - m_pPlayer->Move(PM_JUMP, TRUE); + m_pPlayer->move(PM_JUMP, TRUE); } void GameData::ccmd_jump_off() { - m_pPlayer->Move(PM_JUMP, FALSE); + m_pPlayer->move(PM_JUMP, FALSE); } void GameData::ccmd_attack_on() { - m_pPlayer->Attack(TRUE); + m_pPlayer->attack(TRUE); } void GameData::ccmd_attack_off() { - m_pPlayer->Attack(FALSE); + m_pPlayer->attack(FALSE); } void GameData::ccmd_attack2_on() { - m_pPlayer->Attack2(TRUE); + m_pPlayer->attack2(TRUE); } void GameData::ccmd_attack2_off() { - m_pPlayer->Attack2(FALSE); + m_pPlayer->attack2(FALSE); } void GameData::ccmd_spawn() { Core_0ConsoleExecCmd("cl_mode_editor 0"); - m_pPlayer->Spawn(); + m_pPlayer->spawn(); } void GameData::ccmd_observe() { - m_pPlayer->Observe(); + m_pPlayer->observe(); } void GameData::ccmd_reload() { - m_pPlayer->Reload(); + m_pPlayer->reload(); } void GameData::ccmd_toggleflashlight() { - m_pPlayer->ToggleFlashlight(); + m_pPlayer->toggleFlashlight(); } void GameData::ccmd_switch_firemode() diff --git a/source/game/GameData.h b/source/game/GameData.h index de7a4ada20a11e8013dfb89a00d4eafc72dbcdf7..4f557c62427944ca0b79c5fff7ae756c2e3575e8 100644 --- a/source/game/GameData.h +++ b/source/game/GameData.h @@ -2,7 +2,7 @@ #define _GameData_H_ -#include "SXplayer.h" +#include "Player.h" #include "crosshair.h" #include <mtllight/sxmtllight.h> @@ -13,16 +13,16 @@ public: ~GameData(); - static SXplayer * m_pPlayer; - static SXpointCamera * m_pActiveCamera; - static EntityManager * m_pMgr; + static CPlayer * m_pPlayer; + static CPointCamera * m_pActiveCamera; + static CEntityManager * m_pMgr; - Crosshair * m_pCrosshair; + CCrosshair * m_pCrosshair; - void Update(); - void Render(); - void RenderHUD(); - void Sync(); + void update(); + void render(); + void renderHUD(); + void sync(); void playFootstepSound(MTLTYPE_PHYSIC mtl_type, const float3 &f3Pos); diff --git a/source/game/LightDirectional.cpp b/source/game/LightDirectional.cpp index 0fbdb850bcc553fa9ff202b5aef9df9c829e752b..3bc2bfe14f1ead249392ddb28bb29818dfe714a9 100644 --- a/source/game/LightDirectional.cpp +++ b/source/game/LightDirectional.cpp @@ -31,7 +31,7 @@ END_PROPTABLE() REGISTER_ENTITY(CLightDirectional, light_directional); -CLightDirectional::CLightDirectional(EntityManager *pMgr) : +CLightDirectional::CLightDirectional(CEntityManager *pMgr) : BaseClass(pMgr) { m_vColor = float3(1, 1, 1); @@ -61,9 +61,9 @@ void CLightDirectional::toggleEnable() SML_LigthsSetEnable(m_idLight, m_isEnable); } -void CLightDirectional::OnSync() +void CLightDirectional::onSync() { - BaseClass::OnSync(); + BaseClass::onSync(); if (SML_LigthsGetEnable(m_idLight) != m_isEnable) SML_LigthsSetEnable(m_idLight, m_isEnable); diff --git a/source/game/LightDirectional.h b/source/game/LightDirectional.h index 362831664b652d0f17daa896011b9aa8129310bd..a40201e112b0dd82f8505817b5e6ea59a00ec454 100644 --- a/source/game/LightDirectional.h +++ b/source/game/LightDirectional.h @@ -12,14 +12,14 @@ See the license in LICENSE #ifndef __LIGHTDIRECTIONAL_H #define __LIGHTDIRECTIONAL_H -#include "SXpointEntity.h" +#include "PointEntity.h" /*! Направленный свет \ingroup clight */ -class CLightDirectional: public SXpointEntity +class CLightDirectional: public CPointEntity { - DECLARE_CLASS(CLightDirectional, SXpointEntity); + DECLARE_CLASS(CLightDirectional, CPointEntity); DECLARE_PROPTABLE(); public: DECLARE_CONSTRUCTOR(); @@ -50,7 +50,7 @@ public: protected: - void OnSync(); + void onSync(); ID m_idLight; diff --git a/source/game/LightPoint.cpp b/source/game/LightPoint.cpp index a5ca368ed6a870c738989e26246d6d878f5c4aa8..6bd55bbaaad228dcbced069163a78f3fcd2385f5 100644 --- a/source/game/LightPoint.cpp +++ b/source/game/LightPoint.cpp @@ -38,7 +38,7 @@ END_PROPTABLE() REGISTER_ENTITY(CLightPoint, light_point); -CLightPoint::CLightPoint(EntityManager * pMgr) : +CLightPoint::CLightPoint(CEntityManager * pMgr) : BaseClass(pMgr) { m_vColor = float3(1, 1, 1); @@ -59,9 +59,9 @@ void CLightPoint::toggleEnable() SML_LigthsSetEnable(m_idLight, m_isEnable); } -void CLightPoint::OnSync() +void CLightPoint::onSync() { - BaseClass::OnSync(); + BaseClass::onSync(); if (SML_LigthsGetEnable(m_idLight) != m_isEnable) SML_LigthsSetEnable(m_idLight, m_isEnable); diff --git a/source/game/LightPoint.h b/source/game/LightPoint.h index ed0a04c962fb7f108f8828d033c21f867e443702..ed7ecd223a62b9972cb8a4ee7c57455bb1f0478e 100644 --- a/source/game/LightPoint.h +++ b/source/game/LightPoint.h @@ -12,16 +12,16 @@ See the license in LICENSE #ifndef __LIGHTPOINT_H #define __LIGHTPOINT_H -#include "SXpointEntity.h" +#include "PointEntity.h" #define LIGHT_INITIALLY_DARK 0x00010000 /*! Точечный источник света \ingroup clight */ -class CLightPoint : public SXpointEntity +class CLightPoint : public CPointEntity { - DECLARE_CLASS(CLightPoint, SXpointEntity); + DECLARE_CLASS(CLightPoint, CPointEntity); DECLARE_PROPTABLE(); public: DECLARE_CONSTRUCTOR(); @@ -53,7 +53,7 @@ protected: int m_iShadowType; bool m_isEnable; - void OnSync(); + void onSync(); void turnOn(inputdata_t * pInputdata); void turnOff(inputdata_t * pInputdata); diff --git a/source/game/NPCBase.cpp b/source/game/NPCBase.cpp index 518dffa7e0b30dccea16186139647993a5b430dd..c2c35a64cc6effb3828f410d4f18d816af0c85d8 100644 --- a/source/game/NPCBase.cpp +++ b/source/game/NPCBase.cpp @@ -12,7 +12,7 @@ END_PROPTABLE() REGISTER_ENTITY_NOLISTING(CNPCBase, npc_base); -CNPCBase::CNPCBase(EntityManager * pMgr) : +CNPCBase::CNPCBase(CEntityManager * pMgr) : BaseClass(pMgr) { m_fHealth = 1.f; @@ -39,7 +39,7 @@ CNPCBase::~CNPCBase() } -void CNPCBase::InitPhysics() +void CNPCBase::initPhysics() { btTransform startTransform; startTransform.setIdentity(); @@ -62,7 +62,7 @@ void CNPCBase::InitPhysics() SXPhysics_GetDynWorld()->addAction(m_pCharacter); } -void CNPCBase::SetPos(const float3 &pos) +void CNPCBase::setPos(const float3 &pos) { float3 tpos = pos; m_idCurrAiQuad = SAIG_QuadGet(&tpos, true); @@ -72,51 +72,51 @@ void CNPCBase::SetPos(const float3 &pos) if (SAIG_QuadGetState(m_idCurrAiQuad) == AIQUAD_STATE_FREE) { SAIG_QuadSetState(m_idCurrAiQuad, AIQUAD_STATE_BUSY); - SAIG_QuadSetStateWho(m_idCurrAiQuad, this->GetId()); + SAIG_QuadSetStateWho(m_idCurrAiQuad, getId()); } else { - if (SAIG_QuadGetStateWho(m_idCurrAiQuad) != this->GetId()) + if (SAIG_QuadGetStateWho(m_idCurrAiQuad) != getId()) { ID idquad = SAIG_QuadGetNear(&(float3)m_vPosition, true, 2); if (idquad >= 0) { m_idCurrAiQuad = idquad; SAIG_QuadSetState(m_idCurrAiQuad, AIQUAD_STATE_BUSY); - SAIG_QuadSetStateWho(m_idCurrAiQuad, this->GetId()); + SAIG_QuadSetStateWho(m_idCurrAiQuad, getId()); SAIG_QuadGetPos(m_idCurrAiQuad, &tpos); tpos.y += 0.7f; - SetPos(tpos); + setPos(tpos); } } } } - BaseClass::SetPos(tpos); + BaseClass::setPos(tpos); m_pGhostObject->getWorldTransform().setOrigin(F3_BTVEC(tpos)); } -bool CNPCBase::SetKV(const char *name, const char *value) +bool CNPCBase::setKV(const char *name, const char *value) { - if (stricmp("origin", name) == 0) + if(stricmp("origin", name) == 0) { - propdata_t * field = GetField(name); + propdata_t * field = getField(name); if (!field) { return(false); } float3_t f3; - if (3 == sscanf(value, "%f %f %f", &f3.x, &f3.y, &f3.z)) + if(3 == sscanf(value, "%f %f %f", &f3.x, &f3.y, &f3.z)) { - SetPos(f3); + setPos(f3); return true; } else return false; } - return BaseClass::SetKV(name, value); + return BaseClass::setKV(name, value); } ID CNPCBase::getAIQuad() @@ -142,14 +142,14 @@ bool CNPCBase::pathFind(ID endq) return false; } -void CNPCBase::OnSync() +void CNPCBase::onSync() { - BaseClass::OnSync(); + BaseClass::onSync(); btTransform trans; trans = m_pGhostObject->getWorldTransform(); - m_vPosition = (float3)(float3(trans.getOrigin().x(), trans.getOrigin().y()-0.9, trans.getOrigin().z())); + m_vPosition = (float3)(float3(trans.getOrigin().x(), trans.getOrigin().y()-0.9f, trans.getOrigin().z())); if (m_fHealth <= 0.f) return; @@ -277,7 +277,7 @@ void CNPCBase::pathWalk() } //если следующий квад аи сетки несвободен и занят не текущим нпс - if (SAIG_QuadGetState(m_aPathQuads[m_idCurrQuaidInPath]) != AIQUAD_STATE_FREE && SAIG_QuadGetStateWho(m_aPathQuads[m_idCurrQuaidInPath]) != GetId()) + if (SAIG_QuadGetState(m_aPathQuads[m_idCurrQuaidInPath]) != AIQUAD_STATE_FREE && SAIG_QuadGetStateWho(m_aPathQuads[m_idCurrQuaidInPath]) != getId()) { //значит он преградил путь и текущий нпс сбился с пути m_statePath = NPC_STATE_PATH_LOST; @@ -287,7 +287,7 @@ void CNPCBase::pathWalk() //занимаем следующий квад аи сетки за текущим нпс SAIG_QuadSetState(m_aPathQuads[m_idCurrQuaidInPath], AIQUAD_STATE_TEMPBUSY); - SAIG_QuadSetStateWho(m_aPathQuads[m_idCurrQuaidInPath], GetId()); + SAIG_QuadSetStateWho(m_aPathQuads[m_idCurrQuaidInPath], getId()); SAIG_QuadGetPos(m_aPathQuads[m_idCurrQuaidInPath], &m_vPosQuadInPathNext); @@ -346,7 +346,7 @@ void CNPCBase::pathWalk() void CNPCBase::orientAtPoint(const float3 * pos, DWORD ttime) { - float3 curr_pos = GetPos(); + float3 curr_pos = getPos(); curr_pos.y = 0; float3 poscam = float3(pos->x, 0, pos->z); float3 dircam = poscam - curr_pos; @@ -376,7 +376,7 @@ void CNPCBase::orientAtPoint(const float3 * pos, DWORD ttime) m_fAngleYNext = angle; m_ulTimeAllRot = 0; m_ulTimeRot = 0; - SetOrient(SMQuaternion(angle, 'y')); + setOrient(SMQuaternion(angle, 'y')); } } @@ -388,7 +388,7 @@ void CNPCBase::updateOrientLerp() int iTimeDelta = Core_RIntGet(G_RI_INT_TIME_DELTA); m_ulTimeAllRot += iTimeDelta; float fCurrAngle = lerpf(m_fAngleYLast, m_fAngleYNext, saturatef(float(m_ulTimeAllRot) / float(m_ulTimeRot))); - SetOrient(SMQuaternion(fCurrAngle, 'y')); + setOrient(SMQuaternion(fCurrAngle, 'y')); if (m_ulTimeAllRot >= m_ulTimeRot) { diff --git a/source/game/NPCBase.h b/source/game/NPCBase.h index 20196b0bb30d3cbe46f5e02539f4b5de5b79f298..5697f8d509e66d0aaf191a7f745bf2d442fdac5f 100644 --- a/source/game/NPCBase.h +++ b/source/game/NPCBase.h @@ -15,7 +15,7 @@ See the license in LICENSE #ifndef __NPCBASE_H_ #define __NPCBASE_H_ -#include "SXbaseAnimating.h" +#include "BaseAnimating.h" #include <aigrid/sxaigrid.h> //! базовое направление для нпс @@ -57,28 +57,28 @@ enum NPC_STATE_PATH }; //! Базовый класс npc -class CNPCBase: public SXbaseAnimating +class CNPCBase: public CBaseAnimating { - DECLARE_CLASS(CNPCBase, SXbaseAnimating); + DECLARE_CLASS(CNPCBase, CBaseAnimating); DECLARE_PROPTABLE(); public: SX_ALIGNED_OP_MEM - CNPCBase(EntityManager * pMgr); + CNPCBase(CEntityManager * pMgr); ~CNPCBase(); ID getAIQuad(); //!< id квада аи сетки на котором стоит нпс //! установка позиции сопровождается ориентацией на аи сетке - void SetPos(const float3 &pos); - bool SetKV(const char *name, const char *value); - void OnSync(); + void setPos(const float3 &pos); + bool setKV(const char *name, const char *value); + void onSync(); protected: - virtual void InitPhysics(); + virtual void initPhysics(); btPairCachingGhostObject * m_pGhostObject; btKinematicCharacterController * m_pCharacter; diff --git a/source/game/NPCZombie.cpp b/source/game/NPCZombie.cpp index f87dfa18ec8bdb45012508c88e0e6b280ddfc935..8cbd269b712af541fa30843f205fb83f2ef6531d 100644 --- a/source/game/NPCZombie.cpp +++ b/source/game/NPCZombie.cpp @@ -13,7 +13,7 @@ END_PROPTABLE() REGISTER_ENTITY_NOLISTING(CNPCZombie, npc_zombie); -CNPCZombie::CNPCZombie(EntityManager * pMgr) : +CNPCZombie::CNPCZombie(CEntityManager * pMgr) : BaseClass(pMgr) { m_fSpeedWalk = 0.07f; @@ -29,19 +29,19 @@ CNPCZombie::~CNPCZombie() } -void CNPCZombie::OnSync() +void CNPCZombie::onSync() { - BaseClass::OnSync(); + BaseClass::onSync(); - SSCore_SndPosWSet(m_idSndIdle,&GetPos()); - SSCore_SndPosWSet(m_idSndIdle2, &GetPos()); - SSCore_SndPosWSet(m_idSndDeath, &GetPos()); + SSCore_SndPosWSet(m_idSndIdle, &getPos()); + SSCore_SndPosWSet(m_idSndIdle2, &getPos()); + SSCore_SndPosWSet(m_idSndDeath, &getPos()); //если здоровье меньше нуля if (m_fHealth < 0.0f) { //то воспроизводим анимацию смерти - this->PlayAnimation("fake_death0"); + playAnimation("fake_death0"); SSCore_SndPlay(m_idSndDeath); m_fHealth = 0.f; //обнуляем здоровье говоря что больше проигрывать анимацию не надо return; @@ -85,25 +85,25 @@ void CNPCZombie::randWalk() if (pathFind(SAIG_QuadGetNear(&rndpos,true))) { m_idCurrQuaidInPath = 0; - m_vLastPathPos = GetPos(); + m_vLastPathPos = getPos(); } return; } - if (m_stateMove == NPC_STATE_MOVE_IDLE_START && !this->PlayingAnimations("idle0")) + if (m_stateMove == NPC_STATE_MOVE_IDLE_START && !playingAnimations("idle0")) { m_stateMove = NPC_STATE_MOVE_IDLE; - this->PlayAnimation("idle0"); + playAnimation("idle0"); SSCore_SndPlay(m_idSndIdle); } - else if (m_stateMove == NPC_STATE_MOVE_IDLE && !this->PlayingAnimations("idle0")) + else if (m_stateMove == NPC_STATE_MOVE_IDLE && !playingAnimations("idle0")) m_stateMove = NPC_STATE_MOVE_WALK; else if (m_stateMove != NPC_STATE_MOVE_IDLE) { - if (!this->PlayingAnimations("walk0")) + if (!playingAnimations("walk0")) { - this->PlayAnimation("walk0"); + playAnimation("walk0"); SSCore_SndPlay(m_idSndIdle2); } diff --git a/source/game/NPCZombie.h b/source/game/NPCZombie.h index 3b29039b917fdd4a6cdb8eabbfa000d49ec44bb3..6e2fda4a6240a79b1a845300445a3449726ff73f 100644 --- a/source/game/NPCZombie.h +++ b/source/game/NPCZombie.h @@ -24,14 +24,14 @@ class CNPCZombie : public CNPCBase DECLARE_PROPTABLE(); public: - CNPCZombie(EntityManager * pMgr); + CNPCZombie(CEntityManager * pMgr); ~CNPCZombie(); - void OnSync(); + void onSync(); protected: - //virtual void InitPhysics(); + //virtual void initPhysics(); void randWalk(); ID m_idSndIdle; diff --git a/source/game/PathCorner.cpp b/source/game/PathCorner.cpp index f0a7a742616d1d542efb6e446bfeb98c594693cc..04127ad6c146cf24fa95bcc47111ed5b1268b7ed 100644 --- a/source/game/PathCorner.cpp +++ b/source/game/PathCorner.cpp @@ -4,7 +4,7 @@ Точка для формирования пути для #func_train */ -BEGIN_PROPTABLE(PathCorner) +BEGIN_PROPTABLE(CPathCorner) //! Тип сглаживания пути DEFINE_FIELD_INT(m_type, 0, "type", "Type", EDITOR_COMBOBOX) COMBO_OPTION("Corner", "0") //!< Нет сглаживания @@ -19,9 +19,9 @@ BEGIN_PROPTABLE(PathCorner) END_PROPTABLE() -REGISTER_ENTITY(PathCorner, path_corner); +REGISTER_ENTITY(CPathCorner, path_corner); -PathCorner::PathCorner(EntityManager * pMgr): +CPathCorner::CPathCorner(CEntityManager * pMgr): BaseClass(pMgr), m_type(PCT_CORNER), m_fNewSpeed(0.0f), @@ -31,13 +31,13 @@ PathCorner::PathCorner(EntityManager * pMgr): { } -void PathCorner::OnPostLoad() +void CPathCorner::onPostLoad() { - BaseClass::OnPostLoad(); + BaseClass::onPostLoad(); if(m_pNextStop) { - ((PathCorner*)m_pNextStop)->m_pPrevStop = this; + ((CPathCorner*)m_pNextStop)->m_pPrevStop = this; } if(!m_pPrevStop) @@ -46,10 +46,10 @@ void PathCorner::OnPostLoad() } } -void PathCorner::RecalcPath(float t) +void CPathCorner::RecalcPath(float t) { - PathCorner * pNext; - PathCorner * pCur = this; + CPathCorner * pNext; + CPathCorner * pCur = this; if(m_pPrevStop) { while(pCur->m_pPrevStop) @@ -64,7 +64,7 @@ void PathCorner::RecalcPath(float t) { pNext = pCur->m_pNextStop; - float3 vec = pNext->GetPos() - pCur->GetPos(); + float3 vec = pNext->getPos() - pCur->getPos(); pCur->m_fLength = SMVector3Length(vec); //pCur->m_fLength = 1.0f; pCur->m_fH = (float3)(vec / pCur->m_fLength); @@ -131,18 +131,18 @@ void PathCorner::RecalcPath(float t) int a = 0; } -float PathCorner::GetLength() +float CPathCorner::GetLength() { return(m_fLength); } -float3 PathCorner::GetPoint(float dist) +float3 CPathCorner::getPoint(float dist) { if(dist < 0) { if(m_pPrevStop) { - return(m_pPrevStop->GetPoint(dist + m_pPrevStop->m_fLength)); + return(m_pPrevStop->getPoint(dist + m_pPrevStop->m_fLength)); } else { @@ -153,7 +153,7 @@ float3 PathCorner::GetPoint(float dist) { if(m_pNextStop) { - return(m_pNextStop->GetPoint(dist - m_fLength)); + return(m_pNextStop->getPoint(dist - m_fLength)); } else { @@ -164,13 +164,13 @@ float3 PathCorner::GetPoint(float dist) return(m_fCoeffsA + m_fCoeffsB * dist + m_fCoeffsC * dist * dist + m_fCoeffsD * dist * dist * dist); } -SMQuaternion PathCorner::GetRot(float dist) +SMQuaternion CPathCorner::getRot(float dist) { if(dist < 0) { if(m_pPrevStop) { - return(m_pPrevStop->GetRot(dist + m_pPrevStop->m_fLength)); + return(m_pPrevStop->getRot(dist + m_pPrevStop->m_fLength)); } else { @@ -181,7 +181,7 @@ SMQuaternion PathCorner::GetRot(float dist) { if(m_pNextStop) { - return(m_pNextStop->GetRot(dist - m_fLength)); + return(m_pNextStop->getRot(dist - m_fLength)); } else { @@ -198,12 +198,12 @@ SMQuaternion PathCorner::GetRot(float dist) } } -PathCorner * PathCorner::GetNext() +CPathCorner * CPathCorner::GetNext() { return(m_pNextStop); } -PathCorner * PathCorner::GetPrev() +CPathCorner * CPathCorner::GetPrev() { return(m_pPrevStop); } diff --git a/source/game/PathCorner.h b/source/game/PathCorner.h index b32a5ef8ca9a63856b124f714efa615829386793..4841a8624d33421d3f4aefc4835155f3533f1dc1 100644 --- a/source/game/PathCorner.h +++ b/source/game/PathCorner.h @@ -13,10 +13,10 @@ See the license in LICENSE @{ */ -#ifndef _PathCorner_H_ -#define _PathCorner_H_ +#ifndef _CPathCorner_H_ +#define _CPathCorner_H_ -#include "SXpointEntity.h" +#include "PointEntity.h" //! тип сглаживания пути enum PATH_CORNER_TYPE @@ -25,30 +25,30 @@ enum PATH_CORNER_TYPE PCT_SPLINE = 1 //!< сплайном }; -//! Точка пути для #FuncTrain -class PathCorner: public SXpointEntity +//! Точка пути для #CFuncTrain +class CPathCorner: public CPointEntity { - DECLARE_CLASS(PathCorner, SXpointEntity); + DECLARE_CLASS(CPathCorner, CPointEntity); DECLARE_PROPTABLE(); public: - PathCorner(EntityManager * pMgr); + CPathCorner(CEntityManager * pMgr); //! получает координаты точки на пути на расстоянии dist от начала - float3 GetPoint(float dist); + float3 getPoint(float dist); //! получает вращение точки на пути на расстоянии dist от начала - SMQuaternion GetRot(float dist); + SMQuaternion getRot(float dist); //! получает длину пути float GetLength(); //! Получает следующую точку на пути - PathCorner * GetNext(); + CPathCorner * GetNext(); //! Получает предыдущую точку на пути - PathCorner * GetPrev(); + CPathCorner * GetPrev(); protected: //! Пересчитывает путь void RecalcPath(float t); - void OnPostLoad(); + void onPostLoad(); //! Тип сглаживания int m_type; @@ -71,9 +71,9 @@ protected: //! @} //! Следующая точка - PathCorner * m_pNextStop; + CPathCorner * m_pNextStop; //! Предыдущая точка - PathCorner * m_pPrevStop; + CPathCorner * m_pPrevStop; }; #endif diff --git a/source/game/SXplayer.cpp b/source/game/Player.cpp similarity index 57% rename from source/game/SXplayer.cpp rename to source/game/Player.cpp index 40a8d7bc9c480829c41e6c45814b38223a342252..295d999ff881f7fda6224cb767b37aaef72520ba 100644 --- a/source/game/SXplayer.cpp +++ b/source/game/Player.cpp @@ -1,8 +1,8 @@ #include <input/sxinput.h> #include <mtllight/sxmtllight.h> -#include "SXplayer.h" +#include "Player.h" #include "LightDirectional.h" -#include "SXbaseTool.h" +#include "BaseTool.h" #include <aigrid/sxaigrid.h> #include "GameData.h" @@ -11,139 +11,48 @@ Объект игрока в мире */ -BEGIN_PROPTABLE(SXplayer) +BEGIN_PROPTABLE(CPlayer) // empty END_PROPTABLE() -REGISTER_ENTITY(SXplayer, player); +REGISTER_ENTITY(CPlayer, player); -class btKinematicClosestNotMeRayResultCallback: public btCollisionWorld::ClosestRayResultCallback -{ -public: - btKinematicClosestNotMeRayResultCallback(btCollisionObject* me, const btVector3& rayFromWorld, const btVector3& rayToWorld): btCollisionWorld::ClosestRayResultCallback(rayFromWorld, rayToWorld) - { - m_me = me; - m_shapeInfo = {-1, -1}; - } - - virtual btScalar addSingleResult(btCollisionWorld::LocalRayResult& rayResult, bool normalInWorldSpace) - { - if(rayResult.m_collisionObject == m_me) - return 1.0; - if(rayResult.m_localShapeInfo) - { - m_shapeInfo = *rayResult.m_localShapeInfo; - } - return ClosestRayResultCallback::addSingleResult(rayResult, normalInWorldSpace); - } - btCollisionWorld::LocalShapeInfo m_shapeInfo; -protected: - btCollisionObject* m_me; -}; - -SXplayer::SXplayer(EntityManager * pMgr): +CPlayer::CPlayer(CEntityManager * pMgr): BaseClass(pMgr), - m_uMoveDir(PM_OBSERVER), - m_vPitchYawRoll(float3_t(0, 0, 0)), m_canJump(true), m_fViewbobStep(0.0f), m_fViewbobY(0.0f), m_fViewbobStrafe(float3_t(0, 0, 0)), m_vWpnShakeAngles(float3_t(0.0f, 0.0f, 0.0f)), - m_pActiveTool(NULL), m_iDSM(DSM_NONE) { - m_pCamera = (SXpointCamera*)CREATE_ENTITY("point_camera", pMgr); - m_pCamera->SetParent(this); - - m_iUpdIval = SET_INTERVAL(UpdateInput, 0); - - btTransform startTransform; - startTransform.setIdentity(); - startTransform.setOrigin(F3_BTVEC(m_vPosition)); - //startTransform.setOrigin(btVector3(0, 12, 10)); - - m_pGhostObject = new btPairCachingGhostObject(); - m_pGhostObject->setWorldTransform(startTransform); - //sweepBP->getOverlappingPairCache()->setInternalGhostPairCallback(new btGhostPairCallback()); - m_pCollideShape = new btCapsuleShape(0.4f, 1.0f); - m_pGhostObject->setCollisionShape(m_pCollideShape); - m_pGhostObject->setCollisionFlags(btCollisionObject::CF_CHARACTER_OBJECT); - m_pGhostObject->setUserPointer(this); - - btScalar stepHeight = 0.4f; - m_pCharacter = new btKinematicCharacterController(m_pGhostObject, (btConvexShape*)m_pCollideShape, stepHeight, btVector3(0.0f, 1.0f, 0.0f)); - m_pCharacter->setMaxJumpHeight(0.60f); - m_pCharacter->setJumpSpeed(3.50f); - //m_pCharacter->setJumpSpeed(3.5f); - m_pCharacter->setGravity(btVector3(0, -10.0f, 0)); - //m_pCharacter->setGravity(1.0f); - m_pCharacter->setFallSpeed(300.0f); - //m_pCharacter->setFallSpeed(30.0f); - - SXPhysics_GetDynWorld()->addCollisionObject(m_pGhostObject, btBroadphaseProxy::CharacterFilter, btBroadphaseProxy::AllFilter & ~btBroadphaseProxy::DebrisFilter); - - m_pGhostObject->setCollisionFlags(m_pGhostObject->getCollisionFlags() | btCollisionObject::CF_DISABLE_VISUALIZE_OBJECT); - - SXPhysics_GetDynWorld()->addAction(m_pCharacter); - - - -/* - m_pActiveTool = (SXbaseTool*)CREATE_ENTITY("weapon_ak74", m_pMgr); - m_pActiveTool->SetOwner(this); - m_pActiveTool->AttachHands(); - m_pActiveTool->PlayAnimation("idle"); - m_pActiveTool->SetPos(GetPos() + float3(1.0f, 0.0f, 1.0f)); - m_pActiveTool->SetOrient(GetOrient()); - m_pActiveTool->SetParent(this); - */ - - - m_flashlight = (CLightDirectional*)CREATE_ENTITY("light_directional", m_pMgr); - //m_flashlight->SetPos(GetPos() + float3(0.f, 0.1f, 0.f)); - m_flashlight->SetPos(GetPos() + float3(0.f, 0.2f, 0.1f)); - m_flashlight->SetOrient(GetOrient() * SMQuaternion(SM_PIDIV2, 'x')); - m_flashlight->SetParent(this); - m_flashlight->setDist(20.f); - m_flashlight->setAngle(SMToRadian(60)); - m_flashlight->setColor(float3(3.5, 3.5, 3.5)); - //m_flashlight->setShadowType(-1); - m_flashlight->setShadowType(1); + m_pCamera = (CPointCamera*)CREATE_ENTITY("point_camera", pMgr); + m_pCamera->setParent(this); + + m_iUpdIval = SET_INTERVAL(updateInput, 0); + + + m_pActiveTool = (CBaseTool*)CREATE_ENTITY("weapon_ak74", m_pMgr); + m_pActiveTool->setOwner(this); + m_pActiveTool->attachHands(); + m_pActiveTool->playAnimation("idle"); + m_pActiveTool->setPos(getPos() + float3(1.0f, 0.0f, 1.0f)); + m_pActiveTool->setOrient(getOrient()); + m_pActiveTool->setParent(this); m_idQuadCurr = -1; - m_pCrosshair = new Crosshair(); + m_pCrosshair = new CCrosshair(); } -SXplayer::~SXplayer() +CPlayer::~CPlayer() { mem_delete(m_pCrosshair); CLEAR_INTERVAL(m_iUpdIval); REMOVE_ENTITY(m_pCamera); } -void SXplayer::playFootstepsSound() -{ - if(!(m_uMoveDir & PM_OBSERVER)) - { - if(onGround()) - { - float3 start = GetPos(), - end = start + float3(0.0f, -2.0f, 0.0f); - btKinematicClosestNotMeRayResultCallback cb(m_pGhostObject, F3_BTVEC(start), F3_BTVEC(end)); - SXPhysics_GetDynWorld()->rayTest(F3_BTVEC(start), F3_BTVEC(end), cb); - - if(cb.hasHit() && cb.m_shapeInfo.m_shapePart == 0 && cb.m_shapeInfo.m_triangleIndex >= 0) - { - MTLTYPE_PHYSIC type = (MTLTYPE_PHYSIC)SXPhysics_GetMtlType(cb.m_collisionObject, &cb.m_shapeInfo); - g_pGameData->playFootstepSound(type, BTVEC_F3(cb.m_hitPointWorld)); - } - } - } -} - -void SXplayer::UpdateInput(float dt) +void CPlayer::updateInput(float dt) { int x, y; static const float * sense = GET_PCVAR_FLOAT("cl_mousesense"); @@ -166,7 +75,7 @@ void SXplayer::UpdateInput(float dt) float dy = (float)y * *sense * 10.0f /* / dt */; if(m_iDSM && m_pActiveTool) { - m_pActiveTool->DbgMove(m_iDSM, dy); + m_pActiveTool->dbgMove(m_iDSM, dy); if(m_iDSM == DSM_PRINT) { m_iDSM = DSM_NONE; @@ -350,12 +259,12 @@ void SXplayer::UpdateInput(float dt) #endif } -Crosshair * SXplayer::GetCrosshair() +CCrosshair * CPlayer::getCrosshair() { return(m_pCrosshair); } -void SXplayer::Move(UINT dir, bool start) +void CPlayer::move(UINT dir, bool start) { if(start) { @@ -367,14 +276,14 @@ void SXplayer::Move(UINT dir, bool start) } } -SXpointCamera * SXplayer::GetCamera() +CPointCamera * CPlayer::getCamera() { return(m_pCamera); } -void SXplayer::OnSync() +void CPlayer::onSync() { - BaseClass::OnSync(); + BaseClass::onSync(); if(m_uMoveDir & PM_OBSERVER) { return; @@ -392,7 +301,7 @@ void SXplayer::OnSync() { //занимаем этот квад SAIG_QuadSetState(idq, AIQUAD_STATE_TEMPBUSY); - SAIG_QuadSetStateWho(idq, GetId()); + SAIG_QuadSetStateWho(idq, getId()); } //если предыдущий и текущие квады не идентичны @@ -406,23 +315,17 @@ void SXplayer::OnSync() } } -float3 SXplayer::GetWeaponOrigin() -{ - //@TODO: Implement me - return(m_vPosition); -} - -void SXplayer::Spawn() +void CPlayer::spawn() { - SXbaseEntity * pEnt = NULL; - while((pEnt = m_pMgr->FindEntityByClass("info_player_spawn", pEnt))) + CBaseEntity * pEnt = NULL; + while((pEnt = m_pMgr->findEntityByClass("info_player_spawn", pEnt))) { //if(CanSpawn(pEnt)) { - SetPos(pEnt->GetPos()); - SetOrient(pEnt->GetOrient()); + setPos(pEnt->getPos()); + setOrient(pEnt->getOrient()); m_uMoveDir &= ~PM_OBSERVER; - m_pCrosshair->Enable(); + m_pCrosshair->enable(); return; } } @@ -430,67 +333,13 @@ void SXplayer::Spawn() printf(COLOR_RED "Cannot find valid spawnpoint\n" COLOR_RESET); } -void SXplayer::SetPos(const float3 & pos) +void CPlayer::setPos(const float3 & pos) { - BaseClass::SetPos(pos); + BaseClass::setPos(pos); m_pGhostObject->getWorldTransform().setOrigin(F3_BTVEC(pos)); } -void SXplayer::Attack(BOOL state) -{ - if(m_uMoveDir & PM_OBSERVER) - { - return; - } - if(m_pActiveTool) - { - m_pActiveTool->PrimaryAction(state); - } -} - -void SXplayer::Attack2(BOOL state) -{ - if(m_uMoveDir & PM_OBSERVER) - { - return; - } - if(m_pActiveTool) - { - m_pActiveTool->SecondaryAction(state); - } -} - -void SXplayer::Reload() -{ - if(m_uMoveDir & PM_OBSERVER) - { - return; - } - if(m_pActiveTool) - { - m_pActiveTool->Reload(); - } -} - -void SXplayer::ToggleFlashlight() -{ - m_flashlight->toggleEnable(); -} - -void SXplayer::nextFireMode() -{ - if(m_uMoveDir & PM_OBSERVER) - { - return; - } - if(m_pActiveTool) - { - //@FIXME: Add correct call - //m_pActiveTool->nextFireMode(); - } -} - -void SXplayer::_ccmd_slot_on(int argc, const char ** argv) +void CPlayer::_ccmd_slot_on(int argc, const char ** argv) { if(argc != 2) { @@ -520,17 +369,21 @@ void SXplayer::_ccmd_slot_on(int argc, const char ** argv) } } -void SXplayer::_ccmd_slot_off() +void CPlayer::_ccmd_slot_off() { m_iDSM = DSM_NONE; } -float3_t & SXplayer::GetWeaponDeltaAngles() +float3_t & CPlayer::getWeaponDeltaAngles() { return(m_vWpnShakeAngles); } -bool SXplayer::onGround() +void CPlayer::updateSpread(float dt) { - return(m_pCharacter->onGround()); + BaseClass::updateSpread(dt); + if(m_pCrosshair) + { + m_pCrosshair->setSize(getCurrentSpread() * 0.1f); + } } diff --git a/source/game/Player.h b/source/game/Player.h new file mode 100644 index 0000000000000000000000000000000000000000..4491cb904368ef20dc46dedd7aed1659edb08cf8 --- /dev/null +++ b/source/game/Player.h @@ -0,0 +1,97 @@ + +/****************************************************** +Copyright © Vitaliy Buturlin, Evgeny Danilovich, 2017 +See the license in LICENSE +******************************************************/ + +/*! +\file +Класс игрока +*/ + +/*! \ingroup cbaseanimating +@{ +*/ + +#ifndef _CPlayer_H_ +#define _CPlayer_H_ + +#include "BaseCharacter.h" +#include "PointCamera.h" +#include "crosshair.h" + +//! Класс игрока \ingroup cbaseanimating +class CPlayer: public CBaseCharacter +{ + DECLARE_CLASS(CPlayer, CBaseCharacter); + DECLARE_PROPTABLE(); +public: + CPlayer(CEntityManager * pMgr); + ~CPlayer(); + + //! Возвращает камеру игрока + CPointCamera * getCamera(); + + //! Переключает в режим наблюдателя + void observe() + { + m_uMoveDir |= PM_OBSERVER; + m_pCrosshair->enable(false); + } + //! Помещает игрока в мир + void spawn(); + + /*! Запускает/останавливает движение в заданном направлении + @param [in] dir направление движения из #PLAYER_MOVE + */ + void move(UINT dir, bool start); + + //! Обновляет инпут от игрока + virtual void updateInput(float dt); + + void onSync(); + + //! Устанавливает положение в мире + void setPos(const float3 & pos); + + //! Получает смещения для задержки движения модели оружия при вращении игрока + float3_t & getWeaponDeltaAngles(); + + //! Команды для подбора положения визуальной модели оружия на экране + void _ccmd_slot_on(int argc, const char ** argv); + void _ccmd_slot_off(); + + //! Получает объект перекрестия + CCrosshair * getCrosshair(); + +protected: + //! Камера + CPointCamera * m_pCamera; + + //! ID интервала обновления + ID m_iUpdIval; + + //! Может ли прыгать + bool m_canJump; + + //! Для качания камеры @{ + float m_fViewbobStep; + float m_fViewbobY; + float3_t m_fViewbobStrafe; + float3_t m_vWpnShakeAngles; + //! @} + + int m_iDSM; + + //! Перекрестие + CCrosshair * m_pCrosshair; + + ID m_idQuadCurr; //!< текущий квад аи сетки на котором стоит игрок + + //! Обновляет разброса значение + virtual void updateSpread(float dt); +}; + +#endif + +//! @} diff --git a/source/game/SXplayerSpawn.cpp b/source/game/PlayerSpawn.cpp similarity index 80% rename from source/game/SXplayerSpawn.cpp rename to source/game/PlayerSpawn.cpp index 19cf04d906a1789efd125d2981c711850f289a94..088b72a8a5eddc98cfa4b93161706d42a74fc7d4 100644 --- a/source/game/SXplayerSpawn.cpp +++ b/source/game/PlayerSpawn.cpp @@ -1,10 +1,10 @@ -#include "SXplayerSpawn.h" +#include "PlayerSpawn.h" /*! \skydocent info_player_spawn Камера */ -BEGIN_PROPTABLE(SXplayerSpawn) +BEGIN_PROPTABLE(CPlayerSpawn) /*! Команда игроков, для которой работает спавн. \note Только для многопользовательского режима */ @@ -17,4 +17,4 @@ BEGIN_PROPTABLE(SXplayerSpawn) END_PROPTABLE() -REGISTER_ENTITY(SXplayerSpawn, info_player_spawn); +REGISTER_ENTITY(CPlayerSpawn, info_player_spawn); diff --git a/source/game/SXplayerSpawn.h b/source/game/PlayerSpawn.h similarity index 71% rename from source/game/SXplayerSpawn.h rename to source/game/PlayerSpawn.h index 54754dc82944bcd84f94559e5e1956302e6f0d2c..1f8c484385aca3f5e1efdeecf9d6495872b12abe 100644 --- a/source/game/SXplayerSpawn.h +++ b/source/game/PlayerSpawn.h @@ -13,15 +13,15 @@ See the license in LICENSE @{ */ -#ifndef _SXplayerSpawn_H_ -#define _SXplayerSpawn_H_ +#ifndef _CPlayerSpawn_H_ +#define _CPlayerSpawn_H_ -#include "SXpointEntity.h" +#include "PointEntity.h" //! Точка респауна игрока -class SXplayerSpawn: public SXpointEntity +class CPlayerSpawn: public CPointEntity { - DECLARE_CLASS(SXplayerSpawn, SXpointEntity); + DECLARE_CLASS(CPlayerSpawn, CPointEntity); DECLARE_PROPTABLE(); public: DECLARE_TRIVIAL_CONSTRUCTOR(); diff --git a/source/game/SXpointCamera.cpp b/source/game/PointCamera.cpp similarity index 57% rename from source/game/SXpointCamera.cpp rename to source/game/PointCamera.cpp index 09456528ed3f0d9249fe636c22f217eb411e2e12..46a5c84181bba97a9a8381d4297ed6b0c6641ea9 100644 --- a/source/game/SXpointCamera.cpp +++ b/source/game/PointCamera.cpp @@ -1,16 +1,16 @@ -#include "SXpointCamera.h" +#include "PointCamera.h" /*! \skydocent point_camera Камера */ -BEGIN_PROPTABLE(SXpointCamera) +BEGIN_PROPTABLE(CPointCamera) // empty END_PROPTABLE() -REGISTER_ENTITY(SXpointCamera, point_camera); +REGISTER_ENTITY(CPointCamera, point_camera); -SXpointCamera::SXpointCamera(EntityManager * pMgr): +CPointCamera::CPointCamera(CEntityManager * pMgr): BaseClass(pMgr) { const float * r_default_fov = GET_PCVAR_FLOAT("r_default_fov"); @@ -18,19 +18,19 @@ SXpointCamera::SXpointCamera(EntityManager * pMgr): m_pSXC->SetFOV(SMToRadian(*r_default_fov)); } -SXpointCamera::~SXpointCamera() +CPointCamera::~CPointCamera() { mem_release(m_pSXC); } -ISXCamera * SXpointCamera::GetCamera() +ISXCamera * CPointCamera::getCamera() { return(m_pSXC); } -void SXpointCamera::OnSync() +void CPointCamera::onSync() { - BaseClass::OnSync(); + BaseClass::onSync(); m_pSXC->SetPosition(&(float3)m_vPosition); m_pSXC->SetOrientation(m_vOrientation); diff --git a/source/game/SXpointCamera.h b/source/game/PointCamera.h similarity index 65% rename from source/game/SXpointCamera.h rename to source/game/PointCamera.h index e6419c7c48b1d3b8623db0044c815c8301f221d2..c699dcf13e6ee3e7067a2924f96c3b4d95b71e25 100644 --- a/source/game/SXpointCamera.h +++ b/source/game/PointCamera.h @@ -13,29 +13,29 @@ See the license in LICENSE @{ */ -#ifndef _SXpointCamera_H_ -#define _SXpointCamera_H_ +#ifndef _CPointCamera_H_ +#define _CPointCamera_H_ #include <gcore/sxgcore.h> -#include "SXpointEntity.h" +#include "PointEntity.h" //! Класс камеры -class SXpointCamera: public SXpointEntity +class CPointCamera: public CPointEntity { - DECLARE_CLASS(SXpointCamera, SXpointEntity); + DECLARE_CLASS(CPointCamera, CPointEntity); DECLARE_PROPTABLE(); public: - SXpointCamera(EntityManager * pMgr); - ~SXpointCamera(); + CPointCamera(CEntityManager * pMgr); + ~CPointCamera(); //! Возвращает объект камеры из графической либы - ISXCamera * GetCamera(); + ISXCamera * getCamera(); protected: ISXCamera * m_pSXC; - void OnSync(); + void onSync(); }; #endif diff --git a/source/game/PointEntity.cpp b/source/game/PointEntity.cpp new file mode 100644 index 0000000000000000000000000000000000000000..59b384966d13e8b799c450a8fe618acde38928d9 --- /dev/null +++ b/source/game/PointEntity.cpp @@ -0,0 +1,11 @@ +#include "PointEntity.h" + +/*! \skydocent base_point +Базовый точечный объект +*/ + +BEGIN_PROPTABLE(CPointEntity) + // empty +END_PROPTABLE() + +REGISTER_ENTITY_NOLISTING(CPointEntity, base_point); diff --git a/source/game/SXpointEntity.h b/source/game/PointEntity.h similarity index 75% rename from source/game/SXpointEntity.h rename to source/game/PointEntity.h index cd8ddccbd9de524047e622cd8efa215a851276de..685e375bdedc8092dabdae557051c64500def7ab 100644 --- a/source/game/SXpointEntity.h +++ b/source/game/PointEntity.h @@ -16,15 +16,15 @@ See the license in LICENSE //! \defgroup clight Свет -#ifndef _SXpointEntity_H_ -#define _SXpointEntity_H_ +#ifndef _CPointEntity_H_ +#define _CPointEntity_H_ -#include "SXbaseEntity.h" +#include "BaseEntity.h" //! Класс точечного объекта -class SXpointEntity: public SXbaseEntity +class CPointEntity: public CBaseEntity { - DECLARE_CLASS(SXpointEntity, SXbaseEntity); + DECLARE_CLASS(CPointEntity, CBaseEntity); DECLARE_PROPTABLE(); public: DECLARE_TRIVIAL_CONSTRUCTOR(); diff --git a/source/game/Ragdoll.cpp b/source/game/Ragdoll.cpp index bf70d49b26e81c8f40b58b7bea0e09d10e15995b..e192f0280f1f49b0713cfe9f37577d472e7bd3b6 100644 --- a/source/game/Ragdoll.cpp +++ b/source/game/Ragdoll.cpp @@ -7,7 +7,7 @@ CRagdoll::CRagdoll(IAnimPlayer *pAnimPlayer) HITBOX_TYPE * phTypes; float3_t ** ppfData; int32_t * pDataLen; - pAnimPlayer->GetPhysData(&iShapeCount, &phTypes, &ppfData, &pDataLen); + pAnimPlayer->getPhysData(&iShapeCount, &phTypes, &ppfData, &pDataLen); */ enum JointType @@ -69,13 +69,13 @@ CRagdoll::CRagdoll(IAnimPlayer *pAnimPlayer) {"bip01_neck", 1, 0, JOINT_CONETWIST, float3_t(SM_PIDIV4, SM_PIDIV4, SM_PIDIV2)} }; btTransform offset; offset.setIdentity(); - offset.setOrigin(F3_BTVEC(pAnimPlayer->GetPos())); + offset.setOrigin(F3_BTVEC(pAnimPlayer->getPos())); m_shapes = new btCollisionShape*[m_iBodiesCount]; m_bodies = new btRigidBody*[m_iBodiesCount]; - m_pidBones = new ID[pAnimPlayer->GetBoneCount()]; - for(int i = 0, l = pAnimPlayer->GetBoneCount(); i < l; ++i) + m_pidBones = new ID[pAnimPlayer->getBoneCount()]; + for(int i = 0, l = pAnimPlayer->getBoneCount(); i < l; ++i) { m_pidBones[i] = -1; } @@ -84,7 +84,7 @@ CRagdoll::CRagdoll(IAnimPlayer *pAnimPlayer) { if(bones[i].szBone[0]) { - m_pidBones[pAnimPlayer->GetBone(bones[i].szBone)] = i; + m_pidBones[pAnimPlayer->getBone(bones[i].szBone)] = i; } m_shapes[i] = new btCapsuleShape(bones[i].fCapsRadius * 0.5f, (bones[i].fCapsLength + bones[i].fCapsRadius) * 0.5f); @@ -104,11 +104,11 @@ CRagdoll::CRagdoll(IAnimPlayer *pAnimPlayer) m_ppJoints = new btTypedConstraint*[m_iJointsCount]; /*const ModelHitbox * hb; - uint32_t iHitboxes = pAnimPlayer->GetHitboxCount(); - float fScale = pAnimPlayer->GetScale(); + uint32_t iHitboxes = pAnimPlayer->getHitboxCount(); + float fScale = pAnimPlayer->getScale(); for(uint32_t i = 0; i < iHitboxes; ++i) { - hb = pAnimPlayer->GetHitbox(i); + hb = pAnimPlayer->getHitbox(i); switch(hb->type) { case HT_BOX: @@ -156,12 +156,12 @@ CRagdoll::CRagdoll(IAnimPlayer *pAnimPlayer) } //m_bodies[1]->setAngularFactor(0.0f); //m_bodies[1]->setLinearFactor(btVector3(0.0f, 0.0f, 0.0f)); - //UINT bone = pAnimPlayer->GetBone("bip01_head"); + //UINT bone = pAnimPlayer->getBone("bip01_head"); { btTransform localA, localB; btConeTwistConstraint * pCTC; - float3 pos = pAnimPlayer->GetBoneTransformPos(pAnimPlayer->GetBone("bip01_neck")); + float3 pos = pAnimPlayer->getBoneTransformPos(pAnimPlayer->getBone("bip01_neck")); localA.setOrigin(F3_BTVEC(pos)); localA.getBasis().setEulerZYX(SM_PIDIV2, 0, SM_PIDIV2); @@ -181,7 +181,7 @@ CRagdoll::CRagdoll(IAnimPlayer *pAnimPlayer) btTransform localA, localB; btConeTwistConstraint * pCTC; - float3 pos = pAnimPlayer->GetBoneTransformPos(pAnimPlayer->GetBone("bip01_l_upperarm")); + float3 pos = pAnimPlayer->getBoneTransformPos(pAnimPlayer->getBone("bip01_l_upperarm")); localA.setOrigin(F3_BTVEC(pos)); localA.getBasis().setIdentity(); @@ -202,7 +202,7 @@ CRagdoll::CRagdoll(IAnimPlayer *pAnimPlayer) btTransform localA, localB; btConeTwistConstraint * pCTC; - float3 pos = pAnimPlayer->GetBoneTransformPos(pAnimPlayer->GetBone("bip01_r_upperarm")); + float3 pos = pAnimPlayer->getBoneTransformPos(pAnimPlayer->getBone("bip01_r_upperarm")); localA.setOrigin(F3_BTVEC(pos)); localA.getBasis().setIdentity(); @@ -224,7 +224,7 @@ CRagdoll::CRagdoll(IAnimPlayer *pAnimPlayer) btTransform localA, localB; btHingeConstraint * pHinge; - float3 pos = pAnimPlayer->GetBoneTransformPos(pAnimPlayer->GetBone("bip01_l_forearm")); + float3 pos = pAnimPlayer->getBoneTransformPos(pAnimPlayer->getBone("bip01_l_forearm")); localA.setOrigin(F3_BTVEC(pos)); localA.getBasis().setIdentity(); @@ -247,7 +247,7 @@ CRagdoll::CRagdoll(IAnimPlayer *pAnimPlayer) btTransform localA, localB; btHingeConstraint * pHinge; - float3 pos = pAnimPlayer->GetBoneTransformPos(pAnimPlayer->GetBone("bip01_r_forearm")); + float3 pos = pAnimPlayer->getBoneTransformPos(pAnimPlayer->getBone("bip01_r_forearm")); localA.setOrigin(F3_BTVEC(pos)); localA.getBasis().setIdentity(); @@ -270,7 +270,7 @@ CRagdoll::CRagdoll(IAnimPlayer *pAnimPlayer) btTransform localA, localB; btFixedConstraint * joint6DOF; - float3 pos = pAnimPlayer->GetBoneTransformPos(pAnimPlayer->GetBone("bip01_spine1")); + float3 pos = pAnimPlayer->getBoneTransformPos(pAnimPlayer->getBone("bip01_spine1")); localA.setOrigin(F3_BTVEC(pos)); localA.getBasis().setIdentity(); @@ -293,7 +293,7 @@ CRagdoll::CRagdoll(IAnimPlayer *pAnimPlayer) btTransform localA, localB; btGeneric6DofConstraint * joint6DOF; - float3 pos = pAnimPlayer->GetBoneTransformPos(pAnimPlayer->GetBone("bip01_spine1")); + float3 pos = pAnimPlayer->getBoneTransformPos(pAnimPlayer->getBone("bip01_spine1")); localA.setOrigin(F3_BTVEC(pos)); localA.getBasis().setIdentity(); @@ -317,7 +317,7 @@ CRagdoll::CRagdoll(IAnimPlayer *pAnimPlayer) btTransform localA, localB; btConeTwistConstraint * pCTC; - float3 pos = pAnimPlayer->GetBoneTransformPos(pAnimPlayer->GetBone("bip01_l_thigh")); + float3 pos = pAnimPlayer->getBoneTransformPos(pAnimPlayer->getBone("bip01_l_thigh")); localA.setOrigin(F3_BTVEC(pos)); //localA.getBasis().setIdentity(); @@ -338,7 +338,7 @@ CRagdoll::CRagdoll(IAnimPlayer *pAnimPlayer) btTransform localA, localB; btConeTwistConstraint * pCTC; - float3 pos = pAnimPlayer->GetBoneTransformPos(pAnimPlayer->GetBone("bip01_r_thigh")); + float3 pos = pAnimPlayer->getBoneTransformPos(pAnimPlayer->getBone("bip01_r_thigh")); localA.setOrigin(F3_BTVEC(pos)); //localA.getBasis().setIdentity(); @@ -359,7 +359,7 @@ CRagdoll::CRagdoll(IAnimPlayer *pAnimPlayer) btTransform localA, localB; btHingeConstraint * pHinge; - float3 pos = pAnimPlayer->GetBoneTransformPos(pAnimPlayer->GetBone("bip01_l_calf")); + float3 pos = pAnimPlayer->getBoneTransformPos(pAnimPlayer->getBone("bip01_l_calf")); localA.setOrigin(F3_BTVEC(pos)); localA.getBasis().setIdentity(); @@ -382,7 +382,7 @@ CRagdoll::CRagdoll(IAnimPlayer *pAnimPlayer) btTransform localA, localB; btHingeConstraint * pHinge; - float3 pos = pAnimPlayer->GetBoneTransformPos(pAnimPlayer->GetBone("bip01_r_calf")); + float3 pos = pAnimPlayer->getBoneTransformPos(pAnimPlayer->getBone("bip01_r_calf")); localA.setOrigin(F3_BTVEC(pos)); localA.getBasis().setIdentity(); diff --git a/source/game/SXbaseAnimating.h b/source/game/SXbaseAnimating.h deleted file mode 100644 index ed12d730c1090ae1c450dbd45b2c31c5c18c4574..0000000000000000000000000000000000000000 --- a/source/game/SXbaseAnimating.h +++ /dev/null @@ -1,68 +0,0 @@ - -/****************************************************** -Copyright © Vitaliy Buturlin, Evgeny Danilovich, 2017 -See the license in LICENSE -******************************************************/ - -/*! -\file -Анимированный игровой объект -*/ - -/*! \defgroup cbaseanimating Моделированные объекты -\ingroup cbaseentity -@{ -*/ - -#ifndef _SXbaseAnimating_H_ -#define _SXbaseAnimating_H_ - -#include "SXbaseEntity.h" -#include <anim/sxanim.h> - -//! Анимированный игровой объект -class SXbaseAnimating: public SXbaseEntity -{ - DECLARE_CLASS(SXbaseAnimating, SXbaseEntity); - DECLARE_PROPTABLE(); -public: - SXbaseAnimating(EntityManager * pMgr); - ~SXbaseAnimating(); - - void GetMinMax(float3 * min, float3 * max); - void GetSphere(float3 * center, float * radius); - - bool SetKV(const char * name, const char * value); - - void SetModel(const char * mdl); - - float3 GetAttachmentPos(int id); - SMQuaternion GetAttachmentRot(int id); - - void OnSync(); - - void PlayAnimation(const char * name, UINT iFadeTime = 0, UINT slot = 0); - void PlayActivity(const char * name, UINT iFadeTime = 0, UINT slot = 0); - - - bool PlayingAnimations(const char* name); - void SetPos(const float3 & pos); - void SetOrient(const SMQuaternion & q); - -protected: - IAnimPlayer * m_pAnimPlayer; - const char * m_szModelFile; - float m_fBaseScale; - - virtual void InitPhysics(); - virtual void CreatePhysBody(); - void ReleasePhysics(); - virtual void RemovePhysBody(); - - btCollisionShape * m_pCollideShape; - btRigidBody * m_pRigidBody; -}; - -#endif - -/*! @} cbaseanimating */ diff --git a/source/game/SXbaseRiffle.cpp b/source/game/SXbaseRiffle.cpp deleted file mode 100644 index 1b3c1fc2fc2c82abd066786b347938d7f8b31b03..0000000000000000000000000000000000000000 --- a/source/game/SXbaseRiffle.cpp +++ /dev/null @@ -1,12 +0,0 @@ -#include "SXbaseRiffle.h" - -/*! \skydocent base_riffle -Базовый класс винтовки -*/ - -BEGIN_PROPTABLE(SXbaseRiffle) -// empty -END_PROPTABLE() - -REGISTER_ENTITY_NOLISTING(SXbaseRiffle, base_riffle); - diff --git a/source/game/SXbaseSnipe.h b/source/game/SXbaseSnipe.h index 5345d453fc1a43674434db8f43926f825c232982..e7c983d51b44b29fe25896851369b7ced11e0efb 100644 --- a/source/game/SXbaseSnipe.h +++ b/source/game/SXbaseSnipe.h @@ -11,14 +11,14 @@ See the license in LICENSE #ifndef _SXbaseSnipe_H_ #define _SXbaseSnipe_H_ -#include "SXbaseWeapon.h" +#include "BaseWeapon.h" /*! Снайперские \ingroup cbaseitem */ -class SXbaseSnipe: public SXbaseWeapon +class SXbaseSnipe: public CBaseWeapon { - DECLARE_CLASS(SXbaseSnipe, SXbaseWeapon); + DECLARE_CLASS(SXbaseSnipe, CBaseWeapon); DECLARE_PROPTABLE(); public: DECLARE_TRIVIAL_CONSTRUCTOR(); diff --git a/source/game/SXplayer.h b/source/game/SXplayer.h deleted file mode 100644 index 1abb17615b552b993a3380c520fbe3cb3aa8438f..0000000000000000000000000000000000000000 --- a/source/game/SXplayer.h +++ /dev/null @@ -1,153 +0,0 @@ - -/****************************************************** -Copyright © Vitaliy Buturlin, Evgeny Danilovich, 2017 -See the license in LICENSE -******************************************************/ - -/*! -\file -Класс игрока -*/ - -/*! \ingroup cbaseanimating -@{ -*/ - -#ifndef _SXplayer_H_ -#define _SXplayer_H_ - -#include "SXbaseAnimating.h" -#include "SXpointCamera.h" -#include "LightDirectional.h" -#include "crosshair.h" - -//! Типы движения игрока -enum PLAYER_MOVE -{ - PM_NONE = 0, - PM_FORWARD = 0x01, //!< вперед - PM_BACKWARD = 0x02, //!< назад - PM_LEFT = 0x04, //!< влево - PM_RIGHT = 0x08, //!< вправо - PM_CROUCH = 0x10, //!< присесть - PM_JUMP = 0x20, //!< прыгнуть - PM_RUN = 0x40, //!< бежать - PM_CRAWL = 0x80, //!< лежать - PM_OBSERVER = 0x100, //!< наблюдатель - - PM_STOP = 0xFFFF -}; - -class SXbaseTool; - -//! Класс игрока \ingroup cbaseanimating -class SXplayer: public SXbaseAnimating -{ - DECLARE_CLASS(SXplayer, SXbaseAnimating); - DECLARE_PROPTABLE(); -public: - SXplayer(EntityManager * pMgr); - ~SXplayer(); - - //! Возвращает камеру игрока - SXpointCamera * GetCamera(); - - //! Переключает в режим наблюдателя - void Observe() - { - m_uMoveDir |= PM_OBSERVER; - m_pCrosshair->Enable(false); - } - //! Помещает игрока в мир - void Spawn(); - - /*! Запускает/останавливает движение в заданном направлении - @param [in] dir направление движения из #PLAYER_MOVE - */ - void Move(UINT dir, bool start); - - //! Обновляет инпут от игрока - virtual void UpdateInput(float dt); - - void OnSync(); - - //! Устанавливает положение в мире - void SetPos(const float3 & pos); - - //! Запускает/останавливает первичную атаку - void Attack(BOOL state); - //! Запускает/останавливает вторичную атаку - void Attack2(BOOL state); - //! Запускает перезарядку активного оружия - void Reload(); - //! Включает/выключает фонарь - void ToggleFlashlight(); - //! Переключает режим стрельбы активного оружия - void nextFireMode(); - - /*! Возаращает мировую позицию для модели оружия - \note Устарело? - */ - float3 GetWeaponOrigin(); - //! Получает смещения для задержки движения модели оружия при вращении игрока - float3_t & GetWeaponDeltaAngles(); - - //! Команды для подбора положения визуальной модели оружия на экране - void _ccmd_slot_on(int argc, const char ** argv); - void _ccmd_slot_off(); - - //! Получает объект перекрестия - Crosshair * GetCrosshair(); - - //! Находится ли игрок на земле - bool onGround(); - - //! Воспроизводит звук шагов с учетом материала на котором стоит игрок - void playFootstepsSound(); - -protected: - //! Фонарик - CLightDirectional* m_flashlight; - //! Камера - SXpointCamera * m_pCamera; - - //! Текущее движение - UINT m_uMoveDir; - - //! ID интервала обновления - ID m_iUpdIval; - - //! Углы вращения игрока - float3_t m_vPitchYawRoll; - - //! Для физики @{ - btCollisionShape * m_pCollideShape; - btRigidBody * m_pRigidBody; - btPairCachingGhostObject * m_pGhostObject; - btKinematicCharacterController * m_pCharacter; - //! @} - - //! Текущий инструмент в руках - SXbaseTool * m_pActiveTool; - - //! Может ли прыгать - bool m_canJump; - - //! Для качания камеры @{ - float m_fViewbobStep; - float m_fViewbobY; - float3_t m_fViewbobStrafe; - float3_t m_vWpnShakeAngles; - //! @} - - int m_iDSM; - - //! Перекрестие - Crosshair * m_pCrosshair; - - ID m_idQuadCurr; //!< текущий квад аи сетки на котором стоит игрок -}; - -#endif - -//! @} diff --git a/source/game/SXpointEntity.cpp b/source/game/SXpointEntity.cpp deleted file mode 100644 index 426563818654bf666bdef6aa4c82dce23348235d..0000000000000000000000000000000000000000 --- a/source/game/SXpointEntity.cpp +++ /dev/null @@ -1,11 +0,0 @@ -#include "SXpointEntity.h" - -/*! \skydocent base_point -Базовый точечный объект -*/ - -BEGIN_PROPTABLE(SXpointEntity) - // empty -END_PROPTABLE() - -REGISTER_ENTITY_NOLISTING(SXpointEntity, base_point); diff --git a/source/game/crosshair.cpp b/source/game/crosshair.cpp index aa3abddf47051d9b96f8a0897bc2d038fa7dcc7f..645773dfc3d64a74f82399335e847089ebf2090e 100644 --- a/source/game/crosshair.cpp +++ b/source/game/crosshair.cpp @@ -4,7 +4,7 @@ #include <common/SXMath.h> #include "GameData.h" -Crosshair::Crosshair(): +CCrosshair::CCrosshair(): m_bDirty(true), m_bBuildBuff(false), m_fSize(0), @@ -37,12 +37,12 @@ Crosshair::Crosshair(): m_pDev->CreateIndexBuffer(sizeof(UINT)* iIC, D3DUSAGE_WRITEONLY, D3DFMT_INDEX32, D3DPOOL_MANAGED, &m_pIndexBuffer, NULL); } -Crosshair::~Crosshair() +CCrosshair::~CCrosshair() { mem_delete_a(m_pMemoryBlob); } -void Crosshair::SetTexInfo(const float2_t & offs, const float2_t & size) +void CCrosshair::setTexInfo(const float2_t & offs, const float2_t & size) { m_bDirty = true; m_f2TexOffs = offs; @@ -50,7 +50,7 @@ void Crosshair::SetTexInfo(const float2_t & offs, const float2_t & size) } -void Crosshair::Update() +void CCrosshair::update() { if(m_bDirty && m_idTexture >= 0) { @@ -67,8 +67,8 @@ void Crosshair::Update() static const int *r_win_height = GET_PCVAR_INT("r_win_height"); //build new buffer - float fScreenWidth = *r_win_width; - float fScreenHeight = *r_win_height; + float fScreenWidth = (float)*r_win_width; + float fScreenHeight = (float)*r_win_height; float fTexWidth = m_f2TexSize.x; float fTexHeight = m_f2TexSize.y; float fXradius = fTexWidth / fScreenWidth * 0.5f; @@ -325,7 +325,7 @@ void Crosshair::Update() m_iIndexCount[m_u8ActiveBuffer ? 0 : 1] = iCurIdx; } } -void Crosshair::Render() +void CCrosshair::render() { if(m_bHidden || !m_pTexture) { @@ -359,6 +359,15 @@ void Crosshair::Render() SGCore_ShaderUnBind(); m_pDev->SetTexture(0, m_pTexture); m_pDev->SetRenderState(D3DRS_ZWRITEENABLE, D3DZB_FALSE); + + // Использовать альфа-канал в качестве источника альфа-компонент + m_pDev->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE); + m_pDev->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1); + + // Устанавливаем коэффициенты смешивания таким образом, + // чтобы альфа-компонента определяла прозрачность + m_pDev->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA); + m_pDev->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA); //m_pDev->SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_ANISOTROPIC); //m_pDev->SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_ANISOTROPIC); @@ -368,7 +377,7 @@ void Crosshair::Render() SGCore_DIP(D3DPT_TRIANGLELIST, 0, 0, m_iVertexCount[m_u8ActiveBuffer], 0, m_iIndexCount[m_u8ActiveBuffer] / 3); //render } -void Crosshair::OnSync() +void CCrosshair::onSync() { if(m_bDirty) { @@ -381,12 +390,12 @@ void Crosshair::OnSync() } } -void Crosshair::Enable(bool en) +void CCrosshair::enable(bool en) { m_bHidden = !en; } -void Crosshair::SetNumSegmens(int num) +void CCrosshair::setNumSegmens(int num) { if(num < 1) { @@ -402,7 +411,7 @@ void Crosshair::SetNumSegmens(int num) m_iNumSegs = num; } } -void Crosshair::SetAngle(float a) +void CCrosshair::setAngle(float a) { if(m_fAngle != a) { @@ -410,7 +419,7 @@ void Crosshair::SetAngle(float a) m_fAngle = a; } } -void Crosshair::SetFixedRadius(float r) +void CCrosshair::setFixedRadius(float r) { if(m_fFixedRadius != r) { @@ -418,7 +427,7 @@ void Crosshair::SetFixedRadius(float r) m_fFixedRadius = r; } } -void Crosshair::SetStyle(STYLE style) +void CCrosshair::setStyle(STYLE style) { if(m_style != style) { @@ -426,12 +435,12 @@ void Crosshair::SetStyle(STYLE style) m_style = style; } } -void Crosshair::SetMaxSize(float size) +void CCrosshair::setMaxSize(float size) { m_bDirty = true; m_fMaxSize = size; } -void Crosshair::SetTexture(ID id) +void CCrosshair::setTexture(ID id) { if(m_idTexture != id) { @@ -448,7 +457,7 @@ void Crosshair::SetTexture(ID id) } } -void Crosshair::SetSize(float size) +void CCrosshair::setSize(float size) { if(m_fSize != size) { diff --git a/source/game/crosshair.h b/source/game/crosshair.h index 11a473869337ae1a2d483a73f5d45a47f4a1a2f4..baf95f3371b6cf11622ef625ae049bfe7f7f7a2e 100644 --- a/source/game/crosshair.h +++ b/source/game/crosshair.h @@ -10,7 +10,7 @@ static_assert(CROSSHAIR_MINSEGS <= CROSSHAIR_MAXSEGS, "Maxsegs cannot be lesser than minsegs!"); -class Crosshair +class CCrosshair { public: enum STYLE @@ -19,25 +19,25 @@ public: SCALED }; - Crosshair(); - ~Crosshair(); + CCrosshair(); + ~CCrosshair(); - void Update(); - void Render(); - void OnSync(); + void update(); + void render(); + void onSync(); - void Enable(bool en = true); + void enable(bool en = true); - void SetNumSegmens(int num); - void SetAngle(float a); - void SetFixedRadius(float r); - void SetStyle(STYLE style); - void SetMaxSize(float size); - void SetTexture(ID id); + void setNumSegmens(int num); + void setAngle(float a); + void setFixedRadius(float r); + void setStyle(STYLE style); + void setMaxSize(float size); + void setTexture(ID id); - void SetSize(float size); + void setSize(float size); - void SetTexInfo(const float2_t & offs, const float2_t & size); + void setTexInfo(const float2_t & offs, const float2_t & size); protected: @@ -47,8 +47,6 @@ protected: float2_t tex; } Vertex; - void _BuildBuffer(); - bool m_bDirty; bool m_bBuildBuff; float m_fSize; diff --git a/source/game/proptable.cpp b/source/game/proptable.cpp index 27c42635668036e043599eb982ac050b3f72f182..72461ca83fb281030e314c726860671907937496 100644 --- a/source/game/proptable.cpp +++ b/source/game/proptable.cpp @@ -3,7 +3,7 @@ #include "proptable.h" -#include "SXbaseEntity.h" +#include "BaseEntity.h" prop_editor_t _GetEditorCombobox(int start, ...) { @@ -81,7 +81,7 @@ const char * GetEmptyString() return(str); } -void output_t::fire(SXbaseEntity *pInflictor, SXbaseEntity *pActivator) +void output_t::fire(CBaseEntity *pInflictor, CBaseEntity *pActivator) { inputdata_t data = {0}; data.pActivator = pActivator; diff --git a/source/game/proptable.h b/source/game/proptable.h index 19ab24e41e5977199b93bf25b9d6a813f15b2432..d1d409e584caec7c0134e9f40a63c53627921f36 100644 --- a/source/game/proptable.h +++ b/source/game/proptable.h @@ -3,9 +3,9 @@ #include <common/SXmath.h> -class SXbaseEntity; +class CBaseEntity; -//! ���� ����� ������ +//! типы полей данных enum PDF_TYPE { PDF_NONE, @@ -24,7 +24,7 @@ enum PDF_TYPE PDF_OUTPUT }; -//! ���� ���������� ����� +//! типы редакторов полей enum PDE_TYPE { PDE_NONE = 0, @@ -37,10 +37,10 @@ enum PDE_TYPE enum PDF_FLAG { PDFF_NONE = 0x00, - PDFF_NOEXPORT = 0x01, //!< �� �������������� ���� � ���� - PDFF_NOEDIT = 0x02, //!< �� ���������� ���� � ��������� - PDFF_INPUT = 0x04, //!< ���� ����� - PDFF_OUTPUT = 0x08, //!< ���� ������ + PDFF_NOEXPORT = 0x01, //!< Не экспортировать поле в файл + PDFF_NOEDIT = 0x02, //!< Не отображать поле в редакторе + PDFF_INPUT = 0x04, //!< Поле входа + PDFF_OUTPUT = 0x08, //!< Поле выхода }; enum ENT_FLAG @@ -52,7 +52,7 @@ enum ENT_FLAG EF_LAST = 0x8000 }; -typedef int SXbaseEntity::*fieldtype; +typedef int CBaseEntity::*fieldtype; struct editor_kv { @@ -69,9 +69,9 @@ struct prop_editor_t struct inputdata_t { - SXbaseEntity *pInflictor; //!< ��������� ��������� (��������� ��� ������� ���������) - SXbaseEntity *pActivator; //!< ���������������� ��������� - PDF_TYPE type; //!< ��� ��������� + CBaseEntity *pInflictor; //!< Косвенный активатор (вызвавший эту цепочку активаций) + CBaseEntity *pActivator; //!< Непосредственный активатор + PDF_TYPE type; //!< Тип аргумента union { int i; @@ -83,7 +83,7 @@ struct inputdata_t float3_t v3Parameter; }; -typedef void(SXbaseEntity::*input_func)(inputdata_t * pInputData); +typedef void(CBaseEntity::*input_func)(inputdata_t * pInputData); struct propdata_t { @@ -127,7 +127,7 @@ struct propdata_t struct input_t { input_func fnInput; - SXbaseEntity *pTarget; + CBaseEntity *pTarget; inputdata_t data; }; @@ -157,7 +157,7 @@ struct output_t bDirty(false) { } - void fire(SXbaseEntity *pInflictor, SXbaseEntity *pActivator); + void fire(CBaseEntity *pInflictor, CBaseEntity *pActivator); bool bDirty; int iOutCount; @@ -181,17 +181,17 @@ prop_editor_t _GetEditorFilefield(int start, ...); #define DECLARE_PROPTABLE() \ \ - friend class EntityFactoryMap; \ - friend class EntityFactory<ThisClass>; \ + friend class CEntityFactoryMap; \ + friend class CEntityFactory<ThisClass>; \ static proptable_t m_pPropTable; \ \ protected:\ static void InitPropData(); \ - virtual proptable_t * GetPropTable(); \ + virtual proptable_t * getPropTable(); \ static proptable_t * SGetPropTable(); \ static void ReleasePropData();\ public:\ - virtual propdata_t * GetField(const char * name);\ + virtual propdata_t * getField(const char * name);\ private: #define _BEGIN_PROPTABLE(cls, bclpt) \ @@ -210,15 +210,15 @@ proptable_t * cls::SGetPropTable()\ return(&m_pPropTable);\ }\ \ -proptable_t * cls::GetPropTable()\ +proptable_t * cls::getPropTable()\ {\ if(!m_pPropTable.numFields)\ InitPropData(); \ return(&m_pPropTable); \ }\ -propdata_t * cls::GetField(const char * name)\ +propdata_t * cls::getField(const char * name)\ {\ - proptable_t * pt = GetPropTable();\ + proptable_t * pt = getPropTable();\ while(pt)\ {\ for(int i = 0; i < pt->numFields; ++i)\ @@ -258,8 +258,8 @@ void cls::InitPropData() \ } \ } -#define DECLARE_TRIVIAL_CONSTRUCTOR() ThisClass(EntityManager * pMgr):BaseClass(pMgr){} -#define DECLARE_CONSTRUCTOR() ThisClass(EntityManager * pMgr); +#define DECLARE_TRIVIAL_CONSTRUCTOR() ThisClass(CEntityManager * pMgr):BaseClass(pMgr){} +#define DECLARE_CONSTRUCTOR() ThisClass(CEntityManager * pMgr); const char * GetEmptyString(); diff --git a/source/game/sxgame.h b/source/game/sxgame.h index bda10081e47b16a5a79a416ad307a045efdc404e..78270cb209934150e09abb1c0794863cce571e83 100644 --- a/source/game/sxgame.h +++ b/source/game/sxgame.h @@ -167,7 +167,7 @@ See the license in LICENSE #define SX_LIB_API extern "C" __declspec (dllexport) #endif -#include "SXbaseEntity.h" +#include "BaseEntity.h" /*! Инициализирует библиотеку @@ -228,11 +228,11 @@ SX_LIB_API void SXGame_EntGetClassList(const char ** pszClassList, int count); /*! Создает entity заданного класса */ -SX_LIB_API SXbaseEntity * SXGame_CreateEntity(const char * classname); +SX_LIB_API CBaseEntity * SXGame_CreateEntity(const char * classname); /*! Уничтожает entity */ -SX_LIB_API void SXGame_RemoveEntity(SXbaseEntity * pEnt); +SX_LIB_API void SXGame_RemoveEntity(CBaseEntity * pEnt); /*! Получает таблицу свойств для заданного класса */ @@ -248,9 +248,9 @@ SX_LIB_API int SXGame_EntGetCount(); /*! Возвращает entity по его id */ -SX_LIB_API SXbaseEntity *SXGame_EntGet(ID id); +SX_LIB_API CBaseEntity *SXGame_EntGet(ID id); -SX_LIB_API SXbaseEntity *SXGame_EntGetByName(const char *szName, ID idStart = 0); +SX_LIB_API CBaseEntity *SXGame_EntGetByName(const char *szName, ID idStart = 0); diff --git a/source/game/sxgame_dll.cpp b/source/game/sxgame_dll.cpp index 882aa4c1b4eff8ceb8bc230fc320cabf495602da..e71fa4d6ba93c10f5e4779e81b48d8c3e8d4795e 100644 --- a/source/game/sxgame_dll.cpp +++ b/source/game/sxgame_dll.cpp @@ -75,15 +75,15 @@ void ccmd_cam_pt() static int count = 0; char buf[64]; sprintf(buf, "cam_pt_%d", count); - PathCorner * pc = (PathCorner*)CREATE_ENTITY("path_corner", GameData::m_pMgr); - pc->SetKV("name", buf); - pc->SetPos(GameData::m_pActiveCamera->GetPos()); - pc->SetOrient(GameData::m_pActiveCamera->GetOrient()); + CPathCorner * pc = (CPathCorner*)CREATE_ENTITY("path_corner", GameData::m_pMgr); + pc->setKV("name", buf); + pc->setPos(GameData::m_pActiveCamera->getPos()); + pc->setOrient(GameData::m_pActiveCamera->getOrient()); sprintf(buf, "cam_pt_%d", count - 1); - pc = (PathCorner*)GameData::m_pMgr->FindEntityByName(buf); + pc = (CPathCorner*)GameData::m_pMgr->findEntityByName(buf); sprintf(buf, "cam_pt_%d", count); - pc->SetKV("next", buf); + pc->setKV("next", buf); ++count; } @@ -92,14 +92,14 @@ void ccmd_save_as(int argc, const char ** argv) { if(argc > 1) { - GameData::m_pMgr->Export(argv[1]); + GameData::m_pMgr->exportList(argv[1]); } } SX_LIB_API ISXCamera * SXGame_GetActiveCamera() { SG_PRECOND(NULL); - return(GameData::m_pActiveCamera->GetCamera()); + return(GameData::m_pActiveCamera->getCamera()); } SX_LIB_API void SXGame_0Create() @@ -113,7 +113,7 @@ SX_LIB_API void SXGame_0Create() g_pGameData = new GameData(); - //g_pPlayer->Spawn(); + //g_pPlayer->spawn(); D3DXCreateBox(SGCore_GetDXDevice(), 1, 1, 1, &g_pFigureBox, 0); Core_0RegisterConcmd("add_corner", ccmd_cam_pt); @@ -129,32 +129,32 @@ SX_LIB_API void SXGame_AKill() SX_LIB_API void SXGame_Update(int thread) { SG_PRECOND(_VOID); - GameData::m_pMgr->Update(thread); - g_pGameData->Update(); + GameData::m_pMgr->update(thread); + g_pGameData->update(); } SX_LIB_API void SXGame_UpdateSetThreadNum(int num) { SG_PRECOND(_VOID); - GameData::m_pMgr->SetThreadNum(num); + GameData::m_pMgr->setThreadNum(num); } SX_LIB_API void SXGame_Sync() { SG_PRECOND(_VOID); - GameData::m_pMgr->Sync(); - g_pGameData->Sync(); + GameData::m_pMgr->sync(); + g_pGameData->sync(); } SX_LIB_API void SXGame_Render() { SG_PRECOND(_VOID); - //GameData::m_pMgr->Render(); - g_pGameData->Render(); + //GameData::m_pMgr->render(); + g_pGameData->render(); } SX_LIB_API void SXGame_RenderHUD() { SG_PRECOND(_VOID); - g_pGameData->RenderHUD(); + g_pGameData->renderHUD(); } @@ -166,7 +166,7 @@ SX_LIB_API void SXGame_Dbg_Set(report_func rf) SX_LIB_API void SXGame_LoadEnts(const char * file) { SG_PRECOND(_VOID); - GameData::m_pMgr->Import(file); + GameData::m_pMgr->import(file); } SX_LIB_API void SXGame_UnloadObjLevel() @@ -178,20 +178,20 @@ SX_LIB_API void SXGame_UnloadObjLevel() SX_LIB_API void SXGame_SaveEnts(const char * file) { SG_PRECOND(_VOID); - GameData::m_pMgr->Export(file); + GameData::m_pMgr->exportList(file); } SX_LIB_API void SXGame_PlayerSpawn() { SG_PRECOND(_VOID); - GameData::m_pPlayer->Spawn(); + GameData::m_pPlayer->spawn(); } SX_LIB_API void SXGame_EditorRender(ID id, ID id_sel_tex) { SG_PRECOND(_VOID); - SXbaseEntity* bEnt = SXGame_EntGet(id); + CBaseEntity* bEnt = SXGame_EntGet(id); if (!bEnt) return; @@ -202,26 +202,26 @@ SX_LIB_API void SXGame_EditorRender(ID id, ID id_sel_tex) SGCore_GetDXDevice()->SetTransform(D3DTS_VIEW, (D3DMATRIX*)&mView); SGCore_GetDXDevice()->SetTransform(D3DTS_PROJECTION, (D3DMATRIX*)&mProj); - if (strcmp(bEnt->GetClassName(), "path_corner") == 0) + if (strcmp(bEnt->getClassName(), "path_corner") == 0) { - PathCorner * pStartPoint = (PathCorner*)bEnt; + CPathCorner * pStartPoint = (CPathCorner*)bEnt; if (!pStartPoint) return; - /*FuncTrain * pTrain = (FuncTrain*)(GameData::m_pMgr->FindEntityByClass("func_train")); + /*CFuncTrain * pTrain = (CFuncTrain*)(GameData::m_pMgr->findEntityByClass("func_train")); if (pTrain) { - pTrain->Start(); + pTrain->start(); } - SXpointCamera * cam = (SXpointCamera*)(GameData::m_pMgr->FindEntityByName("train_camera")); + CPointCamera * cam = (CPointCamera*)(GameData::m_pMgr->findEntityByName("train_camera")); if (cam) { GameData::m_pActiveCamera = cam; - cam->SetParent(); + cam->setParent(); }*/ - PathCorner * pCur = pStartPoint; + CPathCorner * pCur = pStartPoint; while ((pCur = pCur->GetPrev())) { pStartPoint = pCur; @@ -234,9 +234,9 @@ SX_LIB_API void SXGame_EditorRender(ID id, ID id_sel_tex) { len += pCur->GetLength(); ++count; - SGCore_GetDXDevice()->SetTransform(D3DTS_WORLD, (D3DMATRIX*)&SMMatrixTranslation(pCur->GetPos())); + SGCore_GetDXDevice()->SetTransform(D3DTS_WORLD, (D3DMATRIX*)&SMMatrixTranslation(pCur->getPos())); - if (id == pCur->GetId()) + if (id == pCur->getId()) SGCore_GetDXDevice()->SetTexture(0, SGCore_LoadTexGetTex(id_sel_tex)); else SGCore_GetDXDevice()->SetTexture(0, 0); @@ -256,16 +256,16 @@ SX_LIB_API void SXGame_EditorRender(ID id, ID id_sel_tex) for (int i = 0; i < npoints; ++i) { - pts[i * 2] = pStartPoint->GetPoint((float)i * (len / (float)npoints)); + pts[i * 2] = pStartPoint->getPoint((float)i * (len / (float)npoints)); } for (int i = 0; i < npoints - 1; ++i) { pts[i * 2 + 1] = pts[(i + 1) * 2]; } - pts[npoints * 2 - 1] = pStartPoint->GetPoint(len); + pts[npoints * 2 - 1] = pStartPoint->getPoint(len); - //pts[npoints * 2] = pTrain->GetPos(); - //pts[npoints * 2 + 1] = (float3)(pTrain->GetPos() + (pTrain->GetOrient() * float3(0.0f, 1.0f, 0.0f))); + //pts[npoints * 2] = pTrain->getPos(); + //pts[npoints * 2 + 1] = (float3)(pTrain->getPos() + (pTrain->getOrient() * float3(0.0f, 1.0f, 0.0f))); SGCore_ShaderUnBind(); @@ -278,7 +278,7 @@ SX_LIB_API void SXGame_EditorRender(ID id, ID id_sel_tex) else { float3 min, max; - bEnt->GetMinMax(&min, &max); + bEnt->getMinMax(&min, &max); if (min.x == 0.0f && min.y == 0.0f && min.z == 0.0f && max.x == 0.0f && max.y == 0.0f && max.z == 0.0f) max.x = max.y = max.z = 0.5f; @@ -288,8 +288,8 @@ SX_LIB_API void SXGame_EditorRender(ID id, ID id_sel_tex) SGCore_GetDXDevice()->SetTransform(D3DTS_VIEW, (D3DMATRIX*)&mView); SGCore_GetDXDevice()->SetTransform(D3DTS_PROJECTION, (D3DMATRIX*)&mProj); - SGCore_GetDXDevice()->SetTransform(D3DTS_WORLD, (D3DMATRIX*)&(SMMatrixScaling((max.x - min.x), (max.y - min.y), (max.z - min.z)) * SMMatrixTranslation(bEnt->GetPos()))); - //SGCore_GetDXDevice()->SetTransform(D3DTS_WORLD, (D3DMATRIX*)&bEnt->GetWorldTM()); + SGCore_GetDXDevice()->SetTransform(D3DTS_WORLD, (D3DMATRIX*)&(SMMatrixScaling((max.x - min.x), (max.y - min.y), (max.z - min.z)) * SMMatrixTranslation(bEnt->getPos()))); + //SGCore_GetDXDevice()->SetTransform(D3DTS_WORLD, (D3DMATRIX*)&bEnt->getWorldTM()); SGCore_GetDXDevice()->SetTexture(0, SGCore_LoadTexGetTex(id_sel_tex)); g_pFigureBox->DrawSubset(0); @@ -300,24 +300,24 @@ SX_LIB_API int SXGame_EntGetClassListCount() { SG_PRECOND(-1); - return(EntityFactoryMap::GetInstance()->GetListCount()); + return(CEntityFactoryMap::GetInstance()->getListCount()); } SX_LIB_API void SXGame_EntGetClassList(const char ** pszClassList, int count) { SG_PRECOND(_VOID); - EntityFactoryMap::GetInstance()->GetListing(pszClassList, count); + CEntityFactoryMap::GetInstance()->getListing(pszClassList, count); } -SX_LIB_API SXbaseEntity * SXGame_CreateEntity(const char * classname) +SX_LIB_API CBaseEntity * SXGame_CreateEntity(const char * classname) { SG_PRECOND(NULL); return(CREATE_ENTITY(classname, GameData::m_pMgr)); } -SX_LIB_API void SXGame_RemoveEntity(SXbaseEntity * pEnt) +SX_LIB_API void SXGame_RemoveEntity(CBaseEntity * pEnt) { SG_PRECOND(_VOID); @@ -328,14 +328,14 @@ SX_LIB_API proptable_t * SXGame_EntGetProptable(const char * classname) { SG_PRECOND(NULL); - return(EntityFactoryMap::GetInstance()->GetPropTable(classname)); + return(CEntityFactoryMap::GetInstance()->getPropTable(classname)); } SX_LIB_API const char * SXGame_EntGetDefault(const char * classname, const char * key) { SG_PRECOND(NULL); - EntDefaultsMap * pMap = EntityFactoryMap::GetInstance()->GetDefaults(classname); + EntDefaultsMap * pMap = CEntityFactoryMap::GetInstance()->getDefaults(classname); if(!pMap) { return(NULL); @@ -352,25 +352,25 @@ SX_LIB_API const char * SXGame_EntGetDefault(const char * classname, const char SX_LIB_API int SXGame_EntGetCount() { SG_PRECOND(0); - return(GameData::m_pMgr->GetCount()); + return(GameData::m_pMgr->getCount()); } -SX_LIB_API SXbaseEntity *SXGame_EntGet(ID id) +SX_LIB_API CBaseEntity *SXGame_EntGet(ID id) { SG_PRECOND(NULL); - return(GameData::m_pMgr->GetById(id)); + return(GameData::m_pMgr->getById(id)); } -SX_LIB_API SXbaseEntity *SXGame_EntGetByName(const char *szName, ID idStart) +SX_LIB_API CBaseEntity *SXGame_EntGetByName(const char *szName, ID idStart) { SG_PRECOND(NULL); - SXbaseEntity *pEnt = 0; + CBaseEntity *pEnt = 0; for (int i = 0, il = SXGame_EntGetCount(); i < il; ++i) { pEnt = SXGame_EntGet(i); - if (pEnt && strcmp(szName, pEnt->GetName()) == 0) + if (pEnt && strcmp(szName, pEnt->getName()) == 0) { return pEnt; } diff --git a/source/gcore/LoaderTextures.cpp b/source/gcore/LoaderTextures.cpp index b0672b5824e7a96647889f7c92b3bff65afb6a76..e725a720a754c64322466bc68996d37681c6a79c 100644 --- a/source/gcore/LoaderTextures.cpp +++ b/source/gcore/LoaderTextures.cpp @@ -282,16 +282,16 @@ ID LoaderTextures::Update(const char* name, LoadTexType type) IDirect3DTexture9* tex=0; if(FAILED(D3DXCreateTextureFromFileEx( g_pDXDevice, - tmpPath, - D3DX_DEFAULT, - D3DX_DEFAULT, - SXGC_LOADTEX_COUNT_MIPMAP, - 0, - SXGC_LOADTEX_FORMAT_TEX, - D3DPOOL_MANAGED, - D3DX_FILTER_BOX, - D3DX_FILTER_BOX, 0, 0, 0, &tex - ) + tmpPath, + D3DX_DEFAULT, + D3DX_DEFAULT, + SXGC_LOADTEX_COUNT_MIPMAP, + 0, + SXGC_LOADTEX_FORMAT_TEX, + D3DPOOL_MANAGED, + D3DX_FILTER_BOX, + D3DX_FILTER_BOX, 0, 0, 0, &tex + ) ) ) { @@ -310,10 +310,11 @@ void LoaderTextures::LoadTextures() { if (ArrIDsLoad.size() <= 0) return; - //g_fnReportf(REPORT_MSG_LEVEL_NOTICE, "%s: load textures ...\n", SX_LIB_NAME); + g_fnReportf(REPORT_MSG_LEVEL_NOTICE, "%s: load textures ...\n", SX_LIB_NAME); char tmpPath[SXGC_LOADTEX_MAX_SIZE_FULLPATH]; ID tmpiddir; + int iCountLoaded = 0; for (int i = 0; i<ArrIDsLoad.size(); i++) { tmpiddir = ArrTextures[ArrIDsLoad[i]]->IDDir; @@ -335,12 +336,13 @@ void LoaderTextures::LoadTextures() ))) { ArrTextures[ArrIDsLoad[i]]->tex = 0; - g_fnReportf(REPORT_MSG_LEVEL_WARNING, "%s: - not found texture [%s]\n", SX_LIB_NAME, ArrTextures[ArrIDsLoad[i]]->name.c_str()); + g_fnReportf(REPORT_MSG_LEVEL_WARNING, "%s: - not found [%s]\n", SX_LIB_NAME, ArrTextures[ArrIDsLoad[i]]->name.c_str()); } else { ArrTextures[ArrIDsLoad[i]]->tex = tex; - //g_fnReportf(REPORT_MSG_LEVEL_NOTICE, " texture loaded [%s], id = %d\n", ArrTextures[ArrIDsLoad[i]]->name.c_str(), ArrIDsLoad[i]); + g_fnReportf(REPORT_MSG_LEVEL_NOTICE, " texture id [%d], [%s]\n", ArrIDsLoad[i], ArrTextures[ArrIDsLoad[i]]->name.c_str()); + ++iCountLoaded; } } diff --git a/source/gcore/shader.cpp b/source/gcore/shader.cpp index 851f1efd29d6a0bbf0aebde2c7a8c41b7bc1e81b..945f0c85a14e48d88c4acf5b388af643645de7c2 100644 --- a/source/gcore/shader.cpp +++ b/source/gcore/shader.cpp @@ -219,7 +219,7 @@ void LoadVertexShader(const char *szPath, CShaderVS *pShader, D3DXMACRO *aMacro) ); if (FAILED(hr)) { - g_fnReportf(REPORT_MSG_LEVEL_ERROR, "%s: %s - error creating vertex shader [%s]", SX_LIB_NAME, GEN_MSG_LOCATION, szPath); + g_fnReportf(REPORT_MSG_LEVEL_ERROR, "%s: %s - error creating vertex shader [%s]\n", SX_LIB_NAME, GEN_MSG_LOCATION, szPath); return; } @@ -255,7 +255,7 @@ void LoadVertexShader(const char *szPath, CShaderVS *pShader, D3DXMACRO *aMacro) //!!!���������������� if (FAILED(hr)) { - g_fnReportf(REPORT_MSG_LEVEL_ERROR, "%s: %s - download function vertex shader fails, path [%s]", SX_LIB_NAME, GEN_MSG_LOCATION, szPath); + g_fnReportf(REPORT_MSG_LEVEL_ERROR, "%s: %s - download function vertex shader fails, path [%s]\n", SX_LIB_NAME, GEN_MSG_LOCATION, szPath); return; } @@ -266,7 +266,7 @@ void LoadVertexShader(const char *szPath, CShaderVS *pShader, D3DXMACRO *aMacro) if (FAILED(hr)) { - g_fnReportf(REPORT_MSG_LEVEL_ERROR, "%s: %s - error creating vertex shader [%s]", SX_LIB_NAME, GEN_MSG_LOCATION, szPath); + g_fnReportf(REPORT_MSG_LEVEL_ERROR, "%s: %s - error creating vertex shader [%s]\n", SX_LIB_NAME, GEN_MSG_LOCATION, szPath); return; } @@ -275,7 +275,7 @@ void LoadVertexShader(const char *szPath, CShaderVS *pShader, D3DXMACRO *aMacro) if (desc.Constants > SXGC_SHADER_VAR_MAX_COUNT) { - g_fnReportf(REPORT_MSG_LEVEL_ERROR, "%s: %s - error, count variable in vertex shader [%s] more standart [%d]", SX_LIB_NAME, GEN_MSG_LOCATION, szPath, SXGC_SHADER_VAR_MAX_COUNT); + g_fnReportf(REPORT_MSG_LEVEL_ERROR, "%s: %s - error, count variable in vertex shader [%s] more standart [%d]\n", SX_LIB_NAME, GEN_MSG_LOCATION, szPath, SXGC_SHADER_VAR_MAX_COUNT); return; } @@ -290,47 +290,12 @@ void LoadVertexShader(const char *szPath, CShaderVS *pShader, D3DXMACRO *aMacro) pShader->m_pCode = pBufShader; pShader->m_iCountVar = desc.Constants; - //pShader->m_pConstTable = tmpConstTable; pShader->m_pVertexShader = pVertexShader; - if (aMacro) - { - int tmpCountArrM = 0; - - for (int i = 0; i < SXGC_SHADER_COUNT_MACRO; i++) - { - if (i >= SXGC_SHADER_COUNT_MACRO) - { - g_fnReportf(REPORT_MSG_LEVEL_ERROR, "%s: %s - error, count macro in vertex shader [%s] more standart [%d]", SX_LIB_NAME, GEN_MSG_LOCATION, szPath, SXGC_SHADER_COUNT_MACRO); - return; - } - - if (aMacro[i].Name == 0) - { - tmpCountArrM = i; - break; - } - } - - for (int i = 0; i < tmpCountArrM; i++) - { - pShader->m_aMacros[i] = aMacro[i]; - } - - pShader->m_aMacros[tmpCountArrM].Name = 0; - pShader->m_aMacros[tmpCountArrM].Definition = 0; - } - else - { - pShader->m_aMacros[0].Name = 0; - pShader->m_aMacros[0].Definition = 0; - } - +#ifndef _DEBUG CShaderFileCache *pSFC = CreateShaderFileCacheFormShader(pShader); SaveShaderFileCache(pSFC); mem_delete(pSFC); - -#ifndef _DEBUG } #endif } @@ -407,7 +372,7 @@ void LoadPixelShader(const char *szPath, CShaderPS *pShader,D3DXMACRO *aMacro) //!!!���������������� if (FAILED(hr)) { - g_fnReportf(REPORT_MSG_LEVEL_ERROR, "%s: %s - download function pixel shader fails, path [%s]", SX_LIB_NAME, GEN_MSG_LOCATION, szPath); + g_fnReportf(REPORT_MSG_LEVEL_ERROR, "%s: %s - download function pixel shader fails, path [%s]\n", SX_LIB_NAME, GEN_MSG_LOCATION, szPath); return; } @@ -418,7 +383,7 @@ void LoadPixelShader(const char *szPath, CShaderPS *pShader,D3DXMACRO *aMacro) if (FAILED(hr)) { - g_fnReportf(REPORT_MSG_LEVEL_ERROR, "%s: %s - error creating pixel shader [%s]", SX_LIB_NAME, GEN_MSG_LOCATION, szPath); + g_fnReportf(REPORT_MSG_LEVEL_ERROR, "%s: %s - error creating pixel shader [%s]\n", SX_LIB_NAME, GEN_MSG_LOCATION, szPath); return; } @@ -427,7 +392,7 @@ void LoadPixelShader(const char *szPath, CShaderPS *pShader,D3DXMACRO *aMacro) if (desc.Constants > SXGC_SHADER_VAR_MAX_COUNT) { - g_fnReportf(REPORT_MSG_LEVEL_ERROR, "%s: %s - error, count variable in pixel shader [%s] more standart [%d]", SX_LIB_NAME, GEN_MSG_LOCATION, szPath, SXGC_SHADER_VAR_MAX_COUNT); + g_fnReportf(REPORT_MSG_LEVEL_ERROR, "%s: %s - error, count variable in pixel shader [%s] more standart [%d]\n", SX_LIB_NAME, GEN_MSG_LOCATION, szPath, SXGC_SHADER_VAR_MAX_COUNT); return; } @@ -442,47 +407,12 @@ void LoadPixelShader(const char *szPath, CShaderPS *pShader,D3DXMACRO *aMacro) pShader->m_pCode = pBufShader; pShader->m_iCountVar = desc.Constants; - //pShader->m_pConstTable = tmpConstTable; pShader->m_pPixelShader = pPixelShader; - if (aMacro) - { - int tmpCountArrM = 0; - - for (int i = 0; i < SXGC_SHADER_COUNT_MACRO; i++) - { - if (i >= SXGC_SHADER_COUNT_MACRO) - { - g_fnReportf(REPORT_MSG_LEVEL_ERROR, "%s: %s - error, count macro in pixel shader [%s] more standart [%d]", SX_LIB_NAME, GEN_MSG_LOCATION, szPath, SXGC_SHADER_COUNT_MACRO); - return; - } - - if (aMacro[i].Name == 0) - { - tmpCountArrM = i; - break; - } - } - - for (int i = 0; i < tmpCountArrM; i++) - { - pShader->m_aMacros[i] = aMacro[i]; - } - - pShader->m_aMacros[tmpCountArrM].Name = 0; - pShader->m_aMacros[tmpCountArrM].Definition = 0; - } - else - { - pShader->m_aMacros[0].Name = 0; - pShader->m_aMacros[0].Definition = 0; - } - +#ifndef _DEBUG CShaderFileCache *pSFC = CreateShaderFileCacheFormShader(pShader); SaveShaderFileCache(pSFC); mem_delete(pSFC); - -#ifndef _DEBUG } #endif } @@ -491,7 +421,8 @@ void LoadPixelShader(const char *szPath, CShaderPS *pShader,D3DXMACRO *aMacro) CShaderManager::CShaderManager() { - + m_iLastAllLoadVS = 0; + m_iLastAllLoadPS = 0; } CShaderManager::~CShaderManager() @@ -513,31 +444,25 @@ CShaderManager::~CShaderManager() void CShaderManager::reloadAll() { - Array<CShaderVS*> aVS; - Array<CShaderPS*> aPS; + g_fnReportf(REPORT_MSG_LEVEL_NOTICE, "%s: reload shaders ...\n", SX_LIB_NAME); - for (int i = 0; i < m_aVS.size(); i++) + for (int i = 0; i<m_aVS.size(); i++) { - aVS.push_back(m_aVS[i]); + CShaderVS *pShader = m_aVS[i]; + LoadVertexShader(pShader->m_szPath, pShader, pShader->m_aMacros); + g_fnReportf(REPORT_MSG_LEVEL_NOTICE, " VS id [%d], file [%s], name [%s], \n", i, pShader->m_szPath, pShader->m_szName); } - for (int i = 0; i<m_aPS.size(); i++) - { - aPS.push_back(m_aPS[i]); - } - - m_aVS.clear(); - m_aPS.clear(); + g_fnReportf(REPORT_MSG_LEVEL_NOTICE, " -------\n"); - for (int i = 0; i<aVS.size(); i++) + for (int i = 0; i<m_aPS.size(); i++) { - load(SHADER_TYPE_VERTEX, aVS[i]->m_szPath, aVS[i]->m_szName, SHADER_CHECKDOUBLE_NONE, aVS[i]->m_aMacros); + CShaderPS *pShader = m_aPS[i]; + LoadPixelShader(m_aPS[i]->m_szPath, m_aPS[i], m_aPS[i]->m_aMacros); + g_fnReportf(REPORT_MSG_LEVEL_NOTICE, " PS id [%d], file[%s], name[%s], \n", i, pShader->m_szPath, pShader->m_szName); } - for (int i = 0; i<aPS.size(); i++) - { - load(SHADER_TYPE_PIXEL, aPS[i]->m_szPath, aPS[i]->m_szName, SHADER_CHECKDOUBLE_NONE, aPS[i]->m_aMacros); - } + g_fnReportf(REPORT_MSG_LEVEL_NOTICE, "%s: all reloaded shaders\n", SX_LIB_NAME); } ID CShaderManager::existsPath(SHADER_TYPE type, const char *szPath) @@ -613,68 +538,103 @@ bool CShaderManager::existsFile(const char *szPath) return Core_0FileExists(tmppath); } -ID CShaderManager::load(SHADER_TYPE type_shader, const char *szPath, const char *szName, SHADER_CHECKDOUBLE check_double, D3DXMACRO *aMacro) +ID CShaderManager::preLoad(SHADER_TYPE type, const char *szPath, const char *szName, SHADER_CHECKDOUBLE check_double, D3DXMACRO *aMacros) { - if (!isValidateTypeName(type_shader, szName)) + if (!isValidateTypeName(type, szName)) { g_fnReportf(REPORT_MSG_LEVEL_ERROR, "%s: %s - name of shader [%s] is invalid", SX_LIB_NAME, GEN_MSG_LOCATION, szName); return -1; } - if (type_shader == SHADER_TYPE_VERTEX) - { - ID id = -1; + ID id = -1; - if (check_double == SHADER_CHECKDOUBLE_PATH) - id = existsPath(type_shader, szPath); - else if (check_double == SHADER_CHECKDOUBLE_NAME) - id = existsName(type_shader, szName); + if (check_double == SHADER_CHECKDOUBLE_PATH) + id = existsPath(type, szPath); + else if (check_double == SHADER_CHECKDOUBLE_NAME) + id = existsName(type, szName); + CShader *pShader = 0; + + if (type == SHADER_TYPE_VERTEX) + { if (id == -1) { - CShaderVS *pShader = new CShaderVS(); - sprintf(pShader->m_szName, "%s", szName); - sprintf(pShader->m_szPath, "%s", szPath); - LoadVertexShader(szPath, pShader, aMacro); - - m_aVS.push_back(pShader); - id = m_aVS.size() - 1; - //g_fnReportf(REPORT_MSG_LEVEL_NOTICE, "%s: shader [%s] is loaded, name[%s], id = [%d]\n", SX_LIB_NAME, path, m_aVS[id]->m_szName, id); - return id; - } - else - { - //g_fnReportf(REPORT_MSG_LEVEL_WARNING, "%s: shader [%s] is detected, name[%s], id = [%d]\n", SX_LIB_NAME, path, m_aVS[id]->m_szName, id); - return id; + CShaderVS *pVS = new CShaderVS(); + sprintf(pVS->m_szName, "%s", szName); + sprintf(pVS->m_szPath, "%s", szPath); + //sprintf(pVS->m_szFrom, "%s", szFrom); + m_aVS.push_back(pVS); + id = m_aVS.size() -1; + pShader = pVS; } } - else if (type_shader == SHADER_TYPE_PIXEL) + else if (type == SHADER_TYPE_PIXEL) { - ID id = -1; - if (check_double == SHADER_CHECKDOUBLE_PATH) - id = existsPath(type_shader, szPath); - else if (check_double == SHADER_CHECKDOUBLE_NAME) - id = existsName(type_shader, szName); - if (id == -1) { - CShaderPS *pShader = new CShaderPS(); - sprintf(pShader->m_szName, "%s", szName); - sprintf(pShader->m_szPath, "%s", szPath); - LoadPixelShader(szPath, pShader, aMacro); - - m_aPS.push_back(pShader); + CShaderPS *pPS = new CShaderPS(); + sprintf(pPS->m_szName, "%s", szName); + sprintf(pPS->m_szPath, "%s", szPath); + //sprintf(pPS->m_szFrom, "%s", szFrom); + m_aPS.push_back(pPS); id = m_aPS.size() - 1; - //g_fnReportf(REPORT_MSG_LEVEL_NOTICE, "%s: shader [%s] is loaded, name[%s], id [%d]\n", SX_LIB_NAME, path, m_aPS[id]->m_szName, id); - return id; + pShader = pPS; } - else + } + + if (aMacros) + { + int iCountMacros = 0; + for (int i = 0; i < SXGC_SHADER_COUNT_MACRO; i++) + { + if (aMacros[i].Name == 0) + { + iCountMacros = i; + break; + } + } + + for (int i = 0; i < iCountMacros; i++) { - //g_fnReportf(REPORT_MSG_LEVEL_WARNING, "%s: shader [%s] is detected, name[%s], id [%d]\n", SX_LIB_NAME, path, m_aPS[id]->m_szName, id); - return id; + pShader->m_aMacros[i] = aMacros[i]; } + + pShader->m_aMacros[iCountMacros].Name = 0; + pShader->m_aMacros[iCountMacros].Definition = 0; } - return -1; + + return id; +} + +void CShaderManager::allLoad() +{ + if (m_aVS.size() == m_iLastAllLoadVS || m_aPS.size() == m_iLastAllLoadPS) + return; + + g_fnReportf(REPORT_MSG_LEVEL_NOTICE, "%s: load shaders ...\n", SX_LIB_NAME); + + for (int i = 0, il = m_aVS.size(); i < il; ++i) + { + CShaderVS *pShader = m_aVS[i]; + LoadVertexShader(pShader->m_szPath, pShader, pShader->m_aMacros); + + g_fnReportf(REPORT_MSG_LEVEL_NOTICE, " VS id [%d], file [%s], name [%s], \n", i, pShader->m_szPath, pShader->m_szName); + } + + g_fnReportf(REPORT_MSG_LEVEL_NOTICE, " -------\n"); + + for (int i = 0, il = m_aPS.size(); i < il; ++i) + { + CShaderPS *pShader = m_aPS[i]; + LoadPixelShader(pShader->m_szPath, pShader, pShader->m_aMacros); + + g_fnReportf(REPORT_MSG_LEVEL_NOTICE, " PS id [%d], file[%s], name[%s], \n", i, pShader->m_szPath, pShader->m_szName); + } + + m_iLastAllLoadVS = m_aVS.size(); + m_iLastAllLoadPS = m_aPS.size(); + + g_fnReportf(REPORT_MSG_LEVEL_NOTICE, "%s: all loaded shaders\n", SX_LIB_NAME); } void CShaderManager::update(SHADER_TYPE type_shader, const char *szName) @@ -692,14 +652,9 @@ void CShaderManager::update(SHADER_TYPE type_shader, const char *szName) { if (strcmp(m_aVS[i]->m_szName, szName) == 0) { - CShaderVS *pShader = new CShaderVS(); - LoadVertexShader(m_aVS[i]->m_szPath, pShader, m_aVS[i]->m_aMacros); - + CShaderVS *pShader = m_aVS[i]; mem_release(m_aVS[i]->m_pVertexShader); - //mem_release(m_aVS[i]->m_pConstTable); - - mem_delete(m_aVS[i]); - m_aVS[i] = pShader; + LoadVertexShader(m_aVS[i]->m_szPath, pShader, m_aVS[i]->m_aMacros); isUpdate = true; } } @@ -710,14 +665,9 @@ void CShaderManager::update(SHADER_TYPE type_shader, const char *szName) { if (strcmp(m_aPS[i]->m_szName, szName) == 0) { - CShaderPS *pShader = new CShaderPS(); - LoadPixelShader(m_aPS[i]->m_szPath, pShader, m_aPS[i]->m_aMacros); - + CShaderPS *pShader = m_aPS[i]; mem_release(m_aPS[i]->m_pPixelShader); - //mem_release(m_aPS[i]->m_pConstTable); - - mem_delete(m_aPS[i]); - m_aPS[i] = pShader; + LoadPixelShader(m_aPS[i]->m_szPath, pShader, m_aPS[i]->m_aMacros); isUpdate = true; } } @@ -736,36 +686,19 @@ void CShaderManager::update(SHADER_TYPE type_shader, ID id) { if (m_aVS.size() > id && m_aVS[id]) { - CShaderVS *pShader = new CShaderVS(); - + CShaderVS *pShader = m_aVS[id]; + mem_release(m_aVS[id]->m_pVertexShader); LoadVertexShader(m_aVS[id]->m_szPath, pShader, pShader->m_aMacros); - sprintf(pShader->m_szName, "%s", m_aVS[id]->m_szName); - sprintf(pShader->m_szPath, "%s", m_aVS[id]->m_szPath); - - //mem_release(m_aVS[id]->m_pVertexShader); - //mem_release(m_aVS[id]->m_pConstTable); - - mem_delete(m_aVS[id]); - m_aVS[id] = pShader; isUpdate = true; } } else if (type_shader == SHADER_TYPE_PIXEL) { - if (m_aPS.size() > id && m_aVS[id]) + if (m_aPS.size() > id && m_aPS[id]) { - CShaderPS *pShader = new CShaderPS(); - + CShaderPS *pShader = m_aPS[id]; + mem_release(m_aPS[id]->m_pPixelShader); LoadPixelShader(m_aPS[id]->m_szPath, pShader, m_aPS[id]->m_aMacros); - - sprintf(pShader->m_szName, "%s", m_aPS[id]->m_szName); - sprintf(pShader->m_szPath, "%s", m_aPS[id]->m_szPath); - - //mem_release(m_aPS[id]->m_pPixelShader); - //mem_release(m_aPS[id]->m_pConstTable); - - mem_delete(m_aPS[id]); - m_aPS[id] = pShader; isUpdate = true; } } diff --git a/source/gcore/shader.h b/source/gcore/shader.h index b0e2971d9bb2fe5cff2cbb1ad059ccf5a3a23d40..bcc5c739065f1623f548a28e19ffb2a1183be433 100644 --- a/source/gcore/shader.h +++ b/source/gcore/shader.h @@ -41,6 +41,9 @@ struct CShader //! ��� ����� ������� char m_szPath[SXGC_SHADER_MAX_SIZE_DIR]; + //! ��� ��� �������� ���� ������ (�������) + //char m_szFrom[SXGC_SHADER_MAX_SIZE_FULLPATH]; + //! ���������� ���������� int m_iCountVar; @@ -138,8 +141,11 @@ public: //! ���������� �� ���� name � ����� � ��������� bool existsFile(const char *szPath); - //! �������� ������� - ID load(SHADER_TYPE type, const char *szPath, const char *szName, SHADER_CHECKDOUBLE check_double, D3DXMACRO *aMacros = 0); + //! ���������� ������� � ������� + ID preLoad(SHADER_TYPE type, const char *szPath, const char *szName, SHADER_CHECKDOUBLE check_double, D3DXMACRO *aMacros = 0); + + //! �������� ���� �������� + void allLoad(); //! ���������� ������� �� ����� void update(SHADER_TYPE type, const char *szName); @@ -191,6 +197,7 @@ public: //! �������� �� ������ � ������ id bool isValidated(SHADER_TYPE type, ID id); + //! �������� �� ��� � ������� (���������� ������ ��������� � �����) bool isValidateTypeName(SHADER_TYPE type, const char *szName); @@ -203,6 +210,9 @@ public: protected: Array<CShaderVS*> m_aVS; Array<CShaderPS*> m_aPS; + + int m_iLastAllLoadVS; + int m_iLastAllLoadPS; }; #endif \ No newline at end of file diff --git a/source/gcore/sxgcore.cpp b/source/gcore/sxgcore.cpp index 2020c7fc82f05e8361b36dd8466c4aa71fbdaa80..6a7b66c7d8dd7bbb8e27dc10c0e3c91a3ce648b9 100644 --- a/source/gcore/sxgcore.cpp +++ b/source/gcore/sxgcore.cpp @@ -442,7 +442,14 @@ SX_LIB_API ID SGCore_ShaderLoad(SHADER_TYPE type_shader, const char* path, const { SG_PRECOND(-1); - return g_pManagerShaders->load(type_shader, path, name, is_check_double, macro); + return g_pManagerShaders->preLoad(type_shader, path, name, is_check_double, macro); +} + +SX_LIB_API void SGCore_ShaderAllLoad() +{ + SG_PRECOND(); + + return g_pManagerShaders->allLoad(); } SX_LIB_API void SGCore_ShaderUpdateN(SHADER_TYPE type_shader, const char* name) @@ -638,7 +645,7 @@ SX_LIB_API IDirect3DTexture9* SGCore_LoadTexGetTex(ID id) return g_pManagerTextures->GetTexture(id); } -SX_LIB_API void SGCore_LoadTexLoadTextures() +SX_LIB_API void SGCore_LoadTexAllLoad() { SG_PRECOND(_VOID); diff --git a/source/gcore/sxgcore.h b/source/gcore/sxgcore.h index 1f4a94d429d5a308a2a204e90803522515260e00..bc8a394710fae4b1e3becb5f8b1716876978f30f 100644 --- a/source/gcore/sxgcore.h +++ b/source/gcore/sxgcore.h @@ -307,7 +307,10 @@ enum SHADER_CHECKDOUBLE //************************************************************************** -//! загрузка шейдера +//! загрузить все шейдеры поставленные в очередь +SX_LIB_API void SGCore_ShaderAllLoad(); + +//! поставить шейдер в очередь загрузки SX_LIB_API ID SGCore_ShaderLoad( SHADER_TYPE type_shader, //!< тип шейдера const char* path, //!< имя файла шейдера с расширением @@ -506,7 +509,7 @@ SX_LIB_API void SGCore_LoadTexUpdate(ID id); SX_LIB_API IDirect3DTexture9* SGCore_LoadTexGetTex(ID id); //! загрузка всех текстур поставленных в очередь, если есть очередь -SX_LIB_API void SGCore_LoadTexLoadTextures(); +SX_LIB_API void SGCore_LoadTexAllLoad(); //!@} sxgcore_loadtex diff --git a/source/geom/green.cpp b/source/geom/green.cpp index 6d6779cdd706a71c8daa8e446205c28be86e3780..b8f1a3b7359d7b9959dd39b3f9c4b6a09da1e43e 100644 --- a/source/geom/green.cpp +++ b/source/geom/green.cpp @@ -445,7 +445,7 @@ void Green::CPUFillingArrIndeces(ISXFrustum* frustum, float3* viewpos, ID id_arr tmpcountcom = &(ArrComFor[id_arr]->arr[i]->CountCom); tmpsegments = ArrComFor[id_arr]->arr[i]->Arr; - ArrComFor[id_arr]->queue.clear(); + ArrComFor[id_arr]->queue.clearFast(); //long tmpcount = 0; ArrComFor[id_arr]->queue.push_back(ArrModels[i]->SplitsTree); @@ -855,7 +855,7 @@ ID Green::Init(StaticGeom* geom, const char* name, if (def_str_validate(path_mask)) { ID IDTexMask = SGCore_LoadTexAddName(path_mask, LoadTexType::ltt_load); - SGCore_LoadTexLoadTextures(); + SGCore_LoadTexAllLoad(); GenByTex(geom, tmpnewmpdel, IDTexMask, &mmin, &mmax, count_max); } diff --git a/source/level/weather.cpp b/source/level/weather.cpp index 450a259f0eb0ad56a30198de0fbb604629d3159a..79a888466b140742cfd8a126fc1137b2cf3000ac 100644 --- a/source/level/weather.cpp +++ b/source/level/weather.cpp @@ -41,7 +41,7 @@ void CWeatherRndSnd::resetOld() if (m_aCurrSndIDs[i] >= 0) SSCore_SndStop(m_aCurrSndIDs[i]); } - m_aCurrSndIDs.clear(); + m_aCurrSndIDs.clearFast(); } void CWeatherRndSnd::setParamPlayVolume(int iBVol, int iEVol) diff --git a/source/mtllight/material.cpp b/source/mtllight/material.cpp index bd500b35229bdf63fe279bb3ecaff5e47c592429..b034400935d121dde89106fcde1afae9596632f1 100644 --- a/source/mtllight/material.cpp +++ b/source/mtllight/material.cpp @@ -164,6 +164,7 @@ void Materials::Material::Nulling() Penetration = 0.f; HitChance = 1.f; + Density = 1500; VS = MaterialDataShader(); PS = MaterialDataShader(); @@ -699,6 +700,20 @@ float Materials::MtlGetHitChance(ID id) } +void Materials::MtlSetDensity(ID id, float fDensity) +{ + MTL_PRE_COND_ID(id, _VOID); + ArrMaterials[id]->mtl->Density = fDensity; +} + +float Materials::MtlGetDensity(ID id) +{ + MTL_PRE_COND_ID(id, -1); + return ArrMaterials[id]->mtl->Density; +} + + + void Materials::MtlSetTypeTransparency(ID id, MTLTYPE_TRANSPARENCY type) { MTL_PRE_COND_ID(id); @@ -1268,6 +1283,9 @@ bool Materials::LoadMtl(const char* name, Material** mtl) if (config->keyExists(tmp_name, "hit_chance")) 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->LightParam.ParamTexHand = CreateTexParamLighting(tmpMtl->LightParam.RoughnessValue, tmpMtl->LightParam.F0Value, tmpMtl->LightParam.ThicknessValue); //говорим что не установлено использовать ли текстуру или нет @@ -1707,6 +1725,7 @@ void Materials::MtlSave(ID id) fprintf(file, "thickness = %f\n", mtrl->LightParam.ThicknessValue); fprintf(file, "penetration = %f\n", mtrl->Penetration); fprintf(file, "hit_chance = %f\n", mtrl->HitChance); + fprintf(file, "density = %f\n", mtrl->Density); fprintf(file, "refraction = %d\n", mtrl->LightParam.TypeRefraction); diff --git a/source/mtllight/material.h b/source/mtllight/material.h index b8d080070d1b46edc34405c1b68a3f9e5df0814c..fc7181cb1ed8b3e16aea31fc10efa35cc27b796b 100644 --- a/source/mtllight/material.h +++ b/source/mtllight/material.h @@ -126,6 +126,9 @@ public: void MtlSetHitChance(ID id, float fHitChance); float MtlGetHitChance(ID id); + void MtlSetDensity(ID id, float fDensity); + float MtlGetDensity(ID id); + void MtlSetTypeTransparency(ID id, MTLTYPE_TRANSPARENCY type); MTLTYPE_TRANSPARENCY MtlGetTypeTransparency(ID id); @@ -252,6 +255,7 @@ public: float Penetration; float HitChance; + float Density; MTLTYPE_MODEL Type; }; diff --git a/source/mtllight/sxmtllight.cpp b/source/mtllight/sxmtllight.cpp index 031fc631a39fbc121964649ecbb4c2ea6c98be90..817681b77a0c0ce96c7c9fa053e4edc0a60673e1 100644 --- a/source/mtllight/sxmtllight.cpp +++ b/source/mtllight/sxmtllight.cpp @@ -967,6 +967,18 @@ SX_LIB_API void SML_MtlSetHitChance(ID id, float fHitChance) ArrMaterials->MtlSetHitChance(id, fHitChance); } +SX_LIB_API float SML_MtlGetDensity(ID id) +{ + ML_PRECOND(-1); + return ArrMaterials->MtlGetDensity(id); +} + +SX_LIB_API void SML_MtlSetDensity(ID id, float fDensity) +{ + ML_PRECOND(_VOID); + ArrMaterials->MtlSetDensity(id, fDensity); +} + //########################################################################## SX_LIB_API void SML_MtlSetLighting(ID id, bool is_lighting) diff --git a/source/mtllight/sxmtllight.h b/source/mtllight/sxmtllight.h index 0ad852fda4459b3079dbc815b0ee531f2aaba9c5..1f475ca2c9c71c3f6e7846850d4708ace428805d 100644 --- a/source/mtllight/sxmtllight.h +++ b/source/mtllight/sxmtllight.h @@ -907,6 +907,9 @@ SX_LIB_API void SML_MtlSetPenetration(ID id, float fPenetration); SX_LIB_API float SML_MtlGetHitChance(ID id); SX_LIB_API void SML_MtlSetHitChance(ID id, float fHitChance); +SX_LIB_API float SML_MtlGetDensity(ID id); +SX_LIB_API void SML_MtlSetDensity(ID id, float fDensity); + //использование альфа теста для материала SX_LIB_API bool SML_MtlGetUsingAlphaTest(ID id); //!< используется ли альфа тест для материала SX_LIB_API void SML_MtlSetUsingAlphaTest(ID id, bool isUsing); //!< установка использования альфа теста diff --git a/source/physics/PhyWorld.cpp b/source/physics/PhyWorld.cpp index 19b342a7366ab3b62e3175200190255214891f35..b0a1966881f2a738e29a7f08ce19fd2dd0cecd51 100644 --- a/source/physics/PhyWorld.cpp +++ b/source/physics/PhyWorld.cpp @@ -53,19 +53,19 @@ PhyWorld::~PhyWorld() mem_delete(m_pBroadphase); } -void PhyWorld::Render() +void PhyWorld::render() { if(*m_bDebugDraw) { m_pDynamicsWorld->debugDrawWorld(); - ((DebugDrawer*)(m_pDynamicsWorld->getDebugDrawer()))->Render(); + ((DebugDrawer*)(m_pDynamicsWorld->getDebugDrawer()))->render(); } } -void PhyWorld::SetThreadNum(int tnum) +void PhyWorld::setThreadNum(int tnum) { } -void PhyWorld::Update(int thread) +void PhyWorld::update(int thread) { static UINT time0 = GetTickCount(); UINT time1 = GetTickCount(); @@ -78,7 +78,7 @@ void PhyWorld::Update(int thread) time0 = time1; } -void PhyWorld::Sync() +void PhyWorld::sync() { } @@ -623,7 +623,7 @@ int PhyWorld::DebugDrawer::getDebugMode() const return(m_iDebugMode); } -void PhyWorld::DebugDrawer::Render() +void PhyWorld::DebugDrawer::render() { if(!m_vDrawData.size()) { diff --git a/source/physics/PhyWorld.h b/source/physics/PhyWorld.h index ac40fba3aadd5316678698c055cfddb9210df1c8..103a8637ccab0cb659ebd1c3fb8b4ed1c30a9397 100644 --- a/source/physics/PhyWorld.h +++ b/source/physics/PhyWorld.h @@ -38,9 +38,9 @@ public: PhyWorld(); ~PhyWorld(); - void SetThreadNum(int tnum); - void Update(int thread = 0); - void Sync(); + void setThreadNum(int tnum); + void update(int thread = 0); + void sync(); void AddShape(btRigidBody * pBody); void RemoveShape(btRigidBody * pBody); @@ -51,7 +51,7 @@ public: bool ImportGeom(const char * file); bool ExportGeom(const char * file); - void Render(); + void render(); MTLTYPE_PHYSIC GetMtlType(const btCollisionObject *pBody, const btCollisionWorld::LocalShapeInfo *pShapeInfo); @@ -82,7 +82,7 @@ public: int getDebugMode() const; - void Render(); + void render(); }; protected: diff --git a/source/physics/sxphysics_dll.cpp b/source/physics/sxphysics_dll.cpp index 49840b3e2d58cb2cff775924d7da3ed52f10bc92..99a5920d4d6cf4ef14269edc537a55b346ec55a5 100644 --- a/source/physics/sxphysics_dll.cpp +++ b/source/physics/sxphysics_dll.cpp @@ -75,17 +75,17 @@ SX_LIB_API void SXPhysics_AKill() SX_LIB_API void SXPhysics_Update(int thread) { SP_PRECOND(_VOID); - g_pWorld->Update(thread); + g_pWorld->update(thread); } SX_LIB_API void SXPhysics_UpdateSetThreadNum(int num) { SP_PRECOND(_VOID); - g_pWorld->SetThreadNum(num); + g_pWorld->setThreadNum(num); } SX_LIB_API void SXPhysics_Sync() { SP_PRECOND(_VOID); - g_pWorld->Sync(); + g_pWorld->sync(); } SX_LIB_API void SXPhysics_Dbg_Set(report_func rf) @@ -108,7 +108,7 @@ SX_LIB_API void SXPhysics_UnloadGeom() SX_LIB_API void SXPhysics_DebugRender() { SP_PRECOND(_VOID); - g_pWorld->Render(); + g_pWorld->render(); } SX_LIB_API void SXPhysics_AddShape(btRigidBody * pBody) diff --git a/source/skyxengine.cpp b/source/skyxengine.cpp index 20ab9ef96f5d6a2d5505c2ed66537a61470fa17f..97bf1bf4b201e91f4e40e12a127b3186431248e0 100644 --- a/source/skyxengine.cpp +++ b/source/skyxengine.cpp @@ -1009,6 +1009,8 @@ int SkyXEngine_CycleMain() } else { + SGCore_LoadTexAllLoad(); + SGCore_ShaderAllLoad(); Core_TimesUpdate(); Core_0ConsoleUpdate(); SSInput_Update(); @@ -1016,7 +1018,6 @@ int SkyXEngine_CycleMain() Core_RFloat3Get(G_RI_FLOAT3_OBSERVER_POSITION, &vCamPos); Core_RFloat3Get(G_RI_FLOAT3_OBSERVER_DIRECTION, &vCamDir); SSCore_Update(&vCamPos, &vCamDir); - SGCore_LoadTexLoadTextures(); static DWORD lastTime = TimeGetMls(Core_RIntGet(G_RI_INT_TIMER_RENDER)); DWORD currTime = TimeGetMls(Core_RIntGet(G_RI_INT_TIMER_RENDER)); diff --git a/source/sxae/Camera.cpp b/source/sxae/Camera.cpp index b10874e5d1081618925a0241814ff04f636982fa..ab62d2f12c75a7da07b5b23611bbfa50ce7951dd 100644 --- a/source/sxae/Camera.cpp +++ b/source/sxae/Camera.cpp @@ -85,12 +85,12 @@ void Camera::Strafe(float fDelta) UpdateMatrix(); } -void Camera::Move(CAMERA_MOVE m, bool state) +void Camera::move(CAMERA_MOVE m, bool state) { bMove[m] = state; } -void Camera::Advance() +void Camera::advance() { if(bMove[CAMERA_MOVE_FORWARD]) { @@ -111,7 +111,7 @@ void Camera::Advance() } } -float3_t Camera::GetPos() +float3_t Camera::getPos() { return(m_vPosition); } diff --git a/source/sxae/Camera.h b/source/sxae/Camera.h index 55d89e37ed455dfdf1d8d5949dcf57ce8a45f2d1..197ea65dddef1403b8c3b984b1edd4120f646099 100644 --- a/source/sxae/Camera.h +++ b/source/sxae/Camera.h @@ -40,10 +40,10 @@ public: void Forward(float fDelta); void Strafe(float fDelta); - void Move(CAMERA_MOVE m, bool state); - void Advance(); + void move(CAMERA_MOVE m, bool state); + void advance(); - float3_t GetPos(); + float3_t getPos(); float3_t GetViewDir(); }; diff --git a/source/sxae/Editor.cpp b/source/sxae/Editor.cpp index 962dbd89e0c7052b6e0983d62742a672af537b8b..02288683667b55d5a77322e0b6d25174ee365983 100644 --- a/source/sxae/Editor.cpp +++ b/source/sxae/Editor.cpp @@ -93,32 +93,32 @@ m_bDirty(false) m_pAnimMgr = new AnimationManager(m_pd3dDevice); m_pCurAnim = new Animation(m_pAnimMgr); - m_pCurAnim->SetCallback((AnimStateCB)AnimPlayCB); - m_pCurAnim->SetProgressCB((::AnimProgressCB)AnimProgressCB); - //m_pCurAnim->SetModel("C:/DSe/SX/project/gamesource/models/krovosos/krovososa.dse"); - //m_pCurAnim->SetModel("C:/DSe/SX/project/gamesource/models/spas/spasa.dse"); - //m_pCurAnim->SetModel("C:/DSe/SX/project/gamesource/models/pm/pma.dse"); - //m_pCurAnim->SetModel("C:/DSe/SX/project/gamesource/models/ak74/ak74a.dse"); - //m_pCurAnim->PlayAnimation("reload", 0); - - //AddModel("C:/revo/build/gamesource/models/krovosos/krovososa.dse");//ak74_ref.dse - //AddModel("C:/revo/build/gamesource/models/ak74/ak74_ref.dse"); - //AddModel("C:/revo/build/gamesource/models/ak74/hands.dse"); - //AddModel("C:/revo/build/gamesource/models/ak74/reload.dse"); + m_pCurAnim->setCallback((AnimStateCB)AnimPlayCB); + m_pCurAnim->setProgressCB((::AnimProgressCB)AnimProgressCB); + //m_pCurAnim->setModel("C:/DSe/SX/project/gamesource/models/krovosos/krovososa.dse"); + //m_pCurAnim->setModel("C:/DSe/SX/project/gamesource/models/spas/spasa.dse"); + //m_pCurAnim->setModel("C:/DSe/SX/project/gamesource/models/pm/pma.dse"); + //m_pCurAnim->setModel("C:/DSe/SX/project/gamesource/models/ak74/ak74a.dse"); + //m_pCurAnim->playAnimation("reload", 0); + + //addModel("C:/revo/build/gamesource/models/krovosos/krovososa.dse");//ak74_ref.dse + //addModel("C:/revo/build/gamesource/models/ak74/ak74_ref.dse"); + //addModel("C:/revo/build/gamesource/models/ak74/hands.dse"); + //addModel("C:/revo/build/gamesource/models/ak74/reload.dse"); /*ModelPart mp; mp.attachDesc.type = MA_BONE; strcpy(mp.attachDesc.szBone, "bip01_r_hand"); mp.uImportFlags = MI_ALL; - mp.pMdl = m_pAnimMgr->LoadModel("C:/revo/build/gamesource/models/ak74/ak74.dse", true); - m_pCurAnim->AddModel(&mp);*/ + mp.pMdl = m_pAnimMgr->loadModel("C:/revo/build/gamesource/models/ak74/ak74.dse", true); + m_pCurAnim->addModel(&mp);*/ //bip01_r_hand - //AddModel("F:/revo/build/gamesource/models/ak74/ak74.dse"); - //AddModel("F:/revo/build/gamesource/models/ak74/idle.dse"); - //AddModel("C:/revo/build/gamesource/models/ak74/reload.dse"); - //AddModel("C:/revo/build/gamesource/models/ak74/shoot.dse"); - //m_pCurAnim->Assembly(); + //addModel("F:/revo/build/gamesource/models/ak74/ak74.dse"); + //addModel("F:/revo/build/gamesource/models/ak74/idle.dse"); + //addModel("C:/revo/build/gamesource/models/ak74/reload.dse"); + //addModel("C:/revo/build/gamesource/models/ak74/shoot.dse"); + //m_pCurAnim->assembly(); //if(m_pCurAnim->m_pMdl) { /*UINT c = m_pCurAnim->m_pMdl->GetSequenceCount(); @@ -225,11 +225,11 @@ LRESULT Editor::MenuCmd(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) break; case IDC_ANIM_PAUSE: - edt->m_pCurAnim->Stop(); + edt->m_pCurAnim->stop(); break; case IDC_ANIM_PLAY: - edt->m_pCurAnim->Resume(); + edt->m_pCurAnim->resume(); break; case IDC_ANIM_LOOPED: @@ -343,14 +343,14 @@ LRESULT Editor::MenuCmd(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) if(Tools::DlgConfirm()) { - edt->DelModel(sel); + edt->delModel(sel); } } break; case IDC_PT_ADD: { - m_pEditor->AddModel(""); + m_pEditor->addModel(""); ISXGUIListBox * pList = ((TabAttachments*)edt->m_pTM->m_pTabAttachments)->AttachmentsList; pList->SetSel(pList->GetCountItem() - 1); m_pEditor->OnPartListSelChg(); @@ -368,7 +368,7 @@ LRESULT Editor::MenuCmd(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) case IDC_PT_CB_HIDDEN: edt->SetPartFlag(MP_HIDDEN, (byte)SendMessage((HWND)lParam, BM_GETCHECK, 0, 0)); - edt->m_pCurAnim->Assembly(); + edt->m_pCurAnim->assembly(); break; case IDC_PT_CB_COLLIDE: @@ -409,14 +409,14 @@ LRESULT Editor::MenuCmd(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { if(!m_pEditor->m_pHitboxesPart) { - m_pEditor->m_pHitboxesPart = m_pEditor->AddModel("!hitboxes"); + m_pEditor->m_pHitboxesPart = m_pEditor->addModel("!hitboxes"); } ModelHitbox hb; memset(&hb, 0, sizeof(hb)); strcpy(hb.name, "New hitbox"); m_pEditor->m_pHitboxesPart->AddHitbox(&hb); - m_pEditor->m_pCurAnim->Assembly(); + m_pEditor->m_pCurAnim->assembly(); m_pEditor->UpdateHitboxList(m_pEditor->m_pHitboxesPart, false); ISXGUIListBox * pList = ((TabHitboxes*)edt->m_pTM->m_pTabHitboxes)->HBList; @@ -633,16 +633,16 @@ LRESULT Editor::CamInput(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) switch(wParam) { case 'W': - edt->m_cam.Move(Camera::CAMERA_MOVE_FORWARD, 1); + edt->m_cam.move(Camera::CAMERA_MOVE_FORWARD, 1); break; case 'S': - edt->m_cam.Move(Camera::CAMERA_MOVE_BACKWARD, 1); + edt->m_cam.move(Camera::CAMERA_MOVE_BACKWARD, 1); break; case 'A': - edt->m_cam.Move(Camera::CAMERA_MOVE_LEFT, 1); + edt->m_cam.move(Camera::CAMERA_MOVE_LEFT, 1); break; case 'D': - edt->m_cam.Move(Camera::CAMERA_MOVE_RIGHT, 1); + edt->m_cam.move(Camera::CAMERA_MOVE_RIGHT, 1); break; } break; @@ -650,16 +650,16 @@ LRESULT Editor::CamInput(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) switch(wParam) { case 'W': - edt->m_cam.Move(Camera::CAMERA_MOVE_FORWARD, 0); + edt->m_cam.move(Camera::CAMERA_MOVE_FORWARD, 0); break; case 'S': - edt->m_cam.Move(Camera::CAMERA_MOVE_BACKWARD, 0); + edt->m_cam.move(Camera::CAMERA_MOVE_BACKWARD, 0); break; case 'A': - edt->m_cam.Move(Camera::CAMERA_MOVE_LEFT, 0); + edt->m_cam.move(Camera::CAMERA_MOVE_LEFT, 0); break; case 'D': - edt->m_cam.Move(Camera::CAMERA_MOVE_RIGHT, 0); + edt->m_cam.move(Camera::CAMERA_MOVE_RIGHT, 0); break; } break; @@ -694,7 +694,7 @@ LRESULT Editor::AnimListCB(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) if(curSel != -1) { UINT seqi = (UINT)lb->GetItemData(curSel); - edt->m_pCurAnim->Play(edt->m_vAnims[seqi].seq->name, 100); + edt->m_pCurAnim->play(edt->m_vAnims[seqi].seq->name, 100); } break; } @@ -716,7 +716,7 @@ LRESULT Editor::AnimFilterCB(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) void Editor::AnimPlayCB(int slot, ANIM_STATE state, Animation * pAnim) { - ModelSequence const * seq = m_pEditor->m_pCurAnim->GetCurAnim(slot); + ModelSequence const * seq = m_pEditor->m_pCurAnim->getCurAnim(slot); TabAnimation * ta = (TabAnimation*)m_pEditor->m_pTM->m_pTabAnimation; switch(state) { @@ -751,13 +751,13 @@ LRESULT Editor::AnimTBProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { case WM_HSCROLL: pos = ((TabAnimation*)m_pEditor->m_pTM->m_pTabAnimation)->AnimCtlProgressTrack->GetPos(); - m_pEditor->m_pCurAnim->SetProgress(pos / 1000.0f); + m_pEditor->m_pCurAnim->setProgress(pos / 1000.0f); break; case WM_SETFOCUS: - m_pEditor->m_pCurAnim->SetAdvance(false); + m_pEditor->m_pCurAnim->setAdvance(false); break; case WM_KILLFOCUS: - m_pEditor->m_pCurAnim->SetAdvance(true); + m_pEditor->m_pCurAnim->setAdvance(true); break; } return(0); @@ -772,7 +772,7 @@ void Editor::MenuNew(HWND hwnd) while(m_pEditor->m_vMdlParts.size()) { - m_pEditor->DelModel(0); + m_pEditor->delModel(0); } m_bDirty = false; } @@ -812,10 +812,10 @@ void Editor::MenuBrowse(HWND hwnd) //unload all parts while(m_pEditor->m_vMdlParts.size()) { - m_pEditor->DelModel(0); + m_pEditor->delModel(0); } - m_pEditor->AddModel(ofn.lpstrFile, MI_ALL, false, true); - m_pEditor->m_pCurAnim->Assembly(); + m_pEditor->addModel(ofn.lpstrFile, MI_ALL, false, true); + m_pEditor->m_pCurAnim->assembly(); RenderBoneList(); m_bDirty = false; } @@ -848,8 +848,8 @@ void Editor::MenuBrowseImport(HWND hwnd, bool use) UINT iflags = DialogBoxParam(NULL, MAKEINTRESOURCE(IDD_DIALOG_IMPORT), hwnd, DlgImportProc, (LPARAM)&ofn.lpstrFile); if(use) { - m_pEditor->AddModel(ofn.lpstrFile, iflags); - m_pEditor->m_pCurAnim->Assembly(); + m_pEditor->addModel(ofn.lpstrFile, iflags); + m_pEditor->m_pCurAnim->assembly(); RenderBoneList(); } else @@ -1019,17 +1019,17 @@ bool Editor::SaveTo(char * to) strcpy(mp.name, "!bones"); mp.pMdl = m_pCurAnim->m_pMdl; mp.attachDesc.type = MA_SKIN; - pTmpAnim.AddModel(&mp); + pTmpAnim.addModel(&mp); int c = 0; for(int i = 0, l = m_vMdlParts.size(); i < l; ++i) { if(!(m_vMdlParts[i]->uFlags & MP_IMPORTED)) { - pTmpAnim.AddModel(m_vMdlParts[i]); + pTmpAnim.addModel(m_vMdlParts[i]); ++c; } } - pTmpAnim.Assembly(); + pTmpAnim.assembly(); pTmpAnim.m_pMdl->m_hdr2.iActivitiesTableCount = m_pvActivities->size(); pTmpAnim.m_pMdl->pActivities = new ModelActivity[pTmpAnim.m_pMdl->m_hdr2.iActivitiesTableCount]; @@ -1272,7 +1272,7 @@ void Editor::Update() { CenterMouse(); } - m_cam.Advance(); + m_cam.advance(); } m_mViewMat = m_cam.GetMatrix(); @@ -1306,7 +1306,7 @@ void Editor::Update() SGCore_ShaderBind(SHADER_TYPE_VERTEX, m_pVSH); SGCore_ShaderBind(SHADER_TYPE_PIXEL, m_pPSH); } - m_pAnimMgr->Render(); + m_pAnimMgr->render(); SGCore_ShaderUnBind(); if(((TabHitboxes*)m_pTM->m_pTabHitboxes)->m_bShown) @@ -1314,11 +1314,11 @@ void Editor::Update() DrawHitboxes(); m_pd3dDevice->SetRenderState(D3DRS_ZENABLE, 0); m_pd3dDevice->SetTransform(D3DTS_WORLD, (D3DMATRIX*)&(SMMatrixIdentity())); - m_pCurAnim->RenderSkeleton(m_iActiveHitbox > 0 ? m_pCurAnim->GetBone(m_vHitboxes[m_iActiveHitbox].hb->bone) : -1); + m_pCurAnim->RenderSkeleton(m_iActiveHitbox > 0 ? m_pCurAnim->getBone(m_vHitboxes[m_iActiveHitbox].hb->bone) : -1); if(m_vHitboxes.size() > m_iActiveHitbox) { HitboxItem * hbi = &m_vHitboxes[m_iActiveHitbox]; - SMMATRIX mBone = (hbi->hb->bone[0] ? m_pCurAnim->GetBoneTransform(m_pCurAnim->GetBone(hbi->hb->bone)) : SMMatrixIdentity()); + SMMATRIX mBone = (hbi->hb->bone[0] ? m_pCurAnim->getBoneTransform(m_pCurAnim->getBone(hbi->hb->bone)) : SMMatrixIdentity()); //m_pd3dDevice->SetRenderState(D3DRS_ZENABLE, 0); @@ -1343,8 +1343,8 @@ void Editor::Update() } m_pd3dDevice->EndScene(); - m_pAnimMgr->Update(); - m_pAnimMgr->Sync(); + m_pAnimMgr->update(); + m_pAnimMgr->sync(); m_pSwapChain->Present(NULL, NULL, NULL, NULL, D3DSWAPEFFECT_DISCARD); } @@ -1427,9 +1427,9 @@ void Editor::RenderBoneList() cmb->Clear(); cmb_2->Clear(); cmb_2->AddItem(""); - for(int i = 0, l = m_pCurAnim->GetBoneCount(); i < l; ++i) + for(int i = 0, l = m_pCurAnim->getBoneCount(); i < l; ++i) { - m_pCurAnim->GetBoneName(i, tmp, sizeof(tmp)); + m_pCurAnim->getBoneName(i, tmp, sizeof(tmp)); if(!strcmp(tmp, text)) { sel = i; @@ -1539,7 +1539,7 @@ void Editor::OnAnimListSelChg() item = &m_vAnims[idx]; m_iCurIdx = idx; - m_pCurAnim->Play(item->seq->name, 100); + m_pCurAnim->play(item->seq->name, 100); tab->AnimPropActCmb->SetSel(item->seq->activity); tab->AnimPropActChance->SetText(String((DWORD)item->seq->act_chance).c_str()); @@ -1664,7 +1664,7 @@ void Editor::OnPartListSelChg() } } -ModelFile * Editor::AddModel(const char * mdl, UINT flags, bool forceImport, bool forceLocal) +ModelFile * Editor::addModel(const char * mdl, UINT flags, bool forceImport, bool forceLocal) { char * mdlFile = (char*)alloca(strlen(mdl) + 2) + 1; strcpy(mdlFile, mdl); @@ -1674,7 +1674,7 @@ ModelFile * Editor::AddModel(const char * mdl, UINT flags, bool forceImport, boo { *(char*)(--localPath) = '@'; } - ModelFile * pMdl = localPath[0] ? (ModelFile*)m_pAnimMgr->LoadModel(localPath, true) : NULL; + ModelFile * pMdl = localPath[0] ? (ModelFile*)m_pAnimMgr->loadModel(localPath, true) : NULL; bool bIsImported = forceImport && !forceLocal; if(pMdl) @@ -1725,7 +1725,7 @@ ModelFile * Editor::AddModel(const char * mdl, UINT flags, bool forceImport, boo } //init all sections from mdl data - m_pCurAnim->AddModel(pMdl, flags); + m_pCurAnim->addModel(pMdl, flags); m_vMdlParts.push_back(m_pCurAnim->GetPart(m_pCurAnim->GetPartCount() - 1)); @@ -1741,7 +1741,7 @@ ModelFile * Editor::AddModel(const char * mdl, UINT flags, bool forceImport, boo for(uint32_t i = 0; i < pMdl->m_hdr2.iDepsCount; ++i) { ModelPart * mpSrc = &pMdl->m_pParts[i]; - AddModel(mpSrc->file, mpSrc->uImportFlags, true); + addModel(mpSrc->file, mpSrc->uImportFlags, true); ModelPart * mp = m_vMdlParts[m_vMdlParts.size() - 1]; mpSrc->pMdl = mp->pMdl; *mp = *mpSrc; @@ -1751,7 +1751,7 @@ ModelFile * Editor::AddModel(const char * mdl, UINT flags, bool forceImport, boo return(pMdl); } -void Editor::DelModel(UINT id) +void Editor::delModel(UINT id) { if(id >= m_vMdlParts.size()) { @@ -1778,7 +1778,7 @@ void Editor::DelModel(UINT id) OnAnimListSelChg(); if(hasAnims) { - m_pCurAnim->StopAll(); + m_pCurAnim->stopAll(); } for(int i = 0, l = m_vHitboxes.size(); i < l; ++i) @@ -1808,10 +1808,10 @@ void Editor::DelModel(UINT id) m_pHitboxesPart = 0; } } - m_pCurAnim->DelModel(pt); - m_pCurAnim->Assembly(); + m_pCurAnim->delModel(pt); + m_pCurAnim->assembly(); - m_pAnimMgr->UnloadModel(mdl); + m_pAnimMgr->unloadModel(mdl); RenderPartList(); @@ -1867,7 +1867,7 @@ void Editor::OnPartApply() OnAnimListSelChg(); if(hasAnims) { - m_pCurAnim->StopAll(); + m_pCurAnim->stopAll(); } for(int i = 0, l = m_vHitboxes.size(); i < l; ++i) @@ -1893,14 +1893,14 @@ void Editor::OnPartApply() ((TabActivities*)m_pTM->m_pTabActivities)->RenderList(); - m_pAnimMgr->UnloadModel(mdl); + m_pAnimMgr->unloadModel(mdl); pt->pMdl = NULL; } //load new mdl strcpy(pt->file, szFile); UINT flags = tab->m_iflags; - ModelFile * pMdl = (ModelFile*)m_pAnimMgr->LoadModel(szFile, true); + ModelFile * pMdl = (ModelFile*)m_pAnimMgr->loadModel(szFile, true); pt->pMdl = pMdl; pt->uImportFlags = flags; bool bIsImported = (pMdl->m_hdr.iFlags & MODEL_FLAG_COMPILED); @@ -1949,7 +1949,7 @@ void Editor::OnPartApply() } - m_pCurAnim->Assembly(); + m_pCurAnim->assembly(); RenderBoneList(); // } @@ -2080,11 +2080,11 @@ void Editor::UpdateHitboxList(ModelFile * pMdl, bool bIsImported) } } - uint32_t c = pMdl->GetHitboxCount(); + uint32_t c = pMdl->getHitboxCount(); HitboxItem hbi; for(uint32_t i = 0; i < c; ++i) { - hbi.hb = (ModelHitbox*)pMdl->GetHitbox(i); + hbi.hb = (ModelHitbox*)pMdl->getHitbox(i); hbi.mdl = pMdl; hbi.isImported = bIsImported; hbi.id = i; @@ -2104,7 +2104,7 @@ void Editor::DelHitbox(UINT id) HitboxItem * hbx = &m_vHitboxes[id]; ((ModelFile*)hbx->mdl)->DelHitbox(hbx->id); - m_pCurAnim->Assembly(); + m_pCurAnim->assembly(); UpdateHitboxList((ModelFile*)hbx->mdl, false); OnHitboxListSelChg(); @@ -2122,7 +2122,7 @@ void Editor::DrawHitboxes() for(int i = 0, l = m_vHitboxes.size(); i < l; ++i) { HitboxItem * hbi = &m_vHitboxes[i]; - SMMATRIX mBone = (hbi->hb->bone[0] ? m_pCurAnim->GetBoneTransform(m_pCurAnim->GetBone(hbi->hb->bone)) : SMMatrixIdentity()); + SMMATRIX mBone = (hbi->hb->bone[0] ? m_pCurAnim->getBoneTransform(m_pCurAnim->getBone(hbi->hb->bone)) : SMMatrixIdentity()); m_pd3dDevice->SetTransform(D3DTS_WORLD, (D3DMATRIX*)&((m_iActiveHitbox == i && m_bIsDragging ? m_mHitboxMat : SMMatrixRotationX(hbi->hb->rot.x) * SMMatrixRotationY(hbi->hb->rot.y) @@ -2836,7 +2836,7 @@ void Editor::HandlerIntersectMove(const float3 & start, const float3 & dir) if(line_intersect_triangle(float3(0, 0, 0), float3(len * 0.5f, 0, 0), float3_t(len * 0.5f, len * 0.5f, 0), start, end, p) || line_intersect_triangle(float3(0, 0, 0), float3(len * 0.5f, len * 0.5f, 0), float3_t(0, len * 0.5f, 0), start, end, p)) { - float d = SMVector3Length(p - m_cam.GetPos()); + float d = SMVector3Length(p - m_cam.getPos()); if(d < mind) { mind = d; @@ -2847,7 +2847,7 @@ void Editor::HandlerIntersectMove(const float3 & start, const float3 & dir) if(line_intersect_triangle(float3(0, 0, 0), float3(len * 0.5f, 0, 0), float3_t(len * 0.5f, 0, len * 0.5f), start, end, p) || line_intersect_triangle(float3(0, 0, 0), float3(len * 0.5f, 0, len * 0.5f), float3_t(0, 0, len * 0.5f), start, end, p)) { - float d = SMVector3Length(p - m_cam.GetPos()); + float d = SMVector3Length(p - m_cam.getPos()); if(d < mind) { mind = d; @@ -2858,7 +2858,7 @@ void Editor::HandlerIntersectMove(const float3 & start, const float3 & dir) if(line_intersect_triangle(float3(0, 0, 0), float3(0, 0, len * 0.5f), float3_t(0, len * 0.5f, len * 0.5f), start, end, p) || line_intersect_triangle(float3(0, 0, 0), float3(0, len * 0.5f, len * 0.5f), float3_t(0, len * 0.5f, 0), start, end, p)) { - float d = SMVector3Length(p - m_cam.GetPos()); + float d = SMVector3Length(p - m_cam.getPos()); if(d < mind) { mind = d; @@ -2961,7 +2961,7 @@ void Editor::HandlerIntersectMove(const float3 & start, const float3 & dir) { if(line_intersect_triangle(asX[i], asX[i + 1], asX[i + 2], start, end, p)) { - float d = SMVector3Length(p - m_cam.GetPos()); + float d = SMVector3Length(p - m_cam.getPos()); if(d < mind) { mind = d; @@ -2974,7 +2974,7 @@ void Editor::HandlerIntersectMove(const float3 & start, const float3 & dir) { if(line_intersect_triangle(asY[i], asY[i + 1], asY[i + 2], start, end, p)) { - float d = SMVector3Length(p - m_cam.GetPos()); + float d = SMVector3Length(p - m_cam.getPos()); if(d < mind) { mind = d; @@ -2987,7 +2987,7 @@ void Editor::HandlerIntersectMove(const float3 & start, const float3 & dir) { if(line_intersect_triangle(asZ[i], asZ[i + 1], asZ[i + 2], start, end, p)) { - float d = SMVector3Length(p - m_cam.GetPos()); + float d = SMVector3Length(p - m_cam.getPos()); if(d < mind) { mind = d; @@ -3044,7 +3044,7 @@ void Editor::HandlerIntersectRotate(const float3 & start, const float3 & dir) if(line_intersect_triangle(p1, p2, p4, start, end, p) || line_intersect_triangle(p1, p4, p3, start, end, p)) { - float d = SMVector3Length(p - m_cam.GetPos()); + float d = SMVector3Length(p - m_cam.getPos()); if(d < mind) { mind = d; @@ -3069,7 +3069,7 @@ void Editor::HandlerIntersectRotate(const float3 & start, const float3 & dir) if(line_intersect_triangle(p1, p2, p4, start, end, p) || line_intersect_triangle(p1, p4, p3, start, end, p)) { - float d = SMVector3Length(p - m_cam.GetPos()); + float d = SMVector3Length(p - m_cam.getPos()); if(d < mind) { mind = d; @@ -3094,7 +3094,7 @@ void Editor::HandlerIntersectRotate(const float3 & start, const float3 & dir) if(line_intersect_triangle(p1, p2, p4, start, end, p) || line_intersect_triangle(p1, p4, p3, start, end, p)) { - float d = SMVector3Length(p - m_cam.GetPos()); + float d = SMVector3Length(p - m_cam.getPos()); if(d < mind) { mind = d; @@ -3128,7 +3128,7 @@ void Editor::HandlerIntersectScale(const float3 & start, const float3 & dir) if(line_intersect_triangle(float3(len075, 0, 0), float3(0, len075, 0), float3_t(len05, 0, 0), start, end, p) || line_intersect_triangle(float3(len05, 0, 0), float3(0, len075, 0), float3_t(0, len05, 0), start, end, p)) { - float d = SMVector3Length(p - m_cam.GetPos()); + float d = SMVector3Length(p - m_cam.getPos()); if(d < mind) { mind = d; @@ -3139,7 +3139,7 @@ void Editor::HandlerIntersectScale(const float3 & start, const float3 & dir) if(line_intersect_triangle(float3(len075, 0, 0), float3(0, 0, len075), float3_t(len05, 0, 0), start, end, p) || line_intersect_triangle(float3(len05, 0, 0), float3(0, 0, len075), float3_t(0, 0, len05), start, end, p)) { - float d = SMVector3Length(p - m_cam.GetPos()); + float d = SMVector3Length(p - m_cam.getPos()); if(d < mind) { mind = d; @@ -3150,7 +3150,7 @@ void Editor::HandlerIntersectScale(const float3 & start, const float3 & dir) if(line_intersect_triangle(float3(0, len075, 0), float3(0, 0, len075), float3_t(0, len05, 0), start, end, p) || line_intersect_triangle(float3(0, len05, 0), float3(0, 0, len075), float3_t(0, 0, len05), start, end, p)) { - float d = SMVector3Length(p - m_cam.GetPos()); + float d = SMVector3Length(p - m_cam.getPos()); if(d < mind) { mind = d; @@ -3160,7 +3160,7 @@ void Editor::HandlerIntersectScale(const float3 & start, const float3 & dir) if(line_intersect_triangle(float3(0, len05, 0), float3(0, 0, len05), float3_t(len05, 0, 0), start, end, p)) { - float d = SMVector3Length(p - m_cam.GetPos()); + float d = SMVector3Length(p - m_cam.getPos()); if(d < mind) { mind = d; @@ -3263,7 +3263,7 @@ void Editor::HandlerIntersectScale(const float3 & start, const float3 & dir) { if(line_intersect_triangle(asX[i], asX[i + 1], asX[i + 2], start, end, p)) { - float d = SMVector3Length(p - m_cam.GetPos()); + float d = SMVector3Length(p - m_cam.getPos()); if(d < mind) { mind = d; @@ -3276,7 +3276,7 @@ void Editor::HandlerIntersectScale(const float3 & start, const float3 & dir) { if(line_intersect_triangle(asY[i], asY[i + 1], asY[i + 2], start, end, p)) { - float d = SMVector3Length(p - m_cam.GetPos()); + float d = SMVector3Length(p - m_cam.getPos()); if(d < mind) { mind = d; @@ -3289,7 +3289,7 @@ void Editor::HandlerIntersectScale(const float3 & start, const float3 & dir) { if(line_intersect_triangle(asZ[i], asZ[i + 1], asZ[i + 2], start, end, p)) { - float d = SMVector3Length(p - m_cam.GetPos()); + float d = SMVector3Length(p - m_cam.getPos()); if(d < mind) { mind = d; @@ -3306,7 +3306,7 @@ void Editor::OnMouseDown(int x, int y) if(m_vHitboxes.size() > m_iActiveHitbox && ((TabHitboxes*)m_pTM->m_pTabHitboxes)->m_bShown) { HitboxItem * hbi = &m_vHitboxes[m_iActiveHitbox]; - SMMATRIX mBone = (hbi->hb->bone[0] ? m_pCurAnim->GetBoneTransform(m_pCurAnim->GetBone(hbi->hb->bone)) : SMMatrixIdentity()); + SMMATRIX mBone = (hbi->hb->bone[0] ? m_pCurAnim->getBoneTransform(m_pCurAnim->getBone(hbi->hb->bone)) : SMMatrixIdentity()); SMMATRIX revMat = SMMatrixInverse(&f, (m_bIsDragging && !m_bIsDraggingStart ? m_mOldDragMat : m_mHelperMat) * mBone * m_mViewMat * m_mProjMat); @@ -3352,7 +3352,7 @@ void Editor::OnMouseDown(int x, int y) * SMMatrixRotationY(hbi->hb->rot.y) * SMMatrixRotationZ(hbi->hb->rot.z) * SMMatrixTranslation(hbi->hb->pos) - //* (hbi->hb->bone[0] ? m_pCurAnim->GetBoneTransform(m_pCurAnim->GetBone(hbi->hb->bone)) : SMMatrixIdentity()) + //* (hbi->hb->bone[0] ? m_pCurAnim->getBoneTransform(m_pCurAnim->getBone(hbi->hb->bone)) : SMMatrixIdentity()) ; m_fOldHitboxLWH = hbi->hb->lwh; } @@ -3360,7 +3360,7 @@ void Editor::OnMouseDown(int x, int y) if(m_bIsDragging) { - float3 dv = (pos - m_fStartDragPos) * (1000.0f + SMVector3Length(m_cam.GetPos() - float3(m_mHelperMat._41, m_mHelperMat._42, m_mHelperMat._43)) * 10.0f); + float3 dv = (pos - m_fStartDragPos) * (1000.0f + SMVector3Length(m_cam.getPos() - float3(m_mHelperMat._41, m_mHelperMat._42, m_mHelperMat._43)) * 10.0f); SMMATRIX m_res; TabHitboxes * tab = (TabHitboxes*)m_pEditor->m_pTM->m_pTabHitboxes; char tmp[64]; @@ -3410,7 +3410,7 @@ void Editor::OnMouseDown(int x, int y) m_res = m_res * m_mOldDragMat; break; } - SMMATRIX mBone = (hbi->hb->bone[0] ? m_pCurAnim->GetBoneTransform(m_pCurAnim->GetBone(hbi->hb->bone)) : SMMatrixIdentity()); + SMMATRIX mBone = (hbi->hb->bone[0] ? m_pCurAnim->getBoneTransform(m_pCurAnim->getBone(hbi->hb->bone)) : SMMatrixIdentity()); m_mHelperMat = m_res;/* * SMMatrixTranslation(float3(mBone._41, mBone._42, mBone._43)); diff --git a/source/sxae/Editor.h b/source/sxae/Editor.h index 9f6dda82e390e9f3ae90bc8b9e97c9c54d729f30..0d35632bab9d7ddcbd3568c30763e2ead11baa66 100644 --- a/source/sxae/Editor.h +++ b/source/sxae/Editor.h @@ -71,8 +71,8 @@ public: void Update(); - ModelFile * AddModel(const char * mdl, UINT flags = MI_ALL, bool forceImport = false, bool forceLocal = false); - void DelModel(UINT id); + ModelFile * addModel(const char * mdl, UINT flags = MI_ALL, bool forceImport = false, bool forceLocal = false); + void delModel(UINT id); void DelHitbox(UINT id); diff --git a/source/sxleveleditor/common_callback.cpp b/source/sxleveleditor/common_callback.cpp index 31aa78dcab0a4302d01002cf1c7cfa1e087137d9..74c518bc1fbdcc12c0801c6c05ae964ea8048cb3 100644 --- a/source/sxleveleditor/common_callback.cpp +++ b/source/sxleveleditor/common_callback.cpp @@ -301,7 +301,7 @@ LRESULT SXLevelEditor_RenderWindow_MouseMove(HWND hwnd, UINT msg, WPARAM wParam, else if (SXLevelEditor::ObjAxesHelper->GetType() == AxesHelper::HT_SCALE) { float3* scale = SGeom_ModelsMGetScale(SXLevelEditor::ActiveElement); - float3 nscale = SXLevelEditor::ObjAxesHelper->GetScale() - float3(1,1,1); + float3 nscale = SXLevelEditor::ObjAxesHelper->getScale() - float3(1,1,1); if ((*scale).x != nscale.x || (*scale).y != nscale.y || (*scale).z != nscale.z) { *scale += nscale; @@ -324,14 +324,14 @@ LRESULT SXLevelEditor_RenderWindow_MouseMove(HWND hwnd, UINT msg, WPARAM wParam, } else if (SXLevelEditor::ActiveGroupType == EDITORS_LEVEL_GROUPTYPE_GAME && SXLevelEditor::ActiveElement >= 0) { - SXbaseEntity* bEnt = SXGame_EntGet(SXLevelEditor::ActiveElement); + CBaseEntity* bEnt = SXGame_EntGet(SXLevelEditor::ActiveElement); if (!bEnt) return 0; if (SXLevelEditor::ObjAxesHelper->GetType() == AxesHelper::HT_MOVE) - bEnt->SetPos(SXLevelEditor::ObjAxesHelper->GetPosition()); + bEnt->setPos(SXLevelEditor::ObjAxesHelper->GetPosition()); else if (SXLevelEditor::ObjAxesHelper->GetType() == AxesHelper::HT_ROTATE) - bEnt->SetOrient(SXLevelEditor::ObjAxesHelper->GetRotationQ()); + bEnt->setOrient(SXLevelEditor::ObjAxesHelper->GetRotationQ()); SXLevelEditor::GameUpdatePosRot(); } @@ -710,10 +710,10 @@ LRESULT SXLevelEditor_ButtonGameObjectOpen_Click(HWND hwnd, UINT msg, WPARAM wPa char tmpname[1024]; for (int i = 0; i < tmpcoungo; ++i) { - SXbaseEntity* bEnt = SXGame_EntGet(i); + CBaseEntity* bEnt = SXGame_EntGet(i); if (bEnt) { - sprintf(tmpname, "%s / %s", bEnt->GetName(), bEnt->GetClassName()); + sprintf(tmpname, "%s / %s", bEnt->getName(), bEnt->getClassName()); SXLevelEditor::ListBoxList->AddItem(tmpname); SXLevelEditor::ListBoxList->SetItemData(SXLevelEditor::ListBoxList->GetCountItem() - 1, i); ++tmpcoungo2; @@ -1085,7 +1085,7 @@ LRESULT SXLevelEditor_GroupBox_CallWmCommand(HWND hwnd, UINT msg, WPARAM wParam, else { ID seldata = SXLevelEditor::ListBoxList->GetItemData(SXLevelEditor::ListBoxList->GetSel()); - SXbaseEntity* bEnt = SXGame_EntGet(seldata); + CBaseEntity* bEnt = SXGame_EntGet(seldata); int str = SXLevelEditor::ListViewGameClass->GetSelString(); if (seldata < 0 || str < 0) @@ -1108,7 +1108,7 @@ LRESULT SXLevelEditor_GroupBox_CallWmCommand(HWND hwnd, UINT msg, WPARAM wParam, sprintf(txtval, "%d", uiFlags); SXLevelEditor::ListViewGameClass->SetTextItem(txtval, 1, str); - bEnt->SetKV("flags", txtval); + bEnt->setKV("flags", txtval); } } else if (Notification == CBN_SELCHANGE) @@ -1119,12 +1119,12 @@ LRESULT SXLevelEditor_GroupBox_CallWmCommand(HWND hwnd, UINT msg, WPARAM wParam, char txt[256]; SXLevelEditor::ComboBoxGameValue->GetItemText(SXLevelEditor::ComboBoxGameValue->GetSel(), txt); SXLevelEditor::ListViewGameClass->SetTextItem(txt, 1, SXLevelEditor::ListViewGameClass->GetSelString()); - SXbaseEntity* bEnt = SXGame_EntGet(SXLevelEditor::ListBoxList->GetItemData(sel)); + CBaseEntity* bEnt = SXGame_EntGet(SXLevelEditor::ListBoxList->GetItemData(sel)); if (bEnt) { propdata_t* pd = (propdata_t*)SXLevelEditor::ListViewGameClass->GetDataItem(SXLevelEditor::ListViewGameClass->GetSelString()); SXLevelEditor::ComboBoxGameValue->GetItemData(SXLevelEditor::ComboBoxGameValue->GetSel()); - bEnt->SetKV(pd->szKey, (const char*)SXLevelEditor::ComboBoxGameValue->GetItemData(SXLevelEditor::ComboBoxGameValue->GetSel())); + bEnt->setKV(pd->szKey, (const char*)SXLevelEditor::ComboBoxGameValue->GetItemData(SXLevelEditor::ComboBoxGameValue->GetSel())); } } else if (SXLevelEditor::ComboBoxGameClass->GetHWND() == handle_elem) @@ -1137,8 +1137,8 @@ LRESULT SXLevelEditor_GroupBox_CallWmCommand(HWND hwnd, UINT msg, WPARAM wParam, if (sel < 0) return 0; - SXbaseEntity* bEnt = SXGame_EntGet(SXLevelEditor::ListBoxList->GetItemData(sel)); - proptable_t* pt = SXGame_EntGetProptable(bEnt->GetClassName()); + CBaseEntity* bEnt = SXGame_EntGet(SXLevelEditor::ListBoxList->GetItemData(sel)); + proptable_t* pt = SXGame_EntGetProptable(bEnt->getClassName()); propdata_t* pd; char txtkey[256]; @@ -1177,7 +1177,7 @@ LRESULT SXLevelEditor_GroupBox_CallWmCommand(HWND hwnd, UINT msg, WPARAM wParam, if (pd->szKey && pd->szEdName && !(pd->flags & PDFF_NOEDIT) && pd->editor.type != PDE_NONE) { sprintf(txtkey, "%s", pd->szEdName); - bEnt->GetKV(pd->szKey, txtval, 256); + bEnt->getKV(pd->szKey, txtval, 256); tmparrdata.push_back(KeyVal(pd->szKey, txtval)); } } @@ -1191,7 +1191,7 @@ LRESULT SXLevelEditor_GroupBox_CallWmCommand(HWND hwnd, UINT msg, WPARAM wParam, if (pd->szKey && pd->szEdName && !(pd->flags & PDFF_NOEDIT) && pd->editor.type != PDE_NONE) { sprintf(txtkey, "%s", pd->szEdName); - bEnt->GetKV(pd->szKey, txtval, 256); + bEnt->getKV(pd->szKey, txtval, 256); tmparrdata.push_back(KeyVal(pd->szKey, txtval)); } } @@ -1201,26 +1201,26 @@ LRESULT SXLevelEditor_GroupBox_CallWmCommand(HWND hwnd, UINT msg, WPARAM wParam, SXGame_RemoveEntity(bEnt); bEnt = SXGame_CreateEntity(txt); - bEnt->SetFlags(bEnt->GetFlags() | EF_EXPORT | EF_LEVEL); + bEnt->setFlags(bEnt->getFlags() | EF_EXPORT | EF_LEVEL); - for (int i = 0; i < tmparrdata.size(); ++i) + for(int i = 0; i < tmparrdata.size(); ++i) { - bEnt->SetKV(tmparrdata[i].key.c_str(), tmparrdata[i].val.c_str()); + bEnt->setKV(tmparrdata[i].key.c_str(), tmparrdata[i].val.c_str()); } SXLevelEditor_ButtonGameObjectOpen_Click(hwnd, msg, wParam, lParam); sel = -1; - for (int i = 0; i < SXLevelEditor::ListBoxList->GetCountItem(); ++i) + for(int i = 0; i < SXLevelEditor::ListBoxList->GetCountItem(); ++i) { - if (SXLevelEditor::ListBoxList->GetItemData(i) == bEnt->GetId()) + if(SXLevelEditor::ListBoxList->GetItemData(i) == bEnt->getId()) { sel = i; break; } } - if (sel < 0) + if(sel < 0) { } @@ -1314,10 +1314,10 @@ LRESULT SXLevelEditor_GroupBox_CallWmCommand(HWND hwnd, UINT msg, WPARAM wParam, char* found = 0; for (int i = 0; i < tmpcoungo; ++i) { - SXbaseEntity* bEnt = SXGame_EntGet(i); + CBaseEntity* bEnt = SXGame_EntGet(i); if (bEnt) { - strcpy(tmpname, bEnt->GetName()); + strcpy(tmpname, bEnt->getName()); if (tmpname[0] == 0) continue; lower_name = CharLower(tmpname); diff --git a/source/sxleveleditor/game_callback.cpp b/source/sxleveleditor/game_callback.cpp index 1e4bbdafe0b09bb1c0ec03fac36ef5aa4934b73e..f953157b4e8b8f0753078096ad4a84ee7b288eca 100644 --- a/source/sxleveleditor/game_callback.cpp +++ b/source/sxleveleditor/game_callback.cpp @@ -48,11 +48,11 @@ void SXLevelEditor::GameSel(int sel) ID seldata = SXLevelEditor::ListBoxList->GetItemData(sel); SXLevelEditor::ActiveElement = seldata; SXLevelEditor::ActiveGroupType = EDITORS_LEVEL_GROUPTYPE_GAME; - SXbaseEntity* bEnt = SXGame_EntGet(seldata); - proptable_t* pt = SXGame_EntGetProptable(bEnt->GetClassName()); + CBaseEntity* bEnt = SXGame_EntGet(seldata); + proptable_t* pt = SXGame_EntGetProptable(bEnt->getClassName()); char txtclasscb[256]; - const char* txtclassent = bEnt->GetClassName(); + const char* txtclassent = bEnt->getClassName(); for (int i = 0; i < SXLevelEditor::ComboBoxGameClass->GetCount(); ++i) { SXLevelEditor::ComboBoxGameClass->GetItemText(i, txtclasscb); @@ -85,7 +85,7 @@ void SXLevelEditor::GameSel(int sel) if (pd->szKey && pd->szEdName && !(pd->flags & PDFF_NOEDIT) && pd->editor.type != PDE_NONE) { sprintf(txtkey, "%s", pd->szEdName); - bEnt->GetKV(pd->szKey, txtval, 256); + bEnt->getKV(pd->szKey, txtval, 256); int str = SXLevelEditor::ListViewGameClass->AddString((long)pd); SXLevelEditor::ListViewGameClass->SetTextItem(txtkey, 0, str); //propdata_t* pd2 = (propdata_t*)SXLevelEditor::ListViewGameClass->GetDataItem(str); @@ -108,7 +108,7 @@ void SXLevelEditor::GameSel(int sel) if (pd->szKey && pd->szEdName && !(pd->flags & PDFF_NOEDIT) && pd->editor.type != PDE_NONE) { sprintf(txtkey, "%s", pd->szEdName); - bEnt->GetKV(pd->szKey, txtval, 256); + bEnt->getKV(pd->szKey, txtval, 256); int str = SXLevelEditor::ListViewGameClass->AddString((long)pd); SXLevelEditor::ListViewGameClass->SetTextItem(txtkey, 0, str); //propdata_t* pd2 = (propdata_t*)SXLevelEditor::ListViewGameClass->GetDataItem(str); @@ -122,7 +122,7 @@ void SXLevelEditor::GameSel(int sel) } } - //���������� ������� � ComboBoxGameConnectionsEvent + //заполнение таблицы и ComboBoxGameConnectionsEvent SXLevelEditor::ComboBoxGameConnectionsEvent->Clear(); SXLevelEditor::ComboBoxGameConnectionsAction->Clear(); SXLevelEditor::ListViewGameConnections->ClearStrings(); @@ -132,18 +132,18 @@ void SXLevelEditor::GameSel(int sel) char szBuffer4096[4096]; - //���������� �� ���� ������� ������� ������ ������� + //проходимся по всей таблице свойств класса объекта for (int i = 0; i < pt->numFields; ++i) { pd = &pt->pData[i]; - //���� ���� ������ �� ��� ��� ���� + //если поле класса то что нам надо if (pd->flags & PDFF_OUTPUT) { - //�������� ������ � ������������� ������� - bEnt->GetKV(pd->szKey, szBuffer4096, 4096); + //получаем строку с запакованными данными + bEnt->getKV(pd->szKey, szBuffer4096, 4096); - //������ ������ + //парсим строку int iConns = parse_str(szBuffer4096, NULL, 0, ','); char ** parts = (char**)alloca(sizeof(char*)*iConns); iConns = parse_str(szBuffer4096, parts, iConns, ','); @@ -163,10 +163,10 @@ void SXLevelEditor::GameSel(int sel) for (int j = 0; j < iConns2; ++j) SXLevelEditor::ListViewGameConnections->SetTextItem(parts2[j], j + 1, iNumStr); - SXbaseEntity *pEnt2 = SXGame_EntGetByName(parts2[0], 0); + CBaseEntity *pEnt2 = SXGame_EntGetByName(parts2[0], 0); if (pEnt2) { - proptable_t *pPropTable2 = SXGame_EntGetProptable(pEnt2->GetClassName()); + proptable_t *pPropTable2 = SXGame_EntGetProptable(pEnt2->getClassName()); propdata_t *pPropData2 = 0; for (int j = 0; j < pPropTable2->numFields; ++j) { @@ -187,8 +187,8 @@ void SXLevelEditor::GameSel(int sel) } //------- - SXLevelEditor::ObjAxesHelper->SetPosition(bEnt->GetPos()); - SXLevelEditor::ObjAxesHelper->SetRotation(bEnt->GetOrient()); + SXLevelEditor::ObjAxesHelper->SetPosition(bEnt->getPos()); + SXLevelEditor::ObjAxesHelper->SetRotation(bEnt->getOrient()); SXLevelEditor::ObjAxesHelper->SetScale(float3(1, 1, 1)); } @@ -197,7 +197,7 @@ void SXLevelEditor::GameUpdatePosRot() if (SXLevelEditor::ActiveGroupType != EDITORS_LEVEL_GROUPTYPE_GAME || SXLevelEditor::ActiveElement < 0) return; - SXbaseEntity* bEnt = SXGame_EntGet(SXLevelEditor::ActiveElement); + CBaseEntity* bEnt = SXGame_EntGet(SXLevelEditor::ActiveElement); propdata_t* pd = 0; char txtval[256]; @@ -209,7 +209,7 @@ void SXLevelEditor::GameUpdatePosRot() { if (stricmp(pd->szKey, "origin") == 0 || stricmp(pd->szKey, "rotation") == 0) { - bEnt->GetKV(pd->szKey, txtval, 256); + bEnt->getKV(pd->szKey, txtval, 256); SXLevelEditor::ListViewGameClass->SetTextItem(txtval, 1, i); } } @@ -288,10 +288,10 @@ LRESULT SXLevelEditor_ListViewGameClass_Click() char tval3[256]; bool isfound = false; - //��������� � ����� ����� ������ �� ���������� ������� + //проверяем в цикле какая строка из комбобокса выбрана for (int i = 0; i < SXLevelEditor::ComboBoxGameValue->GetCount(); ++i) { - //������� ��������� �� �������� (��� �������� ��������) + //сначала проверяем по юзердате (там записано значение) tval2 = (const char*)SXLevelEditor::ComboBoxGameValue->GetItemData(i); if (strcmp(tval, tval2) == 0) @@ -301,7 +301,7 @@ LRESULT SXLevelEditor_ListViewGameClass_Click() break; } - //����� �������� �� ����� ������ + //затем проверям по имени строки SXLevelEditor::ComboBoxGameValue->GetItemText(i, tval3); if (strcmp(tval, tval3) == 0) @@ -312,7 +312,7 @@ LRESULT SXLevelEditor_ListViewGameClass_Click() } } - //���� �� ������� �������� ������ ���� ��� �������� + //если не найдено значение значит надо его добавить if (!isfound) { MessageBox(0,"SXLevelEditor_ListViewGameClass_Click data not found",0,0); @@ -360,17 +360,17 @@ LRESULT SXLevelEditor_EditGameValue_Enter(HWND hwnd, UINT msg, WPARAM wParam, LP char txt[256]; SXLevelEditor::EditGameValue->GetText(txt, 256); SXLevelEditor::ListViewGameClass->SetTextItem(txt, 1, str); - SXbaseEntity* bEnt = SXGame_EntGet(SXLevelEditor::ListBoxList->GetItemData(sel)); + CBaseEntity* bEnt = SXGame_EntGet(SXLevelEditor::ListBoxList->GetItemData(sel)); if (bEnt) { propdata_t* pd = (propdata_t*)SXLevelEditor::ListViewGameClass->GetDataItem(str); - bool bf = bEnt->SetKV(pd->szKey, txt); + bool bf = bEnt->setKV(pd->szKey, txt); int qwerty = 0; if (strcmp(pd->szKey, "name") == 0) { char tmpname[512]; - sprintf(tmpname, "%s / %s", bEnt->GetName(), bEnt->GetClassName()); + sprintf(tmpname, "%s / %s", bEnt->getName(), bEnt->getClassName()); SXLevelEditor::ListBoxList->SetTextItem(sel, tmpname); } } @@ -438,10 +438,10 @@ LRESULT SXLevelEditor_ButtonGameValue_Click(HWND hwnd, UINT msg, WPARAM wParam, int sel = SXLevelEditor::ListBoxList->GetSel(); SXLevelEditor::ListViewGameClass->SetTextItem(tmpname, 1, str); - SXbaseEntity* bEnt = SXGame_EntGet(SXLevelEditor::ListBoxList->GetItemData(sel)); + CBaseEntity* bEnt = SXGame_EntGet(SXLevelEditor::ListBoxList->GetItemData(sel)); if (bEnt) { - bEnt->SetKV(pd->szKey, tmpname); + bEnt->setKV(pd->szKey, tmpname); } } @@ -458,8 +458,8 @@ LRESULT SXLevelEditor_ButtonGameCreate_Click(HWND hwnd, UINT msg, WPARAM wParam, char txt[256]; SXLevelEditor::ComboBoxGameClass->GetItemText(SXLevelEditor::ComboBoxGameClass->GetSel(), txt); - SXbaseEntity* bEnt = SXGame_CreateEntity(txt); - bEnt->SetFlags(bEnt->GetFlags() | EF_EXPORT | EF_LEVEL); + CBaseEntity* bEnt = SXGame_CreateEntity(txt); + bEnt->setFlags(bEnt->getFlags() | EF_EXPORT | EF_LEVEL); SXLevelEditor_ButtonGameObjectOpen_Click(hwnd, msg, wParam, lParam); int sel = SXLevelEditor::ListBoxList->GetCountItem()-1; @@ -489,10 +489,10 @@ LRESULT SXLevelEditor_EditGameConnectionsName_IN(HWND hwnd, UINT msg, WPARAM wPa char* found = 0; for (int i = 0; i < tmpcoungo; ++i) { - SXbaseEntity* bEnt = SXGame_EntGet(i); + CBaseEntity* bEnt = SXGame_EntGet(i); if (bEnt) { - strcpy(tmpname, bEnt->GetName()); + strcpy(tmpname, bEnt->getName()); if (tmpname[0] == 0) continue; lower_name = CharLower(tmpname); @@ -573,11 +573,11 @@ LRESULT SXLevelEditor_ListViewGameConnections_Click() { int iNumStr = SXLevelEditor::ListViewGameConnections->GetSelString(); - //������� ���������� + //очищаем комбобоксы //SXLevelEditor::ComboBoxGameConnectionsEvent->Clear(); SXLevelEditor::ComboBoxGameConnectionsAction->Clear(); - //���� ��� ����������� ����� �������� + //если нет выделенного тогда обнуляем if (iNumStr < 0) { SXLevelEditor::ComboBoxGameConnectionsEvent->SetSel(0); @@ -591,7 +591,7 @@ LRESULT SXLevelEditor_ListViewGameConnections_Click() char szStr[256]; char szStr2[256]; - //�������� ������������ event � ComboBoxGameConnectionsEvent + //выделяем используемый event в ComboBoxGameConnectionsEvent SXLevelEditor::ListViewGameConnections->GetTextItem(szStr, 0, iNumStr, 256); for (int i = 0; i < SXLevelEditor::ComboBoxGameConnectionsEvent->GetCount(); ++i) @@ -605,26 +605,26 @@ LRESULT SXLevelEditor_ListViewGameConnections_Click() } //------- - //������������� ��� ������������� �������� ������� � EditGameConnectionsName + //устанавилваем имя используемого игрового объекта в EditGameConnectionsName SXLevelEditor::ListViewGameConnections->GetTextItem(szStr, 1, iNumStr, 256); SXLevelEditor::EditGameConnectionsName->SetText(szStr); //------- - //������������� ������ � ComboBoxGameConnectionsAction � �������� ������������ - SXbaseEntity *pEnt2 = 0; + //устанавилваем данные в ComboBoxGameConnectionsAction и выделяем используемый + CBaseEntity *pEnt2 = 0; - //�������� �� ���� ������� �������� + //проходим по всем игровым объектам for (int i = 0; i < SXGame_EntGetCount(); ++i) { pEnt2 = SXGame_EntGet(i); - //���� ��� �������� ������� ��������� ������������� - if (pEnt2 && strcmp(pEnt2->GetName(), szStr) == 0) + //если имя игрового объекта идентично используемому + if (pEnt2 && strcmp(pEnt2->getName(), szStr) == 0) { - proptable_t *pPropTable = SXGame_EntGetProptable(pEnt2->GetClassName()); + proptable_t *pPropTable = SXGame_EntGetProptable(pEnt2->getClassName()); propdata_t *pPropData = 0; - //���������� �� ���� ����� ������ + //проходимся по всем полям класса for (int k = 0; k < pPropTable->numFields; ++k) { pPropData = &pPropTable->pData[k]; @@ -649,12 +649,12 @@ LRESULT SXLevelEditor_ListViewGameConnections_Click() } //------- - //������������� �������� � �������� � EditGameConnectionsDelay + //устанавливаем задержку в секундах в EditGameConnectionsDelay SXLevelEditor::ListViewGameConnections->GetTextItem(szStr, 3, iNumStr, 256); SXLevelEditor::EditGameConnectionsDelay->SetText(szStr); //------- - //������������� �������� � EditGameConnectionsParameter + //устанавливаем параметр в EditGameConnectionsParameter SXLevelEditor::ListViewGameConnections->GetTextItem(szStr, 4, iNumStr, 256); SXLevelEditor::EditGameConnectionsParameter->SetText(szStr); //------- @@ -674,51 +674,51 @@ LRESULT SXLevelEditor_EditGameConnectionsName_Enter(HWND hwnd, UINT msg, WPARAM if (idSelListBoxList < 0) return 0; - SXbaseEntity *pEnt = SXGame_EntGet(idSelListBoxList); + CBaseEntity *pEnt = SXGame_EntGet(idSelListBoxList); char szBuffer256[256]; szBuffer256[0] = 0; SXLevelEditor::EditGameConnectionsName->GetText(szBuffer256, 256); - SXbaseEntity *pEnt2 = SXGame_EntGetByName(szBuffer256, 0); + CBaseEntity *pEnt2 = SXGame_EntGetByName(szBuffer256, 0); - //���������� � szBuffer256 ������� ��� action + //записываем в szBuffer256 текущее имя action szBuffer256[0] = 0; SXLevelEditor::ComboBoxGameConnectionsAction->GetItemText(SXLevelEditor::ComboBoxGameConnectionsAction->GetSel(), szBuffer256); - // ���� ������ � ��������� ������ ���������� + // если энтить с введенным именем существует if (pEnt2) { - proptable_t *pPropTable2 = SXGame_EntGetProptable(pEnt2->GetClassName()); + proptable_t *pPropTable2 = SXGame_EntGetProptable(pEnt2->getClassName()); propdata_t *pPropData2 = 0; SXLevelEditor::ComboBoxGameConnectionsAction->Clear(); - //���������� �� ���� ������ ������� ������� + //проходимся по всем данным таблицы свойств for (int j = 0; j < pPropTable2->numFields; ++j) { pPropData2 = &pPropTable2->pData[j]; - //���� �������� input + //если свойство input if (pPropData2->flags & PDFF_INPUT) { - //��������� � ��������� action + //добавляем в комбобокс action SXLevelEditor::ComboBoxGameConnectionsAction->AddItem(pPropData2->szEdName); SXLevelEditor::ComboBoxGameConnectionsAction->SetItemData(SXLevelEditor::ComboBoxGameConnectionsEvent->GetCount() - 1, (LPARAM)(pPropData2->szKey)); - //���� ���������� ��� action ����� ���������� ������������ + //если предыдущее имя action равно последнему вставленному if (strcmp(pPropData2->szEdName, szBuffer256) == 0) { - //���������� ��� ������ � ���������� + //активируем эту строку в комбобоксе SXLevelEditor::ComboBoxGameConnectionsAction->SetSel(SXLevelEditor::ComboBoxGameConnectionsAction->GetCount() - 1); } } } } - // ���� ������ ������ �� ���������� + // если такого энтитя не существует else { - //���������� �� ��� ������ � ������� + //возвращаем то что сейчас в таблице if (idSelStrTable < 0) return 0; @@ -743,17 +743,17 @@ LRESULT SXLevelEditor_EditGameConnections_Enter(HWND hwnd, UINT msg, WPARAM wPar return 0; ID idSelEnt = SXLevelEditor::ListBoxList->GetItemData(idSelListBoxList); - SXbaseEntity *pEnt = SXGame_EntGet(idSelEnt); - proptable_t *pPropTable = SXGame_EntGetProptable(pEnt->GetClassName()); + CBaseEntity *pEnt = SXGame_EntGet(idSelEnt); + proptable_t *pPropTable = SXGame_EntGetProptable(pEnt->getClassName()); propdata_t *pPropData = (propdata_t*)(SXLevelEditor::ListViewGameConnections->GetDataItem(idSelStrTable)); - //�������� �������� � ������ ������ ������ + //получаем скленные в единую строку данные char szBuffer4096[4096]; szBuffer4096[0] = 0; SXLevelEditor_VeldStringGameConnections(pPropTable, pPropData, -1, szBuffer4096, 4096); - //������������� � ���������� � ������� ������ ������ �� ���������� + //устанавливаем в выделенную в таблице строку данные из редакторов char szBuffer256[256]; szBuffer256[0] = 0; @@ -776,7 +776,7 @@ LRESULT SXLevelEditor_EditGameConnections_Enter(HWND hwnd, UINT msg, WPARAM wPar SXLevelEditor::EditGameConnectionsParameter->GetText(szBuffer256, 256); SXLevelEditor::ListViewGameConnections->SetTextItem(szBuffer256, 4, idSelStrTable); - pEnt->SetKV(pPropData->szKey, szBuffer4096); + pEnt->setKV(pPropData->szKey, szBuffer4096); return 0; } @@ -786,16 +786,16 @@ void SXLevelEditor_VeldStringGameConnections(proptable_t *pPropTable, propdata_t char szBuffer256[256]; szBuffer256[0] = 0; - //���������� �� ���� ������� ������� + //проходимся по всем строкам таблицы for (int i = 0, il = SXLevelEditor::ListViewGameConnections->GetCountString(); i < il; ++i) { - //���� ������ � ���� ������� ���� ��������� + //если строку с этим номером надо исключить if (iNumExclude == i) continue; propdata_t *pPropData2 = (propdata_t*)SXLevelEditor::ListViewGameConnections->GetDataItem(i); - //���� �������� �� ��� ��� ���� + //если юзердата то что нам надо if (pPropData == pPropData2) { if (strlen(szStrOut) > 0) @@ -805,25 +805,25 @@ void SXLevelEditor_VeldStringGameConnections(proptable_t *pPropTable, propdata_t SXLevelEditor::ListViewGameConnections->GetTextItem(szBuffer256, 1, i, 256); sprintf(szStrOut + strlen(szStrOut), "%s:", szBuffer256); - //���� ������ � ������� ����� ���������� - SXbaseEntity *pEnt2 = SXGame_EntGetByName(szBuffer256); + //ищем энтить с которым будет соединение + CBaseEntity *pEnt2 = SXGame_EntGetByName(szBuffer256); proptable_t *pPropTable2 = 0; if (pEnt2) - pPropTable2 = SXGame_EntGetProptable(pEnt2->GetClassName()); + pPropTable2 = SXGame_EntGetProptable(pEnt2->getClassName()); szBuffer256[0] = 0; SXLevelEditor::ListViewGameConnections->GetTextItem(szBuffer256, 2, i, 256); - //���� ������ ��� ���������� ���������� + //если энтить для соединения существует if (pEnt2) { - //���������� �� ���� ����� ������� ������ + //проходимся по всем полям таблицы данных for (int k = 0; k < pPropTable2->numFields; ++k) { propdata_t *pPropData3 = &pPropTable2->pData[k]; - //���� ���� ������ �� ��� ��� ���� + //если поле класса то что нам надо if (pPropData3->flags & PDFF_INPUT && strcmp(pPropData3->szEdName, szBuffer256) == 0) { sprintf(szStrOut + strlen(szStrOut), "%s:", pPropData3->szKey); @@ -831,7 +831,7 @@ void SXLevelEditor_VeldStringGameConnections(proptable_t *pPropTable, propdata_t } } } - //���� ������ ��� ���������� ��� + //если энтитя для соединения нет else { sprintf(szStrOut + strlen(szStrOut), ":"); @@ -857,13 +857,13 @@ LRESULT SXLevelEditor_ButtonGameConnectionsCreate_Click(HWND hwnd, UINT msg, WPA return 0; ID idSelEnt = SXLevelEditor::ListBoxList->GetItemData(idSelListBoxList); - SXbaseEntity *pEnt = SXGame_EntGet(idSelEnt); - proptable_t *pPropTable = SXGame_EntGetProptable(pEnt->GetClassName()); + CBaseEntity *pEnt = SXGame_EntGet(idSelEnt); + proptable_t *pPropTable = SXGame_EntGetProptable(pEnt->getClassName()); if (!pEnt) return 0; - //���� ���������� ������ ���������� + //если добавление нового соединения if (SXLevelEditor::isAddGameConections) { if (idSelStrTable < 0) @@ -901,11 +901,11 @@ LRESULT SXLevelEditor_ButtonGameConnectionsCreate_Click(HWND hwnd, UINT msg, WPA SXLevelEditor::EditGameConnectionsParameter->GetText(szBuffer256, 256); sprintf(szBuffer4096 + strlen(szBuffer4096), "%s", szBuffer256); - pEnt->SetKV(pPropData->szKey, szBuffer4096); + pEnt->setKV(pPropData->szKey, szBuffer4096); SXLevelEditor::GameSel(idSelListBoxList); } - //����� �������� ������ ���������� + //иначе создание нового соединения else { SXLevelEditor::ButtonGameConnectionsDelete->Visible(false); @@ -924,8 +924,8 @@ LRESULT SXLevelEditor_ButtonGameConnectionsDelete_Click(HWND hwnd, UINT msg, WPA return 0; ID idSelEnt = SXLevelEditor::ListBoxList->GetItemData(idSelListBoxList); - SXbaseEntity *pEnt = SXGame_EntGet(idSelEnt); - proptable_t *pPropTable = SXGame_EntGetProptable(pEnt->GetClassName()); + CBaseEntity *pEnt = SXGame_EntGet(idSelEnt); + proptable_t *pPropTable = SXGame_EntGetProptable(pEnt->getClassName()); propdata_t *pPropData = (propdata_t*)(SXLevelEditor::ListViewGameConnections->GetDataItem(idSelStrTable)); if (!pEnt) @@ -936,7 +936,7 @@ LRESULT SXLevelEditor_ButtonGameConnectionsDelete_Click(HWND hwnd, UINT msg, WPA SXLevelEditor_VeldStringGameConnections(pPropTable, pPropData, idSelStrTable, szBuffer4096, 4096); - pEnt->SetKV(pPropData->szKey, szBuffer4096); + pEnt->setKV(pPropData->szKey, szBuffer4096); SXLevelEditor::GameSel(idSelListBoxList); return 0;