Вопрос Win Api

Paste is my life
Начинающий
Статус
Оффлайн
Регистрация
28 Янв 2017
Сообщения
144
Реакции[?]
13
Поинты[?]
0
Всем привет.
Ребят, просвятите как работать с sqrt, sinf, cosf и тд, математикой без crt короче, как объявить их и пример.
Спасибо.
 
feel irl
Участник
Статус
Оффлайн
Регистрация
21 Дек 2018
Сообщения
677
Реакции[?]
294
Поинты[?]
16K
Всем привет.
Ребят, просвятите как работать с sqrt, sinf, cosf и тд, математикой без crt короче, как объявить их и пример.
Спасибо.
это всё есть в либах cmath, math.h
для триги можешь определять пи как double pi = 3.1415926535
обьявлять так, если чо нужна помощь то пиши,мб помогу
Код:
#include <math.h>
 
Paste is my life
Начинающий
Статус
Оффлайн
Регистрация
28 Янв 2017
Сообщения
144
Реакции[?]
13
Поинты[?]
0
это всё есть в либах cmath, math.h
для триги можешь определять пи как double pi = 3.1415926535
обьявлять так, если чо нужна помощь то пиши,мб помогу
Код:
#include <math.h>
Ты не понял, это можно реализовать с вин апи самой игры, не использую math.h
 
Продавец
Статус
Оффлайн
Регистрация
12 Сен 2016
Сообщения
862
Реакции[?]
263
Поинты[?]
5K
#define j_sqrt ((double(*)(double))0x1419D1B7F)
#define j_pow ((double(*)(double,double))0x1417AF14A)
#define ABS(v) ((v<0)?(-v):(v))
адреса устарели вроде
и юзать j_sqrt( 0 ) например
 
Energy Reload
Забаненный
Статус
Оффлайн
Регистрация
20 Авг 2017
Сообщения
1,206
Реакции[?]
330
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
#define j_sqrt ((double(*)(double))0x1419D1B7F)
#define j_pow ((double(*)(double,double))0x1417AF14A)
#define ABS(v) ((v<0)?(-v):(v))
адреса устарели вроде
и юзать j_sqrt( 0 ) например
Теже яйца, только в профиль.
C++:
double _sqrt(double value)
{
    double height = 1, width = value;
    while (std::abs(width - height) > 0.00001) {
        height = (height + width) / 2;
        width = value / height;
    }
    return width;
}
 
Забаненный
Статус
Оффлайн
Регистрация
4 Янв 2021
Сообщения
16
Реакции[?]
10
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Теже яйца, только в профиль.
C++:
double _sqrt(double value)
{
    double height = 1, width = value;
    while (std::abs(width - height) > 0.00001) {
        height = (height + width) / 2;
        width = value / height;
    }
    return width;
}
Код:
//From Src ICode
#include <intrin.h>
float pow(float x, float y) {
    return _mm_cvtss_f32(_mm_pow_ps(_mm_set_ss(x), _mm_set_ss(y)));
}
float sqrt(float x) {
    return _mm_cvtss_f32(_mm_sqrt_ss(_mm_set_ss(x)));
}
float cos(float x) {
    return _mm_cvtss_f32(_mm_cos_ps(_mm_set_ss(x)));
}
float exp(float x) {
    return _mm_cvtss_f32(_mm_exp_ps(_mm_set_ss(x)));
}
float sin(float x) {
    return _mm_cvtss_f32(_mm_sin_ps(_mm_set_ss(x)));
}
void memset(void* dst, UCHAR val, size_t size) {
    __stosb((PUCHAR)dst, val, size);
}

__forceinline float _hide(float value) {
    return _mm_cvtss_f32(_mm_castsi128_ps(_mm_cvtsi32_si128(*(int*)&value)));
}
 
Последнее редактирование:
Забаненный
Статус
Оффлайн
Регистрация
4 Янв 2021
Сообщения
16
Реакции[?]
10
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Код:
template <typename type, typename... Args> __forceinline type _vcall(void* base, int index, Args... args) {
    return ((type(__stdcall*)(void*, Args...))(*(uintptr_t**)base)[index])(base, Args(args)...);
}

template <typename type, typename... Args> __forceinline type _call(uintptr_t address, Args... args) {
    return ((type(__stdcall*)(Args...))address)(Args(args)...);
}

struct IActor
{
    IItem* GetCurrentItem(bool includeVehicle) {
        return _vcall<IItem*>(this, 57, includeVehicle);
    }
};

void* CryMalloc(size_t _Size) {
    return _call<void*>(0x1400A2F80, _Size);
}
 
Сверху Снизу