Posted by _GHOSTER_.
Note: I know this is ghetto, I could only find a way to draw 3 verts at a time, so I made it work
Code:
void Engine::DrawRectangle(float fX, float fY, float fW, float fH, DWORD dwColor)
{
if(!ValidGamePointers() || !ValidPointer(pDrawPrim))
return;
pDrawPrim->SetRenderMode(2);
SHAPE_RECT Rect;
for(int i = 0; i < 3; i++)
{
Rect.Right[i].rgba = dwColor;
Rect.Left[i].rgba = dwColor;
}
Rect.Right[0].pos = Vector(fX, fY, 1.0f);
Rect.Right[1].pos = Vector(fX + fW, fY, 1.0f);
Rect.Right[2].pos = Vector(fX+ fW, fY + fH, 1.0f);
Rect.Left[0].pos = Vector(fX, fY, 1.0f);
Rect.Left[1].pos = Vector(fX, fY + fH, 1.0f);
Rect.Left[2].pos = Vector(fX + fW, fY + fH, 1.0f);
pDrawPrim->DrawPrimitive(&Rect.Right, 1);
pDrawPrim->DrawPrimitive(&Rect.Left, 1);
}
Classes\Structs
Code:
class LTDrawPrim
{
public:
virtual void Function0();
virtual void Function1();
virtual void Function2();
virtual void Function3();
virtual void Function4();
virtual void Function5();
virtual void Function6();
virtual void Function7();
virtual void Function8();
virtual void Function9();
virtual void SetRenderMode(int mode);
virtual void Function11();
virtual void Function12();
virtual void Function13();
virtual void Function14();
virtual void Function15();
virtual void Function16();
virtual void Function17();
virtual void Function18();
virtual void Function19();
virtual void Function20();
virtual void Function21();
virtual void Function22();
virtual void Function23();
virtual void Function24();
virtual void Function25();
virtual void Function26();
virtual void Function27();
virtual void Function28();
virtual void Function29();
virtual void Function30();
virtual void Function31();
virtual void Function32();
virtual void DrawPrimitive(void* q, unsigned int count);
};
struct VERTS
{
Vector pos;
unsigned int rgba;
};
struct SHAPE_RECT
{
VERTS Right[3];
VERTS Left[3];
};
Code:
#define ADDR_DRAWPRIM 0x6DD078
pDrawPrim = *(LTDrawPrim**)ADDR_DRAWPRIM;
Enjoy or don't