2
0
mirror of https://github.com/dpethes/rerogue.git synced 2025-06-07 18:58:32 +02:00

hob: rename top-level facegroup to object part

This commit is contained in:
dpethes 2020-07-28 11:58:24 +02:00
parent 271f74e36d
commit 0dfa3b5e08
2 changed files with 10 additions and 10 deletions

View File

@ -14,7 +14,7 @@ Object [116B]
{ {
16B array of char : name 16B array of char : name
4B int : facegroups offset 4B int : facegroups offset
4B int : facegroup header offset 4B int : object parts offset
4B int : facegroup header 2 offset 4B int : facegroup header 2 offset
12B zero 12B zero
4B int : ? 94, 0xD4 4B int : ? 94, 0xD4
@ -30,9 +30,9 @@ Object [116B]
6x 4B float : ? 6x 4B float : ?
} }
Facegroup header [variable length] Object parts (Facegroup) header [variable length]
{ {
2B int : number of facegroups NOF 2B int : number of facegroups/object parts NOF
2B NX ? 2B NX ?
NOF * Facegroup/meshdef0 offset { NOF * Facegroup/meshdef0 offset {
4B int : ? 4B int : ?

View File

@ -50,13 +50,13 @@ type
THobObject = record THobObject = record
name: array[0..15] of byte; name: array[0..15] of byte;
face_group_offset: integer; face_group_offset: integer;
face_group_header_offset: integer; objects_part_header_offset: integer;
face_group_header2_offset: integer; face_group_header2_offset: integer;
face_group_count: integer; face_group_count: integer;
face_group_count0: integer; face_group_count0: integer;
face_groups: array of THobFaceGroup; object_parts: array of THobFaceGroup;
end; end;
THobFile = record THobFile = record
@ -285,7 +285,7 @@ var
begin begin
f.ReadBuffer(mesh.name, 16); f.ReadBuffer(mesh.name, 16);
mesh.face_group_offset := f.ReadDWord; mesh.face_group_offset := f.ReadDWord;
mesh.face_group_header_offset := f.ReadDWord; mesh.objects_part_header_offset := f.ReadDWord;
mesh.face_group_header2_offset := f.ReadDWord; mesh.face_group_header2_offset := f.ReadDWord;
//TODO skipped stuff //TODO skipped stuff
@ -293,9 +293,9 @@ begin
writeln('object: ', NameToString(mesh.name)); writeln('object: ', NameToString(mesh.name));
writeln('face group offset: ', mesh.face_group_offset); writeln('face group offset: ', mesh.face_group_offset);
//Facegroup header //Object parts/Facegroup header
f.Seek(mesh.face_group_header_offset, fsFromBeginning); //16B zero f.Seek(mesh.objects_part_header_offset, fsFromBeginning); //16B zero
mesh.face_group_count := f.ReadWord; //face group count - which? mesh.face_group_count := f.ReadWord; //face group count - which?
mesh.face_group_count0 := f.ReadWord; mesh.face_group_count0 := f.ReadWord;
if mesh.face_group_count <> mesh.face_group_count0 then begin if mesh.face_group_count <> mesh.face_group_count0 then begin
@ -309,11 +309,11 @@ begin
end; end;
//read face group defs //read face group defs
SetLength(mesh.face_groups, mesh.face_group_count); SetLength(mesh.object_parts, mesh.face_group_count);
for i := 0 to mesh.face_group_count - 1 do begin for i := 0 to mesh.face_group_count - 1 do begin
writeln('fg meshdef0 offset: ', fg_offsets[i], IntToHex(fg_offsets[i], 8):9); writeln('fg meshdef0 offset: ', fg_offsets[i], IntToHex(fg_offsets[i], 8):9);
f.Seek(fg_offsets[i], fsFromBeginning); f.Seek(fg_offsets[i], fsFromBeginning);
ReadFaceGroup(mesh.face_groups[i], f); ReadFaceGroup(mesh.object_parts[i], f);
end; end;
writeln; writeln;
end; end;