Apache Longbow Research archive

MANEDIT and Hind's infantry

The .ROT files shipped alongside Apache are also used by Hind's infantry animation system. MANEDIT's box-built preview figure is an authoring aid; Hind applies the movement data to its game models.

Matching files

Compared these retained directories:

The Hind demo contains 79 .ROT files. All 79 are byte-for-byte identical to the corresponding files in Apache's reference collection of 110. Its MANEDIT executable is also identical, SHA-256 477c8d081a35876033946825e80b232aa747cf6aee3e548674ffd7f30d22913d.

Both retained September 1996 Apache collections also contain those 79 matching pose files. The two retained 2000 collections contain the same 110 files.

Hind's runtime loader

Examined HINDDEMO/HIND95.EXE, SHA-256 0ac48381ccc386178a202e58d7afb18a5926ab3361c273044785350d9a4e1c72. Addresses below are virtual addresses in that executable. Its retained Watcom symbol records supply the function names.

Address Function or data Observed operation
0x412927 Call within initialise_game_ Calls the animation initializer.
0x444c40 initialise_manipulation_data_ Iterates over 54 filename pointers and calls Manip_Load_ for each one.
0x5012d8 _manipulator_filenames The 54 animation basenames listed below.
0x593ac0 _manipulator Receives 54 animation descriptors, each 20 bytes.
0x444c6c Manip_Load_ Builds 3DDATA\<basename>.ROT and opens it in text mode.
0x444fb4 operate_human_body_ Selects the actor's animation descriptor, calls Man_Move_, then artic_human_.
0x445058 Man_Move_ Evaluates the selected movement.
0x4452a4 artic_human_ Applies the human articulation.
0x446d5c initialise_human_ Connects the human actor's state to attached body-part transforms.
0x44889c human_board_or_disembark_now_ Part of the human boarding/disembarkation subsystem.

The initializer advances its filename-table offset by four bytes and stops at 0xd8: 216 / 4 = 54 entries. All 54 corresponding files are present in the demo and match the Apache copies.

default, walk, walk_jog, jog, jog_run, run,
m_w, m_wj, m_j, m_jr, m_r,
r_d, r_w, r_wj, r_j, r_jr, r_r,
s_d, s_w, s_wj, s_j, s_jr, s_r,
die_n, die_n_t, die_e, die_e_t, die_s, die_s_t, die_w, die_w_t,
ikneel, kneelup, okneel, r_ik, r_ku, r_ok,
ishoot, shootup, oshoot, r_is, r_su, r_os, s_is, s_su, s_os,
idive, odive, get_in, get_out, dshk, hmg, fall1, fall2

The loader references \hind\source\drone\manmanip.c. The separate human actor code identifies C:\hind\source\drone\human.c. This is an active game initialization and animation path, not just unused filenames in the executable.

Contemporary accounts

MANEDIT identifies its author as Scawen Roberts. In a Planet Black & White interview preserved in 2001, Roberts describes writing Hind's animated polygon soldiers while at Digital Integration.

The original Hind manual, printed page 3, introduces ground troops as a first for the studio. Printed page 26 describes landing at a drop zone and opening the cargo doors to deploy or collect troops.

Why the files are on Apache's disc

The likely explanation is that Apache's release preparation copied a shared working-data directory, including files it did not need. Alongside MANEDIT and the poses are palette source images, conversion batch files and a DOS directory listing preserved as 3DDATA/RGB. That listing names E:\HIND\3DDATA and includes a zero-byte entry for RGB itself dated 13 March 1996 at 10:26. February dates on its directory entries are not the date of the listing.

The matching files and Hind's loader establish the reuse. The reason the release was assembled this way remains an inference from its contents. No additional game using this particular editor or these pose files has been established in this investigation.