The game doesn't ignore COFs, since when I was missing one I got this error:
quote:
FileReadError
Location: D2Hell\SRC\Archive.cpp, line #59
Expression: DATA\GLOBAL\MONSTERS\77\COF\77RNhth.COF
But there are a quite a few structures in a COF file, between the frame info bytes up front and the first DCC call, that I have not derived a pattern for yet. Also it turns out there is something of a pattern for the bytes that appear after the frames/direction byte in the AnimData.D2 records. For the discussion following, I refer to offsets from the first byte of the COF string, that first byte being Offset 0.
Almost all animation records have a nonzero entry at offset 12 or offset 13. Since offset 13's value is always 1, I suspect those two locations are the low-order bytes of a dword. The only records without a value here are two modes of an unused object and the DD mode of...the Compelling Orb???
Many times, but not always, the GH mode has a 1 at offset 16.
There are always additional nonzero bytes for the offensive modes (A1, A2, SC, S#, etc.). Most of these bytes are between offset 20 and offset 25, but the range is from 16 to 34. Some monster and many character records have more than one such nonzero byte. I saw no such values for passive modes (DD,DT,NU,WL).
I will need to keep looking for what these patterns might represent.
------------------
"Welcome to Kurast, traveler. Few come willingly to this ancient city anymore. I hope you brought your wits with you, for sanity is in short supply here." -- Hratli