#include "stdafx.h"
#include "MiniMap.h"
#include "Import.h"
#include "Util.h"
#include "Offset.h"
#include "User.h"
#include "Interface.h"
#include "Defines.h"
#include "Common.h"
#include "MiniMapInfo.h"
#include "Central.h"
#include "WindowsStruct.h"
#include "InfoLog.h"
#include "PrintPlayer.h"
CMinimap gRenderMap;
CMinimap::CMinimap()
{
this->DataMap.ModelID = -1;
this->DataMap.XSW_Minimap_Frame = 486; //-- Minimap_FrameX
this->DataMap.YSW_Minimap_Frame = 234; //-- Minimap_FrameY
this->DataMap.XSW_Minimap = 510; //-- MiniMapX
this->DataMap.YSW_Minimap = 265; //265; //-- MiniMapY
this->DataMap.XSW_Time_Frame = 506; //-- Time_FrameX
this->DataMap.YSW_Time_Frame = 392; //-- Time_FrameY
this->DataMap.This_92 = 0;
this->DataMap.This_96 = 0;
this->DataMap.DropMoveUserX = 0; //-- DropMoveUserX
this->DataMap.DropMoveUserY = 0; //-- DropMoveUserY
this->DataMap.This_108;
this->DataMap.This_112;
this->DataMap.CurrentMoveX = 0.0; //-- CurrentMoveX
this->DataMap.CurrentMoveY = 0.0; //-- CurrentMoveY
this->DataMap.Scale = 1; //-- Scale
this->DataMap.TimerEventVK = 0; //-- Scale
this->DataMap.Alpha = 1.0f; //-- Alpha
}
CMinimap::~CMinimap()
{
}
//----- (0082ABA0)
char CMinimap::MapRender(int a1)
{
float DIRPointer;
lpViewObj ObjectPointer;
char result; // al@2
float blue; // ST30_4@3
float green; // ST2C_4@3
float v7; // ST78_4@3
float v8; // ST74_4@3
float v9; // ST20_4@12
float v10; // ST1C_4@12
float v11; // ST70_4@12
float v12; // ST6C_4@12
float v13; // ST10_4@12
float v14; // ST0C_4@12
float v15; // ST20_4@15
float v16; // ST1C_4@15
float v17; // ST68_4@15
float v18; // ST64_4@15
float v19; // ST10_4@15
float v20; // ST0C_4@15
int v21; // eax@17
int v22; // eax@19
float v23; // ST30_4@19
float v24; // ST60_4@19
int v25; // eax@19
float v26; // ST5C_4@19
float v27; // ST58_4@19
float v28; // ST54_4@22
float v29; // ST50_4@22
float v30; // ST4C_4@22
float v31; // ST48_4@22
int v32; // eax@23
int v33; // eax@23
float v34; // ST2C_4@23
float v35; // ST44_4@23
int v36; // eax@23
float v37; // ST30_4@23
float v38; // ST40_4@23
int v39; // eax@23
float v40; // ST30_4@23
float v41; // ST2C_4@23
float v42; // ST3C_4@23
float v43; // ST38_4@23
int v44; // [sp+78h] [bp-3Ch]@1
float v45; // [sp+7Ch] [bp-38h]@3
float v46; // [sp+88h] [bp-2Ch]@6
float v47; // [sp+8Ch] [bp-28h]@1
float v48; // [sp+90h] [bp-24h]@3
float v49; // [sp+94h] [bp-20h]@6
float v50; // [sp+98h] [bp-1Ch]@6
float v51; // [sp+9Ch] [bp-18h]@3
float v52; // [sp+A4h] [bp-10h]@3
float v53; // [sp+A8h] [bp-Ch]@3
signed int i; // [sp+ACh] [bp-8h]@3
int j; // [sp+ACh] [bp-8h]@17
int k; // [sp+ACh] [bp-8h]@20
float v57; // [sp+B0h] [bp-4h]@3
v44 = a1;
v47 = 45.0;
ObjectPointer = &*(ObjectPreview*)(*(DWORD *)0x7BC4F04);
DIRPointer = (double) 135.0f + ( 45 * abs((signed int)(ObjectPointer->m_Model.Angle.Z / 45.0)));
if ( *(BYTE *)(a1 + 13500) )
{
pSetBlend(1);
pDrawBarForm(0.0, 0.0, 640.0, 480.0, 0.45000002, 1);
pGLSwitch();
pSetBlend(1);
glColor4f(1.0, 1.0, 1.0, 1.0);
v53 = (double)*(signed int *)(oUserPreviewStruct + 172) / 256.0 * (double)*(signed int *)(a1 + 8 * *(DWORD *)(a1 + 124) + 80);
v48 = (double)*(signed int *)(oUserPreviewStruct + 176) / 256.0 * (double)*(signed int *)(a1 + 8 * *(DWORD *)(a1 + 124) + 76);
v52 = 0.65156251;
v45 = 1.0;
v57 = 35.0;
v51 = 6.0;
blue = (double)*(signed int *)(a1 + 8 * *(DWORD *)(a1 + 124) + 80);
green = (double)*(signed int *)(a1 + 8 * *(DWORD *)(a1 + 124) + 76);
v7 = (double)*(signed int *)(a1 + 8 * *(DWORD *)(a1 + 124) + 80) - v53;
v8 = (double)*(signed int *)(a1 + 8 * *(DWORD *)(a1 + 124) + 76) - v48;
//-- PINTA el Mapa
pDrawMapFull(32447, v8, v7, green, blue, v47);
//-- CICLO PARA PINTAR LOS NPC
for ( i = 0; i < 100 && (signed int)*(BYTE *)(v44 + 116 * i + 300) > 0; ++i )
{
v50 = (double)*(signed int *)(v44 + 116 * i + 304) / 256.0
* (double)*(signed int *)(v44 + 8 * *(DWORD *)(v44 + 124) + 80);
v46 = (double)*(signed int *)(v44 + 116 * i + 308) / 256.0
* (double)*(signed int *)(v44 + 8 * *(DWORD *)(v44 + 124) + 76);
v49 = (double)*(signed int *)(v44 + 116 * i + 312);
if ( *(BYTE *)(v44 + 116 * i + 300) == 1 )
{
if ( pMapNumber != 34 || (signed int)(unsigned __int8)0x986746A <= 0 || *(DWORD *)(v44 + 116 * i + 304) == 228 && *(DWORD *)(v44 + 116 * i + 308) == 48 && pMapNumber == 34 )
{
//-- PINTAMOS LOS NPC
v9 = (double)*(signed int *)(v44 + 8 * *(DWORD *)(v44 + 124) + 80);
v10 = (double)*(signed int *)(v44 + 8 * *(DWORD *)(v44 + 124) + 76);
v11 = (double)*(signed int *)(v44 + 8 * *(DWORD *)(v44 + 124) + 80) - v53;
v12 = (double)*(signed int *)(v44 + 8 * *(DWORD *)(v44 + 124) + 76) - v48;
v13 = (double)25;
v14 = (double)25;
pDrawMapObject(32452, v46, v50, v14, v13, v12, v11, v10, v9, v47, v49, 0.546875, 0.546875, i);
}
}
else if ( *(BYTE *)(v44 + 116 * i + 300) == 2 )
{
//-- PINTAMOS PORTAL
v15 = (double)*(signed int *)(v44 + 8 * *(DWORD *)(v44 + 124) + 80);
v16 = (double)*(signed int *)(v44 + 8 * *(DWORD *)(v44 + 124) + 76);
v17 = (double)*(signed int *)(v44 + 8 * *(DWORD *)(v44 + 124) + 80) - v53;
v18 = (double)*(signed int *)(v44 + 8 * *(DWORD *)(v44 + 124) + 76) - v48;
v19 = (double)30;
v20 = (double)30;
pDrawMapObject(32451, v46, v50, v20, v19, v18, v17, v16, v15, v47, v49, 0.546875, 0.546875, i + 100);
}
}
//-- PINTAMOS AL PERSONAJE
sub_637E80( 32450,
325.0,
230.0,
15.0,
15.0,
DIRPointer,
0.0,
0.0,
0.546875,
0.546875);
//v21 = pMakeColor(255, 255, 255, 255);
//RenderBitMapColored(32450, 325.0, 230.0, 15.0, 15.0, 0.0, 0.0, 0.546875, 0.546875, v21);
pGLSwitch();
glColor3f(1.0, 1.0, 1.0);
pSetBlend(false);
result = 1;
}
else
{
result = *(BYTE *)(a1 + 13500);
}
return result;
}
void DataMapLoad()
{
int v4; // [sp+Ch] [bp-Ch]@5
int v5; // [sp+10h] [bp-8h]@2
int Type;
int Multiplicador;
int Scalado;
Type = gRenderMap.DataMap.Scale;
Multiplicador = (( Type == 1 ) ? 1 : Type - 1 );
Scalado = (( Type == 1 ) ? 512 : 128 );
gRenderMap.DataMap.This_92 = *(DWORD *)(*(DWORD *)0x7BC4F04 + 172) / ((Type == 1) ? 0.5 : Type - 1 ); //-- X
gRenderMap.DataMap.This_96 = (256 - *(DWORD *)(*(DWORD *)0x7BC4F04 + 176)) / ((Type == 1) ? 0.5 : Type - 1 ); //-- Y
//-- X
if ( gRenderMap.DataMap.This_92 - ( Multiplicador << 6 ) <= 0 )
v5 = 0;
else
v5 = gRenderMap.DataMap.This_92 - ( Multiplicador << 6 );
gRenderMap.DataMap.This_108 = ( v5 >= Scalado ) ? Scalado : (v5 <= 0) ? 0: gRenderMap.DataMap.This_92 - ( Multiplicador << 6 );
//-- Y
if ( gRenderMap.DataMap.This_96 - ( Multiplicador << 6 ) <= 0 )
v4 = 0;
else
v4 = gRenderMap.DataMap.This_96 - ( Multiplicador << 6 );
gRenderMap.DataMap.This_112 = ( v4 >= Scalado ) ? Scalado : (v4 <= 0) ? 0: gRenderMap.DataMap.This_96 - ( Multiplicador << 6 );
//gRenderMap.DataMap.DropMoveUserX = gRenderMap.DataMap.XSW_Minimap + gRenderMap.DataMap.This_92 - 2 - gRenderMap.DataMap.This_108 - 2; //Minimapa abajo
//gRenderMap.DataMap.DropMoveUserY = gRenderMap.DataMap.YSW_Minimap + gRenderMap.DataMap.This_96 + 1 - gRenderMap.DataMap.This_112 + 1; //Minimapa abajo
gRenderMap.DataMap.DropMoveUserX = gRenderMap.DataMap.XSW_Minimap + gRenderMap.DataMap.This_92 - gRenderMap.DataMap.This_108; //Minimapa abajo
gRenderMap.DataMap.DropMoveUserY = gRenderMap.DataMap.YSW_Minimap + gRenderMap.DataMap.This_96 - gRenderMap.DataMap.This_112; //Minimapa abajo
gRenderMap.DataMap.CurrentMoveX = (double)gRenderMap.DataMap.This_108 / ((double) ((Type == 1) ? 512.0 : 256.0 ) / (double)Multiplicador );
gRenderMap.DataMap.CurrentMoveY = (double)gRenderMap.DataMap.This_112 / ((double) ((Type == 1) ? 512.0 : 256.0 ) / (double)Multiplicador );
}
void DataViewPortMapLoad()
{
int Model;
int Type;
float XNPC, YNPC;
Type = gRenderMap.DataMap.Scale;
for (int i = 0; i < 400; ++i )
{
Model = pGetPreviewStruct(pPreviewThis(), i);
if ( Model
&& *(BYTE *)(Model + 780)
&& Model != *(DWORD *)0x7BC4F04
&& (*(BYTE *)(Model + 800) == 1 || *(BYTE *)(Model + 800) == 2 || *(BYTE *)(Model + 800) == 4) )
{
if ( *(BYTE *)(Model + 800) == 4 && *(WORD *)(Model + 132) != 249 )
{
XNPC = (double) gRenderMap.DataMap.XSW_Minimap + *(DWORD *)(Model + 172) / ((Type == 1) ? 0.5 : Type - 1 );
YNPC = (double) gRenderMap.DataMap.YSW_Minimap + (256 - *(DWORD *)(Model + 176)) / ((Type == 1) ? 0.5 : Type - 1 );
XNPC = XNPC - gRenderMap.DataMap.This_108 - 5;
YNPC = YNPC - gRenderMap.DataMap.This_112 - 5;
if( *(WORD *)(Model + 132) == 251 )
{
RenderBitMapColored(31466, XNPC, YNPC, 10.0, 10.0, 0.0, 0.0, 0.546875, 0.546875, pMakeColor(255, 255, 255, 255));
}
else if( *(WORD *)(Model + 132) == 255 || *(WORD *)(Model + 132) == 253 )
{
RenderBitMapColored(31467, XNPC, YNPC, 10.0, 10.0, 0.0, 0.0, 0.546875, 0.546875, pMakeColor(255, 255, 255, 255));
}
else if( *(WORD *)(Model + 132) == 240 ) //-- baul
{
RenderBitMapColored(31468, XNPC, YNPC, 10.0, 10.0, 0.0, 0.0, 0.546875, 0.546875, pMakeColor(255, 255, 255, 255));
}
else if( *(WORD *)(Model + 132) == 229 || *(WORD *)(Model + 132) == 235 || *(WORD *)(Model + 132) == 233 || *(WORD *)(Model + 132) == 237 ) //-- quest
{
RenderBitMapColored(31469, XNPC, YNPC, 10.0, 10.0, 0.0, 0.0, 0.546875, 0.546875, pMakeColor(255, 255, 255, 255));
}
else
{
RenderBitMapColored(32452, XNPC, YNPC, 10.0, 10.0, 0.0, 0.0, 0.546875, 0.546875, pMakeColor(255, 255, 255, 255));
}
if( pCheckMouseOver((int) XNPC, (int) YNPC, (int) 10, (int) 10) )
{
pDrawToolTip((int) XNPC, (int) YNPC - 10, (char *)(Model + 56));
}
}
}
}
}
int TimerEvent;
void Interface::DrawMiniMap()
{
if(gRenderMap.DataMap.ModelID == -1)
{
return;
}
if (this->MiniMapCheck() || this->CheckMap()
|| !MiniMap || this->CheckWindow(FullMap)
|| this->CheckWindow(FriendList) || gInterface.CheckWindow(SkillTree)
|| gInterface.CheckWindow(CashShop) || gInterface.CheckWindow(FastMenu))
{
return;
}
float DIRPointer;
lpViewObj ObjectPointer;
char Cord[256];
float v8; // ST34_4@1
float v9; // ST30_4@1
float v10; // ST08_4@1
float v11; // ST04_4@1
int Type;
int Multiplicador;
int Scalado;
ObjectPointer = &*(ObjectPreview*)(*(DWORD *)0x7BC4F04);
DIRPointer = 180 + ( 45 * abs((signed int)(ObjectPointer->m_Model.Angle.Z / 45.0)));
Type = gRenderMap.DataMap.Scale;
DataMapLoad();
v8 = (double) (( Type == 1 ) ? 0.25f : (( Type == 2 ) ? 0.5f : 1.0));
v9 = (double) (( Type == 1 ) ? 0.25f : (( Type == 2 ) ? 0.5f : 1.0));
v10 = (double) gRenderMap.DataMap.YSW_Minimap;
v11 = (double) gRenderMap.DataMap.XSW_Minimap;
//-- Fondo
RenderBitmap(31464, v11 - 1, v10 + 6, 125, 125, 0.3699999452, 0.0625, 0.5779999495, 0.2889999151, 1, 1, 0.0); //Minimapa abajo
//-- Mapa
//RenderBitmap(31462, v11 + 14, v10 + 18, 95, 100, gRenderMap.DataMap.CurrentMoveX, gRenderMap.DataMap.CurrentMoveY, v9, v8, 1, 1, 0.0); //Minimapa abajo
RenderBitmap(31462, v11 + 14, v10 + 18, 93, 100, gRenderMap.DataMap.CurrentMoveX, gRenderMap.DataMap.CurrentMoveY, v9, v8, 1, 1, gRenderMap.DataMap.Alpha); //Minimapa abajo
/*//-- Cabezera
RenderBitmap(31463, v11, v10 - 23, 120.0, 20.0, 0.3259999454, 0.00249999878, 0.6679999232, 0.04399995133, 1, 1, 0.0); //Minimapa abajo*/
/*//-- Titulo
pSetFont(pTextThis(), (int)pFontBold);
wsprintf(Cord, "%s ( %d , %d )", ((World >= 82 && World <= 100) ? pGetTextLine(pTextLineThis, (3810 + World - 82)) : pMapName(World)), ObjectPointer->MapPosX, ObjectPointer->MapPosY);
pSetBackgroundTextColor(pTextThis(), 0, 0, 0, 0);
pSetTextColor(pTextThis(), 240, 240, 240, 255);
pDrawText(pTextThis(), v11 + 35, v10 - 17, Cord, 148.0, 0, (LPINT)1, 0); //Minimapa abajo*/
//-- Usuario
if ( gProtect.m_MainInfo.CustomInterfaceType == 1 || gProtect.m_MainInfo.CustomInterfaceType == 2 )
{ //Puntero jugador clasico para 97/99 (Punto amarillo)
/*pSetBlend(true);
glColor4f(1.0, 1.0, 0.0, gRenderMap.DataMap.Alpha);
pDrawBarForm((double)gRenderMap.DataMap.DropMoveUserX, (double)gRenderMap.DataMap.DropMoveUserY, 4.0, 4.0, 0.0, 0);
pGLSwitch();*/
//Puntero jugador ex700 para 97/99
sub_637E80( 32450,
(double)gRenderMap.DataMap.DropMoveUserX,
(double)gRenderMap.DataMap.DropMoveUserY,
10.0,
10.0,
DIRPointer,
0.0,
0.0,
0.546875,
0.546875);
}
else
{
sub_637E80( 32450,
(double)gRenderMap.DataMap.DropMoveUserX,
(double)gRenderMap.DataMap.DropMoveUserY,
10.0,
10.0,
DIRPointer,
0.0,
0.0,
0.546875,
0.546875);
}
float JCPartyCoordX;
float JCPartyCoordY;
for(int i = 0; i < pPartyMemberCount ; i++)
{
if( !strcmp(pGetStrutParty( i ).Name, pGetUserName) )
{
continue;
}
JCPartyCoordX = (double) gRenderMap.DataMap.XSW_Minimap + gMiniMap.gPartyInfo[ i ].x / ((Type == 1) ? 0.5 : Type - 1 );
JCPartyCoordY = (double) gRenderMap.DataMap.YSW_Minimap + (256 - gMiniMap.gPartyInfo[ i ].y ) / ((Type == 1) ? 0.5 : Type - 1 );
JCPartyCoordX = JCPartyCoordX - gRenderMap.DataMap.This_108 - 5;
JCPartyCoordY = JCPartyCoordY - gRenderMap.DataMap.This_112 - 5;
/*RenderBitMapColored(61520, JCPartyCoordX, JCPartyCoordY, 10.0, 10.0, 0.0, 0.0, 0.546875, 0.546875, pMakeColor(255, 255, 255, gRenderMap.DataMap.Alpha * 255));*/
}
EnableAlphaTest(1);
glColor4f(1.0, 1.0, 1.0, gRenderMap.DataMap.Alpha);
DataViewPortMapLoad();
int textAlpha;
if ( gProtect.m_MainInfo.CustomInterfaceType == 1 || gProtect.m_MainInfo.CustomInterfaceType == 2 )
{
//Interface minimapa 97/99 original
/*pSetBlend(true);
glColor4f(1.0, 1.0, 1.0, gRenderMap.DataMap.Alpha);
pDrawGUI(31608, gRenderMap.DataMap.XSW_Minimap_Frame, gRenderMap.DataMap.YSW_Minimap_Frame, 154.0, 162.0);
pDrawGUI(31609, gRenderMap.DataMap.XSW_Time_Frame, gRenderMap.DataMap.YSW_Time_Frame, 134.0, 37.0);
pGLSwitch();*/
if(CheckButtonPressed( 618, 240, 15, 15 ))
{
PlayBuffer(25, 0, 0);
if (GetTickCount() >= TimerEvent + 200)
{
if ( gRenderMap.DataMap.Scale == 1 )
{
gRenderMap.DataMap.Scale = 2;
}
else if ( gRenderMap.DataMap.Scale == 2 )
{
gRenderMap.DataMap.Scale = 3;
}
else if ( gRenderMap.DataMap.Scale == 3 )
{
gRenderMap.DataMap.Scale = 1;
}
TimerEvent = GetTickCount();
}
}
if(CheckButtonPressed( 546, 239, 35, 20 ))
{
PlayBuffer(25, 0, 0);
if (GetTickCount() >= TimerEvent + 200)
{
if ( gRenderMap.DataMap.Alpha == 1.0 )
{
gRenderMap.DataMap.Alpha = (double) 0.90f;
}
else if ( gRenderMap.DataMap.Alpha == 0.90f )
{
gRenderMap.DataMap.Alpha = (double)0.80;
}
else if ( gRenderMap.DataMap.Alpha == 0.80f )
{
gRenderMap.DataMap.Alpha = (double)0.70f;
}
else
{
gRenderMap.DataMap.Alpha = (double)1.0f;
}
TimerEvent = GetTickCount();
}
}
//Opacidad para Interface 97/99 original
/*if ( gRenderMap.DataMap.Alpha == 1.0 )
{
textAlpha = 100;
}
else if ( gRenderMap.DataMap.Alpha == 0.90f )
{
textAlpha = 90;
}
else if ( gRenderMap.DataMap.Alpha == 0.80f )
{
textAlpha = 80;
}
else
{
textAlpha = 70;
}*/
}
pGLSwitch();
EnableAlphaTest(0);
glColor4f(1.0, 1.0, 1.0, 1.0);
//Menu Opacidad Interface 97/99 original
/*if ( gProtect.m_MainInfo.CustomInterfaceType == 1 || gProtect.m_MainInfo.CustomInterfaceType == 2 )
{
char Info[20];
wsprintf(Info, "%d", textAlpha);
pSetBackgroundTextColor(pTextThis(), 0, 0, 0, 0);
pSetTextColor(pTextThis(), 240, 240, 240, 255);
pDrawText(pTextThis(), 546, 245, Info, 35, 0, (LPINT)3, 0);
}*/
//-- Carcasa Mapa
//RenderBitmap(31465, v11 + 0, v10 + 6, 120, 120, 0.01299999747, 0.02999999747, 0.3105553985, 0.6109998822, 1, 1, 0.0); //Minimapa abajo
RenderBitmap(31463, v11 - 1, v10 + 6, 124, 124, 0.3699999452, 0.0625, 0.5779999495, 0.2889999151, 1, 1, 0.0); //Minimapa abajo
int x1, y1, w1, h1;
//-- Boton Alejar
x1 = v11 + 53; //Minimapa abajo
y1 = v10 + 113; //Minimapa abajo
w1 = 18;
h1 = 18;
RenderBitmap(31463, x1 - 5, y1 - 3, 26, 26, 0.8360000253, 0.4990000129, 0.1519999206, 0.073999919, 1, 1, 0.0);
if(pCheckMouseOver( x1, y1, w1, h1 ))
{
if( *(BYTE*)0x8793386 )
{
RenderBitmap(31463, x1, y1, 18.29999924, 18.29999924, 0.2499999553, 0.43160009804, 0.1219998896, 0.06599189341, 1, 1, 0.0);
PlayBuffer(25, 0, 0);
if( GetTickCount() >= gRenderMap.DataMap.TimerEventVK + 200 )
{
if ( gRenderMap.DataMap.Scale == 3 )
{
gRenderMap.DataMap.Scale = 2;
}
else if ( gRenderMap.DataMap.Scale == 2 )
{
gRenderMap.DataMap.Scale = 1;
}
gRenderMap.DataMap.TimerEventVK = GetTickCount();
}
}
else
{
RenderBitmap(31463, x1, y1, 18.29999924, 18.29999924, 0.1239999682, 0.43160009804, 0.1219998896, 0.06599189341, 1, 1, 0.0); //0,3689999878 + 0,06260011024
}
}
else
{
RenderBitmap(31463, x1, y1, 18.29999924, 18.29999924, 0.0, 0.43160009804, 0.1219998896, 0.06599189341, 1, 1, 0.0);
}
//-- Boton Acercar
x1 = v11 + 90; //Minimapa abajo
y1 = v10 + 100; //Minimapa abajo
//-- Carcaza Boton
RenderBitmap(31463, x1 - 5, y1 - 3, 26, 26, 0.8360000253, 0.4990000129, 0.1519999206, 0.073999919, 1, 1, 0.0);
if(pCheckMouseOver( x1, y1, w1, h1 ))
{
if( *(BYTE*)0x8793386 )
{
RenderBitmap(31463, x1, y1, 18.29999924, 18.29999924, 0.2499999553, 0.3689999878, 0.1219998896, 0.06599189341, 1, 1, 0.0);
PlayBuffer(25, 0, 0);
if( GetTickCount() >= gRenderMap.DataMap.TimerEventVK + 200 )
{
if ( gRenderMap.DataMap.Scale == 1 )
{
gRenderMap.DataMap.Scale = 2;
}
else if ( gRenderMap.DataMap.Scale == 2 )
{
gRenderMap.DataMap.Scale = 3;
}
gRenderMap.DataMap.TimerEventVK = GetTickCount();
}
}
else
{
RenderBitmap(31463, x1, y1, 18.29999924, 18.29999924, 0.1239999682, 0.3689999878, 0.1219998896, 0.06599189341, 1, 1, 0.0);
}
}
else
{
RenderBitmap(31463, x1, y1, 18.29999924, 18.29999924, 0.0, 0.3689999878, 0.1219998896, 0.06599189341, 1, 1, 0.0);
}
if(pCheckMouseOver( x1, y1, w1, h1 ))
{
if( *(BYTE*)0x8793386 )
{
PlayBuffer(25, 0, 0);
RenderBitmap(31463, x1, y1, 18.29999924, 18.29999924, 0.2499999553, !*(BYTE*)(*(DWORD*)(0x00E8CB7C) + 0x08) ? 0.3689999878 : 0.5570000539, 0.1219998896, 0.06599189341, 1, 1, 0.0);
}
else
{
RenderBitmap(31463, x1, y1, 18.29999924, 18.29999924, 0.1239999682, !*(BYTE*)(*(DWORD*)(0x00E8CB7C) + 0x08) ? 0.3689999878 : 0.5570000539, 0.1219998896, 0.06599189341, 1, 1, 0.0);
}
}
else
{
RenderBitmap(31463, x1, y1, 18.29999924, 18.29999924, 0.0, !*(BYTE*)(*(DWORD*)(0x00E8CB7C) + 0x08) ? 0.3689999878 : 0.5570000539, 0.1219998896, 0.06599189341, 1, 1, 0.0);
}
//-- Boton Config
x1 = v11 + 15; //Minimapa abajo
y1 = v10 + 102; //Minimapa abajo
//-- Carcaza Boton
RenderBitmap(31463, x1 - 5, y1 - 3, 26, 26, 0.8360000253, 0.4990000129, 0.1519999206, 0.073999919, 1, 1, 0.0);
if(pCheckMouseOver( x1, y1, w1, h1 ))
{
if( *(BYTE*)0x8793386 )
{
PlayBuffer(25, 0, 0);
RenderBitmap(31463, x1, y1, 18.29999924, 18.29999924, 0.2499999553, 0.682000539, 0.1219998896, 0.06599189341, 1, 1, 0.0);
}
else
{
RenderBitmap(31463, x1, y1, 18.29999924, 18.29999924, 0.1239999682, 0.682000539, 0.1219998896, 0.06599189341, 1, 1, 0.0);
}
}
else
{
RenderBitmap(31463, x1, y1, 18.29999924, 18.29999924, 0.0, 0.682000539, 0.1219998896, 0.06599189341, 1, 1, 0.0);
}
//-- Boton Camara
x1 = v11 + 15; //Minimapa abajo
y1 = v10 + 13; //Minimapa abajo
//-- Carcaza Boton
RenderBitmap(31463, x1 - 5, y1 - 3, 26, 26, 0.8360000253, 0.4990000129, 0.1519999206, 0.073999919, 1, 1, 0.0);
if(pCheckMouseOver( x1, y1, w1, h1 ))
{
if( *(BYTE*)0x8793386 )
{
PlayBuffer(25, 0, 0);
RenderBitmap(31463, x1, y1, 18.29999924, 18.29999924, 0.2499999553, 0.74460064924, 0.1219998896, 0.06599189341, 1, 1, 0.0);
}
else
{
RenderBitmap(31463, x1, y1, 18.29999924, 18.29999924, 0.1239999682, 0.74460064924, 0.1219998896, 0.06599189341, 1, 1, 0.0);
}
}
else
{
RenderBitmap(31463, x1, y1, 18.29999924, 18.29999924, 0.0, 0.74460064924, 0.1219998896, 0.06599189341, 1, 1, 0.0);
}
//-- Boton 3D
x1 = v11 + 90; //Minimapa abajo
y1 = v10 + 15; //Minimapa abajo
//-- Carcaza Boton
RenderBitmap(31463, x1 - 5, y1 - 3, 26, 26, 0.8360000253, 0.4990000129, 0.1519999206, 0.073999919, 1, 1, 0.0);
if(pCheckMouseOver( x1, y1, w1, h1 ))
{
if( *(BYTE*)0x8793386 )
{
PlayBuffer(25, 0, 0);
RenderBitmap(31463, x1, y1, 18.29999924, 18.29999924, 0.2499999553, 0.61940042876, 0.1219998896, 0.06599189341, 1, 1, 0.0);
}
else
{
RenderBitmap(31463, x1, y1, 18.29999924, 18.29999924, 0.1239999682, 0.61940042876, 0.1219998896, 0.06599189341, 1, 1, 0.0);
}
}
else
{
RenderBitmap(31463, x1, y1, 18.29999924, 18.29999924, 0.0, 0.61940042876, 0.1219998896, 0.06599189341, 1, 1, 0.0);
}
//-- Boton Star
x1 = v11 + 53; //Minimapa abajo
y1 = v10 - 1; //Minimapa abajo
//-- Carcaza Boton
RenderBitmap(31463, x1 - 5, y1 - 3, 26, 26, 0.8360000253, 0.4990000129, 0.1519999206, 0.073999919, 1, 1, 0.0);
if(pCheckMouseOver( x1, y1, w1, h1 ))
{
if( *(BYTE*)0x8793386 )
{
PlayBuffer(25, 0, 0);
RenderBitmap(31463, x1, y1, 18.29999924, 18.29999924, 0.2499999553, 0.4950000539, 0.1219998896, 0.06599189341, 1, 1, 0.0);
}
else
{
RenderBitmap(31463, x1, y1, 18.29999924, 18.29999924, 0.1239999682, 0.4950000539, 0.1219998896, 0.06599189341, 1, 1, 0.0);
}
}
else
{
RenderBitmap(31463, x1, y1, 18.29999924, 18.29999924, 0.0, 0.4950000539, 0.1219998896, 0.06599189341, 1, 1, 0.0);
}
//-- Boton Armadura
x1 = v11 - 5; //Minimapa abajo
y1 = v10 + 56; //Minimapa abajo
//-- Carcaza Boton
RenderBitmap(31463, x1 - 5, y1 - 3, 26, 26, 0.8360000253, 0.4990000129, 0.1519999206, 0.073999919, 1, 1, 0.0);
if(pCheckMouseOver( x1, y1, w1, h1 ))
{
if( *(BYTE*)0x8793386 )
{
PlayBuffer(25, 0, 0);
RenderBitmap(31463, x1, y1, 18.29999924, 18.29999924, 0.2499999553, 0.80720075948, 0.1219998896, 0.06599189341, 1, 1, 0.0);
}
else
{
RenderBitmap(31463, x1, y1, 18.29999924, 18.29999924, 0.1239999682, 0.80720075948, 0.1219998896, 0.06599189341, 1, 1, 0.0);
}
}
else
{
RenderBitmap(31463, x1, y1, 18.29999924, 18.29999924, 0.0, 0.80720075948, 0.1219998896, 0.06599189341, 1, 1, 0.0);
}
//-- Boton Batalla
x1 = v11 + 108; //Minimapa abajo
y1 = v10 + 56; //Minimapa abajo
//-- Carcaza Boton
RenderBitmap(31463, x1 - 5, y1 - 3, 26, 26, 0.8360000253, 0.4990000129, 0.1519999206, 0.073999919, 1, 1, 0.0);
if(pCheckMouseOver( x1, y1, w1, h1 ))
{
if( *(BYTE*)0x8793386 )
{
PlayBuffer(25, 0, 0);
RenderBitmap(31463, x1, y1, 18.29999924, 18.29999924, 0.2499999553, 0.93240097996, 0.1219998896, 0.06599189341, 1, 1, 0.0);
}
else
{
RenderBitmap(31463, x1, y1, 18.29999924, 18.29999924, 0.1239999682, 0.93240097996, 0.1219998896, 0.06599189341, 1, 1, 0.0);
}
}
else
{
RenderBitmap(31463, x1, y1, 18.29999924, 18.29999924, 0.0, 0.93240097996, 0.1219998896, 0.06599189341, 1, 1, 0.0);
}
}
bool MiniMapFileCheck1(int Map) // OK
{
if(Map - 1 == 30){return 0;}
char Path[64];
wsprintf(Path, "Data\\Custom\\Maps\\World%d.ozj", Map);
int File = rFileOpen(Path, "rb");
if ( File )
{
rFileClose(File);
return 1;
}
else
{
return 0;
}
}
void MiniMapLoad() // OK
{
if (pMapNumber < MAX_MINI_MAP && pMapNumber != 30)
{
char buff[32];
wsprintf(buff, "Custom\\Maps\\World%d.jpg", ( pMapNumber + 1 ));
if (MiniMapFileCheck1( pMapNumber + 1 ) != 0)
{
gRenderMap.DataMap.ModelID = 31462;
pLoadImage(buff, 31462, 0x2601, 0x2900, 1, 0);
}
else
{
gRenderMap.DataMap.ModelID = -1;
}
}
}
__declspec(naked) void LoadTexture()
{
static DWORD Addr2_JMP = 0x0062F8A6;
static DWORD Addr1_JMP = 0x0062F87C;
static DWORD Map = 0x007AA331;
_asm
{
MOV EAX, DWORD PTR SS:[EBP-0x78]
MOV Map, EAX
}
if ( Map == 74 || Map == 75 )
{
_asm
{
JMP[Addr2_JMP]
}
}
else
{
MiniMapLoad();
_asm
{
JMP[Addr1_JMP]
}
}
}
bool pDisabledMouseMAP(int x, int y, int w, int h)
{
return 0;
}
void CMinimap::MiniMapload()
{
SetCompleteHook(0xE8, 0x0082B772, &pDisabledMouseMAP); //ok
SetCompleteHook(0xE9, 0x0062F870, &LoadTexture); //ok
SetCompleteHook(0xE9, 0x0082ABA0, &CMinimap::MapRender);
}