#define WIN32_LEAN_AND_MEAN
#define _CRT_SECURE_NO_WARNINGS 1
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <float.h>
#include <d3dx9.h>
#include "stdint.h"
#include "patcher.h"
#include "cheat.h"
#include "ini.h"
#include "ini_safe_haven.h"
#include "keyhook.h"
#include "math_stuff.h"
#include "cheat_funcs.h"
#include "cheat_generic.h"
#include "cheat_actor.h"
#include "cheat_vehicle.h"
#include "dumb_menu.h"
#include "samp.h"
#include "debug_classify.h"

/* warning C4100: 'foo' : unreferenced formal parameter */
#pragma warning(disable:4100)

#define snprintf  _snprintf
#define vsnprintf _vsnprintf
#define isfinite  _finite

void log_debug(const char *fmt, ...);
void debug_ptr_set(void *ptr);

extern char dll_working_dir[MAX_PATH];
extern FILE *log_file;

extern HMODULE hDllModule;

class proxyIDirect3D9;
class proxyIDirect3DDevice9;
class proxyIDirect3DSwapChain9;

extern proxyIDirect3D9 *pDirect3D9;
extern proxyIDirect3DDevice9 *pDirect3DDevice9;
extern proxyIDirect3DSwapChain9 *pDirect3DSwapChain9;
