User:Kulagin/Movelist

From Wavu Wiki, the 🌊 wavy Tekken wiki
Cancel
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.

CancelDirectionCode
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.

0x8001 is forward dash and 0x8002 is backdash.

0x8003 and 0x8004 the sidesteps.

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.

CancelAttackCode
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).