// ================================================== //
// # Tibia Client v7.6 Edited # //
// # IAT Group # //
// ================================================== //
// # all rights reserved by HappyDay # //
// # (c)2007 IAT group # //
// ================================================== //
#include "StdAfx.h"
#include "Fixes.h"
#include "Utilits.h"
#include "Configs.h"
#include "User.h"
cFixes Fixes;
cFixes::cFixes(){}
cFixes::~cFixes(){}
DWORD Dlg;
__declspec(naked) void NPCWindow()
{
Dlg = 0;
_asm
{
MOV EDI,GetNumber
CALL EDI
MOV DWORD PTR SS:[EBP-0xBC],EAX
LEA ECX,DWORD PTR SS:[EBP-0x9C]
MOV EDI,GetToken
CALL EDI
MOV DWORD PTR SS:[EBP-0xA0],EAX
LEA ECX,DWORD PTR SS:[EBP-0x9C]
MOV EDI,GetNumber
CALL EDI
MOV Dlg,EAX
MOV EDI,NPCWindowMod_Exit1
JMP EDI
}
}
void cFixes::ASMFixes()
{
Configs.LoadFixes();
Utilits.SetNop(0x******,27); // CipSoft Protocol Error FIX
Utilits.SetByte(0x******,0xFF); // CipSoft Invalid Value FIX
Utilits.SetByte(0x******,0x0C); //
Utilits.SetByte(0x******,0xC9); //
Utilits.SetByte(0x******,0x8A); //
/*
CipSoft mistake, minimap draw error. Rarely, but that cause client crush.
old way to fix them - delete all stored map files. Now, we are fix incorrect map files.
*/
BYTE FixMinimapDraw[] = {0x**, 0x1A, 0x90, 0x90, 0x90, 0x90,
0x90, 0x**, 0x**, 0x90, 0x**, 0x90,
0x90, 0x90, 0x**, 0x**, 0x90, 0x90,
0x**, 0x90, 0x90, 0x90, 0x00, 0x00};
memcpy((int*)0x****02D , FixMinimapDraw , sizeof(FixMinimapDraw));
}