-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathD2Ptrs.h
43 lines (28 loc) · 1.31 KB
/
D2Ptrs.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#pragma once
#ifndef __D2PTRS_H__
#define __D2PTRS_H__
//#include "D2Structs.h"
#pragma warning ( push )
#pragma warning ( disable: 4245 )
#pragma optimize ( "", off )
#ifdef _DEFINE_VARS
enum {DLLNO_D2CLIENT, DLLNO_D2COMMON, DLLNO_D2GFX, DLLNO_D2LANG, DLLNO_D2WIN, DLLNO_D2NET, DLLNO_D2GAME, DLLNO_D2LAUNCH, DLLNO_FOG, DLLNO_BNCLIENT, DLLNO_STORM, DLLNO_D2CMP, DLLNO_D2MULTI};
#define DLLOFFSET(a1,b1) ((DLLNO_##a1)|((b1)<<8))
#define FUNCPTR(d1,v1,t1,t2,o1) typedef t1 d1##_##v1##_t t2; d1##_##v1##_t *d1##_##v1 = (d1##_##v1##_t *)DLLOFFSET(d1,o1);
#define VARPTR(d1,v1,t1,o1) typedef t1 d1##_##v1##_t; d1##_##v1##_t *p_##d1##_##v1 = (d1##_##v1##_t *)DLLOFFSET(d1,o1);
#define ASMPTR(d1,v1,o1) DWORD d1##_##v1 = DLLOFFSET(d1,o1);
#else
#define FUNCPTR(d1,v1,t1,t2,o1) typedef t1 d1##_##v1##_t t2; extern d1##_##v1##_t *d1##_##v1;
#define VARPTR(d1,v1,t1,o1) typedef t1 d1##_##v1##_t; extern d1##_##v1##_t *p_##d1##_##v1;
#define ASMPTR(d1,v1,o1) extern DWORD d1##_##v1;
#endif
#define _D2PTRS_START D2WIN_InitMPQ
FUNCPTR(D2WIN, InitMPQ, DWORD __stdcall, (char *dll, char *mpqfile, char *mpqname, int v4, int v5), 0x7E50)
FUNCPTR(D2GFX, GetHwnd, HWND __stdcall, (void), 0xB0C0)
#define _D2PTRS_END D2GFX_GetHwnd
#undef FUNCPTR
#undef VARPTR
#undef ASMPTR
#pragma warning ( pop )
#pragma optimize ( "", on )
#endif