Skip to content
This repository has been archived by the owner on Sep 12, 2021. It is now read-only.

Commit

Permalink
Final commit of "Death of a Showman" project
Browse files Browse the repository at this point in the history
Changes: 

1. Reversed RTTI information structure
2. Reversed event system
3. Reversed ZHitman3 class
4. Reversed CInventory class
5. Added play animation for player feature
6. Reversed items subsystem (item, itemtemplate, itemweapon)
7. Reversed hands API for actor & player (added viewer of items)
8. Reversed method `ZHM3Actor::kill()`. Added demo for it (kill actor or all actors in actors viewer tool)
9. Minor changes in debug menu design
10. Fixed crash when we trying to alt+tab in full screen mode (#23)
11. Implemented wireframe mode (wireframe, wireframe & normal and normal mode)
12. Implemented first version of ZIP Free Filesystem : [documentation](https://github.com/DronCode/ReHitman/wiki/ZIP-Free-File-System)
13. Added near actors locator in debug menu
14. Added project logo
  • Loading branch information
DronCode authored Mar 2, 2020
2 parents f1f0ce7 + d72bb4d commit 91ed8c8
Show file tree
Hide file tree
Showing 97 changed files with 14,710 additions and 16,866 deletions.
Binary file added GitHub/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
55 changes: 51 additions & 4 deletions HM3CoreKill/HM3CoreKill/HM3CoreKill.vcxproj
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="CK_DebugGame|Win32">
Expand Down Expand Up @@ -97,12 +97,12 @@
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<TargetExt>.dll</TargetExt>
<IncludePath>third_party/ImGUI/examples;third_party/ImGUI;third_party;utils/zydis/include;.;$(IncludePath)</IncludePath>
<IncludePath>third_party/ImGUI/examples;third_party/ImGUI;third_party/fmt/include;third_party;utils/zydis/include;.;$(IncludePath)</IncludePath>
<LibraryPath>utils/zydis/lib;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CK_DebugGame|Win32'">
<TargetExt>.dll</TargetExt>
<IncludePath>third_party/ImGUI/examples;third_party/ImGUI;third_party;utils/zydis/include;.;$(IncludePath)</IncludePath>
<IncludePath>third_party/fmt/include;third_party/ImGUI/examples;third_party/ImGUI;third_party;utils/zydis/include;.;$(IncludePath)</IncludePath>
<LibraryPath>utils/zydis/lib;$(LibraryPath)</LibraryPath>
<OutDir>$(ReHitmanGameFolder)</OutDir>
</PropertyGroup>
Expand Down Expand Up @@ -188,11 +188,13 @@
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="ck\Features.h" />
<ClInclude Include="ck\HM3DoorsRegistry.h" />
<ClInclude Include="ck\HM3ActionFactory.h" />
<ClInclude Include="ck\HM3AnimationRegistry.h" />
<ClInclude Include="ck\HM3CrashHandler.h" />
<ClInclude Include="ck\HM3DebugConsole.h" />
<ClInclude Include="ck\HM3Direct3D.h" />
<ClInclude Include="ck\HM3FreeFileSystemLocatorProxy.h" />
<ClInclude Include="ck\HM3Function.h" />
<ClInclude Include="ck\HM3Game.h" />
<ClInclude Include="ck\HM3Hooks.h" />
Expand All @@ -204,33 +206,57 @@
<ClInclude Include="ck\HM3ScopedProtection.h" />
<ClInclude Include="ck\HM3Types.h" />
<ClInclude Include="mp\MP.h" />
<ClInclude Include="sdk\actions\ZHitmanActionPickLock.h" />
<ClInclude Include="sdk\actions\ZHM3ActorPunch.h" />
<ClInclude Include="sdk\actions\ZLnkAction.h" />
<ClInclude Include="sdk\CDoor.h" />
<ClInclude Include="sdk\CIngameMap.h" />
<ClInclude Include="sdk\CInventory.h" />
<ClInclude Include="sdk\CMapObject.h" />
<ClInclude Include="sdk\CTelePortList.h" />
<ClInclude Include="sdk\HM3DebugAPI.h" />
<ClInclude Include="sdk\FsZip_t.h" />
<ClInclude Include="sdk\InterfacesProvider.h" />
<ClInclude Include="sdk\internal\ZLoaderSequenceScriptHeader.h" />
<ClInclude Include="sdk\REFTAB32.h" />
<ClInclude Include="sdk\render\ZPrimControlWintel.h" />
<ClInclude Include="sdk\render\ZRenderMaterialBufferD3D.h" />
<ClInclude Include="sdk\render\ZRenderWintelD3DDll.h" />
<ClInclude Include="sdk\render\ZTextureManagerD3D.h" />
<ClInclude Include="sdk\ResourceCollection.h" />
<ClInclude Include="sdk\scripting\ZScriptC.h" />
<ClInclude Include="sdk\ZActionDispatcher.h" />
<ClInclude Include="sdk\ZAnimationInfo.h" />
<ClInclude Include="sdk\ZBoxPrimitive.h" />
<ClInclude Include="sdk\ZDirect3DDevice.h" />
<ClInclude Include="sdk\ZEngineDatabase.h" />
<ClInclude Include="sdk\ZEntityLocator.h" />
<ClInclude Include="sdk\ZEventBuffer.h" />
<ClInclude Include="sdk\ZGameFunctions.h" />
<ClInclude Include="sdk\ZGEOM.h" />
<ClInclude Include="sdk\ZGeomBuffer.h" />
<ClInclude Include="sdk\ZGlacierRTTI.h" />
<ClInclude Include="sdk\ZGUI.h" />
<ClInclude Include="sdk\ZHM3Actor.h" />
<ClInclude Include="sdk\ZHM3BriefingControl.h" />
<ClInclude Include="sdk\ZHM3CameraClass.h" />
<ClInclude Include="sdk\ZHM3ClothBundle.h" />
<ClInclude Include="sdk\ZHM3GameData.h" />
<ClInclude Include="sdk\MathCommon.h" />
<ClInclude Include="sdk\ZGameDataFactory.h" />
<ClInclude Include="sdk\ZGameGlobals.h" />
<ClInclude Include="sdk\ZGUIBase.h" />
<ClInclude Include="sdk\ZHM3Camera.h" />
<ClInclude Include="sdk\ZHM3Hitman3.h" />
<ClInclude Include="sdk\ZHM3HmAs.h" />
<ClInclude Include="sdk\ZHM3Item.h" />
<ClInclude Include="sdk\ZHM3ItemTemplate.h" />
<ClInclude Include="sdk\ZHM3ItemTemplateAmmo.h" />
<ClInclude Include="sdk\ZHM3LevelControl.h" />
<ClInclude Include="sdk\ZHM3MenuElements.h" />
<ClInclude Include="sdk\ZHM3WeaponItem.h" />
<ClInclude Include="sdk\ZIKHAND.h" />
<ClInclude Include="sdk\ZKeyboardWintel.h" />
<ClInclude Include="sdk\ZLNKWHANDS.h" />
<ClInclude Include="sdk\ZMouseWintel.h" />
<ClInclude Include="sdk\ZOSD.h" />
<ClInclude Include="sdk\ZRenderWintelD3D.h" />
Expand All @@ -239,6 +265,18 @@
<ClInclude Include="sdk\ZSysInputWintel.h" />
<ClInclude Include="sdk\ZSysInterfaceWintel.h" />
<ClInclude Include="sdk\ZSysMem.h" />
<ClInclude Include="third_party\fmt\include\fmt\chrono.h" />
<ClInclude Include="third_party\fmt\include\fmt\color.h" />
<ClInclude Include="third_party\fmt\include\fmt\compile.h" />
<ClInclude Include="third_party\fmt\include\fmt\core.h" />
<ClInclude Include="third_party\fmt\include\fmt\format-inl.h" />
<ClInclude Include="third_party\fmt\include\fmt\format.h" />
<ClInclude Include="third_party\fmt\include\fmt\locale.h" />
<ClInclude Include="third_party\fmt\include\fmt\os.h" />
<ClInclude Include="third_party\fmt\include\fmt\ostream.h" />
<ClInclude Include="third_party\fmt\include\fmt\posix.h" />
<ClInclude Include="third_party\fmt\include\fmt\printf.h" />
<ClInclude Include="third_party\fmt\include\fmt\ranges.h" />
<ClInclude Include="third_party\ImGUI\examples\imgui_impl_dx9.h" />
<ClInclude Include="third_party\ImGUI\examples\imgui_impl_win32.h" />
<ClInclude Include="third_party\ImGUI\imconfig.h" />
Expand All @@ -260,15 +298,24 @@
<ClCompile Include="ck\HM3CrashHandler.cpp" />
<ClCompile Include="ck\HM3DebugConsole.cpp" />
<ClCompile Include="ck\HM3Direct3D.cpp" />
<ClCompile Include="ck\HM3DoorsRegistry.cpp" />
<ClCompile Include="ck\HM3FreeFileSystemLocatorProxy.cpp" />
<ClCompile Include="ck\HM3Game.cpp" />
<ClCompile Include="ck\HM3Hooks.cpp" />
<ClCompile Include="ck\HM3InGameTools.cpp" />
<ClCompile Include="ck\HM3MemoryProvider.cpp" />
<ClCompile Include="ck\HM3Player.cpp" />
<ClCompile Include="ck\HM3ProcessCache.cpp" />
<ClCompile Include="DllEntry.cpp" />
<ClCompile Include="sdk\ZHM3Actor.cpp" />
<ClCompile Include="sdk\ZHM3Hitman3.cpp" />
<ClCompile Include="sdk\ZEngineDatabase.cpp" />
<ClCompile Include="sdk\ZHM3CameraClass.cpp" />
<ClCompile Include="sdk\ZHM3Item.cpp" />
<ClCompile Include="sdk\ZLNKWHANDS.cpp" />
<ClCompile Include="sdk\ZSysMem.cpp" />
<ClCompile Include="third_party\fmt\src\format.cc" />
<ClCompile Include="third_party\fmt\src\os.cc" />
<ClCompile Include="third_party\ImGUI\examples\imgui_impl_dx9.cpp" />
<ClCompile Include="third_party\ImGUI\examples\imgui_impl_win32.cpp" />
<ClCompile Include="third_party\ImGUI\imgui.cpp" />
Expand Down
162 changes: 159 additions & 3 deletions HM3CoreKill/HM3CoreKill/HM3CoreKill.vcxproj.filters
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,21 @@
<Filter Include="third_party\ImGUI">
<UniqueIdentifier>{511e04c8-c4e2-4298-91e9-44c1d3e1d269}</UniqueIdentifier>
</Filter>
<Filter Include="sdk\internal">
<UniqueIdentifier>{c5004be6-3580-4a72-8222-c6798b82ab75}</UniqueIdentifier>
</Filter>
<Filter Include="sdk\render">
<UniqueIdentifier>{5779f6a9-04a5-4806-960c-3ce52300846c}</UniqueIdentifier>
</Filter>
<Filter Include="third_party\fmt">
<UniqueIdentifier>{e5f8d816-68eb-47e1-a746-dc35bac9ae3a}</UniqueIdentifier>
</Filter>
<Filter Include="third_party\fmt\include">
<UniqueIdentifier>{ea790aac-5675-4b19-8961-56f463efcb54}</UniqueIdentifier>
</Filter>
<Filter Include="third_party\fmt\src">
<UniqueIdentifier>{bf47c2cc-0bbd-4b03-a241-0332615a92bc}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="ck\HM3DebugConsole.h">
Expand Down Expand Up @@ -57,9 +72,6 @@
<ClInclude Include="ck\HM3CrashHandler.h">
<Filter>ck</Filter>
</ClInclude>
<ClInclude Include="sdk\HM3DebugAPI.h">
<Filter>sdk</Filter>
</ClInclude>
<ClInclude Include="ck\HM3ScopedProtection.h">
<Filter>ck</Filter>
</ClInclude>
Expand Down Expand Up @@ -222,6 +234,123 @@
<ClInclude Include="ck\HM3AnimationRegistry.h">
<Filter>ck</Filter>
</ClInclude>
<ClInclude Include="sdk\ZGUI.h">
<Filter>sdk</Filter>
</ClInclude>
<ClInclude Include="sdk\ZGlacierRTTI.h">
<Filter>sdk</Filter>
</ClInclude>
<ClInclude Include="sdk\CMapObject.h">
<Filter>sdk</Filter>
</ClInclude>
<ClInclude Include="sdk\CIngameMap.h">
<Filter>sdk</Filter>
</ClInclude>
<ClInclude Include="ck\HM3DoorsRegistry.h">
<Filter>ck</Filter>
</ClInclude>
<ClInclude Include="sdk\actions\ZHitmanActionPickLock.h">
<Filter>sdk\actions</Filter>
</ClInclude>
<ClInclude Include="sdk\CDoor.h">
<Filter>sdk</Filter>
</ClInclude>
<ClInclude Include="sdk\ZIKHAND.h">
<Filter>sdk</Filter>
</ClInclude>
<ClInclude Include="sdk\FsZip_t.h">
<Filter>sdk</Filter>
</ClInclude>
<ClInclude Include="sdk\ZHM3HmAs.h">
<Filter>sdk</Filter>
</ClInclude>
<ClInclude Include="sdk\ZHM3ClothBundle.h">
<Filter>sdk</Filter>
</ClInclude>
<ClInclude Include="sdk\ZGEOM.h">
<Filter>sdk</Filter>
</ClInclude>
<ClInclude Include="sdk\REFTAB32.h">
<Filter>sdk</Filter>
</ClInclude>
<ClInclude Include="sdk\CInventory.h">
<Filter>sdk</Filter>
</ClInclude>
<ClInclude Include="sdk\ZHM3ItemTemplate.h">
<Filter>sdk</Filter>
</ClInclude>
<ClInclude Include="sdk\ZHM3ItemTemplateAmmo.h">
<Filter>sdk</Filter>
</ClInclude>
<ClInclude Include="sdk\ZHM3Item.h">
<Filter>sdk</Filter>
</ClInclude>
<ClInclude Include="sdk\ZLNKWHANDS.h">
<Filter>sdk</Filter>
</ClInclude>
<ClInclude Include="sdk\ZActionDispatcher.h">
<Filter>sdk</Filter>
</ClInclude>
<ClInclude Include="sdk\actions\ZHM3ActorPunch.h">
<Filter>sdk\actions</Filter>
</ClInclude>
<ClInclude Include="sdk\ZHM3WeaponItem.h">
<Filter>sdk</Filter>
</ClInclude>
<ClInclude Include="sdk\internal\ZLoaderSequenceScriptHeader.h">
<Filter>sdk\internal</Filter>
</ClInclude>
<ClInclude Include="ck\HM3FreeFileSystemLocatorProxy.h">
<Filter>ck</Filter>
</ClInclude>
<ClInclude Include="sdk\render\ZRenderWintelD3DDll.h">
<Filter>sdk\render</Filter>
</ClInclude>
<ClInclude Include="sdk\render\ZTextureManagerD3D.h">
<Filter>sdk\render</Filter>
</ClInclude>
<ClInclude Include="sdk\render\ZRenderMaterialBufferD3D.h">
<Filter>sdk\render</Filter>
</ClInclude>
<ClInclude Include="sdk\render\ZPrimControlWintel.h">
<Filter>sdk\render</Filter>
</ClInclude>
<ClInclude Include="third_party\fmt\include\fmt\chrono.h">
<Filter>third_party\fmt\include</Filter>
</ClInclude>
<ClInclude Include="third_party\fmt\include\fmt\color.h">
<Filter>third_party\fmt\include</Filter>
</ClInclude>
<ClInclude Include="third_party\fmt\include\fmt\compile.h">
<Filter>third_party\fmt\include</Filter>
</ClInclude>
<ClInclude Include="third_party\fmt\include\fmt\core.h">
<Filter>third_party\fmt\include</Filter>
</ClInclude>
<ClInclude Include="third_party\fmt\include\fmt\format.h">
<Filter>third_party\fmt\include</Filter>
</ClInclude>
<ClInclude Include="third_party\fmt\include\fmt\format-inl.h">
<Filter>third_party\fmt\include</Filter>
</ClInclude>
<ClInclude Include="third_party\fmt\include\fmt\locale.h">
<Filter>third_party\fmt\include</Filter>
</ClInclude>
<ClInclude Include="third_party\fmt\include\fmt\os.h">
<Filter>third_party\fmt\include</Filter>
</ClInclude>
<ClInclude Include="third_party\fmt\include\fmt\ostream.h">
<Filter>third_party\fmt\include</Filter>
</ClInclude>
<ClInclude Include="third_party\fmt\include\fmt\posix.h">
<Filter>third_party\fmt\include</Filter>
</ClInclude>
<ClInclude Include="third_party\fmt\include\fmt\printf.h">
<Filter>third_party\fmt\include</Filter>
</ClInclude>
<ClInclude Include="third_party\fmt\include\fmt\ranges.h">
<Filter>third_party\fmt\include</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="ck\HM3DebugConsole.cpp">
Expand Down Expand Up @@ -294,5 +423,32 @@
<ClCompile Include="ck\HM3AnimationRegistry.cpp">
<Filter>ck</Filter>
</ClCompile>
<ClCompile Include="ck\HM3DoorsRegistry.cpp">
<Filter>ck</Filter>
</ClCompile>
<ClCompile Include="sdk\ZHM3Hitman3.cpp">
<Filter>sdk</Filter>
</ClCompile>
<ClCompile Include="sdk\ZHM3Item.cpp">
<Filter>sdk</Filter>
</ClCompile>
<ClCompile Include="sdk\ZHM3Actor.cpp">
<Filter>sdk</Filter>
</ClCompile>
<ClCompile Include="sdk\ZLNKWHANDS.cpp">
<Filter>sdk</Filter>
</ClCompile>
<ClCompile Include="sdk\ZSysMem.cpp">
<Filter>sdk</Filter>
</ClCompile>
<ClCompile Include="ck\HM3FreeFileSystemLocatorProxy.cpp">
<Filter>ck</Filter>
</ClCompile>
<ClCompile Include="third_party\fmt\src\os.cc">
<Filter>third_party\fmt\src</Filter>
</ClCompile>
<ClCompile Include="third_party\fmt\src\format.cc">
<Filter>third_party\fmt\src</Filter>
</ClCompile>
</ItemGroup>
</Project>
29 changes: 29 additions & 0 deletions HM3CoreKill/HM3CoreKill/ck/Features.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,35 @@
#include <sdk/CTelePortList.h>

namespace ck {
/*
if (ImGui::Button("Test LockPick action"))
{
const auto& doorsRegistry = HM3DoorsRegistry::getRegistry();
const auto& animationsRegistry = HM3AnimationRegistry::getRegistry();
auto pAction = reinterpret_cast<ioi::hm3::ZHitmanActionPickLock*>(HM3ActionFactory::createActionByType(hitman3, ioi::hm3::ZLnkActionType::HitmanActionPickLock));
HM3_ASSERT(pAction != nullptr, "Action Factory must return not null pointer!");
auto pDoor = doorsRegistry.getDoorByName("D03A_Door_Auditorium_01");
HM3_ASSERT(pDoor != nullptr, "DoorRegistry| Unable to find door!");
pAction->m_door = pDoor->m_doorSTD;
pAction->m_animPickLockStart = animationsRegistry.getAnimationByName("anim:Hero/Hero#Pick_Lock_Start");
pAction->m_animPickLockStop = animationsRegistry.getAnimationByName("anim:Hero/Hero#Pick_Lock_Stop");
pAction->m_animPickLockLoop = animationsRegistry.getAnimationByName("anim:Hero/Hero#Pick_Lock_Loop");
HM3_ASSERT(pAction->m_door != nullptr, "Door:STDOBJ must be loaded!");
HM3_ASSERT(pAction->m_animPickLockStart != nullptr, "PickLock:Start animation must be loaded!");
HM3_ASSERT(pAction->m_animPickLockStop != nullptr, "PickLock:Stop animation must be loaded!");
HM3_ASSERT(pAction->m_animPickLockLoop != nullptr, "PickLock:Loop animation must be loaded!");
HM3_DEBUG("Trying to perform action %s\n", pAction->GetActionName());
pAction->Function2();
}
*/


/*
void teleportPlayer()
{
Expand Down
2 changes: 1 addition & 1 deletion HM3CoreKill/HM3CoreKill/ck/HM3ActionFactory.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
#include <sdk/ZGameFunctions.h>
#include <utils/X86Snippets.h>

ioi::hm3::ZLnkAction* HM3ActionFactory::createActionByType(ioi::hm3::ZHitman3* hitman, ioi::hm3::ZLnkActionType actionType)
ioi::hm3::ZLnkAction* HM3ActionFactory::createActionByType(ioi::hm3::ZHM3Hitman3* hitman, ioi::hm3::ZLnkActionType actionType)
{
ioi::hm3::ZLnkAction* result = nullptr;

Expand Down
10 changes: 1 addition & 9 deletions HM3CoreKill/HM3CoreKill/ck/HM3ActionFactory.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,5 @@
class HM3ActionFactory
{
public:
static ioi::hm3::ZLnkAction* createActionByType(ioi::hm3::ZHitman3* hitman, ioi::hm3::ZLnkActionType actionType);

static ioi::hm3::ZLnkAction* createPhoningAction(ioi::hm3::ZHitman3* hitman)
{
//1. Create action
//2. Fill fields (+16, +20)
//3. Register in lvl ctl
return nullptr;
}
static ioi::hm3::ZLnkAction* createActionByType(ioi::hm3::ZHM3Hitman3* hitman, ioi::hm3::ZLnkActionType actionType);
};
Loading

0 comments on commit 91ed8c8

Please sign in to comment.