Details | Last modification | View Log | RSS feed
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 20 | pmbaty | 1 | #include "genfile.h" |
| 2 | #include "datafile.h" |
||
| 3 | #include "harness/trace.h" |
||
| 4 | |||
| 5 | #include "CORE/V1DB/chunkids.h" |
||
| 6 | #include <stddef.h> |
||
| 7 | #include <stdlib.h> |
||
| 8 | |||
| 9 | br_file_enum_member file_type_FM[10] = { |
||
| 10 | { FILE_TYPE_NONE, "FILE_TYPE_NONE" }, |
||
| 11 | { FILE_TYPE_ACTORS, "FILE_TYPE_ACTORS" }, |
||
| 12 | { FILE_TYPE_PIXELMAP, "FILE_TYPE_PIXELMAP" }, |
||
| 13 | { FILE_TYPE_LIGHT, "FILE_TYPE_LIGHT" }, |
||
| 14 | { FILE_TYPE_CAMERA, "FILE_TYPE_CAMERA" }, |
||
| 15 | { FILE_TYPE_MATERIAL_OLD, "FILE_TYPE_MATERIAL_OLD" }, |
||
| 16 | { FILE_TYPE_MODEL, "FILE_TYPE_MODEL" }, |
||
| 17 | { FILE_TYPE_ANIMATION, "FILE_TYPE_ANIMATION" }, |
||
| 18 | { FILE_TYPE_TREE, "FILE_TYPE_TREE" }, |
||
| 19 | { FILE_TYPE_MATERIAL, "FILE_TYPE_MATERIAL" }, |
||
| 20 | }; |
||
| 21 | br_file_enum file_type_F = { BR_ASIZE(file_type_FM), file_type_FM }; |
||
| 22 | |||
| 23 | br_file_struct_member file_info_FM[2] = { |
||
| 24 | { DF_TYPE_ENUM_32, offsetof(file_info, type), "type", &file_type_F }, |
||
| 25 | { DF_TYPE_BR_UINT_32, offsetof(file_info, version), "version", NULL }, |
||
| 26 | }; |
||
| 27 | br_file_struct file_info_F = { "file_info", BR_ASIZE(file_info_FM), file_info_FM, sizeof(file_info) }; |
||
| 28 | |||
| 29 | // IDA: int __usercall FopRead_END@<EAX>(br_datafile *df@<EAX>, br_uint_32 id@<EDX>, br_uint_32 length@<EBX>, br_uint_32 count@<ECX>) |
||
| 30 | int FopRead_END(br_datafile* df, br_uint_32 id, br_uint_32 length, br_uint_32 count) { |
||
| 31 | return 1; |
||
| 32 | } |
||
| 33 | |||
| 34 | // IDA: int __usercall FopWrite_END@<EAX>(br_datafile *df@<EAX>) |
||
| 35 | int FopWrite_END(br_datafile* df) { |
||
| 36 | LOG_TRACE("(%p)", df); |
||
| 37 | |||
| 38 | df->prims->chunk_write(df, CHUNKID_END, 0); |
||
| 39 | return 1; // Pierre-Marie Baty -- function must return a value |
||
| 40 | } |
||
| 41 | |||
| 42 | // IDA: int __usercall FopWrite_FILE_INFO@<EAX>(br_datafile *df@<EAX>, br_uint_32 type@<EDX>) |
||
| 43 | int FopWrite_FILE_INFO(br_datafile* df, br_uint_32 type) { |
||
| 44 | file_info fi; |
||
| 45 | LOG_TRACE("(%p, %d)", df, type); |
||
| 46 | |||
| 47 | fi.type = type; |
||
| 48 | fi.version = 2; |
||
| 49 | df->prims->chunk_write(df, CHUNKID_FILE_INFO, df->prims->struct_size(df, &file_info_F, &fi)); |
||
| 50 | df->prims->struct_write(df, &file_info_F, &fi); |
||
| 51 | return 0; |
||
| 52 | } |