mirror of
https://gitlab.com/hashborgir/d2tweaks-rnd2k.git
synced 2025-10-13 16:34:22 -05:00
Initial commit
This commit is contained in:
202
vendor/D2Template/D2Template.cpp
vendored
Normal file
202
vendor/D2Template/D2Template.cpp
vendored
Normal file
@@ -0,0 +1,202 @@
|
||||
#define _D2VARS_H
|
||||
|
||||
#include "D2Template.h"
|
||||
#include "D2TemplatePatch.h"
|
||||
|
||||
extern DWORD DLLBASE_BNCLIENT = 0;
|
||||
extern DWORD DLLBASE_D2CLIENT = 0;
|
||||
extern DWORD DLLBASE_D2CMP = 0;
|
||||
extern DWORD DLLBASE_D2COMMON = 0;
|
||||
extern DWORD DLLBASE_D2DDRAW = 0;
|
||||
extern DWORD DLLBASE_D2DIRECT3D = 0;
|
||||
extern DWORD DLLBASE_D2GAME = 0;
|
||||
extern DWORD DLLBASE_D2GDI = 0;
|
||||
extern DWORD DLLBASE_D2GFX = 0;
|
||||
extern DWORD DLLBASE_D2GLIDE = 0;
|
||||
extern DWORD DLLBASE_D2LANG = 0;
|
||||
extern DWORD DLLBASE_D2LAUNCH = 0;
|
||||
extern DWORD DLLBASE_D2MCPCLIENT = 0;
|
||||
extern DWORD DLLBASE_D2MULTI = 0;
|
||||
extern DWORD DLLBASE_D2NET = 0;
|
||||
extern DWORD DLLBASE_D2SOUND = 0;
|
||||
extern DWORD DLLBASE_D2WIN = 0;
|
||||
extern DWORD DLLBASE_FOG = 0;
|
||||
extern DWORD DLLBASE_STORM = 0;
|
||||
extern DWORD DLLBASE_IJL11 = 0;
|
||||
extern DWORD DLLBASE_BINKW32 = 0;
|
||||
extern DWORD DLLBASE_SMACKW32 = 0;
|
||||
extern DWORD DLLBASE_UTILITY = 0;
|
||||
extern DWORD DLLBASE_PLUGY = 0;
|
||||
extern DWORD DLLBASE_D2EXPRES = 0;
|
||||
extern DWORD DLLBASE_SGD2FREERES = 0;
|
||||
|
||||
void __fastcall D2TEMPLATE_FatalError(char* szMessage)
|
||||
{
|
||||
MessageBoxA(NULL, szMessage, "", MB_OK | MB_ICONERROR);
|
||||
TerminateProcess(GetCurrentProcess(), -1);
|
||||
}
|
||||
|
||||
BOOL __fastcall D2TEMPLATE_ApplyPatch(const DLLPatchStrc* hPatch)
|
||||
{
|
||||
void* hGame = GetCurrentProcess();
|
||||
|
||||
while (hPatch->nDLL != D2DLL_INVALID)
|
||||
{
|
||||
int nReturn = 0;
|
||||
int nDLL = hPatch->nDLL;
|
||||
if (nDLL < 0 || nDLL >= D2DLL_INVALID) return FALSE;
|
||||
|
||||
DWORD dwAddress = hPatch->dwAddress;
|
||||
if (!dwAddress) return FALSE;
|
||||
|
||||
DWORD dwBaseAddress = gptDllFiles[nDLL].dwAddress;
|
||||
if (!dwBaseAddress) return FALSE;
|
||||
|
||||
dwAddress += dwBaseAddress;
|
||||
|
||||
DWORD dwData = hPatch->dwData;
|
||||
if (hPatch->bRelative)
|
||||
{
|
||||
dwData = dwData - (dwAddress + sizeof(dwData));
|
||||
}
|
||||
|
||||
void* hAddress = (void*)dwAddress;
|
||||
DWORD dwOldPage;
|
||||
|
||||
if (hPatch->nPatchSize > 0)
|
||||
{
|
||||
BYTE Buffer[1024] = { 0 };
|
||||
|
||||
for (size_t i = 0; i < hPatch->nPatchSize; i++)
|
||||
Buffer[i] = (BYTE)dwData;
|
||||
|
||||
VirtualProtect(hAddress, hPatch->nPatchSize, PAGE_EXECUTE_READWRITE, &dwOldPage);
|
||||
nReturn = WriteProcessMemory(hGame, hAddress, &Buffer, hPatch->nPatchSize, 0);
|
||||
VirtualProtect(hAddress, hPatch->nPatchSize, dwOldPage, 0);
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
VirtualProtect(hAddress, sizeof(dwData), PAGE_EXECUTE_READWRITE, &dwOldPage);
|
||||
nReturn = WriteProcessMemory(hGame, hAddress, &dwData, sizeof(dwData), 0);
|
||||
VirtualProtect(hAddress, sizeof(dwData), dwOldPage, 0);
|
||||
}
|
||||
|
||||
if (nReturn == 0) return FALSE;
|
||||
|
||||
hPatch++;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL __fastcall D2TEMPLATE_LoadModules()
|
||||
{
|
||||
for (int i = 0; i < D2DLL_INVALID; i++)
|
||||
{
|
||||
DLLBaseStrc* hDllFile = &gptDllFiles[i];
|
||||
|
||||
void* hModule = GetModuleHandleA(hDllFile->szName);
|
||||
|
||||
//if (!hModule)
|
||||
//{
|
||||
// hModule = LoadLibraryA(hDllFile->szName);
|
||||
//}
|
||||
|
||||
hDllFile->dwAddress = (DWORD)hModule;
|
||||
}
|
||||
|
||||
DLLBASE_BNCLIENT = (DWORD)GetModuleHandleA("Bnclient.dll");
|
||||
DLLBASE_D2CLIENT = (DWORD)GetModuleHandleA("D2Client.dll");
|
||||
DLLBASE_D2CMP = (DWORD)GetModuleHandleA("D2CMP.dll");
|
||||
DLLBASE_D2COMMON = (DWORD)GetModuleHandleA("D2Common.dll");
|
||||
DLLBASE_D2DDRAW = (DWORD)GetModuleHandleA("D2DDraw.dll");
|
||||
DLLBASE_D2DIRECT3D = (DWORD)GetModuleHandleA("D2Direct3D.dll");
|
||||
DLLBASE_D2GAME = (DWORD)GetModuleHandleA("D2Game.dll");
|
||||
DLLBASE_D2GDI = (DWORD)GetModuleHandleA("D2Gdi.dll");
|
||||
DLLBASE_D2GFX = (DWORD)GetModuleHandleA("D2Gfx.dll");
|
||||
DLLBASE_D2GLIDE = (DWORD)GetModuleHandleA("D2Glide.dll");
|
||||
DLLBASE_D2LANG = (DWORD)GetModuleHandleA("D2Lang.dll");
|
||||
DLLBASE_D2LAUNCH = (DWORD)GetModuleHandleA("D2Launch.dll");
|
||||
DLLBASE_D2MCPCLIENT = (DWORD)GetModuleHandleA("D2MCPClient.dll");
|
||||
DLLBASE_D2MULTI = (DWORD)GetModuleHandleA("D2Multi.dll");
|
||||
DLLBASE_D2NET = (DWORD)GetModuleHandleA("D2Net.dll");
|
||||
DLLBASE_D2SOUND = (DWORD)GetModuleHandleA("D2Sound.dll");
|
||||
DLLBASE_D2WIN = (DWORD)GetModuleHandleA("D2Win.dll");
|
||||
DLLBASE_FOG = (DWORD)GetModuleHandleA("Fog.dll");
|
||||
DLLBASE_STORM = (DWORD)GetModuleHandleA("Storm.dll");
|
||||
DLLBASE_IJL11 = (DWORD)GetModuleHandleA("ijl11.dll");
|
||||
DLLBASE_BINKW32 = (DWORD)GetModuleHandleA("binkw32.dll");
|
||||
DLLBASE_SMACKW32 = (DWORD)GetModuleHandleA("SmackW32.dll");
|
||||
DLLBASE_UTILITY = (DWORD)GetModuleHandleA("Utility.dll");
|
||||
DLLBASE_PLUGY = (DWORD)GetModuleHandleA("Plugy.dll");
|
||||
DLLBASE_D2EXPRES = (DWORD)GetModuleHandleA("d2expres.dll");
|
||||
DLLBASE_SGD2FREERES = (DWORD)GetModuleHandleA("SGD2FreeRes.dll");
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int __fastcall D2TEMPLATE_GetDebugPrivilege()
|
||||
{
|
||||
void* hToken;
|
||||
LUID luid;
|
||||
TOKEN_PRIVILEGES tokenPrivileges;
|
||||
|
||||
if (OpenProcessToken(GetCurrentProcess(), TOKEN_ALL_ACCESS, &hToken) == 0)
|
||||
{
|
||||
D2TEMPLATE_FatalError("OpenProcessToken Failed");
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (LookupPrivilegeValue(0, SE_DEBUG_NAME, &luid) == 0)
|
||||
{
|
||||
D2TEMPLATE_FatalError("LookupPrivilegeValue Failed");
|
||||
CloseHandle(hToken);
|
||||
return 0;
|
||||
}
|
||||
|
||||
tokenPrivileges.PrivilegeCount = 1;
|
||||
tokenPrivileges.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
|
||||
tokenPrivileges.Privileges[0].Luid = luid;
|
||||
if (AdjustTokenPrivileges(hToken, 0, &tokenPrivileges, sizeof(tokenPrivileges), 0, 0) == 0)
|
||||
{
|
||||
D2TEMPLATE_FatalError("AdjustTokenPrivileges Failed");
|
||||
CloseHandle(hToken);
|
||||
return 0;
|
||||
}
|
||||
|
||||
CloseHandle(hToken);
|
||||
return 1;
|
||||
}
|
||||
|
||||
DWORD __fastcall GetDllOffset(char* ModuleName, DWORD BaseAddress, int Offset)
|
||||
{
|
||||
if (!BaseAddress)
|
||||
BaseAddress = (DWORD)LoadLibraryA(GetModuleExt(ModuleName));
|
||||
|
||||
if (Offset < 0)
|
||||
return (DWORD)GetProcAddress((HMODULE)BaseAddress, (LPCSTR)(-Offset));
|
||||
|
||||
return BaseAddress + Offset;
|
||||
}
|
||||
|
||||
char* __fastcall GetModuleExt(char* ModuleName)
|
||||
{
|
||||
char DLLExt[] = ".dll";
|
||||
char DLLName[32] = { 0 };
|
||||
strcpy(DLLName, ModuleName);
|
||||
return strcat(DLLName, DLLExt);
|
||||
}
|
||||
|
||||
int __fastcall D2TEMPLATE_Init()
|
||||
{
|
||||
//D2TEMPLATE_GetDebugPrivilege();
|
||||
|
||||
if (!D2TEMPLATE_LoadModules())
|
||||
{
|
||||
D2TEMPLATE_FatalError("Failed to load modules");
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
182
vendor/D2Template/D2Template.h
vendored
Normal file
182
vendor/D2Template/D2Template.h
vendored
Normal file
@@ -0,0 +1,182 @@
|
||||
/****************************************************************************
|
||||
* *
|
||||
* DLLmain.h *
|
||||
* *
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); *
|
||||
* you may not use this file except in compliance with the License. *
|
||||
* You may obtain a copy of the License at *
|
||||
* *
|
||||
* http://www.apache.org/licenses/LICENSE-2.0 *
|
||||
* *
|
||||
* Unless required by applicable law or agreed to in writing, software *
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, *
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.*
|
||||
* See the License for the specific language governing permissions and *
|
||||
* limitations under the License. *
|
||||
* *
|
||||
*---------------------------------------------------------------------------*
|
||||
* *
|
||||
* https://github.com/olivier-verville/D2Template *
|
||||
* *
|
||||
* D2Template core file, do not modify unless you know what you're doing *
|
||||
* *
|
||||
*****************************************************************************/
|
||||
#pragma once
|
||||
#include <windows.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
extern DWORD DLLBASE_BNCLIENT;
|
||||
extern DWORD DLLBASE_D2CLIENT;
|
||||
extern DWORD DLLBASE_D2CMP;
|
||||
extern DWORD DLLBASE_D2COMMON;
|
||||
extern DWORD DLLBASE_D2DDRAW;
|
||||
extern DWORD DLLBASE_D2DIRECT3D;
|
||||
extern DWORD DLLBASE_D2GAME;
|
||||
extern DWORD DLLBASE_D2GDI;
|
||||
extern DWORD DLLBASE_D2GFX;
|
||||
extern DWORD DLLBASE_D2GLIDE;
|
||||
extern DWORD DLLBASE_D2LANG;
|
||||
extern DWORD DLLBASE_D2LAUNCH;
|
||||
extern DWORD DLLBASE_D2MCPCLIENT;
|
||||
extern DWORD DLLBASE_D2MULTI;
|
||||
extern DWORD DLLBASE_D2NET;
|
||||
extern DWORD DLLBASE_D2SOUND;
|
||||
extern DWORD DLLBASE_D2WIN;
|
||||
extern DWORD DLLBASE_FOG;
|
||||
extern DWORD DLLBASE_STORM;
|
||||
extern DWORD DLLBASE_IJL11;
|
||||
extern DWORD DLLBASE_BINKW32;
|
||||
extern DWORD DLLBASE_SMACKW32;
|
||||
extern DWORD DLLBASE_UTILITY;
|
||||
extern DWORD DLLBASE_PLUGY;
|
||||
extern DWORD DLLBASE_D2EXPRES;
|
||||
extern DWORD DLLBASE_SGD2FREERES;
|
||||
|
||||
#include "D2TemplateConstants.h"
|
||||
#include "D2TemplateStructs.h"
|
||||
#include "D2TemplatePtrs.h"
|
||||
#include "D2TemplateVars.h"
|
||||
|
||||
struct DLLBaseStrc
|
||||
{
|
||||
char* szName;
|
||||
DWORD dwAddress;
|
||||
};
|
||||
|
||||
struct DLLPatchStrc
|
||||
{
|
||||
int nDLL;
|
||||
DWORD dwAddress;
|
||||
DWORD dwData;
|
||||
BOOL bRelative;
|
||||
size_t nPatchSize;
|
||||
};
|
||||
|
||||
enum D2TEMPLATE_DLL_FILES
|
||||
{
|
||||
D2DLL_BINKW32,
|
||||
D2DLL_BNCLIENT,
|
||||
D2DLL_D2CLIENT,
|
||||
D2DLL_D2CMP,
|
||||
D2DLL_D2COMMON,
|
||||
D2DLL_D2DDRAW,
|
||||
D2DLL_D2DIRECT3D,
|
||||
D2DLL_D2GAME,
|
||||
D2DLL_D2GDI,
|
||||
D2DLL_D2GFX,
|
||||
D2DLL_D2GLIDE,
|
||||
D2DLL_D2LANG,
|
||||
D2DLL_D2LAUNCH,
|
||||
D2DLL_D2MCPCLIENT,
|
||||
D2DLL_D2MULTI,
|
||||
D2DLL_D2NET,
|
||||
D2DLL_D2SOUND,
|
||||
D2DLL_D2WIN,
|
||||
D2DLL_FOG,
|
||||
D2DLL_IJL11,
|
||||
D2DLL_SMACKW32,
|
||||
D2DLL_STORM,
|
||||
D2DLL_UTILITY,
|
||||
D2DLL_PLUGY,
|
||||
D2DLL_D2EXPRES,
|
||||
D2DLL_SGD2FREERES,
|
||||
D2DLL_INVALID
|
||||
};
|
||||
|
||||
|
||||
static DLLBaseStrc gptDllFiles[] =
|
||||
{
|
||||
{"Binkw32.dll", NULL},
|
||||
{"BnClient.dll", NULL},
|
||||
{"D2Client.dll", NULL},
|
||||
{"D2CMP.dll", NULL},
|
||||
{"D2Common.dll", NULL},
|
||||
{"D2DDraw.dll", NULL},
|
||||
{"D2Direct3D.dll", NULL},
|
||||
{"D2Game.dll", NULL},
|
||||
{"D2Gdi.dll", NULL},
|
||||
{"D2Gfx.dll", NULL},
|
||||
{"D2Glide.dll", NULL},
|
||||
{"D2Lang.dll", NULL},
|
||||
{"D2Launch.dll", NULL},
|
||||
{"D2MCPClient.dll", NULL},
|
||||
{"D2Multi.dll", NULL},
|
||||
{"D2Net.dll", NULL},
|
||||
{"D2Sound.dll", NULL},
|
||||
{"D2Win.dll", NULL},
|
||||
{"Fog.dll", NULL},
|
||||
{"Ijl11.dll", NULL},
|
||||
{"SmackW32.dll", NULL},
|
||||
{"Storm.dll", NULL},
|
||||
{"Utility.dll", NULL},
|
||||
{"Plugy.dll", NULL},
|
||||
{"d2expres.dll", NULL},
|
||||
{"SGD2FreeRes.dll", NULL},
|
||||
};
|
||||
|
||||
#define PATCH_JMP 0x000000E9
|
||||
#define PATCH_CALL 0x000000E8
|
||||
#define PATCH_RETN 0x000000C3
|
||||
#define PATCH_RETN4 0x000004C2
|
||||
#define PATCH_RETN8 0x000008C2
|
||||
#define PATCH_RETN0C 0x00000CC2
|
||||
#define PATCH_RETN10 0x000010C2
|
||||
#define PATCH_RETN14 0x000014C2
|
||||
#define PATCH_RETN18 0x000018C2
|
||||
#define PATCH_RETN1C 0x00001CC2
|
||||
#define PATCH_NOPBLOCK 0x90909090
|
||||
|
||||
#define FCT_ASM(N) __declspec(naked) void N() {__asm{
|
||||
#include "D2TemplatePatch.h"
|
||||
|
||||
void __fastcall D2TEMPLATE_FatalError(char* szMessage);
|
||||
int __fastcall D2TEMPLATE_Init();
|
||||
BOOL __fastcall D2TEMPLATE_ApplyPatch(const DLLPatchStrc* hPatch);
|
||||
BOOL __fastcall D2TEMPLATE_LoadModules();
|
||||
int __fastcall D2TEMPLATE_GetDebugPrivilege();
|
||||
DWORD __fastcall GetDllOffset(char* ModuleName, DWORD BaseAddress, int Offset);
|
||||
char* __fastcall GetModuleExt(char* ModuleName);
|
||||
|
||||
static void* g_ret = 0;
|
||||
|
||||
#define JMP_TO_RVA(BASE, RVA) __asm \
|
||||
{ \
|
||||
__asm push eax \
|
||||
__asm pushfd \
|
||||
__asm mov eax, BASE \
|
||||
__asm add eax, RVA \
|
||||
__asm mov [g_ret], eax \
|
||||
__asm popfd \
|
||||
__asm pop eax \
|
||||
__asm jmp [g_ret] \
|
||||
}
|
||||
|
||||
#define RET_TO_RVA(BASE, RVA) __asm \
|
||||
{ \
|
||||
__asm push BASE \
|
||||
__asm pushfd \
|
||||
__asm add dword ptr [esp+4], RVA \
|
||||
__asm popfd \
|
||||
__asm retn \
|
||||
}
|
1936
vendor/D2Template/D2TemplateConstants.h
vendored
Normal file
1936
vendor/D2Template/D2TemplateConstants.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
56
vendor/D2Template/D2TemplateDataTables.h
vendored
Normal file
56
vendor/D2Template/D2TemplateDataTables.h
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
#pragma once
|
||||
|
||||
#ifndef _D2DATATABLES_H
|
||||
#define _D2DATATABLES_H
|
||||
|
||||
#pragma pack(1)
|
||||
|
||||
/****************************************************************************
|
||||
* *
|
||||
* D2DataTables.h *
|
||||
* Copyright (C) Olivier Verville *
|
||||
* *
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); *
|
||||
* you may not use this file except in compliance with the License. *
|
||||
* You may obtain a copy of the License at *
|
||||
* *
|
||||
* http://www.apache.org/licenses/LICENSE-2.0 *
|
||||
* *
|
||||
* Unless required by applicable law or agreed to in writing, software *
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, *
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.*
|
||||
* See the License for the specific language governing permissions and *
|
||||
* limitations under the License. *
|
||||
* *
|
||||
*---------------------------------------------------------------------------*
|
||||
* *
|
||||
* https://github.com/olivier-verville/D2Template *
|
||||
* *
|
||||
* This file is an expansion of D2Structs.h, meant to be used to declare *
|
||||
* structs representing the record of a data table once loaded in memory *
|
||||
* by the game, such as Monstats.txt or Charstats.txt *
|
||||
* *
|
||||
*****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* *
|
||||
* DECLARATIONS *
|
||||
* *
|
||||
*****************************************************************************/
|
||||
|
||||
struct D2MonstatsTXT;
|
||||
|
||||
/****************************************************************************
|
||||
* *
|
||||
* DEFINITIONS *
|
||||
* *
|
||||
*****************************************************************************/
|
||||
|
||||
struct D2MonstatsTXT
|
||||
{
|
||||
//...
|
||||
};
|
||||
|
||||
// end of file --------------------------------------------------------------
|
||||
#pragma pack()
|
||||
#endif
|
29
vendor/D2Template/D2TemplatePacketDef.h
vendored
Normal file
29
vendor/D2Template/D2TemplatePacketDef.h
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
#pragma once
|
||||
|
||||
#ifndef _D2PACKETDEF_H
|
||||
#define _D2PACKETDEF_H
|
||||
|
||||
#pragma pack(1)
|
||||
|
||||
struct D2GSPacketClt01;
|
||||
struct D2GSPacketClt02;
|
||||
struct D2GSPacketClt03;
|
||||
|
||||
struct D2GSPacketSrv01;
|
||||
struct D2GSPacketSrv02;
|
||||
struct D2GSPacketSrv03;
|
||||
|
||||
/****************************************************************************
|
||||
* *
|
||||
* DEFINITIONS *
|
||||
* *
|
||||
*****************************************************************************/
|
||||
|
||||
struct D2GSPacketClt01
|
||||
{
|
||||
//...
|
||||
};
|
||||
|
||||
// end of file --------------------------------------------------------------
|
||||
#pragma pack()
|
||||
#endif
|
29
vendor/D2Template/D2TemplatePatch.h
vendored
Normal file
29
vendor/D2Template/D2TemplatePatch.h
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
#pragma once
|
||||
|
||||
#ifndef _D2PATCH_H
|
||||
#define _D2PATCH_H
|
||||
|
||||
//struct DLLPatchStrc
|
||||
//{
|
||||
// int nDLL;
|
||||
// DWORD dwAddress;
|
||||
// DWORD dwData;
|
||||
// BOOL bRelative;
|
||||
// size_t nPatchSize;
|
||||
//};
|
||||
|
||||
//static const DLLPatchStrc gpt_click_trade_menu[] =
|
||||
//{
|
||||
// {D2DLL_D2GAME, 0x9A061 + 0, PATCH_JMP, FALSE, 0x1},
|
||||
// {D2DLL_D2GAME, 0x9A061 + 1, (DWORD)click_trade_menu, TRUE, 0x0},
|
||||
// {D2DLL_INVALID}
|
||||
//};
|
||||
//
|
||||
//static const DLLPatchStrc gpt_click_gamble_menu[] =
|
||||
//{
|
||||
// {D2DLL_D2GAME, 0x9A0D1 + 0, PATCH_JMP, FALSE, 0x1},
|
||||
// {D2DLL_D2GAME, 0x9A0D1 + 1, (DWORD)click_gamble_menu, TRUE, 0x0},
|
||||
// {D2DLL_INVALID}
|
||||
//};
|
||||
|
||||
#endif
|
501
vendor/D2Template/D2TemplatePtrs.h
vendored
Normal file
501
vendor/D2Template/D2TemplatePtrs.h
vendored
Normal file
@@ -0,0 +1,501 @@
|
||||
#pragma once
|
||||
|
||||
#ifndef _D2PTRS_H
|
||||
#define _D2PTRS_H
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// These are the macros used by the template core to declare ///
|
||||
// pointers. Do not touch unless you know what you're doing ///
|
||||
// ///
|
||||
// ///
|
||||
//#ifdef _MSC_VER // MS Compiler ///
|
||||
//#define D2FUNC(DLL, NAME, RETURN, CONV, ARGS, OFFSET) typedef RETURN (CONV* DLL##_##NAME##_t) ARGS; __declspec(selectany) extern DLL##_##NAME##_t DLL##_##NAME = (DLL##_##NAME##_t)GetDllOffset(#DLL, DLLBASE_##DLL, OFFSET); ///
|
||||
//#define D2VAR(DLL, NAME, TYPE, OFFSET) typedef TYPE DLL##_##NAME##_vt; __declspec(selectany) extern DLL##_##NAME##_vt * DLL##_##NAME = (DLL##_##NAME##_vt *)GetDllOffset(#DLL, DLLBASE_##DLL, OFFSET); ///
|
||||
//#define D2PTR(DLL, NAME, OFFSET) __declspec(selectany) extern DWORD NAME = GetDllOffset(#DLL, DLLBASE_##DLL, OFFSET); ///
|
||||
//#else // GCC Compiler ///
|
||||
//#define D2FUNC(DLL, NAME, RETURN, CONV, ARGS, OFFSET) typedef RETURN (CONV* DLL##_##NAME##_t) ARGS; DLL##_##NAME##_t DLL##_##NAME __attribute__((weak)) = (DLL##_##NAME##_t)GetDllOffset(#DLL, DLLBASE_##DLL, OFFSET); ///
|
||||
//#define D2VAR(DLL, NAME, TYPE, OFFSET) typedef TYPE DLL##_##NAME##_vt; DLL##_##NAME##_vt * DLL##_##NAME __attribute__((weak)) = (DLL##_##NAME##_vt *)GetDllOffset(#DLL, DLLBASE_##DLL, OFFSET); ///
|
||||
//#define D2PTR(DLL, NAME, OFFSET) DWORD NAME __attribute__((weak)) = GetDllOffset(#DLL, DLLBASE_##DLL, OFFSET); ///
|
||||
//#endif
|
||||
|
||||
#define D2FUNC(DLL, NAME, RETURN, CONV, ARGS, OFFSET) typedef RETURN (CONV##* DLL##_##NAME##_t) ARGS; static DLL##_##NAME##_t DLL##_##NAME = (OFFSET < 0) ? ((DLL##_##NAME##_t)GetProcAddress((HMODULE)DLLBASE_##DLL, (LPCSTR)-(OFFSET))) : (DLL##_##NAME##_t)(DLLBASE_##DLL + OFFSET); ///
|
||||
#define D2VAR(DLL, NAME, TYPE, OFFSET) typedef TYPE DLL##_##NAME##_vt; static DLL##_##NAME##_vt * DLL##_##NAME = (DLL##_##NAME##_vt *)(DLLBASE_##DLL + OFFSET); ///
|
||||
#define D2PTR(DLL, NAME, OFFSET) static DWORD NAME = (DLLBASE_##DLL + OFFSET);
|
||||
|
||||
extern DWORD __fastcall GetDllOffset(char* ModuleName, DWORD BaseAddress, int Offset); ///
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//D2FUNC(D2NET, SendPacket, void, __stdcall, (DWORD arg1, BYTE* buf, size_t len), -10005)
|
||||
//
|
||||
//D2FUNC(D2GFX, D2GFX_10055, void, __stdcall, (int nXStart, int nYStart, int nXEnd, int nYEnd, DWORD dwColor, int nDrawMode), -10055)
|
||||
//D2FUNC(D2CLIENT, CheckGameType, int, __fastcall, (), 0xBFF0) // 0 = Single Player 6 = Unknown 8 = Multiplayer
|
||||
//D2VAR(D2CLIENT, ScreenHeight, int, 0xD40F0)
|
||||
//D2VAR(D2CLIENT, ScreenWidth, int, 0xD40F4)
|
||||
//D2VAR(D2CLIENT, MouseX, int, 0x121AE4)
|
||||
//D2VAR(D2CLIENT, MouseY, int, 0x6FBC1AE8 - 0x6FAA0000)
|
||||
//D2VAR(D2CLIENT, GetUIWindowState_base, BOOL*, 0x11A6A8)
|
||||
//
|
||||
////D2FUNC(D2CLIENT, GetPlayerUnit, UnitAny*, __stdcall, (), 0x883D0)
|
||||
//D2FUNC(D2CLIENT, LoadCellFile, CellFile*, __fastcall, (const char* szFilename, int nCellFileType), 0x1000)
|
||||
//
|
||||
//D2FUNC(D2COMMON, GetStat, DWORD, __stdcall, (UnitAny* Unit, DWORD StatID, DWORD index), -10519)
|
||||
//D2FUNC(D2COMMON, GetStatSigned, DWORD, __stdcall, (UnitAny* Unit, DWORD StatID, DWORD index), -10520)
|
||||
//D2FUNC(D2COMMON, GetBaseStat, DWORD, __stdcall, (UnitAny* Unit, DWORD StatID, DWORD index), -10521)
|
||||
//D2FUNC(D2COMMON, GetModStat, DWORD, __stdcall, (UnitAny* Unit, DWORD StatID, DWORD index), -10522)
|
||||
//D2FUNC(D2COMMON, GetUnitState, DWORD, __stdcall, (UnitAny* Unit, DWORD State), -10487)
|
||||
//D2FUNC(D2COMMON, IsInTown, bool, __stdcall, (Room * ptRoom), -10082);// #10082
|
||||
//D2FUNC(D2COMMON, IsMonsterNPCInTown, bool, __fastcall, (UnitAny* pMonster), 0x656C0)
|
||||
//D2FUNC(D2COMMON, GetMonsterColorIndex, int, __stdcall, (UnitAny* mon, int no), -11017)
|
||||
//D2FUNC(D2COMMON, GetUnitStat, int, __stdcall, (UnitAny* unit, DWORD statno, DWORD unk), -10519)
|
||||
//
|
||||
//D2VAR(D2GFX, pfnDriverCallback, fnRendererCallbacks*, 0x6FA8D258 - 0x6FA70000) //:$1D258
|
||||
//
|
||||
////D2FUNC(D2GFX, GetHwnd, HWND, __stdcall, (), -10027)
|
||||
//D2FUNC(D2GFX, DrawShiftedImage, void, __stdcall, (CellContext* data, DWORD nXpos, DWORD nYpos, int nGamma, int nDrawMode, int nGlobalShift), -10073)
|
||||
//D2FUNC(D2GFX, DrawVerticalCropImage, void, __stdcall, (CellContext* data, DWORD x, DWORD y, int nSkipLines, int nDrawLines, int nDrawMode), -10074)
|
||||
//D2FUNC(D2GFX, DrawCellContext, void, __stdcall, (CellContext *context, int nXpos, int nYpos, DWORD dwGamma, int nDrawMode, BYTE* pPalette), -10072)
|
||||
//D2FUNC(D2GFX, DrawFilledRect, void, __stdcall, (int nXposStart, int nYposStart, int nXposEnd, int nYposEnd, int nColor, int nTransparency), -10055)
|
||||
//D2FUNC(D2GFX, DrawFilledRect2, void, __stdcall, (int nXposStart, int nYposStart, int nXposEnd, int nYposEnd, int nColor, int nTransparency), -10056)
|
||||
//
|
||||
//D2FUNC(D2COMMON, GetUnitBaseStat, DWORD, __stdcall, (UnitAny* Unit, DWORD Stat, DWORD Stat2), -10521)
|
||||
//D2FUNC(D2COMMON, GetLevelThreshold, DWORD, __stdcall, (int nClass, DWORD dwLevel), -10628)
|
||||
//D2FUNC(D2LANG, GetStringFromIndex, wchar_t*, __fastcall, (short nTblIndex_name_str), -10004)
|
||||
//
|
||||
//D2FUNC(D2COMMON, GetMaxLevel, int, __stdcall, (int nClass), -10629)
|
||||
//D2FUNC(D2GFX, DrawLine, void, __stdcall, (int nXStart, int nYStart, int nXEnd, int nYEnd, BYTE nColor, BYTE nAlpha), -10057)
|
||||
//D2FUNC(D2WIN, DrawFramedText, void, __fastcall, (wchar_t * wStr, int X, int Y, int nColor, int Centered), -10129)
|
||||
//
|
||||
//D2FUNC(D2COMMON, GetRoomFromUnit, room3*, __stdcall, (Unit* pPlayer), -10342)
|
||||
//D2FUNC(D2COMMON, GetItemRecord, items_line*, __stdcall, (uint32_t guid), -10600)
|
||||
//D2FUNC(D2COMMON, GetItemUniqueIndex, uint32_t, __stdcall, (unit3* item), -10732)
|
||||
//D2FUNC(D2CLIENT, GetUnit, UnitAny *, __fastcall, (DWORD id, DWORD type), 0x869F0);
|
||||
//D2FUNC(D2GAME, GetUnit, unit*, __fastcall, (Game* pGame, DWORD type, DWORD uniqueid), 0x8BB00);
|
||||
//
|
||||
//D2FUNC(D2GAME, GetGameFromClientId, Game*, __fastcall, (int32_t id), 0x94E0); //id 0 - current single player
|
||||
//
|
||||
//D2FUNC(D2CLIENT, ScmdItemUnitEx, UnitAny*, __fastcall, (void* aPacket), 0x14420);
|
||||
//
|
||||
//D2FUNC(D2WIN, DisplayBlendedText, int, __fastcall, (wchar_t* pString, int nXpos, int nYpos, int nColour, int bCentered, int BlendMode), -10118)
|
||||
//D2FUNC(D2GFX, GetHwnd, HWND, __stdcall, (), -10027)
|
||||
//D2FUNC(D2WIN, PrintString, void, __fastcall, (LPWSTR s, DWORD x, DWORD y, DWORD color, DWORD bfalse), -10117)
|
||||
//D2FUNC(D2WIN, SetFont, DWORD, __fastcall, (DWORD fontID), -10127)
|
||||
//D2FUNC(D2WIN, PrintPopup, void, __fastcall, (LPWSTR s, DWORD x, DWORD y, DWORD color, DWORD center), -10129)
|
||||
//D2FUNC(D2GFX, GetResolutionMode, int, __stdcall, (), -10005)
|
||||
//
|
||||
//D2FUNC(D2CLIENT, PrintGameStringAtTopLeft, void, __fastcall, (wchar_t* text, int nColor), 0x7C600)
|
||||
//D2FUNC(D2CLIENT, PrintGameStringAtBottomLeft, void, __fastcall, (wchar_t* text, int nColor), 0x7C950)
|
||||
////D2VARPTR(D2CLIENT, nQuestPage, int, DLLBASE_D2CLIENT+0x116F15)
|
||||
//D2FUNC(D2CLIENT, GetSelectedUnit, UnitAny *, __stdcall, (), 0x15A20)
|
||||
////D2VARPTR(D2CLIENT, pInSocketablePatch, UnitAny *, DLLBASE_D2CLIENT+0x1158F0)
|
||||
////D2VARPTR(D2CLIENT, pMonsterNameLifePatch1, UnitAny, DLLBASE_D2CLIENT+0xD9290)
|
||||
////D2VARPTR(D2CLIENT, pMonsterNameLifePatch2, UnitAny, DLLBASE_D2CLIENT+0xD9298)
|
||||
//D2FUNC(D2CLIENT, TestPvpFlag, DWORD, __fastcall, (DWORD planum1, DWORD planum2, DWORD flagmask), 0xAB900)
|
||||
//D2FUNC(D2CLIENT, GetMonsterOwner, DWORD, __fastcall, (DWORD monnum), 0x11B00)
|
||||
//D2FUNC(D2CLIENT, GetMonsterTxt, MonsterTxt*, __fastcall, (DWORD monno), 0xE570)
|
||||
//
|
||||
////F7(FAST, D2Win, 10046,10046,10046,10061,10075,10015,10022,10051, void, D2PrintLineOnTextBox,(void* screen, char* s, DWORD color) );
|
||||
////F7(FAST, D2Win, 10117,10117,10117,10020,10064,10001,10150,10076, void, D2PrintString,(LPWSTR s, DWORD x, DWORD y, DWORD color, DWORD bfalse) );
|
||||
////F7(FAST, D2Win, 10121,10121,10121,10034,10128,10132,10028,10150, DWORD, D2GetPixelLen,(LPWSTR s) );
|
||||
////F7(FAST, D2Win, 10127,10127,10127,10141,10170,10010,10184,10047, DWORD, D2SetFont,(DWORD fontID) );
|
||||
////F7(FAST, D2Win, 10129,10129,10129,10118,10039,10031,10085,10137, void, D2PrintPopup,(LPWSTR s, DWORD x, DWORD y, DWORD color, DWORD center) );
|
||||
////F7(FAST, D2Win, 10131,10131,10131,00000,00000,00000,00000,00000, void, D2GetPixelRect,(LPWSTR s, DWORD* x, DWORD* y) );//6F8AB260
|
||||
////F7(FAST, D2Win, 10132,10132,10132,00000,00000,00000,00000,00000, DWORD, D2PrintTextPopup,(LPWSTR s, DWORD x, DWORD y, DWORD uk, DWORD type, DWORD color) );//6F8AB080
|
||||
////F7(STD, D2Win, 10017,10017,10017,10147,10113,10098,10098,10164, void*, D2CreateTextBox,(DWORD* data) );
|
||||
//
|
||||
////FAST, D2Game,00000,00000,3F220,4ABE0,EC7E0,40B90,24950,CDE20, DWORD, D2SpawnMonster, (Game* ptGame, Room* ptRoom, DWORD zero1, DWORD x, DWORD y, DWORD minusOne, DWORD superuniqueID, DWORD zero2));//wrong param
|
||||
//D2FUNC(D2GAME, D2SpawnMonster, DWORD, __fastcall, (Game* ptGame, Room* ptRoom, DWORD zero1, DWORD x, DWORD y, DWORD minusOne, DWORD superuniqueID, DWORD zero2), 0x3F220)
|
||||
////D2FUNC(D2GAME, SpawnItem, int, __fastcall, (Game* pGame, Unit* pPlayer, DWORD dwCode, DWORD nIlvl, DWORD nQuality, DWORD dwOne), 0x65DF0)
|
||||
////D2FUNC(D2CLIENT, GetPtPlayer, Unit*, __stdcall, (), 0x883D0)
|
||||
//D2FUNC(D2COMMON, SetItemPage, int, __stdcall, (Unit* pItem, DWORD page), -10720)
|
||||
////D2FUNC(D2CLIENT, GetPtRoom, Room*, __stdcall, (), 0x89370)
|
||||
//D2FUNC(D2GAME, SpawnRandomMonsterPack, int, __fastcall, (Game* pGame, Room* ptRoom), 0x3AA70)
|
||||
//
|
||||
////D2FUNC(D2CLIENT, PrintChat, void, __fastcall, (LPWSTR s, DWORD n), 0x7C600)
|
||||
//
|
||||
//D2VAR(D2CLIENT, GetLocalPlayerName, const char*, 0x107810)
|
||||
//D2FUNC(FOG, GetSavePath, void, __fastcall, (char* buffer, size_t bufferSize), -10115)
|
||||
//D2FUNC(D2LAUNCH, DeleteSaveFile, HANDLE, __fastcall, (char* name, char* a2), 0x17C00)
|
||||
//HANDLE __fastcall HookDeleteSaveFile(char* name, char* a2);
|
||||
//
|
||||
//D2FUNC(D2GAME, ServerCreate, void, __fastcall, (Game* pGame, Unit* pPlayer, DWORD dwGUID), 0x4B550)
|
||||
//void __fastcall HookServerCreate(Game* pGame, Unit* pPlayer, DWORD dwGUID);
|
||||
//
|
||||
//D2FUNC(D2GAME, ServerDestroy, void, __fastcall, (Game* pGame, Unit* pPlayer), 0x4B630)
|
||||
//void __fastcall HookServerDestroy(Game* pGame, Unit* pPlayer);
|
||||
//
|
||||
//void GameLoopPatch();
|
||||
//void GameEndPatch();
|
||||
//
|
||||
//void __fastcall HookD2ClientTimerUpdate();
|
||||
//VOID CALLBACK TimerProc(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime);
|
||||
//int __stdcall handleServerUpdate (Unit* ptChar, WORD param);
|
||||
//__inline void updateServer3(WORD p);
|
||||
//__inline void updateServer7(BYTE type, DWORD num);
|
||||
//__inline void updateServer9(BYTE type, DWORD num, DWORD command0x13);
|
||||
//void BackToTown();
|
||||
//
|
||||
//
|
||||
//// Convertion to 1.09
|
||||
//struct s_shifting {
|
||||
// DWORD ptInventory;
|
||||
// DWORD ptSpecificData;
|
||||
// DWORD ptPYPlayerData;
|
||||
// DWORD ptGame;
|
||||
// DWORD ptClientGame;
|
||||
// DWORD ptSkills;
|
||||
// DWORD ptImage;
|
||||
// DWORD ptFrame;
|
||||
//};
|
||||
//extern s_shifting shifting;
|
||||
//
|
||||
////#ifdef MSVC
|
||||
//#define FASTCALL __fastcall
|
||||
////#else
|
||||
////#define FASTCALL __msfastcall
|
||||
////#endif
|
||||
//#define STDCALL __stdcall
|
||||
//#define FCT_ASM(N) __declspec(naked) void N() {__asm{
|
||||
//#define RANDOM(V) ((int)(rand()/(RAND_MAX+1.0)*(V)))
|
||||
////#define RANDOM(V) (rand()%(V))
|
||||
//
|
||||
//#define INST_NOP 0x90
|
||||
//#define INST_CALL 0xe8
|
||||
//#define INST_JMP 0xe9
|
||||
//#define INST_JMPR 0xeb
|
||||
//#define INST_RET 0xc3
|
||||
//
|
||||
////shifting.ptPYPlayerData = *(DWORD*)((DWORD)D2InitPlayerData + V8(D2Common, 5D, 5D, 5D, 49, 49, 49, 49, 49, 48));
|
||||
////shifting.ptSpecificData = 0x14;
|
||||
////shifting.ptGame = 0x80;
|
||||
////shifting.ptClientGame = 0x1A8;
|
||||
////shifting.ptInventory = 0x60;
|
||||
////shifting.ptSkills = 0xA8;
|
||||
////shifting.ptImage = 0x34;
|
||||
////shifting.ptFrame = 0x0;
|
||||
//
|
||||
////#define PY(C) (*(PYPlayerData**)((BYTE*)(ptChar)+shifting.ptPYPlayerData))
|
||||
//#define PCPlayerData (*(PlayerData**)((DWORD)(ptChar)+shifting.ptSpecificData)) //->ptPlayerData
|
||||
//#define PCGame (*(Game**)((DWORD)(ptChar)+shifting.ptGame)) //->ptGame
|
||||
//#define PClientGame (*(Game**)((DWORD)(ptClient)+shifting.ptClientGame)) //ptClient->ptGame
|
||||
//#define PCInventory (*(Inventory**)((DWORD)(ptChar)+shifting.ptInventory)) //->ptInventory
|
||||
////#define PIItemData (*(ItemData**)((DWORD)(ptItem)+shifting.ptSpecificData)) //->ptItemData
|
||||
////#define PCPY (*(PYPlayerData**)((DWORD)(ptChar)+shifting.ptPYPlayerData)) //->ptPYPlayerData
|
||||
//#define PCPY ((PYPlayerData*)((DWORD)PCPlayerData+shifting.ptPYPlayerData)) //->ptPYPlayerData
|
||||
//#define PCSkills (*(Skills**)((DWORD)(ptChar)+shifting.ptSkills)) //->ptSkills
|
||||
//
|
||||
//#define R8(Z,A,B,C,D,E,F,G,H,I) (offset_##Z + (version_##Z == V114d? 0x##I : (version_##Z == V113d? 0x##H : (version_##Z == V113c? 0x##G : (version_##Z == V112? 0x##F : (version_##Z == V111b? 0x##E : (version_##Z == V111? 0x##D : (version_##Z == V110? 0x##C : (version_##Z == V109d? 0x##B : 0x##A)))))))))
|
||||
//#define V8(Z,A,B,C,D,E,F,G,H,I) (version_##Z == V114d? 0x##I : (version_##Z == V113d? 0x##H : (version_##Z == V113c? 0x##G : (version_##Z == V112? 0x##F : (version_##Z == V111b? 0x##E : (version_##Z == V111? 0x##D : (version_##Z == V110? 0x##C : (version_##Z == V109d? 0x##B : 0x##A))))))))
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
////D2FUNC(D2GFX, GetHwnd, HWND, __stdcall, (), -10027)
|
||||
////D2FUNC(D2WIN, DisplayBlendedText, int, __fastcall, (wchar_t* pString, int nXpos, int nYpos, int nColour, int bCentered, int BlendMode), -10118)
|
||||
////D2FUNC(D2WIN, PrintString, void, __fastcall, (LPWSTR s, DWORD x, DWORD y, DWORD color, DWORD bfalse), -10117)
|
||||
////D2FUNC(D2WIN, SetFont, DWORD, __fastcall, (DWORD fontID), -10127)
|
||||
////D2FUNC(D2WIN, PrintPopup, void, __fastcall, (LPWSTR s, DWORD x, DWORD y, DWORD color, DWORD center), -10129)
|
||||
//
|
||||
////F7(FAST, D2Win, 10046,10046,10046,10061,10075,10015,10022,10051, void, D2PrintLineOnTextBox,(void* screen, char* s, DWORD color) );
|
||||
////F7(FAST, D2Win, 10117,10117,10117,10020,10064,10001,10150,10076, void, D2PrintString,(LPWSTR s, DWORD x, DWORD y, DWORD color, DWORD bfalse) );
|
||||
////F7(FAST, D2Win, 10121,10121,10121,10034,10128,10132,10028,10150, DWORD, D2GetPixelLen,(LPWSTR s) );
|
||||
////F7(FAST, D2Win, 10127,10127,10127,10141,10170,10010,10184,10047, DWORD, D2SetFont,(DWORD fontID) );
|
||||
////F7(FAST, D2Win, 10129,10129,10129,10118,10039,10031,10085,10137, void, D2PrintPopup,(LPWSTR s, DWORD x, DWORD y, DWORD color, DWORD center) );
|
||||
////F7(FAST, D2Win, 10131,10131,10131,00000,00000,00000,00000,00000, void, D2GetPixelRect,(LPWSTR s, DWORD* x, DWORD* y) );//6F8AB260
|
||||
////F7(FAST, D2Win, 10132,10132,10132,00000,00000,00000,00000,00000, DWORD, D2PrintTextPopup,(LPWSTR s, DWORD x, DWORD y, DWORD uk, DWORD type, DWORD color) );//6F8AB080
|
||||
////F7(STD, D2Win, 10017,10017,10017,10147,10113,10098,10098,10164, void*, D2CreateTextBox,(DWORD* data) );
|
||||
//
|
||||
////(FAST, D2Client, D210, D200, D990,00000,00000,00000,00000,00000, void, D2SendToServer3, (BYTE type, WORD p))
|
||||
//
|
||||
//D2FUNC(D2CLIENT, PrintChat, void, __fastcall, (LPWSTR s, DWORD n), 0x7C600)
|
||||
//D2FUNC(D2CLIENT, GetPtPlayer, Unit*, __stdcall, (), 0x883D0)
|
||||
//D2FUNC(D2CLIENT, GetPlayerUnit, UnitAny *, __stdcall, (), 0x883D0)
|
||||
//D2FUNC(D2CLIENT, GetPtRoom, Room*, __stdcall, (), 0x89370)
|
||||
//D2FUNC(D2CLIENT, SendToServer3, void, __fastcall, (BYTE type, WORD p), 0xD990)
|
||||
//
|
||||
////d2client Send transmute cube packet
|
||||
////6FAECD28 | 53 | push ebx | ebx == 0
|
||||
////6FAECD29 | 53 | push ebx | ebx == 0
|
||||
////6FAECD2A | BA 18000000 | mov edx, 18 |
|
||||
////6FAECD2F | B1 4F | mov cl, 4F |
|
||||
////6FAECD31 | 891D 505BBB6F | mov dword ptr ds:[6FBB5B50], ebx | ebx == 0
|
||||
////6FAECD37 | E8 A40CFCFF | call d2client.6FAAD9E0 |
|
||||
//D2FUNC(D2CLIENT, SendToServer7, void, __fastcall, (BYTE type, DWORD num, DWORD unk1, DWORD unk2), 0xD9E0)
|
||||
//D2FUNC(D2CLIENT, SendToServer9, void, __fastcall, (BYTE type, DWORD num, DWORD unk1), 0xDA40) // Interact
|
||||
//
|
||||
//D2FUNC(D2CLIENT, SendToServer13, void, __fastcall, (BYTE type, DWORD num, DWORD unk1, DWORD unk2, DWORD unk3), 0xDA70)
|
||||
//D2FUNC(D2CLIENT, D2SendNPCPacket, void, __fastcall, (void* pPacket, size_t nSize), 0xD850)
|
||||
//
|
||||
//D2FUNC(D2CLIENT, RevealAutomapRoom, void, __fastcall, (DrlgRoom1 *room1, DWORD clipflag, AutomapLayer* layer), 0x2D180)
|
||||
//
|
||||
////6FACD180 0002D180 83EC 0C sub esp,0C ; D2Client.6FACD180(guessed Arg1)
|
||||
//
|
||||
//D2FUNC(D2GAME, SpawnItem, int, __fastcall, (Game* pGame, Unit* pPlayer, DWORD dwCode, DWORD nIlvl, DWORD nQuality, DWORD dwOne), 0x65DF0)
|
||||
////D2FUNC(D2GAME, SpawnRandomMonsterPack, int, __fastcall, (Game* pGame, Room* pRoom), 0x3AA70)
|
||||
////D2FUNC(D2GAME, PopulateRoom, int, __fastcall, (Game* pGame, Room* pRoom), 0x
|
||||
//
|
||||
////A7(FAST, D2Game, C380, C650, C710,41420,A0D50,7D220,8A3E0,DB780, DWORD, D2SendPacket, (void* ptNetClient, LPVOID pData, DWORD size));//EAX=ptNetClient [ESP]=pData
|
||||
////A7(FAST, D2Game, D650, D920, DB50,44D00,A3F20,802E0,8D5F0,DD4F0, void, D2SetSkillBaseLevelOnClient, (void* ptClient, Unit* ptChar, DWORD skillID, DWORD sLvl, DWORD bRemove));//by EAX,ESI,EBX
|
||||
//D2FUNC(D2GAME, SendPacket, DWORD, __fastcall, (void* ptNetClient, LPVOID pData, DWORD size), 0xC710)
|
||||
//D2FUNC(D2GAME, SetSkillBaseLevelOnClient, void, __fastcall, (void* ptClient, Unit* ptChar, DWORD skillID, DWORD sLvl, DWORD bRemove), 0xDB50)
|
||||
//D2FUNC(D2GAME, DispatchClientPacket, int, __fastcall, (Game* pGame, Unit* pPlayer, DWORD pPacket, int nSize), 0x59320)
|
||||
//
|
||||
//
|
||||
////D2CreateItemUnit D2Game6FC501A0
|
||||
////
|
||||
////arg1 = ptPlayer
|
||||
////arg2 = itemCode
|
||||
////arg3 = ptGame
|
||||
////arg4 = unknown (usually use 4 here)
|
||||
////arg5 = quality
|
||||
////arg6 = unkown (usually use 1 here)
|
||||
////arg7 = unkown (usually use 1 here)
|
||||
////arg8 = itemLevel
|
||||
////arg9 = unknown (usually use 0 here)
|
||||
////arg10 = unknown (usually use -1 here)
|
||||
////arg11 = unknown (usually use 1 here)
|
||||
//
|
||||
////D2FUNC(D2GAME, CreateItemUnit, int, __fastcall, (Unit* pPlayer, DWORD itemCode, Game* ptGame, DWORD unknown4, DWORD quality, DWORD unkown6, DWORD unkown7, DWORD itemLevel, DWORD unknown9, DWORD unknown10, DWORD unknown11), 0x201A0)
|
||||
//
|
||||
////D2SpawnSuperUnique D2Game6FC6F690
|
||||
////arg1: ptGame
|
||||
////arg2: ptRoom
|
||||
////arg3: pointX
|
||||
////arg4: pointY
|
||||
////arg5: hcIdx (from superuniques.txt)
|
||||
////10F0F900 //0x1463 0x1413 03 rakanishu
|
||||
//D2FUNC(D2GAME, SpawnSuperUnique, int, __fastcall, (Game* pGame, Room* pRoom, int pointX, int pointY, int hcIdx), 0x3F690)
|
||||
//
|
||||
////A7(FAST, D2Game, 7C2C0,7C7B0,8C2E0,00000,00000,00000,00000,00000, NetClient*, D2GetClient, (Unit* ptUnit, char* lpszErrFile, DWORD ErrLine));//6FCBC2E0
|
||||
//
|
||||
//D2FUNC(D2GAME, GetClient, NetClient*, __fastcall, (Unit* ptUnit, char* lpszErrFile, DWORD ErrLine), 0x8C2E0)
|
||||
//
|
||||
////F7(STD, D2Common,10968,10968,10968,10700,10109,10904,10306,10007, DWORD, D2GetSkillLevel, (Unit* ptChar, SkillData* ptSkill, DWORD includingBonus));
|
||||
////F7(STD, D2Common,10953,10953,10953,10099,10255,10210,10302,10335, void, D2SetSkillBaseLevel,(Unit* ptChar, DWORD skillID, DWORD slvl, DWORD bRemove, char*, DWORD));
|
||||
////F7(STD, D2Common,11276,11276,11276,10254,10074,10111,10435,11081, DWORD, D2GetSkillCost, (Unit* ptChar, int skpoints, DWORD skillID, DWORD curSkillLevel));//not 10447
|
||||
////F7(STD, D2Common,10521,10521,10521,10733,10550,10494,10587,10216, int, D2GetPlayerBaseStat, (Unit* ptChar, DWORD statID, DWORD index));
|
||||
//
|
||||
//D2FUNC(D2COMMON, GetSkillLevel, DWORD, __stdcall, (Unit* ptChar, SkillData* ptSkill, DWORD includingBonus), -10968)
|
||||
//D2FUNC(D2COMMON, SetSkillBaseLevel, void, __stdcall, (Unit* ptChar, DWORD skillID, DWORD slvl, DWORD bRemove, char*, DWORD), -10953)
|
||||
//D2FUNC(D2COMMON, GetSkillCost, DWORD, __stdcall, (Unit* ptChar, int skpoints, DWORD skillID, DWORD curSkillLevel), -11276)
|
||||
////D2FUNC(D2COMMON, SetItemPage, int, __stdcall, (Unit* pItem, DWORD page), -10720)
|
||||
//D2FUNC(D2COMMON, GetCurrentRoom, Room*, __fastcall, (void* ptAct), -10056)
|
||||
//D2FUNC(D2COMMON, GetXPosFromPath, int, __stdcall, (Path* ptPath), -10162)
|
||||
//D2FUNC(D2COMMON, GetYPosFromPath, int,__stdcall, (Path* ptPath), -10163)
|
||||
//D2FUNC(D2COMMON, GetMaxGoldBank, DWORD, __stdcall, (Unit* ptUnit), -10339)
|
||||
//D2FUNC(D2COMMON, GetMaxGold, DWORD, __stdcall, (Unit* ptUnit), -10439)
|
||||
//D2FUNC(D2COMMON, AddPlayerStat, void, __stdcall, (Unit* ptChar, DWORD statID, int amount, DWORD index), -10518)
|
||||
//D2FUNC(D2COMMON, GetPlayerStat, int, __stdcall, (Unit* ptChar, DWORD statID, DWORD index), -10519)
|
||||
//D2FUNC(D2COMMON, SetPlayerStat, void, __stdcall, (Unit* ptChar, DWORD statID, int amount, DWORD index), -10517)
|
||||
//D2FUNC(D2COMMON, GetPlayerBaseStat, int, __stdcall, (Unit* ptChar, DWORD statID, DWORD index), -10521)
|
||||
////D2FUNC(PLUGY, handleServerUpdate, int, __stdcall, (Unit* ptChar, WORD param), 0x1F490)
|
||||
//D2FUNC(PLUGY, handleServerUpdate, int, __stdcall, (Unit* ptChar, WORD param), 0x1E250)
|
||||
//
|
||||
//
|
||||
//// automap
|
||||
//// 6FAC57B0 | A1 40BCBB6F | mov eax, dword ptr ds:[D2Client.6FBBBC40] // 1.09
|
||||
//// 6FACBAF0 | A1 E419BB6F | mov eax, dword ptr ds:[D2Client.6FBB19E4] // 1.10
|
||||
//
|
||||
////020D90 6F620D90 10010 DRLG_GetLevelDefsRecord int nLevelNo
|
||||
////Unique fastcall (int nLevelNo) __fastcall DRLG_GetLevelDefsRecord(int nLevelNo)
|
||||
////6F620D90 DRLG_GetLevelDefsRecord 6F620D90 __fastcall DRLG_GetLevelDefsRecord(int nLevelNo)
|
||||
//
|
||||
////6FAC5884 $+0x25884 | E8 C3910900 | call <JMP.&D2Common#10010> // 1.09 InitAutomapLayer
|
||||
////6FACBBC4 $+0x2BBC4 | E8 CDF20900 | call <jmp.&D2Common#10010> // 1.10 InitAutomapLayer
|
||||
//
|
||||
////6FAC594F $+0x2594F | 8B4424 14 mov eax,dword ptr ss:[esp+14] // 1.09 InitAutomapLayer_END
|
||||
////6FACBC8A $+0x2BC8A | 8B4424 14 mov eax,dword ptr ss:[esp+14] // 1.10 InitAutomapLayer_END
|
||||
//
|
||||
////D2PTR(D2CLIENT, InitAutomapLayer, 0x6FAC5884)
|
||||
////D2PTR(D2CLIENT, InitAutomapLayer_END, 0x6FAC594F)
|
||||
//
|
||||
////D2PTR(D2CLIENT, InitAutomapLayer, 0x2BBC4)
|
||||
////D2PTR(D2CLIENT, InitAutomapLayer_END, 0x2BC8A)
|
||||
//
|
||||
//
|
||||
//
|
||||
////6FACDCE9 |. 3935 A419BB6F cmp dword ptr ds:[D2Client.6FBB19A4],esi
|
||||
////6FAA8023 |. A1 8479BA6F mov eax,dword ptr ds:[D2Client.6FBA7984]
|
||||
////1.09 1.10 6FBBC200
|
||||
////D2VARPTR(D2CLIENT, pPlayerUnit, UnitAny *, 0x6FBC63F8) == D2FUNC(D2CLIENT, GetPtPlayer, Unit*, __stdcall, (), 0x883D0)
|
||||
////enum {DLLNO_D2CLIENT, DLLNO_D2COMMON, DLLNO_D2GFX, DLLNO_D2WIN, DLLNO_D2LANG, DLLNO_D2CMP};
|
||||
////#define DLLOFFSET(a1,b1) ((DLLNO_##a1)|(( ((b1)<0)?(b1):(b1)-DLLBASE_##a1 )<<8))
|
||||
//////NOTE :- reference vars buggy
|
||||
////#define D2FUNCPTR(d1,v1,t1,t2,o1) typedef t1 d1##_##v1##_t t2; d1##_##v1##_t *d1##_##v1 = (d1##_##v1##_t *)DLLOFFSET(d1,o1);
|
||||
////#define D2VARPTR(d1,v1,t1,o1) typedef t1 d1##_##v1##_t; d1##_##v1##_t *p_##d1##_##v1 = (d1##_##v1##_t *)DLLOFFSET(d1,o1);
|
||||
//#define D2ASMPTR(DLL,NAME,OFFSET) DWORD DLL##_##NAME = GetDllOffset(#DLL, DLLBASE_##DLL, OFFSET);
|
||||
//#define D2FUNCPTR(DLL,NAME,t1,t2,OFFSET) typedef t1 DLL##_##NAME##_t t2; DLL##_##NAME##_t *DLL##_##NAME = (DLL##_##NAME##_t *)GetDllOffset(#DLL, DLLBASE_##DLL, OFFSET);
|
||||
//#define D2VARPTR(DLL,NAME,t1,OFFSET) typedef t1 DLL##_##NAME##_t; DLL##_##NAME##_t *p_##DLL##_##NAME = (DLL##_##NAME##_t *)GetDllOffset(#DLL, DLLBASE_##DLL, OFFSET);
|
||||
////#define D2ASMPTR(d1,v1,o1) DWORD d1##_##v1 = DLLOFFSET(d1,o1);
|
||||
////#define D2PTR(DLL, NAME, OFFSET) DWORD NAME __attribute__((weak)) = GetDllOffset(#DLL, DLLBASE_##DLL, OFFSET);
|
||||
////D2VAR(D2CLIENT, pDrlgAct, DrlgAct *, 0x6FBB0BE4)
|
||||
////D2VAR(D2CLIENT, pPlayerUnit, UnitAny *, 0x6FBC63F8)
|
||||
////
|
||||
////D2VAR(D2CLIENT, pAutomapLayer, AutomapLayer *, 0x6FBBBC00)
|
||||
////D2VAR(D2CLIENT, fAutomapSize, DWORD, 0x6FBBBBEC)
|
||||
////D2VAR(D2CLIENT, fAutomapOn, DWORD, 0x6FBC48DC)
|
||||
////D2VAR(D2CLIENT, xAutomap, int, 0x6FBBBC24)
|
||||
////D2VAR(D2CLIENT, yAutomap, int, 0x6FBBBC28)
|
||||
//
|
||||
//////D2VAR(D2CLIENT, xMapShake, int, 0x6FBB9B0C)
|
||||
//////D2VAR(D2CLIENT, yMapShake, int, 0x6FBB6454)
|
||||
//////D2VAR(D2COMMON, nWeaponsTxt, int, 0x6FDE1D4C)
|
||||
//////D2VAR(D2COMMON, nArmorTxt, int, 0x6FDE1D54)
|
||||
//////D2VAR(D2CLIENT, nQuestPage, int, 0x6FBC11DD)
|
||||
//////D2VAR(D2CLIENT, nDifficulty, BYTE, 0x6FBB0BBC)
|
||||
//////D2VAR(D2COMMON, aTreasureClasses, TreasureClass *, 0x6FDE1C14)
|
||||
//
|
||||
////6FAB22A0 /. A1 8479BA6F mov eax,dword ptr ds:[D2Client.6FBA7984] //1.10
|
||||
////6FAB2310 /. A1 8479BA6F mov eax,dword ptr ds:[D2Client.6FBA7984] //1.10
|
||||
////D2FUNC(D2CLIENT, RecvCommand07, void, __fastcall, (BYTE* cmdbuf), 0x6FAB1C80) //1.09
|
||||
////D2FUNC(D2CLIENT, RecvCommand08, void, __fastcall, (BYTE* cmdbuf), 0x6FAB1CF0) //1.09
|
||||
//
|
||||
//D2FUNC(D2CLIENT, RecvCommand07, void, __fastcall, (BYTE* cmdbuf), 0x122A0) //1.10
|
||||
//D2FUNC(D2CLIENT, RecvCommand08, void, __fastcall, (BYTE* cmdbuf), 0x12310) //1.10
|
||||
//
|
||||
////034C10 6F634C10 10006 DRLG_InitLevel DRLGLevel* pLevel
|
||||
////usually called if pLevel->pRoomFirst returned by #10005 is null
|
||||
////Unique stdcall (DRLGLevel* pLevel) __stdcall DRLG_InitLevel(DRLGLevel* pLevel)
|
||||
////6F634C10 DRLG_InitLevel 6F634C10 __stdcall DRLG_InitLevel(DRLGLevel* pLevel)
|
||||
//D2FUNC(D2COMMON, InitDrlgLevel, void, __stdcall, (DrlgLevel* drlglevel), -10006)
|
||||
//
|
||||
////0349A0 6F6349A0 10005 DRLG_Get/InitLevelStructure DRLGMisc* pMisc int nLevel
|
||||
////Unique stdcall (DRLGMisc* pMisc, int nLevel)
|
||||
////__stdcall DRLG_Get/InitLevelStructure(DRLGMisc* pMisc, int nLevel)
|
||||
////6F6349A0 DRLG_Get/InitLevelStructure 6F6349A0
|
||||
////__stdcall DRLG_Get/InitLevelStructure(DRLGMisc* pMisc, int nLevel)
|
||||
//D2FUNC(D2COMMON, GetDrlgLevel, DrlgLevel*, __stdcall, (DrlgMisc *drlgmisc, DWORD levelno), -10005)
|
||||
//
|
||||
////0318F0 6F6318F0 10626 DATA_TBL_GetObjectRecord DWORD nObject
|
||||
////Unique stdcall (DWORD nObject) __stdcall DATA_TBL_GetObjectRecord(DWORD nObject)
|
||||
////6F6318F0 DATA_TBL_GetObjectRecord 6F6318F0 __stdcall DATA_TBL_GetObjectRecord(DWORD nObject)
|
||||
//D2FUNC(D2COMMON, GetObjectTxt, ObjectTxt*, __stdcall, (DWORD objno), -10626)
|
||||
//
|
||||
////D2FUNC(D2CLIENT, NewAutomapCell, AutomapCell*, __fastcall, (), 0x6FAC5700) // 1.09
|
||||
////6FACBA40 /$ 8B0D 9C19BB6F mov ecx,dword ptr ds:[D2Client.6FBB199C] // 1.10
|
||||
//D2FUNC(D2CLIENT, NewAutomapCell, AutomapCell*, __fastcall, (), 0x2BA40) // 1.10
|
||||
//
|
||||
////D2FUNC(D2CLIENT, AddAutomapCell, void, __fastcall, (AutomapCell *cell, AutomapCell **node), 0x6FAC6A40) //1.09
|
||||
////6FACCD50 /$ 83EC 08 sub esp,8 // 1.10
|
||||
//D2FUNC(D2CLIENT, AddAutomapCell, void, __fastcall, (AutomapCell *cell, AutomapCell **node), 0x2CD50) //1.10
|
||||
//
|
||||
//
|
||||
//D2ASMPTR(D2CLIENT, InitAutomapLayerStart, 0x2BBC4)
|
||||
//D2ASMPTR(D2CLIENT, InitAutomapLayerEnd, 0x2BC8A)
|
||||
//
|
||||
//D2FUNC(D2CLIENT, SetAutomapParty, void, __fastcall, (DWORD flag), 0x2B9F0)
|
||||
//D2FUNC(D2CLIENT, SetAutomapNames, void, __fastcall, (DWORD flag), 0x2BA20)
|
||||
//
|
||||
////D2ASMPTR(D2CLIENT, InitAutomapLayer, DLLBASE_D2CLIENT+0x2BBC4)
|
||||
////D2ASMPTR(D2CLIENT, InitAutomapLayer_END, DLLBASE_D2CLIENT+0x2BC8A)
|
||||
//
|
||||
////void __declspec(naked) __fastcall InitAutomapLayer(DWORD levelno)
|
||||
////{
|
||||
//// __asm {
|
||||
//// //ecx = level no
|
||||
//// lea eax, [eax]
|
||||
//// mov ecx, eax
|
||||
//// mov eax, D2CLIENT_InitAutomapLayer_END
|
||||
//// mov byte ptr [eax], 0xC3
|
||||
//// pushad
|
||||
//// xor ebp, ebp
|
||||
//// call D2CLIENT_InitAutomapLayer
|
||||
//// popad
|
||||
//// mov byte ptr [eax],0x8b
|
||||
//// ret
|
||||
//// }
|
||||
////}
|
||||
//
|
||||
////#define D2CLIENT_pDrlgAct (*p_D2CLIENT_pDrlgAct)
|
||||
////#define D2CLIENT_pPlayerUnit (*p_D2CLIENT_pPlayerUnit)
|
||||
////
|
||||
////#define D2CLIENT_pAutomapLayer (*p_D2CLIENT_pAutomapLayer)
|
||||
////#define D2CLIENT_fAutomapSize (*p_D2CLIENT_fAutomapSize)
|
||||
////#define D2CLIENT_fAutomapOn (*p_D2CLIENT_fAutomapOn)
|
||||
////#define D2CLIENT_xAutomap (*p_D2CLIENT_xAutomap)
|
||||
////#define D2CLIENT_yAutomap (*p_D2CLIENT_yAutomap)
|
||||
//
|
||||
////#define D2CLIENT_xMapShake (*p_D2CLIENT_xMapShake)
|
||||
////#define D2CLIENT_yMapShake (*p_D2CLIENT_yMapShake)
|
||||
////#define D2COMMON_nWeaponsTxt (*p_D2COMMON_nWeaponsTxt)
|
||||
////#define D2COMMON_nArmorTxt (*p_D2COMMON_nArmorTxt)
|
||||
////#define D2CLIENT_nQuestPage (*p_D2CLIENT_nQuestPage)
|
||||
////#define D2CLIENT_nDifficulty (*p_D2CLIENT_nDifficulty)
|
||||
////#define D2COMMON_aTreasureClasses (*p_D2COMMON_aTreasureClasses)
|
||||
//
|
||||
//
|
||||
////D2VAR(D2CLIENT, pDrlgAct, DrlgAct*, 0x107984) // 0x6FBA7984
|
||||
////D2VAR(D2CLIENT, pPlayerUnit, UnitAny*, 0x11C200) // 0x6FBBC200
|
||||
////D2VAR(D2CLIENT, pAutomapLayer, AutomapLayer*, 0x1119A4) //0x6FBB19A4
|
||||
////D2VAR(D2CLIENT, fAutomapSize, DWORD, 0x111990) //0x6FBB1990
|
||||
////D2VAR(D2CLIENT, fAutomapOn, DWORD, 0x11A6D0) // 0x6FBBA6D0
|
||||
////D2VAR(D2CLIENT, xAutomap, int, 0x1119C8) // 0x6FBB19C8
|
||||
////D2VAR(D2CLIENT, yAutomap, int, 0x1119CC) // 0x6FBB19CC
|
||||
//
|
||||
////D2VAR(D2CLIENT, pAutomapCellsHeader, AutomapCellNode *, 0x1119A0)
|
||||
////D2VAR(D2CLIENT, pDrlgAct, DrlgAct, 0x107984) // 0x6FBA7984
|
||||
////D2VAR(D2CLIENT, pPlayerUnit, UnitAny, 0x11C200) // 0x6FBBC200
|
||||
////D2VAR(D2CLIENT, pAutomapLayer, AutomapLayer, 0x1119A4) //0x6FBB19A4 AutomapLayer*
|
||||
////D2VAR(D2CLIENT, fAutomapSize, DWORD, 0x111990) //0x6FBB1990
|
||||
////D2VAR(D2CLIENT, fAutomapOn, DWORD, 0x11A6D0) // 0x6FBBA6D0
|
||||
////D2VAR(D2CLIENT, xAutomap, int, 0x1119C8) // 0x6FBB19C8
|
||||
////D2VAR(D2CLIENT, yAutomap, int, 0x1119CC) // 0x6FBB19CC
|
||||
//
|
||||
////D2VAR(D2CLIENT, pAutomapCellsHeader, AutomapCellNode *, 0x1119A0)
|
||||
////D2VAR(D2CLIENT, pDrlgAct, DrlgAct, 0x107984) // 0x6FBA7984
|
||||
////D2VAR(D2CLIENT, pPlayerUnit, UnitAny, 0x11C200) // 0x6FBBC200
|
||||
////D2VAR(D2CLIENT, pAutomapLayer, AutomapLayer, 0x1119A4) //0x6FBB19A4 AutomapLayer*
|
||||
////D2VAR(D2CLIENT, fAutomapSize, DWORD, 0x111990) //0x6FBB1990
|
||||
////D2VAR(D2CLIENT, fAutomapOn, DWORD, 0x11A6D0) // 0x6FBBA6D0
|
||||
////D2VAR(D2CLIENT, xAutomap, int, 0x1119C8) // 0x6FBB19C8
|
||||
////D2VAR(D2CLIENT, yAutomap, int, 0x1119CC) // 0x6FBB19CC
|
||||
//D2VARPTR(D2CLIENT, pDrlgAct, DrlgAct *, 0x107984)
|
||||
//D2VARPTR(D2CLIENT, pAutomapCellsHeader, AutomapCellNode *, 0x1119A0)
|
||||
//D2VARPTR(D2CLIENT, pAutomapLayer, AutomapLayer *, 0x1119A4)
|
||||
//D2VARPTR(D2CLIENT, fAutomapOn, DWORD, 0x11A6D0)
|
||||
//D2VARPTR(D2CLIENT, ptAutomap, POINT, 0x1119C8)
|
||||
//D2VARPTR(D2CLIENT, ptOffset, POINT, 0x1119D8) // need to confirm
|
||||
////D2VARPTR(D2CLIENT, nPtDivisor, int, DLLBASE_D2CLIENT+0x000D7BC0)
|
||||
////D2VARPTR(D2COMMON, nWeaponsTxt, int, DLLBASE_D2COMMON+0x000AA2EC)
|
||||
////D2VARPTR(D2COMMON, nArmorTxt, int, DLLBASE_D2COMMON+0x000AA2F4)
|
||||
////D2VARPTR(D2COMMON, nUnknownVar_1, int, DLLBASE_D2COMMON+0x000AA2FC)
|
||||
////D2VARPTR(D2CLIENT, xMapShake, int, DLLBASE_D2CLIENT+0x10F8C8)
|
||||
////D2VARPTR(D2CLIENT, yMapShake, int, DLLBASE_D2CLIENT+0x10C20C)
|
||||
////D2VARPTR(D2CLIENT, yPosition, int, DLLBASE_D2CLIENT+0x1119FC)
|
||||
//
|
||||
//#define D2CLIENT_pDrlgAct (*p_D2CLIENT_pDrlgAct)
|
||||
//#define D2CLIENT_pAutomapLayer (*p_D2CLIENT_pAutomapLayer)
|
||||
//#define D2CLIENT_pAutomapCellsHeader (*p_D2CLIENT_pAutomapCellsHeader)
|
||||
//#define D2CLIENT_fAutomapOn (*p_D2CLIENT_fAutomapOn)
|
||||
//#define D2CLIENT_ptAutomap (*p_D2CLIENT_ptAutomap)
|
||||
//#define D2CLIENT_ptOffset (*p_D2CLIENT_ptOffset)
|
||||
////#define D2CLIENT_xMapShake (*p_D2CLIENT_xMapShake)
|
||||
////#define D2CLIENT_yMapShake (*p_D2CLIENT_yMapShake)
|
||||
//
|
||||
//D2FUNCPTR(D2GFX, DrawAutomapCell, void __stdcall, (CellContext *context, DWORD xpos, DWORD ypos, RECT *cliprect, DWORD bright), -0x275D)
|
||||
//D2FUNCPTR(D2GFX, DrawAutomapCell2, void __stdcall, (CellContext *context, DWORD xpos, DWORD ypos, DWORD bright2, DWORD bright, BYTE *coltab), -0x2758)
|
||||
//D2FUNCPTR(D2CMP, InitCellFile, void __stdcall, (void *cellfile, CellFile **outptr, char *srcfile, DWORD lineno, DWORD filever, char *filename), -0x2728)
|
||||
//D2FUNCPTR(D2CMP, DeleteCellFile, void __stdcall, (CellFile *cellfile), -0x2730)
|
||||
//D2FUNCPTR(D2WIN, SetTextSize, DWORD __fastcall, (DWORD size), -0x278F)
|
||||
//D2FUNCPTR(D2WIN, GetTextWidthFileNo, DWORD __fastcall, (wchar_t *str, DWORD* width, DWORD* fileno), -0x2793)
|
||||
//D2FUNCPTR(D2WIN, DrawText, void __fastcall, (wchar_t *str, int xpos, int ypos, DWORD col, DWORD unknown), -0x2785)
|
||||
////D2FUNCPTR(D2GFX, DrawLine, void __stdcall, (int x1, int y1, int x2, int y2, DWORD col, DWORD unknown), -0x2749)
|
||||
//D2FUNCPTR(D2CLIENT, SetExitApp, void __fastcall, (DWORD flag), 0x2040)
|
||||
//D2FUNCPTR(D2GFX, GetScreenSize, DWORD __stdcall, (), -0x2715)
|
||||
//D2ASMPTR(D2CLIENT, OverrideShrinePatch_ORIG, 0x10F990)
|
||||
//D2ASMPTR(D2COMMON, GetLevelIdFromRoom, -0x2749)
|
||||
//D2FUNCPTR(D2COMMON, GetLevelTxt, LevelTxt * __stdcall, (DWORD levelno), -0x2987)
|
||||
//D2FUNCPTR(D2CLIENT, GetAutomapSize, DWORD __stdcall, (), 0x2F820)
|
||||
//
|
||||
//D2FUNCPTR(D2CLIENT, Interact, void __fastcall, (UINT8 byte1, UINT8 byte2, UINT8 byte3), 0xDA40) // 0x13 0x2 0x13 stash // Interact
|
||||
//
|
||||
//D2FUNC(D2GAME, SetInteractionInfo_8D840, void, __stdcall, (Unit* ptPlayer, int nInteractUnitType, DWORD dwIneractUnitGUID), 0x8D840)
|
||||
//D2FUNC(D2GAME, FuncStash_8C2E0, DWORD, __fastcall, (Unit* ptPlayer, char* file, DWORD cons_0x3C2), 0x8C2E0)
|
||||
//D2FUNC(D2GAME, OpenStash, void, __fastcall, (DWORD xz, UINT8 cons_0x10), 0xE0B0)
|
||||
//
|
||||
//D2FUNC(D2GAME, UpdateTraderItems, int, __fastcall, (DWORD p1, DWORD p2, DWORD p3, DWORD p4, DWORD p5), 0x99F40)
|
||||
|
||||
//eclass 98
|
||||
//0x39F10
|
||||
// end of file -------------------------
|
||||
// end of file -----------------------------------------------------------------
|
||||
#endif
|
4358
vendor/D2Template/D2TemplateStructs.h
vendored
Normal file
4358
vendor/D2Template/D2TemplateStructs.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
37
vendor/D2Template/D2TemplateVars.h
vendored
Normal file
37
vendor/D2Template/D2TemplateVars.h
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
#ifdef _D2VARS_H
|
||||
#define VAR(Type, Name) Type Name;
|
||||
#else
|
||||
#define VAR(Type, Name) extern Type Name;
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
* *
|
||||
* D2Vars.h *
|
||||
* *
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); *
|
||||
* you may not use this file except in compliance with the License. *
|
||||
* You may obtain a copy of the License at *
|
||||
* *
|
||||
* http://www.apache.org/licenses/LICENSE-2.0 *
|
||||
* *
|
||||
* Unless required by applicable law or agreed to in writing, software *
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, *
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.*
|
||||
* See the License for the specific language governing permissions and *
|
||||
* limitations under the License. *
|
||||
* *
|
||||
*---------------------------------------------------------------------------*
|
||||
* *
|
||||
* https://github.com/olivier-verville/D2Template *
|
||||
* *
|
||||
* This file is used to declare your own global variables to use *
|
||||
* within your code. These variables can be used anywhere in your code *
|
||||
* *
|
||||
*****************************************************************************/
|
||||
|
||||
VAR(DWORD, SampleVariable1)
|
||||
VAR(void*, SampleVariable2)
|
||||
VAR(char, SampleVariable3[256])
|
||||
|
||||
// end of file ---------------------------------------------------------------
|
||||
#undef _D2VARS_H
|
Reference in New Issue
Block a user