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