Files
Cyd 2b8ca921cb Initial full mirror of c:\VWE (source + assets + toolchain + outputs) via Git LFS
Complete disaster-recovery snapshot: engine/game source, game data assets,
VC6 toolchain + DX SDKs, build outputs, deployed game, and _UNUSED archive.
Large binaries in Git LFS; text preserved byte-for-byte (core.autocrlf=false,
no eol attributes). See RECOVERY.md for the one-clone rebuild procedure.
2026-06-24 21:28:16 -05:00

243 lines
5.3 KiB
C++

#include "AdeptHeaders.hpp"
#include "GUITextObject.hpp"
#include <MLR\MLR.hpp>
using namespace MidLevelRenderer;
//#############################################################################
//########################### GUITextObject ##############################
//#############################################################################
GUITextObject::ClassData*
GUITextObject::DefaultData = NULL;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
GUITextObject::InitializeClass()
{
Verify(!DefaultData);
DefaultData =
new ClassData(
GUITextObjectClassID,
"Adept::GUITextObject",
Receiver::DefaultData,
0,
NULL
);
Register_Object(DefaultData);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
GUITextObject::TerminateClass()
{
Unregister_Object(DefaultData);
delete DefaultData;
DefaultData = NULL;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
GUITextObject::GUITextObject(
ClassData *class_data,
MemoryStream *stream
):
Receiver(class_data)
{
Check_Pointer(this);
Check_Object(stream);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
GUITextObject::GUITextObject(
ClassData *class_data,
HGOSFONT3D font_handle,
const char *display_string,
int x_location,
int y_location
) :
Receiver(class_data)
{
Check_Pointer(this);
textFont = font_handle;
displayString = display_string;
xLocation = x_location;
yLocation = y_location;
isBold = false;
isItalic = false;
isVisible = true;
isProportional = true;
isWordWrap = false;
textSize = 1.0f;
textColor.alpha = 1.0f;
textColor.red = 1.0f;
textColor.green = 1.0f;
textColor.blue = 1.0f;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
GUITextObject::GUITextObject(
ClassData *class_data,
Page *instance_page
):
Receiver(class_data)
{
Check_Pointer(this);
Check_Object(instance_page);
textObjectName = instance_page->GetName();
//
//-------------------------------------
//Get the Font Name and Create the Font
//-------------------------------------
//
instance_page->GetEntry("FontName", &fontName, true);
textFont = gos_LoadFont(fontName, 0);
//
//--------------------------------
//Get Text that is to be displayed
//--------------------------------
//
const char *temp_string = "";
instance_page->GetEntry("FontName", &temp_string);
displayString = temp_string;
//
//--------------------------------
//Get Text that is to be displayed
//--------------------------------
//
isVisible = true;
instance_page->GetEntry("StartsDisplayed", &isVisible);
//
//-----------------
//Get Text Location
//-----------------
//
instance_page->GetEntry("XLocation", &xLocation, true);
if((xLocation < 0) || (xLocation > Environment.screenWidth))
{
STOP(("X Location for %s must be > 0 and < %d", (const char*)textObjectName, Environment.screenWidth));
}
instance_page->GetEntry("YLocation", &yLocation, true);
if((yLocation < 0) || (yLocation > Environment.screenHeight))
{
STOP(("Y Location for %s must be > 0 and < %d", (const char*)textObjectName, Environment.screenHeight));
}
//
//---------
//Get Color
//---------
//
textColor.alpha = 1.0f;
textColor.red = 1.0f;
textColor.green = 1.0f;
textColor.blue = 1.0f;
instance_page->GetEntry("Color", &textColor);
//
//------------------------
//Get Various Text Options
//------------------------
//
textSize = 1.0f;
instance_page->GetEntry("StartsDisplayed", &textSize);
if(textSize <= 0)
{
STOP(("Text Size Must be > 0"));
}
isWordWrap = false;
instance_page->GetEntry("WordWrap", &isWordWrap);
isProportional = false;
instance_page->GetEntry("Proportional", &isProportional);
isBold = false;
instance_page->GetEntry("Bold", &isBold);
isItalic = false;
instance_page->GetEntry("Italic", &isItalic);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
GUITextObject::Save(MemoryStream *stream)
{
Check_Object(this);
Check_Object(stream);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
GUITextObject::DrawText()
{
Check_Object(this);
if(isVisible)
{
gos_TextSetRegion(0, 0, Environment.screenWidth, Environment.screenHeight);
gos_TextSetAttributes(
textFont,
MidLevelRenderer::GOSCopyColor(&textColor),
textSize,
isWordWrap,
isProportional,
isBold,
isItalic
);
gos_TextSetPosition(xLocation, yLocation);
gos_TextDraw(displayString);
}
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
GUITextObject::HideText()
{
Check_Object(this);
isVisible = false;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
GUITextObject::ShowText()
{
Check_Object(this);
isVisible = true;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
GUITextObject::~GUITextObject()
{
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
GUITextObject::TestInstance()
{
Verify(IsDerivedFrom(DefaultData));
}