• Herzlich Willkommen!

    Nach der Schließung von inDiablo.de wurden die Inhalte und eure Accounts in dieses Forum konvertiert. Ihr könnt euch hier mit eurem alten Account weiterhin einloggen, müsst euch dafür allerdings über die "Passwort vergessen" Funktion ein neues Passwort setzen lassen.

    Solltet ihr keinen Zugriff mehr auf die mit eurem Account verknüpfte Emailadresse haben, so könnt ihr euch unter Angabe eures Accountnamens, eurer alten Emailadresse sowie eurer gewünschten neuen Emailadresse an einen Administrator wenden.

[Suche] COF-Format Beschreibung

snowballtwo

Diablo-Veteran
Registriert
13 Juli 2006
Beiträge
1.370
Hiho,

ich bin momentan auf der Suche nach einer umfassenden Beschreibung des COF Formats, mit möglichst allen Bedeutungen aller Bytes.

Vieles konnte ich bereits hier finden, jedoch ist dieser Thread sehr früh entstanden, und inzwischen sind sicherlich mehr Infos bekannt.

Z.B.
- wie genau die Layer-Reihenfolge abgelegt ist. Bei eigenen versuchen hat das nicht immer perfekt geklappt (Habe einen Quellcode-Schnipsel zu dem Thema gefunden, allerdings enthält der mit Sicherheit Fehler)
- wo ist die Animationsgeschwindigkeit abgelegt? (im Cof...kenne Animdata ect...)
- was bedeuten all die unbeschriebenen Bytes?
 
Ich hab das COF-Format mal implementiert, der Post (und der Source) von Paul Siramy enthält eigentlich alles Nötige.

Die Animationsgeschwindigkeit sollte eigentlich beschrieben sein, bei mir ist die als 32Bit Int angegeben, direkt nach y1/2 und direkt vor den Layern, würde ich aber nichts drauf geben, kA ob die überhaupt benutzt wird.

Die Reihenfolge der Layer variiert immer (auch von Direction zu Direction oder gar Frame zu Frame, wenn ich das richtig sehe) und wird Byte-weise in der "Draw Priority" festgelegt, die steht direkt nach den Animation-Codes.
 
Zuletzt bearbeitet:
Das ist schonmal eine sehr schöne Quelle, auch wenn sie mir nicht direkt weitergeholfen hat.

ich bin dahintergekommen, dass bei mir bestimmte directions immer falsch gerendert wurden...

dabei stellte sich heraus, dass die directions in den cof dateien anders interpretiert werden als in den dcc dateien...

[table="head"]D|C|C
2|7|3
6| |8
1|5|4[/table]

[table="head"]C|O|F
4|5|6
3| |7
2|1|8[/table]

Und weil jetzt alles so toll funktioniert gibts ein kleines schmankerl:

 
Hehe, ja, die Reihenfolgen sind anders als man eigentlich annehmen würde, das stimmt.
Ich benutze ein paar Arrays um die Reihenfolge anzupassen:

Code:
private static final int[] DIRECTION_8_FIX = {1, 3, 5, 7, 0, 2, 4, 6};
private static final int[] DIRECTION_16_FIX = {2, 6, 10, 14, 0, 4, 8, 12, 1, 3, 5, 7, 9, 11, 13, 15};
	
private static final int[] DIRECTION_8_FIX_REVERSE = {4, 0, 5, 1, 6, 2, 7, 3};
private static final int[] DIRECTION_16_FIX_REVERSE = {4, 8, 0, 9, 5, 10, 1, 11, 6, 12, 2, 13, 7, 14, 3, 15};
 
Auf die Idee bin ich auch gekommen ;)

ich weise mal auf meine signatur hin, das wird bald fortgeführt :)
 
Zurück
Oben