rendered paste body#include "D2Structs.h"
#ifdef _GLOBAL
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
//1.13c
//#define _D2PTRS_START D2CLIENT_GetSelectedUnit
//
//FUNCPTR(D2CLIENT, GetSelectedUnit, UnitAny * __stdcall, (), 0x51A80)
//FUNCPTR(BNCLIENT, SendBNMessage, void __fastcall,(LPSTR lpMessage),0xC400)
//FUNCPTR(D2CLIENT, PrintGameString, void __stdcall, (wchar_t *wMessage, int nColor), 0x7D850)
//FUNCPTR(D2CLIENT, GetDifficulty, BYTE __stdcall, (), 0x41930)
//FUNCPTR(D2CLIENT, GetAutomapSize, DWORD __stdcall, (), 0x5F080)
//FUNCPTR(D2CLIENT, GetGameInfo, GameStructInfo *__stdcall, (), 0x108B0)
//FUNCPTR(D2CLIENT, NewAutomapCell, AutomapCell * __fastcall, (), 0x5F6B0)
//FUNCPTR(D2CLIENT, AddAutomapCell, void __fastcall, (AutomapCell *aCell, AutomapCell **node), 0x61320)
//FUNCPTR(D2CLIENT, RevealAutomapRoom, void __stdcall, (Room1 *pRoom1, DWORD dwClipFlag, AutomapLayer *aLayer), 0x62580)
//FUNCPTR(D2CLIENT, InitAutomapLayer_I, AutomapLayer* __fastcall, (DWORD nLayerNo), 0x62710)
//FUNCPTR(D2CLIENT, GetMonsterOwner, DWORD __fastcall, (DWORD nMonsterId), 0x216A0)
//FUNCPTR(D2CLIENT, GetUiVar_I, DWORD __fastcall, (DWORD dwVarNo), 0xBE400)
//FUNCPTR(D2CLIENT, SetUIState, DWORD __fastcall, (DWORD varno, DWORD howset, DWORD unknown1), 0xC2794)
//FUNCPTR(D2CLIENT, CalculateShake, void __stdcall, (DWORD *dwPosX, DWORD *dwPosY), 0x8AFD0)
//FUNCPTR(D2CLIENT, GetPlayerUnit, UnitAny* __stdcall,(),0xA4D60)
//FUNCPTR(D2CLIENT, DrawRectFrame, VOID __fastcall, (DWORD Rect), 0xBE4C0)
//FUNCPTR(D2CLIENT, Attack, VOID __stdcall, (AttackStruct* Attack, bool AttackingUnit), 0x1A060)
//FUNCPTR(D2CLIENT, GetItemName, BOOL __stdcall, (UnitAny* pItem, wchar_t* wBuffer, DWORD dwSize), 0x914F0)
//FUNCPTR(D2CLIENT, GetMouseXOffset, DWORD __fastcall, (VOID), 0x3F6C0)
//FUNCPTR(D2CLIENT, GetMouseYOffset, DWORD __fastcall, (VOID), 0x3F6D0)
//FUNCPTR(D2CLIENT, DrawEnteringLevelText, void __stdcall, (), 0xBF0D0)//Updated 1.13c
//FUNCPTR(D2CLIENT, FindServerSideUnit, UnitAny* __fastcall, (DWORD dwId, DWORD dwType), 0xA5B40) // Updated 1.13c
//FUNCPTR(D2CLIENT, FindClientSideUnit, UnitAny* __fastcall, (DWORD dwId, DWORD dwType), 0xA5B20) // Updated 1.13c
//
//FUNCPTR(D2CLIENT, UnitTestSelect, DWORD __stdcall, (UnitAny* pUnit, DWORD _1, DWORD _2, DWORD _3), 0xA68E0)
//FUNCPTR(D2CLIENT, SetUIVar, DWORD __fastcall, (DWORD varno, DWORD howset, DWORD unknown1), 0xC2790)
//FUNCPTR(D2CLIENT, GetCursorItem, UnitAny* __fastcall, (VOID), 0x16020)
//
//FUNCPTR(D2CLIENT, CreateAttack, DWORD __stdcall, (UnitAny* pUnit, DWORD wSkillId, DWORD dwSkillLevel, bool bUnk), 0xA2C90)
//FUNCPTR(D2CLIENT, DrawPartyName, void __stdcall, (LPSTR lpPlayerName,DWORD yPos,DWORD Color,DWORD Unk), 0x75780)
//
//FUNCPTR(D2CMP, InitCellFile2, VOID __stdcall, (LPVOID File, CellFile **Out, LPSTR SourceFile, DWORD Line, DWORD FileVersion, LPSTR Filename), -10006)
//FUNCPTR(D2CMP, DeleteCellFile2, VOID __stdcall, (CellFile * File), -10065)
//
//VARPTR(D2CLIENT, MouseOffsetY, int, 0x11995C)
//VARPTR(D2CLIENT, MouseOffsetZ, int, 0x11C418)
//VARPTR(D2CLIENT, MouseOffsetX, int, 0x119960)
//VARPTR(D2CLIENT, ExitAppFlag, DWORD, 0xF8C9C)
//VARPTR(D2CLIENT, Divisor, int, 0xF16B0)
//VARPTR(D2CLIENT, Offset, POINT, 0x11C1F8)
//VARPTR(D2CLIENT, xShake, int, 0x11BF00)
//VARPTR(D2CLIENT, yShake, int, 0x10B9DC)
//VARPTR(D2CLIENT, GameInfo, GameStructInfo *, 0x11B980)
//VARPTR(D2CLIENT, Ping, DWORD, 0x119804)
//VARPTR(D2CLIENT, Skip, DWORD, 0x119810)
//VARPTR(D2CLIENT, FPS, DWORD, 0x11C2AC)
//VARPTR(D2CLIENT, PlayerUnit, UnitAny *, 0x11BBFC)
//VARPTR(D2CLIENT, RosterUnitList, RosterUnit *, 0x11BC14)
//VARPTR(D2CLIENT, MouseX, DWORD, 0x11B828)
//VARPTR(D2CLIENT, MouseY, DWORD, 0x11B824)
//VARPTR(D2CLIENT, ScreenSizeX, DWORD, 0xDBC48)
//VARPTR(D2CLIENT, ScreenSizeY, DWORD, 0xDBC4C)
//VARPTR(D2CLIENT, OverheadTrigger, DWORD, 0x113ACE)
//VARPTR(D2CLIENT, GoldDialog, DWORD, 0xFAD60)
//VARPTR(D2CLIENT, AutomapLayer, AutomapLayer*, 0x11C1C4)
//VARPTR(D2CLIENT, xMapShake, int, 0x11BF00)
//VARPTR(D2CLIENT, yMapShake, int, 0x10B9DC)
//VARPTR(D2CLIENT, AutomapOn, DWORD, 0xFADA8)
//VARPTR(D2CLIENT, ptAutomap, POINT, 0x11C23C)
//VARPTR(D2CLIENT, ServerIp, char, 0xF4320)
//VARPTR(D2CLIENT, pAct, Act*, 0x11C3B8)
//VARPTR(D2CLIENT, AutomapLayerList, AutomapLayer *, 0x11C1C0)
//
//ASMPTR(D2CLIENT, AutomapDraw_I, 0x5FFE0)
//ASMPTR(D2CLIENT, GetUnitName_I, 0xA5D90)
//ASMPTR(D2CLIENT, PlayerUnit_I, 0x11BBFC)
//ASMPTR(D2COMMON, LifeAddress_II, 0x2D9430)
//ASMPTR(D2CLIENT, TestPvpFlag_I, 0x4FD90)
//ASMPTR(D2CLIENT, GameDrawCross_I, 0x5F1C0)
//ASMPTR(D2CLIENT, GetUnitFromId_I, 0x10A608)
//ASMPTR(D2CLIENT, GetUnitFromId_II, 0xA4E20)
//ASMPTR(D2CLIENT, SendPacket_I, 0x143E0)
//ASMPTR(D2CLIENT, InputCall_I, 0x147A0)
//ASMPTR(D2CLIENT, OverrideShrinePatch_ORIG, 0x1155B8)
//
//FUNCPTR(D2COMMON, GetRoomInfo, DWORD __stdcall,(UnitAny* PlayerUnit), -10331)
//FUNCPTR(D2COMMON, AddRoomData, void __stdcall, (Act * ptAct, int LevelId, int Xpos, int Ypos, Room1 * pRoom), -10401)
//FUNCPTR(D2COMMON, RemoveRoomData, void __stdcall, (Act * ptAct, int LevelId, int Xpos, int Ypos, Room1 * pRoom), -11099)
//FUNCPTR(D2COMMON, GetObjectTxt, ObjectTxt * __stdcall, (DWORD objno), -10688)
//FUNCPTR(D2COMMON, GetLayer, AutomapLayer2* __fastcall, (DWORD dwLevelNo), -10749)
//FUNCPTR(D2COMMON, GetLevel, Level * __fastcall, (ActMisc *pMisc, DWORD dwLevelNo), -10207)
//FUNCPTR(D2COMMON, InitLevel, void __stdcall, (Level *pLevel), -10322)
//FUNCPTR(D2COMMON, GetItemTxt, ItemTxt * __stdcall, (DWORD itemno), -10695)
//FUNCPTR(D2COMMON, GetUnitStat, DWORD __stdcall, (UnitAny* pUnit, DWORD dwStat, DWORD dwStat2), -10973)
//FUNCPTR(D2COMMON, MapToAbsScreen, void __stdcall, (long *pX, long *pY), -11087)
//FUNCPTR(D2COMMON, AbsScreenToMap, void __stdcall, (long *ptMouseX, long *ptMouseY), -10474)
//FUNCPTR(D2COMMON, CheckUnitCollision, DWORD __stdcall, (UnitAny* pUnitA, UnitAny* pUnitB, DWORD dwBitMask), -10839)
//FUNCPTR(D2COMMON, GetSkillLevel, INT __stdcall, (UnitAny* pUnit, Skill* pSkill, BOOL bTotal), -10306)
//FUNCPTR(D2COMMON, GetUnitState, int __stdcall, (UnitAny *pUnit, DWORD dwStateNo), -10494)
//FUNCPTR(D2COMMON, GenerateOverheadMsg, OverheadMsg* __stdcall, (DWORD dwUnk, CHAR* szMsg, DWORD dwTrigger), -10454)
//FUNCPTR(D2COMMON, FixOverheadMsg, VOID __stdcall, (OverheadMsg* pMsg, DWORD dwUnk), -10097)
//FUNCPTR(D2COMMON, CheckCollision, DWORD __stdcall, (Room1* pRoom, DWORD dwX, DWORD dwY, DWORD dwBitMask), -10916)
//
//FUNCPTR(D2NET, SendPacket, void __stdcall, (DWORD aLen, DWORD arg1, BYTE* aPacket), -10024)
//FUNCPTR(D2NET, ReceivePacket, void __stdcall, (BYTE *aPacket, DWORD aLen), 0x6BD0)
//FUNCPTR(D2NET, ReceivePacket_I, void __stdcall, (BYTE *aPacket, DWORD aLen), -10033)
//
//FUNCPTR(D2GFX, DrawAutomapCell, void __stdcall, (CellContext *context, DWORD xpos, DWORD ypos, RECT *cliprect, DWORD bright), -10079)
//FUNCPTR(D2GFX, DrawAutomapCell2, void __stdcall, (CellContext *context, DWORD xpos, DWORD ypos, DWORD bright2, DWORD bright, BYTE *coltab), -10041)
//FUNCPTR(D2GFX, DrawRectangle, void __stdcall, (int X1, int Y1, int X2, int Y2, DWORD dwColor, DWORD dwTrans), -10014)
//FUNCPTR(D2GFX, DrawLine, void __stdcall, (int X1, int Y1, int X2, int Y2, DWORD dwColor, DWORD dwUnk), -10010)
//FUNCPTR(D2GFX, GetScreenSize, DWORD __stdcall, (), -10036)
//
//FUNCPTR(D2LANG, GetLocaleText, wchar_t* __fastcall, (WORD nLocaleTxtNo), -10003)
//FUNCPTR(D2WIN, SetControlText, void* __fastcall, (Control* box, wchar_t* txt), -10095)
//FUNCPTR(D2WIN, GetTextWidthFileNo, DWORD __fastcall, (wchar_t *wStr, DWORD* dwWidth, DWORD* dwFileNo), -10177)
//FUNCPTR(D2WIN, SetTextSize, DWORD __fastcall, (DWORD dwSize), -10184)
//FUNCPTR(D2WIN, DrawText, void __fastcall, (wchar_t *wStr, int xPos, int yPos, DWORD dwColor, DWORD dwUnk), -10150)
//FUNCPTR(D2WIN, GetTextLength, DWORD __fastcall, (wchar_t* szwText), -10177)
//FUNCPTR(D2WIN, TakeScreenshot, void __fastcall, (), 0x17EB0/*-10196*/) // 1.13c
//FUNCPTR(D2GFX, GetHwnd, HWND __stdcall, (), -10048)
//
//VARPTR(D2LAUNCH, BnData, BnetData *, 0x25ABC)
//
//FUNCPTR(D2WIN, CreateEditBox, Control* __fastcall, (DWORD style, int ypos, int xpos, DWORD arg4, DWORD arg5, DWORD arg6, DWORD arg7, DWORD arg8, DWORD arg9, DWORD size, void* buf), 0x9C00)
//FUNCPTR(D2WIN, DestroyEditBox, DWORD __fastcall, (Control* box), 0x136A0)
//FUNCPTR(D2WIN, GetEditBoxText, wchar_t* __fastcall, (Control* box), -10075)
//FUNCPTR(D2WIN, AddEditBoxChar, DWORD __fastcall, (Control* box, BYTE keycode), -10176)
//FUNCPTR(D2WIN, SetEditBoxText, void* __fastcall, (Control* box, wchar_t* txt), 0x14DF0)
//FUNCPTR(D2WIN, SetEditBoxProc, void __fastcall, (Control* box, BOOL (__stdcall *FunCallBack)(Control*,DWORD,DWORD)), -10170)
//FUNCPTR(D2WIN, SelectEditBoxText, void __fastcall, (Control* box), -10021)
#define _D2PTRS_START BNCLIENT_SendBNMessage
//BNCLIENT
FUNCPTR(BNCLIENT, SendBNMessage, void __fastcall,(LPSTR lpMessage),0x13050) //Updated 1.13d //6FF33050-BASE
//D2CLIENT
FUNCPTR(D2CLIENT, GetSelectedUnit, UnitAny * __stdcall, (), 0x17280) //Updated 1.13d //6FAC7280-BASE
FUNCPTR(D2CLIENT, PrintGameString, void __stdcall, (wchar_t *wMessage, int nColor), 0x75EB0) //Updated 1.13d //6FB25EB0-BASE
FUNCPTR(D2CLIENT, GetDifficulty, BYTE __stdcall, (), 0x42980) //Updated 1.13d //6FAF2980-BASE
FUNCPTR(D2CLIENT, GetAutomapSize, DWORD __stdcall, (), 0x6FDD0) //Updated 1.13d //6FB1FDD0-BASE
FUNCPTR(D2CLIENT, GetGameInfo, GameStructInfo *__stdcall, (), 0x2BCE0) //Updated 1.13d //6FADBCE0-BASE
FUNCPTR(D2CLIENT, NewAutomapCell, AutomapCell * __fastcall, (), 0x703C0) //Updated 1.13d //6FB203C0-BASE
FUNCPTR(D2CLIENT, AddAutomapCell, void __fastcall, (AutomapCell *aCell, AutomapCell **node), 0x71EA0) //Updated 1.13d //6FB21EA0-BASE
FUNCPTR(D2CLIENT, RevealAutomapRoom, void __stdcall, (Room1 *pRoom1, DWORD dwClipFlag, AutomapLayer *aLayer), 0x73160) //Updated 1.13d //6FB23160-BASE
FUNCPTR(D2CLIENT, InitAutomapLayer_I, AutomapLayer* __fastcall, (DWORD nLayerNo), 0x733D0) //Updated 1.13d //6FB233D0-BASE
FUNCPTR(D2CLIENT, GetMonsterOwner, DWORD __fastcall, (DWORD nMonsterId), 0x8E3D0) //Updated 1.13d //6FB3E3D0-BASE
FUNCPTR(D2CLIENT, GetUiVar_I, DWORD __fastcall, (DWORD dwVarNo), 0x17C50) //Updated 1.13d //6FAC7C50-BASE
FUNCPTR(D2CLIENT, SetUIVar, DWORD __fastcall, (DWORD varno, DWORD howset, DWORD unknown1), 0x1C194) //Updated 1.13d //6FACC194-BASE
FUNCPTR(D2CLIENT, CalculateShake, void __stdcall, (DWORD *dwPosX, DWORD *dwPosY), 0xB5EE0) //Updated 1.13d //6FB65EE0-BASE
FUNCPTR(D2CLIENT, GetPlayerUnit, UnitAny* __stdcall,(),0x613C0) //Updated 1.13d //6FB113C0-BASE 6FB113C0 . A1 50D0BC6F MOV EAX,DWORD PTR DS:[PUnit=6FBCD050]
FUNCPTR(D2CLIENT, DrawRectFrame, VOID __fastcall, (DWORD Rect), 0x17D10) //Updated 1.13d //6FAC7D10-BASE
FUNCPTR(D2CLIENT, Attack, VOID __stdcall, (AttackStruct* Attack, bool AttackingUnit), 0x29560) //Updated 1.13d //6FAD9560-BASE
FUNCPTR(D2CLIENT, GetItemName, BOOL __stdcall, (UnitAny* pItem, wchar_t* wBuffer, DWORD dwSize), 0x958C0) //Updated 1.13d //6FB458C0-BASE
FUNCPTR(D2CLIENT, GetMouseXOffset, DWORD __fastcall, (VOID), 0x5BC20) //Updated 1.13d //6FB0BC20-BASE
FUNCPTR(D2CLIENT, GetMouseYOffset, DWORD __fastcall, (VOID), 0x5BC30) //Updated 1.13d //6FB0BC30-BASE
FUNCPTR(D2CLIENT, DrawEnteringLevelText, void __stdcall, (), 0x18E20)//Updated 1.13d //6FAC8E20-BASE
FUNCPTR(D2CLIENT, FindServerSideUnit, UnitAny* __fastcall, (DWORD dwId, DWORD dwType), 0x620D0) // Updated 1.13d //6FB120D0-BASE
FUNCPTR(D2CLIENT, FindClientSideUnit, UnitAny* __fastcall, (DWORD dwId, DWORD dwType), 0x620B0) // Updated 1.13d //6FB120B0-BASE
FUNCPTR(D2CLIENT, UnitTestSelect, DWORD __stdcall, (UnitAny* pUnit, DWORD _1, DWORD _2, DWORD _3), 0x63180) //Updated 1.13d //6FB13180-BASE
FUNCPTR(D2CLIENT, GetCursorItem, UnitAny* __fastcall, (VOID), 0x144A0) //Updated 1.13d //6FAC44A0-BASE
FUNCPTR(D2CLIENT, CreateAttack, DWORD __stdcall, (UnitAny* pUnit, DWORD wSkillId, DWORD dwSkillLevel, bool bUnk), 0x48BE0) //Updated 1.13d //6FAF8BE0-BASE
FUNCPTR(D2CLIENT, DrawPartyName, void __stdcall, (LPSTR lpPlayerName,DWORD yPos,DWORD Color,DWORD Unk), 0x86E30) //Updated 1.13d //6FB36E30-BASE
//FUNCPTR(D2CLIENT, ExitGame, void __fastcall, (void), 0x43870)// from McGod's list
//FUNCPTR(D2CLIENT, LeaveGame, void __fastcall, (void), 0xB6520)
VARPTR(D2CLIENT, MouseOffsetX, int, 0x106844) //Updated 1.13d //6FBB6844-BASE
VARPTR(D2CLIENT, MouseOffsetY, int, 0x106840) //Updated 1.13d //6FBB6840-BASE
VARPTR(D2CLIENT, MouseOffsetZ, int, 0x11D074) //Updated 1.13d //6FBCD074-BASE
VARPTR(D2CLIENT, ExitAppFlag, DWORD, 0xF79E0) //Updated 1.13d //6FBA79E0-BASE
VARPTR(D2CLIENT, Divisor, int, 0xF34F8) //Updated 1.13d //6FBA34F8-BASE
VARPTR(D2CLIENT, Offset, POINT, 0x11CF5C) //Updated 1.13d //6FBCCF5C-BASE
VARPTR(D2CLIENT, xShake, int, 0x11CA6C) //Updated 1.13d //6FB0BE41 8B15 6CCABC6F MOV EDX,DWORD PTR DS:[6FBCCA6C]
VARPTR(D2CLIENT, yShake, int, 0xFC3DC) //Updated 1.13d //6FB0BE47 A1 DCC3BA6F MOV EAX,DWORD PTR DS:[6FBAC3DC]
VARPTR(D2CLIENT, GameInfo, GameStructInfo *, 0x109738) //Updated 1.13d //6FBB9738-BASE
VARPTR(D2CLIENT, Ping, DWORD, 0x108764) //Updated 1.13d //6FBB8764-BASE
VARPTR(D2CLIENT, Skip, DWORD, 0x108770) //Updated 1.13d //6FBB8770-BASE
VARPTR(D2CLIENT, FPS, DWORD, 0x11CE10) //Updated 1.13d //6FBCCE10-BASE
VARPTR(D2CLIENT, PlayerUnit, UnitAny *, 0x11D050) //Updated 1.13d //6FBCD050-BASE
VARPTR(D2CLIENT, RosterUnitList, RosterUnit *, 0x11CB04) //Updated 1.13d //6FBCCB04-BASE
VARPTR(D2CLIENT, MouseX, DWORD, 0x11C950) //Updated 1.13d //6FBCC950-BASE
VARPTR(D2CLIENT, MouseY, DWORD, 0x11C94C) //Updated 1.13d //6FBCC94C-BASE
VARPTR(D2CLIENT, ScreenSizeX, DWORD, 0xF7034)//Updated 1.13d //6FBA7034-BASE
VARPTR(D2CLIENT, ScreenSizeY, DWORD, 0xF7038) //Updated 1.13d //6FBA7038-BASE
VARPTR(D2CLIENT, OverheadTrigger, DWORD, 0x101ABE) //Updated 1.13d //6FBB1ABE-BASE
VARPTR(D2CLIENT, GoldDialog, DWORD, 0x11C870) //Updated 1.13d //6FBCC870-BASE
VARPTR(D2CLIENT, AutomapLayer, AutomapLayer*, 0x11CF28) //Updated 1.13d //6FBCCF28-BASE
VARPTR(D2CLIENT, AutomapOn, DWORD, 0x11C8B8) //Updated 1.13d //6FBCC8B8-BASE
VARPTR(D2CLIENT, ptAutomap, POINT, 0x11CFA0) //Updated 1.13d //6FBCCFA0-BASE
VARPTR(D2CLIENT, ServerIp, char, 0xF5EA8) //Updated 1.13d //6FBA5EA8-BASE
VARPTR(D2CLIENT, pAct, Act*, 0x11D200) //Updated 1.13d //6FBCD200-BASE
VARPTR(D2CLIENT, AutomapLayerList, AutomapLayer *, 0x11CF24) //Updated 1.13d //6FBCCF24-BASE
VARPTR(D2CLIENT, isExpansion, DWORD, 0x1087B4) //Updated 1.13d //6FBB87B4-BASE
ASMPTR(D2CLIENT, AutomapDraw_I, 0x70AA0) //Updated 1.13d //6FB20AA0-BASE
ASMPTR(D2CLIENT, GetUnitName_I, 0x622E0) //Updated 1.13d //6FB122E0-BASE
ASMPTR(D2CLIENT, PlayerUnit_I, 0x11D050) //Updated 1.13d //6FBCD050-BASE
ASMPTR(D2CLIENT, TestPvpFlag_I, 0x6A720) //Updated 1.13d //6FB1A720-BASE
ASMPTR(D2CLIENT, GameDrawCross_I, 0x6FED0) //Updated 1.13d //6FB1FED0-BASE
ASMPTR(D2CLIENT, GetUnitFromId_I, 0x1047B8) //Updated 1.13d //6FBB47B8-BASE
ASMPTR(D2CLIENT, GetUnitFromId_II, 0x61480) //Updated 1.13d //6FB11480-BASE
ASMPTR(D2CLIENT, SendPacket_I, 0xB61F0) //Updated 1.13d //6FB661F0-BASE
ASMPTR(D2CLIENT, InputCall_I, 0xB6890) //Updated 1.13d //6FB66890-BASE
ASMPTR(D2CLIENT, OverrideShrinePatch_ORIG, 0x101B08) //Updated 1.13d //6FBB1B08-BASE
ASMPTR(D2COMMON, LifeAddress_II, 0x58DA0) //Updated 1.13d //6FDA8DA0-BASE
//D2CMP
FUNCPTR(D2CMP, InitCellFile2, void __stdcall, (void *cellfile, CellFile **outptr, char *srcfile, DWORD lineno, DWORD filever, char *filename), 0x13B50)//Updated 1.13d //6FE23B50-BASE
FUNCPTR(D2CMP, DeleteCellFile2, void __stdcall, (CellFile * File), -10020)//Updated 1.13d //6FE199B0-BASE
//D2COMMON
FUNCPTR(D2COMMON, GetRoomInfo, DWORD __stdcall,(UnitAny* PlayerUnit), 0x16530) //Updated 1.13d //6FD66530-BASE
FUNCPTR(D2COMMON, AddRoomData, void __stdcall, (Act * ptAct, int LevelId, int Xpos, int Ypos, Room1 * pRoom), 0x24990) //Updated 1.13d //6FD74990-BASE
FUNCPTR(D2COMMON, RemoveRoomData, void __stdcall, (Act * ptAct, int LevelId, int Xpos, int Ypos, Room1 * pRoom), 0x24930) //Updated 1.13d //6FD74930-BASE
FUNCPTR(D2COMMON, GetObjectTxt, ObjectTxt * __stdcall, (DWORD objno), 0x1ADC0) //Updated 1.13d //6FD6ADC0-BASE
FUNCPTR(D2COMMON, GetLayer, AutomapLayer2* __fastcall, (DWORD dwLevelNo), 0x30B00) //Updated 1.13d //6FD80B00-BASE
FUNCPTR(D2COMMON, GetLevel, Level * __fastcall, (ActMisc *pMisc, DWORD dwLevelNo), 0x6D440) //Updated 1.13d //6FDBD440-BASE
FUNCPTR(D2COMMON, InitLevel, void __stdcall, (Level *pLevel), 0x6DDF0) //Updated 1.13d //6FDBDDF0-BASE
FUNCPTR(D2COMMON, GetItemTxt, ItemTxt * __stdcall, (DWORD itemno), 0x62C70) //Updated 1.13d //6FDB2C70-BASE
FUNCPTR(D2COMMON, GetUnitStat, DWORD __stdcall, (UnitAny* pUnit, DWORD dwStat, DWORD dwStat2), 0x584E0) //Updated 1.13d //6FDA84E0-BASE
FUNCPTR(D2COMMON, MapToAbsScreen, void __stdcall, (long *pX, long *pY), 0x35AA0) //Updated 1.13d // 6FD85AA0-BASE
FUNCPTR(D2COMMON, AbsScreenToMap, void __stdcall, (long *ptMouseX, long *ptMouseY), 0x35810) //Updated 1.13d // 6FD85810-BASE
FUNCPTR(D2COMMON, CheckUnitCollision, DWORD __stdcall, (UnitAny* pUnitA, UnitAny* pUnitB, DWORD dwBitMask), 0x17CF0) //Updated 1.13d //6FD67CF0-BASE
FUNCPTR(D2COMMON, GetSkillLevel, int __stdcall, (UnitAny* pUnit, Skill* pSkill, BOOL bTotal), 0x73D60) //Updated 1.13d //6FDC3D60-BASE
FUNCPTR(D2COMMON, GetUnitState, int __stdcall, (UnitAny *pUnit, DWORD dwStateNo), 0x2F310) //Updated 1.13d //6FD7F310-BASE
FUNCPTR(D2COMMON, GenerateOverheadMsg, OverheadMsg* __stdcall, (DWORD dwUnk, CHAR* szMsg, DWORD dwTrigger), 0x4DD10) //Updated 1.13d // 6FD9DD10-BASE
FUNCPTR(D2COMMON, FixOverheadMsg, VOID __stdcall, (OverheadMsg* pMsg, DWORD dwUnk), 0x4DC70) //Updated 1.13d //6FD9DC70-BASE
FUNCPTR(D2COMMON, CheckCollision, DWORD __stdcall, (Room1* pRoom, DWORD dwX, DWORD dwY, DWORD dwBitMask), 0x24390) //Updated 1.13d //6FD74390-BASE
//D2NET
FUNCPTR(D2NET, SendPacket, void __stdcall, (DWORD aLen, DWORD arg1, BYTE* aPacket), 0x6F20)// Updated 1.13d
FUNCPTR(D2NET, ReceivePacket, void __stdcall, (BYTE *aPacket, DWORD aLen), 0x64A0) // Updated 1.13d
FUNCPTR(D2NET, ReceivePacket_I, void __stdcall, (BYTE *aPacket, DWORD aLen), 0x6020)// Updated 1.13d
//D2GFX
FUNCPTR(D2GFX, DrawAutomapCell, void __stdcall, (CellContext *context, DWORD xpos, DWORD ypos, RECT *cliprect, DWORD bright), 0x7DD0) //Updated 1.13d // 6FA87DD0-BASE
FUNCPTR(D2GFX, DrawAutomapCell2, void __stdcall, (CellContext *context, DWORD xpos, DWORD ypos, DWORD bright2, DWORD bright, BYTE *coltab), 0x7E60) //Updated 1.13d //6FA87E60-BASE
FUNCPTR(D2GFX, DrawRectangle, void __stdcall, (int X1, int Y1, int X2, int Y2, DWORD dwColor, DWORD dwTrans), 0x8210) //Updated 1.13d // 6FA88210-BASE
FUNCPTR(D2GFX, DrawLine, void __stdcall, (int X1, int Y1, int X2, int Y2, DWORD dwColor, DWORD dwUnk), 0x81A0) //Updated 1.13d // 6FA881A0-BASE
FUNCPTR(D2GFX, GetScreenSize, DWORD __stdcall, (), 0xA940) //Updated 1.13d // 6FA8A940-BASE
FUNCPTR(D2GFX, GetHwnd, HWND __stdcall, (), 0xB0C0) //Updated 1.13d //6FA8B0C0-BASE
//D2LANG
FUNCPTR(D2LANG, GetLocaleText, wchar_t* __fastcall, (WORD nLocaleTxtNo), 0x98A0) //Updated 1.13d // 6FC098A0-BASE
//D2LAUNCH
VARPTR(D2LAUNCH, BnData, BnetData *, 0x25B30) //Updated 1.13d //6FA65B30-BASE
//D2WIN
FUNCPTR(D2WIN, SetControlText, void* __fastcall, (Control* box, wchar_t* txt), 0x10680) //Updated 1.13d //6F8F0680-BASE
FUNCPTR(D2WIN, GetTextWidthFileNo, DWORD __fastcall, (wchar_t *wStr, DWORD* dwWidth, DWORD* dwFileNo), 0x13290) //Updated 1.13d //6F8F3290-BASE
FUNCPTR(D2WIN, SetTextSize, DWORD __fastcall, (DWORD dwSize), 0x13B70) //Updated 1.13d //6F8F3B70-BASE
FUNCPTR(D2WIN, DrawText, void __fastcall, (wchar_t *wStr, int xPos, int yPos, DWORD dwColor, DWORD dwUnk), 0x13B30) //Updated 1.13d //6F8F3B30-BASE
FUNCPTR(D2WIN, GetTextLength, DWORD __fastcall, (wchar_t* szwText), 0x136B0) //Updated 1.13d //6F8F36B0-BASE
FUNCPTR(D2WIN, TakeScreenshot, void __fastcall, (), 0xDF70) //Updated 1.13d //6F8EDF70-BASE
FUNCPTR(D2WIN, CreateEditBox, Control* __fastcall, (DWORD style, int ypos, int xpos, DWORD arg4, DWORD arg5, DWORD arg6, DWORD arg7, DWORD arg8, DWORD arg9, DWORD size, void* buf), 0x177E0) //Updated 1.13d //6F8F77E0-BASE
FUNCPTR(D2WIN, DestroyEditBox, DWORD __fastcall, (Control* box), 0xF320) //Updated 1.13d //6F8EF320-BASE
FUNCPTR(D2WIN, GetEditBoxText, wchar_t* __fastcall, (Control* box), 0x136A0) //Updated 1.13d //6F8F36A0-BASE
FUNCPTR(D2WIN, AddEditBoxChar, DWORD __fastcall, (Control* box, BYTE keycode), 0x15450) //Updated 1.13d //6F8F5450-BASE
FUNCPTR(D2WIN, SetEditBoxText, void* __fastcall, (Control* box, wchar_t* txt), 0x10680) //Updated 1.13d //6F8F0680-BASE
FUNCPTR(D2WIN, SetEditBoxProc, void __fastcall, (Control* box, BOOL (__stdcall *FunCallBack)(Control*,DWORD,DWORD)), 0xF1D0) //Updated 1.13d //6F8EF1D0-BASE
FUNCPTR(D2WIN, SelectEditBoxText, void __fastcall, (Control* box), 0xEF80) //Updated 1.13d //6F8EEF80-BASE
#define _D2PTRS_END D2WIN_SelectEditBoxText
#undef FUNCPTR
#undef VARPTR
#undef ASMPTR
#define Me (*p_D2CLIENT_PlayerUnit)
#define D2CLIENT_RosterUnitList (*p_D2CLIENT_RosterUnitList)
#define D2CLIENT_AutomapOn (*p_D2CLIENT_AutomapOn)
#define D2CLIENT_ScreenSizeX (*p_D2CLIENT_ScreenSizeX)
#define D2CLIENT_ScreenSizeY (*p_D2CLIENT_ScreenSizeY)
#define D2CLIENT_Ping (*p_D2CLIENT_Ping)
#define D2CLIENT_FPS (*p_D2CLIENT_FPS)
#define D2CLIENT_Skip (*p_D2CLIENT_Skip)
#define D2CLIENT_xShake (*p_D2CLIENT_xShake)
#define D2CLIENT_yShake (*p_D2CLIENT_yShake)
#define D2CLIENT_MouseX (*p_D2CLIENT_MouseX)
#define D2CLIENT_MouseY (*p_D2CLIENT_MouseY)
#define D2CLIENT_ExitAppFlag (*p_D2CLIENT_ExitAppFlag)
#define D2CLIENT_GoldDialog (*p_D2CLIENT_GoldDialog)
#define D2CLIENT_pPlayer (*p_D2CLIENT_PlayerUnit)
#define D2CLIENT_isExpansion (*p_D2CLIENT_isExpansion)
#define GetUnitStat(unit, stat) (D2COMMON_GetUnitStat(unit, stat, 0))
#define D2WIN_GetHwnd (D2GFX_GetHwnd)
#define D2CLIENT_GetUnitName(x) (wchar_t*)D2CLIENT_GetUnitName_STUB((DWORD)x)
#define D2CLIENT_InitAutomapLayer(layerlvl) ((AutomapLayer*)D2CLIENT_InitAutomapLayer_STUB(layerlvl))
#define GetUnit(dwUnitId, dwUnitType) ((UnitAny*)GetUnit_STUB(dwUnitId, dwUnitType))
#define TestPvpFlag(dwUnitId1, dwUnitId2, dwFlag) (TestPvpFlag_STUB(dwUnitId1, dwUnitId2, dwFlag))