wow-adt
Parser for World of Warcraft ADT (terrain) files.
Status
✅ Production Ready - Full parsing and validation support for ADT terrain files.
Overview
ADT files contain terrain and object information for WoW map tiles. Each map in World of Warcraft is divided into 64x64 tiles, with each tile stored as an ADT file.
Features
- Full ADT Parsing - Read and parse all chunk types
- Version Support - Classic through Cataclysm+
- Validation - Comprehensive validation with multiple strictness levels
- Version Conversion - Convert between different WoW versions
- Split File Support - Handle Cataclysm+ split ADT files (_tex0,_obj0, etc.)
- Tree Visualization - Visualize ADT structure hierarchically
- Extract Support (optional) - Extract heightmaps, textures, and model references
- Parallel Processing (optional) - Batch process multiple ADT files
Supported Versions
- ✅ Classic (1.12.1)
- ✅ The Burning Crusade (2.4.3)
- ✅ Wrath of the Lich King (3.3.5a)
- ✅ Cataclysm (4.3.4)
- ⚠️ Mists of Pandaria (5.4.8) - Basic support, may need updates
Installation
Add to your Cargo.toml:
[]
= "0.2.1"
Or use cargo add:
Usage
Basic Parsing
use ;
// Parse an ADT file
let adt = from_path?;
// Get version information
println!;
// Access terrain chunks
println!;
// Check for water data
if let Some = adt.mh2o
Validation
use ;
let adt = from_path?;
// Basic validation
adt.validate?;
// Detailed validation with report
let report = adt.validate_with_report?;
if !report.errors.is_empty
Version Conversion
use ;
let adt = from_path?;
// Convert to Cataclysm format
let cata_adt = adt.to_version?;
// Write to file
use File;
use BufWriter;
let file = create?;
let mut writer = new;
cata_adt.write?;
CLI Usage
The ADT functionality is integrated into the warcraft-rs CLI:
# Show ADT file information
# Validate an ADT file
# Convert between versions
# Visualize ADT structure
License
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.