# Warhammer: Dark Omen library and CLI in Rust
[](https://crates.io/crates/darkomen)
[](https://docs.rs/darkomen)
[](https://github.com/mgi388/darkomen/actions)
A Rust library designed to work with the classic game **Warhammer: Dark Omen**. It provides developers with tools to read, manipulate, and write game data, enabling the creation of mods, custom levels, and analysis tools.
## Features
The following table shows the game file support in this library:
| [3D models](src/m3d) | .M3D | ✅ | ❌ | |
| [Army and save files](src/army) | .ARM | ✅ | ✅ | ⚠️ Save files are not tested |
| [Battle blueprints](src/battle) | .BTB | ✅ | ❌ | |
| CTL | .CTL | ❌ | ❌ | |
| Cursors | .ANI | ❌ | ❌ | |
| Fonts | .FNT | ❌ | ❌ | |
| Game flows | .DOT | ❌ | ❌ | |
| [Lights](src/light) | .LIT | ✅ | ❌ | ⚠️ Flags are not correct |
| Movies | .TGQ | ❌ | ❌ | |
| Particle effects | .PLB, .H | ❌ | ❌ | |
| Portrait scripts | .KEY, .SEQ | ❌ | ❌ | |
| [Projects](src/project) | .PRJ | ✅ | ✅ | |
| [Shadows](src/shadow) | .SHD | ✅ | ✅ | |
| [Sound effects](src/sound/sfx) | .H | ✅ | ❌ | |
| [Sound mono audio](src/sound/mad) | .MAD | ✅ | ✅ | |
| [Sound scripts](src/sound/script) | .FSM | ✅ | ✅ | |
| [Sound stereo audio](src/sound/sad) | .SAD | ✅ | ✅ | |
| [Sprite sheets](src/graphics/sprite_sheet) | .SPR | ✅ | ❌ | |
## Installation
### Cargo
- Install the Rust toolchain, which also installs `cargo`, by following the [Install Rust guide](https://www.rust-lang.org/tools/install)
- Run `cargo add darkomen`
#### Cargo features
`darkomen` supports [Bevy Reflection](https://docs.rs/bevy_reflect/latest/bevy_reflect)
through the `bevy_reflect` feature. To enable it, add the following line to
your `Cargo.toml`:
```toml
darkomen = { version = "0.3.5", features = ["bevy_reflect"] }
```
## Important notes
> [!NOTE]
> This library does not ship with any game assets. You must have a copy of the game to get the most from this library.
> [!NOTE]
> This library is not developed by or endorsed by Games Workshop or Electronic Arts.
## License
Licensed under either of
- Apache License, Version 2.0
([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license
([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)
at your option.
## Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
dual licensed as above, without any additional terms or conditions.