The 13-row lookup that maps a human-readable attack category (Bow, One Hand Thrust, Claw) to the short string token (bow, 1ht, claw) that weapons and monsters reference. Two columns: Hit Class (display name) and Code (the join key). Consumers are weapons.txt and monstats.txt, both of which carry their own hit class column whose value is one of the codes here.
Naming collision — read this first
The numeric HitClass columns in missiles and skills are not the same system as this table. Those are a bitfield for hit-effect layers (Fire = 32, Cold = 48, Lightning = 64, Poison = 80, Thorns = 128, …) and are documented inline on those pages. This table only governs weapon-class animation choice for melee and ranged weapons — what swing animation plays, what hit sound fires when a weapon connects.
Columns
| Column | Meaning |
|---|---|
Hit Class | The display name (Hand To Hand, One Hand Swing vs. Small). Display only. The space in the column name means SQL must quote it as "Hit Class". |
Code | The join key — a 3–4 character string token (hth, 1hss, bow). Other tables reference this. |
The full code list
| Code | Category | Where used |
|---|---|---|
| (empty) | None | Sentinel for "no hit class" — filter with WHERE "hit class" != '' |
hth | Hand To Hand | Bare-handed monster attacks |
1hss | One Hand Swing vs. Small | One-handed swing weapons (small monsters) |
1hsl | One Hand Swing vs. Large | One-handed swing weapons (large monsters) |
2hss | Two Hand Swing vs. Small | Two-handed swing weapons (small monsters) |
2hsl | Two Hand Swing vs. Large | Two-handed swing weapons (large monsters) |
1ht | One Hand Thrust | Spears, daggers, javelins (one-handed) |
2ht | Two Hand Thrust | Polearms, two-handed spears |
club | Club | Mace-class swing |
staf | Staff | Staff and stave attacks |
bow | Bow | Bow ranged attacks |
xbow | Crossbow | Crossbow ranged attacks |
claw | Claw | Assassin claw weapons |
over | Overlay | Reserved — used by overlay-effect entries |
The two split categories — small-vs-large for one-hand and two-hand swings — let the engine play a different animation depending on the size of the target monster (per MonStats2.txt's SizeX/SizeY). Thrust and ranged attacks don't split this way.