Skip to content

dbierek/ZHMTools

 
 

Repository files navigation

ZHMTools

A collection of various tools and libraries for the Hitman game engine, Glacier.

Build status Download latest release

Libraries

A collection of libraries that allow converting various game resources to JSON and back, each targetting a specific Hitman game. The library exposes a C interface that can be directly integrated into third party tools, without additional dependencies. You can also find a C# / .NET wrapper around ResourceLib here.

Currently supported games and resource types:

Game Supported Resources
Hitman 3 TEMP, TBLU, AIRG, ATMD*, CBLU, CPPT, CRMD, DSWB, ECPB, GFXF, GIDX, VIDB, WSGB, ENUM, RTLV, UICB
Hitman 2 TEMP, TBLU, AIRG, ATMD*, CBLU, CPPT, CRMD, DSWB, ECPB, GFXF, GIDX, VIDB, WSGB, ENUM, RTLV, UICB
Hitman 2016 TEMP, TBLU, AIRG, ATMD*, CBLU, CPPT, CRMD, DSWB, GFXF, GIDX, VIDB, WSGB, RTLV, UICB
Hitman Absolution* TEMP, TBLU, AIRG, CBLU, CPPT, CRMD, DSWB, GFXF, GIDX, WSGB

* Experimental

A companion library to ResourceLib, used to generate conversion and generation code for a specific game. It can be injected into any of the supported titles, and it will generate the various files that ResourceLib needs. Usually used to update ResourceLib after a title update. More information on updating ResourceLib using this tool can be found below.

A library containing basic research on the NavPower navmesh format. It currently accepts a navmesh resource and converts it to a JSON representation that can be rendered by the NavViewer tool mentioned below.

Tools

A command-line tool that allows converting various game resources to JSON and back, using ResourceLib. It supports all the game and resource formats that ResourceLib supports.

A tool that automatically detects any supported running game processes and injects CodeGenLib into them, using it to generate code for ResourceLib.

A tool that post-processes the property text files generated by CodeGenLib into a form usable by ResourceLib.

A tool that parses Hitman Absolution debug depot moduleinfo files and generates a list of properties and enums for use by CodeGenLib. This is needed because this information is stripped from the executable in Hitman Absolution.

A command-line tool that allows converting NavPower navmeshes into a custom JSON representation, using the NavWeakness library.

A web-based viewer of NavPower navmeshes, which uses the output of the NavTool to show a realtime 3D representation of the navmesh. Useful for validating research.

Updating ResourceLib after a title update

Almost every time there's a new game / title update, the ResourceLib for that game needs to updated. The following steps are necessary to perform that update:

  1. Start the game in question and wait until you reach the main menu.
  2. Run the CodeGen tool, making sure that CodeGenLib.dll is in the same directory as it.
  3. Open the directory with the name of the game that was created in the directory of the CodeGen tool.
  4. Copy all the files starting with ZHM into the appropriate ResourceLib directory (for example for Hitman 3 copy them to Libraries/ResourceLib/Src/Generated/HM3).
  5. Run the PropertyBundler tool by passing the path to the directory of ZHMTools as an argument to it (for example PropertyBundler.exe C:\Path\To\ZHMTools.
  6. Re-compile ResourceLib.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 99.6%
  • Other 0.4%