1 | #pragma once |
---|---|
2 | |
3 | #include <ore/BinaryFile.h> |
4 | #include <ore/EnumUtil.h> |
5 | #include <ore/Types.h> |
6 | |
7 | namespace ore { |
8 | struct ResEndian; |
9 | struct ResMetaData; |
10 | } // namespace ore |
11 | |
12 | namespace evfl { |
13 | |
14 | struct ResActor; |
15 | |
16 | struct ResTrigger { |
17 | u16 clip_index; |
18 | u8 trigger_type; |
19 | }; |
20 | |
21 | struct ResCut { |
22 | float start_time; |
23 | ore::BinTPtr<ore::BinString> name; |
24 | ore::BinTPtr<ore::ResMetaData> params; |
25 | }; |
26 | |
27 | struct ResClip { |
28 | float start_time; |
29 | float duration; |
30 | u16 actor_index; |
31 | u16 actor_action_index; |
32 | u8 _c; |
33 | ore::BinTPtr<ore::ResMetaData> params; |
34 | }; |
35 | |
36 | struct ResOneshot { |
37 | float time; |
38 | u16 actor_index; |
39 | u16 actor_action_index; |
40 | u32 _8; |
41 | u32 _c; |
42 | ore::BinTPtr<ore::ResMetaData> params; |
43 | }; |
44 | |
45 | struct ResSubtimeline { |
46 | ore::BinTPtr<ore::BinString> name; |
47 | }; |
48 | |
49 | struct ResTimeline { |
50 | /// 'TLIN' |
51 | u32 magic; |
52 | /// String pool offset (relative to this structure) |
53 | int string_pool_offset; |
54 | u32 reserved_8; |
55 | u32 reserved_c; |
56 | float duration; |
57 | u16 num_actors; |
58 | u16 num_actions; |
59 | u16 num_clips; |
60 | u16 num_oneshots; |
61 | u16 num_subtimelines; |
62 | u16 num_cuts; |
63 | ore::BinTPtr<ore::BinString> name; |
64 | ore::BinTPtr<ResActor> actors; |
65 | ore::BinTPtr<ResClip> clips; |
66 | ore::BinTPtr<ResOneshot> oneshots; |
67 | ore::BinTPtr<ResTrigger> triggers; |
68 | ore::BinTPtr<ResSubtimeline> subtimelines; |
69 | ore::BinTPtr<ResCut> cuts; |
70 | ore::BinTPtr<ore::ResMetaData> params; |
71 | }; |
72 | |
73 | void SwapEndian(ore::ResEndian* endian, ResTrigger* trigger); |
74 | void SwapEndian(ore::ResEndian* endian, ResCut* cut); |
75 | void SwapEndian(ore::ResEndian* endian, ResClip* clip); |
76 | void SwapEndian(ore::ResEndian* endian, ResOneshot* oneshot); |
77 | void SwapEndian(ore::ResEndian* endian, ResSubtimeline* subtimeline); |
78 | void SwapEndian(ore::ResEndian* endian, ResTimeline* timeline); |
79 | |
80 | } // namespace evfl |
81 |