A collection of various tools and libraries for the Hitman game engine, Glacier.
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.
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.
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:
- Start the game in question and wait until you reach the main menu.
- Run the
CodeGentool, making sure thatCodeGenLib.dllis in the same directory as it. - Open the directory with the name of the game that was created in the directory of the
CodeGentool. - Copy all the files starting with
ZHMinto the appropriateResourceLibdirectory (for example for Hitman 3 copy them toLibraries/ResourceLib/Src/Generated/HM3). - Run the
PropertyBundlertool by passing the path to the directory of ZHMTools as an argument to it (for examplePropertyBundler.exe C:\Path\To\ZHMTools. - Re-compile
ResourceLib.