-
-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathaction.layout
132 lines (119 loc) · 4.62 KB
/
action.layout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
set_table_type|SingleKeyed
set_table_category|SingleKeyed
use_base_row_id|false
// Row ID 543, 547 are known to have hardcoded checks
define_struct|Unk_0xC8_Struct|int|int
add_column|DLCFlags|int
add_column|CharaTimelineId|int
add_column|CharaTimelineId2|int
add_column|MSeqInputId|int
// Type? Hardcoded id checks
add_column|Unk_0x10|int
add_column|UnkFloat0x14|float
add_column|UnkFloat0x18|float
add_column|Unk_0x1C|int
// Has hardcoded checks i.e 12, 1
add_column|MovementType1|int
// Bitset from 0-15, 0 is none
add_column|MovementType2|int
add_column|Unk_0x28|float[]
add_column|ActionMoveTypeId|int
add_column|Unk_0x34|string
add_column|LayoutNamedInstanceId1|int
add_column|LayoutNamedInstanceId2|int
add_column|Unk_0x40|int
add_column|Unk_0x44|int
add_column|Unk_0x48|int
add_column|Unk_0x4C|int
// Basically FollowupActionIds is an array which contains every action that can be "chained" with the specific action under certain conditions
add_column|FollowupActionIds|int[]
// From mThund3R: For now I've been able to identify a few types:
// 0 and 1 seem to chain the action as soon as possible, which could be very early or the end of the animation depending on the CharaTimelineIds
// 33, 32 and 30 seem to be related to the player falling to the ground. They supposedly all work the same, executing the followup action as soon as the player hits the ground, except when they're used together. In that case, they each represent a different fall height. It seems that 32 is the lowest, 30 is medium and 33 is highest
// 5 happens when you successfully use the action to evade / parry the enemy attack. Still need to test whether this is possible for all actions, regardless of CharaTimelineId
// 6 happens, like 0 and 1, at a specific point in the animation, which seems to come later than 0 and 1
// 62, 61, 11, 60 and 10 seem to all be used on actions like Lunge.
// 62 is used to chain from the start anim to the loop anim
//
// The rest are all used to chain from the loop anim to the end anim.
// 61 and 11 seem to be used when the player hits a target from a bigger distance, while 60 and 10 are used for, say, the Lunge thrust, when Clive is too close to the target to perform the slash
//
// from 0 to 80 (bitset_out_of_range) - check: ffxvi.exe steam 1.0.1
// 48 89 5C 24 ? 48 89 6C 24 ? 48 89 74 24 ? 57 41 56 41 57 48 83 EC ? 48 8B D9 E8
add_column|FollowupTypes|int[]
add_column|BattleEventId|int
add_column|Unk_0x64|int
add_column|Unk_0x68|float
add_column|Unk_0x6C|float
add_column|Unk_0x70|int
add_column|UnkActionId|int
// Can also be partytalk? Depends on id?
// if ( a2 - 20000 <= 9999 || a2 - 3000000 <= 999999 || a2 - 6000000 <= 999999 )
add_column|BattleOrPartyTalkId|int
add_column|Unk_0x7C|float
add_column|Unk_0x80|int
add_column|Unk_0x84|float
add_column|UnkActionIds0x88|int[]
add_column|UnkCharaTimelineIds0x90|int[]
// 301 = phoenix/phoenixshiftmove related?
add_column|Unk_0x98|int
add_column|UnkCharaTimelineId0x9C|int
add_column|Unk_0xA0|float[]
add_column|UnkSkillId|int
add_column|Unk_0xAC|int
add_column|Unk_0xB0|int
add_column|Unk_0xB4|float
add_column|Unk_0xB8|int
add_column|Unk_0xBC|float
add_column|Unk_0xC0|int
// Checks against very hardcoded number types
// Seems important overall, directly controls which class to init (as evidenced by a bunch of ctors)
// ffxvi.exe steam 1.0.1: sub_14046A7AC
add_column|UnkType0xC4|int
// Second int = phoenix related
add_column|Unk_0xC8|Unk_0xC8_Struct[]
add_column|Unk_0xD0|string
add_column|Unk_0xD4|int
add_column|UnkMoveParamId0xD8|int
add_column|UnkCharaTimelineId0xDC|int
add_column|BattleVoiceCategoryId|int
// 1-4 hardcoded enum checks
// check 83 E9 ? 74 ? 83 E9 ? 74 ? 83 F9 ? 75 ? 48 8B 06
add_column|UnkType0xE4|int
add_column|GraphicsEnvironmentParamId|int
add_column|UnkCharaTimelineId0xEC|int
add_column|Unk_0xF0|float[]
add_column|Unk_0xF8|int
add_column|Unk_0xFC|int
add_column|Unk_0x100|byte
add_column|Unk_0x101|byte
add_column|Unk_0x102|byte
add_column|Unk_0x103|byte
add_column|Unk_0x104|byte
add_column|Unk_0x105|byte
add_column|Unk_0x106|byte
add_column|Unk_0x107|byte
add_column|Unk_0x108|byte
add_column|Unk_0x109|byte
add_column|Unk_0x10A|byte
add_column|Unk_0x10B|byte
add_column|Unk_0x10C|byte
add_column|Unk_0x10D|byte
add_column|Unk_0x10E|byte
add_column|Unk_0x10F|byte
add_column|Unk_0x110|byte
add_column|Unk_0x111|byte
add_column|Unk_0x112|byte
add_column|Unk_0x113|byte
add_column|Unk_0x114|byte
add_column|Unk_0x115|byte
add_column|Unk_0x116|byte
add_column|Unk_0x117|byte
add_column|Unk_0x118|byte
add_column|Unk_0x119|byte
add_column|Unk_0x11A|byte
add_column|Unk_0x11B|byte
add_column|Unk_0x11C|byte
add_column|Unk_0x11D|byte
add_column|Unk_0x11E|byte
add_column|Unk_0x11F|byte