m (Kulagin moved page User:Kulagin/CancelDirectionCodes to User:Kulagin/Movelist) |
No edit summary |
||
Line 1: | Line 1: | ||
<syntaxhighlight lang="python" line="1"> | <syntaxhighlight lang="c++"> | ||
class Cancel | |||
{ | |||
public: | |||
CancelDirectionCode DirectionCommand_ListIdentifier; //0x0000 | |||
CancelAttackCode AttackCommand; //0x0004 | |||
int64_t requirement_addr; //0x0008 | |||
class cancel_extradata *extradata_addr; //0x0010 | |||
int32_t frame_window_start; //0x0018 | |||
int32_t frame_window_end; //0x001C | |||
int32_t starting_frame; //0x0020 | |||
uint16_t move_id; //0x0024 | |||
uint16_t cancel_option; //0x0026 | |||
}; //Size: 0x0028 | |||
static_assert(sizeof(Cancel) == 0x28); | |||
</syntaxhighlight>DirectionCommand_ListIdentifier: if the 15th bit isnt' set, it's a direction command. If 15th bit is set, it's a ListIdentifier: identifies the end of the list or a pointer to a group cancel, or possibly something else. | |||
requirement_addr: pointer to the start of the requirement list. | |||
extradata_addr: pointer to the start of the extradata list. | |||
frame_window_start: the start of the window at which the cancel is active. | |||
frame_window_end: the end of the window at which the cancel is active. | |||
move_id: id of a move into which this cancel cancels the object. So, for example, if value of the <code>move_id</code> member is <code>0x1605</code> , this cancel will cancel current move into the move at index <code>0x1605</code> in the move list. | |||
cancel_option: todo.<syntaxhighlight lang="python" line="1"> | |||
class CancelDirectionCode(Enum): | class CancelDirectionCode(Enum): | ||
_D_B = 1 << 1 | _D_B = 1 << 1 | ||
Line 19: | Line 46: | ||
If 15th bit is not set, it means it's a direction code of an input. If 15th bit is set, depending on the value of the variable, it indicates the end of the cancel list, or a pointer to a group cancel list. | If 15th bit is not set, it means it's a direction code of an input. If 15th bit is set, depending on the value of the variable, it indicates the end of the cancel list, or a pointer to a group cancel list. | ||
If it's a pointer to a group cancel list, the index of the cancel in the group cancel list is in the <code>move_id</code> member in the <code>Cancel</code> object. | If it's a pointer to a group cancel list, the index of the cancel in the group cancel list is in the <code>move_id</code> member in the <code>Cancel</code> object.<syntaxhighlight lang="python3"> | ||
class CancelAttackCode(Enum): | |||
_N = 0 | |||
_1 = 1 << 0 | |||
_2 = 1 << 1 | |||
_3 = 1 << 2 | |||
_4 = 1 << 3 | |||
_1_2 = _1 & _2 | |||
_1_3 = _1 & _3 | |||
_1_4 = _1 & _4 | |||
_2_3 = _2 & _3 | |||
_2_4 = _2 & _4 | |||
_3_4 = _3 & _4 | |||
_1_2_3 = _1 & _2 & _3 | |||
_1_2_4 = _1 & _2 & _4 | |||
_1_3_4 = _1 & _3 & _4 | |||
_2_3_4 = _2 & _3 & _4 | |||
_1_2_3_4 = _1 & _2 & _3 & _4 | |||
</syntaxhighlight>Indicates what attack buttons have to be pressed in order for this cancel to become active(cancel the move). |
Revision as of 15:34, 16 June 2021
class Cancel
{
public:
CancelDirectionCode DirectionCommand_ListIdentifier; //0x0000
CancelAttackCode AttackCommand; //0x0004
int64_t requirement_addr; //0x0008
class cancel_extradata *extradata_addr; //0x0010
int32_t frame_window_start; //0x0018
int32_t frame_window_end; //0x001C
int32_t starting_frame; //0x0020
uint16_t move_id; //0x0024
uint16_t cancel_option; //0x0026
}; //Size: 0x0028
static_assert(sizeof(Cancel) == 0x28);
DirectionCommand_ListIdentifier: if the 15th bit isnt' set, it's a direction command. If 15th bit is set, it's a ListIdentifier: identifies the end of the list or a pointer to a group cancel, or possibly something else.
requirement_addr: pointer to the start of the requirement list.
extradata_addr: pointer to the start of the extradata list.
frame_window_start: the start of the window at which the cancel is active.
frame_window_end: the end of the window at which the cancel is active.
move_id: id of a move into which this cancel cancels the object. So, for example, if value of the move_id
member is 0x1605
, this cancel will cancel current move into the move at index 0x1605
in the move list.
cancel_option: todo.
class CancelDirectionCode(Enum):
_D_B = 1 << 1
_D = 1 << 2
_D_F = 1 << 3
_B = 1 << 4
_N = 1 << 5
_F = 1 << 6
_U_B = 1 << 7
_U = 1 << 8
_U_F = 1 << 9
special = 1 << 15
cancel_list_end = 0x8000
group_cancel = 0x800B
group_cancel_list_end = 0x800C
CancelDirectionCode enum
inside Cancel
objects.
If 15th bit is not set, it means it's a direction code of an input. If 15th bit is set, depending on the value of the variable, it indicates the end of the cancel list, or a pointer to a group cancel list.
If it's a pointer to a group cancel list, the index of the cancel in the group cancel list is in the move_id
member in the Cancel
object.
class CancelAttackCode(Enum):
_N = 0
_1 = 1 << 0
_2 = 1 << 1
_3 = 1 << 2
_4 = 1 << 3
_1_2 = _1 & _2
_1_3 = _1 & _3
_1_4 = _1 & _4
_2_3 = _2 & _3
_2_4 = _2 & _4
_3_4 = _3 & _4
_1_2_3 = _1 & _2 & _3
_1_2_4 = _1 & _2 & _4
_1_3_4 = _1 & _3 & _4
_2_3_4 = _2 & _3 & _4
_1_2_3_4 = _1 & _2 & _3 & _4
Indicates what attack buttons have to be pressed in order for this cancel to become active(cancel the move).