digraph {
rankdir=LR;
node [shape=plaintext];
subgraph cluster__quake_pak {
label="QuakePak";
graph[style=dotted];
quake_pak__seq [label=<
pos | size | type | id |
0 | 4 | | magic |
4 | 4 | u4le | ofs_index |
8 | 4 | u4le | len_index |
>];
quake_pak__inst__index [label=<
pos | size | type | id |
ofs_index | len_index | IndexStruct | index |
>];
subgraph cluster__index_struct {
label="QuakePak::IndexStruct";
graph[style=dotted];
index_struct__seq [label=<
pos | size | type | id |
0 | 64 | IndexEntry | entries |
repeat to end of stream |
>];
}
subgraph cluster__index_entry {
label="QuakePak::IndexEntry";
graph[style=dotted];
index_entry__seq [label=<
pos | size | type | id |
0 | 56 | str(UTF-8) | name |
56 | 4 | u4le | ofs |
60 | 4 | u4le | size |
>];
index_entry__inst__body [label=<
pos | size | type | id |
ofs | size | | body |
>];
}
}
quake_pak__seq:ofs_index_type -> quake_pak__inst__index:index_pos [color="#404040"];
quake_pak__seq:len_index_type -> quake_pak__inst__index:index_size [color="#404040"];
quake_pak__inst__index:index_type -> index_struct__seq [style=bold];
index_struct__seq:entries_type -> index_entry__seq [style=bold];
index_entry__seq:ofs_type -> index_entry__inst__body:body_pos [color="#404040"];
index_entry__seq:size_type -> index_entry__inst__body:body_size [color="#404040"];
}