Files
SA-MP/saco/unkclass10.cpp
T
2026-09-03 01:33:32 +07:00

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);
}