Лямбда-выражение не поддерживает встроенный ассемблерный код

coder of the year
Участник
Статус
Оффлайн
Регистрация
13 Мар 2019
Сообщения
886
Реакции[?]
266
Поинты[?]
4K
Помогите, прошу!

C++:
void AngleVectors(const Vector &angles, Vector *forward, Vector *right, Vector *up)
{
    auto SinCos = [](float flRadians, float* pflSine, float* pflCosine)
    {
        __asm
        {
            fld    DWORD PTR[flRadians]
            fsincos
            mov edx, DWORD PTR[pflCosine]
            mov eax, DWORD PTR[pflSine]
            fstp DWORD PTR[edx]
            fstp DWORD PTR[eax]
        }
    };
    float sr, sp, sy, cr, cp, cy;

    SinCos(DEG2RAD(angles[1]), &sy, &cy);
    SinCos(DEG2RAD(angles[0]), &sp, &cp);
    SinCos(DEG2RAD(angles[2]), &sr, &cr);

    if (forward)
    {
        forward->x = cp * cy;
        forward->y = cp * sy;
        forward->z = -sp;
    }

    if (right)
    {
        right->x = (-1 * sr*sp*cy + -1 * cr*-sy);
        right->y = (-1 * sr*sp*sy + -1 * cr*cy);
        right->z = -1 * sr*cp;
    }

    if (up)
    {
        up->x = (cr*sp*cy + -sr * -sy);
        up->y = (cr*sp*sy + -sr * cy);
        up->z = cr * cp;
    }
}
 
Забаненный
Статус
Оффлайн
Регистрация
11 Янв 2018
Сообщения
2,375
Реакции[?]
454
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Код:
void AngleVectors(const Vector &angles, Vector *forward, Vector *right, Vector *up)
{
    auto SinCos = [](float flRadians, float* pflSine, float* pflCosine)
    {
       // ПРОСТО НАДО БЫЛО УДАЛИТЬ ЕГО
    };
    float sr, sp, sy, cr, cp, cy;

    SinCos(DEG2RAD(angles[1]), &sy, &cy);
    SinCos(DEG2RAD(angles[0]), &sp, &cp);
    SinCos(DEG2RAD(angles[2]), &sr, &cr);

    if (forward)
    {
        forward->x = cp * cy;
        forward->y = cp * sy;
        forward->z = -sp;
    }

    if (right)
    {
        right->x = (-1 * sr*sp*cy + -1 * cr*-sy);
        right->y = (-1 * sr*sp*sy + -1 * cr*cy);
        right->z = -1 * sr*cp;
    }

    if (up)
    {
        up->x = (cr*sp*cy + -sr * -sy);
        up->y = (cr*sp*sy + -sr * cy);
        up->z = cr * cp;
    }
}
 
Пользователь
Статус
Оффлайн
Регистрация
25 Июл 2018
Сообщения
150
Реакции[?]
48
Поинты[?]
0
Код:
void AngleVectors(const Vector &angles, Vector *forward, Vector *right, Vector *up)
{
    auto SinCos = [](float flRadians, float* pflSine, float* pflCosine)
    {
       // ПРОСТО НАДО БЫЛО УДАЛИТЬ ЕГО
    };
    float sr, sp, sy, cr, cp, cy;

    SinCos(DEG2RAD(angles[1]), &sy, &cy);
    SinCos(DEG2RAD(angles[0]), &sp, &cp);
    SinCos(DEG2RAD(angles[2]), &sr, &cr);

    if (forward)
    {
        forward->x = cp * cy;
        forward->y = cp * sy;
        forward->z = -sp;
    }

    if (right)
    {
        right->x = (-1 * sr*sp*cy + -1 * cr*-sy);
        right->y = (-1 * sr*sp*sy + -1 * cr*cy);
        right->z = -1 * sr*cp;
    }

    if (up)
    {
        up->x = (cr*sp*cy + -sr * -sy);
        up->y = (cr*sp*sy + -sr * cy);
        up->z = cr * cp;
    }
}
удачи, будет еще больше ошибок
 
Забаненный
Статус
Оффлайн
Регистрация
11 Янв 2018
Сообщения
2,375
Реакции[?]
454
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
coder of the year
Участник
Статус
Оффлайн
Регистрация
13 Мар 2019
Сообщения
886
Реакции[?]
266
Поинты[?]
4K
Код:
void AngleVectors(const Vector &angles, Vector *forward, Vector *right, Vector *up)
{
    auto SinCos = [](float flRadians, float* pflSine, float* pflCosine)
    {
       // ПРОСТО НАДО БЫЛО УДАЛИТЬ ЕГО
    };
    float sr, sp, sy, cr, cp, cy;

    SinCos(DEG2RAD(angles[1]), &sy, &cy);
    SinCos(DEG2RAD(angles[0]), &sp, &cp);
    SinCos(DEG2RAD(angles[2]), &sr, &cr);

    if (forward)
    {
        forward->x = cp * cy;
        forward->y = cp * sy;
        forward->z = -sp;
    }

    if (right)
    {
        right->x = (-1 * sr*sp*cy + -1 * cr*-sy);
        right->y = (-1 * sr*sp*sy + -1 * cr*cy);
        right->z = -1 * sr*cp;
    }

    if (up)
    {
        up->x = (cr*sp*cy + -sr * -sy);
        up->y = (cr*sp*sy + -sr * cy);
        up->z = cr * cp;
    }
}
Спасибо))
 
Забаненный
Статус
Оффлайн
Регистрация
11 Янв 2018
Сообщения
2,375
Реакции[?]
454
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Пользователь
Статус
Оффлайн
Регистрация
25 Июл 2018
Сообщения
150
Реакции[?]
48
Поинты[?]
0
Забаненный
Статус
Оффлайн
Регистрация
11 Янв 2018
Сообщения
2,375
Реакции[?]
454
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ну блять, в моем сурсе у меня была такая же проблема с этой хуйней
пробовал убрать/закоментировать - вместо 1 ошибки теперь 20 блять
потому-что ты не то удалял, нужно сам ассемблерный код удалять
 
coder of the year
Участник
Статус
Оффлайн
Регистрация
13 Мар 2019
Сообщения
886
Реакции[?]
266
Поинты[?]
4K
ну блять, в моем сурсе у меня была такая же проблема с этой хуйней
пробовал убрать/закоментировать - вместо 1 ошибки теперь 20 блять
У кого-то руки не из того места растут)
 
Сверху Снизу