/**
 * JUTFont.cpp
 * JUtility - Font Management
 */

#include "JSystem/JSystem.h" // IWYU pragma: keep

#include "JSystem/JUtility/JUTFont.h"

JUTFont::JUTFont() : mColor1(), mColor2(), mColor3(), mColor4() {
    mValid = false;
}

void JUTFont::initialize_state() {
    setCharColor(-1);
    setFixedWidth(false, 0);
    mValid = false;
}

void JUTFont::setCharColor(JUtility::TColor col1) {
    mColor1 = col1;
    mColor2 = col1;
    mColor3 = col1;
    mColor4 = col1;
}

void JUTFont::setGradColor(JUtility::TColor col1, JUtility::TColor col2) {
    mColor1 = col1;
    mColor2 = col1;
    mColor3 = col2;
    mColor4 = col2;
}

f32 JUTFont::drawString_size_scale(f32 a1, f32 a2, f32 a3, f32 a4, const char* str, u32 usz,
                                   bool a7) {
    f32 temp = a1;

    for (; usz != 0; --usz, ++str) {
        s32 b = (u8)*str;
        if (isLeadByte(b)) {
            JUT_ASSERT(114, usz >= 2);
            usz--;
            str++;
            b <<= 8;
            b |= (u8)*str;
        }

        a1 += drawChar_scale(a1, a2, a3, a4, b, a7);
        a7 = 1;
    }

    return a1 - temp;
}
