#ifndef JUMBOT_JUMBOT_H
#define JUMBOT_JUMBOT_H
#define _USE_MATH_DEFINES
#include <Windows.h>
#include <math.h>
#include <string.h>
#include "detours.h"
#include "etpro.h"
#define CMD_JUMBOT_ON "+jumbot"
#define CMD_JUMBOT_OFF "-jumbot"
#define CMD_AUTOJUMP_ON "+autojump"
#define CMD_AUTOJUMP_OFF "-autojump"
#define CG_ADDCOMMAND 18
#define CG_GETCURRENTCMDNUMBER 82
#define CG_GETUSERCMD 83
#define ENTITYNUM_NONE 1023
#define ADDR_COM_ARGV 0x41FA30
#define ADDR_MOUSE_X 0x13EEA8C
#define ADDR_KEY_UP 0x0835AD8
#define OFFSET_VELOCITY 8 * 4
#define OFFSET_GROUND_ENTITY_NUM 20 * 4
#define OFFSET_VIEW 45 * 4
#define MOUSE_SAFE_PAD 0.3
#define MIN_SPEED 320
char* (*Cmd_Argv)(int arg);
typedef struct usercmd_s {
int _pad[5];
signed char forwardmove, rightmove;
char __pad[3];
} usercmd_t;
struct vector2 {
float x;
float y;
};
struct vector3 {
float x;
float y;
float z;
};
struct jumbot {
void *cgame;
void (*cg_dllEntry)(int (*)(int, ...));
int (*cg_vmMain)(int, ...);
int (*syscall)(int, ...);
void (*ETPro_AC)(void*, void*, void*, int, void*, char*);
void* (*ETPro_AC2)(DWORD);
HINSTANCE (__stdcall *LoadLibraryA)(LPCSTR);
FARPROC (__stdcall *GetProcAddress)(HMODULE, LPCSTR);
BOOL ETPro;
BOOL enabled;
BOOL autojump;
struct vector3* velocity;
struct vector2* view;
int *groundEntityNum;
float *mouseX;
struct mod* mod;
} jumbot;
enum {
CG_INIT,
CG_SHUTDOWN,
CG_CONSOLE_COMMAND,
CG_DRAW_ACTIVE_FRAME
};
struct mod {
char* name;
unsigned int offset;
};
struct mod mods[] = {
{"etpro", 0x37B1340},
{"tjmod", 0x358C2C0},
{"etjump", 0x1EF58B8},
};
#endif