forked from jaildesigner-jailgames/jaildoctors_dilemma
Commit to continue on other pc
This commit is contained in:
158
source/writer.cpp
Normal file
158
source/writer.cpp
Normal file
@@ -0,0 +1,158 @@
|
||||
#include "const.h"
|
||||
#include "writer.h"
|
||||
|
||||
// Constructor
|
||||
Writer::Writer(Text *text)
|
||||
{
|
||||
mText = text;
|
||||
init();
|
||||
}
|
||||
|
||||
// Destructor
|
||||
Writer::~Writer()
|
||||
{
|
||||
mText = nullptr;
|
||||
}
|
||||
|
||||
// Inicializador
|
||||
void Writer::init()
|
||||
{
|
||||
mPosX = 0;
|
||||
mPosY = 0;
|
||||
mKerning = 0;
|
||||
mCaption = "";
|
||||
mSpeed = 0;
|
||||
mTimer = 0;
|
||||
mIndex = 0;
|
||||
mLenght = 0;
|
||||
mCompleted = false;
|
||||
mEnabled = false;
|
||||
mEnabledTimer = 0;
|
||||
mId = -1;
|
||||
mIntroEvents = nullptr;
|
||||
}
|
||||
|
||||
// Establece el valor de la variable
|
||||
void Writer::setPosX(int value)
|
||||
{
|
||||
mPosX = value;
|
||||
}
|
||||
|
||||
// Establece el valor de la variable
|
||||
void Writer::setPosY(int value)
|
||||
{
|
||||
mPosY = value;
|
||||
}
|
||||
|
||||
// Establece el valor de la variable
|
||||
void Writer::setKerning(int value)
|
||||
{
|
||||
mKerning = value;
|
||||
}
|
||||
|
||||
// Establece el valor de la variable
|
||||
void Writer::setCaption(std::string text)
|
||||
{
|
||||
mCaption = text;
|
||||
mLenght = text.length();
|
||||
}
|
||||
|
||||
// Establece el valor de la variable
|
||||
void Writer::setSpeed(Uint16 value)
|
||||
{
|
||||
mSpeed = value;
|
||||
mTimer = value;
|
||||
}
|
||||
|
||||
// Establece el valor de la variable
|
||||
void Writer::setEnabled(bool value)
|
||||
{
|
||||
mEnabled = value;
|
||||
}
|
||||
|
||||
// Obtiene el valor de la variable
|
||||
bool Writer::IsEnabled()
|
||||
{
|
||||
return mEnabled;
|
||||
}
|
||||
|
||||
// Establece el valor de la variable
|
||||
void Writer::setEnabledTimer(Uint16 value)
|
||||
{
|
||||
mEnabledTimer = value;
|
||||
}
|
||||
|
||||
// Obtiene el valor de la variable
|
||||
Uint16 Writer::getEnabledTimer()
|
||||
{
|
||||
return mEnabledTimer;
|
||||
}
|
||||
|
||||
// Actualiza el objeto
|
||||
void Writer::update()
|
||||
{
|
||||
if (mEnabled)
|
||||
{
|
||||
if (mCompleted == false)
|
||||
{
|
||||
if (mTimer > 0)
|
||||
{
|
||||
mTimer--;
|
||||
}
|
||||
if (mTimer == 0)
|
||||
{
|
||||
mIndex++;
|
||||
mTimer = mSpeed;
|
||||
}
|
||||
if (mIndex == mLenght)
|
||||
{
|
||||
mCompleted = true;
|
||||
}
|
||||
}
|
||||
if (mCompleted)
|
||||
{
|
||||
if (mEnabledTimer > 0)
|
||||
{
|
||||
mEnabledTimer--;
|
||||
}
|
||||
else if (mEnabledTimer == 0)
|
||||
{
|
||||
if (mId < 0)
|
||||
{
|
||||
mEnabled = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
mIntroEvents[mId] = EVENT_COMPLETED;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Dibuja el objeto en pantalla
|
||||
void Writer::render()
|
||||
{
|
||||
if (mEnabled)
|
||||
{
|
||||
mText->write(mPosX, mPosY, mCaption, mKerning, mIndex);
|
||||
}
|
||||
}
|
||||
|
||||
// Centra la cadena de texto a un punto X
|
||||
void Writer::center(int x)
|
||||
{
|
||||
setPosX(x - (mText->lenght(mCaption, mKerning) / 2));
|
||||
}
|
||||
|
||||
// Establece el valor de la variable
|
||||
void Writer::setId(int id)
|
||||
{
|
||||
mId = id;
|
||||
}
|
||||
|
||||
// Establece el valor de la variable
|
||||
void Writer::setIntroEvents(Uint8 *value)
|
||||
{
|
||||
mIntroEvents = value;
|
||||
}
|
||||
Reference in New Issue
Block a user