mirror of
https://github.com/dashr9230/SA-MP.git
synced 2026-10-11 01:38:17 +08:00
126 lines
2.8 KiB
C++
126 lines
2.8 KiB
C++
|
|
#include "main.h"
|
|
|
|
extern CGame *pGame;
|
|
extern D3DXMATRIX matView, matProj;
|
|
|
|
CUnkClass10::CUnkClass10(IDirect3DDevice9 *pD3DDevice)
|
|
{
|
|
m_pD3DDevice = pD3DDevice;
|
|
field_7C = 0;
|
|
field_113 = -1;
|
|
field_80 = 0;
|
|
field_84 = 0;
|
|
field_78 = 0;
|
|
field_A3 = 0;
|
|
field_A4 = 0;
|
|
field_A5 = 0;
|
|
field_A6 = 0;
|
|
field_A2 = 0;
|
|
field_88 = -1;
|
|
field_9E = GetTickCount();
|
|
|
|
D3DXCreateLine(pD3DDevice, &m_pD3DLine);
|
|
|
|
D3DXCreateFont(pD3DDevice, 22, 0, FW_NORMAL, 1, FALSE,
|
|
SYMBOL_CHARSET, OUT_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH, "SAMPAUX3", &m_pD3DFont1);
|
|
D3DXCreateFont(pD3DDevice, 28, 0, FW_NORMAL, 1, FALSE,
|
|
SYMBOL_CHARSET, OUT_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH, "SAMPAUX3", &m_pD3DFont2);
|
|
}
|
|
|
|
|
|
float CUnkClass10::FUNC_10071C20(D3DXVECTOR3 *pPos, D3DXVECTOR2 *pOut)
|
|
{
|
|
D3DXVECTOR3 In = *pPos;
|
|
D3DVIEWPORT9 Viewport;
|
|
D3DXVECTOR3 Out;
|
|
D3DXMATRIX matIdent;
|
|
|
|
m_pD3DDevice->GetViewport(&Viewport);
|
|
|
|
D3DXMatrixIdentity(&matIdent);
|
|
D3DXVec3Project(&Out, &In, &Viewport, &matProj, &matView, &matIdent);
|
|
|
|
pOut->x = Out.x;
|
|
pOut->y = Out.y;
|
|
|
|
return Out.z;
|
|
}
|
|
|
|
|
|
PCHAR CUnkClass10::FUNC_10071F90()
|
|
{
|
|
return "C";
|
|
}
|
|
|
|
// SAMPAUX3 glyph for the marker style in field_7C
|
|
PCHAR CUnkClass10::FUNC_10071FA0(int nIndex)
|
|
{
|
|
if(nIndex == 0)
|
|
{
|
|
if(field_7C == 0) return "6";
|
|
if(field_7C == 1) return "3";
|
|
if(field_7C == 2) return "9";
|
|
}
|
|
else if(nIndex == 1)
|
|
{
|
|
if(field_7C == 0) return "7";
|
|
if(field_7C == 1) return "4";
|
|
if(field_7C == 2) return "A";
|
|
}
|
|
else if(nIndex == 2)
|
|
{
|
|
if(field_7C == 0) return "8";
|
|
if(field_7C == 1) return "5";
|
|
if(field_7C == 2) return "B";
|
|
}
|
|
|
|
return "0";
|
|
}
|
|
|
|
|
|
void CUnkClass10::FUNC_10072040(RECT *pRect, POINT *pPoint)
|
|
{
|
|
pRect->left = pPoint->x - field_0 / 2;
|
|
pRect->right = pRect->left + field_0;
|
|
pRect->top = pPoint->y - field_4 / 2;
|
|
pRect->bottom = pRect->top + field_4;
|
|
}
|
|
|
|
// picks the hovered cell out of the seven hit rects
|
|
void CUnkClass10::FUNC_100720A0()
|
|
{
|
|
POINT point;
|
|
GetCursorPos(&point);
|
|
ScreenToClient(pGame->GetMainWindowHwnd(), &point);
|
|
|
|
if(!field_84) field_113 = -1;
|
|
else if(!pGame->field_61) field_113 = -1;
|
|
else if(PtInRect(&field_8[0], point)) field_113 = 0;
|
|
else if(PtInRect(&field_8[1], point)) field_113 = 1;
|
|
else if(PtInRect(&field_8[2], point)) field_113 = 2;
|
|
else if(PtInRect(&field_8[3], point)) field_113 = 3;
|
|
else if(PtInRect(&field_8[4], point)) field_113 = 4;
|
|
else if(PtInRect(&field_8[5], point)) field_113 = 5;
|
|
else field_113 = PtInRect(&field_8[6], point) ? 10 : -1;
|
|
}
|
|
|
|
void CUnkClass10::FUNC_100721F0(int nStyle)
|
|
{
|
|
if(field_78 == 1 && nStyle == 2)
|
|
nStyle = 0;
|
|
|
|
field_7C = nStyle;
|
|
}
|
|
|
|
BOOL CUnkClass10::FUNC_100723C0()
|
|
{
|
|
RECT rect;
|
|
GetClientRect(pGame->GetMainWindowHwnd(), &rect);
|
|
|
|
field_A7 = (rect.right - rect.left) / 2;
|
|
field_AB = (rect.bottom - rect.top) / 2;
|
|
|
|
return SetCursorPos(field_A7, field_AB);
|
|
}
|