void __thiscall LegMovement(CUserCmd *cmd)
{
float sidemove; // xmm2_4
int new_buttons; // eax
float forwardmove; // xmm1_4
sidemove = cmd->sidemove;
new_buttons = cmd->buttons & ~(IN_MOVERIGHT|IN_MOVELEFT|IN_BACK|IN_FORWARD);
forwardmove = cmd->forwardmove;
if ( !Config::LegMovement )
{
if ( forwardmove <= 0.0 )
{
if ( forwardmove < 0.0 )
new_buttons |= IN_BACK;
}
else
{
new_buttons |= IN_FORWARD;
}
if ( sidemove > 0.0 )
goto LABEL_15;
if ( sidemove >= 0.0 )
goto LABEL_18;
goto LABEL_17;
}
if ( Config::LegMovement != 1 )
goto LABEL_18;
if ( forwardmove <= 0.0 )
{
if ( forwardmove < 0.0 )
new_buttons |= IN_FORWARD;
}
else
{
new_buttons |= IN_BACK;
}
if ( sidemove > 0.0 )
{
LABEL_17:
new_buttons |= IN_MOVELEFT;
goto LABEL_18;
}
if ( sidemove < 0.0 )
LABEL_15:
new_buttons |= IN_MOVERIGHT;
LABEL_18:
cmd->buttons = new_buttons;
}