Organner
06-04-2004, 01:42 PM
This code is better, please comment it :)
Credits:
gfreeman1 (drawing code)
panzer ( some ideas )
LanceVorgin (mouse)
/*
Put this code in ur opengl func. file
*/
extern Gui OGui;
float mainViewAngles[2];
POINT pt;
//Every 5 viewports or hudredraw
OGui.DrawGui();
//Every viewport
if(YOUR_GUI_ACTIVE)
{
GetCursorPos(&pt);
Settings.MouseX = (Settings.MouseX - (centerX - pt.x));
Settings.MouseY = (Settings.MouseY - (centerY - pt.y));
OGui.DrawGui();
pEngfuncs->SetViewAngles(mainViewAngles);
}
else
{
Settings.MouseX = centerX;
Settings.MouseY = centerY;
pEngfuncs->GetViewAngles(mainViewAngles);
}
//Gui.h
class Gui
{
public:
void DrawGui();
void InitMouse ();
void DrawPointer();
void DrawShadow( int x, int y, int width, int height, int reversed );
void DrawFrame( int x, int y, int width, int height, int r, int g, int b, int a );
};
class Windows
{
public:
void DrawBody( int number, int x, int y, int width, int height, int r, int g, int b, int a );
void DrawTitle( int number, int x, int y, int width, int height, int r, int g, int b, int a, char* title );
void DrawClosePoint( int number, int closeX, int closeY );
};
class Buttons
{
public:
void DrawButton( int number, int x, int y, int width, int height, int r, int g, int b, int a, char* label );
};
typedef struct{
char* title;
int x;
int y;
int height; // Wysokos
int width; // Szerokosc
int transparent;
int r;
int g;
int b;
int a;
int drawX;
int drawY;
int movepointX;
int movepointY;
int movepointHeight;
int movepointWidth;
int closepointX;
int closepointY;
int closepointHeight;
int closepointWidth;
bool active;
}gui_windows;
typedef struct{
int WindowsCount;
int ButtonsCount;
int InputsCount;
int FontWidth;
int FontHeight;
int MovePointHeight;
int ClosePointHeight;
int ClosePointWidth;
int TitleBarHeight;
int FreeSpace;
int ButtonPressed;
int WindowSelected;
int InputSelected;
int CorrectionX;
int CorrectionY;
int MouseX;
int MouseY;
}gui_settings;
extern gui_windows Window[10];
extern Gui OGui;
extern gui_settings Settings;
Credits:
gfreeman1 (drawing code)
panzer ( some ideas )
LanceVorgin (mouse)
/*
Put this code in ur opengl func. file
*/
extern Gui OGui;
float mainViewAngles[2];
POINT pt;
//Every 5 viewports or hudredraw
OGui.DrawGui();
//Every viewport
if(YOUR_GUI_ACTIVE)
{
GetCursorPos(&pt);
Settings.MouseX = (Settings.MouseX - (centerX - pt.x));
Settings.MouseY = (Settings.MouseY - (centerY - pt.y));
OGui.DrawGui();
pEngfuncs->SetViewAngles(mainViewAngles);
}
else
{
Settings.MouseX = centerX;
Settings.MouseY = centerY;
pEngfuncs->GetViewAngles(mainViewAngles);
}
//Gui.h
class Gui
{
public:
void DrawGui();
void InitMouse ();
void DrawPointer();
void DrawShadow( int x, int y, int width, int height, int reversed );
void DrawFrame( int x, int y, int width, int height, int r, int g, int b, int a );
};
class Windows
{
public:
void DrawBody( int number, int x, int y, int width, int height, int r, int g, int b, int a );
void DrawTitle( int number, int x, int y, int width, int height, int r, int g, int b, int a, char* title );
void DrawClosePoint( int number, int closeX, int closeY );
};
class Buttons
{
public:
void DrawButton( int number, int x, int y, int width, int height, int r, int g, int b, int a, char* label );
};
typedef struct{
char* title;
int x;
int y;
int height; // Wysokos
int width; // Szerokosc
int transparent;
int r;
int g;
int b;
int a;
int drawX;
int drawY;
int movepointX;
int movepointY;
int movepointHeight;
int movepointWidth;
int closepointX;
int closepointY;
int closepointHeight;
int closepointWidth;
bool active;
}gui_windows;
typedef struct{
int WindowsCount;
int ButtonsCount;
int InputsCount;
int FontWidth;
int FontHeight;
int MovePointHeight;
int ClosePointHeight;
int ClosePointWidth;
int TitleBarHeight;
int FreeSpace;
int ButtonPressed;
int WindowSelected;
int InputSelected;
int CorrectionX;
int CorrectionY;
int MouseX;
int MouseY;
}gui_settings;
extern gui_windows Window[10];
extern Gui OGui;
extern gui_settings Settings;